/** * @license * Copyright 2023 Nuraly, Laabidi Aymen * SPDX-License-Identifier: MIT */ import { LitElement } from 'lit'; import { DropdownPlacement, DropdownTrigger, DropdownSize, DropdownAnimation, DropdownItem } from './dropdown.types.js'; declare const NrDropdownElement_base: (new (...args: any[]) => import("@nuralyui/common/mixins").DependencyAware) & (new (...args: any[]) => import("@nuralyui/common/mixins").ThemeAware) & (new (...args: any[]) => import("@nuralyui/common/mixins").EventHandlerCapable) & (new (...args: any[]) => import("packages/common/src/shared/base-mixin").LightDomContent) & typeof LitElement; /** * # Dropdown Component * * A versatile dropdown component that provides floating panel functionality with customizable triggers, * content, and positioning. Supports both predefined item lists and custom slot content with * cascading submenus and interactive elements. * * ## Features * - Multiple trigger modes (hover, click, focus, manual) * - Flexible positioning with auto-placement * - Cascading submenus with custom content support * - Interactive elements (forms, buttons) within dropdowns * - Keyboard navigation and accessibility * - Customizable animations and styling * - Event delegation and outside click detection * * ## Usage * ```html * * * *
*

Custom content here

*
*
* * * * * * * * * Hover me *
Tooltip content
*
* ``` * * @element nr-dropdown * @fires nr-dropdown-open - Fired when dropdown opens * @fires nr-dropdown-close - Fired when dropdown closes * @fires nr-dropdown-item-click - Fired when dropdown item is clicked * * @slot trigger - Element that triggers the dropdown * @slot content - Custom content for the dropdown panel * @slot header - Optional header content * @slot footer - Optional footer content * * @cssproperty --dropdown-background - Background color of dropdown panel * @cssproperty --dropdown-border - Border of dropdown panel * @cssproperty --dropdown-shadow - Shadow of dropdown panel * @cssproperty --dropdown-border-radius - Border radius of dropdown panel * @cssproperty --dropdown-max-width - Maximum width of dropdown panel * @cssproperty --dropdown-min-width - Minimum width of dropdown panel * @cssproperty --dropdown-max-height - Maximum height of dropdown panel */ export declare class NrDropdownElement extends NrDropdownElement_base { static useShadowDom: boolean; static styles: import("lit").CSSResult; requiredComponents: string[]; items: DropdownItem[]; open: boolean; placement: DropdownPlacement; trigger: DropdownTrigger; size: DropdownSize; animation: DropdownAnimation; disabled: boolean; arrow: boolean; autoClose: boolean; closeOnOutsideClick: boolean; closeOnEscape: boolean; offset: number; delay: number; maxHeight: string; minWidth: string; cascadeDirection: 'right' | 'left' | 'auto'; cascadeDelay: number; cascadeOnHover: boolean; allowOverflow: boolean; private dropdownController; private openSubmenus; private submenuTimers; connectedCallback(): void; updated(changedProperties: Map): void; disconnectedCallback(): void; firstUpdated(): void; private updateCascadingAttribute; private handleDropdownPanelClick; private handleItemClick; private handleItemHover; private handleItemLeave; private handleSubmenuEnter; private handleSubmenuLeave; private clearSubmenuTimer; private toggleSubmenu; private showSubmenu; private hideSubmenu; show(): void; hide(): void; toggle(): void; private renderCustomContent; private renderSubmenuContent; private renderItems; render(): import("lit-html").TemplateResult<1>; } export {}; //# sourceMappingURL=dropdown.component.d.ts.map