feat: unified food calendar — extend home screen to future dates + planned meals

Phase 1: date strip now covers today + 7 future days; right chevron enabled;
future pills rendered in lighter style.

Phase 2: home screen shows DateContext (past/today/future):
- future dates: hide calorie ring + macros, show PlanningBanner
- plannedMealsProvider derives from cached menuProvider (no extra API call)
- _MealCard shows ghost PlannedSlotTile for unconfirmed menu slots
- "Mark as eaten" creates a diary entry (source: menu_plan) via existing API

New l10n keys (12 locales): planningForDate, markAsEaten, plannedMealLabel

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
dbastrikin
2026-03-21 22:56:17 +02:00
parent bf8dce36c5
commit 9306d59d36
28 changed files with 500 additions and 41 deletions

View File

@@ -29,6 +29,12 @@ final currentWeekProvider = StateProvider<String>((ref) {
return (thu.year, week);
}
/// Returns the ISO 8601 week string for [date], e.g. "2026-W12".
String isoWeekString(DateTime date) {
final (year, week) = _isoWeek(date.toUtc());
return '$year-W${week.toString().padLeft(2, '0')}';
}
// ── Menu notifier ─────────────────────────────────────────────
class MenuNotifier extends StateNotifier<AsyncValue<MenuPlan?>> {