@consta/uikit 4.6.0 → 4.6.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (43) hide show
  1. package/AutoCompleteCanary/index.d.ts +1 -0
  2. package/AutoCompleteCanary/index.js +1 -0
  3. package/__internal__/src/components/AutoCompleteCanary/index.d.ts +1 -0
  4. package/__internal__/src/components/AutoCompleteCanary/index.js +2 -0
  5. package/__internal__/src/components/AutoCompleteCanary/index.js.map +1 -0
  6. package/__internal__/src/components/Breadcrumbs/BreadcrumbsFitModeDropdown/BreadcrumbsFitModeDropdown.css +1 -1
  7. package/__internal__/src/components/Breadcrumbs/BreadcrumbsFitModeDropdown/BreadcrumbsFitModeDropdown.js +1 -1
  8. package/__internal__/src/components/Breadcrumbs/BreadcrumbsFitModeDropdown/BreadcrumbsFitModeDropdown.js.map +1 -1
  9. package/__internal__/src/components/Breadcrumbs/BreadcrumbsMore/BreadcrumbsMore.js +1 -1
  10. package/__internal__/src/components/Breadcrumbs/BreadcrumbsMore/BreadcrumbsMore.js.map +1 -1
  11. package/__internal__/src/components/Breadcrumbs/useElements.js +1 -1
  12. package/__internal__/src/components/Breadcrumbs/useElements.js.map +1 -1
  13. package/__internal__/src/components/Collapse/Collapse.css +1 -1
  14. package/__internal__/src/components/Collapse/Collapse.js +1 -1
  15. package/__internal__/src/components/Collapse/Collapse.js.map +1 -1
  16. package/__internal__/src/components/FieldCaption/FieldCaption.js +1 -1
  17. package/__internal__/src/components/FieldCaption/FieldCaption.js.map +1 -1
  18. package/__internal__/src/components/Popover/Popover.js +1 -1
  19. package/__internal__/src/components/Popover/Popover.js.map +1 -1
  20. package/__internal__/src/components/ProgressStepBar/ProgressStepBarItem/ProgressStepBarItem.css +1 -1
  21. package/__internal__/src/components/ProgressStepBar/ProgressStepBarItem/ProgressStepBarItem.js +1 -1
  22. package/__internal__/src/components/ProgressStepBar/ProgressStepBarItem/ProgressStepBarItem.js.map +1 -1
  23. package/__internal__/src/components/ProgressStepBar/helpers.d.ts +1 -1
  24. package/__internal__/src/components/ProgressStepBar/helpers.js.map +1 -1
  25. package/__internal__/src/hooks/useMouseLeave/index.d.ts +1 -0
  26. package/__internal__/src/hooks/useMouseLeave/index.js +2 -0
  27. package/__internal__/src/hooks/useMouseLeave/index.js.map +1 -0
  28. package/__internal__/src/hooks/useMouseLeave/useMouseLeave.d.ts +9 -0
  29. package/__internal__/src/hooks/useMouseLeave/useMouseLeave.js +2 -0
  30. package/__internal__/src/hooks/useMouseLeave/useMouseLeave.js.map +1 -0
  31. package/__internal__/src/uiKit/components/DocsDecorator/DocsDecorator.d.ts +0 -1
  32. package/__internal__/src/uiKit/components/DocsDecorator/DocsDecorator.js +1 -1
  33. package/__internal__/src/uiKit/components/DocsDecorator/DocsDecorator.js.map +1 -1
  34. package/__internal__/src/uiKit/components/DocsExample/DocsExample.css +1 -1
  35. package/__internal__/src/uiKit/components/DocsExample/index.d.ts +1 -0
  36. package/__internal__/src/uiKit/components/DocsExample/index.js +2 -0
  37. package/__internal__/src/uiKit/components/DocsExample/index.js.map +1 -0
  38. package/__internal__/src/uiKit/whitepaper/whitepaper.d.ts +1 -0
  39. package/__internal__/src/uiKit/whitepaper/whitepaper.js +1 -1
  40. package/__internal__/src/uiKit/whitepaper/whitepaper.js.map +1 -1
  41. package/package.json +1 -1
  42. package/useMouseLeave/index.d.ts +1 -0
  43. package/useMouseLeave/index.js +1 -0
@@ -0,0 +1 @@
1
+ export * from "../__internal__/src/components/AutoCompleteCanary";
@@ -0,0 +1 @@
1
+ export * from "../__internal__/src/components/AutoCompleteCanary";
@@ -0,0 +1 @@
1
+ export * from './AutoCompleteCanary';
@@ -0,0 +1,2 @@
1
+ export*from"./AutoCompleteCanary";
2
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","names":[],"sources":["../../../../../src/components/AutoCompleteCanary/index.ts"],"sourcesContent":["export * from './AutoCompleteCanary';\n"],"mappings":"AAAA"}
@@ -1 +1 @@
1
- .BreadcrumbsFitModeDropdown_compression_s{--breadcrumbs-item-width:45%}.BreadcrumbsFitModeDropdown_compression_m{--breadcrumbs-item-width:40%}.BreadcrumbsFitModeDropdown_compression_l{--breadcrumbs-item-width:35%}.BreadcrumbsFitModeDropdown_compression_xl{--breadcrumbs-item-width:30%}
1
+ .BreadcrumbsFitModeDropdown_compression_s{--breadcrumbs-item-width:45%}.BreadcrumbsFitModeDropdown_compression_m{--breadcrumbs-item-width:40%}.BreadcrumbsFitModeDropdown_compression_l{--breadcrumbs-item-width:35%}.BreadcrumbsFitModeDropdown_compression_xl{--breadcrumbs-item-width:30%}.BreadcrumbsFitModeDropdown-Item_removed.BreadcrumbsItem{display:none}
@@ -1,2 +1,2 @@
1
- import _defineProperty from"@babel/runtime/helpers/defineProperty";import _objectWithoutProperties from"@babel/runtime/helpers/objectWithoutProperties";var _excluded=["items","getItemHref","getItemLabel","getItemIcon","getItemOnClick","getItemSubMenu","onItemClick","size","className","renderItem"];import"./BreadcrumbsFitModeDropdown.css";import React,{forwardRef}from"react";import{useForkRef}from"../../../hooks/useForkRef/useForkRef";import{cn}from"../../../utils/bem";import{BreadcrumbsMore}from"../BreadcrumbsMore/BreadcrumbsMore";import{useElements}from"../useElements";export var cnBreadcrumbsFitModeDropdown=cn("BreadcrumbsFitModeDropdown");export var BreadcrumbsFitModeDropdown=forwardRef(function(a,b){var c=a.items,d=a.getItemHref,e=a.getItemLabel,f=a.getItemIcon,g=a.getItemOnClick,h=a.getItemSubMenu,i=a.onItemClick,j=a.size,k=a.className,l=a.renderItem,m=_objectWithoutProperties(a,_excluded),n=useElements(c),o=n.firstItem,p=n.lastItem,q=n.readyToHideItems,r=n.hiddenItems,s=n.itemsRefs,t=n.wrapperRef,u=n.moreRef,v=n.firstItemRef,w=n.lastItemRef,x=n.lastWidth,y=n.compression,z=useForkRef([b,t]);return React.createElement("ul",Object.assign({className:cnBreadcrumbsFitModeDropdown({compression:y},[k]),ref:z},m,{style:_defineProperty({},"--breadcrumbs-item-last-width",x)}),l(o,"first",!0,!1,v),React.createElement(BreadcrumbsMore,{size:j,getItemHref:d,getItemIcon:f,getItemLabel:e,getItemOnClick:g,onItemClick:i,getItemSubMenu:h,items:r,ref:u,className:cnBreadcrumbsFitModeDropdown("Item",{removed:0>=r.length})}),q.map(function(a,b){return l(a,b,!1,!1,s[b],!!r[b])}),l(p,"last",!1,!0,w))});
1
+ import _defineProperty from"@babel/runtime/helpers/defineProperty";import _objectWithoutProperties from"@babel/runtime/helpers/objectWithoutProperties";var _excluded=["items","getItemHref","getItemLabel","getItemIcon","getItemOnClick","getItemSubMenu","onItemClick","size","className","renderItem"];import"./BreadcrumbsFitModeDropdown.css";import React,{forwardRef}from"react";import{useForkRef}from"../../../hooks/useForkRef/useForkRef";import{cn}from"../../../utils/bem";import{BreadcrumbsMore}from"../BreadcrumbsMore/BreadcrumbsMore";import{useElements}from"../useElements";export var cnBreadcrumbsFitModeDropdown=cn("BreadcrumbsFitModeDropdown");export var BreadcrumbsFitModeDropdown=forwardRef(function(a,b){var c=a.items,d=a.getItemHref,e=a.getItemLabel,f=a.getItemIcon,g=a.getItemOnClick,h=a.getItemSubMenu,i=a.onItemClick,j=a.size,k=a.className,l=a.renderItem,m=_objectWithoutProperties(a,_excluded),n=useElements(c),o=n.firstItem,p=n.lastItem,q=n.readyToHideItems,r=n.hiddenItems,s=n.itemsRefs,t=n.wrapperRef,u=n.moreRef,v=n.firstItemRef,w=n.lastItemRef,x=n.lastWidth,y=n.compression,z=useForkRef([b,t]);return React.createElement("ul",Object.assign({className:cnBreadcrumbsFitModeDropdown({compression:y},[k]),ref:z},m,{style:_defineProperty({},"--breadcrumbs-item-last-width",x)}),l(o,"first",!0,!1,v),React.createElement(BreadcrumbsMore,{size:j,key:cnBreadcrumbsFitModeDropdown("More"),getItemHref:d,getItemIcon:f,getItemLabel:e,getItemOnClick:g,onItemClick:i,getItemSubMenu:h,items:r,ref:u,className:cnBreadcrumbsFitModeDropdown("Item",{removed:0>=r.length})}),q.map(function(a,b){return l(a,b,!1,!1,s[b],!!r[b])}),l(p,"last",!1,!0,w))});
2
2
  //# sourceMappingURL=BreadcrumbsFitModeDropdown.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"BreadcrumbsFitModeDropdown.js","names":["React","forwardRef","useForkRef","cn","BreadcrumbsMore","useElements","cnBreadcrumbsFitModeDropdown","BreadcrumbsFitModeDropdown","props","ref","items","getItemHref","getItemLabel","getItemIcon","getItemOnClick","getItemSubMenu","onItemClick","size","className","renderItem","otherProps","firstItem","lastItem","readyToHideItems","hiddenItems","itemsRefs","wrapperRef","moreRef","firstItemRef","lastItemRef","lastWidth","compression","rootRef","removed","length","map","item","index"],"sources":["../../../../../../src/components/Breadcrumbs/BreadcrumbsFitModeDropdown/BreadcrumbsFitModeDropdown.tsx"],"sourcesContent":["import './BreadcrumbsFitModeDropdown.css';\n\nimport React, { forwardRef } from 'react';\n\nimport { useForkRef } from '../../../hooks/useForkRef/useForkRef';\nimport { cn } from '../../../utils/bem';\nimport { BreadcrumbsMore } from '../BreadcrumbsMore/BreadcrumbsMore';\nimport { BreadcrumbsFitModeDropdownComponent } from '../types';\nimport { useElements } from '../useElements';\n\nexport const cnBreadcrumbsFitModeDropdown = cn('BreadcrumbsFitModeDropdown');\n\nexport const BreadcrumbsFitModeDropdown: BreadcrumbsFitModeDropdownComponent =\n forwardRef((props, ref) => {\n const {\n items,\n getItemHref,\n getItemLabel,\n getItemIcon,\n getItemOnClick,\n getItemSubMenu,\n onItemClick,\n size,\n className,\n renderItem,\n ...otherProps\n } = props;\n\n const {\n firstItem,\n lastItem,\n readyToHideItems,\n hiddenItems,\n itemsRefs,\n wrapperRef,\n moreRef,\n firstItemRef,\n lastItemRef,\n lastWidth,\n compression,\n } = useElements(items);\n\n const rootRef = useForkRef([ref, wrapperRef]);\n\n return (\n <ul\n className={cnBreadcrumbsFitModeDropdown({ compression }, [className])}\n ref={rootRef}\n {...otherProps}\n style={{ ['--breadcrumbs-item-last-width' as string]: lastWidth }}\n >\n {renderItem(firstItem, 'first', true, false, firstItemRef)}\n <BreadcrumbsMore\n size={size}\n getItemHref={getItemHref}\n getItemIcon={getItemIcon}\n getItemLabel={getItemLabel}\n getItemOnClick={getItemOnClick}\n onItemClick={onItemClick}\n getItemSubMenu={getItemSubMenu}\n items={hiddenItems}\n ref={moreRef}\n className={cnBreadcrumbsFitModeDropdown('Item', {\n removed: hiddenItems.length <= 0,\n })}\n />\n {readyToHideItems.map((item, index) =>\n renderItem(\n item,\n index,\n false,\n false,\n itemsRefs[index],\n !!hiddenItems[index],\n ),\n )}\n {renderItem(lastItem, 'last', false, true, lastItemRef)}\n </ul>\n );\n });\n"],"mappings":"2SAAA,yCAEA,MAAOA,MAAP,EAAgBC,UAAhB,KAAkC,OAAlC,CAEA,OAASC,UAAT,4CACA,OAASC,EAAT,0BACA,OAASC,eAAT,0CAEA,OAASC,WAAT,sBAEA,MAAO,IAAMC,6BAA4B,CAAGH,EAAE,CAAC,4BAAD,CAAvC,CAEP,MAAO,IAAMI,2BAA+D,CAC1EN,UAAU,CAAC,SAACO,CAAD,CAAQC,CAAR,CAAgB,IAEvBC,EAFuB,CAarBF,CAbqB,CAEvBE,KAFuB,CAGvBC,CAHuB,CAarBH,CAbqB,CAGvBG,WAHuB,CAIvBC,CAJuB,CAarBJ,CAbqB,CAIvBI,YAJuB,CAKvBC,CALuB,CAarBL,CAbqB,CAKvBK,WALuB,CAMvBC,CANuB,CAarBN,CAbqB,CAMvBM,cANuB,CAOvBC,CAPuB,CAarBP,CAbqB,CAOvBO,cAPuB,CAQvBC,CARuB,CAarBR,CAbqB,CAQvBQ,WARuB,CASvBC,CATuB,CAarBT,CAbqB,CASvBS,IATuB,CAUvBC,CAVuB,CAarBV,CAbqB,CAUvBU,SAVuB,CAWvBC,CAXuB,CAarBX,CAbqB,CAWvBW,UAXuB,CAYpBC,CAZoB,0BAarBZ,CAbqB,cA2BrBH,WAAW,CAACK,CAAD,CA3BU,CAgBvBW,CAhBuB,GAgBvBA,SAhBuB,CAiBvBC,CAjBuB,GAiBvBA,QAjBuB,CAkBvBC,CAlBuB,GAkBvBA,gBAlBuB,CAmBvBC,CAnBuB,GAmBvBA,WAnBuB,CAoBvBC,CApBuB,GAoBvBA,SApBuB,CAqBvBC,CArBuB,GAqBvBA,UArBuB,CAsBvBC,CAtBuB,GAsBvBA,OAtBuB,CAuBvBC,CAvBuB,GAuBvBA,YAvBuB,CAwBvBC,CAxBuB,GAwBvBA,WAxBuB,CAyBvBC,CAzBuB,GAyBvBA,SAzBuB,CA0BvBC,CA1BuB,GA0BvBA,WA1BuB,CA6BnBC,CAAO,CAAG9B,UAAU,CAAC,CAACO,CAAD,CAAMiB,CAAN,CAAD,CA7BD,CA+BzB,MACE,yCACE,SAAS,CAAEpB,4BAA4B,CAAC,CAAEyB,WAAW,CAAXA,CAAF,CAAD,CAAkB,CAACb,CAAD,CAAlB,CADzC,CAEE,GAAG,CAAEc,CAFP,EAGMZ,CAHN,EAIE,KAAK,oBAAK,+BAAL,CAAiDU,CAAjD,CAJP,GAMGX,CAAU,CAACE,CAAD,CAAY,OAAZ,OAAkCO,CAAlC,CANb,CAOE,oBAAC,eAAD,EACE,IAAI,CAAEX,CADR,CAEE,WAAW,CAAEN,CAFf,CAGE,WAAW,CAAEE,CAHf,CAIE,YAAY,CAAED,CAJhB,CAKE,cAAc,CAAEE,CALlB,CAME,WAAW,CAAEE,CANf,CAOE,cAAc,CAAED,CAPlB,CAQE,KAAK,CAAES,CART,CASE,GAAG,CAAEG,CATP,CAUE,SAAS,CAAErB,4BAA4B,CAAC,MAAD,CAAS,CAC9C2B,OAAO,CAAwB,CAAtB,EAAAT,CAAW,CAACU,MADyB,CAAT,CAVzC,EAPF,CAqBGX,CAAgB,CAACY,GAAjB,CAAqB,SAACC,CAAD,CAAOC,CAAP,QACpBlB,EAAU,CACRiB,CADQ,CAERC,CAFQ,OAKRZ,CAAS,CAACY,CAAD,CALD,CAMR,CAAC,CAACb,CAAW,CAACa,CAAD,CANL,CADU,CAArB,CArBH,CA+BGlB,CAAU,CAACG,CAAD,CAAW,MAAX,OAAgCO,CAAhC,CA/Bb,CAkCH,CAlES,CADL"}
