{
    "$schema": "https://json.schemastore.org/eslintrc",
  "root": true,
  "env": {
    "browser": true,
    "es2021": true
  },
  "extends": [
    "plugin:@workleap/react-library",
    "plugin:storybook/recommended"
  ],
  "parser": "@typescript-eslint/parser",
  "parserOptions": {
    "ecmaFeatures": {
      "jsx": true
    },
    "ecmaVersion": 12,
    "sourceType": "module"
  },
  "plugins": ["react", "@typescript-eslint", "react-hooks"],
  "rules": {
    "@typescript-eslint/no-implicit-any-catch": "off",
    "no-param-reassign": ["error", { "props": false }],
    "no-use-before-define": "off",
    "no-shadow": "off",
    "max-len": ["warn", { "code": 110 }],
    "@typescript-eslint/no-use-before-define": ["error"],
    "@typescript-eslint/explicit-function-return-type": [
      "warn",
      { "allowExpressions": true }
    ],
    "@typescript-eslint/ban-types": [
      "error",
      {
        "types": {
          "{}": false
        }
      }
    ],
    "react/jsx-filename-extension": ["warn", { "extensions": [".tsx"] }],
    "react/prop-types": "off",
    "react/button-has-type": "off",
    "react/jsx-props-no-spreading": "off",
    "import/extensions": ["error", "never", { "json": "always" }],
    "import/prefer-default-export": "off",
    "import/no-unresolved": "off",
    "react-hooks/rules-of-hooks": "error",
    "react-hooks/exhaustive-deps": "warn",
    "react/require-default-props": 0,
    "react/function-component-definition": "off",
    "react/jsx-no-useless-fragment": "off",
    "react/no-unstable-nested-components": "off",
    "jsx-a11y/click-events-have-key-events": "off"
  },
  "settings": {
    "import/parsers": {
      "@typescript-eslint/parser": [".ts", ".tsx"]
    },
    "import/internal-regex": ["^@igloo-ui/"],
    "import/resolver": {
      "typescript": {
        "project": "packages/*/tsconfig.json"
      }
    }
  },
  "ignorePatterns": [
    "dist",
    "node_modules",
    "examples",
    "scripts",
    "**/*.d.ts",
    "**/*.test.tsx",
    "**/*.stories.tsx",
    "*.css",
    "*.svg",
    "bootstrap",
    "website"
  ]
}
