@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
@@ -5,260 +5,243 @@
5
5
  * Based on @react-aria/toolbar useToolbar.
6
6
  */
7
7
 
8
- import {
9
- createSignal,
10
- onMount,
11
- onCleanup,
12
- type Accessor,
13
- } from 'solid-js'
14
- import { type MaybeAccessor, access } from '../utils'
15
- import { useLocale } from '../i18n'
16
- import { getOwnerDocument, isFocusable } from '../utils'
17
- import { focusSafely } from '../utils/focus'
18
-
19
- // ============================================
20
- // TYPES
21
- // ============================================
22
-
23
- export type Orientation = 'horizontal' | 'vertical'
8
+ import { createSignal, onMount, onCleanup, type Accessor } from "solid-js";
9
+ import { type MaybeAccessor, access } from "../utils";
10
+ import { useLocale } from "../i18n";
11
+ import { getOwnerDocument, isFocusable } from "../utils";
12
+ import { focusSafely } from "../utils/focus";
13
+
14
+ export type Orientation = "horizontal" | "vertical";
24
15
 
25
16
  export interface AriaToolbarProps {
26
17
  /** The orientation of the toolbar. @default 'horizontal' */
27
- orientation?: MaybeAccessor<Orientation>
18
+ orientation?: MaybeAccessor<Orientation>;
28
19
  /** An accessibility label for the toolbar. */
29
- 'aria-label'?: MaybeAccessor<string>
20
+ "aria-label"?: MaybeAccessor<string>;
30
21
  /** Identifies the element (or elements) that labels the toolbar. */
31
- 'aria-labelledby'?: MaybeAccessor<string>
22
+ "aria-labelledby"?: MaybeAccessor<string>;
32
23
  }
33
24
 
34
25
  export interface ToolbarAria {
35
26
  /** Props for the toolbar container element. */
36
27
  toolbarProps: {
37
- role: 'toolbar' | 'group'
38
- 'aria-orientation': Orientation
39
- 'aria-label'?: string
40
- 'aria-labelledby'?: string
41
- tabIndex?: number
42
- ref: (el: HTMLElement) => void
43
- }
28
+ role: "toolbar" | "group";
29
+ "aria-orientation": Orientation;
30
+ "aria-label"?: string;
31
+ "aria-labelledby"?: string;
32
+ tabIndex?: number;
33
+ ref: (el: HTMLElement) => void;
34
+ };
44
35
  /** The orientation of the toolbar. */
45
- orientation: Accessor<Orientation>
36
+ orientation: Accessor<Orientation>;
46
37
  }
47
38
 
48
- // ============================================
49
- // FOCUS MANAGER FOR TOOLBAR
50
- // ============================================
51
-
52
39
  interface FocusManagerOptions {
53
- from?: Element
54
- tabbable?: boolean
55
- wrap?: boolean
56
- accept?: (node: Element) => boolean
40
+ from?: Element;
41
+ tabbable?: boolean;
42
+ wrap?: boolean;
43
+ accept?: (node: Element) => boolean;
57
44
  }
58
45
 
59
46
  interface FocusManager {
60
- focusNext(opts?: FocusManagerOptions): HTMLElement | null
61
- focusPrevious(opts?: FocusManagerOptions): HTMLElement | null
62
- focusFirst(opts?: FocusManagerOptions): HTMLElement | null
63
- focusLast(opts?: FocusManagerOptions): HTMLElement | null
47
+ focusNext(opts?: FocusManagerOptions): HTMLElement | null;
48
+ focusPrevious(opts?: FocusManagerOptions): HTMLElement | null;
49
+ focusFirst(opts?: FocusManagerOptions): HTMLElement | null;
50
+ focusLast(opts?: FocusManagerOptions): HTMLElement | null;
64
51
  }
65
52
 
66
53
  function isTabbable(element: Element): boolean {
67
54
  if (!isFocusable(element)) {
68
- return false
55
+ return false;
69
56
  }
70
- const tabIndex = element.getAttribute('tabindex')
57
+ const tabIndex = element.getAttribute("tabindex");
71
58
  if (tabIndex != null) {
72
- return parseInt(tabIndex, 10) >= 0
59
+ return parseInt(tabIndex, 10) >= 0;
73
60
  }
74
- return true
61
+ return true;
75
62
  }
76
63
 
