/**
 * `<icon-ui>` — SVG icon from the icon registry. Renders inline SVG from getIcon() lookups with size + color token support; the canonical icon primitive throughout AdiaUI. Use for all icon needs; do not embed raw SVG or image-based icons in composed components.
 *
 * @see https://ui-kit.exe.xyz/site/components/icon
 *
 * Type declarations generated by scripts/build/dts-codegen.mjs from
 * the component's `.a2ui.json` sidecar(s). Edit the source `.yaml`,
 * run `npm run build:components`, then `npm run codegen:dts` to
 * regenerate; or hand-author this file fully if rich event types are
 * needed beyond what the yaml `events:` block can express.
 */

import { UIElement } from '../../core/element.js';

export class UIIcon extends UIElement {
  /** Accessible label. Sets role=img and aria-label. */
  label: string;
  /** Icon name from registry */
  name: string;
  /** Icon size. Accepts the named scale (`xs` 12px / `sm` 14px / `md` 16px / `lg` 20px / `xl` 32px / `2xl` 48px / `3xl` 64px / `4xl` 96px / `fill` 100% of parent) or a free-form pixel / rem / em value as a string ("48", "3rem", "1.25em"). Overrides the inherited `--a-icon-size` from the universal `[size]` system on ancestors. */
  size: string;
  /** Icon weight — selects the Phosphor weight variant (thin/light/regular/bold/fill/duotone). */
  weight: 'thin' | 'light' | 'regular' | 'bold' | 'fill' | 'duotone';
}
