"use client" import { useEffect, useState } from "react" import { useTheme } from "next-themes" import { Card, CardContent, CardDescription, CardHeader, CardTitle } from "@/components/ui/card" import { Label } from "@/components/ui/label" import { RadioGroup, RadioGroupItem } from "@/components/ui/radio-group" import { cn } from "@/lib/utils" import { Sun, Moon, Monitor, Palette, Shield } from "lucide-react" import { useWebsiteTheme } from "@/providers/website-theme-provider" const modeOptions = [ { value: "light", icon: Sun, label: "Light" }, { value: "dark", icon: Moon, label: "Dark" }, { value: "system", icon: Monitor, label: "System" }, ] const themeOptions = [ { value: "default", label: "Default", color: "bg-blue-600", ring: "ring-blue-600" }, { value: "ocean", label: "Ocean", color: "bg-teal-500", ring: "ring-teal-500" }, { value: "forest", label: "Forest", color: "bg-green-600", ring: "ring-green-600" }, { value: "sunset", label: "Sunset", color: "bg-orange-500", ring: "ring-orange-500" }, { value: "midnight", label: "Midnight", color: "bg-indigo-600", ring: "ring-indigo-600" }, { value: "rose", label: "Rose", color: "bg-pink-600", ring: "ring-pink-600" }, { value: "amber", label: "Amber", color: "bg-amber-500", ring: "ring-amber-500" }, { value: "violet", label: "Violet", color: "bg-violet-600", ring: "ring-violet-600" }, { value: "slate", label: "Slate", color: "bg-slate-500", ring: "ring-slate-500" }, { value: "ruby", label: "Ruby", color: "bg-red-600", ring: "ring-red-600" }, ] const backgroundOptions = [ { value: "default", label: "Default", icon: Shield, color: "bg-zinc-500", ring: "ring-zinc-500", desc: "Standard CRM appearance" }, { value: "spidey", label: "Spidey", icon: Shield, color: "bg-red-600", ring: "ring-red-600", desc: "Dark theme with red accents" }, ] export function ThemeSettings() { const { theme, setTheme } = useTheme() const { websiteTheme, setWebsiteTheme, colorTheme, setColorTheme } = useWebsiteTheme() const [mounted, setMounted] = useState(false) useEffect(() => { setMounted(true) }, []) if (!mounted) return null return (
Theme Mode Choose your preferred appearance mode. {modeOptions.map(({ value, icon: Icon, label }) => (
))}
Color Theme Select a color accent for the dashboard. {themeOptions.map(({ value, label, color, ring }) => (