@semcore/core 17.3.0 → 17.3.1-prerelease.11

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 (196) hide show
  1. package/CHANGELOG.md +7 -0
  2. package/lib/LastInteractionType.d.ts +1 -0
  3. package/lib/LastInteractionType.d.ts.map +1 -0
  4. package/lib/core-types/Component.d.ts +1 -0
  5. package/lib/core-types/Component.d.ts.map +1 -0
  6. package/lib/core-types/UnknownProperties.d.ts +1 -0
  7. package/lib/core-types/UnknownProperties.d.ts.map +1 -0
  8. package/lib/core-types/symbols.d.ts +1 -0
  9. package/lib/core-types/symbols.d.ts.map +1 -0
  10. package/lib/coreFactory.d.ts +1 -0
  11. package/lib/coreFactory.d.ts.map +1 -0
  12. package/lib/decorators/propsObserver.d.ts +1 -0
  13. package/lib/decorators/propsObserver.d.ts.map +1 -0
  14. package/lib/decorators/reactive.d.ts +1 -0
  15. package/lib/decorators/reactive.d.ts.map +1 -0
  16. package/lib/enhancement/Children.d.ts +1 -0
  17. package/lib/enhancement/Children.d.ts.map +1 -0
  18. package/lib/enhancement/Root.d.ts +1 -0
  19. package/lib/enhancement/Root.d.ts.map +1 -0
  20. package/lib/enhancement/dataName.d.ts +1 -0
  21. package/lib/enhancement/dataName.d.ts.map +1 -0
  22. package/lib/enhancement/enhance.d.ts +1 -0
  23. package/lib/enhancement/enhance.d.ts.map +1 -0
  24. package/lib/enhancement/functionDefaultProps.d.ts +1 -0
  25. package/lib/enhancement/functionDefaultProps.d.ts.map +1 -0
  26. package/lib/enhancement/i18n.d.ts +1 -0
  27. package/lib/enhancement/i18n.d.ts.map +1 -0
  28. package/lib/enhancement/inheritedName.d.ts +1 -0
  29. package/lib/enhancement/inheritedName.d.ts.map +1 -0
  30. package/lib/enhancement/staticChildren.d.ts +1 -0
  31. package/lib/enhancement/staticChildren.d.ts.map +1 -0
  32. package/lib/enhancement/style.d.ts +1 -0
  33. package/lib/enhancement/style.d.ts.map +1 -0
  34. package/lib/enhancement/uncontrolledProps.d.ts +1 -0
  35. package/lib/enhancement/uncontrolledProps.d.ts.map +1 -0
  36. package/lib/esm/utils/assignProps.mjs +3 -3
  37. package/lib/index.d.ts +1 -0
  38. package/lib/index.d.ts.map +1 -0
  39. package/lib/register.d.ts +1 -0
  40. package/lib/register.d.ts.map +1 -0
  41. package/lib/styled/index.d.ts +1 -0
  42. package/lib/styled/index.d.ts.map +1 -0
  43. package/lib/styled/reshadow-core.d.ts +1 -0
  44. package/lib/styled/reshadow-core.d.ts.map +1 -0
  45. package/lib/styled/sstyled.d.ts +1 -0
  46. package/lib/styled/sstyled.d.ts.map +1 -0
  47. package/lib/theme/themes/dark.d.ts +1 -0
  48. package/lib/theme/themes/dark.d.ts.map +1 -0
  49. package/lib/theme/themes/default.d.ts +1 -0
  50. package/lib/theme/themes/default.d.ts.map +1 -0
  51. package/lib/theme/themes/highlights-dark.d.ts +1 -0
  52. package/lib/theme/themes/highlights-dark.d.ts.map +1 -0
  53. package/lib/theme/themes/highlights-light.d.ts +1 -0
  54. package/lib/theme/themes/highlights-light.d.ts.map +1 -0
  55. package/lib/theme/themes/light.d.ts +1 -0
  56. package/lib/theme/themes/light.d.ts.map +1 -0
  57. package/lib/utils/CSSinJS.d.ts +1 -0
  58. package/lib/utils/CSSinJS.d.ts.map +1 -0
  59. package/lib/utils/ThemeProvider.d.ts +1 -0
  60. package/lib/utils/ThemeProvider.d.ts.map +1 -0
  61. package/lib/utils/addonText.d.ts +1 -0
  62. package/lib/utils/addonText.d.ts.map +1 -0
  63. package/lib/utils/addonTextChildren.d.ts +1 -0
  64. package/lib/utils/addonTextChildren.d.ts.map +1 -0
  65. package/lib/utils/ariaProps.d.ts +1 -0
  66. package/lib/utils/ariaProps.d.ts.map +1 -0
  67. package/lib/utils/assignProps.d.ts +1 -0
  68. package/lib/utils/assignProps.d.ts.map +1 -0
  69. package/lib/utils/assignProps.js +3 -3
  70. package/lib/utils/assignProps.js.map +1 -1
  71. package/lib/utils/assignProps.mjs +3 -3
  72. package/lib/utils/assignProps.mjs.map +1 -1
  73. package/lib/utils/canUseDOM.d.ts +1 -0
  74. package/lib/utils/canUseDOM.d.ts.map +1 -0
  75. package/lib/utils/capitalizeFirstLetter.d.ts +1 -0
  76. package/lib/utils/capitalizeFirstLetter.d.ts.map +1 -0
  77. package/lib/utils/color.d.ts +1 -0
  78. package/lib/utils/color.d.ts.map +1 -0
  79. package/lib/utils/compose.d.ts +1 -0
  80. package/lib/utils/compose.d.ts.map +1 -0
  81. package/lib/utils/createUUID.d.ts +1 -0
  82. package/lib/utils/createUUID.d.ts.map +1 -0
  83. package/lib/utils/cssToIntDefault.d.ts +1 -0
  84. package/lib/utils/cssToIntDefault.d.ts.map +1 -0
  85. package/lib/utils/enhances/WithCSS.d.ts +1 -0
  86. package/lib/utils/enhances/WithCSS.d.ts.map +1 -0
  87. package/lib/utils/enhances/WithI18n.d.ts +1 -0
  88. package/lib/utils/enhances/WithI18n.d.ts.map +1 -0
  89. package/lib/utils/enhances/a11yEnhance.d.ts +1 -0
  90. package/lib/utils/enhances/a11yEnhance.d.ts.map +1 -0
  91. package/lib/utils/enhances/animatedSizeEnhance.d.ts +1 -0
  92. package/lib/utils/enhances/animatedSizeEnhance.d.ts.map +1 -0
  93. package/lib/utils/enhances/contextEnhance.d.ts +1 -0
  94. package/lib/utils/enhances/contextEnhance.d.ts.map +1 -0
  95. package/lib/utils/enhances/i18nEnhance.d.ts +1 -0
  96. package/lib/utils/enhances/i18nEnhance.d.ts.map +1 -0
  97. package/lib/utils/enhances/resolveColorEnhance.d.ts +1 -0
  98. package/lib/utils/enhances/resolveColorEnhance.d.ts.map +1 -0
  99. package/lib/utils/eventEmitter.d.ts +1 -0
  100. package/lib/utils/eventEmitter.d.ts.map +1 -0
  101. package/lib/utils/findComponent.d.ts +1 -0
  102. package/lib/utils/findComponent.d.ts.map +1 -0
  103. package/lib/utils/fire.d.ts +1 -0
  104. package/lib/utils/fire.d.ts.map +1 -0
  105. package/lib/utils/focus-lock/focusBorders.d.ts +1 -0
  106. package/lib/utils/focus-lock/focusBorders.d.ts.map +1 -0
  107. package/lib/utils/focus-lock/getFocusableIn.d.ts +1 -0
  108. package/lib/utils/focus-lock/getFocusableIn.d.ts.map +1 -0
  109. package/lib/utils/focus-lock/isFocusInside.d.ts +1 -0
  110. package/lib/utils/focus-lock/isFocusInside.d.ts.map +1 -0
  111. package/lib/utils/focus-lock/isFocusable.d.ts +1 -0
  112. package/lib/utils/focus-lock/isFocusable.d.ts.map +1 -0
  113. package/lib/utils/focus-lock/setFocus.d.ts +1 -0
  114. package/lib/utils/focus-lock/setFocus.d.ts.map +1 -0
  115. package/lib/utils/getAccessibleName.d.ts +1 -0
  116. package/lib/utils/getAccessibleName.d.ts.map +1 -0
  117. package/lib/utils/getDisplayName.d.ts +1 -0
  118. package/lib/utils/getDisplayName.d.ts.map +1 -0
  119. package/lib/utils/getEventTarget.d.ts +1 -0
  120. package/lib/utils/getEventTarget.d.ts.map +1 -0
  121. package/lib/utils/getOriginChildren.d.ts +1 -0
  122. package/lib/utils/getOriginChildren.d.ts.map +1 -0
  123. package/lib/utils/getRandomInt.d.ts +1 -0
  124. package/lib/utils/getRandomInt.d.ts.map +1 -0
  125. package/lib/utils/getValue.d.ts +1 -0
  126. package/lib/utils/getValue.d.ts.map +1 -0
  127. package/lib/utils/hasLabels.d.ts +1 -0
  128. package/lib/utils/hasLabels.d.ts.map +1 -0
  129. package/lib/utils/hasParent.d.ts +1 -0
  130. package/lib/utils/hasParent.d.ts.map +1 -0
  131. package/lib/utils/ifChildren.d.ts +1 -0
  132. package/lib/utils/ifChildren.d.ts.map +1 -0
  133. package/lib/utils/indentStyles.d.ts +1 -0
  134. package/lib/utils/indentStyles.d.ts.map +1 -0
  135. package/lib/utils/injectStyle.d.ts +1 -0
  136. package/lib/utils/injectStyle.d.ts.map +1 -0
  137. package/lib/utils/injectStyle.js +1 -1
  138. package/lib/utils/injectStyle.mjs +1 -1
  139. package/lib/utils/inputProps.d.ts +1 -0
  140. package/lib/utils/inputProps.d.ts.map +1 -0
  141. package/lib/utils/isInteractiveElement.d.ts +1 -0
  142. package/lib/utils/isInteractiveElement.d.ts.map +1 -0
  143. package/lib/utils/isNode.d.ts +1 -0
  144. package/lib/utils/isNode.d.ts.map +1 -0
  145. package/lib/utils/isPromise.d.ts +1 -0
  146. package/lib/utils/isPromise.d.ts.map +1 -0
  147. package/lib/utils/isRetina.d.ts +1 -0
  148. package/lib/utils/isRetina.d.ts.map +1 -0
  149. package/lib/utils/logger.d.ts +1 -0
  150. package/lib/utils/logger.d.ts.map +1 -0
  151. package/lib/utils/numericChecker.d.ts +1 -0
  152. package/lib/utils/numericChecker.d.ts.map +1 -0
  153. package/lib/utils/ownerDocument.d.ts +1 -0
  154. package/lib/utils/ownerDocument.d.ts.map +1 -0
  155. package/lib/utils/pick.d.ts +1 -0
  156. package/lib/utils/pick.d.ts.map +1 -0
  157. package/lib/utils/propsForElement.d.ts +1 -0
  158. package/lib/utils/propsForElement.d.ts.map +1 -0
  159. package/lib/utils/rafTrottle.d.ts +1 -0
  160. package/lib/utils/rafTrottle.d.ts.map +1 -0
  161. package/lib/utils/reactToText.d.ts +1 -0
  162. package/lib/utils/reactToText.d.ts.map +1 -0
  163. package/lib/utils/ref.d.ts +1 -0
  164. package/lib/utils/ref.d.ts.map +1 -0
  165. package/lib/utils/setRef.d.ts +1 -0
  166. package/lib/utils/setRef.d.ts.map +1 -0
  167. package/lib/utils/syncScroll.d.ts +1 -0
  168. package/lib/utils/syncScroll.d.ts.map +1 -0
  169. package/lib/utils/uncontroll.d.ts +1 -0
  170. package/lib/utils/uncontroll.d.ts.map +1 -0
  171. package/lib/utils/uniqueID.d.ts +1 -0
  172. package/lib/utils/uniqueID.d.ts.map +1 -0
  173. package/lib/utils/use/useColorResolver.d.ts +1 -0
  174. package/lib/utils/use/useColorResolver.d.ts.map +1 -0
  175. package/lib/utils/use/useEnhancedEffect.d.ts +1 -0
  176. package/lib/utils/use/useEnhancedEffect.d.ts.map +1 -0
  177. package/lib/utils/use/useEventCallback.d.ts +1 -0
  178. package/lib/utils/use/useEventCallback.d.ts.map +1 -0
  179. package/lib/utils/use/useEventListener.d.ts +1 -0
  180. package/lib/utils/use/useEventListener.d.ts.map +1 -0
  181. package/lib/utils/use/useFocusLock.d.ts +1 -0
  182. package/lib/utils/use/useFocusLock.d.ts.map +1 -0
  183. package/lib/utils/use/usePreventScroll.d.ts +1 -0
  184. package/lib/utils/use/usePreventScroll.d.ts.map +1 -0
  185. package/lib/utils/use/useScrollBarWidth.d.ts +1 -0
  186. package/lib/utils/use/useScrollBarWidth.d.ts.map +1 -0
  187. package/lib/utils/use/useScrollBarWidth.js +47 -25
  188. package/lib/utils/use/useScrollBarWidth.js.map +1 -1
  189. package/lib/utils/use/useScrollBarWidth.mjs +48 -26
  190. package/lib/utils/use/useScrollBarWidth.mjs.map +1 -1
  191. package/lib/utils/useCssVariable.d.ts +1 -0
  192. package/lib/utils/useCssVariable.d.ts.map +1 -0
  193. package/lib/utils/zIndexStacking.d.ts +1 -0
  194. package/lib/utils/zIndexStacking.d.ts.map +1 -0
  195. package/package.json +2 -2
  196. package/tsconfig-utils.json +1 -1
