"use client"; import * as SelectPrimitive from "@radix-ui/react-select"; import clsx from "clsx"; import { Check, ChevronDown } from "lucide-react"; export interface SelectOption { value: string; label: string; } // Radix disallows an empty-string Item value (it's reserved to mean "no // selection" internally) - but several call sites here use "" to mean "all" // / "no filter". This sentinel maps "" <-> a real string at the Radix // boundary only, so callers can keep using "" as usual. const EMPTY_VALUE_SENTINEL = "__select-empty__"; /** * Custom dropdown replacing native