import { Placement } from '@floating-ui/dom'; import { EventEmitter } from '../../stencil-public-runtime'; import { Breakpoint } from '../../utils/breakpoints'; /** * A menu component that provides a dropdown with a built-in configurable trigger button * and proper ARIA semantics and keyboard navigation for menu items. * * The trigger is always a cat-button with sensible defaults but fully configurable * through trigger-specific props. */ export declare class CatMenu { private dropdown?; private catMenuItems; private mutationObserver?; hostElement: HTMLElement; /** * The placement of the dropdown. */ placement: Placement; /** * The arrow key navigation direction for menu items. */ arrowNavigation: 'horizontal' | 'vertical'; /** * The trigger button variant. */ triggerVariant: 'filled' | 'outlined' | 'text'; /** * The trigger button size. */ triggerSize: 'xs' | 's' | 'm' | 'l' | 'xl'; /** * The trigger button icon. */ triggerIcon?: string; /** * Show only the icon in the trigger button. */ triggerIconOnly?: boolean | Breakpoint; /** * The trigger button label. */ triggerLabel?: string; /** * The color palette of the trigger button. */ triggerColor: 'primary' | 'secondary' | 'info' | 'success' | 'warning' | 'danger'; /** * The trigger button accessibility label. If not set, falls back to triggerLabel. */ triggerA11yLabel?: string; /** * Additional CSS class for the trigger button. */ triggerClass?: string; /** * Test ID for the trigger button. */ triggerTestId?: string; /** * Native attributes for the trigger button. */ triggerNativeAttributes?: { [key: string]: string; }; /** * Disable the menu. */ disabled: boolean; /** * Make the dropdown match the width of the reference regardless of its * contents. Note that this only applies to the minimum width of the * dropdown. The maximum width is still limited by the viewport. */ justify: boolean; /** * Do not change the size of the dropdown to ensure it isn’t too big to fit * in the viewport (or more specifically, its clipping context). */ noResize: boolean; /** * Allow overflow when dropdown is open. */ overflow: boolean; /** * Whether the dropdown trigger should be initialized only before first opening. * Can be useful when trigger is rendered dynamically. */ delayedTriggerInit: boolean; /** * Emitted when the dropdown is opened. */ catOpen: EventEmitter; /** * Emitted when the dropdown is closed. */ catClose: EventEmitter; /** * Emitted when the trigger button is clicked. */ catTriggerClick: EventEmitter; onFocusOut(): void; private getDeepActiveElement; onDocumentKeydown(event: KeyboardEvent): void; componentDidLoad(): void; disconnectedCallback(): void; /** * Opens the menu. */ open(): Promise; /** * Closes the menu. */ close(): Promise; /** * Toggles the menu. */ toggle(): Promise; private onTriggerClick; private onMenuOpen; private isMenuItemInFocus; private syncMenuItems; render(): any; }