Skip to main content

Interface: FormField

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

Intermediate representation of a single form field produced by walkSchema. Each processor fills in component, props, constraints, and optional children. This structure is consumed by codegen (static TSX generation) and by the runtime FieldRenderer to produce a live React component tree.

Properties

arrayItem?

optional arrayItem?: FormField

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

Template for array items


children?

optional children?: FormField[]

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

Children for nested objects


component

component: string

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

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


constraints

constraints: FormFieldConstraints

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

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


defaultValue?

optional defaultValue?: unknown

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

Default value from z.default() or metadata


deprecated

deprecated: boolean

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

Whether the field is marked as deprecated in the schema registry


description?

optional description?: string

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

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


disabled

disabled: boolean

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

Non-interactive state (greyed out)


hasCustomRender?

optional hasCustomRender?: boolean

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

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


helpText?

optional helpText?: string

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

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


hidden

hidden: boolean

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

Hidden but present in form state


key

key: string

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

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


label

label: string

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

Display label


options?

optional options?: FormFieldOption[]

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

Options for enum/union select fields


order?

optional order?: number

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

Display order override from form registry


placeholder?

optional placeholder?: string

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

Placeholder from examples[0] or metadata


props

props: Record<string, unknown>

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

Pass-through props for the component


readOnly

readOnly: boolean

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

Read-only from z.readonly() or metadata


render?

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

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

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:113

Whether the field is required


validation?

optional validation?: ValidationStrategy

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

Validation strategy set by optimizers (undefined = use zodResolver)


zodSchema?

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

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

Atomic Zod schema for this field, set by L1 optimizer


zodType

zodType: string

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

Original Zod def.type for reference