@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
@@ -0,0 +1 @@
1
+ {"version":3,"file":"dom.jsx","names":[],"sources":["../../src/utils/platform.ts","../../src/utils/events.ts","../../src/interactions/createInteractionModality.ts","../../src/utils/runAfterTransition.ts","../../src/utils/focus.ts","../../src/utils/dom.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/utils/platform.ts\n\n/**\n * Platform detection utilities.\n * Ported from packages/react-aria/src/utils/platform.ts.\n */\n\ninterface NavigatorWithUserAgentData extends Navigator {\n userAgentData?: {\n platform?: string;\n };\n}\n\nfunction getNavigator(): NavigatorWithUserAgentData | null {\n if (typeof window === \"undefined\" || window.navigator == null) return null;\n return window.navigator as NavigatorWithUserAgentData;\n}\n\nfunction testPlatform(re: RegExp): boolean {\n const nav = getNavigator();\n if (!nav) return false;\n return re.test(nav.platform || nav.userAgentData?.platform || \"\");\n}\n\nfunction testUserAgent(re: RegExp): boolean {\n const nav = getNavigator();\n return nav ? re.test(nav.userAgent) : false;\n}\n\nexport function isMac(): boolean {\n return testPlatform(/^Mac/i);\n}\n\nexport function isIPhone(): boolean {\n return testPlatform(/^iPhone/i);\n}\n\nexport function isIPad(): boolean {\n return testPlatform(/^iPad/i) || (isMac() && navigator.maxTouchPoints > 1);\n}\n\nexport function isIOS(): boolean {\n return isIPhone() || isIPad();\n}\n\nexport function isAppleDevice(): boolean {\n return isMac() || isIOS();\n}\n\nexport function isWebKit(): boolean {\n return testUserAgent(/AppleWebKit/i) && !isChrome();\n}\n\nexport function isChrome(): boolean {\n return testUserAgent(/Chrome/i);\n}\n\nexport function isAndroid(): boolean {\n return testUserAgent(/Android/i);\n}\n\nexport function isFirefox(): boolean {\n return testUserAgent(/Firefox/i);\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/*\n * Copyright 2022 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/utils.ts\n// Ported to SolidJS for Proyecto Viviana; based on packages/react-aria/src/utils/chain.ts\n// Ported to SolidJS for Proyecto Viviana; based on packages/react-aria/src/utils/isVirtualEvent.ts\n\n/**\n * Event utilities for detecting virtual clicks and event handling.\n * Based on these pinned React Aria sources:\n * - packages/react-aria/src/utils/isVirtualEvent.ts\n * - packages/react-aria/src/utils/chain.ts\n * - packages/react-aria/src/interactions/utils.ts\n *\n * createMouseEvent is a local event adapter.\n */\n\nimport { isAndroid } from \"./platform\";\n\n/**\n * Checks if a click event was generated from a virtual source like a screen reader.\n * Virtual clicks typically have detail of 0 and may have zero coordinates.\n */\nexport function isVirtualClick(event: MouseEvent | PointerEvent): boolean {\n // JAWS/NVDA with Firefox.\n if ((event as PointerEvent).pointerType === \"\" && event.isTrusted) {\n return true;\n }\n\n // Android TalkBack's detail value varies depending on the event listener providing the event.\n // If pointerType is defined, event is from a click listener.\n if (isAndroid() && (event as PointerEvent).pointerType) {\n return event.type === \"click\" && (event as MouseEvent).buttons === 1;\n }\n\n return event.detail === 0 && !(event as PointerEvent).pointerType;\n}\n\n/**\n * Checks if a pointer event was generated by a virtual source.\n * iOS VoiceOver fires pointer events with incorrect coordinates.\n * These events have zero width/height.\n */\nexport function isVirtualPointerEvent(event: PointerEvent): boolean {\n // If the pointer size is zero, then we assume it's from a screen reader.\n // Android TalkBack double tap will sometimes return a event with width and height of 1\n // and pointerType === 'mouse' so we need to check for a specific combination of event attributes.\n // Cannot use \"event.pressure === 0\" as the sole check due to Safari pointer events always returning pressure === 0\n // instead of .5, see https://bugs.webkit.org/show_bug.cgi?id=206216. event.pointerType === 'mouse' is to distingush\n // Talkback double tap from Windows Firefox touch screen press\n return (\n (!isAndroid() && event.width === 0 && event.height === 0) ||\n (isAndroid() &&\n event.width === 1 &&\n event.height === 1 &&\n event.pressure === 0 &&\n event.detail === 0 &&\n event.pointerType === \"mouse\")\n );\n}\n\n/**\n * Creates a synthetic mouse event for programmatic clicking.\n */\nexport function createMouseEvent(type: string, nativeEvent?: Event): MouseEvent {\n const init: MouseEventInit = {\n bubbles: true,\n cancelable: true,\n view: window,\n };\n\n // Copy properties from the native event if provided\n if (nativeEvent) {\n const e = nativeEvent as MouseEvent;\n init.screenX = e.screenX;\n init.screenY = e.screenY;\n init.clientX = e.clientX;\n init.clientY = e.clientY;\n init.ctrlKey = e.ctrlKey;\n init.shiftKey = e.shiftKey;\n init.altKey = e.altKey;\n init.metaKey = e.metaKey;\n init.button = e.button;\n init.buttons = e.buttons;\n init.relatedTarget = e.relatedTarget;\n }\n\n return new MouseEvent(type, init);\n}\n\n/**\n * Creates a chain of event handlers that calls each in sequence.\n */\nexport function chain<T extends (...args: any[]) => any>(\n ...callbacks: (T | undefined | null)[]\n): T {\n return ((...args: Parameters<T>) => {\n for (const callback of callbacks) {\n if (typeof callback === \"function\") {\n callback(...args);\n }\n }\n }) as T;\n}\n\n/**\n * Sets the target property on an event object.\n * Used for synthetic events where target needs to be modified.\n */\nexport function setEventTarget<T extends Event>(event: T, target: EventTarget): void {\n Object.defineProperty(event, \"target\", {\n value: target,\n writable: false,\n configurable: true,\n });\n Object.defineProperty(event, \"currentTarget\", {\n value: target,\n writable: false,\n configurable: true,\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/useFocusVisible.ts\n\n/**\n * createInteractionModality + focus-visible tracking for solidaria\n *\n * Port of @react-aria/interactions useFocusVisible/useInteractionModality.\n * Tracks the current interaction modality (keyboard, pointer, or virtual) and\n * provides focus-visible state and listeners.\n */\n\nimport { createSignal, createTrackedEffect } from \"solid-js\";\nimport type { Accessor } from \"solid-js\";\nimport { isServer } from \"@solidjs/web\";\nimport { getEventTarget, getOwnerDocument, getOwnerWindow, openLink } from \"../utils/dom\";\nimport { isVirtualClick } from \"../utils/events\";\nimport { isMac } from \"../utils/platform\";\n\nexport type Modality = \"keyboard\" | \"pointer\" | \"virtual\";\nexport type PointerType = \"mouse\" | \"pen\" | \"touch\" | \"keyboard\" | \"virtual\";\ntype HandlerEvent = PointerEvent | MouseEvent | KeyboardEvent | FocusEvent | null;\ntype Handler = (modality: Modality, e: HandlerEvent) => void;\n\nexport type FocusVisibleHandler = (isFocusVisible: boolean) => void;\n\nexport interface FocusVisibleProps {\n /** Whether the element is a text input. */\n isTextInput?: boolean;\n /** Whether the element will be auto focused. */\n autoFocus?: boolean;\n}\n\nexport interface FocusVisibleResult {\n /** Whether keyboard focus is visible globally. */\n isFocusVisible: Accessor<boolean>;\n}\n\nexport interface InteractionModalityResult {\n /** The current interaction modality. */\n modality: Accessor<Modality | null>;\n}\n\n// react-aria keeps `currentModality` in a module `let` that the same turn can\n// read (useFocusVisible.ts). `currentModalityValue` is that let: every read\n// returns it. The signal is a notification counter, not a copy of the word.\n// `writeModality` updates the let. `publishModality` updates the let and bumps\n// the counter. Bump where upstream calls `triggerChangeHandlers`\n// (keyboard, pointerdown/mousedown, virtual focus, setInteractionModality)\n// and on handleClickEvent's virtual write. That click handler\n// (useFocusVisible.ts:105-111) stays silent because React re-renders after\n// the click; #612 exists because Solid must notify instead. pointermove and\n// pointerup write the let only. Listener notification stays on\n// `triggerChangeHandlers`. `ownedWrite`: a module DOM listener and\n// `setInteractionModality` can write re-entrantly from an owned scope.\n// `untrack` stops tracking; it does not exempt the write.\nlet currentModalityValue: Modality | null = null;\nconst [modalityEpoch, bumpModalityEpoch] = createSignal(0, {\n ownedWrite: true,\n});\nlet currentPointerType: PointerType = \"keyboard\";\n\nfunction writeModality(next: Modality): void {\n currentModalityValue = next;\n}\n\nfunction publishModality(next: Modality): void {\n currentModalityValue = next;\n bumpModalityEpoch((n) => n + 1);\n}\n\nconst changeHandlers = new Set<Handler>();\n\nexport let hasSetupGlobalListeners: Map<\n Window,\n { focus: typeof window.HTMLElement.prototype.focus }\n> = new Map();\nlet hasEventBeforeFocus = false;\nlet hasBlurredWindowRecently = false;\n/** @private Set by `preventFocus` so programmatic refocus is not treated as a modality change. */\nexport let ignoreFocusEvent = false;\n\n/** @private */\nexport function setIgnoreFocusEvent(value: boolean): void {\n ignoreFocusEvent = value;\n}\n\nconst FOCUS_VISIBLE_INPUT_KEYS: Record<string, boolean> = {\n Tab: true,\n Escape: true,\n};\n\nfunction triggerChangeHandlers(modality: Modality, e: HandlerEvent) {\n for (const handler of changeHandlers) {\n handler(modality, e);\n }\n}\n\nfunction isValidKey(e: KeyboardEvent) {\n return !(\n e.metaKey ||\n (!isMac() && e.altKey) ||\n e.ctrlKey ||\n e.key === \"Control\" ||\n e.key === \"Shift\" ||\n e.key === \"Meta\"\n );\n}\n\nfunction handleKeyboardEvent(e: KeyboardEvent) {\n hasEventBeforeFocus = true;\n const isOpening = (openLink as { isOpening?: boolean }).isOpening;\n if (!isOpening && isValidKey(e)) {\n publishModality(\"keyboard\");\n currentPointerType = \"keyboard\";\n triggerChangeHandlers(\"keyboard\", e);\n }\n}\n\nfunction handlePointerEvent(e: PointerEvent | MouseEvent) {\n currentPointerType = \"pointerType\" in e ? (e.pointerType as PointerType) : \"mouse\";\n // useFocusVisible.ts:94-101. Move and up write the let. Down is the notify.\n if (e.type === \"mousedown\" || e.type === \"pointerdown\") {\n publishModality(\"pointer\");\n hasEventBeforeFocus = true;\n triggerChangeHandlers(\"pointer\", e);\n } else {\n writeModality(\"pointer\");\n }\n}\n\nfunction handleClickEvent(e: MouseEvent) {\n // react-aria 3.52.0 useFocusVisible.ts:105-111. No isTrusted guard and no\n // listener notification: keyboards, AT, and element.click() are virtual\n // clicks (detail === 0). React re-renders after the click, so that silent\n // write is enough there. Solid must notify tracked readers instead (#612).\n const isOpening = (openLink as { isOpening?: boolean }).isOpening;\n if (!isOpening && isVirtualClick(e)) {\n hasEventBeforeFocus = true;\n publishModality(\"virtual\");\n currentPointerType = \"virtual\";\n }\n}\n\nfunction handleFocusEvent(e: FocusEvent) {\n if (ignoreFocusEvent) {\n return;\n }\n\n const target = getEventTarget(e);\n const ownerWindow = getOwnerWindow(target);\n const ownerDocument = getOwnerDocument(target);\n\n // When the window regains focus, the browser restores focus to the element that was focused\n // before, firing a focus event the user did not initiate. handleWindowBlur sets\n // hasBlurredWindowRecently so restored focus doesn't switch to virtual modality below, but\n // Safari fires the window/element focus pair twice when returning to a tab or app and the first\n // element focus event clears the flag, so re-arm it whenever the window itself is focused.\n // Like handleWindowBlur, this intentionally doesn't check isTrusted.\n if (target === ownerWindow) {\n hasBlurredWindowRecently = true;\n return;\n }\n\n // Firefox fires two extra focus events when the user first clicks into an iframe:\n // first on the window, then on the document. We ignore these events so they don't\n // cause keyboard focus rings to appear.\n if (target === ownerDocument || !e.isTrusted) {\n return;\n }\n\n // If a focus event occurs without a preceding keyboard or pointer event, switch to virtual modality.\n // This occurs, for example, when navigating a form with the next/previous buttons on iOS.\n if (!hasEventBeforeFocus && !hasBlurredWindowRecently) {\n publishModality(\"virtual\");\n currentPointerType = \"virtual\";\n triggerChangeHandlers(\"virtual\", e);\n }\n\n hasEventBeforeFocus = false;\n hasBlurredWindowRecently = false;\n}\n\nfunction handleWindowBlur() {\n if (ignoreFocusEvent) {\n return;\n }\n\n hasEventBeforeFocus = false;\n hasBlurredWindowRecently = true;\n}\n\nfunction setupGlobalFocusEvents(element?: HTMLElement | null) {\n if (typeof window === \"undefined\" || typeof document === \"undefined\") {\n return;\n }\n\n const windowObject = getOwnerWindow(element);\n if (hasSetupGlobalListeners.get(windowObject)) {\n return;\n }\n\n const documentObject = getOwnerDocument(element);\n\n // Programmatic focus() calls shouldn't affect the current input modality, so we\n // patch HTMLElement.prototype.focus to record that an event preceded the focus.\n // Use Reflect.defineProperty (not assignment) so this works even when `focus` is\n // currently a getter-only accessor — e.g. when a test library's setup() has\n // instrumented it. Plain assignment throws in that case; Reflect.defineProperty\n // returns false rather than throwing (and succeeds on the configurable prototype).\n const originalFocus = windowObject.HTMLElement.prototype.focus;\n Reflect.defineProperty(windowObject.HTMLElement.prototype, \"focus\", {\n configurable: true,\n writable: true,\n value: function () {\n hasEventBeforeFocus = true;\n originalFocus.apply(this, arguments as unknown as [options?: FocusOptions | undefined]);\n },\n });\n\n documentObject.addEventListener(\"keydown\", handleKeyboardEvent, true);\n documentObject.addEventListener(\"keyup\", handleKeyboardEvent, true);\n documentObject.addEventListener(\"click\", handleClickEvent, true);\n\n windowObject.addEventListener(\"focus\", handleFocusEvent, true);\n windowObject.addEventListener(\"blur\", handleWindowBlur, false);\n\n if (typeof windowObject.PointerEvent !== \"undefined\") {\n documentObject.addEventListener(\"pointerdown\", handlePointerEvent, true);\n documentObject.addEventListener(\"pointermove\", handlePointerEvent, true);\n documentObject.addEventListener(\"pointerup\", handlePointerEvent, true);\n } else {\n documentObject.addEventListener(\"mousedown\", handlePointerEvent, true);\n documentObject.addEventListener(\"mousemove\", handlePointerEvent, true);\n documentObject.addEventListener(\"mouseup\", handlePointerEvent, true);\n }\n\n windowObject.addEventListener(\n \"beforeunload\",\n () => {\n tearDownWindowFocusTracking(element);\n },\n { once: true },\n );\n\n hasSetupGlobalListeners.set(windowObject, { focus: originalFocus });\n}\n\nfunction tearDownWindowFocusTracking(element?: HTMLElement | null, loadListener?: () => void) {\n if (typeof window === \"undefined\" || typeof document === \"undefined\") {\n return;\n }\n\n const windowObject = getOwnerWindow(element);\n const documentObject = getOwnerDocument(element);\n\n if (loadListener) {\n documentObject.removeEventListener(\"DOMContentLoaded\", loadListener);\n }\n\n if (!hasSetupGlobalListeners.has(windowObject)) {\n return;\n }\n\n const entry = hasSetupGlobalListeners.get(windowObject)!;\n // Mirror the setup path: defineProperty (not assignment) restores the original\n // focus even if it had been replaced with a getter-only accessor.\n Reflect.defineProperty(windowObject.HTMLElement.prototype, \"focus\", {\n configurable: true,\n writable: true,\n value: entry.focus,\n });\n\n documentObject.removeEventListener(\"keydown\", handleKeyboardEvent, true);\n documentObject.removeEventListener(\"keyup\", handleKeyboardEvent, true);\n documentObject.removeEventListener(\"click\", handleClickEvent, true);\n\n windowObject.removeEventListener(\"focus\", handleFocusEvent, true);\n windowObject.removeEventListener(\"blur\", handleWindowBlur, false);\n\n if (typeof windowObject.PointerEvent !== \"undefined\") {\n documentObject.removeEventListener(\"pointerdown\", handlePointerEvent, true);\n documentObject.removeEventListener(\"pointermove\", handlePointerEvent, true);\n documentObject.removeEventListener(\"pointerup\", handlePointerEvent, true);\n } else {\n documentObject.removeEventListener(\"mousedown\", handlePointerEvent, true);\n documentObject.removeEventListener(\"mousemove\", handlePointerEvent, true);\n documentObject.removeEventListener(\"mouseup\", handlePointerEvent, true);\n }\n\n hasSetupGlobalListeners.delete(windowObject);\n}\n\n/**\n * Adds a window (i.e. iframe) to the list of windows that are being tracked for focus visible.\n */\nexport function addWindowFocusTracking(element?: HTMLElement | null): () => void {\n const documentObject = getOwnerDocument(element);\n let loadListener: (() => void) | undefined;\n\n if (documentObject.readyState !== \"loading\") {\n setupGlobalFocusEvents(element);\n } else {\n loadListener = () => {\n setupGlobalFocusEvents(element);\n };\n documentObject.addEventListener(\"DOMContentLoaded\", loadListener);\n }\n\n return () => tearDownWindowFocusTracking(element, loadListener);\n}\n\nexport function setupGlobalFocusListeners(): void {\n addWindowFocusTracking();\n}\n\nif (typeof document !== \"undefined\") {\n addWindowFocusTracking();\n}\n\nfunction focusVisibleSnapshot(): boolean {\n return currentModalityValue !== \"pointer\";\n}\n\n/**\n * If true, keyboard focus is visible. The only tracked read of modality:\n * useOption's render predicate re-reads this on every render.\n */\nexport function isFocusVisible(): boolean {\n modalityEpoch();\n return focusVisibleSnapshot();\n}\n\n/**\n * Gets the current interaction modality.\n * The module let, not the signal. An effect that calls this does not re-run\n * when modality changes; upstream's query is a plain variable.\n */\nexport function getInteractionModality(): Modality | null {\n return currentModalityValue;\n}\n\n/**\n * Sets the current interaction modality.\n */\nexport function setInteractionModality(modality: Modality): void {\n publishModality(modality);\n currentPointerType = modality === \"pointer\" ? \"mouse\" : modality;\n triggerChangeHandlers(modality, null);\n}\n\n/**\n * Gets the current pointer type. Separate from modality; this let is never\n * the modality signal.\n */\nexport function getPointerType(): PointerType {\n return currentPointerType;\n}\n\nfunction isKeyboardFocusEvent(isTextInput: boolean, modality: Modality, e: HandlerEvent): boolean {\n if (!e) {\n return true;\n }\n\n const target = \"target\" in e ? (e.target as Element | null) : null;\n const ownerDocument = target ? getOwnerDocument(target) : document;\n const ownerWindow = target ? getOwnerWindow(target) : window;\n\n const IHTMLInputElement = ownerWindow.HTMLInputElement;\n const IHTMLTextAreaElement = ownerWindow.HTMLTextAreaElement;\n const IHTMLElement = ownerWindow.HTMLElement;\n const IKeyboardEvent = ownerWindow.KeyboardEvent;\n\n const nonTextInputTypes = new Set([\n \"checkbox\",\n \"radio\",\n \"range\",\n \"color\",\n \"file\",\n \"image\",\n \"button\",\n \"submit\",\n \"reset\",\n ]);\n\n isTextInput =\n isTextInput ||\n (ownerDocument.activeElement instanceof IHTMLInputElement &&\n !nonTextInputTypes.has(ownerDocument.activeElement.type)) ||\n ownerDocument.activeElement instanceof IHTMLTextAreaElement ||\n (ownerDocument.activeElement instanceof IHTMLElement &&\n ownerDocument.activeElement.isContentEditable);\n\n return !(\n isTextInput &&\n modality === \"keyboard\" &&\n e instanceof IKeyboardEvent &&\n !FOCUS_VISIBLE_INPUT_KEYS[e.key]\n );\n}\n\n/**\n * Listens for trigger change and reports if focus is visible.\n */\nexport function createFocusVisibleListener(\n handler: FocusVisibleHandler,\n opts?: { isTextInput?: boolean; enabled?: boolean },\n): () => void {\n setupGlobalFocusEvents();\n if (opts?.enabled === false) {\n return () => {};\n }\n const listener: Handler = (modality: Modality, e: HandlerEvent) => {\n if (!isKeyboardFocusEvent(!!opts?.isTextInput, modality, e)) {\n return;\n }\n // Upstream's listener read is a plain variable (useFocusVisible.ts:424); the listener runs synchronously inside setInteractionModality, which an effect may call.\n handler(focusVisibleSnapshot());\n };\n changeHandlers.add(listener);\n return () => {\n changeHandlers.delete(listener);\n };\n}\n\n/**\n * Manages focus visible state for the page.\n */\nexport function createFocusVisible(props: FocusVisibleProps = {}): FocusVisibleResult {\n // autoFocus seeds the initial value once; isTextInput is read inside the effect\n // so it re-subscribes reactively (a top-level destructure would freeze it — the\n // body runs once). Mirrors upstream useFocusVisible's [isTextInput] dep.\n // The let, not isFocusVisible(). During hydration that signal can still hold\n // an unflushed write; reading it markLateLinker's the computing owner\n // (REACTIVE_MISSED_WAKE) and the surrounding memo re-runs, so the second\n // span misses its hydration key. The let is the same answer, written\n // synchronously.\n const [isVisible, setIsVisible] = createSignal<boolean>(\n isServer ? false : props.autoFocus || focusVisibleSnapshot(),\n );\n\n // Reserve the effect owner during SSR too; its callback runs only on client.\n createTrackedEffect(() => {\n const _s2Cleanups: Array<() => void> = [];\n\n const cleanup = createFocusVisibleListener(setIsVisible, { isTextInput: props.isTextInput });\n _s2Cleanups.push(cleanup);\n\n return () => {\n for (const c of _s2Cleanups) c();\n };\n });\n\n return { isFocusVisible: isVisible };\n}\n\n/**\n * Tracks the current interaction modality.\n */\nexport function createInteractionModality(): InteractionModalityResult {\n const [modality, setModality] = createSignal<Modality | null>(\n isServer ? null : currentModalityValue,\n );\n\n // Register the owner on both sides; only the browser subscribes to events.\n createTrackedEffect(() => {\n if (isServer) return;\n const _s2Cleanups: Array<() => void> = [];\n\n setupGlobalFocusEvents();\n const handler: Handler = (newModality: Modality) => {\n setModality(newModality);\n };\n changeHandlers.add(handler);\n _s2Cleanups.push(() => {\n changeHandlers.delete(handler);\n });\n\n return () => {\n for (const c of _s2Cleanups) c();\n };\n });\n\n return {\n modality,\n };\n}\n\n/**\n * Adds a listener for modality changes.\n */\nexport function addModalityListener(handler: (modality: Modality) => void): () => void {\n const wrapped: Handler = (modality) => {\n handler(modality);\n };\n changeHandlers.add(wrapped);\n return () => {\n changeHandlers.delete(wrapped);\n };\n}\n\n/**\n * Hook to track whether the user is currently interacting with the keyboard.\n */\nexport function useIsKeyboardFocused(): Accessor<boolean> {\n const { modality } = createInteractionModality();\n return () => modality() === \"keyboard\";\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/utils/runAfterTransition.ts\n\n/**\n * Run a callback after in-flight CSS transitions end.\n * Ported from packages/react-aria/src/utils/runAfterTransition.ts.\n *\n * Track properties per element rather than a count: Chrome can fire both\n * transitionend and transitioncancel for the same property.\n */\n\nimport { getEventTarget } from \"./dom\";\n\nconst transitionsByElement = new Map<EventTarget, Set<string>>();\nconst transitionCallbacks = new Set<() => void>();\n\nfunction setupGlobalEvents() {\n if (typeof window === \"undefined\" || typeof document === \"undefined\" || !document.body) {\n return;\n }\n\n function isTransitionEvent(event: Event): event is TransitionEvent {\n return \"propertyName\" in event;\n }\n\n const onTransitionStart = (e: Event) => {\n const eventTarget = getEventTarget(e);\n if (!isTransitionEvent(e) || !eventTarget) {\n return;\n }\n\n let transitions = transitionsByElement.get(eventTarget);\n if (!transitions) {\n transitions = new Set();\n transitionsByElement.set(eventTarget, transitions);\n eventTarget.addEventListener(\"transitioncancel\", onTransitionEnd, {\n once: true,\n });\n }\n\n transitions.add(e.propertyName);\n };\n\n const onTransitionEnd = (e: Event) => {\n const eventTarget = getEventTarget(e);\n if (!isTransitionEvent(e) || !eventTarget) {\n return;\n }\n\n const properties = transitionsByElement.get(eventTarget);\n if (!properties) {\n return;\n }\n\n properties.delete(e.propertyName);\n\n if (properties.size === 0) {\n eventTarget.removeEventListener(\"transitioncancel\", onTransitionEnd);\n transitionsByElement.delete(eventTarget);\n }\n\n if (transitionsByElement.size === 0) {\n for (const cb of transitionCallbacks) {\n cb();\n }\n transitionCallbacks.clear();\n }\n };\n\n document.body.addEventListener(\"transitionrun\", onTransitionStart);\n document.body.addEventListener(\"transitionend\", onTransitionEnd);\n}\n\nif (typeof document !== \"undefined\") {\n if (document.readyState !== \"loading\") {\n setupGlobalEvents();\n } else {\n document.addEventListener(\"DOMContentLoaded\", setupGlobalEvents);\n }\n}\n\nfunction cleanupDetachedElements() {\n for (const [eventTarget] of transitionsByElement) {\n if (\"isConnected\" in eventTarget && !eventTarget.isConnected) {\n transitionsByElement.delete(eventTarget);\n }\n }\n}\n\nexport function runAfterTransition(fn: () => void): void {\n const win = typeof window !== \"undefined\" ? window : undefined;\n if (!win || typeof win.requestAnimationFrame !== \"function\") {\n fn();\n return;\n }\n\n // Wait one frame to see if an animation starts, e.g. a transition on mount.\n win.requestAnimationFrame(() => {\n cleanupDetachedElements();\n if (transitionsByElement.size === 0) {\n fn();\n } else {\n transitionCallbacks.add(fn);\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/*\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/focusSafely.ts\n// Ported to SolidJS for Proyecto Viviana; based on packages/react-aria/src/interactions/utils.ts\n// Ported to SolidJS for Proyecto Viviana; based on packages/react-aria/src/utils/focusWithoutScrolling.ts\n\n/**\n * Focus management utilities.\n * Based on these pinned React Aria sources:\n * - packages/react-aria/src/utils/focusWithoutScrolling.ts\n * - packages/react-aria/src/interactions/utils.ts\n * - packages/react-aria/src/interactions/focusSafely.ts\n *\n * runAfterPaint and the focusVisible option are local Solid adapters.\n */\n\nimport {\n getInteractionModality,\n setIgnoreFocusEvent,\n} from \"../interactions/createInteractionModality\";\nimport {\n getActiveElement,\n getEventTarget,\n getOwnerDocument,\n getOwnerWindow,\n isFocusable,\n isShadowRoot,\n nodeContains,\n} from \"./dom\";\nimport { runAfterTransition } from \"./runAfterTransition\";\n\n/**\n * Extra `element.focus()` options besides `preventScroll`, which this helper\n * always sets. `focusVisible` is the HTML focus option that requests CSS\n * `:focus-visible` (Chrome 131+); ignored by browsers that don't implement it.\n */\nexport type FocusWithoutScrollingOptions = Pick<FocusOptions, \"focusVisible\">;\n\n/**\n * Focuses an element without scrolling the page.\n * Uses preventScroll option with fallback for older browsers.\n */\nexport function focusWithoutScrolling(\n element: HTMLElement | null,\n options?: FocusWithoutScrollingOptions,\n): void {\n if (!element) return;\n\n const focusOptions: FocusOptions = { preventScroll: true, ...options };\n\n try {\n element.focus(focusOptions);\n } catch {\n // Fallback for browsers that don't support preventScroll\n const scrollableElements = getScrollableAncestors(element);\n const scrollPositions = scrollableElements.map((el) => ({\n element: el,\n scrollTop: el.scrollTop,\n scrollLeft: el.scrollLeft,\n }));\n\n element.focus(options);\n\n for (const { element: el, scrollTop, scrollLeft } of scrollPositions) {\n el.scrollTop = scrollTop;\n el.scrollLeft = scrollLeft;\n }\n }\n}\n\n/**\n * Gets all scrollable ancestors of an element.\n */\nfunction getScrollableAncestors(element: Element): Element[] {\n const ancestors: Element[] = [];\n let parent = element.parentElement;\n\n while (parent) {\n const style = getComputedStyle(parent);\n const overflowY = style.overflowY;\n const overflowX = style.overflowX;\n\n if (\n overflowY === \"auto\" ||\n overflowY === \"scroll\" ||\n overflowX === \"auto\" ||\n overflowX === \"scroll\"\n ) {\n ancestors.push(parent);\n }\n\n parent = parent.parentElement;\n }\n\n // Also include the document scrolling element\n const doc = getOwnerDocument(element);\n ancestors.push(doc.documentElement);\n\n return ancestors;\n}\n\n/**\n * Run `fn` after paint. Mirrors React `useEffect` relative to `preventFocus`,\n * which holds focus with capture listeners until the next animation frame.\n * Overlay auto-focus that runs in the same flush as the opening click is yanked\n * back onto the trigger; this delay is the Solid equivalent of upstream's\n * `useEffect` auto-focus.\n */\nexport function runAfterPaint(fn: () => void, doc?: Document): () => void {\n const ownerDoc = doc ?? (typeof document !== \"undefined\" ? document : undefined);\n const win = ownerDoc\n ? (ownerDoc.defaultView ?? undefined)\n : typeof window !== \"undefined\"\n ? window\n : undefined;\n if (!win) {\n fn();\n return () => {};\n }\n\n // Window timers return `number` (DOM); `types: [\"node\"]` types global\n // `setTimeout` as `NodeJS.Timeout`. Hold the union so both views compile.\n let timeoutId: ReturnType<typeof setTimeout> | number | undefined;\n let cancelled = false;\n\n const run = () => {\n if (cancelled) return;\n fn();\n };\n\n const scheduleTimeout = () => {\n if (cancelled) return;\n timeoutId = win.setTimeout(run, 0);\n };\n\n let frameId: number | undefined;\n if (typeof win.requestAnimationFrame === \"function\") {\n frameId = win.requestAnimationFrame(scheduleTimeout);\n } else {\n scheduleTimeout();\n }\n\n return () => {\n cancelled = true;\n if (frameId != null) {\n win.cancelAnimationFrame(frameId);\n }\n if (timeoutId !== undefined) {\n win.clearTimeout(timeoutId);\n }\n };\n}\n\n/**\n * Prevents focus from moving to a new element temporarily.\n * Used when clicking on a button that shouldn't steal focus.\n */\nexport function preventFocus(target: Element | null): (() => void) | undefined {\n // The browser will focus the nearest focusable ancestor of our target.\n while (target && !isFocusable(target, { skipVisibilityCheck: true })) {\n target = target.parentElement;\n }\n\n const ownerWindow = getOwnerWindow(target);\n const activeElement = getActiveElement(ownerWindow.document) as HTMLElement | null;\n if (!activeElement || activeElement === target) {\n return undefined;\n }\n\n // Listen on the target's root (document or shadow root) so we catch focus events inside\n // shadow DOM; they do not reach the main window.\n const targetRoot = target?.getRootNode();\n const root = targetRoot != null && isShadowRoot(targetRoot) ? targetRoot : ownerWindow;\n\n // Focus is \"moving to target\" when it moves to the button or to a descendant of the button\n // (e.g. SVG icon)\n const isFocusMovingToTarget = (focusTarget: Element | null) =>\n focusTarget === target || (focusTarget != null && nodeContains(target, focusTarget));\n // Blur/focusout events have their target as the element losing focus. Stop propagation when\n // that is the previously focused element (activeElement) or a descendant (e.g. in shadow DOM).\n const isBlurFromActiveElement = (eventTarget: Element | null) =>\n eventTarget === activeElement ||\n (activeElement != null && eventTarget != null && nodeContains(activeElement, eventTarget));\n\n setIgnoreFocusEvent(true);\n let isRefocusing = false;\n const onBlur: EventListener = (e) => {\n if (isBlurFromActiveElement(getEventTarget(e) as Element) || isRefocusing) {\n e.stopImmediatePropagation();\n }\n };\n\n const onFocusOut: EventListener = (e) => {\n if (isBlurFromActiveElement(getEventTarget(e) as Element) || isRefocusing) {\n e.stopImmediatePropagation();\n\n // If there was no focusable ancestor, we don't expect a focus event.\n // Re-focus the original active element here.\n if (!target && !isRefocusing) {\n isRefocusing = true;\n focusWithoutScrolling(activeElement);\n cleanup();\n }\n }\n };\n\n const onFocus: EventListener = (e) => {\n if (isFocusMovingToTarget(getEventTarget(e) as Element) || isRefocusing) {\n e.stopImmediatePropagation();\n }\n };\n\n const onFocusIn: EventListener = (e) => {\n if (isFocusMovingToTarget(getEventTarget(e) as Element) || isRefocusing) {\n e.stopImmediatePropagation();\n\n if (!isRefocusing) {\n isRefocusing = true;\n focusWithoutScrolling(activeElement);\n cleanup();\n }\n }\n };\n\n root.addEventListener(\"blur\", onBlur, true);\n root.addEventListener(\"focusout\", onFocusOut, true);\n root.addEventListener(\"focusin\", onFocusIn, true);\n root.addEventListener(\"focus\", onFocus, true);\n\n const raf = ownerWindow.requestAnimationFrame(cleanup);\n\n function cleanup() {\n ownerWindow.cancelAnimationFrame(raf);\n root.removeEventListener(\"blur\", onBlur, true);\n root.removeEventListener(\"focusout\", onFocusOut, true);\n root.removeEventListener(\"focusin\", onFocusIn, true);\n root.removeEventListener(\"focus\", onFocus, true);\n setIgnoreFocusEvent(false);\n isRefocusing = false;\n }\n\n return cleanup;\n}\n\n/**\n * Focus an element while avoiding page scroll and VoiceOver/iOS transition\n * side effects. Port of @react-aria/interactions focusSafely: virtual-modality\n * focus waits until in-flight CSS transitions end so contain-restore after a\n * programmatic focus (Playwright `.focus()`, screen readers) does not beat a\n * following pointermove.\n */\nexport function focusSafely(\n element: HTMLElement | null,\n options?: FocusWithoutScrollingOptions,\n): void {\n if (!element?.isConnected) {\n return;\n }\n\n const ownerDocument = getOwnerDocument(element);\n if (getInteractionModality() === \"virtual\") {\n const lastFocusedElement = getActiveElement(ownerDocument);\n runAfterTransition(() => {\n const activeElement = getActiveElement(ownerDocument);\n if (\n (activeElement === lastFocusedElement || activeElement === ownerDocument.body) &&\n element.isConnected\n ) {\n focusWithoutScrolling(element, options);\n }\n });\n } else {\n focusWithoutScrolling(element, options);\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/*\n * Copyright 2024 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */\n\n/*\n * Copyright 2021 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/*\n * Copyright 2025 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/*\n * Copyright 2023 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/focus/FocusScope.tsx\n// Ported to SolidJS for Proyecto Viviana; based on packages/react-aria/src/interactions/usePress.ts\n// Ported to SolidJS for Proyecto Viviana; based on packages/react-aria/src/utils/domHelpers.ts\n// Ported to SolidJS for Proyecto Viviana; based on packages/react-aria/src/utils/getScrollParent.ts\n// Ported to SolidJS for Proyecto Viviana; based on packages/react-aria/src/utils/getScrollParents.ts\n// Ported to SolidJS for Proyecto Viviana; based on packages/react-aria/src/utils/isElementVisible.ts\n// Ported to SolidJS for Proyecto Viviana; based on packages/react-aria/src/utils/isFocusable.ts\n// Ported to SolidJS for Proyecto Viviana; based on packages/react-aria/src/utils/isScrollable.ts\n// Ported to SolidJS for Proyecto Viviana; based on packages/react-aria/src/utils/keyboard.tsx\n// Ported to SolidJS for Proyecto Viviana; based on packages/react-aria/src/utils/openLink.tsx\n// Ported to SolidJS for Proyecto Viviana; based on packages/react-aria/src/utils/shadowdom/DOMFunctions.ts\n\n/**\n * DOM utilities for cross-browser compatibility.\n * Based on these pinned React Aria sources:\n * - packages/react-aria/src/utils/domHelpers.ts\n * - packages/react-aria/src/utils/shadowdom/DOMFunctions.ts\n * - packages/react-aria/src/utils/isElementVisible.ts\n * - packages/react-aria/src/utils/isFocusable.ts\n * - packages/react-aria/src/interactions/usePress.ts\n * - packages/react-aria/src/utils/openLink.tsx\n * - packages/react-aria/src/utils/isScrollable.ts\n * - packages/react-aria/src/utils/getScrollParent.ts\n * - packages/react-aria/src/utils/getScrollParents.ts\n * - packages/react-aria/src/utils/keyboard.tsx\n * - packages/react-aria/src/focus/FocusScope.tsx\n */\n\nimport { shadowDOM } from \"@proyecto-viviana/solid-stately/private/flags/flags\";\nimport { isTestEnv } from \"./env\";\nimport { focusWithoutScrolling } from \"./focus\";\nimport { isFirefox, isIPad, isMac, isWebKit } from \"./platform\";\n\n/**\n * Gets the owner document of an element, or the global document.\n * Accepts Window / Document / Node so window-target focus events resolve correctly.\n */\nexport function getOwnerDocument(target?: EventTarget | null): Document {\n if (isWindow(target)) {\n return target.document;\n }\n\n if (isDocument(target)) {\n return target;\n }\n\n return (target as Node | null | undefined)?.ownerDocument ?? document;\n}\n\n/**\n * Gets the owner window of an element, or the global window.\n */\nexport function getOwnerWindow(target?: EventTarget | null): Window & typeof globalThis {\n const ownerDocument = getOwnerDocument(target);\n return (ownerDocument?.defaultView as (Window & typeof globalThis) | null) ?? window;\n}\n\nfunction isNode(value: unknown): value is Node {\n return (\n value !== null &&\n typeof value === \"object\" &&\n \"nodeType\" in value &&\n typeof (value as Node).nodeType === \"number\"\n );\n}\n\nfunction isWindow(value: unknown): value is Window & typeof globalThis {\n return typeof value === \"object\" && value != null && \"window\" in value && value.window === value;\n}\n\nfunction isDocument(value: unknown): value is Document {\n return isNode(value) && value.nodeType === 9;\n}\n\n/**\n * Type guard that checks if a value is a ShadowRoot.\n */\nexport function isShadowRoot(value: unknown): value is ShadowRoot {\n // 11 = DOCUMENT_FRAGMENT_NODE\n return isNode(value) && value.nodeType === 11 && \"host\" in value;\n}\n\n/**\n * Attaches an event listener on target(s) and returns a cleanup function.\n * Mirrors @react-aria/utils `addEvent`.\n */\nexport function addEvent(\n target: EventTarget | EventTarget[] | null,\n event: string,\n listener?: EventListenerOrEventListenerObject | null,\n options?: boolean | AddEventListenerOptions,\n): () => void {\n if (listener == null || target == null) {\n return () => {};\n }\n\n const eventTargets = Array.isArray(target) ? target : [target];\n\n for (const eventTarget of eventTargets) {\n eventTarget.addEventListener(event, listener, options);\n }\n\n return () => {\n for (const eventTarget of eventTargets) {\n eventTarget.removeEventListener(event, listener, options);\n }\n };\n}\n\n/**\n * Returns the set of event targets a listener must be attached to in order to\n * globally observe an event.\n *\n * @param from - The target element to start from.\n * @param to - The element to stop at when bubbling. @default getOwnerWindow(from)\n * `to` is generally going to be either `document` or `window`, but\n * it can be any intermediate node.\n * @returns [global, ...shadowRoots]\n */\nexport function getPropagationTargets(\n from: EventTarget | null | undefined,\n to?: Document | Window | Element | null,\n): EventTarget[] {\n // If `to` is coming from a ref, its type technically allows `null`.\n // In practice, this function will generally be called from within an effect.\n // If the ref has not resolved by that point, then a coding error has been made.\n // Better to return an empty array than `[window]`, which may appear to work\n // in the light DOM, but fail in the shadow DOM.\n if (to === null) {\n return [];\n }\n to = to ?? getOwnerWindow(from);\n const targets: EventTarget[] = [to];\n if (!shadowDOM() || !from || from === to) {\n return targets;\n }\n\n // The root `to` itself lives in. The event already reaches `to` once\n // it is inside this root, so we must NOT collect this root or anything above\n // it — only the shadow roots strictly between `refNode` and `to`.\n // `window` has no getRootNode; its boundary is the document, which the walk\n // reaches naturally (the document is not a ShadowRoot, so the loop exits).\n if (!(\"getRootNode\" in from) || typeof (from as Node).getRootNode !== \"function\") {\n return targets;\n }\n const toRoot = \"getRootNode\" in to ? (to as Node).getRootNode() : null;\n let current: Node | null = (from as Node).getRootNode() ?? null;\n while (isShadowRoot(current) && current !== toRoot) {\n targets.push(current);\n current = current.host.getRootNode();\n }\n\n return targets;\n}\n\n/**\n * Sets a CSS property on an element and returns a cleanup function.\n * Property names are kebab-case (`scrollbar-gutter`, `padding-right`), matching\n * @react-aria/utils `setStyle` which uses `style.setProperty`.\n */\nexport function setStyle(\n target: HTMLElement | HTMLElement[] | null,\n property: string,\n value: string,\n priority?: string,\n): () => void {\n if (target == null) {\n return () => {};\n }\n\n const restore: Array<() => void> = [];\n const styleTargets = Array.isArray(target) ? target : [target];\n\n for (const styleTarget of styleTargets) {\n const initialValue = styleTarget.style.getPropertyValue(property);\n const initialPriority = styleTarget.style.getPropertyPriority(property);\n\n styleTarget.style.setProperty(property, value, priority);\n\n restore.unshift(() => {\n if (initialValue) {\n styleTarget.style.setProperty(property, initialValue, initialPriority);\n } else {\n styleTarget.style.removeProperty(property);\n }\n });\n }\n\n return () => {\n for (const cleanup of restore) {\n cleanup();\n }\n };\n}\n\n/**\n * Cross-browser implementation of Node.contains that works with ShadowDOM.\n * In Safari, Node.contains doesn't properly detect elements inside shadow roots.\n */\nexport function nodeContains(parent: Node | null, child: Node | null): boolean {\n if (!parent || !child) {\n return false;\n }\n\n // Walk the composed tree so slotted elements and nodes in nested shadow roots\n // are treated as descendants of their rendered ancestors.\n let node: Node | null = child;\n while (node) {\n if (node === parent) {\n return true;\n }\n\n if (\n typeof (node as HTMLSlotElement).assignedElements !== \"function\" &&\n (node as HTMLSlotElement).assignedSlot?.parentNode\n ) {\n node = (node as HTMLSlotElement).assignedSlot!.parentNode;\n } else if (node.nodeType === Node.DOCUMENT_FRAGMENT_NODE && (node as ShadowRoot).host) {\n node = (node as ShadowRoot).host;\n } else {\n node = node.parentNode;\n }\n }\n\n return false;\n}\n\n/**\n * Gets the event target, handling composed path for shadow DOM.\n */\nexport function getEventTarget<T extends EventTarget>(event: Event): T | null {\n // Use composedPath to get the real target when using Shadow DOM\n if (typeof event.composedPath === \"function\") {\n const path = event.composedPath();\n if (path.length > 0) {\n return path[0] as T;\n }\n }\n return event.target as T | null;\n}\n\n// Ports @react-aria/utils `isElementVisible`/`isFocusable`/`isTabbable` (v3.34.1,\n// the version paired with our pinned RAC 1.19.0) so focusability matches upstream:\n// a candidate must match the focusable selector AND not be inside an `inert`\n// subtree AND be visible (unless `skipVisibilityCheck`). The previous `isFocusable`\n// was a simplified tagName/tabindex check with no visibility or `inert` filtering.\n// Owner-window lookups go through `getOwnerWindow`, which falls back to the global\n// window, so these stay robust on detached documents (`defaultView === null`).\n\nconst supportsCheckVisibility =\n typeof Element !== \"undefined\" && \"checkVisibility\" in Element.prototype;\n\n// Solid clones templates with the document that is global at creation time, so a\n// node portaled into another document (e.g. an iframe) keeps its original realm's\n// prototype even though `getOwnerWindow` now resolves to the other document's\n// window. Upstream React creates portal nodes with the container's `ownerDocument`,\n// so its single `instanceof getOwnerWindow(element)` check suffices; we also accept\n// the global realm's constructors so cross-document focus scopes still recognize\n// real elements. In the common same-realm case this is identical to upstream.\nfunction isHTMLOrSVGElement(element: Element): element is HTMLElement | SVGElement {\n const windowObject = getOwnerWindow(element);\n return (\n element instanceof windowObject.HTMLElement ||\n element instanceof windowObject.SVGElement ||\n (typeof HTMLElement !== \"undefined\" && element instanceof HTMLElement) ||\n (typeof SVGElement !== \"undefined\" && element instanceof SVGElement)\n );\n}\n\nfunction isStyleVisible(element: Element): boolean {\n if (!isHTMLOrSVGElement(element)) {\n return false;\n }\n\n const { display, visibility } = element.style;\n\n let isVisible = display !== \"none\" && visibility !== \"hidden\" && visibility !== \"collapse\";\n\n if (isVisible) {\n const { getComputedStyle } = getOwnerWindow(element);\n const { display: computedDisplay, visibility: computedVisibility } = getComputedStyle(element);\n\n isVisible =\n computedDisplay !== \"none\" &&\n computedVisibility !== \"hidden\" &&\n computedVisibility !== \"collapse\";\n }\n\n return isVisible;\n}\n\nfunction isAttributeVisible(element: Element, childElement?: Element): boolean {\n return (\n !element.hasAttribute(\"hidden\") &&\n // Ignore HiddenSelect when tree walking.\n !element.hasAttribute(\"data-react-aria-prevent-focus\") &&\n (element.nodeName === \"DETAILS\" && childElement && childElement.nodeName !== \"SUMMARY\"\n ? element.hasAttribute(\"open\")\n : true)\n );\n}\n\n/**\n * Whether an element is visible, and so eligible for focus. Adapted from\n * @react-aria/utils, which adapts testing-library/jest-dom and\n * vue-test-utils-next (MIT): uses `checkVisibility` when supported, otherwise\n * walks computed style and visibility-affecting attributes up the ancestor chain.\n */\nexport function isElementVisible(element: Element, childElement?: Element): boolean {\n if (supportsCheckVisibility) {\n return (\n element.checkVisibility({ visibilityProperty: true }) &&\n !element.closest(\"[data-react-aria-prevent-focus]\")\n );\n }\n\n return (\n element.nodeName !== \"#comment\" &&\n isStyleVisible(element) &&\n isAttributeVisible(element, childElement) &&\n (!element.parentElement || isElementVisible(element.parentElement, element))\n );\n}\n\nconst focusableElements = [\n \"input:not([disabled]):not([type=hidden])\",\n \"select:not([disabled])\",\n \"textarea:not([disabled])\",\n \"button:not([disabled])\",\n \"a[href]\",\n \"area[href]\",\n \"summary\",\n \"iframe\",\n \"object\",\n \"embed\",\n \"audio[controls]\",\n \"video[controls]\",\n '[contenteditable]:not([contenteditable^=\"false\"])',\n \"permission\",\n];\n\nconst FOCUSABLE_ELEMENT_SELECTOR =\n focusableElements.join(\":not([hidden]),\") + \",[tabindex]:not([disabled]):not([hidden])\";\n\nfocusableElements.push('[tabindex]:not([tabindex=\"-1\"]):not([disabled])');\nconst TABBABLE_ELEMENT_SELECTOR = focusableElements.join(':not([hidden]):not([tabindex=\"-1\"]),');\n\n/**\n * Checks if an element is a valid focusable element: it matches the focusable\n * selector, is not inside an `inert` subtree, and is visible. A negative tabindex\n * is programmatically focusable (matched here) but not tabbable. `skipVisibilityCheck`\n * lets callers (e.g. the press-path `preventFocus` ancestor walk) skip the\n * `isElementVisible` step, which also avoids touching layout on detached documents.\n */\nexport function isFocusable(\n element: Element,\n options?: { skipVisibilityCheck?: boolean },\n): boolean {\n return (\n element.matches(FOCUSABLE_ELEMENT_SELECTOR) &&\n !isInert(element) &&\n (options?.skipVisibilityCheck || isElementVisible(element))\n );\n}\n\n/**\n * Checks if an element is tabbable (reachable via the Tab key): focusable,\n * visible, not inert, and not `tabindex=\"-1\"`.\n */\nexport function isTabbable(element: Element): boolean {\n return (\n element.matches(TABBABLE_ELEMENT_SELECTOR) && isElementVisible(element) && !isInert(element)\n );\n}\n\nfunction isInert(element: Element): boolean {\n let node: Element | null = element;\n while (node != null) {\n // Realm-tolerant HTMLElement check (see isHTMLOrSVGElement): Solid-portaled\n // nodes keep their creating realm's prototype, so also accept the global one.\n const isHTMLElement =\n node instanceof getOwnerWindow(node).HTMLElement ||\n (typeof HTMLElement !== \"undefined\" && node instanceof HTMLElement);\n if (isHTMLElement && (node as HTMLElement).inert) {\n return true;\n }\n\n node = node.parentElement;\n }\n\n return false;\n}\n\n/**\n * Checks if a keyboard event should trigger the default action (like clicking).\n */\nexport function isValidKeyboardEvent(event: KeyboardEvent, currentTarget: Element): boolean {\n const { key, code } = event;\n const element = currentTarget as HTMLElement;\n const tagName = element.tagName.toLowerCase();\n const role = element.getAttribute(\"role\");\n\n // Only accept Enter and Space\n const isActivationKey = key === \"Enter\" || key === \" \" || key === \"Spacebar\" || code === \"Space\";\n if (!isActivationKey) {\n return false;\n }\n\n // Text inputs should handle their own keyboard events\n if (tagName === \"textarea\") {\n return false;\n }\n\n // Content editable elements should handle their own keyboard events\n if (element.isContentEditable) {\n return false;\n }\n\n // Links should only respond to Enter, not Space\n const isLink = role === \"link\" || (!role && isHTMLAnchorLink(element));\n if (isLink && key !== \"Enter\") {\n return false;\n }\n\n // Input elements have specific key handling\n if (tagName === \"input\") {\n return isValidInputKey(element as HTMLInputElement, key);\n }\n\n return true;\n}\n\n/**\n * Checks if a key is valid for a specific input type.\n */\nexport function isValidInputKey(target: HTMLInputElement, key: string): boolean {\n const type = target.type.toLowerCase();\n\n // Checkbox and radio only respond to Space\n if (type === \"checkbox\" || type === \"radio\") {\n return key === \" \" || key === \"Spacebar\";\n }\n\n // Text-like inputs handle their own keyboard events\n const textInputTypes = [\n \"text\",\n \"search\",\n \"url\",\n \"tel\",\n \"email\",\n \"password\",\n \"date\",\n \"month\",\n \"week\",\n \"time\",\n \"datetime-local\",\n \"number\",\n ];\n if (textInputTypes.includes(type)) {\n return false;\n }\n\n return true;\n}\n\n/**\n * Checks if an element is an HTML anchor link (has href attribute).\n */\nexport function isHTMLAnchorLink(target: Element): boolean {\n return target.tagName === \"A\" && target.hasAttribute(\"href\");\n}\n\n/**\n * Whether to prevent default on keyboard events for this element.\n */\nexport function shouldPreventDefaultKeyboard(target: Element, key: string): boolean {\n if (target instanceof HTMLInputElement) {\n return !isValidInputKey(target, key);\n }\n\n return shouldPreventDefaultUp(target);\n}\n\n/**\n * Whether to prevent default on pointer up for this element.\n */\nexport function shouldPreventDefaultUp(target: Element): boolean {\n const tagName = target.tagName.toLowerCase();\n\n // Never prevent default on form elements\n if (tagName === \"input\" || tagName === \"textarea\" || tagName === \"select\") {\n return false;\n }\n\n // Don't prevent default on links\n if (tagName === \"a\" || target.getAttribute(\"role\") === \"link\") {\n return false;\n }\n\n // Buttons with submit/reset type should not prevent default\n if (tagName === \"button\") {\n const type = (target as HTMLButtonElement).type;\n if (type === \"submit\" || type === \"reset\") {\n return false;\n }\n }\n\n return true;\n}\n\n/** The modifier keys `openLink` carries onto the click it synthesizes. */\nexport interface LinkModifiers {\n metaKey?: boolean;\n ctrlKey?: boolean;\n altKey?: boolean;\n shiftKey?: boolean;\n}\n\n/**\n * Opens a link by dispatching the click the browser would have produced, so the\n * link's own `target`, `rel`, `download` and any router listening for clicks all\n * still apply. Used for keyboard activation of links, and for elements that act\n * as links without being one.\n *\n * 1:1 with `openLink` in @react-aria/utils: it never navigates itself.\n */\nexport function openLink(\n target: HTMLAnchorElement,\n modifiers: LinkModifiers,\n setOpening = true,\n): void {\n let { metaKey, ctrlKey } = modifiers;\n const { altKey, shiftKey } = modifiers;\n\n // Firefox does not recognize keyboard events as a user action by default, and\n // the popup blocker will prevent links with target=\"_blank\" from opening.\n // However, it does allow the event if the Command/Control key is held, which\n // opens the link in a background tab. This seems like the best we can do.\n // See https://bugzilla.mozilla.org/show_bug.cgi?id=257870 and\n // https://bugzilla.mozilla.org/show_bug.cgi?id=746640.\n if (\n !isWebKit() &&\n isFirefox() &&\n (window as Window & { event?: Event }).event?.type?.startsWith(\"key\") &&\n target.target === \"_blank\"\n ) {\n if (isMac()) {\n metaKey = true;\n } else {\n ctrlKey = true;\n }\n }\n\n // WebKit does not support firing click events with modifier keys, but does\n // support keyboard events.\n // https://github.com/WebKit/WebKit/blob/c03d0ac6e6db178f90923a0a63080b5ca210d25f/Source/WebCore/html/HTMLAnchorElement.cpp#L184\n const event =\n isWebKit() && isMac() && !isIPad() && !isTestEnv()\n ? // keyIdentifier is a non-standard property, but it's what WebKit expects.\n (new KeyboardEvent(\"keydown\", {\n keyIdentifier: \"Enter\",\n metaKey,\n ctrlKey,\n altKey,\n shiftKey,\n } as KeyboardEventInit) as Event)\n : new MouseEvent(\"click\", {\n metaKey,\n ctrlKey,\n altKey,\n shiftKey,\n detail: 1,\n bubbles: true,\n cancelable: true,\n });\n\n (openLink as { isOpening?: boolean }).isOpening = setOpening;\n focusWithoutScrolling(target);\n target.dispatchEvent(event);\n (openLink as { isOpening?: boolean }).isOpening = false;\n}\n\n(openLink as { isOpening?: boolean }).isOpening = false;\n\n/**\n * Checks if an element is scrollable based on its overflow style.\n * @param node - The element to check\n * @param checkForOverflow - If true, also check if the element actually overflows\n */\nexport function isScrollable(node: Element | null, checkForOverflow?: boolean): boolean {\n if (!node) {\n return false;\n }\n\n const style = window.getComputedStyle(node);\n const scrollable = /(auto|scroll)/.test(style.overflow + style.overflowX + style.overflowY);\n\n if (scrollable && checkForOverflow) {\n return node.scrollHeight !== node.clientHeight || node.scrollWidth !== node.clientWidth;\n }\n\n return scrollable;\n}\n\n/**\n * Gets the nearest scrollable parent element.\n * @param node - The starting element\n * @param checkForOverflow - If true, only return parents that actually overflow\n */\nexport function getScrollParent(node: Element, checkForOverflow?: boolean): Element {\n let scrollableNode: Element | null = node;\n\n if (isScrollable(scrollableNode, checkForOverflow)) {\n scrollableNode = scrollableNode.parentElement;\n }\n\n while (scrollableNode && !isScrollable(scrollableNode, checkForOverflow)) {\n scrollableNode = scrollableNode.parentElement;\n }\n\n return scrollableNode || document.scrollingElement || document.documentElement;\n}\n\n/**\n * Gets every scrollable ancestor of an element, from the nearest up to (and\n * including) the document scrolling element.\n * @param node - The starting element\n * @param checkForOverflow - If true, only include parents that actually overflow\n */\nexport function getScrollParents(node: Element, checkForOverflow?: boolean): Element[] {\n const parentElements: Element[] = [];\n const root = document.scrollingElement || document.documentElement;\n let current: Element | null = node;\n\n while (current) {\n if (isScrollable(current, checkForOverflow)) {\n parentElements.push(current);\n }\n if (current === root) {\n break;\n }\n current = current.parentElement;\n }\n\n return parentElements;\n}\n\n/**\n * Checks if an element will open a virtual keyboard when focused.\n * Used for iOS Safari scroll handling.\n */\nexport function willOpenKeyboard(target: Element | null): boolean {\n if (!target) {\n return false;\n }\n\n const tagName = target.tagName.toLowerCase();\n\n // Inputs that open keyboard (not all input types do)\n if (tagName === \"input\") {\n const type = (target as HTMLInputElement).type.toLowerCase();\n // These input types open the keyboard\n const keyboardTypes = [\n \"text\",\n \"search\",\n \"url\",\n \"tel\",\n \"email\",\n \"password\",\n \"date\",\n \"month\",\n \"week\",\n \"time\",\n \"datetime-local\",\n \"number\",\n ];\n return keyboardTypes.includes(type);\n }\n\n // Textareas always open keyboard\n if (tagName === \"textarea\") {\n return true;\n }\n\n // Contenteditable elements open keyboard\n if (\n target.hasAttribute(\"contenteditable\") &&\n target.getAttribute(\"contenteditable\") !== \"false\"\n ) {\n return true;\n }\n\n return false;\n}\n\n/**\n * Returns the deepest active element, descending through open shadow roots.\n * Mirrors @react-aria/utils' `getActiveElement`.\n */\nexport function getActiveElement(doc: Document = document): Element | null {\n let activeElement = doc.activeElement;\n while (activeElement?.shadowRoot?.activeElement) {\n activeElement = activeElement.shadowRoot.activeElement;\n }\n return activeElement;\n}\n\n/**\n * Whether the (deepest) active element is `element` or is contained within it.\n * Mirrors @react-aria/utils' `isFocusWithin`.\n */\nexport function isFocusWithin(element: Element): boolean {\n const activeElement = getActiveElement(getOwnerDocument(element));\n return !!activeElement && nodeContains(element, activeElement);\n}\n\n/**\n * Creates a `TreeWalker` that visits the focusable (or, when `tabbable`, the\n * tabbable) descendants of `root`, skipping invisible and inert elements.\n * Mirrors @react-aria/focus's `getFocusableTreeWalker`, minus the focus-scope\n * containment filter (we don't model nested scopes here). Used to treat a\n * selectable collection as a single tab stop.\n */\nexport function getFocusableTreeWalker(\n root: Element,\n opts?: { tabbable?: boolean; from?: Node; accept?: (node: Element) => boolean },\n): TreeWalker {\n const accept = (node: Element) =>\n (opts?.tabbable ? isTabbable(node) : isFocusable(node)) && (!opts?.accept || opts.accept(node));\n const walker = getOwnerDocument(root).createTreeWalker(root, NodeFilter.SHOW_ELEMENT, {\n acceptNode(node) {\n // Skip nodes inside the optional starting node.\n if (opts?.from?.contains(node)) {\n return NodeFilter.FILTER_REJECT;\n }\n if (accept(node as Element)) {\n return NodeFilter.FILTER_ACCEPT;\n }\n return NodeFilter.FILTER_SKIP;\n },\n });\n if (opts?.from) {\n walker.currentNode = opts.from;\n }\n return walker;\n}\n"],"mappings":"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"}
@@ -1,59 +1,3 @@
1
- //#region src/utils/mergeProps.ts
2
- /**
3
- * Merges multiple props objects together, handling event handlers specially
4
- * by chaining them rather than replacing.
5
- *
6
- * Based on react-aria's mergeProps but adapted for SolidJS.
7
- *
8
- * @param args - Props objects to merge
9
- * @returns Merged props object. Use type parameter R to specify the result type.
10
- */
11
- function mergeProps(...args) {
12
- const result = {};
13
- const setResultValue = (key, value) => {
14
- const resultDescriptor = Object.getOwnPropertyDescriptor(result, key);
15
- if (resultDescriptor?.get || resultDescriptor?.set) {
16
- Object.defineProperty(result, key, {
17
- enumerable: true,
18
- configurable: true,
19
- writable: true,
20
- value
21
- });
22
- return;
23
- }
24
- result[key] = value;
25
- };
26
- for (const props of args) for (const key in props) {
27
- const descriptor = Object.getOwnPropertyDescriptor(props, key);
28
- const hasGetter = typeof descriptor?.get === "function";
29
- const getValue = () => hasGetter ? descriptor.get.call(props) : props[key];
30
- const value = getValue();
31
- const existingValue = result[key];
32
- if (typeof existingValue === "function" && typeof value === "function" && key.startsWith("on") && key[2] === key[2]?.toUpperCase()) setResultValue(key, chainHandlers(existingValue, value));
33
- else if ((key === "class" || key === "className" || key === "UNSAFE_className") && typeof existingValue === "string" && typeof value === "string") setResultValue(key, mergeClassNames(existingValue, value));
34
- else if (key === "style" && typeof existingValue === "object" && typeof value === "object") setResultValue(key, {
35
- ...existingValue,
36
- ...value
37
- });
38
- else if (hasGetter && (value !== void 0 || !(key in result))) Object.defineProperty(result, key, {
39
- enumerable: true,
40
- configurable: true,
41
- get: getValue
42
- });
43
- else if (value !== void 0) setResultValue(key, value);
44
- }
45
- return result;
46
- }
47
- function chainHandlers(existingHandler, newHandler) {
48
- return (...args) => {
49
- existingHandler(...args);
50
- newHandler(...args);
51
- };
52
- }
53
- function mergeClassNames(...classes) {
54
- return classes.filter(Boolean).join(" ");
55
- }
56
- //#endregion
57
1
  //#region src/utils/env.ts
