"use client"; import { Search } from "lucide-react"; import { useId } from "react"; // The icon-in-a-box search field used by the employee list, the audit log and // the org chart. Each was a hand-rolled copy whose carried only a // placeholder — no label at all — and killed its own focus ring with // outline-none. A placeholder is not a label: it disappears on the first // keystroke and is not reliably announced. export function SearchInput({ value, onChange, placeholder, label, className = "", }: { value: string; onChange: (value: string) => void; placeholder: string; /** Visually hidden; this is what a screen reader announces. */ label: string; className?: string; }) { const id = useId(); return (