@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":"menu.js","names":["mergeProps","mergeProps"],"sources":["../../src/menu/createMenu.ts","../../src/menu/createMenuItem.ts","../../src/menu/createMenuTrigger.ts"],"sourcesContent":["/**\n * Provides the behavior and accessibility implementation for a menu component.\n * A menu displays a list of actions or options that a user can choose.\n * Based on @react-aria/menu useMenu.\n */\n\nimport { createEffect, onCleanup, type JSX, type Accessor } from \"solid-js\";\nimport { createFocusWithin } from \"../interactions/createFocusWithin\";\nimport { createLabel } from \"../label/createLabel\";\nimport { createTypeSelect } from \"../selection/createTypeSelect\";\nimport { selectItem } from \"../selection/selectItem\";\nimport { filterDOMProps } from \"../utils/filterDOMProps\";\nimport { mergeProps } from \"../utils/mergeProps\";\nimport { createId } from \"../ssr\";\nimport { access, type MaybeAccessor } from \"../utils/reactivity\";\nimport { isDevEnv } from \"../utils/env\";\nimport type { MenuState, Key, Collection } from \"@proyecto-viviana/solid-stately\";\n\n/**\n * Default number of items to skip for page up/down when DOM measurement is not available.\n */\nconst DEFAULT_PAGE_SIZE = 10;\n\n/**\n * Find the next non-disabled key in a collection.\n */\nfunction findNextNonDisabledKey<T>(\n collection: Collection<T>,\n currentKey: Key | null,\n direction: \"next\" | \"prev\",\n isDisabled: (key: Key) => boolean,\n wrap: boolean,\n): Key | null {\n const getNextKey =\n direction === \"next\"\n ? (key: Key) => collection.getKeyAfter(key)\n : (key: Key) => collection.getKeyBefore(key);\n\n const getFirstKey =\n direction === \"next\" ? () => collection.getFirstKey() : () => collection.getLastKey();\n\n let nextKey = currentKey != null ? getNextKey(currentKey) : getFirstKey();\n\n // Skip disabled keys\n while (nextKey != null && isDisabled(nextKey)) {\n nextKey = getNextKey(nextKey);\n }\n\n // If we've reached the end and wrapping is enabled\n if (nextKey == null && wrap) {\n nextKey = getFirstKey();\n // Skip disabled keys from the start\n while (nextKey != null && isDisabled(nextKey)) {\n nextKey = getNextKey(nextKey);\n }\n }\n\n return nextKey;\n}\n\nexport interface AriaMenuProps<T = unknown> {\n /** An ID for the menu. */\n id?: string;\n /** Whether the menu is disabled. */\n isDisabled?: boolean;\n /** The label for the menu. */\n label?: JSX.Element;\n /** An accessible label for the menu when no visible label is provided. */\n \"aria-label\"?: string;\n /** The ID of an element that labels the menu. */\n \"aria-labelledby\"?: string;\n /** The ID of an element that describes the menu. */\n \"aria-describedby\"?: string;\n /** Handler called when focus moves into the menu. */\n onFocus?: (e: FocusEvent) => void;\n /** Handler called when focus moves out of the menu. */\n onBlur?: (e: FocusEvent) => void;\n /** Handler called when the focus state changes. */\n onFocusChange?: (isFocused: boolean) => void;\n /** Handler called when an item is activated (pressed). */\n onAction?: (key: Key, value: T) => void;\n /** Handler called when the menu should close. */\n onClose?: () => void;\n /** Whether the menu should close when an item is selected. */\n shouldCloseOnSelect?: boolean;\n /** Whether focus should automatically wrap around. */\n shouldFocusWrap?: boolean;\n /** Whether to auto-focus the first item when the menu opens. */\n autoFocus?: boolean | \"first\" | \"last\";\n /** Whether type-to-select is disabled. @default false */\n disallowTypeAhead?: boolean;\n}\n\nexport interface MenuAria {\n /** Props for the menu element. */\n menuProps: JSX.HTMLAttributes<HTMLElement>;\n /** Props for the menu's label element (if any). */\n labelProps: JSX.HTMLAttributes<HTMLElement>;\n}\n\n// Shared data between menu and menu items\nconst menuData = new WeakMap<object, MenuData>();\n\ninterface MenuData {\n id: string;\n // Type-erased like upstream menu/utils.ts MenuData (value: any): the WeakMap\n // is keyed by an untyped state, so the item value flows through as unknown.\n onAction?: (key: Key, value: unknown) => void;\n onClose?: () => void;\n isDisabled?: boolean;\n shouldCloseOnSelect?: boolean;\n}\n\nexport function getMenuData(state: MenuState): MenuData | undefined {\n return menuData.get(state);\n}\n\n/**\n * Provides the behavior and accessibility implementation for a menu component.\n * A menu displays a list of actions or options that a user can choose.\n */\nexport function createMenu<T>(\n props: MaybeAccessor<AriaMenuProps<T>>,\n state: MenuState<T>,\n ref?: Accessor<HTMLElement | null>,\n): MenuAria {\n const getProps = () => access(props);\n const id = createId(getProps().id);\n\n // Development-time warning for missing accessibility labels\n if (isDevEnv()) {\n const p = getProps();\n if (!p.label && !p[\"aria-label\"] && !p[\"aria-labelledby\"]) {\n console.warn(\n \"[solidaria] A Menu requires an aria-label or aria-labelledby attribute for accessibility.\",\n );\n }\n }\n\n // Filter DOM props\n const domProps = () =>\n filterDOMProps(getProps() as unknown as Record<string, unknown>, { labelable: true });\n\n const updateSharedData = () => {\n const p = getProps();\n menuData.set(state, {\n id,\n onAction: p.onAction as MenuData[\"onAction\"],\n onClose: p.onClose,\n isDisabled: p.isDisabled,\n shouldCloseOnSelect: p.shouldCloseOnSelect,\n });\n };\n\n // Ensure menu items created in the same render pass can read parent metadata.\n updateSharedData();\n\n // Share data with child menu items\n createEffect(() => {\n updateSharedData();\n\n onCleanup(() => {\n menuData.delete(state);\n });\n });\n\n // Handle focus within\n const { focusWithinProps } = createFocusWithin({\n onFocusWithin: (e) => getProps().onFocus?.(e),\n onBlurWithin: (e) => getProps().onBlur?.(e),\n onFocusWithinChange: (isFocused) => {\n getProps().onFocusChange?.(isFocused);\n state.setFocused(isFocused);\n },\n });\n\n // Label handling\n const { labelProps, fieldProps } = createLabel({\n get id() {\n return id;\n },\n get label() {\n return getProps().label;\n },\n get \"aria-label\"() {\n return getProps()[\"aria-label\"];\n },\n get \"aria-labelledby\"() {\n return getProps()[\"aria-labelledby\"];\n },\n labelElementType: \"span\",\n });\n\n // Type-to-select\n const { typeSelectProps } = createTypeSelect({\n collection: () => state.collection(),\n focusedKey: () => state.focusedKey(),\n onFocusedKeyChange: (key) => state.setFocusedKey(key),\n isKeyDisabled: (key) => state.isDisabled(key),\n get isDisabled() {\n return getProps().disallowTypeAhead ?? false;\n },\n });\n\n // Keyboard navigation\n const onKeyDown: JSX.EventHandler<HTMLElement, KeyboardEvent> = (e) => {\n if (getProps().isDisabled) return;\n\n const collection = state.collection();\n const p = getProps();\n const wrap = p.shouldFocusWrap ?? false;\n\n // Disabled keys only block keyboard navigation under disabledBehavior \"all\"\n // (the default); under \"selection\" they stay focusable while their selection\n // remains blocked. Mirrors ListKeyboardDelegate.isDisabled in React Aria,\n // which gates the navigation skip on the resolved disabledBehavior.\n const isDisabled = (key: Key) => state.isDisabled(key) && state.disabledBehavior() === \"all\";\n\n switch (e.key) {\n case \"ArrowDown\": {\n // Only consume the key once a target exists, mirroring\n // useSelectableCollection (ArrowDown, 211-225): preventDefault is called\n // inside `if (nextKey != null)`, so at the last item without wrap the\n // arrow bubbles instead of being swallowed.\n const currentKey = state.focusedKey();\n const nextKey = findNextNonDisabledKey(collection, currentKey, \"next\", isDisabled, wrap);\n if (nextKey != null) {\n e.preventDefault();\n state.setFocusedKey(nextKey);\n }\n break;\n }\n case \"ArrowUp\": {\n const currentKey = state.focusedKey();\n const prevKey = findNextNonDisabledKey(collection, currentKey, \"prev\", isDisabled, wrap);\n if (prevKey != null) {\n e.preventDefault();\n state.setFocusedKey(prevKey);\n }\n break;\n }\n case \"Home\": {\n // Mirror useSelectableCollection (Home, 283-285): with nothing focused,\n // Shift+Home has no anchor to extend from, so leave the event alone.\n if (state.focusedKey() == null && e.shiftKey) break;\n e.preventDefault();\n // Find first non-disabled key\n let firstKey = collection.getFirstKey();\n while (firstKey != null && isDisabled(firstKey)) {\n firstKey = collection.getKeyAfter(firstKey);\n }\n if (firstKey != null) {\n state.setFocusedKey(firstKey);\n }\n break;\n }\n case \"End\": {\n // Mirror useSelectableCollection (End, 300-302): same anchor guard as Home.\n if (state.focusedKey() == null && e.shiftKey) break;\n e.preventDefault();\n // Find last non-disabled key\n let lastKey = collection.getLastKey();\n while (lastKey != null && isDisabled(lastKey)) {\n lastKey = collection.getKeyBefore(lastKey);\n }\n if (lastKey != null) {\n state.setFocusedKey(lastKey);\n }\n break;\n }\n case \" \":\n case \"Enter\": {\n if (e.target !== e.currentTarget) break;\n e.preventDefault();\n const focusedKey = state.focusedKey();\n // Activation is gated on the navigation-disabled check, not the raw\n // one: under disabledBehavior \"selection\" a focusable disabled item\n // still fires onAction (and closes), mirroring useSelectableItem's\n // allowsActions (manager.isDisabled is gated on \"all\"). Selection stays\n // blocked independently — state.select self-guards on the raw disabled\n // check (SelectionManager.canSelectItem).\n if (focusedKey != null && !isDisabled(focusedKey)) {\n // Route through the aria-layer onSelect so the platform-aware modifier\n // resolution (isCtrlKeyPressed / non-contiguous modifier) and the\n // shift-extend path are applied. Keyboard activation carries\n // pointerType \"keyboard\".\n selectItem(\n state,\n focusedKey,\n {\n pointerType: \"keyboard\",\n shiftKey: e.shiftKey,\n ctrlKey: e.ctrlKey,\n metaKey: e.metaKey,\n altKey: e.altKey,\n },\n collection,\n );\n // Pass the activated item's value as the second arg, mirroring\n // useMenuItem performAction: onAction(key, item?.value).\n p.onAction?.(focusedKey, collection.getItem(focusedKey)?.value as T);\n const item = collection.getItem(focusedKey);\n const isLink = !!item?.props?.href;\n const shouldClose =\n p.shouldCloseOnSelect ??\n (e.key === \"Enter\" || state.selectionMode() === \"none\" || isLink);\n if (shouldClose) {\n p.onClose?.();\n }\n }\n break;\n }\n case \"Escape\": {\n e.preventDefault();\n p.onClose?.();\n break;\n }\n case \"PageDown\": {\n // Mirror useSelectableCollection (PageDown, 324-332): only consume the\n // key when an item is focused. A non-empty collection always yields a\n // page target via getKeyPageBelow, so a focused key means focus moves\n // and the event is swallowed; with nothing focused, leave it alone to\n // bubble (e.g. to scroll an enclosing region).\n const currentKey = state.focusedKey();\n if (currentKey == null) break;\n e.preventDefault();\n const el = ref?.();\n\n if (el) {\n // Use DOM measurements to calculate how many items fit in a page\n const visibleHeight = el.clientHeight;\n let traveled = 0;\n let targetKey = currentKey;\n\n while (targetKey != null && traveled < visibleHeight) {\n const nextKey = collection.getKeyAfter(targetKey);\n if (nextKey == null) break;\n\n // Try to measure the item height\n const itemElement = el.querySelector(`[data-key=\"${targetKey}\"]`);\n traveled += itemElement?.clientHeight ?? 32;\n\n // Skip disabled items\n if (!isDisabled(nextKey)) {\n targetKey = nextKey;\n } else {\n // Skip over disabled items without counting them\n const afterDisabled = findNextNonDisabledKey(\n collection,\n nextKey,\n \"next\",\n isDisabled,\n false,\n );\n if (afterDisabled != null) {\n targetKey = afterDisabled;\n } else {\n break;\n }\n }\n }\n\n if (targetKey != null && targetKey !== currentKey) {\n state.setFocusedKey(targetKey);\n }\n } else {\n // Fallback: move by DEFAULT_PAGE_SIZE items\n let count = DEFAULT_PAGE_SIZE;\n let targetKey = currentKey;\n\n while (count > 0 && targetKey != null) {\n const nextKey = findNextNonDisabledKey(\n collection,\n targetKey,\n \"next\",\n isDisabled,\n false,\n );\n if (nextKey == null) break;\n targetKey = nextKey;\n count--;\n }\n\n if (targetKey != null) {\n state.setFocusedKey(targetKey);\n }\n }\n break;\n }\n case \"PageUp\": {\n // Mirror useSelectableCollection (PageUp, 333-341): only consume the key\n // when an item is focused. A non-empty collection always yields a page\n // target via getKeyPageAbove, so a focused key means focus moves and the\n // event is swallowed; with nothing focused, leave it alone to bubble\n // (e.g. to scroll an enclosing region).\n const currentKey = state.focusedKey();\n if (currentKey == null) break;\n e.preventDefault();\n const el = ref?.();\n\n if (el) {\n // Use DOM measurements to calculate how many items fit in a page\n const visibleHeight = el.clientHeight;\n let traveled = 0;\n let targetKey = currentKey;\n\n while (targetKey != null && traveled < visibleHeight) {\n const prevKey = collection.getKeyBefore(targetKey);\n if (prevKey == null) break;\n\n // Try to measure the item height\n const itemElement = el.querySelector(`[data-key=\"${targetKey}\"]`);\n traveled += itemElement?.clientHeight ?? 32;\n\n // Skip disabled items\n if (!isDisabled(prevKey)) {\n targetKey = prevKey;\n } else {\n // Skip over disabled items without counting them\n const beforeDisabled = findNextNonDisabledKey(\n collection,\n prevKey,\n \"prev\",\n isDisabled,\n false,\n );\n if (beforeDisabled != null) {\n targetKey = beforeDisabled;\n } else {\n break;\n }\n }\n }\n\n if (targetKey != null && targetKey !== currentKey) {\n state.setFocusedKey(targetKey);\n }\n } else {\n // Fallback: move by DEFAULT_PAGE_SIZE items\n let count = DEFAULT_PAGE_SIZE;\n let targetKey = currentKey;\n\n while (count > 0 && targetKey != null) {\n const prevKey = findNextNonDisabledKey(\n collection,\n targetKey,\n \"prev\",\n isDisabled,\n false,\n );\n if (prevKey == null) break;\n targetKey = prevKey;\n count--;\n }\n\n if (targetKey != null) {\n state.setFocusedKey(targetKey);\n }\n }\n break;\n }\n }\n };\n\n return {\n get labelProps() {\n return labelProps as JSX.HTMLAttributes<HTMLElement>;\n },\n get menuProps() {\n const p = getProps();\n\n const baseProps = mergeProps(\n domProps(),\n focusWithinProps as Record<string, unknown>,\n fieldProps as Record<string, unknown>,\n {\n role: \"menu\",\n // Roving tabindex: the menu container is tab-reachable (0) only while no\n // item holds focus; once `focusedKey` is set the container drops to -1 so\n // Tab/Shift+Tab traverse past it and real focus stays on the item. This\n // mirrors upstream `useMenu`, which spreads `useSelectableList`'s\n // `listProps.tabIndex` (`manager.focusedKey == null ? 0 : -1`, non-virtual\n // focus) onto the menu.\n //\n // This MUST be a getter, not an eagerly-evaluated value. Consumers\n // (solidaria-components `Menu.tsx`) destructure `menuProps` once and\n // spread it through `mergeProps`; a plain `tabIndex: <value>` would be\n // computed at that first read (while `focusedKey` is still null → 0) and\n // frozen. As a getter it survives `mergeProps` (which preserves getters),\n // so the consumer's reactive element-spread re-reads `state.focusedKey()`\n // and the container tabindex tracks focus.\n get tabIndex() {\n return getProps().isDisabled ? undefined : state.focusedKey() == null ? 0 : -1;\n },\n \"aria-disabled\": p.isDisabled || undefined,\n onKeyDown,\n } as Record<string, unknown>,\n );\n\n // Add type-select props if enabled\n if (!p.disallowTypeAhead) {\n return mergeProps(\n baseProps,\n typeSelectProps as Record<string, unknown>,\n ) as JSX.HTMLAttributes<HTMLElement>;\n }\n\n return baseProps as JSX.HTMLAttributes<HTMLElement>;\n },\n };\n}\n","/**\n * Provides the behavior and accessibility implementation for a menu item.\n * Based on @react-aria/menu useMenuItem.\n */\n\nimport { type JSX, type Accessor } from \"solid-js\";\nimport { createPress, type PressEvent } from \"../interactions/createPress\";\nimport { createHover } from \"../interactions/createHover\";\nimport { createFocusRing } from \"../interactions/createFocusRing\";\nimport { createSelectableItem } from \"../selection/createSelectableItem\";\nimport { mergeProps } from \"../utils/mergeProps\";\nimport { access, type MaybeAccessor } from \"../utils/reactivity\";\nimport { getEventTarget } from \"../utils/dom\";\nimport { isVirtualClick } from \"../utils/events\";\nimport { createSlotId } from \"../ssr\";\nimport { getMenuData } from \"./createMenu\";\nimport type { MenuState, Key, Selection, SelectionMode } from \"@proyecto-viviana/solid-stately\";\n\nexport interface AriaMenuItemProps {\n /** The unique key for the menu item. */\n key: Key;\n /** Optional DOM id for the menu item. Defaults to the key. */\n id?: string;\n /** Whether the menu item is disabled. */\n isDisabled?: boolean;\n /** An accessible label for the menu item. */\n \"aria-label\"?: string;\n /** Element controlled by this menu item, for submenu triggers. */\n \"aria-controls\"?: string;\n /** Whether this menu item opens a submenu or subdialog. */\n \"aria-haspopup\"?: string | boolean;\n /** Whether the submenu or subdialog is expanded. */\n \"aria-expanded\"?: boolean | \"true\" | \"false\";\n /** Handler called when the menu item is selected. */\n onAction?: () => void;\n /** Whether to close the menu when this item is selected. */\n closeOnSelect?: boolean;\n /** A URL to link to. Turns the menu item into a link. */\n href?: string;\n /** The target window for the link. */\n target?: string;\n /** The relationship between the linked resource and the current page. */\n rel?: string;\n /** Causes the browser to download the linked URL. A string may be provided to suggest a file name. */\n download?: boolean | string;\n}\n\nexport interface MenuItemAria {\n /** Props for the menu item element. */\n menuItemProps: JSX.HTMLAttributes<HTMLElement>;\n /** Props for the label text inside the menu item. */\n labelProps: JSX.HTMLAttributes<HTMLElement>;\n /** Props for the description text inside the menu item. */\n descriptionProps: JSX.HTMLAttributes<HTMLElement>;\n /** Props for the keyboard shortcut inside the menu item. */\n keyboardShortcutProps: JSX.HTMLAttributes<HTMLElement>;\n /** Whether the menu item is currently focused. */\n isFocused: Accessor<boolean>;\n /** Whether the menu item is keyboard focused. */\n isFocusVisible: Accessor<boolean>;\n /** Whether the menu item is currently pressed. */\n isPressed: Accessor<boolean>;\n /** Whether the menu item is disabled. */\n isDisabled: Accessor<boolean>;\n /** Whether the menu item is selected. */\n isSelected: Accessor<boolean>;\n /** The parent menu selection mode. */\n selectionMode: Accessor<SelectionMode>;\n}\n\n/**\n * Provides the behavior and accessibility implementation for a menu item.\n */\nexport function createMenuItem<T>(\n props: MaybeAccessor<AriaMenuItemProps>,\n state: MenuState<T>,\n ref?: () => HTMLElement | null,\n): MenuItemAria {\n const getProps = () => access(props);\n\n // Get shared data from menu\n const getData = () => getMenuData(state);\n\n // Computed states. `state.isDisabled` is SelectionManager.isDisabled, which\n // already respects disabledBehavior=\"selection\"; these items stay actionable\n // while SelectionManager.canSelectItem keeps selection blocked.\n const isDisabled: Accessor<boolean> = () => {\n return Boolean(\n getData()?.isDisabled || getProps().isDisabled || state.isDisabled(getProps().key),\n );\n };\n\n const selectionMode: Accessor<SelectionMode> = () => {\n return state.selectionMode();\n };\n\n // Whether this is a link item\n const isLink = () => !!getProps().href;\n const isTrigger = () => !!getProps()[\"aria-haspopup\"];\n\n const selectableItem = createSelectableItem(\n () => {\n const p = getProps();\n return {\n key: p.key,\n id: p.id ?? String(p.key),\n isDisabled: isDisabled(),\n isLink: isLink(),\n href: p.href,\n shouldSelectOnPressUp: true,\n allowsDifferentPressOrigin: true,\n linkBehavior: \"none\",\n };\n },\n state,\n () => ref?.() ?? null,\n );\n\n const isFocused: Accessor<boolean> = () => selectableItem.isFocused();\n\n const isSelected: Accessor<boolean> = () => {\n return !isTrigger() && selectableItem.isSelected();\n };\n\n type MenuInteraction = {\n pointerType: PressEvent[\"pointerType\"];\n key?: string;\n };\n\n let interaction: MenuInteraction | null = null;\n let isMenuPressActive = false;\n let isDispatchingKeyboardClick = false;\n let isDispatchingMenuSyntheticClick = false;\n let selectionEventBeforeMenuPressUp: Selection | null = null;\n let hasSelectionEventBeforeMenuPressUp = false;\n let pendingSyntheticClickSelectionEvent: Selection | null = null;\n let suppressNextKeyboardClick = false;\n\n const getShouldClose = (): boolean => {\n const p = getProps();\n const explicitClose = p.closeOnSelect ?? getData()?.shouldCloseOnSelect;\n if (explicitClose !== undefined) {\n return explicitClose;\n }\n\n if (interaction?.pointerType === \"keyboard\") {\n return interaction.key === \"Enter\" || selectionMode() === \"none\" || isLink();\n }\n\n return selectionMode() !== \"multiple\" || isLink();\n };\n\n const performMenuAction = (event: MouseEvent) => {\n if (isDisabled()) {\n event.preventDefault();\n return;\n }\n\n if (suppressNextKeyboardClick && interaction == null) {\n suppressNextKeyboardClick = false;\n return;\n }\n\n const p = getProps();\n const key = p.key;\n const data = getData();\n\n // Submenu triggers open their submenu via the local item action, but do not\n // fire the parent menu onAction or close the menu.\n if (isTrigger()) {\n p.onAction?.();\n interaction = null;\n return;\n }\n\n // Call item-specific onAction.\n p.onAction?.();\n\n // Call menu-level onAction with the activated item's value, mirroring\n // useMenuItem performAction: onAction(key, item?.value).\n const item = state.collection().getItem(key);\n data?.onAction?.(key, item?.value);\n\n if (getShouldClose()) {\n data?.onClose?.();\n }\n\n interaction = null;\n };\n\n // Menu-specific press handling is separate from selectable-item selection,\n // matching upstream useMenuItem: useSelectableItem owns selection/focus\n // timing; the menu layer owns pressed state, different-origin release, action,\n // links, and close behavior.\n const { pressProps, isPressed } = createPress({\n get isDisabled() {\n return isDisabled();\n },\n onPressChange(isPressed) {\n isMenuPressActive = isPressed;\n },\n onPressUp(e) {\n if (e.pointerType !== \"keyboard\" && !isDispatchingKeyboardClick) {\n interaction = { pointerType: e.pointerType };\n }\n\n // Native menus allow pressing the trigger, dragging to an item, and\n // releasing to activate it. Upstream useMenuItem synthesizes a click in\n // this different-origin mouse case.\n if (e.pointerType === \"mouse\" && !isMenuPressActive && e.target instanceof HTMLElement) {\n const selectionEventAfterPressUp = state.selectionManager.lastSelectionEvent;\n pendingSyntheticClickSelectionEvent =\n hasSelectionEventBeforeMenuPressUp &&\n selectionEventAfterPressUp != null &&\n selectionEventAfterPressUp !== selectionEventBeforeMenuPressUp\n ? selectionEventAfterPressUp\n : null;\n\n isDispatchingMenuSyntheticClick = true;\n try {\n e.target.click();\n } finally {\n isDispatchingMenuSyntheticClick = false;\n hasSelectionEventBeforeMenuPressUp = false;\n selectionEventBeforeMenuPressUp = null;\n pendingSyntheticClickSelectionEvent = null;\n }\n }\n },\n });\n\n const captureSelectionEventBeforeMenuPressUp = () => {\n selectionEventBeforeMenuPressUp = state.selectionManager.lastSelectionEvent;\n hasSelectionEventBeforeMenuPressUp = true;\n };\n\n const withMenuPressUpSelectionSnapshot = <EventType extends Event>(handler: unknown) => {\n if (typeof handler !== \"function\") {\n return handler;\n }\n\n return (event: EventType) => {\n captureSelectionEventBeforeMenuPressUp();\n (handler as (event: EventType) => void)(event);\n };\n };\n\n const selectableItemProps = () => {\n const props = selectableItem.itemProps as Record<string, unknown>;\n const onClick = props.onClick;\n\n return {\n ...props,\n onPointerUp: withMenuPressUpSelectionSnapshot<PointerEvent>(props.onPointerUp),\n onMouseUp: withMenuPressUpSelectionSnapshot<MouseEvent>(props.onMouseUp),\n onClick:\n typeof onClick === \"function\"\n ? (event: MouseEvent) => {\n // The menu layer's upstream-compatible target.click() should activate\n // the menu item, not feed back into selectable-item virtual selection.\n if (isDispatchingMenuSyntheticClick && isVirtualClick(event)) {\n if (pendingSyntheticClickSelectionEvent != null) {\n state.selectionManager.emitDuplicateSelectionEvent(\n pendingSyntheticClickSelectionEvent,\n );\n pendingSyntheticClickSelectionEvent = null;\n }\n return;\n }\n\n (onClick as (event: MouseEvent) => void)(event);\n }\n : onClick,\n };\n };\n\n const menuPressProps = () => {\n const {\n onKeyDown: _onKeyDown,\n onKeyUp: _onKeyUp,\n ...props\n } = pressProps as Record<string, unknown>;\n return props;\n };\n\n const keyboardProps = {\n onKeyDown: (event: KeyboardEvent) => {\n if (isDisabled() || event.repeat) {\n return;\n }\n\n if (event.key !== \" \" && event.key !== \"Enter\") {\n return;\n }\n\n event.preventDefault();\n event.stopPropagation();\n interaction = { pointerType: \"keyboard\", key: event.key };\n\n const target = getEventTarget<HTMLElement>(event) ?? ref?.();\n if (target instanceof HTMLElement) {\n suppressNextKeyboardClick = true;\n isDispatchingKeyboardClick = true;\n try {\n target.click();\n } finally {\n isDispatchingKeyboardClick = false;\n }\n }\n },\n onKeyUp: (event: KeyboardEvent) => {\n if (event.key === \" \" || event.key === \"Enter\") {\n suppressNextKeyboardClick = false;\n }\n },\n };\n\n // Handle hover\n const { hoverProps } = createHover({\n get isDisabled() {\n return isDisabled();\n },\n onHoverStart() {\n state.setFocusedKey(getProps().key);\n },\n });\n\n // Handle focus ring\n const { isFocusVisible, focusProps } = createFocusRing();\n\n // Generate unique IDs for label and description. The description + keyboard\n // ids use `createSlotId` (a 1:1 port of upstream `useSlotId`): each resolves\n // to `undefined` unless an element carrying that id is actually rendered, so\n // an item with no description/shortcut leaves `aria-describedby` unset instead\n // of pointing at a non-existent element. Mirrors useMenuItem's\n // `[props['aria-describedby'], descriptionId, keyboardId].filter(Boolean)`.\n const labelId = `${getProps().key}-label`;\n const descriptionId = createSlotId();\n const keyboardId = createSlotId();\n\n return {\n get menuItemProps() {\n const p = getProps();\n const key = p.key;\n const ariaLabel = p[\"aria-label\"];\n const mode = selectionMode();\n const selected = isSelected();\n const trigger = isTrigger();\n\n const baseProps: Record<string, unknown> = {\n role: trigger\n ? \"menuitem\"\n : mode === \"single\"\n ? \"menuitemradio\"\n : mode === \"multiple\"\n ? \"menuitemcheckbox\"\n : \"menuitem\",\n id: p.id ?? String(key),\n \"aria-disabled\": isDisabled() || undefined,\n \"aria-checked\": mode !== \"none\" && !trigger ? selected : undefined,\n \"aria-label\": ariaLabel,\n \"aria-labelledby\": !ariaLabel ? labelId : undefined,\n \"aria-describedby\": [descriptionId(), keyboardId()].filter(Boolean).join(\" \") || undefined,\n \"aria-controls\": p[\"aria-controls\"],\n \"aria-haspopup\": p[\"aria-haspopup\"],\n \"aria-expanded\": p[\"aria-expanded\"],\n \"data-selected\": selected || undefined,\n \"data-focused\": isFocused() || undefined,\n \"data-focus-visible\": isFocusVisible() || undefined,\n \"data-pressed\": isPressed() || undefined,\n \"data-disabled\": isDisabled() || undefined,\n };\n\n // Add link props when href is present\n if (isLink()) {\n baseProps.href = isDisabled() ? undefined : p.href;\n if (p.target) baseProps.target = p.target;\n if (p.rel) baseProps.rel = p.rel;\n if (p.download != null && p.download !== false) {\n baseProps.download = p.download === true ? \"\" : p.download;\n }\n }\n\n return mergeProps(\n selectableItemProps(),\n menuPressProps(),\n hoverProps as Record<string, unknown>,\n focusProps as Record<string, unknown>,\n keyboardProps,\n { onClick: performMenuAction },\n baseProps,\n ) as JSX.HTMLAttributes<HTMLElement>;\n },\n labelProps: {\n id: labelId,\n },\n // Getters so the slot id stays reactive: `createSlotId` may clear the id\n // (to `undefined`) after mount if no element registered it, and consumers\n // reading these props re-track that change.\n get descriptionProps() {\n return { id: descriptionId() };\n },\n get keyboardShortcutProps() {\n return { id: keyboardId(), \"aria-hidden\": true };\n },\n isFocused,\n isFocusVisible: () => isFocused() && isFocusVisible(),\n isPressed,\n isDisabled,\n isSelected,\n selectionMode,\n };\n}\n","/**\n * Provides the behavior and accessibility implementation for a menu trigger.\n * Based on @react-aria/menu useMenuTrigger.\n */\n\nimport { type JSX } from \"solid-js\";\nimport { createId } from \"../ssr\";\nimport { access, type MaybeAccessor } from \"../utils/reactivity\";\nimport type { OverlayTriggerState } from \"@proyecto-viviana/solid-stately\";\n\nexport interface AriaMenuTriggerProps {\n /** The type of menu that the menu trigger opens. */\n type?: \"menu\" | \"listbox\";\n /** Whether the menu trigger is disabled. */\n isDisabled?: boolean;\n /** An ID for the menu. */\n id?: string;\n}\n\nexport interface MenuTriggerAria {\n /** Props for the menu trigger button. */\n menuTriggerProps: JSX.HTMLAttributes<HTMLElement> & {\n onPress: () => void;\n onKeyDown: (e: KeyboardEvent) => void;\n };\n /** Props for the menu element. */\n menuProps: JSX.HTMLAttributes<HTMLElement>;\n}\n\n/**\n * Provides the behavior and accessibility implementation for a menu trigger.\n */\nexport function createMenuTrigger(\n props: MaybeAccessor<AriaMenuTriggerProps>,\n state: OverlayTriggerState,\n): MenuTriggerAria {\n const getProps = () => access(props);\n const menuId = createId(getProps().id);\n\n const onPress = () => {\n if (!getProps().isDisabled) {\n state.toggle();\n }\n };\n\n const onKeyDown = (e: KeyboardEvent) => {\n if (getProps().isDisabled) return;\n\n switch (e.key) {\n case \"Enter\":\n case \" \":\n case \"ArrowDown\": {\n e.preventDefault();\n if (!state.isOpen()) {\n state.open();\n }\n break;\n }\n case \"ArrowUp\": {\n e.preventDefault();\n if (!state.isOpen()) {\n state.open();\n }\n break;\n }\n }\n };\n\n return {\n get menuTriggerProps() {\n const p = getProps();\n const type = p.type ?? \"menu\";\n const isOpen = state.isOpen();\n\n return {\n \"aria-haspopup\": type,\n \"aria-expanded\": isOpen,\n \"aria-controls\": isOpen ? menuId : undefined,\n \"aria-disabled\": p.isDisabled || undefined,\n onPress,\n onKeyDown,\n };\n },\n menuProps: {\n id: menuId,\n },\n };\n}\n"],"mappings":"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"}
1
+ {"version":3,"file":"menu.js","names":[],"sources":["../../src/menu/createMenu.ts","../../src/menu/createMenuItem.ts","../../src/interactions/createContextMenu.ts","../../src/menu/intl/index.ts","../../src/menu/createMenuTrigger.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/menu/useMenu.ts\n\n/**\n * Provides the behavior and accessibility implementation for a menu component.\n * A menu displays a list of actions or options that a user can choose.\n * Based on @react-aria/menu useMenu.\n */\n\nimport { onOwnedCleanup } from \"../utils/owner\";\nimport { createTrackedEffect } from \"solid-js\";\nimport type { Accessor } from \"solid-js\";\nimport type { JSX } from \"@solidjs/web\";\nimport { createFocusWithin } from \"../interactions/createFocusWithin\";\nimport { createLabel } from \"../label/createLabel\";\nimport { createTypeSelect } from \"../selection/createTypeSelect\";\nimport { selectItem } from \"../selection/selectItem\";\nimport { filterDOMProps } from \"../utils/filterDOMProps\";\nimport { mergeProps } from \"../utils/mergeProps\";\nimport { focusSafely, runAfterPaint } from \"../utils/focus\";\nimport { createId } from \"../ssr\";\nimport { access, type MaybeAccessor } from \"../utils/reactivity\";\nimport { isDevEnv } from \"../utils/env\";\nimport type { MenuState, Key, Collection } from \"@proyecto-viviana/solid-stately\";\n\n/**\n * Default number of items to skip for page up/down when DOM measurement is not available.\n */\nconst DEFAULT_PAGE_SIZE = 10;\n\n/**\n * Find the next non-disabled key in a collection.\n */\nfunction findNextNonDisabledKey<T>(\n collection: Collection<T>,\n currentKey: Key | null,\n direction: \"next\" | \"prev\",\n isDisabled: (key: Key) => boolean,\n wrap: boolean,\n): Key | null {\n const getNextKey =\n direction === \"next\"\n ? (key: Key) => collection.getKeyAfter(key)\n : (key: Key) => collection.getKeyBefore(key);\n\n const getFirstKey =\n direction === \"next\" ? () => collection.getFirstKey() : () => collection.getLastKey();\n\n let nextKey = currentKey != null ? getNextKey(currentKey) : getFirstKey();\n\n // Skip disabled keys\n while (nextKey != null && isDisabled(nextKey)) {\n nextKey = getNextKey(nextKey);\n }\n\n // If we've reached the end and wrapping is enabled\n if (nextKey == null && wrap) {\n nextKey = getFirstKey();\n // Skip disabled keys from the start\n while (nextKey != null && isDisabled(nextKey)) {\n nextKey = getNextKey(nextKey);\n }\n }\n\n return nextKey;\n}\n\nexport interface AriaMenuProps<T = unknown> {\n /** An ID for the menu. */\n id?: string;\n /** Whether the menu is disabled. */\n isDisabled?: boolean;\n /** The label for the menu. */\n label?: JSX.Element;\n /** An accessible label for the menu when no visible label is provided. */\n \"aria-label\"?: string;\n /** The ID of an element that labels the menu. */\n \"aria-labelledby\"?: string;\n /** The ID of an element that describes the menu. */\n \"aria-describedby\"?: string;\n /** Handler called when focus moves into the menu. */\n onFocus?: (e: FocusEvent) => void;\n /** Handler called when focus moves out of the menu. */\n onBlur?: (e: FocusEvent) => void;\n /** Handler called when the focus state changes. */\n onFocusChange?: (isFocused: boolean) => void;\n /** Handler called when an item is activated (pressed). */\n onAction?: (key: Key, value: T) => void;\n /** Handler called when the menu should close. */\n onClose?: () => void;\n /** Whether the menu should close when an item is selected. */\n shouldCloseOnSelect?: boolean;\n /** Whether focus should automatically wrap around. */\n shouldFocusWrap?: boolean;\n /** Whether to auto-focus the menu root (`true`) or the first/last item. */\n autoFocus?: boolean | \"first\" | \"last\";\n /** Whether type-to-select is disabled. @default false */\n disallowTypeAhead?: boolean;\n}\n\nexport interface MenuAria {\n /** Props for the menu element. */\n menuProps: JSX.HTMLAttributes<HTMLElement>;\n /** Props for the menu's label element (if any). */\n labelProps: JSX.HTMLAttributes<HTMLElement>;\n}\n\n// Shared data between menu and menu items\nconst menuData = new WeakMap<object, MenuData>();\n\ninterface MenuData {\n id: string;\n // Type-erased like upstream menu/utils.ts MenuData (value: any): the WeakMap\n // is keyed by an untyped state, so the item value flows through as unknown.\n onAction?: (key: Key, value: unknown) => void;\n onClose?: () => void;\n isDisabled?: boolean;\n shouldCloseOnSelect?: boolean;\n}\n\nexport function getMenuData(state: MenuState): MenuData | undefined {\n return menuData.get(state);\n}\n\n/**\n * Provides the behavior and accessibility implementation for a menu component.\n * A menu displays a list of actions or options that a user can choose.\n */\nexport function createMenu<T>(\n props: MaybeAccessor<AriaMenuProps<T>>,\n state: MenuState<T>,\n ref?: Accessor<HTMLElement | null>,\n): MenuAria {\n const getProps = () => access(props);\n const id = createId(getProps().id);\n\n // Development-time warning for missing accessibility labels\n if (isDevEnv()) {\n const p = getProps();\n if (!p.label && !p[\"aria-label\"] && !p[\"aria-labelledby\"]) {\n console.warn(\n \"[solidaria] A Menu requires an aria-label or aria-labelledby attribute for accessibility.\",\n );\n }\n }\n\n // Filter DOM props\n const domProps = () =>\n filterDOMProps(getProps() as unknown as Record<string, unknown>, { labelable: true });\n\n const updateSharedData = () => {\n const p = getProps();\n menuData.set(state, {\n id,\n onAction: p.onAction as MenuData[\"onAction\"],\n onClose: p.onClose,\n isDisabled: p.isDisabled,\n shouldCloseOnSelect: p.shouldCloseOnSelect,\n });\n };\n\n // Ensure menu items created in the same render pass can read parent metadata.\n updateSharedData();\n\n // Share data with child menu items\n createTrackedEffect(() => {\n const _s2Cleanups: Array<() => void> = [];\n\n updateSharedData();\n\n _s2Cleanups.push(() => {\n menuData.delete(state);\n });\n\n return () => {\n for (const c of _s2Cleanups) c();\n };\n });\n\n // Handle focus within\n const { focusWithinProps } = createFocusWithin({\n onFocusWithin: (e) => getProps().onFocus?.(e),\n onBlurWithin: (e) => getProps().onBlur?.(e),\n onFocusWithinChange: (isFocused) => {\n getProps().onFocusChange?.(isFocused);\n state.setFocused(isFocused);\n },\n });\n\n // Label handling\n const { labelProps, fieldProps } = createLabel({\n get id() {\n return id;\n },\n get label() {\n return getProps().label;\n },\n get \"aria-label\"() {\n return getProps()[\"aria-label\"];\n },\n get \"aria-labelledby\"() {\n return getProps()[\"aria-labelledby\"];\n },\n labelElementType: \"span\",\n });\n\n // Type-to-select\n const { typeSelectProps } = createTypeSelect({\n collection: () => state.collection(),\n focusedKey: () => state.focusedKey(),\n onFocusedKeyChange: (key) => state.setFocusedKey(key),\n isKeyDisabled: (key) => state.isDisabled(key),\n get isDisabled() {\n return getProps().disallowTypeAhead ?? false;\n },\n });\n\n // Auto-focus the menu (or its first/last/selected item) when `autoFocus` is\n // set. Mirrors useMenu → useSelectableCollection: mouse open passes `true`\n // (focus the menu root); ArrowDown/ArrowUp pass `\"first\"`/`\"last\"`.\n const isNavDisabled = (key: Key) => state.isDisabled(key) && state.disabledBehavior() === \"all\";\n\n let autoFocusDone = false;\n let cancelAutoFocus: (() => void) | undefined;\n createTrackedEffect(() => {\n const autoFocus = getProps().autoFocus ?? false;\n if (autoFocusDone || autoFocus === false) {\n return;\n }\n\n const collection = state.collection();\n if (collection.size === 0) {\n return;\n }\n\n let focusedKey: Key | null = null;\n if (autoFocus === \"first\") {\n focusedKey = findNextNonDisabledKey(collection, null, \"next\", isNavDisabled, false);\n } else if (autoFocus === \"last\") {\n focusedKey = findNextNonDisabledKey(collection, null, \"prev\", isNavDisabled, false);\n }\n\n const selectedKeys = state.selectionManager.rawSelection;\n if (selectedKeys !== \"all\" && selectedKeys.size) {\n for (const key of selectedKeys) {\n if (state.selectionManager.canSelectItem(key)) {\n focusedKey = key;\n break;\n }\n }\n }\n\n const root = ref?.();\n if (focusedKey == null && !root) {\n return;\n }\n\n autoFocusDone = true;\n cancelAutoFocus = runAfterPaint(() => {\n cancelAutoFocus = undefined;\n state.setFocused(true);\n state.setFocusedKey(focusedKey);\n if (focusedKey == null) {\n const el = ref?.();\n if (el) {\n // Mouse-open (`autoFocus: true`) focuses the menu root. React's\n // useEffect-timed `focusSafely` lands CSS `:focus-visible` on that\n // tabindex=0 collection, so D1 `outline-width` is the UA 1px even\n // though author CSS sets `outline-style: none`. Solid's after-paint\n // focus otherwise stays outside `:focus-visible` (UA medium 3px).\n // Request `focusVisible` so the collection root matches.\n focusSafely(el, { focusVisible: true });\n }\n }\n });\n });\n onOwnedCleanup(() => {\n cancelAutoFocus?.();\n });\n\n // Keyboard navigation\n const onKeyDown: JSX.EventHandler<HTMLElement, KeyboardEvent> = (e) => {\n if (getProps().isDisabled) return;\n\n const collection = state.collection();\n const p = getProps();\n const wrap = p.shouldFocusWrap ?? true;\n\n // Disabled keys only block keyboard navigation under disabledBehavior \"all\"\n // (the default); under \"selection\" they stay focusable while their selection\n // remains blocked. Mirrors ListKeyboardDelegate.isDisabled in React Aria,\n // which gates the navigation skip on the resolved disabledBehavior.\n const isDisabled = (key: Key) => state.isDisabled(key) && state.disabledBehavior() === \"all\";\n\n switch (e.key) {\n case \"ArrowDown\": {\n // Only consume the key once a target exists, mirroring\n // useSelectableCollection (ArrowDown, 211-225): preventDefault is called\n // inside `if (nextKey != null)`, so at the last item without wrap the\n // arrow bubbles instead of being swallowed.\n const currentKey = state.focusedKey();\n const nextKey = findNextNonDisabledKey(collection, currentKey, \"next\", isDisabled, wrap);\n if (nextKey != null) {\n e.preventDefault();\n state.setFocusedKey(nextKey);\n }\n break;\n }\n case \"ArrowUp\": {\n const currentKey = state.focusedKey();\n const prevKey = findNextNonDisabledKey(collection, currentKey, \"prev\", isDisabled, wrap);\n if (prevKey != null) {\n e.preventDefault();\n state.setFocusedKey(prevKey);\n }\n break;\n }\n case \"Home\": {\n // Mirror useSelectableCollection (Home, 283-285): with nothing focused,\n // Shift+Home has no anchor to extend from, so leave the event alone.\n if (state.focusedKey() == null && e.shiftKey) break;\n e.preventDefault();\n // Find first non-disabled key\n let firstKey = collection.getFirstKey();\n while (firstKey != null && isDisabled(firstKey)) {\n firstKey = collection.getKeyAfter(firstKey);\n }\n if (firstKey != null) {\n state.setFocusedKey(firstKey);\n }\n break;\n }\n case \"End\": {\n // Mirror useSelectableCollection (End, 300-302): same anchor guard as Home.\n if (state.focusedKey() == null && e.shiftKey) break;\n e.preventDefault();\n // Find last non-disabled key\n let lastKey = collection.getLastKey();\n while (lastKey != null && isDisabled(lastKey)) {\n lastKey = collection.getKeyBefore(lastKey);\n }\n if (lastKey != null) {\n state.setFocusedKey(lastKey);\n }\n break;\n }\n case \" \":\n case \"Enter\": {\n if (e.target !== e.currentTarget) break;\n e.preventDefault();\n const focusedKey = state.focusedKey();\n // Activation is gated on the navigation-disabled check, not the raw\n // one: under disabledBehavior \"selection\" a focusable disabled item\n // still fires onAction (and closes), mirroring useSelectableItem's\n // allowsActions (manager.isDisabled is gated on \"all\"). Selection stays\n // blocked independently — state.select self-guards on the raw disabled\n // check (SelectionManager.canSelectItem).\n if (focusedKey != null && !isDisabled(focusedKey)) {\n // Route through the aria-layer onSelect so the platform-aware modifier\n // resolution (isCtrlKeyPressed / non-contiguous modifier) and the\n // shift-extend path are applied. Keyboard activation carries\n // pointerType \"keyboard\".\n selectItem(\n state,\n focusedKey,\n {\n pointerType: \"keyboard\",\n shiftKey: e.shiftKey,\n ctrlKey: e.ctrlKey,\n metaKey: e.metaKey,\n altKey: e.altKey,\n },\n collection,\n );\n // Pass the activated item's value as the second arg, mirroring\n // useMenuItem performAction: onAction(key, item?.value).\n p.onAction?.(focusedKey, collection.getItem(focusedKey)?.value as T);\n const item = collection.getItem(focusedKey);\n const isLink = !!item?.props?.href;\n const shouldClose =\n p.shouldCloseOnSelect ??\n (e.key === \"Enter\" || state.selectionMode() === \"none\" || isLink);\n if (shouldClose) {\n p.onClose?.();\n }\n }\n break;\n }\n case \"Escape\": {\n e.preventDefault();\n p.onClose?.();\n break;\n }\n case \"PageDown\": {\n // Mirror useSelectableCollection (PageDown, 324-332): only consume the\n // key when an item is focused. A non-empty collection always yields a\n // page target via getKeyPageBelow, so a focused key means focus moves\n // and the event is swallowed; with nothing focused, leave it alone to\n // bubble (e.g. to scroll an enclosing region).\n const currentKey = state.focusedKey();\n if (currentKey == null) break;\n e.preventDefault();\n const el = ref?.();\n\n if (el) {\n // Use DOM measurements to calculate how many items fit in a page\n const visibleHeight = el.clientHeight;\n let traveled = 0;\n let targetKey = currentKey;\n\n while (targetKey != null && traveled < visibleHeight) {\n const nextKey = collection.getKeyAfter(targetKey);\n if (nextKey == null) break;\n\n // Try to measure the item height\n const itemElement = el.querySelector(`[data-key=\"${targetKey}\"]`);\n traveled += itemElement?.clientHeight ?? 32;\n\n // Skip disabled items\n if (!isDisabled(nextKey)) {\n targetKey = nextKey;\n } else {\n // Skip over disabled items without counting them\n const afterDisabled = findNextNonDisabledKey(\n collection,\n nextKey,\n \"next\",\n isDisabled,\n false,\n );\n if (afterDisabled != null) {\n targetKey = afterDisabled;\n } else {\n break;\n }\n }\n }\n\n if (targetKey != null && targetKey !== currentKey) {\n state.setFocusedKey(targetKey);\n }\n } else {\n // Fallback: move by DEFAULT_PAGE_SIZE items\n let count = DEFAULT_PAGE_SIZE;\n let targetKey = currentKey;\n\n while (count > 0 && targetKey != null) {\n const nextKey = findNextNonDisabledKey(\n collection,\n targetKey,\n \"next\",\n isDisabled,\n false,\n );\n if (nextKey == null) break;\n targetKey = nextKey;\n count--;\n }\n\n if (targetKey != null) {\n state.setFocusedKey(targetKey);\n }\n }\n break;\n }\n case \"PageUp\": {\n // Mirror useSelectableCollection (PageUp, 333-341): only consume the key\n // when an item is focused. A non-empty collection always yields a page\n // target via getKeyPageAbove, so a focused key means focus moves and the\n // event is swallowed; with nothing focused, leave it alone to bubble\n // (e.g. to scroll an enclosing region).\n const currentKey = state.focusedKey();\n if (currentKey == null) break;\n e.preventDefault();\n const el = ref?.();\n\n if (el) {\n // Use DOM measurements to calculate how many items fit in a page\n const visibleHeight = el.clientHeight;\n let traveled = 0;\n let targetKey = currentKey;\n\n while (targetKey != null && traveled < visibleHeight) {\n const prevKey = collection.getKeyBefore(targetKey);\n if (prevKey == null) break;\n\n // Try to measure the item height\n const itemElement = el.querySelector(`[data-key=\"${targetKey}\"]`);\n traveled += itemElement?.clientHeight ?? 32;\n\n // Skip disabled items\n if (!isDisabled(prevKey)) {\n targetKey = prevKey;\n } else {\n // Skip over disabled items without counting them\n const beforeDisabled = findNextNonDisabledKey(\n collection,\n prevKey,\n \"prev\",\n isDisabled,\n false,\n );\n if (beforeDisabled != null) {\n targetKey = beforeDisabled;\n } else {\n break;\n }\n }\n }\n\n if (targetKey != null && targetKey !== currentKey) {\n state.setFocusedKey(targetKey);\n }\n } else {\n // Fallback: move by DEFAULT_PAGE_SIZE items\n let count = DEFAULT_PAGE_SIZE;\n let targetKey = currentKey;\n\n while (count > 0 && targetKey != null) {\n const prevKey = findNextNonDisabledKey(\n collection,\n targetKey,\n \"prev\",\n isDisabled,\n false,\n );\n if (prevKey == null) break;\n targetKey = prevKey;\n count--;\n }\n\n if (targetKey != null) {\n state.setFocusedKey(targetKey);\n }\n }\n break;\n }\n }\n };\n\n return {\n get labelProps() {\n return labelProps as JSX.HTMLAttributes<HTMLElement>;\n },\n get menuProps() {\n const p = getProps();\n\n const baseProps = mergeProps(\n domProps(),\n focusWithinProps as Record<string, unknown>,\n fieldProps as Record<string, unknown>,\n {\n role: \"menu\",\n // Roving tabindex: the menu container is tab-reachable (0) only while no\n // item holds focus; once `focusedKey` is set the container drops to -1 so\n // Tab/Shift+Tab traverse past it and real focus stays on the item. This\n // mirrors upstream `useMenu`, which spreads `useSelectableList`'s\n // `listProps.tabIndex` (`manager.focusedKey == null ? 0 : -1`, non-virtual\n // focus) onto the menu.\n //\n // This MUST be a getter, not an eagerly-evaluated value. Consumers\n // (solidaria-components `Menu.tsx`) destructure `menuProps` once and\n // spread it through `mergeProps`; a plain `tabIndex: <value>` would be\n // computed at that first read (while `focusedKey` is still null → 0) and\n // frozen. As a getter it survives `mergeProps` (which preserves getters),\n // so the consumer's reactive element-spread re-reads `state.focusedKey()`\n // and the container tabindex tracks focus.\n get tabIndex() {\n return getProps().isDisabled ? undefined : state.focusedKey() == null ? 0 : -1;\n },\n \"aria-disabled\": p.isDisabled || undefined,\n onKeyDown,\n } as Record<string, unknown>,\n );\n\n // Add type-select props if enabled\n if (!p.disallowTypeAhead) {\n return mergeProps(\n baseProps,\n typeSelectProps as Record<string, unknown>,\n ) as JSX.HTMLAttributes<HTMLElement>;\n }\n\n return baseProps as JSX.HTMLAttributes<HTMLElement>;\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/menu/useMenuItem.ts\n\n/**\n * Provides the behavior and accessibility implementation for a menu item.\n * Based on @react-aria/menu useMenuItem.\n */\n\nimport type { Accessor } from \"solid-js\";\nimport type { JSX } from \"@solidjs/web\";\nimport { createPress, type PressEvent } from \"../interactions/createPress\";\nimport { createHover } from \"../interactions/createHover\";\nimport { createFocusRing } from \"../interactions/createFocusRing\";\nimport { createSelectableItem } from \"../selection/createSelectableItem\";\nimport { mergeProps } from \"../utils/mergeProps\";\nimport { access, type MaybeAccessor } from \"../utils/reactivity\";\nimport { getEventTarget } from \"../utils/dom\";\nimport { isVirtualClick } from \"../utils/events\";\nimport { createSlotId } from \"../ssr\";\nimport { getMenuData } from \"./createMenu\";\nimport type { MenuState, Key, Selection, SelectionMode } from \"@proyecto-viviana/solid-stately\";\n\nexport interface AriaMenuItemProps {\n /** The unique key for the menu item. */\n key: Key;\n /** Optional DOM id for the menu item. Defaults to the key. */\n id?: string;\n /** Whether the menu item is disabled. */\n isDisabled?: boolean;\n /** An accessible label for the menu item. */\n \"aria-label\"?: string;\n /** Element controlled by this menu item, for submenu triggers. */\n \"aria-controls\"?: string;\n /** Whether this menu item opens a submenu or subdialog. */\n \"aria-haspopup\"?: string | boolean;\n /** Whether the submenu or subdialog is expanded. */\n \"aria-expanded\"?: boolean | \"true\" | \"false\";\n /** Handler called when the menu item is selected. */\n onAction?: () => void;\n /** Whether to close the menu when this item is selected. */\n closeOnSelect?: boolean;\n /** A URL to link to. Turns the menu item into a link. */\n href?: string;\n /** The target window for the link. */\n target?: string;\n /** The relationship between the linked resource and the current page. */\n rel?: string;\n /** Causes the browser to download the linked URL. A string may be provided to suggest a file name. */\n download?: boolean | string;\n}\n\nexport interface MenuItemAria {\n /** Props for the menu item element. */\n menuItemProps: JSX.HTMLAttributes<HTMLElement>;\n /** Props for the label text inside the menu item. */\n labelProps: JSX.HTMLAttributes<HTMLElement>;\n /** Props for the description text inside the menu item. */\n descriptionProps: JSX.HTMLAttributes<HTMLElement>;\n /** Props for the keyboard shortcut inside the menu item. */\n keyboardShortcutProps: JSX.HTMLAttributes<HTMLElement>;\n /** Whether the menu item is currently focused. */\n isFocused: Accessor<boolean>;\n /** Whether the menu item is keyboard focused. */\n isFocusVisible: Accessor<boolean>;\n /** Whether the menu item is currently pressed. */\n isPressed: Accessor<boolean>;\n /** Whether the menu item is disabled. */\n isDisabled: Accessor<boolean>;\n /** Whether the menu item is selected. */\n isSelected: Accessor<boolean>;\n /** The parent menu selection mode. */\n selectionMode: Accessor<SelectionMode>;\n}\n\n/**\n * Provides the behavior and accessibility implementation for a menu item.\n */\nexport function createMenuItem<T>(\n props: MaybeAccessor<AriaMenuItemProps>,\n state: MenuState<T>,\n ref?: () => HTMLElement | null,\n): MenuItemAria {\n const getProps = () => access(props);\n\n // Get shared data from menu\n const getData = () => getMenuData(state);\n\n // Computed states. `state.isDisabled` is SelectionManager.isDisabled, which\n // already respects disabledBehavior=\"selection\"; these items stay actionable\n // while SelectionManager.canSelectItem keeps selection blocked.\n const isDisabled: Accessor<boolean> = () => {\n return Boolean(\n getData()?.isDisabled || getProps().isDisabled || state.isDisabled(getProps().key),\n );\n };\n\n const selectionMode: Accessor<SelectionMode> = () => {\n return state.selectionMode();\n };\n\n // Whether this is a link item\n const isLink = () => !!getProps().href;\n const isTrigger = () => !!getProps()[\"aria-haspopup\"];\n\n const selectableItem = createSelectableItem(\n () => {\n const p = getProps();\n return {\n key: p.key,\n id: p.id ?? String(p.key),\n isDisabled: isDisabled(),\n isLink: isLink(),\n href: p.href,\n shouldSelectOnPressUp: true,\n allowsDifferentPressOrigin: true,\n linkBehavior: \"none\",\n };\n },\n state,\n () => ref?.() ?? null,\n );\n\n const isFocused: Accessor<boolean> = () => selectableItem.isFocused();\n\n const isSelected: Accessor<boolean> = () => {\n return !isTrigger() && selectableItem.isSelected();\n };\n\n type MenuInteraction = {\n pointerType: PressEvent[\"pointerType\"];\n key?: string;\n };\n\n let interaction: MenuInteraction | null = null;\n let isMenuPressActive = false;\n let isDispatchingKeyboardClick = false;\n let isDispatchingMenuSyntheticClick = false;\n let selectionEventBeforeMenuPressUp: Selection | null = null;\n let hasSelectionEventBeforeMenuPressUp = false;\n let pendingSyntheticClickSelectionEvent: Selection | null = null;\n let suppressNextKeyboardClick = false;\n\n const getShouldClose = (): boolean => {\n const p = getProps();\n const explicitClose = p.closeOnSelect ?? getData()?.shouldCloseOnSelect;\n if (explicitClose !== undefined) {\n return explicitClose;\n }\n\n if (interaction?.pointerType === \"keyboard\") {\n return interaction.key === \"Enter\" || selectionMode() === \"none\" || isLink();\n }\n\n return selectionMode() !== \"multiple\" || isLink();\n };\n\n const performMenuAction = (event: MouseEvent) => {\n if (isDisabled()) {\n event.preventDefault();\n return;\n }\n\n if (suppressNextKeyboardClick && interaction == null) {\n suppressNextKeyboardClick = false;\n return;\n }\n\n const p = getProps();\n const key = p.key;\n const data = getData();\n\n // Submenu triggers open their submenu via the local item action, but do not\n // fire the parent menu onAction or close the menu.\n if (isTrigger()) {\n p.onAction?.();\n interaction = null;\n return;\n }\n\n // Call item-specific onAction.\n p.onAction?.();\n\n // Call menu-level onAction with the activated item's value, mirroring\n // useMenuItem performAction: onAction(key, item?.value).\n const item = state.collection().getItem(key);\n data?.onAction?.(key, item?.value);\n\n if (getShouldClose()) {\n data?.onClose?.();\n }\n\n interaction = null;\n };\n\n // Menu-specific press handling is separate from selectable-item selection,\n // matching upstream useMenuItem: useSelectableItem owns selection/focus\n // timing; the menu layer owns pressed state, different-origin release, action,\n // links, and close behavior.\n const { pressProps, isPressed } = createPress({\n get isDisabled() {\n return isDisabled();\n },\n onPressChange(isPressed) {\n isMenuPressActive = isPressed;\n },\n onPressUp(e) {\n if (e.pointerType !== \"keyboard\" && !isDispatchingKeyboardClick) {\n interaction = { pointerType: e.pointerType };\n }\n\n // Native menus allow pressing the trigger, dragging to an item, and\n // releasing to activate it. Upstream useMenuItem synthesizes a click in\n // this different-origin mouse case.\n if (e.pointerType === \"mouse\" && !isMenuPressActive && e.target instanceof HTMLElement) {\n const selectionEventAfterPressUp = state.selectionManager.lastSelectionEvent;\n pendingSyntheticClickSelectionEvent =\n hasSelectionEventBeforeMenuPressUp &&\n selectionEventAfterPressUp != null &&\n selectionEventAfterPressUp !== selectionEventBeforeMenuPressUp\n ? selectionEventAfterPressUp\n : null;\n\n isDispatchingMenuSyntheticClick = true;\n try {\n e.target.click();\n } finally {\n isDispatchingMenuSyntheticClick = false;\n hasSelectionEventBeforeMenuPressUp = false;\n selectionEventBeforeMenuPressUp = null;\n pendingSyntheticClickSelectionEvent = null;\n }\n }\n },\n });\n\n const captureSelectionEventBeforeMenuPressUp = () => {\n selectionEventBeforeMenuPressUp = state.selectionManager.lastSelectionEvent;\n hasSelectionEventBeforeMenuPressUp = true;\n };\n\n const withMenuPressUpSelectionSnapshot = <EventType extends Event>(handler: unknown) => {\n if (typeof handler !== \"function\") {\n return handler;\n }\n\n return (event: EventType) => {\n captureSelectionEventBeforeMenuPressUp();\n (handler as (event: EventType) => void)(event);\n };\n };\n\n const selectableItemProps = () => {\n const props = selectableItem.itemProps as Record<string, unknown>;\n const onClick = props.onClick;\n\n const interceptSyntheticClick = (event: MouseEvent, fallbackHandler?: unknown) => {\n // The menu layer's upstream-compatible target.click() should activate\n // the menu item, not feed back into selectable-item virtual selection.\n if (isDispatchingMenuSyntheticClick && isVirtualClick(event)) {\n if (pendingSyntheticClickSelectionEvent != null) {\n state.selectionManager.emitDuplicateSelectionEvent(pendingSyntheticClickSelectionEvent);\n pendingSyntheticClickSelectionEvent = null;\n }\n return;\n }\n\n if (typeof fallbackHandler === \"function\") {\n (fallbackHandler as (event: MouseEvent) => void)(event);\n }\n };\n\n return {\n ...props,\n onPointerUp: withMenuPressUpSelectionSnapshot<PointerEvent>(props.onPointerUp),\n onMouseUp: withMenuPressUpSelectionSnapshot<MouseEvent>(props.onMouseUp),\n onClick:\n typeof onClick === \"function\"\n ? (event: MouseEvent) => interceptSyntheticClick(event, onClick)\n : onClick,\n };\n };\n\n const menuPressProps = () => {\n const {\n onKeyDown: _onKeyDown,\n onKeyUp: _onKeyUp,\n ...props\n } = pressProps as Record<string, unknown>;\n return props;\n };\n\n const keyboardProps = {\n onKeyDown: (event: KeyboardEvent) => {\n if (isDisabled() || event.repeat) {\n return;\n }\n\n if (event.key !== \" \" && event.key !== \"Enter\") {\n return;\n }\n\n event.preventDefault();\n event.stopPropagation();\n interaction = { pointerType: \"keyboard\", key: event.key };\n\n const target = getEventTarget<HTMLElement>(event) ?? ref?.();\n if (target instanceof HTMLElement) {\n suppressNextKeyboardClick = true;\n isDispatchingKeyboardClick = true;\n try {\n target.click();\n } finally {\n isDispatchingKeyboardClick = false;\n }\n }\n },\n onKeyUp: (event: KeyboardEvent) => {\n if (event.key === \" \" || event.key === \"Enter\") {\n suppressNextKeyboardClick = false;\n }\n },\n };\n\n // Handle hover\n const { hoverProps } = createHover({\n get isDisabled() {\n return isDisabled();\n },\n onHoverStart() {\n state.setFocusedKey(getProps().key);\n },\n });\n\n // Handle focus ring\n const { isFocusVisible, focusProps } = createFocusRing();\n\n // Generate unique IDs for label and description. The description + keyboard\n // ids use `createSlotId` (a 1:1 port of upstream `useSlotId`): each resolves\n // to `undefined` unless an element carrying that id is actually rendered, so\n // an item with no description/shortcut leaves `aria-describedby` unset instead\n // of pointing at a non-existent element. Mirrors useMenuItem's\n // `[props['aria-describedby'], descriptionId, keyboardId].filter(Boolean)`.\n const labelId = `${getProps().key}-label`;\n const descriptionId = createSlotId();\n const keyboardId = createSlotId();\n\n return {\n get menuItemProps() {\n const p = getProps();\n const key = p.key;\n const ariaLabel = p[\"aria-label\"];\n const mode = selectionMode();\n const selected = isSelected();\n const trigger = isTrigger();\n\n const baseProps: Record<string, unknown> = {\n role: trigger\n ? \"menuitem\"\n : mode === \"single\"\n ? \"menuitemradio\"\n : mode === \"multiple\"\n ? \"menuitemcheckbox\"\n : \"menuitem\",\n id: p.id ?? String(key),\n \"aria-disabled\": isDisabled() || undefined,\n \"aria-checked\": mode !== \"none\" && !trigger ? (selected ? \"true\" : \"false\") : undefined,\n \"aria-label\": ariaLabel,\n \"aria-labelledby\": !ariaLabel ? labelId : undefined,\n \"aria-describedby\": [descriptionId(), keyboardId()].filter(Boolean).join(\" \") || undefined,\n \"aria-controls\": p[\"aria-controls\"],\n \"aria-haspopup\": p[\"aria-haspopup\"],\n \"aria-expanded\": p[\"aria-expanded\"],\n \"data-selected\": selected ? \"true\" : undefined,\n \"data-focused\": isFocused() ? \"true\" : undefined,\n \"data-focus-visible\": isFocusVisible() ? \"true\" : undefined,\n \"data-pressed\": isPressed() ? \"true\" : undefined,\n \"data-disabled\": isDisabled() ? \"true\" : undefined,\n };\n\n // Add link props when href is present\n if (isLink()) {\n baseProps.href = isDisabled() ? undefined : p.href;\n if (p.target) baseProps.target = p.target;\n if (p.rel) baseProps.rel = p.rel;\n if (p.download != null && p.download !== false) {\n baseProps.download = p.download === true ? \"\" : p.download;\n }\n }\n\n return mergeProps(\n selectableItemProps(),\n menuPressProps(),\n hoverProps as Record<string, unknown>,\n focusProps as Record<string, unknown>,\n keyboardProps,\n { onClick: performMenuAction },\n baseProps,\n ) as JSX.HTMLAttributes<HTMLElement>;\n },\n labelProps: {\n id: labelId,\n },\n // Getters so the slot id stays reactive: `createSlotId` may clear the id\n // (to `undefined`) after mount if no element registered it, and consumers\n // reading these props re-track that change.\n get descriptionProps() {\n return { id: descriptionId() };\n },\n get keyboardShortcutProps() {\n return { id: keyboardId(), \"aria-hidden\": \"true\" as const };\n },\n isFocused,\n isFocusVisible: () => isFocused() && isFocusVisible(),\n isPressed,\n isDisabled,\n isSelected,\n selectionMode,\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/interactions/useContextMenu.ts\n\n/**\n * Handles context-menu events across mouse, touch, keyboard, and screen readers.\n * Based on @react-aria/interactions useContextMenu.\n */\n\nimport type { JSX } from \"@solidjs/web\";\nimport { createLongPress } from \"./createLongPress\";\nimport { isIOS, isMac, mergeProps } from \"../utils\";\n\nexport interface ContextMenuEvent {\n /** Element that received the context-menu request. */\n target: Element;\n /** Horizontal position relative to the target. */\n x: number;\n /** Vertical position relative to the target. */\n y: number;\n}\n\nexport interface ContextMenuProps {\n /** Called when the user requests a context menu. */\n onContextMenu?: (event: ContextMenuEvent) => void;\n}\n\nexport interface ContextMenuAria {\n /** Props for the target element. */\n contextMenuProps: JSX.HTMLAttributes<HTMLElement>;\n}\n\n/** Handles native and emulated context-menu requests. */\nexport function createContextMenu(props: ContextMenuProps): ContextMenuAria {\n let firedContextMenuEvent = false;\n\n const { longPressProps } = createLongPress({\n onLongPressStart() {\n firedContextMenuEvent = false;\n },\n onLongPress(event) {\n if (!firedContextMenuEvent) {\n props.onContextMenu?.({\n target: event.target,\n x: event.x,\n y: event.y,\n });\n } else {\n firedContextMenuEvent = false;\n }\n },\n });\n\n if (!props.onContextMenu) {\n return { contextMenuProps: {} };\n }\n\n const contextMenuProps: JSX.HTMLAttributes<HTMLElement> = {\n onContextMenu(event) {\n event.stopPropagation();\n event.preventDefault();\n firedContextMenuEvent = true;\n\n const rect = event.currentTarget.getBoundingClientRect();\n props.onContextMenu?.({\n target: event.currentTarget,\n x: event.clientX - rect.x,\n y: event.clientY - rect.y,\n });\n },\n onKeyDown(event) {\n if (!isMac() || !event.ctrlKey || event.key !== \"Enter\") {\n return;\n }\n\n firedContextMenuEvent = false;\n const target = event.currentTarget;\n event.stopPropagation();\n\n setTimeout(() => {\n if (!firedContextMenuEvent) {\n const rect = target.getBoundingClientRect();\n props.onContextMenu?.({\n target,\n x: rect.width / 2,\n y: rect.height / 2,\n });\n } else {\n firedContextMenuEvent = false;\n }\n }, 10);\n },\n };\n\n return {\n contextMenuProps: mergeProps(isIOS() ? longPressProps : {}, contextMenuProps),\n };\n}\n","// Ported to SolidJS for Proyecto Viviana; based on packages/react-aria/intl/menu/ar-AE.json\n// Ported to SolidJS for Proyecto Viviana; based on packages/react-aria/intl/menu/bg-BG.json\n// Ported to SolidJS for Proyecto Viviana; based on packages/react-aria/intl/menu/cs-CZ.json\n// Ported to SolidJS for Proyecto Viviana; based on packages/react-aria/intl/menu/da-DK.json\n// Ported to SolidJS for Proyecto Viviana; based on packages/react-aria/intl/menu/de-DE.json\n// Ported to SolidJS for Proyecto Viviana; based on packages/react-aria/intl/menu/el-GR.json\n// Ported to SolidJS for Proyecto Viviana; based on packages/react-aria/intl/menu/en-US.json\n// Ported to SolidJS for Proyecto Viviana; based on packages/react-aria/intl/menu/es-ES.json\n// Ported to SolidJS for Proyecto Viviana; based on packages/react-aria/intl/menu/et-EE.json\n// Ported to SolidJS for Proyecto Viviana; based on packages/react-aria/intl/menu/fi-FI.json\n// Ported to SolidJS for Proyecto Viviana; based on packages/react-aria/intl/menu/fr-FR.json\n// Ported to SolidJS for Proyecto Viviana; based on packages/react-aria/intl/menu/he-IL.json\n// Ported to SolidJS for Proyecto Viviana; based on packages/react-aria/intl/menu/hr-HR.json\n// Ported to SolidJS for Proyecto Viviana; based on packages/react-aria/intl/menu/hu-HU.json\n// Ported to SolidJS for Proyecto Viviana; based on packages/react-aria/intl/menu/it-IT.json\n// Ported to SolidJS for Proyecto Viviana; based on packages/react-aria/intl/menu/ja-JP.json\n// Ported to SolidJS for Proyecto Viviana; based on packages/react-aria/intl/menu/ko-KR.json\n// Ported to SolidJS for Proyecto Viviana; based on packages/react-aria/intl/menu/lt-LT.json\n// Ported to SolidJS for Proyecto Viviana; based on packages/react-aria/intl/menu/lv-LV.json\n// Ported to SolidJS for Proyecto Viviana; based on packages/react-aria/intl/menu/nb-NO.json\n// Ported to SolidJS for Proyecto Viviana; based on packages/react-aria/intl/menu/nl-NL.json\n// Ported to SolidJS for Proyecto Viviana; based on packages/react-aria/intl/menu/pl-PL.json\n// Ported to SolidJS for Proyecto Viviana; based on packages/react-aria/intl/menu/pt-BR.json\n// Ported to SolidJS for Proyecto Viviana; based on packages/react-aria/intl/menu/pt-PT.json\n// Ported to SolidJS for Proyecto Viviana; based on packages/react-aria/intl/menu/ro-RO.json\n// Ported to SolidJS for Proyecto Viviana; based on packages/react-aria/intl/menu/ru-RU.json\n// Ported to SolidJS for Proyecto Viviana; based on packages/react-aria/intl/menu/sk-SK.json\n// Ported to SolidJS for Proyecto Viviana; based on packages/react-aria/intl/menu/sl-SI.json\n// Ported to SolidJS for Proyecto Viviana; based on packages/react-aria/intl/menu/sr-SP.json\n// Ported to SolidJS for Proyecto Viviana; based on packages/react-aria/intl/menu/sv-SE.json\n// Ported to SolidJS for Proyecto Viviana; based on packages/react-aria/intl/menu/tr-TR.json\n// Ported to SolidJS for Proyecto Viviana; based on packages/react-aria/intl/menu/uk-UA.json\n// Ported to SolidJS for Proyecto Viviana; based on packages/react-aria/intl/menu/zh-CN.json\n// Ported to SolidJS for Proyecto Viviana; based on packages/react-aria/intl/menu/zh-TW.json\n\n// Ported from @react-aria/menu intl catalog.\n/** Menu internationalization strings from the pinned React Aria source. */\n\nimport type { LocalizedStrings } from \"@internationalized/string\";\n\nexport const menuIntlStrings: LocalizedStrings<\"longPressMessage\", string> = {\n \"ar-AE\": { longPressMessage: \"اضغط مطولاً أو اضغط على Alt + السهم لأسفل لفتح القائمة\" },\n \"bg-BG\": {\n longPressMessage:\n \"Натиснете продължително или натиснете Alt+ стрелка надолу, за да отворите менюто\",\n },\n \"cs-CZ\": {\n longPressMessage: \"Dlouhým stiskem nebo stisknutím kláves Alt + šipka dolů otevřete nabídku\",\n },\n \"da-DK\": { longPressMessage: \"Langt tryk eller tryk på Alt + pil ned for at åbne menuen\" },\n \"de-DE\": {\n longPressMessage: \"Drücken Sie lange oder drücken Sie Alt + Nach-unten, um das Menü zu öffnen\",\n },\n \"el-GR\": {\n longPressMessage: \"Πιέστε παρατεταμένα ή πατήστε Alt + κάτω βέλος για να ανοίξετε το μενού\",\n },\n \"en-US\": { longPressMessage: \"Long press or press Alt + ArrowDown to open menu\" },\n \"es-ES\": { longPressMessage: \"Mantenga pulsado o pulse Alt + flecha abajo para abrir el menú\" },\n \"et-EE\": {\n longPressMessage: \"Menüü avamiseks vajutage pikalt või vajutage klahve Alt + allanool\",\n },\n \"fi-FI\": {\n longPressMessage: \"Avaa valikko painamalla pohjassa tai näppäinyhdistelmällä Alt + Alanuoli\",\n },\n \"fr-FR\": {\n longPressMessage:\n \"Appuyez de manière prolongée ou appuyez sur Alt + Flèche vers le bas pour ouvrir le menu.\",\n },\n \"he-IL\": { longPressMessage: \"לחץ לחיצה ארוכה או הקש Alt + ArrowDown כדי לפתוח את התפריט\" },\n \"hr-HR\": {\n longPressMessage:\n \"Dugo pritisnite ili pritisnite Alt + strelicu prema dolje za otvaranje izbornika\",\n },\n \"hu-HU\": {\n longPressMessage:\n \"Nyomja meg hosszan, vagy nyomja meg az Alt + lefele nyíl gombot a menü megnyitásához\",\n },\n \"it-IT\": { longPressMessage: \"Premi a lungo o premi Alt + Freccia giù per aprire il menu\" },\n \"ja-JP\": { longPressMessage: \"長押しまたは Alt+下矢印キーでメニューを開く\" },\n \"ko-KR\": { longPressMessage: \"길게 누르거나 Alt + 아래쪽 화살표를 눌러 메뉴 열기\" },\n \"lt-LT\": {\n longPressMessage:\n \"Norėdami atidaryti meniu, nuspaudę palaikykite arba paspauskite „Alt + ArrowDown“.\",\n },\n \"lv-LV\": {\n longPressMessage:\n \"Lai atvērtu izvēlni, turiet nospiestu vai nospiediet taustiņu kombināciju Alt + lejupvērstā bultiņa\",\n },\n \"nb-NO\": { longPressMessage: \"Langt trykk eller trykk Alt + PilNed for å åpne menyen\" },\n \"nl-NL\": {\n longPressMessage: \"Druk lang op Alt + pijl-omlaag of druk op Alt om het menu te openen\",\n },\n \"pl-PL\": {\n longPressMessage:\n \"Naciśnij i przytrzymaj lub naciśnij klawisze Alt + Strzałka w dół, aby otworzyć menu\",\n },\n \"pt-BR\": {\n longPressMessage: \"Pressione e segure ou pressione Alt + Seta para baixo para abrir o menu\",\n },\n \"pt-PT\": {\n longPressMessage: \"Prima continuamente ou prima Alt + Seta Para Baixo para abrir o menu\",\n },\n \"ro-RO\": {\n longPressMessage: \"Apăsați lung sau apăsați pe Alt + săgeată în jos pentru a deschide meniul\",\n },\n \"ru-RU\": {\n longPressMessage: \"Нажмите и удерживайте или нажмите Alt + Стрелка вниз, чтобы открыть меню\",\n },\n \"sk-SK\": {\n longPressMessage:\n \"Ponuku otvoríte dlhým stlačením alebo stlačením klávesu Alt + klávesu so šípkou nadol\",\n },\n \"sl-SI\": {\n longPressMessage:\n \"Za odprtje menija pritisnite in držite gumb ali pritisnite Alt+puščica navzdol\",\n },\n \"sr-SP\": {\n longPressMessage: \"Dugo pritisnite ili pritisnite Alt + strelicu prema dole da otvorite meni\",\n },\n \"sv-SE\": {\n longPressMessage: \"Håll nedtryckt eller tryck på Alt + pil nedåt för att öppna menyn\",\n },\n \"tr-TR\": { longPressMessage: \"Menüyü açmak için uzun basın veya Alt + Aşağı Ok tuşuna basın\" },\n \"uk-UA\": {\n longPressMessage:\n \"Довго або звичайно натисніть комбінацію клавіш Alt і стрілка вниз, щоб відкрити меню\",\n },\n \"zh-CN\": { longPressMessage: \"长按或按 Alt + 向下方向键以打开菜单\" },\n \"zh-TW\": { longPressMessage: \"長按或按 Alt+向下鍵以開啟功能表\" },\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/menu/useMenuTrigger.ts\n\n/**\n * Provides behavior and accessibility for a menu trigger.\n * Based on @react-aria/menu useMenuTrigger.\n */\n\nimport { createTrackedEffect } from \"solid-js\";\nimport type { JSX } from \"@solidjs/web\";\nimport type { MenuTriggerState, MenuTriggerType } from \"@proyecto-viviana/solid-stately\";\nimport { createId } from \"../ssr\";\nimport { createKeyboard } from \"../interactions/createKeyboard\";\nimport { createLongPress } from \"../interactions/createLongPress\";\nimport { createContextMenu } from \"../interactions/createContextMenu\";\nimport type { CreatePressProps, PressEvent } from \"../interactions/createPress\";\nimport { createStringFormatter } from \"../i18n\";\nimport { onCloseMap } from \"../overlays/createOverlayTrigger\";\nimport { access, attrTrue, focusWithoutScrolling, getEventTarget, mergeProps } from \"../utils\";\nimport type { MaybeAccessor } from \"../utils/reactivity\";\nimport { menuIntlStrings } from \"./intl\";\n\nexport interface AriaMenuTriggerProps {\n /** The type of menu that the trigger opens. */\n type?: \"menu\" | \"listbox\";\n /** Whether the menu trigger is disabled. */\n isDisabled?: boolean;\n /** How the menu is triggered. */\n trigger?: MenuTriggerType;\n /** An ID for the menu. This is a local Solid addition. */\n id?: string;\n}\n\nexport type MenuTriggerAutoFocus = boolean | \"first\" | \"last\";\n\nexport interface MenuTriggerMenuProps extends JSX.HTMLAttributes<HTMLElement> {\n /** Auto-focus strategy forwarded to `createMenu`. */\n autoFocus?: MenuTriggerAutoFocus;\n /** Close handler forwarded to `createMenu`. */\n onClose?: () => void;\n}\n\ninterface MenuTriggerInteractionProps\n extends\n JSX.HTMLAttributes<HTMLElement>,\n Pick<CreatePressProps, \"preventFocusOnPress\" | \"onPressStart\" | \"onPress\"> {}\n\nexport interface MenuTriggerAria {\n /** Props for the menu trigger. */\n menuTriggerProps: MenuTriggerInteractionProps;\n /** Props for the menu. */\n menuProps: MenuTriggerMenuProps;\n}\n\n/** Provides behavior and accessibility for a menu trigger. */\nexport function createMenuTrigger(\n props: MaybeAccessor<AriaMenuTriggerProps>,\n state: MenuTriggerState,\n ref?: () => Element | null,\n): MenuTriggerAria {\n const getProps = () => access(props);\n const menuId = createId(getProps().id);\n const triggerId = createId();\n const stringFormatter = createStringFormatter(menuIntlStrings, \"@react-aria/menu\");\n\n const open = (\n shouldOpen: boolean,\n event: globalThis.KeyboardEvent,\n focusStrategy: \"first\" | \"last\" = \"first\",\n ): boolean => {\n if (!shouldOpen || event.defaultPrevented || getProps().isDisabled) {\n return false;\n }\n\n state.toggle(focusStrategy);\n return true;\n };\n\n const { keyboardProps } = createKeyboard({\n shortcuts: {\n Enter: (event) => open(getProps().trigger !== \"longPress\", event, \"first\"),\n \" \": (event) => open(getProps().trigger !== \"longPress\", event, \"first\"),\n ArrowDown: (event) => open(getProps().trigger !== \"longPress\", event, \"first\"),\n ArrowUp: (event) => open(getProps().trigger !== \"longPress\", event, \"last\"),\n \"Alt+Enter\": (event) => open(getProps().trigger === \"longPress\", event, \"first\"),\n \"Alt+ \": (event) => open(getProps().trigger === \"longPress\", event, \"first\"),\n \"Alt+ArrowDown\": (event) => open(true, event, \"first\"),\n \"Alt+ArrowUp\": (event) => open(true, event, \"last\"),\n },\n });\n\n const { longPressProps } = createLongPress({\n isDisabled: () => Boolean(getProps().isDisabled || getProps().trigger !== \"longPress\"),\n accessibilityDescription: () => stringFormatter().format(\"longPressMessage\"),\n onLongPressStart() {\n state.close();\n },\n onLongPress() {\n state.open(\"first\");\n },\n });\n\n const pressProps: Pick<CreatePressProps, \"preventFocusOnPress\" | \"onPressStart\" | \"onPress\"> = {\n preventFocusOnPress: true,\n onPressStart(event: PressEvent) {\n if (\n event.pointerType !== \"touch\" &&\n event.pointerType !== \"keyboard\" &&\n !getProps().isDisabled\n ) {\n focusWithoutScrolling(event.target as HTMLElement);\n state.open(event.pointerType === \"virtual\" ? \"first\" : null);\n }\n },\n onPress(event: PressEvent) {\n if (event.pointerType === \"touch\" && !getProps().isDisabled) {\n focusWithoutScrolling(event.target as HTMLElement);\n state.toggle();\n }\n },\n };\n\n const { contextMenuProps } = createContextMenu({\n onContextMenu(event) {\n const rect = event.target.getBoundingClientRect();\n state.setPoint({ x: rect.x + event.x, y: rect.y + event.y });\n state.open();\n },\n });\n\n createTrackedEffect(() => {\n const _s2Cleanups: Array<() => void> = [];\n\n if (\n !state.isOpen() ||\n getProps().trigger !== \"contextMenu\" ||\n typeof document === \"undefined\"\n ) {\n return;\n }\n\n const onMouseDown = (event: MouseEvent) => {\n if (\n (event.button === 2 || (event.button === 0 && event.ctrlKey)) &&\n getEventTarget(event) === document.body\n ) {\n state.close();\n }\n };\n\n document.addEventListener(\"mousedown\", onMouseDown);\n _s2Cleanups.push(() => document.removeEventListener(\"mousedown\", onMouseDown));\n\n return () => {\n for (const c of _s2Cleanups) c();\n };\n });\n\n createTrackedEffect(() => {\n const element = ref?.();\n if (element) {\n onCloseMap.set(element, state.close);\n }\n });\n\n return {\n get menuTriggerProps() {\n const type = getProps().type ?? \"menu\";\n const trigger = getProps().trigger ?? \"press\";\n const baseProps: MenuTriggerInteractionProps = {\n \"aria-haspopup\": type === \"menu\" ? \"menu\" : \"listbox\",\n \"aria-expanded\": state.isOpen() ? \"true\" : \"false\",\n \"aria-controls\": state.isOpen() ? menuId : undefined,\n \"aria-disabled\": attrTrue(getProps().isDisabled),\n id: triggerId,\n };\n\n if (trigger === \"contextMenu\") {\n return mergeProps(\n {\n ...baseProps,\n \"aria-haspopup\": undefined,\n \"aria-expanded\": undefined,\n \"aria-controls\": undefined,\n },\n contextMenuProps,\n ) as MenuTriggerInteractionProps;\n }\n\n return mergeProps(\n baseProps,\n trigger === \"longPress\" ? longPressProps : pressProps,\n keyboardProps,\n ) as MenuTriggerInteractionProps;\n },\n get menuProps() {\n return {\n id: menuId,\n \"aria-labelledby\": triggerId,\n autoFocus: state.focusStrategy() || true,\n onClose: state.close,\n };\n },\n };\n}\n"],"mappings":"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"}