Spaces:
Sleeping
Sleeping
File size: 990 Bytes
e859fb0 | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 | import { cn } from "@/lib/utils";
export type Mode = "single" | "dialog";
type Props = {
mode: Mode;
onChange: (m: Mode) => void;
};
const MODES: { id: Mode; label: string }[] = [
{ id: "single", label: "Single voice" },
{ id: "dialog", label: "Dialog" },
];
export default function ModeToggle({ mode, onChange }: Props) {
return (
<div
role="tablist"
aria-label="Generation mode"
className="inline-flex rounded-sm border border-border overflow-hidden"
>
{MODES.map((m) => (
<button
key={m.id}
role="tab"
aria-selected={mode === m.id}
type="button"
onClick={() => onChange(m.id)}
className={cn(
"label-mono px-3 py-1.5 transition-colors",
mode === m.id
? "bg-[hsl(var(--ember))]/15 text-[hsl(var(--ember))]"
: "hover:text-foreground",
)}
>
{m.label}
</button>
))}
</div>
);
}
|