import React, {forwardRef, Ref} from 'react'; import clsx from 'clsx'; import {useObjectRef} from '@react-aria/utils'; import {InputSize} from '../input-field/input-size'; import {useAutoFocus} from '../../focus/use-auto-focus'; import {RadioProps} from '../radio-group/radio'; export interface SegmentedRadioProps extends RadioProps { labelRef?: Ref; isSelected?: boolean; } export const SegmentedRadio = forwardRef( (props, ref) => { const { children, autoFocus, size, invalid, isFirst, labelRef, isSelected, ...domProps } = props; const inputRef = useObjectRef(ref); useAutoFocus({autoFocus}, inputRef); const sizeClassNames = getSizeClassNames(size); return ( ); } ); function getSizeClassNames(size?: InputSize): string { switch (size) { case 'xs': return 'px-6 py-3 text-xs'; case 'sm': return 'px-10 py-5 text-sm'; case 'lg': return 'px-16 py-6 text-lg'; default: return 'px-16 py-8 text-sm'; } }