@proyecto-viviana/solidaria 0.3.0 → 0.4.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 (566) hide show
  1. package/dist/_chunk/actiongroup.js +207 -0
  2. package/dist/_chunk/actiongroup.js.map +1 -0
  3. package/dist/_chunk/actiongroup.jsx +207 -0
  4. package/dist/_chunk/actiongroup.jsx.map +1 -0
  5. package/dist/_chunk/ariaHideOutside.js +122 -0
  6. package/dist/_chunk/ariaHideOutside.js.map +1 -0
  7. package/dist/_chunk/ariaHideOutside.jsx +122 -0
  8. package/dist/_chunk/ariaHideOutside.jsx.map +1 -0
  9. package/dist/_chunk/autocomplete.js +196 -0
  10. package/dist/_chunk/autocomplete.js.map +1 -0
  11. package/dist/_chunk/autocomplete.jsx +196 -0
  12. package/dist/_chunk/autocomplete.jsx.map +1 -0
  13. package/dist/_chunk/breadcrumbs.js +119 -0
  14. package/dist/_chunk/breadcrumbs.js.map +1 -0
  15. package/dist/_chunk/breadcrumbs.jsx +119 -0
  16. package/dist/_chunk/breadcrumbs.jsx.map +1 -0
  17. package/dist/_chunk/button.js +276 -0
  18. package/dist/_chunk/button.js.map +1 -0
  19. package/dist/_chunk/button.jsx +276 -0
  20. package/dist/_chunk/button.jsx.map +1 -0
  21. package/dist/_chunk/calendar.js +1036 -0
  22. package/dist/_chunk/calendar.js.map +1 -0
  23. package/dist/_chunk/calendar.jsx +1036 -0
  24. package/dist/_chunk/calendar.jsx.map +1 -0
  25. package/dist/_chunk/checkbox.js +234 -0
  26. package/dist/_chunk/checkbox.js.map +1 -0
  27. package/dist/_chunk/checkbox.jsx +234 -0
  28. package/dist/_chunk/checkbox.jsx.map +1 -0
  29. package/dist/_chunk/color.js +1174 -0
  30. package/dist/_chunk/color.js.map +1 -0
  31. package/dist/_chunk/color.jsx +1174 -0
  32. package/dist/_chunk/color.jsx.map +1 -0
  33. package/dist/_chunk/combobox.js +436 -0
  34. package/dist/_chunk/combobox.js.map +1 -0
  35. package/dist/_chunk/combobox.jsx +436 -0
  36. package/dist/_chunk/combobox.jsx.map +1 -0
  37. package/dist/_chunk/createCollator.js +229 -0
  38. package/dist/_chunk/createCollator.js.map +1 -0
  39. package/dist/_chunk/createCollator.jsx +223 -0
  40. package/dist/_chunk/createCollator.jsx.map +1 -0
  41. package/dist/_chunk/createCollectionRowInteraction.js +133 -0
  42. package/dist/_chunk/createCollectionRowInteraction.js.map +1 -0
  43. package/dist/_chunk/createCollectionRowInteraction.jsx +133 -0
  44. package/dist/_chunk/createCollectionRowInteraction.jsx.map +1 -0
  45. package/dist/_chunk/createField.js +54 -0
  46. package/dist/_chunk/createField.js.map +1 -0
  47. package/dist/_chunk/createField.jsx +54 -0
  48. package/dist/_chunk/createField.jsx.map +1 -0
  49. package/dist/_chunk/createFocus.js +101 -0
  50. package/dist/_chunk/createFocus.js.map +1 -0
  51. package/dist/_chunk/createFocus.jsx +101 -0
  52. package/dist/_chunk/createFocus.jsx.map +1 -0
  53. package/dist/_chunk/createFocusRing.js +54 -0
  54. package/dist/_chunk/createFocusRing.js.map +1 -0
  55. package/dist/_chunk/createFocusRing.jsx +54 -0
  56. package/dist/_chunk/createFocusRing.jsx.map +1 -0
  57. package/dist/_chunk/createFocusWithin.js +121 -0
  58. package/dist/_chunk/createFocusWithin.js.map +1 -0
  59. package/dist/_chunk/createFocusWithin.jsx +121 -0
  60. package/dist/_chunk/createFocusWithin.jsx.map +1 -0
  61. package/dist/_chunk/createFocusable.js +131 -0
  62. package/dist/_chunk/createFocusable.js.map +1 -0
  63. package/dist/_chunk/createFocusable.jsx +131 -0
  64. package/dist/_chunk/createFocusable.jsx.map +1 -0
  65. package/dist/_chunk/createFormValidation.js +135 -0
  66. package/dist/_chunk/createFormValidation.js.map +1 -0
  67. package/dist/_chunk/createFormValidation.jsx +135 -0
  68. package/dist/_chunk/createFormValidation.jsx.map +1 -0
  69. package/dist/_chunk/createHover.js +130 -0
  70. package/dist/_chunk/createHover.js.map +1 -0
  71. package/dist/_chunk/createHover.jsx +130 -0
  72. package/dist/_chunk/createHover.jsx.map +1 -0
  73. package/dist/_chunk/createInteractionModality.js +269 -0
  74. package/dist/_chunk/createInteractionModality.js.map +1 -0
  75. package/dist/_chunk/createInteractionModality.jsx +269 -0
  76. package/dist/_chunk/createInteractionModality.jsx.map +1 -0
  77. package/dist/_chunk/createLabel.js +46 -0
  78. package/dist/_chunk/createLabel.js.map +1 -0
  79. package/dist/_chunk/createLabel.jsx +46 -0
  80. package/dist/_chunk/createLabel.jsx.map +1 -0
  81. package/dist/_chunk/createLabels.js +31 -0
  82. package/dist/_chunk/createLabels.js.map +1 -0
  83. package/dist/_chunk/createLabels.jsx +31 -0
  84. package/dist/_chunk/createLabels.jsx.map +1 -0
  85. package/dist/_chunk/createLandmark.js +198 -0
  86. package/dist/_chunk/createLandmark.js.map +1 -0
  87. package/dist/_chunk/createLandmark.jsx +198 -0
  88. package/dist/_chunk/createLandmark.jsx.map +1 -0
  89. package/dist/_chunk/createLongPress.js +91 -0
  90. package/dist/_chunk/createLongPress.js.map +1 -0
  91. package/dist/_chunk/createLongPress.jsx +91 -0
  92. package/dist/_chunk/createLongPress.jsx.map +1 -0
  93. package/dist/_chunk/createOverlay.js +327 -0
  94. package/dist/_chunk/createOverlay.js.map +1 -0
  95. package/dist/_chunk/createOverlay.jsx +327 -0
  96. package/dist/_chunk/createOverlay.jsx.map +1 -0
  97. package/dist/_chunk/createPress.js +526 -0
  98. package/dist/_chunk/createPress.js.map +1 -0
  99. package/dist/_chunk/createPress.jsx +526 -0
  100. package/dist/_chunk/createPress.jsx.map +1 -0
  101. package/dist/_chunk/createProgressBar.js +81 -0
  102. package/dist/_chunk/createProgressBar.js.map +1 -0
  103. package/dist/_chunk/createProgressBar.jsx +81 -0
  104. package/dist/_chunk/createProgressBar.jsx.map +1 -0
  105. package/dist/_chunk/createSelectableItem.js +298 -0
  106. package/dist/_chunk/createSelectableItem.js.map +1 -0
  107. package/dist/_chunk/createSelectableItem.jsx +298 -0
  108. package/dist/_chunk/createSelectableItem.jsx.map +1 -0
  109. package/dist/_chunk/createToggle.js +158 -0
  110. package/dist/_chunk/createToggle.js.map +1 -0
  111. package/dist/_chunk/createToggle.jsx +158 -0
  112. package/dist/_chunk/createToggle.jsx.map +1 -0
  113. package/dist/_chunk/createTypeSelect.js +125 -0
  114. package/dist/_chunk/createTypeSelect.js.map +1 -0
  115. package/dist/_chunk/createTypeSelect.jsx +125 -0
  116. package/dist/_chunk/createTypeSelect.jsx.map +1 -0
  117. package/dist/_chunk/datepicker.js +1393 -0
  118. package/dist/_chunk/datepicker.js.map +1 -0
  119. package/dist/_chunk/datepicker.jsx +1393 -0
  120. package/dist/_chunk/datepicker.jsx.map +1 -0
  121. package/dist/_chunk/dialog.js +62 -0
  122. package/dist/_chunk/dialog.js.map +1 -0
  123. package/dist/_chunk/dialog.jsx +62 -0
  124. package/dist/_chunk/dialog.jsx.map +1 -0
  125. package/dist/_chunk/disclosure.js +185 -0
  126. package/dist/_chunk/disclosure.js.map +1 -0
  127. package/dist/_chunk/disclosure.jsx +185 -0
  128. package/dist/_chunk/disclosure.jsx.map +1 -0
  129. package/dist/_chunk/dnd.js +1304 -0
  130. package/dist/_chunk/dnd.js.map +1 -0
  131. package/dist/_chunk/dnd.jsx +1304 -0
  132. package/dist/_chunk/dnd.jsx.map +1 -0
  133. package/dist/_chunk/env.js +105 -0
  134. package/dist/_chunk/env.js.map +1 -0
  135. package/dist/_chunk/env.jsx +105 -0
  136. package/dist/_chunk/env.jsx.map +1 -0
  137. package/dist/_chunk/filterDOMProps.js +82 -0
  138. package/dist/_chunk/filterDOMProps.js.map +1 -0
  139. package/dist/_chunk/filterDOMProps.jsx +82 -0
  140. package/dist/_chunk/filterDOMProps.jsx.map +1 -0
  141. package/dist/_chunk/focus.js +399 -0
  142. package/dist/_chunk/focus.js.map +1 -0
  143. package/dist/_chunk/focus.jsx +399 -0
  144. package/dist/_chunk/focus.jsx.map +1 -0
  145. package/dist/_chunk/focus2.js +895 -0
  146. package/dist/_chunk/focus2.js.map +1 -0
  147. package/dist/_chunk/focus2.jsx +870 -0
  148. package/dist/_chunk/focus2.jsx.map +1 -0
  149. package/dist/_chunk/form.js +39 -0
  150. package/dist/_chunk/form.js.map +1 -0
  151. package/dist/_chunk/form.jsx +39 -0
  152. package/dist/_chunk/form.jsx.map +1 -0
  153. package/dist/_chunk/grid.js +623 -0
  154. package/dist/_chunk/grid.js.map +1 -0
  155. package/dist/_chunk/grid.jsx +623 -0
  156. package/dist/_chunk/grid.jsx.map +1 -0
  157. package/dist/_chunk/gridlist.js +364 -0
  158. package/dist/_chunk/gridlist.js.map +1 -0
  159. package/dist/_chunk/gridlist.jsx +364 -0
  160. package/dist/_chunk/gridlist.jsx.map +1 -0
  161. package/dist/_chunk/i18n.js +254 -0
  162. package/dist/_chunk/i18n.js.map +1 -0
  163. package/dist/_chunk/i18n.jsx +254 -0
  164. package/dist/_chunk/i18n.jsx.map +1 -0
  165. package/dist/_chunk/interactions.js +241 -0
  166. package/dist/_chunk/interactions.js.map +1 -0
  167. package/dist/_chunk/interactions.jsx +237 -0
  168. package/dist/_chunk/interactions.jsx.map +1 -0
  169. package/dist/_chunk/link.js +96 -0
  170. package/dist/_chunk/link.js.map +1 -0
  171. package/dist/_chunk/link.jsx +96 -0
  172. package/dist/_chunk/link.jsx.map +1 -0
  173. package/dist/_chunk/listbox.js +324 -0
  174. package/dist/_chunk/listbox.js.map +1 -0
  175. package/dist/_chunk/listbox.jsx +324 -0
  176. package/dist/_chunk/listbox.jsx.map +1 -0
  177. package/dist/_chunk/live-announcer.js +207 -0
  178. package/dist/_chunk/live-announcer.js.map +1 -0
  179. package/dist/_chunk/live-announcer.jsx +207 -0
  180. package/dist/_chunk/live-announcer.jsx.map +1 -0
  181. package/dist/_chunk/menu.js +518 -0
  182. package/dist/_chunk/menu.js.map +1 -0
  183. package/dist/_chunk/menu.jsx +518 -0
  184. package/dist/_chunk/menu.jsx.map +1 -0
  185. package/dist/_chunk/meter.js +33 -0
  186. package/dist/_chunk/meter.js.map +1 -0
  187. package/dist/_chunk/meter.jsx +33 -0
  188. package/dist/_chunk/meter.jsx.map +1 -0
  189. package/dist/_chunk/numberfield.js +258 -0
  190. package/dist/_chunk/numberfield.js.map +1 -0
  191. package/dist/_chunk/numberfield.jsx +258 -0
  192. package/dist/_chunk/numberfield.jsx.map +1 -0
  193. package/dist/_chunk/overlays.js +186 -0
  194. package/dist/_chunk/overlays.js.map +1 -0
  195. package/dist/_chunk/overlays.jsx +162 -0
  196. package/dist/_chunk/overlays.jsx.map +1 -0
  197. package/dist/_chunk/popover.js +574 -0
  198. package/dist/_chunk/popover.js.map +1 -0
  199. package/dist/_chunk/popover.jsx +574 -0
  200. package/dist/_chunk/popover.jsx.map +1 -0
  201. package/dist/_chunk/radio.js +319 -0
  202. package/dist/_chunk/radio.js.map +1 -0
  203. package/dist/_chunk/radio.jsx +319 -0
  204. package/dist/_chunk/radio.jsx.map +1 -0
  205. package/dist/_chunk/searchfield.js +209 -0
  206. package/dist/_chunk/searchfield.js.map +1 -0
  207. package/dist/_chunk/searchfield.jsx +209 -0
  208. package/dist/_chunk/searchfield.jsx.map +1 -0
  209. package/dist/_chunk/select.js +403 -0
  210. package/dist/_chunk/select.js.map +1 -0
  211. package/dist/_chunk/select.jsx +394 -0
  212. package/dist/_chunk/select.jsx.map +1 -0
  213. package/dist/_chunk/selection.js +679 -0
  214. package/dist/_chunk/selection.js.map +1 -0
  215. package/dist/_chunk/selection.jsx +679 -0
  216. package/dist/_chunk/selection.jsx.map +1 -0
  217. package/dist/_chunk/separator.js +29 -0
  218. package/dist/_chunk/separator.js.map +1 -0
  219. package/dist/_chunk/separator.jsx +29 -0
  220. package/dist/_chunk/separator.jsx.map +1 -0
  221. package/dist/_chunk/slider.js +255 -0
  222. package/dist/_chunk/slider.js.map +1 -0
  223. package/dist/_chunk/slider.jsx +255 -0
  224. package/dist/_chunk/slider.jsx.map +1 -0
  225. package/dist/_chunk/steplist.js +66 -0
  226. package/dist/_chunk/steplist.js.map +1 -0
  227. package/dist/_chunk/steplist.jsx +66 -0
  228. package/dist/_chunk/steplist.jsx.map +1 -0
  229. package/dist/_chunk/switch.js +34 -0
  230. package/dist/_chunk/switch.js.map +1 -0
  231. package/dist/_chunk/switch.jsx +34 -0
  232. package/dist/_chunk/switch.jsx.map +1 -0
  233. package/dist/_chunk/table.js +1051 -0
  234. package/dist/_chunk/table.js.map +1 -0
  235. package/dist/_chunk/table.jsx +1051 -0
  236. package/dist/_chunk/table.jsx.map +1 -0
  237. package/dist/_chunk/tabs.js +260 -0
  238. package/dist/_chunk/tabs.js.map +1 -0
  239. package/dist/_chunk/tabs.jsx +260 -0
  240. package/dist/_chunk/tabs.jsx.map +1 -0
  241. package/dist/_chunk/tag.js +286 -0
  242. package/dist/_chunk/tag.js.map +1 -0
  243. package/dist/_chunk/tag.jsx +286 -0
  244. package/dist/_chunk/tag.jsx.map +1 -0
  245. package/dist/_chunk/textfield.js +109 -0
  246. package/dist/_chunk/textfield.js.map +1 -0
  247. package/dist/_chunk/textfield.jsx +109 -0
  248. package/dist/_chunk/textfield.jsx.map +1 -0
  249. package/dist/_chunk/toast.js +250 -0
  250. package/dist/_chunk/toast.js.map +1 -0
  251. package/dist/_chunk/toast.jsx +250 -0
  252. package/dist/_chunk/toast.jsx.map +1 -0
  253. package/dist/_chunk/toolbar.js +258 -0
  254. package/dist/_chunk/toolbar.js.map +1 -0
  255. package/dist/_chunk/toolbar.jsx +258 -0
  256. package/dist/_chunk/toolbar.jsx.map +1 -0
  257. package/dist/_chunk/tooltip.js +185 -0
  258. package/dist/_chunk/tooltip.js.map +1 -0
  259. package/dist/_chunk/tooltip.jsx +185 -0
  260. package/dist/_chunk/tooltip.jsx.map +1 -0
  261. package/dist/_chunk/tree.js +424 -0
  262. package/dist/_chunk/tree.js.map +1 -0
  263. package/dist/_chunk/tree.jsx +424 -0
  264. package/dist/_chunk/tree.jsx.map +1 -0
  265. package/dist/_chunk/utils.js +665 -0
  266. package/dist/_chunk/utils.js.map +1 -0
  267. package/dist/_chunk/utils.jsx +665 -0
  268. package/dist/_chunk/utils.jsx.map +1 -0
  269. package/dist/_chunk/visually-hidden.js +92 -0
  270. package/dist/_chunk/visually-hidden.js.map +1 -0
  271. package/dist/_chunk/visually-hidden.jsx +92 -0
  272. package/dist/_chunk/visually-hidden.jsx.map +1 -0
  273. package/dist/actiongroup/index.js +2 -0
  274. package/dist/actiongroup/index.jsx +2 -0
  275. package/dist/autocomplete/createAutocomplete.d.ts +2 -0
  276. package/dist/autocomplete/createAutocomplete.d.ts.map +1 -1
  277. package/dist/autocomplete/index.js +2 -0
  278. package/dist/autocomplete/index.jsx +2 -0
  279. package/dist/breadcrumbs/index.js +2 -0
  280. package/dist/breadcrumbs/index.jsx +2 -0
  281. package/dist/button/index.js +2 -0
  282. package/dist/button/index.jsx +2 -0
  283. package/dist/calendar/createCalendar.d.ts.map +1 -1
  284. package/dist/calendar/createCalendarCell.d.ts.map +1 -1
  285. package/dist/calendar/createCalendarGrid.d.ts.map +1 -1
  286. package/dist/calendar/createCalendarMonthPicker.d.ts +41 -0
  287. package/dist/calendar/createCalendarMonthPicker.d.ts.map +1 -0
  288. package/dist/calendar/createCalendarYearPicker.d.ts +49 -0
  289. package/dist/calendar/createCalendarYearPicker.d.ts.map +1 -0
  290. package/dist/calendar/createRangeCalendar.d.ts.map +1 -1
  291. package/dist/calendar/index.d.ts +2 -0
  292. package/dist/calendar/index.d.ts.map +1 -1
  293. package/dist/calendar/index.js +2 -0
  294. package/dist/calendar/index.jsx +2 -0
  295. package/dist/calendar/utils.d.ts +4 -0
  296. package/dist/calendar/utils.d.ts.map +1 -1
  297. package/dist/checkbox/createCheckbox.d.ts +4 -0
  298. package/dist/checkbox/createCheckbox.d.ts.map +1 -1
  299. package/dist/checkbox/createCheckboxGroupItem.d.ts.map +1 -1
  300. package/dist/checkbox/index.js +2 -0
  301. package/dist/checkbox/index.jsx +2 -0
  302. package/dist/collections/index.js +160 -0
  303. package/dist/collections/index.js.map +1 -0
  304. package/dist/collections/index.jsx +160 -0
  305. package/dist/collections/index.jsx.map +1 -0
  306. package/dist/color/index.js +2 -0
  307. package/dist/color/index.jsx +2 -0
  308. package/dist/combobox/index.js +2 -0
  309. package/dist/combobox/index.jsx +2 -0
  310. package/dist/datepicker/createDateSegment.d.ts.map +1 -1
  311. package/dist/datepicker/index.js +2 -0
  312. package/dist/datepicker/index.jsx +2 -0
  313. package/dist/dialog/index.js +2 -0
  314. package/dist/dialog/index.jsx +2 -0
  315. package/dist/disclosure/index.js +2 -0
  316. package/dist/disclosure/index.jsx +2 -0
  317. package/dist/dnd/createDroppableCollection.d.ts.map +1 -1
  318. package/dist/dnd/index.js +2 -0
  319. package/dist/dnd/index.jsx +2 -0
  320. package/dist/dnd/utils.d.ts +2 -2
  321. package/dist/dnd/utils.d.ts.map +1 -1
  322. package/dist/focus/FocusScope.d.ts.map +1 -1
  323. package/dist/focus/index.js +2 -0
  324. package/dist/focus/index.jsx +2 -0
  325. package/dist/form/createFormValidation.d.ts.map +1 -1
  326. package/dist/form/index.js +3 -0
  327. package/dist/form/index.jsx +3 -0
  328. package/dist/grid/index.js +2 -0
  329. package/dist/grid/index.jsx +2 -0
  330. package/dist/gridlist/createGridList.d.ts +7 -1
  331. package/dist/gridlist/createGridList.d.ts.map +1 -1
  332. package/dist/gridlist/createGridListItem.d.ts +1 -1
  333. package/dist/gridlist/createGridListItem.d.ts.map +1 -1
  334. package/dist/gridlist/createGridListSection.d.ts +15 -0
  335. package/dist/gridlist/createGridListSection.d.ts.map +1 -0
  336. package/dist/gridlist/index.d.ts +2 -1
  337. package/dist/gridlist/index.d.ts.map +1 -1
  338. package/dist/gridlist/index.js +2 -0
  339. package/dist/gridlist/index.jsx +2 -0
  340. package/dist/gridlist/types.d.ts +50 -0
  341. package/dist/gridlist/types.d.ts.map +1 -1
  342. package/dist/i18n/index.js +3 -0
  343. package/dist/i18n/index.jsx +3 -0
  344. package/dist/index.d.ts +7 -3
  345. package/dist/index.d.ts.map +1 -1
  346. package/dist/index.js +71 -18311
  347. package/dist/index.jsx +71 -18242
  348. package/dist/interactions/PressEvent.d.ts +11 -0
  349. package/dist/interactions/PressEvent.d.ts.map +1 -1
  350. package/dist/interactions/createInteractionModality.d.ts +0 -1
  351. package/dist/interactions/createInteractionModality.d.ts.map +1 -1
  352. package/dist/interactions/createKeyboard.d.ts.map +1 -1
  353. package/dist/interactions/createPress.d.ts.map +1 -1
  354. package/dist/interactions/index.js +10 -0
  355. package/dist/interactions/index.jsx +10 -0
  356. package/dist/label/index.js +4 -0
  357. package/dist/label/index.jsx +4 -0
  358. package/dist/landmark/index.js +2 -0
  359. package/dist/landmark/index.jsx +2 -0
  360. package/dist/link/index.js +2 -0
  361. package/dist/link/index.jsx +2 -0
  362. package/dist/listbox/createListBox.d.ts +37 -0
  363. package/dist/listbox/createListBox.d.ts.map +1 -1
  364. package/dist/listbox/createOption.d.ts +6 -0
  365. package/dist/listbox/createOption.d.ts.map +1 -1
  366. package/dist/listbox/index.js +2 -0
  367. package/dist/listbox/index.jsx +2 -0
  368. package/dist/live-announcer/index.js +2 -0
  369. package/dist/live-announcer/index.jsx +2 -0
  370. package/dist/menu/createMenu.d.ts +7 -4
  371. package/dist/menu/createMenu.d.ts.map +1 -1
  372. package/dist/menu/createMenuItem.d.ts +9 -1
  373. package/dist/menu/createMenuItem.d.ts.map +1 -1
  374. package/dist/menu/index.js +2 -0
  375. package/dist/menu/index.jsx +2 -0
  376. package/dist/meter/index.js +2 -0
  377. package/dist/meter/index.jsx +2 -0
  378. package/dist/numberfield/createNumberField.d.ts.map +1 -1
  379. package/dist/numberfield/index.js +2 -0
  380. package/dist/numberfield/index.jsx +2 -0
  381. package/dist/overlays/index.js +4 -0
  382. package/dist/overlays/index.jsx +4 -0
  383. package/dist/popover/calculatePosition.d.ts +2 -0
  384. package/dist/popover/calculatePosition.d.ts.map +1 -1
  385. package/dist/popover/createOverlayPosition.d.ts +8 -0
  386. package/dist/popover/createOverlayPosition.d.ts.map +1 -1
  387. package/dist/popover/index.js +2 -0
  388. package/dist/popover/index.jsx +2 -0
  389. package/dist/progress/index.js +2 -0
  390. package/dist/progress/index.jsx +2 -0
  391. package/dist/radio/createRadio.d.ts +2 -0
  392. package/dist/radio/createRadio.d.ts.map +1 -1
  393. package/dist/radio/index.js +2 -0
  394. package/dist/radio/index.jsx +2 -0
  395. package/dist/searchfield/index.js +2 -0
  396. package/dist/searchfield/index.jsx +2 -0
  397. package/dist/select/createSelect.d.ts.map +1 -1
  398. package/dist/select/index.js +2 -0
  399. package/dist/select/index.jsx +2 -0
  400. package/dist/selection/DOMLayoutDelegate.d.ts +58 -0
  401. package/dist/selection/DOMLayoutDelegate.d.ts.map +1 -0
  402. package/dist/selection/ListKeyboardDelegate.d.ts +95 -0
  403. package/dist/selection/ListKeyboardDelegate.d.ts.map +1 -0
  404. package/dist/selection/constants.d.ts +15 -0
  405. package/dist/selection/constants.d.ts.map +1 -0
  406. package/dist/selection/createCollectionRowInteraction.d.ts +13 -0
  407. package/dist/selection/createCollectionRowInteraction.d.ts.map +1 -0
  408. package/dist/selection/createScrollIntoViewOnFocus.d.ts +31 -0
  409. package/dist/selection/createScrollIntoViewOnFocus.d.ts.map +1 -0
  410. package/dist/selection/createSelectableCollection.d.ts +69 -0
  411. package/dist/selection/createSelectableCollection.d.ts.map +1 -0
  412. package/dist/selection/createSelectableItem.d.ts +154 -0
  413. package/dist/selection/createSelectableItem.d.ts.map +1 -0
  414. package/dist/selection/createSelectableList.d.ts +43 -0
  415. package/dist/selection/createSelectableList.d.ts.map +1 -0
  416. package/dist/selection/createTypeSelect.d.ts.map +1 -1
  417. package/dist/selection/index.d.ts +9 -0
  418. package/dist/selection/index.d.ts.map +1 -1
  419. package/dist/selection/index.js +4 -0
  420. package/dist/selection/index.jsx +4 -0
  421. package/dist/selection/selectItem.d.ts +29 -0
  422. package/dist/selection/selectItem.d.ts.map +1 -0
  423. package/dist/selection/utils.d.ts +40 -0
  424. package/dist/selection/utils.d.ts.map +1 -0
  425. package/dist/separator/index.js +2 -0
  426. package/dist/separator/index.jsx +2 -0
  427. package/dist/slider/createSlider.d.ts.map +1 -1
  428. package/dist/slider/index.js +2 -0
  429. package/dist/slider/index.jsx +2 -0
  430. package/dist/ssr/index.d.ts +17 -0
  431. package/dist/ssr/index.d.ts.map +1 -1
  432. package/dist/ssr/index.js +299 -0
  433. package/dist/ssr/index.js.map +1 -0
  434. package/dist/ssr/index.jsx +292 -0
  435. package/dist/ssr/index.jsx.map +1 -0
  436. package/dist/steplist/index.js +2 -0
  437. package/dist/steplist/index.jsx +2 -0
  438. package/dist/switch/createSwitch.d.ts +4 -0
  439. package/dist/switch/createSwitch.d.ts.map +1 -1
  440. package/dist/switch/index.js +2 -0
  441. package/dist/switch/index.jsx +2 -0
  442. package/dist/table/createTable.d.ts.map +1 -1
  443. package/dist/table/createTableRow.d.ts +1 -1
  444. package/dist/table/createTableRow.d.ts.map +1 -1
  445. package/dist/table/createTableSelectAllCheckbox.d.ts.map +1 -1
  446. package/dist/table/index.js +2 -0
  447. package/dist/table/index.jsx +2 -0
  448. package/dist/table/types.d.ts +27 -1
  449. package/dist/table/types.d.ts.map +1 -1
  450. package/dist/tabs/createTabs.d.ts +4 -3
  451. package/dist/tabs/createTabs.d.ts.map +1 -1
  452. package/dist/tabs/index.js +2 -0
  453. package/dist/tabs/index.jsx +2 -0
  454. package/dist/tag/createTag.d.ts +2 -0
  455. package/dist/tag/createTag.d.ts.map +1 -1
  456. package/dist/tag/index.js +2 -0
  457. package/dist/tag/index.jsx +2 -0
  458. package/dist/textfield/index.js +2 -0
  459. package/dist/textfield/index.jsx +2 -0
  460. package/dist/toast/createToast.d.ts.map +1 -1
  461. package/dist/toast/index.js +2 -0
  462. package/dist/toast/index.jsx +2 -0
  463. package/dist/toggle/createToggle.d.ts +4 -0
  464. package/dist/toggle/createToggle.d.ts.map +1 -1
  465. package/dist/toggle/index.js +3 -0
  466. package/dist/toggle/index.jsx +3 -0
  467. package/dist/toolbar/createToolbar.d.ts +1 -1
  468. package/dist/toolbar/createToolbar.d.ts.map +1 -1
  469. package/dist/toolbar/index.js +2 -0
  470. package/dist/toolbar/index.jsx +2 -0
  471. package/dist/tooltip/index.js +2 -0
  472. package/dist/tooltip/index.jsx +2 -0
  473. package/dist/tree/createTree.d.ts +5 -1
  474. package/dist/tree/createTree.d.ts.map +1 -1
  475. package/dist/tree/createTreeItem.d.ts +1 -1
  476. package/dist/tree/createTreeItem.d.ts.map +1 -1
  477. package/dist/tree/index.js +2 -0
  478. package/dist/tree/index.jsx +2 -0
  479. package/dist/tree/types.d.ts +10 -0
  480. package/dist/tree/types.d.ts.map +1 -1
  481. package/dist/utils/animation.d.ts +60 -0
  482. package/dist/utils/animation.d.ts.map +1 -0
  483. package/dist/utils/dom.d.ts +48 -2
  484. package/dist/utils/dom.d.ts.map +1 -1
  485. package/dist/utils/index.d.ts +4 -1
  486. package/dist/utils/index.d.ts.map +1 -1
  487. package/dist/utils/index.js +5 -0
  488. package/dist/utils/index.jsx +5 -0
  489. package/dist/utils/keyboard.d.ts +17 -0
  490. package/dist/utils/keyboard.d.ts.map +1 -0
  491. package/dist/utils/mergeProps.d.ts.map +1 -1
  492. package/dist/utils/scrollIntoView.d.ts +30 -0
  493. package/dist/utils/scrollIntoView.d.ts.map +1 -0
  494. package/dist/visually-hidden/index.js +2 -0
  495. package/dist/visually-hidden/index.jsx +2 -0
  496. package/package.json +304 -3
  497. package/src/autocomplete/createAutocomplete.ts +67 -21
  498. package/src/calendar/createCalendar.ts +2 -0
  499. package/src/calendar/createCalendarCell.ts +19 -2
  500. package/src/calendar/createCalendarGrid.ts +43 -9
  501. package/src/calendar/createCalendarMonthPicker.ts +105 -0
  502. package/src/calendar/createCalendarYearPicker.ts +144 -0
  503. package/src/calendar/createRangeCalendar.ts +2 -0
  504. package/src/calendar/index.ts +17 -0
  505. package/src/calendar/utils.ts +4 -0
  506. package/src/checkbox/createCheckbox.ts +10 -0
  507. package/src/checkbox/createCheckboxGroupItem.ts +12 -16
  508. package/src/datepicker/createDateSegment.ts +6 -1
  509. package/src/dnd/createDroppableCollection.ts +4 -1
  510. package/src/dnd/utils.ts +27 -3
  511. package/src/focus/FocusScope.tsx +152 -18
  512. package/src/form/createFormValidation.ts +8 -1
  513. package/src/gridlist/createGridList.ts +145 -42
  514. package/src/gridlist/createGridListItem.ts +87 -155
  515. package/src/gridlist/createGridListSection.ts +54 -0
  516. package/src/gridlist/index.ts +3 -0
  517. package/src/gridlist/types.ts +47 -0
  518. package/src/index.ts +40 -0
  519. package/src/interactions/PressEvent.ts +14 -0
  520. package/src/interactions/createInteractionModality.ts +21 -12
  521. package/src/interactions/createKeyboard.ts +10 -0
  522. package/src/interactions/createPress.ts +29 -6
  523. package/src/listbox/createListBox.ts +129 -8
  524. package/src/listbox/createOption.ts +68 -73
  525. package/src/menu/createMenu.ts +93 -16
  526. package/src/menu/createMenuItem.ts +253 -41
  527. package/src/numberfield/createNumberField.ts +82 -14
  528. package/src/popover/calculatePosition.ts +19 -7
  529. package/src/popover/createOverlayPosition.ts +9 -0
  530. package/src/radio/createRadio.ts +19 -2
  531. package/src/select/createSelect.ts +18 -2
  532. package/src/selection/DOMLayoutDelegate.ts +102 -0
  533. package/src/selection/ListKeyboardDelegate.ts +398 -0
  534. package/src/selection/constants.ts +16 -0
  535. package/src/selection/createCollectionRowInteraction.ts +209 -0
  536. package/src/selection/createScrollIntoViewOnFocus.ts +65 -0
  537. package/src/selection/createSelectableCollection.ts +645 -0
  538. package/src/selection/createSelectableItem.ts +498 -0
  539. package/src/selection/createSelectableList.ts +93 -0
  540. package/src/selection/createTypeSelect.ts +112 -51
  541. package/src/selection/index.ts +31 -0
  542. package/src/selection/selectItem.ts +80 -0
  543. package/src/selection/utils.ts +82 -0
  544. package/src/slider/createSlider.ts +48 -1
  545. package/src/ssr/index.tsx +31 -0
  546. package/src/switch/createSwitch.ts +10 -0
  547. package/src/table/createTable.ts +56 -26
  548. package/src/table/createTableRow.ts +198 -203
  549. package/src/table/createTableSelectAllCheckbox.ts +3 -4
  550. package/src/table/types.ts +29 -1
  551. package/src/tabs/createTabs.ts +50 -20
  552. package/src/tag/createTag.ts +9 -4
  553. package/src/toast/createToast.ts +1 -0
  554. package/src/toggle/createToggle.ts +20 -0
  555. package/src/toolbar/createToolbar.ts +43 -42
  556. package/src/tree/createTree.ts +100 -42
  557. package/src/tree/createTreeItem.ts +105 -120
  558. package/src/tree/types.ts +10 -0
  559. package/src/utils/animation.ts +151 -0
  560. package/src/utils/dom.ts +215 -25
  561. package/src/utils/index.ts +8 -0
  562. package/src/utils/keyboard.ts +25 -0
  563. package/src/utils/mergeProps.ts +8 -1
  564. package/src/utils/scrollIntoView.ts +181 -0
  565. package/dist/index.js.map +0 -1
  566. package/dist/index.jsx.map +0 -1
