import { LitElement } from 'lit'; import { AgButton, ButtonProps } from '../../Button/core/Button.js'; export interface MenuOpenEventDetail { open: boolean; } export type MenuOpenEvent = CustomEvent; export interface MenuCloseEventDetail { open: boolean; } export type MenuCloseEvent = CustomEvent; export interface MenuSelectEventDetail { value: string; } export type MenuSelectEvent = CustomEvent; export interface MenuButtonProps extends Omit { menuVariant?: 'chevron' | 'button' | 'icon'; buttonVariant?: ButtonProps['variant']; unicode?: string; menuAlign?: 'left' | 'right'; additionalGutter?: string; onMenuOpen?: (event: MenuOpenEvent) => void; onMenuClose?: (event: MenuCloseEvent) => void; } export interface MenuItemProps { value?: string; disabled?: boolean; href?: string; target?: string; checked?: boolean; variant?: 'default' | 'monochrome'; onClick?: (event: MouseEvent) => void; onMenuSelect?: (event: MenuSelectEvent) => void; } export interface MenuProps { open?: boolean; placement?: string; ariaLabel?: string; selectedValue?: string; type?: 'default' | 'single-select'; checkHiddenItems?: boolean; onKeyDown?: (event: KeyboardEvent) => void; } export declare class AgMenuButton extends LitElement implements MenuButtonProps { _trigger: AgButton; _menu: AgMenu | null; _clickOutsideHandler: (event: Event) => void; size: 'x-sm' | 'sm' | 'md' | 'lg' | 'xl'; shape: 'capsule' | 'rounded' | 'circle' | 'square' | 'rounded-square' | ''; bordered: boolean; ghost: boolean; link: boolean; grouped: boolean; disabled: boolean; loading: boolean; ariaLabel: string; menuVariant: 'chevron' | 'button' | 'icon'; buttonVariant: 'primary' | 'secondary' | 'success' | 'warning' | 'danger' | 'monochrome' | ''; unicode: string; menuAlign: 'left' | 'right'; additionalGutter: string; onMenuOpen?: (event: MenuOpenEvent) => void; onMenuClose?: (event: MenuCloseEvent) => void; onClick?: (event: MouseEvent) => void; onFocus?: (event: FocusEvent) => void; onBlur?: (event: FocusEvent) => void; _menuOpen: boolean; constructor(); static styles: import('lit').CSSResult; connectedCallback(): void; disconnectedCallback(): void; firstUpdated(): void; updated(changedProperties: Map): void; private _updateMenuReference; private _handleClickOutside; private _handleClick; private _handleFocus; private _handleBlur; private _handleKeydown; private _updateMenuPosition; _openMenu(focusFirst?: boolean): void; _closeMenu(): void; private _renderChevronIcon; render(): import('lit').TemplateResult<1>; } export declare class AgMenu extends LitElement implements MenuProps { open: boolean; placement: string; ariaLabel: string; selectedValue?: string; type: 'default' | 'single-select'; checkHiddenItems: boolean; onKeyDown?: (event: KeyboardEvent) => void; _focusedIndex: number; _menuItems: AgMenuItem[]; constructor(); static styles: import('lit').CSSResult; connectedCallback(): void; disconnectedCallback(): void; firstUpdated(): void; updated(changedProperties: Map): void; private _handleMenuSelect; private _updateSelection; /** * Check if a menu item is actually navigable based on its computed styles. * This handles Tailwind's responsive utilities (sm:hidden, md:hidden, etc.) * which are applied to wrapper divs around menu items. * * Only called when checkHiddenItems prop is true. */ private _isElementNavigable; /** * Get currently navigable items (filtered for visibility). * When checkHiddenItems is true, recalculates on every call to handle dynamic viewport changes. */ private _getNavigableItems; _updateMenuItems(): void; private _updateTabIndex; _focusFirstItem(): void; _focusLastItem(): void; private _focusNextItem; private _focusPreviousItem; private _handleKeydown; private _closeMenu; render(): import('lit').TemplateResult<1>; } export declare class AgMenuItem extends LitElement implements MenuItemProps { value: string; disabled: boolean; href: string; target: string; checked: boolean; variant: 'default' | 'monochrome'; onClick?: (event: MouseEvent) => void; onMenuSelect?: (event: MenuSelectEvent) => void; private _menu; constructor(); static styles: import('lit').CSSResult; connectedCallback(): void; disconnectedCallback(): void; updated(changedProperties: Map): void; private _handleClick; focus(): void; render(): import('lit').TemplateResult<1>; } export declare class AgMenuSeparator extends LitElement { static styles: import('lit').CSSResult; connectedCallback(): void; render(): import('lit').TemplateResult<1>; } //# sourceMappingURL=_Menu.d.ts.map