{
  "$schema": "https://biomejs.dev/schemas/1.8.1/schema.json",
  "css": {
    "parser": {
      "cssModules": true
    }
  },
  "files": {
    "ignore": [
      "package.json",
      "**/*.yml",
      "node_modules/",
      "storybook-static/",
      ".yarn/",
      ".vscode/",
      "coverage/",
      "dist/",
      "build/",
      "**/*.d.ts",
      "**/@types/",
      "**/__mocks__/"
    ]
  },
  "formatter": {
    "enabled": true,
    "formatWithErrors": false,
    "indentStyle": "space",
    "indentWidth": 2,
    "lineEnding": "lf",
    "lineWidth": 90,
    "attributePosition": "auto"
  },
  "organizeImports": { "enabled": true },
  "linter": {
    "enabled": true,
    "rules": {
      "recommended": false,
      "a11y": {
        "noAccessKey": "warn",
        "noAriaUnsupportedElements": "warn",
        "noBlankTarget": "warn",
        "noDistractingElements": "warn",
        "noHeaderScope": "warn",
        "noRedundantAlt": "warn",
        "noRedundantRoles": "warn",
        "useAltText": "warn",
        "useAnchorContent": "warn",
        "useAriaActivedescendantWithTabindex": "warn",
        "useAriaPropsForRole": "warn",
        "useHeadingContent": "warn",
        "useIframeTitle": "warn",
        "useValidAnchor": "warn",
        "useValidAriaProps": "warn",
        "useValidAriaRole": "warn",
        "useValidAriaValues": "warn"
      },
      "complexity": {
        "noMultipleSpacesInRegularExpressionLiterals": "warn",
        "noUselessConstructor": "warn",
        "noUselessLabel": "warn",
        "noUselessLoneBlockStatements": "warn",
        "noUselessRename": "warn",
        "noWith": "warn"
      },
      "correctness": {
        "noConstAssign": "warn",
        "noEmptyCharacterClassInRegex": "warn",
        "noEmptyPattern": "warn",
        "noGlobalObjectCalls": "warn",
        "noInvalidUseBeforeDeclaration": "warn",
        "noNewSymbol": "warn",
        "noSelfAssign": "warn",
        "noUndeclaredVariables": "error",
        "noUnreachable": "warn",
        "noUnreachableSuper": "warn",
        "noUnusedLabels": "warn",
        "noUnusedVariables": "warn",
        "useArrayLiterals": "warn",
        "useExhaustiveDependencies": "error",
        "useHookAtTopLevel": "error",
        "useIsNan": "warn",
        "useYield": "warn"
      },
      "security": {
        "noDangerouslySetInnerHtmlWithChildren": "warn",
        "noGlobalEval": "warn"
      },
      "style": {
        "noCommaOperator": "warn",
        "noRestrictedGlobals": {
          "level": "error",
          "options": {
            "deniedGlobals": [
              "addEventListener",
              "blur",
              "close",
              "closed",
              "confirm",
              "defaultStatus",
              "defaultstatus",
              "event",
              "external",
              "find",
              "focus",
              "frameElement",
              "frames",
              "history",
              "innerHeight",
              "innerWidth",
              "length",
              "location",
              "locationbar",
              "menubar",
              "moveBy",
              "moveTo",
              "name",
              "onblur",
              "onerror",
              "onfocus",
              "onload",
              "onresize",
              "onunload",
              "open",
              "opener",
              "opera",
              "outerHeight",
              "outerWidth",
              "pageXOffset",
              "pageYOffset",
              "parent",
              "print",
              "removeEventListener",
              "resizeBy",
              "resizeTo",
              "screen",
              "screenLeft",
              "screenTop",
              "screenX",
              "screenY",
              "scroll",
              "scrollbars",
              "scrollBy",
              "scrollTo",
              "scrollX",
              "scrollY",
              "self",
              "status",
              "statusbar",
              "stop",
              "toolbar",
              "top",
              "setInterval",
              "setTimeout",
              "clearInterval",
              "clearTimeout"
            ]
          }
        }
      },
      "suspicious": {
        "noCatchAssign": "warn",
        "noCommentText": "warn",
        "noControlCharactersInRegex": "warn",
        "noDoubleEquals": "warn",
        "noDuplicateCase": "warn",
        "noDuplicateClassMembers": "warn",
        "noDuplicateJsxProps": "warn",
        "noDuplicateObjectKeys": "warn",
        "noDuplicateParameters": "warn",
        "noFallthroughSwitchClause": "off",
        "noFunctionAssign": "warn",
        "noLabelVar": "warn",
        "noRedeclare": "warn",
        "noSelfCompare": "warn",
        "noShadowRestrictedNames": "warn",
        "useGetterReturn": "warn",
        "useValidTypeof": "warn"
      }
    }
  },
  "javascript": {
    "formatter": {
      "jsxQuoteStyle": "double",
      "quoteProperties": "asNeeded",
      "trailingCommas": "es5",
      "semicolons": "always",
      "arrowParentheses": "asNeeded",
      "bracketSpacing": true,
      "bracketSameLine": false,
      "quoteStyle": "single",
      "attributePosition": "auto"
    }
  },
  "overrides": [
    {
      "include": [
        "*.test.ts",
        "*.test.tsx",
        "*.test.js",
        "*.test.jsx",
        "test.js",
        "test.jsx",
        "test.ts",
        "test.tsx",
        "testUtils.ts",
        "testUtils.tsx"
      ],
      "linter": { "rules": {} }
    },
    {
      "include": ["*.ts", "*.tsx"],
      "linter": {
        "rules": {
          "complexity": {
            "noBannedTypes": "warn",
            "noUselessConstructor": "warn",
            "noUselessTypeConstraint": "error"
          },
          "correctness": {
            "noInvalidUseBeforeDeclaration": "off",
            "noPrecisionLoss": "error",
            "noUndeclaredVariables": "off",
            "noUnusedVariables": "warn",
            "useArrayLiterals": "off"
          },
          "style": {
            "noInferrableTypes": "warn",
            "noNamespace": "error",
            "noNonNullAssertion": "warn",
            "useAsConstAssertion": "error",
            "useConsistentArrayType": "warn"
          },
          "suspicious": {
            "noDuplicateClassMembers": "off",
            "noEmptyBlockStatements": "off",
            "noExplicitAny": "off",
            "noExtraNonNullAssertion": "error",
            "noMisleadingInstantiator": "error",
            "noRedeclare": "off",
            "useNamespaceKeyword": "error"
          }
        }
      }
    },
    {
      "include": [
        "*.stories.@(ts|tsx|js|jsx|mjs|cjs)",
        "*.story.@(ts|tsx|js|jsx|mjs|cjs)"
      ],
      "linter": { "rules": {} }
    },
    {
      "include": [".storybook/main.@(js|cjs|mjs|ts)"],
      "linter": { "rules": {} }
    }
  ]
}
