"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 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: "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" }, { value: "cosmic", label: "Cosmic", icon: Shield, color: "bg-gradient-to-r from-purple-500 to-green-500", ring: "ring-purple-500", desc: "Deep space with purple nebula and cyan accents" }, { value: "cyberpunk", label: "Cyberpunk", icon: Shield, color: "bg-gradient-to-r from-pink-500 to-cyan-400", ring: "ring-pink-500", desc: "Dark retro-futuristic synthwave aesthetic" }, { value: "cyber2", label: "Cyber2.0", icon: Shield, color: "bg-gradient-to-r from-cyan-400 to-fuchsia-500", ring: "ring-cyan-400", desc: "Neon grid with magenta and cyan glow" }, { value: "pumpkin", label: "Pumpkin Spice", icon: Shield, color: "bg-gradient-to-r from-orange-600 to-amber-500", ring: "ring-orange-600", desc: "Warm autumn orange with spicy accents" }, { value: "bw", label: "Black & White", icon: Shield, color: "bg-gradient-to-r from-gray-900 to-gray-400", ring: "ring-gray-500", desc: "Clean monochrome with subtle texture" }, ] function getStoredColorTheme(): string { if (typeof window === "undefined") return "default" return localStorage.getItem(COLOR_THEME_KEY) || "default" } function applyColorTheme(theme: string) { const colorThemes = ["default","ocean","forest","sunset","midnight","rose","amber","violet","slate","ruby"] const classes = document.documentElement.className.split(" ").filter(c => !colorThemes.includes(c)) if (theme !== "default") { classes.push(theme) } document.documentElement.className = classes.join(" ").trim() 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 (