/**
 * An icon component using Lucide icons. Use for visual indicators,
 * button decorations, or standalone meaningful graphics.
 * @category Data Display
 * @useCases visual indicator, button icon, status icon, decorative graphic
 * @keywords icon, symbol, graphic, lucide, svg
 * @related UiButton
 */
/**
 * Named icon sizes mapped to design-token pixel values.
 * - `xs` → 12px
 * - `s`  → 16px
 * - `m`  → 20px
 * - `l`  → 24px
 * - `xl` → 32px
 */
export type UiIconSize = 'xs' | 's' | 'm' | 'l' | 'xl';

export interface UiIconProps {
  /**
   * Lucide icon name in kebab-case or PascalCase.
   *
   * Example: `circle-help`, `CircleHelp`, `chevron-down`, `ChevronDown`
   * @see https://lucide.dev/icons for available icons
   */
  name: string;

  /**
   * Icon size. Accepts a named token (`xs` / `s` / `m` / `l` / `xl`) or
   * an explicit pixel value (number/string). Defaults to `l` (24px).
   */
  size?: UiIconSize | number | string;

  /**
   * Stroke width. Defaults to 2.
   */
  strokeWidth?: number | string;

  /**
   * Accessible label for the icon. When provided, the icon is exposed as `role="img"`.
   * If omitted, the icon is treated as decorative (`aria-hidden="true"`).
   */
  ariaLabel?: string;
}
