@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
@@ -1,83 +1,75 @@
1
- /**
2
- * createDateFormatter hook for solidaria
3
- *
4
- * Provides localized date formatting with caching.
5
- *
6
- * Port of @react-aria/i18n useDateFormatter.
7
- */
8
-
9
- import { createMemo } from 'solid-js';
10
- import { useLocale } from './locale';
11
- import { createCacheKey } from './utils';
12
-
13
- // ============================================
14
- // CACHE
15
- // ============================================
16
-
17
- const dateFormatterCache = new Map<string, Intl.DateTimeFormat>();
18
-
19
- /**
20
- * Gets or creates a cached date formatter.
21
- */
22
- function getCachedDateFormatter(
23
- locale: string,
24
- options?: Intl.DateTimeFormatOptions
25
- ): Intl.DateTimeFormat {
26
- const cacheKey = createCacheKey(locale, options as Record<string, unknown>);
27
-
28
- if (dateFormatterCache.has(cacheKey)) {
29
- return dateFormatterCache.get(cacheKey)!;
30
- }
31
-
32
- const formatter = new Intl.DateTimeFormat(locale, options);
33
- dateFormatterCache.set(cacheKey, formatter);
34
- return formatter;
35
- }
36
-
37
- // ============================================
38
- // HOOK
39
- // ============================================
40
-
41
- /**
42
- * Provides localized date and time formatting for the current locale.
43
- * Automatically updates when the locale changes.
44
- *
45
- * @example
46
- * ```tsx
47
- * function DateDisplay(props: { date: Date }) {
48
- * const formatter = createDateFormatter({
49
- * year: 'numeric',
50
- * month: 'long',
51
- * day: 'numeric',
52
- * });
53
- *
54
- * return <span>{formatter().format(props.date)}</span>;
55
- * }
56
- * ```
57
- *
58
- * @example
59
- * ```tsx
60
- * // Short date
61
- * const shortDate = createDateFormatter({ dateStyle: 'short' });
62
- * shortDate().format(new Date()); // '1/19/26' (US) or '19/01/26' (UK)
63
- *
64
- * // Full date with time
65
- * const fullDateTime = createDateFormatter({
66
- * dateStyle: 'full',
67
- * timeStyle: 'short',
68
- * });
69
- *
70
- * // Time only
71
- * const timeFormatter = createDateFormatter({
72
- * hour: 'numeric',
73
- * minute: '2-digit',
74
- * });
75
- * ```
76
- */
77
- export function createDateFormatter(
78
- options?: Intl.DateTimeFormatOptions
79
- ): () => Intl.DateTimeFormat {
80
- const locale = useLocale();
81
-
82
- return createMemo(() => getCachedDateFormatter(locale().locale, options));
83
- }
1
+ /**
2
+ * createDateFormatter hook for solidaria
3
+ *
4
+ * Provides localized date formatting with caching.
5
+ *
6
+ * Port of @react-aria/i18n useDateFormatter.
7
+ */
8
+
9
+ import { createMemo } from "solid-js";
10
+ import { useLocale } from "./locale";
11
+ import { createCacheKey } from "./utils";
12
+
13
+ const dateFormatterCache = new Map<string, Intl.DateTimeFormat>();
14
+
15
+ /**
16
+ * Gets or creates a cached date formatter.
17
+ */
18
+ function getCachedDateFormatter(
19
+ locale: string,
20
+ options?: Intl.DateTimeFormatOptions,
21
+ ): Intl.DateTimeFormat {
22
+ const cacheKey = createCacheKey(locale, options as Record<string, unknown>);
23
+
24
+ if (dateFormatterCache.has(cacheKey)) {
25
+ return dateFormatterCache.get(cacheKey)!;
26
+ }
27
+
28
+ const formatter = new Intl.DateTimeFormat(locale, options);
29
+ dateFormatterCache.set(cacheKey, formatter);
30
+ return formatter;
31
+ }
32
+
33
+ /**
34
+ * Provides localized date and time formatting for the current locale.
35
+ * Automatically updates when the locale changes.
36
+ *
37
+ * @example
38
+ * ```tsx
39
+ * function DateDisplay(props: { date: Date }) {
40
+ * const formatter = createDateFormatter({
41
+ * year: 'numeric',
42
+ * month: 'long',
43
+ * day: 'numeric',
44
+ * });
45
+ *
46
+ * return <span>{formatter().format(props.date)}</span>;
47
+ * }
48
+ * ```
49
+ *
50
+ * @example
51
+ * ```tsx
52
+ * // Short date
53
+ * const shortDate = createDateFormatter({ dateStyle: 'short' });
54
+ * shortDate().format(new Date()); // '1/19/26' (US) or '19/01/26' (UK)
55
+ *
56
+ * // Full date with time
57
+ * const fullDateTime = createDateFormatter({
58
+ * dateStyle: 'full',
59
+ * timeStyle: 'short',
60
+ * });
61
+ *
62
+ * // Time only
63
+ * const timeFormatter = createDateFormatter({
64
+ * hour: 'numeric',
65
+ * minute: '2-digit',
66
+ * });
67
+ * ```
68
+ */
69
+ export function createDateFormatter(
70
+ options?: Intl.DateTimeFormatOptions,
71
+ ): () => Intl.DateTimeFormat {
72
+ const locale = useLocale();
73
+
74
+ return createMemo(() => getCachedDateFormatter(locale().locale, options));
75
+ }
@@ -1,131 +1,118 @@
1
- /**
2
- * createFilter hook for solidaria
3
- *
4
- * Provides localized string filtering with collation support.
5
- *
6
- * Port of @react-aria/i18n useFilter.
7
- */
8
-
9
- import { createMemo } from 'solid-js';
10
- import { createCollator } from './createCollator';
11
-
12
- // ============================================
13
- // TYPES
14
- // ============================================
15
-
16
- export interface Filter {
17
- /** Returns whether a string starts with a given substring. */
18
- startsWith(string: string, substring: string): boolean;
19
- /** Returns whether a string ends with a given substring. */
20
- endsWith(string: string, substring: string): boolean;
21
- /** Returns whether a string contains a given substring. */
22
- contains(string: string, substring: string): boolean;
23
- }
24
-
25
- // ============================================
26
- // HOOK
27
- // ============================================
28
-
29
- /**
30
- * Provides localized string search functionality for filtering or matching items.
31
- * Respects locale-specific collation rules for case and diacritic sensitivity.
32
- *
33
- * @example
34
- * ```tsx
35
- * function SearchableList(props: { items: { name: string }[] }) {
36
- * const [query, setQuery] = createSignal('');
37
- * const filter = createFilter({ sensitivity: 'base' });
38
- *
39
- * const filteredItems = () =>
40
- * props.items.filter((item) =>
41
- * filter().contains(item.name, query())
42
- * );
43
- *
44
- * return (
45
- * <>
46
- * <input
47
- * value={query()}
48
- * onInput={(e) => setQuery(e.target.value)}
49
- * placeholder="Search..."
50
- * />
51
- * <ul>
52
- * <For each={filteredItems()}>
53
- * {(item) => <li>{item.name}</li>}
54
- * </For>
55
- * </ul>
56
- * </>
57
- * );
58
- * }
59
- * ```
60
- *
61
- * @example
62
- * ```tsx
63
- * // Case-insensitive, diacritic-insensitive filtering
64
- * const filter = createFilter({ sensitivity: 'base' });
65
- * filter().contains('Café', 'cafe'); // true
66
- * filter().startsWith('Hello', 'hello'); // true
67
- * ```
68
- */
69
- export function createFilter(options?: Intl.CollatorOptions): () => Filter {
70
- const collator = createCollator({
71
- usage: 'search',
72
- ...options,
73
- });
74
-
75
- return createMemo(() => {
76
- const coll = collator();
77
-
78
- const startsWith = (str: string, substring: string): boolean => {
79
- if (substring.length === 0) {
80
- return true;
81
- }
82
-
83
- // Normalize both strings for safe slicing
84
- const normalizedStr = str.normalize('NFC');
85
- const normalizedSub = substring.normalize('NFC');
86
-
87
- return (
88
- coll.compare(normalizedStr.slice(0, normalizedSub.length), normalizedSub) ===
89
- 0
90
- );
91
- };
92
-
93
- const endsWith = (str: string, substring: string): boolean => {
94
- if (substring.length === 0) {
95
- return true;
96
- }
97
-
98
- const normalizedStr = str.normalize('NFC');
99
- const normalizedSub = substring.normalize('NFC');
100
-
101
- return (
102
- coll.compare(normalizedStr.slice(-normalizedSub.length), normalizedSub) === 0
103
- );
104
- };
105
-
106
- const contains = (str: string, substring: string): boolean => {
107
- if (substring.length === 0) {
108
- return true;
109
- }
110
-
111
- const normalizedStr = str.normalize('NFC');
112
- const normalizedSub = substring.normalize('NFC');
113
- const sliceLen = normalizedSub.length;
114
-
115
- for (let scan = 0; scan + sliceLen <= normalizedStr.length; scan++) {
116
- const slice = normalizedStr.slice(scan, scan + sliceLen);
117
- if (coll.compare(normalizedSub, slice) === 0) {
118
- return true;
119
- }
120
- }
121
-
122
- return false;
123
- };
124
-
125
- return {
126
- startsWith,
127
- endsWith,
128
- contains,
129
- };
130
- });
131
- }
1
+ /**
2
+ * createFilter hook for solidaria
3
+ *
4
+ * Provides localized string filtering with collation support.
5
+ *
6
+ * Port of @react-aria/i18n useFilter.
7
+ */
8
+
9
+ import { createMemo } from "solid-js";
10
+ import { createCollator } from "./createCollator";
11
+
12
+ export interface Filter {
13
+ /** Returns whether a string starts with a given substring. */
14
+ startsWith(string: string, substring: string): boolean;
15
+ /** Returns whether a string ends with a given substring. */
16
+ endsWith(string: string, substring: string): boolean;
17
+ /** Returns whether a string contains a given substring. */
18
+ contains(string: string, substring: string): boolean;
19
+ }
20
+
21
+ /**
22
+ * Provides localized string search functionality for filtering or matching items.
23
+ * Respects locale-specific collation rules for case and diacritic sensitivity.
24
+ *
25
+ * @example
26
+ * ```tsx
27
+ * function SearchableList(props: { items: { name: string }[] }) {
28
+ * const [query, setQuery] = createSignal('');
29
+ * const filter = createFilter({ sensitivity: 'base' });
30
+ *
31
+ * const filteredItems = () =>
32
+ * props.items.filter((item) =>
33
+ * filter().contains(item.name, query())
34
+ * );
35
+ *
36
+ * return (
37
+ * <>
38
+ * <input
39
+ * value={query()}
40
+ * onInput={(e) => setQuery(e.target.value)}
41
+ * placeholder="Search..."
42
+ * />
43
+ * <ul>
44
+ * <For each={filteredItems()}>
45
+ * {(item) => <li>{item.name}</li>}
46
+ * </For>
47
+ * </ul>
48
+ * </>
49
+ * );
50
+ * }
51
+ * ```
52
+ *
53
+ * @example
54
+ * ```tsx
55
+ * // Case-insensitive, diacritic-insensitive filtering
56
+ * const filter = createFilter({ sensitivity: 'base' });
57
+ * filter().contains('Café', 'cafe'); // true
58
+ * filter().startsWith('Hello', 'hello'); // true
59
+ * ```
60
+ */
61
+ export function createFilter(options?: Intl.CollatorOptions): () => Filter {
62
+ const collator = createCollator({
63
+ usage: "search",
64
+ ...options,
65
+ });
66
+
67
+ return createMemo(() => {
68
+ const coll = collator();
69
+
70
+ const startsWith = (str: string, substring: string): boolean => {
71
+ if (substring.length === 0) {
72
+ return true;
73
+ }
74
+
75
+ // Normalize both strings for safe slicing
76
+ const normalizedStr = str.normalize("NFC");
77
+ const normalizedSub = substring.normalize("NFC");
78
+
79
+ return coll.compare(normalizedStr.slice(0, normalizedSub.length), normalizedSub) === 0;
80
+ };
81
+
82
+ const endsWith = (str: string, substring: string): boolean => {
83
+ if (substring.length === 0) {
84
+ return true;
85
+ }
86
+
87
+ const normalizedStr = str.normalize("NFC");
88
+ const normalizedSub = substring.normalize("NFC");
89
+
90
+ return coll.compare(normalizedStr.slice(-normalizedSub.length), normalizedSub) === 0;
91
+ };
92
+
93
+ const contains = (str: string, substring: string): boolean => {
94
+ if (substring.length === 0) {
95
+ return true;
96
+ }
97
+
98
+ const normalizedStr = str.normalize("NFC");
99
+ const normalizedSub = substring.normalize("NFC");
100
+ const sliceLen = normalizedSub.length;
101
+
102
+ for (let scan = 0; scan + sliceLen <= normalizedStr.length; scan++) {
103
+ const slice = normalizedStr.slice(scan, scan + sliceLen);
104
+ if (coll.compare(normalizedSub, slice) === 0) {
105
+ return true;
106
+ }
107
+ }
108
+
109
+ return false;
110
+ };
111
+
112
+ return {
113
+ startsWith,
114
+ endsWith,
115
+ contains,
116
+ };
117
+ });
118
+ }
@@ -1,52 +1,50 @@
1
- /**
2
- * createNumberFormatter hook for solidaria
3
- *
4
- * Provides localized number formatting with automatic locale updates.
5
- *
6
- * Port of @react-aria/i18n useNumberFormatter.
7
- */
8
-
9
- import { createMemo } from 'solid-js';
10
- import { useLocale } from './locale';
11
- import { NumberFormatter, type NumberFormatOptions } from './NumberFormatter';
12
-
13
- /**
14
- * Provides localized number formatting for the current locale.
15
- * Automatically updates when the locale changes.
16
- *
17
- * @example
18
- * ```tsx
19
- * function PriceDisplay(props: { value: number }) {
20
- * const formatter = createNumberFormatter({
21
- * style: 'currency',
22
- * currency: 'USD',
23
- * });
24
- *
25
- * return <span>{formatter().format(props.value)}</span>;
26
- * }
27
- * ```
28
- *
29
- * @example
30
- * ```tsx
31
- * // Percent formatting
32
- * const percentFormatter = createNumberFormatter({
33
- * style: 'percent',
34
- * minimumFractionDigits: 1,
35
- * });
36
- * percentFormatter().format(0.125); // '12.5%'
37
- *
38
- * // Unit formatting
39
- * const tempFormatter = createNumberFormatter({
40
- * style: 'unit',
41
- * unit: 'celsius',
42
- * });
43
- * tempFormatter().format(25); // '25°C'
44
- * ```
45
- */
46
- export function createNumberFormatter(
47
- options: NumberFormatOptions = {}
48
- ): () => NumberFormatter {
49
- const locale = useLocale();
50
-
51
- return createMemo(() => new NumberFormatter(locale().locale, options));
52
- }
1
+ /**
2
+ * createNumberFormatter hook for solidaria
3
+ *
4
+ * Provides localized number formatting with automatic locale updates.
5
+ *
6
+ * Port of @react-aria/i18n useNumberFormatter.
7
+ */
8
+
9
+ import { createMemo } from "solid-js";
10
+ import { useLocale } from "./locale";
11
+ import { NumberFormatter, type NumberFormatOptions } from "@internationalized/number";
12
+
13
+ /**
14
+ * Provides localized number formatting for the current locale.
15
+ * Automatically updates when the locale changes.
16
+ *
17
+ * @example
18
+ * ```tsx
19
+ * function PriceDisplay(props: { value: number }) {
20
+ * const formatter = createNumberFormatter({
21
+ * style: 'currency',
22
+ * currency: 'USD',
23
+ * });
24
+ *
25
+ * return <span>{formatter().format(props.value)}</span>;
26
+ * }
27
+ * ```
28
+ *
29
+ * @example
30
+ * ```tsx
31
+ * // Percent formatting
32
+ * const percentFormatter = createNumberFormatter({
33
+ * style: 'percent',
34
+ * minimumFractionDigits: 1,
35
+ * });
36
+ * percentFormatter().format(0.125); // '12.5%'
37
+ *
38
+ * // Unit formatting
39
+ * const tempFormatter = createNumberFormatter({
40
+ * style: 'unit',
41
+ * unit: 'celsius',
42
+ * });
43
+ * tempFormatter().format(25); // '25°C'
44
+ * ```
45
+ */
46
+ export function createNumberFormatter(options: NumberFormatOptions = {}): () => NumberFormatter {
47
+ const locale = useLocale();
48
+
49
+ return createMemo(() => new NumberFormatter(locale().locale, options));
50
+ }
@@ -8,19 +8,24 @@ import {
8
8
  LocalizedStringDictionary,
9
9
  LocalizedStringFormatter,
10
10
  type LocalizedStrings,
11
- } from '@internationalized/string';
12
- import { createMemo, type Accessor } from 'solid-js';
13
- import { useLocale } from './locale';
11
+ } from "@internationalized/string";
12
+ import { createMemo, type Accessor } from "solid-js";
13
+ import { useLocale } from "./locale";
14
14
 
