@proyecto-viviana/solidaria 0.4.2 → 0.6.0-rc.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 (1377) hide show
  1. package/LICENSE-APACHE-2.0 +201 -0
  2. package/NOTICE +91 -0
  3. package/dist/_chunk/DragManager.js +71 -25
  4. package/dist/_chunk/DragManager.js.map +1 -1
  5. package/dist/_chunk/DragManager.jsx +71 -25
  6. package/dist/_chunk/DragManager.jsx.map +1 -1
  7. package/dist/_chunk/FocusScope.js +281 -66
  8. package/dist/_chunk/FocusScope.js.map +1 -1
  9. package/dist/_chunk/FocusScope.jsx +274 -55
  10. package/dist/_chunk/FocusScope.jsx.map +1 -1
  11. package/dist/_chunk/actiongroup.js +43 -19
  12. package/dist/_chunk/actiongroup.js.map +1 -1
  13. package/dist/_chunk/actiongroup.jsx +43 -19
  14. package/dist/_chunk/actiongroup.jsx.map +1 -1
  15. package/dist/_chunk/announce.js +19 -6
  16. package/dist/_chunk/announce.js.map +1 -1
  17. package/dist/_chunk/announce.jsx +19 -6
  18. package/dist/_chunk/announce.jsx.map +1 -1
  19. package/dist/_chunk/ariaHideOutside.js +212 -10
  20. package/dist/_chunk/ariaHideOutside.js.map +1 -1
  21. package/dist/_chunk/ariaHideOutside.jsx +212 -10
  22. package/dist/_chunk/ariaHideOutside.jsx.map +1 -1
  23. package/dist/_chunk/autocomplete.js +26 -7
  24. package/dist/_chunk/autocomplete.js.map +1 -1
  25. package/dist/_chunk/autocomplete.jsx +26 -7
  26. package/dist/_chunk/autocomplete.jsx.map +1 -1
  27. package/dist/_chunk/breadcrumbs.js +17 -2
  28. package/dist/_chunk/breadcrumbs.js.map +1 -1
  29. package/dist/_chunk/breadcrumbs.jsx +17 -2
  30. package/dist/_chunk/breadcrumbs.jsx.map +1 -1
  31. package/dist/_chunk/button.js +53 -20
  32. package/dist/_chunk/button.js.map +1 -1
  33. package/dist/_chunk/button.jsx +53 -20
  34. package/dist/_chunk/button.jsx.map +1 -1
  35. package/dist/_chunk/calendar.js +341 -56
  36. package/dist/_chunk/calendar.js.map +1 -1
  37. package/dist/_chunk/calendar.jsx +341 -56
  38. package/dist/_chunk/calendar.jsx.map +1 -1
  39. package/dist/_chunk/checkbox.js +69 -26
  40. package/dist/_chunk/checkbox.js.map +1 -1
  41. package/dist/_chunk/checkbox.jsx +69 -26
  42. package/dist/_chunk/checkbox.jsx.map +1 -1
  43. package/dist/_chunk/color.js +307 -48
  44. package/dist/_chunk/color.js.map +1 -1
  45. package/dist/_chunk/color.jsx +307 -48
  46. package/dist/_chunk/color.jsx.map +1 -1
  47. package/dist/_chunk/combobox.js +193 -103
  48. package/dist/_chunk/combobox.js.map +1 -1
  49. package/dist/_chunk/combobox.jsx +193 -103
  50. package/dist/_chunk/combobox.jsx.map +1 -1
  51. package/dist/_chunk/constants.js +12 -0
  52. package/dist/_chunk/constants.js.map +1 -1
  53. package/dist/_chunk/constants.jsx +12 -0
  54. package/dist/_chunk/constants.jsx.map +1 -1
  55. package/dist/_chunk/createCollator.js +12 -0
  56. package/dist/_chunk/createCollator.js.map +1 -1
  57. package/dist/_chunk/createCollator.jsx +12 -0
  58. package/dist/_chunk/createCollator.jsx.map +1 -1
  59. package/dist/_chunk/createCollectionRowInteraction.js +50 -13
  60. package/dist/_chunk/createCollectionRowInteraction.js.map +1 -1
  61. package/dist/_chunk/createCollectionRowInteraction.jsx +50 -13
  62. package/dist/_chunk/createCollectionRowInteraction.jsx.map +1 -1
  63. package/dist/_chunk/createField.js +35 -25
  64. package/dist/_chunk/createField.js.map +1 -1
  65. package/dist/_chunk/createField.jsx +35 -25
  66. package/dist/_chunk/createField.jsx.map +1 -1
  67. package/dist/_chunk/createFocus.js +18 -5
  68. package/dist/_chunk/createFocus.js.map +1 -1
  69. package/dist/_chunk/createFocus.jsx +18 -5
  70. package/dist/_chunk/createFocus.jsx.map +1 -1
  71. package/dist/_chunk/createFocusRing.js +16 -7
  72. package/dist/_chunk/createFocusRing.js.map +1 -1
  73. package/dist/_chunk/createFocusRing.jsx +16 -7
  74. package/dist/_chunk/createFocusRing.jsx.map +1 -1
  75. package/dist/_chunk/createFocusWithin.js +16 -4
  76. package/dist/_chunk/createFocusWithin.js.map +1 -1
  77. package/dist/_chunk/createFocusWithin.jsx +16 -4
  78. package/dist/_chunk/createFocusWithin.jsx.map +1 -1
  79. package/dist/_chunk/createFocusable.js +39 -53
  80. package/dist/_chunk/createFocusable.js.map +1 -1
  81. package/dist/_chunk/createFocusable.jsx +39 -53
  82. package/dist/_chunk/createFocusable.jsx.map +1 -1
  83. package/dist/_chunk/createFormReset.js +24 -12
  84. package/dist/_chunk/createFormReset.js.map +1 -1
  85. package/dist/_chunk/createFormReset.jsx +24 -12
  86. package/dist/_chunk/createFormReset.jsx.map +1 -1
  87. package/dist/_chunk/createFormValidation.js +41 -17
  88. package/dist/_chunk/createFormValidation.js.map +1 -1
  89. package/dist/_chunk/createFormValidation.jsx +41 -17
  90. package/dist/_chunk/createFormValidation.jsx.map +1 -1
  91. package/dist/_chunk/createHover.js +56 -42
  92. package/dist/_chunk/createHover.js.map +1 -1
  93. package/dist/_chunk/createHover.jsx +56 -42
  94. package/dist/_chunk/createHover.jsx.map +1 -1
  95. package/dist/_chunk/createKeyboard.js +205 -0
  96. package/dist/_chunk/createKeyboard.js.map +1 -0
  97. package/dist/_chunk/createKeyboard.jsx +205 -0
  98. package/dist/_chunk/createKeyboard.jsx.map +1 -0
  99. package/dist/_chunk/createLabel.js +17 -4
  100. package/dist/_chunk/createLabel.js.map +1 -1
  101. package/dist/_chunk/createLabel.jsx +17 -4
  102. package/dist/_chunk/createLabel.jsx.map +1 -1
  103. package/dist/_chunk/createLabels.js +14 -2
  104. package/dist/_chunk/createLabels.js.map +1 -1
  105. package/dist/_chunk/createLabels.jsx +14 -2
  106. package/dist/_chunk/createLabels.jsx.map +1 -1
  107. package/dist/_chunk/createLandmark.js +19 -3
  108. package/dist/_chunk/createLandmark.js.map +1 -1
  109. package/dist/_chunk/createLandmark.jsx +19 -3
  110. package/dist/_chunk/createLandmark.jsx.map +1 -1
  111. package/dist/_chunk/createLongPress.js +105 -0
  112. package/dist/_chunk/createLongPress.js.map +1 -0
  113. package/dist/_chunk/createLongPress.jsx +105 -0
  114. package/dist/_chunk/createLongPress.jsx.map +1 -0
  115. package/dist/_chunk/createOverlay.js +220 -111
  116. package/dist/_chunk/createOverlay.js.map +1 -1
  117. package/dist/_chunk/createOverlay.jsx +220 -111
  118. package/dist/_chunk/createOverlay.jsx.map +1 -1
  119. package/dist/_chunk/createOverlayTrigger.js +58 -0
  120. package/dist/_chunk/createOverlayTrigger.js.map +1 -0
  121. package/dist/_chunk/createOverlayTrigger.jsx +58 -0
  122. package/dist/_chunk/createOverlayTrigger.jsx.map +1 -0
  123. package/dist/_chunk/createPress.js +38 -28
  124. package/dist/_chunk/createPress.js.map +1 -1
  125. package/dist/_chunk/createPress.jsx +38 -28
  126. package/dist/_chunk/createPress.jsx.map +1 -1
  127. package/dist/_chunk/createProgressBar.js +17 -4
  128. package/dist/_chunk/createProgressBar.js.map +1 -1
  129. package/dist/_chunk/createProgressBar.jsx +17 -4
  130. package/dist/_chunk/createProgressBar.jsx.map +1 -1
  131. package/dist/_chunk/createSelectableItem.js +58 -20
  132. package/dist/_chunk/createSelectableItem.js.map +1 -1
  133. package/dist/_chunk/createSelectableItem.jsx +58 -20
  134. package/dist/_chunk/createSelectableItem.jsx.map +1 -1
  135. package/dist/_chunk/createSelectableList.js +776 -0
  136. package/dist/_chunk/createSelectableList.js.map +1 -0
  137. package/dist/_chunk/createSelectableList.jsx +776 -0
  138. package/dist/_chunk/createSelectableList.jsx.map +1 -0
  139. package/dist/_chunk/createStringFormatter.js +350 -5
  140. package/dist/_chunk/createStringFormatter.js.map +1 -1
  141. package/dist/_chunk/createStringFormatter.jsx +350 -5
  142. package/dist/_chunk/createStringFormatter.jsx.map +1 -1
  143. package/dist/_chunk/createToggle.js +68 -19
  144. package/dist/_chunk/createToggle.js.map +1 -1
  145. package/dist/_chunk/createToggle.jsx +68 -19
  146. package/dist/_chunk/createToggle.jsx.map +1 -1
  147. package/dist/_chunk/createTypeSelect.js +15 -3
  148. package/dist/_chunk/createTypeSelect.js.map +1 -1
  149. package/dist/_chunk/createTypeSelect.jsx +15 -3
  150. package/dist/_chunk/createTypeSelect.jsx.map +1 -1
  151. package/dist/_chunk/{visually-hidden.js → createVisuallyHidden.js} +16 -4
  152. package/dist/_chunk/createVisuallyHidden.js.map +1 -0
  153. package/dist/_chunk/{visually-hidden.jsx → createVisuallyHidden.jsx} +16 -4
  154. package/dist/_chunk/createVisuallyHidden.jsx.map +1 -0
  155. package/dist/_chunk/datepicker.js +687 -602
  156. package/dist/_chunk/datepicker.js.map +1 -1
  157. package/dist/_chunk/datepicker.jsx +687 -602
  158. package/dist/_chunk/datepicker.jsx.map +1 -1
  159. package/dist/_chunk/dialog.js +49 -19
  160. package/dist/_chunk/dialog.js.map +1 -1
  161. package/dist/_chunk/dialog.jsx +49 -19
  162. package/dist/_chunk/dialog.jsx.map +1 -1
  163. package/dist/_chunk/disclosure.js +48 -28
  164. package/dist/_chunk/disclosure.js.map +1 -1
  165. package/dist/_chunk/disclosure.jsx +48 -28
  166. package/dist/_chunk/disclosure.jsx.map +1 -1
  167. package/dist/_chunk/dnd.js +1340 -1172
  168. package/dist/_chunk/dnd.js.map +1 -1
  169. package/dist/_chunk/dnd.jsx +1340 -1172
  170. package/dist/_chunk/dnd.jsx.map +1 -1
  171. package/dist/_chunk/dom.js +1200 -0
  172. package/dist/_chunk/dom.js.map +1 -0
  173. package/dist/_chunk/dom.jsx +1200 -0
  174. package/dist/_chunk/dom.jsx.map +1 -0
  175. package/dist/_chunk/env.js +1 -57
  176. package/dist/_chunk/env.js.map +1 -1
  177. package/dist/_chunk/env.jsx +1 -57
  178. package/dist/_chunk/env.jsx.map +1 -1
  179. package/dist/_chunk/filterDOMProps.js +32 -7
  180. package/dist/_chunk/filterDOMProps.js.map +1 -1
  181. package/dist/_chunk/filterDOMProps.jsx +32 -7
  182. package/dist/_chunk/filterDOMProps.jsx.map +1 -1
  183. package/dist/_chunk/focus.js +570 -338
  184. package/dist/_chunk/focus.js.map +1 -1
  185. package/dist/_chunk/focus.jsx +570 -338
  186. package/dist/_chunk/focus.jsx.map +1 -1
  187. package/dist/_chunk/grid.js +62 -8
  188. package/dist/_chunk/grid.js.map +1 -1
  189. package/dist/_chunk/grid.jsx +62 -8
  190. package/dist/_chunk/grid.jsx.map +1 -1
  191. package/dist/_chunk/gridlist.js +192 -53
  192. package/dist/_chunk/gridlist.js.map +1 -1
  193. package/dist/_chunk/gridlist.jsx +192 -53
  194. package/dist/_chunk/gridlist.jsx.map +1 -1
  195. package/dist/_chunk/i18n.js +68 -1
  196. package/dist/_chunk/i18n.js.map +1 -1
  197. package/dist/_chunk/i18n.jsx +68 -1
  198. package/dist/_chunk/i18n.jsx.map +1 -1
  199. package/dist/_chunk/interactions.js +38 -102
  200. package/dist/_chunk/interactions.js.map +1 -1
  201. package/dist/_chunk/interactions.jsx +38 -100
  202. package/dist/_chunk/interactions.jsx.map +1 -1
  203. package/dist/_chunk/intl.js +280 -0
  204. package/dist/_chunk/intl.js.map +1 -0
  205. package/dist/_chunk/intl.jsx +280 -0
  206. package/dist/_chunk/intl.jsx.map +1 -0
  207. package/dist/_chunk/link.js +15 -4
  208. package/dist/_chunk/link.js.map +1 -1
  209. package/dist/_chunk/link.jsx +15 -4
  210. package/dist/_chunk/link.jsx.map +1 -1
  211. package/dist/_chunk/listbox.js +99 -175
  212. package/dist/_chunk/listbox.js.map +1 -1
  213. package/dist/_chunk/listbox.jsx +99 -175
  214. package/dist/_chunk/listbox.jsx.map +1 -1
  215. package/dist/_chunk/locale.js +58 -12
  216. package/dist/_chunk/locale.js.map +1 -1
  217. package/dist/_chunk/locale.jsx +57 -11
  218. package/dist/_chunk/locale.jsx.map +1 -1
  219. package/dist/_chunk/menu.js +298 -57
  220. package/dist/_chunk/menu.js.map +1 -1
  221. package/dist/_chunk/menu.jsx +298 -57
  222. package/dist/_chunk/menu.jsx.map +1 -1
  223. package/dist/_chunk/mergeProps.js +216 -0
  224. package/dist/_chunk/mergeProps.js.map +1 -0
  225. package/dist/_chunk/mergeProps.jsx +216 -0
  226. package/dist/_chunk/mergeProps.jsx.map +1 -0
  227. package/dist/_chunk/meter.js +16 -4
  228. package/dist/_chunk/meter.js.map +1 -1
  229. package/dist/_chunk/meter.jsx +16 -4
  230. package/dist/_chunk/meter.jsx.map +1 -1
  231. package/dist/_chunk/numberfield.js +167 -22
  232. package/dist/_chunk/numberfield.js.map +1 -1
  233. package/dist/_chunk/numberfield.jsx +167 -22
  234. package/dist/_chunk/numberfield.jsx.map +1 -1
  235. package/dist/_chunk/overlays.js +87 -74
  236. package/dist/_chunk/overlays.js.map +1 -1
  237. package/dist/_chunk/overlays.jsx +71 -57
  238. package/dist/_chunk/overlays.jsx.map +1 -1
  239. package/dist/_chunk/owner.js +23 -0
  240. package/dist/_chunk/owner.js.map +1 -0
  241. package/dist/_chunk/owner.jsx +23 -0
  242. package/dist/_chunk/owner.jsx.map +1 -0
  243. package/dist/_chunk/popover.js +180 -42
  244. package/dist/_chunk/popover.js.map +1 -1
  245. package/dist/_chunk/popover.jsx +180 -42
  246. package/dist/_chunk/popover.jsx.map +1 -1
  247. package/dist/_chunk/radio.js +92 -32
  248. package/dist/_chunk/radio.js.map +1 -1
  249. package/dist/_chunk/radio.jsx +92 -32
  250. package/dist/_chunk/radio.jsx.map +1 -1
  251. package/dist/_chunk/reactivity.js.map +1 -1
  252. package/dist/_chunk/reactivity.jsx.map +1 -1
  253. package/dist/_chunk/refs.js +41 -0
  254. package/dist/_chunk/refs.js.map +1 -0
  255. package/dist/_chunk/refs.jsx +41 -0
  256. package/dist/_chunk/refs.jsx.map +1 -0
  257. package/dist/_chunk/searchfield.js +69 -3
  258. package/dist/_chunk/searchfield.js.map +1 -1
  259. package/dist/_chunk/searchfield.jsx +69 -3
  260. package/dist/_chunk/searchfield.jsx.map +1 -1
  261. package/dist/_chunk/select.js +226 -80
  262. package/dist/_chunk/select.js.map +1 -1
  263. package/dist/_chunk/select.jsx +162 -70
  264. package/dist/_chunk/select.jsx.map +1 -1
  265. package/dist/_chunk/selection.js +20 -638
  266. package/dist/_chunk/selection.js.map +1 -1
  267. package/dist/_chunk/selection.jsx +20 -638
  268. package/dist/_chunk/selection.jsx.map +1 -1
  269. package/dist/_chunk/separator.js +12 -0
  270. package/dist/_chunk/separator.js.map +1 -1
  271. package/dist/_chunk/separator.jsx +12 -0
  272. package/dist/_chunk/separator.jsx.map +1 -1
  273. package/dist/_chunk/slider.js +25 -16
  274. package/dist/_chunk/slider.js.map +1 -1
  275. package/dist/_chunk/slider.jsx +25 -16
  276. package/dist/_chunk/slider.jsx.map +1 -1
  277. package/dist/_chunk/spinbutton.js +52 -42
  278. package/dist/_chunk/spinbutton.js.map +1 -1
  279. package/dist/_chunk/spinbutton.jsx +52 -42
  280. package/dist/_chunk/spinbutton.jsx.map +1 -1
  281. package/dist/_chunk/steplist.js +14 -1
  282. package/dist/_chunk/steplist.js.map +1 -1
  283. package/dist/_chunk/steplist.jsx +14 -1
  284. package/dist/_chunk/steplist.jsx.map +1 -1
  285. package/dist/_chunk/switch.js +21 -3
  286. package/dist/_chunk/switch.js.map +1 -1
  287. package/dist/_chunk/switch.jsx +21 -3
  288. package/dist/_chunk/switch.jsx.map +1 -1
  289. package/dist/_chunk/table.js +666 -88
  290. package/dist/_chunk/table.js.map +1 -1
  291. package/dist/_chunk/table.jsx +666 -88
  292. package/dist/_chunk/table.jsx.map +1 -1
  293. package/dist/_chunk/tabs.js +115 -17
  294. package/dist/_chunk/tabs.js.map +1 -1
  295. package/dist/_chunk/tabs.jsx +115 -17
  296. package/dist/_chunk/tabs.jsx.map +1 -1
  297. package/dist/_chunk/tag.js +240 -39
  298. package/dist/_chunk/tag.js.map +1 -1
  299. package/dist/_chunk/tag.jsx +240 -39
  300. package/dist/_chunk/tag.jsx.map +1 -1
  301. package/dist/_chunk/textfield.js +83 -12
  302. package/dist/_chunk/textfield.js.map +1 -1
  303. package/dist/_chunk/textfield.jsx +83 -12
  304. package/dist/_chunk/textfield.jsx.map +1 -1
  305. package/dist/_chunk/toast.js +61 -28
  306. package/dist/_chunk/toast.js.map +1 -1
  307. package/dist/_chunk/toast.jsx +61 -28
  308. package/dist/_chunk/toast.jsx.map +1 -1
  309. package/dist/_chunk/tokenfield.js +567 -0
  310. package/dist/_chunk/tokenfield.js.map +1 -0
  311. package/dist/_chunk/tokenfield.jsx +567 -0
  312. package/dist/_chunk/tokenfield.jsx.map +1 -0
  313. package/dist/_chunk/toolbar.js +25 -8
  314. package/dist/_chunk/toolbar.js.map +1 -1
  315. package/dist/_chunk/toolbar.jsx +25 -8
  316. package/dist/_chunk/toolbar.jsx.map +1 -1
  317. package/dist/_chunk/tooltip.js +379 -6
  318. package/dist/_chunk/tooltip.js.map +1 -1
  319. package/dist/_chunk/tooltip.jsx +379 -6
  320. package/dist/_chunk/tooltip.jsx.map +1 -1
  321. package/dist/_chunk/tree.js +280 -69
  322. package/dist/_chunk/tree.js.map +1 -1
  323. package/dist/_chunk/tree.jsx +280 -69
  324. package/dist/_chunk/tree.jsx.map +1 -1
  325. package/dist/_chunk/utils.js +192 -150
  326. package/dist/_chunk/utils.js.map +1 -1
  327. package/dist/_chunk/utils.jsx +192 -150
  328. package/dist/_chunk/utils.jsx.map +1 -1
  329. package/dist/_chunk/virtualFocus.js +54 -0
  330. package/dist/_chunk/virtualFocus.js.map +1 -0
  331. package/dist/_chunk/virtualFocus.jsx +54 -0
  332. package/dist/_chunk/virtualFocus.jsx.map +1 -0
  333. package/dist/_chunk/virtualizer.js +202 -0
  334. package/dist/_chunk/virtualizer.js.map +1 -0
  335. package/dist/_chunk/virtualizer.jsx +202 -0
  336. package/dist/_chunk/virtualizer.jsx.map +1 -0
  337. package/dist/actiongroup/createActionGroup.d.ts +2 -1
  338. package/dist/actiongroup/createActionGroup.d.ts.map +1 -1
  339. package/dist/autocomplete/createAutocomplete.d.ts +1 -9
  340. package/dist/autocomplete/createAutocomplete.d.ts.map +1 -1
  341. package/dist/autocomplete/intl/index.d.ts +13 -0
  342. package/dist/autocomplete/intl/index.d.ts.map +1 -0
  343. package/dist/breadcrumbs/createBreadcrumbs.d.ts +3 -1
  344. package/dist/breadcrumbs/createBreadcrumbs.d.ts.map +1 -1
  345. package/dist/breadcrumbs/intl/index.d.ts +13 -0
  346. package/dist/breadcrumbs/intl/index.d.ts.map +1 -0
  347. package/dist/button/createButton.d.ts.map +1 -1
  348. package/dist/button/createToggleButton.d.ts.map +1 -1
  349. package/dist/button/createToggleButtonGroup.d.ts +1 -1
  350. package/dist/button/createToggleButtonGroup.d.ts.map +1 -1
  351. package/dist/button/types.d.ts +14 -0
  352. package/dist/button/types.d.ts.map +1 -1
  353. package/dist/calendar/createCalendar.d.ts +1 -7
  354. package/dist/calendar/createCalendar.d.ts.map +1 -1
  355. package/dist/calendar/createCalendarCell.d.ts +0 -6
  356. package/dist/calendar/createCalendarCell.d.ts.map +1 -1
  357. package/dist/calendar/createCalendarGrid.d.ts +1 -7
  358. package/dist/calendar/createCalendarGrid.d.ts.map +1 -1
  359. package/dist/calendar/createCalendarMonthPicker.d.ts +0 -8
  360. package/dist/calendar/createCalendarMonthPicker.d.ts.map +1 -1
  361. package/dist/calendar/createCalendarYearPicker.d.ts +0 -8
  362. package/dist/calendar/createCalendarYearPicker.d.ts.map +1 -1
  363. package/dist/calendar/createRangeCalendar.d.ts +13 -7
  364. package/dist/calendar/createRangeCalendar.d.ts.map +1 -1
  365. package/dist/calendar/createRangeCalendarCell.d.ts +2 -6
  366. package/dist/calendar/createRangeCalendarCell.d.ts.map +1 -1
  367. package/dist/calendar/intl/index.d.ts.map +1 -1
  368. package/dist/calendar/utils.d.ts.map +1 -1
  369. package/dist/checkbox/createCheckbox.d.ts +2 -1
  370. package/dist/checkbox/createCheckbox.d.ts.map +1 -1
  371. package/dist/checkbox/createCheckboxGroup.d.ts +1 -9
  372. package/dist/checkbox/createCheckboxGroup.d.ts.map +1 -1
  373. package/dist/checkbox/createCheckboxGroupItem.d.ts +0 -8
  374. package/dist/checkbox/createCheckboxGroupItem.d.ts.map +1 -1
  375. package/dist/collections/index.d.ts +1 -1
  376. package/dist/collections/index.d.ts.map +1 -1
  377. package/dist/collections/index.js +18 -2
  378. package/dist/collections/index.js.map +1 -1
  379. package/dist/collections/index.jsx +18 -2
  380. package/dist/collections/index.jsx.map +1 -1
  381. package/dist/color/createColorArea.d.ts +2 -7
  382. package/dist/color/createColorArea.d.ts.map +1 -1
  383. package/dist/color/createColorField.d.ts +2 -7
  384. package/dist/color/createColorField.d.ts.map +1 -1
  385. package/dist/color/createColorSlider.d.ts +1 -6
  386. package/dist/color/createColorSlider.d.ts.map +1 -1
  387. package/dist/color/createColorSwatch.d.ts +1 -6
  388. package/dist/color/createColorSwatch.d.ts.map +1 -1
  389. package/dist/color/createColorWheel.d.ts +1 -6
  390. package/dist/color/createColorWheel.d.ts.map +1 -1
  391. package/dist/color/intl/index.d.ts.map +1 -1
  392. package/dist/color/types.d.ts +47 -1
  393. package/dist/color/types.d.ts.map +1 -1
  394. package/dist/combobox/createComboBox.d.ts +17 -8
  395. package/dist/combobox/createComboBox.d.ts.map +1 -1
  396. package/dist/combobox/intl/generated-locales.d.ts +3 -0
  397. package/dist/combobox/intl/generated-locales.d.ts.map +1 -1
  398. package/dist/combobox/intl/index.d.ts +3 -2
  399. package/dist/combobox/intl/index.d.ts.map +1 -1
  400. package/dist/datepicker/createDateField.d.ts +0 -10
  401. package/dist/datepicker/createDateField.d.ts.map +1 -1
  402. package/dist/datepicker/createDatePicker.d.ts +0 -16
  403. package/dist/datepicker/createDatePicker.d.ts.map +1 -1
  404. package/dist/datepicker/createDatePickerGroup.d.ts +1 -1
  405. package/dist/datepicker/createDatePickerGroup.d.ts.map +1 -1
  406. package/dist/datepicker/createDateRangePicker.d.ts +0 -21
  407. package/dist/datepicker/createDateRangePicker.d.ts.map +1 -1
  408. package/dist/datepicker/createDateSegment.d.ts +0 -9
  409. package/dist/datepicker/createDateSegment.d.ts.map +1 -1
  410. package/dist/datepicker/createDisplayNames.d.ts +1 -9
  411. package/dist/datepicker/createDisplayNames.d.ts.map +1 -1
  412. package/dist/datepicker/createTimeField.d.ts.map +1 -1
  413. package/dist/datepicker/intl.d.ts.map +1 -1
  414. package/dist/dialog/createDialog.d.ts +2 -4
  415. package/dist/dialog/createDialog.d.ts.map +1 -1
  416. package/dist/dialog/types.d.ts +14 -0
  417. package/dist/dialog/types.d.ts.map +1 -1
  418. package/dist/disclosure/createDisclosure.d.ts +1 -8
  419. package/dist/disclosure/createDisclosure.d.ts.map +1 -1
  420. package/dist/disclosure/createDisclosureGroup.d.ts +3 -4
  421. package/dist/disclosure/createDisclosureGroup.d.ts.map +1 -1
  422. package/dist/dnd/DragManager.d.ts +1 -16
  423. package/dist/dnd/DragManager.d.ts.map +1 -1
  424. package/dist/dnd/DropTargetKeyboardNavigation.d.ts +2 -2
  425. package/dist/dnd/createDrag.d.ts +1 -7
  426. package/dist/dnd/createDrag.d.ts.map +1 -1
  427. package/dist/dnd/createDraggableCollection.d.ts +1 -7
  428. package/dist/dnd/createDraggableCollection.d.ts.map +1 -1
  429. package/dist/dnd/createDraggableItem.d.ts +2 -7
  430. package/dist/dnd/createDraggableItem.d.ts.map +1 -1
  431. package/dist/dnd/createDrop.d.ts +1 -7
  432. package/dist/dnd/createDrop.d.ts.map +1 -1
  433. package/dist/dnd/createDropIndicator.d.ts +27 -0
  434. package/dist/dnd/createDropIndicator.d.ts.map +1 -0
  435. package/dist/dnd/createDroppableCollection.d.ts +6 -8
  436. package/dist/dnd/createDroppableCollection.d.ts.map +1 -1
  437. package/dist/dnd/createDroppableItem.d.ts +12 -10
  438. package/dist/dnd/createDroppableItem.d.ts.map +1 -1
  439. package/dist/dnd/index.d.ts +3 -1
  440. package/dist/dnd/index.d.ts.map +1 -1
  441. package/dist/dnd/index.js +2 -2
  442. package/dist/dnd/index.jsx +2 -2
  443. package/dist/dnd/intl/index.d.ts +6 -4
  444. package/dist/dnd/intl/index.d.ts.map +1 -1
  445. package/dist/dnd/types.d.ts +20 -1
  446. package/dist/dnd/types.d.ts.map +1 -1
  447. package/dist/dnd/utils.d.ts +4 -0
  448. package/dist/dnd/utils.d.ts.map +1 -1
  449. package/dist/focus/FocusScope.d.ts +9 -5
  450. package/dist/focus/FocusScope.d.ts.map +1 -1
  451. package/dist/focus/createAutoFocus.d.ts +3 -0
  452. package/dist/focus/createAutoFocus.d.ts.map +1 -1
  453. package/dist/focus/createFocusRestore.d.ts +3 -0
  454. package/dist/focus/createFocusRestore.d.ts.map +1 -1
  455. package/dist/focus/createHasTabbableChild.d.ts +13 -0
  456. package/dist/focus/createHasTabbableChild.d.ts.map +1 -0
  457. package/dist/focus/createVirtualFocus.d.ts +4 -1
  458. package/dist/focus/createVirtualFocus.d.ts.map +1 -1
  459. package/dist/focus/index.js +3 -2
  460. package/dist/focus/index.jsx +3 -2
  461. package/dist/focus/virtualFocus.d.ts +1 -1
  462. package/dist/form/createFormReset.d.ts +1 -7
  463. package/dist/form/createFormReset.d.ts.map +1 -1
  464. package/dist/form/createFormValidation.d.ts +1 -9
  465. package/dist/form/createFormValidation.d.ts.map +1 -1
  466. package/dist/grid/GridKeyboardDelegate.d.ts.map +1 -1
  467. package/dist/grid/createGrid.d.ts +1 -5
  468. package/dist/grid/createGrid.d.ts.map +1 -1
  469. package/dist/grid/createGridCell.d.ts +1 -5
  470. package/dist/grid/createGridCell.d.ts.map +1 -1
  471. package/dist/grid/createGridRow.d.ts +1 -5
  472. package/dist/grid/createGridRow.d.ts.map +1 -1
  473. package/dist/grid/index.d.ts +2 -2
  474. package/dist/grid/intl/index.d.ts +18 -0
  475. package/dist/grid/intl/index.d.ts.map +1 -0
  476. package/dist/grid/types.d.ts +25 -2
  477. package/dist/grid/types.d.ts.map +1 -1
  478. package/dist/gridlist/createGridList.d.ts +3 -5
  479. package/dist/gridlist/createGridList.d.ts.map +1 -1
  480. package/dist/gridlist/createGridListItem.d.ts +1 -5
  481. package/dist/gridlist/createGridListItem.d.ts.map +1 -1
  482. package/dist/gridlist/createGridListSection.d.ts +0 -4
  483. package/dist/gridlist/createGridListSection.d.ts.map +1 -1
  484. package/dist/gridlist/createGridListSelectionCheckbox.d.ts +1 -5
  485. package/dist/gridlist/createGridListSelectionCheckbox.d.ts.map +1 -1
  486. package/dist/gridlist/intl/index.d.ts +14 -0
  487. package/dist/gridlist/intl/index.d.ts.map +1 -0
  488. package/dist/gridlist/types.d.ts +56 -2
  489. package/dist/gridlist/types.d.ts.map +1 -1
  490. package/dist/i18n/compileIcu.d.ts +24 -0
  491. package/dist/i18n/compileIcu.d.ts.map +1 -0
  492. package/dist/i18n/createCollator.d.ts +0 -7
  493. package/dist/i18n/createCollator.d.ts.map +1 -1
  494. package/dist/i18n/createDateFormatter.d.ts +0 -7
  495. package/dist/i18n/createDateFormatter.d.ts.map +1 -1
  496. package/dist/i18n/createFilter.d.ts +0 -7
  497. package/dist/i18n/createFilter.d.ts.map +1 -1
  498. package/dist/i18n/createListFormatter.d.ts +9 -0
  499. package/dist/i18n/createListFormatter.d.ts.map +1 -0
  500. package/dist/i18n/createNumberFormatter.d.ts +0 -7
  501. package/dist/i18n/createNumberFormatter.d.ts.map +1 -1
  502. package/dist/i18n/createStringFormatter.d.ts +14 -4
  503. package/dist/i18n/createStringFormatter.d.ts.map +1 -1
  504. package/dist/i18n/index.d.ts +1 -0
  505. package/dist/i18n/index.d.ts.map +1 -1
  506. package/dist/i18n/index.js +2 -2
  507. package/dist/i18n/index.jsx +2 -2
  508. package/dist/i18n/locale.d.ts +2 -8
  509. package/dist/i18n/locale.d.ts.map +1 -1
  510. package/dist/i18n/utils.d.ts +0 -7
  511. package/dist/i18n/utils.d.ts.map +1 -1
  512. package/dist/index.d.ts +10 -7
  513. package/dist/index.d.ts.map +1 -1
  514. package/dist/index.js +27 -21
  515. package/dist/index.jsx +27 -21
  516. package/dist/interactions/FocusableProvider.d.ts +3 -2
  517. package/dist/interactions/FocusableProvider.d.ts.map +1 -1
  518. package/dist/interactions/PressEvent.d.ts +2 -1
  519. package/dist/interactions/PressEvent.d.ts.map +1 -1
  520. package/dist/interactions/createContextMenu.d.ts +24 -0
  521. package/dist/interactions/createContextMenu.d.ts.map +1 -0
  522. package/dist/interactions/createFocus.d.ts +3 -2
  523. package/dist/interactions/createFocus.d.ts.map +1 -1
  524. package/dist/interactions/createFocusRing.d.ts +2 -1
  525. package/dist/interactions/createFocusRing.d.ts.map +1 -1
  526. package/dist/interactions/createFocusWithin.d.ts +1 -6
  527. package/dist/interactions/createFocusWithin.d.ts.map +1 -1
  528. package/dist/interactions/createFocusable.d.ts +2 -6
  529. package/dist/interactions/createFocusable.d.ts.map +1 -1
  530. package/dist/interactions/createHover.d.ts +3 -10
  531. package/dist/interactions/createHover.d.ts.map +1 -1
  532. package/dist/interactions/createInteractionModality.d.ts +12 -10
  533. package/dist/interactions/createInteractionModality.d.ts.map +1 -1
  534. package/dist/interactions/createKeyboard.d.ts +12 -3
  535. package/dist/interactions/createKeyboard.d.ts.map +1 -1
  536. package/dist/interactions/createKeyboardShortcutHandler.d.ts +24 -0
  537. package/dist/interactions/createKeyboardShortcutHandler.d.ts.map +1 -0
  538. package/dist/interactions/createLongPress.d.ts +4 -7
  539. package/dist/interactions/createLongPress.d.ts.map +1 -1
  540. package/dist/interactions/createMove.d.ts +1 -6
  541. package/dist/interactions/createMove.d.ts.map +1 -1
  542. package/dist/interactions/createPress.d.ts +2 -7
  543. package/dist/interactions/createPress.d.ts.map +1 -1
  544. package/dist/interactions/index.d.ts +1 -1
  545. package/dist/interactions/index.d.ts.map +1 -1
  546. package/dist/interactions/index.js +5 -3
  547. package/dist/interactions/index.jsx +5 -3
  548. package/dist/label/createField.d.ts +7 -1
  549. package/dist/label/createField.d.ts.map +1 -1
  550. package/dist/label/createLabel.d.ts +1 -1
  551. package/dist/label/createLabel.d.ts.map +1 -1
  552. package/dist/label/createLabels.d.ts +0 -7
  553. package/dist/label/createLabels.d.ts.map +1 -1
  554. package/dist/landmark/createLandmark.d.ts +4 -1
  555. package/dist/landmark/createLandmark.d.ts.map +1 -1
  556. package/dist/link/createLink.d.ts +1 -1
  557. package/dist/link/createLink.d.ts.map +1 -1
  558. package/dist/listbox/createListBox.d.ts +8 -7
  559. package/dist/listbox/createListBox.d.ts.map +1 -1
  560. package/dist/listbox/createOption.d.ts +7 -1
  561. package/dist/listbox/createOption.d.ts.map +1 -1
  562. package/dist/live-announcer/announce.d.ts +2 -13
  563. package/dist/live-announcer/announce.d.ts.map +1 -1
  564. package/dist/menu/createMenu.d.ts +3 -7
  565. package/dist/menu/createMenu.d.ts.map +1 -1
  566. package/dist/menu/createMenuItem.d.ts +2 -1
  567. package/dist/menu/createMenuItem.d.ts.map +1 -1
  568. package/dist/menu/createMenuTrigger.d.ts +24 -20
  569. package/dist/menu/createMenuTrigger.d.ts.map +1 -1
  570. package/dist/menu/index.d.ts +1 -1
  571. package/dist/menu/index.d.ts.map +1 -1
  572. package/dist/menu/intl/index.d.ts +4 -0
  573. package/dist/menu/intl/index.d.ts.map +1 -0
  574. package/dist/meter/createMeter.d.ts +2 -1
  575. package/dist/meter/createMeter.d.ts.map +1 -1
  576. package/dist/numberfield/createNumberField.d.ts +29 -6
  577. package/dist/numberfield/createNumberField.d.ts.map +1 -1
  578. package/dist/overlays/ariaHideOutside.d.ts +0 -4
  579. package/dist/overlays/ariaHideOutside.d.ts.map +1 -1
  580. package/dist/overlays/createInteractOutside.d.ts +2 -5
  581. package/dist/overlays/createInteractOutside.d.ts.map +1 -1
  582. package/dist/overlays/createModal.d.ts +3 -6
  583. package/dist/overlays/createModal.d.ts.map +1 -1
  584. package/dist/overlays/createOverlay.d.ts +1 -5
  585. package/dist/overlays/createOverlay.d.ts.map +1 -1
  586. package/dist/overlays/createOverlayTrigger.d.ts +2 -6
  587. package/dist/overlays/createOverlayTrigger.d.ts.map +1 -1
  588. package/dist/overlays/createPreventScroll.d.ts +0 -4
  589. package/dist/overlays/createPreventScroll.d.ts.map +1 -1
  590. package/dist/overlays/index.d.ts +1 -0
  591. package/dist/overlays/index.d.ts.map +1 -1
  592. package/dist/overlays/index.js +3 -2
  593. package/dist/overlays/index.jsx +3 -2
  594. package/dist/overlays/intl/index.d.ts +13 -0
  595. package/dist/overlays/intl/index.d.ts.map +1 -0
  596. package/dist/popover/calculatePosition.d.ts +1 -1
  597. package/dist/popover/calculatePosition.d.ts.map +1 -1
  598. package/dist/popover/createOverlayPosition.d.ts +1 -7
  599. package/dist/popover/createOverlayPosition.d.ts.map +1 -1
  600. package/dist/popover/createPopover.d.ts +6 -7
  601. package/dist/popover/createPopover.d.ts.map +1 -1
  602. package/dist/progress/createProgressBar.d.ts +2 -10
  603. package/dist/progress/createProgressBar.d.ts.map +1 -1
  604. package/dist/radio/createRadio.d.ts +8 -1
  605. package/dist/radio/createRadio.d.ts.map +1 -1
  606. package/dist/radio/createRadioGroup.d.ts +1 -9
  607. package/dist/radio/createRadioGroup.d.ts.map +1 -1
  608. package/dist/searchfield/createSearchField.d.ts +1 -1
  609. package/dist/searchfield/createSearchField.d.ts.map +1 -1
  610. package/dist/searchfield/intl/index.d.ts +13 -0
  611. package/dist/searchfield/intl/index.d.ts.map +1 -0
  612. package/dist/select/createHiddenSelect.d.ts +3 -10
  613. package/dist/select/createHiddenSelect.d.ts.map +1 -1
  614. package/dist/select/createSelect.d.ts +10 -6
  615. package/dist/select/createSelect.d.ts.map +1 -1
  616. package/dist/selection/DOMLayoutDelegate.d.ts.map +1 -1
  617. package/dist/selection/ListKeyboardDelegate.d.ts +2 -1
  618. package/dist/selection/ListKeyboardDelegate.d.ts.map +1 -1
  619. package/dist/selection/constants.d.ts.map +1 -1
  620. package/dist/selection/createCollectionRowInteraction.d.ts +12 -1
  621. package/dist/selection/createCollectionRowInteraction.d.ts.map +1 -1
  622. package/dist/selection/createScrollIntoViewOnFocus.d.ts +0 -11
  623. package/dist/selection/createScrollIntoViewOnFocus.d.ts.map +1 -1
  624. package/dist/selection/createSelectableCollection.d.ts +1 -23
  625. package/dist/selection/createSelectableCollection.d.ts.map +1 -1
  626. package/dist/selection/createSelectableItem.d.ts +2 -29
  627. package/dist/selection/createSelectableItem.d.ts.map +1 -1
  628. package/dist/selection/createSelectableList.d.ts +4 -17
  629. package/dist/selection/createSelectableList.d.ts.map +1 -1
  630. package/dist/selection/createTypeSelect.d.ts +2 -8
  631. package/dist/selection/createTypeSelect.d.ts.map +1 -1
  632. package/dist/selection/index.js +3 -2
  633. package/dist/selection/index.jsx +3 -2
  634. package/dist/selection/selectItem.d.ts.map +1 -1
  635. package/dist/selection/utils.d.ts +1 -1
  636. package/dist/selection/utils.d.ts.map +1 -1
  637. package/dist/separator/createSeparator.d.ts +3 -1
  638. package/dist/separator/createSeparator.d.ts.map +1 -1
  639. package/dist/slider/createSlider.d.ts +1 -6
  640. package/dist/slider/createSlider.d.ts.map +1 -1
  641. package/dist/spinbutton/createSpinButton.d.ts +0 -9
  642. package/dist/spinbutton/createSpinButton.d.ts.map +1 -1
  643. package/dist/spinbutton/index.d.ts +2 -2
  644. package/dist/spinbutton/index.d.ts.map +1 -1
  645. package/dist/spinbutton/intl.d.ts.map +1 -1
  646. package/dist/ssr/index.d.ts +3 -9
  647. package/dist/ssr/index.d.ts.map +1 -1
  648. package/dist/ssr/index.js +47 -26
  649. package/dist/ssr/index.js.map +1 -1
  650. package/dist/ssr/index.jsx +47 -26
  651. package/dist/ssr/index.jsx.map +1 -1
  652. package/dist/steplist/createStepList.d.ts +1 -1
  653. package/dist/steplist/createStepList.d.ts.map +1 -1
  654. package/dist/switch/createSwitch.d.ts +2 -1
  655. package/dist/switch/createSwitch.d.ts.map +1 -1
  656. package/dist/table/createTable.d.ts +1 -5
  657. package/dist/table/createTable.d.ts.map +1 -1
  658. package/dist/table/createTableCell.d.ts +1 -5
  659. package/dist/table/createTableCell.d.ts.map +1 -1
  660. package/dist/table/createTableColumnHeader.d.ts +1 -5
  661. package/dist/table/createTableColumnHeader.d.ts.map +1 -1
  662. package/dist/table/createTableColumnResize.d.ts +2 -8
  663. package/dist/table/createTableColumnResize.d.ts.map +1 -1
  664. package/dist/table/createTableHeaderRow.d.ts +1 -5
  665. package/dist/table/createTableHeaderRow.d.ts.map +1 -1
  666. package/dist/table/createTableRow.d.ts +1 -5
  667. package/dist/table/createTableRow.d.ts.map +1 -1
  668. package/dist/table/createTableRowGroup.d.ts +1 -5
  669. package/dist/table/createTableRowGroup.d.ts.map +1 -1
  670. package/dist/table/createTableSelectAllCheckbox.d.ts +1 -5
  671. package/dist/table/createTableSelectAllCheckbox.d.ts.map +1 -1
  672. package/dist/table/createTableSelectionCheckbox.d.ts +1 -5
  673. package/dist/table/createTableSelectionCheckbox.d.ts.map +1 -1
  674. package/dist/table/index.d.ts +2 -2
  675. package/dist/table/intl/index.d.ts +23 -0
  676. package/dist/table/intl/index.d.ts.map +1 -0
  677. package/dist/table/types.d.ts +44 -2
  678. package/dist/table/types.d.ts.map +1 -1
  679. package/dist/table/utils.d.ts.map +1 -1
  680. package/dist/tabs/createTabs.d.ts +5 -9
  681. package/dist/tabs/createTabs.d.ts.map +1 -1
  682. package/dist/tag/createTag.d.ts +4 -8
  683. package/dist/tag/createTag.d.ts.map +1 -1
  684. package/dist/tag/createTagGroup.d.ts +0 -9
  685. package/dist/tag/createTagGroup.d.ts.map +1 -1
  686. package/dist/tag/intl/index.d.ts +14 -0
  687. package/dist/tag/intl/index.d.ts.map +1 -0
  688. package/dist/textfield/createTextField.d.ts +6 -8
  689. package/dist/textfield/createTextField.d.ts.map +1 -1
  690. package/dist/toast/createToast.d.ts +1 -8
  691. package/dist/toast/createToast.d.ts.map +1 -1
  692. package/dist/toast/createToastRegion.d.ts +7 -18
  693. package/dist/toast/createToastRegion.d.ts.map +1 -1
  694. package/dist/toast/intl/index.d.ts +14 -0
  695. package/dist/toast/intl/index.d.ts.map +1 -0
  696. package/dist/toggle/createToggle.d.ts +8 -1
  697. package/dist/toggle/createToggle.d.ts.map +1 -1
  698. package/dist/tokenfield/createToken.d.ts +15 -0
  699. package/dist/tokenfield/createToken.d.ts.map +1 -0
  700. package/dist/tokenfield/createTokenField.d.ts +52 -0
  701. package/dist/tokenfield/createTokenField.d.ts.map +1 -0
  702. package/dist/tokenfield/index.d.ts +3 -0
  703. package/dist/tokenfield/index.d.ts.map +1 -0
  704. package/dist/tokenfield/index.js +2 -0
  705. package/dist/tokenfield/index.jsx +2 -0
  706. package/dist/toolbar/createToolbar.d.ts +1 -1
  707. package/dist/toolbar/createToolbar.d.ts.map +1 -1
  708. package/dist/tooltip/createPreviewTrigger.d.ts +23 -0
  709. package/dist/tooltip/createPreviewTrigger.d.ts.map +1 -0
  710. package/dist/tooltip/createSafeArea.d.ts +20 -0
  711. package/dist/tooltip/createSafeArea.d.ts.map +1 -0
  712. package/dist/tooltip/createTooltip.d.ts +1 -1
  713. package/dist/tooltip/createTooltip.d.ts.map +1 -1
  714. package/dist/tooltip/createTooltipTrigger.d.ts +1 -9
  715. package/dist/tooltip/createTooltipTrigger.d.ts.map +1 -1
  716. package/dist/tooltip/index.d.ts +2 -0
  717. package/dist/tooltip/index.d.ts.map +1 -1
  718. package/dist/tooltip/index.js +2 -2
  719. package/dist/tooltip/index.jsx +2 -2
  720. package/dist/tooltip/intl/index.d.ts +4 -0
  721. package/dist/tooltip/intl/index.d.ts.map +1 -0
  722. package/dist/tree/createTree.d.ts +1 -5
  723. package/dist/tree/createTree.d.ts.map +1 -1
  724. package/dist/tree/createTreeItem.d.ts +1 -5
  725. package/dist/tree/createTreeItem.d.ts.map +1 -1
  726. package/dist/tree/createTreeSelectionCheckbox.d.ts +1 -5
  727. package/dist/tree/createTreeSelectionCheckbox.d.ts.map +1 -1
  728. package/dist/tree/intl/index.d.ts +14 -0
  729. package/dist/tree/intl/index.d.ts.map +1 -0
  730. package/dist/tree/types.d.ts +35 -2
  731. package/dist/tree/types.d.ts.map +1 -1
  732. package/dist/utils/ShadowTreeWalker.d.ts +30 -0
  733. package/dist/utils/ShadowTreeWalker.d.ts.map +1 -0
  734. package/dist/utils/animation.d.ts +1 -29
  735. package/dist/utils/animation.d.ts.map +1 -1
  736. package/dist/utils/capture.d.ts +14 -0
  737. package/dist/utils/capture.d.ts.map +1 -0
  738. package/dist/utils/createDescription.d.ts +1 -25
  739. package/dist/utils/createDescription.d.ts.map +1 -1
  740. package/dist/utils/dom.d.ts +45 -11
  741. package/dist/utils/dom.d.ts.map +1 -1
  742. package/dist/utils/domAttrs.d.ts +16 -0
  743. package/dist/utils/domAttrs.d.ts.map +1 -0
  744. package/dist/utils/env.d.ts +2 -0
  745. package/dist/utils/env.d.ts.map +1 -1
  746. package/dist/utils/events.d.ts +0 -4
  747. package/dist/utils/events.d.ts.map +1 -1
  748. package/dist/utils/filterDOMProps.d.ts +0 -6
  749. package/dist/utils/filterDOMProps.d.ts.map +1 -1
  750. package/dist/utils/focus.d.ts +19 -6
  751. package/dist/utils/focus.d.ts.map +1 -1
  752. package/dist/utils/geometry.d.ts +1 -1
  753. package/dist/utils/geometry.d.ts.map +1 -1
  754. package/dist/utils/getMetaValue.d.ts +13 -0
  755. package/dist/utils/getMetaValue.d.ts.map +1 -0
  756. package/dist/utils/getNonce.d.ts +9 -0
  757. package/dist/utils/getNonce.d.ts.map +1 -0
  758. package/dist/utils/globalListeners.d.ts +0 -6
  759. package/dist/utils/globalListeners.d.ts.map +1 -1
  760. package/dist/utils/index.d.ts +6 -1
  761. package/dist/utils/index.d.ts.map +1 -1
  762. package/dist/utils/index.js +7 -4
  763. package/dist/utils/index.jsx +7 -4
  764. package/dist/utils/keyboard.d.ts +0 -4
  765. package/dist/utils/keyboard.d.ts.map +1 -1
  766. package/dist/utils/mergeProps.d.ts +5 -2
  767. package/dist/utils/mergeProps.d.ts.map +1 -1
  768. package/dist/utils/owner.d.ts +14 -0
  769. package/dist/utils/owner.d.ts.map +1 -0
  770. package/dist/utils/platform.d.ts +0 -4
  771. package/dist/utils/platform.d.ts.map +1 -1
  772. package/dist/utils/reactivity.d.ts +2 -0
  773. package/dist/utils/reactivity.d.ts.map +1 -1
  774. package/dist/utils/refs.d.ts +20 -0
  775. package/dist/utils/refs.d.ts.map +1 -0
  776. package/dist/utils/runAfterTransition.d.ts +2 -0
  777. package/dist/utils/runAfterTransition.d.ts.map +1 -0
  778. package/dist/utils/scrollIntoView.d.ts +0 -4
  779. package/dist/utils/scrollIntoView.d.ts.map +1 -1
  780. package/dist/utils/splitProps.d.ts +17 -0
  781. package/dist/utils/splitProps.d.ts.map +1 -0
  782. package/dist/utils/textSelection.d.ts +0 -8
  783. package/dist/utils/textSelection.d.ts.map +1 -1
  784. package/dist/virtualizer/ScrollView.d.ts +38 -0
  785. package/dist/virtualizer/ScrollView.d.ts.map +1 -0
  786. package/dist/virtualizer/index.d.ts +3 -0
  787. package/dist/virtualizer/index.d.ts.map +1 -0
  788. package/dist/virtualizer/index.js +2 -0
  789. package/dist/virtualizer/index.jsx +2 -0
  790. package/dist/virtualizer/utils.d.ts +10 -0
  791. package/dist/virtualizer/utils.d.ts.map +1 -0
  792. package/dist/visually-hidden/createVisuallyHidden.d.ts +2 -9
  793. package/dist/visually-hidden/createVisuallyHidden.d.ts.map +1 -1
  794. package/dist/visually-hidden/index.js +1 -1
  795. package/dist/visually-hidden/index.jsx +1 -1
  796. package/package.json +30 -11
  797. package/src/actiongroup/createActionGroup.ts +49 -27
  798. package/src/autocomplete/createAutocomplete.ts +32 -5
  799. package/src/autocomplete/intl/ar-AE.json +3 -0
  800. package/src/autocomplete/intl/bg-BG.json +3 -0
  801. package/src/autocomplete/intl/cs-CZ.json +3 -0
  802. package/src/autocomplete/intl/da-DK.json +3 -0
  803. package/src/autocomplete/intl/de-DE.json +3 -0
  804. package/src/autocomplete/intl/el-GR.json +3 -0
  805. package/src/autocomplete/intl/en-US.json +3 -0
  806. package/src/autocomplete/intl/es-ES.json +3 -0
  807. package/src/autocomplete/intl/et-EE.json +3 -0
  808. package/src/autocomplete/intl/fi-FI.json +3 -0
  809. package/src/autocomplete/intl/fr-FR.json +3 -0
  810. package/src/autocomplete/intl/he-IL.json +3 -0
  811. package/src/autocomplete/intl/hr-HR.json +3 -0
  812. package/src/autocomplete/intl/hu-HU.json +3 -0
  813. package/src/autocomplete/intl/index.ts +122 -0
  814. package/src/autocomplete/intl/it-IT.json +3 -0
  815. package/src/autocomplete/intl/ja-JP.json +3 -0
  816. package/src/autocomplete/intl/ko-KR.json +3 -0
  817. package/src/autocomplete/intl/lt-LT.json +3 -0
  818. package/src/autocomplete/intl/lv-LV.json +3 -0
  819. package/src/autocomplete/intl/nb-NO.json +3 -0
  820. package/src/autocomplete/intl/nl-NL.json +3 -0
  821. package/src/autocomplete/intl/pl-PL.json +3 -0
  822. package/src/autocomplete/intl/pt-BR.json +3 -0
  823. package/src/autocomplete/intl/pt-PT.json +3 -0
  824. package/src/autocomplete/intl/ro-RO.json +3 -0
  825. package/src/autocomplete/intl/ru-RU.json +3 -0
  826. package/src/autocomplete/intl/sk-SK.json +3 -0
  827. package/src/autocomplete/intl/sl-SI.json +3 -0
  828. package/src/autocomplete/intl/sr-SP.json +3 -0
  829. package/src/autocomplete/intl/sv-SE.json +3 -0
  830. package/src/autocomplete/intl/tr-TR.json +3 -0
  831. package/src/autocomplete/intl/uk-UA.json +3 -0
  832. package/src/autocomplete/intl/zh-CN.json +3 -0
  833. package/src/autocomplete/intl/zh-TW.json +3 -0
  834. package/src/breadcrumbs/createBreadcrumbs.ts +18 -1
  835. package/src/breadcrumbs/intl/ar-AE.json +3 -0
  836. package/src/breadcrumbs/intl/bg-BG.json +3 -0
  837. package/src/breadcrumbs/intl/cs-CZ.json +3 -0
  838. package/src/breadcrumbs/intl/da-DK.json +3 -0
  839. package/src/breadcrumbs/intl/de-DE.json +3 -0
  840. package/src/breadcrumbs/intl/el-GR.json +3 -0
  841. package/src/breadcrumbs/intl/en-US.json +3 -0
  842. package/src/breadcrumbs/intl/es-ES.json +3 -0
  843. package/src/breadcrumbs/intl/et-EE.json +3 -0
  844. package/src/breadcrumbs/intl/fi-FI.json +3 -0
  845. package/src/breadcrumbs/intl/fr-FR.json +3 -0
  846. package/src/breadcrumbs/intl/he-IL.json +3 -0
  847. package/src/breadcrumbs/intl/hr-HR.json +3 -0
  848. package/src/breadcrumbs/intl/hu-HU.json +3 -0
  849. package/src/breadcrumbs/intl/index.ts +122 -0
  850. package/src/breadcrumbs/intl/it-IT.json +3 -0
  851. package/src/breadcrumbs/intl/ja-JP.json +3 -0
  852. package/src/breadcrumbs/intl/ko-KR.json +3 -0
  853. package/src/breadcrumbs/intl/lt-LT.json +3 -0
  854. package/src/breadcrumbs/intl/lv-LV.json +3 -0
  855. package/src/breadcrumbs/intl/nb-NO.json +3 -0
  856. package/src/breadcrumbs/intl/nl-NL.json +3 -0
  857. package/src/breadcrumbs/intl/pl-PL.json +3 -0
  858. package/src/breadcrumbs/intl/pt-BR.json +3 -0
  859. package/src/breadcrumbs/intl/pt-PT.json +3 -0
  860. package/src/breadcrumbs/intl/ro-RO.json +3 -0
  861. package/src/breadcrumbs/intl/ru-RU.json +3 -0
  862. package/src/breadcrumbs/intl/sk-SK.json +3 -0
  863. package/src/breadcrumbs/intl/sl-SI.json +3 -0
  864. package/src/breadcrumbs/intl/sr-SP.json +3 -0
  865. package/src/breadcrumbs/intl/sv-SE.json +3 -0
  866. package/src/breadcrumbs/intl/tr-TR.json +3 -0
  867. package/src/breadcrumbs/intl/uk-UA.json +3 -0
  868. package/src/breadcrumbs/intl/zh-CN.json +3 -0
  869. package/src/breadcrumbs/intl/zh-TW.json +3 -0
  870. package/src/button/createButton.ts +15 -1
  871. package/src/button/createToggleButton.ts +18 -5
  872. package/src/button/createToggleButtonGroup.ts +23 -8
  873. package/src/button/types.ts +16 -0
  874. package/src/calendar/createCalendar.ts +22 -3
  875. package/src/calendar/createCalendarCell.ts +104 -15
  876. package/src/calendar/createCalendarGrid.ts +37 -13
  877. package/src/calendar/createCalendarMonthPicker.ts +14 -0
  878. package/src/calendar/createCalendarYearPicker.ts +14 -0
  879. package/src/calendar/createRangeCalendar.ts +124 -1
  880. package/src/calendar/createRangeCalendarCell.ts +179 -40
  881. package/src/calendar/intl/index.ts +37 -0
  882. package/src/calendar/utils.ts +14 -0
  883. package/src/checkbox/createCheckbox.ts +32 -17
  884. package/src/checkbox/createCheckboxGroup.ts +31 -13
  885. package/src/checkbox/createCheckboxGroupItem.ts +15 -1
  886. package/src/collections/index.ts +21 -3
  887. package/src/color/createColorArea.ts +226 -29
  888. package/src/color/createColorField.ts +98 -22
  889. package/src/color/createColorSlider.ts +24 -3
  890. package/src/color/createColorSwatch.ts +18 -1
  891. package/src/color/createColorWheel.ts +27 -5
  892. package/src/color/intl/index.ts +35 -0
  893. package/src/color/types.ts +47 -1
  894. package/src/combobox/createComboBox.ts +303 -152
  895. package/src/combobox/intl/generated-locales.ts +38 -1
  896. package/src/combobox/intl/index.ts +38 -2
  897. package/src/datepicker/createDateField.ts +38 -22
  898. package/src/datepicker/createDatePicker.ts +14 -0
  899. package/src/datepicker/createDatePickerGroup.ts +24 -12
  900. package/src/datepicker/createDateRangePicker.ts +14 -0
  901. package/src/datepicker/createDateSegment.ts +110 -46
  902. package/src/datepicker/createDisplayNames.ts +16 -1
  903. package/src/datepicker/createTimeField.ts +15 -5
  904. package/src/datepicker/intl.ts +623 -544
  905. package/src/dialog/createDialog.ts +57 -30
  906. package/src/dialog/types.ts +14 -0
  907. package/src/disclosure/createDisclosure.ts +28 -6
  908. package/src/disclosure/createDisclosureGroup.ts +3 -4
  909. package/src/dnd/DragManager.ts +60 -9
  910. package/src/dnd/DropTargetKeyboardNavigation.ts +8 -6
  911. package/src/dnd/createDrag.ts +18 -1
  912. package/src/dnd/createDraggableCollection.ts +96 -32
  913. package/src/dnd/createDraggableItem.ts +73 -31
  914. package/src/dnd/createDrop.ts +18 -1
  915. package/src/dnd/createDropIndicator.ts +92 -0
  916. package/src/dnd/createDroppableCollection.ts +113 -48
  917. package/src/dnd/createDroppableItem.ts +161 -13
  918. package/src/dnd/index.ts +3 -0
  919. package/src/dnd/intl/index.ts +77 -66
  920. package/src/dnd/types.ts +20 -1
  921. package/src/dnd/utils.ts +19 -0
  922. package/src/focus/FocusScope.tsx +542 -157
  923. package/src/focus/createAutoFocus.ts +94 -68
  924. package/src/focus/createFocusRestore.ts +16 -12
  925. package/src/focus/createHasTabbableChild.ts +78 -0
  926. package/src/focus/createVirtualFocus.ts +21 -5
  927. package/src/focus/virtualFocus.ts +1 -1
  928. package/src/form/createFormReset.ts +40 -17
  929. package/src/form/createFormValidation.ts +128 -86
  930. package/src/grid/GridKeyboardDelegate.ts +14 -0
  931. package/src/grid/createGrid.ts +17 -2
  932. package/src/grid/createGridCell.ts +17 -2
  933. package/src/grid/createGridRow.ts +17 -2
  934. package/src/grid/index.ts +2 -2
  935. package/src/grid/intl/ar-AE.json +8 -0
  936. package/src/grid/intl/bg-BG.json +8 -0
  937. package/src/grid/intl/cs-CZ.json +8 -0
  938. package/src/grid/intl/da-DK.json +8 -0
  939. package/src/grid/intl/de-DE.json +8 -0
  940. package/src/grid/intl/el-GR.json +8 -0
  941. package/src/grid/intl/en-US.json +8 -0
  942. package/src/grid/intl/es-ES.json +8 -0
  943. package/src/grid/intl/et-EE.json +8 -0
  944. package/src/grid/intl/fi-FI.json +8 -0
  945. package/src/grid/intl/fr-FR.json +8 -0
  946. package/src/grid/intl/he-IL.json +8 -0
  947. package/src/grid/intl/hr-HR.json +8 -0
  948. package/src/grid/intl/hu-HU.json +8 -0
  949. package/src/grid/intl/index.ts +127 -0
  950. package/src/grid/intl/it-IT.json +8 -0
  951. package/src/grid/intl/ja-JP.json +8 -0
  952. package/src/grid/intl/ko-KR.json +8 -0
  953. package/src/grid/intl/lt-LT.json +8 -0
  954. package/src/grid/intl/lv-LV.json +8 -0
  955. package/src/grid/intl/nb-NO.json +8 -0
  956. package/src/grid/intl/nl-NL.json +8 -0
  957. package/src/grid/intl/pl-PL.json +8 -0
  958. package/src/grid/intl/pt-BR.json +8 -0
  959. package/src/grid/intl/pt-PT.json +8 -0
  960. package/src/grid/intl/ro-RO.json +8 -0
  961. package/src/grid/intl/ru-RU.json +8 -0
  962. package/src/grid/intl/sk-SK.json +8 -0
  963. package/src/grid/intl/sl-SI.json +8 -0
  964. package/src/grid/intl/sr-SP.json +8 -0
  965. package/src/grid/intl/sv-SE.json +8 -0
  966. package/src/grid/intl/tr-TR.json +8 -0
  967. package/src/grid/intl/uk-UA.json +8 -0
  968. package/src/grid/intl/zh-CN.json +8 -0
  969. package/src/grid/intl/zh-TW.json +8 -0
  970. package/src/grid/types.ts +25 -2
  971. package/src/gridlist/createGridList.ts +172 -42
  972. package/src/gridlist/createGridListItem.ts +51 -13
  973. package/src/gridlist/createGridListSection.ts +14 -0
  974. package/src/gridlist/createGridListSelectionCheckbox.ts +31 -4
  975. package/src/gridlist/intl/ar-AE.json +4 -0
  976. package/src/gridlist/intl/bg-BG.json +4 -0
  977. package/src/gridlist/intl/cs-CZ.json +4 -0
  978. package/src/gridlist/intl/da-DK.json +4 -0
  979. package/src/gridlist/intl/de-DE.json +4 -0
  980. package/src/gridlist/intl/el-GR.json +4 -0
  981. package/src/gridlist/intl/en-US.json +4 -0
  982. package/src/gridlist/intl/es-ES.json +4 -0
  983. package/src/gridlist/intl/et-EE.json +4 -0
  984. package/src/gridlist/intl/fi-FI.json +4 -0
  985. package/src/gridlist/intl/fr-FR.json +4 -0
  986. package/src/gridlist/intl/he-IL.json +4 -0
  987. package/src/gridlist/intl/hr-HR.json +4 -0
  988. package/src/gridlist/intl/hu-HU.json +4 -0
  989. package/src/gridlist/intl/index.ts +123 -0
  990. package/src/gridlist/intl/it-IT.json +4 -0
  991. package/src/gridlist/intl/ja-JP.json +4 -0
  992. package/src/gridlist/intl/ko-KR.json +4 -0
  993. package/src/gridlist/intl/lt-LT.json +4 -0
  994. package/src/gridlist/intl/lv-LV.json +4 -0
  995. package/src/gridlist/intl/nb-NO.json +4 -0
  996. package/src/gridlist/intl/nl-NL.json +4 -0
  997. package/src/gridlist/intl/pl-PL.json +4 -0
  998. package/src/gridlist/intl/pt-BR.json +4 -0
  999. package/src/gridlist/intl/pt-PT.json +4 -0
  1000. package/src/gridlist/intl/ro-RO.json +4 -0
  1001. package/src/gridlist/intl/ru-RU.json +4 -0
  1002. package/src/gridlist/intl/sk-SK.json +4 -0
  1003. package/src/gridlist/intl/sl-SI.json +4 -0
  1004. package/src/gridlist/intl/sr-SP.json +4 -0
  1005. package/src/gridlist/intl/sv-SE.json +4 -0
  1006. package/src/gridlist/intl/tr-TR.json +4 -0
  1007. package/src/gridlist/intl/uk-UA.json +4 -0
  1008. package/src/gridlist/intl/zh-CN.json +4 -0
  1009. package/src/gridlist/intl/zh-TW.json +4 -0
  1010. package/src/gridlist/types.ts +54 -2
  1011. package/src/i18n/compileIcu.ts +440 -0
  1012. package/src/i18n/createCollator.ts +14 -0
  1013. package/src/i18n/createDateFormatter.ts +14 -0
  1014. package/src/i18n/createFilter.ts +14 -0
  1015. package/src/i18n/createListFormatter.ts +38 -0
  1016. package/src/i18n/createNumberFormatter.ts +14 -0
  1017. package/src/i18n/createStringFormatter.ts +64 -8
  1018. package/src/i18n/index.ts +3 -0
  1019. package/src/i18n/locale.tsx +60 -19
  1020. package/src/i18n/utils.ts +14 -0
  1021. package/src/index.ts +49 -1
  1022. package/src/interactions/FocusableProvider.tsx +28 -11
  1023. package/src/interactions/PressEvent.ts +16 -1
  1024. package/src/interactions/createContextMenu.ts +108 -0
  1025. package/src/interactions/createFocus.ts +26 -6
  1026. package/src/interactions/createFocusRing.ts +28 -13
  1027. package/src/interactions/createFocusWithin.ts +23 -3
  1028. package/src/interactions/createFocusable.ts +45 -28
  1029. package/src/interactions/createHover.ts +102 -81
  1030. package/src/interactions/createInteractionModality.ts +135 -45
  1031. package/src/interactions/createKeyboard.ts +85 -9
  1032. package/src/interactions/createKeyboardShortcutHandler.ts +157 -0
  1033. package/src/interactions/createLongPress.ts +31 -9
  1034. package/src/interactions/createMove.ts +24 -3
  1035. package/src/interactions/createPress.ts +85 -41
  1036. package/src/interactions/index.ts +1 -0
  1037. package/src/label/createField.ts +58 -63
  1038. package/src/label/createLabel.ts +21 -4
  1039. package/src/label/createLabels.ts +25 -1
  1040. package/src/landmark/createLandmark.ts +27 -4
  1041. package/src/link/createLink.ts +20 -12
  1042. package/src/listbox/createListBox.ts +86 -310
  1043. package/src/listbox/createOption.ts +50 -14
  1044. package/src/live-announcer/announce.ts +21 -6
  1045. package/src/menu/createMenu.ts +92 -5
  1046. package/src/menu/createMenuItem.ts +40 -23
  1047. package/src/menu/createMenuTrigger.ts +179 -51
  1048. package/src/menu/index.ts +2 -0
  1049. package/src/menu/intl/index.ts +130 -0
  1050. package/src/meter/createMeter.ts +20 -5
  1051. package/src/numberfield/createNumberField.ts +254 -14
  1052. package/src/overlays/ariaHideOutside.ts +76 -11
  1053. package/src/overlays/createInteractOutside.ts +74 -47
  1054. package/src/overlays/createModal.tsx +42 -27
  1055. package/src/overlays/createOverlay.ts +107 -66
  1056. package/src/overlays/createOverlayTrigger.ts +21 -6
  1057. package/src/overlays/createPreventScroll.ts +92 -62
  1058. package/src/overlays/index.ts +2 -0
  1059. package/src/overlays/intl/ar-AE.json +3 -0
  1060. package/src/overlays/intl/bg-BG.json +3 -0
  1061. package/src/overlays/intl/cs-CZ.json +3 -0
  1062. package/src/overlays/intl/da-DK.json +3 -0
  1063. package/src/overlays/intl/de-DE.json +3 -0
  1064. package/src/overlays/intl/el-GR.json +3 -0
  1065. package/src/overlays/intl/en-US.json +3 -0
  1066. package/src/overlays/intl/es-ES.json +3 -0
  1067. package/src/overlays/intl/et-EE.json +3 -0
  1068. package/src/overlays/intl/fi-FI.json +3 -0
  1069. package/src/overlays/intl/fr-FR.json +3 -0
  1070. package/src/overlays/intl/he-IL.json +3 -0
  1071. package/src/overlays/intl/hr-HR.json +3 -0
  1072. package/src/overlays/intl/hu-HU.json +3 -0
  1073. package/src/overlays/intl/index.ts +122 -0
  1074. package/src/overlays/intl/it-IT.json +3 -0
  1075. package/src/overlays/intl/ja-JP.json +3 -0
  1076. package/src/overlays/intl/ko-KR.json +3 -0
  1077. package/src/overlays/intl/lt-LT.json +3 -0
  1078. package/src/overlays/intl/lv-LV.json +3 -0
  1079. package/src/overlays/intl/nb-NO.json +3 -0
  1080. package/src/overlays/intl/nl-NL.json +3 -0
  1081. package/src/overlays/intl/pl-PL.json +3 -0
  1082. package/src/overlays/intl/pt-BR.json +3 -0
  1083. package/src/overlays/intl/pt-PT.json +3 -0
  1084. package/src/overlays/intl/ro-RO.json +3 -0
  1085. package/src/overlays/intl/ru-RU.json +3 -0
  1086. package/src/overlays/intl/sk-SK.json +3 -0
  1087. package/src/overlays/intl/sl-SI.json +3 -0
  1088. package/src/overlays/intl/sr-SP.json +3 -0
  1089. package/src/overlays/intl/sv-SE.json +3 -0
  1090. package/src/overlays/intl/tr-TR.json +3 -0
  1091. package/src/overlays/intl/uk-UA.json +3 -0
  1092. package/src/overlays/intl/zh-CN.json +3 -0
  1093. package/src/overlays/intl/zh-TW.json +3 -0
  1094. package/src/popover/calculatePosition.ts +21 -3
  1095. package/src/popover/createOverlayPosition.ts +149 -41
  1096. package/src/popover/createPopover.ts +88 -23
  1097. package/src/progress/createProgressBar.ts +19 -4
  1098. package/src/radio/createRadio.ts +80 -25
  1099. package/src/radio/createRadioGroup.ts +47 -13
  1100. package/src/searchfield/createSearchField.ts +31 -2
  1101. package/src/searchfield/intl/ar-AE.json +3 -0
  1102. package/src/searchfield/intl/bg-BG.json +3 -0
  1103. package/src/searchfield/intl/cs-CZ.json +3 -0
  1104. package/src/searchfield/intl/da-DK.json +3 -0
  1105. package/src/searchfield/intl/de-DE.json +3 -0
  1106. package/src/searchfield/intl/el-GR.json +3 -0
  1107. package/src/searchfield/intl/en-US.json +3 -0
  1108. package/src/searchfield/intl/es-ES.json +3 -0
  1109. package/src/searchfield/intl/et-EE.json +3 -0
  1110. package/src/searchfield/intl/fi-FI.json +3 -0
  1111. package/src/searchfield/intl/fr-FR.json +3 -0
  1112. package/src/searchfield/intl/he-IL.json +3 -0
  1113. package/src/searchfield/intl/hr-HR.json +3 -0
  1114. package/src/searchfield/intl/hu-HU.json +3 -0
  1115. package/src/searchfield/intl/index.ts +122 -0
  1116. package/src/searchfield/intl/it-IT.json +3 -0
  1117. package/src/searchfield/intl/ja-JP.json +3 -0
  1118. package/src/searchfield/intl/ko-KR.json +3 -0
  1119. package/src/searchfield/intl/lt-LT.json +3 -0
  1120. package/src/searchfield/intl/lv-LV.json +3 -0
  1121. package/src/searchfield/intl/nb-NO.json +3 -0
  1122. package/src/searchfield/intl/nl-NL.json +3 -0
  1123. package/src/searchfield/intl/pl-PL.json +3 -0
  1124. package/src/searchfield/intl/pt-BR.json +3 -0
  1125. package/src/searchfield/intl/pt-PT.json +3 -0
  1126. package/src/searchfield/intl/ro-RO.json +3 -0
  1127. package/src/searchfield/intl/ru-RU.json +3 -0
  1128. package/src/searchfield/intl/sk-SK.json +3 -0
  1129. package/src/searchfield/intl/sl-SI.json +3 -0
  1130. package/src/searchfield/intl/sr-SP.json +3 -0
  1131. package/src/searchfield/intl/sv-SE.json +3 -0
  1132. package/src/searchfield/intl/tr-TR.json +3 -0
  1133. package/src/searchfield/intl/uk-UA.json +3 -0
  1134. package/src/searchfield/intl/zh-CN.json +3 -0
  1135. package/src/searchfield/intl/zh-TW.json +3 -0
  1136. package/src/select/createHiddenSelect.tsx +166 -69
  1137. package/src/select/createSelect.ts +80 -34
  1138. package/src/selection/DOMLayoutDelegate.ts +14 -0
  1139. package/src/selection/ListKeyboardDelegate.ts +16 -1
  1140. package/src/selection/constants.ts +14 -0
  1141. package/src/selection/createCollectionRowInteraction.ts +75 -6
  1142. package/src/selection/createScrollIntoViewOnFocus.ts +23 -8
  1143. package/src/selection/createSelectableCollection.ts +352 -226
  1144. package/src/selection/createSelectableItem.ts +51 -12
  1145. package/src/selection/createSelectableList.ts +21 -1
  1146. package/src/selection/createTypeSelect.ts +21 -5
  1147. package/src/selection/selectItem.ts +14 -0
  1148. package/src/selection/utils.ts +15 -1
  1149. package/src/separator/createSeparator.ts +17 -1
  1150. package/src/slider/createSlider.ts +24 -18
  1151. package/src/spinbutton/createSpinButton.ts +16 -2
  1152. package/src/spinbutton/index.ts +2 -10
  1153. package/src/spinbutton/intl.ts +70 -34
  1154. package/src/ssr/index.tsx +79 -48
  1155. package/src/steplist/createStepList.ts +17 -2
  1156. package/src/switch/createSwitch.ts +25 -4
  1157. package/src/table/createTable.ts +104 -52
  1158. package/src/table/createTableCell.ts +17 -2
  1159. package/src/table/createTableColumnHeader.ts +21 -3
  1160. package/src/table/createTableColumnResize.ts +19 -3
  1161. package/src/table/createTableHeaderRow.ts +17 -2
  1162. package/src/table/createTableRow.ts +29 -22
  1163. package/src/table/createTableRowGroup.ts +18 -3
  1164. package/src/table/createTableSelectAllCheckbox.ts +30 -14
  1165. package/src/table/createTableSelectionCheckbox.ts +21 -3
  1166. package/src/table/index.ts +2 -2
  1167. package/src/table/intl/ar-AE.json +13 -0
  1168. package/src/table/intl/bg-BG.json +13 -0
  1169. package/src/table/intl/cs-CZ.json +13 -0
  1170. package/src/table/intl/da-DK.json +13 -0
  1171. package/src/table/intl/de-DE.json +13 -0
  1172. package/src/table/intl/el-GR.json +13 -0
  1173. package/src/table/intl/en-US.json +13 -0
  1174. package/src/table/intl/es-ES.json +13 -0
  1175. package/src/table/intl/et-EE.json +13 -0
  1176. package/src/table/intl/fi-FI.json +13 -0
  1177. package/src/table/intl/fr-FR.json +13 -0
  1178. package/src/table/intl/he-IL.json +13 -0
  1179. package/src/table/intl/hr-HR.json +13 -0
  1180. package/src/table/intl/hu-HU.json +13 -0
  1181. package/src/table/intl/index.ts +132 -0
  1182. package/src/table/intl/it-IT.json +13 -0
  1183. package/src/table/intl/ja-JP.json +13 -0
  1184. package/src/table/intl/ko-KR.json +13 -0
  1185. package/src/table/intl/lt-LT.json +13 -0
  1186. package/src/table/intl/lv-LV.json +13 -0
  1187. package/src/table/intl/nb-NO.json +13 -0
  1188. package/src/table/intl/nl-NL.json +13 -0
  1189. package/src/table/intl/pl-PL.json +13 -0
  1190. package/src/table/intl/pt-BR.json +13 -0
  1191. package/src/table/intl/pt-PT.json +13 -0
  1192. package/src/table/intl/ro-RO.json +13 -0
  1193. package/src/table/intl/ru-RU.json +13 -0
  1194. package/src/table/intl/sk-SK.json +13 -0
  1195. package/src/table/intl/sl-SI.json +13 -0
  1196. package/src/table/intl/sr-SP.json +13 -0
  1197. package/src/table/intl/sv-SE.json +13 -0
  1198. package/src/table/intl/tr-TR.json +13 -0
  1199. package/src/table/intl/uk-UA.json +13 -0
  1200. package/src/table/intl/zh-CN.json +13 -0
  1201. package/src/table/intl/zh-TW.json +13 -0
  1202. package/src/table/types.ts +44 -2
  1203. package/src/table/utils.ts +15 -6
  1204. package/src/tabs/createTabs.ts +104 -37
  1205. package/src/tag/createTag.ts +118 -37
  1206. package/src/tag/createTagGroup.ts +20 -12
  1207. package/src/tag/intl/ar-AE.json +4 -0
  1208. package/src/tag/intl/bg-BG.json +4 -0
  1209. package/src/tag/intl/cs-CZ.json +4 -0
  1210. package/src/tag/intl/da-DK.json +4 -0
  1211. package/src/tag/intl/de-DE.json +4 -0
  1212. package/src/tag/intl/el-GR.json +4 -0
  1213. package/src/tag/intl/en-US.json +4 -0
  1214. package/src/tag/intl/es-ES.json +4 -0
  1215. package/src/tag/intl/et-EE.json +4 -0
  1216. package/src/tag/intl/fi-FI.json +4 -0
  1217. package/src/tag/intl/fr-FR.json +4 -0
  1218. package/src/tag/intl/he-IL.json +4 -0
  1219. package/src/tag/intl/hr-HR.json +4 -0
  1220. package/src/tag/intl/hu-HU.json +4 -0
  1221. package/src/tag/intl/index.ts +123 -0
  1222. package/src/tag/intl/it-IT.json +4 -0
  1223. package/src/tag/intl/ja-JP.json +4 -0
  1224. package/src/tag/intl/ko-KR.json +4 -0
  1225. package/src/tag/intl/lt-LT.json +4 -0
  1226. package/src/tag/intl/lv-LV.json +4 -0
  1227. package/src/tag/intl/nb-NO.json +4 -0
  1228. package/src/tag/intl/nl-NL.json +4 -0
  1229. package/src/tag/intl/pl-PL.json +4 -0
  1230. package/src/tag/intl/pt-BR.json +4 -0
  1231. package/src/tag/intl/pt-PT.json +4 -0
  1232. package/src/tag/intl/ro-RO.json +4 -0
  1233. package/src/tag/intl/ru-RU.json +4 -0
  1234. package/src/tag/intl/sk-SK.json +4 -0
  1235. package/src/tag/intl/sl-SI.json +4 -0
  1236. package/src/tag/intl/sr-SP.json +4 -0
  1237. package/src/tag/intl/sv-SE.json +4 -0
  1238. package/src/tag/intl/tr-TR.json +4 -0
  1239. package/src/tag/intl/uk-UA.json +4 -0
  1240. package/src/tag/intl/zh-CN.json +4 -0
  1241. package/src/tag/intl/zh-TW.json +4 -0
  1242. package/src/textfield/createTextField.ts +104 -14
  1243. package/src/toast/createToast.ts +39 -6
  1244. package/src/toast/createToastRegion.ts +28 -15
  1245. package/src/toast/intl/ar-AE.json +4 -0
  1246. package/src/toast/intl/bg-BG.json +4 -0
  1247. package/src/toast/intl/cs-CZ.json +4 -0
  1248. package/src/toast/intl/da-DK.json +4 -0
  1249. package/src/toast/intl/de-DE.json +4 -0
  1250. package/src/toast/intl/el-GR.json +4 -0
  1251. package/src/toast/intl/en-US.json +4 -0
  1252. package/src/toast/intl/es-ES.json +4 -0
  1253. package/src/toast/intl/et-EE.json +4 -0
  1254. package/src/toast/intl/fi-FI.json +4 -0
  1255. package/src/toast/intl/fr-FR.json +4 -0
  1256. package/src/toast/intl/he-IL.json +4 -0
  1257. package/src/toast/intl/hr-HR.json +4 -0
  1258. package/src/toast/intl/hu-HU.json +4 -0
  1259. package/src/toast/intl/index.ts +123 -0
  1260. package/src/toast/intl/it-IT.json +4 -0
  1261. package/src/toast/intl/ja-JP.json +4 -0
  1262. package/src/toast/intl/ko-KR.json +4 -0
  1263. package/src/toast/intl/lt-LT.json +4 -0
  1264. package/src/toast/intl/lv-LV.json +4 -0
  1265. package/src/toast/intl/nb-NO.json +4 -0
  1266. package/src/toast/intl/nl-NL.json +4 -0
  1267. package/src/toast/intl/pl-PL.json +4 -0
  1268. package/src/toast/intl/pt-BR.json +4 -0
  1269. package/src/toast/intl/pt-PT.json +4 -0
  1270. package/src/toast/intl/ro-RO.json +4 -0
  1271. package/src/toast/intl/ru-RU.json +4 -0
  1272. package/src/toast/intl/sk-SK.json +4 -0
  1273. package/src/toast/intl/sl-SI.json +4 -0
  1274. package/src/toast/intl/sr-SP.json +4 -0
  1275. package/src/toast/intl/sv-SE.json +4 -0
  1276. package/src/toast/intl/tr-TR.json +4 -0
  1277. package/src/toast/intl/uk-UA.json +4 -0
  1278. package/src/toast/intl/zh-CN.json +4 -0
  1279. package/src/toast/intl/zh-TW.json +4 -0
  1280. package/src/toggle/createToggle.ts +96 -15
  1281. package/src/tokenfield/createToken.ts +82 -0
  1282. package/src/tokenfield/createTokenField.ts +859 -0
  1283. package/src/tokenfield/index.ts +10 -0
  1284. package/src/toolbar/createToolbar.ts +26 -5
  1285. package/src/tooltip/createPreviewTrigger.ts +301 -0
  1286. package/src/tooltip/createSafeArea.ts +165 -0
  1287. package/src/tooltip/createTooltip.ts +15 -1
  1288. package/src/tooltip/createTooltipTrigger.ts +24 -3
  1289. package/src/tooltip/index.ts +7 -0
  1290. package/src/tooltip/intl/index.ts +76 -0
  1291. package/src/tree/createTree.ts +66 -50
  1292. package/src/tree/createTreeItem.ts +85 -21
  1293. package/src/tree/createTreeSelectionCheckbox.ts +29 -28
  1294. package/src/tree/intl/ar-AE.json +4 -0
  1295. package/src/tree/intl/bg-BG.json +4 -0
  1296. package/src/tree/intl/cs-CZ.json +4 -0
  1297. package/src/tree/intl/da-DK.json +4 -0
  1298. package/src/tree/intl/de-DE.json +4 -0
  1299. package/src/tree/intl/el-GR.json +4 -0
  1300. package/src/tree/intl/en-US.json +4 -0
  1301. package/src/tree/intl/es-ES.json +4 -0
  1302. package/src/tree/intl/et-EE.json +4 -0
  1303. package/src/tree/intl/fi-FI.json +4 -0
  1304. package/src/tree/intl/fr-FR.json +4 -0
  1305. package/src/tree/intl/he-IL.json +4 -0
  1306. package/src/tree/intl/hr-HR.json +4 -0
  1307. package/src/tree/intl/hu-HU.json +4 -0
  1308. package/src/tree/intl/index.ts +123 -0
  1309. package/src/tree/intl/it-IT.json +4 -0
  1310. package/src/tree/intl/ja-JP.json +4 -0
  1311. package/src/tree/intl/ko-KR.json +4 -0
  1312. package/src/tree/intl/lt-LT.json +4 -0
  1313. package/src/tree/intl/lv-LV.json +4 -0
  1314. package/src/tree/intl/nb-NO.json +4 -0
  1315. package/src/tree/intl/nl-NL.json +4 -0
  1316. package/src/tree/intl/pl-PL.json +4 -0
  1317. package/src/tree/intl/pt-BR.json +4 -0
  1318. package/src/tree/intl/pt-PT.json +4 -0
  1319. package/src/tree/intl/ro-RO.json +4 -0
  1320. package/src/tree/intl/ru-RU.json +4 -0
  1321. package/src/tree/intl/sk-SK.json +4 -0
  1322. package/src/tree/intl/sl-SI.json +4 -0
  1323. package/src/tree/intl/sr-SP.json +4 -0
  1324. package/src/tree/intl/sv-SE.json +4 -0
  1325. package/src/tree/intl/tr-TR.json +4 -0
  1326. package/src/tree/intl/uk-UA.json +4 -0
  1327. package/src/tree/intl/zh-CN.json +4 -0
  1328. package/src/tree/intl/zh-TW.json +4 -0
  1329. package/src/tree/types.ts +35 -2
  1330. package/src/utils/ShadowTreeWalker.ts +249 -0
  1331. package/src/utils/animation.ts +106 -85
  1332. package/src/utils/capture.ts +51 -0
  1333. package/src/utils/createDescription.ts +31 -8
  1334. package/src/utils/dom.ts +314 -33
  1335. package/src/utils/domAttrs.ts +84 -0
  1336. package/src/utils/env.ts +2 -0
  1337. package/src/utils/events.ts +39 -3
  1338. package/src/utils/filterDOMProps.ts +34 -2
  1339. package/src/utils/focus.ts +186 -32
  1340. package/src/utils/geometry.ts +15 -1
  1341. package/src/utils/getMetaValue.ts +57 -0
  1342. package/src/utils/getNonce.ts +40 -0
  1343. package/src/utils/globalListeners.ts +16 -3
  1344. package/src/utils/index.ts +14 -0
  1345. package/src/utils/keyboard.ts +15 -1
  1346. package/src/utils/mergeProps.ts +149 -16
  1347. package/src/utils/owner.ts +26 -0
  1348. package/src/utils/platform.ts +15 -1
  1349. package/src/utils/reactivity.ts +2 -0
  1350. package/src/utils/refs.ts +53 -0
  1351. package/src/utils/runAfterTransition.ts +117 -0
  1352. package/src/utils/scrollIntoView.ts +14 -0
  1353. package/src/utils/splitProps.ts +70 -0
  1354. package/src/utils/textSelection.ts +15 -1
  1355. package/src/virtualizer/ScrollView.ts +210 -0
  1356. package/src/virtualizer/index.ts +2 -0
  1357. package/src/virtualizer/utils.ts +100 -0
  1358. package/src/visually-hidden/createVisuallyHidden.ts +20 -4
  1359. package/dist/_chunk/createInteractionModality.js +0 -268
  1360. package/dist/_chunk/createInteractionModality.js.map +0 -1
  1361. package/dist/_chunk/createInteractionModality.jsx +0 -268
  1362. package/dist/_chunk/createInteractionModality.jsx.map +0 -1
  1363. package/dist/_chunk/focus2.js +0 -631
  1364. package/dist/_chunk/focus2.js.map +0 -1
  1365. package/dist/_chunk/focus2.jsx +0 -631
  1366. package/dist/_chunk/focus2.jsx.map +0 -1
  1367. package/dist/_chunk/visually-hidden.js.map +0 -1
  1368. package/dist/_chunk/visually-hidden.jsx.map +0 -1
  1369. package/dist/checkbox/createCheckboxGroupState.d.ts +0 -71
  1370. package/dist/checkbox/createCheckboxGroupState.d.ts.map +0 -1
  1371. package/dist/radio/createRadioGroupState.d.ts +0 -77
  1372. package/dist/radio/createRadioGroupState.d.ts.map +0 -1
  1373. package/dist/toggle/createToggleState.d.ts +0 -34
  1374. package/dist/toggle/createToggleState.d.ts.map +0 -1
  1375. package/src/checkbox/createCheckboxGroupState.ts +0 -174
  1376. package/src/radio/createRadioGroupState.ts +0 -177
  1377. package/src/toggle/createToggleState.ts +0 -86
