@proyecto-viviana/solidaria 0.3.0 → 0.4.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (743) hide show
  1. package/dist/_chunk/DragManager.js +627 -0
  2. package/dist/_chunk/DragManager.js.map +1 -0
  3. package/dist/_chunk/DragManager.jsx +627 -0
  4. package/dist/_chunk/DragManager.jsx.map +1 -0
  5. package/dist/_chunk/FocusScope.js +400 -0
  6. package/dist/_chunk/FocusScope.js.map +1 -0
  7. package/dist/_chunk/FocusScope.jsx +375 -0
  8. package/dist/_chunk/FocusScope.jsx.map +1 -0
  9. package/dist/_chunk/actiongroup.js +141 -0
  10. package/dist/_chunk/actiongroup.js.map +1 -0
  11. package/dist/_chunk/actiongroup.jsx +141 -0
  12. package/dist/_chunk/actiongroup.jsx.map +1 -0
  13. package/dist/_chunk/announce.js +207 -0
  14. package/dist/_chunk/announce.js.map +1 -0
  15. package/dist/_chunk/announce.jsx +207 -0
  16. package/dist/_chunk/announce.jsx.map +1 -0
  17. package/dist/_chunk/ariaHideOutside.js +122 -0
  18. package/dist/_chunk/ariaHideOutside.js.map +1 -0
  19. package/dist/_chunk/ariaHideOutside.jsx +122 -0
  20. package/dist/_chunk/ariaHideOutside.jsx.map +1 -0
  21. package/dist/_chunk/autocomplete.js +244 -0
  22. package/dist/_chunk/autocomplete.js.map +1 -0
  23. package/dist/_chunk/autocomplete.jsx +244 -0
  24. package/dist/_chunk/autocomplete.jsx.map +1 -0
  25. package/dist/_chunk/breadcrumbs.js +121 -0
  26. package/dist/_chunk/breadcrumbs.js.map +1 -0
  27. package/dist/_chunk/breadcrumbs.jsx +121 -0
  28. package/dist/_chunk/breadcrumbs.jsx.map +1 -0
  29. package/dist/_chunk/button.js +275 -0
  30. package/dist/_chunk/button.js.map +1 -0
  31. package/dist/_chunk/button.jsx +275 -0
  32. package/dist/_chunk/button.jsx.map +1 -0
  33. package/dist/_chunk/calendar.js +1037 -0
  34. package/dist/_chunk/calendar.js.map +1 -0
  35. package/dist/_chunk/calendar.jsx +1037 -0
  36. package/dist/_chunk/calendar.jsx.map +1 -0
  37. package/dist/_chunk/checkbox.js +235 -0
  38. package/dist/_chunk/checkbox.js.map +1 -0
  39. package/dist/_chunk/checkbox.jsx +235 -0
  40. package/dist/_chunk/checkbox.jsx.map +1 -0
  41. package/dist/_chunk/color.js +1458 -0
  42. package/dist/_chunk/color.js.map +1 -0
  43. package/dist/_chunk/color.jsx +1458 -0
  44. package/dist/_chunk/color.jsx.map +1 -0
  45. package/dist/_chunk/combobox.js +1062 -0
  46. package/dist/_chunk/combobox.js.map +1 -0
  47. package/dist/_chunk/combobox.jsx +1062 -0
  48. package/dist/_chunk/combobox.jsx.map +1 -0
  49. package/dist/_chunk/constants.js +19 -0
  50. package/dist/_chunk/constants.js.map +1 -0
  51. package/dist/_chunk/constants.jsx +19 -0
  52. package/dist/_chunk/constants.jsx.map +1 -0
  53. package/dist/_chunk/createCollator.js +61 -0
  54. package/dist/_chunk/createCollator.js.map +1 -0
  55. package/dist/_chunk/createCollator.jsx +61 -0
  56. package/dist/_chunk/createCollator.jsx.map +1 -0
  57. package/dist/_chunk/createCollectionRowInteraction.js +133 -0
  58. package/dist/_chunk/createCollectionRowInteraction.js.map +1 -0
  59. package/dist/_chunk/createCollectionRowInteraction.jsx +133 -0
  60. package/dist/_chunk/createCollectionRowInteraction.jsx.map +1 -0
  61. package/dist/_chunk/createField.js +55 -0
  62. package/dist/_chunk/createField.js.map +1 -0
  63. package/dist/_chunk/createField.jsx +55 -0
  64. package/dist/_chunk/createField.jsx.map +1 -0
  65. package/dist/_chunk/createFocus.js +105 -0
  66. package/dist/_chunk/createFocus.js.map +1 -0
  67. package/dist/_chunk/createFocus.jsx +105 -0
  68. package/dist/_chunk/createFocus.jsx.map +1 -0
  69. package/dist/_chunk/createFocusRing.js +54 -0
  70. package/dist/_chunk/createFocusRing.js.map +1 -0
  71. package/dist/_chunk/createFocusRing.jsx +54 -0
  72. package/dist/_chunk/createFocusRing.jsx.map +1 -0
  73. package/dist/_chunk/createFocusWithin.js +120 -0
  74. package/dist/_chunk/createFocusWithin.js.map +1 -0
  75. package/dist/_chunk/createFocusWithin.jsx +120 -0
  76. package/dist/_chunk/createFocusWithin.jsx.map +1 -0
  77. package/dist/_chunk/createFocusable.js +131 -0
  78. package/dist/_chunk/createFocusable.js.map +1 -0
  79. package/dist/_chunk/createFocusable.jsx +131 -0
  80. package/dist/_chunk/createFocusable.jsx.map +1 -0
  81. package/dist/_chunk/createFormReset.js +39 -0
  82. package/dist/_chunk/createFormReset.js.map +1 -0
  83. package/dist/_chunk/createFormReset.jsx +39 -0
  84. package/dist/_chunk/createFormReset.jsx.map +1 -0
  85. package/dist/_chunk/createFormValidation.js +135 -0
  86. package/dist/_chunk/createFormValidation.js.map +1 -0
  87. package/dist/_chunk/createFormValidation.jsx +135 -0
  88. package/dist/_chunk/createFormValidation.jsx.map +1 -0
  89. package/dist/_chunk/createHover.js +131 -0
  90. package/dist/_chunk/createHover.js.map +1 -0
  91. package/dist/_chunk/createHover.jsx +131 -0
  92. package/dist/_chunk/createHover.jsx.map +1 -0
  93. package/dist/_chunk/createInteractionModality.js +268 -0
  94. package/dist/_chunk/createInteractionModality.js.map +1 -0
  95. package/dist/_chunk/createInteractionModality.jsx +268 -0
  96. package/dist/_chunk/createInteractionModality.jsx.map +1 -0
  97. package/dist/_chunk/createLabel.js +47 -0
  98. package/dist/_chunk/createLabel.js.map +1 -0
  99. package/dist/_chunk/createLabel.jsx +47 -0
  100. package/dist/_chunk/createLabel.jsx.map +1 -0
  101. package/dist/_chunk/createLabels.js +32 -0
  102. package/dist/_chunk/createLabels.js.map +1 -0
  103. package/dist/_chunk/createLabels.jsx +32 -0
  104. package/dist/_chunk/createLabels.jsx.map +1 -0
  105. package/dist/_chunk/createLandmark.js +198 -0
  106. package/dist/_chunk/createLandmark.js.map +1 -0
  107. package/dist/_chunk/createLandmark.jsx +198 -0
  108. package/dist/_chunk/createLandmark.jsx.map +1 -0
  109. package/dist/_chunk/createOverlay.js +327 -0
  110. package/dist/_chunk/createOverlay.js.map +1 -0
  111. package/dist/_chunk/createOverlay.jsx +327 -0
  112. package/dist/_chunk/createOverlay.jsx.map +1 -0
  113. package/dist/_chunk/createPress.js +526 -0
  114. package/dist/_chunk/createPress.js.map +1 -0
  115. package/dist/_chunk/createPress.jsx +526 -0
  116. package/dist/_chunk/createPress.jsx.map +1 -0
  117. package/dist/_chunk/createProgressBar.js +82 -0
  118. package/dist/_chunk/createProgressBar.js.map +1 -0
  119. package/dist/_chunk/createProgressBar.jsx +82 -0
  120. package/dist/_chunk/createProgressBar.jsx.map +1 -0
  121. package/dist/_chunk/createSelectableItem.js +302 -0
  122. package/dist/_chunk/createSelectableItem.js.map +1 -0
  123. package/dist/_chunk/createSelectableItem.jsx +302 -0
  124. package/dist/_chunk/createSelectableItem.jsx.map +1 -0
  125. package/dist/_chunk/createStringFormatter.js +61 -0
  126. package/dist/_chunk/createStringFormatter.js.map +1 -0
  127. package/dist/_chunk/createStringFormatter.jsx +61 -0
  128. package/dist/_chunk/createStringFormatter.jsx.map +1 -0
  129. package/dist/_chunk/createToggle.js +159 -0
  130. package/dist/_chunk/createToggle.js.map +1 -0
  131. package/dist/_chunk/createToggle.jsx +159 -0
  132. package/dist/_chunk/createToggle.jsx.map +1 -0
  133. package/dist/_chunk/createTypeSelect.js +125 -0
  134. package/dist/_chunk/createTypeSelect.js.map +1 -0
  135. package/dist/_chunk/createTypeSelect.jsx +125 -0
  136. package/dist/_chunk/createTypeSelect.jsx.map +1 -0
  137. package/dist/_chunk/datepicker.js +1706 -0
  138. package/dist/_chunk/datepicker.js.map +1 -0
  139. package/dist/_chunk/datepicker.jsx +1706 -0
  140. package/dist/_chunk/datepicker.jsx.map +1 -0
  141. package/dist/_chunk/dialog.js +62 -0
  142. package/dist/_chunk/dialog.js.map +1 -0
  143. package/dist/_chunk/dialog.jsx +62 -0
  144. package/dist/_chunk/dialog.jsx.map +1 -0
  145. package/dist/_chunk/disclosure.js +185 -0
  146. package/dist/_chunk/disclosure.js.map +1 -0
  147. package/dist/_chunk/disclosure.jsx +185 -0
  148. package/dist/_chunk/disclosure.jsx.map +1 -0
  149. package/dist/_chunk/dnd.js +2395 -0
  150. package/dist/_chunk/dnd.js.map +1 -0
  151. package/dist/_chunk/dnd.jsx +2395 -0
  152. package/dist/_chunk/dnd.jsx.map +1 -0
  153. package/dist/_chunk/env.js +87 -0
  154. package/dist/_chunk/env.js.map +1 -0
  155. package/dist/_chunk/env.jsx +87 -0
  156. package/dist/_chunk/env.jsx.map +1 -0
  157. package/dist/_chunk/filterDOMProps.js +82 -0
  158. package/dist/_chunk/filterDOMProps.js.map +1 -0
  159. package/dist/_chunk/filterDOMProps.jsx +82 -0
  160. package/dist/_chunk/filterDOMProps.jsx.map +1 -0
  161. package/dist/_chunk/focus.js +399 -0
  162. package/dist/_chunk/focus.js.map +1 -0
  163. package/dist/_chunk/focus.jsx +399 -0
  164. package/dist/_chunk/focus.jsx.map +1 -0
  165. package/dist/_chunk/focus2.js +631 -0
  166. package/dist/_chunk/focus2.js.map +1 -0
  167. package/dist/_chunk/focus2.jsx +631 -0
  168. package/dist/_chunk/focus2.jsx.map +1 -0
  169. package/dist/_chunk/grid.js +623 -0
  170. package/dist/_chunk/grid.js.map +1 -0
  171. package/dist/_chunk/grid.jsx +623 -0
  172. package/dist/_chunk/grid.jsx.map +1 -0
  173. package/dist/_chunk/gridlist.js +369 -0
  174. package/dist/_chunk/gridlist.js.map +1 -0
  175. package/dist/_chunk/gridlist.jsx +369 -0
  176. package/dist/_chunk/gridlist.jsx.map +1 -0
  177. package/dist/_chunk/i18n.js +199 -0
  178. package/dist/_chunk/i18n.js.map +1 -0
  179. package/dist/_chunk/i18n.jsx +199 -0
  180. package/dist/_chunk/i18n.jsx.map +1 -0
  181. package/dist/_chunk/interactions.js +331 -0
  182. package/dist/_chunk/interactions.js.map +1 -0
  183. package/dist/_chunk/interactions.jsx +325 -0
  184. package/dist/_chunk/interactions.jsx.map +1 -0
  185. package/dist/_chunk/link.js +97 -0
  186. package/dist/_chunk/link.js.map +1 -0
  187. package/dist/_chunk/link.jsx +97 -0
  188. package/dist/_chunk/link.jsx.map +1 -0
  189. package/dist/_chunk/listbox.js +356 -0
  190. package/dist/_chunk/listbox.js.map +1 -0
  191. package/dist/_chunk/listbox.jsx +356 -0
  192. package/dist/_chunk/listbox.jsx.map +1 -0
  193. package/dist/_chunk/locale.js +173 -0
  194. package/dist/_chunk/locale.js.map +1 -0
  195. package/dist/_chunk/locale.jsx +167 -0
  196. package/dist/_chunk/locale.jsx.map +1 -0
  197. package/dist/_chunk/menu.js +519 -0
  198. package/dist/_chunk/menu.js.map +1 -0
  199. package/dist/_chunk/menu.jsx +519 -0
  200. package/dist/_chunk/menu.jsx.map +1 -0
  201. package/dist/_chunk/meter.js +33 -0
  202. package/dist/_chunk/meter.js.map +1 -0
  203. package/dist/_chunk/meter.jsx +33 -0
  204. package/dist/_chunk/meter.jsx.map +1 -0
  205. package/dist/_chunk/numberfield.js +259 -0
  206. package/dist/_chunk/numberfield.js.map +1 -0
  207. package/dist/_chunk/numberfield.jsx +259 -0
  208. package/dist/_chunk/numberfield.jsx.map +1 -0
  209. package/dist/_chunk/overlays.js +186 -0
  210. package/dist/_chunk/overlays.js.map +1 -0
  211. package/dist/_chunk/overlays.jsx +162 -0
  212. package/dist/_chunk/overlays.jsx.map +1 -0
  213. package/dist/_chunk/popover.js +574 -0
  214. package/dist/_chunk/popover.js.map +1 -0
  215. package/dist/_chunk/popover.jsx +574 -0
  216. package/dist/_chunk/popover.jsx.map +1 -0
  217. package/dist/_chunk/radio.js +320 -0
  218. package/dist/_chunk/radio.js.map +1 -0
  219. package/dist/_chunk/radio.jsx +320 -0
  220. package/dist/_chunk/radio.jsx.map +1 -0
  221. package/dist/_chunk/reactivity.js +21 -0
  222. package/dist/_chunk/reactivity.js.map +1 -0
  223. package/dist/_chunk/reactivity.jsx +21 -0
  224. package/dist/_chunk/reactivity.jsx.map +1 -0
  225. package/dist/_chunk/searchfield.js +210 -0
  226. package/dist/_chunk/searchfield.js.map +1 -0
  227. package/dist/_chunk/searchfield.jsx +210 -0
  228. package/dist/_chunk/searchfield.jsx.map +1 -0
  229. package/dist/_chunk/select.js +406 -0
  230. package/dist/_chunk/select.js.map +1 -0
  231. package/dist/_chunk/select.jsx +397 -0
  232. package/dist/_chunk/select.jsx.map +1 -0
  233. package/dist/_chunk/selection.js +666 -0
  234. package/dist/_chunk/selection.js.map +1 -0
  235. package/dist/_chunk/selection.jsx +666 -0
  236. package/dist/_chunk/selection.jsx.map +1 -0
  237. package/dist/_chunk/separator.js +29 -0
  238. package/dist/_chunk/separator.js.map +1 -0
  239. package/dist/_chunk/separator.jsx +29 -0
  240. package/dist/_chunk/separator.jsx.map +1 -0
  241. package/dist/_chunk/slider.js +256 -0
  242. package/dist/_chunk/slider.js.map +1 -0
  243. package/dist/_chunk/slider.jsx +256 -0
  244. package/dist/_chunk/slider.jsx.map +1 -0
  245. package/dist/_chunk/spinbutton.js +153 -0
  246. package/dist/_chunk/spinbutton.js.map +1 -0
  247. package/dist/_chunk/spinbutton.jsx +153 -0
  248. package/dist/_chunk/spinbutton.jsx.map +1 -0
  249. package/dist/_chunk/steplist.js +66 -0
  250. package/dist/_chunk/steplist.js.map +1 -0
  251. package/dist/_chunk/steplist.jsx +66 -0
  252. package/dist/_chunk/steplist.jsx.map +1 -0
  253. package/dist/_chunk/switch.js +34 -0
  254. package/dist/_chunk/switch.js.map +1 -0
  255. package/dist/_chunk/switch.jsx +34 -0
  256. package/dist/_chunk/switch.jsx.map +1 -0
  257. package/dist/_chunk/table.js +1088 -0
  258. package/dist/_chunk/table.js.map +1 -0
  259. package/dist/_chunk/table.jsx +1088 -0
  260. package/dist/_chunk/table.jsx.map +1 -0
  261. package/dist/_chunk/tabs.js +263 -0
  262. package/dist/_chunk/tabs.js.map +1 -0
  263. package/dist/_chunk/tabs.jsx +263 -0
  264. package/dist/_chunk/tabs.jsx.map +1 -0
  265. package/dist/_chunk/tag.js +322 -0
  266. package/dist/_chunk/tag.js.map +1 -0
  267. package/dist/_chunk/tag.jsx +322 -0
  268. package/dist/_chunk/tag.jsx.map +1 -0
  269. package/dist/_chunk/textfield.js +110 -0
  270. package/dist/_chunk/textfield.js.map +1 -0
  271. package/dist/_chunk/textfield.jsx +110 -0
  272. package/dist/_chunk/textfield.jsx.map +1 -0
  273. package/dist/_chunk/toast.js +250 -0
  274. package/dist/_chunk/toast.js.map +1 -0
  275. package/dist/_chunk/toast.jsx +250 -0
  276. package/dist/_chunk/toast.jsx.map +1 -0
  277. package/dist/_chunk/toolbar.js +226 -0
  278. package/dist/_chunk/toolbar.js.map +1 -0
  279. package/dist/_chunk/toolbar.jsx +226 -0
  280. package/dist/_chunk/toolbar.jsx.map +1 -0
  281. package/dist/_chunk/tooltip.js +185 -0
  282. package/dist/_chunk/tooltip.js.map +1 -0
  283. package/dist/_chunk/tooltip.jsx +185 -0
  284. package/dist/_chunk/tooltip.jsx.map +1 -0
  285. package/dist/_chunk/tree.js +452 -0
  286. package/dist/_chunk/tree.js.map +1 -0
  287. package/dist/_chunk/tree.jsx +452 -0
  288. package/dist/_chunk/tree.jsx.map +1 -0
  289. package/dist/_chunk/utils.js +705 -0
  290. package/dist/_chunk/utils.js.map +1 -0
  291. package/dist/_chunk/utils.jsx +705 -0
  292. package/dist/_chunk/utils.jsx.map +1 -0
  293. package/dist/_chunk/visually-hidden.js +93 -0
  294. package/dist/_chunk/visually-hidden.js.map +1 -0
  295. package/dist/_chunk/visually-hidden.jsx +93 -0
  296. package/dist/_chunk/visually-hidden.jsx.map +1 -0
  297. package/dist/actiongroup/createActionGroup.d.ts.map +1 -1
  298. package/dist/actiongroup/index.js +2 -0
  299. package/dist/actiongroup/index.jsx +2 -0
  300. package/dist/autocomplete/createAutocomplete.d.ts +12 -7
  301. package/dist/autocomplete/createAutocomplete.d.ts.map +1 -1
  302. package/dist/autocomplete/index.js +2 -0
  303. package/dist/autocomplete/index.jsx +2 -0
  304. package/dist/breadcrumbs/createBreadcrumbs.d.ts.map +1 -1
  305. package/dist/breadcrumbs/index.js +2 -0
  306. package/dist/breadcrumbs/index.jsx +2 -0
  307. package/dist/button/createToggleButtonGroup.d.ts.map +1 -1
  308. package/dist/button/index.js +2 -0
  309. package/dist/button/index.jsx +2 -0
  310. package/dist/calendar/createCalendar.d.ts.map +1 -1
  311. package/dist/calendar/createCalendarCell.d.ts.map +1 -1
  312. package/dist/calendar/createCalendarGrid.d.ts.map +1 -1
  313. package/dist/calendar/createCalendarMonthPicker.d.ts +41 -0
  314. package/dist/calendar/createCalendarMonthPicker.d.ts.map +1 -0
  315. package/dist/calendar/createCalendarYearPicker.d.ts +49 -0
  316. package/dist/calendar/createCalendarYearPicker.d.ts.map +1 -0
  317. package/dist/calendar/createRangeCalendar.d.ts.map +1 -1
  318. package/dist/calendar/createRangeCalendarCell.d.ts.map +1 -1
  319. package/dist/calendar/index.d.ts +2 -0
  320. package/dist/calendar/index.d.ts.map +1 -1
  321. package/dist/calendar/index.js +2 -0
  322. package/dist/calendar/index.jsx +2 -0
  323. package/dist/calendar/intl/index.d.ts +1 -1
  324. package/dist/calendar/intl/index.d.ts.map +1 -1
  325. package/dist/calendar/utils.d.ts +4 -0
  326. package/dist/calendar/utils.d.ts.map +1 -1
  327. package/dist/checkbox/createCheckbox.d.ts +4 -0
  328. package/dist/checkbox/createCheckbox.d.ts.map +1 -1
  329. package/dist/checkbox/createCheckboxGroupItem.d.ts.map +1 -1
  330. package/dist/checkbox/index.js +2 -0
  331. package/dist/checkbox/index.jsx +2 -0
  332. package/dist/collections/index.js +160 -0
  333. package/dist/collections/index.js.map +1 -0
  334. package/dist/collections/index.jsx +160 -0
  335. package/dist/collections/index.jsx.map +1 -0
  336. package/dist/color/createColorArea.d.ts.map +1 -1
  337. package/dist/color/createColorField.d.ts.map +1 -1
  338. package/dist/color/createColorSlider.d.ts.map +1 -1
  339. package/dist/color/createColorSwatch.d.ts.map +1 -1
  340. package/dist/color/createColorWheel.d.ts.map +1 -1
  341. package/dist/color/index.js +2 -0
  342. package/dist/color/index.jsx +2 -0
  343. package/dist/color/intl/index.d.ts +30 -0
  344. package/dist/color/intl/index.d.ts.map +1 -0
  345. package/dist/combobox/createComboBox.d.ts.map +1 -1
  346. package/dist/combobox/index.js +2 -0
  347. package/dist/combobox/index.jsx +2 -0
  348. package/dist/combobox/intl/generated-locales.d.ts +16 -0
  349. package/dist/combobox/intl/generated-locales.d.ts.map +1 -0
  350. package/dist/combobox/intl/index.d.ts +2 -2
  351. package/dist/combobox/intl/index.d.ts.map +1 -1
  352. package/dist/datepicker/createDateField.d.ts +45 -23
  353. package/dist/datepicker/createDateField.d.ts.map +1 -1
  354. package/dist/datepicker/createDatePicker.d.ts +34 -6
  355. package/dist/datepicker/createDatePicker.d.ts.map +1 -1
  356. package/dist/datepicker/createDatePickerGroup.d.ts +13 -13
  357. package/dist/datepicker/createDatePickerGroup.d.ts.map +1 -1
  358. package/dist/datepicker/createDateRangePicker.d.ts +55 -7
  359. package/dist/datepicker/createDateRangePicker.d.ts.map +1 -1
  360. package/dist/datepicker/createDateSegment.d.ts +6 -15
  361. package/dist/datepicker/createDateSegment.d.ts.map +1 -1
  362. package/dist/datepicker/createDisplayNames.d.ts +17 -0
  363. package/dist/datepicker/createDisplayNames.d.ts.map +1 -0
  364. package/dist/datepicker/createTimeField.d.ts +12 -49
  365. package/dist/datepicker/createTimeField.d.ts.map +1 -1
  366. package/dist/datepicker/index.d.ts +3 -3
  367. package/dist/datepicker/index.d.ts.map +1 -1
  368. package/dist/datepicker/index.js +2 -0
  369. package/dist/datepicker/index.jsx +2 -0
  370. package/dist/datepicker/intl.d.ts +12 -0
  371. package/dist/datepicker/intl.d.ts.map +1 -0
  372. package/dist/dialog/index.js +2 -0
  373. package/dist/dialog/index.jsx +2 -0
  374. package/dist/disclosure/index.js +2 -0
  375. package/dist/disclosure/index.jsx +2 -0
  376. package/dist/dnd/DragManager.d.ts +86 -0
  377. package/dist/dnd/DragManager.d.ts.map +1 -0
  378. package/dist/dnd/DropTargetKeyboardNavigation.d.ts +42 -0
  379. package/dist/dnd/DropTargetKeyboardNavigation.d.ts.map +1 -0
  380. package/dist/dnd/createDrag.d.ts.map +1 -1
  381. package/dist/dnd/createDraggableCollection.d.ts.map +1 -1
  382. package/dist/dnd/createDraggableItem.d.ts +12 -7
  383. package/dist/dnd/createDraggableItem.d.ts.map +1 -1
  384. package/dist/dnd/createDroppableCollection.d.ts +7 -15
  385. package/dist/dnd/createDroppableCollection.d.ts.map +1 -1
  386. package/dist/dnd/index.d.ts +5 -1
  387. package/dist/dnd/index.d.ts.map +1 -1
  388. package/dist/dnd/index.js +3 -0
  389. package/dist/dnd/index.jsx +3 -0
  390. package/dist/dnd/intl/index.d.ts +39 -0
  391. package/dist/dnd/intl/index.d.ts.map +1 -0
  392. package/dist/dnd/utils.d.ts +7 -2
  393. package/dist/dnd/utils.d.ts.map +1 -1
  394. package/dist/focus/FocusScope.d.ts +7 -0
  395. package/dist/focus/FocusScope.d.ts.map +1 -1
  396. package/dist/focus/index.d.ts +2 -1
  397. package/dist/focus/index.d.ts.map +1 -1
  398. package/dist/focus/index.js +3 -0
  399. package/dist/focus/index.jsx +3 -0
  400. package/dist/focus/virtualFocus.d.ts +26 -0
  401. package/dist/focus/virtualFocus.d.ts.map +1 -0
  402. package/dist/form/createFormValidation.d.ts.map +1 -1
  403. package/dist/form/index.js +3 -0
  404. package/dist/form/index.jsx +3 -0
  405. package/dist/grid/index.js +2 -0
  406. package/dist/grid/index.jsx +2 -0
  407. package/dist/gridlist/createGridList.d.ts +7 -1
  408. package/dist/gridlist/createGridList.d.ts.map +1 -1
  409. package/dist/gridlist/createGridListItem.d.ts +1 -1
  410. package/dist/gridlist/createGridListItem.d.ts.map +1 -1
  411. package/dist/gridlist/createGridListSection.d.ts +15 -0
  412. package/dist/gridlist/createGridListSection.d.ts.map +1 -0
  413. package/dist/gridlist/index.d.ts +2 -1
  414. package/dist/gridlist/index.d.ts.map +1 -1
  415. package/dist/gridlist/index.js +2 -0
  416. package/dist/gridlist/index.jsx +2 -0
  417. package/dist/gridlist/types.d.ts +50 -0
  418. package/dist/gridlist/types.d.ts.map +1 -1
  419. package/dist/i18n/index.js +5 -0
  420. package/dist/i18n/index.jsx +5 -0
  421. package/dist/index.d.ts +10 -6
  422. package/dist/index.d.ts.map +1 -1
  423. package/dist/index.js +77 -18311
  424. package/dist/index.jsx +77 -18242
  425. package/dist/interactions/FocusableProvider.d.ts.map +1 -1
  426. package/dist/interactions/PressEvent.d.ts +11 -0
  427. package/dist/interactions/PressEvent.d.ts.map +1 -1
  428. package/dist/interactions/createFocus.d.ts.map +1 -1
  429. package/dist/interactions/createFocusWithin.d.ts.map +1 -1
  430. package/dist/interactions/createInteractionModality.d.ts +0 -1
  431. package/dist/interactions/createInteractionModality.d.ts.map +1 -1
  432. package/dist/interactions/createKeyboard.d.ts.map +1 -1
  433. package/dist/interactions/createPress.d.ts.map +1 -1
  434. package/dist/interactions/index.js +9 -0
  435. package/dist/interactions/index.jsx +9 -0
  436. package/dist/label/createLabels.d.ts.map +1 -1
  437. package/dist/label/index.js +4 -0
  438. package/dist/label/index.jsx +4 -0
  439. package/dist/landmark/index.js +2 -0
  440. package/dist/landmark/index.jsx +2 -0
  441. package/dist/link/index.js +2 -0
  442. package/dist/link/index.jsx +2 -0
  443. package/dist/listbox/createListBox.d.ts +37 -0
  444. package/dist/listbox/createListBox.d.ts.map +1 -1
  445. package/dist/listbox/createOption.d.ts +7 -1
  446. package/dist/listbox/createOption.d.ts.map +1 -1
  447. package/dist/listbox/index.js +2 -0
  448. package/dist/listbox/index.jsx +2 -0
  449. package/dist/live-announcer/index.js +2 -0
  450. package/dist/live-announcer/index.jsx +2 -0
  451. package/dist/menu/createMenu.d.ts +7 -4
  452. package/dist/menu/createMenu.d.ts.map +1 -1
  453. package/dist/menu/createMenuItem.d.ts +9 -1
  454. package/dist/menu/createMenuItem.d.ts.map +1 -1
  455. package/dist/menu/index.js +2 -0
  456. package/dist/menu/index.jsx +2 -0
  457. package/dist/meter/index.js +2 -0
  458. package/dist/meter/index.jsx +2 -0
  459. package/dist/numberfield/createNumberField.d.ts.map +1 -1
  460. package/dist/numberfield/index.js +2 -0
  461. package/dist/numberfield/index.jsx +2 -0
  462. package/dist/overlays/index.js +4 -0
  463. package/dist/overlays/index.jsx +4 -0
  464. package/dist/popover/calculatePosition.d.ts +2 -0
  465. package/dist/popover/calculatePosition.d.ts.map +1 -1
  466. package/dist/popover/createOverlayPosition.d.ts +8 -0
  467. package/dist/popover/createOverlayPosition.d.ts.map +1 -1
  468. package/dist/popover/index.js +2 -0
  469. package/dist/popover/index.jsx +2 -0
  470. package/dist/progress/index.js +2 -0
  471. package/dist/progress/index.jsx +2 -0
  472. package/dist/radio/createRadio.d.ts +2 -0
  473. package/dist/radio/createRadio.d.ts.map +1 -1
  474. package/dist/radio/index.js +2 -0
  475. package/dist/radio/index.jsx +2 -0
  476. package/dist/searchfield/index.js +2 -0
  477. package/dist/searchfield/index.jsx +2 -0
  478. package/dist/select/createSelect.d.ts +2 -0
  479. package/dist/select/createSelect.d.ts.map +1 -1
  480. package/dist/select/index.js +2 -0
  481. package/dist/select/index.jsx +2 -0
  482. package/dist/selection/DOMLayoutDelegate.d.ts +58 -0
  483. package/dist/selection/DOMLayoutDelegate.d.ts.map +1 -0
  484. package/dist/selection/ListKeyboardDelegate.d.ts +95 -0
  485. package/dist/selection/ListKeyboardDelegate.d.ts.map +1 -0
  486. package/dist/selection/constants.d.ts +15 -0
  487. package/dist/selection/constants.d.ts.map +1 -0
  488. package/dist/selection/createCollectionRowInteraction.d.ts +13 -0
  489. package/dist/selection/createCollectionRowInteraction.d.ts.map +1 -0
  490. package/dist/selection/createScrollIntoViewOnFocus.d.ts +31 -0
  491. package/dist/selection/createScrollIntoViewOnFocus.d.ts.map +1 -0
  492. package/dist/selection/createSelectableCollection.d.ts +69 -0
  493. package/dist/selection/createSelectableCollection.d.ts.map +1 -0
  494. package/dist/selection/createSelectableItem.d.ts +154 -0
  495. package/dist/selection/createSelectableItem.d.ts.map +1 -0
  496. package/dist/selection/createSelectableList.d.ts +43 -0
  497. package/dist/selection/createSelectableList.d.ts.map +1 -0
  498. package/dist/selection/createTypeSelect.d.ts.map +1 -1
  499. package/dist/selection/index.d.ts +9 -0
  500. package/dist/selection/index.d.ts.map +1 -1
  501. package/dist/selection/index.js +5 -0
  502. package/dist/selection/index.jsx +5 -0
  503. package/dist/selection/selectItem.d.ts +29 -0
  504. package/dist/selection/selectItem.d.ts.map +1 -0
  505. package/dist/selection/utils.d.ts +40 -0
  506. package/dist/selection/utils.d.ts.map +1 -0
  507. package/dist/separator/index.js +2 -0
  508. package/dist/separator/index.jsx +2 -0
  509. package/dist/slider/createSlider.d.ts.map +1 -1
  510. package/dist/slider/index.js +2 -0
  511. package/dist/slider/index.jsx +2 -0
  512. package/dist/spinbutton/createSpinButton.d.ts +41 -0
  513. package/dist/spinbutton/createSpinButton.d.ts.map +1 -0
  514. package/dist/spinbutton/index.d.ts +3 -0
  515. package/dist/spinbutton/index.d.ts.map +1 -0
  516. package/dist/spinbutton/index.js +2 -0
  517. package/dist/spinbutton/index.jsx +2 -0
  518. package/dist/spinbutton/intl.d.ts +5 -0
  519. package/dist/spinbutton/intl.d.ts.map +1 -0
  520. package/dist/ssr/index.d.ts +17 -0
  521. package/dist/ssr/index.d.ts.map +1 -1
  522. package/dist/ssr/index.js +299 -0
  523. package/dist/ssr/index.js.map +1 -0
  524. package/dist/ssr/index.jsx +292 -0
  525. package/dist/ssr/index.jsx.map +1 -0
  526. package/dist/steplist/index.js +2 -0
  527. package/dist/steplist/index.jsx +2 -0
  528. package/dist/switch/createSwitch.d.ts +4 -0
  529. package/dist/switch/createSwitch.d.ts.map +1 -1
  530. package/dist/switch/index.js +2 -0
  531. package/dist/switch/index.jsx +2 -0
  532. package/dist/table/createTable.d.ts.map +1 -1
  533. package/dist/table/createTableColumnHeader.d.ts.map +1 -1
  534. package/dist/table/createTableRow.d.ts +1 -1
  535. package/dist/table/createTableRow.d.ts.map +1 -1
  536. package/dist/table/createTableSelectAllCheckbox.d.ts.map +1 -1
  537. package/dist/table/createTableSelectionCheckbox.d.ts.map +1 -1
  538. package/dist/table/index.js +2 -0
  539. package/dist/table/index.jsx +2 -0
  540. package/dist/table/types.d.ts +35 -1
  541. package/dist/table/types.d.ts.map +1 -1
  542. package/dist/table/utils.d.ts +15 -0
  543. package/dist/table/utils.d.ts.map +1 -0
  544. package/dist/tabs/createTabs.d.ts +5 -3
  545. package/dist/tabs/createTabs.d.ts.map +1 -1
  546. package/dist/tabs/index.js +2 -0
  547. package/dist/tabs/index.jsx +2 -0
  548. package/dist/tag/createTag.d.ts +2 -0
  549. package/dist/tag/createTag.d.ts.map +1 -1
  550. package/dist/tag/createTagGroup.d.ts +7 -0
  551. package/dist/tag/createTagGroup.d.ts.map +1 -1
  552. package/dist/tag/index.js +2 -0
  553. package/dist/tag/index.jsx +2 -0
  554. package/dist/textfield/index.js +2 -0
  555. package/dist/textfield/index.jsx +2 -0
  556. package/dist/toast/createToast.d.ts.map +1 -1
  557. package/dist/toast/index.js +2 -0
  558. package/dist/toast/index.jsx +2 -0
  559. package/dist/toggle/createToggle.d.ts +4 -0
  560. package/dist/toggle/createToggle.d.ts.map +1 -1
  561. package/dist/toggle/index.js +3 -0
  562. package/dist/toggle/index.jsx +3 -0
  563. package/dist/toolbar/createToolbar.d.ts +1 -1
  564. package/dist/toolbar/createToolbar.d.ts.map +1 -1
  565. package/dist/toolbar/index.js +2 -0
  566. package/dist/toolbar/index.jsx +2 -0
  567. package/dist/tooltip/index.js +2 -0
  568. package/dist/tooltip/index.jsx +2 -0
  569. package/dist/tree/createTree.d.ts +5 -1
  570. package/dist/tree/createTree.d.ts.map +1 -1
  571. package/dist/tree/createTreeItem.d.ts +1 -1
  572. package/dist/tree/createTreeItem.d.ts.map +1 -1
  573. package/dist/tree/createTreeSelectionCheckbox.d.ts.map +1 -1
  574. package/dist/tree/index.js +2 -0
  575. package/dist/tree/index.jsx +2 -0
  576. package/dist/tree/types.d.ts +10 -0
  577. package/dist/tree/types.d.ts.map +1 -1
  578. package/dist/utils/animation.d.ts +60 -0
  579. package/dist/utils/animation.d.ts.map +1 -0
  580. package/dist/utils/dom.d.ts +49 -2
  581. package/dist/utils/dom.d.ts.map +1 -1
  582. package/dist/utils/index.d.ts +4 -1
  583. package/dist/utils/index.d.ts.map +1 -1
  584. package/dist/utils/index.js +6 -0
  585. package/dist/utils/index.jsx +6 -0
  586. package/dist/utils/keyboard.d.ts +17 -0
  587. package/dist/utils/keyboard.d.ts.map +1 -0
  588. package/dist/utils/mergeProps.d.ts.map +1 -1
  589. package/dist/utils/scrollIntoView.d.ts +30 -0
  590. package/dist/utils/scrollIntoView.d.ts.map +1 -0
  591. package/dist/visually-hidden/index.js +2 -0
  592. package/dist/visually-hidden/index.jsx +2 -0
  593. package/package.json +304 -3
  594. package/src/actiongroup/createActionGroup.ts +26 -109
  595. package/src/autocomplete/createAutocomplete.ts +202 -35
  596. package/src/breadcrumbs/createBreadcrumbs.ts +12 -4
  597. package/src/button/createToggleButtonGroup.ts +19 -14
  598. package/src/calendar/createCalendar.ts +5 -4
  599. package/src/calendar/createCalendarCell.ts +36 -5
  600. package/src/calendar/createCalendarGrid.ts +47 -12
  601. package/src/calendar/createCalendarMonthPicker.ts +105 -0
  602. package/src/calendar/createCalendarYearPicker.ts +144 -0
  603. package/src/calendar/createRangeCalendar.ts +27 -15
  604. package/src/calendar/createRangeCalendarCell.ts +17 -3
  605. package/src/calendar/index.ts +17 -0
  606. package/src/calendar/intl/index.ts +8 -0
  607. package/src/calendar/utils.ts +4 -0
  608. package/src/checkbox/createCheckbox.ts +10 -0
  609. package/src/checkbox/createCheckboxGroupItem.ts +12 -16
  610. package/src/color/createColorArea.ts +17 -10
  611. package/src/color/createColorField.ts +8 -1
  612. package/src/color/createColorSlider.ts +1 -2
  613. package/src/color/createColorSwatch.ts +4 -2
  614. package/src/color/createColorWheel.ts +0 -6
  615. package/src/color/intl/index.ts +316 -0
  616. package/src/combobox/createComboBox.ts +35 -4
  617. package/src/combobox/intl/generated-locales.ts +635 -0
  618. package/src/combobox/intl/index.ts +8 -2
  619. package/src/datepicker/createDateField.ts +228 -213
  620. package/src/datepicker/createDatePicker.ts +157 -146
  621. package/src/datepicker/createDatePickerGroup.ts +88 -82
  622. package/src/datepicker/createDateRangePicker.ts +230 -179
  623. package/src/datepicker/createDateSegment.ts +386 -384
  624. package/src/datepicker/createDisplayNames.ts +45 -0
  625. package/src/datepicker/createTimeField.ts +36 -129
  626. package/src/datepicker/index.ts +13 -14
  627. package/src/datepicker/intl.ts +633 -0
  628. package/src/dnd/DragManager.ts +693 -0
  629. package/src/dnd/DropTargetKeyboardNavigation.ts +337 -0
  630. package/src/dnd/createDrag.ts +31 -5
  631. package/src/dnd/createDraggableCollection.ts +33 -15
  632. package/src/dnd/createDraggableItem.ts +92 -5
  633. package/src/dnd/createDroppableCollection.ts +488 -371
  634. package/src/dnd/index.ts +11 -0
  635. package/src/dnd/intl/ar-AE.json +29 -0
  636. package/src/dnd/intl/bg-BG.json +29 -0
  637. package/src/dnd/intl/cs-CZ.json +29 -0
  638. package/src/dnd/intl/da-DK.json +29 -0
  639. package/src/dnd/intl/de-DE.json +29 -0
  640. package/src/dnd/intl/el-GR.json +29 -0
  641. package/src/dnd/intl/en-US.json +29 -0
  642. package/src/dnd/intl/es-ES.json +29 -0
  643. package/src/dnd/intl/et-EE.json +29 -0
  644. package/src/dnd/intl/fi-FI.json +29 -0
  645. package/src/dnd/intl/fr-FR.json +29 -0
  646. package/src/dnd/intl/he-IL.json +29 -0
  647. package/src/dnd/intl/hr-HR.json +29 -0
  648. package/src/dnd/intl/hu-HU.json +29 -0
  649. package/src/dnd/intl/index.ts +139 -0
  650. package/src/dnd/intl/it-IT.json +29 -0
  651. package/src/dnd/intl/ja-JP.json +29 -0
  652. package/src/dnd/intl/ko-KR.json +29 -0
  653. package/src/dnd/intl/lt-LT.json +29 -0
  654. package/src/dnd/intl/lv-LV.json +29 -0
  655. package/src/dnd/intl/nb-NO.json +29 -0
  656. package/src/dnd/intl/nl-NL.json +29 -0
  657. package/src/dnd/intl/pl-PL.json +29 -0
  658. package/src/dnd/intl/pt-BR.json +29 -0
  659. package/src/dnd/intl/pt-PT.json +29 -0
  660. package/src/dnd/intl/ro-RO.json +29 -0
  661. package/src/dnd/intl/ru-RU.json +29 -0
  662. package/src/dnd/intl/sk-SK.json +29 -0
  663. package/src/dnd/intl/sl-SI.json +29 -0
  664. package/src/dnd/intl/sr-SP.json +29 -0
  665. package/src/dnd/intl/sv-SE.json +29 -0
  666. package/src/dnd/intl/tr-TR.json +29 -0
  667. package/src/dnd/intl/uk-UA.json +29 -0
  668. package/src/dnd/intl/zh-CN.json +29 -0
  669. package/src/dnd/intl/zh-TW.json +29 -0
  670. package/src/dnd/utils.ts +63 -3
  671. package/src/focus/FocusScope.tsx +266 -24
  672. package/src/focus/index.ts +8 -0
  673. package/src/focus/virtualFocus.ts +55 -0
  674. package/src/form/createFormValidation.ts +8 -1
  675. package/src/gridlist/createGridList.ts +187 -48
  676. package/src/gridlist/createGridListItem.ts +87 -155
  677. package/src/gridlist/createGridListSection.ts +54 -0
  678. package/src/gridlist/index.ts +3 -0
  679. package/src/gridlist/types.ts +47 -0
  680. package/src/index.ts +51 -3
  681. package/src/interactions/FocusableProvider.tsx +11 -6
  682. package/src/interactions/PressEvent.ts +14 -0
  683. package/src/interactions/createFocus.ts +26 -21
  684. package/src/interactions/createFocusWithin.ts +23 -24
  685. package/src/interactions/createInteractionModality.ts +26 -15
  686. package/src/interactions/createKeyboard.ts +10 -0
  687. package/src/interactions/createPress.ts +29 -6
  688. package/src/label/createLabels.ts +7 -4
  689. package/src/listbox/createListBox.ts +203 -10
  690. package/src/listbox/createOption.ts +84 -74
  691. package/src/menu/createMenu.ts +93 -16
  692. package/src/menu/createMenuItem.ts +253 -41
  693. package/src/numberfield/createNumberField.ts +82 -14
  694. package/src/popover/calculatePosition.ts +19 -7
  695. package/src/popover/createOverlayPosition.ts +9 -0
  696. package/src/radio/createRadio.ts +19 -2
  697. package/src/select/createSelect.ts +41 -4
  698. package/src/selection/DOMLayoutDelegate.ts +102 -0
  699. package/src/selection/ListKeyboardDelegate.ts +398 -0
  700. package/src/selection/constants.ts +16 -0
  701. package/src/selection/createCollectionRowInteraction.ts +209 -0
  702. package/src/selection/createScrollIntoViewOnFocus.ts +65 -0
  703. package/src/selection/createSelectableCollection.ts +645 -0
  704. package/src/selection/createSelectableItem.ts +512 -0
  705. package/src/selection/createSelectableList.ts +93 -0
  706. package/src/selection/createTypeSelect.ts +112 -51
  707. package/src/selection/index.ts +31 -0
  708. package/src/selection/selectItem.ts +80 -0
  709. package/src/selection/utils.ts +82 -0
  710. package/src/slider/createSlider.ts +48 -1
  711. package/src/spinbutton/createSpinButton.ts +163 -0
  712. package/src/spinbutton/index.ts +10 -0
  713. package/src/spinbutton/intl.ts +115 -0
  714. package/src/ssr/index.tsx +31 -0
  715. package/src/switch/createSwitch.ts +10 -0
  716. package/src/table/createTable.ts +82 -27
  717. package/src/table/createTableColumnHeader.ts +10 -0
  718. package/src/table/createTableRow.ts +208 -203
  719. package/src/table/createTableSelectAllCheckbox.ts +3 -4
  720. package/src/table/createTableSelectionCheckbox.ts +24 -1
  721. package/src/table/types.ts +37 -1
  722. package/src/table/utils.ts +41 -0
  723. package/src/tabs/createTabs.ts +95 -24
  724. package/src/tag/createTag.ts +30 -36
  725. package/src/tag/createTagGroup.ts +92 -0
  726. package/src/toast/createToast.ts +1 -0
  727. package/src/toggle/createToggle.ts +20 -0
  728. package/src/toolbar/createToolbar.ts +43 -94
  729. package/src/tree/createTree.ts +165 -52
  730. package/src/tree/createTreeItem.ts +105 -120
  731. package/src/tree/createTreeSelectionCheckbox.ts +14 -1
  732. package/src/tree/types.ts +10 -0
  733. package/src/utils/animation.ts +243 -0
  734. package/src/utils/dom.ts +216 -25
  735. package/src/utils/index.ts +10 -0
  736. package/src/utils/keyboard.ts +25 -0
  737. package/src/utils/mergeProps.ts +8 -1
  738. package/src/utils/scrollIntoView.ts +181 -0
  739. package/dist/datepicker/createTimeSegment.d.ts +0 -29
  740. package/dist/datepicker/createTimeSegment.d.ts.map +0 -1
  741. package/dist/index.js.map +0 -1
  742. package/dist/index.jsx.map +0 -1
  743. package/src/datepicker/createTimeSegment.ts +0 -352
