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,72 @@
import HTMLElement from '../html-element/HTMLElement.js';
import * as PropertySymbol from '../../PropertySymbol.js';
import DocumentFragment from '../document-fragment/DocumentFragment.js';
import Node from '../node/Node.js';
import ShadowRoot from '../shadow-root/ShadowRoot.js';
/**
* HTML Template Element.
*
* Reference:
* https://developer.mozilla.org/en-US/docs/Web/API/HTMLTemplateElement.
*/
export default class HTMLTemplateElement extends HTMLElement {
cloneNode: (deep?: boolean) => HTMLTemplateElement;
[PropertySymbol.content]: DocumentFragment;
/**
* Returns content.
*
* @returns Content.
*/
get content(): DocumentFragment;
/**
* @override
*/
get innerHTML(): string;
/**
* @override
*/
set innerHTML(html: string);
/**
* @override
*/
get firstChild(): Node;
/**
* @override
*/
get lastChild(): Node;
/**
* @deprecated
* @override
*/
getInnerHTML(_options?: {
includeShadowRoots?: boolean;
}): string;
/**
* @override
*/
getHTML(_options?: {
serializableShadowRoots?: boolean;
shadowRoots?: ShadowRoot[];
}): string;
/**
* @override
*/
[PropertySymbol.appendChild](node: Node, disableValidations?: boolean): Node;
/**
* @override
*/
[PropertySymbol.removeChild](node: Node): Node;
/**
* @override
*/
[PropertySymbol.insertBefore](newNode: Node, referenceNode: Node, disableValidations?: boolean): Node;
/**
* @override
*/
[PropertySymbol.replaceChild](newChild: Node, oldChild: Node): Node;
/**
* @override
*/
[PropertySymbol.cloneNode](deep?: boolean): HTMLTemplateElement;
}
//# sourceMappingURL=HTMLTemplateElement.d.ts.map