@proyecto-viviana/solidaria 0.4.0 → 0.4.2

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 (480) hide show
  1. package/dist/_chunk/DragManager.js +627 -0
  2. package/dist/_chunk/DragManager.js.map +1 -0
  3. package/dist/_chunk/DragManager.jsx +627 -0
  4. package/dist/_chunk/DragManager.jsx.map +1 -0
  5. package/dist/_chunk/FocusScope.js +400 -0
  6. package/dist/_chunk/FocusScope.js.map +1 -0
  7. package/dist/_chunk/FocusScope.jsx +375 -0
  8. package/dist/_chunk/FocusScope.jsx.map +1 -0
  9. package/dist/_chunk/actiongroup.js +13 -79
  10. package/dist/_chunk/actiongroup.js.map +1 -1
  11. package/dist/_chunk/actiongroup.jsx +13 -79
  12. package/dist/_chunk/actiongroup.jsx.map +1 -1
  13. package/dist/_chunk/{live-announcer.js → announce.js} +1 -1
  14. package/dist/_chunk/announce.js.map +1 -0
  15. package/dist/_chunk/{live-announcer.jsx → announce.jsx} +1 -1
  16. package/dist/_chunk/announce.jsx.map +1 -0
  17. package/dist/_chunk/autocomplete.js +56 -8
  18. package/dist/_chunk/autocomplete.js.map +1 -1
  19. package/dist/_chunk/autocomplete.jsx +56 -8
  20. package/dist/_chunk/autocomplete.jsx.map +1 -1
  21. package/dist/_chunk/breadcrumbs.js +6 -4
  22. package/dist/_chunk/breadcrumbs.js.map +1 -1
  23. package/dist/_chunk/breadcrumbs.jsx +6 -4
  24. package/dist/_chunk/breadcrumbs.jsx.map +1 -1
  25. package/dist/_chunk/button.js +8 -9
  26. package/dist/_chunk/button.js.map +1 -1
  27. package/dist/_chunk/button.jsx +8 -9
  28. package/dist/_chunk/button.jsx.map +1 -1
  29. package/dist/_chunk/calendar.js +27 -26
  30. package/dist/_chunk/calendar.js.map +1 -1
  31. package/dist/_chunk/calendar.jsx +27 -26
  32. package/dist/_chunk/calendar.jsx.map +1 -1
  33. package/dist/_chunk/checkbox.js +5 -4
  34. package/dist/_chunk/checkbox.js.map +1 -1
  35. package/dist/_chunk/checkbox.jsx +5 -4
  36. package/dist/_chunk/checkbox.jsx.map +1 -1
  37. package/dist/_chunk/color.js +302 -18
  38. package/dist/_chunk/color.js.map +1 -1
  39. package/dist/_chunk/color.jsx +302 -18
  40. package/dist/_chunk/color.jsx.map +1 -1
  41. package/dist/_chunk/combobox.js +638 -12
  42. package/dist/_chunk/combobox.js.map +1 -1
  43. package/dist/_chunk/combobox.jsx +638 -12
  44. package/dist/_chunk/combobox.jsx.map +1 -1
  45. package/dist/_chunk/constants.js +19 -0
  46. package/dist/_chunk/constants.js.map +1 -0
  47. package/dist/_chunk/constants.jsx +19 -0
  48. package/dist/_chunk/constants.jsx.map +1 -0
  49. package/dist/_chunk/createCollator.js +3 -171
  50. package/dist/_chunk/createCollator.js.map +1 -1
  51. package/dist/_chunk/createCollator.jsx +3 -165
  52. package/dist/_chunk/createCollator.jsx.map +1 -1
  53. package/dist/_chunk/createField.js +2 -1
  54. package/dist/_chunk/createField.js.map +1 -1
  55. package/dist/_chunk/createField.jsx +2 -1
  56. package/dist/_chunk/createField.jsx.map +1 -1
  57. package/dist/_chunk/createFocus.js +12 -8
  58. package/dist/_chunk/createFocus.js.map +1 -1
  59. package/dist/_chunk/createFocus.jsx +12 -8
  60. package/dist/_chunk/createFocus.jsx.map +1 -1
  61. package/dist/_chunk/createFocusWithin.js +12 -13
  62. package/dist/_chunk/createFocusWithin.js.map +1 -1
  63. package/dist/_chunk/createFocusWithin.jsx +12 -13
  64. package/dist/_chunk/createFocusWithin.jsx.map +1 -1
  65. package/dist/_chunk/createFocusable.js +3 -3
  66. package/dist/_chunk/createFocusable.js.map +1 -1
  67. package/dist/_chunk/createFocusable.jsx +3 -3
  68. package/dist/_chunk/createFocusable.jsx.map +1 -1
  69. package/dist/_chunk/{form.js → createFormReset.js} +1 -1
  70. package/dist/_chunk/createFormReset.js.map +1 -0
  71. package/dist/_chunk/{form.jsx → createFormReset.jsx} +1 -1
  72. package/dist/_chunk/createFormReset.jsx.map +1 -0
  73. package/dist/_chunk/createHover.js +2 -1
  74. package/dist/_chunk/createHover.js.map +1 -1
  75. package/dist/_chunk/createHover.jsx +2 -1
  76. package/dist/_chunk/createHover.jsx.map +1 -1
  77. package/dist/_chunk/createInteractionModality.js +2 -3
  78. package/dist/_chunk/createInteractionModality.js.map +1 -1
  79. package/dist/_chunk/createInteractionModality.jsx +2 -3
  80. package/dist/_chunk/createInteractionModality.jsx.map +1 -1
  81. package/dist/_chunk/createLabel.js +2 -1
  82. package/dist/_chunk/createLabel.js.map +1 -1
  83. package/dist/_chunk/createLabel.jsx +2 -1
  84. package/dist/_chunk/createLabel.jsx.map +1 -1
  85. package/dist/_chunk/createLabels.js +3 -2
  86. package/dist/_chunk/createLabels.js.map +1 -1
  87. package/dist/_chunk/createLabels.jsx +3 -2
  88. package/dist/_chunk/createLabels.jsx.map +1 -1
  89. package/dist/_chunk/createLandmark.js +1 -1
  90. package/dist/_chunk/createLandmark.jsx +1 -1
  91. package/dist/_chunk/createProgressBar.js +2 -1
  92. package/dist/_chunk/createProgressBar.js.map +1 -1
  93. package/dist/_chunk/createProgressBar.jsx +2 -1
  94. package/dist/_chunk/createProgressBar.jsx.map +1 -1
  95. package/dist/_chunk/createSelectableItem.js +7 -3
  96. package/dist/_chunk/createSelectableItem.js.map +1 -1
  97. package/dist/_chunk/createSelectableItem.jsx +7 -3
  98. package/dist/_chunk/createSelectableItem.jsx.map +1 -1
  99. package/dist/_chunk/createStringFormatter.js +61 -0
  100. package/dist/_chunk/createStringFormatter.js.map +1 -0
  101. package/dist/_chunk/createStringFormatter.jsx +61 -0
  102. package/dist/_chunk/createStringFormatter.jsx.map +1 -0
  103. package/dist/_chunk/createToggle.js +5 -4
  104. package/dist/_chunk/createToggle.js.map +1 -1
  105. package/dist/_chunk/createToggle.jsx +5 -4
  106. package/dist/_chunk/createToggle.jsx.map +1 -1
  107. package/dist/_chunk/datepicker.js +1413 -1100
  108. package/dist/_chunk/datepicker.js.map +1 -1
  109. package/dist/_chunk/datepicker.jsx +1413 -1100
  110. package/dist/_chunk/datepicker.jsx.map +1 -1
  111. package/dist/_chunk/disclosure.js +2 -2
  112. package/dist/_chunk/disclosure.js.map +1 -1
  113. package/dist/_chunk/disclosure.jsx +2 -2
  114. package/dist/_chunk/disclosure.jsx.map +1 -1
  115. package/dist/_chunk/dnd.js +1586 -495
  116. package/dist/_chunk/dnd.js.map +1 -1
  117. package/dist/_chunk/dnd.jsx +1586 -495
  118. package/dist/_chunk/dnd.jsx.map +1 -1
  119. package/dist/_chunk/env.js +1 -19
  120. package/dist/_chunk/env.js.map +1 -1
  121. package/dist/_chunk/env.jsx +1 -19
  122. package/dist/_chunk/env.jsx.map +1 -1
  123. package/dist/_chunk/focus.js +1 -1
  124. package/dist/_chunk/focus.js.map +1 -1
  125. package/dist/_chunk/focus.jsx +1 -1
  126. package/dist/_chunk/focus.jsx.map +1 -1
  127. package/dist/_chunk/focus2.js +54 -318
  128. package/dist/_chunk/focus2.js.map +1 -1
  129. package/dist/_chunk/focus2.jsx +53 -292
  130. package/dist/_chunk/focus2.jsx.map +1 -1
  131. package/dist/_chunk/grid.js +1 -1
  132. package/dist/_chunk/grid.jsx +1 -1
  133. package/dist/_chunk/gridlist.js +14 -9
  134. package/dist/_chunk/gridlist.js.map +1 -1
  135. package/dist/_chunk/gridlist.jsx +14 -9
  136. package/dist/_chunk/gridlist.jsx.map +1 -1
  137. package/dist/_chunk/i18n.js +3 -58
  138. package/dist/_chunk/i18n.js.map +1 -1
  139. package/dist/_chunk/i18n.jsx +3 -58
  140. package/dist/_chunk/i18n.jsx.map +1 -1
  141. package/dist/_chunk/interactions.js +99 -9
  142. package/dist/_chunk/interactions.js.map +1 -1
  143. package/dist/_chunk/interactions.jsx +97 -9
  144. package/dist/_chunk/interactions.jsx.map +1 -1
  145. package/dist/_chunk/link.js +2 -1
  146. package/dist/_chunk/link.js.map +1 -1
  147. package/dist/_chunk/link.jsx +2 -1
  148. package/dist/_chunk/link.jsx.map +1 -1
  149. package/dist/_chunk/listbox.js +42 -10
  150. package/dist/_chunk/listbox.js.map +1 -1
  151. package/dist/_chunk/listbox.jsx +42 -10
  152. package/dist/_chunk/listbox.jsx.map +1 -1
  153. package/dist/_chunk/locale.js +173 -0
  154. package/dist/_chunk/locale.js.map +1 -0
  155. package/dist/_chunk/locale.jsx +167 -0
  156. package/dist/_chunk/locale.jsx.map +1 -0
  157. package/dist/_chunk/menu.js +5 -4
  158. package/dist/_chunk/menu.js.map +1 -1
  159. package/dist/_chunk/menu.jsx +5 -4
  160. package/dist/_chunk/menu.jsx.map +1 -1
  161. package/dist/_chunk/numberfield.js +3 -2
  162. package/dist/_chunk/numberfield.js.map +1 -1
  163. package/dist/_chunk/numberfield.jsx +3 -2
  164. package/dist/_chunk/numberfield.jsx.map +1 -1
  165. package/dist/_chunk/overlays.js +1 -1
  166. package/dist/_chunk/overlays.jsx +1 -1
  167. package/dist/_chunk/popover.js +3 -3
  168. package/dist/_chunk/popover.js.map +1 -1
  169. package/dist/_chunk/popover.jsx +3 -3
  170. package/dist/_chunk/popover.jsx.map +1 -1
  171. package/dist/_chunk/radio.js +7 -6
  172. package/dist/_chunk/radio.js.map +1 -1
  173. package/dist/_chunk/radio.jsx +7 -6
  174. package/dist/_chunk/radio.jsx.map +1 -1
  175. package/dist/_chunk/reactivity.js +21 -0
  176. package/dist/_chunk/reactivity.js.map +1 -0
  177. package/dist/_chunk/reactivity.jsx +21 -0
  178. package/dist/_chunk/reactivity.jsx.map +1 -0
  179. package/dist/_chunk/searchfield.js +2 -1
  180. package/dist/_chunk/searchfield.js.map +1 -1
  181. package/dist/_chunk/searchfield.jsx +2 -1
  182. package/dist/_chunk/searchfield.jsx.map +1 -1
  183. package/dist/_chunk/select.js +8 -5
  184. package/dist/_chunk/select.js.map +1 -1
  185. package/dist/_chunk/select.jsx +8 -5
  186. package/dist/_chunk/select.jsx.map +1 -1
  187. package/dist/_chunk/selection.js +8 -21
  188. package/dist/_chunk/selection.js.map +1 -1
  189. package/dist/_chunk/selection.jsx +8 -21
  190. package/dist/_chunk/selection.jsx.map +1 -1
  191. package/dist/_chunk/separator.js +1 -1
  192. package/dist/_chunk/separator.jsx +1 -1
  193. package/dist/_chunk/slider.js +5 -4
  194. package/dist/_chunk/slider.js.map +1 -1
  195. package/dist/_chunk/slider.jsx +5 -4
  196. package/dist/_chunk/slider.jsx.map +1 -1
  197. package/dist/_chunk/spinbutton.js +153 -0
  198. package/dist/_chunk/spinbutton.js.map +1 -0
  199. package/dist/_chunk/spinbutton.jsx +153 -0
  200. package/dist/_chunk/spinbutton.jsx.map +1 -0
  201. package/dist/_chunk/table.js +45 -8
  202. package/dist/_chunk/table.js.map +1 -1
  203. package/dist/_chunk/table.jsx +45 -8
  204. package/dist/_chunk/table.jsx.map +1 -1
  205. package/dist/_chunk/tabs.js +11 -8
  206. package/dist/_chunk/tabs.js.map +1 -1
  207. package/dist/_chunk/tabs.jsx +11 -8
  208. package/dist/_chunk/tabs.jsx.map +1 -1
  209. package/dist/_chunk/tag.js +54 -18
  210. package/dist/_chunk/tag.js.map +1 -1
  211. package/dist/_chunk/tag.jsx +54 -18
  212. package/dist/_chunk/tag.jsx.map +1 -1
  213. package/dist/_chunk/textfield.js +2 -1
  214. package/dist/_chunk/textfield.js.map +1 -1
  215. package/dist/_chunk/textfield.jsx +2 -1
  216. package/dist/_chunk/textfield.jsx.map +1 -1
  217. package/dist/_chunk/toolbar.js +4 -36
  218. package/dist/_chunk/toolbar.js.map +1 -1
  219. package/dist/_chunk/toolbar.jsx +4 -36
  220. package/dist/_chunk/toolbar.jsx.map +1 -1
  221. package/dist/_chunk/tooltip.js +2 -2
  222. package/dist/_chunk/tooltip.js.map +1 -1
  223. package/dist/_chunk/tooltip.jsx +2 -2
  224. package/dist/_chunk/tooltip.jsx.map +1 -1
  225. package/dist/_chunk/tree.js +42 -14
  226. package/dist/_chunk/tree.js.map +1 -1
  227. package/dist/_chunk/tree.jsx +42 -14
  228. package/dist/_chunk/tree.jsx.map +1 -1
  229. package/dist/_chunk/utils.js +59 -19
  230. package/dist/_chunk/utils.js.map +1 -1
  231. package/dist/_chunk/utils.jsx +59 -19
  232. package/dist/_chunk/utils.jsx.map +1 -1
  233. package/dist/_chunk/visually-hidden.js +3 -2
  234. package/dist/_chunk/visually-hidden.js.map +1 -1
  235. package/dist/_chunk/visually-hidden.jsx +3 -2
  236. package/dist/_chunk/visually-hidden.jsx.map +1 -1
  237. package/dist/actiongroup/createActionGroup.d.ts.map +1 -1
  238. package/dist/autocomplete/createAutocomplete.d.ts +10 -7
  239. package/dist/autocomplete/createAutocomplete.d.ts.map +1 -1
  240. package/dist/breadcrumbs/createBreadcrumbs.d.ts.map +1 -1
  241. package/dist/button/createToggleButtonGroup.d.ts.map +1 -1
  242. package/dist/calendar/createCalendar.d.ts.map +1 -1
  243. package/dist/calendar/createCalendarCell.d.ts.map +1 -1
  244. package/dist/calendar/createCalendarGrid.d.ts.map +1 -1
  245. package/dist/calendar/createRangeCalendar.d.ts.map +1 -1
  246. package/dist/calendar/createRangeCalendarCell.d.ts.map +1 -1
  247. package/dist/calendar/intl/index.d.ts +1 -1
  248. package/dist/calendar/intl/index.d.ts.map +1 -1
  249. package/dist/collections/index.js +1 -1
  250. package/dist/collections/index.jsx +1 -1
  251. package/dist/color/createColorArea.d.ts.map +1 -1
  252. package/dist/color/createColorField.d.ts.map +1 -1
  253. package/dist/color/createColorSlider.d.ts.map +1 -1
  254. package/dist/color/createColorSwatch.d.ts.map +1 -1
  255. package/dist/color/createColorWheel.d.ts.map +1 -1
  256. package/dist/color/intl/index.d.ts +30 -0
  257. package/dist/color/intl/index.d.ts.map +1 -0
  258. package/dist/combobox/createComboBox.d.ts.map +1 -1
  259. package/dist/combobox/intl/generated-locales.d.ts +16 -0
  260. package/dist/combobox/intl/generated-locales.d.ts.map +1 -0
  261. package/dist/combobox/intl/index.d.ts +2 -2
  262. package/dist/combobox/intl/index.d.ts.map +1 -1
  263. package/dist/datepicker/createDateField.d.ts +45 -23
  264. package/dist/datepicker/createDateField.d.ts.map +1 -1
  265. package/dist/datepicker/createDatePicker.d.ts +34 -6
  266. package/dist/datepicker/createDatePicker.d.ts.map +1 -1
  267. package/dist/datepicker/createDatePickerGroup.d.ts +13 -13
  268. package/dist/datepicker/createDatePickerGroup.d.ts.map +1 -1
  269. package/dist/datepicker/createDateRangePicker.d.ts +55 -7
  270. package/dist/datepicker/createDateRangePicker.d.ts.map +1 -1
  271. package/dist/datepicker/createDateSegment.d.ts +6 -15
  272. package/dist/datepicker/createDateSegment.d.ts.map +1 -1
  273. package/dist/datepicker/createDisplayNames.d.ts +17 -0
  274. package/dist/datepicker/createDisplayNames.d.ts.map +1 -0
  275. package/dist/datepicker/createTimeField.d.ts +12 -49
  276. package/dist/datepicker/createTimeField.d.ts.map +1 -1
  277. package/dist/datepicker/index.d.ts +3 -3
  278. package/dist/datepicker/index.d.ts.map +1 -1
  279. package/dist/datepicker/index.js +2 -2
  280. package/dist/datepicker/index.jsx +2 -2
  281. package/dist/datepicker/intl.d.ts +12 -0
  282. package/dist/datepicker/intl.d.ts.map +1 -0
  283. package/dist/dnd/DragManager.d.ts +86 -0
  284. package/dist/dnd/DragManager.d.ts.map +1 -0
  285. package/dist/dnd/DropTargetKeyboardNavigation.d.ts +42 -0
  286. package/dist/dnd/DropTargetKeyboardNavigation.d.ts.map +1 -0
  287. package/dist/dnd/createDrag.d.ts.map +1 -1
  288. package/dist/dnd/createDraggableCollection.d.ts.map +1 -1
  289. package/dist/dnd/createDraggableItem.d.ts +12 -7
  290. package/dist/dnd/createDraggableItem.d.ts.map +1 -1
  291. package/dist/dnd/createDroppableCollection.d.ts +7 -15
  292. package/dist/dnd/createDroppableCollection.d.ts.map +1 -1
  293. package/dist/dnd/index.d.ts +5 -1
  294. package/dist/dnd/index.d.ts.map +1 -1
  295. package/dist/dnd/index.js +3 -2
  296. package/dist/dnd/index.jsx +3 -2
  297. package/dist/dnd/intl/index.d.ts +39 -0
  298. package/dist/dnd/intl/index.d.ts.map +1 -0
  299. package/dist/dnd/utils.d.ts +5 -0
  300. package/dist/dnd/utils.d.ts.map +1 -1
  301. package/dist/focus/FocusScope.d.ts +7 -0
  302. package/dist/focus/FocusScope.d.ts.map +1 -1
  303. package/dist/focus/index.d.ts +2 -1
  304. package/dist/focus/index.d.ts.map +1 -1
  305. package/dist/focus/index.js +3 -2
  306. package/dist/focus/index.jsx +3 -2
  307. package/dist/focus/virtualFocus.d.ts +26 -0
  308. package/dist/focus/virtualFocus.d.ts.map +1 -0
  309. package/dist/form/index.js +1 -1
  310. package/dist/form/index.jsx +1 -1
  311. package/dist/gridlist/createGridList.d.ts.map +1 -1
  312. package/dist/i18n/index.js +4 -2
  313. package/dist/i18n/index.jsx +4 -2
  314. package/dist/index.d.ts +3 -3
  315. package/dist/index.d.ts.map +1 -1
  316. package/dist/index.js +18 -12
  317. package/dist/index.jsx +18 -12
  318. package/dist/interactions/FocusableProvider.d.ts.map +1 -1
  319. package/dist/interactions/createFocus.d.ts.map +1 -1
  320. package/dist/interactions/createFocusWithin.d.ts.map +1 -1
  321. package/dist/interactions/createInteractionModality.d.ts.map +1 -1
  322. package/dist/interactions/index.js +1 -2
  323. package/dist/interactions/index.jsx +1 -2
  324. package/dist/label/createLabels.d.ts.map +1 -1
  325. package/dist/listbox/createListBox.d.ts.map +1 -1
  326. package/dist/listbox/createOption.d.ts +1 -1
  327. package/dist/listbox/createOption.d.ts.map +1 -1
  328. package/dist/live-announcer/index.js +1 -1
  329. package/dist/live-announcer/index.jsx +1 -1
  330. package/dist/select/createSelect.d.ts +2 -0
  331. package/dist/select/createSelect.d.ts.map +1 -1
  332. package/dist/selection/createSelectableItem.d.ts.map +1 -1
  333. package/dist/selection/index.js +2 -1
  334. package/dist/selection/index.jsx +2 -1
  335. package/dist/spinbutton/createSpinButton.d.ts +41 -0
  336. package/dist/spinbutton/createSpinButton.d.ts.map +1 -0
  337. package/dist/spinbutton/index.d.ts +3 -0
  338. package/dist/spinbutton/index.d.ts.map +1 -0
  339. package/dist/spinbutton/index.js +2 -0
  340. package/dist/spinbutton/index.jsx +2 -0
  341. package/dist/spinbutton/intl.d.ts +5 -0
  342. package/dist/spinbutton/intl.d.ts.map +1 -0
  343. package/dist/table/createTable.d.ts.map +1 -1
  344. package/dist/table/createTableColumnHeader.d.ts.map +1 -1
  345. package/dist/table/createTableRow.d.ts.map +1 -1
  346. package/dist/table/createTableSelectionCheckbox.d.ts.map +1 -1
  347. package/dist/table/types.d.ts +8 -0
  348. package/dist/table/types.d.ts.map +1 -1
  349. package/dist/table/utils.d.ts +15 -0
  350. package/dist/table/utils.d.ts.map +1 -0
  351. package/dist/tabs/createTabs.d.ts +1 -0
  352. package/dist/tabs/createTabs.d.ts.map +1 -1
  353. package/dist/tag/createTag.d.ts.map +1 -1
  354. package/dist/tag/createTagGroup.d.ts +7 -0
  355. package/dist/tag/createTagGroup.d.ts.map +1 -1
  356. package/dist/toolbar/createToolbar.d.ts.map +1 -1
  357. package/dist/tree/createTree.d.ts.map +1 -1
  358. package/dist/tree/createTreeSelectionCheckbox.d.ts.map +1 -1
  359. package/dist/utils/animation.d.ts.map +1 -1
  360. package/dist/utils/dom.d.ts +1 -0
  361. package/dist/utils/dom.d.ts.map +1 -1
  362. package/dist/utils/index.d.ts +1 -1
  363. package/dist/utils/index.d.ts.map +1 -1
  364. package/dist/utils/index.js +4 -3
  365. package/dist/utils/index.jsx +4 -3
  366. package/package.json +2 -2
  367. package/src/actiongroup/createActionGroup.ts +26 -109
  368. package/src/autocomplete/createAutocomplete.ts +136 -15
  369. package/src/breadcrumbs/createBreadcrumbs.ts +12 -4
  370. package/src/button/createToggleButtonGroup.ts +19 -14
  371. package/src/calendar/createCalendar.ts +3 -4
  372. package/src/calendar/createCalendarCell.ts +17 -3
  373. package/src/calendar/createCalendarGrid.ts +5 -4
  374. package/src/calendar/createRangeCalendar.ts +27 -17
  375. package/src/calendar/createRangeCalendarCell.ts +17 -3
  376. package/src/calendar/intl/index.ts +8 -0
  377. package/src/color/createColorArea.ts +17 -10
  378. package/src/color/createColorField.ts +8 -1
  379. package/src/color/createColorSlider.ts +1 -2
  380. package/src/color/createColorSwatch.ts +4 -2
  381. package/src/color/createColorWheel.ts +0 -6
  382. package/src/color/intl/index.ts +316 -0
  383. package/src/combobox/createComboBox.ts +35 -4
  384. package/src/combobox/intl/generated-locales.ts +635 -0
  385. package/src/combobox/intl/index.ts +8 -2
  386. package/src/datepicker/createDateField.ts +228 -213
  387. package/src/datepicker/createDatePicker.ts +157 -146
  388. package/src/datepicker/createDatePickerGroup.ts +88 -82
  389. package/src/datepicker/createDateRangePicker.ts +230 -179
  390. package/src/datepicker/createDateSegment.ts +386 -389
  391. package/src/datepicker/createDisplayNames.ts +45 -0
  392. package/src/datepicker/createTimeField.ts +36 -129
  393. package/src/datepicker/index.ts +13 -14
  394. package/src/datepicker/intl.ts +633 -0
  395. package/src/dnd/DragManager.ts +693 -0
  396. package/src/dnd/DropTargetKeyboardNavigation.ts +337 -0
  397. package/src/dnd/createDrag.ts +31 -5
  398. package/src/dnd/createDraggableCollection.ts +33 -15
  399. package/src/dnd/createDraggableItem.ts +92 -5
  400. package/src/dnd/createDroppableCollection.ts +487 -373
  401. package/src/dnd/index.ts +11 -0
  402. package/src/dnd/intl/ar-AE.json +29 -0
  403. package/src/dnd/intl/bg-BG.json +29 -0
  404. package/src/dnd/intl/cs-CZ.json +29 -0
  405. package/src/dnd/intl/da-DK.json +29 -0
  406. package/src/dnd/intl/de-DE.json +29 -0
  407. package/src/dnd/intl/el-GR.json +29 -0
  408. package/src/dnd/intl/en-US.json +29 -0
  409. package/src/dnd/intl/es-ES.json +29 -0
  410. package/src/dnd/intl/et-EE.json +29 -0
  411. package/src/dnd/intl/fi-FI.json +29 -0
  412. package/src/dnd/intl/fr-FR.json +29 -0
  413. package/src/dnd/intl/he-IL.json +29 -0
  414. package/src/dnd/intl/hr-HR.json +29 -0
  415. package/src/dnd/intl/hu-HU.json +29 -0
  416. package/src/dnd/intl/index.ts +139 -0
  417. package/src/dnd/intl/it-IT.json +29 -0
  418. package/src/dnd/intl/ja-JP.json +29 -0
  419. package/src/dnd/intl/ko-KR.json +29 -0
  420. package/src/dnd/intl/lt-LT.json +29 -0
  421. package/src/dnd/intl/lv-LV.json +29 -0
  422. package/src/dnd/intl/nb-NO.json +29 -0
  423. package/src/dnd/intl/nl-NL.json +29 -0
  424. package/src/dnd/intl/pl-PL.json +29 -0
  425. package/src/dnd/intl/pt-BR.json +29 -0
  426. package/src/dnd/intl/pt-PT.json +29 -0
  427. package/src/dnd/intl/ro-RO.json +29 -0
  428. package/src/dnd/intl/ru-RU.json +29 -0
  429. package/src/dnd/intl/sk-SK.json +29 -0
  430. package/src/dnd/intl/sl-SI.json +29 -0
  431. package/src/dnd/intl/sr-SP.json +29 -0
  432. package/src/dnd/intl/sv-SE.json +29 -0
  433. package/src/dnd/intl/tr-TR.json +29 -0
  434. package/src/dnd/intl/uk-UA.json +29 -0
  435. package/src/dnd/intl/zh-CN.json +29 -0
  436. package/src/dnd/intl/zh-TW.json +29 -0
  437. package/src/dnd/utils.ts +36 -0
  438. package/src/focus/FocusScope.tsx +120 -12
  439. package/src/focus/index.ts +8 -0
  440. package/src/focus/virtualFocus.ts +55 -0
  441. package/src/gridlist/createGridList.ts +52 -16
  442. package/src/index.ts +11 -3
  443. package/src/interactions/FocusableProvider.tsx +11 -6
  444. package/src/interactions/createFocus.ts +26 -21
  445. package/src/interactions/createFocusWithin.ts +23 -24
  446. package/src/interactions/createInteractionModality.ts +5 -3
  447. package/src/label/createLabels.ts +7 -4
  448. package/src/listbox/createListBox.ts +74 -2
  449. package/src/listbox/createOption.ts +16 -1
  450. package/src/select/createSelect.ts +23 -2
  451. package/src/selection/createSelectableItem.ts +14 -0
  452. package/src/spinbutton/createSpinButton.ts +163 -0
  453. package/src/spinbutton/index.ts +10 -0
  454. package/src/spinbutton/intl.ts +115 -0
  455. package/src/table/createTable.ts +26 -1
  456. package/src/table/createTableColumnHeader.ts +10 -0
  457. package/src/table/createTableRow.ts +10 -0
  458. package/src/table/createTableSelectionCheckbox.ts +24 -1
  459. package/src/table/types.ts +8 -0
  460. package/src/table/utils.ts +41 -0
  461. package/src/tabs/createTabs.ts +53 -12
  462. package/src/tag/createTag.ts +21 -32
  463. package/src/tag/createTagGroup.ts +92 -0
  464. package/src/toolbar/createToolbar.ts +6 -58
  465. package/src/tree/createTree.ts +69 -14
  466. package/src/tree/createTreeSelectionCheckbox.ts +14 -1
  467. package/src/utils/animation.ts +119 -27
  468. package/src/utils/dom.ts +3 -2
  469. package/src/utils/index.ts +2 -0
  470. package/dist/_chunk/createLongPress.js +0 -91
  471. package/dist/_chunk/createLongPress.js.map +0 -1
  472. package/dist/_chunk/createLongPress.jsx +0 -91
  473. package/dist/_chunk/createLongPress.jsx.map +0 -1
  474. package/dist/_chunk/form.js.map +0 -1
  475. package/dist/_chunk/form.jsx.map +0 -1
  476. package/dist/_chunk/live-announcer.js.map +0 -1
  477. package/dist/_chunk/live-announcer.jsx.map +0 -1
  478. package/dist/datepicker/createTimeSegment.d.ts +0 -29
  479. package/dist/datepicker/createTimeSegment.d.ts.map +0 -1
  480. package/src/datepicker/createTimeSegment.ts +0 -352