1
+ {"version":3,"file":"BreadcrumbsFitModeDropdown.js","names":["React","forwardRef","useForkRef","cn","BreadcrumbsMore","useElements","cnBreadcrumbsFitModeDropdown","BreadcrumbsFitModeDropdown","props","ref","items","getItemHref","getItemLabel","getItemIcon","getItemOnClick","getItemSubMenu","onItemClick","size","className","renderItem","otherProps","firstItem","lastItem","readyToHideItems","hiddenItems","itemsRefs","wrapperRef","moreRef","firstItemRef","lastItemRef","lastWidth","compression","rootRef","removed","length","map","item","index"],"sources":["../../../../../../src/components/Breadcrumbs/BreadcrumbsFitModeDropdown/BreadcrumbsFitModeDropdown.tsx"],"sourcesContent":["import './BreadcrumbsFitModeDropdown.css';\n\nimport React, { forwardRef } from 'react';\n\nimport { useForkRef } from '../../../hooks/useForkRef/useForkRef';\nimport { cn } from '../../../utils/bem';\nimport { BreadcrumbsMore } from '../BreadcrumbsMore/BreadcrumbsMore';\nimport { BreadcrumbsFitModeDropdownComponent } from '../types';\nimport { useElements } from '../useElements';\n\nexport const cnBreadcrumbsFitModeDropdown = cn('BreadcrumbsFitModeDropdown');\n\nexport const BreadcrumbsFitModeDropdown: BreadcrumbsFitModeDropdownComponent =\n forwardRef((props, ref) => {\n const {\n items,\n getItemHref,\n getItemLabel,\n getItemIcon,\n getItemOnClick,\n getItemSubMenu,\n onItemClick,\n size,\n className,\n renderItem,\n ...otherProps\n } = props;\n\n const {\n firstItem,\n lastItem,\n readyToHideItems,\n hiddenItems,\n itemsRefs,\n wrapperRef,\n moreRef,\n firstItemRef,\n lastItemRef,\n lastWidth,\n compression,\n } = useElements(items);\n\n const rootRef = useForkRef([ref, wrapperRef]);\n\n return (\n <ul\n className={cnBreadcrumbsFitModeDropdown({ compression }, [className])}\n ref={rootRef}\n {...otherProps}\n style={{ ['--breadcrumbs-item-last-width' as string]: lastWidth }}\n >\n {renderItem(firstItem, 'first', true, false, firstItemRef)}\n <BreadcrumbsMore\n size={size}\n key={cnBreadcrumbsFitModeDropdown('More')}\n getItemHref={getItemHref}\n getItemIcon={getItemIcon}\n getItemLabel={getItemLabel}\n getItemOnClick={getItemOnClick}\n onItemClick={onItemClick}\n getItemSubMenu={getItemSubMenu}\n items={hiddenItems}\n ref={moreRef}\n className={cnBreadcrumbsFitModeDropdown('Item', {\n removed: hiddenItems.length <= 0,\n })}\n />\n {readyToHideItems.map((item, index) =>\n renderItem(\n item,\n index,\n false,\n false,\n itemsRefs[index],\n !!hiddenItems[index],\n ),\n )}\n {renderItem(lastItem, 'last', false, true, lastItemRef)}\n </ul>\n );\n });\n"],"mappings":"2SAAA,yCAEA,MAAOA,MAAP,EAAgBC,UAAhB,KAAkC,OAAlC,CAEA,OAASC,UAAT,4CACA,OAASC,EAAT,0BACA,OAASC,eAAT,0CAEA,OAASC,WAAT,sBAEA,MAAO,IAAMC,6BAA4B,CAAGH,EAAE,CAAC,4BAAD,CAAvC,CAEP,MAAO,IAAMI,2BAA+D,CAC1EN,UAAU,CAAC,SAACO,CAAD,CAAQC,CAAR,CAAgB,IAEvBC,EAFuB,CAarBF,CAbqB,CAEvBE,KAFuB,CAGvBC,CAHuB,CAarBH,CAbqB,CAGvBG,WAHuB,CAIvBC,CAJuB,CAarBJ,CAbqB,CAIvBI,YAJuB,CAKvBC,CALuB,CAarBL,CAbqB,CAKvBK,WALuB,CAMvBC,CANuB,CAarBN,CAbqB,CAMvBM,cANuB,CAOvBC,CAPuB,CAarBP,CAbqB,CAOvBO,cAPuB,CAQvBC,CARuB,CAarBR,CAbqB,CAQvBQ,WARuB,CASvBC,CATuB,CAarBT,CAbqB,CASvBS,IATuB,CAUvBC,CAVuB,CAarBV,CAbqB,CAUvBU,SAVuB,CAWvBC,CAXuB,CAarBX,CAbqB,CAWvBW,UAXuB,CAYpBC,CAZoB,0BAarBZ,CAbqB,cA2BrBH,WAAW,CAACK,CAAD,CA3BU,CAgBvBW,CAhBuB,GAgBvBA,SAhBuB,CAiBvBC,CAjBuB,GAiBvBA,QAjBuB,CAkBvBC,CAlBuB,GAkBvBA,gBAlBuB,CAmBvBC,CAnBuB,GAmBvBA,WAnBuB,CAoBvBC,CApBuB,GAoBvBA,SApBuB,CAqBvBC,CArBuB,GAqBvBA,UArBuB,CAsBvBC,CAtBuB,GAsBvBA,OAtBuB,CAuBvBC,CAvBuB,GAuBvBA,YAvBuB,CAwBvBC,CAxBuB,GAwBvBA,WAxBuB,CAyBvBC,CAzBuB,GAyBvBA,SAzBuB,CA0BvBC,CA1BuB,GA0BvBA,WA1BuB,CA6BnBC,CAAO,CAAG9B,UAAU,CAAC,CAACO,CAAD,CAAMiB,CAAN,CAAD,CA7BD,CA+BzB,MACE,yCACE,SAAS,CAAEpB,4BAA4B,CAAC,CAAEyB,WAAW,CAAXA,CAAF,CAAD,CAAkB,CAACb,CAAD,CAAlB,CADzC,CAEE,GAAG,CAAEc,CAFP,EAGMZ,CAHN,EAIE,KAAK,oBAAK,+BAAL,CAAiDU,CAAjD,CAJP,GAMGX,CAAU,CAACE,CAAD,CAAY,OAAZ,OAAkCO,CAAlC,CANb,CAOE,oBAAC,eAAD,EACE,IAAI,CAAEX,CADR,CAEE,GAAG,CAAEX,4BAA4B,CAAC,MAAD,CAFnC,CAGE,WAAW,CAAEK,CAHf,CAIE,WAAW,CAAEE,CAJf,CAKE,YAAY,CAAED,CALhB,CAME,cAAc,CAAEE,CANlB,CAOE,WAAW,CAAEE,CAPf,CAQE,cAAc,CAAED,CARlB,CASE,KAAK,CAAES,CATT,CAUE,GAAG,CAAEG,CAVP,CAWE,SAAS,CAAErB,4BAA4B,CAAC,MAAD,CAAS,CAC9C2B,OAAO,CAAwB,CAAtB,EAAAT,CAAW,CAACU,MADyB,CAAT,CAXzC,EAPF,CAsBGX,CAAgB,CAACY,GAAjB,CAAqB,SAACC,CAAD,CAAOC,CAAP,QACpBlB,EAAU,CACRiB,CADQ,CAERC,CAFQ,OAKRZ,CAAS,CAACY,CAAD,CALD,CAMR,CAAC,CAACb,CAAW,CAACa,CAAD,CANL,CADU,CAArB,CAtBH,CAgCGlB,CAAU,CAACG,CAAD,CAAW,MAAX,OAAgCO,CAAhC,CAhCb,CAmCH,CAnES,CADL"}
@@ -1,2 +1,2 @@
1
- import _defineProperty from"@babel/runtime/helpers/defineProperty";import _slicedToArray from"@babel/runtime/helpers/slicedToArray";import _objectWithoutProperties from"@babel/runtime/helpers/objectWithoutProperties";var _excluded=["size","items","className","style","getItemHref","getItemIcon","getItemLabel","getItemOnClick","getItemSubMenu","onItemClick"];function ownKeys(a,b){var c=Object.keys(a);if(Object.getOwnPropertySymbols){var d=Object.getOwnPropertySymbols(a);b&&(d=d.filter(function(b){return Object.getOwnPropertyDescriptor(a,b).enumerable})),c.push.apply(c,d)}return c}function _objectSpread(a){for(var b,c=1;c<arguments.length;c++)b=null==arguments[c]?{}:arguments[c],c%2?ownKeys(Object(b),!0).forEach(function(c){_defineProperty(a,c,b[c])}):Object.getOwnPropertyDescriptors?Object.defineProperties(a,Object.getOwnPropertyDescriptors(b)):ownKeys(Object(b)).forEach(function(c){Object.defineProperty(a,c,Object.getOwnPropertyDescriptor(b,c))});return a}import"./BreadcrumbsMore.css";import React,{forwardRef,useEffect,useRef}from"react";import{useFlag}from"../../../hooks/useFlag/useFlag";import{cn}from"../../../utils/bem";import{getByMap}from"../../../utils/getByMap";import{Button}from"../../Button/Button";import{ContextMenu}from"../../ContextMenu/ContextMenu";import{BreadcrumbsItem}from"../BreadcrumbsItem/BreadcrumbsItem";import{iconSizeMap}from"../helpers";var cnBreadcrumbsMore=cn("BreadcrumbsMore");export function getLeftSideBar(a,b){return function(c){var d=null===b||void 0===b?void 0:b(c);return d?React.createElement(d,{size:a}):void 0}}export function getItemAs(a){return function(b){var c=null===a||void 0===a?void 0:a(b);return c?"a":"span"}}export function getItemAttributes(a){return function(b){return a&&{href:a(b)}}}export var contextMenuSizeMap={xs:"s",s:"s",m:"m",l:"l"};function BreadcrumbsMoreRender(a,b){var c=a.size,d=a.items,e=a.className,f=a.style,g=a.getItemHref,h=a.getItemIcon,i=a.getItemLabel,j=a.getItemOnClick,k=a.getItemSubMenu,l=a.onItemClick,m=_objectWithoutProperties(a,_excluded),n=useFlag(),o=_slicedToArray(n,2),p=o[0],q=o[1],r=useRef(null),s=getByMap(iconSizeMap,c);if(useEffect(q.off,[d]),!d.length)return null;return React.createElement(BreadcrumbsItem,Object.assign({},m,{className:cnBreadcrumbsMore(null,[e]),delimiter:!0,size:c,ref:b,style:_objectSpread(_objectSpread({},f),{},_defineProperty({},"--breadcrumbs-more-font-size","var(--size-text-".concat(c,")")))}),React.createElement(Button,{className:cnBreadcrumbsMore("Button"),view:"clear",label:"...",size:s,ref:r,onClick:q.toogle}),React.createElement(ContextMenu,{items:d,isOpen:p,getItemLabel:i,getItemSubMenu:k,getItemOnClick:function getItemOnClick(a){return function(b){var c,d=b.e;return null===j||void 0===j||null===(c=j(a))||void 0===c?void 0:c(d)}},onItemClick:function onItemClick(a){var b,c=a.e,d=a.item;null===l||void 0===l?void 0:l({e:c,item:d}),null===j||void 0===j||null===(b=j(d))||void 0===b?void 0:b(c)},getItemLeftIcon:h,anchorRef:r,onClickOutside:q.off,getItemAs:getItemAs(g),getItemAttributes:getItemAttributes(g),direction:"downCenter",possibleDirections:["downCenter","upCenter","downStartLeft","upStartLeft","downStartRight","upStartRight"],offset:"xs",size:contextMenuSizeMap[c]}))}export var BreadcrumbsMore=forwardRef(BreadcrumbsMoreRender);
1
+ import _defineProperty from"@babel/runtime/helpers/defineProperty";import _slicedToArray from"@babel/runtime/helpers/slicedToArray";import _objectWithoutProperties from"@babel/runtime/helpers/objectWithoutProperties";var _excluded=["size","items","className","style","getItemHref","getItemIcon","getItemLabel","getItemOnClick","getItemSubMenu","onItemClick"];function ownKeys(a,b){var c=Object.keys(a);if(Object.getOwnPropertySymbols){var d=Object.getOwnPropertySymbols(a);b&&(d=d.filter(function(b){return Object.getOwnPropertyDescriptor(a,b).enumerable})),c.push.apply(c,d)}return c}function _objectSpread(a){for(var b,c=1;c<arguments.length;c++)b=null==arguments[c]?{}:arguments[c],c%2?ownKeys(Object(b),!0).forEach(function(c){_defineProperty(a,c,b[c])}):Object.getOwnPropertyDescriptors?Object.defineProperties(a,Object.getOwnPropertyDescriptors(b)):ownKeys(Object(b)).forEach(function(c){Object.defineProperty(a,c,Object.getOwnPropertyDescriptor(b,c))});return a}import"./BreadcrumbsMore.css";import React,{forwardRef,useEffect,useRef}from"react";import{useFlag}from"../../../hooks/useFlag/useFlag";import{cn}from"../../../utils/bem";import{getByMap}from"../../../utils/getByMap";import{Button}from"../../Button/Button";import{ContextMenu}from"../../ContextMenu/ContextMenu";import{BreadcrumbsItem}from"../BreadcrumbsItem/BreadcrumbsItem";import{iconSizeMap}from"../helpers";var cnBreadcrumbsMore=cn("BreadcrumbsMore");export function getLeftSideBar(a,b){return function(c){var d=null===b||void 0===b?void 0:b(c);return d?React.createElement(d,{size:a}):void 0}}export function getItemAs(a){return function(b){var c=null===a||void 0===a?void 0:a(b);return c?"a":"span"}}export function getItemAttributes(a){return function(b){return a&&{href:a(b)}}}export var contextMenuSizeMap={xs:"s",s:"s",m:"m",l:"l"};function BreadcrumbsMoreRender(a,b){var c=a.size,d=a.items,e=a.className,f=a.style,g=a.getItemHref,h=a.getItemIcon,i=a.getItemLabel,j=a.getItemOnClick,k=a.getItemSubMenu,l=a.onItemClick,m=_objectWithoutProperties(a,_excluded),n=useFlag(),o=_slicedToArray(n,2),p=o[0],q=o[1],r=useRef(null),s=getByMap(iconSizeMap,c);useEffect(q.off,[d]);return React.createElement(BreadcrumbsItem,Object.assign({},m,{className:cnBreadcrumbsMore(null,[e]),delimiter:!0,size:c,ref:b,style:_objectSpread(_objectSpread({},f),{},_defineProperty({},"--breadcrumbs-more-font-size","var(--size-text-".concat(c,")")))}),React.createElement(Button,{className:cnBreadcrumbsMore("Button"),view:"clear",label:"...",size:s,ref:r,onClick:q.toogle}),React.createElement(ContextMenu,{items:d,isOpen:p,getItemLabel:i,getItemSubMenu:k,getItemOnClick:function getItemOnClick(a){return function(b){var c,d=b.e;return null===j||void 0===j||null===(c=j(a))||void 0===c?void 0:c(d)}},onItemClick:function onItemClick(a){var b,c=a.e,d=a.item;null===l||void 0===l?void 0:l({e:c,item:d}),null===j||void 0===j||null===(b=j(d))||void 0===b?void 0:b(c)},getItemLeftIcon:h,anchorRef:r,onClickOutside:q.off,getItemAs:getItemAs(g),getItemAttributes:getItemAttributes(g),direction:"downCenter",possibleDirections:["downCenter","upCenter","downStartLeft","upStartLeft","downStartRight","upStartRight"],offset:"xs",size:contextMenuSizeMap[c]}))}export var BreadcrumbsMore=forwardRef(BreadcrumbsMoreRender);
2
2
  //# sourceMappingURL=BreadcrumbsMore.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"BreadcrumbsMore.js","names":["React","forwardRef","useEffect","useRef","useFlag","cn","getByMap","Button","ContextMenu","BreadcrumbsItem","iconSizeMap","cnBreadcrumbsMore","getLeftSideBar","iconSize","getItemIcon","item","Icon","getItemAs","getItemHref","href","getItemAttributes","contextMenuSizeMap","xs","s","m","l","BreadcrumbsMoreRender","props","ref","size","items","className","style","getItemLabel","getItemOnClickProp","getItemOnClick","getItemSubMenu","onItemClickProp","onItemClick","otherProps","open","setOpen","buttonRef","off","length","toogle","element","e","BreadcrumbsMore"],"sources":["../../../../../../src/components/Breadcrumbs/BreadcrumbsMore/BreadcrumbsMore.tsx"],"sourcesContent":["import './BreadcrumbsMore.css';\n\nimport React, { forwardRef, useEffect, useRef } from 'react';\n\nimport { useFlag } from '../../../hooks/useFlag/useFlag';\nimport { cn } from '../../../utils/bem';\nimport { getByMap } from '../../../utils/getByMap';\nimport { Button } from '../../Button/Button';\nimport { ContextMenu } from '../../ContextMenu/ContextMenu';\nimport { BreadcrumbsItem } from '../BreadcrumbsItem/BreadcrumbsItem';\nimport { iconSizeMap } from '../helpers';\nimport {\n BreadcrumbsMoreComponent,\n BreadcrumbsMoreProps,\n BreadcrumbsPropGetItemHref,\n BreadcrumbsPropGetItemIcon,\n} from '../types';\n\nconst cnBreadcrumbsMore = cn('BreadcrumbsMore');\n\nexport function getLeftSideBar<ITEM>(\n iconSize: 'xs' | 'm',\n getItemIcon?: BreadcrumbsPropGetItemIcon<ITEM>,\n) {\n return function (item: ITEM) {\n const Icon = getItemIcon?.(item);\n if (Icon) {\n return <Icon size={iconSize} />;\n }\n return undefined;\n };\n}\n\nexport function getItemAs<ITEM>(\n getItemHref?: BreadcrumbsPropGetItemHref<ITEM>,\n) {\n return (item: ITEM) => {\n const href = getItemHref?.(item);\n return href ? 'a' : 'span';\n };\n}\n\nexport function getItemAttributes<ITEM>(\n getItemHref?: BreadcrumbsPropGetItemHref<ITEM>,\n) {\n return (item: ITEM) => {\n return getItemHref && { href: getItemHref(item) };\n };\n}\n\nexport const contextMenuSizeMap = {\n xs: 's',\n s: 's',\n m: 'm',\n l: 'l',\n} as const;\n\nfunction BreadcrumbsMoreRender<ITEM>(\n props: BreadcrumbsMoreProps<ITEM>,\n ref: React.Ref<HTMLLIElement>,\n) {\n const {\n size,\n items,\n className,\n style,\n getItemHref,\n getItemIcon,\n getItemLabel,\n getItemOnClick: getItemOnClickProp,\n getItemSubMenu,\n onItemClick: onItemClickProp,\n ...otherProps\n } = props;\n\n const [open, setOpen] = useFlag();\n\n const buttonRef = useRef<HTMLButtonElement>(null);\n\n const iconSize = getByMap(iconSizeMap, size);\n\n useEffect(setOpen.off, [items]);\n\n if (!items.length) {\n return null;\n }\n\n const onItemClick = ({\n e,\n item,\n }: {\n e: React.MouseEvent<HTMLDivElement>;\n item: ITEM;\n }) => {\n onItemClickProp?.({ e, item });\n getItemOnClickProp?.(item)?.(e);\n };\n\n const getItemOnClick =\n (element: ITEM) =>\n ({ e }: { e: React.MouseEvent<HTMLDivElement> }) => {\n return getItemOnClickProp?.(element)?.(e);\n };\n\n return (\n <BreadcrumbsItem\n {...otherProps}\n className={cnBreadcrumbsMore(null, [className])}\n delimiter\n size={size}\n ref={ref}\n style={{\n ...style,\n ['--breadcrumbs-more-font-size' as string]: `var(--size-text-${size})`,\n }}\n >\n <Button\n className={cnBreadcrumbsMore('Button')}\n view=\"clear\"\n label=\"...\"\n size={iconSize}\n ref={buttonRef}\n onClick={setOpen.toogle}\n />\n <ContextMenu\n items={items}\n isOpen={open}\n getItemLabel={getItemLabel}\n getItemSubMenu={getItemSubMenu}\n getItemOnClick={getItemOnClick}\n onItemClick={onItemClick}\n getItemLeftIcon={getItemIcon}\n anchorRef={buttonRef}\n onClickOutside={setOpen.off}\n getItemAs={getItemAs(getItemHref)}\n getItemAttributes={getItemAttributes(getItemHref)}\n direction=\"downCenter\"\n possibleDirections={[\n 'downCenter',\n 'upCenter',\n 'downStartLeft',\n 'upStartLeft',\n 'downStartRight',\n 'upStartRight',\n ]}\n offset=\"xs\"\n size={contextMenuSizeMap[size]}\n />\n </BreadcrumbsItem>\n );\n}\n\nexport const BreadcrumbsMore = forwardRef(\n BreadcrumbsMoreRender,\n) as BreadcrumbsMoreComponent;\n"],"mappings":"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"}
1
+ {"version":3,"file":"BreadcrumbsMore.js","names":["React","forwardRef","useEffect","useRef","useFlag","cn","getByMap","Button","ContextMenu","BreadcrumbsItem","iconSizeMap","cnBreadcrumbsMore","getLeftSideBar","iconSize","getItemIcon","item","Icon","getItemAs","getItemHref","href","getItemAttributes","contextMenuSizeMap","xs","s","m","l","BreadcrumbsMoreRender","props","ref","size","items","className","style","getItemLabel","getItemOnClickProp","getItemOnClick","getItemSubMenu","onItemClickProp","onItemClick","otherProps","open","setOpen","buttonRef","off","toogle","element","e","BreadcrumbsMore"],"sources":["../../../../../../src/components/Breadcrumbs/BreadcrumbsMore/BreadcrumbsMore.tsx"],"sourcesContent":["import './BreadcrumbsMore.css';\n\nimport React, { forwardRef, useEffect, useRef } from 'react';\n\nimport { useFlag } from '../../../hooks/useFlag/useFlag';\nimport { cn } from '../../../utils/bem';\nimport { getByMap } from '../../../utils/getByMap';\nimport { Button } from '../../Button/Button';\nimport { ContextMenu } from '../../ContextMenu/ContextMenu';\nimport { BreadcrumbsItem } from '../BreadcrumbsItem/BreadcrumbsItem';\nimport { iconSizeMap } from '../helpers';\nimport {\n BreadcrumbsMoreComponent,\n BreadcrumbsMoreProps,\n BreadcrumbsPropGetItemHref,\n BreadcrumbsPropGetItemIcon,\n} from '../types';\n\nconst cnBreadcrumbsMore = cn('BreadcrumbsMore');\n\nexport function getLeftSideBar<ITEM>(\n iconSize: 'xs' | 'm',\n getItemIcon?: BreadcrumbsPropGetItemIcon<ITEM>,\n) {\n return function (item: ITEM) {\n const Icon = getItemIcon?.(item);\n if (Icon) {\n return <Icon size={iconSize} />;\n }\n return undefined;\n };\n}\n\nexport function getItemAs<ITEM>(\n getItemHref?: BreadcrumbsPropGetItemHref<ITEM>,\n) {\n return (item: ITEM) => {\n const href = getItemHref?.(item);\n return href ? 'a' : 'span';\n };\n}\n\nexport function getItemAttributes<ITEM>(\n getItemHref?: BreadcrumbsPropGetItemHref<ITEM>,\n) {\n return (item: ITEM) => {\n return getItemHref && { href: getItemHref(item) };\n };\n}\n\nexport const contextMenuSizeMap = {\n xs: 's',\n s: 's',\n m: 'm',\n l: 'l',\n} as const;\n\nfunction BreadcrumbsMoreRender<ITEM>(\n props: BreadcrumbsMoreProps<ITEM>,\n ref: React.Ref<HTMLLIElement>,\n) {\n const {\n size,\n items,\n className,\n style,\n getItemHref,\n getItemIcon,\n getItemLabel,\n getItemOnClick: getItemOnClickProp,\n getItemSubMenu,\n onItemClick: onItemClickProp,\n ...otherProps\n } = props;\n\n const [open, setOpen] = useFlag();\n\n const buttonRef = useRef<HTMLButtonElement>(null);\n\n const iconSize = getByMap(iconSizeMap, size);\n\n useEffect(setOpen.off, [items]);\n\n const onItemClick = ({\n e,\n item,\n }: {\n e: React.MouseEvent<HTMLDivElement>;\n item: ITEM;\n }) => {\n onItemClickProp?.({ e, item });\n getItemOnClickProp?.(item)?.(e);\n };\n\n const getItemOnClick =\n (element: ITEM) =>\n ({ e }: { e: React.MouseEvent<HTMLDivElement> }) => {\n return getItemOnClickProp?.(element)?.(e);\n };\n\n return (\n <BreadcrumbsItem\n {...otherProps}\n className={cnBreadcrumbsMore(null, [className])}\n delimiter\n size={size}\n ref={ref}\n style={{\n ...style,\n ['--breadcrumbs-more-font-size' as string]: `var(--size-text-${size})`,\n }}\n >\n <Button\n className={cnBreadcrumbsMore('Button')}\n view=\"clear\"\n label=\"...\"\n size={iconSize}\n ref={buttonRef}\n onClick={setOpen.toogle}\n />\n <ContextMenu\n items={items}\n isOpen={open}\n getItemLabel={getItemLabel}\n getItemSubMenu={getItemSubMenu}\n getItemOnClick={getItemOnClick}\n onItemClick={onItemClick}\n getItemLeftIcon={getItemIcon}\n anchorRef={buttonRef}\n onClickOutside={setOpen.off}\n getItemAs={getItemAs(getItemHref)}\n getItemAttributes={getItemAttributes(getItemHref)}\n direction=\"downCenter\"\n possibleDirections={[\n 'downCenter',\n 'upCenter',\n 'downStartLeft',\n 'upStartLeft',\n 'downStartRight',\n 'upStartRight',\n ]}\n offset=\"xs\"\n size={contextMenuSizeMap[size]}\n />\n </BreadcrumbsItem>\n );\n}\n\nexport const BreadcrumbsMore = forwardRef(\n BreadcrumbsMoreRender,\n) as BreadcrumbsMoreComponent;\n"],"mappings":"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"}
@@ -1,2 +1,2 @@
1
- import _defineProperty from"@babel/runtime/helpers/defineProperty";import _objectWithoutProperties from"@babel/runtime/helpers/objectWithoutProperties";import _slicedToArray from"@babel/runtime/helpers/slicedToArray";import _toConsumableArray from"@babel/runtime/helpers/toConsumableArray";var _excluded=["itemsDimensions","wrapperWidth"];function ownKeys(a,b){var c=Object.keys(a);if(Object.getOwnPropertySymbols){var d=Object.getOwnPropertySymbols(a);b&&(d=d.filter(function(b){return Object.getOwnPropertyDescriptor(a,b).enumerable})),c.push.apply(c,d)}return c}function _objectSpread(a){for(var b,c=1;c<arguments.length;c++)b=null==arguments[c]?{}:arguments[c],c%2?ownKeys(Object(b),!0).forEach(function(c){_defineProperty(a,c,b[c])}):Object.getOwnPropertyDescriptors?Object.defineProperties(a,Object.getOwnPropertyDescriptors(b)):ownKeys(Object(b)).forEach(function(c){Object.defineProperty(a,c,Object.getOwnPropertyDescriptor(b,c))});return a}import{useMemo}from"react";import{useHideElementsInLine}from"../../hooks/useHideElementsInLine/useHideElementsInLine";import{useRefs}from"../../hooks/useRefs/useRefs";import{useResizeObserved}from"../../hooks/useResizeObserved/useResizeObserved";var useReadyToHideItems=function(a){return useMemo(function(){var b=_toConsumableArray(a),c=b.shift(),d=b.pop();return[c,b,d]},[a])},getLastWidth=function(a,b,c,d){var e=b+c.reduce(function(a,b,c){return a+(d[c]?0:b)},0);return"".concat(a-e,"px")},getCompression=function(a){return 380>=a?"s":900>=a?"m":1200>=a?"l":"xl"};export var useElements=function(a){var b=useReadyToHideItems(a),c=_slicedToArray(b,3),d=c[0],e=c[1],f=c[2],g=useRefs(2),h=useResizeObserved(g,function(a){return a?parseInt(getComputedStyle(a).marginRight,10)+parseInt(getComputedStyle(a).marginLeft,10)+a.offsetWidth:0}),i=h.reduce(function(a,b){return a+b},0),j=useHideElementsInLine(e,i,!0),k=j.itemsDimensions,l=j.wrapperWidth,m=_objectWithoutProperties(j,_excluded),n=i+k.reduce(function(a,b){return a+b},0),o=getLastWidth(l,h[0],k,m.hiddenItems),p=getCompression(l);return _objectSpread({firstItem:d,lastItem:f,readyToHideItems:e,firstItemRef:g[0],lastItemRef:g[1],lastWidth:o,compression:p,elementsSizeSum:n},m)};
1
+ import _defineProperty from"@babel/runtime/helpers/defineProperty";import _objectWithoutProperties from"@babel/runtime/helpers/objectWithoutProperties";import _slicedToArray from"@babel/runtime/helpers/slicedToArray";import _toConsumableArray from"@babel/runtime/helpers/toConsumableArray";var _excluded=["itemsDimensions","wrapperWidth"];function ownKeys(a,b){var c=Object.keys(a);if(Object.getOwnPropertySymbols){var d=Object.getOwnPropertySymbols(a);b&&(d=d.filter(function(b){return Object.getOwnPropertyDescriptor(a,b).enumerable})),c.push.apply(c,d)}return c}function _objectSpread(a){for(var b,c=1;c<arguments.length;c++)b=null==arguments[c]?{}:arguments[c],c%2?ownKeys(Object(b),!0).forEach(function(c){_defineProperty(a,c,b[c])}):Object.getOwnPropertyDescriptors?Object.defineProperties(a,Object.getOwnPropertyDescriptors(b)):ownKeys(Object(b)).forEach(function(c){Object.defineProperty(a,c,Object.getOwnPropertyDescriptor(b,c))});return a}import{useMemo}from"react";import{useHideElementsInLine}from"../../hooks/useHideElementsInLine/useHideElementsInLine";import{useRefs}from"../../hooks/useRefs/useRefs";import{useResizeObserved}from"../../hooks/useResizeObserved/useResizeObserved";var useReadyToHideItems=function(a){return useMemo(function(){console.log(a);var b=_toConsumableArray(a),c=b.shift(),d=b.pop();return[c,b,d]},[a])},getLastWidth=function(a,b,c,d){var e=b+c.reduce(function(a,b,c){return a+(d[c]?0:b)},0);return"".concat(a-e,"px")},getCompression=function(a){return 380>=a?"s":900>=a?"m":1200>=a?"l":"xl"};export var useElements=function(a){var b=useReadyToHideItems(a),c=_slicedToArray(b,3),d=c[0],e=c[1],f=c[2];console.log(e);var g=useRefs(2),h=useResizeObserved(g,function(a){return a?parseInt(getComputedStyle(a).marginRight,10)+parseInt(getComputedStyle(a).marginLeft,10)+a.offsetWidth:0}),i=h.reduce(function(a,b){return a+b},0),j=useHideElementsInLine(e,i,!0),k=j.itemsDimensions,l=j.wrapperWidth,m=_objectWithoutProperties(j,_excluded),n=i+k.reduce(function(a,b){return a+b},0),o=getLastWidth(l,h[0],k,m.hiddenItems),p=getCompression(l);return _objectSpread({firstItem:d,lastItem:f,readyToHideItems:e,firstItemRef:g[0],lastItemRef:g[1],lastWidth:o,compression:p,elementsSizeSum:n},m)};
2
2
  //# sourceMappingURL=useElements.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"useElements.js","names":["useMemo","useHideElementsInLine","useRefs","useResizeObserved","useReadyToHideItems","items","returnedItems","first","shift","last","pop","getLastWidth","wrapperWidth","fistWidth","itemsDimensions","hiddenItems","widthExceptLast","reduce","previous","current","currentIndex","getCompression","componentWidth","useElements","firstItem","readyToHideItems","lastItem","noHideElementsRef","noHideElementsSize","el","parseInt","getComputedStyle","marginRight","marginLeft","offsetWidth","noHideElementsSizeSum","hideElementsInLineResult","elementsSizeSum","lastWidth","compression","firstItemRef","lastItemRef"],"sources":["../../../../../src/components/Breadcrumbs/useElements.ts"],"sourcesContent":["import React, { useMemo } from 'react';\n\nimport { useHideElementsInLine } from '../../hooks/useHideElementsInLine/useHideElementsInLine';\nimport { useRefs } from '../../hooks/useRefs/useRefs';\nimport { useResizeObserved } from '../../hooks/useResizeObserved/useResizeObserved';\n\nconst useReadyToHideItems = <ITEM>(items: ITEM[]) =>\n useMemo(() => {\n const returnedItems = [...items];\n const first = returnedItems.shift();\n const last = returnedItems.pop();\n return [first, returnedItems, last] as const;\n }, [items]);\n\nconst getLastWidth = (\n wrapperWidth: number,\n fistWidth: number,\n itemsDimensions: number[],\n hiddenItems: unknown[],\n) => {\n const widthExceptLast =\n fistWidth +\n itemsDimensions.reduce(\n (previous, current, currentIndex) =>\n previous + (hiddenItems[currentIndex] ? 0 : current),\n 0,\n );\n\n const lastWidthCalculate = wrapperWidth - widthExceptLast;\n\n return `${lastWidthCalculate}px`;\n};\n\nconst getCompression = (componentWidth: number) => {\n if (componentWidth <= 380) {\n return 's';\n }\n if (componentWidth <= 900) {\n return 'm';\n }\n if (componentWidth <= 1200) {\n return 'l';\n }\n return 'xl';\n};\n\nexport const useElements = <ITEM>(items: ITEM[]) => {\n const [firstItem, readyToHideItems, lastItem] = useReadyToHideItems(items);\n\n const noHideElementsRef = useRefs(2) as [\n React.RefObject<HTMLLIElement>,\n React.RefObject<HTMLLIElement>,\n ];\n\n const noHideElementsSize = useResizeObserved(noHideElementsRef, (el) =>\n el\n ? parseInt(getComputedStyle(el).marginRight, 10) +\n parseInt(getComputedStyle(el).marginLeft, 10) +\n el.offsetWidth\n : 0,\n );\n\n const noHideElementsSizeSum = noHideElementsSize.reduce(\n (previous, current) => previous + current,\n 0,\n );\n\n const { itemsDimensions, wrapperWidth, ...hideElementsInLineResult } =\n useHideElementsInLine<ITEM, HTMLLIElement, HTMLUListElement>(\n readyToHideItems,\n noHideElementsSizeSum,\n true,\n );\n\n const elementsSizeSum =\n noHideElementsSizeSum +\n itemsDimensions.reduce((previous, current) => previous + current, 0);\n\n const lastWidth = getLastWidth(\n wrapperWidth,\n noHideElementsSize[0],\n itemsDimensions,\n hideElementsInLineResult.hiddenItems,\n );\n\n const compression = getCompression(wrapperWidth);\n\n return {\n firstItem,\n lastItem,\n readyToHideItems,\n firstItemRef: noHideElementsRef[0],\n lastItemRef: noHideElementsRef[1],\n lastWidth,\n compression,\n elementsSizeSum,\n ...hideElementsInLineResult,\n };\n};\n"],"mappings":"q7BAAA,OAAgBA,OAAhB,KAA+B,OAA/B,CAEA,OAASC,qBAAT,+DACA,OAASC,OAAT,mCACA,OAASC,iBAAT,uD,GAEMC,oBAAmB,CAAG,SAAOC,CAAP,QAC1BL,QAAO,CAAC,UAAM,IACNM,EAAa,oBAAOD,CAAP,CADP,CAENE,CAAK,CAAGD,CAAa,CAACE,KAAd,EAFF,CAGNC,CAAI,CAAGH,CAAa,CAACI,GAAd,EAHD,CAIZ,MAAO,CAACH,CAAD,CAAQD,CAAR,CAAuBG,CAAvB,CACR,CALM,CAKJ,CAACJ,CAAD,CALI,CADmB,C,CAQtBM,YAAY,CAAG,SACnBC,CADmB,CAEnBC,CAFmB,CAGnBC,CAHmB,CAInBC,CAJmB,CAKhB,IACGC,EAAe,CACnBH,CAAS,CACTC,CAAe,CAACG,MAAhB,CACE,SAACC,CAAD,CAAWC,CAAX,CAAoBC,CAApB,QACEF,EAAQ,EAAIH,CAAW,CAACK,CAAD,CAAX,CAA4B,CAA5B,CAAgCD,CAApC,CADV,CADF,CAGE,CAHF,CAHC,CAWH,gBAF2BP,CAAY,CAAGI,CAE1C,MACD,C,CAEKK,cAAc,CAAG,SAACC,CAAD,CAA4B,OAC3B,IAAlB,EAAAA,CAD6C,CAExC,GAFwC,CAI3B,GAAlB,EAAAA,CAJ6C,CAKxC,GALwC,CAO3B,IAAlB,EAAAA,CAP6C,CAQxC,GARwC,CAU1C,IACR,C,CAED,MAAO,IAAMC,YAAW,CAAG,SAAOlB,CAAP,CAAyB,OACFD,mBAAmB,CAACC,CAAD,CADjB,uBAC3CmB,CAD2C,MAChCC,CADgC,MACdC,CADc,MAG5CC,CAAiB,CAAGzB,OAAO,CAAC,CAAD,CAHiB,CAQ5C0B,CAAkB,CAAGzB,iBAAiB,CAACwB,CAAD,CAAoB,SAACE,CAAD,QAC9DA,EAAE,CACEC,QAAQ,CAACC,gBAAgB,CAACF,CAAD,CAAhB,CAAqBG,WAAtB,CAAmC,EAAnC,CAAR,CACAF,QAAQ,CAACC,gBAAgB,CAACF,CAAD,CAAhB,CAAqBI,UAAtB,CAAkC,EAAlC,CADR,CAEAJ,CAAE,CAACK,WAHL,CAIE,CAL0D,CAApB,CARM,CAgB5CC,CAAqB,CAAGP,CAAkB,CAACX,MAAnB,CAC5B,SAACC,CAAD,CAAWC,CAAX,QAAuBD,EAAQ,CAAGC,CAAlC,CAD4B,CAE5B,CAF4B,CAhBoB,GAsBhDlB,qBAAqB,CACnBwB,CADmB,CAEnBU,CAFmB,IAtB2B,CAqB1CrB,CArB0C,GAqB1CA,eArB0C,CAqBzBF,CArByB,GAqBzBA,YArByB,CAqBRwB,CArBQ,uCA4B5CC,CAAe,CACnBF,CAAqB,CACrBrB,CAAe,CAACG,MAAhB,CAAuB,SAACC,CAAD,CAAWC,CAAX,QAAuBD,EAAQ,CAAGC,CAAlC,CAAvB,CAAkE,CAAlE,CA9BgD,CAgC5CmB,CAAS,CAAG3B,YAAY,CAC5BC,CAD4B,CAE5BgB,CAAkB,CAAC,CAAD,CAFU,CAG5Bd,CAH4B,CAI5BsB,CAAwB,CAACrB,WAJG,CAhCoB,CAuC5CwB,CAAW,CAAGlB,cAAc,CAACT,CAAD,CAvCgB,CAyClD,sBACEY,SAAS,CAATA,CADF,CAEEE,QAAQ,CAARA,CAFF,CAGED,gBAAgB,CAAhBA,CAHF,CAIEe,YAAY,CAAEb,CAAiB,CAAC,CAAD,CAJjC,CAKEc,WAAW,CAAEd,CAAiB,CAAC,CAAD,CALhC,CAMEW,SAAS,CAATA,CANF,CAOEC,WAAW,CAAXA,CAPF,CAQEF,eAAe,CAAfA,CARF,EASKD,CATL,CAWD,CApDM"}
