easy-forms
API reference

<Form>

The top-level component that renders a schema.

import { Form } from '@easy-forms/core';

Most apps use <EasyForm> instead — the pre-wired wrapper (Omit<FormProps, 'registry'>) scaffolded by shadcn add @easy-forms/easy-form, which supplies the renderer registry and chrome for you. Reach for <Form> directly when you want to pass your own registry. See Registry & EasyForm.

Props

PropTypeDefaultDescription
schema*FormSchema<TFormData>The form definition.
registry*RendererRegistryMaps control names to renderer components (e.g. easyFormsRegistry). <EasyForm> supplies this for you.
onSubmit*(values: TFormData) => void | Promise<void>Called with the validated, visible values on submit.
initialValuesPartial<TFormData>Initial field values.
storeFormStoreProvide an external store instead of creating one internally.
dependencyHandlersDependencyHandlerRegistryAdditional or replacement dependency handlers, merged over the defaults.
pluginsFormPlugin[]Lifecycle plugins (logger, autosave, custom).
submitLabelstring'Submit'Submit button label.
resetLabelstring'Reset'Reset button label.
showResetbooleanfalseShow a reset button in the footer.
classNamestringClass applied to the form element.
wizardNextLabelstringOverride the wizard Next label.
wizardPreviousLabelstringOverride the wizard Previous label.

Behavior

  • When schema.wizard is present, <Form> renders the wizard navigation instead of a single page and owns its own submit flow.
  • The default footer disables submit until the form is dirty and valid, and while submitting.
  • Hidden fields (via field or group visibility) are excluded from the onSubmit payload.

On this page