'use client'; import type { ButtonProps } from '@chakra-ui/react'; import { Button, Toggle as ChakraToggle, useToggleContext } from '@chakra-ui/react'; import * as React from 'react'; interface ToggleProps extends ChakraToggle.RootProps { variant?: keyof typeof variantMap; size?: ButtonProps['size']; } const variantMap = { solid: { on: 'solid', off: 'outline' }, surface: { on: 'surface', off: 'outline' }, subtle: { on: 'subtle', off: 'ghost' }, ghost: { on: 'subtle', off: 'ghost' }, } as const; export const Toggle = React.forwardRef(function Toggle(props, ref) { const { variant = 'subtle', size, children, ...rest } = props; const variantConfig = variantMap[variant]; return ( {children} ); }); interface ToggleBaseButtonProps extends Omit { variant: Record<'on' | 'off', ButtonProps['variant']>; } const ToggleBaseButton = React.forwardRef( function ToggleBaseButton(props, ref) { const toggle = useToggleContext(); const { variant, ...rest } = props; return