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,58 @@
import HTMLElement from '../html-element/HTMLElement.js';
/**
* HTML Meta Element.
*
* Reference:
* https://developer.mozilla.org/en-US/docs/Web/API/HTMLMetaElement.
*/
export default class HTMLMetaElement extends HTMLElement {
/**
* Returns content.
*
* @returns Content.
*/
get content(): string;
/**
* Sets content.
*
* @param content Content.
*/
set content(content: string);
/**
* Returns httpEquiv.
*
* @returns HttpEquiv.
*/
get httpEquiv(): string;
/**
* Sets httpEquiv.
*
* @param httpEquiv HttpEquiv.
*/
set httpEquiv(httpEquiv: string);
/**
* Returns name.
*
* @returns Name.
*/
get name(): string;
/**
* Sets name.
*
* @param name Name.
*/
set name(name: string);
/**
* Returns scheme.
*
* @returns Name.
*/
get scheme(): string;
/**
* Sets scheme.
*
* @param scheme Scheme.
*/
set scheme(scheme: string);
}
//# sourceMappingURL=HTMLMetaElement.d.ts.map

View File

@@ -0,0 +1 @@
{"version":3,"file":"HTMLMetaElement.d.ts","sourceRoot":"","sources":["../../../src/nodes/html-meta-element/HTMLMetaElement.ts"],"names":[],"mappings":"AAAA,OAAO,WAAW,MAAM,gCAAgC,CAAC;AAEzD;;;;;GAKG;AACH,MAAM,CAAC,OAAO,OAAO,eAAgB,SAAQ,WAAW;IACvD;;;;OAIG;IACH,IAAW,OAAO,IAAI,MAAM,CAE3B;IAED;;;;OAIG;IACH,IAAW,OAAO,CAAC,OAAO,EAAE,MAAM,EAEjC;IAED;;;;OAIG;IACH,IAAW,SAAS,IAAI,MAAM,CAE7B;IAED;;;;OAIG;IACH,IAAW,SAAS,CAAC,SAAS,EAAE,MAAM,EAErC;IAED;;;;OAIG;IACH,IAAW,IAAI,IAAI,MAAM,CAExB;IAED;;;;OAIG;IACH,IAAW,IAAI,CAAC,IAAI,EAAE,MAAM,EAE3B;IACD;;;;OAIG;IACH,IAAW,MAAM,IAAI,MAAM,CAE1B;IAED;;;;OAIG;IACH,IAAW,MAAM,CAAC,MAAM,EAAE,MAAM,EAE/B;CACD"}

View File

@@ -0,0 +1,74 @@
import HTMLElement from '../html-element/HTMLElement.js';
/**
* HTML Meta Element.
*
* Reference:
* https://developer.mozilla.org/en-US/docs/Web/API/HTMLMetaElement.
*/
export default class HTMLMetaElement extends HTMLElement {
/**
* Returns content.
*
* @returns Content.
*/
get content() {
return this.getAttribute('content') || '';
}
/**
* Sets content.
*
* @param content Content.
*/
set content(content) {
this.setAttribute('content', content);
}
/**
* Returns httpEquiv.
*
* @returns HttpEquiv.
*/
get httpEquiv() {
return this.getAttribute('http-equiv') || '';
}
/**
* Sets httpEquiv.
*
* @param httpEquiv HttpEquiv.
*/
set httpEquiv(httpEquiv) {
this.setAttribute('http-equiv', httpEquiv);
}
/**
* Returns name.
*
* @returns Name.
*/
get name() {
return this.getAttribute('name') || '';
}
/**
* Sets name.
*
* @param name Name.
*/
set name(name) {
this.setAttribute('name', name);
}
/**
* Returns scheme.
*
* @returns Name.
*/
get scheme() {
return this.getAttribute('scheme') || '';
}
/**
* Sets scheme.
*
* @param scheme Scheme.
*/
set scheme(scheme) {
this.setAttribute('scheme', scheme);
}
}
//# sourceMappingURL=HTMLMetaElement.js.map

View File

@@ -0,0 +1 @@
{"version":3,"file":"HTMLMetaElement.js","sourceRoot":"","sources":["../../../src/nodes/html-meta-element/HTMLMetaElement.ts"],"names":[],"mappings":"AAAA,OAAO,WAAW,MAAM,gCAAgC,CAAC;AAEzD;;;;;GAKG;AACH,MAAM,CAAC,OAAO,OAAO,eAAgB,SAAQ,WAAW;IACvD;;;;OAIG;IACH,IAAW,OAAO;QACjB,OAAO,IAAI,CAAC,YAAY,CAAC,SAAS,CAAC,IAAI,EAAE,CAAC;IAC3C,CAAC;IAED;;;;OAIG;IACH,IAAW,OAAO,CAAC,OAAe;QACjC,IAAI,CAAC,YAAY,CAAC,SAAS,EAAE,OAAO,CAAC,CAAC;IACvC,CAAC;IAED;;;;OAIG;IACH,IAAW,SAAS;QACnB,OAAO,IAAI,CAAC,YAAY,CAAC,YAAY,CAAC,IAAI,EAAE,CAAC;IAC9C,CAAC;IAED;;;;OAIG;IACH,IAAW,SAAS,CAAC,SAAiB;QACrC,IAAI,CAAC,YAAY,CAAC,YAAY,EAAE,SAAS,CAAC,CAAC;IAC5C,CAAC;IAED;;;;OAIG;IACH,IAAW,IAAI;QACd,OAAO,IAAI,CAAC,YAAY,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC;IACxC,CAAC;IAED;;;;OAIG;IACH,IAAW,IAAI,CAAC,IAAY;QAC3B,IAAI,CAAC,YAAY,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;IACjC,CAAC;IACD;;;;OAIG;IACH,IAAW,MAAM;QAChB,OAAO,IAAI,CAAC,YAAY,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAC;IAC1C,CAAC;IAED;;;;OAIG;IACH,IAAW,MAAM,CAAC,MAAc;QAC/B,IAAI,CAAC,YAAY,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC;IACrC,CAAC;CACD"}