/** * Copyright Aquera Inc 2023 * * This source code is licensed under the BSD-3-Clause license found in the * LICENSE file in the root directory of this source tree. */ import { CSSResultArray, TemplateResult, PropertyValues } from 'lit'; import NileElement from '../internal/nile-element'; import type { NileMenu } from '../nile-menu'; import type { NilePopup } from '../nile-popup'; import '../nile-popup'; /** * Nile side-bar-action component. * * @tag nile-side-bar-action * * @slot trigger - The clickable trigger (icon/button). * @slot - The dropdown panel content (menu, custom content). * * @event nile-show - Fired when dropdown opens. * @event nile-after-show - Fired after dropdown + animations. * @event nile-hide - Fired when dropdown closes. * @event nile-after-hide - Fired after dropdown closes + animations. */ export declare class NileSideBarAction extends NileElement { static styles: CSSResultArray; popup: NilePopup; trigger: HTMLSlotElement; panel: HTMLSlotElement; /** Whether the dropdown is open */ open: boolean; /** Preferred placement relative to trigger */ placement: 'top' | 'top-start' | 'top-end' | 'bottom' | 'bottom-start' | 'bottom-end' | 'right' | 'right-start' | 'right-end' | 'left' | 'left-start' | 'left-end'; /** Disable interaction */ disabled: boolean; /** Keep open on select */ stayOpenOnSelect: boolean; /** External containing element (default: self) */ containingElement?: HTMLElement; /** Offsets */ distance: number; skidding: number; /** Sync size with trigger */ sync: 'width' | 'height' | 'both'; /** Hoist above scroll containers */ hoist: boolean; /** * Enable portal mode to render the dropdown panel in a portal outside the component's DOM tree. * This provides better positioning control and prevents clipping issues in complex layouts. */ portal: boolean; private portalManager; triggerDropdown: 'click' | 'hover'; private hoverTimeout; connectedCallback(): void; firstUpdated(): void; handleTriggerMouseEnter(): void; handleTriggerMouseLeave(): void; disconnectedCallback(): void; focusOnTrigger(): void; getMenu(): NileMenu | undefined; handleKeyDown(event: KeyboardEvent): void; handleDocumentKeyDown(event: KeyboardEvent): void; handleDocumentMouseDown(event: MouseEvent): void; handlePanelSelect(event: any): void; handleTriggerClick(): void; handleTriggerKeyDown(event: KeyboardEvent): void; handleTriggerKeyUp(event: KeyboardEvent): void; handleTriggerSlotChange(): void; updateAccessibleTrigger(): void; /** Public methods */ show(): Promise; hide(): Promise; reposition(): void; addOpenListeners(): void; removeOpenListeners(): void; protected updated(changedProperties: PropertyValues): void; handleOpenChange(): Promise; render(): TemplateResult; } export default NileSideBarAction; declare global { interface HTMLElementTagNameMap { 'nile-side-bar-action': NileSideBarAction; } }