@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
@@ -5,14 +5,15 @@
5
5
  * Ported from @react-aria/overlays useOverlayPosition.
6
6
  */
7
7
 
8
- import { createEffect, createSignal, onCleanup, type JSX } from 'solid-js';
8
+ import { createEffect, createSignal, onCleanup, type JSX } from "solid-js";
9
+ import { useLocale } from "../i18n";
9
10
  import {
10
11
  calculatePosition,
11
12
  getRect,
12
13
  type Placement,
13
14
  type PlacementAxis,
14
15
  type PositionResult,
15
- } from './calculatePosition';
16
+ } from "./calculatePosition";
16
17
 
17
18
  export interface PositionProps {
18
19
  /**
@@ -108,13 +109,13 @@ export interface PositionAria {
108
109
  updatePosition: () => void;
109
110
  }
110
111
 
111
- const visualViewport = typeof document !== 'undefined' ? window.visualViewport : null;
112
+ const visualViewport = typeof document !== "undefined" ? window.visualViewport : null;
112
113
 
113
114
  function translateRTL(position: string, direction: string): string {
114
- if (direction === 'rtl') {
115
- return position.replace('start', 'right').replace('end', 'left');
115
+ if (direction === "rtl") {
116
+ return position.replace("start", "right").replace("end", "left");
116
117
  }
117
- return position.replace('start', 'left').replace('end', 'right');
118
+ return position.replace("start", "left").replace("end", "right");
118
119
  }
119
120
 
120
121
  /**
@@ -122,18 +123,19 @@ function translateRTL(position: string, direction: string): string {
122
123
  * element, and updating the position when the window resizes.
123
124
  */
124
125
  export function createOverlayPosition(props: AriaPositionProps): PositionAria {
125
- const direction = 'ltr'; // TODO: get from locale context
126
+ const locale = useLocale();
127
+ const direction = () => locale().direction;
126
128
 
127
129
  const arrowSize = () => props.arrowSize ?? 0;
128
130
  const targetRef = () => props.targetRef();
129
131
  const overlayRef = () => props.overlayRef();
130
132
  const arrowRef = () => props.arrowRef?.() ?? null;
131
133
  const scrollRef = () => props.scrollRef?.() ?? overlayRef();
132
- const placement = () => (props.placement ?? 'bottom') as Placement;
134
+ const placement = () => (props.placement ?? "bottom") as Placement;
133
135
  const containerPadding = () => props.containerPadding ?? 12;
134
136
  const shouldFlip = () => props.shouldFlip ?? true;
135
137
  const boundaryElement = () =>
136
- props.boundaryElement ?? (typeof document !== 'undefined' ? document.body : null);
138
+ props.boundaryElement ?? (typeof document !== "undefined" ? document.body : null);
137
139
  const offset = () => props.offset ?? 0;
138
140
  const crossOffset = () => props.crossOffset ?? 0;
139
141
  const shouldUpdatePosition = () => props.shouldUpdatePosition ?? true;
@@ -172,13 +174,13 @@ export function createOverlayPosition(props: AriaPositionProps): PositionAria {
172
174
  // Reset overlay's previous max height
173
175
  const overlay = overlayNode as HTMLElement;
174
176
  if (!maxHeight() && overlayNode) {
175
- overlay.style.top = '0px';
176
- overlay.style.bottom = '';
177
- overlay.style.maxHeight = (window.visualViewport?.height ?? window.innerHeight) + 'px';
177
+ overlay.style.top = "0px";
178
+ overlay.style.bottom = "";
179
+ overlay.style.maxHeight = (window.visualViewport?.height ?? window.innerHeight) + "px";
178
180
  }
179
181
 
180
182
  const result = calculatePosition({
181
- placement: translateRTL(placement(), direction) as Placement,
183
+ placement: translateRTL(placement(), direction()) as Placement,
182
184
  overlayNode,
183
185
  targetNode,
184
186
  scrollNode: scrollNode || overlayNode,
@@ -197,15 +199,16 @@ export function createOverlayPosition(props: AriaPositionProps): PositionAria {
197
199
  }
198
200
 
199
201
  // Apply styles directly for immediate positioning
200
- overlay.style.top = '';
201
- overlay.style.bottom = '';
202
- overlay.style.left = '';
203
- overlay.style.right = '';
204
-
205
- Object.keys(result.position).forEach((key) => {
206
- (overlay.style as any)[key] = (result.position as any)[key] + 'px';
202
+ overlay.style.top = "";
203
+ overlay.style.bottom = "";
204
+ overlay.style.left = "";
205
+ overlay.style.right = "";
206
+
207
+ const pos = result.position as Record<string, number | undefined>;
208
+ Object.keys(pos).forEach((key) => {
209
+ overlay.style.setProperty(key, pos[key] + "px");
207
210
  });
208
- overlay.style.maxHeight = result.maxHeight != null ? result.maxHeight + 'px' : '';
211
+ overlay.style.maxHeight = result.maxHeight != null ? result.maxHeight + "px" : "";
209
212
 
210
213
  setPosition(result);
211
214
  };
@@ -237,10 +240,10 @@ export function createOverlayPosition(props: AriaPositionProps): PositionAria {
237
240
  if (!isOpen()) return;
238
241
 
239
242
  const handleResize = () => updatePosition();
240
- window.addEventListener('resize', handleResize, false);
243
+ window.addEventListener("resize", handleResize, false);
241
244
 
242
245
  onCleanup(() => {
243
- window.removeEventListener('resize', handleResize, false);
246
+ window.removeEventListener("resize", handleResize, false);
244
247
  });
245
248
  });
246
249
 
@@ -292,12 +295,12 @@ export function createOverlayPosition(props: AriaPositionProps): PositionAria {
292
295
  }
293
296
  };
294
297
 
295
- visualViewport?.addEventListener('resize', onResize);
296
- visualViewport?.addEventListener('scroll', onScroll);
298
+ visualViewport?.addEventListener("resize", onResize);
299
+ visualViewport?.addEventListener("scroll", onScroll);
297
300
 
298
301
  onCleanup(() => {
299
- visualViewport?.removeEventListener('resize', onResize);
300
- visualViewport?.removeEventListener('scroll', onScroll);
302
+ visualViewport?.removeEventListener("resize", onResize);
303
+ visualViewport?.removeEventListener("scroll", onScroll);
301
304
  clearTimeout(timeout);
302
305
  });
303
306
  });
@@ -322,35 +325,41 @@ export function createOverlayPosition(props: AriaPositionProps): PositionAria {
322
325
  }
323
326
  };
324
327
 
325
- document.addEventListener('scroll', handleScroll, true);
328
+ document.addEventListener("scroll", handleScroll, true);
326
329
 
327
330
  onCleanup(() => {
328
- document.removeEventListener('scroll', handleScroll, true);
331
+ document.removeEventListener("scroll", handleScroll, true);
329
332
  });
330
333
  });
