"use client"; import { ListboxButton } from "@headlessui/react"; import { SunIcon, MoonIcon, ComputerDesktopIcon, } from "@heroicons/react/24/outline"; import clsx from "clsx"; import { useTheme } from "next-themes"; import { createElement } from "react"; import { useIsMounted } from "../../use-is-mounted"; import { Select } from "../Select"; const VALID_THEMES = ["system", "light", "dark"] as const; const THEME_ICONS = { light: SunIcon, dark: MoonIcon, system: ComputerDesktopIcon, }; const THEME_TEXT = { light: "Light", dark: "Dark", system: "System", }; const buttonClasses = "grid place-content-center w-12 h-10 px-3 rounded text-neutral-500"; export const ColorThemeSelector = () => { const isMounted = useIsMounted(); const { theme: themeFromNextThemes, setTheme, resolvedTheme: resolvedThemeFromNextThemes, } = useTheme(); const theme = isValidTheme(themeFromNextThemes) ? themeFromNextThemes : "system"; const resolvedTheme = isValidTheme(resolvedThemeFromNextThemes) ? resolvedThemeFromNextThemes : "system"; return isMounted ? (