# Menu API

> Auto-generated API reference for `Menu` from @vuetify/v0 (Vuetify0).
> Source of truth: https://0.vuetifyjs.com/api/menu

## Related

- https://0.vuetifyjs.com/components/disclosure/menu
- https://0.vuetifyjs.com/components/disclosure/popover
- https://0.vuetifyjs.com/composables/system/use-popover

## Menu.Root

### Props

| Name | Type | Default | Required | Description |
|---|---|---|---|---|
| `id` | `string \| undefined` | — | no | DOM id prefix for the menu and the controls that open it |
| `value` | `any` | — | no | Layer id used when an activator or content omits `value` |
| `disabled` | `boolean \| undefined` | `false` | no | Disables every activator and item in this menu |
| `openDelay` | `number \| undefined` | `100` | no | Delay before a hover or pointer open. Keyboard, click, and right-click skip it. |
| `closeDelay` | `number \| undefined` | `250` | no | Delay before a hover-opened menu closes after the pointer leaves |
| `openOnHover` | `boolean \| undefined` | `false` | no | Open the top menu when the pointer rests on its activator |
| `namespace` | `string \| undefined` | `"v0:menu"` | no | Injection key. |
| `modelValue` | `any` | `null` | no | — |

### Slots

| Name | Type | Description |
|---|---|---|
| `default` | `MenuRootSlotProps` | — |

## Menu.Activator

### Props

| Name | Type | Default | Required | Description |
|---|---|---|---|---|
| `value` | `any` | — | no | Layer this activator opens. Omit it to use Menu.Root's `value`. |
| `disabled` | `MaybeRefOrGetter<boolean> \| undefined` | `false` | no | Disables this activator |
| `namespace` | `string \| undefined` | `"v0:menu"` | no | Injection key of the owning menu. |

### Slots

| Name | Type | Description |
|---|---|---|
| `default` | `MenuActivatorSlotProps` | — |

## Menu.Bar

### Props

| Name | Type | Default | Required | Description |
|---|---|---|---|---|
| `namespace` | `string \| undefined` | `"v0:menu"` | no | Injection key of the owning menu. |

### Slots

| Name | Type | Description |
|---|---|---|
| `default` | `MenuBarSlotProps` | — |

## Menu.CheckboxItem

### Props

| Name | Type | Default | Required | Description |
|---|---|---|---|---|
| `id` | `any` | — | no | Stable id. Auto-generated when omitted. |
| `label` | `string \| undefined` | — | no | Typeahead text. Falls back to the item's text. |
| `disabled` | `MaybeRefOrGetter<boolean> \| undefined` | `false` | no | Disables the gesture. The checked model can still be written. |
| `namespace` | `string \| undefined` | `"v0:menu"` | no | Injection key of the owning menu. |
| `checked` | `boolean \| undefined` | `false` | no | — |

### Events

| Name | Type | Description |
|---|---|---|
| `update:checked` | `unknown[]` | — |

### Slots

| Name | Type | Description |
|---|---|---|
| `default` | `MenuCheckboxItemSlotProps` | — |

## Menu.Content

### Props

| Name | Type | Default | Required | Description |
|---|---|---|---|---|
| `value` | `any` | — | no | Layer this popup belongs to. Omit it to use Menu.Root's `value`. |
| `eager` | `boolean \| undefined` | `false` | no | Render items before the first open |
| `positionArea` | `string \| undefined` | — | no | CSS position-area for the popup. |
| `positionTry` | `string \| undefined` | — | no | CSS position-try fallbacks |
| `namespace` | `string \| undefined` | `"v0:menu"` | no | Injection key of the owning menu. |

### Slots

| Name | Type | Description |
|---|---|---|
| `default` | `MenuContentSlotProps` | — |

## Menu.Context

### Props

| Name | Type | Default | Required | Description |
|---|---|---|---|---|
| `namespace` | `string \| undefined` | `"v0:menu"` | no | Injection key of the owning menu. |

### Slots

| Name | Type | Description |
|---|---|---|
| `default` | `MenuContextSlotProps` | — |

## Menu.Item

### Props

| Name | Type | Default | Required | Description |
|---|---|---|---|---|
| `id` | `any` | — | no | Stable id. Auto-generated when omitted. |
| `label` | `string \| undefined` | — | no | Typeahead text. Falls back to the item's text. |
| `disabled` | `MaybeRefOrGetter<boolean> \| undefined` | `false` | no | Disables this item |
| `namespace` | `string \| undefined` | `"v0:menu"` | no | Injection key of the owning menu. |

### Slots

| Name | Type | Description |
|---|---|---|
| `default` | `MenuItemSlotProps` | — |

## Menu.RadioGroup

### Props

| Name | Type | Default | Required | Description |
|---|---|---|---|---|
| `label` | `string \| undefined` | — | no | Accessible name for the group |
| `disabled` | `boolean \| undefined` | `false` | no | Disables every radio in the group |
| `modelValue` | `unknown` | — | no | — |

### Slots

| Name | Type | Description |
|---|---|---|
| `default` | `MenuRadioGroupSlotProps` | — |

## Menu.RadioItem

### Props

| Name | Type | Default | Required | Description |
|---|---|---|---|---|
| `value` | `unknown` | — | yes | Value written to the group model when this item is selected |
| `id` | `any` | — | no | Stable id. Auto-generated when omitted. |
| `label` | `string \| undefined` | — | no | Typeahead text. Falls back to the item's text. |
| `disabled` | `MaybeRefOrGetter<boolean> \| undefined` | `false` | no | Disables the gesture. The group model can still be written. |
| `namespace` | `string \| undefined` | `"v0:menu"` | no | Injection key of the owning menu. |

### Slots

| Name | Type | Description |
|---|---|---|
| `default` | `MenuRadioItemSlotProps` | — |

## Menu.Separator

### Slots

| Name | Type | Description |
|---|---|---|
| `default` | `MenuSeparatorSlotProps` | — |

## Menu.Sub

### Props

| Name | Type | Default | Required | Description |
|---|---|---|---|---|
| `value` | `any` | — | no | Layer id for this submenu. Auto-generated when omitted. |

### Slots

| Name | Type | Description |
|---|---|---|
| `default` | `{}` | — |

## Menu.SubActivator

### Props

| Name | Type | Default | Required | Description |
|---|---|---|---|---|
| `id` | `any` | — | no | Stable id. Auto-generated when omitted. |
| `label` | `string \| undefined` | — | no | Typeahead text. Falls back to the item's text. |
| `disabled` | `MaybeRefOrGetter<boolean> \| undefined` | `false` | no | Disables this item |
| `namespace` | `string \| undefined` | `"v0:menu"` | no | Injection key of the owning menu. |

### Slots

| Name | Type | Description |
|---|---|---|
| `default` | `MenuSubActivatorSlotProps` | — |

## Menu.SubContent

### Props

| Name | Type | Default | Required | Description |
|---|---|---|---|---|
| `eager` | `boolean \| undefined` | `false` | no | Render items before the first open |
| `positionArea` | `string \| undefined` | — | no | CSS position-area for the submenu. |
| `positionTry` | `string \| undefined` | — | no | CSS position-try fallbacks. |
| `namespace` | `string \| undefined` | `"v0:menu"` | no | Injection key of the owning menu. |

### Slots

| Name | Type | Description |
|---|---|---|
| `default` | `MenuSubContentSlotProps` | — |
