@proyecto-viviana/solidaria 0.2.8 → 0.4.0

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 (976) hide show
  1. package/README.md +31 -236
  2. package/dist/_chunk/actiongroup.js +207 -0
  3. package/dist/_chunk/actiongroup.js.map +1 -0
  4. package/dist/_chunk/actiongroup.jsx +207 -0
  5. package/dist/_chunk/actiongroup.jsx.map +1 -0
  6. package/dist/_chunk/ariaHideOutside.js +122 -0
  7. package/dist/_chunk/ariaHideOutside.js.map +1 -0
  8. package/dist/_chunk/ariaHideOutside.jsx +122 -0
  9. package/dist/_chunk/ariaHideOutside.jsx.map +1 -0
  10. package/dist/_chunk/autocomplete.js +196 -0
  11. package/dist/_chunk/autocomplete.js.map +1 -0
  12. package/dist/_chunk/autocomplete.jsx +196 -0
  13. package/dist/_chunk/autocomplete.jsx.map +1 -0
  14. package/dist/_chunk/breadcrumbs.js +119 -0
  15. package/dist/_chunk/breadcrumbs.js.map +1 -0
  16. package/dist/_chunk/breadcrumbs.jsx +119 -0
  17. package/dist/_chunk/breadcrumbs.jsx.map +1 -0
  18. package/dist/_chunk/button.js +276 -0
  19. package/dist/_chunk/button.js.map +1 -0
  20. package/dist/_chunk/button.jsx +276 -0
  21. package/dist/_chunk/button.jsx.map +1 -0
  22. package/dist/_chunk/calendar.js +1036 -0
  23. package/dist/_chunk/calendar.js.map +1 -0
  24. package/dist/_chunk/calendar.jsx +1036 -0
  25. package/dist/_chunk/calendar.jsx.map +1 -0
  26. package/dist/_chunk/checkbox.js +234 -0
  27. package/dist/_chunk/checkbox.js.map +1 -0
  28. package/dist/_chunk/checkbox.jsx +234 -0
  29. package/dist/_chunk/checkbox.jsx.map +1 -0
  30. package/dist/_chunk/color.js +1174 -0
  31. package/dist/_chunk/color.js.map +1 -0
  32. package/dist/_chunk/color.jsx +1174 -0
  33. package/dist/_chunk/color.jsx.map +1 -0
  34. package/dist/_chunk/combobox.js +436 -0
  35. package/dist/_chunk/combobox.js.map +1 -0
  36. package/dist/_chunk/combobox.jsx +436 -0
  37. package/dist/_chunk/combobox.jsx.map +1 -0
  38. package/dist/_chunk/createCollator.js +229 -0
  39. package/dist/_chunk/createCollator.js.map +1 -0
  40. package/dist/_chunk/createCollator.jsx +223 -0
  41. package/dist/_chunk/createCollator.jsx.map +1 -0
  42. package/dist/_chunk/createCollectionRowInteraction.js +133 -0
  43. package/dist/_chunk/createCollectionRowInteraction.js.map +1 -0
  44. package/dist/_chunk/createCollectionRowInteraction.jsx +133 -0
  45. package/dist/_chunk/createCollectionRowInteraction.jsx.map +1 -0
  46. package/dist/_chunk/createField.js +54 -0
  47. package/dist/_chunk/createField.js.map +1 -0
  48. package/dist/_chunk/createField.jsx +54 -0
  49. package/dist/_chunk/createField.jsx.map +1 -0
  50. package/dist/_chunk/createFocus.js +101 -0
  51. package/dist/_chunk/createFocus.js.map +1 -0
  52. package/dist/_chunk/createFocus.jsx +101 -0
  53. package/dist/_chunk/createFocus.jsx.map +1 -0
  54. package/dist/_chunk/createFocusRing.js +54 -0
  55. package/dist/_chunk/createFocusRing.js.map +1 -0
  56. package/dist/_chunk/createFocusRing.jsx +54 -0
  57. package/dist/_chunk/createFocusRing.jsx.map +1 -0
  58. package/dist/_chunk/createFocusWithin.js +121 -0
  59. package/dist/_chunk/createFocusWithin.js.map +1 -0
  60. package/dist/_chunk/createFocusWithin.jsx +121 -0
  61. package/dist/_chunk/createFocusWithin.jsx.map +1 -0
  62. package/dist/_chunk/createFocusable.js +131 -0
  63. package/dist/_chunk/createFocusable.js.map +1 -0
  64. package/dist/_chunk/createFocusable.jsx +131 -0
  65. package/dist/_chunk/createFocusable.jsx.map +1 -0
  66. package/dist/_chunk/createFormValidation.js +135 -0
  67. package/dist/_chunk/createFormValidation.js.map +1 -0
  68. package/dist/_chunk/createFormValidation.jsx +135 -0
  69. package/dist/_chunk/createFormValidation.jsx.map +1 -0
  70. package/dist/_chunk/createHover.js +130 -0
  71. package/dist/_chunk/createHover.js.map +1 -0
  72. package/dist/_chunk/createHover.jsx +130 -0
  73. package/dist/_chunk/createHover.jsx.map +1 -0
  74. package/dist/_chunk/createInteractionModality.js +269 -0
  75. package/dist/_chunk/createInteractionModality.js.map +1 -0
  76. package/dist/_chunk/createInteractionModality.jsx +269 -0
  77. package/dist/_chunk/createInteractionModality.jsx.map +1 -0
  78. package/dist/_chunk/createLabel.js +46 -0
  79. package/dist/_chunk/createLabel.js.map +1 -0
  80. package/dist/_chunk/createLabel.jsx +46 -0
  81. package/dist/_chunk/createLabel.jsx.map +1 -0
  82. package/dist/_chunk/createLabels.js +31 -0
  83. package/dist/_chunk/createLabels.js.map +1 -0
  84. package/dist/_chunk/createLabels.jsx +31 -0
  85. package/dist/_chunk/createLabels.jsx.map +1 -0
  86. package/dist/_chunk/createLandmark.js +198 -0
  87. package/dist/_chunk/createLandmark.js.map +1 -0
  88. package/dist/_chunk/createLandmark.jsx +198 -0
  89. package/dist/_chunk/createLandmark.jsx.map +1 -0
  90. package/dist/_chunk/createLongPress.js +91 -0
  91. package/dist/_chunk/createLongPress.js.map +1 -0
  92. package/dist/_chunk/createLongPress.jsx +91 -0
  93. package/dist/_chunk/createLongPress.jsx.map +1 -0
  94. package/dist/_chunk/createOverlay.js +327 -0
  95. package/dist/_chunk/createOverlay.js.map +1 -0
  96. package/dist/_chunk/createOverlay.jsx +327 -0
  97. package/dist/_chunk/createOverlay.jsx.map +1 -0
  98. package/dist/_chunk/createPress.js +526 -0
  99. package/dist/_chunk/createPress.js.map +1 -0
  100. package/dist/_chunk/createPress.jsx +526 -0
  101. package/dist/_chunk/createPress.jsx.map +1 -0
  102. package/dist/_chunk/createProgressBar.js +81 -0
  103. package/dist/_chunk/createProgressBar.js.map +1 -0
  104. package/dist/_chunk/createProgressBar.jsx +81 -0
  105. package/dist/_chunk/createProgressBar.jsx.map +1 -0
  106. package/dist/_chunk/createSelectableItem.js +298 -0
  107. package/dist/_chunk/createSelectableItem.js.map +1 -0
  108. package/dist/_chunk/createSelectableItem.jsx +298 -0
  109. package/dist/_chunk/createSelectableItem.jsx.map +1 -0
  110. package/dist/_chunk/createToggle.js +158 -0
  111. package/dist/_chunk/createToggle.js.map +1 -0
  112. package/dist/_chunk/createToggle.jsx +158 -0
  113. package/dist/_chunk/createToggle.jsx.map +1 -0
  114. package/dist/_chunk/createTypeSelect.js +125 -0
  115. package/dist/_chunk/createTypeSelect.js.map +1 -0
  116. package/dist/_chunk/createTypeSelect.jsx +125 -0
  117. package/dist/_chunk/createTypeSelect.jsx.map +1 -0
  118. package/dist/_chunk/datepicker.js +1393 -0
  119. package/dist/_chunk/datepicker.js.map +1 -0
  120. package/dist/_chunk/datepicker.jsx +1393 -0
  121. package/dist/_chunk/datepicker.jsx.map +1 -0
  122. package/dist/_chunk/dialog.js +62 -0
  123. package/dist/_chunk/dialog.js.map +1 -0
  124. package/dist/_chunk/dialog.jsx +62 -0
  125. package/dist/_chunk/dialog.jsx.map +1 -0
  126. package/dist/_chunk/disclosure.js +185 -0
  127. package/dist/_chunk/disclosure.js.map +1 -0
  128. package/dist/_chunk/disclosure.jsx +185 -0
  129. package/dist/_chunk/disclosure.jsx.map +1 -0
  130. package/dist/_chunk/dnd.js +1304 -0
  131. package/dist/_chunk/dnd.js.map +1 -0
  132. package/dist/_chunk/dnd.jsx +1304 -0
  133. package/dist/_chunk/dnd.jsx.map +1 -0
  134. package/dist/_chunk/env.js +105 -0
  135. package/dist/_chunk/env.js.map +1 -0
  136. package/dist/_chunk/env.jsx +105 -0
  137. package/dist/_chunk/env.jsx.map +1 -0
  138. package/dist/_chunk/filterDOMProps.js +82 -0
  139. package/dist/_chunk/filterDOMProps.js.map +1 -0
  140. package/dist/_chunk/filterDOMProps.jsx +82 -0
  141. package/dist/_chunk/filterDOMProps.jsx.map +1 -0
  142. package/dist/_chunk/focus.js +399 -0
  143. package/dist/_chunk/focus.js.map +1 -0
  144. package/dist/_chunk/focus.jsx +399 -0
  145. package/dist/_chunk/focus.jsx.map +1 -0
  146. package/dist/_chunk/focus2.js +895 -0
  147. package/dist/_chunk/focus2.js.map +1 -0
  148. package/dist/_chunk/focus2.jsx +870 -0
  149. package/dist/_chunk/focus2.jsx.map +1 -0
  150. package/dist/_chunk/form.js +39 -0
  151. package/dist/_chunk/form.js.map +1 -0
  152. package/dist/_chunk/form.jsx +39 -0
  153. package/dist/_chunk/form.jsx.map +1 -0
  154. package/dist/_chunk/grid.js +623 -0
  155. package/dist/_chunk/grid.js.map +1 -0
  156. package/dist/_chunk/grid.jsx +623 -0
  157. package/dist/_chunk/grid.jsx.map +1 -0
  158. package/dist/_chunk/gridlist.js +364 -0
  159. package/dist/_chunk/gridlist.js.map +1 -0
  160. package/dist/_chunk/gridlist.jsx +364 -0
  161. package/dist/_chunk/gridlist.jsx.map +1 -0
  162. package/dist/_chunk/i18n.js +254 -0
  163. package/dist/_chunk/i18n.js.map +1 -0
  164. package/dist/_chunk/i18n.jsx +254 -0
  165. package/dist/_chunk/i18n.jsx.map +1 -0
  166. package/dist/_chunk/interactions.js +241 -0
  167. package/dist/_chunk/interactions.js.map +1 -0
  168. package/dist/_chunk/interactions.jsx +237 -0
  169. package/dist/_chunk/interactions.jsx.map +1 -0
  170. package/dist/_chunk/link.js +96 -0
  171. package/dist/_chunk/link.js.map +1 -0
  172. package/dist/_chunk/link.jsx +96 -0
  173. package/dist/_chunk/link.jsx.map +1 -0
  174. package/dist/_chunk/listbox.js +324 -0
  175. package/dist/_chunk/listbox.js.map +1 -0
  176. package/dist/_chunk/listbox.jsx +324 -0
  177. package/dist/_chunk/listbox.jsx.map +1 -0
  178. package/dist/_chunk/live-announcer.js +207 -0
  179. package/dist/_chunk/live-announcer.js.map +1 -0
  180. package/dist/_chunk/live-announcer.jsx +207 -0
  181. package/dist/_chunk/live-announcer.jsx.map +1 -0
  182. package/dist/_chunk/menu.js +518 -0
  183. package/dist/_chunk/menu.js.map +1 -0
  184. package/dist/_chunk/menu.jsx +518 -0
  185. package/dist/_chunk/menu.jsx.map +1 -0
  186. package/dist/_chunk/meter.js +33 -0
  187. package/dist/_chunk/meter.js.map +1 -0
  188. package/dist/_chunk/meter.jsx +33 -0
  189. package/dist/_chunk/meter.jsx.map +1 -0
  190. package/dist/_chunk/numberfield.js +258 -0
  191. package/dist/_chunk/numberfield.js.map +1 -0
  192. package/dist/_chunk/numberfield.jsx +258 -0
  193. package/dist/_chunk/numberfield.jsx.map +1 -0
  194. package/dist/_chunk/overlays.js +186 -0
  195. package/dist/_chunk/overlays.js.map +1 -0
  196. package/dist/_chunk/overlays.jsx +162 -0
  197. package/dist/_chunk/overlays.jsx.map +1 -0
  198. package/dist/_chunk/popover.js +574 -0
  199. package/dist/_chunk/popover.js.map +1 -0
  200. package/dist/_chunk/popover.jsx +574 -0
  201. package/dist/_chunk/popover.jsx.map +1 -0
  202. package/dist/_chunk/radio.js +319 -0
  203. package/dist/_chunk/radio.js.map +1 -0
  204. package/dist/_chunk/radio.jsx +319 -0
  205. package/dist/_chunk/radio.jsx.map +1 -0
  206. package/dist/_chunk/searchfield.js +209 -0
  207. package/dist/_chunk/searchfield.js.map +1 -0
  208. package/dist/_chunk/searchfield.jsx +209 -0
  209. package/dist/_chunk/searchfield.jsx.map +1 -0
  210. package/dist/_chunk/select.js +403 -0
  211. package/dist/_chunk/select.js.map +1 -0
  212. package/dist/_chunk/select.jsx +394 -0
  213. package/dist/_chunk/select.jsx.map +1 -0
  214. package/dist/_chunk/selection.js +679 -0
  215. package/dist/_chunk/selection.js.map +1 -0
  216. package/dist/_chunk/selection.jsx +679 -0
  217. package/dist/_chunk/selection.jsx.map +1 -0
  218. package/dist/_chunk/separator.js +29 -0
  219. package/dist/_chunk/separator.js.map +1 -0
  220. package/dist/_chunk/separator.jsx +29 -0
  221. package/dist/_chunk/separator.jsx.map +1 -0
  222. package/dist/_chunk/slider.js +255 -0
  223. package/dist/_chunk/slider.js.map +1 -0
  224. package/dist/_chunk/slider.jsx +255 -0
  225. package/dist/_chunk/slider.jsx.map +1 -0
  226. package/dist/_chunk/steplist.js +66 -0
  227. package/dist/_chunk/steplist.js.map +1 -0
  228. package/dist/_chunk/steplist.jsx +66 -0
  229. package/dist/_chunk/steplist.jsx.map +1 -0
  230. package/dist/_chunk/switch.js +34 -0
  231. package/dist/_chunk/switch.js.map +1 -0
  232. package/dist/_chunk/switch.jsx +34 -0
  233. package/dist/_chunk/switch.jsx.map +1 -0
  234. package/dist/_chunk/table.js +1051 -0
  235. package/dist/_chunk/table.js.map +1 -0
  236. package/dist/_chunk/table.jsx +1051 -0
  237. package/dist/_chunk/table.jsx.map +1 -0
  238. package/dist/_chunk/tabs.js +260 -0
  239. package/dist/_chunk/tabs.js.map +1 -0
  240. package/dist/_chunk/tabs.jsx +260 -0
  241. package/dist/_chunk/tabs.jsx.map +1 -0
  242. package/dist/_chunk/tag.js +286 -0
  243. package/dist/_chunk/tag.js.map +1 -0
  244. package/dist/_chunk/tag.jsx +286 -0
  245. package/dist/_chunk/tag.jsx.map +1 -0
  246. package/dist/_chunk/textfield.js +109 -0
  247. package/dist/_chunk/textfield.js.map +1 -0
  248. package/dist/_chunk/textfield.jsx +109 -0
  249. package/dist/_chunk/textfield.jsx.map +1 -0
  250. package/dist/_chunk/toast.js +250 -0
  251. package/dist/_chunk/toast.js.map +1 -0
  252. package/dist/_chunk/toast.jsx +250 -0
  253. package/dist/_chunk/toast.jsx.map +1 -0
  254. package/dist/_chunk/toolbar.js +258 -0
  255. package/dist/_chunk/toolbar.js.map +1 -0
  256. package/dist/_chunk/toolbar.jsx +258 -0
  257. package/dist/_chunk/toolbar.jsx.map +1 -0
  258. package/dist/_chunk/tooltip.js +185 -0
  259. package/dist/_chunk/tooltip.js.map +1 -0
  260. package/dist/_chunk/tooltip.jsx +185 -0
  261. package/dist/_chunk/tooltip.jsx.map +1 -0
  262. package/dist/_chunk/tree.js +424 -0
  263. package/dist/_chunk/tree.js.map +1 -0
  264. package/dist/_chunk/tree.jsx +424 -0
  265. package/dist/_chunk/tree.jsx.map +1 -0
  266. package/dist/_chunk/utils.js +665 -0
  267. package/dist/_chunk/utils.js.map +1 -0
  268. package/dist/_chunk/utils.jsx +665 -0
  269. package/dist/_chunk/utils.jsx.map +1 -0
  270. package/dist/_chunk/visually-hidden.js +92 -0
  271. package/dist/_chunk/visually-hidden.js.map +1 -0
  272. package/dist/_chunk/visually-hidden.jsx +92 -0
  273. package/dist/_chunk/visually-hidden.jsx.map +1 -0
  274. package/dist/actiongroup/createActionGroup.d.ts +5 -5
  275. package/dist/actiongroup/createActionGroup.d.ts.map +1 -1
  276. package/dist/actiongroup/index.d.ts +1 -1
  277. package/dist/actiongroup/index.js +2 -0
  278. package/dist/actiongroup/index.jsx +2 -0
  279. package/dist/autocomplete/createAutocomplete.d.ts +12 -10
  280. package/dist/autocomplete/createAutocomplete.d.ts.map +1 -1
  281. package/dist/autocomplete/index.d.ts +1 -1
  282. package/dist/autocomplete/index.d.ts.map +1 -1
  283. package/dist/autocomplete/index.js +2 -0
  284. package/dist/autocomplete/index.jsx +2 -0
  285. package/dist/breadcrumbs/createBreadcrumbs.d.ts +9 -7
  286. package/dist/breadcrumbs/createBreadcrumbs.d.ts.map +1 -1
  287. package/dist/breadcrumbs/index.d.ts +1 -1
  288. package/dist/breadcrumbs/index.js +2 -0
  289. package/dist/breadcrumbs/index.jsx +2 -0
  290. package/dist/button/createButton.d.ts +1 -1
  291. package/dist/button/createButton.d.ts.map +1 -1
  292. package/dist/button/createToggleButton.d.ts +3 -3
  293. package/dist/button/createToggleButtonGroup.d.ts +7 -7
  294. package/dist/button/createToggleButtonGroup.d.ts.map +1 -1
  295. package/dist/button/index.d.ts +6 -6
  296. package/dist/button/index.d.ts.map +1 -1
  297. package/dist/button/index.js +2 -0
  298. package/dist/button/index.jsx +2 -0
  299. package/dist/button/types.d.ts +18 -12
  300. package/dist/button/types.d.ts.map +1 -1
  301. package/dist/calendar/createCalendar.d.ts +15 -5
  302. package/dist/calendar/createCalendar.d.ts.map +1 -1
  303. package/dist/calendar/createCalendarCell.d.ts +6 -2
  304. package/dist/calendar/createCalendarCell.d.ts.map +1 -1
  305. package/dist/calendar/createCalendarGrid.d.ts +4 -4
  306. package/dist/calendar/createCalendarGrid.d.ts.map +1 -1
  307. package/dist/calendar/createCalendarMonthPicker.d.ts +41 -0
  308. package/dist/calendar/createCalendarMonthPicker.d.ts.map +1 -0
  309. package/dist/calendar/createCalendarYearPicker.d.ts +49 -0
  310. package/dist/calendar/createCalendarYearPicker.d.ts.map +1 -0
  311. package/dist/calendar/createRangeCalendar.d.ts +15 -5
  312. package/dist/calendar/createRangeCalendar.d.ts.map +1 -1
  313. package/dist/calendar/createRangeCalendarCell.d.ts +4 -2
  314. package/dist/calendar/createRangeCalendarCell.d.ts.map +1 -1
  315. package/dist/calendar/index.d.ts +7 -5
  316. package/dist/calendar/index.d.ts.map +1 -1
  317. package/dist/calendar/index.js +2 -0
  318. package/dist/calendar/index.jsx +2 -0
  319. package/dist/calendar/intl/index.d.ts +12 -0
  320. package/dist/calendar/intl/index.d.ts.map +1 -0
  321. package/dist/calendar/utils.d.ts +16 -0
  322. package/dist/calendar/utils.d.ts.map +1 -0
  323. package/dist/checkbox/createCheckbox.d.ts +10 -6
  324. package/dist/checkbox/createCheckbox.d.ts.map +1 -1
  325. package/dist/checkbox/createCheckboxGroup.d.ts +7 -7
  326. package/dist/checkbox/createCheckboxGroup.d.ts.map +1 -1
  327. package/dist/checkbox/createCheckboxGroupItem.d.ts +4 -4
  328. package/dist/checkbox/createCheckboxGroupItem.d.ts.map +1 -1
  329. package/dist/checkbox/createCheckboxGroupState.d.ts +2 -2
  330. package/dist/checkbox/createCheckboxGroupState.d.ts.map +1 -1
  331. package/dist/checkbox/index.d.ts +8 -8
  332. package/dist/checkbox/index.d.ts.map +1 -1
  333. package/dist/checkbox/index.js +2 -0
  334. package/dist/checkbox/index.jsx +2 -0
  335. package/dist/collections/index.d.ts +3 -3
  336. package/dist/collections/index.d.ts.map +1 -1
  337. package/dist/collections/index.js +160 -0
  338. package/dist/collections/index.js.map +1 -0
  339. package/dist/collections/index.jsx +160 -0
  340. package/dist/collections/index.jsx.map +1 -0
  341. package/dist/color/createColorArea.d.ts +3 -3
  342. package/dist/color/createColorArea.d.ts.map +1 -1
  343. package/dist/color/createColorField.d.ts +4 -4
  344. package/dist/color/createColorField.d.ts.map +1 -1
  345. package/dist/color/createColorSlider.d.ts +4 -4
  346. package/dist/color/createColorSlider.d.ts.map +1 -1
  347. package/dist/color/createColorSwatch.d.ts +2 -2
  348. package/dist/color/createColorSwatch.d.ts.map +1 -1
  349. package/dist/color/createColorWheel.d.ts +3 -3
  350. package/dist/color/createColorWheel.d.ts.map +1 -1
  351. package/dist/color/index.d.ts +6 -6
  352. package/dist/color/index.js +2 -0
  353. package/dist/color/index.jsx +2 -0
  354. package/dist/color/types.d.ts +98 -16
  355. package/dist/color/types.d.ts.map +1 -1
  356. package/dist/combobox/createComboBox.d.ts +10 -7
  357. package/dist/combobox/createComboBox.d.ts.map +1 -1
  358. package/dist/combobox/index.d.ts +1 -1
  359. package/dist/combobox/index.js +2 -0
  360. package/dist/combobox/index.jsx +2 -0
  361. package/dist/combobox/intl/index.d.ts +1 -1
  362. package/dist/datepicker/createDateField.d.ts +18 -6
  363. package/dist/datepicker/createDateField.d.ts.map +1 -1
  364. package/dist/datepicker/createDatePicker.d.ts +51 -5
  365. package/dist/datepicker/createDatePicker.d.ts.map +1 -1
  366. package/dist/datepicker/createDatePickerGroup.d.ts +19 -0
  367. package/dist/datepicker/createDatePickerGroup.d.ts.map +1 -0
  368. package/dist/datepicker/createDateRangePicker.d.ts +8 -6
  369. package/dist/datepicker/createDateRangePicker.d.ts.map +1 -1
  370. package/dist/datepicker/createDateSegment.d.ts +10 -2
  371. package/dist/datepicker/createDateSegment.d.ts.map +1 -1
  372. package/dist/datepicker/createTimeField.d.ts +11 -5
  373. package/dist/datepicker/createTimeField.d.ts.map +1 -1
  374. package/dist/datepicker/createTimeSegment.d.ts +2 -2
  375. package/dist/datepicker/createTimeSegment.d.ts.map +1 -1
  376. package/dist/datepicker/index.d.ts +7 -6
  377. package/dist/datepicker/index.d.ts.map +1 -1
  378. package/dist/datepicker/index.js +2 -0
  379. package/dist/datepicker/index.jsx +2 -0
  380. package/dist/dialog/createDialog.d.ts +5 -5
  381. package/dist/dialog/createDialog.d.ts.map +1 -1
  382. package/dist/dialog/index.d.ts +2 -2
  383. package/dist/dialog/index.d.ts.map +1 -1
  384. package/dist/dialog/index.js +2 -0
  385. package/dist/dialog/index.jsx +2 -0
  386. package/dist/dialog/types.d.ts +4 -4
  387. package/dist/disclosure/createDisclosure.d.ts +5 -2
  388. package/dist/disclosure/createDisclosure.d.ts.map +1 -1
  389. package/dist/disclosure/createDisclosureGroup.d.ts +4 -4
  390. package/dist/disclosure/createDisclosureGroup.d.ts.map +1 -1
  391. package/dist/disclosure/index.d.ts +2 -2
  392. package/dist/disclosure/index.js +2 -0
  393. package/dist/disclosure/index.jsx +2 -0
  394. package/dist/dnd/createDrag.d.ts +2 -2
  395. package/dist/dnd/createDrag.d.ts.map +1 -1
  396. package/dist/dnd/createDraggableCollection.d.ts +2 -2
  397. package/dist/dnd/createDraggableItem.d.ts +3 -3
  398. package/dist/dnd/createDraggableItem.d.ts.map +1 -1
  399. package/dist/dnd/createDrop.d.ts +2 -2
  400. package/dist/dnd/createDrop.d.ts.map +1 -1
  401. package/dist/dnd/createDroppableCollection.d.ts +26 -6
  402. package/dist/dnd/createDroppableCollection.d.ts.map +1 -1
  403. package/dist/dnd/createDroppableItem.d.ts +3 -3
  404. package/dist/dnd/index.d.ts +12 -12
  405. package/dist/dnd/index.d.ts.map +1 -1
  406. package/dist/dnd/index.js +2 -0
  407. package/dist/dnd/index.jsx +2 -0
  408. package/dist/dnd/types.d.ts +2 -2
  409. package/dist/dnd/types.d.ts.map +1 -1
  410. package/dist/dnd/utils.d.ts +2 -2
  411. package/dist/dnd/utils.d.ts.map +1 -1
  412. package/dist/focus/FocusScope.d.ts +1 -1
  413. package/dist/focus/FocusScope.d.ts.map +1 -1
  414. package/dist/focus/createAutoFocus.d.ts.map +1 -1
  415. package/dist/focus/createFocusRestore.d.ts.map +1 -1
  416. package/dist/focus/createVirtualFocus.d.ts +4 -4
  417. package/dist/focus/createVirtualFocus.d.ts.map +1 -1
  418. package/dist/focus/index.d.ts +4 -4
  419. package/dist/focus/index.d.ts.map +1 -1
  420. package/dist/focus/index.js +2 -0
  421. package/dist/focus/index.jsx +2 -0
  422. package/dist/form/createFormReset.d.ts +1 -1
  423. package/dist/form/createFormValidation.d.ts +3 -3
  424. package/dist/form/createFormValidation.d.ts.map +1 -1
  425. package/dist/form/index.d.ts +2 -2
  426. package/dist/form/index.d.ts.map +1 -1
  427. package/dist/form/index.js +3 -0
  428. package/dist/form/index.jsx +3 -0
  429. package/dist/grid/GridKeyboardDelegate.d.ts +5 -5
  430. package/dist/grid/createGrid.d.ts +3 -3
  431. package/dist/grid/createGridCell.d.ts +3 -3
  432. package/dist/grid/createGridRow.d.ts +3 -3
  433. package/dist/grid/index.d.ts +5 -5
  434. package/dist/grid/index.js +2 -0
  435. package/dist/grid/index.jsx +2 -0
  436. package/dist/grid/types.d.ts +8 -8
  437. package/dist/gridlist/createGridList.d.ts +12 -4
  438. package/dist/gridlist/createGridList.d.ts.map +1 -1
  439. package/dist/gridlist/createGridListItem.d.ts +4 -4
  440. package/dist/gridlist/createGridListItem.d.ts.map +1 -1
  441. package/dist/gridlist/createGridListSection.d.ts +15 -0
  442. package/dist/gridlist/createGridListSection.d.ts.map +1 -0
  443. package/dist/gridlist/createGridListSelectionCheckbox.d.ts +3 -3
  444. package/dist/gridlist/createGridListSelectionCheckbox.d.ts.map +1 -1
  445. package/dist/gridlist/index.d.ts +5 -4
  446. package/dist/gridlist/index.d.ts.map +1 -1
  447. package/dist/gridlist/index.js +2 -0
  448. package/dist/gridlist/index.jsx +2 -0
  449. package/dist/gridlist/types.d.ts +61 -7
  450. package/dist/gridlist/types.d.ts.map +1 -1
  451. package/dist/i18n/createCollator.d.ts.map +1 -1
  452. package/dist/i18n/createDateFormatter.d.ts.map +1 -1
  453. package/dist/i18n/createFilter.d.ts.map +1 -1
  454. package/dist/i18n/createNumberFormatter.d.ts +1 -1
  455. package/dist/i18n/createNumberFormatter.d.ts.map +1 -1
  456. package/dist/i18n/createStringFormatter.d.ts +2 -2
  457. package/dist/i18n/createStringFormatter.d.ts.map +1 -1
  458. package/dist/i18n/index.d.ts +8 -8
  459. package/dist/i18n/index.d.ts.map +1 -1
  460. package/dist/i18n/index.js +3 -0
  461. package/dist/i18n/index.jsx +3 -0
  462. package/dist/i18n/locale.d.ts +2 -2
  463. package/dist/i18n/locale.d.ts.map +1 -1
  464. package/dist/i18n/utils.d.ts.map +1 -1
  465. package/dist/index.d.ts +56 -51
  466. package/dist/index.d.ts.map +1 -1
  467. package/dist/index.js +71 -17119
  468. package/dist/index.jsx +71 -0
  469. package/dist/interactions/FocusableProvider.d.ts +2 -2
  470. package/dist/interactions/FocusableProvider.d.ts.map +1 -1
  471. package/dist/interactions/PressEvent.d.ts +13 -2
  472. package/dist/interactions/PressEvent.d.ts.map +1 -1
  473. package/dist/interactions/createFocus.d.ts +1 -1
  474. package/dist/interactions/createFocus.d.ts.map +1 -1
  475. package/dist/interactions/createFocusRing.d.ts +1 -1
  476. package/dist/interactions/createFocusRing.d.ts.map +1 -1
  477. package/dist/interactions/createFocusWithin.d.ts +1 -1
  478. package/dist/interactions/createFocusWithin.d.ts.map +1 -1
  479. package/dist/interactions/createFocusable.d.ts +3 -3
  480. package/dist/interactions/createFocusable.d.ts.map +1 -1
  481. package/dist/interactions/createHover.d.ts +5 -5
  482. package/dist/interactions/createHover.d.ts.map +1 -1
  483. package/dist/interactions/createInteractionModality.d.ts +3 -4
  484. package/dist/interactions/createInteractionModality.d.ts.map +1 -1
  485. package/dist/interactions/createKeyboard.d.ts +1 -1
  486. package/dist/interactions/createKeyboard.d.ts.map +1 -1
  487. package/dist/interactions/createLongPress.d.ts +5 -5
  488. package/dist/interactions/createMove.d.ts +5 -5
  489. package/dist/interactions/createMove.d.ts.map +1 -1
  490. package/dist/interactions/createPress.d.ts +4 -4
  491. package/dist/interactions/createPress.d.ts.map +1 -1
  492. package/dist/interactions/index.d.ts +12 -12
  493. package/dist/interactions/index.d.ts.map +1 -1
  494. package/dist/interactions/index.js +10 -0
  495. package/dist/interactions/index.jsx +10 -0
  496. package/dist/label/createField.d.ts +4 -4
  497. package/dist/label/createField.d.ts.map +1 -1
  498. package/dist/label/createLabel.d.ts +7 -7
  499. package/dist/label/createLabel.d.ts.map +1 -1
  500. package/dist/label/createLabels.d.ts +1 -1
  501. package/dist/label/createLabels.d.ts.map +1 -1
  502. package/dist/label/index.d.ts +5 -5
  503. package/dist/label/index.js +4 -0
  504. package/dist/label/index.jsx +4 -0
  505. package/dist/landmark/createLandmark.d.ts +5 -5
  506. package/dist/landmark/createLandmark.d.ts.map +1 -1
  507. package/dist/landmark/index.d.ts +1 -1
  508. package/dist/landmark/index.js +2 -0
  509. package/dist/landmark/index.jsx +2 -0
  510. package/dist/link/createLink.d.ts +14 -8
  511. package/dist/link/createLink.d.ts.map +1 -1
  512. package/dist/link/index.d.ts +1 -1
  513. package/dist/link/index.js +2 -0
  514. package/dist/link/index.jsx +2 -0
  515. package/dist/listbox/createListBox.d.ts +48 -6
  516. package/dist/listbox/createListBox.d.ts.map +1 -1
  517. package/dist/listbox/createOption.d.ts +27 -4
  518. package/dist/listbox/createOption.d.ts.map +1 -1
  519. package/dist/listbox/index.d.ts +2 -2
  520. package/dist/listbox/index.d.ts.map +1 -1
  521. package/dist/listbox/index.js +2 -0
  522. package/dist/listbox/index.jsx +2 -0
  523. package/dist/live-announcer/announce.d.ts +2 -2
  524. package/dist/live-announcer/announce.d.ts.map +1 -1
  525. package/dist/live-announcer/index.d.ts +1 -1
  526. package/dist/live-announcer/index.js +2 -0
  527. package/dist/live-announcer/index.jsx +2 -0
  528. package/dist/menu/createMenu.d.ts +14 -11
  529. package/dist/menu/createMenu.d.ts.map +1 -1
  530. package/dist/menu/createMenuItem.d.ts +25 -5
  531. package/dist/menu/createMenuItem.d.ts.map +1 -1
  532. package/dist/menu/createMenuTrigger.d.ts +4 -4
  533. package/dist/menu/index.d.ts +3 -3
  534. package/dist/menu/index.d.ts.map +1 -1
  535. package/dist/menu/index.js +2 -0
  536. package/dist/menu/index.jsx +2 -0
  537. package/dist/meter/createMeter.d.ts +6 -6
  538. package/dist/meter/createMeter.d.ts.map +1 -1
  539. package/dist/meter/index.d.ts +1 -1
  540. package/dist/meter/index.js +2 -0
  541. package/dist/meter/index.jsx +2 -0
  542. package/dist/numberfield/createNumberField.d.ts +9 -8
  543. package/dist/numberfield/createNumberField.d.ts.map +1 -1
  544. package/dist/numberfield/index.d.ts +1 -1
  545. package/dist/numberfield/index.js +2 -0
  546. package/dist/numberfield/index.jsx +2 -0
  547. package/dist/overlays/ariaHideOutside.d.ts.map +1 -1
  548. package/dist/overlays/createModal.d.ts +3 -3
  549. package/dist/overlays/createModal.d.ts.map +1 -1
  550. package/dist/overlays/createOverlay.d.ts +1 -1
  551. package/dist/overlays/createOverlay.d.ts.map +1 -1
  552. package/dist/overlays/createOverlayTrigger.d.ts +6 -6
  553. package/dist/overlays/index.d.ts +6 -6
  554. package/dist/overlays/index.d.ts.map +1 -1
  555. package/dist/overlays/index.js +4 -0
  556. package/dist/overlays/index.jsx +4 -0
  557. package/dist/popover/calculatePosition.d.ts +6 -4
  558. package/dist/popover/calculatePosition.d.ts.map +1 -1
  559. package/dist/popover/createOverlayPosition.d.ts +11 -3
  560. package/dist/popover/createOverlayPosition.d.ts.map +1 -1
  561. package/dist/popover/createPopover.d.ts +4 -4
  562. package/dist/popover/createPopover.d.ts.map +1 -1
  563. package/dist/popover/index.d.ts +3 -3
  564. package/dist/popover/index.js +2 -0
  565. package/dist/popover/index.jsx +2 -0
  566. package/dist/progress/createProgressBar.d.ts +7 -5
  567. package/dist/progress/createProgressBar.d.ts.map +1 -1
  568. package/dist/progress/index.d.ts +1 -1
  569. package/dist/progress/index.js +2 -0
  570. package/dist/progress/index.jsx +2 -0
  571. package/dist/radio/createRadio.d.ts +9 -7
  572. package/dist/radio/createRadio.d.ts.map +1 -1
  573. package/dist/radio/createRadioGroup.d.ts +10 -10
  574. package/dist/radio/createRadioGroup.d.ts.map +1 -1
  575. package/dist/radio/createRadioGroupState.d.ts +3 -3
  576. package/dist/radio/createRadioGroupState.d.ts.map +1 -1
  577. package/dist/radio/index.d.ts +3 -3
  578. package/dist/radio/index.d.ts.map +1 -1
  579. package/dist/radio/index.js +2 -0
  580. package/dist/radio/index.jsx +2 -0
  581. package/dist/searchfield/createSearchField.d.ts +7 -7
  582. package/dist/searchfield/createSearchField.d.ts.map +1 -1
  583. package/dist/searchfield/index.d.ts +2 -2
  584. package/dist/searchfield/index.js +2 -0
  585. package/dist/searchfield/index.jsx +2 -0
  586. package/dist/select/createHiddenSelect.d.ts +4 -4
  587. package/dist/select/createHiddenSelect.d.ts.map +1 -1
  588. package/dist/select/createSelect.d.ts +14 -6
  589. package/dist/select/createSelect.d.ts.map +1 -1
  590. package/dist/select/index.d.ts +2 -2
  591. package/dist/select/index.d.ts.map +1 -1
  592. package/dist/select/index.js +2 -0
  593. package/dist/select/index.jsx +2 -0
  594. package/dist/selection/DOMLayoutDelegate.d.ts +58 -0
  595. package/dist/selection/DOMLayoutDelegate.d.ts.map +1 -0
  596. package/dist/selection/ListKeyboardDelegate.d.ts +95 -0
  597. package/dist/selection/ListKeyboardDelegate.d.ts.map +1 -0
  598. package/dist/selection/constants.d.ts +15 -0
  599. package/dist/selection/constants.d.ts.map +1 -0
  600. package/dist/selection/createCollectionRowInteraction.d.ts +13 -0
  601. package/dist/selection/createCollectionRowInteraction.d.ts.map +1 -0
  602. package/dist/selection/createScrollIntoViewOnFocus.d.ts +31 -0
  603. package/dist/selection/createScrollIntoViewOnFocus.d.ts.map +1 -0
  604. package/dist/selection/createSelectableCollection.d.ts +69 -0
  605. package/dist/selection/createSelectableCollection.d.ts.map +1 -0
  606. package/dist/selection/createSelectableItem.d.ts +154 -0
  607. package/dist/selection/createSelectableItem.d.ts.map +1 -0
  608. package/dist/selection/createSelectableList.d.ts +43 -0
  609. package/dist/selection/createSelectableList.d.ts.map +1 -0
  610. package/dist/selection/createTypeSelect.d.ts +2 -2
  611. package/dist/selection/createTypeSelect.d.ts.map +1 -1
  612. package/dist/selection/index.d.ts +10 -1
  613. package/dist/selection/index.d.ts.map +1 -1
  614. package/dist/selection/index.js +4 -0
  615. package/dist/selection/index.jsx +4 -0
  616. package/dist/selection/selectItem.d.ts +29 -0
  617. package/dist/selection/selectItem.d.ts.map +1 -0
  618. package/dist/selection/utils.d.ts +40 -0
  619. package/dist/selection/utils.d.ts.map +1 -0
  620. package/dist/separator/createSeparator.d.ts +9 -5
  621. package/dist/separator/createSeparator.d.ts.map +1 -1
  622. package/dist/separator/index.d.ts +1 -1
  623. package/dist/separator/index.js +2 -0
  624. package/dist/separator/index.jsx +2 -0
  625. package/dist/slider/createSlider.d.ts +11 -7
  626. package/dist/slider/createSlider.d.ts.map +1 -1
  627. package/dist/slider/index.d.ts +2 -2
  628. package/dist/slider/index.js +2 -0
  629. package/dist/slider/index.jsx +2 -0
  630. package/dist/ssr/index.d.ts +18 -1
  631. package/dist/ssr/index.d.ts.map +1 -1
  632. package/dist/ssr/index.js +299 -0
  633. package/dist/ssr/index.js.map +1 -0
  634. package/dist/ssr/index.jsx +292 -0
  635. package/dist/ssr/index.jsx.map +1 -0
  636. package/dist/steplist/createStepList.d.ts +36 -0
  637. package/dist/steplist/createStepList.d.ts.map +1 -0
  638. package/dist/steplist/index.d.ts +2 -0
  639. package/dist/steplist/index.d.ts.map +1 -0
  640. package/dist/steplist/index.js +2 -0
  641. package/dist/steplist/index.jsx +2 -0
  642. package/dist/switch/createSwitch.d.ts +10 -4
  643. package/dist/switch/createSwitch.d.ts.map +1 -1
  644. package/dist/switch/index.d.ts +1 -1
  645. package/dist/switch/index.js +2 -0
  646. package/dist/switch/index.jsx +2 -0
  647. package/dist/table/createTable.d.ts +3 -3
  648. package/dist/table/createTable.d.ts.map +1 -1
  649. package/dist/table/createTableCell.d.ts +3 -3
  650. package/dist/table/createTableCell.d.ts.map +1 -1
  651. package/dist/table/createTableColumnHeader.d.ts +3 -3
  652. package/dist/table/createTableColumnHeader.d.ts.map +1 -1
  653. package/dist/table/createTableColumnResize.d.ts +41 -0
  654. package/dist/table/createTableColumnResize.d.ts.map +1 -0
  655. package/dist/table/createTableHeaderRow.d.ts +3 -3
  656. package/dist/table/createTableRow.d.ts +4 -4
  657. package/dist/table/createTableRow.d.ts.map +1 -1
  658. package/dist/table/createTableRowGroup.d.ts +2 -2
  659. package/dist/table/createTableRowGroup.d.ts.map +1 -1
  660. package/dist/table/createTableSelectAllCheckbox.d.ts +3 -3
  661. package/dist/table/createTableSelectionCheckbox.d.ts +3 -3
  662. package/dist/table/index.d.ts +11 -9
  663. package/dist/table/index.d.ts.map +1 -1
  664. package/dist/table/index.js +2 -0
  665. package/dist/table/index.jsx +2 -0
  666. package/dist/table/types.d.ts +41 -7
  667. package/dist/table/types.d.ts.map +1 -1
  668. package/dist/tabs/createTabs.d.ts +32 -28
  669. package/dist/tabs/createTabs.d.ts.map +1 -1
  670. package/dist/tabs/index.d.ts +1 -1
  671. package/dist/tabs/index.js +2 -0
  672. package/dist/tabs/index.jsx +2 -0
  673. package/dist/tag/createTag.d.ts +4 -2
  674. package/dist/tag/createTag.d.ts.map +1 -1
  675. package/dist/tag/createTagGroup.d.ts +5 -5
  676. package/dist/tag/createTagGroup.d.ts.map +1 -1
  677. package/dist/tag/index.d.ts +2 -2
  678. package/dist/tag/index.d.ts.map +1 -1
  679. package/dist/tag/index.js +2 -0
  680. package/dist/tag/index.jsx +2 -0
  681. package/dist/textfield/createTextField.d.ts +17 -11
  682. package/dist/textfield/createTextField.d.ts.map +1 -1
  683. package/dist/textfield/index.d.ts +1 -1
  684. package/dist/textfield/index.d.ts.map +1 -1
  685. package/dist/textfield/index.js +2 -0
  686. package/dist/textfield/index.jsx +2 -0
  687. package/dist/toast/createToast.d.ts +2 -2
  688. package/dist/toast/createToast.d.ts.map +1 -1
  689. package/dist/toast/createToastRegion.d.ts +5 -3
  690. package/dist/toast/createToastRegion.d.ts.map +1 -1
  691. package/dist/toast/index.d.ts +2 -2
  692. package/dist/toast/index.d.ts.map +1 -1
  693. package/dist/toast/index.js +2 -0
  694. package/dist/toast/index.jsx +2 -0
  695. package/dist/toggle/createToggle.d.ts +13 -9
  696. package/dist/toggle/createToggle.d.ts.map +1 -1
  697. package/dist/toggle/createToggleState.d.ts +2 -2
  698. package/dist/toggle/createToggleState.d.ts.map +1 -1
  699. package/dist/toggle/index.d.ts +4 -4
  700. package/dist/toggle/index.d.ts.map +1 -1
  701. package/dist/toggle/index.js +3 -0
  702. package/dist/toggle/index.jsx +3 -0
  703. package/dist/toolbar/createToolbar.d.ts +9 -9
  704. package/dist/toolbar/createToolbar.d.ts.map +1 -1
  705. package/dist/toolbar/index.d.ts +1 -1
  706. package/dist/toolbar/index.d.ts.map +1 -1
  707. package/dist/toolbar/index.js +2 -0
  708. package/dist/toolbar/index.jsx +2 -0
  709. package/dist/tooltip/createTooltip.d.ts +5 -5
  710. package/dist/tooltip/createTooltip.d.ts.map +1 -1
  711. package/dist/tooltip/createTooltipTrigger.d.ts +10 -5
  712. package/dist/tooltip/createTooltipTrigger.d.ts.map +1 -1
  713. package/dist/tooltip/index.d.ts +2 -2
  714. package/dist/tooltip/index.js +2 -0
  715. package/dist/tooltip/index.jsx +2 -0
  716. package/dist/tree/createTree.d.ts +8 -4
  717. package/dist/tree/createTree.d.ts.map +1 -1
  718. package/dist/tree/createTreeItem.d.ts +4 -4
  719. package/dist/tree/createTreeItem.d.ts.map +1 -1
  720. package/dist/tree/createTreeSelectionCheckbox.d.ts +3 -3
  721. package/dist/tree/createTreeSelectionCheckbox.d.ts.map +1 -1
  722. package/dist/tree/index.d.ts +4 -4
  723. package/dist/tree/index.js +2 -0
  724. package/dist/tree/index.jsx +2 -0
  725. package/dist/tree/types.d.ts +20 -6
  726. package/dist/tree/types.d.ts.map +1 -1
  727. package/dist/utils/animation.d.ts +60 -0
  728. package/dist/utils/animation.d.ts.map +1 -0
  729. package/dist/utils/createDescription.d.ts +2 -2
  730. package/dist/utils/createDescription.d.ts.map +1 -1
  731. package/dist/utils/dom.d.ts +48 -2
  732. package/dist/utils/dom.d.ts.map +1 -1
  733. package/dist/utils/env.d.ts.map +1 -1
  734. package/dist/utils/focus.d.ts +1 -1
  735. package/dist/utils/focus.d.ts.map +1 -1
  736. package/dist/utils/geometry.d.ts.map +1 -1
  737. package/dist/utils/index.d.ts +15 -12
  738. package/dist/utils/index.d.ts.map +1 -1
  739. package/dist/utils/index.js +5 -0
  740. package/dist/utils/index.jsx +5 -0
  741. package/dist/utils/keyboard.d.ts +17 -0
  742. package/dist/utils/keyboard.d.ts.map +1 -0
  743. package/dist/utils/mergeProps.d.ts.map +1 -1
  744. package/dist/utils/reactivity.d.ts +1 -1
  745. package/dist/utils/scrollIntoView.d.ts +30 -0
  746. package/dist/utils/scrollIntoView.d.ts.map +1 -0
  747. package/dist/visually-hidden/createVisuallyHidden.d.ts +2 -2
  748. package/dist/visually-hidden/createVisuallyHidden.d.ts.map +1 -1
  749. package/dist/visually-hidden/index.d.ts +1 -1
  750. package/dist/visually-hidden/index.js +2 -0
  751. package/dist/visually-hidden/index.jsx +2 -0
  752. package/package.json +334 -33
  753. package/src/actiongroup/createActionGroup.ts +101 -91
  754. package/src/actiongroup/index.ts +1 -1
  755. package/src/autocomplete/createAutocomplete.ts +177 -148
  756. package/src/autocomplete/index.ts +1 -1
  757. package/src/breadcrumbs/createBreadcrumbs.ts +33 -42
  758. package/src/breadcrumbs/index.ts +1 -1
  759. package/src/button/createButton.ts +102 -73
  760. package/src/button/createToggleButton.ts +10 -10
  761. package/src/button/createToggleButtonGroup.ts +25 -32
  762. package/src/button/index.ts +6 -9
  763. package/src/button/types.ts +18 -12
  764. package/src/calendar/createCalendar.ts +64 -29
  765. package/src/calendar/createCalendarCell.ts +115 -46
  766. package/src/calendar/createCalendarGrid.ts +97 -41
  767. package/src/calendar/createCalendarMonthPicker.ts +105 -0
  768. package/src/calendar/createCalendarYearPicker.ts +144 -0
  769. package/src/calendar/createRangeCalendar.ts +68 -31
  770. package/src/calendar/createRangeCalendarCell.ts +92 -31
  771. package/src/calendar/index.ts +21 -8
  772. package/src/calendar/intl/index.ts +210 -0
  773. package/src/calendar/utils.ts +231 -0
  774. package/src/checkbox/createCheckbox.ts +23 -21
  775. package/src/checkbox/createCheckboxGroup.ts +68 -44
  776. package/src/checkbox/createCheckboxGroupItem.ts +26 -41
  777. package/src/checkbox/createCheckboxGroupState.ts +3 -22
  778. package/src/checkbox/index.ts +8 -10
  779. package/src/collections/index.ts +33 -29
  780. package/src/color/createColorArea.ts +232 -154
  781. package/src/color/createColorField.ts +107 -58
  782. package/src/color/createColorSlider.ts +231 -73
  783. package/src/color/createColorSwatch.ts +38 -13
  784. package/src/color/createColorWheel.ts +208 -83
  785. package/src/color/index.ts +6 -6
  786. package/src/color/types.ts +98 -16
  787. package/src/combobox/createComboBox.ts +157 -100
  788. package/src/combobox/index.ts +1 -1
  789. package/src/combobox/intl/index.ts +5 -5
  790. package/src/datepicker/createDateField.ts +192 -39
  791. package/src/datepicker/createDatePicker.ts +260 -67
  792. package/src/datepicker/createDatePickerGroup.ts +149 -0
  793. package/src/datepicker/createDateRangePicker.ts +105 -57
  794. package/src/datepicker/createDateSegment.ts +188 -96
  795. package/src/datepicker/createTimeField.ts +38 -34
  796. package/src/datepicker/createTimeSegment.ts +67 -85
  797. package/src/datepicker/index.ts +13 -14
  798. package/src/dialog/createDialog.ts +45 -38
  799. package/src/dialog/index.ts +2 -2
  800. package/src/dialog/types.ts +4 -4
  801. package/src/disclosure/createDisclosure.ts +138 -33
  802. package/src/disclosure/createDisclosureGroup.ts +8 -21
  803. package/src/disclosure/index.ts +2 -2
  804. package/src/dnd/createDrag.ts +19 -25
  805. package/src/dnd/createDraggableCollection.ts +4 -4
  806. package/src/dnd/createDraggableItem.ts +20 -19
  807. package/src/dnd/createDrop.ts +42 -51
  808. package/src/dnd/createDroppableCollection.ts +293 -173
  809. package/src/dnd/createDroppableItem.ts +34 -34
  810. package/src/dnd/index.ts +23 -12
  811. package/src/dnd/types.ts +4 -7
  812. package/src/dnd/utils.ts +58 -47
  813. package/src/focus/FocusScope.tsx +301 -176
  814. package/src/focus/createAutoFocus.ts +4 -20
  815. package/src/focus/createFocusRestore.ts +15 -28
  816. package/src/focus/createVirtualFocus.ts +20 -36
  817. package/src/focus/index.ts +4 -8
  818. package/src/form/createFormReset.ts +4 -4
  819. package/src/form/createFormValidation.ts +23 -39
  820. package/src/form/index.ts +2 -5
  821. package/src/grid/GridKeyboardDelegate.ts +30 -30
  822. package/src/grid/createGrid.ts +36 -36
  823. package/src/grid/createGridCell.ts +18 -18
  824. package/src/grid/createGridRow.ts +14 -14
  825. package/src/grid/index.ts +5 -5
  826. package/src/grid/types.ts +8 -8
  827. package/src/gridlist/createGridList.ts +172 -64
  828. package/src/gridlist/createGridListItem.ts +98 -121
  829. package/src/gridlist/createGridListSection.ts +54 -0
  830. package/src/gridlist/createGridListSelectionCheckbox.ts +12 -9
  831. package/src/gridlist/index.ts +7 -4
  832. package/src/gridlist/types.ts +58 -7
  833. package/src/i18n/createCollator.ts +5 -18
  834. package/src/i18n/createDateFormatter.ts +5 -13
  835. package/src/i18n/createFilter.ts +11 -24
  836. package/src/i18n/createNumberFormatter.ts +4 -6
  837. package/src/i18n/createStringFormatter.ts +19 -15
  838. package/src/i18n/index.ts +8 -11
  839. package/src/i18n/locale.tsx +15 -40
  840. package/src/i18n/utils.ts +35 -39
  841. package/src/index.ts +111 -172
  842. package/src/interactions/FocusableProvider.tsx +3 -7
  843. package/src/interactions/PressEvent.ts +18 -4
  844. package/src/interactions/createFocus.ts +12 -8
  845. package/src/interactions/createFocusRing.ts +21 -19
  846. package/src/interactions/createFocusWithin.ts +20 -13
  847. package/src/interactions/createFocusable.ts +15 -16
  848. package/src/interactions/createHover.ts +70 -55
  849. package/src/interactions/createInteractionModality.ts +96 -94
  850. package/src/interactions/createKeyboard.ts +12 -2
  851. package/src/interactions/createLongPress.ts +23 -23
  852. package/src/interactions/createMove.ts +72 -62
  853. package/src/interactions/createPress.ts +192 -92
  854. package/src/interactions/index.ts +24 -16
  855. package/src/label/createField.ts +18 -19
  856. package/src/label/createLabel.ts +18 -30
  857. package/src/label/createLabels.ts +8 -12
  858. package/src/label/index.ts +5 -5
  859. package/src/landmark/createLandmark.ts +30 -51
  860. package/src/landmark/index.ts +1 -1
  861. package/src/link/createLink.ts +83 -56
  862. package/src/link/index.ts +1 -1
  863. package/src/listbox/createListBox.ts +198 -66
  864. package/src/listbox/createOption.ts +112 -71
  865. package/src/listbox/index.ts +2 -6
  866. package/src/live-announcer/announce.ts +44 -71
  867. package/src/live-announcer/index.ts +1 -1
  868. package/src/menu/createMenu.ts +171 -65
  869. package/src/menu/createMenuItem.ts +315 -51
  870. package/src/menu/createMenuTrigger.ts +15 -15
  871. package/src/menu/index.ts +3 -12
  872. package/src/meter/createMeter.ts +7 -15
  873. package/src/meter/index.ts +1 -1
  874. package/src/numberfield/createNumberField.ts +205 -80
  875. package/src/numberfield/index.ts +1 -1
  876. package/src/overlays/ariaHideOutside.ts +14 -10
  877. package/src/overlays/createInteractOutside.ts +21 -18
  878. package/src/overlays/createModal.tsx +17 -17
  879. package/src/overlays/createOverlay.ts +38 -8
  880. package/src/overlays/createOverlayTrigger.ts +16 -16
  881. package/src/overlays/createPreventScroll.ts +46 -24
  882. package/src/overlays/index.ts +6 -17
  883. package/src/popover/calculatePosition.ts +134 -124
  884. package/src/popover/createOverlayPosition.ts +55 -40
  885. package/src/popover/createPopover.ts +42 -17
  886. package/src/popover/index.ts +3 -3
  887. package/src/progress/createProgressBar.ts +31 -32
  888. package/src/progress/index.ts +1 -1
  889. package/src/radio/createRadio.ts +114 -75
  890. package/src/radio/createRadioGroup.ts +83 -77
  891. package/src/radio/createRadioGroupState.ts +7 -31
  892. package/src/radio/index.ts +3 -8
  893. package/src/searchfield/createSearchField.ts +57 -29
  894. package/src/searchfield/index.ts +2 -2
  895. package/src/select/createHiddenSelect.tsx +57 -44
  896. package/src/select/createSelect.ts +146 -73
  897. package/src/select/index.ts +2 -7
  898. package/src/selection/DOMLayoutDelegate.ts +102 -0
  899. package/src/selection/ListKeyboardDelegate.ts +398 -0
  900. package/src/selection/constants.ts +16 -0
  901. package/src/selection/createCollectionRowInteraction.ts +209 -0
  902. package/src/selection/createScrollIntoViewOnFocus.ts +65 -0
  903. package/src/selection/createSelectableCollection.ts +645 -0
  904. package/src/selection/createSelectableItem.ts +498 -0
  905. package/src/selection/createSelectableList.ts +93 -0
  906. package/src/selection/createTypeSelect.ts +120 -59
  907. package/src/selection/index.ts +32 -1
  908. package/src/selection/selectItem.ts +80 -0
  909. package/src/selection/utils.ts +82 -0
  910. package/src/separator/createSeparator.ts +20 -25
  911. package/src/separator/index.ts +1 -1
  912. package/src/slider/createSlider.ts +128 -112
  913. package/src/slider/index.ts +2 -2
  914. package/src/ssr/index.tsx +38 -46
  915. package/src/steplist/createStepList.ts +106 -0
  916. package/src/steplist/index.ts +8 -0
  917. package/src/switch/createSwitch.ts +19 -14
  918. package/src/switch/index.ts +1 -1
  919. package/src/table/createTable.ts +192 -95
  920. package/src/table/createTableCell.ts +17 -16
  921. package/src/table/createTableColumnHeader.ts +67 -20
  922. package/src/table/createTableColumnResize.ts +256 -0
  923. package/src/table/createTableHeaderRow.ts +7 -7
  924. package/src/table/createTableRow.ts +206 -91
  925. package/src/table/createTableRowGroup.ts +5 -7
  926. package/src/table/createTableSelectAllCheckbox.ts +14 -14
  927. package/src/table/createTableSelectionCheckbox.ts +8 -8
  928. package/src/table/index.ts +14 -9
  929. package/src/table/types.ts +43 -7
  930. package/src/tabs/createTabs.ts +123 -111
  931. package/src/tabs/index.ts +1 -1
  932. package/src/tag/createTag.ts +57 -50
  933. package/src/tag/createTagGroup.ts +47 -41
  934. package/src/tag/index.ts +2 -6
  935. package/src/textfield/createTextField.ts +67 -35
  936. package/src/textfield/index.ts +1 -5
  937. package/src/toast/createToast.ts +29 -26
  938. package/src/toast/createToastRegion.ts +169 -26
  939. package/src/toast/index.ts +2 -6
  940. package/src/toggle/createToggle.ts +115 -53
  941. package/src/toggle/createToggleState.ts +2 -10
  942. package/src/toggle/index.ts +4 -5
  943. package/src/toolbar/createToolbar.ts +214 -230
  944. package/src/toolbar/index.ts +1 -1
  945. package/src/tooltip/createTooltip.ts +11 -24
  946. package/src/tooltip/createTooltipTrigger.ts +61 -49
  947. package/src/tooltip/index.ts +2 -2
  948. package/src/tree/createTree.ts +128 -72
  949. package/src/tree/createTreeItem.ts +120 -135
  950. package/src/tree/createTreeSelectionCheckbox.ts +11 -8
  951. package/src/tree/index.ts +4 -4
  952. package/src/tree/types.ts +20 -6
  953. package/src/utils/animation.ts +151 -0
  954. package/src/utils/createDescription.ts +6 -23
  955. package/src/utils/dom.ts +265 -68
  956. package/src/utils/env.ts +9 -11
  957. package/src/utils/events.ts +7 -7
  958. package/src/utils/filterDOMProps.ts +49 -49
  959. package/src/utils/focus.ts +60 -68
  960. package/src/utils/geometry.ts +1 -4
  961. package/src/utils/globalListeners.ts +9 -9
  962. package/src/utils/index.ts +20 -22
  963. package/src/utils/keyboard.ts +25 -0
  964. package/src/utils/mergeProps.ts +49 -15
  965. package/src/utils/platform.ts +2 -2
  966. package/src/utils/reactivity.ts +3 -3
  967. package/src/utils/scrollIntoView.ts +181 -0
  968. package/src/utils/textSelection.ts +16 -16
  969. package/src/visually-hidden/createVisuallyHidden.ts +16 -28
  970. package/src/visually-hidden/index.ts +1 -1
  971. package/dist/i18n/NumberFormatter.d.ts +0 -43
  972. package/dist/i18n/NumberFormatter.d.ts.map +0 -1
  973. package/dist/index.js.map +0 -1
  974. package/dist/index.ssr.js +0 -17082
  975. package/dist/index.ssr.js.map +0 -1
  976. package/src/i18n/NumberFormatter.ts +0 -266