77
64
  function getFocusableElements(root: Element, tabbable = false): HTMLElement[] {
78
- const elements: HTMLElement[] = []
79
- const filter = tabbable ? isTabbable : isFocusable
65
+ const elements: HTMLElement[] = [];
66
+ const filter = tabbable ? isTabbable : isFocusable;
80
67
 
81
68
  // Check the root element itself
82
69
  if (filter(root)) {
83
- elements.push(root as HTMLElement)
70
+ elements.push(root as HTMLElement);
84
71
  }
85
72
 
86
73
  // Check all descendants
87
- const descendants = root.querySelectorAll('*')
74
+ const descendants = root.querySelectorAll("*");
88
75
  for (let i = 0; i < descendants.length; i++) {
89
- const el = descendants[i]
76
+ const el = descendants[i];
90
77
  if (filter(el)) {
91
- elements.push(el as HTMLElement)
78
+ elements.push(el as HTMLElement);
92
79
  }
93
80
  }
94
81
 
95
- return elements
82
+ return elements;
96
83
  }
97
84
 
98
85
  function getActiveElement(doc: Document): Element | null {
99
- let activeElement = doc.activeElement
86
+ let activeElement = doc.activeElement;
100
87
  while (activeElement?.shadowRoot?.activeElement) {
101
- activeElement = activeElement.shadowRoot.activeElement
88
+ activeElement = activeElement.shadowRoot.activeElement;
102
89
  }
103
- return activeElement
90
+ return activeElement;
104
91
  }
105
92
 
106
93
  const TEXT_INPUT_TYPES = new Set([
107
- '',
108
- 'text',
109
- 'search',
110
- 'url',
111
- 'tel',
112
- 'password',
113
- 'email',
114
- 'number',
115
- 'date',
116
- 'datetime-local',
117
- 'month',
118
- 'time',
119
- 'week',
120
- ])
94
+ "",
95
+ "text",
96
+ "search",
97
+ "url",
98
+ "tel",
99
+ "password",
100
+ "email",
101
+ "number",
102
+ "date",
103
+ "datetime-local",
104
+ "month",
105
+ "time",
106
+ "week",
107
+ ]);
121
108
 
