@proyecto-viviana/solidaria 0.3.0 → 0.4.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (566) hide show
  1. package/dist/_chunk/actiongroup.js +207 -0
  2. package/dist/_chunk/actiongroup.js.map +1 -0
  3. package/dist/_chunk/actiongroup.jsx +207 -0
  4. package/dist/_chunk/actiongroup.jsx.map +1 -0
  5. package/dist/_chunk/ariaHideOutside.js +122 -0
  6. package/dist/_chunk/ariaHideOutside.js.map +1 -0
  7. package/dist/_chunk/ariaHideOutside.jsx +122 -0
  8. package/dist/_chunk/ariaHideOutside.jsx.map +1 -0
  9. package/dist/_chunk/autocomplete.js +196 -0
  10. package/dist/_chunk/autocomplete.js.map +1 -0
  11. package/dist/_chunk/autocomplete.jsx +196 -0
  12. package/dist/_chunk/autocomplete.jsx.map +1 -0
  13. package/dist/_chunk/breadcrumbs.js +119 -0
  14. package/dist/_chunk/breadcrumbs.js.map +1 -0
  15. package/dist/_chunk/breadcrumbs.jsx +119 -0
  16. package/dist/_chunk/breadcrumbs.jsx.map +1 -0
  17. package/dist/_chunk/button.js +276 -0
  18. package/dist/_chunk/button.js.map +1 -0
  19. package/dist/_chunk/button.jsx +276 -0
  20. package/dist/_chunk/button.jsx.map +1 -0
  21. package/dist/_chunk/calendar.js +1036 -0
  22. package/dist/_chunk/calendar.js.map +1 -0
  23. package/dist/_chunk/calendar.jsx +1036 -0
  24. package/dist/_chunk/calendar.jsx.map +1 -0
  25. package/dist/_chunk/checkbox.js +234 -0
  26. package/dist/_chunk/checkbox.js.map +1 -0
  27. package/dist/_chunk/checkbox.jsx +234 -0
  28. package/dist/_chunk/checkbox.jsx.map +1 -0
  29. package/dist/_chunk/color.js +1174 -0
  30. package/dist/_chunk/color.js.map +1 -0
  31. package/dist/_chunk/color.jsx +1174 -0
  32. package/dist/_chunk/color.jsx.map +1 -0
  33. package/dist/_chunk/combobox.js +436 -0
  34. package/dist/_chunk/combobox.js.map +1 -0
  35. package/dist/_chunk/combobox.jsx +436 -0
  36. package/dist/_chunk/combobox.jsx.map +1 -0
  37. package/dist/_chunk/createCollator.js +229 -0
  38. package/dist/_chunk/createCollator.js.map +1 -0
  39. package/dist/_chunk/createCollator.jsx +223 -0
  40. package/dist/_chunk/createCollator.jsx.map +1 -0
  41. package/dist/_chunk/createCollectionRowInteraction.js +133 -0
  42. package/dist/_chunk/createCollectionRowInteraction.js.map +1 -0
  43. package/dist/_chunk/createCollectionRowInteraction.jsx +133 -0
  44. package/dist/_chunk/createCollectionRowInteraction.jsx.map +1 -0
  45. package/dist/_chunk/createField.js +54 -0
  46. package/dist/_chunk/createField.js.map +1 -0
  47. package/dist/_chunk/createField.jsx +54 -0
  48. package/dist/_chunk/createField.jsx.map +1 -0
  49. package/dist/_chunk/createFocus.js +101 -0
  50. package/dist/_chunk/createFocus.js.map +1 -0
  51. package/dist/_chunk/createFocus.jsx +101 -0
  52. package/dist/_chunk/createFocus.jsx.map +1 -0
  53. package/dist/_chunk/createFocusRing.js +54 -0
  54. package/dist/_chunk/createFocusRing.js.map +1 -0
  55. package/dist/_chunk/createFocusRing.jsx +54 -0
  56. package/dist/_chunk/createFocusRing.jsx.map +1 -0
  57. package/dist/_chunk/createFocusWithin.js +121 -0
  58. package/dist/_chunk/createFocusWithin.js.map +1 -0
  59. package/dist/_chunk/createFocusWithin.jsx +121 -0
  60. package/dist/_chunk/createFocusWithin.jsx.map +1 -0
  61. package/dist/_chunk/createFocusable.js +131 -0
  62. package/dist/_chunk/createFocusable.js.map +1 -0
  63. package/dist/_chunk/createFocusable.jsx +131 -0
  64. package/dist/_chunk/createFocusable.jsx.map +1 -0
  65. package/dist/_chunk/createFormValidation.js +135 -0
  66. package/dist/_chunk/createFormValidation.js.map +1 -0
  67. package/dist/_chunk/createFormValidation.jsx +135 -0
  68. package/dist/_chunk/createFormValidation.jsx.map +1 -0
  69. package/dist/_chunk/createHover.js +130 -0
  70. package/dist/_chunk/createHover.js.map +1 -0
  71. package/dist/_chunk/createHover.jsx +130 -0
  72. package/dist/_chunk/createHover.jsx.map +1 -0
  73. package/dist/_chunk/createInteractionModality.js +269 -0
  74. package/dist/_chunk/createInteractionModality.js.map +1 -0
  75. package/dist/_chunk/createInteractionModality.jsx +269 -0
  76. package/dist/_chunk/createInteractionModality.jsx.map +1 -0
  77. package/dist/_chunk/createLabel.js +46 -0
  78. package/dist/_chunk/createLabel.js.map +1 -0
  79. package/dist/_chunk/createLabel.jsx +46 -0
  80. package/dist/_chunk/createLabel.jsx.map +1 -0
  81. package/dist/_chunk/createLabels.js +31 -0
  82. package/dist/_chunk/createLabels.js.map +1 -0
  83. package/dist/_chunk/createLabels.jsx +31 -0
  84. package/dist/_chunk/createLabels.jsx.map +1 -0
  85. package/dist/_chunk/createLandmark.js +198 -0
  86. package/dist/_chunk/createLandmark.js.map +1 -0
  87. package/dist/_chunk/createLandmark.jsx +198 -0
  88. package/dist/_chunk/createLandmark.jsx.map +1 -0
  89. package/dist/_chunk/createLongPress.js +91 -0
  90. package/dist/_chunk/createLongPress.js.map +1 -0
  91. package/dist/_chunk/createLongPress.jsx +91 -0
  92. package/dist/_chunk/createLongPress.jsx.map +1 -0
  93. package/dist/_chunk/createOverlay.js +327 -0
  94. package/dist/_chunk/createOverlay.js.map +1 -0
  95. package/dist/_chunk/createOverlay.jsx +327 -0
  96. package/dist/_chunk/createOverlay.jsx.map +1 -0
  97. package/dist/_chunk/createPress.js +526 -0
  98. package/dist/_chunk/createPress.js.map +1 -0
  99. package/dist/_chunk/createPress.jsx +526 -0
  100. package/dist/_chunk/createPress.jsx.map +1 -0
  101. package/dist/_chunk/createProgressBar.js +81 -0
  102. package/dist/_chunk/createProgressBar.js.map +1 -0
  103. package/dist/_chunk/createProgressBar.jsx +81 -0
  104. package/dist/_chunk/createProgressBar.jsx.map +1 -0
  105. package/dist/_chunk/createSelectableItem.js +298 -0
  106. package/dist/_chunk/createSelectableItem.js.map +1 -0
  107. package/dist/_chunk/createSelectableItem.jsx +298 -0
  108. package/dist/_chunk/createSelectableItem.jsx.map +1 -0
  109. package/dist/_chunk/createToggle.js +158 -0
  110. package/dist/_chunk/createToggle.js.map +1 -0
  111. package/dist/_chunk/createToggle.jsx +158 -0
  112. package/dist/_chunk/createToggle.jsx.map +1 -0
  113. package/dist/_chunk/createTypeSelect.js +125 -0
  114. package/dist/_chunk/createTypeSelect.js.map +1 -0
  115. package/dist/_chunk/createTypeSelect.jsx +125 -0
  116. package/dist/_chunk/createTypeSelect.jsx.map +1 -0
  117. package/dist/_chunk/datepicker.js +1393 -0
  118. package/dist/_chunk/datepicker.js.map +1 -0
  119. package/dist/_chunk/datepicker.jsx +1393 -0
  120. package/dist/_chunk/datepicker.jsx.map +1 -0
  121. package/dist/_chunk/dialog.js +62 -0
  122. package/dist/_chunk/dialog.js.map +1 -0
  123. package/dist/_chunk/dialog.jsx +62 -0
  124. package/dist/_chunk/dialog.jsx.map +1 -0
  125. package/dist/_chunk/disclosure.js +185 -0
  126. package/dist/_chunk/disclosure.js.map +1 -0
  127. package/dist/_chunk/disclosure.jsx +185 -0
  128. package/dist/_chunk/disclosure.jsx.map +1 -0
  129. package/dist/_chunk/dnd.js +1304 -0
  130. package/dist/_chunk/dnd.js.map +1 -0
  131. package/dist/_chunk/dnd.jsx +1304 -0
  132. package/dist/_chunk/dnd.jsx.map +1 -0
  133. package/dist/_chunk/env.js +105 -0
  134. package/dist/_chunk/env.js.map +1 -0
  135. package/dist/_chunk/env.jsx +105 -0
  136. package/dist/_chunk/env.jsx.map +1 -0
  137. package/dist/_chunk/filterDOMProps.js +82 -0
  138. package/dist/_chunk/filterDOMProps.js.map +1 -0
  139. package/dist/_chunk/filterDOMProps.jsx +82 -0
  140. package/dist/_chunk/filterDOMProps.jsx.map +1 -0
  141. package/dist/_chunk/focus.js +399 -0
  142. package/dist/_chunk/focus.js.map +1 -0
  143. package/dist/_chunk/focus.jsx +399 -0
  144. package/dist/_chunk/focus.jsx.map +1 -0
  145. package/dist/_chunk/focus2.js +895 -0
  146. package/dist/_chunk/focus2.js.map +1 -0
  147. package/dist/_chunk/focus2.jsx +870 -0
  148. package/dist/_chunk/focus2.jsx.map +1 -0
  149. package/dist/_chunk/form.js +39 -0
  150. package/dist/_chunk/form.js.map +1 -0
  151. package/dist/_chunk/form.jsx +39 -0
  152. package/dist/_chunk/form.jsx.map +1 -0
  153. package/dist/_chunk/grid.js +623 -0
  154. package/dist/_chunk/grid.js.map +1 -0
  155. package/dist/_chunk/grid.jsx +623 -0
  156. package/dist/_chunk/grid.jsx.map +1 -0
  157. package/dist/_chunk/gridlist.js +364 -0
  158. package/dist/_chunk/gridlist.js.map +1 -0
  159. package/dist/_chunk/gridlist.jsx +364 -0
  160. package/dist/_chunk/gridlist.jsx.map +1 -0
  161. package/dist/_chunk/i18n.js +254 -0
  162. package/dist/_chunk/i18n.js.map +1 -0
  163. package/dist/_chunk/i18n.jsx +254 -0
  164. package/dist/_chunk/i18n.jsx.map +1 -0
  165. package/dist/_chunk/interactions.js +241 -0
  166. package/dist/_chunk/interactions.js.map +1 -0
  167. package/dist/_chunk/interactions.jsx +237 -0
  168. package/dist/_chunk/interactions.jsx.map +1 -0
  169. package/dist/_chunk/link.js +96 -0
  170. package/dist/_chunk/link.js.map +1 -0
  171. package/dist/_chunk/link.jsx +96 -0
  172. package/dist/_chunk/link.jsx.map +1 -0
  173. package/dist/_chunk/listbox.js +324 -0
  174. package/dist/_chunk/listbox.js.map +1 -0
  175. package/dist/_chunk/listbox.jsx +324 -0
  176. package/dist/_chunk/listbox.jsx.map +1 -0
  177. package/dist/_chunk/live-announcer.js +207 -0
  178. package/dist/_chunk/live-announcer.js.map +1 -0
  179. package/dist/_chunk/live-announcer.jsx +207 -0
  180. package/dist/_chunk/live-announcer.jsx.map +1 -0
  181. package/dist/_chunk/menu.js +518 -0
  182. package/dist/_chunk/menu.js.map +1 -0
  183. package/dist/_chunk/menu.jsx +518 -0
  184. package/dist/_chunk/menu.jsx.map +1 -0
  185. package/dist/_chunk/meter.js +33 -0
  186. package/dist/_chunk/meter.js.map +1 -0
  187. package/dist/_chunk/meter.jsx +33 -0
  188. package/dist/_chunk/meter.jsx.map +1 -0
  189. package/dist/_chunk/numberfield.js +258 -0
  190. package/dist/_chunk/numberfield.js.map +1 -0
  191. package/dist/_chunk/numberfield.jsx +258 -0
  192. package/dist/_chunk/numberfield.jsx.map +1 -0
  193. package/dist/_chunk/overlays.js +186 -0
  194. package/dist/_chunk/overlays.js.map +1 -0
  195. package/dist/_chunk/overlays.jsx +162 -0
  196. package/dist/_chunk/overlays.jsx.map +1 -0
  197. package/dist/_chunk/popover.js +574 -0
  198. package/dist/_chunk/popover.js.map +1 -0
  199. package/dist/_chunk/popover.jsx +574 -0
  200. package/dist/_chunk/popover.jsx.map +1 -0
  201. package/dist/_chunk/radio.js +319 -0
  202. package/dist/_chunk/radio.js.map +1 -0
  203. package/dist/_chunk/radio.jsx +319 -0
  204. package/dist/_chunk/radio.jsx.map +1 -0
  205. package/dist/_chunk/searchfield.js +209 -0
  206. package/dist/_chunk/searchfield.js.map +1 -0
  207. package/dist/_chunk/searchfield.jsx +209 -0
  208. package/dist/_chunk/searchfield.jsx.map +1 -0
  209. package/dist/_chunk/select.js +403 -0
  210. package/dist/_chunk/select.js.map +1 -0
  211. package/dist/_chunk/select.jsx +394 -0
  212. package/dist/_chunk/select.jsx.map +1 -0
  213. package/dist/_chunk/selection.js +679 -0
  214. package/dist/_chunk/selection.js.map +1 -0
  215. package/dist/_chunk/selection.jsx +679 -0
  216. package/dist/_chunk/selection.jsx.map +1 -0
  217. package/dist/_chunk/separator.js +29 -0
  218. package/dist/_chunk/separator.js.map +1 -0
  219. package/dist/_chunk/separator.jsx +29 -0
  220. package/dist/_chunk/separator.jsx.map +1 -0
  221. package/dist/_chunk/slider.js +255 -0
  222. package/dist/_chunk/slider.js.map +1 -0
  223. package/dist/_chunk/slider.jsx +255 -0
  224. package/dist/_chunk/slider.jsx.map +1 -0
  225. package/dist/_chunk/steplist.js +66 -0
  226. package/dist/_chunk/steplist.js.map +1 -0
  227. package/dist/_chunk/steplist.jsx +66 -0
  228. package/dist/_chunk/steplist.jsx.map +1 -0
  229. package/dist/_chunk/switch.js +34 -0
  230. package/dist/_chunk/switch.js.map +1 -0
  231. package/dist/_chunk/switch.jsx +34 -0
  232. package/dist/_chunk/switch.jsx.map +1 -0
  233. package/dist/_chunk/table.js +1051 -0
  234. package/dist/_chunk/table.js.map +1 -0
  235. package/dist/_chunk/table.jsx +1051 -0
  236. package/dist/_chunk/table.jsx.map +1 -0
  237. package/dist/_chunk/tabs.js +260 -0
  238. package/dist/_chunk/tabs.js.map +1 -0
  239. package/dist/_chunk/tabs.jsx +260 -0
  240. package/dist/_chunk/tabs.jsx.map +1 -0
  241. package/dist/_chunk/tag.js +286 -0
  242. package/dist/_chunk/tag.js.map +1 -0
  243. package/dist/_chunk/tag.jsx +286 -0
  244. package/dist/_chunk/tag.jsx.map +1 -0
  245. package/dist/_chunk/textfield.js +109 -0
  246. package/dist/_chunk/textfield.js.map +1 -0
  247. package/dist/_chunk/textfield.jsx +109 -0
  248. package/dist/_chunk/textfield.jsx.map +1 -0
  249. package/dist/_chunk/toast.js +250 -0
  250. package/dist/_chunk/toast.js.map +1 -0
  251. package/dist/_chunk/toast.jsx +250 -0
  252. package/dist/_chunk/toast.jsx.map +1 -0
  253. package/dist/_chunk/toolbar.js +258 -0
  254. package/dist/_chunk/toolbar.js.map +1 -0
  255. package/dist/_chunk/toolbar.jsx +258 -0
  256. package/dist/_chunk/toolbar.jsx.map +1 -0
  257. package/dist/_chunk/tooltip.js +185 -0
  258. package/dist/_chunk/tooltip.js.map +1 -0
  259. package/dist/_chunk/tooltip.jsx +185 -0
  260. package/dist/_chunk/tooltip.jsx.map +1 -0
  261. package/dist/_chunk/tree.js +424 -0
  262. package/dist/_chunk/tree.js.map +1 -0
  263. package/dist/_chunk/tree.jsx +424 -0
  264. package/dist/_chunk/tree.jsx.map +1 -0
  265. package/dist/_chunk/utils.js +665 -0
  266. package/dist/_chunk/utils.js.map +1 -0
  267. package/dist/_chunk/utils.jsx +665 -0
  268. package/dist/_chunk/utils.jsx.map +1 -0
  269. package/dist/_chunk/visually-hidden.js +92 -0
  270. package/dist/_chunk/visually-hidden.js.map +1 -0
  271. package/dist/_chunk/visually-hidden.jsx +92 -0
  272. package/dist/_chunk/visually-hidden.jsx.map +1 -0
  273. package/dist/actiongroup/index.js +2 -0
  274. package/dist/actiongroup/index.jsx +2 -0
  275. package/dist/autocomplete/createAutocomplete.d.ts +2 -0
  276. package/dist/autocomplete/createAutocomplete.d.ts.map +1 -1
  277. package/dist/autocomplete/index.js +2 -0
  278. package/dist/autocomplete/index.jsx +2 -0
  279. package/dist/breadcrumbs/index.js +2 -0
  280. package/dist/breadcrumbs/index.jsx +2 -0
  281. package/dist/button/index.js +2 -0
  282. package/dist/button/index.jsx +2 -0
  283. package/dist/calendar/createCalendar.d.ts.map +1 -1
  284. package/dist/calendar/createCalendarCell.d.ts.map +1 -1
  285. package/dist/calendar/createCalendarGrid.d.ts.map +1 -1
  286. package/dist/calendar/createCalendarMonthPicker.d.ts +41 -0
  287. package/dist/calendar/createCalendarMonthPicker.d.ts.map +1 -0
  288. package/dist/calendar/createCalendarYearPicker.d.ts +49 -0
  289. package/dist/calendar/createCalendarYearPicker.d.ts.map +1 -0
  290. package/dist/calendar/createRangeCalendar.d.ts.map +1 -1
  291. package/dist/calendar/index.d.ts +2 -0
  292. package/dist/calendar/index.d.ts.map +1 -1
  293. package/dist/calendar/index.js +2 -0
  294. package/dist/calendar/index.jsx +2 -0
  295. package/dist/calendar/utils.d.ts +4 -0
  296. package/dist/calendar/utils.d.ts.map +1 -1
  297. package/dist/checkbox/createCheckbox.d.ts +4 -0
  298. package/dist/checkbox/createCheckbox.d.ts.map +1 -1
  299. package/dist/checkbox/createCheckboxGroupItem.d.ts.map +1 -1
  300. package/dist/checkbox/index.js +2 -0
  301. package/dist/checkbox/index.jsx +2 -0
  302. package/dist/collections/index.js +160 -0
  303. package/dist/collections/index.js.map +1 -0
  304. package/dist/collections/index.jsx +160 -0
  305. package/dist/collections/index.jsx.map +1 -0
  306. package/dist/color/index.js +2 -0
  307. package/dist/color/index.jsx +2 -0
  308. package/dist/combobox/index.js +2 -0
  309. package/dist/combobox/index.jsx +2 -0
  310. package/dist/datepicker/createDateSegment.d.ts.map +1 -1
  311. package/dist/datepicker/index.js +2 -0
  312. package/dist/datepicker/index.jsx +2 -0
  313. package/dist/dialog/index.js +2 -0
  314. package/dist/dialog/index.jsx +2 -0
  315. package/dist/disclosure/index.js +2 -0
  316. package/dist/disclosure/index.jsx +2 -0
  317. package/dist/dnd/createDroppableCollection.d.ts.map +1 -1
  318. package/dist/dnd/index.js +2 -0
  319. package/dist/dnd/index.jsx +2 -0
  320. package/dist/dnd/utils.d.ts +2 -2
  321. package/dist/dnd/utils.d.ts.map +1 -1
  322. package/dist/focus/FocusScope.d.ts.map +1 -1
  323. package/dist/focus/index.js +2 -0
  324. package/dist/focus/index.jsx +2 -0
  325. package/dist/form/createFormValidation.d.ts.map +1 -1
  326. package/dist/form/index.js +3 -0
  327. package/dist/form/index.jsx +3 -0
  328. package/dist/grid/index.js +2 -0
  329. package/dist/grid/index.jsx +2 -0
  330. package/dist/gridlist/createGridList.d.ts +7 -1
  331. package/dist/gridlist/createGridList.d.ts.map +1 -1
  332. package/dist/gridlist/createGridListItem.d.ts +1 -1
  333. package/dist/gridlist/createGridListItem.d.ts.map +1 -1
  334. package/dist/gridlist/createGridListSection.d.ts +15 -0
  335. package/dist/gridlist/createGridListSection.d.ts.map +1 -0
  336. package/dist/gridlist/index.d.ts +2 -1
  337. package/dist/gridlist/index.d.ts.map +1 -1
  338. package/dist/gridlist/index.js +2 -0
  339. package/dist/gridlist/index.jsx +2 -0
  340. package/dist/gridlist/types.d.ts +50 -0
  341. package/dist/gridlist/types.d.ts.map +1 -1
  342. package/dist/i18n/index.js +3 -0
  343. package/dist/i18n/index.jsx +3 -0
  344. package/dist/index.d.ts +7 -3
  345. package/dist/index.d.ts.map +1 -1
  346. package/dist/index.js +71 -18311
  347. package/dist/index.jsx +71 -18242
  348. package/dist/interactions/PressEvent.d.ts +11 -0
  349. package/dist/interactions/PressEvent.d.ts.map +1 -1
  350. package/dist/interactions/createInteractionModality.d.ts +0 -1
  351. package/dist/interactions/createInteractionModality.d.ts.map +1 -1
  352. package/dist/interactions/createKeyboard.d.ts.map +1 -1
  353. package/dist/interactions/createPress.d.ts.map +1 -1
  354. package/dist/interactions/index.js +10 -0
  355. package/dist/interactions/index.jsx +10 -0
  356. package/dist/label/index.js +4 -0
  357. package/dist/label/index.jsx +4 -0
  358. package/dist/landmark/index.js +2 -0
  359. package/dist/landmark/index.jsx +2 -0
  360. package/dist/link/index.js +2 -0
  361. package/dist/link/index.jsx +2 -0
  362. package/dist/listbox/createListBox.d.ts +37 -0
  363. package/dist/listbox/createListBox.d.ts.map +1 -1
  364. package/dist/listbox/createOption.d.ts +6 -0
  365. package/dist/listbox/createOption.d.ts.map +1 -1
  366. package/dist/listbox/index.js +2 -0
  367. package/dist/listbox/index.jsx +2 -0
  368. package/dist/live-announcer/index.js +2 -0
  369. package/dist/live-announcer/index.jsx +2 -0
  370. package/dist/menu/createMenu.d.ts +7 -4
  371. package/dist/menu/createMenu.d.ts.map +1 -1
  372. package/dist/menu/createMenuItem.d.ts +9 -1
  373. package/dist/menu/createMenuItem.d.ts.map +1 -1
  374. package/dist/menu/index.js +2 -0
  375. package/dist/menu/index.jsx +2 -0
  376. package/dist/meter/index.js +2 -0
  377. package/dist/meter/index.jsx +2 -0
  378. package/dist/numberfield/createNumberField.d.ts.map +1 -1
  379. package/dist/numberfield/index.js +2 -0
  380. package/dist/numberfield/index.jsx +2 -0
  381. package/dist/overlays/index.js +4 -0
  382. package/dist/overlays/index.jsx +4 -0
  383. package/dist/popover/calculatePosition.d.ts +2 -0
  384. package/dist/popover/calculatePosition.d.ts.map +1 -1
  385. package/dist/popover/createOverlayPosition.d.ts +8 -0
  386. package/dist/popover/createOverlayPosition.d.ts.map +1 -1
  387. package/dist/popover/index.js +2 -0
  388. package/dist/popover/index.jsx +2 -0
  389. package/dist/progress/index.js +2 -0
  390. package/dist/progress/index.jsx +2 -0
  391. package/dist/radio/createRadio.d.ts +2 -0
  392. package/dist/radio/createRadio.d.ts.map +1 -1
  393. package/dist/radio/index.js +2 -0
  394. package/dist/radio/index.jsx +2 -0
  395. package/dist/searchfield/index.js +2 -0
  396. package/dist/searchfield/index.jsx +2 -0
  397. package/dist/select/createSelect.d.ts.map +1 -1
  398. package/dist/select/index.js +2 -0
  399. package/dist/select/index.jsx +2 -0
  400. package/dist/selection/DOMLayoutDelegate.d.ts +58 -0
  401. package/dist/selection/DOMLayoutDelegate.d.ts.map +1 -0
  402. package/dist/selection/ListKeyboardDelegate.d.ts +95 -0
  403. package/dist/selection/ListKeyboardDelegate.d.ts.map +1 -0
  404. package/dist/selection/constants.d.ts +15 -0
  405. package/dist/selection/constants.d.ts.map +1 -0
  406. package/dist/selection/createCollectionRowInteraction.d.ts +13 -0
  407. package/dist/selection/createCollectionRowInteraction.d.ts.map +1 -0
  408. package/dist/selection/createScrollIntoViewOnFocus.d.ts +31 -0
  409. package/dist/selection/createScrollIntoViewOnFocus.d.ts.map +1 -0
  410. package/dist/selection/createSelectableCollection.d.ts +69 -0
  411. package/dist/selection/createSelectableCollection.d.ts.map +1 -0
  412. package/dist/selection/createSelectableItem.d.ts +154 -0
  413. package/dist/selection/createSelectableItem.d.ts.map +1 -0
  414. package/dist/selection/createSelectableList.d.ts +43 -0
  415. package/dist/selection/createSelectableList.d.ts.map +1 -0
  416. package/dist/selection/createTypeSelect.d.ts.map +1 -1
  417. package/dist/selection/index.d.ts +9 -0
  418. package/dist/selection/index.d.ts.map +1 -1
  419. package/dist/selection/index.js +4 -0
  420. package/dist/selection/index.jsx +4 -0
  421. package/dist/selection/selectItem.d.ts +29 -0
  422. package/dist/selection/selectItem.d.ts.map +1 -0
  423. package/dist/selection/utils.d.ts +40 -0
  424. package/dist/selection/utils.d.ts.map +1 -0
  425. package/dist/separator/index.js +2 -0
  426. package/dist/separator/index.jsx +2 -0
  427. package/dist/slider/createSlider.d.ts.map +1 -1
  428. package/dist/slider/index.js +2 -0
  429. package/dist/slider/index.jsx +2 -0
  430. package/dist/ssr/index.d.ts +17 -0
  431. package/dist/ssr/index.d.ts.map +1 -1
  432. package/dist/ssr/index.js +299 -0
  433. package/dist/ssr/index.js.map +1 -0
  434. package/dist/ssr/index.jsx +292 -0
  435. package/dist/ssr/index.jsx.map +1 -0
  436. package/dist/steplist/index.js +2 -0
  437. package/dist/steplist/index.jsx +2 -0
  438. package/dist/switch/createSwitch.d.ts +4 -0
  439. package/dist/switch/createSwitch.d.ts.map +1 -1
  440. package/dist/switch/index.js +2 -0
  441. package/dist/switch/index.jsx +2 -0
  442. package/dist/table/createTable.d.ts.map +1 -1
  443. package/dist/table/createTableRow.d.ts +1 -1
  444. package/dist/table/createTableRow.d.ts.map +1 -1
  445. package/dist/table/createTableSelectAllCheckbox.d.ts.map +1 -1
  446. package/dist/table/index.js +2 -0
  447. package/dist/table/index.jsx +2 -0
  448. package/dist/table/types.d.ts +27 -1
  449. package/dist/table/types.d.ts.map +1 -1
  450. package/dist/tabs/createTabs.d.ts +4 -3
  451. package/dist/tabs/createTabs.d.ts.map +1 -1
  452. package/dist/tabs/index.js +2 -0
  453. package/dist/tabs/index.jsx +2 -0
  454. package/dist/tag/createTag.d.ts +2 -0
  455. package/dist/tag/createTag.d.ts.map +1 -1
  456. package/dist/tag/index.js +2 -0
  457. package/dist/tag/index.jsx +2 -0
  458. package/dist/textfield/index.js +2 -0
  459. package/dist/textfield/index.jsx +2 -0
  460. package/dist/toast/createToast.d.ts.map +1 -1
  461. package/dist/toast/index.js +2 -0
  462. package/dist/toast/index.jsx +2 -0
  463. package/dist/toggle/createToggle.d.ts +4 -0
  464. package/dist/toggle/createToggle.d.ts.map +1 -1
  465. package/dist/toggle/index.js +3 -0
  466. package/dist/toggle/index.jsx +3 -0
  467. package/dist/toolbar/createToolbar.d.ts +1 -1
  468. package/dist/toolbar/createToolbar.d.ts.map +1 -1
  469. package/dist/toolbar/index.js +2 -0
  470. package/dist/toolbar/index.jsx +2 -0
  471. package/dist/tooltip/index.js +2 -0
  472. package/dist/tooltip/index.jsx +2 -0
  473. package/dist/tree/createTree.d.ts +5 -1
  474. package/dist/tree/createTree.d.ts.map +1 -1
  475. package/dist/tree/createTreeItem.d.ts +1 -1
  476. package/dist/tree/createTreeItem.d.ts.map +1 -1
  477. package/dist/tree/index.js +2 -0
  478. package/dist/tree/index.jsx +2 -0
  479. package/dist/tree/types.d.ts +10 -0
  480. package/dist/tree/types.d.ts.map +1 -1
  481. package/dist/utils/animation.d.ts +60 -0
  482. package/dist/utils/animation.d.ts.map +1 -0
  483. package/dist/utils/dom.d.ts +48 -2
  484. package/dist/utils/dom.d.ts.map +1 -1
  485. package/dist/utils/index.d.ts +4 -1
  486. package/dist/utils/index.d.ts.map +1 -1
  487. package/dist/utils/index.js +5 -0
  488. package/dist/utils/index.jsx +5 -0
  489. package/dist/utils/keyboard.d.ts +17 -0
  490. package/dist/utils/keyboard.d.ts.map +1 -0
  491. package/dist/utils/mergeProps.d.ts.map +1 -1
  492. package/dist/utils/scrollIntoView.d.ts +30 -0
  493. package/dist/utils/scrollIntoView.d.ts.map +1 -0
  494. package/dist/visually-hidden/index.js +2 -0
  495. package/dist/visually-hidden/index.jsx +2 -0
  496. package/package.json +304 -3
  497. package/src/autocomplete/createAutocomplete.ts +67 -21
  498. package/src/calendar/createCalendar.ts +2 -0
  499. package/src/calendar/createCalendarCell.ts +19 -2
  500. package/src/calendar/createCalendarGrid.ts +43 -9
  501. package/src/calendar/createCalendarMonthPicker.ts +105 -0
  502. package/src/calendar/createCalendarYearPicker.ts +144 -0
  503. package/src/calendar/createRangeCalendar.ts +2 -0
  504. package/src/calendar/index.ts +17 -0
  505. package/src/calendar/utils.ts +4 -0
  506. package/src/checkbox/createCheckbox.ts +10 -0
  507. package/src/checkbox/createCheckboxGroupItem.ts +12 -16
  508. package/src/datepicker/createDateSegment.ts +6 -1
  509. package/src/dnd/createDroppableCollection.ts +4 -1
  510. package/src/dnd/utils.ts +27 -3
  511. package/src/focus/FocusScope.tsx +152 -18
  512. package/src/form/createFormValidation.ts +8 -1
  513. package/src/gridlist/createGridList.ts +145 -42
  514. package/src/gridlist/createGridListItem.ts +87 -155
  515. package/src/gridlist/createGridListSection.ts +54 -0
  516. package/src/gridlist/index.ts +3 -0
  517. package/src/gridlist/types.ts +47 -0
  518. package/src/index.ts +40 -0
  519. package/src/interactions/PressEvent.ts +14 -0
  520. package/src/interactions/createInteractionModality.ts +21 -12
  521. package/src/interactions/createKeyboard.ts +10 -0
  522. package/src/interactions/createPress.ts +29 -6
  523. package/src/listbox/createListBox.ts +129 -8
  524. package/src/listbox/createOption.ts +68 -73
  525. package/src/menu/createMenu.ts +93 -16
  526. package/src/menu/createMenuItem.ts +253 -41
  527. package/src/numberfield/createNumberField.ts +82 -14
  528. package/src/popover/calculatePosition.ts +19 -7
  529. package/src/popover/createOverlayPosition.ts +9 -0
  530. package/src/radio/createRadio.ts +19 -2
  531. package/src/select/createSelect.ts +18 -2
  532. package/src/selection/DOMLayoutDelegate.ts +102 -0
  533. package/src/selection/ListKeyboardDelegate.ts +398 -0
  534. package/src/selection/constants.ts +16 -0
  535. package/src/selection/createCollectionRowInteraction.ts +209 -0
  536. package/src/selection/createScrollIntoViewOnFocus.ts +65 -0
  537. package/src/selection/createSelectableCollection.ts +645 -0
  538. package/src/selection/createSelectableItem.ts +498 -0
  539. package/src/selection/createSelectableList.ts +93 -0
  540. package/src/selection/createTypeSelect.ts +112 -51
  541. package/src/selection/index.ts +31 -0
  542. package/src/selection/selectItem.ts +80 -0
  543. package/src/selection/utils.ts +82 -0
  544. package/src/slider/createSlider.ts +48 -1
  545. package/src/ssr/index.tsx +31 -0
  546. package/src/switch/createSwitch.ts +10 -0
  547. package/src/table/createTable.ts +56 -26
  548. package/src/table/createTableRow.ts +198 -203
  549. package/src/table/createTableSelectAllCheckbox.ts +3 -4
  550. package/src/table/types.ts +29 -1
  551. package/src/tabs/createTabs.ts +50 -20
  552. package/src/tag/createTag.ts +9 -4
  553. package/src/toast/createToast.ts +1 -0
  554. package/src/toggle/createToggle.ts +20 -0
  555. package/src/toolbar/createToolbar.ts +43 -42
  556. package/src/tree/createTree.ts +100 -42
  557. package/src/tree/createTreeItem.ts +105 -120
  558. package/src/tree/types.ts +10 -0
  559. package/src/utils/animation.ts +151 -0
  560. package/src/utils/dom.ts +215 -25
  561. package/src/utils/index.ts +8 -0
  562. package/src/utils/keyboard.ts +25 -0
  563. package/src/utils/mergeProps.ts +8 -1
  564. package/src/utils/scrollIntoView.ts +181 -0
  565. package/dist/index.js.map +0 -1
  566. package/dist/index.jsx.map +0 -1
