Skip to main content

Interface: FormField

Defined in: packages/core/src/types.ts:43

Properties

arrayItem?

optional arrayItem?: FormField

Defined in: packages/core/src/types.ts:77

Template for array items


children?

optional children?: FormField[]

Defined in: packages/core/src/types.ts:75

Children for nested objects


component

component: string

Defined in: packages/core/src/types.ts:47

Component name from ComponentMap, e.g. "Input", "Select", "Textarea"


constraints

constraints: FormFieldConstraints

Defined in: packages/core/src/types.ts:79

Validation constraints extracted from Zod v4 constraint bag (_zod.bag)


defaultValue?

optional defaultValue?: unknown

Defined in: packages/core/src/types.ts:59

Default value from z.default() or metadata


deprecated

deprecated: boolean

Defined in: packages/core/src/types.ts:71

Whether the field is marked as deprecated in the schema registry


description?

optional description?: string

Defined in: packages/core/src/types.ts:53

Help text from .describe() or .meta()


disabled

disabled: boolean

Defined in: packages/core/src/types.ts:67

Non-interactive state (greyed out)


hasCustomRender?

optional hasCustomRender?: boolean

Defined in: packages/core/src/types.ts:83

Whether a custom render function is registered for this field (runtime only)


helpText?

optional helpText?: string

Defined in: packages/core/src/types.ts:69

Help text rendered below the input, distinct from description (below label)


hidden

hidden: boolean

Defined in: packages/core/src/types.ts:63

Hidden but present in form state


key

key: string

Defined in: packages/core/src/types.ts:45

Field path, e.g. "name", "address.street", "items.0.name"


label

label: string

Defined in: packages/core/src/types.ts:51

Display label


options?

optional options?: FormFieldOption[]

Defined in: packages/core/src/types.ts:73

Options for enum/union select fields


order?

optional order?: number

Defined in: packages/core/src/types.ts:65

Display order override from form registry


placeholder?

optional placeholder?: string

Defined in: packages/core/src/types.ts:55

Placeholder from examples[0] or metadata


props

props: Record<string, unknown>

Defined in: packages/core/src/types.ts:49

Pass-through props for the component


readOnly

readOnly: boolean

Defined in: packages/core/src/types.ts:61

Read-only from z.readonly() or metadata


render?

optional render?: (field, props) => unknown

Defined in: packages/core/src/types.ts:85

Custom render function from FormMeta (runtime only, not serialisable)

Parameters

field

FormField

props

Record<string, unknown>

Returns

unknown


required

required: boolean

Defined in: packages/core/src/types.ts:57

Whether the field is required


validation?

optional validation?: ValidationStrategy

Defined in: packages/core/src/types.ts:89

Validation strategy set by optimizers (undefined = use zodResolver)


zodSchema?

optional zodSchema?: $ZodType<unknown, unknown, $ZodTypeInternals<unknown, unknown>>

Defined in: packages/core/src/types.ts:87

Atomic Zod schema for this field, set by L1 optimizer


zodType

zodType: string

Defined in: packages/core/src/types.ts:81

Original Zod def.type for reference