122
109
  function isTextInputLikeElement(target: EventTarget | null): boolean {
123
110
  if (!(target instanceof HTMLElement)) {
124
- return false
111
+ return false;
125
112
  }
126
113
 
127
114
  if (target.isContentEditable || !!target.closest('[contenteditable="true"]')) {
128
- return true
115
+ return true;
129
116
  }
130
117
 
131
- if (target.getAttribute('role') === 'textbox') {
132
- return true
118
+ if (target.getAttribute("role") === "textbox") {
119
+ return true;
133
120
  }
134
121
 
135
122
  if (target instanceof HTMLTextAreaElement || target instanceof HTMLSelectElement) {
136
- return true
123
+ return true;
137
124
  }
138
125
 
139
126
  if (target instanceof HTMLInputElement) {
140
- const type = target.type.toLowerCase()
141
- return TEXT_INPUT_TYPES.has(type)
127
+ const type = target.type.toLowerCase();
128
+ return TEXT_INPUT_TYPES.has(type);
142
129
  }
143
130
 
144
- return false
131
+ return false;
145
132
  }
146
133
 
147
134
  function createFocusManager(ref: Accessor<HTMLElement | undefined>): FocusManager {
148
135
  return {
149
136
  focusNext(opts: FocusManagerOptions = {}) {
150
- const root = ref()
151
- if (!root) return null
137
+ const root = ref();
138
+ if (!root) return null;
152
139
 
153
- const { from, tabbable = true, wrap = false, accept } = opts
154
- const doc = getOwnerDocument(root)
155
- const current = from || getActiveElement(doc)
140
+ const { from, tabbable = true, wrap = false, accept } = opts;
141
+ const doc = getOwnerDocument(root);
142
+ const current = from || getActiveElement(doc);
156
143
 
157
- let elements = getFocusableElements(root, tabbable)
144
+ let elements = getFocusableElements(root, tabbable);
158
145
  if (accept) {
159
- elements = elements.filter(accept)
146
+ elements = elements.filter(accept);
160
147
  }
161
148
 
162
- if (!current || elements.length === 0) return null
149
+ if (!current || elements.length === 0) return null;
163
150
 
164
- const currentIndex = elements.indexOf(current as HTMLElement)
165
- let nextIndex = currentIndex + 1
151
+ const currentIndex = elements.indexOf(current as HTMLElement);
152
+ let nextIndex = currentIndex + 1;
166
153
 
167
154
  if (nextIndex >= elements.length) {
168
155
  if (wrap) {
169
- nextIndex = 0
156
+ nextIndex = 0;
170
157
  } else {
171
- return null
158
+ return null;
172
159
  }
173
160
  }
174
161
 
175
- const nextElement = elements[nextIndex]
162
+ const nextElement = elements[nextIndex];
176
163
  if (nextElement) {
177
- focusSafely(nextElement)
178
- return nextElement
164
+ focusSafely(nextElement);
165
+ return nextElement;
179
166
  }
180
167
 
181
- return null
168
+ return null;
182
169
  },
183
170
 
184
171
  focusPrevious(opts: FocusManagerOptions = {}) {
185
- const root = ref()
186
- if (!root) return null
172
+ const root = ref();
173
+ if (!root) return null;
187
174
 
188
- const { from, tabbable = true, wrap = false, accept } = opts
189
- const doc = getOwnerDocument(root)
190
- const current = from || getActiveElement(doc)
175
+ const { from, tabbable = true, wrap = false, accept } = opts;
176
+ const doc = getOwnerDocument(root);
177
+ const current = from || getActiveElement(doc);
191
178
 
192
- let elements = getFocusableElements(root, tabbable)
179
+ let elements = getFocusableElements(root, tabbable);
193
180
  if (accept) {
194
- elements = elements.filter(accept)
181
+ elements = elements.filter(accept);
195
182
  }
196
183
 
197
- if (!current || elements.length === 0) return null
184
+ if (!current || elements.length === 0) return null;
198
185
 
199
- const currentIndex = elements.indexOf(current as HTMLElement)
200
- let prevIndex = currentIndex - 1
186
+ const currentIndex = elements.indexOf(current as HTMLElement);
187
+ let prevIndex = currentIndex - 1;
201
188
 
202
189
  if (prevIndex < 0) {
203
190
  if (wrap) {
204
- prevIndex = elements.length - 1
191
+ prevIndex = elements.length - 1;
205
192
  } else {
206
- return null
193
+ return null;
207
194
  }
208
195
  }
209
196
 
210
- const prevElement = elements[prevIndex]
197
+ const prevElement = elements[prevIndex];
211
198
  if (prevElement) {
212
- focusSafely(prevElement)
213
- return prevElement
199
+ focusSafely(prevElement);
200
+ return prevElement;
214
201
  }
215
202
 
216
- return null
203
+ return null;
217
204
  },
218
205
 
219
206
  focusFirst(opts: FocusManagerOptions = {}) {
220
- const root = ref()
221
- if (!root) return null
207
+ const root = ref();
208
+ if (!root) return null;
222
209
 
223
- const { tabbable = true, accept } = opts
224
- let elements = getFocusableElements(root, tabbable)
210
+ const { tabbable = true, accept } = opts;
211
+ let elements = getFocusableElements(root, tabbable);
225
212
  if (accept) {
226
- elements = elements.filter(accept)
213
+ elements = elements.filter(accept);
227
214
  }
228
215
 
229
216
  if (elements.length > 0) {
230
- focusSafely(elements[0])
231
- return elements[0]
217
+ focusSafely(elements[0]);
218
+ return elements[0];
232
219
  }
233
220
 
234
- return null
221
+ return null;
235
222
  },
236
223
 
237
224
  focusLast(opts: FocusManagerOptions = {}) {
238
- const root = ref()
239
- if (!root) return null
225
+ const root = ref();
226
+ if (!root) return null;
240
227
 
241
- const { tabbable = true, accept } = opts
242
- let elements = getFocusableElements(root, tabbable)
228
+ const { tabbable = true, accept } = opts;
229
+ let elements = getFocusableElements(root, tabbable);
243
230
  if (accept) {
244
- elements = elements.filter(accept)
231
+ elements = elements.filter(accept);
245
232
  }
246
233
 
247
234
  if (elements.length > 0) {
248
- const lastElement = elements[elements.length - 1]
249
- focusSafely(lastElement)
250
- return lastElement
235
+ const lastElement = elements[elements.length - 1];
236
+ focusSafely(lastElement);
237
+ return lastElement;
251
238
  }
252
239
 
253
- return null
240
+ return null;
254
241
  },
255
- }
242
+ };
256
243
  }
257
244
 
258
- // ============================================
259
- // CREATE TOOLBAR HOOK
260
- // ============================================
261
-
262
245
  /**
263
246
  * Provides the behavior and accessibility implementation for a toolbar.
264
247
  * A toolbar is a container for a set of interactive controls with arrow key navigation.
@@ -277,124 +260,124 @@ function createFocusManager(ref: Accessor<HTMLElement | undefined>): FocusManage
277
260
  * ```
278
261
  */
