@proyecto-viviana/solidaria 0.4.2 → 0.6.0-rc.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 (1377) hide show
  1. package/LICENSE-APACHE-2.0 +201 -0
  2. package/NOTICE +91 -0
  3. package/dist/_chunk/DragManager.js +71 -25
  4. package/dist/_chunk/DragManager.js.map +1 -1
  5. package/dist/_chunk/DragManager.jsx +71 -25
  6. package/dist/_chunk/DragManager.jsx.map +1 -1
  7. package/dist/_chunk/FocusScope.js +281 -66
  8. package/dist/_chunk/FocusScope.js.map +1 -1
  9. package/dist/_chunk/FocusScope.jsx +274 -55
  10. package/dist/_chunk/FocusScope.jsx.map +1 -1
  11. package/dist/_chunk/actiongroup.js +43 -19
  12. package/dist/_chunk/actiongroup.js.map +1 -1
  13. package/dist/_chunk/actiongroup.jsx +43 -19
  14. package/dist/_chunk/actiongroup.jsx.map +1 -1
  15. package/dist/_chunk/announce.js +19 -6
  16. package/dist/_chunk/announce.js.map +1 -1
  17. package/dist/_chunk/announce.jsx +19 -6
  18. package/dist/_chunk/announce.jsx.map +1 -1
  19. package/dist/_chunk/ariaHideOutside.js +212 -10
  20. package/dist/_chunk/ariaHideOutside.js.map +1 -1
  21. package/dist/_chunk/ariaHideOutside.jsx +212 -10
  22. package/dist/_chunk/ariaHideOutside.jsx.map +1 -1
  23. package/dist/_chunk/autocomplete.js +26 -7
  24. package/dist/_chunk/autocomplete.js.map +1 -1
  25. package/dist/_chunk/autocomplete.jsx +26 -7
  26. package/dist/_chunk/autocomplete.jsx.map +1 -1
  27. package/dist/_chunk/breadcrumbs.js +17 -2
  28. package/dist/_chunk/breadcrumbs.js.map +1 -1
  29. package/dist/_chunk/breadcrumbs.jsx +17 -2
  30. package/dist/_chunk/breadcrumbs.jsx.map +1 -1
  31. package/dist/_chunk/button.js +53 -20
  32. package/dist/_chunk/button.js.map +1 -1
  33. package/dist/_chunk/button.jsx +53 -20
  34. package/dist/_chunk/button.jsx.map +1 -1
  35. package/dist/_chunk/calendar.js +341 -56
  36. package/dist/_chunk/calendar.js.map +1 -1
  37. package/dist/_chunk/calendar.jsx +341 -56
  38. package/dist/_chunk/calendar.jsx.map +1 -1
  39. package/dist/_chunk/checkbox.js +69 -26
  40. package/dist/_chunk/checkbox.js.map +1 -1
  41. package/dist/_chunk/checkbox.jsx +69 -26
  42. package/dist/_chunk/checkbox.jsx.map +1 -1
  43. package/dist/_chunk/color.js +307 -48
  44. package/dist/_chunk/color.js.map +1 -1
  45. package/dist/_chunk/color.jsx +307 -48
  46. package/dist/_chunk/color.jsx.map +1 -1
  47. package/dist/_chunk/combobox.js +193 -103
  48. package/dist/_chunk/combobox.js.map +1 -1
  49. package/dist/_chunk/combobox.jsx +193 -103
  50. package/dist/_chunk/combobox.jsx.map +1 -1
  51. package/dist/_chunk/constants.js +12 -0
  52. package/dist/_chunk/constants.js.map +1 -1
  53. package/dist/_chunk/constants.jsx +12 -0
  54. package/dist/_chunk/constants.jsx.map +1 -1
  55. package/dist/_chunk/createCollator.js +12 -0
  56. package/dist/_chunk/createCollator.js.map +1 -1
  57. package/dist/_chunk/createCollator.jsx +12 -0
  58. package/dist/_chunk/createCollator.jsx.map +1 -1
  59. package/dist/_chunk/createCollectionRowInteraction.js +50 -13
  60. package/dist/_chunk/createCollectionRowInteraction.js.map +1 -1
  61. package/dist/_chunk/createCollectionRowInteraction.jsx +50 -13
  62. package/dist/_chunk/createCollectionRowInteraction.jsx.map +1 -1
  63. package/dist/_chunk/createField.js +35 -25
  64. package/dist/_chunk/createField.js.map +1 -1
  65. package/dist/_chunk/createField.jsx +35 -25
  66. package/dist/_chunk/createField.jsx.map +1 -1
  67. package/dist/_chunk/createFocus.js +18 -5
  68. package/dist/_chunk/createFocus.js.map +1 -1
  69. package/dist/_chunk/createFocus.jsx +18 -5
  70. package/dist/_chunk/createFocus.jsx.map +1 -1
  71. package/dist/_chunk/createFocusRing.js +16 -7
  72. package/dist/_chunk/createFocusRing.js.map +1 -1
  73. package/dist/_chunk/createFocusRing.jsx +16 -7
  74. package/dist/_chunk/createFocusRing.jsx.map +1 -1
  75. package/dist/_chunk/createFocusWithin.js +16 -4
  76. package/dist/_chunk/createFocusWithin.js.map +1 -1
  77. package/dist/_chunk/createFocusWithin.jsx +16 -4
  78. package/dist/_chunk/createFocusWithin.jsx.map +1 -1
  79. package/dist/_chunk/createFocusable.js +39 -53
  80. package/dist/_chunk/createFocusable.js.map +1 -1
  81. package/dist/_chunk/createFocusable.jsx +39 -53
  82. package/dist/_chunk/createFocusable.jsx.map +1 -1
  83. package/dist/_chunk/createFormReset.js +24 -12
  84. package/dist/_chunk/createFormReset.js.map +1 -1
  85. package/dist/_chunk/createFormReset.jsx +24 -12
  86. package/dist/_chunk/createFormReset.jsx.map +1 -1
  87. package/dist/_chunk/createFormValidation.js +41 -17
  88. package/dist/_chunk/createFormValidation.js.map +1 -1
  89. package/dist/_chunk/createFormValidation.jsx +41 -17
  90. package/dist/_chunk/createFormValidation.jsx.map +1 -1
  91. package/dist/_chunk/createHover.js +56 -42
  92. package/dist/_chunk/createHover.js.map +1 -1
  93. package/dist/_chunk/createHover.jsx +56 -42
  94. package/dist/_chunk/createHover.jsx.map +1 -1
  95. package/dist/_chunk/createKeyboard.js +205 -0
  96. package/dist/_chunk/createKeyboard.js.map +1 -0
  97. package/dist/_chunk/createKeyboard.jsx +205 -0
  98. package/dist/_chunk/createKeyboard.jsx.map +1 -0
  99. package/dist/_chunk/createLabel.js +17 -4
  100. package/dist/_chunk/createLabel.js.map +1 -1
  101. package/dist/_chunk/createLabel.jsx +17 -4
  102. package/dist/_chunk/createLabel.jsx.map +1 -1
  103. package/dist/_chunk/createLabels.js +14 -2
  104. package/dist/_chunk/createLabels.js.map +1 -1
  105. package/dist/_chunk/createLabels.jsx +14 -2
  106. package/dist/_chunk/createLabels.jsx.map +1 -1
  107. package/dist/_chunk/createLandmark.js +19 -3
  108. package/dist/_chunk/createLandmark.js.map +1 -1
  109. package/dist/_chunk/createLandmark.jsx +19 -3
  110. package/dist/_chunk/createLandmark.jsx.map +1 -1
  111. package/dist/_chunk/createLongPress.js +105 -0
  112. package/dist/_chunk/createLongPress.js.map +1 -0
  113. package/dist/_chunk/createLongPress.jsx +105 -0
  114. package/dist/_chunk/createLongPress.jsx.map +1 -0
  115. package/dist/_chunk/createOverlay.js +220 -111
  116. package/dist/_chunk/createOverlay.js.map +1 -1
  117. package/dist/_chunk/createOverlay.jsx +220 -111
  118. package/dist/_chunk/createOverlay.jsx.map +1 -1
  119. package/dist/_chunk/createOverlayTrigger.js +58 -0
  120. package/dist/_chunk/createOverlayTrigger.js.map +1 -0
  121. package/dist/_chunk/createOverlayTrigger.jsx +58 -0
  122. package/dist/_chunk/createOverlayTrigger.jsx.map +1 -0
  123. package/dist/_chunk/createPress.js +38 -28
  124. package/dist/_chunk/createPress.js.map +1 -1
  125. package/dist/_chunk/createPress.jsx +38 -28
  126. package/dist/_chunk/createPress.jsx.map +1 -1
  127. package/dist/_chunk/createProgressBar.js +17 -4
  128. package/dist/_chunk/createProgressBar.js.map +1 -1
  129. package/dist/_chunk/createProgressBar.jsx +17 -4
  130. package/dist/_chunk/createProgressBar.jsx.map +1 -1
  131. package/dist/_chunk/createSelectableItem.js +58 -20
  132. package/dist/_chunk/createSelectableItem.js.map +1 -1
  133. package/dist/_chunk/createSelectableItem.jsx +58 -20
  134. package/dist/_chunk/createSelectableItem.jsx.map +1 -1
  135. package/dist/_chunk/createSelectableList.js +776 -0
  136. package/dist/_chunk/createSelectableList.js.map +1 -0
  137. package/dist/_chunk/createSelectableList.jsx +776 -0
  138. package/dist/_chunk/createSelectableList.jsx.map +1 -0
  139. package/dist/_chunk/createStringFormatter.js +350 -5
  140. package/dist/_chunk/createStringFormatter.js.map +1 -1
  141. package/dist/_chunk/createStringFormatter.jsx +350 -5
  142. package/dist/_chunk/createStringFormatter.jsx.map +1 -1
  143. package/dist/_chunk/createToggle.js +68 -19
  144. package/dist/_chunk/createToggle.js.map +1 -1
  145. package/dist/_chunk/createToggle.jsx +68 -19
  146. package/dist/_chunk/createToggle.jsx.map +1 -1
  147. package/dist/_chunk/createTypeSelect.js +15 -3
  148. package/dist/_chunk/createTypeSelect.js.map +1 -1
  149. package/dist/_chunk/createTypeSelect.jsx +15 -3
  150. package/dist/_chunk/createTypeSelect.jsx.map +1 -1
  151. package/dist/_chunk/{visually-hidden.js → createVisuallyHidden.js} +16 -4
  152. package/dist/_chunk/createVisuallyHidden.js.map +1 -0
  153. package/dist/_chunk/{visually-hidden.jsx → createVisuallyHidden.jsx} +16 -4
  154. package/dist/_chunk/createVisuallyHidden.jsx.map +1 -0
  155. package/dist/_chunk/datepicker.js +687 -602
  156. package/dist/_chunk/datepicker.js.map +1 -1
  157. package/dist/_chunk/datepicker.jsx +687 -602
  158. package/dist/_chunk/datepicker.jsx.map +1 -1
  159. package/dist/_chunk/dialog.js +49 -19
  160. package/dist/_chunk/dialog.js.map +1 -1
  161. package/dist/_chunk/dialog.jsx +49 -19
  162. package/dist/_chunk/dialog.jsx.map +1 -1
  163. package/dist/_chunk/disclosure.js +48 -28
  164. package/dist/_chunk/disclosure.js.map +1 -1
  165. package/dist/_chunk/disclosure.jsx +48 -28
  166. package/dist/_chunk/disclosure.jsx.map +1 -1
  167. package/dist/_chunk/dnd.js +1340 -1172
  168. package/dist/_chunk/dnd.js.map +1 -1
  169. package/dist/_chunk/dnd.jsx +1340 -1172
  170. package/dist/_chunk/dnd.jsx.map +1 -1
  171. package/dist/_chunk/dom.js +1200 -0
  172. package/dist/_chunk/dom.js.map +1 -0
  173. package/dist/_chunk/dom.jsx +1200 -0
  174. package/dist/_chunk/dom.jsx.map +1 -0
  175. package/dist/_chunk/env.js +1 -57
  176. package/dist/_chunk/env.js.map +1 -1
  177. package/dist/_chunk/env.jsx +1 -57
  178. package/dist/_chunk/env.jsx.map +1 -1
  179. package/dist/_chunk/filterDOMProps.js +32 -7
  180. package/dist/_chunk/filterDOMProps.js.map +1 -1
  181. package/dist/_chunk/filterDOMProps.jsx +32 -7
  182. package/dist/_chunk/filterDOMProps.jsx.map +1 -1
  183. package/dist/_chunk/focus.js +570 -338
  184. package/dist/_chunk/focus.js.map +1 -1
  185. package/dist/_chunk/focus.jsx +570 -338
  186. package/dist/_chunk/focus.jsx.map +1 -1
  187. package/dist/_chunk/grid.js +62 -8
  188. package/dist/_chunk/grid.js.map +1 -1
  189. package/dist/_chunk/grid.jsx +62 -8
  190. package/dist/_chunk/grid.jsx.map +1 -1
  191. package/dist/_chunk/gridlist.js +192 -53
  192. package/dist/_chunk/gridlist.js.map +1 -1
  193. package/dist/_chunk/gridlist.jsx +192 -53
  194. package/dist/_chunk/gridlist.jsx.map +1 -1
  195. package/dist/_chunk/i18n.js +68 -1
  196. package/dist/_chunk/i18n.js.map +1 -1
  197. package/dist/_chunk/i18n.jsx +68 -1
  198. package/dist/_chunk/i18n.jsx.map +1 -1
  199. package/dist/_chunk/interactions.js +38 -102
  200. package/dist/_chunk/interactions.js.map +1 -1
  201. package/dist/_chunk/interactions.jsx +38 -100
  202. package/dist/_chunk/interactions.jsx.map +1 -1
  203. package/dist/_chunk/intl.js +280 -0
  204. package/dist/_chunk/intl.js.map +1 -0
  205. package/dist/_chunk/intl.jsx +280 -0
  206. package/dist/_chunk/intl.jsx.map +1 -0
  207. package/dist/_chunk/link.js +15 -4
  208. package/dist/_chunk/link.js.map +1 -1
  209. package/dist/_chunk/link.jsx +15 -4
  210. package/dist/_chunk/link.jsx.map +1 -1
  211. package/dist/_chunk/listbox.js +99 -175
  212. package/dist/_chunk/listbox.js.map +1 -1
  213. package/dist/_chunk/listbox.jsx +99 -175
  214. package/dist/_chunk/listbox.jsx.map +1 -1
  215. package/dist/_chunk/locale.js +58 -12
  216. package/dist/_chunk/locale.js.map +1 -1
  217. package/dist/_chunk/locale.jsx +57 -11
  218. package/dist/_chunk/locale.jsx.map +1 -1
  219. package/dist/_chunk/menu.js +298 -57
  220. package/dist/_chunk/menu.js.map +1 -1
  221. package/dist/_chunk/menu.jsx +298 -57
  222. package/dist/_chunk/menu.jsx.map +1 -1
  223. package/dist/_chunk/mergeProps.js +216 -0
  224. package/dist/_chunk/mergeProps.js.map +1 -0
  225. package/dist/_chunk/mergeProps.jsx +216 -0
  226. package/dist/_chunk/mergeProps.jsx.map +1 -0
  227. package/dist/_chunk/meter.js +16 -4
  228. package/dist/_chunk/meter.js.map +1 -1
  229. package/dist/_chunk/meter.jsx +16 -4
  230. package/dist/_chunk/meter.jsx.map +1 -1
  231. package/dist/_chunk/numberfield.js +167 -22
  232. package/dist/_chunk/numberfield.js.map +1 -1
  233. package/dist/_chunk/numberfield.jsx +167 -22
  234. package/dist/_chunk/numberfield.jsx.map +1 -1
  235. package/dist/_chunk/overlays.js +87 -74
  236. package/dist/_chunk/overlays.js.map +1 -1
  237. package/dist/_chunk/overlays.jsx +71 -57
  238. package/dist/_chunk/overlays.jsx.map +1 -1
  239. package/dist/_chunk/owner.js +23 -0
  240. package/dist/_chunk/owner.js.map +1 -0
  241. package/dist/_chunk/owner.jsx +23 -0
  242. package/dist/_chunk/owner.jsx.map +1 -0
  243. package/dist/_chunk/popover.js +180 -42
  244. package/dist/_chunk/popover.js.map +1 -1
  245. package/dist/_chunk/popover.jsx +180 -42
  246. package/dist/_chunk/popover.jsx.map +1 -1
  247. package/dist/_chunk/radio.js +92 -32
  248. package/dist/_chunk/radio.js.map +1 -1
  249. package/dist/_chunk/radio.jsx +92 -32
  250. package/dist/_chunk/radio.jsx.map +1 -1
  251. package/dist/_chunk/reactivity.js.map +1 -1
  252. package/dist/_chunk/reactivity.jsx.map +1 -1
  253. package/dist/_chunk/refs.js +41 -0
  254. package/dist/_chunk/refs.js.map +1 -0
  255. package/dist/_chunk/refs.jsx +41 -0
  256. package/dist/_chunk/refs.jsx.map +1 -0
  257. package/dist/_chunk/searchfield.js +69 -3
  258. package/dist/_chunk/searchfield.js.map +1 -1
  259. package/dist/_chunk/searchfield.jsx +69 -3
  260. package/dist/_chunk/searchfield.jsx.map +1 -1
  261. package/dist/_chunk/select.js +226 -80
  262. package/dist/_chunk/select.js.map +1 -1
  263. package/dist/_chunk/select.jsx +162 -70
  264. package/dist/_chunk/select.jsx.map +1 -1
  265. package/dist/_chunk/selection.js +20 -638
  266. package/dist/_chunk/selection.js.map +1 -1
  267. package/dist/_chunk/selection.jsx +20 -638
  268. package/dist/_chunk/selection.jsx.map +1 -1
  269. package/dist/_chunk/separator.js +12 -0
  270. package/dist/_chunk/separator.js.map +1 -1
  271. package/dist/_chunk/separator.jsx +12 -0
  272. package/dist/_chunk/separator.jsx.map +1 -1
  273. package/dist/_chunk/slider.js +25 -16
  274. package/dist/_chunk/slider.js.map +1 -1
  275. package/dist/_chunk/slider.jsx +25 -16
  276. package/dist/_chunk/slider.jsx.map +1 -1
  277. package/dist/_chunk/spinbutton.js +52 -42
  278. package/dist/_chunk/spinbutton.js.map +1 -1
  279. package/dist/_chunk/spinbutton.jsx +52 -42
  280. package/dist/_chunk/spinbutton.jsx.map +1 -1
  281. package/dist/_chunk/steplist.js +14 -1
  282. package/dist/_chunk/steplist.js.map +1 -1
  283. package/dist/_chunk/steplist.jsx +14 -1
  284. package/dist/_chunk/steplist.jsx.map +1 -1
  285. package/dist/_chunk/switch.js +21 -3
  286. package/dist/_chunk/switch.js.map +1 -1
  287. package/dist/_chunk/switch.jsx +21 -3
  288. package/dist/_chunk/switch.jsx.map +1 -1
  289. package/dist/_chunk/table.js +666 -88
  290. package/dist/_chunk/table.js.map +1 -1
  291. package/dist/_chunk/table.jsx +666 -88
  292. package/dist/_chunk/table.jsx.map +1 -1
  293. package/dist/_chunk/tabs.js +115 -17
  294. package/dist/_chunk/tabs.js.map +1 -1
  295. package/dist/_chunk/tabs.jsx +115 -17
  296. package/dist/_chunk/tabs.jsx.map +1 -1
  297. package/dist/_chunk/tag.js +240 -39
  298. package/dist/_chunk/tag.js.map +1 -1
  299. package/dist/_chunk/tag.jsx +240 -39
  300. package/dist/_chunk/tag.jsx.map +1 -1
  301. package/dist/_chunk/textfield.js +83 -12
  302. package/dist/_chunk/textfield.js.map +1 -1
  303. package/dist/_chunk/textfield.jsx +83 -12
  304. package/dist/_chunk/textfield.jsx.map +1 -1
  305. package/dist/_chunk/toast.js +61 -28
  306. package/dist/_chunk/toast.js.map +1 -1
  307. package/dist/_chunk/toast.jsx +61 -28
  308. package/dist/_chunk/toast.jsx.map +1 -1
  309. package/dist/_chunk/tokenfield.js +567 -0
  310. package/dist/_chunk/tokenfield.js.map +1 -0
  311. package/dist/_chunk/tokenfield.jsx +567 -0
  312. package/dist/_chunk/tokenfield.jsx.map +1 -0
  313. package/dist/_chunk/toolbar.js +25 -8
  314. package/dist/_chunk/toolbar.js.map +1 -1
  315. package/dist/_chunk/toolbar.jsx +25 -8
  316. package/dist/_chunk/toolbar.jsx.map +1 -1
  317. package/dist/_chunk/tooltip.js +379 -6
  318. package/dist/_chunk/tooltip.js.map +1 -1
  319. package/dist/_chunk/tooltip.jsx +379 -6
  320. package/dist/_chunk/tooltip.jsx.map +1 -1
  321. package/dist/_chunk/tree.js +280 -69
  322. package/dist/_chunk/tree.js.map +1 -1
  323. package/dist/_chunk/tree.jsx +280 -69
  324. package/dist/_chunk/tree.jsx.map +1 -1
  325. package/dist/_chunk/utils.js +192 -150
  326. package/dist/_chunk/utils.js.map +1 -1
  327. package/dist/_chunk/utils.jsx +192 -150
  328. package/dist/_chunk/utils.jsx.map +1 -1
  329. package/dist/_chunk/virtualFocus.js +54 -0
  330. package/dist/_chunk/virtualFocus.js.map +1 -0
  331. package/dist/_chunk/virtualFocus.jsx +54 -0
  332. package/dist/_chunk/virtualFocus.jsx.map +1 -0
  333. package/dist/_chunk/virtualizer.js +202 -0
  334. package/dist/_chunk/virtualizer.js.map +1 -0
  335. package/dist/_chunk/virtualizer.jsx +202 -0
  336. package/dist/_chunk/virtualizer.jsx.map +1 -0
  337. package/dist/actiongroup/createActionGroup.d.ts +2 -1
  338. package/dist/actiongroup/createActionGroup.d.ts.map +1 -1
  339. package/dist/autocomplete/createAutocomplete.d.ts +1 -9
  340. package/dist/autocomplete/createAutocomplete.d.ts.map +1 -1
  341. package/dist/autocomplete/intl/index.d.ts +13 -0
  342. package/dist/autocomplete/intl/index.d.ts.map +1 -0
  343. package/dist/breadcrumbs/createBreadcrumbs.d.ts +3 -1
  344. package/dist/breadcrumbs/createBreadcrumbs.d.ts.map +1 -1
  345. package/dist/breadcrumbs/intl/index.d.ts +13 -0
  346. package/dist/breadcrumbs/intl/index.d.ts.map +1 -0
  347. package/dist/button/createButton.d.ts.map +1 -1
  348. package/dist/button/createToggleButton.d.ts.map +1 -1
  349. package/dist/button/createToggleButtonGroup.d.ts +1 -1
  350. package/dist/button/createToggleButtonGroup.d.ts.map +1 -1
  351. package/dist/button/types.d.ts +14 -0
  352. package/dist/button/types.d.ts.map +1 -1
  353. package/dist/calendar/createCalendar.d.ts +1 -7
  354. package/dist/calendar/createCalendar.d.ts.map +1 -1
  355. package/dist/calendar/createCalendarCell.d.ts +0 -6
  356. package/dist/calendar/createCalendarCell.d.ts.map +1 -1
  357. package/dist/calendar/createCalendarGrid.d.ts +1 -7
  358. package/dist/calendar/createCalendarGrid.d.ts.map +1 -1
  359. package/dist/calendar/createCalendarMonthPicker.d.ts +0 -8
  360. package/dist/calendar/createCalendarMonthPicker.d.ts.map +1 -1
  361. package/dist/calendar/createCalendarYearPicker.d.ts +0 -8
  362. package/dist/calendar/createCalendarYearPicker.d.ts.map +1 -1
  363. package/dist/calendar/createRangeCalendar.d.ts +13 -7
  364. package/dist/calendar/createRangeCalendar.d.ts.map +1 -1
  365. package/dist/calendar/createRangeCalendarCell.d.ts +2 -6
  366. package/dist/calendar/createRangeCalendarCell.d.ts.map +1 -1
  367. package/dist/calendar/intl/index.d.ts.map +1 -1
  368. package/dist/calendar/utils.d.ts.map +1 -1
  369. package/dist/checkbox/createCheckbox.d.ts +2 -1
  370. package/dist/checkbox/createCheckbox.d.ts.map +1 -1
  371. package/dist/checkbox/createCheckboxGroup.d.ts +1 -9
  372. package/dist/checkbox/createCheckboxGroup.d.ts.map +1 -1
  373. package/dist/checkbox/createCheckboxGroupItem.d.ts +0 -8
  374. package/dist/checkbox/createCheckboxGroupItem.d.ts.map +1 -1
  375. package/dist/collections/index.d.ts +1 -1
  376. package/dist/collections/index.d.ts.map +1 -1
  377. package/dist/collections/index.js +18 -2
  378. package/dist/collections/index.js.map +1 -1
  379. package/dist/collections/index.jsx +18 -2
  380. package/dist/collections/index.jsx.map +1 -1
  381. package/dist/color/createColorArea.d.ts +2 -7
  382. package/dist/color/createColorArea.d.ts.map +1 -1
  383. package/dist/color/createColorField.d.ts +2 -7
  384. package/dist/color/createColorField.d.ts.map +1 -1
  385. package/dist/color/createColorSlider.d.ts +1 -6
  386. package/dist/color/createColorSlider.d.ts.map +1 -1
  387. package/dist/color/createColorSwatch.d.ts +1 -6
  388. package/dist/color/createColorSwatch.d.ts.map +1 -1
  389. package/dist/color/createColorWheel.d.ts +1 -6
  390. package/dist/color/createColorWheel.d.ts.map +1 -1
  391. package/dist/color/intl/index.d.ts.map +1 -1
  392. package/dist/color/types.d.ts +47 -1
  393. package/dist/color/types.d.ts.map +1 -1
  394. package/dist/combobox/createComboBox.d.ts +17 -8
  395. package/dist/combobox/createComboBox.d.ts.map +1 -1
  396. package/dist/combobox/intl/generated-locales.d.ts +3 -0
  397. package/dist/combobox/intl/generated-locales.d.ts.map +1 -1
  398. package/dist/combobox/intl/index.d.ts +3 -2
  399. package/dist/combobox/intl/index.d.ts.map +1 -1
  400. package/dist/datepicker/createDateField.d.ts +0 -10
  401. package/dist/datepicker/createDateField.d.ts.map +1 -1
  402. package/dist/datepicker/createDatePicker.d.ts +0 -16
  403. package/dist/datepicker/createDatePicker.d.ts.map +1 -1
  404. package/dist/datepicker/createDatePickerGroup.d.ts +1 -1
  405. package/dist/datepicker/createDatePickerGroup.d.ts.map +1 -1
  406. package/dist/datepicker/createDateRangePicker.d.ts +0 -21
  407. package/dist/datepicker/createDateRangePicker.d.ts.map +1 -1
  408. package/dist/datepicker/createDateSegment.d.ts +0 -9
  409. package/dist/datepicker/createDateSegment.d.ts.map +1 -1
  410. package/dist/datepicker/createDisplayNames.d.ts +1 -9
  411. package/dist/datepicker/createDisplayNames.d.ts.map +1 -1
  412. package/dist/datepicker/createTimeField.d.ts.map +1 -1
  413. package/dist/datepicker/intl.d.ts.map +1 -1
  414. package/dist/dialog/createDialog.d.ts +2 -4
  415. package/dist/dialog/createDialog.d.ts.map +1 -1
  416. package/dist/dialog/types.d.ts +14 -0
  417. package/dist/dialog/types.d.ts.map +1 -1
  418. package/dist/disclosure/createDisclosure.d.ts +1 -8
  419. package/dist/disclosure/createDisclosure.d.ts.map +1 -1
  420. package/dist/disclosure/createDisclosureGroup.d.ts +3 -4
  421. package/dist/disclosure/createDisclosureGroup.d.ts.map +1 -1
  422. package/dist/dnd/DragManager.d.ts +1 -16
  423. package/dist/dnd/DragManager.d.ts.map +1 -1
  424. package/dist/dnd/DropTargetKeyboardNavigation.d.ts +2 -2
  425. package/dist/dnd/createDrag.d.ts +1 -7
  426. package/dist/dnd/createDrag.d.ts.map +1 -1
  427. package/dist/dnd/createDraggableCollection.d.ts +1 -7
  428. package/dist/dnd/createDraggableCollection.d.ts.map +1 -1
  429. package/dist/dnd/createDraggableItem.d.ts +2 -7
  430. package/dist/dnd/createDraggableItem.d.ts.map +1 -1
  431. package/dist/dnd/createDrop.d.ts +1 -7
  432. package/dist/dnd/createDrop.d.ts.map +1 -1
  433. package/dist/dnd/createDropIndicator.d.ts +27 -0
  434. package/dist/dnd/createDropIndicator.d.ts.map +1 -0
  435. package/dist/dnd/createDroppableCollection.d.ts +6 -8
  436. package/dist/dnd/createDroppableCollection.d.ts.map +1 -1
  437. package/dist/dnd/createDroppableItem.d.ts +12 -10
  438. package/dist/dnd/createDroppableItem.d.ts.map +1 -1
  439. package/dist/dnd/index.d.ts +3 -1
  440. package/dist/dnd/index.d.ts.map +1 -1
  441. package/dist/dnd/index.js +2 -2
  442. package/dist/dnd/index.jsx +2 -2
  443. package/dist/dnd/intl/index.d.ts +6 -4
  444. package/dist/dnd/intl/index.d.ts.map +1 -1
  445. package/dist/dnd/types.d.ts +20 -1
  446. package/dist/dnd/types.d.ts.map +1 -1
  447. package/dist/dnd/utils.d.ts +4 -0
  448. package/dist/dnd/utils.d.ts.map +1 -1
  449. package/dist/focus/FocusScope.d.ts +9 -5
  450. package/dist/focus/FocusScope.d.ts.map +1 -1
  451. package/dist/focus/createAutoFocus.d.ts +3 -0
  452. package/dist/focus/createAutoFocus.d.ts.map +1 -1
  453. package/dist/focus/createFocusRestore.d.ts +3 -0
  454. package/dist/focus/createFocusRestore.d.ts.map +1 -1
  455. package/dist/focus/createHasTabbableChild.d.ts +13 -0
  456. package/dist/focus/createHasTabbableChild.d.ts.map +1 -0
  457. package/dist/focus/createVirtualFocus.d.ts +4 -1
  458. package/dist/focus/createVirtualFocus.d.ts.map +1 -1
  459. package/dist/focus/index.js +3 -2
  460. package/dist/focus/index.jsx +3 -2
  461. package/dist/focus/virtualFocus.d.ts +1 -1
  462. package/dist/form/createFormReset.d.ts +1 -7
  463. package/dist/form/createFormReset.d.ts.map +1 -1
  464. package/dist/form/createFormValidation.d.ts +1 -9
  465. package/dist/form/createFormValidation.d.ts.map +1 -1
  466. package/dist/grid/GridKeyboardDelegate.d.ts.map +1 -1
  467. package/dist/grid/createGrid.d.ts +1 -5
  468. package/dist/grid/createGrid.d.ts.map +1 -1
  469. package/dist/grid/createGridCell.d.ts +1 -5
  470. package/dist/grid/createGridCell.d.ts.map +1 -1
  471. package/dist/grid/createGridRow.d.ts +1 -5
  472. package/dist/grid/createGridRow.d.ts.map +1 -1
  473. package/dist/grid/index.d.ts +2 -2
  474. package/dist/grid/intl/index.d.ts +18 -0
  475. package/dist/grid/intl/index.d.ts.map +1 -0
  476. package/dist/grid/types.d.ts +25 -2
  477. package/dist/grid/types.d.ts.map +1 -1
  478. package/dist/gridlist/createGridList.d.ts +3 -5
  479. package/dist/gridlist/createGridList.d.ts.map +1 -1
  480. package/dist/gridlist/createGridListItem.d.ts +1 -5
  481. package/dist/gridlist/createGridListItem.d.ts.map +1 -1
  482. package/dist/gridlist/createGridListSection.d.ts +0 -4
  483. package/dist/gridlist/createGridListSection.d.ts.map +1 -1
  484. package/dist/gridlist/createGridListSelectionCheckbox.d.ts +1 -5
  485. package/dist/gridlist/createGridListSelectionCheckbox.d.ts.map +1 -1
  486. package/dist/gridlist/intl/index.d.ts +14 -0
  487. package/dist/gridlist/intl/index.d.ts.map +1 -0
  488. package/dist/gridlist/types.d.ts +56 -2
  489. package/dist/gridlist/types.d.ts.map +1 -1
  490. package/dist/i18n/compileIcu.d.ts +24 -0
  491. package/dist/i18n/compileIcu.d.ts.map +1 -0
  492. package/dist/i18n/createCollator.d.ts +0 -7
  493. package/dist/i18n/createCollator.d.ts.map +1 -1
  494. package/dist/i18n/createDateFormatter.d.ts +0 -7
  495. package/dist/i18n/createDateFormatter.d.ts.map +1 -1
  496. package/dist/i18n/createFilter.d.ts +0 -7
  497. package/dist/i18n/createFilter.d.ts.map +1 -1
  498. package/dist/i18n/createListFormatter.d.ts +9 -0
  499. package/dist/i18n/createListFormatter.d.ts.map +1 -0
  500. package/dist/i18n/createNumberFormatter.d.ts +0 -7
  501. package/dist/i18n/createNumberFormatter.d.ts.map +1 -1
  502. package/dist/i18n/createStringFormatter.d.ts +14 -4
  503. package/dist/i18n/createStringFormatter.d.ts.map +1 -1
  504. package/dist/i18n/index.d.ts +1 -0
  505. package/dist/i18n/index.d.ts.map +1 -1
  506. package/dist/i18n/index.js +2 -2
  507. package/dist/i18n/index.jsx +2 -2
  508. package/dist/i18n/locale.d.ts +2 -8
  509. package/dist/i18n/locale.d.ts.map +1 -1
  510. package/dist/i18n/utils.d.ts +0 -7
  511. package/dist/i18n/utils.d.ts.map +1 -1
  512. package/dist/index.d.ts +10 -7
  513. package/dist/index.d.ts.map +1 -1
  514. package/dist/index.js +27 -21
  515. package/dist/index.jsx +27 -21
  516. package/dist/interactions/FocusableProvider.d.ts +3 -2
  517. package/dist/interactions/FocusableProvider.d.ts.map +1 -1
  518. package/dist/interactions/PressEvent.d.ts +2 -1
  519. package/dist/interactions/PressEvent.d.ts.map +1 -1
  520. package/dist/interactions/createContextMenu.d.ts +24 -0
  521. package/dist/interactions/createContextMenu.d.ts.map +1 -0
  522. package/dist/interactions/createFocus.d.ts +3 -2
  523. package/dist/interactions/createFocus.d.ts.map +1 -1
  524. package/dist/interactions/createFocusRing.d.ts +2 -1
  525. package/dist/interactions/createFocusRing.d.ts.map +1 -1
  526. package/dist/interactions/createFocusWithin.d.ts +1 -6
  527. package/dist/interactions/createFocusWithin.d.ts.map +1 -1
  528. package/dist/interactions/createFocusable.d.ts +2 -6
  529. package/dist/interactions/createFocusable.d.ts.map +1 -1
  530. package/dist/interactions/createHover.d.ts +3 -10
  531. package/dist/interactions/createHover.d.ts.map +1 -1
  532. package/dist/interactions/createInteractionModality.d.ts +12 -10
  533. package/dist/interactions/createInteractionModality.d.ts.map +1 -1
  534. package/dist/interactions/createKeyboard.d.ts +12 -3
  535. package/dist/interactions/createKeyboard.d.ts.map +1 -1
  536. package/dist/interactions/createKeyboardShortcutHandler.d.ts +24 -0
  537. package/dist/interactions/createKeyboardShortcutHandler.d.ts.map +1 -0
  538. package/dist/interactions/createLongPress.d.ts +4 -7
  539. package/dist/interactions/createLongPress.d.ts.map +1 -1
  540. package/dist/interactions/createMove.d.ts +1 -6
  541. package/dist/interactions/createMove.d.ts.map +1 -1
  542. package/dist/interactions/createPress.d.ts +2 -7
  543. package/dist/interactions/createPress.d.ts.map +1 -1
  544. package/dist/interactions/index.d.ts +1 -1
  545. package/dist/interactions/index.d.ts.map +1 -1
  546. package/dist/interactions/index.js +5 -3
  547. package/dist/interactions/index.jsx +5 -3
  548. package/dist/label/createField.d.ts +7 -1
  549. package/dist/label/createField.d.ts.map +1 -1
  550. package/dist/label/createLabel.d.ts +1 -1
  551. package/dist/label/createLabel.d.ts.map +1 -1
  552. package/dist/label/createLabels.d.ts +0 -7
  553. package/dist/label/createLabels.d.ts.map +1 -1
  554. package/dist/landmark/createLandmark.d.ts +4 -1
  555. package/dist/landmark/createLandmark.d.ts.map +1 -1
  556. package/dist/link/createLink.d.ts +1 -1
  557. package/dist/link/createLink.d.ts.map +1 -1
  558. package/dist/listbox/createListBox.d.ts +8 -7
  559. package/dist/listbox/createListBox.d.ts.map +1 -1
  560. package/dist/listbox/createOption.d.ts +7 -1
  561. package/dist/listbox/createOption.d.ts.map +1 -1
  562. package/dist/live-announcer/announce.d.ts +2 -13
  563. package/dist/live-announcer/announce.d.ts.map +1 -1
  564. package/dist/menu/createMenu.d.ts +3 -7
  565. package/dist/menu/createMenu.d.ts.map +1 -1
  566. package/dist/menu/createMenuItem.d.ts +2 -1
  567. package/dist/menu/createMenuItem.d.ts.map +1 -1
  568. package/dist/menu/createMenuTrigger.d.ts +24 -20
  569. package/dist/menu/createMenuTrigger.d.ts.map +1 -1
  570. package/dist/menu/index.d.ts +1 -1
  571. package/dist/menu/index.d.ts.map +1 -1
  572. package/dist/menu/intl/index.d.ts +4 -0
  573. package/dist/menu/intl/index.d.ts.map +1 -0
  574. package/dist/meter/createMeter.d.ts +2 -1
  575. package/dist/meter/createMeter.d.ts.map +1 -1
  576. package/dist/numberfield/createNumberField.d.ts +29 -6
  577. package/dist/numberfield/createNumberField.d.ts.map +1 -1
  578. package/dist/overlays/ariaHideOutside.d.ts +0 -4
  579. package/dist/overlays/ariaHideOutside.d.ts.map +1 -1
  580. package/dist/overlays/createInteractOutside.d.ts +2 -5
  581. package/dist/overlays/createInteractOutside.d.ts.map +1 -1
  582. package/dist/overlays/createModal.d.ts +3 -6
  583. package/dist/overlays/createModal.d.ts.map +1 -1
  584. package/dist/overlays/createOverlay.d.ts +1 -5
  585. package/dist/overlays/createOverlay.d.ts.map +1 -1
  586. package/dist/overlays/createOverlayTrigger.d.ts +2 -6
  587. package/dist/overlays/createOverlayTrigger.d.ts.map +1 -1
  588. package/dist/overlays/createPreventScroll.d.ts +0 -4
  589. package/dist/overlays/createPreventScroll.d.ts.map +1 -1
  590. package/dist/overlays/index.d.ts +1 -0
  591. package/dist/overlays/index.d.ts.map +1 -1
  592. package/dist/overlays/index.js +3 -2
  593. package/dist/overlays/index.jsx +3 -2
  594. package/dist/overlays/intl/index.d.ts +13 -0
  595. package/dist/overlays/intl/index.d.ts.map +1 -0
  596. package/dist/popover/calculatePosition.d.ts +1 -1
  597. package/dist/popover/calculatePosition.d.ts.map +1 -1
  598. package/dist/popover/createOverlayPosition.d.ts +1 -7
  599. package/dist/popover/createOverlayPosition.d.ts.map +1 -1
  600. package/dist/popover/createPopover.d.ts +6 -7
  601. package/dist/popover/createPopover.d.ts.map +1 -1
  602. package/dist/progress/createProgressBar.d.ts +2 -10
  603. package/dist/progress/createProgressBar.d.ts.map +1 -1
  604. package/dist/radio/createRadio.d.ts +8 -1
  605. package/dist/radio/createRadio.d.ts.map +1 -1
  606. package/dist/radio/createRadioGroup.d.ts +1 -9
  607. package/dist/radio/createRadioGroup.d.ts.map +1 -1
  608. package/dist/searchfield/createSearchField.d.ts +1 -1
  609. package/dist/searchfield/createSearchField.d.ts.map +1 -1
  610. package/dist/searchfield/intl/index.d.ts +13 -0
  611. package/dist/searchfield/intl/index.d.ts.map +1 -0
  612. package/dist/select/createHiddenSelect.d.ts +3 -10
  613. package/dist/select/createHiddenSelect.d.ts.map +1 -1
  614. package/dist/select/createSelect.d.ts +10 -6
  615. package/dist/select/createSelect.d.ts.map +1 -1
  616. package/dist/selection/DOMLayoutDelegate.d.ts.map +1 -1
  617. package/dist/selection/ListKeyboardDelegate.d.ts +2 -1
  618. package/dist/selection/ListKeyboardDelegate.d.ts.map +1 -1
  619. package/dist/selection/constants.d.ts.map +1 -1
  620. package/dist/selection/createCollectionRowInteraction.d.ts +12 -1
  621. package/dist/selection/createCollectionRowInteraction.d.ts.map +1 -1
  622. package/dist/selection/createScrollIntoViewOnFocus.d.ts +0 -11
  623. package/dist/selection/createScrollIntoViewOnFocus.d.ts.map +1 -1
  624. package/dist/selection/createSelectableCollection.d.ts +1 -23
  625. package/dist/selection/createSelectableCollection.d.ts.map +1 -1
  626. package/dist/selection/createSelectableItem.d.ts +2 -29
  627. package/dist/selection/createSelectableItem.d.ts.map +1 -1
  628. package/dist/selection/createSelectableList.d.ts +4 -17
  629. package/dist/selection/createSelectableList.d.ts.map +1 -1
  630. package/dist/selection/createTypeSelect.d.ts +2 -8
  631. package/dist/selection/createTypeSelect.d.ts.map +1 -1
  632. package/dist/selection/index.js +3 -2
  633. package/dist/selection/index.jsx +3 -2
  634. package/dist/selection/selectItem.d.ts.map +1 -1
  635. package/dist/selection/utils.d.ts +1 -1
  636. package/dist/selection/utils.d.ts.map +1 -1
  637. package/dist/separator/createSeparator.d.ts +3 -1
  638. package/dist/separator/createSeparator.d.ts.map +1 -1
  639. package/dist/slider/createSlider.d.ts +1 -6
  640. package/dist/slider/createSlider.d.ts.map +1 -1
  641. package/dist/spinbutton/createSpinButton.d.ts +0 -9
  642. package/dist/spinbutton/createSpinButton.d.ts.map +1 -1
  643. package/dist/spinbutton/index.d.ts +2 -2
  644. package/dist/spinbutton/index.d.ts.map +1 -1
  645. package/dist/spinbutton/intl.d.ts.map +1 -1
  646. package/dist/ssr/index.d.ts +3 -9
  647. package/dist/ssr/index.d.ts.map +1 -1
  648. package/dist/ssr/index.js +47 -26
  649. package/dist/ssr/index.js.map +1 -1
  650. package/dist/ssr/index.jsx +47 -26
  651. package/dist/ssr/index.jsx.map +1 -1
  652. package/dist/steplist/createStepList.d.ts +1 -1
  653. package/dist/steplist/createStepList.d.ts.map +1 -1
  654. package/dist/switch/createSwitch.d.ts +2 -1
  655. package/dist/switch/createSwitch.d.ts.map +1 -1
  656. package/dist/table/createTable.d.ts +1 -5
  657. package/dist/table/createTable.d.ts.map +1 -1
  658. package/dist/table/createTableCell.d.ts +1 -5
  659. package/dist/table/createTableCell.d.ts.map +1 -1
  660. package/dist/table/createTableColumnHeader.d.ts +1 -5
  661. package/dist/table/createTableColumnHeader.d.ts.map +1 -1
  662. package/dist/table/createTableColumnResize.d.ts +2 -8
  663. package/dist/table/createTableColumnResize.d.ts.map +1 -1
  664. package/dist/table/createTableHeaderRow.d.ts +1 -5
  665. package/dist/table/createTableHeaderRow.d.ts.map +1 -1
  666. package/dist/table/createTableRow.d.ts +1 -5
  667. package/dist/table/createTableRow.d.ts.map +1 -1
  668. package/dist/table/createTableRowGroup.d.ts +1 -5
  669. package/dist/table/createTableRowGroup.d.ts.map +1 -1
  670. package/dist/table/createTableSelectAllCheckbox.d.ts +1 -5
  671. package/dist/table/createTableSelectAllCheckbox.d.ts.map +1 -1
  672. package/dist/table/createTableSelectionCheckbox.d.ts +1 -5
  673. package/dist/table/createTableSelectionCheckbox.d.ts.map +1 -1
  674. package/dist/table/index.d.ts +2 -2
  675. package/dist/table/intl/index.d.ts +23 -0
  676. package/dist/table/intl/index.d.ts.map +1 -0
  677. package/dist/table/types.d.ts +44 -2
  678. package/dist/table/types.d.ts.map +1 -1
  679. package/dist/table/utils.d.ts.map +1 -1
  680. package/dist/tabs/createTabs.d.ts +5 -9
  681. package/dist/tabs/createTabs.d.ts.map +1 -1
  682. package/dist/tag/createTag.d.ts +4 -8
  683. package/dist/tag/createTag.d.ts.map +1 -1
  684. package/dist/tag/createTagGroup.d.ts +0 -9
  685. package/dist/tag/createTagGroup.d.ts.map +1 -1
  686. package/dist/tag/intl/index.d.ts +14 -0
  687. package/dist/tag/intl/index.d.ts.map +1 -0
  688. package/dist/textfield/createTextField.d.ts +6 -8
  689. package/dist/textfield/createTextField.d.ts.map +1 -1
  690. package/dist/toast/createToast.d.ts +1 -8
  691. package/dist/toast/createToast.d.ts.map +1 -1
  692. package/dist/toast/createToastRegion.d.ts +7 -18
  693. package/dist/toast/createToastRegion.d.ts.map +1 -1
  694. package/dist/toast/intl/index.d.ts +14 -0
  695. package/dist/toast/intl/index.d.ts.map +1 -0
  696. package/dist/toggle/createToggle.d.ts +8 -1
  697. package/dist/toggle/createToggle.d.ts.map +1 -1
  698. package/dist/tokenfield/createToken.d.ts +15 -0
  699. package/dist/tokenfield/createToken.d.ts.map +1 -0
  700. package/dist/tokenfield/createTokenField.d.ts +52 -0
  701. package/dist/tokenfield/createTokenField.d.ts.map +1 -0
  702. package/dist/tokenfield/index.d.ts +3 -0
  703. package/dist/tokenfield/index.d.ts.map +1 -0
  704. package/dist/tokenfield/index.js +2 -0
  705. package/dist/tokenfield/index.jsx +2 -0
  706. package/dist/toolbar/createToolbar.d.ts +1 -1
  707. package/dist/toolbar/createToolbar.d.ts.map +1 -1
  708. package/dist/tooltip/createPreviewTrigger.d.ts +23 -0
  709. package/dist/tooltip/createPreviewTrigger.d.ts.map +1 -0
  710. package/dist/tooltip/createSafeArea.d.ts +20 -0
  711. package/dist/tooltip/createSafeArea.d.ts.map +1 -0
  712. package/dist/tooltip/createTooltip.d.ts +1 -1
  713. package/dist/tooltip/createTooltip.d.ts.map +1 -1
  714. package/dist/tooltip/createTooltipTrigger.d.ts +1 -9
  715. package/dist/tooltip/createTooltipTrigger.d.ts.map +1 -1
  716. package/dist/tooltip/index.d.ts +2 -0
  717. package/dist/tooltip/index.d.ts.map +1 -1
  718. package/dist/tooltip/index.js +2 -2
  719. package/dist/tooltip/index.jsx +2 -2
  720. package/dist/tooltip/intl/index.d.ts +4 -0
  721. package/dist/tooltip/intl/index.d.ts.map +1 -0
  722. package/dist/tree/createTree.d.ts +1 -5
  723. package/dist/tree/createTree.d.ts.map +1 -1
  724. package/dist/tree/createTreeItem.d.ts +1 -5
  725. package/dist/tree/createTreeItem.d.ts.map +1 -1
  726. package/dist/tree/createTreeSelectionCheckbox.d.ts +1 -5
  727. package/dist/tree/createTreeSelectionCheckbox.d.ts.map +1 -1
  728. package/dist/tree/intl/index.d.ts +14 -0
  729. package/dist/tree/intl/index.d.ts.map +1 -0
  730. package/dist/tree/types.d.ts +35 -2
  731. package/dist/tree/types.d.ts.map +1 -1
  732. package/dist/utils/ShadowTreeWalker.d.ts +30 -0
  733. package/dist/utils/ShadowTreeWalker.d.ts.map +1 -0
  734. package/dist/utils/animation.d.ts +1 -29
  735. package/dist/utils/animation.d.ts.map +1 -1
  736. package/dist/utils/capture.d.ts +14 -0
  737. package/dist/utils/capture.d.ts.map +1 -0
  738. package/dist/utils/createDescription.d.ts +1 -25
  739. package/dist/utils/createDescription.d.ts.map +1 -1
  740. package/dist/utils/dom.d.ts +45 -11
  741. package/dist/utils/dom.d.ts.map +1 -1
  742. package/dist/utils/domAttrs.d.ts +16 -0
  743. package/dist/utils/domAttrs.d.ts.map +1 -0
  744. package/dist/utils/env.d.ts +2 -0
  745. package/dist/utils/env.d.ts.map +1 -1
  746. package/dist/utils/events.d.ts +0 -4
  747. package/dist/utils/events.d.ts.map +1 -1
  748. package/dist/utils/filterDOMProps.d.ts +0 -6
  749. package/dist/utils/filterDOMProps.d.ts.map +1 -1
  750. package/dist/utils/focus.d.ts +19 -6
  751. package/dist/utils/focus.d.ts.map +1 -1
  752. package/dist/utils/geometry.d.ts +1 -1
  753. package/dist/utils/geometry.d.ts.map +1 -1
  754. package/dist/utils/getMetaValue.d.ts +13 -0
  755. package/dist/utils/getMetaValue.d.ts.map +1 -0
  756. package/dist/utils/getNonce.d.ts +9 -0
  757. package/dist/utils/getNonce.d.ts.map +1 -0
  758. package/dist/utils/globalListeners.d.ts +0 -6
  759. package/dist/utils/globalListeners.d.ts.map +1 -1
  760. package/dist/utils/index.d.ts +6 -1
  761. package/dist/utils/index.d.ts.map +1 -1
  762. package/dist/utils/index.js +7 -4
  763. package/dist/utils/index.jsx +7 -4
  764. package/dist/utils/keyboard.d.ts +0 -4
  765. package/dist/utils/keyboard.d.ts.map +1 -1
  766. package/dist/utils/mergeProps.d.ts +5 -2
  767. package/dist/utils/mergeProps.d.ts.map +1 -1
  768. package/dist/utils/owner.d.ts +14 -0
  769. package/dist/utils/owner.d.ts.map +1 -0
  770. package/dist/utils/platform.d.ts +0 -4
  771. package/dist/utils/platform.d.ts.map +1 -1
  772. package/dist/utils/reactivity.d.ts +2 -0
  773. package/dist/utils/reactivity.d.ts.map +1 -1
  774. package/dist/utils/refs.d.ts +20 -0
  775. package/dist/utils/refs.d.ts.map +1 -0
  776. package/dist/utils/runAfterTransition.d.ts +2 -0
  777. package/dist/utils/runAfterTransition.d.ts.map +1 -0
  778. package/dist/utils/scrollIntoView.d.ts +0 -4
  779. package/dist/utils/scrollIntoView.d.ts.map +1 -1
  780. package/dist/utils/splitProps.d.ts +17 -0
  781. package/dist/utils/splitProps.d.ts.map +1 -0
  782. package/dist/utils/textSelection.d.ts +0 -8
  783. package/dist/utils/textSelection.d.ts.map +1 -1
  784. package/dist/virtualizer/ScrollView.d.ts +38 -0
  785. package/dist/virtualizer/ScrollView.d.ts.map +1 -0
  786. package/dist/virtualizer/index.d.ts +3 -0
  787. package/dist/virtualizer/index.d.ts.map +1 -0
  788. package/dist/virtualizer/index.js +2 -0
  789. package/dist/virtualizer/index.jsx +2 -0
  790. package/dist/virtualizer/utils.d.ts +10 -0
  791. package/dist/virtualizer/utils.d.ts.map +1 -0
  792. package/dist/visually-hidden/createVisuallyHidden.d.ts +2 -9
  793. package/dist/visually-hidden/createVisuallyHidden.d.ts.map +1 -1
  794. package/dist/visually-hidden/index.js +1 -1
  795. package/dist/visually-hidden/index.jsx +1 -1
  796. package/package.json +30 -11
  797. package/src/actiongroup/createActionGroup.ts +49 -27
  798. package/src/autocomplete/createAutocomplete.ts +32 -5
  799. package/src/autocomplete/intl/ar-AE.json +3 -0
  800. package/src/autocomplete/intl/bg-BG.json +3 -0
  801. package/src/autocomplete/intl/cs-CZ.json +3 -0
  802. package/src/autocomplete/intl/da-DK.json +3 -0
  803. package/src/autocomplete/intl/de-DE.json +3 -0
  804. package/src/autocomplete/intl/el-GR.json +3 -0
  805. package/src/autocomplete/intl/en-US.json +3 -0
  806. package/src/autocomplete/intl/es-ES.json +3 -0
  807. package/src/autocomplete/intl/et-EE.json +3 -0
  808. package/src/autocomplete/intl/fi-FI.json +3 -0
  809. package/src/autocomplete/intl/fr-FR.json +3 -0
  810. package/src/autocomplete/intl/he-IL.json +3 -0
  811. package/src/autocomplete/intl/hr-HR.json +3 -0
  812. package/src/autocomplete/intl/hu-HU.json +3 -0
  813. package/src/autocomplete/intl/index.ts +122 -0
  814. package/src/autocomplete/intl/it-IT.json +3 -0
  815. package/src/autocomplete/intl/ja-JP.json +3 -0
  816. package/src/autocomplete/intl/ko-KR.json +3 -0
  817. package/src/autocomplete/intl/lt-LT.json +3 -0
  818. package/src/autocomplete/intl/lv-LV.json +3 -0
  819. package/src/autocomplete/intl/nb-NO.json +3 -0
  820. package/src/autocomplete/intl/nl-NL.json +3 -0
  821. package/src/autocomplete/intl/pl-PL.json +3 -0
  822. package/src/autocomplete/intl/pt-BR.json +3 -0
  823. package/src/autocomplete/intl/pt-PT.json +3 -0
  824. package/src/autocomplete/intl/ro-RO.json +3 -0
  825. package/src/autocomplete/intl/ru-RU.json +3 -0
  826. package/src/autocomplete/intl/sk-SK.json +3 -0
  827. package/src/autocomplete/intl/sl-SI.json +3 -0
  828. package/src/autocomplete/intl/sr-SP.json +3 -0
  829. package/src/autocomplete/intl/sv-SE.json +3 -0
  830. package/src/autocomplete/intl/tr-TR.json +3 -0
  831. package/src/autocomplete/intl/uk-UA.json +3 -0
  832. package/src/autocomplete/intl/zh-CN.json +3 -0
  833. package/src/autocomplete/intl/zh-TW.json +3 -0
  834. package/src/breadcrumbs/createBreadcrumbs.ts +18 -1
  835. package/src/breadcrumbs/intl/ar-AE.json +3 -0
  836. package/src/breadcrumbs/intl/bg-BG.json +3 -0
  837. package/src/breadcrumbs/intl/cs-CZ.json +3 -0
  838. package/src/breadcrumbs/intl/da-DK.json +3 -0
  839. package/src/breadcrumbs/intl/de-DE.json +3 -0
  840. package/src/breadcrumbs/intl/el-GR.json +3 -0
  841. package/src/breadcrumbs/intl/en-US.json +3 -0
  842. package/src/breadcrumbs/intl/es-ES.json +3 -0
  843. package/src/breadcrumbs/intl/et-EE.json +3 -0
  844. package/src/breadcrumbs/intl/fi-FI.json +3 -0
  845. package/src/breadcrumbs/intl/fr-FR.json +3 -0
  846. package/src/breadcrumbs/intl/he-IL.json +3 -0
  847. package/src/breadcrumbs/intl/hr-HR.json +3 -0
  848. package/src/breadcrumbs/intl/hu-HU.json +3 -0
  849. package/src/breadcrumbs/intl/index.ts +122 -0
  850. package/src/breadcrumbs/intl/it-IT.json +3 -0
  851. package/src/breadcrumbs/intl/ja-JP.json +3 -0
  852. package/src/breadcrumbs/intl/ko-KR.json +3 -0
  853. package/src/breadcrumbs/intl/lt-LT.json +3 -0
  854. package/src/breadcrumbs/intl/lv-LV.json +3 -0
  855. package/src/breadcrumbs/intl/nb-NO.json +3 -0
  856. package/src/breadcrumbs/intl/nl-NL.json +3 -0
  857. package/src/breadcrumbs/intl/pl-PL.json +3 -0
  858. package/src/breadcrumbs/intl/pt-BR.json +3 -0
  859. package/src/breadcrumbs/intl/pt-PT.json +3 -0
  860. package/src/breadcrumbs/intl/ro-RO.json +3 -0
  861. package/src/breadcrumbs/intl/ru-RU.json +3 -0
  862. package/src/breadcrumbs/intl/sk-SK.json +3 -0
  863. package/src/breadcrumbs/intl/sl-SI.json +3 -0
  864. package/src/breadcrumbs/intl/sr-SP.json +3 -0
  865. package/src/breadcrumbs/intl/sv-SE.json +3 -0
  866. package/src/breadcrumbs/intl/tr-TR.json +3 -0
  867. package/src/breadcrumbs/intl/uk-UA.json +3 -0
  868. package/src/breadcrumbs/intl/zh-CN.json +3 -0
  869. package/src/breadcrumbs/intl/zh-TW.json +3 -0
  870. package/src/button/createButton.ts +15 -1
  871. package/src/button/createToggleButton.ts +18 -5
  872. package/src/button/createToggleButtonGroup.ts +23 -8
  873. package/src/button/types.ts +16 -0
  874. package/src/calendar/createCalendar.ts +22 -3
  875. package/src/calendar/createCalendarCell.ts +104 -15
  876. package/src/calendar/createCalendarGrid.ts +37 -13
  877. package/src/calendar/createCalendarMonthPicker.ts +14 -0
  878. package/src/calendar/createCalendarYearPicker.ts +14 -0
  879. package/src/calendar/createRangeCalendar.ts +124 -1
  880. package/src/calendar/createRangeCalendarCell.ts +179 -40
  881. package/src/calendar/intl/index.ts +37 -0
  882. package/src/calendar/utils.ts +14 -0
  883. package/src/checkbox/createCheckbox.ts +32 -17
  884. package/src/checkbox/createCheckboxGroup.ts +31 -13
  885. package/src/checkbox/createCheckboxGroupItem.ts +15 -1
  886. package/src/collections/index.ts +21 -3
  887. package/src/color/createColorArea.ts +226 -29
  888. package/src/color/createColorField.ts +98 -22
  889. package/src/color/createColorSlider.ts +24 -3
  890. package/src/color/createColorSwatch.ts +18 -1
  891. package/src/color/createColorWheel.ts +27 -5
  892. package/src/color/intl/index.ts +35 -0
  893. package/src/color/types.ts +47 -1
  894. package/src/combobox/createComboBox.ts +303 -152
  895. package/src/combobox/intl/generated-locales.ts +38 -1
  896. package/src/combobox/intl/index.ts +38 -2
  897. package/src/datepicker/createDateField.ts +38 -22
  898. package/src/datepicker/createDatePicker.ts +14 -0
  899. package/src/datepicker/createDatePickerGroup.ts +24 -12
  900. package/src/datepicker/createDateRangePicker.ts +14 -0
  901. package/src/datepicker/createDateSegment.ts +110 -46
  902. package/src/datepicker/createDisplayNames.ts +16 -1
  903. package/src/datepicker/createTimeField.ts +15 -5
  904. package/src/datepicker/intl.ts +623 -544
  905. package/src/dialog/createDialog.ts +57 -30
  906. package/src/dialog/types.ts +14 -0
  907. package/src/disclosure/createDisclosure.ts +28 -6
  908. package/src/disclosure/createDisclosureGroup.ts +3 -4
  909. package/src/dnd/DragManager.ts +60 -9
  910. package/src/dnd/DropTargetKeyboardNavigation.ts +8 -6
  911. package/src/dnd/createDrag.ts +18 -1
  912. package/src/dnd/createDraggableCollection.ts +96 -32
  913. package/src/dnd/createDraggableItem.ts +73 -31
  914. package/src/dnd/createDrop.ts +18 -1
  915. package/src/dnd/createDropIndicator.ts +92 -0
  916. package/src/dnd/createDroppableCollection.ts +113 -48
  917. package/src/dnd/createDroppableItem.ts +161 -13
  918. package/src/dnd/index.ts +3 -0
  919. package/src/dnd/intl/index.ts +77 -66
  920. package/src/dnd/types.ts +20 -1
  921. package/src/dnd/utils.ts +19 -0
  922. package/src/focus/FocusScope.tsx +542 -157
  923. package/src/focus/createAutoFocus.ts +94 -68
  924. package/src/focus/createFocusRestore.ts +16 -12
  925. package/src/focus/createHasTabbableChild.ts +78 -0
  926. package/src/focus/createVirtualFocus.ts +21 -5
  927. package/src/focus/virtualFocus.ts +1 -1
  928. package/src/form/createFormReset.ts +40 -17
  929. package/src/form/createFormValidation.ts +128 -86
  930. package/src/grid/GridKeyboardDelegate.ts +14 -0
  931. package/src/grid/createGrid.ts +17 -2
  932. package/src/grid/createGridCell.ts +17 -2
  933. package/src/grid/createGridRow.ts +17 -2
  934. package/src/grid/index.ts +2 -2
  935. package/src/grid/intl/ar-AE.json +8 -0
  936. package/src/grid/intl/bg-BG.json +8 -0
  937. package/src/grid/intl/cs-CZ.json +8 -0
  938. package/src/grid/intl/da-DK.json +8 -0
  939. package/src/grid/intl/de-DE.json +8 -0
  940. package/src/grid/intl/el-GR.json +8 -0
  941. package/src/grid/intl/en-US.json +8 -0
  942. package/src/grid/intl/es-ES.json +8 -0
  943. package/src/grid/intl/et-EE.json +8 -0
  944. package/src/grid/intl/fi-FI.json +8 -0
  945. package/src/grid/intl/fr-FR.json +8 -0
  946. package/src/grid/intl/he-IL.json +8 -0
  947. package/src/grid/intl/hr-HR.json +8 -0
  948. package/src/grid/intl/hu-HU.json +8 -0
  949. package/src/grid/intl/index.ts +127 -0
  950. package/src/grid/intl/it-IT.json +8 -0
  951. package/src/grid/intl/ja-JP.json +8 -0
  952. package/src/grid/intl/ko-KR.json +8 -0
  953. package/src/grid/intl/lt-LT.json +8 -0
  954. package/src/grid/intl/lv-LV.json +8 -0
  955. package/src/grid/intl/nb-NO.json +8 -0
  956. package/src/grid/intl/nl-NL.json +8 -0
  957. package/src/grid/intl/pl-PL.json +8 -0
  958. package/src/grid/intl/pt-BR.json +8 -0
  959. package/src/grid/intl/pt-PT.json +8 -0
  960. package/src/grid/intl/ro-RO.json +8 -0
  961. package/src/grid/intl/ru-RU.json +8 -0
  962. package/src/grid/intl/sk-SK.json +8 -0
  963. package/src/grid/intl/sl-SI.json +8 -0
  964. package/src/grid/intl/sr-SP.json +8 -0
  965. package/src/grid/intl/sv-SE.json +8 -0
  966. package/src/grid/intl/tr-TR.json +8 -0
  967. package/src/grid/intl/uk-UA.json +8 -0
  968. package/src/grid/intl/zh-CN.json +8 -0
  969. package/src/grid/intl/zh-TW.json +8 -0
  970. package/src/grid/types.ts +25 -2
  971. package/src/gridlist/createGridList.ts +172 -42
  972. package/src/gridlist/createGridListItem.ts +51 -13
  973. package/src/gridlist/createGridListSection.ts +14 -0
  974. package/src/gridlist/createGridListSelectionCheckbox.ts +31 -4
  975. package/src/gridlist/intl/ar-AE.json +4 -0
  976. package/src/gridlist/intl/bg-BG.json +4 -0
  977. package/src/gridlist/intl/cs-CZ.json +4 -0
  978. package/src/gridlist/intl/da-DK.json +4 -0
  979. package/src/gridlist/intl/de-DE.json +4 -0
  980. package/src/gridlist/intl/el-GR.json +4 -0
  981. package/src/gridlist/intl/en-US.json +4 -0
  982. package/src/gridlist/intl/es-ES.json +4 -0
  983. package/src/gridlist/intl/et-EE.json +4 -0
  984. package/src/gridlist/intl/fi-FI.json +4 -0
  985. package/src/gridlist/intl/fr-FR.json +4 -0
  986. package/src/gridlist/intl/he-IL.json +4 -0
  987. package/src/gridlist/intl/hr-HR.json +4 -0
  988. package/src/gridlist/intl/hu-HU.json +4 -0
  989. package/src/gridlist/intl/index.ts +123 -0
  990. package/src/gridlist/intl/it-IT.json +4 -0
  991. package/src/gridlist/intl/ja-JP.json +4 -0
  992. package/src/gridlist/intl/ko-KR.json +4 -0
  993. package/src/gridlist/intl/lt-LT.json +4 -0
  994. package/src/gridlist/intl/lv-LV.json +4 -0
  995. package/src/gridlist/intl/nb-NO.json +4 -0
  996. package/src/gridlist/intl/nl-NL.json +4 -0
  997. package/src/gridlist/intl/pl-PL.json +4 -0
  998. package/src/gridlist/intl/pt-BR.json +4 -0
  999. package/src/gridlist/intl/pt-PT.json +4 -0
  1000. package/src/gridlist/intl/ro-RO.json +4 -0
  1001. package/src/gridlist/intl/ru-RU.json +4 -0
  1002. package/src/gridlist/intl/sk-SK.json +4 -0
  1003. package/src/gridlist/intl/sl-SI.json +4 -0
  1004. package/src/gridlist/intl/sr-SP.json +4 -0
  1005. package/src/gridlist/intl/sv-SE.json +4 -0
  1006. package/src/gridlist/intl/tr-TR.json +4 -0
  1007. package/src/gridlist/intl/uk-UA.json +4 -0
  1008. package/src/gridlist/intl/zh-CN.json +4 -0
  1009. package/src/gridlist/intl/zh-TW.json +4 -0
  1010. package/src/gridlist/types.ts +54 -2
  1011. package/src/i18n/compileIcu.ts +440 -0
  1012. package/src/i18n/createCollator.ts +14 -0
  1013. package/src/i18n/createDateFormatter.ts +14 -0
  1014. package/src/i18n/createFilter.ts +14 -0
  1015. package/src/i18n/createListFormatter.ts +38 -0
  1016. package/src/i18n/createNumberFormatter.ts +14 -0
  1017. package/src/i18n/createStringFormatter.ts +64 -8
  1018. package/src/i18n/index.ts +3 -0
  1019. package/src/i18n/locale.tsx +60 -19
  1020. package/src/i18n/utils.ts +14 -0
  1021. package/src/index.ts +49 -1
  1022. package/src/interactions/FocusableProvider.tsx +28 -11
  1023. package/src/interactions/PressEvent.ts +16 -1
  1024. package/src/interactions/createContextMenu.ts +108 -0
  1025. package/src/interactions/createFocus.ts +26 -6
  1026. package/src/interactions/createFocusRing.ts +28 -13
  1027. package/src/interactions/createFocusWithin.ts +23 -3
  1028. package/src/interactions/createFocusable.ts +45 -28
  1029. package/src/interactions/createHover.ts +102 -81
  1030. package/src/interactions/createInteractionModality.ts +135 -45
  1031. package/src/interactions/createKeyboard.ts +85 -9
  1032. package/src/interactions/createKeyboardShortcutHandler.ts +157 -0
  1033. package/src/interactions/createLongPress.ts +31 -9
  1034. package/src/interactions/createMove.ts +24 -3
  1035. package/src/interactions/createPress.ts +85 -41
  1036. package/src/interactions/index.ts +1 -0
  1037. package/src/label/createField.ts +58 -63
  1038. package/src/label/createLabel.ts +21 -4
  1039. package/src/label/createLabels.ts +25 -1
  1040. package/src/landmark/createLandmark.ts +27 -4
  1041. package/src/link/createLink.ts +20 -12
  1042. package/src/listbox/createListBox.ts +86 -310
  1043. package/src/listbox/createOption.ts +50 -14
  1044. package/src/live-announcer/announce.ts +21 -6
  1045. package/src/menu/createMenu.ts +92 -5
  1046. package/src/menu/createMenuItem.ts +40 -23
  1047. package/src/menu/createMenuTrigger.ts +179 -51
  1048. package/src/menu/index.ts +2 -0
  1049. package/src/menu/intl/index.ts +130 -0
  1050. package/src/meter/createMeter.ts +20 -5
  1051. package/src/numberfield/createNumberField.ts +254 -14
  1052. package/src/overlays/ariaHideOutside.ts +76 -11
  1053. package/src/overlays/createInteractOutside.ts +74 -47
  1054. package/src/overlays/createModal.tsx +42 -27
  1055. package/src/overlays/createOverlay.ts +107 -66
  1056. package/src/overlays/createOverlayTrigger.ts +21 -6
  1057. package/src/overlays/createPreventScroll.ts +92 -62
  1058. package/src/overlays/index.ts +2 -0
  1059. package/src/overlays/intl/ar-AE.json +3 -0
  1060. package/src/overlays/intl/bg-BG.json +3 -0
  1061. package/src/overlays/intl/cs-CZ.json +3 -0
  1062. package/src/overlays/intl/da-DK.json +3 -0
  1063. package/src/overlays/intl/de-DE.json +3 -0
  1064. package/src/overlays/intl/el-GR.json +3 -0
  1065. package/src/overlays/intl/en-US.json +3 -0
  1066. package/src/overlays/intl/es-ES.json +3 -0
  1067. package/src/overlays/intl/et-EE.json +3 -0
  1068. package/src/overlays/intl/fi-FI.json +3 -0
  1069. package/src/overlays/intl/fr-FR.json +3 -0
  1070. package/src/overlays/intl/he-IL.json +3 -0
  1071. package/src/overlays/intl/hr-HR.json +3 -0
  1072. package/src/overlays/intl/hu-HU.json +3 -0
  1073. package/src/overlays/intl/index.ts +122 -0
  1074. package/src/overlays/intl/it-IT.json +3 -0
  1075. package/src/overlays/intl/ja-JP.json +3 -0
  1076. package/src/overlays/intl/ko-KR.json +3 -0
  1077. package/src/overlays/intl/lt-LT.json +3 -0
  1078. package/src/overlays/intl/lv-LV.json +3 -0
  1079. package/src/overlays/intl/nb-NO.json +3 -0
  1080. package/src/overlays/intl/nl-NL.json +3 -0
  1081. package/src/overlays/intl/pl-PL.json +3 -0
  1082. package/src/overlays/intl/pt-BR.json +3 -0
  1083. package/src/overlays/intl/pt-PT.json +3 -0
  1084. package/src/overlays/intl/ro-RO.json +3 -0
  1085. package/src/overlays/intl/ru-RU.json +3 -0
  1086. package/src/overlays/intl/sk-SK.json +3 -0
  1087. package/src/overlays/intl/sl-SI.json +3 -0
  1088. package/src/overlays/intl/sr-SP.json +3 -0
  1089. package/src/overlays/intl/sv-SE.json +3 -0
  1090. package/src/overlays/intl/tr-TR.json +3 -0
  1091. package/src/overlays/intl/uk-UA.json +3 -0
  1092. package/src/overlays/intl/zh-CN.json +3 -0
  1093. package/src/overlays/intl/zh-TW.json +3 -0
  1094. package/src/popover/calculatePosition.ts +21 -3
  1095. package/src/popover/createOverlayPosition.ts +149 -41
  1096. package/src/popover/createPopover.ts +88 -23
  1097. package/src/progress/createProgressBar.ts +19 -4
  1098. package/src/radio/createRadio.ts +80 -25
  1099. package/src/radio/createRadioGroup.ts +47 -13
  1100. package/src/searchfield/createSearchField.ts +31 -2
  1101. package/src/searchfield/intl/ar-AE.json +3 -0
  1102. package/src/searchfield/intl/bg-BG.json +3 -0
  1103. package/src/searchfield/intl/cs-CZ.json +3 -0
  1104. package/src/searchfield/intl/da-DK.json +3 -0
  1105. package/src/searchfield/intl/de-DE.json +3 -0
  1106. package/src/searchfield/intl/el-GR.json +3 -0
  1107. package/src/searchfield/intl/en-US.json +3 -0
  1108. package/src/searchfield/intl/es-ES.json +3 -0
  1109. package/src/searchfield/intl/et-EE.json +3 -0
  1110. package/src/searchfield/intl/fi-FI.json +3 -0
  1111. package/src/searchfield/intl/fr-FR.json +3 -0
  1112. package/src/searchfield/intl/he-IL.json +3 -0
  1113. package/src/searchfield/intl/hr-HR.json +3 -0
  1114. package/src/searchfield/intl/hu-HU.json +3 -0
  1115. package/src/searchfield/intl/index.ts +122 -0
  1116. package/src/searchfield/intl/it-IT.json +3 -0
  1117. package/src/searchfield/intl/ja-JP.json +3 -0
  1118. package/src/searchfield/intl/ko-KR.json +3 -0
  1119. package/src/searchfield/intl/lt-LT.json +3 -0
  1120. package/src/searchfield/intl/lv-LV.json +3 -0
  1121. package/src/searchfield/intl/nb-NO.json +3 -0
  1122. package/src/searchfield/intl/nl-NL.json +3 -0
  1123. package/src/searchfield/intl/pl-PL.json +3 -0
  1124. package/src/searchfield/intl/pt-BR.json +3 -0
  1125. package/src/searchfield/intl/pt-PT.json +3 -0
  1126. package/src/searchfield/intl/ro-RO.json +3 -0
  1127. package/src/searchfield/intl/ru-RU.json +3 -0
  1128. package/src/searchfield/intl/sk-SK.json +3 -0
  1129. package/src/searchfield/intl/sl-SI.json +3 -0
  1130. package/src/searchfield/intl/sr-SP.json +3 -0
  1131. package/src/searchfield/intl/sv-SE.json +3 -0
  1132. package/src/searchfield/intl/tr-TR.json +3 -0
  1133. package/src/searchfield/intl/uk-UA.json +3 -0
  1134. package/src/searchfield/intl/zh-CN.json +3 -0
  1135. package/src/searchfield/intl/zh-TW.json +3 -0
  1136. package/src/select/createHiddenSelect.tsx +166 -69
  1137. package/src/select/createSelect.ts +80 -34
  1138. package/src/selection/DOMLayoutDelegate.ts +14 -0
  1139. package/src/selection/ListKeyboardDelegate.ts +16 -1
  1140. package/src/selection/constants.ts +14 -0
  1141. package/src/selection/createCollectionRowInteraction.ts +75 -6
  1142. package/src/selection/createScrollIntoViewOnFocus.ts +23 -8
  1143. package/src/selection/createSelectableCollection.ts +352 -226
  1144. package/src/selection/createSelectableItem.ts +51 -12
  1145. package/src/selection/createSelectableList.ts +21 -1
  1146. package/src/selection/createTypeSelect.ts +21 -5
  1147. package/src/selection/selectItem.ts +14 -0
  1148. package/src/selection/utils.ts +15 -1
  1149. package/src/separator/createSeparator.ts +17 -1
  1150. package/src/slider/createSlider.ts +24 -18
  1151. package/src/spinbutton/createSpinButton.ts +16 -2
  1152. package/src/spinbutton/index.ts +2 -10
  1153. package/src/spinbutton/intl.ts +70 -34
  1154. package/src/ssr/index.tsx +79 -48
  1155. package/src/steplist/createStepList.ts +17 -2
  1156. package/src/switch/createSwitch.ts +25 -4
  1157. package/src/table/createTable.ts +104 -52
  1158. package/src/table/createTableCell.ts +17 -2
  1159. package/src/table/createTableColumnHeader.ts +21 -3
  1160. package/src/table/createTableColumnResize.ts +19 -3
  1161. package/src/table/createTableHeaderRow.ts +17 -2
  1162. package/src/table/createTableRow.ts +29 -22
  1163. package/src/table/createTableRowGroup.ts +18 -3
  1164. package/src/table/createTableSelectAllCheckbox.ts +30 -14
  1165. package/src/table/createTableSelectionCheckbox.ts +21 -3
  1166. package/src/table/index.ts +2 -2
  1167. package/src/table/intl/ar-AE.json +13 -0
  1168. package/src/table/intl/bg-BG.json +13 -0
  1169. package/src/table/intl/cs-CZ.json +13 -0
  1170. package/src/table/intl/da-DK.json +13 -0
  1171. package/src/table/intl/de-DE.json +13 -0
  1172. package/src/table/intl/el-GR.json +13 -0
  1173. package/src/table/intl/en-US.json +13 -0
  1174. package/src/table/intl/es-ES.json +13 -0
  1175. package/src/table/intl/et-EE.json +13 -0
  1176. package/src/table/intl/fi-FI.json +13 -0
  1177. package/src/table/intl/fr-FR.json +13 -0
  1178. package/src/table/intl/he-IL.json +13 -0
  1179. package/src/table/intl/hr-HR.json +13 -0
  1180. package/src/table/intl/hu-HU.json +13 -0
  1181. package/src/table/intl/index.ts +132 -0
  1182. package/src/table/intl/it-IT.json +13 -0
  1183. package/src/table/intl/ja-JP.json +13 -0
  1184. package/src/table/intl/ko-KR.json +13 -0
  1185. package/src/table/intl/lt-LT.json +13 -0
  1186. package/src/table/intl/lv-LV.json +13 -0
  1187. package/src/table/intl/nb-NO.json +13 -0
  1188. package/src/table/intl/nl-NL.json +13 -0
  1189. package/src/table/intl/pl-PL.json +13 -0
  1190. package/src/table/intl/pt-BR.json +13 -0
  1191. package/src/table/intl/pt-PT.json +13 -0
  1192. package/src/table/intl/ro-RO.json +13 -0
  1193. package/src/table/intl/ru-RU.json +13 -0
  1194. package/src/table/intl/sk-SK.json +13 -0
  1195. package/src/table/intl/sl-SI.json +13 -0
  1196. package/src/table/intl/sr-SP.json +13 -0
  1197. package/src/table/intl/sv-SE.json +13 -0
  1198. package/src/table/intl/tr-TR.json +13 -0
  1199. package/src/table/intl/uk-UA.json +13 -0
  1200. package/src/table/intl/zh-CN.json +13 -0
  1201. package/src/table/intl/zh-TW.json +13 -0
  1202. package/src/table/types.ts +44 -2
  1203. package/src/table/utils.ts +15 -6
  1204. package/src/tabs/createTabs.ts +104 -37
  1205. package/src/tag/createTag.ts +118 -37
  1206. package/src/tag/createTagGroup.ts +20 -12
  1207. package/src/tag/intl/ar-AE.json +4 -0
  1208. package/src/tag/intl/bg-BG.json +4 -0
  1209. package/src/tag/intl/cs-CZ.json +4 -0
  1210. package/src/tag/intl/da-DK.json +4 -0
  1211. package/src/tag/intl/de-DE.json +4 -0
  1212. package/src/tag/intl/el-GR.json +4 -0
  1213. package/src/tag/intl/en-US.json +4 -0
  1214. package/src/tag/intl/es-ES.json +4 -0
  1215. package/src/tag/intl/et-EE.json +4 -0
  1216. package/src/tag/intl/fi-FI.json +4 -0
  1217. package/src/tag/intl/fr-FR.json +4 -0
  1218. package/src/tag/intl/he-IL.json +4 -0
  1219. package/src/tag/intl/hr-HR.json +4 -0
  1220. package/src/tag/intl/hu-HU.json +4 -0
  1221. package/src/tag/intl/index.ts +123 -0
  1222. package/src/tag/intl/it-IT.json +4 -0
  1223. package/src/tag/intl/ja-JP.json +4 -0
  1224. package/src/tag/intl/ko-KR.json +4 -0
  1225. package/src/tag/intl/lt-LT.json +4 -0
  1226. package/src/tag/intl/lv-LV.json +4 -0
  1227. package/src/tag/intl/nb-NO.json +4 -0
  1228. package/src/tag/intl/nl-NL.json +4 -0
  1229. package/src/tag/intl/pl-PL.json +4 -0
  1230. package/src/tag/intl/pt-BR.json +4 -0
  1231. package/src/tag/intl/pt-PT.json +4 -0
  1232. package/src/tag/intl/ro-RO.json +4 -0
  1233. package/src/tag/intl/ru-RU.json +4 -0
  1234. package/src/tag/intl/sk-SK.json +4 -0
  1235. package/src/tag/intl/sl-SI.json +4 -0
  1236. package/src/tag/intl/sr-SP.json +4 -0
  1237. package/src/tag/intl/sv-SE.json +4 -0
  1238. package/src/tag/intl/tr-TR.json +4 -0
  1239. package/src/tag/intl/uk-UA.json +4 -0
  1240. package/src/tag/intl/zh-CN.json +4 -0
  1241. package/src/tag/intl/zh-TW.json +4 -0
  1242. package/src/textfield/createTextField.ts +104 -14
  1243. package/src/toast/createToast.ts +39 -6
  1244. package/src/toast/createToastRegion.ts +28 -15
  1245. package/src/toast/intl/ar-AE.json +4 -0
  1246. package/src/toast/intl/bg-BG.json +4 -0
  1247. package/src/toast/intl/cs-CZ.json +4 -0
  1248. package/src/toast/intl/da-DK.json +4 -0
  1249. package/src/toast/intl/de-DE.json +4 -0
  1250. package/src/toast/intl/el-GR.json +4 -0
  1251. package/src/toast/intl/en-US.json +4 -0
  1252. package/src/toast/intl/es-ES.json +4 -0
  1253. package/src/toast/intl/et-EE.json +4 -0
  1254. package/src/toast/intl/fi-FI.json +4 -0
  1255. package/src/toast/intl/fr-FR.json +4 -0
  1256. package/src/toast/intl/he-IL.json +4 -0
  1257. package/src/toast/intl/hr-HR.json +4 -0
  1258. package/src/toast/intl/hu-HU.json +4 -0
  1259. package/src/toast/intl/index.ts +123 -0
  1260. package/src/toast/intl/it-IT.json +4 -0
  1261. package/src/toast/intl/ja-JP.json +4 -0
  1262. package/src/toast/intl/ko-KR.json +4 -0
  1263. package/src/toast/intl/lt-LT.json +4 -0
  1264. package/src/toast/intl/lv-LV.json +4 -0
  1265. package/src/toast/intl/nb-NO.json +4 -0
  1266. package/src/toast/intl/nl-NL.json +4 -0
  1267. package/src/toast/intl/pl-PL.json +4 -0
  1268. package/src/toast/intl/pt-BR.json +4 -0
  1269. package/src/toast/intl/pt-PT.json +4 -0
  1270. package/src/toast/intl/ro-RO.json +4 -0
  1271. package/src/toast/intl/ru-RU.json +4 -0
  1272. package/src/toast/intl/sk-SK.json +4 -0
  1273. package/src/toast/intl/sl-SI.json +4 -0
  1274. package/src/toast/intl/sr-SP.json +4 -0
  1275. package/src/toast/intl/sv-SE.json +4 -0
  1276. package/src/toast/intl/tr-TR.json +4 -0
  1277. package/src/toast/intl/uk-UA.json +4 -0
  1278. package/src/toast/intl/zh-CN.json +4 -0
  1279. package/src/toast/intl/zh-TW.json +4 -0
  1280. package/src/toggle/createToggle.ts +96 -15
  1281. package/src/tokenfield/createToken.ts +82 -0
  1282. package/src/tokenfield/createTokenField.ts +859 -0
  1283. package/src/tokenfield/index.ts +10 -0
  1284. package/src/toolbar/createToolbar.ts +26 -5
  1285. package/src/tooltip/createPreviewTrigger.ts +301 -0
  1286. package/src/tooltip/createSafeArea.ts +165 -0
  1287. package/src/tooltip/createTooltip.ts +15 -1
  1288. package/src/tooltip/createTooltipTrigger.ts +24 -3
  1289. package/src/tooltip/index.ts +7 -0
  1290. package/src/tooltip/intl/index.ts +76 -0
  1291. package/src/tree/createTree.ts +66 -50
  1292. package/src/tree/createTreeItem.ts +85 -21
  1293. package/src/tree/createTreeSelectionCheckbox.ts +29 -28
  1294. package/src/tree/intl/ar-AE.json +4 -0
  1295. package/src/tree/intl/bg-BG.json +4 -0
  1296. package/src/tree/intl/cs-CZ.json +4 -0
  1297. package/src/tree/intl/da-DK.json +4 -0
  1298. package/src/tree/intl/de-DE.json +4 -0
  1299. package/src/tree/intl/el-GR.json +4 -0
  1300. package/src/tree/intl/en-US.json +4 -0
  1301. package/src/tree/intl/es-ES.json +4 -0
  1302. package/src/tree/intl/et-EE.json +4 -0
  1303. package/src/tree/intl/fi-FI.json +4 -0
  1304. package/src/tree/intl/fr-FR.json +4 -0
  1305. package/src/tree/intl/he-IL.json +4 -0
  1306. package/src/tree/intl/hr-HR.json +4 -0
  1307. package/src/tree/intl/hu-HU.json +4 -0
  1308. package/src/tree/intl/index.ts +123 -0
  1309. package/src/tree/intl/it-IT.json +4 -0
  1310. package/src/tree/intl/ja-JP.json +4 -0
  1311. package/src/tree/intl/ko-KR.json +4 -0
  1312. package/src/tree/intl/lt-LT.json +4 -0
  1313. package/src/tree/intl/lv-LV.json +4 -0
  1314. package/src/tree/intl/nb-NO.json +4 -0
  1315. package/src/tree/intl/nl-NL.json +4 -0
  1316. package/src/tree/intl/pl-PL.json +4 -0
  1317. package/src/tree/intl/pt-BR.json +4 -0
  1318. package/src/tree/intl/pt-PT.json +4 -0
  1319. package/src/tree/intl/ro-RO.json +4 -0
  1320. package/src/tree/intl/ru-RU.json +4 -0
  1321. package/src/tree/intl/sk-SK.json +4 -0
  1322. package/src/tree/intl/sl-SI.json +4 -0
  1323. package/src/tree/intl/sr-SP.json +4 -0
  1324. package/src/tree/intl/sv-SE.json +4 -0
  1325. package/src/tree/intl/tr-TR.json +4 -0
  1326. package/src/tree/intl/uk-UA.json +4 -0
  1327. package/src/tree/intl/zh-CN.json +4 -0
  1328. package/src/tree/intl/zh-TW.json +4 -0
  1329. package/src/tree/types.ts +35 -2
  1330. package/src/utils/ShadowTreeWalker.ts +249 -0
  1331. package/src/utils/animation.ts +106 -85
  1332. package/src/utils/capture.ts +51 -0
  1333. package/src/utils/createDescription.ts +31 -8
  1334. package/src/utils/dom.ts +314 -33
  1335. package/src/utils/domAttrs.ts +84 -0
  1336. package/src/utils/env.ts +2 -0
  1337. package/src/utils/events.ts +39 -3
  1338. package/src/utils/filterDOMProps.ts +34 -2
  1339. package/src/utils/focus.ts +186 -32
  1340. package/src/utils/geometry.ts +15 -1
  1341. package/src/utils/getMetaValue.ts +57 -0
  1342. package/src/utils/getNonce.ts +40 -0
  1343. package/src/utils/globalListeners.ts +16 -3
  1344. package/src/utils/index.ts +14 -0
  1345. package/src/utils/keyboard.ts +15 -1
  1346. package/src/utils/mergeProps.ts +149 -16
  1347. package/src/utils/owner.ts +26 -0
  1348. package/src/utils/platform.ts +15 -1
  1349. package/src/utils/reactivity.ts +2 -0
  1350. package/src/utils/refs.ts +53 -0
  1351. package/src/utils/runAfterTransition.ts +117 -0
  1352. package/src/utils/scrollIntoView.ts +14 -0
  1353. package/src/utils/splitProps.ts +70 -0
  1354. package/src/utils/textSelection.ts +15 -1
  1355. package/src/virtualizer/ScrollView.ts +210 -0
  1356. package/src/virtualizer/index.ts +2 -0
  1357. package/src/virtualizer/utils.ts +100 -0
  1358. package/src/visually-hidden/createVisuallyHidden.ts +20 -4
  1359. package/dist/_chunk/createInteractionModality.js +0 -268
  1360. package/dist/_chunk/createInteractionModality.js.map +0 -1
  1361. package/dist/_chunk/createInteractionModality.jsx +0 -268
  1362. package/dist/_chunk/createInteractionModality.jsx.map +0 -1
  1363. package/dist/_chunk/focus2.js +0 -631
  1364. package/dist/_chunk/focus2.js.map +0 -1
  1365. package/dist/_chunk/focus2.jsx +0 -631
  1366. package/dist/_chunk/focus2.jsx.map +0 -1
  1367. package/dist/_chunk/visually-hidden.js.map +0 -1
  1368. package/dist/_chunk/visually-hidden.jsx.map +0 -1
  1369. package/dist/checkbox/createCheckboxGroupState.d.ts +0 -71
  1370. package/dist/checkbox/createCheckboxGroupState.d.ts.map +0 -1
  1371. package/dist/radio/createRadioGroupState.d.ts +0 -77
  1372. package/dist/radio/createRadioGroupState.d.ts.map +0 -1
  1373. package/dist/toggle/createToggleState.d.ts +0 -34
  1374. package/dist/toggle/createToggleState.d.ts.map +0 -1
  1375. package/src/checkbox/createCheckboxGroupState.ts +0 -174
  1376. package/src/radio/createRadioGroupState.ts +0 -177
  1377. package/src/toggle/createToggleState.ts +0 -86