@@ -1 +1 @@
1
- {"version":3,"file":"useScrollBarWidth.js","names":["_react","require","useScrollBarWidth","vertical","scrollBarWidth","setScrollBarWidth","useState","af","useRef","useEffect","calculateScrollBar","window","visualViewport","innerHeight","height","innerWidth","width","handleResize","current","requestAnimationFrame","addEventListener","removeEventListener","cancelAnimationFrame"],"sources":["../../../src/utils/use/useScrollBarWidth.ts"],"sourcesContent":["import { useEffect, useState, useRef } from 'react';\n\nexport function useScrollBarWidth(vertical = true): number {\n const [scrollBarWidth, setScrollBarWidth] = useState(0);\n const af = useRef<number | null>(null);\n\n useEffect(() => {\n const calculateScrollBar = () => {\n if (!window.visualViewport) return;\n\n if (!vertical) {\n setScrollBarWidth(window.innerHeight - window.visualViewport.height);\n return;\n }\n\n setScrollBarWidth(window.innerWidth - window.visualViewport.width);\n };\n\n const handleResize = () => {\n // to handle resize 1 time per frame\n if (af.current !== null) return;\n\n af.current = requestAnimationFrame(() => {\n calculateScrollBar();\n af.current = null;\n });\n };\n\n calculateScrollBar();\n window.addEventListener('resize', handleResize);\n\n return () => {\n window.removeEventListener('resize', handleResize);\n if (af.current !== null) cancelAnimationFrame(af.current);\n };\n }, []);\n\n return scrollBarWidth;\n}\n"],"mappings":";;;;;;AAAA,IAAAA,MAAA,GAAAC,OAAA;AAEO,SAASC,iBAAiBA,CAACC,QAAQ,GAAG,IAAI,EAAU;EACzD,MAAM,CAACC,cAAc,EAAEC,iBAAiB,CAAC,GAAG,IAAAC,eAAQ,EAAC,CAAC,CAAC;EACvD,MAAMC,EAAE,GAAG,IAAAC,aAAM,EAAgB,IAAI,CAAC;EAEtC,IAAAC,gBAAS,EAAC,MAAM;IACd,MAAMC,kBAAkB,GAAGA,CAAA,KAAM;MAC/B,IAAI,CAACC,MAAM,CAACC,cAAc,EAAE;MAE5B,IAAI,CAACT,QAAQ,EAAE;QACbE,iBAAiB,CAACM,MAAM,CAACE,WAAW,GAAGF,MAAM,CAACC,cAAc,CAACE,MAAM,CAAC;QACpE;MACF;MAEAT,iBAAiB,CAACM,MAAM,CAACI,UAAU,GAAGJ,MAAM,CAACC,cAAc,CAACI,KAAK,CAAC;IACpE,CAAC;IAED,MAAMC,YAAY,GAAGA,CAAA,KAAM;MACzB;MACA,IAAIV,EAAE,CAACW,OAAO,KAAK,IAAI,EAAE;MAEzBX,EAAE,CAACW,OAAO,GAAGC,qBAAqB,CAAC,MAAM;QACvCT,kBAAkB,CAAC,CAAC;QACpBH,EAAE,CAACW,OAAO,GAAG,IAAI;MACnB,CAAC,CAAC;IACJ,CAAC;IAEDR,kBAAkB,CAAC,CAAC;IACpBC,MAAM,CAACS,gBAAgB,CAAC,QAAQ,EAAEH,YAAY,CAAC;IAE/C,OAAO,MAAM;MACXN,MAAM,CAACU,mBAAmB,CAAC,QAAQ,EAAEJ,YAAY,CAAC;MAClD,IAAIV,EAAE,CAACW,OAAO,KAAK,IAAI,EAAEI,oBAAoB,CAACf,EAAE,CAACW,OAAO,CAAC;IAC3D,CAAC;EACH,CAAC,EAAE,EAAE,CAAC;EAEN,OAAOd,cAAc;AACvB","ignoreList":[]}
1
+ {"version":3,"file":"useScrollBarWidth.js","names":["_react","require","state","vertical","horizontal","listeners","Set","rafId","inited","measure","window","visualViewport","nextVertical","innerWidth","width","nextHorizontal","innerHeight","height","forEach","l","handleResize","requestAnimationFrame","init","addEventListener","subscribe","onStoreChange","add","delete","size","removeEventListener","useScrollBarWidth","dim","value","setValue","useState","dimRef","useRef","current","useEffect","onChange"],"sources":["../../../src/utils/use/useScrollBarWidth.ts"],"sourcesContent":["import { useEffect, useRef, useState } from 'react';\n\ntype Dimension = 'vertical' | 'horizontal';\n\nconst state: Record<Dimension, number> = { vertical: 0, horizontal: 0 };\nconst listeners = new Set<() => void>();\n\nlet rafId: number | null = null;\nlet inited = false;\n\nfunction measure() {\n if (!window.visualViewport) return;\n\n const nextVertical = window.innerWidth - window.visualViewport.width;\n const nextHorizontal = window.innerHeight - window.visualViewport.height;\n\n if (nextVertical === state.vertical && nextHorizontal === state.horizontal) return;\n\n state.vertical = nextVertical;\n state.horizontal = nextHorizontal;\n\n listeners.forEach((l) => l());\n}\n\nfunction handleResize() {\n if (rafId !== null) return;\n\n rafId = requestAnimationFrame(() => {\n measure();\n rafId = null;\n });\n}\n\nfunction init() {\n if (inited) return;\n\n inited = true;\n\n measure();\n\n window.addEventListener('resize', handleResize);\n}\n\nfunction subscribe(onStoreChange: () => void) {\n listeners.add(onStoreChange);\n\n init();\n\n return () => {\n listeners.delete(onStoreChange);\n\n if (listeners.size === 0) {\n window.removeEventListener('resize', handleResize);\n }\n };\n}\n\nexport function useScrollBarWidth(vertical = true): number {\n const dim: Dimension = vertical ? 'vertical' : 'horizontal';\n const [value, setValue] = useState(() => state[dim]);\n const dimRef = useRef(dim);\n\n dimRef.current = dim;\n\n useEffect(() => {\n const onChange = () => setValue(state[dimRef.current]);\n\n onChange();\n\n return subscribe(onChange);\n }, []);\n\n return value;\n}\n"],"mappings":";;;;;;AAAA,IAAAA,MAAA,GAAAC,OAAA;AAIA,MAAMC,KAAgC,GAAG;EAAEC,QAAQ,EAAE,CAAC;EAAEC,UAAU,EAAE;AAAE,CAAC;AACvE,MAAMC,SAAS,GAAG,IAAIC,GAAG,CAAa,CAAC;AAEvC,IAAIC,KAAoB,GAAG,IAAI;AAC/B,IAAIC,MAAM,GAAG,KAAK;AAElB,SAASC,OAAOA,CAAA,EAAG;EACjB,IAAI,CAACC,MAAM,CAACC,cAAc,EAAE;EAE5B,MAAMC,YAAY,GAAGF,MAAM,CAACG,UAAU,GAAGH,MAAM,CAACC,cAAc,CAACG,KAAK;EACpE,MAAMC,cAAc,GAAGL,MAAM,CAACM,WAAW,GAAGN,MAAM,CAACC,cAAc,CAACM,MAAM;EAExE,IAAIL,YAAY,KAAKV,KAAK,CAACC,QAAQ,IAAIY,cAAc,KAAKb,KAAK,CAACE,UAAU,EAAE;EAE5EF,KAAK,CAACC,QAAQ,GAAGS,YAAY;EAC7BV,KAAK,CAACE,UAAU,GAAGW,cAAc;EAEjCV,SAAS,CAACa,OAAO,CAAEC,CAAC,IAAKA,CAAC,CAAC,CAAC,CAAC;AAC/B;AAEA,SAASC,YAAYA,CAAA,EAAG;EACtB,IAAIb,KAAK,KAAK,IAAI,EAAE;EAEpBA,KAAK,GAAGc,qBAAqB,CAAC,MAAM;IAClCZ,OAAO,CAAC,CAAC;IACTF,KAAK,GAAG,IAAI;EACd,CAAC,CAAC;AACJ;AAEA,SAASe,IAAIA,CAAA,EAAG;EACd,IAAId,MAAM,EAAE;EAEZA,MAAM,GAAG,IAAI;EAEbC,OAAO,CAAC,CAAC;EAETC,MAAM,CAACa,gBAAgB,CAAC,QAAQ,EAAEH,YAAY,CAAC;AACjD;AAEA,SAASI,SAASA,CAACC,aAAyB,EAAE;EAC5CpB,SAAS,CAACqB,GAAG,CAACD,aAAa,CAAC;EAE5BH,IAAI,CAAC,CAAC;EAEN,OAAO,MAAM;IACXjB,SAAS,CAACsB,MAAM,CAACF,aAAa,CAAC;IAE/B,IAAIpB,SAAS,CAACuB,IAAI,KAAK,CAAC,EAAE;MACxBlB,MAAM,CAACmB,mBAAmB,CAAC,QAAQ,EAAET,YAAY,CAAC;IACpD;EACF,CAAC;AACH;AAEO,SAASU,iBAAiBA,CAAC3B,QAAQ,GAAG,IAAI,EAAU;EACzD,MAAM4B,GAAc,GAAG5B,QAAQ,GAAG,UAAU,GAAG,YAAY;EAC3D,MAAM,CAAC6B,KAAK,EAAEC,QAAQ,CAAC,GAAG,IAAAC,eAAQ,EAAC,MAAMhC,KAAK,CAAC6B,GAAG,CAAC,CAAC;EACpD,MAAMI,MAAM,GAAG,IAAAC,aAAM,EAACL,GAAG,CAAC;EAE1BI,MAAM,CAACE,OAAO,GAAGN,GAAG;EAEpB,IAAAO,gBAAS,EAAC,MAAM;IACd,MAAMC,QAAQ,GAAGA,CAAA,KAAMN,QAAQ,CAAC/B,KAAK,CAACiC,MAAM,CAACE,OAAO,CAAC,CAAC;IAEtDE,QAAQ,CAAC,CAAC;IAEV,OAAOf,SAAS,CAACe,QAAQ,CAAC;EAC5B,CAAC,EAAE,EAAE,CAAC;EAEN,OAAOP,KAAK;AACd","ignoreList":[]}
@@ -1,31 +1,53 @@
1
- import { useEffect, useState, useRef } from 'react';
1
+ import { useEffect, useRef, useState } from 'react';
2
+ const state = {
3
+ vertical: 0,
4
+ horizontal: 0
5
+ };
6
+ const listeners = new Set();
7
+ let rafId = null;
8
+ let inited = false;
9
+ function measure() {
10
+ if (!window.visualViewport) return;
11
+ const nextVertical = window.innerWidth - window.visualViewport.width;
12
+ const nextHorizontal = window.innerHeight - window.visualViewport.height;
13
+ if (nextVertical === state.vertical && nextHorizontal === state.horizontal) return;
14
+ state.vertical = nextVertical;
15
+ state.horizontal = nextHorizontal;
16
+ listeners.forEach(l => l());
17
+ }
18
+ function handleResize() {
19
+ if (rafId !== null) return;
20
+ rafId = requestAnimationFrame(() => {
21
+ measure();
22
+ rafId = null;
23
+ });
24
+ }
25
+ function init() {
26
+ if (inited) return;
27
+ inited = true;
28
+ measure();
29
+ window.addEventListener('resize', handleResize);
30
+ }
31
+ function subscribe(onStoreChange) {
32
+ listeners.add(onStoreChange);
33
+ init();
34
+ return () => {
35
+ listeners.delete(onStoreChange);
36
+ if (listeners.size === 0) {
37
+ window.removeEventListener('resize', handleResize);
38
+ }
39
+ };
40
+ }
2
41
  export function useScrollBarWidth(vertical = true) {
3
- const [scrollBarWidth, setScrollBarWidth] = useState(0);
4
- const af = useRef(null);
42
+ const dim = vertical ? 'vertical' : 'horizontal';
43
+ const [value, setValue] = useState(() => state[dim]);
44
+ const dimRef = useRef(dim);
45
+ dimRef.current = dim;
5
46
  useEffect(() => {
6
- const calculateScrollBar = () => {
7
- if (!window.visualViewport) return;
8
- if (!vertical) {
9
- setScrollBarWidth(window.innerHeight - window.visualViewport.height);
10
- return;
11
- }
12
- setScrollBarWidth(window.innerWidth - window.visualViewport.width);
13
- };
14
- const handleResize = () => {
15
- // to handle resize 1 time per frame
16
- if (af.current !== null) return;
17
- af.current = requestAnimationFrame(() => {
18
- calculateScrollBar();
19
- af.current = null;
20
- });
21
- };
22
- calculateScrollBar();
23
- window.addEventListener('resize', handleResize);
24
- return () => {
25
- window.removeEventListener('resize', handleResize);
26
- if (af.current !== null) cancelAnimationFrame(af.current);
27
- };
47
+ const onChange = () => setValue(state[dimRef.current]);
48
+ onChange();
49
+ return subscribe(onChange);
28
50
  }, []);
29
- return scrollBarWidth;
51
+ return value;
30
52
  }
