/** * ThoroughnessSelector - Precision dial for search quality vs speed. * * Design: "Calibration Dial" - Like a rotary selector on vintage * laboratory equipment. Brass tones, engraved feel, precise detents. * * Uses Old Gold (secondary) for warmth, with timing annotations * styled as instrument readouts. */ import { Gauge, Rabbit, Sparkles } from "lucide-react"; import { cn } from "../lib/utils"; export type Thoroughness = "fast" | "balanced" | "thorough"; export interface ThoroughnessSelectorProps { value: Thoroughness; onChange: (value: Thoroughness) => void; disabled?: boolean; className?: string; } interface Option { id: Thoroughness; label: string; timing: string; icon: React.ElementType; } const options: Option[] = [ { id: "fast", label: "Fast", timing: "BM25", icon: Rabbit }, { id: "balanced", label: "Balanced", timing: "~2s", icon: Gauge }, { id: "thorough", label: "Thorough", timing: "~5s", icon: Sparkles }, ]; export function ThoroughnessSelector({ value, onChange, disabled = false, className, }: ThoroughnessSelectorProps) { return (
{/* Label styled as instrument marking */} Depth {/* The dial housing */}
{options.map((option, index) => { const isSelected = value === option.id; const Icon = option.icon; return ( ); })} {/* Subtle indicator dot under selected option */}
o.id === value) * 33.33}% + 16.66% - 8px)`, }} />
); }