{"version":3,"file":"index.cjs","sources":["../../../../src/components/Icon/Icon.tsx"],"sourcesContent":["import { CSSProperties, useMemo } from 'react';\nimport { cn, cva } from '@/lib/cva';\nimport { IconName, IconProps, ImageName, ImageType } from './Icon.types';\nimport { ICONS_MAP } from '@/components/Icon/IconCommon';\nimport { resolveAssetName } from '@/components/Assets/config';\nimport { Flag } from '@/components/Assets/Flags/system/Flag';\nimport FlagsLight from '@/components/Assets/Flags/system/FlagsLight';\nimport { FlagName } from '@/components/Assets/Flags/system/types';\nimport { Logo } from '@/components/Assets/Logos/system/Logo';\nimport LogosLight from '@/components/Assets/Logos/system/LogosLight';\nimport { LogoName } from '@/components/Assets/Logos/system/types';\nimport { Payment } from '@/components/Assets/Payments/system/Payment';\nimport { PaymentName } from '@/components/Assets/Payments/system/types';\nimport PaymentsLight from '@/components/Assets/Payments/system/PaymentsLight';\nimport styles from './Icon.module.css';\n\nconst svgWrapperVariants = cva(styles['svg-wrapper'], {\n  variants: {\n    size: {\n      xs: styles['svg-wrapper_size_xs'],\n      sm: styles['svg-wrapper_size_sm'],\n      md: styles['svg-wrapper_size_md'],\n      lg: styles['svg-wrapper_size_lg'],\n      xl: styles['svg-wrapper_size_xl'],\n      xxl: styles['svg-wrapper_size_xxl'],\n    },\n    state: {\n      default: '',\n      success: styles['svg-wrapper_state_success'],\n      warning: styles['svg-wrapper_state_warning'],\n      danger: styles['svg-wrapper_state_danger'],\n      info: styles['svg-wrapper_state_info'],\n    },\n  },\n  defaultVariants: {\n    size: 'md',\n    state: 'default',\n  },\n});\n\nconst SVGIcon = ({\n  name,\n  color,\n  width,\n  height,\n  state,\n  className,\n  size,\n  ...props\n}: IconProps) => {\n  const Component = ICONS_MAP[name];\n\n  const wrapperStyle = useMemo(\n    () =>\n      ({\n        ...(color !== undefined ? { '--svg-icon-color': color } : {}),\n        ...(width !== undefined ? { '--svg-width': String(width) } : {}),\n        ...(height !== undefined ? { '--svg-height': String(height) } : {}),\n      }) as CSSProperties,\n    [color, width, height]\n  );\n\n  if (!Component) {\n    return null;\n  }\n\n  return (\n    <div\n      className={cn(svgWrapperVariants({ size, state }), className)}\n      style={wrapperStyle}\n    >\n      <Component {...props} />\n    </div>\n  );\n};\n\nconst SvgImage = ({ name: rawName, size, theme, ...props }: ImageType) => {\n  // Resolve aliases and deprecated names once, before dispatching to the\n  // per-asset components - they each resolve too, but only ever see the raw\n  // name via the kebab-case key checks below.\n  const name = resolveAssetName(rawName) as ImageName;\n\n  if (Object.keys(FlagsLight).includes(name)) {\n    return (\n      <Flag\n        name={name as FlagName}\n        size={size}\n        {...props}\n      />\n    );\n  }\n  if (Object.keys(LogosLight).includes(name)) {\n    return (\n      <Logo\n        name={name as LogoName}\n        theme={theme}\n        size={size}\n        {...props}\n      />\n    );\n  }\n  if (Object.keys(PaymentsLight).includes(name)) {\n    return (\n      <Payment\n        name={name as PaymentName}\n        size={size}\n        {...props}\n      />\n    );\n  }\n  return (\n    <SVGIcon\n      name={name as IconName}\n      size={size}\n      role=\"img\"\n      aria-label={name}\n      {...props}\n    />\n  );\n};\n\nSvgImage.displayName = 'Icon';\n\nexport { SvgImage as Icon };\n"],"names":["cva","styles","ICONS_MAP","useMemo","jsx","cn","resolveAssetName","FlagsLight","Flag","LogosLight","Logo","PaymentsLight","Payment"],"mappings":"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"}