import js from "@eslint/js"; import eslintParserTypeScript from "@typescript-eslint/parser"; import eslintPluginBetterTailwindcss from "eslint-plugin-better-tailwindcss"; import globals from "globals"; import tseslint from "typescript-eslint"; export default tseslint.config( js.configs.recommended, tseslint.configs.recommended, { plugins: { "better-tailwindcss": eslintPluginBetterTailwindcss, }, ignores: ["**/node_modules/**", "eslint.config.ts"], languageOptions: { parser: eslintParserTypeScript, parserOptions: { project: true, ecmaFeatures: { jsx: true, }, }, globals: { ...globals.node, }, }, files: ["**/*.{tsx,ts}"], settings: { "better-tailwindcss": { entryPoint: "src/main.css", }, }, rules: { ...(eslintPluginBetterTailwindcss.configs["recommended-warn"] ?? {}).rules, ...(eslintPluginBetterTailwindcss.configs["stylistic-warn"] ?? {}).rules, // "tailwindcss/classnames-order": "off", "better-tailwindcss/enforce-consistent-line-wrapping": [ "warn", { group: "newLine", printWidth: 100, }, ], "better-tailwindcss/no-unregistered-classes": [ "warn", { ignore: [ "^group(?:\\/(\\S*))?$", "^peer(?:\\/(\\S*))?$", "select_container", "convert_to_popup", "convert_to_group", "target", "convert_to_target", "job-details-toggle", ], }, ], }, }, { files: ["**/*.{js,cjs,mjs,jsx}"], extends: [tseslint.configs.disableTypeChecked], languageOptions: { globals: { ...globals.browser, }, }, }, );