import * as Ariakit from '@ariakit/react'; import { ComponentPropsWithRef, forwardRef, useContext } from 'react'; import styled from 'styled-components'; import { UIComponentWithRef } from '../../components/types'; import { getVariantKey, useVariants } from '../../variants'; import { RadioContext } from './radio.context'; import { IRadioVariants, radioVariants } from './radio.variants'; type Props = { variant?: keyof typeof radioVariants | (string & {}); variants?: IRadioVariants; }; // export type RadioGroupProps = UIStyledComponentProps; const StyledRadioGroup = styled(Ariakit.Group) ` ${props => getVariantKey('group', props.variant, props.variants)} `; type RadioGroupComponent = UIComponentWithRef; export const RadioGroup: RadioGroupComponent = forwardRef( function RadioGroup({ variant = 'default', variants, defaultValue, value, setValue, store, children, ...props }, ref) { const context = useContext(RadioContext); const globalVariants = useVariants('radio', radioVariants); variants = variants || globalVariants; return ( {children} ); } ); export type RadioGroupProps = ComponentPropsWithRef;