/**
* @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