"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, Shield } from "lucide-react" import { useWebsiteTheme } from "@/providers/website-theme-provider" const COLOR_THEME_KEY = "crm-color-theme" 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: "spidey", label: "Spidey", icon: Shield, color: "bg-red-600", ring: "ring-red-600", desc: "Dark theme with red accents" }, ] function getStoredColorTheme(): string { if (typeof window === "undefined") return "default" return localStorage.getItem(COLOR_THEME_KEY) || "default" } function applyColorTheme(theme: string) { document.documentElement.className = document.documentElement.className .replace(/\b(default|ocean|forest|sunset|midnight|rose|amber|violet|slate|ruby)\b/g, "") .trim() if (theme !== "default") { document.documentElement.classList.add(theme) } localStorage.setItem(COLOR_THEME_KEY, theme) } export function ThemeSettings() { const { theme, setTheme } = useTheme() const { websiteTheme, setWebsiteTheme } = useWebsiteTheme() const [colorTheme, setColorTheme] = useState("default") const [mounted, setMounted] = useState(false) useEffect(() => { setMounted(true) setColorTheme(getStoredColorTheme()) applyColorTheme(getStoredColorTheme()) }, []) function handleColorChange(value: string) { setColorTheme(value) applyColorTheme(value) } if (!mounted) return null return (