import { PropertyValues } from 'lit'; import { LuxenElement } from '../../shared/luxen-element.js'; /** * Icon storage lives in the `iconify-icon` module, and every copy of that * module has its own. `@iconify/vue`, `@iconify/react` and friends each bundle * a separate one, so a collection registered through them is invisible here — * the icon simply renders nothing, at zero width, with no error. * * Re-exported so the registration API a consumer needs is the *same instance* * this element reads from, whatever the package manager did with two * `iconify-icon` ranges: * * ```js * import { addCollection } from 'luxen-ui/icon'; * addCollection(myIconSet); // before the first icon mounts — see below * ``` * * Registration is a plain write to storage: it does not re-render icons that * are already on the page, and a name the API has already reported missing is * not retried. Register before the first icon mounts. * * This reaches the npm build only. The CDN build inlines `iconify-icon` and * tree-shakes the re-export out of the entry, so a CDN consumer registers * through `window.IconifyPreload` instead — read once, at module init, so the * assignment has to come before the script tag. */ export { addCollection, addIcon, setCustomIconLoader } from 'iconify-icon'; /** * @summary An icon component that renders icons from any Iconify icon set. Decorative by default. Set `label` for meaningful icons. * @customElement l-icon * * @cssproperty --color - The color of the icon. Defaults to `currentColor`. */ export declare class Icon extends LuxenElement { static styles: import('lit').CSSResult[]; /** The icon name in Iconify format (e.g. `mdi:home`, `lucide:check`). */ name: string; /** Accessible label. When set, the icon becomes meaningful (`role="img"` + `aria-label`). When absent, the icon is decorative. */ label?: string; /** * An unresolved name is otherwise completely silent: `iconify-icon` renders * no ``, the box collapses to 0px, and the API answers a well-formed * "not found" — so there is no console error and no failed request to * notice either. A criteria bar can ship with every icon invisible and look * merely tight. Say it once per name. * * `loadIcon()` resolves from storage when the icon is already there and * otherwise joins the request the element itself makes, so this costs no * extra network. */ private _warnIfUnresolved; updated(changedProperties: PropertyValues): void; render(): import('lit').TemplateResult<1>; } //# sourceMappingURL=icon.d.ts.map