@splendidlabz/utils 1.11.3 → 1.11.5

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 (408) hide show
  1. package/dist/cjs/dom/accessibility.cjs +53 -0
  2. package/dist/cjs/dom/actions/index.cjs +410 -0
  3. package/dist/cjs/dom/actions/masonry.cjs +152 -0
  4. package/dist/cjs/dom/actions/prefer-horizontal-scroll.cjs +157 -0
  5. package/dist/cjs/dom/actions/sticky.cjs +213 -0
  6. package/dist/cjs/dom/bounding-box.cjs +70 -0
  7. package/dist/cjs/dom/clipboard.cjs +37 -0
  8. package/dist/cjs/dom/cookie.cjs +57 -0
  9. package/dist/cjs/dom/css-vars.cjs +57 -0
  10. package/dist/cjs/dom/events.cjs +59 -0
  11. package/{src/dom/focusable.js → dist/cjs/dom/focusable.cjs} +51 -73
  12. package/dist/cjs/dom/font-size.cjs +80 -0
  13. package/dist/cjs/dom/get-element.cjs +98 -0
  14. package/dist/cjs/dom/hash.cjs +35 -0
  15. package/dist/cjs/dom/index.cjs +1267 -0
  16. package/dist/cjs/dom/keyboard.cjs +51 -0
  17. package/dist/cjs/dom/local-store.cjs +79 -0
  18. package/dist/cjs/dom/media.cjs +59 -0
  19. package/dist/cjs/dom/observers/index.cjs +253 -0
  20. package/dist/cjs/dom/observers/intersection-observer.cjs +91 -0
  21. package/dist/cjs/dom/observers/mutation-observer.cjs +95 -0
  22. package/dist/cjs/dom/observers/observer.cjs +48 -0
  23. package/dist/cjs/dom/observers/resize-observer.cjs +84 -0
  24. package/dist/cjs/dom/observers/scroll-observer.cjs +177 -0
  25. package/dist/cjs/dom/pkce.cjs +53 -0
  26. package/dist/cjs/dom/query-params.cjs +38 -0
  27. package/dist/cjs/dom/random-string.cjs +38 -0
  28. package/dist/cjs/dom/sanitize.cjs +65 -0
  29. package/dist/cjs/dom/session-store.cjs +49 -0
  30. package/dist/cjs/dom/spam-prevention.cjs +50 -0
  31. package/dist/cjs/dom/trap-focus.cjs +197 -0
  32. package/dist/cjs/dom/ui/aria-current.cjs +43 -0
  33. package/dist/cjs/dom/ui/inconsistent-button-fix.cjs +35 -0
  34. package/dist/cjs/dom/ui/index.cjs +105 -0
  35. package/dist/cjs/dom/ui/scroll-container.cjs +47 -0
  36. package/dist/cjs/dom/ui/traverse-and-scramble.cjs +50 -0
  37. package/dist/cjs/lib/arrays/index.cjs +139 -0
  38. package/dist/cjs/lib/arrays/item-position.cjs +42 -0
  39. package/dist/cjs/lib/arrays/join.cjs +43 -0
  40. package/dist/cjs/lib/arrays/shuffle.cjs +42 -0
  41. package/dist/cjs/lib/arrays/sort.cjs +67 -0
  42. package/dist/cjs/lib/arrays/split-array.cjs +41 -0
  43. package/dist/cjs/lib/arrays/unique.cjs +31 -0
  44. package/dist/cjs/lib/auth/index.cjs +53 -0
  45. package/dist/cjs/lib/auth/route-manager.cjs +51 -0
  46. package/dist/cjs/lib/checks.cjs +63 -0
  47. package/dist/cjs/lib/date/days.cjs +37 -0
  48. package/dist/cjs/lib/date/index.cjs +208 -0
  49. package/dist/cjs/lib/date/months.cjs +102 -0
  50. package/dist/cjs/lib/date/time.cjs +117 -0
  51. package/dist/cjs/lib/form/form-data.cjs +83 -0
  52. package/dist/cjs/lib/form/index.cjs +122 -0
  53. package/dist/cjs/lib/form/sanitize.cjs +61 -0
  54. package/dist/cjs/lib/functions/callback.cjs +31 -0
  55. package/dist/cjs/lib/functions/debounce.cjs +43 -0
  56. package/dist/cjs/lib/functions/env.cjs +32 -0
  57. package/dist/cjs/lib/functions/functional.cjs +82 -0
  58. package/dist/cjs/lib/functions/index.cjs +142 -0
  59. package/dist/cjs/lib/functions/throttle.cjs +38 -0
  60. package/dist/cjs/lib/functions/timeout.cjs +41 -0
  61. package/dist/cjs/lib/hash.cjs +43 -0
  62. package/dist/cjs/lib/index.cjs +1178 -0
  63. package/dist/cjs/lib/numbers/index.cjs +49 -0
  64. package/dist/cjs/lib/numbers/math.cjs +36 -0
  65. package/dist/cjs/lib/objects/camelcase-keys.cjs +80 -0
  66. package/dist/cjs/lib/objects/empty.cjs +39 -0
  67. package/dist/cjs/lib/objects/equal.cjs +47 -0
  68. package/dist/cjs/lib/objects/extend.cjs +147 -0
  69. package/dist/cjs/lib/objects/flatten.cjs +48 -0
  70. package/dist/cjs/lib/objects/index.cjs +378 -0
  71. package/dist/cjs/lib/objects/json.cjs +35 -0
  72. package/dist/cjs/lib/objects/loop.cjs +40 -0
  73. package/dist/cjs/lib/objects/mix/mix.cjs +115 -0
  74. package/dist/cjs/lib/objects/nested-property.cjs +45 -0
  75. package/dist/cjs/lib/objects/normalize-object.cjs +106 -0
  76. package/dist/cjs/lib/objects/omit-empty.cjs +40 -0
  77. package/dist/cjs/lib/objects/size.cjs +63 -0
  78. package/dist/cjs/lib/objects/split.cjs +39 -0
  79. package/dist/cjs/lib/promises/index.cjs +69 -0
  80. package/dist/cjs/lib/promises/reject.cjs +67 -0
  81. package/dist/cjs/lib/sse.cjs +99 -0
  82. package/dist/cjs/lib/strings/convert-case/convert-case.cjs +96 -0
  83. package/dist/cjs/lib/strings/index.cjs +197 -0
  84. package/dist/cjs/lib/strings/markdown.cjs +76 -0
  85. package/dist/cjs/lib/strings/name.cjs +46 -0
  86. package/dist/cjs/lib/strings/pluralize.cjs +40 -0
  87. package/dist/cjs/lib/strings/query-string.cjs +43 -0
  88. package/dist/cjs/lib/style/index.cjs +64 -0
  89. package/dist/cjs/lib/symbols/index.cjs +40 -0
  90. package/dist/cjs/lib/symbols/symbols.cjs +38 -0
  91. package/dist/cjs/node/dirname.cjs +49 -0
  92. package/dist/cjs/node/file-cache.cjs +200 -0
  93. package/dist/cjs/node/file.cjs +50 -0
  94. package/dist/cjs/node/hash.cjs +42 -0
  95. package/dist/cjs/node/index.cjs +296 -0
  96. package/dist/cjs/node/pkce.cjs +64 -0
  97. package/dist/cjs/node/random-string.cjs +43 -0
  98. package/dist/cjs/node/sanitize.cjs +65 -0
  99. package/dist/cjs/node/uuid.cjs +42 -0
  100. package/dist/esm/dom/accessibility.js +26 -0
  101. package/dist/esm/dom/actions/index.js +3 -0
  102. package/dist/esm/dom/actions/masonry.js +38 -0
  103. package/dist/esm/dom/actions/prefer-horizontal-scroll.js +90 -0
  104. package/dist/esm/dom/actions/sticky.js +70 -0
  105. package/dist/esm/dom/bounding-box.js +44 -0
  106. package/dist/esm/dom/clipboard.js +12 -0
  107. package/dist/esm/dom/cookie.js +31 -0
  108. package/dist/esm/dom/css-vars.js +21 -0
  109. package/dist/esm/dom/events.js +31 -0
  110. package/dist/esm/dom/focusable.js +117 -0
  111. package/dist/esm/dom/font-size.js +40 -0
  112. package/dist/esm/dom/get-element.js +66 -0
  113. package/dist/esm/dom/hash.js +10 -0
  114. package/dist/esm/dom/index.js +23 -0
  115. package/dist/esm/dom/keyboard.js +22 -0
  116. package/{src → dist/esm}/dom/local-store.js +16 -28
  117. package/dist/esm/dom/media.js +32 -0
  118. package/dist/esm/dom/observers/index.js +4 -0
  119. package/dist/esm/dom/observers/intersection-observer.js +36 -0
  120. package/dist/esm/dom/observers/mutation-observer.js +40 -0
  121. package/dist/esm/dom/observers/observer.js +15 -0
  122. package/dist/esm/dom/observers/resize-observer.js +29 -0
  123. package/dist/esm/dom/observers/scroll-observer.js +95 -0
  124. package/dist/esm/dom/pkce.js +20 -0
  125. package/dist/esm/dom/query-params.js +13 -0
  126. package/dist/esm/dom/random-string.js +12 -0
  127. package/dist/esm/dom/sanitize.js +8 -0
  128. package/dist/esm/dom/session-store.js +24 -0
  129. package/dist/esm/dom/spam-prevention.js +25 -0
  130. package/dist/esm/dom/trap-focus.js +51 -0
  131. package/dist/esm/dom/ui/aria-current.js +17 -0
  132. package/dist/esm/dom/ui/inconsistent-button-fix.js +10 -0
  133. package/dist/esm/dom/ui/index.js +4 -0
  134. package/dist/esm/dom/ui/scroll-container.js +22 -0
  135. package/dist/esm/dom/ui/traverse-and-scramble.js +25 -0
  136. package/dist/esm/lib/arrays/index.js +6 -0
  137. package/dist/esm/lib/arrays/item-position.js +15 -0
  138. package/dist/esm/lib/arrays/join.js +12 -0
  139. package/dist/esm/lib/arrays/shuffle.js +17 -0
  140. package/dist/esm/lib/arrays/sort.js +36 -0
  141. package/dist/esm/lib/arrays/split-array.js +16 -0
  142. package/dist/esm/lib/arrays/unique.js +6 -0
  143. package/dist/esm/lib/auth/index.js +1 -0
  144. package/dist/esm/lib/auth/route-manager.js +25 -0
  145. package/dist/esm/lib/checks.js +34 -0
  146. package/dist/esm/lib/date/days.js +12 -0
  147. package/dist/esm/lib/date/index.js +3 -0
  148. package/dist/esm/lib/date/months.js +77 -0
  149. package/dist/esm/lib/date/time.js +75 -0
  150. package/dist/esm/lib/form/form-data.js +57 -0
  151. package/dist/esm/lib/form/index.js +2 -0
  152. package/dist/esm/lib/form/sanitize.js +34 -0
  153. package/dist/esm/lib/functions/callback.js +6 -0
  154. package/dist/esm/lib/functions/debounce.js +18 -0
  155. package/dist/esm/lib/functions/env.js +7 -0
  156. package/dist/esm/lib/functions/functional.js +52 -0
  157. package/dist/esm/lib/functions/index.js +5 -0
  158. package/dist/esm/lib/functions/throttle.js +13 -0
  159. package/dist/esm/lib/functions/timeout.js +14 -0
  160. package/dist/esm/lib/hash.js +18 -0
  161. package/dist/esm/lib/index.js +14 -0
  162. package/dist/esm/lib/numbers/index.js +11 -0
  163. package/dist/esm/lib/numbers/math.js +10 -0
  164. package/dist/esm/lib/objects/camelcase-keys.js +16 -0
  165. package/dist/esm/lib/objects/empty.js +13 -0
  166. package/dist/esm/lib/objects/equal.js +11 -0
  167. package/dist/esm/lib/objects/extend.js +13 -0
  168. package/dist/esm/lib/objects/flatten.js +17 -0
  169. package/dist/esm/lib/objects/index.js +13 -0
  170. package/dist/esm/lib/objects/json.js +10 -0
  171. package/dist/esm/lib/objects/loop.js +14 -0
  172. package/dist/esm/lib/objects/mix/mix.js +88 -0
  173. package/dist/esm/lib/objects/nested-property.js +18 -0
  174. package/dist/esm/lib/objects/normalize-object.js +9 -0
  175. package/dist/esm/lib/objects/omit-empty.js +15 -0
  176. package/dist/esm/lib/objects/size.js +38 -0
  177. package/dist/esm/lib/objects/split.js +14 -0
  178. package/dist/esm/lib/promises/index.js +1 -0
  179. package/dist/esm/lib/promises/reject.js +17 -0
  180. package/dist/esm/lib/sse.js +50 -0
  181. package/dist/esm/lib/strings/convert-case/convert-case.js +64 -0
  182. package/dist/esm/lib/strings/index.js +5 -0
  183. package/dist/esm/lib/strings/markdown.js +40 -0
  184. package/dist/esm/lib/strings/name.js +21 -0
  185. package/dist/esm/lib/strings/pluralize.js +5 -0
  186. package/dist/esm/lib/strings/query-string.js +16 -0
  187. package/dist/esm/lib/style/index.js +12 -0
  188. package/dist/esm/lib/symbols/index.js +1 -0
  189. package/dist/esm/lib/symbols/symbols.js +12 -0
  190. package/dist/esm/node/context.js +0 -0
  191. package/dist/esm/node/dirname.js +13 -0
  192. package/dist/esm/node/file-cache.js +121 -0
  193. package/dist/esm/node/file.js +14 -0
  194. package/dist/esm/node/hash.js +7 -0
  195. package/dist/esm/node/index.js +7 -0
  196. package/dist/esm/node/pkce.js +20 -0
  197. package/dist/esm/node/random-string.js +8 -0
  198. package/dist/esm/node/sanitize.js +8 -0
  199. package/dist/esm/node/uuid.js +7 -0
  200. package/dist/types/dom/accessibility.d.cts +30 -0
  201. package/dist/types/dom/actions/index.d.cts +3 -0
  202. package/dist/types/dom/actions/masonry.d.cts +5 -0
  203. package/dist/types/dom/actions/prefer-horizontal-scroll.d.cts +5 -0
  204. package/dist/types/dom/actions/sticky.d.cts +5 -0
  205. package/{src/dom/bounding-box.js → dist/types/dom/bounding-box.d.cts} +8 -49
  206. package/dist/types/dom/clipboard.d.cts +7 -0
  207. package/dist/types/dom/cookie.d.cts +7 -0
  208. package/dist/types/dom/css-vars.d.cts +6 -0
  209. package/{src/dom/events.js → dist/types/dom/events.d.cts} +52 -31
  210. package/dist/types/dom/focusable.d.cts +78 -0
  211. package/dist/types/dom/font-size.d.cts +8 -0
  212. package/{src/dom/get-element.js → dist/types/dom/get-element.d.cts} +25 -99
  213. package/dist/types/dom/hash.d.cts +3 -0
  214. package/dist/types/dom/index.d.cts +31 -0
  215. package/{src/dom/keyboard.js → dist/types/dom/keyboard.d.cts} +7 -19
  216. package/dist/types/dom/local-store.d.cts +31 -0
  217. package/dist/types/dom/media.d.cts +5 -0
  218. package/dist/types/dom/observers/index.d.cts +4 -0
  219. package/dist/types/dom/observers/intersection-observer.d.cts +10 -0
  220. package/dist/types/dom/observers/mutation-observer.d.cts +9 -0
  221. package/dist/types/dom/observers/observer.d.cts +3 -0
  222. package/{src/dom/observers/resize-observer.js → dist/types/dom/observers/resize-observer.d.cts} +6 -32
  223. package/dist/types/dom/observers/scroll-observer.d.cts +40 -0
  224. package/dist/types/dom/pkce.d.cts +8 -0
  225. package/dist/types/dom/query-params.d.cts +6 -0
  226. package/dist/types/dom/random-string.d.cts +9 -0
  227. package/dist/types/dom/sanitize.d.cts +10 -0
  228. package/dist/types/dom/session-store.d.cts +7 -0
  229. package/dist/types/dom/spam-prevention.d.cts +14 -0
  230. package/dist/types/dom/trap-focus.d.cts +32 -0
  231. package/dist/types/dom/ui/aria-current.d.cts +7 -0
  232. package/{src/dom/ui/inconsistent-button-fix.js → dist/types/dom/ui/inconsistent-button-fix.d.cts} +5 -11
  233. package/dist/types/dom/ui/index.d.cts +4 -0
  234. package/dist/types/dom/ui/scroll-container.d.cts +3 -0
  235. package/dist/types/dom/ui/traverse-and-scramble.d.cts +21 -0
  236. package/dist/types/lib/arrays/index.d.cts +6 -0
  237. package/{src/lib/arrays/item-position.js → dist/types/lib/arrays/item-position.d.cts} +5 -12
  238. package/{src/lib/arrays/join.js → dist/types/lib/arrays/join.d.cts} +4 -9
  239. package/dist/types/lib/arrays/shuffle.d.cts +3 -0
  240. package/dist/types/lib/arrays/sort.d.cts +32 -0
  241. package/dist/types/lib/arrays/split-array.d.cts +6 -0
  242. package/dist/types/lib/arrays/unique.d.cts +3 -0
  243. package/dist/types/lib/auth/index.d.cts +1 -0
  244. package/dist/types/lib/auth/route-manager.d.cts +28 -0
  245. package/dist/types/lib/checks.d.cts +33 -0
  246. package/dist/types/lib/date/days.d.cts +7 -0
  247. package/dist/types/lib/date/index.d.cts +3 -0
  248. package/dist/types/lib/date/months.d.cts +11 -0
  249. package/dist/types/lib/date/time.d.cts +21 -0
  250. package/dist/types/lib/form/form-data.d.cts +9 -0
  251. package/dist/types/lib/form/index.d.cts +2 -0
  252. package/{src/lib/form/sanitize.js → dist/types/lib/form/sanitize.d.cts} +19 -39
  253. package/{src/lib/functions/callback.js → dist/types/lib/functions/callback.d.cts} +3 -3
  254. package/dist/types/lib/functions/debounce.d.cts +3 -0
  255. package/dist/types/lib/functions/env.d.cts +3 -0
  256. package/{src/lib/functions/functional.js → dist/types/lib/functions/functional.d.cts} +8 -49
  257. package/dist/types/lib/functions/index.d.cts +5 -0
  258. package/dist/types/lib/functions/throttle.d.cts +3 -0
  259. package/dist/types/lib/functions/timeout.d.cts +5 -0
  260. package/dist/types/lib/hash.d.cts +3 -0
  261. package/dist/types/lib/index.d.cts +43 -0
  262. package/dist/types/lib/numbers/index.d.cts +5 -0
  263. package/dist/types/lib/numbers/math.d.cts +4 -0
  264. package/dist/types/lib/objects/camelcase-keys.d.cts +3 -0
  265. package/dist/types/lib/objects/empty.d.cts +4 -0
  266. package/dist/types/lib/objects/equal.d.cts +4 -0
  267. package/dist/types/lib/objects/extend.d.cts +6 -0
  268. package/dist/types/lib/objects/flatten.d.cts +6 -0
  269. package/dist/types/lib/objects/index.d.cts +13 -0
  270. package/dist/types/lib/objects/json.d.cts +3 -0
  271. package/dist/types/lib/objects/loop.d.cts +4 -0
  272. package/dist/types/lib/objects/mix/mix.d.cts +44 -0
  273. package/{src/lib/objects/nested-property.js → dist/types/lib/objects/nested-property.d.cts} +4 -21
  274. package/dist/types/lib/objects/normalize-object.d.cts +3 -0
  275. package/dist/types/lib/objects/omit-empty.d.cts +3 -0
  276. package/dist/types/lib/objects/size.d.cts +3 -0
  277. package/dist/types/lib/objects/split.d.cts +14 -0
  278. package/dist/types/lib/promises/index.d.cts +1 -0
  279. package/dist/types/lib/promises/reject.d.cts +5 -0
  280. package/dist/types/lib/sse.d.cts +18 -0
  281. package/dist/types/lib/strings/convert-case/convert-case.d.cts +10 -0
  282. package/dist/types/lib/strings/index.d.cts +5 -0
  283. package/dist/types/lib/strings/markdown.d.cts +25 -0
  284. package/dist/types/lib/strings/name.d.cts +7 -0
  285. package/dist/types/lib/strings/pluralize.d.cts +3 -0
  286. package/dist/types/lib/strings/query-string.d.cts +10 -0
  287. package/dist/types/lib/style/index.d.cts +3 -0
  288. package/dist/types/lib/symbols/index.d.cts +1 -0
  289. package/dist/types/lib/symbols/symbols.d.cts +4 -0
  290. package/dist/types/node/context.d.cts +2 -0
  291. package/dist/types/node/dirname.d.cts +9 -0
  292. package/dist/types/node/file-cache.d.cts +56 -0
  293. package/dist/types/node/file.d.cts +4 -0
  294. package/dist/types/node/hash.d.cts +3 -0
  295. package/dist/types/node/index.d.cts +7 -0
  296. package/dist/types/node/pkce.d.cts +14 -0
  297. package/dist/types/node/random-string.d.cts +3 -0
  298. package/{src/node/sanitize.js → dist/types/node/sanitize.d.cts} +3 -6
  299. package/dist/types/node/uuid.d.cts +3 -0
  300. package/package.json +18 -15
  301. package/CHANGELOG.md +0 -237
  302. package/eslint.config.js +0 -2
  303. package/src/dom/accessibility.js +0 -58
  304. package/src/dom/actions/index.js +0 -3
  305. package/src/dom/actions/masonry.js +0 -43
  306. package/src/dom/actions/prefer-horizontal-scroll.js +0 -121
  307. package/src/dom/actions/sticky.js +0 -85
  308. package/src/dom/clipboard.js +0 -14
  309. package/src/dom/cookie.js +0 -32
  310. package/src/dom/css-vars.js +0 -19
  311. package/src/dom/font-size.js +0 -40
  312. package/src/dom/hash.js +0 -9
  313. package/src/dom/index.js +0 -23
  314. package/src/dom/media.js +0 -30
  315. package/src/dom/observers/index.js +0 -4
  316. package/src/dom/observers/intersection-observer.js +0 -43
  317. package/src/dom/observers/mutation-observer.js +0 -51
  318. package/src/dom/observers/observer.js +0 -18
  319. package/src/dom/observers/scroll-observer.js +0 -146
  320. package/src/dom/pkce.js +0 -34
  321. package/src/dom/query-params.js +0 -14
  322. package/src/dom/random-string.js +0 -18
  323. package/src/dom/random-string.test.js +0 -13
  324. package/src/dom/sanitize.js +0 -16
  325. package/src/dom/session-store.js +0 -29
  326. package/src/dom/spam-prevention.js +0 -40
  327. package/src/dom/trap-focus.js +0 -70
  328. package/src/dom/ui/aria-current.js +0 -20
  329. package/src/dom/ui/index.js +0 -4
  330. package/src/dom/ui/scroll-container.js +0 -25
  331. package/src/dom/ui/traverse-and-scramble.js +0 -61
  332. package/src/lib/arrays/index.js +0 -6
  333. package/src/lib/arrays/shuffle.js +0 -21
  334. package/src/lib/arrays/sort.js +0 -88
  335. package/src/lib/arrays/sort.spec.js +0 -123
  336. package/src/lib/arrays/split-array.js +0 -15
  337. package/src/lib/arrays/unique.js +0 -3
  338. package/src/lib/auth/index.js +0 -1
  339. package/src/lib/auth/route-manager.js +0 -45
  340. package/src/lib/checks.js +0 -57
  341. package/src/lib/date/days.js +0 -9
  342. package/src/lib/date/index.js +0 -3
  343. package/src/lib/date/months.js +0 -74
  344. package/src/lib/date/time.js +0 -83
  345. package/src/lib/form/form-data.js +0 -73
  346. package/src/lib/form/index.js +0 -2
  347. package/src/lib/form/sanitize.spec.js +0 -126
  348. package/src/lib/functions/debounce.js +0 -18
  349. package/src/lib/functions/env.js +0 -5
  350. package/src/lib/functions/functional.test.js +0 -196
  351. package/src/lib/functions/index.js +0 -5
  352. package/src/lib/functions/throttle.js +0 -11
  353. package/src/lib/functions/timeout.js +0 -15
  354. package/src/lib/hash.js +0 -18
  355. package/src/lib/hash.spec.js +0 -163
  356. package/src/lib/index.js +0 -14
  357. package/src/lib/numbers/index.js +0 -12
  358. package/src/lib/numbers/math.js +0 -9
  359. package/src/lib/numbers/split-unit.test.js +0 -45
  360. package/src/lib/objects/camelcase-keys.js +0 -17
  361. package/src/lib/objects/camelcase-keys.test.js +0 -72
  362. package/src/lib/objects/empty.js +0 -10
  363. package/src/lib/objects/equal.js +0 -9
  364. package/src/lib/objects/extend.js +0 -16
  365. package/src/lib/objects/extend.test.js +0 -35
  366. package/src/lib/objects/flatten.js +0 -19
  367. package/src/lib/objects/index.js +0 -13
  368. package/src/lib/objects/json.js +0 -7
  369. package/src/lib/objects/loop.js +0 -11
  370. package/src/lib/objects/loop.test.js +0 -31
  371. package/src/lib/objects/mix/mix.js +0 -191
  372. package/src/lib/objects/mix/mix.md +0 -78
  373. package/src/lib/objects/mix/mix.test.js +0 -445
  374. package/src/lib/objects/normalize-object.js +0 -10
  375. package/src/lib/objects/omit-empty.js +0 -23
  376. package/src/lib/objects/omit-empty.test.js +0 -85
  377. package/src/lib/objects/size.js +0 -41
  378. package/src/lib/objects/split.js +0 -19
  379. package/src/lib/promises/index.js +0 -1
  380. package/src/lib/promises/reject.js +0 -17
  381. package/src/lib/sse.js +0 -61
  382. package/src/lib/strings/convert-case/convert-case.js +0 -86
  383. package/src/lib/strings/convert-case/convert-case.md +0 -44
  384. package/src/lib/strings/convert-case/convert-case.test.js +0 -50
  385. package/src/lib/strings/index.js +0 -5
  386. package/src/lib/strings/markdown.js +0 -71
  387. package/src/lib/strings/markdown.spec.js +0 -73
  388. package/src/lib/strings/name.js +0 -24
  389. package/src/lib/strings/name.test.js +0 -67
  390. package/src/lib/strings/pluralize.js +0 -2
  391. package/src/lib/strings/query-string.js +0 -18
  392. package/src/lib/style/index.js +0 -13
  393. package/src/lib/symbols/index.js +0 -1
  394. package/src/lib/symbols/symbols.js +0 -9
  395. package/src/node/dirname.js +0 -17
  396. package/src/node/file-cache.js +0 -184
  397. package/src/node/file.js +0 -13
  398. package/src/node/hash.js +0 -5
  399. package/src/node/index.js +0 -7
  400. package/src/node/pkce.js +0 -33
  401. package/src/node/random-string.js +0 -10
  402. package/src/node/random-string.test.js +0 -15
  403. package/src/node/sanitize.spec.js +0 -142
  404. package/src/node/uuid.js +0 -5
  405. package/tsconfig.json +0 -23
  406. package/tsup.config.js +0 -38
  407. package/tsup.config.mjs +0 -63
  408. /package/{src/node/context.js → dist/cjs/node/context.cjs} +0 -0
