import { ReactNode } from 'react'; import { CheckboxLabelUnion, CheckboxProps, InputWrapperProps, RadioGroupProps, RadioProps, SelectProps, TextAreaProps } from '../../Form'; export interface BaseConnectedFieldProps { onUpdate?: (value: boolean) => void; } export interface ConnectedFieldProps extends BaseConnectedFieldProps { name: string; } export interface MinimalCheckboxProps extends Omit { } export interface BaseConnectedCheckboxProps extends MinimalCheckboxProps, ConnectedFieldProps { } export type ConnectedCheckboxProps = BaseConnectedCheckboxProps & CheckboxLabelUnion; type FieldComponent = Omit; export interface ConnectedInputProps extends FieldComponent, ConnectedFieldProps { } export interface ConnectedRadioProps extends FieldComponent, ConnectedFieldProps { } export interface ConnectedBaseRadioGroupProps extends FieldComponent { } export type ConnectedBaseRadioInputProps = FieldComponent & { label: ReactNode; value: string | number; }; export interface ConnectedRadioGroupProps extends ConnectedBaseRadioGroupProps, ConnectedFieldProps { } export interface ConnectedRadioGroupInputProps extends Omit, ConnectedFieldProps { options: ConnectedBaseRadioInputProps[]; } export interface ConnectedSelectProps extends FieldComponent, ConnectedFieldProps { } export interface ConnectedTextAreaProps extends FieldComponent, ConnectedFieldProps { } export type NestedConnectedCheckboxOption = Omit & CheckboxLabelUnion & { options?: NestedConnectedCheckboxOption[]; }; export interface ConnectedNestedCheckboxesProps extends Pick { options: NestedConnectedCheckboxOption[]; onUpdate?: (values: string[]) => void; } export {};