UI Headless Runtime API - v1.0.0
    Preparing search index...

    Interface MenuController

    Shared Menu controller reused by dropdown and context-menu factories.

    interface MenuController {
        bind(elements: OverlayElements): () => void;
        close(details?: ChangeDetails<OpenChangeReason>): void;
        destroy(): void;
        getSnapshot(): Readonly<TSnapshot>;
        handleKeyDown(event: KeyboardEvent): void;
        off<TKey extends keyof MenuEvents>(
            type: TKey,
            listener: RuntimeEventListener<MenuEvents[TKey]>,
        ): void;
        on<TKey extends keyof MenuEvents>(
            type: TKey,
            listener: RuntimeEventListener<MenuEvents[TKey]>,
        ): Unsubscribe;
        once<TKey extends keyof MenuEvents>(
            type: TKey,
            listener: RuntimeEventListener<MenuEvents[TKey]>,
        ): Unsubscribe;
        open(details?: ChangeDetails<OpenChangeReason>): void;
        registerItem(item: MenuItem, element?: HTMLElement): () => void;
        registerSubmenu(itemId: string, submenu: MenuController): () => void;
        select(id: string, details?: ChangeDetails<MenuSelectReason>): void;
        setActive(id: string | null): void;
        subscribe(listener: SnapshotListener<MenuSnapshot>): Unsubscribe;
        toggle(details?: ChangeDetails<OpenChangeReason>): void;
    }

    Hierarchy (View Summary)

    Index

    Methods

    • Handles Arrow keys, Home/End, typeahead, Enter/Space, Escape, and submenu keys.

      Parameters

      • event: KeyboardEvent

      Returns void

    • Registers dynamic item metadata and optional focusable DOM.

      Parameters

      • item: MenuItem
      • Optionalelement: HTMLElement

      Returns () => void

    • Sets the active item for pointer integrations without selecting it.

      Parameters

      • id: string | null

      Returns void