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 4e74b2915..84e70857d 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 @@ -67,6 +67,11 @@ "emotional": "Emotional", "other": "Sonstiges" }, + "calendar": { + "title": "Kalender", + "prev": "Vorheriger Monat", + "next": "Nächster Monat" + }, "symptomManager": { "title": "Symptome verwalten", "open": "Verwalten", 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 cb89c5822..7a5bee423 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 @@ -67,6 +67,11 @@ "emotional": "Emotional", "other": "Other" }, + "calendar": { + "title": "Calendar", + "prev": "Previous month", + "next": "Next month" + }, "symptomManager": { "title": "Manage symptoms", "open": "Manage", 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 cb89c5822..7a5bee423 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 @@ -67,6 +67,11 @@ "emotional": "Emotional", "other": "Other" }, + "calendar": { + "title": "Calendar", + "prev": "Previous month", + "next": "Next month" + }, "symptomManager": { "title": "Manage symptoms", "open": "Manage", 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 cb89c5822..7a5bee423 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 @@ -67,6 +67,11 @@ "emotional": "Emotional", "other": "Other" }, + "calendar": { + "title": "Calendar", + "prev": "Previous month", + "next": "Next month" + }, "symptomManager": { "title": "Manage symptoms", "open": "Manage", 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 cb89c5822..7a5bee423 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 @@ -67,6 +67,11 @@ "emotional": "Emotional", "other": "Other" }, + "calendar": { + "title": "Calendar", + "prev": "Previous month", + "next": "Next month" + }, "symptomManager": { "title": "Manage symptoms", "open": "Manage", 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 d33eac608..50d7749a4 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 CycleCalendar from './components/CycleCalendar.svelte'; import SymptomManager from './components/SymptomManager.svelte'; import type { ViewProps } from '$lib/app-registry'; @@ -52,6 +53,9 @@ // ─ Symptom manager modal state let symptomManagerOpen = $state(false); + // ─ Calendar visibility toggle + let calendarOpen = $state(true); + // ─ 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); @@ -177,6 +181,19 @@ + +
+
+ + +
+ {#if calendarOpen} + + {/if} +
+ {#if isEditingPast}
diff --git a/apps/mana/apps/web/src/lib/modules/cycles/components/CycleCalendar.svelte b/apps/mana/apps/web/src/lib/modules/cycles/components/CycleCalendar.svelte new file mode 100644 index 000000000..e38ee82af --- /dev/null +++ b/apps/mana/apps/web/src/lib/modules/cycles/components/CycleCalendar.svelte @@ -0,0 +1,305 @@ + + + +
+
+ + + +
+ +
+ {#each weekdays as wd} +
{wd}
+ {/each} +
+ +
+ {#each cells as cell (cell.iso)} + + {/each} +
+
+ +