@proyecto-viviana/solidaria 0.2.8 → 0.3.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 (548) hide show
  1. package/README.md +31 -236
  2. package/dist/actiongroup/createActionGroup.d.ts +5 -5
  3. package/dist/actiongroup/createActionGroup.d.ts.map +1 -1
  4. package/dist/actiongroup/index.d.ts +1 -1
  5. package/dist/autocomplete/createAutocomplete.d.ts +10 -10
  6. package/dist/autocomplete/createAutocomplete.d.ts.map +1 -1
  7. package/dist/autocomplete/index.d.ts +1 -1
  8. package/dist/autocomplete/index.d.ts.map +1 -1
  9. package/dist/breadcrumbs/createBreadcrumbs.d.ts +9 -7
  10. package/dist/breadcrumbs/createBreadcrumbs.d.ts.map +1 -1
  11. package/dist/breadcrumbs/index.d.ts +1 -1
  12. package/dist/button/createButton.d.ts +1 -1
  13. package/dist/button/createButton.d.ts.map +1 -1
  14. package/dist/button/createToggleButton.d.ts +3 -3
  15. package/dist/button/createToggleButtonGroup.d.ts +7 -7
  16. package/dist/button/createToggleButtonGroup.d.ts.map +1 -1
  17. package/dist/button/index.d.ts +6 -6
  18. package/dist/button/index.d.ts.map +1 -1
  19. package/dist/button/types.d.ts +18 -12
  20. package/dist/button/types.d.ts.map +1 -1
  21. package/dist/calendar/createCalendar.d.ts +15 -5
  22. package/dist/calendar/createCalendar.d.ts.map +1 -1
  23. package/dist/calendar/createCalendarCell.d.ts +6 -2
  24. package/dist/calendar/createCalendarCell.d.ts.map +1 -1
  25. package/dist/calendar/createCalendarGrid.d.ts +4 -4
  26. package/dist/calendar/createCalendarGrid.d.ts.map +1 -1
  27. package/dist/calendar/createRangeCalendar.d.ts +15 -5
  28. package/dist/calendar/createRangeCalendar.d.ts.map +1 -1
  29. package/dist/calendar/createRangeCalendarCell.d.ts +4 -2
  30. package/dist/calendar/createRangeCalendarCell.d.ts.map +1 -1
  31. package/dist/calendar/index.d.ts +5 -5
  32. package/dist/calendar/index.d.ts.map +1 -1
  33. package/dist/calendar/intl/index.d.ts +12 -0
  34. package/dist/calendar/intl/index.d.ts.map +1 -0
  35. package/dist/calendar/utils.d.ts +12 -0
  36. package/dist/calendar/utils.d.ts.map +1 -0
  37. package/dist/checkbox/createCheckbox.d.ts +6 -6
  38. package/dist/checkbox/createCheckbox.d.ts.map +1 -1
  39. package/dist/checkbox/createCheckboxGroup.d.ts +7 -7
  40. package/dist/checkbox/createCheckboxGroup.d.ts.map +1 -1
  41. package/dist/checkbox/createCheckboxGroupItem.d.ts +4 -4
  42. package/dist/checkbox/createCheckboxGroupItem.d.ts.map +1 -1
  43. package/dist/checkbox/createCheckboxGroupState.d.ts +2 -2
  44. package/dist/checkbox/createCheckboxGroupState.d.ts.map +1 -1
  45. package/dist/checkbox/index.d.ts +8 -8
  46. package/dist/checkbox/index.d.ts.map +1 -1
  47. package/dist/collections/index.d.ts +3 -3
  48. package/dist/collections/index.d.ts.map +1 -1
  49. package/dist/color/createColorArea.d.ts +3 -3
  50. package/dist/color/createColorArea.d.ts.map +1 -1
  51. package/dist/color/createColorField.d.ts +4 -4
  52. package/dist/color/createColorField.d.ts.map +1 -1
  53. package/dist/color/createColorSlider.d.ts +4 -4
  54. package/dist/color/createColorSlider.d.ts.map +1 -1
  55. package/dist/color/createColorSwatch.d.ts +2 -2
  56. package/dist/color/createColorSwatch.d.ts.map +1 -1
  57. package/dist/color/createColorWheel.d.ts +3 -3
  58. package/dist/color/createColorWheel.d.ts.map +1 -1
  59. package/dist/color/index.d.ts +6 -6
  60. package/dist/color/types.d.ts +98 -16
  61. package/dist/color/types.d.ts.map +1 -1
  62. package/dist/combobox/createComboBox.d.ts +10 -7
  63. package/dist/combobox/createComboBox.d.ts.map +1 -1
  64. package/dist/combobox/index.d.ts +1 -1
  65. package/dist/combobox/intl/index.d.ts +1 -1
  66. package/dist/datepicker/createDateField.d.ts +18 -6
  67. package/dist/datepicker/createDateField.d.ts.map +1 -1
  68. package/dist/datepicker/createDatePicker.d.ts +51 -5
  69. package/dist/datepicker/createDatePicker.d.ts.map +1 -1
  70. package/dist/datepicker/createDatePickerGroup.d.ts +19 -0
  71. package/dist/datepicker/createDatePickerGroup.d.ts.map +1 -0
  72. package/dist/datepicker/createDateRangePicker.d.ts +8 -6
  73. package/dist/datepicker/createDateRangePicker.d.ts.map +1 -1
  74. package/dist/datepicker/createDateSegment.d.ts +10 -2
  75. package/dist/datepicker/createDateSegment.d.ts.map +1 -1
  76. package/dist/datepicker/createTimeField.d.ts +11 -5
  77. package/dist/datepicker/createTimeField.d.ts.map +1 -1
  78. package/dist/datepicker/createTimeSegment.d.ts +2 -2
  79. package/dist/datepicker/createTimeSegment.d.ts.map +1 -1
  80. package/dist/datepicker/index.d.ts +7 -6
  81. package/dist/datepicker/index.d.ts.map +1 -1
  82. package/dist/dialog/createDialog.d.ts +5 -5
  83. package/dist/dialog/createDialog.d.ts.map +1 -1
  84. package/dist/dialog/index.d.ts +2 -2
  85. package/dist/dialog/index.d.ts.map +1 -1
  86. package/dist/dialog/types.d.ts +4 -4
  87. package/dist/disclosure/createDisclosure.d.ts +5 -2
  88. package/dist/disclosure/createDisclosure.d.ts.map +1 -1
  89. package/dist/disclosure/createDisclosureGroup.d.ts +4 -4
  90. package/dist/disclosure/createDisclosureGroup.d.ts.map +1 -1
  91. package/dist/disclosure/index.d.ts +2 -2
  92. package/dist/dnd/createDrag.d.ts +2 -2
  93. package/dist/dnd/createDrag.d.ts.map +1 -1
  94. package/dist/dnd/createDraggableCollection.d.ts +2 -2
  95. package/dist/dnd/createDraggableItem.d.ts +3 -3
  96. package/dist/dnd/createDraggableItem.d.ts.map +1 -1
  97. package/dist/dnd/createDrop.d.ts +2 -2
  98. package/dist/dnd/createDrop.d.ts.map +1 -1
  99. package/dist/dnd/createDroppableCollection.d.ts +26 -6
  100. package/dist/dnd/createDroppableCollection.d.ts.map +1 -1
  101. package/dist/dnd/createDroppableItem.d.ts +3 -3
  102. package/dist/dnd/index.d.ts +12 -12
  103. package/dist/dnd/index.d.ts.map +1 -1
  104. package/dist/dnd/types.d.ts +2 -2
  105. package/dist/dnd/types.d.ts.map +1 -1
  106. package/dist/dnd/utils.d.ts +1 -1
  107. package/dist/dnd/utils.d.ts.map +1 -1
  108. package/dist/focus/FocusScope.d.ts +1 -1
  109. package/dist/focus/FocusScope.d.ts.map +1 -1
  110. package/dist/focus/createAutoFocus.d.ts.map +1 -1
  111. package/dist/focus/createFocusRestore.d.ts.map +1 -1
  112. package/dist/focus/createVirtualFocus.d.ts +4 -4
  113. package/dist/focus/createVirtualFocus.d.ts.map +1 -1
  114. package/dist/focus/index.d.ts +4 -4
  115. package/dist/focus/index.d.ts.map +1 -1
  116. package/dist/form/createFormReset.d.ts +1 -1
  117. package/dist/form/createFormValidation.d.ts +3 -3
  118. package/dist/form/createFormValidation.d.ts.map +1 -1
  119. package/dist/form/index.d.ts +2 -2
  120. package/dist/form/index.d.ts.map +1 -1
  121. package/dist/grid/GridKeyboardDelegate.d.ts +5 -5
  122. package/dist/grid/createGrid.d.ts +3 -3
  123. package/dist/grid/createGridCell.d.ts +3 -3
  124. package/dist/grid/createGridRow.d.ts +3 -3
  125. package/dist/grid/index.d.ts +5 -5
  126. package/dist/grid/types.d.ts +8 -8
  127. package/dist/gridlist/createGridList.d.ts +6 -4
  128. package/dist/gridlist/createGridList.d.ts.map +1 -1
  129. package/dist/gridlist/createGridListItem.d.ts +4 -4
  130. package/dist/gridlist/createGridListItem.d.ts.map +1 -1
  131. package/dist/gridlist/createGridListSelectionCheckbox.d.ts +3 -3
  132. package/dist/gridlist/createGridListSelectionCheckbox.d.ts.map +1 -1
  133. package/dist/gridlist/index.d.ts +4 -4
  134. package/dist/gridlist/types.d.ts +11 -7
  135. package/dist/gridlist/types.d.ts.map +1 -1
  136. package/dist/i18n/createCollator.d.ts.map +1 -1
  137. package/dist/i18n/createDateFormatter.d.ts.map +1 -1
  138. package/dist/i18n/createFilter.d.ts.map +1 -1
  139. package/dist/i18n/createNumberFormatter.d.ts +1 -1
  140. package/dist/i18n/createNumberFormatter.d.ts.map +1 -1
  141. package/dist/i18n/createStringFormatter.d.ts +2 -2
  142. package/dist/i18n/createStringFormatter.d.ts.map +1 -1
  143. package/dist/i18n/index.d.ts +8 -8
  144. package/dist/i18n/index.d.ts.map +1 -1
  145. package/dist/i18n/locale.d.ts +2 -2
  146. package/dist/i18n/locale.d.ts.map +1 -1
  147. package/dist/i18n/utils.d.ts.map +1 -1
  148. package/dist/index.d.ts +52 -51
  149. package/dist/index.d.ts.map +1 -1
  150. package/dist/index.js +18012 -16820
  151. package/dist/index.js.map +1 -1
  152. package/dist/index.jsx +18242 -0
  153. package/dist/index.jsx.map +1 -0
  154. package/dist/interactions/FocusableProvider.d.ts +2 -2
  155. package/dist/interactions/FocusableProvider.d.ts.map +1 -1
  156. package/dist/interactions/PressEvent.d.ts +2 -2
  157. package/dist/interactions/createFocus.d.ts +1 -1
  158. package/dist/interactions/createFocus.d.ts.map +1 -1
  159. package/dist/interactions/createFocusRing.d.ts +1 -1
  160. package/dist/interactions/createFocusRing.d.ts.map +1 -1
  161. package/dist/interactions/createFocusWithin.d.ts +1 -1
  162. package/dist/interactions/createFocusWithin.d.ts.map +1 -1
  163. package/dist/interactions/createFocusable.d.ts +3 -3
  164. package/dist/interactions/createFocusable.d.ts.map +1 -1
  165. package/dist/interactions/createHover.d.ts +5 -5
  166. package/dist/interactions/createHover.d.ts.map +1 -1
  167. package/dist/interactions/createInteractionModality.d.ts +3 -3
  168. package/dist/interactions/createInteractionModality.d.ts.map +1 -1
  169. package/dist/interactions/createKeyboard.d.ts +1 -1
  170. package/dist/interactions/createLongPress.d.ts +5 -5
  171. package/dist/interactions/createMove.d.ts +5 -5
  172. package/dist/interactions/createMove.d.ts.map +1 -1
  173. package/dist/interactions/createPress.d.ts +4 -4
  174. package/dist/interactions/createPress.d.ts.map +1 -1
  175. package/dist/interactions/index.d.ts +12 -12
  176. package/dist/interactions/index.d.ts.map +1 -1
  177. package/dist/label/createField.d.ts +4 -4
  178. package/dist/label/createField.d.ts.map +1 -1
  179. package/dist/label/createLabel.d.ts +7 -7
  180. package/dist/label/createLabel.d.ts.map +1 -1
  181. package/dist/label/createLabels.d.ts +1 -1
  182. package/dist/label/createLabels.d.ts.map +1 -1
  183. package/dist/label/index.d.ts +5 -5
  184. package/dist/landmark/createLandmark.d.ts +5 -5
  185. package/dist/landmark/createLandmark.d.ts.map +1 -1
  186. package/dist/landmark/index.d.ts +1 -1
  187. package/dist/link/createLink.d.ts +14 -8
  188. package/dist/link/createLink.d.ts.map +1 -1
  189. package/dist/link/index.d.ts +1 -1
  190. package/dist/listbox/createListBox.d.ts +11 -6
  191. package/dist/listbox/createListBox.d.ts.map +1 -1
  192. package/dist/listbox/createOption.d.ts +21 -4
  193. package/dist/listbox/createOption.d.ts.map +1 -1
  194. package/dist/listbox/index.d.ts +2 -2
  195. package/dist/listbox/index.d.ts.map +1 -1
  196. package/dist/live-announcer/announce.d.ts +2 -2
  197. package/dist/live-announcer/announce.d.ts.map +1 -1
  198. package/dist/live-announcer/index.d.ts +1 -1
  199. package/dist/menu/createMenu.d.ts +7 -7
  200. package/dist/menu/createMenu.d.ts.map +1 -1
  201. package/dist/menu/createMenuItem.d.ts +16 -4
  202. package/dist/menu/createMenuItem.d.ts.map +1 -1
  203. package/dist/menu/createMenuTrigger.d.ts +4 -4
  204. package/dist/menu/index.d.ts +3 -3
  205. package/dist/menu/index.d.ts.map +1 -1
  206. package/dist/meter/createMeter.d.ts +6 -6
  207. package/dist/meter/createMeter.d.ts.map +1 -1
  208. package/dist/meter/index.d.ts +1 -1
  209. package/dist/numberfield/createNumberField.d.ts +9 -8
  210. package/dist/numberfield/createNumberField.d.ts.map +1 -1
  211. package/dist/numberfield/index.d.ts +1 -1
  212. package/dist/overlays/ariaHideOutside.d.ts.map +1 -1
  213. package/dist/overlays/createModal.d.ts +3 -3
  214. package/dist/overlays/createModal.d.ts.map +1 -1
  215. package/dist/overlays/createOverlay.d.ts +1 -1
  216. package/dist/overlays/createOverlay.d.ts.map +1 -1
  217. package/dist/overlays/createOverlayTrigger.d.ts +6 -6
  218. package/dist/overlays/index.d.ts +6 -6
  219. package/dist/overlays/index.d.ts.map +1 -1
  220. package/dist/popover/calculatePosition.d.ts +4 -4
  221. package/dist/popover/calculatePosition.d.ts.map +1 -1
  222. package/dist/popover/createOverlayPosition.d.ts +3 -3
  223. package/dist/popover/createOverlayPosition.d.ts.map +1 -1
  224. package/dist/popover/createPopover.d.ts +4 -4
  225. package/dist/popover/createPopover.d.ts.map +1 -1
  226. package/dist/popover/index.d.ts +3 -3
  227. package/dist/progress/createProgressBar.d.ts +7 -5
  228. package/dist/progress/createProgressBar.d.ts.map +1 -1
  229. package/dist/progress/index.d.ts +1 -1
  230. package/dist/radio/createRadio.d.ts +7 -7
  231. package/dist/radio/createRadio.d.ts.map +1 -1
  232. package/dist/radio/createRadioGroup.d.ts +10 -10
  233. package/dist/radio/createRadioGroup.d.ts.map +1 -1
  234. package/dist/radio/createRadioGroupState.d.ts +3 -3
  235. package/dist/radio/createRadioGroupState.d.ts.map +1 -1
  236. package/dist/radio/index.d.ts +3 -3
  237. package/dist/radio/index.d.ts.map +1 -1
  238. package/dist/searchfield/createSearchField.d.ts +7 -7
  239. package/dist/searchfield/createSearchField.d.ts.map +1 -1
  240. package/dist/searchfield/index.d.ts +2 -2
  241. package/dist/select/createHiddenSelect.d.ts +4 -4
  242. package/dist/select/createHiddenSelect.d.ts.map +1 -1
  243. package/dist/select/createSelect.d.ts +14 -6
  244. package/dist/select/createSelect.d.ts.map +1 -1
  245. package/dist/select/index.d.ts +2 -2
  246. package/dist/select/index.d.ts.map +1 -1
  247. package/dist/selection/createTypeSelect.d.ts +2 -2
  248. package/dist/selection/index.d.ts +1 -1
  249. package/dist/separator/createSeparator.d.ts +9 -5
  250. package/dist/separator/createSeparator.d.ts.map +1 -1
  251. package/dist/separator/index.d.ts +1 -1
  252. package/dist/slider/createSlider.d.ts +11 -7
  253. package/dist/slider/createSlider.d.ts.map +1 -1
  254. package/dist/slider/index.d.ts +2 -2
  255. package/dist/ssr/index.d.ts +1 -1
  256. package/dist/ssr/index.d.ts.map +1 -1
  257. package/dist/steplist/createStepList.d.ts +36 -0
  258. package/dist/steplist/createStepList.d.ts.map +1 -0
  259. package/dist/steplist/index.d.ts +2 -0
  260. package/dist/steplist/index.d.ts.map +1 -0
  261. package/dist/switch/createSwitch.d.ts +6 -4
  262. package/dist/switch/createSwitch.d.ts.map +1 -1
  263. package/dist/switch/index.d.ts +1 -1
  264. package/dist/table/createTable.d.ts +3 -3
  265. package/dist/table/createTable.d.ts.map +1 -1
  266. package/dist/table/createTableCell.d.ts +3 -3
  267. package/dist/table/createTableCell.d.ts.map +1 -1
  268. package/dist/table/createTableColumnHeader.d.ts +3 -3
  269. package/dist/table/createTableColumnHeader.d.ts.map +1 -1
  270. package/dist/table/createTableColumnResize.d.ts +41 -0
  271. package/dist/table/createTableColumnResize.d.ts.map +1 -0
  272. package/dist/table/createTableHeaderRow.d.ts +3 -3
  273. package/dist/table/createTableRow.d.ts +3 -3
  274. package/dist/table/createTableRow.d.ts.map +1 -1
  275. package/dist/table/createTableRowGroup.d.ts +2 -2
  276. package/dist/table/createTableRowGroup.d.ts.map +1 -1
  277. package/dist/table/createTableSelectAllCheckbox.d.ts +3 -3
  278. package/dist/table/createTableSelectAllCheckbox.d.ts.map +1 -1
  279. package/dist/table/createTableSelectionCheckbox.d.ts +3 -3
  280. package/dist/table/index.d.ts +11 -9
  281. package/dist/table/index.d.ts.map +1 -1
  282. package/dist/table/types.d.ts +15 -7
  283. package/dist/table/types.d.ts.map +1 -1
  284. package/dist/tabs/createTabs.d.ts +28 -25
  285. package/dist/tabs/createTabs.d.ts.map +1 -1
  286. package/dist/tabs/index.d.ts +1 -1
  287. package/dist/tag/createTag.d.ts +2 -2
  288. package/dist/tag/createTag.d.ts.map +1 -1
  289. package/dist/tag/createTagGroup.d.ts +5 -5
  290. package/dist/tag/createTagGroup.d.ts.map +1 -1
  291. package/dist/tag/index.d.ts +2 -2
  292. package/dist/tag/index.d.ts.map +1 -1
  293. package/dist/textfield/createTextField.d.ts +17 -11
  294. package/dist/textfield/createTextField.d.ts.map +1 -1
  295. package/dist/textfield/index.d.ts +1 -1
  296. package/dist/textfield/index.d.ts.map +1 -1
  297. package/dist/toast/createToast.d.ts +2 -2
  298. package/dist/toast/createToast.d.ts.map +1 -1
  299. package/dist/toast/createToastRegion.d.ts +5 -3
  300. package/dist/toast/createToastRegion.d.ts.map +1 -1
  301. package/dist/toast/index.d.ts +2 -2
  302. package/dist/toast/index.d.ts.map +1 -1
  303. package/dist/toggle/createToggle.d.ts +9 -9
  304. package/dist/toggle/createToggle.d.ts.map +1 -1
  305. package/dist/toggle/createToggleState.d.ts +2 -2
  306. package/dist/toggle/createToggleState.d.ts.map +1 -1
  307. package/dist/toggle/index.d.ts +4 -4
  308. package/dist/toggle/index.d.ts.map +1 -1
  309. package/dist/toolbar/createToolbar.d.ts +9 -9
  310. package/dist/toolbar/createToolbar.d.ts.map +1 -1
  311. package/dist/toolbar/index.d.ts +1 -1
  312. package/dist/toolbar/index.d.ts.map +1 -1
  313. package/dist/tooltip/createTooltip.d.ts +5 -5
  314. package/dist/tooltip/createTooltip.d.ts.map +1 -1
  315. package/dist/tooltip/createTooltipTrigger.d.ts +10 -5
  316. package/dist/tooltip/createTooltipTrigger.d.ts.map +1 -1
  317. package/dist/tooltip/index.d.ts +2 -2
  318. package/dist/tree/createTree.d.ts +3 -3
  319. package/dist/tree/createTree.d.ts.map +1 -1
  320. package/dist/tree/createTreeItem.d.ts +4 -4
  321. package/dist/tree/createTreeItem.d.ts.map +1 -1
  322. package/dist/tree/createTreeSelectionCheckbox.d.ts +3 -3
  323. package/dist/tree/createTreeSelectionCheckbox.d.ts.map +1 -1
  324. package/dist/tree/index.d.ts +4 -4
  325. package/dist/tree/types.d.ts +10 -6
  326. package/dist/tree/types.d.ts.map +1 -1
  327. package/dist/utils/createDescription.d.ts +2 -2
  328. package/dist/utils/createDescription.d.ts.map +1 -1
  329. package/dist/utils/dom.d.ts.map +1 -1
  330. package/dist/utils/env.d.ts.map +1 -1
  331. package/dist/utils/focus.d.ts +1 -1
  332. package/dist/utils/focus.d.ts.map +1 -1
  333. package/dist/utils/geometry.d.ts.map +1 -1
  334. package/dist/utils/index.d.ts +12 -12
  335. package/dist/utils/index.d.ts.map +1 -1
  336. package/dist/utils/mergeProps.d.ts.map +1 -1
  337. package/dist/utils/reactivity.d.ts +1 -1
  338. package/dist/visually-hidden/createVisuallyHidden.d.ts +2 -2
  339. package/dist/visually-hidden/createVisuallyHidden.d.ts.map +1 -1
  340. package/dist/visually-hidden/index.d.ts +1 -1
  341. package/package.json +32 -32
  342. package/src/actiongroup/createActionGroup.ts +101 -91
  343. package/src/actiongroup/index.ts +1 -1
  344. package/src/autocomplete/createAutocomplete.ts +117 -134
  345. package/src/autocomplete/index.ts +1 -1
  346. package/src/breadcrumbs/createBreadcrumbs.ts +33 -42
  347. package/src/breadcrumbs/index.ts +1 -1
  348. package/src/button/createButton.ts +102 -73
  349. package/src/button/createToggleButton.ts +10 -10
  350. package/src/button/createToggleButtonGroup.ts +25 -32
  351. package/src/button/index.ts +6 -9
  352. package/src/button/types.ts +18 -12
  353. package/src/calendar/createCalendar.ts +62 -29
  354. package/src/calendar/createCalendarCell.ts +98 -46
  355. package/src/calendar/createCalendarGrid.ts +57 -35
  356. package/src/calendar/createRangeCalendar.ts +66 -31
  357. package/src/calendar/createRangeCalendarCell.ts +92 -31
  358. package/src/calendar/index.ts +5 -9
  359. package/src/calendar/intl/index.ts +210 -0
  360. package/src/calendar/utils.ts +227 -0
  361. package/src/checkbox/createCheckbox.ts +13 -21
  362. package/src/checkbox/createCheckboxGroup.ts +68 -44
  363. package/src/checkbox/createCheckboxGroupItem.ts +16 -27
  364. package/src/checkbox/createCheckboxGroupState.ts +3 -22
  365. package/src/checkbox/index.ts +8 -10
  366. package/src/collections/index.ts +33 -29
  367. package/src/color/createColorArea.ts +232 -154
  368. package/src/color/createColorField.ts +107 -58
  369. package/src/color/createColorSlider.ts +231 -73
  370. package/src/color/createColorSwatch.ts +38 -13
  371. package/src/color/createColorWheel.ts +208 -83
  372. package/src/color/index.ts +6 -6
  373. package/src/color/types.ts +98 -16
  374. package/src/combobox/createComboBox.ts +157 -100
  375. package/src/combobox/index.ts +1 -1
  376. package/src/combobox/intl/index.ts +5 -5
  377. package/src/datepicker/createDateField.ts +192 -39
  378. package/src/datepicker/createDatePicker.ts +260 -67
  379. package/src/datepicker/createDatePickerGroup.ts +149 -0
  380. package/src/datepicker/createDateRangePicker.ts +105 -57
  381. package/src/datepicker/createDateSegment.ts +183 -96
  382. package/src/datepicker/createTimeField.ts +38 -34
  383. package/src/datepicker/createTimeSegment.ts +67 -85
  384. package/src/datepicker/index.ts +13 -14
  385. package/src/dialog/createDialog.ts +45 -38
  386. package/src/dialog/index.ts +2 -2
  387. package/src/dialog/types.ts +4 -4
  388. package/src/disclosure/createDisclosure.ts +138 -33
  389. package/src/disclosure/createDisclosureGroup.ts +8 -21
  390. package/src/disclosure/index.ts +2 -2
  391. package/src/dnd/createDrag.ts +19 -25
  392. package/src/dnd/createDraggableCollection.ts +4 -4
  393. package/src/dnd/createDraggableItem.ts +20 -19
  394. package/src/dnd/createDrop.ts +42 -51
  395. package/src/dnd/createDroppableCollection.ts +290 -173
  396. package/src/dnd/createDroppableItem.ts +34 -34
  397. package/src/dnd/index.ts +23 -12
  398. package/src/dnd/types.ts +4 -7
  399. package/src/dnd/utils.ts +36 -49
  400. package/src/focus/FocusScope.tsx +155 -164
  401. package/src/focus/createAutoFocus.ts +4 -20
  402. package/src/focus/createFocusRestore.ts +15 -28
  403. package/src/focus/createVirtualFocus.ts +20 -36
  404. package/src/focus/index.ts +4 -8
  405. package/src/form/createFormReset.ts +4 -4
  406. package/src/form/createFormValidation.ts +20 -43
  407. package/src/form/index.ts +2 -5
  408. package/src/grid/GridKeyboardDelegate.ts +30 -30
  409. package/src/grid/createGrid.ts +36 -36
  410. package/src/grid/createGridCell.ts +18 -18
  411. package/src/grid/createGridRow.ts +14 -14
  412. package/src/grid/index.ts +5 -5
  413. package/src/grid/types.ts +8 -8
  414. package/src/gridlist/createGridList.ts +34 -29
  415. package/src/gridlist/createGridListItem.ts +68 -23
  416. package/src/gridlist/createGridListSelectionCheckbox.ts +12 -9
  417. package/src/gridlist/index.ts +4 -4
  418. package/src/gridlist/types.ts +11 -7
  419. package/src/i18n/createCollator.ts +5 -18
  420. package/src/i18n/createDateFormatter.ts +5 -13
  421. package/src/i18n/createFilter.ts +11 -24
  422. package/src/i18n/createNumberFormatter.ts +4 -6
  423. package/src/i18n/createStringFormatter.ts +19 -15
  424. package/src/i18n/index.ts +8 -11
  425. package/src/i18n/locale.tsx +15 -40
  426. package/src/i18n/utils.ts +35 -39
  427. package/src/index.ts +68 -169
  428. package/src/interactions/FocusableProvider.tsx +3 -7
  429. package/src/interactions/PressEvent.ts +4 -4
  430. package/src/interactions/createFocus.ts +12 -8
  431. package/src/interactions/createFocusRing.ts +21 -19
  432. package/src/interactions/createFocusWithin.ts +20 -13
  433. package/src/interactions/createFocusable.ts +15 -16
  434. package/src/interactions/createHover.ts +70 -55
  435. package/src/interactions/createInteractionModality.ts +75 -82
  436. package/src/interactions/createKeyboard.ts +2 -2
  437. package/src/interactions/createLongPress.ts +23 -23
  438. package/src/interactions/createMove.ts +72 -62
  439. package/src/interactions/createPress.ts +164 -87
  440. package/src/interactions/index.ts +24 -16
  441. package/src/label/createField.ts +18 -19
  442. package/src/label/createLabel.ts +18 -30
  443. package/src/label/createLabels.ts +8 -12
  444. package/src/label/index.ts +5 -5
  445. package/src/landmark/createLandmark.ts +30 -51
  446. package/src/landmark/index.ts +1 -1
  447. package/src/link/createLink.ts +83 -56
  448. package/src/link/index.ts +1 -1
  449. package/src/listbox/createListBox.ts +69 -58
  450. package/src/listbox/createOption.ts +83 -37
  451. package/src/listbox/index.ts +2 -6
  452. package/src/live-announcer/announce.ts +44 -71
  453. package/src/live-announcer/index.ts +1 -1
  454. package/src/menu/createMenu.ts +79 -50
  455. package/src/menu/createMenuItem.ts +79 -27
  456. package/src/menu/createMenuTrigger.ts +15 -15
  457. package/src/menu/index.ts +3 -12
  458. package/src/meter/createMeter.ts +7 -15
  459. package/src/meter/index.ts +1 -1
  460. package/src/numberfield/createNumberField.ts +138 -81
  461. package/src/numberfield/index.ts +1 -1
  462. package/src/overlays/ariaHideOutside.ts +14 -10
  463. package/src/overlays/createInteractOutside.ts +21 -18
  464. package/src/overlays/createModal.tsx +17 -17
  465. package/src/overlays/createOverlay.ts +38 -8
  466. package/src/overlays/createOverlayTrigger.ts +16 -16
  467. package/src/overlays/createPreventScroll.ts +46 -24
  468. package/src/overlays/index.ts +6 -17
  469. package/src/popover/calculatePosition.ts +115 -117
  470. package/src/popover/createOverlayPosition.ts +46 -40
  471. package/src/popover/createPopover.ts +42 -17
  472. package/src/popover/index.ts +3 -3
  473. package/src/progress/createProgressBar.ts +31 -32
  474. package/src/progress/index.ts +1 -1
  475. package/src/radio/createRadio.ts +95 -73
  476. package/src/radio/createRadioGroup.ts +83 -77
  477. package/src/radio/createRadioGroupState.ts +7 -31
  478. package/src/radio/index.ts +3 -8
  479. package/src/searchfield/createSearchField.ts +57 -29
  480. package/src/searchfield/index.ts +2 -2
  481. package/src/select/createHiddenSelect.tsx +57 -44
  482. package/src/select/createSelect.ts +128 -71
  483. package/src/select/index.ts +2 -7
  484. package/src/selection/createTypeSelect.ts +11 -11
  485. package/src/selection/index.ts +1 -1
  486. package/src/separator/createSeparator.ts +20 -25
  487. package/src/separator/index.ts +1 -1
  488. package/src/slider/createSlider.ts +93 -124
  489. package/src/slider/index.ts +2 -2
  490. package/src/ssr/index.tsx +8 -47
  491. package/src/steplist/createStepList.ts +106 -0
  492. package/src/steplist/index.ts +8 -0
  493. package/src/switch/createSwitch.ts +9 -14
  494. package/src/switch/index.ts +1 -1
  495. package/src/table/createTable.ts +152 -85
  496. package/src/table/createTableCell.ts +17 -16
  497. package/src/table/createTableColumnHeader.ts +67 -20
  498. package/src/table/createTableColumnResize.ts +256 -0
  499. package/src/table/createTableHeaderRow.ts +7 -7
  500. package/src/table/createTableRow.ts +149 -29
  501. package/src/table/createTableRowGroup.ts +5 -7
  502. package/src/table/createTableSelectAllCheckbox.ts +12 -11
  503. package/src/table/createTableSelectionCheckbox.ts +8 -8
  504. package/src/table/index.ts +14 -9
  505. package/src/table/types.ts +15 -7
  506. package/src/tabs/createTabs.ts +74 -92
  507. package/src/tabs/index.ts +1 -1
  508. package/src/tag/createTag.ts +52 -50
  509. package/src/tag/createTagGroup.ts +47 -41
  510. package/src/tag/index.ts +2 -6
  511. package/src/textfield/createTextField.ts +67 -35
  512. package/src/textfield/index.ts +1 -5
  513. package/src/toast/createToast.ts +28 -26
  514. package/src/toast/createToastRegion.ts +169 -26
  515. package/src/toast/index.ts +2 -6
  516. package/src/toggle/createToggle.ts +95 -53
  517. package/src/toggle/createToggleState.ts +2 -10
  518. package/src/toggle/index.ts +4 -5
  519. package/src/toolbar/createToolbar.ts +193 -210
  520. package/src/toolbar/index.ts +1 -1
  521. package/src/tooltip/createTooltip.ts +11 -24
  522. package/src/tooltip/createTooltipTrigger.ts +61 -49
  523. package/src/tooltip/index.ts +2 -2
  524. package/src/tree/createTree.ts +35 -37
  525. package/src/tree/createTreeItem.ts +29 -29
  526. package/src/tree/createTreeSelectionCheckbox.ts +11 -8
  527. package/src/tree/index.ts +4 -4
  528. package/src/tree/types.ts +10 -6
  529. package/src/utils/createDescription.ts +6 -23
  530. package/src/utils/dom.ts +61 -54
  531. package/src/utils/env.ts +9 -11
  532. package/src/utils/events.ts +7 -7
  533. package/src/utils/filterDOMProps.ts +49 -49
  534. package/src/utils/focus.ts +60 -68
  535. package/src/utils/geometry.ts +1 -4
  536. package/src/utils/globalListeners.ts +9 -9
  537. package/src/utils/index.ts +12 -22
  538. package/src/utils/mergeProps.ts +42 -15
  539. package/src/utils/platform.ts +2 -2
  540. package/src/utils/reactivity.ts +3 -3
  541. package/src/utils/textSelection.ts +16 -16
  542. package/src/visually-hidden/createVisuallyHidden.ts +16 -28
  543. package/src/visually-hidden/index.ts +1 -1
  544. package/dist/i18n/NumberFormatter.d.ts +0 -43
  545. package/dist/i18n/NumberFormatter.d.ts.map +0 -1
  546. package/dist/index.ssr.js +0 -17082
  547. package/dist/index.ssr.js.map +0 -1
  548. package/src/i18n/NumberFormatter.ts +0 -266
