@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":"grid.jsx","names":[],"sources":["../../src/grid/GridKeyboardDelegate.ts","../../src/grid/createGrid.ts","../../src/grid/createGridRow.ts","../../src/grid/createGridCell.ts"],"sourcesContent":["/**\n * GridKeyboardDelegate - Handles keyboard navigation in a grid.\n * Based on @react-aria/grid/GridKeyboardDelegate.\n */\n\nimport type { GridCollection, GridNode, Key } from \"@proyecto-viviana/solid-stately\";\nimport type { KeyboardDelegate } from \"./types\";\nimport type { Accessor } from \"solid-js\";\n\nexport interface GridKeyboardDelegateOptions<T> {\n /** The grid collection. */\n collection: GridCollection<T>;\n /** Set of disabled keys. */\n disabledKeys: Set<Key>;\n /** Ref to the grid element. */\n ref: Accessor<HTMLElement | null>;\n /** Focus mode: row or cell. */\n focusMode: \"row\" | \"cell\";\n /** Text direction (ltr or rtl). */\n direction: \"ltr\" | \"rtl\";\n}\n\n/**\n * A keyboard delegate that handles navigation in a grid.\n */\nexport class GridKeyboardDelegate<T> implements KeyboardDelegate {\n private collection: GridCollection<T>;\n private disabledKeys: Set<Key>;\n private ref: Accessor<HTMLElement | null>;\n private focusMode: \"row\" | \"cell\";\n private direction: \"ltr\" | \"rtl\";\n\n constructor(options: GridKeyboardDelegateOptions<T>) {\n this.collection = options.collection;\n this.disabledKeys = options.disabledKeys;\n this.ref = options.ref;\n this.focusMode = options.focusMode;\n this.direction = options.direction;\n }\n\n /**\n * Check if a key is disabled.\n */\n private isDisabled(key: Key): boolean {\n return this.disabledKeys.has(key);\n }\n\n /**\n * Get the parent row key for a cell.\n */\n private getRowKey(key: Key): Key | null {\n const item = this.collection.getItem(key);\n if (!item) return null;\n\n if (item.type === \"item\") {\n return key;\n }\n\n if (item.type === \"cell\" && item.parentKey != null) {\n return item.parentKey;\n }\n\n return null;\n }\n\n /**\n * Get all body rows (excluding header rows).\n */\n private getBodyRows(): GridNode<T>[] {\n return this.collection.rows.filter((row) => row.type === \"item\");\n }\n\n /**\n * Get the first non-disabled key.\n */\n getFirstKey(fromKey?: Key, global?: boolean): Key | null {\n const rows = this.getBodyRows();\n\n if (this.focusMode === \"row\" || global) {\n // Find first non-disabled row\n for (const row of rows) {\n if (!this.isDisabled(row.key)) {\n return row.key;\n }\n }\n return null;\n }\n\n // Cell focus mode - get first cell of current row or first row\n if (fromKey != null) {\n const rowKey = this.getRowKey(fromKey);\n if (rowKey != null) {\n const children = [...this.collection.getChildren(rowKey)];\n if (children.length > 0) {\n return children[0].key;\n }\n }\n }\n\n // Fall back to first cell of first row\n if (rows.length > 0) {\n const children = [...this.collection.getChildren(rows[0].key)];\n if (children.length > 0) {\n return children[0].key;\n }\n }\n\n return null;\n }\n\n /**\n * Get the last non-disabled key.\n */\n getLastKey(fromKey?: Key, global?: boolean): Key | null {\n const rows = this.getBodyRows();\n\n if (this.focusMode === \"row\" || global) {\n // Find last non-disabled row\n for (let i = rows.length - 1; i >= 0; i--) {\n if (!this.isDisabled(rows[i].key)) {\n return rows[i].key;\n }\n }\n return null;\n }\n\n // Cell focus mode - get last cell of current row or last row\n if (fromKey != null) {\n const rowKey = this.getRowKey(fromKey);\n if (rowKey != null) {\n const children = [...this.collection.getChildren(rowKey)];\n if (children.length > 0) {\n return children[children.length - 1].key;\n }\n }\n }\n\n // Fall back to last cell of last row\n if (rows.length > 0) {\n const children = [...this.collection.getChildren(rows[rows.length - 1].key)];\n if (children.length > 0) {\n return children[children.length - 1].key;\n }\n }\n\n return null;\n }\n\n /**\n * Get the key above the current key.\n */\n getKeyAbove(key: Key): Key | null {\n const item = this.collection.getItem(key);\n if (!item) return null;\n\n const rows = this.getBodyRows();\n\n if (this.focusMode === \"row\" || item.type === \"item\") {\n // Find the row and get the previous one\n const rowKey = item.type === \"item\" ? key : item.parentKey;\n const rowIndex = rows.findIndex((r) => r.key === rowKey);\n\n if (rowIndex > 0) {\n // Find previous non-disabled row\n for (let i = rowIndex - 1; i >= 0; i--) {\n if (!this.isDisabled(rows[i].key)) {\n return rows[i].key;\n }\n }\n }\n return null;\n }\n\n // Cell focus mode - get cell in same column of previous row\n if (item.type === \"cell\" && item.parentKey != null) {\n const rowIndex = rows.findIndex((r) => r.key === item.parentKey);\n const colIndex = item.column ?? item.index;\n\n if (rowIndex > 0) {\n for (let i = rowIndex - 1; i >= 0; i--) {\n if (!this.isDisabled(rows[i].key)) {\n const children = [...this.collection.getChildren(rows[i].key)];\n const targetCol = Math.min(colIndex, children.length - 1);\n if (targetCol >= 0) {\n return children[targetCol].key;\n }\n }\n }\n }\n }\n\n return null;\n }\n\n /**\n * Get the key below the current key.\n */\n getKeyBelow(key: Key): Key | null {\n const item = this.collection.getItem(key);\n if (!item) return null;\n\n const rows = this.getBodyRows();\n\n if (this.focusMode === \"row\" || item.type === \"item\") {\n // Find the row and get the next one\n const rowKey = item.type === \"item\" ? key : item.parentKey;\n const rowIndex = rows.findIndex((r) => r.key === rowKey);\n\n if (rowIndex >= 0 && rowIndex < rows.length - 1) {\n // Find next non-disabled row\n for (let i = rowIndex + 1; i < rows.length; i++) {\n if (!this.isDisabled(rows[i].key)) {\n return rows[i].key;\n }\n }\n }\n return null;\n }\n\n // Cell focus mode - get cell in same column of next row\n if (item.type === \"cell\" && item.parentKey != null) {\n const rowIndex = rows.findIndex((r) => r.key === item.parentKey);\n const colIndex = item.column ?? item.index;\n\n if (rowIndex >= 0 && rowIndex < rows.length - 1) {\n for (let i = rowIndex + 1; i < rows.length; i++) {\n if (!this.isDisabled(rows[i].key)) {\n const children = [...this.collection.getChildren(rows[i].key)];\n const targetCol = Math.min(colIndex, children.length - 1);\n if (targetCol >= 0) {\n return children[targetCol].key;\n }\n }\n }\n }\n }\n\n return null;\n }\n\n /**\n * Get the key to the left of the current key.\n */\n getKeyLeftOf(key: Key): Key | null {\n const item = this.collection.getItem(key);\n if (!item) return null;\n\n // In row focus mode, left/right might not be meaningful\n if (this.focusMode === \"row\") {\n return null;\n }\n\n if (item.type === \"cell\" && item.parentKey != null) {\n const children = [...this.collection.getChildren(item.parentKey)];\n const colIndex = children.findIndex((c) => c.key === key);\n\n if (this.direction === \"rtl\") {\n // RTL: left moves to higher index\n if (colIndex < children.length - 1) {\n return children[colIndex + 1].key;\n }\n } else {\n // LTR: left moves to lower index\n if (colIndex > 0) {\n return children[colIndex - 1].key;\n }\n }\n }\n\n return null;\n }\n\n /**\n * Get the key to the right of the current key.\n */\n getKeyRightOf(key: Key): Key | null {\n const item = this.collection.getItem(key);\n if (!item) return null;\n\n // In row focus mode, left/right might not be meaningful\n if (this.focusMode === \"row\") {\n return null;\n }\n\n if (item.type === \"cell\" && item.parentKey != null) {\n const children = [...this.collection.getChildren(item.parentKey)];\n const colIndex = children.findIndex((c) => c.key === key);\n\n if (this.direction === \"rtl\") {\n // RTL: right moves to lower index\n if (colIndex > 0) {\n return children[colIndex - 1].key;\n }\n } else {\n // LTR: right moves to higher index\n if (colIndex < children.length - 1) {\n return children[colIndex + 1].key;\n }\n }\n }\n\n return null;\n }\n\n /**\n * Get the key for page up.\n */\n getKeyPageAbove(key: Key): Key | null {\n const el = this.ref();\n if (!el) return null;\n\n const item = this.collection.getItem(key);\n if (!item) return null;\n\n const rows = this.getBodyRows();\n const rowKey = this.getRowKey(key);\n const rowIndex = rows.findIndex((r) => r.key === rowKey);\n\n if (rowIndex < 0) return null;\n\n // Calculate how many rows fit in a page (rough estimate)\n const rowHeight = el.scrollHeight / rows.length;\n const pageSize = Math.max(1, Math.floor(el.clientHeight / rowHeight));\n\n const targetIndex = Math.max(0, rowIndex - pageSize);\n\n // Find first non-disabled row at or before target\n for (let i = targetIndex; i >= 0; i--) {\n if (!this.isDisabled(rows[i].key)) {\n if (this.focusMode === \"row\" || item.type === \"item\") {\n return rows[i].key;\n }\n\n // Cell focus mode - return cell at same column\n const colIndex = item.type === \"cell\" ? (item.column ?? item.index) : 0;\n const children = [...this.collection.getChildren(rows[i].key)];\n const targetCol = Math.min(colIndex, children.length - 1);\n if (targetCol >= 0) {\n return children[targetCol].key;\n }\n }\n }\n\n return null;\n }\n\n /**\n * Get the key for page down.\n */\n getKeyPageBelow(key: Key): Key | null {\n const el = this.ref();\n if (!el) return null;\n\n const item = this.collection.getItem(key);\n if (!item) return null;\n\n const rows = this.getBodyRows();\n const rowKey = this.getRowKey(key);\n const rowIndex = rows.findIndex((r) => r.key === rowKey);\n\n if (rowIndex < 0) return null;\n\n // Calculate how many rows fit in a page (rough estimate)\n const rowHeight = el.scrollHeight / rows.length;\n const pageSize = Math.max(1, Math.floor(el.clientHeight / rowHeight));\n\n const targetIndex = Math.min(rows.length - 1, rowIndex + pageSize);\n\n // Find first non-disabled row at or after target\n for (let i = targetIndex; i < rows.length; i++) {\n if (!this.isDisabled(rows[i].key)) {\n if (this.focusMode === \"row\" || item.type === \"item\") {\n return rows[i].key;\n }\n\n // Cell focus mode - return cell at same column\n const colIndex = item.type === \"cell\" ? (item.column ?? item.index) : 0;\n const children = [...this.collection.getChildren(rows[i].key)];\n const targetCol = Math.min(colIndex, children.length - 1);\n if (targetCol >= 0) {\n return children[targetCol].key;\n }\n }\n }\n\n return null;\n }\n\n /**\n * Get the key that matches the search string.\n */\n getKeyForSearch(search: string, fromKey?: Key): Key | null {\n const searchLower = search.toLowerCase();\n const rows = this.getBodyRows();\n\n let startIndex = 0;\n if (fromKey != null) {\n const rowKey = this.getRowKey(fromKey);\n const idx = rows.findIndex((r) => r.key === rowKey);\n if (idx >= 0) {\n startIndex = idx + 1;\n }\n }\n\n // Search from startIndex to end\n for (let i = startIndex; i < rows.length; i++) {\n const row = rows[i];\n if (!this.isDisabled(row.key)) {\n const textValue = row.textValue?.toLowerCase() ?? \"\";\n if (textValue.startsWith(searchLower)) {\n return row.key;\n }\n }\n }\n\n // Wrap around and search from beginning\n for (let i = 0; i < startIndex; i++) {\n const row = rows[i];\n if (!this.isDisabled(row.key)) {\n const textValue = row.textValue?.toLowerCase() ?? \"\";\n if (textValue.startsWith(searchLower)) {\n return row.key;\n }\n }\n }\n\n return null;\n }\n}\n","/**\n * createGrid - Provides accessibility for a grid component.\n * Based on @react-aria/grid/useGrid.\n */\n\nimport { createMemo, createSignal, type Accessor } from \"solid-js\";\nimport type { JSX } from \"solid-js\";\nimport { createId } from \"@proyecto-viviana/solid-stately\";\nimport type { GridState, GridCollection, Key } from \"@proyecto-viviana/solid-stately\";\nimport type { GridProps, GridAria, KeyboardDelegate } from \"./types\";\nimport { GridKeyboardDelegate } from \"./GridKeyboardDelegate\";\nimport { useLocale } from \"../i18n\";\n\n// Global map to store grid metadata for child components\nconst gridMap = new WeakMap<\n object,\n {\n keyboardDelegate: KeyboardDelegate;\n actions: { onRowAction?: (key: Key) => void; onCellAction?: (key: Key) => void };\n shouldSelectOnPressUp?: boolean;\n }\n>();\n\n/**\n * Get the grid metadata for child components.\n */\nexport function getGridData<T>(state: GridState<T, GridCollection<T>>) {\n return gridMap.get(state);\n}\n\n/**\n * Creates accessibility props for a grid component.\n * A grid displays data in rows and columns and enables navigation via arrow keys.\n */\nexport function createGrid<T extends object>(\n props: Accessor<GridProps>,\n state: Accessor<GridState<T, GridCollection<T>>>,\n ref: Accessor<HTMLElement | null>,\n): GridAria {\n const id = createId(props().id);\n const locale = useLocale();\n\n // Track focused state\n const [_isFocused, setIsFocused] = createSignal(false);\n\n // Create keyboard delegate\n const keyboardDelegate = createMemo(() => {\n const p = props();\n const s = state();\n\n if (p.keyboardDelegate) {\n return p.keyboardDelegate;\n }\n\n return new GridKeyboardDelegate({\n collection: s.collection,\n disabledKeys: s.disabledKeys,\n ref,\n focusMode: p.focusMode ?? \"row\",\n direction: locale().direction,\n });\n });\n\n // Store metadata for child components\n const storeGridData = () => {\n const s = state();\n const p = props();\n gridMap.set(s, {\n keyboardDelegate: keyboardDelegate(),\n actions: {\n onRowAction: p.onRowAction,\n onCellAction: p.onCellAction,\n },\n shouldSelectOnPressUp: p.shouldSelectOnPressUp,\n });\n };\n\n // Update grid data whenever state changes\n createMemo(() => {\n storeGridData();\n });\n\n // Keyboard navigation handler\n const onKeyDown = (e: KeyboardEvent) => {\n const s = state();\n const p = props();\n const delegate = keyboardDelegate();\n\n if (s.isKeyboardNavigationDisabled) {\n return;\n }\n\n const focusedKey = s.focusedKey;\n if (focusedKey == null) {\n // If nothing is focused, focus the first item\n if (e.key === \"ArrowDown\" || e.key === \"ArrowUp\" || e.key === \"Home\" || e.key === \"End\") {\n const firstKey = delegate.getFirstKey?.();\n if (firstKey != null) {\n e.preventDefault();\n s.setFocusedKey(firstKey);\n }\n }\n return;\n }\n\n let nextKey: Key | null = null;\n\n switch (e.key) {\n case \"ArrowDown\":\n nextKey = delegate.getKeyBelow?.(focusedKey) ?? null;\n break;\n case \"ArrowUp\":\n nextKey = delegate.getKeyAbove?.(focusedKey) ?? null;\n break;\n case \"ArrowLeft\":\n nextKey = delegate.getKeyLeftOf?.(focusedKey) ?? null;\n break;\n case \"ArrowRight\":\n nextKey = delegate.getKeyRightOf?.(focusedKey) ?? null;\n break;\n case \"Home\":\n if (e.ctrlKey) {\n nextKey = delegate.getFirstKey?.() ?? null;\n } else {\n // Go to first cell in row - for now just use first key\n nextKey = delegate.getFirstKey?.(focusedKey) ?? null;\n }\n break;\n case \"End\":\n if (e.ctrlKey) {\n nextKey = delegate.getLastKey?.() ?? null;\n } else {\n // Go to last cell in row - for now just use last key\n nextKey = delegate.getLastKey?.(focusedKey) ?? null;\n }\n break;\n case \"PageDown\":\n nextKey = delegate.getKeyPageBelow?.(focusedKey) ?? null;\n break;\n case \"PageUp\":\n nextKey = delegate.getKeyPageAbove?.(focusedKey) ?? null;\n break;\n case \"Escape\":\n if (p.escapeKeyBehavior !== \"none\") {\n s.clearSelection();\n }\n return;\n case \"a\":\n if (e.ctrlKey || e.metaKey) {\n e.preventDefault();\n if (s.selectionMode === \"multiple\") {\n s.selectAll();\n }\n }\n return;\n case \" \":\n case \"Enter\":\n e.preventDefault();\n // Toggle selection or trigger action\n if (s.selectionMode !== \"none\") {\n if (e.shiftKey && s.selectionMode === \"multiple\") {\n s.extendSelection(focusedKey);\n } else {\n s.toggleSelection(focusedKey);\n }\n }\n return;\n default:\n // Type to select\n if (!p.disallowTypeAhead && e.key.length === 1 && !e.ctrlKey && !e.metaKey && !e.altKey) {\n const key = delegate.getKeyForSearch?.(e.key, focusedKey);\n if (key != null) {\n e.preventDefault();\n s.setFocusedKey(key);\n }\n }\n return;\n }\n\n if (nextKey != null) {\n e.preventDefault();\n s.setFocusedKey(nextKey);\n\n // Handle shift+arrow for range selection\n if (e.shiftKey && s.selectionMode === \"multiple\") {\n s.extendSelection(nextKey);\n }\n }\n };\n\n // Focus handling\n const onFocus = (e: FocusEvent) => {\n const s = state();\n const el = ref();\n\n if (!el?.contains(e.target as Element)) {\n return;\n }\n\n if (!s.isFocused) {\n s.setFocused(true);\n setIsFocused(true);\n\n // If no key is focused, focus the first one\n if (s.focusedKey == null) {\n const firstKey = keyboardDelegate().getFirstKey?.();\n if (firstKey != null) {\n s.setFocusedKey(firstKey);\n }\n }\n }\n };\n\n const onBlur = (e: FocusEvent) => {\n const s = state();\n const el = ref();\n\n // Only blur if focus is leaving the grid entirely\n if (el && !el.contains(e.relatedTarget as Element)) {\n s.setFocused(false);\n setIsFocused(false);\n }\n };\n\n // Warn if no label is provided\n createMemo(() => {\n const p = props();\n if (!p[\"aria-label\"] && !p[\"aria-labelledby\"]) {\n console.warn(\"Grid: An aria-label or aria-labelledby prop is required for accessibility.\");\n }\n });\n\n const gridProps = createMemo(() => {\n const p = props();\n const s = state();\n\n const baseProps: Record<string, unknown> = {\n role: \"grid\",\n id,\n \"aria-label\": p[\"aria-label\"],\n \"aria-labelledby\": p[\"aria-labelledby\"],\n \"aria-describedby\": p[\"aria-describedby\"],\n \"aria-multiselectable\": s.selectionMode === \"multiple\" ? \"true\" : undefined,\n tabIndex: s.collection.size === 0 ? 0 : -1,\n onKeyDown,\n onFocus,\n onBlur,\n };\n\n if (p.isVirtualized) {\n baseProps[\"aria-rowcount\"] = s.collection.rowCount;\n baseProps[\"aria-colcount\"] = s.collection.columnCount;\n }\n\n return baseProps as JSX.HTMLAttributes<HTMLElement>;\n });\n\n return {\n get gridProps() {\n return gridProps();\n },\n };\n}\n","/**\n * createGridRow - Provides accessibility for a grid row.\n * Based on @react-aria/grid/useGridRow.\n */\n\nimport { createMemo, createSignal, type Accessor } from \"solid-js\";\nimport type { JSX } from \"solid-js\";\nimport type { GridState, GridCollection } from \"@proyecto-viviana/solid-stately\";\nimport type { GridRowProps, GridRowAria } from \"./types\";\nimport { getGridData } from \"./createGrid\";\n\n/**\n * Creates accessibility props for a grid row.\n */\nexport function createGridRow<T extends object>(\n props: Accessor<GridRowProps>,\n state: Accessor<GridState<T, GridCollection<T>>>,\n _ref: Accessor<HTMLElement | null>,\n): GridRowAria {\n const [isPressed, setIsPressed] = createSignal(false);\n\n const isSelected = createMemo(() => {\n const s = state();\n const p = props();\n return s.isSelected(p.key);\n });\n\n const isDisabled = createMemo(() => {\n const s = state();\n const p = props();\n return s.isDisabled(p.key);\n });\n\n const isFocused = createMemo(() => {\n const s = state();\n const p = props();\n return s.focusedKey === p.key;\n });\n\n // Handle click/press for selection\n const onClick = (e: MouseEvent) => {\n const s = state();\n const p = props();\n\n if (isDisabled()) return;\n\n // Get grid metadata for actions\n const gridData = getGridData(s);\n const onRowAction = gridData?.actions.onRowAction;\n\n // Handle selection\n if (s.selectionMode !== \"none\") {\n if (e.shiftKey && s.selectionMode === \"multiple\") {\n s.extendSelection(p.key);\n } else if (e.ctrlKey || e.metaKey) {\n s.toggleSelection(p.key);\n } else {\n // Replace selection\n s.replaceSelection(p.key);\n }\n }\n\n // Call action handler\n if (onRowAction) {\n onRowAction(p.key);\n }\n\n if (p.onAction) {\n p.onAction();\n }\n };\n\n const onKeyDown = (e: KeyboardEvent) => {\n const s = state();\n const p = props();\n\n if (isDisabled()) return;\n\n if (e.key === \"Enter\" || e.key === \" \") {\n e.preventDefault();\n\n // Get grid metadata for actions\n const gridData = getGridData(s);\n const onRowAction = gridData?.actions.onRowAction;\n\n // Handle selection\n if (s.selectionMode !== \"none\") {\n s.toggleSelection(p.key);\n }\n\n // Call action handler\n if (onRowAction) {\n onRowAction(p.key);\n }\n\n if (p.onAction) {\n p.onAction();\n }\n }\n };\n\n const onFocus = () => {\n const s = state();\n const p = props();\n s.setFocusedKey(p.key);\n };\n\n const onPointerDown = () => {\n setIsPressed(true);\n };\n\n const onPointerUp = () => {\n setIsPressed(false);\n };\n\n const rowProps = createMemo(() => {\n const s = state();\n const p = props();\n\n const baseProps: Record<string, unknown> = {\n role: \"row\",\n \"aria-selected\": s.selectionMode !== \"none\" ? isSelected() : undefined,\n \"aria-disabled\": isDisabled() || undefined,\n tabIndex: isFocused() ? 0 : -1,\n onClick,\n onKeyDown,\n onFocus,\n onPointerDown,\n onPointerUp,\n };\n\n if (p.isVirtualized && p.index != null) {\n baseProps[\"aria-rowindex\"] = p.index + 1; // aria-rowindex is 1-based\n }\n\n return baseProps as JSX.HTMLAttributes<HTMLElement>;\n });\n\n return {\n get rowProps() {\n return rowProps();\n },\n get isSelected() {\n return isSelected();\n },\n get isDisabled() {\n return isDisabled();\n },\n get isPressed() {\n return isPressed();\n },\n };\n}\n","/**\n * createGridCell - Provides accessibility for a grid cell.\n * Based on @react-aria/grid/useGridCell.\n */\n\nimport { createMemo, createSignal, type Accessor } from \"solid-js\";\nimport type { JSX } from \"solid-js\";\nimport type { GridState, GridCollection } from \"@proyecto-viviana/solid-stately\";\nimport type { GridCellProps, GridCellAria } from \"./types\";\nimport { getGridData } from \"./createGrid\";\n\n/**\n * Creates accessibility props for a grid cell.\n */\nexport function createGridCell<T extends object>(\n props: Accessor<GridCellProps>,\n state: Accessor<GridState<T, GridCollection<T>>>,\n _ref: Accessor<HTMLElement | null>,\n): GridCellAria {\n const [isPressed, setIsPressed] = createSignal(false);\n\n const isSelected = createMemo(() => {\n const s = state();\n const p = props();\n // Check if parent row is selected\n const node = s.collection.getItem(p.key);\n if (node?.parentKey != null) {\n return s.isSelected(node.parentKey);\n }\n return false;\n });\n\n const isDisabled = createMemo(() => {\n const s = state();\n const p = props();\n // Check if parent row is disabled\n const node = s.collection.getItem(p.key);\n if (node?.parentKey != null) {\n return s.isDisabled(node.parentKey);\n }\n return false;\n });\n\n const isFocused = createMemo(() => {\n const s = state();\n const p = props();\n return s.focusedKey === p.key;\n });\n\n // Handle click/press for cell actions\n const onClick = (e: MouseEvent) => {\n const s = state();\n const p = props();\n\n if (isDisabled()) return;\n\n // Get grid metadata for actions\n const gridData = getGridData(s);\n const onCellAction = gridData?.actions.onCellAction;\n\n // Get parent row key for selection\n const node = s.collection.getItem(p.key);\n const rowKey = node?.parentKey;\n\n // Handle selection on parent row\n if (rowKey != null && s.selectionMode !== \"none\") {\n if (e.shiftKey && s.selectionMode === \"multiple\") {\n s.extendSelection(rowKey);\n } else if (e.ctrlKey || e.metaKey) {\n s.toggleSelection(rowKey);\n } else {\n // Replace selection\n s.replaceSelection(rowKey);\n }\n }\n\n // Call cell action handler\n if (onCellAction) {\n onCellAction(p.key);\n }\n\n if (p.onAction) {\n p.onAction();\n }\n };\n\n const onKeyDown = (e: KeyboardEvent) => {\n const s = state();\n const p = props();\n\n if (isDisabled()) return;\n\n // Enter or Space triggers cell action\n if (e.key === \"Enter\" || e.key === \" \") {\n // Only handle if there's an action to trigger\n const gridData = getGridData(s);\n const onCellAction = gridData?.actions.onCellAction;\n\n if (onCellAction || p.onAction) {\n e.preventDefault();\n\n if (onCellAction) {\n onCellAction(p.key);\n }\n\n if (p.onAction) {\n p.onAction();\n }\n }\n }\n };\n\n const onFocus = () => {\n const s = state();\n const p = props();\n s.setFocusedKey(p.key);\n };\n\n const onPointerDown = () => {\n setIsPressed(true);\n };\n\n const onPointerUp = () => {\n setIsPressed(false);\n };\n\n const cellProps = createMemo(() => {\n const s = state();\n const p = props();\n const node = s.collection.getItem(p.key);\n\n // Determine the role based on node type\n let role: string = \"gridcell\";\n if (node?.type === \"rowheader\") {\n role = \"rowheader\";\n } else if (node?.type === \"column\") {\n role = \"columnheader\";\n }\n\n const baseProps: Record<string, unknown> = {\n role,\n \"aria-disabled\": isDisabled() || undefined,\n \"aria-selected\": s.selectionMode !== \"none\" ? isSelected() : undefined,\n tabIndex: isFocused() ? 0 : -1,\n onClick,\n onKeyDown,\n onFocus,\n onPointerDown,\n onPointerUp,\n };\n\n // Add column index for virtualized grids\n if (p.isVirtualized && node?.column != null) {\n baseProps[\"aria-colindex\"] = node.column + 1; // aria-colindex is 1-based\n }\n\n // Add colspan if present\n if (node?.colspan != null && node.colspan > 1) {\n baseProps[\"aria-colspan\"] = node.colspan;\n }\n\n return baseProps as JSX.HTMLAttributes<HTMLElement>;\n });\n\n return {\n get cellProps() {\n return cellProps();\n },\n get isSelected() {\n return isSelected();\n },\n get isDisabled() {\n return isDisabled();\n },\n get isPressed() {\n return isPressed();\n },\n get isFocused() {\n return isFocused();\n },\n };\n}\n"],"mappings":"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"}
1
+ {"version":3,"file":"grid.jsx","names":[],"sources":["../../src/grid/GridKeyboardDelegate.ts","../../src/grid/createGrid.ts","../../src/grid/createGridRow.ts","../../src/grid/createGridCell.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/grid/GridKeyboardDelegate.ts\n\n/**\n * GridKeyboardDelegate - Handles keyboard navigation in a grid.\n * Based on @react-aria/grid/GridKeyboardDelegate.\n */\n\nimport type { GridCollection, GridNode, Key } from \"@proyecto-viviana/solid-stately\";\nimport type { KeyboardDelegate } from \"./types\";\nimport type { Accessor } from \"solid-js\";\n\nexport interface GridKeyboardDelegateOptions<T> {\n /** The grid collection. */\n collection: GridCollection<T>;\n /** Set of disabled keys. */\n disabledKeys: Set<Key>;\n /** Ref to the grid element. */\n ref: Accessor<HTMLElement | null>;\n /** Focus mode: row or cell. */\n focusMode: \"row\" | \"cell\";\n /** Text direction (ltr or rtl). */\n direction: \"ltr\" | \"rtl\";\n}\n\n/**\n * A keyboard delegate that handles navigation in a grid.\n */\nexport class GridKeyboardDelegate<T> implements KeyboardDelegate {\n private collection: GridCollection<T>;\n private disabledKeys: Set<Key>;\n private ref: Accessor<HTMLElement | null>;\n private focusMode: \"row\" | \"cell\";\n private direction: \"ltr\" | \"rtl\";\n\n constructor(options: GridKeyboardDelegateOptions<T>) {\n this.collection = options.collection;\n this.disabledKeys = options.disabledKeys;\n this.ref = options.ref;\n this.focusMode = options.focusMode;\n this.direction = options.direction;\n }\n\n /**\n * Check if a key is disabled.\n */\n private isDisabled(key: Key): boolean {\n return this.disabledKeys.has(key);\n }\n\n /**\n * Get the parent row key for a cell.\n */\n private getRowKey(key: Key): Key | null {\n const item = this.collection.getItem(key);\n if (!item) return null;\n\n if (item.type === \"item\") {\n return key;\n }\n\n if (item.type === \"cell\" && item.parentKey != null) {\n return item.parentKey;\n }\n\n return null;\n }\n\n /**\n * Get all body rows (excluding header rows).\n */\n private getBodyRows(): GridNode<T>[] {\n return this.collection.rows.filter((row) => row.type === \"item\");\n }\n\n /**\n * Get the first non-disabled key.\n */\n getFirstKey(fromKey?: Key, global?: boolean): Key | null {\n const rows = this.getBodyRows();\n\n if (this.focusMode === \"row\" || global) {\n // Find first non-disabled row\n for (const row of rows) {\n if (!this.isDisabled(row.key)) {\n return row.key;\n }\n }\n return null;\n }\n\n // Cell focus mode - get first cell of current row or first row\n if (fromKey != null) {\n const rowKey = this.getRowKey(fromKey);\n if (rowKey != null) {\n const children = [...this.collection.getChildren(rowKey)];\n if (children.length > 0) {\n return children[0].key;\n }\n }\n }\n\n // Fall back to first cell of first row\n if (rows.length > 0) {\n const children = [...this.collection.getChildren(rows[0].key)];\n if (children.length > 0) {\n return children[0].key;\n }\n }\n\n return null;\n }\n\n /**\n * Get the last non-disabled key.\n */\n getLastKey(fromKey?: Key, global?: boolean): Key | null {\n const rows = this.getBodyRows();\n\n if (this.focusMode === \"row\" || global) {\n // Find last non-disabled row\n for (let i = rows.length - 1; i >= 0; i--) {\n if (!this.isDisabled(rows[i].key)) {\n return rows[i].key;\n }\n }\n return null;\n }\n\n // Cell focus mode - get last cell of current row or last row\n if (fromKey != null) {\n const rowKey = this.getRowKey(fromKey);\n if (rowKey != null) {\n const children = [...this.collection.getChildren(rowKey)];\n if (children.length > 0) {\n return children[children.length - 1].key;\n }\n }\n }\n\n // Fall back to last cell of last row\n if (rows.length > 0) {\n const children = [...this.collection.getChildren(rows[rows.length - 1].key)];\n if (children.length > 0) {\n return children[children.length - 1].key;\n }\n }\n\n return null;\n }\n\n /**\n * Get the key above the current key.\n */\n getKeyAbove(key: Key): Key | null {\n const item = this.collection.getItem(key);\n if (!item) return null;\n\n const rows = this.getBodyRows();\n\n if (this.focusMode === \"row\" || item.type === \"item\") {\n // Find the row and get the previous one\n const rowKey = item.type === \"item\" ? key : item.parentKey;\n const rowIndex = rows.findIndex((r) => r.key === rowKey);\n\n if (rowIndex > 0) {\n // Find previous non-disabled row\n for (let i = rowIndex - 1; i >= 0; i--) {\n if (!this.isDisabled(rows[i].key)) {\n return rows[i].key;\n }\n }\n }\n return null;\n }\n\n // Cell focus mode - get cell in same column of previous row\n if (item.type === \"cell\" && item.parentKey != null) {\n const rowIndex = rows.findIndex((r) => r.key === item.parentKey);\n const colIndex = item.column ?? item.index;\n\n if (rowIndex > 0) {\n for (let i = rowIndex - 1; i >= 0; i--) {\n if (!this.isDisabled(rows[i].key)) {\n const children = [...this.collection.getChildren(rows[i].key)];\n const targetCol = Math.min(colIndex, children.length - 1);\n if (targetCol >= 0) {\n return children[targetCol].key;\n }\n }\n }\n }\n }\n\n return null;\n }\n\n /**\n * Get the key below the current key.\n */\n getKeyBelow(key: Key): Key | null {\n const item = this.collection.getItem(key);\n if (!item) return null;\n\n const rows = this.getBodyRows();\n\n if (this.focusMode === \"row\" || item.type === \"item\") {\n // Find the row and get the next one\n const rowKey = item.type === \"item\" ? key : item.parentKey;\n const rowIndex = rows.findIndex((r) => r.key === rowKey);\n\n if (rowIndex >= 0 && rowIndex < rows.length - 1) {\n // Find next non-disabled row\n for (let i = rowIndex + 1; i < rows.length; i++) {\n if (!this.isDisabled(rows[i].key)) {\n return rows[i].key;\n }\n }\n }\n return null;\n }\n\n // Cell focus mode - get cell in same column of next row\n if (item.type === \"cell\" && item.parentKey != null) {\n const rowIndex = rows.findIndex((r) => r.key === item.parentKey);\n const colIndex = item.column ?? item.index;\n\n if (rowIndex >= 0 && rowIndex < rows.length - 1) {\n for (let i = rowIndex + 1; i < rows.length; i++) {\n if (!this.isDisabled(rows[i].key)) {\n const children = [...this.collection.getChildren(rows[i].key)];\n const targetCol = Math.min(colIndex, children.length - 1);\n if (targetCol >= 0) {\n return children[targetCol].key;\n }\n }\n }\n }\n }\n\n return null;\n }\n\n /**\n * Get the key to the left of the current key.\n */\n getKeyLeftOf(key: Key): Key | null {\n const item = this.collection.getItem(key);\n if (!item) return null;\n\n // In row focus mode, left/right might not be meaningful\n if (this.focusMode === \"row\") {\n return null;\n }\n\n if (item.type === \"cell\" && item.parentKey != null) {\n const children = [...this.collection.getChildren(item.parentKey)];\n const colIndex = children.findIndex((c) => c.key === key);\n\n if (this.direction === \"rtl\") {\n // RTL: left moves to higher index\n if (colIndex < children.length - 1) {\n return children[colIndex + 1].key;\n }\n } else {\n // LTR: left moves to lower index\n if (colIndex > 0) {\n return children[colIndex - 1].key;\n }\n }\n }\n\n return null;\n }\n\n /**\n * Get the key to the right of the current key.\n */\n getKeyRightOf(key: Key): Key | null {\n const item = this.collection.getItem(key);\n if (!item) return null;\n\n // In row focus mode, left/right might not be meaningful\n if (this.focusMode === \"row\") {\n return null;\n }\n\n if (item.type === \"cell\" && item.parentKey != null) {\n const children = [...this.collection.getChildren(item.parentKey)];\n const colIndex = children.findIndex((c) => c.key === key);\n\n if (this.direction === \"rtl\") {\n // RTL: right moves to lower index\n if (colIndex > 0) {\n return children[colIndex - 1].key;\n }\n } else {\n // LTR: right moves to higher index\n if (colIndex < children.length - 1) {\n return children[colIndex + 1].key;\n }\n }\n }\n\n return null;\n }\n\n /**\n * Get the key for page up.\n */\n getKeyPageAbove(key: Key): Key | null {\n const el = this.ref();\n if (!el) return null;\n\n const item = this.collection.getItem(key);\n if (!item) return null;\n\n const rows = this.getBodyRows();\n const rowKey = this.getRowKey(key);\n const rowIndex = rows.findIndex((r) => r.key === rowKey);\n\n if (rowIndex < 0) return null;\n\n // Calculate how many rows fit in a page (rough estimate)\n const rowHeight = el.scrollHeight / rows.length;\n const pageSize = Math.max(1, Math.floor(el.clientHeight / rowHeight));\n\n const targetIndex = Math.max(0, rowIndex - pageSize);\n\n // Find first non-disabled row at or before target\n for (let i = targetIndex; i >= 0; i--) {\n if (!this.isDisabled(rows[i].key)) {\n if (this.focusMode === \"row\" || item.type === \"item\") {\n return rows[i].key;\n }\n\n // Cell focus mode - return cell at same column\n const colIndex = item.type === \"cell\" ? (item.column ?? item.index) : 0;\n const children = [...this.collection.getChildren(rows[i].key)];\n const targetCol = Math.min(colIndex, children.length - 1);\n if (targetCol >= 0) {\n return children[targetCol].key;\n }\n }\n }\n\n return null;\n }\n\n /**\n * Get the key for page down.\n */\n getKeyPageBelow(key: Key): Key | null {\n const el = this.ref();\n if (!el) return null;\n\n const item = this.collection.getItem(key);\n if (!item) return null;\n\n const rows = this.getBodyRows();\n const rowKey = this.getRowKey(key);\n const rowIndex = rows.findIndex((r) => r.key === rowKey);\n\n if (rowIndex < 0) return null;\n\n // Calculate how many rows fit in a page (rough estimate)\n const rowHeight = el.scrollHeight / rows.length;\n const pageSize = Math.max(1, Math.floor(el.clientHeight / rowHeight));\n\n const targetIndex = Math.min(rows.length - 1, rowIndex + pageSize);\n\n // Find first non-disabled row at or after target\n for (let i = targetIndex; i < rows.length; i++) {\n if (!this.isDisabled(rows[i].key)) {\n if (this.focusMode === \"row\" || item.type === \"item\") {\n return rows[i].key;\n }\n\n // Cell focus mode - return cell at same column\n const colIndex = item.type === \"cell\" ? (item.column ?? item.index) : 0;\n const children = [...this.collection.getChildren(rows[i].key)];\n const targetCol = Math.min(colIndex, children.length - 1);\n if (targetCol >= 0) {\n return children[targetCol].key;\n }\n }\n }\n\n return null;\n }\n\n /**\n * Get the key that matches the search string.\n */\n getKeyForSearch(search: string, fromKey?: Key): Key | null {\n const searchLower = search.toLowerCase();\n const rows = this.getBodyRows();\n\n let startIndex = 0;\n if (fromKey != null) {\n const rowKey = this.getRowKey(fromKey);\n const idx = rows.findIndex((r) => r.key === rowKey);\n if (idx >= 0) {\n startIndex = idx + 1;\n }\n }\n\n // Search from startIndex to end\n for (let i = startIndex; i < rows.length; i++) {\n const row = rows[i];\n if (!this.isDisabled(row.key)) {\n const textValue = row.textValue?.toLowerCase() ?? \"\";\n if (textValue.startsWith(searchLower)) {\n return row.key;\n }\n }\n }\n\n // Wrap around and search from beginning\n for (let i = 0; i < startIndex; i++) {\n const row = rows[i];\n if (!this.isDisabled(row.key)) {\n const textValue = row.textValue?.toLowerCase() ?? \"\";\n if (textValue.startsWith(searchLower)) {\n return row.key;\n }\n }\n }\n\n return null;\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/grid/useGrid.ts\n\n/**\n * createGrid - Provides accessibility for a grid component.\n * Based on @react-aria/grid/useGrid.\n */\n\nimport { createMemo, createSignal } from \"solid-js\";\nimport type { Accessor } from \"solid-js\";\nimport type { JSX } from \"@solidjs/web\";\nimport { createId } from \"@proyecto-viviana/solid-stately\";\nimport type { GridState, GridCollection, Key } from \"@proyecto-viviana/solid-stately\";\nimport type { GridProps, GridAria, KeyboardDelegate } from \"./types\";\nimport { GridKeyboardDelegate } from \"./GridKeyboardDelegate\";\nimport { useLocale } from \"../i18n\";\n\n// Global map to store grid metadata for child components\nconst gridMap = new WeakMap<\n object,\n {\n keyboardDelegate: KeyboardDelegate;\n actions: { onRowAction?: (key: Key) => void; onCellAction?: (key: Key) => void };\n shouldSelectOnPressUp?: boolean;\n }\n>();\n\n/**\n * Get the grid metadata for child components.\n */\nexport function getGridData<T>(state: GridState<T, GridCollection<T>>) {\n return gridMap.get(state);\n}\n\n/**\n * Creates accessibility props for a grid component.\n * A grid displays data in rows and columns and enables navigation via arrow keys.\n */\nexport function createGrid<T extends object>(\n props: Accessor<GridProps>,\n state: Accessor<GridState<T, GridCollection<T>>>,\n ref: Accessor<HTMLElement | null>,\n): GridAria {\n const id = createId(props().id);\n const locale = useLocale();\n\n // Track focused state\n const [_isFocused, setIsFocused] = createSignal(false);\n\n // Create keyboard delegate\n const keyboardDelegate = createMemo(() => {\n const p = props();\n const s = state();\n\n if (p.keyboardDelegate) {\n return p.keyboardDelegate;\n }\n\n return new GridKeyboardDelegate({\n collection: s.collection,\n disabledKeys: s.disabledKeys,\n ref,\n focusMode: p.focusMode ?? \"row\",\n direction: locale().direction,\n });\n });\n\n // Store metadata for child components\n const storeGridData = () => {\n const s = state();\n const p = props();\n gridMap.set(s, {\n keyboardDelegate: keyboardDelegate(),\n actions: {\n onRowAction: p.onRowAction,\n onCellAction: p.onCellAction,\n },\n shouldSelectOnPressUp: p.shouldSelectOnPressUp,\n });\n };\n\n // Update grid data whenever state changes\n createMemo(() => {\n storeGridData();\n });\n\n // Keyboard navigation handler\n const onKeyDown = (e: KeyboardEvent) => {\n const s = state();\n const p = props();\n const delegate = keyboardDelegate();\n\n if (s.isKeyboardNavigationDisabled) {\n return;\n }\n\n const focusedKey = s.focusedKey;\n if (focusedKey == null) {\n // If nothing is focused, focus the first item\n if (e.key === \"ArrowDown\" || e.key === \"ArrowUp\" || e.key === \"Home\" || e.key === \"End\") {\n const firstKey = delegate.getFirstKey?.();\n if (firstKey != null) {\n e.preventDefault();\n s.setFocusedKey(firstKey);\n }\n }\n return;\n }\n\n let nextKey: Key | null = null;\n\n switch (e.key) {\n case \"ArrowDown\":\n nextKey = delegate.getKeyBelow?.(focusedKey) ?? null;\n break;\n case \"ArrowUp\":\n nextKey = delegate.getKeyAbove?.(focusedKey) ?? null;\n break;\n case \"ArrowLeft\":\n nextKey = delegate.getKeyLeftOf?.(focusedKey) ?? null;\n break;\n case \"ArrowRight\":\n nextKey = delegate.getKeyRightOf?.(focusedKey) ?? null;\n break;\n case \"Home\":\n if (e.ctrlKey) {\n nextKey = delegate.getFirstKey?.() ?? null;\n } else {\n // Go to first cell in row - for now just use first key\n nextKey = delegate.getFirstKey?.(focusedKey) ?? null;\n }\n break;\n case \"End\":\n if (e.ctrlKey) {\n nextKey = delegate.getLastKey?.() ?? null;\n } else {\n // Go to last cell in row - for now just use last key\n nextKey = delegate.getLastKey?.(focusedKey) ?? null;\n }\n break;\n case \"PageDown\":\n nextKey = delegate.getKeyPageBelow?.(focusedKey) ?? null;\n break;\n case \"PageUp\":\n nextKey = delegate.getKeyPageAbove?.(focusedKey) ?? null;\n break;\n case \"Escape\":\n if (p.escapeKeyBehavior !== \"none\") {\n s.clearSelection();\n }\n return;\n case \"a\":\n if (e.ctrlKey || e.metaKey) {\n e.preventDefault();\n if (s.selectionMode === \"multiple\") {\n s.selectAll();\n }\n }\n return;\n case \" \":\n case \"Enter\":\n e.preventDefault();\n // Toggle selection or trigger action\n if (s.selectionMode !== \"none\") {\n if (e.shiftKey && s.selectionMode === \"multiple\") {\n s.extendSelection(focusedKey);\n } else {\n s.toggleSelection(focusedKey);\n }\n }\n return;\n default:\n // Type to select\n if (!p.disallowTypeAhead && e.key.length === 1 && !e.ctrlKey && !e.metaKey && !e.altKey) {\n const key = delegate.getKeyForSearch?.(e.key, focusedKey);\n if (key != null) {\n e.preventDefault();\n s.setFocusedKey(key);\n }\n }\n return;\n }\n\n if (nextKey != null) {\n e.preventDefault();\n s.setFocusedKey(nextKey);\n\n // Handle shift+arrow for range selection\n if (e.shiftKey && s.selectionMode === \"multiple\") {\n s.extendSelection(nextKey);\n }\n }\n };\n\n // Focus handling\n const onFocus = (e: FocusEvent) => {\n const s = state();\n const el = ref();\n\n if (!el?.contains(e.target as Element)) {\n return;\n }\n\n if (!s.isFocused) {\n s.setFocused(true);\n setIsFocused(true);\n\n // If no key is focused, focus the first one\n if (s.focusedKey == null) {\n const firstKey = keyboardDelegate().getFirstKey?.();\n if (firstKey != null) {\n s.setFocusedKey(firstKey);\n }\n }\n }\n };\n\n const onBlur = (e: FocusEvent) => {\n const s = state();\n const el = ref();\n\n // Only blur if focus is leaving the grid entirely\n if (el && !el.contains(e.relatedTarget as Element)) {\n s.setFocused(false);\n setIsFocused(false);\n }\n };\n\n // Warn if no label is provided\n createMemo(() => {\n const p = props();\n if (!p[\"aria-label\"] && !p[\"aria-labelledby\"]) {\n console.warn(\"Grid: An aria-label or aria-labelledby prop is required for accessibility.\");\n }\n });\n\n const gridProps = createMemo(() => {\n const p = props();\n const s = state();\n\n const baseProps: Record<string, unknown> = {\n role: \"grid\",\n id,\n \"aria-label\": p[\"aria-label\"],\n \"aria-labelledby\": p[\"aria-labelledby\"],\n \"aria-describedby\": p[\"aria-describedby\"],\n \"aria-multiselectable\": s.selectionMode === \"multiple\" ? \"true\" : undefined,\n tabIndex: s.collection.size === 0 ? 0 : -1,\n onKeyDown,\n onFocus,\n onBlur,\n };\n\n if (p.isVirtualized) {\n baseProps[\"aria-rowcount\"] = s.collection.rowCount;\n baseProps[\"aria-colcount\"] = s.collection.columnCount;\n }\n\n return baseProps as JSX.HTMLAttributes<HTMLElement>;\n });\n\n return {\n get gridProps() {\n return gridProps();\n },\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/grid/useGridRow.ts\n\n/**\n * createGridRow - Provides accessibility for a grid row.\n * Based on @react-aria/grid/useGridRow.\n */\n\nimport { createMemo, createSignal } from \"solid-js\";\nimport type { Accessor } from \"solid-js\";\nimport type { JSX } from \"@solidjs/web\";\nimport type { GridState, GridCollection } from \"@proyecto-viviana/solid-stately\";\nimport type { GridRowProps, GridRowAria } from \"./types\";\nimport { getGridData } from \"./createGrid\";\n\n/**\n * Creates accessibility props for a grid row.\n */\nexport function createGridRow<T extends object>(\n props: Accessor<GridRowProps>,\n state: Accessor<GridState<T, GridCollection<T>>>,\n _ref: Accessor<HTMLElement | null>,\n): GridRowAria {\n const [isPressed, setIsPressed] = createSignal(false);\n\n const isSelected = createMemo(() => {\n const s = state();\n const p = props();\n return s.isSelected(p.key);\n });\n\n const isDisabled = createMemo(() => {\n const s = state();\n const p = props();\n return s.isDisabled(p.key);\n });\n\n const isFocused = createMemo(() => {\n const s = state();\n const p = props();\n return s.focusedKey === p.key;\n });\n\n // Handle click/press for selection\n const onClick = (e: MouseEvent) => {\n const s = state();\n const p = props();\n\n if (isDisabled()) return;\n\n // Get grid metadata for actions\n const gridData = getGridData(s);\n const onRowAction = gridData?.actions.onRowAction;\n\n // Handle selection\n if (s.selectionMode !== \"none\") {\n if (e.shiftKey && s.selectionMode === \"multiple\") {\n s.extendSelection(p.key);\n } else if (e.ctrlKey || e.metaKey) {\n s.toggleSelection(p.key);\n } else {\n // Replace selection\n s.replaceSelection(p.key);\n }\n }\n\n // Call action handler\n if (onRowAction) {\n onRowAction(p.key);\n }\n\n if (p.onAction) {\n p.onAction();\n }\n };\n\n const onKeyDown = (e: KeyboardEvent) => {\n const s = state();\n const p = props();\n\n if (isDisabled()) return;\n\n if (e.key === \"Enter\" || e.key === \" \") {\n e.preventDefault();\n\n // Get grid metadata for actions\n const gridData = getGridData(s);\n const onRowAction = gridData?.actions.onRowAction;\n\n // Handle selection\n if (s.selectionMode !== \"none\") {\n s.toggleSelection(p.key);\n }\n\n // Call action handler\n if (onRowAction) {\n onRowAction(p.key);\n }\n\n if (p.onAction) {\n p.onAction();\n }\n }\n };\n\n const onFocus = () => {\n const s = state();\n const p = props();\n s.setFocusedKey(p.key);\n };\n\n const onPointerDown = () => {\n setIsPressed(true);\n };\n\n const onPointerUp = () => {\n setIsPressed(false);\n };\n\n const rowProps = createMemo(() => {\n const s = state();\n const p = props();\n\n const baseProps: Record<string, unknown> = {\n role: \"row\",\n \"aria-selected\": s.selectionMode !== \"none\" ? isSelected() : undefined,\n \"aria-disabled\": isDisabled() || undefined,\n tabIndex: isFocused() ? 0 : -1,\n onClick,\n onKeyDown,\n onFocus,\n onPointerDown,\n onPointerUp,\n };\n\n if (p.isVirtualized && p.index != null) {\n baseProps[\"aria-rowindex\"] = p.index + 1; // aria-rowindex is 1-based\n }\n\n return baseProps as JSX.HTMLAttributes<HTMLElement>;\n });\n\n return {\n get rowProps() {\n return rowProps();\n },\n get isSelected() {\n return isSelected();\n },\n get isDisabled() {\n return isDisabled();\n },\n get isPressed() {\n return isPressed();\n },\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/grid/useGridCell.ts\n\n/**\n * createGridCell - Provides accessibility for a grid cell.\n * Based on @react-aria/grid/useGridCell.\n */\n\nimport { createMemo, createSignal } from \"solid-js\";\nimport type { Accessor } from \"solid-js\";\nimport type { JSX } from \"@solidjs/web\";\nimport type { GridState, GridCollection } from \"@proyecto-viviana/solid-stately\";\nimport type { GridCellProps, GridCellAria } from \"./types\";\nimport { getGridData } from \"./createGrid\";\n\n/**\n * Creates accessibility props for a grid cell.\n */\nexport function createGridCell<T extends object>(\n props: Accessor<GridCellProps>,\n state: Accessor<GridState<T, GridCollection<T>>>,\n _ref: Accessor<HTMLElement | null>,\n): GridCellAria {\n const [isPressed, setIsPressed] = createSignal(false);\n\n const isSelected = createMemo(() => {\n const s = state();\n const p = props();\n // Check if parent row is selected\n const node = s.collection.getItem(p.key);\n if (node?.parentKey != null) {\n return s.isSelected(node.parentKey);\n }\n return false;\n });\n\n const isDisabled = createMemo(() => {\n const s = state();\n const p = props();\n // Check if parent row is disabled\n const node = s.collection.getItem(p.key);\n if (node?.parentKey != null) {\n return s.isDisabled(node.parentKey);\n }\n return false;\n });\n\n const isFocused = createMemo(() => {\n const s = state();\n const p = props();\n return s.focusedKey === p.key;\n });\n\n // Handle click/press for cell actions\n const onClick = (e: MouseEvent) => {\n const s = state();\n const p = props();\n\n if (isDisabled()) return;\n\n // Get grid metadata for actions\n const gridData = getGridData(s);\n const onCellAction = gridData?.actions.onCellAction;\n\n // Get parent row key for selection\n const node = s.collection.getItem(p.key);\n const rowKey = node?.parentKey;\n\n // Handle selection on parent row\n if (rowKey != null && s.selectionMode !== \"none\") {\n if (e.shiftKey && s.selectionMode === \"multiple\") {\n s.extendSelection(rowKey);\n } else if (e.ctrlKey || e.metaKey) {\n s.toggleSelection(rowKey);\n } else {\n // Replace selection\n s.replaceSelection(rowKey);\n }\n }\n\n // Call cell action handler\n if (onCellAction) {\n onCellAction(p.key);\n }\n\n if (p.onAction) {\n p.onAction();\n }\n };\n\n const onKeyDown = (e: KeyboardEvent) => {\n const s = state();\n const p = props();\n\n if (isDisabled()) return;\n\n // Enter or Space triggers cell action\n if (e.key === \"Enter\" || e.key === \" \") {\n // Only handle if there's an action to trigger\n const gridData = getGridData(s);\n const onCellAction = gridData?.actions.onCellAction;\n\n if (onCellAction || p.onAction) {\n e.preventDefault();\n\n if (onCellAction) {\n onCellAction(p.key);\n }\n\n if (p.onAction) {\n p.onAction();\n }\n }\n }\n };\n\n const onFocus = () => {\n const s = state();\n const p = props();\n s.setFocusedKey(p.key);\n };\n\n const onPointerDown = () => {\n setIsPressed(true);\n };\n\n const onPointerUp = () => {\n setIsPressed(false);\n };\n\n const cellProps = createMemo(() => {\n const s = state();\n const p = props();\n const node = s.collection.getItem(p.key);\n\n // Determine the role based on node type\n let role: string = \"gridcell\";\n if (node?.type === \"rowheader\") {\n role = \"rowheader\";\n } else if (node?.type === \"column\") {\n role = \"columnheader\";\n }\n\n const baseProps: Record<string, unknown> = {\n role,\n \"aria-disabled\": isDisabled() || undefined,\n \"aria-selected\": s.selectionMode !== \"none\" ? isSelected() : undefined,\n tabIndex: isFocused() ? 0 : -1,\n onClick,\n onKeyDown,\n onFocus,\n onPointerDown,\n onPointerUp,\n };\n\n // Add column index for virtualized grids\n if (p.isVirtualized && node?.column != null) {\n baseProps[\"aria-colindex\"] = node.column + 1; // aria-colindex is 1-based\n }\n\n // Add colspan if present\n if (node?.colspan != null && node.colspan > 1) {\n baseProps[\"aria-colspan\"] = node.colspan;\n }\n\n return baseProps as JSX.HTMLAttributes<HTMLElement>;\n });\n\n return {\n get cellProps() {\n return cellProps();\n },\n get isSelected() {\n return isSelected();\n },\n get isDisabled() {\n return isDisabled();\n },\n get isPressed() {\n return isPressed();\n },\n get isFocused() {\n return isFocused();\n },\n };\n}\n"],"mappings":"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"}
@@ -1,11 +1,62 @@
1
- import { i as mergeProps$1 } from "./env.js";
2
- import { S as scrollIntoViewport } from "./utils.js";
3
- import { o as getInteractionModality } from "./createInteractionModality.js";
1
+ /*
2
+ * Copyright 2022 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/gridlist/useGridList.ts
13
+ /*
14
+ * Copyright 2022 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/gridlist/useGridListItem.ts
25
+ /*
26
+ * Copyright 2020 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/gridlist/useGridListSection.ts
37
+ /*
38
+ * Copyright 2022 Adobe. All rights reserved.
39
+ * This file is licensed to you under the Apache License, Version 2.0 (the "License");
40
+ * you may not use this file except in compliance with the License. You may obtain a copy
41
+ * of the License at http://www.apache.org/licenses/LICENSE-2.0
42
+ *
43
+ * Unless required by applicable law or agreed to in writing, software distributed under
44
+ * the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS
45
+ * OF ANY KIND, either express or implied. See the License for the specific language
46
+ * governing permissions and limitations under the License.
47
+ */
48
+ // Ported to SolidJS for Proyecto Viviana; based on packages/react-aria/src/gridlist/useGridListSelectionCheckbox.ts
49
+ import { t as mergeProps } from "./mergeProps.js";
50
+ import { _ as scrollIntoViewport, y as bindCapture } from "./utils.js";
51
+ import { N as getInteractionModality } from "./dom.js";
52
+ import { n as createStringFormatter } from "./createStringFormatter.js";
4
53
  import { createId as createId$1, createSlotId } from "../ssr/index.js";