@@ -1,12 +1,36 @@
1
- import { t as createPress } from "./createPress.js";
2
- import { i as mergeProps$1 } from "./env.js";
1
+ /*
2
+ * Copyright 2020 Adobe. All rights reserved.
3
+ * This file is licensed to you under the Apache License, Version 2.0 (the "License");
4
+ * you may not use this file except in compliance with the License. You may obtain a copy
5
+ * of the License at http://www.apache.org/licenses/LICENSE-2.0
6
+ *
7
+ * Unless required by applicable law or agreed to in writing, software distributed under
8
+ * the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS
9
+ * OF ANY KIND, either express or implied. See the License for the specific language
10
+ * governing permissions and limitations under the License.
11
+ */
12
+ // Ported to SolidJS for Proyecto Viviana; based on packages/react-aria/src/selection/useSelectableItem.ts
13
+ /*
14
+ * Copyright 2020 Adobe. All rights reserved.
15
+ * This file is licensed to you under the Apache License, Version 2.0 (the "License");
16
+ * you may not use this file except in compliance with the License. You may obtain a copy
17
+ * of the License at http://www.apache.org/licenses/LICENSE-2.0
18
+ *
19
+ * Unless required by applicable law or agreed to in writing, software distributed under
20
+ * the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS
21
+ * OF ANY KIND, either express or implied. See the License for the specific language
22
+ * governing permissions and limitations under the License.
23
+ */
24
+ // Ported to SolidJS for Proyecto Viviana; based on packages/react-aria/src/selection/utils.ts
25
+ import { t as mergeProps } from "./mergeProps.js";
26
+ import { c as isCtrlKeyPressed } from "./utils.js";
3
27
  import { t as access } from "./reactivity.js";