@@ -8,17 +8,13 @@
8
8
  * This is a 1:1 port of @react-aria/link's useLink hook.
9
9
  */
10
10
 
11
- import { type Accessor } from 'solid-js';
12
- import { createPress } from '../interactions/createPress';
13
- import { createFocusable } from '../interactions/createFocusable';
14
- import { mergeProps } from '../utils/mergeProps';
15
- import { filterDOMProps } from '../utils/filterDOMProps';
16
- import { type MaybeAccessor, access } from '../utils/reactivity';
17
- import { type PressEvent } from '../interactions/PressEvent';
18
-
19
- // ============================================
20
- // TYPES
21
- // ============================================
11
+ import { type Accessor } from "solid-js";
12
+ import { createPress } from "../interactions/createPress";
13
+ import { createFocusable } from "../interactions/createFocusable";
14
+ import { mergeProps } from "../utils/mergeProps";
15
+ import { filterDOMProps } from "../utils/filterDOMProps";
16
+ import { type MaybeAccessor, access } from "../utils/reactivity";
17
+ import { type PressEvent } from "../interactions/PressEvent";
22
18
 
23
19
  export interface AriaLinkProps {
24
20
  /** Whether the link is disabled. */
@@ -41,21 +37,25 @@ export interface AriaLinkProps {
41
37
  ping?: string;
42
38
  /** Referrer policy for fetches initiated by this link. */
43
39
  referrerPolicy?:
44
- | ''
45
- | 'no-referrer'
46
- | 'no-referrer-when-downgrade'
47
- | 'origin'
48
- | 'origin-when-cross-origin'
49
- | 'same-origin'
50
- | 'strict-origin'
51
- | 'strict-origin-when-cross-origin'
52
- | 'unsafe-url';
40
+ | ""
41
+ | "no-referrer"
42
+ | "no-referrer-when-downgrade"
43
+ | "origin"
44
+ | "origin-when-cross-origin"
45
+ | "same-origin"
46
+ | "strict-origin"
47
+ | "strict-origin-when-cross-origin"
48
+ | "unsafe-url";
53
49
  /** Handler that is called when the press is released over the target. */
54
50
  onPress?: (e: PressEvent) => void;
55
51
  /** Handler that is called when a press interaction starts. */
56
52
  onPressStart?: (e: PressEvent) => void;
57
53
  /** Handler that is called when a press interaction ends. */
58
54
  onPressEnd?: (e: PressEvent) => void;
55
+ /** Handler that is called when a press is released over the target. */
56
+ onPressUp?: (e: PressEvent) => void;
57
+ /** Handler that is called when the press state changes. */
58
+ onPressChange?: (isPressed: boolean) => void;
59
59
  /** Handler that is called when the element is clicked. */
60
60
  onClick?: (e: MouseEvent) => void;
61
61
  /** Handler that is called when the element receives focus. */
@@ -71,13 +71,15 @@ export interface AriaLinkProps {
71
71
  /** Whether to autofocus the element. */
72
72
  autoFocus?: boolean;
73
73
  /** Indicates the current "page" or state within a set of related elements. */
74
- 'aria-current'?: 'page' | 'step' | 'location' | 'date' | 'time' | 'true' | 'false' | boolean;
74
+ "aria-current"?: "page" | "step" | "location" | "date" | "time" | "true" | "false" | boolean;
75
75
  /** Defines a string value that labels the current element. */
76
- 'aria-label'?: string;
76
+ "aria-label"?: string;
77
77
  /** Identifies the element (or elements) that labels the current element. */
78
- 'aria-labelledby'?: string;
78
+ "aria-labelledby"?: string;
79
79
  /** Identifies the element (or elements) that describes the object. */
80
- 'aria-describedby'?: string;
80
+ "aria-describedby"?: string;
81
+ /** Identifies the element (or elements) that provide a detailed description. */
82
+ "aria-details"?: string;
81
83
  }
82
84
 
83
85
  export interface LinkAria {
@@ -87,40 +89,62 @@ export interface LinkAria {
87
89
  isPressed: Accessor<boolean>;
88
90
  }
89
91
 
90
- // ============================================
91
- // IMPLEMENTATION
92
- // ============================================
93
-
94
92
  /**
95
93
  * Provides the behavior and accessibility implementation for a link component.
96
94
  * A link allows a user to navigate to another page or resource within a web page
97
95
  * or application.
98
96
  */
99
- export function createLink(
100
- props: MaybeAccessor<AriaLinkProps> = {}
101
- ): LinkAria {
97
+ export function createLink(props: MaybeAccessor<AriaLinkProps> = {}): LinkAria {
102
98
  const getProps = () => access(props);
103
99
 
104
100
  const isDisabled = () => getProps().isDisabled ?? false;
105
- const elementType = () => getProps().elementType ?? 'a';
101
+ const elementType = () => getProps().elementType ?? "a";
106
102
 
107
103
  // Create press handling
108
104
  const { pressProps, isPressed } = createPress({
109
- get isDisabled() { return isDisabled(); },
110
- get onPress() { return getProps().onPress; },
111
- get onPressStart() { return getProps().onPressStart; },
112
- get onPressEnd() { return getProps().onPressEnd; },
105
+ get isDisabled() {
106
+ return isDisabled();
107
+ },
108
+ get onPress() {
109
+ return getProps().onPress;
110
+ },
111
+ get onPressStart() {
112
+ return getProps().onPressStart;
113
+ },
114
+ get onPressEnd() {
115
+ return getProps().onPressEnd;
116
+ },
117
+ get onPressUp() {
118
+ return getProps().onPressUp;
119
+ },
120
+ get onPressChange() {
121
+ return getProps().onPressChange;
122
+ },
113
123
  });
114
124
 
115
125
  // Create focusable handling
116
126
  const { focusableProps } = createFocusable({
117
- get isDisabled() { return isDisabled(); },
118
- get autoFocus() { return getProps().autoFocus; },
119
- get onFocus() { return getProps().onFocus; },
120
- get onBlur() { return getProps().onBlur; },
121
- get onFocusChange() { return getProps().onFocusChange; },
122
- get onKeyDown() { return getProps().onKeyDown; },
123
- get onKeyUp() { return getProps().onKeyUp; },
127
+ get isDisabled() {
128
+ return isDisabled();
129
+ },
130
+ get autoFocus() {
131
+ return getProps().autoFocus;
132
+ },
133
+ get onFocus() {
134
+ return getProps().onFocus;
135
+ },
136
+ get onBlur() {
137
+ return getProps().onBlur;
138
+ },
139
+ get onFocusChange() {
140
+ return getProps().onFocusChange;
141
+ },
142
+ get onKeyDown() {
143
+ return getProps().onKeyDown;
144
+ },
145
+ get onKeyUp() {
146
+ return getProps().onKeyUp;
147
+ },
124
148
  });
125
149
 
126
150
  // Build link props
@@ -132,29 +156,32 @@ export function createLink(
132
156
  let baseProps: Record<string, unknown> = {};
133
157
 
134
158
  // If not an <a>, add role and tabIndex
135
- if (elType !== 'a') {
159
+ if (elType !== "a") {
136
160
  baseProps = {
137
- role: 'link',
161
+ role: "link",
138
162
  tabIndex: disabled ? undefined : 0,
139
163
  };
140
164
  }
141
165
 
142
166
  // ARIA attributes
143
167
  const ariaProps: Record<string, unknown> = {
144
- 'aria-disabled': disabled || undefined,
168
+ "aria-disabled": disabled || undefined,
145
169
  };
146
170
 
147
- if (p['aria-current'] !== undefined) {
148
- ariaProps['aria-current'] = p['aria-current'];
171
+ if (p["aria-current"] !== undefined) {
172
+ ariaProps["aria-current"] = p["aria-current"];
173
+ }
174
+ if (p["aria-label"]) {
175
+ ariaProps["aria-label"] = p["aria-label"];
149
176
  }
150
- if (p['aria-label']) {
151
- ariaProps['aria-label'] = p['aria-label'];
177
+ if (p["aria-labelledby"]) {
178
+ ariaProps["aria-labelledby"] = p["aria-labelledby"];
152
179
  }
153
- if (p['aria-labelledby']) {
154
- ariaProps['aria-labelledby'] = p['aria-labelledby'];
180
+ if (p["aria-describedby"]) {
181
+ ariaProps["aria-describedby"] = p["aria-describedby"];
155
182
  }
156
- if (p['aria-describedby']) {
157
- ariaProps['aria-describedby'] = p['aria-describedby'];
183
+ if (p["aria-details"]) {
184
+ ariaProps["aria-details"] = p["aria-details"];
158
185
  }
159
186
 
160
187
  // Handle onClick - prevent default navigation when appropriate
@@ -178,13 +205,13 @@ export function createLink(
178
205
  return mergeProps(
179
206
  filterDOMProps(p as Record<string, unknown>, {
180
207
  labelable: true,
181
- isLink: elType === 'a',
208
+ isLink: elType === "a",
182
209
  }),
183
210
  baseProps,
184
211
  ariaProps,
185
212
  focusableProps as Record<string, unknown>,
186
213
  pressProps as Record<string, unknown>,
187
- { onClick }
214
+ { onClick },
188
215
  );
189
216
  };
190
217
 
package/src/link/index.ts CHANGED
@@ -1 +1 @@
1
- export { createLink, type AriaLinkProps, type LinkAria } from './createLink';
1
+ export { createLink, type AriaLinkProps, type LinkAria } from "./createLink";
@@ -4,16 +4,16 @@
4
4
  * Based on @react-aria/listbox useListBox.
5
5
  */
6
6
 
7
- import { createEffect, onCleanup, type JSX } from 'solid-js';
8
- import { createFocusWithin } from '../interactions/createFocusWithin';
9
- import { createLabel } from '../label/createLabel';
10
- import { createTypeSelect } from '../selection/createTypeSelect';
11
- import { filterDOMProps } from '../utils/filterDOMProps';
12
- import { mergeProps } from '../utils/mergeProps';
13
- import { createId } from '../ssr';
14
- import { access, type MaybeAccessor } from '../utils/reactivity';
15
- import { isDevEnv } from '../utils/env';
16
- import type { ListState, Key } from '@proyecto-viviana/solid-stately';
7
+ import { createEffect, onCleanup, type JSX } from "solid-js";
8
+ import { createFocusWithin } from "../interactions/createFocusWithin";
9
+ import { createLabel } from "../label/createLabel";
10
+ import { createTypeSelect } from "../selection/createTypeSelect";
11
+ import { filterDOMProps } from "../utils/filterDOMProps";
12
+ import { mergeProps } from "../utils/mergeProps";
13
+ import { createId } from "../ssr";
14
+ import { access, type MaybeAccessor } from "../utils/reactivity";
15
+ import { isDevEnv } from "../utils/env";
16
+ import type { ListState, Key } from "@proyecto-viviana/solid-stately";
17
17
 
18
18
  export interface AriaListBoxProps {
19
19
  /** An ID for the listbox. */
@@ -23,11 +23,11 @@ export interface AriaListBoxProps {
23
23
  /** The label for the listbox. */
24
24
  label?: JSX.Element;
25
25
  /** An accessible label for the listbox when no visible label is provided. */
26
- 'aria-label'?: string;
26
+ "aria-label"?: string;
27
27
  /** The ID of an element that labels the listbox. */
28
- 'aria-labelledby'?: string;
28
+ "aria-labelledby"?: string;
29
29
  /** The ID of an element that describes the listbox. */
30
- 'aria-describedby'?: string;
30
+ "aria-describedby"?: string;
31
31
  /** Handler called when focus moves into the listbox. */
32
32
  onFocus?: (e: FocusEvent) => void;
33
33
  /** Handler called when focus moves out of the listbox. */
@@ -42,6 +42,11 @@ export interface AriaListBoxProps {
42
42
  shouldSelectOnPressUp?: boolean;
43
43
  /** Whether to focus items on hover. */
44
44
  shouldFocusOnHover?: boolean;
45
+ /**
46
+ * Whether keyboard focus movement should also update selection in single selection mode.
47
+ * @default true
48
+ */
49
+ shouldSelectOnFocus?: boolean;
45
50
  /** Whether type-to-select is disabled. @default false */
46
51
  disallowTypeAhead?: boolean;
47
52
  }
@@ -71,16 +76,16 @@ export function getListBoxData(state: ListState): ListBoxData | undefined {
71
76
  function findNextEnabledKey<T>(
72
77
  state: ListState<T>,
73
78
  currentKey: Key | null,
74
- direction: 'next' | 'prev',
75
- wrap: boolean
79
+ direction: "next" | "prev",
80
+ wrap: boolean,
76
81
  ): Key | null {
77
82
  const collection = state.collection();
78
- const getAdjacentKey = direction === 'next'
79
- ? (key: Key) => collection.getKeyAfter(key)
80
- : (key: Key) => collection.getKeyBefore(key);
81
- const getBoundaryKey = direction === 'next'
82
- ? () => collection.getFirstKey()
83
- : () => collection.getLastKey();
83
+ const getAdjacentKey =
84
+ direction === "next"
85
+ ? (key: Key) => collection.getKeyAfter(key)
86
+ : (key: Key) => collection.getKeyBefore(key);
87
+ const getBoundaryKey =
88
+ direction === "next" ? () => collection.getFirstKey() : () => collection.getLastKey();
84
89
 
85
90
  let key = currentKey != null ? getAdjacentKey(currentKey) : getBoundaryKey();
86
91
  while (key != null && state.isDisabled(key)) {
@@ -104,7 +109,7 @@ function findNextEnabledKey<T>(
104
109
  export function createListBox<T>(
105
110
  props: MaybeAccessor<AriaListBoxProps>,
106
111
  state: ListState<T>,
107
- _ref?: () => HTMLElement | null
112
+ _ref?: () => HTMLElement | null,
108
113
  ): ListBoxAria {
109
114
  const getProps = () => access(props);
110
115
  const id = createId(getProps().id);
@@ -112,15 +117,16 @@ export function createListBox<T>(
112
117
  // Development-time warning for missing accessibility labels
113
118
  if (isDevEnv()) {
114
119
  const p = getProps();
115
- if (!p.label && !p['aria-label'] && !p['aria-labelledby']) {
120
+ if (!p.label && !p["aria-label"] && !p["aria-labelledby"]) {
116
121
  console.warn(
117
- '[solidaria] A ListBox requires an aria-label or aria-labelledby attribute for accessibility.'
122
+ "[solidaria] A ListBox requires an aria-label or aria-labelledby attribute for accessibility.",
118
123
  );
119
124
  }
120
125
  }
121
126
 
122
127
  // Filter DOM props
123
- const domProps = () => filterDOMProps(getProps() as unknown as Record<string, unknown>, { labelable: true });
128
+ const domProps = () =>
129
+ filterDOMProps(getProps() as unknown as Record<string, unknown>, { labelable: true });
124
130
 
125
131
  const updateSharedData = () => {
126
132
  const p = getProps();
@@ -163,13 +169,13 @@ export function createListBox<T>(
163
169
  get label() {
164
170
  return getProps().label;
165
171
  },
166
- get 'aria-label'() {
167
- return getProps()['aria-label'];
172
+ get "aria-label"() {
173
+ return getProps()["aria-label"];
168
174
  },
169
- get 'aria-labelledby'() {
170
- return getProps()['aria-labelledby'];
175
+ get "aria-labelledby"() {
176
+ return getProps()["aria-labelledby"];
171
177
  },
172
- labelElementType: 'span',
178
+ labelElementType: "span",
173
179
  });
174
180
 
175
181
  // Type-to-select
@@ -190,82 +196,83 @@ export function createListBox<T>(
190
196
 
191
197
  const collection = state.collection();
192
198
  const shouldWrap = p.shouldFocusWrap ?? false;
199
+ const shouldSelectOnFocus = p.shouldSelectOnFocus ?? true;
193
200
 
194
201
  switch (e.key) {
195
- case 'ArrowDown': {
202
+ case "ArrowDown": {
196
203
  e.preventDefault();
197
- const nextKey = findNextEnabledKey(state, state.focusedKey(), 'next', shouldWrap);
204
+ const nextKey = findNextEnabledKey(state, state.focusedKey(), "next", shouldWrap);
198
205
  if (nextKey != null) {
199
206
  state.setFocusedKey(nextKey);
200
- if (!e.shiftKey && state.selectionMode() === 'single') {
207
+ if (shouldSelectOnFocus && !e.shiftKey && state.selectionMode() === "single") {
201
208
  state.replaceSelection(nextKey);
202
- } else if (e.shiftKey && state.selectionMode() === 'multiple') {
209
+ } else if (e.shiftKey && state.selectionMode() === "multiple") {
203
210
  state.extendSelection(nextKey, collection);
204
211
  }
205
212
  }
206
213
  break;
207
214
  }
208
- case 'ArrowUp': {
215
+ case "ArrowUp": {
209
216
  e.preventDefault();
210
- const prevKey = findNextEnabledKey(state, state.focusedKey(), 'prev', shouldWrap);
217
+ const prevKey = findNextEnabledKey(state, state.focusedKey(), "prev", shouldWrap);
211
218
  if (prevKey != null) {
212
219
  state.setFocusedKey(prevKey);
213
- if (!e.shiftKey && state.selectionMode() === 'single') {
220
+ if (shouldSelectOnFocus && !e.shiftKey && state.selectionMode() === "single") {
214
221
  state.replaceSelection(prevKey);
215
- } else if (e.shiftKey && state.selectionMode() === 'multiple') {
222
+ } else if (e.shiftKey && state.selectionMode() === "multiple") {
216
223
  state.extendSelection(prevKey, collection);
217
224
  }
218
225
  }
219
226
  break;
220
227
  }
221
- case 'Home': {
228
+ case "Home": {
222
229
  e.preventDefault();
223
- const firstKey = findNextEnabledKey(state, null, 'next', false);
230
+ const firstKey = findNextEnabledKey(state, null, "next", false);
224
231
  if (firstKey != null) {
225
232
  state.setFocusedKey(firstKey);
226
- if (e.ctrlKey && e.shiftKey && state.selectionMode() === 'multiple') {
233
+ if (e.ctrlKey && e.shiftKey && state.selectionMode() === "multiple") {
227
234
  // Select from current to first
228
235
  state.extendSelection(firstKey, collection);
229
- } else if (!e.shiftKey && state.selectionMode() === 'single') {
236
+ } else if (shouldSelectOnFocus && !e.shiftKey && state.selectionMode() === "single") {
230
237
  state.replaceSelection(firstKey);
231
238
  }
232
239
  }
233
240
  break;
234
241
  }
235
- case 'End': {
242
+ case "End": {
236
243
  e.preventDefault();
237
- const lastKey = findNextEnabledKey(state, null, 'prev', false);
244
+ const lastKey = findNextEnabledKey(state, null, "prev", false);
238
245
  if (lastKey != null) {
239
246
  state.setFocusedKey(lastKey);
240
- if (e.ctrlKey && e.shiftKey && state.selectionMode() === 'multiple') {
247
+ if (e.ctrlKey && e.shiftKey && state.selectionMode() === "multiple") {
241
248
  // Select from current to last
242
249
  state.extendSelection(lastKey, collection);
243
- } else if (!e.shiftKey && state.selectionMode() === 'single') {
250
+ } else if (shouldSelectOnFocus && !e.shiftKey && state.selectionMode() === "single") {
244
251
  state.replaceSelection(lastKey);
245
252
  }
246
253
  }
247
254
  break;
248
255
  }
249
- case ' ':
250
- case 'Enter': {
256
+ case " ":
257
+ case "Enter": {
251
258
  e.preventDefault();
252
259
  const focusedKey = state.focusedKey();
253
260
  if (focusedKey != null && !state.isDisabled(focusedKey)) {
254
- if (state.selectionMode() !== 'none') {
261
+ if (state.selectionMode() !== "none") {
255
262
  state.toggleSelection(focusedKey);
256
263
  }
257
264
  p.onAction?.(focusedKey);
258
265
  }
259
266
  break;
260
267
  }
261
- case 'a': {
262
- if ((e.ctrlKey || e.metaKey) && state.selectionMode() === 'multiple') {
268
+ case "a": {
269
+ if ((e.ctrlKey || e.metaKey) && state.selectionMode() === "multiple") {
263
270
  e.preventDefault();
264
271
  state.selectAll();
265
272
  }
266
273
  break;
267
274
  }
268
- case 'Escape': {
275
+ case "Escape": {
269
276
  e.preventDefault();
270
277
  if (!state.disallowEmptySelection()) {
271
278
  state.clearSelection();
@@ -288,18 +295,22 @@ export function createListBox<T>(
288
295
  focusWithinProps as Record<string, unknown>,
289
296
  fieldProps as Record<string, unknown>,
290
297
  {
291
- role: 'listbox',
298
+ role: "listbox",
292
299
  tabIndex: p.isDisabled ? undefined : 0,
293
- 'aria-disabled': p.isDisabled || undefined,
294
- 'aria-multiselectable': selectionMode === 'multiple' ? true : undefined,
295
- 'aria-activedescendant': state.focusedKey() != null ? String(state.focusedKey()) : undefined,
300
+ "aria-disabled": p.isDisabled || undefined,
301
+ "aria-multiselectable": selectionMode === "multiple" ? true : undefined,
302
+ "aria-activedescendant":
303
+ state.focusedKey() != null ? String(state.focusedKey()) : undefined,
296
304
  onKeyDown,
297
- }
305
+ },
298
306
  );
299
307
 
300
308
  // Add type-select props if enabled
301
309
  if (!p.disallowTypeAhead) {
302
- return mergeProps(baseProps, typeSelectProps as Record<string, unknown>) as JSX.HTMLAttributes<HTMLElement>;
310
+ return mergeProps(
311
+ baseProps,
312
+ typeSelectProps as Record<string, unknown>,
313
+ ) as JSX.HTMLAttributes<HTMLElement>;
303
314
  }
304
315
 
305
316
  return baseProps as JSX.HTMLAttributes<HTMLElement>;