# MenuControl

Canonical page: https://www.adaptabletools.com/docs/reference/menucontrol

A menu that *contains* other Controls. Composable and nestable, enabling both
dropdown menus and split buttons (a primary action plus a chevron of extras).

```ts title="TypeScript"
export interface MenuControl<TData = any, CTX = ActionColumnContext<TData>> extends BaseControl<TData, CTX> 
```

###### Extends

[`BaseControl`](https://www.adaptabletools.com/docs/reference/basecontrol.md)`<TData, CTX>`

## Properties

| Property | Type | Description | Default |
| --- | --- | --- | --- |
| [controls](https://www.adaptabletools.com/docs/reference/menucontrol.md#controls) | [`ActionColumnControl`](https://www.adaptabletools.com/docs/reference/actioncolumncontrol.md)`<TData, CTX>[]` | The Controls shown inside the menu. Menus may be nested. |   |
| [primary](https://www.adaptabletools.com/docs/reference/menucontrol.md#primary) | [`ActionColumnControl`](https://www.adaptabletools.com/docs/reference/actioncolumncontrol.md)`<TData, CTX>` | The primary, directly-clickable Control when `variant` is `'split'`. |   |
| [type](https://www.adaptabletools.com/docs/reference/menucontrol.md#type) | `'menu'` | Discriminator. Set to `'menu'`. |   |
| [variant](https://www.adaptabletools.com/docs/reference/menucontrol.md#variant) | `'dropdown' \| 'split'` | `'dropdown'` (default) shows a single trigger; `'split'` renders `primary`<br/>as a directly-clickable action alongside a chevron that opens `controls`. | &#39;dropdown&#39; |

## Property Details

### controls

The Controls shown inside the menu. Menus may be nested.

```ts title="TypeScript"
controls: ActionColumnControl<TData, CTX>[];
```

###### Property Value

[`ActionColumnControl`](https://www.adaptabletools.com/docs/reference/actioncolumncontrol.md)`<TData, CTX>[]`

### primary

The primary, directly-clickable Control when `variant` is `'split'`.

```ts title="TypeScript"
primary?: ActionColumnControl<TData, CTX>;
```

###### Property Value

[`ActionColumnControl`](https://www.adaptabletools.com/docs/reference/actioncolumncontrol.md)`<TData, CTX>`

### type

Discriminator. Set to `'menu'`.

```ts title="TypeScript"
type: 'menu';
```

###### Property Value

`'menu'`

### variant

`'dropdown'` (default) shows a single trigger; `'split'` renders `primary`
as a directly-clickable action alongside a chevron that opens `controls`.

```ts title="TypeScript"
variant?: 'dropdown' | 'split';
```

###### Default Value

&#39;dropdown&#39;

###### Property Value

`'dropdown' | 'split'`
