import React from "react"; import {LucideIcon} from "lucide-react"; interface ToggleOption { value: string; label: string; } type ToggleGroupSize = 'sm' | 'md'; interface ToggleGroupProps { options: ToggleOption[]; value: string; onChange: (value: string) => void; icon?: LucideIcon; size?: ToggleGroupSize; } const sizeClasses: Record = { sm: {wrapper: 'rounded-lg', icon: 'w-3.5 h-3.5 mx-2', button: 'px-2.5 py-1 text-xs'}, md: {wrapper: 'rounded-xl', icon: 'w-4 h-4 mx-2.5', button: 'px-3 py-1.5 text-sm'}, }; export default function ToggleGroup( { options, value, onChange, icon: Icon, size = 'sm' }: ToggleGroupProps): React.JSX.Element { const config = sizeClasses[size]; return (
{Icon && ( )} {options.map(function (option: ToggleOption): React.JSX.Element { const isActive: boolean = value === option.value; return ( ); })}
); }