import * as _angular_core from '@angular/core'; import { TemplateRef } from '@angular/core'; import { BooleanInput } from '@angular/cdk/coercion'; /** * Holds the menu content rendered when a {@link WrDropdown} opens. * * The component itself doesn't render anywhere — the directive grabs its * internal `` and portals it into an overlay. * * @example * ```html * * * Copy * Delete * * ``` * * @see https://ngwr.dev/components/dropdown */ declare class WrDropdownMenu { /** The internal template the directive portals into the overlay. @internal */ readonly contentTpl: _angular_core.Signal>; /** Stable id used on the menu element and referenced from the trigger's `aria-controls`. */ readonly menuId: _angular_core.WritableSignal; /** Trigger element id, set by the directive for `aria-labelledby` wiring. */ readonly triggerId: _angular_core.WritableSignal; static ɵfac: _angular_core.ɵɵFactoryDeclaration; static ɵcmp: _angular_core.ɵɵComponentDeclaration; } /** * @license * * Use of this source code is governed by an MIT-style license that can be * found in the LICENSE file at https://github.com/thekhegay/ngwr/blob/main/LICENSE */ /** * Where the dropdown menu opens, relative to the trigger. */ type WrDropdownPosition = 'top' | 'top-start' | 'top-end' | 'bottom' | 'bottom-start' | 'bottom-end' | 'left' | 'right'; /** * @license * * Use of this source code is governed by an MIT-style license that can be * found in the LICENSE file at https://github.com/thekhegay/ngwr/blob/main/LICENSE */ /** * How the dropdown menu is opened. */ type WrDropdownTrigger = 'click' | 'hover'; declare class WrDropdown { /** Menu to open. Pass a `` template reference. */ readonly menu: _angular_core.InputSignal; /** How the menu opens. @default 'click' */ readonly trigger: _angular_core.InputSignal; /** Where the menu anchors relative to the trigger. @default 'bottom-start' */ readonly position: _angular_core.InputSignal; /** * Present the menu as a full-width bottom-sheet on small viewports instead * of an anchored panel. `undefined` follows the app-wide * `provideWrResponsiveOverlays()` setting; `true`/`false` overrides it. * @default undefined */ readonly responsive: _angular_core.InputSignalWithTransform; /** Fires after the menu opens. */ readonly opened: _angular_core.OutputEmitterRef; /** Fires after the menu closes. */ readonly closed: _angular_core.OutputEmitterRef; private readonly host; private readonly overlay; private readonly responsiveConfig; private readonly vcr; private readonly scrollStrategies; private readonly destroyRef; /** @internal Public so host bindings can read it. */ readonly isOpen: _angular_core.WritableSignal; /** Auto-generated id for `aria-labelledby` wiring on the menu. */ protected readonly triggerId: string; private overlayRef; constructor(); /** Open the menu. */ open(): void; /** Close the menu. */ close(): void; /** Toggle the menu. */ toggle(): void; /** @internal */ protected onClick(event: MouseEvent): void; /** @internal */ protected onMouseEnter(): void; /** @internal */ protected onMouseLeave(event: MouseEvent): void; private openOverlay; private closeOverlay; /** @internal Trigger keydown — ArrowDown/Up/Enter/Space open the menu. */ protected onKeydown(event: KeyboardEvent): void; private handleMenuKeydown; private getItems; private focusItemAt; private readonly onOverlayMouseLeave; static ɵfac: _angular_core.ɵɵFactoryDeclaration; static ɵdir: _angular_core.ɵɵDirectiveDeclaration; } /** * Single row inside a ``. * * @example * ```html * Copy * Delete * ``` */ declare class WrDropdownItem { /** Optional leading icon name. @default null */ readonly icon: _angular_core.InputSignal; /** Disable interaction (suppresses pointer + keyboard). @default false */ readonly disabled: _angular_core.InputSignalWithTransform; protected readonly classes: _angular_core.Signal; private readonly host; /** @internal Keyboard activation — fires the same click consumers bind to. */ protected activate(event: Event): void; static ɵfac: _angular_core.ɵɵFactoryDeclaration; static ɵcmp: _angular_core.ɵɵComponentDeclaration; } export { WrDropdown, WrDropdownItem, WrDropdownMenu }; export type { WrDropdownPosition, WrDropdownTrigger };