31
53
  //# sourceMappingURL=useScrollBarWidth.mjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"useScrollBarWidth.mjs","names":["useEffect","useState","useRef","useScrollBarWidth","vertical","scrollBarWidth","setScrollBarWidth","af","calculateScrollBar","window","visualViewport","innerHeight","height","innerWidth","width","handleResize","current","requestAnimationFrame","addEventListener","removeEventListener","cancelAnimationFrame"],"sources":["../../../src/utils/use/useScrollBarWidth.ts"],"sourcesContent":["import { useEffect, useState, useRef } from 'react';\n\nexport function useScrollBarWidth(vertical = true): number {\n const [scrollBarWidth, setScrollBarWidth] = useState(0);\n const af = useRef<number | null>(null);\n\n useEffect(() => {\n const calculateScrollBar = () => {\n if (!window.visualViewport) return;\n\n if (!vertical) {\n setScrollBarWidth(window.innerHeight - window.visualViewport.height);\n return;\n }\n\n setScrollBarWidth(window.innerWidth - window.visualViewport.width);\n };\n\n const handleResize = () => {\n // to handle resize 1 time per frame\n if (af.current !== null) return;\n\n af.current = requestAnimationFrame(() => {\n calculateScrollBar();\n af.current = null;\n });\n };\n\n calculateScrollBar();\n window.addEventListener('resize', handleResize);\n\n return () => {\n window.removeEventListener('resize', handleResize);\n if (af.current !== null) cancelAnimationFrame(af.current);\n };\n }, []);\n\n return scrollBarWidth;\n}\n"],"mappings":"AAAA,SAASA,SAAS,EAAEC,QAAQ,EAAEC,MAAM,QAAQ,OAAO;AAEnD,OAAO,SAASC,iBAAiBA,CAACC,QAAQ,GAAG,IAAI,EAAU;EACzD,MAAM,CAACC,cAAc,EAAEC,iBAAiB,CAAC,GAAGL,QAAQ,CAAC,CAAC,CAAC;EACvD,MAAMM,EAAE,GAAGL,MAAM,CAAgB,IAAI,CAAC;EAEtCF,SAAS,CAAC,MAAM;IACd,MAAMQ,kBAAkB,GAAGA,CAAA,KAAM;MAC/B,IAAI,CAACC,MAAM,CAACC,cAAc,EAAE;MAE5B,IAAI,CAACN,QAAQ,EAAE;QACbE,iBAAiB,CAACG,MAAM,CAACE,WAAW,GAAGF,MAAM,CAACC,cAAc,CAACE,MAAM,CAAC;QACpE;MACF;MAEAN,iBAAiB,CAACG,MAAM,CAACI,UAAU,GAAGJ,MAAM,CAACC,cAAc,CAACI,KAAK,CAAC;IACpE,CAAC;IAED,MAAMC,YAAY,GAAGA,CAAA,KAAM;MACzB;MACA,IAAIR,EAAE,CAACS,OAAO,KAAK,IAAI,EAAE;MAEzBT,EAAE,CAACS,OAAO,GAAGC,qBAAqB,CAAC,MAAM;QACvCT,kBAAkB,CAAC,CAAC;QACpBD,EAAE,CAACS,OAAO,GAAG,IAAI;MACnB,CAAC,CAAC;IACJ,CAAC;IAEDR,kBAAkB,CAAC,CAAC;IACpBC,MAAM,CAACS,gBAAgB,CAAC,QAAQ,EAAEH,YAAY,CAAC;IAE/C,OAAO,MAAM;MACXN,MAAM,CAACU,mBAAmB,CAAC,QAAQ,EAAEJ,YAAY,CAAC;MAClD,IAAIR,EAAE,CAACS,OAAO,KAAK,IAAI,EAAEI,oBAAoB,CAACb,EAAE,CAACS,OAAO,CAAC;IAC3D,CAAC;EACH,CAAC,EAAE,EAAE,CAAC;EAEN,OAAOX,cAAc;AACvB","ignoreList":[]}
