import * as React from "react"; import * as RadixSelect from "@radix-ui/react-select"; import { cn } from "../../utils/cn"; import { useUiContent } from "../../content"; export interface SelectOption { value: string; label: React.ReactNode; disabled?: boolean; } export interface SelectProps { options: SelectOption[]; value?: string; defaultValue?: string; onValueChange?: (value: string) => void; placeholder?: string; label?: string; /** Visually hides the label while keeping it accessible via aria-label, matching Input/Textarea's convention. */ hideLabel?: boolean; disabled?: boolean; name?: string; className?: string; } const ChevronDown = () => ( ); /** Custom-styled, fully accessible select built on Radix's Select primitive (listbox semantics, typeahead, keyboard nav). */ export function Select({ options, value, defaultValue, onValueChange, placeholder, label, hideLabel, disabled, name, className }: SelectProps) { const content = useUiContent(); return (