@proyecto-viviana/solidaria 0.2.5 → 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 (555) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +31 -236
  3. package/dist/actiongroup/createActionGroup.d.ts +29 -0
  4. package/dist/actiongroup/createActionGroup.d.ts.map +1 -0
  5. package/dist/actiongroup/index.d.ts +2 -0
  6. package/dist/actiongroup/index.d.ts.map +1 -0
  7. package/dist/autocomplete/createAutocomplete.d.ts +16 -12
  8. package/dist/autocomplete/createAutocomplete.d.ts.map +1 -1
  9. package/dist/autocomplete/index.d.ts +1 -1
  10. package/dist/autocomplete/index.d.ts.map +1 -1
  11. package/dist/breadcrumbs/createBreadcrumbs.d.ts +11 -7
  12. package/dist/breadcrumbs/createBreadcrumbs.d.ts.map +1 -1
  13. package/dist/breadcrumbs/index.d.ts +1 -1
  14. package/dist/button/createButton.d.ts +1 -1
  15. package/dist/button/createButton.d.ts.map +1 -1
  16. package/dist/button/createToggleButton.d.ts +3 -3
  17. package/dist/button/createToggleButtonGroup.d.ts +32 -0
  18. package/dist/button/createToggleButtonGroup.d.ts.map +1 -0
  19. package/dist/button/index.d.ts +6 -4
  20. package/dist/button/index.d.ts.map +1 -1
  21. package/dist/button/types.d.ts +18 -12
  22. package/dist/button/types.d.ts.map +1 -1
  23. package/dist/calendar/createCalendar.d.ts +15 -5
  24. package/dist/calendar/createCalendar.d.ts.map +1 -1
  25. package/dist/calendar/createCalendarCell.d.ts +8 -2
  26. package/dist/calendar/createCalendarCell.d.ts.map +1 -1
  27. package/dist/calendar/createCalendarGrid.d.ts +4 -4
  28. package/dist/calendar/createCalendarGrid.d.ts.map +1 -1
  29. package/dist/calendar/createRangeCalendar.d.ts +15 -5
  30. package/dist/calendar/createRangeCalendar.d.ts.map +1 -1
  31. package/dist/calendar/createRangeCalendarCell.d.ts +7 -3
  32. package/dist/calendar/createRangeCalendarCell.d.ts.map +1 -1
  33. package/dist/calendar/index.d.ts +5 -5
  34. package/dist/calendar/index.d.ts.map +1 -1
  35. package/dist/calendar/intl/index.d.ts +12 -0
  36. package/dist/calendar/intl/index.d.ts.map +1 -0
  37. package/dist/calendar/utils.d.ts +12 -0
  38. package/dist/calendar/utils.d.ts.map +1 -0
  39. package/dist/checkbox/createCheckbox.d.ts +6 -6
  40. package/dist/checkbox/createCheckbox.d.ts.map +1 -1
  41. package/dist/checkbox/createCheckboxGroup.d.ts +11 -7
  42. package/dist/checkbox/createCheckboxGroup.d.ts.map +1 -1
  43. package/dist/checkbox/createCheckboxGroupItem.d.ts +4 -4
  44. package/dist/checkbox/createCheckboxGroupItem.d.ts.map +1 -1
  45. package/dist/checkbox/createCheckboxGroupState.d.ts +2 -2
  46. package/dist/checkbox/createCheckboxGroupState.d.ts.map +1 -1
  47. package/dist/checkbox/index.d.ts +8 -8
  48. package/dist/checkbox/index.d.ts.map +1 -1
  49. package/dist/collections/index.d.ts +56 -0
  50. package/dist/collections/index.d.ts.map +1 -0
  51. package/dist/color/createColorArea.d.ts +3 -3
  52. package/dist/color/createColorArea.d.ts.map +1 -1
  53. package/dist/color/createColorField.d.ts +4 -4
  54. package/dist/color/createColorField.d.ts.map +1 -1
  55. package/dist/color/createColorSlider.d.ts +4 -4
  56. package/dist/color/createColorSlider.d.ts.map +1 -1
  57. package/dist/color/createColorSwatch.d.ts +2 -2
  58. package/dist/color/createColorSwatch.d.ts.map +1 -1
  59. package/dist/color/createColorWheel.d.ts +3 -3
  60. package/dist/color/createColorWheel.d.ts.map +1 -1
  61. package/dist/color/index.d.ts +6 -6
  62. package/dist/color/types.d.ts +98 -16
  63. package/dist/color/types.d.ts.map +1 -1
  64. package/dist/combobox/createComboBox.d.ts +16 -7
  65. package/dist/combobox/createComboBox.d.ts.map +1 -1
  66. package/dist/combobox/index.d.ts +1 -1
  67. package/dist/combobox/intl/index.d.ts +1 -1
  68. package/dist/datepicker/createDateField.d.ts +18 -6
  69. package/dist/datepicker/createDateField.d.ts.map +1 -1
  70. package/dist/datepicker/createDatePicker.d.ts +57 -5
  71. package/dist/datepicker/createDatePicker.d.ts.map +1 -1
  72. package/dist/datepicker/createDatePickerGroup.d.ts +19 -0
  73. package/dist/datepicker/createDatePickerGroup.d.ts.map +1 -0
  74. package/dist/datepicker/createDateRangePicker.d.ts +42 -0
  75. package/dist/datepicker/createDateRangePicker.d.ts.map +1 -0
  76. package/dist/datepicker/createDateSegment.d.ts +11 -3
  77. package/dist/datepicker/createDateSegment.d.ts.map +1 -1
  78. package/dist/datepicker/createTimeField.d.ts +11 -5
  79. package/dist/datepicker/createTimeField.d.ts.map +1 -1
  80. package/dist/datepicker/createTimeSegment.d.ts +29 -0
  81. package/dist/datepicker/createTimeSegment.d.ts.map +1 -0
  82. package/dist/datepicker/index.d.ts +7 -4
  83. package/dist/datepicker/index.d.ts.map +1 -1
  84. package/dist/dialog/createDialog.d.ts +5 -5
  85. package/dist/dialog/createDialog.d.ts.map +1 -1
  86. package/dist/dialog/index.d.ts +2 -2
  87. package/dist/dialog/index.d.ts.map +1 -1
  88. package/dist/dialog/types.d.ts +4 -4
  89. package/dist/disclosure/createDisclosure.d.ts +5 -2
  90. package/dist/disclosure/createDisclosure.d.ts.map +1 -1
  91. package/dist/disclosure/createDisclosureGroup.d.ts +4 -3
  92. package/dist/disclosure/createDisclosureGroup.d.ts.map +1 -1
  93. package/dist/disclosure/index.d.ts +2 -2
  94. package/dist/dnd/createDrag.d.ts +2 -2
  95. package/dist/dnd/createDrag.d.ts.map +1 -1
  96. package/dist/dnd/createDraggableCollection.d.ts +6 -2
  97. package/dist/dnd/createDraggableCollection.d.ts.map +1 -1
  98. package/dist/dnd/createDraggableItem.d.ts +3 -3
  99. package/dist/dnd/createDraggableItem.d.ts.map +1 -1
  100. package/dist/dnd/createDrop.d.ts +2 -2
  101. package/dist/dnd/createDrop.d.ts.map +1 -1
  102. package/dist/dnd/createDroppableCollection.d.ts +55 -4
  103. package/dist/dnd/createDroppableCollection.d.ts.map +1 -1
  104. package/dist/dnd/createDroppableItem.d.ts +3 -3
  105. package/dist/dnd/createDroppableItem.d.ts.map +1 -1
  106. package/dist/dnd/index.d.ts +12 -12
  107. package/dist/dnd/index.d.ts.map +1 -1
  108. package/dist/dnd/types.d.ts +2 -2
  109. package/dist/dnd/types.d.ts.map +1 -1
  110. package/dist/dnd/utils.d.ts +1 -1
  111. package/dist/dnd/utils.d.ts.map +1 -1
  112. package/dist/focus/FocusScope.d.ts +1 -1
  113. package/dist/focus/FocusScope.d.ts.map +1 -1
  114. package/dist/focus/createAutoFocus.d.ts.map +1 -1
  115. package/dist/focus/createFocusRestore.d.ts.map +1 -1
  116. package/dist/focus/createVirtualFocus.d.ts +4 -4
  117. package/dist/focus/createVirtualFocus.d.ts.map +1 -1
  118. package/dist/focus/index.d.ts +4 -4
  119. package/dist/focus/index.d.ts.map +1 -1
  120. package/dist/form/createFormReset.d.ts +1 -1
  121. package/dist/form/createFormValidation.d.ts +3 -3
  122. package/dist/form/createFormValidation.d.ts.map +1 -1
  123. package/dist/form/index.d.ts +2 -2
  124. package/dist/form/index.d.ts.map +1 -1
  125. package/dist/grid/GridKeyboardDelegate.d.ts +5 -5
  126. package/dist/grid/createGrid.d.ts +3 -3
  127. package/dist/grid/createGrid.d.ts.map +1 -1
  128. package/dist/grid/createGridCell.d.ts +3 -3
  129. package/dist/grid/createGridRow.d.ts +3 -3
  130. package/dist/grid/index.d.ts +5 -5
  131. package/dist/grid/types.d.ts +8 -8
  132. package/dist/gridlist/createGridList.d.ts +6 -4
  133. package/dist/gridlist/createGridList.d.ts.map +1 -1
  134. package/dist/gridlist/createGridListItem.d.ts +4 -4
  135. package/dist/gridlist/createGridListItem.d.ts.map +1 -1
  136. package/dist/gridlist/createGridListSelectionCheckbox.d.ts +3 -3
  137. package/dist/gridlist/createGridListSelectionCheckbox.d.ts.map +1 -1
  138. package/dist/gridlist/index.d.ts +4 -4
  139. package/dist/gridlist/types.d.ts +11 -7
  140. package/dist/gridlist/types.d.ts.map +1 -1
  141. package/dist/i18n/createCollator.d.ts.map +1 -1
  142. package/dist/i18n/createDateFormatter.d.ts.map +1 -1
  143. package/dist/i18n/createFilter.d.ts.map +1 -1
  144. package/dist/i18n/createNumberFormatter.d.ts +1 -1
  145. package/dist/i18n/createNumberFormatter.d.ts.map +1 -1
  146. package/dist/i18n/createStringFormatter.d.ts +2 -2
  147. package/dist/i18n/createStringFormatter.d.ts.map +1 -1
  148. package/dist/i18n/index.d.ts +8 -8
  149. package/dist/i18n/index.d.ts.map +1 -1
  150. package/dist/i18n/locale.d.ts +2 -2
  151. package/dist/i18n/locale.d.ts.map +1 -1
  152. package/dist/i18n/utils.d.ts.map +1 -1
  153. package/dist/index.d.ts +52 -49
  154. package/dist/index.d.ts.map +1 -1
  155. package/dist/index.js +18089 -15690
  156. package/dist/index.js.map +1 -7
  157. package/dist/index.jsx +18242 -0
  158. package/dist/index.jsx.map +1 -0
  159. package/dist/interactions/FocusableProvider.d.ts +2 -2
  160. package/dist/interactions/FocusableProvider.d.ts.map +1 -1
  161. package/dist/interactions/PressEvent.d.ts +2 -2
  162. package/dist/interactions/createFocus.d.ts +1 -1
  163. package/dist/interactions/createFocus.d.ts.map +1 -1
  164. package/dist/interactions/createFocusRing.d.ts +1 -1
  165. package/dist/interactions/createFocusRing.d.ts.map +1 -1
  166. package/dist/interactions/createFocusWithin.d.ts +1 -1
  167. package/dist/interactions/createFocusWithin.d.ts.map +1 -1
  168. package/dist/interactions/createFocusable.d.ts +3 -3
  169. package/dist/interactions/createFocusable.d.ts.map +1 -1
  170. package/dist/interactions/createHover.d.ts +5 -5
  171. package/dist/interactions/createHover.d.ts.map +1 -1
  172. package/dist/interactions/createInteractionModality.d.ts +3 -3
  173. package/dist/interactions/createInteractionModality.d.ts.map +1 -1
  174. package/dist/interactions/createKeyboard.d.ts +1 -1
  175. package/dist/interactions/createLongPress.d.ts +5 -5
  176. package/dist/interactions/createMove.d.ts +5 -5
  177. package/dist/interactions/createMove.d.ts.map +1 -1
  178. package/dist/interactions/createPress.d.ts +4 -4
  179. package/dist/interactions/createPress.d.ts.map +1 -1
  180. package/dist/interactions/index.d.ts +12 -12
  181. package/dist/interactions/index.d.ts.map +1 -1
  182. package/dist/label/createField.d.ts +4 -4
  183. package/dist/label/createField.d.ts.map +1 -1
  184. package/dist/label/createLabel.d.ts +7 -7
  185. package/dist/label/createLabel.d.ts.map +1 -1
  186. package/dist/label/createLabels.d.ts +1 -1
  187. package/dist/label/createLabels.d.ts.map +1 -1
  188. package/dist/label/index.d.ts +5 -5
  189. package/dist/landmark/createLandmark.d.ts +5 -5
  190. package/dist/landmark/createLandmark.d.ts.map +1 -1
  191. package/dist/landmark/index.d.ts +1 -1
  192. package/dist/link/createLink.d.ts +23 -7
  193. package/dist/link/createLink.d.ts.map +1 -1
  194. package/dist/link/index.d.ts +1 -1
  195. package/dist/listbox/createListBox.d.ts +12 -6
  196. package/dist/listbox/createListBox.d.ts.map +1 -1
  197. package/dist/listbox/createOption.d.ts +21 -4
  198. package/dist/listbox/createOption.d.ts.map +1 -1
  199. package/dist/listbox/index.d.ts +2 -2
  200. package/dist/listbox/index.d.ts.map +1 -1
  201. package/dist/live-announcer/announce.d.ts +2 -2
  202. package/dist/live-announcer/announce.d.ts.map +1 -1
  203. package/dist/live-announcer/index.d.ts +1 -1
  204. package/dist/menu/createMenu.d.ts +8 -7
  205. package/dist/menu/createMenu.d.ts.map +1 -1
  206. package/dist/menu/createMenuItem.d.ts +16 -4
  207. package/dist/menu/createMenuItem.d.ts.map +1 -1
  208. package/dist/menu/createMenuTrigger.d.ts +4 -4
  209. package/dist/menu/index.d.ts +3 -3
  210. package/dist/menu/index.d.ts.map +1 -1
  211. package/dist/meter/createMeter.d.ts +6 -6
  212. package/dist/meter/createMeter.d.ts.map +1 -1
  213. package/dist/meter/index.d.ts +1 -1
  214. package/dist/numberfield/createNumberField.d.ts +27 -8
  215. package/dist/numberfield/createNumberField.d.ts.map +1 -1
  216. package/dist/numberfield/index.d.ts +1 -1
  217. package/dist/overlays/ariaHideOutside.d.ts.map +1 -1
  218. package/dist/overlays/createModal.d.ts +19 -3
  219. package/dist/overlays/createModal.d.ts.map +1 -1
  220. package/dist/overlays/createOverlay.d.ts +1 -1
  221. package/dist/overlays/createOverlay.d.ts.map +1 -1
  222. package/dist/overlays/createOverlayTrigger.d.ts +6 -6
  223. package/dist/overlays/index.d.ts +6 -6
  224. package/dist/overlays/index.d.ts.map +1 -1
  225. package/dist/popover/calculatePosition.d.ts +4 -4
  226. package/dist/popover/calculatePosition.d.ts.map +1 -1
  227. package/dist/popover/createOverlayPosition.d.ts +3 -3
  228. package/dist/popover/createOverlayPosition.d.ts.map +1 -1
  229. package/dist/popover/createPopover.d.ts +4 -4
  230. package/dist/popover/createPopover.d.ts.map +1 -1
  231. package/dist/popover/index.d.ts +3 -3
  232. package/dist/progress/createProgressBar.d.ts +7 -5
  233. package/dist/progress/createProgressBar.d.ts.map +1 -1
  234. package/dist/progress/index.d.ts +1 -1
  235. package/dist/radio/createRadio.d.ts +7 -7
  236. package/dist/radio/createRadio.d.ts.map +1 -1
  237. package/dist/radio/createRadioGroup.d.ts +11 -11
  238. package/dist/radio/createRadioGroup.d.ts.map +1 -1
  239. package/dist/radio/createRadioGroupState.d.ts +3 -3
  240. package/dist/radio/createRadioGroupState.d.ts.map +1 -1
  241. package/dist/radio/index.d.ts +3 -3
  242. package/dist/radio/index.d.ts.map +1 -1
  243. package/dist/searchfield/createSearchField.d.ts +7 -7
  244. package/dist/searchfield/createSearchField.d.ts.map +1 -1
  245. package/dist/searchfield/index.d.ts +2 -2
  246. package/dist/select/createHiddenSelect.d.ts +4 -4
  247. package/dist/select/createHiddenSelect.d.ts.map +1 -1
  248. package/dist/select/createSelect.d.ts +14 -6
  249. package/dist/select/createSelect.d.ts.map +1 -1
  250. package/dist/select/index.d.ts +2 -2
  251. package/dist/select/index.d.ts.map +1 -1
  252. package/dist/selection/createTypeSelect.d.ts +2 -2
  253. package/dist/selection/index.d.ts +1 -1
  254. package/dist/separator/createSeparator.d.ts +9 -5
  255. package/dist/separator/createSeparator.d.ts.map +1 -1
  256. package/dist/separator/index.d.ts +1 -1
  257. package/dist/slider/createSlider.d.ts +11 -7
  258. package/dist/slider/createSlider.d.ts.map +1 -1
  259. package/dist/slider/index.d.ts +2 -2
  260. package/dist/ssr/index.d.ts +1 -1
  261. package/dist/ssr/index.d.ts.map +1 -1
  262. package/dist/steplist/createStepList.d.ts +36 -0
  263. package/dist/steplist/createStepList.d.ts.map +1 -0
  264. package/dist/steplist/index.d.ts +2 -0
  265. package/dist/steplist/index.d.ts.map +1 -0
  266. package/dist/switch/createSwitch.d.ts +6 -4
  267. package/dist/switch/createSwitch.d.ts.map +1 -1
  268. package/dist/switch/index.d.ts +1 -1
  269. package/dist/table/createTable.d.ts +3 -3
  270. package/dist/table/createTable.d.ts.map +1 -1
  271. package/dist/table/createTableCell.d.ts +3 -3
  272. package/dist/table/createTableCell.d.ts.map +1 -1
  273. package/dist/table/createTableColumnHeader.d.ts +3 -3
  274. package/dist/table/createTableColumnHeader.d.ts.map +1 -1
  275. package/dist/table/createTableColumnResize.d.ts +41 -0
  276. package/dist/table/createTableColumnResize.d.ts.map +1 -0
  277. package/dist/table/createTableHeaderRow.d.ts +3 -3
  278. package/dist/table/createTableRow.d.ts +3 -3
  279. package/dist/table/createTableRow.d.ts.map +1 -1
  280. package/dist/table/createTableRowGroup.d.ts +2 -2
  281. package/dist/table/createTableRowGroup.d.ts.map +1 -1
  282. package/dist/table/createTableSelectAllCheckbox.d.ts +3 -3
  283. package/dist/table/createTableSelectAllCheckbox.d.ts.map +1 -1
  284. package/dist/table/createTableSelectionCheckbox.d.ts +3 -3
  285. package/dist/table/index.d.ts +11 -9
  286. package/dist/table/index.d.ts.map +1 -1
  287. package/dist/table/types.d.ts +15 -7
  288. package/dist/table/types.d.ts.map +1 -1
  289. package/dist/tabs/createTabs.d.ts +28 -25
  290. package/dist/tabs/createTabs.d.ts.map +1 -1
  291. package/dist/tabs/index.d.ts +1 -1
  292. package/dist/tag/createTag.d.ts +2 -2
  293. package/dist/tag/createTag.d.ts.map +1 -1
  294. package/dist/tag/createTagGroup.d.ts +5 -5
  295. package/dist/tag/createTagGroup.d.ts.map +1 -1
  296. package/dist/tag/index.d.ts +2 -2
  297. package/dist/tag/index.d.ts.map +1 -1
  298. package/dist/textfield/createTextField.d.ts +17 -11
  299. package/dist/textfield/createTextField.d.ts.map +1 -1
  300. package/dist/textfield/index.d.ts +1 -1
  301. package/dist/textfield/index.d.ts.map +1 -1
  302. package/dist/toast/createToast.d.ts +6 -2
  303. package/dist/toast/createToast.d.ts.map +1 -1
  304. package/dist/toast/createToastRegion.d.ts +5 -3
  305. package/dist/toast/createToastRegion.d.ts.map +1 -1
  306. package/dist/toast/index.d.ts +2 -2
  307. package/dist/toast/index.d.ts.map +1 -1
  308. package/dist/toggle/createToggle.d.ts +9 -9
  309. package/dist/toggle/createToggle.d.ts.map +1 -1
  310. package/dist/toggle/createToggleState.d.ts +2 -2
  311. package/dist/toggle/createToggleState.d.ts.map +1 -1
  312. package/dist/toggle/index.d.ts +4 -4
  313. package/dist/toggle/index.d.ts.map +1 -1
  314. package/dist/toolbar/createToolbar.d.ts +9 -9
  315. package/dist/toolbar/createToolbar.d.ts.map +1 -1
  316. package/dist/toolbar/index.d.ts +1 -1
  317. package/dist/toolbar/index.d.ts.map +1 -1
  318. package/dist/tooltip/createTooltip.d.ts +5 -5
  319. package/dist/tooltip/createTooltip.d.ts.map +1 -1
  320. package/dist/tooltip/createTooltipTrigger.d.ts +10 -5
  321. package/dist/tooltip/createTooltipTrigger.d.ts.map +1 -1
  322. package/dist/tooltip/index.d.ts +2 -2
  323. package/dist/tree/createTree.d.ts +3 -3
  324. package/dist/tree/createTree.d.ts.map +1 -1
  325. package/dist/tree/createTreeItem.d.ts +4 -4
  326. package/dist/tree/createTreeItem.d.ts.map +1 -1
  327. package/dist/tree/createTreeSelectionCheckbox.d.ts +3 -3
  328. package/dist/tree/createTreeSelectionCheckbox.d.ts.map +1 -1
  329. package/dist/tree/index.d.ts +4 -4
  330. package/dist/tree/types.d.ts +13 -5
  331. package/dist/tree/types.d.ts.map +1 -1
  332. package/dist/utils/createDescription.d.ts +2 -2
  333. package/dist/utils/createDescription.d.ts.map +1 -1
  334. package/dist/utils/dom.d.ts.map +1 -1
  335. package/dist/utils/env.d.ts +1 -1
  336. package/dist/utils/env.d.ts.map +1 -1
  337. package/dist/utils/focus.d.ts +1 -1
  338. package/dist/utils/focus.d.ts.map +1 -1
  339. package/dist/utils/geometry.d.ts.map +1 -1
  340. package/dist/utils/index.d.ts +12 -12
  341. package/dist/utils/index.d.ts.map +1 -1
  342. package/dist/utils/mergeProps.d.ts.map +1 -1
  343. package/dist/utils/platform.d.ts.map +1 -1
  344. package/dist/utils/reactivity.d.ts +1 -1
  345. package/dist/visually-hidden/createVisuallyHidden.d.ts +2 -2
  346. package/dist/visually-hidden/createVisuallyHidden.d.ts.map +1 -1
  347. package/dist/visually-hidden/index.d.ts +1 -1
  348. package/package.json +34 -32
  349. package/src/actiongroup/createActionGroup.ts +334 -0
  350. package/src/actiongroup/index.ts +8 -0
  351. package/src/autocomplete/createAutocomplete.ts +137 -131
  352. package/src/autocomplete/index.ts +1 -1
  353. package/src/breadcrumbs/createBreadcrumbs.ts +37 -51
  354. package/src/breadcrumbs/index.ts +1 -1
  355. package/src/button/createButton.ts +102 -73
  356. package/src/button/createToggleButton.ts +10 -10
  357. package/src/button/createToggleButtonGroup.ts +121 -0
  358. package/src/button/index.ts +10 -4
  359. package/src/button/types.ts +18 -12
  360. package/src/calendar/createCalendar.ts +62 -29
  361. package/src/calendar/createCalendarCell.ts +102 -48
  362. package/src/calendar/createCalendarGrid.ts +78 -47
  363. package/src/calendar/createRangeCalendar.ts +66 -31
  364. package/src/calendar/createRangeCalendarCell.ts +115 -37
  365. package/src/calendar/index.ts +5 -9
  366. package/src/calendar/intl/index.ts +210 -0
  367. package/src/calendar/utils.ts +227 -0
  368. package/src/checkbox/createCheckbox.ts +13 -21
  369. package/src/checkbox/createCheckboxGroup.ts +86 -45
  370. package/src/checkbox/createCheckboxGroupItem.ts +16 -27
  371. package/src/checkbox/createCheckboxGroupState.ts +3 -22
  372. package/src/checkbox/index.ts +8 -10
  373. package/src/collections/index.ts +246 -0
  374. package/src/color/createColorArea.ts +458 -314
  375. package/src/color/createColorField.ts +186 -137
  376. package/src/color/createColorSlider.ts +444 -197
  377. package/src/color/createColorSwatch.ts +65 -40
  378. package/src/color/createColorWheel.ts +343 -208
  379. package/src/color/index.ts +24 -24
  380. package/src/color/types.ts +198 -116
  381. package/src/combobox/createComboBox.ts +727 -647
  382. package/src/combobox/index.ts +6 -6
  383. package/src/combobox/intl/index.ts +5 -5
  384. package/src/datepicker/createDateField.ts +192 -39
  385. package/src/datepicker/createDatePicker.ts +294 -63
  386. package/src/datepicker/createDatePickerGroup.ts +149 -0
  387. package/src/datepicker/createDateRangePicker.ts +294 -0
  388. package/src/datepicker/createDateSegment.ts +316 -75
  389. package/src/datepicker/createTimeField.ts +38 -34
  390. package/src/datepicker/createTimeSegment.ts +352 -0
  391. package/src/datepicker/index.ts +24 -11
  392. package/src/dialog/createDialog.ts +127 -120
  393. package/src/dialog/index.ts +2 -2
  394. package/src/dialog/types.ts +19 -19
  395. package/src/disclosure/createDisclosure.ts +138 -33
  396. package/src/disclosure/createDisclosureGroup.ts +8 -18
  397. package/src/disclosure/index.ts +2 -2
  398. package/src/dnd/createDrag.ts +218 -209
  399. package/src/dnd/createDraggableCollection.ts +96 -63
  400. package/src/dnd/createDraggableItem.ts +260 -243
  401. package/src/dnd/createDrop.ts +313 -321
  402. package/src/dnd/createDroppableCollection.ts +799 -293
  403. package/src/dnd/createDroppableItem.ts +215 -213
  404. package/src/dnd/index.ts +66 -47
  405. package/src/dnd/types.ts +86 -89
  406. package/src/dnd/utils.ts +281 -294
  407. package/src/focus/FocusScope.tsx +155 -164
  408. package/src/focus/createAutoFocus.ts +305 -321
  409. package/src/focus/createFocusRestore.ts +300 -313
  410. package/src/focus/createVirtualFocus.ts +380 -396
  411. package/src/focus/index.ts +4 -8
  412. package/src/form/createFormReset.ts +4 -4
  413. package/src/form/createFormValidation.ts +201 -224
  414. package/src/form/index.ts +8 -11
  415. package/src/grid/GridKeyboardDelegate.ts +30 -30
  416. package/src/grid/createGrid.ts +38 -36
  417. package/src/grid/createGridCell.ts +18 -18
  418. package/src/grid/createGridRow.ts +14 -14
  419. package/src/grid/index.ts +5 -5
  420. package/src/grid/types.ts +8 -8
  421. package/src/gridlist/createGridList.ts +45 -24
  422. package/src/gridlist/createGridListItem.ts +68 -23
  423. package/src/gridlist/createGridListSelectionCheckbox.ts +12 -9
  424. package/src/gridlist/index.ts +4 -4
  425. package/src/gridlist/types.ts +11 -7
  426. package/src/i18n/createCollator.ts +66 -79
  427. package/src/i18n/createDateFormatter.ts +75 -83
  428. package/src/i18n/createFilter.ts +118 -131
  429. package/src/i18n/createNumberFormatter.ts +50 -52
  430. package/src/i18n/createStringFormatter.ts +19 -15
  431. package/src/i18n/index.ts +37 -40
  432. package/src/i18n/locale.tsx +163 -188
  433. package/src/i18n/utils.ts +95 -99
  434. package/src/index.ts +114 -164
  435. package/src/interactions/FocusableProvider.tsx +3 -7
  436. package/src/interactions/PressEvent.ts +4 -4
  437. package/src/interactions/createFocus.ts +16 -11
  438. package/src/interactions/createFocusRing.ts +21 -19
  439. package/src/interactions/createFocusWithin.ts +24 -16
  440. package/src/interactions/createFocusable.ts +15 -16
  441. package/src/interactions/createHover.ts +70 -55
  442. package/src/interactions/createInteractionModality.ts +75 -82
  443. package/src/interactions/createKeyboard.ts +2 -2
  444. package/src/interactions/createLongPress.ts +174 -174
  445. package/src/interactions/createMove.ts +299 -289
  446. package/src/interactions/createPress.ts +168 -91
  447. package/src/interactions/index.ts +24 -16
  448. package/src/label/createField.ts +18 -19
  449. package/src/label/createLabel.ts +18 -30
  450. package/src/label/createLabels.ts +8 -12
  451. package/src/label/index.ts +5 -5
  452. package/src/landmark/createLandmark.ts +356 -377
  453. package/src/landmark/index.ts +8 -8
  454. package/src/link/createLink.ts +96 -54
  455. package/src/link/index.ts +1 -1
  456. package/src/listbox/createListBox.ts +319 -269
  457. package/src/listbox/createOption.ts +208 -151
  458. package/src/listbox/index.ts +8 -12
  459. package/src/live-announcer/announce.ts +295 -322
  460. package/src/live-announcer/index.ts +9 -9
  461. package/src/menu/createMenu.ts +434 -396
  462. package/src/menu/createMenuItem.ts +201 -149
  463. package/src/menu/createMenuTrigger.ts +88 -88
  464. package/src/menu/index.ts +9 -18
  465. package/src/meter/createMeter.ts +7 -20
  466. package/src/meter/index.ts +1 -1
  467. package/src/numberfield/createNumberField.ts +368 -268
  468. package/src/numberfield/index.ts +5 -5
  469. package/src/overlays/ariaHideOutside.ts +223 -219
  470. package/src/overlays/createInteractOutside.ts +152 -149
  471. package/src/overlays/createModal.tsx +238 -202
  472. package/src/overlays/createOverlay.ts +195 -155
  473. package/src/overlays/createOverlayTrigger.ts +85 -85
  474. package/src/overlays/createPreventScroll.ts +288 -266
  475. package/src/overlays/index.ts +37 -44
  476. package/src/popover/calculatePosition.ts +117 -119
  477. package/src/popover/createOverlayPosition.ts +52 -43
  478. package/src/popover/createPopover.ts +63 -24
  479. package/src/popover/index.ts +3 -3
  480. package/src/progress/createProgressBar.ts +36 -32
  481. package/src/progress/index.ts +1 -1
  482. package/src/radio/createRadio.ts +95 -73
  483. package/src/radio/createRadioGroup.ts +142 -62
  484. package/src/radio/createRadioGroupState.ts +7 -31
  485. package/src/radio/index.ts +3 -8
  486. package/src/searchfield/createSearchField.ts +269 -186
  487. package/src/searchfield/index.ts +2 -2
  488. package/src/select/createHiddenSelect.tsx +276 -236
  489. package/src/select/createSelect.ts +430 -395
  490. package/src/select/index.ts +9 -14
  491. package/src/selection/createTypeSelect.ts +11 -11
  492. package/src/selection/index.ts +1 -1
  493. package/src/separator/createSeparator.ts +20 -25
  494. package/src/separator/index.ts +1 -1
  495. package/src/slider/createSlider.ts +333 -349
  496. package/src/slider/index.ts +2 -2
  497. package/src/ssr/index.tsx +331 -370
  498. package/src/steplist/createStepList.ts +106 -0
  499. package/src/steplist/index.ts +8 -0
  500. package/src/switch/createSwitch.ts +9 -14
  501. package/src/switch/index.ts +1 -1
  502. package/src/table/createTable.ts +155 -86
  503. package/src/table/createTableCell.ts +17 -16
  504. package/src/table/createTableColumnHeader.ts +67 -20
  505. package/src/table/createTableColumnResize.ts +256 -0
  506. package/src/table/createTableHeaderRow.ts +7 -7
  507. package/src/table/createTableRow.ts +149 -29
  508. package/src/table/createTableRowGroup.ts +5 -7
  509. package/src/table/createTableSelectAllCheckbox.ts +12 -11
  510. package/src/table/createTableSelectionCheckbox.ts +8 -8
  511. package/src/table/index.ts +14 -9
  512. package/src/table/types.ts +15 -7
  513. package/src/tabs/createTabs.ts +138 -127
  514. package/src/tabs/index.ts +1 -1
  515. package/src/tag/createTag.ts +171 -40
  516. package/src/tag/createTagGroup.ts +50 -39
  517. package/src/tag/index.ts +2 -6
  518. package/src/textfield/createTextField.ts +67 -35
  519. package/src/textfield/index.ts +1 -5
  520. package/src/toast/createToast.ts +34 -26
  521. package/src/toast/createToastRegion.ts +169 -27
  522. package/src/toast/index.ts +2 -6
  523. package/src/toggle/createToggle.ts +95 -53
  524. package/src/toggle/createToggleState.ts +2 -10
  525. package/src/toggle/index.ts +4 -5
  526. package/src/toolbar/createToolbar.ts +226 -169
  527. package/src/toolbar/index.ts +1 -1
  528. package/src/tooltip/createTooltip.ts +66 -79
  529. package/src/tooltip/createTooltipTrigger.ts +238 -222
  530. package/src/tooltip/index.ts +6 -6
  531. package/src/tree/createTree.ts +259 -246
  532. package/src/tree/createTreeItem.ts +282 -233
  533. package/src/tree/createTreeSelectionCheckbox.ts +71 -68
  534. package/src/tree/index.ts +16 -16
  535. package/src/tree/types.ts +95 -87
  536. package/src/utils/createDescription.ts +6 -23
  537. package/src/utils/dom.ts +61 -54
  538. package/src/utils/env.ts +53 -54
  539. package/src/utils/events.ts +7 -7
  540. package/src/utils/filterDOMProps.ts +49 -49
  541. package/src/utils/focus.ts +60 -68
  542. package/src/utils/geometry.ts +1 -4
  543. package/src/utils/globalListeners.ts +9 -9
  544. package/src/utils/index.ts +12 -22
  545. package/src/utils/mergeProps.ts +42 -15
  546. package/src/utils/platform.ts +16 -6
  547. package/src/utils/reactivity.ts +3 -3
  548. package/src/utils/textSelection.ts +16 -16
  549. package/src/visually-hidden/createVisuallyHidden.ts +127 -124
  550. package/src/visually-hidden/index.ts +6 -6
  551. package/dist/i18n/NumberFormatter.d.ts +0 -43
  552. package/dist/i18n/NumberFormatter.d.ts.map +0 -1
  553. package/dist/index.ssr.js +0 -15875
  554. package/dist/index.ssr.js.map +0 -7
  555. package/src/i18n/NumberFormatter.ts +0 -266