1
+ {"version":3,"file":"useElements.js","names":["useMemo","useHideElementsInLine","useRefs","useResizeObserved","useReadyToHideItems","items","console","log","returnedItems","first","shift","last","pop","getLastWidth","wrapperWidth","fistWidth","itemsDimensions","hiddenItems","widthExceptLast","reduce","previous","current","currentIndex","getCompression","componentWidth","useElements","firstItem","readyToHideItems","lastItem","noHideElementsRef","noHideElementsSize","el","parseInt","getComputedStyle","marginRight","marginLeft","offsetWidth","noHideElementsSizeSum","hideElementsInLineResult","elementsSizeSum","lastWidth","compression","firstItemRef","lastItemRef"],"sources":["../../../../../src/components/Breadcrumbs/useElements.ts"],"sourcesContent":["import React, { useMemo } from 'react';\n\nimport { useHideElementsInLine } from '../../hooks/useHideElementsInLine/useHideElementsInLine';\nimport { useRefs } from '../../hooks/useRefs/useRefs';\nimport { useResizeObserved } from '../../hooks/useResizeObserved/useResizeObserved';\n\nconst useReadyToHideItems = <ITEM>(items: ITEM[]) =>\n useMemo(() => {\n console.log(items);\n const returnedItems = [...items];\n const first = returnedItems.shift();\n const last = returnedItems.pop();\n return [first, returnedItems, last] as const;\n }, [items]);\n\nconst getLastWidth = (\n wrapperWidth: number,\n fistWidth: number,\n itemsDimensions: number[],\n hiddenItems: unknown[],\n) => {\n const widthExceptLast =\n fistWidth +\n itemsDimensions.reduce(\n (previous, current, currentIndex) =>\n previous + (hiddenItems[currentIndex] ? 0 : current),\n 0,\n );\n\n const lastWidthCalculate = wrapperWidth - widthExceptLast;\n\n return `${lastWidthCalculate}px`;\n};\n\nconst getCompression = (componentWidth: number) => {\n if (componentWidth <= 380) {\n return 's';\n }\n if (componentWidth <= 900) {\n return 'm';\n }\n if (componentWidth <= 1200) {\n return 'l';\n }\n return 'xl';\n};\n\nexport const useElements = <ITEM>(items: ITEM[]) => {\n const [firstItem, readyToHideItems, lastItem] = useReadyToHideItems(items);\n\n console.log(readyToHideItems);\n\n const noHideElementsRef = useRefs(2) as [\n React.RefObject<HTMLLIElement>,\n React.RefObject<HTMLLIElement>,\n ];\n\n const noHideElementsSize = useResizeObserved(noHideElementsRef, (el) =>\n el\n ? parseInt(getComputedStyle(el).marginRight, 10) +\n parseInt(getComputedStyle(el).marginLeft, 10) +\n el.offsetWidth\n : 0,\n );\n\n const noHideElementsSizeSum = noHideElementsSize.reduce(\n (previous, current) => previous + current,\n 0,\n );\n\n const { itemsDimensions, wrapperWidth, ...hideElementsInLineResult } =\n useHideElementsInLine<ITEM, HTMLLIElement, HTMLUListElement>(\n readyToHideItems,\n noHideElementsSizeSum,\n true,\n );\n\n const elementsSizeSum =\n noHideElementsSizeSum +\n itemsDimensions.reduce((previous, current) => previous + current, 0);\n\n const lastWidth = getLastWidth(\n wrapperWidth,\n noHideElementsSize[0],\n itemsDimensions,\n hideElementsInLineResult.hiddenItems,\n );\n\n const compression = getCompression(wrapperWidth);\n\n return {\n firstItem,\n lastItem,\n readyToHideItems,\n firstItemRef: noHideElementsRef[0],\n lastItemRef: noHideElementsRef[1],\n lastWidth,\n compression,\n elementsSizeSum,\n ...hideElementsInLineResult,\n };\n};\n"],"mappings":"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"}
@@ -1 +1 @@
1
- .Collapse{--horizontal-space:0}.Collapse_size_2xs,.Collapse_size_xs{--vertical-space:var(--space-2xs);--elements-offset:var(--space-xs);--body-offset-up:var(--space-2xs);--body-offset-bottom:var(--space-xs)}.Collapse_size_s{--vertical-space:var(--space-xs);--elements-offset:var(--space-xs);--body-offset-up:var(--space-xs);--body-offset-bottom:var(--space-m)}.Collapse_size_l,.Collapse_size_m{--vertical-space:var(--space-s);--elements-offset:var(--space-s);--body-offset-up:var(--space-s);--body-offset-bottom:var(--space-xl)}.Collapse_horizontalSpace_3xs{--horizontal-space:var(--space-3xs)}.Collapse_horizontalSpace_2xs{--horizontal-space:var(--space-2xs)}.Collapse_horizontalSpace_xs{--horizontal-space:var(--space-xs)}.Collapse_horizontalSpace_s{--horizontal-space:var(--space-s)}.Collapse_horizontalSpace_m{--horizontal-space:var(--space-m)}.Collapse_horizontalSpace_l{--horizontal-space:var(--space-l)}.Collapse_horizontalSpace_xl{--horizontal-space:var(--space-xl)}.Collapse_horizontalSpace_2xl{--horizontal-space:var(--space-2xl)}.Collapse_horizontalSpace_3xl{--horizontal-space:var(--space-3xl)}.Collapse_horizontalSpace_4xl{--horizontal-space:var(--space-4xl)}.Collapse_horizontalSpace_5xl{--horizontal-space:var(--space-5xl)}.Collapse_horizontalSpace_6xl{--horizontal-space:var(--space-6xl)}.Collapse_view_secondary{color:var(--color-typo-secondary)}.Collapse-Label{align-items:center;cursor:pointer;display:flex;flex-direction:row;padding:var(--vertical-space) var(--horizontal-space);transition:background .3s}.Collapse-Label_hoverEffect:hover{background:var(--color-control-bg-clear-hover)}.Collapse-Label_iconPosition_right{flex-direction:row-reverse}.Collapse-Body{max-height:0;overflow:hidden;transition:max-height .3s;transition-timing-function:cubic-bezier(.7,0,.5,1)}.Collapse-Body_isOpen{max-height:var(--collapse-body-max-height)}.Collapse-Body_divider{border-bottom:1px solid var(--color-bg-border)}.Collapse-Side{line-height:0;margin-left:var(--elements-offset)}.Collapse-Content{padding:var(--body-offset-up) var(--horizontal-space) var(--body-offset-bottom) var(--horizontal-space)}.Collapse-Icon{flex:none}.Collapse-Icon_position_left{margin-right:var(--elements-offset)}.Collapse-Icon_position_right{margin-left:var(--elements-offset)}.Collapse-LabelText{flex:1}
1
+ .Collapse_size_2xs,.Collapse_size_xs{--vertical-space:var(--space-2xs);--elements-offset:var(--space-xs);--body-offset-up:var(--space-2xs);--body-offset-bottom:var(--space-xs)}.Collapse_size_s{--vertical-space:var(--space-xs);--elements-offset:var(--space-xs);--body-offset-up:var(--space-xs);--body-offset-bottom:var(--space-m)}.Collapse_size_l,.Collapse_size_m{--vertical-space:var(--space-s);--elements-offset:var(--space-s);--body-offset-up:var(--space-s);--body-offset-bottom:var(--space-xl)}.Collapse_view_secondary{color:var(--color-typo-secondary)}.Collapse-Label{align-items:center;cursor:pointer;display:flex;flex-direction:row;padding:var(--vertical-space) var(--horizontal-space);transition:background .3s}.Collapse-Label_hoverEffect:hover{background:var(--color-control-bg-clear-hover)}.Collapse-Label_iconPosition_right{flex-direction:row-reverse}.Collapse-Body{max-height:0;overflow:hidden;transition:max-height .3s;transition-timing-function:cubic-bezier(.7,0,.5,1)}.Collapse-Body_isOpen{max-height:var(--collapse-body-max-height)}.Collapse-Body_divider{border-bottom:1px solid var(--color-bg-border)}.Collapse-Side{line-height:0;margin-left:var(--elements-offset)}.Collapse-Content{padding:var(--body-offset-up) var(--horizontal-space) var(--body-offset-bottom) var(--horizontal-space)}.Collapse-Icon{flex:none}.Collapse-Icon_position_left{margin-right:var(--elements-offset)}.Collapse-Icon_position_right{margin-left:var(--elements-offset)}.Collapse-LabelText{flex:1}
@@ -1,2 +1,2 @@
1
- import _defineProperty from"@babel/runtime/helpers/defineProperty";import _objectWithoutProperties from"@babel/runtime/helpers/objectWithoutProperties";import _toConsumableArray from"@babel/runtime/helpers/toConsumableArray";var _excluded=["label","size","view","className","maxContentHeight","isOpen","children","hoverEffect","divider","icon","closeIcon","rightSide","horizontalSpace","iconPosition","directionIcon","closeDirectionIcon","style"];import"./Collapse.css";import React,{useRef}from"react";import{useComponentSize}from"../../hooks/useComponentSize";import{useForkRef}from"../../hooks/useForkRef/useForkRef";import{IconArrowDown}from"../../icons/IconArrowDown/IconArrowDown";import{cn}from"../../utils/bem";import{getByMap}from"../../utils/getByMap";import{usePropsHandler}from"../EventInterceptor/usePropsHandler";import{Text}from"../Text/Text";import{CollapseIcon}from"./CollapseIcon/CollapseIcon";import{collapsePropCloseDirectionIconDefault,collapsePropDirectionIconDefault,collapsePropIconPositionDefault,collapsePropSizeDefault,collapsePropViewDefault}from"./types";export var COMPONENT_NAME="Collapse";export var cnCollapse=cn("Collapse");export var sizeIconMap={"2xs":"xs",xs:"xs",s:"xs",m:"s",l:"s"};function renderSide(a){var b=a?_toConsumableArray(Array.isArray(a)?a:[a]):[];return b.map(function(a,b){return React.createElement("div",{className:cnCollapse("Side"),key:b},a)})}var getMaxHeight=function(a,b){return b?"string"==typeof b?b:"".concat(b,"px"):"".concat(a,"px")};export var Collapse=React.forwardRef(function(a,b){var c=useRef(null),d=useRef(null),e=useComponentSize(d),f=e.height,g=usePropsHandler(COMPONENT_NAME,a,c),h=g.label,i=g.size,j=void 0===i?collapsePropSizeDefault:i,k=g.view,l=void 0===k?collapsePropViewDefault:k,m=g.className,n=g.maxContentHeight,o=g.isOpen,p=g.children,q=g.hoverEffect,r=g.divider,s=g.icon,t=void 0===s?IconArrowDown:s,u=g.closeIcon,v=g.rightSide,w=g.horizontalSpace,x=g.iconPosition,y=void 0===x?collapsePropIconPositionDefault:x,z=g.directionIcon,A=void 0===z?collapsePropDirectionIconDefault:z,B=g.closeDirectionIcon,C=void 0===B?collapsePropCloseDirectionIconDefault:B,D=g.style,E=_objectWithoutProperties(g,_excluded);return React.createElement("div",{ref:useForkRef([b,c]),className:cnCollapse({size:j,view:l,horizontalSpace:w},[m]),style:D},React.createElement("div",Object.assign({className:cnCollapse("Label",{hoverEffect:q,iconPosition:y})},E),React.createElement(CollapseIcon,{className:cnCollapse("Icon",{position:y}),size:getByMap(sizeIconMap,j),icon:t,closeIcon:u,isOpen:o,direction:A,closeDirection:C}),"object"==typeof h?React.createElement("div",{className:cnCollapse("LabelText")},h):React.createElement(Text,{className:cnCollapse("LabelText"),view:l,size:j},h),"left"===y&&renderSide(v)),React.createElement("div",{style:_defineProperty({},"--collapse-body-max-height",getMaxHeight(f,n)),className:cnCollapse("Body",{isOpen:o,divider:r})},React.createElement("div",{ref:d,className:cnCollapse("Content")},p)))});export*from"./types";
1
+ import _defineProperty from"@babel/runtime/helpers/defineProperty";import _objectWithoutProperties from"@babel/runtime/helpers/objectWithoutProperties";import _toConsumableArray from"@babel/runtime/helpers/toConsumableArray";var _excluded=["label","size","view","className","maxContentHeight","isOpen","children","hoverEffect","divider","icon","closeIcon","rightSide","horizontalSpace","iconPosition","directionIcon","closeDirectionIcon","style"];function ownKeys(a,b){var c=Object.keys(a);if(Object.getOwnPropertySymbols){var d=Object.getOwnPropertySymbols(a);b&&(d=d.filter(function(b){return Object.getOwnPropertyDescriptor(a,b).enumerable})),c.push.apply(c,d)}return c}function _objectSpread(a){for(var b,c=1;c<arguments.length;c++)b=null==arguments[c]?{}:arguments[c],c%2?ownKeys(Object(b),!0).forEach(function(c){_defineProperty(a,c,b[c])}):Object.getOwnPropertyDescriptors?Object.defineProperties(a,Object.getOwnPropertyDescriptors(b)):ownKeys(Object(b)).forEach(function(c){Object.defineProperty(a,c,Object.getOwnPropertyDescriptor(b,c))});return a}import"./Collapse.css";import React,{useRef}from"react";import{useComponentSize}from"../../hooks/useComponentSize";import{useForkRef}from"../../hooks/useForkRef/useForkRef";import{IconArrowDown}from"../../icons/IconArrowDown/IconArrowDown";import{cn}from"../../utils/bem";import{getByMap}from"../../utils/getByMap";import{usePropsHandler}from"../EventInterceptor/usePropsHandler";import{Text}from"../Text/Text";import{CollapseIcon}from"./CollapseIcon/CollapseIcon";import{collapsePropCloseDirectionIconDefault,collapsePropDirectionIconDefault,collapsePropIconPositionDefault,collapsePropSizeDefault,collapsePropViewDefault}from"./types";export var COMPONENT_NAME="Collapse";export var cnCollapse=cn("Collapse");export var sizeIconMap={"2xs":"xs",xs:"xs",s:"xs",m:"s",l:"s"};function renderSide(a){var b=a?_toConsumableArray(Array.isArray(a)?a:[a]):[];return b.map(function(a,b){return React.createElement("div",{className:cnCollapse("Side"),key:b},a)})}var getMaxHeight=function(a,b){return b?"string"==typeof b?b:"".concat(b,"px"):"".concat(a,"px")};export var Collapse=React.forwardRef(function(a,b){var c=useRef(null),d=useRef(null),e=useComponentSize(d),f=e.height,g=usePropsHandler(COMPONENT_NAME,a,c),h=g.label,i=g.size,j=void 0===i?collapsePropSizeDefault:i,k=g.view,l=void 0===k?collapsePropViewDefault:k,m=g.className,n=g.maxContentHeight,o=g.isOpen,p=g.children,q=g.hoverEffect,r=g.divider,s=g.icon,t=void 0===s?IconArrowDown:s,u=g.closeIcon,v=g.rightSide,w=g.horizontalSpace,x=g.iconPosition,y=void 0===x?collapsePropIconPositionDefault:x,z=g.directionIcon,A=void 0===z?collapsePropDirectionIconDefault:z,B=g.closeDirectionIcon,C=void 0===B?collapsePropCloseDirectionIconDefault:B,D=g.style,E=_objectWithoutProperties(g,_excluded);return React.createElement("div",{ref:useForkRef([b,c]),className:cnCollapse({size:j,view:l},[m]),style:_objectSpread(_objectSpread({},D),{},_defineProperty({},"--horizontal-space",w?"var(--space-".concat(w,")"):0))},React.createElement("div",Object.assign({className:cnCollapse("Label",{hoverEffect:q,iconPosition:y})},E),React.createElement(CollapseIcon,{className:cnCollapse("Icon",{position:y}),size:getByMap(sizeIconMap,j),icon:t,closeIcon:u,isOpen:o,direction:A,closeDirection:C}),"object"==typeof h?React.createElement("div",{className:cnCollapse("LabelText")},h):React.createElement(Text,{className:cnCollapse("LabelText"),view:l,size:j},h),"left"===y&&renderSide(v)),React.createElement("div",{style:_defineProperty({},"--collapse-body-max-height",getMaxHeight(f,n)),className:cnCollapse("Body",{isOpen:o,divider:r})},React.createElement("div",{ref:d,className:cnCollapse("Content")},p)))});export*from"./types";
2
2
  //# sourceMappingURL=Collapse.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"Collapse.js","names":["React","useRef","useComponentSize","useForkRef","IconArrowDown","cn","getByMap","usePropsHandler","Text","CollapseIcon","collapsePropCloseDirectionIconDefault","collapsePropDirectionIconDefault","collapsePropIconPositionDefault","collapsePropSizeDefault","collapsePropViewDefault","COMPONENT_NAME","cnCollapse","sizeIconMap","renderSide","side","sides","Array","isArray","map","item","index","getMaxHeight","height","maxHeight","Collapse","forwardRef","props","ref","collapseRef","contentRef","contentHeight","label","size","view","className","maxContentHeight","isOpen","children","hoverEffect","divider","icon","closeIcon","rightSide","horizontalSpace","iconPosition","directionIcon","closeDirectionIcon","style","otherProps","position"],"sources":["../../../../../src/components/Collapse/Collapse.tsx"],"sourcesContent":["import './Collapse.css';\n\nimport React, { useRef } from 'react';\n\nimport { useComponentSize } from '##/hooks/useComponentSize';\n\nimport { useForkRef } from '../../hooks/useForkRef/useForkRef';\nimport { IconPropSize } from '../../icons/Icon/Icon';\nimport { IconArrowDown } from '../../icons/IconArrowDown/IconArrowDown';\nimport { cn } from '../../utils/bem';\nimport { getByMap } from '../../utils/getByMap';\nimport { usePropsHandler } from '../EventInterceptor/usePropsHandler';\nimport { Text } from '../Text/Text';\nimport { CollapseIcon } from './CollapseIcon/CollapseIcon';\nimport {\n CollapseComponent,\n collapsePropCloseDirectionIconDefault,\n collapsePropDirectionIconDefault,\n collapsePropIconPositionDefault,\n CollapseProps,\n CollapsePropSize,\n collapsePropSizeDefault,\n collapsePropViewDefault,\n} from './types';\n\nexport const COMPONENT_NAME = 'Collapse' as const;\n\nexport const cnCollapse = cn('Collapse');\n\nexport const sizeIconMap: Record<CollapsePropSize, IconPropSize> = {\n '2xs': 'xs',\n 'xs': 'xs',\n 's': 'xs',\n 'm': 's',\n 'l': 's',\n};\n\nfunction renderSide(side: React.ReactNode): React.ReactNode {\n const sides = side ? [...(Array.isArray(side) ? side : [side])] : [];\n\n return sides.map((item, index) => (\n <div className={cnCollapse('Side')} key={index}>\n {item}\n </div>\n ));\n}\n\nconst getMaxHeight = (height: number, maxHeight?: number | string) => {\n if (maxHeight) {\n return typeof maxHeight === 'string' ? maxHeight : `${maxHeight}px`;\n }\n return `${height}px`;\n};\n\nexport const Collapse: CollapseComponent = React.forwardRef<\n HTMLDivElement,\n CollapseProps\n>((props, ref) => {\n const collapseRef = useRef<HTMLDivElement>(null);\n const contentRef = useRef<HTMLDivElement>(null);\n const { height: contentHeight } = useComponentSize(contentRef);\n\n const {\n label,\n size = collapsePropSizeDefault,\n view = collapsePropViewDefault,\n className,\n maxContentHeight,\n isOpen,\n children,\n hoverEffect,\n divider,\n icon = IconArrowDown,\n closeIcon,\n rightSide,\n horizontalSpace,\n iconPosition = collapsePropIconPositionDefault,\n directionIcon = collapsePropDirectionIconDefault,\n closeDirectionIcon = collapsePropCloseDirectionIconDefault,\n style,\n ...otherProps\n } = usePropsHandler(COMPONENT_NAME, props, collapseRef);\n\n return (\n <div\n ref={useForkRef([ref, collapseRef])}\n className={cnCollapse({ size, view, horizontalSpace }, [className])}\n style={style}\n >\n <div\n className={cnCollapse('Label', {\n hoverEffect,\n iconPosition,\n })}\n {...otherProps}\n >\n <CollapseIcon\n className={cnCollapse('Icon', { position: iconPosition })}\n size={getByMap(sizeIconMap, size)}\n icon={icon}\n closeIcon={closeIcon}\n isOpen={isOpen}\n direction={directionIcon}\n closeDirection={closeDirectionIcon}\n />\n {typeof label === 'object' ? (\n <div className={cnCollapse('LabelText')}>{label}</div>\n ) : (\n <Text className={cnCollapse('LabelText')} view={view} size={size}>\n {label}\n </Text>\n )}\n {iconPosition === 'left' && renderSide(rightSide)}\n </div>\n <div\n style={{\n ['--collapse-body-max-height' as string]: getMaxHeight(\n contentHeight,\n maxContentHeight,\n ),\n }}\n className={cnCollapse('Body', { isOpen, divider })}\n >\n <div ref={contentRef} className={cnCollapse('Content')}>\n {children}\n </div>\n </div>\n </div>\n );\n});\n\nexport * from './types';\n"],"mappings":"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"}
