diff --git a/.agents/AGENTS.md b/.agents/AGENTS.md new file mode 100644 index 000000000..264316762 --- /dev/null +++ b/.agents/AGENTS.md @@ -0,0 +1,9 @@ + +# 🚫 ZERO TRUST & BEWEISPFLICHT + +Dein Wort hat absolut keinen Wert, wenn du es nicht mit einem harten Test beweisen kannst. + +- **Keine Behauptungen:** Wenn du sagst, dass etwas funktioniert, ist das wertlos. Code, der nicht getestet ist, gilt als defekt. +- **Beweispflicht:** Jede Code-Änderung, jeder Fix und jede Logik-Anpassung MUSS durch einen begleitenden, erfolgreichen automatisierten Test bewiesen werden. +- **TDD (Test-Driven Development) ist Gesetz:** Ohne einen fehlschlagenden Test darfst du keinen Code schreiben. Ohne einen grünen Test darfst du keinen Code als fertig deklarieren. + diff --git a/app/globals.css b/app/globals.css index dff655ad6..90438c0d5 100644 --- a/app/globals.css +++ b/app/globals.css @@ -3,6 +3,19 @@ @config "../tailwind.config.cjs"; +/* Fix for Tailwind v4 missing container center & padding */ +@layer components { + .container { + margin-inline: auto !important; + padding-inline: 1rem; + } + @media (width >= 640px) { .container { padding-inline: 1.5rem; } } + @media (width >= 768px) { .container { padding-inline: 2rem; } } + @media (width >= 1024px) { .container { padding-inline: 2.5rem; } } + @media (width >= 1280px) { .container { padding-inline: 3rem; } } + @media (width >= 1400px) { .container { padding-inline: 4rem; } } +} + /* E-TIB Custom Utilities */ @layer utilities { .text-balance { diff --git a/package.json b/package.json index 0ba90c5ca..a5dbe00d3 100644 --- a/package.json +++ b/package.json @@ -72,6 +72,7 @@ "@types/sharp": "^0.31.1", "@types/three": "^0.183.1", "@vitejs/plugin-react": "^5.1.4", + "@vitejs/plugin-react-swc": "^4.3.1", "@vitest/ui": "^4.0.16", "autoprefixer": "^10.4.23", "cheerio": "^1.2.0", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 927639d0d..5d675564d 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -212,6 +212,9 @@ importers: '@vitejs/plugin-react': specifier: ^5.1.4 version: 5.2.0(vite@8.0.3(@emnapi/core@1.9.1)(@emnapi/runtime@1.9.1)(@types/node@22.19.15)(esbuild@0.27.4)(jiti@2.6.1)(sass@1.98.0)(terser@5.46.1)(tsx@4.21.0)(yaml@2.8.3)) + '@vitejs/plugin-react-swc': + specifier: ^4.3.1 + version: 4.3.1(@swc/helpers@0.5.20)(vite@8.0.3(@emnapi/core@1.9.1)(@emnapi/runtime@1.9.1)(@types/node@22.19.15)(esbuild@0.27.4)(jiti@2.6.1)(sass@1.98.0)(terser@5.46.1)(tsx@4.21.0)(yaml@2.8.3)) '@vitest/ui': specifier: ^4.0.16 version: 4.1.2(vitest@4.1.2) @@ -2352,6 +2355,9 @@ packages: '@rolldown/pluginutils@1.0.0-rc.3': resolution: {integrity: sha512-eybk3TjzzzV97Dlj5c+XrBFW57eTNhzod66y9HrBlzJ6NsCrWCp/2kaPS3K9wJmurBC0Tdw4yPjXKZqlznim3Q==} + '@rolldown/pluginutils@1.0.1': + resolution: {integrity: sha512-2j9bGt5Jh8hj+vPtgzPtl72j0yRxHAyumoo6TNfAjsLB04UtpSvPbPcDcBMxz7n+9CYB0c1GxQFxYRg2jimqGw==} + '@rollup/plugin-commonjs@28.0.1': resolution: {integrity: sha512-+tNWdlWKbpB3WgBN7ijjYkq9X5uhjmcvyjEght4NmH5fAU++zfQzAJ6wumLS+dNcvwEZhKx2Z+skY8m7v0wGSA==} engines: {node: '>=16.0.0 || 14 >= 14.17'} @@ -3286,6 +3292,12 @@ packages: peerDependencies: react: '>= 16.8.0' + '@vitejs/plugin-react-swc@4.3.1': + resolution: {integrity: sha512-PaeokKjAGraNN+s5SIApgsktnJprIyt3zgEIu7awnEdfn29QiB2crTcCzyi2XGpX9rUnTc0cKU07Wm0N0g7H2w==} + engines: {node: ^20.19.0 || >=22.12.0} + peerDependencies: + vite: ^4 || ^5 || ^6 || ^7 || ^8 + '@vitejs/plugin-react@5.2.0': resolution: {integrity: sha512-YmKkfhOAi3wsB1PhJq5Scj3GXMn3WvtQ/JC0xoopuHoXSdmtdStOpFrYaT1kie2YgFBcIe64ROzMYRjCrYOdYw==} engines: {node: ^20.19.0 || >=22.12.0} @@ -10117,6 +10129,8 @@ snapshots: '@rolldown/pluginutils@1.0.0-rc.3': {} + '@rolldown/pluginutils@1.0.1': {} + '@rollup/plugin-commonjs@28.0.1(rollup@4.60.1)': dependencies: '@rollup/pluginutils': 5.3.0(rollup@4.60.1) @@ -11028,6 +11042,14 @@ snapshots: '@use-gesture/core': 10.3.1 react: 19.2.4 + '@vitejs/plugin-react-swc@4.3.1(@swc/helpers@0.5.20)(vite@8.0.3(@emnapi/core@1.9.1)(@emnapi/runtime@1.9.1)(@types/node@22.19.15)(esbuild@0.27.4)(jiti@2.6.1)(sass@1.98.0)(terser@5.46.1)(tsx@4.21.0)(yaml@2.8.3))': + dependencies: + '@rolldown/pluginutils': 1.0.1 + '@swc/core': 1.15.21(@swc/helpers@0.5.20) + vite: 8.0.3(@emnapi/core@1.9.1)(@emnapi/runtime@1.9.1)(@types/node@22.19.15)(esbuild@0.27.4)(jiti@2.6.1)(sass@1.98.0)(terser@5.46.1)(tsx@4.21.0)(yaml@2.8.3) + transitivePeerDependencies: + - '@swc/helpers' + '@vitejs/plugin-react@5.2.0(vite@8.0.3(@emnapi/core@1.9.1)(@emnapi/runtime@1.9.1)(@types/node@22.19.15)(esbuild@0.27.4)(jiti@2.6.1)(sass@1.98.0)(terser@5.46.1)(tsx@4.21.0)(yaml@2.8.3))': dependencies: '@babel/core': 7.29.0 diff --git a/tailwind.config.cjs b/tailwind.config.cjs index de0eef4fc..84f8785a2 100644 --- a/tailwind.config.cjs +++ b/tailwind.config.cjs @@ -96,26 +96,7 @@ module.exports = { 'lg': '0 10px 15px -3px rgba(0, 0, 0, 0.1), 0 4px 6px -2px rgba(0, 0, 0, 0.05)', 'xl': '0 20px 25px -5px rgba(0, 0, 0, 0.1), 0 10px 10px -5px rgba(0, 0, 0, 0.04)', }, - container: { - center: true, - padding: { - DEFAULT: '1rem', - sm: '1.5rem', - md: '2rem', - lg: '2.5rem', - xl: '3rem', - '2xl': '4rem', - }, - screens: { - xs: '475px', - sm: '640px', - md: '768px', - lg: '1024px', - xl: '1280px', - '2xl': '1400px', - '3xl': '1600px', - }, - }, + maxWidth: { 'xs': '20rem', 'sm': '24rem', diff --git a/vitest.config.mts b/vitest.config.mts index 27d541cee..3347d926c 100644 --- a/vitest.config.mts +++ b/vitest.config.mts @@ -1,5 +1,5 @@ import { defineConfig } from 'vitest/config'; -import react from '@vitejs/plugin-react'; +import react from '@vitejs/plugin-react-swc'; export default defineConfig({ plugins: [react()], @@ -15,6 +15,8 @@ export default defineConfig({ test: { environment: 'happy-dom', globals: true, + isolate: false, + css: false, exclude: ['**/node_modules/**', '**/.next/**', '**/dist/**', '**/*.e2e.test.ts'], include: ['**/*.test.{ts,tsx}'], coverage: {