@wirekyt/dom 0.0.1 → 0.0.2

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 (476) hide show
  1. package/dist/anatomy-DMuSMbOP.d.cts +18 -0
  2. package/dist/anatomy-DMuSMbOP.d.ts +18 -0
  3. package/dist/anatomy.cjs +3 -0
  4. package/dist/anatomy.d.cts +2 -0
  5. package/dist/anatomy.d.ts +2 -0
  6. package/dist/anatomy.js +2 -0
  7. package/dist/angle-3hqP0Mp5.cjs +13 -0
  8. package/dist/angle-oNt8uGHQ.js +8 -0
  9. package/dist/aria-hidden-CEXexb2I.js +127 -0
  10. package/dist/aria-hidden-Y7iJHPMr.cjs +132 -0
  11. package/dist/aria-hidden.cjs +3 -0
  12. package/dist/aria-hidden.d.cts +10 -0
  13. package/dist/aria-hidden.d.ts +10 -0
  14. package/dist/aria-hidden.js +2 -0
  15. package/dist/array-BGtygd0o.cjs +198 -0
  16. package/dist/array-C4KbHsha.js +73 -0
  17. package/dist/auto-resize-5F5iiKZb.cjs +106 -0
  18. package/dist/auto-resize-KkNfCcBt.js +95 -0
  19. package/dist/auto-resize.cjs +4 -0
  20. package/dist/auto-resize.d.cts +7 -0
  21. package/dist/auto-resize.d.ts +7 -0
  22. package/dist/auto-resize.js +2 -0
  23. package/dist/caret-CHqaP4XG.cjs +30 -0
  24. package/dist/caret-aiDJ6mAS.js +19 -0
  25. package/dist/closest-Clo6ODcK.js +117 -0
  26. package/dist/closest-IiRz1GIJ.cjs +176 -0
  27. package/dist/collection-CJU0oDtX.js +1295 -0
  28. package/dist/collection-CwzUJwBJ.cjs +1342 -0
  29. package/dist/collection.cjs +15 -0
  30. package/dist/collection.d.cts +34 -0
  31. package/dist/collection.d.ts +34 -0
  32. package/dist/collection.js +3 -0
  33. package/dist/color-CsugZjq6.d.cts +60 -0
  34. package/dist/color-CsugZjq6.d.ts +60 -0
  35. package/dist/color-utils-DzeOVYlL.cjs +662 -0
  36. package/dist/color-utils-lDDg9FEh.js +639 -0
  37. package/dist/color-utils.cjs +6 -0
  38. package/dist/color-utils.d.cts +18 -0
  39. package/dist/color-utils.d.ts +18 -0
  40. package/dist/color-utils.js +2 -0
  41. package/dist/computed-style-B1MKlCoo.js +9 -0
  42. package/dist/computed-style-DLArEFNw.cjs +14 -0
  43. package/dist/controller-B8E8ZJCI.cjs +133 -0
  44. package/dist/controller-Dv7lWHDr.js +92 -0
  45. package/dist/core-BF6G2RiC.d.cts +1 -0
  46. package/dist/core-BNMw-JId.cjs +372 -0
  47. package/dist/core-BdeZuSX6.d.ts +1 -0
  48. package/dist/core-CJ0MZr3D.js +289 -0
  49. package/dist/core.cjs +19 -0
  50. package/dist/core.d.cts +3 -0
  51. package/dist/core.d.ts +3 -0
  52. package/dist/core.js +3 -0
  53. package/dist/create-anatomy-B2q3wiaw.js +22 -0
  54. package/dist/create-anatomy-BwDn25ph.cjs +27 -0
  55. package/dist/create-props-CgtcN_Qu.js +4 -0
  56. package/dist/create-props-CjLx2oS8.cjs +9 -0
  57. package/dist/data-url-C-Uk31Q9.cjs +42 -0
  58. package/dist/data-url-DHUHj7UF.js +37 -0
  59. package/dist/data-url-Gx_SWG-k.d.cts +10 -0
  60. package/dist/data-url-Gx_SWG-k.d.ts +10 -0
  61. package/dist/date-utils-D-JJHedx.cjs +868 -0
  62. package/dist/date-utils-D5zXW-Cs.js +569 -0
  63. package/dist/date-utils.cjs +52 -0
  64. package/dist/date-utils.d.cts +7 -0
  65. package/dist/date-utils.d.ts +7 -0
  66. package/dist/date-utils.js +2 -0
  67. package/dist/dismissable-C0bixtzl.cjs +348 -0
  68. package/dist/dismissable-KM1jPtNQ.js +337 -0
  69. package/dist/dismissable-layer-BTX5EvXw.d.ts +40 -0
  70. package/dist/dismissable-layer-Ch5niVaq.d.cts +40 -0
  71. package/dist/dismissable.cjs +4 -0
  72. package/dist/dismissable.d.cts +3 -0
  73. package/dist/dismissable.d.ts +3 -0
  74. package/dist/dismissable.js +2 -0
  75. package/dist/dom-query-CQzY93XU.cjs +488 -0
  76. package/dist/dom-query-e7fh0TEH.js +243 -0
  77. package/dist/dom-query.cjs +180 -0
  78. package/dist/dom-query.d.cts +142 -0
  79. package/dist/dom-query.d.ts +142 -0
  80. package/dist/dom-query.js +43 -0
  81. package/dist/equal-C927y7MN.cjs +30 -0
  82. package/dist/equal-DtrP8DPh.js +25 -0
  83. package/dist/event-DDz-mMhM.cjs +242 -0
  84. package/dist/event-bTItRgiw.js +117 -0
  85. package/dist/file-utils-6EXCdfHx.js +116 -0
  86. package/dist/file-utils-B7OJigQq.cjs +151 -0
  87. package/dist/file-utils.cjs +92 -0
  88. package/dist/file-utils.d.cts +40 -0
  89. package/dist/file-utils.d.ts +40 -0
  90. package/dist/file-utils.js +82 -0
  91. package/dist/focus-trap-89E5I9nm.js +487 -0
  92. package/dist/focus-trap-D7jKsfHW.cjs +498 -0
  93. package/dist/focus-trap.cjs +4 -0
  94. package/dist/focus-trap.d.cts +89 -0
  95. package/dist/focus-trap.d.ts +89 -0
  96. package/dist/focus-trap.js +2 -0
  97. package/dist/focus-visible-DWdQf__4.js +176 -0
  98. package/dist/focus-visible-G4cmlWqq.cjs +217 -0
  99. package/dist/focus-visible.cjs +9 -0
  100. package/dist/focus-visible.d.cts +32 -0
  101. package/dist/focus-visible.d.ts +32 -0
  102. package/dist/focus-visible.js +2 -0
  103. package/dist/form-B1DW_w_3.js +89 -0
  104. package/dist/form-CoupKpuP.cjs +130 -0
  105. package/dist/from-window-5ZhzSURC.js +68 -0
  106. package/dist/from-window-B9DKtaoR.cjs +115 -0
  107. package/dist/functions-isw5Ovcx.d.cts +16 -0
  108. package/dist/functions-isw5Ovcx.d.ts +16 -0
  109. package/dist/highlight-word.cjs +95 -0
  110. package/dist/highlight-word.d.cts +24 -0
  111. package/dist/highlight-word.d.ts +24 -0
  112. package/dist/highlight-word.js +94 -0
  113. package/dist/hotkeys.cjs +1183 -0
  114. package/dist/hotkeys.d.cts +199 -0
  115. package/dist/hotkeys.d.ts +199 -0
  116. package/dist/hotkeys.js +1173 -0
  117. package/dist/i18n-utils-BD4VtonY.cjs +345 -0
  118. package/dist/i18n-utils-C4FQZ39m.js +280 -0
  119. package/dist/i18n-utils.cjs +216 -0
  120. package/dist/i18n-utils.d.cts +71 -0
  121. package/dist/i18n-utils.d.ts +71 -0
  122. package/dist/i18n-utils.js +204 -0
  123. package/dist/index-3tNJficI.d.cts +117 -0
  124. package/dist/index-3tNJficI.d.ts +117 -0
  125. package/dist/index-BEfvdGE2.d.cts +116 -0
  126. package/dist/index-BEfvdGE2.d.ts +116 -0
  127. package/dist/index-BF6G2RiC.d.cts +1 -0
  128. package/dist/index-BKgxIVbE.d.cts +285 -0
  129. package/dist/index-BMtpmaRD.d.cts +16 -0
  130. package/dist/index-BMtpmaRD.d.ts +16 -0
  131. package/dist/index-BWiYePx8.d.cts +216 -0
  132. package/dist/index-BXfunVyD.d.cts +1342 -0
  133. package/dist/index-BXfunVyD.d.ts +1342 -0
  134. package/dist/index-BdeZuSX6.d.ts +1 -0
  135. package/dist/index-C2865AJq.d.cts +25 -0
  136. package/dist/index-C2865AJq.d.ts +25 -0
  137. package/dist/index-CFoN0L3C.d.ts +285 -0
  138. package/dist/index-vPrqYDHu.d.ts +216 -0
  139. package/dist/index.cjs +19 -0
  140. package/dist/index.d.cts +3 -0
  141. package/dist/index.d.ts +3 -0
  142. package/dist/index.js +3 -0
  143. package/dist/initial-focus-BQxRRFPa.cjs +37 -0
  144. package/dist/initial-focus-BrN5tT2X.js +26 -0
  145. package/dist/interact-outside-BjqIunFx.js +211 -0
  146. package/dist/interact-outside-Dphjr2Zh.cjs +216 -0
  147. package/dist/interact-outside.cjs +3 -0
  148. package/dist/interact-outside.d.cts +2 -0
  149. package/dist/interact-outside.d.ts +2 -0
  150. package/dist/interact-outside.js +2 -0
  151. package/dist/json-tree-utils.cjs +1518 -0
  152. package/dist/json-tree-utils.d.cts +117 -0
  153. package/dist/json-tree-utils.d.ts +117 -0
  154. package/dist/json-tree-utils.js +1469 -0
  155. package/dist/list-collection-D_eNKrot.d.cts +60 -0
  156. package/dist/list-collection-RqYEWHb4.d.ts +60 -0
  157. package/dist/live-region-BD0OgmrH.cjs +68 -0
  158. package/dist/live-region-F8YMmbrY.js +63 -0
  159. package/dist/live-region.cjs +3 -0
  160. package/dist/live-region.d.cts +2 -0
  161. package/dist/live-region.d.ts +2 -0
  162. package/dist/live-region.js +2 -0
  163. package/dist/machines/accordion/index.cjs +328 -0
  164. package/dist/machines/accordion/index.d.cts +83 -0
  165. package/dist/machines/accordion/index.d.ts +83 -0
  166. package/dist/machines/accordion/index.js +321 -0
  167. package/dist/machines/angle-slider/index.cjs +420 -0
  168. package/dist/machines/angle-slider/index.d.cts +84 -0
  169. package/dist/machines/angle-slider/index.d.ts +84 -0
  170. package/dist/machines/angle-slider/index.js +415 -0
  171. package/dist/machines/async-list/index.cjs +310 -0
  172. package/dist/machines/async-list/index.d.cts +90 -0
  173. package/dist/machines/async-list/index.d.ts +90 -0
  174. package/dist/machines/async-list/index.js +308 -0
  175. package/dist/machines/avatar/index.cjs +165 -0
  176. package/dist/machines/avatar/index.d.cts +63 -0
  177. package/dist/machines/avatar/index.d.ts +63 -0
  178. package/dist/machines/avatar/index.js +160 -0
  179. package/dist/machines/carousel/index.cjs +929 -0
  180. package/dist/machines/carousel/index.d.cts +146 -0
  181. package/dist/machines/carousel/index.d.ts +146 -0
  182. package/dist/machines/carousel/index.js +920 -0
  183. package/dist/machines/cascade-select/index.cjs +1426 -0
  184. package/dist/machines/cascade-select/index.d.cts +167 -0
  185. package/dist/machines/cascade-select/index.d.ts +167 -0
  186. package/dist/machines/cascade-select/index.js +1419 -0
  187. package/dist/machines/checkbox/index.cjs +316 -0
  188. package/dist/machines/checkbox/index.d.cts +81 -0
  189. package/dist/machines/checkbox/index.d.ts +81 -0
  190. package/dist/machines/checkbox/index.js +311 -0
  191. package/dist/machines/clipboard/index.cjs +228 -0
  192. package/dist/machines/clipboard/index.d.cts +72 -0
  193. package/dist/machines/clipboard/index.d.ts +72 -0
  194. package/dist/machines/clipboard/index.js +221 -0
  195. package/dist/machines/collapsible/index.cjs +363 -0
  196. package/dist/machines/collapsible/index.d.cts +82 -0
  197. package/dist/machines/collapsible/index.d.ts +82 -0
  198. package/dist/machines/collapsible/index.js +358 -0
  199. package/dist/machines/color-picker/index.cjs +1534 -0
  200. package/dist/machines/color-picker/index.d.cts +207 -0
  201. package/dist/machines/color-picker/index.d.ts +207 -0
  202. package/dist/machines/color-picker/index.js +1518 -0
  203. package/dist/machines/combobox/index.cjs +1554 -0
  204. package/dist/machines/combobox/index.d.cts +219 -0
  205. package/dist/machines/combobox/index.d.ts +219 -0
  206. package/dist/machines/combobox/index.js +1542 -0
  207. package/dist/machines/date-input/index.cjs +1974 -0
  208. package/dist/machines/date-input/index.d.cts +230 -0
  209. package/dist/machines/date-input/index.d.ts +230 -0
  210. package/dist/machines/date-input/index.js +1958 -0
  211. package/dist/machines/date-picker/index.cjs +2424 -0
  212. package/dist/machines/date-picker/index.d.cts +378 -0
  213. package/dist/machines/date-picker/index.d.ts +378 -0
  214. package/dist/machines/date-picker/index.js +2408 -0
  215. package/dist/machines/dialog/index.cjs +378 -0
  216. package/dist/machines/dialog/index.d.cts +94 -0
  217. package/dist/machines/dialog/index.d.ts +94 -0
  218. package/dist/machines/dialog/index.js +373 -0
  219. package/dist/machines/drawer/index.cjs +2066 -0
  220. package/dist/machines/drawer/index.d.cts +334 -0
  221. package/dist/machines/drawer/index.d.ts +334 -0
  222. package/dist/machines/drawer/index.js +2059 -0
  223. package/dist/machines/editable/index.cjs +550 -0
  224. package/dist/machines/editable/index.d.cts +114 -0
  225. package/dist/machines/editable/index.d.ts +114 -0
  226. package/dist/machines/editable/index.js +545 -0
  227. package/dist/machines/file-upload/index.cjs +648 -0
  228. package/dist/machines/file-upload/index.d.cts +150 -0
  229. package/dist/machines/file-upload/index.d.ts +150 -0
  230. package/dist/machines/file-upload/index.js +641 -0
  231. package/dist/machines/floating-panel/index.cjs +1020 -0
  232. package/dist/machines/floating-panel/index.d.cts +149 -0
  233. package/dist/machines/floating-panel/index.d.ts +149 -0
  234. package/dist/machines/floating-panel/index.js +1012 -0
  235. package/dist/machines/hover-card/index.cjs +441 -0
  236. package/dist/machines/hover-card/index.d.cts +82 -0
  237. package/dist/machines/hover-card/index.d.ts +82 -0
  238. package/dist/machines/hover-card/index.js +436 -0
  239. package/dist/machines/image-cropper/index.cjs +2082 -0
  240. package/dist/machines/image-cropper/index.d.cts +182 -0
  241. package/dist/machines/image-cropper/index.d.ts +182 -0
  242. package/dist/machines/image-cropper/index.js +2076 -0
  243. package/dist/machines/listbox/index.cjs +873 -0
  244. package/dist/machines/listbox/index.d.cts +175 -0
  245. package/dist/machines/listbox/index.d.ts +175 -0
  246. package/dist/machines/listbox/index.js +860 -0
  247. package/dist/machines/marquee/index.cjs +387 -0
  248. package/dist/machines/marquee/index.d.cts +102 -0
  249. package/dist/machines/marquee/index.d.ts +102 -0
  250. package/dist/machines/marquee/index.js +382 -0
  251. package/dist/machines/menu/index.cjs +1562 -0
  252. package/dist/machines/menu/index.d.cts +188 -0
  253. package/dist/machines/menu/index.d.ts +188 -0
  254. package/dist/machines/menu/index.js +1549 -0
  255. package/dist/machines/navigation-menu/index.cjs +860 -0
  256. package/dist/machines/navigation-menu/index.d.cts +131 -0
  257. package/dist/machines/navigation-menu/index.d.ts +131 -0
  258. package/dist/machines/navigation-menu/index.js +855 -0
  259. package/dist/machines/number-input/index.cjs +1014 -0
  260. package/dist/machines/number-input/index.d.cts +136 -0
  261. package/dist/machines/number-input/index.d.ts +136 -0
  262. package/dist/machines/number-input/index.js +1009 -0
  263. package/dist/machines/pagination/index.cjs +413 -0
  264. package/dist/machines/pagination/index.d.cts +139 -0
  265. package/dist/machines/pagination/index.d.ts +139 -0
  266. package/dist/machines/pagination/index.js +404 -0
  267. package/dist/machines/password-input/index.cjs +224 -0
  268. package/dist/machines/password-input/index.d.cts +71 -0
  269. package/dist/machines/password-input/index.d.ts +71 -0
  270. package/dist/machines/password-input/index.js +219 -0
  271. package/dist/machines/pin-input/index.cjs +595 -0
  272. package/dist/machines/pin-input/index.d.cts +107 -0
  273. package/dist/machines/pin-input/index.d.ts +107 -0
  274. package/dist/machines/pin-input/index.js +590 -0
  275. package/dist/machines/popover/index.cjs +516 -0
  276. package/dist/machines/popover/index.d.cts +107 -0
  277. package/dist/machines/popover/index.d.ts +107 -0
  278. package/dist/machines/popover/index.js +511 -0
  279. package/dist/machines/presence/index.cjs +193 -0
  280. package/dist/machines/presence/index.d.cts +44 -0
  281. package/dist/machines/presence/index.d.ts +44 -0
  282. package/dist/machines/presence/index.js +190 -0
  283. package/dist/machines/progress/index.cjs +282 -0
  284. package/dist/machines/progress/index.d.cts +96 -0
  285. package/dist/machines/progress/index.d.ts +96 -0
  286. package/dist/machines/progress/index.js +277 -0
  287. package/dist/machines/qr-code/index.cjs +167 -0
  288. package/dist/machines/qr-code/index.d.cts +71 -0
  289. package/dist/machines/qr-code/index.d.ts +71 -0
  290. package/dist/machines/qr-code/index.js +162 -0
  291. package/dist/machines/radio-group/index.cjs +465 -0
  292. package/dist/machines/radio-group/index.d.cts +218 -0
  293. package/dist/machines/radio-group/index.d.ts +218 -0
  294. package/dist/machines/radio-group/index.js +458 -0
  295. package/dist/machines/rating-group/index.cjs +405 -0
  296. package/dist/machines/rating-group/index.d.cts +101 -0
  297. package/dist/machines/rating-group/index.d.ts +101 -0
  298. package/dist/machines/rating-group/index.js +398 -0
  299. package/dist/machines/scroll-area/index.cjs +865 -0
  300. package/dist/machines/scroll-area/index.d.cts +126 -0
  301. package/dist/machines/scroll-area/index.d.ts +126 -0
  302. package/dist/machines/scroll-area/index.js +860 -0
  303. package/dist/machines/select/index.cjs +1226 -0
  304. package/dist/machines/select/index.d.cts +190 -0
  305. package/dist/machines/select/index.d.ts +190 -0
  306. package/dist/machines/select/index.js +1214 -0
  307. package/dist/machines/signature-pad/index.cjs +337 -0
  308. package/dist/machines/signature-pad/index.d.cts +108 -0
  309. package/dist/machines/signature-pad/index.d.ts +108 -0
  310. package/dist/machines/signature-pad/index.js +330 -0
  311. package/dist/machines/slider/index.cjs +1103 -0
  312. package/dist/machines/slider/index.d.cts +154 -0
  313. package/dist/machines/slider/index.d.ts +154 -0
  314. package/dist/machines/slider/index.js +1094 -0
  315. package/dist/machines/splitter/index.cjs +1686 -0
  316. package/dist/machines/splitter/index.d.cts +282 -0
  317. package/dist/machines/splitter/index.d.ts +282 -0
  318. package/dist/machines/splitter/index.js +1675 -0
  319. package/dist/machines/steps/index.cjs +330 -0
  320. package/dist/machines/steps/index.d.cts +109 -0
  321. package/dist/machines/steps/index.d.ts +109 -0
  322. package/dist/machines/steps/index.js +325 -0
  323. package/dist/machines/switch/index.cjs +307 -0
  324. package/dist/machines/switch/index.d.cts +80 -0
  325. package/dist/machines/switch/index.d.ts +80 -0
  326. package/dist/machines/switch/index.js +302 -0
  327. package/dist/machines/tabs/index.cjs +542 -0
  328. package/dist/machines/tabs/index.d.cts +113 -0
  329. package/dist/machines/tabs/index.d.ts +113 -0
  330. package/dist/machines/tabs/index.js +533 -0
  331. package/dist/machines/tags-input/index.cjs +1151 -0
  332. package/dist/machines/tags-input/index.d.cts +182 -0
  333. package/dist/machines/tags-input/index.d.ts +182 -0
  334. package/dist/machines/tags-input/index.js +1144 -0
  335. package/dist/machines/timer/index.cjs +329 -0
  336. package/dist/machines/timer/index.d.cts +102 -0
  337. package/dist/machines/timer/index.d.ts +102 -0
  338. package/dist/machines/timer/index.js +323 -0
  339. package/dist/machines/toast/index.cjs +1185 -0
  340. package/dist/machines/toast/index.d.cts +204 -0
  341. package/dist/machines/toast/index.d.ts +204 -0
  342. package/dist/machines/toast/index.js +1180 -0
  343. package/dist/machines/toc/index.cjs +358 -0
  344. package/dist/machines/toc/index.d.cts +98 -0
  345. package/dist/machines/toc/index.d.ts +98 -0
  346. package/dist/machines/toc/index.js +351 -0
  347. package/dist/machines/toggle/index.cjs +99 -0
  348. package/dist/machines/toggle/index.d.cts +46 -0
  349. package/dist/machines/toggle/index.d.ts +46 -0
  350. package/dist/machines/toggle/index.js +94 -0
  351. package/dist/machines/toggle-group/index.cjs +329 -0
  352. package/dist/machines/toggle-group/index.d.cts +81 -0
  353. package/dist/machines/toggle-group/index.d.ts +81 -0
  354. package/dist/machines/toggle-group/index.js +322 -0
  355. package/dist/machines/tooltip/index.cjs +638 -0
  356. package/dist/machines/tooltip/index.d.cts +84 -0
  357. package/dist/machines/tooltip/index.d.ts +84 -0
  358. package/dist/machines/tooltip/index.js +633 -0
  359. package/dist/machines/tour/index.cjs +1123 -0
  360. package/dist/machines/tour/index.d.cts +207 -0
  361. package/dist/machines/tour/index.d.ts +207 -0
  362. package/dist/machines/tour/index.js +1115 -0
  363. package/dist/machines/tree-view/index.cjs +1288 -0
  364. package/dist/machines/tree-view/index.d.cts +221 -0
  365. package/dist/machines/tree-view/index.d.ts +221 -0
  366. package/dist/machines/tree-view/index.js +1279 -0
  367. package/dist/mutation-observer-_LbwtN3W.cjs +61 -0
  368. package/dist/mutation-observer-qObPUo3D.js +50 -0
  369. package/dist/navigate-CJOaL3vx.js +31 -0
  370. package/dist/navigate-uJG-006f.cjs +42 -0
  371. package/dist/overflow-BBihfMxX.cjs +67 -0
  372. package/dist/overflow-C-zO1CWA.js +44 -0
  373. package/dist/platform-BDB0wXUk.js +26 -0
  374. package/dist/platform-BZS-dkZN.cjs +109 -0
  375. package/dist/point-C9A4dk1i.js +27 -0
  376. package/dist/point-DxnCrJBy.cjs +32 -0
  377. package/dist/pointer-lock-BvfSjt_s.cjs +31 -0
  378. package/dist/pointer-lock-WezxTqu-.js +26 -0
  379. package/dist/pointer-move-CGzan38r.cjs +42 -0
  380. package/dist/pointer-move-Tijb8Ptk.js +37 -0
  381. package/dist/polygon-BvdwYRBw.js +76 -0
  382. package/dist/polygon-CTR1kEoU.cjs +93 -0
  383. package/dist/popper-DkAAS9VE.cjs +487 -0
  384. package/dist/popper-DzBZzAe4.js +464 -0
  385. package/dist/popper.cjs +6 -0
  386. package/dist/popper.d.cts +2 -0
  387. package/dist/popper.d.ts +2 -0
  388. package/dist/popper.js +2 -0
  389. package/dist/press-B7XLrLGR.js +65 -0
  390. package/dist/press-BdD5suLQ.cjs +70 -0
  391. package/dist/proxy-tab-focus-DWMXvAfO.js +54 -0
  392. package/dist/proxy-tab-focus-NthYgHdY.cjs +59 -0
  393. package/dist/raf-BSDcY4UD.cjs +85 -0
  394. package/dist/raf-DgINgykK.d.cts +15 -0
  395. package/dist/raf-DgINgykK.d.ts +15 -0
  396. package/dist/raf-Dhvm7f1e.js +62 -0
  397. package/dist/rect-utils-DiT4k3jS.cjs +548 -0
  398. package/dist/rect-utils-d_3gZVsc.js +459 -0
  399. package/dist/rect-utils.cjs +165 -0
  400. package/dist/rect-utils.d.cts +197 -0
  401. package/dist/rect-utils.d.ts +197 -0
  402. package/dist/rect-utils.js +116 -0
  403. package/dist/remove-scroll-DTVA5f4w.cjs +86 -0
  404. package/dist/remove-scroll-WEheFCiq.js +81 -0
  405. package/dist/remove-scroll.cjs +3 -0
  406. package/dist/remove-scroll.d.cts +4 -0
  407. package/dist/remove-scroll.d.ts +4 -0
  408. package/dist/remove-scroll.js +2 -0
  409. package/dist/rolldown-runtime-D6vf50IK.cjs +28 -0
  410. package/dist/scale-C5BBHVgH.js +17 -0
  411. package/dist/scale-C7iiUGhS.cjs +22 -0
  412. package/dist/scope-CysKlKe9.cjs +28 -0
  413. package/dist/scope-D1873Mzi.js +23 -0
  414. package/dist/scroll-CVJ40w2e.js +46 -0
  415. package/dist/scroll-Dyd1QLrc.cjs +63 -0
  416. package/dist/scroll-snap-Cuaqdevf.cjs +224 -0
  417. package/dist/scroll-snap-DqMiFASa.js +201 -0
  418. package/dist/scroll-snap.cjs +6 -0
  419. package/dist/scroll-snap.d.cts +14 -0
  420. package/dist/scroll-snap.d.ts +14 -0
  421. package/dist/scroll-snap.js +2 -0
  422. package/dist/selection-ClKhnWit.d.cts +49 -0
  423. package/dist/selection-DzLiSVkg.d.ts +49 -0
  424. package/dist/selection-map-962WvX2k.js +45 -0
  425. package/dist/selection-map-BwlZr1LH.cjs +68 -0
  426. package/dist/set-CFNGOW5W.js +50 -0
  427. package/dist/set-DrtWCLFb.cjs +73 -0
  428. package/dist/store-BLpJlMxz.js +257 -0
  429. package/dist/store-Btfrm2bs.cjs +47 -0
  430. package/dist/store-C5HvdLyc.js +42 -0
  431. package/dist/store-Wg8KVwNv.cjs +298 -0
  432. package/dist/store.cjs +9 -0
  433. package/dist/store.d.cts +26 -0
  434. package/dist/store.d.ts +26 -0
  435. package/dist/store.js +2 -0
  436. package/dist/stringify-state.cjs +48 -0
  437. package/dist/stringify-state.d.cts +8 -0
  438. package/dist/stringify-state.d.ts +8 -0
  439. package/dist/stringify-state.js +44 -0
  440. package/dist/tabbable-Bz1-1GAY.cjs +206 -0
  441. package/dist/tabbable-CDA1YMjZ.js +147 -0
  442. package/dist/text-selection-B3OQpQGy.cjs +75 -0
  443. package/dist/text-selection-DXvWvm6k.js +64 -0
  444. package/dist/timers-BRyPrXIX.js +82 -0
  445. package/dist/timers-Beu4SfAj.cjs +99 -0
  446. package/dist/tree-collection-3QX3EIhq.d.ts +77 -0
  447. package/dist/tree-collection-C6oDQGUJ.d.cts +77 -0
  448. package/dist/typeahead-DremEgML.d.cts +45 -0
  449. package/dist/typeahead-DremEgML.d.ts +45 -0
  450. package/dist/types-BFuHIo7S.js +10 -0
  451. package/dist/types-CczqoQLL.d.cts +57 -0
  452. package/dist/types-CczqoQLL.d.ts +57 -0
  453. package/dist/types-CjocssbC.d.cts +13 -0
  454. package/dist/types-CjocssbC.d.ts +13 -0
  455. package/dist/types-D7oF7eWh.d.cts +54 -0
  456. package/dist/types-D7oF7eWh.d.ts +54 -0
  457. package/dist/types-HCvp3Bhv.cjs +21 -0
  458. package/dist/types.cjs +14 -0
  459. package/dist/types.d.cts +6 -0
  460. package/dist/types.d.ts +6 -0
  461. package/dist/types.js +12 -0
  462. package/dist/utils-BH-oBBz2.cjs +614 -0
  463. package/dist/utils-Cht5XaHf.js +267 -0
  464. package/dist/utils.cjs +95 -0
  465. package/dist/utils.d.cts +144 -0
  466. package/dist/utils.d.ts +144 -0
  467. package/dist/utils.js +7 -0
  468. package/dist/visually-hidden-BgSCFLz_.cjs +29 -0
  469. package/dist/visually-hidden-yDJ517KZ.js +18 -0
  470. package/dist/wait-for-3n85JcCU.d.cts +15 -0
  471. package/dist/wait-for-3n85JcCU.d.ts +15 -0
  472. package/dist/wait-for-CI5Ye-Lo.js +69 -0
  473. package/dist/wait-for-Db73VpZQ.cjs +86 -0
  474. package/dist/warning-CrzBpWT1.js +19 -0
  475. package/dist/warning-HAmFXLHm.cjs +42 -0
  476. package/package.json +349 -6