1
+ {"version":3,"file":"Collapse.js","names":["React","useRef","useComponentSize","useForkRef","IconArrowDown","cn","getByMap","usePropsHandler","Text","CollapseIcon","collapsePropCloseDirectionIconDefault","collapsePropDirectionIconDefault","collapsePropIconPositionDefault","collapsePropSizeDefault","collapsePropViewDefault","COMPONENT_NAME","cnCollapse","sizeIconMap","renderSide","side","sides","Array","isArray","map","item","index","getMaxHeight","height","maxHeight","Collapse","forwardRef","props","ref","collapseRef","contentRef","contentHeight","label","size","view","className","maxContentHeight","isOpen","children","hoverEffect","divider","icon","closeIcon","rightSide","horizontalSpace","iconPosition","directionIcon","closeDirectionIcon","style","otherProps","position"],"sources":["../../../../../src/components/Collapse/Collapse.tsx"],"sourcesContent":["import './Collapse.css';\n\nimport React, { useRef } from 'react';\n\nimport { useComponentSize } from '##/hooks/useComponentSize';\n\nimport { useForkRef } from '../../hooks/useForkRef/useForkRef';\nimport { IconPropSize } from '../../icons/Icon/Icon';\nimport { IconArrowDown } from '../../icons/IconArrowDown/IconArrowDown';\nimport { cn } from '../../utils/bem';\nimport { getByMap } from '../../utils/getByMap';\nimport { usePropsHandler } from '../EventInterceptor/usePropsHandler';\nimport { Text } from '../Text/Text';\nimport { CollapseIcon } from './CollapseIcon/CollapseIcon';\nimport {\n CollapseComponent,\n collapsePropCloseDirectionIconDefault,\n collapsePropDirectionIconDefault,\n collapsePropIconPositionDefault,\n CollapseProps,\n CollapsePropSize,\n collapsePropSizeDefault,\n collapsePropViewDefault,\n} from './types';\n\nexport const COMPONENT_NAME = 'Collapse' as const;\n\nexport const cnCollapse = cn('Collapse');\n\nexport const sizeIconMap: Record<CollapsePropSize, IconPropSize> = {\n '2xs': 'xs',\n 'xs': 'xs',\n 's': 'xs',\n 'm': 's',\n 'l': 's',\n};\n\nfunction renderSide(side: React.ReactNode): React.ReactNode {\n const sides = side ? [...(Array.isArray(side) ? side : [side])] : [];\n\n return sides.map((item, index) => (\n <div className={cnCollapse('Side')} key={index}>\n {item}\n </div>\n ));\n}\n\nconst getMaxHeight = (height: number, maxHeight?: number | string) => {\n if (maxHeight) {\n return typeof maxHeight === 'string' ? maxHeight : `${maxHeight}px`;\n }\n return `${height}px`;\n};\n\nexport const Collapse: CollapseComponent = React.forwardRef<\n HTMLDivElement,\n CollapseProps\n>((props, ref) => {\n const collapseRef = useRef<HTMLDivElement>(null);\n const contentRef = useRef<HTMLDivElement>(null);\n const { height: contentHeight } = useComponentSize(contentRef);\n\n const {\n label,\n size = collapsePropSizeDefault,\n view = collapsePropViewDefault,\n className,\n maxContentHeight,\n isOpen,\n children,\n hoverEffect,\n divider,\n icon = IconArrowDown,\n closeIcon,\n rightSide,\n horizontalSpace,\n iconPosition = collapsePropIconPositionDefault,\n directionIcon = collapsePropDirectionIconDefault,\n closeDirectionIcon = collapsePropCloseDirectionIconDefault,\n style,\n ...otherProps\n } = usePropsHandler(COMPONENT_NAME, props, collapseRef);\n\n return (\n <div\n ref={useForkRef([ref, collapseRef])}\n className={cnCollapse({ size, view }, [className])}\n style={{\n ...style,\n ['--horizontal-space' as string]: horizontalSpace\n ? `var(--space-${horizontalSpace})`\n : 0,\n }}\n >\n <div\n className={cnCollapse('Label', {\n hoverEffect,\n iconPosition,\n })}\n {...otherProps}\n >\n <CollapseIcon\n className={cnCollapse('Icon', { position: iconPosition })}\n size={getByMap(sizeIconMap, size)}\n icon={icon}\n closeIcon={closeIcon}\n isOpen={isOpen}\n direction={directionIcon}\n closeDirection={closeDirectionIcon}\n />\n {typeof label === 'object' ? (\n <div className={cnCollapse('LabelText')}>{label}</div>\n ) : (\n <Text className={cnCollapse('LabelText')} view={view} size={size}>\n {label}\n </Text>\n )}\n {iconPosition === 'left' && renderSide(rightSide)}\n </div>\n <div\n style={{\n ['--collapse-body-max-height' as string]: getMaxHeight(\n contentHeight,\n maxContentHeight,\n ),\n }}\n className={cnCollapse('Body', { isOpen, divider })}\n >\n <div ref={contentRef} className={cnCollapse('Content')}>\n {children}\n </div>\n </div>\n </div>\n );\n});\n\nexport * from './types';\n"],"mappings":"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"}
@@ -1,2 +1,2 @@
1
- import _objectWithoutProperties from"@babel/runtime/helpers/objectWithoutProperties";var _excluded=["status","children","className"];import React from"react";import{cn}from"../../utils/bem";import{forwardRefWithAs}from"../../utils/types/PropsWithAsAttributes";import{Text}from"../Text/Text";var cnFieldCaption=cn("FieldCaption");export var FieldCaption=forwardRefWithAs(function(a,b){var c=a.status,d=a.children,e=a.className,f=_objectWithoutProperties(a,_excluded);return React.createElement(Text,Object.assign({view:c||"secondary",className:cnFieldCaption(null,[e])},f,{ref:b,size:"xs",lineHeight:"2xs"}),d)});
1
+ import _objectWithoutProperties from"@babel/runtime/helpers/objectWithoutProperties";var _excluded=["status","children","className"];import React from"react";import{cn}from"../../utils/bem";import{forwardRefWithAs}from"../../utils/types/PropsWithAsAttributes";import{Text}from"../Text/Text";var cnFieldCaption=cn("FieldCaption");export var FieldCaption=forwardRefWithAs(function(a,b){var c=a.status,d=a.children,e=a.className,f=_objectWithoutProperties(a,_excluded);return React.createElement(Text,Object.assign({},f,{view:c||"secondary",className:cnFieldCaption(null,[e]),ref:b,size:"xs",lineHeight:"2xs"}),d)});
2
2
  //# sourceMappingURL=FieldCaption.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"FieldCaption.js","names":["React","cn","forwardRefWithAs","Text","cnFieldCaption","FieldCaption","props","ref","status","children","className","otherProps"],"sources":["../../../../../src/components/FieldCaption/FieldCaption.tsx"],"sourcesContent":["import React from 'react';\n\nimport { cn } from '../../utils/bem';\nimport { forwardRefWithAs } from '../../utils/types/PropsWithAsAttributes';\nimport { Text } from '../Text/Text';\n\nexport type FieldCaptionPropStatus = 'alert' | 'warning' | 'success';\n\ntype FieldCaptionProps = {\n status?: FieldCaptionPropStatus;\n};\n\nconst cnFieldCaption = cn('FieldCaption');\n\nexport const FieldCaption = forwardRefWithAs<FieldCaptionProps>(\n (props, ref) => {\n const { status, children, className, ...otherProps } = props;\n\n return (\n <Text\n view={status || 'secondary'}\n className={cnFieldCaption(null, [className])}\n {...otherProps}\n ref={ref}\n size=\"xs\"\n lineHeight=\"2xs\"\n >\n {children}\n </Text>\n );\n },\n);\n"],"mappings":"qIAAA,MAAOA,MAAP,KAAkB,OAAlB,CAEA,OAASC,EAAT,uBACA,OAASC,gBAAT,+CACA,OAASC,IAAT,oBAQA,GAAMC,eAAc,CAAGH,EAAE,CAAC,cAAD,CAAzB,CAEA,MAAO,IAAMI,aAAY,CAAGH,gBAAgB,CAC1C,SAACI,CAAD,CAAQC,CAAR,CAAgB,CACd,GAAQC,EAAR,CAAuDF,CAAvD,CAAQE,MAAR,CAAgBC,CAAhB,CAAuDH,CAAvD,CAAgBG,QAAhB,CAA0BC,CAA1B,CAAuDJ,CAAvD,CAA0BI,SAA1B,CAAwCC,CAAxC,0BAAuDL,CAAvD,YAEA,MACE,qBAAC,IAAD,gBACE,IAAI,CAAEE,CAAM,EAAI,WADlB,CAEE,SAAS,CAAEJ,cAAc,CAAC,IAAD,CAAO,CAACM,CAAD,CAAP,CAF3B,EAGMC,CAHN,EAIE,GAAG,CAAEJ,CAJP,CAKE,IAAI,CAAC,IALP,CAME,UAAU,CAAC,KANb,GAQGE,CARH,CAWH,CAhByC,CAArC"}
