{
  "$schema": "https://biomejs.dev/schemas/2.4.14/schema.json",
  "vcs": {
    "enabled": true,
    "clientKind": "git",
    "useIgnoreFile": true
  },
  "assist": {
    "enabled": true,
    "actions": {
      "source": {
        "organizeImports": {
          "level": "on",
          "options": {
            "groups": [
              "react",
              "react/**",
              ":BLANK_LINE:",
              "next/**",
              ":BLANK_LINE:",
              ":PACKAGE:",
              ":BLANK_LINE:",
              ":ALIAS:",
              ":BLANK_LINE:",
              ":PATH:"
            ]
          }
        }
      }
    }
  },
  "files": {
    "ignoreUnknown": true,
    "includes": ["**", "!.github", "!.husky", "!node_modules", "!.next", "!dist", "!out", "!src/components/ui"]
  },
  "formatter": {
    "enabled": true,
    "formatWithErrors": false,
    "indentStyle": "space",
    "indentWidth": 2,
    "lineEnding": "lf",
    "lineWidth": 120,
    "attributePosition": "auto",
    "bracketSameLine": false,
    "bracketSpacing": true,
    "expand": "auto",
    "useEditorconfig": true
  },
  "linter": {
    "enabled": true,
    "rules": {
      "recommended": true,
      "correctness": {
        "noUndeclaredVariables": "error",
        "noNestedComponentDefinitions": "error",
        "noUndeclaredDependencies": "error"
      },
      "nursery": {
        "useSortedClasses": "on",
        "useNullishCoalescing": "error",
        "noUnnecessaryConditions": "warn",
        "noFloatingPromises": "error",
        "noMisusedPromises": "error"
      },
      "performance": {
        "noImgElement": "warn"
      },
      "style": {
        "noCommonJs": "error",
        "noHeadElement": "warn",
        "noNamespace": "error",
        "useAsConstAssertion": "error",
        "useSelfClosingElements": "error",
        "noParameterAssign": "error",
        "noInferrableTypes": "error",
        "noUselessElse": "error",
        "useFilenamingConvention": "error"
      },
      "suspicious": {
        "noArrayIndexKey": "warn",
        "noConstantBinaryExpressions": "error",
        "noEmptyBlockStatements": "error",
        "noUnknownAtRules": "off",
        "noImportCycles": "error"
      },
      "complexity": {
        "noImportantStyles": "off"
      }
    },
    "domains": {
      "next": "recommended",
      "react": "recommended"
    }
  },
  "css": {
    "parser": {
      "tailwindDirectives": true
    }
  },
  "javascript": {
    "formatter": {
      "jsxQuoteStyle": "double",
      "quoteProperties": "asNeeded",
      "trailingCommas": "all",
      "semicolons": "always",
      "arrowParentheses": "always",
      "bracketSameLine": false,
      "quoteStyle": "double",
      "attributePosition": "auto",
      "bracketSpacing": true
    }
  },
  "html": {
    "formatter": {
      "indentScriptAndStyle": false,
      "selfCloseVoidElements": "always"
    }
  }
}
