@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,1554 @@
1
+ Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
2
+ const require_create_anatomy = require("../../create-anatomy-BwDn25ph.cjs");
3
+ const require_caret = require("../../caret-CHqaP4XG.cjs");
4
+ const require_dom_query = require("../../dom-query-CQzY93XU.cjs");
5
+ const require_platform = require("../../platform-BZS-dkZN.cjs");
6
+ const require_event = require("../../event-DDz-mMhM.cjs");
7
+ const require_raf = require("../../raf-BSDcY4UD.cjs");
8
+ const require_mutation_observer = require("../../mutation-observer-_LbwtN3W.cjs");
9
+ const require_navigate = require("../../navigate-uJG-006f.cjs");
10
+ const require_scroll = require("../../scroll-Dyd1QLrc.cjs");
11
+ const require_array = require("../../array-BGtygd0o.cjs");
12
+ const require_equal = require("../../equal-C927y7MN.cjs");
13
+ const require_utils = require("../../utils-BH-oBBz2.cjs");
14
+ const require_warning = require("../../warning-HAmFXLHm.cjs");
15
+ const require_collection = require("../../collection-CwzUJwBJ.cjs");
16
+ const require_selection_map = require("../../selection-map-BwlZr1LH.cjs");
17
+ const require_core = require("../../core-BNMw-JId.cjs");
18
+ const require_dismissable = require("../../dismissable-C0bixtzl.cjs");
19
+ const require_focus_visible = require("../../focus-visible-G4cmlWqq.cjs");
20
+ const require_live_region = require("../../live-region-BD0OgmrH.cjs");
21
+ const require_popper = require("../../popper-DkAAS9VE.cjs");
22
+ const require_create_props = require("../../create-props-CjLx2oS8.cjs");
23
+ //#region src/machines/combobox/anatomy.ts
24
+ const anatomy = require_create_anatomy.createAnatomy("combobox").parts("root", "clearTrigger", "content", "control", "input", "item", "itemGroup", "itemGroupLabel", "itemIndicator", "itemText", "label", "list", "positioner", "trigger");
25
+ const parts = anatomy.build();
26
+ //#endregion
27
+ //#region src/machines/combobox/collection.ts
28
+ const collection = (options) => {
29
+ return new require_collection.ListCollection(options);
30
+ };
31
+ collection.empty = () => {
32
+ return new require_collection.ListCollection({ items: [] });
33
+ };
34
+ //#endregion
35
+ //#region src/machines/combobox/dom.ts
36
+ const getRootId = (ctx) => ctx.ids?.root ?? `combobox:${ctx.id}`;
37
+ const getLabelId = (ctx) => ctx.ids?.label ?? `combobox:${ctx.id}:label`;
38
+ const getControlId = (ctx) => ctx.ids?.control ?? `combobox:${ctx.id}:control`;
39
+ const getInputId = (ctx) => ctx.ids?.input ?? `combobox:${ctx.id}:input`;
40
+ const getContentId = (ctx) => ctx.ids?.content ?? `combobox:${ctx.id}:content`;
41
+ const getPositionerId = (ctx) => ctx.ids?.positioner ?? `combobox:${ctx.id}:popper`;
42
+ const getTriggerId = (ctx) => ctx.ids?.trigger ?? `combobox:${ctx.id}:toggle-btn`;
43
+ const getClearTriggerId = (ctx) => ctx.ids?.clearTrigger ?? `combobox:${ctx.id}:clear-btn`;
44
+ const getItemGroupId = (ctx, id) => ctx.ids?.itemGroup?.(id) ?? `combobox:${ctx.id}:optgroup:${id}`;
45
+ const getItemGroupLabelId = (ctx, id) => ctx.ids?.itemGroupLabel?.(id) ?? `combobox:${ctx.id}:optgroup-label:${id}`;
46
+ const getItemId = (ctx, id) => ctx.ids?.item?.(id) ?? `combobox:${ctx.id}:option:${id}`;
47
+ const getContentEl = (ctx) => ctx.getById(getContentId(ctx));
48
+ const getInputEl = (ctx) => ctx.getById(getInputId(ctx));
49
+ const getPositionerEl = (ctx) => ctx.getById(getPositionerId(ctx));
50
+ const getControlEl = (ctx) => ctx.getById(getControlId(ctx));
51
+ const getTriggerEl = (ctx) => ctx.getById(getTriggerId(ctx));
52
+ const getClearTriggerEl = (ctx) => ctx.getById(getClearTriggerId(ctx));
53
+ const getItemEl = (ctx, value) => {
54
+ if (value == null) return null;
55
+ const selector = `[role=option][data-value="${CSS.escape(value)}"]`;
56
+ return require_dom_query.query(getContentEl(ctx), selector);
57
+ };
58
+ const focusInputEl = (ctx) => {
59
+ const inputEl = getInputEl(ctx);
60
+ if (!ctx.isActiveElement(inputEl)) inputEl?.focus({ preventScroll: true });
61
+ require_caret.setCaretToEnd(inputEl);
62
+ };
63
+ const focusTriggerEl = (ctx) => {
64
+ const triggerEl = getTriggerEl(ctx);
65
+ if (ctx.isActiveElement(triggerEl)) return;
66
+ triggerEl?.focus({ preventScroll: true });
67
+ };
68
+ //#endregion
69
+ //#region src/machines/combobox/connect.ts
70
+ function connect(service, normalize) {
71
+ const { context, prop, state, send, scope, computed, event } = service;
72
+ const translations = prop("translations");
73
+ const collection = prop("collection");
74
+ const disabled = !!prop("disabled");
75
+ const interactive = computed("isInteractive");
76
+ const invalid = !!prop("invalid");
77
+ const required = !!prop("required");
78
+ const readOnly = !!prop("readOnly");
79
+ const open = state.hasTag("open");
80
+ const focused = state.hasTag("focused");
81
+ const composite = prop("composite");
82
+ const highlightedValue = context.get("highlightedValue");
83
+ const currentPlacement = context.get("currentPlacement");
84
+ const currentPlacementSide = currentPlacement ? require_popper.getPlacementSide(currentPlacement) : void 0;
85
+ const popperStyles = require_popper.getPlacementStyles({
86
+ ...prop("positioning"),
87
+ placement: currentPlacement
88
+ });
89
+ function getItemState(props) {
90
+ const itemDisabled = collection.getItemDisabled(props.item);
91
+ const value = collection.getItemValue(props.item);
92
+ require_warning.ensure(value, () => `[wirekyt] No value found for item ${JSON.stringify(props.item)}`);
93
+ return {
94
+ value,
95
+ disabled: Boolean(disabled || itemDisabled),
96
+ highlighted: highlightedValue === value,
97
+ selected: context.get("value").includes(value)
98
+ };
99
+ }
100
+ return {
101
+ focused,
102
+ open,
103
+ inputValue: context.get("inputValue"),
104
+ highlightedValue,
105
+ highlightedItem: context.get("highlightedItem"),
106
+ value: context.get("value"),
107
+ valueAsString: computed("valueAsString"),
108
+ hasSelectedItems: computed("hasSelectedItems"),
109
+ selectedItems: computed("selectedItems"),
110
+ collection: prop("collection"),
111
+ multiple: !!prop("multiple"),
112
+ disabled: !!disabled,
113
+ syncSelectedItems() {
114
+ send({ type: "SELECTED_ITEMS.SYNC" });
115
+ },
116
+ reposition(options = {}) {
117
+ send({
118
+ type: "POSITIONING.SET",
119
+ options
120
+ });
121
+ },
122
+ setHighlightValue(value) {
123
+ send({
124
+ type: "HIGHLIGHTED_VALUE.SET",
125
+ value
126
+ });
127
+ },
128
+ clearHighlightValue() {
129
+ send({ type: "HIGHLIGHTED_VALUE.CLEAR" });
130
+ },
131
+ selectValue(value) {
132
+ send({
133
+ type: "ITEM.SELECT",
134
+ value
135
+ });
136
+ },
137
+ setValue(value) {
138
+ send({
139
+ type: "VALUE.SET",
140
+ value
141
+ });
142
+ },
143
+ setInputValue(value, reason = "script") {
144
+ send({
145
+ type: "INPUT_VALUE.SET",
146
+ value,
147
+ src: reason
148
+ });
149
+ },
150
+ clearValue(value) {
151
+ if (value != null) send({
152
+ type: "ITEM.CLEAR",
153
+ value
154
+ });
155
+ else send({ type: "VALUE.CLEAR" });
156
+ },
157
+ focus() {
158
+ getInputEl(scope)?.focus();
159
+ },
160
+ setOpen(nextOpen, reason = "script") {
161
+ if (state.hasTag("open") === nextOpen) return;
162
+ send({
163
+ type: nextOpen ? "OPEN" : "CLOSE",
164
+ src: reason
165
+ });
166
+ },
167
+ getRootProps() {
168
+ return normalize.element({
169
+ ...parts.root.attrs,
170
+ dir: prop("dir"),
171
+ id: getRootId(scope),
172
+ "data-invalid": require_dom_query.dataAttr(invalid),
173
+ "data-readonly": require_dom_query.dataAttr(readOnly)
174
+ });
175
+ },
176
+ getLabelProps() {
177
+ return normalize.label({
178
+ ...parts.label.attrs,
179
+ dir: prop("dir"),
180
+ htmlFor: getInputId(scope),
181
+ id: getLabelId(scope),
182
+ "data-readonly": require_dom_query.dataAttr(readOnly),
183
+ "data-disabled": require_dom_query.dataAttr(disabled),
184
+ "data-invalid": require_dom_query.dataAttr(invalid),
185
+ "data-required": require_dom_query.dataAttr(required),
186
+ "data-focus": require_dom_query.dataAttr(focused),
187
+ onClick(event) {
188
+ if (composite) return;
189
+ event.preventDefault();
190
+ getTriggerEl(scope)?.focus({ preventScroll: true });
191
+ }
192
+ });
193
+ },
194
+ getControlProps() {
195
+ return normalize.element({
196
+ ...parts.control.attrs,
197
+ dir: prop("dir"),
198
+ id: getControlId(scope),
199
+ "data-state": open ? "open" : "closed",
200
+ "data-focus": require_dom_query.dataAttr(focused),
201
+ "data-disabled": require_dom_query.dataAttr(disabled),
202
+ "data-invalid": require_dom_query.dataAttr(invalid)
203
+ });
204
+ },
205
+ getPositionerProps() {
206
+ return normalize.element({
207
+ ...parts.positioner.attrs,
208
+ dir: prop("dir"),
209
+ id: getPositionerId(scope),
210
+ style: popperStyles.floating
211
+ });
212
+ },
213
+ getInputProps() {
214
+ return normalize.input({
215
+ ...parts.input.attrs,
216
+ dir: prop("dir"),
217
+ "aria-invalid": require_dom_query.ariaAttr(invalid),
218
+ "data-invalid": require_dom_query.dataAttr(invalid),
219
+ "data-autofocus": require_dom_query.dataAttr(prop("autoFocus")),
220
+ name: prop("name"),
221
+ form: prop("form"),
222
+ disabled,
223
+ required: prop("required"),
224
+ autoComplete: "off",
225
+ autoCorrect: "off",
226
+ autoCapitalize: "none",
227
+ spellCheck: "false",
228
+ readOnly,
229
+ placeholder: prop("placeholder"),
230
+ id: getInputId(scope),
231
+ type: "text",
232
+ role: "combobox",
233
+ defaultValue: context.get("inputValue"),
234
+ "aria-autocomplete": computed("autoComplete") ? "both" : "list",
235
+ "aria-controls": getContentId(scope),
236
+ "aria-expanded": open,
237
+ "data-state": open ? "open" : "closed",
238
+ "aria-activedescendant": highlightedValue ? getItemId(scope, highlightedValue) : void 0,
239
+ onClick(event) {
240
+ if (event.defaultPrevented) return;
241
+ if (!prop("openOnClick")) return;
242
+ if (!interactive) return;
243
+ send({
244
+ type: "INPUT.CLICK",
245
+ src: "input-click"
246
+ });
247
+ },
248
+ onFocus() {
249
+ if (disabled) return;
250
+ send({ type: "INPUT.FOCUS" });
251
+ },
252
+ onBlur() {
253
+ if (disabled) return;
254
+ send({ type: "INPUT.BLUR" });
255
+ },
256
+ onChange(event) {
257
+ send({
258
+ type: "INPUT.CHANGE",
259
+ value: event.currentTarget.value,
260
+ src: "input-change"
261
+ });
262
+ },
263
+ onKeyDown(event) {
264
+ if (event.defaultPrevented) return;
265
+ if (!interactive) return;
266
+ if (event.ctrlKey || event.shiftKey || require_event.isComposingEvent(event)) return;
267
+ const openOnKeyPress = prop("openOnKeyPress");
268
+ const isModifierKey = event.ctrlKey || event.metaKey || event.shiftKey;
269
+ const keypress = true;
270
+ const exec = {
271
+ ArrowDown(event) {
272
+ if (!openOnKeyPress && !open) return;
273
+ send({
274
+ type: event.altKey ? "OPEN" : "INPUT.ARROW_DOWN",
275
+ keypress,
276
+ src: "arrow-key"
277
+ });
278
+ event.preventDefault();
279
+ },
280
+ ArrowUp() {
281
+ if (!openOnKeyPress && !open) return;
282
+ send({
283
+ type: event.altKey ? "CLOSE" : "INPUT.ARROW_UP",
284
+ keypress,
285
+ src: "arrow-key"
286
+ });
287
+ event.preventDefault();
288
+ },
289
+ Home(event) {
290
+ if (isModifierKey) return;
291
+ send({
292
+ type: "INPUT.HOME",
293
+ keypress
294
+ });
295
+ if (open) event.preventDefault();
296
+ },
297
+ End(event) {
298
+ if (isModifierKey) return;
299
+ send({
300
+ type: "INPUT.END",
301
+ keypress
302
+ });
303
+ if (open) event.preventDefault();
304
+ },
305
+ Enter(event) {
306
+ send({
307
+ type: "INPUT.ENTER",
308
+ keypress,
309
+ src: "item-select"
310
+ });
311
+ const hasHighlight = highlightedValue != null;
312
+ const alwaysSubmit = prop("alwaysSubmitOnEnter");
313
+ const willBeRejected = computed("isCustomValue") && !prop("allowCustomValue");
314
+ if (open && !alwaysSubmit && (hasHighlight || willBeRejected)) event.preventDefault();
315
+ if (highlightedValue == null) return;
316
+ const itemEl = getItemEl(scope, highlightedValue);
317
+ if (require_dom_query.isAnchorElement(itemEl)) prop("navigate")?.({
318
+ value: highlightedValue,
319
+ node: itemEl,
320
+ href: itemEl.href
321
+ });
322
+ },
323
+ Escape() {
324
+ send({
325
+ type: "INPUT.ESCAPE",
326
+ keypress,
327
+ src: "escape-key"
328
+ });
329
+ event.preventDefault();
330
+ }
331
+ }[require_event.getEventKey(event, { dir: prop("dir") })];
332
+ exec?.(event);
333
+ }
334
+ });
335
+ },
336
+ getTriggerProps(props = {}) {
337
+ return normalize.button({
338
+ ...parts.trigger.attrs,
339
+ dir: prop("dir"),
340
+ id: getTriggerId(scope),
341
+ "aria-haspopup": composite ? "listbox" : "dialog",
342
+ type: "button",
343
+ tabIndex: props.focusable ? void 0 : -1,
344
+ "aria-label": translations.triggerLabel,
345
+ "aria-expanded": open,
346
+ "data-state": open ? "open" : "closed",
347
+ "aria-controls": open ? getContentId(scope) : void 0,
348
+ disabled,
349
+ "data-invalid": require_dom_query.dataAttr(invalid),
350
+ "data-focusable": require_dom_query.dataAttr(props.focusable),
351
+ "data-readonly": require_dom_query.dataAttr(readOnly),
352
+ "data-disabled": require_dom_query.dataAttr(disabled),
353
+ onFocus() {
354
+ if (!props.focusable) return;
355
+ send({
356
+ type: "INPUT.FOCUS",
357
+ src: "trigger"
358
+ });
359
+ },
360
+ onClick(event) {
361
+ if (event.defaultPrevented) return;
362
+ if (!interactive) return;
363
+ if (!require_event.isLeftClick(event)) return;
364
+ send({
365
+ type: "TRIGGER.CLICK",
366
+ src: "trigger-click"
367
+ });
368
+ },
369
+ onPointerDown(event) {
370
+ if (!interactive) return;
371
+ if (event.pointerType === "touch") return;
372
+ if (!require_event.isLeftClick(event)) return;
373
+ event.preventDefault();
374
+ queueMicrotask(() => {
375
+ focusInputEl(scope);
376
+ });
377
+ },
378
+ onKeyDown(event) {
379
+ if (event.defaultPrevented) return;
380
+ if (composite) return;
381
+ const exec = {
382
+ ArrowDown() {
383
+ send({
384
+ type: "INPUT.ARROW_DOWN",
385
+ src: "arrow-key"
386
+ });
387
+ },
388
+ ArrowUp() {
389
+ send({
390
+ type: "INPUT.ARROW_UP",
391
+ src: "arrow-key"
392
+ });
393
+ }
394
+ }[require_event.getEventKey(event, { dir: prop("dir") })];
395
+ if (exec) {
396
+ exec(event);
397
+ event.preventDefault();
398
+ }
399
+ }
400
+ });
401
+ },
402
+ getContentProps() {
403
+ return normalize.element({
404
+ ...parts.content.attrs,
405
+ dir: prop("dir"),
406
+ id: getContentId(scope),
407
+ role: !composite ? "dialog" : "listbox",
408
+ tabIndex: -1,
409
+ hidden: !open,
410
+ "data-state": open ? "open" : "closed",
411
+ "data-placement": currentPlacement,
412
+ "data-side": currentPlacementSide,
413
+ "aria-labelledby": getLabelId(scope),
414
+ "aria-multiselectable": prop("multiple") && composite ? true : void 0,
415
+ "data-empty": require_dom_query.dataAttr(collection.size === 0),
416
+ onPointerDown(event) {
417
+ if (!require_event.isLeftClick(event)) return;
418
+ event.preventDefault();
419
+ }
420
+ });
421
+ },
422
+ getListProps() {
423
+ return normalize.element({
424
+ ...parts.list.attrs,
425
+ role: !composite ? "listbox" : void 0,
426
+ "data-empty": require_dom_query.dataAttr(collection.size === 0),
427
+ "aria-labelledby": getLabelId(scope),
428
+ "aria-multiselectable": prop("multiple") && !composite ? true : void 0
429
+ });
430
+ },
431
+ getClearTriggerProps() {
432
+ return normalize.button({
433
+ ...parts.clearTrigger.attrs,
434
+ dir: prop("dir"),
435
+ id: getClearTriggerId(scope),
436
+ type: "button",
437
+ tabIndex: -1,
438
+ disabled,
439
+ "data-invalid": require_dom_query.dataAttr(invalid),
440
+ "aria-label": translations.clearTriggerLabel,
441
+ "aria-controls": getInputId(scope),
442
+ hidden: !context.get("value").length,
443
+ onPointerDown(event) {
444
+ if (!require_event.isLeftClick(event)) return;
445
+ event.preventDefault();
446
+ },
447
+ onClick(event) {
448
+ if (event.defaultPrevented) return;
449
+ if (!interactive) return;
450
+ send({
451
+ type: "VALUE.CLEAR",
452
+ src: "clear-trigger"
453
+ });
454
+ }
455
+ });
456
+ },
457
+ getItemState,
458
+ getItemProps(props) {
459
+ const itemState = getItemState(props);
460
+ const value = itemState.value;
461
+ return normalize.element({
462
+ ...parts.item.attrs,
463
+ dir: prop("dir"),
464
+ id: getItemId(scope, value),
465
+ role: "option",
466
+ tabIndex: -1,
467
+ "data-highlighted": require_dom_query.dataAttr(itemState.highlighted),
468
+ "data-state": itemState.selected ? "checked" : "unchecked",
469
+ "aria-selected": require_dom_query.ariaAttr(itemState.selected),
470
+ "aria-disabled": require_dom_query.ariaAttr(itemState.disabled),
471
+ "data-disabled": require_dom_query.dataAttr(itemState.disabled),
472
+ "data-value": itemState.value,
473
+ onPointerMove() {
474
+ if (itemState.disabled) return;
475
+ if (itemState.highlighted) return;
476
+ send({
477
+ type: "ITEM.POINTER_MOVE",
478
+ value
479
+ });
480
+ },
481
+ onPointerLeave() {
482
+ if (props.persistFocus) return;
483
+ if (itemState.disabled) return;
484
+ if (!event.previous()?.type.includes("POINTER")) return;
485
+ send({
486
+ type: "ITEM.POINTER_LEAVE",
487
+ value
488
+ });
489
+ },
490
+ onClick(event) {
491
+ if (require_event.isDownloadingEvent(event)) return;
492
+ if (require_event.isOpeningInNewTab(event)) return;
493
+ if (require_event.isContextMenuEvent(event)) return;
494
+ if (itemState.disabled) return;
495
+ send({
496
+ type: "ITEM.CLICK",
497
+ src: "item-select",
498
+ value
499
+ });
500
+ }
501
+ });
502
+ },
503
+ getItemTextProps(props) {
504
+ const itemState = getItemState(props);
505
+ return normalize.element({
506
+ ...parts.itemText.attrs,
507
+ dir: prop("dir"),
508
+ "data-state": itemState.selected ? "checked" : "unchecked",
509
+ "data-disabled": require_dom_query.dataAttr(itemState.disabled),
510
+ "data-highlighted": require_dom_query.dataAttr(itemState.highlighted)
511
+ });
512
+ },
513
+ getItemIndicatorProps(props) {
514
+ const itemState = getItemState(props);
515
+ return normalize.element({
516
+ "aria-hidden": true,
517
+ ...parts.itemIndicator.attrs,
518
+ dir: prop("dir"),
519
+ "data-state": itemState.selected ? "checked" : "unchecked",
520
+ hidden: !itemState.selected
521
+ });
522
+ },
523
+ getItemGroupProps(props) {
524
+ const { id } = props;
525
+ return normalize.element({
526
+ ...parts.itemGroup.attrs,
527
+ dir: prop("dir"),
528
+ id: getItemGroupId(scope, id),
529
+ "aria-labelledby": getItemGroupLabelId(scope, id),
530
+ "data-empty": require_dom_query.dataAttr(collection.size === 0),
531
+ role: "group"
532
+ });
533
+ },
534
+ getItemGroupLabelProps(props) {
535
+ const { htmlFor } = props;
536
+ return normalize.element({
537
+ ...parts.itemGroupLabel.attrs,
538
+ dir: prop("dir"),
539
+ id: getItemGroupLabelId(scope, htmlFor),
540
+ role: "presentation"
541
+ });
542
+ }
543
+ };
544
+ }
545
+ //#endregion
546
+ //#region src/machines/combobox/machine.ts
547
+ const { guards, createMachine, choose } = require_core.setup();
548
+ const { and, not } = guards;
549
+ const machine = createMachine({
550
+ props({ props }) {
551
+ return {
552
+ loopFocus: true,
553
+ openOnClick: false,
554
+ defaultValue: [],
555
+ defaultInputValue: "",
556
+ closeOnSelect: !props.multiple,
557
+ allowCustomValue: false,
558
+ alwaysSubmitOnEnter: false,
559
+ inputBehavior: "none",
560
+ selectionBehavior: props.multiple ? "clear" : "replace",
561
+ openOnKeyPress: true,
562
+ openOnChange: true,
563
+ composite: true,
564
+ navigate({ node }) {
565
+ require_navigate.clickIfLink(node);
566
+ },
567
+ collection: collection.empty(),
568
+ ...props,
569
+ positioning: {
570
+ placement: "bottom",
571
+ sameWidth: true,
572
+ ...props.positioning
573
+ },
574
+ translations: {
575
+ triggerLabel: "Toggle suggestions",
576
+ clearTriggerLabel: "Clear value",
577
+ ...props.translations
578
+ }
579
+ };
580
+ },
581
+ initialState({ prop }) {
582
+ return prop("open") || prop("defaultOpen") ? "open.suggesting" : "closed.idle";
583
+ },
584
+ context({ prop, bindable, getContext, getEvent }) {
585
+ const initialValue = prop("value") ?? prop("defaultValue") ?? [];
586
+ const initialSelectedItems = prop("collection").findMany(initialValue);
587
+ return {
588
+ currentPlacement: bindable(() => ({ defaultValue: void 0 })),
589
+ value: bindable(() => ({
590
+ defaultValue: prop("defaultValue"),
591
+ value: prop("value"),
592
+ isEqual: require_equal.isEqual,
593
+ hash(value) {
594
+ return value.join(",");
595
+ },
596
+ onChange(value) {
597
+ const context = getContext();
598
+ const collection = prop("collection");
599
+ const proposed = require_selection_map.deriveSelectionState({
600
+ values: value,
601
+ collection,
602
+ selectedItemMap: context.get("selectedItemMap")
603
+ });
604
+ const effectiveValue = prop("value") ?? value;
605
+ const effective = effectiveValue === value ? proposed : require_selection_map.deriveSelectionState({
606
+ values: effectiveValue,
607
+ collection,
608
+ selectedItemMap: proposed.nextSelectedItemMap
609
+ });
610
+ context.set("selectedItemMap", effective.nextSelectedItemMap);
611
+ prop("onValueChange")?.({
612
+ value,
613
+ items: proposed.selectedItems
614
+ });
615
+ }
616
+ })),
617
+ highlightedValue: bindable(() => ({
618
+ defaultValue: prop("defaultHighlightedValue") || null,
619
+ value: prop("highlightedValue"),
620
+ onChange(value) {
621
+ const item = prop("collection").find(value);
622
+ prop("onHighlightChange")?.({
623
+ highlightedValue: value,
624
+ highlightedItem: item
625
+ });
626
+ }
627
+ })),
628
+ inputValue: bindable(() => {
629
+ let inputValue = prop("inputValue") || prop("defaultInputValue");
630
+ const value = prop("value") || prop("defaultValue");
631
+ if (!inputValue.trim() && !prop("multiple")) {
632
+ const valueAsString = prop("collection").stringifyMany(value);
633
+ inputValue = require_utils.match(prop("selectionBehavior"), {
634
+ preserve: inputValue || valueAsString,
635
+ replace: valueAsString,
636
+ clear: ""
637
+ });
638
+ }
639
+ return {
640
+ defaultValue: inputValue,
641
+ value: prop("inputValue"),
642
+ onChange(value) {
643
+ const event = getEvent();
644
+ const reason = (event.previousEvent || event).src;
645
+ prop("onInputValueChange")?.({
646
+ inputValue: value,
647
+ reason
648
+ });
649
+ }
650
+ };
651
+ }),
652
+ highlightedItem: bindable(() => {
653
+ const highlightedValue = prop("highlightedValue");
654
+ return { defaultValue: prop("collection").find(highlightedValue) };
655
+ }),
656
+ selectedItemMap: bindable(() => {
657
+ return { defaultValue: require_selection_map.createSelectedItemMap({
658
+ selectedItems: initialSelectedItems,
659
+ collection: prop("collection")
660
+ }) };
661
+ })
662
+ };
663
+ },
664
+ computed: {
665
+ isInputValueEmpty: ({ context }) => context.get("inputValue").length === 0,
666
+ isInteractive: ({ prop }) => !(prop("readOnly") || prop("disabled")),
667
+ autoComplete: ({ prop }) => prop("inputBehavior") === "autocomplete",
668
+ autoHighlight: ({ prop }) => prop("inputBehavior") === "autohighlight",
669
+ hasSelectedItems: ({ context }) => context.get("value").length > 0,
670
+ selectedItems: ({ context, prop }) => require_selection_map.resolveSelectedItems({
671
+ values: context.get("value"),
672
+ collection: prop("collection"),
673
+ selectedItemMap: context.get("selectedItemMap")
674
+ }),
675
+ valueAsString: ({ computed, prop }) => prop("collection").stringifyItems(computed("selectedItems")),
676
+ isCustomValue: ({ context, computed }) => context.get("inputValue") !== computed("valueAsString")
677
+ },
678
+ watch({ context, prop, track, action, send }) {
679
+ track([() => context.hash("value")], () => {
680
+ action(["syncSelectedItems"]);
681
+ });
682
+ track([() => context.get("inputValue")], () => {
683
+ action(["syncInputValue"]);
684
+ });
685
+ track([() => context.get("highlightedValue")], () => {
686
+ action([
687
+ "syncHighlightedItem",
688
+ "autofillInputValue",
689
+ "announceHighlightedItem"
690
+ ]);
691
+ });
692
+ track([() => prop("open")], () => {
693
+ action(["toggleVisibility"]);
694
+ });
695
+ track([() => prop("collection").toString()], () => {
696
+ send({ type: "CHILDREN_CHANGE" });
697
+ });
698
+ },
699
+ on: {
700
+ "SELECTED_ITEMS.SYNC": { actions: ["syncSelectedItems"] },
701
+ "HIGHLIGHTED_VALUE.SET": { actions: ["setHighlightedValue"] },
702
+ "HIGHLIGHTED_VALUE.CLEAR": { actions: ["clearHighlightedValue"] },
703
+ "ITEM.SELECT": { actions: ["selectItem"] },
704
+ "ITEM.CLEAR": { actions: ["clearItem"] },
705
+ "VALUE.SET": { actions: ["setValue"] },
706
+ "INPUT_VALUE.SET": { actions: ["setInputValue"] },
707
+ "POSITIONING.SET": { actions: ["reposition"] }
708
+ },
709
+ entry: choose([{
710
+ guard: "autoFocus",
711
+ actions: ["setInitialFocus"]
712
+ }]),
713
+ states: {
714
+ closed: {
715
+ tags: ["closed"],
716
+ initial: "idle",
717
+ states: {
718
+ idle: {
719
+ tags: ["idle"],
720
+ entry: ["scrollContentToTop", "clearHighlightedValue"],
721
+ on: {
722
+ "CONTROLLED.OPEN": { target: "open.interacting" },
723
+ "TRIGGER.CLICK": [{
724
+ guard: "isOpenControlled",
725
+ actions: [
726
+ "setInitialFocus",
727
+ "highlightFirstSelectedItem",
728
+ "invokeOnOpen"
729
+ ]
730
+ }, {
731
+ target: "open.interacting",
732
+ actions: [
733
+ "setInitialFocus",
734
+ "highlightFirstSelectedItem",
735
+ "invokeOnOpen"
736
+ ]
737
+ }],
738
+ "INPUT.CLICK": [{
739
+ guard: "isOpenControlled",
740
+ actions: ["highlightFirstSelectedItem", "invokeOnOpen"]
741
+ }, {
742
+ target: "open.interacting",
743
+ actions: ["highlightFirstSelectedItem", "invokeOnOpen"]
744
+ }],
745
+ "INPUT.FOCUS": { target: "focused" },
746
+ OPEN: [{
747
+ guard: "isOpenControlled",
748
+ actions: ["invokeOnOpen"]
749
+ }, {
750
+ target: "open.interacting",
751
+ actions: ["invokeOnOpen"]
752
+ }],
753
+ "VALUE.CLEAR": {
754
+ target: "focused",
755
+ actions: [
756
+ "clearInputValue",
757
+ "clearSelectedItems",
758
+ "setInitialFocus"
759
+ ]
760
+ }
761
+ }
762
+ },
763
+ focused: {
764
+ tags: ["focused"],
765
+ entry: ["scrollContentToTop", "clearHighlightedValue"],
766
+ on: {
767
+ "CONTROLLED.OPEN": [{
768
+ guard: "isChangeEvent",
769
+ target: "open.suggesting"
770
+ }, { target: "open.interacting" }],
771
+ "INPUT.CHANGE": [
772
+ {
773
+ guard: and("isOpenControlled", "openOnChange"),
774
+ actions: [
775
+ "setInputValue",
776
+ "invokeOnOpen",
777
+ "highlightFirstItemIfNeeded"
778
+ ]
779
+ },
780
+ {
781
+ guard: "openOnChange",
782
+ target: "open.suggesting",
783
+ actions: [
784
+ "setInputValue",
785
+ "invokeOnOpen",
786
+ "highlightFirstItemIfNeeded"
787
+ ]
788
+ },
789
+ { actions: ["setInputValue"] }
790
+ ],
791
+ "LAYER.INTERACT_OUTSIDE": { target: "idle" },
792
+ "INPUT.ESCAPE": {
793
+ guard: and("isCustomValue", not("allowCustomValue")),
794
+ actions: ["revertInputValue"]
795
+ },
796
+ "INPUT.BLUR": { target: "idle" },
797
+ "INPUT.CLICK": [{
798
+ guard: "isOpenControlled",
799
+ actions: ["highlightFirstSelectedItem", "invokeOnOpen"]
800
+ }, {
801
+ target: "open.interacting",
802
+ actions: ["highlightFirstSelectedItem", "invokeOnOpen"]
803
+ }],
804
+ "TRIGGER.CLICK": [{
805
+ guard: "isOpenControlled",
806
+ actions: [
807
+ "setInitialFocus",
808
+ "highlightFirstSelectedItem",
809
+ "invokeOnOpen"
810
+ ]
811
+ }, {
812
+ target: "open.interacting",
813
+ actions: [
814
+ "setInitialFocus",
815
+ "highlightFirstSelectedItem",
816
+ "invokeOnOpen"
817
+ ]
818
+ }],
819
+ "INPUT.ARROW_DOWN": [
820
+ {
821
+ guard: and("isOpenControlled", "autoComplete"),
822
+ actions: ["invokeOnOpen"]
823
+ },
824
+ {
825
+ guard: "autoComplete",
826
+ target: "open.interacting",
827
+ actions: ["invokeOnOpen"]
828
+ },
829
+ {
830
+ guard: "isOpenControlled",
831
+ actions: ["highlightFirstOrSelectedItem", "invokeOnOpen"]
832
+ },
833
+ {
834
+ target: "open.interacting",
835
+ actions: ["highlightFirstOrSelectedItem", "invokeOnOpen"]
836
+ }
837
+ ],
838
+ "INPUT.ARROW_UP": [
839
+ {
840
+ guard: and("isOpenControlled", "autoComplete"),
841
+ actions: ["invokeOnOpen"]
842
+ },
843
+ {
844
+ guard: "autoComplete",
845
+ target: "open.interacting",
846
+ actions: ["invokeOnOpen"]
847
+ },
848
+ {
849
+ guard: "isOpenControlled",
850
+ actions: ["highlightLastOrSelectedItem", "invokeOnOpen"]
851
+ },
852
+ {
853
+ target: "open.interacting",
854
+ actions: ["highlightLastOrSelectedItem", "invokeOnOpen"]
855
+ }
856
+ ],
857
+ OPEN: [{
858
+ guard: "isOpenControlled",
859
+ actions: ["invokeOnOpen"]
860
+ }, {
861
+ target: "open.interacting",
862
+ actions: ["invokeOnOpen"]
863
+ }],
864
+ "VALUE.CLEAR": { actions: ["clearInputValue", "clearSelectedItems"] }
865
+ }
866
+ }
867
+ }
868
+ },
869
+ open: {
870
+ tags: ["open", "focused"],
871
+ entry: ["setInitialFocus"],
872
+ effects: [
873
+ "trackFocusVisible",
874
+ "scrollToHighlightedItem",
875
+ "trackDismissableLayer",
876
+ "trackPlacement",
877
+ "trackLiveRegion"
878
+ ],
879
+ on: {
880
+ "CONTROLLED.CLOSE": [{
881
+ guard: "restoreFocus",
882
+ target: "closed.focused",
883
+ actions: ["setFinalFocus"]
884
+ }, { target: "closed.idle" }],
885
+ "INPUT.ENTER": [
886
+ {
887
+ guard: and("isOpenControlled", "isCustomValue", not("hasHighlightedItem"), not("allowCustomValue")),
888
+ actions: ["revertInputValue", "invokeOnClose"]
889
+ },
890
+ {
891
+ guard: and("isCustomValue", not("hasHighlightedItem"), not("allowCustomValue")),
892
+ target: "closed.focused",
893
+ actions: ["revertInputValue", "invokeOnClose"]
894
+ },
895
+ {
896
+ guard: and("isOpenControlled", "closeOnSelect"),
897
+ actions: ["selectHighlightedItem", "invokeOnClose"]
898
+ },
899
+ {
900
+ guard: "closeOnSelect",
901
+ target: "closed.focused",
902
+ actions: [
903
+ "selectHighlightedItem",
904
+ "invokeOnClose",
905
+ "setFinalFocus"
906
+ ]
907
+ },
908
+ { actions: ["selectHighlightedItem"] }
909
+ ],
910
+ "ITEM.CLICK": [
911
+ {
912
+ guard: and("isOpenControlled", "closeOnSelect"),
913
+ actions: ["selectItem", "invokeOnClose"]
914
+ },
915
+ {
916
+ guard: "closeOnSelect",
917
+ target: "closed.focused",
918
+ actions: [
919
+ "selectItem",
920
+ "invokeOnClose",
921
+ "setFinalFocus"
922
+ ]
923
+ },
924
+ { actions: ["selectItem"] }
925
+ ],
926
+ "TRIGGER.CLICK": [{
927
+ guard: "isOpenControlled",
928
+ actions: ["invokeOnClose"]
929
+ }, {
930
+ target: "closed.focused",
931
+ actions: ["invokeOnClose"]
932
+ }],
933
+ "LAYER.INTERACT_OUTSIDE": [
934
+ {
935
+ guard: and("isOpenControlled", "isCustomValue", not("allowCustomValue")),
936
+ actions: ["revertInputValue", "invokeOnClose"]
937
+ },
938
+ {
939
+ guard: and("isCustomValue", not("allowCustomValue")),
940
+ target: "closed.idle",
941
+ actions: ["revertInputValue", "invokeOnClose"]
942
+ },
943
+ {
944
+ guard: "isOpenControlled",
945
+ actions: ["invokeOnClose"]
946
+ },
947
+ {
948
+ target: "closed.idle",
949
+ actions: ["invokeOnClose"]
950
+ }
951
+ ],
952
+ CLOSE: [{
953
+ guard: "isOpenControlled",
954
+ actions: ["invokeOnClose"]
955
+ }, {
956
+ target: "closed.focused",
957
+ actions: ["invokeOnClose", "setFinalFocus"]
958
+ }],
959
+ "VALUE.CLEAR": [{
960
+ guard: "isOpenControlled",
961
+ actions: [
962
+ "clearInputValue",
963
+ "clearSelectedItems",
964
+ "invokeOnClose"
965
+ ]
966
+ }, {
967
+ target: "closed.focused",
968
+ actions: [
969
+ "clearInputValue",
970
+ "clearSelectedItems",
971
+ "invokeOnClose",
972
+ "setFinalFocus"
973
+ ]
974
+ }]
975
+ },
976
+ initial: "interacting",
977
+ states: {
978
+ interacting: { on: {
979
+ CHILDREN_CHANGE: [{
980
+ guard: "isHighlightedItemRemoved",
981
+ actions: ["clearHighlightedValue"]
982
+ }, { actions: ["scrollToHighlightedItem"] }],
983
+ "INPUT.HOME": { actions: ["highlightFirstItem"] },
984
+ "INPUT.END": { actions: ["highlightLastItem"] },
985
+ "INPUT.ARROW_DOWN": [{
986
+ guard: and("autoComplete", "isLastItemHighlighted"),
987
+ actions: ["clearHighlightedValue", "scrollContentToTop"]
988
+ }, { actions: ["highlightNextItem"] }],
989
+ "INPUT.ARROW_UP": [{
990
+ guard: and("autoComplete", "isFirstItemHighlighted"),
991
+ actions: ["clearHighlightedValue"]
992
+ }, { actions: ["highlightPrevItem"] }],
993
+ "INPUT.CHANGE": [{
994
+ guard: "autoComplete",
995
+ target: "suggesting",
996
+ actions: ["setInputValue"]
997
+ }, {
998
+ target: "suggesting",
999
+ actions: ["clearHighlightedValue", "setInputValue"]
1000
+ }],
1001
+ "ITEM.POINTER_MOVE": { actions: ["setHighlightedValue"] },
1002
+ "ITEM.POINTER_LEAVE": { actions: ["clearHighlightedValue"] },
1003
+ "LAYER.ESCAPE": [
1004
+ {
1005
+ guard: and("isOpenControlled", "autoComplete"),
1006
+ actions: ["syncInputValue", "invokeOnClose"]
1007
+ },
1008
+ {
1009
+ guard: "autoComplete",
1010
+ target: "closed.focused",
1011
+ actions: ["syncInputValue", "invokeOnClose"]
1012
+ },
1013
+ {
1014
+ guard: "isOpenControlled",
1015
+ actions: ["invokeOnClose"]
1016
+ },
1017
+ {
1018
+ target: "closed.focused",
1019
+ actions: ["invokeOnClose", "setFinalFocus"]
1020
+ }
1021
+ ]
1022
+ } },
1023
+ suggesting: { on: {
1024
+ CHILDREN_CHANGE: [
1025
+ {
1026
+ guard: and("isHighlightedItemRemoved", "hasCollectionItems", "autoHighlight"),
1027
+ actions: ["clearHighlightedValue", "highlightFirstItem"]
1028
+ },
1029
+ {
1030
+ guard: "isHighlightedItemRemoved",
1031
+ actions: ["clearHighlightedValue"]
1032
+ },
1033
+ {
1034
+ guard: "autoHighlight",
1035
+ actions: ["highlightFirstItem"]
1036
+ }
1037
+ ],
1038
+ "INPUT.ARROW_DOWN": {
1039
+ target: "interacting",
1040
+ actions: ["highlightNextItem"]
1041
+ },
1042
+ "INPUT.ARROW_UP": {
1043
+ target: "interacting",
1044
+ actions: ["highlightPrevItem"]
1045
+ },
1046
+ "INPUT.HOME": {
1047
+ target: "interacting",
1048
+ actions: ["highlightFirstItem"]
1049
+ },
1050
+ "INPUT.END": {
1051
+ target: "interacting",
1052
+ actions: ["highlightLastItem"]
1053
+ },
1054
+ "INPUT.CHANGE": { actions: ["setInputValue"] },
1055
+ "LAYER.ESCAPE": [{
1056
+ guard: "isOpenControlled",
1057
+ actions: ["invokeOnClose"]
1058
+ }, {
1059
+ target: "closed.focused",
1060
+ actions: ["invokeOnClose"]
1061
+ }],
1062
+ "ITEM.POINTER_MOVE": {
1063
+ target: "interacting",
1064
+ actions: ["setHighlightedValue"]
1065
+ },
1066
+ "ITEM.POINTER_LEAVE": { actions: ["clearHighlightedValue"] }
1067
+ } }
1068
+ }
1069
+ }
1070
+ },
1071
+ implementations: {
1072
+ guards: {
1073
+ isInputValueEmpty: ({ computed }) => computed("isInputValueEmpty"),
1074
+ autoComplete: ({ computed, prop }) => computed("autoComplete") && !prop("multiple"),
1075
+ autoHighlight: ({ computed }) => computed("autoHighlight"),
1076
+ isFirstItemHighlighted: ({ prop, context }) => prop("collection").firstValue === context.get("highlightedValue"),
1077
+ isLastItemHighlighted: ({ prop, context }) => prop("collection").lastValue === context.get("highlightedValue"),
1078
+ isCustomValue: ({ computed }) => computed("isCustomValue"),
1079
+ allowCustomValue: ({ prop }) => !!prop("allowCustomValue"),
1080
+ hasHighlightedItem: ({ context }) => context.get("highlightedValue") != null,
1081
+ closeOnSelect: ({ prop }) => !!prop("closeOnSelect"),
1082
+ isOpenControlled: ({ prop }) => prop("open") != null,
1083
+ openOnChange: ({ prop, context }) => {
1084
+ const openOnChange = prop("openOnChange");
1085
+ if (require_utils.isBoolean(openOnChange)) return openOnChange;
1086
+ return !!openOnChange?.({ inputValue: context.get("inputValue") });
1087
+ },
1088
+ restoreFocus: ({ event }) => {
1089
+ const restoreFocus = event.restoreFocus ?? event.previousEvent?.restoreFocus;
1090
+ return restoreFocus == null ? true : !!restoreFocus;
1091
+ },
1092
+ isChangeEvent: ({ event }) => event.previousEvent?.type === "INPUT.CHANGE",
1093
+ autoFocus: ({ prop }) => !!prop("autoFocus"),
1094
+ isHighlightedItemRemoved: ({ prop, context }) => !prop("collection").has(context.get("highlightedValue")),
1095
+ hasCollectionItems: ({ prop }) => prop("collection").size > 0
1096
+ },
1097
+ effects: {
1098
+ trackFocusVisible({ scope }) {
1099
+ return require_focus_visible.trackFocusVisible({ root: scope.getRootNode?.() });
1100
+ },
1101
+ trackDismissableLayer({ send, prop, scope }) {
1102
+ if (prop("disableLayer")) return;
1103
+ const contentEl = () => getContentEl(scope);
1104
+ return require_dismissable.trackDismissableElement(contentEl, {
1105
+ type: "listbox",
1106
+ defer: true,
1107
+ exclude: () => [
1108
+ getInputEl(scope),
1109
+ getTriggerEl(scope),
1110
+ getClearTriggerEl(scope)
1111
+ ],
1112
+ onFocusOutside: prop("onFocusOutside"),
1113
+ onPointerDownOutside: prop("onPointerDownOutside"),
1114
+ onInteractOutside: prop("onInteractOutside"),
1115
+ onEscapeKeyDown(event) {
1116
+ event.preventDefault();
1117
+ event.stopPropagation();
1118
+ send({
1119
+ type: "LAYER.ESCAPE",
1120
+ src: "escape-key"
1121
+ });
1122
+ },
1123
+ onDismiss() {
1124
+ send({
1125
+ type: "LAYER.INTERACT_OUTSIDE",
1126
+ src: "interact-outside",
1127
+ restoreFocus: false
1128
+ });
1129
+ }
1130
+ });
1131
+ },
1132
+ trackLiveRegion({ refs, scope }) {
1133
+ const liveRegion = require_live_region.createLiveRegion({
1134
+ level: "assertive",
1135
+ document: scope.getDoc()
1136
+ });
1137
+ refs.set("liveRegion", liveRegion);
1138
+ return () => liveRegion.destroy();
1139
+ },
1140
+ trackPlacement({ context, prop, scope }) {
1141
+ const anchorEl = () => getControlEl(scope) || getTriggerEl(scope);
1142
+ const positionerEl = () => getPositionerEl(scope);
1143
+ context.set("currentPlacement", prop("positioning").placement);
1144
+ return require_popper.getPlacement(anchorEl, positionerEl, {
1145
+ ...prop("positioning"),
1146
+ defer: true,
1147
+ onComplete(data) {
1148
+ context.set("currentPlacement", data.placement);
1149
+ }
1150
+ });
1151
+ },
1152
+ scrollToHighlightedItem({ context, prop, scope }) {
1153
+ const inputEl = getInputEl(scope);
1154
+ let cleanups = [];
1155
+ const exec = (immediate) => {
1156
+ if (require_focus_visible.getInteractionModality() === "pointer") return;
1157
+ const highlightedValue = context.get("highlightedValue");
1158
+ if (!highlightedValue) return;
1159
+ const contentEl = getContentEl(scope);
1160
+ const scrollToIndexFn = prop("scrollToIndexFn");
1161
+ if (scrollToIndexFn) {
1162
+ scrollToIndexFn({
1163
+ index: prop("collection").indexOf(highlightedValue),
1164
+ immediate,
1165
+ getElement: () => getItemEl(scope, highlightedValue)
1166
+ });
1167
+ return;
1168
+ }
1169
+ const itemEl = getItemEl(scope, highlightedValue);
1170
+ const raf_cleanup = require_raf.raf(() => {
1171
+ require_scroll.scrollIntoView(itemEl, {
1172
+ rootEl: contentEl,
1173
+ block: "nearest"
1174
+ });
1175
+ });
1176
+ cleanups.push(raf_cleanup);
1177
+ };
1178
+ const rafCleanup = require_raf.raf(() => {
1179
+ require_focus_visible.setInteractionModality("virtual");
1180
+ exec(true);
1181
+ });
1182
+ cleanups.push(rafCleanup);
1183
+ const observerCleanup = require_mutation_observer.observeAttributes(inputEl, {
1184
+ attributes: ["aria-activedescendant"],
1185
+ callback: () => exec(false)
1186
+ });
1187
+ cleanups.push(observerCleanup);
1188
+ return () => {
1189
+ cleanups.forEach((cleanup) => cleanup());
1190
+ };
1191
+ }
1192
+ },
1193
+ actions: {
1194
+ reposition({ context, prop, scope, event }) {
1195
+ const controlEl = () => getControlEl(scope);
1196
+ const positionerEl = () => getPositionerEl(scope);
1197
+ require_popper.getPlacement(controlEl, positionerEl, {
1198
+ ...prop("positioning"),
1199
+ ...event.options,
1200
+ defer: true,
1201
+ listeners: false,
1202
+ onComplete(data) {
1203
+ context.set("currentPlacement", data.placement);
1204
+ }
1205
+ });
1206
+ },
1207
+ setHighlightedValue({ context, event }) {
1208
+ if (event.value == null) return;
1209
+ context.set("highlightedValue", event.value);
1210
+ },
1211
+ clearHighlightedValue({ context }) {
1212
+ context.set("highlightedValue", null);
1213
+ },
1214
+ selectHighlightedItem(params) {
1215
+ const { context, prop } = params;
1216
+ const collection = prop("collection");
1217
+ const highlightedValue = context.get("highlightedValue");
1218
+ if (!highlightedValue || !collection.has(highlightedValue)) return;
1219
+ const nextValue = prop("multiple") ? require_array.addOrRemove(context.get("value"), highlightedValue) : [highlightedValue];
1220
+ prop("onSelect")?.({
1221
+ value: nextValue,
1222
+ itemValue: highlightedValue
1223
+ });
1224
+ context.set("value", nextValue);
1225
+ const inputValue = require_utils.match(prop("selectionBehavior"), {
1226
+ preserve: context.get("inputValue"),
1227
+ replace: collection.stringifyMany(nextValue),
1228
+ clear: ""
1229
+ });
1230
+ context.set("inputValue", inputValue);
1231
+ },
1232
+ scrollToHighlightedItem({ context, prop, scope }) {
1233
+ require_raf.nextTick(() => {
1234
+ const highlightedValue = context.get("highlightedValue");
1235
+ if (highlightedValue == null) return;
1236
+ const itemEl = getItemEl(scope, highlightedValue);
1237
+ const contentEl = getContentEl(scope);
1238
+ const scrollToIndexFn = prop("scrollToIndexFn");
1239
+ if (scrollToIndexFn) {
1240
+ scrollToIndexFn({
1241
+ index: prop("collection").indexOf(highlightedValue),
1242
+ immediate: true,
1243
+ getElement: () => getItemEl(scope, highlightedValue)
1244
+ });
1245
+ return;
1246
+ }
1247
+ require_scroll.scrollIntoView(itemEl, {
1248
+ rootEl: contentEl,
1249
+ block: "nearest"
1250
+ });
1251
+ });
1252
+ },
1253
+ selectItem(params) {
1254
+ const { context, event, flush, prop } = params;
1255
+ if (event.value == null) return;
1256
+ flush(() => {
1257
+ const nextValue = prop("multiple") ? require_array.addOrRemove(context.get("value"), event.value) : [event.value];
1258
+ prop("onSelect")?.({
1259
+ value: nextValue,
1260
+ itemValue: event.value
1261
+ });
1262
+ context.set("value", nextValue);
1263
+ const inputValue = require_utils.match(prop("selectionBehavior"), {
1264
+ preserve: context.get("inputValue"),
1265
+ replace: prop("collection").stringifyMany(nextValue),
1266
+ clear: ""
1267
+ });
1268
+ context.set("inputValue", inputValue);
1269
+ });
1270
+ },
1271
+ clearItem(params) {
1272
+ const { context, event, flush, prop } = params;
1273
+ if (event.value == null) return;
1274
+ flush(() => {
1275
+ const nextValue = require_array.remove(context.get("value"), event.value);
1276
+ context.set("value", nextValue);
1277
+ const inputValue = require_utils.match(prop("selectionBehavior"), {
1278
+ preserve: context.get("inputValue"),
1279
+ replace: prop("collection").stringifyMany(nextValue),
1280
+ clear: ""
1281
+ });
1282
+ context.set("inputValue", inputValue);
1283
+ });
1284
+ },
1285
+ setInitialFocus({ scope }) {
1286
+ require_raf.raf(() => {
1287
+ focusInputEl(scope);
1288
+ });
1289
+ },
1290
+ setFinalFocus({ scope }) {
1291
+ require_raf.raf(() => {
1292
+ if (getTriggerEl(scope)?.dataset.focusable == null) focusInputEl(scope);
1293
+ else focusTriggerEl(scope);
1294
+ });
1295
+ },
1296
+ syncInputValue({ context, scope, event }) {
1297
+ const inputEl = getInputEl(scope);
1298
+ if (!inputEl) return;
1299
+ inputEl.value = context.get("inputValue");
1300
+ queueMicrotask(() => {
1301
+ if (event.current().type === "INPUT.CHANGE") return;
1302
+ require_caret.setCaretToEnd(inputEl);
1303
+ });
1304
+ },
1305
+ setInputValue({ context, event }) {
1306
+ context.set("inputValue", event.value);
1307
+ },
1308
+ clearInputValue({ context }) {
1309
+ context.set("inputValue", "");
1310
+ },
1311
+ revertInputValue({ context, prop, computed }) {
1312
+ const inputValue = require_utils.match(prop("selectionBehavior"), {
1313
+ replace: computed("hasSelectedItems") ? computed("valueAsString") : "",
1314
+ preserve: context.get("inputValue"),
1315
+ clear: ""
1316
+ });
1317
+ context.set("inputValue", inputValue);
1318
+ },
1319
+ setValue(params) {
1320
+ const { context, flush, event, prop } = params;
1321
+ flush(() => {
1322
+ context.set("value", event.value);
1323
+ const inputValue = require_utils.match(prop("selectionBehavior"), {
1324
+ preserve: context.get("inputValue"),
1325
+ replace: prop("collection").stringifyMany(event.value),
1326
+ clear: ""
1327
+ });
1328
+ context.set("inputValue", inputValue);
1329
+ });
1330
+ },
1331
+ clearSelectedItems(params) {
1332
+ const { context, flush, prop } = params;
1333
+ flush(() => {
1334
+ context.set("value", []);
1335
+ const inputValue = require_utils.match(prop("selectionBehavior"), {
1336
+ preserve: context.get("inputValue"),
1337
+ replace: prop("collection").stringifyMany([]),
1338
+ clear: ""
1339
+ });
1340
+ context.set("inputValue", inputValue);
1341
+ });
1342
+ },
1343
+ scrollContentToTop({ prop, scope }) {
1344
+ const scrollToIndexFn = prop("scrollToIndexFn");
1345
+ if (scrollToIndexFn) {
1346
+ const firstValue = prop("collection").firstValue;
1347
+ scrollToIndexFn({
1348
+ index: 0,
1349
+ immediate: true,
1350
+ getElement: () => getItemEl(scope, firstValue)
1351
+ });
1352
+ } else {
1353
+ const contentEl = getContentEl(scope);
1354
+ if (!contentEl) return;
1355
+ contentEl.scrollTop = 0;
1356
+ }
1357
+ },
1358
+ invokeOnOpen({ prop, event, context }) {
1359
+ const reason = getOpenChangeReason(event);
1360
+ prop("onOpenChange")?.({
1361
+ open: true,
1362
+ reason,
1363
+ value: context.get("value")
1364
+ });
1365
+ },
1366
+ invokeOnClose({ prop, event, context }) {
1367
+ const reason = getOpenChangeReason(event);
1368
+ prop("onOpenChange")?.({
1369
+ open: false,
1370
+ reason,
1371
+ value: context.get("value")
1372
+ });
1373
+ },
1374
+ highlightFirstItem({ context, prop, scope }) {
1375
+ (getContentEl(scope) ? queueMicrotask : require_raf.raf)(() => {
1376
+ const value = prop("collection").firstValue;
1377
+ if (value) context.set("highlightedValue", value);
1378
+ });
1379
+ },
1380
+ highlightFirstItemIfNeeded({ computed, action }) {
1381
+ if (!computed("autoHighlight")) return;
1382
+ action(["highlightFirstItem"]);
1383
+ },
1384
+ highlightLastItem({ context, prop, scope }) {
1385
+ (getContentEl(scope) ? queueMicrotask : require_raf.raf)(() => {
1386
+ const value = prop("collection").lastValue;
1387
+ if (value) context.set("highlightedValue", value);
1388
+ });
1389
+ },
1390
+ highlightNextItem({ context, prop }) {
1391
+ let value = null;
1392
+ const highlightedValue = context.get("highlightedValue");
1393
+ const collection = prop("collection");
1394
+ if (highlightedValue) {
1395
+ value = collection.getNextValue(highlightedValue);
1396
+ if (!value && prop("loopFocus")) value = collection.firstValue;
1397
+ } else value = collection.firstValue;
1398
+ if (value) context.set("highlightedValue", value);
1399
+ },
1400
+ highlightPrevItem({ context, prop }) {
1401
+ let value = null;
1402
+ const highlightedValue = context.get("highlightedValue");
1403
+ const collection = prop("collection");
1404
+ if (highlightedValue) {
1405
+ value = collection.getPreviousValue(highlightedValue);
1406
+ if (!value && prop("loopFocus")) value = collection.lastValue;
1407
+ } else value = collection.lastValue;
1408
+ if (value) context.set("highlightedValue", value);
1409
+ },
1410
+ highlightFirstSelectedItem({ context, prop }) {
1411
+ require_raf.raf(() => {
1412
+ const [value] = prop("collection").sort(context.get("value"));
1413
+ if (value) context.set("highlightedValue", value);
1414
+ });
1415
+ },
1416
+ highlightFirstOrSelectedItem({ context, prop, computed }) {
1417
+ require_raf.raf(() => {
1418
+ let value = null;
1419
+ if (computed("hasSelectedItems")) value = prop("collection").sort(context.get("value"))[0];
1420
+ else value = prop("collection").firstValue;
1421
+ if (value) context.set("highlightedValue", value);
1422
+ });
1423
+ },
1424
+ highlightLastOrSelectedItem({ context, prop, computed }) {
1425
+ require_raf.raf(() => {
1426
+ const collection = prop("collection");
1427
+ let value = null;
1428
+ if (computed("hasSelectedItems")) value = collection.sort(context.get("value"))[0];
1429
+ else value = collection.lastValue;
1430
+ if (value) context.set("highlightedValue", value);
1431
+ });
1432
+ },
1433
+ autofillInputValue({ context, computed, prop, event, scope }) {
1434
+ const inputEl = getInputEl(scope);
1435
+ const collection = prop("collection");
1436
+ if (!computed("autoComplete") || !inputEl || !event.keypress) return;
1437
+ const valueText = collection.stringify(context.get("highlightedValue"));
1438
+ require_raf.raf(() => {
1439
+ inputEl.value = valueText || context.get("inputValue");
1440
+ });
1441
+ },
1442
+ syncSelectedItems(params) {
1443
+ queueMicrotask(() => {
1444
+ const { context, prop } = params;
1445
+ const collection = prop("collection");
1446
+ const value = context.get("value");
1447
+ const next = require_selection_map.deriveSelectionState({
1448
+ values: value,
1449
+ collection,
1450
+ selectedItemMap: context.get("selectedItemMap")
1451
+ });
1452
+ context.set("selectedItemMap", next.nextSelectedItemMap);
1453
+ const inputValue = require_utils.match(prop("selectionBehavior"), {
1454
+ preserve: context.get("inputValue"),
1455
+ replace: collection.stringifyMany(value),
1456
+ clear: ""
1457
+ });
1458
+ context.set("inputValue", inputValue);
1459
+ });
1460
+ },
1461
+ syncHighlightedItem({ context, prop }) {
1462
+ const item = prop("collection").find(context.get("highlightedValue"));
1463
+ context.set("highlightedItem", item);
1464
+ },
1465
+ announceHighlightedItem({ context, prop, refs }) {
1466
+ if (!require_platform.isApple()) return;
1467
+ const value = context.get("highlightedValue");
1468
+ const optionText = value ? prop("collection").stringifyItem(prop("collection").find(value)) : null;
1469
+ if (!optionText) return;
1470
+ const isSelected = value ? context.get("value").includes(value) : false;
1471
+ refs.get("liveRegion")?.announce(isSelected ? `${optionText}, selected` : optionText);
1472
+ },
1473
+ toggleVisibility({ event, send, prop }) {
1474
+ send({
1475
+ type: prop("open") ? "CONTROLLED.OPEN" : "CONTROLLED.CLOSE",
1476
+ previousEvent: event
1477
+ });
1478
+ }
1479
+ }
1480
+ }
1481
+ });
1482
+ function getOpenChangeReason(event) {
1483
+ return (event.previousEvent || event).src;
1484
+ }
1485
+ //#endregion
1486
+ //#region src/machines/combobox/props.ts
1487
+ const props = require_create_props.createProps()([
1488
+ "allowCustomValue",
1489
+ "autoFocus",
1490
+ "closeOnSelect",
1491
+ "collection",
1492
+ "composite",
1493
+ "defaultHighlightedValue",
1494
+ "defaultInputValue",
1495
+ "defaultOpen",
1496
+ "defaultValue",
1497
+ "dir",
1498
+ "disabled",
1499
+ "disableLayer",
1500
+ "form",
1501
+ "getRootNode",
1502
+ "highlightedValue",
1503
+ "id",
1504
+ "ids",
1505
+ "inputBehavior",
1506
+ "inputValue",
1507
+ "invalid",
1508
+ "loopFocus",
1509
+ "multiple",
1510
+ "name",
1511
+ "navigate",
1512
+ "onFocusOutside",
1513
+ "onHighlightChange",
1514
+ "onInputValueChange",
1515
+ "onInteractOutside",
1516
+ "onOpenChange",
1517
+ "onOpenChange",
1518
+ "onPointerDownOutside",
1519
+ "onSelect",
1520
+ "onValueChange",
1521
+ "open",
1522
+ "openOnChange",
1523
+ "openOnClick",
1524
+ "openOnKeyPress",
1525
+ "placeholder",
1526
+ "positioning",
1527
+ "readOnly",
1528
+ "required",
1529
+ "scrollToIndexFn",
1530
+ "selectionBehavior",
1531
+ "translations",
1532
+ "value",
1533
+ "alwaysSubmitOnEnter"
1534
+ ]);
1535
+ const splitProps = require_utils.createSplitProps(props);
1536
+ const itemGroupLabelProps = require_create_props.createProps()(["htmlFor"]);
1537
+ const splitItemGroupLabelProps = require_utils.createSplitProps(itemGroupLabelProps);
1538
+ const itemGroupProps = require_create_props.createProps()(["id"]);
1539
+ const splitItemGroupProps = require_utils.createSplitProps(itemGroupProps);
1540
+ const itemProps = require_create_props.createProps()(["item", "persistFocus"]);
1541
+ const splitItemProps = require_utils.createSplitProps(itemProps);
1542
+ //#endregion
1543
+ exports.anatomy = anatomy;
1544
+ exports.collection = collection;
1545
+ exports.connect = connect;
1546
+ exports.itemGroupLabelProps = itemGroupLabelProps;
1547
+ exports.itemGroupProps = itemGroupProps;
1548
+ exports.itemProps = itemProps;
1549
+ exports.machine = machine;
1550
+ exports.props = props;
1551
+ exports.splitItemGroupLabelProps = splitItemGroupLabelProps;
1552
+ exports.splitItemGroupProps = splitItemGroupProps;
1553
+ exports.splitItemProps = splitItemProps;
1554
+ exports.splitProps = splitProps;