@@ -0,0 +1 @@
1
+ {"version":3,"file":"dnd.jsx","names":[],"sources":["../../src/dnd/utils.ts","../../src/dnd/createDraggableCollection.ts","../../src/dnd/createDrag.ts","../../src/dnd/createDrop.ts","../../src/dnd/createDroppableCollection.ts","../../src/dnd/createDraggableItem.ts","../../src/dnd/createDroppableItem.ts"],"sourcesContent":["/**\n * Drag and Drop utilities for solidaria.\n */\n\nimport type {\n DragItem,\n DragType,\n DropItem,\n TextDropItem,\n FileDropItem,\n DirectoryDropItem,\n DropOperation,\n} from \"@proyecto-viviana/solid-stately\";\nimport { DIRECTORY_DRAG_TYPE } from \"@proyecto-viviana/solid-stately\";\n\n// Native drag types that can be transferred between applications\nexport const NATIVE_DRAG_TYPES: Set<string> = new Set([\"text/plain\", \"text/uri-list\", \"text/html\"]);\n\n// Custom drag type for serializing multiple items\nexport const CUSTOM_DRAG_TYPE = \"application/vnd.solidaria.items+json\";\n\n// Generic type for unknown file types\nexport const GENERIC_TYPE = \"application/octet-stream\";\n\n// Drop operation bit flags\nexport enum DROP_OPERATION {\n none = 0,\n cancel = 0,\n move = 1 << 0,\n copy = 1 << 1,\n link = 1 << 2,\n all = (1 << 0) | (1 << 1) | (1 << 2),\n}\n\n// Map from effectAllowed to DROP_OPERATION\nexport const DROP_OPERATION_ALLOWED: Record<string, number> = {\n none: DROP_OPERATION.none,\n copy: DROP_OPERATION.copy,\n copyLink: DROP_OPERATION.copy | DROP_OPERATION.link,\n copyMove: DROP_OPERATION.copy | DROP_OPERATION.move,\n link: DROP_OPERATION.link,\n linkMove: DROP_OPERATION.link | DROP_OPERATION.move,\n move: DROP_OPERATION.move,\n all: DROP_OPERATION.all,\n uninitialized: DROP_OPERATION.all,\n};\n\n// Map from DROP_OPERATION to effectAllowed\nexport const EFFECT_ALLOWED: Record<number, string> = {\n [DROP_OPERATION.none]: \"none\",\n [DROP_OPERATION.move]: \"move\",\n [DROP_OPERATION.copy]: \"copy\",\n [DROP_OPERATION.copy | DROP_OPERATION.move]: \"copyMove\",\n [DROP_OPERATION.link]: \"link\",\n [DROP_OPERATION.link | DROP_OPERATION.move]: \"linkMove\",\n [DROP_OPERATION.copy | DROP_OPERATION.link]: \"copyLink\",\n [DROP_OPERATION.all]: \"all\",\n};\n\n// Map from dropEffect to DropOperation\nexport const DROP_EFFECT_TO_DROP_OPERATION: Record<string, DropOperation> = {\n none: \"cancel\",\n link: \"link\",\n copy: \"copy\",\n move: \"move\",\n};\n\n// Map from DropOperation to dropEffect\nexport const DROP_OPERATION_TO_DROP_EFFECT: Record<DropOperation, string> = {\n cancel: \"none\",\n link: \"link\",\n copy: \"copy\",\n move: \"move\",\n};\n\n/**\n * Get the types present in drag items.\n */\nexport function getTypes(items: DragItem[]): Set<string> {\n const types = new Set<string>();\n for (const item of items) {\n for (const type of Object.keys(item)) {\n types.add(type);\n }\n }\n return types;\n}\n\n/**\n * Write drag items to a DataTransfer object.\n */\nexport function writeToDataTransfer(dataTransfer: DataTransfer, items: DragItem[]): void {\n const groupedByType = new Map<string, string[]>();\n let needsCustomData = false;\n const customData: object[] = [];\n\n for (const item of items) {\n const types = Object.keys(item);\n if (types.length > 1) {\n needsCustomData = true;\n }\n\n const dataByType: Record<string, string> = {};\n for (const type of types) {\n let typeItems = groupedByType.get(type);\n if (!typeItems) {\n typeItems = [];\n groupedByType.set(type, typeItems);\n } else {\n needsCustomData = true;\n }\n\n const data = item[type];\n dataByType[type] = data;\n typeItems.push(data);\n }\n\n customData.push(dataByType);\n }\n\n for (const [type, typeItems] of groupedByType) {\n if (NATIVE_DRAG_TYPES.has(type)) {\n // Join all items of this type with newlines\n const data = typeItems.join(\"\\n\");\n dataTransfer.items.add(data, type);\n } else {\n // Set first item for non-native types\n dataTransfer.items.add(typeItems[0], type);\n }\n }\n\n if (needsCustomData) {\n const data = JSON.stringify(customData);\n dataTransfer.items.add(data, CUSTOM_DRAG_TYPE);\n }\n}\n\n/**\n * Read drop items from a DataTransfer object.\n */\nexport function readFromDataTransfer(dataTransfer: DataTransfer): DropItem[] {\n const items: DropItem[] = [];\n\n if (!dataTransfer) {\n return items;\n }\n\n // Check for custom drag type first\n let hasCustomType = false;\n if (dataTransfer.types.includes(CUSTOM_DRAG_TYPE)) {\n try {\n const data = dataTransfer.getData(CUSTOM_DRAG_TYPE);\n const parsed = JSON.parse(data);\n for (const item of parsed) {\n items.push({\n kind: \"text\",\n types: new Set(Object.keys(item)),\n getText: (type) => Promise.resolve(item[type]),\n });\n }\n hasCustomType = true;\n } catch {\n // ignore parsing errors\n }\n }\n\n // Fall back to native items\n if (!hasCustomType) {\n const stringItems = new Map<string, string>();\n\n for (const item of dataTransfer.items) {\n if (item.kind === \"string\") {\n const type = item.type || GENERIC_TYPE;\n stringItems.set(type, dataTransfer.getData(item.type));\n } else if (item.kind === \"file\") {\n const file = item.getAsFile();\n if (file) {\n items.push(createFileItem(file));\n }\n }\n }\n\n if (stringItems.size > 0) {\n items.push({\n kind: \"text\",\n types: new Set(stringItems.keys()),\n getText: (type) => Promise.resolve(stringItems.get(type) ?? \"\"),\n });\n }\n }\n\n return items;\n}\n\n/**\n * Create a FileDropItem from a File object.\n */\nfunction createFileItem(file: File): FileDropItem {\n return {\n kind: \"file\",\n type: file.type || GENERIC_TYPE,\n name: file.name,\n getText: () => file.text(),\n getFile: () => Promise.resolve(file),\n };\n}\n\n/**\n * DragTypes implementation for checking drag types.\n */\nexport class DragTypesImpl {\n private types: Set<string>;\n private includesUnknownTypes: boolean;\n\n constructor(dataTransfer: DataTransfer) {\n this.types = new Set<string>();\n let hasFiles = false;\n\n for (const item of dataTransfer.items) {\n if (item.type !== CUSTOM_DRAG_TYPE) {\n if (item.kind === \"file\") {\n hasFiles = true;\n }\n if (item.type) {\n this.types.add(item.type);\n } else {\n this.types.add(GENERIC_TYPE);\n }\n }\n }\n\n // Safari doesn't expose file types until drop\n this.includesUnknownTypes = !hasFiles && dataTransfer.types.includes(\"Files\");\n }\n\n has(type: DragType | DragType[]): boolean {\n if (Array.isArray(type)) {\n return type.some((t) => this.has(t));\n }\n\n if (\n this.includesUnknownTypes ||\n (type === DIRECTORY_DRAG_TYPE && this.types.has(GENERIC_TYPE)) ||\n type === \"*/*\"\n ) {\n return true;\n }\n\n if (typeof type === \"string\") {\n // Wildcard MIME match, e.g. \"image/*\" accepts \"image/png\".\n if (type.endsWith(\"/*\")) {\n for (const key of this.types) {\n if (key.startsWith(type.slice(0, -2))) {\n return true;\n }\n }\n return false;\n }\n return this.types.has(type);\n }\n\n return false;\n }\n}\n\n/**\n * Check if a drop item is a text item.\n */\nexport function isTextDropItem(dropItem: DropItem): dropItem is TextDropItem {\n return dropItem.kind === \"text\";\n}\n\n/**\n * Check if a drop item is a file item.\n */\nexport function isFileDropItem(dropItem: DropItem): dropItem is FileDropItem {\n return dropItem.kind === \"file\";\n}\n\n/**\n * Check if a drop item is a directory item.\n */\nexport function isDirectoryDropItem(dropItem: DropItem): dropItem is DirectoryDropItem {\n return dropItem.kind === \"directory\";\n}\n\n// Global state for tracking drag operations\nlet globalDropEffect: string | undefined;\nlet globalAllowedDropOperations: number = DROP_OPERATION.none;\n\nexport function setGlobalDropEffect(effect: string | undefined): void {\n globalDropEffect = effect;\n}\n\nexport function getGlobalDropEffect(): string | undefined {\n return globalDropEffect;\n}\n\nexport function setGlobalAllowedDropOperations(ops: number): void {\n globalAllowedDropOperations = ops;\n}\n\nexport function getGlobalAllowedDropOperations(): number {\n return globalAllowedDropOperations;\n}\n","/**\n * createDraggableCollection - ARIA hook for draggable collection items.\n *\n * Provides accessibility support for dragging items from a collection\n * component like ListBox, GridList, or Table.\n */\n\nimport { createMemo, createEffect, onCleanup, type Accessor } from \"solid-js\";\nimport type { DraggableCollectionState } from \"@proyecto-viviana/solid-stately\";\nimport { getTypes } from \"./utils\";\n\n// Global state for tracking the dragging collection\nlet globalDraggingCollectionRef: HTMLElement | null = null;\nlet globalDraggingKeys: Set<string | number> = new Set();\nlet globalDraggingTypes: Set<string> = new Set();\n\nexport function setGlobalDraggingCollectionRef(ref: HTMLElement | null): void {\n globalDraggingCollectionRef = ref;\n}\n\nexport function getGlobalDraggingCollectionRef(): HTMLElement | null {\n return globalDraggingCollectionRef;\n}\n\nexport function setGlobalDraggingKeys(keys: Set<string | number>): void {\n globalDraggingKeys = new Set(keys);\n}\n\nexport function getGlobalDraggingKeys(): Set<string | number> {\n return new Set(globalDraggingKeys);\n}\n\nexport function setGlobalDraggingTypes(types: Set<string>): void {\n globalDraggingTypes = new Set(types);\n}\n\nexport function getGlobalDraggingTypes(): Set<string> {\n return new Set(globalDraggingTypes);\n}\n\nexport interface DraggableCollectionOptions {\n /** Reference to the collection element. */\n ref: Accessor<HTMLElement | null>;\n}\n\nexport interface DraggableCollectionAria {\n /** The draggable collection state. */\n state: DraggableCollectionState;\n}\n\n/**\n * Creates ARIA support for a draggable collection.\n *\n * @param _options - Collection options\n * @param state - Draggable collection state\n * @returns Draggable collection ARIA result\n */\nexport function createDraggableCollection(\n options: DraggableCollectionOptions,\n state: DraggableCollectionState,\n): DraggableCollectionAria {\n const ref = createMemo(() => options.ref());\n\n // Track dragging state globally\n createEffect(() => {\n const currentRef = ref();\n if (state.draggingKeys.size > 0) {\n if (globalDraggingCollectionRef !== currentRef) {\n setGlobalDraggingCollectionRef(currentRef);\n }\n setGlobalDraggingKeys(state.draggingKeys);\n setGlobalDraggingTypes(getTypes(state.getItems(state.draggingKeys)));\n return;\n }\n\n // Clear global drag tracking when this collection is no longer dragging.\n if (globalDraggingCollectionRef === currentRef) {\n setGlobalDraggingCollectionRef(null);\n setGlobalDraggingKeys(new Set());\n setGlobalDraggingTypes(new Set());\n }\n });\n\n // Clean up on unmount\n onCleanup(() => {\n if (globalDraggingCollectionRef === ref()) {\n setGlobalDraggingCollectionRef(null);\n setGlobalDraggingKeys(new Set());\n setGlobalDraggingTypes(new Set());\n }\n });\n\n return {\n state,\n };\n}\n","/**\n * createDrag - ARIA hook for drag operations.\n *\n * Provides accessibility props for draggable elements with support for\n * mouse, touch, and keyboard interactions.\n */\n\nimport { createMemo, type Accessor } from \"solid-js\";\nimport { createDragState } from \"@proyecto-viviana/solid-stately\";\nimport type { AriaDragOptions, DragAria } from \"./types\";\nimport {\n getTypes,\n writeToDataTransfer,\n DROP_OPERATION,\n EFFECT_ALLOWED,\n DROP_EFFECT_TO_DROP_OPERATION,\n setGlobalAllowedDropOperations,\n setGlobalDropEffect,\n getGlobalDropEffect,\n} from \"./utils\";\nimport { setGlobalDraggingTypes } from \"./createDraggableCollection\";\n\n/**\n * Creates ARIA props for a draggable element.\n *\n * @param props - Accessor returning drag options\n * @returns Drag ARIA props and state\n */\nexport function createDrag(props: Accessor<AriaDragOptions>): DragAria {\n const getProps = createMemo(() => props());\n\n const state = createDragState(() => ({\n getItems: getProps().getItems,\n getAllowedDropOperations: getProps().getAllowedDropOperations,\n onDragStart: getProps().onDragStart,\n onDragMove: getProps().onDragMove,\n onDragEnd: getProps().onDragEnd,\n isDisabled: getProps().isDisabled,\n hasDragButton: getProps().hasDragButton,\n preview: getProps().preview,\n }));\n\n let lastX = 0;\n let lastY = 0;\n\n const onDragStart = (e: DragEvent) => {\n if (e.defaultPrevented) return;\n e.stopPropagation();\n\n const p = getProps();\n\n state.startDrag(e.clientX, e.clientY);\n\n const items = state.getItems();\n setGlobalDraggingTypes(getTypes(items));\n e.dataTransfer?.clearData?.();\n if (e.dataTransfer) {\n writeToDataTransfer(e.dataTransfer, items);\n }\n\n let allowed = DROP_OPERATION.all;\n const allowedOps = state.getAllowedDropOperations();\n if (allowedOps.length > 0) {\n allowed = DROP_OPERATION.none;\n for (const op of allowedOps) {\n allowed |= DROP_OPERATION[op] || DROP_OPERATION.none;\n }\n }\n\n setGlobalAllowedDropOperations(allowed);\n const effectAllowed = EFFECT_ALLOWED[allowed] || \"none\";\n if (e.dataTransfer) {\n e.dataTransfer.effectAllowed = (\n effectAllowed === \"cancel\" ? \"none\" : effectAllowed\n ) as DataTransfer[\"effectAllowed\"];\n }\n\n if (typeof p.preview?.current === \"function\" && e.dataTransfer) {\n p.preview.current(items, (node, userX, userY) => {\n if (!node || !e.dataTransfer) return;\n\n const size = node.getBoundingClientRect();\n const rect = (e.currentTarget as HTMLElement).getBoundingClientRect();\n let defaultX = e.clientX - rect.x;\n let defaultY = e.clientY - rect.y;\n\n if (defaultX > size.width || defaultY > size.height) {\n defaultX = size.width / 2;\n defaultY = size.height / 2;\n }\n\n let offsetX = typeof userX === \"number\" ? userX : defaultX;\n let offsetY = typeof userY === \"number\" ? userY : defaultY;\n\n offsetX = Math.max(0, Math.min(offsetX, size.width));\n offsetY = Math.max(0, Math.min(offsetY, size.height));\n\n e.dataTransfer.setDragImage(node, offsetX, offsetY);\n });\n }\n\n lastX = e.clientX;\n lastY = e.clientY;\n };\n\n const onDrag = (e: DragEvent) => {\n e.stopPropagation();\n\n if (e.clientX === lastX && e.clientY === lastY) {\n return;\n }\n\n state.moveDrag(e.clientX, e.clientY);\n\n lastX = e.clientX;\n lastY = e.clientY;\n };\n\n const onDragEnd = (e: DragEvent) => {\n e.stopPropagation();\n\n let dropEffect: string = e.dataTransfer?.dropEffect ?? \"none\";\n // Chrome Android fix - use global drop effect\n if (getGlobalDropEffect()) {\n dropEffect = getGlobalDropEffect()!;\n }\n\n const dropOperation = DROP_EFFECT_TO_DROP_OPERATION[dropEffect];\n state.endDrag(e.clientX, e.clientY, dropOperation);\n\n setGlobalAllowedDropOperations(DROP_OPERATION.none);\n setGlobalDraggingTypes(new Set());\n setGlobalDropEffect(undefined);\n };\n\n // Keyboard/screen reader drag initiation\n const onKeyDown = (e: KeyboardEvent) => {\n if (e.key === \"Enter\" && e.target === e.currentTarget) {\n e.preventDefault();\n e.stopPropagation();\n }\n };\n\n const onKeyUp = (e: KeyboardEvent) => {\n if (e.key === \"Enter\" && e.target === e.currentTarget) {\n e.preventDefault();\n e.stopPropagation();\n // Would initiate keyboard-based drag mode\n // This is a simplified version - full implementation needs DragManager\n const rect = (e.target as HTMLElement).getBoundingClientRect();\n state.startDrag(rect.x + rect.width / 2, rect.y + rect.height / 2);\n const items = state.getItems();\n setGlobalDraggingTypes(getTypes(items));\n let allowed = DROP_OPERATION.all;\n const allowedOps = state.getAllowedDropOperations();\n if (allowedOps.length > 0) {\n allowed = DROP_OPERATION.none;\n for (const op of allowedOps) {\n allowed |= DROP_OPERATION[op] || DROP_OPERATION.none;\n }\n }\n setGlobalAllowedDropOperations(allowed);\n }\n };\n\n const dragProps = createMemo(() => {\n const p = getProps();\n\n if (p.isDisabled) {\n return {\n draggable: false as const,\n };\n }\n\n const baseProps: Record<string, unknown> = {\n draggable: true as const,\n onDragStart,\n onDrag,\n onDragEnd,\n };\n\n if (!p.hasDragButton) {\n baseProps.onKeyDown = onKeyDown;\n baseProps.onKeyUp = onKeyUp;\n }\n\n return baseProps;\n });\n\n const dragButtonProps = createMemo(() => {\n const p = getProps();\n\n if (p.isDisabled) {\n return {\n disabled: true,\n };\n }\n\n return {\n type: \"button\" as const,\n \"aria-label\": \"Drag\",\n onKeyDown,\n onKeyUp,\n };\n });\n\n return {\n get dragProps() {\n return dragProps() as DragAria[\"dragProps\"];\n },\n get dragButtonProps() {\n return dragButtonProps() as DragAria[\"dragButtonProps\"];\n },\n get isDragging() {\n return state.isDragging;\n },\n };\n}\n","/**\n * createDrop - ARIA hook for drop operations.\n *\n * Provides accessibility props for drop target elements with support for\n * mouse, touch, and keyboard interactions.\n */\n\nimport { createMemo, type Accessor } from \"solid-js\";\nimport { createDropState } from \"@proyecto-viviana/solid-stately\";\nimport type { AriaDropOptions, DropAria } from \"./types\";\nimport {\n readFromDataTransfer,\n DragTypesImpl,\n DROP_OPERATION,\n DROP_OPERATION_ALLOWED,\n DROP_OPERATION_TO_DROP_EFFECT,\n DROP_EFFECT_TO_DROP_OPERATION,\n setGlobalDropEffect,\n getGlobalAllowedDropOperations,\n} from \"./utils\";\nimport type { DropOperation } from \"@proyecto-viviana/solid-stately\";\n\nconst DROP_ACTIVATE_TIMEOUT = 800;\n\n/**\n * Creates ARIA props for a drop target element.\n *\n * @param props - Accessor returning drop options\n * @returns Drop ARIA props and state\n */\nexport function createDrop(props: Accessor<AriaDropOptions>): DropAria {\n const getProps = createMemo(() => props());\n\n const state = createDropState(() => ({\n getDropOperation: getProps().getDropOperation,\n onDropEnter: getProps().onDropEnter,\n onDropMove: getProps().onDropMove,\n onDropActivate: getProps().onDropActivate,\n onDropExit: getProps().onDropExit,\n onDrop: getProps().onDrop,\n hasDropButton: getProps().hasDropButton,\n isDisabled: getProps().isDisabled,\n }));\n\n let x = 0;\n let y = 0;\n let dragOverElements = new Set<Element>();\n let dropEffect: DataTransfer[\"dropEffect\"] = \"none\";\n let allowedOperations = DROP_OPERATION.all;\n let dropActivateTimer: ReturnType<typeof setTimeout> | undefined;\n\n const fireDropEnter = (e: DragEvent) => {\n const rect = (e.currentTarget as HTMLElement).getBoundingClientRect();\n state.enterTarget(e.clientX - rect.x, e.clientY - rect.y);\n };\n\n const fireDropExit = (e: DragEvent) => {\n const rect = (e.currentTarget as HTMLElement).getBoundingClientRect();\n state.exitTarget(e.clientX - rect.x, e.clientY - rect.y);\n };\n\n const getAllowedOperations = (e: DragEvent): number => {\n let allowed =\n DROP_OPERATION_ALLOWED[e.dataTransfer?.effectAllowed ?? \"none\"] ?? DROP_OPERATION.none;\n\n // Use global allowed operations if set (for internal drags)\n const globalAllowed = getGlobalAllowedDropOperations();\n if (globalAllowed) {\n allowed &= globalAllowed;\n }\n\n let modifierAllowed = DROP_OPERATION.none;\n\n // macOS: Alt=copy, Ctrl=link, Cmd=move\n // Windows/Linux: Alt=link, Shift=move, Ctrl=copy\n const isMac = typeof navigator !== \"undefined\" && /mac/i.test(navigator.platform);\n\n if (isMac) {\n if (e.altKey) modifierAllowed |= DROP_OPERATION.copy;\n if (e.ctrlKey) modifierAllowed |= DROP_OPERATION.link;\n if (e.metaKey) modifierAllowed |= DROP_OPERATION.move;\n } else {\n if (e.altKey) modifierAllowed |= DROP_OPERATION.link;\n if (e.shiftKey) modifierAllowed |= DROP_OPERATION.move;\n if (e.ctrlKey) modifierAllowed |= DROP_OPERATION.copy;\n }\n\n if (modifierAllowed) {\n return allowed & modifierAllowed;\n }\n\n return allowed;\n };\n\n const allowedOperationsToArray = (ops: number): DropOperation[] => {\n const result: DropOperation[] = [];\n if (ops & DROP_OPERATION.move) result.push(\"move\");\n if (ops & DROP_OPERATION.copy) result.push(\"copy\");\n if (ops & DROP_OPERATION.link) result.push(\"link\");\n return result;\n };\n\n const getDropOperationForAllowed = (allowed: number, operation: DropOperation): DropOperation => {\n const op = DROP_OPERATION[operation];\n return allowed & op ? operation : \"cancel\";\n };\n\n const onDragEnter = (e: DragEvent) => {\n e.preventDefault();\n e.stopPropagation();\n\n dragOverElements.add(e.target as Element);\n if (dragOverElements.size > 1) {\n return;\n }\n\n const p = getProps();\n const allowedOpsBits = getAllowedOperations(e);\n const allowedOps = allowedOperationsToArray(allowedOpsBits);\n let dropOp: DropOperation = allowedOps[0] ?? \"cancel\";\n\n if (typeof p.getDropOperation === \"function\" && e.dataTransfer) {\n const types = new DragTypesImpl(e.dataTransfer);\n dropOp = getDropOperationForAllowed(allowedOpsBits, p.getDropOperation(types, allowedOps));\n }\n\n if (typeof p.getDropOperationForPoint === \"function\" && e.dataTransfer) {\n const types = new DragTypesImpl(e.dataTransfer);\n const rect = (e.currentTarget as HTMLElement).getBoundingClientRect();\n dropOp = getDropOperationForAllowed(\n allowedOpsBits,\n p.getDropOperationForPoint(types, allowedOps, e.clientX - rect.x, e.clientY - rect.y),\n );\n }\n\n x = e.clientX;\n y = e.clientY;\n allowedOperations = allowedOpsBits;\n dropEffect = (DROP_OPERATION_TO_DROP_EFFECT[dropOp] || \"none\") as DataTransfer[\"dropEffect\"];\n\n if (e.dataTransfer) {\n e.dataTransfer.dropEffect = dropEffect;\n }\n\n if (dropOp !== \"cancel\") {\n fireDropEnter(e);\n }\n };\n\n const onDragOver = (e: DragEvent) => {\n e.preventDefault();\n e.stopPropagation();\n\n const allowedOpsBits = getAllowedOperations(e);\n\n // Skip if position and operations haven't changed\n if (e.clientX === x && e.clientY === y && allowedOpsBits === allowedOperations) {\n if (e.dataTransfer) {\n e.dataTransfer.dropEffect = dropEffect;\n }\n return;\n }\n\n x = e.clientX;\n y = e.clientY;\n\n const prevDropEffect = dropEffect;\n const p = getProps();\n\n if (allowedOpsBits !== allowedOperations) {\n const allowedOps = allowedOperationsToArray(allowedOpsBits);\n let dropOp: DropOperation = allowedOps[0] ?? \"cancel\";\n\n if (typeof p.getDropOperation === \"function\" && e.dataTransfer) {\n const types = new DragTypesImpl(e.dataTransfer);\n dropOp = getDropOperationForAllowed(allowedOpsBits, p.getDropOperation(types, allowedOps));\n }\n dropEffect = (DROP_OPERATION_TO_DROP_EFFECT[dropOp] || \"none\") as DataTransfer[\"dropEffect\"];\n }\n\n if (typeof p.getDropOperationForPoint === \"function\" && e.dataTransfer) {\n const types = new DragTypesImpl(e.dataTransfer);\n const rect = (e.currentTarget as HTMLElement).getBoundingClientRect();\n const dropOp = getDropOperationForAllowed(\n allowedOpsBits,\n p.getDropOperationForPoint(\n types,\n allowedOperationsToArray(allowedOpsBits),\n x - rect.x,\n y - rect.y,\n ),\n );\n dropEffect = (DROP_OPERATION_TO_DROP_EFFECT[dropOp] || \"none\") as DataTransfer[\"dropEffect\"];\n }\n\n allowedOperations = allowedOpsBits;\n\n if (e.dataTransfer) {\n e.dataTransfer.dropEffect = dropEffect;\n }\n\n if (dropEffect === \"none\" && prevDropEffect !== \"none\") {\n fireDropExit(e);\n } else if (dropEffect !== \"none\" && prevDropEffect === \"none\") {\n fireDropEnter(e);\n }\n\n if (dropEffect !== \"none\") {\n const rect = (e.currentTarget as HTMLElement).getBoundingClientRect();\n state.moveInTarget(x - rect.x, y - rect.y);\n }\n\n clearTimeout(dropActivateTimer);\n\n if (typeof p.onDropActivate === \"function\" && dropEffect !== \"none\") {\n const rect = (e.currentTarget as HTMLElement).getBoundingClientRect();\n const activateX = x - rect.x;\n const activateY = y - rect.y;\n dropActivateTimer = setTimeout(() => {\n state.activateTarget(activateX, activateY);\n }, DROP_ACTIVATE_TIMEOUT);\n }\n };\n\n const onDragLeave = (e: DragEvent) => {\n e.preventDefault();\n e.stopPropagation();\n\n // Track drag over elements (WebKit workaround for relatedTarget being null)\n dragOverElements.delete(e.target as Element);\n\n for (const element of dragOverElements) {\n if (!e.currentTarget || !(e.currentTarget as Element).contains(element)) {\n dragOverElements.delete(element);\n }\n }\n\n if (dragOverElements.size > 0) {\n return;\n }\n\n if (dropEffect !== \"none\") {\n fireDropExit(e);\n }\n\n clearTimeout(dropActivateTimer);\n };\n\n const onDropHandler = (e: DragEvent) => {\n e.preventDefault();\n e.stopPropagation();\n\n // Track drop effect globally for Chrome Android\n setGlobalDropEffect(dropEffect);\n\n const p = getProps();\n if (typeof p.onDrop === \"function\" && e.dataTransfer) {\n const items = readFromDataTransfer(e.dataTransfer);\n const dropOperation = DROP_EFFECT_TO_DROP_OPERATION[dropEffect];\n const rect = (e.currentTarget as HTMLElement).getBoundingClientRect();\n\n state.drop(e.clientX - rect.x, e.clientY - rect.y, items, dropOperation);\n }\n\n dragOverElements.clear();\n fireDropExit(e);\n clearTimeout(dropActivateTimer);\n };\n\n const dropProps = createMemo(() => {\n const p = getProps();\n\n if (p.isDisabled) {\n return {};\n }\n\n const baseProps: Record<string, unknown> = {\n onDragEnter,\n onDragOver,\n onDragLeave,\n onDrop: onDropHandler,\n };\n\n return baseProps;\n });\n\n const dropButtonProps = createMemo(() => {\n const p = getProps();\n\n if (p.isDisabled) {\n return {\n disabled: true,\n };\n }\n\n return {\n type: \"button\" as const,\n \"aria-label\": \"Drop\",\n };\n });\n\n return {\n get dropProps() {\n return dropProps() as DropAria[\"dropProps\"];\n },\n get isDropTarget() {\n return state.isDropTarget;\n },\n get dropButtonProps() {\n return dropButtonProps() as DropAria[\"dropButtonProps\"];\n },\n };\n}\n","/**\n * createDroppableCollection - ARIA hook for droppable collection targets.\n *\n * Provides accessibility support for dropping items into a collection\n * component like ListBox, GridList, or Table.\n */\n\nimport { createMemo, onCleanup, type Accessor } from \"solid-js\";\nimport type { JSX } from \"solid-js\";\nimport type {\n DroppableCollectionState,\n DropTarget,\n DropOperation,\n DropItem,\n DragType,\n DragTypes,\n Key,\n} from \"@proyecto-viviana/solid-stately\";\nimport { DIRECTORY_DRAG_TYPE } from \"@proyecto-viviana/solid-stately\";\nimport { createDrop } from \"./createDrop\";\nimport {\n getGlobalDraggingCollectionRef,\n getGlobalDraggingKeys,\n getGlobalDraggingTypes,\n} from \"./createDraggableCollection\";\nimport { getGlobalAllowedDropOperations, DROP_OPERATION } from \"./utils\";\n\n// Global state for tracking the drop collection\nlet globalDropCollectionRef: HTMLElement | null = null;\n\nexport function setGlobalDropCollectionRef(ref: HTMLElement | null): void {\n globalDropCollectionRef = ref;\n}\n\nexport function getGlobalDropCollectionRef(): HTMLElement | null {\n return globalDropCollectionRef;\n}\n\nexport interface DropTargetDelegate {\n /**\n * Returns a drop target from a point within the collection.\n */\n getDropTargetFromPoint(\n x: number,\n y: number,\n isValidDropTarget: (target: DropTarget) => boolean,\n ): DropTarget | null;\n /**\n * Returns the next keyboard-navigable drop target.\n */\n getKeyboardNavigationTarget?(\n target: DropTarget | null,\n direction: \"next\" | \"previous\",\n isValidDropTarget: (target: DropTarget) => boolean,\n ): DropTarget | null;\n /**\n * Returns the next page-navigable drop target.\n */\n getKeyboardPageNavigationTarget?(\n target: DropTarget | null,\n direction: \"next\" | \"previous\",\n isValidDropTarget: (target: DropTarget) => boolean,\n ): DropTarget | null;\n}\n\nexport interface KeyboardDelegateLike {\n getFirstKey?: () => string | number | null;\n getLastKey?: () => string | number | null;\n getKeyBelow?: (key: string | number) => string | number | null;\n getKeyAbove?: (key: string | number) => string | number | null;\n getKeyRightOf?: (key: string | number) => string | number | null;\n getKeyLeftOf?: (key: string | number) => string | number | null;\n getKeyPageBelow?: (key: string | number) => string | number | null;\n getKeyPageAbove?: (key: string | number) => string | number | null;\n}\n\ninterface CollectionNodeLike {\n type?: string;\n key: Key;\n parentKey?: Key | null;\n childNodes?: CollectionNodeLike[];\n isExpanded?: boolean;\n}\n\ninterface CollectionLike {\n getItem(key: Key): CollectionNodeLike | null;\n [Symbol.iterator](): Iterator<CollectionNodeLike>;\n}\n\nexport interface DroppableCollectionOptions {\n /** Reference to the collection element. */\n ref: Accessor<HTMLElement | null>;\n /** A delegate that provides drop targets for pointer coordinates. */\n dropTargetDelegate: DropTargetDelegate;\n /** Handler called when items are dropped to be inserted. */\n onInsert?: (e: { items: DropItem[]; target: DropTarget; dropOperation: DropOperation }) => void;\n /** Handler called when items are dropped on the root. */\n onRootDrop?: (e: { items: DropItem[]; dropOperation: DropOperation }) => void;\n /** Handler called when items are dropped on an item. */\n onItemDrop?: (e: {\n items: DropItem[];\n target: DropTarget;\n dropOperation: DropOperation;\n isInternal: boolean;\n }) => void;\n /** Handler called when items are reordered within the collection. */\n onReorder?: (e: {\n keys: Set<string | number>;\n target: DropTarget;\n dropOperation: DropOperation;\n }) => void;\n /** Handler called when items are moved within/between collections. */\n onMove?: (e: {\n keys: Set<string | number>;\n target: DropTarget;\n dropOperation: DropOperation;\n }) => void;\n /** Handler called when a drop occurs on any collection target. */\n onDrop?: (e: {\n items: DropItem[];\n target: DropTarget;\n dropOperation: DropOperation;\n x: number;\n y: number;\n }) => void;\n /** Handler called when the drop target is activated (held over). */\n onDropActivate?: (e: { target: DropTarget; x: number; y: number }) => void;\n /** Optional keyboard delegate used as fallback when drop-target delegates do not provide keyboard navigation methods. */\n keyboardDelegate?: KeyboardDelegateLike;\n /** Optional keyboard handler composed with internal drop target navigation keys. */\n onKeyDown?: (e: KeyboardEvent) => void;\n /** Collection snapshot used to restore focus and selection after a drop mutates items. */\n collection?: CollectionLike;\n /** Current collection selection used to avoid replacing user-updated selection after a drop. */\n selectedKeys?: \"all\" | Iterable<Key>;\n /** Sets collection selection after a drop when new rows were inserted and selection was unchanged. */\n setSelectedKeys?: (keys: Set<Key>) => void;\n /** Sets collection focus after a drop when new rows were inserted. */\n setFocusedKey?: (key: Key | null) => void;\n /** Whether the collection is disabled for dropping. */\n isDisabled?: boolean;\n /** Accepted drag types. 'all' accepts any type. */\n acceptedDragTypes?: \"all\" | Array<string | symbol>;\n}\n\nexport function getDropItemTypes(item: DropItem): Set<string | symbol> {\n if (item.kind === \"file\") {\n return new Set([item.type]);\n }\n if (item.kind === \"text\") {\n return new Set(item.types);\n }\n return new Set([DIRECTORY_DRAG_TYPE]);\n}\n\nexport interface DroppableCollectionAria {\n /** Props to spread on the collection element. */\n collectionProps: JSX.HTMLAttributes<HTMLElement>;\n}\n\n/**\n * Creates ARIA support for a droppable collection.\n *\n * @param options - Collection options accessor\n * @param state - Droppable collection state\n * @returns Droppable collection ARIA result\n */\nexport function createDroppableCollection(\n options: Accessor<DroppableCollectionOptions>,\n state: DroppableCollectionState,\n): DroppableCollectionAria {\n const getOptions = createMemo(() => options());\n\n // Track the next target during drag operations\n let nextTarget: DropTarget | null = null;\n let currentDropOperation: DropOperation | null = null;\n\n const isInternalDropOperation = (): boolean => {\n const ref = getOptions().ref();\n const draggingRef = getGlobalDraggingCollectionRef();\n return ref !== null && draggingRef === ref;\n };\n\n const getDropOperationForTarget = (\n target: DropTarget,\n types: DragTypes,\n allowedOperations: DropOperation[],\n ): DropOperation => {\n return state.getDropOperation(target, types, allowedOperations);\n };\n\n // Create base drop behavior\n const drop = createDrop(() => ({\n isDisabled: getOptions().isDisabled,\n getDropOperationForPoint: (types, allowedOperations, x, y) => {\n const opts = getOptions();\n const isValidDropTarget = (target: DropTarget) =>\n getDropOperationForTarget(target, types, allowedOperations) !== \"cancel\";\n\n const target = opts.dropTargetDelegate.getDropTargetFromPoint(x, y, isValidDropTarget);\n\n if (!target) {\n currentDropOperation = \"cancel\";\n nextTarget = null;\n return \"cancel\";\n }\n\n currentDropOperation = getDropOperationForTarget(target, types, allowedOperations);\n\n // If target doesn't accept, try root\n if (currentDropOperation === \"cancel\") {\n const rootTarget: DropTarget = { type: \"root\" };\n const rootOp = getDropOperationForTarget(rootTarget, types, allowedOperations);\n if (rootOp !== \"cancel\") {\n nextTarget = rootTarget;\n currentDropOperation = rootOp;\n return currentDropOperation;\n }\n }\n\n // Update drop collection ref\n const ref = opts.ref();\n if (target && currentDropOperation !== \"cancel\" && ref !== globalDropCollectionRef) {\n setGlobalDropCollectionRef(ref);\n }\n\n nextTarget = currentDropOperation === \"cancel\" ? null : target;\n return currentDropOperation;\n },\n onDropEnter: () => {\n if (nextTarget) {\n state.setTarget(nextTarget);\n }\n },\n onDropMove: () => {\n if (nextTarget) {\n state.setTarget(nextTarget);\n }\n },\n onDropExit: () => {\n setGlobalDropCollectionRef(null);\n state.setTarget(null);\n },\n onDropActivate: (e) => {\n const opts = getOptions();\n if (\n state.target?.type === \"item\" &&\n state.target.dropPosition === \"on\" &&\n typeof opts.onDropActivate === \"function\"\n ) {\n opts.onDropActivate({\n target: state.target,\n x: e.x,\n y: e.y,\n });\n }\n },\n onDrop: (e) => {\n const opts = getOptions();\n setGlobalDropCollectionRef(opts.ref());\n\n if (state.target) {\n const target = state.target;\n const previousCollection = opts.collection;\n const previousSelectedKeys = normalizeSelection(opts.selectedKeys);\n opts.onDrop?.({\n items: e.items,\n target,\n dropOperation: e.dropOperation,\n x: e.x,\n y: e.y,\n });\n void Promise.resolve(handleDrop(e.items, target, e.dropOperation)).then(() => {\n queueMicrotask(() => {\n updateFocusAfterDrop(getOptions(), previousCollection, previousSelectedKeys, target);\n });\n });\n }\n },\n }));\n\n const handleDrop = async (\n items: DropItem[],\n target: DropTarget,\n dropOperation: DropOperation,\n ) => {\n const opts = getOptions();\n const isInternal = isInternalDropOperation();\n\n // Filter items by accepted types\n let filteredItems = items;\n const acceptedTypes = opts.acceptedDragTypes;\n if (acceptedTypes && acceptedTypes !== \"all\") {\n filteredItems = items.filter((item) => {\n const itemTypes = getDropItemTypes(item);\n return acceptedTypes.some((type) => itemTypes.has(type));\n });\n }\n\n if (filteredItems.length === 0) return;\n\n // Call appropriate handlers based on target type\n if (target.type === \"root\" && opts.onRootDrop) {\n await opts.onRootDrop({ items: filteredItems, dropOperation });\n }\n\n if (target.type === \"item\") {\n if (target.dropPosition === \"on\" && opts.onItemDrop) {\n await opts.onItemDrop({\n items: filteredItems,\n target,\n dropOperation,\n isInternal,\n });\n }\n\n // Handle move for internal operations\n if (opts.onMove && isInternal) {\n const draggingKeys = getGlobalDraggingKeys();\n await opts.onMove({\n keys: draggingKeys,\n target,\n dropOperation,\n });\n }\n\n if (target.dropPosition !== \"on\") {\n if (!isInternal && opts.onInsert) {\n await opts.onInsert({\n items: filteredItems,\n target,\n dropOperation,\n });\n }\n\n if (isInternal && opts.onReorder) {\n const draggingKeys = getGlobalDraggingKeys();\n await opts.onReorder({\n keys: draggingKeys,\n target,\n dropOperation,\n });\n }\n }\n }\n };\n\n // Clean up on unmount\n onCleanup(() => {\n const ref = getOptions().ref();\n if (globalDropCollectionRef === ref) {\n setGlobalDropCollectionRef(null);\n }\n });\n\n const collectionProps = createMemo(() => {\n const baseDropProps = drop.dropProps;\n const onKeyDownBase = baseDropProps.onKeyDown as ((e: KeyboardEvent) => void) | undefined;\n const onKeyDown = (e: KeyboardEvent): void => {\n onKeyDownBase?.(e);\n const opts = getOptions();\n if (opts.isDisabled) return;\n const resolveDirection = (): \"ltr\" | \"rtl\" => {\n const refEl = opts.ref();\n if (\n refEl &&\n typeof window !== \"undefined\" &&\n typeof window.getComputedStyle === \"function\"\n ) {\n const computedDir = window.getComputedStyle(refEl).direction;\n if (computedDir === \"rtl\") return \"rtl\";\n }\n return typeof document !== \"undefined\" && document.dir === \"rtl\" ? \"rtl\" : \"ltr\";\n };\n const isRtl = resolveDirection() === \"rtl\";\n const forwardHorizontalKey = isRtl ? \"ArrowLeft\" : \"ArrowRight\";\n const backwardHorizontalKey = isRtl ? \"ArrowRight\" : \"ArrowLeft\";\n const callUserOnKeyDown = () => opts.onKeyDown?.(e);\n const getKeyboardAllowedOperations = (): DropOperation[] => {\n const allowedBits = getGlobalAllowedDropOperations();\n if (!allowedBits) return [\"copy\", \"move\", \"link\"];\n const allowed: DropOperation[] = [];\n if (allowedBits & DROP_OPERATION.copy) allowed.push(\"copy\");\n if (allowedBits & DROP_OPERATION.move) allowed.push(\"move\");\n if (allowedBits & DROP_OPERATION.link) allowed.push(\"link\");\n return allowed.length > 0 ? allowed : [\"copy\", \"move\", \"link\"];\n };\n const getKeyboardDragTypes = (): DragTypes => {\n const draggingTypes = getGlobalDraggingTypes();\n if (draggingTypes.size === 0) {\n return { has: () => true };\n }\n return {\n // Keyboard drag mirrors upstream's raw Set<string> delegate: no\n // wildcard expansion (that lives in the DataTransfer-backed DragTypes).\n has: (type: DragType | DragType[]) => typeof type === \"string\" && draggingTypes.has(type),\n };\n };\n const isValidDropTarget = (target: DropTarget) =>\n state.getDropOperation(target, getKeyboardDragTypes(), getKeyboardAllowedOperations()) !==\n \"cancel\";\n const targetsEqual = (a: DropTarget, b: DropTarget): boolean => {\n if (a.type !== b.type) return false;\n if (a.type === \"root\" && b.type === \"root\") return true;\n if (a.type !== \"item\" || b.type !== \"item\") return false;\n return a.key === b.key && a.dropPosition === b.dropPosition;\n };\n const findNextValidTarget = (\n start: DropTarget | null,\n getNext: (target: DropTarget | null) => DropTarget | null,\n ): DropTarget | null => {\n let current = start;\n let seenRoot = 0;\n let safety = 0;\n while (safety < 256) {\n safety += 1;\n const next = getNext(current);\n if (!next) return null;\n if (current && targetsEqual(current, next)) {\n return isValidDropTarget(next) ? next : null;\n }\n current = next;\n if (next.type === \"root\") {\n seenRoot += 1;\n if (seenRoot >= 2) {\n return isValidDropTarget(next) ? next : null;\n }\n }\n if (isValidDropTarget(next)) return next;\n }\n return null;\n };\n const resolveTargetForKey = (\n key: string | number | null,\n direction: \"next\" | \"previous\",\n ): DropTarget | null => {\n if (key == null) return null;\n const onTarget: DropTarget = { type: \"item\", key, dropPosition: \"on\" };\n if (isValidDropTarget(onTarget)) return onTarget;\n const insertionOrder: Array<\"before\" | \"after\"> =\n direction === \"next\" ? [\"before\", \"after\"] : [\"after\", \"before\"];\n for (const position of insertionOrder) {\n const insertionTarget: DropTarget = { type: \"item\", key, dropPosition: position };\n if (isValidDropTarget(insertionTarget)) return insertionTarget;\n }\n return null;\n };\n const resolveBoundaryTargetForDirection = (\n key: string | number | null,\n direction: \"next\" | \"previous\",\n ): DropTarget | null => {\n if (key == null) return null;\n const boundaryOrder: Array<\"before\" | \"on\" | \"after\"> =\n direction === \"next\" ? [\"before\", \"on\", \"after\"] : [\"after\", \"on\", \"before\"];\n for (const position of boundaryOrder) {\n const candidate: DropTarget = { type: \"item\", key, dropPosition: position };\n if (isValidDropTarget(candidate)) return candidate;\n }\n return null;\n };\n const resolveFallbackKeyboardTarget = (\n keyName: string,\n currentTarget: DropTarget | null = state.target,\n ): DropTarget | null => {\n const keyboardDelegate = opts.keyboardDelegate;\n if (!keyboardDelegate) return null;\n const currentKey = currentTarget?.type === \"item\" ? currentTarget.key : null;\n const keyForDirection = (\n direction: \"next\" | \"previous\",\n getter: ((key: string | number) => string | number | null) | undefined,\n ): DropTarget | null => {\n if (currentKey == null) {\n const boundaryKey =\n direction === \"next\"\n ? keyboardDelegate.getFirstKey?.()\n : keyboardDelegate.getLastKey?.();\n return resolveBoundaryTargetForDirection(boundaryKey ?? null, direction);\n }\n if (!getter) return null;\n let nextKey = getter(currentKey);\n let safety = 0;\n while (nextKey != null && safety < 256) {\n const resolvedTarget = resolveTargetForKey(nextKey, direction);\n if (resolvedTarget) return resolvedTarget;\n const candidate = getter(nextKey);\n if (candidate === nextKey) break;\n nextKey = candidate;\n safety += 1;\n }\n return null;\n };\n\n if (keyName === \"ArrowDown\") return keyForDirection(\"next\", keyboardDelegate.getKeyBelow);\n if (keyName === \"ArrowUp\") return keyForDirection(\"previous\", keyboardDelegate.getKeyAbove);\n if (keyName === forwardHorizontalKey) {\n return keyForDirection(\n \"next\",\n isRtl ? keyboardDelegate.getKeyLeftOf : keyboardDelegate.getKeyRightOf,\n );\n }\n if (keyName === backwardHorizontalKey) {\n return keyForDirection(\n \"previous\",\n isRtl ? keyboardDelegate.getKeyRightOf : keyboardDelegate.getKeyLeftOf,\n );\n }\n if (keyName === \"Home\")\n return resolveBoundaryTargetForDirection(\n keyboardDelegate.getFirstKey?.() ?? null,\n \"next\",\n );\n if (keyName === \"End\")\n return resolveBoundaryTargetForDirection(\n keyboardDelegate.getLastKey?.() ?? null,\n \"previous\",\n );\n if (keyName === \"PageDown\") {\n if (currentKey != null && keyboardDelegate.getKeyPageBelow) {\n return resolveTargetForKey(keyboardDelegate.getKeyPageBelow(currentKey), \"next\");\n }\n return keyForDirection(\"next\", keyboardDelegate.getKeyBelow);\n }\n if (keyName === \"PageUp\") {\n if (currentKey != null && keyboardDelegate.getKeyPageAbove) {\n return resolveTargetForKey(keyboardDelegate.getKeyPageAbove(currentKey), \"previous\");\n }\n return keyForDirection(\"previous\", keyboardDelegate.getKeyAbove);\n }\n return null;\n };\n const resolvePageTargetForState = (\n direction: \"next\" | \"previous\",\n currentTarget: DropTarget,\n ): DropTarget | null => {\n const keyboardDelegate = opts.keyboardDelegate;\n if (!keyboardDelegate) return null;\n if (direction === \"next\") {\n let targetKey = keyboardDelegate.getFirstKey?.() ?? null;\n let dropPosition: \"before\" | \"on\" | \"after\" = \"after\";\n if (currentTarget.type === \"item\") {\n targetKey = currentTarget.key;\n dropPosition = currentTarget.dropPosition;\n }\n let nextKey =\n targetKey != null ? (keyboardDelegate.getKeyPageBelow?.(targetKey) ?? null) : null;\n if (\n nextKey == null ||\n (currentTarget.type === \"item\" && currentTarget.key === keyboardDelegate.getLastKey?.())\n ) {\n nextKey = keyboardDelegate.getLastKey?.() ?? null;\n dropPosition = \"after\";\n }\n if (nextKey == null) return null;\n return {\n type: \"item\",\n key: nextKey,\n dropPosition,\n };\n }\n\n if (currentTarget.type === \"item\") {\n if (currentTarget.key === keyboardDelegate.getFirstKey?.()) {\n return { type: \"root\" };\n }\n let nextKey = keyboardDelegate.getKeyPageAbove?.(currentTarget.key) ?? null;\n let dropPosition: \"before\" | \"on\" | \"after\" = currentTarget.dropPosition;\n if (nextKey == null) {\n nextKey = keyboardDelegate.getFirstKey?.() ?? null;\n dropPosition = \"before\";\n }\n if (nextKey == null) return null;\n return {\n type: \"item\",\n key: nextKey,\n dropPosition,\n };\n }\n\n return currentTarget.type === \"root\" ? currentTarget : null;\n };\n if (e.key === \"PageDown\" || e.key === \"PageUp\") {\n if (\n (e.key === \"PageDown\" && !opts.keyboardDelegate?.getKeyPageBelow) ||\n (e.key === \"PageUp\" && !opts.keyboardDelegate?.getKeyPageAbove)\n ) {\n callUserOnKeyDown();\n return;\n }\n const direction = e.key === \"PageDown\" ? \"next\" : \"previous\";\n const pageNavigation = opts.dropTargetDelegate.getKeyboardPageNavigationTarget;\n const stepNavigation = opts.dropTargetDelegate.getKeyboardNavigationTarget;\n const resolveStepTarget = (\n target: DropTarget | null,\n navDirection: \"next\" | \"previous\",\n ): DropTarget | null =>\n stepNavigation?.(target, navDirection, isValidDropTarget) ??\n resolveFallbackKeyboardTarget(\n navDirection === \"next\" ? \"ArrowDown\" : \"ArrowUp\",\n target,\n ) ??\n resolveFallbackKeyboardTarget(navDirection === \"next\" ? \"Home\" : \"End\", target) ??\n null;\n let nextTarget: DropTarget | null = null;\n if (!state.target) {\n nextTarget = findNextValidTarget(null, (target) => resolveStepTarget(target, direction));\n } else {\n const pageTarget =\n pageNavigation?.(state.target, direction, isValidDropTarget) ??\n resolvePageTargetForState(direction, state.target) ??\n null;\n if (pageTarget && isValidDropTarget(pageTarget)) {\n nextTarget = pageTarget;\n } else {\n const startTarget = pageTarget ?? state.target;\n nextTarget =\n findNextValidTarget(startTarget, (target) => resolveStepTarget(target, direction)) ??\n findNextValidTarget(startTarget, (target) =>\n resolveStepTarget(target, direction === \"next\" ? \"previous\" : \"next\"),\n );\n }\n }\n if (nextTarget) {\n e.preventDefault();\n state.setTarget(nextTarget);\n }\n callUserOnKeyDown();\n return;\n }\n if (\n (e.key === \"ArrowDown\" ||\n e.key === \"ArrowUp\" ||\n e.key === \"ArrowRight\" ||\n e.key === \"ArrowLeft\" ||\n e.key === \"Home\" ||\n e.key === \"End\") &&\n opts.dropTargetDelegate.getKeyboardNavigationTarget\n ) {\n if (\n (e.key === \"ArrowDown\" && !opts.keyboardDelegate?.getKeyBelow) ||\n (e.key === \"ArrowUp\" && !opts.keyboardDelegate?.getKeyAbove) ||\n (e.key === \"ArrowLeft\" && !opts.keyboardDelegate?.getKeyLeftOf) ||\n (e.key === \"ArrowRight\" && !opts.keyboardDelegate?.getKeyRightOf) ||\n (e.key === \"Home\" && !opts.keyboardDelegate?.getFirstKey) ||\n (e.key === \"End\" && !opts.keyboardDelegate?.getLastKey)\n ) {\n callUserOnKeyDown();\n return;\n }\n const isForwardKey =\n e.key === \"ArrowDown\" || e.key === forwardHorizontalKey || e.key === \"Home\";\n const direction = isForwardKey ? \"next\" : \"previous\";\n const navigationStart = e.key === \"Home\" || e.key === \"End\" ? null : state.target;\n const nextTarget = findNextValidTarget(\n navigationStart,\n (target) =>\n opts.dropTargetDelegate.getKeyboardNavigationTarget?.(\n target,\n direction,\n isValidDropTarget,\n ) ?? resolveFallbackKeyboardTarget(e.key, target),\n );\n if (nextTarget) {\n e.preventDefault();\n state.setTarget(nextTarget);\n }\n callUserOnKeyDown();\n return;\n }\n if (\n e.key === \"ArrowDown\" ||\n e.key === \"ArrowUp\" ||\n e.key === \"ArrowRight\" ||\n e.key === \"ArrowLeft\" ||\n e.key === \"Home\" ||\n e.key === \"End\"\n ) {\n if (\n (e.key === \"ArrowDown\" && !opts.keyboardDelegate?.getKeyBelow) ||\n (e.key === \"ArrowUp\" && !opts.keyboardDelegate?.getKeyAbove) ||\n (e.key === \"ArrowLeft\" && !opts.keyboardDelegate?.getKeyLeftOf) ||\n (e.key === \"ArrowRight\" && !opts.keyboardDelegate?.getKeyRightOf) ||\n (e.key === \"Home\" && !opts.keyboardDelegate?.getFirstKey) ||\n (e.key === \"End\" && !opts.keyboardDelegate?.getLastKey)\n ) {\n callUserOnKeyDown();\n return;\n }\n const navigationStart = e.key === \"Home\" || e.key === \"End\" ? null : state.target;\n const nextTarget = findNextValidTarget(navigationStart, (target) =>\n resolveFallbackKeyboardTarget(e.key, target),\n );\n if (nextTarget) {\n e.preventDefault();\n state.setTarget(nextTarget);\n }\n callUserOnKeyDown();\n return;\n }\n if (e.key === \"Enter\" && state.target) {\n e.preventDefault();\n state.activateTarget(0, 0);\n callUserOnKeyDown();\n return;\n }\n if (e.key === \"Escape\" && state.target) {\n e.preventDefault();\n state.exitTarget(0, 0);\n callUserOnKeyDown();\n return;\n }\n callUserOnKeyDown();\n };\n return {\n ...baseDropProps,\n onKeyDown,\n };\n });\n\n return {\n get collectionProps() {\n return collectionProps() as DroppableCollectionAria[\"collectionProps\"];\n },\n };\n}\n\nfunction normalizeSelection(selection: \"all\" | Iterable<Key> | undefined): \"all\" | Set<Key> | null {\n if (selection == null) return null;\n if (selection === \"all\") return \"all\";\n return new Set(selection);\n}\n\nfunction selectionEquals(a: \"all\" | Set<Key> | null, b: \"all\" | Set<Key> | null): boolean {\n if (a === b) return true;\n if (!a || !b || a === \"all\" || b === \"all\") return false;\n if (a.size !== b.size) return false;\n for (const key of a) {\n if (!b.has(key)) return false;\n }\n return true;\n}\n\nfunction getNewItemKeys(collection: CollectionLike, previousCollection: CollectionLike): Set<Key> {\n const keys = new Set<Key>();\n const visit = (node: CollectionNodeLike) => {\n if (node.type === \"item\" && !previousCollection.getItem(node.key)) {\n keys.add(node.key);\n }\n for (const child of node.childNodes ?? []) {\n visit(child);\n }\n };\n\n for (const node of collection) {\n visit(node);\n }\n return keys;\n}\n\nfunction updateFocusAfterDrop(\n opts: DroppableCollectionOptions,\n previousCollection: CollectionLike | undefined,\n previousSelectedKeys: \"all\" | Set<Key> | null,\n target: DropTarget,\n): void {\n const collection = opts.collection;\n if (!collection || !previousCollection) return;\n\n const newKeys = getNewItemKeys(collection, previousCollection);\n if (newKeys.size === 0) return;\n\n const currentSelectedKeys = normalizeSelection(opts.selectedKeys);\n if (\n opts.setSelectedKeys &&\n previousSelectedKeys &&\n selectionEquals(previousSelectedKeys, currentSelectedKeys)\n ) {\n opts.setSelectedKeys(newKeys);\n }\n\n const first = newKeys.values().next().value;\n if (first == null) return;\n\n let focusKey: Key | null = first;\n const item = collection.getItem(first);\n const parent = item?.parentKey != null ? collection.getItem(item.parentKey) : null;\n const isDroppedOnCollapsedParent =\n target.type === \"item\" &&\n target.dropPosition === \"on\" &&\n item?.parentKey != null &&\n parent?.isExpanded !== true;\n\n if (item && (item.type === \"cell\" || item.type === \"rowheader\" || isDroppedOnCollapsedParent)) {\n focusKey = item.parentKey ?? first;\n }\n\n opts.setFocusedKey?.(focusKey);\n\n queueMicrotask(() => {\n const row = opts.ref()?.querySelector<HTMLElement>('[role=\"row\"][tabindex=\"0\"]');\n row?.focus();\n });\n}\n","/**\n * createDraggableItem - ARIA hook for draggable items within a collection.\n *\n * Provides accessibility props for items that can be dragged from a collection.\n */\n\nimport { createMemo, type Accessor } from \"solid-js\";\nimport type { JSX } from \"solid-js\";\nimport type {\n DraggableCollectionState,\n DragPreviewRenderer,\n} from \"@proyecto-viviana/solid-stately\";\nimport {\n getTypes,\n writeToDataTransfer,\n DROP_OPERATION,\n EFFECT_ALLOWED,\n DROP_EFFECT_TO_DROP_OPERATION,\n setGlobalAllowedDropOperations,\n setGlobalDropEffect,\n getGlobalDropEffect,\n} from \"./utils\";\nimport { setGlobalDraggingTypes } from \"./createDraggableCollection\";\n\nexport interface DraggableItemOptions {\n /** The unique key of the item. */\n key: string | number;\n /** Whether the item has a separate drag button affordance. */\n hasDragButton?: boolean;\n /** Whether this item is disabled for dragging. */\n isDisabled?: boolean;\n /** Preview renderer function ref. */\n preview?: { current: DragPreviewRenderer | null };\n}\n\nexport interface DraggableItemAria {\n /** Props for the draggable item element. */\n dragProps: JSX.HTMLAttributes<HTMLElement>;\n /** Props for the explicit drag button affordance, if any. */\n dragButtonProps: JSX.ButtonHTMLAttributes<HTMLButtonElement>;\n /** Whether the item is currently being dragged. */\n isDragging: boolean;\n}\n\n/**\n * Creates ARIA props for a draggable item within a collection.\n *\n * @param options - Accessor returning item options\n * @param state - Draggable collection state\n * @returns Draggable item ARIA props\n */\nexport function createDraggableItem(\n options: Accessor<DraggableItemOptions>,\n state: DraggableCollectionState,\n): DraggableItemAria {\n const getOptions = createMemo(() => options());\n\n // Track position for drag move\n let lastX = 0;\n let lastY = 0;\n\n const isDragging = createMemo(() => {\n const key = getOptions().key;\n return state.draggingKeys.has(key);\n });\n\n const getKeysForDrag = (): Set<string | number> => {\n const { key } = getOptions();\n // If the key is not selected, only drag that item\n // If it is selected, drag all selected items\n // For now, just return the single key\n return new Set([key]);\n };\n\n const onDragStart = (e: DragEvent) => {\n if (e.defaultPrevented) return;\n e.stopPropagation();\n\n const opts = getOptions();\n if (opts.isDisabled || state.isDisabled) return;\n\n const keys = getKeysForDrag();\n\n // Start drag state\n state.startDrag(keys, e.clientX, e.clientY);\n\n // Get items and write to data transfer\n const items = state.getItems(keys);\n setGlobalDraggingTypes(getTypes(items));\n e.dataTransfer?.clearData?.();\n if (e.dataTransfer) {\n writeToDataTransfer(e.dataTransfer, items);\n }\n\n // Set allowed drop operations\n let allowed = DROP_OPERATION.all;\n const allowedOps = state.getAllowedDropOperations();\n if (allowedOps.length > 0) {\n allowed = DROP_OPERATION.none;\n for (const op of allowedOps) {\n allowed |= DROP_OPERATION[op] || DROP_OPERATION.none;\n }\n }\n\n setGlobalAllowedDropOperations(allowed);\n const effectAllowed = EFFECT_ALLOWED[allowed] || \"none\";\n if (e.dataTransfer) {\n e.dataTransfer.effectAllowed = (\n effectAllowed === \"cancel\" ? \"none\" : effectAllowed\n ) as DataTransfer[\"effectAllowed\"];\n }\n\n // Handle custom preview from item options or collection state.\n const preview = opts.preview ?? state.preview;\n if (typeof preview?.current === \"function\" && e.dataTransfer) {\n preview.current(items, (node, userX, userY) => {\n if (!node || !e.dataTransfer) return;\n\n const size = node.getBoundingClientRect();\n const rect = (e.currentTarget as HTMLElement).getBoundingClientRect();\n let defaultX = e.clientX - rect.x;\n let defaultY = e.clientY - rect.y;\n\n if (defaultX > size.width || defaultY > size.height) {\n defaultX = size.width / 2;\n defaultY = size.height / 2;\n }\n\n let offsetX = typeof userX === \"number\" ? userX : defaultX;\n let offsetY = typeof userY === \"number\" ? userY : defaultY;\n\n offsetX = Math.max(0, Math.min(offsetX, size.width));\n offsetY = Math.max(0, Math.min(offsetY, size.height));\n\n e.dataTransfer.setDragImage(node, offsetX, offsetY);\n });\n }\n\n lastX = e.clientX;\n lastY = e.clientY;\n };\n\n const onDrag = (e: DragEvent) => {\n e.stopPropagation();\n\n if (e.clientX === lastX && e.clientY === lastY) {\n return;\n }\n\n state.moveDrag(e.clientX, e.clientY);\n\n lastX = e.clientX;\n lastY = e.clientY;\n };\n\n const onDragEnd = (e: DragEvent) => {\n e.stopPropagation();\n\n let dropEffect: string = e.dataTransfer?.dropEffect ?? \"none\";\n // Chrome Android fix - use global drop effect\n if (getGlobalDropEffect()) {\n dropEffect = getGlobalDropEffect()!;\n }\n\n const dropOperation = DROP_EFFECT_TO_DROP_OPERATION[dropEffect];\n const isInternal = false; // Would check global state\n state.endDrag(e.clientX, e.clientY, dropOperation, isInternal);\n\n setGlobalAllowedDropOperations(DROP_OPERATION.none);\n setGlobalDraggingTypes(new Set());\n setGlobalDropEffect(undefined);\n };\n\n // Keyboard/screen reader drag initiation\n const onKeyDown = (e: KeyboardEvent) => {\n if (e.key === \"Enter\" && e.target === e.currentTarget) {\n e.preventDefault();\n e.stopPropagation();\n }\n };\n\n const onKeyUp = (e: KeyboardEvent) => {\n if (e.key === \"Enter\" && e.target === e.currentTarget) {\n e.preventDefault();\n e.stopPropagation();\n\n const opts = getOptions();\n if (opts.isDisabled || state.isDisabled) return;\n\n const keys = getKeysForDrag();\n const rect = (e.target as HTMLElement).getBoundingClientRect();\n state.startDrag(keys, rect.x + rect.width / 2, rect.y + rect.height / 2);\n const items = state.getItems(keys);\n setGlobalDraggingTypes(getTypes(items));\n let allowed = DROP_OPERATION.all;\n const allowedOps = state.getAllowedDropOperations();\n if (allowedOps.length > 0) {\n allowed = DROP_OPERATION.none;\n for (const op of allowedOps) {\n allowed |= DROP_OPERATION[op] || DROP_OPERATION.none;\n }\n }\n setGlobalAllowedDropOperations(allowed);\n }\n };\n\n const dragProps = createMemo(() => {\n const opts = getOptions();\n\n if (opts.isDisabled || state.isDisabled) {\n return {\n draggable: false as const,\n };\n }\n\n const baseProps: Record<string, unknown> = {\n draggable: true as const,\n onDragStart,\n onDrag,\n onDragEnd,\n };\n\n // Add keyboard handlers if no separate drag button\n if (!opts.hasDragButton) {\n baseProps.onKeyDown = onKeyDown;\n baseProps.onKeyUp = onKeyUp;\n }\n\n return baseProps;\n });\n\n const dragButtonProps = createMemo(() => {\n const opts = getOptions();\n\n if (opts.isDisabled || state.isDisabled) {\n return {\n disabled: true,\n };\n }\n\n return {\n type: \"button\" as const,\n \"aria-label\": \"Drag\",\n onKeyDown,\n onKeyUp,\n };\n });\n\n return {\n get dragProps() {\n return dragProps() as DraggableItemAria[\"dragProps\"];\n },\n get dragButtonProps() {\n return dragButtonProps() as DraggableItemAria[\"dragButtonProps\"];\n },\n get isDragging() {\n return isDragging();\n },\n };\n}\n","/**\n * createDroppableItem - ARIA hook for droppable items within a collection.\n *\n * Provides accessibility props for items that can receive drops.\n */\n\nimport { createMemo, type Accessor } from \"solid-js\";\nimport type { JSX } from \"solid-js\";\nimport type {\n DroppableCollectionState,\n DropTarget,\n DropOperation,\n} from \"@proyecto-viviana/solid-stately\";\nimport {\n DragTypesImpl,\n DROP_OPERATION,\n DROP_OPERATION_ALLOWED,\n DROP_OPERATION_TO_DROP_EFFECT,\n getGlobalAllowedDropOperations,\n} from \"./utils\";\n\nexport interface DroppableItemOptions {\n /** The unique key of the item. */\n key: string | number;\n /** Reference to the item element. */\n ref: Accessor<HTMLElement | null>;\n /** Whether this item is disabled for dropping. */\n isDisabled?: boolean;\n}\n\nexport interface DroppableItemAria {\n /** Props for the droppable item element. */\n dropProps: JSX.HTMLAttributes<HTMLElement>;\n /** Whether the item is currently a drop target. */\n isDropTarget: boolean;\n}\n\n/**\n * Creates ARIA props for a droppable item within a collection.\n *\n * @param options - Accessor returning item options\n * @param state - Droppable collection state\n * @returns Droppable item ARIA props\n */\nexport function createDroppableItem(\n options: Accessor<DroppableItemOptions>,\n state: DroppableCollectionState,\n): DroppableItemAria {\n const getOptions = createMemo(() => options());\n\n const isDropTarget = createMemo(() => {\n const { key } = getOptions();\n const target = state.target;\n return target?.type === \"item\" && target.key === key;\n });\n\n const getTarget = (dropPosition: \"before\" | \"on\" | \"after\"): DropTarget => {\n const { key } = getOptions();\n return {\n type: \"item\",\n key,\n dropPosition,\n };\n };\n\n const getDropOperation = (e: DragEvent, target: DropTarget): DropOperation => {\n if (!e.dataTransfer) return \"cancel\";\n\n const types = new DragTypesImpl(e.dataTransfer);\n let allowedBits = DROP_OPERATION_ALLOWED[e.dataTransfer.effectAllowed] || DROP_OPERATION.all;\n\n // Use global allowed operations for internal drags\n const globalAllowed = getGlobalAllowedDropOperations();\n if (globalAllowed) {\n allowedBits &= globalAllowed;\n }\n\n const allowedOperations: DropOperation[] = [];\n if (allowedBits & DROP_OPERATION.move) allowedOperations.push(\"move\");\n if (allowedBits & DROP_OPERATION.copy) allowedOperations.push(\"copy\");\n if (allowedBits & DROP_OPERATION.link) allowedOperations.push(\"link\");\n\n return state.getDropOperation(target, types, allowedOperations);\n };\n\n let dropActivateTimer: ReturnType<typeof setTimeout> | undefined;\n const DROP_ACTIVATE_TIMEOUT = 800;\n\n const onDragEnter = (e: DragEvent) => {\n e.preventDefault();\n e.stopPropagation();\n\n const opts = getOptions();\n if (opts.isDisabled) return;\n\n // Determine drop position based on cursor position\n const rect = (e.currentTarget as HTMLElement).getBoundingClientRect();\n const x = e.clientX - rect.x;\n const y = e.clientY - rect.y;\n const height = rect.height;\n\n let dropPosition: \"before\" | \"on\" | \"after\";\n if (y < height * 0.25) {\n dropPosition = \"before\";\n } else if (y > height * 0.75) {\n dropPosition = \"after\";\n } else {\n dropPosition = \"on\";\n }\n\n const target = getTarget(dropPosition);\n const operation = getDropOperation(e, target);\n\n if (operation !== \"cancel\") {\n state.setTarget(target);\n e.dataTransfer!.dropEffect = DROP_OPERATION_TO_DROP_EFFECT[\n operation\n ] as DataTransfer[\"dropEffect\"];\n }\n };\n\n const onDragOver = (e: DragEvent) => {\n e.preventDefault();\n e.stopPropagation();\n\n const opts = getOptions();\n if (opts.isDisabled) return;\n\n // Update drop position based on cursor\n const rect = (e.currentTarget as HTMLElement).getBoundingClientRect();\n const x = e.clientX - rect.x;\n const y = e.clientY - rect.y;\n const height = rect.height;\n\n let dropPosition: \"before\" | \"on\" | \"after\";\n if (y < height * 0.25) {\n dropPosition = \"before\";\n } else if (y > height * 0.75) {\n dropPosition = \"after\";\n } else {\n dropPosition = \"on\";\n }\n\n const target = getTarget(dropPosition);\n const operation = getDropOperation(e, target);\n\n if (operation !== \"cancel\") {\n state.setTarget(target);\n e.dataTransfer!.dropEffect = DROP_OPERATION_TO_DROP_EFFECT[\n operation\n ] as DataTransfer[\"dropEffect\"];\n\n // Handle drop activate for 'on' position\n clearTimeout(dropActivateTimer);\n if (dropPosition === \"on\") {\n dropActivateTimer = setTimeout(() => {\n state.activateTarget(x, y);\n }, DROP_ACTIVATE_TIMEOUT);\n }\n } else {\n e.dataTransfer!.dropEffect = \"none\";\n }\n };\n\n const onDragLeave = (e: DragEvent) => {\n e.preventDefault();\n e.stopPropagation();\n\n clearTimeout(dropActivateTimer);\n\n // Only clear target if leaving this item\n const relatedTarget = e.relatedTarget as HTMLElement | null;\n const currentTarget = e.currentTarget as HTMLElement;\n if (!relatedTarget || !currentTarget.contains(relatedTarget)) {\n // Clear if no longer over this item\n const { key } = getOptions();\n if (state.target?.type === \"item\" && state.target.key === key) {\n // State clearing handled by parent collection\n }\n }\n };\n\n const onDrop = (e: DragEvent) => {\n e.preventDefault();\n e.stopPropagation();\n\n clearTimeout(dropActivateTimer);\n\n // Drop handling is done by the parent collection\n };\n\n const dropProps = createMemo(() => {\n const opts = getOptions();\n\n if (opts.isDisabled) {\n return {};\n }\n\n return {\n onDragEnter,\n onDragOver,\n onDragLeave,\n onDrop,\n };\n });\n\n return {\n get dropProps() {\n return dropProps() as DroppableItemAria[\"dropProps\"];\n },\n get isDropTarget() {\n return isDropTarget();\n },\n };\n}\n"],"mappings":"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"}
@@ -0,0 +1,105 @@
1
+ //#region src/utils/mergeProps.ts
2
+ /**
3
+ * Merges multiple props objects together, handling event handlers specially
4
+ * by chaining them rather than replacing.
5
+ *
6
+ * Based on react-aria's mergeProps but adapted for SolidJS.
7
+ *
8
+ * @param args - Props objects to merge
9
+ * @returns Merged props object. Use type parameter R to specify the result type.
10
+ */
11
+ function mergeProps(...args) {
12
+ const result = {};
13
+ const setResultValue = (key, value) => {
14
+ const resultDescriptor = Object.getOwnPropertyDescriptor(result, key);
15
+ if (resultDescriptor?.get || resultDescriptor?.set) {
16
+ Object.defineProperty(result, key, {
17
+ enumerable: true,
18
+ configurable: true,
19
+ writable: true,
20
+ value
21
+ });
22
+ return;
23
+ }
24
+ result[key] = value;
25
+ };
26
+ for (const props of args) for (const key in props) {
27
+ const descriptor = Object.getOwnPropertyDescriptor(props, key);
28
+ const hasGetter = typeof descriptor?.get === "function";
29
+ const getValue = () => hasGetter ? descriptor.get.call(props) : props[key];
30
+ const value = getValue();
31
+ const existingValue = result[key];
32
+ if (typeof existingValue === "function" && typeof value === "function" && key.startsWith("on") && key[2] === key[2]?.toUpperCase()) setResultValue(key, chainHandlers(existingValue, value));
33
+ else if ((key === "class" || key === "className" || key === "UNSAFE_className") && typeof existingValue === "string" && typeof value === "string") setResultValue(key, mergeClassNames(existingValue, value));
34
+ else if (key === "style" && typeof existingValue === "object" && typeof value === "object") setResultValue(key, {
35
+ ...existingValue,
36
+ ...value
37
+ });
38
+ else if (hasGetter && (value !== void 0 || !(key in result))) Object.defineProperty(result, key, {
39
+ enumerable: true,
40
+ configurable: true,
41
+ get: getValue
42
+ });
43
+ else if (value !== void 0) setResultValue(key, value);
44
+ }
45
+ return result;
46
+ }
47
+ function chainHandlers(existingHandler, newHandler) {
48
+ return (...args) => {
49
+ existingHandler(...args);
50
+ newHandler(...args);
51
+ };
52
+ }
53
+ function mergeClassNames(...classes) {
54
+ return classes.filter(Boolean).join(" ");
55
+ }
56
+ //#endregion
57
+ //#region src/utils/reactivity.ts
58
+ /**
59
+ * Unwraps a MaybeAccessor to get the underlying value.
60
+ * If the input is a function, it calls it to get the value.
61
+ * Otherwise, it returns the value directly.
62
+ *
63
+ * @param value - The value or accessor to unwrap.
64
+ */
65
+ function access(value) {
66
+ return typeof value === "function" ? value() : value;
67
+ }
68
+ /**
69
+ * Checks if a value is an accessor function.
70
+ */
71
+ function isAccessor(value) {
72
+ return typeof value === "function";
73
+ }
74
+ //#endregion
75
+ //#region src/utils/env.ts
76
+ function getEnvVar(key) {
77
+ const importMetaEnv = import.meta.env;
78
+ if (importMetaEnv && typeof importMetaEnv[key] === "string") return importMetaEnv[key];
79
+ const processEnv = globalThis.process?.env;
80
+ if (processEnv) return processEnv[key];
81
+ }
82
+ /**
83
+ * Check if we're running in a test environment.
84
+ */
85
+ function isTestEnv() {
86
+ return getEnvVar("NODE_ENV") === "test";
87
+ }
88
+ /**
89
+ * Check if we're running in a development environment (not production).
90
+ */
91
+ function isDevEnv() {
92
+ if (import.meta.env?.DEV === true) return true;
93
+ return getEnvVar("NODE_ENV") !== "production";
94
+ }
95
+ /**
96
+ * Check if we're running in production.
97
+ */
98
+ function isProdEnv() {
99
+ if (import.meta.env?.PROD === true) return true;
100
+ return getEnvVar("NODE_ENV") === "production";
101
+ }
102
+ //#endregion
103
+ export { isAccessor as a, access as i, isProdEnv as n, mergeProps as o, isTestEnv as r, isDevEnv as t };
104
+
105
+ //# sourceMappingURL=env.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"env.js","names":[],"sources":["../../src/utils/mergeProps.ts","../../src/utils/reactivity.ts","../../src/utils/env.ts"],"sourcesContent":["type Props = { [key: string]: unknown };\n\n/**\n * Merges multiple props objects together, handling event handlers specially\n * by chaining them rather than replacing.\n *\n * Based on react-aria's mergeProps but adapted for SolidJS.\n *\n * @param args - Props objects to merge\n * @returns Merged props object. Use type parameter R to specify the result type.\n */\nexport function mergeProps<R extends object = Record<string, unknown>, T extends object = object>(\n ...args: T[]\n): R {\n const result: Props = {};\n const setResultValue = (key: string, value: unknown) => {\n const resultDescriptor = Object.getOwnPropertyDescriptor(result, key);\n\n if (resultDescriptor?.get || resultDescriptor?.set) {\n Object.defineProperty(result, key, {\n enumerable: true,\n configurable: true,\n writable: true,\n value,\n });\n return;\n }\n\n result[key] = value;\n };\n\n for (const props of args) {\n for (const key in props) {\n const descriptor = Object.getOwnPropertyDescriptor(props, key);\n const hasGetter = typeof descriptor?.get === \"function\";\n const getValue = () => (hasGetter ? descriptor.get!.call(props) : props[key]);\n const value = getValue();\n const existingValue = result[key];\n\n if (\n typeof existingValue === \"function\" &&\n typeof value === \"function\" &&\n key.startsWith(\"on\") &&\n key[2] === key[2]?.toUpperCase()\n ) {\n setResultValue(key, chainHandlers(existingValue as Function, value as Function));\n } else if (\n (key === \"class\" || key === \"className\" || key === \"UNSAFE_className\") &&\n typeof existingValue === \"string\" &&\n typeof value === \"string\"\n ) {\n // Join only when both sides are plain strings (react-aria mergeProps\n // semantics); a render-prop class function must pass through intact,\n // not be coerced to its source text.\n setResultValue(key, mergeClassNames(existingValue, value));\n } else if (\n key === \"style\" &&\n typeof existingValue === \"object\" &&\n typeof value === \"object\"\n ) {\n setResultValue(key, { ...(existingValue as object), ...(value as object) });\n } else if (hasGetter && (value !== undefined || !(key in result))) {\n Object.defineProperty(result, key, {\n enumerable: true,\n configurable: true,\n get: getValue,\n });\n } else if (value !== undefined) {\n setResultValue(key, value);\n }\n }\n }\n\n return result as R;\n}\n\nfunction chainHandlers(existingHandler: Function, newHandler: Function) {\n return (...args: unknown[]) => {\n existingHandler(...args);\n newHandler(...args);\n };\n}\n\nfunction mergeClassNames(...classes: unknown[]): string {\n return classes.filter(Boolean).join(\" \");\n}\n","/**\n * Reactivity utilities for Solidaria\n *\n * Provides type-safe utilities for working with SolidJS reactivity patterns.\n */\n\nimport { Accessor } from \"solid-js\";\n\n/**\n * A value that may be either a raw value or an accessor function.\n * This is a common pattern in SolidJS for props that may be reactive.\n */\nexport type MaybeAccessor<T> = T | Accessor<T>;\n\n/**\n * Unwraps a MaybeAccessor to get the underlying value.\n * If the input is a function, it calls it to get the value.\n * Otherwise, it returns the value directly.\n *\n * @param value - The value or accessor to unwrap.\n */\nexport function access<T>(value: MaybeAccessor<T>): T {\n return typeof value === \"function\" ? (value as Accessor<T>)() : value;\n}\n\n/**\n * A value that may be undefined or an accessor that returns the value or undefined.\n */\nexport type MaybeAccessorValue<T> = T | undefined | Accessor<T | undefined>;\n\n/**\n * Checks if a value is an accessor function.\n */\nexport function isAccessor<T>(value: MaybeAccessor<T>): value is Accessor<T> {\n return typeof value === \"function\";\n}\n","/**\n * Environment detection utilities.\n * These avoid direct references to process.env which can cause TypeScript issues in browser environments.\n * Compatible with Node.js and Vite environments.\n */\n\ntype ImportMetaWithEnv = ImportMeta & {\n env?: Record<string, unknown> & { DEV?: boolean; PROD?: boolean };\n};\ntype ProcessLike = { env?: Record<string, string | undefined> };\n\nfunction getEnvVar(key: string): string | undefined {\n const importMetaEnv = (import.meta as ImportMetaWithEnv).env;\n if (importMetaEnv && typeof importMetaEnv[key] === \"string\") {\n return importMetaEnv[key] as string;\n }\n\n const processEnv = (globalThis as typeof globalThis & { process?: ProcessLike }).process?.env;\n if (processEnv) {\n return processEnv[key];\n }\n return undefined;\n}\n\n/**\n * Check if we're running in a test environment.\n */\nexport function isTestEnv(): boolean {\n return getEnvVar(\"NODE_ENV\") === \"test\";\n}\n\n/**\n * Check if we're running in a development environment (not production).\n */\nexport function isDevEnv(): boolean {\n const importMetaEnv = (import.meta as ImportMetaWithEnv).env;\n if (importMetaEnv?.DEV === true) {\n return true;\n }\n const nodeEnv = getEnvVar(\"NODE_ENV\");\n return nodeEnv !== \"production\";\n}\n\n/**\n * Check if we're running in production.\n */\nexport function isProdEnv(): boolean {\n const importMetaEnv = (import.meta as ImportMetaWithEnv).env;\n if (importMetaEnv?.PROD === true) {\n return true;\n }\n return getEnvVar(\"NODE_ENV\") === \"production\";\n}\n"],"mappings":";;;;;;;;;;AAWA,SAAgB,WACd,GAAG,MACA;CACH,MAAM,SAAgB,CAAC;CACvB,MAAM,kBAAkB,KAAa,UAAmB;EACtD,MAAM,mBAAmB,OAAO,yBAAyB,QAAQ,GAAG;EAEpE,IAAI,kBAAkB,OAAO,kBAAkB,KAAK;GAClD,OAAO,eAAe,QAAQ,KAAK;IACjC,YAAY;IACZ,cAAc;IACd,UAAU;IACV;GACF,CAAC;GACD;EACF;EAEA,OAAO,OAAO;CAChB;CAEA,KAAK,MAAM,SAAS,MAClB,KAAK,MAAM,OAAO,OAAO;EACvB,MAAM,aAAa,OAAO,yBAAyB,OAAO,GAAG;EAC7D,MAAM,YAAY,OAAO,YAAY,QAAQ;EAC7C,MAAM,iBAAkB,YAAY,WAAW,IAAK,KAAK,KAAK,IAAI,MAAM;EACxE,MAAM,QAAQ,SAAS;EACvB,MAAM,gBAAgB,OAAO;EAE7B,IACE,OAAO,kBAAkB,cACzB,OAAO,UAAU,cACjB,IAAI,WAAW,IAAI,KACnB,IAAI,OAAO,IAAI,EAAE,EAAE,YAAY,GAE/B,eAAe,KAAK,cAAc,eAA2B,KAAiB,CAAC;OAC1E,KACJ,QAAQ,WAAW,QAAQ,eAAe,QAAQ,uBACnD,OAAO,kBAAkB,YACzB,OAAO,UAAU,UAKjB,eAAe,KAAK,gBAAgB,eAAe,KAAK,CAAC;OACpD,IACL,QAAQ,WACR,OAAO,kBAAkB,YACzB,OAAO,UAAU,UAEjB,eAAe,KAAK;GAAE,GAAI;GAA0B,GAAI;EAAiB,CAAC;OACrE,IAAI,cAAc,UAAU,KAAA,KAAa,EAAE,OAAO,UACvD,OAAO,eAAe,QAAQ,KAAK;GACjC,YAAY;GACZ,cAAc;GACd,KAAK;EACP,CAAC;OACI,IAAI,UAAU,KAAA,GACnB,eAAe,KAAK,KAAK;CAE7B;CAGF,OAAO;AACT;AAEA,SAAS,cAAc,iBAA2B,YAAsB;CACtE,QAAQ,GAAG,SAAoB;EAC7B,gBAAgB,GAAG,IAAI;EACvB,WAAW,GAAG,IAAI;CACpB;AACF;AAEA,SAAS,gBAAgB,GAAG,SAA4B;CACtD,OAAO,QAAQ,OAAO,OAAO,CAAC,CAAC,KAAK,GAAG;AACzC;;;;;;;;;;AChEA,SAAgB,OAAU,OAA4B;CACpD,OAAO,OAAO,UAAU,aAAc,MAAsB,IAAI;AAClE;;;;AAUA,SAAgB,WAAc,OAA+C;CAC3E,OAAO,OAAO,UAAU;AAC1B;;;ACxBA,SAAS,UAAU,KAAiC;CAClD,MAAM,gBAAiB,OAAO,KAA2B;CACzD,IAAI,iBAAiB,OAAO,cAAc,SAAS,UACjD,OAAO,cAAc;CAGvB,MAAM,aAAc,WAA6D,SAAS;CAC1F,IAAI,YACF,OAAO,WAAW;AAGtB;;;;AAKA,SAAgB,YAAqB;CACnC,OAAO,UAAU,UAAU,MAAM;AACnC;;;;AAKA,SAAgB,WAAoB;CAElC,IADuB,OAAO,KAA2B,KACtC,QAAQ,MACzB,OAAO;CAGT,OADgB,UAAU,UACb,MAAM;AACrB;;;;AAKA,SAAgB,YAAqB;CAEnC,IADuB,OAAO,KAA2B,KACtC,SAAS,MAC1B,OAAO;CAET,OAAO,UAAU,UAAU,MAAM;AACnC"}
@@ -0,0 +1,105 @@
1
+ //#region src/utils/mergeProps.ts
2
+ /**
3
+ * Merges multiple props objects together, handling event handlers specially
4
+ * by chaining them rather than replacing.
5
+ *
6
+ * Based on react-aria's mergeProps but adapted for SolidJS.
7
+ *
8
+ * @param args - Props objects to merge
9
+ * @returns Merged props object. Use type parameter R to specify the result type.
10
+ */
11
+ function mergeProps(...args) {
12
+ const result = {};
13
+ const setResultValue = (key, value) => {
14
+ const resultDescriptor = Object.getOwnPropertyDescriptor(result, key);
15
+ if (resultDescriptor?.get || resultDescriptor?.set) {
16
+ Object.defineProperty(result, key, {
17
+ enumerable: true,
18
+ configurable: true,
19
+ writable: true,
20
+ value
21
+ });
22
+ return;
23
+ }
24
+ result[key] = value;
25
+ };
26
+ for (const props of args) for (const key in props) {
27
+ const descriptor = Object.getOwnPropertyDescriptor(props, key);
28
+ const hasGetter = typeof descriptor?.get === "function";
29
+ const getValue = () => hasGetter ? descriptor.get.call(props) : props[key];
30
+ const value = getValue();
31
+ const existingValue = result[key];
32
+ if (typeof existingValue === "function" && typeof value === "function" && key.startsWith("on") && key[2] === key[2]?.toUpperCase()) setResultValue(key, chainHandlers(existingValue, value));
33
+ else if ((key === "class" || key === "className" || key === "UNSAFE_className") && typeof existingValue === "string" && typeof value === "string") setResultValue(key, mergeClassNames(existingValue, value));
34
+ else if (key === "style" && typeof existingValue === "object" && typeof value === "object") setResultValue(key, {
35
+ ...existingValue,
36
+ ...value
37
+ });
38
+ else if (hasGetter && (value !== void 0 || !(key in result))) Object.defineProperty(result, key, {
39
+ enumerable: true,
40
+ configurable: true,
41
+ get: getValue
42
+ });
43
+ else if (value !== void 0) setResultValue(key, value);
44
+ }
45
+ return result;
46
+ }
47
+ function chainHandlers(existingHandler, newHandler) {
48
+ return (...args) => {
49
+ existingHandler(...args);
50
+ newHandler(...args);
51
+ };
52
+ }
53
+ function mergeClassNames(...classes) {
54
+ return classes.filter(Boolean).join(" ");
55
+ }
56
+ //#endregion
57
+ //#region src/utils/reactivity.ts
58
+ /**
59
+ * Unwraps a MaybeAccessor to get the underlying value.
60
+ * If the input is a function, it calls it to get the value.
61
+ * Otherwise, it returns the value directly.
62
+ *
63
+ * @param value - The value or accessor to unwrap.
64
+ */
65
+ function access(value) {
66
+ return typeof value === "function" ? value() : value;
67
+ }
68
+ /**
69
+ * Checks if a value is an accessor function.
70
+ */
71
+ function isAccessor(value) {
72
+ return typeof value === "function";
73
+ }
74
+ //#endregion
75
+ //#region src/utils/env.ts
76
+ function getEnvVar(key) {
77
+ const importMetaEnv = import.meta.env;
78
+ if (importMetaEnv && typeof importMetaEnv[key] === "string") return importMetaEnv[key];
79
+ const processEnv = globalThis.process?.env;
80
+ if (processEnv) return processEnv[key];
81
+ }
82
+ /**
83
+ * Check if we're running in a test environment.
84
+ */
85
+ function isTestEnv() {
86
+ return getEnvVar("NODE_ENV") === "test";
87
+ }
88
+ /**
89
+ * Check if we're running in a development environment (not production).
90
+ */
91
+ function isDevEnv() {
92
+ if (import.meta.env?.DEV === true) return true;
93
+ return getEnvVar("NODE_ENV") !== "production";
94
+ }
95
+ /**
96
+ * Check if we're running in production.
97
+ */
98
+ function isProdEnv() {
99
+ if (import.meta.env?.PROD === true) return true;
100
+ return getEnvVar("NODE_ENV") === "production";
101
+ }
102
+ //#endregion
103
+ export { isAccessor as a, access as i, isProdEnv as n, mergeProps as o, isTestEnv as r, isDevEnv as t };
104
+
105
+ //# sourceMappingURL=env.jsx.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"env.jsx","names":[],"sources":["../../src/utils/mergeProps.ts","../../src/utils/reactivity.ts","../../src/utils/env.ts"],"sourcesContent":["type Props = { [key: string]: unknown };\n\n/**\n * Merges multiple props objects together, handling event handlers specially\n * by chaining them rather than replacing.\n *\n * Based on react-aria's mergeProps but adapted for SolidJS.\n *\n * @param args - Props objects to merge\n * @returns Merged props object. Use type parameter R to specify the result type.\n */\nexport function mergeProps<R extends object = Record<string, unknown>, T extends object = object>(\n ...args: T[]\n): R {\n const result: Props = {};\n const setResultValue = (key: string, value: unknown) => {\n const resultDescriptor = Object.getOwnPropertyDescriptor(result, key);\n\n if (resultDescriptor?.get || resultDescriptor?.set) {\n Object.defineProperty(result, key, {\n enumerable: true,\n configurable: true,\n writable: true,\n value,\n });\n return;\n }\n\n result[key] = value;\n };\n\n for (const props of args) {\n for (const key in props) {\n const descriptor = Object.getOwnPropertyDescriptor(props, key);\n const hasGetter = typeof descriptor?.get === \"function\";\n const getValue = () => (hasGetter ? descriptor.get!.call(props) : props[key]);\n const value = getValue();\n const existingValue = result[key];\n\n if (\n typeof existingValue === \"function\" &&\n typeof value === \"function\" &&\n key.startsWith(\"on\") &&\n key[2] === key[2]?.toUpperCase()\n ) {\n setResultValue(key, chainHandlers(existingValue as Function, value as Function));\n } else if (\n (key === \"class\" || key === \"className\" || key === \"UNSAFE_className\") &&\n typeof existingValue === \"string\" &&\n typeof value === \"string\"\n ) {\n // Join only when both sides are plain strings (react-aria mergeProps\n // semantics); a render-prop class function must pass through intact,\n // not be coerced to its source text.\n setResultValue(key, mergeClassNames(existingValue, value));\n } else if (\n key === \"style\" &&\n typeof existingValue === \"object\" &&\n typeof value === \"object\"\n ) {\n setResultValue(key, { ...(existingValue as object), ...(value as object) });\n } else if (hasGetter && (value !== undefined || !(key in result))) {\n Object.defineProperty(result, key, {\n enumerable: true,\n configurable: true,\n get: getValue,\n });\n } else if (value !== undefined) {\n setResultValue(key, value);\n }\n }\n }\n\n return result as R;\n}\n\nfunction chainHandlers(existingHandler: Function, newHandler: Function) {\n return (...args: unknown[]) => {\n existingHandler(...args);\n newHandler(...args);\n };\n}\n\nfunction mergeClassNames(...classes: unknown[]): string {\n return classes.filter(Boolean).join(\" \");\n}\n","/**\n * Reactivity utilities for Solidaria\n *\n * Provides type-safe utilities for working with SolidJS reactivity patterns.\n */\n\nimport { Accessor } from \"solid-js\";\n\n/**\n * A value that may be either a raw value or an accessor function.\n * This is a common pattern in SolidJS for props that may be reactive.\n */\nexport type MaybeAccessor<T> = T | Accessor<T>;\n\n/**\n * Unwraps a MaybeAccessor to get the underlying value.\n * If the input is a function, it calls it to get the value.\n * Otherwise, it returns the value directly.\n *\n * @param value - The value or accessor to unwrap.\n */\nexport function access<T>(value: MaybeAccessor<T>): T {\n return typeof value === \"function\" ? (value as Accessor<T>)() : value;\n}\n\n/**\n * A value that may be undefined or an accessor that returns the value or undefined.\n */\nexport type MaybeAccessorValue<T> = T | undefined | Accessor<T | undefined>;\n\n/**\n * Checks if a value is an accessor function.\n */\nexport function isAccessor<T>(value: MaybeAccessor<T>): value is Accessor<T> {\n return typeof value === \"function\";\n}\n","/**\n * Environment detection utilities.\n * These avoid direct references to process.env which can cause TypeScript issues in browser environments.\n * Compatible with Node.js and Vite environments.\n */\n\ntype ImportMetaWithEnv = ImportMeta & {\n env?: Record<string, unknown> & { DEV?: boolean; PROD?: boolean };\n};\ntype ProcessLike = { env?: Record<string, string | undefined> };\n\nfunction getEnvVar(key: string): string | undefined {\n const importMetaEnv = (import.meta as ImportMetaWithEnv).env;\n if (importMetaEnv && typeof importMetaEnv[key] === \"string\") {\n return importMetaEnv[key] as string;\n }\n\n const processEnv = (globalThis as typeof globalThis & { process?: ProcessLike }).process?.env;\n if (processEnv) {\n return processEnv[key];\n }\n return undefined;\n}\n\n/**\n * Check if we're running in a test environment.\n */\nexport function isTestEnv(): boolean {\n return getEnvVar(\"NODE_ENV\") === \"test\";\n}\n\n/**\n * Check if we're running in a development environment (not production).\n */\nexport function isDevEnv(): boolean {\n const importMetaEnv = (import.meta as ImportMetaWithEnv).env;\n if (importMetaEnv?.DEV === true) {\n return true;\n }\n const nodeEnv = getEnvVar(\"NODE_ENV\");\n return nodeEnv !== \"production\";\n}\n\n/**\n * Check if we're running in production.\n */\nexport function isProdEnv(): boolean {\n const importMetaEnv = (import.meta as ImportMetaWithEnv).env;\n if (importMetaEnv?.PROD === true) {\n return true;\n }\n return getEnvVar(\"NODE_ENV\") === \"production\";\n}\n"],"mappings":";;;;;;;;;;AAWA,SAAgB,WACd,GAAG,MACA;CACH,MAAM,SAAgB,CAAC;CACvB,MAAM,kBAAkB,KAAa,UAAmB;EACtD,MAAM,mBAAmB,OAAO,yBAAyB,QAAQ,GAAG;EAEpE,IAAI,kBAAkB,OAAO,kBAAkB,KAAK;GAClD,OAAO,eAAe,QAAQ,KAAK;IACjC,YAAY;IACZ,cAAc;IACd,UAAU;IACV;GACF,CAAC;GACD;EACF;EAEA,OAAO,OAAO;CAChB;CAEA,KAAK,MAAM,SAAS,MAClB,KAAK,MAAM,OAAO,OAAO;EACvB,MAAM,aAAa,OAAO,yBAAyB,OAAO,GAAG;EAC7D,MAAM,YAAY,OAAO,YAAY,QAAQ;EAC7C,MAAM,iBAAkB,YAAY,WAAW,IAAK,KAAK,KAAK,IAAI,MAAM;EACxE,MAAM,QAAQ,SAAS;EACvB,MAAM,gBAAgB,OAAO;EAE7B,IACE,OAAO,kBAAkB,cACzB,OAAO,UAAU,cACjB,IAAI,WAAW,IAAI,KACnB,IAAI,OAAO,IAAI,EAAE,EAAE,YAAY,GAE/B,eAAe,KAAK,cAAc,eAA2B,KAAiB,CAAC;OAC1E,KACJ,QAAQ,WAAW,QAAQ,eAAe,QAAQ,uBACnD,OAAO,kBAAkB,YACzB,OAAO,UAAU,UAKjB,eAAe,KAAK,gBAAgB,eAAe,KAAK,CAAC;OACpD,IACL,QAAQ,WACR,OAAO,kBAAkB,YACzB,OAAO,UAAU,UAEjB,eAAe,KAAK;GAAE,GAAI;GAA0B,GAAI;EAAiB,CAAC;OACrE,IAAI,cAAc,UAAU,KAAA,KAAa,EAAE,OAAO,UACvD,OAAO,eAAe,QAAQ,KAAK;GACjC,YAAY;GACZ,cAAc;GACd,KAAK;EACP,CAAC;OACI,IAAI,UAAU,KAAA,GACnB,eAAe,KAAK,KAAK;CAE7B;CAGF,OAAO;AACT;AAEA,SAAS,cAAc,iBAA2B,YAAsB;CACtE,QAAQ,GAAG,SAAoB;EAC7B,gBAAgB,GAAG,IAAI;EACvB,WAAW,GAAG,IAAI;CACpB;AACF;AAEA,SAAS,gBAAgB,GAAG,SAA4B;CACtD,OAAO,QAAQ,OAAO,OAAO,CAAC,CAAC,KAAK,GAAG;AACzC;;;;;;;;;;AChEA,SAAgB,OAAU,OAA4B;CACpD,OAAO,OAAO,UAAU,aAAc,MAAsB,IAAI;AAClE;;;;AAUA,SAAgB,WAAc,OAA+C;CAC3E,OAAO,OAAO,UAAU;AAC1B;;;ACxBA,SAAS,UAAU,KAAiC;CAClD,MAAM,gBAAiB,OAAO,KAA2B;CACzD,IAAI,iBAAiB,OAAO,cAAc,SAAS,UACjD,OAAO,cAAc;CAGvB,MAAM,aAAc,WAA6D,SAAS;CAC1F,IAAI,YACF,OAAO,WAAW;AAGtB;;;;AAKA,SAAgB,YAAqB;CACnC,OAAO,UAAU,UAAU,MAAM;AACnC;;;;AAKA,SAAgB,WAAoB;CAElC,IADuB,OAAO,KAA2B,KACtC,QAAQ,MACzB,OAAO;CAGT,OADgB,UAAU,UACb,MAAM;AACrB;;;;AAKA,SAAgB,YAAqB;CAEnC,IADuB,OAAO,KAA2B,KACtC,SAAS,MAC1B,OAAO;CAET,OAAO,UAAU,UAAU,MAAM;AACnC"}
@@ -0,0 +1,82 @@
1
+ //#region src/utils/filterDOMProps.ts
2
+ /**
3
+ * filterDOMProps for Solidaria
4
+ *
5
+ * Filters out all props that aren't valid DOM props.
6
+ * This is a 1:1 port of @react-aria/utils filterDOMProps.
7
+ */
8
+ const DOMPropNames = new Set(["id"]);
9
+ const labelablePropNames = new Set([
10
+ "aria-label",
11
+ "aria-labelledby",
12
+ "aria-describedby",
13
+ "aria-details"
14
+ ]);
15
+ const linkPropNames = new Set([
16
+ "href",
17
+ "hrefLang",
18
+ "target",
19
+ "rel",
20
+ "download",
21
+ "ping",
22
+ "referrerPolicy"
23
+ ]);
24
+ const globalAttrs = new Set([
25
+ "dir",
26
+ "lang",
27
+ "hidden",
28
+ "inert",
29
+ "translate"
30
+ ]);
31
+ const globalEvents = new Set([
32
+ "onClick",
33
+ "onAuxClick",
34
+ "onContextMenu",
35
+ "onDoubleClick",
36
+ "onMouseDown",
37
+ "onMouseEnter",
38
+ "onMouseLeave",
39
+ "onMouseMove",
40
+ "onMouseOut",
41
+ "onMouseOver",
42
+ "onMouseUp",
43
+ "onTouchCancel",
44
+ "onTouchEnd",
45
+ "onTouchMove",
46
+ "onTouchStart",
47
+ "onPointerDown",
48
+ "onPointerMove",
49
+ "onPointerUp",
50
+ "onPointerCancel",
51
+ "onPointerEnter",
52
+ "onPointerLeave",
53
+ "onPointerOver",
54
+ "onPointerOut",
55
+ "onGotPointerCapture",
56
+ "onLostPointerCapture",
57
+ "onScroll",
58
+ "onWheel",
59
+ "onAnimationStart",
60
+ "onAnimationEnd",
61
+ "onAnimationIteration",
62
+ "onTransitionCancel",
63
+ "onTransitionEnd",
64
+ "onTransitionRun",
65
+ "onTransitionStart"
66
+ ]);
67
+ const propRe = /^(data-.*)$/;
68
+ /**
69
+ * Filters out all props that aren't valid DOM props or defined via override prop obj.
70
+ * @param props - The component props to be filtered.
71
+ * @param opts - Props to override.
72
+ */
73
+ function filterDOMProps(props, opts = {}) {
74
+ const { labelable, isLink, global, events = global, propNames } = opts;
75
+ const filteredProps = {};
76
+ for (const prop in props) if (Object.prototype.hasOwnProperty.call(props, prop) && (DOMPropNames.has(prop) || labelable && labelablePropNames.has(prop) || isLink && linkPropNames.has(prop) || global && globalAttrs.has(prop) || events && (globalEvents.has(prop) || prop.endsWith("Capture") && globalEvents.has(prop.slice(0, -7))) || propNames?.has(prop) || propRe.test(prop))) filteredProps[prop] = props[prop];
77
+ return filteredProps;
78
+ }
79
+ //#endregion
80
+ export { filterDOMProps as t };
81
+
82
+ //# sourceMappingURL=filterDOMProps.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"filterDOMProps.js","names":[],"sources":["../../src/utils/filterDOMProps.ts"],"sourcesContent":["/**\n * filterDOMProps for Solidaria\n *\n * Filters out all props that aren't valid DOM props.\n * This is a 1:1 port of @react-aria/utils filterDOMProps.\n */\n\nconst DOMPropNames = new Set([\"id\"]);\n\nconst labelablePropNames = new Set([\n \"aria-label\",\n \"aria-labelledby\",\n \"aria-describedby\",\n \"aria-details\",\n]);\n\n// See LinkDOMProps in dom.d.ts.\nconst linkPropNames = new Set([\n \"href\",\n \"hrefLang\",\n \"target\",\n \"rel\",\n \"download\",\n \"ping\",\n \"referrerPolicy\",\n]);\n\nconst globalAttrs = new Set([\"dir\", \"lang\", \"hidden\", \"inert\", \"translate\"]);\n\nconst globalEvents = new Set([\n \"onClick\",\n \"onAuxClick\",\n \"onContextMenu\",\n \"onDoubleClick\",\n \"onMouseDown\",\n \"onMouseEnter\",\n \"onMouseLeave\",\n \"onMouseMove\",\n \"onMouseOut\",\n \"onMouseOver\",\n \"onMouseUp\",\n \"onTouchCancel\",\n \"onTouchEnd\",\n \"onTouchMove\",\n \"onTouchStart\",\n \"onPointerDown\",\n \"onPointerMove\",\n \"onPointerUp\",\n \"onPointerCancel\",\n \"onPointerEnter\",\n \"onPointerLeave\",\n \"onPointerOver\",\n \"onPointerOut\",\n \"onGotPointerCapture\",\n \"onLostPointerCapture\",\n \"onScroll\",\n \"onWheel\",\n \"onAnimationStart\",\n \"onAnimationEnd\",\n \"onAnimationIteration\",\n \"onTransitionCancel\",\n \"onTransitionEnd\",\n \"onTransitionRun\",\n \"onTransitionStart\",\n]);\n\nconst propRe = /^(data-.*)$/;\n\nexport interface FilterDOMPropsOptions {\n /**\n * If labelling associated aria properties should be included in the filter.\n */\n labelable?: boolean;\n /** Whether the element is a link and should include DOM props for <a> elements. */\n isLink?: boolean;\n /** Whether to include global DOM attributes. */\n global?: boolean;\n /** Whether to include DOM events. */\n events?: boolean;\n /**\n * A Set of other property names that should be included in the filter.\n */\n propNames?: Set<string>;\n}\n\n/**\n * Filters out all props that aren't valid DOM props or defined via override prop obj.\n * @param props - The component props to be filtered.\n * @param opts - Props to override.\n */\nexport function filterDOMProps<T extends object>(\n props: T,\n opts: FilterDOMPropsOptions = {},\n): Partial<T> {\n const { labelable, isLink, global, events = global, propNames } = opts;\n const filteredProps: Partial<T> = {};\n\n for (const prop in props) {\n if (\n Object.prototype.hasOwnProperty.call(props, prop) &&\n (DOMPropNames.has(prop) ||\n (labelable && labelablePropNames.has(prop)) ||\n (isLink && linkPropNames.has(prop)) ||\n (global && globalAttrs.has(prop)) ||\n (events &&\n (globalEvents.has(prop) ||\n (prop.endsWith(\"Capture\") && globalEvents.has(prop.slice(0, -7))))) ||\n propNames?.has(prop) ||\n propRe.test(prop))\n ) {\n (filteredProps as Record<string, unknown>)[prop] = props[prop];\n }\n }\n\n return filteredProps;\n}\n"],"mappings":";;;;;;;AAOA,MAAM,eAAe,IAAI,IAAI,CAAC,IAAI,CAAC;AAEnC,MAAM,qBAAqB,IAAI,IAAI;CACjC;CACA;CACA;CACA;AACF,CAAC;AAGD,MAAM,gBAAgB,IAAI,IAAI;CAC5B;CACA;CACA;CACA;CACA;CACA;CACA;AACF,CAAC;AAED,MAAM,cAAc,IAAI,IAAI;CAAC;CAAO;CAAQ;CAAU;CAAS;AAAW,CAAC;AAE3E,MAAM,eAAe,IAAI,IAAI;CAC3B;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;AACF,CAAC;AAED,MAAM,SAAS;;;;;;AAwBf,SAAgB,eACd,OACA,OAA8B,CAAC,GACnB;CACZ,MAAM,EAAE,WAAW,QAAQ,QAAQ,SAAS,QAAQ,cAAc;CAClE,MAAM,gBAA4B,CAAC;CAEnC,KAAK,MAAM,QAAQ,OACjB,IACE,OAAO,UAAU,eAAe,KAAK,OAAO,IAAI,MAC/C,aAAa,IAAI,IAAI,KACnB,aAAa,mBAAmB,IAAI,IAAI,KACxC,UAAU,cAAc,IAAI,IAAI,KAChC,UAAU,YAAY,IAAI,IAAI,KAC9B,WACE,aAAa,IAAI,IAAI,KACnB,KAAK,SAAS,SAAS,KAAK,aAAa,IAAI,KAAK,MAAM,GAAG,EAAE,CAAC,MACnE,WAAW,IAAI,IAAI,KACnB,OAAO,KAAK,IAAI,IAElB,cAA2C,QAAQ,MAAM;CAI7D,OAAO;AACT"}