@proyecto-viviana/solidaria 0.3.0 → 0.4.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (743) hide show
  1. package/dist/_chunk/DragManager.js +627 -0
  2. package/dist/_chunk/DragManager.js.map +1 -0
  3. package/dist/_chunk/DragManager.jsx +627 -0
  4. package/dist/_chunk/DragManager.jsx.map +1 -0
  5. package/dist/_chunk/FocusScope.js +400 -0
  6. package/dist/_chunk/FocusScope.js.map +1 -0
  7. package/dist/_chunk/FocusScope.jsx +375 -0
  8. package/dist/_chunk/FocusScope.jsx.map +1 -0
  9. package/dist/_chunk/actiongroup.js +141 -0
  10. package/dist/_chunk/actiongroup.js.map +1 -0
  11. package/dist/_chunk/actiongroup.jsx +141 -0
  12. package/dist/_chunk/actiongroup.jsx.map +1 -0
  13. package/dist/_chunk/announce.js +207 -0
  14. package/dist/_chunk/announce.js.map +1 -0
  15. package/dist/_chunk/announce.jsx +207 -0
  16. package/dist/_chunk/announce.jsx.map +1 -0
  17. package/dist/_chunk/ariaHideOutside.js +122 -0
  18. package/dist/_chunk/ariaHideOutside.js.map +1 -0
  19. package/dist/_chunk/ariaHideOutside.jsx +122 -0
  20. package/dist/_chunk/ariaHideOutside.jsx.map +1 -0
  21. package/dist/_chunk/autocomplete.js +244 -0
  22. package/dist/_chunk/autocomplete.js.map +1 -0
  23. package/dist/_chunk/autocomplete.jsx +244 -0
  24. package/dist/_chunk/autocomplete.jsx.map +1 -0
  25. package/dist/_chunk/breadcrumbs.js +121 -0
  26. package/dist/_chunk/breadcrumbs.js.map +1 -0
  27. package/dist/_chunk/breadcrumbs.jsx +121 -0
  28. package/dist/_chunk/breadcrumbs.jsx.map +1 -0
  29. package/dist/_chunk/button.js +275 -0
  30. package/dist/_chunk/button.js.map +1 -0
  31. package/dist/_chunk/button.jsx +275 -0
  32. package/dist/_chunk/button.jsx.map +1 -0
  33. package/dist/_chunk/calendar.js +1037 -0
  34. package/dist/_chunk/calendar.js.map +1 -0
  35. package/dist/_chunk/calendar.jsx +1037 -0
  36. package/dist/_chunk/calendar.jsx.map +1 -0
  37. package/dist/_chunk/checkbox.js +235 -0
  38. package/dist/_chunk/checkbox.js.map +1 -0
  39. package/dist/_chunk/checkbox.jsx +235 -0
  40. package/dist/_chunk/checkbox.jsx.map +1 -0
  41. package/dist/_chunk/color.js +1458 -0
  42. package/dist/_chunk/color.js.map +1 -0
  43. package/dist/_chunk/color.jsx +1458 -0
  44. package/dist/_chunk/color.jsx.map +1 -0
  45. package/dist/_chunk/combobox.js +1062 -0
  46. package/dist/_chunk/combobox.js.map +1 -0
  47. package/dist/_chunk/combobox.jsx +1062 -0
  48. package/dist/_chunk/combobox.jsx.map +1 -0
  49. package/dist/_chunk/constants.js +19 -0
  50. package/dist/_chunk/constants.js.map +1 -0
  51. package/dist/_chunk/constants.jsx +19 -0
  52. package/dist/_chunk/constants.jsx.map +1 -0
  53. package/dist/_chunk/createCollator.js +61 -0
  54. package/dist/_chunk/createCollator.js.map +1 -0
  55. package/dist/_chunk/createCollator.jsx +61 -0
  56. package/dist/_chunk/createCollator.jsx.map +1 -0
  57. package/dist/_chunk/createCollectionRowInteraction.js +133 -0
  58. package/dist/_chunk/createCollectionRowInteraction.js.map +1 -0
  59. package/dist/_chunk/createCollectionRowInteraction.jsx +133 -0
  60. package/dist/_chunk/createCollectionRowInteraction.jsx.map +1 -0
  61. package/dist/_chunk/createField.js +55 -0
  62. package/dist/_chunk/createField.js.map +1 -0
  63. package/dist/_chunk/createField.jsx +55 -0
  64. package/dist/_chunk/createField.jsx.map +1 -0
  65. package/dist/_chunk/createFocus.js +105 -0
  66. package/dist/_chunk/createFocus.js.map +1 -0
  67. package/dist/_chunk/createFocus.jsx +105 -0
  68. package/dist/_chunk/createFocus.jsx.map +1 -0
  69. package/dist/_chunk/createFocusRing.js +54 -0
  70. package/dist/_chunk/createFocusRing.js.map +1 -0
  71. package/dist/_chunk/createFocusRing.jsx +54 -0
  72. package/dist/_chunk/createFocusRing.jsx.map +1 -0
  73. package/dist/_chunk/createFocusWithin.js +120 -0
  74. package/dist/_chunk/createFocusWithin.js.map +1 -0
  75. package/dist/_chunk/createFocusWithin.jsx +120 -0
  76. package/dist/_chunk/createFocusWithin.jsx.map +1 -0
  77. package/dist/_chunk/createFocusable.js +131 -0
  78. package/dist/_chunk/createFocusable.js.map +1 -0
  79. package/dist/_chunk/createFocusable.jsx +131 -0
  80. package/dist/_chunk/createFocusable.jsx.map +1 -0
  81. package/dist/_chunk/createFormReset.js +39 -0
  82. package/dist/_chunk/createFormReset.js.map +1 -0
  83. package/dist/_chunk/createFormReset.jsx +39 -0
  84. package/dist/_chunk/createFormReset.jsx.map +1 -0
  85. package/dist/_chunk/createFormValidation.js +135 -0
  86. package/dist/_chunk/createFormValidation.js.map +1 -0
  87. package/dist/_chunk/createFormValidation.jsx +135 -0
  88. package/dist/_chunk/createFormValidation.jsx.map +1 -0
  89. package/dist/_chunk/createHover.js +131 -0
  90. package/dist/_chunk/createHover.js.map +1 -0
  91. package/dist/_chunk/createHover.jsx +131 -0
  92. package/dist/_chunk/createHover.jsx.map +1 -0
  93. package/dist/_chunk/createInteractionModality.js +268 -0
  94. package/dist/_chunk/createInteractionModality.js.map +1 -0
  95. package/dist/_chunk/createInteractionModality.jsx +268 -0
  96. package/dist/_chunk/createInteractionModality.jsx.map +1 -0
  97. package/dist/_chunk/createLabel.js +47 -0
  98. package/dist/_chunk/createLabel.js.map +1 -0
  99. package/dist/_chunk/createLabel.jsx +47 -0
  100. package/dist/_chunk/createLabel.jsx.map +1 -0
  101. package/dist/_chunk/createLabels.js +32 -0
  102. package/dist/_chunk/createLabels.js.map +1 -0
  103. package/dist/_chunk/createLabels.jsx +32 -0
  104. package/dist/_chunk/createLabels.jsx.map +1 -0
  105. package/dist/_chunk/createLandmark.js +198 -0
  106. package/dist/_chunk/createLandmark.js.map +1 -0
  107. package/dist/_chunk/createLandmark.jsx +198 -0
  108. package/dist/_chunk/createLandmark.jsx.map +1 -0
  109. package/dist/_chunk/createOverlay.js +327 -0
  110. package/dist/_chunk/createOverlay.js.map +1 -0
  111. package/dist/_chunk/createOverlay.jsx +327 -0
  112. package/dist/_chunk/createOverlay.jsx.map +1 -0
  113. package/dist/_chunk/createPress.js +526 -0
  114. package/dist/_chunk/createPress.js.map +1 -0
  115. package/dist/_chunk/createPress.jsx +526 -0
  116. package/dist/_chunk/createPress.jsx.map +1 -0
  117. package/dist/_chunk/createProgressBar.js +82 -0
  118. package/dist/_chunk/createProgressBar.js.map +1 -0
  119. package/dist/_chunk/createProgressBar.jsx +82 -0
  120. package/dist/_chunk/createProgressBar.jsx.map +1 -0
  121. package/dist/_chunk/createSelectableItem.js +302 -0
  122. package/dist/_chunk/createSelectableItem.js.map +1 -0
  123. package/dist/_chunk/createSelectableItem.jsx +302 -0
  124. package/dist/_chunk/createSelectableItem.jsx.map +1 -0
  125. package/dist/_chunk/createStringFormatter.js +61 -0
  126. package/dist/_chunk/createStringFormatter.js.map +1 -0
  127. package/dist/_chunk/createStringFormatter.jsx +61 -0
  128. package/dist/_chunk/createStringFormatter.jsx.map +1 -0
  129. package/dist/_chunk/createToggle.js +159 -0
  130. package/dist/_chunk/createToggle.js.map +1 -0
  131. package/dist/_chunk/createToggle.jsx +159 -0
  132. package/dist/_chunk/createToggle.jsx.map +1 -0
  133. package/dist/_chunk/createTypeSelect.js +125 -0
  134. package/dist/_chunk/createTypeSelect.js.map +1 -0
  135. package/dist/_chunk/createTypeSelect.jsx +125 -0
  136. package/dist/_chunk/createTypeSelect.jsx.map +1 -0
  137. package/dist/_chunk/datepicker.js +1706 -0
  138. package/dist/_chunk/datepicker.js.map +1 -0
  139. package/dist/_chunk/datepicker.jsx +1706 -0
  140. package/dist/_chunk/datepicker.jsx.map +1 -0
  141. package/dist/_chunk/dialog.js +62 -0
  142. package/dist/_chunk/dialog.js.map +1 -0
  143. package/dist/_chunk/dialog.jsx +62 -0
  144. package/dist/_chunk/dialog.jsx.map +1 -0
  145. package/dist/_chunk/disclosure.js +185 -0
  146. package/dist/_chunk/disclosure.js.map +1 -0
  147. package/dist/_chunk/disclosure.jsx +185 -0
  148. package/dist/_chunk/disclosure.jsx.map +1 -0
  149. package/dist/_chunk/dnd.js +2395 -0
  150. package/dist/_chunk/dnd.js.map +1 -0
  151. package/dist/_chunk/dnd.jsx +2395 -0
  152. package/dist/_chunk/dnd.jsx.map +1 -0
  153. package/dist/_chunk/env.js +87 -0
  154. package/dist/_chunk/env.js.map +1 -0
  155. package/dist/_chunk/env.jsx +87 -0
  156. package/dist/_chunk/env.jsx.map +1 -0
  157. package/dist/_chunk/filterDOMProps.js +82 -0
  158. package/dist/_chunk/filterDOMProps.js.map +1 -0
  159. package/dist/_chunk/filterDOMProps.jsx +82 -0
  160. package/dist/_chunk/filterDOMProps.jsx.map +1 -0
  161. package/dist/_chunk/focus.js +399 -0
  162. package/dist/_chunk/focus.js.map +1 -0
  163. package/dist/_chunk/focus.jsx +399 -0
  164. package/dist/_chunk/focus.jsx.map +1 -0
  165. package/dist/_chunk/focus2.js +631 -0
  166. package/dist/_chunk/focus2.js.map +1 -0
  167. package/dist/_chunk/focus2.jsx +631 -0
  168. package/dist/_chunk/focus2.jsx.map +1 -0
  169. package/dist/_chunk/grid.js +623 -0
  170. package/dist/_chunk/grid.js.map +1 -0
  171. package/dist/_chunk/grid.jsx +623 -0
  172. package/dist/_chunk/grid.jsx.map +1 -0
  173. package/dist/_chunk/gridlist.js +369 -0
  174. package/dist/_chunk/gridlist.js.map +1 -0
  175. package/dist/_chunk/gridlist.jsx +369 -0
  176. package/dist/_chunk/gridlist.jsx.map +1 -0
  177. package/dist/_chunk/i18n.js +199 -0
  178. package/dist/_chunk/i18n.js.map +1 -0
  179. package/dist/_chunk/i18n.jsx +199 -0
  180. package/dist/_chunk/i18n.jsx.map +1 -0
  181. package/dist/_chunk/interactions.js +331 -0
  182. package/dist/_chunk/interactions.js.map +1 -0
  183. package/dist/_chunk/interactions.jsx +325 -0
  184. package/dist/_chunk/interactions.jsx.map +1 -0
  185. package/dist/_chunk/link.js +97 -0
  186. package/dist/_chunk/link.js.map +1 -0
  187. package/dist/_chunk/link.jsx +97 -0
  188. package/dist/_chunk/link.jsx.map +1 -0
  189. package/dist/_chunk/listbox.js +356 -0
  190. package/dist/_chunk/listbox.js.map +1 -0
  191. package/dist/_chunk/listbox.jsx +356 -0
  192. package/dist/_chunk/listbox.jsx.map +1 -0
  193. package/dist/_chunk/locale.js +173 -0
  194. package/dist/_chunk/locale.js.map +1 -0
  195. package/dist/_chunk/locale.jsx +167 -0
  196. package/dist/_chunk/locale.jsx.map +1 -0
  197. package/dist/_chunk/menu.js +519 -0
  198. package/dist/_chunk/menu.js.map +1 -0
  199. package/dist/_chunk/menu.jsx +519 -0
  200. package/dist/_chunk/menu.jsx.map +1 -0
  201. package/dist/_chunk/meter.js +33 -0
  202. package/dist/_chunk/meter.js.map +1 -0
  203. package/dist/_chunk/meter.jsx +33 -0
  204. package/dist/_chunk/meter.jsx.map +1 -0
  205. package/dist/_chunk/numberfield.js +259 -0
  206. package/dist/_chunk/numberfield.js.map +1 -0
  207. package/dist/_chunk/numberfield.jsx +259 -0
  208. package/dist/_chunk/numberfield.jsx.map +1 -0
  209. package/dist/_chunk/overlays.js +186 -0
  210. package/dist/_chunk/overlays.js.map +1 -0
  211. package/dist/_chunk/overlays.jsx +162 -0
  212. package/dist/_chunk/overlays.jsx.map +1 -0
  213. package/dist/_chunk/popover.js +574 -0
  214. package/dist/_chunk/popover.js.map +1 -0
  215. package/dist/_chunk/popover.jsx +574 -0
  216. package/dist/_chunk/popover.jsx.map +1 -0
  217. package/dist/_chunk/radio.js +320 -0
  218. package/dist/_chunk/radio.js.map +1 -0
  219. package/dist/_chunk/radio.jsx +320 -0
  220. package/dist/_chunk/radio.jsx.map +1 -0
  221. package/dist/_chunk/reactivity.js +21 -0
  222. package/dist/_chunk/reactivity.js.map +1 -0
  223. package/dist/_chunk/reactivity.jsx +21 -0
  224. package/dist/_chunk/reactivity.jsx.map +1 -0
  225. package/dist/_chunk/searchfield.js +210 -0
  226. package/dist/_chunk/searchfield.js.map +1 -0
  227. package/dist/_chunk/searchfield.jsx +210 -0
  228. package/dist/_chunk/searchfield.jsx.map +1 -0
  229. package/dist/_chunk/select.js +406 -0
  230. package/dist/_chunk/select.js.map +1 -0
  231. package/dist/_chunk/select.jsx +397 -0
  232. package/dist/_chunk/select.jsx.map +1 -0
  233. package/dist/_chunk/selection.js +666 -0
  234. package/dist/_chunk/selection.js.map +1 -0
  235. package/dist/_chunk/selection.jsx +666 -0
  236. package/dist/_chunk/selection.jsx.map +1 -0
  237. package/dist/_chunk/separator.js +29 -0
  238. package/dist/_chunk/separator.js.map +1 -0
  239. package/dist/_chunk/separator.jsx +29 -0
  240. package/dist/_chunk/separator.jsx.map +1 -0
  241. package/dist/_chunk/slider.js +256 -0
  242. package/dist/_chunk/slider.js.map +1 -0
  243. package/dist/_chunk/slider.jsx +256 -0
  244. package/dist/_chunk/slider.jsx.map +1 -0
  245. package/dist/_chunk/spinbutton.js +153 -0
  246. package/dist/_chunk/spinbutton.js.map +1 -0
  247. package/dist/_chunk/spinbutton.jsx +153 -0
  248. package/dist/_chunk/spinbutton.jsx.map +1 -0
  249. package/dist/_chunk/steplist.js +66 -0
  250. package/dist/_chunk/steplist.js.map +1 -0
  251. package/dist/_chunk/steplist.jsx +66 -0
  252. package/dist/_chunk/steplist.jsx.map +1 -0
  253. package/dist/_chunk/switch.js +34 -0
  254. package/dist/_chunk/switch.js.map +1 -0
  255. package/dist/_chunk/switch.jsx +34 -0
  256. package/dist/_chunk/switch.jsx.map +1 -0
  257. package/dist/_chunk/table.js +1088 -0
  258. package/dist/_chunk/table.js.map +1 -0
  259. package/dist/_chunk/table.jsx +1088 -0
  260. package/dist/_chunk/table.jsx.map +1 -0
  261. package/dist/_chunk/tabs.js +263 -0
  262. package/dist/_chunk/tabs.js.map +1 -0
  263. package/dist/_chunk/tabs.jsx +263 -0
  264. package/dist/_chunk/tabs.jsx.map +1 -0
  265. package/dist/_chunk/tag.js +322 -0
  266. package/dist/_chunk/tag.js.map +1 -0
  267. package/dist/_chunk/tag.jsx +322 -0
  268. package/dist/_chunk/tag.jsx.map +1 -0
  269. package/dist/_chunk/textfield.js +110 -0
  270. package/dist/_chunk/textfield.js.map +1 -0
  271. package/dist/_chunk/textfield.jsx +110 -0
  272. package/dist/_chunk/textfield.jsx.map +1 -0
  273. package/dist/_chunk/toast.js +250 -0
  274. package/dist/_chunk/toast.js.map +1 -0
  275. package/dist/_chunk/toast.jsx +250 -0
  276. package/dist/_chunk/toast.jsx.map +1 -0
  277. package/dist/_chunk/toolbar.js +226 -0
  278. package/dist/_chunk/toolbar.js.map +1 -0
  279. package/dist/_chunk/toolbar.jsx +226 -0
  280. package/dist/_chunk/toolbar.jsx.map +1 -0
  281. package/dist/_chunk/tooltip.js +185 -0
  282. package/dist/_chunk/tooltip.js.map +1 -0
  283. package/dist/_chunk/tooltip.jsx +185 -0
  284. package/dist/_chunk/tooltip.jsx.map +1 -0
  285. package/dist/_chunk/tree.js +452 -0
  286. package/dist/_chunk/tree.js.map +1 -0
  287. package/dist/_chunk/tree.jsx +452 -0
  288. package/dist/_chunk/tree.jsx.map +1 -0
  289. package/dist/_chunk/utils.js +705 -0
  290. package/dist/_chunk/utils.js.map +1 -0
  291. package/dist/_chunk/utils.jsx +705 -0
  292. package/dist/_chunk/utils.jsx.map +1 -0
  293. package/dist/_chunk/visually-hidden.js +93 -0
  294. package/dist/_chunk/visually-hidden.js.map +1 -0
  295. package/dist/_chunk/visually-hidden.jsx +93 -0
  296. package/dist/_chunk/visually-hidden.jsx.map +1 -0
  297. package/dist/actiongroup/createActionGroup.d.ts.map +1 -1
  298. package/dist/actiongroup/index.js +2 -0
  299. package/dist/actiongroup/index.jsx +2 -0
  300. package/dist/autocomplete/createAutocomplete.d.ts +12 -7
  301. package/dist/autocomplete/createAutocomplete.d.ts.map +1 -1
  302. package/dist/autocomplete/index.js +2 -0
  303. package/dist/autocomplete/index.jsx +2 -0
  304. package/dist/breadcrumbs/createBreadcrumbs.d.ts.map +1 -1
  305. package/dist/breadcrumbs/index.js +2 -0
  306. package/dist/breadcrumbs/index.jsx +2 -0
  307. package/dist/button/createToggleButtonGroup.d.ts.map +1 -1
  308. package/dist/button/index.js +2 -0
  309. package/dist/button/index.jsx +2 -0
  310. package/dist/calendar/createCalendar.d.ts.map +1 -1
  311. package/dist/calendar/createCalendarCell.d.ts.map +1 -1
  312. package/dist/calendar/createCalendarGrid.d.ts.map +1 -1
  313. package/dist/calendar/createCalendarMonthPicker.d.ts +41 -0
  314. package/dist/calendar/createCalendarMonthPicker.d.ts.map +1 -0
  315. package/dist/calendar/createCalendarYearPicker.d.ts +49 -0
  316. package/dist/calendar/createCalendarYearPicker.d.ts.map +1 -0
  317. package/dist/calendar/createRangeCalendar.d.ts.map +1 -1
  318. package/dist/calendar/createRangeCalendarCell.d.ts.map +1 -1
  319. package/dist/calendar/index.d.ts +2 -0
  320. package/dist/calendar/index.d.ts.map +1 -1
  321. package/dist/calendar/index.js +2 -0
  322. package/dist/calendar/index.jsx +2 -0
  323. package/dist/calendar/intl/index.d.ts +1 -1
  324. package/dist/calendar/intl/index.d.ts.map +1 -1
  325. package/dist/calendar/utils.d.ts +4 -0
  326. package/dist/calendar/utils.d.ts.map +1 -1
  327. package/dist/checkbox/createCheckbox.d.ts +4 -0
  328. package/dist/checkbox/createCheckbox.d.ts.map +1 -1
  329. package/dist/checkbox/createCheckboxGroupItem.d.ts.map +1 -1
  330. package/dist/checkbox/index.js +2 -0
  331. package/dist/checkbox/index.jsx +2 -0
  332. package/dist/collections/index.js +160 -0
  333. package/dist/collections/index.js.map +1 -0
  334. package/dist/collections/index.jsx +160 -0
  335. package/dist/collections/index.jsx.map +1 -0
  336. package/dist/color/createColorArea.d.ts.map +1 -1
  337. package/dist/color/createColorField.d.ts.map +1 -1
  338. package/dist/color/createColorSlider.d.ts.map +1 -1
  339. package/dist/color/createColorSwatch.d.ts.map +1 -1
  340. package/dist/color/createColorWheel.d.ts.map +1 -1
  341. package/dist/color/index.js +2 -0
  342. package/dist/color/index.jsx +2 -0
  343. package/dist/color/intl/index.d.ts +30 -0
  344. package/dist/color/intl/index.d.ts.map +1 -0
  345. package/dist/combobox/createComboBox.d.ts.map +1 -1
  346. package/dist/combobox/index.js +2 -0
  347. package/dist/combobox/index.jsx +2 -0
  348. package/dist/combobox/intl/generated-locales.d.ts +16 -0
  349. package/dist/combobox/intl/generated-locales.d.ts.map +1 -0
  350. package/dist/combobox/intl/index.d.ts +2 -2
  351. package/dist/combobox/intl/index.d.ts.map +1 -1
  352. package/dist/datepicker/createDateField.d.ts +45 -23
  353. package/dist/datepicker/createDateField.d.ts.map +1 -1
  354. package/dist/datepicker/createDatePicker.d.ts +34 -6
  355. package/dist/datepicker/createDatePicker.d.ts.map +1 -1
  356. package/dist/datepicker/createDatePickerGroup.d.ts +13 -13
  357. package/dist/datepicker/createDatePickerGroup.d.ts.map +1 -1
  358. package/dist/datepicker/createDateRangePicker.d.ts +55 -7
  359. package/dist/datepicker/createDateRangePicker.d.ts.map +1 -1
  360. package/dist/datepicker/createDateSegment.d.ts +6 -15
  361. package/dist/datepicker/createDateSegment.d.ts.map +1 -1
  362. package/dist/datepicker/createDisplayNames.d.ts +17 -0
  363. package/dist/datepicker/createDisplayNames.d.ts.map +1 -0
  364. package/dist/datepicker/createTimeField.d.ts +12 -49
  365. package/dist/datepicker/createTimeField.d.ts.map +1 -1
  366. package/dist/datepicker/index.d.ts +3 -3
  367. package/dist/datepicker/index.d.ts.map +1 -1
  368. package/dist/datepicker/index.js +2 -0
  369. package/dist/datepicker/index.jsx +2 -0
  370. package/dist/datepicker/intl.d.ts +12 -0
  371. package/dist/datepicker/intl.d.ts.map +1 -0
  372. package/dist/dialog/index.js +2 -0
  373. package/dist/dialog/index.jsx +2 -0
  374. package/dist/disclosure/index.js +2 -0
  375. package/dist/disclosure/index.jsx +2 -0
  376. package/dist/dnd/DragManager.d.ts +86 -0
  377. package/dist/dnd/DragManager.d.ts.map +1 -0
  378. package/dist/dnd/DropTargetKeyboardNavigation.d.ts +42 -0
  379. package/dist/dnd/DropTargetKeyboardNavigation.d.ts.map +1 -0
  380. package/dist/dnd/createDrag.d.ts.map +1 -1
  381. package/dist/dnd/createDraggableCollection.d.ts.map +1 -1
  382. package/dist/dnd/createDraggableItem.d.ts +12 -7
  383. package/dist/dnd/createDraggableItem.d.ts.map +1 -1
  384. package/dist/dnd/createDroppableCollection.d.ts +7 -15
  385. package/dist/dnd/createDroppableCollection.d.ts.map +1 -1
  386. package/dist/dnd/index.d.ts +5 -1
  387. package/dist/dnd/index.d.ts.map +1 -1
  388. package/dist/dnd/index.js +3 -0
  389. package/dist/dnd/index.jsx +3 -0
  390. package/dist/dnd/intl/index.d.ts +39 -0
  391. package/dist/dnd/intl/index.d.ts.map +1 -0
  392. package/dist/dnd/utils.d.ts +7 -2
  393. package/dist/dnd/utils.d.ts.map +1 -1
  394. package/dist/focus/FocusScope.d.ts +7 -0
  395. package/dist/focus/FocusScope.d.ts.map +1 -1
  396. package/dist/focus/index.d.ts +2 -1
  397. package/dist/focus/index.d.ts.map +1 -1
  398. package/dist/focus/index.js +3 -0
  399. package/dist/focus/index.jsx +3 -0
  400. package/dist/focus/virtualFocus.d.ts +26 -0
  401. package/dist/focus/virtualFocus.d.ts.map +1 -0
  402. package/dist/form/createFormValidation.d.ts.map +1 -1
  403. package/dist/form/index.js +3 -0
  404. package/dist/form/index.jsx +3 -0
  405. package/dist/grid/index.js +2 -0
  406. package/dist/grid/index.jsx +2 -0
  407. package/dist/gridlist/createGridList.d.ts +7 -1
  408. package/dist/gridlist/createGridList.d.ts.map +1 -1
  409. package/dist/gridlist/createGridListItem.d.ts +1 -1
  410. package/dist/gridlist/createGridListItem.d.ts.map +1 -1
  411. package/dist/gridlist/createGridListSection.d.ts +15 -0
  412. package/dist/gridlist/createGridListSection.d.ts.map +1 -0
  413. package/dist/gridlist/index.d.ts +2 -1
  414. package/dist/gridlist/index.d.ts.map +1 -1
  415. package/dist/gridlist/index.js +2 -0
  416. package/dist/gridlist/index.jsx +2 -0
  417. package/dist/gridlist/types.d.ts +50 -0
  418. package/dist/gridlist/types.d.ts.map +1 -1
  419. package/dist/i18n/index.js +5 -0
  420. package/dist/i18n/index.jsx +5 -0
  421. package/dist/index.d.ts +10 -6
  422. package/dist/index.d.ts.map +1 -1
  423. package/dist/index.js +77 -18311
  424. package/dist/index.jsx +77 -18242
  425. package/dist/interactions/FocusableProvider.d.ts.map +1 -1
  426. package/dist/interactions/PressEvent.d.ts +11 -0
  427. package/dist/interactions/PressEvent.d.ts.map +1 -1
  428. package/dist/interactions/createFocus.d.ts.map +1 -1
  429. package/dist/interactions/createFocusWithin.d.ts.map +1 -1
  430. package/dist/interactions/createInteractionModality.d.ts +0 -1
  431. package/dist/interactions/createInteractionModality.d.ts.map +1 -1
  432. package/dist/interactions/createKeyboard.d.ts.map +1 -1
  433. package/dist/interactions/createPress.d.ts.map +1 -1
  434. package/dist/interactions/index.js +9 -0
  435. package/dist/interactions/index.jsx +9 -0
  436. package/dist/label/createLabels.d.ts.map +1 -1
  437. package/dist/label/index.js +4 -0
  438. package/dist/label/index.jsx +4 -0
  439. package/dist/landmark/index.js +2 -0
  440. package/dist/landmark/index.jsx +2 -0
  441. package/dist/link/index.js +2 -0
  442. package/dist/link/index.jsx +2 -0
  443. package/dist/listbox/createListBox.d.ts +37 -0
  444. package/dist/listbox/createListBox.d.ts.map +1 -1
  445. package/dist/listbox/createOption.d.ts +7 -1
  446. package/dist/listbox/createOption.d.ts.map +1 -1
  447. package/dist/listbox/index.js +2 -0
  448. package/dist/listbox/index.jsx +2 -0
  449. package/dist/live-announcer/index.js +2 -0
  450. package/dist/live-announcer/index.jsx +2 -0
  451. package/dist/menu/createMenu.d.ts +7 -4
  452. package/dist/menu/createMenu.d.ts.map +1 -1
  453. package/dist/menu/createMenuItem.d.ts +9 -1
  454. package/dist/menu/createMenuItem.d.ts.map +1 -1
  455. package/dist/menu/index.js +2 -0
  456. package/dist/menu/index.jsx +2 -0
  457. package/dist/meter/index.js +2 -0
  458. package/dist/meter/index.jsx +2 -0
  459. package/dist/numberfield/createNumberField.d.ts.map +1 -1
  460. package/dist/numberfield/index.js +2 -0
  461. package/dist/numberfield/index.jsx +2 -0
  462. package/dist/overlays/index.js +4 -0
  463. package/dist/overlays/index.jsx +4 -0
  464. package/dist/popover/calculatePosition.d.ts +2 -0
  465. package/dist/popover/calculatePosition.d.ts.map +1 -1
  466. package/dist/popover/createOverlayPosition.d.ts +8 -0
  467. package/dist/popover/createOverlayPosition.d.ts.map +1 -1
  468. package/dist/popover/index.js +2 -0
  469. package/dist/popover/index.jsx +2 -0
  470. package/dist/progress/index.js +2 -0
  471. package/dist/progress/index.jsx +2 -0
  472. package/dist/radio/createRadio.d.ts +2 -0
  473. package/dist/radio/createRadio.d.ts.map +1 -1
  474. package/dist/radio/index.js +2 -0
  475. package/dist/radio/index.jsx +2 -0
  476. package/dist/searchfield/index.js +2 -0
  477. package/dist/searchfield/index.jsx +2 -0
  478. package/dist/select/createSelect.d.ts +2 -0
  479. package/dist/select/createSelect.d.ts.map +1 -1
  480. package/dist/select/index.js +2 -0
  481. package/dist/select/index.jsx +2 -0
  482. package/dist/selection/DOMLayoutDelegate.d.ts +58 -0
  483. package/dist/selection/DOMLayoutDelegate.d.ts.map +1 -0
  484. package/dist/selection/ListKeyboardDelegate.d.ts +95 -0
  485. package/dist/selection/ListKeyboardDelegate.d.ts.map +1 -0
  486. package/dist/selection/constants.d.ts +15 -0
  487. package/dist/selection/constants.d.ts.map +1 -0
  488. package/dist/selection/createCollectionRowInteraction.d.ts +13 -0
  489. package/dist/selection/createCollectionRowInteraction.d.ts.map +1 -0
  490. package/dist/selection/createScrollIntoViewOnFocus.d.ts +31 -0
  491. package/dist/selection/createScrollIntoViewOnFocus.d.ts.map +1 -0
  492. package/dist/selection/createSelectableCollection.d.ts +69 -0
  493. package/dist/selection/createSelectableCollection.d.ts.map +1 -0
  494. package/dist/selection/createSelectableItem.d.ts +154 -0
  495. package/dist/selection/createSelectableItem.d.ts.map +1 -0
  496. package/dist/selection/createSelectableList.d.ts +43 -0
  497. package/dist/selection/createSelectableList.d.ts.map +1 -0
  498. package/dist/selection/createTypeSelect.d.ts.map +1 -1
  499. package/dist/selection/index.d.ts +9 -0
  500. package/dist/selection/index.d.ts.map +1 -1
  501. package/dist/selection/index.js +5 -0
  502. package/dist/selection/index.jsx +5 -0
  503. package/dist/selection/selectItem.d.ts +29 -0
  504. package/dist/selection/selectItem.d.ts.map +1 -0
  505. package/dist/selection/utils.d.ts +40 -0
  506. package/dist/selection/utils.d.ts.map +1 -0
  507. package/dist/separator/index.js +2 -0
  508. package/dist/separator/index.jsx +2 -0
  509. package/dist/slider/createSlider.d.ts.map +1 -1
  510. package/dist/slider/index.js +2 -0
  511. package/dist/slider/index.jsx +2 -0
  512. package/dist/spinbutton/createSpinButton.d.ts +41 -0
  513. package/dist/spinbutton/createSpinButton.d.ts.map +1 -0
  514. package/dist/spinbutton/index.d.ts +3 -0
  515. package/dist/spinbutton/index.d.ts.map +1 -0
  516. package/dist/spinbutton/index.js +2 -0
  517. package/dist/spinbutton/index.jsx +2 -0
  518. package/dist/spinbutton/intl.d.ts +5 -0
  519. package/dist/spinbutton/intl.d.ts.map +1 -0
  520. package/dist/ssr/index.d.ts +17 -0
  521. package/dist/ssr/index.d.ts.map +1 -1
  522. package/dist/ssr/index.js +299 -0
  523. package/dist/ssr/index.js.map +1 -0
  524. package/dist/ssr/index.jsx +292 -0
  525. package/dist/ssr/index.jsx.map +1 -0
  526. package/dist/steplist/index.js +2 -0
  527. package/dist/steplist/index.jsx +2 -0
  528. package/dist/switch/createSwitch.d.ts +4 -0
  529. package/dist/switch/createSwitch.d.ts.map +1 -1
  530. package/dist/switch/index.js +2 -0
  531. package/dist/switch/index.jsx +2 -0
  532. package/dist/table/createTable.d.ts.map +1 -1
  533. package/dist/table/createTableColumnHeader.d.ts.map +1 -1
  534. package/dist/table/createTableRow.d.ts +1 -1
  535. package/dist/table/createTableRow.d.ts.map +1 -1
  536. package/dist/table/createTableSelectAllCheckbox.d.ts.map +1 -1
  537. package/dist/table/createTableSelectionCheckbox.d.ts.map +1 -1
  538. package/dist/table/index.js +2 -0
  539. package/dist/table/index.jsx +2 -0
  540. package/dist/table/types.d.ts +35 -1
  541. package/dist/table/types.d.ts.map +1 -1
  542. package/dist/table/utils.d.ts +15 -0
  543. package/dist/table/utils.d.ts.map +1 -0
  544. package/dist/tabs/createTabs.d.ts +5 -3
  545. package/dist/tabs/createTabs.d.ts.map +1 -1
  546. package/dist/tabs/index.js +2 -0
  547. package/dist/tabs/index.jsx +2 -0
  548. package/dist/tag/createTag.d.ts +2 -0
  549. package/dist/tag/createTag.d.ts.map +1 -1
  550. package/dist/tag/createTagGroup.d.ts +7 -0
  551. package/dist/tag/createTagGroup.d.ts.map +1 -1
  552. package/dist/tag/index.js +2 -0
  553. package/dist/tag/index.jsx +2 -0
  554. package/dist/textfield/index.js +2 -0
  555. package/dist/textfield/index.jsx +2 -0
  556. package/dist/toast/createToast.d.ts.map +1 -1
  557. package/dist/toast/index.js +2 -0
  558. package/dist/toast/index.jsx +2 -0
  559. package/dist/toggle/createToggle.d.ts +4 -0
  560. package/dist/toggle/createToggle.d.ts.map +1 -1
  561. package/dist/toggle/index.js +3 -0
  562. package/dist/toggle/index.jsx +3 -0
  563. package/dist/toolbar/createToolbar.d.ts +1 -1
  564. package/dist/toolbar/createToolbar.d.ts.map +1 -1
  565. package/dist/toolbar/index.js +2 -0
  566. package/dist/toolbar/index.jsx +2 -0
  567. package/dist/tooltip/index.js +2 -0
  568. package/dist/tooltip/index.jsx +2 -0
  569. package/dist/tree/createTree.d.ts +5 -1
  570. package/dist/tree/createTree.d.ts.map +1 -1
  571. package/dist/tree/createTreeItem.d.ts +1 -1
  572. package/dist/tree/createTreeItem.d.ts.map +1 -1
  573. package/dist/tree/createTreeSelectionCheckbox.d.ts.map +1 -1
  574. package/dist/tree/index.js +2 -0
  575. package/dist/tree/index.jsx +2 -0
  576. package/dist/tree/types.d.ts +10 -0
  577. package/dist/tree/types.d.ts.map +1 -1
  578. package/dist/utils/animation.d.ts +60 -0
  579. package/dist/utils/animation.d.ts.map +1 -0
  580. package/dist/utils/dom.d.ts +49 -2
  581. package/dist/utils/dom.d.ts.map +1 -1
  582. package/dist/utils/index.d.ts +4 -1
  583. package/dist/utils/index.d.ts.map +1 -1
  584. package/dist/utils/index.js +6 -0
  585. package/dist/utils/index.jsx +6 -0
  586. package/dist/utils/keyboard.d.ts +17 -0
  587. package/dist/utils/keyboard.d.ts.map +1 -0
  588. package/dist/utils/mergeProps.d.ts.map +1 -1
  589. package/dist/utils/scrollIntoView.d.ts +30 -0
  590. package/dist/utils/scrollIntoView.d.ts.map +1 -0
  591. package/dist/visually-hidden/index.js +2 -0
  592. package/dist/visually-hidden/index.jsx +2 -0
  593. package/package.json +304 -3
  594. package/src/actiongroup/createActionGroup.ts +26 -109
  595. package/src/autocomplete/createAutocomplete.ts +202 -35
  596. package/src/breadcrumbs/createBreadcrumbs.ts +12 -4
  597. package/src/button/createToggleButtonGroup.ts +19 -14
  598. package/src/calendar/createCalendar.ts +5 -4
  599. package/src/calendar/createCalendarCell.ts +36 -5
  600. package/src/calendar/createCalendarGrid.ts +47 -12
  601. package/src/calendar/createCalendarMonthPicker.ts +105 -0
  602. package/src/calendar/createCalendarYearPicker.ts +144 -0
  603. package/src/calendar/createRangeCalendar.ts +27 -15
  604. package/src/calendar/createRangeCalendarCell.ts +17 -3
  605. package/src/calendar/index.ts +17 -0
  606. package/src/calendar/intl/index.ts +8 -0
  607. package/src/calendar/utils.ts +4 -0
  608. package/src/checkbox/createCheckbox.ts +10 -0
  609. package/src/checkbox/createCheckboxGroupItem.ts +12 -16
  610. package/src/color/createColorArea.ts +17 -10
  611. package/src/color/createColorField.ts +8 -1
  612. package/src/color/createColorSlider.ts +1 -2
  613. package/src/color/createColorSwatch.ts +4 -2
  614. package/src/color/createColorWheel.ts +0 -6
  615. package/src/color/intl/index.ts +316 -0
  616. package/src/combobox/createComboBox.ts +35 -4
  617. package/src/combobox/intl/generated-locales.ts +635 -0
  618. package/src/combobox/intl/index.ts +8 -2
  619. package/src/datepicker/createDateField.ts +228 -213
  620. package/src/datepicker/createDatePicker.ts +157 -146
  621. package/src/datepicker/createDatePickerGroup.ts +88 -82
  622. package/src/datepicker/createDateRangePicker.ts +230 -179
  623. package/src/datepicker/createDateSegment.ts +386 -384
  624. package/src/datepicker/createDisplayNames.ts +45 -0
  625. package/src/datepicker/createTimeField.ts +36 -129
  626. package/src/datepicker/index.ts +13 -14
  627. package/src/datepicker/intl.ts +633 -0
  628. package/src/dnd/DragManager.ts +693 -0
  629. package/src/dnd/DropTargetKeyboardNavigation.ts +337 -0
  630. package/src/dnd/createDrag.ts +31 -5
  631. package/src/dnd/createDraggableCollection.ts +33 -15
  632. package/src/dnd/createDraggableItem.ts +92 -5
  633. package/src/dnd/createDroppableCollection.ts +488 -371
  634. package/src/dnd/index.ts +11 -0
  635. package/src/dnd/intl/ar-AE.json +29 -0
  636. package/src/dnd/intl/bg-BG.json +29 -0
  637. package/src/dnd/intl/cs-CZ.json +29 -0
  638. package/src/dnd/intl/da-DK.json +29 -0
  639. package/src/dnd/intl/de-DE.json +29 -0
  640. package/src/dnd/intl/el-GR.json +29 -0
  641. package/src/dnd/intl/en-US.json +29 -0
  642. package/src/dnd/intl/es-ES.json +29 -0
  643. package/src/dnd/intl/et-EE.json +29 -0
  644. package/src/dnd/intl/fi-FI.json +29 -0
  645. package/src/dnd/intl/fr-FR.json +29 -0
  646. package/src/dnd/intl/he-IL.json +29 -0
  647. package/src/dnd/intl/hr-HR.json +29 -0
  648. package/src/dnd/intl/hu-HU.json +29 -0
  649. package/src/dnd/intl/index.ts +139 -0
  650. package/src/dnd/intl/it-IT.json +29 -0
  651. package/src/dnd/intl/ja-JP.json +29 -0
  652. package/src/dnd/intl/ko-KR.json +29 -0
  653. package/src/dnd/intl/lt-LT.json +29 -0
  654. package/src/dnd/intl/lv-LV.json +29 -0
  655. package/src/dnd/intl/nb-NO.json +29 -0
  656. package/src/dnd/intl/nl-NL.json +29 -0
  657. package/src/dnd/intl/pl-PL.json +29 -0
  658. package/src/dnd/intl/pt-BR.json +29 -0
  659. package/src/dnd/intl/pt-PT.json +29 -0
  660. package/src/dnd/intl/ro-RO.json +29 -0
  661. package/src/dnd/intl/ru-RU.json +29 -0
  662. package/src/dnd/intl/sk-SK.json +29 -0
  663. package/src/dnd/intl/sl-SI.json +29 -0
  664. package/src/dnd/intl/sr-SP.json +29 -0
  665. package/src/dnd/intl/sv-SE.json +29 -0
  666. package/src/dnd/intl/tr-TR.json +29 -0
  667. package/src/dnd/intl/uk-UA.json +29 -0
  668. package/src/dnd/intl/zh-CN.json +29 -0
  669. package/src/dnd/intl/zh-TW.json +29 -0
  670. package/src/dnd/utils.ts +63 -3
  671. package/src/focus/FocusScope.tsx +266 -24
  672. package/src/focus/index.ts +8 -0
  673. package/src/focus/virtualFocus.ts +55 -0
  674. package/src/form/createFormValidation.ts +8 -1
  675. package/src/gridlist/createGridList.ts +187 -48
  676. package/src/gridlist/createGridListItem.ts +87 -155
  677. package/src/gridlist/createGridListSection.ts +54 -0
  678. package/src/gridlist/index.ts +3 -0
  679. package/src/gridlist/types.ts +47 -0
  680. package/src/index.ts +51 -3
  681. package/src/interactions/FocusableProvider.tsx +11 -6
  682. package/src/interactions/PressEvent.ts +14 -0
  683. package/src/interactions/createFocus.ts +26 -21
  684. package/src/interactions/createFocusWithin.ts +23 -24
  685. package/src/interactions/createInteractionModality.ts +26 -15
  686. package/src/interactions/createKeyboard.ts +10 -0
  687. package/src/interactions/createPress.ts +29 -6
  688. package/src/label/createLabels.ts +7 -4
  689. package/src/listbox/createListBox.ts +203 -10
  690. package/src/listbox/createOption.ts +84 -74
  691. package/src/menu/createMenu.ts +93 -16
  692. package/src/menu/createMenuItem.ts +253 -41
  693. package/src/numberfield/createNumberField.ts +82 -14
  694. package/src/popover/calculatePosition.ts +19 -7
  695. package/src/popover/createOverlayPosition.ts +9 -0
  696. package/src/radio/createRadio.ts +19 -2
  697. package/src/select/createSelect.ts +41 -4
  698. package/src/selection/DOMLayoutDelegate.ts +102 -0
  699. package/src/selection/ListKeyboardDelegate.ts +398 -0
  700. package/src/selection/constants.ts +16 -0
  701. package/src/selection/createCollectionRowInteraction.ts +209 -0
  702. package/src/selection/createScrollIntoViewOnFocus.ts +65 -0
  703. package/src/selection/createSelectableCollection.ts +645 -0
  704. package/src/selection/createSelectableItem.ts +512 -0
  705. package/src/selection/createSelectableList.ts +93 -0
  706. package/src/selection/createTypeSelect.ts +112 -51
  707. package/src/selection/index.ts +31 -0
  708. package/src/selection/selectItem.ts +80 -0
  709. package/src/selection/utils.ts +82 -0
  710. package/src/slider/createSlider.ts +48 -1
  711. package/src/spinbutton/createSpinButton.ts +163 -0
  712. package/src/spinbutton/index.ts +10 -0
  713. package/src/spinbutton/intl.ts +115 -0
  714. package/src/ssr/index.tsx +31 -0
  715. package/src/switch/createSwitch.ts +10 -0
  716. package/src/table/createTable.ts +82 -27
  717. package/src/table/createTableColumnHeader.ts +10 -0
  718. package/src/table/createTableRow.ts +208 -203
  719. package/src/table/createTableSelectAllCheckbox.ts +3 -4
  720. package/src/table/createTableSelectionCheckbox.ts +24 -1
  721. package/src/table/types.ts +37 -1
  722. package/src/table/utils.ts +41 -0
  723. package/src/tabs/createTabs.ts +95 -24
  724. package/src/tag/createTag.ts +30 -36
  725. package/src/tag/createTagGroup.ts +92 -0
  726. package/src/toast/createToast.ts +1 -0
  727. package/src/toggle/createToggle.ts +20 -0
  728. package/src/toolbar/createToolbar.ts +43 -94
  729. package/src/tree/createTree.ts +165 -52
  730. package/src/tree/createTreeItem.ts +105 -120
  731. package/src/tree/createTreeSelectionCheckbox.ts +14 -1
  732. package/src/tree/types.ts +10 -0
  733. package/src/utils/animation.ts +243 -0
  734. package/src/utils/dom.ts +216 -25
  735. package/src/utils/index.ts +10 -0
  736. package/src/utils/keyboard.ts +25 -0
  737. package/src/utils/mergeProps.ts +8 -1
  738. package/src/utils/scrollIntoView.ts +181 -0
  739. package/dist/datepicker/createTimeSegment.d.ts +0 -29
  740. package/dist/datepicker/createTimeSegment.d.ts.map +0 -1
  741. package/dist/index.js.map +0 -1
  742. package/dist/index.jsx.map +0 -1
  743. package/src/datepicker/createTimeSegment.ts +0 -352
