Loading source
Pulling the file list, source metadata, and syntax-aware rendering for this listing.
Source from repo
Build accessible, unstyled Vue 3 components using Reka UI (formerly Radix Vue) with WAI-ARIA compliance.
Files
Skill
Size
Entrypoint
Format
Open file
Syntax-highlighted preview of this file as included in the skill package.
components/menubar.md
1# Menubar23Horizontal menu bar45**Parts:** `MenubarRoot`, `MenubarMenu`, `MenubarTrigger`, `MenubarPortal`, `MenubarContent`, `MenubarItem`, `MenubarCheckboxItem`, `MenubarRadioGroup`, `MenubarRadioItem`, `MenubarItemIndicator`, `MenubarLabel`, `MenubarGroup`, `MenubarSeparator`, `MenubarSub`, `MenubarSubTrigger`, `MenubarSubContent`, `MenubarArrow`67## MenubarRoot89### Props10| Prop | Type | Default |11|------|------|---------|12| `defaultValue` | `string` | - |13| `dir` | `"ltr" \| "rtl"` | - |14| `loop` | `boolean` | `false` |15| `modelValue` | `string` | - |1617### Emits18| Event | Payload |19|-------|---------|20| `update:modelValue` | `[value: boolean]` |2122### Slots23| Slot | Type |24|------|------|25| `modelValue` | `string` |2627## MenubarMenu2829### Props30| Prop | Type | Default |31|------|------|---------|32| `value` | `string` | - |3334## MenubarTrigger3536### Props37| Prop | Type | Default |38|------|------|---------|39| `as` | `AsTag \| Component` | `"button"` |40| `asChild` | `boolean` | - |41| `disabled` | `boolean` | - |4243## MenubarPortal4445### Props46| Prop | Type | Default |47|------|------|---------|48| `disabled` | `boolean` | - |49| `forceMount` | `boolean` | - |50| `to` | `string \| HTMLElement` | - |5152## MenubarContent5354### Props55| Prop | Type | Default |56|------|------|---------|57| `align` | `"start" \| "center" \| "end"` | `"start"` |58| `alignOffset` | `number` | - |59| `arrowPadding` | `number` | - |60| `as` | `AsTag \| Component` | `"div"` |61| `asChild` | `boolean` | - |62| `avoidCollisions` | `boolean` | - |63| `collisionBoundary` | `Element \| (Element \| null)[] \| null` | - |64| `collisionPadding` | `number \| Partial<Record<"top" \| "right" \| "bott...` | - |65| `forceMount` | `boolean` | - |66| `hideWhenDetached` | `boolean` | - |67| `loop` | `boolean` | - |68| `prioritizePosition` | `boolean` | - |69| `side` | `"top" \| "right" \| "bottom" \| "left"` | - |70| `sideOffset` | `number` | - |71| `sticky` | `"partial" \| "always"` | - |72| `updatePositionStrategy` | `"always" \| "optimized"` | - |7374### Emits75| Event | Payload |76|-------|---------|77| `closeAutoFocus` | `[event: Event]` |78| `escapeKeyDown` | `[event: KeyboardEvent]` |79| `focusOutside` | `[event: FocusOutsideEvent]` |80| `interactOutside` | `[event: PointerDownOutsideEvent \| FocusOutsideE...` |81| `pointerDownOutside` | `[event: PointerDownOutsideEvent]` |8283## MenubarItem8485### Props86| Prop | Type | Default |87|------|------|---------|88| `as` | `AsTag \| Component` | `"div"` |89| `asChild` | `boolean` | - |90| `disabled` | `boolean` | - |91| `textValue` | `string` | - |9293### Emits94| Event | Payload |95|-------|---------|96| `select` | `[event: Event]` |9798## MenubarCheckboxItem99100### Props101| Prop | Type | Default |102|------|------|---------|103| `as` | `AsTag \| Component` | `"div"` |104| `asChild` | `boolean` | - |105| `checked` | `false \| true \| "indeterminate"` | - |106| `disabled` | `boolean` | - |107| `textValue` | `string` | - |108109### Emits110| Event | Payload |111|-------|---------|112| `select` | `[event: Event]` |113| `update:checked` | `[payload: boolean]` |114115## MenubarRadioGroup116117### Props118| Prop | Type | Default |119|------|------|---------|120| `as` | `AsTag \| Component` | `"div"` |121| `asChild` | `boolean` | - |122| `modelValue` | `string` | - |123124### Emits125| Event | Payload |126|-------|---------|127| `update:modelValue` | `[payload: string]` |128129## MenubarRadioItem130131### Props132| Prop | Type | Default |133|------|------|---------|134| `as` | `AsTag \| Component` | `"div"` |135| `asChild` | `boolean` | - |136| `disabled` | `boolean` | - |137| `textValue` | `string` | - |138| `value`* | `string` | - |139140### Emits141| Event | Payload |142|-------|---------|143| `select` | `[event: Event]` |144145## MenubarItemIndicator146147### Props148| Prop | Type | Default |149|------|------|---------|150| `as` | `AsTag \| Component` | `"div"` |151| `asChild` | `boolean` | - |152| `forceMount` | `boolean` | - |153154## MenubarLabel155156### Props157| Prop | Type | Default |158|------|------|---------|159| `as` | `AsTag \| Component` | `"div"` |160| `asChild` | `boolean` | - |161162## MenubarGroup163164### Props165| Prop | Type | Default |166|------|------|---------|167| `as` | `AsTag \| Component` | `"div"` |168| `asChild` | `boolean` | - |169170## MenubarSeparator171172### Props173| Prop | Type | Default |174|------|------|---------|175| `as` | `AsTag \| Component` | `"div"` |176| `asChild` | `boolean` | - |177178## MenubarSub179180### Props181| Prop | Type | Default |182|------|------|---------|183| `defaultOpen` | `boolean` | - |184| `open` | `boolean` | - |185186### Emits187| Event | Payload |188|-------|---------|189| `update:open` | `[payload: boolean]` |190191### Slots192| Slot | Type |193|------|------|194| `open` | `boolean` |195196## MenubarSubTrigger197198### Props199| Prop | Type | Default |200|------|------|---------|201| `as` | `AsTag \| Component` | `"div"` |202| `asChild` | `boolean` | - |203| `disabled` | `boolean` | - |204| `textValue` | `string` | - |205206## MenubarSubContent207208### Props209| Prop | Type | Default |210|------|------|---------|211| `alignOffset` | `number` | - |212| `arrowPadding` | `number` | - |213| `as` | `AsTag \| Component` | `"div"` |214| `asChild` | `boolean` | - |215| `avoidCollisions` | `boolean` | - |216| `collisionBoundary` | `Element \| (Element \| null)[] \| null` | - |217| `collisionPadding` | `number \| Partial<Record<"top" \| "right" \| "bott...` | - |218| `forceMount` | `boolean` | - |219| `hideWhenDetached` | `boolean` | - |220| `loop` | `boolean` | - |221| `prioritizePosition` | `boolean` | - |222| `sideOffset` | `number` | - |223| `sticky` | `"partial" \| "always"` | - |224| `updatePositionStrategy` | `"always" \| "optimized"` | - |225226### Emits227| Event | Payload |228|-------|---------|229| `closeAutoFocus` | `[event: Event]` |230| `entryFocus` | `[event: Event]` |231| `escapeKeyDown` | `[event: KeyboardEvent]` |232| `focusOutside` | `[event: FocusOutsideEvent]` |233| `interactOutside` | `[event: PointerDownOutsideEvent \| FocusOutsideE...` |234| `openAutoFocus` | `[event: Event]` |235| `pointerDownOutside` | `[event: PointerDownOutsideEvent]` |236237## MenubarArrow238239### Props240| Prop | Type | Default |241|------|------|---------|242| `as` | `AsTag \| Component` | `"svg"` |243| `asChild` | `boolean` | - |244| `height` | `number` | `5` |245| `width` | `number` | `10` |246