audio-front:
- AudioUploadField.svelte: Datei-Upload statt rohem media_ref-Textfeld;
ruft uploadMedia() auf, zeigt Dateiname nach Upload + Replace-Button
- Karten-Erstellungsseite: AudioUploadField ersetzt das unbrauchbare Textfeld
- Edit-Seite: audio-front wird jetzt korrekt geladen (audio_ref + back statt
dem falschen basic-else-Zweig) und gespeichert
typing:
- Aliases-Feld in Erstellungs- und Edit-Seite; kommagetrennte Alternativ-
antworten werden in fields.aliases gespeichert und von checkTypingAnswer
ausgewertet
- Edit-Seite: typing wird jetzt korrekt geladen (front + answer + aliases)
i18n: alle 5 Sprachen mit audio_upload_btn/uploading/failed/replace,
typing_aliases_label/hint
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Mobile-Nav scrollt horizontal und ist auf der Login-Seite ausgeblendet.
Nav-Innere Container entfernt (PillTabGroup → flache Buttons). Sprachauswahl
von der Nav auf die Account-Page verschoben (eigene Karte mit Vollnamen,
vertikales Layout). 5 Locales: DE, EN, FR, IT, ES mit vollständigen
Übersetzungen. Account-Karte erlaubt Namensbearbeitung. Stats-Page komplett
auf Card-Aesthetic umgebaut (ChartBar, Fire, Brain, CalendarDots, Target,
CalendarCheck — keine Emojis). Zwei neue Stats-Karten: Retention-Rate
(lapses/reps) und Fälligkeitsvorschau (nächste 7 Tage). API um
retention_rate, retention_reps, retention_lapses, due_forecast erweitert.
84-Tage-Activity-Grid hinzugefügt. TS-Fehler aus Locale-Erweiterung behoben
(ClozeCardForm number[], decks/new + NewDeckCard Locale-Typ).
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>