5
54
  import { t as createLabels } from "./createLabels.js";
6
- import { n as createSelectableItem } from "./createSelectableItem.js";
55
+ import { a as isNonContiguousSelectionModifier, n as createSelectableItem } from "./createSelectableItem.js";
56
+ import { t as createTypeSelect } from "./createTypeSelect.js";
57
+ import { t as gridIntlStrings } from "./intl.js";
7
58
  import { t as mergeCollectionRowInteractionProps } from "./createCollectionRowInteraction.js";
8
- import { createEffect, createMemo } from "solid-js";
59
+ import { createMemo, createTrackedEffect } from "solid-js";
9
60
  import { createId } from "@proyecto-viviana/solid-stately";
10
61
  //#region src/gridlist/createGridList.ts
11
62
  /**
@@ -43,6 +94,44 @@ function findNextNavigableKey(state, startKey, step) {
43
94
  while (key != null && isNavigationDisabled(state, key)) key = step(key);
44
95
  return key;
45
96
  }
97
+ function navigableKeys(state) {
98
+ const keys = [];
99
+ let key = state.collection.getFirstKey();
100
+ while (key != null) {
101
+ if (!isNavigationDisabled(state, key)) keys.push(key);
102
+ key = state.collection.getKeyAfter(key);
103
+ }
104
+ return keys;
105
+ }
106
+ function gridNeighborKey(keys, from, columns, deltaCol, deltaRow) {
107
+ const index = keys.indexOf(from);
108
+ if (index < 0 || columns < 1) return null;
109
+ const row = Math.floor(index / columns);
110
+ const nextCol = index % columns + deltaCol;
111
+ const nextRow = row + deltaRow;
112
+ if (nextCol < 0 || nextCol >= columns || nextRow < 0) return null;
113
+ return keys[nextRow * columns + nextCol] ?? null;
114
+ }
115
+ function firstSelectedKey(state) {
116
+ let key = state.collection.getFirstKey();
117
+ while (key != null) {
118
+ if (state.isSelected(key)) return key;
119
+ key = state.collection.getKeyAfter(key);
120
+ }
121
+ return null;
122
+ }
123
+ function lastSelectedKey(state) {
124
+ let key = state.collection.getLastKey();
125
+ while (key != null) {
126
+ if (state.isSelected(key)) return key;
127
+ key = state.collection.getKeyBefore(key);
128
+ }
129
+ return null;
130
+ }
131
+ function queryCollectionItem(root, key) {
132
+ const escaped = typeof CSS !== "undefined" && CSS.escape ? CSS.escape(String(key)) : String(key);
133
+ return root.querySelector(`[data-key="${escaped}"]`);
134
+ }
46
135
  /**
47
136
  * Creates accessibility props for a grid list.
48
137
  */
