diff --git a/crates/assets/js/auth/astro.config.mjs b/crates/assets/js/auth/astro.config.mjs index ca31cef5..04150b88 100644 --- a/crates/assets/js/auth/astro.config.mjs +++ b/crates/assets/js/auth/astro.config.mjs @@ -2,17 +2,17 @@ import { defineConfig } from "astro/config"; import solidJs from "@astrojs/solid-js"; import icon from "astro-icon"; -import tailwind from "@astrojs/tailwind"; +import tailwindcss from "@tailwindcss/vite"; // https://astro.build/config export default defineConfig({ output: "static", base: "/_/auth", - integrations: [ - icon(), - solidJs(), - tailwind({ - applyBaseStyles: false, - }), - ], + integrations: [icon(), solidJs()], + vite: { + plugins: [ + // @ts-expect-error: https://github.com/withastro/astro/issues/14030 + tailwindcss(), + ], + }, }); diff --git a/crates/assets/js/auth/eslint.config.mjs b/crates/assets/js/auth/eslint.config.mjs index a65a95df..0b1eab9d 100644 --- a/crates/assets/js/auth/eslint.config.mjs +++ b/crates/assets/js/auth/eslint.config.mjs @@ -1,18 +1,41 @@ import globals from "globals"; import pluginJs from "@eslint/js"; import tseslint from "typescript-eslint"; -import tailwind from "eslint-plugin-tailwindcss"; +import tailwind from "eslint-plugin-better-tailwindcss"; import solid from "eslint-plugin-solid/configs/recommended"; import astro from "eslint-plugin-astro"; export default [ + { + ignores: ["dist/", "node_modules/", ".astro/", "src/env.d.ts"], + }, pluginJs.configs.recommended, ...tseslint.configs.recommended, solid, - ...tailwind.configs["flat/recommended"], ...astro.configs.recommended, { - ignores: ["dist/", "node_modules/", ".astro/", "src/env.d.ts"], + plugins: { + "better-tailwindcss": tailwind, + }, + rules: { + ...tailwind.configs["recommended-warn"].rules, + ...tailwind.configs["recommended-error"].rules, + + "better-tailwindcss/enforce-consistent-line-wrapping": "off", + // Order is different from what prettier enforces. + "better-tailwindcss/enforce-consistent-class-order": "off", + "better-tailwindcss/no-unregistered-classes": [ + "error", + { + ignore: ["hide-scrollbars", "collapsible.*"], + }, + ], + }, + settings: { + "better-tailwindcss": { + entryPoint: "src/index.css", + }, + }, }, { files: ["**/*.{js,mjs,cjs,mts,ts,tsx,jsx,astro}"], @@ -36,10 +59,5 @@ export default [ "solid/self-closing-comp": "off", }, languageOptions: { globals: globals.browser }, - settings: { - tailwindcss: { - whitelist: ["hide-scrollbars", "collapsible.*"], - }, - }, }, ]; diff --git a/crates/assets/js/auth/package.json b/crates/assets/js/auth/package.json index ceccdb63..8286f92f 100644 --- a/crates/assets/js/auth/package.json +++ b/crates/assets/js/auth/package.json @@ -14,7 +14,6 @@ "dependencies": { "@astrojs/check": "^0.9.4", "@astrojs/solid-js": "^5.1.1", - "@astrojs/tailwind": "^5.1.5", "@kobalte/core": "^0.13.11", "@nanostores/solid": "^1.1.1", "astro": "^5.13.7", @@ -31,17 +30,20 @@ "devDependencies": { "@eslint/js": "^9.35.0", "@iconify-json/tabler": "^1.2.22", + "@kobalte/tailwindcss": "^0.9.0", "@tailwindcss/typography": "^0.5.16", + "@tailwindcss/vite": "^4.1.13", "eslint": "^9.35.0", "eslint-plugin-astro": "^1.3.1", + "eslint-plugin-better-tailwindcss": "^3.7.8", "eslint-plugin-solid": "^0.14.5", - "eslint-plugin-tailwindcss": "^3.18.2", "globals": "^16.4.0", "prettier": "^3.6.2", "prettier-plugin-astro": "^0.14.1", "prettier-plugin-tailwindcss": "^0.6.14", "sharp": "^0.34.3", - "tailwindcss": "^3.4.17", + "tailwindcss": "^4.1.13", + "tw-animate-css": "^1.3.8", "typescript": "^5.9.2", "typescript-eslint": "^8.43.0" } diff --git a/crates/assets/js/auth/src/components/Card.astro b/crates/assets/js/auth/src/components/Card.astro index e6c374e7..41641448 100644 --- a/crates/assets/js/auth/src/components/Card.astro +++ b/crates/assets/js/auth/src/components/Card.astro @@ -10,7 +10,7 @@ const { title } = Astro.props;