@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
@@ -3,23 +3,25 @@
3
3
  * Based on @react-aria/numberfield useNumberField.
4
4
  */
5
5
 
6
- import { type JSX, createMemo } from 'solid-js';
7
- import { createLabel } from '../label/createLabel';
8
- import { filterDOMProps } from '../utils/filterDOMProps';
9
- import { mergeProps } from '../utils/mergeProps';
10
- import { createId } from '../ssr';
11
- import { access, type MaybeAccessor } from '../utils/reactivity';
12
- import type { NumberFieldState } from '@proyecto-viviana/solid-stately';
6
+ import { type JSX, createMemo } from "solid-js";
7
+ import { createLabel } from "../label/createLabel";
8
+ import { filterDOMProps } from "../utils/filterDOMProps";
9
+ import { mergeProps } from "../utils/mergeProps";
10
+ import { createId } from "../ssr";
11
+ import { access, type MaybeAccessor } from "../utils/reactivity";
12
+ import type { NumberFieldState } from "@proyecto-viviana/solid-stately";
13
+ import type { AriaButtonProps } from "../button/types";
14
+ import type { PressEvent } from "../interactions";
13
15
 
14
16
  export interface AriaNumberFieldProps {
15
17
  /** A label for the number field. */
16
18
  label?: JSX.Element;
17
19
  /** An accessible label for the number field. */
18
- 'aria-label'?: string;
20
+ "aria-label"?: string;
19
21
  /** The element ID that labels the number field. */
20
- 'aria-labelledby'?: string;
22
+ "aria-labelledby"?: string;
21
23
  /** The element ID that describes the number field. */
22
- 'aria-describedby'?: string;
24
+ "aria-describedby"?: string;
23
25
  /** Whether the number field is disabled. */
24
26
  isDisabled?: boolean;
25
27
  /** Whether the number field is read-only. */
@@ -66,9 +68,9 @@ export interface NumberFieldAria {
66
68
  /** Props for the input element. */
67
69
  inputProps: JSX.InputHTMLAttributes<HTMLInputElement>;
68
70
  /** Props for the increment button. */
69
- incrementButtonProps: JSX.ButtonHTMLAttributes<HTMLButtonElement>;
71
+ incrementButtonProps: AriaButtonProps;
70
72
  /** Props for the decrement button. */
71
- decrementButtonProps: JSX.ButtonHTMLAttributes<HTMLButtonElement>;
73
+ decrementButtonProps: AriaButtonProps;
72
74
  /** Props for the description element. */
73
75
  descriptionProps: JSX.HTMLAttributes<HTMLElement>;
74
76
  /** Props for the error message element. */
@@ -81,7 +83,7 @@ export interface NumberFieldAria {
81
83
  export function createNumberField(
82
84
  props: MaybeAccessor<AriaNumberFieldProps>,
83
85
  state: NumberFieldState,
84
- inputRef?: () => HTMLInputElement | null
86
+ inputRef?: () => HTMLInputElement | null,
85
87
  ): NumberFieldAria {
86
88
  const getProps = () => access(props);
87
89
  const id = createId(getProps().id);
@@ -101,26 +103,26 @@ export function createNumberField(
101
103
  get label() {
102
104
  return getProps().label;
103
105
  },
104
- get 'aria-label'() {
105
- return getProps()['aria-label'];
106
+ get "aria-label"() {
107
+ return getProps()["aria-label"];
106
108
  },
107
- get 'aria-labelledby'() {
108
- return getProps()['aria-labelledby'];
109
+ get "aria-labelledby"() {
110
+ return getProps()["aria-labelledby"];
109
111
  },
110
- labelElementType: 'span',
112
+ labelElementType: "span",
111
113
  });
112
114
 
113
115
  // Get the label text for button aria-labels
114
116
  const getLabelText = (): string => {
115
117
  const p = getProps();
116
- if (p['aria-label']) return p['aria-label'];
117
- if (typeof p.label === 'string') return p.label;
118
- return 'value';
118
+ if (p["aria-label"]) return p["aria-label"];
119
+ if (typeof p.label === "string") return p.label;
120
+ return "value";
119
121
  };
120
122
 
121
123
  // Filter DOM props
122
124
  const domProps = createMemo(() =>
123
- filterDOMProps(getProps() as unknown as Record<string, unknown>, { labelable: true })
125
+ filterDOMProps(getProps() as unknown as Record<string, unknown>, { labelable: true }),
124
126
  );
125
127
 
126
128
  // Handle input change
@@ -154,31 +156,31 @@ export function createNumberField(
154
156
  }
155
157
 
156
158
  switch (e.key) {
157
- case 'ArrowUp':
159
+ case "ArrowUp":
158
160
  e.preventDefault();
159
161
  state.increment();
160
162
  break;
161
- case 'ArrowDown':
163
+ case "ArrowDown":
162
164
  e.preventDefault();
163
165
  state.decrement();
164
166
  break;
165
- case 'PageUp':
167
+ case "PageUp":
166
168
  e.preventDefault();
167
169
  state.incrementToMax();
168
170
  break;
169
- case 'PageDown':
171
+ case "PageDown":
170
172
  e.preventDefault();
171
173
  state.decrementToMin();
172
174
  break;
173
- case 'Home':
175
+ case "Home":
174
176
  e.preventDefault();
175
177
  state.decrementToMin();
176
178
  break;
177
- case 'End':
179
+ case "End":
178
180
  e.preventDefault();
179
181
  state.incrementToMax();
180
182
  break;
181
- case 'Enter':
183
+ case "Enter":
182
184
  state.commit();
183
185
  break;
184
186
  }
@@ -190,28 +192,81 @@ export function createNumberField(
190
192
  getProps().onKeyUp?.(e);
191
193
  };
192
194
 
193
- // Handle increment button
194
- const onIncrementPress = () => {
195
- state.increment();
196
- // Return focus to input
197
- inputRef?.()?.focus();
195
+ const onButtonPressStart = (e: PressEvent) => {
196
+ const input = inputRef?.();
197
+
198
+ // Keep existing input focus in place. This avoids hiding software keyboards
199
+ // and prevents a blur/refocus flicker when mouse pressing the steppers.
200
+ if (input && input.ownerDocument.activeElement === input) {
201
+ return;
202
+ }
203
+
204
+ if (e.pointerType === "mouse") {
205
+ input?.focus();
206
+ } else if (e.target instanceof HTMLElement) {
207
+ e.target.focus();
208
+ }
209
+ };
210
+
211
+ let incrementTouchPressUp = false;
212
+ let decrementTouchPressUp = false;
213
+
214
+ const onIncrementPressStart = (e: PressEvent) => {
215
+ if (e.pointerType !== "touch") {
216
+ state.increment();
217
+ } else {
218
+ incrementTouchPressUp = false;
219
+ }
220
+
221
+ onButtonPressStart(e);
222
+ };
223
+
224
+ const onIncrementPressUp = (e: PressEvent) => {
225
+ if (e.pointerType === "touch") {
226
+ incrementTouchPressUp = true;
227
+ }
228
+ };
229
+
230
+ const onIncrementPressEnd = (e: PressEvent) => {
231
+ if (e.pointerType === "touch" && incrementTouchPressUp) {
232
+ state.increment();
233
+ }
234
+
235
+ incrementTouchPressUp = false;
236
+ };
237
+
238
+ const onDecrementPressStart = (e: PressEvent) => {
239
+ if (e.pointerType !== "touch") {
240
+ state.decrement();
241
+ } else {
242
+ decrementTouchPressUp = false;
243
+ }
244
+
245
+ onButtonPressStart(e);
246
+ };
247
+
248
+ const onDecrementPressUp = (e: PressEvent) => {
249
+ if (e.pointerType === "touch") {
250
+ decrementTouchPressUp = true;
251
+ }
198
252
  };
199
253
 
200
- // Handle decrement button
201
- const onDecrementPress = () => {
202
- state.decrement();
203
- // Return focus to input
204
- inputRef?.()?.focus();
254
+ const onDecrementPressEnd = (e: PressEvent) => {
255
+ if (e.pointerType === "touch" && decrementTouchPressUp) {
256
+ state.decrement();
257
+ }
258
+
259
+ decrementTouchPressUp = false;
205
260
  };
206
261
 
207
262
  // Build aria-describedby
208
263
  const getAriaDescribedBy = () => {
209
264
  const p = getProps();
210
265
  const parts: string[] = [];
211
- if (p['aria-describedby']) parts.push(p['aria-describedby']);
266
+ if (p["aria-describedby"]) parts.push(p["aria-describedby"]);
212
267
  if (p.description) parts.push(descriptionId);
213
268
  if (p.isInvalid && p.errorMessage) parts.push(errorMessageId);
214
- return parts.length > 0 ? parts.join(' ') : undefined;
269
+ return parts.length > 0 ? parts.join(" ") : undefined;
215
270
  };
216
271
 
217
272
  return {
@@ -220,9 +275,9 @@ export function createNumberField(
220
275
  },
221
276
  get groupProps() {
222
277
  return {
223
- role: 'group',
224
- 'aria-disabled': getProps().isDisabled || undefined,
225
- 'aria-invalid': getProps().isInvalid || undefined,
278
+ role: "group",
279
+ "aria-disabled": getProps().isDisabled || undefined,
280
+ "aria-invalid": getProps().isInvalid || undefined,
226
281
  } as JSX.HTMLAttributes<HTMLElement>;
227
282
  },
228
283
  get inputProps() {
@@ -235,22 +290,24 @@ export function createNumberField(
235
290
  fieldProps as Record<string, unknown>,
236
291
  {
237
292
  id: inputId,
238
- type: 'text',
239
- inputMode: 'decimal' as const,
240
- autoComplete: 'off',
241
- autoCorrect: 'off',
293
+ type: "text",
294
+ inputMode: "decimal" as const,
295
+ autoComplete: "off",
296
+ autoCorrect: "off",
242
297
  spellcheck: false,
243
- role: 'spinbutton',
244
- 'aria-valuenow': isNaN(state.numberValue()) ? undefined : state.numberValue(),
245
- 'aria-valuemin': state.minValue(),
246
- 'aria-valuemax': state.maxValue(),
247
- 'aria-valuetext': isNaN(state.numberValue()) ? undefined : state.inputValue(),
248
- 'aria-invalid': p.isInvalid || undefined,
249
- 'aria-required': p.isRequired || undefined,
250
- 'aria-describedby': getAriaDescribedBy(),
298
+ role: "spinbutton",
299
+ "aria-valuenow": isNaN(state.numberValue()) ? undefined : state.numberValue(),
300
+ "aria-valuemin": state.minValue(),
301
+ "aria-valuemax": state.maxValue(),
302
+ "aria-valuetext": isNaN(state.numberValue()) ? undefined : state.inputValue(),
303
+ "aria-invalid": p.isInvalid || undefined,
304
+ "aria-required": p.isRequired || undefined,
305
+ "aria-describedby": getAriaDescribedBy(),
251
306
  disabled: isDisabled || undefined,
252
307
  readOnly: isReadOnly || undefined,
308
+ required: p.isRequired || undefined,
253
309
  value: state.inputValue(),
310
+ onInput: onInputChange,
254
311
  onChange: onInputChange,
255
312
  onFocus: onInputFocus,
256
313
  onBlur: onInputBlur,
@@ -262,40 +319,40 @@ export function createNumberField(
262
319
  name: p.name,
263
320
  form: p.form,
264
321
  autoFocus: p.autoFocus,
265
- } as Record<string, unknown>
322
+ } as Record<string, unknown>,
266
323
  ) as JSX.InputHTMLAttributes<HTMLInputElement>;
267
324
  },
268
325
  get incrementButtonProps() {
269
- const p = getProps();
270
- const isDisabled = p.isDisabled ?? state.isDisabled();
271
- const canIncrement = state.canIncrement();
272
-
273
326
  return {
274
327
  id: incrementId,
275
- type: 'button' as const,
276
- tabIndex: -1, // Exclude from tab order
277
- 'aria-label': `Increase ${getLabelText()}`,
278
- 'aria-controls': inputId,
279
- disabled: isDisabled || !canIncrement,
280
- onClick: onIncrementPress,
281
- onMouseDown: (e: MouseEvent) => e.preventDefault(), // Prevent focus
282
- } as JSX.ButtonHTMLAttributes<HTMLButtonElement>;
328
+ "aria-label": `Increase ${getLabelText()}`,
329
+ "aria-controls": inputId,
330
+ excludeFromTabOrder: true,
331
+ preventFocusOnPress: true,
332
+ allowFocusWhenDisabled: true,
333
+ get isDisabled() {
334
+ return !state.canIncrement();
335
+ },
336
+ onPressStart: onIncrementPressStart,
337
+ onPressUp: onIncrementPressUp,
338
+ onPressEnd: onIncrementPressEnd,
339
+ } as AriaButtonProps;
283
340
  },
284
341
  get decrementButtonProps() {
285
- const p = getProps();
286
- const isDisabled = p.isDisabled ?? state.isDisabled();
287
- const canDecrement = state.canDecrement();
288
-
289
342
  return {
290
343
  id: decrementId,
291
- type: 'button' as const,
292
- tabIndex: -1, // Exclude from tab order
293
- 'aria-label': `Decrease ${getLabelText()}`,
294
- 'aria-controls': inputId,
295
- disabled: isDisabled || !canDecrement,
296
- onClick: onDecrementPress,
297
- onMouseDown: (e: MouseEvent) => e.preventDefault(), // Prevent focus
298
- } as JSX.ButtonHTMLAttributes<HTMLButtonElement>;
344
+ "aria-label": `Decrease ${getLabelText()}`,
345
+ "aria-controls": inputId,
346
+ excludeFromTabOrder: true,
347
+ preventFocusOnPress: true,
348
+ allowFocusWhenDisabled: true,
349
+ get isDisabled() {
350
+ return !state.canDecrement();
351
+ },
352
+ onPressStart: onDecrementPressStart,
353
+ onPressUp: onDecrementPressUp,
354
+ onPressEnd: onDecrementPressEnd,
355
+ } as AriaButtonProps;
299
356
  },
300
357
  get descriptionProps() {
301
358
  return {
@@ -2,4 +2,4 @@ export {
2
2
  createNumberField,
3
3
  type AriaNumberFieldProps,
4
4
  type NumberFieldAria,
5
- } from './createNumberField';
5
+ } from "./createNumberField";
@@ -3,9 +3,9 @@
3
3
  * Based on @react-aria/overlays ariaHideOutside.
4
4
  */
5
5
 
6
- import { getOwnerWindow } from '../utils';
6
+ import { getOwnerWindow } from "../utils";
7
7
 
8
- const supportsInert = typeof HTMLElement !== 'undefined' && 'inert' in HTMLElement.prototype;
8
+ const supportsInert = typeof HTMLElement !== "undefined" && "inert" in HTMLElement.prototype;
9
9
 
10
10
  export interface AriaHideOutsideOptions {
11
11
  /** The root element to start hiding from. */
@@ -37,7 +37,7 @@ const observerStack: ObserverWrapper[] = [];
37
37
  */
38
38
  export function ariaHideOutside(
39
39
  targets: Element[],
40
- options?: AriaHideOutsideOptions | Element
40
+ options?: AriaHideOutsideOptions | Element,
41
41
  ): () => void {
42
42
  const windowObj = getOwnerWindow(targets?.[0]);
43
43
  const opts = options instanceof windowObj.Element ? { root: options } : options;
@@ -49,16 +49,16 @@ export function ariaHideOutside(
49
49
  const getHidden = (element: Element): boolean => {
50
50
  return shouldUseInert && element instanceof windowObj.HTMLElement
51
51
  ? element.inert
52
- : element.getAttribute('aria-hidden') === 'true';
52
+ : element.getAttribute("aria-hidden") === "true";
53
53
  };
54
54
 
55
55
  const setHidden = (element: Element, hidden: boolean): void => {
56
56
  if (shouldUseInert && element instanceof windowObj.HTMLElement) {
57
57
  element.inert = hidden;
58
58
  } else if (hidden) {
59
- element.setAttribute('aria-hidden', 'true');
59
+ element.setAttribute("aria-hidden", "true");
60
60
  } else {
61
- element.removeAttribute('aria-hidden');
61
+ element.removeAttribute("aria-hidden");
62
62
  if (element instanceof windowObj.HTMLElement) {
63
63
  // We only ever call setHidden with hidden = false when the nodeCount is 1 aka
64
64
  // we are trying to make the element visible to screen readers again, so remove inert as well
@@ -86,7 +86,9 @@ export function ariaHideOutside(
86
86
 
87
87
  const walk = (walkRoot: Element): void => {
88
88
  // Keep live announcer and top layer elements (e.g. toasts) visible.
89
- for (const element of walkRoot.querySelectorAll('[data-live-announcer], [data-solidaria-top-layer]')) {
89
+ for (const element of walkRoot.querySelectorAll(
90
+ "[data-live-announcer], [data-solidaria-top-layer]",
91
+ )) {
90
92
  visibleNodes.add(element);
91
93
  }
92
94
 
@@ -98,7 +100,9 @@ export function ariaHideOutside(
98
100
  if (
99
101
  hiddenNodes.has(node) ||
100
102
  visibleNodes.has(node) ||
101
- (node.parentElement && hiddenNodes.has(node.parentElement) && node.parentElement.getAttribute('role') !== 'row')
103
+ (node.parentElement &&
104
+ hiddenNodes.has(node.parentElement) &&
105
+ node.parentElement.getAttribute("role") !== "row")
102
106
  ) {
103
107
  return NodeFilter.FILTER_REJECT;
104
108
  }
@@ -140,7 +144,7 @@ export function ariaHideOutside(
140
144
 
141
145
  const observer = new MutationObserver((changes) => {
142
146
  for (const change of changes) {
143
- if (change.type !== 'childList') {
147
+ if (change.type !== "childList") {
144
148
  continue;
145
149
  }
146
150
 
@@ -150,7 +154,7 @@ export function ariaHideOutside(
150
154
  for (const node of change.addedNodes) {
151
155
  if (
152
156
  (node instanceof HTMLElement || node instanceof SVGElement) &&
153
- (node.dataset.liveAnnouncer === 'true' || node.dataset.solidariaTopLayer === 'true')
157
+ (node.dataset.liveAnnouncer === "true" || node.dataset.solidariaTopLayer === "true")
154
158
  ) {
155
159
  visibleNodes.add(node);
156
160
  } else if (node instanceof Element) {
@@ -3,8 +3,8 @@
3
3
  * Based on @react-aria/interactions useInteractOutside.
4
4
  */
5
5
 
6
- import { createEffect, onCleanup } from 'solid-js';
7
- import { getOwnerDocument } from '../utils';
6
+ import { createEffect, onCleanup } from "solid-js";
7
+ import { getOwnerDocument } from "../utils";
8
8
 
9
9
  export interface InteractOutsideProps {
10
10
  /** Reference to the element to detect interactions outside of. */
@@ -51,7 +51,7 @@ export function createInteractOutside(props: InteractOutsideProps): void {
51
51
  };
52
52
 
53
53
  // Use pointer events if available. Otherwise, fall back to mouse and touch events.
54
- if (typeof PointerEvent !== 'undefined') {
54
+ if (typeof PointerEvent !== "undefined") {
55
55
  const onClick = (e: PointerEvent) => {
56
56
  if (isPointerDown && isValidEvent(e, ref)) {
57
57
  triggerInteractOutside(e);
@@ -61,12 +61,12 @@ export function createInteractOutside(props: InteractOutsideProps): void {
61
61
 
62
62
  // Use click instead of pointerup to avoid Android Chrome issue
63
63
  // https://issues.chromium.org/issues/40732224
64
- documentObject.addEventListener('pointerdown', onPointerDown as EventListener, true);
65
- documentObject.addEventListener('click', onClick as EventListener, true);
64
+ documentObject.addEventListener("pointerdown", onPointerDown as EventListener, true);
65
+ documentObject.addEventListener("click", onClick as EventListener, true);
66
66
 
67
67
  onCleanup(() => {
68
- documentObject.removeEventListener('pointerdown', onPointerDown as EventListener, true);
69
- documentObject.removeEventListener('click', onClick as EventListener, true);
68
+ documentObject.removeEventListener("pointerdown", onPointerDown as EventListener, true);
69
+ documentObject.removeEventListener("click", onClick as EventListener, true);
70
70
  });
71
71
  } else {
72
72
  // Fallback for environments without PointerEvent (mainly tests)
@@ -105,24 +105,27 @@ export function createInteractOutside(props: InteractOutsideProps): void {
105
105
  }
106
106
  };
107
107
 
108
- documentObject.addEventListener('mousedown', onMouseDown as EventListener, true);
109
- documentObject.addEventListener('mouseup', onMouseUp as EventListener, true);
110
- documentObject.addEventListener('touchstart', onTouchStart as EventListener, true);
111
- documentObject.addEventListener('touchend', onTouchEnd as EventListener, true);
108
+ documentObject.addEventListener("mousedown", onMouseDown as EventListener, true);
109
+ documentObject.addEventListener("mouseup", onMouseUp as EventListener, true);
110
+ documentObject.addEventListener("touchstart", onTouchStart as EventListener, true);
111
+ documentObject.addEventListener("touchend", onTouchEnd as EventListener, true);
112
112
 
113
113
  onCleanup(() => {
114
- documentObject.removeEventListener('mousedown', onMouseDown as EventListener, true);
115
- documentObject.removeEventListener('mouseup', onMouseUp as EventListener, true);
116
- documentObject.removeEventListener('touchstart', onTouchStart as EventListener, true);
117
- documentObject.removeEventListener('touchend', onTouchEnd as EventListener, true);
114
+ documentObject.removeEventListener("mousedown", onMouseDown as EventListener, true);
115
+ documentObject.removeEventListener("mouseup", onMouseUp as EventListener, true);
116
+ documentObject.removeEventListener("touchstart", onTouchStart as EventListener, true);
117
+ documentObject.removeEventListener("touchend", onTouchEnd as EventListener, true);
118
118
  });
119
119
  }
120
120
  });
121
121
  }
122
122
 
123
- function isValidEvent(event: PointerEvent | MouseEvent | TouchEvent, ref: () => Element | null): boolean {
123
+ function isValidEvent(
124
+ event: PointerEvent | MouseEvent | TouchEvent,
125
+ ref: () => Element | null,
126
+ ): boolean {
124
127
  // Only handle primary button clicks
125
- if ('button' in event && event.button > 0) {
128
+ if ("button" in event && event.button > 0) {
126
129
  return false;
127
130
  }
128
131
 
@@ -133,7 +136,7 @@ function isValidEvent(event: PointerEvent | MouseEvent | TouchEvent, ref: () =>
133
136
  return false;
134
137
  }
135
138
  // If the target is within a top layer element (e.g. toasts), ignore
136
- if ((event.target as Element).closest?.('[data-solidaria-top-layer]')) {
139
+ if ((event.target as Element).closest?.("[data-solidaria-top-layer]")) {
137
140
  return false;
138
141
  }
139
142
  }
@@ -12,9 +12,9 @@ import {
12
12
  type JSX,
13
13
  type Accessor,
14
14
  type ParentComponent,
15
- } from 'solid-js';
16
- import { Portal } from 'solid-js/web';
17
- import { isServer } from 'solid-js/web';
15
+ } from "solid-js";
16
+ import { Portal } from "solid-js/web";
17
+ import { isServer } from "solid-js/web";
18
18
 
19
19
  export interface ModalProviderProps {
20
20
  children: JSX.Element;
@@ -69,11 +69,7 @@ export const ModalProvider: ParentComponent<ModalProviderProps> = (props) => {
69
69
  },
70
70
  };
71
71
 
72
- return (
73
- <ModalContext.Provider value={context}>
74
- {props.children}
75
- </ModalContext.Provider>
76
- );
72
+ return <ModalContext.Provider value={context}>{props.children}</ModalContext.Provider>;
77
73
  };
78
74
 
79
75
  /**
@@ -85,7 +81,8 @@ export const UNSAFE_PortalProvider: ParentComponent<PortalProviderProps> = (prop
85
81
  return (
86
82
  <PortalContext.Provider
87
83
  value={{
88
- getContainer: props.getContainer === null ? undefined : props.getContainer ?? parent.getContainer,
84
+ getContainer:
85
+ props.getContainer === null ? undefined : (props.getContainer ?? parent.getContainer),
89
86
  }}
90
87
  >
91
88
  {props.children}
@@ -103,7 +100,7 @@ export function useUNSAFE_PortalContext(): PortalProviderContextValue {
103
100
  export interface ModalProviderAria {
104
101
  /** Props to be spread on the container element. */
105
102
  modalProviderProps: {
106
- 'aria-hidden'?: true;
103
+ "aria-hidden"?: true;
107
104
  };
108
105
  }
109
106
 
@@ -115,7 +112,7 @@ export function useModalProvider(): ModalProviderAria {
115
112
  const context = useContext(ModalContext);
116
113
  return {
117
114
  modalProviderProps: {
118
- get 'aria-hidden'() {
115
+ get "aria-hidden"() {
119
116
  return context && context.modalCount() > 0 ? true : undefined;
120
117
  },
121
118
  },
@@ -172,12 +169,15 @@ export const OverlayContainer: ParentComponent<OverlayContainerProps> = (props)
172
169
  }
173
170
 
174
171
  const portalContext = useUNSAFE_PortalContext();
175
- const portalContainer = () => props.portalContainer ?? portalContext.getContainer?.() ?? document.body;
172
+ const portalContainer = () =>
173
+ props.portalContainer ?? portalContext.getContainer?.() ?? document.body;
176
174
 
177
175
  createEffect(() => {
178
176
  const container = portalContainer();
179
- if (container?.closest('[data-overlay-container]')) {
180
- throw new Error('An OverlayContainer must not be inside another container. Please change the portalContainer prop.');
177
+ if (container?.closest("[data-overlay-container]")) {
178
+ throw new Error(
179
+ "An OverlayContainer must not be inside another container. Please change the portalContainer prop.",
180
+ );
181
181
  }
182
182
  });
183
183
 
@@ -196,7 +196,7 @@ export interface AriaModalOptions {
196
196
  export interface ModalAria {
197
197
  /** Props for the modal content element. */
198
198
  modalProps: {
199
- 'data-ismodal': boolean;
199
+ "data-ismodal": boolean;
200
200
  };
201
201
  }
202
202
 
@@ -211,7 +211,7 @@ export function createModal(options?: AriaModalOptions): ModalAria {
211
211
  const context = useContext(ModalContext);
212
212
 
213
213
  if (!context) {
214
- throw new Error('Modal is not contained within a provider');
214
+ throw new Error("Modal is not contained within a provider");
215
215
  }
216
216
 
217
217
  createEffect(() => {
@@ -232,7 +232,7 @@ export function createModal(options?: AriaModalOptions): ModalAria {
232
232
 
233
233
  return {
234
234
  modalProps: {
235
- 'data-ismodal': !options?.isDisabled,
235
+ "data-ismodal": !options?.isDisabled,
236
236
  },
237
237
  };
238
238
  }