Add Theme Settings tool + polish remaining radio detail pages

- New /admin/theme: recolour the whole site from housekeeping. 6 atom-
  faithful presets (Atom/Midnight/Ocean/Forest/Sunset/Candy) + per-colour
  pickers for the 12 settings ThemeVars injects + border radius. Writes to
  website_settings, busts the siteSettings cache, and revalidates the
  layout so the new palette applies live with no rebuild. Constants live
  in src/lib/theme-presets.ts (a "use server" file can't export objects).
  Added to the admin sidebar (System).
- radio/contests/[id] + giveaways/[id] wrapped in ContentCard to match
  the public design system.
- Skipped a separate VPN page: /admin/ip already manages the IP
  white/blacklist, so it would only duplicate it.

Verified live (prod, amx_test): applied the Ocean preset → home renders
--color-primary #0ea5e9 site-wide; reverted the test rows. tsc 0,
vitest 49/49, next build 0.
This commit is contained in:
Simo committed 2026-06-28 20:20:38 +02:00
1 parent 6f15e0c8a3
commit 1199176883
6 files changed
+322 -10

No files matched your search

+1
View File
@@ -69,6 +69,7 @@ const NAV_GROUPS: { label: string; items: { href: string; label: string }[] }[]
{ href: "/admin/housekeeping", label: "Housekeeping" },
{ href: "/admin/rooms", label: "Rooms" },
{ href: "/admin/email-templates", label: "Email" },
{ href: "/admin/theme", label: "Theme" },
{ href: "/admin/settings", label: "Settings" },
],
},