4
- import { c as isCtrlKeyPressed, w as isAppleDevice } from "./utils.js";
5
- import { a as getEventTarget, b as openLink, s as getOwnerDocument, t as focusSafely } from "./focus.js";
6
- import { r as createLongPress } from "./interactions.js";
28
+ import { G as isAppleDevice, a as getOwnerDocument, r as getEventTarget, w as focusSafely, y as openLink } from "./dom.js";
29
+ import { t as createPress } from "./createPress.js";
30
+ import { t as createLongPress } from "./createLongPress.js";
7
31
  import { createId } from "../ssr/index.js";
8
32
  import { n as createDragSession } from "./DragManager.js";
9
- import { createEffect, createUniqueId } from "solid-js";
33
+ import { createTrackedEffect, createUniqueId } from "solid-js";
10
34
  //#region src/selection/utils.ts
11
35
  /**
12
36
  * Resolves the DOM element rendered for a collection item by its key, scoped to
@@ -79,9 +103,10 @@ function selectItem(manager, key, e, collection) {
79
103
  return;
80
104
  }
81
105
  if (manager.selectionMode() === "none") return;
82
- if (manager.selectionMode() === "single") if (manager.isSelected(key) && !manager.disallowEmptySelection()) manager.toggleSelection(key);
83
- else manager.replaceSelection(key);
84
- else if (e.shiftKey) manager.extendSelection(key, collection);
106
+ if (manager.selectionMode() === "single") {
107
+ if (manager.isSelected(key) && !manager.disallowEmptySelection()) manager.toggleSelection(key);
108
+ else manager.replaceSelection(key);
109
+ } else if (e.shiftKey) manager.extendSelection(key, collection);
85
110
  else if (manager.selectionBehavior() === "toggle" || isCtrlKeyPressed(e) || e.pointerType === "touch" || e.pointerType === "virtual") manager.toggleSelection(key);
86
111
  else manager.replaceSelection(key);
87
112
  }
@@ -109,11 +134,11 @@ function selectItem(manager, key, e, collection) {
109
134
  * `disabledBehavior: 'selection'` keeps actions enabled while selection stays
110
135
  * blocked.
111
136
  * - **Virtual focus** guards real DOM focus and updates the focused key on
112
- * press; we have no `moveVirtualFocus`, so no AT cursor move is dispatched.
113
- * - **`onDragStart`** is bubble phase (upstream uses capture to beat `useDrag`);
114
- * wired to capture when drag-and-drop integration lands.
115
- * - **`getItemProps` press-handler chaining** (collection-provided press
116
- * handlers) is omitted — our nodes don't carry them.
137
+ * press. Ticket #100 tracks the missing AT cursor move.
138
+ * - **`onDragStart`** uses the bubble phase. Ticket #84 owns the capture-phase
139
+ * integration with drag and drop.
140
+ * - **`getItemProps` press-handler chaining** is omitted because our nodes do
141
+ * not carry collection-provided press handlers. Ticket #97 owns this boundary.
117
142
  */
