mirror of
https://github.com/element-hq/matrix-authentication-service.git
synced 2026-06-06 05:42:26 +00:00
8e65bf198e
Tailwind 4 ships its own Vite plugin and no longer needs PostCSS plumbing. Drop postcss/autoprefixer/postcss-import/postcss-nesting and the .postcssrc.json, wire @tailwindcss/vite into vite.config.ts, replace the @tailwind directives with @import "tailwindcss", and convert the JS tailwind.config.cjs theme into a CSS @theme block in shared.css. An @source directive points back at the SSR templates so the Jinja-rendered HTML in templates/ still gets scanned for utility classes. The third-party CSS (compound design tokens, compound-web, fontsource) moves into a new vendor.css entrypoint, loaded ahead of shared.css from main.tsx, storybook, and base.html. Tailwind v4's @import bundler silently drops the nested `@import url(...) layer(cpd-base) screen` statements inside the compound-design-tokens.css barrel, so we have to keep those imports out of any file that contains Tailwind directives and let Vite's normal CSS pipeline resolve them instead.
87 lines
2.7 KiB
JSON
87 lines
2.7 KiB
JSON
{
|
|
"name": "mas-frontend",
|
|
"private": true,
|
|
"version": "0.0.0",
|
|
"type": "module",
|
|
"scripts": {
|
|
"dev": "vite",
|
|
"generate": "graphql-codegen && i18next-cli extract",
|
|
"lint": "graphql-codegen && biome check && tsc && i18next-cli extract --ci",
|
|
"format": "biome format --write",
|
|
"build": "rimraf ./dist/ && vite build",
|
|
"preview": "vite preview",
|
|
"test": "vitest",
|
|
"coverage": "vitest run --coverage",
|
|
"storybook": "storybook dev -p 6006",
|
|
"build-storybook": "storybook build",
|
|
"i18n": "i18next-cli",
|
|
"knip": "knip"
|
|
},
|
|
"dependencies": {
|
|
"@fontsource/inconsolata": "^5.2.8",
|
|
"@fontsource/inter": "^5.2.8",
|
|
"@radix-ui/react-collapsible": "^1.1.12",
|
|
"@radix-ui/react-dialog": "^1.1.15",
|
|
"@tanstack/react-query": "^5.100.14",
|
|
"@tanstack/react-router": "^1.170.8",
|
|
"@vector-im/compound-design-tokens": "6.10.1",
|
|
"@vector-im/compound-web": "^8.3.5",
|
|
"@zxcvbn-ts/core": "^3.0.4",
|
|
"@zxcvbn-ts/language-common": "^3.0.4",
|
|
"classnames": "^2.5.1",
|
|
"date-fns": "^4.3.0",
|
|
"i18next": "^26.2.0",
|
|
"react": "^19.2.6",
|
|
"react-dom": "^19.2.6",
|
|
"react-i18next": "^17.0.8",
|
|
"swagger-ui-dist": "^5.32.6",
|
|
"valibot": "^1.4.0",
|
|
"vaul": "^1.1.2"
|
|
},
|
|
"devDependencies": {
|
|
"@biomejs/biome": "^2.4.15",
|
|
"@browser-logos/chrome": "^2.0.0",
|
|
"@browser-logos/firefox": "^3.0.10",
|
|
"@browser-logos/safari": "^2.1.0",
|
|
"@graphql-codegen/cli": "^7.0.0",
|
|
"@graphql-codegen/client-preset": "^6.0.0",
|
|
"@graphql-codegen/typescript-msw": "^4.0.1",
|
|
"@graphql-typed-document-node/core": "^3.2.0",
|
|
"@storybook/addon-docs": "^10.4.1",
|
|
"@storybook/react-vite": "^10.4.1",
|
|
"@tailwindcss/vite": "^4.3.0",
|
|
"@tanstack/react-query-devtools": "^5.100.14",
|
|
"@tanstack/react-router-devtools": "^1.167.0",
|
|
"@tanstack/router-plugin": "^1.168.11",
|
|
"@testing-library/jest-dom": "^6.9.1",
|
|
"@testing-library/react": "^16.3.2",
|
|
"@testing-library/user-event": "^14.6.1",
|
|
"@types/node": "^25.9.1",
|
|
"@types/react": "19.2.15",
|
|
"@types/react-dom": "19.2.3",
|
|
"@types/swagger-ui-dist": "^3.30.6",
|
|
"@vitejs/plugin-react": "^6.0.2",
|
|
"@vitest/coverage-v8": "^4.1.7",
|
|
"browserslist-to-esbuild": "^2.1.1",
|
|
"graphql": "^16.14.0",
|
|
"happy-dom": "^20.9.0",
|
|
"i18next-cli": "^1.58.0",
|
|
"knip": "^6.14.2",
|
|
"msw": "^2.14.6",
|
|
"msw-storybook-addon": "^2.0.7",
|
|
"rimraf": "^6.1.3",
|
|
"storybook": "^10.4.1",
|
|
"tailwindcss": "^4.3.0",
|
|
"tinyglobby": "^0.2.16",
|
|
"typescript": "^6.0.3",
|
|
"vite": "8.0.14",
|
|
"vite-plugin-graphql-codegen": "^3.9.1",
|
|
"vitest": "^4.1.7"
|
|
},
|
|
"msw": {
|
|
"workerDirectory": [
|
|
".storybook/public"
|
|
]
|
|
}
|
|
}
|