58
2
  function getEnvVar(key) {
59
3
  const importMetaEnv = import.meta.env;
@@ -82,6 +26,6 @@ function isProdEnv() {
82
26
  return getEnvVar("NODE_ENV") === "production";
83
27
  }
84
28
  //#endregion
85
- export { mergeProps as i, isProdEnv as n, isTestEnv as r, isDevEnv as t };
29
+ export { isProdEnv as n, isTestEnv as r, isDevEnv as t };
86
30
 
87
31
  //# sourceMappingURL=env.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"env.js","names":[],"sources":["../../src/utils/mergeProps.ts","../../src/utils/env.ts"],"sourcesContent":["type Props = { [key: string]: unknown };\n\n/**\n * Merges multiple props objects together, handling event handlers specially\n * by chaining them rather than replacing.\n *\n * Based on react-aria's mergeProps but adapted for SolidJS.\n *\n * @param args - Props objects to merge\n * @returns Merged props object. Use type parameter R to specify the result type.\n */\nexport function mergeProps<R extends object = Record<string, unknown>, T extends object = object>(\n ...args: T[]\n): R {\n const result: Props = {};\n const setResultValue = (key: string, value: unknown) => {\n const resultDescriptor = Object.getOwnPropertyDescriptor(result, key);\n\n if (resultDescriptor?.get || resultDescriptor?.set) {\n Object.defineProperty(result, key, {\n enumerable: true,\n configurable: true,\n writable: true,\n value,\n });\n return;\n }\n\n result[key] = value;\n };\n\n for (const props of args) {\n for (const key in props) {\n const descriptor = Object.getOwnPropertyDescriptor(props, key);\n const hasGetter = typeof descriptor?.get === \"function\";\n const getValue = () => (hasGetter ? descriptor.get!.call(props) : props[key]);\n const value = getValue();\n const existingValue = result[key];\n\n if (\n typeof existingValue === \"function\" &&\n typeof value === \"function\" &&\n key.startsWith(\"on\") &&\n key[2] === key[2]?.toUpperCase()\n ) {\n setResultValue(key, chainHandlers(existingValue as Function, value as Function));\n } else if (\n (key === \"class\" || key === \"className\" || key === \"UNSAFE_className\") &&\n typeof existingValue === \"string\" &&\n typeof value === \"string\"\n ) {\n // Join only when both sides are plain strings (react-aria mergeProps\n // semantics); a render-prop class function must pass through intact,\n // not be coerced to its source text.\n setResultValue(key, mergeClassNames(existingValue, value));\n } else if (\n key === \"style\" &&\n typeof existingValue === \"object\" &&\n typeof value === \"object\"\n ) {\n setResultValue(key, { ...(existingValue as object), ...(value as object) });\n } else if (hasGetter && (value !== undefined || !(key in result))) {\n Object.defineProperty(result, key, {\n enumerable: true,\n configurable: true,\n get: getValue,\n });\n } else if (value !== undefined) {\n setResultValue(key, value);\n }\n }\n }\n\n return result as R;\n}\n\nfunction chainHandlers(existingHandler: Function, newHandler: Function) {\n return (...args: unknown[]) => {\n existingHandler(...args);\n newHandler(...args);\n };\n}\n\nfunction mergeClassNames(...classes: unknown[]): string {\n return classes.filter(Boolean).join(\" \");\n}\n","/**\n * Environment detection utilities.\n * These avoid direct references to process.env which can cause TypeScript issues in browser environments.\n * Compatible with Node.js and Vite environments.\n */\n\ntype ImportMetaWithEnv = ImportMeta & {\n env?: Record<string, unknown> & { DEV?: boolean; PROD?: boolean };\n};\ntype ProcessLike = { env?: Record<string, string | undefined> };\n\nfunction getEnvVar(key: string): string | undefined {\n const importMetaEnv = (import.meta as ImportMetaWithEnv).env;\n if (importMetaEnv && typeof importMetaEnv[key] === \"string\") {\n return importMetaEnv[key] as string;\n }\n\n const processEnv = (globalThis as typeof globalThis & { process?: ProcessLike }).process?.env;\n if (processEnv) {\n return processEnv[key];\n }\n return undefined;\n}\n\n/**\n * Check if we're running in a test environment.\n */\nexport function isTestEnv(): boolean {\n return getEnvVar(\"NODE_ENV\") === \"test\";\n}\n\n/**\n * Check if we're running in a development environment (not production).\n */\nexport function isDevEnv(): boolean {\n const importMetaEnv = (import.meta as ImportMetaWithEnv).env;\n if (importMetaEnv?.DEV === true) {\n return true;\n }\n const nodeEnv = getEnvVar(\"NODE_ENV\");\n return nodeEnv !== \"production\";\n}\n\n/**\n * Check if we're running in production.\n */\nexport function isProdEnv(): boolean {\n const importMetaEnv = (import.meta as ImportMetaWithEnv).env;\n if (importMetaEnv?.PROD === true) {\n return true;\n }\n return getEnvVar(\"NODE_ENV\") === \"production\";\n}\n"],"mappings":";;;;;;;;;;AAWA,SAAgB,WACd,GAAG,MACA;CACH,MAAM,SAAgB,CAAC;CACvB,MAAM,kBAAkB,KAAa,UAAmB;EACtD,MAAM,mBAAmB,OAAO,yBAAyB,QAAQ,GAAG;EAEpE,IAAI,kBAAkB,OAAO,kBAAkB,KAAK;GAClD,OAAO,eAAe,QAAQ,KAAK;IACjC,YAAY;IACZ,cAAc;IACd,UAAU;IACV;GACF,CAAC;GACD;EACF;EAEA,OAAO,OAAO;CAChB;CAEA,KAAK,MAAM,SAAS,MAClB,KAAK,MAAM,OAAO,OAAO;EACvB,MAAM,aAAa,OAAO,yBAAyB,OAAO,GAAG;EAC7D,MAAM,YAAY,OAAO,YAAY,QAAQ;EAC7C,MAAM,iBAAkB,YAAY,WAAW,IAAK,KAAK,KAAK,IAAI,MAAM;EACxE,MAAM,QAAQ,SAAS;EACvB,MAAM,gBAAgB,OAAO;EAE7B,IACE,OAAO,kBAAkB,cACzB,OAAO,UAAU,cACjB,IAAI,WAAW,IAAI,KACnB,IAAI,OAAO,IAAI,EAAE,EAAE,YAAY,GAE/B,eAAe,KAAK,cAAc,eAA2B,KAAiB,CAAC;OAC1E,KACJ,QAAQ,WAAW,QAAQ,eAAe,QAAQ,uBACnD,OAAO,kBAAkB,YACzB,OAAO,UAAU,UAKjB,eAAe,KAAK,gBAAgB,eAAe,KAAK,CAAC;OACpD,IACL,QAAQ,WACR,OAAO,kBAAkB,YACzB,OAAO,UAAU,UAEjB,eAAe,KAAK;GAAE,GAAI;GAA0B,GAAI;EAAiB,CAAC;OACrE,IAAI,cAAc,UAAU,KAAA,KAAa,EAAE,OAAO,UACvD,OAAO,eAAe,QAAQ,KAAK;GACjC,YAAY;GACZ,cAAc;GACd,KAAK;EACP,CAAC;OACI,IAAI,UAAU,KAAA,GACnB,eAAe,KAAK,KAAK;CAE7B;CAGF,OAAO;AACT;AAEA,SAAS,cAAc,iBAA2B,YAAsB;CACtE,QAAQ,GAAG,SAAoB;EAC7B,gBAAgB,GAAG,IAAI;EACvB,WAAW,GAAG,IAAI;CACpB;AACF;AAEA,SAAS,gBAAgB,GAAG,SAA4B;CACtD,OAAO,QAAQ,OAAO,OAAO,CAAC,CAAC,KAAK,GAAG;AACzC;;;AC1EA,SAAS,UAAU,KAAiC;CAClD,MAAM,gBAAiB,OAAO,KAA2B;CACzD,IAAI,iBAAiB,OAAO,cAAc,SAAS,UACjD,OAAO,cAAc;CAGvB,MAAM,aAAc,WAA6D,SAAS;CAC1F,IAAI,YACF,OAAO,WAAW;AAGtB;;;;AAKA,SAAgB,YAAqB;CACnC,OAAO,UAAU,UAAU,MAAM;AACnC;;;;AAKA,SAAgB,WAAoB;CAElC,IADuB,OAAO,KAA2B,KACtC,QAAQ,MACzB,OAAO;CAGT,OADgB,UAAU,UACb,MAAM;AACrB;;;;AAKA,SAAgB,YAAqB;CAEnC,IADuB,OAAO,KAA2B,KACtC,SAAS,MAC1B,OAAO;CAET,OAAO,UAAU,UAAU,MAAM;AACnC"}
1
+ {"version":3,"file":"env.js","names":[],"sources":["../../src/utils/env.ts"],"sourcesContent":["/**\n * Environment detection utilities.\n * These avoid direct references to process.env which can cause TypeScript issues in browser environments.\n * Compatible with Node.js and Vite environments.\n *\n * This is a local runtime helper. It has no direct React Aria counterpart.\n */\n\ntype ImportMetaWithEnv = ImportMeta & {\n env?: Record<string, unknown> & { DEV?: boolean; PROD?: boolean };\n};\ntype ProcessLike = { env?: Record<string, string | undefined> };\n\nfunction getEnvVar(key: string): string | undefined {\n const importMetaEnv = (import.meta as ImportMetaWithEnv).env;\n if (importMetaEnv && typeof importMetaEnv[key] === \"string\") {\n return importMetaEnv[key] as string;\n }\n\n const processEnv = (globalThis as typeof globalThis & { process?: ProcessLike }).process?.env;\n if (processEnv) {\n return processEnv[key];\n }\n return undefined;\n}\n\n/**\n * Check if we're running in a test environment.\n */\nexport function isTestEnv(): boolean {\n return getEnvVar(\"NODE_ENV\") === \"test\";\n}\n\n/**\n * Check if we're running in a development environment (not production).\n */\nexport function isDevEnv(): boolean {\n const importMetaEnv = (import.meta as ImportMetaWithEnv).env;\n if (importMetaEnv?.DEV === true) {\n return true;\n }\n const nodeEnv = getEnvVar(\"NODE_ENV\");\n return nodeEnv !== \"production\";\n}\n\n/**\n * Check if we're running in production.\n */\nexport function isProdEnv(): boolean {\n const importMetaEnv = (import.meta as ImportMetaWithEnv).env;\n if (importMetaEnv?.PROD === true) {\n return true;\n }\n return getEnvVar(\"NODE_ENV\") === \"production\";\n}\n"],"mappings":";AAaA,SAAS,UAAU,KAAiC;CAClD,MAAM,gBAAiB,YAAkC;CACzD,IAAI,iBAAiB,OAAO,cAAc,SAAS,UACjD,OAAO,cAAc;CAGvB,MAAM,aAAc,WAA6D,SAAS;CAC1F,IAAI,YACF,OAAO,WAAW;AAGtB;;;;AAKA,SAAgB,YAAqB;CACnC,OAAO,UAAU,UAAU,MAAM;AACnC;;;;AAKA,SAAgB,WAAoB;CAElC,IADuB,YAAkC,KACtC,QAAQ,MACzB,OAAO;CAGT,OADgB,UAAU,UACb,MAAM;AACrB;;;;AAKA,SAAgB,YAAqB;CAEnC,IADuB,YAAkC,KACtC,SAAS,MAC1B,OAAO;CAET,OAAO,UAAU,UAAU,MAAM;AACnC"}
@@ -1,59 +1,3 @@
1
- //#region src/utils/mergeProps.ts
2
- /**
3
- * Merges multiple props objects together, handling event handlers specially
4
- * by chaining them rather than replacing.
5
- *
6
- * Based on react-aria's mergeProps but adapted for SolidJS.
7
- *
8
- * @param args - Props objects to merge
9
- * @returns Merged props object. Use type parameter R to specify the result type.
10
- */
11
- function mergeProps(...args) {
12
- const result = {};
13
- const setResultValue = (key, value) => {
14
- const resultDescriptor = Object.getOwnPropertyDescriptor(result, key);
15
- if (resultDescriptor?.get || resultDescriptor?.set) {
16
- Object.defineProperty(result, key, {
17
- enumerable: true,
18
- configurable: true,
19
- writable: true,
20
- value
21
- });
22
- return;
23
- }
24
- result[key] = value;
25
- };
26
- for (const props of args) for (const key in props) {
27
- const descriptor = Object.getOwnPropertyDescriptor(props, key);
28
- const hasGetter = typeof descriptor?.get === "function";
29
- const getValue = () => hasGetter ? descriptor.get.call(props) : props[key];
30
- const value = getValue();
31
- const existingValue = result[key];
32
- if (typeof existingValue === "function" && typeof value === "function" && key.startsWith("on") && key[2] === key[2]?.toUpperCase()) setResultValue(key, chainHandlers(existingValue, value));
33
- else if ((key === "class" || key === "className" || key === "UNSAFE_className") && typeof existingValue === "string" && typeof value === "string") setResultValue(key, mergeClassNames(existingValue, value));
34
- else if (key === "style" && typeof existingValue === "object" && typeof value === "object") setResultValue(key, {
35
- ...existingValue,
36
- ...value
37
- });
38
- else if (hasGetter && (value !== void 0 || !(key in result))) Object.defineProperty(result, key, {
39
- enumerable: true,
40
- configurable: true,
41
- get: getValue
42
- });
43
- else if (value !== void 0) setResultValue(key, value);
44
- }
45
- return result;
46
- }
47
- function chainHandlers(existingHandler, newHandler) {
48
- return (...args) => {
49
- existingHandler(...args);
50
- newHandler(...args);
51
- };
52
- }
53
- function mergeClassNames(...classes) {
54
- return classes.filter(Boolean).join(" ");
55
- }
56
- //#endregion
57
1
  //#region src/utils/env.ts
58
2
  function getEnvVar(key) {
59
3
  const importMetaEnv = import.meta.env;
@@ -82,6 +26,6 @@ function isProdEnv() {
82
26
  return getEnvVar("NODE_ENV") === "production";
83
27
  }
84
28
  //#endregion
85
- export { mergeProps as i, isProdEnv as n, isTestEnv as r, isDevEnv as t };
29
+ export { isProdEnv as n, isTestEnv as r, isDevEnv as t };
86
30
 
87
31
  //# sourceMappingURL=env.jsx.map
@@ -1 +1 @@
1
- {"version":3,"file":"env.jsx","names":[],"sources":["../../src/utils/mergeProps.ts","../../src/utils/env.ts"],"sourcesContent":["type Props = { [key: string]: unknown };\n\n/**\n * Merges multiple props objects together, handling event handlers specially\n * by chaining them rather than replacing.\n *\n * Based on react-aria's mergeProps but adapted for SolidJS.\n *\n * @param args - Props objects to merge\n * @returns Merged props object. Use type parameter R to specify the result type.\n */\nexport function mergeProps<R extends object = Record<string, unknown>, T extends object = object>(\n ...args: T[]\n): R {\n const result: Props = {};\n const setResultValue = (key: string, value: unknown) => {\n const resultDescriptor = Object.getOwnPropertyDescriptor(result, key);\n\n if (resultDescriptor?.get || resultDescriptor?.set) {\n Object.defineProperty(result, key, {\n enumerable: true,\n configurable: true,\n writable: true,\n value,\n });\n return;\n }\n\n result[key] = value;\n };\n\n for (const props of args) {\n for (const key in props) {\n const descriptor = Object.getOwnPropertyDescriptor(props, key);\n const hasGetter = typeof descriptor?.get === \"function\";\n const getValue = () => (hasGetter ? descriptor.get!.call(props) : props[key]);\n const value = getValue();\n const existingValue = result[key];\n\n if (\n typeof existingValue === \"function\" &&\n typeof value === \"function\" &&\n key.startsWith(\"on\") &&\n key[2] === key[2]?.toUpperCase()\n ) {\n setResultValue(key, chainHandlers(existingValue as Function, value as Function));\n } else if (\n (key === \"class\" || key === \"className\" || key === \"UNSAFE_className\") &&\n typeof existingValue === \"string\" &&\n typeof value === \"string\"\n ) {\n // Join only when both sides are plain strings (react-aria mergeProps\n // semantics); a render-prop class function must pass through intact,\n // not be coerced to its source text.\n setResultValue(key, mergeClassNames(existingValue, value));\n } else if (\n key === \"style\" &&\n typeof existingValue === \"object\" &&\n typeof value === \"object\"\n ) {\n setResultValue(key, { ...(existingValue as object), ...(value as object) });\n } else if (hasGetter && (value !== undefined || !(key in result))) {\n Object.defineProperty(result, key, {\n enumerable: true,\n configurable: true,\n get: getValue,\n });\n } else if (value !== undefined) {\n setResultValue(key, value);\n }\n }\n }\n\n return result as R;\n}\n\nfunction chainHandlers(existingHandler: Function, newHandler: Function) {\n return (...args: unknown[]) => {\n existingHandler(...args);\n newHandler(...args);\n };\n}\n\nfunction mergeClassNames(...classes: unknown[]): string {\n return classes.filter(Boolean).join(\" \");\n}\n","/**\n * Environment detection utilities.\n * These avoid direct references to process.env which can cause TypeScript issues in browser environments.\n * Compatible with Node.js and Vite environments.\n */\n\ntype ImportMetaWithEnv = ImportMeta & {\n env?: Record<string, unknown> & { DEV?: boolean; PROD?: boolean };\n};\ntype ProcessLike = { env?: Record<string, string | undefined> };\n\nfunction getEnvVar(key: string): string | undefined {\n const importMetaEnv = (import.meta as ImportMetaWithEnv).env;\n if (importMetaEnv && typeof importMetaEnv[key] === \"string\") {\n return importMetaEnv[key] as string;\n }\n\n const processEnv = (globalThis as typeof globalThis & { process?: ProcessLike }).process?.env;\n if (processEnv) {\n return processEnv[key];\n }\n return undefined;\n}\n\n/**\n * Check if we're running in a test environment.\n */\nexport function isTestEnv(): boolean {\n return getEnvVar(\"NODE_ENV\") === \"test\";\n}\n\n/**\n * Check if we're running in a development environment (not production).\n */\nexport function isDevEnv(): boolean {\n const importMetaEnv = (import.meta as ImportMetaWithEnv).env;\n if (importMetaEnv?.DEV === true) {\n return true;\n }\n const nodeEnv = getEnvVar(\"NODE_ENV\");\n return nodeEnv !== \"production\";\n}\n\n/**\n * Check if we're running in production.\n */\nexport function isProdEnv(): boolean {\n const importMetaEnv = (import.meta as ImportMetaWithEnv).env;\n if (importMetaEnv?.PROD === true) {\n return true;\n }\n return getEnvVar(\"NODE_ENV\") === \"production\";\n}\n"],"mappings":";;;;;;;;;;AAWA,SAAgB,WACd,GAAG,MACA;CACH,MAAM,SAAgB,CAAC;CACvB,MAAM,kBAAkB,KAAa,UAAmB;EACtD,MAAM,mBAAmB,OAAO,yBAAyB,QAAQ,GAAG;EAEpE,IAAI,kBAAkB,OAAO,kBAAkB,KAAK;GAClD,OAAO,eAAe,QAAQ,KAAK;IACjC,YAAY;IACZ,cAAc;IACd,UAAU;IACV;GACF,CAAC;GACD;EACF;EAEA,OAAO,OAAO;CAChB;CAEA,KAAK,MAAM,SAAS,MAClB,KAAK,MAAM,OAAO,OAAO;EACvB,MAAM,aAAa,OAAO,yBAAyB,OAAO,GAAG;EAC7D,MAAM,YAAY,OAAO,YAAY,QAAQ;EAC7C,MAAM,iBAAkB,YAAY,WAAW,IAAK,KAAK,KAAK,IAAI,MAAM;EACxE,MAAM,QAAQ,SAAS;EACvB,MAAM,gBAAgB,OAAO;EAE7B,IACE,OAAO,kBAAkB,cACzB,OAAO,UAAU,cACjB,IAAI,WAAW,IAAI,KACnB,IAAI,OAAO,IAAI,EAAE,EAAE,YAAY,GAE/B,eAAe,KAAK,cAAc,eAA2B,KAAiB,CAAC;OAC1E,KACJ,QAAQ,WAAW,QAAQ,eAAe,QAAQ,uBACnD,OAAO,kBAAkB,YACzB,OAAO,UAAU,UAKjB,eAAe,KAAK,gBAAgB,eAAe,KAAK,CAAC;OACpD,IACL,QAAQ,WACR,OAAO,kBAAkB,YACzB,OAAO,UAAU,UAEjB,eAAe,KAAK;GAAE,GAAI;GAA0B,GAAI;EAAiB,CAAC;OACrE,IAAI,cAAc,UAAU,KAAA,KAAa,EAAE,OAAO,UACvD,OAAO,eAAe,QAAQ,KAAK;GACjC,YAAY;GACZ,cAAc;GACd,KAAK;EACP,CAAC;OACI,IAAI,UAAU,KAAA,GACnB,eAAe,KAAK,KAAK;CAE7B;CAGF,OAAO;AACT;AAEA,SAAS,cAAc,iBAA2B,YAAsB;CACtE,QAAQ,GAAG,SAAoB;EAC7B,gBAAgB,GAAG,IAAI;EACvB,WAAW,GAAG,IAAI;CACpB;AACF;AAEA,SAAS,gBAAgB,GAAG,SAA4B;CACtD,OAAO,QAAQ,OAAO,OAAO,CAAC,CAAC,KAAK,GAAG;AACzC;;;AC1EA,SAAS,UAAU,KAAiC;CAClD,MAAM,gBAAiB,OAAO,KAA2B;CACzD,IAAI,iBAAiB,OAAO,cAAc,SAAS,UACjD,OAAO,cAAc;CAGvB,MAAM,aAAc,WAA6D,SAAS;CAC1F,IAAI,YACF,OAAO,WAAW;AAGtB;;;;AAKA,SAAgB,YAAqB;CACnC,OAAO,UAAU,UAAU,MAAM;AACnC;;;;AAKA,SAAgB,WAAoB;CAElC,IADuB,OAAO,KAA2B,KACtC,QAAQ,MACzB,OAAO;CAGT,OADgB,UAAU,UACb,MAAM;AACrB;;;;AAKA,SAAgB,YAAqB;CAEnC,IADuB,OAAO,KAA2B,KACtC,SAAS,MAC1B,OAAO;CAET,OAAO,UAAU,UAAU,MAAM;AACnC"}
1
+ {"version":3,"file":"env.jsx","names":[],"sources":["../../src/utils/env.ts"],"sourcesContent":["/**\n * Environment detection utilities.\n * These avoid direct references to process.env which can cause TypeScript issues in browser environments.\n * Compatible with Node.js and Vite environments.\n *\n * This is a local runtime helper. It has no direct React Aria counterpart.\n */\n\ntype ImportMetaWithEnv = ImportMeta & {\n env?: Record<string, unknown> & { DEV?: boolean; PROD?: boolean };\n};\ntype ProcessLike = { env?: Record<string, string | undefined> };\n\nfunction getEnvVar(key: string): string | undefined {\n const importMetaEnv = (import.meta as ImportMetaWithEnv).env;\n if (importMetaEnv && typeof importMetaEnv[key] === \"string\") {\n return importMetaEnv[key] as string;\n }\n\n const processEnv = (globalThis as typeof globalThis & { process?: ProcessLike }).process?.env;\n if (processEnv) {\n return processEnv[key];\n }\n return undefined;\n}\n\n/**\n * Check if we're running in a test environment.\n */\nexport function isTestEnv(): boolean {\n return getEnvVar(\"NODE_ENV\") === \"test\";\n}\n\n/**\n * Check if we're running in a development environment (not production).\n */\nexport function isDevEnv(): boolean {\n const importMetaEnv = (import.meta as ImportMetaWithEnv).env;\n if (importMetaEnv?.DEV === true) {\n return true;\n }\n const nodeEnv = getEnvVar(\"NODE_ENV\");\n return nodeEnv !== \"production\";\n}\n\n/**\n * Check if we're running in production.\n */\nexport function isProdEnv(): boolean {\n const importMetaEnv = (import.meta as ImportMetaWithEnv).env;\n if (importMetaEnv?.PROD === true) {\n return true;\n }\n return getEnvVar(\"NODE_ENV\") === \"production\";\n}\n"],"mappings":";AAaA,SAAS,UAAU,KAAiC;CAClD,MAAM,gBAAiB,YAAkC;CACzD,IAAI,iBAAiB,OAAO,cAAc,SAAS,UACjD,OAAO,cAAc;CAGvB,MAAM,aAAc,WAA6D,SAAS;CAC1F,IAAI,YACF,OAAO,WAAW;AAGtB;;;;AAKA,SAAgB,YAAqB;CACnC,OAAO,UAAU,UAAU,MAAM;AACnC;;;;AAKA,SAAgB,WAAoB;CAElC,IADuB,YAAkC,KACtC,QAAQ,MACzB,OAAO;CAGT,OADgB,UAAU,UACb,MAAM;AACrB;;;;AAKA,SAAgB,YAAqB;CAEnC,IADuB,YAAkC,KACtC,SAAS,MAC1B,OAAO;CAET,OAAO,UAAU,UAAU,MAAM;AACnC"}
@@ -1,18 +1,30 @@
1
+ /*
2
+ * Copyright 2020 Adobe. All rights reserved.
3
+ * This file is licensed to you under the Apache License, Version 2.0 (the "License");
4
+ * you may not use this file except in compliance with the License. You may obtain a copy
5
+ * of the License at http://www.apache.org/licenses/LICENSE-2.0
6
+ *
7
+ * Unless required by applicable law or agreed to in writing, software distributed under
8
+ * the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS
9
+ * OF ANY KIND, either express or implied. See the License for the specific language
10
+ * governing permissions and limitations under the License.
11
+ */
12
+ // Ported to SolidJS for Proyecto Viviana; based on packages/react-aria/src/utils/filterDOMProps.ts
1
13
  //#region src/utils/filterDOMProps.ts
2
14
  /**
3
15
  * filterDOMProps for Solidaria
4
16
  *
5
17
  * Filters out all props that aren't valid DOM props.
6
- * This is a 1:1 port of @react-aria/utils filterDOMProps.
18
+ * Ported from packages/react-aria/src/utils/filterDOMProps.ts.
7
19
  */
8
- const DOMPropNames = new Set(["id"]);
9
- const labelablePropNames = new Set([
20
+ const DOMPropNames = /* @__PURE__ */ new Set(["id"]);
21
+ const labelablePropNames = /* @__PURE__ */ new Set([
10
22
  "aria-label",
11
23
  "aria-labelledby",
12
24
  "aria-describedby",
13
25
  "aria-details"
14
26
  ]);
15
- const linkPropNames = new Set([
27
+ const linkPropNames = /* @__PURE__ */ new Set([
16
28
  "href",
17
29
  "hrefLang",
18
30
  "target",
@@ -21,14 +33,14 @@ const linkPropNames = new Set([
21
33
  "ping",
22
34
  "referrerPolicy"
23
35
  ]);
24
- const globalAttrs = new Set([
36
+ const globalAttrs = /* @__PURE__ */ new Set([
25
37
  "dir",
26
38
  "lang",
27
39
  "hidden",
28
40
  "inert",
29
41
  "translate"
30
42
  ]);
31
- const globalEvents = new Set([
43
+ const globalEvents = /* @__PURE__ */ new Set([
32
44
  "onClick",
33
45
  "onAuxClick",
34
46
  "onContextMenu",
@@ -73,7 +85,20 @@ const propRe = /^(data-.*)$/;
73
85
  function filterDOMProps(props, opts = {}) {
74
86
  const { labelable, isLink, global, events = global, propNames } = opts;
75
87
  const filteredProps = {};
76
- for (const prop in props) if (Object.prototype.hasOwnProperty.call(props, prop) && (DOMPropNames.has(prop) || labelable && labelablePropNames.has(prop) || isLink && linkPropNames.has(prop) || global && globalAttrs.has(prop) || events && (globalEvents.has(prop) || prop.endsWith("Capture") && globalEvents.has(prop.slice(0, -7))) || propNames?.has(prop) || propRe.test(prop))) filteredProps[prop] = props[prop];
88
+ for (const prop in props) if (Object.prototype.hasOwnProperty.call(props, prop) && (DOMPropNames.has(prop) || labelable && labelablePropNames.has(prop) || isLink && linkPropNames.has(prop) || global && globalAttrs.has(prop) || events && (globalEvents.has(prop) || prop.endsWith("Capture") && globalEvents.has(prop.slice(0, -7))) || propNames?.has(prop) || propRe.test(prop))) {
89
+ const descriptor = Object.getOwnPropertyDescriptor(props, prop);
90
+ if (descriptor && (descriptor.get || descriptor.set)) {
91
+ const defined = {
92
+ enumerable: true,
93
+ configurable: true
94
+ };
95
+ if (descriptor.get) defined.get = () => descriptor.get.call(props);
96
+ if (descriptor.set) defined.set = (value) => {
97
+ descriptor.set.call(props, value);
98
+ };
99
+ Object.defineProperty(filteredProps, prop, defined);
100
+ } else filteredProps[prop] = props[prop];
101
+ }
77
102
  return filteredProps;
78
103
  }
79
104
  //#endregion
@@ -1 +1 @@
1
- {"version":3,"file":"filterDOMProps.js","names":[],"sources":["../../src/utils/filterDOMProps.ts"],"sourcesContent":["/**\n * filterDOMProps for Solidaria\n *\n * Filters out all props that aren't valid DOM props.\n * This is a 1:1 port of @react-aria/utils filterDOMProps.\n */\n\nconst DOMPropNames = new Set([\"id\"]);\n\nconst labelablePropNames = new Set([\n \"aria-label\",\n \"aria-labelledby\",\n \"aria-describedby\",\n \"aria-details\",\n]);\n\n// See LinkDOMProps in dom.d.ts.\nconst linkPropNames = new Set([\n \"href\",\n \"hrefLang\",\n \"target\",\n \"rel\",\n \"download\",\n \"ping\",\n \"referrerPolicy\",\n]);\n\nconst globalAttrs = new Set([\"dir\", \"lang\", \"hidden\", \"inert\", \"translate\"]);\n\nconst globalEvents = new Set([\n \"onClick\",\n \"onAuxClick\",\n \"onContextMenu\",\n \"onDoubleClick\",\n \"onMouseDown\",\n \"onMouseEnter\",\n \"onMouseLeave\",\n \"onMouseMove\",\n \"onMouseOut\",\n \"onMouseOver\",\n \"onMouseUp\",\n \"onTouchCancel\",\n \"onTouchEnd\",\n \"onTouchMove\",\n \"onTouchStart\",\n \"onPointerDown\",\n \"onPointerMove\",\n \"onPointerUp\",\n \"onPointerCancel\",\n \"onPointerEnter\",\n \"onPointerLeave\",\n \"onPointerOver\",\n \"onPointerOut\",\n \"onGotPointerCapture\",\n \"onLostPointerCapture\",\n \"onScroll\",\n \"onWheel\",\n \"onAnimationStart\",\n \"onAnimationEnd\",\n \"onAnimationIteration\",\n \"onTransitionCancel\",\n \"onTransitionEnd\",\n \"onTransitionRun\",\n \"onTransitionStart\",\n]);\n\nconst propRe = /^(data-.*)$/;\n\nexport interface FilterDOMPropsOptions {\n /**\n * If labelling associated aria properties should be included in the filter.\n */\n labelable?: boolean;\n /** Whether the element is a link and should include DOM props for <a> elements. */\n isLink?: boolean;\n /** Whether to include global DOM attributes. */\n global?: boolean;\n /** Whether to include DOM events. */\n events?: boolean;\n /**\n * A Set of other property names that should be included in the filter.\n */\n propNames?: Set<string>;\n}\n\n/**\n * Filters out all props that aren't valid DOM props or defined via override prop obj.\n * @param props - The component props to be filtered.\n * @param opts - Props to override.\n */\nexport function filterDOMProps<T extends object>(\n props: T,\n opts: FilterDOMPropsOptions = {},\n): Partial<T> {\n const { labelable, isLink, global, events = global, propNames } = opts;\n const filteredProps: Partial<T> = {};\n\n for (const prop in props) {\n if (\n Object.prototype.hasOwnProperty.call(props, prop) &&\n (DOMPropNames.has(prop) ||\n (labelable && labelablePropNames.has(prop)) ||\n (isLink && linkPropNames.has(prop)) ||\n (global && globalAttrs.has(prop)) ||\n (events &&\n (globalEvents.has(prop) ||\n (prop.endsWith(\"Capture\") && globalEvents.has(prop.slice(0, -7))))) ||\n propNames?.has(prop) ||\n propRe.test(prop))\n ) {\n (filteredProps as Record<string, unknown>)[prop] = props[prop];\n }\n }\n\n return filteredProps;\n}\n"],"mappings":";;;;;;;AAOA,MAAM,eAAe,IAAI,IAAI,CAAC,IAAI,CAAC;AAEnC,MAAM,qBAAqB,IAAI,IAAI;CACjC;CACA;CACA;CACA;AACF,CAAC;AAGD,MAAM,gBAAgB,IAAI,IAAI;CAC5B;CACA;CACA;CACA;CACA;CACA;CACA;AACF,CAAC;AAED,MAAM,cAAc,IAAI,IAAI;CAAC;CAAO;CAAQ;CAAU;CAAS;AAAW,CAAC;AAE3E,MAAM,eAAe,IAAI,IAAI;CAC3B;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;AACF,CAAC;AAED,MAAM,SAAS;;;;;;AAwBf,SAAgB,eACd,OACA,OAA8B,CAAC,GACnB;CACZ,MAAM,EAAE,WAAW,QAAQ,QAAQ,SAAS,QAAQ,cAAc;CAClE,MAAM,gBAA4B,CAAC;CAEnC,KAAK,MAAM,QAAQ,OACjB,IACE,OAAO,UAAU,eAAe,KAAK,OAAO,IAAI,MAC/C,aAAa,IAAI,IAAI,KACnB,aAAa,mBAAmB,IAAI,IAAI,KACxC,UAAU,cAAc,IAAI,IAAI,KAChC,UAAU,YAAY,IAAI,IAAI,KAC9B,WACE,aAAa,IAAI,IAAI,KACnB,KAAK,SAAS,SAAS,KAAK,aAAa,IAAI,KAAK,MAAM,GAAG,EAAE,CAAC,MACnE,WAAW,IAAI,IAAI,KACnB,OAAO,KAAK,IAAI,IAElB,cAA2C,QAAQ,MAAM;CAI7D,OAAO;AACT"}
1
+ {"version":3,"file":"filterDOMProps.js","names":[],"sources":["../../src/utils/filterDOMProps.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/utils/filterDOMProps.ts\n\n/**\n * filterDOMProps for Solidaria\n *\n * Filters out all props that aren't valid DOM props.\n * Ported from packages/react-aria/src/utils/filterDOMProps.ts.\n */\n\nconst DOMPropNames = new Set([\"id\"]);\n\nconst labelablePropNames = new Set([\n \"aria-label\",\n \"aria-labelledby\",\n \"aria-describedby\",\n \"aria-details\",\n]);\n\n// See LinkDOMProps in dom.d.ts.\nconst linkPropNames = new Set([\n \"href\",\n \"hrefLang\",\n \"target\",\n \"rel\",\n \"download\",\n \"ping\",\n \"referrerPolicy\",\n]);\n\nconst globalAttrs = new Set([\"dir\", \"lang\", \"hidden\", \"inert\", \"translate\"]);\n\nconst globalEvents = new Set([\n \"onClick\",\n \"onAuxClick\",\n \"onContextMenu\",\n \"onDoubleClick\",\n \"onMouseDown\",\n \"onMouseEnter\",\n \"onMouseLeave\",\n \"onMouseMove\",\n \"onMouseOut\",\n \"onMouseOver\",\n \"onMouseUp\",\n \"onTouchCancel\",\n \"onTouchEnd\",\n \"onTouchMove\",\n \"onTouchStart\",\n \"onPointerDown\",\n \"onPointerMove\",\n \"onPointerUp\",\n \"onPointerCancel\",\n \"onPointerEnter\",\n \"onPointerLeave\",\n \"onPointerOver\",\n \"onPointerOut\",\n \"onGotPointerCapture\",\n \"onLostPointerCapture\",\n \"onScroll\",\n \"onWheel\",\n \"onAnimationStart\",\n \"onAnimationEnd\",\n \"onAnimationIteration\",\n \"onTransitionCancel\",\n \"onTransitionEnd\",\n \"onTransitionRun\",\n \"onTransitionStart\",\n]);\n\nconst propRe = /^(data-.*)$/;\n\nexport interface FilterDOMPropsOptions {\n /**\n * If labelling associated aria properties should be included in the filter.\n */\n labelable?: boolean;\n /** Whether the element is a link and should include DOM props for <a> elements. */\n isLink?: boolean;\n /** Whether to include global DOM attributes. */\n global?: boolean;\n /** Whether to include DOM events. */\n events?: boolean;\n /**\n * A Set of other property names that should be included in the filter.\n */\n propNames?: Set<string>;\n}\n\n/**\n * Filters out all props that aren't valid DOM props or defined via override prop obj.\n * @param props - The component props to be filtered.\n * @param opts - Props to override.\n */\nexport function filterDOMProps<T extends object>(\n props: T,\n opts: FilterDOMPropsOptions = {},\n): Partial<T> {\n const { labelable, isLink, global, events = global, propNames } = opts;\n const filteredProps: Partial<T> = {};\n\n for (const prop in props) {\n if (\n Object.prototype.hasOwnProperty.call(props, prop) &&\n (DOMPropNames.has(prop) ||\n (labelable && labelablePropNames.has(prop)) ||\n (isLink && linkPropNames.has(prop)) ||\n (global && globalAttrs.has(prop)) ||\n (events &&\n (globalEvents.has(prop) ||\n (prop.endsWith(\"Capture\") && globalEvents.has(prop.slice(0, -7))))) ||\n propNames?.has(prop) ||\n propRe.test(prop))\n ) {\n const descriptor = Object.getOwnPropertyDescriptor(props, prop);\n if (descriptor && (descriptor.get || descriptor.set)) {\n // React props are plain values, so upstream copies them; Solid keeps the getter.\n const defined: PropertyDescriptor = {\n enumerable: true,\n configurable: true,\n };\n if (descriptor.get) {\n defined.get = () => descriptor.get!.call(props);\n }\n if (descriptor.set) {\n defined.set = (value: unknown) => {\n descriptor.set!.call(props, value);\n };\n }\n Object.defineProperty(filteredProps, prop, defined);\n } else {\n (filteredProps as Record<string, unknown>)[prop] = (props as Record<string, unknown>)[prop];\n }\n }\n }\n\n return filteredProps;\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;AAqBA,MAAM,+BAAe,IAAI,IAAI,CAAC,IAAI,CAAC;AAEnC,MAAM,qCAAqB,IAAI,IAAI;CACjC;CACA;CACA;CACA;AACF,CAAC;AAGD,MAAM,gCAAgB,IAAI,IAAI;CAC5B;CACA;CACA;CACA;CACA;CACA;CACA;AACF,CAAC;AAED,MAAM,8BAAc,IAAI,IAAI;CAAC;CAAO;CAAQ;CAAU;CAAS;AAAW,CAAC;AAE3E,MAAM,+BAAe,IAAI,IAAI;CAC3B;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;AACF,CAAC;AAED,MAAM,SAAS;;;;;;AAwBf,SAAgB,eACd,OACA,OAA8B,CAAC,GACnB;CACZ,MAAM,EAAE,WAAW,QAAQ,QAAQ,SAAS,QAAQ,cAAc;CAClE,MAAM,gBAA4B,CAAC;CAEnC,KAAK,MAAM,QAAQ,OACjB,IACE,OAAO,UAAU,eAAe,KAAK,OAAO,IAAI,MAC/C,aAAa,IAAI,IAAI,KACnB,aAAa,mBAAmB,IAAI,IAAI,KACxC,UAAU,cAAc,IAAI,IAAI,KAChC,UAAU,YAAY,IAAI,IAAI,KAC9B,WACE,aAAa,IAAI,IAAI,KACnB,KAAK,SAAS,SAAS,KAAK,aAAa,IAAI,KAAK,MAAM,GAAG,EAAE,CAAC,MACnE,WAAW,IAAI,IAAI,KACnB,OAAO,KAAK,IAAI,IAClB;EACA,MAAM,aAAa,OAAO,yBAAyB,OAAO,IAAI;EAC9D,IAAI,eAAe,WAAW,OAAO,WAAW,MAAM;GAEpD,MAAM,UAA8B;IAClC,YAAY;IACZ,cAAc;GAChB;GACA,IAAI,WAAW,KACb,QAAQ,YAAY,WAAW,IAAK,KAAK,KAAK;GAEhD,IAAI,WAAW,KACb,QAAQ,OAAO,UAAmB;IAChC,WAAW,IAAK,KAAK,OAAO,KAAK;GACnC;GAEF,OAAO,eAAe,eAAe,MAAM,OAAO;EACpD,OACE,cAA2C,QAAS,MAAkC;CAE1F;CAGF,OAAO;AACT"}
@@ -1,18 +1,30 @@
1
+ /*
2
+ * Copyright 2020 Adobe. All rights reserved.
3
+ * This file is licensed to you under the Apache License, Version 2.0 (the "License");
4
+ * you may not use this file except in compliance with the License. You may obtain a copy
5
+ * of the License at http://www.apache.org/licenses/LICENSE-2.0
6
+ *
7
+ * Unless required by applicable law or agreed to in writing, software distributed under
8
+ * the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS
9
+ * OF ANY KIND, either express or implied. See the License for the specific language
10
+ * governing permissions and limitations under the License.
11
+ */
12
+ // Ported to SolidJS for Proyecto Viviana; based on packages/react-aria/src/utils/filterDOMProps.ts
1
13
  //#region src/utils/filterDOMProps.ts
2
14
  /**
3
15
  * filterDOMProps for Solidaria
4
16
  *
5
17
  * Filters out all props that aren't valid DOM props.
6
- * This is a 1:1 port of @react-aria/utils filterDOMProps.
18
+ * Ported from packages/react-aria/src/utils/filterDOMProps.ts.
7
19
  */
8
- const DOMPropNames = new Set(["id"]);
9
- const labelablePropNames = new Set([
20
+ const DOMPropNames = /* @__PURE__ */ new Set(["id"]);
21
+ const labelablePropNames = /* @__PURE__ */ new Set([
10
22
  "aria-label",
11
23
  "aria-labelledby",
12
24
  "aria-describedby",
13
25
  "aria-details"
14
26
  ]);
15
- const linkPropNames = new Set([
27
+ const linkPropNames = /* @__PURE__ */ new Set([
16
28
  "href",
17
29
  "hrefLang",
18
30
  "target",
@@ -21,14 +33,14 @@ const linkPropNames = new Set([
21
33
  "ping",
22
34
  "referrerPolicy"
23
35
  ]);
24
- const globalAttrs = new Set([
36
+ const globalAttrs = /* @__PURE__ */ new Set([
25
37
  "dir",
26
38
  "lang",
27
39
  "hidden",
28
40
  "inert",
29
41
  "translate"
30
42
  ]);
31
- const globalEvents = new Set([
43
+ const globalEvents = /* @__PURE__ */ new Set([
32
44
  "onClick",
33
45
  "onAuxClick",
34
46
  "onContextMenu",
@@ -73,7 +85,20 @@ const propRe = /^(data-.*)$/;
73
85
  function filterDOMProps(props, opts = {}) {
74
86
  const { labelable, isLink, global, events = global, propNames } = opts;
75
87
  const filteredProps = {};
76
- for (const prop in props) if (Object.prototype.hasOwnProperty.call(props, prop) && (DOMPropNames.has(prop) || labelable && labelablePropNames.has(prop) || isLink && linkPropNames.has(prop) || global && globalAttrs.has(prop) || events && (globalEvents.has(prop) || prop.endsWith("Capture") && globalEvents.has(prop.slice(0, -7))) || propNames?.has(prop) || propRe.test(prop))) filteredProps[prop] = props[prop];
88
+ for (const prop in props) if (Object.prototype.hasOwnProperty.call(props, prop) && (DOMPropNames.has(prop) || labelable && labelablePropNames.has(prop) || isLink && linkPropNames.has(prop) || global && globalAttrs.has(prop) || events && (globalEvents.has(prop) || prop.endsWith("Capture") && globalEvents.has(prop.slice(0, -7))) || propNames?.has(prop) || propRe.test(prop))) {
89
+ const descriptor = Object.getOwnPropertyDescriptor(props, prop);
90
+ if (descriptor && (descriptor.get || descriptor.set)) {
91
+ const defined = {
92
+ enumerable: true,
93
+ configurable: true
94
+ };
95
+ if (descriptor.get) defined.get = () => descriptor.get.call(props);
96
+ if (descriptor.set) defined.set = (value) => {
97
+ descriptor.set.call(props, value);
98
+ };
99
+ Object.defineProperty(filteredProps, prop, defined);
100
+ } else filteredProps[prop] = props[prop];
101
+ }
77
102
  return filteredProps;
78
103
  }
79
104
  //#endregion
@@ -1 +1 @@
1
- {"version":3,"file":"filterDOMProps.jsx","names":[],"sources":["../../src/utils/filterDOMProps.ts"],"sourcesContent":["/**\n * filterDOMProps for Solidaria\n *\n * Filters out all props that aren't valid DOM props.\n * This is a 1:1 port of @react-aria/utils filterDOMProps.\n */\n\nconst DOMPropNames = new Set([\"id\"]);\n\nconst labelablePropNames = new Set([\n \"aria-label\",\n \"aria-labelledby\",\n \"aria-describedby\",\n \"aria-details\",\n]);\n\n// See LinkDOMProps in dom.d.ts.\nconst linkPropNames = new Set([\n \"href\",\n \"hrefLang\",\n \"target\",\n \"rel\",\n \"download\",\n \"ping\",\n \"referrerPolicy\",\n]);\n\nconst globalAttrs = new Set([\"dir\", \"lang\", \"hidden\", \"inert\", \"translate\"]);\n\nconst globalEvents = new Set([\n \"onClick\",\n \"onAuxClick\",\n \"onContextMenu\",\n \"onDoubleClick\",\n \"onMouseDown\",\n \"onMouseEnter\",\n \"onMouseLeave\",\n \"onMouseMove\",\n \"onMouseOut\",\n \"onMouseOver\",\n \"onMouseUp\",\n \"onTouchCancel\",\n \"onTouchEnd\",\n \"onTouchMove\",\n \"onTouchStart\",\n \"onPointerDown\",\n \"onPointerMove\",\n \"onPointerUp\",\n \"onPointerCancel\",\n \"onPointerEnter\",\n \"onPointerLeave\",\n \"onPointerOver\",\n \"onPointerOut\",\n \"onGotPointerCapture\",\n \"onLostPointerCapture\",\n \"onScroll\",\n \"onWheel\",\n \"onAnimationStart\",\n \"onAnimationEnd\",\n \"onAnimationIteration\",\n \"onTransitionCancel\",\n \"onTransitionEnd\",\n \"onTransitionRun\",\n \"onTransitionStart\",\n]);\n\nconst propRe = /^(data-.*)$/;\n\nexport interface FilterDOMPropsOptions {\n /**\n * If labelling associated aria properties should be included in the filter.\n */\n labelable?: boolean;\n /** Whether the element is a link and should include DOM props for <a> elements. */\n isLink?: boolean;\n /** Whether to include global DOM attributes. */\n global?: boolean;\n /** Whether to include DOM events. */\n events?: boolean;\n /**\n * A Set of other property names that should be included in the filter.\n */\n propNames?: Set<string>;\n}\n\n/**\n * Filters out all props that aren't valid DOM props or defined via override prop obj.\n * @param props - The component props to be filtered.\n * @param opts - Props to override.\n */\nexport function filterDOMProps<T extends object>(\n props: T,\n opts: FilterDOMPropsOptions = {},\n): Partial<T> {\n const { labelable, isLink, global, events = global, propNames } = opts;\n const filteredProps: Partial<T> = {};\n\n for (const prop in props) {\n if (\n Object.prototype.hasOwnProperty.call(props, prop) &&\n (DOMPropNames.has(prop) ||\n (labelable && labelablePropNames.has(prop)) ||\n (isLink && linkPropNames.has(prop)) ||\n (global && globalAttrs.has(prop)) ||\n (events &&\n (globalEvents.has(prop) ||\n (prop.endsWith(\"Capture\") && globalEvents.has(prop.slice(0, -7))))) ||\n propNames?.has(prop) ||\n propRe.test(prop))\n ) {\n (filteredProps as Record<string, unknown>)[prop] = props[prop];\n }\n }\n\n return filteredProps;\n}\n"],"mappings":";;;;;;;AAOA,MAAM,eAAe,IAAI,IAAI,CAAC,IAAI,CAAC;AAEnC,MAAM,qBAAqB,IAAI,IAAI;CACjC;CACA;CACA;CACA;AACF,CAAC;AAGD,MAAM,gBAAgB,IAAI,IAAI;CAC5B;CACA;CACA;CACA;CACA;CACA;CACA;AACF,CAAC;AAED,MAAM,cAAc,IAAI,IAAI;CAAC;CAAO;CAAQ;CAAU;CAAS;AAAW,CAAC;AAE3E,MAAM,eAAe,IAAI,IAAI;CAC3B;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;AACF,CAAC;AAED,MAAM,SAAS;;;;;;AAwBf,SAAgB,eACd,OACA,OAA8B,CAAC,GACnB;CACZ,MAAM,EAAE,WAAW,QAAQ,QAAQ,SAAS,QAAQ,cAAc;CAClE,MAAM,gBAA4B,CAAC;CAEnC,KAAK,MAAM,QAAQ,OACjB,IACE,OAAO,UAAU,eAAe,KAAK,OAAO,IAAI,MAC/C,aAAa,IAAI,IAAI,KACnB,aAAa,mBAAmB,IAAI,IAAI,KACxC,UAAU,cAAc,IAAI,IAAI,KAChC,UAAU,YAAY,IAAI,IAAI,KAC9B,WACE,aAAa,IAAI,IAAI,KACnB,KAAK,SAAS,SAAS,KAAK,aAAa,IAAI,KAAK,MAAM,GAAG,EAAE,CAAC,MACnE,WAAW,IAAI,IAAI,KACnB,OAAO,KAAK,IAAI,IAElB,cAA2C,QAAQ,MAAM;CAI7D,OAAO;AACT"}
1
+ {"version":3,"file":"filterDOMProps.jsx","names":[],"sources":["../../src/utils/filterDOMProps.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/utils/filterDOMProps.ts\n\n/**\n * filterDOMProps for Solidaria\n *\n * Filters out all props that aren't valid DOM props.\n * Ported from packages/react-aria/src/utils/filterDOMProps.ts.\n */\n\nconst DOMPropNames = new Set([\"id\"]);\n\nconst labelablePropNames = new Set([\n \"aria-label\",\n \"aria-labelledby\",\n \"aria-describedby\",\n \"aria-details\",\n]);\n\n// See LinkDOMProps in dom.d.ts.\nconst linkPropNames = new Set([\n \"href\",\n \"hrefLang\",\n \"target\",\n \"rel\",\n \"download\",\n \"ping\",\n \"referrerPolicy\",\n]);\n\nconst globalAttrs = new Set([\"dir\", \"lang\", \"hidden\", \"inert\", \"translate\"]);\n\nconst globalEvents = new Set([\n \"onClick\",\n \"onAuxClick\",\n \"onContextMenu\",\n \"onDoubleClick\",\n \"onMouseDown\",\n \"onMouseEnter\",\n \"onMouseLeave\",\n \"onMouseMove\",\n \"onMouseOut\",\n \"onMouseOver\",\n \"onMouseUp\",\n \"onTouchCancel\",\n \"onTouchEnd\",\n \"onTouchMove\",\n \"onTouchStart\",\n \"onPointerDown\",\n \"onPointerMove\",\n \"onPointerUp\",\n \"onPointerCancel\",\n \"onPointerEnter\",\n \"onPointerLeave\",\n \"onPointerOver\",\n \"onPointerOut\",\n \"onGotPointerCapture\",\n \"onLostPointerCapture\",\n \"onScroll\",\n \"onWheel\",\n \"onAnimationStart\",\n \"onAnimationEnd\",\n \"onAnimationIteration\",\n \"onTransitionCancel\",\n \"onTransitionEnd\",\n \"onTransitionRun\",\n \"onTransitionStart\",\n]);\n\nconst propRe = /^(data-.*)$/;\n\nexport interface FilterDOMPropsOptions {\n /**\n * If labelling associated aria properties should be included in the filter.\n */\n labelable?: boolean;\n /** Whether the element is a link and should include DOM props for <a> elements. */\n isLink?: boolean;\n /** Whether to include global DOM attributes. */\n global?: boolean;\n /** Whether to include DOM events. */\n events?: boolean;\n /**\n * A Set of other property names that should be included in the filter.\n */\n propNames?: Set<string>;\n}\n\n/**\n * Filters out all props that aren't valid DOM props or defined via override prop obj.\n * @param props - The component props to be filtered.\n * @param opts - Props to override.\n */\nexport function filterDOMProps<T extends object>(\n props: T,\n opts: FilterDOMPropsOptions = {},\n): Partial<T> {\n const { labelable, isLink, global, events = global, propNames } = opts;\n const filteredProps: Partial<T> = {};\n\n for (const prop in props) {\n if (\n Object.prototype.hasOwnProperty.call(props, prop) &&\n (DOMPropNames.has(prop) ||\n (labelable && labelablePropNames.has(prop)) ||\n (isLink && linkPropNames.has(prop)) ||\n (global && globalAttrs.has(prop)) ||\n (events &&\n (globalEvents.has(prop) ||\n (prop.endsWith(\"Capture\") && globalEvents.has(prop.slice(0, -7))))) ||\n propNames?.has(prop) ||\n propRe.test(prop))\n ) {\n const descriptor = Object.getOwnPropertyDescriptor(props, prop);\n if (descriptor && (descriptor.get || descriptor.set)) {\n // React props are plain values, so upstream copies them; Solid keeps the getter.\n const defined: PropertyDescriptor = {\n enumerable: true,\n configurable: true,\n };\n if (descriptor.get) {\n defined.get = () => descriptor.get!.call(props);\n }\n if (descriptor.set) {\n defined.set = (value: unknown) => {\n descriptor.set!.call(props, value);\n };\n }\n Object.defineProperty(filteredProps, prop, defined);\n } else {\n (filteredProps as Record<string, unknown>)[prop] = (props as Record<string, unknown>)[prop];\n }\n }\n }\n\n return filteredProps;\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;AAqBA,MAAM,+BAAe,IAAI,IAAI,CAAC,IAAI,CAAC;AAEnC,MAAM,qCAAqB,IAAI,IAAI;CACjC;CACA;CACA;CACA;AACF,CAAC;AAGD,MAAM,gCAAgB,IAAI,IAAI;CAC5B;CACA;CACA;CACA;CACA;CACA;CACA;AACF,CAAC;AAED,MAAM,8BAAc,IAAI,IAAI;CAAC;CAAO;CAAQ;CAAU;CAAS;AAAW,CAAC;AAE3E,MAAM,+BAAe,IAAI,IAAI;CAC3B;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;AACF,CAAC;AAED,MAAM,SAAS;;;;;;AAwBf,SAAgB,eACd,OACA,OAA8B,CAAC,GACnB;CACZ,MAAM,EAAE,WAAW,QAAQ,QAAQ,SAAS,QAAQ,cAAc;CAClE,MAAM,gBAA4B,CAAC;CAEnC,KAAK,MAAM,QAAQ,OACjB,IACE,OAAO,UAAU,eAAe,KAAK,OAAO,IAAI,MAC/C,aAAa,IAAI,IAAI,KACnB,aAAa,mBAAmB,IAAI,IAAI,KACxC,UAAU,cAAc,IAAI,IAAI,KAChC,UAAU,YAAY,IAAI,IAAI,KAC9B,WACE,aAAa,IAAI,IAAI,KACnB,KAAK,SAAS,SAAS,KAAK,aAAa,IAAI,KAAK,MAAM,GAAG,EAAE,CAAC,MACnE,WAAW,IAAI,IAAI,KACnB,OAAO,KAAK,IAAI,IAClB;EACA,MAAM,aAAa,OAAO,yBAAyB,OAAO,IAAI;EAC9D,IAAI,eAAe,WAAW,OAAO,WAAW,MAAM;GAEpD,MAAM,UAA8B;IAClC,YAAY;IACZ,cAAc;GAChB;GACA,IAAI,WAAW,KACb,QAAQ,YAAY,WAAW,IAAK,KAAK,KAAK;GAEhD,IAAI,WAAW,KACb,QAAQ,OAAO,UAAmB;IAChC,WAAW,IAAK,KAAK,OAAO,KAAK;GACnC;GAEF,OAAO,eAAe,eAAe,MAAM,OAAO;EACpD,OACE,cAA2C,QAAS,MAAkC;CAE1F;CAGF,OAAO;AACT"}