--- import type { HTMLAttributes } from "astro/types"; import Dropdown from "./Dropdown.astro"; import { Icon } from "astro-icon/components"; interface Props extends HTMLAttributes<"div"> { storageKey?: string; rootSelector?: string; compact?: boolean; showLabel?: boolean; darkBgClass?: string[]; lightBgClass?: string[]; rootExtraClass?: string; onChange?: string; } const { storageKey = "wr-theme", rootSelector = "html", compact = false, showLabel = false, darkBgClass = [], lightBgClass = [], rootExtraClass = "", class: className, onChange = "onThemeChange", ...rest }: Props = Astro.props; const cookiesValue = Astro.cookies.get(storageKey)?.value ?? "system"; const containerId = `ts-${Math.random().toString(36).slice(2)}`; const icon = "wr:size-4"; const item = "wr:flex wr:w-full wr:items-center wr:gap-x-3.5 wr:rounded-lg wr:px-3 wr:py-2 wr:text-sm wr:hover:bg-gray-100 wr:dark:hover:bg-neutral-900 wr:focus:bg-gray-100 focus:outline-hidden dark:hover:bg-neutral-700 dark:hover:text-neutral-300 dark:focus:bg-neutral-700" const checkBase = "wr:size-4 wr:opacity-0 wr:scale-90 wr:transition"; ---