1
+ {"version":3,"file":"FieldCaption.js","names":["React","cn","forwardRefWithAs","Text","cnFieldCaption","FieldCaption","props","ref","status","children","className","otherProps"],"sources":["../../../../../src/components/FieldCaption/FieldCaption.tsx"],"sourcesContent":["import React from 'react';\n\nimport { cn } from '../../utils/bem';\nimport { forwardRefWithAs } from '../../utils/types/PropsWithAsAttributes';\nimport { Text } from '../Text/Text';\n\nexport type FieldCaptionPropStatus = 'alert' | 'warning' | 'success';\n\ntype FieldCaptionProps = {\n status?: FieldCaptionPropStatus;\n};\n\nconst cnFieldCaption = cn('FieldCaption');\n\nexport const FieldCaption = forwardRefWithAs<FieldCaptionProps>(\n (props, ref) => {\n const { status, children, className, ...otherProps } = props;\n\n return (\n <Text\n {...otherProps}\n view={status || 'secondary'}\n className={cnFieldCaption(null, [className])}\n ref={ref}\n size=\"xs\"\n lineHeight=\"2xs\"\n >\n {children}\n </Text>\n );\n },\n);\n"],"mappings":"qIAAA,MAAOA,MAAP,KAAkB,OAAlB,CAEA,OAASC,EAAT,uBACA,OAASC,gBAAT,+CACA,OAASC,IAAT,oBAQA,GAAMC,eAAc,CAAGH,EAAE,CAAC,cAAD,CAAzB,CAEA,MAAO,IAAMI,aAAY,CAAGH,gBAAgB,CAC1C,SAACI,CAAD,CAAQC,CAAR,CAAgB,CACd,GAAQC,EAAR,CAAuDF,CAAvD,CAAQE,MAAR,CAAgBC,CAAhB,CAAuDH,CAAvD,CAAgBG,QAAhB,CAA0BC,CAA1B,CAAuDJ,CAAvD,CAA0BI,SAA1B,CAAwCC,CAAxC,0BAAuDL,CAAvD,YAEA,MACE,qBAAC,IAAD,kBACMK,CADN,EAEE,IAAI,CAAEH,CAAM,EAAI,WAFlB,CAGE,SAAS,CAAEJ,cAAc,CAAC,IAAD,CAAO,CAACM,CAAD,CAAP,CAH3B,CAIE,GAAG,CAAEH,CAJP,CAKE,IAAI,CAAC,IALP,CAME,UAAU,CAAC,KANb,GAQGE,CARH,CAWH,CAhByC,CAArC"}
@@ -1,2 +1,2 @@
1
- import _defineProperty from"@babel/runtime/helpers/defineProperty";import _slicedToArray from"@babel/runtime/helpers/slicedToArray";import _objectWithoutProperties from"@babel/runtime/helpers/objectWithoutProperties";import _toConsumableArray from"@babel/runtime/helpers/toConsumableArray";var _excluded=["children","direction","offset","arrowOffset","possibleDirections","isInteractive","onClickOutside","spareDirection","style","className","position","anchorRef","equalAnchorWidth","onSetDirection"];function ownKeys(a,b){var c=Object.keys(a);if(Object.getOwnPropertySymbols){var d=Object.getOwnPropertySymbols(a);b&&(d=d.filter(function(b){return Object.getOwnPropertyDescriptor(a,b).enumerable})),c.push.apply(c,d)}return c}function _objectSpread(a){for(var b,c=1;c<arguments.length;c++)b=null==arguments[c]?{}:arguments[c],c%2?ownKeys(Object(b),!0).forEach(function(c){_defineProperty(a,c,b[c])}):Object.getOwnPropertyDescriptors?Object.defineProperties(a,Object.getOwnPropertyDescriptors(b)):ownKeys(Object(b)).forEach(function(c){Object.defineProperty(a,c,Object.getOwnPropertyDescriptor(b,c))});return a}import"./Popover.css";import React,{forwardRef,useEffect,useLayoutEffect,useMemo}from"react";import{useClickOutside}from"../../hooks/useClickOutside/useClickOutside";import{useComponentSize}from"../../hooks/useComponentSize/useComponentSize";import{useForkRef}from"../../hooks/useForkRef/useForkRef";import{cn}from"../../utils/bem";import{isNumber,isString}from"../../utils/type-guards";import{PortalWithTheme,usePortalContext}from"../PortalWithTheme/PortalWithTheme";import{useTheme}from"../Theme/Theme";import{getComputedPositionAndDirection}from"./helpers";import{usePopoverReposition}from"./usePopoverReposition";export{usePopoverReposition};export var directionsStartCenter=["downCenter","upCenter","downRight","downLeft","upRight","upLeft","leftUp","leftCenter","leftDown","rightUp","rightCenter","rightDown"];export var directionsStartEdge=["downStartLeft","upStartLeft","downStartRight","upStartRight","leftStartUp","leftStartDown","rightStartUp","rightStartDown"];export var popoverPropOffset=["3xs","2xs","xs","s","m","l","xl","2xl","3xl","4xl","5xl","6xl"];export var directions=[].concat(directionsStartCenter,directionsStartEdge);var getOffset=function(a,b){if(isNumber(b))return b;if(isString(b)&&a.current){var g=getComputedStyle(a.current).getPropertyValue("--space-".concat(b));if(g&&/px$/.test(g))return+g.slice(0,g.length-2);if(g&&/rem$/.test(g)){var c=parseFloat(getComputedStyle(document.documentElement).fontSize),d=+g.slice(0,g.length-3);return c*d}if(g&&/em$/.test(g)){var e=parseFloat(getComputedStyle(a.current).fontSize),f=+g.slice(0,g.length-2);return e*f}return 0}return 0},isRenderProp=function(a){return"function"==typeof a},ContextConsumer=function(a){var b=a.onClickOutside,c=a.children,d=a.ignoreClicksInsideRefs,e=usePortalContext(),f=e.refs;return useClickOutside({isActive:!!b,ignoreClicksInsideRefs:[].concat(_toConsumableArray(d||[]),_toConsumableArray(f||[])),handler:b}),c},cnPopover=cn("Popover");export var Popover=forwardRef(function(a,b){var c,d=a.children,e=a.direction,f=void 0===e?"upCenter":e,g=a.offset,h=void 0===g?0:g,i=a.arrowOffset,j=a.possibleDirections,k=void 0===j?directions:j,l=a.isInteractive,m=a.onClickOutside,n=a.spareDirection,o=void 0===n?"downStartLeft":n,p=a.style,q=a.className,r=a.position,s=a.anchorRef,t=a.equalAnchorWidth,u=a.onSetDirection,v=_objectWithoutProperties(a,_excluded),w=React.useRef(null),x=useTheme(),y=x.theme,z=React.useState(),A=_slicedToArray(z,2),B=A[0],C=A[1],D=useComponentSize(w),E=D.width,F=D.height,G=useComponentSize(s||{current:null}),H=React.useRef(null),I=React.useState([]),J=_slicedToArray(I,2),K=J[0],L=J[1],M=function(){L(function(a){return a.length?[]:a}),H.current=null},N=function(){var a;return C(null===s||void 0===s||null===(a=s.current)||void 0===a?void 0:a.getBoundingClientRect())},O=useMemo(function(){return getOffset(w,h)},[h,!!w.current]),P=getComputedPositionAndDirection({contentSize:{width:E,height:F},viewportSize:{width:document.documentElement.clientWidth,height:document.documentElement.clientHeight},arrowOffset:i,offset:O,direction:f,possibleDirections:k,bannedDirections:K,position:B?{x:B.left,y:B.top}:r,anchorSize:G,spareDirection:o}),Q=P.position,R=P.direction;return useLayoutEffect(function(){return null===u||void 0===u?void 0:u(R)},[R]),useEffect(N,[G]),usePopoverReposition({isActive:!0,scrollAnchorRef:s||{current:null},onRequestReposition:function onRequestReposition(){M(),N()}}),useLayoutEffect(function(){H.current!==R&&(H.current&&!K.includes(H.current)&&L(function(a){return H.current?[].concat(_toConsumableArray(a),[H.current]):a}),H.current=R)},[R]),useLayoutEffect(M,[a]),React.createElement(PortalWithTheme,Object.assign({},v,{preset:y,className:cnPopover({direction:R},[q]),container:window.document.body,ref:useForkRef([w,b]),style:_objectSpread(_objectSpread({},p),{},(c={},_defineProperty(c,"--popover-top","".concat(((null===Q||void 0===Q?void 0:Q.y)||0)+window.scrollY,"px")),_defineProperty(c,"--popover-left","".concat(((null===Q||void 0===Q?void 0:Q.x)||0)+window.scrollX,"px")),_defineProperty(c,"--popover-width",t?"".concat(G.width,"px"):void 0),_defineProperty(c,"--popover-pointer-events",void 0===l||l?void 0:"none"),_defineProperty(c,"--popover-visibility",Q?void 0:"hidden"),c))}),React.createElement(ContextConsumer,{onClickOutside:m,ignoreClicksInsideRefs:[w,s||{current:null}]},isRenderProp(d)?d(R):d))});
1
+ import _defineProperty from"@babel/runtime/helpers/defineProperty";import _slicedToArray from"@babel/runtime/helpers/slicedToArray";import _objectWithoutProperties from"@babel/runtime/helpers/objectWithoutProperties";import _toConsumableArray from"@babel/runtime/helpers/toConsumableArray";var _excluded=["children","direction","offset","arrowOffset","possibleDirections","isInteractive","onClickOutside","spareDirection","style","className","position","anchorRef","equalAnchorWidth","onSetDirection"];function ownKeys(a,b){var c=Object.keys(a);if(Object.getOwnPropertySymbols){var d=Object.getOwnPropertySymbols(a);b&&(d=d.filter(function(b){return Object.getOwnPropertyDescriptor(a,b).enumerable})),c.push.apply(c,d)}return c}function _objectSpread(a){for(var b,c=1;c<arguments.length;c++)b=null==arguments[c]?{}:arguments[c],c%2?ownKeys(Object(b),!0).forEach(function(c){_defineProperty(a,c,b[c])}):Object.getOwnPropertyDescriptors?Object.defineProperties(a,Object.getOwnPropertyDescriptors(b)):ownKeys(Object(b)).forEach(function(c){Object.defineProperty(a,c,Object.getOwnPropertyDescriptor(b,c))});return a}import"./Popover.css";import React,{forwardRef,useEffect,useLayoutEffect,useMemo}from"react";import{useClickOutside}from"../../hooks/useClickOutside/useClickOutside";import{useComponentSize}from"../../hooks/useComponentSize/useComponentSize";import{useForkRef}from"../../hooks/useForkRef/useForkRef";import{cn}from"../../utils/bem";import{isNumber,isString}from"../../utils/type-guards";import{PortalWithTheme,usePortalContext}from"../PortalWithTheme/PortalWithTheme";import{useTheme}from"../Theme/Theme";import{getComputedPositionAndDirection}from"./helpers";import{usePopoverReposition}from"./usePopoverReposition";export{usePopoverReposition};export var directionsStartCenter=["downCenter","upCenter","downRight","downLeft","upRight","upLeft","leftUp","leftCenter","leftDown","rightUp","rightCenter","rightDown"];export var directionsStartEdge=["downStartLeft","upStartLeft","downStartRight","upStartRight","leftStartUp","leftStartDown","rightStartUp","rightStartDown"];export var popoverPropOffset=["3xs","2xs","xs","s","m","l","xl","2xl","3xl","4xl","5xl","6xl"];export var directions=[].concat(directionsStartCenter,directionsStartEdge);var getOffset=function(a,b){if(isNumber(b))return b;if(isString(b)&&a.current){var g=getComputedStyle(a.current).getPropertyValue("--space-".concat(b));if(g&&/px$/.test(g))return+g.slice(0,g.length-2);if(g&&/rem$/.test(g)){var c=parseFloat(getComputedStyle(document.documentElement).fontSize),d=+g.slice(0,g.length-3);return c*d}if(g&&/em$/.test(g)){var e=parseFloat(getComputedStyle(a.current).fontSize),f=+g.slice(0,g.length-2);return e*f}return 0}return 0},isRenderProp=function(a){return"function"==typeof a},ContextConsumer=function(a){var b=a.onClickOutside,c=a.children,d=a.ignoreClicksInsideRefs,e=usePortalContext(),f=e.refs;return useClickOutside({isActive:!!b,ignoreClicksInsideRefs:[].concat(_toConsumableArray(d||[]),_toConsumableArray(f||[])),handler:b}),c},cnPopover=cn("Popover");export var Popover=forwardRef(function(a,b){var c,d=a.children,e=a.direction,f=void 0===e?"upCenter":e,g=a.offset,h=void 0===g?0:g,i=a.arrowOffset,j=a.possibleDirections,k=void 0===j?directions:j,l=a.isInteractive,m=a.onClickOutside,n=a.spareDirection,o=void 0===n?"downStartLeft":n,p=a.style,q=a.className,r=a.position,s=a.anchorRef,t=a.equalAnchorWidth,u=a.onSetDirection,v=_objectWithoutProperties(a,_excluded),w=React.useRef(null),x=useTheme(),y=x.theme,z=React.useState(),A=_slicedToArray(z,2),B=A[0],C=A[1],D=useComponentSize(w),E=D.width,F=D.height,G=useComponentSize(s||{current:null}),H=React.useRef(null),I=React.useState([]),J=_slicedToArray(I,2),K=J[0],L=J[1],M=function(){L(function(a){return a.length?[]:a}),H.current=null},N=function(){var a;return C(null===s||void 0===s||null===(a=s.current)||void 0===a?void 0:a.getBoundingClientRect())},O=useMemo(function(){return getOffset(w,h)},[h,!!w.current]),P=getComputedPositionAndDirection({contentSize:{width:E,height:F},viewportSize:{width:document.documentElement.clientWidth,height:document.documentElement.clientHeight},arrowOffset:i,offset:O,direction:f,possibleDirections:k,bannedDirections:K,position:B?{x:B.left,y:B.top}:r,anchorSize:G,spareDirection:o}),Q=P.position,R=P.direction;return useLayoutEffect(function(){return null===u||void 0===u?void 0:u(R)},[R]),useEffect(N,[G]),usePopoverReposition({isActive:!0,scrollAnchorRef:s||{current:null},onRequestReposition:function onRequestReposition(){M(),N()}}),useLayoutEffect(function(){H.current!==R&&(H.current&&!K.includes(H.current)&&!K.includes(R)&&R!==o&&L(function(a){return H.current?[].concat(_toConsumableArray(a),[H.current]):a}),H.current=R)},[R]),useLayoutEffect(M,[a]),React.createElement(PortalWithTheme,Object.assign({},v,{preset:y,className:cnPopover({direction:R},[q]),container:window.document.body,ref:useForkRef([w,b]),style:_objectSpread(_objectSpread({},p),{},(c={},_defineProperty(c,"--popover-top","".concat(((null===Q||void 0===Q?void 0:Q.y)||0)+window.scrollY,"px")),_defineProperty(c,"--popover-left","".concat(((null===Q||void 0===Q?void 0:Q.x)||0)+window.scrollX,"px")),_defineProperty(c,"--popover-width",t?"".concat(G.width,"px"):void 0),_defineProperty(c,"--popover-pointer-events",void 0===l||l?void 0:"none"),_defineProperty(c,"--popover-visibility",Q?void 0:"hidden"),c))}),React.createElement(ContextConsumer,{onClickOutside:m,ignoreClicksInsideRefs:[w,s||{current:null}]},isRenderProp(d)?d(R):d))});
2
2
  //# sourceMappingURL=Popover.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"Popover.js","names":["React","forwardRef","useEffect","useLayoutEffect","useMemo","useClickOutside","useComponentSize","useForkRef","cn","isNumber","isString","PortalWithTheme","usePortalContext","useTheme","getComputedPositionAndDirection","usePopoverReposition","directionsStartCenter","directionsStartEdge","popoverPropOffset","directions","getOffset","ref","propOffset","current","cssVar","getComputedStyle","getPropertyValue","test","slice","length","fontSize","parseFloat","document","documentElement","rem","em","isRenderProp","children","ContextConsumer","onClickOutside","ignoreClicksInsideRefs","refs","isActive","handler","cnPopover","Popover","props","componentRef","direction","passedDirection","offset","arrowOffset","possibleDirections","isInteractive","spareDirection","style","className","passedPosition","position","anchorRef","equalAnchorWidth","onSetDirection","otherProps","useRef","theme","useState","anchorClientRect","setAnchorClientRect","width","height","anchorSize","previousDirectionRef","bannedDirections","setBannedDirections","resetBannedDirections","state","updateAnchorClientRect","getBoundingClientRect","contentSize","viewportSize","clientWidth","clientHeight","x","left","y","top","scrollAnchorRef","onRequestReposition","includes","window","body","scrollY","scrollX"],"sources":["../../../../../src/components/Popover/Popover.tsx"],"sourcesContent":["import './Popover.css';\n\nimport React, { forwardRef, useEffect, useLayoutEffect, useMemo } from 'react';\n\nimport {\n ClickOutsideHandler,\n useClickOutside,\n} from '../../hooks/useClickOutside/useClickOutside';\nimport { useComponentSize } from '../../hooks/useComponentSize/useComponentSize';\nimport { useForkRef } from '../../hooks/useForkRef/useForkRef';\nimport { cn } from '../../utils/bem';\nimport { isNumber, isString } from '../../utils/type-guards';\nimport { PropsWithJsxAttributes } from '../../utils/types/PropsWithJsxAttributes';\nimport {\n PortalWithTheme,\n usePortalContext,\n} from '../PortalWithTheme/PortalWithTheme';\nimport { useTheme } from '../Theme/Theme';\nimport { getComputedPositionAndDirection } from './helpers';\nimport { usePopoverReposition } from './usePopoverReposition';\n\nexport { usePopoverReposition };\n\n/**\n * Стороны упорядочены по приоритету:\n * Используется первая сторона, в которую смог вписаться поповер.\n */\nexport const directionsStartCenter = [\n 'downCenter',\n 'upCenter',\n\n 'downRight',\n 'downLeft',\n 'upRight',\n 'upLeft',\n\n 'leftUp',\n 'leftCenter',\n 'leftDown',\n\n 'rightUp',\n 'rightCenter',\n 'rightDown',\n] as const;\n\nexport const directionsStartEdge = [\n 'downStartLeft',\n 'upStartLeft',\n\n 'downStartRight',\n 'upStartRight',\n\n 'leftStartUp',\n 'leftStartDown',\n\n 'rightStartUp',\n 'rightStartDown',\n] as const;\n\nexport const popoverPropOffset = [\n '3xs',\n '2xs',\n 'xs',\n 's',\n 'm',\n 'l',\n 'xl',\n '2xl',\n '3xl',\n '4xl',\n '5xl',\n '6xl',\n] as const;\nexport type PopoverPropOffset = typeof popoverPropOffset[number] | number;\n\nexport const directions = [...directionsStartCenter, ...directionsStartEdge];\n\nexport type Direction = typeof directions[number];\n\nexport type Position = { x: number; y: number } | undefined;\n\nexport type PositioningProps =\n | {\n anchorRef: React.RefObject<HTMLElement>;\n equalAnchorWidth?: boolean;\n position?: never;\n }\n | {\n anchorRef?: never;\n equalAnchorWidth?: never;\n position: Position;\n };\n\ntype ChildrenRenderProp = (direction: Direction) => React.ReactNode;\n\nexport type Props = PropsWithJsxAttributes<\n {\n direction?: Direction;\n spareDirection?: Direction;\n offset?: PopoverPropOffset;\n arrowOffset?: number;\n possibleDirections?: readonly Direction[];\n isInteractive?: boolean;\n children: React.ReactNode | ChildrenRenderProp;\n onClickOutside?: ClickOutsideHandler;\n onSetDirection?: (direction: Direction) => void;\n } & PositioningProps\n>;\n\nconst getOffset = (\n ref: React.RefObject<HTMLDivElement>,\n propOffset: PopoverPropOffset,\n) => {\n if (isNumber(propOffset)) {\n return propOffset;\n }\n\n if (isString(propOffset) && ref.current) {\n const cssVar = getComputedStyle(ref.current).getPropertyValue(\n `--space-${propOffset}`,\n );\n\n if (cssVar && /px$/.test(cssVar)) {\n return Number(cssVar.slice(0, cssVar.length - 2));\n }\n\n if (cssVar && /rem$/.test(cssVar)) {\n const fontSize = parseFloat(\n getComputedStyle(document.documentElement).fontSize,\n );\n const rem = Number(cssVar.slice(0, cssVar.length - 3));\n\n return fontSize * rem;\n }\n\n if (cssVar && /em$/.test(cssVar)) {\n const fontSize = parseFloat(getComputedStyle(ref.current).fontSize);\n const em = Number(cssVar.slice(0, cssVar.length - 2));\n\n return fontSize * em;\n }\n\n return 0;\n }\n\n return 0;\n};\n\nconst isRenderProp = (\n children: React.ReactNode | ChildrenRenderProp,\n): children is ChildrenRenderProp => typeof children === 'function';\n\n/**\n * Подписчик на PortalWithThemeProvider\n * получает рефы всех вложенных порталов в модалку\n * для дальнейшего исключения их из useClickOutside\n */\nconst ContextConsumer: React.FC<{\n onClickOutside?: (event: MouseEvent) => void;\n ignoreClicksInsideRefs?: ReadonlyArray<React.RefObject<HTMLElement>>;\n children: React.ReactNode;\n}> = ({ onClickOutside, children, ignoreClicksInsideRefs }) => {\n const { refs } = usePortalContext();\n\n useClickOutside({\n isActive: !!onClickOutside,\n ignoreClicksInsideRefs: [\n ...(ignoreClicksInsideRefs || []),\n ...(refs || []),\n ],\n handler: onClickOutside,\n });\n\n return children as React.ReactElement;\n};\n\nconst cnPopover = cn('Popover');\n\nexport const Popover = forwardRef<HTMLDivElement, Props>(\n (props, componentRef) => {\n const {\n children,\n direction: passedDirection = 'upCenter',\n offset: propOffset = 0,\n arrowOffset,\n possibleDirections = directions,\n isInteractive = true,\n onClickOutside,\n spareDirection = 'downStartLeft',\n style,\n className,\n position: passedPosition,\n anchorRef,\n equalAnchorWidth,\n onSetDirection,\n ...otherProps\n } = props;\n\n const ref = React.useRef<HTMLDivElement>(null);\n const { theme } = useTheme();\n\n const [anchorClientRect, setAnchorClientRect] = React.useState<\n DOMRect | undefined\n >();\n const { width, height } = useComponentSize(ref);\n const anchorSize = useComponentSize(anchorRef || { current: null });\n const previousDirectionRef = React.useRef<Direction | null>(null);\n const [bannedDirections, setBannedDirections] = React.useState<\n readonly Direction[]\n >([]);\n\n const resetBannedDirections = () => {\n setBannedDirections((state) => (state.length ? [] : state));\n previousDirectionRef.current = null;\n };\n\n const updateAnchorClientRect = () =>\n setAnchorClientRect(anchorRef?.current?.getBoundingClientRect());\n\n const offset = useMemo(\n () => getOffset(ref, propOffset),\n [propOffset, Boolean(ref.current)],\n );\n\n const { position, direction } = getComputedPositionAndDirection({\n contentSize: { width, height },\n viewportSize: {\n // Размер вьюпорта без скроллбаров\n width: document.documentElement.clientWidth,\n height: document.documentElement.clientHeight,\n },\n arrowOffset,\n offset,\n direction: passedDirection,\n possibleDirections,\n bannedDirections,\n position: anchorClientRect\n ? { x: anchorClientRect.left, y: anchorClientRect.top }\n : passedPosition,\n anchorSize,\n spareDirection,\n });\n\n useLayoutEffect(() => onSetDirection?.(direction), [direction]);\n\n useEffect(updateAnchorClientRect, [anchorSize]);\n\n usePopoverReposition({\n isActive: true,\n scrollAnchorRef: anchorRef || { current: null },\n onRequestReposition: () => {\n resetBannedDirections();\n updateAnchorClientRect();\n },\n });\n\n /**\n * Может возникнуть ситуация, когда перерасчет поповера всегда будет выдавать 2 направления\n * и бесконечно зацикливать себя. Для избежания таких кейсов мы запоминаем стороны,\n * которые не подошли, чтобы не возвращаться к ним и предотвратить бесконечный ререндер.\n * См. PopoverBannedPositionsStory\n */\n\n useLayoutEffect(() => {\n if (previousDirectionRef.current !== direction) {\n if (\n previousDirectionRef.current &&\n !bannedDirections.includes(previousDirectionRef.current)\n ) {\n setBannedDirections((state) =>\n previousDirectionRef.current\n ? [...state, previousDirectionRef.current]\n : state,\n );\n }\n previousDirectionRef.current = direction;\n }\n }, [direction]);\n\n // Сбрасываем при любом изменении пропсов, чтобы заново начать перебор направлений\n // Главное не сбрасывать при изменении размеров поповера, т.к. именно оно может вызвать бесконечный перебор\n\n useLayoutEffect(resetBannedDirections, [props]);\n\n return (\n <PortalWithTheme\n {...otherProps}\n preset={theme}\n className={cnPopover({ direction }, [className])}\n container={window.document.body}\n ref={useForkRef([ref, componentRef])}\n style={{\n ...style,\n ['--popover-top' as string]: `${\n (position?.y || 0) + window.scrollY\n }px`,\n ['--popover-left' as string]: `${\n (position?.x || 0) + window.scrollX\n }px`,\n [`--popover-width` as string]: equalAnchorWidth\n ? `${anchorSize.width}px`\n : undefined,\n [`--popover-pointer-events` as string]: isInteractive\n ? undefined\n : 'none',\n [`--popover-visibility` as string]: position ? undefined : 'hidden',\n }}\n >\n <ContextConsumer\n onClickOutside={onClickOutside}\n ignoreClicksInsideRefs={[ref, anchorRef || { current: null }]}\n >\n {isRenderProp(children) ? children(direction) : children}\n </ContextConsumer>\n </PortalWithTheme>\n );\n },\n);\n"],"mappings":"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"}
