mirror of
https://github.com/MBombeck/HealthLog.git
synced 2026-11-08 12:32:43 +00:00
New routed sub-page, gated on the opt-in nutrients module with an in-context enable CTA (the module stays opt-in — the 2026-07-17 consent memo's reasoning holds; this just makes the toggle discoverable instead of buried in Settings): - Hydration card (hero): today's total, a muted EFSA reference-intake line (sex-resolved, omitted when the profile has no sex on file), a 30-day bar chart with a dashed reference line, and quick-add chips (+200/+300/+500 mL + custom + edit-today's-total) in a ResponsiveSheet, POSTing to /api/nutrients/water. - Caffeine card: same anatomy, rendered only when the window has data; the EFSA safe-level reads as a ceiling, never "exceeded" colouring. - Micronutrients card: rows only for the 24 vitamin/mineral codes with data in the window (catalog order), a muted "M of 24 tracked" footer, and one honest sentence that sparse logging isn't a deficiency. Zero rows collapse to a single EmptyState. No ring, no attainment colour anywhere — the bar chart plus its dashed reference line IS the context (UI-STANDARDS: values stay foreground). The bar chart is a new NutrientDailyBarChart, registered in the shared chart-runtime barrel behind its own next/dynamic boundary so recharts stays off the route's first-load JS. Tab-strip wiring: nutrients joins the flat pill set (event/store driven like medications/workouts — a lightweight 1-day probe read drives the pill's data-availability gate, module gate on top). ~20 new i18n keys across en/de/es/fr/it/pl.