/** * @license * Copyright 2023 Nuraly, Laabidi Aymen * SPDX-License-Identifier: MIT */ import { LitElement } from 'lit'; import '@lit-labs/virtualizer'; import '../dropdown/dropdown.component.js'; import '../input/input.component.js'; import '../icon/icon.component.js'; import '../button/button.component.js'; import { IconPickerSize, IconType } from './icon-picker.types.js'; import type { IconPickerIcon } from './icon-picker.types.js'; import type { IconPickerHost } from './interfaces/index.js'; declare const NrIconPickerElement_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.js").LightDomContent) & typeof LitElement; /** * Advanced icon picker component with search, virtual scrolling, and accessibility. * * Uses Lucide icons (1500+ beautiful icons) and provides an intuitive selection interface with * search filtering, keyboard navigation, and multiple display options. * * @example * ```html * * * * * * * * * * ``` * * @fires nr-icon-picker-change - Icon selection changed * @fires nr-icon-picker-open - Dropdown opened * @fires nr-icon-picker-close - Dropdown closed * @fires nr-icon-picker-search - Search query changed * @fires nr-icon-picker-clear - Selection cleared * * @cssproperty --icon-picker-dropdown-width - Width of dropdown * @cssproperty --icon-picker-icon-size - Size of icon items * @cssproperty --icon-picker-selected-bg - Selected icon background * @cssproperty --icon-picker-selected-border - Selected icon border */ export declare class NrIconPickerElement extends NrIconPickerElement_base implements IconPickerHost { static useShadowDom: boolean; static styles: import("lit").CSSResult; requiredComponents: string[]; private selectionController; private searchController; private eventController; value: string; size: IconPickerSize; placement: string; trigger: string; disabled: boolean; readonly: boolean; placeholder: string; iconTypes: IconType[]; showSearch: boolean; showClear: boolean; maxVisible: number; dropdownOpen: boolean; allIcons: IconPickerIcon[]; filteredIcons: IconPickerIcon[]; searchQuery: string; selectedIcon: IconPickerIcon | null; isLoading: boolean; connectedCallback(): void; /** * Load icons from Lucide library */ private loadIcons; /** * Handle icon selection */ handleIconSelect(icon: IconPickerIcon): void; /** * Handle search input */ private handleSearchInput; /** * Handle clear button */ private handleClear; /** * Handle dropdown open */ private handleDropdownOpen; /** * Handle dropdown close */ private handleDropdownClose; /** * Toggle dropdown */ private toggleDropdown; /** * Render trigger button */ private renderTrigger; /** * Render icon grid */ private renderIconGrid; render(): import("lit-html").TemplateResult<1>; } declare global { interface HTMLElementTagNameMap { 'nr-icon-picker': NrIconPickerElement; } } export {}; //# sourceMappingURL=icon-picker.component.d.ts.map