@@ -3,11 +3,11 @@
3
3
  * Based on @react-aria/gridlist/useGridList.
4
4
  */
5
5
 
6
- import { createMemo, type Accessor } from 'solid-js';
7
- import type { JSX } from 'solid-js';
8
- import { createId } from '@proyecto-viviana/solid-stately';
9
- import type { GridState, GridCollection, Key } from '@proyecto-viviana/solid-stately';
10
- import type { AriaGridListProps, GridListAria } from './types';
6
+ import { createMemo, type Accessor } from "solid-js";
7
+ import type { JSX } from "solid-js";
8
+ import { createId } from "@proyecto-viviana/solid-stately";
9
+ import type { GridState, GridCollection, Key } from "@proyecto-viviana/solid-stately";
10
+ import type { AriaGridListProps, GridListAria } from "./types";
11
11
 
12
12
  /**
13
13
  * Metadata stored for a grid list instance.
@@ -15,6 +15,8 @@ import type { AriaGridListProps, GridListAria } from './types';
15
15
  interface GridListData {
16
16
  /** The generated ID for the grid list. */
17
17
  gridListId: string;
18
+ /** How selection should behave when pressing an item. */
19
+ selectionBehavior: "replace" | "toggle";
18
20
  /** Actions registered for the grid list. */
