/**
* 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)`,
}}
/>
);
}