{
  "$schema": "https://biomejs.dev/schemas/2.5.5/schema.json",
  "vcs": {
    "enabled": true,
    "clientKind": "git",
    "useIgnoreFile": true
  },
  "html": {
    "experimentalFullSupportEnabled": false
  },
  "assist": {
    "actions": {
      "source": {
        "organizeImports": "on",
        "useSortedProperties": "on"
      }
    }
  },
  "formatter": {
    "enabled": true,
    "indentStyle": "space",
    "indentWidth": 2,
    "lineWidth": 120
  },
  "javascript": {
    "formatter": {
      "quoteStyle": "single",
      "semicolons": "always",
      "trailingCommas": "es5",
      "bracketSpacing": true,
      "arrowParentheses": "always"
    }
  },
  "json": {
    "formatter": {
      "indentWidth": 2
    }
  },
  "css": {
    "parser": {
      "tailwindDirectives": true
    }
  },
  "linter": {
    "enabled": true,
    "rules": {
      "preset": "recommended",
      "style": {
        "noNamespace": "off",
        "noNonNullAssertion": "off"
      },
      "suspicious": {
        "noExplicitAny": "off",
        "noConfusingVoidType": "off",
        "useIterableCallbackReturn": "off",
        "noAssignInExpressions": "off",
        "noDocumentCookie": "off",
        "noThenProperty": "off"
      },
      "security": {
        "noDangerouslySetInnerHtml": "off"
      },
      "complexity": {
        "noUselessFragments": "warn",
        "noArguments": "off"
      },
      "correctness": {
        "noUnknownProperty": {
          "level": "error",
          "options": {
            "ignore": ["corner-shape"]
          }
        },
        "noUnusedVariables": "warn",
        "noUnusedImports": "warn",
        "noUnusedFunctionParameters": "off",
        "useExhaustiveDependencies": {
          "level": "warn",
          "options": {
            "hooks": [
              {
                "name": "useForceRender",
                "stableResult": true
              },
              {
                "name": "useLatestRef",
                "stableResult": true
              }
            ]
          }
        }
      },
      "a11y": {
        "noSvgWithoutTitle": "warn"
      }
    }
  },
  "overrides": [
    {
      "includes": ["site/src/**", "!site/src/utils/twMerge.ts"],
      "linter": {
        "rules": {
          "style": {
            "noRestrictedImports": {
              "level": "error",
              "options": {
                "paths": {
                  "tailwind-merge": "Use '@/utils/twMerge' instead — it's configured for our custom theme."
                }
              }
            }
          }
        }
      }
    },
    {
      "includes": ["packages/element/**"],
      "linter": {
        "rules": {
          "complexity": {
            "noThisInStatic": "off"
          }
        }
      }
    },
    {
      "includes": ["**/*.astro"],
      "linter": {
        "rules": {
          "correctness": {
            "noUnusedVariables": "off",
            "noUnusedImports": "off"
          },
          "style": {
            "useConst": "off",
            "useImportType": "off"
          }
        }
      }
    },
    {
      "includes": ["build/plugins/tests/**"],
      "linter": {
        "rules": {
          "suspicious": {
            "noTemplateCurlyInString": "off"
          }
        }
      }
    },
    {
      "includes": ["**/*.svg"],
      "linter": {
        "rules": {
          "a11y": {
            "noSvgWithoutTitle": "off"
          }
        }
      }
    }
  ],
  "files": {
    "includes": [
      "**",
      "!**/.astro",
      "!**/.netlify",
      "!**/.pnpm-store",
      "!**/.vercel",
      "!**/.turbo",
      "!**/.next",
      "!**/.opencode",
      "!**/.github",
      "!**/build/AGENTS.md",
      "!**/build/agents",
      "!**/dist",
      "!**/examples",
      "!site/scripts/api-docs-builder/src/tests/fixtures",
      "!**/packages/html/cdn",
      "!**/styles/vjs.css",
      "!**/packages/*/types"
    ]
  }
}
