/** * MUI Icon Component * * A flexible icon component that supports: * - Lucide icons via name prop * - Custom SVG via slot * - Various sizes and colors * - Animation (spin) * - Accessibility labels * * @example * ```html * * * * ``` */ import { MiuraElement } from '@miurajs/miura-element'; /** * Pre-load commonly used icons */ export declare function preloadIcons(names: string[]): void; /** * Register a custom SVG icon */ export declare function registerIcon(name: string, svg: string): void; /** * Register multiple icons at once (for bundled icons) */ export declare function registerIcons(icons: Record): void; export declare class MuiIcon extends MiuraElement { /** * Lucide icon name (e.g., "folder", "chevron-right", "settings") * See https://lucide.dev/icons for full list */ name: string; /** * Icon size * - xs: 12px * - sm: 16px * - md: 20px (default) * - lg: 24px * - xl: 32px */ size: 'xs' | 'sm' | 'md' | 'lg' | 'xl'; /** * Icon color - can be a CSS color, token name (e.g., "primary"), or "currentColor" */ color: string; /** * SVG stroke width */ strokeWidth: number; /** * Enable spinning animation (useful for loading states) */ spin: boolean; /** * Flip the icon */ flip: 'horizontal' | 'vertical' | 'both' | ''; /** * Accessible label for screen readers */ label: string; private _svgContent; private _loading; static styles: import("@miurajs/miura-render").CSSResult; connectedCallback(): void; updated(changedProps: Map): void; private _loadIcon; private _getColor; template(): import("@miurajs/miura-render").TemplateResult; } export default MuiIcon; //# sourceMappingURL=icon.d.ts.map