@@ -0,0 +1,693 @@
1
+ /**
2
+ * Global keyboard/virtual drag session manager.
3
+ *
4
+ * Faithful port of @react-aria/dnd `DragManager` (react-aria 3.50). A single
5
+ * module-level singleton owns the active drag session: it registers drop targets
6
+ * and drop items across every collection on the page, drives Tab/Shift+Tab
7
+ * cycling between them, Enter-to-drop / Escape-to-cancel, and the aria-live
8
+ * announcements — providing the accessible keyboard alternative to native
9
+ * pointer drag and drop.
10
+ *
11
+ * The only framework-specific adaptation from upstream is the reactive
12
+ * subscription: React's `useDragSession` (useState + a subscription Set) becomes
13
+ * a module-level Solid signal exposed through `createDragSession()`. Element refs
14
+ * (upstream `RefObject.current`) become Solid element accessors (`() => el`).
15
+ */
16
+
17
+ import { createSignal, type Accessor } from "solid-js";
18
+
19
+ import { announce } from "../live-announcer/announce";
20
+ import { ariaHideOutside } from "../overlays/ariaHideOutside";
21
+ import type {
22
+ DragEndEvent,
23
+ DragItem,
24
+ DropActivateEvent,
25
+ DropEnterEvent,
26
+ DropEvent,
27
+ DropExitEvent,
28
+ DropItem,
29
+ DropOperation,
30
+ DropTarget as DroppableCollectionTarget,
31
+ } from "@proyecto-viviana/solid-stately";
32
+ import { getActiveElement, getEventTarget, nodeContains } from "../utils/dom";
33
+ import { getDragModality, getTypes } from "./utils";
34
+ import { isVirtualClick, isVirtualPointerEvent } from "../utils/events";
35
+ import type { LocalizedStringFormatter } from "@internationalized/string";
36
+
37
+ /** A Solid element accessor, replacing upstream's `RefObject<T>.current`. */
38
+ type ElementAccessor = () => HTMLElement | null;
39
+
40
+ let dropTargets = new Map<Element, DropTarget>();
41
+ let dropItems = new Map<Element, DroppableItem>();
42
+ let dragSession: DragSession | null = null;
43
+
44
+ // Reactive mirror of `dragSession` for `createDragSession()`. Solid's signal is
45
+ // the notification mechanism, replacing upstream's `subscriptions` Set.
46
+ const [trackedDragSession, setTrackedDragSession] = createSignal<DragSession | null>(null);
47
+
48
+ interface DropTarget {
49
+ element: HTMLElement;
50
+ preventFocusOnDrop?: boolean;
51
+ getDropOperation?: (types: Set<string>, allowedOperations: DropOperation[]) => DropOperation;
52
+ onDropEnter?: (e: DropEnterEvent, dragTarget: DragTarget) => void;
53
+ onDropExit?: (e: DropExitEvent) => void;
54
+ onDropTargetEnter?: (target: DroppableCollectionTarget | null) => void;
55
+ onDropActivate?: (e: DropActivateEvent, target: DroppableCollectionTarget | null) => void;
56
+ onDrop?: (e: DropEvent, target: DroppableCollectionTarget | null) => void;
57
+ onKeyDown?: (e: KeyboardEvent, dragTarget: DragTarget) => void;
58
+ activateButtonRef?: ElementAccessor;
59
+ }
60
+
61
+ export function registerDropTarget(target: DropTarget): () => void {
62
+ dropTargets.set(target.element, target);
63
+ dragSession?.updateValidDropTargets();
64
+ return (): void => {
65
+ dropTargets.delete(target.element);
66
+ dragSession?.updateValidDropTargets();
67
+ };
68
+ }
69
+
70
+ interface DroppableItem {
71
+ element: HTMLElement;
72
+ target: DroppableCollectionTarget;
73
+ getDropOperation?: (types: Set<string>, allowedOperations: DropOperation[]) => DropOperation;
74
+ activateButtonRef?: ElementAccessor;
75
+ }
76
+
77
+ export function registerDropItem(item: DroppableItem): () => void {
78
+ dropItems.set(item.element, item);
79
+ return (): void => {
80
+ dropItems.delete(item.element);
81
+ };
82
+ }
83
+
84
+ interface DragTarget {
85
+ element: HTMLElement;
86
+ items: DragItem[];
87
+ allowedDropOperations: DropOperation[];
88
+ onDragEnd?: (e: DragEndEvent) => void;
89
+ }
90
+
91
+ export function beginDragging(target: DragTarget, stringFormatter: LocalizedStringFormatter): void {
92
+ if (dragSession) {
93
+ throw new Error("Cannot begin dragging while already dragging");
94
+ }
95
+
96
+ dragSession = new DragSession(target, stringFormatter);
97
+ setTrackedDragSession(dragSession);
98
+ requestAnimationFrame(() => {
99
+ if (dragSession) {
100
+ dragSession.setup();
101
+ if (getDragModality() === "keyboard") {
102
+ dragSession.next();
103
+ }
104
+ }
105
+ });
106
+ }
107
+
108
+ /** Reactive accessor for the active drag session, or null. */
109
+ export function createDragSession(): Accessor<DragSession | null> {
110
+ return trackedDragSession;
111
+ }
112
+
113
+ /** @private */
114
+ export function isVirtualDragging(): boolean {
115
+ return !!dragSession;
116
+ }
117
+
118
+ function endDragging() {
119
+ dragSession = null;
120
+ setTrackedDragSession(null);
121
+ }
122
+
123
+ export function isValidDropTarget(element: Element): boolean {
124
+ for (let target of dropTargets.keys()) {
125
+ if (nodeContains(target, element)) {
126
+ return true;
127
+ }
128
+ }
129
+
130
+ return false;
131
+ }
132
+
133
+ const CANCELED_EVENTS = [
134
+ "pointerdown",
135
+ "pointermove",
136
+ "pointerenter",
137
+ "pointerleave",
138
+ "pointerover",
139
+ "pointerout",
140
+ "pointerup",
141
+ "mousedown",
142
+ "mousemove",
143
+ "mouseenter",
144
+ "mouseleave",
145
+ "mouseover",
146
+ "mouseout",
147
+ "mouseup",
148
+ "touchstart",
149
+ "touchmove",
150
+ "touchend",
151
+ "focusin",
152
+ "focusout",
153
+ ];
154
+
155
+ const CLICK_EVENTS = ["pointerup", "mouseup", "touchend"];
156
+
157
+ const MESSAGES = {
158
+ keyboard: "dragStartedKeyboard",
159
+ touch: "dragStartedTouch",
160
+ virtual: "dragStartedVirtual",
161
+ };
162
+
163
+ class DragSession {
164
+ dragTarget: DragTarget;
165
+ validDropTargets: DropTarget[] = [];
166
+ currentDropTarget: DropTarget | null = null;
167
+ currentDropItem: DroppableItem | null = null;
168
+ dropOperation: DropOperation | null = null;
169
+ private mutationObserver: MutationObserver | null = null;
170
+ private restoreAriaHidden: (() => void) | null = null;
171
+ private stringFormatter: LocalizedStringFormatter;
172
+ private isVirtualClick: boolean = false;
173
+ private initialFocused: boolean;
174
+
175
+ constructor(target: DragTarget, stringFormatter: LocalizedStringFormatter) {
176
+ this.dragTarget = target;
177
+ this.stringFormatter = stringFormatter;
178
+
179
+ this.onKeyDown = this.onKeyDown.bind(this);
180
+ this.onKeyUp = this.onKeyUp.bind(this);
181
+ this.onFocus = this.onFocus.bind(this);
182
+ this.onBlur = this.onBlur.bind(this);
183
+ this.onClick = this.onClick.bind(this);
184
+ this.onPointerDown = this.onPointerDown.bind(this);
185
+ this.cancelEvent = this.cancelEvent.bind(this);
186
+ this.initialFocused = false;
187
+ }
188
+
189
+ setup(): void {
190
+ document.addEventListener("keydown", this.onKeyDown, true);
191
+ document.addEventListener("keyup", this.onKeyUp, true);
192
+ window.addEventListener("focus", this.onFocus, true);
193
+ window.addEventListener("blur", this.onBlur, true);
194
+ document.addEventListener("click", this.onClick, true);
195
+ document.addEventListener("pointerdown", this.onPointerDown, true);
196
+
197
+ for (let event of CANCELED_EVENTS) {
198
+ document.addEventListener(event, this.cancelEvent, true);
199
+ }
200
+
201
+ this.mutationObserver = new MutationObserver(() => this.updateValidDropTargets());
202
+ this.updateValidDropTargets();
203
+
204
+ announce(this.stringFormatter.format(MESSAGES[getDragModality() as keyof typeof MESSAGES]));
205
+ }
206
+
207
+ teardown(): void {
208
+ document.removeEventListener("keydown", this.onKeyDown, true);
209
+ document.removeEventListener("keyup", this.onKeyUp, true);
210
+ window.removeEventListener("focus", this.onFocus, true);
211
+ window.removeEventListener("blur", this.onBlur, true);
212
+ document.removeEventListener("click", this.onClick, true);
213
+ document.removeEventListener("pointerdown", this.onPointerDown, true);
214
+
215
+ for (let event of CANCELED_EVENTS) {
216
+ document.removeEventListener(event, this.cancelEvent, true);
217
+ }
218
+
219
+ this.mutationObserver?.disconnect();
220
+ this.restoreAriaHidden?.();
221
+ }
222
+
223
+ onKeyDown(e: KeyboardEvent): void {
224
+ this.cancelEvent(e);
225
+
226
+ if (e.key === "Escape") {
227
+ this.cancel();
228
+ return;
229
+ }
230
+
231
+ if (e.key === "Tab" && !(e.metaKey || e.altKey || e.ctrlKey)) {
232
+ if (e.shiftKey) {
233
+ this.previous();
234
+ } else {
235
+ this.next();
236
+ }
237
+ }
238
+
239
+ if (typeof this.currentDropTarget?.onKeyDown === "function") {
240
+ this.currentDropTarget.onKeyDown(e, this.dragTarget);
241
+ }
242
+ }
243
+
244
+ onKeyUp(e: KeyboardEvent): void {
245
+ this.cancelEvent(e);
246
+
247
+ if (e.key === "Enter") {
248
+ if (
249
+ e.altKey ||
250
+ nodeContains(this.getCurrentActivateButton(), getEventTarget<Node>(e))
251
+ ) {
252
+ this.activate(this.currentDropTarget, this.currentDropItem);
253
+ } else {
254
+ this.drop();
255
+ }
256
+ }
257
+ }
258
+
259
+ getCurrentActivateButton(): HTMLElement | null {
260
+ return (
261
+ this.currentDropItem?.activateButtonRef?.() ??
262
+ this.currentDropTarget?.activateButtonRef?.() ??
263
+ null
264
+ );
265
+ }
266
+
267
+ onFocus(e: FocusEvent): void {
268
+ let activateButton = this.getCurrentActivateButton();
269
+ let eventTarget = getEventTarget<HTMLElement>(e);
270
+ if (eventTarget === activateButton) {
271
+ // TODO: canceling this breaks the focus ring. Revisit when we support tabbing.
272
+ this.cancelEvent(e);
273
+ return;
274
+ }
275
+
276
+ // Prevent focus events, except to the original drag target.
277
+ if (eventTarget !== this.dragTarget.element) {
278
+ this.cancelEvent(e);
279
+ }
280
+
281
+ // Ignore focus events on the window/document (JSDOM). Will be handled in onBlur, below.
282
+ if (!(eventTarget instanceof HTMLElement) || eventTarget === this.dragTarget.element) {
283
+ return;
284
+ }
285
+
286
+ let dropTarget =
287
+ this.validDropTargets.find((target) => target.element === eventTarget) ||
288
+ this.validDropTargets.find((target) => nodeContains(target.element, eventTarget));
289
+
290
+ if (!dropTarget) {
291
+ if (this.currentDropTarget) {
292
+ this.currentDropTarget.element.focus();
293
+ } else {
294
+ this.dragTarget.element.focus();
295
+ }
296
+ return;
297
+ }
298
+
299
+ let item = dropItems.get(eventTarget);
300
+ if (dropTarget) {
301
+ this.setCurrentDropTarget(dropTarget, item);
302
+ }
303
+ }
304
+
305
+ onBlur(e: FocusEvent): void {
306
+ let activateButton = this.getCurrentActivateButton();
307
+ // Guard activateButton non-null so this doesn't trip on the case where
308
+ // there's no activate button and the focused element loses focus to nothing
309
+ // (browsers and jsdom 26+ both set relatedTarget to null in that case).
310
+ if (activateButton && e.relatedTarget === activateButton) {
311
+ this.cancelEvent(e);
312
+ return;
313
+ }
314
+
315
+ if (getEventTarget(e) !== this.dragTarget.element) {
316
+ this.cancelEvent(e);
317
+ }
318
+
319
+ // If nothing is gaining focus, or e.relatedTarget is the window/document (JSDOM),
320
+ // restore focus back to the current drop target if any, or the original drag target.
321
+ if (!e.relatedTarget || !(e.relatedTarget instanceof HTMLElement)) {
322
+ if (this.currentDropTarget) {
323
+ this.currentDropTarget.element.focus();
324
+ } else {
325
+ this.dragTarget.element.focus();
326
+ }
327
+ }
328
+ }
329
+
330
+ onClick(e: MouseEvent): void {
331
+ this.cancelEvent(e);
332
+ if (isVirtualClick(e) || this.isVirtualClick) {
333
+ let dropElements = dropItems.values();
334
+ let eventTarget = getEventTarget<HTMLElement>(e);
335
+ let item = [...dropElements].find(
336
+ (item) =>
337
+ item.element === eventTarget ||
338
+ nodeContains(item.activateButtonRef?.() ?? null, eventTarget),
339
+ );
340
+ let dropTarget = this.validDropTargets.find((target) =>
341
+ nodeContains(target.element, eventTarget),
342
+ );
343
+ let activateButton = item?.activateButtonRef?.() ?? dropTarget?.activateButtonRef?.() ?? null;
344
+ if (nodeContains(activateButton, eventTarget) && dropTarget) {
345
+ this.activate(dropTarget, item);
346
+ return;
347
+ }
348
+
349
+ if (getEventTarget(e) === this.dragTarget.element) {
350
+ this.cancel();
351
+ return;
352
+ }
353
+
354
+ if (dropTarget) {
355
+ this.setCurrentDropTarget(dropTarget, item);
356
+ this.drop(item);
357
+ }
358
+ }
359
+ }
360
+
361
+ onPointerDown(e: PointerEvent): void {
362
+ // Android Talkback double tap has e.detail = 1 for onClick. Detect the virtual click in onPointerDown before onClick fires
363
+ // so we can properly perform cancel and drop operations.
364
+ this.cancelEvent(e);
365
+ this.isVirtualClick = isVirtualPointerEvent(e);
366
+ }
367
+
368
+ cancelEvent(e: Event): void {
369
+ // Allow focusin and focusout on the drag target so focus ring works properly.
370
+ let eventTarget = getEventTarget(e);
371
+ if (
372
+ (e.type === "focusin" || e.type === "focusout") &&
373
+ (eventTarget === this.dragTarget?.element || eventTarget === this.getCurrentActivateButton())
374
+ ) {
375
+ return;
376
+ }
377
+
378
+ // Allow default for events that might cancel a click event
379
+ if (!CLICK_EVENTS.includes(e.type)) {
380
+ e.preventDefault();
381
+ }
382
+
383
+ e.stopPropagation();
384
+ e.stopImmediatePropagation();
385
+ }
386
+
387
+ updateValidDropTargets(): void {
388
+ if (!this.mutationObserver) {
389
+ return;
390
+ }
391
+
392
+ this.mutationObserver.disconnect();
393
+ if (this.restoreAriaHidden) {
394
+ this.restoreAriaHidden();
395
+ }
396
+
397
+ this.validDropTargets = findValidDropTargets(this.dragTarget);
398
+
399
+ // Shuffle drop target order based on starting drag target.
400
+ if (this.validDropTargets.length > 0) {
401
+ let nearestIndex = this.findNearestDropTarget();
402
+ this.validDropTargets = [
403
+ ...this.validDropTargets.slice(nearestIndex),
404
+ ...this.validDropTargets.slice(0, nearestIndex),
405
+ ];
406
+ }
407
+
408
+ if (this.currentDropTarget && !this.validDropTargets.includes(this.currentDropTarget)) {
409
+ this.setCurrentDropTarget(this.validDropTargets[0]);
410
+ }
411
+
412
+ // Find valid drop items within collections
413
+ let types = getTypes(this.dragTarget.items);
414
+ let validDropItems = [...dropItems.values()].filter((item) => {
415
+ if (typeof item.getDropOperation === "function") {
416
+ return item.getDropOperation(types, this.dragTarget.allowedDropOperations) !== "cancel";
417
+ }
418
+
419
+ return true;
420
+ });
421
+
422
+ // Filter out drop targets that contain valid items. We don't want to stop hiding elements
423
+ // other than the drop items that exist inside the collection.
424
+ let visibleDropTargets = this.validDropTargets.filter(
425
+ (target) => !validDropItems.some((item) => nodeContains(target.element, item.element)),
426
+ );
427
+
428
+ this.restoreAriaHidden = ariaHideOutside(
429
+ [
430
+ this.dragTarget.element,
431
+ ...validDropItems.flatMap((item) => {
432
+ let button = item.activateButtonRef?.();
433
+ return button ? [item.element, button] : [item.element];
434
+ }),
435
+ ...visibleDropTargets.flatMap((target) => {
436
+ let button = target.activateButtonRef?.();
437
+ return button ? [target.element, button] : [target.element];
438
+ }),
439
+ ],
440
+ { shouldUseInert: true },
441
+ );
442
+
443
+ this.mutationObserver.observe(document.body, {
444
+ subtree: true,
445
+ attributes: true,
446
+ attributeFilter: ["aria-hidden", "inert"],
447
+ });
448
+ }
449
+
450
+ next(): void {
451
+ // TODO: Allow tabbing to the activate button. Revisit once we fix the focus ring.
452
+ // For now, the activate button is reachable by screen readers and ArrowLeft/ArrowRight
453
+ // is usable specifically by Tree. Will need tabbing for other components.
454
+
455
+ if (!this.currentDropTarget) {
456
+ this.setCurrentDropTarget(this.validDropTargets[0]);
457
+ return;
458
+ }
459
+
460
+ let index = this.validDropTargets.indexOf(this.currentDropTarget);
461
+ if (index < 0) {
462
+ this.setCurrentDropTarget(this.validDropTargets[0]);
463
+ return;
464
+ }
465
+
466
+ // If we've reached the end of the valid drop targets, cycle back to the original drag target.
467
+ // This lets the user cancel the drag in case they don't have an Escape key (e.g. iPad keyboard case).
468
+ if (index === this.validDropTargets.length - 1) {
469
+ if (!this.dragTarget.element.closest('[aria-hidden="true"], [inert]')) {
470
+ this.setCurrentDropTarget(null);
471
+ this.dragTarget.element.focus();
472
+ } else {
473
+ this.setCurrentDropTarget(this.validDropTargets[0]);
474
+ }
475
+ } else {
476
+ this.setCurrentDropTarget(this.validDropTargets[index + 1]);
477
+ }
478
+ }
479
+
480
+ previous(): void {
481
+ if (!this.currentDropTarget) {
482
+ this.setCurrentDropTarget(this.validDropTargets[this.validDropTargets.length - 1]);
483
+ return;
484
+ }
485
+
486
+ let index = this.validDropTargets.indexOf(this.currentDropTarget);
487
+ if (index < 0) {
488
+ this.setCurrentDropTarget(this.validDropTargets[this.validDropTargets.length - 1]);
489
+ return;
490
+ }
491
+
492
+ // If we've reached the start of the valid drop targets, cycle back to the original drag target.
493
+ // This lets the user cancel the drag in case they don't have an Escape key (e.g. iPad keyboard case).
494
+ if (index === 0) {
495
+ if (!this.dragTarget.element.closest('[aria-hidden="true"], [inert]')) {
496
+ this.setCurrentDropTarget(null);
497
+ this.dragTarget.element.focus();
498
+ } else {
499
+ this.setCurrentDropTarget(this.validDropTargets[this.validDropTargets.length - 1]);
500
+ }
501
+ } else {
502
+ this.setCurrentDropTarget(this.validDropTargets[index - 1]);
503
+ }
504
+ }
505
+
506
+ findNearestDropTarget(): number {
507
+ let dragTargetRect = this.dragTarget.element.getBoundingClientRect();
508
+
509
+ let minDistance = Infinity;
510
+ let nearest = -1;
511
+ for (let i = 0; i < this.validDropTargets.length; i++) {
512
+ let dropTarget = this.validDropTargets[i];
513
+ let rect = dropTarget.element.getBoundingClientRect();
514
+ let dx = rect.left - dragTargetRect.left;
515
+ let dy = rect.top - dragTargetRect.top;
516
+ let dist = dx * dx + dy * dy;
517
+ if (dist < minDistance) {
518
+ minDistance = dist;
519
+ nearest = i;
520
+ }
521
+ }
522
+
523
+ return nearest;
524
+ }
525
+
526
+ setCurrentDropTarget(dropTarget: DropTarget | null, item?: DroppableItem): void {
527
+ if (dropTarget !== this.currentDropTarget) {
528
+ if (this.currentDropTarget && typeof this.currentDropTarget.onDropExit === "function") {
529
+ let rect = this.currentDropTarget.element.getBoundingClientRect();
530
+ this.currentDropTarget.onDropExit({
531
+ type: "dropexit",
532
+ x: rect.left + rect.width / 2,
533
+ y: rect.top + rect.height / 2,
534
+ });
535
+ }
536
+
537
+ this.currentDropTarget = dropTarget;
538
+
539
+ if (dropTarget) {
540
+ if (typeof dropTarget.onDropEnter === "function") {
541
+ let rect = dropTarget.element.getBoundingClientRect();
542
+ dropTarget.onDropEnter(
543
+ {
544
+ type: "dropenter",
545
+ x: rect.left + rect.width / 2,
546
+ y: rect.top + rect.height / 2,
547
+ },
548
+ this.dragTarget,
549
+ );
550
+ }
551
+
552
+ if (!item) {
553
+ dropTarget?.element.focus();
554
+ }
555
+ }
556
+ }
557
+
558
+ if (item != null && item !== this.currentDropItem) {
559
+ if (this.currentDropTarget && typeof this.currentDropTarget.onDropTargetEnter === "function") {
560
+ this.currentDropTarget.onDropTargetEnter(item.target);
561
+ }
562
+ item.element.focus();
563
+ this.currentDropItem = item;
564
+
565
+ // Announce first drop target after drag start announcement finishes.
566
+ // Otherwise, it will never get announced because drag start announcement is assertive.
567
+ if (!this.initialFocused) {
568
+ let label = item?.element.getAttribute("aria-label");
569
+ if (label) {
570
+ announce(label, "polite");
571
+ }
572
+ this.initialFocused = true;
573
+ }
574
+ }
575
+ }
576
+
577
+ end(): void {
578
+ this.teardown();
579
+ endDragging();
580
+
581
+ if (typeof this.dragTarget.onDragEnd === "function") {
582
+ let target =
583
+ this.currentDropTarget && this.dropOperation !== "cancel"
584
+ ? this.currentDropTarget
585
+ : this.dragTarget;
586
+ let rect = target.element.getBoundingClientRect();
587
+ this.dragTarget.onDragEnd({
588
+ type: "dragend",
589
+ x: rect.x + rect.width / 2,
590
+ y: rect.y + rect.height / 2,
591
+ dropOperation: this.dropOperation || "cancel",
592
+ });
593
+ }
594
+
595
+ if (this.currentDropTarget && !this.currentDropTarget.preventFocusOnDrop) {
596
+ // Re-trigger focus event on active element, since it will not have received it during dragging (see cancelEvent).
597
+ // This corrects state such as whether focus ring should appear.
598
+ // useDroppableCollection handles this itself, so this is only for standalone drop zones.
599
+ getActiveElement()?.dispatchEvent(new FocusEvent("focusin", { bubbles: true }));
600
+ }
601
+
602
+ this.setCurrentDropTarget(null);
603
+ }
604
+
605
+ cancel(): void {
606
+ this.setCurrentDropTarget(null);
607
+ this.end();
608
+ if (!this.dragTarget.element.closest('[aria-hidden="true"], [inert]')) {
609
+ this.dragTarget.element.focus();
610
+ }
611
+
612
+ // Re-trigger focus event on active element, since it will not have received it during dragging (see cancelEvent).
613
+ getActiveElement()?.dispatchEvent(new FocusEvent("focusin", { bubbles: true }));
614
+
615
+ announce(this.stringFormatter.format("dropCanceled"));
616
+ }
617
+
618
+ drop(item?: DroppableItem): void {
619
+ if (!this.currentDropTarget) {
620
+ this.cancel();
621
+ return;
622
+ }
623
+
624
+ if (typeof item?.getDropOperation === "function") {
625
+ let types = getTypes(this.dragTarget.items);
626
+ this.dropOperation = item.getDropOperation(types, this.dragTarget.allowedDropOperations);
627
+ } else if (typeof this.currentDropTarget.getDropOperation === "function") {
628
+ let types = getTypes(this.dragTarget.items);
629
+ this.dropOperation = this.currentDropTarget.getDropOperation(
630
+ types,
631
+ this.dragTarget.allowedDropOperations,
632
+ );
633
+ } else {
634
+ // TODO: show menu ??
635
+ this.dropOperation = this.dragTarget.allowedDropOperations[0];
636
+ }
637
+
638
+ if (typeof this.currentDropTarget.onDrop === "function") {
639
+ let items: DropItem[] = this.dragTarget.items.map((item) => ({
640
+ kind: "text",
641
+ types: new Set(Object.keys(item)),
642
+ getText: (type: string) => Promise.resolve(item[type]),
643
+ }));
644
+
645
+ let rect = this.currentDropTarget.element.getBoundingClientRect();
646
+ this.currentDropTarget.onDrop(
647
+ {
648
+ type: "drop",
649
+ x: rect.left + rect.width / 2,
650
+ y: rect.top + rect.height / 2,
651
+ items,
652
+ dropOperation: this.dropOperation,
653
+ },
654
+ item?.target ?? null,
655
+ );
656
+ }
657
+
658
+ this.end();
659
+ announce(this.stringFormatter.format("dropComplete"));
660
+ }
661
+
662
+ activate(dropTarget: DropTarget | null, dropItem: DroppableItem | null | undefined): void {
663
+ if (dropTarget && typeof dropTarget.onDropActivate === "function") {
664
+ let target = dropItem?.target ?? null;
665
+ let rect = dropTarget.element.getBoundingClientRect();
666
+ dropTarget.onDropActivate(
667
+ {
668
+ type: "dropactivate",
669
+ x: rect.left + rect.width / 2,
670
+ y: rect.top + rect.height / 2,
671
+ },
672
+ target,
673
+ );
674
+ }
675
+ }
676
+ }
677
+
678
+ function findValidDropTargets(options: DragTarget): DropTarget[] {
679
+ let types = getTypes(options.items);
680
+ return [...dropTargets.values()].filter((target) => {
681
+ if (target.element.closest('[aria-hidden="true"], [inert]')) {
682
+ return false;
683
+ }
684
+
685
+ if (typeof target.getDropOperation === "function") {
686
+ return target.getDropOperation(types, options.allowedDropOperations) !== "cancel";
687
+ }
688
+
689
+ return true;
690
+ });
691
+ }
692
+
693
+ export type { DragTarget, DropTarget, DroppableItem, DragSession };