feat: Reinitialize frontend with SvelteKit and TypeScript

- Delete old Vite+Svelte frontend
- Initialize new SvelteKit project with TypeScript
- Configure Tailwind CSS v4 + DaisyUI
- Implement JWT authentication with auto-refresh
- Create login page with form validation (Zod)
- Add protected route guards
- Update Docker configuration for single-stage build
- Add E2E tests with Playwright (6/11 passing)
- Fix Svelte 5 reactivity with $state() runes

Known issues:
- 5 E2E tests failing (timing/async issues)
- Token refresh implementation needs debugging
- Validation error display timing
This commit is contained in:
2026-02-17 16:19:59 -05:00
parent 54df6018f5
commit de2d83092e
28274 changed files with 3816354 additions and 90 deletions

View File

@@ -0,0 +1,7 @@
import typography from './object.js';
import { addPrefix } from '../../functions/addPrefix.js';
export default ({ addUtilities, prefix = '' }) => {
const prefixedtypography = addPrefix(typography, prefix);
addUtilities({ ...prefixedtypography });
};

View File

@@ -0,0 +1 @@
export default {":root .prose":{"--tw-prose-body":"color-mix(in oklab, var(--color-base-content) 80%, #0000)","--tw-prose-headings":"var(--color-base-content)","--tw-prose-lead":"var(--color-base-content)","--tw-prose-links":"var(--color-base-content)","--tw-prose-bold":"var(--color-base-content)","--tw-prose-counters":"var(--color-base-content)","--tw-prose-bullets":"color-mix(in oklab, var(--color-base-content) 50%, #0000)","--tw-prose-hr":"color-mix(in oklab, var(--color-base-content) 20%, #0000)","--tw-prose-quotes":"var(--color-base-content)","--tw-prose-quote-borders":"color-mix(in oklab, var(--color-base-content) 20%, #0000)","--tw-prose-captions":"color-mix(in oklab, var(--color-base-content) 50%, #0000)","--tw-prose-code":"var(--color-base-content)","--tw-prose-pre-code":"var(--color-neutral-content)","--tw-prose-pre-bg":"var(--color-neutral)","--tw-prose-th-borders":"color-mix(in oklab, var(--color-base-content) 50%, #0000)","--tw-prose-td-borders":"color-mix(in oklab, var(--color-base-content) 20%, #0000)","--tw-prose-kbd":"color-mix(in oklab, var(--color-base-content) 80%, #0000)",":where(code):not(pre > code)":{"background-color":"var(--color-base-200)","border-radius":"var(--radius-selector)","border":"var(--border) solid var(--color-base-300)","padding-inline":"0.5em","padding-block":"0.2em","font-weight":"inherit","&:before, &:after":{"display":"none"}}}};