@sprawlify/primitives 0.0.1

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 (378) hide show
  1. package/dist/anatomy.cjs +3 -0
  2. package/dist/anatomy.d.cts +2 -0
  3. package/dist/anatomy.d.mts +2 -0
  4. package/dist/anatomy.mjs +3 -0
  5. package/dist/aria-hidden-DqYx0f_y.mjs +177 -0
  6. package/dist/aria-hidden-DtLU6hSU.cjs +182 -0
  7. package/dist/aria-hidden.cjs +4 -0
  8. package/dist/aria-hidden.d.cts +16 -0
  9. package/dist/aria-hidden.d.mts +16 -0
  10. package/dist/aria-hidden.mjs +4 -0
  11. package/dist/auto-resize-D3qHtFy1.mjs +114 -0
  12. package/dist/auto-resize-xzlPFDyD.cjs +125 -0
  13. package/dist/auto-resize.cjs +5 -0
  14. package/dist/auto-resize.d.cts +17 -0
  15. package/dist/auto-resize.d.mts +17 -0
  16. package/dist/auto-resize.mjs +4 -0
  17. package/dist/chunk-CbDLau6x.cjs +34 -0
  18. package/dist/collection-8XqaNHs_.mjs +1279 -0
  19. package/dist/collection-DIoIDISa.cjs +1326 -0
  20. package/dist/collection.cjs +11 -0
  21. package/dist/collection.d.cts +5 -0
  22. package/dist/collection.d.mts +5 -0
  23. package/dist/collection.mjs +4 -0
  24. package/dist/color-BkAP1Tkd.d.mts +60 -0
  25. package/dist/color-VKewNv2e.d.cts +60 -0
  26. package/dist/color-utils-Cc5GVXZh.mjs +657 -0
  27. package/dist/color-utils-LER_6Zwu.cjs +680 -0
  28. package/dist/color-utils.cjs +7 -0
  29. package/dist/color-utils.d.cts +19 -0
  30. package/dist/color-utils.d.mts +19 -0
  31. package/dist/color-utils.mjs +4 -0
  32. package/dist/core-30pJjyC2.d.mts +49 -0
  33. package/dist/core-CQFbMdTl.cjs +176 -0
  34. package/dist/core-CefBjbst.d.cts +49 -0
  35. package/dist/core-DCFNMTZF.mjs +129 -0
  36. package/dist/core.cjs +12 -0
  37. package/dist/core.d.cts +3 -0
  38. package/dist/core.d.mts +3 -0
  39. package/dist/core.mjs +5 -0
  40. package/dist/create-anatomy-B3XYc-qG.d.mts +70 -0
  41. package/dist/create-anatomy-BGQ8pv8J.d.cts +70 -0
  42. package/dist/create-anatomy-BbDZbHpC.mjs +39 -0
  43. package/dist/create-anatomy-CDsIFUXg.cjs +45 -0
  44. package/dist/create-props-BnF_vl-E.mjs +5 -0
  45. package/dist/create-props-YKy7JIKj.cjs +11 -0
  46. package/dist/data-url-C3ITPVRX.d.cts +10 -0
  47. package/dist/data-url-DLwZ9M77.d.mts +10 -0
  48. package/dist/date-utils-D2xPHa_I.cjs +738 -0
  49. package/dist/date-utils-wEa1hhpc.mjs +474 -0
  50. package/dist/date-utils.cjs +46 -0
  51. package/dist/date-utils.d.cts +101 -0
  52. package/dist/date-utils.d.mts +2 -0
  53. package/dist/date-utils.mjs +3 -0
  54. package/dist/defineProperty-BoUOT9Ie.cjs +49 -0
  55. package/dist/defineProperty-DrXfyjd4.mjs +43 -0
  56. package/dist/dismissable-CTfKZ4OG.cjs +282 -0
  57. package/dist/dismissable-DDrx0xnH.mjs +271 -0
  58. package/dist/dismissable-layer-C7pZU2wi.d.cts +39 -0
  59. package/dist/dismissable-layer-t_b0fk-p.d.mts +39 -0
  60. package/dist/dismissable.cjs +7 -0
  61. package/dist/dismissable.d.cts +3 -0
  62. package/dist/dismissable.d.mts +3 -0
  63. package/dist/dismissable.mjs +6 -0
  64. package/dist/dom-query-CWZdWUGp.cjs +2141 -0
  65. package/dist/dom-query-DFCRhyj1.mjs +1374 -0
  66. package/dist/dom-query.cjs +130 -0
  67. package/dist/dom-query.d.cts +307 -0
  68. package/dist/dom-query.d.mts +307 -0
  69. package/dist/dom-query.mjs +3 -0
  70. package/dist/file-utils.cjs +220 -0
  71. package/dist/file-utils.d.cts +51 -0
  72. package/dist/file-utils.d.mts +51 -0
  73. package/dist/file-utils.mjs +210 -0
  74. package/dist/focus-trap-D-bypQEJ.mjs +485 -0
  75. package/dist/focus-trap-D4i52S9A.cjs +496 -0
  76. package/dist/focus-trap.cjs +5 -0
  77. package/dist/focus-trap.d.cts +88 -0
  78. package/dist/focus-trap.d.mts +88 -0
  79. package/dist/focus-trap.mjs +4 -0
  80. package/dist/focus-visible-DYTWdWpa.cjs +210 -0
  81. package/dist/focus-visible-irppYatv.mjs +175 -0
  82. package/dist/focus-visible.cjs +9 -0
  83. package/dist/focus-visible.d.cts +31 -0
  84. package/dist/focus-visible.d.mts +31 -0
  85. package/dist/focus-visible.mjs +4 -0
  86. package/dist/functions-BOkTDEFM.d.cts +15 -0
  87. package/dist/functions-IZtWcC8Q.d.mts +15 -0
  88. package/dist/highlight-word.cjs +100 -0
  89. package/dist/highlight-word.d.cts +24 -0
  90. package/dist/highlight-word.d.mts +24 -0
  91. package/dist/highlight-word.mjs +99 -0
  92. package/dist/hotkeys.cjs +758 -0
  93. package/dist/hotkeys.d.cts +130 -0
  94. package/dist/hotkeys.d.mts +130 -0
  95. package/dist/hotkeys.mjs +754 -0
  96. package/dist/i18n-utils.cjs +450 -0
  97. package/dist/i18n-utils.d.cts +61 -0
  98. package/dist/i18n-utils.d.mts +61 -0
  99. package/dist/i18n-utils.mjs +440 -0
  100. package/dist/index-BkzYij2j.d.mts +25 -0
  101. package/dist/index-Bqw3r34-.d.cts +1383 -0
  102. package/dist/index-C0MKXQmE.d.mts +1383 -0
  103. package/dist/index-C9-feK5c.d.cts +25 -0
  104. package/dist/index-CD5FN7kY.d.mts +114 -0
  105. package/dist/index-CJji6wHl.d.cts +15 -0
  106. package/dist/index-CNi5FkPe.d.mts +15 -0
  107. package/dist/index-D96rs8B0.d.mts +115 -0
  108. package/dist/index.cjs +0 -0
  109. package/dist/index.d.cts +1 -0
  110. package/dist/index.d.mts +1 -0
  111. package/dist/index.mjs +1 -0
  112. package/dist/interact-outside-BplxR9cR.mjs +200 -0
  113. package/dist/interact-outside-C8-oFBpB.cjs +205 -0
  114. package/dist/interact-outside.cjs +5 -0
  115. package/dist/interact-outside.d.cts +2 -0
  116. package/dist/interact-outside.d.mts +2 -0
  117. package/dist/interact-outside.mjs +5 -0
  118. package/dist/json-tree-utils.cjs +1512 -0
  119. package/dist/json-tree-utils.d.cts +117 -0
  120. package/dist/json-tree-utils.d.mts +117 -0
  121. package/dist/json-tree-utils.mjs +1463 -0
  122. package/dist/list-collection-BIMJGQjn.d.cts +61 -0
  123. package/dist/list-collection-Db3eixRU.d.mts +61 -0
  124. package/dist/live-region-CcZPGo89.cjs +52 -0
  125. package/dist/live-region-CnPh21WH.mjs +46 -0
  126. package/dist/live-region.cjs +3 -0
  127. package/dist/live-region.d.cts +2 -0
  128. package/dist/live-region.d.mts +2 -0
  129. package/dist/live-region.mjs +3 -0
  130. package/dist/machines/accordion/index.cjs +328 -0
  131. package/dist/machines/accordion/index.d.cts +83 -0
  132. package/dist/machines/accordion/index.d.mts +83 -0
  133. package/dist/machines/accordion/index.mjs +322 -0
  134. package/dist/machines/async-list/index.cjs +311 -0
  135. package/dist/machines/async-list/index.d.cts +89 -0
  136. package/dist/machines/async-list/index.d.mts +89 -0
  137. package/dist/machines/async-list/index.mjs +310 -0
  138. package/dist/machines/avatar/index.cjs +169 -0
  139. package/dist/machines/avatar/index.d.cts +63 -0
  140. package/dist/machines/avatar/index.d.mts +63 -0
  141. package/dist/machines/avatar/index.mjs +165 -0
  142. package/dist/machines/bottom-sheet/index.cjs +676 -0
  143. package/dist/machines/bottom-sheet/index.d.cts +239 -0
  144. package/dist/machines/bottom-sheet/index.d.mts +239 -0
  145. package/dist/machines/bottom-sheet/index.mjs +672 -0
  146. package/dist/machines/carousel/index.cjs +859 -0
  147. package/dist/machines/carousel/index.d.cts +146 -0
  148. package/dist/machines/carousel/index.d.mts +146 -0
  149. package/dist/machines/carousel/index.mjs +851 -0
  150. package/dist/machines/checkbox/index.cjs +316 -0
  151. package/dist/machines/checkbox/index.d.cts +81 -0
  152. package/dist/machines/checkbox/index.d.mts +81 -0
  153. package/dist/machines/checkbox/index.mjs +312 -0
  154. package/dist/machines/clipboard/index.cjs +225 -0
  155. package/dist/machines/clipboard/index.d.cts +68 -0
  156. package/dist/machines/clipboard/index.d.mts +68 -0
  157. package/dist/machines/clipboard/index.mjs +219 -0
  158. package/dist/machines/collapsible/index.cjs +362 -0
  159. package/dist/machines/collapsible/index.d.cts +82 -0
  160. package/dist/machines/collapsible/index.d.mts +82 -0
  161. package/dist/machines/collapsible/index.mjs +358 -0
  162. package/dist/machines/color-picker/index.cjs +1529 -0
  163. package/dist/machines/color-picker/index.d.cts +205 -0
  164. package/dist/machines/color-picker/index.d.mts +205 -0
  165. package/dist/machines/color-picker/index.mjs +1514 -0
  166. package/dist/machines/combobox/index.cjs +1593 -0
  167. package/dist/machines/combobox/index.d.cts +214 -0
  168. package/dist/machines/combobox/index.d.mts +214 -0
  169. package/dist/machines/combobox/index.mjs +1582 -0
  170. package/dist/machines/date-picker/index.cjs +2177 -0
  171. package/dist/machines/date-picker/index.d.cts +350 -0
  172. package/dist/machines/date-picker/index.d.mts +350 -0
  173. package/dist/machines/date-picker/index.mjs +2161 -0
  174. package/dist/machines/dialog/index.cjs +325 -0
  175. package/dist/machines/dialog/index.d.cts +80 -0
  176. package/dist/machines/dialog/index.d.mts +80 -0
  177. package/dist/machines/dialog/index.mjs +321 -0
  178. package/dist/machines/editable/index.cjs +551 -0
  179. package/dist/machines/editable/index.d.cts +114 -0
  180. package/dist/machines/editable/index.d.mts +114 -0
  181. package/dist/machines/editable/index.mjs +547 -0
  182. package/dist/machines/floating-panel/index.cjs +995 -0
  183. package/dist/machines/floating-panel/index.d.cts +147 -0
  184. package/dist/machines/floating-panel/index.d.mts +147 -0
  185. package/dist/machines/floating-panel/index.mjs +988 -0
  186. package/dist/machines/hover-card/index.cjs +383 -0
  187. package/dist/machines/hover-card/index.d.cts +69 -0
  188. package/dist/machines/hover-card/index.d.mts +69 -0
  189. package/dist/machines/hover-card/index.mjs +379 -0
  190. package/dist/machines/image-cropper/index.cjs +1995 -0
  191. package/dist/machines/image-cropper/index.d.cts +182 -0
  192. package/dist/machines/image-cropper/index.d.mts +182 -0
  193. package/dist/machines/image-cropper/index.mjs +1990 -0
  194. package/dist/machines/listbox/index.cjs +794 -0
  195. package/dist/machines/listbox/index.d.cts +168 -0
  196. package/dist/machines/listbox/index.d.mts +168 -0
  197. package/dist/machines/listbox/index.mjs +782 -0
  198. package/dist/machines/marquee/index.cjs +395 -0
  199. package/dist/machines/marquee/index.d.cts +102 -0
  200. package/dist/machines/marquee/index.d.mts +102 -0
  201. package/dist/machines/marquee/index.mjs +391 -0
  202. package/dist/machines/menu/index.cjs +1298 -0
  203. package/dist/machines/menu/index.d.cts +175 -0
  204. package/dist/machines/menu/index.d.mts +175 -0
  205. package/dist/machines/menu/index.mjs +1286 -0
  206. package/dist/machines/navigation-menu/index.cjs +861 -0
  207. package/dist/machines/navigation-menu/index.d.cts +127 -0
  208. package/dist/machines/navigation-menu/index.d.mts +127 -0
  209. package/dist/machines/navigation-menu/index.mjs +857 -0
  210. package/dist/machines/number-input/index.cjs +996 -0
  211. package/dist/machines/number-input/index.d.cts +134 -0
  212. package/dist/machines/number-input/index.d.mts +134 -0
  213. package/dist/machines/number-input/index.mjs +991 -0
  214. package/dist/machines/pagination/index.cjs +419 -0
  215. package/dist/machines/pagination/index.d.cts +139 -0
  216. package/dist/machines/pagination/index.d.mts +139 -0
  217. package/dist/machines/pagination/index.mjs +411 -0
  218. package/dist/machines/password-input/index.cjs +228 -0
  219. package/dist/machines/password-input/index.d.cts +71 -0
  220. package/dist/machines/password-input/index.d.mts +71 -0
  221. package/dist/machines/password-input/index.mjs +224 -0
  222. package/dist/machines/pin-input/index.cjs +523 -0
  223. package/dist/machines/pin-input/index.d.cts +105 -0
  224. package/dist/machines/pin-input/index.d.mts +105 -0
  225. package/dist/machines/pin-input/index.mjs +519 -0
  226. package/dist/machines/popover/index.cjs +430 -0
  227. package/dist/machines/popover/index.d.cts +88 -0
  228. package/dist/machines/popover/index.d.mts +88 -0
  229. package/dist/machines/popover/index.mjs +426 -0
  230. package/dist/machines/presence/index.cjs +192 -0
  231. package/dist/machines/presence/index.d.cts +44 -0
  232. package/dist/machines/presence/index.d.mts +44 -0
  233. package/dist/machines/presence/index.mjs +190 -0
  234. package/dist/machines/progress/index.cjs +288 -0
  235. package/dist/machines/progress/index.d.cts +96 -0
  236. package/dist/machines/progress/index.d.mts +96 -0
  237. package/dist/machines/progress/index.mjs +284 -0
  238. package/dist/machines/qr-code/index.cjs +172 -0
  239. package/dist/machines/qr-code/index.d.cts +70 -0
  240. package/dist/machines/qr-code/index.d.mts +70 -0
  241. package/dist/machines/qr-code/index.mjs +167 -0
  242. package/dist/machines/radio-group/index.cjs +436 -0
  243. package/dist/machines/radio-group/index.d.cts +106 -0
  244. package/dist/machines/radio-group/index.d.mts +106 -0
  245. package/dist/machines/radio-group/index.mjs +430 -0
  246. package/dist/machines/rating-group/index.cjs +405 -0
  247. package/dist/machines/rating-group/index.d.cts +101 -0
  248. package/dist/machines/rating-group/index.d.mts +101 -0
  249. package/dist/machines/rating-group/index.mjs +399 -0
  250. package/dist/machines/scroll-area/index.cjs +857 -0
  251. package/dist/machines/scroll-area/index.d.cts +159 -0
  252. package/dist/machines/scroll-area/index.d.mts +159 -0
  253. package/dist/machines/scroll-area/index.mjs +853 -0
  254. package/dist/machines/select/index.cjs +1165 -0
  255. package/dist/machines/select/index.d.cts +183 -0
  256. package/dist/machines/select/index.d.mts +183 -0
  257. package/dist/machines/select/index.mjs +1154 -0
  258. package/dist/machines/signature-pad/index.cjs +334 -0
  259. package/dist/machines/signature-pad/index.d.cts +108 -0
  260. package/dist/machines/signature-pad/index.d.mts +108 -0
  261. package/dist/machines/signature-pad/index.mjs +328 -0
  262. package/dist/machines/slider/index.cjs +957 -0
  263. package/dist/machines/slider/index.d.cts +149 -0
  264. package/dist/machines/slider/index.d.mts +149 -0
  265. package/dist/machines/slider/index.mjs +949 -0
  266. package/dist/machines/splitter/index.cjs +1112 -0
  267. package/dist/machines/splitter/index.d.cts +155 -0
  268. package/dist/machines/splitter/index.d.mts +155 -0
  269. package/dist/machines/splitter/index.mjs +1103 -0
  270. package/dist/machines/steps/index.cjs +289 -0
  271. package/dist/machines/steps/index.d.cts +97 -0
  272. package/dist/machines/steps/index.d.mts +97 -0
  273. package/dist/machines/steps/index.mjs +285 -0
  274. package/dist/machines/switch/index.cjs +305 -0
  275. package/dist/machines/switch/index.d.cts +80 -0
  276. package/dist/machines/switch/index.d.mts +80 -0
  277. package/dist/machines/switch/index.mjs +301 -0
  278. package/dist/machines/tabs/index.cjs +508 -0
  279. package/dist/machines/tabs/index.d.cts +111 -0
  280. package/dist/machines/tabs/index.d.mts +111 -0
  281. package/dist/machines/tabs/index.mjs +500 -0
  282. package/dist/machines/tags-input/index.cjs +1127 -0
  283. package/dist/machines/tags-input/index.d.cts +179 -0
  284. package/dist/machines/tags-input/index.d.mts +179 -0
  285. package/dist/machines/tags-input/index.mjs +1121 -0
  286. package/dist/machines/timer/index.cjs +329 -0
  287. package/dist/machines/timer/index.d.cts +98 -0
  288. package/dist/machines/timer/index.d.mts +98 -0
  289. package/dist/machines/timer/index.mjs +324 -0
  290. package/dist/machines/toast/index.cjs +1155 -0
  291. package/dist/machines/toast/index.d.cts +195 -0
  292. package/dist/machines/toast/index.d.mts +195 -0
  293. package/dist/machines/toast/index.mjs +1151 -0
  294. package/dist/machines/toggle/index.cjs +103 -0
  295. package/dist/machines/toggle/index.d.cts +46 -0
  296. package/dist/machines/toggle/index.d.mts +46 -0
  297. package/dist/machines/toggle/index.mjs +99 -0
  298. package/dist/machines/toggle-group/index.cjs +328 -0
  299. package/dist/machines/toggle-group/index.d.cts +81 -0
  300. package/dist/machines/toggle-group/index.d.mts +81 -0
  301. package/dist/machines/toggle-group/index.mjs +322 -0
  302. package/dist/machines/tooltip/index.cjs +516 -0
  303. package/dist/machines/tooltip/index.d.cts +71 -0
  304. package/dist/machines/tooltip/index.d.mts +71 -0
  305. package/dist/machines/tooltip/index.mjs +512 -0
  306. package/dist/machines/tour/index.cjs +1108 -0
  307. package/dist/machines/tour/index.d.cts +206 -0
  308. package/dist/machines/tour/index.d.mts +206 -0
  309. package/dist/machines/tour/index.mjs +1101 -0
  310. package/dist/machines/tree-view/index.cjs +1271 -0
  311. package/dist/machines/tree-view/index.d.cts +215 -0
  312. package/dist/machines/tree-view/index.d.mts +215 -0
  313. package/dist/machines/tree-view/index.mjs +1263 -0
  314. package/dist/node-BctU8GXk.d.mts +24 -0
  315. package/dist/node-CSsuPZVZ.d.cts +24 -0
  316. package/dist/popper-BPJeAtcA.mjs +349 -0
  317. package/dist/popper-D0FAW_p7.cjs +373 -0
  318. package/dist/popper.cjs +8 -0
  319. package/dist/popper.d.cts +74 -0
  320. package/dist/popper.d.mts +2 -0
  321. package/dist/popper.mjs +5 -0
  322. package/dist/raf-BnlYUlDi.d.mts +15 -0
  323. package/dist/raf-Cd2FGy0z.d.cts +15 -0
  324. package/dist/rect-utils-0ellN0a_.mjs +854 -0
  325. package/dist/rect-utils-DKLRhP8G.cjs +1147 -0
  326. package/dist/rect-utils.cjs +51 -0
  327. package/dist/rect-utils.d.cts +198 -0
  328. package/dist/rect-utils.d.mts +198 -0
  329. package/dist/rect-utils.mjs +3 -0
  330. package/dist/remove-scroll-Lrfv79X_.mjs +58 -0
  331. package/dist/remove-scroll-Uvzg1L9r.cjs +63 -0
  332. package/dist/remove-scroll.cjs +0 -0
  333. package/dist/remove-scroll.d.cts +1 -0
  334. package/dist/remove-scroll.d.mts +1 -0
  335. package/dist/remove-scroll.mjs +1 -0
  336. package/dist/scroll-snap-CrTmQRzA.mjs +152 -0
  337. package/dist/scroll-snap-zyiZLv7W.cjs +175 -0
  338. package/dist/scroll-snap.cjs +7 -0
  339. package/dist/scroll-snap.d.cts +14 -0
  340. package/dist/scroll-snap.d.mts +14 -0
  341. package/dist/scroll-snap.mjs +4 -0
  342. package/dist/selection-BIhSzkF7.d.mts +50 -0
  343. package/dist/selection-CS1GBp8e.d.cts +50 -0
  344. package/dist/store-BZcXv49B.cjs +305 -0
  345. package/dist/store-DEojWy9H.mjs +263 -0
  346. package/dist/store.cjs +9 -0
  347. package/dist/store.d.cts +26 -0
  348. package/dist/store.d.mts +26 -0
  349. package/dist/store.mjs +3 -0
  350. package/dist/stringify-state.cjs +49 -0
  351. package/dist/stringify-state.d.cts +8 -0
  352. package/dist/stringify-state.d.mts +8 -0
  353. package/dist/stringify-state.mjs +46 -0
  354. package/dist/tree-collection-BwU5WhGQ.d.mts +78 -0
  355. package/dist/tree-collection-DP_eznnI.d.cts +78 -0
  356. package/dist/typeahead-BdNwVP09.d.cts +45 -0
  357. package/dist/typeahead-XN6lZ7G9.d.mts +45 -0
  358. package/dist/types-BivBkYg9.d.cts +57 -0
  359. package/dist/types-Bl_6JtPQ.d.mts +57 -0
  360. package/dist/types-CPUMVt7c.d.mts +54 -0
  361. package/dist/types-CT_W6HWr.d.cts +54 -0
  362. package/dist/types-DDTcG99l.d.mts +201 -0
  363. package/dist/types-DejIu60O.d.cts +201 -0
  364. package/dist/types-DiIdKZ3K.d.cts +45 -0
  365. package/dist/types-GxLIgJib.d.cts +17 -0
  366. package/dist/types.cjs +15 -0
  367. package/dist/types.d.cts +2 -0
  368. package/dist/types.d.mts +2 -0
  369. package/dist/types.mjs +14 -0
  370. package/dist/utils-BZyrxWWR.mjs +525 -0
  371. package/dist/utils-_6frwjgJ.cjs +1040 -0
  372. package/dist/utils.cjs +88 -0
  373. package/dist/utils.d.cts +144 -0
  374. package/dist/utils.d.mts +144 -0
  375. package/dist/utils.mjs +3 -0
  376. package/dist/wait-for-CMjPsqWk.d.cts +10 -0
  377. package/dist/wait-for-D2nkdD4z.d.mts +10 -0
  378. package/package.json +399 -0
