feat(05-04): calendar API client, calendar widget, registry wiring

- calendar-api.ts: fetchSources/addSource/updateSource/deleteSource/testSource/fetchEvents with credentials:'include'
- calendar-widget.tsx: upcoming-events list with source color dots, three empty states (no sources/no events/loading)
- widget-registry.tsx: wireCalendarWidget() replaces placeholder with real CalendarWidget
- page.tsx: wires CalendarWidget into registry on mount
- i18n: added calendar.loading key to de.json and en.json

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
2026-06-24 15:23:27 +02:00
parent 2d8699e45c
commit c0f2f4ca51
6 changed files with 355 additions and 1 deletions
@@ -213,6 +213,16 @@ export function wireSearchWidget(
}
}
let calendarWired = false;
export function wireCalendarWidget(
component: ComponentType<WidgetProps>,
) {
if (!calendarWired) {
WIDGET_REGISTRY.calendar.component = component;
calendarWired = true;
}
}
let noteWired = false;
export function wireNoteWidget(
component: ComponentType<WidgetProps>,