From 744c1119a904be1a15365100c40ca12b78ec875e Mon Sep 17 00:00:00 2001 From: ginnoir Date: Wed, 6 May 2026 03:10:28 -0500 Subject: [PATCH] Implement calendar module --- STATUS.md | 4 +- drizzle/0003_rainy_ravenous.sql | 37 ++ package.json | 9 +- playwright.config.ts | 23 + pnpm-lock.yaml | 117 +++- scripts/seed.ts | 4 + src/app/calendar/page.tsx | 17 + src/app/globals.css | 39 +- src/lib/auth.ts | 5 + src/lib/db.ts | 5 +- .../calendar/components/calendar-shell.tsx | 515 ++++++++++++++++++ src/modules/calendar/manifest.ts | 23 - src/modules/calendar/manifest.tsx | 87 +++ src/modules/calendar/schema.ts | 65 +++ src/modules/calendar/server/actions.ts | 182 +++++++ src/modules/calendar/server/defaults.ts | 90 +++ src/modules/calendar/server/queries.ts | 187 +++++++ tests/e2e/calendar.spec.ts | 37 ++ 18 files changed, 1414 insertions(+), 32 deletions(-) create mode 100644 drizzle/0003_rainy_ravenous.sql create mode 100644 playwright.config.ts create mode 100644 src/app/calendar/page.tsx create mode 100644 src/modules/calendar/components/calendar-shell.tsx delete mode 100644 src/modules/calendar/manifest.ts create mode 100644 src/modules/calendar/manifest.tsx create mode 100644 src/modules/calendar/schema.ts create mode 100644 src/modules/calendar/server/actions.ts create mode 100644 src/modules/calendar/server/defaults.ts create mode 100644 src/modules/calendar/server/queries.ts create mode 100644 tests/e2e/calendar.spec.ts diff --git a/STATUS.md b/STATUS.md index a1e7189..6b176d8 100644 --- a/STATUS.md +++ b/STATUS.md @@ -16,9 +16,11 @@ Living progress tracker. Update at the end of each task. The canonical brief is - **08 — Theming infrastructure**. CSS-variable multi-theme system (`default` + `warm`) × `{light, dark, system}`. `users.theme` + `users.themeMode` columns in migration `0002_naive_starbolt.sql`. Theme registry in `src/modules/_core/themes.ts` (THEMES/THEME_MODES arrays — adding a third theme is one CSS block + one registry entry). Root layout reads session and sets `data-theme`/`dark` on `` server-side; inline pre-paint `