import { match } from 'ts-pattern'; import { NumberFieldInput } from './NumberFieldInput.tsx'; import { NumberFieldRadio } from './NumberFieldRadio.tsx'; import { NumberFieldSelect } from './NumberFieldSelect.tsx'; import { NumberFieldSlider } from './NumberFieldSlider.tsx'; import type { NumberFieldInputProps } from './NumberFieldInput.tsx'; import type { NumberFieldRadioProps } from './NumberFieldRadio.tsx'; import type { NumberFieldSliderProps } from './NumberFieldSlider.tsx'; export type NumberFieldProps = NumberFieldInputProps | NumberFieldRadioProps | NumberFieldSliderProps; export const NumberField = (props: NumberFieldProps) => { return match(props) .with({ variant: 'input' }, (props) => ) .with({ variant: 'slider' }, (props) => ) .with({ variant: 'radio' }, (props) => ) .with({ variant: 'select' }, (props) => ) .exhaustive(); };