AcheryWorkshop
Components

Menu

Examples

Loading examples…

API

From COMPONENTS.md.

import { Menu } from 'achery-ui'
import type { MenuItemDef, MenuSeparator } from 'achery-ui'

<Menu
  trigger={<Button variant="ghost" size="sm">•••</Button>}
  items={[
    { id: 'edit', label: 'Edit', glyph: 'key', onSelect: () => {} },
    { type: 'separator', id: 'sep1' },
    { id: 'delete', label: 'Delete', danger: true, onSelect: () => {} },
  ]}
/>
Prop Type Default Notes
trigger ReactNode — Rendered as Radix asChild trigger
items (MenuItemDef | MenuSeparator)[] —
side 'top' | 'bottom' | 'left' | 'right' 'bottom' Preferred open side
align 'start' | 'center' | 'end' 'end' Alignment to trigger
className string — Applied to content panel

MenuItemDef: id, label, onSelect, glyph?, disabled?, danger?

MenuSeparator: { type: 'separator', id }

Renders into a portal — safe inside overflow-hidden containers.