import { clsx } from "clsx"; import { ToggleGroup as ToggleGroupPrimitive } from "radix-ui"; import * as React from "react"; import { useGetKey, useGetSet } from "../../hooks"; export const ToggleGroup = React.forwardRef< React.ElementRef, React.ComponentPropsWithoutRef & { ensureValue?: boolean; } >( ( { className, type, children, defaultValue, ensureValue, onValueChange, ...props }, ref, ) => { const key = useGetKey(props as any); const initialValue = React.useMemo( () => ({ value: defaultValue as string | string[] | undefined }), [defaultValue], ); const [{ value }, setState] = useGetSet<{ value: string | string[] | undefined; }>(key, initialValue); return ( { if (ensureValue && !value) { return; } setState( { value }, process.env.PREVIEW ? `onValueChange` : undefined, ); onValueChange?.(value as any); }} > {children} ); }, ); (ToggleGroup as any).ToggleGroupItem = React.forwardRef< React.ElementRef, React.ComponentPropsWithoutRef >(({ className, ...props }, ref) => { return ( ); }); (ToggleGroup as any).ToggleGroupItem.displayName = ToggleGroupPrimitive.Item.displayName;