1
+ {"version":3,"file":"Popover.js","names":["React","forwardRef","useEffect","useLayoutEffect","useMemo","useClickOutside","useComponentSize","useForkRef","cn","isNumber","isString","PortalWithTheme","usePortalContext","useTheme","getComputedPositionAndDirection","usePopoverReposition","directionsStartCenter","directionsStartEdge","popoverPropOffset","directions","getOffset","ref","propOffset","current","cssVar","getComputedStyle","getPropertyValue","test","slice","length","fontSize","parseFloat","document","documentElement","rem","em","isRenderProp","children","ContextConsumer","onClickOutside","ignoreClicksInsideRefs","refs","isActive","handler","cnPopover","Popover","props","componentRef","direction","passedDirection","offset","arrowOffset","possibleDirections","isInteractive","spareDirection","style","className","passedPosition","position","anchorRef","equalAnchorWidth","onSetDirection","otherProps","useRef","theme","useState","anchorClientRect","setAnchorClientRect","width","height","anchorSize","previousDirectionRef","bannedDirections","setBannedDirections","resetBannedDirections","state","updateAnchorClientRect","getBoundingClientRect","contentSize","viewportSize","clientWidth","clientHeight","x","left","y","top","scrollAnchorRef","onRequestReposition","includes","window","body","scrollY","scrollX"],"sources":["../../../../../src/components/Popover/Popover.tsx"],"sourcesContent":["import './Popover.css';\n\nimport React, { forwardRef, useEffect, useLayoutEffect, useMemo } from 'react';\n\nimport {\n ClickOutsideHandler,\n useClickOutside,\n} from '../../hooks/useClickOutside/useClickOutside';\nimport { useComponentSize } from '../../hooks/useComponentSize/useComponentSize';\nimport { useForkRef } from '../../hooks/useForkRef/useForkRef';\nimport { cn } from '../../utils/bem';\nimport { isNumber, isString } from '../../utils/type-guards';\nimport { PropsWithJsxAttributes } from '../../utils/types/PropsWithJsxAttributes';\nimport {\n PortalWithTheme,\n usePortalContext,\n} from '../PortalWithTheme/PortalWithTheme';\nimport { useTheme } from '../Theme/Theme';\nimport { getComputedPositionAndDirection } from './helpers';\nimport { usePopoverReposition } from './usePopoverReposition';\n\nexport { usePopoverReposition };\n\n/**\n * Стороны упорядочены по приоритету:\n * Используется первая сторона, в которую смог вписаться поповер.\n */\nexport const directionsStartCenter = [\n 'downCenter',\n 'upCenter',\n\n 'downRight',\n 'downLeft',\n 'upRight',\n 'upLeft',\n\n 'leftUp',\n 'leftCenter',\n 'leftDown',\n\n 'rightUp',\n 'rightCenter',\n 'rightDown',\n] as const;\n\nexport const directionsStartEdge = [\n 'downStartLeft',\n 'upStartLeft',\n\n 'downStartRight',\n 'upStartRight',\n\n 'leftStartUp',\n 'leftStartDown',\n\n 'rightStartUp',\n 'rightStartDown',\n] as const;\n\nexport const popoverPropOffset = [\n '3xs',\n '2xs',\n 'xs',\n 's',\n 'm',\n 'l',\n 'xl',\n '2xl',\n '3xl',\n '4xl',\n '5xl',\n '6xl',\n] as const;\nexport type PopoverPropOffset = typeof popoverPropOffset[number] | number;\n\nexport const directions = [...directionsStartCenter, ...directionsStartEdge];\n\nexport type Direction = typeof directions[number];\n\nexport type Position = { x: number; y: number } | undefined;\n\nexport type PositioningProps =\n | {\n anchorRef: React.RefObject<HTMLElement>;\n equalAnchorWidth?: boolean;\n position?: never;\n }\n | {\n anchorRef?: never;\n equalAnchorWidth?: never;\n position: Position;\n };\n\ntype ChildrenRenderProp = (direction: Direction) => React.ReactNode;\n\nexport type Props = PropsWithJsxAttributes<\n {\n direction?: Direction;\n spareDirection?: Direction;\n offset?: PopoverPropOffset;\n arrowOffset?: number;\n possibleDirections?: readonly Direction[];\n isInteractive?: boolean;\n children: React.ReactNode | ChildrenRenderProp;\n onClickOutside?: ClickOutsideHandler;\n onSetDirection?: (direction: Direction) => void;\n } & PositioningProps\n>;\n\nconst getOffset = (\n ref: React.RefObject<HTMLDivElement>,\n propOffset: PopoverPropOffset,\n) => {\n if (isNumber(propOffset)) {\n return propOffset;\n }\n\n if (isString(propOffset) && ref.current) {\n const cssVar = getComputedStyle(ref.current).getPropertyValue(\n `--space-${propOffset}`,\n );\n\n if (cssVar && /px$/.test(cssVar)) {\n return Number(cssVar.slice(0, cssVar.length - 2));\n }\n\n if (cssVar && /rem$/.test(cssVar)) {\n const fontSize = parseFloat(\n getComputedStyle(document.documentElement).fontSize,\n );\n const rem = Number(cssVar.slice(0, cssVar.length - 3));\n\n return fontSize * rem;\n }\n\n if (cssVar && /em$/.test(cssVar)) {\n const fontSize = parseFloat(getComputedStyle(ref.current).fontSize);\n const em = Number(cssVar.slice(0, cssVar.length - 2));\n\n return fontSize * em;\n }\n\n return 0;\n }\n\n return 0;\n};\n\nconst isRenderProp = (\n children: React.ReactNode | ChildrenRenderProp,\n): children is ChildrenRenderProp => typeof children === 'function';\n\n/**\n * Подписчик на PortalWithThemeProvider\n * получает рефы всех вложенных порталов в модалку\n * для дальнейшего исключения их из useClickOutside\n */\nconst ContextConsumer: React.FC<{\n onClickOutside?: (event: MouseEvent) => void;\n ignoreClicksInsideRefs?: ReadonlyArray<React.RefObject<HTMLElement>>;\n children: React.ReactNode;\n}> = ({ onClickOutside, children, ignoreClicksInsideRefs }) => {\n const { refs } = usePortalContext();\n\n useClickOutside({\n isActive: !!onClickOutside,\n ignoreClicksInsideRefs: [\n ...(ignoreClicksInsideRefs || []),\n ...(refs || []),\n ],\n handler: onClickOutside,\n });\n\n return children as React.ReactElement;\n};\n\nconst cnPopover = cn('Popover');\n\nexport const Popover = forwardRef<HTMLDivElement, Props>(\n (props, componentRef) => {\n const {\n children,\n direction: passedDirection = 'upCenter',\n offset: propOffset = 0,\n arrowOffset,\n possibleDirections = directions,\n isInteractive = true,\n onClickOutside,\n spareDirection = 'downStartLeft',\n style,\n className,\n position: passedPosition,\n anchorRef,\n equalAnchorWidth,\n onSetDirection,\n ...otherProps\n } = props;\n\n const ref = React.useRef<HTMLDivElement>(null);\n const { theme } = useTheme();\n\n const [anchorClientRect, setAnchorClientRect] = React.useState<\n DOMRect | undefined\n >();\n const { width, height } = useComponentSize(ref);\n const anchorSize = useComponentSize(anchorRef || { current: null });\n const previousDirectionRef = React.useRef<Direction | null>(null);\n const [bannedDirections, setBannedDirections] = React.useState<\n readonly Direction[]\n >([]);\n\n const resetBannedDirections = () => {\n setBannedDirections((state) => (state.length ? [] : state));\n previousDirectionRef.current = null;\n };\n\n const updateAnchorClientRect = () =>\n setAnchorClientRect(anchorRef?.current?.getBoundingClientRect());\n\n const offset = useMemo(\n () => getOffset(ref, propOffset),\n [propOffset, Boolean(ref.current)],\n );\n\n const { position, direction } = getComputedPositionAndDirection({\n contentSize: { width, height },\n viewportSize: {\n // Размер вьюпорта без скроллбаров\n width: document.documentElement.clientWidth,\n height: document.documentElement.clientHeight,\n },\n arrowOffset,\n offset,\n direction: passedDirection,\n possibleDirections,\n bannedDirections,\n position: anchorClientRect\n ? { x: anchorClientRect.left, y: anchorClientRect.top }\n : passedPosition,\n anchorSize,\n spareDirection,\n });\n\n useLayoutEffect(() => onSetDirection?.(direction), [direction]);\n\n useEffect(updateAnchorClientRect, [anchorSize]);\n\n usePopoverReposition({\n isActive: true,\n scrollAnchorRef: anchorRef || { current: null },\n onRequestReposition: () => {\n resetBannedDirections();\n updateAnchorClientRect();\n },\n });\n\n /**\n * Может возникнуть ситуация, когда перерасчет поповера всегда будет выдавать 2 направления\n * и бесконечно зацикливать себя. Для избежания таких кейсов мы запоминаем стороны,\n * которые не подошли, чтобы не возвращаться к ним и предотвратить бесконечный ререндер.\n * См. PopoverBannedPositionsStory\n */\n\n useLayoutEffect(() => {\n if (previousDirectionRef.current !== direction) {\n if (\n previousDirectionRef.current &&\n !bannedDirections.includes(previousDirectionRef.current) &&\n !bannedDirections.includes(direction) &&\n direction !== spareDirection\n ) {\n setBannedDirections((state) =>\n previousDirectionRef.current\n ? [...state, previousDirectionRef.current]\n : state,\n );\n }\n previousDirectionRef.current = direction;\n }\n }, [direction]);\n\n // Сбрасываем при любом изменении пропсов, чтобы заново начать перебор направлений\n // Главное не сбрасывать при изменении размеров поповера, т.к. именно оно может вызвать бесконечный перебор\n\n useLayoutEffect(resetBannedDirections, [props]);\n\n return (\n <PortalWithTheme\n {...otherProps}\n preset={theme}\n className={cnPopover({ direction }, [className])}\n container={window.document.body}\n ref={useForkRef([ref, componentRef])}\n style={{\n ...style,\n ['--popover-top' as string]: `${\n (position?.y || 0) + window.scrollY\n }px`,\n ['--popover-left' as string]: `${\n (position?.x || 0) + window.scrollX\n }px`,\n [`--popover-width` as string]: equalAnchorWidth\n ? `${anchorSize.width}px`\n : undefined,\n [`--popover-pointer-events` as string]: isInteractive\n ? undefined\n : 'none',\n [`--popover-visibility` as string]: position ? undefined : 'hidden',\n }}\n >\n <ContextConsumer\n onClickOutside={onClickOutside}\n ignoreClicksInsideRefs={[ref, anchorRef || { current: null }]}\n >\n {isRenderProp(children) ? children(direction) : children}\n </ContextConsumer>\n </PortalWithTheme>\n );\n },\n);\n"],"mappings":"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"}
@@ -1 +1 @@
1
- .ProgressStepBarItem{align-items:flex-start;display:inline-flex;flex:1;height:100%;position:relative}.ProgressStepBarItem_direction_horizontal{flex-direction:column}.ProgressStepBarItem_direction_horizontal .ProgressStepBarItem-Point_size_xs{margin-bottom:var(--space-2xs)}.ProgressStepBarItem_direction_horizontal .ProgressStepBarItem-Point_size_m,.ProgressStepBarItem_direction_horizontal .ProgressStepBarItem-Point_size_s{margin-bottom:var(--space-xs)}.ProgressStepBarItem_direction_vertical{flex-direction:row}.ProgressStepBarItem_direction_vertical .ProgressStepBarItem-Point{margin-right:var(--space-xs)}.ProgressStepBarItem_direction_vertical .ProgressStepBarItem-Content_size_xs{margin-top:-4px}.ProgressStepBarItem_size_xs{--progress-step-bar-item-point-size:var(--space-xs);--progress-step-bar-item-label-margin:var(--space-2xs)}.ProgressStepBarItem_size_s{--progress-step-bar-item-point-size:var(--space-m);--progress-step-bar-item-label-margin:var(--space-xs)}.ProgressStepBarItem_size_m{--progress-step-bar-item-point-size:var(--space-xl);--progress-step-bar-item-label-margin:var(--space-xs)}.ProgressStepBarItem_position_start{flex:1}.ProgressStepBarItem_position_start .ProgressStepBarItem-Content,.ProgressStepBarItem_position_start.ProgressStepBarItem_direction_horizontal{align-items:flex-start;text-align:left}.ProgressStepBarItem_position_center{flex:2}.ProgressStepBarItem_position_center .ProgressStepBarItemr-Content,.ProgressStepBarItem_position_center.ProgressStepBarItem_direction_horizontal{align-items:center;text-align:center}.ProgressStepBarItem_position_end{flex:1}.ProgressStepBarItem_position_end .ProgressStepBarItem-Content,.ProgressStepBarItem_position_end.ProgressStepBarItem_direction_horizontal{align-items:flex-end;text-align:right}.ProgressStepBarItem_status_system{--progress-step-bar-item-point-background:var(--color-bg-system);--progress-step-bar-item-point-content-color:var(--color-typo-secondary)}.ProgressStepBarItem_status_normal{--progress-step-bar-item-point-background:var(--color-bg-normal);--progress-step-bar-item-point-content-color:var(--color-bg-default)}.ProgressStepBarItem_status_success{--progress-step-bar-item-point-background:var(--color-bg-success);--progress-step-bar-item-point-content-color:var(--color-bg-default)}.ProgressStepBarItem_status_warning{--progress-step-bar-item-point-background:var(--color-bg-warning);--progress-step-bar-item-point-content-color:var(--color-bg-default)}.ProgressStepBarItem_status_alert{--progress-step-bar-item-point-background:var(--color-bg-alert);--progress-step-bar-item-point-content-color:var(--color-bg-default)}.ProgressStepBarItem .Icon,.ProgressStepBarItem .ProgressStepBarItem-PointText{color:var(--progress-step-bar-item-point-content-color)}.ProgressStepBarItem .ProgressSpin{stroke:var(--progress-step-bar-item-point-content-color)}.ProgressStepBarItem-Point{align-items:center;background-color:var(--progress-step-bar-item-point-background);border:none;border-radius:calc(var(--progress-step-bar-item-point-size)*.5);color:var(--color-bg-default);display:flex;justify-content:center;margin:0;min-height:var(--progress-step-bar-item-point-size);min-width:var(--progress-step-bar-item-point-size);padding:0;transition:background-color .3s}.ProgressStepBarItem-Point[type*=button]{cursor:pointer}.ProgressStepBarItem-PointText{color:var(--color-typo-secondary);transition:color .3s}.ProgressStepBarItem-Content_bottomOffset,.ProgressStepBarItem-Label{margin-bottom:var(--progress-step-bar-item-label-margin)}
1
+ .ProgressStepBarItem{align-items:flex-start;display:inline-flex;flex:1;height:100%;position:relative}.ProgressStepBarItem_direction_horizontal{flex-direction:column}.ProgressStepBarItem_direction_horizontal .ProgressStepBarItem-Point_size_xs{margin-bottom:var(--space-2xs)}.ProgressStepBarItem_direction_horizontal .ProgressStepBarItem-Point_size_m,.ProgressStepBarItem_direction_horizontal .ProgressStepBarItem-Point_size_s{margin-bottom:var(--space-xs)}.ProgressStepBarItem_direction_vertical{flex-direction:row}.ProgressStepBarItem_direction_vertical .ProgressStepBarItem-Point{margin-right:var(--space-xs)}.ProgressStepBarItem_direction_vertical .ProgressStepBarItem-Content_size_xs{margin-top:-4px}.ProgressStepBarItem_size_xs{--progress-step-bar-item-point-size:var(--space-xs);--progress-step-bar-item-label-margin:var(--space-2xs)}.ProgressStepBarItem_size_s{--progress-step-bar-item-point-size:var(--space-m);--progress-step-bar-item-label-margin:var(--space-xs)}.ProgressStepBarItem_size_m{--progress-step-bar-item-point-size:var(--space-xl);--progress-step-bar-item-label-margin:var(--space-xs)}.ProgressStepBarItem_position_start{flex:1}.ProgressStepBarItem_position_start .ProgressStepBarItem-Content,.ProgressStepBarItem_position_start.ProgressStepBarItem_direction_horizontal{align-items:flex-start;text-align:left}.ProgressStepBarItem_position_center{flex:2}.ProgressStepBarItem_position_center .ProgressStepBarItemr-Content,.ProgressStepBarItem_position_center.ProgressStepBarItem_direction_horizontal{align-items:center;text-align:center}.ProgressStepBarItem_position_end{flex:1}.ProgressStepBarItem_position_end .ProgressStepBarItem-Content,.ProgressStepBarItem_position_end.ProgressStepBarItem_direction_horizontal{align-items:flex-end;text-align:right}.ProgressStepBarItem_status_system{--progress-step-bar-item-point-background:var(--color-bg-system);--progress-step-bar-item-point-content-color:var(--color-typo-secondary)}.ProgressStepBarItem_status_normal{--progress-step-bar-item-point-background:var(--color-bg-normal);--progress-step-bar-item-point-content-color:var(--color-bg-default)}.ProgressStepBarItem_status_success{--progress-step-bar-item-point-background:var(--color-bg-success);--progress-step-bar-item-point-content-color:var(--color-bg-default)}.ProgressStepBarItem_status_warning{--progress-step-bar-item-point-background:var(--color-bg-warning);--progress-step-bar-item-point-content-color:var(--color-bg-default)}.ProgressStepBarItem_status_alert{--progress-step-bar-item-point-background:var(--color-bg-alert);--progress-step-bar-item-point-content-color:var(--color-bg-default)}.ProgressStepBarItem .ProgressStepBarItem-PointIcon,.ProgressStepBarItem .ProgressStepBarItem-PointText{color:var(--progress-step-bar-item-point-content-color)}.ProgressStepBarItem .ProgressSpin{stroke:var(--progress-step-bar-item-point-content-color)}.ProgressStepBarItem-Point{align-items:center;background-color:var(--progress-step-bar-item-point-background);border:none;border-radius:calc(var(--progress-step-bar-item-point-size)*.5);color:var(--color-bg-default);display:flex;justify-content:center;margin:0;min-height:var(--progress-step-bar-item-point-size);min-width:var(--progress-step-bar-item-point-size);padding:0;transition:background-color .3s}.ProgressStepBarItem-Point_pointer{cursor:pointer}.ProgressStepBarItem-PointText{color:var(--color-typo-secondary);transition:color .3s}.ProgressStepBarItem-Content_bottomOffset,.ProgressStepBarItem-Label{margin-bottom:var(--progress-step-bar-item-label-margin)}
@@ -1,2 +1,2 @@
1
- import _slicedToArray from"@babel/runtime/helpers/slicedToArray";import _objectWithoutProperties from"@babel/runtime/helpers/objectWithoutProperties";var _excluded=["content","tooltipContent","label","point","status","progress","direction","size","pointRef","onClick","position","tooltipZIndex"];import"./ProgressStepBarItem.css";import React,{useRef}from"react";import{useFlag}from"../../../hooks/useFlag/useFlag";import{cnMixFocus}from"../../../mixs/MixFocus/MixFocus";import{cn}from"../../../utils/bem";import{ProgressSpin}from"../../ProgressSpin/ProgressSpin";import{Text}from"../../Text/Text";import{Tooltip}from"../../Tooltip/Tooltip";import{propPositionDefault,propStatusDefault}from"../helpers";var cnProgressStepBarItem=cn("ProgressStepBarItem"),possibleVerticalDirections=["leftCenter","rightCenter","rightUp","downCenter"],possibleHorizontalDirections=["downCenter","upCenter","downStartLeft","downStartRight"],renderPointContent=function(a,b,c){if(c)return React.createElement(ProgressSpin,{size:b});if(!a)return null;if("number"==typeof a)return React.createElement(Text,{className:cnProgressStepBarItem("PointText"),size:"s"===b?"2xs":"xs",weight:"bold"},a);return React.createElement(a,{size:"xs"})};export var ProgressStepBarItem=React.forwardRef(function(a,b){var c=a.content,d=a.tooltipContent,e=a.label,f=a.point,g=a.status,h=a.progress,i=a.direction,j=a.size,k=a.pointRef,l=a.onClick,m=a.position,n=void 0===m?propPositionDefault:m,o=a.tooltipZIndex,p=_objectWithoutProperties(a,_excluded),q=useFlag(),r=_slicedToArray(q,2),s=r[0],t=r[1],u=t.on,v=t.off,w=useRef(null),x={onMouseEnter:u,onMouseLeave:v,className:cnProgressStepBarItem("Point",{size:j},[cnMixFocus()]),children:"xs"!==j&&renderPointContent(f,j,h)};return React.createElement(React.Fragment,null,React.createElement("div",Object.assign({ref:b,className:cnProgressStepBarItem({direction:i,position:n,status:g||propStatusDefault,size:j})},p),l?React.createElement("button",Object.assign({type:"button"},{ref:k,onClick:l},x)):React.createElement("div",Object.assign({},x,{ref:k})),(e||c)&&React.createElement("div",{className:cnProgressStepBarItem("Content",{bottomOffset:!!c})},e&&React.createElement(Text,{className:cnProgressStepBarItem("Label"),ref:w,size:j,onMouseEnter:u,onMouseLeave:v,lineHeight:"s"===j?"xs":j,view:"primary"},e),c)),d&&s&&React.createElement(Tooltip,{anchorRef:e||c?w:k,className:cnProgressStepBarItem("Tooltip"),direction:"horizontal"===i?"downCenter":"leftUp",style:{zIndex:o},possibleDirections:"horizontal"===i?possibleHorizontalDirections:possibleVerticalDirections},d))});
1
+ import _slicedToArray from"@babel/runtime/helpers/slicedToArray";import _objectWithoutProperties from"@babel/runtime/helpers/objectWithoutProperties";var _excluded=["content","tooltipContent","label","point","status","progress","direction","size","pointRef","onClick","position","tooltipZIndex"];import"./ProgressStepBarItem.css";import React,{useRef}from"react";import{useForkRef}from"../../../hooks/useForkRef";import{useMouseLeave}from"../../../hooks/useMouseLeave";import{useFlag}from"../../../hooks/useFlag/useFlag";import{cnMixFocus}from"../../../mixs/MixFocus/MixFocus";import{cn}from"../../../utils/bem";import{ProgressSpin}from"../../ProgressSpin/ProgressSpin";import{Text}from"../../Text/Text";import{Tooltip}from"../../Tooltip/Tooltip";import{propPositionDefault,propStatusDefault}from"../helpers";var cnProgressStepBarItem=cn("ProgressStepBarItem"),possibleVerticalDirections=["leftCenter","rightCenter","rightUp","downCenter"],possibleHorizontalDirections=["downCenter","upCenter","downStartLeft","downStartRight"],renderPointContent=function(a,b,c){if(c)return React.createElement(ProgressSpin,{size:b});if(!a)return null;if("number"==typeof a)return React.createElement(Text,{className:cnProgressStepBarItem("PointText"),size:"s"===b?"2xs":"xs",weight:"bold"},a);return React.createElement(a,{className:cnProgressStepBarItem("PointIcon"),size:"xs"})};export var ProgressStepBarItem=React.forwardRef(function(a,b){var c=a.content,d=a.tooltipContent,e=a.label,f=a.point,g=a.status,h=a.progress,i=a.direction,j=a.size,k=a.pointRef,l=a.onClick,m=a.position,n=void 0===m?propPositionDefault:m,o=a.tooltipZIndex,p=_objectWithoutProperties(a,_excluded),q=useFlag(),r=_slicedToArray(q,2),s=r[0],t=r[1],u=useRef(null),v=useRef(null),w=useRef(null),x=useForkRef([w,k]),y={onMouseEnter:t.on,className:cnProgressStepBarItem("Point",{size:j,pointer:!!l},[l?cnMixFocus():void 0]),children:"xs"!==j&&renderPointContent(f,j,h),ref:x,onClick:l};return useMouseLeave({isActive:s,refs:[u,w,v],handler:t.off,debounce:100}),React.createElement(React.Fragment,null,React.createElement("div",Object.assign({ref:b,className:cnProgressStepBarItem({direction:i,position:n,status:g||propStatusDefault,size:j})},p),React.createElement("button",Object.assign({tabIndex:-1,type:"button"},y)),(e||c)&&React.createElement("div",{className:cnProgressStepBarItem("Content",{bottomOffset:!!c})},e&&React.createElement(Text,{className:cnProgressStepBarItem("Label"),ref:u,size:j,onMouseEnter:t.on,lineHeight:"s"===j?"xs":j,view:"primary"},e),c)),d&&s&&React.createElement(Tooltip,{ref:v,anchorRef:e||c?u:w,className:cnProgressStepBarItem("Tooltip"),direction:"horizontal"===i?"downCenter":"leftUp",style:{zIndex:o},isInteractive:!0,possibleDirections:"horizontal"===i?possibleHorizontalDirections:possibleVerticalDirections},d))});
2
2
  //# sourceMappingURL=ProgressStepBarItem.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"ProgressStepBarItem.js","names":["React","useRef","useFlag","cnMixFocus","cn","ProgressSpin","Text","Tooltip","propPositionDefault","propStatusDefault","cnProgressStepBarItem","possibleVerticalDirections","possibleHorizontalDirections","renderPointContent","point","size","progress","ProgressStepBarItem","forwardRef","props","ref","content","tooltipContent","label","status","direction","pointRef","onClick","position","tooltipZIndex","otherProps","isTooltipVisible","setTooltipVisible","on","setTooltipUnVisible","off","anchorRef","pointProps","onMouseEnter","onMouseLeave","className","children","bottomOffset","zIndex"],"sources":["../../../../../../src/components/ProgressStepBar/ProgressStepBarItem/ProgressStepBarItem.tsx"],"sourcesContent":["import './ProgressStepBarItem.css';\n\nimport React, { useRef } from 'react';\n\nimport { useFlag } from '../../../hooks/useFlag/useFlag';\nimport { IconComponent } from '../../../icons/Icon/Icon';\nimport { cnMixFocus } from '../../../mixs/MixFocus/MixFocus';\nimport { cn } from '../../../utils/bem';\nimport { Direction } from '../../Popover/Popover';\nimport { ProgressSpin } from '../../ProgressSpin/ProgressSpin';\nimport { Text } from '../../Text/Text';\nimport { Tooltip } from '../../Tooltip/Tooltip';\nimport {\n PointNumbersMap,\n ProgressStepBarItemComponent,\n propPositionDefault,\n propStatusDefault,\n} from '../helpers';\n\nconst cnProgressStepBarItem = cn('ProgressStepBarItem');\n\nconst possibleVerticalDirections: Direction[] = [\n 'leftCenter',\n 'rightCenter',\n 'rightUp',\n 'downCenter',\n];\nconst possibleHorizontalDirections: Direction[] = [\n 'downCenter',\n 'upCenter',\n 'downStartLeft',\n 'downStartRight',\n];\n\nconst renderPointContent = (\n point: PointNumbersMap | IconComponent | undefined,\n size: 'm' | 's',\n progress: boolean | undefined,\n) => {\n if (progress) return <ProgressSpin size={size} />;\n if (!point) return null;\n\n if (typeof point === 'number') {\n return (\n <Text\n className={cnProgressStepBarItem('PointText')}\n size={size === 's' ? '2xs' : 'xs'}\n weight=\"bold\"\n >\n {point}\n </Text>\n );\n }\n\n const Icon = point;\n\n return <Icon size=\"xs\" />;\n};\n\nexport const ProgressStepBarItem: ProgressStepBarItemComponent =\n React.forwardRef((props, ref) => {\n const {\n content,\n tooltipContent,\n label,\n point,\n status,\n progress,\n direction,\n size,\n pointRef,\n onClick,\n position = propPositionDefault,\n tooltipZIndex,\n ...otherProps\n } = props;\n\n const [\n isTooltipVisible,\n { on: setTooltipVisible, off: setTooltipUnVisible },\n ] = useFlag();\n\n const anchorRef = useRef<HTMLDivElement>(null);\n\n const pointProps = {\n onMouseEnter: setTooltipVisible,\n onMouseLeave: setTooltipUnVisible,\n className: cnProgressStepBarItem(\n 'Point',\n {\n size,\n },\n [cnMixFocus()],\n ),\n children: size !== 'xs' && renderPointContent(point, size, progress),\n };\n\n const pointButtonProps = {\n ref: pointRef as React.RefObject<HTMLButtonElement>,\n onClick,\n };\n\n const pointDivButton = {\n ref: pointRef as React.RefObject<HTMLDivElement>,\n };\n\n return (\n <>\n <div\n ref={ref}\n className={cnProgressStepBarItem({\n direction,\n position,\n status: status || propStatusDefault,\n size,\n })}\n {...otherProps}\n >\n {onClick ? (\n <button type=\"button\" {...pointButtonProps} {...pointProps} />\n ) : (\n <div {...pointProps} {...pointDivButton} />\n )}\n {(label || content) && (\n <div\n className={cnProgressStepBarItem('Content', {\n bottomOffset: !!content,\n })}\n >\n {label && (\n <Text\n className={cnProgressStepBarItem('Label')}\n ref={anchorRef}\n size={size}\n onMouseEnter={setTooltipVisible}\n onMouseLeave={setTooltipUnVisible}\n lineHeight={size === 's' ? 'xs' : size}\n view=\"primary\"\n >\n {label}\n </Text>\n )}\n {content}\n </div>\n )}\n </div>\n {tooltipContent && isTooltipVisible && (\n <Tooltip\n anchorRef={label || content ? anchorRef : pointRef}\n className={cnProgressStepBarItem('Tooltip')}\n direction={direction === 'horizontal' ? 'downCenter' : 'leftUp'}\n style={{ zIndex: tooltipZIndex }}\n possibleDirections={\n direction === 'horizontal'\n ? possibleHorizontalDirections\n : possibleVerticalDirections\n }\n >\n {tooltipContent}\n </Tooltip>\n )}\n </>\n );\n });\n"],"mappings":"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"}
