{
   "env": {
      "browser": true,
      "es2021": true
   },
   "extends": [
      "plugin:react/recommended",
      "plugin:import/recommended",
      "plugin:import/typescript"
   ],
   "globals": {
      "JSX": true
   },
   "ignorePatterns": [
      "src/assets",
      "src/components",
      "src/context",
      "src/examples",
      "src/layouts"
   ],
   "parser": "@typescript-eslint/parser",
   "parserOptions": {
      "ecmaFeatures": {
         "jsx": true
      },
      "ecmaVersion": "latest",
      "sourceType": "module"
   },
   "plugins": [
      "react",
      "@typescript-eslint",
      "import"
   ],
   "rules": {
      "brace-style": [
         2,
         "allman"
      ],
      "indent": [
         "error",
         3,
         {
            "SwitchCase": 1
         }
      ],
      "import/extensions": [
         "error",
         "ignorePackages",
         {
            "ts": "never",
            "tsx": "never",
            "js": "never"
         }
      ],
      "import/no-extraneous-dependencies": [
         "error",
         {
            "devDependencies": true
         }
      ],
      "import/order": [
         "error",
         {
            "groups": [
               "builtin", // Built-in imports (come from NodeJS native) go first
               "external", // <- External imports
               "internal", // <- Absolute imports
               ["sibling", "parent"], // <- Relative imports, the sibling and parent types they can be mingled together
               "index", // <- index imports
               "unknown"
            ],
            "newlines-between": "never",
            "alphabetize": {
               /* sort in ascending order. Options: ["ignore", "asc", "desc"] */
               "order": "asc",
               /* ignore case. Options: [true, false] */
               "caseInsensitive": true
            }
         }
      ],
      "jsx-one-expression-per-line": "off",
      "max-len": "off",
      "no-console": "off",
      "no-constant-condition": "off",
      "no-continue": "off",
      "no-shadow": "off",
      "no-unused-vars": "off",
      "no-plusplus": "off",
      "no-underscore-dangle": "off",
      "no-else-return": "off",
      "react/display-name": "off",
      "spaced-comment": "off",
      "object-curly-spacing": [
         "error",
         "never"
      ],
      "object-shorthand": "off",
      "react/prop-types": "off",
      "react/jsx-filename-extension": [
         "warn",
         {
            "extensions": [
               ".tsx"
            ]
         }
      ],
      "react/jsx-indent": "off",
      "react/jsx-indent-props": [
         "error",
         3
      ],
      "react/jsx-props-no-spreading": "off",
      "react/react-in-jsx-scope": "off",
      "quotes": [
         "error",
         "double"
      ],
      "sort-imports": [
         "error",
         {
            "ignoreCase": false,
            "ignoreDeclarationSort": true,
            "ignoreMemberSort": true,
            "allowSeparatedGroups": false
         }
      ]
   },
   "settings": {
      "import/resolver": {
         "typescript": {}
      }
   }
}
