- 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
1 line
6.0 KiB
CSS
1 line
6.0 KiB
CSS
/*! 🌼 daisyUI 5.5.17 - MIT License */ @layer utilities{.kbd{box-shadow:none;@layer daisyui.l1.l2.l3{&{border-radius:var(--radius-field);background-color:var(--color-base-200);vertical-align:middle;border:var(--border)solid color-mix(in srgb,var(--color-base-content)20%,#0000);border-bottom:calc(var(--border) + 1px)solid color-mix(in srgb,var(--color-base-content)20%,#0000);--size:calc(var(--size-selector,.25rem)*6);height:var(--size);min-width:var(--size);justify-content:center;align-items:center;padding-inline:.5em;font-size:.875rem;display:inline-flex}}}.kbd-xs{@layer daisyui.l1.l2{&{--size:calc(var(--size-selector,.25rem)*4);font-size:.625rem}}}.kbd-sm{@layer daisyui.l1.l2{&{--size:calc(var(--size-selector,.25rem)*5);font-size:.75rem}}}.kbd-md{@layer daisyui.l1.l2{&{--size:calc(var(--size-selector,.25rem)*6);font-size:.875rem}}}.kbd-lg{@layer daisyui.l1.l2{&{--size:calc(var(--size-selector,.25rem)*7);font-size:1rem}}}.kbd-xl{@layer daisyui.l1.l2{&{--size:calc(var(--size-selector,.25rem)*8);font-size:1.125rem}}}@media (width>=640px){.sm\:kbd{box-shadow:none;@layer daisyui.l1.l2.l3{&{border-radius:var(--radius-field);background-color:var(--color-base-200);vertical-align:middle;border:var(--border)solid color-mix(in srgb,var(--color-base-content)20%,#0000);border-bottom:calc(var(--border) + 1px)solid color-mix(in srgb,var(--color-base-content)20%,#0000);--size:calc(var(--size-selector,.25rem)*6);height:var(--size);min-width:var(--size);justify-content:center;align-items:center;padding-inline:.5em;font-size:.875rem;display:inline-flex}}}.sm\:kbd-xs{@layer daisyui.l1.l2{&{--size:calc(var(--size-selector,.25rem)*4);font-size:.625rem}}}.sm\:kbd-sm{@layer daisyui.l1.l2{&{--size:calc(var(--size-selector,.25rem)*5);font-size:.75rem}}}.sm\:kbd-md{@layer daisyui.l1.l2{&{--size:calc(var(--size-selector,.25rem)*6);font-size:.875rem}}}.sm\:kbd-lg{@layer daisyui.l1.l2{&{--size:calc(var(--size-selector,.25rem)*7);font-size:1rem}}}.sm\:kbd-xl{@layer daisyui.l1.l2{&{--size:calc(var(--size-selector,.25rem)*8);font-size:1.125rem}}}}@media (width>=768px){.md\:kbd{box-shadow:none;@layer daisyui.l1.l2.l3{&{border-radius:var(--radius-field);background-color:var(--color-base-200);vertical-align:middle;border:var(--border)solid color-mix(in srgb,var(--color-base-content)20%,#0000);border-bottom:calc(var(--border) + 1px)solid color-mix(in srgb,var(--color-base-content)20%,#0000);--size:calc(var(--size-selector,.25rem)*6);height:var(--size);min-width:var(--size);justify-content:center;align-items:center;padding-inline:.5em;font-size:.875rem;display:inline-flex}}}.md\:kbd-xs{@layer daisyui.l1.l2{&{--size:calc(var(--size-selector,.25rem)*4);font-size:.625rem}}}.md\:kbd-sm{@layer daisyui.l1.l2{&{--size:calc(var(--size-selector,.25rem)*5);font-size:.75rem}}}.md\:kbd-md{@layer daisyui.l1.l2{&{--size:calc(var(--size-selector,.25rem)*6);font-size:.875rem}}}.md\:kbd-lg{@layer daisyui.l1.l2{&{--size:calc(var(--size-selector,.25rem)*7);font-size:1rem}}}.md\:kbd-xl{@layer daisyui.l1.l2{&{--size:calc(var(--size-selector,.25rem)*8);font-size:1.125rem}}}}@media (width>=1024px){.lg\:kbd{box-shadow:none;@layer daisyui.l1.l2.l3{&{border-radius:var(--radius-field);background-color:var(--color-base-200);vertical-align:middle;border:var(--border)solid color-mix(in srgb,var(--color-base-content)20%,#0000);border-bottom:calc(var(--border) + 1px)solid color-mix(in srgb,var(--color-base-content)20%,#0000);--size:calc(var(--size-selector,.25rem)*6);height:var(--size);min-width:var(--size);justify-content:center;align-items:center;padding-inline:.5em;font-size:.875rem;display:inline-flex}}}.lg\:kbd-xs{@layer daisyui.l1.l2{&{--size:calc(var(--size-selector,.25rem)*4);font-size:.625rem}}}.lg\:kbd-sm{@layer daisyui.l1.l2{&{--size:calc(var(--size-selector,.25rem)*5);font-size:.75rem}}}.lg\:kbd-md{@layer daisyui.l1.l2{&{--size:calc(var(--size-selector,.25rem)*6);font-size:.875rem}}}.lg\:kbd-lg{@layer daisyui.l1.l2{&{--size:calc(var(--size-selector,.25rem)*7);font-size:1rem}}}.lg\:kbd-xl{@layer daisyui.l1.l2{&{--size:calc(var(--size-selector,.25rem)*8);font-size:1.125rem}}}}@media (width>=1280px){.xl\:kbd{box-shadow:none;@layer daisyui.l1.l2.l3{&{border-radius:var(--radius-field);background-color:var(--color-base-200);vertical-align:middle;border:var(--border)solid color-mix(in srgb,var(--color-base-content)20%,#0000);border-bottom:calc(var(--border) + 1px)solid color-mix(in srgb,var(--color-base-content)20%,#0000);--size:calc(var(--size-selector,.25rem)*6);height:var(--size);min-width:var(--size);justify-content:center;align-items:center;padding-inline:.5em;font-size:.875rem;display:inline-flex}}}.xl\:kbd-xs{@layer daisyui.l1.l2{&{--size:calc(var(--size-selector,.25rem)*4);font-size:.625rem}}}.xl\:kbd-sm{@layer daisyui.l1.l2{&{--size:calc(var(--size-selector,.25rem)*5);font-size:.75rem}}}.xl\:kbd-md{@layer daisyui.l1.l2{&{--size:calc(var(--size-selector,.25rem)*6);font-size:.875rem}}}.xl\:kbd-lg{@layer daisyui.l1.l2{&{--size:calc(var(--size-selector,.25rem)*7);font-size:1rem}}}.xl\:kbd-xl{@layer daisyui.l1.l2{&{--size:calc(var(--size-selector,.25rem)*8);font-size:1.125rem}}}}@media (width>=1536px){.\32 xl\:kbd{box-shadow:none;@layer daisyui.l1.l2.l3{&{border-radius:var(--radius-field);background-color:var(--color-base-200);vertical-align:middle;border:var(--border)solid color-mix(in srgb,var(--color-base-content)20%,#0000);border-bottom:calc(var(--border) + 1px)solid color-mix(in srgb,var(--color-base-content)20%,#0000);--size:calc(var(--size-selector,.25rem)*6);height:var(--size);min-width:var(--size);justify-content:center;align-items:center;padding-inline:.5em;font-size:.875rem;display:inline-flex}}}.\32 xl\:kbd-xs{@layer daisyui.l1.l2{&{--size:calc(var(--size-selector,.25rem)*4);font-size:.625rem}}}.\32 xl\:kbd-sm{@layer daisyui.l1.l2{&{--size:calc(var(--size-selector,.25rem)*5);font-size:.75rem}}}.\32 xl\:kbd-md{@layer daisyui.l1.l2{&{--size:calc(var(--size-selector,.25rem)*6);font-size:.875rem}}}.\32 xl\:kbd-lg{@layer daisyui.l1.l2{&{--size:calc(var(--size-selector,.25rem)*7);font-size:1rem}}}.\32 xl\:kbd-xl{@layer daisyui.l1.l2{&{--size:calc(var(--size-selector,.25rem)*8);font-size:1.125rem}}}}} |