# FieldProps

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

FieldProps component contract.



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

## Type [#type]

```ts
export interface FieldProps
  extends CommonComponentProps,
    SlottedComponentProps<{
      root: BoxProps;
      label: TextProps;
      description: TextProps;
      control: BoxProps;
      error: TextProps;
      hint: TextProps;
    }> {
  readonly label: string;
  readonly description?: string;
  readonly error?: string | readonly string[];
  readonly field?: { readonly errors: readonly string[] };
  readonly hint?: string;
  readonly required?: boolean;
  readonly children?: ReactNode;
}
```

## Members [#members]

| Member        | Type                                                                                                                                                                                                                                                         | Required | Description                                                                                                                                                                                                                                                                                            | Related types                                                                                                                                                                                |
| ------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | -------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `label`       | `string`                                                                                                                                                                                                                                                     | Yes      | The `label` member uses the `string` contract.                                                                                                                                                                                                                                                         | —                                                                                                                                                                                            |
| `description` | `string \| undefined`                                                                                                                                                                                                                                        | No       | The `description` member uses the `string \| undefined` contract.                                                                                                                                                                                                                                      | —                                                                                                                                                                                            |
| `error`       | `string \| readonly string[] \| undefined`                                                                                                                                                                                                                   | No       | The `error` member uses the `string \| readonly string[] \| undefined` contract.                                                                                                                                                                                                                       | —                                                                                                                                                                                            |
| `field`       | `&#123; readonly errors: readonly string[]; &#125; \| undefined`                                                                                                                                                                                             | No       | The `field` member uses the `&#123; readonly errors: readonly string[]; &#125; \| undefined` contract.                                                                                                                                                                                                 | —                                                                                                                                                                                            |
| `hint`        | `string \| undefined`                                                                                                                                                                                                                                        | No       | The `hint` member uses the `string \| undefined` contract.                                                                                                                                                                                                                                             | —                                                                                                                                                                                            |
| `required`    | `boolean \| undefined`                                                                                                                                                                                                                                       | No       | The `required` member uses the `boolean \| undefined` contract.                                                                                                                                                                                                                                        | —                                                                                                                                                                                            |
| `children`    | `ReactNode`                                                                                                                                                                                                                                                  | No       | The `children` member uses the `ReactNode` contract.                                                                                                                                                                                                                                                   | —                                                                                                                                                                                            |
| `variant`     | `string \| undefined`                                                                                                                                                                                                                                        | No       | The `variant` member uses the `string \| undefined` contract.                                                                                                                                                                                                                                          | —                                                                                                                                                                                            |
| `size`        | `"sm" \| "md" \| "lg" \| undefined`                                                                                                                                                                                                                          | No       | The `size` member uses the `"sm" \| "md" \| "lg" \| undefined` contract.                                                                                                                                                                                                                               | —                                                                                                                                                                                            |
| `unstyled`    | `boolean \| undefined`                                                                                                                                                                                                                                       | No       | The `unstyled` member uses the `boolean \| undefined` contract.                                                                                                                                                                                                                                        | —                                                                                                                                                                                            |
| `className`   | `string \| undefined`                                                                                                                                                                                                                                        | No       | The `className` member uses the `string \| undefined` contract.                                                                                                                                                                                                                                        | —                                                                                                                                                                                            |
| `layout`      | `Partial<Omit<LayoutNodeInput, "id" \| "children" \| "semantics">> \| undefined`                                                                                                                                                                             | No       | The `layout` member uses the `Partial<Omit<LayoutNodeInput, "id" \| "children" \| "semantics">> \| undefined` contract.                                                                                                                                                                                | —                                                                                                                                                                                            |
| `id`          | `string \| undefined`                                                                                                                                                                                                                                        | No       | The `id` member uses the `string \| undefined` contract.                                                                                                                                                                                                                                               | —                                                                                                                                                                                            |
| `testId`      | `string \| undefined`                                                                                                                                                                                                                                        | No       | The `testId` member uses the `string \| undefined` contract.                                                                                                                                                                                                                                           | —                                                                                                                                                                                            |
| `role`        | `SemanticRole \| undefined`                                                                                                                                                                                                                                  | No       | The `role` member uses the `SemanticRole \| undefined` contract.                                                                                                                                                                                                                                       | [`SemanticRole`](/tuil/docs/reference/packages/core/api/semantic-role)                                                                                                                            |
| `disabled`    | `boolean \| undefined`                                                                                                                                                                                                                                       | No       | The `disabled` member uses the `boolean \| undefined` contract.                                                                                                                                                                                                                                        | —                                                                                                                                                                                            |
| `readOnly`    | `boolean \| undefined`                                                                                                                                                                                                                                       | No       | The `readOnly` member uses the `boolean \| undefined` contract.                                                                                                                                                                                                                                        | —                                                                                                                                                                                            |
| `selected`    | `boolean \| undefined`                                                                                                                                                                                                                                       | No       | The `selected` member uses the `boolean \| undefined` contract.                                                                                                                                                                                                                                        | —                                                                                                                                                                                            |
| `checked`     | `boolean \| undefined`                                                                                                                                                                                                                                       | No       | The `checked` member uses the `boolean \| undefined` contract.                                                                                                                                                                                                                                         | —                                                                                                                                                                                            |
| `expanded`    | `boolean \| undefined`                                                                                                                                                                                                                                       | No       | The `expanded` member uses the `boolean \| undefined` contract.                                                                                                                                                                                                                                        | —                                                                                                                                                                                            |
| `valueText`   | `string \| undefined`                                                                                                                                                                                                                                        | No       | The `valueText` member uses the `string \| undefined` contract.                                                                                                                                                                                                                                        | —                                                                                                                                                                                            |
| `slots`       | `Partial<SlotComponents<&#123; root: import("ink").BoxProps; label: import("ink").TextProps; description: import("ink").TextProps; control: import("ink").BoxProps; error: import("ink").TextProps; hint: import("ink").TextProps; &#125;>> \| undefined`    | No       | The `slots` member uses the `Partial<SlotComponents<&#123; root: import("ink").BoxProps; label: import("ink").TextProps; description: import("ink").TextProps; control: import("ink").BoxProps; error: import("ink").TextProps; hint: import("ink").TextProps; &#125;>> \| undefined` contract.        | [`BoxProps`](/tuil/docs/reference/packages/ink/api/box-props), [`SlotComponents`](/tuil/docs/reference/packages/theme/api/slot-components), [`TextProps`](/tuil/docs/reference/packages/ink/api/text-props) |
| `slotProps`   | `Partial<SlotProps<&#123; root: import("ink").BoxProps; label: import("ink").TextProps; description: import("ink").TextProps; control: import("ink").BoxProps; error: import("ink").TextProps; hint: import("ink").TextProps; &#125;, object>> \| undefined` | No       | The `slotProps` member uses the `Partial<SlotProps<&#123; root: import("ink").BoxProps; label: import("ink").TextProps; description: import("ink").TextProps; control: import("ink").BoxProps; error: import("ink").TextProps; hint: import("ink").TextProps; &#125;, object>> \| undefined` contract. | [`BoxProps`](/tuil/docs/reference/packages/ink/api/box-props), [`SlotProps`](/tuil/docs/reference/packages/theme/api/slot-props), [`TextProps`](/tuil/docs/reference/packages/ink/api/text-props)           |

## Source [#source]

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