"use client"; import { PALETTES, THEME_MODES, FONT_PAIRS, DENSITIES, DASH_LAYOUTS, CAL_VIEWS, NAV_STYLES, } from "@/modules/_core/themes"; import type { Palette, ThemeMode, FontPair, Density, DashLayout, CalView, NavStyle, } from "@/modules/_core/themes"; import { useTheme } from "@/hooks/use-theme"; import { Label } from "@/components/ui/label"; import { Select, SelectContent, SelectItem, SelectTrigger, SelectValue, } from "@/components/ui/select"; import { Button } from "@/components/ui/button"; import { cn } from "@/lib/utils"; interface Props { initialPalette?: Palette; initialMode?: ThemeMode; initialFontPair?: FontPair; initialDensity?: Density; initialDashLayout?: DashLayout; initialCalView?: CalView; initialNavStyle?: NavStyle; signedIn?: boolean; } export function ThemePicker({ initialPalette = "clay", initialMode = "system", initialFontPair = "serif-sans", initialDensity = "regular", initialDashLayout = "classic", initialCalView = "month", initialNavStyle = "rail-desktop", signedIn = false, }: Props) { const t = useTheme( { palette: initialPalette, mode: initialMode, fontPair: initialFontPair, density: initialDensity, dashLayout: initialDashLayout, calView: initialCalView, navStyle: initialNavStyle, }, signedIn, ); return (
Mobile (under 760px) always uses bottom nav + FAB.