118
143
  /**
119
144
  * DOM event dispatched when an item action is performed. Mirrors upstream's
@@ -157,6 +182,12 @@ function createSelectableItem(options, manager, ref) {
157
182
  let hadPrimaryActionOnPressStart = false;
158
183
  const isSelected = () => manager.selectionMode() !== "none" && manager.isSelected(key());
159
184
  const isFocused = () => manager.isFocused() && manager.focusedKey() === key();
185
+ const isNestedInteractiveTarget = (target) => {
186
+ const root = ref?.();
187
+ if (!root || !(target instanceof Element) || target === root || !root.contains(target)) return false;
188
+ const interactive = target.closest("button, input, select, textarea, a[href], [data-solidaria-pressable], [role=\"button\"], [role=\"checkbox\"], [role=\"menuitem\"]");
189
+ return interactive != null && interactive !== root && root.contains(interactive);
190
+ };
160
191
  const onSelect = (e) => {
161
192
  const k = key();
162
193
  if (e.pointerType === "keyboard" && isNonContiguousSelectionModifier(e)) {
@@ -187,14 +218,16 @@ function createSelectableItem(options, manager, ref) {
187
218
  }
188
219
  };
189
220
  const dragSession = createDragSession();
190
- createEffect(() => {
221
+ createTrackedEffect(() => {
191
222
  if (dragSession()) return;
192
223
  if (key() !== manager.focusedKey() || !manager.isFocused()) return;
193
224
  const o = getOptions();
194
- if (!shouldUseVirtualFocus()) if (o.focus) o.focus();
195
- else {
196
- const el = ref();
197
- if (el && getOwnerDocument(el).activeElement !== el) focusSafely(el);
225
+ if (!shouldUseVirtualFocus()) {
226
+ if (o.focus) o.focus();
227
+ else {
228
+ const el = ref();
229
+ if (el && getOwnerDocument(el).activeElement !== el) focusSafely(el);
230
+ }
198
231
  }
199
232
  });
200
233
  const { pressProps, isPressed } = createPress({
@@ -205,6 +238,7 @@ function createSelectableItem(options, manager, ref) {
205
238
  return shouldUseVirtualFocus();
206
239
  },
207
240
  onPressStart(e) {
241
+ if (isNestedInteractiveTarget(e.target)) return;
208
242
  modality = e.pointerType;
209
243
  longPressEnabledOnPressStart = longPressEnabled();
210
244
  if (shouldSelectOnPressUp()) {
@@ -219,9 +253,11 @@ function createSelectableItem(options, manager, ref) {
219
253
  }
220
254
  },
221
255
  onPressUp(e) {
256
+ if (isNestedInteractiveTarget(e.target)) return;
222
257
  if (shouldSelectOnPressUp() && allowsDifferentPressOrigin() && !hasPrimaryAction() && e.pointerType === "mouse" && allowsSelection()) onSelect(e);
223
258
  },
224
259
  onPress(e) {
260
+ if (isNestedInteractiveTarget(e.target)) return;
225
261
  if (shouldSelectOnPressUp()) {
226
262
  if (!allowsDifferentPressOrigin()) {
227
263
  if (hasPrimaryAction() || hasSecondaryAction() && e.pointerType !== "mouse") {
@@ -263,6 +299,7 @@ function createSelectableItem(options, manager, ref) {
263
299
  if (modality === "touch" && longPressEnabledOnPressStart) e.preventDefault();
264
300
  };
265
301
  const onClick = (e) => {
302
+ if (isNestedInteractiveTarget(e.target)) return;
266
303
  if (linkBehavior() !== "none" && isLink()) {
267
304
  if (!openLink.isOpening) e.preventDefault();
268
305
  }
@@ -281,7 +318,8 @@ function createSelectableItem(options, manager, ref) {
281
318
  if (getEventTarget(e) === ref()) manager.setFocusedKey(k);
282
319
  };
283
320
  } else if (disabled) baseProps.onMouseDown = (e) => e.preventDefault();
284
- return mergeProps$1(baseProps, allowsSelection() || hasPrimaryAction() || shouldUseVirtualFocus() && !disabled ? pressProps : {}, longPressEnabled() ? longPressProps : {}, {
321
+ const interactive = allowsSelection() || hasPrimaryAction() || shouldUseVirtualFocus() && !disabled;
322
+ return mergeProps(baseProps, interactive ? pressProps : {}, longPressEnabled() ? longPressProps : {}, {
285
323
  onDblClick,
286
324
  onDragStart,
287
325
  onClick,
@@ -1 +1 @@
1
- {"version":3,"file":"createSelectableItem.js","names":["mergeProps"],"sources":["../../src/selection/utils.ts","../../src/selection/selectItem.ts","../../src/selection/createSelectableItem.ts"],"sourcesContent":["/**\n * Selection helpers shared across collection item hooks.\n * Based on @react-aria/selection's utilities.\n */\n\nimport type { Accessor } from \"solid-js\";\nimport type { Key } from \"@proyecto-viviana/solid-stately\";\nimport { isAppleDevice } from \"../utils/platform\";\nimport { createId } from \"../ssr\";\n\n/**\n * Resolves the DOM element rendered for a collection item by its key, scoped to\n * the owning collection when a `data-collection` id is present. Mirrors\n * `@react-aria/selection`'s `getItemElement`, adapted to take a Solid ref\n * accessor instead of a React ref object.\n */\nexport function getItemElement(ref: Accessor<HTMLElement | null>, key: Key): HTMLElement | null {\n const root = ref();\n if (!root) {\n return null;\n }\n let selector = `[data-key=\"${CSS.escape(String(key))}\"]`;\n const collectionId = root.dataset.collection;\n if (collectionId) {\n selector = `[data-collection=\"${CSS.escape(collectionId)}\"]${selector}`;\n }\n return root.querySelector<HTMLElement>(selector);\n}\n\n/**\n * A stable, SSR-safe id for a collection, shared between the collection\n * container and its items so {@link getItemElement} can scope a query by\n * `data-collection` (needed to disambiguate nested collections).\n *\n * Divergence from upstream: React's `useCollectionId` keys this WeakMap by the\n * collection object and relies on a render-stable `useId`. A Solid collection is\n * rebuilt with a new identity whenever its items change, so we key by the\n * SelectionManager instance instead — it is created once and never replaced, so\n * the container and its items always resolve to the same entry — and generate\n * the id with our SSR-safe `createId`.\n */\nconst collectionIdMap = new WeakMap<object, string>();\n\n/**\n * Registers (on first call) and returns the collection id for a SelectionManager.\n * The collection container calls this; its items read the same id via\n * {@link getCollectionId}. Must be called within a reactive owner (uses createId).\n */\nexport function registerCollectionId(manager: object): string {\n let id = collectionIdMap.get(manager);\n if (id == null) {\n id = createId();\n collectionIdMap.set(manager, id);\n }\n return id;\n}\n\n/**\n * Returns the collection id registered for a SelectionManager, or `undefined`\n * when its container has not registered one (e.g. an item not yet wired into a\n * `createSelectableCollection`). A Solid `undefined` attribute is omitted, so an\n * unregistered item simply renders no `data-collection`.\n */\nexport function getCollectionId(manager: object): string | undefined {\n return collectionIdMap.get(manager);\n}\n\n/** The modifier-key fields consulted by {@link isNonContiguousSelectionModifier}. */\ninterface ModifierKeyEvent {\n altKey?: boolean;\n ctrlKey?: boolean;\n}\n\n/**\n * Returns whether the modifier for non-contiguous (toggle) keyboard selection\n * is pressed. Mirrors `@react-aria/selection`'s `isNonContiguousSelectionModifier`:\n * Ctrl + Arrow Up/Down has a system-wide meaning on macOS, so Apple devices use\n * Alt instead; Windows and Ubuntu use Ctrl.\n */\nexport function isNonContiguousSelectionModifier(e: ModifierKeyEvent): boolean {\n return isAppleDevice() ? e.altKey === true : e.ctrlKey === true;\n}\n","/**\n * The aria-layer selection decision, mirroring `@react-aria/selection`'s\n * `useSelectableItem` `onSelect`. This is where the platform-aware modifier\n * resolution lives — react-stately's `SelectionManager.select` only knows\n * `pointerType` + `selectionBehavior`; the ctrl/meta/shift decision belongs one\n * layer up, here, where `isMac` is reachable.\n *\n * The link branch (`linkBehavior` 'selection'/'override'/'none') is deferred to\n * `createSelectableItem` (Phase 1 of the press-path epic); callers here pass\n * non-link items.\n */\n\nimport type { Accessor } from \"solid-js\";\nimport type {\n Collection,\n Key,\n SelectionBehavior,\n SelectionMode,\n SelectionPressEvent,\n} from \"@proyecto-viviana/solid-stately\";\n\nimport { isCtrlKeyPressed } from \"../utils/keyboard\";\nimport { isNonContiguousSelectionModifier } from \"./utils\";\n\nexport interface SelectItemState {\n readonly selectionMode: Accessor<SelectionMode>;\n readonly selectionBehavior: Accessor<SelectionBehavior>;\n readonly disallowEmptySelection: Accessor<boolean>;\n isSelected(key: Key): boolean;\n toggleSelection(key: Key): void;\n replaceSelection(key: Key): void;\n extendSelection(toKey: Key, collection: Collection): void;\n}\n\n/**\n * Resolve a press/keyboard interaction into a selection mutation on `manager`,\n * faithful to `useSelectableItem.onSelect`. `collection` is required for the\n * shift-extend (contiguous range) path.\n */\nexport function selectItem(\n manager: SelectItemState,\n key: Key,\n e: SelectionPressEvent,\n collection: Collection,\n): void {\n // A keyboard non-contiguous modifier (Alt on Apple devices, Ctrl elsewhere)\n // always toggles, independent of mode/behavior.\n if (e.pointerType === \"keyboard\" && isNonContiguousSelectionModifier(e)) {\n manager.toggleSelection(key);\n return;\n }\n\n if (manager.selectionMode() === \"none\") {\n return;\n }\n\n if (manager.selectionMode() === \"single\") {\n // Single mode ignores selectionBehavior. Re-selecting the current item\n // deselects it when empty selection is allowed; otherwise it stays\n // selected (replace).\n if (manager.isSelected(key) && !manager.disallowEmptySelection()) {\n manager.toggleSelection(key);\n } else {\n manager.replaceSelection(key);\n }\n } else if (e.shiftKey) {\n manager.extendSelection(key, collection);\n } else if (\n manager.selectionBehavior() === \"toggle\" ||\n isCtrlKeyPressed(e) ||\n e.pointerType === \"touch\" ||\n e.pointerType === \"virtual\"\n ) {\n // touch / virtual (VoiceOver) have no modifier keys, so multi-select is\n // only reachable by toggling.\n manager.toggleSelection(key);\n } else {\n manager.replaceSelection(key);\n }\n}\n","/**\n * createSelectableItem - handles interactions with an item in a selectable\n * collection. Port of `@react-aria/selection`'s `useSelectableItem`.\n *\n * This encapsulates the full press-path action model: the\n * selection-vs-action decision per pointer type, the press-up-vs-press timing\n * (menus select on press up, rows on press down), the keyboard Space/Enter\n * split, double-click secondary actions, and long-press-to-toggle. The\n * selection decision itself is delegated to the aria-layer {@link selectItem}\n * (Phase 0), which is also where the platform-aware modifier resolution lives.\n *\n * Documented adaptations from upstream (React → Solid / our thinner state):\n * - **Link model is prop-threaded.** Our collection nodes don't expose\n * `manager.isLink`/`manager.getItemProps`, so link items pass `isLink` /\n * `href` / `routerOptions` via options and navigation goes through\n * {@link openLink} (we have no `RouterProvider` context).\n * - **Selection manager shape is structural.** ListState passes its\n * SelectionManager; grid-like states pass an adapter with the same observable\n * surface. `canSelectItem` is read from that surface when available so\n * `disabledBehavior: 'selection'` keeps actions enabled while selection stays\n * blocked.\n * - **Virtual focus** guards real DOM focus and updates the focused key on\n * press; we have no `moveVirtualFocus`, so no AT cursor move is dispatched.\n * - **`onDragStart`** is bubble phase (upstream uses capture to beat `useDrag`);\n * wired to capture when drag-and-drop integration lands.\n * - **`getItemProps` press-handler chaining** (collection-provided press\n * handlers) is omitted — our nodes don't carry them.\n */\n\nimport { createEffect, createUniqueId, type Accessor, type JSX } from \"solid-js\";\nimport type {\n Collection,\n DisabledBehavior,\n FocusStrategy,\n Key,\n Selection,\n SelectionBehavior,\n} from \"@proyecto-viviana/solid-stately\";\nimport { createPress, type PressEvent } from \"../interactions/createPress\";\nimport { createLongPress } from \"../interactions/createLongPress\";\nimport { mergeProps } from \"../utils/mergeProps\";\nimport { access, type MaybeAccessor } from \"../utils/reactivity\";\nimport { focusSafely } from \"../utils/focus\";\nimport { getOwnerDocument, getEventTarget, openLink } from \"../utils/dom\";\nimport { getCollectionId, isNonContiguousSelectionModifier } from \"./utils\";\nimport { selectItem, type SelectItemState } from \"./selectItem\";\nimport { createDragSession } from \"../dnd/DragManager\";\n\n/**\n * DOM event dispatched when an item action is performed. Mirrors upstream's\n * `react-aria-item-action`; combobox/autocomplete listen for it to close on\n * action. Exported so emitter and listener share one constant.\n */\nexport const ITEM_ACTION_EVENT = \"solidaria:item-action\";\n\n/** How links in the collection behave relative to selection and actions. */\nexport type LinkBehavior = \"action\" | \"selection\" | \"override\" | \"none\";\n\nexport interface CreateSelectableItemOptions {\n /** A unique key for the item. */\n key: Key;\n /** Optional DOM id for the item element. Defaults to a generated id. */\n id?: string;\n /**\n * By default, selection occurs on pointer down. Set to select on pointer up\n * instead — useful when selecting an item makes the UI disappear (e.g. menus).\n */\n shouldSelectOnPressUp?: boolean;\n /**\n * Whether selection may trigger on a pointer up whose pointer down occurred on\n * a different target (e.g. press down on the menu trigger, up on a menu item).\n */\n allowsDifferentPressOrigin?: boolean;\n /** Whether the item is contained in a virtual scroller. */\n isVirtualized?: boolean;\n /** Function to focus the item, overriding the default DOM focus. */\n focus?: () => void;\n /** Whether the item should use virtual focus instead of receiving DOM focus. */\n shouldUseVirtualFocus?: boolean;\n /** Whether the item is disabled. */\n isDisabled?: boolean;\n /**\n * Handler called when the user performs an action on the item. The triggering\n * event depends on the collection's `selectionBehavior` and the modality.\n */\n onAction?: (event: PressEvent | MouseEvent) => void;\n /**\n * The behavior of links in the collection.\n * - `action`: link behaves like onAction.\n * - `selection`: link follows selection interactions (e.g. URL drives selection).\n * - `override`: links override all other interactions (link items aren't selectable).\n * - `none`: links are disabled for both selection and actions.\n * @default 'action'\n */\n linkBehavior?: LinkBehavior;\n /** Whether this item is a link (prop-threaded; our nodes don't expose `isLink`). */\n isLink?: boolean;\n /** The link target URL, when `isLink`. */\n href?: string;\n /** Router options forwarded to navigation, when `isLink`. */\n routerOptions?: Record<string, unknown>;\n /**\n * Unstable upstream override that forces an item with `onAction` to treat the\n * action as primary (single click), even when it is selectable.\n */\n UNSTABLE_itemBehavior?: \"selection\" | \"action\";\n}\n\nexport interface SelectableItemAria {\n /** Props to spread on the item root element. */\n itemProps: JSX.HTMLAttributes<HTMLElement>;\n /** Whether the item is currently pressed. */\n isPressed: Accessor<boolean>;\n /** Whether the item is currently selected. */\n isSelected: Accessor<boolean>;\n /** Whether the item is currently focused. */\n isFocused: Accessor<boolean>;\n /** Whether the item is non-interactive (selection and actions both disabled). */\n isDisabled: Accessor<boolean>;\n /** Whether the item may be selected. */\n allowsSelection: Accessor<boolean>;\n /** Whether the item has an action (primary or secondary). */\n hasAction: Accessor<boolean>;\n}\n\nexport interface SelectableItemState<T> extends SelectItemState {\n /** The collection the item belongs to. */\n readonly collection: Accessor<Collection<T>>;\n /** Whether the collection is currently focused. */\n readonly isFocused: Accessor<boolean>;\n /** Sets whether the collection is focused. */\n setFocused(isFocused: boolean): void;\n /** The currently focused key in the collection. */\n readonly focusedKey: Accessor<Key | null>;\n /** The strategy for child focus, when applicable. */\n readonly childFocusStrategy?: Accessor<FocusStrategy | null>;\n /** Sets the focused key. */\n setFocusedKey(key: Key | null, childFocusStrategy?: FocusStrategy): void;\n /** The currently selected keys. */\n readonly selectedKeys: Accessor<Selection>;\n /** Disabled keys for the collection. */\n readonly disabledKeys: Accessor<Set<Key>>;\n /** How disabled keys behave. */\n readonly disabledBehavior: Accessor<DisabledBehavior>;\n /** Whether selection is empty. */\n readonly isEmpty: Accessor<boolean>;\n /** Whether all selectable items are selected. */\n readonly isSelectAll?: Accessor<boolean>;\n /** Whether the key is fully disabled for interaction. */\n isDisabled(key: Key): boolean;\n /** Whether the key may be selected. Defaults to SelectionManager when present. */\n canSelectItem?(key: Key): boolean;\n /** Set the selection behavior for the collection. */\n setSelectionBehavior(behavior: SelectionBehavior): void;\n /** Set multiple selected keys. */\n setSelectedKeys(keys: Iterable<Key>): void;\n /** Select all selectable keys. */\n selectAll(): void;\n /** Clear selection. */\n clearSelection(): void;\n /** Toggle select all. */\n toggleSelectAll(): void;\n /** Optional stable object used by selectable collections for DOM scoping. */\n readonly selectionManager?: {\n canSelectItem?(key: Key): boolean;\n } & object;\n}\n\nconst isActionKey = (key: string | undefined) => key === \"Enter\";\nconst isSelectionKey = (key: string | undefined) => key === \" \";\n\n/**\n * Provides the behavior and accessibility implementation for an item in a\n * selectable collection.\n */\nexport function createSelectableItem<T>(\n options: MaybeAccessor<CreateSelectableItemOptions>,\n manager: SelectableItemState<T>,\n ref: () => HTMLElement | null,\n): SelectableItemAria {\n const getOptions = () => access(options);\n const generatedId = createUniqueId();\n\n const key = () => getOptions().key;\n const id = () => getOptions().id ?? generatedId;\n const linkBehavior = (): LinkBehavior => getOptions().linkBehavior ?? \"action\";\n const shouldUseVirtualFocus = () => getOptions().shouldUseVirtualFocus ?? false;\n const allowsDifferentPressOrigin = () => getOptions().allowsDifferentPressOrigin ?? false;\n const shouldSelectOnPressUp = () => getOptions().shouldSelectOnPressUp ?? false;\n const isLink = () => getOptions().isLink ?? !!getOptions().href;\n\n const collection = (): Collection<T> => manager.collection();\n\n // Final disabled state: explicitly disabled, or disabled by the collection.\n const isDisabled = () => getOptions().isDisabled === true || manager.isDisabled(key());\n\n // Mirrors SelectionManager.canSelectItem, while allowing grid/table/tree\n // adapters to expose the raw selection-disabled check separately from\n // interaction disabled.\n const canSelectItem = () => {\n const k = key();\n return (\n manager.canSelectItem?.(k) ??\n manager.selectionManager?.canSelectItem?.(k) ??\n (manager.selectionMode() !== \"none\" && !manager.isDisabled(k))\n );\n };\n\n const isLinkOverride = () => isLink() && linkBehavior() === \"override\";\n const isActionOverride = () =>\n getOptions().onAction != null && getOptions().UNSTABLE_itemBehavior === \"action\";\n const hasLinkAction = () =>\n isLink() && linkBehavior() !== \"selection\" && linkBehavior() !== \"none\";\n\n const allowsSelection = () =>\n !isDisabled() && canSelectItem() && !isLinkOverride() && !isActionOverride();\n const allowsActions = () => (getOptions().onAction != null || hasLinkAction()) && !isDisabled();\n\n // With checkbox selection (behavior 'toggle'), onAction is primary and occurs\n // on a single click. With highlight selection (behavior 'replace'), onAction\n // is secondary and occurs on double click; single click selects.\n const hasPrimaryAction = () =>\n allowsActions() &&\n (manager.selectionBehavior() === \"replace\"\n ? !allowsSelection()\n : !allowsSelection() || manager.isEmpty());\n const hasSecondaryAction = () =>\n allowsActions() && allowsSelection() && manager.selectionBehavior() === \"replace\";\n const hasAction = () => hasPrimaryAction() || hasSecondaryAction();\n\n const longPressEnabled = () => hasAction() && allowsSelection();\n\n // Plain mutable state (no reactivity needed): the modality of the active press\n // and snapshots captured at press start.\n let modality: PressEvent[\"pointerType\"] | null = null;\n let longPressEnabledOnPressStart = false;\n let hadPrimaryActionOnPressStart = false;\n\n const isSelected = () => manager.selectionMode() !== \"none\" && manager.isSelected(key());\n const isFocused = () => manager.isFocused() && manager.focusedKey() === key();\n\n // The aria-layer selection decision, with the link branch (deferred from\n // selectItem) layered in. Mirrors useSelectableItem.onSelect.\n const onSelect = (e: PressEvent) => {\n const k = key();\n if (e.pointerType === \"keyboard\" && isNonContiguousSelectionModifier(e)) {\n manager.toggleSelection(k);\n return;\n }\n\n if (manager.selectionMode() === \"none\") {\n return;\n }\n\n if (isLink()) {\n if (linkBehavior() === \"selection\") {\n const el = ref();\n if (el instanceof HTMLAnchorElement) {\n openLink(el, e as unknown as Event);\n }\n // Restore the prior selection so select/combobox close cleanly.\n const sel = manager.selectedKeys();\n if (sel !== \"all\") {\n manager.setSelectedKeys(sel);\n }\n return;\n } else if (linkBehavior() === \"override\" || linkBehavior() === \"none\") {\n return;\n }\n }\n\n selectItem(manager, k, e, collection());\n };\n\n const performAction = (e: PressEvent | MouseEvent) => {\n const o = getOptions();\n if (o.onAction) {\n o.onAction(e);\n ref()?.dispatchEvent(new CustomEvent(ITEM_ACTION_EVENT, { bubbles: true }));\n }\n\n if (hasLinkAction()) {\n const el = ref();\n if (el instanceof HTMLAnchorElement) {\n openLink(el, e as unknown as Event);\n }\n }\n };\n\n // Focus the associated DOM node when this item becomes the focused key. This\n // is the imperative half of roving tabindex — the tabIndex 0/-1 swap below is\n // only declarative.\n const dragSession = createDragSession();\n createEffect(() => {\n // While a keyboard drag session is active, real DOM focus is owned by the\n // DragManager (it lives on drop indicators / the collection), and upstream's\n // React `useSelectableItem` focus effect provably cannot re-run mid-drag —\n // its dep array `[ref, key, focusedKey, childFocusStrategy, isFocused]` stays\n // frozen. Our reactive effect would otherwise re-fire and steal focus back\n // onto the focused option, bouncing focus off the drop indicator. Reading the\n // reactive drag-session accessor here also re-runs this effect once the drag\n // ends, restoring normal roving-tabindex focus.\n if (dragSession()) {\n return;\n }\n\n if (key() !== manager.focusedKey() || !manager.isFocused()) {\n return;\n }\n\n const o = getOptions();\n if (!shouldUseVirtualFocus()) {\n if (o.focus) {\n o.focus();\n } else {\n const el = ref();\n if (el && getOwnerDocument(el).activeElement !== el) {\n focusSafely(el);\n }\n }\n }\n // Virtual focus: no moveVirtualFocus equivalent in our port (documented gap).\n });\n\n const { pressProps, isPressed } = createPress({\n get isDisabled() {\n // Press is only wired when the item is interactive (see the merge below),\n // but guard here too so disabled items never fire press handlers.\n return !(\n allowsSelection() ||\n hasPrimaryAction() ||\n (shouldUseVirtualFocus() && !isDisabled())\n );\n },\n get preventFocusOnPress() {\n return shouldUseVirtualFocus();\n },\n onPressStart(e) {\n modality = e.pointerType;\n longPressEnabledOnPressStart = longPressEnabled();\n\n if (shouldSelectOnPressUp()) {\n // Selection still happens on key down for the keyboard.\n if (e.pointerType === \"keyboard\" && (!hasAction() || isSelectionKey(e.key))) {\n onSelect(e);\n }\n } else {\n hadPrimaryActionOnPressStart = hasPrimaryAction();\n // Select on mouse down unless a primary action will occur on mouse up.\n // For keyboard, select on key down; with an action, Space selects on key\n // down and Enter performs the action on key up.\n if (\n allowsSelection() &&\n ((e.pointerType === \"mouse\" && !hasPrimaryAction()) ||\n (e.pointerType === \"keyboard\" && (!allowsActions() || isSelectionKey(e.key))))\n ) {\n onSelect(e);\n }\n }\n\n // When using virtual focus, update the focused key on (non-touch) press.\n if (shouldUseVirtualFocus() && e.pointerType !== \"touch\") {\n manager.setFocused(true);\n manager.setFocusedKey(key());\n }\n },\n onPressUp(e) {\n // Only relevant for press-up selection with a different press origin and\n // no primary action: select on the mouse up itself.\n if (\n shouldSelectOnPressUp() &&\n allowsDifferentPressOrigin() &&\n !hasPrimaryAction() &&\n e.pointerType === \"mouse\" &&\n allowsSelection()\n ) {\n onSelect(e);\n }\n },\n onPress(e) {\n if (shouldSelectOnPressUp()) {\n if (!allowsDifferentPressOrigin()) {\n if (hasPrimaryAction() || (hasSecondaryAction() && e.pointerType !== \"mouse\")) {\n if (e.pointerType === \"keyboard\" && !isActionKey(e.key)) {\n return;\n }\n performAction(e);\n } else if (e.pointerType !== \"keyboard\" && allowsSelection()) {\n onSelect(e);\n }\n } else if (hasPrimaryAction()) {\n performAction(e);\n } else if (e.pointerType !== \"keyboard\" && e.pointerType !== \"mouse\" && allowsSelection()) {\n onSelect(e);\n }\n } else if (\n // Selection on touch up; primary actions on pointer up. Both primary and\n // secondary actions on Enter key up. Secondary mouse actions go through\n // double click (below), not here.\n e.pointerType === \"touch\" ||\n e.pointerType === \"pen\" ||\n e.pointerType === \"virtual\" ||\n (e.pointerType === \"keyboard\" && hasAction() && isActionKey(e.key)) ||\n (e.pointerType === \"mouse\" && hadPrimaryActionOnPressStart)\n ) {\n if (hasAction()) {\n performAction(e);\n } else if (allowsSelection()) {\n onSelect(e);\n }\n }\n\n // When using virtual focus, update the focused key on a touch press.\n if (shouldUseVirtualFocus() && e.pointerType === \"touch\") {\n manager.setFocused(true);\n manager.setFocusedKey(key());\n }\n },\n });\n\n // Long pressing an item with touch when selectionBehavior = 'replace' switches\n // to 'toggle': single tap now selects (and toggles checkbox affordances)\n // instead of performing the action.\n const { longPressProps } = createLongPress({\n get isDisabled() {\n return !longPressEnabled();\n },\n onLongPress(e) {\n if (e.pointerType === \"touch\") {\n onSelect(e as unknown as PressEvent);\n manager.setSelectionBehavior(\"toggle\");\n }\n },\n });\n\n // Double clicking with a mouse with selectionBehavior = 'replace' performs the\n // secondary action.\n const onDblClick = (e: MouseEvent) => {\n if (!hasSecondaryAction()) return;\n if (modality === \"mouse\") {\n e.stopPropagation();\n e.preventDefault();\n performAction(e as unknown as PressEvent);\n }\n };\n\n // Prevent native drag and drop on long press when we also select on long\n // press. Upstream uses a capturing listener to beat useDrag; we use bubble\n // until drag-and-drop integration lands (documented adaptation).\n const onDragStart = (e: DragEvent) => {\n if (modality === \"touch\" && longPressEnabledOnPressStart) {\n e.preventDefault();\n }\n };\n\n // Prevent native link clicks so we control exactly when they open (matching\n // selection behavior).\n const onClick = (e: MouseEvent) => {\n if (linkBehavior() !== \"none\" && isLink()) {\n if (!(openLink as { isOpening?: boolean }).isOpening) {\n e.preventDefault();\n }\n }\n };\n\n return {\n get itemProps(): JSX.HTMLAttributes<HTMLElement> {\n const k = key();\n const disabled = isDisabled();\n\n const baseProps: Record<string, unknown> = {\n \"data-key\": String(k),\n // Scopes this item to its collection for getItemElement. Resolves to a\n // value only once a createSelectableCollection container has registered\n // the manager; otherwise undefined (Solid omits the attribute).\n \"data-collection\": getCollectionId(manager.selectionManager ?? manager),\n };\n\n // Roving tabindex: only the focused item is tabbable. With virtual focus,\n // omit tabIndex entirely (so iOS VoiceOver doesn't pull real focus).\n if (!shouldUseVirtualFocus() && !disabled) {\n baseProps.tabIndex = k === manager.focusedKey() ? 0 : -1;\n baseProps.onFocus = (e: FocusEvent) => {\n if (getEventTarget(e) === ref()) {\n manager.setFocusedKey(k);\n }\n };\n } else if (disabled) {\n // Prevent focus going to the body when clicking a disabled item.\n baseProps.onMouseDown = (e: MouseEvent) => e.preventDefault();\n }\n\n const interactive =\n allowsSelection() || hasPrimaryAction() || (shouldUseVirtualFocus() && !disabled);\n\n return mergeProps(\n baseProps,\n interactive ? (pressProps as Record<string, unknown>) : {},\n longPressEnabled() ? (longPressProps as Record<string, unknown>) : {},\n { onDblClick, onDragStart, onClick, id: id() },\n // Prevent DOM focus from moving on mouse down when using virtual focus.\n shouldUseVirtualFocus() ? { onMouseDown: (e: MouseEvent) => e.preventDefault() } : {},\n ) as JSX.HTMLAttributes<HTMLElement>;\n },\n isPressed,\n isSelected,\n isFocused,\n isDisabled,\n allowsSelection,\n hasAction,\n };\n}\n"],"mappings":"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"}
1
+ {"version":3,"file":"createSelectableItem.js","names":[],"sources":["../../src/selection/utils.ts","../../src/selection/selectItem.ts","../../src/selection/createSelectableItem.ts"],"sourcesContent":["/*\n * Copyright 2020 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */\n\n// Ported to SolidJS for Proyecto Viviana; based on packages/react-aria/src/selection/utils.ts\n\n/**\n * Selection helpers shared across collection item hooks.\n * Ported from packages/react-aria/src/selection/utils.ts.\n */\n\nimport type { Accessor } from \"solid-js\";\nimport type { Key } from \"@proyecto-viviana/solid-stately\";\nimport { isAppleDevice } from \"../utils/platform\";\nimport { createId } from \"../ssr\";\n\n/**\n * Resolves the DOM element rendered for a collection item by its key, scoped to\n * the owning collection when a `data-collection` id is present. Mirrors\n * `@react-aria/selection`'s `getItemElement`, adapted to take a Solid ref\n * accessor instead of a React ref object.\n */\nexport function getItemElement(ref: Accessor<HTMLElement | null>, key: Key): HTMLElement | null {\n const root = ref();\n if (!root) {\n return null;\n }\n let selector = `[data-key=\"${CSS.escape(String(key))}\"]`;\n const collectionId = root.dataset.collection;\n if (collectionId) {\n selector = `[data-collection=\"${CSS.escape(collectionId)}\"]${selector}`;\n }\n return root.querySelector<HTMLElement>(selector);\n}\n\n/**\n * A stable, SSR-safe id for a collection, shared between the collection\n * container and its items so {@link getItemElement} can scope a query by\n * `data-collection` (needed to disambiguate nested collections).\n *\n * Divergence from upstream: React's `useCollectionId` keys this WeakMap by the\n * collection object and relies on a render-stable `useId`. A Solid collection is\n * rebuilt with a new identity whenever its items change, so we key by the\n * SelectionManager instance instead — it is created once and never replaced, so\n * the container and its items always resolve to the same entry — and generate\n * the id with our SSR-safe `createId`.\n */\nconst collectionIdMap = new WeakMap<object, string>();\n\n/**\n * Registers (on first call) and returns the collection id for a SelectionManager.\n * The collection container calls this; its items read the same id via\n * {@link getCollectionId}. Must be called within a reactive owner (uses createId).\n */\nexport function registerCollectionId(manager: object): string {\n let id = collectionIdMap.get(manager);\n if (id == null) {\n id = createId();\n collectionIdMap.set(manager, id);\n }\n return id;\n}\n\n/**\n * Returns the collection id registered for a SelectionManager, or `undefined`\n * when its container has not registered one (e.g. an item not yet wired into a\n * `createSelectableCollection`). A Solid `undefined` attribute is omitted, so an\n * unregistered item simply renders no `data-collection`.\n */\nexport function getCollectionId(manager: object): string | undefined {\n return collectionIdMap.get(manager);\n}\n\n/** The modifier-key fields consulted by {@link isNonContiguousSelectionModifier}. */\ninterface ModifierKeyEvent {\n altKey?: boolean;\n ctrlKey?: boolean;\n}\n\n/**\n * Returns whether the modifier for non-contiguous (toggle) keyboard selection\n * is pressed. Mirrors `@react-aria/selection`'s `isNonContiguousSelectionModifier`:\n * Ctrl + Arrow Up/Down has a system-wide meaning on macOS, so Apple devices use\n * Alt instead; Windows and Ubuntu use Ctrl.\n */\nexport function isNonContiguousSelectionModifier(e: ModifierKeyEvent): boolean {\n return isAppleDevice() ? e.altKey === true : e.ctrlKey === true;\n}\n","/*\n * Copyright 2020 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */\n\n// Ported to SolidJS for Proyecto Viviana; based on packages/react-aria/src/selection/useSelectableItem.ts\n\n/**\n * The aria-layer selection decision, mirroring `@react-aria/selection`'s\n * `useSelectableItem` `onSelect`. This is where the platform-aware modifier\n * resolution lives — react-stately's `SelectionManager.select` only knows\n * `pointerType` + `selectionBehavior`; the ctrl/meta/shift decision belongs one\n * layer up, here, where `isMac` is reachable.\n *\n * The link branch (`linkBehavior` 'selection'/'override'/'none') is deferred to\n * `createSelectableItem` (Phase 1 of the press-path epic); callers here pass\n * non-link items.\n */\n\nimport type { Accessor } from \"solid-js\";\nimport type {\n Collection,\n Key,\n SelectionBehavior,\n SelectionMode,\n SelectionPressEvent,\n} from \"@proyecto-viviana/solid-stately\";\n\nimport { isCtrlKeyPressed } from \"../utils/keyboard\";\nimport { isNonContiguousSelectionModifier } from \"./utils\";\n\nexport interface SelectItemState {\n readonly selectionMode: Accessor<SelectionMode>;\n readonly selectionBehavior: Accessor<SelectionBehavior>;\n readonly disallowEmptySelection: Accessor<boolean>;\n isSelected(key: Key): boolean;\n toggleSelection(key: Key): void;\n replaceSelection(key: Key): void;\n extendSelection(toKey: Key, collection: Collection): void;\n}\n\n/**\n * Resolve a press/keyboard interaction into a selection mutation on `manager`,\n * faithful to `useSelectableItem.onSelect`. `collection` is required for the\n * shift-extend (contiguous range) path.\n */\nexport function selectItem(\n manager: SelectItemState,\n key: Key,\n e: SelectionPressEvent,\n collection: Collection,\n): void {\n // A keyboard non-contiguous modifier (Alt on Apple devices, Ctrl elsewhere)\n // always toggles, independent of mode/behavior.\n if (e.pointerType === \"keyboard\" && isNonContiguousSelectionModifier(e)) {\n manager.toggleSelection(key);\n return;\n }\n\n if (manager.selectionMode() === \"none\") {\n return;\n }\n\n if (manager.selectionMode() === \"single\") {\n // Single mode ignores selectionBehavior. Re-selecting the current item\n // deselects it when empty selection is allowed; otherwise it stays\n // selected (replace).\n if (manager.isSelected(key) && !manager.disallowEmptySelection()) {\n manager.toggleSelection(key);\n } else {\n manager.replaceSelection(key);\n }\n } else if (e.shiftKey) {\n manager.extendSelection(key, collection);\n } else if (\n manager.selectionBehavior() === \"toggle\" ||\n isCtrlKeyPressed(e) ||\n e.pointerType === \"touch\" ||\n e.pointerType === \"virtual\"\n ) {\n // touch / virtual (VoiceOver) have no modifier keys, so multi-select is\n // only reachable by toggling.\n manager.toggleSelection(key);\n } else {\n manager.replaceSelection(key);\n }\n}\n","/*\n * Copyright 2020 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */\n\n// Ported to SolidJS for Proyecto Viviana; based on packages/react-aria/src/selection/useSelectableItem.ts\n\n/**\n * createSelectableItem - handles interactions with an item in a selectable\n * collection. Port of `@react-aria/selection`'s `useSelectableItem`.\n *\n * This encapsulates the full press-path action model: the\n * selection-vs-action decision per pointer type, the press-up-vs-press timing\n * (menus select on press up, rows on press down), the keyboard Space/Enter\n * split, double-click secondary actions, and long-press-to-toggle. The\n * selection decision itself is delegated to the aria-layer {@link selectItem}\n * (Phase 0), which is also where the platform-aware modifier resolution lives.\n *\n * Documented adaptations from upstream (React → Solid / our thinner state):\n * - **Link model is prop-threaded.** Our collection nodes don't expose\n * `manager.isLink`/`manager.getItemProps`, so link items pass `isLink` /\n * `href` / `routerOptions` via options and navigation goes through\n * {@link openLink} (we have no `RouterProvider` context).\n * - **Selection manager shape is structural.** ListState passes its\n * SelectionManager; grid-like states pass an adapter with the same observable\n * surface. `canSelectItem` is read from that surface when available so\n * `disabledBehavior: 'selection'` keeps actions enabled while selection stays\n * blocked.\n * - **Virtual focus** guards real DOM focus and updates the focused key on\n * press. Ticket #100 tracks the missing AT cursor move.\n * - **`onDragStart`** uses the bubble phase. Ticket #84 owns the capture-phase\n * integration with drag and drop.\n * - **`getItemProps` press-handler chaining** is omitted because our nodes do\n * not carry collection-provided press handlers. Ticket #97 owns this boundary.\n */\n\nimport { createUniqueId, createTrackedEffect } from \"solid-js\";\nimport type { Accessor } from \"solid-js\";\nimport type { JSX } from \"@solidjs/web\";\nimport type {\n Collection,\n DisabledBehavior,\n FocusStrategy,\n Key,\n Selection,\n SelectionBehavior,\n} from \"@proyecto-viviana/solid-stately\";\nimport { createPress, type PressEvent } from \"../interactions/createPress\";\nimport { createLongPress } from \"../interactions/createLongPress\";\nimport { mergeProps } from \"../utils/mergeProps\";\nimport { access, type MaybeAccessor } from \"../utils/reactivity\";\nimport { focusSafely } from \"../utils/focus\";\nimport { getOwnerDocument, getEventTarget, openLink } from \"../utils/dom\";\nimport { getCollectionId, isNonContiguousSelectionModifier } from \"./utils\";\nimport { selectItem, type SelectItemState } from \"./selectItem\";\nimport { createDragSession } from \"../dnd/DragManager\";\n\n/**\n * DOM event dispatched when an item action is performed. Mirrors upstream's\n * `react-aria-item-action`; combobox/autocomplete listen for it to close on\n * action. Exported so emitter and listener share one constant.\n */\nexport const ITEM_ACTION_EVENT = \"solidaria:item-action\";\n\n/** How links in the collection behave relative to selection and actions. */\nexport type LinkBehavior = \"action\" | \"selection\" | \"override\" | \"none\";\n\nexport interface CreateSelectableItemOptions {\n /** A unique key for the item. */\n key: Key;\n /** Optional DOM id for the item element. Defaults to a generated id. */\n id?: string;\n /**\n * By default, selection occurs on pointer down. Set to select on pointer up\n * instead — useful when selecting an item makes the UI disappear (e.g. menus).\n */\n shouldSelectOnPressUp?: boolean;\n /**\n * Whether selection may trigger on a pointer up whose pointer down occurred on\n * a different target (e.g. press down on the menu trigger, up on a menu item).\n */\n allowsDifferentPressOrigin?: boolean;\n /** Whether the item is contained in a virtual scroller. */\n isVirtualized?: boolean;\n /** Function to focus the item, overriding the default DOM focus. */\n focus?: () => void;\n /** Whether the item should use virtual focus instead of receiving DOM focus. */\n shouldUseVirtualFocus?: boolean;\n /** Whether the item is disabled. */\n isDisabled?: boolean;\n /**\n * Handler called when the user performs an action on the item. The triggering\n * event depends on the collection's `selectionBehavior` and the modality.\n */\n onAction?: (event: PressEvent | MouseEvent) => void;\n /**\n * The behavior of links in the collection.\n * - `action`: link behaves like onAction.\n * - `selection`: link follows selection interactions (e.g. URL drives selection).\n * - `override`: links override all other interactions (link items aren't selectable).\n * - `none`: links are disabled for both selection and actions.\n * @default 'action'\n */\n linkBehavior?: LinkBehavior;\n /** Whether this item is a link (prop-threaded; our nodes don't expose `isLink`). */\n isLink?: boolean;\n /** The link target URL, when `isLink`. */\n href?: string;\n /** Router options forwarded to navigation, when `isLink`. */\n routerOptions?: Record<string, unknown>;\n /**\n * Unstable upstream override that forces an item with `onAction` to treat the\n * action as primary (single click), even when it is selectable.\n */\n UNSTABLE_itemBehavior?: \"selection\" | \"action\";\n}\n\nexport interface SelectableItemAria {\n /** Props to spread on the item root element. */\n itemProps: JSX.HTMLAttributes<HTMLElement>;\n /** Whether the item is currently pressed. */\n isPressed: Accessor<boolean>;\n /** Whether the item is currently selected. */\n isSelected: Accessor<boolean>;\n /** Whether the item is currently focused. */\n isFocused: Accessor<boolean>;\n /** Whether the item is non-interactive (selection and actions both disabled). */\n isDisabled: Accessor<boolean>;\n /** Whether the item may be selected. */\n allowsSelection: Accessor<boolean>;\n /** Whether the item has an action (primary or secondary). */\n hasAction: Accessor<boolean>;\n}\n\nexport interface SelectableItemState<T> extends SelectItemState {\n /** The collection the item belongs to. */\n readonly collection: Accessor<Collection<T>>;\n /** Whether the collection is currently focused. */\n readonly isFocused: Accessor<boolean>;\n /** Sets whether the collection is focused. */\n setFocused(isFocused: boolean): void;\n /** The currently focused key in the collection. */\n readonly focusedKey: Accessor<Key | null>;\n /** The strategy for child focus, when applicable. */\n readonly childFocusStrategy?: Accessor<FocusStrategy | null>;\n /** Sets the focused key. */\n setFocusedKey(key: Key | null, childFocusStrategy?: FocusStrategy): void;\n /** The currently selected keys. */\n readonly selectedKeys: Accessor<Selection>;\n /** Disabled keys for the collection. */\n readonly disabledKeys: Accessor<Set<Key>>;\n /** How disabled keys behave. */\n readonly disabledBehavior: Accessor<DisabledBehavior>;\n /** Whether selection is empty. */\n readonly isEmpty: Accessor<boolean>;\n /** Whether all selectable items are selected. */\n readonly isSelectAll?: Accessor<boolean>;\n /** Whether the key is fully disabled for interaction. */\n isDisabled(key: Key): boolean;\n /** Whether the key may be selected. Defaults to SelectionManager when present. */\n canSelectItem?(key: Key): boolean;\n /** Set the selection behavior for the collection. */\n setSelectionBehavior(behavior: SelectionBehavior): void;\n /** Set multiple selected keys. */\n setSelectedKeys(keys: Iterable<Key>): void;\n /** Select all selectable keys. */\n selectAll(): void;\n /** Clear selection. */\n clearSelection(): void;\n /** Toggle select all. */\n toggleSelectAll(): void;\n /** Optional stable object used by selectable collections for DOM scoping. */\n readonly selectionManager?: {\n canSelectItem?(key: Key): boolean;\n } & object;\n}\n\nconst isActionKey = (key: string | undefined) => key === \"Enter\";\nconst isSelectionKey = (key: string | undefined) => key === \" \";\n\n/**\n * Provides the behavior and accessibility implementation for an item in a\n * selectable collection.\n */\nexport function createSelectableItem<T>(\n options: MaybeAccessor<CreateSelectableItemOptions>,\n manager: SelectableItemState<T>,\n ref: () => HTMLElement | null,\n): SelectableItemAria {\n const getOptions = () => access(options);\n const generatedId = createUniqueId();\n\n const key = () => getOptions().key;\n const id = () => getOptions().id ?? generatedId;\n const linkBehavior = (): LinkBehavior => getOptions().linkBehavior ?? \"action\";\n const shouldUseVirtualFocus = () => getOptions().shouldUseVirtualFocus ?? false;\n const allowsDifferentPressOrigin = () => getOptions().allowsDifferentPressOrigin ?? false;\n const shouldSelectOnPressUp = () => getOptions().shouldSelectOnPressUp ?? false;\n const isLink = () => getOptions().isLink ?? !!getOptions().href;\n\n const collection = (): Collection<T> => manager.collection();\n\n // Final disabled state: explicitly disabled, or disabled by the collection.\n const isDisabled = () => getOptions().isDisabled === true || manager.isDisabled(key());\n\n // Mirrors SelectionManager.canSelectItem, while allowing grid/table/tree\n // adapters to expose the raw selection-disabled check separately from\n // interaction disabled.\n const canSelectItem = () => {\n const k = key();\n return (\n manager.canSelectItem?.(k) ??\n manager.selectionManager?.canSelectItem?.(k) ??\n (manager.selectionMode() !== \"none\" && !manager.isDisabled(k))\n );\n };\n\n const isLinkOverride = () => isLink() && linkBehavior() === \"override\";\n const isActionOverride = () =>\n getOptions().onAction != null && getOptions().UNSTABLE_itemBehavior === \"action\";\n const hasLinkAction = () =>\n isLink() && linkBehavior() !== \"selection\" && linkBehavior() !== \"none\";\n\n const allowsSelection = () =>\n !isDisabled() && canSelectItem() && !isLinkOverride() && !isActionOverride();\n const allowsActions = () => (getOptions().onAction != null || hasLinkAction()) && !isDisabled();\n\n // With checkbox selection (behavior 'toggle'), onAction is primary and occurs\n // on a single click. With highlight selection (behavior 'replace'), onAction\n // is secondary and occurs on double click; single click selects.\n const hasPrimaryAction = () =>\n allowsActions() &&\n (manager.selectionBehavior() === \"replace\"\n ? !allowsSelection()\n : !allowsSelection() || manager.isEmpty());\n const hasSecondaryAction = () =>\n allowsActions() && allowsSelection() && manager.selectionBehavior() === \"replace\";\n const hasAction = () => hasPrimaryAction() || hasSecondaryAction();\n\n const longPressEnabled = () => hasAction() && allowsSelection();\n\n // Plain mutable state (no reactivity needed): the modality of the active press\n // and snapshots captured at press start.\n let modality: PressEvent[\"pointerType\"] | null = null;\n let longPressEnabledOnPressStart = false;\n let hadPrimaryActionOnPressStart = false;\n\n const isSelected = () => manager.selectionMode() !== \"none\" && manager.isSelected(key());\n const isFocused = () => manager.isFocused() && manager.focusedKey() === key();\n\n const isNestedInteractiveTarget = (target: unknown): boolean => {\n const root = ref?.();\n if (!root || !(target instanceof Element) || target === root || !root.contains(target)) {\n return false;\n }\n const interactive = target.closest(\n 'button, input, select, textarea, a[href], [data-solidaria-pressable], [role=\"button\"], [role=\"checkbox\"], [role=\"menuitem\"]',\n );\n return interactive != null && interactive !== root && root.contains(interactive);\n };\n\n // The aria-layer selection decision, with the link branch (deferred from\n // selectItem) layered in. Mirrors useSelectableItem.onSelect.\n const onSelect = (e: PressEvent) => {\n const k = key();\n if (e.pointerType === \"keyboard\" && isNonContiguousSelectionModifier(e)) {\n manager.toggleSelection(k);\n return;\n }\n\n if (manager.selectionMode() === \"none\") {\n return;\n }\n\n if (isLink()) {\n if (linkBehavior() === \"selection\") {\n const el = ref();\n if (el instanceof HTMLAnchorElement) {\n openLink(el, e);\n }\n // Restore the prior selection so select/combobox close cleanly.\n const sel = manager.selectedKeys();\n if (sel !== \"all\") {\n manager.setSelectedKeys(sel);\n }\n return;\n } else if (linkBehavior() === \"override\" || linkBehavior() === \"none\") {\n return;\n }\n }\n\n selectItem(manager, k, e, collection());\n };\n\n const performAction = (e: PressEvent | MouseEvent) => {\n const o = getOptions();\n if (o.onAction) {\n o.onAction(e);\n ref()?.dispatchEvent(new CustomEvent(ITEM_ACTION_EVENT, { bubbles: true }));\n }\n\n if (hasLinkAction()) {\n const el = ref();\n if (el instanceof HTMLAnchorElement) {\n openLink(el, e);\n }\n }\n };\n\n // Focus the associated DOM node when this item becomes the focused key. This\n // is the imperative half of roving tabindex — the tabIndex 0/-1 swap below is\n // only declarative.\n const dragSession = createDragSession();\n createTrackedEffect(() => {\n // While a keyboard drag session is active, real DOM focus is owned by the\n // DragManager (it lives on drop indicators / the collection), and upstream's\n // React `useSelectableItem` focus effect provably cannot re-run mid-drag —\n // its dep array `[ref, key, focusedKey, childFocusStrategy, isFocused]` stays\n // frozen. Our reactive effect would otherwise re-fire and steal focus back\n // onto the focused option, bouncing focus off the drop indicator. Reading the\n // reactive drag-session accessor here also re-runs this effect once the drag\n // ends, restoring normal roving-tabindex focus.\n if (dragSession()) {\n return;\n }\n\n if (key() !== manager.focusedKey() || !manager.isFocused()) {\n return;\n }\n\n const o = getOptions();\n if (!shouldUseVirtualFocus()) {\n if (o.focus) {\n o.focus();\n } else {\n const el = ref();\n if (el && getOwnerDocument(el).activeElement !== el) {\n focusSafely(el);\n }\n }\n }\n // Ticket #100 tracks the missing moveVirtualFocus call for this branch.\n });\n\n const { pressProps, isPressed } = createPress({\n get isDisabled() {\n // Press is only wired when the item is interactive (see the merge below),\n // but guard here too so disabled items never fire press handlers.\n return !(\n allowsSelection() ||\n hasPrimaryAction() ||\n (shouldUseVirtualFocus() && !isDisabled())\n );\n },\n get preventFocusOnPress() {\n return shouldUseVirtualFocus();\n },\n onPressStart(e) {\n if (isNestedInteractiveTarget(e.target)) {\n return;\n }\n modality = e.pointerType;\n longPressEnabledOnPressStart = longPressEnabled();\n\n if (shouldSelectOnPressUp()) {\n // Selection still happens on key down for the keyboard.\n if (e.pointerType === \"keyboard\" && (!hasAction() || isSelectionKey(e.key))) {\n onSelect(e);\n }\n } else {\n hadPrimaryActionOnPressStart = hasPrimaryAction();\n // Select on mouse down unless a primary action will occur on mouse up.\n // For keyboard, select on key down; with an action, Space selects on key\n // down and Enter performs the action on key up.\n if (\n allowsSelection() &&\n ((e.pointerType === \"mouse\" && !hasPrimaryAction()) ||\n (e.pointerType === \"keyboard\" && (!allowsActions() || isSelectionKey(e.key))))\n ) {\n onSelect(e);\n }\n }\n\n // When using virtual focus, update the focused key on (non-touch) press.\n if (shouldUseVirtualFocus() && e.pointerType !== \"touch\") {\n manager.setFocused(true);\n manager.setFocusedKey(key());\n }\n },\n onPressUp(e) {\n if (isNestedInteractiveTarget(e.target)) {\n return;\n }\n // Only relevant for press-up selection with a different press origin and\n // no primary action: select on the mouse up itself.\n if (\n shouldSelectOnPressUp() &&\n allowsDifferentPressOrigin() &&\n !hasPrimaryAction() &&\n e.pointerType === \"mouse\" &&\n allowsSelection()\n ) {\n onSelect(e);\n }\n },\n onPress(e) {\n if (isNestedInteractiveTarget(e.target)) {\n return;\n }\n if (shouldSelectOnPressUp()) {\n if (!allowsDifferentPressOrigin()) {\n if (hasPrimaryAction() || (hasSecondaryAction() && e.pointerType !== \"mouse\")) {\n if (e.pointerType === \"keyboard\" && !isActionKey(e.key)) {\n return;\n }\n performAction(e);\n } else if (e.pointerType !== \"keyboard\" && allowsSelection()) {\n onSelect(e);\n }\n } else if (hasPrimaryAction()) {\n performAction(e);\n } else if (e.pointerType !== \"keyboard\" && e.pointerType !== \"mouse\" && allowsSelection()) {\n onSelect(e);\n }\n } else if (\n // Selection on touch up; primary actions on pointer up. Both primary and\n // secondary actions on Enter key up. Secondary mouse actions go through\n // double click (below), not here.\n e.pointerType === \"touch\" ||\n e.pointerType === \"pen\" ||\n e.pointerType === \"virtual\" ||\n (e.pointerType === \"keyboard\" && hasAction() && isActionKey(e.key)) ||\n (e.pointerType === \"mouse\" && hadPrimaryActionOnPressStart)\n ) {\n if (hasAction()) {\n performAction(e);\n } else if (allowsSelection()) {\n onSelect(e);\n }\n }\n\n // When using virtual focus, update the focused key on a touch press.\n if (shouldUseVirtualFocus() && e.pointerType === \"touch\") {\n manager.setFocused(true);\n manager.setFocusedKey(key());\n }\n },\n });\n\n // Long pressing an item with touch when selectionBehavior = 'replace' switches\n // to 'toggle': single tap now selects (and toggles checkbox affordances)\n // instead of performing the action.\n const { longPressProps } = createLongPress({\n get isDisabled() {\n return !longPressEnabled();\n },\n onLongPress(e) {\n if (e.pointerType === \"touch\") {\n onSelect(e as unknown as PressEvent);\n manager.setSelectionBehavior(\"toggle\");\n }\n },\n });\n\n // Double clicking with a mouse with selectionBehavior = 'replace' performs the\n // secondary action.\n const onDblClick = (e: MouseEvent) => {\n if (!hasSecondaryAction()) return;\n if (modality === \"mouse\") {\n e.stopPropagation();\n e.preventDefault();\n performAction(e as unknown as PressEvent);\n }\n };\n\n // Prevent native drag and drop on long press when we also select on long\n // press. Upstream uses a capturing listener to beat useDrag. Ticket #84 owns\n // the capture-phase integration with drag and drop.\n const onDragStart = (e: DragEvent) => {\n if (modality === \"touch\" && longPressEnabledOnPressStart) {\n e.preventDefault();\n }\n };\n\n // Prevent native link clicks so we control exactly when they open (matching\n // selection behavior).\n const onClick = (e: MouseEvent) => {\n if (isNestedInteractiveTarget(e.target)) {\n return;\n }\n if (linkBehavior() !== \"none\" && isLink()) {\n if (!(openLink as { isOpening?: boolean }).isOpening) {\n e.preventDefault();\n }\n }\n };\n\n return {\n get itemProps(): JSX.HTMLAttributes<HTMLElement> {\n const k = key();\n const disabled = isDisabled();\n\n const baseProps: Record<string, unknown> = {\n \"data-key\": String(k),\n // Scopes this item to its collection for getItemElement. Resolves to a\n // value only once a createSelectableCollection container has registered\n // the manager; otherwise undefined (Solid omits the attribute).\n \"data-collection\": getCollectionId(manager.selectionManager ?? manager),\n };\n\n // Roving tabindex: only the focused item is tabbable. With virtual focus,\n // omit tabIndex entirely (so iOS VoiceOver doesn't pull real focus).\n if (!shouldUseVirtualFocus() && !disabled) {\n baseProps.tabIndex = k === manager.focusedKey() ? 0 : -1;\n baseProps.onFocus = (e: FocusEvent) => {\n if (getEventTarget(e) === ref()) {\n manager.setFocusedKey(k);\n }\n };\n } else if (disabled) {\n // Prevent focus going to the body when clicking a disabled item.\n baseProps.onMouseDown = (e: MouseEvent) => e.preventDefault();\n }\n\n const interactive =\n allowsSelection() || hasPrimaryAction() || (shouldUseVirtualFocus() && !disabled);\n\n return mergeProps(\n baseProps,\n interactive ? (pressProps as Record<string, unknown>) : {},\n longPressEnabled() ? (longPressProps as Record<string, unknown>) : {},\n { onDblClick, onDragStart, onClick, id: id() },\n // Prevent DOM focus from moving on mouse down when using virtual focus.\n shouldUseVirtualFocus() ? { onMouseDown: (e: MouseEvent) => e.preventDefault() } : {},\n ) as JSX.HTMLAttributes<HTMLElement>;\n },\n isPressed,\n isSelected,\n isFocused,\n isDisabled,\n allowsSelection,\n hasAction,\n };\n}\n"],"mappings":"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"}
@@ -1,12 +1,36 @@
1
- import { t as createPress } from "./createPress.jsx";
2
- import { i as mergeProps$1 } from "./env.jsx";
1
+ /*
2
+ * Copyright 2020 Adobe. All rights reserved.
3
+ * This file is licensed to you under the Apache License, Version 2.0 (the "License");
4
+ * you may not use this file except in compliance with the License. You may obtain a copy
5
+ * of the License at http://www.apache.org/licenses/LICENSE-2.0
6
+ *
7
+ * Unless required by applicable law or agreed to in writing, software distributed under
8
+ * the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS
9
+ * OF ANY KIND, either express or implied. See the License for the specific language
10
+ * governing permissions and limitations under the License.
11
+ */
12
+ // Ported to SolidJS for Proyecto Viviana; based on packages/react-aria/src/selection/useSelectableItem.ts
13
+ /*
14
+ * Copyright 2020 Adobe. All rights reserved.
15
+ * This file is licensed to you under the Apache License, Version 2.0 (the "License");
16
+ * you may not use this file except in compliance with the License. You may obtain a copy
17
+ * of the License at http://www.apache.org/licenses/LICENSE-2.0
18
+ *
19
+ * Unless required by applicable law or agreed to in writing, software distributed under
20
+ * the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS
21
+ * OF ANY KIND, either express or implied. See the License for the specific language
22
+ * governing permissions and limitations under the License.
23
+ */
24
+ // Ported to SolidJS for Proyecto Viviana; based on packages/react-aria/src/selection/utils.ts
25
+ import { t as mergeProps } from "./mergeProps.jsx";
26
+ import { c as isCtrlKeyPressed } from "./utils.jsx";
3
27
  import { t as access } from "./reactivity.jsx";
