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

# Contact reference

> Shared options, value shapes, and error fields for contact elements.

## Shared options

Every contact element accepts:

| Key         | Type                        | Default                  |
| ----------- | --------------------------- | ------------------------ |
| `disabled`  | `boolean`                   | `false`                  |
| `readOnly`  | `boolean`                   | `false`                  |
| `id`        | `string`                    | auto                     |
| `ariaLabel` | `string`                    | none                     |
| `locale`    | `string`                    | Overflow instance locale |
| `required`  | `boolean`                   | `true`                   |
| `validate`  | `(value) => string \| null` | none                     |
| `fields`    | element-specific            | `{}`                     |

## `BaseFieldOptions`

Per-input customization used across single-field elements:

```typescript theme={null}
type BaseFieldOptions = {
  label?: string;
  placeholder?: string;
  disabled?: boolean;
  autoFocus?: boolean;
  hidden?: boolean;
  id?: string;
  ariaLabel?: string;
};
```

## Values

| Element       | Value                                             |
| ------------- | ------------------------------------------------- |
| `email`       | `string \| null`                                  |
| `fullName`    | `{ firstName: string; lastName: string } \| null` |
| `phone`       | `string \| null` (E.164)                          |
| `companyName` | `string \| null`                                  |

## `FieldError.field`

| Element             | Field values                  |
| ------------------- | ----------------------------- |
| `email`             | `'email'`                     |
| `fullName` (single) | `'fullName'`                  |
| `fullName` (split)  | `'firstName'` \| `'lastName'` |
| `phone`             | `'phone'`                     |
| `companyName`       | `'companyName'`               |

## Methods

Every element supports the standard lifecycle:

* `element.mount(selector)`
* `element.update(partialOptions)`
* `element.submit()`
* `element.unmount()`
* `element.destroy()`
* `element.on(event, handler)`

## Events

Every element event is supported. See [Events overview](/payment-elements/events/overview).
