import { IconImportName } from './dynamic-icon-imports.js'; import * as React from "react"; export interface DynamicIconProps extends React.ComponentProps<"svg"> { /** * The name of the icon to render. * - Lucide icons: kebab-case (e.g., "camera", "chevron-down") * - Flag icons: ISO 3166-1 alpha-3 or PascalCase (e.g., "USA", "BasqueCountry") * - Social media icons: PascalCase (e.g., "FacebookOriginal", "TiktokNeutral") * - Custom icons: kebab-case (e.g., "bright-local-logo") */ name: IconImportName | (string & {}); /** * Icon size in pixels (applies to both width and height) * @default 16 */ size?: number; /** * Icon color (uses currentColor by default) */ color?: string; /** * Stroke width for line icons (Lucide/custom only, ignored for flag/social media) * @default 1.33 */ strokeWidth?: number; /** * When true, keeps stroke width consistent regardless of icon size. * Only applies to Lucide and custom icons. Ignored for flag/social media icons. * @default true */ absoluteStrokeWidth?: boolean; /** * Fallback content displayed while the icon is loading. * Defaults to an invisible placeholder that matches the icon's dimensions to prevent layout shift. */ fallback?: React.ReactNode; } /** * DynamicIcon component for rendering any icon by name at runtime. * * Supports Lucide icons, custom BrightLocal icons, flag icons (ISO 3166-1 alpha-3), * and social media icons — all resolved from a single unified registry. * * @example * // Lucide icon * * * @example * // Flag icon * * * @example * // Social media icon * * * @example * // With custom loading fallback * } /> * * @example * // Opt out of default placeholder * * * @example * // Database-driven * */ export declare const DynamicIcon: React.ForwardRefExoticComponent & React.RefAttributes>; //# sourceMappingURL=dynamic-icon.d.ts.map