@@ -0,0 +1 @@
1
+ {"version":3,"file":"utils.js","names":[],"sources":["../../src/utils/platform.ts","../../src/utils/scrollIntoView.ts","../../src/utils/geometry.ts","../../src/utils/events.ts","../../src/utils/textSelection.ts","../../src/utils/keyboard.ts","../../src/utils/globalListeners.ts","../../src/utils/createDescription.ts","../../src/utils/animation.ts"],"sourcesContent":["/**\n * Platform detection utilities.\n * Based on @react-aria/utils platform detection.\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 * Scroll-into-view utilities.\n * Based on @react-aria/utils scrollIntoView (react-aria/src/utils/scrollIntoView.ts).\n */\n\nimport { getScrollParents } from \"./dom\";\nimport { isIOS } from \"./platform\";\nimport { isTestEnv } from \"./env\";\n\ninterface ScrollIntoViewOpts {\n /** The position to align items along the block axis in. */\n block?: ScrollLogicalPosition;\n /** The position to align items along the inline axis in. */\n inline?: ScrollLogicalPosition;\n}\n\ninterface ScrollIntoViewportOpts {\n /** The optional containing element of the target to be centered in the viewport. */\n containingElement?: Element | null;\n}\n\n/**\n * Scrolls `scrollView` so that `element` is visible.\n * Similar to `element.scrollIntoView({block: 'nearest'})` (not supported in Edge),\n * but doesn't affect parents above `scrollView`.\n */\nexport function scrollIntoView(\n scrollView: HTMLElement,\n element: HTMLElement,\n opts: ScrollIntoViewOpts = {},\n): void {\n const { block = \"nearest\", inline = \"nearest\" } = opts;\n\n if (scrollView === element) {\n return;\n }\n\n let y = scrollView.scrollTop;\n let x = scrollView.scrollLeft;\n\n const target = element.getBoundingClientRect();\n const view = scrollView.getBoundingClientRect();\n const itemStyle = window.getComputedStyle(element);\n const viewStyle = window.getComputedStyle(scrollView);\n const root = document.scrollingElement || document.documentElement;\n const isRoot = scrollView === root;\n\n const viewTop = scrollView === root ? 0 : view.top;\n const viewBottom = scrollView === root ? scrollView.clientHeight : view.bottom;\n const viewLeft = scrollView === root ? 0 : view.left;\n const viewRight = scrollView === root ? scrollView.clientWidth : view.right;\n\n const scrollMarginTop = parseFloat(itemStyle.scrollMarginTop) || 0;\n const scrollMarginBottom = parseFloat(itemStyle.scrollMarginBottom) || 0;\n const scrollMarginLeft = parseFloat(itemStyle.scrollMarginLeft) || 0;\n const scrollMarginRight = parseFloat(itemStyle.scrollMarginRight) || 0;\n\n const scrollPaddingTop = parseFloat(viewStyle.scrollPaddingTop) || 0;\n const scrollPaddingBottom = parseFloat(viewStyle.scrollPaddingBottom) || 0;\n const scrollPaddingLeft = parseFloat(viewStyle.scrollPaddingLeft) || 0;\n const scrollPaddingRight = parseFloat(viewStyle.scrollPaddingRight) || 0;\n\n const borderTopWidth = parseFloat(viewStyle.borderTopWidth) || 0;\n const borderBottomWidth = parseFloat(viewStyle.borderBottomWidth) || 0;\n const borderLeftWidth = parseFloat(viewStyle.borderLeftWidth) || 0;\n const borderRightWidth = parseFloat(viewStyle.borderRightWidth) || 0;\n\n const scrollAreaTop = target.top - scrollMarginTop;\n const scrollAreaBottom = target.bottom + scrollMarginBottom;\n const scrollAreaLeft = target.left - scrollMarginLeft;\n const scrollAreaRight = target.right + scrollMarginRight;\n\n const scrollBarOffsetX = scrollView === root ? 0 : borderLeftWidth + borderRightWidth;\n const scrollBarOffsetY = scrollView === root ? 0 : borderTopWidth + borderBottomWidth;\n const scrollBarWidth =\n scrollView === root ? 0 : scrollView.offsetWidth - scrollView.clientWidth - scrollBarOffsetX;\n const scrollBarHeight =\n scrollView === root ? 0 : scrollView.offsetHeight - scrollView.clientHeight - scrollBarOffsetY;\n\n const scrollPortTop = viewTop + (isRoot ? 0 : borderTopWidth) + scrollPaddingTop;\n const scrollPortBottom =\n viewBottom - (isRoot ? 0 : borderBottomWidth) - scrollPaddingBottom - scrollBarHeight;\n let scrollPortLeft = viewLeft + (isRoot ? 0 : borderLeftWidth) + scrollPaddingLeft;\n let scrollPortRight = viewRight - (isRoot ? 0 : borderRightWidth) - scrollPaddingRight;\n\n // IOS always positions the scrollbar on the right ¯\\_(ツ)_/¯\n if (viewStyle.direction === \"rtl\" && !isIOS()) {\n scrollPortLeft += scrollBarWidth;\n } else {\n scrollPortRight -= scrollBarWidth;\n }\n\n const shouldScrollBlock = scrollAreaTop < scrollPortTop || scrollAreaBottom > scrollPortBottom;\n const shouldScrollInline = scrollAreaLeft < scrollPortLeft || scrollAreaRight > scrollPortRight;\n\n if (shouldScrollBlock && block === \"start\") {\n y += scrollAreaTop - scrollPortTop;\n } else if (shouldScrollBlock && block === \"center\") {\n y += (scrollAreaTop + scrollAreaBottom) / 2 - (scrollPortTop + scrollPortBottom) / 2;\n } else if (shouldScrollBlock && block === \"end\") {\n y += scrollAreaBottom - scrollPortBottom;\n } else if (shouldScrollBlock && block === \"nearest\") {\n const start = scrollAreaTop - scrollPortTop;\n const end = scrollAreaBottom - scrollPortBottom;\n y += Math.abs(start) <= Math.abs(end) ? start : end;\n }\n\n if (shouldScrollInline && inline === \"start\") {\n x += scrollAreaLeft - scrollPortLeft;\n } else if (shouldScrollInline && inline === \"center\") {\n x += (scrollAreaLeft + scrollAreaRight) / 2 - (scrollPortLeft + scrollPortRight) / 2;\n } else if (shouldScrollInline && inline === \"end\") {\n x += scrollAreaRight - scrollPortRight;\n } else if (shouldScrollInline && inline === \"nearest\") {\n const start = scrollAreaLeft - scrollPortLeft;\n const end = scrollAreaRight - scrollPortRight;\n x += Math.abs(start) <= Math.abs(end) ? start : end;\n }\n\n if (isTestEnv()) {\n scrollView.scrollLeft = x;\n scrollView.scrollTop = y;\n return;\n }\n\n scrollView.scrollTo({ left: x, top: y });\n}\n\n/**\n * Scrolls the `targetElement` so it is visible in the viewport. Accepts an optional\n * `opts.containingElement` that will be centered in the viewport prior to scrolling the\n * targetElement into view. If scrolling is prevented on the body (e.g. targetElement is in a\n * popover), this will only scroll the scroll parents of the targetElement up to but not including\n * the body itself.\n */\nexport function scrollIntoViewport(\n targetElement: Element | null,\n opts: ScrollIntoViewportOpts = {},\n): void {\n const { containingElement } = opts;\n if (targetElement && targetElement.isConnected) {\n const root = document.scrollingElement || document.documentElement;\n const isScrollPrevented = window.getComputedStyle(root).overflow === \"hidden\";\n if (!isScrollPrevented) {\n const { left: originalLeft, top: originalTop } = targetElement.getBoundingClientRect();\n\n // use scrollIntoView({block: 'nearest'}) instead of .focus to check if the element is fully in view or not since .focus()\n // won't cause a scroll if the element is already focused and doesn't behave consistently when an element is partially out of view horizontally vs vertically\n targetElement?.scrollIntoView?.({ block: \"nearest\" });\n const { left: newLeft, top: newTop } = targetElement.getBoundingClientRect();\n // Account for sub pixel differences from rounding\n if (Math.abs(originalLeft - newLeft) > 1 || Math.abs(originalTop - newTop) > 1) {\n containingElement?.scrollIntoView?.({ block: \"center\", inline: \"center\" });\n targetElement.scrollIntoView?.({ block: \"nearest\" });\n }\n } else {\n const { left: originalLeft, top: originalTop } = targetElement.getBoundingClientRect();\n\n // If scrolling is prevented, we don't want to scroll the body since it might move the overlay partially offscreen and the user can't scroll it back into view.\n let scrollParents = getScrollParents(targetElement, true);\n for (const scrollParent of scrollParents) {\n scrollIntoView(scrollParent as HTMLElement, targetElement as HTMLElement);\n }\n const { left: newLeft, top: newTop } = targetElement.getBoundingClientRect();\n // Account for sub pixel differences from rounding\n if (Math.abs(originalLeft - newLeft) > 1 || Math.abs(originalTop - newTop) > 1) {\n scrollParents = containingElement ? getScrollParents(containingElement, true) : [];\n // scroll containing element into view first, then rescroll target element into view like the non chrome flow above\n for (const scrollParent of scrollParents) {\n scrollIntoView(scrollParent as HTMLElement, containingElement as HTMLElement, {\n block: \"center\",\n inline: \"center\",\n });\n }\n for (const scrollParent of getScrollParents(targetElement, true)) {\n scrollIntoView(scrollParent as HTMLElement, targetElement as HTMLElement);\n }\n }\n }\n }\n}\n","/**\n * Geometry utilities for pointer/touch hit testing.\n * Based on @react-aria/interactions geometry utilities.\n */\n\nexport interface Rect {\n top: number;\n right: number;\n bottom: number;\n left: number;\n}\n\nexport interface EventPoint {\n clientX: number;\n clientY: number;\n width?: number;\n height?: number;\n radiusX?: number;\n radiusY?: number;\n}\n\n/**\n * Checks if two rectangles overlap.\n */\nexport function areRectanglesOverlapping(a: Rect, b: Rect): boolean {\n if (a.left > b.right || b.left > a.right) {\n return false;\n }\n\n if (a.top > b.bottom || b.top > a.bottom) {\n return false;\n }\n\n return true;\n}\n\n/**\n * Gets the bounding rectangle for an event point (touch/pointer).\n * Takes into account the size of the touch point.\n */\nexport function getPointClientRect(point: EventPoint): Rect {\n let offsetX = 0;\n let offsetY = 0;\n\n if (point.width !== undefined && point.width > 0) {\n offsetX = point.width / 2;\n } else if (point.radiusX !== undefined && point.radiusX > 0) {\n // Fallback to radiusX/radiusY (Touch)\n offsetX = point.radiusX;\n }\n\n if (point.height !== undefined && point.height > 0) {\n offsetY = point.height / 2;\n } else if (point.radiusY !== undefined && point.radiusY > 0) {\n offsetY = point.radiusY;\n }\n\n return {\n top: point.clientY - offsetY,\n right: point.clientX + offsetX,\n bottom: point.clientY + offsetY,\n left: point.clientX - offsetX,\n };\n}\n\n/**\n * Checks if a pointer/touch point is over an element.\n */\nexport function isPointOverTarget(point: EventPoint, target: Element): boolean {\n const rect = target.getBoundingClientRect();\n const pointRect = getPointClientRect(point);\n\n return areRectanglesOverlapping(\n {\n top: rect.top,\n right: rect.right,\n bottom: rect.bottom,\n left: rect.left,\n },\n pointRect,\n );\n}\n\n/**\n * Gets the first touch from a TouchEvent's targetTouches.\n */\nexport function getTouchFromEvent(event: TouchEvent): Touch | null {\n const { targetTouches } = event;\n if (targetTouches.length > 0) {\n return targetTouches[0];\n }\n return null;\n}\n\n/**\n * Finds a touch by its identifier in changedTouches.\n */\nexport function getTouchById(event: TouchEvent, pointerId: number | null): Touch | null {\n if (pointerId == null) {\n return null;\n }\n\n const { changedTouches } = event;\n for (let i = 0; i < changedTouches.length; i++) {\n const touch = changedTouches[i];\n if (touch.identifier === pointerId) {\n return touch;\n }\n }\n\n return null;\n}\n","/**\n * Event utilities for detecting virtual clicks and event handling.\n * Based on @react-aria/utils event utilities.\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 return (\n (!isAndroid() && event.width === 0 && event.height === 0) ||\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 * Text selection management utilities.\n * Based on @react-aria/interactions textSelection utilities.\n *\n * On iOS, long press triggers text selection. The only way to prevent this\n * is to set user-select: none on the entire page. On other platforms,\n * we can just set it on the target element.\n */\n\nimport { isIOS } from \"./platform\";\nimport { getOwnerDocument } from \"./dom\";\n\ntype State = \"default\" | \"disabled\" | \"restoring\";\n\n// Global state to manage text selection across multiple press interactions\nlet state: State = \"default\";\nlet savedUserSelect = \"\";\nlet modifiedElementMap = new WeakMap<HTMLElement, string>();\n\n/**\n * Disables text selection on the page or element during press.\n * On iOS, applies to the entire document. On other platforms, just the target.\n */\nexport function disableTextSelection(target?: HTMLElement): void {\n if (isIOS()) {\n // iOS requires disabling selection on the entire page\n if (state === \"default\") {\n const documentElement = getOwnerDocument(target).documentElement;\n savedUserSelect = documentElement.style.webkitUserSelect;\n documentElement.style.webkitUserSelect = \"none\";\n }\n state = \"disabled\";\n } else if (target) {\n // On other platforms, just disable on the target\n const element = target as HTMLElement;\n if (!modifiedElementMap.has(element)) {\n modifiedElementMap.set(element, element.style.userSelect);\n element.style.userSelect = \"none\";\n }\n }\n}\n\n/**\n * Restores text selection after press ends.\n * On iOS, waits 300ms to avoid selection appearing during tap.\n */\nexport function restoreTextSelection(target?: HTMLElement): void {\n if (isIOS()) {\n // Don't restore if another press is active\n if (state !== \"disabled\") {\n return;\n }\n\n state = \"restoring\";\n\n // Wait for iOS to finish any pending selection actions\n // 300ms is the iOS long-press delay\n setTimeout(() => {\n // Use runAfterTransition to avoid CSS recomputation during animation\n runAfterTransition(() => {\n // Only restore if still in 'restoring' state (no new press started)\n if (state === \"restoring\") {\n const documentElement = getOwnerDocument(target).documentElement;\n if (savedUserSelect) {\n documentElement.style.webkitUserSelect = savedUserSelect;\n } else {\n documentElement.style.removeProperty(\"-webkit-user-select\");\n }\n savedUserSelect = \"\";\n state = \"default\";\n }\n });\n }, 300);\n } else if (target) {\n // On other platforms, restore immediately\n const element = target as HTMLElement;\n const savedValue = modifiedElementMap.get(element);\n if (savedValue !== undefined) {\n if (savedValue) {\n element.style.userSelect = savedValue;\n } else {\n element.style.removeProperty(\"user-select\");\n }\n modifiedElementMap.delete(element);\n }\n }\n}\n\n// Tracks pending transitions for runAfterTransition\nconst pendingTransitions = new Set<() => void>();\nlet transitionTimeout: ReturnType<typeof setTimeout> | null = null;\n\n/**\n * Runs a callback after CSS transitions complete.\n * Batches multiple callbacks to avoid unnecessary layout thrashing.\n */\nfunction runAfterTransition(callback: () => void): void {\n // If we haven't started tracking transitions, run immediately\n pendingTransitions.add(callback);\n\n // Debounce - wait for any transitions to settle\n if (transitionTimeout != null) {\n clearTimeout(transitionTimeout);\n }\n\n transitionTimeout = setTimeout(() => {\n // Run all pending callbacks\n for (const cb of pendingTransitions) {\n cb();\n }\n pendingTransitions.clear();\n transitionTimeout = null;\n }, 0);\n}\n","/**\n * Keyboard / modifier-key helpers.\n * Based on @react-aria/utils' keyboard utilities.\n */\n\nimport { isMac } from \"./platform\";\n\n/** The modifier-key fields consulted by {@link isCtrlKeyPressed}. */\ninterface ModifierKeyEvent {\n ctrlKey?: boolean;\n metaKey?: boolean;\n}\n\n/**\n * Returns whether the platform's non-contiguous selection modifier is pressed:\n * the Command key on macOS, the Control key elsewhere. Mirrors\n * `@react-aria/utils`' `isCtrlKeyPressed`.\n */\nexport function isCtrlKeyPressed(e: ModifierKeyEvent): boolean {\n if (isMac()) {\n return e.metaKey === true;\n }\n\n return e.ctrlKey === true;\n}\n","/**\n * Global listener management utility.\n * Based on @react-aria/utils useGlobalListeners hook, adapted for SolidJS.\n *\n * In SolidJS, we use onCleanup for automatic cleanup instead of useEffect return.\n */\n\nimport { onCleanup } from \"solid-js\";\n\nexport interface GlobalListenerOptions extends AddEventListenerOptions {\n /** Whether to add the listener to the window instead of document */\n isWindow?: boolean;\n}\n\n/**\n * Creates a manager for global event listeners that automatically cleans up.\n * Use this in a component to register document/window level listeners\n * that will be removed when the component unmounts.\n */\nexport function createGlobalListeners() {\n const listeners: Array<{\n target: EventTarget;\n type: string;\n handler: EventListener;\n options?: AddEventListenerOptions;\n }> = [];\n\n /**\n * Adds a global event listener.\n */\n function addGlobalListener<K extends keyof DocumentEventMap>(\n type: K,\n handler: (ev: DocumentEventMap[K]) => void,\n options?: GlobalListenerOptions,\n ): void;\n function addGlobalListener<K extends keyof WindowEventMap>(\n type: K,\n handler: (ev: WindowEventMap[K]) => void,\n options?: GlobalListenerOptions & { isWindow: true },\n ): void;\n function addGlobalListener(\n type: string,\n handler: EventListener,\n options?: GlobalListenerOptions,\n ): void {\n const target = options?.isWindow ? window : document;\n const listenerOptions = options\n ? {\n capture: options.capture,\n passive: options.passive,\n once: options.once,\n }\n : undefined;\n\n target.addEventListener(type, handler, listenerOptions);\n listeners.push({ target, type, handler, options: listenerOptions });\n }\n\n /**\n * Removes a specific global event listener.\n */\n function removeGlobalListener<K extends keyof DocumentEventMap>(\n type: K,\n handler: (ev: DocumentEventMap[K]) => void,\n options?: AddEventListenerOptions,\n ): void;\n function removeGlobalListener<K extends keyof WindowEventMap>(\n type: K,\n handler: (ev: WindowEventMap[K]) => void,\n options?: AddEventListenerOptions & { isWindow: true },\n ): void;\n function removeGlobalListener(\n type: string,\n handler: EventListener,\n options?: AddEventListenerOptions & { isWindow?: boolean },\n ): void {\n const target = options?.isWindow ? window : document;\n const listenerOptions = options\n ? {\n capture: options.capture,\n }\n : undefined;\n\n target.removeEventListener(type, handler, listenerOptions);\n\n // Remove from tracked listeners\n const index = listeners.findIndex(\n (l) =>\n l.target === target &&\n l.type === type &&\n l.handler === handler &&\n l.options?.capture === listenerOptions?.capture,\n );\n if (index !== -1) {\n listeners.splice(index, 1);\n }\n }\n\n /**\n * Removes all registered global listeners.\n */\n function removeAllGlobalListeners(): void {\n for (const { target, type, handler, options } of listeners) {\n target.removeEventListener(type, handler, options);\n }\n listeners.length = 0;\n }\n\n // Automatically clean up when the component/scope is disposed\n onCleanup(removeAllGlobalListeners);\n\n return {\n addGlobalListener,\n removeGlobalListener,\n removeAllGlobalListeners,\n };\n}\n\n/**\n * Simple utility to add a single global listener with automatic cleanup.\n * For one-off listeners where the full manager isn't needed.\n */\nexport function addGlobalListenerOnce<K extends keyof DocumentEventMap>(\n type: K,\n handler: (ev: DocumentEventMap[K]) => void,\n options?: GlobalListenerOptions,\n): () => void {\n const target = options?.isWindow ? window : document;\n const listenerOptions = options\n ? {\n capture: options.capture,\n passive: options.passive,\n once: options.once,\n }\n : undefined;\n\n target.addEventListener(type, handler as EventListener, listenerOptions);\n\n return () => {\n target.removeEventListener(type, handler as EventListener, listenerOptions);\n };\n}\n","/**\n * createDescription - Creates a hidden element for dynamic aria-describedby content.\n *\n * This utility creates a visually hidden element containing description text and\n * returns an aria-describedby prop pointing to it. Multiple components using the\n * same description will share the same element (reference counted).\n *\n * Port of @react-aria/utils/useDescription.\n *\n * @example\n * ```tsx\n * function SortableColumn(props) {\n * const descriptionProps = createDescription(\n * () => props.sortDirection ? `Sorted ${props.sortDirection}` : undefined\n * );\n *\n * return (\n * <th {...descriptionProps}>\n * {props.children}\n * </th>\n * );\n * }\n * ```\n */\n\nimport { createSignal, createEffect, onCleanup, type Accessor } from \"solid-js\";\nimport { isServer } from \"solid-js/web\";\n\nexport interface DescriptionProps {\n \"aria-describedby\"?: string;\n}\n\nlet descriptionId = 0;\nconst descriptionNodes = new Map<string, { refCount: number; element: Element }>();\n\n/**\n * Creates an invisible description element and returns aria-describedby props.\n *\n * The element is created in the DOM and reference counted - multiple uses of\n * the same description text will share the same element. When all references\n * are removed, the element is cleaned up.\n *\n * @param description - Accessor that returns the description text, or undefined\n * @returns Object with aria-describedby prop (or empty object if no description)\n *\n * @example\n * ```tsx\n * const descProps = createDescription(() => 'Press Enter to submit');\n * return <button {...descProps}>Submit</button>;\n * ```\n */\nexport function createDescription(description: Accessor<string | undefined>): DescriptionProps {\n if (isServer) {\n return {};\n }\n\n const [id, setId] = createSignal<string | undefined>();\n\n createEffect(() => {\n const desc = description();\n\n if (!desc) {\n setId(undefined);\n return;\n }\n\n let node = descriptionNodes.get(desc);\n\n if (!node) {\n const newId = `solidaria-description-${descriptionId++}`;\n setId(newId);\n\n const element = document.createElement(\"div\");\n element.id = newId;\n element.style.display = \"none\";\n element.textContent = desc;\n document.body.appendChild(element);\n\n node = { refCount: 0, element };\n descriptionNodes.set(desc, node);\n } else {\n setId(node.element.id);\n }\n\n node.refCount++;\n\n onCleanup(() => {\n if (node && --node.refCount === 0) {\n node.element.remove();\n descriptionNodes.delete(desc);\n }\n });\n });\n\n return {\n get \"aria-describedby\"() {\n const desc = description();\n return desc ? id() : undefined;\n },\n };\n}\n\n/**\n * Utility to get all active description nodes (for testing).\n * @internal\n */\nexport function getDescriptionNodeCount(): number {\n return descriptionNodes.size;\n}\n\n/**\n * Utility to clear all description nodes (for testing cleanup).\n * @internal\n */\nexport function clearDescriptionNodes(): void {\n for (const [, node] of descriptionNodes) {\n node.element.remove();\n }\n descriptionNodes.clear();\n}\n","/**\n * Enter/exit animation primitives for Solidaria.\n *\n * A faithful SolidJS port of `react-aria`'s `useEnterAnimation` /\n * `useExitAnimation` (react-aria/src/utils/animation.ts). These drive the\n * `data-entering` / `data-exiting` render-prop flags that overlay styles key\n * their motion tokens off of (opacity/translate transitions on Modal, Popover,\n * Tooltip, …). Without them a styled overlay ships the tokens but never flips\n * the state that triggers the transition, so it appears/disappears instantly.\n *\n * Two mechanisms are covered, exactly as upstream:\n * 1. CSS `@keyframes` — the `animation` property is present while entering and\n * removed when the animation finishes.\n * 2. CSS transitions — the initial styles apply while entering and are removed\n * immediately, so the transition plays. Premature transitions triggered\n * before the ready state (e.g. a popover positioned after mount) are\n * cancelled so only the intended enter transition runs.\n *\n * SolidJS notes:\n * - Refs are passed as accessors (`() => element`) rather than React ref\n * objects, so a signal-backed ref re-runs the effect when the element mounts.\n * - `isReady` gates the enter animation. In React the caller unmounts the\n * overlay while closed, so the hook re-initializes per open; a Solid component\n * often stays mounted with its overlay behind a `<Show>`, so pass\n * `isReady={isOpen}` to defer the enter until the element actually mounts.\n * - `createEffect` replaces `useLayoutEffect`; effects never run during SSR, so\n * the `CSSTransition` reference is only touched on the client.\n */\n\nimport { createEffect, createSignal, onCleanup, type Accessor } from \"solid-js\";\n\n/** A reactive accessor for the animated element (null until mounted). */\nexport type ElementAccessor = () => Element | null | undefined;\n\n/**\n * Runs `onEnd` once the element's animations settle while `isActive` is true.\n * Mirrors the private `useAnimation` helper in react-aria's animation utils.\n */\nfunction createAnimation(\n ref: ElementAccessor,\n isActive: Accessor<boolean>,\n onEnd: () => void,\n): void {\n createEffect(() => {\n if (!isActive()) return;\n const element = ref();\n if (!element) return;\n\n if (!(\"getAnimations\" in element)) {\n // JSDOM and other environments without the Web Animations API.\n onEnd();\n return;\n }\n\n const animations = element.getAnimations();\n if (animations.length === 0) {\n onEnd();\n return;\n }\n\n let canceled = false;\n Promise.allSettled(animations.map((animation) => animation.finished)).then(() => {\n if (!canceled) onEnd();\n });\n\n onCleanup(() => {\n canceled = true;\n });\n });\n}\n\n/**\n * Tracks whether an element is playing its enter animation.\n *\n * Returns an accessor that is `true` while the element should carry\n * `data-entering` (its initial, pre-transition styles), then flips to `false`\n * once the animation is set up — which removes the initial styles and lets the\n * CSS transition play.\n *\n * @param ref - Accessor for the animated element.\n * @param isReady - Whether the element is ready to animate in. Defaults to\n * `true`. Pass an `isOpen` accessor when the component stays mounted while the\n * overlay is hidden, so the enter state does not resolve before the element\n * mounts.\n */\nexport function createEnterAnimation(\n ref: ElementAccessor,\n isReady: Accessor<boolean> = () => true,\n): Accessor<boolean> {\n const [isEntering, setIsEntering] = createSignal(true);\n const isAnimationReady = () => isEntering() && isReady();\n\n // Cancel any transitions triggered before the ready state (case 2 above), so\n // only the intended enter transition — the one that starts when the initial\n // styles are removed — runs.\n createEffect(() => {\n if (!isAnimationReady()) return;\n const element = ref();\n if (!element || !(\"getAnimations\" in element)) return;\n for (const animation of element.getAnimations()) {\n if (animation instanceof CSSTransition) {\n animation.cancel();\n }\n }\n });\n\n createAnimation(ref, isAnimationReady, () => setIsEntering(false));\n\n return isAnimationReady;\n}\n\n/**\n * Tracks whether an element is playing its exit animation.\n *\n * Keeps the caller informed so the element can stay mounted (`isOpen ||\n * isExiting`) until its exit transition finishes. Implements the same\n * `'closed' | 'open' | 'exiting'` state machine as react-aria's\n * `useExitAnimation`, including interruption: reopening mid-exit returns to the\n * open state.\n *\n * @param ref - Accessor for the animated element.\n * @param isOpen - Whether the element is currently open.\n */\nexport function createExitAnimation(\n ref: ElementAccessor,\n isOpen: Accessor<boolean>,\n): Accessor<boolean> {\n const [exitState, setExitState] = createSignal<\"closed\" | \"open\" | \"exiting\">(\n isOpen() ? \"open\" : \"closed\",\n );\n\n createEffect(() => {\n const open = isOpen();\n setExitState((current) => {\n // Open element requested to close: begin exiting.\n if (current === \"open\" && !open) return \"exiting\";\n // Closed or mid-exit element requested to open: the animation was\n // interrupted (or it is a fresh open), so return to the open state.\n if ((current === \"closed\" || current === \"exiting\") && open) return \"open\";\n return current;\n });\n });\n\n const isExiting = () => exitState() === \"exiting\";\n\n createAnimation(ref, isExiting, () => {\n setExitState((state) => (state === \"exiting\" ? \"closed\" : state));\n });\n\n return isExiting;\n}\n"],"mappings":"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"}