@studiometa/js-toolkit 2.6.5 → 2.8.0

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 (363) hide show
  1. package/Base/features.cjs +27 -0
  2. package/Base/features.cjs.map +7 -0
  3. package/Base/features.d.ts +2 -0
  4. package/Base/features.js +5 -0
  5. package/Base/features.js.map +7 -0
  6. package/Base/index.cjs +12 -15
  7. package/Base/index.cjs.map +2 -2
  8. package/Base/index.d.ts +11 -15
  9. package/Base/index.js +10 -6
  10. package/Base/index.js.map +2 -2
  11. package/Base/managers/AsyncChildrenManager.cjs +61 -0
  12. package/Base/managers/AsyncChildrenManager.cjs.map +7 -0
  13. package/Base/managers/AsyncChildrenManager.d.ts +18 -0
  14. package/Base/managers/AsyncChildrenManager.js +39 -0
  15. package/Base/managers/AsyncChildrenManager.js.map +7 -0
  16. package/Base/managers/ChildrenManager.cjs +32 -29
  17. package/Base/managers/ChildrenManager.cjs.map +2 -2
  18. package/Base/managers/ChildrenManager.d.ts +21 -1
  19. package/Base/managers/ChildrenManager.js +32 -29
  20. package/Base/managers/ChildrenManager.js.map +2 -2
  21. package/Base/managers/EventsManager.cjs.map +2 -2
  22. package/Base/managers/EventsManager.js.map +2 -2
  23. package/Base/managers/OptionsManager.d.ts +9 -9
  24. package/Base/managers/RefsManager.cjs +13 -8
  25. package/Base/managers/RefsManager.cjs.map +2 -2
  26. package/Base/managers/RefsManager.js +14 -9
  27. package/Base/managers/RefsManager.js.map +2 -2
  28. package/Base/managers/ResponsiveOptionsManager.d.ts +1 -1
  29. package/Base/managers/ServicesManager.d.ts +2 -2
  30. package/Base/managers/index.cjs +41 -0
  31. package/Base/managers/index.cjs.map +7 -0
  32. package/Base/managers/index.d.ts +8 -0
  33. package/Base/managers/index.js +19 -0
  34. package/Base/managers/index.js.map +7 -0
  35. package/Base/types.cjs.map +1 -1
  36. package/Base/types.d.ts +1 -1
  37. package/Base/utils.cjs +15 -1
  38. package/Base/utils.cjs.map +2 -2
  39. package/Base/utils.d.ts +1 -0
  40. package/Base/utils.js +15 -1
  41. package/Base/utils.js.map +2 -2
  42. package/decorators/index.cjs +1 -1
  43. package/decorators/index.cjs.map +2 -2
  44. package/decorators/index.d.ts +1 -1
  45. package/decorators/index.js +1 -1
  46. package/decorators/index.js.map +1 -1
  47. package/decorators/withBreakpointManager.cjs.map +2 -2
  48. package/decorators/withBreakpointManager.js.map +2 -2
  49. package/decorators/withBreakpointObserver.cjs.map +2 -2
  50. package/decorators/withBreakpointObserver.js.map +2 -2
  51. package/decorators/withDrag.cjs.map +2 -2
  52. package/decorators/withDrag.d.ts +1 -1
  53. package/decorators/withDrag.js.map +2 -2
  54. package/decorators/withMountWhenInView.cjs.map +2 -2
  55. package/decorators/withMountWhenInView.js.map +2 -2
  56. package/decorators/withResponsiveOptions.cjs.map +2 -2
  57. package/decorators/withResponsiveOptions.js.map +2 -2
  58. package/decorators/withScrolledInView/index.cjs +22 -0
  59. package/decorators/withScrolledInView/index.cjs.map +7 -0
  60. package/decorators/withScrolledInView/index.d.ts +2 -0
  61. package/decorators/withScrolledInView/index.js +3 -0
  62. package/decorators/withScrolledInView/index.js.map +7 -0
  63. package/decorators/withScrolledInView/types.cjs +19 -0
  64. package/decorators/withScrolledInView/types.cjs.map +7 -0
  65. package/decorators/withScrolledInView/types.d.ts +2 -0
  66. package/decorators/withScrolledInView/types.js +1 -0
  67. package/decorators/withScrolledInView/types.js.map +7 -0
  68. package/decorators/withScrolledInView/utils.cjs +99 -0
  69. package/decorators/withScrolledInView/utils.cjs.map +7 -0
  70. package/decorators/withScrolledInView/utils.d.ts +17 -0
  71. package/decorators/withScrolledInView/utils.js +77 -0
  72. package/decorators/withScrolledInView/utils.js.map +7 -0
  73. package/decorators/{withScrolledInView.cjs → withScrolledInView/withScrolledInView.cjs} +25 -10
  74. package/decorators/withScrolledInView/withScrolledInView.cjs.map +7 -0
  75. package/decorators/{withScrolledInView.d.ts → withScrolledInView/withScrolledInView.d.ts} +6 -5
  76. package/decorators/{withScrolledInView.js → withScrolledInView/withScrolledInView.js} +31 -9
  77. package/decorators/withScrolledInView/withScrolledInView.js.map +7 -0
  78. package/decorators/withVue2.cjs.map +2 -2
  79. package/decorators/withVue2.js.map +2 -2
  80. package/helpers/createApp.cjs +23 -19
  81. package/helpers/createApp.cjs.map +2 -2
  82. package/helpers/createApp.d.ts +6 -1
  83. package/helpers/createApp.js +23 -19
  84. package/helpers/createApp.js.map +2 -2
  85. package/helpers/getClosestParent.cjs +3 -11
  86. package/helpers/getClosestParent.cjs.map +2 -2
  87. package/helpers/getClosestParent.js +3 -11
  88. package/helpers/getClosestParent.js.map +2 -2
  89. package/helpers/getInstanceFromElement.cjs.map +2 -2
  90. package/helpers/getInstanceFromElement.js.map +2 -2
  91. package/helpers/importOnInteraction.cjs.map +2 -2
  92. package/helpers/importOnInteraction.js.map +2 -2
  93. package/helpers/importWhenIdle.cjs.map +2 -2
  94. package/helpers/importWhenIdle.d.ts +1 -1
  95. package/helpers/importWhenIdle.js.map +2 -2
  96. package/index.cjs.map +1 -1
  97. package/index.d.ts +1 -1
  98. package/index.js.map +1 -1
  99. package/package.json +2 -2
  100. package/services/drag.cjs +1 -1
  101. package/services/drag.cjs.map +3 -3
  102. package/services/drag.d.ts +21 -24
  103. package/services/drag.js.map +3 -3
  104. package/services/index.d.ts +7 -7
  105. package/services/key.cjs +1 -1
  106. package/services/key.cjs.map +3 -3
  107. package/services/key.d.ts +8 -9
  108. package/services/key.js.map +3 -3
  109. package/services/load.cjs +1 -1
  110. package/services/load.cjs.map +3 -3
  111. package/services/load.d.ts +6 -5
  112. package/services/load.js.map +3 -3
  113. package/services/pointer.cjs +1 -1
  114. package/services/pointer.cjs.map +3 -3
  115. package/services/pointer.d.ts +10 -10
  116. package/services/pointer.js.map +3 -3
  117. package/services/raf.cjs +4 -4
  118. package/services/raf.cjs.map +3 -3
  119. package/services/raf.d.ts +6 -7
  120. package/services/raf.js +3 -3
  121. package/services/raf.js.map +3 -3
  122. package/services/resize.cjs +1 -1
  123. package/services/resize.cjs.map +3 -3
  124. package/services/resize.d.ts +8 -9
  125. package/services/resize.js.map +3 -3
  126. package/services/scroll.cjs +1 -1
  127. package/services/scroll.cjs.map +3 -3
  128. package/services/scroll.d.ts +16 -17
  129. package/services/scroll.js.map +3 -3
  130. package/services/service.cjs +2 -2
  131. package/services/service.cjs.map +3 -3
  132. package/services/service.d.ts +12 -14
  133. package/services/service.js +1 -1
  134. package/services/service.js.map +3 -3
  135. package/utils/Queue.cjs +60 -0
  136. package/utils/Queue.cjs.map +7 -0
  137. package/utils/Queue.d.ts +44 -0
  138. package/utils/Queue.js +38 -0
  139. package/utils/Queue.js.map +7 -0
  140. package/utils/collide/boundingRectToCircle.cjs +3 -2
  141. package/utils/collide/boundingRectToCircle.cjs.map +3 -3
  142. package/utils/collide/boundingRectToCircle.d.ts +8 -13
  143. package/utils/collide/boundingRectToCircle.js +2 -1
  144. package/utils/collide/boundingRectToCircle.js.map +3 -3
  145. package/utils/collide/collideCircleCircle.cjs +1 -1
  146. package/utils/collide/collideCircleCircle.cjs.map +1 -1
  147. package/utils/collide/collideCircleCircle.d.ts +1 -15
  148. package/utils/collide/collideCircleCircle.js.map +1 -1
  149. package/utils/collide/collideCircleRect.cjs +1 -1
  150. package/utils/collide/collideCircleRect.cjs.map +1 -1
  151. package/utils/collide/collideCircleRect.d.ts +1 -33
  152. package/utils/collide/collideCircleRect.js.map +1 -1
  153. package/utils/collide/collidePointCircle.cjs +1 -1
  154. package/utils/collide/collidePointCircle.cjs.map +1 -1
  155. package/utils/collide/collidePointCircle.d.ts +1 -25
  156. package/utils/collide/collidePointCircle.js.map +1 -1
  157. package/utils/collide/collidePointRect.cjs +1 -1
  158. package/utils/collide/collidePointRect.cjs.map +1 -1
  159. package/utils/collide/collidePointRect.d.ts +1 -29
  160. package/utils/collide/collidePointRect.js.map +1 -1
  161. package/utils/collide/collideRectRect.cjs +1 -1
  162. package/utils/collide/collideRectRect.cjs.map +1 -1
  163. package/utils/collide/collideRectRect.d.ts +1 -19
  164. package/utils/collide/collideRectRect.js.map +1 -1
  165. package/utils/collide/index.cjs +1 -1
  166. package/utils/collide/index.cjs.map +1 -1
  167. package/utils/collide/index.d.ts +9 -6
  168. package/utils/collide/index.js.map +1 -1
  169. package/utils/css/animate.cjs +32 -16
  170. package/utils/css/animate.cjs.map +4 -4
  171. package/utils/css/animate.d.ts +12 -11
  172. package/utils/css/animate.js +31 -15
  173. package/utils/css/animate.js.map +4 -4
  174. package/utils/css/classes.cjs +1 -1
  175. package/utils/css/classes.cjs.map +3 -3
  176. package/utils/css/classes.d.ts +3 -16
  177. package/utils/css/classes.js.map +3 -3
  178. package/utils/css/getOffsetSizes.cjs +2 -2
  179. package/utils/css/getOffsetSizes.cjs.map +3 -3
  180. package/utils/css/getOffsetSizes.d.ts +0 -2
  181. package/utils/css/getOffsetSizes.js +1 -1
  182. package/utils/css/getOffsetSizes.js.map +3 -3
  183. package/utils/css/matrix.cjs +1 -1
  184. package/utils/css/matrix.cjs.map +3 -3
  185. package/utils/css/matrix.d.ts +10 -8
  186. package/utils/css/matrix.js.map +3 -3
  187. package/utils/css/styles.cjs +1 -1
  188. package/utils/css/styles.cjs.map +3 -3
  189. package/utils/css/styles.d.ts +2 -10
  190. package/utils/css/styles.js.map +3 -3
  191. package/utils/css/transform.cjs +1 -1
  192. package/utils/css/transform.cjs.map +3 -3
  193. package/utils/css/transform.d.ts +5 -27
  194. package/utils/css/transform.js.map +3 -3
  195. package/utils/css/transition.cjs +2 -2
  196. package/utils/css/transition.cjs.map +3 -3
  197. package/utils/css/transition.d.ts +11 -15
  198. package/utils/css/transition.js +1 -1
  199. package/utils/css/transition.js.map +3 -3
  200. package/utils/debounce.cjs +1 -1
  201. package/utils/debounce.cjs.map +3 -3
  202. package/utils/debounce.d.ts +3 -3
  203. package/utils/debounce.js.map +3 -3
  204. package/utils/dom/ancestors.cjs +37 -0
  205. package/utils/dom/ancestors.cjs.map +7 -0
  206. package/utils/dom/ancestors.d.ts +8 -0
  207. package/utils/dom/ancestors.js +15 -0
  208. package/utils/dom/ancestors.js.map +7 -0
  209. package/utils/dom/index.cjs +21 -0
  210. package/utils/dom/index.cjs.map +7 -0
  211. package/utils/dom/index.d.ts +1 -0
  212. package/utils/dom/index.js +2 -0
  213. package/utils/dom/index.js.map +7 -0
  214. package/utils/focusTrap.cjs +4 -2
  215. package/utils/focusTrap.cjs.map +3 -3
  216. package/utils/focusTrap.d.ts +3 -4
  217. package/utils/focusTrap.js +3 -1
  218. package/utils/focusTrap.js.map +3 -3
  219. package/utils/has.cjs +1 -1
  220. package/utils/has.cjs.map +3 -3
  221. package/utils/has.d.ts +1 -3
  222. package/utils/has.js.map +3 -3
  223. package/utils/history.cjs +1 -1
  224. package/utils/history.cjs.map +3 -3
  225. package/utils/history.d.ts +10 -10
  226. package/utils/history.js.map +3 -3
  227. package/utils/index.cjs +3 -0
  228. package/utils/index.cjs.map +2 -2
  229. package/utils/index.d.ts +2 -0
  230. package/utils/index.js +3 -0
  231. package/utils/index.js.map +2 -2
  232. package/utils/is.cjs +2 -2
  233. package/utils/is.cjs.map +3 -3
  234. package/utils/is.d.ts +26 -8
  235. package/utils/is.js +1 -1
  236. package/utils/is.js.map +3 -3
  237. package/utils/keyCodes.cjs +1 -1
  238. package/utils/keyCodes.cjs.map +2 -2
  239. package/utils/keyCodes.d.ts +10 -10
  240. package/utils/keyCodes.js.map +2 -2
  241. package/utils/math/clamp.cjs +1 -1
  242. package/utils/math/clamp.cjs.map +3 -3
  243. package/utils/math/clamp.js.map +3 -3
  244. package/utils/math/clamp01.cjs +1 -1
  245. package/utils/math/clamp01.cjs.map +3 -3
  246. package/utils/math/clamp01.js.map +3 -3
  247. package/utils/math/createEases.cjs +1 -1
  248. package/utils/math/createEases.cjs.map +3 -3
  249. package/utils/math/createEases.d.ts +3 -6
  250. package/utils/math/createEases.js.map +3 -3
  251. package/utils/math/damp.cjs +1 -1
  252. package/utils/math/damp.cjs.map +3 -3
  253. package/utils/math/damp.js.map +3 -3
  254. package/utils/math/ease.cjs +1 -1
  255. package/utils/math/ease.cjs.map +3 -3
  256. package/utils/math/ease.d.ts +21 -21
  257. package/utils/math/ease.js.map +3 -3
  258. package/utils/math/index.cjs +1 -1
  259. package/utils/math/index.cjs.map +1 -1
  260. package/utils/math/index.d.ts +10 -10
  261. package/utils/math/index.js.map +1 -1
  262. package/utils/math/inertiaFinalValue.cjs +1 -1
  263. package/utils/math/inertiaFinalValue.cjs.map +3 -3
  264. package/utils/math/inertiaFinalValue.js.map +3 -3
  265. package/utils/math/lerp.cjs +1 -1
  266. package/utils/math/lerp.cjs.map +3 -3
  267. package/utils/math/lerp.js.map +3 -3
  268. package/utils/math/map.cjs +1 -1
  269. package/utils/math/map.cjs.map +3 -3
  270. package/utils/math/map.js.map +3 -3
  271. package/utils/math/round.cjs +1 -1
  272. package/utils/math/round.cjs.map +3 -3
  273. package/utils/math/round.js.map +3 -3
  274. package/utils/memoize.cjs +6 -2
  275. package/utils/memoize.cjs.map +3 -3
  276. package/utils/memoize.d.ts +18 -28
  277. package/utils/memoize.js +5 -1
  278. package/utils/memoize.js.map +3 -3
  279. package/utils/nextFrame.cjs +1 -1
  280. package/utils/nextFrame.cjs.map +3 -3
  281. package/utils/nextFrame.d.ts +3 -6
  282. package/utils/nextFrame.js.map +3 -3
  283. package/utils/nextMicrotask.cjs +1 -1
  284. package/utils/nextMicrotask.cjs.map +3 -3
  285. package/utils/nextMicrotask.d.ts +1 -5
  286. package/utils/nextMicrotask.js.map +3 -3
  287. package/utils/nextTick.cjs +5 -5
  288. package/utils/nextTick.cjs.map +3 -3
  289. package/utils/nextTick.d.ts +1 -5
  290. package/utils/nextTick.js +4 -4
  291. package/utils/nextTick.js.map +3 -3
  292. package/utils/noop.cjs +1 -1
  293. package/utils/noop.cjs.map +3 -3
  294. package/utils/noop.d.ts +2 -5
  295. package/utils/noop.js.map +3 -3
  296. package/utils/object/autoBind.cjs +1 -1
  297. package/utils/object/autoBind.cjs.map +3 -3
  298. package/utils/object/autoBind.d.ts +5 -4
  299. package/utils/object/autoBind.js.map +3 -3
  300. package/utils/object/getAllProperties.cjs +3 -3
  301. package/utils/object/getAllProperties.cjs.map +3 -3
  302. package/utils/object/getAllProperties.d.ts +1 -1
  303. package/utils/object/getAllProperties.js +2 -2
  304. package/utils/object/getAllProperties.js.map +3 -3
  305. package/utils/object/index.cjs +1 -1
  306. package/utils/object/index.cjs.map +1 -1
  307. package/utils/object/index.d.ts +2 -2
  308. package/utils/object/index.js.map +1 -1
  309. package/utils/scheduler.cjs +2 -2
  310. package/utils/scheduler.cjs.map +3 -3
  311. package/utils/scheduler.d.ts +4 -13
  312. package/utils/scheduler.js +1 -1
  313. package/utils/scheduler.js.map +3 -3
  314. package/utils/scrollTo.cjs +1 -1
  315. package/utils/scrollTo.cjs.map +3 -3
  316. package/utils/scrollTo.d.ts +0 -3
  317. package/utils/scrollTo.js.map +3 -3
  318. package/utils/string/index.cjs +1 -1
  319. package/utils/string/index.cjs.map +1 -1
  320. package/utils/string/index.d.ts +10 -10
  321. package/utils/string/index.js.map +1 -1
  322. package/utils/string/withLeadingCharacters.cjs +1 -1
  323. package/utils/string/withLeadingCharacters.cjs.map +3 -3
  324. package/utils/string/withLeadingCharacters.js.map +3 -3
  325. package/utils/string/withLeadingSlash.cjs +1 -1
  326. package/utils/string/withLeadingSlash.cjs.map +3 -3
  327. package/utils/string/withLeadingSlash.js.map +3 -3
  328. package/utils/string/withTrailingCharacters.cjs +1 -1
  329. package/utils/string/withTrailingCharacters.cjs.map +3 -3
  330. package/utils/string/withTrailingCharacters.js.map +3 -3
  331. package/utils/string/withTrailingSlash.cjs +1 -1
  332. package/utils/string/withTrailingSlash.cjs.map +3 -3
  333. package/utils/string/withTrailingSlash.js.map +3 -3
  334. package/utils/string/withoutLeadingCharacters.cjs +1 -1
  335. package/utils/string/withoutLeadingCharacters.cjs.map +3 -3
  336. package/utils/string/withoutLeadingCharacters.js.map +3 -3
  337. package/utils/string/withoutLeadingCharactersRecursive.cjs +1 -1
  338. package/utils/string/withoutLeadingCharactersRecursive.cjs.map +3 -3
  339. package/utils/string/withoutLeadingCharactersRecursive.js.map +3 -3
  340. package/utils/string/withoutLeadingSlash.cjs +1 -1
  341. package/utils/string/withoutLeadingSlash.cjs.map +3 -3
  342. package/utils/string/withoutLeadingSlash.js.map +3 -3
  343. package/utils/string/withoutTrailingCharacters.cjs +1 -1
  344. package/utils/string/withoutTrailingCharacters.cjs.map +3 -3
  345. package/utils/string/withoutTrailingCharacters.js.map +3 -3
  346. package/utils/string/withoutTrailingCharactersRecursive.cjs +1 -1
  347. package/utils/string/withoutTrailingCharactersRecursive.cjs.map +3 -3
  348. package/utils/string/withoutTrailingCharactersRecursive.js.map +3 -3
  349. package/utils/string/withoutTrailingSlash.cjs +1 -1
  350. package/utils/string/withoutTrailingSlash.cjs.map +3 -3
  351. package/utils/string/withoutTrailingSlash.js.map +3 -3
  352. package/utils/throttle.cjs +2 -2
  353. package/utils/throttle.cjs.map +3 -3
  354. package/utils/throttle.d.ts +1 -1
  355. package/utils/throttle.js +1 -1
  356. package/utils/throttle.js.map +3 -3
  357. package/utils/tween.cjs +4 -3
  358. package/utils/tween.cjs.map +3 -3
  359. package/utils/tween.d.ts +17 -24
  360. package/utils/tween.js +3 -2
  361. package/utils/tween.js.map +3 -3
  362. package/decorators/withScrolledInView.cjs.map +0 -7
  363. package/decorators/withScrolledInView.js.map +0 -7
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
- "sources": ["../../../packages/js-toolkit/utils/css/transition.js"],
4
- "sourcesContent": ["import { nextFrame } from '../nextFrame.js';\nimport * as classes from './classes.js';\nimport * as styles from './styles.js';\nimport { isArray, isString } from '../is.js';\nimport { hasWindow } from '../has.js';\n// eslint-disable-next-line import/extensions\nimport { eachElements } from './utils.js';\n\n/** WeakMap to hold the transition instances. */\nconst cache = new WeakMap();\n\n/**\n * @typedef {string|string[]|Partial<CSSStyleDeclaration>} ClassesOrStyles\n * @typedef {{ from?: ClassesOrStyles, active?: ClassesOrStyles, to?: ClassesOrStyles }} TransitionStyles\n */\n\n/**\n * Transition class.\n */\nclass Transition {\n /**\n * Is a transition currently running?\n * @type {boolean}\n */\n isTransitioning = false;\n\n /**\n * A callback to execute when the transition ends.\n * @type {EventListenerOrEventListenerObject|null}\n */\n transitionEndHandler = null;\n\n /**\n * Instantiate and save the instance to the cache.\n * @param {HTMLElement} element The HTML element.\n */\n constructor(element) {\n cache.set(element, this);\n }\n\n /**\n * Get the transition class attached to the given element.\n * @param {HTMLElement} element The HTML element concerned by the transition.\n * @returns {Transition} The transition instance tied to the given element.\n */\n static getInstance(element) {\n let instance = cache.get(element);\n\n if (!instance) {\n instance = new this(element);\n }\n\n return instance;\n }\n}\n\n/**\n * Update either the classes or the styles of an element with the given method.\n *\n * @param {HTMLElement} element The element to update.\n * @param {ClassesOrStyles} classesOrStyles The classes or styles to apply.\n * @param {'add'|'remove'} method The method to use, one of `add` or `remove`.\n */\nexport function setClassesOrStyles(element, classesOrStyles, method = 'add') {\n if (isString(classesOrStyles) || isArray(classesOrStyles)) {\n classes[method](element, classesOrStyles);\n } else {\n styles[method](element, classesOrStyles);\n }\n}\n\n/**\n * Test if the given element has a transition duration.\n *\n * @param {HTMLElement} element The element to test.\n * @returns {boolean} The result of the test.\n */\nfunction testTransition(element) {\n if (!hasWindow()) {\n return false;\n }\n\n const { transitionDuration } = window.getComputedStyle(element);\n return !!transitionDuration && transitionDuration !== '0s';\n}\n\n/**\n * Apply the from state.\n *\n * @param {HTMLElement} element The target element.\n * @param {TransitionStyles} classesOrStyles The classes or styles definition.\n * @returns {Promise<void>}\n */\nasync function start(element, classesOrStyles) {\n const trs = Transition.getInstance(element);\n trs.isTransitioning = true;\n setClassesOrStyles(element, classesOrStyles.from);\n await nextFrame();\n setClassesOrStyles(element, classesOrStyles.active);\n}\n\n/**\n * Apply the active state.\n *\n * @param {HTMLElement} element The target element.\n * @param {TransitionStyles} classesOrStyles The classes or styles definition.\n * @returns {Promise}\n */\nasync function next(element, classesOrStyles) {\n const hasTransition = testTransition(element);\n\n /* eslint-disable-next-line */\n return new Promise(async (resolve) => {\n if (hasTransition) {\n const trs = Transition.getInstance(element);\n trs.transitionEndHandler = resolve;\n element.addEventListener('transitionend', trs.transitionEndHandler, false);\n }\n setClassesOrStyles(element, classesOrStyles.from, 'remove');\n setClassesOrStyles(element, classesOrStyles.to);\n await nextFrame();\n if (!hasTransition) {\n resolve();\n }\n });\n}\n\n/**\n * Apply the final state.\n *\n * @param {HTMLElement} element The target element.\n * @param {string | Object} classesOrStyles The classes or styles definition.\n * @param {string} mode Whether to remove or keep the `to` classes/styles.\n * @returns {void}\n */\nfunction end(element, classesOrStyles, mode = 'remove') {\n const trs = Transition.getInstance(element);\n element.removeEventListener('transitionend', trs.transitionEndHandler, false);\n if (mode === 'remove') {\n setClassesOrStyles(element, classesOrStyles.to, 'remove');\n }\n setClassesOrStyles(element, classesOrStyles.active, 'remove');\n trs.isTransitioning = false;\n trs.transitionEndHandler = null;\n}\n\n/**\n * Manage CSS transition with class.\n *\n * This is heavily inspired by the Vue `<transition>` component\n * and the `@barba/css` package, many thanks to them!\n *\n * @param {HTMLElement} element The target element.\n * @param {string|TransitionStyles} name The name of the transition or an object with the hooks classesOrStyles.\n * @param {string} endMode Whether to remove or keep the `to` classes/styles\n * @returns {Promise<void>} A promise resolving at the end of the transition.\n */\nasync function singleTransition(element, name, endMode = 'remove') {\n /** @type {TransitionStyles} */\n const classesOrStyles = isString(name)\n ? {\n from: `${name}-from`,\n active: `${name}-active`,\n to: `${name}-to`,\n }\n : {\n from: '',\n active: '',\n to: '',\n ...name,\n };\n\n const trs = Transition.getInstance(element);\n // End any previous transition running on the element.\n if (trs.isTransitioning) {\n end(element, classesOrStyles);\n }\n\n await start(element, classesOrStyles);\n await next(element, classesOrStyles);\n end(element, classesOrStyles, endMode);\n return Promise.resolve();\n}\n\n/**\n * Manage CSS transition with class.\n *\n * @param {HTMLElement|HTMLElement[]|NodeListOf<HTMLElement>} elementOrElements The target element or elements.\n * @param {string|TransitionStyles} name The name of the transition or an object with the hooks classesOrStyles.\n * @param {string} endMode Whether to remove or keep the `to` classes/styles\n * @returns {Promise<void>} A promise resolving at the end of the transition.\n */\nexport default async function transition(elementOrElements, name, endMode = 'remove') {\n await Promise.all(\n eachElements(elementOrElements, (element) => singleTransition(element, name, endMode)),\n );\n}\n"],
5
- "mappings": "AAAA,SAAS,iBAAiB;AAC1B,YAAY,aAAa;AACzB,YAAY,YAAY;AACxB,SAAS,SAAS,gBAAgB;AAClC,SAAS,iBAAiB;AAE1B,SAAS,oBAAoB;AAG7B,MAAM,QAAQ,oBAAI,QAAQ;AAU1B,MAAM,WAAW;AAAA,EAKf,kBAAkB;AAAA,EAMlB,uBAAuB;AAAA,EAMvB,YAAY,SAAS;AACnB,UAAM,IAAI,SAAS,IAAI;AAAA,EACzB;AAAA,EAOA,OAAO,YAAY,SAAS;AAC1B,QAAI,WAAW,MAAM,IAAI,OAAO;AAEhC,QAAI,CAAC,UAAU;AACb,iBAAW,IAAI,KAAK,OAAO;AAAA,IAC7B;AAEA,WAAO;AAAA,EACT;AACF;AASO,SAAS,mBAAmB,SAAS,iBAAiB,SAAS,OAAO;AAC3E,MAAI,SAAS,eAAe,KAAK,QAAQ,eAAe,GAAG;AACzD,YAAQ,QAAQ,SAAS,eAAe;AAAA,EAC1C,OAAO;AACL,WAAO,QAAQ,SAAS,eAAe;AAAA,EACzC;AACF;AAQA,SAAS,eAAe,SAAS;AAC/B,MAAI,CAAC,UAAU,GAAG;AAChB,WAAO;AAAA,EACT;AAEA,QAAM,EAAE,mBAAmB,IAAI,OAAO,iBAAiB,OAAO;AAC9D,SAAO,CAAC,CAAC,sBAAsB,uBAAuB;AACxD;AASA,eAAe,MAAM,SAAS,iBAAiB;AAC7C,QAAM,MAAM,WAAW,YAAY,OAAO;AAC1C,MAAI,kBAAkB;AACtB,qBAAmB,SAAS,gBAAgB,IAAI;AAChD,QAAM,UAAU;AAChB,qBAAmB,SAAS,gBAAgB,MAAM;AACpD;AASA,eAAe,KAAK,SAAS,iBAAiB;AAC5C,QAAM,gBAAgB,eAAe,OAAO;AAG5C,SAAO,IAAI,QAAQ,OAAO,YAAY;AACpC,QAAI,eAAe;AACjB,YAAM,MAAM,WAAW,YAAY,OAAO;AAC1C,UAAI,uBAAuB;AAC3B,cAAQ,iBAAiB,iBAAiB,IAAI,sBAAsB,KAAK;AAAA,IAC3E;AACA,uBAAmB,SAAS,gBAAgB,MAAM,QAAQ;AAC1D,uBAAmB,SAAS,gBAAgB,EAAE;AAC9C,UAAM,UAAU;AAChB,QAAI,CAAC,eAAe;AAClB,cAAQ;AAAA,IACV;AAAA,EACF,CAAC;AACH;AAUA,SAAS,IAAI,SAAS,iBAAiB,OAAO,UAAU;AACtD,QAAM,MAAM,WAAW,YAAY,OAAO;AAC1C,UAAQ,oBAAoB,iBAAiB,IAAI,sBAAsB,KAAK;AAC5E,MAAI,SAAS,UAAU;AACrB,uBAAmB,SAAS,gBAAgB,IAAI,QAAQ;AAAA,EAC1D;AACA,qBAAmB,SAAS,gBAAgB,QAAQ,QAAQ;AAC5D,MAAI,kBAAkB;AACtB,MAAI,uBAAuB;AAC7B;AAaA,eAAe,iBAAiB,SAAS,MAAM,UAAU,UAAU;AAEjE,QAAM,kBAAkB,SAAS,IAAI,IACjC;AAAA,IACE,MAAM,GAAG;AAAA,IACT,QAAQ,GAAG;AAAA,IACX,IAAI,GAAG;AAAA,EACT,IACA;AAAA,IACE,MAAM;AAAA,IACN,QAAQ;AAAA,IACR,IAAI;AAAA,IACJ,GAAG;AAAA,EACL;AAEJ,QAAM,MAAM,WAAW,YAAY,OAAO;AAE1C,MAAI,IAAI,iBAAiB;AACvB,QAAI,SAAS,eAAe;AAAA,EAC9B;AAEA,QAAM,MAAM,SAAS,eAAe;AACpC,QAAM,KAAK,SAAS,eAAe;AACnC,MAAI,SAAS,iBAAiB,OAAO;AACrC,SAAO,QAAQ,QAAQ;AACzB;AAUA,eAAO,WAAkC,mBAAmB,MAAM,UAAU,UAAU;AACpF,QAAM,QAAQ;AAAA,IACZ,aAAa,mBAAmB,CAAC,YAAY,iBAAiB,SAAS,MAAM,OAAO,CAAC;AAAA,EACvF;AACF;",
3
+ "sources": ["../../../packages/js-toolkit/utils/css/transition.ts"],
4
+ "sourcesContent": ["import { nextFrame } from '../nextFrame.js';\nimport * as classes from './classes.js';\nimport * as styles from './styles.js';\nimport { isArray, isString } from '../is.js';\nimport { hasWindow } from '../has.js';\n// eslint-disable-next-line import/extensions\nimport { eachElements } from './utils.js';\n\n/** WeakMap to hold the transition instances. */\nconst cache = new WeakMap();\n\nexport type ClassesOrStyles = string | string[] | Partial<CSSStyleDeclaration>;\n\nexport type TransitionStyles = {\n from?: ClassesOrStyles;\n active?: ClassesOrStyles;\n to?: ClassesOrStyles;\n};\n\n/**\n * Transition class.\n */\nclass Transition {\n /**\n * Is a transition currently running?\n */\n isTransitioning = false;\n\n /**\n * A callback to execute when the transition ends.\n */\n transitionEndHandler: EventListenerOrEventListenerObject | null = null;\n\n /**\n * Instantiate and save the instance to the cache.\n */\n constructor(element: HTMLElement) {\n cache.set(element, this);\n }\n\n /**\n * Get the transition class attached to the given element.\n * @param {HTMLElement} element The HTML element concerned by the transition.\n * @returns {Transition} The transition instance tied to the given element.\n */\n static getInstance(element: HTMLElement): Transition {\n let instance = cache.get(element);\n\n if (!instance) {\n instance = new this(element);\n }\n\n return instance;\n }\n}\n\n/**\n * Update either the classes or the styles of an element with the given method.\n */\nexport function setClassesOrStyles(\n element: HTMLElement,\n classesOrStyles: ClassesOrStyles,\n method: 'add' | 'remove' = 'add',\n) {\n if (isString(classesOrStyles) || isArray(classesOrStyles)) {\n classes[method](element, classesOrStyles);\n } else {\n styles[method](element, classesOrStyles);\n }\n}\n\n/**\n * Test if the given element has a transition duration.\n */\nfunction testTransition(element: HTMLElement) {\n if (!hasWindow()) {\n return false;\n }\n\n const { transitionDuration } = window.getComputedStyle(element);\n return !!transitionDuration && transitionDuration !== '0s';\n}\n\n/**\n * Apply the from state.\n */\nasync function start(element: HTMLElement, classesOrStyles: TransitionStyles) {\n const trs = Transition.getInstance(element);\n trs.isTransitioning = true;\n setClassesOrStyles(element, classesOrStyles.from);\n await nextFrame();\n setClassesOrStyles(element, classesOrStyles.active);\n}\n\n/**\n * Apply the active state.\n */\nasync function next(element: HTMLElement, classesOrStyles: TransitionStyles): Promise<void> {\n const hasTransition = testTransition(element);\n\n /* eslint-disable-next-line */\n return new Promise(async (resolve) => {\n if (hasTransition) {\n const trs = Transition.getInstance(element);\n trs.transitionEndHandler = () => resolve();\n element.addEventListener('transitionend', trs.transitionEndHandler, false);\n }\n setClassesOrStyles(element, classesOrStyles.from, 'remove');\n setClassesOrStyles(element, classesOrStyles.to);\n await nextFrame();\n if (!hasTransition) {\n resolve();\n }\n });\n}\n\n/**\n * Apply the final state.\n */\nfunction end(\n element: HTMLElement,\n classesOrStyles: TransitionStyles,\n mode: 'keep' | 'remove' = 'remove',\n) {\n const trs = Transition.getInstance(element);\n element.removeEventListener('transitionend', trs.transitionEndHandler, false);\n if (mode === 'remove') {\n setClassesOrStyles(element, classesOrStyles.to, 'remove');\n }\n setClassesOrStyles(element, classesOrStyles.active, 'remove');\n trs.isTransitioning = false;\n trs.transitionEndHandler = null;\n}\n\n/**\n * Manage CSS transition with class.\n *\n * This is inspired by the Vue `<transition>` component\n * and the `@barba/css` package, many thanks to them!\n *\n * @param {HTMLElement} element The target element.\n * @param {string|TransitionStyles} name The name of the transition or an object with the hooks classesOrStyles.\n * @param {string} endMode Whether to remove or keep the `to` classes/styles\n * @returns {Promise<void>} A promise resolving at the end of the transition.\n */\nasync function singleTransition(\n element: HTMLElement,\n name: string | TransitionStyles,\n endMode: 'keep' | 'remove' = 'remove',\n): Promise<void> {\n /** @type {TransitionStyles} */\n const classesOrStyles = isString(name)\n ? {\n from: `${name}-from`,\n active: `${name}-active`,\n to: `${name}-to`,\n }\n : {\n from: '',\n active: '',\n to: '',\n ...name,\n };\n\n const trs = Transition.getInstance(element);\n // End any previous transition running on the element.\n if (trs.isTransitioning) {\n end(element, classesOrStyles);\n }\n\n await start(element, classesOrStyles);\n await next(element, classesOrStyles);\n end(element, classesOrStyles, endMode);\n return Promise.resolve();\n}\n\n/**\n * Manage CSS transition with class.\n *\n * @param {HTMLElement|HTMLElement[]|NodeListOf<HTMLElement>} elementOrElements The target element or elements.\n * @param {string|TransitionStyles} name The name of the transition or an object with the hooks classesOrStyles.\n * @param {string} endMode Whether to remove or keep the `to` classes/styles\n * @returns {Promise<void>} A promise resolving at the end of the transition.\n */\nexport default async function transition(\n elementOrElements: HTMLElement | HTMLElement[] | NodeListOf<HTMLElement>,\n name: string | TransitionStyles,\n endMode: 'keep' | 'remove' = 'remove',\n) {\n await Promise.all(\n eachElements(elementOrElements, (element) => singleTransition(element, name, endMode)),\n );\n}\n"],
5
+ "mappings": "AAAA,SAAS,iBAAiB;AAC1B,YAAY,aAAa;AACzB,YAAY,YAAY;AACxB,SAAS,SAAS,gBAAgB;AAClC,SAAS,iBAAiB;AAE1B,SAAS,oBAAoB;AAG7B,MAAM,QAAQ,oBAAI,QAAQ;AAa1B,MAAM,WAAW;AAAA,EAIf,kBAAkB;AAAA,EAKlB,uBAAkE;AAAA,EAKlE,YAAY,SAAsB;AAChC,UAAM,IAAI,SAAS,IAAI;AAAA,EACzB;AAAA,EAOA,OAAO,YAAY,SAAkC;AACnD,QAAI,WAAW,MAAM,IAAI,OAAO;AAEhC,QAAI,CAAC,UAAU;AACb,iBAAW,IAAI,KAAK,OAAO;AAAA,IAC7B;AAEA,WAAO;AAAA,EACT;AACF;AAKO,SAAS,mBACd,SACA,iBACA,SAA2B,OAC3B;AACA,MAAI,SAAS,eAAe,KAAK,QAAQ,eAAe,GAAG;AACzD,YAAQ,QAAQ,SAAS,eAAe;AAAA,EAC1C,OAAO;AACL,WAAO,QAAQ,SAAS,eAAe;AAAA,EACzC;AACF;AAKA,SAAS,eAAe,SAAsB;AAC5C,MAAI,CAAC,UAAU,GAAG;AAChB,WAAO;AAAA,EACT;AAEA,QAAM,EAAE,mBAAmB,IAAI,OAAO,iBAAiB,OAAO;AAC9D,SAAO,CAAC,CAAC,sBAAsB,uBAAuB;AACxD;AAKA,eAAe,MAAM,SAAsB,iBAAmC;AAC5E,QAAM,MAAM,WAAW,YAAY,OAAO;AAC1C,MAAI,kBAAkB;AACtB,qBAAmB,SAAS,gBAAgB,IAAI;AAChD,QAAM,UAAU;AAChB,qBAAmB,SAAS,gBAAgB,MAAM;AACpD;AAKA,eAAe,KAAK,SAAsB,iBAAkD;AAC1F,QAAM,gBAAgB,eAAe,OAAO;AAG5C,SAAO,IAAI,QAAQ,OAAO,YAAY;AACpC,QAAI,eAAe;AACjB,YAAM,MAAM,WAAW,YAAY,OAAO;AAC1C,UAAI,uBAAuB,MAAM,QAAQ;AACzC,cAAQ,iBAAiB,iBAAiB,IAAI,sBAAsB,KAAK;AAAA,IAC3E;AACA,uBAAmB,SAAS,gBAAgB,MAAM,QAAQ;AAC1D,uBAAmB,SAAS,gBAAgB,EAAE;AAC9C,UAAM,UAAU;AAChB,QAAI,CAAC,eAAe;AAClB,cAAQ;AAAA,IACV;AAAA,EACF,CAAC;AACH;AAKA,SAAS,IACP,SACA,iBACA,OAA0B,UAC1B;AACA,QAAM,MAAM,WAAW,YAAY,OAAO;AAC1C,UAAQ,oBAAoB,iBAAiB,IAAI,sBAAsB,KAAK;AAC5E,MAAI,SAAS,UAAU;AACrB,uBAAmB,SAAS,gBAAgB,IAAI,QAAQ;AAAA,EAC1D;AACA,qBAAmB,SAAS,gBAAgB,QAAQ,QAAQ;AAC5D,MAAI,kBAAkB;AACtB,MAAI,uBAAuB;AAC7B;AAaA,eAAe,iBACb,SACA,MACA,UAA6B,UACd;AAEf,QAAM,kBAAkB,SAAS,IAAI,IACjC;AAAA,IACE,MAAM,GAAG;AAAA,IACT,QAAQ,GAAG;AAAA,IACX,IAAI,GAAG;AAAA,EACT,IACA;AAAA,IACE,MAAM;AAAA,IACN,QAAQ;AAAA,IACR,IAAI;AAAA,IACJ,GAAG;AAAA,EACL;AAEJ,QAAM,MAAM,WAAW,YAAY,OAAO;AAE1C,MAAI,IAAI,iBAAiB;AACvB,QAAI,SAAS,eAAe;AAAA,EAC9B;AAEA,QAAM,MAAM,SAAS,eAAe;AACpC,QAAM,KAAK,SAAS,eAAe;AACnC,MAAI,SAAS,iBAAiB,OAAO;AACrC,SAAO,QAAQ,QAAQ;AACzB;AAUA,eAAO,WACL,mBACA,MACA,UAA6B,UAC7B;AACA,QAAM,QAAQ;AAAA,IACZ,aAAa,mBAAmB,CAAC,YAAY,iBAAiB,SAAS,MAAM,OAAO,CAAC;AAAA,EACvF;AACF;",
6
6
  "names": []