1
+ {"version":3,"file":"useScrollBarWidth.mjs","names":["useEffect","useRef","useState","state","vertical","horizontal","listeners","Set","rafId","inited","measure","window","visualViewport","nextVertical","innerWidth","width","nextHorizontal","innerHeight","height","forEach","l","handleResize","requestAnimationFrame","init","addEventListener","subscribe","onStoreChange","add","delete","size","removeEventListener","useScrollBarWidth","dim","value","setValue","dimRef","current","onChange"],"sources":["../../../src/utils/use/useScrollBarWidth.ts"],"sourcesContent":["import { useEffect, useRef, useState } from 'react';\n\ntype Dimension = 'vertical' | 'horizontal';\n\nconst state: Record<Dimension, number> = { vertical: 0, horizontal: 0 };\nconst listeners = new Set<() => void>();\n\nlet rafId: number | null = null;\nlet inited = false;\n\nfunction measure() {\n if (!window.visualViewport) return;\n\n const nextVertical = window.innerWidth - window.visualViewport.width;\n const nextHorizontal = window.innerHeight - window.visualViewport.height;\n\n if (nextVertical === state.vertical && nextHorizontal === state.horizontal) return;\n\n state.vertical = nextVertical;\n state.horizontal = nextHorizontal;\n\n listeners.forEach((l) => l());\n}\n\nfunction handleResize() {\n if (rafId !== null) return;\n\n rafId = requestAnimationFrame(() => {\n measure();\n rafId = null;\n });\n}\n\nfunction init() {\n if (inited) return;\n\n inited = true;\n\n measure();\n\n window.addEventListener('resize', handleResize);\n}\n\nfunction subscribe(onStoreChange: () => void) {\n listeners.add(onStoreChange);\n\n init();\n\n return () => {\n listeners.delete(onStoreChange);\n\n if (listeners.size === 0) {\n window.removeEventListener('resize', handleResize);\n }\n };\n}\n\nexport function useScrollBarWidth(vertical = true): number {\n const dim: Dimension = vertical ? 'vertical' : 'horizontal';\n const [value, setValue] = useState(() => state[dim]);\n const dimRef = useRef(dim);\n\n dimRef.current = dim;\n\n useEffect(() => {\n const onChange = () => setValue(state[dimRef.current]);\n\n onChange();\n\n return subscribe(onChange);\n }, []);\n\n return value;\n}\n"],"mappings":"AAAA,SAASA,SAAS,EAAEC,MAAM,EAAEC,QAAQ,QAAQ,OAAO;AAInD,MAAMC,KAAgC,GAAG;EAAEC,QAAQ,EAAE,CAAC;EAAEC,UAAU,EAAE;AAAE,CAAC;AACvE,MAAMC,SAAS,GAAG,IAAIC,GAAG,CAAa,CAAC;AAEvC,IAAIC,KAAoB,GAAG,IAAI;AAC/B,IAAIC,MAAM,GAAG,KAAK;AAElB,SAASC,OAAOA,CAAA,EAAG;EACjB,IAAI,CAACC,MAAM,CAACC,cAAc,EAAE;EAE5B,MAAMC,YAAY,GAAGF,MAAM,CAACG,UAAU,GAAGH,MAAM,CAACC,cAAc,CAACG,KAAK;EACpE,MAAMC,cAAc,GAAGL,MAAM,CAACM,WAAW,GAAGN,MAAM,CAACC,cAAc,CAACM,MAAM;EAExE,IAAIL,YAAY,KAAKV,KAAK,CAACC,QAAQ,IAAIY,cAAc,KAAKb,KAAK,CAACE,UAAU,EAAE;EAE5EF,KAAK,CAACC,QAAQ,GAAGS,YAAY;EAC7BV,KAAK,CAACE,UAAU,GAAGW,cAAc;EAEjCV,SAAS,CAACa,OAAO,CAAEC,CAAC,IAAKA,CAAC,CAAC,CAAC,CAAC;AAC/B;AAEA,SAASC,YAAYA,CAAA,EAAG;EACtB,IAAIb,KAAK,KAAK,IAAI,EAAE;EAEpBA,KAAK,GAAGc,qBAAqB,CAAC,MAAM;IAClCZ,OAAO,CAAC,CAAC;IACTF,KAAK,GAAG,IAAI;EACd,CAAC,CAAC;AACJ;AAEA,SAASe,IAAIA,CAAA,EAAG;EACd,IAAId,MAAM,EAAE;EAEZA,MAAM,GAAG,IAAI;EAEbC,OAAO,CAAC,CAAC;EAETC,MAAM,CAACa,gBAAgB,CAAC,QAAQ,EAAEH,YAAY,CAAC;AACjD;AAEA,SAASI,SAASA,CAACC,aAAyB,EAAE;EAC5CpB,SAAS,CAACqB,GAAG,CAACD,aAAa,CAAC;EAE5BH,IAAI,CAAC,CAAC;EAEN,OAAO,MAAM;IACXjB,SAAS,CAACsB,MAAM,CAACF,aAAa,CAAC;IAE/B,IAAIpB,SAAS,CAACuB,IAAI,KAAK,CAAC,EAAE;MACxBlB,MAAM,CAACmB,mBAAmB,CAAC,QAAQ,EAAET,YAAY,CAAC;IACpD;EACF,CAAC;AACH;AAEA,OAAO,SAASU,iBAAiBA,CAAC3B,QAAQ,GAAG,IAAI,EAAU;EACzD,MAAM4B,GAAc,GAAG5B,QAAQ,GAAG,UAAU,GAAG,YAAY;EAC3D,MAAM,CAAC6B,KAAK,EAAEC,QAAQ,CAAC,GAAGhC,QAAQ,CAAC,MAAMC,KAAK,CAAC6B,GAAG,CAAC,CAAC;EACpD,MAAMG,MAAM,GAAGlC,MAAM,CAAC+B,GAAG,CAAC;EAE1BG,MAAM,CAACC,OAAO,GAAGJ,GAAG;EAEpBhC,SAAS,CAAC,MAAM;IACd,MAAMqC,QAAQ,GAAGA,CAAA,KAAMH,QAAQ,CAAC/B,KAAK,CAACgC,MAAM,CAACC,OAAO,CAAC,CAAC;IAEtDC,QAAQ,CAAC,CAAC;IAEV,OAAOZ,SAAS,CAACY,QAAQ,CAAC;EAC5B,CAAC,EAAE,EAAE,CAAC;EAEN,OAAOJ,KAAK;AACd","ignoreList":[]}
@@ -6,3 +6,4 @@ export declare const cssVariableEnhance: <P extends string, F = string, R = stri
6
6
  fallback: F;
