> ## Documentation Index
> Fetch the complete documentation index at: https://docs.bijection.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Module: tanstack-form

> TanStack Form bound to one recoverable Bijection operation request.

TanStack Form bound to one recoverable Bijection operation request.

TanStack Form owns live input, fields, validation and its error
presentation; Bijection owns the durable draft, the captured request,
retries and recovery.

## Type Aliases

### Op

Ƭ **Op**: [`OperationReference`](https://docs.bijection.com/api/modules/server#operationreference)\<`"public"`, `any`, `any`>

Not exported: an exported type refers to it.

***

### TanStackFormInput

Ƭ **TanStackFormInput**: `Object`

Form data a draft can retain losslessly.

#### Index signature

▪ \[key: `string`]: [`Value`](https://docs.bijection.com/api/modules/values#value) | `undefined`

***

### Sync

Ƭ **Sync**\<`T`>: `undefined` | `FormValidateOrFn`\<`T`>

Not exported: an exported type refers to it.

#### Type parameters

| Name |
| :- |
| `T` |

***

### Async

Ƭ **Async**\<`T`>: `undefined` | `FormAsyncValidateOrFn`\<`T`>

Not exported: an exported type refers to it.

#### Type parameters

| Name |
| :- |
| `T` |

***

### TanStackFormBindingOptions

Ƭ **TanStackFormBindingOptions**\<`O`, `TFormData`, `TOnMount`, `TOnChange`, `TOnChangeAsync`, `TOnBlur`, `TOnBlurAsync`, `TOnSubmit`, `TOnSubmitAsync`, `TOnDynamic`, `TOnDynamicAsync`, `TOnServer`, `TSubmitMeta`>: `Omit`\<[`UseOperationBindingOptions`](https://docs.bijection.com/api/modules/react#useoperationbindingoptions)\<`O`, `TFormData`, `TFormData`>, `"editor"`> & \{ `form`: `Omit`\<`FormOptions`\<`TFormData`, `TOnMount`, `TOnChange`, `TOnChangeAsync`, `TOnBlur`, `TOnBlurAsync`, `TOnSubmit`, `TOnSubmitAsync`, `TOnDynamic`, `TOnDynamicAsync`, `TOnServer`, `TSubmitMeta`>, `"onSubmit"` | `"onSubmitInvalid"`>  }

#### Type parameters

| Name | Type |
| :- | :- |
| `O` | extends [`Op`](https://docs.bijection.com/api/modules/tanstack_form#op) |
| `TFormData` | extends [`TanStackFormInput`](https://docs.bijection.com/api/modules/tanstack_form#tanstackforminput) |
| `TOnMount` | extends [`Sync`](https://docs.bijection.com/api/modules/tanstack_form#sync)\<`TFormData`> |
| `TOnChange` | extends [`Sync`](https://docs.bijection.com/api/modules/tanstack_form#sync)\<`TFormData`> |
| `TOnChangeAsync` | extends [`Async`](https://docs.bijection.com/api/modules/tanstack_form#async)\<`TFormData`> |
| `TOnBlur` | extends [`Sync`](https://docs.bijection.com/api/modules/tanstack_form#sync)\<`TFormData`> |
| `TOnBlurAsync` | extends [`Async`](https://docs.bijection.com/api/modules/tanstack_form#async)\<`TFormData`> |
| `TOnSubmit` | extends [`Sync`](https://docs.bijection.com/api/modules/tanstack_form#sync)\<`TFormData`> |
| `TOnSubmitAsync` | extends [`Async`](https://docs.bijection.com/api/modules/tanstack_form#async)\<`TFormData`> |
| `TOnDynamic` | extends [`Sync`](https://docs.bijection.com/api/modules/tanstack_form#sync)\<`TFormData`> |
| `TOnDynamicAsync` | extends [`Async`](https://docs.bijection.com/api/modules/tanstack_form#async)\<`TFormData`> |
| `TOnServer` | extends [`Async`](https://docs.bijection.com/api/modules/tanstack_form#async)\<`TFormData`> |
| `TSubmitMeta` | `TSubmitMeta` |

## Functions

### useTanStackFormBinding

▸ **useTanStackFormBinding**\<`O`, `TFormData`, `TOnMount`, `TOnChange`, `TOnChangeAsync`, `TOnBlur`, `TOnBlurAsync`, `TOnSubmit`, `TOnSubmitAsync`, `TOnDynamic`, `TOnDynamicAsync`, `TOnServer`, `TSubmitMeta`>(`operation`, `options`): `Object`

Create a TanStack form and bind it to one recoverable operation request.
`form` is TanStack Form's own instance with its native field types: render
`form.Field` and subscribe to its store as usual. Submission runs its own
`handleSubmit`, so `submissionAttempts` and the transition to
`modeAfterSubmission` follow its configuration; submit through
`binding.handleSubmit` or `binding.submit()`.

#### Type parameters

| Name | Type |
| :- | :- |
| `O` | extends [`Op`](https://docs.bijection.com/api/modules/tanstack_form#op) |
| `TFormData` | extends [`TanStackFormInput`](https://docs.bijection.com/api/modules/tanstack_form#tanstackforminput) |
| `TOnMount` | extends [`Sync`](https://docs.bijection.com/api/modules/tanstack_form#sync)\<`TFormData`> |
| `TOnChange` | extends [`Sync`](https://docs.bijection.com/api/modules/tanstack_form#sync)\<`TFormData`> |
| `TOnChangeAsync` | extends [`Async`](https://docs.bijection.com/api/modules/tanstack_form#async)\<`TFormData`> |
| `TOnBlur` | extends [`Sync`](https://docs.bijection.com/api/modules/tanstack_form#sync)\<`TFormData`> |
| `TOnBlurAsync` | extends [`Async`](https://docs.bijection.com/api/modules/tanstack_form#async)\<`TFormData`> |
| `TOnSubmit` | extends [`Sync`](https://docs.bijection.com/api/modules/tanstack_form#sync)\<`TFormData`> |
| `TOnSubmitAsync` | extends [`Async`](https://docs.bijection.com/api/modules/tanstack_form#async)\<`TFormData`> |
| `TOnDynamic` | extends [`Sync`](https://docs.bijection.com/api/modules/tanstack_form#sync)\<`TFormData`> |
| `TOnDynamicAsync` | extends [`Async`](https://docs.bijection.com/api/modules/tanstack_form#async)\<`TFormData`> |
| `TOnServer` | extends [`Async`](https://docs.bijection.com/api/modules/tanstack_form#async)\<`TFormData`> |
| `TSubmitMeta` | `TSubmitMeta` |

#### Parameters

| Name | Type |
| :- | :- |
| `operation` | `O` |
| `options` | [`TanStackFormBindingOptions`](https://docs.bijection.com/api/modules/tanstack_form#tanstackformbindingoptions)\<`O`, `TFormData`, `TOnMount`, `TOnChange`, `TOnChangeAsync`, `TOnBlur`, `TOnBlurAsync`, `TOnSubmit`, `TOnSubmitAsync`, `TOnDynamic`, `TOnDynamicAsync`, `TOnServer`, `TSubmitMeta`> |

#### Returns

`Object`

| Name | Type |
| :- | :- |
| `form` | `ReactFormExtendedApi`\<`TFormData`, `TOnMount`, `TOnChange`, `TOnChangeAsync`, `TOnBlur`, `TOnBlurAsync`, `TOnSubmit`, `TOnSubmitAsync`, `TOnDynamic`, `TOnDynamicAsync`, `TOnServer`, `TSubmitMeta`> |
| `binding` | [`MountedOperationBinding`](https://docs.bijection.com/api/modules/react#mountedoperationbinding)\<`O`, `TFormData`> |


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.