331
334
 
332
335
  return {
333
336
  overlayProps: {
334
- style: {
335
- position: position() ? 'absolute' : 'fixed',
336
- top: !position() ? 0 : undefined,
337
- left: !position() ? 0 : undefined,
338
- 'z-index': 100000,
339
- 'max-height': position()?.maxHeight ?? '100vh',
340
- } as JSX.CSSProperties,
337
+ get style(): JSX.CSSProperties {
338
+ const current = position();
339
+ return {
340
+ position: current ? "absolute" : "fixed",
341
+ top: !current ? 0 : undefined,
342
+ left: !current ? 0 : undefined,
343
+ "z-index": 100000,
344
+ "max-height": current?.maxHeight ?? "100vh",
345
+ } as JSX.CSSProperties;
346
+ },
341
347
  },
342
348
  placement: () => position()?.placement ?? null,
343
349
  triggerAnchorPoint: () => position()?.triggerAnchorPoint ?? null,
344
350
  arrowProps: {
345
- 'aria-hidden': 'true',
346
- role: 'presentation',
347
- style: {
348
- left: position()?.arrowOffsetLeft != null ? `${position()!.arrowOffsetLeft}px` : undefined,
349
- top: position()?.arrowOffsetTop != null ? `${position()!.arrowOffsetTop}px` : undefined,
350
- } as JSX.CSSProperties,
351
+ "aria-hidden": "true",
352
+ role: "presentation",
353
+ get style(): JSX.CSSProperties {
354
+ const current = position();
355
+ return {
356
+ left: current?.arrowOffsetLeft != null ? `${current.arrowOffsetLeft}px` : undefined,
357
+ top: current?.arrowOffsetTop != null ? `${current.arrowOffsetTop}px` : undefined,
358
+ };
359
+ },
351
360
  },
352
361
  updatePosition,
353
362
  };
354
363
  }
355
364
 