4
- import { c as isCtrlKeyPressed, w as isAppleDevice } from "./utils.jsx";
5
- import { a as getEventTarget, b as openLink, s as getOwnerDocument, t as focusSafely } from "./focus.jsx";
6
- import { r as createLongPress } from "./interactions.jsx";
28
+ import { G as isAppleDevice, a as getOwnerDocument, r as getEventTarget, w as focusSafely, y as openLink } from "./dom.jsx";
29
+ import { t as createPress } from "./createPress.jsx";
30
+ import { t as createLongPress } from "./createLongPress.jsx";
7
31
  import { createId } from "../ssr/index.jsx";
8
32
  import { n as createDragSession } from "./DragManager.jsx";
9
- import { createEffect, createUniqueId } from "solid-js";
33
+ import { createTrackedEffect, createUniqueId } from "solid-js";
10
34
  //#region src/selection/utils.ts
11
35
  /**
12
36
  * Resolves the DOM element rendered for a collection item by its key, scoped to
@@ -79,9 +103,10 @@ function selectItem(manager, key, e, collection) {
79
103
  return;
80
104
  }
81
105
  if (manager.selectionMode() === "none") return;
82
- if (manager.selectionMode() === "single") if (manager.isSelected(key) && !manager.disallowEmptySelection()) manager.toggleSelection(key);
83
- else manager.replaceSelection(key);
84
- else if (e.shiftKey) manager.extendSelection(key, collection);
106
+ if (manager.selectionMode() === "single") {
107
+ if (manager.isSelected(key) && !manager.disallowEmptySelection()) manager.toggleSelection(key);
108
+ else manager.replaceSelection(key);
109
+ } else if (e.shiftKey) manager.extendSelection(key, collection);
85
110
  else if (manager.selectionBehavior() === "toggle" || isCtrlKeyPressed(e) || e.pointerType === "touch" || e.pointerType === "virtual") manager.toggleSelection(key);
86
111
  else manager.replaceSelection(key);
87
112
  }
@@ -109,11 +134,11 @@ function selectItem(manager, key, e, collection) {
109
134
  * `disabledBehavior: 'selection'` keeps actions enabled while selection stays
110
135
  * blocked.
111
136
  * - **Virtual focus** guards real DOM focus and updates the focused key on
112
- * press; we have no `moveVirtualFocus`, so no AT cursor move is dispatched.
113
- * - **`onDragStart`** is bubble phase (upstream uses capture to beat `useDrag`);
114
- * wired to capture when drag-and-drop integration lands.
115
- * - **`getItemProps` press-handler chaining** (collection-provided press
116
- * handlers) is omitted — our nodes don't carry them.
137
+ * press. Ticket #100 tracks the missing AT cursor move.
138
+ * - **`onDragStart`** uses the bubble phase. Ticket #84 owns the capture-phase
139
+ * integration with drag and drop.
140
+ * - **`getItemProps` press-handler chaining** is omitted because our nodes do
141
+ * not carry collection-provided press handlers. Ticket #97 owns this boundary.
117
142
  */