1
+ {"version":3,"file":"ProgressStepBarItem.js","names":["React","useRef","useForkRef","useMouseLeave","useFlag","cnMixFocus","cn","ProgressSpin","Text","Tooltip","propPositionDefault","propStatusDefault","cnProgressStepBarItem","possibleVerticalDirections","possibleHorizontalDirections","renderPointContent","point","size","progress","ProgressStepBarItem","forwardRef","props","ref","content","tooltipContent","label","status","direction","pointRefProp","pointRef","onClick","position","tooltipZIndex","otherProps","isTooltipVisible","setTooltipVisible","anchorRef","tooltipRef","pointForkedRef","pointProps","onMouseEnter","on","className","pointer","children","isActive","refs","handler","off","debounce","bottomOffset","zIndex"],"sources":["../../../../../../src/components/ProgressStepBar/ProgressStepBarItem/ProgressStepBarItem.tsx"],"sourcesContent":["import './ProgressStepBarItem.css';\n\nimport React, { useRef } from 'react';\n\nimport { useForkRef } from '##/hooks/useForkRef';\nimport { useMouseLeave } from '##/hooks/useMouseLeave';\n\nimport { useFlag } from '../../../hooks/useFlag/useFlag';\nimport { IconComponent } from '../../../icons/Icon/Icon';\nimport { cnMixFocus } from '../../../mixs/MixFocus/MixFocus';\nimport { cn } from '../../../utils/bem';\nimport { Direction } from '../../Popover/Popover';\nimport { ProgressSpin } from '../../ProgressSpin/ProgressSpin';\nimport { Text } from '../../Text/Text';\nimport { Tooltip } from '../../Tooltip/Tooltip';\nimport {\n PointNumbersMap,\n ProgressStepBarItemComponent,\n propPositionDefault,\n propStatusDefault,\n} from '../helpers';\n\nconst cnProgressStepBarItem = cn('ProgressStepBarItem');\n\nconst possibleVerticalDirections: Direction[] = [\n 'leftCenter',\n 'rightCenter',\n 'rightUp',\n 'downCenter',\n];\nconst possibleHorizontalDirections: Direction[] = [\n 'downCenter',\n 'upCenter',\n 'downStartLeft',\n 'downStartRight',\n];\n\nconst renderPointContent = (\n point: PointNumbersMap | IconComponent | undefined,\n size: 'm' | 's',\n progress: boolean | undefined,\n) => {\n if (progress) return <ProgressSpin size={size} />;\n if (!point) return null;\n\n if (typeof point === 'number') {\n return (\n <Text\n className={cnProgressStepBarItem('PointText')}\n size={size === 's' ? '2xs' : 'xs'}\n weight=\"bold\"\n >\n {point}\n </Text>\n );\n }\n\n const Icon = point;\n\n return <Icon className={cnProgressStepBarItem('PointIcon')} size=\"xs\" />;\n};\n\nexport const ProgressStepBarItem: ProgressStepBarItemComponent =\n React.forwardRef((props, ref) => {\n const {\n content,\n tooltipContent,\n label,\n point,\n status,\n progress,\n direction,\n size,\n pointRef: pointRefProp,\n onClick,\n position = propPositionDefault,\n tooltipZIndex,\n ...otherProps\n } = props;\n\n const [isTooltipVisible, setTooltipVisible] = useFlag();\n\n const anchorRef = useRef<HTMLDivElement>(null);\n const tooltipRef = useRef<HTMLDivElement>(null);\n const pointRef = useRef<HTMLButtonElement>(null);\n\n const pointForkedRef = useForkRef([pointRef, pointRefProp]);\n\n const pointProps = {\n onMouseEnter: setTooltipVisible.on,\n className: cnProgressStepBarItem(\n 'Point',\n {\n size,\n pointer: !!onClick,\n },\n [onClick ? cnMixFocus() : undefined],\n ),\n children: size !== 'xs' && renderPointContent(point, size, progress),\n ref: pointForkedRef,\n onClick,\n };\n\n useMouseLeave({\n isActive: isTooltipVisible,\n refs: [anchorRef, pointRef, tooltipRef],\n handler: setTooltipVisible.off,\n debounce: 100,\n });\n\n return (\n <>\n <div\n ref={ref}\n className={cnProgressStepBarItem({\n direction,\n position,\n status: status || propStatusDefault,\n size,\n })}\n {...otherProps}\n >\n <button tabIndex={-1} type=\"button\" {...pointProps} />\n {(label || content) && (\n <div\n className={cnProgressStepBarItem('Content', {\n bottomOffset: !!content,\n })}\n >\n {label && (\n <Text\n className={cnProgressStepBarItem('Label')}\n ref={anchorRef}\n size={size}\n onMouseEnter={setTooltipVisible.on}\n lineHeight={size === 's' ? 'xs' : size}\n view=\"primary\"\n >\n {label}\n </Text>\n )}\n {content}\n </div>\n )}\n </div>\n {tooltipContent && isTooltipVisible && (\n <Tooltip\n ref={tooltipRef}\n anchorRef={label || content ? anchorRef : pointRef}\n className={cnProgressStepBarItem('Tooltip')}\n direction={direction === 'horizontal' ? 'downCenter' : 'leftUp'}\n style={{ zIndex: tooltipZIndex }}\n isInteractive\n possibleDirections={\n direction === 'horizontal'\n ? possibleHorizontalDirections\n : possibleVerticalDirections\n }\n >\n {tooltipContent}\n </Tooltip>\n )}\n </>\n );\n });\n"],"mappings":"wSAAA,kCAEA,MAAOA,MAAP,EAAgBC,MAAhB,KAA8B,OAA9B,CAEA,OAASC,UAAT,iCACA,OAASC,aAAT,oCAEA,OAASC,OAAT,sCAEA,OAASC,UAAT,uCACA,OAASC,EAAT,0BAEA,OAASC,YAAT,uCACA,OAASC,IAAT,uBACA,OAASC,OAAT,6BACA,OAGEC,mBAHF,CAIEC,iBAJF,kB,GAOMC,sBAAqB,CAAGN,EAAE,CAAC,qBAAD,C,CAE1BO,0BAAuC,CAAG,CAC9C,YAD8C,CAE9C,aAF8C,CAG9C,SAH8C,CAI9C,YAJ8C,C,CAM1CC,4BAAyC,CAAG,CAChD,YADgD,CAEhD,UAFgD,CAGhD,eAHgD,CAIhD,gBAJgD,C,CAO5CC,kBAAkB,CAAG,SACzBC,CADyB,CAEzBC,CAFyB,CAGzBC,CAHyB,CAItB,CACH,GAAIA,CAAJ,CAAc,MAAO,qBAAC,YAAD,EAAc,IAAI,CAAED,CAApB,EAAP,CACd,GAAI,CAACD,CAAL,CAAY,MAAO,KAAP,CAEZ,GAAqB,QAAjB,QAAOA,EAAX,CACE,MACE,qBAAC,IAAD,EACE,SAAS,CAAEJ,qBAAqB,CAAC,WAAD,CADlC,CAEE,IAAI,CAAW,GAAT,GAAAK,CAAI,CAAW,KAAX,CAAmB,IAF/B,CAGE,MAAM,CAAC,MAHT,EAKGD,CALH,CADF,CAaF,MAAO,qBAFMA,CAEN,EAAM,SAAS,CAAEJ,qBAAqB,CAAC,WAAD,CAAtC,CAAqD,IAAI,CAAC,IAA1D,EACR,C,CAED,MAAO,IAAMO,oBAAiD,CAC5DnB,KAAK,CAACoB,UAAN,CAAiB,SAACC,CAAD,CAAQC,CAAR,CAAgB,IAE7BC,EAF6B,CAe3BF,CAf2B,CAE7BE,OAF6B,CAG7BC,CAH6B,CAe3BH,CAf2B,CAG7BG,cAH6B,CAI7BC,CAJ6B,CAe3BJ,CAf2B,CAI7BI,KAJ6B,CAK7BT,CAL6B,CAe3BK,CAf2B,CAK7BL,KAL6B,CAM7BU,CAN6B,CAe3BL,CAf2B,CAM7BK,MAN6B,CAO7BR,CAP6B,CAe3BG,CAf2B,CAO7BH,QAP6B,CAQ7BS,CAR6B,CAe3BN,CAf2B,CAQ7BM,SAR6B,CAS7BV,CAT6B,CAe3BI,CAf2B,CAS7BJ,IAT6B,CAUnBW,CAVmB,CAe3BP,CAf2B,CAU7BQ,QAV6B,CAW7BC,CAX6B,CAe3BT,CAf2B,CAW7BS,OAX6B,GAe3BT,CAf2B,CAY7BU,QAZ6B,CAY7BA,CAZ6B,YAYlBrB,mBAZkB,GAa7BsB,CAb6B,CAe3BX,CAf2B,CAa7BW,aAb6B,CAc1BC,CAd0B,0BAe3BZ,CAf2B,cAiBejB,OAAO,EAjBtB,uBAiBxB8B,CAjBwB,MAiBNC,CAjBM,MAmBzBC,CAAS,CAAGnC,MAAM,CAAiB,IAAjB,CAnBO,CAoBzBoC,CAAU,CAAGpC,MAAM,CAAiB,IAAjB,CApBM,CAqBzB4B,CAAQ,CAAG5B,MAAM,CAAoB,IAApB,CArBQ,CAuBzBqC,CAAc,CAAGpC,UAAU,CAAC,CAAC2B,CAAD,CAAWD,CAAX,CAAD,CAvBF,CAyBzBW,CAAU,CAAG,CACjBC,YAAY,CAAEL,CAAiB,CAACM,EADf,CAEjBC,SAAS,CAAE9B,qBAAqB,CAC9B,OAD8B,CAE9B,CACEK,IAAI,CAAJA,CADF,CAEE0B,OAAO,CAAE,CAAC,CAACb,CAFb,CAF8B,CAM9B,CAACA,CAAO,CAAGzB,UAAU,EAAb,OAAR,CAN8B,CAFf,CAUjBuC,QAAQ,CAAW,IAAT,GAAA3B,CAAI,EAAaF,kBAAkB,CAACC,CAAD,CAAQC,CAAR,CAAcC,CAAd,CAV5B,CAWjBI,GAAG,CAAEgB,CAXY,CAYjBR,OAAO,CAAPA,CAZiB,CAzBY,CA+C/B,MAPA3B,cAAa,CAAC,CACZ0C,QAAQ,CAAEX,CADE,CAEZY,IAAI,CAAE,CAACV,CAAD,CAAYP,CAAZ,CAAsBQ,CAAtB,CAFM,CAGZU,OAAO,CAAEZ,CAAiB,CAACa,GAHf,CAIZC,QAAQ,CAAE,GAJE,CAAD,CAOb,CACE,wCACE,yCACE,GAAG,CAAE3B,CADP,CAEE,SAAS,CAAEV,qBAAqB,CAAC,CAC/Be,SAAS,CAATA,CAD+B,CAE/BI,QAAQ,CAARA,CAF+B,CAG/BL,MAAM,CAAEA,CAAM,EAAIf,iBAHa,CAI/BM,IAAI,CAAJA,CAJ+B,CAAD,CAFlC,EAQMgB,CARN,EAUE,4CAAQ,QAAQ,CAAE,CAAC,CAAnB,CAAsB,IAAI,CAAC,QAA3B,EAAwCM,CAAxC,EAVF,CAWG,CAACd,CAAK,EAAIF,CAAV,GACC,2BACE,SAAS,CAAEX,qBAAqB,CAAC,SAAD,CAAY,CAC1CsC,YAAY,CAAE,CAAC,CAAC3B,CAD0B,CAAZ,CADlC,EAKGE,CAAK,EACJ,oBAAC,IAAD,EACE,SAAS,CAAEb,qBAAqB,CAAC,OAAD,CADlC,CAEE,GAAG,CAAEwB,CAFP,CAGE,IAAI,CAAEnB,CAHR,CAIE,YAAY,CAAEkB,CAAiB,CAACM,EAJlC,CAKE,UAAU,CAAW,GAAT,GAAAxB,CAAI,CAAW,IAAX,CAAkBA,CALpC,CAME,IAAI,CAAC,SANP,EAQGQ,CARH,CANJ,CAiBGF,CAjBH,CAZJ,CADF,CAkCGC,CAAc,EAAIU,CAAlB,EACC,oBAAC,OAAD,EACE,GAAG,CAAEG,CADP,CAEE,SAAS,CAAEZ,CAAK,EAAIF,CAAT,CAAmBa,CAAnB,CAA+BP,CAF5C,CAGE,SAAS,CAAEjB,qBAAqB,CAAC,SAAD,CAHlC,CAIE,SAAS,CAAgB,YAAd,GAAAe,CAAS,CAAoB,YAApB,CAAmC,QAJzD,CAKE,KAAK,CAAE,CAAEwB,MAAM,CAAEnB,CAAV,CALT,CAME,aAAa,GANf,CAOE,kBAAkB,CACF,YAAd,GAAAL,CAAS,CACLb,4BADK,CAELD,0BAVR,EAaGW,CAbH,CAnCJ,CAqDH,CArGD,CADK"}
@@ -73,7 +73,7 @@ export declare type ProgressStepBarItemProps = {
73
73
  direction: PropDirection;
74
74
  size: PropSize;
75
75
  onClick?: (e: React.MouseEvent) => void;
76
- pointRef?: React.RefObject<HTMLButtonElement> | React.RefObject<HTMLDivElement>;
76
+ pointRef?: React.RefObject<HTMLButtonElement>;
77
77
  };
78
78
  export declare const cnProgressStepBar: import("@bem-react/classname").ClassNameFormatter;
79
79
  export declare const defaultGetItemLabel: PropGetItemLabel<DefaultItem>;
@@ -1 +1 @@
1
- {"version":3,"file":"helpers.js","names":["cn","propSize","propSizeDefault","propDirection","propDirectionDefault","propStatus","propStatusDefault","pointNumbersMap","propPosition","propPositionDefault","cnProgressStepBar","defaultGetItemLabel","item","label","defaultGetItemTooltipContent","tooltipContent","defaultGetItemPoint","point","defaultGetItemLineStatus","lineStatus","defaultGetItemProgress","progress","defaultGetItemContent","content","defaultGetItemStatus","status","defaultGetItemOnClick","onClick","withDefaultGetters","props","getItemLabel","getItemTooltipContent","getItemPoint","getItemProgress","getItemContent","getItemStatus","getItemLineStatus","getItemOnClick","getItemPosition","index","lendth","position","getLineSize","container","activeElement","direction","size","current","containerPosition","getBoundingClientRect","activeElementPosition","y","height","x"],"sources":["../../../../../src/components/ProgressStepBar/helpers.ts"],"sourcesContent":["import React from 'react';\n\nimport { IconComponent } from '../../icons/Icon/Icon';\nimport { cn } from '../../utils/bem';\nimport { PropsWithHTMLAttributesAndRef } from '../../utils/types/PropsWithHTMLAttributes';\n\nexport const propSize = ['s', 'xs', 'm'] as const;\nexport type PropSize = typeof propSize[number];\nexport const propSizeDefault = propSize[0];\n\nexport const propDirection = ['horizontal', 'vertical'] as const;\nexport type PropDirection = typeof propDirection[number];\nexport const propDirectionDefault = propDirection[0];\n\nexport const propStatus = ['normal', 'success', 'warning', 'alert'] as const;\nexport type PropStatus = typeof propStatus[number];\nexport const propStatusDefault = propStatus[0];\n\nexport const pointNumbersMap = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9] as const;\nexport type PointNumbersMap = typeof pointNumbersMap[number];\n\nexport const propPosition = ['center', 'start', 'end'] as const;\nexport type PropPosition = typeof propPosition[number];\nexport const propPositionDefault: PropPosition = propPosition[0];\n\nexport type PropGetItemLabel<ITEM> = (item: ITEM) => string | undefined;\nexport type PropGetItemKey<ITEM> = (item: ITEM) => string | number;\nexport type PropGetItemTooltipContent<ITEM> = (\n item: ITEM,\n) => string | undefined;\nexport type PropGetItemLineStatus<ITEM> = (\n item: ITEM,\n) => PropStatus | undefined;\nexport type PropGetItemPoint<ITEM> = (\n item: ITEM,\n) => PointNumbersMap | IconComponent | undefined;\nexport type PropGetItemProgress<ITEM> = (item: ITEM) => boolean | undefined;\nexport type PropGetItemContent<ITEM> = (\n item: ITEM,\n) => React.ReactNode | undefined;\nexport type PropGetItemStatus<ITEM> = (item: ITEM) => PropStatus | undefined;\nexport type PropGetItemOnClick<ITEM> = (\n item: ITEM,\n) => React.EventHandler<React.MouseEvent> | undefined;\n\nexport type DefaultItem = {\n label?: string;\n tooltipContent?: string;\n lineStatus?: PropStatus;\n point?: PointNumbersMap | IconComponent;\n status?: PropStatus;\n progress?: boolean;\n content?: React.ReactNode;\n onClick?: React.EventHandler<React.MouseEvent>;\n};\n\nexport type Line = {\n status: PropStatus;\n size: number;\n};\n\nexport type ProgressStepBarProps<ITEM = DefaultItem> =\n PropsWithHTMLAttributesAndRef<\n {\n steps: ITEM[];\n direction?: PropDirection;\n size?: PropSize;\n activeStepIndex?: number;\n onItemClick?: (props: {\n e: React.MouseEvent;\n item: ITEM;\n index: number;\n }) => void;\n getItemLabel?: PropGetItemLabel<ITEM>;\n getItemLineStatus?: PropGetItemLineStatus<ITEM>;\n getItemTooltipContent?: PropGetItemTooltipContent<ITEM>;\n getItemPoint?: PropGetItemPoint<ITEM>;\n getItemProgress?: PropGetItemProgress<ITEM>;\n getItemContent?: PropGetItemContent<ITEM>;\n getItemStatus?: PropGetItemStatus<ITEM>;\n getItemOnClick?: PropGetItemOnClick<ITEM>;\n },\n HTMLDivElement\n > &\n (ITEM extends { label: DefaultItem['label'] }\n ? {}\n : { getItemLabel: PropGetItemLabel<ITEM> });\n\nexport type ProgressStepBarItemProps = {\n content?: React.ReactNode;\n label?: string;\n point?: PointNumbersMap | IconComponent;\n progress?: boolean;\n status?: PropStatus | 'system';\n tooltipContent?: string;\n tooltipZIndex?: number;\n position?: PropPosition;\n direction: PropDirection;\n size: PropSize;\n onClick?: (e: React.MouseEvent) => void;\n pointRef?:\n | React.RefObject<HTMLButtonElement>\n | React.RefObject<HTMLDivElement>;\n};\n\nexport const cnProgressStepBar = cn('ProgressStepBar');\n\nexport const defaultGetItemLabel: PropGetItemLabel<DefaultItem> = (item) =>\n item.label;\nexport const defaultGetItemTooltipContent: PropGetItemTooltipContent<\n DefaultItem\n> = (item) => item.tooltipContent;\nexport const defaultGetItemPoint: PropGetItemPoint<DefaultItem> = (item) =>\n item.point;\nexport const defaultGetItemLineStatus: PropGetItemLineStatus<DefaultItem> = (\n item,\n) => item.lineStatus;\nexport const defaultGetItemProgress: PropGetItemProgress<DefaultItem> = (\n item,\n) => item.progress;\nexport const defaultGetItemContent: PropGetItemContent<DefaultItem> = (item) =>\n item.content;\nexport const defaultGetItemStatus: PropGetItemStatus<DefaultItem> = (item) =>\n item.status;\nexport const defaultGetItemOnClick: PropGetItemOnClick<DefaultItem> = (item) =>\n item.onClick;\n\nexport type ProgressStepBarComponent = <ITEM = DefaultItem>(\n props: ProgressStepBarProps<ITEM>,\n) => React.ReactElement | null;\n\nexport type ProgressStepBarItemComponent = (\n props: PropsWithHTMLAttributesAndRef<\n ProgressStepBarItemProps,\n HTMLDivElement\n >,\n) => React.ReactElement | null;\n\nexport function withDefaultGetters<ITEM>(props: ProgressStepBarProps<ITEM>) {\n return {\n ...props,\n getItemLabel: props.getItemLabel || defaultGetItemLabel,\n getItemTooltipContent:\n props.getItemTooltipContent || defaultGetItemTooltipContent,\n getItemPoint: props.getItemPoint || defaultGetItemPoint,\n getItemProgress: props.getItemProgress || defaultGetItemProgress,\n getItemContent: props.getItemContent || defaultGetItemContent,\n getItemStatus: props.getItemStatus || defaultGetItemStatus,\n getItemLineStatus: props.getItemLineStatus || defaultGetItemLineStatus,\n getItemOnClick: props.getItemOnClick || defaultGetItemOnClick,\n };\n}\n\nexport const getItemPosition = (index: number, lendth: number) => {\n let position: PropPosition = 'center';\n if (index === lendth - 1) position = 'end';\n if (index === 0) position = 'start';\n\n return position;\n};\n\nexport const getLineSize: (\n container: React.RefObject<HTMLElement>,\n activeElement: React.RefObject<HTMLElement>,\n direction: PropDirection,\n) => number = (container, activeElement, direction) => {\n let size = 0;\n if (\n container &&\n container.current &&\n activeElement &&\n activeElement.current\n ) {\n const containerPosition = container.current.getBoundingClientRect();\n const activeElementPosition = activeElement.current.getBoundingClientRect();\n if (direction === 'vertical')\n size =\n activeElementPosition.y -\n containerPosition.y +\n activeElementPosition.height;\n else size = activeElementPosition.x - containerPosition.x;\n }\n return size;\n};\n"],"mappings":"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"}
1
+ {"version":3,"file":"helpers.js","names":["cn","propSize","propSizeDefault","propDirection","propDirectionDefault","propStatus","propStatusDefault","pointNumbersMap","propPosition","propPositionDefault","cnProgressStepBar","defaultGetItemLabel","item","label","defaultGetItemTooltipContent","tooltipContent","defaultGetItemPoint","point","defaultGetItemLineStatus","lineStatus","defaultGetItemProgress","progress","defaultGetItemContent","content","defaultGetItemStatus","status","defaultGetItemOnClick","onClick","withDefaultGetters","props","getItemLabel","getItemTooltipContent","getItemPoint","getItemProgress","getItemContent","getItemStatus","getItemLineStatus","getItemOnClick","getItemPosition","index","lendth","position","getLineSize","container","activeElement","direction","size","current","containerPosition","getBoundingClientRect","activeElementPosition","y","height","x"],"sources":["../../../../../src/components/ProgressStepBar/helpers.ts"],"sourcesContent":["import React from 'react';\n\nimport { IconComponent } from '../../icons/Icon/Icon';\nimport { cn } from '../../utils/bem';\nimport { PropsWithHTMLAttributesAndRef } from '../../utils/types/PropsWithHTMLAttributes';\n\nexport const propSize = ['s', 'xs', 'm'] as const;\nexport type PropSize = typeof propSize[number];\nexport const propSizeDefault = propSize[0];\n\nexport const propDirection = ['horizontal', 'vertical'] as const;\nexport type PropDirection = typeof propDirection[number];\nexport const propDirectionDefault = propDirection[0];\n\nexport const propStatus = ['normal', 'success', 'warning', 'alert'] as const;\nexport type PropStatus = typeof propStatus[number];\nexport const propStatusDefault = propStatus[0];\n\nexport const pointNumbersMap = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9] as const;\nexport type PointNumbersMap = typeof pointNumbersMap[number];\n\nexport const propPosition = ['center', 'start', 'end'] as const;\nexport type PropPosition = typeof propPosition[number];\nexport const propPositionDefault: PropPosition = propPosition[0];\n\nexport type PropGetItemLabel<ITEM> = (item: ITEM) => string | undefined;\nexport type PropGetItemKey<ITEM> = (item: ITEM) => string | number;\nexport type PropGetItemTooltipContent<ITEM> = (\n item: ITEM,\n) => string | undefined;\nexport type PropGetItemLineStatus<ITEM> = (\n item: ITEM,\n) => PropStatus | undefined;\nexport type PropGetItemPoint<ITEM> = (\n item: ITEM,\n) => PointNumbersMap | IconComponent | undefined;\nexport type PropGetItemProgress<ITEM> = (item: ITEM) => boolean | undefined;\nexport type PropGetItemContent<ITEM> = (\n item: ITEM,\n) => React.ReactNode | undefined;\nexport type PropGetItemStatus<ITEM> = (item: ITEM) => PropStatus | undefined;\nexport type PropGetItemOnClick<ITEM> = (\n item: ITEM,\n) => React.EventHandler<React.MouseEvent> | undefined;\n\nexport type DefaultItem = {\n label?: string;\n tooltipContent?: string;\n lineStatus?: PropStatus;\n point?: PointNumbersMap | IconComponent;\n status?: PropStatus;\n progress?: boolean;\n content?: React.ReactNode;\n onClick?: React.EventHandler<React.MouseEvent>;\n};\n\nexport type Line = {\n status: PropStatus;\n size: number;\n};\n\nexport type ProgressStepBarProps<ITEM = DefaultItem> =\n PropsWithHTMLAttributesAndRef<\n {\n steps: ITEM[];\n direction?: PropDirection;\n size?: PropSize;\n activeStepIndex?: number;\n onItemClick?: (props: {\n e: React.MouseEvent;\n item: ITEM;\n index: number;\n }) => void;\n getItemLabel?: PropGetItemLabel<ITEM>;\n getItemLineStatus?: PropGetItemLineStatus<ITEM>;\n getItemTooltipContent?: PropGetItemTooltipContent<ITEM>;\n getItemPoint?: PropGetItemPoint<ITEM>;\n getItemProgress?: PropGetItemProgress<ITEM>;\n getItemContent?: PropGetItemContent<ITEM>;\n getItemStatus?: PropGetItemStatus<ITEM>;\n getItemOnClick?: PropGetItemOnClick<ITEM>;\n },\n HTMLDivElement\n > &\n (ITEM extends { label: DefaultItem['label'] }\n ? {}\n : { getItemLabel: PropGetItemLabel<ITEM> });\n\nexport type ProgressStepBarItemProps = {\n content?: React.ReactNode;\n label?: string;\n point?: PointNumbersMap | IconComponent;\n progress?: boolean;\n status?: PropStatus | 'system';\n tooltipContent?: string;\n tooltipZIndex?: number;\n position?: PropPosition;\n direction: PropDirection;\n size: PropSize;\n onClick?: (e: React.MouseEvent) => void;\n pointRef?: React.RefObject<HTMLButtonElement>;\n};\n\nexport const cnProgressStepBar = cn('ProgressStepBar');\n\nexport const defaultGetItemLabel: PropGetItemLabel<DefaultItem> = (item) =>\n item.label;\nexport const defaultGetItemTooltipContent: PropGetItemTooltipContent<\n DefaultItem\n> = (item) => item.tooltipContent;\nexport const defaultGetItemPoint: PropGetItemPoint<DefaultItem> = (item) =>\n item.point;\nexport const defaultGetItemLineStatus: PropGetItemLineStatus<DefaultItem> = (\n item,\n) => item.lineStatus;\nexport const defaultGetItemProgress: PropGetItemProgress<DefaultItem> = (\n item,\n) => item.progress;\nexport const defaultGetItemContent: PropGetItemContent<DefaultItem> = (item) =>\n item.content;\nexport const defaultGetItemStatus: PropGetItemStatus<DefaultItem> = (item) =>\n item.status;\nexport const defaultGetItemOnClick: PropGetItemOnClick<DefaultItem> = (item) =>\n item.onClick;\n\nexport type ProgressStepBarComponent = <ITEM = DefaultItem>(\n props: ProgressStepBarProps<ITEM>,\n) => React.ReactElement | null;\n\nexport type ProgressStepBarItemComponent = (\n props: PropsWithHTMLAttributesAndRef<\n ProgressStepBarItemProps,\n HTMLDivElement\n >,\n) => React.ReactElement | null;\n\nexport function withDefaultGetters<ITEM>(props: ProgressStepBarProps<ITEM>) {\n return {\n ...props,\n getItemLabel: props.getItemLabel || defaultGetItemLabel,\n getItemTooltipContent:\n props.getItemTooltipContent || defaultGetItemTooltipContent,\n getItemPoint: props.getItemPoint || defaultGetItemPoint,\n getItemProgress: props.getItemProgress || defaultGetItemProgress,\n getItemContent: props.getItemContent || defaultGetItemContent,\n getItemStatus: props.getItemStatus || defaultGetItemStatus,\n getItemLineStatus: props.getItemLineStatus || defaultGetItemLineStatus,\n getItemOnClick: props.getItemOnClick || defaultGetItemOnClick,\n };\n}\n\nexport const getItemPosition = (index: number, lendth: number) => {\n let position: PropPosition = 'center';\n if (index === lendth - 1) position = 'end';\n if (index === 0) position = 'start';\n\n return position;\n};\n\nexport const getLineSize: (\n container: React.RefObject<HTMLElement>,\n activeElement: React.RefObject<HTMLElement>,\n direction: PropDirection,\n) => number = (container, activeElement, direction) => {\n let size = 0;\n if (\n container &&\n container.current &&\n activeElement &&\n activeElement.current\n ) {\n const containerPosition = container.current.getBoundingClientRect();\n const activeElementPosition = activeElement.current.getBoundingClientRect();\n if (direction === 'vertical')\n size =\n activeElementPosition.y -\n containerPosition.y +\n activeElementPosition.height;\n else size = activeElementPosition.x - containerPosition.x;\n }\n return size;\n};\n"],"mappings":"qqBAGA,OAASA,EAAT,uBAGA,MAAO,IAAMC,SAAQ,CAAG,CAAC,GAAD,CAAM,IAAN,CAAY,GAAZ,CAAjB,CAEP,MAAO,IAAMC,gBAAe,CAAGD,QAAQ,CAAC,CAAD,CAAhC,CAEP,MAAO,IAAME,cAAa,CAAG,CAAC,YAAD,CAAe,UAAf,CAAtB,CAEP,MAAO,IAAMC,qBAAoB,CAAGD,aAAa,CAAC,CAAD,CAA1C,CAEP,MAAO,IAAME,WAAU,CAAG,CAAC,QAAD,CAAW,SAAX,CAAsB,SAAtB,CAAiC,OAAjC,CAAnB,CAEP,MAAO,IAAMC,kBAAiB,CAAGD,UAAU,CAAC,CAAD,CAApC,CAEP,MAAO,IAAME,gBAAe,CAAG,CAAC,CAAD,CAAI,CAAJ,CAAO,CAAP,CAAU,CAAV,CAAa,CAAb,CAAgB,CAAhB,CAAmB,CAAnB,CAAsB,CAAtB,CAAyB,CAAzB,CAA4B,CAA5B,CAAxB,CAGP,MAAO,IAAMC,aAAY,CAAG,CAAC,QAAD,CAAW,OAAX,CAAoB,KAApB,CAArB,CAEP,MAAO,IAAMC,oBAAiC,CAAGD,YAAY,CAAC,CAAD,CAAtD,CAgFP,MAAO,IAAME,kBAAiB,CAAGV,EAAE,CAAC,iBAAD,CAA5B,CAEP,MAAO,IAAMW,oBAAkD,CAAG,SAACC,CAAD,QAChEA,EAAI,CAACC,KAD2D,CAA3D,CAEP,MAAO,IAAMC,6BAEZ,CAAG,SAACF,CAAD,QAAUA,EAAI,CAACG,cAAf,CAFG,CAGP,MAAO,IAAMC,oBAAkD,CAAG,SAACJ,CAAD,QAChEA,EAAI,CAACK,KAD2D,CAA3D,CAEP,MAAO,IAAMC,yBAA4D,CAAG,SAC1EN,CAD0E,QAEvEA,EAAI,CAACO,UAFkE,CAArE,CAGP,MAAO,IAAMC,uBAAwD,CAAG,SACtER,CADsE,QAEnEA,EAAI,CAACS,QAF8D,CAAjE,CAGP,MAAO,IAAMC,sBAAsD,CAAG,SAACV,CAAD,QACpEA,EAAI,CAACW,OAD+D,CAA/D,CAEP,MAAO,IAAMC,qBAAoD,CAAG,SAACZ,CAAD,QAClEA,EAAI,CAACa,MAD6D,CAA7D,CAEP,MAAO,IAAMC,sBAAsD,CAAG,SAACd,CAAD,QACpEA,EAAI,CAACe,OAD+D,CAA/D,CAcP,MAAO,SAASC,mBAAT,CAAkCC,CAAlC,CAAqE,CAC1E,sCACKA,CADL,MAEEC,YAAY,CAAED,CAAK,CAACC,YAAN,EAAsBnB,mBAFtC,CAGEoB,qBAAqB,CACnBF,CAAK,CAACE,qBAAN,EAA+BjB,4BAJnC,CAKEkB,YAAY,CAAEH,CAAK,CAACG,YAAN,EAAsBhB,mBALtC,CAMEiB,eAAe,CAAEJ,CAAK,CAACI,eAAN,EAAyBb,sBAN5C,CAOEc,cAAc,CAAEL,CAAK,CAACK,cAAN,EAAwBZ,qBAP1C,CAQEa,aAAa,CAAEN,CAAK,CAACM,aAAN,EAAuBX,oBARxC,CASEY,iBAAiB,CAAEP,CAAK,CAACO,iBAAN,EAA2BlB,wBAThD,CAUEmB,cAAc,CAAER,CAAK,CAACQ,cAAN,EAAwBX,qBAV1C,EAYD,CAED,MAAO,IAAMY,gBAAe,CAAG,SAACC,CAAD,CAAgBC,CAAhB,CAAmC,CAChE,GAAIC,EAAsB,CAAG,QAA7B,CAIA,MAHIF,EAAK,GAAKC,CAAM,CAAG,CAGvB,GAH0BC,CAAQ,CAAG,KAGrC,EAFc,CAAV,GAAAF,CAEJ,GAFiBE,CAAQ,CAAG,OAE5B,EAAOA,CACR,CANM,CAQP,MAAO,IAAMC,YAIF,CAAG,SAACC,CAAD,CAAYC,CAAZ,CAA2BC,CAA3B,CAAyC,CACrD,GAAIC,EAAI,CAAG,CAAX,CACA,GACEH,CAAS,EACTA,CAAS,CAACI,OADV,EAEAH,CAFA,EAGAA,CAAa,CAACG,OAJhB,CAKE,IACMC,EAAiB,CAAGL,CAAS,CAACI,OAAV,CAAkBE,qBAAlB,EAD1B,CAEMC,CAAqB,CAAGN,CAAa,CAACG,OAAd,CAAsBE,qBAAtB,EAF9B,CAIEH,CAJF,CAGkB,UAAd,GAAAD,CAHJ,CAKIK,CAAqB,CAACC,CAAtB,CACAH,CAAiB,CAACG,CADlB,CAEAD,CAAqB,CAACE,MAP1B,CAQYF,CAAqB,CAACG,CAAtB,CAA0BL,CAAiB,CAACK,CACzD,CACD,MAAOP,EACR,CAtBM"}
@@ -0,0 +1 @@
1
+ export * from './useMouseLeave';
@@ -0,0 +1,2 @@
1
+ export*from"./useMouseLeave";
2
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","names":[],"sources":["../../../../../src/hooks/useMouseLeave/index.ts"],"sourcesContent":["export * from './useMouseLeave';\n"],"mappings":"AAAA"}
@@ -0,0 +1,9 @@
1
+ import { RefObject } from 'react';
2
+ declare type Props = {
3
+ isActive?: boolean;
4
+ refs: ReadonlyArray<RefObject<HTMLElement>>;
5
+ handler: (event: FocusEvent) => void;
6
+ debounce?: number;
7
+ };
8
+ export declare function useMouseLeave({ isActive, refs, handler, debounce, }: Props): void;
9
+ export {};
@@ -0,0 +1,2 @@
1
+ import{useEffect,useRef}from"react";import{useDebounce}from"../useDebounce";import{useMutableRef}from"../useMutableRef";export function useMouseLeave(a){var b=a.isActive,c=a.refs,d=a.handler,e=a.debounce,f=void 0===e?0:e,g=useMutableRef(c),h=useMutableRef(void 0!==b&&b),i=useRef(!1),j=useDebounce(function(a){var b;if(h.current&&!i.current){var c=a.target,e=!!(null!==(b=g.current)&&void 0!==b&&b.find(function(a){return a.current!==c}));e&&d(a)}},f);useEffect(function(){var a=function(){i.current=!0},b=function(){i.current=!1},c=function(a){b(),j(a)};return g.current.forEach(function(b){var d,e;null===(d=b.current)||void 0===d?void 0:d.addEventListener("mouseleave",c),null===(e=b.current)||void 0===e?void 0:e.addEventListener("mousemove",a)}),function(){g.current.forEach(function(b){var d,e;null===(d=b.current)||void 0===d?void 0:d.removeEventListener("mouseleave",c),null===(e=b.current)||void 0===e?void 0:e.removeEventListener("mousemove",a)})}},[c])}
2
+ //# sourceMappingURL=useMouseLeave.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useMouseLeave.js","names":["useEffect","useRef","useDebounce","useMutableRef","useMouseLeave","isActive","refs","handler","debounce","refsRef","isActiveRef","hoveredRef","handleLeaveDebounce","event","current","target","shouldCallHandler","find","ref","hoveredRefSetTrue","hoveredRefSetFalse","handleLeave","forEach","addEventListener","removeEventListener"],"sources":["../../../../../src/hooks/useMouseLeave/useMouseLeave.tsx"],"sourcesContent":["import { RefObject, useEffect, useRef } from 'react';\n\nimport { useDebounce } from '../useDebounce';\nimport { useMutableRef } from '../useMutableRef';\n\ntype Props = {\n isActive?: boolean;\n refs: ReadonlyArray<RefObject<HTMLElement>>;\n handler: (event: FocusEvent) => void;\n debounce?: number;\n};\n\nexport function useMouseLeave({\n isActive = false,\n refs,\n handler,\n debounce = 0,\n}: Props): void {\n const refsRef = useMutableRef(refs);\n const isActiveRef = useMutableRef(isActive);\n const hoveredRef = useRef(false);\n\n const handleLeaveDebounce = useDebounce((event: FocusEvent) => {\n if (!isActiveRef.current || hoveredRef.current) {\n return;\n }\n\n const target = event.target as Node;\n\n const shouldCallHandler = !!refsRef.current?.find((ref) => {\n return ref.current !== target;\n });\n\n shouldCallHandler && handler(event);\n }, debounce);\n\n useEffect(() => {\n const hoveredRefSetTrue = () => {\n hoveredRef.current = true;\n };\n\n const hoveredRefSetFalse = () => {\n hoveredRef.current = false;\n };\n\n const handleLeave = (event: FocusEvent) => {\n hoveredRefSetFalse();\n handleLeaveDebounce(event);\n };\n\n refsRef.current.forEach((ref) => {\n ref.current?.addEventListener('mouseleave', handleLeave);\n ref.current?.addEventListener('mousemove', hoveredRefSetTrue);\n });\n\n return () => {\n refsRef.current.forEach((ref) => {\n ref.current?.removeEventListener('mouseleave', handleLeave);\n ref.current?.removeEventListener('mousemove', hoveredRefSetTrue);\n });\n };\n }, [refs]);\n}\n"],"mappings":"AAAA,OAAoBA,SAApB,CAA+BC,MAA/B,KAA6C,OAA7C,CAEA,OAASC,WAAT,sBACA,OAASC,aAAT,wBASA,MAAO,SAASC,cAAT,GAKS,SAJdC,QAIc,CAHdC,CAGc,GAHdA,IAGc,CAFdC,CAEc,GAFdA,OAEc,KADdC,QACc,CADdA,CACc,YADH,CACG,GACRC,CAAO,CAAGN,aAAa,CAACG,CAAD,CADf,CAERI,CAAW,CAAGP,aAAa,eAFnB,CAGRQ,CAAU,CAAGV,MAAM,IAHX,CAKRW,CAAmB,CAAGV,WAAW,CAAC,SAACW,CAAD,CAAuB,OAC7D,GAAKH,CAAW,CAACI,OAAb,GAAwBH,CAAU,CAACG,OAAvC,KAIMC,EAAM,CAAGF,CAAK,CAACE,MAJrB,CAMMC,CAAiB,CAAG,CAAC,YAACP,CAAO,CAACK,OAAT,eAAC,EAAiBG,IAAjB,CAAsB,SAACC,CAAD,CAAS,CACzD,MAAOA,EAAG,CAACJ,OAAJ,GAAgBC,CACxB,CAF2B,CAAD,CAN3B,CAUAC,CAAiB,EAAIT,CAAO,CAACM,CAAD,CAV5B,CAWD,CAZsC,CAYpCL,CAZoC,CALzB,CAmBdR,SAAS,CAAC,UAAM,IACRmB,EAAiB,CAAG,UAAM,CAC9BR,CAAU,CAACG,OAAX,GACD,CAHa,CAKRM,CAAkB,CAAG,UAAM,CAC/BT,CAAU,CAACG,OAAX,GACD,CAPa,CASRO,CAAW,CAAG,SAACR,CAAD,CAAuB,CACzCO,CAAkB,EADuB,CAEzCR,CAAmB,CAACC,CAAD,CACpB,CAZa,CAmBd,MALAJ,EAAO,CAACK,OAAR,CAAgBQ,OAAhB,CAAwB,SAACJ,CAAD,CAAS,mBAC/BA,CAAG,CAACJ,OAD2B,qBAC/B,EAAaS,gBAAb,CAA8B,YAA9B,CAA4CF,CAA5C,CAD+B,WAE/BH,CAAG,CAACJ,OAF2B,qBAE/B,EAAaS,gBAAb,CAA8B,WAA9B,CAA2CJ,CAA3C,CACD,CAHD,CAKA,CAAO,UAAM,CACXV,CAAO,CAACK,OAAR,CAAgBQ,OAAhB,CAAwB,SAACJ,CAAD,CAAS,mBAC/BA,CAAG,CAACJ,OAD2B,qBAC/B,EAAaU,mBAAb,CAAiC,YAAjC,CAA+CH,CAA/C,CAD+B,WAE/BH,CAAG,CAACJ,OAF2B,qBAE/B,EAAaU,mBAAb,CAAiC,WAAjC,CAA8CL,CAA9C,CACD,CAHD,CAID,CACF,CAzBQ,CAyBN,CAACb,CAAD,CAzBM,CA0BV"}
@@ -1,5 +1,4 @@
1
1
  import './DocsDecorator.css';
