import { Toggle } from '@base-ui-components/react/toggle'; import { ToggleGroup as BaseToggleGroup } from '@base-ui-components/react/toggle-group'; import clsx from 'clsx'; import { twMerge } from 'tailwind-merge'; export interface ToggleOption { value: T; label: React.ReactNode; 'aria-label'?: string; disabled?: boolean; } export interface ToggleGroupProps { value: T[]; onChange: (value: T[]) => void; options: ToggleOption[]; className?: string; toggleClassName?: string; disabled?: boolean; 'aria-label'?: string; multiple?: boolean; } export default function ToggleGroup({ value, onChange, options, className, toggleClassName, disabled, 'aria-label': ariaLabel, multiple = false, }: ToggleGroupProps) { return ( {options.map((option) => { const isPressed = value.includes(option.value as T); const isDisabled = disabled || option.disabled; return ( {option.label} ); })} ); }