7
7
  map?: M;
8
8
  }) => <T extends {}>(props: T) => T & { [key in P]: M extends (value: string) => R ? R : F; };
9
+ //# sourceMappingURL=useCssVariable.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useCssVariable.d.ts","sourceRoot":"","sources":["../../src/utils/useCssVariable.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAM1B,eAAO,MAAM,cAAc,GAAI,MAAM,MAAM,EAAE,eAAe,MAAM,EAAE,MAAM,KAAK,CAAC,SAAS,CAAC,GAAG,CAAC,WAkB7F,CAAC;AAEF,eAAO,MAAM,kBAAkB,GAC7B,CAAC,SAAS,MAAM,EAChB,CAAC,GAAG,MAAM,EACV,CAAC,GAAG,MAAM,EACV,CAAC,SAAS,IAAI,GAAG,CAAC,CAAC,KAAK,EAAE,MAAM,KAAK,CAAC,CAAC,GAAG,GAAG,EAC7C,oCAKC;IACD,QAAQ,EAAE,MAAM,CAAC;IACjB,IAAI,EAAE,CAAC,CAAC;IACR,QAAQ,EAAE,CAAC,CAAC;IACZ,GAAG,CAAC,EAAE,CAAC,CAAC;CACT,MACS,CAAC,SAAS,EAAE,EAAE,OAAO,CAAC,KAavB,CAAC,GAAG,GACN,GAAG,IAAI,CAAC,GAAG,CAAC,SAAS,CAAC,KAAK,EAAE,MAAM,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,GAGvD,CAAC"}
@@ -8,3 +8,4 @@ export declare const ZIndexStackingContextProvider: React.FC<{
8
8
  export declare const zIndexStackingEnhance: (designToken?: ZIndexDesignTokens) => (props: any) => {
9
9
  parentZIndexStacking: ReturnType<typeof useZIndexStacking>;
10
10
  };
11
+ //# sourceMappingURL=zIndexStacking.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"zIndexStacking.d.ts","sourceRoot":"","sources":["../../src/utils/zIndexStacking.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAQ1B,MAAM,MAAM,kBAAkB,GAC1B,cAAc,GACd,iBAAiB,GACjB,eAAe,GACf,gBAAgB,GAChB,kBAAkB,GAClB,iBAAiB,GACjB,uBAAuB,CAAC;AAE5B,eAAO,MAAM,iBAAiB,GAAI,cAAc,kBAAkB,WAgBjE,CAAC;AACF,eAAO,MAAM,6BAA6B,EAAE,KAAK,CAAC,EAAE,CAAC;IACnD,WAAW,EAAE,kBAAkB,CAAC;IAChC,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAC;CAC3B,CAKA,CAAC;AACF,eAAO,MAAM,qBAAqB,GAAI,cAAc,kBAAkB,MAC5D,OAAO,GAAG,KAAG;IAAE,oBAAoB,EAAE,UAAU,CAAC,OAAO,iBAAiB,CAAC,CAAA;CAQlF,CAAC"}
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@semcore/core",
3
3
  "description": "Semrush Core Component",
4
- "version": "17.3.0",
4
+ "version": "17.3.1-prerelease.11",
5
5
  "main": "lib/index.js",
6
6
  "module": "lib/index.mjs",
7
7
  "typings": "lib/index.d.ts",
@@ -330,7 +330,7 @@
330
330
  "@types/classnames": "2.2.6",
331
331
  "@types/hoist-non-react-statics": "^3.3.6",
332
332
  "@semcore/testing-utils": "1.0.0",
333
- "@semcore/theme": "2.3.0"
333
+ "@semcore/theme": "2.3.1"
334
334
  },
335
335
  "scripts": {
336
336
  "build": "pnpm semcore-builder --coreUtils && pnpm vite build"
@@ -1,4 +1,4 @@
1
1
  {
2
- "extends": "../../tsconfig.json",
2
+ "extends": "../tsconfig.json",
3
3
  "include": ["src/utils", "src/decorators", "../../tools/theme/src"]
4
4
  }