@@ -42,6 +42,17 @@ export interface AriaListBoxProps {
42
42
  shouldSelectOnPressUp?: boolean;
43
43
  /** Whether to focus items on hover. */
44
44
  shouldFocusOnHover?: boolean;
45
+ /** Whether the listbox uses virtual scrolling. */
46
+ isVirtualized?: boolean;
47
+ /** Whether options should use virtual focus instead of receiving DOM focus. */
48
+ shouldUseVirtualFocus?: boolean;
49
+ /** The behavior of links in the collection. */
50
+ linkBehavior?: "action" | "selection" | "override" | "none";
51
+ /**
52
+ * Unstable upstream override that forces items with actions to prefer
53
+ * selection or action behavior.
54
+ */
55
+ UNSTABLE_itemBehavior?: "selection" | "action";
45
56
  /**
46
57
  * Whether keyboard focus movement should also update selection in single selection mode.
47
58
  * @default true
@@ -49,6 +60,28 @@ export interface AriaListBoxProps {
49
60
  shouldSelectOnFocus?: boolean;
50
61
  /** Whether type-to-select is disabled. @default false */
51
62
  disallowTypeAhead?: boolean;
63
+ /**
64
+ * The primary orientation of the items. In a horizontal listbox the Left/Right
65
+ * arrows navigate the list (the block-axis Up/Down arrows still work); in a
66
+ * vertical listbox Left/Right are no-ops, matching upstream's
67
+ * `ListKeyboardDelegate` for a `stack` layout.
68
+ * @default "vertical"
69
+ */
70
+ orientation?: "vertical" | "horizontal";
71
+ /**
72
+ * The text direction, used to resolve the horizontal navigation axis. In a
73
+ * horizontal listbox, RTL flips Left/Right (Right=previous, Left=next).
74
+ * @default "ltr"
75
+ */
76
+ direction?: "ltr" | "rtl";
77
+ /**
78
+ * Whether pressing the Escape key should clear selection in the listbox or not.
79
+ * Most experiences should not modify this option as it eliminates a keyboard
80
+ * user's ability to easily clear selection. Only use if the escape key is being
81
+ * handled externally or should not trigger selection clearing contextually.
82
+ * @default "clearSelection"
83
+ */
84
+ escapeKeyBehavior?: "clearSelection" | "none";
52
85
  }