118
143
  /**
119
144
  * DOM event dispatched when an item action is performed. Mirrors upstream's
@@ -157,6 +182,12 @@ function createSelectableItem(options, manager, ref) {
157
182
  let hadPrimaryActionOnPressStart = false;
158
183
  const isSelected = () => manager.selectionMode() !== "none" && manager.isSelected(key());
159
184
  const isFocused = () => manager.isFocused() && manager.focusedKey() === key();
185
+ const isNestedInteractiveTarget = (target) => {
186
+ const root = ref?.();
187
+ if (!root || !(target instanceof Element) || target === root || !root.contains(target)) return false;
188
+ const interactive = target.closest("button, input, select, textarea, a[href], [data-solidaria-pressable], [role=\"button\"], [role=\"checkbox\"], [role=\"menuitem\"]");
189
+ return interactive != null && interactive !== root && root.contains(interactive);
190
+ };
160
191
  const onSelect = (e) => {
161
192
  const k = key();
162
193
  if (e.pointerType === "keyboard" && isNonContiguousSelectionModifier(e)) {
@@ -187,14 +218,16 @@ function createSelectableItem(options, manager, ref) {
187
218
  }
188
219
  };
189
220
  const dragSession = createDragSession();
190
- createEffect(() => {
221
+ createTrackedEffect(() => {
191
222
  if (dragSession()) return;
192
223
  if (key() !== manager.focusedKey() || !manager.isFocused()) return;
193
224
  const o = getOptions();
194
- if (!shouldUseVirtualFocus()) if (o.focus) o.focus();
195
- else {
196
- const el = ref();
197
- if (el && getOwnerDocument(el).activeElement !== el) focusSafely(el);
225
+ if (!shouldUseVirtualFocus()) {
226
+ if (o.focus) o.focus();
227
+ else {
228
+ const el = ref();
229
+ if (el && getOwnerDocument(el).activeElement !== el) focusSafely(el);
230
+ }
198
231
  }
199
232
  });
200
233
  const { pressProps, isPressed } = createPress({
@@ -205,6 +238,7 @@ function createSelectableItem(options, manager, ref) {
205
238
  return shouldUseVirtualFocus();
206
239
  },
207
240
  onPressStart(e) {
241
+ if (isNestedInteractiveTarget(e.target)) return;
208
242
  modality = e.pointerType;
209
243
  longPressEnabledOnPressStart = longPressEnabled();
210
244
  if (shouldSelectOnPressUp()) {
@@ -219,9 +253,11 @@ function createSelectableItem(options, manager, ref) {
219
253
  }
220
254
  },
221
255
  onPressUp(e) {
256
+ if (isNestedInteractiveTarget(e.target)) return;
222
257
  if (shouldSelectOnPressUp() && allowsDifferentPressOrigin() && !hasPrimaryAction() && e.pointerType === "mouse" && allowsSelection()) onSelect(e);
223
258
  },
224
259
  onPress(e) {
260
+ if (isNestedInteractiveTarget(e.target)) return;
225
261
  if (shouldSelectOnPressUp()) {
226
262
  if (!allowsDifferentPressOrigin()) {
227
263
  if (hasPrimaryAction() || hasSecondaryAction() && e.pointerType !== "mouse") {
@@ -263,6 +299,7 @@ function createSelectableItem(options, manager, ref) {
263
299
  if (modality === "touch" && longPressEnabledOnPressStart) e.preventDefault();
264
300
  };
265
301
  const onClick = (e) => {
302
+ if (isNestedInteractiveTarget(e.target)) return;
266
303
  if (linkBehavior() !== "none" && isLink()) {
267
304
  if (!openLink.isOpening) e.preventDefault();
268
305
  }
@@ -281,7 +318,8 @@ function createSelectableItem(options, manager, ref) {
281
318
  if (getEventTarget(e) === ref()) manager.setFocusedKey(k);
282
319
  };
283
320
  } else if (disabled) baseProps.onMouseDown = (e) => e.preventDefault();
284
- return mergeProps$1(baseProps, allowsSelection() || hasPrimaryAction() || shouldUseVirtualFocus() && !disabled ? pressProps : {}, longPressEnabled() ? longPressProps : {}, {
321
+ const interactive = allowsSelection() || hasPrimaryAction() || shouldUseVirtualFocus() && !disabled;
322
+ return mergeProps(baseProps, interactive ? pressProps : {}, longPressEnabled() ? longPressProps : {}, {
285
323
  onDblClick,
286
324
  onDragStart,
287
325
  onClick,