19
21
  actions: {
20
22
  onAction?: (key: Key) => void;
@@ -30,7 +32,7 @@ const gridListDataMap = new WeakMap<object, GridListData>();
30
32
  * Gets the grid list data for a given state.
31
33
  */
32
34
  export function getGridListData<T extends object, C extends GridCollection<T>>(
33
- state: GridState<T, C>
35
+ state: GridState<T, C>,
34
36
  ): GridListData | undefined {
35
37
  return gridListDataMap.get(state);
36
38
  }
@@ -41,7 +43,7 @@ export function getGridListData<T extends object, C extends GridCollection<T>>(
41
43
  export function createGridList<T extends object, C extends GridCollection<T> = GridCollection<T>>(
42
44
  props: Accessor<AriaGridListProps>,
43
45
  state: Accessor<GridState<T, C>>,
44
- _ref: Accessor<HTMLUListElement | null>
46
+ _ref: Accessor<HTMLElement | null>,
45
47
  ): GridListAria {
46
48
  // Generate a unique ID for the grid list
47
49
  const gridListId = props().id ?? createId();
@@ -49,6 +51,9 @@ export function createGridList<T extends object, C extends GridCollection<T> = G
49
51
  // Store grid list data for child components
50
52
  const gridListData: GridListData = {
51
53
  gridListId,
54
+ get selectionBehavior() {
55
+ return props().selectionBehavior ?? "replace";
56
+ },
52
57
  actions: {
53
58
  get onAction() {
54
59
  return props().onAction;
@@ -69,7 +74,7 @@ export function createGridList<T extends object, C extends GridCollection<T> = G
69
74
  if (p.isDisabled) return;
70
75
 
71
76
  switch (e.key) {
72
- case 'ArrowDown': {
77
+ case "ArrowDown": {
73
78
  e.preventDefault();
74
79
  if (focusedKey != null) {
75
80
  const nextKey = collection.getKeyAfter(focusedKey);
@@ -84,7 +89,7 @@ export function createGridList<T extends object, C extends GridCollection<T> = G
84
89
  }
85
90
  break;
86
91
  }
87
- case 'ArrowUp': {
92
+ case "ArrowUp": {
88
93
  e.preventDefault();
89
94
  if (focusedKey != null) {
90
95
  const prevKey = collection.getKeyBefore(focusedKey);
@@ -99,7 +104,7 @@ export function createGridList<T extends object, C extends GridCollection<T> = G
99
104
  }
100
105
  break;
101
106
  }
102
- case 'Home': {
107
+ case "Home": {
103
108
  e.preventDefault();
104
109
  const firstKey = collection.getFirstKey();
105
110
  if (firstKey != null) {
@@ -107,7 +112,7 @@ export function createGridList<T extends object, C extends GridCollection<T> = G
107
112
  }
108
113
  break;
109
114
  }
110
- case 'End': {
115
+ case "End": {
111
116
  e.preventDefault();
112
117
  const lastKey = collection.getLastKey();
113
118
  if (lastKey != null) {
@@ -115,16 +120,32 @@ export function createGridList<T extends object, C extends GridCollection<T> = G
115
120
  }
116
121
  break;
117
122
  }
118
- case 'a':
119
- case 'A': {
120
- if ((e.ctrlKey || e.metaKey) && s.selectionMode === 'multiple') {
123
+ case "a":
124
+ case "A": {
125
+ if ((e.ctrlKey || e.metaKey) && s.selectionMode === "multiple") {
121
126
  e.preventDefault();
122
127
  s.selectAll();
123
128
  }
124
129
  break;
125
130
  }
126
- case 'Escape': {
127
- if (s.selectionMode !== 'none') {
131
+ case " ":
132
+ case "Space":
133
+ case "Spacebar": {
134
+ if (focusedKey != null && s.selectionMode !== "none" && !s.isDisabled(focusedKey)) {
135
+ e.preventDefault();
136
+ s.toggleSelection(focusedKey);
137
+ }
138
+ break;
139
+ }
140
+ case "Enter": {
141
+ if (focusedKey != null && !s.isDisabled(focusedKey)) {
142
+ e.preventDefault();
143
+ p.onAction?.(focusedKey);
144
+ }
145
+ break;
146
+ }
147
+ case "Escape": {
148
+ if (s.selectionMode !== "none") {
128
149
  e.preventDefault();
129
150
  s.clearSelection();
130
151
  }
@@ -156,13 +177,13 @@ export function createGridList<T extends object, C extends GridCollection<T> = G
156
177
  const s = state();
157
178
 
158
179
  const baseProps: Record<string, unknown> = {
159
- role: 'grid',
180
+ role: "grid",
160
181
  id: gridListId,
161
- 'aria-label': p['aria-label'],
162
- 'aria-labelledby': p['aria-labelledby'],
163
- 'aria-describedby': p['aria-describedby'],
164
- 'aria-multiselectable': s.selectionMode === 'multiple' ? true : undefined,
165
- 'aria-disabled': p.isDisabled || undefined,
182
+ "aria-label": p["aria-label"],
183
+ "aria-labelledby": p["aria-labelledby"],
184
+ "aria-describedby": p["aria-describedby"],
185
+ "aria-multiselectable": s.selectionMode === "multiple" ? true : undefined,
186
+ "aria-disabled": p.isDisabled || undefined,
166
187
  tabIndex: p.isDisabled ? undefined : 0,
167
188
  onKeyDown,
168
189
  onFocus,
@@ -171,10 +192,10 @@ export function createGridList<T extends object, C extends GridCollection<T> = G
171
192
 
172
193
  // Add row count for virtualized lists
173
194
  if (p.isVirtualized) {
174
- baseProps['aria-rowcount'] = s.collection.rowCount;
195
+ baseProps["aria-rowcount"] = s.collection.rowCount;
175
196
  }
176
197
 
177
- return baseProps as JSX.HTMLAttributes<HTMLUListElement>;
198
+ return baseProps as JSX.HTMLAttributes<HTMLElement>;
178
199
  });
179
200
 
180
201
  return {
@@ -3,21 +3,26 @@
3
3
  * Based on @react-aria/gridlist/useGridListItem.
4
4
  */
5
5
 
6
- import { createMemo, createSignal, type Accessor } from 'solid-js';
7
- import type { JSX } from 'solid-js';
8
- import type { GridState, GridCollection } from '@proyecto-viviana/solid-stately';
9
- import type { AriaGridListItemProps, GridListItemAria } from './types';
10
- import { getGridListData } from './createGridList';
6
+ import { createMemo, createSignal, type Accessor } from "solid-js";
7
+ import type { JSX } from "solid-js";
8
+ import type { GridState, GridCollection } from "@proyecto-viviana/solid-stately";
9
+ import type { AriaGridListItemProps, GridListItemAria } from "./types";
10
+ import { getGridListData } from "./createGridList";
11
11
 
12
12
  /**
13
13
  * Creates accessibility props for a grid list item.
14
14
  */
15
- export function createGridListItem<T extends object, C extends GridCollection<T> = GridCollection<T>>(
15
+ export function createGridListItem<
16
+ T extends object,
17
+ C extends GridCollection<T> = GridCollection<T>,
18
+ >(
16
19
  props: Accessor<AriaGridListItemProps>,
17
20
  state: Accessor<GridState<T, C>>,
18
- _ref: Accessor<HTMLLIElement | null>
21
+ _ref: Accessor<HTMLElement | null>,
19
22
  ): GridListItemAria {
20
23
  const [isPressed, setIsPressed] = createSignal(false);
24
+ let isPointerPressed = false;
25
+ let ignoreNextClick = false;
21
26
 
22
27
  const isSelected = createMemo(() => {
23
28
  const s = state();
@@ -37,8 +42,7 @@ export function createGridListItem<T extends object, C extends GridCollection<T>
37
42
  return s.focusedKey === p.node.key;
38
43
  });
39
44
 
40
- // Handle click/press for selection and actions
41
- const onClick = (e: MouseEvent) => {
45
+ const handleActivation = (e: MouseEvent | PointerEvent) => {
42
46
  const s = state();
43
47
  const p = props();
44
48
 
@@ -49,14 +53,14 @@ export function createGridListItem<T extends object, C extends GridCollection<T>
49
53
  const onAction = gridListData?.actions.onAction;
50
54
 
51
55
  // Handle selection
52
- if (s.selectionMode !== 'none') {
53
- if (e.shiftKey && s.selectionMode === 'multiple') {
56
+ if (s.selectionMode !== "none") {
57
+ if (e.shiftKey && s.selectionMode === "multiple") {
54
58
  s.extendSelection(p.node.key);
55
- } else if (e.ctrlKey || e.metaKey) {
59
+ } else if (p.selectionBehavior === "toggle" || e.ctrlKey || e.metaKey) {
56
60
  s.toggleSelection(p.node.key);
57
61
  } else {
58
62
  // Replace selection or toggle if already selected
59
- if (isSelected() && s.selectedKeys !== 'all') {
63
+ if (isSelected() && s.selectedKeys !== "all") {
60
64
  const selectedKeys = s.selectedKeys as Set<unknown>;
61
65
  if (selectedKeys.size === 1) {
62
66
  // Single selection, trigger action
@@ -84,13 +88,23 @@ export function createGridListItem<T extends object, C extends GridCollection<T>
84
88
  }
85
89
  };
86
90
 
91
+ // Handle click/press for selection and actions.
92
+ const onClick = (e: MouseEvent) => {
93
+ if (ignoreNextClick) {
94
+ ignoreNextClick = false;
95
+ return;
96
+ }
97
+
98
+ handleActivation(e);
99
+ };
100
+
87
101
  const onKeyDown = (e: KeyboardEvent) => {
88
102
  const s = state();
89
103
  const p = props();
90
104
 
91
105
  if (isDisabled()) return;
92
106
 
93
- if (e.key === 'Enter') {
107
+ if (e.key === "Enter") {
94
108
  // Get grid list metadata for actions
95
109
  const gridListData = getGridListData(s);
96
110
  const onAction = gridListData?.actions.onAction;
@@ -106,9 +120,9 @@ export function createGridListItem<T extends object, C extends GridCollection<T>
106
120
  p.onAction();
107
121
  }
108
122
  }
109
- } else if (e.key === ' ') {
123
+ } else if (e.key === " " || e.key === "Space" || e.key === "Spacebar") {
110
124
  // Space toggles selection
111
- if (s.selectionMode !== 'none') {
125
+ if (s.selectionMode !== "none") {
112
126
  e.preventDefault();
113
127
  s.toggleSelection(p.node.key);
114
128
  }
@@ -122,10 +136,39 @@ export function createGridListItem<T extends object, C extends GridCollection<T>
122
136
  };
123
137
 
124
138
  const onPointerDown = () => {
139
+ if (isDisabled()) return;
140
+ isPointerPressed = true;
125
141
  setIsPressed(true);
126
142
  };
127
143
 
128
- const onPointerUp = () => {
144
+ const onPointerUp = (e: PointerEvent) => {
145
+ const wasPointerPressed = isPointerPressed;
146
+ isPointerPressed = false;
147
+ setIsPressed(false);
148
+
149
+ if (!wasPointerPressed || isDisabled()) return;
150
+
151
+ const currentTarget = e.currentTarget;
152
+ const target = e.target;
153
+ if (
154
+ currentTarget instanceof HTMLElement &&
155
+ target instanceof Node &&
156
+ !currentTarget.contains(target)
157
+ ) {
158
+ return;
159
+ }
160
+
161
+ ignoreNextClick = true;
162
+ handleActivation(e);
163
+ };
164
+
165
+ const onPointerCancel = () => {
166
+ isPointerPressed = false;
167
+ setIsPressed(false);
168
+ };
169
+
170
+ const onPointerLeave = () => {
171
+ isPointerPressed = false;
129
172
  setIsPressed(false);
130
173
  };
131
174
 
@@ -135,28 +178,30 @@ export function createGridListItem<T extends object, C extends GridCollection<T>
135
178
  const node = p.node;
136
179
 
137
180
  const baseProps: Record<string, unknown> = {
138
- role: 'row',
139
- 'aria-selected': s.selectionMode !== 'none' ? isSelected() : undefined,
140
- 'aria-disabled': isDisabled() || undefined,
181
+ role: "row",
182
+ "aria-selected": s.selectionMode !== "none" ? isSelected() : undefined,
183
+ "aria-disabled": isDisabled() || undefined,
141
184
  tabIndex: isFocused() ? 0 : -1,
142
185
  onClick,
143
186
  onKeyDown,
144
187
  onFocus,
145
188
  onPointerDown,
146
189
  onPointerUp,
190
+ onPointerCancel,
191
+ onPointerLeave,
147
192
  };
148
193
 
149
194
  // Add aria-rowindex for virtualized lists
150
195
  if (p.isVirtualized && node.rowIndex != null) {
151
- baseProps['aria-rowindex'] = node.rowIndex + 1; // 1-based
196
+ baseProps["aria-rowindex"] = node.rowIndex + 1; // 1-based
152
197
  }
153
198
 
154
- return baseProps as JSX.HTMLAttributes<HTMLLIElement>;
199
+ return baseProps as JSX.HTMLAttributes<HTMLElement>;
155
200
  });
156
201
 
157
202
  const gridCellProps = createMemo(() => {
158
203
  return {
159
- role: 'gridcell',
204
+ role: "gridcell",
160
205
  } as JSX.HTMLAttributes<HTMLDivElement>;
161
206
  });
162
207
 
@@ -3,18 +3,21 @@
3
3
  * Based on @react-aria/gridlist.
4
4
  */
5
5
 
6
- import { createMemo, type Accessor } from 'solid-js';
7
- import type { JSX } from 'solid-js';
8
- import { createId } from '@proyecto-viviana/solid-stately';
9
- import type { GridState, GridCollection } from '@proyecto-viviana/solid-stately';
10
- import type { AriaGridListSelectionCheckboxProps, GridListSelectionCheckboxAria } from './types';
6
+ import { createMemo, type Accessor } from "solid-js";
7
+ import type { JSX } from "solid-js";
8
+ import { createId } from "@proyecto-viviana/solid-stately";
9
+ import type { GridState, GridCollection } from "@proyecto-viviana/solid-stately";
10
+ import type { AriaGridListSelectionCheckboxProps, GridListSelectionCheckboxAria } from "./types";
11
11
 
12
12
  /**
13
13
  * Creates accessibility props for a grid list item selection checkbox.
14
14
  */
15
- export function createGridListSelectionCheckbox<T extends object, C extends GridCollection<T> = GridCollection<T>>(
15
+ export function createGridListSelectionCheckbox<
16
+ T extends object,
17
+ C extends GridCollection<T> = GridCollection<T>,
18
+ >(
16
19
  props: Accessor<AriaGridListSelectionCheckboxProps>,
17
- state: Accessor<GridState<T, C>>
20
+ state: Accessor<GridState<T, C>>,
18
21
  ): GridListSelectionCheckboxAria {
19
22
  const checkboxId = createId();
20
23
 
@@ -41,11 +44,11 @@ export function createGridListSelectionCheckbox<T extends object, C extends Grid
41
44
  const checkboxProps = createMemo(() => {
42
45
  const baseProps: Record<string, unknown> = {
43
46
  id: checkboxId,
44
- type: 'checkbox',
47
+ type: "checkbox",
45
48
  checked: isSelected(),
46
49
  disabled: isDisabled(),
47
50
  onChange,
48
- 'aria-label': 'Select',
51
+ "aria-label": "Select",
49
52
  };
50
53
 
51
54
  return baseProps as JSX.InputHTMLAttributes<HTMLInputElement>;
@@ -2,9 +2,9 @@
2
2
  * GridList ARIA hooks for solidaria.
3
3
  */
4
4
 
5
- export { createGridList, getGridListData } from './createGridList';
6
- export { createGridListItem } from './createGridListItem';
7
- export { createGridListSelectionCheckbox } from './createGridListSelectionCheckbox';
5
+ export { createGridList, getGridListData } from "./createGridList";
6
+ export { createGridListItem } from "./createGridListItem";
7
+ export { createGridListSelectionCheckbox } from "./createGridListSelectionCheckbox";
8
8
 
9
9
  export type {
10
10
  AriaGridListProps,
@@ -13,4 +13,4 @@ export type {
13
13
  GridListItemAria,
14
14
  AriaGridListSelectionCheckboxProps,
15
15
  GridListSelectionCheckboxAria,
16
- } from './types';
16
+ } from "./types";
@@ -3,8 +3,8 @@
3
3
  * Based on @react-aria/gridlist types.
4
4
  */
5
5
 
6
- import type { JSX } from 'solid-js';
7
- import type { Key, GridNode } from '@proyecto-viviana/solid-stately';
6
+ import type { JSX } from "solid-js";
7
+ import type { Key, GridNode } from "@proyecto-viviana/solid-stately";
8
8
 
9
9
  /**
10
10
  * Props for the createGridList hook.
@@ -13,17 +13,19 @@ export interface AriaGridListProps {
13
13
  /** ID for the grid list element. */
14
14
  id?: string;
15
15
  /** ARIA label for the grid list. */
16
- 'aria-label'?: string;
16
+ "aria-label"?: string;
17
17
  /** ARIA labelledby for the grid list. */
18
- 'aria-labelledby'?: string;
18
+ "aria-labelledby"?: string;
19
19
  /** ARIA describedby for the grid list. */
20
- 'aria-describedby'?: string;
20
+ "aria-describedby"?: string;
21
21
  /** Whether the grid list uses virtual scrolling. */
22
22
  isVirtualized?: boolean;
23
23
  /** Handler for item actions. */
24
24
  onAction?: (key: Key) => void;
25
25
  /** Whether selection should occur on press up. */
26
26
  shouldSelectOnPressUp?: boolean;
27
+ /** How selection should behave when pressing an item. */
28
+ selectionBehavior?: "replace" | "toggle";
27
29
  /** Whether the grid list is disabled. */
28
30
  isDisabled?: boolean;
29
31
  }
@@ -33,7 +35,7 @@ export interface AriaGridListProps {
33
35
  */
34
36
  export interface GridListAria {
35
37
  /** Props to spread on the grid list element. */
36
- gridProps: JSX.HTMLAttributes<HTMLUListElement>;
38
+ gridProps: JSX.HTMLAttributes<HTMLElement>;
37
39
  }
38
40
 
39
41
  /**
@@ -44,6 +46,8 @@ export interface AriaGridListItemProps {
44
46
  node: GridNode<unknown>;
45
47
  /** Whether the grid list is virtualized. */
46
48
  isVirtualized?: boolean;
49
+ /** How selection should behave when pressing an item. */
50
+ selectionBehavior?: "replace" | "toggle";
47
51
  /** Handler for item action. */
48
52
  onAction?: () => void;
49
53
  }
@@ -53,7 +57,7 @@ export interface AriaGridListItemProps {
53
57
  */
54
58
  export interface GridListItemAria {
55
59
  /** Props to spread on the item element. */
56
- rowProps: JSX.HTMLAttributes<HTMLLIElement>;
60
+ rowProps: JSX.HTMLAttributes<HTMLElement>;
57
61
  /** Props to spread on the grid cell wrapper. */
58
62
  gridCellProps: JSX.HTMLAttributes<HTMLDivElement>;
59
63
  /** Whether the item is selected. */
@@ -1,79 +1,66 @@
1
- /**
2
- * createCollator hook for solidaria
3
- *
4
- * Provides localized string comparison/collation with caching.
5
- *
6
- * Port of @react-aria/i18n useCollator.
7
- */
8
-
9
- import { createMemo } from 'solid-js';
10
- import { useLocale } from './locale';
11
- import { createCacheKey } from './utils';
12
-
13
- // ============================================
14
- // CACHE
15
- // ============================================
16
-
17
- const collatorCache = new Map<string, Intl.Collator>();
18
-
19
- /**
20
- * Gets or creates a cached collator.
21
- */
22
- function getCachedCollator(
23
- locale: string,
24
- options?: Intl.CollatorOptions
25
- ): Intl.Collator {
26
- const cacheKey = createCacheKey(locale, options as Record<string, unknown>);
27
-
28
- if (collatorCache.has(cacheKey)) {
29
- return collatorCache.get(cacheKey)!;
30
- }
31
-
32
- const collator = new Intl.Collator(locale, options);
33
- collatorCache.set(cacheKey, collator);
34
- return collator;
35
- }
36
-
37
- // ============================================
38
- // HOOK
39
- // ============================================
40
-
41
- /**
42
- * Provides localized string collation for the current locale.
43
- * Useful for sorting strings according to locale-specific rules.
44
- *
45
- * @example
46
- * ```tsx
47
- * function SortedList(props: { items: string[] }) {
48
- * const collator = createCollator();
49
- *
50
- * const sortedItems = () =>
51
- * [...props.items].sort((a, b) => collator().compare(a, b));
52
- *
53
- * return (
54
- * <ul>
55
- * <For each={sortedItems()}>
56
- * {(item) => <li>{item}</li>}
57
- * </For>
58
- * </ul>
59
- * );
60
- * }
61
- * ```
62
- *
63
- * @example
64
- * ```tsx
65
- * // Case-insensitive sorting
66
- * const collator = createCollator({ sensitivity: 'base' });
67
- *
68
- * // Numeric sorting
69
- * const numericCollator = createCollator({ numeric: true });
70
- * // ['a1', 'a10', 'a2'].sort(numericCollator().compare) -> ['a1', 'a2', 'a10']
71
- * ```
72
- */
73
- export function createCollator(
74
- options?: Intl.CollatorOptions
75
- ): () => Intl.Collator {
76
- const locale = useLocale();
77
-
78
- return createMemo(() => getCachedCollator(locale().locale, options));
79
- }
1
+ /**
2
+ * createCollator hook for solidaria
3
+ *
4
+ * Provides localized string comparison/collation with caching.
5
+ *
6
+ * Port of @react-aria/i18n useCollator.
7
+ */
8
+
9
+ import { createMemo } from "solid-js";
10
+ import { useLocale } from "./locale";
11
+ import { createCacheKey } from "./utils";
12
+
13
+ const collatorCache = new Map<string, Intl.Collator>();
14
+
15
+ /**
16
+ * Gets or creates a cached collator.
17
+ */
18
+ function getCachedCollator(locale: string, options?: Intl.CollatorOptions): Intl.Collator {
19
+ const cacheKey = createCacheKey(locale, options as Record<string, unknown>);
20
+
21
+ if (collatorCache.has(cacheKey)) {
22
+ return collatorCache.get(cacheKey)!;
23
+ }
24
+
25
+ const collator = new Intl.Collator(locale, options);
26
+ collatorCache.set(cacheKey, collator);
27
+ return collator;
28
+ }
29
+
30
+ /**
31
+ * Provides localized string collation for the current locale.
32
+ * Useful for sorting strings according to locale-specific rules.
33
+ *
34
+ * @example
35
+ * ```tsx
36
+ * function SortedList(props: { items: string[] }) {
37
+ * const collator = createCollator();
38
+ *
39
+ * const sortedItems = () =>
40
+ * [...props.items].sort((a, b) => collator().compare(a, b));
41
+ *
42
+ * return (
43
+ * <ul>
44
+ * <For each={sortedItems()}>
45
+ * {(item) => <li>{item}</li>}
46
+ * </For>
47
+ * </ul>
48
+ * );
49
+ * }
50
+ * ```
51
+ *
52
+ * @example
53
+ * ```tsx
54
+ * // Case-insensitive sorting
55
+ * const collator = createCollator({ sensitivity: 'base' });
56
+ *
57
+ * // Numeric sorting
58
+ * const numericCollator = createCollator({ numeric: true });
59
+ * // ['a1', 'a10', 'a2'].sort(numericCollator().compare) -> ['a1', 'a2', 'a10']
60
+ * ```
61
+ */
62
+ export function createCollator(options?: Intl.CollatorOptions): () => Intl.Collator {
63
+ const locale = useLocale();
64
+
65
+ return createMemo(() => getCachedCollator(locale().locale, options));
66
+ }