@@ -1 +1 @@
1
- {"version":3,"file":"utils.jsx","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":";;;;;AAWA,SAAS,eAAkD;CACzD,IAAI,OAAO,WAAW,eAAe,OAAO,aAAa,MAAM,OAAO;CACtE,OAAO,OAAO;AAChB;AAEA,SAAS,aAAa,IAAqB;CACzC,MAAM,MAAM,aAAa;CACzB,IAAI,CAAC,KAAK,OAAO;CACjB,OAAO,GAAG,KAAK,IAAI,YAAY,IAAI,eAAe,YAAY,EAAE;AAClE;AAEA,SAAS,cAAc,IAAqB;CAC1C,MAAM,MAAM,aAAa;CACzB,OAAO,MAAM,GAAG,KAAK,IAAI,SAAS,IAAI;AACxC;AAEA,SAAgB,QAAiB;CAC/B,OAAO,aAAa,OAAO;AAC7B;AAEA,SAAgB,WAAoB;CAClC,OAAO,aAAa,UAAU;AAChC;AAEA,SAAgB,SAAkB;CAChC,OAAO,aAAa,QAAQ,KAAM,MAAM,KAAK,UAAU,iBAAiB;AAC1E;AAEA,SAAgB,QAAiB;CAC/B,OAAO,SAAS,KAAK,OAAO;AAC9B;AAEA,SAAgB,gBAAyB;CACvC,OAAO,MAAM,KAAK,MAAM;AAC1B;AAEA,SAAgB,WAAoB;CAClC,OAAO,cAAc,cAAc,KAAK,CAAC,SAAS;AACpD;AAEA,SAAgB,WAAoB;CAClC,OAAO,cAAc,SAAS;AAChC;AAEA,SAAgB,YAAqB;CACnC,OAAO,cAAc,UAAU;AACjC;AAEA,SAAgB,YAAqB;CACnC,OAAO,cAAc,UAAU;AACjC;;;;;;;;;;;;ACnCA,SAAgB,eACd,YACA,SACA,OAA2B,CAAC,GACtB;CACN,MAAM,EAAE,QAAQ,WAAW,SAAS,cAAc;CAElD,IAAI,eAAe,SACjB;CAGF,IAAI,IAAI,WAAW;CACnB,IAAI,IAAI,WAAW;CAEnB,MAAM,SAAS,QAAQ,sBAAsB;CAC7C,MAAM,OAAO,WAAW,sBAAsB;CAC9C,MAAM,YAAY,OAAO,iBAAiB,OAAO;CACjD,MAAM,YAAY,OAAO,iBAAiB,UAAU;CACpD,MAAM,OAAO,SAAS,oBAAoB,SAAS;CACnD,MAAM,SAAS,eAAe;CAE9B,MAAM,UAAU,eAAe,OAAO,IAAI,KAAK;CAC/C,MAAM,aAAa,eAAe,OAAO,WAAW,eAAe,KAAK;CACxE,MAAM,WAAW,eAAe,OAAO,IAAI,KAAK;CAChD,MAAM,YAAY,eAAe,OAAO,WAAW,cAAc,KAAK;CAEtE,MAAM,kBAAkB,WAAW,UAAU,eAAe,KAAK;CACjE,MAAM,qBAAqB,WAAW,UAAU,kBAAkB,KAAK;CACvE,MAAM,mBAAmB,WAAW,UAAU,gBAAgB,KAAK;CACnE,MAAM,oBAAoB,WAAW,UAAU,iBAAiB,KAAK;CAErE,MAAM,mBAAmB,WAAW,UAAU,gBAAgB,KAAK;CACnE,MAAM,sBAAsB,WAAW,UAAU,mBAAmB,KAAK;CACzE,MAAM,oBAAoB,WAAW,UAAU,iBAAiB,KAAK;CACrE,MAAM,qBAAqB,WAAW,UAAU,kBAAkB,KAAK;CAEvE,MAAM,iBAAiB,WAAW,UAAU,cAAc,KAAK;CAC/D,MAAM,oBAAoB,WAAW,UAAU,iBAAiB,KAAK;CACrE,MAAM,kBAAkB,WAAW,UAAU,eAAe,KAAK;CACjE,MAAM,mBAAmB,WAAW,UAAU,gBAAgB,KAAK;CAEnE,MAAM,gBAAgB,OAAO,MAAM;CACnC,MAAM,mBAAmB,OAAO,SAAS;CACzC,MAAM,iBAAiB,OAAO,OAAO;CACrC,MAAM,kBAAkB,OAAO,QAAQ;CAEvC,MAAM,mBAAmB,eAAe,OAAO,IAAI,kBAAkB;CACrE,MAAM,mBAAmB,eAAe,OAAO,IAAI,iBAAiB;CACpE,MAAM,iBACJ,eAAe,OAAO,IAAI,WAAW,cAAc,WAAW,cAAc;CAC9E,MAAM,kBACJ,eAAe,OAAO,IAAI,WAAW,eAAe,WAAW,eAAe;CAEhF,MAAM,gBAAgB,WAAW,SAAS,IAAI,kBAAkB;CAChE,MAAM,mBACJ,cAAc,SAAS,IAAI,qBAAqB,sBAAsB;CACxE,IAAI,iBAAiB,YAAY,SAAS,IAAI,mBAAmB;CACjE,IAAI,kBAAkB,aAAa,SAAS,IAAI,oBAAoB;CAGpE,IAAI,UAAU,cAAc,SAAS,CAAC,MAAM,GAC1C,kBAAkB;MAElB,mBAAmB;CAGrB,MAAM,oBAAoB,gBAAgB,iBAAiB,mBAAmB;CAC9E,MAAM,qBAAqB,iBAAiB,kBAAkB,kBAAkB;CAEhF,IAAI,qBAAqB,UAAU,SACjC,KAAK,gBAAgB;MAChB,IAAI,qBAAqB,UAAU,UACxC,MAAM,gBAAgB,oBAAoB,KAAK,gBAAgB,oBAAoB;MAC9E,IAAI,qBAAqB,UAAU,OACxC,KAAK,mBAAmB;MACnB,IAAI,qBAAqB,UAAU,WAAW;EACnD,MAAM,QAAQ,gBAAgB;EAC9B,MAAM,MAAM,mBAAmB;EAC/B,KAAK,KAAK,IAAI,KAAK,KAAK,KAAK,IAAI,GAAG,IAAI,QAAQ;CAClD;CAEA,IAAI,sBAAsB,WAAW,SACnC,KAAK,iBAAiB;MACjB,IAAI,sBAAsB,WAAW,UAC1C,MAAM,iBAAiB,mBAAmB,KAAK,iBAAiB,mBAAmB;MAC9E,IAAI,sBAAsB,WAAW,OAC1C,KAAK,kBAAkB;MAClB,IAAI,sBAAsB,WAAW,WAAW;EACrD,MAAM,QAAQ,iBAAiB;EAC/B,MAAM,MAAM,kBAAkB;EAC9B,KAAK,KAAK,IAAI,KAAK,KAAK,KAAK,IAAI,GAAG,IAAI,QAAQ;CAClD;CAEA,IAAI,UAAU,GAAG;EACf,WAAW,aAAa;EACxB,WAAW,YAAY;EACvB;CACF;CAEA,WAAW,SAAS;EAAE,MAAM;EAAG,KAAK;CAAE,CAAC;AACzC;;;;;;;;AASA,SAAgB,mBACd,eACA,OAA+B,CAAC,GAC1B;CACN,MAAM,EAAE,sBAAsB;CAC9B,IAAI,iBAAiB,cAAc,aAAa;EAC9C,MAAM,OAAO,SAAS,oBAAoB,SAAS;EAEnD,IAAI,EADsB,OAAO,iBAAiB,IAAI,CAAC,CAAC,aAAa,WAC7C;GACtB,MAAM,EAAE,MAAM,cAAc,KAAK,gBAAgB,cAAc,sBAAsB;GAIrF,eAAe,iBAAiB,EAAE,OAAO,UAAU,CAAC;GACpD,MAAM,EAAE,MAAM,SAAS,KAAK,WAAW,cAAc,sBAAsB;GAE3E,IAAI,KAAK,IAAI,eAAe,OAAO,IAAI,KAAK,KAAK,IAAI,cAAc,MAAM,IAAI,GAAG;IAC9E,mBAAmB,iBAAiB;KAAE,OAAO;KAAU,QAAQ;IAAS,CAAC;IACzE,cAAc,iBAAiB,EAAE,OAAO,UAAU,CAAC;GACrD;EACF,OAAO;GACL,MAAM,EAAE,MAAM,cAAc,KAAK,gBAAgB,cAAc,sBAAsB;GAGrF,IAAI,gBAAgB,iBAAiB,eAAe,IAAI;GACxD,KAAK,MAAM,gBAAgB,eACzB,eAAe,cAA6B,aAA4B;GAE1E,MAAM,EAAE,MAAM,SAAS,KAAK,WAAW,cAAc,sBAAsB;GAE3E,IAAI,KAAK,IAAI,eAAe,OAAO,IAAI,KAAK,KAAK,IAAI,cAAc,MAAM,IAAI,GAAG;IAC9E,gBAAgB,oBAAoB,iBAAiB,mBAAmB,IAAI,IAAI,CAAC;IAEjF,KAAK,MAAM,gBAAgB,eACzB,eAAe,cAA6B,mBAAkC;KAC5E,OAAO;KACP,QAAQ;IACV,CAAC;IAEH,KAAK,MAAM,gBAAgB,iBAAiB,eAAe,IAAI,GAC7D,eAAe,cAA6B,aAA4B;GAE5E;EACF;CACF;AACF;;;;;;AC5JA,SAAgB,yBAAyB,GAAS,GAAkB;CAClE,IAAI,EAAE,OAAO,EAAE,SAAS,EAAE,OAAO,EAAE,OACjC,OAAO;CAGT,IAAI,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,EAAE,QAChC,OAAO;CAGT,OAAO;AACT;;;;;AAMA,SAAgB,mBAAmB,OAAyB;CAC1D,IAAI,UAAU;CACd,IAAI,UAAU;CAEd,IAAI,MAAM,UAAU,KAAA,KAAa,MAAM,QAAQ,GAC7C,UAAU,MAAM,QAAQ;MACnB,IAAI,MAAM,YAAY,KAAA,KAAa,MAAM,UAAU,GAExD,UAAU,MAAM;CAGlB,IAAI,MAAM,WAAW,KAAA,KAAa,MAAM,SAAS,GAC/C,UAAU,MAAM,SAAS;MACpB,IAAI,MAAM,YAAY,KAAA,KAAa,MAAM,UAAU,GACxD,UAAU,MAAM;CAGlB,OAAO;EACL,KAAK,MAAM,UAAU;EACrB,OAAO,MAAM,UAAU;EACvB,QAAQ,MAAM,UAAU;EACxB,MAAM,MAAM,UAAU;CACxB;AACF;;;;AAKA,SAAgB,kBAAkB,OAAmB,QAA0B;CAC7E,MAAM,OAAO,OAAO,sBAAsB;CAC1C,MAAM,YAAY,mBAAmB,KAAK;CAE1C,OAAO,yBACL;EACE,KAAK,KAAK;EACV,OAAO,KAAK;EACZ,QAAQ,KAAK;EACb,MAAM,KAAK;CACb,GACA,SACF;AACF;;;;AAKA,SAAgB,kBAAkB,OAAiC;CACjE,MAAM,EAAE,kBAAkB;CAC1B,IAAI,cAAc,SAAS,GACzB,OAAO,cAAc;CAEvB,OAAO;AACT;;;;AAKA,SAAgB,aAAa,OAAmB,WAAwC;CACtF,IAAI,aAAa,MACf,OAAO;CAGT,MAAM,EAAE,mBAAmB;CAC3B,KAAK,IAAI,IAAI,GAAG,IAAI,eAAe,QAAQ,KAAK;EAC9C,MAAM,QAAQ,eAAe;EAC7B,IAAI,MAAM,eAAe,WACvB,OAAO;CAEX;CAEA,OAAO;AACT;;;;;;;;;;;ACpGA,SAAgB,eAAe,OAA2C;CAExE,IAAK,MAAuB,gBAAgB,MAAM,MAAM,WACtD,OAAO;CAKT,IAAI,UAAU,KAAM,MAAuB,aACzC,OAAO,MAAM,SAAS,WAAY,MAAqB,YAAY;CAGrE,OAAO,MAAM,WAAW,KAAK,CAAE,MAAuB;AACxD;;;;;;AAOA,SAAgB,sBAAsB,OAA8B;CAKlE,OACG,CAAC,UAAU,KAAK,MAAM,UAAU,KAAK,MAAM,WAAW,KACtD,MAAM,UAAU,KACf,MAAM,WAAW,KACjB,MAAM,aAAa,KACnB,MAAM,WAAW,KACjB,MAAM,gBAAgB;AAE5B;;;;AAKA,SAAgB,iBAAiB,MAAc,aAAiC;CAC9E,MAAM,OAAuB;EAC3B,SAAS;EACT,YAAY;EACZ,MAAM;CACR;CAGA,IAAI,aAAa;EACf,MAAM,IAAI;EACV,KAAK,UAAU,EAAE;EACjB,KAAK,UAAU,EAAE;EACjB,KAAK,UAAU,EAAE;EACjB,KAAK,UAAU,EAAE;EACjB,KAAK,UAAU,EAAE;EACjB,KAAK,WAAW,EAAE;EAClB,KAAK,SAAS,EAAE;EAChB,KAAK,UAAU,EAAE;EACjB,KAAK,SAAS,EAAE;EAChB,KAAK,UAAU,EAAE;EACjB,KAAK,gBAAgB,EAAE;CACzB;CAEA,OAAO,IAAI,WAAW,MAAM,IAAI;AAClC;;;;AAKA,SAAgB,MACd,GAAG,WACA;CACH,SAAS,GAAG,SAAwB;EAClC,KAAK,MAAM,YAAY,WACrB,IAAI,OAAO,aAAa,YACtB,SAAS,GAAG,IAAI;CAGtB;AACF;;;;;AAMA,SAAgB,eAAgC,OAAU,QAA2B;CACnF,OAAO,eAAe,OAAO,UAAU;EACrC,OAAO;EACP,UAAU;EACV,cAAc;CAChB,CAAC;CACD,OAAO,eAAe,OAAO,iBAAiB;EAC5C,OAAO;EACP,UAAU;EACV,cAAc;CAChB,CAAC;AACH;;;;;;;;;;;AC1FA,IAAI,QAAe;AACnB,IAAI,kBAAkB;AACtB,IAAI,qCAAqB,IAAI,QAA6B;;;;;AAM1D,SAAgB,qBAAqB,QAA4B;CAC/D,IAAI,MAAM,GAAG;EAEX,IAAI,UAAU,WAAW;GACvB,MAAM,kBAAkB,iBAAiB,MAAM,CAAC,CAAC;GACjD,kBAAkB,gBAAgB,MAAM;GACxC,gBAAgB,MAAM,mBAAmB;EAC3C;EACA,QAAQ;CACV,OAAO,IAAI,QAAQ;EAEjB,MAAM,UAAU;EAChB,IAAI,CAAC,mBAAmB,IAAI,OAAO,GAAG;GACpC,mBAAmB,IAAI,SAAS,QAAQ,MAAM,UAAU;GACxD,QAAQ,MAAM,aAAa;EAC7B;CACF;AACF;;;;;AAMA,SAAgB,qBAAqB,QAA4B;CAC/D,IAAI,MAAM,GAAG;EAEX,IAAI,UAAU,YACZ;EAGF,QAAQ;EAIR,iBAAiB;GAEf,yBAAyB;IAEvB,IAAI,UAAU,aAAa;KACzB,MAAM,kBAAkB,iBAAiB,MAAM,CAAC,CAAC;KACjD,IAAI,iBACF,gBAAgB,MAAM,mBAAmB;UAEzC,gBAAgB,MAAM,eAAe,qBAAqB;KAE5D,kBAAkB;KAClB,QAAQ;IACV;GACF,CAAC;EACH,GAAG,GAAG;CACR,OAAO,IAAI,QAAQ;EAEjB,MAAM,UAAU;EAChB,MAAM,aAAa,mBAAmB,IAAI,OAAO;EACjD,IAAI,eAAe,KAAA,GAAW;GAC5B,IAAI,YACF,QAAQ,MAAM,aAAa;QAE3B,QAAQ,MAAM,eAAe,aAAa;GAE5C,mBAAmB,OAAO,OAAO;EACnC;CACF;AACF;AAGA,MAAM,qCAAqB,IAAI,IAAgB;AAC/C,IAAI,oBAA0D;;;;;AAM9D,SAAS,mBAAmB,UAA4B;CAEtD,mBAAmB,IAAI,QAAQ;CAG/B,IAAI,qBAAqB,MACvB,aAAa,iBAAiB;CAGhC,oBAAoB,iBAAiB;EAEnC,KAAK,MAAM,MAAM,oBACf,GAAG;EAEL,mBAAmB,MAAM;EACzB,oBAAoB;CACtB,GAAG,CAAC;AACN;;;;;;;;;;;;AC/FA,SAAgB,iBAAiB,GAA8B;CAC7D,IAAI,MAAM,GACR,OAAO,EAAE,YAAY;CAGvB,OAAO,EAAE,YAAY;AACvB;;;;;;;;;;;;;;ACLA,SAAgB,wBAAwB;CACtC,MAAM,YAKD,CAAC;CAeN,SAAS,kBACP,MACA,SACA,SACM;EACN,MAAM,SAAS,SAAS,WAAW,SAAS;EAC5C,MAAM,kBAAkB,UACpB;GACE,SAAS,QAAQ;GACjB,SAAS,QAAQ;GACjB,MAAM,QAAQ;EAChB,IACA,KAAA;EAEJ,OAAO,iBAAiB,MAAM,SAAS,eAAe;EACtD,UAAU,KAAK;GAAE;GAAQ;GAAM;GAAS,SAAS;EAAgB,CAAC;CACpE;CAeA,SAAS,qBACP,MACA,SACA,SACM;EACN,MAAM,SAAS,SAAS,WAAW,SAAS;EAC5C,MAAM,kBAAkB,UACpB,EACE,SAAS,QAAQ,QACnB,IACA,KAAA;EAEJ,OAAO,oBAAoB,MAAM,SAAS,eAAe;EAGzD,MAAM,QAAQ,UAAU,WACrB,MACC,EAAE,WAAW,UACb,EAAE,SAAS,QACX,EAAE,YAAY,WACd,EAAE,SAAS,YAAY,iBAAiB,OAC5C;EACA,IAAI,UAAU,IACZ,UAAU,OAAO,OAAO,CAAC;CAE7B;;;;CAKA,SAAS,2BAAiC;EACxC,KAAK,MAAM,EAAE,QAAQ,MAAM,SAAS,aAAa,WAC/C,OAAO,oBAAoB,MAAM,SAAS,OAAO;EAEnD,UAAU,SAAS;CACrB;CAGA,UAAU,wBAAwB;CAElC,OAAO;EACL;EACA;EACA;CACF;AACF;;;;;AAMA,SAAgB,sBACd,MACA,SACA,SACY;CACZ,MAAM,SAAS,SAAS,WAAW,SAAS;CAC5C,MAAM,kBAAkB,UACpB;EACE,SAAS,QAAQ;EACjB,SAAS,QAAQ;EACjB,MAAM,QAAQ;CAChB,IACA,KAAA;CAEJ,OAAO,iBAAiB,MAAM,SAA0B,eAAe;CAEvE,aAAa;EACX,OAAO,oBAAoB,MAAM,SAA0B,eAAe;CAC5E;AACF;;;;;;;;;;;;;;;;;;;;;;;;;;;AC7GA,IAAI,gBAAgB;AACpB,MAAM,mCAAmB,IAAI,IAAoD;;;;;;;;;;;;;;;;;AAkBjF,SAAgB,kBAAkB,aAA6D;CAC7F,IAAI,UACF,OAAO,CAAC;CAGV,MAAM,CAAC,IAAI,SAAS,aAAiC;CAErD,mBAAmB;EACjB,MAAM,OAAO,YAAY;EAEzB,IAAI,CAAC,MAAM;GACT,MAAM,KAAA,CAAS;GACf;EACF;EAEA,IAAI,OAAO,iBAAiB,IAAI,IAAI;EAEpC,IAAI,CAAC,MAAM;GACT,MAAM,QAAQ,yBAAyB;GACvC,MAAM,KAAK;GAEX,MAAM,UAAU,SAAS,cAAc,KAAK;GAC5C,QAAQ,KAAK;GACb,QAAQ,MAAM,UAAU;GACxB,QAAQ,cAAc;GACtB,SAAS,KAAK,YAAY,OAAO;GAEjC,OAAO;IAAE,UAAU;IAAG;GAAQ;GAC9B,iBAAiB,IAAI,MAAM,IAAI;EACjC,OACE,MAAM,KAAK,QAAQ,EAAE;EAGvB,KAAK;EAEL,gBAAgB;GACd,IAAI,QAAQ,EAAE,KAAK,aAAa,GAAG;IACjC,KAAK,QAAQ,OAAO;IACpB,iBAAiB,OAAO,IAAI;GAC9B;EACF,CAAC;CACH,CAAC;CAED,OAAO,EACL,IAAI,qBAAqB;EAEvB,OADa,YACH,IAAI,GAAG,IAAI,KAAA;CACvB,EACF;AACF;;;;;AAMA,SAAgB,0BAAkC;CAChD,OAAO,iBAAiB;AAC1B;;;;;AAMA,SAAgB,wBAA8B;CAC5C,KAAK,MAAM,GAAG,SAAS,kBACrB,KAAK,QAAQ,OAAO;CAEtB,iBAAiB,MAAM;AACzB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACjFA,SAAS,gBACP,KACA,UACA,OACM;CACN,mBAAmB;EACjB,IAAI,CAAC,SAAS,GAAG;EACjB,MAAM,UAAU,IAAI;EACpB,IAAI,CAAC,SAAS;EAEd,IAAI,EAAE,mBAAmB,UAAU;GAEjC,MAAM;GACN;EACF;EAEA,MAAM,aAAa,QAAQ,cAAc;EACzC,IAAI,WAAW,WAAW,GAAG;GAC3B,MAAM;GACN;EACF;EAEA,IAAI,WAAW;EACf,QAAQ,WAAW,WAAW,KAAK,cAAc,UAAU,QAAQ,CAAC,CAAC,CAAC,WAAW;GAC/E,IAAI,CAAC,UAAU,MAAM;EACvB,CAAC;EAED,gBAAgB;GACd,WAAW;EACb,CAAC;CACH,CAAC;AACH;;;;;;;;;;;;;;;AAgBA,SAAgB,qBACd,KACA,gBAAmC,MAChB;CACnB,MAAM,CAAC,YAAY,iBAAiB,aAAa,IAAI;CACrD,MAAM,yBAAyB,WAAW,KAAK,QAAQ;CAKvD,mBAAmB;EACjB,IAAI,CAAC,iBAAiB,GAAG;EACzB,MAAM,UAAU,IAAI;EACpB,IAAI,CAAC,WAAW,EAAE,mBAAmB,UAAU;EAC/C,KAAK,MAAM,aAAa,QAAQ,cAAc,GAC5C,IAAI,qBAAqB,eACvB,UAAU,OAAO;CAGvB,CAAC;CAED,gBAAgB,KAAK,wBAAwB,cAAc,KAAK,CAAC;CAEjE,OAAO;AACT;;;;;;;;;;;;;AAcA,SAAgB,oBACd,KACA,QACmB;CACnB,MAAM,CAAC,WAAW,gBAAgB,aAChC,OAAO,IAAI,SAAS,QACtB;CAEA,mBAAmB;EACjB,MAAM,OAAO,OAAO;EACpB,cAAc,YAAY;GAExB,IAAI,YAAY,UAAU,CAAC,MAAM,OAAO;GAGxC,KAAK,YAAY,YAAY,YAAY,cAAc,MAAM,OAAO;GACpE,OAAO;EACT,CAAC;CACH,CAAC;CAED,MAAM,kBAAkB,UAAU,MAAM;CAExC,gBAAgB,KAAK,iBAAiB;EACpC,cAAc,UAAW,UAAU,YAAY,WAAW,KAAM;CAClE,CAAC;CAED,OAAO;AACT"}
1
+ {"version":3,"file":"utils.jsx","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 {\n createComputed,\n createEffect,\n createMemo,\n createSignal,\n onCleanup,\n type Accessor,\n} 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 *\n * `deferNoAnimation` mirrors React's timing for the no-animation case. Upstream\n * runs `onEnd` inside a `useLayoutEffect`, so an animation-less exit unmounts\n * *after* React commits — i.e. after the triggering input event finishes\n * dispatching (empirically, an Escape's teardown lands after `keyup`, not\n * between `keydown` and `keyup`). A Solid `createEffect` runs synchronously\n * inside the handler, so an animation-less exit would tear the overlay out\n * mid-gesture, firing `focusout` before `keyup` and retargeting `keyup` to the\n * body. Deferring `onEnd` to the next frame — the same primitive `FocusScope`\n * uses to defer focus restore — reproduces React's post-commit ordering. Only\n * the real-browser no-animation branch defers; the JSDOM branch stays\n * synchronous so unit tests that assert immediate unmount are unaffected.\n */\nfunction createAnimation(\n ref: ElementAccessor,\n isActive: Accessor<boolean>,\n onEnd: () => void,\n deferNoAnimation = false,\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 // `settle` mirrors React's post-commit `useLayoutEffect` timing (see the\n // `deferNoAnimation` note above): a Solid effect runs synchronously inside\n // the triggering input handler, and even the Web-Animations `finished`\n // promise resolves in a microtask that drains *before* the gesture's later\n // events (e.g. an Escape's `keyup`). Deferring the settle to the next frame\n // pushes the overlay teardown past the rest of the current event dispatch,\n // reproducing React's ordering (teardown after `keyup`, not between\n // `keydown` and `keyup`). A real, non-trivial exit transition already\n // finishes long after the gesture, so the extra frame is imperceptible; it\n // only matters for the instant/near-zero-duration exits that would\n // otherwise tear the focused overlay out mid-gesture. Unit environments\n // (no `requestAnimationFrame`, or the no-defer callers) settle synchronously.\n //\n // A single owner-bound `onCleanup` tracks both the pending frame and a\n // `canceled` flag — the flag guards the promise path, whose `.then` runs\n // outside the reactive owner where `onCleanup` could not register.\n let canceled = false;\n let frame: number | undefined;\n const settle = () => {\n if (canceled) return;\n if (deferNoAnimation && typeof requestAnimationFrame === \"function\") {\n frame = requestAnimationFrame(() => {\n if (!canceled) onEnd();\n });\n } else {\n onEnd();\n }\n };\n\n const animations = element.getAnimations();\n if (animations.length === 0) {\n settle();\n } else {\n Promise.allSettled(animations.map((animation) => animation.finished)).then(() => {\n settle();\n });\n }\n\n onCleanup(() => {\n canceled = true;\n if (frame !== undefined && typeof cancelAnimationFrame === \"function\") {\n cancelAnimationFrame(frame);\n }\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 // The state machine's synchronous edges (open→exiting on close, →open on\n // reopen) are computed in a `createMemo`, NOT a `createEffect`. This is the\n // Solid equivalent of react-aria's `setState`-*during-render*: because the\n // memo is a dependency of the caller's mount gate (`isOpen() || isExiting()`),\n // Solid recomputes it *before* the gate in the same synchronous propagation\n // that flips `isOpen`. A `createEffect` runs in the later effects phase, so\n // the gate would first observe `!isOpen && !isExiting` and unmount the\n // overlay, then the effect would flip `exiting` true and remount it from\n // scratch — recreating the whole subtree (Dialog section, focus scope) and\n // firing a spurious focus bounce mid-gesture. The memo closes that window so\n // the overlay stays mounted continuously through the exit, matching React's\n // single-commit `isOpen || isExiting`.\n //\n // Only the *async* edge (exiting→closed, when the animation settles) stays\n // event-driven: `createAnimation` bumps `exitFinished`, and the memo\n // acknowledges the new value via `ackedFinish` carried in its own previous\n // result — a pure epoch/ack so the memo never mutates external state.\n type ExitState = \"closed\" | \"open\" | \"exiting\";\n const [exitFinished, setExitFinished] = createSignal(0);\n\n const exitState = createMemo<{ state: ExitState; ackedFinish: number }>(\n (prev) => {\n const open = isOpen();\n const finish = exitFinished();\n const compute = (): { state: ExitState; ackedFinish: number } => {\n if (open) return { state: \"open\", ackedFinish: finish };\n // Open element requested to close: begin exiting.\n if (prev.state === \"open\") return { state: \"exiting\", ackedFinish: finish };\n // Mid-exit: settle to closed only once the animation reports a new finish.\n if (prev.state === \"exiting\") {\n if (finish !== prev.ackedFinish) return { state: \"closed\", ackedFinish: finish };\n return prev;\n }\n return { state: \"closed\", ackedFinish: finish };\n };\n return compute();\n },\n { state: isOpen() ? \"open\" : \"closed\", ackedFinish: 0 },\n );\n\n const isExiting = () => exitState().state === \"exiting\";\n\n // Keep the state machine eagerly subscribed. The caller's mount gate\n // `isOpen() || isExiting()` short-circuits on `isOpen()` while open and never\n // reads `isExiting`, so this lazy memo would go unobserved for the whole open\n // lifetime — never advancing to \"open\". Then on close it would recompute once,\n // straight from its stale initial \"closed\" back to \"closed\" (the \"open→exiting\"\n // edge never taken), collapsing the exit: `combinedExiting` stays false, the\n // caller's `<Show>` sees the gate go falsy, and the overlay Portal unmounts\n // synchronously mid-gesture (blurring the focused dialog to <body> before the\n // triggering key's `keyup`). An eager reader forces the memo to track `isOpen`\n // continuously so `prev.state === \"open\"` holds when the close edge runs —\n // mirroring React, whose component re-renders and re-derives this every commit.\n createComputed(() => void exitState());\n\n createAnimation(\n ref,\n isExiting,\n () => {\n setExitFinished((n) => n + 1);\n },\n true,\n );\n\n return isExiting;\n}\n"],"mappings":"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"}
@@ -1,4 +1,5 @@
1
- import { i as access, o as mergeProps } from "./env.js";
1
+ import { i as mergeProps$1 } from "./env.js";
2
+ import { t as access } from "./reactivity.js";
2
3
  import { t as createFocusWithin } from "./createFocusWithin.js";