@@ -0,0 +1,860 @@
1
+ import { t as createAnatomy } from "../../create-anatomy-B2q3wiaw.js";
2
+ import { d as query, p as contains, z as dataAttr } from "../../dom-query-e7fh0TEH.js";
3
+ import { t as getComputedStyle } from "../../computed-style-B1MKlCoo.js";
4
+ import { i as getEventPoint, s as getEventTarget, t as addDomEvent } from "../../event-bTItRgiw.js";
5
+ import { t as trackPointerMove } from "../../pointer-move-Tijb8Ptk.js";
6
+ import { i as setStyleProperty } from "../../set-CFNGOW5W.js";
7
+ import { t as isEqual } from "../../equal-DtrP8DPh.js";
8
+ import { F as toPx, L as callAll, l as clampValue, n as createSplitProps, t as compact } from "../../utils-Cht5XaHf.js";
9
+ import { n as ensureProps } from "../../warning-CrzBpWT1.js";
10
+ import { r as createMachine } from "../../core-CJ0MZr3D.js";
11
+ import { t as createProps } from "../../create-props-CgtcN_Qu.js";
12
+ //#region src/machines/scroll-area/anatomy.ts
13
+ const anatomy = createAnatomy("scroll-area").parts("root", "viewport", "content", "scrollbar", "thumb", "corner");
14
+ const parts = anatomy.build();
15
+ //#endregion
16
+ //#region src/machines/scroll-area/dom.ts
17
+ const getRootId = (ctx) => ctx.ids?.root ?? `scroll-area:${ctx.id}`;
18
+ const getViewportId = (ctx) => ctx.ids?.viewport ?? `scroll-area:${ctx.id}:viewport`;
19
+ const getContentId = (ctx) => ctx.ids?.content ?? `scroll-area:${ctx.id}:content`;
20
+ const getRootEl = (ctx) => ctx.getById(getRootId(ctx));
21
+ const getViewportEl = (ctx) => ctx.getById(getViewportId(ctx));
22
+ const getContentEl = (ctx) => ctx.getById(getContentId(ctx));
23
+ const getScrollbarXEl = (ctx) => query(getRootEl(ctx), `[data-part=scrollbar][data-orientation=horizontal][data-ownedby="${getRootId(ctx)}"]`);
24
+ const getScrollbarYEl = (ctx) => query(getRootEl(ctx), `[data-part=scrollbar][data-orientation=vertical][data-ownedby="${getRootId(ctx)}"]`);
25
+ const getThumbXEl = (ctx) => query(getScrollbarXEl(ctx), `[data-part=thumb][data-orientation=horizontal][data-ownedby="${getRootId(ctx)}"]`);
26
+ const getThumbYEl = (ctx) => query(getScrollbarYEl(ctx), `[data-part=thumb][data-orientation=vertical][data-ownedby="${getRootId(ctx)}"]`);
27
+ const getCornerEl = (ctx) => query(getRootEl(ctx), `[data-part=corner][data-ownedby="${getRootId(ctx)}"]`);
28
+ //#endregion
29
+ //#region src/machines/scroll-area/utils/scroll-progress.ts
30
+ function getScrollProgress(element, scrollThreshold) {
31
+ if (!element) return EMPTY_SCROLL_PROGRESS;
32
+ let progressX = 0;
33
+ let progressY = 0;
34
+ const maxScrollX = element.scrollWidth - element.clientWidth;
35
+ if (maxScrollX > scrollThreshold) progressX = Math.min(1, Math.max(0, element.scrollLeft / maxScrollX));
36
+ const maxScrollY = element.scrollHeight - element.clientHeight;
37
+ if (maxScrollY > scrollThreshold) progressY = Math.min(1, Math.max(0, element.scrollTop / maxScrollY));
38
+ return {
39
+ x: progressX,
40
+ y: progressY
41
+ };
42
+ }
43
+ const EMPTY_SCROLL_PROGRESS = {
44
+ x: 0,
45
+ y: 0
46
+ };
47
+ //#endregion
48
+ //#region src/machines/scroll-area/utils/smooth-scroll.ts
49
+ const DURATION = 300;
50
+ const EASE_OUT_QUAD = (t) => t * (2 - t);
51
+ function smoothScroll(node, options = {}) {
52
+ const { top, left, duration = DURATION, easing = EASE_OUT_QUAD, onComplete } = options;
53
+ if (!node) return;
54
+ const state = {
55
+ startTime: 0,
56
+ startScrollTop: node.scrollTop,
57
+ startScrollLeft: node.scrollLeft,
58
+ targetScrollTop: top ?? node.scrollTop,
59
+ targetScrollLeft: left ?? node.scrollLeft
60
+ };
61
+ let cancelled = false;
62
+ const cleanup = () => {
63
+ if (state.rafId) {
64
+ cancelAnimationFrame(state.rafId);
65
+ state.rafId = void 0;
66
+ }
67
+ cancelled = true;
68
+ };
69
+ const animate = (currentTime) => {
70
+ if (cancelled) return;
71
+ if (state.startTime === 0) state.startTime = currentTime;
72
+ const elapsed = currentTime - state.startTime;
73
+ const progress = Math.min(elapsed / duration, 1);
74
+ const easedProgress = easing(progress);
75
+ const deltaTop = state.targetScrollTop - state.startScrollTop;
76
+ const deltaLeft = state.targetScrollLeft - state.startScrollLeft;
77
+ node.scrollTop = state.startScrollTop + deltaTop * easedProgress;
78
+ node.scrollLeft = state.startScrollLeft + deltaLeft * easedProgress;
79
+ if (progress < 1) state.rafId = requestAnimationFrame(animate);
80
+ else onComplete?.();
81
+ };
82
+ state.rafId = requestAnimationFrame(animate);
83
+ return cleanup;
84
+ }
85
+ //#endregion
86
+ //#region src/machines/scroll-area/utils/scroll-to.ts
87
+ function scrollTo(node, options = {}) {
88
+ if (!node) return;
89
+ const { top, left, behavior = "smooth", easing, duration } = options;
90
+ if (behavior === "smooth") smoothScroll(node, {
91
+ top,
92
+ left,
93
+ easing,
94
+ duration
95
+ });
96
+ else {
97
+ const scrollOptions = compact({
98
+ behavior,
99
+ top,
100
+ left
101
+ });
102
+ node.scrollTo(scrollOptions);
103
+ }
104
+ }
105
+ //#endregion
106
+ //#region src/machines/scroll-area/utils/scroll-to-edge.ts
107
+ function scrollToEdge(node, edge, dir, behavior = "smooth", easing, duration) {
108
+ if (!node) return;
109
+ const maxLeft = node.scrollWidth - node.clientWidth;
110
+ const maxTop = node.scrollHeight - node.clientHeight;
111
+ const isRtl = dir === "rtl";
112
+ let targetScrollTop;
113
+ let targetScrollLeft;
114
+ switch (edge) {
115
+ case "top":
116
+ targetScrollTop = 0;
117
+ break;
118
+ case "bottom":
119
+ targetScrollTop = maxTop;
120
+ break;
121
+ case "left":
122
+ if (isRtl) targetScrollLeft = node.scrollLeft <= 0 ? -maxLeft : 0;
123
+ else targetScrollLeft = 0;
124
+ break;
125
+ case "right":
126
+ if (isRtl) targetScrollLeft = node.scrollLeft <= 0 ? 0 : maxLeft;
127
+ else targetScrollLeft = maxLeft;
128
+ break;
129
+ }
130
+ if (behavior === "smooth") smoothScroll(node, {
131
+ top: targetScrollTop,
132
+ left: targetScrollLeft,
133
+ easing,
134
+ duration
135
+ });
136
+ else {
137
+ const options = compact({
138
+ left: targetScrollLeft,
139
+ top: targetScrollTop,
140
+ behavior
141
+ });
142
+ node.scrollTo(options);
143
+ }
144
+ }
145
+ //#endregion
146
+ //#region src/machines/scroll-area/connect.ts
147
+ function connect(service, normalize) {
148
+ const { state, send, context, prop, scope } = service;
149
+ const dragging = state.matches("dragging");
150
+ const hovering = context.get("hovering");
151
+ const cornerSize = context.get("cornerSize");
152
+ const thumbSize = context.get("thumbSize");
153
+ const hiddenState = context.get("hiddenState");
154
+ const atSides = context.get("atSides");
155
+ return {
156
+ isAtTop: atSides.top,
157
+ isAtBottom: atSides.bottom,
158
+ isAtLeft: atSides.left,
159
+ isAtRight: atSides.right,
160
+ hasOverflowX: !hiddenState.scrollbarXHidden,
161
+ hasOverflowY: !hiddenState.scrollbarYHidden,
162
+ getScrollProgress() {
163
+ return getScrollProgress(getViewportEl(scope), 0);
164
+ },
165
+ scrollToEdge(details) {
166
+ const { edge, behavior } = details;
167
+ return scrollToEdge(getViewportEl(scope), edge, prop("dir"), behavior);
168
+ },
169
+ scrollTo(details) {
170
+ return scrollTo(getViewportEl(scope), details);
171
+ },
172
+ getScrollbarState(props) {
173
+ const horizontal = props.orientation === "horizontal";
174
+ return {
175
+ hovering,
176
+ dragging,
177
+ scrolling: context.get(horizontal ? "scrollingX" : "scrollingY"),
178
+ hidden: horizontal ? hiddenState.scrollbarXHidden : hiddenState.scrollbarYHidden
179
+ };
180
+ },
181
+ getRootProps() {
182
+ return normalize.element({
183
+ ...parts.root.attrs,
184
+ id: getRootId(scope),
185
+ dir: prop("dir"),
186
+ role: "presentation",
187
+ "data-overflow-x": dataAttr(!hiddenState.scrollbarXHidden),
188
+ "data-overflow-y": dataAttr(!hiddenState.scrollbarYHidden),
189
+ onPointerEnter(event) {
190
+ const target = getEventTarget(event);
191
+ if (!contains(event.currentTarget, target)) return;
192
+ send({
193
+ type: "root.pointerenter",
194
+ pointerType: event.pointerType
195
+ });
196
+ },
197
+ onPointerMove(event) {
198
+ const target = getEventTarget(event);
199
+ if (!contains(event.currentTarget, target)) return;
200
+ send({
201
+ type: "root.pointerenter",
202
+ pointerType: event.pointerType
203
+ });
204
+ },
205
+ onPointerDown({ pointerType }) {
206
+ send({
207
+ type: "root.pointerdown",
208
+ pointerType
209
+ });
210
+ },
211
+ onPointerLeave(event) {
212
+ if (contains(event.currentTarget, event.relatedTarget)) return;
213
+ send({ type: "root.pointerleave" });
214
+ },
215
+ style: {
216
+ position: "relative",
217
+ "--corner-width": toPx(cornerSize?.width),
218
+ "--corner-height": toPx(cornerSize?.height),
219
+ "--thumb-width": toPx(thumbSize?.width),
220
+ "--thumb-height": toPx(thumbSize?.height)
221
+ }
222
+ });
223
+ },
224
+ getViewportProps() {
225
+ const handleUserInteraction = () => {
226
+ send({ type: "user.scroll" });
227
+ };
228
+ return normalize.element({
229
+ ...parts.viewport.attrs,
230
+ role: "presentation",
231
+ "data-ownedby": getRootId(scope),
232
+ id: getViewportId(scope),
233
+ "data-at-top": dataAttr(atSides.top),
234
+ "data-at-bottom": dataAttr(atSides.bottom),
235
+ "data-at-left": dataAttr(atSides.left),
236
+ "data-at-right": dataAttr(atSides.right),
237
+ "data-overflow-x": dataAttr(!hiddenState.scrollbarXHidden),
238
+ "data-overflow-y": dataAttr(!hiddenState.scrollbarYHidden),
239
+ tabIndex: hiddenState.scrollbarXHidden || hiddenState.scrollbarYHidden ? void 0 : 0,
240
+ style: { overflow: "auto" },
241
+ onScroll(event) {
242
+ send({
243
+ type: "viewport.scroll",
244
+ target: event.currentTarget
245
+ });
246
+ },
247
+ onWheel: handleUserInteraction,
248
+ onTouchMove: handleUserInteraction,
249
+ onPointerMove: handleUserInteraction,
250
+ onPointerEnter: handleUserInteraction,
251
+ onKeyDown: handleUserInteraction
252
+ });
253
+ },
254
+ getContentProps() {
255
+ return normalize.element({
256
+ ...parts.content.attrs,
257
+ id: getContentId(scope),
258
+ role: "presentation",
259
+ "data-overflow-x": dataAttr(!hiddenState.scrollbarXHidden),
260
+ "data-overflow-y": dataAttr(!hiddenState.scrollbarYHidden),
261
+ style: { minWidth: "fit-content" }
262
+ });
263
+ },
264
+ getScrollbarProps(props = {}) {
265
+ const { orientation = "vertical" } = props;
266
+ return normalize.element({
267
+ ...parts.scrollbar.attrs,
268
+ "data-ownedby": getRootId(scope),
269
+ "data-orientation": orientation,
270
+ "data-scrolling": dataAttr(context.get(orientation === "horizontal" ? "scrollingX" : "scrollingY")),
271
+ "data-hover": dataAttr(hovering),
272
+ "data-dragging": dataAttr(dragging),
273
+ "data-overflow-x": dataAttr(!hiddenState.scrollbarXHidden),
274
+ "data-overflow-y": dataAttr(!hiddenState.scrollbarYHidden),
275
+ onPointerUp() {
276
+ send({
277
+ type: "scrollbar.pointerup",
278
+ orientation
279
+ });
280
+ },
281
+ onPointerDown(event) {
282
+ if (event.button !== 0) return;
283
+ if (event.currentTarget !== event.target) return;
284
+ const point = getEventPoint(event);
285
+ send({
286
+ type: "scrollbar.pointerdown",
287
+ orientation,
288
+ point
289
+ });
290
+ event.stopPropagation();
291
+ },
292
+ style: {
293
+ position: "absolute",
294
+ touchAction: "none",
295
+ WebkitUserSelect: "none",
296
+ userSelect: "none",
297
+ ...orientation === "vertical" && {
298
+ top: 0,
299
+ bottom: `var(--corner-height)`,
300
+ insetInlineEnd: 0
301
+ },
302
+ ...orientation === "horizontal" && {
303
+ insetInlineStart: 0,
304
+ insetInlineEnd: `var(--corner-width)`,
305
+ bottom: 0
306
+ }
307
+ }
308
+ });
309
+ },
310
+ getThumbProps(props = {}) {
311
+ const { orientation = "vertical" } = props;
312
+ return normalize.element({
313
+ ...parts.thumb.attrs,
314
+ "data-ownedby": getRootId(scope),
315
+ "data-orientation": orientation,
316
+ "data-hover": dataAttr(hovering),
317
+ "data-dragging": dataAttr(dragging),
318
+ onPointerDown(event) {
319
+ if (event.button !== 0) return;
320
+ const point = getEventPoint(event);
321
+ send({
322
+ type: "thumb.pointerdown",
323
+ orientation,
324
+ point
325
+ });
326
+ },
327
+ style: {
328
+ ...orientation === "vertical" && { height: "var(--thumb-height)" },
329
+ ...orientation === "horizontal" && { width: "var(--thumb-width)" }
330
+ }
331
+ });
332
+ },
333
+ getCornerProps() {
334
+ return normalize.element({
335
+ ...parts.corner.attrs,
336
+ "data-ownedby": getRootId(scope),
337
+ "data-hover": dataAttr(hovering),
338
+ "data-state": hiddenState.cornerHidden ? "hidden" : "visible",
339
+ "data-overflow-x": dataAttr(!hiddenState.scrollbarXHidden),
340
+ "data-overflow-y": dataAttr(!hiddenState.scrollbarYHidden),
341
+ style: {
342
+ position: "absolute",
343
+ bottom: 0,
344
+ insetInlineEnd: 0,
345
+ width: "var(--corner-width)",
346
+ height: "var(--corner-height)"
347
+ }
348
+ });
349
+ }
350
+ };
351
+ }
352
+ //#endregion
353
+ //#region src/machines/scroll-area/utils/scroll-offset.ts
354
+ function getScrollOffset(element, prop, axis) {
355
+ if (!element) return 0;
356
+ const styles = getComputedStyle(element);
357
+ const propAxis = axis === "x" ? "Inline" : "Block";
358
+ if (axis === "x" && prop === "margin") return parseFloat(styles[`${prop}InlineStart`]) * 2;
359
+ return parseFloat(styles[`${prop}${propAxis}Start`]) + parseFloat(styles[`${prop}${propAxis}End`]);
360
+ }
361
+ //#endregion
362
+ //#region src/machines/scroll-area/utils/scroll-sides.ts
363
+ function getScrollSides(node, dir) {
364
+ const scrollTop = node.scrollTop;
365
+ const scrollLeft = node.scrollLeft;
366
+ const isRtl = dir === "rtl";
367
+ const threshold = 1;
368
+ const hasVerticalScroll = node.scrollHeight - node.clientHeight > threshold;
369
+ const hasHorizontalScroll = node.scrollWidth - node.clientWidth > threshold;
370
+ const maxScrollLeft = node.scrollWidth - node.clientWidth;
371
+ const maxScrollTop = node.scrollHeight - node.clientHeight;
372
+ let atLeft = false;
373
+ let atRight = false;
374
+ let atTop = false;
375
+ let atBottom = false;
376
+ if (hasHorizontalScroll) if (isRtl) if (scrollLeft <= 0) {
377
+ atLeft = Math.abs(scrollLeft) >= maxScrollLeft - threshold;
378
+ atRight = Math.abs(scrollLeft) <= threshold;
379
+ } else {
380
+ atLeft = scrollLeft <= threshold;
381
+ atRight = scrollLeft >= maxScrollLeft - threshold;
382
+ }
383
+ else {
384
+ atLeft = scrollLeft <= threshold;
385
+ atRight = scrollLeft >= maxScrollLeft - threshold;
386
+ }
387
+ if (hasVerticalScroll) {
388
+ atTop = scrollTop <= threshold;
389
+ atBottom = scrollTop >= maxScrollTop - threshold;
390
+ }
391
+ return {
392
+ top: atTop,
393
+ right: atRight,
394
+ bottom: atBottom,
395
+ left: atLeft
396
+ };
397
+ }
398
+ //#endregion
399
+ //#region src/machines/scroll-area/utils/timeout.ts
400
+ const EMPTY = 0;
401
+ var Timeout = class {
402
+ currentId = EMPTY;
403
+ start(delay, fn) {
404
+ this.clear();
405
+ this.currentId = setTimeout(() => {
406
+ this.currentId = EMPTY;
407
+ fn();
408
+ }, delay);
409
+ }
410
+ isStarted() {
411
+ return this.currentId !== EMPTY;
412
+ }
413
+ clear = () => {
414
+ if (this.currentId !== EMPTY) {
415
+ clearTimeout(this.currentId);
416
+ this.currentId = EMPTY;
417
+ }
418
+ };
419
+ disposeEffect = () => {
420
+ return this.clear;
421
+ };
422
+ };
423
+ //#endregion
424
+ //#region src/machines/scroll-area/machine.ts
425
+ const MIN_THUMB_SIZE = 20;
426
+ const SCROLL_TIMEOUT = 1e3;
427
+ const machine = createMachine({
428
+ props({ props }) {
429
+ ensureProps(props, ["id"]);
430
+ return props;
431
+ },
432
+ context({ bindable }) {
433
+ return {
434
+ scrollingX: bindable(() => ({ defaultValue: false })),
435
+ scrollingY: bindable(() => ({ defaultValue: false })),
436
+ hovering: bindable(() => ({ defaultValue: false })),
437
+ dragging: bindable(() => ({ defaultValue: false })),
438
+ touchModality: bindable(() => ({ defaultValue: false })),
439
+ atSides: bindable(() => ({ defaultValue: {
440
+ top: true,
441
+ right: false,
442
+ bottom: false,
443
+ left: true
444
+ } })),
445
+ cornerSize: bindable(() => ({ defaultValue: {
446
+ width: 0,
447
+ height: 0
448
+ } })),
449
+ thumbSize: bindable(() => ({ defaultValue: {
450
+ width: 0,
451
+ height: 0
452
+ } })),
453
+ hiddenState: bindable(() => ({
454
+ defaultValue: {
455
+ scrollbarYHidden: false,
456
+ scrollbarXHidden: false,
457
+ cornerHidden: false
458
+ },
459
+ hash(a) {
460
+ return `Y:${a.scrollbarYHidden} X:${a.scrollbarXHidden} C:${a.cornerHidden}`;
461
+ }
462
+ }))
463
+ };
464
+ },
465
+ refs() {
466
+ return {
467
+ orientation: "vertical",
468
+ scrollPosition: {
469
+ x: 0,
470
+ y: 0
471
+ },
472
+ scrollYTimeout: new Timeout(),
473
+ scrollXTimeout: new Timeout(),
474
+ scrollEndTimeout: new Timeout(),
475
+ startX: 0,
476
+ startY: 0,
477
+ startScrollTop: 0,
478
+ startScrollLeft: 0,
479
+ programmaticScroll: true
480
+ };
481
+ },
482
+ initialState() {
483
+ return "idle";
484
+ },
485
+ watch({ track, prop, context, send }) {
486
+ track([() => prop("dir"), () => context.hash("hiddenState")], () => {
487
+ send({ type: "thumb.measure" });
488
+ });
489
+ },
490
+ effects: [
491
+ "trackContentResize",
492
+ "trackViewportVisibility",
493
+ "trackWheelEvent"
494
+ ],
495
+ entry: ["checkHovering"],
496
+ exit: ["clearTimeouts"],
497
+ on: {
498
+ "thumb.measure": { actions: ["setThumbSize"] },
499
+ "viewport.scroll": { actions: [
500
+ "setThumbSize",
501
+ "setScrolling",
502
+ "setProgrammaticScroll"
503
+ ] },
504
+ "root.pointerenter": { actions: ["setTouchModality", "setHovering"] },
505
+ "root.pointerdown": { actions: ["setTouchModality"] },
506
+ "root.pointerleave": { actions: ["clearHovering"] }
507
+ },
508
+ states: {
509
+ idle: { on: {
510
+ "scrollbar.pointerdown": {
511
+ target: "dragging",
512
+ actions: ["scrollToPointer", "startDragging"]
513
+ },
514
+ "thumb.pointerdown": {
515
+ target: "dragging",
516
+ actions: ["startDragging"]
517
+ }
518
+ } },
519
+ dragging: {
520
+ effects: ["trackPointerMove"],
521
+ on: {
522
+ "thumb.pointermove": { actions: ["setDraggingScroll"] },
523
+ "scrollbar.pointerup": {
524
+ target: "idle",
525
+ actions: ["stopDragging"]
526
+ },
527
+ "thumb.pointerup": {
528
+ target: "idle",
529
+ actions: ["clearScrolling", "stopDragging"]
530
+ }
531
+ }
532
+ }
533
+ },
534
+ implementations: {
535
+ actions: {
536
+ setTouchModality({ context, event }) {
537
+ context.set("touchModality", event.pointerType === "touch");
538
+ },
539
+ setHovering({ context }) {
540
+ context.set("hovering", true);
541
+ },
542
+ clearHovering({ context }) {
543
+ context.set("hovering", false);
544
+ },
545
+ setProgrammaticScroll({ refs }) {
546
+ refs.get("scrollEndTimeout").start(100, () => {
547
+ refs.set("programmaticScroll", true);
548
+ });
549
+ },
550
+ clearScrolling({ context, event }) {
551
+ context.set(event.orientation === "vertical" ? "scrollingY" : "scrollingX", false);
552
+ },
553
+ setThumbSize({ context, scope, prop }) {
554
+ const viewportEl = getViewportEl(scope);
555
+ if (!viewportEl) return;
556
+ const scrollableContentHeight = viewportEl.scrollHeight;
557
+ const scrollableContentWidth = viewportEl.scrollWidth;
558
+ if (scrollableContentHeight === 0 || scrollableContentWidth === 0) return;
559
+ const scrollbarYEl = getScrollbarYEl(scope);
560
+ const scrollbarXEl = getScrollbarXEl(scope);
561
+ const thumbYEl = getThumbYEl(scope);
562
+ const thumbXEl = getThumbXEl(scope);
563
+ const viewportHeight = viewportEl.clientHeight;
564
+ const viewportWidth = viewportEl.clientWidth;
565
+ const scrollTop = viewportEl.scrollTop;
566
+ const scrollLeft = viewportEl.scrollLeft;
567
+ const scrollbarYHidden = viewportHeight >= scrollableContentHeight;
568
+ const scrollbarXHidden = viewportWidth >= scrollableContentWidth;
569
+ const ratioX = viewportWidth / scrollableContentWidth;
570
+ const ratioY = viewportHeight / scrollableContentHeight;
571
+ const nextWidth = scrollbarXHidden ? 0 : viewportWidth;
572
+ const nextHeight = scrollbarYHidden ? 0 : viewportHeight;
573
+ const scrollbarXOffset = getScrollOffset(scrollbarXEl, "padding", "x");
574
+ const scrollbarYOffset = getScrollOffset(scrollbarYEl, "padding", "y");
575
+ const thumbXOffset = getScrollOffset(thumbXEl, "margin", "x");
576
+ const thumbYOffset = getScrollOffset(thumbYEl, "margin", "y");
577
+ const idealNextWidth = nextWidth - scrollbarXOffset - thumbXOffset;
578
+ const idealNextHeight = nextHeight - scrollbarYOffset - thumbYOffset;
579
+ const maxNextWidth = scrollbarXEl ? Math.min(scrollbarXEl.offsetWidth, idealNextWidth) : idealNextWidth;
580
+ const maxNextHeight = scrollbarYEl ? Math.min(scrollbarYEl.offsetHeight, idealNextHeight) : idealNextHeight;
581
+ const clampedNextWidth = Math.max(MIN_THUMB_SIZE, maxNextWidth * ratioX);
582
+ const clampedNextHeight = Math.max(MIN_THUMB_SIZE, maxNextHeight * ratioY);
583
+ context.set("thumbSize", (prevSize) => {
584
+ if (prevSize.height === clampedNextHeight && prevSize.width === clampedNextWidth) return prevSize;
585
+ return {
586
+ width: clampedNextWidth,
587
+ height: clampedNextHeight
588
+ };
589
+ });
590
+ if (scrollbarYEl && thumbYEl) {
591
+ const maxThumbOffsetY = scrollbarYEl.offsetHeight - clampedNextHeight - scrollbarYOffset - thumbYOffset;
592
+ const scrollRatioY = scrollTop / (scrollableContentHeight - viewportHeight);
593
+ const thumbOffsetY = Math.min(maxThumbOffsetY, Math.max(0, scrollRatioY * maxThumbOffsetY));
594
+ thumbYEl.style.transform = `translate3d(0,${thumbOffsetY}px,0)`;
595
+ }
596
+ if (scrollbarXEl && thumbXEl) {
597
+ const maxThumbOffsetX = scrollbarXEl.offsetWidth - clampedNextWidth - scrollbarXOffset - thumbXOffset;
598
+ const scrollRatioX = scrollLeft / (scrollableContentWidth - viewportWidth);
599
+ const thumbOffsetX = prop("dir") === "rtl" ? clampValue(scrollRatioX * maxThumbOffsetX, -maxThumbOffsetX, 0) : clampValue(scrollRatioX * maxThumbOffsetX, 0, maxThumbOffsetX);
600
+ thumbXEl.style.transform = `translate3d(${thumbOffsetX}px,0,0)`;
601
+ }
602
+ if (getCornerEl(scope)) {
603
+ if (scrollbarXHidden || scrollbarYHidden) context.set("cornerSize", {
604
+ width: 0,
605
+ height: 0
606
+ });
607
+ else if (!scrollbarXHidden && !scrollbarYHidden) {
608
+ const width = scrollbarYEl?.offsetWidth || 0;
609
+ const height = scrollbarXEl?.offsetHeight || 0;
610
+ context.set("cornerSize", {
611
+ width,
612
+ height
613
+ });
614
+ }
615
+ }
616
+ context.set("hiddenState", (prevState) => {
617
+ const cornerHidden = scrollbarYHidden || scrollbarXHidden;
618
+ if (prevState.scrollbarYHidden === scrollbarYHidden && prevState.scrollbarXHidden === scrollbarXHidden && prevState.cornerHidden === cornerHidden) return prevState;
619
+ return {
620
+ scrollbarYHidden,
621
+ scrollbarXHidden,
622
+ cornerHidden
623
+ };
624
+ });
625
+ context.set("atSides", (prev) => {
626
+ const next = getScrollSides(viewportEl, prop("dir"));
627
+ if (isEqual(prev, next)) return prev;
628
+ return next;
629
+ });
630
+ const maxScrollTop = Math.max(0, scrollableContentHeight - viewportHeight);
631
+ const maxScrollLeft = Math.max(0, scrollableContentWidth - viewportWidth);
632
+ let scrollLeftFromStart = 0;
633
+ let scrollLeftFromEnd = 0;
634
+ if (!scrollbarXHidden) {
635
+ if (prop("dir") === "rtl") scrollLeftFromStart = clampValue(-scrollLeft, 0, maxScrollLeft);
636
+ else scrollLeftFromStart = clampValue(scrollLeft, 0, maxScrollLeft);
637
+ scrollLeftFromEnd = maxScrollLeft - scrollLeftFromStart;
638
+ }
639
+ const scrollTopFromStart = !scrollbarYHidden ? clampValue(scrollTop, 0, maxScrollTop) : 0;
640
+ const scrollTopFromEnd = !scrollbarYHidden ? maxScrollTop - scrollTopFromStart : 0;
641
+ setStyleProperty(viewportEl, "--scroll-area-overflow-x-start", `${scrollLeftFromStart}px`);
642
+ setStyleProperty(viewportEl, "--scroll-area-overflow-x-end", `${scrollLeftFromEnd}px`);
643
+ setStyleProperty(viewportEl, "--scroll-area-overflow-y-start", `${scrollTopFromStart}px`);
644
+ setStyleProperty(viewportEl, "--scroll-area-overflow-y-end", `${scrollTopFromEnd}px`);
645
+ },
646
+ checkHovering({ scope, context }) {
647
+ if (getViewportEl(scope)?.matches(":hover")) context.set("hovering", true);
648
+ },
649
+ setScrolling({ event, refs, context, prop }) {
650
+ const scrollPosition = {
651
+ x: event.target.scrollLeft,
652
+ y: event.target.scrollTop
653
+ };
654
+ const scrollPositionRef = refs.get("scrollPosition");
655
+ const offsetX = scrollPosition.x - scrollPositionRef.x;
656
+ const offsetY = scrollPosition.y - scrollPositionRef.y;
657
+ refs.set("scrollPosition", scrollPosition);
658
+ context.set("atSides", (prev) => {
659
+ const next = getScrollSides(event.target, prop("dir"));
660
+ if (isEqual(prev, next)) return prev;
661
+ return next;
662
+ });
663
+ if (offsetY !== 0) {
664
+ context.set("scrollingY", true);
665
+ refs.get("scrollYTimeout").start(SCROLL_TIMEOUT, () => {
666
+ context.set("scrollingY", false);
667
+ });
668
+ }
669
+ if (offsetX !== 0) {
670
+ context.set("scrollingX", true);
671
+ refs.get("scrollXTimeout").start(SCROLL_TIMEOUT, () => {
672
+ context.set("scrollingX", false);
673
+ });
674
+ }
675
+ },
676
+ scrollToPointer({ event, scope, prop }) {
677
+ const viewportEl = getViewportEl(scope);
678
+ if (!viewportEl) return;
679
+ const thumbYRef = getThumbYEl(scope);
680
+ const scrollbarYRef = getScrollbarYEl(scope);
681
+ const thumbXRef = getThumbXEl(scope);
682
+ const scrollbarXRef = getScrollbarXEl(scope);
683
+ const client = event.point;
684
+ if (thumbYRef && scrollbarYRef && event.orientation === "vertical") {
685
+ const thumbYOffset = getScrollOffset(thumbYRef, "margin", "y");
686
+ const scrollbarYOffset = getScrollOffset(scrollbarYRef, "padding", "y");
687
+ const thumbHeight = thumbYRef.offsetHeight;
688
+ const trackRectY = scrollbarYRef.getBoundingClientRect();
689
+ const clickY = client.y - trackRectY.top - thumbHeight / 2 - scrollbarYOffset + thumbYOffset / 2;
690
+ const scrollableContentHeight = viewportEl.scrollHeight;
691
+ const viewportHeight = viewportEl.clientHeight;
692
+ viewportEl.scrollTop = clickY / (scrollbarYRef.offsetHeight - thumbHeight - scrollbarYOffset - thumbYOffset) * (scrollableContentHeight - viewportHeight);
693
+ }
694
+ if (thumbXRef && scrollbarXRef && event.orientation === "horizontal") {
695
+ const thumbXOffset = getScrollOffset(thumbXRef, "margin", "x");
696
+ const scrollbarXOffset = getScrollOffset(scrollbarXRef, "padding", "x");
697
+ const thumbWidth = thumbXRef.offsetWidth;
698
+ const trackRectX = scrollbarXRef.getBoundingClientRect();
699
+ const clickX = client.x - trackRectX.left - thumbWidth / 2 - scrollbarXOffset + thumbXOffset / 2;
700
+ const scrollableContentWidth = viewportEl.scrollWidth;
701
+ const viewportWidth = viewportEl.clientWidth;
702
+ const scrollRatioX = clickX / (scrollbarXRef.offsetWidth - thumbWidth - scrollbarXOffset - thumbXOffset);
703
+ let newScrollLeft;
704
+ if (prop("dir") === "rtl") {
705
+ newScrollLeft = (1 - scrollRatioX) * (scrollableContentWidth - viewportWidth);
706
+ if (viewportEl.scrollLeft <= 0) newScrollLeft = -newScrollLeft;
707
+ } else newScrollLeft = scrollRatioX * (scrollableContentWidth - viewportWidth);
708
+ viewportEl.scrollLeft = newScrollLeft;
709
+ }
710
+ },
711
+ startDragging({ event, refs, scope }) {
712
+ refs.set("startX", event.point.x);
713
+ refs.set("startY", event.point.y);
714
+ refs.set("orientation", event.orientation);
715
+ const viewportEl = getViewportEl(scope);
716
+ if (!viewportEl) return;
717
+ refs.set("startScrollTop", viewportEl.scrollTop);
718
+ refs.set("startScrollLeft", viewportEl.scrollLeft);
719
+ },
720
+ setDraggingScroll({ event, refs, scope, context }) {
721
+ const startY = refs.get("startY");
722
+ const startX = refs.get("startX");
723
+ const startScrollTop = refs.get("startScrollTop");
724
+ const startScrollLeft = refs.get("startScrollLeft");
725
+ const client = event.point;
726
+ const deltaY = client.y - startY;
727
+ const deltaX = client.x - startX;
728
+ const viewportEl = getViewportEl(scope);
729
+ if (!viewportEl) return;
730
+ const scrollableContentHeight = viewportEl.scrollHeight;
731
+ const viewportHeight = viewportEl.clientHeight;
732
+ const scrollableContentWidth = viewportEl.scrollWidth;
733
+ const viewportWidth = viewportEl.clientWidth;
734
+ const orientation = refs.get("orientation");
735
+ const thumbYEl = getThumbYEl(scope);
736
+ const scrollbarYEl = getScrollbarYEl(scope);
737
+ if (thumbYEl && scrollbarYEl && orientation === "vertical") {
738
+ const scrollbarYOffset = getScrollOffset(scrollbarYEl, "padding", "y");
739
+ const thumbYOffset = getScrollOffset(thumbYEl, "margin", "y");
740
+ const thumbHeight = thumbYEl.offsetHeight;
741
+ viewportEl.scrollTop = startScrollTop + deltaY / (scrollbarYEl.offsetHeight - thumbHeight - scrollbarYOffset - thumbYOffset) * (scrollableContentHeight - viewportHeight);
742
+ context.set("scrollingY", true);
743
+ refs.get("scrollYTimeout").start(SCROLL_TIMEOUT, () => {
744
+ context.set("scrollingY", false);
745
+ });
746
+ }
747
+ const thumbXEl = getThumbXEl(scope);
748
+ const scrollbarXEl = getScrollbarXEl(scope);
749
+ if (thumbXEl && scrollbarXEl && orientation === "horizontal") {
750
+ const scrollbarXOffset = getScrollOffset(scrollbarXEl, "padding", "x");
751
+ const thumbXOffset = getScrollOffset(thumbXEl, "margin", "x");
752
+ const thumbWidth = thumbXEl.offsetWidth;
753
+ viewportEl.scrollLeft = startScrollLeft + deltaX / (scrollbarXEl.offsetWidth - thumbWidth - scrollbarXOffset - thumbXOffset) * (scrollableContentWidth - viewportWidth);
754
+ context.set("scrollingX", true);
755
+ refs.get("scrollXTimeout").start(SCROLL_TIMEOUT, () => {
756
+ context.set("scrollingX", false);
757
+ });
758
+ }
759
+ },
760
+ stopDragging({ refs }) {
761
+ refs.set("orientation", null);
762
+ },
763
+ clearTimeouts({ refs }) {
764
+ refs.get("scrollYTimeout").clear();
765
+ refs.get("scrollXTimeout").clear();
766
+ refs.get("scrollEndTimeout").clear();
767
+ }
768
+ },
769
+ effects: {
770
+ trackContentResize({ scope, send }) {
771
+ const contentEl = getContentEl(scope);
772
+ const rootEl = getRootEl(scope);
773
+ if (!contentEl || !rootEl) return;
774
+ const obs = new (scope.getWin()).ResizeObserver(() => {
775
+ setTimeout(() => {
776
+ send({ type: "thumb.measure" });
777
+ }, 1);
778
+ });
779
+ obs.observe(contentEl);
780
+ obs.observe(rootEl);
781
+ return () => {
782
+ obs.disconnect();
783
+ };
784
+ },
785
+ trackViewportVisibility({ scope, send }) {
786
+ const win = scope.getWin();
787
+ const viewportEl = getViewportEl(scope);
788
+ if (!viewportEl) return;
789
+ const observer = new win.IntersectionObserver((entries) => {
790
+ entries.forEach((entry) => {
791
+ if (entry.intersectionRatio > 0) {
792
+ send({ type: "thumb.measure" });
793
+ observer.disconnect();
794
+ }
795
+ });
796
+ });
797
+ observer.observe(viewportEl);
798
+ return () => {
799
+ observer.disconnect();
800
+ };
801
+ },
802
+ trackWheelEvent({ scope }) {
803
+ const scrollbarYEl = getScrollbarYEl(scope);
804
+ const scrollbarXEl = getScrollbarXEl(scope);
805
+ if (!scrollbarYEl && !scrollbarXEl) return;
806
+ const onWheel = (event) => {
807
+ const viewportEl = getViewportEl(scope);
808
+ if (!viewportEl || event.ctrlKey) return;
809
+ const orientation = event.currentTarget.dataset.orientation;
810
+ if (orientation === "vertical") {
811
+ const canScrollY = viewportEl.scrollHeight > viewportEl.clientHeight;
812
+ const atTop = viewportEl.scrollTop === 0 && event.deltaY < 0;
813
+ const atBottom = viewportEl.scrollTop === viewportEl.scrollHeight - viewportEl.clientHeight && event.deltaY > 0;
814
+ if (!(canScrollY && event.deltaY !== 0 && !(atTop || atBottom))) return;
815
+ event.preventDefault();
816
+ viewportEl.scrollTop += event.deltaY;
817
+ } else if (orientation === "horizontal") {
818
+ const canScrollX = viewportEl.scrollWidth > viewportEl.clientWidth;
819
+ const atLeft = viewportEl.scrollLeft === 0 && event.deltaX < 0;
820
+ const atRight = viewportEl.scrollLeft === viewportEl.scrollWidth - viewportEl.clientWidth && event.deltaX > 0;
821
+ if (!(canScrollX && event.deltaX !== 0 && !(atLeft || atRight))) return;
822
+ event.preventDefault();
823
+ viewportEl.scrollLeft += event.deltaX;
824
+ }
825
+ };
826
+ return callAll(scrollbarYEl && addDomEvent(scrollbarYEl, "wheel", onWheel, { passive: false }), scrollbarXEl && addDomEvent(scrollbarXEl, "wheel", onWheel, { passive: false }));
827
+ },
828
+ trackPointerMove({ scope, send, refs }) {
829
+ const doc = scope.getDoc();
830
+ const orientation = refs.get("orientation");
831
+ return trackPointerMove(doc, {
832
+ onPointerMove({ point }) {
833
+ send({
834
+ type: "thumb.pointermove",
835
+ orientation,
836
+ point
837
+ });
838
+ },
839
+ onPointerUp() {
840
+ send({
841
+ type: "thumb.pointerup",
842
+ orientation
843
+ });
844
+ }
845
+ });
846
+ }
847
+ }
848
+ }
849
+ });
850
+ //#endregion
851
+ //#region src/machines/scroll-area/props.ts
852
+ const props = createProps()([
853
+ "dir",
854
+ "getRootNode",
855
+ "ids",
856
+ "id"
857
+ ]);
858
+ const splitProps = createSplitProps(props);
859
+ //#endregion
860
+ export { anatomy, connect, machine, props, splitProps };