279
262
  export function createToolbar(props: AriaToolbarProps = {}): ToolbarAria {
280
- let toolbarRef: HTMLElement | undefined
281
- const [isInToolbar, setIsInToolbar] = createSignal(false)
282
- let lastFocusedElement: Element | null = null
263
+ let toolbarRef: HTMLElement | undefined;
264
+ const [isInToolbar, setIsInToolbar] = createSignal(false);
265
+ let lastFocusedElement: Element | null = null;
283
266
 
284
- const locale = useLocale()
285
- const orientation = () => access(props.orientation) ?? 'horizontal'
286
- const ariaLabel = () => access(props['aria-label'])
287
- const ariaLabelledby = () => access(props['aria-labelledby'])
267
+ const locale = useLocale();
268
+ const orientation = () => access(props.orientation) ?? "horizontal";
269
+ const ariaLabel = () => access(props["aria-label"]);
270
+ const ariaLabelledby = () => access(props["aria-labelledby"]);
288
271
 
289
- const focusManager = createFocusManager(() => toolbarRef)
272
+ const focusManager = createFocusManager(() => toolbarRef);
290
273
 
291
274
  // Check if this toolbar is nested inside another toolbar
292
275
  onMount(() => {
293
276
  if (toolbarRef) {
294
- const parentToolbar = toolbarRef.parentElement?.closest('[role="toolbar"]')
295
- setIsInToolbar(!!parentToolbar)
277
+ const parentToolbar = toolbarRef.parentElement?.closest('[role="toolbar"]');
278
+ setIsInToolbar(!!parentToolbar);
296
279
  }
297
- })
280
+ });
298
281
 
299
282
  // Keyboard event handler
300
283
  const onKeyDown = (e: KeyboardEvent) => {
301
- const root = toolbarRef
302
- if (!root) return
284
+ const root = toolbarRef;
285
+ if (!root) return;
303
286
 
304
287
  // Don't handle if nested toolbar (parent handles navigation)
305
- if (isInToolbar()) return
288
+ if (isInToolbar()) return;
306
289
 
307
- const target = e.target
290
+ const target = e.target;
308
291
  if (!(target instanceof Element) || !root.contains(target)) {
309
- return
292
+ return;
310
293
  }
311
294
 
312
295
  // Let modified shortcuts pass through.
313
296
  if (e.altKey || e.ctrlKey || e.metaKey || e.shiftKey) {
314
- return
297
+ return;
315
298
  }
316
299
 
317
300
  // Text entry controls should keep arrow/home/end for caret/value navigation.
318
301
  if (isTextInputLikeElement(target)) {
319
302
  switch (e.key) {
320
- case 'ArrowRight':
321
- case 'ArrowLeft':
322
- case 'ArrowDown':
323
- case 'ArrowUp':
324
- case 'Home':
325
- case 'End':
326
- return
303
+ case "ArrowRight":
304
+ case "ArrowLeft":
305
+ case "ArrowDown":
306
+ case "ArrowUp":
307
+ case "Home":
308
+ case "End":
309
+ return;
327
310
  }
328
311
  }
329
312
 
330
- const dir = locale().direction
331
- const isRTL = dir === 'rtl'
332
- const isHorizontal = orientation() === 'horizontal'
313
+ const dir = locale().direction;
314
+ const isRTL = dir === "rtl";
315
+ const isHorizontal = orientation() === "horizontal";
333
316
 
334
- let handled = false
317
+ let handled = false;
335
318
 
336
319
  switch (e.key) {
337
- case 'ArrowRight':
320
+ case "ArrowRight":
338
321
  if (isHorizontal) {
339
322
  if (isRTL) {
340
- focusManager.focusPrevious({ tabbable: true })
323
+ focusManager.focusPrevious({ tabbable: true });
341
324
  } else {
342
- focusManager.focusNext({ tabbable: true })
325
+ focusManager.focusNext({ tabbable: true });
343
326
  }
344
- handled = true
327
+ handled = true;
345
328
  }
346
- break
347
- case 'ArrowLeft':
329
+ break;
330
+ case "ArrowLeft":
348
331
  if (isHorizontal) {
349
332
  if (isRTL) {
350
- focusManager.focusNext({ tabbable: true })
333
+ focusManager.focusNext({ tabbable: true });
351
334
  } else {
352
- focusManager.focusPrevious({ tabbable: true })
335
+ focusManager.focusPrevious({ tabbable: true });
353
336
  }
354
- handled = true
337
+ handled = true;
355
338
  }
356
- break
357
- case 'ArrowDown':
339
+ break;
340
+ case "ArrowDown":
358
341
  if (!isHorizontal) {
359
- focusManager.focusNext({ tabbable: true })
360
- handled = true
342
+ focusManager.focusNext({ tabbable: true });
343
+ handled = true;
361
344
  }
362
- break
363
- case 'ArrowUp':
345
+ break;
346
+ case "ArrowUp":
364
347
  if (!isHorizontal) {
365
- focusManager.focusPrevious({ tabbable: true })
366
- handled = true
348
+ focusManager.focusPrevious({ tabbable: true });
349
+ handled = true;
367
350
  }
368
- break
369
- case 'Home':
370
- focusManager.focusFirst({ tabbable: true })
371
- handled = true
372
- break
373
- case 'End':
374
- focusManager.focusLast({ tabbable: true })
375
- handled = true
376
- break
377
- case 'Tab':
351
+ break;
352
+ case "Home":
353
+ focusManager.focusFirst({ tabbable: true });
354
+ handled = true;
355
+ break;
356
+ case "End":
357
+ focusManager.focusLast({ tabbable: true });
358
+ handled = true;
359
+ break;
360
+ case "Tab":
378
361
  // Store the last focused element for re-entry
379
- lastFocusedElement = e.target as Element
380
- break
362
+ lastFocusedElement = e.target as Element;
363
+ break;
381
364
  }
382
365
 
383
366
  if (handled) {
384
- e.preventDefault()
385
- e.stopPropagation()
367
+ e.preventDefault();
368
+ e.stopPropagation();
386
369
  }
387
- }
370
+ };
388
371
 
