import type { BooleanFormField, DateFormField, NumberFormField, ScalarFieldValue, SetFormField, StringFormField } from '@douglasneuroinformatics/libui-form-types'; import { BooleanField } from './BooleanField/BooleanField.tsx'; import { DateField } from './DateField/DateField.tsx'; import { NumberField } from './NumberField/NumberField.tsx'; import { SetField } from './SetField/SetField.tsx'; import { StringField } from './StringField/StringField.tsx'; import type { BooleanFieldProps } from './BooleanField/BooleanField.tsx'; import type { DateFieldProps } from './DateField/DateField.tsx'; import type { NumberFieldProps } from './NumberField/NumberField.tsx'; import type { SetFieldProps } from './SetField/SetField.tsx'; import type { StringFieldProps } from './StringField/StringField.tsx'; import type { BaseFieldComponentProps } from './types.ts'; export type ScalarFieldProps = BaseFieldComponentProps & { field: BooleanFormField | DateFormField | NumberFormField | SetFormField | StringFormField; }; export const ScalarField = ({ field, ...props }: ScalarFieldProps) => { switch (field.kind) { case 'boolean': return ; case 'date': return ; case 'number': return ; case 'set': return ; case 'string': return ; default: throw new Error(`Unexpected value for kind: ${Reflect.get(field, 'kind') satisfies never}`); } };