@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,1562 @@
1
+ Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
2
+ const require_create_anatomy = require("../../create-anatomy-BwDn25ph.cjs");
3
+ const require_dom_query = require("../../dom-query-CQzY93XU.cjs");
4
+ const require_event = require("../../event-DDz-mMhM.cjs");
5
+ const require_initial_focus = require("../../initial-focus-BQxRRFPa.cjs");
6
+ const require_raf = require("../../raf-BSDcY4UD.cjs");
7
+ const require_mutation_observer = require("../../mutation-observer-_LbwtN3W.cjs");
8
+ const require_navigate = require("../../navigate-uJG-006f.cjs");
9
+ const require_scroll = require("../../scroll-Dyd1QLrc.cjs");
10
+ const require_array = require("../../array-BGtygd0o.cjs");
11
+ const require_equal = require("../../equal-C927y7MN.cjs");
12
+ const require_utils = require("../../utils-BH-oBBz2.cjs");
13
+ const require_core = require("../../core-BNMw-JId.cjs");
14
+ const require_dismissable = require("../../dismissable-C0bixtzl.cjs");
15
+ const require_focus_visible = require("../../focus-visible-G4cmlWqq.cjs");
16
+ const require_popper = require("../../popper-DkAAS9VE.cjs");
17
+ require("../../rect-utils-DiT4k3jS.cjs");
18
+ const require_polygon = require("../../polygon-CTR1kEoU.cjs");
19
+ const require_create_props = require("../../create-props-CjLx2oS8.cjs");
20
+ //#region src/machines/menu/anatomy.ts
21
+ const anatomy = require_create_anatomy.createAnatomy("menu").parts("arrow", "arrowTip", "content", "contextTrigger", "indicator", "item", "itemGroup", "itemGroupLabel", "itemIndicator", "itemText", "positioner", "separator", "trigger", "triggerItem");
22
+ const parts = anatomy.build();
23
+ //#endregion
24
+ //#region src/machines/menu/dom.ts
25
+ const getTriggerId = (ctx, value) => {
26
+ const customId = ctx.ids?.trigger;
27
+ if (customId != null) return require_utils.isFunction(customId) ? customId(value) : customId;
28
+ return value ? `menu:${ctx.id}:trigger:${value}` : `menu:${ctx.id}:trigger`;
29
+ };
30
+ const getContextTriggerId = (ctx, value) => {
31
+ const customId = ctx.ids?.contextTrigger;
32
+ if (customId != null) return require_utils.isFunction(customId) ? customId(value) : customId;
33
+ return value ? `menu:${ctx.id}:ctx-trigger:${value}` : `menu:${ctx.id}:ctx-trigger`;
34
+ };
35
+ const getContentId = (ctx) => ctx.ids?.content ?? `menu:${ctx.id}:content`;
36
+ const getArrowId = (ctx) => ctx.ids?.arrow ?? `menu:${ctx.id}:arrow`;
37
+ const getPositionerId = (ctx) => ctx.ids?.positioner ?? `menu:${ctx.id}:popper`;
38
+ const getGroupId = (ctx, id) => ctx.ids?.group?.(id) ?? `menu:${ctx.id}:group:${id}`;
39
+ const getItemId = (ctx, id) => `${ctx.id}/${id}`;
40
+ const getItemValue = (el) => el?.dataset.value ?? null;
41
+ const getGroupLabelId = (ctx, id) => ctx.ids?.groupLabel?.(id) ?? `menu:${ctx.id}:group-label:${id}`;
42
+ const getContentEl = (ctx) => ctx.getById(getContentId(ctx));
43
+ const getPositionerEl = (ctx) => ctx.getById(getPositionerId(ctx));
44
+ const getTriggerEl = (ctx) => ctx.getById(getTriggerId(ctx));
45
+ const getItemEl = (ctx, value) => value ? ctx.getById(getItemId(ctx, value)) : null;
46
+ const getContextTriggerEl = (ctx) => ctx.getById(getContextTriggerId(ctx));
47
+ const getTriggerEls = (ctx) => require_dom_query.queryAll(ctx.getRootNode(), `[data-scope="menu"][data-part="trigger"][data-ownedby="${ctx.id}"]`);
48
+ const getContextTriggerEls = (ctx) => require_dom_query.queryAll(ctx.getRootNode(), `[data-scope="menu"][data-part="context-trigger"][data-ownedby="${ctx.id}"]`);
49
+ const getActiveTriggerEl = (ctx, value) => {
50
+ if (value == null) return getTriggerEl(ctx) ?? getTriggerEls(ctx)[0];
51
+ return ctx.getById(getTriggerId(ctx, value));
52
+ };
53
+ const getElements = (ctx) => {
54
+ const selector = `[role^="menuitem"][data-ownedby=${CSS.escape(getContentId(ctx))}]:not([data-disabled])`;
55
+ return require_dom_query.queryAll(getContentEl(ctx), selector);
56
+ };
57
+ const getFirstEl = (ctx) => require_array.first(getElements(ctx));
58
+ const getLastEl = (ctx) => require_array.last(getElements(ctx));
59
+ const isMatch = (el, value) => {
60
+ if (!value) return false;
61
+ return el.id === value || el.dataset.value === value;
62
+ };
63
+ const getNextEl = (ctx, opts) => {
64
+ const items = getElements(ctx);
65
+ return require_array.next(items, items.findIndex((el) => isMatch(el, opts.value)), { loop: opts.loop ?? opts.loopFocus });
66
+ };
67
+ const getPrevEl = (ctx, opts) => {
68
+ const items = getElements(ctx);
69
+ return require_array.prev(items, items.findIndex((el) => isMatch(el, opts.value)), { loop: opts.loop ?? opts.loopFocus });
70
+ };
71
+ const getElemByKey = (ctx, opts) => {
72
+ const items = getElements(ctx);
73
+ const item = items.find((el) => isMatch(el, opts.value));
74
+ return require_dom_query.getByTypeahead(items, {
75
+ state: opts.typeaheadState,
76
+ key: opts.key,
77
+ activeId: item?.id ?? null
78
+ });
79
+ };
80
+ const isTargetDisabled = (v) => {
81
+ return require_dom_query.isHTMLElement(v) && (v.dataset.disabled === "" || v.hasAttribute("disabled"));
82
+ };
83
+ const isTriggerItem = (el) => {
84
+ return !!el?.getAttribute("role")?.startsWith("menuitem") && !!el?.hasAttribute("data-controls");
85
+ };
86
+ const itemSelectEvent = "menu:select";
87
+ function dispatchSelectionEvent(el, value) {
88
+ if (!el) return;
89
+ const event = new (require_dom_query.getWindow(el)).CustomEvent(itemSelectEvent, { detail: { value } });
90
+ el.dispatchEvent(event);
91
+ }
92
+ function getPortaledContentEl(scope) {
93
+ const contentId = getContentId(scope);
94
+ return getContentEl(scope) ?? scope.getDoc().getElementById(contentId);
95
+ }
96
+ function isTargetWithinMenuTree(target, children) {
97
+ if (!require_dom_query.isHTMLElement(target)) return false;
98
+ for (const id in children) {
99
+ const child = children[id];
100
+ const childContent = getPortaledContentEl(child.scope);
101
+ if (childContent && require_dom_query.contains(childContent, target)) return true;
102
+ const nested = child.refs.get("children");
103
+ if (Object.keys(nested).length > 0 && isTargetWithinMenuTree(target, nested)) return true;
104
+ }
105
+ return false;
106
+ }
107
+ //#endregion
108
+ //#region src/machines/menu/utils.ts
109
+ function closeRootMenu(ctx) {
110
+ let parent = ctx.parent;
111
+ while (parent && parent.context.get("isSubmenu")) parent = parent.refs.get("parent");
112
+ parent?.send({ type: "CLOSE" });
113
+ }
114
+ function isWithinPolygon(polygon, point) {
115
+ if (!polygon) return false;
116
+ return require_polygon.isPointInPolygon(polygon, point);
117
+ }
118
+ function resolveItemId(children, value, scope) {
119
+ const hasChildren = Object.keys(children).length > 0;
120
+ if (!value) return null;
121
+ if (!hasChildren) return getItemId(scope, value);
122
+ for (const id in children) {
123
+ const childMenu = children[id];
124
+ const childTriggerId = getTriggerId(childMenu.scope);
125
+ if (childTriggerId === value) return childTriggerId;
126
+ }
127
+ return getItemId(scope, value);
128
+ }
129
+ function setParentRoutingLock(parent, locked) {
130
+ if (!parent) return;
131
+ parent.refs.set("pointerRoutingLocked", locked);
132
+ parent.context.set("pointerRoutingMode", locked ? "locked" : "interactive");
133
+ }
134
+ function isHighlightedItemSubmenuOpen(parent) {
135
+ const highlighted = parent.context.get("highlightedValue");
136
+ if (!highlighted) return false;
137
+ const children = parent.refs.get("children");
138
+ for (const id in children) {
139
+ const child = children[id];
140
+ if (!child.state.hasTag("open")) continue;
141
+ if (getTriggerId(child.scope) === highlighted) return true;
142
+ }
143
+ return false;
144
+ }
145
+ function unlockParentAfterChildClose(parent, childIsSubmenu) {
146
+ if (!parent) return;
147
+ if (parent.refs.get("pointerRoutingLocked")) return;
148
+ if (childIsSubmenu && isHighlightedItemSubmenuOpen(parent)) return;
149
+ setParentRoutingLock(parent, false);
150
+ }
151
+ function unlockParentOnSubmenuClose(parent) {
152
+ if (!parent) return;
153
+ if (!isHighlightedItemSubmenuOpen(parent)) setParentRoutingLock(parent, false);
154
+ }
155
+ //#endregion
156
+ //#region src/machines/menu/connect.ts
157
+ function connect(service, normalize) {
158
+ const { context, send, state, computed, prop, scope } = service;
159
+ const open = state.hasTag("open");
160
+ const isSubmenu = context.get("isSubmenu");
161
+ const isTypingAhead = computed("isTypingAhead");
162
+ const composite = prop("composite");
163
+ const currentPlacement = context.get("currentPlacement");
164
+ const currentPlacementSide = currentPlacement ? require_popper.getPlacementSide(currentPlacement) : void 0;
165
+ const anchorPoint = context.get("anchorPoint");
166
+ const highlightedValue = context.get("highlightedValue");
167
+ const triggerValue = context.get("triggerValue");
168
+ const popperStyles = require_popper.getPlacementStyles({
169
+ ...prop("positioning"),
170
+ placement: currentPlacement
171
+ });
172
+ function getItemState(props) {
173
+ return {
174
+ id: getItemId(scope, props.value),
175
+ disabled: !!props.disabled,
176
+ highlighted: highlightedValue === props.value
177
+ };
178
+ }
179
+ function getOptionItemProps(props) {
180
+ const valueText = props.valueText ?? props.value;
181
+ return {
182
+ ...props,
183
+ id: props.value,
184
+ valueText
185
+ };
186
+ }
187
+ function getOptionItemState(props) {
188
+ return {
189
+ ...getItemState(getOptionItemProps(props)),
190
+ checked: !!props.checked
191
+ };
192
+ }
193
+ function getItemProps(props) {
194
+ const { closeOnSelect, valueText, value } = props;
195
+ const itemState = getItemState(props);
196
+ const id = getItemId(scope, value);
197
+ return normalize.element({
198
+ ...parts.item.attrs,
199
+ id,
200
+ role: "menuitem",
201
+ "aria-disabled": require_dom_query.ariaAttr(itemState.disabled),
202
+ "data-disabled": require_dom_query.dataAttr(itemState.disabled),
203
+ "data-ownedby": getContentId(scope),
204
+ "data-highlighted": require_dom_query.dataAttr(itemState.highlighted),
205
+ "data-value": value,
206
+ "data-valuetext": valueText,
207
+ onDragStart(event) {
208
+ if (event.currentTarget.matches("a[href]")) event.preventDefault();
209
+ },
210
+ onPointerMove(event) {
211
+ if (itemState.disabled) return;
212
+ if (event.pointerType !== "mouse") return;
213
+ const target = event.currentTarget;
214
+ if (itemState.highlighted) return;
215
+ const point = require_event.getEventPoint(event);
216
+ send({
217
+ type: "ITEM_POINTERMOVE",
218
+ id,
219
+ target,
220
+ closeOnSelect,
221
+ point
222
+ });
223
+ },
224
+ onPointerLeave(event) {
225
+ if (itemState.disabled) return;
226
+ if (event.pointerType !== "mouse") return;
227
+ if (!service.event.previous()?.type.includes("POINTER")) return;
228
+ const target = event.currentTarget;
229
+ send({
230
+ type: "ITEM_POINTERLEAVE",
231
+ id,
232
+ target,
233
+ closeOnSelect
234
+ });
235
+ },
236
+ onPointerDown(event) {
237
+ if (itemState.disabled) return;
238
+ const target = event.currentTarget;
239
+ send({
240
+ type: "ITEM_POINTERDOWN",
241
+ target,
242
+ id,
243
+ closeOnSelect
244
+ });
245
+ },
246
+ onClick(event) {
247
+ if (require_event.isDownloadingEvent(event)) return;
248
+ if (require_event.isOpeningInNewTab(event)) return;
249
+ if (itemState.disabled) return;
250
+ const target = event.currentTarget;
251
+ send({
252
+ type: "ITEM_CLICK",
253
+ target,
254
+ id,
255
+ closeOnSelect
256
+ });
257
+ }
258
+ });
259
+ }
260
+ return {
261
+ highlightedValue,
262
+ open,
263
+ setOpen(nextOpen) {
264
+ if (state.hasTag("open") === nextOpen) return;
265
+ send({ type: nextOpen ? "OPEN" : "CLOSE" });
266
+ },
267
+ triggerValue,
268
+ setTriggerValue(value) {
269
+ send({
270
+ type: "TRIGGER_VALUE.SET",
271
+ value
272
+ });
273
+ },
274
+ setHighlightedValue(value) {
275
+ send({
276
+ type: "HIGHLIGHTED.SET",
277
+ value
278
+ });
279
+ },
280
+ setParent(parent) {
281
+ send({
282
+ type: "PARENT.SET",
283
+ value: parent,
284
+ id: parent.prop("id")
285
+ });
286
+ },
287
+ setChild(child) {
288
+ send({
289
+ type: "CHILD.SET",
290
+ value: child,
291
+ id: child.prop("id")
292
+ });
293
+ },
294
+ reposition(options = {}) {
295
+ send({
296
+ type: "POSITIONING.SET",
297
+ options
298
+ });
299
+ },
300
+ addItemListener(props) {
301
+ const node = scope.getById(props.id);
302
+ if (!node) return;
303
+ const listener = () => props.onSelect?.();
304
+ node.addEventListener(itemSelectEvent, listener);
305
+ return () => node.removeEventListener(itemSelectEvent, listener);
306
+ },
307
+ getContextTriggerProps(props = {}) {
308
+ const { value } = props;
309
+ const current = value == null ? false : triggerValue === value;
310
+ const contextTriggerId = getContextTriggerId(scope, value);
311
+ return normalize.element({
312
+ ...parts.contextTrigger.attrs,
313
+ dir: prop("dir"),
314
+ id: contextTriggerId,
315
+ "data-ownedby": scope.id,
316
+ "data-value": value,
317
+ "data-current": require_dom_query.dataAttr(current),
318
+ "data-state": open ? "open" : "closed",
319
+ onPointerDown(event) {
320
+ if (event.pointerType === "mouse") return;
321
+ const point = require_event.getEventPoint(event);
322
+ send({
323
+ type: "CONTEXT_MENU_START",
324
+ point,
325
+ value
326
+ });
327
+ },
328
+ onPointerCancel(event) {
329
+ if (event.pointerType === "mouse") return;
330
+ send({ type: "CONTEXT_MENU_CANCEL" });
331
+ },
332
+ onPointerMove(event) {
333
+ if (event.pointerType === "mouse") return;
334
+ send({ type: "CONTEXT_MENU_CANCEL" });
335
+ },
336
+ onPointerUp(event) {
337
+ if (event.pointerType === "mouse") return;
338
+ send({ type: "CONTEXT_MENU_CANCEL" });
339
+ },
340
+ onContextMenu(event) {
341
+ const point = require_event.getEventPoint(event);
342
+ send({
343
+ type: open && value != null && !current ? "TRIGGER_VALUE.SET" : "CONTEXT_MENU",
344
+ point,
345
+ value
346
+ });
347
+ event.preventDefault();
348
+ },
349
+ style: {
350
+ WebkitTouchCallout: "none",
351
+ WebkitUserSelect: "none",
352
+ userSelect: "none"
353
+ }
354
+ });
355
+ },
356
+ getTriggerItemProps(childApi) {
357
+ const triggerProps = childApi.getTriggerProps();
358
+ return require_core.mergeProps(getItemProps({ value: triggerProps.id }), triggerProps);
359
+ },
360
+ getTriggerProps(props = {}) {
361
+ const { value } = props;
362
+ const current = value == null ? false : triggerValue === value;
363
+ const triggerId = getTriggerId(scope, value);
364
+ return normalize.button({
365
+ ...isSubmenu ? parts.triggerItem.attrs : parts.trigger.attrs,
366
+ "data-placement": currentPlacement,
367
+ "data-side": currentPlacementSide,
368
+ type: "button",
369
+ dir: prop("dir"),
370
+ id: triggerId,
371
+ ...value != null && {
372
+ "data-ownedby": scope.id,
373
+ "data-value": value,
374
+ "data-current": require_dom_query.dataAttr(current)
375
+ },
376
+ "data-uid": prop("id"),
377
+ "aria-haspopup": composite ? "menu" : "dialog",
378
+ "aria-controls": getContentId(scope),
379
+ "data-controls": getContentId(scope),
380
+ "aria-expanded": value == null ? open : open && current,
381
+ "data-state": open ? "open" : "closed",
382
+ onPointerMove(event) {
383
+ if (event.pointerType !== "mouse") return;
384
+ if (isTargetDisabled(event.currentTarget) || !isSubmenu) return;
385
+ const point = require_event.getEventPoint(event);
386
+ send({
387
+ type: "TRIGGER_POINTERMOVE",
388
+ target: event.currentTarget,
389
+ point
390
+ });
391
+ },
392
+ onPointerLeave(event) {
393
+ if (isTargetDisabled(event.currentTarget)) return;
394
+ if (event.pointerType !== "mouse") return;
395
+ if (!isSubmenu) return;
396
+ setParentRoutingLock(service.refs.get("parent"), true);
397
+ const point = require_event.getEventPoint(event);
398
+ send({
399
+ type: "TRIGGER_POINTERLEAVE",
400
+ target: event.currentTarget,
401
+ point
402
+ });
403
+ },
404
+ onPointerDown(event) {
405
+ if (isTargetDisabled(event.currentTarget)) return;
406
+ if (require_event.isContextMenuEvent(event)) return;
407
+ event.preventDefault();
408
+ },
409
+ onClick(event) {
410
+ if (event.defaultPrevented) return;
411
+ if (isTargetDisabled(event.currentTarget)) return;
412
+ send({
413
+ type: open && value != null && !current ? "TRIGGER_VALUE.SET" : "TRIGGER_CLICK",
414
+ target: event.currentTarget,
415
+ value
416
+ });
417
+ },
418
+ onBlur() {
419
+ send({ type: "TRIGGER_BLUR" });
420
+ },
421
+ onFocus() {
422
+ send({ type: "TRIGGER_FOCUS" });
423
+ },
424
+ onKeyDown(event) {
425
+ if (event.defaultPrevented) return;
426
+ const exec = {
427
+ ArrowDown() {
428
+ send({
429
+ type: "ARROW_DOWN",
430
+ value
431
+ });
432
+ },
433
+ ArrowUp() {
434
+ send({
435
+ type: "ARROW_UP",
436
+ value
437
+ });
438
+ },
439
+ Enter() {
440
+ send({
441
+ type: "ARROW_DOWN",
442
+ src: "enter",
443
+ value
444
+ });
445
+ },
446
+ Space() {
447
+ send({
448
+ type: "ARROW_DOWN",
449
+ src: "space",
450
+ value
451
+ });
452
+ }
453
+ }[require_event.getEventKey(event, {
454
+ orientation: "vertical",
455
+ dir: prop("dir")
456
+ })];
457
+ if (exec) {
458
+ event.preventDefault();
459
+ exec(event);
460
+ }
461
+ }
462
+ });
463
+ },
464
+ getIndicatorProps() {
465
+ return normalize.element({
466
+ ...parts.indicator.attrs,
467
+ dir: prop("dir"),
468
+ "data-state": open ? "open" : "closed"
469
+ });
470
+ },
471
+ getPositionerProps() {
472
+ return normalize.element({
473
+ ...parts.positioner.attrs,
474
+ dir: prop("dir"),
475
+ id: getPositionerId(scope),
476
+ style: popperStyles.floating
477
+ });
478
+ },
479
+ getArrowProps() {
480
+ return normalize.element({
481
+ id: getArrowId(scope),
482
+ ...parts.arrow.attrs,
483
+ dir: prop("dir"),
484
+ style: popperStyles.arrow
485
+ });
486
+ },
487
+ getArrowTipProps() {
488
+ return normalize.element({
489
+ ...parts.arrowTip.attrs,
490
+ dir: prop("dir"),
491
+ style: popperStyles.arrowTip
492
+ });
493
+ },
494
+ getContentProps() {
495
+ return normalize.element({
496
+ ...parts.content.attrs,
497
+ id: getContentId(scope),
498
+ "aria-label": prop("aria-label"),
499
+ hidden: !open,
500
+ "data-state": open ? "open" : "closed",
501
+ role: composite ? "menu" : "dialog",
502
+ tabIndex: 0,
503
+ dir: prop("dir"),
504
+ "aria-activedescendant": computed("highlightedId") || void 0,
505
+ "aria-labelledby": anchorPoint ? getContextTriggerId(scope, triggerValue ?? void 0) : getTriggerId(scope, triggerValue ?? void 0),
506
+ "data-placement": currentPlacement,
507
+ "data-side": currentPlacementSide,
508
+ onPointerEnter(event) {
509
+ if (event.pointerType !== "mouse") return;
510
+ send({ type: "MENU_POINTERENTER" });
511
+ },
512
+ onKeyDown(event) {
513
+ if (event.defaultPrevented) return;
514
+ if (!require_dom_query.contains(event.currentTarget, require_event.getEventTarget(event))) return;
515
+ const target = require_event.getEventTarget(event);
516
+ if (!(target?.closest("[role=menu]") === event.currentTarget || target === event.currentTarget)) return;
517
+ if (event.key === "Tab") {
518
+ if (!require_initial_focus.isValidTabEvent(event)) {
519
+ event.preventDefault();
520
+ return;
521
+ }
522
+ }
523
+ const keyMap = {
524
+ ArrowDown() {
525
+ send({ type: "ARROW_DOWN" });
526
+ },
527
+ ArrowUp() {
528
+ send({ type: "ARROW_UP" });
529
+ },
530
+ ArrowLeft() {
531
+ send({ type: "ARROW_LEFT" });
532
+ },
533
+ ArrowRight() {
534
+ send({ type: "ARROW_RIGHT" });
535
+ },
536
+ Enter() {
537
+ send({ type: "ENTER" });
538
+ },
539
+ Space(event) {
540
+ if (isTypingAhead) send({
541
+ type: "TYPEAHEAD",
542
+ key: event.key
543
+ });
544
+ else keyMap.Enter?.(event);
545
+ },
546
+ Home() {
547
+ send({ type: "HOME" });
548
+ },
549
+ End() {
550
+ send({ type: "END" });
551
+ }
552
+ };
553
+ const exec = keyMap[require_event.getEventKey(event, { dir: prop("dir") })];
554
+ if (exec) {
555
+ exec(event);
556
+ event.stopPropagation();
557
+ event.preventDefault();
558
+ return;
559
+ }
560
+ if (!prop("typeahead")) return;
561
+ if (!require_event.isPrintableKey(event)) return;
562
+ if (require_event.isModifierKey(event)) return;
563
+ if (require_dom_query.isEditableElement(target)) return;
564
+ send({
565
+ type: "TYPEAHEAD",
566
+ key: event.key
567
+ });
568
+ event.preventDefault();
569
+ }
570
+ });
571
+ },
572
+ getSeparatorProps() {
573
+ return normalize.element({
574
+ ...parts.separator.attrs,
575
+ role: "separator",
576
+ dir: prop("dir"),
577
+ "aria-orientation": "horizontal"
578
+ });
579
+ },
580
+ getItemState,
581
+ getItemProps,
582
+ getOptionItemState,
583
+ getOptionItemProps(props) {
584
+ const { type, disabled, closeOnSelect } = props;
585
+ const option = getOptionItemProps(props);
586
+ const itemState = getOptionItemState(props);
587
+ return {
588
+ ...getItemProps(option),
589
+ ...normalize.element({
590
+ "data-type": type,
591
+ ...parts.item.attrs,
592
+ dir: prop("dir"),
593
+ "data-value": option.value,
594
+ role: `menuitem${type}`,
595
+ "aria-checked": !!itemState.checked,
596
+ "data-state": itemState.checked ? "checked" : "unchecked",
597
+ onClick(event) {
598
+ if (disabled) return;
599
+ if (require_event.isDownloadingEvent(event)) return;
600
+ if (require_event.isOpeningInNewTab(event)) return;
601
+ const target = event.currentTarget;
602
+ send({
603
+ type: "ITEM_CLICK",
604
+ target,
605
+ option,
606
+ closeOnSelect
607
+ });
608
+ }
609
+ })
610
+ };
611
+ },
612
+ getItemIndicatorProps(props) {
613
+ const itemState = getOptionItemState(require_utils.cast(props));
614
+ const dataState = itemState.checked ? "checked" : "unchecked";
615
+ return normalize.element({
616
+ ...parts.itemIndicator.attrs,
617
+ dir: prop("dir"),
618
+ "data-disabled": require_dom_query.dataAttr(itemState.disabled),
619
+ "data-highlighted": require_dom_query.dataAttr(itemState.highlighted),
620
+ "data-state": require_utils.hasProp(props, "checked") ? dataState : void 0,
621
+ hidden: require_utils.hasProp(props, "checked") ? !itemState.checked : void 0
622
+ });
623
+ },
624
+ getItemTextProps(props) {
625
+ const itemState = getOptionItemState(require_utils.cast(props));
626
+ const dataState = itemState.checked ? "checked" : "unchecked";
627
+ return normalize.element({
628
+ ...parts.itemText.attrs,
629
+ dir: prop("dir"),
630
+ "data-disabled": require_dom_query.dataAttr(itemState.disabled),
631
+ "data-highlighted": require_dom_query.dataAttr(itemState.highlighted),
632
+ "data-state": require_utils.hasProp(props, "checked") ? dataState : void 0
633
+ });
634
+ },
635
+ getItemGroupLabelProps(props) {
636
+ return normalize.element({
637
+ ...parts.itemGroupLabel.attrs,
638
+ id: getGroupLabelId(scope, props.htmlFor),
639
+ dir: prop("dir")
640
+ });
641
+ },
642
+ getItemGroupProps(props) {
643
+ return normalize.element({
644
+ id: getGroupId(scope, props.id),
645
+ ...parts.itemGroup.attrs,
646
+ dir: prop("dir"),
647
+ "aria-labelledby": getGroupLabelId(scope, props.id),
648
+ role: "group"
649
+ });
650
+ }
651
+ };
652
+ }
653
+ //#endregion
654
+ //#region src/machines/menu/machine.ts
655
+ const { not, and, or } = require_core.createGuards();
656
+ const machine = require_core.createMachine({
657
+ props({ props }) {
658
+ return {
659
+ closeOnSelect: true,
660
+ typeahead: true,
661
+ composite: true,
662
+ loopFocus: false,
663
+ navigate(details) {
664
+ require_navigate.clickIfLink(details.node);
665
+ },
666
+ ...props,
667
+ positioning: {
668
+ placement: "bottom-start",
669
+ gutter: 8,
670
+ ...props.positioning
671
+ }
672
+ };
673
+ },
674
+ initialState({ prop }) {
675
+ return prop("open") || prop("defaultOpen") ? "open" : "idle";
676
+ },
677
+ context({ bindable, prop, scope }) {
678
+ return {
679
+ highlightedValue: bindable(() => ({
680
+ defaultValue: prop("defaultHighlightedValue") || null,
681
+ value: prop("highlightedValue"),
682
+ onChange(value) {
683
+ prop("onHighlightChange")?.({ highlightedValue: value });
684
+ }
685
+ })),
686
+ lastHighlightedValue: bindable(() => ({ defaultValue: null })),
687
+ currentPlacement: bindable(() => ({ defaultValue: void 0 })),
688
+ intentPolygon: bindable(() => ({ defaultValue: null })),
689
+ anchorPoint: bindable(() => ({
690
+ defaultValue: null,
691
+ hash(value) {
692
+ return `x: ${value?.x}, y: ${value?.y}`;
693
+ }
694
+ })),
695
+ isSubmenu: bindable(() => ({ defaultValue: false })),
696
+ triggerValue: bindable(() => ({
697
+ defaultValue: prop("defaultTriggerValue") ?? null,
698
+ value: prop("triggerValue"),
699
+ onChange(value) {
700
+ const onTriggerValueChange = prop("onTriggerValueChange");
701
+ if (!onTriggerValueChange) return;
702
+ onTriggerValueChange({
703
+ value,
704
+ triggerElement: getActiveTriggerEl(scope, value)
705
+ });
706
+ }
707
+ })),
708
+ pointerRoutingMode: bindable(() => ({ defaultValue: "interactive" }))
709
+ };
710
+ },
711
+ refs() {
712
+ return {
713
+ parent: null,
714
+ children: {},
715
+ pointerRoutingLocked: false,
716
+ typeaheadState: { ...require_dom_query.getByTypeahead.defaultOptions },
717
+ positioningOverride: {}
718
+ };
719
+ },
720
+ computed: {
721
+ isRtl: ({ prop }) => prop("dir") === "rtl",
722
+ isTypingAhead: ({ refs }) => refs.get("typeaheadState").keysSoFar !== "",
723
+ highlightedId: ({ context, scope, refs }) => resolveItemId(refs.get("children"), context.get("highlightedValue"), scope)
724
+ },
725
+ watch({ track, action, context, prop }) {
726
+ track([() => context.get("isSubmenu")], () => {
727
+ action(["setSubmenuPlacement"]);
728
+ });
729
+ track([() => context.hash("anchorPoint")], () => {
730
+ if (!context.get("anchorPoint")) return;
731
+ action(["reposition"]);
732
+ });
733
+ track([() => prop("open")], () => {
734
+ action(["toggleVisibility"]);
735
+ });
736
+ },
737
+ on: {
738
+ "TRIGGER_VALUE.SET": { actions: [
739
+ "setTriggerValue",
740
+ "setAnchorPoint",
741
+ "reposition",
742
+ "focusMenu"
743
+ ] },
744
+ "PARENT.SET": { actions: ["setParentMenu"] },
745
+ "CHILD.SET": { actions: ["setChildMenu"] },
746
+ OPEN: [{
747
+ guard: "isOpenControlled",
748
+ actions: ["setTriggerValue", "invokeOnOpen"]
749
+ }, {
750
+ target: "open",
751
+ actions: ["setTriggerValue", "invokeOnOpen"]
752
+ }],
753
+ OPEN_AUTOFOCUS: [{
754
+ guard: "isOpenControlled",
755
+ actions: ["setTriggerValue", "invokeOnOpen"]
756
+ }, {
757
+ target: "open",
758
+ actions: [
759
+ "setTriggerValue",
760
+ "highlightFirstItem",
761
+ "invokeOnOpen"
762
+ ]
763
+ }],
764
+ CLOSE: [{
765
+ guard: "isOpenControlled",
766
+ actions: ["invokeOnClose", "releaseParentRoutingLock"]
767
+ }, {
768
+ target: "closed",
769
+ actions: [
770
+ "invokeOnClose",
771
+ "releaseParentRoutingLock",
772
+ "focusTrigger"
773
+ ]
774
+ }],
775
+ "HIGHLIGHTED.RESTORE": { actions: ["restoreHighlightedItem"] },
776
+ "HIGHLIGHTED.SET": { actions: ["setHighlightedItem"] },
777
+ "HIGHLIGHTED.SUGGEST": { actions: ["suggestHighlightedItem"] }
778
+ },
779
+ states: {
780
+ idle: {
781
+ tags: ["closed"],
782
+ on: {
783
+ "CONTROLLED.OPEN": { target: "open" },
784
+ "CONTROLLED.CLOSE": { target: "closed" },
785
+ CONTEXT_MENU_START: {
786
+ target: "opening:contextmenu",
787
+ actions: ["setAnchorPoint", "setTriggerValue"]
788
+ },
789
+ CONTEXT_MENU: [{
790
+ guard: "isOpenControlled",
791
+ actions: [
792
+ "setAnchorPoint",
793
+ "setTriggerValue",
794
+ "invokeOnOpen"
795
+ ]
796
+ }, {
797
+ target: "open",
798
+ actions: [
799
+ "setAnchorPoint",
800
+ "setTriggerValue",
801
+ "invokeOnOpen"
802
+ ]
803
+ }],
804
+ TRIGGER_CLICK: [{
805
+ guard: "isOpenControlled",
806
+ actions: ["invokeOnOpen", "setTriggerValue"]
807
+ }, {
808
+ target: "open",
809
+ actions: ["invokeOnOpen", "setTriggerValue"]
810
+ }],
811
+ TRIGGER_FOCUS: {
812
+ guard: not("isSubmenu"),
813
+ target: "closed"
814
+ },
815
+ TRIGGER_POINTERMOVE: {
816
+ guard: "isSubmenu",
817
+ target: "opening"
818
+ }
819
+ }
820
+ },
821
+ "opening:contextmenu": {
822
+ tags: ["closed"],
823
+ effects: ["waitForLongPress"],
824
+ on: {
825
+ "CONTROLLED.OPEN": {
826
+ target: "open",
827
+ actions: ["reposition"]
828
+ },
829
+ "CONTROLLED.CLOSE": {
830
+ target: "closed",
831
+ actions: ["focusTrigger"]
832
+ },
833
+ CONTEXT_MENU_CANCEL: [{
834
+ guard: "isOpenControlled",
835
+ actions: ["invokeOnClose", "releaseParentRoutingLock"]
836
+ }, {
837
+ target: "closed",
838
+ actions: [
839
+ "invokeOnClose",
840
+ "releaseParentRoutingLock",
841
+ "focusTrigger"
842
+ ]
843
+ }],
844
+ "LONG_PRESS.OPEN": [{
845
+ guard: "isOpenControlled",
846
+ actions: ["setTriggerValue", "invokeOnOpen"]
847
+ }, {
848
+ target: "open",
849
+ actions: [
850
+ "setTriggerValue",
851
+ "invokeOnOpen",
852
+ "reposition"
853
+ ]
854
+ }]
855
+ }
856
+ },
857
+ opening: {
858
+ tags: ["closed"],
859
+ effects: ["waitForOpenDelay"],
860
+ on: {
861
+ "CONTROLLED.OPEN": { target: "open" },
862
+ "CONTROLLED.CLOSE": {
863
+ target: "closed",
864
+ actions: ["focusTrigger"]
865
+ },
866
+ BLUR: [{
867
+ guard: "isOpenControlled",
868
+ actions: ["invokeOnClose", "releaseParentRoutingLock"]
869
+ }, {
870
+ target: "closed",
871
+ actions: [
872
+ "invokeOnClose",
873
+ "releaseParentRoutingLock",
874
+ "focusTrigger"
875
+ ]
876
+ }],
877
+ TRIGGER_POINTERLEAVE: [{
878
+ guard: "isOpenControlled",
879
+ actions: ["invokeOnClose", "releaseParentRoutingLock"]
880
+ }, {
881
+ target: "closed",
882
+ actions: [
883
+ "invokeOnClose",
884
+ "releaseParentRoutingLock",
885
+ "focusTrigger"
886
+ ]
887
+ }],
888
+ "DELAY.OPEN": [{
889
+ guard: "isOpenControlled",
890
+ actions: ["invokeOnOpen"]
891
+ }, {
892
+ target: "open",
893
+ actions: ["invokeOnOpen"]
894
+ }]
895
+ }
896
+ },
897
+ closing: {
898
+ tags: ["open"],
899
+ effects: [
900
+ "trackPointerMove",
901
+ "trackInteractOutside",
902
+ "waitForCloseDelay"
903
+ ],
904
+ on: {
905
+ "CONTROLLED.OPEN": { target: "open" },
906
+ "CONTROLLED.CLOSE": {
907
+ target: "closed",
908
+ actions: ["focusParentMenu", "restoreParentHighlightedItem"]
909
+ },
910
+ MENU_POINTERENTER: {
911
+ target: "open",
912
+ actions: ["clearIntentPolygon"]
913
+ },
914
+ POINTER_MOVED_AWAY_FROM_SUBMENU: [{
915
+ guard: "isOpenControlled",
916
+ actions: ["invokeOnClose", "releaseParentRoutingLock"]
917
+ }, {
918
+ target: "closed",
919
+ actions: ["focusParentMenu", "restoreParentHighlightedItem"]
920
+ }],
921
+ "DELAY.CLOSE": [{
922
+ guard: "isOpenControlled",
923
+ actions: ["invokeOnClose", "releaseParentRoutingLock"]
924
+ }, {
925
+ target: "closed",
926
+ actions: [
927
+ "focusParentMenu",
928
+ "restoreParentHighlightedItem",
929
+ "invokeOnClose",
930
+ "releaseParentRoutingLock"
931
+ ]
932
+ }]
933
+ }
934
+ },
935
+ closed: {
936
+ tags: ["closed"],
937
+ entry: [
938
+ "clearHighlightedItem",
939
+ "unlockParentOnClose",
940
+ "clearAnchorPoint"
941
+ ],
942
+ on: {
943
+ "CONTROLLED.OPEN": [
944
+ {
945
+ guard: or("isOpenAutoFocusEvent", "isArrowDownEvent"),
946
+ target: "open",
947
+ actions: ["highlightFirstItem"]
948
+ },
949
+ {
950
+ guard: "isArrowUpEvent",
951
+ target: "open",
952
+ actions: ["highlightLastItem"]
953
+ },
954
+ { target: "open" }
955
+ ],
956
+ CONTEXT_MENU_START: {
957
+ target: "opening:contextmenu",
958
+ actions: ["setAnchorPoint", "setTriggerValue"]
959
+ },
960
+ CONTEXT_MENU: [{
961
+ guard: "isOpenControlled",
962
+ actions: [
963
+ "setAnchorPoint",
964
+ "setTriggerValue",
965
+ "invokeOnOpen"
966
+ ]
967
+ }, {
968
+ target: "open",
969
+ actions: [
970
+ "setAnchorPoint",
971
+ "setTriggerValue",
972
+ "invokeOnOpen"
973
+ ]
974
+ }],
975
+ TRIGGER_CLICK: [{
976
+ guard: "isOpenControlled",
977
+ actions: ["invokeOnOpen", "setTriggerValue"]
978
+ }, {
979
+ target: "open",
980
+ actions: ["invokeOnOpen", "setTriggerValue"]
981
+ }],
982
+ TRIGGER_POINTERMOVE: {
983
+ guard: "isTriggerItem",
984
+ target: "opening"
985
+ },
986
+ TRIGGER_BLUR: { target: "idle" },
987
+ ARROW_DOWN: [{
988
+ guard: "isOpenControlled",
989
+ actions: ["setTriggerValue", "invokeOnOpen"]
990
+ }, {
991
+ target: "open",
992
+ actions: [
993
+ "setTriggerValue",
994
+ "highlightFirstItem",
995
+ "invokeOnOpen"
996
+ ]
997
+ }],
998
+ ARROW_UP: [{
999
+ guard: "isOpenControlled",
1000
+ actions: ["setTriggerValue", "invokeOnOpen"]
1001
+ }, {
1002
+ target: "open",
1003
+ actions: [
1004
+ "setTriggerValue",
1005
+ "highlightLastItem",
1006
+ "invokeOnOpen"
1007
+ ]
1008
+ }]
1009
+ }
1010
+ },
1011
+ open: {
1012
+ tags: ["open"],
1013
+ effects: [
1014
+ "trackInteractOutside",
1015
+ "trackFocusVisible",
1016
+ "trackPositioning",
1017
+ "scrollToHighlightedItem"
1018
+ ],
1019
+ entry: ["focusMenu", "unlockParentOnOpen"],
1020
+ on: {
1021
+ "CONTROLLED.CLOSE": [{
1022
+ target: "closed",
1023
+ guard: "isArrowLeftEvent",
1024
+ actions: ["focusParentMenu"]
1025
+ }, {
1026
+ target: "closed",
1027
+ actions: ["focusTrigger"]
1028
+ }],
1029
+ TRIGGER_CLICK: [{
1030
+ guard: and(not("isTriggerItem"), "isOpenControlled"),
1031
+ actions: ["invokeOnClose", "releaseParentRoutingLock"]
1032
+ }, {
1033
+ guard: not("isTriggerItem"),
1034
+ target: "closed",
1035
+ actions: [
1036
+ "invokeOnClose",
1037
+ "releaseParentRoutingLock",
1038
+ "focusTrigger"
1039
+ ]
1040
+ }],
1041
+ CONTEXT_MENU: { actions: [
1042
+ "setAnchorPoint",
1043
+ "setTriggerValue",
1044
+ "focusMenu"
1045
+ ] },
1046
+ ARROW_UP: { actions: ["highlightPrevItem", "focusMenu"] },
1047
+ ARROW_DOWN: { actions: ["highlightNextItem", "focusMenu"] },
1048
+ ARROW_LEFT: [{
1049
+ guard: and("isSubmenu", "isOpenControlled"),
1050
+ actions: ["invokeOnClose", "releaseParentRoutingLock"]
1051
+ }, {
1052
+ guard: "isSubmenu",
1053
+ target: "closed",
1054
+ actions: [
1055
+ "focusParentMenu",
1056
+ "invokeOnClose",
1057
+ "releaseParentRoutingLock"
1058
+ ]
1059
+ }],
1060
+ HOME: { actions: ["highlightFirstItem", "focusMenu"] },
1061
+ END: { actions: ["highlightLastItem", "focusMenu"] },
1062
+ ARROW_RIGHT: {
1063
+ guard: "isTriggerItemHighlighted",
1064
+ actions: ["openSubmenu"]
1065
+ },
1066
+ ENTER: [{
1067
+ guard: "isTriggerItemHighlighted",
1068
+ actions: ["openSubmenu"]
1069
+ }, { actions: ["clickHighlightedItem"] }],
1070
+ ITEM_POINTERMOVE: [{
1071
+ guard: not("isPointerRoutingLocked"),
1072
+ actions: [
1073
+ "setHighlightedItem",
1074
+ "focusMenu",
1075
+ "closeSiblingMenus"
1076
+ ]
1077
+ }, { actions: ["setLastHighlightedItem", "closeSiblingMenus"] }],
1078
+ ITEM_POINTERLEAVE: {
1079
+ guard: and(not("isPointerRoutingLocked"), not("isTriggerItem")),
1080
+ actions: ["clearHighlightedItem"]
1081
+ },
1082
+ ITEM_CLICK: [
1083
+ {
1084
+ guard: and(not("isTriggerItemHighlighted"), not("isHighlightedItemEditable"), "closeOnSelect", "isOpenControlled"),
1085
+ actions: [
1086
+ "invokeOnSelect",
1087
+ "setOptionState",
1088
+ "closeRootMenu",
1089
+ "invokeOnClose",
1090
+ "releaseParentRoutingLock"
1091
+ ]
1092
+ },
1093
+ {
1094
+ guard: and(not("isTriggerItemHighlighted"), not("isHighlightedItemEditable"), "closeOnSelect"),
1095
+ target: "closed",
1096
+ actions: [
1097
+ "invokeOnSelect",
1098
+ "setOptionState",
1099
+ "closeRootMenu",
1100
+ "invokeOnClose",
1101
+ "releaseParentRoutingLock",
1102
+ "focusTrigger"
1103
+ ]
1104
+ },
1105
+ {
1106
+ guard: and(not("isTriggerItemHighlighted"), not("isHighlightedItemEditable")),
1107
+ actions: ["invokeOnSelect", "setOptionState"]
1108
+ },
1109
+ { actions: ["setHighlightedItem"] }
1110
+ ],
1111
+ TRIGGER_POINTERMOVE: {
1112
+ guard: "isTriggerItem",
1113
+ actions: ["setIntentPolygon"]
1114
+ },
1115
+ TRIGGER_POINTERLEAVE: {
1116
+ target: "closing",
1117
+ actions: ["setIntentPolygon"]
1118
+ },
1119
+ ITEM_POINTERDOWN: { actions: ["setHighlightedItem"] },
1120
+ TYPEAHEAD: { actions: ["highlightMatchedItem"] },
1121
+ FOCUS_MENU: { actions: ["focusMenu"] },
1122
+ "POSITIONING.SET": { actions: ["reposition"] }
1123
+ }
1124
+ }
1125
+ },
1126
+ implementations: {
1127
+ guards: {
1128
+ closeOnSelect: ({ prop, event }) => !!(event?.closeOnSelect ?? prop("closeOnSelect")),
1129
+ isTriggerItem: ({ event }) => isTriggerItem(event.target),
1130
+ isTriggerItemHighlighted: ({ event, scope, computed }) => {
1131
+ return !!(event.target ?? scope.getById(computed("highlightedId")))?.hasAttribute("data-controls");
1132
+ },
1133
+ isSubmenu: ({ context }) => context.get("isSubmenu"),
1134
+ isPointerRoutingLocked: ({ refs }) => refs.get("pointerRoutingLocked"),
1135
+ isHighlightedItemEditable: ({ scope, computed }) => require_dom_query.isEditableElement(scope.getById(computed("highlightedId"))),
1136
+ isOpenControlled: ({ prop }) => prop("open") !== void 0,
1137
+ isArrowLeftEvent: ({ event }) => event.previousEvent?.type === "ARROW_LEFT",
1138
+ isArrowUpEvent: ({ event }) => event.previousEvent?.type === "ARROW_UP",
1139
+ isArrowDownEvent: ({ event }) => event.previousEvent?.type === "ARROW_DOWN",
1140
+ isOpenAutoFocusEvent: ({ event }) => event.previousEvent?.type === "OPEN_AUTOFOCUS"
1141
+ },
1142
+ effects: {
1143
+ waitForOpenDelay({ send }) {
1144
+ const timer = setTimeout(() => {
1145
+ send({ type: "DELAY.OPEN" });
1146
+ }, 200);
1147
+ return () => clearTimeout(timer);
1148
+ },
1149
+ waitForCloseDelay({ send }) {
1150
+ const timer = setTimeout(() => {
1151
+ send({ type: "DELAY.CLOSE" });
1152
+ }, 100);
1153
+ return () => clearTimeout(timer);
1154
+ },
1155
+ waitForLongPress({ send }) {
1156
+ const timer = setTimeout(() => {
1157
+ send({ type: "LONG_PRESS.OPEN" });
1158
+ }, 700);
1159
+ return () => clearTimeout(timer);
1160
+ },
1161
+ trackFocusVisible({ scope }) {
1162
+ return require_focus_visible.trackFocusVisible({ root: scope.getRootNode?.() });
1163
+ },
1164
+ trackPositioning({ context, prop, scope, refs }) {
1165
+ if (getContextTriggerEl(scope) || getContextTriggerEls(scope).length > 0) return;
1166
+ const positioning = {
1167
+ ...prop("positioning"),
1168
+ ...refs.get("positioningOverride")
1169
+ };
1170
+ context.set("currentPlacement", positioning.placement);
1171
+ const getPositionerEl$1 = () => getPositionerEl(scope);
1172
+ const getTriggerEl = () => getActiveTriggerEl(scope, context.get("triggerValue"));
1173
+ return require_popper.getPlacement(getTriggerEl, getPositionerEl$1, {
1174
+ ...positioning,
1175
+ defer: true,
1176
+ onComplete(data) {
1177
+ context.set("currentPlacement", data.placement);
1178
+ }
1179
+ });
1180
+ },
1181
+ trackInteractOutside({ refs, scope, prop, context, send }) {
1182
+ const getContentEl$1 = () => getContentEl(scope);
1183
+ let restoreFocus = true;
1184
+ const isWithinAnyContextTrigger = (target) => {
1185
+ return getContextTriggerEls(scope).some((el) => require_dom_query.contains(el, target));
1186
+ };
1187
+ return require_dismissable.trackDismissableElement(getContentEl$1, {
1188
+ type: "menu",
1189
+ defer: true,
1190
+ exclude: [getTriggerEl(scope), ...getTriggerEls(scope)].filter(Boolean),
1191
+ onInteractOutside: prop("onInteractOutside"),
1192
+ onRequestDismiss: prop("onRequestDismiss"),
1193
+ onFocusOutside(event) {
1194
+ prop("onFocusOutside")?.(event);
1195
+ const target = require_event.getEventTarget(event.detail.originalEvent);
1196
+ if (isWithinAnyContextTrigger(target)) {
1197
+ event.preventDefault();
1198
+ return;
1199
+ }
1200
+ if (isTargetWithinMenuTree(target, refs.get("children"))) {
1201
+ event.preventDefault();
1202
+ return;
1203
+ }
1204
+ },
1205
+ onEscapeKeyDown(event) {
1206
+ prop("onEscapeKeyDown")?.(event);
1207
+ if (context.get("isSubmenu")) event.preventDefault();
1208
+ closeRootMenu({ parent: refs.get("parent") });
1209
+ },
1210
+ onPointerDownOutside(event) {
1211
+ prop("onPointerDownOutside")?.(event);
1212
+ const target = require_event.getEventTarget(event.detail.originalEvent);
1213
+ if (isWithinAnyContextTrigger(target) && event.detail.contextmenu) {
1214
+ event.preventDefault();
1215
+ return;
1216
+ }
1217
+ restoreFocus = !event.detail.focusable;
1218
+ },
1219
+ onDismiss() {
1220
+ send({
1221
+ type: "CLOSE",
1222
+ src: "interact-outside",
1223
+ restoreFocus
1224
+ });
1225
+ }
1226
+ });
1227
+ },
1228
+ trackPointerMove({ context, scope, send, refs }) {
1229
+ const parent = refs.get("parent");
1230
+ if (!parent) return;
1231
+ setParentRoutingLock(parent, true);
1232
+ return require_event.addDomEvent(scope.getDoc(), "pointermove", (e) => {
1233
+ if (!isWithinPolygon(context.get("intentPolygon"), {
1234
+ x: e.clientX,
1235
+ y: e.clientY
1236
+ })) {
1237
+ send({ type: "POINTER_MOVED_AWAY_FROM_SUBMENU" });
1238
+ setParentRoutingLock(parent, false);
1239
+ }
1240
+ });
1241
+ },
1242
+ scrollToHighlightedItem({ scope, computed }) {
1243
+ const exec = () => {
1244
+ if (require_focus_visible.getInteractionModality() === "pointer") return;
1245
+ require_scroll.scrollIntoView(scope.getById(computed("highlightedId")), {
1246
+ rootEl: getContentEl(scope),
1247
+ block: "nearest"
1248
+ });
1249
+ };
1250
+ require_raf.raf(() => {
1251
+ require_focus_visible.setInteractionModality("virtual");
1252
+ exec();
1253
+ });
1254
+ const contentEl = () => getContentEl(scope);
1255
+ return require_mutation_observer.observeAttributes(contentEl, {
1256
+ defer: true,
1257
+ attributes: ["aria-activedescendant"],
1258
+ callback: exec
1259
+ });
1260
+ }
1261
+ },
1262
+ actions: {
1263
+ setAnchorPoint({ context, event }) {
1264
+ context.set("anchorPoint", (prev) => require_equal.isEqual(prev, event.point) ? prev : event.point);
1265
+ },
1266
+ setSubmenuPlacement({ context, computed, refs }) {
1267
+ if (!context.get("isSubmenu")) return;
1268
+ const placement = computed("isRtl") ? "left-start" : "right-start";
1269
+ refs.set("positioningOverride", {
1270
+ placement,
1271
+ gutter: 0
1272
+ });
1273
+ },
1274
+ reposition({ context, scope, prop, event, refs }) {
1275
+ const getPositionerEl$2 = () => getPositionerEl(scope);
1276
+ const anchorPoint = event.point ?? context.get("anchorPoint");
1277
+ const getAnchorRect = anchorPoint ? () => ({
1278
+ width: 0,
1279
+ height: 0,
1280
+ ...anchorPoint
1281
+ }) : void 0;
1282
+ const positioning = {
1283
+ ...prop("positioning"),
1284
+ ...refs.get("positioningOverride")
1285
+ };
1286
+ const triggerValue = event.value ?? context.get("triggerValue");
1287
+ const getTriggerEl = () => getActiveTriggerEl(scope, triggerValue);
1288
+ require_popper.getPlacement(getTriggerEl, getPositionerEl$2, {
1289
+ ...positioning,
1290
+ defer: true,
1291
+ getAnchorRect,
1292
+ ...event.options,
1293
+ listeners: false,
1294
+ onComplete(data) {
1295
+ context.set("currentPlacement", data.placement);
1296
+ }
1297
+ });
1298
+ },
1299
+ setOptionState({ event }) {
1300
+ if (!event.option) return;
1301
+ const { checked, onCheckedChange, type } = event.option;
1302
+ if (type === "radio") onCheckedChange?.(true);
1303
+ else if (type === "checkbox") onCheckedChange?.(!checked);
1304
+ },
1305
+ clickHighlightedItem({ scope, computed, prop, context }) {
1306
+ const itemEl = scope.getById(computed("highlightedId"));
1307
+ if (!itemEl || itemEl.dataset.disabled) return;
1308
+ const highlightedValue = context.get("highlightedValue");
1309
+ if (require_dom_query.isAnchorElement(itemEl)) prop("navigate")?.({
1310
+ value: highlightedValue,
1311
+ node: itemEl,
1312
+ href: itemEl.href
1313
+ });
1314
+ else queueMicrotask(() => itemEl.click());
1315
+ },
1316
+ setIntentPolygon({ context, scope, event }) {
1317
+ const menu = getContentEl(scope);
1318
+ const placement = context.get("currentPlacement");
1319
+ if (!menu || !placement) return;
1320
+ const polygon = require_polygon.getElementPolygon(menu.getBoundingClientRect(), placement);
1321
+ if (!polygon) return;
1322
+ const bleed = require_popper.getPlacementSide(placement) === "right" ? -5 : 5;
1323
+ context.set("intentPolygon", [{
1324
+ ...event.point,
1325
+ x: event.point.x + bleed
1326
+ }, ...polygon]);
1327
+ },
1328
+ clearIntentPolygon({ context }) {
1329
+ context.set("intentPolygon", null);
1330
+ },
1331
+ clearAnchorPoint({ context }) {
1332
+ context.set("anchorPoint", null);
1333
+ },
1334
+ unlockParentOnOpen({ refs, context, scope }) {
1335
+ const parent = refs.get("parent");
1336
+ if (context.get("isSubmenu")) {
1337
+ const value = getTriggerId(scope);
1338
+ parent?.send({
1339
+ type: "HIGHLIGHTED.SUGGEST",
1340
+ value
1341
+ });
1342
+ }
1343
+ setParentRoutingLock(parent, false);
1344
+ },
1345
+ unlockParentOnClose({ refs, context }) {
1346
+ unlockParentAfterChildClose(refs.get("parent"), context.get("isSubmenu"));
1347
+ },
1348
+ setHighlightedItem({ context, event }) {
1349
+ const value = event.value || getItemValue(event.target);
1350
+ context.set("highlightedValue", value);
1351
+ },
1352
+ clearHighlightedItem({ context }) {
1353
+ context.set("highlightedValue", null);
1354
+ },
1355
+ focusMenu({ scope }) {
1356
+ require_raf.raf(() => {
1357
+ const contentEl = getContentEl(scope);
1358
+ require_initial_focus.getInitialFocus({
1359
+ root: contentEl,
1360
+ enabled: !require_dom_query.contains(contentEl, scope.getActiveElement()),
1361
+ filter(node) {
1362
+ return !node.role?.startsWith("menuitem");
1363
+ }
1364
+ })?.focus({ preventScroll: true });
1365
+ });
1366
+ },
1367
+ highlightFirstItem({ context, scope }) {
1368
+ (getContentEl(scope) ? queueMicrotask : require_raf.raf)(() => {
1369
+ const first = getFirstEl(scope);
1370
+ if (!first) return;
1371
+ context.set("highlightedValue", getItemValue(first));
1372
+ });
1373
+ },
1374
+ highlightLastItem({ context, scope }) {
1375
+ (getContentEl(scope) ? queueMicrotask : require_raf.raf)(() => {
1376
+ const last = getLastEl(scope);
1377
+ if (!last) return;
1378
+ context.set("highlightedValue", getItemValue(last));
1379
+ });
1380
+ },
1381
+ highlightNextItem({ context, scope, event, prop }) {
1382
+ const next = getNextEl(scope, {
1383
+ loop: event.loop,
1384
+ value: context.get("highlightedValue"),
1385
+ loopFocus: prop("loopFocus")
1386
+ });
1387
+ context.set("highlightedValue", getItemValue(next));
1388
+ },
1389
+ highlightPrevItem({ context, scope, event, prop }) {
1390
+ const prev = getPrevEl(scope, {
1391
+ loop: event.loop,
1392
+ value: context.get("highlightedValue"),
1393
+ loopFocus: prop("loopFocus")
1394
+ });
1395
+ context.set("highlightedValue", getItemValue(prev));
1396
+ },
1397
+ invokeOnSelect({ context, prop, scope }) {
1398
+ const value = context.get("highlightedValue");
1399
+ if (value == null) return;
1400
+ dispatchSelectionEvent(getItemEl(scope, value), value);
1401
+ prop("onSelect")?.({ value });
1402
+ },
1403
+ focusTrigger({ scope, context, event }) {
1404
+ if (context.get("isSubmenu") || context.get("anchorPoint") || event.restoreFocus === false) return;
1405
+ queueMicrotask(() => {
1406
+ getActiveTriggerEl(scope, context.get("triggerValue"))?.focus({ preventScroll: true });
1407
+ });
1408
+ },
1409
+ highlightMatchedItem({ scope, context, event, refs }) {
1410
+ const node = getElemByKey(scope, {
1411
+ key: event.key,
1412
+ value: context.get("highlightedValue"),
1413
+ typeaheadState: refs.get("typeaheadState")
1414
+ });
1415
+ if (!node) return;
1416
+ context.set("highlightedValue", getItemValue(node));
1417
+ },
1418
+ setParentMenu({ refs, event, context }) {
1419
+ refs.set("parent", event.value);
1420
+ context.set("isSubmenu", true);
1421
+ },
1422
+ setChildMenu({ refs, event }) {
1423
+ const children = refs.get("children");
1424
+ children[event.id] = event.value;
1425
+ refs.set("children", children);
1426
+ },
1427
+ closeSiblingMenus({ refs, event, scope }) {
1428
+ const target = event.target;
1429
+ if (!isTriggerItem(target)) return;
1430
+ const hoveredChildId = target?.getAttribute("data-uid");
1431
+ const children = refs.get("children");
1432
+ for (const id in children) {
1433
+ if (id === hoveredChildId) continue;
1434
+ const child = children[id];
1435
+ const intentPolygon = child.context.get("intentPolygon");
1436
+ if (intentPolygon && event.point && require_polygon.isPointInPolygon(intentPolygon, event.point)) continue;
1437
+ getContentEl(scope)?.focus({ preventScroll: true });
1438
+ child.send({ type: "CLOSE" });
1439
+ }
1440
+ },
1441
+ closeRootMenu({ refs }) {
1442
+ closeRootMenu({ parent: refs.get("parent") });
1443
+ },
1444
+ openSubmenu({ refs, scope, computed }) {
1445
+ const id = scope.getById(computed("highlightedId"))?.getAttribute("data-uid");
1446
+ const children = refs.get("children");
1447
+ (id ? children[id] : null)?.send({ type: "OPEN_AUTOFOCUS" });
1448
+ },
1449
+ focusParentMenu({ refs }) {
1450
+ refs.get("parent")?.send({ type: "FOCUS_MENU" });
1451
+ },
1452
+ setLastHighlightedItem({ context, event }) {
1453
+ context.set("lastHighlightedValue", getItemValue(event.target));
1454
+ },
1455
+ suggestHighlightedItem({ context, event }) {
1456
+ const value = event.value;
1457
+ if (!value) return;
1458
+ if (context.get("highlightedValue") != null) {
1459
+ context.set("lastHighlightedValue", value);
1460
+ return;
1461
+ }
1462
+ context.set("highlightedValue", value);
1463
+ },
1464
+ restoreHighlightedItem({ context }) {
1465
+ const last = context.get("lastHighlightedValue");
1466
+ context.set("lastHighlightedValue", null);
1467
+ if (!last) return;
1468
+ context.set("highlightedValue", last);
1469
+ },
1470
+ restoreParentHighlightedItem({ refs }) {
1471
+ refs.get("parent")?.send({ type: "HIGHLIGHTED.RESTORE" });
1472
+ },
1473
+ invokeOnOpen({ prop }) {
1474
+ prop("onOpenChange")?.({ open: true });
1475
+ },
1476
+ invokeOnClose({ prop }) {
1477
+ prop("onOpenChange")?.({ open: false });
1478
+ },
1479
+ releaseParentRoutingLock({ refs, context }) {
1480
+ if (!context.get("isSubmenu")) return;
1481
+ unlockParentOnSubmenuClose(refs.get("parent"));
1482
+ },
1483
+ toggleVisibility({ prop, event, send }) {
1484
+ send({
1485
+ type: prop("open") ? "CONTROLLED.OPEN" : "CONTROLLED.CLOSE",
1486
+ previousEvent: event
1487
+ });
1488
+ },
1489
+ setTriggerValue({ context, event }) {
1490
+ if (event.value === void 0) return;
1491
+ context.set("triggerValue", event.value);
1492
+ }
1493
+ }
1494
+ }
1495
+ });
1496
+ //#endregion
1497
+ //#region src/machines/menu/props.ts
1498
+ const props = require_create_props.createProps()([
1499
+ "anchorPoint",
1500
+ "aria-label",
1501
+ "closeOnSelect",
1502
+ "composite",
1503
+ "defaultHighlightedValue",
1504
+ "defaultOpen",
1505
+ "defaultTriggerValue",
1506
+ "dir",
1507
+ "getRootNode",
1508
+ "highlightedValue",
1509
+ "id",
1510
+ "ids",
1511
+ "loopFocus",
1512
+ "navigate",
1513
+ "onEscapeKeyDown",
1514
+ "onFocusOutside",
1515
+ "onHighlightChange",
1516
+ "onInteractOutside",
1517
+ "onOpenChange",
1518
+ "onPointerDownOutside",
1519
+ "onRequestDismiss",
1520
+ "onSelect",
1521
+ "onTriggerValueChange",
1522
+ "open",
1523
+ "positioning",
1524
+ "triggerValue",
1525
+ "typeahead"
1526
+ ]);
1527
+ const splitProps = require_utils.createSplitProps(props);
1528
+ const itemProps = require_create_props.createProps()([
1529
+ "closeOnSelect",
1530
+ "disabled",
1531
+ "value",
1532
+ "valueText"
1533
+ ]);
1534
+ const splitItemProps = require_utils.createSplitProps(itemProps);
1535
+ const itemGroupLabelProps = require_create_props.createProps()(["htmlFor"]);
1536
+ const splitItemGroupLabelProps = require_utils.createSplitProps(itemGroupLabelProps);
1537
+ const itemGroupProps = require_create_props.createProps()(["id"]);
1538
+ const splitItemGroupProps = require_utils.createSplitProps(itemGroupProps);
1539
+ const optionItemProps = require_create_props.createProps()([
1540
+ "checked",
1541
+ "closeOnSelect",
1542
+ "disabled",
1543
+ "onCheckedChange",
1544
+ "type",
1545
+ "value",
1546
+ "valueText"
1547
+ ]);
1548
+ const splitOptionItemProps = require_utils.createSplitProps(optionItemProps);
1549
+ //#endregion
1550
+ exports.anatomy = anatomy;
1551
+ exports.connect = connect;
1552
+ exports.itemGroupLabelProps = itemGroupLabelProps;
1553
+ exports.itemGroupProps = itemGroupProps;
1554
+ exports.itemProps = itemProps;
1555
+ exports.machine = machine;
1556
+ exports.optionItemProps = optionItemProps;
1557
+ exports.props = props;
1558
+ exports.splitItemGroupLabelProps = splitItemGroupLabelProps;
1559
+ exports.splitItemGroupProps = splitItemGroupProps;
1560
+ exports.splitItemProps = splitItemProps;
1561
+ exports.splitOptionItemProps = splitOptionItemProps;
1562
+ exports.splitProps = splitProps;