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,50 @@
/**
* When loading a media resource for use by an <audio> or <video> element, the TimeRanges interface is used for representing the time ranges of the media resource that have been buffered, the time ranges that have been played, and the time ranges that are seekable.
*
* @see https://developer.mozilla.org/en-US/docs/Web/API/TimeRanges
*/
export default class TimeRanges {
/**
* Constructor.
*
* @param illegalConstructorSymbol Illegal constructor symbol.
*/
constructor(illegalConstructorSymbol: symbol);
/**
* Returns length.
*/
get length(): number;
/**
* Returns `Symbol.toStringTag`.
*
* @returns `Symbol.toStringTag`.
*/
get [Symbol.toStringTag](): string;
/**
* Returns `[object NodeList]`.
*
* @returns `[object NodeList]`.
*/
toLocaleString(): string;
/**
* Returns `[object NodeList]`.
*
* @returns `[object NodeList]`.
*/
toString(): string;
/**
* Returns start.
*
* @param _index Index.
* @returns Start.
*/
start(_index: number): number;
/**
* Returns end.
*
* @param _index Index.
* @returns End.
*/
end(_index: number): number;
}
//# sourceMappingURL=TimeRanges.d.ts.map