@@ -0,0 +1,53 @@
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
+ // src/dom/accessibility.js
20
+ var accessibility_exports = {};
21
+ __export(accessibility_exports, {
22
+ checkForAccessibleName: () => checkForAccessibleName,
23
+ hasAccessibleName: () => hasAccessibleName,
24
+ isInvalidAriaPopup: () => isInvalidAriaPopup
25
+ });
26
+ module.exports = __toCommonJS(accessibility_exports);
27
+ function hasAccessibleName(label, labelledBy) {
28
+ if (label || labelledBy) return true;
29
+ return false;
30
+ }
31
+ function checkForAccessibleName({
32
+ name,
33
+ ariaLabel,
34
+ ariaLabelledBy,
35
+ severity = "warn"
36
+ } = {}) {
37
+ if (ariaLabel || ariaLabelledBy) return true;
38
+ const message = `${name} is missing an accessible name. Please provide an accessible name with 'aria-label' or 'aria-labelledby'.`;
39
+ if (severity === "warn") console.warn(message);
40
+ if (severity === "error") console.error(message);
41
+ return false;
42
+ }
43
+ function isInvalidAriaPopup(value) {
44
+ const allowedPopoupValues = ["dialog", "menu", "listbox", "grid", "tree"];
45
+ if (!allowedPopoupValues.includes(value)) return true;
46
+ return false;
47
+ }
48
+ // Annotate the CommonJS export names for ESM import in node:
49
+ 0 && (module.exports = {
50
+ checkForAccessibleName,
51
+ hasAccessibleName,
52
+ isInvalidAriaPopup
53
+ });
@@ -0,0 +1,410 @@
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
+ // src/dom/actions/index.js
20
+ var actions_exports = {};
21
+ __export(actions_exports, {
22
+ masonry: () => masonry,
23
+ preferHorizontalScroll: () => preferHorizontalScroll,
24
+ sticky: () => sticky
25
+ });
26
+ module.exports = __toCommonJS(actions_exports);
27
+
28
+ // src/dom/get-element.js
29
+ function getNodeType(node) {
30
+ if (node instanceof Element) return "element";
31
+ if (node instanceof NodeList) return "nodelist";
32
+ if (Array.isArray(node)) return "array";
33
+ }
34
+ function getElement(selector) {
35
+ if (!selector) return;
36
+ if (selector instanceof Element) return selector;
37
+ return document.querySelector(selector);
38
+ }
39
+ function getChildrenElements(node) {
40
+ let children = node.children;
41
+ if (children[0]?.nodeName === "ASTRO-SLOT") children = children[0].children;
42
+ return Array.from(children);
43
+ }
44
+
45
+ // src/dom/media.js
46
+ async function imagesLoaded(node) {
47
+ const images = Array.from(node.querySelectorAll("img"));
48
+ const promises = images.map((img) => {
49
+ return new Promise((resolve, reject) => {
50
+ if (img.complete) return resolve();
51
+ img.onload = resolve;
52
+ img.onerror = (e) => {
53
+ reject("Image failed to load");
54
+ };
55
+ });
56
+ });
57
+ return Promise.all(promises);
58
+ }
59
+ async function videosLoaded(node) {
60
+ const videos = Array.from(node.querySelectorAll("video"));
61
+ const promises = videos.map((video) => {
62
+ return new Promise((resolve, reject) => {
63
+ if (video.readyState === 4) return resolve();
64
+ video.onloadedmetadata = resolve;
65
+ video.onerror = reject;
66
+ });
67
+ });
68
+ return Promise.all(promises);
69
+ }
70
+ async function mediaLoaded(node) {
71
+ return Promise.all([imagesLoaded(node), videosLoaded(node)]);
72
+ }
73
+
74
+ // src/dom/events.js
75
+ function addListeners(listeners) {
76
+ listeners.forEach(({ node, event, handler }) => {
77
+ node.addEventListener(event, handler);
78
+ });
79
+ }
80
+ function removeListeners(listeners) {
81
+ listeners.forEach(({ node, event, handler }) => {
82
+ node.removeEventListener(event, handler);
83
+ });
84
+ }
85
+ function dispatchEvent(node, eventName, detail, options = {}) {
86
+ node.dispatchEvent(
87
+ new CustomEvent(eventName, {
88
+ ...options,
89
+ detail
90
+ })
91
+ );
92
+ }
93
+
94
+ // src/dom/observers/observer.js
95
+ function useObserverMethodOnTarget(target, observer, method = "observe", options = void 0) {
96
+ const targetType = getNodeType(target);
97
+ if (targetType === "element") observer[method](target, options);
98
+ if (targetType === "nodelist") {
99
+ const elements = Array.from(target);
100
+ elements.forEach((element) => observer[method](element, options));
101
+ }
102
+ if (targetType === "array") {
103
+ target.forEach((element) => observer[method](element, options));
104
+ }
105
+ }
106
+
107
+ // src/dom/observers/resize-observer.js
108
+ function resizeObserver(target, options) {
109
+ const { callback, ...opts } = options;
110
+ const observer = new ResizeObserver(observerFn);
111
+ if (target === window || target === document)
112
+ target = document.documentElement;
113
+ useObserverMethodOnTarget(target, observer, "observe", opts);
114
+ function observerFn(entries) {
115
+ for (const entry of entries) {
116
+ if (callback) callback({ entry, entries, observer });
117
+ else
118
+ dispatchEvent(entry.target, "resize-obs", { entry, entries, observer });
119
+ }
120
+ }
121
+ return {
122
+ observe(target2) {
123
+ useObserverMethodOnTarget(target2, observer, "observe", options);
124
+ },
125
+ unobserve(target2) {
126
+ useObserverMethodOnTarget(target2, observer, "unobserve");
127
+ },
128
+ disconnect: (_) => observer.disconnect(),
129
+ destroy: (_) => observer.disconnect()
130
+ };
131
+ }
132
+
133
+ // src/dom/actions/masonry.js
134
+ async function masonry(node) {
135
+ if (nativeMasonrySupport(node)) return;
136
+ const colGap = parseFloat(getComputedStyle(node).columnGap);
137
+ const items = getChildrenElements(node);
138
+ node.style.setProperty("row-gap", "1px", "important");
139
+ node.style.gridAutoRows = "0px";
140
+ node.updateMasonryLayout = (_) => layout({ colGap, items });
141
+ try {
142
+ await mediaLoaded(node);
143
+ } catch (e) {
144
+ }
145
+ layout({ colGap, items });
146
+ const obs = resizeObserver(node, {
147
+ async callback(opts) {
148
+ layout({ colGap, items });
149
+ }
150
+ });
151
+ async function layout({ colGap: colGap2, items: items2 }) {
152
+ items2.forEach((item) => {
153
+ const ib = item.getBoundingClientRect();
154
+ item.style.gridRowEnd = `span ${Math.round(ib.height + colGap2)}`;
155
+ });
156
+ }
157
+ return {
158
+ destroy() {
159
+ obs.disconnect();
160
+ }
161
+ };
162
+ }
163
+ function nativeMasonrySupport(node) {
164
+ return getComputedStyle(node).gridTemplateRows === "masonry";
165
+ }
166
+
167
+ // src/lib/objects/omit-empty.js
168
+ function omitEmpty(obj, shallow = false) {
169
+ if (typeof obj !== "object" || obj === null) return obj;
170
+ if (obj instanceof Date) return obj;
171
+ const result = Array.isArray(obj) ? [] : {};
172
+ for (const [key, value] of Object.entries(obj)) {
173
+ if (value === null || value === void 0 || value === "" || typeof value === "object" && !(value instanceof Date) && Object.keys(value).length === 0) {
174
+ continue;
175
+ }
176
+ result[key] = shallow ? value : omitEmpty(value);
177
+ }
178
+ return result;
179
+ }
180
+
181
+ // src/dom/css-vars.js
182
+ function getCSSVar(element, prop) {
183
+ element = getElement(element);
184
+ return getComputedStyle(element).getPropertyValue(prop);
185
+ }
186
+ function setCSSVar(element, prop, value) {
187
+ element = getElement(element);
188
+ element.style.setProperty(prop, value);
189
+ }
190
+
191
+ // src/dom/actions/prefer-horizontal-scroll.js
192
+ var DEFAULT_OPTIONS = {
193
+ scrollSnapDelay: 1e3
194
+ };
195
+ function preferHorizontalScroll(node, props = {}) {
196
+ if (!node.classList.contains("scrollable-prefer-horizontal")) return;
197
+ const state = {
198
+ origSnapType: null,
199
+ currentSnapType: null,
200
+ snapTimeoutID: null
201
+ };
202
+ const options = {
203
+ ...DEFAULT_OPTIONS,
204
+ ...omitEmpty({
205
+ scrollSnapDelay: getCSSVar(node, "--scroll-snap-delay")
206
+ }),
207
+ ...omitEmpty(props)
208
+ };
209
+ const listeners = [
210
+ {
211
+ event: "wheel",
212
+ node,
213
+ handler: handleWheel
214
+ },
215
+ {
216
+ event: "pointerenter",
217
+ node,
218
+ handler: handlePointerEnter
219
+ },
220
+ {
221
+ event: "pointerleave",
222
+ node,
223
+ handler: handlePointerLeave
224
+ }
225
+ ];
226
+ addListeners(listeners);
227
+ function handleWheel(event) {
228
+ const direction = event.deltaY > 0 ? "down" : "up";
229
+ const updatedDelta = event.deltaY;
230
+ if (isTrackpad(event)) return false;
231
+ setCSSVar(node, "--snap-type", "none");
232
+ const scrolledAmount = node.scrollLeft;
233
+ const scrollWidth = node.scrollWidth;
234
+ const clientWidth = node.clientWidth;
235
+ const scrollableAmount = scrollWidth - clientWidth;
236
+ if (direction === "down" && scrolledAmount < scrollableAmount) {
237
+ node.scrollLeft += updatedDelta;
238
+ event.preventDefault();
239
+ }
240
+ if (direction === "up" && scrolledAmount > 0) {
241
+ node.scrollLeft += updatedDelta;
242
+ event.preventDefault();
243
+ }
244
+ const { snapTimeoutID } = state;
245
+ if (snapTimeoutID) clearTimeout(snapTimeoutID);
246
+ state.snapTimeoutID = setTimeout((_) => {
247
+ restoreHijackedState(node, state);
248
+ }, options.scrollSnapDelay);
249
+ }
250
+ function handlePointerEnter(event) {
251
+ state.origSnapType = getCSSVar(node, "--snap-type") || "proximity";
252
+ }
253
+ function handlePointerLeave(event) {
254
+ restoreHijackedState(node, state);
255
+ }
256
+ return {
257
+ destroy() {
258
+ removeListeners(listeners);
259
+ }
260
+ };
261
+ }
262
+ function restoreHijackedState(node, state) {
263
+ const scrollLeft = node.scrollLeft;
264
+ setCSSVar(node, "--snap-type", state.origSnapType);
265
+ const finalScrollLeft = node.scrollLeft;
266
+ setCSSVar(node, "--snap-type", "none");
267
+ node.scrollTo({ left: scrollLeft, behavior: "instant" });
268
+ node.scrollTo({ left: finalScrollLeft, behavior: "smooth" });
269
+ setTimeout((_) => {
270
+ setCSSVar(node, "--snap-type", state.origSnapType);
271
+ }, 250);
272
+ }
273
+ function isTrackpad(event) {
274
+ if (event.wheelDeltaY === event.deltaY * -3) return true;
275
+ }
276
+
277
+ // src/dom/bounding-box.js
278
+ function boundingBox(element, { containsPadding = true } = {}) {
279
+ const box = element.getBoundingClientRect();
280
+ const ret = {};
281
+ for (const prop in box) ret[prop] = box[prop];
282
+ if (!containsPadding) {
283
+ const style = getComputedStyle(element);
284
+ const paddingTop = parseFloat(style.paddingTop);
285
+ const paddingRight = parseFloat(style.paddingRight);
286
+ const paddingBottom = parseFloat(style.paddingBottom);
287
+ const paddingLeft = parseFloat(style.paddingLeft);
288
+ ret.x = ret.x + paddingLeft;
289
+ ret.y = ret.y + paddingTop;
290
+ ret.width = ret.width - paddingLeft - paddingRight;
291
+ ret.height = ret.height - paddingTop - paddingBottom;
292
+ ret.top = ret.top + paddingTop;
293
+ ret.bottom = ret.bottom - paddingBottom;
294
+ ret.right = ret.right - paddingRight;
295
+ ret.left = ret.left + paddingLeft;
296
+ }
297
+ ret.xCenter = (ret.left + ret.right) / 2;
298
+ ret.yCenter = (ret.top + ret.bottom) / 2;
299
+ return ret;
300
+ }
301
+ function boundingBoxRelativeToAncestor({ element, ancestorElement }) {
302
+ ancestorElement = ancestorElement || element.parentElement;
303
+ const box = boundingBox(element);
304
+ const ancestorBox = boundingBox(ancestorElement, {
305
+ containsPadding: false
306
+ });
307
+ return {
308
+ top: box.top - ancestorBox.top,
309
+ right: box.right - ancestorBox.right,
310
+ bottom: box.bottom - ancestorBox.bottom,
311
+ left: box.left - ancestorBox.left,
312
+ width: box.width,
313
+ height: box.height,
314
+ xCenter: (box.left + box.right) / 2 - ancestorBox.left,
315
+ yCenter: (box.top + box.bottom) / 2 - ancestorBox.top
316
+ };
317
+ }
318
+
319
+ // src/dom/ui/scroll-container.js
320
+ function findScrollContainer(element, direction = "both") {
321
+ if (!element) return;
322
+ let parent = element.parentElement;
323
+ while (parent) {
324
+ const { overflow, overflowX, overflowY } = getComputedStyle(parent);
325
+ if (direction === "both") {
326
+ if (overflow.includes("auto") || overflow.includes("scroll"))
327
+ return parent;
328
+ }
329
+ if (direction === "horizontal") {
330
+ if (overflowX === "auto" || overflowX === "scroll") return parent;
331
+ }
332
+ if (direction === "vertical") {
333
+ if (overflowY === "auto" || overflowY === "scroll") return parent;
334
+ }
335
+ parent = parent.parentElement;
336
+ }
337
+ return document.documentElement;
338
+ }
339
+
340
+ // src/dom/actions/sticky.js
341
+ function sticky(node, props = {}) {
342
+ const scrollContainer = findScrollContainer(node);
343
+ let stickyTBLR = getComputedTBLR(node);
344
+ const obs = resizeObserver(node, {
345
+ callback: ({ entry }) => {
346
+ stickyTBLR = getComputedTBLR(node);
347
+ isSticking();
348
+ scrollContainer === document.documentElement ? window.addEventListener("scroll", scrollEventListener) : scrollContainer.addEventListener("scroll", scrollEventListener);
349
+ }
350
+ });
351
+ function scrollEventListener(event) {
352
+ isSticking();
353
+ }
354
+ function isSticking() {
355
+ const { top, bottom, left, right } = stickyTBLR;
356
+ const relativeRect = boundingBoxRelativeToAncestor({
357
+ element: node,
358
+ ancestorElement: scrollContainer
359
+ });
360
+ if (!isNaN(top)) {
361
+ if (relativeRect.top - top <= 1) {
362
+ node.classList.add("sticking");
363
+ } else {
364
+ node.classList.remove("sticking");
365
+ }
366
+ }
367
+ if (!isNaN(bottom)) {
368
+ if (relativeRect.bottom + bottom >= -1) {
369
+ node.classList.add("sticking");
370
+ } else {
371
+ node.classList.remove("sticking");
372
+ }
373
+ }
374
+ if (!isNaN(left)) {
375
+ if (relativeRect.left - left <= 1) {
376
+ node.classList.add("sticking");
377
+ } else {
378
+ node.classList.remove("sticking");
379
+ }
380
+ }
381
+ if (!isNaN(right)) {
382
+ if (relativeRect.right + right >= -1) {
383
+ node.classList.add("sticking");
384
+ } else {
385
+ node.classList.remove("sticking");
386
+ }
387
+ }
388
+ }
389
+ return {
390
+ destroy() {
391
+ obs.disconnect();
392
+ scrollContainer.removeEventListener("scroll", scrollEventListener);
393
+ }
394
+ };
395
+ }
396
+ function getComputedTBLR(element) {
397
+ const style = getComputedStyle(element);
398
+ return {
399
+ top: parseFloat(style.top),
400
+ bottom: parseFloat(style.bottom),
401
+ left: parseFloat(style.left),
402
+ right: parseFloat(style.right)
403
+ };
404
+ }
405
+ // Annotate the CommonJS export names for ESM import in node:
406
+ 0 && (module.exports = {
407
+ masonry,
408
+ preferHorizontalScroll,
409
+ sticky
410
+ });
@@ -0,0 +1,152 @@
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
+ // src/dom/actions/masonry.js
20
+ var masonry_exports = {};
21
+ __export(masonry_exports, {
22
+ masonry: () => masonry
23
+ });
24
+ module.exports = __toCommonJS(masonry_exports);
25
+
26
+ // src/dom/get-element.js
27
+ function getNodeType(node) {
28
+ if (node instanceof Element) return "element";
29
+ if (node instanceof NodeList) return "nodelist";
30
+ if (Array.isArray(node)) return "array";
31
+ }
32
+ function getChildrenElements(node) {
33
+ let children = node.children;
34
+ if (children[0]?.nodeName === "ASTRO-SLOT") children = children[0].children;
35
+ return Array.from(children);
36
+ }
37
+
38
+ // src/dom/media.js
39
+ async function imagesLoaded(node) {
40
+ const images = Array.from(node.querySelectorAll("img"));
41
+ const promises = images.map((img) => {
42
+ return new Promise((resolve, reject) => {
43
+ if (img.complete) return resolve();
44
+ img.onload = resolve;
45
+ img.onerror = (e) => {
46
+ reject("Image failed to load");
47
+ };
48
+ });
49
+ });
50
+ return Promise.all(promises);
51
+ }
52
+ async function videosLoaded(node) {
53
+ const videos = Array.from(node.querySelectorAll("video"));
54
+ const promises = videos.map((video) => {
55
+ return new Promise((resolve, reject) => {
56
+ if (video.readyState === 4) return resolve();
57
+ video.onloadedmetadata = resolve;
58
+ video.onerror = reject;
59
+ });
60
+ });
61
+ return Promise.all(promises);
62
+ }
63
+ async function mediaLoaded(node) {
64
+ return Promise.all([imagesLoaded(node), videosLoaded(node)]);
65
+ }
66
+
67
+ // src/dom/events.js
68
+ function dispatchEvent(node, eventName, detail, options = {}) {
69
+ node.dispatchEvent(
70
+ new CustomEvent(eventName, {
71
+ ...options,
72
+ detail
73
+ })
74
+ );
75
+ }
76
+
77
+ // src/dom/observers/observer.js
78
+ function useObserverMethodOnTarget(target, observer, method = "observe", options = void 0) {
79
+ const targetType = getNodeType(target);
80
+ if (targetType === "element") observer[method](target, options);
81
+ if (targetType === "nodelist") {
82
+ const elements = Array.from(target);
83
+ elements.forEach((element) => observer[method](element, options));
84
+ }
85
+ if (targetType === "array") {
86
+ target.forEach((element) => observer[method](element, options));
87
+ }
88
+ }
89
+
90
+ // src/dom/observers/resize-observer.js
91
+ function resizeObserver(target, options) {
92
+ const { callback, ...opts } = options;
93
+ const observer = new ResizeObserver(observerFn);
94
+ if (target === window || target === document)
95
+ target = document.documentElement;
96
+ useObserverMethodOnTarget(target, observer, "observe", opts);
97
+ function observerFn(entries) {
98
+ for (const entry of entries) {
99
+ if (callback) callback({ entry, entries, observer });
100
+ else
101
+ dispatchEvent(entry.target, "resize-obs", { entry, entries, observer });
102
+ }
103
+ }
104
+ return {
105
+ observe(target2) {
106
+ useObserverMethodOnTarget(target2, observer, "observe", options);
107
+ },
108
+ unobserve(target2) {
109
+ useObserverMethodOnTarget(target2, observer, "unobserve");
110
+ },
111
+ disconnect: (_) => observer.disconnect(),
112
+ destroy: (_) => observer.disconnect()
113
+ };
114
+ }
115
+
116
+ // src/dom/actions/masonry.js
117
+ async function masonry(node) {
118
+ if (nativeMasonrySupport(node)) return;
119
+ const colGap = parseFloat(getComputedStyle(node).columnGap);
120
+ const items = getChildrenElements(node);
121
+ node.style.setProperty("row-gap", "1px", "important");
122
+ node.style.gridAutoRows = "0px";
123
+ node.updateMasonryLayout = (_) => layout({ colGap, items });
124
+ try {
125
+ await mediaLoaded(node);
126
+ } catch (e) {
127
+ }
128
+ layout({ colGap, items });
129
+ const obs = resizeObserver(node, {
130
+ async callback(opts) {
131
+ layout({ colGap, items });
132
+ }
133
+ });
134
+ async function layout({ colGap: colGap2, items: items2 }) {
135
+ items2.forEach((item) => {
136
+ const ib = item.getBoundingClientRect();
137
+ item.style.gridRowEnd = `span ${Math.round(ib.height + colGap2)}`;
138
+ });
139
+ }
140
+ return {
141
+ destroy() {
142
+ obs.disconnect();
143
+ }
144
+ };
145
+ }
146
+ function nativeMasonrySupport(node) {
147
+ return getComputedStyle(node).gridTemplateRows === "masonry";
148
+ }
149
+ // Annotate the CommonJS export names for ESM import in node:
150
+ 0 && (module.exports = {
151
+ masonry
152
+ });