/* eslint-env node */
module.exports = {
  root: true,
  parser: "@typescript-eslint/parser",
  plugins: ["solid"],
  extends: [
    "eslint:recommended",
    "plugin:@typescript-eslint/recommended",
    "plugin:solid/recommended",
  ],
  overrides: [
    {
      files: ["**/*.tsx"],
      parserOptions: {
        ecmaFeatures: { jsx: true },
      },
      settings: {
        solid: { noImportReact: true },
      },
      rules: {
        "solid/jsx-no-undef": "error",
        "solid/prefer-classlist": "off",
        "solid/prefer-for": "error",
        "solid/reactivity": "warn",
        "solid/event-handlers": "off",
        "solid/no-react-specific-props": "off",
        "solid/no-innerhtml": "warn",
        "solid/no-destructure": "warn",
        "solid/self-closing-comp": "off",
        // Admin codebase uses inline string styles throughout — suppress style-prop noise
        "solid/style-prop": "off",
      },
    },
  ],
  rules: {
    "@typescript-eslint/explicit-function-return-type": "off",
    "@typescript-eslint/no-unused-vars": ["warn", { argsIgnorePattern: "^_", varsIgnorePattern: "^_", destructuredArrayIgnorePattern: "^_" }],
    "@typescript-eslint/no-explicit-any": "off",
    "arrow-body-style": ["warn", "as-needed"],
    curly: ["error", "multi-line"],
    "no-console": "off",
    "no-debugger": "warn",
    "no-unused-vars": "off",
    "prefer-const": "error",
  },
  env: { browser: true },
  ignorePatterns: [
    "dist",
    ".output",
    "node_modules",
    "coverage",
    "storybook-static",
    "test-results",
  ],
};
