@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
@@ -7,13 +7,9 @@
7
7
  * This is a 1:1 port of @react-stately/radio's useRadioGroupState.
8
8
  */
9
9
 
10
- import { createSignal, Accessor, untrack } from 'solid-js';
11
- import { type MaybeAccessor, access } from '../utils/reactivity';
12
- import { createId } from '../ssr';
13
-
14
- // ============================================
15
- // TYPES
16
- // ============================================
10
+ import { createSignal, Accessor, untrack } from "solid-js";
11
+ import { type MaybeAccessor, access } from "../utils/reactivity";
12
+ import { createId } from "../ssr";
17
13
 
18
14
  export interface RadioGroupProps {
19
15
  /** The current selected value (controlled). */
@@ -37,7 +33,7 @@ export interface RadioGroupProps {
37
33
  /** The label for the radio group. */
38
34
  label?: string;
39
35
  /** Orientation of the radio group. */
40
- orientation?: 'horizontal' | 'vertical';
36
+ orientation?: "horizontal" | "vertical";
41
37
  /** Handler that is called when the radio group receives focus. */
42
38
  onFocus?: (e: FocusEvent) => void;
43
39
  /** Handler that is called when the radio group loses focus. */
@@ -78,10 +74,6 @@ export interface RadioGroupState {
78
74
  setLastFocusedValue(value: string | null): void;
79
75
  }
80
76
 
81
- // ============================================
82
- // INTERNAL: SolidJS-specific sync mechanism
83
- // ============================================
84
-
85
77
  /**
86
78
  * Internal WeakMap to store sync version accessors for each radio group state.
87
79
  * This is used by createRadio to trigger DOM sync when native radio behavior
@@ -92,31 +84,23 @@ export interface RadioGroupState {
92
84
  */
93
85
  export const radioGroupSyncVersion: WeakMap<RadioGroupState, Accessor<number>> = new WeakMap();
94
86
 
95
- // ============================================
96
- // IMPLEMENTATION
97
- // ============================================
98
-
99
87
  /**
100
88
  * Provides state management for a radio group component.
101
89
  * Provides a name for the group, and manages selection and focus state.
102
90
  */
103
- export function createRadioGroupState(
104
- props: MaybeAccessor<RadioGroupProps> = {}
105
- ): RadioGroupState {
91
+ export function createRadioGroupState(props: MaybeAccessor<RadioGroupProps> = {}): RadioGroupState {
106
92
  const getProps = () => access(props);
107
93
 
108
94
  // Get initial props using untrack to avoid setting up dependencies
109
95
  // This ensures we capture the initial defaultValue without reactivity issues
110
96
  const initialProps = untrack(() => getProps());
111
97
 
112
- // Generate name - preserved for backward compatibility
113
- // React Aria now generates the name instead of stately
98
+ // Preserved for backward compatibility. React Aria now generates the name instead of stately.
114
99
  const name = initialProps.name || `radio-group-${createId()}`;
115
100
 
116
- // Create internal signal for uncontrolled mode
117
101
  // Initialize with defaultValue only (not value, which is for controlled mode)
118
102
  const [internalValue, setInternalValue] = createSignal<string | null>(
119
- initialProps.defaultValue ?? null
103
+ initialProps.defaultValue ?? null,
120
104
  );
121
105
  const [lastFocusedValue, setLastFocusedValueInternal] = createSignal<string | null>(null);
122
106
 
@@ -125,26 +109,20 @@ export function createRadioGroupState(
125
109
  // from our reactive state (e.g., clicking a radio unchecks siblings in the DOM)
126
110
  const [syncVersion, setSyncVersion] = createSignal(0);
127
111
 
128
- // Determine if controlled - must be reactive to handle dynamic props
129
112
  const isControlled = () => getProps().value !== undefined;
130
113
 
131
- // Get current value - reactive for both controlled and uncontrolled modes
132
114
  const selectedValue: Accessor<string | null> = () => {
133
115
  const p = getProps();
134
- // In controlled mode, always read from props.value reactively
135
- // In uncontrolled mode, read from internal signal
136
116
  if (p.value !== undefined) {
137
117
  return p.value ?? null;
138
118
  }
139
119
  return internalValue();
140
120
  };
141
121
 
142
- // Check if invalid
143
122
  const isInvalid = () => {
144
123
  return getProps().isInvalid ?? false;
145
124
  };
146
125
 
147
- // Set value
148
126
  function setSelectedValue(value: string | null): void {
149
127
  const p = getProps();
150
128
  if (p.isReadOnly || p.isDisabled) {
@@ -167,7 +145,6 @@ export function createRadioGroupState(
167
145
  }
168
146
  }
169
147
 
170
- // Set last focused value
171
148
  function setLastFocusedValue(value: string | null): void {
172
149
  setLastFocusedValueInternal(value);
173
150
  }
@@ -193,7 +170,6 @@ export function createRadioGroupState(
193
170
  },
194
171
  };
195
172
 
196
- // Store syncVersion in internal WeakMap (not part of public API)
197
173
  // This maintains API parity with React-Aria while supporting SolidJS's reactivity needs
198
174
  radioGroupSyncVersion.set(state, syncVersion);
199
175
 
@@ -1,10 +1,9 @@
1
- // Re-export state from solid-stately
2
1
  export {
3
2
  createRadioGroupState,
4
3
  radioGroupSyncVersion,
5
4
  type RadioGroupProps,
6
5
  type RadioGroupState,
7
- } from '@proyecto-viviana/solid-stately';
6
+ } from "@proyecto-viviana/solid-stately";
8
7
 
9
8
  // ARIA hooks (solidaria-specific)
10
9
  // Radio Group
@@ -13,11 +12,7 @@ export {
13
12
  radioGroupData,
14
13
  type AriaRadioGroupProps,
15
14
  type RadioGroupAria,
16
- } from './createRadioGroup';
15
+ } from "./createRadioGroup";
17
16
 
18
17
  // Radio
19
- export {
20
- createRadio,
21
- type AriaRadioProps,
22
- type RadioAria,
23
- } from './createRadio';
18
+ export { createRadio, type AriaRadioProps, type RadioAria } from "./createRadio";
@@ -1,186 +1,269 @@
1
- /**
2
- * Provides the behavior and accessibility implementation for a search field.
3
- * A search field allows a user to enter and clear a search query.
4
- * Based on @react-aria/searchfield useSearchField.
5
- */
6
-
7
- import { type JSX } from 'solid-js';
8
- import { createTextField, type AriaTextFieldProps, type TextFieldAria } from '../textfield';
9
- import { mergeProps } from '../utils';
10
- import { type MaybeAccessor, access } from '../utils/reactivity';
11
- import type { SearchFieldState } from '@proyecto-viviana/solid-stately';
12
-
13
- export interface AriaSearchFieldProps extends Omit<AriaTextFieldProps, 'type'> {
14
- /** Handler that is called when the user submits the search (pressing Enter). */
15
- onSubmit?: (value: string) => void;
16
- /** Handler that is called when the clear button is pressed or Escape clears the field. */
17
- onClear?: () => void;
18
- }
19
-
20
- export interface SearchFieldAria extends Omit<TextFieldAria, 'inputProps'> {
21
- /** Props for the input element. */
22
- inputProps: JSX.InputHTMLAttributes<HTMLInputElement>;
23
- /** Props for the clear button. */
24
- clearButtonProps: {
25
- 'aria-label': string;
26
- tabIndex: number;
27
- disabled?: boolean;
28
- onMouseDown: (e: MouseEvent) => void;
29
- onClick: () => void;
30
- };
31
- }
32
-
33
- /**
34
- * Provides the behavior and accessibility implementation for a search field.
35
- */
36
- export function createSearchField(
37
- props: MaybeAccessor<AriaSearchFieldProps>,
38
- state: SearchFieldState,
39
- inputRef?: () => HTMLInputElement | null
40
- ): SearchFieldAria {
41
- const getProps = () => access(props);
42
-
43
- // Use createTextField for the base implementation
44
- const textFieldAria = createTextField({
45
- get value() {
46
- return state.value();
47
- },
48
- get isDisabled() {
49
- return getProps().isDisabled;
50
- },
51
- get isReadOnly() {
52
- return getProps().isReadOnly;
53
- },
54
- get isRequired() {
55
- return getProps().isRequired;
56
- },
57
- get isInvalid() {
58
- return getProps().isInvalid;
59
- },
60
- get label() {
61
- return getProps().label;
62
- },
63
- get 'aria-label'() {
64
- return getProps()['aria-label'];
65
- },
66
- get 'aria-labelledby'() {
67
- return getProps()['aria-labelledby'];
68
- },
69
- get 'aria-describedby'() {
70
- return getProps()['aria-describedby'];
71
- },
72
- get description() {
73
- return getProps().description;
74
- },
75
- get errorMessage() {
76
- return getProps().errorMessage;
77
- },
78
- get placeholder() {
79
- return getProps().placeholder;
80
- },
81
- get name() {
82
- return getProps().name;
83
- },
84
- get autoFocus() {
85
- return getProps().autoFocus;
86
- },
87
- get autoComplete() {
88
- return getProps().autoComplete;
89
- },
90
- get maxLength() {
91
- return getProps().maxLength;
92
- },
93
- get minLength() {
94
- return getProps().minLength;
95
- },
96
- get pattern() {
97
- return getProps().pattern;
98
- },
99
- type: 'search',
100
- onChange: (value: string) => {
101
- state.setValue(value);
102
- getProps().onChange?.(value);
103
- },
104
- });
105
-
106
- // Handle keyboard events for search field
107
- const onKeyDown: JSX.EventHandler<HTMLInputElement, KeyboardEvent> = (e) => {
108
- const p = getProps();
109
-
110
- if (p.isDisabled || p.isReadOnly) {
111
- if (e.key === 'Enter') {
112
- e.preventDefault();
113
- }
114
- return;
115
- }
116
-
117
- if (e.key === 'Enter' && p.onSubmit) {
118
- e.preventDefault();
119
- p.onSubmit(state.value());
120
- }
121
-
122
- if (e.key === 'Escape') {
123
- const currentValue = state.value();
124
- const inputValue = inputRef?.()?.value ?? '';
125
-
126
- // Only clear if there's a value
127
- if (currentValue !== '' || inputValue !== '') {
128
- e.preventDefault();
129
- e.stopPropagation();
130
- state.setValue('');
131
- p.onClear?.();
132
- }
133
- }
134
- };
135
-
136
- // Handle clear button click
137
- const onClearButtonClick = () => {
138
- const p = getProps();
139
- state.setValue('');
140
- p.onClear?.();
141
- // Focus the input after clearing
142
- inputRef?.()?.focus();
143
- };
144
-
145
- // Prevent focus from leaving input on mobile when clicking clear button
146
- const onClearButtonMouseDown = (e: MouseEvent) => {
147
- e.preventDefault();
148
- };
149
-
150
- return {
151
- get labelProps() {
152
- return textFieldAria.labelProps;
153
- },
154
- get inputProps() {
155
- return mergeProps(
156
- textFieldAria.inputProps as Record<string, unknown>,
157
- {
158
- onKeyDown,
159
- // Clear defaultValue since it's handled by state
160
- defaultValue: undefined,
161
- } as Record<string, unknown>
162
- ) as JSX.InputHTMLAttributes<HTMLInputElement>;
163
- },
164
- get clearButtonProps() {
165
- const p = getProps();
166
- const isDisabled = p.isDisabled || p.isReadOnly;
167
-
168
- return {
169
- 'aria-label': 'Clear search',
170
- tabIndex: -1, // Exclude from tab order
171
- disabled: isDisabled,
172
- onMouseDown: onClearButtonMouseDown,
173
- onClick: onClearButtonClick,
174
- };
175
- },
176
- get descriptionProps() {
177
- return textFieldAria.descriptionProps;
178
- },
179
- get errorMessageProps() {
180
- return textFieldAria.errorMessageProps;
181
- },
182
- get isInvalid() {
183
- return textFieldAria.isInvalid;
184
- },
185
- };
186
- }
1
+ /**
2
+ * Provides the behavior and accessibility implementation for a search field.
3
+ * A search field allows a user to enter and clear a search query.
4
+ * Based on @react-aria/searchfield useSearchField.
5
+ */
6
+
7
+ import { type JSX } from "solid-js";
8
+ import { createTextField, type AriaTextFieldProps, type TextFieldAria } from "../textfield";
9
+ import { mergeProps } from "../utils";
10
+ import { type MaybeAccessor, access } from "../utils/reactivity";
11
+ import type { SearchFieldState } from "@proyecto-viviana/solid-stately";
12
+
13
+ export interface AriaSearchFieldProps extends AriaTextFieldProps {
14
+ /** Handler that is called when the user submits the search (pressing Enter). */
15
+ onSubmit?: (value: string) => void;
16
+ /** Handler that is called when the clear button is pressed or Escape clears the field. */
17
+ onClear?: () => void;
18
+ }
19
+
20
+ export interface SearchFieldAria extends Omit<TextFieldAria, "inputProps"> {
21
+ /** Props for the input element. */
22
+ inputProps: JSX.InputHTMLAttributes<HTMLInputElement>;
23
+ /** Props for the clear button. */
24
+ clearButtonProps: {
25
+ "aria-label": string;
26
+ tabIndex: number;
27
+ disabled?: boolean;
28
+ onMouseDown: (e: MouseEvent) => void;
29
+ onClick: () => void;
30
+ };
31
+ }
32
+
33
+ /**
34
+ * Provides the behavior and accessibility implementation for a search field.
35
+ */
36
+ export function createSearchField(
37
+ props: MaybeAccessor<AriaSearchFieldProps>,
38
+ state: SearchFieldState,
39
+ inputRef?: () => HTMLInputElement | null,
40
+ ): SearchFieldAria {
41
+ const getProps = () => access(props);
42
+
43
+ const setValue = (value: string) => {
44
+ if (state.value() === value) {
45
+ return;
46
+ }
47
+
48
+ state.setValue(value);
49
+ getProps().onChange?.(value);
50
+ };
51
+
52
+ // Use createTextField for the base implementation
53
+ const textFieldAria = createTextField({
54
+ get value() {
55
+ return state.value();
56
+ },
57
+ get isDisabled() {
58
+ return getProps().isDisabled;
59
+ },
60
+ get isReadOnly() {
61
+ return getProps().isReadOnly;
62
+ },
63
+ get isRequired() {
64
+ return getProps().isRequired;
65
+ },
66
+ get isInvalid() {
67
+ return getProps().isInvalid;
68
+ },
69
+ get label() {
70
+ return getProps().label;
71
+ },
72
+ get "aria-label"() {
73
+ return getProps()["aria-label"];
74
+ },
75
+ get "aria-labelledby"() {
76
+ return getProps()["aria-labelledby"];
77
+ },
78
+ get "aria-describedby"() {
79
+ return getProps()["aria-describedby"];
80
+ },
81
+ get description() {
82
+ return getProps().description;
83
+ },
84
+ get errorMessage() {
85
+ return getProps().errorMessage;
86
+ },
87
+ get placeholder() {
88
+ return getProps().placeholder;
89
+ },
90
+ get name() {
91
+ return getProps().name;
92
+ },
93
+ get form() {
94
+ return getProps().form;
95
+ },
96
+ get validationBehavior() {
97
+ return getProps().validationBehavior ?? "native";
98
+ },
99
+ get type() {
100
+ return getProps().type ?? "search";
101
+ },
102
+ get autoFocus() {
103
+ return getProps().autoFocus;
104
+ },
105
+ get excludeFromTabOrder() {
106
+ return getProps().excludeFromTabOrder;
107
+ },
108
+ get autoComplete() {
109
+ return getProps().autoComplete;
110
+ },
111
+ get inputMode() {
112
+ return getProps().inputMode;
113
+ },
114
+ get enterKeyHint() {
115
+ return getProps().enterKeyHint;
116
+ },
117
+ get autoCorrect() {
118
+ return getProps().autoCorrect;
119
+ },
120
+ get autoCapitalize() {
121
+ return getProps().autoCapitalize;
122
+ },
123
+ get spellCheck() {
124
+ return getProps().spellCheck;
125
+ },
126
+ get maxLength() {
127
+ return getProps().maxLength;
128
+ },
129
+ get minLength() {
130
+ return getProps().minLength;
131
+ },
132
+ get pattern() {
133
+ return getProps().pattern;
134
+ },
135
+ get onFocus() {
136
+ return getProps().onFocus;
137
+ },
138
+ get onBlur() {
139
+ return getProps().onBlur;
140
+ },
141
+ get onFocusChange() {
142
+ return getProps().onFocusChange;
143
+ },
144
+ get onKeyDown() {
145
+ return getProps().onKeyDown;
146
+ },
147
+ get onKeyUp() {
148
+ return getProps().onKeyUp;
149
+ },
150
+ get onCopy() {
151
+ return getProps().onCopy;
152
+ },
153
+ get onCut() {
154
+ return getProps().onCut;
155
+ },
156
+ get onPaste() {
157
+ return getProps().onPaste;
158
+ },
159
+ get onCompositionStart() {
160
+ return getProps().onCompositionStart;
161
+ },
162
+ get onCompositionEnd() {
163
+ return getProps().onCompositionEnd;
164
+ },
165
+ get onCompositionUpdate() {
166
+ return getProps().onCompositionUpdate;
167
+ },
168
+ get onSelect() {
169
+ return getProps().onSelect;
170
+ },
171
+ get onBeforeInput() {
172
+ return getProps().onBeforeInput;
173
+ },
174
+ get onInput() {
175
+ return getProps().onInput;
176
+ },
177
+ onChange: setValue,
178
+ });
179
+
180
+ // Handle keyboard events for search field
181
+ const onKeyDown: JSX.EventHandler<HTMLInputElement, KeyboardEvent> = (e) => {
182
+ const p = getProps();
183
+
184
+ if (p.isDisabled || p.isReadOnly) {
185
+ if (e.key === "Enter") {
186
+ e.preventDefault();
187
+ }
188
+ return;
189
+ }
190
+
191
+ if (e.key === "Enter" && p.onSubmit) {
192
+ e.preventDefault();
193
+ p.onSubmit(state.value());
194
+ }
195
+
196
+ if (e.key === "Escape") {
197
+ const currentValue = state.value();
198
+ const inputValue = inputRef?.()?.value ?? "";
199
+
200
+ // Only clear if there's a value
201
+ if (currentValue !== "" || inputValue !== "") {
202
+ e.preventDefault();
203
+ e.stopPropagation();
204
+ const input = inputRef?.();
205
+ if (input) {
206
+ input.value = "";
207
+ }
208
+ setValue("");
209
+ p.onClear?.();
210
+ }
211
+ }
212
+ };
213
+
214
+ // Handle clear button click
215
+ const onClearButtonClick = () => {
216
+ const p = getProps();
217
+ if (p.isDisabled || p.isReadOnly) return;
218
+ const input = inputRef?.();
219
+ if (input) {
220
+ input.value = "";
221
+ }
222
+ setValue("");
223
+ p.onClear?.();
224
+ // Focus the input after clearing
225
+ inputRef?.()?.focus();
226
+ };
227
+
228
+ // Prevent focus from leaving input on mobile when clicking clear button
229
+ const onClearButtonMouseDown = (e: MouseEvent) => {
230
+ e.preventDefault();
231
+ };
232
+
233
+ return {
234
+ get labelProps() {
235
+ return textFieldAria.labelProps;
236
+ },
237
+ get inputProps() {
238
+ return mergeProps(
239
+ {
240
+ onKeyDown,
241
+ // Clear defaultValue since it's handled by state
242
+ defaultValue: undefined,
243
+ } as Record<string, unknown>,
244
+ textFieldAria.inputProps as Record<string, unknown>,
245
+ ) as JSX.InputHTMLAttributes<HTMLInputElement>;
246
+ },
247
+ get clearButtonProps() {
248
+ const p = getProps();
249
+ const isDisabled = p.isDisabled || p.isReadOnly;
250
+
251
+ return {
252
+ "aria-label": "Clear search",
253
+ tabIndex: -1, // Exclude from tab order
254
+ disabled: isDisabled,
255
+ onMouseDown: onClearButtonMouseDown,
256
+ onClick: onClearButtonClick,
257
+ };
258
+ },
259
+ get descriptionProps() {
260
+ return textFieldAria.descriptionProps;
261
+ },
262
+ get errorMessageProps() {
263
+ return textFieldAria.errorMessageProps;
264
+ },
265
+ get isInvalid() {
266
+ return textFieldAria.isInvalid;
267
+ },
268
+ };
269
+ }
@@ -1,2 +1,2 @@
1
- export { createSearchField } from './createSearchField';
2
- export type { AriaSearchFieldProps, SearchFieldAria } from './createSearchField';
1
+ export { createSearchField } from "./createSearchField";
2
+ export type { AriaSearchFieldProps, SearchFieldAria } from "./createSearchField";