tuil
ReferencePackages

@mwillbanks/tuil-form

Typed form state, validation, and controlled field adapters for tuil.

View rawEdit

Overview

Typed form state, validation, and controlled field adapters for tuil.

@mwillbanks/tuil-form is independently installable and also participates in the umbrella @mwillbanks/tuil runtime where applicable.

Installation

npm install @mwillbanks/tuil-form

How it operates

Form state coordinates field registration, values, touched and dirty state, sync or async validators, submission, reset, and framework adapters.

Documentation flow diagram. register fields; edit; validate; submit or reject; reset/dispose; S0 leads to S1; S1 leads to S2; S2 leads to S3
Documentation flow diagram. register fields; edit; validate; submit or reject; reset/dispose; S0 leads to S1; S1 leads to S2; S2 leads to S3

API

APISignatureDescription
AdaptedTanStackFieldinterface AdaptedTanStackFieldPublic interface AdaptedTanStackField.
adaptTanStackFieldfunction adaptTanStackFieldPublic function adaptTanStackField.
createFormHookexport createFormHookPublic export createFormHook.
createFormHookContextsexport createFormHookContextsPublic export createFormHookContexts.
FieldValidatortype FieldValidatorPublic type FieldValidator.
FieldValidatorsinterface FieldValidatorsPublic interface FieldValidators.
FormFieldRegistrationinterface FormFieldRegistrationPublic interface FormFieldRegistration.
formOptionsexport formOptionsPublic export formOptions.
FormValidationErrorinterface FormValidationErrorPublic interface FormValidationError.
TanStackFieldLikeinterface TanStackFieldLikePublic interface TanStackFieldLike.
TerminalFieldBindinginterface TerminalFieldBindingPublic interface TerminalFieldBinding.
TerminalFieldControllerclass TerminalFieldControllerPublic class TerminalFieldController.
TerminalFieldOptionsinterface TerminalFieldOptionsPublic interface TerminalFieldOptions.
TerminalFieldStateinterface TerminalFieldStatePublic interface TerminalFieldState.
TerminalFormControllerclass TerminalFormControllerPublic class TerminalFormController.
TerminalFormProviderfunction TerminalFormProviderPublic function TerminalFormProvider.
useFormexport useFormA custom React Hook that returns an extended instance of the FormApi class. This API encapsulates all the necessary functionalities related to the form. It allows you to manage form state, handle submissions, and interact with form fields
useRegisterTerminalFieldfunction useRegisterTerminalFieldPublic function useRegisterTerminalField.
useStoreexport useStorePublic export useStore.
useTerminalFieldfunction useTerminalFieldPublic function useTerminalField.
useTerminalFormControllerfunction useTerminalFormControllerPublic function useTerminalFormController.
useTerminalFormSnapshotfunction useTerminalFormSnapshotPublic function useTerminalFormSnapshot.
ValidationContextinterface ValidationContextPublic interface ValidationContext.
ValidationTriggertype ValidationTriggerPublic type ValidationTrigger.

Events and lifecycle

State changes are subscription-based. UI controls expose onValueChange, onSubmit, and field-level callbacks.

All subscriptions and registrations return a disposer or belong to an owning runtime that disposes them in reverse order.

Example

const form = createForm({ initialValues: { name: "" }, onSubmit: async (values) => save(values) });

On this page