356
- export { type Placement, type PlacementAxis } from './calculatePosition';
365
+ export { type Placement, type PlacementAxis } from "./calculatePosition";
@@ -5,16 +5,16 @@
5
5
  * Ported from @react-aria/overlays usePopover.
6
6
  */
7
7
 
8
- import { createEffect, onCleanup, type JSX } from 'solid-js';
9
- import { createOverlay } from '../overlays/createOverlay';
8
+ import { createEffect, onCleanup, type JSX } from "solid-js";
9
+ import { createOverlay } from "../overlays/createOverlay";
10
10
  import {
11
11
  createOverlayPosition,
12
12
  type AriaPositionProps,
13
13
  type PlacementAxis,
14
- } from './createOverlayPosition';
15
- import { createPreventScroll } from '../overlays/createPreventScroll';
16
- import { ariaHideOutside, keepVisible } from '../overlays/ariaHideOutside';
17
- import { mergeProps } from '../utils/mergeProps';
14
+ } from "./createOverlayPosition";
15
+ import { createPreventScroll } from "../overlays/createPreventScroll";
16
+ import { ariaHideOutside, keepVisible } from "../overlays/ariaHideOutside";
17
+ import { mergeProps } from "../utils/mergeProps";
18
18
 
19
19
  export interface OverlayTriggerState {
20
20
  /** Whether the overlay is currently open. */
@@ -27,8 +27,10 @@ export interface OverlayTriggerState {
27
27
  toggle: () => void;
28
28
  }
29
29
 
30
- export interface AriaPopoverProps
31
- extends Omit<AriaPositionProps, 'isOpen' | 'onClose' | 'targetRef' | 'overlayRef'> {
30
+ export interface AriaPopoverProps extends Omit<
31
+ AriaPositionProps,
32
+ "isOpen" | "onClose" | "targetRef" | "overlayRef"
33
+ > {
32
34
  /**
33
35
  * The ref for the element which the popover positions itself with respect to.
34
36
  */
@@ -94,29 +96,36 @@ export interface PopoverAria {
94
96
  * Provides the behavior and accessibility implementation for a popover component.
95
97
  * A popover is an overlay element positioned relative to a trigger.
96
98
  */
97
- export function createPopover(
98
- props: AriaPopoverProps,
99
- state: OverlayTriggerState
100
- ): PopoverAria {
99
+ export function createPopover(props: AriaPopoverProps, state: OverlayTriggerState): PopoverAria {
101
100
  const triggerRef = () => props.triggerRef();
102
101
  const popoverRef = () => props.popoverRef();
103
102
  const groupRef = () => props.groupRef?.() ?? null;
104
103
  const isNonModal = () => props.isNonModal ?? false;
105
104
  const isKeyboardDismissDisabled = () => props.isKeyboardDismissDisabled ?? false;
106
105
  const shouldCloseOnInteractOutside = props.shouldCloseOnInteractOutside;
107
- const isSubmenu = () => props.trigger === 'SubmenuTrigger';
106
+ const isSubmenu = () => props.trigger === "SubmenuTrigger";
108
107
 
109
108
  // Overlay behavior (dismiss handling)
110
109
  const { overlayProps, underlayProps } = createOverlay(
111
110
  {
112
- isOpen: state.isOpen(),
111
+ get isOpen() {
112
+ return state.isOpen();
113
+ },
113
114
  onClose: state.close,
114
- shouldCloseOnBlur: true,
115
- isDismissable: !isNonModal() || isSubmenu(),
116
- isKeyboardDismissDisabled: isKeyboardDismissDisabled(),
117
- shouldCloseOnInteractOutside,
115
+ get shouldCloseOnBlur() {
116
+ return !isSubmenu();
117
+ },
118
+ get isDismissable() {
119
+ return !isNonModal() || isSubmenu();
120
+ },
121
+ get isKeyboardDismissDisabled() {
122
+ return isKeyboardDismissDisabled();
123
+ },
124
+ get shouldCloseOnInteractOutside() {
125
+ return shouldCloseOnInteractOutside;
126
+ },
118
127
  },
119
- () => groupRef() ?? popoverRef()
128
+ () => groupRef() ?? popoverRef(),
120
129
  );
121
130
 
122
131
  // Overlay positioning
@@ -129,13 +138,19 @@ export function createPopover(
129
138
  ...props,
130
139
  targetRef: triggerRef,
131
140
  overlayRef: popoverRef,
132
- isOpen: state.isOpen(),
133
- onClose: isNonModal() && !isSubmenu() ? state.close : null,
141
+ get isOpen() {
142
+ return state.isOpen();
143
+ },
144
+ get onClose() {
145
+ return isNonModal() && !isSubmenu() ? state.close : null;
146
+ },
134
147
  });
135
148
 
136
149
  // Prevent scroll when modal popover is open
137
150
  createPreventScroll({
138
- isDisabled: isNonModal() || !state.isOpen(),
151
+ get isDisabled() {
152
+ return isNonModal() || !state.isOpen();
153
+ },
139
154
  });
140
155
 
141
156
  // Aria-hide outside elements
@@ -158,8 +173,32 @@ export function createPopover(
158
173
  }
159
174
  });
160
175
 
176
+ const merged = mergeProps(overlayProps, positionProps) as Record<string, unknown>;
177
+ const popoverProps = new Proxy(merged, {
178
+ get(target, key: string) {
179
+ if (key === "style") return positionProps.style;
180
+ return target[key];
181
+ },
182
+ has(target, key) {
183
+ return key in target;
184
+ },
185
+ ownKeys(target) {
186
+ return Reflect.ownKeys(target);
187
+ },
188
+ getOwnPropertyDescriptor(target, key) {
189
+ if (key === "style") {
190
+ return {
191
+ configurable: true,
192
+ enumerable: true,
193
+ get: () => positionProps.style,
194
+ };
195
+ }
196
+ return Reflect.getOwnPropertyDescriptor(target, key);
197
+ },
198
+ });
199
+
161
200
  return {
162
- popoverProps: mergeProps(overlayProps, positionProps),
201
+ popoverProps,
163
202
  arrowProps,
164
203
  underlayProps,
165
204
  placement,
@@ -167,4 +206,4 @@ export function createPopover(
167
206
  };
168
207
  }
169
208
 
170
- export { type PlacementAxis } from './createOverlayPosition';
209
+ export { type PlacementAxis } from "./createOverlayPosition";
@@ -4,7 +4,7 @@ export {
4
4
  type AriaPopoverProps,
5
5
  type PopoverAria,
6
6
  type OverlayTriggerState,
7
- } from './createPopover';
7
+ } from "./createPopover";
8
8
 
9
9
  // Overlay Position
10
10
  export {
@@ -12,7 +12,7 @@ export {
12
12
  type AriaPositionProps,
13
13
  type PositionProps,
14
14
  type PositionAria,
15
- } from './createOverlayPosition';
15
+ } from "./createOverlayPosition";
16
16
 
17
17
  // Position calculation utilities
18
18
  export {
@@ -21,4 +21,4 @@ export {
21
21
  type PlacementAxis,
22
22
  type PositionOpts,
23
23
  type PositionResult,
24
- } from './calculatePosition';
24
+ } from "./calculatePosition";
@@ -8,16 +8,14 @@
8
8
  * This is a 1:1 port of @react-aria/progress's useProgressBar hook.
9
9
  */
10
10
 
11
- import { createLabel } from '../label/createLabel';
12
- import { mergeProps } from '../utils/mergeProps';
13
- import { filterDOMProps } from '../utils/filterDOMProps';
14
- import { type MaybeAccessor, access } from '../utils/reactivity';
15
-
16
- // ============================================
17
- // TYPES
18
- // ============================================
11
+ import { createLabel } from "../label/createLabel";
12
+ import { mergeProps } from "../utils/mergeProps";
13
+ import { filterDOMProps } from "../utils/filterDOMProps";
14
+ import { type MaybeAccessor, access } from "../utils/reactivity";
19
15
 
20
16
  export interface AriaProgressBarProps {
17
+ /** The element id. */
18
+ id?: string;
21
19
  /** The current value (controlled). */
22
20
  value?: number;
23
21
  /** The smallest value allowed for the input. @default 0 */
@@ -33,13 +31,13 @@ export interface AriaProgressBarProps {
33
31
  /** The content to display as the label. */
34
32
  label?: string;
35
33
  /** An accessibility label for this item. */
36
- 'aria-label'?: string;
34
+ "aria-label"?: string;
37
35
  /** Identifies the element (or elements) that labels the current element. */
38
- 'aria-labelledby'?: string;
36
+ "aria-labelledby"?: string;
39
37
  /** Identifies the element (or elements) that describes the object. */
40
- 'aria-describedby'?: string;
38
+ "aria-describedby"?: string;
41
39
  /** Identifies the element (or elements) that provide a detailed, extended description for the object. */
42
- 'aria-details'?: string;
40
+ "aria-details"?: string;
43
41
  }
44
42
 
45
43
  export interface ProgressBarAria {
@@ -49,17 +47,14 @@ export interface ProgressBarAria {
49
47
  labelProps: Record<string, unknown>;
50
48
  }
51
49
 
52
- // ============================================
53
- // UTILITIES
54
- // ============================================
55
-
56
50
  function clamp(value: number, min: number, max: number): number {
57
51
  return Math.min(Math.max(value, min), max);
58
52
  }
59
53
 
60
- // ============================================
61
- // IMPLEMENTATION
62
- // ============================================
54
+ function getSafeRange(min: number, max: number): number {
55
+ const range = max - min;
56
+ return Number.isFinite(range) && range > 0 ? range : 1;
57
+ }
63
58
 
64
59
  /**
65
60
  * Provides the accessibility implementation for a progress bar component.
@@ -67,18 +62,27 @@ function clamp(value: number, min: number, max: number): number {
67
62
  * over time.
68
63
  */
69
64
  export function createProgressBar(
70
- props: MaybeAccessor<AriaProgressBarProps> = {}
65
+ props: MaybeAccessor<AriaProgressBarProps> = {},
71
66
  ): ProgressBarAria {
72
67
  const getProps = () => access(props);
73
68
 
74
69
  // Create label handling
75
70
  const { labelProps, fieldProps } = createLabel({
76
- get label() { return getProps().label; },
77
- get 'aria-label'() { return getProps()['aria-label']; },
78
- get 'aria-labelledby'() { return getProps()['aria-labelledby']; },
71
+ get id() {
72
+ return getProps().id;
73
+ },
74
+ get label() {
75
+ return getProps().label;
76
+ },
77
+ get "aria-label"() {
78
+ return getProps()["aria-label"];
79
+ },
80
+ get "aria-labelledby"() {
81
+ return getProps()["aria-labelledby"];
82
+ },
79
83
  // Progress bar is not an HTML input element so it
80
84
  // shouldn't be labeled by a <label> element.
81
- labelElementType: 'span',
85
+ labelElementType: "span",
82
86
  });
83
87
 
84
88
  // Build progress bar props
@@ -88,15 +92,15 @@ export function createProgressBar(
88
92
  const minValue = p.minValue ?? 0;
89
93
  const maxValue = p.maxValue ?? 100;
90
94
  const isIndeterminate = p.isIndeterminate ?? false;
91
- const formatOptions = p.formatOptions ?? { style: 'percent' as const };
95
+ const formatOptions = p.formatOptions ?? { style: "percent" as const };
92
96
 
93
97
  const clampedValue = clamp(value, minValue, maxValue);
94
- const percentage = (clampedValue - minValue) / (maxValue - minValue);
98
+ const percentage = (clampedValue - minValue) / getSafeRange(minValue, maxValue);
95
99
 
96
100
  // Format value label
97
101
  let valueLabel = p.valueLabel;
98
102
  if (!isIndeterminate && !valueLabel) {
99
- const valueToFormat = formatOptions.style === 'percent' ? percentage : clampedValue;
103
+ const valueToFormat = formatOptions.style === "percent" ? percentage : clampedValue;
100
104
  try {
101
105
  const formatter = new Intl.NumberFormat(undefined, formatOptions);
102
106
  valueLabel = formatter.format(valueToFormat);
@@ -109,11 +113,11 @@ export function createProgressBar(
109
113
  const domProps = filterDOMProps(p as Record<string, unknown>, { labelable: true });
110
114
 
111
115
  return mergeProps(domProps, fieldProps as Record<string, unknown>, {
112
- 'aria-valuenow': isIndeterminate ? undefined : clampedValue,
113
- 'aria-valuemin': minValue,
114
- 'aria-valuemax': maxValue,
115
- 'aria-valuetext': isIndeterminate ? undefined : valueLabel,
116
- role: 'progressbar',
116
+ "aria-valuenow": isIndeterminate ? undefined : clampedValue,
117
+ "aria-valuemin": minValue,
118
+ "aria-valuemax": maxValue,
119
+ "aria-valuetext": isIndeterminate ? undefined : valueLabel,
120
+ role: "progressbar",
117
121
  });
118
122
  };
119
123
 
@@ -2,4 +2,4 @@ export {
2
2
  createProgressBar,
3
3
  type AriaProgressBarProps,
4
4
  type ProgressBarAria,
5
- } from './createProgressBar';
5
+ } from "./createProgressBar";