Menu-button pattern: a trigger toggles a role="menu" of role="menuitem" children with full arrow/Home/End/typeahead navigation, Escape + outside click to dismiss, and ARIA expanded/haspopup wiring. Open state is observable through onOpenChange/hl:open-change and controllable through the returned API; activating an item emits a cancelable hl:select.