{
  "$schema": "./node_modules/@biomejs/biome/configuration_schema.json",
  "assist": {
    "includes": ["**", "!**/.storybook/preview.ts"],
    "actions": {
      "source": {
        "organizeImports": {
          "level": "on",
          "options": {
            "groups": [
              [":BUN:", ":NODE:"],
              [":PACKAGE:", "!@@/**", "!@/**"],
              ":BLANK_LINE:",
              { "type": true },
              ":BLANK_LINE:",
              "@@/constants/**",
              ":BLANK_LINE:",
              "@/composables/**",
              ":BLANK_LINE:",
              "@@/stores/**",
              ":BLANK_LINE:",
              "@/components/**",
              ":BLANK_LINE:",
              "@@/helpers/**",
              ":BLANK_LINE:",
              "@/utils/**"
            ]
          }
        },
        "useSortedInterfaceMembers": "on",
        "useSortedKeys": "off",
        "useSortedProperties": "off"
      }
    },
    "enabled": true
  },
  "files": {
    "includes": [
      "**",
      "!**/.nuxt",
      "!**/.output",
      "!**/node_modules",
      "!**/.husky",
      "!**/package.json",
      "!**/package-lock.json",
      "!**/tsconfig.json",
      "!**/tsconfig.resolver.json",
      "!**/vite.config.js",
      "!**/vite.resolver.config.js",
      "!**/vitest.workspace.js"
    ]
  },
  "formatter": {
    "attributePosition": "auto",
    "bracketSameLine": false,
    "bracketSpacing": true,
    "enabled": true,
    "expand": "auto",
    "formatWithErrors": false,
    "indentStyle": "space",
    "indentWidth": 2,
    "lineEnding": "lf",
    "lineWidth": 120,
    "useEditorconfig": true
  },
  "html": {
    "experimentalFullSupportEnabled": true,
    "formatter": {
      "indentScriptAndStyle": false,
      "selfCloseVoidElements": "always"
    }
  },
  "javascript": {
    "formatter": {
      "arrowParentheses": "always",
      "attributePosition": "auto",
      "bracketSameLine": false,
      "bracketSpacing": true,
      "jsxQuoteStyle": "double",
      "quoteProperties": "asNeeded",
      "quoteStyle": "single",
      "semicolons": "asNeeded",
      "trailingCommas": "all"
    }
  },
  "linter": {
    "enabled": true,
    "rules": {
      "a11y": {
        "noAutofocus": "off",
        "noHeaderScope": "off",
        "noNoninteractiveTabindex": "off",
        "noLabelWithoutControl": "off",
        "noStaticElementInteractions": "off",
        "noSvgWithoutTitle": "off",
        "useAltText": "off",
        "useIframeTitle": "off",
        "useKeyWithClickEvents": "off",
        "useValidAnchor": "off",
        "useValidAriaProps": "off"
      },
      "complexity": {
        "noForEach": "off",
        "noUselessSwitchCase": "off",
        "noUselessTernary": "off",
        "useOptionalChain": "off"
      },
      "correctness": {
        "noUndeclaredVariables": "off",
        "noUnusedVariables": {
          "level": "error",
          "options": {
            "ignoreRestSiblings": true
          }
        },
        "noVueSetupPropsReactivityLoss": "error",
        "useParseIntRadix": "off",
        "useVueValidVBind": "off",
        "useVueValidVOn": "off"
      },
      "style": {
        "noNegationElse": "off",
        "noNonNullAssertion": "off",
        "noVueOptionsApi": "off",
        "useConst": "off",
        "useImportType": "error",
        "useNodejsImportProtocol": "off",
        "useShorthandFunctionType": "off",
        "useVueDefineMacrosOrder": {
          "level": "error",
          "options": {
            "order": ["defineProps", "defineEmits"]
          }
        },
        "useVueHyphenatedAttributes": {
          "level": "error",
          "options": {
            "ignore": ["attributeName", "attributeType", "repeatCount", "viewBox", "xlink:href", "xml:space"]
          }
        },
        "useVueMultiWordComponentNames": "off"
      },
      "performance": {
        "noAccumulatingSpread": "off"
      },
      "preset": "recommended",
      "suspicious": {
        "noConsole": "off",
        "noConstEnum": "off",
        "noDoubleEquals": "error",
        "noExplicitAny": "warn",
        "noImplicitAnyLet": "off",
        "noPrototypeBuiltins": "off",
        "noThenProperty": "off",
        "noUnusedExpressions": "error",
        "useBiomeIgnoreFolder": "off",
        "useDefaultSwitchClauseLast": "off",
        "useIterableCallbackReturn": "off"
      }
    }
  },
  "overrides": [
    {
      "includes": ["**/*.vue"],
      "linter": {
        "rules": {
          "correctness": {
            "noUnusedImports": "off",
            "noUnusedVariables": "off"
          },
          "style": {
            "useConst": "off",
            "useImportType": "off"
          }
        }
      }
    },
    {
      "includes": ["**/reduced-motion.css"],
      "linter": {
        "rules": {
          "complexity": {
            "noImportantStyles": "off"
          }
        }
      }
    }
  ],
  "vcs": {
    "clientKind": "git",
    "enabled": true,
    "useIgnoreFile": true
  }
}
