@abcagency/hc-ui-components 1.3.82 → 1.3.84

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 (248) hide show
  1. package/dist/components/HireControlMap.js +1 -1
  2. package/dist/components/containers/filter/commute-container.js +1 -1
  3. package/dist/components/containers/maps/map-container.js +1 -1
  4. package/dist/components/containers/maps/map-marker-container.js +1 -1
  5. package/dist/components/modules/accordions/default.js +2 -2
  6. package/dist/components/modules/buttons/button-group-apply.js +1 -1
  7. package/dist/components/modules/buttons/default.js +2 -2
  8. package/dist/components/modules/cards/default.js +2 -2
  9. package/dist/components/modules/dialogs/apply-dialog.js +1 -1
  10. package/dist/components/modules/filter/commute.js +2 -2
  11. package/dist/components/modules/filter/index.js +8 -7
  12. package/dist/components/modules/filter/index.js.map +1 -1
  13. package/dist/components/modules/filter/sort.js +2 -2
  14. package/dist/components/modules/grid.js +1 -1
  15. package/dist/components/modules/icon.js +1 -1
  16. package/dist/components/modules/list/header.js +1 -1
  17. package/dist/components/modules/list/item-expand-card/index.js +1 -1
  18. package/dist/components/modules/list/item-list.js +3 -1
  19. package/dist/components/modules/list/item-list.js.map +1 -1
  20. package/dist/components/modules/maps/map-marker.js +1 -1
  21. package/dist/components/modules/maps/map.js +1 -1
  22. package/dist/components/modules/maps/place-marker.js +1 -1
  23. package/dist/components/modules/maps/tabs.js +16 -56
  24. package/dist/components/modules/maps/tabs.js.map +1 -1
  25. package/dist/node_modules/@floating-ui/core/dist/floating-ui.core.js +802 -0
  26. package/dist/node_modules/@floating-ui/core/dist/floating-ui.core.js.map +1 -0
  27. package/dist/node_modules/@floating-ui/dom/dist/floating-ui.dom.js +679 -0
  28. package/dist/node_modules/@floating-ui/dom/dist/floating-ui.dom.js.map +1 -0
  29. package/dist/node_modules/@floating-ui/react-dom/dist/floating-ui.react-dom.js +343 -0
  30. package/dist/node_modules/@floating-ui/react-dom/dist/floating-ui.react-dom.js.map +1 -0
  31. package/dist/node_modules/@floating-ui/utils/dist/floating-ui.utils.dom.js +140 -0
  32. package/dist/node_modules/@floating-ui/utils/dist/floating-ui.utils.dom.js.map +1 -0
  33. package/dist/node_modules/@floating-ui/utils/dist/floating-ui.utils.js +137 -0
  34. package/dist/node_modules/@floating-ui/utils/dist/floating-ui.utils.js.map +1 -0
  35. package/dist/node_modules/@headlessui/react/dist/components/combobox/combobox.js +33 -0
  36. package/dist/node_modules/@headlessui/react/dist/components/combobox/combobox.js.map +1 -0
  37. package/dist/node_modules/@headlessui/react/dist/components/keyboard.js +4 -0
  38. package/dist/node_modules/@headlessui/react/dist/components/keyboard.js.map +1 -0
  39. package/dist/node_modules/@headlessui/react/dist/components/transitions/transition.js +19 -0
  40. package/dist/node_modules/@headlessui/react/dist/components/transitions/transition.js.map +1 -0
  41. package/dist/node_modules/@headlessui/react/dist/components/transitions/utils/transition.js +8 -0
  42. package/dist/node_modules/@headlessui/react/dist/components/transitions/utils/transition.js.map +1 -0
  43. package/dist/node_modules/@headlessui/react/dist/hooks/use-computed.js +8 -0
  44. package/dist/node_modules/@headlessui/react/dist/hooks/use-computed.js.map +1 -0
  45. package/dist/node_modules/@headlessui/react/dist/hooks/use-controllable.js +7 -0
  46. package/dist/node_modules/@headlessui/react/dist/hooks/use-controllable.js.map +1 -0
  47. package/dist/node_modules/@headlessui/react/dist/hooks/use-disposables.js +7 -0
  48. package/dist/node_modules/@headlessui/react/dist/hooks/use-disposables.js.map +1 -0
  49. package/dist/node_modules/@headlessui/react/dist/hooks/use-document-event.js +7 -0
  50. package/dist/node_modules/@headlessui/react/dist/hooks/use-document-event.js.map +1 -0
  51. package/dist/node_modules/@headlessui/react/dist/hooks/use-event.js +7 -0
  52. package/dist/node_modules/@headlessui/react/dist/hooks/use-event.js.map +1 -0
  53. package/dist/node_modules/@headlessui/react/dist/hooks/use-flags.js +7 -0
  54. package/dist/node_modules/@headlessui/react/dist/hooks/use-flags.js.map +1 -0
  55. package/dist/node_modules/@headlessui/react/dist/hooks/use-id.js +9 -0
  56. package/dist/node_modules/@headlessui/react/dist/hooks/use-id.js.map +1 -0
  57. package/dist/node_modules/@headlessui/react/dist/hooks/use-is-mounted.js +7 -0
  58. package/dist/node_modules/@headlessui/react/dist/hooks/use-is-mounted.js.map +1 -0
  59. package/dist/node_modules/@headlessui/react/dist/hooks/use-iso-morphic-effect.js +7 -0
  60. package/dist/node_modules/@headlessui/react/dist/hooks/use-iso-morphic-effect.js.map +1 -0
  61. package/dist/node_modules/@headlessui/react/dist/hooks/use-latest-value.js +7 -0
  62. package/dist/node_modules/@headlessui/react/dist/hooks/use-latest-value.js.map +1 -0
  63. package/dist/node_modules/@headlessui/react/dist/hooks/use-outside-click.js +10 -0
  64. package/dist/node_modules/@headlessui/react/dist/hooks/use-outside-click.js.map +1 -0
  65. package/dist/node_modules/@headlessui/react/dist/hooks/use-owner.js +7 -0
  66. package/dist/node_modules/@headlessui/react/dist/hooks/use-owner.js.map +1 -0
  67. package/dist/node_modules/@headlessui/react/dist/hooks/use-resolve-button-type.js +7 -0
  68. package/dist/node_modules/@headlessui/react/dist/hooks/use-resolve-button-type.js.map +1 -0
  69. package/dist/node_modules/@headlessui/react/dist/hooks/use-server-handoff-complete.js +7 -0
  70. package/dist/node_modules/@headlessui/react/dist/hooks/use-server-handoff-complete.js.map +1 -0
  71. package/dist/node_modules/@headlessui/react/dist/hooks/use-sync-refs.js +7 -0
  72. package/dist/node_modules/@headlessui/react/dist/hooks/use-sync-refs.js.map +1 -0
  73. package/dist/node_modules/@headlessui/react/dist/hooks/use-tracked-pointer.js +6 -0
  74. package/dist/node_modules/@headlessui/react/dist/hooks/use-tracked-pointer.js.map +1 -0
  75. package/dist/node_modules/@headlessui/react/dist/hooks/use-transition.js +11 -0
  76. package/dist/node_modules/@headlessui/react/dist/hooks/use-transition.js.map +1 -0
  77. package/dist/node_modules/@headlessui/react/dist/hooks/use-tree-walker.js +8 -0
  78. package/dist/node_modules/@headlessui/react/dist/hooks/use-tree-walker.js.map +1 -0
  79. package/dist/node_modules/@headlessui/react/dist/hooks/use-watch.js +7 -0
  80. package/dist/node_modules/@headlessui/react/dist/hooks/use-watch.js.map +1 -0
  81. package/dist/node_modules/@headlessui/react/dist/hooks/use-window-event.js +7 -0
  82. package/dist/node_modules/@headlessui/react/dist/hooks/use-window-event.js.map +1 -0
  83. package/dist/node_modules/@headlessui/react/dist/internal/hidden.js +6 -0
  84. package/dist/node_modules/@headlessui/react/dist/internal/hidden.js.map +1 -0
  85. package/dist/node_modules/@headlessui/react/dist/internal/open-closed.js +6 -0
  86. package/dist/node_modules/@headlessui/react/dist/internal/open-closed.js.map +1 -0
  87. package/dist/node_modules/@headlessui/react/dist/utils/active-element-history.js +6 -0
  88. package/dist/node_modules/@headlessui/react/dist/utils/active-element-history.js.map +1 -0
  89. package/dist/node_modules/@headlessui/react/dist/utils/bugs.js +4 -0
  90. package/dist/node_modules/@headlessui/react/dist/utils/bugs.js.map +1 -0
  91. package/dist/node_modules/@headlessui/react/dist/utils/calculate-active-index.js +4 -0
  92. package/dist/node_modules/@headlessui/react/dist/utils/calculate-active-index.js.map +1 -0
  93. package/dist/node_modules/@headlessui/react/dist/utils/class-names.js +4 -0
  94. package/dist/node_modules/@headlessui/react/dist/utils/class-names.js.map +1 -0
  95. package/dist/node_modules/@headlessui/react/dist/utils/disposables.js +6 -0
  96. package/dist/node_modules/@headlessui/react/dist/utils/disposables.js.map +1 -0
  97. package/dist/node_modules/@headlessui/react/dist/utils/document-ready.js +4 -0
  98. package/dist/node_modules/@headlessui/react/dist/utils/document-ready.js.map +1 -0
  99. package/dist/node_modules/@headlessui/react/dist/utils/env.js +4 -0
  100. package/dist/node_modules/@headlessui/react/dist/utils/env.js.map +1 -0
  101. package/dist/node_modules/@headlessui/react/dist/utils/focus-management.js +7 -0
  102. package/dist/node_modules/@headlessui/react/dist/utils/focus-management.js.map +1 -0
  103. package/dist/node_modules/@headlessui/react/dist/utils/form.js +4 -0
  104. package/dist/node_modules/@headlessui/react/dist/utils/form.js.map +1 -0
  105. package/dist/node_modules/@headlessui/react/dist/utils/match.js +4 -0
  106. package/dist/node_modules/@headlessui/react/dist/utils/match.js.map +1 -0
  107. package/dist/node_modules/@headlessui/react/dist/utils/micro-task.js +4 -0
  108. package/dist/node_modules/@headlessui/react/dist/utils/micro-task.js.map +1 -0
  109. package/dist/node_modules/@headlessui/react/dist/utils/once.js +4 -0
  110. package/dist/node_modules/@headlessui/react/dist/utils/once.js.map +1 -0
  111. package/dist/node_modules/@headlessui/react/dist/utils/owner.js +6 -0
  112. package/dist/node_modules/@headlessui/react/dist/utils/owner.js.map +1 -0
  113. package/dist/node_modules/@headlessui/react/dist/utils/platform.js +4 -0
  114. package/dist/node_modules/@headlessui/react/dist/utils/platform.js.map +1 -0
  115. package/dist/node_modules/@headlessui/react/dist/utils/render.js +11 -0
  116. package/dist/node_modules/@headlessui/react/dist/utils/render.js.map +1 -0
  117. package/dist/node_modules/@iconify/react/dist/iconify.js +1928 -0
  118. package/dist/node_modules/@iconify/react/dist/iconify.js.map +1 -0
  119. package/dist/node_modules/@radix-ui/number/dist/index.js +7 -0
  120. package/dist/node_modules/@radix-ui/number/dist/index.js.map +1 -0
  121. package/dist/node_modules/@radix-ui/primitive/dist/index.js +12 -0
  122. package/dist/node_modules/@radix-ui/primitive/dist/index.js.map +1 -0
  123. package/dist/node_modules/@radix-ui/react-accordion/dist/index.js +304 -0
  124. package/dist/node_modules/@radix-ui/react-accordion/dist/index.js.map +1 -0
  125. package/dist/node_modules/@radix-ui/react-arrow/dist/index.js +26 -0
  126. package/dist/node_modules/@radix-ui/react-arrow/dist/index.js.map +1 -0
  127. package/dist/node_modules/@radix-ui/react-collapsible/dist/index.js +145 -0
  128. package/dist/node_modules/@radix-ui/react-collapsible/dist/index.js.map +1 -0
  129. package/dist/node_modules/@radix-ui/react-collection/dist/index.js +69 -0
  130. package/dist/node_modules/@radix-ui/react-collection/dist/index.js.map +1 -0
  131. package/dist/node_modules/@radix-ui/react-compose-refs/dist/index.js +19 -0
  132. package/dist/node_modules/@radix-ui/react-compose-refs/dist/index.js.map +1 -0
  133. package/dist/node_modules/@radix-ui/react-context/dist/index.js +80 -0
  134. package/dist/node_modules/@radix-ui/react-context/dist/index.js.map +1 -0
  135. package/dist/node_modules/@radix-ui/react-dialog/dist/index.js +320 -0
  136. package/dist/node_modules/@radix-ui/react-dialog/dist/index.js.map +1 -0
  137. package/dist/node_modules/@radix-ui/react-direction/dist/index.js +12 -0
  138. package/dist/node_modules/@radix-ui/react-direction/dist/index.js.map +1 -0
  139. package/dist/node_modules/@radix-ui/react-dismissable-layer/dist/index.js +212 -0
  140. package/dist/node_modules/@radix-ui/react-dismissable-layer/dist/index.js.map +1 -0
  141. package/dist/node_modules/@radix-ui/react-focus-guards/dist/index.js +27 -0
  142. package/dist/node_modules/@radix-ui/react-focus-guards/dist/index.js.map +1 -0
  143. package/dist/node_modules/@radix-ui/react-focus-scope/dist/index.js +208 -0
  144. package/dist/node_modules/@radix-ui/react-focus-scope/dist/index.js.map +1 -0
  145. package/dist/node_modules/@radix-ui/react-id/dist/index.js +16 -0
  146. package/dist/node_modules/@radix-ui/react-id/dist/index.js.map +1 -0
  147. package/dist/node_modules/@radix-ui/react-popper/dist/index.js +279 -0
  148. package/dist/node_modules/@radix-ui/react-popper/dist/index.js.map +1 -0
  149. package/dist/node_modules/@radix-ui/react-portal/dist/index.js +18 -0
  150. package/dist/node_modules/@radix-ui/react-portal/dist/index.js.map +1 -0
  151. package/dist/node_modules/@radix-ui/react-presence/dist/index.js +120 -0
  152. package/dist/node_modules/@radix-ui/react-presence/dist/index.js.map +1 -0
  153. package/dist/node_modules/@radix-ui/react-primitive/dist/index.js +42 -0
  154. package/dist/node_modules/@radix-ui/react-primitive/dist/index.js.map +1 -0
  155. package/dist/node_modules/@radix-ui/react-roving-focus/dist/index.js +221 -0
  156. package/dist/node_modules/@radix-ui/react-roving-focus/dist/index.js.map +1 -0
  157. package/dist/node_modules/@radix-ui/react-select/dist/index.js +1109 -0
  158. package/dist/node_modules/@radix-ui/react-select/dist/index.js.map +1 -0
  159. package/dist/node_modules/@radix-ui/react-slot/dist/index.js +82 -0
  160. package/dist/node_modules/@radix-ui/react-slot/dist/index.js.map +1 -0
  161. package/dist/node_modules/@radix-ui/react-tabs/dist/index.js +187 -0
  162. package/dist/node_modules/@radix-ui/react-tabs/dist/index.js.map +1 -0
  163. package/dist/node_modules/@radix-ui/react-use-callback-ref/dist/index.js +13 -0
  164. package/dist/node_modules/@radix-ui/react-use-callback-ref/dist/index.js.map +1 -0
  165. package/dist/node_modules/@radix-ui/react-use-controllable-state/dist/index.js +47 -0
  166. package/dist/node_modules/@radix-ui/react-use-controllable-state/dist/index.js.map +1 -0
  167. package/dist/node_modules/@radix-ui/react-use-escape-keydown/dist/index.js +19 -0
  168. package/dist/node_modules/@radix-ui/react-use-escape-keydown/dist/index.js.map +1 -0
  169. package/dist/node_modules/@radix-ui/react-use-layout-effect/dist/index.js +8 -0
  170. package/dist/node_modules/@radix-ui/react-use-layout-effect/dist/index.js.map +1 -0
  171. package/dist/node_modules/@radix-ui/react-use-previous/dist/index.js +16 -0
  172. package/dist/node_modules/@radix-ui/react-use-previous/dist/index.js.map +1 -0
  173. package/dist/node_modules/@radix-ui/react-use-size/dist/index.js +41 -0
  174. package/dist/node_modules/@radix-ui/react-use-size/dist/index.js.map +1 -0
  175. package/dist/node_modules/@radix-ui/react-visually-hidden/dist/index.js +35 -0
  176. package/dist/node_modules/@radix-ui/react-visually-hidden/dist/index.js.map +1 -0
  177. package/dist/node_modules/@react-google-maps/api/dist/esm.js +8515 -0
  178. package/dist/node_modules/@react-google-maps/api/dist/esm.js.map +1 -0
  179. package/dist/node_modules/@remix-run/router/dist/router.js +271 -0
  180. package/dist/node_modules/@remix-run/router/dist/router.js.map +1 -0
  181. package/dist/node_modules/@tanstack/react-virtual/dist/esm/index.js +43 -0
  182. package/dist/node_modules/@tanstack/react-virtual/dist/esm/index.js.map +1 -0
  183. package/dist/node_modules/@tanstack/virtual-core/dist/esm/index.js +669 -0
  184. package/dist/node_modules/@tanstack/virtual-core/dist/esm/index.js.map +1 -0
  185. package/dist/node_modules/@tanstack/virtual-core/dist/esm/utils.js +61 -0
  186. package/dist/node_modules/@tanstack/virtual-core/dist/esm/utils.js.map +1 -0
  187. package/dist/node_modules/aria-hidden/dist/es2015/index.js +137 -0
  188. package/dist/node_modules/aria-hidden/dist/es2015/index.js.map +1 -0
  189. package/dist/node_modules/fuse.js/dist/fuse.js +1779 -0
  190. package/dist/node_modules/fuse.js/dist/fuse.js.map +1 -0
  191. package/dist/node_modules/get-nonce/dist/es2015/index.js +9 -0
  192. package/dist/node_modules/get-nonce/dist/es2015/index.js.map +1 -0
  193. package/dist/node_modules/react/cjs/react-jsx-runtime.production.min.js +17 -0
  194. package/dist/node_modules/react/cjs/react-jsx-runtime.production.min.js.map +1 -0
  195. package/dist/node_modules/react/jsx-runtime.js +12 -0
  196. package/dist/node_modules/react/jsx-runtime.js.map +1 -0
  197. package/dist/node_modules/react-remove-scroll/dist/es2015/Combination.js +10 -0
  198. package/dist/node_modules/react-remove-scroll/dist/es2015/Combination.js.map +1 -0
  199. package/dist/node_modules/react-remove-scroll/dist/es2015/SideEffect.js +161 -0
  200. package/dist/node_modules/react-remove-scroll/dist/es2015/SideEffect.js.map +1 -0
  201. package/dist/node_modules/react-remove-scroll/dist/es2015/UI.js +39 -0
  202. package/dist/node_modules/react-remove-scroll/dist/es2015/UI.js.map +1 -0
  203. package/dist/node_modules/react-remove-scroll/dist/es2015/aggresiveCapture.js +22 -0
  204. package/dist/node_modules/react-remove-scroll/dist/es2015/aggresiveCapture.js.map +1 -0
  205. package/dist/node_modules/react-remove-scroll/dist/es2015/handleScroll.js +107 -0
  206. package/dist/node_modules/react-remove-scroll/dist/es2015/handleScroll.js.map +1 -0
  207. package/dist/node_modules/react-remove-scroll/dist/es2015/medium.js +6 -0
  208. package/dist/node_modules/react-remove-scroll/dist/es2015/medium.js.map +1 -0
  209. package/dist/node_modules/react-remove-scroll/dist/es2015/sidecar.js +8 -0
  210. package/dist/node_modules/react-remove-scroll/dist/es2015/sidecar.js.map +1 -0
  211. package/dist/node_modules/react-remove-scroll-bar/dist/es2015/component.js +57 -0
  212. package/dist/node_modules/react-remove-scroll-bar/dist/es2015/component.js.map +1 -0
  213. package/dist/node_modules/react-remove-scroll-bar/dist/es2015/constants.js +11 -0
  214. package/dist/node_modules/react-remove-scroll-bar/dist/es2015/constants.js.map +1 -0
  215. package/dist/node_modules/react-remove-scroll-bar/dist/es2015/utils.js +32 -0
  216. package/dist/node_modules/react-remove-scroll-bar/dist/es2015/utils.js.map +1 -0
  217. package/dist/node_modules/react-router/dist/index.js +280 -0
  218. package/dist/node_modules/react-router/dist/index.js.map +1 -0
  219. package/dist/node_modules/react-router-dom/dist/index.js +201 -0
  220. package/dist/node_modules/react-router-dom/dist/index.js.map +1 -0
  221. package/dist/node_modules/react-style-singleton/dist/es2015/component.js +20 -0
  222. package/dist/node_modules/react-style-singleton/dist/es2015/component.js.map +1 -0
  223. package/dist/node_modules/react-style-singleton/dist/es2015/hook.js +26 -0
  224. package/dist/node_modules/react-style-singleton/dist/es2015/hook.js.map +1 -0
  225. package/dist/node_modules/react-style-singleton/dist/es2015/singleton.js +52 -0
  226. package/dist/node_modules/react-style-singleton/dist/es2015/singleton.js.map +1 -0
  227. package/dist/node_modules/tailwind-merge/dist/bundle-mjs.js +2530 -0
  228. package/dist/node_modules/tailwind-merge/dist/bundle-mjs.js.map +1 -0
  229. package/dist/node_modules/tslib/tslib.es6.js +57 -0
  230. package/dist/node_modules/tslib/tslib.es6.js.map +1 -0
  231. package/dist/node_modules/use-callback-ref/dist/es2015/assignRef.js +25 -0
  232. package/dist/node_modules/use-callback-ref/dist/es2015/assignRef.js.map +1 -0
  233. package/dist/node_modules/use-callback-ref/dist/es2015/useMergeRef.js +49 -0
  234. package/dist/node_modules/use-callback-ref/dist/es2015/useMergeRef.js.map +1 -0
  235. package/dist/node_modules/use-callback-ref/dist/es2015/useRef.js +43 -0
  236. package/dist/node_modules/use-callback-ref/dist/es2015/useRef.js.map +1 -0
  237. package/dist/node_modules/use-places-autocomplete/dist/index.esm.js +243 -0
  238. package/dist/node_modules/use-places-autocomplete/dist/index.esm.js.map +1 -0
  239. package/dist/node_modules/use-sidecar/dist/es2015/exports.js +22 -0
  240. package/dist/node_modules/use-sidecar/dist/es2015/exports.js.map +1 -0
  241. package/dist/node_modules/use-sidecar/dist/es2015/medium.js +78 -0
  242. package/dist/node_modules/use-sidecar/dist/es2015/medium.js.map +1 -0
  243. package/dist/styles/index.css +1 -1
  244. package/dist/util/filterUtil.js +1 -1
  245. package/package.json +1 -1
  246. package/src/components/modules/filter/index.js +10 -6
  247. package/src/components/modules/list/item-list.tsx +1 -3
  248. package/src/components/modules/maps/tabs.js +36 -49
