{
  "$schema": "https://biomejs.dev/schemas/1.9.0/schema.json",
  "files": {
    "ignoreUnknown": true,
    "ignore": ["dist/**", "build/**", "node_modules/**", "public/**", "package.json"]
  },

  "vcs": {
    "enabled": true,
    "clientKind": "git",
    "useIgnoreFile": true,
    "defaultBranch": "main"
  },

  "linter": {
    "enabled": true,
    "rules": {
      "recommended": true,
      "a11y": {
        "all": true
      },
      "nursery": {
        "useSortedClasses": {
          "level": "warn",
          "fix": "safe",
          "options": {}
        }
      },
      "correctness": {
        "useImportExtensions": "off",
        "noNodejsModules": "off",
        "useExhaustiveDependencies": "off"
      },
      "style": {
        "all": true,
        "useImportType": {
          "level": "off"
        },
        "useNamingConvention": "off",
        "useFilenamingConvention": {
          "level": "info",
          "options": {
            "strictCase": true,
            "requireAscii": true,
            "filenameCases": ["camelCase", "export"]
          }
        }
      },
      "suspicious": {
        "all": true,
        "noReactSpecificProps": "off",
        "noConsole": "off"
      }
    }
  },
  "formatter": {
    "enabled": true,
    "formatWithErrors": false,
    "indentStyle": "space",
    "indentWidth": 2,
    "lineWidth": 120,
    "attributePosition": "auto",
    "useEditorconfig": true
  },
  "organizeImports": {
    "enabled": true
  },
  "javascript": {
    "globals": [
      "afterAll",
      "afterEach",
      "beforeAll",
      "beforeEach",
      "describe",
      "expect",
      "it",
      "jest",
      "test",
      "React",
      "JSX",
      "vi"
    ]
  },
  "json": {
    "formatter": { "enabled": true },
    "linter": { "enabled": true }
  },
  "css": {
    "formatter": { "enabled": true },
    "linter": { "enabled": true }
  },
  "overrides": [
    {
      "include": ["./tsconfig.app.json", "./tsconfig.node.json"],
      "json": {
        "parser": {
          "allowComments": true
        }
      }
    },
    {
      "include": ["**/*.test.tsx", "**/*.spec.tsx", "**/*.test.ts", "**/*.spec.ts", "**/cypress/**/*", "**/*.cy.*"],
      "linter": {
        "rules": {
          "style": {
            "noNamespace": "off"
          },
          "correctness": {
            "noUndeclaredVariables": "off"
          }
        }
      }
    },

    {
      "include": [
        "src/index.tsx",
        "tailwind.config.ts",
        "src/**/*.stories.tsx",
        ".storybook/main.ts",
        ".storybook/preview.tsx",
        "./app/**/*",
        "**/config/**/*"
      ],
      "linter": {
        "rules": {
          "style": {
            "noDefaultExport": "off"
          }
        }
      }
    }
  ]
}
