feat(fase-17): ChangelogModal component + unit tests
ChangelogModal renders the repo-root CHANGELOG.md (bundled at build time via Vite's ?raw query, 5 levels up from the component file) in an overlay+panel modal. Markdown is parsed inline (`#`/`##`/`###` headers, `-`/`*` lists, `**bold**`) with HTML-escape on every input line — input is static repo content so the surface is closed. Esc and overlay-click both call `onClose`. The keydown listener is attached only while `open` is true via a $effect. Three new Paraglide messages (en/es): `settings_about_view_changelog`, `changelog_modal_title`, `changelog_modal_close`. Unit tests (CHM-U-01..04) follow the Spinner.test.ts pattern (Svelte 5 mount/unmount + flushSync for the Escape spec). Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
This commit is contained in:
@@ -180,6 +180,9 @@
|
||||
"sync_conflicts_back": "Back to settings",
|
||||
"settings_about": "About",
|
||||
"settings_about_version": "v{version} · {commit} · {date}",
|
||||
"settings_about_view_changelog": "View changelog",
|
||||
"changelog_modal_title": "Changelog",
|
||||
"changelog_modal_close": "Close",
|
||||
"sync_offline": "You're offline — changes will sync when you reconnect",
|
||||
"sync_syncing": "Syncing…",
|
||||
"undo": "Undo",
|
||||
|
||||
@@ -180,6 +180,9 @@
|
||||
"sync_conflicts_back": "Volver a ajustes",
|
||||
"settings_about": "Acerca de",
|
||||
"settings_about_version": "v{version} · {commit} · {date}",
|
||||
"settings_about_view_changelog": "Ver historial",
|
||||
"changelog_modal_title": "Historial de cambios",
|
||||
"changelog_modal_close": "Cerrar",
|
||||
"sync_offline": "Sin conexión — los cambios se sincronizarán al reconectar",
|
||||
"sync_syncing": "Sincronizando…",
|
||||
"undo": "Deshacer",
|
||||
|
||||
Reference in New Issue
Block a user