{"ast":null,"code":"import _defineProperty from \"@babel/runtime/helpers/defineProperty\";\nimport _objectWithoutProperties from \"@babel/runtime/helpers/objectWithoutProperties\";\nvar _excluded = [\"as\", \"size\"];\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }\nfunction _extends() {\n  _extends = Object.assign || function (target) {\n    for (var i = 1; i < arguments.length; i++) {\n      var source = arguments[i];\n      for (var key in source) {\n        if (Object.prototype.hasOwnProperty.call(source, key)) {\n          target[key] = source[key];\n        }\n      }\n    }\n    return target;\n  };\n  return _extends.apply(this, arguments);\n}\nimport React, { memo, forwardRef } from 'react';\nimport { useToken, usePropsResolution } from \"../../../hooks\";\nimport SVGIcon from \"./SVGIcon\";\nimport { Factory } from \"../../../factory\";\nvar Icon = function Icon(props, ref) {\n  var _usePropsResolution = usePropsResolution('Icon', props),\n    as = _usePropsResolution.as,\n    size = _usePropsResolution.size,\n    resolvedProps = _objectWithoutProperties(_usePropsResolution, _excluded);\n  var tokenizedFontSize = useToken('space', size || resolvedProps.boxSize);\n  if (!as) {\n    return React.createElement(SVGIcon, _extends({\n      size: size\n    }, resolvedProps, {\n      ref: ref\n    }));\n  }\n  var isJSX = React.isValidElement(as);\n  var StyledAs = Factory(isJSX ? function (resolvedProps) {\n    return React.cloneElement(as, _objectSpread(_objectSpread({}, resolvedProps), as.props));\n  } : as);\n  return React.createElement(StyledAs, _extends({}, resolvedProps, {\n    fontSize: tokenizedFontSize,\n    lineHeight: tokenizedFontSize,\n    size: size,\n    ref: ref\n  }));\n};\nexport default memo(forwardRef(Icon));","map":{"version":3,"sources":["Icon.tsx"],"names":["React","memo","forwardRef","useToken","usePropsResolution","SVGIcon","Factory","Icon","props","ref","as","size","resolvedProps","tokenizedFontSize","boxSize","isJSX","isValidElement","StyledAs","cloneElement"],"mappings":";;;;;;;;;;;;;;;;;;;AAAA,OAAOA,KAAP,IAAgBC,IAAhB,EAAsBC,UAAtB,QAAwC,OAAxC;AACA,SAASC,QAAT,EAAmBC,kBAAnB;AAEA,OAAOC,OAAP;AACA,SAASC,OAAT;AAEA,IAAMC,IAAI,GAAG,SAAPA,IAAI,CAAIC,KAAD,EAAoBC,GAApB,EAAkC;EAC7C,IAAA,mBAAA,GAAuCL,kBAAkB,CAAC,MAAD,EAASI,KAAT,CAAzD;IAAQE,EAAF,GAAA,mBAAA,CAAEA,EAAF;IAAMC,IAAN,GAAA,mBAAA,CAAMA,IAAN;IAAeC,aAAAA,GAAAA,wBAAAA,CAAAA,mBAAAA,EAAAA,SAAAA;EACrB,IAAMC,iBAAiB,GAAGV,QAAQ,CAAC,OAAD,EAAUQ,IAAI,IAAIC,aAAa,CAACE,OAAhC,CAAlC;EAEA,IAAI,CAACJ,EAAL,EAAS;IACP,OAAO,KAAA,CAAA,aAAA,CAAC,OAAD,EAAA,QAAA,CAAA;MAAS,IAAI,EAAEC;IAAf,CAAA,EAAyBC,aAAzB,EAAA;MAAwC,GAAG,EAAEH;IAA7C,CAAA,CAAA,CAAP;EACD;EAED,IAAMM,KAAK,GAAGf,KAAK,CAACgB,cAANhB,CAAqBU,EAArBV,CAR+B;EAW7C,IAAMiB,QAAQ,GAAGX,OAAO,CACtBS,KAAK,GACAH,UAAAA,aAAD;IAAA,OACE,KAAK,CAACM,YAAN,CAAmBR,EAAnB,EAAA,aAAA,CAAA,aAAA,KACKE,aADkB,GAGlBF,EAAE,CAACF,KAAAA,CAHR,CAFD;EAAA,IAODE,EARkB,CAXqB;EAwB7C,OACE,KAAA,CAAA,aAAA,CAAC,QAAD,EAAA,QAAA,CAAA,CAAA,CAAA,EACME,aADN,EAAA;IAEE,QAAQ,EAAEC,iBAFZ;IAGE,UAAU,EAAEA,iBAHd;IAIE,IAAI,EAAEF,IAJR;IAKE,GAAG,EAAEF;EALP,CAAA,CAAA,CADF;AASD,CAjCD;AAmCA,eAAeR,IAAI,CAACC,UAAU,CAACK,IAAD,CAAX,CAAnB","sourcesContent":["import React, { memo, forwardRef } from 'react';\nimport { useToken, usePropsResolution } from '../../../hooks';\nimport type { IIconProps } from './types';\nimport SVGIcon from './SVGIcon';\nimport { Factory } from '../../../factory';\n\nconst Icon = (props: IIconProps, ref?: any) => {\n  const { as, size, ...resolvedProps } = usePropsResolution('Icon', props);\n  const tokenizedFontSize = useToken('space', size || resolvedProps.boxSize);\n\n  if (!as) {\n    return <SVGIcon size={size} {...resolvedProps} ref={ref} />;\n  }\n\n  const isJSX = React.isValidElement(as);\n  // console.log('as', isJSX);\n\n  const StyledAs = Factory(\n    isJSX\n      ? (resolvedProps) =>\n          React.cloneElement(as, {\n            ...resolvedProps,\n            //@ts-ignore\n            ...as.props,\n          })\n      : as\n  );\n  // console.log(as, 'as');\n  // console.log(StyledAs, 'StyledAs');\n\n  return (\n    <StyledAs\n      {...resolvedProps}\n      fontSize={tokenizedFontSize}\n      lineHeight={tokenizedFontSize}\n      size={size}\n      ref={ref}\n    />\n  );\n};\n\nexport default memo(forwardRef(Icon));\n"]},"metadata":{},"sourceType":"module"}