3
4
  import { createMemo, createSignal } from "solid-js";
4
5
  //#region src/visually-hidden/createVisuallyHidden.ts
@@ -77,7 +78,7 @@ function createVisuallyHidden(props = {}) {
77
78
  };
78
79
  else return visuallyHiddenStyles;
79
80
  });
80
- return { visuallyHiddenProps: createMemo(() => ({ ...mergeProps(focusWithinProps, isFocusable() ? {
81
+ return { visuallyHiddenProps: createMemo(() => ({ ...mergeProps$1(focusWithinProps, isFocusable() ? {
81
82
  onFocusIn: () => setIsFocused(true),
82
83
  onFocusOut: (e) => {
83
84
  const currentTarget = e.currentTarget;
@@ -1 +1 @@
1
- {"version":3,"file":"visually-hidden.js","names":[],"sources":["../../src/visually-hidden/createVisuallyHidden.ts"],"sourcesContent":["/**\n * createVisuallyHidden hook for solidaria\n *\n * Provides styles and props to visually hide content while keeping it\n * accessible to screen readers.\n *\n * Port of react-aria's useVisuallyHidden.\n */\n\nimport { type Accessor, type JSX, createMemo, createSignal } from \"solid-js\";\nimport { createFocusWithin } from \"../interactions/createFocusWithin\";\nimport { access, type MaybeAccessor } from \"../utils\";\nimport { mergeProps } from \"../utils/mergeProps\";\n\nexport interface AriaVisuallyHiddenProps {\n /** Inline styles to merge with the visually hidden styles. */\n style?: JSX.CSSProperties;\n /** Whether the element should become visible when focused (e.g., skip links). */\n isFocusable?: boolean;\n}\n\nexport interface VisuallyHiddenAria {\n /** Props to spread on the visually hidden element. */\n visuallyHiddenProps: Accessor<JSX.HTMLAttributes<HTMLElement>>;\n}\n\n/**\n * CSS styles that visually hide an element while keeping it accessible.\n * These styles ensure the element is read by screen readers but not visible on screen.\n */\nexport const visuallyHiddenStyles: JSX.CSSProperties = {\n border: \"0\",\n clip: \"rect(0 0 0 0)\",\n \"clip-path\": \"inset(50%)\",\n height: \"1px\",\n margin: \"-1px\",\n overflow: \"hidden\",\n padding: \"0\",\n position: \"absolute\",\n width: \"1px\",\n \"white-space\": \"nowrap\",\n};\n\n/**\n * Provides props for an element that hides its children visually\n * but keeps content visible to assistive technology.\n *\n * @example\n * ```tsx\n * function SkipLink() {\n * let ref: HTMLAnchorElement | undefined;\n * const { visuallyHiddenProps } = createVisuallyHidden({ isFocusable: true });\n *\n * return (\n * <a\n * ref={ref}\n * href=\"#main-content\"\n * {...visuallyHiddenProps()}\n * >\n * Skip to main content\n * </a>\n * );\n * }\n *\n * // For content that should always be hidden\n * function ScreenReaderOnly(props: ParentProps) {\n * const { visuallyHiddenProps } = createVisuallyHidden();\n *\n * return (\n * <span {...visuallyHiddenProps()}>\n * {props.children}\n * </span>\n * );\n * }\n * ```\n */\nexport function createVisuallyHidden(\n props: MaybeAccessor<AriaVisuallyHiddenProps> = {},\n): VisuallyHiddenAria {\n const [isFocused, setIsFocused] = createSignal(false);\n\n const isFocusable = () => access(props).isFocusable ?? false;\n const style = () => access(props).style;\n\n // Track focus within for focusable visually hidden elements\n const { focusWithinProps } = createFocusWithin({\n get isDisabled() {\n return !isFocusable();\n },\n onFocusWithinChange: (val: boolean) => setIsFocused(val),\n });\n\n // Compute combined styles\n const combinedStyles = createMemo<JSX.CSSProperties | undefined>(() => {\n if (isFocused()) {\n // If focused, show the element (for skip links, etc.)\n return style();\n } else if (style()) {\n return { ...visuallyHiddenStyles, ...style() };\n } else {\n return visuallyHiddenStyles;\n }\n });\n\n const visuallyHiddenProps = createMemo<JSX.HTMLAttributes<HTMLElement>>(() => ({\n ...mergeProps(\n focusWithinProps as unknown as Record<string, unknown>,\n isFocusable()\n ? {\n onFocusIn: () => setIsFocused(true),\n onFocusOut: (e: FocusEvent) => {\n const currentTarget = e.currentTarget as Element | null;\n const relatedTarget = e.relatedTarget as Element | null;\n if (currentTarget && !currentTarget.contains(relatedTarget)) {\n setIsFocused(false);\n }\n },\n }\n : {},\n { style: combinedStyles() },\n ),\n }));\n\n return {\n visuallyHiddenProps,\n };\n}\n"],"mappings":";;;;;;;;;;;;;;;;AA8BA,MAAa,uBAA0C;CACrD,QAAQ;CACR,MAAM;CACN,aAAa;CACb,QAAQ;CACR,QAAQ;CACR,UAAU;CACV,SAAS;CACT,UAAU;CACV,OAAO;CACP,eAAe;AACjB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAmCA,SAAgB,qBACd,QAAgD,CAAC,GAC7B;CACpB,MAAM,CAAC,WAAW,gBAAgB,aAAa,KAAK;CAEpD,MAAM,oBAAoB,OAAO,KAAK,CAAC,CAAC,eAAe;CACvD,MAAM,cAAc,OAAO,KAAK,CAAC,CAAC;CAGlC,MAAM,EAAE,qBAAqB,kBAAkB;EAC7C,IAAI,aAAa;GACf,OAAO,CAAC,YAAY;EACtB;EACA,sBAAsB,QAAiB,aAAa,GAAG;CACzD,CAAC;CAGD,MAAM,iBAAiB,iBAAgD;EACrE,IAAI,UAAU,GAEZ,OAAO,MAAM;OACR,IAAI,MAAM,GACf,OAAO;GAAE,GAAG;GAAsB,GAAG,MAAM;EAAE;OAE7C,OAAO;CAEX,CAAC;CAqBD,OAAO,EACL,qBApB0B,kBAAmD,EAC7E,GAAG,WACD,kBACA,YAAY,IACR;EACE,iBAAiB,aAAa,IAAI;EAClC,aAAa,MAAkB;GAC7B,MAAM,gBAAgB,EAAE;GACxB,MAAM,gBAAgB,EAAE;GACxB,IAAI,iBAAiB,CAAC,cAAc,SAAS,aAAa,GACxD,aAAa,KAAK;EAEtB;CACF,IACA,CAAC,GACL,EAAE,OAAO,eAAe,EAAE,CAC5B,EACF,EAGoB,EACpB;AACF"}
1
+ {"version":3,"file":"visually-hidden.js","names":["mergeProps"],"sources":["../../src/visually-hidden/createVisuallyHidden.ts"],"sourcesContent":["/**\n * createVisuallyHidden hook for solidaria\n *\n * Provides styles and props to visually hide content while keeping it\n * accessible to screen readers.\n *\n * Port of react-aria's useVisuallyHidden.\n */\n\nimport { type Accessor, type JSX, createMemo, createSignal } from \"solid-js\";\nimport { createFocusWithin } from \"../interactions/createFocusWithin\";\nimport { access, type MaybeAccessor } from \"../utils\";\nimport { mergeProps } from \"../utils/mergeProps\";\n\nexport interface AriaVisuallyHiddenProps {\n /** Inline styles to merge with the visually hidden styles. */\n style?: JSX.CSSProperties;\n /** Whether the element should become visible when focused (e.g., skip links). */\n isFocusable?: boolean;\n}\n\nexport interface VisuallyHiddenAria {\n /** Props to spread on the visually hidden element. */\n visuallyHiddenProps: Accessor<JSX.HTMLAttributes<HTMLElement>>;\n}\n\n/**\n * CSS styles that visually hide an element while keeping it accessible.\n * These styles ensure the element is read by screen readers but not visible on screen.\n */\nexport const visuallyHiddenStyles: JSX.CSSProperties = {\n border: \"0\",\n clip: \"rect(0 0 0 0)\",\n \"clip-path\": \"inset(50%)\",\n height: \"1px\",\n margin: \"-1px\",\n overflow: \"hidden\",\n padding: \"0\",\n position: \"absolute\",\n width: \"1px\",\n \"white-space\": \"nowrap\",\n};\n\n/**\n * Provides props for an element that hides its children visually\n * but keeps content visible to assistive technology.\n *\n * @example\n * ```tsx\n * function SkipLink() {\n * let ref: HTMLAnchorElement | undefined;\n * const { visuallyHiddenProps } = createVisuallyHidden({ isFocusable: true });\n *\n * return (\n * <a\n * ref={ref}\n * href=\"#main-content\"\n * {...visuallyHiddenProps()}\n * >\n * Skip to main content\n * </a>\n * );\n * }\n *\n * // For content that should always be hidden\n * function ScreenReaderOnly(props: ParentProps) {\n * const { visuallyHiddenProps } = createVisuallyHidden();\n *\n * return (\n * <span {...visuallyHiddenProps()}>\n * {props.children}\n * </span>\n * );\n * }\n * ```\n */\nexport function createVisuallyHidden(\n props: MaybeAccessor<AriaVisuallyHiddenProps> = {},\n): VisuallyHiddenAria {\n const [isFocused, setIsFocused] = createSignal(false);\n\n const isFocusable = () => access(props).isFocusable ?? false;\n const style = () => access(props).style;\n\n // Track focus within for focusable visually hidden elements\n const { focusWithinProps } = createFocusWithin({\n get isDisabled() {\n return !isFocusable();\n },\n onFocusWithinChange: (val: boolean) => setIsFocused(val),\n });\n\n // Compute combined styles\n const combinedStyles = createMemo<JSX.CSSProperties | undefined>(() => {\n if (isFocused()) {\n // If focused, show the element (for skip links, etc.)\n return style();\n } else if (style()) {\n return { ...visuallyHiddenStyles, ...style() };\n } else {\n return visuallyHiddenStyles;\n }\n });\n\n const visuallyHiddenProps = createMemo<JSX.HTMLAttributes<HTMLElement>>(() => ({\n ...mergeProps(\n focusWithinProps as unknown as Record<string, unknown>,\n isFocusable()\n ? {\n onFocusIn: () => setIsFocused(true),\n onFocusOut: (e: FocusEvent) => {\n const currentTarget = e.currentTarget as Element | null;\n const relatedTarget = e.relatedTarget as Element | null;\n if (currentTarget && !currentTarget.contains(relatedTarget)) {\n setIsFocused(false);\n }\n },\n }\n : {},\n { style: combinedStyles() },\n ),\n }));\n\n return {\n visuallyHiddenProps,\n };\n}\n"],"mappings":";;;;;;;;;;;;;;;;;AA8BA,MAAa,uBAA0C;CACrD,QAAQ;CACR,MAAM;CACN,aAAa;CACb,QAAQ;CACR,QAAQ;CACR,UAAU;CACV,SAAS;CACT,UAAU;CACV,OAAO;CACP,eAAe;AACjB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAmCA,SAAgB,qBACd,QAAgD,CAAC,GAC7B;CACpB,MAAM,CAAC,WAAW,gBAAgB,aAAa,KAAK;CAEpD,MAAM,oBAAoB,OAAO,KAAK,CAAC,CAAC,eAAe;CACvD,MAAM,cAAc,OAAO,KAAK,CAAC,CAAC;CAGlC,MAAM,EAAE,qBAAqB,kBAAkB;EAC7C,IAAI,aAAa;GACf,OAAO,CAAC,YAAY;EACtB;EACA,sBAAsB,QAAiB,aAAa,GAAG;CACzD,CAAC;CAGD,MAAM,iBAAiB,iBAAgD;EACrE,IAAI,UAAU,GAEZ,OAAO,MAAM;OACR,IAAI,MAAM,GACf,OAAO;GAAE,GAAG;GAAsB,GAAG,MAAM;EAAE;OAE7C,OAAO;CAEX,CAAC;CAqBD,OAAO,EACL,qBApB0B,kBAAmD,EAC7E,GAAGA,aACD,kBACA,YAAY,IACR;EACE,iBAAiB,aAAa,IAAI;EAClC,aAAa,MAAkB;GAC7B,MAAM,gBAAgB,EAAE;GACxB,MAAM,gBAAgB,EAAE;GACxB,IAAI,iBAAiB,CAAC,cAAc,SAAS,aAAa,GACxD,aAAa,KAAK;EAEtB;CACF,IACA,CAAC,GACL,EAAE,OAAO,eAAe,EAAE,CAC5B,EACF,EAGoB,EACpB;AACF"}
@@ -1,4 +1,5 @@
1
- import { i as access, o as mergeProps } from "./env.jsx";
1
+ import { i as mergeProps$1 } from "./env.jsx";
2
+ import { t as access } from "./reactivity.jsx";
2
3
  import { t as createFocusWithin } from "./createFocusWithin.jsx";
3
4
  import { createMemo, createSignal } from "solid-js";
4
5
  //#region src/visually-hidden/createVisuallyHidden.ts
@@ -77,7 +78,7 @@ function createVisuallyHidden(props = {}) {
77
78
  };
78
79
  else return visuallyHiddenStyles;
79
80
  });
80
- return { visuallyHiddenProps: createMemo(() => ({ ...mergeProps(focusWithinProps, isFocusable() ? {
81
+ return { visuallyHiddenProps: createMemo(() => ({ ...mergeProps$1(focusWithinProps, isFocusable() ? {
81
82
  onFocusIn: () => setIsFocused(true),
82
83
  onFocusOut: (e) => {
83
84
  const currentTarget = e.currentTarget;
@@ -1 +1 @@
1
- {"version":3,"file":"visually-hidden.jsx","names":[],"sources":["../../src/visually-hidden/createVisuallyHidden.ts"],"sourcesContent":["/**\n * createVisuallyHidden hook for solidaria\n *\n * Provides styles and props to visually hide content while keeping it\n * accessible to screen readers.\n *\n * Port of react-aria's useVisuallyHidden.\n */\n\nimport { type Accessor, type JSX, createMemo, createSignal } from \"solid-js\";\nimport { createFocusWithin } from \"../interactions/createFocusWithin\";\nimport { access, type MaybeAccessor } from \"../utils\";\nimport { mergeProps } from \"../utils/mergeProps\";\n\nexport interface AriaVisuallyHiddenProps {\n /** Inline styles to merge with the visually hidden styles. */\n style?: JSX.CSSProperties;\n /** Whether the element should become visible when focused (e.g., skip links). */\n isFocusable?: boolean;\n}\n\nexport interface VisuallyHiddenAria {\n /** Props to spread on the visually hidden element. */\n visuallyHiddenProps: Accessor<JSX.HTMLAttributes<HTMLElement>>;\n}\n\n/**\n * CSS styles that visually hide an element while keeping it accessible.\n * These styles ensure the element is read by screen readers but not visible on screen.\n */\nexport const visuallyHiddenStyles: JSX.CSSProperties = {\n border: \"0\",\n clip: \"rect(0 0 0 0)\",\n \"clip-path\": \"inset(50%)\",\n height: \"1px\",\n margin: \"-1px\",\n overflow: \"hidden\",\n padding: \"0\",\n position: \"absolute\",\n width: \"1px\",\n \"white-space\": \"nowrap\",\n};\n\n/**\n * Provides props for an element that hides its children visually\n * but keeps content visible to assistive technology.\n *\n * @example\n * ```tsx\n * function SkipLink() {\n * let ref: HTMLAnchorElement | undefined;\n * const { visuallyHiddenProps } = createVisuallyHidden({ isFocusable: true });\n *\n * return (\n * <a\n * ref={ref}\n * href=\"#main-content\"\n * {...visuallyHiddenProps()}\n * >\n * Skip to main content\n * </a>\n * );\n * }\n *\n * // For content that should always be hidden\n * function ScreenReaderOnly(props: ParentProps) {\n * const { visuallyHiddenProps } = createVisuallyHidden();\n *\n * return (\n * <span {...visuallyHiddenProps()}>\n * {props.children}\n * </span>\n * );\n * }\n * ```\n */\nexport function createVisuallyHidden(\n props: MaybeAccessor<AriaVisuallyHiddenProps> = {},\n): VisuallyHiddenAria {\n const [isFocused, setIsFocused] = createSignal(false);\n\n const isFocusable = () => access(props).isFocusable ?? false;\n const style = () => access(props).style;\n\n // Track focus within for focusable visually hidden elements\n const { focusWithinProps } = createFocusWithin({\n get isDisabled() {\n return !isFocusable();\n },\n onFocusWithinChange: (val: boolean) => setIsFocused(val),\n });\n\n // Compute combined styles\n const combinedStyles = createMemo<JSX.CSSProperties | undefined>(() => {\n if (isFocused()) {\n // If focused, show the element (for skip links, etc.)\n return style();\n } else if (style()) {\n return { ...visuallyHiddenStyles, ...style() };\n } else {\n return visuallyHiddenStyles;\n }\n });\n\n const visuallyHiddenProps = createMemo<JSX.HTMLAttributes<HTMLElement>>(() => ({\n ...mergeProps(\n focusWithinProps as unknown as Record<string, unknown>,\n isFocusable()\n ? {\n onFocusIn: () => setIsFocused(true),\n onFocusOut: (e: FocusEvent) => {\n const currentTarget = e.currentTarget as Element | null;\n const relatedTarget = e.relatedTarget as Element | null;\n if (currentTarget && !currentTarget.contains(relatedTarget)) {\n setIsFocused(false);\n }\n },\n }\n : {},\n { style: combinedStyles() },\n ),\n }));\n\n return {\n visuallyHiddenProps,\n };\n}\n"],"mappings":";;;;;;;;;;;;;;;;AA8BA,MAAa,uBAA0C;CACrD,QAAQ;CACR,MAAM;CACN,aAAa;CACb,QAAQ;CACR,QAAQ;CACR,UAAU;CACV,SAAS;CACT,UAAU;CACV,OAAO;CACP,eAAe;AACjB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAmCA,SAAgB,qBACd,QAAgD,CAAC,GAC7B;CACpB,MAAM,CAAC,WAAW,gBAAgB,aAAa,KAAK;CAEpD,MAAM,oBAAoB,OAAO,KAAK,CAAC,CAAC,eAAe;CACvD,MAAM,cAAc,OAAO,KAAK,CAAC,CAAC;CAGlC,MAAM,EAAE,qBAAqB,kBAAkB;EAC7C,IAAI,aAAa;GACf,OAAO,CAAC,YAAY;EACtB;EACA,sBAAsB,QAAiB,aAAa,GAAG;CACzD,CAAC;CAGD,MAAM,iBAAiB,iBAAgD;EACrE,IAAI,UAAU,GAEZ,OAAO,MAAM;OACR,IAAI,MAAM,GACf,OAAO;GAAE,GAAG;GAAsB,GAAG,MAAM;EAAE;OAE7C,OAAO;CAEX,CAAC;CAqBD,OAAO,EACL,qBApB0B,kBAAmD,EAC7E,GAAG,WACD,kBACA,YAAY,IACR;EACE,iBAAiB,aAAa,IAAI;EAClC,aAAa,MAAkB;GAC7B,MAAM,gBAAgB,EAAE;GACxB,MAAM,gBAAgB,EAAE;GACxB,IAAI,iBAAiB,CAAC,cAAc,SAAS,aAAa,GACxD,aAAa,KAAK;EAEtB;CACF,IACA,CAAC,GACL,EAAE,OAAO,eAAe,EAAE,CAC5B,EACF,EAGoB,EACpB;AACF"}
1
+ {"version":3,"file":"visually-hidden.jsx","names":["mergeProps"],"sources":["../../src/visually-hidden/createVisuallyHidden.ts"],"sourcesContent":["/**\n * createVisuallyHidden hook for solidaria\n *\n * Provides styles and props to visually hide content while keeping it\n * accessible to screen readers.\n *\n * Port of react-aria's useVisuallyHidden.\n */\n\nimport { type Accessor, type JSX, createMemo, createSignal } from \"solid-js\";\nimport { createFocusWithin } from \"../interactions/createFocusWithin\";\nimport { access, type MaybeAccessor } from \"../utils\";\nimport { mergeProps } from \"../utils/mergeProps\";\n\nexport interface AriaVisuallyHiddenProps {\n /** Inline styles to merge with the visually hidden styles. */\n style?: JSX.CSSProperties;\n /** Whether the element should become visible when focused (e.g., skip links). */\n isFocusable?: boolean;\n}\n\nexport interface VisuallyHiddenAria {\n /** Props to spread on the visually hidden element. */\n visuallyHiddenProps: Accessor<JSX.HTMLAttributes<HTMLElement>>;\n}\n\n/**\n * CSS styles that visually hide an element while keeping it accessible.\n * These styles ensure the element is read by screen readers but not visible on screen.\n */\nexport const visuallyHiddenStyles: JSX.CSSProperties = {\n border: \"0\",\n clip: \"rect(0 0 0 0)\",\n \"clip-path\": \"inset(50%)\",\n height: \"1px\",\n margin: \"-1px\",\n overflow: \"hidden\",\n padding: \"0\",\n position: \"absolute\",\n width: \"1px\",\n \"white-space\": \"nowrap\",\n};\n\n/**\n * Provides props for an element that hides its children visually\n * but keeps content visible to assistive technology.\n *\n * @example\n * ```tsx\n * function SkipLink() {\n * let ref: HTMLAnchorElement | undefined;\n * const { visuallyHiddenProps } = createVisuallyHidden({ isFocusable: true });\n *\n * return (\n * <a\n * ref={ref}\n * href=\"#main-content\"\n * {...visuallyHiddenProps()}\n * >\n * Skip to main content\n * </a>\n * );\n * }\n *\n * // For content that should always be hidden\n * function ScreenReaderOnly(props: ParentProps) {\n * const { visuallyHiddenProps } = createVisuallyHidden();\n *\n * return (\n * <span {...visuallyHiddenProps()}>\n * {props.children}\n * </span>\n * );\n * }\n * ```\n */\nexport function createVisuallyHidden(\n props: MaybeAccessor<AriaVisuallyHiddenProps> = {},\n): VisuallyHiddenAria {\n const [isFocused, setIsFocused] = createSignal(false);\n\n const isFocusable = () => access(props).isFocusable ?? false;\n const style = () => access(props).style;\n\n // Track focus within for focusable visually hidden elements\n const { focusWithinProps } = createFocusWithin({\n get isDisabled() {\n return !isFocusable();\n },\n onFocusWithinChange: (val: boolean) => setIsFocused(val),\n });\n\n // Compute combined styles\n const combinedStyles = createMemo<JSX.CSSProperties | undefined>(() => {\n if (isFocused()) {\n // If focused, show the element (for skip links, etc.)\n return style();\n } else if (style()) {\n return { ...visuallyHiddenStyles, ...style() };\n } else {\n return visuallyHiddenStyles;\n }\n });\n\n const visuallyHiddenProps = createMemo<JSX.HTMLAttributes<HTMLElement>>(() => ({\n ...mergeProps(\n focusWithinProps as unknown as Record<string, unknown>,\n isFocusable()\n ? {\n onFocusIn: () => setIsFocused(true),\n onFocusOut: (e: FocusEvent) => {\n const currentTarget = e.currentTarget as Element | null;\n const relatedTarget = e.relatedTarget as Element | null;\n if (currentTarget && !currentTarget.contains(relatedTarget)) {\n setIsFocused(false);\n }\n },\n }\n : {},\n { style: combinedStyles() },\n ),\n }));\n\n return {\n visuallyHiddenProps,\n };\n}\n"],"mappings":";;;;;;;;;;;;;;;;;AA8BA,MAAa,uBAA0C;CACrD,QAAQ;CACR,MAAM;CACN,aAAa;CACb,QAAQ;CACR,QAAQ;CACR,UAAU;CACV,SAAS;CACT,UAAU;CACV,OAAO;CACP,eAAe;AACjB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAmCA,SAAgB,qBACd,QAAgD,CAAC,GAC7B;CACpB,MAAM,CAAC,WAAW,gBAAgB,aAAa,KAAK;CAEpD,MAAM,oBAAoB,OAAO,KAAK,CAAC,CAAC,eAAe;CACvD,MAAM,cAAc,OAAO,KAAK,CAAC,CAAC;CAGlC,MAAM,EAAE,qBAAqB,kBAAkB;EAC7C,IAAI,aAAa;GACf,OAAO,CAAC,YAAY;EACtB;EACA,sBAAsB,QAAiB,aAAa,GAAG;CACzD,CAAC;CAGD,MAAM,iBAAiB,iBAAgD;EACrE,IAAI,UAAU,GAEZ,OAAO,MAAM;OACR,IAAI,MAAM,GACf,OAAO;GAAE,GAAG;GAAsB,GAAG,MAAM;EAAE;OAE7C,OAAO;CAEX,CAAC;CAqBD,OAAO,EACL,qBApB0B,kBAAmD,EAC7E,GAAGA,aACD,kBACA,YAAY,IACR;EACE,iBAAiB,aAAa,IAAI;EAClC,aAAa,MAAkB;GAC7B,MAAM,gBAAgB,EAAE;GACxB,MAAM,gBAAgB,EAAE;GACxB,IAAI,iBAAiB,CAAC,cAAc,SAAS,aAAa,GACxD,aAAa,KAAK;EAEtB;CACF,IACA,CAAC,GACL,EAAE,OAAO,eAAe,EAAE,CAC5B,EACF,EAGoB,EACpB;AACF"}
@@ -1 +1 @@
1
- {"version":3,"file":"createActionGroup.d.ts","sourceRoot":"","sources":["../../src/actiongroup/createActionGroup.ts"],"names":[],"mappings":"AAAA,OAAO,EAAa,KAAK,GAAG,EAAE,KAAK,QAAQ,EAAE,MAAM,UAAU,CAAC;AAW9D,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AAC9C,OAAO,KAAK,EAAE,GAAG,EAAE,SAAS,EAAE,MAAM,iCAAiC,CAAC;AAEtE,MAAM,WAAW,oBAAoB,CAAC,CAAC,GAAG,OAAO;IAC/C,gEAAgE;IAChE,KAAK,CAAC,EAAE,CAAC,EAAE,CAAC;IACZ,kDAAkD;IAClD,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,yBAAyB;IACzB,WAAW,CAAC,EAAE,WAAW,CAAC;IAC1B,wBAAwB;IACxB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,sBAAsB;IACtB,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,uDAAuD;IACvD,QAAQ,CAAC,EAAE,CAAC,GAAG,EAAE,GAAG,KAAK,IAAI,CAAC;CAC/B;AAED,MAAM,WAAW,eAAe;IAC9B,gBAAgB,EAAE,GAAG,CAAC,cAAc,CAAC,WAAW,CAAC,CAAC;CACnD;AAED,MAAM,WAAW,wBAAwB;IACvC,GAAG,EAAE,GAAG,CAAC;CACV;AAED,MAAM,WAAW,mBAAmB;IAClC,WAAW,EAAE,GAAG,CAAC,cAAc,CAAC,WAAW,CAAC,CAAC;CAC9C;AA2BD,wBAAgB,iBAAiB,CAAC,CAAC,EACjC,KAAK,EAAE,oBAAoB,CAAC,CAAC,CAAC,EAC9B,KAAK,EAAE,SAAS,CAAC,CAAC,CAAC,EACnB,IAAI,CAAC,EAAE,QAAQ,CAAC,WAAW,GAAG,IAAI,CAAC,GAClC,eAAe,CAmLjB;AAED,wBAAgB,qBAAqB,CAAC,CAAC,EACrC,KAAK,EAAE,wBAAwB,EAC/B,KAAK,EAAE,SAAS,CAAC,CAAC,CAAC,GAClB,mBAAmB,CA+ErB"}
1
+ {"version":3,"file":"createActionGroup.d.ts","sourceRoot":"","sources":["../../src/actiongroup/createActionGroup.ts"],"names":[],"mappings":"AAAA,OAAO,EAAa,KAAK,GAAG,EAAE,KAAK,QAAQ,EAAE,MAAM,UAAU,CAAC;AAW9D,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AAC9C,OAAO,KAAK,EAAE,GAAG,EAAE,SAAS,EAAE,MAAM,iCAAiC,CAAC;AAEtE,MAAM,WAAW,oBAAoB,CAAC,CAAC,GAAG,OAAO;IAC/C,gEAAgE;IAChE,KAAK,CAAC,EAAE,CAAC,EAAE,CAAC;IACZ,kDAAkD;IAClD,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,yBAAyB;IACzB,WAAW,CAAC,EAAE,WAAW,CAAC;IAC1B,wBAAwB;IACxB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,sBAAsB;IACtB,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,uDAAuD;IACvD,QAAQ,CAAC,EAAE,CAAC,GAAG,EAAE,GAAG,KAAK,IAAI,CAAC;CAC/B;AAED,MAAM,WAAW,eAAe;IAC9B,gBAAgB,EAAE,GAAG,CAAC,cAAc,CAAC,WAAW,CAAC,CAAC;CACnD;AAED,MAAM,WAAW,wBAAwB;IACvC,GAAG,EAAE,GAAG,CAAC;CACV;AAED,MAAM,WAAW,mBAAmB;IAClC,WAAW,EAAE,GAAG,CAAC,cAAc,CAAC,WAAW,CAAC,CAAC;CAC9C;AA2BD,wBAAgB,iBAAiB,CAAC,CAAC,EACjC,KAAK,EAAE,oBAAoB,CAAC,CAAC,CAAC,EAC9B,KAAK,EAAE,SAAS,CAAC,CAAC,CAAC,EACnB,IAAI,CAAC,EAAE,QAAQ,CAAC,WAAW,GAAG,IAAI,CAAC,GAClC,eAAe,CAkIjB;AAED,wBAAgB,qBAAqB,CAAC,CAAC,EACrC,KAAK,EAAE,wBAAwB,EAC/B,KAAK,EAAE,SAAS,CAAC,CAAC,CAAC,GAClB,mBAAmB,CA6CrB"}
@@ -7,7 +7,7 @@
7
7
  * Based on @react-aria/autocomplete useAutocomplete.
8
8
  */
9
9
  import { type Accessor } from "solid-js";
10
- import { type AutocompleteState } from "@proyecto-viviana/solid-stately";
10
+ import { type AutocompleteState, type CollectionNode } from "@proyecto-viviana/solid-stately";
11
11
  export interface CollectionOptions {
12
12
  /** The id of the collection element. */
13
13
  id?: string;
@@ -46,7 +46,7 @@ export interface AutocompleteInputProps {
46
46
  /** Disable browser autocomplete. */
47
47
  autoComplete: "off";
48
48
  }
49
- export interface AriaAutocompleteOptions<_T = unknown> {
49
+ export interface AriaAutocompleteOptions<T = unknown> {
50
50
  /** Ref accessor for the input element. */
51
51
  inputRef: Accessor<HTMLInputElement | undefined>;
52
52
  /** Ref accessor for the collection element. */
@@ -59,8 +59,9 @@ export interface AriaAutocompleteOptions<_T = unknown> {
59
59
  * An optional filter function used to determine if an option should be included.
60
60
  * @param textValue - The text value of the item
61
61
  * @param inputValue - The current input value
62
+ * @param node - The collection node being filtered
62
63
  */
63
- filter?: (textValue: string, inputValue: string) => boolean;
64
+ filter?: (textValue: string, inputValue: string, node: CollectionNode<T>) => boolean;
64
65
  /**
65
66
  * Whether to focus the first item after filtering.
66
67
  * @default false
@@ -72,16 +73,18 @@ export interface AriaAutocompleteOptions<_T = unknown> {
72
73
  */
73
74
  disableVirtualFocus?: boolean;
74
75
  }
75
- export interface AutocompleteAria<_T = unknown> {
76
+ export interface AutocompleteAria<T = unknown> {
76
77
  /** Props for the autocomplete input element. */
77
78
  inputProps: AutocompleteInputProps;
78
79
  /** Props for the collection (ListBox/Menu). */
79
80
  collectionProps: CollectionOptions;
80
81
  /** A filter function that returns if the item should be shown. */
81
- filter?: (textValue: string) => boolean;
82
+ filter?: (nodeTextValue: string, node: CollectionNode<T>) => boolean;
82
83
  }
83
- export declare const AUTOCOMPLETE_FOCUS_EVENT = "autocomplete:focus";
84
- export declare const AUTOCOMPLETE_CLEAR_FOCUS_EVENT = "autocomplete:clearfocus";
84
+ /** @deprecated Use {@link FOCUS_EVENT} from the selection layer. */
85
+ export declare const AUTOCOMPLETE_FOCUS_EVENT = "react-aria-focus";
86
+ /** @deprecated Use {@link CLEAR_FOCUS_EVENT} from the selection layer. */
87
+ export declare const AUTOCOMPLETE_CLEAR_FOCUS_EVENT = "react-aria-clear-focus";
85
88
  /**
86
89
  * Provides the behavior and accessibility implementation for an autocomplete component.
87
90
  * An autocomplete combines a text input with a collection, allowing users to filter
@@ -1 +1 @@
1
- {"version":3,"file":"createAutocomplete.d.ts","sourceRoot":"","sources":["../../src/autocomplete/createAutocomplete.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,EAAyC,KAAK,QAAQ,EAAE,MAAM,UAAU,CAAC;AAEhF,OAAO,EAAE,KAAK,iBAAiB,EAAE,MAAM,iCAAiC,CAAC;AAEzE,MAAM,WAAW,iBAAiB;IAChC,wCAAwC;IACxC,EAAE,CAAC,EAAE,MAAM,CAAC;IACZ,2CAA2C;IAC3C,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,+FAA+F;IAC/F,qBAAqB,EAAE,OAAO,CAAC;IAC/B,qCAAqC;IACrC,iBAAiB,EAAE,OAAO,CAAC;IAC3B,qEAAqE;IACrE,SAAS,CAAC,EAAE,OAAO,GAAG,OAAO,GAAG,MAAM,CAAC;CACxC;AAED,MAAM,WAAW,sBAAsB;IACrC,2BAA2B;IAC3B,KAAK,EAAE,QAAQ,CAAC,MAAM,CAAC,CAAC;IACxB,uCAAuC;IACvC,QAAQ,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;IAClC,8BAA8B;IAC9B,SAAS,EAAE,CAAC,CAAC,EAAE,aAAa,KAAK,IAAI,CAAC;IACtC,gCAAgC;IAChC,OAAO,EAAE,CAAC,CAAC,EAAE,UAAU,KAAK,IAAI,CAAC;IACjC,+BAA+B;IAC/B,MAAM,EAAE,CAAC,CAAC,EAAE,UAAU,KAAK,IAAI,CAAC;IAChC,sEAAsE;IACtE,uBAAuB,EAAE,QAAQ,CAAC,MAAM,GAAG,SAAS,CAAC,CAAC;IACtD,2CAA2C;IAC3C,eAAe,EAAE,MAAM,CAAC;IACxB,yBAAyB;IACzB,mBAAmB,EAAE,MAAM,GAAG,MAAM,GAAG,QAAQ,GAAG,MAAM,CAAC;IACzD,2CAA2C;IAC3C,YAAY,EAAE,IAAI,CAAC;IACnB,2BAA2B;IAC3B,WAAW,EAAE,KAAK,CAAC;IACnB,2BAA2B;IAC3B,UAAU,EAAE,OAAO,CAAC;IACpB,oCAAoC;IACpC,YAAY,EAAE,KAAK,CAAC;CACrB;AAED,MAAM,WAAW,uBAAuB,CAAC,EAAE,GAAG,OAAO;IACnD,0CAA0C;IAC1C,QAAQ,EAAE,QAAQ,CAAC,gBAAgB,GAAG,SAAS,CAAC,CAAC;IACjD,+CAA+C;IAC/C,aAAa,EAAE,QAAQ,CAAC,WAAW,GAAG,SAAS,CAAC,CAAC;IACjD,kEAAkE;IAClE,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,sEAAsE;IACtE,mBAAmB,CAAC,EAAE,MAAM,CAAC;IAC7B;;;;OAIG;IACH,MAAM,CAAC,EAAE,CAAC,SAAS,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,KAAK,OAAO,CAAC;IAC5D;;;OAGG;IACH,qBAAqB,CAAC,EAAE,OAAO,CAAC;IAChC;;;OAGG;IACH,mBAAmB,CAAC,EAAE,OAAO,CAAC;CAC/B;AAED,MAAM,WAAW,gBAAgB,CAAC,EAAE,GAAG,OAAO;IAC5C,gDAAgD;IAChD,UAAU,EAAE,sBAAsB,CAAC;IACnC,+CAA+C;IAC/C,eAAe,EAAE,iBAAiB,CAAC;IACnC,kEAAkE;IAClE,MAAM,CAAC,EAAE,CAAC,SAAS,EAAE,MAAM,KAAK,OAAO,CAAC;CACzC;AAmBD,eAAO,MAAM,wBAAwB,uBAAuB,CAAC;AAC7D,eAAO,MAAM,8BAA8B,4BAA4B,CAAC;AAExE;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4BG;AACH,wBAAgB,kBAAkB,CAAC,CAAC,GAAG,OAAO,EAC5C,KAAK,EAAE,uBAAuB,CAAC,CAAC,CAAC,EACjC,KAAK,EAAE,iBAAiB,GACvB,gBAAgB,CAAC,CAAC,CAAC,CA2PrB"}
1
+ {"version":3,"file":"createAutocomplete.d.ts","sourceRoot":"","sources":["../../src/autocomplete/createAutocomplete.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"createBreadcrumbs.d.ts","sourceRoot":"","sources":["../../src/breadcrumbs/createBreadcrumbs.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAc,KAAK,aAAa,EAAE,KAAK,QAAQ,EAAE,MAAM,SAAS,CAAC;AAGxE,OAAO,EAAE,KAAK,aAAa,EAAU,MAAM,qBAAqB,CAAC;AAEjE,MAAM,WAAW,oBAAoB;IACnC,uDAAuD;IACvD,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,wEAAwE;IACxE,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,2EAA2E;IAC3E,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAC5B,gFAAgF;IAChF,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,4CAA4C;IAC5C,UAAU,CAAC,EAAE,OAAO,CAAC;CACtB;AAED,MAAM,WAAW,eAAe;IAC9B,6CAA6C;IAC7C,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CACnC;AAED,MAAM,WAAW,uBAAwB,SAAQ,IAAI,CAAC,aAAa,EAAE,cAAc,CAAC;IAClF,0CAA0C;IAC1C,EAAE,CAAC,EAAE,MAAM,CAAC;IACZ,qEAAqE;IACrE,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,qEAAqE;IACrE,cAAc,CAAC,EAAE,MAAM,GAAG,MAAM,GAAG,UAAU,GAAG,MAAM,GAAG,MAAM,GAAG,OAAO,CAAC;IAC1E,0CAA0C;IAC1C,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AAED,MAAM,WAAW,kBAAmB,SAAQ,QAAQ;IAClD,6CAA6C;IAC7C,SAAS,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CACpC;AAED;;GAEG;AACH,wBAAgB,iBAAiB,CAC/B,KAAK,GAAE,aAAa,CAAC,oBAAoB,CAAM,GAC9C,eAAe,CAoBjB;AAED;;GAEG;AACH,wBAAgB,oBAAoB,CAClC,KAAK,GAAE,aAAa,CAAC,uBAAuB,CAAM,GACjD,kBAAkB,CAuGpB"}
1
+ {"version":3,"file":"createBreadcrumbs.d.ts","sourceRoot":"","sources":["../../src/breadcrumbs/createBreadcrumbs.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAc,KAAK,aAAa,EAAE,KAAK,QAAQ,EAAE,MAAM,SAAS,CAAC;AAGxE,OAAO,EAAE,KAAK,aAAa,EAAU,MAAM,qBAAqB,CAAC;AAEjE,MAAM,WAAW,oBAAoB;IACnC,uDAAuD;IACvD,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,wEAAwE;IACxE,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,2EAA2E;IAC3E,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAC5B,gFAAgF;IAChF,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,4CAA4C;IAC5C,UAAU,CAAC,EAAE,OAAO,CAAC;CACtB;AAED,MAAM,WAAW,eAAe;IAC9B,6CAA6C;IAC7C,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CACnC;AAED,MAAM,WAAW,uBAAwB,SAAQ,IAAI,CAAC,aAAa,EAAE,cAAc,CAAC;IAClF,0CAA0C;IAC1C,EAAE,CAAC,EAAE,MAAM,CAAC;IACZ,qEAAqE;IACrE,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,qEAAqE;IACrE,cAAc,CAAC,EAAE,MAAM,GAAG,MAAM,GAAG,UAAU,GAAG,MAAM,GAAG,MAAM,GAAG,OAAO,CAAC;IAC1E,0CAA0C;IAC1C,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AAED,MAAM,WAAW,kBAAmB,SAAQ,QAAQ;IAClD,6CAA6C;IAC7C,SAAS,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CACpC;AAED;;GAEG;AACH,wBAAgB,iBAAiB,CAC/B,KAAK,GAAE,aAAa,CAAC,oBAAoB,CAAM,GAC9C,eAAe,CAoBjB;AAED;;GAEG;AACH,wBAAgB,oBAAoB,CAClC,KAAK,GAAE,aAAa,CAAC,uBAAuB,CAAM,GACjD,kBAAkB,CA+GpB"}
@@ -1 +1 @@
1
- {"version":3,"file":"createToggleButtonGroup.d.ts","sourceRoot":"","sources":["../../src/button/createToggleButtonGroup.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,UAAU,CAAC;AACpC,OAAO,KAAK,EAAE,GAAG,EAAE,gBAAgB,EAAE,gBAAgB,EAAE,MAAM,iCAAiC,CAAC;AAC/F,OAAO,EAAiB,KAAK,WAAW,EAAE,MAAM,YAAY,CAAC;AAE7D,OAAO,EAEL,KAAK,qBAAqB,EAC1B,KAAK,gBAAgB,EACtB,MAAM,sBAAsB,CAAC;AAE9B,MAAM,WAAW,0BAA2B,SAAQ,gBAAgB;IAClE;;;OAGG;IACH,WAAW,CAAC,EAAE,WAAW,CAAC;IAC1B,wBAAwB;IACxB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,sBAAsB;IACtB,iBAAiB,CAAC,EAAE,MAAM,CAAC;CAC5B;AAED,MAAM,WAAW,qBAAqB;IACpC,qCAAqC;IACrC,UAAU,EAAE,GAAG,CAAC,cAAc,CAAC,WAAW,CAAC,CAAC;CAC7C;AAED,MAAM,WAAW,8BAA+B,SAAQ,IAAI,CAAC,qBAAqB,EAAE,UAAU,CAAC;IAC7F,6CAA6C;IAC7C,EAAE,EAAE,GAAG,CAAC;CACT;AASD;;GAEG;AACH,wBAAgB,uBAAuB,CACrC,KAAK,EAAE,0BAA0B,EACjC,KAAK,EAAE,gBAAgB,GACtB,qBAAqB,CAuBvB;AAED;;GAEG;AACH,wBAAgB,2BAA2B,CACzC,KAAK,EAAE,8BAA8B,EACrC,KAAK,EAAE,gBAAgB,GACtB,gBAAgB,CA4ClB"}
1
+ {"version":3,"file":"createToggleButtonGroup.d.ts","sourceRoot":"","sources":["../../src/button/createToggleButtonGroup.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,UAAU,CAAC;AAEpC,OAAO,KAAK,EAAE,GAAG,EAAE,gBAAgB,EAAE,gBAAgB,EAAE,MAAM,iCAAiC,CAAC;AAC/F,OAAO,EAAiB,KAAK,WAAW,EAAE,MAAM,YAAY,CAAC;AAE7D,OAAO,EAEL,KAAK,qBAAqB,EAC1B,KAAK,gBAAgB,EACtB,MAAM,sBAAsB,CAAC;AAE9B,MAAM,WAAW,0BAA2B,SAAQ,gBAAgB;IAClE;;;OAGG;IACH,WAAW,CAAC,EAAE,WAAW,CAAC;IAC1B,wBAAwB;IACxB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,sBAAsB;IACtB,iBAAiB,CAAC,EAAE,MAAM,CAAC;CAC5B;AAED,MAAM,WAAW,qBAAqB;IACpC,qCAAqC;IACrC,UAAU,EAAE,GAAG,CAAC,cAAc,CAAC,WAAW,CAAC,CAAC;CAC7C;AAED,MAAM,WAAW,8BAA+B,SAAQ,IAAI,CAAC,qBAAqB,EAAE,UAAU,CAAC;IAC7F,6CAA6C;IAC7C,EAAE,EAAE,GAAG,CAAC;CACT;AASD;;GAEG;AACH,wBAAgB,uBAAuB,CACrC,KAAK,EAAE,0BAA0B,EACjC,KAAK,EAAE,gBAAgB,GACtB,qBAAqB,CAuBvB;AAED;;GAEG;AACH,wBAAgB,2BAA2B,CACzC,KAAK,EAAE,8BAA8B,EACrC,KAAK,EAAE,gBAAgB,GACtB,gBAAgB,CAgDlB"}
@@ -1 +1 @@
1
- {"version":3,"file":"createCalendar.d.ts","sourceRoot":"","sources":["../../src/calendar/createCalendar.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAIH,OAAO,EAAU,KAAK,aAAa,EAAE,MAAM,qBAAqB,CAAC;AAEjE,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,iCAAiC,CAAC;AAGrE,MAAM,WAAW,iBAAiB;IAChC,8BAA8B;IAC9B,EAAE,CAAC,EAAE,MAAM,CAAC;IACZ,wCAAwC;IACxC,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,yCAAyC;IACzC,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,4CAA4C;IAC5C,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,qDAAqD;IACrD,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,wDAAwD;IACxD,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAC5B,gFAAgF;IAChF,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,gDAAgD;IAChD,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,qDAAqD;IACrD,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,gDAAgD;IAChD,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,wCAAwC;IACxC,aAAa,CAAC,EAAE,MAAM,CAAC;CACxB;AAED,MAAM,WAAW,YAAY;IAC3B,gDAAgD;IAChD,aAAa,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACvC,qCAAqC;IACrC,eAAe,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACzC,iCAAiC;IACjC,eAAe,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACzC,2CAA2C;IAC3C,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACpC,mDAAmD;IACnD,iBAAiB,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAC3C,yCAAyC;IACzC,KAAK,EAAE,MAAM,CAAC;CACf;AAED;;GAEG;AACH,wBAAgB,cAAc,CAAC,CAAC,SAAS,aAAa,EACpD,KAAK,EAAE,aAAa,CAAC,iBAAiB,CAAC,EACvC,KAAK,EAAE,CAAC,GACP,YAAY,CAgHd"}
1
+ {"version":3,"file":"createCalendar.d.ts","sourceRoot":"","sources":["../../src/calendar/createCalendar.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAIH,OAAO,EAAU,KAAK,aAAa,EAAE,MAAM,qBAAqB,CAAC;AAEjE,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,iCAAiC,CAAC;AAIrE,MAAM,WAAW,iBAAiB;IAChC,8BAA8B;IAC9B,EAAE,CAAC,EAAE,MAAM,CAAC;IACZ,wCAAwC;IACxC,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,yCAAyC;IACzC,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,4CAA4C;IAC5C,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,qDAAqD;IACrD,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,wDAAwD;IACxD,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAC5B,gFAAgF;IAChF,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,gDAAgD;IAChD,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,qDAAqD;IACrD,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,gDAAgD;IAChD,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,wCAAwC;IACxC,aAAa,CAAC,EAAE,MAAM,CAAC;CACxB;AAED,MAAM,WAAW,YAAY;IAC3B,gDAAgD;IAChD,aAAa,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACvC,qCAAqC;IACrC,eAAe,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACzC,iCAAiC;IACjC,eAAe,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACzC,2CAA2C;IAC3C,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACpC,mDAAmD;IACnD,iBAAiB,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAC3C,yCAAyC;IACzC,KAAK,EAAE,MAAM,CAAC;CACf;AAED;;GAEG;AACH,wBAAgB,cAAc,CAAC,CAAC,SAAS,aAAa,EACpD,KAAK,EAAE,aAAa,CAAC,iBAAiB,CAAC,EACvC,KAAK,EAAE,CAAC,GACP,YAAY,CA8Gd"}
@@ -1 +1 @@
1
- {"version":3,"file":"createCalendarCell.d.ts","sourceRoot":"","sources":["../../src/calendar/createCalendarCell.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAGH,OAAO,EAAU,KAAK,aAAa,EAAE,MAAM,qBAAqB,CAAC;AAOjE,OAAO,KAAK,EAAE,aAAa,EAAgB,SAAS,EAAE,MAAM,iCAAiC,CAAC;AAK9F,MAAM,WAAW,qBAAqB;IACpC,wCAAwC;IACxC,IAAI,EAAE,SAAS,CAAC;IAChB,oCAAoC;IACpC,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,0DAA0D;IAC1D,cAAc,CAAC,EAAE,OAAO,CAAC;CAC1B;AAED,MAAM,WAAW,gBAAgB;IAC/B,mDAAmD;IACnD,SAAS,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACnC,4CAA4C;IAC5C,WAAW,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACrC,oCAAoC;IACpC,UAAU,EAAE,OAAO,CAAC;IACpB,mCAAmC;IACnC,SAAS,EAAE,OAAO,CAAC;IACnB,6DAA6D;IAC7D,cAAc,EAAE,OAAO,CAAC;IACxB,oCAAoC;IACpC,UAAU,EAAE,OAAO,CAAC;IACpB,2DAA2D;IAC3D,aAAa,EAAE,OAAO,CAAC;IACvB,wDAAwD;IACxD,SAAS,EAAE,OAAO,CAAC;IACnB,qDAAqD;IACrD,cAAc,EAAE,OAAO,CAAC;IACxB,yCAAyC;IACzC,OAAO,EAAE,OAAO,CAAC;IACjB,mCAAmC;IACnC,SAAS,EAAE,OAAO,CAAC;IACnB,iCAAiC;IACjC,aAAa,EAAE,MAAM,CAAC;CACvB;AAED;;GAEG;AACH,wBAAgB,kBAAkB,CAAC,CAAC,SAAS,aAAa,EACxD,KAAK,EAAE,aAAa,CAAC,qBAAqB,CAAC,EAC3C,KAAK,EAAE,CAAC,EACR,GAAG,CAAC,EAAE,MAAM,WAAW,GAAG,IAAI,GAC7B,gBAAgB,CAkMlB"}
1
+ {"version":3,"file":"createCalendarCell.d.ts","sourceRoot":"","sources":["../../src/calendar/createCalendarCell.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAGH,OAAO,EAAU,KAAK,aAAa,EAAE,MAAM,qBAAqB,CAAC;AAOjE,OAAO,KAAK,EAAE,aAAa,EAAgB,SAAS,EAAE,MAAM,iCAAiC,CAAC;AAU9F,MAAM,WAAW,qBAAqB;IACpC,wCAAwC;IACxC,IAAI,EAAE,SAAS,CAAC;IAChB,oCAAoC;IACpC,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,0DAA0D;IAC1D,cAAc,CAAC,EAAE,OAAO,CAAC;CAC1B;AAED,MAAM,WAAW,gBAAgB;IAC/B,mDAAmD;IACnD,SAAS,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACnC,4CAA4C;IAC5C,WAAW,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACrC,oCAAoC;IACpC,UAAU,EAAE,OAAO,CAAC;IACpB,mCAAmC;IACnC,SAAS,EAAE,OAAO,CAAC;IACnB,6DAA6D;IAC7D,cAAc,EAAE,OAAO,CAAC;IACxB,oCAAoC;IACpC,UAAU,EAAE,OAAO,CAAC;IACpB,2DAA2D;IAC3D,aAAa,EAAE,OAAO,CAAC;IACvB,wDAAwD;IACxD,SAAS,EAAE,OAAO,CAAC;IACnB,qDAAqD;IACrD,cAAc,EAAE,OAAO,CAAC;IACxB,yCAAyC;IACzC,OAAO,EAAE,OAAO,CAAC;IACjB,mCAAmC;IACnC,SAAS,EAAE,OAAO,CAAC;IACnB,iCAAiC;IACjC,aAAa,EAAE,MAAM,CAAC;CACvB;AAED;;GAEG;AACH,wBAAgB,kBAAkB,CAAC,CAAC,SAAS,aAAa,EACxD,KAAK,EAAE,aAAa,CAAC,qBAAqB,CAAC,EAC3C,KAAK,EAAE,CAAC,EACR,GAAG,CAAC,EAAE,MAAM,WAAW,GAAG,IAAI,GAC7B,gBAAgB,CA2MlB"}
@@ -1 +1 @@
1
- {"version":3,"file":"createCalendarGrid.d.ts","sourceRoot":"","sources":["../../src/calendar/createCalendarGrid.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAIH,OAAO,EAAU,KAAK,aAAa,EAAE,MAAM,qBAAqB,CAAC;AACjE,OAAO,KAAK,EAAE,aAAa,EAAE,YAAY,EAAE,MAAM,iCAAiC,CAAC;AAGnF,MAAM,WAAW,qBAAqB;IACpC,uEAAuE;IACvE,SAAS,CAAC,EAAE,YAAY,CAAC;IACzB,mEAAmE;IACnE,OAAO,CAAC,EAAE,YAAY,CAAC;IACvB,sCAAsC;IACtC,YAAY,CAAC,EAAE,QAAQ,GAAG,OAAO,GAAG,MAAM,CAAC;CAC5C;AAED,MAAM,WAAW,gBAAgB;IAC/B,uDAAuD;IACvD,SAAS,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACnC,gCAAgC;IAChC,WAAW,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACrC,sCAAsC;IACtC,QAAQ,EAAE,MAAM,EAAE,CAAC;CACpB;AAED;;GAEG;AACH,wBAAgB,kBAAkB,CAAC,CAAC,SAAS,aAAa,EACxD,KAAK,EAAE,aAAa,CAAC,qBAAqB,CAAC,EAC3C,KAAK,EAAE,CAAC,EACR,GAAG,CAAC,EAAE,MAAM,WAAW,GAAG,IAAI,GAC7B,gBAAgB,CAsKlB"}
1
+ {"version":3,"file":"createCalendarGrid.d.ts","sourceRoot":"","sources":["../../src/calendar/createCalendarGrid.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAIH,OAAO,EAAU,KAAK,aAAa,EAAE,MAAM,qBAAqB,CAAC;AACjE,OAAO,KAAK,EAAE,aAAa,EAAE,YAAY,EAAE,MAAM,iCAAiC,CAAC;AAGnF,MAAM,WAAW,qBAAqB;IACpC,uEAAuE;IACvE,SAAS,CAAC,EAAE,YAAY,CAAC;IACzB,mEAAmE;IACnE,OAAO,CAAC,EAAE,YAAY,CAAC;IACvB,sCAAsC;IACtC,YAAY,CAAC,EAAE,QAAQ,GAAG,OAAO,GAAG,MAAM,CAAC;CAC5C;AAED,MAAM,WAAW,gBAAgB;IAC/B,uDAAuD;IACvD,SAAS,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACnC,gCAAgC;IAChC,WAAW,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACrC,sCAAsC;IACtC,QAAQ,EAAE,MAAM,EAAE,CAAC;CACpB;AAED;;GAEG;AACH,wBAAgB,kBAAkB,CAAC,CAAC,SAAS,aAAa,EACxD,KAAK,EAAE,aAAa,CAAC,qBAAqB,CAAC,EAC3C,KAAK,EAAE,CAAC,EACR,GAAG,CAAC,EAAE,MAAM,WAAW,GAAG,IAAI,GAC7B,gBAAgB,CAuKlB"}
@@ -1 +1 @@
1
- {"version":3,"file":"createRangeCalendar.d.ts","sourceRoot":"","sources":["../../src/calendar/createRangeCalendar.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAIH,OAAO,EAAU,KAAK,aAAa,EAAE,MAAM,qBAAqB,CAAC;AAEjE,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,iCAAiC,CAAC;AAQ1E,MAAM,WAAW,sBAAsB;IACrC,8BAA8B;IAC9B,EAAE,CAAC,EAAE,MAAM,CAAC;IACZ,wCAAwC;IACxC,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,yCAAyC;IACzC,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,4CAA4C;IAC5C,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,qDAAqD;IACrD,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,wDAAwD;IACxD,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAC5B,gFAAgF;IAChF,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,gDAAgD;IAChD,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,qDAAqD;IACrD,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,gDAAgD;IAChD,cAAc,CAAC,EAAE,MAAM,CAAC;CACzB;AAED,MAAM,WAAW,iBAAiB;IAChC,gDAAgD;IAChD,aAAa,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACvC,qCAAqC;IACrC,eAAe,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACzC,iCAAiC;IACjC,eAAe,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACzC,2CAA2C;IAC3C,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACpC,mDAAmD;IACnD,iBAAiB,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAC3C,yCAAyC;IACzC,KAAK,EAAE,MAAM,CAAC;CACf;AAED;;GAEG;AACH,wBAAgB,mBAAmB,CAAC,CAAC,SAAS,kBAAkB,EAC9D,KAAK,EAAE,aAAa,CAAC,sBAAsB,CAAC,EAC5C,KAAK,EAAE,CAAC,GACP,iBAAiB,CA6GnB"}
1
+ {"version":3,"file":"createRangeCalendar.d.ts","sourceRoot":"","sources":["../../src/calendar/createRangeCalendar.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAIH,OAAO,EAAU,KAAK,aAAa,EAAE,MAAM,qBAAqB,CAAC;AAEjE,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,iCAAiC,CAAC;AAQ1E,MAAM,WAAW,sBAAsB;IACrC,8BAA8B;IAC9B,EAAE,CAAC,EAAE,MAAM,CAAC;IACZ,wCAAwC;IACxC,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,yCAAyC;IACzC,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,4CAA4C;IAC5C,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,qDAAqD;IACrD,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,wDAAwD;IACxD,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAC5B,gFAAgF;IAChF,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,gDAAgD;IAChD,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,qDAAqD;IACrD,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,gDAAgD;IAChD,cAAc,CAAC,EAAE,MAAM,CAAC;CACzB;AAED,MAAM,WAAW,iBAAiB;IAChC,gDAAgD;IAChD,aAAa,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACvC,qCAAqC;IACrC,eAAe,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACzC,iCAAiC;IACjC,eAAe,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACzC,2CAA2C;IAC3C,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACpC,mDAAmD;IACnD,iBAAiB,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAC3C,yCAAyC;IACzC,KAAK,EAAE,MAAM,CAAC;CACf;AAED;;GAEG;AACH,wBAAgB,mBAAmB,CAAC,CAAC,SAAS,kBAAkB,EAC9D,KAAK,EAAE,aAAa,CAAC,sBAAsB,CAAC,EAC5C,KAAK,EAAE,CAAC,GACP,iBAAiB,CAuHnB"}
@@ -1 +1 @@
1
- {"version":3,"file":"createRangeCalendarCell.d.ts","sourceRoot":"","sources":["../../src/calendar/createRangeCalendarCell.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAGH,OAAO,EAAU,KAAK,aAAa,EAAE,MAAM,qBAAqB,CAAC;AAGjE,OAAO,KAAK,EAAE,kBAAkB,EAAgB,SAAS,EAAE,MAAM,iCAAiC,CAAC;AAKnG,MAAM,WAAW,0BAA0B;IACzC,wCAAwC;IACxC,IAAI,EAAE,SAAS,CAAC;IAChB,oCAAoC;IACpC,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,0DAA0D;IAC1D,cAAc,CAAC,EAAE,OAAO,CAAC;CAC1B;AAED,MAAM,WAAW,qBAAqB;IACpC,mDAAmD;IACnD,SAAS,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACnC,4CAA4C;IAC5C,WAAW,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACrC,qDAAqD;IACrD,UAAU,EAAE,OAAO,CAAC;IACpB,sDAAsD;IACtD,gBAAgB,EAAE,OAAO,CAAC;IAC1B,oDAAoD;IACpD,cAAc,EAAE,OAAO,CAAC;IACxB,mCAAmC;IACnC,SAAS,EAAE,OAAO,CAAC;IACnB,oCAAoC;IACpC,UAAU,EAAE,OAAO,CAAC;IACpB,2DAA2D;IAC3D,aAAa,EAAE,OAAO,CAAC;IACvB,wDAAwD;IACxD,SAAS,EAAE,OAAO,CAAC;IACnB,qDAAqD;IACrD,cAAc,EAAE,OAAO,CAAC;IACxB,yCAAyC;IACzC,OAAO,EAAE,OAAO,CAAC;IACjB,mCAAmC;IACnC,SAAS,EAAE,OAAO,CAAC;IACnB,iCAAiC;IACjC,aAAa,EAAE,MAAM,CAAC;CACvB;AAED;;GAEG;AACH,wBAAgB,uBAAuB,CAAC,CAAC,SAAS,kBAAkB,EAClE,KAAK,EAAE,aAAa,CAAC,0BAA0B,CAAC,EAChD,KAAK,EAAE,CAAC,EACR,GAAG,CAAC,EAAE,MAAM,WAAW,GAAG,IAAI,GAC7B,qBAAqB,CA0MvB"}
1
+ {"version":3,"file":"createRangeCalendarCell.d.ts","sourceRoot":"","sources":["../../src/calendar/createRangeCalendarCell.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAGH,OAAO,EAAU,KAAK,aAAa,EAAE,MAAM,qBAAqB,CAAC;AAGjE,OAAO,KAAK,EAAE,kBAAkB,EAAgB,SAAS,EAAE,MAAM,iCAAiC,CAAC;AAUnG,MAAM,WAAW,0BAA0B;IACzC,wCAAwC;IACxC,IAAI,EAAE,SAAS,CAAC;IAChB,oCAAoC;IACpC,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,0DAA0D;IAC1D,cAAc,CAAC,EAAE,OAAO,CAAC;CAC1B;AAED,MAAM,WAAW,qBAAqB;IACpC,mDAAmD;IACnD,SAAS,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACnC,4CAA4C;IAC5C,WAAW,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACrC,qDAAqD;IACrD,UAAU,EAAE,OAAO,CAAC;IACpB,sDAAsD;IACtD,gBAAgB,EAAE,OAAO,CAAC;IAC1B,oDAAoD;IACpD,cAAc,EAAE,OAAO,CAAC;IACxB,mCAAmC;IACnC,SAAS,EAAE,OAAO,CAAC;IACnB,oCAAoC;IACpC,UAAU,EAAE,OAAO,CAAC;IACpB,2DAA2D;IAC3D,aAAa,EAAE,OAAO,CAAC;IACvB,wDAAwD;IACxD,SAAS,EAAE,OAAO,CAAC;IACnB,qDAAqD;IACrD,cAAc,EAAE,OAAO,CAAC;IACxB,yCAAyC;IACzC,OAAO,EAAE,OAAO,CAAC;IACjB,mCAAmC;IACnC,SAAS,EAAE,OAAO,CAAC;IACnB,iCAAiC;IACjC,aAAa,EAAE,MAAM,CAAC;CACvB;AAED;;GAEG;AACH,wBAAgB,uBAAuB,CAAC,CAAC,SAAS,kBAAkB,EAClE,KAAK,EAAE,aAAa,CAAC,0BAA0B,CAAC,EAChD,KAAK,EAAE,CAAC,EACR,GAAG,CAAC,EAAE,MAAM,WAAW,GAAG,IAAI,GAC7B,qBAAqB,CAmNvB"}
@@ -1,5 +1,5 @@
1
1
  type CalendarPromptKey = "startRangeSelectionPrompt" | "finishRangeSelectionPrompt";
2
- type CalendarLabelKey = "dateRange" | "dateSelected" | "maximumDate" | "minimumDate" | "selectedDateDescription" | "selectedRangeDescription" | "todayDate" | "todayDateSelected";
2
+ type CalendarLabelKey = "dateRange" | "dateSelected" | "maximumDate" | "minimumDate" | "next" | "previous" | "selectedDateDescription" | "selectedRangeDescription" | "todayDate" | "todayDateSelected";
3
3
  type CalendarLabelVariables = {
4
4
  date?: string;
5
5
  dateRange?: string;
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/calendar/intl/index.ts"],"names":[],"mappings":"AAMA,KAAK,iBAAiB,GAAG,2BAA2B,GAAG,4BAA4B,CAAC;AACpF,KAAK,gBAAgB,GACjB,WAAW,GACX,cAAc,GACd,aAAa,GACb,aAAa,GACb,yBAAyB,GACzB,0BAA0B,GAC1B,WAAW,GACX,mBAAmB,CAAC;AACxB,KAAK,sBAAsB,GAAG;IAC5B,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB,CAAC;AAkLF,wBAAgB,oBAAoB,CAAC,MAAM,EAAE,MAAM,EAAE,GAAG,EAAE,iBAAiB,GAAG,MAAM,CAEnF;AAED,wBAAgB,mBAAmB,CACjC,MAAM,EAAE,MAAM,EACd,GAAG,EAAE,gBAAgB,EACrB,SAAS,CAAC,EAAE,sBAAsB,GACjC,MAAM,CAER"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/calendar/intl/index.ts"],"names":[],"mappings":"AAMA,KAAK,iBAAiB,GAAG,2BAA2B,GAAG,4BAA4B,CAAC;AACpF,KAAK,gBAAgB,GACjB,WAAW,GACX,cAAc,GACd,aAAa,GACb,aAAa,GACb,MAAM,GACN,UAAU,GACV,yBAAyB,GACzB,0BAA0B,GAC1B,WAAW,GACX,mBAAmB,CAAC;AACxB,KAAK,sBAAsB,GAAG;IAC5B,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB,CAAC;AAwLF,wBAAgB,oBAAoB,CAAC,MAAM,EAAE,MAAM,EAAE,GAAG,EAAE,iBAAiB,GAAG,MAAM,CAEnF;AAED,wBAAgB,mBAAmB,CACjC,MAAM,EAAE,MAAM,EACd,GAAG,EAAE,gBAAgB,EACrB,SAAS,CAAC,EAAE,sBAAsB,GACjC,MAAM,CAER"}
@@ -1,4 +1,4 @@
1
- import { i as access } from "../_chunk/env.js";
1
+ import { t as access } from "../_chunk/reactivity.js";
2
2
  import { createContext, createMemo, useContext } from "solid-js";
3
3
  import { ListCollection } from "@proyecto-viviana/solid-stately";
4
4
  //#region src/collections/index.ts
@@ -1,4 +1,4 @@
1
- import { i as access } from "../_chunk/env.jsx";
1
+ import { t as access } from "../_chunk/reactivity.jsx";
2
2
  import { createContext, createMemo, useContext } from "solid-js";
3
3
  import { ListCollection } from "@proyecto-viviana/solid-stately";
4
4
  //#region src/collections/index.ts
@@ -1 +1 @@
1
- {"version":3,"file":"createColorArea.d.ts","sourceRoot":"","sources":["../../src/color/createColorArea.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAA4B,KAAK,QAAQ,EAAE,MAAM,UAAU,CAAC;AACnE,OAAO,KAAK,EAAS,cAAc,EAAgB,MAAM,iCAAiC,CAAC;AAI3F,OAAO,KAAK,EAAE,oBAAoB,EAAE,aAAa,EAAE,MAAM,SAAS,CAAC;AAEnE;;GAEG;AACH,wBAAgB,eAAe,CAC7B,KAAK,EAAE,QAAQ,CAAC,oBAAoB,CAAC,EACrC,KAAK,EAAE,QAAQ,CAAC,cAAc,CAAC,EAC/B,OAAO,EAAE,QAAQ,CAAC,cAAc,GAAG,IAAI,CAAC,GACvC,aAAa,CAqbf"}
1
+ {"version":3,"file":"createColorArea.d.ts","sourceRoot":"","sources":["../../src/color/createColorArea.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAA4B,KAAK,QAAQ,EAAE,MAAM,UAAU,CAAC;AACnE,OAAO,KAAK,EAAS,cAAc,EAAgB,MAAM,iCAAiC,CAAC;AAK3F,OAAO,KAAK,EAAE,oBAAoB,EAAE,aAAa,EAAE,MAAM,SAAS,CAAC;AAEnE;;GAEG;AACH,wBAAgB,eAAe,CAC7B,KAAK,EAAE,QAAQ,CAAC,oBAAoB,CAAC,EACrC,KAAK,EAAE,QAAQ,CAAC,cAAc,CAAC,EAC/B,OAAO,EAAE,QAAQ,CAAC,cAAc,GAAG,IAAI,CAAC,GACvC,aAAa,CA2bf"}
@@ -1 +1 @@
1
- {"version":3,"file":"createColorField.d.ts","sourceRoot":"","sources":["../../src/color/createColorField.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAA4B,KAAK,QAAQ,EAAE,MAAM,UAAU,CAAC;AACnE,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,iCAAiC,CAAC;AAEvE,OAAO,KAAK,EAAE,qBAAqB,EAAE,cAAc,EAAE,MAAM,SAAS,CAAC;AAErE;;GAEG;AACH,wBAAgB,gBAAgB,CAC9B,KAAK,EAAE,QAAQ,CAAC,qBAAqB,CAAC,EACtC,KAAK,EAAE,QAAQ,CAAC,eAAe,CAAC,EAChC,QAAQ,EAAE,QAAQ,CAAC,gBAAgB,GAAG,IAAI,CAAC,GAC1C,cAAc,CAuKhB"}
1
+ {"version":3,"file":"createColorField.d.ts","sourceRoot":"","sources":["../../src/color/createColorField.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAA4B,KAAK,QAAQ,EAAE,MAAM,UAAU,CAAC;AACnE,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,iCAAiC,CAAC;AAEvE,OAAO,KAAK,EAAE,qBAAqB,EAAE,cAAc,EAAE,MAAM,SAAS,CAAC;AAErE;;GAEG;AACH,wBAAgB,gBAAgB,CAC9B,KAAK,EAAE,QAAQ,CAAC,qBAAqB,CAAC,EACtC,KAAK,EAAE,QAAQ,CAAC,eAAe,CAAC,EAChC,QAAQ,EAAE,QAAQ,CAAC,gBAAgB,GAAG,IAAI,CAAC,GAC1C,cAAc,CA8KhB"}
@@ -1 +1 @@
1
- {"version":3,"file":"createColorSlider.d.ts","sourceRoot":"","sources":["../../src/color/createColorSlider.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAyB,KAAK,QAAQ,EAAE,MAAM,UAAU,CAAC;AAChE,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,iCAAiC,CAAC;AAIxE,OAAO,KAAK,EAAE,sBAAsB,EAAE,eAAe,EAAE,MAAM,SAAS,CAAC;AAEvE;;GAEG;AACH,wBAAgB,iBAAiB,CAC/B,KAAK,EAAE,QAAQ,CAAC,sBAAsB,CAAC,EACvC,KAAK,EAAE,QAAQ,CAAC,gBAAgB,CAAC,EACjC,QAAQ,EAAE,QAAQ,CAAC,cAAc,GAAG,IAAI,CAAC,EACzC,QAAQ,CAAC,EAAE,QAAQ,CAAC,gBAAgB,GAAG,IAAI,CAAC,GAC3C,eAAe,CAsajB"}
1
+ {"version":3,"file":"createColorSlider.d.ts","sourceRoot":"","sources":["../../src/color/createColorSlider.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAyB,KAAK,QAAQ,EAAE,MAAM,UAAU,CAAC;AAChE,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,iCAAiC,CAAC;AAIxE,OAAO,KAAK,EAAE,sBAAsB,EAAE,eAAe,EAAE,MAAM,SAAS,CAAC;AAEvE;;GAEG;AACH,wBAAgB,iBAAiB,CAC/B,KAAK,EAAE,QAAQ,CAAC,sBAAsB,CAAC,EACvC,KAAK,EAAE,QAAQ,CAAC,gBAAgB,CAAC,EACjC,QAAQ,EAAE,QAAQ,CAAC,cAAc,GAAG,IAAI,CAAC,EACzC,QAAQ,CAAC,EAAE,QAAQ,CAAC,gBAAgB,GAAG,IAAI,CAAC,GAC3C,eAAe,CAqajB"}
@@ -1 +1 @@
1
- {"version":3,"file":"createColorSwatch.d.ts","sourceRoot":"","sources":["../../src/color/createColorSwatch.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAc,KAAK,QAAQ,EAAE,MAAM,UAAU,CAAC;AAKrD,OAAO,KAAK,EAAE,sBAAsB,EAAE,eAAe,EAAE,MAAM,SAAS,CAAC;AAEvE;;GAEG;AACH,wBAAgB,iBAAiB,CAAC,KAAK,EAAE,QAAQ,CAAC,sBAAsB,CAAC,GAAG,eAAe,CAgD1F"}
1
+ {"version":3,"file":"createColorSwatch.d.ts","sourceRoot":"","sources":["../../src/color/createColorSwatch.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAc,KAAK,QAAQ,EAAE,MAAM,UAAU,CAAC;AAMrD,OAAO,KAAK,EAAE,sBAAsB,EAAE,eAAe,EAAE,MAAM,SAAS,CAAC;AAEvE;;GAEG;AACH,wBAAgB,iBAAiB,CAAC,KAAK,EAAE,QAAQ,CAAC,sBAAsB,CAAC,GAAG,eAAe,CAiD1F"}
@@ -1 +1 @@
1
- {"version":3,"file":"createColorWheel.d.ts","sourceRoot":"","sources":["../../src/color/createColorWheel.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAyB,KAAK,QAAQ,EAAE,MAAM,UAAU,CAAC;AAChE,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,iCAAiC,CAAC;AAIvE,OAAO,KAAK,EAAE,qBAAqB,EAAE,cAAc,EAAE,MAAM,SAAS,CAAC;AAErE;;GAEG;AACH,wBAAgB,gBAAgB,CAC9B,KAAK,EAAE,QAAQ,CAAC,qBAAqB,CAAC,EACtC,KAAK,EAAE,QAAQ,CAAC,eAAe,CAAC,EAChC,QAAQ,EAAE,QAAQ,CAAC,cAAc,GAAG,IAAI,CAAC,GACxC,cAAc,CAkUhB"}
1
+ {"version":3,"file":"createColorWheel.d.ts","sourceRoot":"","sources":["../../src/color/createColorWheel.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAyB,KAAK,QAAQ,EAAE,MAAM,UAAU,CAAC;AAChE,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,iCAAiC,CAAC;AAIvE,OAAO,KAAK,EAAE,qBAAqB,EAAE,cAAc,EAAE,MAAM,SAAS,CAAC;AAErE;;GAEG;AACH,wBAAgB,gBAAgB,CAC9B,KAAK,EAAE,QAAQ,CAAC,qBAAqB,CAAC,EACtC,KAAK,EAAE,QAAQ,CAAC,eAAe,CAAC,EAChC,QAAQ,EAAE,QAAQ,CAAC,cAAc,GAAG,IAAI,CAAC,GACxC,cAAc,CA4ThB"}
@@ -0,0 +1,30 @@
1
+ /**
2
+ * Color internationalization strings.
3
+ *
4
+ * Port of `@react-aria/color`'s intl catalog — the `colorPicker`,
5
+ * `twoDimensionalSlider`, `colorSwatch`, `transparent`, `colorNameAndValue`,
6
+ * and `colorInputLabel` messages across all 34 upstream locales. Consumed via
7
+ * `createColorStringFormatter`, mirroring upstream's
8
+ * `useLocalizedStringFormatter(intlMessages, '@react-aria/color')`.
9
+ *
10
+ * The per-locale message SEPARATORS differ (e.g. CJK `:`/`、`, French
11
+ * non-breaking ` :`), so each locale's function form is preserved
12
+ * verbatim rather than shared.
13
+ */
14
+ import type { LocalizedStrings } from "@internationalized/string";
15
+ export type ColorIntlKey = "colorPicker" | "twoDimensionalSlider" | "colorSwatch" | "transparent" | "colorNameAndValue" | "colorInputLabel";
16
+ export type ColorIntlVariables = {
17
+ name?: string;
18
+ value?: string;
19
+ label?: string;
20
+ channelLabel?: string;
21
+ };
22
+ type ColorIntlMessage = string | ((args: ColorIntlVariables | undefined) => string);
23
+ export declare const colorIntlStrings: LocalizedStrings<ColorIntlKey, ColorIntlMessage>;
24
+ /**
25
+ * Reactive color string formatter for the current locale. Mirrors upstream
26
+ * `useLocalizedStringFormatter(intlMessages, '@react-aria/color')`.
27
+ */
28
+ export declare function createColorStringFormatter(): import("solid-js").Accessor<import("@internationalized/string").LocalizedStringFormatter<ColorIntlKey, ColorIntlMessage>>;
29
+ export {};
30
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/color/intl/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAEH,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,2BAA2B,CAAC;AAGlE,MAAM,MAAM,YAAY,GACpB,aAAa,GACb,sBAAsB,GACtB,aAAa,GACb,aAAa,GACb,mBAAmB,GACnB,iBAAiB,CAAC;AAEtB,MAAM,MAAM,kBAAkB,GAAG;IAC/B,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB,CAAC;AAEF,KAAK,gBAAgB,GAAG,MAAM,GAAG,CAAC,CAAC,IAAI,EAAE,kBAAkB,GAAG,SAAS,KAAK,MAAM,CAAC,CAAC;AAEpF,eAAO,MAAM,gBAAgB,EAAE,gBAAgB,CAAC,YAAY,EAAE,gBAAgB,CAiR7E,CAAC;AAEF;;;GAGG;AACH,wBAAgB,0BAA0B,8HAEzC"}
@@ -1 +1 @@
1
- {"version":3,"file":"createComboBox.d.ts","sourceRoot":"","sources":["../../src/combobox/createComboBox.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,KAAK,GAAG,EAAE,KAAK,QAAQ,EAA2B,MAAM,UAAU,CAAC;AAQ5E,OAAO,EAAU,KAAK,aAAa,EAAE,MAAM,qBAAqB,CAAC;AAQjE,OAAO,KAAK,EAAE,aAAa,EAAE,cAAc,EAAO,MAAM,iCAAiC,CAAC;AAa1F,MAAM,WAAW,iBAAiB;IAChC,8BAA8B;IAC9B,EAAE,CAAC,EAAE,MAAM,CAAC;IACZ,wCAAwC;IACxC,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,wCAAwC;IACxC,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,yCAAyC;IACzC,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,kCAAkC;IAClC,KAAK,CAAC,EAAE,GAAG,CAAC,OAAO,CAAC;IACpB,8EAA8E;IAC9E,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,qDAAqD;IACrD,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,wDAAwD;IACxD,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAC5B,+DAA+D;IAC/D,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,2EAA2E;IAC3E,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,4CAA4C;IAC5C,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,+DAA+D;IAC/D,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,mDAAmD;IACnD,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,6DAA6D;IAC7D,OAAO,CAAC,EAAE,CAAC,CAAC,EAAE,UAAU,KAAK,IAAI,CAAC;IAClC,oEAAoE;IACpE,MAAM,CAAC,EAAE,CAAC,CAAC,EAAE,UAAU,KAAK,IAAI,CAAC;IACjC,mDAAmD;IACnD,aAAa,CAAC,EAAE,CAAC,SAAS,EAAE,OAAO,KAAK,IAAI,CAAC;IAC7C,mEAAmE;IACnE,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,6CAA6C;IAC7C,IAAI,CAAC,EAAE,MAAM,CAAC;IACd;;;OAGG;IACH,YAAY,CAAC,EAAE,MAAM,GAAG,MAAM,GAAG,QAAQ,GAAG,MAAM,CAAC;IACnD,iEAAiE;IACjE,eAAe,CAAC,EAAE,OAAO,CAAC;CAC3B;AAED,MAAM,WAAW,YAAY,CAAC,CAAC;IAC7B,mCAAmC;IACnC,UAAU,EAAE,GAAG,CAAC,cAAc,CAAC,WAAW,CAAC,CAAC;IAC5C,mCAAmC;IACnC,UAAU,EAAE,GAAG,CAAC,mBAAmB,CAAC,gBAAgB,CAAC,CAAC;IACtD,4CAA4C;IAC5C,WAAW,EAAE,GAAG,CAAC,cAAc,CAAC,WAAW,CAAC,CAAC;IAC7C,mCAAmC;IACnC,YAAY,EAAE,GAAG,CAAC,cAAc,CAAC,WAAW,CAAC,CAAC;IAC9C,iDAAiD;IACjD,gBAAgB,EAAE,GAAG,CAAC,cAAc,CAAC,WAAW,CAAC,CAAC;IAClD,mDAAmD;IACnD,iBAAiB,EAAE,GAAG,CAAC,cAAc,CAAC,WAAW,CAAC,CAAC;IACnD,8CAA8C;IAC9C,SAAS,EAAE,QAAQ,CAAC,OAAO,CAAC,CAAC;IAC7B,4CAA4C;IAC5C,cAAc,EAAE,QAAQ,CAAC,OAAO,CAAC,CAAC;IAClC,6CAA6C;IAC7C,MAAM,EAAE,QAAQ,CAAC,OAAO,CAAC,CAAC;IAC1B,mCAAmC;IACnC,YAAY,EAAE,QAAQ,CAAC,cAAc,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC;CAClD;AAKD,UAAU,YAAY;IACpB,EAAE,EAAE,MAAM,CAAC;IACX,SAAS,EAAE,MAAM,CAAC;CACnB;AAED,wBAAgB,eAAe,CAAC,KAAK,EAAE,aAAa,CAAC,OAAO,CAAC,GAAG,YAAY,GAAG,SAAS,CAEvF;AAED;;GAEG;AACH,wBAAgB,cAAc,CAAC,CAAC,EAC9B,KAAK,EAAE,aAAa,CAAC,iBAAiB,CAAC,EACvC,KAAK,EAAE,aAAa,CAAC,CAAC,CAAC,EACvB,QAAQ,EAAE,MAAM,gBAAgB,GAAG,IAAI,EACvC,SAAS,CAAC,EAAE,MAAM,WAAW,GAAG,IAAI,EACpC,UAAU,CAAC,EAAE,MAAM,WAAW,GAAG,IAAI,GACpC,YAAY,CAAC,CAAC,CAAC,CAylBjB"}
1
+ {"version":3,"file":"createComboBox.d.ts","sourceRoot":"","sources":["../../src/combobox/createComboBox.ts"],"names":[],"mappings":"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"}