UNPKG

zod-to-fields

Version:

Turn your Zod schemas into configurable field arrays for easy integration with HTML, React, Vue, and more.

28 lines (27 loc) 1.2 kB
import type { BaseFieldAttributes } from '../types/FieldAttributes'; import type { PartialFieldInputAttributes, PartialFieldSelectAttributes, PartialFieldOptionAttributes } from '../types/HTMLAttributes'; type ExtendedFieldInputAttributes = BaseFieldAttributes & Omit<PartialFieldInputAttributes, 'name'>; type ExtendedFieldSelectAttributes = BaseFieldAttributes & Omit<PartialFieldSelectAttributes, 'options'> & { type: 'select'; options: Array<PartialFieldOptionAttributes>; }; export type InputBooleanFieldOptions = ExtendedFieldInputAttributes & { tag: 'input'; type: 'checkbox' | 'radio'; }; export type InputStringFieldOptions = ExtendedFieldInputAttributes & { tag: 'input'; type: 'url' | 'text' | 'password' | 'search' | 'tel' | 'email'; }; export type InputNumberFieldOptions = ExtendedFieldInputAttributes & { tag: 'input'; type: 'number'; }; type InputEnumFieldSelectOptions = { tag: 'select'; } & ExtendedFieldSelectAttributes; type InputEnumFieldInputOptions = InputBooleanFieldOptions & { options: Array<PartialFieldOptionAttributes>; }; export type InputEnumFieldOptions = InputEnumFieldSelectOptions | InputEnumFieldInputOptions; export {};