@@ -51,7 +140,7 @@ function createGridList(props, state, ref) {
51
140
  const gridListData = {
52
141
  gridListId,
53
142
  get selectionBehavior() {
54
- return props().selectionBehavior ?? "replace";
143
+ return props().selectionBehavior ?? "toggle";
55
144
  },
56
145
  get shouldSelectOnPressUp() {
57
146
  return props().shouldSelectOnPressUp ?? false;
@@ -62,53 +151,80 @@ function createGridList(props, state, ref) {
62
151
  get direction() {
63
152
  return props().direction ?? "ltr";
64
153
  },
154
+ get layout() {
155
+ return props().layout ?? "stack";
156
+ },
65
157
  actions: { get onAction() {
66
158
  return props().onAction;
67
159
  } }
68
160
  };
69
161
  gridListDataMap.set(state(), gridListData);
162
+ const { typeSelectProps } = createTypeSelect({
163
+ collection: () => state().collection,
164
+ focusedKey: () => state().focusedKey,
165
+ onFocusedKeyChange: (key) => state().setFocusedKey(key),
166
+ isKeyDisabled: (key) => isNavigationDisabled(state(), key)
167
+ });
70
168
  const onKeyDown = (e) => {
71
169
  const s = state();
72
170
  const p = props();
73
171
  const collection = s.collection;
74
172
  const focusedKey = s.focusedKey;
75
173
  if (p.isDisabled) return;
174
+ const selectOnFocus = (p.selectionBehavior ?? s.selectionBehavior) === "replace" && s.selectionMode !== "none";
175
+ const moveFocus = (nextKey) => {
176
+ if (nextKey == null) return;
177
+ s.setFocusedKey(nextKey);
178
+ if (selectOnFocus && !e.shiftKey && !isNonContiguousSelectionModifier(e)) s.replaceSelection(nextKey);
179
+ };
180
+ const isGrid = p.layout === "grid";
181
+ const columns = Math.max(1, p.columnCount ?? 1);
76
182
  switch (e.key) {
77
- case "ArrowDown": {
183
+ case "ArrowDown":
78
184
  e.preventDefault();
79
- const nextKey = focusedKey != null ? findNextNavigableKey(s, collection.getKeyAfter(focusedKey), (k) => collection.getKeyAfter(k)) : findNextNavigableKey(s, collection.getFirstKey(), (k) => collection.getKeyAfter(k));
80
- if (nextKey != null) s.setFocusedKey(nextKey);
185
+ if (isGrid) {
186
+ const keys = navigableKeys(s);
187
+ const from = focusedKey ?? keys[0];
188
+ if (from != null) moveFocus(gridNeighborKey(keys, from, columns, 0, 1));
189
+ break;
190
+ }
191
+ moveFocus(focusedKey != null ? findNextNavigableKey(s, collection.getKeyAfter(focusedKey), (k) => collection.getKeyAfter(k)) : findNextNavigableKey(s, collection.getFirstKey(), (k) => collection.getKeyAfter(k)));
81
192
  break;
82
- }
83
- case "ArrowUp": {
193
+ case "ArrowUp":
84
194
  e.preventDefault();
85
- const prevKey = focusedKey != null ? findNextNavigableKey(s, collection.getKeyBefore(focusedKey), (k) => collection.getKeyBefore(k)) : findNextNavigableKey(s, collection.getLastKey(), (k) => collection.getKeyBefore(k));
86
- if (prevKey != null) s.setFocusedKey(prevKey);
195
+ if (isGrid) {
196
+ const keys = navigableKeys(s);
197
+ const from = focusedKey ?? keys[keys.length - 1];
198
+ if (from != null) moveFocus(gridNeighborKey(keys, from, columns, 0, -1));
199
+ break;
200
+ }
201
+ moveFocus(focusedKey != null ? findNextNavigableKey(s, collection.getKeyBefore(focusedKey), (k) => collection.getKeyBefore(k)) : findNextNavigableKey(s, collection.getLastKey(), (k) => collection.getKeyBefore(k)));
87
202
  break;
88
- }
89
203
  case "ArrowRight":
90
204
  case "ArrowLeft": {
91
205
  const behavior = p.keyboardNavigationBehavior ?? "arrow";
206
+ const isRtl = p.direction === "rtl";
207
+ if (isGrid) {
208
+ e.preventDefault();
209
+ const keys = navigableKeys(s);
210
+ const from = focusedKey ?? keys[0];
211
+ if (from != null) moveFocus(gridNeighborKey(keys, from, columns, (e.key === "ArrowRight" ? !isRtl : isRtl) ? 1 : -1, 0));
212
+ break;
213
+ }
92
214
  if (p.orientation !== "horizontal" || behavior !== "tab") break;
93
215
  e.preventDefault();
94
- const isRtl = p.direction === "rtl";
95
216
  const step = (e.key === "ArrowRight" ? !isRtl : isRtl) ? (k) => collection.getKeyAfter(k) : (k) => collection.getKeyBefore(k);
96
- const nextKey = focusedKey != null ? findNextNavigableKey(s, step(focusedKey), step) : findNextNavigableKey(s, collection.getFirstKey(), (k) => collection.getKeyAfter(k));
97
- if (nextKey != null) s.setFocusedKey(nextKey);
217
+ moveFocus(focusedKey != null ? findNextNavigableKey(s, step(focusedKey), step) : findNextNavigableKey(s, collection.getFirstKey(), (k) => collection.getKeyAfter(k)));
98
218
  break;
99
219
  }
100
- case "Home": {
220
+ case "Home":
101
221
  e.preventDefault();
102
- const firstKey = findNextNavigableKey(s, collection.getFirstKey(), (k) => collection.getKeyAfter(k));
103
- if (firstKey != null) s.setFocusedKey(firstKey);
222
+ moveFocus(findNextNavigableKey(s, collection.getFirstKey(), (k) => collection.getKeyAfter(k)));
104
223
  break;
105
- }
106
- case "End": {
224
+ case "End":
107
225
  e.preventDefault();
108
- const lastKey = findNextNavigableKey(s, collection.getLastKey(), (k) => collection.getKeyBefore(k));
109
- if (lastKey != null) s.setFocusedKey(lastKey);
226
+ moveFocus(findNextNavigableKey(s, collection.getLastKey(), (k) => collection.getKeyBefore(k)));
110
227
  break;
111
- }
112
228
  case "a":
113
229
  case "A":
114
230
  if ((e.ctrlKey || e.metaKey) && s.selectionMode === "multiple") {
@@ -116,12 +232,10 @@ function createGridList(props, state, ref) {
116
232
  s.selectAll();
117
233
  }
118
234
  break;
119
- case "Escape":
120
- if (s.selectionMode !== "none") {
121
- e.preventDefault();
122
- s.clearSelection();
123
- }
124
- break;
235
+ case "Escape": if (s.selectionMode !== "none") {
236
+ e.preventDefault();
237
+ s.clearSelection();
238
+ }
125
239
  }
126
240
  };
127
241
  const onFocus = (e) => {
@@ -133,20 +247,22 @@ function createGridList(props, state, ref) {
133
247
  if (s.focusedKey != null || p.isDisabled) return;
134
248
  const collection = s.collection;
135
249
  const relatedTarget = e.relatedTarget;
136
- const enterKey = relatedTarget && container && container.compareDocumentPosition(relatedTarget) & Node.DOCUMENT_POSITION_FOLLOWING ? findNextNavigableKey(s, collection.getLastKey(), (k) => collection.getKeyBefore(k)) : findNextNavigableKey(s, collection.getFirstKey(), (k) => collection.getKeyAfter(k));
250
+ const enterKey = relatedTarget && container && container.compareDocumentPosition(relatedTarget) & Node.DOCUMENT_POSITION_FOLLOWING ? lastSelectedKey(s) ?? findNextNavigableKey(s, collection.getLastKey(), (k) => collection.getKeyBefore(k)) : firstSelectedKey(s) ?? findNextNavigableKey(s, collection.getFirstKey(), (k) => collection.getKeyAfter(k));
137
251
  if (enterKey != null) s.setFocusedKey(enterKey);
138
252
  };
139
253
  const onBlur = () => {
140
254
  state().setFocused(false);
141
255
  };
142
- createEffect(() => {
143
- const key = state().focusedKey;
256
+ createTrackedEffect(() => {
257
+ const s = state();
258
+ const key = s.focusedKey;
144
259
  const el = ref();
145
260
  if (!el || key == null) return;
146
261
  const active = document.activeElement;
147
262
  if (!active || active !== el && !el.contains(active)) return;
148
- const target = el.querySelector(`[data-key="${key}"]`);
263
+ const target = queryCollectionItem(el, key);
149
264
  if (target && target !== active) {
265
+ if (isNavigationDisabled(s, key)) return;
150
266
  target.focus();
151
267
  if (getInteractionModality() !== "pointer") scrollIntoViewport(target, { containingElement: el });
152
268
  }
@@ -154,7 +270,7 @@ function createGridList(props, state, ref) {
154
270
  const gridProps = createMemo(() => {
155
271
  const p = props();
156
272
  const s = state();
157
- const baseProps = {
273
+ const baseProps = mergeProps(typeSelectProps, {
158
274
  role: "grid",
159
275
  id: gridListId,
160
276
  "aria-label": p["aria-label"],
@@ -162,11 +278,11 @@ function createGridList(props, state, ref) {
162
278
  "aria-describedby": p["aria-describedby"],
163
279
  "aria-multiselectable": s.selectionMode === "multiple" ? true : void 0,
164
280
  "aria-disabled": p.isDisabled || void 0,
165
- tabIndex: p.isDisabled ? void 0 : s.focusedKey != null ? -1 : 0,
281
+ tabIndex: p.isDisabled ? void 0 : s.focusedKey != null && !isNavigationDisabled(s, s.focusedKey) ? -1 : 0,
166
282
  onKeyDown,
167
283
  onFocus,
168
284
  onBlur
169
- };
285
+ });
170
286
  if (p.isVirtualized) baseProps["aria-rowcount"] = s.collection.rowCount;
171
287
  return baseProps;
172
288
  });
@@ -184,6 +300,7 @@ function createGridList(props, state, ref) {
184
300
  * Creates accessibility props for a grid list item.
185
301
  */
186
302
  function createGridListItem(props, state, ref) {
303
+ const descriptionId = createId();
187
304
  const isSelected = createMemo(() => {
188
305
  const s = state();
189
306
  const p = props();
@@ -217,20 +334,21 @@ function createGridListItem(props, state, ref) {
217
334
  selectedKeys: () => state().selectedKeys,
218
335
  disabledKeys: () => state().disabledKeys,
219
336
  disabledBehavior: () => state().disabledBehavior,
220
- isEmpty: () => {
221
- const keys = state().selectedKeys;
222
- return keys !== "all" && keys.size === 0;
223
- },
224
- isSelectAll: () => state().selectedKeys === "all",
337
+ isEmpty: () => state().isEmpty,
338
+ isSelectAll: () => state().isSelectAll,
225
339
  isSelected: (key) => state().isSelected(key),
226
340
  isDisabled: (key) => {
227
341
  const s = state();
342
+ const p = props();
228
343
  const item = s.collection.getItem(key);
229
- return s.disabledBehavior === "all" && s.isDisabled(key) && item?.props?.disabledBehavior !== "selection";
344
+ const disabled = s.isDisabled(key) || !!item?.isDisabled || !!p.isDisabled;
345
+ return s.disabledBehavior === "all" && disabled && item?.props?.disabledBehavior !== "selection";
230
346
  },
231
347
  canSelectItem: (key) => {
232
348
  const s = state();
233
- return s.selectionMode !== "none" && !s.isDisabled(key);
349
+ const p = props();
350
+ const item = s.collection.getItem(key);
351
+ return s.selectionMode !== "none" && !s.isDisabled(key) && !item?.isDisabled && !p.isDisabled;
234
352
  },
235
353
  setSelectionBehavior: (behavior) => state().setSelectionBehavior(behavior),
236
354
  toggleSelection: (key) => state().toggleSelection(key),
@@ -245,21 +363,34 @@ function createGridListItem(props, state, ref) {
245
363
  const s = state();
246
364
  const p = props();
247
365
  const node = p.node;
366
+ const gridListData = getGridListData(s);
367
+ const rowId = `${gridListData?.gridListId ?? "gridlist"}-row-${String(node.key)}`;
368
+ const label = p.textValue || node["aria-label"] || node.textValue || void 0;
248
369
  const baseProps = {
249
370
  role: "row",
250
- "aria-selected": s.selectionMode !== "none" ? isSelected() : void 0,
251
- "aria-disabled": selectableItem.isDisabled() || void 0
371
+ "aria-selected": s.selectionMode !== "none" && !s.isDisabled(node.key) ? isSelected() : void 0,
372
+ "aria-disabled": selectableItem.isDisabled() || void 0,
373
+ "aria-label": label,
374
+ "aria-labelledby": label ? `${rowId} ${descriptionId}` : void 0
252
375
  };
253
376
  if (p.isVirtualized && node.rowIndex != null) baseProps["aria-rowindex"] = node.rowIndex + 1;
254
- const gridListData = getGridListData(s);
255
- return mergeCollectionRowInteractionProps(mergeProps$1(selectableItem.itemProps, baseProps), {
377
+ const mergedProps = mergeProps(selectableItem.itemProps, baseProps);
378
+ return mergeCollectionRowInteractionProps(mergedProps, {
256
379
  ref,
257
380
  keyboardNavigationBehavior: () => gridListData?.keyboardNavigationBehavior ?? "arrow",
258
- direction: () => gridListData?.direction ?? "ltr"
381
+ direction: () => gridListData?.direction ?? "ltr",
382
+ layout: () => gridListData?.layout ?? "stack"
259
383
  });
260
384
  });
385
+ bindCapture(ref, { keydown: (event) => {
386
+ const handler = rowProps().onKeyDownCapture;
387
+ handler?.(event);
388
+ } });
261
389
  const gridCellProps = createMemo(() => {
262
- return { role: "gridcell" };
390
+ return {
391
+ role: "gridcell",
392
+ "aria-colindex": 1
393
+ };
263
394
  });
264
395
  return {
265
396
  get rowProps() {
@@ -268,6 +399,9 @@ function createGridListItem(props, state, ref) {
268
399
  get gridCellProps() {
269
400
  return gridCellProps();
270
401
  },
402
+ get descriptionProps() {
403
+ return { id: descriptionId };
404
+ },
271
405
  get isSelected() {
272
406
  return isSelected();
273
407
  },
@@ -283,12 +417,13 @@ function createGridListItem(props, state, ref) {
283
417
  //#region src/gridlist/createGridListSelectionCheckbox.ts
284
418
  /**
285
419
  * createGridListSelectionCheckbox - Provides accessibility for a grid list item selection checkbox.
286
- * Based on @react-aria/gridlist.
420
+ * Ported from packages/react-aria/src/gridlist/useGridListSelectionCheckbox.ts.
287
421
  */
288
422
  /**
289
423
  * Creates accessibility props for a grid list item selection checkbox.
290
424
  */
291
425
  function createGridListSelectionCheckbox(props, state) {
426
+ const stringFormatter = createStringFormatter(gridIntlStrings, "@react-aria/grid");
292
427
  const checkboxId = createId();
293
428
  const isSelected = createMemo(() => {
294
429
  const s = state();
@@ -306,13 +441,17 @@ function createGridListSelectionCheckbox(props, state) {
306
441
  if (!isDisabled()) s.toggleSelection(p.key);
307
442
  };
308
443
  const checkboxProps = createMemo(() => {
444
+ const s = state();
445
+ const p = props();
446
+ const rowId = `${getGridListData(s)?.gridListId ?? "gridlist"}-row-${String(p.key)}`;
309
447
  return {
310
448
  id: checkboxId,
311
449
  type: "checkbox",
312
450
  checked: isSelected(),
313
451
  disabled: isDisabled(),
314
452
  onChange,
315
- "aria-label": "Select"
453
+ "aria-label": stringFormatter().format("select"),
454
+ "aria-labelledby": `${checkboxId} ${rowId}`
316
455
  };
317
456
  });
318
457
  return { get checkboxProps() {