> From the [Strife developer docs](https://strife.app/docs/reference/field-reference/fields.tableinput). Every page is listed in [llms.txt](https://strife.app/docs/llms.txt).

# fields.tableInput()

Structured table editor with configurable columns and input types per column.

Structured table editor. Maps to editor `{ name: 'str-table-input', type: 'table-input' }`. Each row is stored as an object keyed by the camelCased header names, so the read type is `Record<string, unknown>[]`.

## Example

```ts
fields.tableInput({
  label: 'Pricing tiers',
  headers: ['Plan', 'Price', 'Seats'],
  inputTypes: ['text', 'number', 'number'],
  rowNumbers: true,
})
```

## Options

| Option           | Type       | Required | Description                                                               |
| ---------------- | ---------- | -------- | ------------------------------------------------------------------------- |
| `label`          | `string`   | Yes      | Label shown to editors in Strife Studio.                                  |
| `headers`        | `string[]` | Yes      | Column header names, one per column.                                      |
| `inputTypes`     | `string[]` | Yes      | Input type per column, parallel to `headers` (e.g. `'text'`, `'number'`). |
| `description`    | `string`   | No       | Tooltip shown to editors.                                                 |
| `searchable`     | `boolean`  | No       | Include in the team's search index.                                       |
| `filterable`     | `boolean`  | No       | Allow filtering content lists by this value.                              |
| `protected`      | `boolean`  | No       | Restrict editing to users with the appropriate permission.                |
| `propertyName`   | `string`   | No       | Override the stored property name.                                        |
| `sortable`       | `boolean`  | No       | Allow row sorting.                                                        |
| `searchableRows` | `boolean`  | No       | Show a search box over rows.                                              |
| `rowNumbers`     | `boolean`  | No       | Render a leading row-number column.                                       |
| `exportable`     | `boolean`  | No       | Allow exporting the table.                                                |

`headers` and `inputTypes` are emitted as plain JSON arrays — the editor binds them directly to the component's array props, and they must stay the same length/order (parallel arrays, not paired objects).

No `localizable` option.

## Output type

`Record<string, unknown>[]` — one object per row, keyed by camelCased header names.

## See also

* [Table Input\~](https://strife.app/docs/reference/fields/table-input.md) — the same editor, documented from the Strife Studio UI side.