@@ -0,0 +1,669 @@
1
+ import { debounce, memo, notUndefined, approxEqual } from './utils.js';
2
+
3
+ const defaultKeyExtractor = (index) => index;
4
+ const defaultRangeExtractor = (range) => {
5
+ const start = Math.max(range.startIndex - range.overscan, 0);
6
+ const end = Math.min(range.endIndex + range.overscan, range.count - 1);
7
+ const arr = [];
8
+ for (let i = start; i <= end; i++) {
9
+ arr.push(i);
10
+ }
11
+ return arr;
12
+ };
13
+ const observeElementRect = (instance, cb) => {
14
+ const element = instance.scrollElement;
15
+ if (!element) {
16
+ return;
17
+ }
18
+ const targetWindow = instance.targetWindow;
19
+ if (!targetWindow) {
20
+ return;
21
+ }
22
+ const handler = (rect) => {
23
+ const { width, height } = rect;
24
+ cb({ width: Math.round(width), height: Math.round(height) });
25
+ };
26
+ handler(element.getBoundingClientRect());
27
+ if (!targetWindow.ResizeObserver) {
28
+ return () => {
29
+ };
30
+ }
31
+ const observer = new targetWindow.ResizeObserver((entries) => {
32
+ const entry = entries[0];
33
+ if (entry == null ? void 0 : entry.borderBoxSize) {
34
+ const box = entry.borderBoxSize[0];
35
+ if (box) {
36
+ handler({ width: box.inlineSize, height: box.blockSize });
37
+ return;
38
+ }
39
+ }
40
+ handler(element.getBoundingClientRect());
41
+ });
42
+ observer.observe(element, { box: "border-box" });
43
+ return () => {
44
+ observer.unobserve(element);
45
+ };
46
+ };
47
+ const addEventListenerOptions = {
48
+ passive: true
49
+ };
50
+ const supportsScrollend = typeof window == "undefined" ? true : "onscrollend" in window;
51
+ const observeElementOffset = (instance, cb) => {
52
+ const element = instance.scrollElement;
53
+ if (!element) {
54
+ return;
55
+ }
56
+ const targetWindow = instance.targetWindow;
57
+ if (!targetWindow) {
58
+ return;
59
+ }
60
+ let offset = 0;
61
+ const fallback = supportsScrollend ? () => void 0 : debounce(
62
+ targetWindow,
63
+ () => {
64
+ cb(offset, false);
65
+ },
66
+ instance.options.isScrollingResetDelay
67
+ );
68
+ const createHandler = (isScrolling) => () => {
69
+ offset = element[instance.options.horizontal ? "scrollLeft" : "scrollTop"];
70
+ fallback();
71
+ cb(offset, isScrolling);
72
+ };
73
+ const handler = createHandler(true);
74
+ const endHandler = createHandler(false);
75
+ endHandler();
76
+ element.addEventListener("scroll", handler, addEventListenerOptions);
77
+ element.addEventListener("scrollend", endHandler, addEventListenerOptions);
78
+ return () => {
79
+ element.removeEventListener("scroll", handler);
80
+ element.removeEventListener("scrollend", endHandler);
81
+ };
82
+ };
83
+ const measureElement = (element, entry, instance) => {
84
+ if (entry == null ? void 0 : entry.borderBoxSize) {
85
+ const box = entry.borderBoxSize[0];
86
+ if (box) {
87
+ const size = Math.round(
88
+ box[instance.options.horizontal ? "inlineSize" : "blockSize"]
89
+ );
90
+ return size;
91
+ }
92
+ }
93
+ return Math.round(
94
+ element.getBoundingClientRect()[instance.options.horizontal ? "width" : "height"]
95
+ );
96
+ };
97
+ const elementScroll = (offset, {
98
+ adjustments = 0,
99
+ behavior
100
+ }, instance) => {
101
+ var _a, _b;
102
+ const toOffset = offset + adjustments;
103
+ (_b = (_a = instance.scrollElement) == null ? void 0 : _a.scrollTo) == null ? void 0 : _b.call(_a, {
104
+ [instance.options.horizontal ? "left" : "top"]: toOffset,
105
+ behavior
106
+ });
107
+ };
108
+ class Virtualizer {
109
+ constructor(opts) {
110
+ this.unsubs = [];
111
+ this.scrollElement = null;
112
+ this.targetWindow = null;
113
+ this.isScrolling = false;
114
+ this.scrollToIndexTimeoutId = null;
115
+ this.measurementsCache = [];
116
+ this.itemSizeCache = /* @__PURE__ */ new Map();
117
+ this.pendingMeasuredCacheIndexes = [];
118
+ this.scrollRect = null;
119
+ this.scrollOffset = null;
120
+ this.scrollDirection = null;
121
+ this.scrollAdjustments = 0;
122
+ this.elementsCache = /* @__PURE__ */ new Map();
123
+ this.observer = /* @__PURE__ */ (() => {
124
+ let _ro = null;
125
+ const get = () => {
126
+ if (_ro) {
127
+ return _ro;
128
+ }
129
+ if (!this.targetWindow || !this.targetWindow.ResizeObserver) {
130
+ return null;
131
+ }
132
+ return _ro = new this.targetWindow.ResizeObserver((entries) => {
133
+ entries.forEach((entry) => {
134
+ this._measureElement(entry.target, entry);
135
+ });
136
+ });
137
+ };
138
+ return {
139
+ disconnect: () => {
140
+ var _a;
141
+ return (_a = get()) == null ? void 0 : _a.disconnect();
142
+ },
143
+ observe: (target) => {
144
+ var _a;
145
+ return (_a = get()) == null ? void 0 : _a.observe(target, { box: "border-box" });
146
+ },
147
+ unobserve: (target) => {
148
+ var _a;
149
+ return (_a = get()) == null ? void 0 : _a.unobserve(target);
150
+ }
151
+ };
152
+ })();
153
+ this.range = null;
154
+ this.setOptions = (opts2) => {
155
+ Object.entries(opts2).forEach(([key, value]) => {
156
+ if (typeof value === "undefined") delete opts2[key];
157
+ });
158
+ this.options = {
159
+ debug: false,
160
+ initialOffset: 0,
161
+ overscan: 1,
162
+ paddingStart: 0,
163
+ paddingEnd: 0,
164
+ scrollPaddingStart: 0,
165
+ scrollPaddingEnd: 0,
166
+ horizontal: false,
167
+ getItemKey: defaultKeyExtractor,
168
+ rangeExtractor: defaultRangeExtractor,
169
+ onChange: () => {
170
+ },
171
+ measureElement,
172
+ initialRect: { width: 0, height: 0 },
173
+ scrollMargin: 0,
174
+ gap: 0,
175
+ indexAttribute: "data-index",
176
+ initialMeasurementsCache: [],
177
+ lanes: 1,
178
+ isScrollingResetDelay: 150,
179
+ enabled: true,
180
+ ...opts2
181
+ };
182
+ };
183
+ this.notify = (force, sync) => {
184
+ var _a, _b;
185
+ const { startIndex, endIndex } = this.range ?? {
186
+ startIndex: void 0,
187
+ endIndex: void 0
188
+ };
189
+ const range = this.calculateRange();
190
+ if (force || startIndex !== (range == null ? void 0 : range.startIndex) || endIndex !== (range == null ? void 0 : range.endIndex)) {
191
+ (_b = (_a = this.options).onChange) == null ? void 0 : _b.call(_a, this, sync);
192
+ }
193
+ };
194
+ this.cleanup = () => {
195
+ this.unsubs.filter(Boolean).forEach((d) => d());
196
+ this.unsubs = [];
197
+ this.scrollElement = null;
198
+ this.targetWindow = null;
199
+ this.observer.disconnect();
200
+ this.elementsCache.clear();
201
+ };
202
+ this._didMount = () => {
203
+ return () => {
204
+ this.cleanup();
205
+ };
206
+ };
207
+ this._willUpdate = () => {
208
+ var _a;
209
+ const scrollElement = this.options.enabled ? this.options.getScrollElement() : null;
210
+ if (this.scrollElement !== scrollElement) {
211
+ this.cleanup();
212
+ if (!scrollElement) {
213
+ this.notify(false, false);
214
+ return;
215
+ }
216
+ this.scrollElement = scrollElement;
217
+ if (this.scrollElement && "ownerDocument" in this.scrollElement) {
218
+ this.targetWindow = this.scrollElement.ownerDocument.defaultView;
219
+ } else {
220
+ this.targetWindow = ((_a = this.scrollElement) == null ? void 0 : _a.window) ?? null;
221
+ }
222
+ this._scrollToOffset(this.getScrollOffset(), {
223
+ adjustments: void 0,
224
+ behavior: void 0
225
+ });
226
+ this.unsubs.push(
227
+ this.options.observeElementRect(this, (rect) => {
228
+ this.scrollRect = rect;
229
+ this.notify(false, false);
230
+ })
231
+ );
232
+ this.unsubs.push(
233
+ this.options.observeElementOffset(this, (offset, isScrolling) => {
234
+ this.scrollAdjustments = 0;
235
+ this.scrollDirection = isScrolling ? this.getScrollOffset() < offset ? "forward" : "backward" : null;
236
+ this.scrollOffset = offset;
237
+ const prevIsScrolling = this.isScrolling;
238
+ this.isScrolling = isScrolling;
239
+ this.notify(prevIsScrolling !== isScrolling, isScrolling);
240
+ })
241
+ );
242
+ }
243
+ };
244
+ this.getSize = () => {
245
+ if (!this.options.enabled) {
246
+ this.scrollRect = null;
247
+ return 0;
248
+ }
249
+ this.scrollRect = this.scrollRect ?? this.options.initialRect;
250
+ return this.scrollRect[this.options.horizontal ? "width" : "height"];
251
+ };
252
+ this.getScrollOffset = () => {
253
+ if (!this.options.enabled) {
254
+ this.scrollOffset = null;
255
+ return 0;
256
+ }
257
+ this.scrollOffset = this.scrollOffset ?? (typeof this.options.initialOffset === "function" ? this.options.initialOffset() : this.options.initialOffset);
258
+ return this.scrollOffset;
259
+ };
260
+ this.getFurthestMeasurement = (measurements, index) => {
261
+ const furthestMeasurementsFound = /* @__PURE__ */ new Map();
262
+ const furthestMeasurements = /* @__PURE__ */ new Map();
263
+ for (let m = index - 1; m >= 0; m--) {
264
+ const measurement = measurements[m];
265
+ if (furthestMeasurementsFound.has(measurement.lane)) {
266
+ continue;
267
+ }
268
+ const previousFurthestMeasurement = furthestMeasurements.get(
269
+ measurement.lane
270
+ );
271
+ if (previousFurthestMeasurement == null || measurement.end > previousFurthestMeasurement.end) {
272
+ furthestMeasurements.set(measurement.lane, measurement);
273
+ } else if (measurement.end < previousFurthestMeasurement.end) {
274
+ furthestMeasurementsFound.set(measurement.lane, true);
275
+ }
276
+ if (furthestMeasurementsFound.size === this.options.lanes) {
277
+ break;
278
+ }
279
+ }
280
+ return furthestMeasurements.size === this.options.lanes ? Array.from(furthestMeasurements.values()).sort((a, b) => {
281
+ if (a.end === b.end) {
282
+ return a.index - b.index;
283
+ }
284
+ return a.end - b.end;
285
+ })[0] : void 0;
286
+ };
287
+ this.getMeasurementOptions = memo(
288
+ () => [
289
+ this.options.count,
290
+ this.options.paddingStart,
291
+ this.options.scrollMargin,
292
+ this.options.getItemKey,
293
+ this.options.enabled
294
+ ],
295
+ (count, paddingStart, scrollMargin, getItemKey, enabled) => {
296
+ this.pendingMeasuredCacheIndexes = [];
297
+ return {
298
+ count,
299
+ paddingStart,
300
+ scrollMargin,
301
+ getItemKey,
302
+ enabled
303
+ };
304
+ },
305
+ {
306
+ key: false
307
+ }
308
+ );
309
+ this.getMeasurements = memo(
310
+ () => [this.getMeasurementOptions(), this.itemSizeCache],
311
+ ({ count, paddingStart, scrollMargin, getItemKey, enabled }, itemSizeCache) => {
312
+ var _a;
313
+ if (!enabled) {
314
+ this.measurementsCache = [];
315
+ this.itemSizeCache.clear();
316
+ return [];
317
+ }
318
+ if (this.measurementsCache.length === 0) {
319
+ this.measurementsCache = this.options.initialMeasurementsCache;
320
+ this.measurementsCache.forEach((item) => {
321
+ this.itemSizeCache.set(item.key, item.size);
322
+ });
323
+ }
324
+ const min = this.pendingMeasuredCacheIndexes.length > 0 ? Math.min(...this.pendingMeasuredCacheIndexes) : 0;
325
+ this.pendingMeasuredCacheIndexes = [];
326
+ const measurements = this.measurementsCache.slice(0, min);
327
+ for (let i = min; i < count; i++) {
328
+ let measureElement2 = (_a = this.measurementsCache[i]) == null ? void 0 : _a.measureElement;
329
+ if (!measureElement2) {
330
+ measureElement2 = (node) => {
331
+ const key2 = getItemKey(i);
332
+ const prevNode = this.elementsCache.get(key2);
333
+ if (!node) {
334
+ if (prevNode) {
335
+ this.observer.unobserve(prevNode);
336
+ this.elementsCache.delete(key2);
337
+ }
338
+ return;
339
+ }
340
+ if (prevNode !== node) {
341
+ if (prevNode) {
342
+ this.observer.unobserve(prevNode);
343
+ }
344
+ this.observer.observe(node);
345
+ this.elementsCache.set(key2, node);
346
+ }
347
+ if (node.isConnected) {
348
+ this.resizeItem(
349
+ i,
350
+ this.options.measureElement(node, void 0, this)
351
+ );
352
+ }
353
+ };
354
+ }
355
+ const key = getItemKey(i);
356
+ const furthestMeasurement = this.options.lanes === 1 ? measurements[i - 1] : this.getFurthestMeasurement(measurements, i);
357
+ const start = furthestMeasurement ? furthestMeasurement.end + this.options.gap : paddingStart + scrollMargin;
358
+ const measuredSize = itemSizeCache.get(key);
359
+ const size = typeof measuredSize === "number" ? measuredSize : this.options.estimateSize(i);
360
+ const end = start + size;
361
+ const lane = furthestMeasurement ? furthestMeasurement.lane : i % this.options.lanes;
362
+ measurements[i] = {
363
+ index: i,
364
+ start,
365
+ size,
366
+ end,
367
+ key,
368
+ lane,
369
+ measureElement: measureElement2
370
+ };
371
+ }
372
+ this.measurementsCache = measurements;
373
+ return measurements;
374
+ },
375
+ {
376
+ key: "production" !== "production" ,
377
+ debug: () => this.options.debug
378
+ }
379
+ );
380
+ this.calculateRange = memo(
381
+ () => [this.getMeasurements(), this.getSize(), this.getScrollOffset()],
382
+ (measurements, outerSize, scrollOffset) => {
383
+ return this.range = measurements.length > 0 && outerSize > 0 ? calculateRange({
384
+ measurements,
385
+ outerSize,
386
+ scrollOffset
387
+ }) : null;
388
+ },
389
+ {
390
+ key: "production" !== "production" ,
391
+ debug: () => this.options.debug
392
+ }
393
+ );
394
+ this.getIndexes = memo(
395
+ () => [
396
+ this.options.rangeExtractor,
397
+ this.calculateRange(),
398
+ this.options.overscan,
399
+ this.options.count
400
+ ],
401
+ (rangeExtractor, range, overscan, count) => {
402
+ return range === null ? [] : rangeExtractor({
403
+ startIndex: range.startIndex,
404
+ endIndex: range.endIndex,
405
+ overscan,
406
+ count
407
+ });
408
+ },
409
+ {
410
+ key: "production" !== "production" ,
411
+ debug: () => this.options.debug
412
+ }
413
+ );
414
+ this.indexFromElement = (node) => {
415
+ const attributeName = this.options.indexAttribute;
416
+ const indexStr = node.getAttribute(attributeName);
417
+ if (!indexStr) {
418
+ console.warn(
419
+ `Missing attribute name '${attributeName}={index}' on measured element.`
420
+ );
421
+ return -1;
422
+ }
423
+ return parseInt(indexStr, 10);
424
+ };
425
+ this._measureElement = (node, entry) => {
426
+ const i = this.indexFromElement(node);
427
+ const item = this.getMeasurements()[i];
428
+ if (!item || !node.isConnected) {
429
+ this.elementsCache.forEach((cached, key) => {
430
+ if (cached === node) {
431
+ this.observer.unobserve(node);
432
+ this.elementsCache.delete(key);
433
+ }
434
+ });
435
+ return;
436
+ }
437
+ const prevNode = this.elementsCache.get(item.key);
438
+ if (prevNode !== node) {
439
+ if (prevNode) {
440
+ this.observer.unobserve(prevNode);
441
+ }
442
+ this.observer.observe(node);
443
+ this.elementsCache.set(item.key, node);
444
+ }
445
+ this.resizeItem(i, this.options.measureElement(node, entry, this));
446
+ };
447
+ this.resizeItem = (index, size) => {
448
+ const item = this.getMeasurements()[index];
449
+ if (!item) {
450
+ return;
451
+ }
452
+ const itemSize = this.itemSizeCache.get(item.key) ?? item.size;
453
+ const delta = size - itemSize;
454
+ if (delta !== 0) {
455
+ if (this.shouldAdjustScrollPositionOnItemSizeChange !== void 0 ? this.shouldAdjustScrollPositionOnItemSizeChange(item, delta, this) : item.start < this.getScrollOffset() + this.scrollAdjustments) {
456
+ this._scrollToOffset(this.getScrollOffset(), {
457
+ adjustments: this.scrollAdjustments += delta,
458
+ behavior: void 0
459
+ });
460
+ }
461
+ this.pendingMeasuredCacheIndexes.push(item.index);
462
+ this.itemSizeCache = new Map(this.itemSizeCache.set(item.key, size));
463
+ this.notify(true, false);
464
+ }
465
+ };
466
+ this.measureElement = (node) => {
467
+ if (!node) {
468
+ return;
469
+ }
470
+ this._measureElement(node, void 0);
471
+ };
472
+ this.getVirtualItems = memo(
473
+ () => [this.getIndexes(), this.getMeasurements()],
474
+ (indexes, measurements) => {
475
+ const virtualItems = [];
476
+ for (let k = 0, len = indexes.length; k < len; k++) {
477
+ const i = indexes[k];
478
+ const measurement = measurements[i];
479
+ virtualItems.push(measurement);
480
+ }
481
+ return virtualItems;
482
+ },
483
+ {
484
+ key: "production" !== "production" ,
485
+ debug: () => this.options.debug
486
+ }
487
+ );
488
+ this.getVirtualItemForOffset = (offset) => {
489
+ const measurements = this.getMeasurements();
490
+ if (measurements.length === 0) {
491
+ return void 0;
492
+ }
493
+ return notUndefined(
494
+ measurements[findNearestBinarySearch(
495
+ 0,
496
+ measurements.length - 1,
497
+ (index) => notUndefined(measurements[index]).start,
498
+ offset
499
+ )]
500
+ );
501
+ };
502
+ this.getOffsetForAlignment = (toOffset, align) => {
503
+ const size = this.getSize();
504
+ const scrollOffset = this.getScrollOffset();
505
+ if (align === "auto") {
506
+ if (toOffset <= scrollOffset) {
507
+ align = "start";
508
+ } else if (toOffset >= scrollOffset + size) {
509
+ align = "end";
510
+ } else {
511
+ align = "start";
512
+ }
513
+ }
514
+ if (align === "start") {
515
+ toOffset = toOffset;
516
+ } else if (align === "end") {
517
+ toOffset = toOffset - size;
518
+ } else if (align === "center") {
519
+ toOffset = toOffset - size / 2;
520
+ }
521
+ const scrollSizeProp = this.options.horizontal ? "scrollWidth" : "scrollHeight";
522
+ const scrollSize = this.scrollElement ? "document" in this.scrollElement ? this.scrollElement.document.documentElement[scrollSizeProp] : this.scrollElement[scrollSizeProp] : 0;
523
+ const maxOffset = scrollSize - size;
524
+ return Math.max(Math.min(maxOffset, toOffset), 0);
525
+ };
526
+ this.getOffsetForIndex = (index, align = "auto") => {
527
+ index = Math.max(0, Math.min(index, this.options.count - 1));
528
+ const item = this.getMeasurements()[index];
529
+ if (!item) {
530
+ return void 0;
531
+ }
532
+ const size = this.getSize();
533
+ const scrollOffset = this.getScrollOffset();
534
+ if (align === "auto") {
535
+ if (item.end >= scrollOffset + size - this.options.scrollPaddingEnd) {
536
+ align = "end";
537
+ } else if (item.start <= scrollOffset + this.options.scrollPaddingStart) {
538
+ align = "start";
539
+ } else {
540
+ return [scrollOffset, align];
541
+ }
542
+ }
543
+ const toOffset = align === "end" ? item.end + this.options.scrollPaddingEnd : item.start - this.options.scrollPaddingStart;
544
+ return [this.getOffsetForAlignment(toOffset, align), align];
545
+ };
546
+ this.isDynamicMode = () => this.elementsCache.size > 0;
547
+ this.cancelScrollToIndex = () => {
548
+ if (this.scrollToIndexTimeoutId !== null && this.targetWindow) {
549
+ this.targetWindow.clearTimeout(this.scrollToIndexTimeoutId);
550
+ this.scrollToIndexTimeoutId = null;
551
+ }
552
+ };
553
+ this.scrollToOffset = (toOffset, { align = "start", behavior } = {}) => {
554
+ this.cancelScrollToIndex();
555
+ if (behavior === "smooth" && this.isDynamicMode()) {
556
+ console.warn(
557
+ "The `smooth` scroll behavior is not fully supported with dynamic size."
558
+ );
559
+ }
560
+ this._scrollToOffset(this.getOffsetForAlignment(toOffset, align), {
561
+ adjustments: void 0,
562
+ behavior
563
+ });
564
+ };
565
+ this.scrollToIndex = (index, { align: initialAlign = "auto", behavior } = {}) => {
566
+ index = Math.max(0, Math.min(index, this.options.count - 1));
567
+ this.cancelScrollToIndex();
568
+ if (behavior === "smooth" && this.isDynamicMode()) {
569
+ console.warn(
570
+ "The `smooth` scroll behavior is not fully supported with dynamic size."
571
+ );
572
+ }
573
+ const offsetAndAlign = this.getOffsetForIndex(index, initialAlign);
574
+ if (!offsetAndAlign) return;
575
+ const [offset, align] = offsetAndAlign;
576
+ this._scrollToOffset(offset, { adjustments: void 0, behavior });
577
+ if (behavior !== "smooth" && this.isDynamicMode() && this.targetWindow) {
578
+ this.scrollToIndexTimeoutId = this.targetWindow.setTimeout(() => {
579
+ this.scrollToIndexTimeoutId = null;
580
+ const elementInDOM = this.elementsCache.has(
581
+ this.options.getItemKey(index)
582
+ );
583
+ if (elementInDOM) {
584
+ const [latestOffset] = notUndefined(
585
+ this.getOffsetForIndex(index, align)
586
+ );
587
+ if (!approxEqual(latestOffset, this.getScrollOffset())) {
588
+ this.scrollToIndex(index, { align, behavior });
589
+ }
590
+ } else {
591
+ this.scrollToIndex(index, { align, behavior });
592
+ }
593
+ });
594
+ }
595
+ };
596
+ this.scrollBy = (delta, { behavior } = {}) => {
597
+ this.cancelScrollToIndex();
598
+ if (behavior === "smooth" && this.isDynamicMode()) {
599
+ console.warn(
600
+ "The `smooth` scroll behavior is not fully supported with dynamic size."
601
+ );
602
+ }
603
+ this._scrollToOffset(this.getScrollOffset() + delta, {
604
+ adjustments: void 0,
605
+ behavior
606
+ });
607
+ };
608
+ this.getTotalSize = () => {
609
+ var _a;
610
+ const measurements = this.getMeasurements();
611
+ let end;
612
+ if (measurements.length === 0) {
613
+ end = this.options.paddingStart;
614
+ } else {
615
+ end = this.options.lanes === 1 ? ((_a = measurements[measurements.length - 1]) == null ? void 0 : _a.end) ?? 0 : Math.max(
616
+ ...measurements.slice(-this.options.lanes).map((m) => m.end)
617
+ );
618
+ }
619
+ return end - this.options.scrollMargin + this.options.paddingEnd;
620
+ };
621
+ this._scrollToOffset = (offset, {
622
+ adjustments,
623
+ behavior
624
+ }) => {
625
+ this.options.scrollToFn(offset, { behavior, adjustments }, this);
626
+ };
627
+ this.measure = () => {
628
+ var _a, _b;
629
+ this.itemSizeCache = /* @__PURE__ */ new Map();
630
+ (_b = (_a = this.options).onChange) == null ? void 0 : _b.call(_a, this, false);
631
+ };
632
+ this.setOptions(opts);
633
+ }
634
+ }
635
+ const findNearestBinarySearch = (low, high, getCurrentValue, value) => {
636
+ while (low <= high) {
637
+ const middle = (low + high) / 2 | 0;
638
+ const currentValue = getCurrentValue(middle);
639
+ if (currentValue < value) {
640
+ low = middle + 1;
641
+ } else if (currentValue > value) {
642
+ high = middle - 1;
643
+ } else {
644
+ return middle;
645
+ }
646
+ }
647
+ if (low > 0) {
648
+ return low - 1;
649
+ } else {
650
+ return 0;
651
+ }
652
+ };
653
+ function calculateRange({
654
+ measurements,
655
+ outerSize,
656
+ scrollOffset
657
+ }) {
658
+ const count = measurements.length - 1;
659
+ const getOffset = (index) => measurements[index].start;
660
+ const startIndex = findNearestBinarySearch(0, count, getOffset, scrollOffset);
661
+ let endIndex = startIndex;
662
+ while (endIndex < count && measurements[endIndex].end < scrollOffset + outerSize) {
663
+ endIndex++;
664
+ }
665
+ return { startIndex, endIndex };
666
+ }
667
+
668
+ export { Virtualizer, approxEqual, debounce, defaultKeyExtractor, defaultRangeExtractor, elementScroll, measureElement, memo, notUndefined, observeElementOffset, observeElementRect };
669
+ //# sourceMappingURL=index.js.map