7
7
  }
@@ -16,7 +16,7 @@ var __copyProps = (to, from, except, desc) => {
16
16
  };
17
17
  var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
18
18
 
19
- // packages/js-toolkit/utils/debounce.js
19
+ // packages/js-toolkit/utils/debounce.ts
20
20
  var debounce_exports = {};
21
21
  __export(debounce_exports, {
22
22
  default: () => debounce
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
- "sources": ["../../packages/js-toolkit/utils/debounce.js"],
4
- "sourcesContent": ["/**\n * Returns a function, that, as long as it continues to be invoked,\n * will not be triggered. The function will be called after it stops\n * being called for N milliseconds.\n *\n * @param {(...args:any[]) => void} fn The function to call.\n * @param {number} [delay=300] The delay in ms to wait before calling the function.\n * @returns {(...args:any[]) => void} The debounced function.\n */\nexport default function debounce(fn, delay = 300) {\n let timeout;\n return function debounced(...args) {\n clearTimeout(timeout);\n timeout = setTimeout(() => {\n fn(...args);\n }, delay);\n };\n}\n"],
5
- "mappings": ";;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AASe,SAAR,SAA0B,IAAI,QAAQ,KAAK;AAChD,MAAI;AACJ,SAAO,SAAS,aAAa,MAAM;AACjC,iBAAa,OAAO;AACpB,cAAU,WAAW,MAAM;AACzB,SAAG,GAAG,IAAI;AAAA,IACZ,GAAG,KAAK;AAAA,EACV;AACF;",
3
+ "sources": ["../../packages/js-toolkit/utils/debounce.ts"],
4
+ "sourcesContent": ["/**\n * Returns a function, that, as long as it continues to be invoked,\n * will not be triggered. The function will be called after it stops\n * being called for N milliseconds.\n *\n * @param {(...args:unknown[]) => void} fn The function to call.\n * @param {number} [delay=300] The delay in ms to wait before calling the function.\n * @returns {(...args:unknown[]) => void} The debounced function.\n */\nexport default function debounce(\n fn: (...args: unknown[]) => void,\n delay = 300,\n): (...args: unknown[]) => void {\n let timeout;\n return function debounced(...args) {\n clearTimeout(timeout);\n timeout = setTimeout(() => {\n fn(...args);\n }, delay);\n };\n}\n"],
5
+ "mappings": ";;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AASe,SAAR,SACL,IACA,QAAQ,KACsB;AAC9B,MAAI;AACJ,SAAO,SAAS,aAAa,MAAM;AACjC,iBAAa,OAAO;AACpB,cAAU,WAAW,MAAM;AACzB,SAAG,GAAG,IAAI;AAAA,IACZ,GAAG,KAAK;AAAA,EACV;AACF;",
6
6
  "names": []
7
7
  }
@@ -3,8 +3,8 @@
3
3
  * will not be triggered. The function will be called after it stops
4
4
  * being called for N milliseconds.
5
5
  *
6
- * @param {(...args:any[]) => void} fn The function to call.
6
+ * @param {(...args:unknown[]) => void} fn The function to call.
7
7
  * @param {number} [delay=300] The delay in ms to wait before calling the function.
8
- * @returns {(...args:any[]) => void} The debounced function.
8
+ * @returns {(...args:unknown[]) => void} The debounced function.
9
9
  */
10
- export default function debounce(fn: (...args: any[]) => void, delay?: number): (...args: any[]) => void;
10
+ export default function debounce(fn: (...args: unknown[]) => void, delay?: number): (...args: unknown[]) => void;
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
- "sources": ["../../packages/js-toolkit/utils/debounce.js"],
4
- "sourcesContent": ["/**\n * Returns a function, that, as long as it continues to be invoked,\n * will not be triggered. The function will be called after it stops\n * being called for N milliseconds.\n *\n * @param {(...args:any[]) => void} fn The function to call.\n * @param {number} [delay=300] The delay in ms to wait before calling the function.\n * @returns {(...args:any[]) => void} The debounced function.\n */\nexport default function debounce(fn, delay = 300) {\n let timeout;\n return function debounced(...args) {\n clearTimeout(timeout);\n timeout = setTimeout(() => {\n fn(...args);\n }, delay);\n };\n}\n"],
5
- "mappings": "AASe,SAAR,SAA0B,IAAI,QAAQ,KAAK;AAChD,MAAI;AACJ,SAAO,SAAS,aAAa,MAAM;AACjC,iBAAa,OAAO;AACpB,cAAU,WAAW,MAAM;AACzB,SAAG,GAAG,IAAI;AAAA,IACZ,GAAG,KAAK;AAAA,EACV;AACF;",
3
+ "sources": ["../../packages/js-toolkit/utils/debounce.ts"],
4
+ "sourcesContent": ["/**\n * Returns a function, that, as long as it continues to be invoked,\n * will not be triggered. The function will be called after it stops\n * being called for N milliseconds.\n *\n * @param {(...args:unknown[]) => void} fn The function to call.\n * @param {number} [delay=300] The delay in ms to wait before calling the function.\n * @returns {(...args:unknown[]) => void} The debounced function.\n */\nexport default function debounce(\n fn: (...args: unknown[]) => void,\n delay = 300,\n): (...args: unknown[]) => void {\n let timeout;\n return function debounced(...args) {\n clearTimeout(timeout);\n timeout = setTimeout(() => {\n fn(...args);\n }, delay);\n };\n}\n"],
5
+ "mappings": "AASe,SAAR,SACL,IACA,QAAQ,KACsB;AAC9B,MAAI;AACJ,SAAO,SAAS,aAAa,MAAM;AACjC,iBAAa,OAAO;AACpB,cAAU,WAAW,MAAM;AACzB,SAAG,GAAG,IAAI;AAAA,IACZ,GAAG,KAAK;AAAA,EACV;AACF;",
6
6
  "names": []
7
7
  }
