# FormProps

Source: /tuil/docs/reference/components/forms/form-props
Locale: en

FormProps component contract.



{/* Generated by tooling/docs/generate-reference.ts. */}

## Type [#type]

```ts
export interface FormProps {
  readonly id?: string;
  readonly controller?: TerminalFormController;
  readonly onSubmit?: (
    values: Readonly<Record<string, unknown>>,
    signal: AbortSignal,
  ) => unknown | Promise<unknown>;
  readonly submitCommand?: string;
  readonly validateCommand?: string;
  readonly children?: ReactNode;
}
```

## Members [#members]

| Member            | Type                                                                                                             | Required | Description                                                                                                                                               | Related types                                                                          |
| ----------------- | ---------------------------------------------------------------------------------------------------------------- | -------- | --------------------------------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------- |
| `id`              | `string \| undefined`                                                                                            | No       | The `id` member uses the `string \| undefined` contract.                                                                                                  | —                                                                                      |
| `controller`      | `TerminalFormController \| undefined`                                                                            | No       | The `controller` member uses the `TerminalFormController \| undefined` contract.                                                                          | [`TerminalFormController`](/tuil/docs/reference/packages/form/api/terminal-form-controller) |
| `onSubmit`        | `((values: Readonly<Record<string, unknown>>, signal: AbortSignal) => unknown \| Promise<unknown>) \| undefined` | No       | The `onSubmit` member uses the `((values: Readonly<Record<string, unknown>>, signal: AbortSignal) => unknown \| Promise<unknown>) \| undefined` contract. | —                                                                                      |
| `submitCommand`   | `string \| undefined`                                                                                            | No       | The `submitCommand` member uses the `string \| undefined` contract.                                                                                       | —                                                                                      |
| `validateCommand` | `string \| undefined`                                                                                            | No       | The `validateCommand` member uses the `string \| undefined` contract.                                                                                     | —                                                                                      |
| `children`        | `ReactNode`                                                                                                      | No       | The `children` member uses the `ReactNode` contract.                                                                                                      | —                                                                                      |

## Source [#source]

[View the secondary source reference](https://github.com/mwillbanks/tuil/blob/main/registry/forms/controls.tsx)