53
86
 
54
87
  export interface ListBoxAria {
@@ -66,13 +99,28 @@ interface ListBoxData {
66
99
  onAction?: (key: Key) => void;
67
100
  shouldSelectOnPressUp?: boolean;
68
101
  shouldFocusOnHover?: boolean;
102
+ isVirtualized?: boolean;
103
+ shouldUseVirtualFocus?: boolean;
69
104
  isDisabled?: boolean;
105
+ linkBehavior?: "action" | "selection" | "override" | "none";
106
+ UNSTABLE_itemBehavior?: "selection" | "action";
70
107
  }
71
108
 
72
109
  export function getListBoxData(state: ListState): ListBoxData | undefined {
73
110
  return listBoxData.get(state);
74
111
  }
75
112
 
113
+ /**
114
+ * Whether a key should be skipped during keyboard navigation. Disabled keys only
115
+ * block navigation under `disabledBehavior: "all"` (the default); under
116
+ * `"selection"` they stay focusable (selection is still blocked elsewhere).
117
+ * Mirrors `ListKeyboardDelegate.isDisabled` in React Aria, which gates the skip
118
+ * on the resolved `disabledBehavior` from the selection manager.
119
+ */
120
+ function isNavigationDisabled<T>(state: ListState<T>, key: Key): boolean {
121
+ return state.isDisabled(key) && state.disabledBehavior() === "all";
122
+ }
123
+
76
124
  function findNextEnabledKey<T>(
77
125
  state: ListState<T>,
78
126
  currentKey: Key | null,
@@ -88,13 +136,13 @@ function findNextEnabledKey<T>(
88
136
  direction === "next" ? () => collection.getFirstKey() : () => collection.getLastKey();
89
137
 
90
138
  let key = currentKey != null ? getAdjacentKey(currentKey) : getBoundaryKey();
91
- while (key != null && state.isDisabled(key)) {
139
+ while (key != null && isNavigationDisabled(state, key)) {
92
140
  key = getAdjacentKey(key);
93
141
  }
94
142
 
95
143
  if (key == null && wrap) {
96
144
  key = getBoundaryKey();
97
- while (key != null && state.isDisabled(key)) {
145
+ while (key != null && isNavigationDisabled(state, key)) {
98
146
  key = getAdjacentKey(key);
99
147
  }
100
148
  }
@@ -130,12 +178,22 @@ export function createListBox<T>(
130
178
 
131
179
  const updateSharedData = () => {
132
180
  const p = getProps();
181
+ const selectionBehavior = state.selectionBehavior();
182
+ let linkBehavior = p.linkBehavior ?? (selectionBehavior === "replace" ? "action" : "override");
183
+ if (selectionBehavior === "toggle" && linkBehavior === "action") {
184
+ linkBehavior = "override";
185
+ }
186
+
133
187
  listBoxData.set(state, {
134
188
  id,
135
189
  onAction: p.onAction,
136
190
  shouldSelectOnPressUp: p.shouldSelectOnPressUp,
137
191
  shouldFocusOnHover: p.shouldFocusOnHover,
192
+ isVirtualized: p.isVirtualized,
193
+ shouldUseVirtualFocus: p.shouldUseVirtualFocus,
138
194
  isDisabled: p.isDisabled,
195
+ linkBehavior,
196
+ UNSTABLE_itemBehavior: p.UNSTABLE_itemBehavior,
139
197
  });
140
198
  };
141
199
 
@@ -157,7 +215,10 @@ export function createListBox<T>(
157
215
  onBlurWithin: (e) => getProps().onBlur?.(e),
158
216
  onFocusWithinChange: (isFocused) => {
159
217
  getProps().onFocusChange?.(isFocused);
160
- state.setFocused(isFocused);
218
+ // Collection focus lives on the selection manager (upstream tracks it in
219
+ // useSelectableCollection); the ListState-level setFocused may be a
220
+ // widget-level focus state (e.g. Select's trigger focus).
221
+ state.selectionManager.setFocused(isFocused);
161
222
  },
162
223
  });
163
224
 
@@ -189,6 +250,57 @@ export function createListBox<T>(
189
250
  },
190
251
  });
191
252
 
253
+ // Focus marshalling — the container is a trampoline. When a standalone
254
+ // listbox receives DOM focus with nothing focused yet (e.g. Tab lands on the
255
+ // container, whose roving tabIndex is 0 only while `focusedKey == null`), move
256
+ // the focused key to the first/last option; `createSelectableItem`'s focus
257
+ // effect then pulls REAL DOM focus onto that option and the container rolls to
258
+ // tabIndex -1. This mirrors `useSelectableCollection`'s `onFocus`
259
+ // (useSelectableCollection.ts:409-454) and is why upstream never needs
260
+ // `aria-activedescendant` on a standalone listbox — real focus IS the AT
261
+ // channel. Skipped under `shouldUseVirtualFocus` (ComboBox/Autocomplete keep
262
+ // DOM focus on the input and drive an activedescendant via the virtual-focus
263
+ // channel instead).
264
+ //
265
+ // NOTE on the guard: unlike upstream (whose selectable `onFocus` sets
266
+ // `manager.setFocused(true)` itself and guards on `manager.isFocused`), our
267
+ // `createFocusWithin` already flips `setFocused(true)` via `onFocusWithinChange`
268
+ // — and mergeProps chains it BEFORE this handler — so `manager.isFocused` is
269
+ // already true here. Guard on `focusedKey() == null` instead (only marshal when
270
+ // no option is focused yet). `onFocus` is non-bubbling in Solid, so this fires
271
+ // only when the container element itself receives focus, not on child focus.
272
+ const onListBoxFocus: JSX.EventHandler<HTMLElement, FocusEvent> = (e) => {
273
+ const p = getProps();
274
+ if (p.isDisabled || p.shouldUseVirtualFocus) return;
275
+ // Ignore focus events that bubbled through a portal.
276
+ if (!e.currentTarget.contains(e.target as Node)) return;
277
+ if (state.focusedKey() != null) return;
278
+
279
+ const manager = state.selectionManager;
280
+ const selectOnFocus = state.selectionBehavior() === "replace";
281
+ const navigateToKey = (key: Key | null | undefined) => {
282
+ if (key == null) return;
283
+ state.setFocusedKey(key);
284
+ if (selectOnFocus && !manager.isSelected(key)) {
285
+ state.replaceSelection(key);
286
+ }
287
+ };
288
+
289
+ const collection = state.collection();
290
+ const relatedTarget = e.relatedTarget as Element | null;
291
+ // Detect tab direction: if focus came from an element that FOLLOWS the
292
+ // listbox in the document, the user is shift-tabbing backward into it, so
293
+ // enter at the last item; otherwise enter at the first.
294
+ if (
295
+ relatedTarget &&
296
+ e.currentTarget.compareDocumentPosition(relatedTarget) & Node.DOCUMENT_POSITION_FOLLOWING
297
+ ) {
298
+ navigateToKey(manager.lastSelectedKey ?? collection.getLastKey());
299
+ } else {
300
+ navigateToKey(manager.firstSelectedKey ?? collection.getFirstKey());
301
+ }
302
+ };
303
+
192
304
  // Keyboard navigation
193
305
  const onKeyDown: JSX.EventHandler<HTMLElement, KeyboardEvent> = (e) => {
194
306
  const p = getProps();
@@ -200,9 +312,13 @@ export function createListBox<T>(
200
312
 
201
313
  switch (e.key) {
202
314
  case "ArrowDown": {
203
- e.preventDefault();
315
+ // Only consume the key once a target exists. Mirrors
316
+ // useSelectableCollection (ArrowDown, 211-225): preventDefault is called
317
+ // inside `if (nextKey != null)`, so at the last item without wrap the
318
+ // arrow is left alone to bubble (e.g. to scroll an enclosing region).
204
319
  const nextKey = findNextEnabledKey(state, state.focusedKey(), "next", shouldWrap);
205
320
  if (nextKey != null) {
321
+ e.preventDefault();
206
322
  state.setFocusedKey(nextKey);
207
323
  if (shouldSelectOnFocus && !e.shiftKey && state.selectionMode() === "single") {
208
324
  state.replaceSelection(nextKey);
@@ -213,9 +329,9 @@ export function createListBox<T>(
213
329
  break;
214
330
  }
215
331
  case "ArrowUp": {
216
- e.preventDefault();
217
332
  const prevKey = findNextEnabledKey(state, state.focusedKey(), "prev", shouldWrap);
218
333
  if (prevKey != null) {
334
+ e.preventDefault();
219
335
  state.setFocusedKey(prevKey);
220
336
  if (shouldSelectOnFocus && !e.shiftKey && state.selectionMode() === "single") {
221
337
  state.replaceSelection(prevKey);
@@ -225,7 +341,41 @@ export function createListBox<T>(
225
341
  }
226
342
  break;
227
343
  }
344
+ case "ArrowRight":
345
+ case "ArrowLeft": {
346
+ // Horizontal orientation promotes the inline axis to the primary
347
+ // navigation axis. Upstream's ListKeyboardDelegate strips
348
+ // getKeyLeftOf/getKeyRightOf for a vertical stack, so Left/Right stay
349
+ // no-ops there; in a horizontal stack they move prev/next, flipped
350
+ // under RTL (Right=next, Left=prev in LTR).
351
+ if (p.orientation !== "horizontal") break;
352
+ const isRtl = p.direction === "rtl";
353
+ const forward = e.key === "ArrowRight" ? !isRtl : isRtl;
354
+ const focusedKey = state.focusedKey();
355
+ // With nothing focused, both directions enter at the first item,
356
+ // mirroring upstream's getFirstKey() fallback for Left and Right.
357
+ const nextKey =
358
+ focusedKey != null
359
+ ? findNextEnabledKey(state, focusedKey, forward ? "next" : "prev", shouldWrap)
360
+ : findNextEnabledKey(state, null, "next", false);
361
+ // As with the block axis, only swallow the key when it moves focus
362
+ // (useSelectableCollection ArrowLeft/Right, 243-280).
363
+ if (nextKey != null) {
364
+ e.preventDefault();
365
+ state.setFocusedKey(nextKey);
366
+ if (shouldSelectOnFocus && !e.shiftKey && state.selectionMode() === "single") {
367
+ state.replaceSelection(nextKey);
368
+ } else if (e.shiftKey && state.selectionMode() === "multiple") {
369
+ state.extendSelection(nextKey, collection);
370
+ }
371
+ }
372
+ break;
373
+ }
228
374
  case "Home": {
375
+ // Mirror useSelectableCollection (Home, 283-285): with nothing focused,
376
+ // Shift+Home has no anchor to extend a selection from, so leave the
377
+ // event alone (no focus move, no preventDefault).
378
+ if (state.focusedKey() == null && e.shiftKey) break;
229
379
  e.preventDefault();
230
380
  const firstKey = findNextEnabledKey(state, null, "next", false);
231
381
  if (firstKey != null) {
@@ -240,6 +390,8 @@ export function createListBox<T>(
240
390
  break;
241
391
  }
242
392
  case "End": {
393
+ // Mirror useSelectableCollection (End, 300-302): same anchor guard as Home.
394
+ if (state.focusedKey() == null && e.shiftKey) break;
243
395
  e.preventDefault();
244
396
  const lastKey = findNextEnabledKey(state, null, "prev", false);
245
397
  if (lastKey != null) {
@@ -255,9 +407,18 @@ export function createListBox<T>(
255
407
  }
256
408
  case " ":
257
409
  case "Enter": {
410
+ if (e.target !== e.currentTarget) {
411
+ break;
412
+ }
413
+
258
414
  e.preventDefault();
259
415
  const focusedKey = state.focusedKey();
260
- if (focusedKey != null && !state.isDisabled(focusedKey)) {
416
+ // Activation is gated on the navigation-disabled check, not the raw
417
+ // one: under disabledBehavior "selection" a focusable disabled option
418
+ // still fires onAction, mirroring useSelectableItem's allowsActions
419
+ // (manager.isDisabled is gated on "all"). Selection stays blocked —
420
+ // toggleSelection self-guards on the raw disabled check.
421
+ if (focusedKey != null && !isNavigationDisabled(state, focusedKey)) {
261
422
  if (state.selectionMode() !== "none") {
262
423
  state.toggleSelection(focusedKey);
263
424
  }
@@ -273,8 +434,19 @@ export function createListBox<T>(
273
434
  break;
274
435
  }
275
436
  case "Escape": {
276
- e.preventDefault();
277
- if (!state.disallowEmptySelection()) {
437
+ // Mirror useSelectableCollection (Escape, 352-362): only clear the
438
+ // selection — and swallow the event — when escapeKeyBehavior is
439
+ // 'clearSelection', there is actually a selection to clear, and empty
440
+ // selection is allowed. With escapeKeyBehavior 'none', or otherwise,
441
+ // leave Escape alone so an enclosing overlay (popover, dialog, combobox)
442
+ // can handle it.
443
+ if (
444
+ (p.escapeKeyBehavior ?? "clearSelection") === "clearSelection" &&
445
+ !state.disallowEmptySelection() &&
446
+ !state.isEmpty()
447
+ ) {
448
+ e.stopPropagation();
449
+ e.preventDefault();
278
450
  state.clearSelection();
279
451
  }
280
452
  break;
@@ -289,6 +461,26 @@ export function createListBox<T>(
289
461
  get listBoxProps() {
290
462
  const p = getProps();
291
463
  const selectionMode = state.selectionMode();
464
+ const virtualFocus = p.shouldUseVirtualFocus ?? false;
465
+ const focusedKey = state.focusedKey();
466
+
467
+ // Roving container tabIndex mirrors `useSelectableCollection`
468
+ // (useSelectableCollection.ts:581-582): with real option focus, the
469
+ // container is tabbable (0) only while nothing is focused, then rolls to
470
+ // -1 once focus lands on an option so Tab exits the widget. Under virtual
471
+ // focus (ComboBox/Autocomplete) the container is NOT a tab stop at all —
472
+ // upstream leaves `tabIndex` undefined, so the popover listbox never
473
+ // appears in the roving trail. `aria-activedescendant` is the
474
+ // virtual-focus AT channel and is emitted ONLY on that path — a standalone
475
+ // listbox announces the active option through real DOM focus, so upstream
476
+ // never sets it there.
477
+ const tabIndex = p.isDisabled
478
+ ? undefined
479
+ : virtualFocus
480
+ ? undefined
481
+ : focusedKey != null
482
+ ? -1
483
+ : 0;
292
484
 
293
485
  const baseProps = mergeProps(
294
486
  domProps(),
@@ -296,12 +488,13 @@ export function createListBox<T>(
296
488
  fieldProps as Record<string, unknown>,
297
489
  {
298
490
  role: "listbox",
299
- tabIndex: p.isDisabled ? undefined : 0,
491
+ tabIndex,
300
492
  "aria-disabled": p.isDisabled || undefined,
301
493
  "aria-multiselectable": selectionMode === "multiple" ? true : undefined,
302
494
  "aria-activedescendant":
303
- state.focusedKey() != null ? String(state.focusedKey()) : undefined,
495
+ virtualFocus && focusedKey != null ? String(focusedKey) : undefined,
304
496
  onKeyDown,
497
+ onFocus: onListBoxFocus,
305
498
  },
306
499
  );
307
500
 
@@ -4,13 +4,13 @@
4
4
  */
5
5
 
6
6
  import { type JSX, type Accessor } from "solid-js";
7
- import { createPress } from "../interactions/createPress";
8
7
  import { createHover, type HoverEvents } from "../interactions/createHover";
9
8
  import { createFocusRing } from "../interactions/createFocusRing";
10
9
  import { mergeProps } from "../utils/mergeProps";
11
10
  import { access, type MaybeAccessor } from "../utils/reactivity";
12
11
  import { getListBoxData } from "./createListBox";
13
- import type { ListState, Key } from "@proyecto-viviana/solid-stately";
12
+ import { getItemCount, type ListState, type Key } from "@proyecto-viviana/solid-stately";
13
+ import { createSelectableItem, type SelectableItemState } from "../selection/createSelectableItem";
14
14
 
15
15
  export interface AriaOptionProps {
16
16
  /** The unique key for the option. */
@@ -27,6 +27,8 @@ export interface AriaOptionProps {
27
27
  shouldFocusOnHover?: boolean;
28
28
  /** Whether the option should use virtual focus instead of receiving DOM focus. */
29
29
  shouldUseVirtualFocus?: boolean;
30
+ /** Whether the option is contained in a virtual scrolling listbox. */
31
+ isVirtualized?: boolean;
30
32
  /** Whether press-up may occur without the press starting on this option. */
31
33
  allowsDifferentPressOrigin?: boolean;
32
34
  /** Handler called when hover starts. */
@@ -58,6 +60,10 @@ export interface OptionAria {
58
60
  isHovered: Accessor<boolean>;
59
61
  /** Whether the option is disabled. */
60
62
  isDisabled: Accessor<boolean>;
63
+ /** Whether the option may be selected. */
64
+ allowsSelection: Accessor<boolean>;
65
+ /** Whether the option has an action. */
66
+ hasAction: Accessor<boolean>;
61
67
  }
62
68
 
63
69
  /**
@@ -72,81 +78,70 @@ export function createOption<T>(
72
78
 
73
79
  const getData = () => getListBoxData(state);
74
80
 
75
- const isDisabled: Accessor<boolean> = () => {
76
- return Boolean(
77
- getData()?.isDisabled || getProps().isDisabled || state.isDisabled(getProps().key),
78
- );
81
+ const shouldSelectOnPressUp = () => {
82
+ return getProps().shouldSelectOnPressUp ?? getData()?.shouldSelectOnPressUp;
79
83
  };
80
84
 
81
- const isSelected: Accessor<boolean> = () => {
82
- return state.isSelected(getProps().key);
85
+ const shouldFocusOnHover = () => {
86
+ return getProps().shouldFocusOnHover ?? getData()?.shouldFocusOnHover ?? false;
83
87
  };
84
88
 
85
- const isFocused: Accessor<boolean> = () => {
86
- return state.focusedKey() === getProps().key;
89
+ const shouldUseVirtualFocus = () => {
90
+ return getProps().shouldUseVirtualFocus ?? getData()?.shouldUseVirtualFocus ?? false;
87
91
  };
88
92
 
89
- const shouldSelectOnPressUp = () => {
90
- return getProps().shouldSelectOnPressUp ?? getData()?.shouldSelectOnPressUp ?? true;
91
- };
92
-
93
- const shouldUseVirtualFocus = () => {
94
- return getProps().shouldUseVirtualFocus ?? false;
93
+ const isVirtualized = () => {
94
+ return getProps().isVirtualized ?? getData()?.isVirtualized ?? false;
95
95
  };
96
96
 
97
97
  const allowsDifferentPressOrigin = () => {
98
- return getProps().allowsDifferentPressOrigin ?? false;
98
+ return (
99
+ getProps().allowsDifferentPressOrigin ??
100
+ Boolean(shouldSelectOnPressUp() && shouldFocusOnHover())
101
+ );
99
102
  };
100
103
 
101
- const selectAndAction = () => {
102
- const key = getProps().key;
103
- if (state.selectionMode() !== "none") {
104
- state.select(key);
105
- }
106
- getProps().onAction?.();
107
- getData()?.onAction?.(key);
104
+ const isDisabledProp = () => {
105
+ return Boolean(getData()?.isDisabled || getProps().isDisabled);
108
106
  };
109
107
 
110
- const { pressProps, isPressed } = createPress({
111
- get isDisabled() {
112
- return isDisabled();
113
- },
114
- get preventFocusOnPress() {
115
- return shouldUseVirtualFocus();
116
- },
117
- onPressStart(e) {
118
- if (!shouldSelectOnPressUp() && e.pointerType !== "keyboard" && e.pointerType !== "virtual") {
119
- selectAndAction();
120
- }
121
- },
122
- onPressUp(e) {
123
- if (shouldSelectOnPressUp() && allowsDifferentPressOrigin() && e.pointerType === "mouse") {
124
- selectAndAction();
125
- }
126
- },
127
- onPress(e) {
128
- if (
129
- (shouldSelectOnPressUp() && !allowsDifferentPressOrigin()) ||
130
- (shouldSelectOnPressUp() &&
131
- allowsDifferentPressOrigin() &&
132
- e.pointerType !== "keyboard" &&
133
- e.pointerType !== "mouse") ||
134
- e.pointerType === "keyboard" ||
135
- e.pointerType === "virtual"
136
- ) {
137
- selectAndAction();
138
- }
108
+ const optionId = () => getProps().optionId ?? String(getProps().key);
109
+
110
+ const selectableItem = createSelectableItem<T>(
111
+ () => {
112
+ const key = getProps().key;
113
+ const hasAction = getProps().onAction != null || getData()?.onAction != null;
114
+
115
+ return {
116
+ key,
117
+ id: optionId(),
118
+ isDisabled: isDisabledProp(),
119
+ shouldSelectOnPressUp: shouldSelectOnPressUp(),
120
+ allowsDifferentPressOrigin: allowsDifferentPressOrigin(),
121
+ isVirtualized: isVirtualized(),
122
+ shouldUseVirtualFocus: shouldUseVirtualFocus(),
123
+ onAction: hasAction
124
+ ? () => {
125
+ getProps().onAction?.();
126
+ getData()?.onAction?.(key);
127
+ }
128
+ : undefined,
129
+ linkBehavior: getData()?.linkBehavior,
130
+ UNSTABLE_itemBehavior: getData()?.UNSTABLE_itemBehavior,
131
+ };
139
132
  },
140
- });
133
+ state as SelectableItemState<T>,
134
+ () => _ref?.() ?? null,
135
+ );
141
136
 
142
137
  const { hoverProps, isHovered } = createHover({
143
138
  get isDisabled() {
144
- return isDisabled();
139
+ return selectableItem.isDisabled();
145
140
  },
146
141
  onHoverStart(e) {
147
- const shouldFocus = getProps().shouldFocusOnHover ?? getData()?.shouldFocusOnHover;
148
- if (shouldFocus) {
149
- state.setFocusedKey(getProps().key);
142
+ if (shouldFocusOnHover() && !isFocusVisible()) {
143
+ state.selectionManager.setFocused(true);
144
+ state.selectionManager.setFocusedKey(getProps().key);
150
145
  }
151
146
  getProps().onHoverStart?.(e);
152
147
  },
@@ -169,25 +164,38 @@ export function createOption<T>(
169
164
  const selectionMode = state.selectionMode();
170
165
  const ariaLabel = getProps()["aria-label"];
171
166
 
167
+ // When the listbox is virtualized the DOM only holds the windowed rows, so
168
+ // (mirroring @react-aria/listbox useOption) publish the item's absolute
169
+ // position in the full collection for assistive tech. Only under
170
+ // virtualization — an un-windowed listbox exposes every row and the browser
171
+ // derives posinset/setsize itself.
172
+ let ariaPosInSet: number | undefined;
173
+ let ariaSetSize: number | undefined;
174
+ if (isVirtualized()) {
175
+ const index = Number(state.collection().getItem(key)?.index);
176
+ ariaPosInSet = Number.isNaN(index) ? undefined : index + 1;
177
+ ariaSetSize = getItemCount(state.collection());
178
+ }
179
+
172
180
  return mergeProps(
173
- pressProps as Record<string, unknown>,
181
+ selectableItem.itemProps as Record<string, unknown>,
174
182
  hoverProps as Record<string, unknown>,
175
183
  focusProps as Record<string, unknown>,
176
184
  {
177
185
  role: "option",
178
- id: getProps().optionId ?? String(key),
179
- "data-key": String(key),
180
- "aria-selected": selectionMode !== "none" ? isSelected() : undefined,
181
- "aria-disabled": isDisabled() || undefined,
186
+ id: optionId(),
187
+ "aria-selected": selectionMode !== "none" ? selectableItem.isSelected() : undefined,
188
+ "aria-disabled": selectableItem.isDisabled() || undefined,
182
189
  "aria-label": ariaLabel,
183
190
  "aria-labelledby": !ariaLabel ? labelId : undefined,
184
191
  "aria-describedby": descriptionId,
185
- tabIndex: shouldUseVirtualFocus() ? undefined : isFocused() ? 0 : -1,
186
- "data-selected": isSelected() || undefined,
187
- "data-focused": isFocused() || undefined,
188
- "data-focus-visible": isFocusVisible() || undefined,
189
- "data-pressed": isPressed() || undefined,
190
- "data-disabled": isDisabled() || undefined,
192
+ "aria-posinset": ariaPosInSet,
193
+ "aria-setsize": ariaSetSize,
194
+ "data-selected": selectableItem.isSelected() || undefined,
195
+ "data-focused": selectableItem.isFocused() || undefined,
196
+ "data-focus-visible": (selectableItem.isFocused() && isFocusVisible()) || undefined,
197
+ "data-pressed": selectableItem.isPressed() || undefined,
198
+ "data-disabled": selectableItem.isDisabled() || undefined,
191
199
  "data-hovered": isHovered() || undefined,
192
200
  } as Record<string, unknown>,
193
201
  ) as JSX.HTMLAttributes<HTMLElement>;
@@ -198,11 +206,13 @@ export function createOption<T>(
198
206
  descriptionProps: {
199
207
  id: descriptionId,
200
208
  },
201
- isSelected,
202
- isFocused,
203
- isFocusVisible: () => isFocused() && isFocusVisible(),
204
- isPressed,
209
+ isSelected: selectableItem.isSelected,
210
+ isFocused: selectableItem.isFocused,
211
+ isFocusVisible: () => selectableItem.isFocused() && isFocusVisible(),
212
+ isPressed: selectableItem.isPressed,
205
213
  isHovered,
206
- isDisabled,
214
+ isDisabled: selectableItem.isDisabled,
215
+ allowsSelection: selectableItem.allowsSelection,
216
+ hasAction: selectableItem.hasAction,
207
217
  };
208
218
  }