@@ -0,0 +1,37 @@
1
+ var __defProp = Object.defineProperty;
2
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
3
+ var __getOwnPropNames = Object.getOwnPropertyNames;
4
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
5
+ var __export = (target, all) => {
6
+ for (var name in all)
7
+ __defProp(target, name, { get: all[name], enumerable: true });
8
+ };
9
+ var __copyProps = (to, from, except, desc) => {
10
+ if (from && typeof from === "object" || typeof from === "function") {
11
+ for (let key of __getOwnPropNames(from))
12
+ if (!__hasOwnProp.call(to, key) && key !== except)
13
+ __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
14
+ }
15
+ return to;
16
+ };
17
+ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
18
+
19
+ // packages/js-toolkit/utils/dom/ancestors.ts
20
+ var ancestors_exports = {};
21
+ __export(ancestors_exports, {
22
+ getAncestorWhere: () => getAncestorWhere,
23
+ getAncestorWhereUntil: () => getAncestorWhereUntil
24
+ });
25
+ module.exports = __toCommonJS(ancestors_exports);
26
+ function getAncestorWhere(element, condition) {
27
+ if (!element) {
28
+ return null;
29
+ }
30
+ const ancestor = element.parentElement;
31
+ return condition(ancestor) ? ancestor : getAncestorWhere(ancestor, condition);
32
+ }
33
+ function getAncestorWhereUntil(element, condition, until) {
34
+ return getAncestorWhere(element, (el) => condition(el) || until(el));
35
+ }
36
+ if (module.exports.default) module.exports = module.exports.default;
37
+ //# sourceMappingURL=ancestors.cjs.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../packages/js-toolkit/utils/dom/ancestors.ts"],
4
+ "sourcesContent": ["/**\n * Get an ancestor matching the given condition.\n */\nexport function getAncestorWhere(element: HTMLElement, condition: (el: HTMLElement) => boolean) {\n if (!element) {\n return null;\n }\n\n const ancestor = element.parentElement;\n\n return condition(ancestor) ? ancestor : getAncestorWhere(ancestor, condition);\n}\n\n/**\n * Get an ancestor matching the given condition, stop when the until function is truthy.\n */\nexport function getAncestorWhereUntil(\n element: HTMLElement,\n condition: (el: HTMLElement) => boolean,\n until: (el: HTMLElement) => boolean,\n): HTMLElement | null {\n return getAncestorWhere(element, (el) => condition(el) || until(el));\n}\n"],
5
+ "mappings": ";;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAGO,SAAS,iBAAiB,SAAsB,WAAyC;AAC9F,MAAI,CAAC,SAAS;AACZ,WAAO;AAAA,EACT;AAEA,QAAM,WAAW,QAAQ;AAEzB,SAAO,UAAU,QAAQ,IAAI,WAAW,iBAAiB,UAAU,SAAS;AAC9E;AAKO,SAAS,sBACd,SACA,WACA,OACoB;AACpB,SAAO,iBAAiB,SAAS,CAAC,OAAO,UAAU,EAAE,KAAK,MAAM,EAAE,CAAC;AACrE;",
6
+ "names": []
7
+ }
@@ -0,0 +1,8 @@
1
+ /**
2
+ * Get an ancestor matching the given condition.
3
+ */
4
+ export declare function getAncestorWhere(element: HTMLElement, condition: (el: HTMLElement) => boolean): any;
5
+ /**
6
+ * Get an ancestor matching the given condition, stop when the until function is truthy.
7
+ */
8
+ export declare function getAncestorWhereUntil(element: HTMLElement, condition: (el: HTMLElement) => boolean, until: (el: HTMLElement) => boolean): HTMLElement | null;
@@ -0,0 +1,15 @@
1
+ function getAncestorWhere(element, condition) {
2
+ if (!element) {
3
+ return null;
4
+ }
5
+ const ancestor = element.parentElement;
6
+ return condition(ancestor) ? ancestor : getAncestorWhere(ancestor, condition);
7
+ }
8
+ function getAncestorWhereUntil(element, condition, until) {
9
+ return getAncestorWhere(element, (el) => condition(el) || until(el));
10
+ }
11
+ export {
12
+ getAncestorWhere,
13
+ getAncestorWhereUntil
14
+ };
15
+ //# sourceMappingURL=ancestors.js.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../packages/js-toolkit/utils/dom/ancestors.ts"],
4
+ "sourcesContent": ["/**\n * Get an ancestor matching the given condition.\n */\nexport function getAncestorWhere(element: HTMLElement, condition: (el: HTMLElement) => boolean) {\n if (!element) {\n return null;\n }\n\n const ancestor = element.parentElement;\n\n return condition(ancestor) ? ancestor : getAncestorWhere(ancestor, condition);\n}\n\n/**\n * Get an ancestor matching the given condition, stop when the until function is truthy.\n */\nexport function getAncestorWhereUntil(\n element: HTMLElement,\n condition: (el: HTMLElement) => boolean,\n until: (el: HTMLElement) => boolean,\n): HTMLElement | null {\n return getAncestorWhere(element, (el) => condition(el) || until(el));\n}\n"],
5
+ "mappings": "AAGO,SAAS,iBAAiB,SAAsB,WAAyC;AAC9F,MAAI,CAAC,SAAS;AACZ,WAAO;AAAA,EACT;AAEA,QAAM,WAAW,QAAQ;AAEzB,SAAO,UAAU,QAAQ,IAAI,WAAW,iBAAiB,UAAU,SAAS;AAC9E;AAKO,SAAS,sBACd,SACA,WACA,OACoB;AACpB,SAAO,iBAAiB,SAAS,CAAC,OAAO,UAAU,EAAE,KAAK,MAAM,EAAE,CAAC;AACrE;",
6
+ "names": []
7
+ }
@@ -0,0 +1,21 @@
1
+ var __defProp = Object.defineProperty;
2
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
3
+ var __getOwnPropNames = Object.getOwnPropertyNames;
4
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
5
+ var __copyProps = (to, from, except, desc) => {
6
+ if (from && typeof from === "object" || typeof from === "function") {
7
+ for (let key of __getOwnPropNames(from))
8
+ if (!__hasOwnProp.call(to, key) && key !== except)
9
+ __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
10
+ }
11
+ return to;
12
+ };
13
+ var __reExport = (target, mod, secondTarget) => (__copyProps(target, mod, "default"), secondTarget && __copyProps(secondTarget, mod, "default"));
14
+ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
15
+
16
+ // packages/js-toolkit/utils/dom/index.ts
17
+ var dom_exports = {};
18
+ module.exports = __toCommonJS(dom_exports);
19
+ __reExport(dom_exports, require("./ancestors.cjs"), module.exports);
20
+ if (module.exports.default) module.exports = module.exports.default;
21
+ //# sourceMappingURL=index.cjs.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../packages/js-toolkit/utils/dom/index.ts"],
4
+ "sourcesContent": ["export * from './ancestors.js';\n"],
5
+ "mappings": ";;;;;;;;;;;;;;;;AAAA;AAAA;AAAA,wBAAc,4BAAd;",
6
+ "names": []
7
+ }
@@ -0,0 +1 @@
1
+ export * from './ancestors.js';
@@ -0,0 +1,2 @@
1
+ export * from "./ancestors.js";
2
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../packages/js-toolkit/utils/dom/index.ts"],
4
+ "sourcesContent": ["export * from './ancestors.js';\n"],
5
+ "mappings": "AAAA,cAAc;",
6
+ "names": []
7
+ }
@@ -22,7 +22,7 @@ var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__ge
22
22
  ));