389
372
  // Focus handler - restore last focused element when re-entering
390
373
  const onFocus = (e: FocusEvent) => {
391
- if (isInToolbar()) return
374
+ if (isInToolbar()) return;
392
375
 
393
376
  // Only restore if focus is coming from outside the toolbar
394
- const root = toolbarRef
395
- if (!root) return
377
+ const root = toolbarRef;
378
+ if (!root) return;
396
379
 
397
- const relatedTarget = e.relatedTarget as Element | null
380
+ const relatedTarget = e.relatedTarget as Element | null;
398
381
 
399
382
  // If focus came from outside and we have a last focused element
400
383
  if (
@@ -403,41 +386,41 @@ export function createToolbar(props: AriaToolbarProps = {}): ToolbarAria {
403
386
  (!relatedTarget || !root.contains(relatedTarget))
404
387
  ) {
405
388
  // Restore focus to the last focused element
406
- focusSafely(lastFocusedElement as HTMLElement)
389
+ focusSafely(lastFocusedElement as HTMLElement);
407
390
  }
408
- }
391
+ };
409
392
 
410
393
  // Set up capture event listeners
411
394
  const setRef = (el: HTMLElement) => {
412
- toolbarRef = el
395
+ toolbarRef = el;
413
396
 
414
397
  // Use capture phase for keyboard events
415
- el.addEventListener('keydown', onKeyDown, true)
416
- el.addEventListener('focus', onFocus, true)
398
+ el.addEventListener("keydown", onKeyDown, true);
399
+ el.addEventListener("focus", onFocus, true);
417
400
 
418
401
  onCleanup(() => {
419
- el.removeEventListener('keydown', onKeyDown, true)
420
- el.removeEventListener('focus', onFocus, true)
421
- })
422
- }
402
+ el.removeEventListener("keydown", onKeyDown, true);
403
+ el.removeEventListener("focus", onFocus, true);
404
+ });
405
+ };
423
406
 
424
407
  return {
425
408
  toolbarProps: {
426
409
  get role() {
427
- return isInToolbar() ? 'group' : 'toolbar'
410
+ return isInToolbar() ? "group" : "toolbar";
428
411
  },
429
- get 'aria-orientation'() {
430
- return orientation()
412
+ get "aria-orientation"() {
413
+ return orientation();
431
414
  },
432
- get 'aria-label'() {
433
- return ariaLabel()
415
+ get "aria-label"() {
416
+ return ariaLabel();
434
417
  },
435
- get 'aria-labelledby'() {
418
+ get "aria-labelledby"() {
436
419
  // Only use aria-labelledby if no aria-label is provided
437
- return ariaLabel() ? undefined : ariaLabelledby()
420
+ return ariaLabel() ? undefined : ariaLabelledby();
438
421
  },
439
422
  ref: setRef,
440
423
  },
441
424
  orientation,
442
- }
425
+ };
443
426
  }
@@ -3,4 +3,4 @@ export {
3
3
  type AriaToolbarProps,
4
4
  type ToolbarAria,
5
5
  type Orientation,
6
- } from './createToolbar'
6
+ } from "./createToolbar";