@@ -0,0 +1,794 @@
1
+ const require_create_anatomy = require('../../create-anatomy-CDsIFUXg.cjs');
2
+ const require_dom_query = require('../../dom-query-CWZdWUGp.cjs');
3
+ const require_utils = require('../../utils-_6frwjgJ.cjs');
4
+ const require_collection = require('../../collection-DIoIDISa.cjs');
5
+ const require_core = require('../../core-CQFbMdTl.cjs');
6
+ const require_focus_visible = require('../../focus-visible-DYTWdWpa.cjs');
7
+ const require_create_props = require('../../create-props-YKy7JIKj.cjs');
8
+
9
+ //#region src/machines/listbox/listbox.anatomy.ts
10
+ const anatomy = require_create_anatomy.createAnatomy("listbox").parts("label", "input", "item", "itemText", "itemIndicator", "itemGroup", "itemGroupLabel", "content", "root", "valueText");
11
+ const parts = anatomy.build();
12
+
13
+ //#endregion
14
+ //#region src/machines/listbox/listbox.collection.ts
15
+ const collection = (options) => {
16
+ return new require_collection.ListCollection(options);
17
+ };
18
+ collection.empty = () => {
19
+ return new require_collection.ListCollection({ items: [] });
20
+ };
21
+ const gridCollection = (options) => {
22
+ return new require_collection.GridCollection(options);
23
+ };
24
+ gridCollection.empty = () => {
25
+ return new require_collection.GridCollection({
26
+ items: [],
27
+ columnCount: 0
28
+ });
29
+ };
30
+
31
+ //#endregion
32
+ //#region src/machines/listbox/listbox.dom.ts
33
+ const getRootId = (ctx) => ctx.ids?.root ?? `listbox:${ctx.id}`;
34
+ const getContentId = (ctx) => ctx.ids?.content ?? `listbox:${ctx.id}:content`;
35
+ const getLabelId = (ctx) => ctx.ids?.label ?? `listbox:${ctx.id}:label`;
36
+ const getItemId = (ctx, id) => ctx.ids?.item?.(id) ?? `listbox:${ctx.id}:item:${id}`;
37
+ const getItemGroupId = (ctx, id) => ctx.ids?.itemGroup?.(id) ?? `listbox:${ctx.id}:item-group:${id}`;
38
+ const getItemGroupLabelId = (ctx, id) => ctx.ids?.itemGroupLabel?.(id) ?? `listbox:${ctx.id}:item-group-label:${id}`;
39
+ const getContentEl = (ctx) => ctx.getById(getContentId(ctx));
40
+ const getItemEl = (ctx, id) => ctx.getById(getItemId(ctx, id));
41
+
42
+ //#endregion
43
+ //#region src/machines/listbox/listbox.connect.ts
44
+ function connect(service, normalize) {
45
+ const { context, prop, scope, computed, send, refs } = service;
46
+ const disabled = prop("disabled");
47
+ const collection$1 = prop("collection");
48
+ const layout = require_collection.isGridCollection(collection$1) ? "grid" : "list";
49
+ const focused = context.get("focused");
50
+ const focusVisible = refs.get("focusVisible") && focused;
51
+ const inputState = refs.get("inputState");
52
+ const value = context.get("value");
53
+ const selectedItems = context.get("selectedItems");
54
+ const highlightedValue = context.get("highlightedValue");
55
+ const highlightedItem = context.get("highlightedItem");
56
+ const isTypingAhead = computed("isTypingAhead");
57
+ const interactive = computed("isInteractive");
58
+ const ariaActiveDescendant = highlightedValue ? getItemId(scope, highlightedValue) : void 0;
59
+ function getItemState(props$1) {
60
+ const itemDisabled = collection$1.getItemDisabled(props$1.item);
61
+ const value$1 = collection$1.getItemValue(props$1.item);
62
+ require_utils.ensure(value$1, () => `[sprawlify-js] No value found for item ${JSON.stringify(props$1.item)}`);
63
+ const highlighted = highlightedValue === value$1;
64
+ return {
65
+ value: value$1,
66
+ disabled: Boolean(disabled || itemDisabled),
67
+ focused: highlighted && focused,
68
+ focusVisible: highlighted && focusVisible,
69
+ highlighted: highlighted && (inputState.focused ? focused : focusVisible),
70
+ selected: context.get("value").includes(value$1)
71
+ };
72
+ }
73
+ return {
74
+ empty: value.length === 0,
75
+ highlightedItem,
76
+ highlightedValue,
77
+ clearHighlightedValue() {
78
+ send({
79
+ type: "HIGHLIGHTED_VALUE.SET",
80
+ value: null
81
+ });
82
+ },
83
+ selectedItems,
84
+ hasSelectedItems: computed("hasSelectedItems"),
85
+ value,
86
+ valueAsString: computed("valueAsString"),
87
+ collection: collection$1,
88
+ disabled: !!disabled,
89
+ selectValue(value$1) {
90
+ send({
91
+ type: "ITEM.SELECT",
92
+ value: value$1
93
+ });
94
+ },
95
+ setValue(value$1) {
96
+ send({
97
+ type: "VALUE.SET",
98
+ value: value$1
99
+ });
100
+ },
101
+ selectAll() {
102
+ if (!computed("multiple")) throw new Error("[sprawlify-js] Cannot select all items in a single-select listbox");
103
+ send({
104
+ type: "VALUE.SET",
105
+ value: collection$1.getValues()
106
+ });
107
+ },
108
+ highlightValue(value$1) {
109
+ send({
110
+ type: "HIGHLIGHTED_VALUE.SET",
111
+ value: value$1
112
+ });
113
+ },
114
+ clearValue(value$1) {
115
+ if (value$1) send({
116
+ type: "ITEM.CLEAR",
117
+ value: value$1
118
+ });
119
+ else send({ type: "VALUE.CLEAR" });
120
+ },
121
+ getItemState,
122
+ getRootProps() {
123
+ return normalize.element({
124
+ ...parts.root.attrs,
125
+ dir: prop("dir"),
126
+ id: getRootId(scope),
127
+ "data-orientation": prop("orientation"),
128
+ "data-disabled": require_dom_query.dataAttr(disabled)
129
+ });
130
+ },
131
+ getInputProps(props$1 = {}) {
132
+ return normalize.input({
133
+ ...parts.input.attrs,
134
+ dir: prop("dir"),
135
+ disabled,
136
+ "data-disabled": require_dom_query.dataAttr(disabled),
137
+ autoComplete: "off",
138
+ autoCorrect: "off",
139
+ "aria-haspopup": "listbox",
140
+ "aria-controls": getContentId(scope),
141
+ "aria-autocomplete": "list",
142
+ "aria-activedescendant": ariaActiveDescendant,
143
+ spellCheck: false,
144
+ enterKeyHint: "go",
145
+ onFocus() {
146
+ queueMicrotask(() => {
147
+ send({
148
+ type: "INPUT.FOCUS",
149
+ autoHighlight: !!props$1?.autoHighlight
150
+ });
151
+ });
152
+ },
153
+ onBlur() {
154
+ send({
155
+ type: "CONTENT.BLUR",
156
+ src: "input"
157
+ });
158
+ },
159
+ onInput(event) {
160
+ if (!props$1?.autoHighlight) return;
161
+ if (event.currentTarget.value.trim()) return;
162
+ queueMicrotask(() => {
163
+ send({
164
+ type: "HIGHLIGHTED_VALUE.SET",
165
+ value: null
166
+ });
167
+ });
168
+ },
169
+ onKeyDown(event) {
170
+ if (event.defaultPrevented) return;
171
+ if (require_dom_query.isComposingEvent(event)) return;
172
+ const nativeEvent = require_dom_query.getNativeEvent(event);
173
+ const forwardEvent = () => {
174
+ event.preventDefault();
175
+ const keyboardEvent = new (scope.getWin()).KeyboardEvent(nativeEvent.type, nativeEvent);
176
+ getContentEl(scope)?.dispatchEvent(keyboardEvent);
177
+ };
178
+ switch (nativeEvent.key) {
179
+ case "ArrowLeft":
180
+ case "ArrowRight":
181
+ if (!require_collection.isGridCollection(collection$1)) return;
182
+ if (event.ctrlKey) return;
183
+ forwardEvent();
184
+ case "Home":
185
+ case "End":
186
+ if (highlightedValue == null && event.shiftKey) return;
187
+ forwardEvent();
188
+ case "ArrowDown":
189
+ case "ArrowUp":
190
+ forwardEvent();
191
+ break;
192
+ case "Enter":
193
+ if (highlightedValue != null) {
194
+ event.preventDefault();
195
+ send({
196
+ type: "ITEM.CLICK",
197
+ value: highlightedValue
198
+ });
199
+ }
200
+ break;
201
+ default: break;
202
+ }
203
+ }
204
+ });
205
+ },
206
+ getLabelProps() {
207
+ return normalize.element({
208
+ dir: prop("dir"),
209
+ id: getLabelId(scope),
210
+ ...parts.label.attrs,
211
+ "data-disabled": require_dom_query.dataAttr(disabled)
212
+ });
213
+ },
214
+ getValueTextProps() {
215
+ return normalize.element({
216
+ ...parts.valueText.attrs,
217
+ dir: prop("dir"),
218
+ "data-disabled": require_dom_query.dataAttr(disabled)
219
+ });
220
+ },
221
+ getItemProps(props$1) {
222
+ const itemState = getItemState(props$1);
223
+ return normalize.element({
224
+ id: getItemId(scope, itemState.value),
225
+ role: "option",
226
+ ...parts.item.attrs,
227
+ dir: prop("dir"),
228
+ "data-value": itemState.value,
229
+ "aria-selected": itemState.selected,
230
+ "data-selected": require_dom_query.dataAttr(itemState.selected),
231
+ "data-layout": layout,
232
+ "data-state": itemState.selected ? "checked" : "unchecked",
233
+ "data-orientation": prop("orientation"),
234
+ "data-highlighted": require_dom_query.dataAttr(itemState.highlighted),
235
+ "data-disabled": require_dom_query.dataAttr(itemState.disabled),
236
+ "aria-disabled": require_dom_query.ariaAttr(itemState.disabled),
237
+ onPointerMove(event) {
238
+ if (!props$1.highlightOnHover) return;
239
+ if (itemState.disabled || event.pointerType !== "mouse") return;
240
+ if (itemState.highlighted) return;
241
+ send({
242
+ type: "ITEM.POINTER_MOVE",
243
+ value: itemState.value
244
+ });
245
+ },
246
+ onMouseDown(event) {
247
+ event.preventDefault();
248
+ getContentEl(scope)?.focus();
249
+ },
250
+ onClick(event) {
251
+ if (event.defaultPrevented) return;
252
+ if (itemState.disabled) return;
253
+ send({
254
+ type: "ITEM.CLICK",
255
+ value: itemState.value,
256
+ shiftKey: event.shiftKey,
257
+ anchorValue: highlightedValue,
258
+ metaKey: require_dom_query.isCtrlOrMetaKey(event)
259
+ });
260
+ }
261
+ });
262
+ },
263
+ getItemTextProps(props$1) {
264
+ const itemState = getItemState(props$1);
265
+ return normalize.element({
266
+ ...parts.itemText.attrs,
267
+ "data-state": itemState.selected ? "checked" : "unchecked",
268
+ "data-disabled": require_dom_query.dataAttr(itemState.disabled),
269
+ "data-highlighted": require_dom_query.dataAttr(itemState.highlighted)
270
+ });
271
+ },
272
+ getItemIndicatorProps(props$1) {
273
+ const itemState = getItemState(props$1);
274
+ return normalize.element({
275
+ ...parts.itemIndicator.attrs,
276
+ "aria-hidden": true,
277
+ "data-state": itemState.selected ? "checked" : "unchecked",
278
+ hidden: !itemState.selected
279
+ });
280
+ },
281
+ getItemGroupLabelProps(props$1) {
282
+ const { htmlFor } = props$1;
283
+ return normalize.element({
284
+ ...parts.itemGroupLabel.attrs,
285
+ id: getItemGroupLabelId(scope, htmlFor),
286
+ dir: prop("dir"),
287
+ role: "presentation"
288
+ });
289
+ },
290
+ getItemGroupProps(props$1) {
291
+ const { id } = props$1;
292
+ return normalize.element({
293
+ ...parts.itemGroup.attrs,
294
+ "data-disabled": require_dom_query.dataAttr(disabled),
295
+ "data-orientation": prop("orientation"),
296
+ "data-empty": require_dom_query.dataAttr(collection$1.size === 0),
297
+ id: getItemGroupId(scope, id),
298
+ "aria-labelledby": getItemGroupLabelId(scope, id),
299
+ role: "group",
300
+ dir: prop("dir")
301
+ });
302
+ },
303
+ getContentProps() {
304
+ return normalize.element({
305
+ dir: prop("dir"),
306
+ id: getContentId(scope),
307
+ role: "listbox",
308
+ ...parts.content.attrs,
309
+ "data-activedescendant": ariaActiveDescendant,
310
+ "aria-activedescendant": ariaActiveDescendant,
311
+ "data-orientation": prop("orientation"),
312
+ "aria-multiselectable": computed("multiple") ? true : void 0,
313
+ "aria-labelledby": getLabelId(scope),
314
+ tabIndex: 0,
315
+ "data-layout": layout,
316
+ "data-empty": require_dom_query.dataAttr(collection$1.size === 0),
317
+ style: { "--column-count": require_collection.isGridCollection(collection$1) ? collection$1.columnCount : 1 },
318
+ onFocus() {
319
+ send({ type: "CONTENT.FOCUS" });
320
+ },
321
+ onBlur() {
322
+ send({ type: "CONTENT.BLUR" });
323
+ },
324
+ onKeyDown(event) {
325
+ if (!interactive) return;
326
+ if (!require_dom_query.contains(event.currentTarget, require_dom_query.getEventTarget(event))) return;
327
+ const shiftKey = event.shiftKey;
328
+ const keyMap = {
329
+ ArrowUp(event$1) {
330
+ let nextValue = null;
331
+ if (require_collection.isGridCollection(collection$1) && highlightedValue) nextValue = collection$1.getPreviousRowValue(highlightedValue);
332
+ else if (highlightedValue) nextValue = collection$1.getPreviousValue(highlightedValue);
333
+ if (!nextValue && (prop("loopFocus") || !highlightedValue)) nextValue = collection$1.lastValue;
334
+ if (!nextValue) return;
335
+ event$1.preventDefault();
336
+ send({
337
+ type: "NAVIGATE",
338
+ value: nextValue,
339
+ shiftKey,
340
+ anchorValue: highlightedValue
341
+ });
342
+ },
343
+ ArrowDown(event$1) {
344
+ let nextValue = null;
345
+ if (require_collection.isGridCollection(collection$1) && highlightedValue) nextValue = collection$1.getNextRowValue(highlightedValue);
346
+ else if (highlightedValue) nextValue = collection$1.getNextValue(highlightedValue);
347
+ if (!nextValue && (prop("loopFocus") || !highlightedValue)) nextValue = collection$1.firstValue;
348
+ if (!nextValue) return;
349
+ event$1.preventDefault();
350
+ send({
351
+ type: "NAVIGATE",
352
+ value: nextValue,
353
+ shiftKey,
354
+ anchorValue: highlightedValue
355
+ });
356
+ },
357
+ ArrowLeft() {
358
+ if (!require_collection.isGridCollection(collection$1) && prop("orientation") === "vertical") return;
359
+ let nextValue = highlightedValue ? collection$1.getPreviousValue(highlightedValue) : null;
360
+ if (!nextValue && prop("loopFocus")) nextValue = collection$1.lastValue;
361
+ if (!nextValue) return;
362
+ event.preventDefault();
363
+ send({
364
+ type: "NAVIGATE",
365
+ value: nextValue,
366
+ shiftKey,
367
+ anchorValue: highlightedValue
368
+ });
369
+ },
370
+ ArrowRight() {
371
+ if (!require_collection.isGridCollection(collection$1) && prop("orientation") === "vertical") return;
372
+ let nextValue = highlightedValue ? collection$1.getNextValue(highlightedValue) : null;
373
+ if (!nextValue && prop("loopFocus")) nextValue = collection$1.firstValue;
374
+ if (!nextValue) return;
375
+ event.preventDefault();
376
+ send({
377
+ type: "NAVIGATE",
378
+ value: nextValue,
379
+ shiftKey,
380
+ anchorValue: highlightedValue
381
+ });
382
+ },
383
+ Home(event$1) {
384
+ event$1.preventDefault();
385
+ let nextValue = collection$1.firstValue;
386
+ send({
387
+ type: "NAVIGATE",
388
+ value: nextValue,
389
+ shiftKey,
390
+ anchorValue: highlightedValue
391
+ });
392
+ },
393
+ End(event$1) {
394
+ event$1.preventDefault();
395
+ let nextValue = collection$1.lastValue;
396
+ send({
397
+ type: "NAVIGATE",
398
+ value: nextValue,
399
+ shiftKey,
400
+ anchorValue: highlightedValue
401
+ });
402
+ },
403
+ Enter() {
404
+ send({
405
+ type: "ITEM.CLICK",
406
+ value: highlightedValue
407
+ });
408
+ },
409
+ a(event$1) {
410
+ if (require_dom_query.isCtrlOrMetaKey(event$1) && computed("multiple") && !prop("disallowSelectAll")) {
411
+ event$1.preventDefault();
412
+ send({
413
+ type: "VALUE.SET",
414
+ value: collection$1.getValues()
415
+ });
416
+ }
417
+ },
418
+ Space(event$1) {
419
+ if (isTypingAhead && prop("typeahead")) send({
420
+ type: "CONTENT.TYPEAHEAD",
421
+ key: event$1.key
422
+ });
423
+ else keyMap.Enter?.(event$1);
424
+ },
425
+ Escape(event$1) {
426
+ if (prop("deselectable") && value.length > 0) {
427
+ event$1.preventDefault();
428
+ event$1.stopPropagation();
429
+ send({ type: "VALUE.CLEAR" });
430
+ }
431
+ }
432
+ };
433
+ const exec = keyMap[require_dom_query.getEventKey(event)];
434
+ if (exec) {
435
+ exec(event);
436
+ return;
437
+ }
438
+ if (require_dom_query.isEditableElement(require_dom_query.getEventTarget(event))) return;
439
+ if (require_dom_query.getByTypeahead.isValidEvent(event) && prop("typeahead")) {
440
+ send({
441
+ type: "CONTENT.TYPEAHEAD",
442
+ key: event.key
443
+ });
444
+ event.preventDefault();
445
+ }
446
+ }
447
+ });
448
+ }
449
+ };
450
+ }
451
+
452
+ //#endregion
453
+ //#region src/machines/listbox/listbox.machine.ts
454
+ const { guards, createMachine } = require_core.setup();
455
+ const { or } = guards;
456
+ const machine = createMachine({
457
+ props({ props: props$1 }) {
458
+ return {
459
+ loopFocus: false,
460
+ composite: true,
461
+ defaultValue: [],
462
+ multiple: false,
463
+ typeahead: true,
464
+ collection: collection.empty(),
465
+ orientation: "vertical",
466
+ selectionMode: "single",
467
+ ...props$1
468
+ };
469
+ },
470
+ context({ prop, bindable }) {
471
+ return {
472
+ value: bindable(() => ({
473
+ defaultValue: prop("defaultValue"),
474
+ value: prop("value"),
475
+ isEqual: require_utils.isEqual,
476
+ onChange(value) {
477
+ const items = prop("collection").findMany(value);
478
+ return prop("onValueChange")?.({
479
+ value,
480
+ items
481
+ });
482
+ }
483
+ })),
484
+ highlightedValue: bindable(() => ({
485
+ defaultValue: prop("defaultHighlightedValue") || null,
486
+ value: prop("highlightedValue"),
487
+ sync: true,
488
+ onChange(value) {
489
+ prop("onHighlightChange")?.({
490
+ highlightedValue: value,
491
+ highlightedItem: prop("collection").find(value),
492
+ highlightedIndex: prop("collection").indexOf(value)
493
+ });
494
+ }
495
+ })),
496
+ highlightedItem: bindable(() => ({ defaultValue: null })),
497
+ selectedItems: bindable(() => {
498
+ const value = prop("value") ?? prop("defaultValue") ?? [];
499
+ return { defaultValue: prop("collection").findMany(value) };
500
+ }),
501
+ focused: bindable(() => ({
502
+ sync: true,
503
+ defaultValue: false
504
+ }))
505
+ };
506
+ },
507
+ refs() {
508
+ return {
509
+ typeahead: { ...require_dom_query.getByTypeahead.defaultOptions },
510
+ focusVisible: false,
511
+ inputState: {
512
+ autoHighlight: false,
513
+ focused: false
514
+ }
515
+ };
516
+ },
517
+ computed: {
518
+ hasSelectedItems: ({ context }) => context.get("value").length > 0,
519
+ isTypingAhead: ({ refs }) => refs.get("typeahead").keysSoFar !== "",
520
+ isInteractive: ({ prop }) => !prop("disabled"),
521
+ selection: ({ context, prop }) => {
522
+ const selection = new require_collection.Selection(context.get("value"));
523
+ selection.selectionMode = prop("selectionMode");
524
+ selection.deselectable = !!prop("deselectable");
525
+ return selection;
526
+ },
527
+ multiple: ({ prop }) => prop("selectionMode") === "multiple" || prop("selectionMode") === "extended",
528
+ valueAsString: ({ context, prop }) => prop("collection").stringifyItems(context.get("selectedItems"))
529
+ },
530
+ initialState() {
531
+ return "idle";
532
+ },
533
+ watch({ context, prop, track, action }) {
534
+ track([() => context.get("value").toString()], () => {
535
+ action(["syncSelectedItems"]);
536
+ });
537
+ track([() => context.get("highlightedValue")], () => {
538
+ action(["syncHighlightedItem"]);
539
+ });
540
+ track([() => prop("collection").toString()], () => {
541
+ action(["syncHighlightedValue"]);
542
+ });
543
+ },
544
+ effects: ["trackFocusVisible"],
545
+ on: {
546
+ "HIGHLIGHTED_VALUE.SET": { actions: ["setHighlightedItem"] },
547
+ "ITEM.SELECT": { actions: ["selectItem"] },
548
+ "ITEM.CLEAR": { actions: ["clearItem"] },
549
+ "VALUE.SET": { actions: ["setSelectedItems"] },
550
+ "VALUE.CLEAR": { actions: ["clearSelectedItems"] }
551
+ },
552
+ states: { idle: {
553
+ effects: ["scrollToHighlightedItem"],
554
+ on: {
555
+ "INPUT.FOCUS": { actions: ["setFocused", "setInputState"] },
556
+ "CONTENT.FOCUS": [{
557
+ guard: or("hasSelectedValue", "hasHighlightedValue"),
558
+ actions: ["setFocused"]
559
+ }, { actions: ["setFocused", "setDefaultHighlightedValue"] }],
560
+ "CONTENT.BLUR": { actions: ["clearFocused", "clearInputState"] },
561
+ "ITEM.CLICK": { actions: ["setHighlightedItem", "selectHighlightedItem"] },
562
+ "CONTENT.TYPEAHEAD": { actions: ["setFocused", "highlightMatchingItem"] },
563
+ "ITEM.POINTER_MOVE": { actions: ["highlightItem"] },
564
+ "ITEM.POINTER_LEAVE": { actions: ["clearHighlightedItem"] },
565
+ NAVIGATE: { actions: [
566
+ "setFocused",
567
+ "setHighlightedItem",
568
+ "selectWithKeyboard"
569
+ ] }
570
+ }
571
+ } },
572
+ implementations: {
573
+ guards: {
574
+ hasSelectedValue: ({ context }) => context.get("value").length > 0,
575
+ hasHighlightedValue: ({ context }) => context.get("highlightedValue") != null
576
+ },
577
+ effects: {
578
+ trackFocusVisible: ({ scope, refs }) => {
579
+ return require_focus_visible.trackFocusVisible({
580
+ root: scope.getRootNode?.(),
581
+ onChange(details) {
582
+ refs.set("focusVisible", details.isFocusVisible);
583
+ }
584
+ });
585
+ },
586
+ scrollToHighlightedItem({ context, prop, scope }) {
587
+ const exec = (immediate) => {
588
+ const highlightedValue = context.get("highlightedValue");
589
+ if (highlightedValue == null) return;
590
+ if (require_focus_visible.getInteractionModality() !== "keyboard") return;
591
+ const contentEl$1 = getContentEl(scope);
592
+ const scrollToIndexFn = prop("scrollToIndexFn");
593
+ if (scrollToIndexFn) {
594
+ const highlightedIndex = prop("collection").indexOf(highlightedValue);
595
+ scrollToIndexFn?.({
596
+ index: highlightedIndex,
597
+ immediate,
598
+ getElement() {
599
+ return getItemEl(scope, highlightedValue);
600
+ }
601
+ });
602
+ return;
603
+ }
604
+ require_dom_query.scrollIntoView(getItemEl(scope, highlightedValue), {
605
+ rootEl: contentEl$1,
606
+ block: "nearest"
607
+ });
608
+ };
609
+ require_dom_query.raf(() => exec(true));
610
+ const contentEl = () => getContentEl(scope);
611
+ return require_dom_query.observeAttributes(contentEl, {
612
+ defer: true,
613
+ attributes: ["data-activedescendant"],
614
+ callback() {
615
+ exec(false);
616
+ }
617
+ });
618
+ }
619
+ },
620
+ actions: {
621
+ selectHighlightedItem({ context, prop, event, computed }) {
622
+ const value = event.value ?? context.get("highlightedValue");
623
+ const collection$1 = prop("collection");
624
+ if (value == null || !collection$1.has(value)) return;
625
+ const selection = computed("selection");
626
+ if (event.shiftKey && computed("multiple") && event.anchorValue) {
627
+ const next = selection.extendSelection(collection$1, event.anchorValue, value);
628
+ invokeOnSelect(selection, next, prop("onSelect"));
629
+ context.set("value", Array.from(next));
630
+ } else {
631
+ const next = selection.select(collection$1, value, event.metaKey);
632
+ invokeOnSelect(selection, next, prop("onSelect"));
633
+ context.set("value", Array.from(next));
634
+ }
635
+ },
636
+ selectWithKeyboard({ context, prop, event, computed }) {
637
+ const selection = computed("selection");
638
+ const collection$1 = prop("collection");
639
+ if (event.shiftKey && computed("multiple") && event.anchorValue) {
640
+ const next = selection.extendSelection(collection$1, event.anchorValue, event.value);
641
+ invokeOnSelect(selection, next, prop("onSelect"));
642
+ context.set("value", Array.from(next));
643
+ return;
644
+ }
645
+ if (prop("selectOnHighlight")) {
646
+ const next = selection.replaceSelection(collection$1, event.value);
647
+ invokeOnSelect(selection, next, prop("onSelect"));
648
+ context.set("value", Array.from(next));
649
+ }
650
+ },
651
+ highlightItem({ context, event }) {
652
+ context.set("highlightedValue", event.value);
653
+ },
654
+ highlightMatchingItem({ context, prop, event, refs }) {
655
+ const value = prop("collection").search(event.key, {
656
+ state: refs.get("typeahead"),
657
+ currentValue: context.get("highlightedValue")
658
+ });
659
+ if (value == null) return;
660
+ context.set("highlightedValue", value);
661
+ },
662
+ setHighlightedItem({ context, event }) {
663
+ context.set("highlightedValue", event.value);
664
+ },
665
+ clearHighlightedItem({ context }) {
666
+ context.set("highlightedValue", null);
667
+ },
668
+ selectItem({ context, prop, event, computed }) {
669
+ const collection$1 = prop("collection");
670
+ const selection = computed("selection");
671
+ const next = selection.select(collection$1, event.value);
672
+ invokeOnSelect(selection, next, prop("onSelect"));
673
+ context.set("value", Array.from(next));
674
+ },
675
+ clearItem({ context, event, computed }) {
676
+ const value = computed("selection").deselect(event.value);
677
+ context.set("value", Array.from(value));
678
+ },
679
+ setSelectedItems({ context, event }) {
680
+ context.set("value", event.value);
681
+ },
682
+ clearSelectedItems({ context }) {
683
+ context.set("value", []);
684
+ },
685
+ syncSelectedItems({ context, prop }) {
686
+ const collection$1 = prop("collection");
687
+ const prevSelectedItems = context.get("selectedItems");
688
+ const selectedItems = context.get("value").map((value) => {
689
+ return prevSelectedItems.find((item) => collection$1.getItemValue(item) === value) || collection$1.find(value);
690
+ });
691
+ context.set("selectedItems", selectedItems);
692
+ },
693
+ syncHighlightedItem({ context, prop }) {
694
+ const collection$1 = prop("collection");
695
+ const highlightedValue = context.get("highlightedValue");
696
+ const highlightedItem = highlightedValue ? collection$1.find(highlightedValue) : null;
697
+ context.set("highlightedItem", highlightedItem);
698
+ },
699
+ syncHighlightedValue({ context, prop, refs }) {
700
+ const collection$1 = prop("collection");
701
+ const highlightedValue = context.get("highlightedValue");
702
+ const { autoHighlight } = refs.get("inputState");
703
+ if (autoHighlight) {
704
+ queueMicrotask(() => {
705
+ context.set("highlightedValue", prop("collection").firstValue ?? null);
706
+ });
707
+ return;
708
+ }
709
+ if (highlightedValue != null && !collection$1.has(highlightedValue)) queueMicrotask(() => {
710
+ context.set("highlightedValue", null);
711
+ });
712
+ },
713
+ setFocused({ context }) {
714
+ context.set("focused", true);
715
+ },
716
+ setDefaultHighlightedValue({ context, prop }) {
717
+ const firstValue = prop("collection").firstValue;
718
+ if (firstValue != null) context.set("highlightedValue", firstValue);
719
+ },
720
+ clearFocused({ context }) {
721
+ context.set("focused", false);
722
+ },
723
+ setInputState({ refs, event }) {
724
+ refs.set("inputState", {
725
+ autoHighlight: !!event.autoHighlight,
726
+ focused: true
727
+ });
728
+ },
729
+ clearInputState({ refs }) {
730
+ refs.set("inputState", {
731
+ autoHighlight: false,
732
+ focused: false
733
+ });
734
+ }
735
+ }
736
+ }
737
+ });
738
+ const diff = (a, b) => {
739
+ const result = new Set(a);
740
+ for (const item of b) result.delete(item);
741
+ return result;
742
+ };
743
+ function invokeOnSelect(current, next, onSelect) {
744
+ const added = diff(next, current);
745
+ for (const item of added) onSelect?.({ value: item });
746
+ }
747
+
748
+ //#endregion
749
+ //#region src/machines/listbox/listbox.props.ts
750
+ const props = require_create_props.createProps()([
751
+ "collection",
752
+ "defaultHighlightedValue",
753
+ "defaultValue",
754
+ "dir",
755
+ "disabled",
756
+ "deselectable",
757
+ "disallowSelectAll",
758
+ "getRootNode",
759
+ "highlightedValue",
760
+ "id",
761
+ "ids",
762
+ "loopFocus",
763
+ "onHighlightChange",
764
+ "onSelect",
765
+ "onValueChange",
766
+ "orientation",
767
+ "scrollToIndexFn",
768
+ "selectionMode",
769
+ "selectOnHighlight",
770
+ "typeahead",
771
+ "value"
772
+ ]);
773
+ const splitProps = require_utils.createSplitProps(props);
774
+ const itemProps = require_create_props.createProps()(["item", "highlightOnHover"]);
775
+ const splitItemProps = require_utils.createSplitProps(itemProps);
776
+ const itemGroupProps = require_create_props.createProps()(["id"]);
777
+ const splitItemGroupProps = require_utils.createSplitProps(itemGroupProps);
778
+ const itemGroupLabelProps = require_create_props.createProps()(["htmlFor"]);
779
+ const splitItemGroupLabelProps = require_utils.createSplitProps(itemGroupLabelProps);
780
+
781
+ //#endregion
782
+ exports.anatomy = anatomy;
783
+ exports.collection = collection;
784
+ exports.connect = connect;
785
+ exports.gridCollection = gridCollection;
786
+ exports.itemGroupLabelProps = itemGroupLabelProps;
787
+ exports.itemGroupProps = itemGroupProps;
788
+ exports.itemProps = itemProps;
789
+ exports.machine = machine;
790
+ exports.props = props;
791
+ exports.splitItemGroupLabelProps = splitItemGroupLabelProps;
792
+ exports.splitItemGroupProps = splitItemGroupProps;
793
+ exports.splitItemProps = splitItemProps;
794
+ exports.splitProps = splitProps;