diff --git a/apps/mana/apps/web/src/lib/i18n/locales/cycles/de.json b/apps/mana/apps/web/src/lib/i18n/locales/cycles/de.json index 945885a76..4e74b2915 100644 --- a/apps/mana/apps/web/src/lib/i18n/locales/cycles/de.json +++ b/apps/mana/apps/web/src/lib/i18n/locales/cycles/de.json @@ -59,6 +59,23 @@ }, "empty": "Tippe oben auf eine Blutungsstärke, um deinen ersten Tag festzuhalten — oder starte direkt eine Periode.", "confirm": { - "deleteEntry": "Tageseintrag vom {date} wirklich löschen?" + "deleteEntry": "Tageseintrag vom {date} wirklich löschen?", + "deleteSymptom": "Symptom \"{name}\" löschen?" + }, + "symptomCategory": { + "physical": "Körperlich", + "emotional": "Emotional", + "other": "Sonstiges" + }, + "symptomManager": { + "title": "Symptome verwalten", + "open": "Verwalten", + "newNamePlaceholder": "Neues Symptom…", + "add": "Hinzufügen", + "edit": "Bearbeiten", + "delete": "Löschen", + "save": "Speichern", + "cancel": "Abbrechen", + "empty": "Noch keine Symptome angelegt." } } diff --git a/apps/mana/apps/web/src/lib/i18n/locales/cycles/en.json b/apps/mana/apps/web/src/lib/i18n/locales/cycles/en.json index 9b0c367ca..cb89c5822 100644 --- a/apps/mana/apps/web/src/lib/i18n/locales/cycles/en.json +++ b/apps/mana/apps/web/src/lib/i18n/locales/cycles/en.json @@ -59,6 +59,23 @@ }, "empty": "Tap a flow level above to log your first day — or start a period directly.", "confirm": { - "deleteEntry": "Really delete the entry from {date}?" + "deleteEntry": "Really delete the entry from {date}?", + "deleteSymptom": "Delete symptom \"{name}\"?" + }, + "symptomCategory": { + "physical": "Physical", + "emotional": "Emotional", + "other": "Other" + }, + "symptomManager": { + "title": "Manage symptoms", + "open": "Manage", + "newNamePlaceholder": "New symptom…", + "add": "Add", + "edit": "Edit", + "delete": "Delete", + "save": "Save", + "cancel": "Cancel", + "empty": "No symptoms yet." } } diff --git a/apps/mana/apps/web/src/lib/i18n/locales/cycles/es.json b/apps/mana/apps/web/src/lib/i18n/locales/cycles/es.json index 9b0c367ca..cb89c5822 100644 --- a/apps/mana/apps/web/src/lib/i18n/locales/cycles/es.json +++ b/apps/mana/apps/web/src/lib/i18n/locales/cycles/es.json @@ -59,6 +59,23 @@ }, "empty": "Tap a flow level above to log your first day — or start a period directly.", "confirm": { - "deleteEntry": "Really delete the entry from {date}?" + "deleteEntry": "Really delete the entry from {date}?", + "deleteSymptom": "Delete symptom \"{name}\"?" + }, + "symptomCategory": { + "physical": "Physical", + "emotional": "Emotional", + "other": "Other" + }, + "symptomManager": { + "title": "Manage symptoms", + "open": "Manage", + "newNamePlaceholder": "New symptom…", + "add": "Add", + "edit": "Edit", + "delete": "Delete", + "save": "Save", + "cancel": "Cancel", + "empty": "No symptoms yet." } } diff --git a/apps/mana/apps/web/src/lib/i18n/locales/cycles/fr.json b/apps/mana/apps/web/src/lib/i18n/locales/cycles/fr.json index 9b0c367ca..cb89c5822 100644 --- a/apps/mana/apps/web/src/lib/i18n/locales/cycles/fr.json +++ b/apps/mana/apps/web/src/lib/i18n/locales/cycles/fr.json @@ -59,6 +59,23 @@ }, "empty": "Tap a flow level above to log your first day — or start a period directly.", "confirm": { - "deleteEntry": "Really delete the entry from {date}?" + "deleteEntry": "Really delete the entry from {date}?", + "deleteSymptom": "Delete symptom \"{name}\"?" + }, + "symptomCategory": { + "physical": "Physical", + "emotional": "Emotional", + "other": "Other" + }, + "symptomManager": { + "title": "Manage symptoms", + "open": "Manage", + "newNamePlaceholder": "New symptom…", + "add": "Add", + "edit": "Edit", + "delete": "Delete", + "save": "Save", + "cancel": "Cancel", + "empty": "No symptoms yet." } } diff --git a/apps/mana/apps/web/src/lib/i18n/locales/cycles/it.json b/apps/mana/apps/web/src/lib/i18n/locales/cycles/it.json index 9b0c367ca..cb89c5822 100644 --- a/apps/mana/apps/web/src/lib/i18n/locales/cycles/it.json +++ b/apps/mana/apps/web/src/lib/i18n/locales/cycles/it.json @@ -59,6 +59,23 @@ }, "empty": "Tap a flow level above to log your first day — or start a period directly.", "confirm": { - "deleteEntry": "Really delete the entry from {date}?" + "deleteEntry": "Really delete the entry from {date}?", + "deleteSymptom": "Delete symptom \"{name}\"?" + }, + "symptomCategory": { + "physical": "Physical", + "emotional": "Emotional", + "other": "Other" + }, + "symptomManager": { + "title": "Manage symptoms", + "open": "Manage", + "newNamePlaceholder": "New symptom…", + "add": "Add", + "edit": "Edit", + "delete": "Delete", + "save": "Save", + "cancel": "Cancel", + "empty": "No symptoms yet." } } diff --git a/apps/mana/apps/web/src/lib/modules/cycles/ListView.svelte b/apps/mana/apps/web/src/lib/modules/cycles/ListView.svelte index ee5ceea36..d33eac608 100644 --- a/apps/mana/apps/web/src/lib/modules/cycles/ListView.svelte +++ b/apps/mana/apps/web/src/lib/modules/cycles/ListView.svelte @@ -21,6 +21,7 @@ predictNextPeriodStart, } from './utils/prediction'; import { FLOW_COLORS, MOOD_COLORS, PHASE_COLORS, type Flow, type Mood } from './types'; + import SymptomManager from './components/SymptomManager.svelte'; import type { ViewProps } from '$lib/app-registry'; // eslint-disable-next-line @typescript-eslint/no-unused-vars @@ -48,6 +49,9 @@ const FLOWS: Flow[] = ['none', 'spotting', 'light', 'medium', 'heavy']; const MOODS: Mood[] = ['great', 'good', 'neutral', 'low', 'bad']; + // ─ Symptom manager modal state + let symptomManagerOpen = $state(false); + // ─ Editing state — defaults to today, can be switched to any past day let editingDate = $state(todayIso); let editingLog = $derived(logs.find((l) => l.logDate === editingDate) ?? null); @@ -230,9 +234,14 @@ - {#if symptoms.length > 0} -
+
+
+ +
+ {#if symptoms.length > 0}
{#each symptoms as sym}
-
- {/if} + {/if} +
@@ -346,6 +355,8 @@ {/if} + (symptomManagerOpen = false)} /> +