@@ -0,0 +1,1051 @@
1
+ import { o as mergeProps } from "./env.js";
2
+ import { S as scrollIntoViewport } from "./utils.js";
3
+ import { o as getInteractionModality } from "./createInteractionModality.js";
4
+ import { a as useLocale } from "./createCollator.js";
5
+ import { n as createSelectableItem } from "./createSelectableItem.js";
6
+ import { t as announce } from "./live-announcer.js";
7
+ import { createEffect, createMemo, createSignal, on } from "solid-js";
8
+ import { createId } from "@proyecto-viviana/solid-stately";
9
+ //#region src/table/createTable.ts
10
+ /**
11
+ * createTable - Provides accessibility for a table component.
12
+ * Based on @react-aria/table/useTable.
13
+ */
14
+ const tableMap = /* @__PURE__ */ new WeakMap();
15
+ /**
16
+ * Get the table metadata for child components.
17
+ */
18
+ function getTableData(state) {
19
+ return tableMap.get(state);
20
+ }
21
+ /**
22
+ * Helper to get cells from a row by iterating children
23
+ */
24
+ function getChildCells(collection, rowKey) {
25
+ return [...collection.getChildren(rowKey)].filter((node) => node.type === "cell" || node.type === "rowheader");
26
+ }
27
+ /**
28
+ * Helper to get cell at specific index in a row
29
+ */
30
+ function getCellAtIndex(collection, rowKey, index) {
31
+ return getChildCells(collection, rowKey)[index] ?? null;
32
+ }
33
+ /**
34
+ * Helper to check if a node is a cell
35
+ */
36
+ function isCell(node) {
37
+ return node?.type === "cell" || node?.type === "rowheader";
38
+ }
39
+ /**
40
+ * Helper to check if a node is a row
41
+ */
42
+ function isRow(node) {
43
+ return node?.type === "item";
44
+ }
45
+ /**
46
+ * Creates accessibility props for a table component.
47
+ */
48
+ function createTable(props, state, ref) {
49
+ const id = createId(props().id);
50
+ const locale = useLocale();
51
+ let prevSortDescriptor = null;
52
+ let isFirstRender = true;
53
+ let typeaheadBuffer = "";
54
+ let typeaheadTimeout;
55
+ const storeTableData = () => {
56
+ const s = state();
57
+ const p = props();
58
+ tableMap.set(s, {
59
+ tableId: id,
60
+ actions: {
61
+ onRowAction: p.onRowAction,
62
+ onCellAction: p.onCellAction
63
+ },
64
+ shouldSelectOnPressUp: p.shouldSelectOnPressUp,
65
+ focusMode: p.focusMode
66
+ });
67
+ };
68
+ createMemo(() => {
69
+ storeTableData();
70
+ });
71
+ createEffect(on(() => state().sortDescriptor, (sortDescriptor) => {
72
+ if (isFirstRender) {
73
+ isFirstRender = false;
74
+ prevSortDescriptor = sortDescriptor;
75
+ return;
76
+ }
77
+ if (sortDescriptor && (sortDescriptor.column !== prevSortDescriptor?.column || sortDescriptor.direction !== prevSortDescriptor?.direction)) announce(`Sorted by ${state().collection.columns.find((c) => c.key === sortDescriptor.column)?.textValue ?? String(sortDescriptor.column)}, ${sortDescriptor.direction === "ascending" ? "ascending" : "descending"}`, "assertive", 500);
78
+ prevSortDescriptor = sortDescriptor;
79
+ }));
80
+ const onKeyDown = (e) => {
81
+ const s = state();
82
+ const collection = s.collection;
83
+ const p = props();
84
+ const focusMode = p.focusMode ?? "row";
85
+ const isRTL = locale().direction === "rtl";
86
+ const setFocusedKey = (key) => {
87
+ s.setFocusedKey(key);
88
+ };
89
+ const runTypeahead = (focusedKey, focusedItem) => {
90
+ if (e.key.length !== 1 || e.ctrlKey || e.metaKey || e.altKey) return false;
91
+ if (e.key === " " && typeaheadBuffer.length === 0) return false;
92
+ typeaheadBuffer += e.key.toLocaleLowerCase();
93
+ if (typeaheadTimeout) clearTimeout(typeaheadTimeout);
94
+ typeaheadTimeout = setTimeout(() => {
95
+ typeaheadBuffer = "";
96
+ typeaheadTimeout = void 0;
97
+ }, 500);
98
+ const rows = Array.from(collection).filter((node) => !s.isDisabled(node.key));
99
+ if (rows.length === 0) return true;
100
+ const currentRowKey = isCell(focusedItem) && focusedItem.parentKey != null ? focusedItem.parentKey : focusedKey;
101
+ const currentIndex = rows.findIndex((node) => node.key === currentRowKey);
102
+ const match = (currentIndex >= 0 ? [...rows.slice(currentIndex + 1), ...rows.slice(0, currentIndex + 1)] : rows).find((node) => collection.getTextValue(node.key).toLocaleLowerCase().startsWith(typeaheadBuffer));
103
+ if (match) {
104
+ e.preventDefault();
105
+ setFocusedKey(match.key);
106
+ }
107
+ return true;
108
+ };
109
+ if (s.isKeyboardNavigationDisabled) return;
110
+ const focusedKey = s.focusedKey;
111
+ if (focusedKey == null) {
112
+ if (e.key === "ArrowDown" || e.key === "ArrowUp" || e.key === "Home" || e.key === "End") {
113
+ const firstKey = collection.getFirstKey();
114
+ if (firstKey != null) {
115
+ e.preventDefault();
116
+ setFocusedKey(firstKey);
117
+ }
118
+ }
119
+ return;
120
+ }
121
+ const focusedItem = collection.getItem(focusedKey);
122
+ if (!focusedItem) return;
123
+ let nextKey = null;
124
+ switch (e.key) {
125
+ case "ArrowDown":
126
+ e.preventDefault();
127
+ if (isCell(focusedItem) && focusedItem.parentKey != null) {
128
+ const nextRowKey = collection.getKeyAfter(focusedItem.parentKey);
129
+ if (nextRowKey != null) {
130
+ const cellIndex = focusedItem.index;
131
+ nextKey = getCellAtIndex(collection, nextRowKey, cellIndex)?.key ?? nextRowKey;
132
+ }
133
+ } else nextKey = collection.getKeyAfter(focusedKey);
134
+ break;
135
+ case "ArrowUp":
136
+ e.preventDefault();
137
+ if (isCell(focusedItem) && focusedItem.parentKey != null) {
138
+ const prevRowKey = collection.getKeyBefore(focusedItem.parentKey);
139
+ if (prevRowKey != null) {
140
+ const cellIndex = focusedItem.index;
141
+ nextKey = getCellAtIndex(collection, prevRowKey, cellIndex)?.key ?? prevRowKey;
142
+ }
143
+ } else nextKey = collection.getKeyBefore(focusedKey);
144
+ break;
145
+ case "ArrowRight": {
146
+ e.preventDefault();
147
+ const goNext = !isRTL;
148
+ if (isRow(focusedItem)) {
149
+ const cells = getChildCells(collection, focusedKey);
150
+ if (cells.length > 0) nextKey = goNext ? cells[0].key : cells[cells.length - 1].key;
151
+ } else if (isCell(focusedItem) && focusedItem.parentKey != null) {
152
+ const cells = getChildCells(collection, focusedItem.parentKey);
153
+ const currentIndex = focusedItem.index;
154
+ const targetIndex = goNext ? currentIndex + 1 : currentIndex - 1;
155
+ if (targetIndex >= 0 && targetIndex < cells.length) nextKey = cells[targetIndex].key;
156
+ else if (focusMode === "row") nextKey = focusedItem.parentKey;
157
+ else nextKey = goNext ? cells[0].key : cells[cells.length - 1].key;
158
+ }
159
+ break;
160
+ }
161
+ case "ArrowLeft": {
162
+ e.preventDefault();
163
+ const goNext = isRTL;
164
+ if (isRow(focusedItem)) {
165
+ const cells = getChildCells(collection, focusedKey);
166
+ if (cells.length > 0) nextKey = goNext ? cells[0].key : cells[cells.length - 1].key;
167
+ } else if (isCell(focusedItem) && focusedItem.parentKey != null) {
168
+ const cells = getChildCells(collection, focusedItem.parentKey);
169
+ const currentIndex = focusedItem.index;
170
+ const targetIndex = goNext ? currentIndex + 1 : currentIndex - 1;
171
+ if (targetIndex >= 0 && targetIndex < cells.length) nextKey = cells[targetIndex].key;
172
+ else if (focusMode === "row") nextKey = focusedItem.parentKey;
173
+ else nextKey = goNext ? cells[0].key : cells[cells.length - 1].key;
174
+ }
175
+ break;
176
+ }
177
+ case "Home":
178
+ e.preventDefault();
179
+ if (e.ctrlKey) {
180
+ const firstRowKey = collection.getFirstKey();
181
+ if (firstRowKey != null) if (isCell(focusedItem) || focusMode === "cell") nextKey = getChildCells(collection, firstRowKey)[0]?.key ?? firstRowKey;
182
+ else nextKey = firstRowKey;
183
+ } else if (isCell(focusedItem) && focusedItem.parentKey != null) nextKey = getChildCells(collection, focusedItem.parentKey)[0]?.key ?? null;
184
+ else nextKey = collection.getFirstKey();
185
+ break;
186
+ case "End":
187
+ e.preventDefault();
188
+ if (e.ctrlKey) {
189
+ const lastRowKey = collection.getLastKey();
190
+ if (lastRowKey != null) if (isCell(focusedItem) || focusMode === "cell") {
191
+ const cells = getChildCells(collection, lastRowKey);
192
+ nextKey = cells[cells.length - 1]?.key ?? lastRowKey;
193
+ } else nextKey = lastRowKey;
194
+ } else if (isCell(focusedItem) && focusedItem.parentKey != null) {
195
+ const cells = getChildCells(collection, focusedItem.parentKey);
196
+ nextKey = cells[cells.length - 1]?.key ?? null;
197
+ } else nextKey = collection.getLastKey();
198
+ break;
199
+ case "PageDown": {
200
+ e.preventDefault();
201
+ const el = ref();
202
+ if (el && el.clientHeight > 0) {
203
+ const visibleHeight = el.clientHeight;
204
+ let currentKey = focusedKey;
205
+ let traveled = 0;
206
+ if (isCell(focusedItem) && focusedItem.parentKey != null) currentKey = focusedItem.parentKey;
207
+ while (currentKey != null && traveled < visibleHeight) {
208
+ const next = collection.getKeyAfter(currentKey);
209
+ if (next == null) break;
210
+ const rowElement = el.querySelector(`[data-key="${currentKey}"]`);
211
+ traveled += rowElement?.clientHeight ?? 40;
212
+ currentKey = next;
213
+ }
214
+ if (currentKey != null) if (isCell(focusedItem)) {
215
+ const cellIndex = focusedItem.index;
216
+ nextKey = getCellAtIndex(collection, currentKey, cellIndex)?.key ?? currentKey;
217
+ } else nextKey = currentKey;
218
+ } else {
219
+ let count = 10;
220
+ let current = isCell(focusedItem) && focusedItem.parentKey != null ? focusedItem.parentKey : focusedKey;
221
+ while (count > 0 && current != null) {
222
+ const next = collection.getKeyAfter(current);
223
+ if (next == null) break;
224
+ current = next;
225
+ count--;
226
+ }
227
+ if (current != null && isCell(focusedItem)) nextKey = getCellAtIndex(collection, current, focusedItem.index)?.key ?? current;
228
+ else nextKey = current;
229
+ }
230
+ break;
231
+ }
232
+ case "PageUp": {
233
+ e.preventDefault();
234
+ const el = ref();
235
+ if (el && el.clientHeight > 0) {
236
+ const visibleHeight = el.clientHeight;
237
+ let currentKey = focusedKey;
238
+ let traveled = 0;
239
+ if (isCell(focusedItem) && focusedItem.parentKey != null) currentKey = focusedItem.parentKey;
240
+ while (currentKey != null && traveled < visibleHeight) {
241
+ const prev = collection.getKeyBefore(currentKey);
242
+ if (prev == null) break;
243
+ const rowElement = el.querySelector(`[data-key="${currentKey}"]`);
244
+ traveled += rowElement?.clientHeight ?? 40;
245
+ currentKey = prev;
246
+ }
247
+ if (currentKey != null) if (isCell(focusedItem)) {
248
+ const cellIndex = focusedItem.index;
249
+ nextKey = getCellAtIndex(collection, currentKey, cellIndex)?.key ?? currentKey;
250
+ } else nextKey = currentKey;
251
+ } else {
252
+ let count = 10;
253
+ let current = isCell(focusedItem) && focusedItem.parentKey != null ? focusedItem.parentKey : focusedKey;
254
+ while (count > 0 && current != null) {
255
+ const prev = collection.getKeyBefore(current);
256
+ if (prev == null) break;
257
+ current = prev;
258
+ count--;
259
+ }
260
+ if (current != null && isCell(focusedItem)) nextKey = getCellAtIndex(collection, current, focusedItem.index)?.key ?? current;
261
+ else nextKey = current;
262
+ }
263
+ break;
264
+ }
265
+ case "Escape":
266
+ if (p.escapeKeyBehavior !== "none") s.clearSelection();
267
+ return;
268
+ case "a":
269
+ if (e.ctrlKey || e.metaKey) {
270
+ e.preventDefault();
271
+ if (s.selectionMode === "multiple") s.selectAll();
272
+ }
273
+ return;
274
+ default:
275
+ if (runTypeahead(focusedKey, focusedItem)) return;
276
+ return;
277
+ }
278
+ if (nextKey != null) {
279
+ setFocusedKey(nextKey);
280
+ if (e.shiftKey && s.selectionMode === "multiple") {
281
+ const focusedNode = collection.getItem(nextKey);
282
+ const keyToSelect = focusedNode && isCell(focusedNode) && focusedNode.parentKey != null ? focusedNode.parentKey : nextKey;
283
+ s.extendSelection(keyToSelect);
284
+ }
285
+ }
286
+ };
287
+ const onFocus = (e) => {
288
+ const s = state();
289
+ if (!ref()?.contains(e.target)) return;
290
+ if (!s.isFocused) {
291
+ s.setFocused(true);
292
+ if (s.focusedKey == null) {
293
+ const firstKey = s.collection.getFirstKey();
294
+ if (firstKey != null) s.setFocusedKey(firstKey);
295
+ }
296
+ }
297
+ };
298
+ const onBlur = (e) => {
299
+ const s = state();
300
+ const el = ref();
301
+ if (el && !el.contains(e.relatedTarget)) s.setFocused(false);
302
+ };
303
+ createEffect(() => {
304
+ const key = state().focusedKey;
305
+ const el = ref();
306
+ if (!el || key == null) return;
307
+ const active = document.activeElement;
308
+ if (!active || active !== el && !el.contains(active)) return;
309
+ const target = el.querySelector(`[data-key="${key}"]`);
310
+ if (target && target !== active) {
311
+ target.focus();
312
+ if (getInteractionModality() !== "pointer") scrollIntoViewport(target, { containingElement: el });
313
+ }
314
+ });
315
+ createMemo(() => {
316
+ const p = props();
317
+ if (!p["aria-label"] && !p["aria-labelledby"]) console.warn("Table: An aria-label or aria-labelledby prop is required for accessibility.");
318
+ });
319
+ const gridProps = createMemo(() => {
320
+ const p = props();
321
+ const s = state();
322
+ const baseProps = {
323
+ role: "grid",
324
+ id,
325
+ "aria-label": p["aria-label"],
326
+ "aria-labelledby": p["aria-labelledby"],
327
+ "aria-describedby": p["aria-describedby"],
328
+ "aria-multiselectable": s.selectionMode === "multiple" ? "true" : void 0,
329
+ tabIndex: 0,
330
+ onKeyDown,
331
+ onFocus,
332
+ onBlur
333
+ };
334
+ if (p.isVirtualized) {
335
+ baseProps["aria-rowcount"] = s.collection.rowCount;
336
+ baseProps["aria-colcount"] = s.collection.columnCount;
337
+ }
338
+ return baseProps;
339
+ });
340
+ return { get gridProps() {
341
+ return gridProps();
342
+ } };
343
+ }
344
+ //#endregion
345
+ //#region src/table/createTableHeaderRow.ts
346
+ /**
347
+ * createTableHeaderRow - Provides accessibility for a table header row.
348
+ * Based on @react-aria/table/useTableHeaderRow.
349
+ */
350
+ /**
351
+ * Creates accessibility props for a table header row.
352
+ */
353
+ function createTableHeaderRow(props, _state, _ref) {
354
+ const rowProps = createMemo(() => {
355
+ const p = props();
356
+ const node = p.node;
357
+ const baseProps = { role: "row" };
358
+ if (p.isVirtualized && node.rowIndex != null) baseProps["aria-rowindex"] = node.rowIndex + 1;
359
+ return baseProps;
360
+ });
361
+ return { get rowProps() {
362
+ return rowProps();
363
+ } };
364
+ }
365
+ //#endregion
366
+ //#region src/table/createTableColumnHeader.ts
367
+ /**
368
+ * createTableColumnHeader - Provides accessibility for a table column header.
369
+ * Based on @react-aria/table/useTableColumnHeader.
370
+ */
371
+ /**
372
+ * Creates accessibility props for a table column header.
373
+ */
374
+ function createTableColumnHeader(props, state, _ref) {
375
+ const [isPressed, setIsPressed] = createSignal(false);
376
+ let ignoreNextClick = false;
377
+ let ignoreNextClickTimeout;
378
+ const isFocused = createMemo(() => {
379
+ const s = state();
380
+ const p = props();
381
+ return s.focusedKey === p.node.key;
382
+ });
383
+ const sortColumn = () => {
384
+ const s = state();
385
+ const p = props();
386
+ if (p.allowsSorting) s.sort(p.node.key);
387
+ };
388
+ const clearPendingClickIgnore = () => {
389
+ if (ignoreNextClickTimeout != null) {
390
+ clearTimeout(ignoreNextClickTimeout);
391
+ ignoreNextClickTimeout = void 0;
392
+ }
393
+ };
394
+ const ignorePointerGeneratedClick = () => {
395
+ clearPendingClickIgnore();
396
+ ignoreNextClick = true;
397
+ ignoreNextClickTimeout = setTimeout(() => {
398
+ ignoreNextClick = false;
399
+ ignoreNextClickTimeout = void 0;
400
+ }, 0);
401
+ };
402
+ const onClick = () => {
403
+ if (ignoreNextClick) {
404
+ ignoreNextClick = false;
405
+ clearPendingClickIgnore();
406
+ return;
407
+ }
408
+ sortColumn();
409
+ };
410
+ const onKeyDown = (e) => {
411
+ if (props().allowsSorting && (e.key === "Enter" || e.key === " " || e.key === "Space" || e.key === "Spacebar")) {
412
+ e.preventDefault();
413
+ sortColumn();
414
+ }
415
+ };
416
+ const onFocus = () => {
417
+ const s = state();
418
+ const p = props();
419
+ s.setFocusedKey(p.node.key);
420
+ };
421
+ const onPointerDown = (e) => {
422
+ if (e.button !== 0) return;
423
+ setIsPressed(true);
424
+ };
425
+ const onPointerUp = () => {
426
+ if (isPressed()) {
427
+ ignorePointerGeneratedClick();
428
+ sortColumn();
429
+ }
430
+ setIsPressed(false);
431
+ };
432
+ const onPointerCancel = () => {
433
+ setIsPressed(false);
434
+ };
435
+ const columnHeaderProps = createMemo(() => {
436
+ const s = state();
437
+ const p = props();
438
+ const node = p.node;
439
+ const tableData = getTableData(s);
440
+ let ariaSort = void 0;
441
+ if (p.allowsSorting) {
442
+ const sortDescriptor = s.sortDescriptor;
443
+ if (sortDescriptor?.column === node.key) ariaSort = sortDescriptor.direction;
444
+ else ariaSort = "none";
445
+ }
446
+ const baseProps = {
447
+ role: "columnheader",
448
+ id: tableData ? `${tableData.tableId}-${node.key}` : void 0,
449
+ "aria-sort": ariaSort,
450
+ tabIndex: isFocused() ? 0 : -1,
451
+ onFocus
452
+ };
453
+ if (p.allowsSorting) {
454
+ baseProps.onClick = onClick;
455
+ baseProps.onKeyDown = onKeyDown;
456
+ baseProps.onPointerDown = onPointerDown;
457
+ baseProps.onPointerUp = onPointerUp;
458
+ baseProps.onPointerCancel = onPointerCancel;
459
+ baseProps.onPointerLeave = onPointerCancel;
460
+ baseProps.style = { cursor: "pointer" };
461
+ }
462
+ if (p.isVirtualized && node.column != null) baseProps["aria-colindex"] = node.column + 1;
463
+ if (node.colspan != null && node.colspan > 1) {
464
+ baseProps["aria-colspan"] = node.colspan;
465
+ baseProps.colSpan = node.colspan;
466
+ }
467
+ return baseProps;
468
+ });
469
+ return { get columnHeaderProps() {
470
+ return columnHeaderProps();
471
+ } };
472
+ }
473
+ //#endregion
474
+ //#region src/table/createTableRow.ts
475
+ /**
476
+ * createTableRow - Provides accessibility for a table row.
477
+ * Based on @react-aria/table/useTableRow.
478
+ */
479
+ /**
480
+ * Arrow keys that expand/collapse a tree-grid row, mirroring `@react-aria/table`.
481
+ * Direction is flipped under RTL.
482
+ */
483
+ const EXPANSION_KEYS = {
484
+ expand: {
485
+ ltr: "ArrowRight",
486
+ rtl: "ArrowLeft"
487
+ },
488
+ collapse: {
489
+ ltr: "ArrowLeft",
490
+ rtl: "ArrowRight"
491
+ }
492
+ };
493
+ /**
494
+ * Creates accessibility props for a table row.
495
+ */
496
+ function createTableRow(props, state, ref) {
497
+ const locale = useLocale();
498
+ createMemo(() => state().treeColumn != null);
499
+ const hasChildRows = createMemo(() => props().node.isExpandable ?? false);
500
+ const isExpanded = createMemo(() => {
501
+ const s = state();
502
+ if (s.treeColumn == null) return false;
503
+ return s.expandedKeys === "all" || s.expandedKeys.has(props().node.key);
504
+ });
505
+ const siblingInfo = createMemo(() => {
506
+ const s = state();
507
+ const node = props().node;
508
+ if (node.parentKey != null) {
509
+ const parent = s.collection.getItem(node.parentKey);
510
+ if (parent) {
511
+ const siblings = parent.childNodes.filter((n) => n.type === "item");
512
+ return {
513
+ posinset: node.index + 1,
514
+ setsize: siblings.length
515
+ };
516
+ }
517
+ }
518
+ const rootRows = s.collection.body.childNodes.filter((n) => n.type === "item");
519
+ const rootIndex = rootRows.findIndex((n) => n.key === node.key);
520
+ return {
521
+ posinset: rootIndex >= 0 ? rootIndex + 1 : node.index + 1,
522
+ setsize: rootRows.length
523
+ };
524
+ });
525
+ const isSelected = createMemo(() => {
526
+ const s = state();
527
+ const p = props();
528
+ return s.isSelected(p.node.key);
529
+ });
530
+ const selectableItem = createSelectableItem(() => {
531
+ const s = state();
532
+ const p = props();
533
+ const tableData = getTableData(s);
534
+ const onRowAction = tableData?.actions.onRowAction;
535
+ const hasAction = !!p.onAction || !!onRowAction || !!p.href;
536
+ return {
537
+ key: p.node.key,
538
+ id: `${tableData?.tableId ?? "table"}-row-${String(p.node.key)}`,
539
+ isVirtualized: p.isVirtualized,
540
+ shouldSelectOnPressUp: tableData?.shouldSelectOnPressUp ?? false,
541
+ isDisabled: !!p.isDisabled || s.collection.size === 0,
542
+ onAction: hasAction ? (event) => {
543
+ p.onAction?.();
544
+ onRowAction?.(p.node.key);
545
+ if (p.href) p.onLinkAction?.(event);
546
+ } : void 0
547
+ };
548
+ }, {
549
+ collection: () => state().collection,
550
+ isFocused: () => state().isFocused,
551
+ setFocused: (focused) => state().setFocused(focused),
552
+ focusedKey: () => state().focusedKey,
553
+ childFocusStrategy: () => state().childFocusStrategy,
554
+ setFocusedKey: (key, strategy) => state().setFocusedKey(key, strategy),
555
+ selectionMode: () => state().selectionMode,
556
+ selectionBehavior: () => state().selectionBehavior,
557
+ disallowEmptySelection: () => state().disallowEmptySelection,
558
+ selectedKeys: () => state().selectedKeys,
559
+ disabledKeys: () => state().disabledKeys,
560
+ disabledBehavior: () => state().disabledBehavior,
561
+ isEmpty: () => {
562
+ const keys = state().selectedKeys;
563
+ return keys !== "all" && keys.size === 0;
564
+ },
565
+ isSelectAll: () => state().selectedKeys === "all",
566
+ isSelected: (key) => state().isSelected(key),
567
+ isDisabled: (key) => {
568
+ const s = state();
569
+ const item = s.collection.getItem(key);
570
+ return s.disabledBehavior === "all" && s.isDisabled(key) && item?.props?.disabledBehavior !== "selection";
571
+ },
572
+ canSelectItem: (key) => {
573
+ const s = state();
574
+ return s.selectionMode !== "none" && !s.isDisabled(key);
575
+ },
576
+ setSelectionBehavior: (behavior) => state().setSelectionBehavior(behavior),
577
+ toggleSelection: (key) => state().toggleSelection(key),
578
+ replaceSelection: (key) => state().replaceSelection(key),
579
+ setSelectedKeys: (keys) => state().setSelectedKeys(keys),
580
+ selectAll: () => state().selectAll(),
581
+ clearSelection: () => state().clearSelection(),
582
+ toggleSelectAll: () => state().toggleSelectAll(),
583
+ extendSelection: (toKey, _collection) => state().extendSelection(toKey)
584
+ }, ref);
585
+ const isDisabled = () => selectableItem.isDisabled();
586
+ const onTreeGridKeyDown = (e) => {
587
+ const s = state();
588
+ const p = props();
589
+ if (isDisabled()) return;
590
+ if (s.treeColumn != null) {
591
+ const direction = locale().direction === "rtl" ? "rtl" : "ltr";
592
+ const key = p.node.key;
593
+ const expanded = s.expandedKeys;
594
+ if (e.key === EXPANSION_KEYS.expand[direction] && s.focusedKey === key && hasChildRows() && expanded !== "all" && !expanded.has(key)) {
595
+ s.toggleKey(key);
596
+ e.stopPropagation();
597
+ return;
598
+ } else if (e.key === EXPANSION_KEYS.collapse[direction] && s.focusedKey === key) if (expanded !== "all") {
599
+ if (hasChildRows() && expanded.has(key)) {
600
+ s.toggleKey(key);
601
+ e.stopPropagation();
602
+ return;
603
+ } else if (!expanded.has(key) && p.node.parentKey != null && p.node.level > 0) {
604
+ s.setFocusedKey(p.node.parentKey);
605
+ e.stopPropagation();
606
+ return;
607
+ }
608
+ } else {
609
+ s.toggleKey(key);
610
+ e.stopPropagation();
611
+ return;
612
+ }
613
+ }
614
+ };
615
+ const rowProps = createMemo(() => {
616
+ const s = state();
617
+ const p = props();
618
+ const node = p.node;
619
+ const baseProps = {
620
+ role: "row",
621
+ "aria-selected": s.selectionMode !== "none" ? isSelected() : void 0,
622
+ "aria-disabled": isDisabled() || void 0
623
+ };
624
+ if (s.treeColumn != null) {
625
+ const { posinset, setsize } = siblingInfo();
626
+ baseProps["aria-expanded"] = hasChildRows() ? isExpanded() : void 0;
627
+ baseProps["aria-level"] = node.level + 1;
628
+ baseProps["aria-posinset"] = posinset;
629
+ baseProps["aria-setsize"] = setsize;
630
+ baseProps.onKeyDown = onTreeGridKeyDown;
631
+ }
632
+ if (p.isVirtualized && s.treeColumn == null && node.rowIndex != null) baseProps["aria-rowindex"] = node.rowIndex + 1;
633
+ return mergeProps(selectableItem.itemProps, baseProps);
634
+ });
635
+ const onExpandPress = () => {
636
+ const s = state();
637
+ const p = props();
638
+ if (isDisabled()) return;
639
+ s.toggleKey(p.node.key);
640
+ s.setFocused(true);
641
+ s.setFocusedKey(p.node.key);
642
+ };
643
+ const expandButtonProps = createMemo(() => ({
644
+ isDisabled: isDisabled(),
645
+ onPress: onExpandPress,
646
+ excludeFromTabOrder: true,
647
+ preventFocusOnPress: true,
648
+ "data-react-aria-prevent-focus": true,
649
+ "aria-label": isExpanded() ? "Collapse" : "Expand"
650
+ }));
651
+ return {
652
+ get rowProps() {
653
+ return rowProps();
654
+ },
655
+ get expandButtonProps() {
656
+ return expandButtonProps();
657
+ },
658
+ get isSelected() {
659
+ return isSelected();
660
+ },
661
+ get isDisabled() {
662
+ return isDisabled();
663
+ },
664
+ get isPressed() {
665
+ return selectableItem.isPressed();
666
+ },
667
+ get isExpanded() {
668
+ return isExpanded();
669
+ },
670
+ get hasChildRows() {
671
+ return hasChildRows();
672
+ }
673
+ };
674
+ }
675
+ //#endregion
676
+ //#region src/table/createTableCell.ts
677
+ /**
678
+ * createTableCell - Provides accessibility for a table cell.
679
+ * Based on @react-aria/table/useTableCell.
680
+ */
681
+ /**
682
+ * Creates accessibility props for a table cell.
683
+ */
684
+ function createTableCell(props, state, _ref) {
685
+ const [isPressed, setIsPressed] = createSignal(false);
686
+ const isDisabled = createMemo(() => {
687
+ const s = state();
688
+ const node = props().node;
689
+ if (node.parentKey != null) return s.isDisabled(node.parentKey);
690
+ return false;
691
+ });
692
+ const isFocused = createMemo(() => {
693
+ const s = state();
694
+ const p = props();
695
+ return s.focusedKey === p.node.key;
696
+ });
697
+ const onClick = () => {
698
+ const s = state();
699
+ const p = props();
700
+ if (isDisabled()) return;
701
+ const onCellAction = getTableData(s)?.actions.onCellAction;
702
+ if (onCellAction) onCellAction(p.node.key);
703
+ if (p.onAction) p.onAction();
704
+ };
705
+ const onKeyDown = (e) => {
706
+ const s = state();
707
+ const p = props();
708
+ if (isDisabled()) return;
709
+ if (e.key === "Enter") {
710
+ const onCellAction = getTableData(s)?.actions.onCellAction;
711
+ if (onCellAction || p.onAction) {
712
+ e.preventDefault();
713
+ if (onCellAction) onCellAction(p.node.key);
714
+ if (p.onAction) p.onAction();
715
+ }
716
+ }
717
+ };
718
+ const onFocus = () => {
719
+ const s = state();
720
+ const p = props();
721
+ s.setFocusedKey(p.node.key);
722
+ };
723
+ const onPointerDown = () => {
724
+ setIsPressed(true);
725
+ };
726
+ const onPointerUp = () => {
727
+ setIsPressed(false);
728
+ };
729
+ const gridCellProps = createMemo(() => {
730
+ const s = state();
731
+ const p = props();
732
+ const node = p.node;
733
+ const tableData = getTableData(s);
734
+ let role = "gridcell";
735
+ if (node.type === "rowheader") role = "rowheader";
736
+ const baseProps = {
737
+ role,
738
+ id: tableData && node.parentKey != null ? `${tableData.tableId}-${node.parentKey}-${node.key}` : void 0,
739
+ "aria-disabled": isDisabled() || void 0,
740
+ tabIndex: isFocused() ? 0 : -1,
741
+ onClick,
742
+ onKeyDown,
743
+ onFocus,
744
+ onPointerDown,
745
+ onPointerUp
746
+ };
747
+ if (p.isVirtualized && node.column != null) baseProps["aria-colindex"] = node.column + 1;
748
+ if (node.colspan != null && node.colspan > 1) {
749
+ baseProps["aria-colspan"] = node.colspan;
750
+ baseProps.colSpan = node.colspan;
751
+ }
752
+ return baseProps;
753
+ });
754
+ return {
755
+ get gridCellProps() {
756
+ return gridCellProps();
757
+ },
758
+ get isPressed() {
759
+ return isPressed();
760
+ }
761
+ };
762
+ }
763
+ //#endregion
764
+ //#region src/table/createTableRowGroup.ts
765
+ /**
766
+ * createTableRowGroup - Provides accessibility for a table row group.
767
+ * Based on @react-aria/grid/useTableRowGroup.
768
+ */
769
+ /**
770
+ * Creates accessibility props for a table row group (thead, tbody, tfoot).
771
+ */
772
+ function createTableRowGroup(props) {
773
+ const rowGroupProps = createMemo(() => {
774
+ props();
775
+ return { role: "rowgroup" };
776
+ });
777
+ return { get rowGroupProps() {
778
+ return rowGroupProps();
779
+ } };
780
+ }
781
+ //#endregion
782
+ //#region src/table/createTableSelectionCheckbox.ts
783
+ /**
784
+ * createTableSelectionCheckbox - Provides accessibility for a table row selection checkbox.
785
+ * Based on @react-aria/table/useTableSelectionCheckbox.
786
+ */
787
+ /**
788
+ * Creates accessibility props for a table row selection checkbox.
789
+ */
790
+ function createTableSelectionCheckbox(props, state) {
791
+ const checkboxId = createId();
792
+ const isSelected = createMemo(() => {
793
+ const s = state();
794
+ const p = props();
795
+ return s.isSelected(p.key);
796
+ });
797
+ const isDisabled = createMemo(() => {
798
+ const s = state();
799
+ const p = props();
800
+ return s.isDisabled(p.key);
801
+ });
802
+ const onChange = () => {
803
+ const s = state();
804
+ const p = props();
805
+ if (!isDisabled()) s.toggleSelection(p.key);
806
+ };
807
+ const checkboxProps = createMemo(() => {
808
+ return {
809
+ id: checkboxId,
810
+ type: "checkbox",
811
+ checked: isSelected(),
812
+ disabled: isDisabled(),
813
+ onChange,
814
+ "aria-label": "Select"
815
+ };
816
+ });
817
+ return { get checkboxProps() {
818
+ return checkboxProps();
819
+ } };
820
+ }
821
+ //#endregion
822
+ //#region src/table/createTableSelectAllCheckbox.ts
823
+ /**
824
+ * createTableSelectAllCheckbox - Provides accessibility for a table select-all checkbox.
825
+ * Based on @react-aria/table/useTableSelectAllCheckbox.
826
+ */
827
+ /**
828
+ * Creates accessibility props for a table select-all checkbox.
829
+ */
830
+ function createTableSelectAllCheckbox(state) {
831
+ const isSelectAll = createMemo(() => {
832
+ return state().selectedKeys === "all";
833
+ });
834
+ const isEmpty = createMemo(() => {
835
+ return state().collection.size === 0;
836
+ });
837
+ const isIndeterminate = createMemo(() => {
838
+ const s = state();
839
+ const selectedKeys = s.selectedKeys;
840
+ if (selectedKeys === "all") return false;
841
+ if (selectedKeys.size === 0) return false;
842
+ return selectedKeys.size < s.collection.size;
843
+ });
844
+ const isDisabled = createMemo(() => {
845
+ return state().selectionMode !== "multiple" || isEmpty();
846
+ });
847
+ const onChange = () => {
848
+ const s = state();
849
+ if (!isDisabled()) s.toggleSelectAll();
850
+ };
851
+ const checkboxProps = createMemo(() => {
852
+ const s = state();
853
+ const baseProps = {
854
+ type: "checkbox",
855
+ checked: isSelectAll(),
856
+ disabled: isDisabled(),
857
+ onChange,
858
+ "aria-label": s.selectionMode === "single" ? "Select" : "Select All"
859
+ };
860
+ if (isIndeterminate()) baseProps["data-indeterminate"] = "true";
861
+ return baseProps;
862
+ });
863
+ return {
864
+ get checkboxProps() {
865
+ return checkboxProps();
866
+ },
867
+ get isIndeterminate() {
868
+ return isIndeterminate();
869
+ }
870
+ };
871
+ }
872
+ //#endregion
873
+ //#region src/table/createTableColumnResize.ts
874
+ /**
875
+ * ARIA hook for table column resize interactions.
876
+ * Based on @react-aria/table/useTableColumnResize.
877
+ *
878
+ * Provides pointer-drag and keyboard-based column resizing with
879
+ * correct ARIA attributes for screen readers.
880
+ */
881
+ const KEYBOARD_STEP = 10;
882
+ /**
883
+ * Creates ARIA-compliant column resize behavior.
884
+ *
885
+ * Returns props for a visible drag handle (div) and a visually-hidden
886
+ * range input that allows keyboard and screen-reader users to resize columns.
887
+ */
888
+ function createTableColumnResize(props, state) {
889
+ const getProps = () => props();
890
+ const getState = () => state();
891
+ const locale = useLocale();
892
+ const [isPointerDragging, setIsPointerDragging] = createSignal(false);
893
+ const [isKeyboardResizing, setIsKeyboardResizing] = createSignal(false);
894
+ const isResizing = createMemo(() => getState().resizingColumn() === getProps().column.key);
895
+ const isRtl = createMemo(() => {
896
+ return locale()?.direction === "rtl";
897
+ });
898
+ let startX = 0;
899
+ let startWidth = 0;
900
+ const onPointerDown = (e) => {
901
+ if (getProps().isDisabled) return;
902
+ e.preventDefault();
903
+ e.stopPropagation();
904
+ const key = getProps().column.key;
905
+ startX = e.clientX;
906
+ startWidth = getState().getColumnWidth(key);
907
+ getState().startResize(key);
908
+ getProps().onResizeStart?.(getState().columnWidths());
909
+ setIsPointerDragging(true);
910
+ e.currentTarget.setPointerCapture(e.pointerId);
911
+ };
912
+ const onPointerMove = (e) => {
913
+ if (!isPointerDragging()) return;
914
+ e.preventDefault();
915
+ const deltaX = e.clientX - startX;
916
+ const direction = isRtl() ? -1 : 1;
917
+ const newWidth = startWidth + deltaX * direction;
918
+ const key = getProps().column.key;
919
+ const widths = getState().updateResizedColumns(key, newWidth);
920
+ getProps().onResize?.(widths);
921
+ };
922
+ const onPointerUp = (e) => {
923
+ if (!isPointerDragging()) return;
924
+ e.preventDefault();
925
+ setIsPointerDragging(false);
926
+ getState().endResize();
927
+ getProps().onResizeEnd?.(getState().columnWidths());
928
+ };
929
+ const onKeyDown = (e) => {
930
+ if (getProps().isDisabled) return;
931
+ const key = getProps().column.key;
932
+ const rtlMul = isRtl() ? -1 : 1;
933
+ switch (e.key) {
934
+ case "Enter":
935
+ if (isKeyboardResizing()) {
936
+ setIsKeyboardResizing(false);
937
+ getState().endResize();
938
+ getProps().onResizeEnd?.(getState().columnWidths());
939
+ } else {
940
+ setIsKeyboardResizing(true);
941
+ getState().startResize(key);
942
+ getProps().onResizeStart?.(getState().columnWidths());
943
+ }
944
+ e.preventDefault();
945
+ break;
946
+ case "Escape":
947
+ if (isKeyboardResizing()) {
948
+ setIsKeyboardResizing(false);
949
+ getState().endResize();
950
+ getProps().onResizeEnd?.(getState().columnWidths());
951
+ e.preventDefault();
952
+ }
953
+ break;
954
+ case "Tab":
955
+ if (isKeyboardResizing()) {
956
+ setIsKeyboardResizing(false);
957
+ getState().endResize();
958
+ getProps().onResizeEnd?.(getState().columnWidths());
959
+ }
960
+ break;
961
+ case "ArrowRight":
962
+ if (isKeyboardResizing()) {
963
+ const currentWidth = getState().getColumnWidth(key);
964
+ const widths = getState().updateResizedColumns(key, currentWidth + KEYBOARD_STEP * rtlMul);
965
+ getProps().onResize?.(widths);
966
+ e.preventDefault();
967
+ }
968
+ break;
969
+ case "ArrowLeft":
970
+ if (isKeyboardResizing()) {
971
+ const currentWidth = getState().getColumnWidth(key);
972
+ const widths = getState().updateResizedColumns(key, currentWidth - KEYBOARD_STEP * rtlMul);
973
+ getProps().onResize?.(widths);
974
+ e.preventDefault();
975
+ }
976
+ break;
977
+ }
978
+ };
979
+ const onInputChange = (e) => {
980
+ const input = e.target;
981
+ const newWidth = parseFloat(input.value);
982
+ if (isNaN(newWidth)) return;
983
+ const key = getProps().column.key;
984
+ if (!isResizing()) {
985
+ getState().startResize(key);
986
+ getProps().onResizeStart?.(getState().columnWidths());
987
+ }
988
+ const widths = getState().updateResizedColumns(key, newWidth);
989
+ getProps().onResize?.(widths);
990
+ getState().endResize();
991
+ getProps().onResizeEnd?.(getState().columnWidths());
992
+ };
993
+ return {
994
+ resizerProps: {
995
+ role: "presentation",
996
+ tabIndex: -1,
997
+ style: {
998
+ "touch-action": "none",
999
+ cursor: "col-resize"
1000
+ },
1001
+ onPointerDown,
1002
+ onPointerMove,
1003
+ onPointerUp
1004
+ },
1005
+ inputProps: {
1006
+ get type() {
1007
+ return "range";
1008
+ },
1009
+ get tabIndex() {
1010
+ return getProps().isDisabled ? -1 : 0;
1011
+ },
1012
+ get disabled() {
1013
+ return getProps().isDisabled;
1014
+ },
1015
+ get "aria-label"() {
1016
+ return getProps()["aria-label"];
1017
+ },
1018
+ get "aria-orientation"() {
1019
+ return "horizontal";
1020
+ },
1021
+ get min() {
1022
+ return getState().getColumnMinWidth(getProps().column.key);
1023
+ },
1024
+ get max() {
1025
+ const maxW = getState().getColumnMaxWidth(getProps().column.key);
1026
+ return maxW === Infinity ? 9999 : maxW;
1027
+ },
1028
+ get value() {
1029
+ return getState().getColumnWidth(getProps().column.key);
1030
+ },
1031
+ style: {
1032
+ position: "absolute",
1033
+ width: "1px",
1034
+ height: "1px",
1035
+ padding: "0",
1036
+ margin: "-1px",
1037
+ overflow: "hidden",
1038
+ clip: "rect(0, 0, 0, 0)",
1039
+ "white-space": "nowrap",
1040
+ "border-width": "0"
1041
+ },
1042
+ onKeyDown,
1043
+ onChange: onInputChange
1044
+ },
1045
+ isResizing
1046
+ };
1047
+ }
1048
+ //#endregion
1049
+ export { createTableCell as a, createTableHeaderRow as c, createTableRowGroup as i, createTable as l, createTableSelectAllCheckbox as n, createTableRow as o, createTableSelectionCheckbox as r, createTableColumnHeader as s, createTableColumnResize as t, getTableData as u };
1050
+
1051
+ //# sourceMappingURL=table.js.map