import { RadiantElement } from '@ecopages/radiant'; import type { EventEmitter } from '@ecopages/radiant/tools/event-emitter'; export type RuiMenubarProps = { label?: string; }; export type RuiMenubarChangeDetail = { value: string; }; type RuiMenubarBindings = { label: string; }; /** * `` — a horizontal menubar of menus. * * Implements the APG Menubar pattern: top-level items use `role="menuitem"` with * `aria-haspopup` / `aria-expanded` when they own a nested `[role="menu"]`. Arrow * keys move across the bar; Enter/Space/ArrowDown open the popup; Escape closes it. * * Expected markup (also produced by the JSX view helper): * ```html *
* * *
* ``` * * @see https://www.w3.org/WAI/ARIA/apg/patterns/menubar/ * @element rui-menubar * @attr {string} label - Accessible name for the `role="menubar"` landmark. * @fires rui-change - Emitted when a menu item is activated; `detail.value` is the item's `data-value` or text. * @cssclass rui-menubar - Menubar bar (`role="menubar"`). */ export declare class RuiMenubar extends RadiantElement { label: string; changeEvent: EventEmitter; private openRoot; private popoverController; private getTopItems; private getMenuFor; private getMenuItems; protected onConnected(): void; disconnectedCallback(): void; private getOpenMenuAnchor; private getOpenMenuSurface; private syncOpenMenuPosition; private closeOpenMenu; private openMenu; onDocumentPointerDown(event: PointerEvent): void; /** * @remarks When a menu is open, roving focus across the bar opens the newly focused menu (APG). */ onTopKeydown(event: KeyboardEvent): void; onTopClick(event: Event): void; onMenuKeydown(event: KeyboardEvent): void; /** * @remarks Ignores top-level items — they are not direct children of `role="menu"` in this markup. */ onMenuItemClick(event: Event): void; private activateItem; } export {};