15
15
  // Cache for dictionaries to avoid recreating them
16
- const cache = new WeakMap<LocalizedStrings<string, LocalizedString>, LocalizedStringDictionary<string, LocalizedString>>();
16
+ const cache = new WeakMap<
17
+ LocalizedStrings<string, LocalizedString>,
18
+ LocalizedStringDictionary<string, LocalizedString>
19
+ >();
17
20
 
18
21
  function getCachedDictionary<K extends string, T extends LocalizedString>(
19
- strings: LocalizedStrings<K, T>
22
+ strings: LocalizedStrings<K, T>,
20
23
  ): LocalizedStringDictionary<K, T> {
21
24
  let dictionary = cache.get(strings as LocalizedStrings<string, LocalizedString>);
22
25
  if (!dictionary) {
23
- dictionary = new LocalizedStringDictionary(strings as LocalizedStrings<string, LocalizedString>);
26
+ dictionary = new LocalizedStringDictionary(
27
+ strings as LocalizedStrings<string, LocalizedString>,
28
+ );
24
29
  cache.set(strings as LocalizedStrings<string, LocalizedString>, dictionary);
25
30
  }
26
31
  return dictionary as LocalizedStringDictionary<K, T>;
@@ -29,10 +34,10 @@ function getCachedDictionary<K extends string, T extends LocalizedString>(
29
34
  /**
30
35
  * Returns a cached LocalizedStringDictionary for the given strings.
31
36
  */
32
- export function createStringDictionary<K extends string = string, T extends LocalizedString = string>(
33
- strings: LocalizedStrings<K, T>,
34
- packageName?: string
35
- ): LocalizedStringDictionary<K, T> {
37
+ export function createStringDictionary<
38
+ K extends string = string,
39
+ T extends LocalizedString = string,
40
+ >(strings: LocalizedStrings<K, T>, packageName?: string): LocalizedStringDictionary<K, T> {
36
41
  return (
37
42
  (packageName && LocalizedStringDictionary.getGlobalDictionaryForPackage(packageName)) ||
38
43
  getCachedDictionary(strings)
@@ -68,17 +73,16 @@ export function createStringDictionary<K extends string = string, T extends Loca
68
73
  * }
69
74
  * ```
70
75
  */
71
- export function createStringFormatter<K extends string = string, T extends LocalizedString = string>(
72
- strings: LocalizedStrings<K, T>,
73
- packageName?: string
74
- ): Accessor<LocalizedStringFormatter<K, T>> {
76
+ export function createStringFormatter<
77
+ K extends string = string,
78
+ T extends LocalizedString = string,
79
+ >(strings: LocalizedStrings<K, T>, packageName?: string): Accessor<LocalizedStringFormatter<K, T>> {
75
80
  const localeAccessor = useLocale();
76
81
  const dictionary = createStringDictionary(strings, packageName);
77
82
 
78
83
  return createMemo(() => new LocalizedStringFormatter(localeAccessor().locale, dictionary));
79
84
  }
80
85
 
81
- // Re-export types for convenience
82
86
  export type {
83
87
  LocalizedString,
84
88
  LocalizedStringDictionary,
package/src/i18n/index.ts CHANGED
@@ -1,40 +1,37 @@
1
- // Locale context and provider
2
- export {
3
- I18nProvider,
4
- useLocale,
5
- createDefaultLocale,
6
- getDefaultLocale,
7
- type Direction,
8
- type Locale,
9
- type I18nProviderProps,
10
- } from './locale';
11
-
12
- // RTL utilities
13
- export { isRTL, createCacheKey } from './utils';
14
-
15
- // Number formatting
16
- export {
17
- NumberFormatter,
18
- type NumberFormatOptions,
19
- } from './NumberFormatter';
20
-
21
- export { createNumberFormatter } from './createNumberFormatter';
22
-
23
- // Date formatting
24
- export { createDateFormatter } from './createDateFormatter';
25
-
26
- // String collation
27
- export { createCollator } from './createCollator';
28
-
29
- // String filtering
30
- export { createFilter, type Filter } from './createFilter';
31
-
32
- // String formatting (ICU MessageFormat)
33
- export {
34
- createStringFormatter,
35
- createStringDictionary,
36
- type LocalizedString,
37
- type LocalizedStringDictionary,
38
- type LocalizedStringFormatter,
39
- type LocalizedStrings,
40
- } from './createStringFormatter';
1
+ // Locale context and provider
2
+ export {
3
+ I18nProvider,
4
+ useLocale,
5
+ createDefaultLocale,
6
+ getDefaultLocale,
7
+ type Direction,
8
+ type Locale,
9
+ type I18nProviderProps,
10
+ } from "./locale";
11
+
12
+ // RTL utilities
13
+ export { isRTL, createCacheKey } from "./utils";
14
+
15
+ // Number formatting
16
+ export { NumberFormatter, type NumberFormatOptions } from "@internationalized/number";
17
+
18
+ export { createNumberFormatter } from "./createNumberFormatter";
19
+
20
+ // Date formatting
21
+ export { createDateFormatter } from "./createDateFormatter";
22
+
23
+ // String collation
24
+ export { createCollator } from "./createCollator";
25
+
26
+ // String filtering
27
+ export { createFilter, type Filter } from "./createFilter";
28
+
29
+ // String formatting (ICU MessageFormat)
30
+ export {
31
+ createStringFormatter,
32
+ createStringDictionary,
33
+ type LocalizedString,
34
+ type LocalizedStringDictionary,
35
+ type LocalizedStringFormatter,
36
+ type LocalizedStrings,
37
+ } from "./createStringFormatter";