# TablePickerProps

**Kind:** Interface

Props for the `TablePicker` component. Also accepts:
* `SelectStyleProps`

## Properties

### `aria-describedby?`

Type: `undefined | string`

A space separated list of description element IDs.

### `aria-label?`

Type: `undefined | string`

The `aria-label` attribute. Use this if the select is not referenced by a label element.

### `aria-labelledby?`

Type: `undefined | string`

A space separated list of label element IDs.

### `autoFocus?`

Type: `undefined | false | true`

The `autoFocus` attribute.

### `className?`

Type: `undefined | string`

Additional class names to apply to the select.

### `disabled?`

Type: `undefined | false | true`

If set to `true`, the user cannot interact with the select.

### `id?`

Type: `undefined | string`

The `id` attribute.

### `name?`

Type: `undefined | string`

The `name` attribute.

### `onChange?`

Type: `undefined | object`

A function to be called when the selected table changes.

### `placeholder?`

Type: `undefined | string`

The placeholder text when no table is selected.

### `shouldAllowPickingNone?`

Type: `undefined | false | true`

If set to `true`, the user can unset the selected table.

### `size?`

Type: `ControlSizeProp`

The size of the select.

### `style?`

Type: `React.CSSProperties`

Additional styles to apply to the select.

### `tabIndex?`

Type: `undefined | number`

The `tabindex` attribute.

### `table?`

Type: `Table | null`

The selected table model.

---

## TablePickerSyncedProps

**Kind:** Interface

Props for the `TablePickerSynced` component. Also accepts:
* `SelectStyleProps`

### Properties

#### `aria-describedby?`

Type: `undefined | string`

A space separated list of description element IDs.

#### `aria-label?`

Type: `undefined | string`

The `aria-label` attribute. Use this if the select is not referenced by a label element.

#### `aria-labelledby?`

Type: `undefined | string`

A space separated list of label element IDs.

#### `autoFocus?`

Type: `undefined | false | true`

The `autoFocus` attribute.

#### `className?`

Type: `undefined | string`

Additional class names to apply to the select.

#### `disabled?`

Type: `undefined | false | true`

If set to `true`, the user cannot interact with the select.

#### `globalConfigKey`

Type: `GlobalConfigKey`

A string key or array key path in `GlobalConfig`. The selected table will always reflect the table id stored in `GlobalConfig` for this key. Selecting a new table will update `GlobalConfig`.

#### `id?`

Type: `undefined | string`

The `id` attribute.

#### `name?`

Type: `undefined | string`

The `name` attribute.

#### `onChange?`

Type: `undefined | object`

A function to be called when the selected table changes.

#### `placeholder?`

Type: `undefined | string`

The placeholder text when no table is selected.

#### `shouldAllowPickingNone?`

Type: `undefined | false | true`

If set to `true`, the user can unset the selected table.

#### `size?`

Type: `ControlSizeProp`

The size of the select.

#### `style?`

Type: `React.CSSProperties`

Additional styles to apply to the select.

#### `tabIndex?`

Type: `undefined | number`

The `tabindex` attribute.

---

## TablePicker

**Kind:** Component

Dropdown menu component for selecting tables.

[[ Story id="modelpickers--tablepicker-example" title="Table picker example" ]]

**Parameters:**
- `props` (`TablePickerProps`)
- `ref` (`React.Ref<HTMLSelectElement>`)

**Returns:** `Element`

---

## TablePickerSynced

**Kind:** Component

A wrapper around the `TablePicker` component that syncs with `GlobalConfig`.

[[ Story id="modelpickers--tablepickersynced-example" title="Synced table picker example" ]]

**Parameters:**
- `props` (`TablePickerSyncedProps`)
- `ref` (`React.Ref<HTMLSelectElement>`)

**Returns:** `Element`