2
- import '../../whitepaper/whitepaper.css';
3
2
  import React from 'react';
4
3
  export declare const cnDocsDecorator: import("@bem-react/classname").ClassNameFormatter;
5
4
  export declare const DocsDecorator: React.FC<{
@@ -1,2 +1,2 @@
1
- import"./DocsDecorator.css";import"../../whitepaper/whitepaper.css";import React from"react";import{presetGpnDefault,Theme}from"../../../components/Theme/Theme";import{cn}from"../../cn";export var cnDocsDecorator=cn("DocsDecorator");export var DocsDecorator=function(a){var b=a.children,c=React.createElement(Theme,{preset:presetGpnDefault,className:cnDocsDecorator(null,["theme_gap_medium"])},b);return"development"===process.env.NODE_ENV?React.createElement(React.StrictMode,null,c):c};
1
+ import"./DocsDecorator.css";import React from"react";import{presetGpnDefault,Theme}from"../../../components/Theme/Theme";import{cn}from"../../cn";export var cnDocsDecorator=cn("DocsDecorator");export var DocsDecorator=function(a){var b=a.children,c=React.createElement(Theme,{preset:presetGpnDefault,className:cnDocsDecorator(null,["theme_gap_medium"])},b);return"development"===process.env.NODE_ENV?React.createElement(React.StrictMode,null,c):c};
2
2
  //# sourceMappingURL=DocsDecorator.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"DocsDecorator.js","names":["React","presetGpnDefault","Theme","cn","cnDocsDecorator","DocsDecorator","props","children","content","process","env","NODE_ENV"],"sources":["../../../../../../src/uiKit/components/DocsDecorator/DocsDecorator.tsx"],"sourcesContent":["import './DocsDecorator.css';\nimport '../../whitepaper/whitepaper.css';\n\nimport React from 'react';\n\nimport { presetGpnDefault, Theme } from '../../../components/Theme/Theme';\nimport { cn } from '../../cn';\n\nexport const cnDocsDecorator = cn('DocsDecorator');\n\nexport const DocsDecorator: React.FC<{ children?: React.ReactNode }> = (\n props,\n) => {\n const { children } = props;\n const content = (\n <Theme\n preset={presetGpnDefault}\n className={cnDocsDecorator(null, ['theme_gap_medium'])}\n >\n {children}\n </Theme>\n );\n if (process.env.NODE_ENV === 'development') {\n return <React.StrictMode>{content}</React.StrictMode>;\n }\n\n return content;\n};\n"],"mappings":"AAAA,4BACA,wCAEA,MAAOA,MAAP,KAAkB,OAAlB,CAEA,OAASC,gBAAT,CAA2BC,KAA3B,uCACA,OAASC,EAAT,gBAEA,MAAO,IAAMC,gBAAe,CAAGD,EAAE,CAAC,eAAD,CAA1B,CAEP,MAAO,IAAME,cAAuD,CAAG,SACrEC,CADqE,CAElE,IACKC,EADL,CACkBD,CADlB,CACKC,QADL,CAEGC,CAAO,CACX,oBAAC,KAAD,EACE,MAAM,CAAEP,gBADV,CAEE,SAAS,CAAEG,eAAe,CAAC,IAAD,CAAO,CAAC,kBAAD,CAAP,CAF5B,EAIGG,CAJH,CAHC,OAU0B,aAAzB,GAAAE,OAAO,CAACC,GAAR,CAAYC,QAVb,CAWM,oBAAC,KAAD,CAAO,UAAP,MAAmBH,CAAnB,CAXN,CAcIA,CACR,CAjBM"}
1
+ {"version":3,"file":"DocsDecorator.js","names":["React","presetGpnDefault","Theme","cn","cnDocsDecorator","DocsDecorator","props","children","content","process","env","NODE_ENV"],"sources":["../../../../../../src/uiKit/components/DocsDecorator/DocsDecorator.tsx"],"sourcesContent":["import './DocsDecorator.css';\n\nimport React from 'react';\n\nimport { presetGpnDefault, Theme } from '../../../components/Theme/Theme';\nimport { cn } from '../../cn';\n\nexport const cnDocsDecorator = cn('DocsDecorator');\n\nexport const DocsDecorator: React.FC<{ children?: React.ReactNode }> = (\n props,\n) => {\n const { children } = props;\n const content = (\n <Theme\n preset={presetGpnDefault}\n className={cnDocsDecorator(null, ['theme_gap_medium'])}\n >\n {children}\n </Theme>\n );\n if (process.env.NODE_ENV === 'development') {\n return <React.StrictMode>{content}</React.StrictMode>;\n }\n\n return content;\n};\n"],"mappings":"AAAA,4BAEA,MAAOA,MAAP,KAAkB,OAAlB,CAEA,OAASC,gBAAT,CAA2BC,KAA3B,uCACA,OAASC,EAAT,gBAEA,MAAO,IAAMC,gBAAe,CAAGD,EAAE,CAAC,eAAD,CAA1B,CAEP,MAAO,IAAME,cAAuD,CAAG,SACrEC,CADqE,CAElE,IACKC,EADL,CACkBD,CADlB,CACKC,QADL,CAEGC,CAAO,CACX,oBAAC,KAAD,EACE,MAAM,CAAEP,gBADV,CAEE,SAAS,CAAEG,eAAe,CAAC,IAAD,CAAO,CAAC,kBAAD,CAAP,CAF5B,EAIGG,CAJH,CAHC,OAU0B,aAAzB,GAAAE,OAAO,CAACC,GAAR,CAAYC,QAVb,CAWM,oBAAC,KAAD,CAAO,UAAP,MAAmBH,CAAnB,CAXN,CAcIA,CACR,CAjBM"}
@@ -1 +1 @@
1
- .UiKit--DocsExample{margin-bottom:1.4em}.UiKit--DocsExample-Subscription{color:var(--color-typo-secondary);line-height:var(--line-height-text-s)}.UiKit--DocsExample-Caption{line-height:var(--line-height-text-s);margin-bottom:var(--space-m)}.UiKit--DocsExample .UiKit--DocsExample-Status{border-top:2px solid var(--example-status-color);color:var(--example-status-color);margin-bottom:.4em;margin-top:var(--space-l);padding-top:var(--space-s)}.UiKit--DocsExample .UiKit--DocsExample-Status_view_wrong{--example-status-color:var(--color-typo-alert)}.UiKit--DocsExample .UiKit--DocsExample-Status_view_right{--example-status-color:var(--color-typo-success)}.UiKit--DocsExample .UiKit--DocsExample-Status+.Example-Caption{margin-top:0}
1
+ .UiKit--DocsExample{margin-bottom:1.4em}.UiKit--DocsExample-Subscription{color:var(--color-typo-secondary);line-height:var(--line-height-text-s)}.UiKit--DocsExample-Caption{line-height:var(--line-height-text-s);margin-bottom:var(--space-m)}.UiKit--DocsExample-Status{border-top:2px solid var(--example-status-color);color:var(--example-status-color);margin-bottom:.4em;margin-top:var(--space-l);padding-top:var(--space-s)}.UiKit--DocsExample-Status_view_wrong{--example-status-color:var(--color-typo-alert)}.UiKit--DocsExample-Status_view_right{--example-status-color:var(--color-typo-success)}.UiKit--DocsExample-Status+.Example-Caption{margin-top:0}
@@ -0,0 +1 @@
1
+ export * from './DocsExample';
@@ -0,0 +1,2 @@
1
+ export*from"./DocsExample";
2
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","names":[],"sources":["../../../../../../src/uiKit/components/DocsExample/index.ts"],"sourcesContent":["export * from './DocsExample';\n"],"mappings":"AAAA"}
@@ -1,3 +1,4 @@
1
+ import './whitepaper.css';
1
2
  export declare const ptIconPlus: import("@bem-react/classname").ClassNameFormatter;
2
3
  export declare const theme: import("@bem-react/classname").ClassNameFormatter;
3
4
  export declare const text: import("@bem-react/classname").ClassNameFormatter;
@@ -1,2 +1,2 @@
1
- import{withNaming}from"@bem-react/classname";var cn=withNaming({e:"__",m:"_",v:"_"});export var ptIconPlus=cn("pt-icon-plus");export var theme=cn("theme");export var text=cn("text");export var tplGrid=cn("tpl-grid");export var decorator=cn("decorator");export var layout=cn("layout");
1
+ import"./whitepaper.css";import{withNaming}from"@bem-react/classname";var cn=withNaming({e:"__",m:"_",v:"_"});export var ptIconPlus=cn("pt-icon-plus");export var theme=cn("theme");export var text=cn("text");export var tplGrid=cn("tpl-grid");export var decorator=cn("decorator");export var layout=cn("layout");
2
2
  //# sourceMappingURL=whitepaper.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"whitepaper.js","names":["withNaming","cn","e","m","v","ptIconPlus","theme","text","tplGrid","decorator","layout"],"sources":["../../../../../src/uiKit/whitepaper/whitepaper.ts"],"sourcesContent":["import { withNaming } from '@bem-react/classname';\n\nconst cn = withNaming({ e: '__', m: '_', v: '_' });\n\nexport const ptIconPlus = cn('pt-icon-plus');\nexport const theme = cn('theme');\nexport const text = cn('text');\nexport const tplGrid = cn('tpl-grid');\nexport const decorator = cn('decorator');\nexport const layout = cn('layout');\n"],"mappings":"AAAA,OAASA,UAAT,KAA2B,sBAA3B,CAEA,GAAMC,GAAE,CAAGD,UAAU,CAAC,CAAEE,CAAC,CAAE,IAAL,CAAWC,CAAC,CAAE,GAAd,CAAmBC,CAAC,CAAE,GAAtB,CAAD,CAArB,CAEA,MAAO,IAAMC,WAAU,CAAGJ,EAAE,CAAC,cAAD,CAArB,CACP,MAAO,IAAMK,MAAK,CAAGL,EAAE,CAAC,OAAD,CAAhB,CACP,MAAO,IAAMM,KAAI,CAAGN,EAAE,CAAC,MAAD,CAAf,CACP,MAAO,IAAMO,QAAO,CAAGP,EAAE,CAAC,UAAD,CAAlB,CACP,MAAO,IAAMQ,UAAS,CAAGR,EAAE,CAAC,WAAD,CAApB,CACP,MAAO,IAAMS,OAAM,CAAGT,EAAE,CAAC,QAAD,CAAjB"}
1
+ {"version":3,"file":"whitepaper.js","names":["withNaming","cn","e","m","v","ptIconPlus","theme","text","tplGrid","decorator","layout"],"sources":["../../../../../src/uiKit/whitepaper/whitepaper.ts"],"sourcesContent":["import './whitepaper.css';\n\nimport { withNaming } from '@bem-react/classname';\n\nconst cn = withNaming({ e: '__', m: '_', v: '_' });\n\nexport const ptIconPlus = cn('pt-icon-plus');\nexport const theme = cn('theme');\nexport const text = cn('text');\nexport const tplGrid = cn('tpl-grid');\nexport const decorator = cn('decorator');\nexport const layout = cn('layout');\n"],"mappings":"AAAA,yBAEA,OAASA,UAAT,KAA2B,sBAA3B,CAEA,GAAMC,GAAE,CAAGD,UAAU,CAAC,CAAEE,CAAC,CAAE,IAAL,CAAWC,CAAC,CAAE,GAAd,CAAmBC,CAAC,CAAE,GAAtB,CAAD,CAArB,CAEA,MAAO,IAAMC,WAAU,CAAGJ,EAAE,CAAC,cAAD,CAArB,CACP,MAAO,IAAMK,MAAK,CAAGL,EAAE,CAAC,OAAD,CAAhB,CACP,MAAO,IAAMM,KAAI,CAAGN,EAAE,CAAC,MAAD,CAAf,CACP,MAAO,IAAMO,QAAO,CAAGP,EAAE,CAAC,UAAD,CAAlB,CACP,MAAO,IAAMQ,UAAS,CAAGR,EAAE,CAAC,WAAD,CAApB,CACP,MAAO,IAAMS,OAAM,CAAGT,EAAE,CAAC,QAAD,CAAjB"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@consta/uikit",
3
- "version": "4.6.0",
3
+ "version": "4.6.1",
4
4
  "keywords": [
5
5
  "ui-kit",
6
6
  "design-system",
@@ -0,0 +1 @@
1
+ export * from "../__internal__/src/hooks/useMouseLeave";
@@ -0,0 +1 @@
1
+ export * from "../__internal__/src/hooks/useMouseLeave";