{"version":3,"sources":["../../src/Tooltip/Tooltip.tsx","../../src/Tooltip/Tooltip.provider.tsx","../../src/Tooltip/Tooltip.trigger.tsx","../../src/utilities/Absolute/Absolute.tsx","../../src/utilities/Absolute/Absolute.hooks.ts","../../src/utilities/Clay/Clay.tsx","../../src/utilities/Flex/Flex.tsx","../../src/utilities/Portal/Portal.tsx","../../src/Tooltip/TooltipContent/TooltipContent.tsx","../../src/Typography/Typography.tsx","../../src/Tooltip/TooltipContent/TooltipContent.utils.ts"],"names":["useBoolean","useCallbackRef","createContext","useContext","useMemo","useState","jsx","TooltipContext","TooltipProvider","children","toggle","isOpen","setOff","onClose","portalRef","setPortalRef","setOffProps","memoContextValue","useTooltipContext","context","useOutsideClick","cloneElement","isValidElement","useEffect","useAbsolute","to","position","align","setDomRect","callback","x","height","y","width","style","fixedProperty","unFixedProperty","fixedAxisValue","fixedRelativeValue","alignAxisValue","alignRelativeValue","Absolute","offsetX","offsetY","autoMinWidth","floatStyle","__spreadProps","__spreadValues","vars","forwardRef","Clay","_a","ref","_b","className","_hover","_active","_after","_before","_focus","size","shape","sx","as","native","props","__objRest","ClayNameSpace","_Flex","Flex","_FlexCenter","FlexCenter","_FlexColumn","FlexColumn","FlexNameSpace","createPortal","Portal","container","absoluteProps","TooltipTrigger","enabled","action","restProps","AS","XClose","classNames","_Typography","semanticToken","variant","colorToken","whiteSpace","numOfLine","textAlign","Typography","calculatePosition","hasArrow","jsxs","TooltipContent","description","hasCloseButton","label","Tooltip","initialOpened","value","TooltipNameSpace"],"mappings":";+kBAAA,OAAS,cAAAA,OAAkB,sBCA3B,OAAS,kBAAAC,MAAsB,sBAE/B,OAAS,iBAAAC,EAAe,cAAAC,EAAY,WAAAC,EAAS,YAAAC,MAAgB,QA2CpD,cAAAC,MAAA,oBAxCT,IAAMC,EAAiBL,EASrB,MAAS,EAEEM,EAAkB,CAAC,CAC9B,SAAAC,EACA,OAAAC,EACA,OAAAC,EACA,OAAAC,EACA,QAAAC,CACF,IAKO,CACL,GAAM,CAACC,EAAWC,CAAY,EAAIV,EAAgC,IAAI,EAEhEW,EAAcf,EAAe,IAAM,CACvCW,EAAO,EACPC,GAAA,MAAAA,GACF,CAAC,EAEKI,EAAmBb,EAAQ,KACxB,CACL,OAAAO,EACA,OAAAD,EACA,OAAQM,EACR,UAAAF,EACA,aAAAC,CACF,GACC,CAACJ,EAAQG,EAAWE,EAAaN,CAAM,CAAC,EAE3C,OAAOJ,EAACC,EAAe,SAAf,CAAwB,MAAOU,EAAmB,SAAAR,EAAS,CACrE,EAEaS,EAAoB,IAAM,CACrC,IAAMC,EAAUhB,EAAWI,CAAc,EAEzC,GAAIY,IAAY,OACd,MAAM,IAAI,MAAM,yDAAyD,EAG3E,OAAOA,CACT,ECtDA,OAAS,mBAAAC,OAAuB,sBCFhC,OAAS,gBAAAC,GAAc,kBAAAC,OAAsB,QCA7C,OAAS,aAAAC,EAAW,YAAAlB,OAAgB,QAG7B,IAAMmB,EAAc,CAAC,CAC1B,GAAAC,EACA,SAAAC,EACA,MAAAC,CACF,IAGY,CACV,GAAM,CAAC,CAAEC,CAAU,EAAIvB,GAA8B,EAcrD,GAZAkB,EAAU,IAAM,CACd,IAAMM,EAAW,IAAM,CACjBJ,GAAIG,EAAWH,EAAG,sBAAsB,CAAC,CAC/C,EAEA,cAAO,iBAAiB,SAAUI,EAAU,CAAE,QAAS,GAAM,QAAS,EAAM,CAAC,EAEtE,IAAM,CACX,OAAO,oBAAoB,SAAUA,CAAQ,CAC/C,CACF,EAAG,CAACJ,CAAE,CAAC,EAEH,CAACA,EAAI,OAAO,KAEhB,GAAM,CAAE,EAAAK,EAAG,OAAAC,EAAQ,EAAAC,EAAG,MAAAC,CAAM,EAAIR,EAAG,sBAAsB,EAEnDS,EAAQ,CACZ,UAAW,GACX,UAAW,EACb,EAEIC,EAA2C,YAC3CC,EAA6C,YAC7CC,EAAiBL,EACjBM,EAAqBP,EACrBQ,EAAiBT,EACjBU,EAAqBP,EAEzB,OAAIP,IAAa,QAAUA,IAAa,WACtCS,EAAgB,YAChBC,EAAkB,YAClBC,EAAiBP,EACjBQ,EAAqBL,EACrBM,EAAiBP,EACjBQ,EAAqBT,GAGnBL,IAAa,QAAUA,IAAa,MACtCQ,EAAMC,CAAa,EAAI,gBAAgBE,CAAc,MAClDH,EAAMC,CAAa,EAAI,GAAGE,EAAiBC,CAAkB,KAE9DX,IAAU,UACZO,EAAME,CAAe,EAAI,GAAGG,CAAc,MAGxCZ,IAAU,WACZO,EAAME,CAAe,EAAI,QAAQG,EAAiBC,EAAqB,CAAC,aAGtEb,IAAU,QACZO,EAAME,CAAe,EAAI,QAAQG,EAAiBC,CAAkB,cAG/DN,CACT,EDtDO,IAAMO,EAAW,CAAC,CACvB,GAAAhB,EACA,SAAAhB,EACA,SAAAiB,EAAW,SACX,MAAAC,EAAQ,QACR,QAAAe,EAAU,MACV,QAAAC,EAAU,MACV,aAAAC,EAAe,EACjB,IAAqB,CACnB,IAAMC,EAAarB,EAAY,CAAE,GAAAC,EAAI,SAAAC,EAAU,MAAAC,CAAM,CAAC,EAEtD,MAAI,CAACkB,GAAc,CAACvB,GAA4Bb,CAAQ,EAAU,KAElDY,GAAaZ,EAAU,CACrC,MAAOqC,EAAAC,EAAA,GACFtC,EAAS,MAAM,OADb,CAEL,SAAU,QACV,SAAUmC,EAAe,OAAS,cAClC,IAAK,IACL,KAAM,IACN,OAAQ,2BACR,UAAW,kBAAkBC,EAAW,SAAS,MAAMH,CAAO,WAAWG,EAAW,SAAS,MAAMF,CAAO,IAC5G,EACF,CAAC,CAGH,EErCA,OAAS,QAAAK,OAAY,sBAErB,OAAS,cAAAC,OAAkB,QAiCrB,cAAA3C,OAAA,6BAxBN,IAAM4C,GAAsBD,GAC1B,CACEE,GAiBAC,IACG,CAlBH,IAAAC,EAAAF,GACE,UAAA1C,EACA,UAAA6C,EACA,OAAAC,EACA,QAAAC,EACA,OAAAC,EACA,QAAAC,EACA,OAAAC,EACA,KAAAC,EACA,MAAA3B,EACA,OAAAF,EACA,MAAA8B,EACA,GAAAC,EACA,GAAAC,EACA,OAAAC,CA7BN,EAeIX,EAeKY,EAAAC,EAfLb,EAeK,CAdH,WACA,YACA,SACA,UACA,SACA,UACA,SACA,OACA,QACA,SACA,QACA,KACA,KACA,WAOF,OACE/C,GAHcyD,GAAM,MAGnBjB,EAAAC,EAAA,CACC,IAAKK,EACL,UAAWE,EACX,IAAKP,IAAAD,EAAAC,EAAA,CACH,MAAOa,GAAQ3B,EACf,OAAQ2B,GAAQ7B,GACZ8B,IAAU,UAAY,CACxB,aAAcb,GAAK,QAAQ,IAC7B,GALG,CAMH,UAAWO,EACX,WAAYC,EACZ,UAAWC,EACX,WAAYC,EACZ,UAAWC,IACRM,GACAH,IAEDE,GAjBL,CAmBE,SAAAvD,GACH,CAEJ,CACF,EAEM0D,EAAgB,OAAO,OAAOjB,GAAM,CAAE,YAAa,MAAO,CAAC,EC7DjE,OAAS,cAAAD,MAAkB,QAQpB,cAAA3C,MAAA,oBAJP,IAAM8D,GAAuBnB,EAC3B,CACEgB,EACAb,IACG9C,EAAC6D,EAAApB,EAAA,CAAK,IAAKK,EAAK,QAAQ,QAAWa,EAAO,CACjD,EAEMI,EAAO,OAAO,OAAOD,GAAO,CAAE,YAAa,MAAO,CAAC,EAEnDE,GAA6BrB,EACjC,CACEgB,EACAb,IACG9C,EAAC+D,EAAAtB,EAAA,CAAK,IAAKK,EAAK,WAAW,SAAS,eAAe,UAAaa,EAAO,CAC9E,EAEMM,GAAa,OAAO,OAAOD,GAAa,CAAE,YAAa,aAAc,CAAC,EAEtEE,GAA6BvB,EACjC,CACEE,EACAC,IACA,CAFA,IAAAC,EAAAF,EAAE,IAAAY,EAAK,KAzBX,EAyBIV,EAAwBY,EAAAC,EAAxBb,EAAwB,CAAtB,OAEC,OAAA/C,EAAC+D,EAAAtB,EAAA,CAAK,IAAKK,EAAK,GAAIW,EAAI,cAAc,UAAaE,EAAO,EACjE,EAEMQ,GAAa,OAAO,OAAOD,GAAa,CAAE,YAAa,aAAc,CAAC,EAO5E,IAAME,EAAgB,OAAO,OAAOL,EAAM,CAAE,OAAQE,GAAY,OAAQE,EAAW,CAAC,ECrCpF,OAAS,kBAAAnD,OAAsB,QAC/B,OAAS,gBAAAqD,OAAoB,YAazB,cAAArE,MAAA,oBARG,IAAMsE,EAAS,CAAC,CAAE,SAAAnE,EAAU,UAAAoE,GAAY1B,MAAA,mCAAY,WAAZ,YAAAA,EAAsB,OAAK,IACpE,CAAC0B,GAAa,CAACvD,GAAeb,CAAQ,EAAU,KAE7CkE,GAAalE,EAAUoE,CAAS,EAGzCD,EAAO,SAAYzB,GAA+C,CAA/C,IAAAE,EAAAF,EAAE,UAAA1C,CAZrB,EAYmB4C,EAAeyB,EAAAZ,EAAfb,EAAe,CAAb,aACnB,OAAA/C,EAACsE,EAAA,CACC,SAAAtE,EAACmC,EAAAK,EAAAC,EAAA,GAAa+B,GAAb,CAA6B,SAAArE,GAAS,EACzC,GL2CE,cAAAH,OAAA,6BAtBG,IAAMyE,EAAkE5B,GAOjD,CAPiD,IAAAE,EAAAF,EAC7E,IAAAY,EACA,SAAAtD,EACA,QAAAuE,EAAU,GACV,OAAAC,EAAS,QACT,OAAAjB,CAzCF,EAoC+EX,EAM1E6B,EAAAhB,EAN0Eb,EAM1E,CALH,KACA,WACA,UACA,SACA,WAGA,IAAM8B,EAAKpB,GAAM,SACX,CAAE,OAAAnD,EAAQ,OAAAD,EAAQ,OAAAD,EAAQ,aAAAK,EAAc,UAAAD,CAAU,EAAII,EAAkB,EAE9E,OAAAE,GAAgB,CACd,IAAKN,EACL,SAAU,IAAM,CACVH,GACFC,EAAO,CAEX,EACA,QAAAoE,CACF,CAAC,EAGC1E,GAACoE,EAAA5B,EAAAC,EAAA,CACC,GAAIoC,EACJ,IAAKpE,EACL,OAAQgC,IAAA,CACN,QAASkC,IAAW,SAAWD,EAAUtE,EAAS,OAClD,aAAcuE,IAAW,SAAWD,EAAUtE,EAAS,OACvD,aACEuE,IAAW,SAAWD,EAClB,IAAM,CACJpE,EAAO,CACT,EACA,QACFuE,IAAO,UAAY,CAAE,KAAM,QAAS,GACrCnB,GAEL,SAAS,YACLkB,GAhBL,CAkBE,SAAAzE,GACH,CAEJ,EM/EA,OAAS,UAAA2E,OAAc,sBACvB,OAAS,QAAApC,MAAY,sBCCrB,OAAS,cAAAqC,GAAY,QAAArC,OAAY,sBAEjC,OAAS,cAAAC,OAAkB,QA0BvB,cAAA3C,OAAA,6BAnBJ,IAAMgF,GAAc,CAClB,CACE,GAAAvB,EACA,cAAAwB,EACA,QAAAC,EAAU,cACV,UAAAlC,EAAY,GACZ,WAAAmC,EAAa,OACb,SAAAhF,EACA,WAAAiF,EACA,UAAAC,EACA,GAAA7B,EACA,UAAA8B,EACA,OAAA5B,CACF,EACAZ,IAKE9C,GAHcyD,GAAM,IAGnBjB,EAAAC,EAAA,CACC,UAAW,GAAGsC,GAAW,WAAWE,GAAiBC,CAAO,CAAC,IAAIlC,CAAS,GAC1E,IAAKF,EACL,IAAKL,EAAAD,EAAAC,EAAA,CACH,MAAOC,GAAK,SAAS,MAAMyC,CAAU,GACjCE,GAAa,CACf,QAAS,cACT,SAAU,SACV,aAAc,WACd,gBAAiB,WACjB,gBAAiBA,CACnB,GARG,CASH,WAAAD,EACA,UAAAE,IACG9B,IAEDE,GAhBL,CAkBE,SAAAvD,GACH,EAISoF,EAAa5C,GAAWqC,EAAW,EAEhDO,EAAW,YAAc,aCtDzB,OAAS,QAAA7C,MAAY,sBAGd,IAAM8C,EAAoB,CAAC,CAChC,SAAApE,EACA,QAAAiB,EAAU,MACV,QAAAD,EAAU,MACV,SAAAqD,CACF,IAA6F,CAC3F,OAAQrE,EAAU,CAChB,IAAK,MACH,MAAO,CACL,IAAK,SAASiB,CAAO,IAAIoD,EAAW,QAAU,EAAE,UAChD,KAAM,MACN,UAAW,yBACX,UAAW,CACT,QAASA,EAAW,QAAU,OAC9B,QAAS,KACT,SAAU,WACV,OAAQ,OACR,KAAM,MACN,UAAW,mBACX,UAAW,aAAa/C,EAAK,SAAS,MAAM,OAAO,GACnD,WAAY,wBACZ,YAAa,uBACf,EACA,WAAY,CACV,QAAS+C,EAAW,QAAU,OAC9B,QAAS,KACT,SAAU,WACV,OAAQ,SACR,KAAM,MACN,UAAW,mBACX,UAAW,qCACX,WAAY,0BACZ,YAAa,yBACf,CACF,EAEF,IAAK,SACH,MAAO,CACL,OAAQ,SAASpD,CAAO,IAAIoD,EAAW,QAAU,EAAE,UACnD,KAAM,MACN,UAAW,wBACX,UAAW,CACT,QAASA,EAAW,QAAU,OAC9B,QAAS,KACT,SAAU,WACV,IAAK,OACL,KAAM,MACN,UAAW,mBACX,aAAc,aAAa/C,EAAK,SAAS,MAAM,OAAO,GACtD,WAAY,wBACZ,YAAa,uBACf,EACA,WAAY,CACV,QAAS+C,EAAW,QAAU,OAC9B,QAAS,KACT,SAAU,WACV,IAAK,SACL,KAAM,MACN,UAAW,mBACX,aAAc,qCACd,WAAY,0BACZ,YAAa,yBACf,CACF,EAEF,IAAK,YACH,MAAO,CACL,IAAK,SAASpD,CAAO,IAAIoD,EAAW,QAAU,EAAE,UAChD,MAAO,QAAQrD,CAAO,WACtB,UAAW,yBACX,UAAW,CACT,QAASqD,EAAW,QAAU,OAC9B,QAAS,KACT,SAAU,WACV,OAAQ,OACR,KAAM,OACN,UAAW,mBACX,UAAW,aAAa/C,EAAK,SAAS,MAAM,OAAO,GACnD,WAAY,wBACZ,YAAa,uBACf,EACA,WAAY,CACV,QAAS+C,EAAW,QAAU,OAC9B,QAAS,KACT,SAAU,WACV,OAAQ,SACR,KAAM,OACN,UAAW,mBACX,UAAW,qCACX,WAAY,0BACZ,YAAa,yBACf,CACF,EAEF,IAAK,eACH,MAAO,CACL,OAAQ,SAASpD,CAAO,IAAIoD,EAAW,QAAU,EAAE,UACnD,MAAO,EACP,UAAW,qBACX,UAAW,CACT,QAASA,EAAW,QAAU,OAC9B,QAAS,KACT,SAAU,WACV,IAAK,OACL,MAAO,EACP,UAAW,mBACX,aAAc,aAAa/C,EAAK,SAAS,MAAM,OAAO,GACtD,WAAY,wBACZ,YAAa,uBACf,EACA,WAAY,CACV,QAAS+C,EAAW,QAAU,OAC9B,QAAS,KACT,SAAU,WACV,IAAK,SACL,MAAO,EACP,UAAW,mBACX,aAAc,qCACd,WAAY,0BACZ,YAAa,yBACf,CACF,EAEF,IAAK,OACH,MAAO,CACL,IAAK,MACL,UAAW,wBACX,KAAM,SAASrD,CAAO,IAAIqD,EAAW,QAAU,EAAE,UACjD,UAAW,CACT,QAASA,EAAW,QAAU,OAC9B,QAAS,KACT,SAAU,WACV,MAAO,OACP,IAAK,MACL,UAAW,mBACX,aAAc,wBACd,UAAW,wBACX,WAAY,aAAa/C,EAAK,SAAS,MAAM,OAAO,EACtD,EACA,WAAY,CACV,QAAS+C,EAAW,QAAU,OAC9B,QAAS,KACT,SAAU,WACV,MAAO,SACP,IAAK,MACL,UAAW,mBACX,aAAc,0BACd,UAAW,0BACX,WAAY,oCACd,CACF,EAGF,QACE,MAAO,CACL,IAAK,MACL,UAAW,uBACX,MAAO,SAASrD,CAAO,IAAIqD,EAAW,QAAU,EAAE,UAClD,UAAW,CACT,QAASA,EAAW,QAAU,OAC9B,QAAS,KACT,SAAU,WACV,KAAM,OACN,IAAK,MACL,UAAW,mBACX,aAAc,wBACd,UAAW,wBACX,YAAa,aAAa/C,EAAK,SAAS,MAAM,OAAO,EACvD,EACA,WAAY,CACV,QAAS+C,EAAW,QAAU,OAC9B,QAAS,KACT,SAAU,WACV,KAAM,SACN,IAAK,MACL,UAAW,mBACX,aAAc,0BACd,UAAW,0BACX,YAAa,oCACf,CACF,CACJ,CACF,EF1IY,cAAAzF,EAIJ,QAAA0F,MAJI,oBAxCL,IAAMC,EAAiB,CAAC,CAC7B,SAAAxF,EACA,YAAAyF,EACA,SAAAH,EACA,eAAAI,EACA,MAAAC,EACA,QAAA1D,EACA,QAAAC,EACA,SAAAjB,EACA,GAAAoC,EACA,UAAAR,CACF,IAA2B,CACzB,GAAM,CAAE,UAAAxC,EAAW,OAAAH,EAAQ,OAAAC,CAAO,EAAIM,EAAkB,EAExD,OAAOP,EACLL,EAACsE,EAAA,CAAO,UAAW9D,EACjB,SAAAkF,EAAC7B,EAAA,CACC,UAAWb,EACX,SAAS,WACT,QAAS4C,EAAc,YAAc,UACrC,UAAWlD,EAAK,WAAW,MAC3B,aAAcA,EAAK,QAAQ,OAC3B,gBAAiBA,EAAK,SAAS,MAAM,QACrC,OAAO,UACP,GAAID,IAAA,GACC+C,EAAkB,CAAE,SAAApE,EAAU,QAAAiB,EAAS,QAAAD,EAAS,SAAAqD,CAAS,CAAC,GAC1DjC,GAGJ,UAAAqC,GACC7F,EAAC6D,EAAA,CACC,SAAS,WACT,IAAI,MACJ,MAAM,MACN,QAAQ,OACR,OAAO,UACP,OAAQ,CACN,QAASvD,CACX,EAEA,SAAAN,EAAC8E,GAAA,EAAO,EACV,EAGFY,EAACtB,EAAK,OAAL,CAAY,IAAI,MAAM,KAAM,EAAG,WAAW,aACxC,UAAA0B,GACC9F,EAACuF,EAAA,CAAW,QAAQ,mBAAmB,WAAW,MAC/C,SAAAO,EACH,EAGDF,GACC5F,EAACuF,EAAA,CAAW,QAAQ,aAAa,WAAW,UAAU,UAAU,QAC7D,SAAAK,EACH,GAEJ,EAECzF,GACH,EACF,EACE,IACN,ER5DI,cAAAH,OAAA,oBAJJ,IAAM+F,GAAU,CAAC,CAAE,SAAA5F,EAAU,cAAA6F,EAAgB,GAAO,QAAAzF,CAAQ,IAAoB,CAC9E,GAAM,CAAE,MAAA0F,EAAO,OAAA7F,EAAQ,OAAAE,CAAO,EAAIZ,GAAWsG,CAAa,EAE1D,OACEhG,GAACE,EAAA,CAAgB,OAAQ+F,EAAO,OAAQ7F,EAAQ,OAAQE,EAAQ,QAASC,EACtE,SAAAJ,EACH,CAEJ,EAEM+F,GAAmB,OAAO,OAAOH,GAAS,CAC9C,QAAStB,EACT,QAASkB,CACX,CAAC","sourcesContent":["import { useBoolean } from \"@imwebme/clay-hooks\";\nimport { TooltipProvider } from \"./Tooltip.provider\";\nimport { TooltipTrigger } from \"./Tooltip.trigger\";\nimport type { TooltipProps } from \"./Tooltip.types\";\nimport { TooltipContent } from \"./TooltipContent\";\n\nconst Tooltip = ({ children, initialOpened = false, onClose }: TooltipProps) => {\n  const { value, toggle, setOff } = useBoolean(initialOpened);\n\n  return (\n    <TooltipProvider isOpen={value} toggle={toggle} setOff={setOff} onClose={onClose}>\n      {children}\n    </TooltipProvider>\n  );\n};\n\nconst TooltipNameSpace = Object.assign(Tooltip, {\n  Trigger: TooltipTrigger,\n  Content: TooltipContent,\n});\n\nexport { TooltipNameSpace as Tooltip };\n","import { useCallbackRef } from \"@imwebme/clay-hooks\";\nimport type { PropsWithChildren } from \"react\";\nimport { createContext, useContext, useMemo, useState } from \"react\";\nimport type { Nullable } from \"../types\";\n\nconst TooltipContext = createContext<\n  | {\n      isOpen: boolean;\n      toggle: VoidFunction;\n      setOff: VoidFunction;\n      portalRef: Nullable<HTMLElement>;\n      setPortalRef: (ref: HTMLElement | null) => void;\n    }\n  | undefined\n>(undefined);\n\nexport const TooltipProvider = ({\n  children,\n  toggle,\n  isOpen,\n  setOff,\n  onClose,\n}: PropsWithChildren<{\n  isOpen: boolean;\n  toggle: VoidFunction;\n  setOff: VoidFunction;\n  onClose?: VoidFunction;\n}>) => {\n  const [portalRef, setPortalRef] = useState<Nullable<HTMLElement>>(null);\n\n  const setOffProps = useCallbackRef(() => {\n    setOff();\n    onClose?.();\n  });\n\n  const memoContextValue = useMemo(() => {\n    return {\n      isOpen,\n      toggle,\n      setOff: setOffProps,\n      portalRef,\n      setPortalRef,\n    };\n  }, [isOpen, portalRef, setOffProps, toggle]);\n\n  return <TooltipContext.Provider value={memoContextValue}>{children}</TooltipContext.Provider>;\n};\n\nexport const useTooltipContext = () => {\n  const context = useContext(TooltipContext);\n\n  if (context === undefined) {\n    throw new Error(\"useTooltipContext must be used within a TooltipProvider\");\n  }\n\n  return context;\n};\n","/** @jsxImportSource @emotion/react */\n\nimport { useOutsideClick } from \"@imwebme/clay-hooks\";\nimport type { ElementType, ReactElement } from \"react\";\nimport type { ClayProps } from \"../utilities\";\nimport { Flex } from \"../utilities\";\nimport { useTooltipContext } from \"./Tooltip.provider\";\n\nexport type TooltipTriggerProps<T extends ElementType> = ClayProps<T> & {\n  /**\n   * 툴팁을 호출하는 action을 설정할 수 있습니다.\n   * @default 'click'\n   */\n  action?: \"hover\" | \"click\";\n  /**\n   * 툴팁의 노출 여부를 제어할 수 있습니다.\n   * @default true\n   */\n  enabled?: boolean;\n};\n\nexport type TooltipTriggerComponent = <C extends ElementType = \"div\">(\n  props: TooltipTriggerProps<C>,\n) => ReactElement | null;\n\n/**\n * 툴팁을 호출하는 트리거 wrapper입니다.\n *\n * @param TooltipTriggerProps\n * @example\n * <Tooltip>\n *  <Tooltip.trigger>\n *    <button>hi</button>\n * </Tooltip.trigger>\n * </Tooltip>\n */\nexport const TooltipTrigger: TooltipTriggerComponent = <E extends ElementType>({\n  as,\n  children,\n  enabled = true,\n  action = \"hover\",\n  native,\n  ...restProps\n}: TooltipTriggerProps<E>) => {\n  const AS = as || \"button\";\n  const { setOff, isOpen, toggle, setPortalRef, portalRef } = useTooltipContext();\n\n  useOutsideClick({\n    ref: portalRef,\n    callback: () => {\n      if (isOpen) {\n        setOff();\n      }\n    },\n    enabled,\n  });\n\n  return (\n    <Flex\n      as={AS}\n      ref={setPortalRef}\n      native={{\n        onClick: action === \"click\" && enabled ? toggle : undefined,\n        onMouseEnter: action === \"hover\" && enabled ? toggle : undefined,\n        onMouseLeave:\n          action === \"hover\" && enabled\n            ? () => {\n                setOff();\n              }\n            : undefined,\n        ...(AS === \"button\" && { type: \"button\" }),\n        ...native,\n      }}\n      position=\"relative\"\n      {...restProps}\n    >\n      {children}\n    </Flex>\n  );\n};\n","import { cloneElement, isValidElement } from \"react\";\nimport { useAbsolute } from \"./Absolute.hooks\";\nimport type { AbsoluteProps } from \"./Absolute.types\";\n\n/**\n * children 요소를 `to` props로 전달받은 요소를 기준으로 띄우는 역할입니다.\n *\n * 기본 position 이 `absolute` 로 설정되어 있어, 부모 요소에 영향을 받습니다.\n *\n * 만약 부모 요소와 관계 없이 화면에서 자유롭게 위치를 설정하고 싶다면, `Portal.Absolute` 또는 `Portal`과 함께 사용해주세요\n *\n * > Docs의 예시는 ref가 깨져서 `show code` 용으로만 확인해주시면 됩니다.\n */\nexport const Absolute = ({\n  to,\n  children,\n  position = \"bottom\",\n  align = \"start\",\n  offsetX = \"0px\",\n  offsetY = \"0px\",\n  autoMinWidth = false,\n}: AbsoluteProps) => {\n  const floatStyle = useAbsolute({ to, position, align });\n\n  if (!floatStyle || !isValidElement<HTMLElement>(children)) return null;\n\n  const floated = cloneElement(children, {\n    style: {\n      ...children.props.style,\n      position: \"fixed\",\n      minWidth: autoMinWidth ? \"auto\" : \"max-content\",\n      top: \"0\",\n      left: \"0\",\n      zIndex: \"var(--clay-zIndex-modal)\",\n      transform: `translate(calc(${floatStyle.computedX} + ${offsetX}), calc(${floatStyle.computedY} + ${offsetY}))`,\n    },\n  });\n\n  return floated;\n};\n","import { useEffect, useState } from \"react\";\nimport type { AbsoluteProps } from \"./Absolute.types\";\n\nexport const useAbsolute = ({\n  to,\n  position,\n  align,\n}: Pick<AbsoluteProps, \"align\" | \"position\" | \"to\">): {\n  computedX: string;\n  computedY: string;\n} | null => {\n  const [, setDomRect] = useState<undefined | DOMRect>();\n\n  useEffect(() => {\n    const callback = () => {\n      if (to) setDomRect(to.getBoundingClientRect());\n    };\n\n    window.addEventListener(\"scroll\", callback, { passive: true, capture: false });\n\n    return () => {\n      window.removeEventListener(\"scroll\", callback);\n    };\n  }, [to]);\n\n  if (!to) return null;\n\n  const { x, height, y, width } = to.getBoundingClientRect();\n\n  const style = {\n    computedY: \"\",\n    computedX: \"\",\n  };\n\n  let fixedProperty: \"computedY\" | \"computedX\" = \"computedY\";\n  let unFixedProperty: \"computedY\" | \"computedX\" = \"computedX\";\n  let fixedAxisValue = y;\n  let fixedRelativeValue = height;\n  let alignAxisValue = x;\n  let alignRelativeValue = width;\n\n  if (position === \"left\" || position === \"right\") {\n    fixedProperty = \"computedX\";\n    unFixedProperty = \"computedY\";\n    fixedAxisValue = x;\n    fixedRelativeValue = width;\n    alignAxisValue = y;\n    alignRelativeValue = height;\n  }\n\n  if (position === \"left\" || position === \"top\")\n    style[fixedProperty] = `calc(-100% + ${fixedAxisValue}px)`;\n  else style[fixedProperty] = `${fixedAxisValue + fixedRelativeValue}px`;\n\n  if (align === \"start\") {\n    style[unFixedProperty] = `${alignAxisValue}px`;\n  }\n\n  if (align === \"center\") {\n    style[unFixedProperty] = `calc(${alignAxisValue + alignRelativeValue / 2}px - 50%)`;\n  }\n\n  if (align === \"end\") {\n    style[unFixedProperty] = `calc(${alignAxisValue + alignRelativeValue}px - 100%)`;\n  }\n\n  return style;\n};\n","/** @jsxImportSource @emotion/react */\n\nimport { vars } from \"@imwebme/clay-token\";\nimport type { ComponentPropsWithRef, ElementType, ReactElement } from \"react\";\nimport { forwardRef } from \"react\";\nimport type { ClayProps } from \"./Clay.types\";\n\nexport type ClayComponent = <C extends ElementType = \"div\">(\n  props: ClayProps<C> & {\n    ref?: ComponentPropsWithRef<C>[\"ref\"];\n  },\n) => ReactElement | null;\n\nconst Clay: ClayComponent = forwardRef(\n  <E extends ElementType>(\n    {\n      children,\n      className,\n      _hover,\n      _active,\n      _after,\n      _before,\n      _focus,\n      size,\n      width,\n      height,\n      shape,\n      sx,\n      as,\n      native,\n      ...props\n    }: ClayProps<E>,\n    ref: ComponentPropsWithRef<E>[\"ref\"],\n  ) => {\n    const Element = as || \"div\";\n\n    return (\n      <Element\n        ref={ref}\n        className={className}\n        css={{\n          width: size || width,\n          height: size || height,\n          ...(shape === \"circle\" && {\n            borderRadius: vars.rounded.full,\n          }),\n          \"&:hover\": _hover,\n          \"&:active\": _active,\n          \"&:after\": _after,\n          \"&:before\": _before,\n          \"&:focus\": _focus,\n          ...props,\n          ...sx,\n        }}\n        {...native}\n      >\n        {children}\n      </Element>\n    );\n  },\n);\n\nconst ClayNameSpace = Object.assign(Clay, { displayName: \"Clay\" });\n\nexport { ClayNameSpace as Clay };\n","import type { ComponentPropsWithRef, ElementType } from \"react\";\nimport { forwardRef } from \"react\";\nimport { Clay } from \"../Clay\";\nimport type { ClayComponent, ClayProps } from \"../Clay/Clay.types\";\n\nconst _Flex: ClayComponent = forwardRef(\n  <Element extends ElementType>(\n    props: ClayProps<Element>,\n    ref: ComponentPropsWithRef<Element>[\"ref\"],\n  ) => <Clay ref={ref} display=\"flex\" {...props} />,\n);\n\nconst Flex = Object.assign(_Flex, { displayName: \"Flex\" });\n\nconst _FlexCenter: ClayComponent = forwardRef(\n  <Element extends ElementType>(\n    props: ClayProps<Element>,\n    ref: ComponentPropsWithRef<Element>[\"ref\"],\n  ) => <Flex ref={ref} alignItems=\"center\" justifyContent=\"center\" {...props} />,\n);\n\nconst FlexCenter = Object.assign(_FlexCenter, { displayName: \"Flex.Center\" });\n\nconst _FlexColumn: ClayComponent = forwardRef(\n  <Element extends ElementType>(\n    { as = \"div\" as any, ...props }: ClayProps<Element>,\n    ref: ComponentPropsWithRef<Element>[\"ref\"],\n  ) => <Flex ref={ref} as={as} flexDirection=\"column\" {...props} />,\n);\n\nconst FlexColumn = Object.assign(_FlexColumn, { displayName: \"Flex.Column\" });\n\n/**\n * @deprecated Use `Flex.Column` instead\n */\nexport const Stack = FlexColumn;\n\nconst FlexNameSpace = Object.assign(Flex, { Center: FlexCenter, Column: FlexColumn });\n\nexport { FlexNameSpace as Flex };\n","import { isValidElement } from \"react\";\nimport { createPortal } from \"react-dom\";\nimport type { AbsoluteProps } from \"../Absolute\";\nimport { Absolute } from \"../Absolute\";\nimport type { PortalProps } from \"./Portal.types\";\n\nexport const Portal = ({ children, container = globalThis?.document?.body }: PortalProps) => {\n  if (!container || !isValidElement(children)) return null;\n\n  return createPortal(children, container);\n};\n\nPortal.Absolute = ({ children, ...absoluteProps }: AbsoluteProps) => (\n  <Portal>\n    <Absolute {...absoluteProps}>{children}</Absolute>\n  </Portal>\n);\n","import { XClose } from \"@imwebme/clay-icons\";\nimport { vars } from \"@imwebme/clay-token\";\nimport { Clay, Flex, Typography } from \"../..\";\nimport { Portal } from \"../../utilities/Portal\";\nimport { useTooltipContext } from \"../Tooltip.provider\";\nimport type { TooltipContentProps } from \"./TooltipContent.types\";\nimport { calculatePosition } from \"./TooltipContent.utils\";\n\nexport const TooltipContent = ({\n  children,\n  description,\n  hasArrow,\n  hasCloseButton,\n  label,\n  offsetX,\n  offsetY,\n  position,\n  sx,\n  className,\n}: TooltipContentProps) => {\n  const { portalRef, isOpen, setOff } = useTooltipContext();\n\n  return isOpen ? (\n    <Portal container={portalRef}>\n      <Clay\n        className={className}\n        position=\"absolute\"\n        padding={description ? \"12px 16px\" : \"6px 8px\"}\n        boxShadow={vars.dropShadow.layer}\n        borderRadius={vars.rounded.medium}\n        backgroundColor={vars.semantic.color.surface}\n        cursor=\"default\"\n        sx={{\n          ...calculatePosition({ position, offsetY, offsetX, hasArrow }),\n          ...sx,\n        }}\n      >\n        {hasCloseButton && (\n          <Clay\n            position=\"absolute\"\n            top=\"8px\"\n            right=\"8px\"\n            display=\"flex\"\n            cursor=\"pointer\"\n            native={{\n              onClick: setOff,\n            }}\n          >\n            <XClose />\n          </Clay>\n        )}\n\n        <Flex.Column gap=\"8px\" flex={1} alignItems=\"flex-start\">\n          {label && (\n            <Typography variant=\"label-small-bold\" whiteSpace=\"pre\">\n              {label}\n            </Typography>\n          )}\n\n          {description && (\n            <Typography variant=\"body-small\" colorToken=\"textSub\" textAlign=\"start\">\n              {description}\n            </Typography>\n          )}\n        </Flex.Column>\n\n        {children}\n      </Clay>\n    </Portal>\n  ) : null;\n};\n","/** @jsxImportSource @emotion/react */\n\nimport { classNames, vars } from \"@imwebme/clay-token\";\nimport type { ElementType, Ref } from \"react\";\nimport { forwardRef } from \"react\";\nimport type { TypographyProps } from \"./Typography.types\";\n\n/**\n * token은 두 가지 방법으로 넣어줄 수 있습니다. semanticToken, variant\n * 값은 body-medium이 default 입니다.\n */\nconst _Typography = <Element extends ElementType>(\n  {\n    as,\n    semanticToken,\n    variant = \"body-medium\",\n    className = \"\",\n    colorToken = \"text\",\n    children,\n    whiteSpace,\n    numOfLine,\n    sx,\n    textAlign,\n    native,\n  }: TypographyProps<Element>,\n  ref: Ref<HTMLElement>,\n) => {\n  const Element = as || \"p\";\n\n  return (\n    <Element\n      className={`${classNames.typography[semanticToken || variant]} ${className}`}\n      ref={ref as any}\n      css={{\n        color: vars.semantic.color[colorToken],\n        ...(numOfLine && {\n          display: \"-webkit-box\",\n          overflow: \"hidden\",\n          textOverflow: \"ellipsis\",\n          WebkitBoxOrient: \"vertical\",\n          WebkitLineClamp: numOfLine,\n        }),\n        whiteSpace,\n        textAlign,\n        ...sx,\n      }}\n      {...native}\n    >\n      {children}\n    </Element>\n  );\n};\n\nexport const Typography = forwardRef(_Typography);\n\nTypography.displayName = \"Typography\";\n","import type { CSSObject } from \"@emotion/react\";\nimport { vars } from \"@imwebme/clay-token\";\nimport type { TooltipContentProps } from \"./TooltipContent.types\";\n\nexport const calculatePosition = ({\n  position,\n  offsetY = \"4px\",\n  offsetX = \"0px\",\n  hasArrow,\n}: Pick<TooltipContentProps, \"hasArrow\" | \"offsetX\" | \"offsetY\" | \"position\">): CSSObject => {\n  switch (position) {\n    case \"top\":\n      return {\n        top: `calc(-${offsetY} ${hasArrow ? \"- 6px\" : \"\"} - 4px)`,\n        left: \"50%\",\n        transform: \"translate(-50%, -100%)\",\n        \"&:after\": {\n          display: hasArrow ? \"block\" : \"none\",\n          content: '\"\"',\n          position: \"absolute\",\n          bottom: \"-5px\",\n          left: \"50%\",\n          transform: \"translateX(-50%)\",\n          borderTop: `solid 6px ${vars.semantic.color.surface}`,\n          borderLeft: \"solid 6px transparent\",\n          borderRight: \"solid 6px transparent\",\n        },\n        \"&:before\": {\n          display: hasArrow ? \"block\" : \"none\",\n          content: '\"\"',\n          position: \"absolute\",\n          bottom: \"-5.1px\",\n          left: \"50%\",\n          transform: \"translateX(-50%)\",\n          borderTop: \"solid 6.1px rgba(75, 81, 91, 0.03)\",\n          borderLeft: \"solid 6.1px transparent\",\n          borderRight: \"solid 6.1px transparent\",\n        },\n      };\n\n    case \"bottom\":\n      return {\n        bottom: `calc(-${offsetY} ${hasArrow ? \"- 6px\" : \"\"} - 4px)`,\n        left: \"50%\",\n        transform: \"translate(-50%, 100%)\",\n        \"&:after\": {\n          display: hasArrow ? \"block\" : \"none\",\n          content: '\"\"',\n          position: \"absolute\",\n          top: \"-5px\",\n          left: \"50%\",\n          transform: \"translateX(-50%)\",\n          borderBottom: `solid 6px ${vars.semantic.color.surface}`,\n          borderLeft: \"solid 6px transparent\",\n          borderRight: \"solid 6px transparent\",\n        },\n        \"&:before\": {\n          display: hasArrow ? \"block\" : \"none\",\n          content: '\"\"',\n          position: \"absolute\",\n          top: \"-5.1px\",\n          left: \"50%\",\n          transform: \"translateX(-50%)\",\n          borderBottom: \"solid 6.1px rgba(75, 81, 91, 0.03)\",\n          borderLeft: \"solid 6.1px transparent\",\n          borderRight: \"solid 6.1px transparent\",\n        },\n      };\n\n    case \"top-right\":\n      return {\n        top: `calc(-${offsetY} ${hasArrow ? \"- 6px\" : \"\"} - 4px)`,\n        right: `calc(${offsetX} + 15px)`,\n        transform: \"translate(100%, -100%)\",\n        \"&:after\": {\n          display: hasArrow ? \"block\" : \"none\",\n          content: '\"\"',\n          position: \"absolute\",\n          bottom: \"-5px\",\n          left: \"15px\",\n          transform: \"translateX(-50%)\",\n          borderTop: `solid 6px ${vars.semantic.color.surface}`,\n          borderLeft: \"solid 6px transparent\",\n          borderRight: \"solid 6px transparent\",\n        },\n        \"&:before\": {\n          display: hasArrow ? \"block\" : \"none\",\n          content: '\"\"',\n          position: \"absolute\",\n          bottom: \"-5.1px\",\n          left: \"15px\",\n          transform: \"translateX(-50%)\",\n          borderTop: \"solid 6.1px rgba(75, 81, 91, 0.03)\",\n          borderLeft: \"solid 6.1px transparent\",\n          borderRight: \"solid 6.1px transparent\",\n        },\n      };\n\n    case \"bottom-right\":\n      return {\n        bottom: `calc(-${offsetY} ${hasArrow ? \"- 6px\" : \"\"} - 4px)`,\n        right: 0,\n        transform: \"translate(0, 100%)\",\n        \"&:after\": {\n          display: hasArrow ? \"block\" : \"none\",\n          content: '\"\"',\n          position: \"absolute\",\n          top: \"-5px\",\n          right: 0,\n          transform: \"translateX(-50%)\",\n          borderBottom: `solid 6px ${vars.semantic.color.surface}`,\n          borderLeft: \"solid 6px transparent\",\n          borderRight: \"solid 6px transparent\",\n        },\n        \"&:before\": {\n          display: hasArrow ? \"block\" : \"none\",\n          content: '\"\"',\n          position: \"absolute\",\n          top: \"-5.1px\",\n          right: 0,\n          transform: \"translateX(-50%)\",\n          borderBottom: \"solid 6.1px rgba(75, 81, 91, 0.03)\",\n          borderLeft: \"solid 6.1px transparent\",\n          borderRight: \"solid 6.1px transparent\",\n        },\n      };\n\n    case \"left\":\n      return {\n        top: \"50%\",\n        transform: \"translate(-100%,-50%)\",\n        left: `calc(-${offsetX} ${hasArrow ? \"- 6px\" : \"\"} - 4px)`,\n        \"&:after\": {\n          display: hasArrow ? \"block\" : \"none\",\n          content: '\"\"',\n          position: \"absolute\",\n          right: \"-5px\",\n          top: \"50%\",\n          transform: \"translateY(-50%)\",\n          borderBottom: \"solid 6px transparent\",\n          borderTop: \"solid 6px transparent\",\n          borderLeft: `solid 6px ${vars.semantic.color.surface}`,\n        },\n        \"&:before\": {\n          display: hasArrow ? \"block\" : \"none\",\n          content: '\"\"',\n          position: \"absolute\",\n          right: \"-5.1px\",\n          top: \"50%\",\n          transform: \"translateY(-50%)\",\n          borderBottom: \"solid 6.1px transparent\",\n          borderTop: \"solid 6.1px transparent\",\n          borderLeft: \"solid 6.1px rgba(75, 81, 91, 0.03)\",\n        },\n      };\n\n    // right\n    default:\n      return {\n        top: \"50%\",\n        transform: \"translate(100%,-50%)\",\n        right: `calc(-${offsetX} ${hasArrow ? \"- 6px\" : \"\"} - 4px)`,\n        \"&:after\": {\n          display: hasArrow ? \"block\" : \"none\",\n          content: '\"\"',\n          position: \"absolute\",\n          left: \"-5px\",\n          top: \"50%\",\n          transform: \"translateY(-50%)\",\n          borderBottom: \"solid 6px transparent\",\n          borderTop: \"solid 6px transparent\",\n          borderRight: `solid 6px ${vars.semantic.color.surface}`,\n        },\n        \"&:before\": {\n          display: hasArrow ? \"block\" : \"none\",\n          content: '\"\"',\n          position: \"absolute\",\n          left: \"-5.1px\",\n          top: \"50%\",\n          transform: \"translateY(-50%)\",\n          borderBottom: \"solid 6.1px transparent\",\n          borderTop: \"solid 6.1px transparent\",\n          borderRight: \"solid 6.1px rgba(75, 81, 91, 0.03)\",\n        },\n      };\n  }\n};\n"]}