23
23
  var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
24
24
 
25
- // packages/js-toolkit/utils/focusTrap.js
25
+ // packages/js-toolkit/utils/focusTrap.ts
26
26
  var focusTrap_exports = {};
27
27
  __export(focusTrap_exports, {
28
28
  default: () => useFocusTrap,
@@ -57,7 +57,9 @@ function trap(element, event) {
57
57
  if (!focusedBefore) {
58
58
  focusedBefore = document.activeElement;
59
59
  }
60
- const focusableChildren = Array.from(element.querySelectorAll(FOCUSABLE_ELEMENTS.join(", ")));
60
+ const focusableChildren = Array.from(
61
+ element.querySelectorAll(FOCUSABLE_ELEMENTS.join(", "))
62
+ );
61
63
  const focusedItemIndex = document.activeElement instanceof HTMLElement ? focusableChildren.indexOf(document.activeElement) : -1;
62
64
  if (!focusableChildren.length) {
63
65
  return;
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
- "sources": ["../../packages/js-toolkit/utils/focusTrap.js"],
4
- "sourcesContent": ["import keyCodes from './keyCodes.js';\nimport { isFunction } from './is.js';\n\nconst FOCUSABLE_ELEMENTS = [\n 'a[href]:not([tabindex^=\"-\"]):not([inert])',\n 'area[href]:not([tabindex^=\"-\"]):not([inert])',\n 'input:not([disabled]):not([inert])',\n 'select:not([disabled]):not([inert])',\n 'textarea:not([disabled]):not([inert])',\n 'button:not([disabled]):not([inert])',\n 'iframe:not([tabindex^=\"-\"]):not([inert])',\n 'audio:not([tabindex^=\"-\"]):not([inert])',\n 'video:not([tabindex^=\"-\"]):not([inert])',\n '[contenteditable]:not([tabindex^=\"-\"]):not([inert])',\n '[tabindex]:not([tabindex^=\"-\"]):not([inert])',\n];\n\nlet focusedBefore;\n\n/**\n * Save the current active element.\n */\nexport function saveActiveElement() {\n focusedBefore = document.activeElement;\n}\n\n/**\n * Trap tab navigation inside the given element.\n * @param {HTMLElement} element The element in which to trap the tabulations.\n * @param {KeyboardEvent} event The keydown or keyup event.\n */\nexport function trap(element, event) {\n if (event.keyCode !== keyCodes.TAB) {\n return;\n }\n\n // Save the previous focused element\n if (!focusedBefore) {\n focusedBefore = document.activeElement;\n }\n\n /** @type {Array<HTMLElement>} */\n const focusableChildren = Array.from(element.querySelectorAll(FOCUSABLE_ELEMENTS.join(', ')));\n const focusedItemIndex =\n document.activeElement instanceof HTMLElement\n ? focusableChildren.indexOf(document.activeElement)\n : -1;\n\n if (!focusableChildren.length) {\n return;\n }\n\n if (focusedItemIndex < 0) {\n focusableChildren[0].focus();\n event.preventDefault();\n }\n\n // If the SHIFT key is being pressed while tabbing (moving backwards) and\n // the currently focused item is the first one, move the focus to the last\n // focusable item from the dialog element\n if (event.shiftKey && focusedItemIndex === 0) {\n focusableChildren.at(-1).focus();\n event.preventDefault();\n }\n\n // If the SHIFT key is not being pressed (moving forwards) and the currently\n // focused item is the last one, move the focus to the first focusable item\n // from the dialog element\n else if (!event.shiftKey && focusedItemIndex === focusableChildren.length - 1) {\n focusableChildren[0].focus();\n event.preventDefault();\n }\n}\n\n/**\n * Untrap the tab navigation.\n */\nexport function untrap() {\n if (focusedBefore && isFunction(focusedBefore.focus)) {\n focusedBefore.focus();\n focusedBefore = null;\n }\n}\n\n/**\n * Use a trap/untrap tabs logic.\n * @returns {{ trap: trap, untrap: untrap, saveActiveElement: saveActiveElement }}\n */\nexport default function useFocusTrap() {\n return { trap, untrap, saveActiveElement };\n}\n"],
5
- "mappings": ";;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,sBAAqB;AACrB,gBAA2B;AAE3B,IAAM,qBAAqB;AAAA,EACzB;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACF;AAEA,IAAI;AAKG,SAAS,oBAAoB;AAClC,kBAAgB,SAAS;AAC3B;AAOO,SAAS,KAAK,SAAS,OAAO;AACnC,MAAI,MAAM,YAAY,gBAAAA,QAAS,KAAK;AAClC;AAAA,EACF;AAGA,MAAI,CAAC,eAAe;AAClB,oBAAgB,SAAS;AAAA,EAC3B;AAGA,QAAM,oBAAoB,MAAM,KAAK,QAAQ,iBAAiB,mBAAmB,KAAK,IAAI,CAAC,CAAC;AAC5F,QAAM,mBACJ,SAAS,yBAAyB,cAC9B,kBAAkB,QAAQ,SAAS,aAAa,IAChD;AAEN,MAAI,CAAC,kBAAkB,QAAQ;AAC7B;AAAA,EACF;AAEA,MAAI,mBAAmB,GAAG;AACxB,sBAAkB,GAAG,MAAM;AAC3B,UAAM,eAAe;AAAA,EACvB;AAKA,MAAI,MAAM,YAAY,qBAAqB,GAAG;AAC5C,sBAAkB,GAAG,EAAE,EAAE,MAAM;AAC/B,UAAM,eAAe;AAAA,EACvB,WAKS,CAAC,MAAM,YAAY,qBAAqB,kBAAkB,SAAS,GAAG;AAC7E,sBAAkB,GAAG,MAAM;AAC3B,UAAM,eAAe;AAAA,EACvB;AACF;AAKO,SAAS,SAAS;AACvB,MAAI,qBAAiB,sBAAW,cAAc,KAAK,GAAG;AACpD,kBAAc,MAAM;AACpB,oBAAgB;AAAA,EAClB;AACF;AAMe,SAAR,eAAgC;AACrC,SAAO,EAAE,MAAM,QAAQ,kBAAkB;AAC3C;",
3
+ "sources": ["../../packages/js-toolkit/utils/focusTrap.ts"],
4
+ "sourcesContent": ["import keyCodes from './keyCodes.js';\nimport { isFunction } from './is.js';\n\nconst FOCUSABLE_ELEMENTS = [\n 'a[href]:not([tabindex^=\"-\"]):not([inert])',\n 'area[href]:not([tabindex^=\"-\"]):not([inert])',\n 'input:not([disabled]):not([inert])',\n 'select:not([disabled]):not([inert])',\n 'textarea:not([disabled]):not([inert])',\n 'button:not([disabled]):not([inert])',\n 'iframe:not([tabindex^=\"-\"]):not([inert])',\n 'audio:not([tabindex^=\"-\"]):not([inert])',\n 'video:not([tabindex^=\"-\"]):not([inert])',\n '[contenteditable]:not([tabindex^=\"-\"]):not([inert])',\n '[tabindex]:not([tabindex^=\"-\"]):not([inert])',\n];\n\nlet focusedBefore;\n\n/**\n * Save the current active element.\n */\nexport function saveActiveElement() {\n focusedBefore = document.activeElement;\n}\n\n/**\n * Trap tab navigation inside the given element.\n * @param {HTMLElement} element The element in which to trap the tabulations.\n * @param {KeyboardEvent} event The keydown or keyup event.\n */\nexport function trap(element: HTMLElement, event: KeyboardEvent) {\n if (event.keyCode !== keyCodes.TAB) {\n return;\n }\n\n // Save the previous focused element\n if (!focusedBefore) {\n focusedBefore = document.activeElement;\n }\n\n const focusableChildren: HTMLElement[] = Array.from(\n element.querySelectorAll(FOCUSABLE_ELEMENTS.join(', ')),\n );\n const focusedItemIndex =\n document.activeElement instanceof HTMLElement\n ? focusableChildren.indexOf(document.activeElement)\n : -1;\n\n if (!focusableChildren.length) {\n return;\n }\n\n if (focusedItemIndex < 0) {\n focusableChildren[0].focus();\n event.preventDefault();\n }\n\n // If the SHIFT key is being pressed while tabbing (moving backwards) and\n // the currently focused item is the first one, move the focus to the last\n // focusable item from the dialog element\n if (event.shiftKey && focusedItemIndex === 0) {\n focusableChildren.at(-1).focus();\n event.preventDefault();\n }\n\n // If the SHIFT key is not being pressed (moving forwards) and the currently\n // focused item is the last one, move the focus to the first focusable item\n // from the dialog element\n else if (!event.shiftKey && focusedItemIndex === focusableChildren.length - 1) {\n focusableChildren[0].focus();\n event.preventDefault();\n }\n}\n\n/**\n * Untrap the tab navigation.\n */\nexport function untrap() {\n if (focusedBefore && isFunction(focusedBefore.focus)) {\n focusedBefore.focus();\n focusedBefore = null;\n }\n}\n\n/**\n * Use a trap/untrap tabs logic.\n */\nexport default function useFocusTrap() {\n return { trap, untrap, saveActiveElement };\n}\n"],
5
+ "mappings": ";;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,sBAAqB;AACrB,gBAA2B;AAE3B,IAAM,qBAAqB;AAAA,EACzB;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACF;AAEA,IAAI;AAKG,SAAS,oBAAoB;AAClC,kBAAgB,SAAS;AAC3B;AAOO,SAAS,KAAK,SAAsB,OAAsB;AAC/D,MAAI,MAAM,YAAY,gBAAAA,QAAS,KAAK;AAClC;AAAA,EACF;AAGA,MAAI,CAAC,eAAe;AAClB,oBAAgB,SAAS;AAAA,EAC3B;AAEA,QAAM,oBAAmC,MAAM;AAAA,IAC7C,QAAQ,iBAAiB,mBAAmB,KAAK,IAAI,CAAC;AAAA,EACxD;AACA,QAAM,mBACJ,SAAS,yBAAyB,cAC9B,kBAAkB,QAAQ,SAAS,aAAa,IAChD;AAEN,MAAI,CAAC,kBAAkB,QAAQ;AAC7B;AAAA,EACF;AAEA,MAAI,mBAAmB,GAAG;AACxB,sBAAkB,GAAG,MAAM;AAC3B,UAAM,eAAe;AAAA,EACvB;AAKA,MAAI,MAAM,YAAY,qBAAqB,GAAG;AAC5C,sBAAkB,GAAG,EAAE,EAAE,MAAM;AAC/B,UAAM,eAAe;AAAA,EACvB,WAKS,CAAC,MAAM,YAAY,qBAAqB,kBAAkB,SAAS,GAAG;AAC7E,sBAAkB,GAAG,MAAM;AAC3B,UAAM,eAAe;AAAA,EACvB;AACF;AAKO,SAAS,SAAS;AACvB,MAAI,qBAAiB,sBAAW,cAAc,KAAK,GAAG;AACpD,kBAAc,MAAM;AACpB,oBAAgB;AAAA,EAClB;AACF;AAKe,SAAR,eAAgC;AACrC,SAAO,EAAE,MAAM,QAAQ,kBAAkB;AAC3C;",
6
6
  "names": ["keyCodes"]
7
7
  }
@@ -1,20 +1,19 @@
1
1
  /**
2
2
  * Save the current active element.
3
3
  */
4
- export function saveActiveElement(): void;
4
+ export declare function saveActiveElement(): void;
5
5
  /**
6
6
  * Trap tab navigation inside the given element.
7
7
  * @param {HTMLElement} element The element in which to trap the tabulations.
8
8
  * @param {KeyboardEvent} event The keydown or keyup event.
9
9
  */
10
- export function trap(element: HTMLElement, event: KeyboardEvent): void;
10
+ export declare function trap(element: HTMLElement, event: KeyboardEvent): void;
11
11
  /**
12
12
  * Untrap the tab navigation.
13
13
  */
14
- export function untrap(): void;
14
+ export declare function untrap(): void;
15
15
  /**
16
16
  * Use a trap/untrap tabs logic.
17
- * @returns {{ trap: trap, untrap: untrap, saveActiveElement: saveActiveElement }}
18
17
  */
19
18
  export default function useFocusTrap(): {
20
19
  trap: typeof trap;
@@ -24,7 +24,9 @@ function trap(element, event) {
24
24
  if (!focusedBefore) {
25
25
  focusedBefore = document.activeElement;
26
26
  }
27
- const focusableChildren = Array.from(element.querySelectorAll(FOCUSABLE_ELEMENTS.join(", ")));
27
+ const focusableChildren = Array.from(
28
+ element.querySelectorAll(FOCUSABLE_ELEMENTS.join(", "))
29
+ );
28
30
  const focusedItemIndex = document.activeElement instanceof HTMLElement ? focusableChildren.indexOf(document.activeElement) : -1;
29
31
  if (!focusableChildren.length) {
30
32
  return;
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
- "sources": ["../../packages/js-toolkit/utils/focusTrap.js"],
4
- "sourcesContent": ["import keyCodes from './keyCodes.js';\nimport { isFunction } from './is.js';\n\nconst FOCUSABLE_ELEMENTS = [\n 'a[href]:not([tabindex^=\"-\"]):not([inert])',\n 'area[href]:not([tabindex^=\"-\"]):not([inert])',\n 'input:not([disabled]):not([inert])',\n 'select:not([disabled]):not([inert])',\n 'textarea:not([disabled]):not([inert])',\n 'button:not([disabled]):not([inert])',\n 'iframe:not([tabindex^=\"-\"]):not([inert])',\n 'audio:not([tabindex^=\"-\"]):not([inert])',\n 'video:not([tabindex^=\"-\"]):not([inert])',\n '[contenteditable]:not([tabindex^=\"-\"]):not([inert])',\n '[tabindex]:not([tabindex^=\"-\"]):not([inert])',\n];\n\nlet focusedBefore;\n\n/**\n * Save the current active element.\n */\nexport function saveActiveElement() {\n focusedBefore = document.activeElement;\n}\n\n/**\n * Trap tab navigation inside the given element.\n * @param {HTMLElement} element The element in which to trap the tabulations.\n * @param {KeyboardEvent} event The keydown or keyup event.\n */\nexport function trap(element, event) {\n if (event.keyCode !== keyCodes.TAB) {\n return;\n }\n\n // Save the previous focused element\n if (!focusedBefore) {\n focusedBefore = document.activeElement;\n }\n\n /** @type {Array<HTMLElement>} */\n const focusableChildren = Array.from(element.querySelectorAll(FOCUSABLE_ELEMENTS.join(', ')));\n const focusedItemIndex =\n document.activeElement instanceof HTMLElement\n ? focusableChildren.indexOf(document.activeElement)\n : -1;\n\n if (!focusableChildren.length) {\n return;\n }\n\n if (focusedItemIndex < 0) {\n focusableChildren[0].focus();\n event.preventDefault();\n }\n\n // If the SHIFT key is being pressed while tabbing (moving backwards) and\n // the currently focused item is the first one, move the focus to the last\n // focusable item from the dialog element\n if (event.shiftKey && focusedItemIndex === 0) {\n focusableChildren.at(-1).focus();\n event.preventDefault();\n }\n\n // If the SHIFT key is not being pressed (moving forwards) and the currently\n // focused item is the last one, move the focus to the first focusable item\n // from the dialog element\n else if (!event.shiftKey && focusedItemIndex === focusableChildren.length - 1) {\n focusableChildren[0].focus();\n event.preventDefault();\n }\n}\n\n/**\n * Untrap the tab navigation.\n */\nexport function untrap() {\n if (focusedBefore && isFunction(focusedBefore.focus)) {\n focusedBefore.focus();\n focusedBefore = null;\n }\n}\n\n/**\n * Use a trap/untrap tabs logic.\n * @returns {{ trap: trap, untrap: untrap, saveActiveElement: saveActiveElement }}\n */\nexport default function useFocusTrap() {\n return { trap, untrap, saveActiveElement };\n}\n"],
5
- "mappings": "AAAA,OAAO,cAAc;AACrB,SAAS,kBAAkB;AAE3B,MAAM,qBAAqB;AAAA,EACzB;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACF;AAEA,IAAI;AAKG,SAAS,oBAAoB;AAClC,kBAAgB,SAAS;AAC3B;AAOO,SAAS,KAAK,SAAS,OAAO;AACnC,MAAI,MAAM,YAAY,SAAS,KAAK;AAClC;AAAA,EACF;AAGA,MAAI,CAAC,eAAe;AAClB,oBAAgB,SAAS;AAAA,EAC3B;AAGA,QAAM,oBAAoB,MAAM,KAAK,QAAQ,iBAAiB,mBAAmB,KAAK,IAAI,CAAC,CAAC;AAC5F,QAAM,mBACJ,SAAS,yBAAyB,cAC9B,kBAAkB,QAAQ,SAAS,aAAa,IAChD;AAEN,MAAI,CAAC,kBAAkB,QAAQ;AAC7B;AAAA,EACF;AAEA,MAAI,mBAAmB,GAAG;AACxB,sBAAkB,GAAG,MAAM;AAC3B,UAAM,eAAe;AAAA,EACvB;AAKA,MAAI,MAAM,YAAY,qBAAqB,GAAG;AAC5C,sBAAkB,GAAG,EAAE,EAAE,MAAM;AAC/B,UAAM,eAAe;AAAA,EACvB,WAKS,CAAC,MAAM,YAAY,qBAAqB,kBAAkB,SAAS,GAAG;AAC7E,sBAAkB,GAAG,MAAM;AAC3B,UAAM,eAAe;AAAA,EACvB;AACF;AAKO,SAAS,SAAS;AACvB,MAAI,iBAAiB,WAAW,cAAc,KAAK,GAAG;AACpD,kBAAc,MAAM;AACpB,oBAAgB;AAAA,EAClB;AACF;AAMe,SAAR,eAAgC;AACrC,SAAO,EAAE,MAAM,QAAQ,kBAAkB;AAC3C;",
3
+ "sources": ["../../packages/js-toolkit/utils/focusTrap.ts"],
4
+ "sourcesContent": ["import keyCodes from './keyCodes.js';\nimport { isFunction } from './is.js';\n\nconst FOCUSABLE_ELEMENTS = [\n 'a[href]:not([tabindex^=\"-\"]):not([inert])',\n 'area[href]:not([tabindex^=\"-\"]):not([inert])',\n 'input:not([disabled]):not([inert])',\n 'select:not([disabled]):not([inert])',\n 'textarea:not([disabled]):not([inert])',\n 'button:not([disabled]):not([inert])',\n 'iframe:not([tabindex^=\"-\"]):not([inert])',\n 'audio:not([tabindex^=\"-\"]):not([inert])',\n 'video:not([tabindex^=\"-\"]):not([inert])',\n '[contenteditable]:not([tabindex^=\"-\"]):not([inert])',\n '[tabindex]:not([tabindex^=\"-\"]):not([inert])',\n];\n\nlet focusedBefore;\n\n/**\n * Save the current active element.\n */\nexport function saveActiveElement() {\n focusedBefore = document.activeElement;\n}\n\n/**\n * Trap tab navigation inside the given element.\n * @param {HTMLElement} element The element in which to trap the tabulations.\n * @param {KeyboardEvent} event The keydown or keyup event.\n */\nexport function trap(element: HTMLElement, event: KeyboardEvent) {\n if (event.keyCode !== keyCodes.TAB) {\n return;\n }\n\n // Save the previous focused element\n if (!focusedBefore) {\n focusedBefore = document.activeElement;\n }\n\n const focusableChildren: HTMLElement[] = Array.from(\n element.querySelectorAll(FOCUSABLE_ELEMENTS.join(', ')),\n );\n const focusedItemIndex =\n document.activeElement instanceof HTMLElement\n ? focusableChildren.indexOf(document.activeElement)\n : -1;\n\n if (!focusableChildren.length) {\n return;\n }\n\n if (focusedItemIndex < 0) {\n focusableChildren[0].focus();\n event.preventDefault();\n }\n\n // If the SHIFT key is being pressed while tabbing (moving backwards) and\n // the currently focused item is the first one, move the focus to the last\n // focusable item from the dialog element\n if (event.shiftKey && focusedItemIndex === 0) {\n focusableChildren.at(-1).focus();\n event.preventDefault();\n }\n\n // If the SHIFT key is not being pressed (moving forwards) and the currently\n // focused item is the last one, move the focus to the first focusable item\n // from the dialog element\n else if (!event.shiftKey && focusedItemIndex === focusableChildren.length - 1) {\n focusableChildren[0].focus();\n event.preventDefault();\n }\n}\n\n/**\n * Untrap the tab navigation.\n */\nexport function untrap() {\n if (focusedBefore && isFunction(focusedBefore.focus)) {\n focusedBefore.focus();\n focusedBefore = null;\n }\n}\n\n/**\n * Use a trap/untrap tabs logic.\n */\nexport default function useFocusTrap() {\n return { trap, untrap, saveActiveElement };\n}\n"],
5
+ "mappings": "AAAA,OAAO,cAAc;AACrB,SAAS,kBAAkB;AAE3B,MAAM,qBAAqB;AAAA,EACzB;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACF;AAEA,IAAI;AAKG,SAAS,oBAAoB;AAClC,kBAAgB,SAAS;AAC3B;AAOO,SAAS,KAAK,SAAsB,OAAsB;AAC/D,MAAI,MAAM,YAAY,SAAS,KAAK;AAClC;AAAA,EACF;AAGA,MAAI,CAAC,eAAe;AAClB,oBAAgB,SAAS;AAAA,EAC3B;AAEA,QAAM,oBAAmC,MAAM;AAAA,IAC7C,QAAQ,iBAAiB,mBAAmB,KAAK,IAAI,CAAC;AAAA,EACxD;AACA,QAAM,mBACJ,SAAS,yBAAyB,cAC9B,kBAAkB,QAAQ,SAAS,aAAa,IAChD;AAEN,MAAI,CAAC,kBAAkB,QAAQ;AAC7B;AAAA,EACF;AAEA,MAAI,mBAAmB,GAAG;AACxB,sBAAkB,GAAG,MAAM;AAC3B,UAAM,eAAe;AAAA,EACvB;AAKA,MAAI,MAAM,YAAY,qBAAqB,GAAG;AAC5C,sBAAkB,GAAG,EAAE,EAAE,MAAM;AAC/B,UAAM,eAAe;AAAA,EACvB,WAKS,CAAC,MAAM,YAAY,qBAAqB,kBAAkB,SAAS,GAAG;AAC7E,sBAAkB,GAAG,MAAM;AAC3B,UAAM,eAAe;AAAA,EACvB;AACF;AAKO,SAAS,SAAS;AACvB,MAAI,iBAAiB,WAAW,cAAc,KAAK,GAAG;AACpD,kBAAc,MAAM;AACpB,oBAAgB;AAAA,EAClB;AACF;AAKe,SAAR,eAAgC;AACrC,SAAO,EAAE,MAAM,QAAQ,kBAAkB;AAC3C;",
6
6
  "names": []
7
7
  }
package/utils/has.cjs CHANGED
@@ -16,7 +16,7 @@ var __copyProps = (to, from, except, desc) => {
16
16
  };
17
17
  var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
18
18
 
19
- // packages/js-toolkit/utils/has.js
19
+ // packages/js-toolkit/utils/has.ts
20
20
  var has_exports = {};
21
21
  __export(has_exports, {
22
22
  hasWindow: () => hasWindow
package/utils/has.cjs.map CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
- "sources": ["../../packages/js-toolkit/utils/has.js"],
4
- "sourcesContent": ["/**\n * Test if the current context as a global `window` object available.\n *\n * @returns {boolean}\n */\nexport function hasWindow() {\n return typeof window !== 'undefined';\n}\n"],
5
- "mappings": ";;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAKO,SAAS,YAAY;AAC1B,SAAO,OAAO,WAAW;AAC3B;",
3
+ "sources": ["../../packages/js-toolkit/utils/has.ts"],
4
+ "sourcesContent": ["/**\n * Test if the current context as a global `window` object available.\n */\nexport function hasWindow() {\n return typeof window !== 'undefined';\n}\n"],
5
+ "mappings": ";;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAGO,SAAS,YAAY;AAC1B,SAAO,OAAO,WAAW;AAC3B;",
6
6
  "names": []
7
7
  }
package/utils/has.d.ts CHANGED
@@ -1,6 +1,4 @@
1
1
  /**
2
2
  * Test if the current context as a global `window` object available.
3
- *
4
- * @returns {boolean}
5
3
  */
6
- export function hasWindow(): boolean;
4
+ export declare function hasWindow(): boolean;
package/utils/has.js.map CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
- "sources": ["../../packages/js-toolkit/utils/has.js"],
4
- "sourcesContent": ["/**\n * Test if the current context as a global `window` object available.\n *\n * @returns {boolean}\n */\nexport function hasWindow() {\n return typeof window !== 'undefined';\n}\n"],
5
- "mappings": "AAKO,SAAS,YAAY;AAC1B,SAAO,OAAO,WAAW;AAC3B;",
3
+ "sources": ["../../packages/js-toolkit/utils/has.ts"],
4
+ "sourcesContent": ["/**\n * Test if the current context as a global `window` object available.\n */\nexport function hasWindow() {\n return typeof window !== 'undefined';\n}\n"],
5
+ "mappings": "AAGO,SAAS,YAAY;AAC1B,SAAO,OAAO,WAAW;AAC3B;",
6
6
  "names": []
7
7
  }
package/utils/history.cjs CHANGED
@@ -16,7 +16,7 @@ var __copyProps = (to, from, except, desc) => {
16
16
  };
17
17
  var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
18
18
 
19
- // packages/js-toolkit/utils/history.js
19
+ // packages/js-toolkit/utils/history.ts
20
20
  var history_exports = {};
21
21
  __export(history_exports, {
22
22
  objectToURLSearchParams: () => objectToURLSearchParams,
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
- "sources": ["../../packages/js-toolkit/utils/history.js"],
4
- "sourcesContent": ["import { isArray, isObject } from './is.js';\nimport { hasWindow } from './has.js';\n\n/**\n * @typedef {Object} HistoryOptions\n * @property {string} [path]\n * @property {URLSearchParams|{ [key:string]: unknown }} [search]\n * @property {string} [hash]\n */\n\n/**\n * Set a param in a URLSearchParam instance.\n * @param {URLSearchParams} params The params to update.\n * @param {string} name The name of the param to update.\n * @param {string|number|boolean|Array|Object} value The value for this param.\n * @returns {URLSearchParams} The updated URLSearchParams instance.\n */\nfunction updateUrlSearchParam(params, name, value) {\n if (value === '' || value === null || value === undefined) {\n if (params.has(name)) {\n params.delete(name);\n }\n return params;\n }\n\n if (isArray(value)) {\n value.forEach((val, index) => {\n const arrayName = `${name}[${index}]`;\n updateUrlSearchParam(params, arrayName, val);\n });\n return params;\n }\n\n if (isObject(value)) {\n Object.entries(value).forEach(([key, val]) => {\n const objectName = `${name}[${key}]`;\n updateUrlSearchParam(params, objectName, val);\n });\n return params;\n }\n\n params.set(name, value);\n return params;\n}\n\n/**\n * Transform an object to an URLSearchParams instance.\n *\n * @param {Object} obj The object to convert.\n * @param {string} defaultSearch A string of defaults search params.\n * @returns {URLSearchParams}\n */\nexport function objectToURLSearchParams(\n obj,\n defaultSearch = hasWindow() ? window.location.search : '',\n) {\n return Object.entries(obj).reduce(\n (urlSearchParams, [name, value]) => updateUrlSearchParam(urlSearchParams, name, value),\n new URLSearchParams(defaultSearch),\n );\n}\n\n/**\n * Update the history with a new state.\n * @param {string} mode\n * @param {HistoryOptions} options\n * @param {Object} [data]\n * @param {string} [title]\n * @returns {void}\n */\nfunction updateHistory(mode, options, data = {}, title = '') {\n if (!window.history) {\n return;\n }\n\n /** @type {HistoryOptions} */\n const { path, search, hash } = {\n path: window.location.pathname,\n search: new URLSearchParams(window.location.search),\n hash: window.location.hash,\n ...options,\n };\n\n let url = path;\n\n const mergedSearch = search instanceof URLSearchParams ? search : objectToURLSearchParams(search);\n\n if (mergedSearch.toString()) {\n url += `?${mergedSearch.toString()}`;\n }\n\n if (hash) {\n if (hash.startsWith('#')) {\n url += hash;\n } else {\n url += `#${hash}`;\n }\n }\n\n const method = `${mode}State`;\n window.history[method](data, title, url);\n}\n\n/**\n * Push a new state.\n *\n * @param {HistoryOptions} options The new state.\n * @param {Object} [data] The data for the new state.\n * @param {string} [title] The title for the new state.\n * @returns {void}\n */\nexport function push(options, data = {}, title = '') {\n updateHistory('push', options, data, title);\n}\n\n/**\n * Replace a new state.\n *\n * @param {HistoryOptions} options The new state.\n * @param {Object} [data] The data for the new state.\n * @param {string} [title] The title for the new state.\n * @returns {void}\n */\nexport function replace(options, data = {}, title = '') {\n updateHistory('replace', options, data, title);\n}\n"],
5
- "mappings": ";;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,gBAAkC;AAClC,iBAA0B;AAgB1B,SAAS,qBAAqB,QAAQ,MAAM,OAAO;AACjD,MAAI,UAAU,MAAM,UAAU,QAAQ,UAAU,QAAW;AACzD,QAAI,OAAO,IAAI,IAAI,GAAG;AACpB,aAAO,OAAO,IAAI;AAAA,IACpB;AACA,WAAO;AAAA,EACT;AAEA,UAAI,mBAAQ,KAAK,GAAG;AAClB,UAAM,QAAQ,CAAC,KAAK,UAAU;AAC5B,YAAM,YAAY,GAAG,QAAQ;AAC7B,2BAAqB,QAAQ,WAAW,GAAG;AAAA,IAC7C,CAAC;AACD,WAAO;AAAA,EACT;AAEA,UAAI,oBAAS,KAAK,GAAG;AACnB,WAAO,QAAQ,KAAK,EAAE,QAAQ,CAAC,CAAC,KAAK,GAAG,MAAM;AAC5C,YAAM,aAAa,GAAG,QAAQ;AAC9B,2BAAqB,QAAQ,YAAY,GAAG;AAAA,IAC9C,CAAC;AACD,WAAO;AAAA,EACT;AAEA,SAAO,IAAI,MAAM,KAAK;AACtB,SAAO;AACT;AASO,SAAS,wBACd,KACA,oBAAgB,sBAAU,IAAI,OAAO,SAAS,SAAS,IACvD;AACA,SAAO,OAAO,QAAQ,GAAG,EAAE;AAAA,IACzB,CAAC,iBAAiB,CAAC,MAAM,KAAK,MAAM,qBAAqB,iBAAiB,MAAM,KAAK;AAAA,IACrF,IAAI,gBAAgB,aAAa;AAAA,EACnC;AACF;AAUA,SAAS,cAAc,MAAM,SAAS,OAAO,CAAC,GAAG,QAAQ,IAAI;AAC3D,MAAI,CAAC,OAAO,SAAS;AACnB;AAAA,EACF;AAGA,QAAM,EAAE,MAAM,QAAQ,KAAK,IAAI;AAAA,IAC7B,MAAM,OAAO,SAAS;AAAA,IACtB,QAAQ,IAAI,gBAAgB,OAAO,SAAS,MAAM;AAAA,IAClD,MAAM,OAAO,SAAS;AAAA,IACtB,GAAG;AAAA,EACL;AAEA,MAAI,MAAM;AAEV,QAAM,eAAe,kBAAkB,kBAAkB,SAAS,wBAAwB,MAAM;AAEhG,MAAI,aAAa,SAAS,GAAG;AAC3B,WAAO,IAAI,aAAa,SAAS;AAAA,EACnC;AAEA,MAAI,MAAM;AACR,QAAI,KAAK,WAAW,GAAG,GAAG;AACxB,aAAO;AAAA,IACT,OAAO;AACL,aAAO,IAAI;AAAA,IACb;AAAA,EACF;AAEA,QAAM,SAAS,GAAG;AAClB,SAAO,QAAQ,QAAQ,MAAM,OAAO,GAAG;AACzC;AAUO,SAAS,KAAK,SAAS,OAAO,CAAC,GAAG,QAAQ,IAAI;AACnD,gBAAc,QAAQ,SAAS,MAAM,KAAK;AAC5C;AAUO,SAAS,QAAQ,SAAS,OAAO,CAAC,GAAG,QAAQ,IAAI;AACtD,gBAAc,WAAW,SAAS,MAAM,KAAK;AAC/C;",
3
+ "sources": ["../../packages/js-toolkit/utils/history.ts"],
4
+ "sourcesContent": ["import { isArray, isObject } from './is.js';\nimport { hasWindow } from './has.js';\n\nexport interface HistoryOptions {\n path?: string;\n search?: URLSearchParams | { [key: string]: unknown };\n hash?: string;\n}\n\n/**\n * Set a param in a URLSearchParam instance.\n * @param {URLSearchParams} params The params to update.\n * @param {string} name The name of the param to update.\n * @param {string|number|boolean|Array|Object} value The value for this param.\n * @returns {URLSearchParams} The updated URLSearchParams instance.\n */\nfunction updateUrlSearchParam(\n params: URLSearchParams,\n name: string,\n value: string | number | boolean | Array<unknown> | Record<string, unknown>,\n): URLSearchParams {\n if (value === '' || value === null || value === undefined) {\n if (params.has(name)) {\n params.delete(name);\n }\n return params;\n }\n\n if (isArray(value)) {\n value.forEach((val, index) => {\n const arrayName = `${name}[${index}]`;\n updateUrlSearchParam(params, arrayName, val);\n });\n return params;\n }\n\n if (isObject(value)) {\n Object.entries(value).forEach(([key, val]) => {\n const objectName = `${name}[${key}]`;\n updateUrlSearchParam(params, objectName, val);\n });\n return params;\n }\n\n params.set(name, value as string);\n return params;\n}\n\n/**\n * Transform an object to an URLSearchParams instance.\n *\n * @param {Object} obj The object to convert.\n * @param {string} defaultSearch A string of defaults search params.\n * @returns {URLSearchParams}\n */\nexport function objectToURLSearchParams(\n obj: unknown,\n defaultSearch = hasWindow() ? window.location.search : '',\n): URLSearchParams {\n return Object.entries(obj).reduce(\n (urlSearchParams: URLSearchParams, [name, value]) =>\n updateUrlSearchParam(urlSearchParams, name, value),\n new URLSearchParams(defaultSearch),\n ) as URLSearchParams;\n}\n\n/**\n * Update the history with a new state.\n * @param {string} mode\n * @param {HistoryOptions} options\n * @param {Object} [data]\n * @param {string} [title]\n * @returns {void}\n */\nfunction updateHistory(\n mode: 'push' | 'replace',\n options: HistoryOptions,\n data: unknown = {},\n title = '',\n) {\n if (!window.history) {\n return;\n }\n\n const { path, search, hash }: HistoryOptions = {\n path: window.location.pathname,\n search: new URLSearchParams(window.location.search),\n hash: window.location.hash,\n ...options,\n };\n\n let url = path;\n\n const mergedSearch = search instanceof URLSearchParams ? search : objectToURLSearchParams(search);\n\n if (mergedSearch.toString()) {\n url += `?${mergedSearch.toString()}`;\n }\n\n if (hash) {\n if (hash.startsWith('#')) {\n url += hash;\n } else {\n url += `#${hash}`;\n }\n }\n\n const method = `${mode}State`;\n window.history[method](data, title, url);\n}\n\n/**\n * Push a new state.\n *\n * @param {HistoryOptions} options The new state.\n * @param {Object} [data] The data for the new state.\n * @param {string} [title] The title for the new state.\n * @returns {void}\n */\nexport function push(options: HistoryOptions, data: unknown = {}, title = '') {\n updateHistory('push', options, data, title);\n}\n\n/**\n * Replace a new state.\n *\n * @param {HistoryOptions} options The new state.\n * @param {Object} [data] The data for the new state.\n * @param {string} [title] The title for the new state.\n * @returns {void}\n */\nexport function replace(options: HistoryOptions, data: unknown = {}, title = '') {\n updateHistory('replace', options, data, title);\n}\n"],
5
+ "mappings": ";;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,gBAAkC;AAClC,iBAA0B;AAe1B,SAAS,qBACP,QACA,MACA,OACiB;AACjB,MAAI,UAAU,MAAM,UAAU,QAAQ,UAAU,QAAW;AACzD,QAAI,OAAO,IAAI,IAAI,GAAG;AACpB,aAAO,OAAO,IAAI;AAAA,IACpB;AACA,WAAO;AAAA,EACT;AAEA,UAAI,mBAAQ,KAAK,GAAG;AAClB,UAAM,QAAQ,CAAC,KAAK,UAAU;AAC5B,YAAM,YAAY,GAAG,QAAQ;AAC7B,2BAAqB,QAAQ,WAAW,GAAG;AAAA,IAC7C,CAAC;AACD,WAAO;AAAA,EACT;AAEA,UAAI,oBAAS,KAAK,GAAG;AACnB,WAAO,QAAQ,KAAK,EAAE,QAAQ,CAAC,CAAC,KAAK,GAAG,MAAM;AAC5C,YAAM,aAAa,GAAG,QAAQ;AAC9B,2BAAqB,QAAQ,YAAY,GAAG;AAAA,IAC9C,CAAC;AACD,WAAO;AAAA,EACT;AAEA,SAAO,IAAI,MAAM,KAAe;AAChC,SAAO;AACT;AASO,SAAS,wBACd,KACA,oBAAgB,sBAAU,IAAI,OAAO,SAAS,SAAS,IACtC;AACjB,SAAO,OAAO,QAAQ,GAAG,EAAE;AAAA,IACzB,CAAC,iBAAkC,CAAC,MAAM,KAAK,MAC7C,qBAAqB,iBAAiB,MAAM,KAAK;AAAA,IACnD,IAAI,gBAAgB,aAAa;AAAA,EACnC;AACF;AAUA,SAAS,cACP,MACA,SACA,OAAgB,CAAC,GACjB,QAAQ,IACR;AACA,MAAI,CAAC,OAAO,SAAS;AACnB;AAAA,EACF;AAEA,QAAM,EAAE,MAAM,QAAQ,KAAK,IAAoB;AAAA,IAC7C,MAAM,OAAO,SAAS;AAAA,IACtB,QAAQ,IAAI,gBAAgB,OAAO,SAAS,MAAM;AAAA,IAClD,MAAM,OAAO,SAAS;AAAA,IACtB,GAAG;AAAA,EACL;AAEA,MAAI,MAAM;AAEV,QAAM,eAAe,kBAAkB,kBAAkB,SAAS,wBAAwB,MAAM;AAEhG,MAAI,aAAa,SAAS,GAAG;AAC3B,WAAO,IAAI,aAAa,SAAS;AAAA,EACnC;AAEA,MAAI,MAAM;AACR,QAAI,KAAK,WAAW,GAAG,GAAG;AACxB,aAAO;AAAA,IACT,OAAO;AACL,aAAO,IAAI;AAAA,IACb;AAAA,EACF;AAEA,QAAM,SAAS,GAAG;AAClB,SAAO,QAAQ,QAAQ,MAAM,OAAO,GAAG;AACzC;AAUO,SAAS,KAAK,SAAyB,OAAgB,CAAC,GAAG,QAAQ,IAAI;AAC5E,gBAAc,QAAQ,SAAS,MAAM,KAAK;AAC5C;AAUO,SAAS,QAAQ,SAAyB,OAAgB,CAAC,GAAG,QAAQ,IAAI;AAC/E,gBAAc,WAAW,SAAS,MAAM,KAAK;AAC/C;",
6
6
  "names": []
7
7
  }
@@ -1,3 +1,10 @@
1
+ export interface HistoryOptions {
2
+ path?: string;
3
+ search?: URLSearchParams | {
4
+ [key: string]: unknown;
5
+ };
6
+ hash?: string;
7
+ }
1
8
  /**
2
9
  * Transform an object to an URLSearchParams instance.
3
10
  *
@@ -5,7 +12,7 @@
5
12
  * @param {string} defaultSearch A string of defaults search params.
6
13
  * @returns {URLSearchParams}
7
14
  */
8
- export function objectToURLSearchParams(obj: any, defaultSearch?: string): URLSearchParams;
15
+ export declare function objectToURLSearchParams(obj: unknown, defaultSearch?: string): URLSearchParams;
9
16
  /**
10
17
  * Push a new state.
11
18
  *
@@ -14,7 +21,7 @@ export function objectToURLSearchParams(obj: any, defaultSearch?: string): URLSe
14
21
  * @param {string} [title] The title for the new state.
15
22
  * @returns {void}
16
23
  */
17
- export function push(options: HistoryOptions, data?: any, title?: string): void;
24
+ export declare function push(options: HistoryOptions, data?: unknown, title?: string): void;
18
25
  /**
19
26
  * Replace a new state.
20
27
  *
@@ -23,11 +30,4 @@ export function push(options: HistoryOptions, data?: any, title?: string): void;
23
30
  * @param {string} [title] The title for the new state.
24
31
  * @returns {void}
25
32
  */
26
- export function replace(options: HistoryOptions, data?: any, title?: string): void;
27
- export type HistoryOptions = {
28
- path?: string;
29
- search?: URLSearchParams | {
30
- [key: string]: unknown;
31
- };
32
- hash?: string;
33
- };
33
+ export declare function replace(options: HistoryOptions, data?: unknown, title?: string): void;
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
- "sources": ["../../packages/js-toolkit/utils/history.js"],
4
- "sourcesContent": ["import { isArray, isObject } from './is.js';\nimport { hasWindow } from './has.js';\n\n/**\n * @typedef {Object} HistoryOptions\n * @property {string} [path]\n * @property {URLSearchParams|{ [key:string]: unknown }} [search]\n * @property {string} [hash]\n */\n\n/**\n * Set a param in a URLSearchParam instance.\n * @param {URLSearchParams} params The params to update.\n * @param {string} name The name of the param to update.\n * @param {string|number|boolean|Array|Object} value The value for this param.\n * @returns {URLSearchParams} The updated URLSearchParams instance.\n */\nfunction updateUrlSearchParam(params, name, value) {\n if (value === '' || value === null || value === undefined) {\n if (params.has(name)) {\n params.delete(name);\n }\n return params;\n }\n\n if (isArray(value)) {\n value.forEach((val, index) => {\n const arrayName = `${name}[${index}]`;\n updateUrlSearchParam(params, arrayName, val);\n });\n return params;\n }\n\n if (isObject(value)) {\n Object.entries(value).forEach(([key, val]) => {\n const objectName = `${name}[${key}]`;\n updateUrlSearchParam(params, objectName, val);\n });\n return params;\n }\n\n params.set(name, value);\n return params;\n}\n\n/**\n * Transform an object to an URLSearchParams instance.\n *\n * @param {Object} obj The object to convert.\n * @param {string} defaultSearch A string of defaults search params.\n * @returns {URLSearchParams}\n */\nexport function objectToURLSearchParams(\n obj,\n defaultSearch = hasWindow() ? window.location.search : '',\n) {\n return Object.entries(obj).reduce(\n (urlSearchParams, [name, value]) => updateUrlSearchParam(urlSearchParams, name, value),\n new URLSearchParams(defaultSearch),\n );\n}\n\n/**\n * Update the history with a new state.\n * @param {string} mode\n * @param {HistoryOptions} options\n * @param {Object} [data]\n * @param {string} [title]\n * @returns {void}\n */\nfunction updateHistory(mode, options, data = {}, title = '') {\n if (!window.history) {\n return;\n }\n\n /** @type {HistoryOptions} */\n const { path, search, hash } = {\n path: window.location.pathname,\n search: new URLSearchParams(window.location.search),\n hash: window.location.hash,\n ...options,\n };\n\n let url = path;\n\n const mergedSearch = search instanceof URLSearchParams ? search : objectToURLSearchParams(search);\n\n if (mergedSearch.toString()) {\n url += `?${mergedSearch.toString()}`;\n }\n\n if (hash) {\n if (hash.startsWith('#')) {\n url += hash;\n } else {\n url += `#${hash}`;\n }\n }\n\n const method = `${mode}State`;\n window.history[method](data, title, url);\n}\n\n/**\n * Push a new state.\n *\n * @param {HistoryOptions} options The new state.\n * @param {Object} [data] The data for the new state.\n * @param {string} [title] The title for the new state.\n * @returns {void}\n */\nexport function push(options, data = {}, title = '') {\n updateHistory('push', options, data, title);\n}\n\n/**\n * Replace a new state.\n *\n * @param {HistoryOptions} options The new state.\n * @param {Object} [data] The data for the new state.\n * @param {string} [title] The title for the new state.\n * @returns {void}\n */\nexport function replace(options, data = {}, title = '') {\n updateHistory('replace', options, data, title);\n}\n"],
5
- "mappings": "AAAA,SAAS,SAAS,gBAAgB;AAClC,SAAS,iBAAiB;AAgB1B,SAAS,qBAAqB,QAAQ,MAAM,OAAO;AACjD,MAAI,UAAU,MAAM,UAAU,QAAQ,UAAU,QAAW;AACzD,QAAI,OAAO,IAAI,IAAI,GAAG;AACpB,aAAO,OAAO,IAAI;AAAA,IACpB;AACA,WAAO;AAAA,EACT;AAEA,MAAI,QAAQ,KAAK,GAAG;AAClB,UAAM,QAAQ,CAAC,KAAK,UAAU;AAC5B,YAAM,YAAY,GAAG,QAAQ;AAC7B,2BAAqB,QAAQ,WAAW,GAAG;AAAA,IAC7C,CAAC;AACD,WAAO;AAAA,EACT;AAEA,MAAI,SAAS,KAAK,GAAG;AACnB,WAAO,QAAQ,KAAK,EAAE,QAAQ,CAAC,CAAC,KAAK,GAAG,MAAM;AAC5C,YAAM,aAAa,GAAG,QAAQ;AAC9B,2BAAqB,QAAQ,YAAY,GAAG;AAAA,IAC9C,CAAC;AACD,WAAO;AAAA,EACT;AAEA,SAAO,IAAI,MAAM,KAAK;AACtB,SAAO;AACT;AASO,SAAS,wBACd,KACA,gBAAgB,UAAU,IAAI,OAAO,SAAS,SAAS,IACvD;AACA,SAAO,OAAO,QAAQ,GAAG,EAAE;AAAA,IACzB,CAAC,iBAAiB,CAAC,MAAM,KAAK,MAAM,qBAAqB,iBAAiB,MAAM,KAAK;AAAA,IACrF,IAAI,gBAAgB,aAAa;AAAA,EACnC;AACF;AAUA,SAAS,cAAc,MAAM,SAAS,OAAO,CAAC,GAAG,QAAQ,IAAI;AAC3D,MAAI,CAAC,OAAO,SAAS;AACnB;AAAA,EACF;AAGA,QAAM,EAAE,MAAM,QAAQ,KAAK,IAAI;AAAA,IAC7B,MAAM,OAAO,SAAS;AAAA,IACtB,QAAQ,IAAI,gBAAgB,OAAO,SAAS,MAAM;AAAA,IAClD,MAAM,OAAO,SAAS;AAAA,IACtB,GAAG;AAAA,EACL;AAEA,MAAI,MAAM;AAEV,QAAM,eAAe,kBAAkB,kBAAkB,SAAS,wBAAwB,MAAM;AAEhG,MAAI,aAAa,SAAS,GAAG;AAC3B,WAAO,IAAI,aAAa,SAAS;AAAA,EACnC;AAEA,MAAI,MAAM;AACR,QAAI,KAAK,WAAW,GAAG,GAAG;AACxB,aAAO;AAAA,IACT,OAAO;AACL,aAAO,IAAI;AAAA,IACb;AAAA,EACF;AAEA,QAAM,SAAS,GAAG;AAClB,SAAO,QAAQ,QAAQ,MAAM,OAAO,GAAG;AACzC;AAUO,SAAS,KAAK,SAAS,OAAO,CAAC,GAAG,QAAQ,IAAI;AACnD,gBAAc,QAAQ,SAAS,MAAM,KAAK;AAC5C;AAUO,SAAS,QAAQ,SAAS,OAAO,CAAC,GAAG,QAAQ,IAAI;AACtD,gBAAc,WAAW,SAAS,MAAM,KAAK;AAC/C;",
3
+ "sources": ["../../packages/js-toolkit/utils/history.ts"],
4
+ "sourcesContent": ["import { isArray, isObject } from './is.js';\nimport { hasWindow } from './has.js';\n\nexport interface HistoryOptions {\n path?: string;\n search?: URLSearchParams | { [key: string]: unknown };\n hash?: string;\n}\n\n/**\n * Set a param in a URLSearchParam instance.\n * @param {URLSearchParams} params The params to update.\n * @param {string} name The name of the param to update.\n * @param {string|number|boolean|Array|Object} value The value for this param.\n * @returns {URLSearchParams} The updated URLSearchParams instance.\n */\nfunction updateUrlSearchParam(\n params: URLSearchParams,\n name: string,\n value: string | number | boolean | Array<unknown> | Record<string, unknown>,\n): URLSearchParams {\n if (value === '' || value === null || value === undefined) {\n if (params.has(name)) {\n params.delete(name);\n }\n return params;\n }\n\n if (isArray(value)) {\n value.forEach((val, index) => {\n const arrayName = `${name}[${index}]`;\n updateUrlSearchParam(params, arrayName, val);\n });\n return params;\n }\n\n if (isObject(value)) {\n Object.entries(value).forEach(([key, val]) => {\n const objectName = `${name}[${key}]`;\n updateUrlSearchParam(params, objectName, val);\n });\n return params;\n }\n\n params.set(name, value as string);\n return params;\n}\n\n/**\n * Transform an object to an URLSearchParams instance.\n *\n * @param {Object} obj The object to convert.\n * @param {string} defaultSearch A string of defaults search params.\n * @returns {URLSearchParams}\n */\nexport function objectToURLSearchParams(\n obj: unknown,\n defaultSearch = hasWindow() ? window.location.search : '',\n): URLSearchParams {\n return Object.entries(obj).reduce(\n (urlSearchParams: URLSearchParams, [name, value]) =>\n updateUrlSearchParam(urlSearchParams, name, value),\n new URLSearchParams(defaultSearch),\n ) as URLSearchParams;\n}\n\n/**\n * Update the history with a new state.\n * @param {string} mode\n * @param {HistoryOptions} options\n * @param {Object} [data]\n * @param {string} [title]\n * @returns {void}\n */\nfunction updateHistory(\n mode: 'push' | 'replace',\n options: HistoryOptions,\n data: unknown = {},\n title = '',\n) {\n if (!window.history) {\n return;\n }\n\n const { path, search, hash }: HistoryOptions = {\n path: window.location.pathname,\n search: new URLSearchParams(window.location.search),\n hash: window.location.hash,\n ...options,\n };\n\n let url = path;\n\n const mergedSearch = search instanceof URLSearchParams ? search : objectToURLSearchParams(search);\n\n if (mergedSearch.toString()) {\n url += `?${mergedSearch.toString()}`;\n }\n\n if (hash) {\n if (hash.startsWith('#')) {\n url += hash;\n } else {\n url += `#${hash}`;\n }\n }\n\n const method = `${mode}State`;\n window.history[method](data, title, url);\n}\n\n/**\n * Push a new state.\n *\n * @param {HistoryOptions} options The new state.\n * @param {Object} [data] The data for the new state.\n * @param {string} [title] The title for the new state.\n * @returns {void}\n */\nexport function push(options: HistoryOptions, data: unknown = {}, title = '') {\n updateHistory('push', options, data, title);\n}\n\n/**\n * Replace a new state.\n *\n * @param {HistoryOptions} options The new state.\n * @param {Object} [data] The data for the new state.\n * @param {string} [title] The title for the new state.\n * @returns {void}\n */\nexport function replace(options: HistoryOptions, data: unknown = {}, title = '') {\n updateHistory('replace', options, data, title);\n}\n"],
5
+ "mappings": "AAAA,SAAS,SAAS,gBAAgB;AAClC,SAAS,iBAAiB;AAe1B,SAAS,qBACP,QACA,MACA,OACiB;AACjB,MAAI,UAAU,MAAM,UAAU,QAAQ,UAAU,QAAW;AACzD,QAAI,OAAO,IAAI,IAAI,GAAG;AACpB,aAAO,OAAO,IAAI;AAAA,IACpB;AACA,WAAO;AAAA,EACT;AAEA,MAAI,QAAQ,KAAK,GAAG;AAClB,UAAM,QAAQ,CAAC,KAAK,UAAU;AAC5B,YAAM,YAAY,GAAG,QAAQ;AAC7B,2BAAqB,QAAQ,WAAW,GAAG;AAAA,IAC7C,CAAC;AACD,WAAO;AAAA,EACT;AAEA,MAAI,SAAS,KAAK,GAAG;AACnB,WAAO,QAAQ,KAAK,EAAE,QAAQ,CAAC,CAAC,KAAK,GAAG,MAAM;AAC5C,YAAM,aAAa,GAAG,QAAQ;AAC9B,2BAAqB,QAAQ,YAAY,GAAG;AAAA,IAC9C,CAAC;AACD,WAAO;AAAA,EACT;AAEA,SAAO,IAAI,MAAM,KAAe;AAChC,SAAO;AACT;AASO,SAAS,wBACd,KACA,gBAAgB,UAAU,IAAI,OAAO,SAAS,SAAS,IACtC;AACjB,SAAO,OAAO,QAAQ,GAAG,EAAE;AAAA,IACzB,CAAC,iBAAkC,CAAC,MAAM,KAAK,MAC7C,qBAAqB,iBAAiB,MAAM,KAAK;AAAA,IACnD,IAAI,gBAAgB,aAAa;AAAA,EACnC;AACF;AAUA,SAAS,cACP,MACA,SACA,OAAgB,CAAC,GACjB,QAAQ,IACR;AACA,MAAI,CAAC,OAAO,SAAS;AACnB;AAAA,EACF;AAEA,QAAM,EAAE,MAAM,QAAQ,KAAK,IAAoB;AAAA,IAC7C,MAAM,OAAO,SAAS;AAAA,IACtB,QAAQ,IAAI,gBAAgB,OAAO,SAAS,MAAM;AAAA,IAClD,MAAM,OAAO,SAAS;AAAA,IACtB,GAAG;AAAA,EACL;AAEA,MAAI,MAAM;AAEV,QAAM,eAAe,kBAAkB,kBAAkB,SAAS,wBAAwB,MAAM;AAEhG,MAAI,aAAa,SAAS,GAAG;AAC3B,WAAO,IAAI,aAAa,SAAS;AAAA,EACnC;AAEA,MAAI,MAAM;AACR,QAAI,KAAK,WAAW,GAAG,GAAG;AACxB,aAAO;AAAA,IACT,OAAO;AACL,aAAO,IAAI;AAAA,IACb;AAAA,EACF;AAEA,QAAM,SAAS,GAAG;AAClB,SAAO,QAAQ,QAAQ,MAAM,OAAO,GAAG;AACzC;AAUO,SAAS,KAAK,SAAyB,OAAgB,CAAC,GAAG,QAAQ,IAAI;AAC5E,gBAAc,QAAQ,SAAS,MAAM,KAAK;AAC5C;AAUO,SAAS,QAAQ,SAAyB,OAAgB,CAAC,GAAG,QAAQ,IAAI;AAC/E,gBAAc,WAAW,SAAS,MAAM,KAAK;AAC/C;",
6
6
  "names": []
7
7
  }
package/utils/index.cjs CHANGED
@@ -26,6 +26,7 @@ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: tru
26
26
  // packages/js-toolkit/utils/index.ts
27
27
  var utils_exports = {};
28
28
  __export(utils_exports, {
29
+ Queue: () => import_Queue.Queue,
29
30
  debounce: () => import_debounce.default,
30
31
  focusTrap: () => import_focusTrap.default,
31
32
  historyPush: () => import_history.push,
@@ -60,5 +61,7 @@ __reExport(utils_exports, require("./string/index.cjs"), module.exports);
60
61
  __reExport(utils_exports, require("./scheduler.cjs"), module.exports);
61
62
  __reExport(utils_exports, require("./noop.cjs"), module.exports);
62
63
  var import_tween = require("./tween.cjs");
64
+ var import_Queue = require("./Queue.cjs");
65
+ __reExport(utils_exports, require("./dom/index.cjs"), module.exports);
63
66
  if (module.exports.default) module.exports = module.exports.default;
64
67
  //# sourceMappingURL=index.cjs.map
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../packages/js-toolkit/utils/index.ts"],
4
- "sourcesContent": ["export { default as debounce } from './debounce.js';\nexport { default as focusTrap } from './focusTrap.js';\nexport { default as keyCodes } from './keyCodes.js';\nexport { default as memoize } from './memoize.js';\nexport { nextFrame } from './nextFrame.js';\nexport { default as nextTick } from './nextTick.js';\nexport { default as nextMicrotask } from './nextMicrotask.js';\nexport { default as throttle } from './throttle.js';\nexport { default as scrollTo } from './scrollTo.js';\nexport * from './is.js';\nexport * from './has.js';\n// eslint-disable-next-line import/extensions\nexport * from './css/index.js';\nexport {\n objectToURLSearchParams,\n push as historyPush,\n replace as historyReplace,\n} from './history.js';\nexport * from './collide/index.js';\nexport * from './math/index.js';\nexport * from './string/index.js';\nexport * from './scheduler.js';\nexport * from './noop.js';\nexport { tween } from './tween.js';\n"],
5
- "mappings": ";;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,sBAAoC;AACpC,uBAAqC;AACrC,sBAAoC;AACpC,qBAAmC;AACnC,uBAA0B;AAC1B,sBAAoC;AACpC,2BAAyC;AACzC,sBAAoC;AACpC,sBAAoC;AACpC,0BAAc,qBATd;AAUA,0BAAc,sBAVd;AAYA,0BAAc,4BAZd;AAaA,qBAIO;AACP,0BAAc,gCAlBd;AAmBA,0BAAc,6BAnBd;AAoBA,0BAAc,+BApBd;AAqBA,0BAAc,4BArBd;AAsBA,0BAAc,uBAtBd;AAuBA,mBAAsB;",
4
+ "sourcesContent": ["export { default as debounce } from './debounce.js';\nexport { default as focusTrap } from './focusTrap.js';\nexport { default as keyCodes } from './keyCodes.js';\nexport { default as memoize } from './memoize.js';\nexport { nextFrame } from './nextFrame.js';\nexport { default as nextTick } from './nextTick.js';\nexport { default as nextMicrotask } from './nextMicrotask.js';\nexport { default as throttle } from './throttle.js';\nexport { default as scrollTo } from './scrollTo.js';\nexport * from './is.js';\nexport * from './has.js';\n// eslint-disable-next-line import/extensions\nexport * from './css/index.js';\nexport {\n objectToURLSearchParams,\n push as historyPush,\n replace as historyReplace,\n} from './history.js';\nexport * from './collide/index.js';\nexport * from './math/index.js';\nexport * from './string/index.js';\nexport * from './scheduler.js';\nexport * from './noop.js';\nexport { tween } from './tween.js';\nexport { Queue } from './Queue.js';\nexport * from './dom/index.js';\n"],
5
+ "mappings": ";;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,sBAAoC;AACpC,uBAAqC;AACrC,sBAAoC;AACpC,qBAAmC;AACnC,uBAA0B;AAC1B,sBAAoC;AACpC,2BAAyC;AACzC,sBAAoC;AACpC,sBAAoC;AACpC,0BAAc,qBATd;AAUA,0BAAc,sBAVd;AAYA,0BAAc,4BAZd;AAaA,qBAIO;AACP,0BAAc,gCAlBd;AAmBA,0BAAc,6BAnBd;AAoBA,0BAAc,+BApBd;AAqBA,0BAAc,4BArBd;AAsBA,0BAAc,uBAtBd;AAuBA,mBAAsB;AACtB,mBAAsB;AACtB,0BAAc,4BAzBd;",
6
6
  "names": []
7
7
  }
package/utils/index.d.ts CHANGED
@@ -17,3 +17,5 @@ export * from './string/index.js';
17
17
  export * from './scheduler.js';
18
18
  export * from './noop.js';
19
19
  export { tween } from './tween.js';
20
+ export { Queue } from './Queue.js';
21
+ export * from './dom/index.js';
package/utils/index.js CHANGED
@@ -21,7 +21,10 @@ export * from "./string/index.js";
21
21
  export * from "./scheduler.js";
22
22
  export * from "./noop.js";
23
23
  import { tween } from "./tween.js";
24
+ import { Queue } from "./Queue.js";
25
+ export * from "./dom/index.js";
24
26
  export {
27
+ Queue,
25
28
  default2 as debounce,
26
29
  default3 as focusTrap,
27
30
  push as historyPush,
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../packages/js-toolkit/utils/index.ts"],
4
- "sourcesContent": ["export { default as debounce } from './debounce.js';\nexport { default as focusTrap } from './focusTrap.js';\nexport { default as keyCodes } from './keyCodes.js';\nexport { default as memoize } from './memoize.js';\nexport { nextFrame } from './nextFrame.js';\nexport { default as nextTick } from './nextTick.js';\nexport { default as nextMicrotask } from './nextMicrotask.js';\nexport { default as throttle } from './throttle.js';\nexport { default as scrollTo } from './scrollTo.js';\nexport * from './is.js';\nexport * from './has.js';\n// eslint-disable-next-line import/extensions\nexport * from './css/index.js';\nexport {\n objectToURLSearchParams,\n push as historyPush,\n replace as historyReplace,\n} from './history.js';\nexport * from './collide/index.js';\nexport * from './math/index.js';\nexport * from './string/index.js';\nexport * from './scheduler.js';\nexport * from './noop.js';\nexport { tween } from './tween.js';\n"],
5
- "mappings": "AAAA,SAAoB,WAAXA,gBAA2B;AACpC,SAAoB,WAAXA,gBAA4B;AACrC,SAAoB,WAAXA,gBAA2B;AACpC,SAAoB,WAAXA,gBAA0B;AACnC,SAAS,iBAAiB;AAC1B,SAAoB,WAAXA,gBAA2B;AACpC,SAAoB,WAAXA,gBAAgC;AACzC,SAAoB,WAAXA,gBAA2B;AACpC,SAAoB,WAAXA,gBAA2B;AACpC,cAAc;AACd,cAAc;AAEd,cAAc;AACd;AAAA,EACE;AAAA,EACQ;AAAA,EACG;AAAA,OACN;AACP,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;AACd,SAAS,aAAa;",
4
+ "sourcesContent": ["export { default as debounce } from './debounce.js';\nexport { default as focusTrap } from './focusTrap.js';\nexport { default as keyCodes } from './keyCodes.js';\nexport { default as memoize } from './memoize.js';\nexport { nextFrame } from './nextFrame.js';\nexport { default as nextTick } from './nextTick.js';\nexport { default as nextMicrotask } from './nextMicrotask.js';\nexport { default as throttle } from './throttle.js';\nexport { default as scrollTo } from './scrollTo.js';\nexport * from './is.js';\nexport * from './has.js';\n// eslint-disable-next-line import/extensions\nexport * from './css/index.js';\nexport {\n objectToURLSearchParams,\n push as historyPush,\n replace as historyReplace,\n} from './history.js';\nexport * from './collide/index.js';\nexport * from './math/index.js';\nexport * from './string/index.js';\nexport * from './scheduler.js';\nexport * from './noop.js';\nexport { tween } from './tween.js';\nexport { Queue } from './Queue.js';\nexport * from './dom/index.js';\n"],
5
+ "mappings": "AAAA,SAAoB,WAAXA,gBAA2B;AACpC,SAAoB,WAAXA,gBAA4B;AACrC,SAAoB,WAAXA,gBAA2B;AACpC,SAAoB,WAAXA,gBAA0B;AACnC,SAAS,iBAAiB;AAC1B,SAAoB,WAAXA,gBAA2B;AACpC,SAAoB,WAAXA,gBAAgC;AACzC,SAAoB,WAAXA,gBAA2B;AACpC,SAAoB,WAAXA,gBAA2B;AACpC,cAAc;AACd,cAAc;AAEd,cAAc;AACd;AAAA,EACE;AAAA,EACQ;AAAA,EACG;AAAA,OACN;AACP,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;AACd,SAAS,aAAa;AACtB,SAAS,aAAa;AACtB,cAAc;",
6
6
  "names": ["default"]
7
7
  }