{"version":3,"file":"Icon.mjs","names":[],"sources":["../../src/Icon/Icon.tsx"],"sourcesContent":["'use client';\n\nimport { cx } from 'antd-style';\nimport type { LucideIcon } from 'lucide-react';\nimport { isValidElement, memo, useMemo } from 'react';\n\nimport { useIconContext } from './components/IconProvider';\nimport { calcSize } from './components/utils';\nimport { variants } from './style';\nimport type { IconProps } from './type';\n\nconst Icon = memo<IconProps>(\n  ({\n    icon,\n    size: iconSize,\n    color,\n    fill = 'transparent',\n    className,\n    focusable,\n    spin,\n    fillRule,\n    fillOpacity,\n    ref,\n    ...rest\n  }) => {\n    const {\n      color: colorConfig,\n      fill: fillConfig,\n      fillOpacity: fillOpacityConfig,\n      fillRule: fillRuleConfig,\n      focusable: focusableConfig,\n      className: classNameConfig,\n      size: sizeConfig,\n      ...restConfig\n    } = useIconContext();\n\n    const { size, strokeWidth } = useMemo(\n      () => calcSize(iconSize || sizeConfig),\n      [iconSize, sizeConfig],\n    );\n\n    const SvgIcon = icon as LucideIcon;\n\n    return (\n      <span\n        className={cx(variants({ spin }), classNameConfig, className)}\n        role=\"img\"\n        {...restConfig}\n        {...rest}\n      >\n        {icon &&\n          (isValidElement(icon) ? (\n            icon\n          ) : (\n            <SvgIcon\n              color={color || colorConfig}\n              fill={fill || fillConfig}\n              fillOpacity={fillOpacity || fillOpacityConfig}\n              fillRule={fillRule || fillRuleConfig}\n              focusable={focusable || focusableConfig}\n              height={size}\n              ref={ref}\n              size={size}\n              strokeWidth={strokeWidth}\n              width={size}\n            />\n          ))}\n      </span>\n    );\n  },\n);\n\nIcon.displayName = 'Icon';\n\nexport default Icon;\n"],"mappings":";;;;;;;;AAWA,MAAM,OAAO,MACV,EACC,MACA,MAAM,UACN,OACA,OAAO,eACP,WACA,WACA,MACA,UACA,aACA,KACA,GAAG,WACC;CACJ,MAAM,EACJ,OAAO,aACP,MAAM,YACN,aAAa,mBACb,UAAU,gBACV,WAAW,iBACX,WAAW,iBACX,MAAM,YACN,GAAG,eACD,gBAAgB;CAEpB,MAAM,EAAE,MAAM,gBAAgB,cACtB,SAAS,YAAY,WAAW,EACtC,CAAC,UAAU,WAAW,CACvB;CAED,MAAM,UAAU;AAEhB,QACE,oBAAC,QAAD;EACE,WAAW,GAAG,SAAS,EAAE,MAAM,CAAC,EAAE,iBAAiB,UAAU;EAC7D,MAAK;EACL,GAAI;EACJ,GAAI;YAEH,SACE,eAAe,KAAK,GACnB,OAEA,oBAAC,SAAD;GACE,OAAO,SAAS;GAChB,MAAM,QAAQ;GACd,aAAa,eAAe;GAC5B,UAAU,YAAY;GACtB,WAAW,aAAa;GACxB,QAAQ;GACH;GACC;GACO;GACb,OAAO;GACP,CAAA;EAED,CAAA;EAGZ;AAED,KAAK,cAAc"}