@@ -1 +1 @@
1
- {"version":3,"file":"breadcrumbs.jsx","names":[],"sources":["../../src/breadcrumbs/createBreadcrumbs.ts"],"sourcesContent":["/**\n * Breadcrumbs hooks for Solidaria\n *\n * Provides accessibility implementation for breadcrumb navigation.\n * Port of @react-aria/breadcrumbs.\n */\n\nimport { createLink, type AriaLinkProps, type LinkAria } from \"../link\";\nimport { filterDOMProps } from \"../utils/filterDOMProps\";\nimport { mergeProps } from \"../utils/mergeProps\";\nimport { type MaybeAccessor, access } from \"../utils/reactivity\";\n\nexport interface AriaBreadcrumbsProps {\n /** Provides a label for the breadcrumbs navigation. */\n \"aria-label\"?: string;\n /** Identifies the element (or elements) that labels the breadcrumbs. */\n \"aria-labelledby\"?: string;\n /** Identifies the element (or elements) that describes the breadcrumbs. */\n \"aria-describedby\"?: string;\n /** Identifies the element (or elements) that provide a detailed description. */\n \"aria-details\"?: string;\n /** Whether the breadcrumbs are disabled. */\n isDisabled?: boolean;\n}\n\nexport interface BreadcrumbsAria {\n /** Props for the breadcrumbs nav element. */\n navProps: Record<string, unknown>;\n}\n\nexport interface AriaBreadcrumbItemProps extends Omit<AriaLinkProps, \"aria-current\"> {\n /** The DOM id for the breadcrumb item. */\n id?: string;\n /** Whether this is the current/last item in the breadcrumb trail. */\n isCurrent?: boolean;\n /** The type of current location for aria-current. @default 'page' */\n \"aria-current\"?: \"page\" | \"step\" | \"location\" | \"date\" | \"time\" | boolean;\n /** The HTML element type. @default 'a' */\n elementType?: string;\n}\n\nexport interface BreadcrumbItemAria extends LinkAria {\n /** Props for the breadcrumb item element. */\n itemProps: Record<string, unknown>;\n}\n\n/**\n * Provides accessibility implementation for the breadcrumbs navigation container.\n */\nexport function createBreadcrumbs(\n props: MaybeAccessor<AriaBreadcrumbsProps> = {},\n): BreadcrumbsAria {\n const getProps = () => access(props);\n\n const getNavProps = (): Record<string, unknown> => {\n const p = getProps();\n\n // Only apply a default label when no other label source exists.\n const ariaLabel = p[\"aria-label\"] ?? (p[\"aria-labelledby\"] ? undefined : \"Breadcrumbs\");\n\n return mergeProps(filterDOMProps(p as Record<string, unknown>, { labelable: true }), {\n \"aria-label\": ariaLabel,\n \"aria-details\": p[\"aria-details\"],\n });\n };\n\n return {\n get navProps() {\n return getNavProps();\n },\n };\n}\n\n/**\n * Provides accessibility implementation for an individual breadcrumb item.\n */\nexport function createBreadcrumbItem(\n props: MaybeAccessor<AriaBreadcrumbItemProps> = {},\n): BreadcrumbItemAria {\n const getProps = () => access(props);\n\n const isCurrent = () => getProps().isCurrent ?? false;\n const isDisabled = () => getProps().isDisabled ?? false;\n const elementType = () => getProps().elementType ?? \"a\";\n\n // Use createLink for base link behavior\n // Current items are treated as disabled (can't navigate to current page).\n // Keep the whole return value (do NOT destructure linkProps): `linkProps` is a\n // reactive getter, and destructuring it here would snapshot getLinkProps() once\n // at mount — freezing role/tabIndex to whatever elementType was during the\n // transient first render (e.g. before isCurrent settles). Reading\n // linkAria.linkProps fresh inside getItemProps keeps it live, mirroring React\n // re-running useLink every render.\n const linkAria = createLink({\n get isDisabled() {\n return isDisabled() || isCurrent();\n },\n get elementType() {\n return elementType();\n },\n get href() {\n return isCurrent() ? undefined : getProps().href;\n },\n get target() {\n return getProps().target;\n },\n get rel() {\n return getProps().rel;\n },\n get onPress() {\n return getProps().onPress;\n },\n get onPressStart() {\n return getProps().onPressStart;\n },\n get onPressEnd() {\n return getProps().onPressEnd;\n },\n get onClick() {\n return getProps().onClick;\n },\n get onFocus() {\n return getProps().onFocus;\n },\n get onBlur() {\n return getProps().onBlur;\n },\n get onFocusChange() {\n return getProps().onFocusChange;\n },\n get onKeyDown() {\n return getProps().onKeyDown;\n },\n get onKeyUp() {\n return getProps().onKeyUp;\n },\n get autoFocus() {\n return getProps().autoFocus;\n },\n get \"aria-label\"() {\n return getProps()[\"aria-label\"];\n },\n get \"aria-labelledby\"() {\n return getProps()[\"aria-labelledby\"];\n },\n get \"aria-describedby\"() {\n return getProps()[\"aria-describedby\"];\n },\n get \"aria-details\"() {\n return getProps()[\"aria-details\"];\n },\n });\n\n const getItemProps = (): Record<string, unknown> => {\n const p = getProps();\n const current = isCurrent();\n // Read fresh each call so elementType-driven role/tabIndex stay reactive.\n const linkProps = linkAria.linkProps;\n\n // Start with link props, forwarding id if provided\n let baseProps: Record<string, unknown> = p.id ? mergeProps(linkProps, { id: p.id }) : linkProps;\n\n // Add aria-current for current page\n if (current) {\n const ariaCurrent = p[\"aria-current\"] ?? \"page\";\n baseProps = mergeProps(baseProps, {\n \"aria-current\": ariaCurrent,\n });\n }\n\n // Add aria-disabled for disabled items\n if (isDisabled()) {\n baseProps = mergeProps(baseProps, {\n \"aria-disabled\": true,\n });\n }\n\n return baseProps;\n };\n\n return {\n get itemProps() {\n return getItemProps();\n },\n get linkProps() {\n return linkAria.linkProps;\n },\n isPressed: linkAria.isPressed,\n };\n}\n"],"mappings":";;;;;;;;;;;;;;AAiDA,SAAgB,kBACd,QAA6C,CAAC,GAC7B;CACjB,MAAM,iBAAiB,OAAO,KAAK;CAEnC,MAAM,oBAA6C;EACjD,MAAM,IAAI,SAAS;EAGnB,MAAM,YAAY,EAAE,kBAAkB,EAAE,qBAAqB,KAAA,IAAY;EAEzE,OAAO,WAAW,eAAe,GAA8B,EAAE,WAAW,KAAK,CAAC,GAAG;GACnF,cAAc;GACd,gBAAgB,EAAE;EACpB,CAAC;CACH;CAEA,OAAO,EACL,IAAI,WAAW;EACb,OAAO,YAAY;CACrB,EACF;AACF;;;;AAKA,SAAgB,qBACd,QAAgD,CAAC,GAC7B;CACpB,MAAM,iBAAiB,OAAO,KAAK;CAEnC,MAAM,kBAAkB,SAAS,CAAC,CAAC,aAAa;CAChD,MAAM,mBAAmB,SAAS,CAAC,CAAC,cAAc;CAClD,MAAM,oBAAoB,SAAS,CAAC,CAAC,eAAe;CAUpD,MAAM,WAAW,WAAW;EAC1B,IAAI,aAAa;GACf,OAAO,WAAW,KAAK,UAAU;EACnC;EACA,IAAI,cAAc;GAChB,OAAO,YAAY;EACrB;EACA,IAAI,OAAO;GACT,OAAO,UAAU,IAAI,KAAA,IAAY,SAAS,CAAC,CAAC;EAC9C;EACA,IAAI,SAAS;GACX,OAAO,SAAS,CAAC,CAAC;EACpB;EACA,IAAI,MAAM;GACR,OAAO,SAAS,CAAC,CAAC;EACpB;EACA,IAAI,UAAU;GACZ,OAAO,SAAS,CAAC,CAAC;EACpB;EACA,IAAI,eAAe;GACjB,OAAO,SAAS,CAAC,CAAC;EACpB;EACA,IAAI,aAAa;GACf,OAAO,SAAS,CAAC,CAAC;EACpB;EACA,IAAI,UAAU;GACZ,OAAO,SAAS,CAAC,CAAC;EACpB;EACA,IAAI,UAAU;GACZ,OAAO,SAAS,CAAC,CAAC;EACpB;EACA,IAAI,SAAS;GACX,OAAO,SAAS,CAAC,CAAC;EACpB;EACA,IAAI,gBAAgB;GAClB,OAAO,SAAS,CAAC,CAAC;EACpB;EACA,IAAI,YAAY;GACd,OAAO,SAAS,CAAC,CAAC;EACpB;EACA,IAAI,UAAU;GACZ,OAAO,SAAS,CAAC,CAAC;EACpB;EACA,IAAI,YAAY;GACd,OAAO,SAAS,CAAC,CAAC;EACpB;EACA,IAAI,eAAe;GACjB,OAAO,SAAS,CAAC,CAAC;EACpB;EACA,IAAI,oBAAoB;GACtB,OAAO,SAAS,CAAC,CAAC;EACpB;EACA,IAAI,qBAAqB;GACvB,OAAO,SAAS,CAAC,CAAC;EACpB;EACA,IAAI,iBAAiB;GACnB,OAAO,SAAS,CAAC,CAAC;EACpB;CACF,CAAC;CAED,MAAM,qBAA8C;EAClD,MAAM,IAAI,SAAS;EACnB,MAAM,UAAU,UAAU;EAE1B,MAAM,YAAY,SAAS;EAG3B,IAAI,YAAqC,EAAE,KAAK,WAAW,WAAW,EAAE,IAAI,EAAE,GAAG,CAAC,IAAI;EAGtF,IAAI,SAAS;GACX,MAAM,cAAc,EAAE,mBAAmB;GACzC,YAAY,WAAW,WAAW,EAChC,gBAAgB,YAClB,CAAC;EACH;EAGA,IAAI,WAAW,GACb,YAAY,WAAW,WAAW,EAChC,iBAAiB,KACnB,CAAC;EAGH,OAAO;CACT;CAEA,OAAO;EACL,IAAI,YAAY;GACd,OAAO,aAAa;EACtB;EACA,IAAI,YAAY;GACd,OAAO,SAAS;EAClB;EACA,WAAW,SAAS;CACtB;AACF"}
1
+ {"version":3,"file":"breadcrumbs.jsx","names":[],"sources":["../../src/breadcrumbs/createBreadcrumbs.ts"],"sourcesContent":["/*\n * Copyright 2020 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */\n\n// Ported to SolidJS for Proyecto Viviana; based on packages/react-aria/src/breadcrumbs/useBreadcrumbItem.ts\n// Ported to SolidJS for Proyecto Viviana; based on packages/react-aria/src/breadcrumbs/useBreadcrumbs.ts\n\n/**\n * Breadcrumbs hooks for Solidaria\n *\n * Provides accessibility implementation for breadcrumb navigation.\n * Ported from:\n * - packages/react-aria/src/breadcrumbs/useBreadcrumbs.ts\n * - packages/react-aria/src/breadcrumbs/useBreadcrumbItem.ts\n */\n\nimport { createLink, type AriaLinkProps, type LinkAria } from \"../link\";\nimport { filterDOMProps } from \"../utils/filterDOMProps\";\nimport { mergeProps } from \"../utils/mergeProps\";\nimport { type MaybeAccessor, access } from \"../utils/reactivity\";\n\nexport interface AriaBreadcrumbsProps {\n /** Provides a label for the breadcrumbs navigation. */\n \"aria-label\"?: string;\n /** Identifies the element (or elements) that labels the breadcrumbs. */\n \"aria-labelledby\"?: string;\n /** Identifies the element (or elements) that describes the breadcrumbs. */\n \"aria-describedby\"?: string;\n /** Identifies the element (or elements) that provide a detailed description. */\n \"aria-details\"?: string;\n /** Whether the breadcrumbs are disabled. */\n isDisabled?: boolean;\n}\n\nexport interface BreadcrumbsAria {\n /** Props for the breadcrumbs nav element. */\n navProps: Record<string, unknown>;\n}\n\nexport interface AriaBreadcrumbItemProps extends Omit<AriaLinkProps, \"aria-current\"> {\n /** The DOM id for the breadcrumb item. */\n id?: string;\n /** Whether this is the current/last item in the breadcrumb trail. */\n isCurrent?: boolean;\n /** The type of current location for aria-current. @default 'page' */\n \"aria-current\"?: \"page\" | \"step\" | \"location\" | \"date\" | \"time\" | boolean;\n /** The HTML element type. @default 'a' */\n elementType?: string;\n}\n\nexport interface BreadcrumbItemAria extends LinkAria {\n /** Props for the breadcrumb item element. */\n itemProps: Record<string, unknown>;\n}\n\n/**\n * Provides accessibility implementation for the breadcrumbs navigation container.\n */\nexport function createBreadcrumbs(\n props: MaybeAccessor<AriaBreadcrumbsProps> = {},\n): BreadcrumbsAria {\n const getProps = () => access(props);\n\n const getNavProps = (): Record<string, unknown> => {\n const p = getProps();\n\n // Only apply a default label when no other label source exists.\n const ariaLabel = p[\"aria-label\"] ?? (p[\"aria-labelledby\"] ? undefined : \"Breadcrumbs\");\n\n return mergeProps(filterDOMProps(p as Record<string, unknown>, { labelable: true }), {\n \"aria-label\": ariaLabel,\n \"aria-details\": p[\"aria-details\"],\n });\n };\n\n return {\n get navProps() {\n return getNavProps();\n },\n };\n}\n\n/**\n * Provides accessibility implementation for an individual breadcrumb item.\n */\nexport function createBreadcrumbItem(\n props: MaybeAccessor<AriaBreadcrumbItemProps> = {},\n): BreadcrumbItemAria {\n const getProps = () => access(props);\n\n const isCurrent = () => getProps().isCurrent ?? false;\n const isDisabled = () => getProps().isDisabled ?? false;\n const elementType = () => getProps().elementType ?? \"a\";\n\n // Use createLink for base link behavior\n // Current items are treated as disabled (can't navigate to current page).\n // Keep the whole return value (do NOT destructure linkProps): `linkProps` is a\n // reactive getter, and destructuring it here would snapshot getLinkProps() once\n // at mount — freezing role/tabIndex to whatever elementType was during the\n // transient first render (e.g. before isCurrent settles). Reading\n // linkAria.linkProps fresh inside getItemProps keeps it live, mirroring React\n // re-running useLink every render.\n const linkAria = createLink({\n get isDisabled() {\n return isDisabled() || isCurrent();\n },\n get elementType() {\n return elementType();\n },\n get href() {\n return isCurrent() ? undefined : getProps().href;\n },\n get target() {\n return getProps().target;\n },\n get rel() {\n return getProps().rel;\n },\n get onPress() {\n return getProps().onPress;\n },\n get onPressStart() {\n return getProps().onPressStart;\n },\n get onPressEnd() {\n return getProps().onPressEnd;\n },\n get onClick() {\n return getProps().onClick;\n },\n get onFocus() {\n return getProps().onFocus;\n },\n get onBlur() {\n return getProps().onBlur;\n },\n get onFocusChange() {\n return getProps().onFocusChange;\n },\n get onKeyDown() {\n return getProps().onKeyDown;\n },\n get onKeyUp() {\n return getProps().onKeyUp;\n },\n get autoFocus() {\n return getProps().autoFocus;\n },\n get \"aria-label\"() {\n return getProps()[\"aria-label\"];\n },\n get \"aria-labelledby\"() {\n return getProps()[\"aria-labelledby\"];\n },\n get \"aria-describedby\"() {\n return getProps()[\"aria-describedby\"];\n },\n get \"aria-details\"() {\n return getProps()[\"aria-details\"];\n },\n });\n\n const getItemProps = (): Record<string, unknown> => {\n const p = getProps();\n const current = isCurrent();\n // Read fresh each call so elementType-driven role/tabIndex stay reactive.\n const linkProps = linkAria.linkProps;\n\n // Start with link props, forwarding id if provided\n let baseProps: Record<string, unknown> = p.id ? mergeProps(linkProps, { id: p.id }) : linkProps;\n\n // Add aria-current for current page\n if (current) {\n const ariaCurrent = p[\"aria-current\"] ?? \"page\";\n baseProps = mergeProps(baseProps, {\n \"aria-current\": ariaCurrent,\n });\n }\n\n // Add aria-disabled for disabled items\n if (isDisabled()) {\n baseProps = mergeProps(baseProps, {\n \"aria-disabled\": true,\n });\n }\n\n return baseProps;\n };\n\n return {\n get itemProps() {\n return getItemProps();\n },\n get linkProps() {\n return linkAria.linkProps;\n },\n isPressed: linkAria.isPressed,\n };\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAkEA,SAAgB,kBACd,QAA6C,CAAC,GAC7B;CACjB,MAAM,iBAAiB,OAAO,KAAK;CAEnC,MAAM,oBAA6C;EACjD,MAAM,IAAI,SAAS;EAGnB,MAAM,YAAY,EAAE,kBAAkB,EAAE,qBAAqB,KAAA,IAAY;EAEzE,OAAO,WAAW,eAAe,GAA8B,EAAE,WAAW,KAAK,CAAC,GAAG;GACnF,cAAc;GACd,gBAAgB,EAAE;EACpB,CAAC;CACH;CAEA,OAAO,EACL,IAAI,WAAW;EACb,OAAO,YAAY;CACrB,EACF;AACF;;;;AAKA,SAAgB,qBACd,QAAgD,CAAC,GAC7B;CACpB,MAAM,iBAAiB,OAAO,KAAK;CAEnC,MAAM,kBAAkB,SAAS,CAAC,CAAC,aAAa;CAChD,MAAM,mBAAmB,SAAS,CAAC,CAAC,cAAc;CAClD,MAAM,oBAAoB,SAAS,CAAC,CAAC,eAAe;CAUpD,MAAM,WAAW,WAAW;EAC1B,IAAI,aAAa;GACf,OAAO,WAAW,KAAK,UAAU;EACnC;EACA,IAAI,cAAc;GAChB,OAAO,YAAY;EACrB;EACA,IAAI,OAAO;GACT,OAAO,UAAU,IAAI,KAAA,IAAY,SAAS,CAAC,CAAC;EAC9C;EACA,IAAI,SAAS;GACX,OAAO,SAAS,CAAC,CAAC;EACpB;EACA,IAAI,MAAM;GACR,OAAO,SAAS,CAAC,CAAC;EACpB;EACA,IAAI,UAAU;GACZ,OAAO,SAAS,CAAC,CAAC;EACpB;EACA,IAAI,eAAe;GACjB,OAAO,SAAS,CAAC,CAAC;EACpB;EACA,IAAI,aAAa;GACf,OAAO,SAAS,CAAC,CAAC;EACpB;EACA,IAAI,UAAU;GACZ,OAAO,SAAS,CAAC,CAAC;EACpB;EACA,IAAI,UAAU;GACZ,OAAO,SAAS,CAAC,CAAC;EACpB;EACA,IAAI,SAAS;GACX,OAAO,SAAS,CAAC,CAAC;EACpB;EACA,IAAI,gBAAgB;GAClB,OAAO,SAAS,CAAC,CAAC;EACpB;EACA,IAAI,YAAY;GACd,OAAO,SAAS,CAAC,CAAC;EACpB;EACA,IAAI,UAAU;GACZ,OAAO,SAAS,CAAC,CAAC;EACpB;EACA,IAAI,YAAY;GACd,OAAO,SAAS,CAAC,CAAC;EACpB;EACA,IAAI,eAAe;GACjB,OAAO,SAAS,CAAC,CAAC;EACpB;EACA,IAAI,oBAAoB;GACtB,OAAO,SAAS,CAAC,CAAC;EACpB;EACA,IAAI,qBAAqB;GACvB,OAAO,SAAS,CAAC,CAAC;EACpB;EACA,IAAI,iBAAiB;GACnB,OAAO,SAAS,CAAC,CAAC;EACpB;CACF,CAAC;CAED,MAAM,qBAA8C;EAClD,MAAM,IAAI,SAAS;EACnB,MAAM,UAAU,UAAU;EAE1B,MAAM,YAAY,SAAS;EAG3B,IAAI,YAAqC,EAAE,KAAK,WAAW,WAAW,EAAE,IAAI,EAAE,GAAG,CAAC,IAAI;EAGtF,IAAI,SAAS;GACX,MAAM,cAAc,EAAE,mBAAmB;GACzC,YAAY,WAAW,WAAW,EAChC,gBAAgB,YAClB,CAAC;EACH;EAGA,IAAI,WAAW,GACb,YAAY,WAAW,WAAW,EAChC,iBAAiB,KACnB,CAAC;EAGH,OAAO;CACT;CAEA,OAAO;EACL,IAAI,YAAY;GACd,OAAO,aAAa;EACtB;EACA,IAAI,YAAY;GACd,OAAO,SAAS;EAClB;EACA,WAAW,SAAS;CACtB;AACF"}
@@ -1,9 +1,46 @@
1
- import { t as createPress } from "./createPress.js";
2
- import { i as mergeProps$1 } from "./env.js";
1
+ /*
2
+ * Copyright 2020 Adobe. All rights reserved.
3
+ * This file is licensed to you under the Apache License, Version 2.0 (the "License");
4
+ * you may not use this file except in compliance with the License. You may obtain a copy
5
+ * of the License at http://www.apache.org/licenses/LICENSE-2.0
6
+ *
7
+ * Unless required by applicable law or agreed to in writing, software distributed under
8
+ * the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS
9
+ * OF ANY KIND, either express or implied. See the License for the specific language
10
+ * governing permissions and limitations under the License.
11
+ */
12
+ // Ported to SolidJS for Proyecto Viviana; based on packages/react-aria/src/button/useButton.ts
13
+ /*
14
+ * Copyright 2020 Adobe. All rights reserved.
15
+ * This file is licensed to you under the Apache License, Version 2.0 (the "License");
16
+ * you may not use this file except in compliance with the License. You may obtain a copy
17
+ * of the License at http://www.apache.org/licenses/LICENSE-2.0
18
+ *
19
+ * Unless required by applicable law or agreed to in writing, software distributed under
20
+ * the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS
21
+ * OF ANY KIND, either express or implied. See the License for the specific language
22
+ * governing permissions and limitations under the License.
23
+ */
24
+ // Ported to SolidJS for Proyecto Viviana; based on packages/react-aria/src/button/useToggleButton.ts
25
+ /*
26
+ * Copyright 2024 Adobe. All rights reserved.
27
+ * This file is licensed to you under the Apache License, Version 2.0 (the "License");
28
+ * you may not use this file except in compliance with the License. You may obtain a copy
29
+ * of the License at http://www.apache.org/licenses/LICENSE-2.0
30
+ *
31
+ * Unless required by applicable law or agreed to in writing, software distributed under
32
+ * the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS
33
+ * OF ANY KIND, either express or implied. See the License for the specific language
34
+ * governing permissions and limitations under the License.
35
+ */
36
+ // Ported to SolidJS for Proyecto Viviana; based on packages/react-aria/src/button/useToggleButtonGroup.ts
37
+ import { t as mergeProps } from "./mergeProps.js";
38
+ import { x as splitProps } from "./utils.js";
3
39
  import { t as filterDOMProps } from "./filterDOMProps.js";
40
+ import { t as createPress } from "./createPress.js";
4
41
  import { n as createFocusable } from "./createFocusable.js";
5
42
  import { t as createToolbar } from "./toolbar.js";
6
- import { createSignal, splitProps } from "solid-js";
43
+ import { createSignal } from "solid-js";
7
44
  //#region src/button/createButton.ts
8
45
  function isDisabledValue$1(isDisabled) {
9
46
  if (typeof isDisabled === "function") return isDisabled();
@@ -112,14 +149,14 @@ function createButton(props = {}) {
112
149
  return elementType === "input" ? isDisabled() : void 0;
113
150
  },
114
151
  get "aria-disabled"() {
115
- return isDisabled() && elementType !== "input" ? true : void 0;
152
+ return isDisabled() && elementType !== "input" ? "true" : void 0;
116
153
  },
117
154
  get rel() {
118
155
  return isLink ? props.rel : void 0;
119
156
  }
120
157
  };
121
158
  return {
122
- buttonProps: mergeProps$1(additionalProps, focusableProps, pressProps, filterDOMProps(props, { labelable: true }), {
159
+ buttonProps: mergeProps(additionalProps, focusableProps, pressProps, filterDOMProps(props, { labelable: true }), {
123
160
  get "aria-haspopup"() {
124
161
  return props["aria-haspopup"];
125
162
  },
@@ -189,14 +226,11 @@ function createToggleButton(props = {}) {
189
226
  toggleSelection();
190
227
  props.onPress?.(e);
191
228
  };
192
- const { buttonProps: baseButtonProps, isPressed } = createButton(mergeProps$1(props, { onPress }));
229
+ const { buttonProps: baseButtonProps, isPressed } = createButton(mergeProps(props, { onPress }));
193
230
  return {
194
- buttonProps: {
195
- ...baseButtonProps,
196
- get "aria-pressed"() {
197
- return isSelected();
198
- }
199
- },
231
+ buttonProps: mergeProps(baseButtonProps, { get "aria-pressed"() {
232
+ return isSelected() ? "true" : "false";
233
+ } }),
200
234
  isPressed,
201
235
  isSelected
202
236
  };
@@ -222,12 +256,12 @@ function createToggleButtonGroup(props, state) {
222
256
  return props["aria-labelledby"];
223
257
  }
224
258
  });
225
- return { groupProps: mergeProps$1(toolbarProps, {
259
+ return { groupProps: mergeProps(toolbarProps, {
226
260
  get role() {
227
261
  return state.selectionMode === "single" ? "radiogroup" : toolbarProps.role;
228
262
  },
229
263
  get "aria-disabled"() {
230
- return props.isDisabled || void 0;
264
+ return props.isDisabled ? "true" : void 0;
231
265
  }
232
266
  }) };
233
267
  }
@@ -236,7 +270,7 @@ function createToggleButtonGroup(props, state) {
236
270
  */
237
271
  function createToggleButtonGroupItem(props, state) {
238
272
  const [, toggleProps] = splitProps(props, ["id"]);
239
- const toggleButton = createToggleButton(mergeProps$1(toggleProps, {
273
+ const toggleButton = createToggleButton(mergeProps(toggleProps, {
240
274
  get isSelected() {
241
275
  return state.selectedKeys.has(props.id);
242
276
  },
@@ -249,21 +283,20 @@ function createToggleButtonGroupItem(props, state) {
249
283
  }
250
284
  }));
251
285
  const baseButtonProps = toggleButton.buttonProps;
252
- const buttonProps = {
253
- ...baseButtonProps,
286
+ const buttonProps = mergeProps(baseButtonProps, {
254
287
  get role() {
255
288
  if (state.selectionMode === "single") return "radio";
256
289
  return baseButtonProps.role;
257
290
  },
258
291
  get "aria-checked"() {
259
292
  if (state.selectionMode !== "single") return;
260
- return state.selectedKeys.has(props.id);
293
+ return state.selectedKeys.has(props.id) ? "true" : "false";
261
294
  },
262
295
  get "aria-pressed"() {
263
- if (state.selectionMode === "single") return;
296
+ if (state.selectionMode === "single") return null;
264
297
  return baseButtonProps["aria-pressed"];
265
298
  }
266
- };
299
+ });
267
300
  return {
268
301
  ...toggleButton,
269
302
  buttonProps
@@ -1 +1 @@
1
- {"version":3,"file":"button.js","names":["isDisabledValue","mergeProps","mergeProps","mergeProps"],"sources":["../../src/button/createButton.ts","../../src/button/createToggleButton.ts","../../src/button/createToggleButtonGroup.ts"],"sourcesContent":["import { Accessor } from \"solid-js\";\nimport { createPress } from \"../interactions\";\nimport { createFocusable } from \"../interactions\";\nimport { mergeProps, filterDOMProps } from \"../utils\";\nimport type { AriaButtonProps, ButtonAria } from \"./types\";\n\nfunction isDisabledValue(isDisabled: Accessor<boolean> | boolean | undefined): boolean {\n if (typeof isDisabled === \"function\") {\n return isDisabled();\n }\n return isDisabled ?? false;\n}\n\n/**\n * Provides the behavior and accessibility implementation for a button component.\n * Handles press interactions across mouse, touch, keyboard and screen readers.\n *\n * Based on react-aria's useButton but adapted for SolidJS.\n *\n * @example\n * ```tsx\n * import { createButton } from 'solidaria';\n *\n * function Button(props) {\n * let ref;\n * const { buttonProps, isPressed } = createButton(props);\n *\n * return (\n * <button\n * {...buttonProps}\n * ref={ref}\n * class={isPressed() ? 'pressed' : ''}\n * >\n * {props.children}\n * </button>\n * );\n * }\n * ```\n */\nexport function createButton(props: AriaButtonProps = {}): ButtonAria {\n const elementType = props.elementType ?? \"button\";\n const isDisabled = () => isDisabledValue(props.isDisabled);\n\n const { pressProps, isPressed } = createPress({\n isDisabled,\n onPress: (event) => props.onPress?.(event),\n onPressStart: (event) => props.onPressStart?.(event),\n onPressEnd: (event) => props.onPressEnd?.(event),\n onPressUp: (event) => props.onPressUp?.(event),\n onPressChange: (pressed) => props.onPressChange?.(pressed),\n onClick: (event) => props.onClick?.(event),\n get preventFocusOnPress() {\n return props.preventFocusOnPress;\n },\n });\n\n const { focusableProps } = createFocusable({\n isDisabled,\n autoFocus: props.autoFocus,\n excludeFromTabOrder: props.excludeFromTabOrder,\n });\n\n const isNativeButton = elementType === \"button\";\n const isLink = elementType === \"a\";\n\n // Handle allowFocusWhenDisabled - set tabIndex to -1 when disabled but focusable\n // This allows tooltips to be shown on disabled buttons\n if (props.allowFocusWhenDisabled) {\n Object.defineProperty(focusableProps, \"tabIndex\", {\n enumerable: true,\n configurable: true,\n get() {\n return isDisabled() ? -1 : props.excludeFromTabOrder ? -1 : 0;\n },\n });\n }\n\n let additionalProps: Record<string, unknown> = {};\n\n if (isNativeButton) {\n additionalProps = {\n get type() {\n return props.type ?? \"button\";\n },\n get disabled() {\n return isDisabled();\n },\n get form() {\n return props.form;\n },\n get formAction() {\n return props.formAction;\n },\n get formEncType() {\n return props.formEncType;\n },\n get formMethod() {\n return props.formMethod;\n },\n get formNoValidate() {\n return props.formNoValidate;\n },\n get formTarget() {\n return props.formTarget;\n },\n get name() {\n return props.name;\n },\n get value() {\n return props.value;\n },\n };\n } else {\n // Non-native buttons need role; focusableProps supplies tabIndex.\n additionalProps = {\n role: \"button\",\n get href() {\n return isLink && !isDisabled() ? props.href : undefined;\n },\n get target() {\n return isLink ? props.target : undefined;\n },\n get type() {\n return elementType === \"input\" ? (props.type ?? \"button\") : undefined;\n },\n get disabled() {\n return elementType === \"input\" ? isDisabled() : undefined;\n },\n get \"aria-disabled\"() {\n return isDisabled() && elementType !== \"input\" ? true : undefined;\n },\n get rel() {\n return isLink ? props.rel : undefined;\n },\n };\n }\n\n const ariaProps: Record<string, unknown> = {\n get \"aria-haspopup\"() {\n return props[\"aria-haspopup\"];\n },\n get \"aria-expanded\"() {\n return props[\"aria-expanded\"];\n },\n get \"aria-controls\"() {\n return props[\"aria-controls\"];\n },\n get \"aria-pressed\"() {\n return props[\"aria-pressed\"];\n },\n get \"aria-current\"() {\n return props[\"aria-current\"];\n },\n get \"aria-disabled\"() {\n return props[\"aria-disabled\"];\n },\n };\n\n const buttonProps = mergeProps(\n additionalProps,\n focusableProps as Record<string, unknown>,\n pressProps as Record<string, unknown>,\n filterDOMProps(props as Record<string, unknown>, { labelable: true }),\n ariaProps,\n );\n\n return {\n buttonProps,\n isPressed,\n };\n}\n","import { Accessor, createSignal } from \"solid-js\";\nimport { createButton } from \"./createButton\";\nimport { mergeProps } from \"../utils\";\nimport type { AriaButtonProps, ButtonAria } from \"./types\";\nimport type { PressEvent } from \"../interactions\";\n\nexport interface AriaToggleButtonProps extends Omit<AriaButtonProps, \"aria-pressed\"> {\n /** Whether the button is selected (controlled). */\n isSelected?: Accessor<boolean> | boolean;\n /** Handler called when the button's selection state changes. */\n onChange?: (isSelected: boolean) => void;\n /** The default selected state (uncontrolled). */\n defaultSelected?: boolean;\n}\n\nexport interface ToggleButtonAria extends ButtonAria {\n /** Whether the button is currently selected. */\n isSelected: Accessor<boolean>;\n}\n\nfunction getSelectedValue(isSelected: Accessor<boolean> | boolean | undefined): boolean {\n if (typeof isSelected === \"function\") {\n return isSelected();\n }\n return isSelected ?? false;\n}\n\n/**\n * Provides the behavior and accessibility implementation for a toggle button component.\n * Toggle buttons allow users to toggle a selection on or off.\n *\n * Based on react-aria's useToggleButton but adapted for SolidJS.\n *\n * @example\n * ```tsx\n * import { createToggleButton } from 'solidaria';\n *\n * function ToggleButton(props) {\n * const { buttonProps, isPressed, isSelected } = createToggleButton(props);\n *\n * return (\n * <button\n * {...buttonProps}\n * class={isSelected() ? 'selected' : ''}\n * style={{ opacity: isPressed() ? 0.8 : 1 }}\n * >\n * {props.children}\n * </button>\n * );\n * }\n * ```\n */\nexport function createToggleButton(props: AriaToggleButtonProps = {}): ToggleButtonAria {\n // Handle controlled vs uncontrolled state\n const isControlled = props.isSelected !== undefined;\n const [uncontrolledSelected, setUncontrolledSelected] = createSignal(\n props.defaultSelected ?? false,\n );\n\n const isSelected = (): boolean => {\n if (isControlled) {\n return getSelectedValue(props.isSelected);\n }\n return uncontrolledSelected();\n };\n\n const toggleSelection = () => {\n const newValue = !isSelected();\n if (!isControlled) {\n setUncontrolledSelected(newValue);\n }\n props.onChange?.(newValue);\n };\n\n // Create the press handler that toggles selection\n const onPress = (e: PressEvent) => {\n toggleSelection();\n props.onPress?.(e);\n };\n\n // Get button props with our custom press handler\n const { buttonProps: baseButtonProps, isPressed } = createButton(\n mergeProps(props, {\n onPress,\n }) as AriaButtonProps,\n );\n\n // Create buttonProps with a getter for aria-pressed so it stays reactive\n const buttonProps = {\n ...baseButtonProps,\n get \"aria-pressed\"() {\n return isSelected();\n },\n };\n\n return {\n buttonProps,\n isPressed,\n isSelected,\n };\n}\n","import type { JSX } from \"solid-js\";\nimport { splitProps } from \"solid-js\";\nimport type { Key, ToggleGroupProps, ToggleGroupState } from \"@proyecto-viviana/solid-stately\";\nimport { createToolbar, type Orientation } from \"../toolbar\";\nimport { mergeProps } from \"../utils\";\nimport {\n createToggleButton,\n type AriaToggleButtonProps,\n type ToggleButtonAria,\n} from \"./createToggleButton\";\n\nexport interface AriaToggleButtonGroupProps extends ToggleGroupProps {\n /**\n * The orientation of the toggle button group.\n * @default 'horizontal'\n */\n orientation?: Orientation;\n /** Accessible label. */\n \"aria-label\"?: string;\n /** Labelled-by id. */\n \"aria-labelledby\"?: string;\n}\n\nexport interface ToggleButtonGroupAria {\n /** Props for the group container. */\n groupProps: JSX.HTMLAttributes<HTMLElement>;\n}\n\nexport interface AriaToggleButtonGroupItemProps extends Omit<AriaToggleButtonProps, \"children\"> {\n /** Key used in the group selection state. */\n id: Key;\n}\n\nfunction isDisabledValue(isDisabled: AriaToggleButtonProps[\"isDisabled\"]): boolean {\n if (typeof isDisabled === \"function\") {\n return isDisabled();\n }\n return !!isDisabled;\n}\n\n/**\n * Provides ARIA behavior for a toggle button group container.\n */\nexport function createToggleButtonGroup(\n props: AriaToggleButtonGroupProps,\n state: ToggleGroupState,\n): ToggleButtonGroupAria {\n const { toolbarProps } = createToolbar({\n get orientation() {\n return props.orientation;\n },\n get \"aria-label\"() {\n return props[\"aria-label\"];\n },\n get \"aria-labelledby\"() {\n return props[\"aria-labelledby\"];\n },\n });\n\n const groupProps = mergeProps(toolbarProps as Record<string, unknown>, {\n get role() {\n return state.selectionMode === \"single\" ? \"radiogroup\" : toolbarProps.role;\n },\n get \"aria-disabled\"() {\n return props.isDisabled || undefined;\n },\n }) as JSX.HTMLAttributes<HTMLElement>;\n\n return { groupProps };\n}\n\n/**\n * Provides ARIA behavior for an item within a toggle button group.\n */\nexport function createToggleButtonGroupItem(\n props: AriaToggleButtonGroupItemProps,\n state: ToggleGroupState,\n): ToggleButtonAria {\n // splitProps keeps `toggleProps` a reactive proxy; an object-rest destructure\n // (`{ id, ...toggleProps }`) eagerly reads and freezes every key. `id` is\n // dropped here and re-read live via props.id below. guard:idiomatic-solid.\n const [, toggleProps] = splitProps(props, [\"id\"]);\n\n const toggleButton = createToggleButton(\n mergeProps(toggleProps, {\n get isSelected() {\n return state.selectedKeys.has(props.id);\n },\n onChange(isSelected: boolean) {\n state.setSelected(props.id, isSelected);\n props.onChange?.(isSelected);\n },\n get isDisabled() {\n return isDisabledValue(props.isDisabled) || state.isDisabled;\n },\n }) as AriaToggleButtonProps,\n );\n\n const baseButtonProps = toggleButton.buttonProps as Record<string, unknown>;\n const buttonProps: Record<string, unknown> = {\n ...baseButtonProps,\n get role() {\n if (state.selectionMode === \"single\") {\n return \"radio\";\n }\n return baseButtonProps.role as string | undefined;\n },\n get \"aria-checked\"() {\n if (state.selectionMode !== \"single\") {\n return undefined;\n }\n return state.selectedKeys.has(props.id);\n },\n get \"aria-pressed\"() {\n if (state.selectionMode === \"single\") {\n return undefined;\n }\n return baseButtonProps[\"aria-pressed\"];\n },\n };\n\n return {\n ...toggleButton,\n buttonProps,\n };\n}\n"],"mappings":"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"}
1
+ {"version":3,"file":"button.js","names":["isDisabledValue"],"sources":["../../src/button/createButton.ts","../../src/button/createToggleButton.ts","../../src/button/createToggleButtonGroup.ts"],"sourcesContent":["/*\n * Copyright 2020 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */\n\n// Ported to SolidJS for Proyecto Viviana; based on packages/react-aria/src/button/useButton.ts\n\nimport { Accessor } from \"solid-js\";\nimport { createPress } from \"../interactions\";\nimport { createFocusable } from \"../interactions\";\nimport { mergeProps, filterDOMProps } from \"../utils\";\nimport type { AriaButtonProps, ButtonAria } from \"./types\";\n\nfunction isDisabledValue(isDisabled: Accessor<boolean> | boolean | undefined): boolean {\n if (typeof isDisabled === \"function\") {\n return isDisabled();\n }\n return isDisabled ?? false;\n}\n\n/**\n * Provides the behavior and accessibility implementation for a button component.\n * Handles press interactions across mouse, touch, keyboard and screen readers.\n *\n * Based on react-aria's useButton but adapted for SolidJS.\n *\n * @example\n * ```tsx\n * import { createButton } from 'solidaria';\n *\n * function Button(props) {\n * let ref;\n * const { buttonProps, isPressed } = createButton(props);\n *\n * return (\n * <button\n * {...buttonProps}\n * ref={ref}\n * class={isPressed() ? 'pressed' : ''}\n * >\n * {props.children}\n * </button>\n * );\n * }\n * ```\n */\nexport function createButton(props: AriaButtonProps = {}): ButtonAria {\n const elementType = props.elementType ?? \"button\";\n const isDisabled = () => isDisabledValue(props.isDisabled);\n\n const { pressProps, isPressed } = createPress({\n isDisabled,\n onPress: (event) => props.onPress?.(event),\n onPressStart: (event) => props.onPressStart?.(event),\n onPressEnd: (event) => props.onPressEnd?.(event),\n onPressUp: (event) => props.onPressUp?.(event),\n onPressChange: (pressed) => props.onPressChange?.(pressed),\n onClick: (event) => props.onClick?.(event),\n get preventFocusOnPress() {\n return props.preventFocusOnPress;\n },\n });\n\n const { focusableProps } = createFocusable({\n isDisabled,\n autoFocus: props.autoFocus,\n excludeFromTabOrder: props.excludeFromTabOrder,\n });\n\n const isNativeButton = elementType === \"button\";\n const isLink = elementType === \"a\";\n\n // Handle allowFocusWhenDisabled - set tabIndex to -1 when disabled but focusable\n // This allows tooltips to be shown on disabled buttons\n if (props.allowFocusWhenDisabled) {\n Object.defineProperty(focusableProps, \"tabIndex\", {\n enumerable: true,\n configurable: true,\n get() {\n return isDisabled() ? -1 : props.excludeFromTabOrder ? -1 : 0;\n },\n });\n }\n\n let additionalProps: Record<string, unknown> = {};\n\n if (isNativeButton) {\n additionalProps = {\n get type() {\n return props.type ?? \"button\";\n },\n get disabled() {\n return isDisabled();\n },\n get form() {\n return props.form;\n },\n get formAction() {\n return props.formAction;\n },\n get formEncType() {\n return props.formEncType;\n },\n get formMethod() {\n return props.formMethod;\n },\n get formNoValidate() {\n return props.formNoValidate;\n },\n get formTarget() {\n return props.formTarget;\n },\n get name() {\n return props.name;\n },\n get value() {\n return props.value;\n },\n };\n } else {\n // Non-native buttons need role; focusableProps supplies tabIndex.\n additionalProps = {\n role: \"button\",\n get href() {\n return isLink && !isDisabled() ? props.href : undefined;\n },\n get target() {\n return isLink ? props.target : undefined;\n },\n get type() {\n return elementType === \"input\" ? (props.type ?? \"button\") : undefined;\n },\n get disabled() {\n return elementType === \"input\" ? isDisabled() : undefined;\n },\n get \"aria-disabled\"() {\n return isDisabled() && elementType !== \"input\" ? \"true\" : undefined;\n },\n get rel() {\n return isLink ? props.rel : undefined;\n },\n };\n }\n\n const ariaProps: Record<string, unknown> = {\n get \"aria-haspopup\"() {\n return props[\"aria-haspopup\"];\n },\n get \"aria-expanded\"() {\n return props[\"aria-expanded\"];\n },\n get \"aria-controls\"() {\n return props[\"aria-controls\"];\n },\n get \"aria-pressed\"() {\n return props[\"aria-pressed\"];\n },\n get \"aria-current\"() {\n return props[\"aria-current\"];\n },\n get \"aria-disabled\"() {\n return props[\"aria-disabled\"];\n },\n };\n\n const buttonProps = mergeProps(\n additionalProps,\n focusableProps as Record<string, unknown>,\n pressProps as Record<string, unknown>,\n filterDOMProps(props as Record<string, unknown>, { labelable: true }),\n ariaProps,\n );\n\n return {\n buttonProps,\n isPressed,\n };\n}\n","/*\n * Copyright 2020 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */\n\n// Ported to SolidJS for Proyecto Viviana; based on packages/react-aria/src/button/useToggleButton.ts\n\nimport { Accessor, createSignal } from \"solid-js\";\nimport { createButton } from \"./createButton\";\nimport { mergeProps } from \"../utils\";\nimport type { AriaButtonProps, ButtonAria } from \"./types\";\nimport type { PressEvent } from \"../interactions\";\n\nexport interface AriaToggleButtonProps extends Omit<AriaButtonProps, \"aria-pressed\"> {\n /** Whether the button is selected (controlled). */\n isSelected?: Accessor<boolean> | boolean;\n /** Handler called when the button's selection state changes. */\n onChange?: (isSelected: boolean) => void;\n /** The default selected state (uncontrolled). */\n defaultSelected?: boolean;\n}\n\nexport interface ToggleButtonAria extends ButtonAria {\n /** Whether the button is currently selected. */\n isSelected: Accessor<boolean>;\n}\n\nfunction getSelectedValue(isSelected: Accessor<boolean> | boolean | undefined): boolean {\n if (typeof isSelected === \"function\") {\n return isSelected();\n }\n return isSelected ?? false;\n}\n\n/**\n * Provides the behavior and accessibility implementation for a toggle button component.\n * Toggle buttons allow users to toggle a selection on or off.\n *\n * Based on react-aria's useToggleButton but adapted for SolidJS.\n *\n * @example\n * ```tsx\n * import { createToggleButton } from 'solidaria';\n *\n * function ToggleButton(props) {\n * const { buttonProps, isPressed, isSelected } = createToggleButton(props);\n *\n * return (\n * <button\n * {...buttonProps}\n * class={isSelected() ? 'selected' : ''}\n * style={{ opacity: isPressed() ? 0.8 : 1 }}\n * >\n * {props.children}\n * </button>\n * );\n * }\n * ```\n */\nexport function createToggleButton(props: AriaToggleButtonProps = {}): ToggleButtonAria {\n // Handle controlled vs uncontrolled state\n const isControlled = props.isSelected !== undefined;\n const [uncontrolledSelected, setUncontrolledSelected] = createSignal(\n props.defaultSelected ?? false,\n );\n\n const isSelected = (): boolean => {\n if (isControlled) {\n return getSelectedValue(props.isSelected);\n }\n return uncontrolledSelected();\n };\n\n const toggleSelection = () => {\n const newValue = !isSelected();\n if (!isControlled) {\n setUncontrolledSelected(newValue);\n }\n props.onChange?.(newValue);\n };\n\n // Create the press handler that toggles selection\n const onPress = (e: PressEvent) => {\n toggleSelection();\n props.onPress?.(e);\n };\n\n // Get button props with our custom press handler\n const { buttonProps: baseButtonProps, isPressed } = createButton(\n mergeProps(props, {\n onPress,\n }) as AriaButtonProps,\n );\n\n // Solid 2 omits boolean `false` attributes; ARIA needs the literal \"false\".\n const buttonProps = mergeProps(baseButtonProps, {\n get \"aria-pressed\"() {\n return isSelected() ? \"true\" : \"false\";\n },\n });\n\n return {\n buttonProps,\n isPressed,\n isSelected,\n };\n}\n","/*\n * Copyright 2024 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */\n\n// Ported to SolidJS for Proyecto Viviana; based on packages/react-aria/src/button/useToggleButtonGroup.ts\n\n// Ported from packages/react-aria/src/button/useToggleButtonGroup.ts.\n\nimport type { JSX } from \"@solidjs/web\";\nimport type { Key, ToggleGroupProps, ToggleGroupState } from \"@proyecto-viviana/solid-stately\";\nimport { createToolbar, type Orientation } from \"../toolbar\";\nimport { mergeProps } from \"../utils\";\nimport { splitProps } from \"../utils/splitProps\";\nimport {\n createToggleButton,\n type AriaToggleButtonProps,\n type ToggleButtonAria,\n} from \"./createToggleButton\";\n\nexport interface AriaToggleButtonGroupProps extends ToggleGroupProps {\n /**\n * The orientation of the toggle button group.\n * @default 'horizontal'\n */\n orientation?: Orientation;\n /** Accessible label. */\n \"aria-label\"?: string;\n /** Labelled-by id. */\n \"aria-labelledby\"?: string;\n}\n\nexport interface ToggleButtonGroupAria {\n /** Props for the group container. */\n groupProps: JSX.HTMLAttributes<HTMLElement>;\n}\n\nexport interface AriaToggleButtonGroupItemProps extends Omit<AriaToggleButtonProps, \"children\"> {\n /** Key used in the group selection state. */\n id: Key;\n}\n\nfunction isDisabledValue(isDisabled: AriaToggleButtonProps[\"isDisabled\"]): boolean {\n if (typeof isDisabled === \"function\") {\n return isDisabled();\n }\n return !!isDisabled;\n}\n\n/**\n * Provides ARIA behavior for a toggle button group container.\n */\nexport function createToggleButtonGroup(\n props: AriaToggleButtonGroupProps,\n state: ToggleGroupState,\n): ToggleButtonGroupAria {\n const { toolbarProps } = createToolbar({\n get orientation() {\n return props.orientation;\n },\n get \"aria-label\"() {\n return props[\"aria-label\"];\n },\n get \"aria-labelledby\"() {\n return props[\"aria-labelledby\"];\n },\n });\n\n const groupProps = mergeProps(toolbarProps as Record<string, unknown>, {\n get role() {\n return state.selectionMode === \"single\" ? \"radiogroup\" : toolbarProps.role;\n },\n get \"aria-disabled\"() {\n return props.isDisabled ? \"true\" : undefined;\n },\n }) as JSX.HTMLAttributes<HTMLElement>;\n\n return { groupProps };\n}\n\n/**\n * Provides ARIA behavior for an item within a toggle button group.\n */\nexport function createToggleButtonGroupItem(\n props: AriaToggleButtonGroupItemProps,\n state: ToggleGroupState,\n): ToggleButtonAria {\n // splitProps keeps `toggleProps` a reactive proxy; an object-rest destructure\n // (`{ id, ...toggleProps }`) eagerly reads and freezes every key. `id` is\n // dropped here and re-read live via props.id below. guard:idiomatic-solid.\n const [, toggleProps] = splitProps(props, [\"id\"]);\n\n const toggleButton = createToggleButton(\n mergeProps(toggleProps, {\n get isSelected() {\n return state.selectedKeys.has(props.id);\n },\n onChange(isSelected: boolean) {\n state.setSelected(props.id, isSelected);\n props.onChange?.(isSelected);\n },\n get isDisabled() {\n return isDisabledValue(props.isDisabled) || state.isDisabled;\n },\n }) as AriaToggleButtonProps,\n );\n\n const baseButtonProps = toggleButton.buttonProps as Record<string, unknown>;\n const buttonProps = mergeProps(baseButtonProps, {\n get role() {\n if (state.selectionMode === \"single\") {\n return \"radio\";\n }\n return baseButtonProps.role as string | undefined;\n },\n get \"aria-checked\"() {\n if (state.selectionMode !== \"single\") {\n return undefined;\n }\n return state.selectedKeys.has(props.id) ? \"true\" : \"false\";\n },\n get \"aria-pressed\"() {\n if (state.selectionMode === \"single\") {\n return null;\n }\n return baseButtonProps[\"aria-pressed\"];\n },\n });\n\n return {\n ...toggleButton,\n buttonProps,\n };\n}\n"],"mappings":"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"}
@@ -1,9 +1,46 @@
1
- import { t as createPress } from "./createPress.jsx";
2
- import { i as mergeProps$1 } from "./env.jsx";
1
+ /*
2
+ * Copyright 2020 Adobe. All rights reserved.
3
+ * This file is licensed to you under the Apache License, Version 2.0 (the "License");
4
+ * you may not use this file except in compliance with the License. You may obtain a copy
5
+ * of the License at http://www.apache.org/licenses/LICENSE-2.0
6
+ *
7
+ * Unless required by applicable law or agreed to in writing, software distributed under
8
+ * the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS
9
+ * OF ANY KIND, either express or implied. See the License for the specific language
10
+ * governing permissions and limitations under the License.
11
+ */
12
+ // Ported to SolidJS for Proyecto Viviana; based on packages/react-aria/src/button/useButton.ts
13
+ /*
14
+ * Copyright 2020 Adobe. All rights reserved.
15
+ * This file is licensed to you under the Apache License, Version 2.0 (the "License");
16
+ * you may not use this file except in compliance with the License. You may obtain a copy
17
+ * of the License at http://www.apache.org/licenses/LICENSE-2.0
18
+ *
19
+ * Unless required by applicable law or agreed to in writing, software distributed under
20
+ * the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS
21
+ * OF ANY KIND, either express or implied. See the License for the specific language
22
+ * governing permissions and limitations under the License.
23
+ */
24
+ // Ported to SolidJS for Proyecto Viviana; based on packages/react-aria/src/button/useToggleButton.ts
25
+ /*
26
+ * Copyright 2024 Adobe. All rights reserved.
27
+ * This file is licensed to you under the Apache License, Version 2.0 (the "License");
28
+ * you may not use this file except in compliance with the License. You may obtain a copy
29
+ * of the License at http://www.apache.org/licenses/LICENSE-2.0
30
+ *
31
+ * Unless required by applicable law or agreed to in writing, software distributed under
32
+ * the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS
33
+ * OF ANY KIND, either express or implied. See the License for the specific language
34
+ * governing permissions and limitations under the License.
35
+ */
36
+ // Ported to SolidJS for Proyecto Viviana; based on packages/react-aria/src/button/useToggleButtonGroup.ts
37
+ import { t as mergeProps } from "./mergeProps.jsx";
38
+ import { x as splitProps } from "./utils.jsx";
3
39
  import { t as filterDOMProps } from "./filterDOMProps.jsx";
40
+ import { t as createPress } from "./createPress.jsx";
4
41
  import { n as createFocusable } from "./createFocusable.jsx";
5
42
  import { t as createToolbar } from "./toolbar.jsx";
6
- import { createSignal, splitProps } from "solid-js";
43
+ import { createSignal } from "solid-js";
7
44
  //#region src/button/createButton.ts
8
45
  function isDisabledValue$1(isDisabled) {
9
46
  if (typeof isDisabled === "function") return isDisabled();
@@ -112,14 +149,14 @@ function createButton(props = {}) {
112
149
  return elementType === "input" ? isDisabled() : void 0;
113
150
  },
114
151
  get "aria-disabled"() {
115
- return isDisabled() && elementType !== "input" ? true : void 0;
152
+ return isDisabled() && elementType !== "input" ? "true" : void 0;
116
153
  },
117
154
  get rel() {
118
155
  return isLink ? props.rel : void 0;
119
156
  }
120
157
  };
121
158
  return {
122
- buttonProps: mergeProps$1(additionalProps, focusableProps, pressProps, filterDOMProps(props, { labelable: true }), {
159
+ buttonProps: mergeProps(additionalProps, focusableProps, pressProps, filterDOMProps(props, { labelable: true }), {
123
160
  get "aria-haspopup"() {
124
161
  return props["aria-haspopup"];
125
162
  },
@@ -189,14 +226,11 @@ function createToggleButton(props = {}) {
189
226
  toggleSelection();
190
227
  props.onPress?.(e);
191
228
  };
192
- const { buttonProps: baseButtonProps, isPressed } = createButton(mergeProps$1(props, { onPress }));
229
+ const { buttonProps: baseButtonProps, isPressed } = createButton(mergeProps(props, { onPress }));
193
230
  return {
194
- buttonProps: {
195
- ...baseButtonProps,
196
- get "aria-pressed"() {
197
- return isSelected();
198
- }
199
- },
231
+ buttonProps: mergeProps(baseButtonProps, { get "aria-pressed"() {
232
+ return isSelected() ? "true" : "false";
233
+ } }),
200
234
  isPressed,
201
235
  isSelected
202
236
  };
@@ -222,12 +256,12 @@ function createToggleButtonGroup(props, state) {
222
256
  return props["aria-labelledby"];
223
257
  }
224
258
  });
225
- return { groupProps: mergeProps$1(toolbarProps, {
259
+ return { groupProps: mergeProps(toolbarProps, {
226
260
  get role() {
227
261
  return state.selectionMode === "single" ? "radiogroup" : toolbarProps.role;
228
262
  },
229
263
  get "aria-disabled"() {
230
- return props.isDisabled || void 0;
264
+ return props.isDisabled ? "true" : void 0;
231
265
  }
232
266
  }) };
233
267
  }
@@ -236,7 +270,7 @@ function createToggleButtonGroup(props, state) {
236
270
  */
237
271
  function createToggleButtonGroupItem(props, state) {
238
272
  const [, toggleProps] = splitProps(props, ["id"]);
239
- const toggleButton = createToggleButton(mergeProps$1(toggleProps, {
273
+ const toggleButton = createToggleButton(mergeProps(toggleProps, {
240
274
  get isSelected() {
241
275
  return state.selectedKeys.has(props.id);
242
276
  },
@@ -249,21 +283,20 @@ function createToggleButtonGroupItem(props, state) {
249
283
  }
250
284
  }));
251
285
  const baseButtonProps = toggleButton.buttonProps;
252
- const buttonProps = {
253
- ...baseButtonProps,
286
+ const buttonProps = mergeProps(baseButtonProps, {
254
287
  get role() {
255
288
  if (state.selectionMode === "single") return "radio";
256
289
  return baseButtonProps.role;
257
290
  },
258
291
  get "aria-checked"() {
259
292
  if (state.selectionMode !== "single") return;
260
- return state.selectedKeys.has(props.id);
293
+ return state.selectedKeys.has(props.id) ? "true" : "false";
261
294
  },
262
295
  get "aria-pressed"() {
263
- if (state.selectionMode === "single") return;
296
+ if (state.selectionMode === "single") return null;
264
297
  return baseButtonProps["aria-pressed"];
265
298
  }
266
- };
299
+ });
267
300
  return {
268
301
  ...toggleButton,
269
302
  buttonProps
@@ -1 +1 @@
1
- {"version":3,"file":"button.jsx","names":["isDisabledValue","mergeProps","mergeProps","mergeProps"],"sources":["../../src/button/createButton.ts","../../src/button/createToggleButton.ts","../../src/button/createToggleButtonGroup.ts"],"sourcesContent":["import { Accessor } from \"solid-js\";\nimport { createPress } from \"../interactions\";\nimport { createFocusable } from \"../interactions\";\nimport { mergeProps, filterDOMProps } from \"../utils\";\nimport type { AriaButtonProps, ButtonAria } from \"./types\";\n\nfunction isDisabledValue(isDisabled: Accessor<boolean> | boolean | undefined): boolean {\n if (typeof isDisabled === \"function\") {\n return isDisabled();\n }\n return isDisabled ?? false;\n}\n\n/**\n * Provides the behavior and accessibility implementation for a button component.\n * Handles press interactions across mouse, touch, keyboard and screen readers.\n *\n * Based on react-aria's useButton but adapted for SolidJS.\n *\n * @example\n * ```tsx\n * import { createButton } from 'solidaria';\n *\n * function Button(props) {\n * let ref;\n * const { buttonProps, isPressed } = createButton(props);\n *\n * return (\n * <button\n * {...buttonProps}\n * ref={ref}\n * class={isPressed() ? 'pressed' : ''}\n * >\n * {props.children}\n * </button>\n * );\n * }\n * ```\n */\nexport function createButton(props: AriaButtonProps = {}): ButtonAria {\n const elementType = props.elementType ?? \"button\";\n const isDisabled = () => isDisabledValue(props.isDisabled);\n\n const { pressProps, isPressed } = createPress({\n isDisabled,\n onPress: (event) => props.onPress?.(event),\n onPressStart: (event) => props.onPressStart?.(event),\n onPressEnd: (event) => props.onPressEnd?.(event),\n onPressUp: (event) => props.onPressUp?.(event),\n onPressChange: (pressed) => props.onPressChange?.(pressed),\n onClick: (event) => props.onClick?.(event),\n get preventFocusOnPress() {\n return props.preventFocusOnPress;\n },\n });\n\n const { focusableProps } = createFocusable({\n isDisabled,\n autoFocus: props.autoFocus,\n excludeFromTabOrder: props.excludeFromTabOrder,\n });\n\n const isNativeButton = elementType === \"button\";\n const isLink = elementType === \"a\";\n\n // Handle allowFocusWhenDisabled - set tabIndex to -1 when disabled but focusable\n // This allows tooltips to be shown on disabled buttons\n if (props.allowFocusWhenDisabled) {\n Object.defineProperty(focusableProps, \"tabIndex\", {\n enumerable: true,\n configurable: true,\n get() {\n return isDisabled() ? -1 : props.excludeFromTabOrder ? -1 : 0;\n },\n });\n }\n\n let additionalProps: Record<string, unknown> = {};\n\n if (isNativeButton) {\n additionalProps = {\n get type() {\n return props.type ?? \"button\";\n },\n get disabled() {\n return isDisabled();\n },\n get form() {\n return props.form;\n },\n get formAction() {\n return props.formAction;\n },\n get formEncType() {\n return props.formEncType;\n },\n get formMethod() {\n return props.formMethod;\n },\n get formNoValidate() {\n return props.formNoValidate;\n },\n get formTarget() {\n return props.formTarget;\n },\n get name() {\n return props.name;\n },\n get value() {\n return props.value;\n },\n };\n } else {\n // Non-native buttons need role; focusableProps supplies tabIndex.\n additionalProps = {\n role: \"button\",\n get href() {\n return isLink && !isDisabled() ? props.href : undefined;\n },\n get target() {\n return isLink ? props.target : undefined;\n },\n get type() {\n return elementType === \"input\" ? (props.type ?? \"button\") : undefined;\n },\n get disabled() {\n return elementType === \"input\" ? isDisabled() : undefined;\n },\n get \"aria-disabled\"() {\n return isDisabled() && elementType !== \"input\" ? true : undefined;\n },\n get rel() {\n return isLink ? props.rel : undefined;\n },\n };\n }\n\n const ariaProps: Record<string, unknown> = {\n get \"aria-haspopup\"() {\n return props[\"aria-haspopup\"];\n },\n get \"aria-expanded\"() {\n return props[\"aria-expanded\"];\n },\n get \"aria-controls\"() {\n return props[\"aria-controls\"];\n },\n get \"aria-pressed\"() {\n return props[\"aria-pressed\"];\n },\n get \"aria-current\"() {\n return props[\"aria-current\"];\n },\n get \"aria-disabled\"() {\n return props[\"aria-disabled\"];\n },\n };\n\n const buttonProps = mergeProps(\n additionalProps,\n focusableProps as Record<string, unknown>,\n pressProps as Record<string, unknown>,\n filterDOMProps(props as Record<string, unknown>, { labelable: true }),\n ariaProps,\n );\n\n return {\n buttonProps,\n isPressed,\n };\n}\n","import { Accessor, createSignal } from \"solid-js\";\nimport { createButton } from \"./createButton\";\nimport { mergeProps } from \"../utils\";\nimport type { AriaButtonProps, ButtonAria } from \"./types\";\nimport type { PressEvent } from \"../interactions\";\n\nexport interface AriaToggleButtonProps extends Omit<AriaButtonProps, \"aria-pressed\"> {\n /** Whether the button is selected (controlled). */\n isSelected?: Accessor<boolean> | boolean;\n /** Handler called when the button's selection state changes. */\n onChange?: (isSelected: boolean) => void;\n /** The default selected state (uncontrolled). */\n defaultSelected?: boolean;\n}\n\nexport interface ToggleButtonAria extends ButtonAria {\n /** Whether the button is currently selected. */\n isSelected: Accessor<boolean>;\n}\n\nfunction getSelectedValue(isSelected: Accessor<boolean> | boolean | undefined): boolean {\n if (typeof isSelected === \"function\") {\n return isSelected();\n }\n return isSelected ?? false;\n}\n\n/**\n * Provides the behavior and accessibility implementation for a toggle button component.\n * Toggle buttons allow users to toggle a selection on or off.\n *\n * Based on react-aria's useToggleButton but adapted for SolidJS.\n *\n * @example\n * ```tsx\n * import { createToggleButton } from 'solidaria';\n *\n * function ToggleButton(props) {\n * const { buttonProps, isPressed, isSelected } = createToggleButton(props);\n *\n * return (\n * <button\n * {...buttonProps}\n * class={isSelected() ? 'selected' : ''}\n * style={{ opacity: isPressed() ? 0.8 : 1 }}\n * >\n * {props.children}\n * </button>\n * );\n * }\n * ```\n */\nexport function createToggleButton(props: AriaToggleButtonProps = {}): ToggleButtonAria {\n // Handle controlled vs uncontrolled state\n const isControlled = props.isSelected !== undefined;\n const [uncontrolledSelected, setUncontrolledSelected] = createSignal(\n props.defaultSelected ?? false,\n );\n\n const isSelected = (): boolean => {\n if (isControlled) {\n return getSelectedValue(props.isSelected);\n }\n return uncontrolledSelected();\n };\n\n const toggleSelection = () => {\n const newValue = !isSelected();\n if (!isControlled) {\n setUncontrolledSelected(newValue);\n }\n props.onChange?.(newValue);\n };\n\n // Create the press handler that toggles selection\n const onPress = (e: PressEvent) => {\n toggleSelection();\n props.onPress?.(e);\n };\n\n // Get button props with our custom press handler\n const { buttonProps: baseButtonProps, isPressed } = createButton(\n mergeProps(props, {\n onPress,\n }) as AriaButtonProps,\n );\n\n // Create buttonProps with a getter for aria-pressed so it stays reactive\n const buttonProps = {\n ...baseButtonProps,\n get \"aria-pressed\"() {\n return isSelected();\n },\n };\n\n return {\n buttonProps,\n isPressed,\n isSelected,\n };\n}\n","import type { JSX } from \"solid-js\";\nimport { splitProps } from \"solid-js\";\nimport type { Key, ToggleGroupProps, ToggleGroupState } from \"@proyecto-viviana/solid-stately\";\nimport { createToolbar, type Orientation } from \"../toolbar\";\nimport { mergeProps } from \"../utils\";\nimport {\n createToggleButton,\n type AriaToggleButtonProps,\n type ToggleButtonAria,\n} from \"./createToggleButton\";\n\nexport interface AriaToggleButtonGroupProps extends ToggleGroupProps {\n /**\n * The orientation of the toggle button group.\n * @default 'horizontal'\n */\n orientation?: Orientation;\n /** Accessible label. */\n \"aria-label\"?: string;\n /** Labelled-by id. */\n \"aria-labelledby\"?: string;\n}\n\nexport interface ToggleButtonGroupAria {\n /** Props for the group container. */\n groupProps: JSX.HTMLAttributes<HTMLElement>;\n}\n\nexport interface AriaToggleButtonGroupItemProps extends Omit<AriaToggleButtonProps, \"children\"> {\n /** Key used in the group selection state. */\n id: Key;\n}\n\nfunction isDisabledValue(isDisabled: AriaToggleButtonProps[\"isDisabled\"]): boolean {\n if (typeof isDisabled === \"function\") {\n return isDisabled();\n }\n return !!isDisabled;\n}\n\n/**\n * Provides ARIA behavior for a toggle button group container.\n */\nexport function createToggleButtonGroup(\n props: AriaToggleButtonGroupProps,\n state: ToggleGroupState,\n): ToggleButtonGroupAria {\n const { toolbarProps } = createToolbar({\n get orientation() {\n return props.orientation;\n },\n get \"aria-label\"() {\n return props[\"aria-label\"];\n },\n get \"aria-labelledby\"() {\n return props[\"aria-labelledby\"];\n },\n });\n\n const groupProps = mergeProps(toolbarProps as Record<string, unknown>, {\n get role() {\n return state.selectionMode === \"single\" ? \"radiogroup\" : toolbarProps.role;\n },\n get \"aria-disabled\"() {\n return props.isDisabled || undefined;\n },\n }) as JSX.HTMLAttributes<HTMLElement>;\n\n return { groupProps };\n}\n\n/**\n * Provides ARIA behavior for an item within a toggle button group.\n */\nexport function createToggleButtonGroupItem(\n props: AriaToggleButtonGroupItemProps,\n state: ToggleGroupState,\n): ToggleButtonAria {\n // splitProps keeps `toggleProps` a reactive proxy; an object-rest destructure\n // (`{ id, ...toggleProps }`) eagerly reads and freezes every key. `id` is\n // dropped here and re-read live via props.id below. guard:idiomatic-solid.\n const [, toggleProps] = splitProps(props, [\"id\"]);\n\n const toggleButton = createToggleButton(\n mergeProps(toggleProps, {\n get isSelected() {\n return state.selectedKeys.has(props.id);\n },\n onChange(isSelected: boolean) {\n state.setSelected(props.id, isSelected);\n props.onChange?.(isSelected);\n },\n get isDisabled() {\n return isDisabledValue(props.isDisabled) || state.isDisabled;\n },\n }) as AriaToggleButtonProps,\n );\n\n const baseButtonProps = toggleButton.buttonProps as Record<string, unknown>;\n const buttonProps: Record<string, unknown> = {\n ...baseButtonProps,\n get role() {\n if (state.selectionMode === \"single\") {\n return \"radio\";\n }\n return baseButtonProps.role as string | undefined;\n },\n get \"aria-checked\"() {\n if (state.selectionMode !== \"single\") {\n return undefined;\n }\n return state.selectedKeys.has(props.id);\n },\n get \"aria-pressed\"() {\n if (state.selectionMode === \"single\") {\n return undefined;\n }\n return baseButtonProps[\"aria-pressed\"];\n },\n };\n\n return {\n ...toggleButton,\n buttonProps,\n };\n}\n"],"mappings":"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"}
1
+ {"version":3,"file":"button.jsx","names":["isDisabledValue"],"sources":["../../src/button/createButton.ts","../../src/button/createToggleButton.ts","../../src/button/createToggleButtonGroup.ts"],"sourcesContent":["/*\n * Copyright 2020 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */\n\n// Ported to SolidJS for Proyecto Viviana; based on packages/react-aria/src/button/useButton.ts\n\nimport { Accessor } from \"solid-js\";\nimport { createPress } from \"../interactions\";\nimport { createFocusable } from \"../interactions\";\nimport { mergeProps, filterDOMProps } from \"../utils\";\nimport type { AriaButtonProps, ButtonAria } from \"./types\";\n\nfunction isDisabledValue(isDisabled: Accessor<boolean> | boolean | undefined): boolean {\n if (typeof isDisabled === \"function\") {\n return isDisabled();\n }\n return isDisabled ?? false;\n}\n\n/**\n * Provides the behavior and accessibility implementation for a button component.\n * Handles press interactions across mouse, touch, keyboard and screen readers.\n *\n * Based on react-aria's useButton but adapted for SolidJS.\n *\n * @example\n * ```tsx\n * import { createButton } from 'solidaria';\n *\n * function Button(props) {\n * let ref;\n * const { buttonProps, isPressed } = createButton(props);\n *\n * return (\n * <button\n * {...buttonProps}\n * ref={ref}\n * class={isPressed() ? 'pressed' : ''}\n * >\n * {props.children}\n * </button>\n * );\n * }\n * ```\n */\nexport function createButton(props: AriaButtonProps = {}): ButtonAria {\n const elementType = props.elementType ?? \"button\";\n const isDisabled = () => isDisabledValue(props.isDisabled);\n\n const { pressProps, isPressed } = createPress({\n isDisabled,\n onPress: (event) => props.onPress?.(event),\n onPressStart: (event) => props.onPressStart?.(event),\n onPressEnd: (event) => props.onPressEnd?.(event),\n onPressUp: (event) => props.onPressUp?.(event),\n onPressChange: (pressed) => props.onPressChange?.(pressed),\n onClick: (event) => props.onClick?.(event),\n get preventFocusOnPress() {\n return props.preventFocusOnPress;\n },\n });\n\n const { focusableProps } = createFocusable({\n isDisabled,\n autoFocus: props.autoFocus,\n excludeFromTabOrder: props.excludeFromTabOrder,\n });\n\n const isNativeButton = elementType === \"button\";\n const isLink = elementType === \"a\";\n\n // Handle allowFocusWhenDisabled - set tabIndex to -1 when disabled but focusable\n // This allows tooltips to be shown on disabled buttons\n if (props.allowFocusWhenDisabled) {\n Object.defineProperty(focusableProps, \"tabIndex\", {\n enumerable: true,\n configurable: true,\n get() {\n return isDisabled() ? -1 : props.excludeFromTabOrder ? -1 : 0;\n },\n });\n }\n\n let additionalProps: Record<string, unknown> = {};\n\n if (isNativeButton) {\n additionalProps = {\n get type() {\n return props.type ?? \"button\";\n },\n get disabled() {\n return isDisabled();\n },\n get form() {\n return props.form;\n },\n get formAction() {\n return props.formAction;\n },\n get formEncType() {\n return props.formEncType;\n },\n get formMethod() {\n return props.formMethod;\n },\n get formNoValidate() {\n return props.formNoValidate;\n },\n get formTarget() {\n return props.formTarget;\n },\n get name() {\n return props.name;\n },\n get value() {\n return props.value;\n },\n };\n } else {\n // Non-native buttons need role; focusableProps supplies tabIndex.\n additionalProps = {\n role: \"button\",\n get href() {\n return isLink && !isDisabled() ? props.href : undefined;\n },\n get target() {\n return isLink ? props.target : undefined;\n },\n get type() {\n return elementType === \"input\" ? (props.type ?? \"button\") : undefined;\n },\n get disabled() {\n return elementType === \"input\" ? isDisabled() : undefined;\n },\n get \"aria-disabled\"() {\n return isDisabled() && elementType !== \"input\" ? \"true\" : undefined;\n },\n get rel() {\n return isLink ? props.rel : undefined;\n },\n };\n }\n\n const ariaProps: Record<string, unknown> = {\n get \"aria-haspopup\"() {\n return props[\"aria-haspopup\"];\n },\n get \"aria-expanded\"() {\n return props[\"aria-expanded\"];\n },\n get \"aria-controls\"() {\n return props[\"aria-controls\"];\n },\n get \"aria-pressed\"() {\n return props[\"aria-pressed\"];\n },\n get \"aria-current\"() {\n return props[\"aria-current\"];\n },\n get \"aria-disabled\"() {\n return props[\"aria-disabled\"];\n },\n };\n\n const buttonProps = mergeProps(\n additionalProps,\n focusableProps as Record<string, unknown>,\n pressProps as Record<string, unknown>,\n filterDOMProps(props as Record<string, unknown>, { labelable: true }),\n ariaProps,\n );\n\n return {\n buttonProps,\n isPressed,\n };\n}\n","/*\n * Copyright 2020 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */\n\n// Ported to SolidJS for Proyecto Viviana; based on packages/react-aria/src/button/useToggleButton.ts\n\nimport { Accessor, createSignal } from \"solid-js\";\nimport { createButton } from \"./createButton\";\nimport { mergeProps } from \"../utils\";\nimport type { AriaButtonProps, ButtonAria } from \"./types\";\nimport type { PressEvent } from \"../interactions\";\n\nexport interface AriaToggleButtonProps extends Omit<AriaButtonProps, \"aria-pressed\"> {\n /** Whether the button is selected (controlled). */\n isSelected?: Accessor<boolean> | boolean;\n /** Handler called when the button's selection state changes. */\n onChange?: (isSelected: boolean) => void;\n /** The default selected state (uncontrolled). */\n defaultSelected?: boolean;\n}\n\nexport interface ToggleButtonAria extends ButtonAria {\n /** Whether the button is currently selected. */\n isSelected: Accessor<boolean>;\n}\n\nfunction getSelectedValue(isSelected: Accessor<boolean> | boolean | undefined): boolean {\n if (typeof isSelected === \"function\") {\n return isSelected();\n }\n return isSelected ?? false;\n}\n\n/**\n * Provides the behavior and accessibility implementation for a toggle button component.\n * Toggle buttons allow users to toggle a selection on or off.\n *\n * Based on react-aria's useToggleButton but adapted for SolidJS.\n *\n * @example\n * ```tsx\n * import { createToggleButton } from 'solidaria';\n *\n * function ToggleButton(props) {\n * const { buttonProps, isPressed, isSelected } = createToggleButton(props);\n *\n * return (\n * <button\n * {...buttonProps}\n * class={isSelected() ? 'selected' : ''}\n * style={{ opacity: isPressed() ? 0.8 : 1 }}\n * >\n * {props.children}\n * </button>\n * );\n * }\n * ```\n */\nexport function createToggleButton(props: AriaToggleButtonProps = {}): ToggleButtonAria {\n // Handle controlled vs uncontrolled state\n const isControlled = props.isSelected !== undefined;\n const [uncontrolledSelected, setUncontrolledSelected] = createSignal(\n props.defaultSelected ?? false,\n );\n\n const isSelected = (): boolean => {\n if (isControlled) {\n return getSelectedValue(props.isSelected);\n }\n return uncontrolledSelected();\n };\n\n const toggleSelection = () => {\n const newValue = !isSelected();\n if (!isControlled) {\n setUncontrolledSelected(newValue);\n }\n props.onChange?.(newValue);\n };\n\n // Create the press handler that toggles selection\n const onPress = (e: PressEvent) => {\n toggleSelection();\n props.onPress?.(e);\n };\n\n // Get button props with our custom press handler\n const { buttonProps: baseButtonProps, isPressed } = createButton(\n mergeProps(props, {\n onPress,\n }) as AriaButtonProps,\n );\n\n // Solid 2 omits boolean `false` attributes; ARIA needs the literal \"false\".\n const buttonProps = mergeProps(baseButtonProps, {\n get \"aria-pressed\"() {\n return isSelected() ? \"true\" : \"false\";\n },\n });\n\n return {\n buttonProps,\n isPressed,\n isSelected,\n };\n}\n","/*\n * Copyright 2024 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */\n\n// Ported to SolidJS for Proyecto Viviana; based on packages/react-aria/src/button/useToggleButtonGroup.ts\n\n// Ported from packages/react-aria/src/button/useToggleButtonGroup.ts.\n\nimport type { JSX } from \"@solidjs/web\";\nimport type { Key, ToggleGroupProps, ToggleGroupState } from \"@proyecto-viviana/solid-stately\";\nimport { createToolbar, type Orientation } from \"../toolbar\";\nimport { mergeProps } from \"../utils\";\nimport { splitProps } from \"../utils/splitProps\";\nimport {\n createToggleButton,\n type AriaToggleButtonProps,\n type ToggleButtonAria,\n} from \"./createToggleButton\";\n\nexport interface AriaToggleButtonGroupProps extends ToggleGroupProps {\n /**\n * The orientation of the toggle button group.\n * @default 'horizontal'\n */\n orientation?: Orientation;\n /** Accessible label. */\n \"aria-label\"?: string;\n /** Labelled-by id. */\n \"aria-labelledby\"?: string;\n}\n\nexport interface ToggleButtonGroupAria {\n /** Props for the group container. */\n groupProps: JSX.HTMLAttributes<HTMLElement>;\n}\n\nexport interface AriaToggleButtonGroupItemProps extends Omit<AriaToggleButtonProps, \"children\"> {\n /** Key used in the group selection state. */\n id: Key;\n}\n\nfunction isDisabledValue(isDisabled: AriaToggleButtonProps[\"isDisabled\"]): boolean {\n if (typeof isDisabled === \"function\") {\n return isDisabled();\n }\n return !!isDisabled;\n}\n\n/**\n * Provides ARIA behavior for a toggle button group container.\n */\nexport function createToggleButtonGroup(\n props: AriaToggleButtonGroupProps,\n state: ToggleGroupState,\n): ToggleButtonGroupAria {\n const { toolbarProps } = createToolbar({\n get orientation() {\n return props.orientation;\n },\n get \"aria-label\"() {\n return props[\"aria-label\"];\n },\n get \"aria-labelledby\"() {\n return props[\"aria-labelledby\"];\n },\n });\n\n const groupProps = mergeProps(toolbarProps as Record<string, unknown>, {\n get role() {\n return state.selectionMode === \"single\" ? \"radiogroup\" : toolbarProps.role;\n },\n get \"aria-disabled\"() {\n return props.isDisabled ? \"true\" : undefined;\n },\n }) as JSX.HTMLAttributes<HTMLElement>;\n\n return { groupProps };\n}\n\n/**\n * Provides ARIA behavior for an item within a toggle button group.\n */\nexport function createToggleButtonGroupItem(\n props: AriaToggleButtonGroupItemProps,\n state: ToggleGroupState,\n): ToggleButtonAria {\n // splitProps keeps `toggleProps` a reactive proxy; an object-rest destructure\n // (`{ id, ...toggleProps }`) eagerly reads and freezes every key. `id` is\n // dropped here and re-read live via props.id below. guard:idiomatic-solid.\n const [, toggleProps] = splitProps(props, [\"id\"]);\n\n const toggleButton = createToggleButton(\n mergeProps(toggleProps, {\n get isSelected() {\n return state.selectedKeys.has(props.id);\n },\n onChange(isSelected: boolean) {\n state.setSelected(props.id, isSelected);\n props.onChange?.(isSelected);\n },\n get isDisabled() {\n return isDisabledValue(props.isDisabled) || state.isDisabled;\n },\n }) as AriaToggleButtonProps,\n );\n\n const baseButtonProps = toggleButton.buttonProps as Record<string, unknown>;\n const buttonProps = mergeProps(baseButtonProps, {\n get role() {\n if (state.selectionMode === \"single\") {\n return \"radio\";\n }\n return baseButtonProps.role as string | undefined;\n },\n get \"aria-checked\"() {\n if (state.selectionMode !== \"single\") {\n return undefined;\n }\n return state.selectedKeys.has(props.id) ? \"true\" : \"false\";\n },\n get \"aria-pressed\"() {\n if (state.selectionMode === \"single\") {\n return null;\n }\n return baseButtonProps[\"aria-pressed\"];\n },\n });\n\n return {\n ...toggleButton,\n buttonProps,\n };\n}\n"],"mappings":"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"}