@economic/taco 12.0.0 → 14.0.0-tanstack-virtual-update.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 (653) hide show
  1. package/dist/charts/components/Area/AreaChart.cjs.map +1 -1
  2. package/dist/charts/components/Area/AreaChart.js.map +1 -1
  3. package/dist/charts/components/Bar/BarChart.cjs.map +1 -1
  4. package/dist/charts/components/Bar/BarChart.js.map +1 -1
  5. package/dist/charts/components/Composed/BarLineChart.cjs.map +1 -1
  6. package/dist/charts/components/Composed/BarLineChart.js.map +1 -1
  7. package/dist/charts/components/Donut/DonutChart.cjs +1 -1
  8. package/dist/charts/components/Donut/DonutChart.cjs.map +1 -1
  9. package/dist/charts/components/Donut/DonutChart.js +1 -1
  10. package/dist/charts/components/Donut/DonutChart.js.map +1 -1
  11. package/dist/charts/components/LegacyDonut/ActiveShape.cjs.map +1 -1
  12. package/dist/charts/components/LegacyDonut/ActiveShape.js.map +1 -1
  13. package/dist/charts/components/LegacyDonut/LegacyDonutChart.cjs.map +1 -1
  14. package/dist/charts/components/LegacyDonut/LegacyDonutChart.js.map +1 -1
  15. package/dist/charts/components/LegacyDonut/Legend.cjs.map +1 -1
  16. package/dist/charts/components/LegacyDonut/Legend.js.map +1 -1
  17. package/dist/charts/components/Legend.cjs +3 -3
  18. package/dist/charts/components/Legend.cjs.map +1 -1
  19. package/dist/charts/components/Legend.js +3 -3
  20. package/dist/charts/components/Legend.js.map +1 -1
  21. package/dist/charts/components/Line/LineChart.cjs.map +1 -1
  22. package/dist/charts/components/Line/LineChart.js.map +1 -1
  23. package/dist/charts/components/Pie/PieChart.cjs.map +1 -1
  24. package/dist/charts/components/Pie/PieChart.js.map +1 -1
  25. package/dist/charts/components/useChartData.cjs +1 -1
  26. package/dist/charts/components/useChartData.cjs.map +1 -1
  27. package/dist/charts/components/useChartData.js +1 -1
  28. package/dist/charts/components/useChartData.js.map +1 -1
  29. package/dist/charts/utils/color.cjs.map +1 -1
  30. package/dist/charts/utils/color.js.map +1 -1
  31. package/dist/charts/utils/common.cjs.map +1 -1
  32. package/dist/charts/utils/common.d.ts +1 -1
  33. package/dist/charts/utils/common.js.map +1 -1
  34. package/dist/components/Accordion/Accordion.cjs.map +1 -1
  35. package/dist/components/Accordion/Accordion.js.map +1 -1
  36. package/dist/components/Actions/Button/Button.cjs +2 -2
  37. package/dist/components/Actions/Button/Button.cjs.map +1 -1
  38. package/dist/components/Actions/Button/Button.d.ts +2 -2
  39. package/dist/components/Actions/Button/Button.js +2 -2
  40. package/dist/components/Actions/Button/Button.js.map +1 -1
  41. package/dist/components/Actions/Link/Link.cjs.map +1 -1
  42. package/dist/components/Actions/Link/Link.js.map +1 -1
  43. package/dist/components/Actions/LinkButton/LinkButton.cjs +1 -1
  44. package/dist/components/Actions/LinkButton/LinkButton.cjs.map +1 -1
  45. package/dist/components/Actions/LinkButton/LinkButton.d.ts +2 -2
  46. package/dist/components/Actions/LinkButton/LinkButton.js +1 -1
  47. package/dist/components/Actions/LinkButton/LinkButton.js.map +1 -1
  48. package/dist/components/Alert/Alert.cjs.map +1 -1
  49. package/dist/components/Alert/Alert.js.map +1 -1
  50. package/dist/components/AlertDialog/components/Content.cjs +2 -2
  51. package/dist/components/AlertDialog/components/Content.cjs.map +1 -1
  52. package/dist/components/AlertDialog/components/Content.js +2 -2
  53. package/dist/components/AlertDialog/components/Content.js.map +1 -1
  54. package/dist/components/AlertDialog/components/Trigger.cjs.map +1 -1
  55. package/dist/components/AlertDialog/components/Trigger.js.map +1 -1
  56. package/dist/components/Backdrop/Backdrop.cjs.map +1 -1
  57. package/dist/components/Backdrop/Backdrop.js.map +1 -1
  58. package/dist/components/Badge/Badge.cjs +1 -1
  59. package/dist/components/Badge/Badge.cjs.map +1 -1
  60. package/dist/components/Badge/Badge.js +1 -1
  61. package/dist/components/Badge/Badge.js.map +1 -1
  62. package/dist/components/BadgeIcon/BadgeIcon.cjs.map +1 -1
  63. package/dist/components/BadgeIcon/BadgeIcon.d.ts +1 -1
  64. package/dist/components/BadgeIcon/BadgeIcon.js.map +1 -1
  65. package/dist/components/Banner/Banner.cjs +2 -2
  66. package/dist/components/Banner/Banner.cjs.map +1 -1
  67. package/dist/components/Banner/Banner.js +2 -2
  68. package/dist/components/Banner/Banner.js.map +1 -1
  69. package/dist/components/Banner/util.cjs.map +1 -1
  70. package/dist/components/Banner/util.js.map +1 -1
  71. package/dist/components/Calendar/Calendar.cjs +2 -2
  72. package/dist/components/Calendar/Calendar.cjs.map +1 -1
  73. package/dist/components/Calendar/Calendar.js +2 -2
  74. package/dist/components/Calendar/Calendar.js.map +1 -1
  75. package/dist/components/Card/Card.cjs +2 -2
  76. package/dist/components/Card/Card.cjs.map +1 -1
  77. package/dist/components/Card/Card.d.ts +1 -1
  78. package/dist/components/Card/Card.js +2 -2
  79. package/dist/components/Card/Card.js.map +1 -1
  80. package/dist/components/Checkbox/Checkbox.cjs.map +1 -1
  81. package/dist/components/Checkbox/Checkbox.js.map +1 -1
  82. package/dist/components/Combobox/Combobox.cjs +4 -4
  83. package/dist/components/Combobox/Combobox.cjs.map +1 -1
  84. package/dist/components/Combobox/Combobox.d.ts +1 -2
  85. package/dist/components/Combobox/Combobox.js +4 -4
  86. package/dist/components/Combobox/Combobox.js.map +1 -1
  87. package/dist/components/Combobox/useCombobox.cjs +3 -3
  88. package/dist/components/Combobox/useCombobox.cjs.map +1 -1
  89. package/dist/components/Combobox/useCombobox.d.ts +1 -1
  90. package/dist/components/Combobox/useCombobox.js +3 -3
  91. package/dist/components/Combobox/useCombobox.js.map +1 -1
  92. package/dist/components/Datepicker/Datepicker.cjs +3 -3
  93. package/dist/components/Datepicker/Datepicker.cjs.map +1 -1
  94. package/dist/components/Datepicker/Datepicker.d.ts +1 -2
  95. package/dist/components/Datepicker/Datepicker.js +3 -3
  96. package/dist/components/Datepicker/Datepicker.js.map +1 -1
  97. package/dist/components/Datepicker/useDatepicker.cjs.map +1 -1
  98. package/dist/components/Datepicker/useDatepicker.d.ts +1 -2
  99. package/dist/components/Datepicker/useDatepicker.js.map +1 -1
  100. package/dist/components/Dialog/components/Content.cjs +3 -3
  101. package/dist/components/Dialog/components/Content.cjs.map +1 -1
  102. package/dist/components/Dialog/components/Content.js +3 -3
  103. package/dist/components/Dialog/components/Content.js.map +1 -1
  104. package/dist/components/Dialog/components/Trigger.cjs.map +1 -1
  105. package/dist/components/Dialog/components/Trigger.js.map +1 -1
  106. package/dist/components/Drawer/Drawer.cjs.map +1 -1
  107. package/dist/components/Drawer/Drawer.d.ts +1 -1
  108. package/dist/components/Drawer/Drawer.js.map +1 -1
  109. package/dist/components/Drawer/components/Content.cjs +3 -3
  110. package/dist/components/Drawer/components/Content.cjs.map +1 -1
  111. package/dist/components/Drawer/components/Content.js +3 -3
  112. package/dist/components/Drawer/components/Content.js.map +1 -1
  113. package/dist/components/Field/Field.cjs +1 -1
  114. package/dist/components/Field/Field.cjs.map +1 -1
  115. package/dist/components/Field/Field.js +1 -1
  116. package/dist/components/Field/Field.js.map +1 -1
  117. package/dist/components/Form/Form.cjs.map +1 -1
  118. package/dist/components/Form/Form.d.ts +1 -1
  119. package/dist/components/Form/Form.js.map +1 -1
  120. package/dist/components/Group/Group.cjs.map +1 -1
  121. package/dist/components/Group/Group.d.ts +2 -1
  122. package/dist/components/Group/Group.js.map +1 -1
  123. package/dist/components/Hanger/Hanger.cjs +2 -2
  124. package/dist/components/Hanger/Hanger.cjs.map +1 -1
  125. package/dist/components/Hanger/Hanger.d.ts +1 -1
  126. package/dist/components/Hanger/Hanger.js +2 -2
  127. package/dist/components/Hanger/Hanger.js.map +1 -1
  128. package/dist/components/Header/components/Agreement/Badge.cjs.map +1 -1
  129. package/dist/components/Header/components/Agreement/Badge.js.map +1 -1
  130. package/dist/components/Header/components/Agreement/Display.cjs.map +1 -1
  131. package/dist/components/Header/components/Agreement/Display.js.map +1 -1
  132. package/dist/components/Header/components/Agreement/Item.cjs +1 -1
  133. package/dist/components/Header/components/Agreement/Item.cjs.map +1 -1
  134. package/dist/components/Header/components/Agreement/Item.js +1 -1
  135. package/dist/components/Header/components/Agreement/Item.js.map +1 -1
  136. package/dist/components/Header/components/AgreementSelector.cjs +3 -3
  137. package/dist/components/Header/components/AgreementSelector.cjs.map +1 -1
  138. package/dist/components/Header/components/AgreementSelector.js +3 -3
  139. package/dist/components/Header/components/AgreementSelector.js.map +1 -1
  140. package/dist/components/Header/components/Button.cjs.map +1 -1
  141. package/dist/components/Header/components/Button.d.ts +1 -1
  142. package/dist/components/Header/components/Button.js.map +1 -1
  143. package/dist/components/Header/components/Link.cjs +2 -2
  144. package/dist/components/Header/components/Link.cjs.map +1 -1
  145. package/dist/components/Header/components/Link.d.ts +1 -1
  146. package/dist/components/Header/components/Link.js +2 -2
  147. package/dist/components/Header/components/Link.js.map +1 -1
  148. package/dist/components/Header/components/MenuButton.cjs +1 -1
  149. package/dist/components/Header/components/MenuButton.cjs.map +1 -1
  150. package/dist/components/Header/components/MenuButton.js +1 -1
  151. package/dist/components/Header/components/MenuButton.js.map +1 -1
  152. package/dist/components/Header/components/PrimaryNavigation.cjs +3 -3
  153. package/dist/components/Header/components/PrimaryNavigation.cjs.map +1 -1
  154. package/dist/components/Header/components/PrimaryNavigation.js +3 -3
  155. package/dist/components/Header/components/PrimaryNavigation.js.map +1 -1
  156. package/dist/components/HoverCard/HoverCard.cjs.map +1 -1
  157. package/dist/components/HoverCard/HoverCard.d.ts +1 -1
  158. package/dist/components/HoverCard/HoverCard.js.map +1 -1
  159. package/dist/components/Inline/Inline.cjs +2 -6
  160. package/dist/components/Inline/Inline.cjs.map +1 -1
  161. package/dist/components/Inline/Inline.d.ts +1 -1
  162. package/dist/components/Inline/Inline.js +2 -6
  163. package/dist/components/Inline/Inline.js.map +1 -1
  164. package/dist/components/Input/Input.cjs +1 -1
  165. package/dist/components/Input/Input.cjs.map +1 -1
  166. package/dist/components/Input/Input.d.ts +1 -1
  167. package/dist/components/Input/Input.js +1 -1
  168. package/dist/components/Input/Input.js.map +1 -1
  169. package/dist/components/Layout/components/Sidebar.cjs.map +1 -1
  170. package/dist/components/Layout/components/Sidebar.js.map +1 -1
  171. package/dist/components/LegacyComponents/Button/Button.cjs +1 -1
  172. package/dist/components/LegacyComponents/Button/Button.cjs.map +1 -1
  173. package/dist/components/LegacyComponents/Button/Button.d.ts +3 -7
  174. package/dist/components/LegacyComponents/Button/Button.js +1 -1
  175. package/dist/components/LegacyComponents/Button/Button.js.map +1 -1
  176. package/dist/components/LegacyComponents/Button/util.cjs.map +1 -1
  177. package/dist/components/LegacyComponents/Button/util.js.map +1 -1
  178. package/dist/components/LegacyComponents/IconButton/IconButton.cjs +1 -1
  179. package/dist/components/LegacyComponents/IconButton/IconButton.cjs.map +1 -1
  180. package/dist/components/LegacyComponents/IconButton/IconButton.d.ts +4 -8
  181. package/dist/components/LegacyComponents/IconButton/IconButton.js +1 -1
  182. package/dist/components/LegacyComponents/IconButton/IconButton.js.map +1 -1
  183. package/dist/components/List/components/Collapsible.cjs +1 -1
  184. package/dist/components/List/components/Collapsible.cjs.map +1 -1
  185. package/dist/components/List/components/Collapsible.js +1 -1
  186. package/dist/components/List/components/Collapsible.js.map +1 -1
  187. package/dist/components/List/components/Item.cjs.map +1 -1
  188. package/dist/components/List/components/Item.d.ts +1 -1
  189. package/dist/components/List/components/Item.js.map +1 -1
  190. package/dist/components/List/components/Link.cjs +1 -1
  191. package/dist/components/List/components/Link.cjs.map +1 -1
  192. package/dist/components/List/components/Link.js +1 -1
  193. package/dist/components/List/components/Link.js.map +1 -1
  194. package/dist/components/List/components/Toggle.cjs +2 -2
  195. package/dist/components/List/components/Toggle.cjs.map +1 -1
  196. package/dist/components/List/components/Toggle.d.ts +1 -2
  197. package/dist/components/List/components/Toggle.js +2 -2
  198. package/dist/components/List/components/Toggle.js.map +1 -1
  199. package/dist/components/Listbox/Listbox.d.ts +2 -2
  200. package/dist/components/Listbox/ScrollableList.cjs +3 -3
  201. package/dist/components/Listbox/ScrollableList.cjs.map +1 -1
  202. package/dist/components/Listbox/ScrollableList.d.ts +1 -1
  203. package/dist/components/Listbox/ScrollableList.js +3 -3
  204. package/dist/components/Listbox/ScrollableList.js.map +1 -1
  205. package/dist/components/Listbox/useListbox.cjs.map +1 -1
  206. package/dist/components/Listbox/useListbox.js.map +1 -1
  207. package/dist/components/Listbox/useMultiListbox.cjs +1 -1
  208. package/dist/components/Listbox/useMultiListbox.cjs.map +1 -1
  209. package/dist/components/Listbox/useMultiListbox.js +1 -1
  210. package/dist/components/Listbox/useMultiListbox.js.map +1 -1
  211. package/dist/components/Listbox/useTypeahead.cjs.map +1 -1
  212. package/dist/components/Listbox/useTypeahead.js.map +1 -1
  213. package/dist/components/Listbox/util.cjs.map +1 -1
  214. package/dist/components/Listbox/util.js.map +1 -1
  215. package/dist/components/Menu/Menu.cjs.map +1 -1
  216. package/dist/components/Menu/Menu.js.map +1 -1
  217. package/dist/components/Menu/components/Checkbox.cjs +1 -1
  218. package/dist/components/Menu/components/Checkbox.cjs.map +1 -1
  219. package/dist/components/Menu/components/Checkbox.js +1 -1
  220. package/dist/components/Menu/components/Checkbox.js.map +1 -1
  221. package/dist/components/Menu/components/Content.cjs.map +1 -1
  222. package/dist/components/Menu/components/Content.js.map +1 -1
  223. package/dist/components/Menu/components/Item.cjs +1 -1
  224. package/dist/components/Menu/components/Item.cjs.map +1 -1
  225. package/dist/components/Menu/components/Item.d.ts +1 -2
  226. package/dist/components/Menu/components/Item.js +1 -1
  227. package/dist/components/Menu/components/Item.js.map +1 -1
  228. package/dist/components/Menu/components/Link.cjs.map +1 -1
  229. package/dist/components/Menu/components/Link.d.ts +1 -1
  230. package/dist/components/Menu/components/Link.js.map +1 -1
  231. package/dist/components/Menu/components/RadioGroup.cjs.map +1 -1
  232. package/dist/components/Menu/components/RadioGroup.d.ts +1 -1
  233. package/dist/components/Menu/components/RadioGroup.js.map +1 -1
  234. package/dist/components/Menu/components/SubMenu.cjs.map +1 -1
  235. package/dist/components/Menu/components/SubMenu.js.map +1 -1
  236. package/dist/components/Menu/components/Trigger.cjs.map +1 -1
  237. package/dist/components/Menu/components/Trigger.js.map +1 -1
  238. package/dist/components/Navigation2/components/Group.cjs.map +1 -1
  239. package/dist/components/Navigation2/components/Group.js.map +1 -1
  240. package/dist/components/Navigation2/components/Link.cjs +2 -2
  241. package/dist/components/Navigation2/components/Link.cjs.map +1 -1
  242. package/dist/components/Navigation2/components/Link.d.ts +1 -2
  243. package/dist/components/Navigation2/components/Link.js +2 -2
  244. package/dist/components/Navigation2/components/Link.js.map +1 -1
  245. package/dist/components/OverflowGroup/OverflowGroup.cjs +1 -1
  246. package/dist/components/OverflowGroup/OverflowGroup.cjs.map +1 -1
  247. package/dist/components/OverflowGroup/OverflowGroup.d.ts +1 -1
  248. package/dist/components/OverflowGroup/OverflowGroup.js +1 -1
  249. package/dist/components/OverflowGroup/OverflowGroup.js.map +1 -1
  250. package/dist/components/Pagination/PageNumbers.cjs +1 -1
  251. package/dist/components/Pagination/PageNumbers.cjs.map +1 -1
  252. package/dist/components/Pagination/PageNumbers.js +1 -1
  253. package/dist/components/Pagination/PageNumbers.js.map +1 -1
  254. package/dist/components/Pagination/Pagination.cjs +4 -4
  255. package/dist/components/Pagination/Pagination.cjs.map +1 -1
  256. package/dist/components/Pagination/Pagination.js +4 -4
  257. package/dist/components/Pagination/Pagination.js.map +1 -1
  258. package/dist/components/Popover/Popover.cjs.map +1 -1
  259. package/dist/components/Popover/Popover.d.ts +1 -1
  260. package/dist/components/Popover/Popover.js.map +1 -1
  261. package/dist/components/Provider/Localization.cjs.map +1 -1
  262. package/dist/components/Provider/Localization.d.ts +1 -1
  263. package/dist/components/Provider/Localization.js.map +1 -1
  264. package/dist/components/Provider/Provider.cjs +1 -1
  265. package/dist/components/Provider/Provider.cjs.map +1 -1
  266. package/dist/components/Provider/Provider.js +1 -1
  267. package/dist/components/Provider/Provider.js.map +1 -1
  268. package/dist/components/RadioGroup/RadioGroup.cjs +1 -1
  269. package/dist/components/RadioGroup/RadioGroup.cjs.map +1 -1
  270. package/dist/components/RadioGroup/RadioGroup.js +1 -1
  271. package/dist/components/RadioGroup/RadioGroup.js.map +1 -1
  272. package/dist/components/Report/Report.cjs.map +1 -1
  273. package/dist/components/Report/Report.js.map +1 -1
  274. package/dist/components/Report/useReport.cjs.map +1 -1
  275. package/dist/components/Report/useReport.js.map +1 -1
  276. package/dist/components/SearchInput/SearchInput.cjs +1 -1
  277. package/dist/components/SearchInput/SearchInput.cjs.map +1 -1
  278. package/dist/components/SearchInput/SearchInput.d.ts +5 -5
  279. package/dist/components/SearchInput/SearchInput.js +1 -1
  280. package/dist/components/SearchInput/SearchInput.js.map +1 -1
  281. package/dist/components/SearchInput2/SearchInput2.cjs +3 -3
  282. package/dist/components/SearchInput2/SearchInput2.cjs.map +1 -1
  283. package/dist/components/SearchInput2/SearchInput2.js +3 -3
  284. package/dist/components/SearchInput2/SearchInput2.js.map +1 -1
  285. package/dist/components/Select/Select.cjs +4 -4
  286. package/dist/components/Select/Select.cjs.map +1 -1
  287. package/dist/components/Select/Select.d.ts +5 -5
  288. package/dist/components/Select/Select.js +4 -4
  289. package/dist/components/Select/Select.js.map +1 -1
  290. package/dist/components/Select/useSelect.cjs +1 -1
  291. package/dist/components/Select/useSelect.cjs.map +1 -1
  292. package/dist/components/Select/useSelect.js +1 -1
  293. package/dist/components/Select/useSelect.js.map +1 -1
  294. package/dist/components/Select2/Select2.cjs +4 -4
  295. package/dist/components/Select2/Select2.cjs.map +1 -1
  296. package/dist/components/Select2/Select2.d.ts +2 -2
  297. package/dist/components/Select2/Select2.js +4 -4
  298. package/dist/components/Select2/Select2.js.map +1 -1
  299. package/dist/components/Select2/components/Collection.cjs.map +1 -1
  300. package/dist/components/Select2/components/Collection.js.map +1 -1
  301. package/dist/components/Select2/components/Context.cjs.map +1 -1
  302. package/dist/components/Select2/components/Context.js.map +1 -1
  303. package/dist/components/Select2/components/Create.cjs +4 -4
  304. package/dist/components/Select2/components/Create.cjs.map +1 -1
  305. package/dist/components/Select2/components/Create.js +4 -4
  306. package/dist/components/Select2/components/Create.js.map +1 -1
  307. package/dist/components/Select2/components/Edit.cjs +5 -5
  308. package/dist/components/Select2/components/Edit.cjs.map +1 -1
  309. package/dist/components/Select2/components/Edit.d.ts +1 -1
  310. package/dist/components/Select2/components/Edit.js +5 -5
  311. package/dist/components/Select2/components/Edit.js.map +1 -1
  312. package/dist/components/Select2/components/Group.cjs +1 -1
  313. package/dist/components/Select2/components/Group.cjs.map +1 -1
  314. package/dist/components/Select2/components/Group.js +1 -1
  315. package/dist/components/Select2/components/Group.js.map +1 -1
  316. package/dist/components/Select2/components/Option.cjs +4 -4
  317. package/dist/components/Select2/components/Option.cjs.map +1 -1
  318. package/dist/components/Select2/components/Option.d.ts +1 -1
  319. package/dist/components/Select2/components/Option.js +4 -4
  320. package/dist/components/Select2/components/Option.js.map +1 -1
  321. package/dist/components/Select2/components/Search.cjs +1 -1
  322. package/dist/components/Select2/components/Search.cjs.map +1 -1
  323. package/dist/components/Select2/components/Search.js +1 -1
  324. package/dist/components/Select2/components/Search.js.map +1 -1
  325. package/dist/components/Select2/components/Title.cjs.map +1 -1
  326. package/dist/components/Select2/components/Title.js.map +1 -1
  327. package/dist/components/Select2/components/Trigger.cjs +6 -6
  328. package/dist/components/Select2/components/Trigger.cjs.map +1 -1
  329. package/dist/components/Select2/components/Trigger.d.ts +1 -1
  330. package/dist/components/Select2/components/Trigger.js +6 -6
  331. package/dist/components/Select2/components/Trigger.js.map +1 -1
  332. package/dist/components/Select2/types.d.ts +1 -1
  333. package/dist/components/Select2/utilities.cjs.map +1 -1
  334. package/dist/components/Select2/utilities.js.map +1 -1
  335. package/dist/components/Shortcut/Shortcut.cjs.map +1 -1
  336. package/dist/components/Shortcut/Shortcut.js.map +1 -1
  337. package/dist/components/Stack/Stack.cjs +2 -6
  338. package/dist/components/Stack/Stack.cjs.map +1 -1
  339. package/dist/components/Stack/Stack.d.ts +1 -1
  340. package/dist/components/Stack/Stack.js +2 -6
  341. package/dist/components/Stack/Stack.js.map +1 -1
  342. package/dist/components/Switch/Switch.cjs.map +1 -1
  343. package/dist/components/Switch/Switch.js.map +1 -1
  344. package/dist/components/Table3/Table3.cjs +1 -3
  345. package/dist/components/Table3/Table3.cjs.map +1 -1
  346. package/dist/components/Table3/Table3.d.ts +1 -4
  347. package/dist/components/Table3/Table3.js +1 -3
  348. package/dist/components/Table3/Table3.js.map +1 -1
  349. package/dist/components/Table3/components/Columns/Cell/Cell.cjs.map +1 -1
  350. package/dist/components/Table3/components/Columns/Cell/Cell.js.map +1 -1
  351. package/dist/components/Table3/components/Columns/Cell/Editing/RowMoveIndicator.cjs +1 -1
  352. package/dist/components/Table3/components/Columns/Cell/Editing/RowMoveIndicator.cjs.map +1 -1
  353. package/dist/components/Table3/components/Columns/Cell/Editing/RowMoveIndicator.d.ts +1 -1
  354. package/dist/components/Table3/components/Columns/Cell/Editing/RowMoveIndicator.js +1 -1
  355. package/dist/components/Table3/components/Columns/Cell/Editing/RowMoveIndicator.js.map +1 -1
  356. package/dist/components/Table3/components/Columns/Cell/Editing/TextareaWithAutosizing.cjs.map +1 -1
  357. package/dist/components/Table3/components/Columns/Cell/Editing/TextareaWithAutosizing.js.map +1 -1
  358. package/dist/components/Table3/components/Columns/Cell/EditingControlCell.cjs +6 -6
  359. package/dist/components/Table3/components/Columns/Cell/EditingControlCell.cjs.map +1 -1
  360. package/dist/components/Table3/components/Columns/Cell/EditingControlCell.js +6 -6
  361. package/dist/components/Table3/components/Columns/Cell/EditingControlCell.js.map +1 -1
  362. package/dist/components/Table3/components/Columns/Cell/EditingDisplayCell.cjs.map +1 -1
  363. package/dist/components/Table3/components/Columns/Cell/EditingDisplayCell.js.map +1 -1
  364. package/dist/components/Table3/components/Columns/Cell/util.cjs.map +1 -1
  365. package/dist/components/Table3/components/Columns/Cell/util.js.map +1 -1
  366. package/dist/components/Table3/components/Editing/Alert.cjs +3 -3
  367. package/dist/components/Table3/components/Editing/Alert.cjs.map +1 -1
  368. package/dist/components/Table3/components/Editing/Alert.d.ts +1 -1
  369. package/dist/components/Table3/components/Editing/Alert.js +3 -3
  370. package/dist/components/Table3/components/Editing/Alert.js.map +1 -1
  371. package/dist/components/Table3/components/Editing/DiscardChangesConfirmationDialog.cjs +3 -3
  372. package/dist/components/Table3/components/Editing/DiscardChangesConfirmationDialog.cjs.map +1 -1
  373. package/dist/components/Table3/components/Editing/DiscardChangesConfirmationDialog.d.ts +1 -1
  374. package/dist/components/Table3/components/Editing/DiscardChangesConfirmationDialog.js +3 -3
  375. package/dist/components/Table3/components/Editing/DiscardChangesConfirmationDialog.js.map +1 -1
  376. package/dist/components/Table3/components/Row/Editing/CreateNewRow.cjs +2 -2
  377. package/dist/components/Table3/components/Row/Editing/CreateNewRow.cjs.map +1 -1
  378. package/dist/components/Table3/components/Row/Editing/CreateNewRow.js +2 -2
  379. package/dist/components/Table3/components/Row/Editing/CreateNewRow.js.map +1 -1
  380. package/dist/components/Table3/components/Row/Editing/SaveStatus.cjs +2 -2
  381. package/dist/components/Table3/components/Row/Editing/SaveStatus.cjs.map +1 -1
  382. package/dist/components/Table3/components/Row/Editing/SaveStatus.js +2 -2
  383. package/dist/components/Table3/components/Row/Editing/SaveStatus.js.map +1 -1
  384. package/dist/components/Table3/components/Row/Editing/TemporaryRow.cjs.map +1 -1
  385. package/dist/components/Table3/components/Row/Editing/TemporaryRow.js.map +1 -1
  386. package/dist/components/Table3/components/Row/Row.cjs.map +1 -1
  387. package/dist/components/Table3/components/Row/Row.js.map +1 -1
  388. package/dist/components/Table3/components/Toolbar/Editing/Editing.cjs +2 -2
  389. package/dist/components/Table3/components/Toolbar/Editing/Editing.cjs.map +1 -1
  390. package/dist/components/Table3/components/Toolbar/Editing/Editing.js +2 -2
  391. package/dist/components/Table3/components/Toolbar/Editing/Editing.js.map +1 -1
  392. package/dist/components/Table3/features/useEditingState.cjs +1 -1
  393. package/dist/components/Table3/features/useEditingState.cjs.map +1 -1
  394. package/dist/components/Table3/features/useEditingState.d.ts +18 -5
  395. package/dist/components/Table3/features/useEditingState.js +1 -1
  396. package/dist/components/Table3/features/useEditingState.js.map +1 -1
  397. package/dist/components/Table3/features/useTableEditing.cjs +1 -1
  398. package/dist/components/Table3/features/useTableEditing.cjs.map +1 -1
  399. package/dist/components/Table3/features/useTableEditing.d.ts +23 -6
  400. package/dist/components/Table3/features/useTableEditing.js +1 -1
  401. package/dist/components/Table3/features/useTableEditing.js.map +1 -1
  402. package/dist/components/Table3/listeners/useTableEditingListener.cjs +1 -1
  403. package/dist/components/Table3/listeners/useTableEditingListener.cjs.map +1 -1
  404. package/dist/components/Table3/listeners/useTableEditingListener.js +1 -1
  405. package/dist/components/Table3/listeners/useTableEditingListener.js.map +1 -1
  406. package/dist/components/Table3/useTable3.cjs +2 -2
  407. package/dist/components/Table3/useTable3.cjs.map +1 -1
  408. package/dist/components/Table3/useTable3.js +2 -2
  409. package/dist/components/Table3/useTable3.js.map +1 -1
  410. package/dist/components/Table3/util/editing.cjs.map +1 -1
  411. package/dist/components/Table3/util/editing.d.ts +2 -2
  412. package/dist/components/Table3/util/editing.js.map +1 -1
  413. package/dist/components/Tabs/Context.cjs.map +1 -1
  414. package/dist/components/Tabs/Context.js.map +1 -1
  415. package/dist/components/Tabs/Tabs.cjs.map +1 -1
  416. package/dist/components/Tabs/Tabs.js.map +1 -1
  417. package/dist/components/Tabs/components/TabList.cjs +2 -2
  418. package/dist/components/Tabs/components/TabList.cjs.map +1 -1
  419. package/dist/components/Tabs/components/TabList.js +2 -2
  420. package/dist/components/Tabs/components/TabList.js.map +1 -1
  421. package/dist/components/Tabs/components/Trigger.cjs +3 -3
  422. package/dist/components/Tabs/components/Trigger.cjs.map +1 -1
  423. package/dist/components/Tabs/components/Trigger.js +3 -3
  424. package/dist/components/Tabs/components/Trigger.js.map +1 -1
  425. package/dist/components/Tag/Tag.cjs.map +1 -1
  426. package/dist/components/Tag/Tag.d.ts +1 -1
  427. package/dist/components/Tag/Tag.js.map +1 -1
  428. package/dist/components/Textarea/Textarea.cjs +1 -1
  429. package/dist/components/Textarea/Textarea.cjs.map +1 -1
  430. package/dist/components/Textarea/Textarea.js +1 -1
  431. package/dist/components/Textarea/Textarea.js.map +1 -1
  432. package/dist/components/Toast/Toast.cjs +2 -2
  433. package/dist/components/Toast/Toast.cjs.map +1 -1
  434. package/dist/components/Toast/Toast.js +2 -2
  435. package/dist/components/Toast/Toast.js.map +1 -1
  436. package/dist/components/Toast/util.cjs +1 -1
  437. package/dist/components/Toast/util.cjs.map +1 -1
  438. package/dist/components/Toast/util.js +1 -1
  439. package/dist/components/Toast/util.js.map +1 -1
  440. package/dist/components/Tour/Tour.cjs +2 -2
  441. package/dist/components/Tour/Tour.cjs.map +1 -1
  442. package/dist/components/Tour/Tour.js +2 -2
  443. package/dist/components/Tour/Tour.js.map +1 -1
  444. package/dist/components/Truncate/Truncate.cjs.map +1 -1
  445. package/dist/components/Truncate/Truncate.js.map +1 -1
  446. package/dist/components/Typography/Heading.cjs.map +1 -1
  447. package/dist/components/Typography/Heading.d.ts +1 -1
  448. package/dist/components/Typography/Heading.js.map +1 -1
  449. package/dist/components/Typography/Text.cjs.map +1 -1
  450. package/dist/components/Typography/Text.d.ts +1 -1
  451. package/dist/components/Typography/Text.js.map +1 -1
  452. package/dist/components/index.d.ts +0 -1
  453. package/dist/hooks/useBoundaryOverflowDetection.cjs.map +1 -1
  454. package/dist/hooks/useBoundaryOverflowDetection.js.map +1 -1
  455. package/dist/hooks/useBoundingClientRectListener.cjs.map +1 -1
  456. package/dist/hooks/useBoundingClientRectListener.js.map +1 -1
  457. package/dist/hooks/useGlobalKeyDown.cjs.map +1 -1
  458. package/dist/hooks/useGlobalKeyDown.js.map +1 -1
  459. package/dist/hooks/useTacoSettings.cjs.map +1 -1
  460. package/dist/hooks/useTacoSettings.d.ts +1 -1
  461. package/dist/hooks/useTacoSettings.js.map +1 -1
  462. package/dist/index.cjs +0 -2
  463. package/dist/index.cjs.map +1 -1
  464. package/dist/index.js +0 -2
  465. package/dist/index.js.map +1 -1
  466. package/dist/primitives/BubbleSelect.cjs.map +1 -1
  467. package/dist/primitives/BubbleSelect.js.map +1 -1
  468. package/dist/primitives/Button.cjs.map +1 -1
  469. package/dist/primitives/Button.js.map +1 -1
  470. package/dist/primitives/Collection/components/Root.cjs.map +1 -1
  471. package/dist/primitives/Collection/components/Root.js.map +1 -1
  472. package/dist/primitives/Listbox2/components/Option.cjs.map +1 -1
  473. package/dist/primitives/Listbox2/components/Option.js.map +1 -1
  474. package/dist/primitives/Listbox2/components/Root.cjs.map +1 -1
  475. package/dist/primitives/Listbox2/components/Root.js.map +1 -1
  476. package/dist/primitives/Listbox2/components/Title.cjs.map +1 -1
  477. package/dist/primitives/Listbox2/components/Title.js.map +1 -1
  478. package/dist/primitives/Table/Core/components/Body/Body.cjs.map +1 -1
  479. package/dist/primitives/Table/Core/components/Body/Body.js.map +1 -1
  480. package/dist/primitives/Table/Core/components/Body/EmptyStateBody.cjs.map +1 -1
  481. package/dist/primitives/Table/Core/components/Body/EmptyStateBody.js.map +1 -1
  482. package/dist/primitives/Table/Core/components/Body/util.cjs.map +1 -1
  483. package/dist/primitives/Table/Core/components/Body/util.js.map +1 -1
  484. package/dist/primitives/Table/Core/components/Columns/Cell/BuiltIns/GroupedCell.cjs.map +1 -1
  485. package/dist/primitives/Table/Core/components/Columns/Cell/BuiltIns/GroupedCell.js.map +1 -1
  486. package/dist/primitives/Table/Core/components/Columns/Cell/util.cjs +1 -1
  487. package/dist/primitives/Table/Core/components/Columns/Cell/util.cjs.map +1 -1
  488. package/dist/primitives/Table/Core/components/Columns/Cell/util.d.ts +1 -1
  489. package/dist/primitives/Table/Core/components/Columns/Cell/util.js +1 -1
  490. package/dist/primitives/Table/Core/components/Columns/Cell/util.js.map +1 -1
  491. package/dist/primitives/Table/Core/components/Columns/Internal/Actions.cjs +3 -3
  492. package/dist/primitives/Table/Core/components/Columns/Internal/Actions.cjs.map +1 -1
  493. package/dist/primitives/Table/Core/components/Columns/Internal/Actions.js +3 -3
  494. package/dist/primitives/Table/Core/components/Columns/Internal/Actions.js.map +1 -1
  495. package/dist/primitives/Table/Core/components/Columns/Internal/Drag.cjs +2 -2
  496. package/dist/primitives/Table/Core/components/Columns/Internal/Drag.cjs.map +1 -1
  497. package/dist/primitives/Table/Core/components/Columns/Internal/Drag.js +2 -2
  498. package/dist/primitives/Table/Core/components/Columns/Internal/Drag.js.map +1 -1
  499. package/dist/primitives/Table/Core/components/Columns/Internal/Expansion.cjs +3 -3
  500. package/dist/primitives/Table/Core/components/Columns/Internal/Expansion.cjs.map +1 -1
  501. package/dist/primitives/Table/Core/components/Columns/Internal/Expansion.js +3 -3
  502. package/dist/primitives/Table/Core/components/Columns/Internal/Expansion.js.map +1 -1
  503. package/dist/primitives/Table/Core/components/Columns/Internal/Selection.cjs +4 -4
  504. package/dist/primitives/Table/Core/components/Columns/Internal/Selection.cjs.map +1 -1
  505. package/dist/primitives/Table/Core/components/Columns/Internal/Selection.js +4 -4
  506. package/dist/primitives/Table/Core/components/Columns/Internal/Selection.js.map +1 -1
  507. package/dist/primitives/Table/Core/components/Footer/Summary.cjs.map +1 -1
  508. package/dist/primitives/Table/Core/components/Footer/Summary.js.map +1 -1
  509. package/dist/primitives/Table/Core/components/Header/Header.cjs +1 -1
  510. package/dist/primitives/Table/Core/components/Header/Header.cjs.map +1 -1
  511. package/dist/primitives/Table/Core/components/Header/Header.js +1 -1
  512. package/dist/primitives/Table/Core/components/Header/Header.js.map +1 -1
  513. package/dist/primitives/Table/Core/components/Header/components/Goto.cjs +1 -1
  514. package/dist/primitives/Table/Core/components/Header/components/Goto.cjs.map +1 -1
  515. package/dist/primitives/Table/Core/components/Header/components/Goto.d.ts +1 -1
  516. package/dist/primitives/Table/Core/components/Header/components/Goto.js +1 -1
  517. package/dist/primitives/Table/Core/components/Header/components/Goto.js.map +1 -1
  518. package/dist/primitives/Table/Core/components/Header/components/Menu.cjs +4 -6
  519. package/dist/primitives/Table/Core/components/Header/components/Menu.cjs.map +1 -1
  520. package/dist/primitives/Table/Core/components/Header/components/Menu.js +4 -6
  521. package/dist/primitives/Table/Core/components/Header/components/Menu.js.map +1 -1
  522. package/dist/primitives/Table/Core/components/Header/components/Resizer.cjs.map +1 -1
  523. package/dist/primitives/Table/Core/components/Header/components/Resizer.js.map +1 -1
  524. package/dist/primitives/Table/Core/components/Header/components/SortIndicator.cjs.map +1 -1
  525. package/dist/primitives/Table/Core/components/Header/components/SortIndicator.js.map +1 -1
  526. package/dist/primitives/Table/Core/components/Row/BuiltIns/DisplayRow.cjs +3 -1
  527. package/dist/primitives/Table/Core/components/Row/BuiltIns/DisplayRow.cjs.map +1 -1
  528. package/dist/primitives/Table/Core/components/Row/BuiltIns/DisplayRow.js +3 -1
  529. package/dist/primitives/Table/Core/components/Row/BuiltIns/DisplayRow.js.map +1 -1
  530. package/dist/primitives/Table/Core/components/Toolbar/components/Filters/Filters.cjs +5 -5
  531. package/dist/primitives/Table/Core/components/Toolbar/components/Filters/Filters.cjs.map +1 -1
  532. package/dist/primitives/Table/Core/components/Toolbar/components/Filters/Filters.js +5 -5
  533. package/dist/primitives/Table/Core/components/Toolbar/components/Filters/Filters.js.map +1 -1
  534. package/dist/primitives/Table/Core/components/Toolbar/components/Filters/ManageFiltersPopover.cjs +4 -4
  535. package/dist/primitives/Table/Core/components/Toolbar/components/Filters/ManageFiltersPopover.cjs.map +1 -1
  536. package/dist/primitives/Table/Core/components/Toolbar/components/Filters/ManageFiltersPopover.js +4 -4
  537. package/dist/primitives/Table/Core/components/Toolbar/components/Filters/ManageFiltersPopover.js.map +1 -1
  538. package/dist/primitives/Table/Core/components/Toolbar/components/Filters/components/Filter.cjs +2 -2
  539. package/dist/primitives/Table/Core/components/Toolbar/components/Filters/components/Filter.cjs.map +1 -1
  540. package/dist/primitives/Table/Core/components/Toolbar/components/Filters/components/Filter.js +2 -2
  541. package/dist/primitives/Table/Core/components/Toolbar/components/Filters/components/Filter.js.map +1 -1
  542. package/dist/primitives/Table/Core/components/Toolbar/components/Filters/components/FilterColumn.cjs +3 -3
  543. package/dist/primitives/Table/Core/components/Toolbar/components/Filters/components/FilterColumn.cjs.map +1 -1
  544. package/dist/primitives/Table/Core/components/Toolbar/components/Filters/components/FilterColumn.d.ts +1 -1
  545. package/dist/primitives/Table/Core/components/Toolbar/components/Filters/components/FilterColumn.js +3 -3
  546. package/dist/primitives/Table/Core/components/Toolbar/components/Filters/components/FilterColumn.js.map +1 -1
  547. package/dist/primitives/Table/Core/components/Toolbar/components/Filters/components/FilterComparator.cjs +2 -2
  548. package/dist/primitives/Table/Core/components/Toolbar/components/Filters/components/FilterComparator.cjs.map +1 -1
  549. package/dist/primitives/Table/Core/components/Toolbar/components/Filters/components/FilterComparator.d.ts +1 -1
  550. package/dist/primitives/Table/Core/components/Toolbar/components/Filters/components/FilterComparator.js +2 -2
  551. package/dist/primitives/Table/Core/components/Toolbar/components/Filters/components/FilterComparator.js.map +1 -1
  552. package/dist/primitives/Table/Core/components/Toolbar/components/Filters/components/FilterValue.cjs +5 -5
  553. package/dist/primitives/Table/Core/components/Toolbar/components/Filters/components/FilterValue.cjs.map +1 -1
  554. package/dist/primitives/Table/Core/components/Toolbar/components/Filters/components/FilterValue.js +5 -5
  555. package/dist/primitives/Table/Core/components/Toolbar/components/Filters/components/FilterValue.js.map +1 -1
  556. package/dist/primitives/Table/Core/components/Toolbar/components/Print/Print.cjs +4 -4
  557. package/dist/primitives/Table/Core/components/Toolbar/components/Print/Print.cjs.map +1 -1
  558. package/dist/primitives/Table/Core/components/Toolbar/components/Print/Print.js +4 -4
  559. package/dist/primitives/Table/Core/components/Toolbar/components/Print/Print.js.map +1 -1
  560. package/dist/primitives/Table/Core/components/Toolbar/components/Print/PrintDialog.cjs +6 -6
  561. package/dist/primitives/Table/Core/components/Toolbar/components/Print/PrintDialog.cjs.map +1 -1
  562. package/dist/primitives/Table/Core/components/Toolbar/components/Print/PrintDialog.d.ts +1 -2
  563. package/dist/primitives/Table/Core/components/Toolbar/components/Print/PrintDialog.js +6 -6
  564. package/dist/primitives/Table/Core/components/Toolbar/components/Print/PrintDialog.js.map +1 -1
  565. package/dist/primitives/Table/Core/components/Toolbar/components/Search/Search.cjs +2 -2
  566. package/dist/primitives/Table/Core/components/Toolbar/components/Search/Search.cjs.map +1 -1
  567. package/dist/primitives/Table/Core/components/Toolbar/components/Search/Search.js +2 -2
  568. package/dist/primitives/Table/Core/components/Toolbar/components/Search/Search.js.map +1 -1
  569. package/dist/primitives/Table/Core/components/Toolbar/components/Settings/HideOrOrderPopover.cjs +7 -7
  570. package/dist/primitives/Table/Core/components/Toolbar/components/Settings/HideOrOrderPopover.cjs.map +1 -1
  571. package/dist/primitives/Table/Core/components/Toolbar/components/Settings/HideOrOrderPopover.d.ts +1 -1
  572. package/dist/primitives/Table/Core/components/Toolbar/components/Settings/HideOrOrderPopover.js +7 -7
  573. package/dist/primitives/Table/Core/components/Toolbar/components/Settings/HideOrOrderPopover.js.map +1 -1
  574. package/dist/primitives/Table/Core/components/Toolbar/components/Settings/Settings.cjs +3 -3
  575. package/dist/primitives/Table/Core/components/Toolbar/components/Settings/Settings.cjs.map +1 -1
  576. package/dist/primitives/Table/Core/components/Toolbar/components/Settings/Settings.js +3 -3
  577. package/dist/primitives/Table/Core/components/Toolbar/components/Settings/Settings.js.map +1 -1
  578. package/dist/primitives/Table/Core/features/useTableGlobalShortcuts.cjs.map +1 -1
  579. package/dist/primitives/Table/Core/features/useTableGlobalShortcuts.js.map +1 -1
  580. package/dist/primitives/Table/Core/listeners/useTableRowActiveListener.cjs.map +1 -1
  581. package/dist/primitives/Table/Core/listeners/useTableRowActiveListener.js.map +1 -1
  582. package/dist/primitives/Table/Core/types.d.ts +1 -1
  583. package/dist/primitives/Table/Core/useTable.cjs.map +1 -1
  584. package/dist/primitives/Table/Core/useTable.js.map +1 -1
  585. package/dist/primitives/Table/types.cjs.map +1 -1
  586. package/dist/primitives/Table/types.d.ts +1 -1
  587. package/dist/primitives/Table/types.js.map +1 -1
  588. package/dist/primitives/Table/useTableManager/features/useTableFontSize.cjs.map +1 -1
  589. package/dist/primitives/Table/useTableManager/features/useTableFontSize.js.map +1 -1
  590. package/dist/primitives/Table/useTableManager/features/useTablePrinting.cjs.map +1 -1
  591. package/dist/primitives/Table/useTableManager/features/useTablePrinting.js.map +1 -1
  592. package/dist/primitives/Table/useTableManager/features/useTableRowActive.cjs.map +1 -1
  593. package/dist/primitives/Table/useTableManager/features/useTableRowActive.js.map +1 -1
  594. package/dist/primitives/Table/useTableManager/features/useTableRowSelection.d.ts +1 -1
  595. package/dist/primitives/Table/useTableManager/features/useTableSettings.cjs.map +1 -1
  596. package/dist/primitives/Table/useTableManager/features/useTableSettings.js.map +1 -1
  597. package/dist/primitives/Table/useTableManager/listeners/useTableDataListener.cjs.map +1 -1
  598. package/dist/primitives/Table/useTableManager/listeners/useTableDataListener.js.map +1 -1
  599. package/dist/primitives/Table/useTableManager/listeners/useTableFilterListener.cjs.map +1 -1
  600. package/dist/primitives/Table/useTableManager/listeners/useTableFilterListener.js.map +1 -1
  601. package/dist/primitives/Table/useTableManager/listeners/useTableFontSizeListener.cjs.map +1 -1
  602. package/dist/primitives/Table/useTableManager/listeners/useTableFontSizeListener.js.map +1 -1
  603. package/dist/primitives/Table/useTableManager/listeners/useTableRowHeightListener.cjs.map +1 -1
  604. package/dist/primitives/Table/useTableManager/listeners/useTableRowHeightListener.js.map +1 -1
  605. package/dist/primitives/Table/useTableManager/listeners/useTableRowSelectionListener.cjs.map +1 -1
  606. package/dist/primitives/Table/useTableManager/listeners/useTableRowSelectionListener.js.map +1 -1
  607. package/dist/primitives/Table/useTableManager/listeners/useTableSearchListener.cjs +1 -1
  608. package/dist/primitives/Table/useTableManager/listeners/useTableSearchListener.cjs.map +1 -1
  609. package/dist/primitives/Table/useTableManager/listeners/useTableSearchListener.js +1 -1
  610. package/dist/primitives/Table/useTableManager/listeners/useTableSearchListener.js.map +1 -1
  611. package/dist/primitives/Table/useTableManager/listeners/useTableShortcutsListener.cjs.map +1 -1
  612. package/dist/primitives/Table/useTableManager/listeners/useTableShortcutsListener.js.map +1 -1
  613. package/dist/primitives/Table/useTableManager/listeners/useTableSortingListener.cjs.map +1 -1
  614. package/dist/primitives/Table/useTableManager/listeners/useTableSortingListener.js.map +1 -1
  615. package/dist/primitives/Table/useTableManager/useTableManager.cjs +1 -1
  616. package/dist/primitives/Table/useTableManager/useTableManager.cjs.map +1 -1
  617. package/dist/primitives/Table/useTableManager/useTableManager.js +1 -1
  618. package/dist/primitives/Table/useTableManager/useTableManager.js.map +1 -1
  619. package/dist/primitives/Table/useTableManager/util/columns.cjs.map +1 -1
  620. package/dist/primitives/Table/useTableManager/util/columns.d.ts +1 -1
  621. package/dist/primitives/Table/useTableManager/util/columns.js.map +1 -1
  622. package/dist/primitives/Table/useTableManager/util/dataTypes.cjs.map +1 -1
  623. package/dist/primitives/Table/useTableManager/util/dataTypes.d.ts +1 -1
  624. package/dist/primitives/Table/useTableManager/util/dataTypes.js.map +1 -1
  625. package/dist/primitives/Table/useTableManager/util/filtering.cjs.map +1 -1
  626. package/dist/primitives/Table/useTableManager/util/filtering.d.ts +1 -1
  627. package/dist/primitives/Table/useTableManager/util/filtering.js.map +1 -1
  628. package/dist/primitives/Table/useTableManager/util/search.cjs.map +1 -1
  629. package/dist/primitives/Table/useTableManager/util/search.d.ts +1 -1
  630. package/dist/primitives/Table/useTableManager/util/search.js.map +1 -1
  631. package/dist/primitives/Table/useTableManager/util/setup.cjs +11 -1
  632. package/dist/primitives/Table/useTableManager/util/setup.cjs.map +1 -1
  633. package/dist/primitives/Table/useTableManager/util/setup.d.ts +1 -1
  634. package/dist/primitives/Table/useTableManager/util/setup.js +12 -2
  635. package/dist/primitives/Table/useTableManager/util/setup.js.map +1 -1
  636. package/dist/utils/dom.cjs.map +1 -1
  637. package/dist/utils/dom.js.map +1 -1
  638. package/dist/utils/flattenChildren.cjs +12 -0
  639. package/dist/utils/flattenChildren.cjs.map +1 -0
  640. package/dist/utils/flattenChildren.d.ts +6 -0
  641. package/dist/utils/flattenChildren.js +12 -0
  642. package/dist/utils/flattenChildren.js.map +1 -0
  643. package/dist/utils/hooks/useListKeyboardNavigation.cjs.map +1 -1
  644. package/dist/utils/hooks/useListKeyboardNavigation.js.map +1 -1
  645. package/dist/utils/storyutils.d.ts +1 -1
  646. package/dist/utils/tailwind.cjs.map +1 -1
  647. package/dist/utils/tailwind.js.map +1 -1
  648. package/package.json +10 -9
  649. package/dist/components/Treeview/Treeview.cjs +0 -52
  650. package/dist/components/Treeview/Treeview.cjs.map +0 -1
  651. package/dist/components/Treeview/Treeview.d.ts +0 -25
  652. package/dist/components/Treeview/Treeview.js +0 -52
  653. package/dist/components/Treeview/Treeview.js.map +0 -1
@@ -1 +1 @@
1
- {"version":3,"file":"useTacoSettings.js","sources":["../../src/hooks/useTacoSettings.ts"],"sourcesContent":["import React from 'react';\n\nimport { TacoContext } from '../components/Provider/Provider';\n\nexport function useTacoSettings() {\n return React.useContext(TacoContext);\n}\n"],"names":["React"],"mappings":";;AAIO,SAAS,kBAAkB;AAC9B,SAAOA,eAAM,WAAW,WAAW;AACvC;"}
1
+ {"version":3,"file":"useTacoSettings.js","sources":["../../src/hooks/useTacoSettings.ts"],"sourcesContent":["import React from 'react';\n\nimport { TacoContext } from '@/components';\n\nexport function useTacoSettings() {\n return React.useContext(TacoContext);\n}\n"],"names":["React"],"mappings":";;AAIO,SAAS,kBAAkB;AAC9B,SAAOA,eAAM,WAAW,WAAW;AACvC;"}
package/dist/index.cjs CHANGED
@@ -87,7 +87,6 @@ const Textarea = require("./components/Textarea/Textarea.cjs");
87
87
  const Toaster = require("./components/Toast/Toaster.cjs");
88
88
  const Tooltip = require("./components/Tooltip/Tooltip.cjs");
89
89
  const Tour = require("./components/Tour/Tour.cjs");
90
- const Treeview = require("./components/Treeview/Treeview.cjs");
91
90
  const Truncate = require("./components/Truncate/Truncate.cjs");
92
91
  const VisuallyHidden = require("./components/VisuallyHidden/VisuallyHidden.cjs");
93
92
  const Link$1 = require("./components/Navigation2/components/Link.cjs");
@@ -200,7 +199,6 @@ exports.useToast = Toaster.useToast;
200
199
  exports.Tooltip = Tooltip.Tooltip;
201
200
  exports.Tour = Tour.Tour;
202
201
  exports.TourStep = Tour.TourStep;
203
- exports.Treeview = Treeview.Treeview;
204
202
  exports.Truncate = Truncate.Truncate;
205
203
  exports.VisuallyHidden = VisuallyHidden.VisuallyHidden;
206
204
  exports.getNavigationLinkClasses = Link$1.getNavigationLinkClasses;
@@ -1 +1 @@
1
- {"version":3,"file":"index.cjs","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
1
+ {"version":3,"file":"index.cjs","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
package/dist/index.js CHANGED
@@ -85,7 +85,6 @@ import { Textarea } from "./components/Textarea/Textarea.js";
85
85
  import { ToastProvider, useToast } from "./components/Toast/Toaster.js";
86
86
  import { Tooltip } from "./components/Tooltip/Tooltip.js";
87
87
  import { Tour, TourStep } from "./components/Tour/Tour.js";
88
- import { Treeview } from "./components/Treeview/Treeview.js";
89
88
  import { Truncate } from "./components/Truncate/Truncate.js";
90
89
  import { VisuallyHidden } from "./components/VisuallyHidden/VisuallyHidden.js";
91
90
  import { getNavigationLinkClasses } from "./components/Navigation2/components/Link.js";
@@ -168,7 +167,6 @@ export {
168
167
  Tooltip,
169
168
  Tour,
170
169
  TourStep,
171
- Treeview,
172
170
  Truncate,
173
171
  VisuallyHidden,
174
172
  createShortcutKeyDownHandler,
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
1
+ {"version":3,"file":"index.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
@@ -1 +1 @@
1
- {"version":3,"file":"BubbleSelect.cjs","sources":["../../src/primitives/BubbleSelect.tsx"],"sourcesContent":["import React from 'react';\n\nimport { usePreviousValue } from '../hooks/usePrevious';\n\n// taken from radix - https://github.com/radix-ui/primitives/blob/main/packages/react/select/src/Select.tsx#L1183-L1224\nexport const BubbleSelect = (props: React.SelectHTMLAttributes<HTMLSelectElement>) => {\n const { value, ...selectProps } = props;\n const ref = React.useRef<HTMLSelectElement>(null);\n const prevValue = usePreviousValue(value);\n\n // Bubble value change to parents (e.g form change event)\n React.useEffect(() => {\n const select = ref.current;\n const descriptor = Object.getOwnPropertyDescriptor(window.HTMLSelectElement.prototype, 'value') as PropertyDescriptor;\n const setValue = descriptor.set;\n\n if (prevValue !== value && setValue && select) {\n if (Array.isArray(value)) {\n value.forEach(v => {\n const option: HTMLOptionElement | null = select.querySelector(`option[value='${CSS.escape(v)}']`);\n\n if (option) {\n option.selected = true;\n }\n });\n } else {\n setValue.call(select, value);\n }\n\n const event = new Event('change', { bubbles: true });\n select.dispatchEvent(event);\n }\n }, [prevValue, value]);\n\n /**\n * We purposefully do not use `type=\"hidden\"` here otherwise forms that\n * wrap it will not be able to access its value via the FormData API.\n *\n * We purposefully do not add the `value` attribute here to allow the value\n * to be set programatically and bubble to any parent form `onChange` event.\n * Adding the `value` will cause React to consider the programatic\n * dispatch a duplicate and it will get swallowed.\n */\n return <select {...selectProps} defaultValue={value} ref={ref} style={{ display: 'none' }} />;\n};\n"],"names":["usePreviousValue"],"mappings":";;;;AAKO,MAAM,eAAe,CAAC,UAAyD;AAClF,QAAM,EAAE,OAAO,GAAG,YAAA,IAAgB;AAClC,QAAM,MAAM,MAAM,OAA0B,IAAI;AAChD,QAAM,YAAYA,YAAAA,iBAAiB,KAAK;AAGxC,QAAM,UAAU,MAAM;AAClB,UAAM,SAAS,IAAI;AACnB,UAAM,aAAa,OAAO,yBAAyB,OAAO,kBAAkB,WAAW,OAAO;AAC9F,UAAM,WAAW,WAAW;AAE5B,QAAI,cAAc,SAAS,YAAY,QAAQ;AAC3C,UAAI,MAAM,QAAQ,KAAK,GAAG;AACtB,cAAM,QAAQ,CAAA,MAAK;AACf,gBAAM,SAAmC,OAAO,cAAc,iBAAiB,IAAI,OAAO,CAAC,CAAC,IAAI;AAEhG,cAAI,QAAQ;AACR,mBAAO,WAAW;AAAA,UACtB;AAAA,QACJ,CAAC;AAAA,MACL,OAAO;AACH,iBAAS,KAAK,QAAQ,KAAK;AAAA,MAC/B;AAEA,YAAM,QAAQ,IAAI,MAAM,UAAU,EAAE,SAAS,MAAM;AACnD,aAAO,cAAc,KAAK;AAAA,IAC9B;AAAA,EACJ,GAAG,CAAC,WAAW,KAAK,CAAC;AAWrB,SAAO,sBAAA,cAAC,UAAA,EAAQ,GAAG,aAAa,cAAc,OAAO,KAAU,OAAO,EAAE,SAAS,OAAA,EAAO,CAAG;AAC/F;;"}
1
+ {"version":3,"file":"BubbleSelect.cjs","sources":["../../src/primitives/BubbleSelect.tsx"],"sourcesContent":["import React from 'react';\n\nimport { usePreviousValue } from '@/hooks/usePrevious';\n\n// taken from radix - https://github.com/radix-ui/primitives/blob/main/packages/react/select/src/Select.tsx#L1183-L1224\nexport const BubbleSelect = (props: React.SelectHTMLAttributes<HTMLSelectElement>) => {\n const { value, ...selectProps } = props;\n const ref = React.useRef<HTMLSelectElement>(null);\n const prevValue = usePreviousValue(value);\n\n // Bubble value change to parents (e.g form change event)\n React.useEffect(() => {\n const select = ref.current;\n const descriptor = Object.getOwnPropertyDescriptor(window.HTMLSelectElement.prototype, 'value') as PropertyDescriptor;\n const setValue = descriptor.set;\n\n if (prevValue !== value && setValue && select) {\n if (Array.isArray(value)) {\n value.forEach(v => {\n const option: HTMLOptionElement | null = select.querySelector(`option[value='${CSS.escape(v)}']`);\n\n if (option) {\n option.selected = true;\n }\n });\n } else {\n setValue.call(select, value);\n }\n\n const event = new Event('change', { bubbles: true });\n select.dispatchEvent(event);\n }\n }, [prevValue, value]);\n\n /**\n * We purposefully do not use `type=\"hidden\"` here otherwise forms that\n * wrap it will not be able to access its value via the FormData API.\n *\n * We purposefully do not add the `value` attribute here to allow the value\n * to be set programatically and bubble to any parent form `onChange` event.\n * Adding the `value` will cause React to consider the programatic\n * dispatch a duplicate and it will get swallowed.\n */\n return <select {...selectProps} defaultValue={value} ref={ref} style={{ display: 'none' }} />;\n};\n"],"names":["usePreviousValue"],"mappings":";;;;AAKO,MAAM,eAAe,CAAC,UAAyD;AAClF,QAAM,EAAE,OAAO,GAAG,YAAA,IAAgB;AAClC,QAAM,MAAM,MAAM,OAA0B,IAAI;AAChD,QAAM,YAAYA,YAAAA,iBAAiB,KAAK;AAGxC,QAAM,UAAU,MAAM;AAClB,UAAM,SAAS,IAAI;AACnB,UAAM,aAAa,OAAO,yBAAyB,OAAO,kBAAkB,WAAW,OAAO;AAC9F,UAAM,WAAW,WAAW;AAE5B,QAAI,cAAc,SAAS,YAAY,QAAQ;AAC3C,UAAI,MAAM,QAAQ,KAAK,GAAG;AACtB,cAAM,QAAQ,CAAA,MAAK;AACf,gBAAM,SAAmC,OAAO,cAAc,iBAAiB,IAAI,OAAO,CAAC,CAAC,IAAI;AAEhG,cAAI,QAAQ;AACR,mBAAO,WAAW;AAAA,UACtB;AAAA,QACJ,CAAC;AAAA,MACL,OAAO;AACH,iBAAS,KAAK,QAAQ,KAAK;AAAA,MAC/B;AAEA,YAAM,QAAQ,IAAI,MAAM,UAAU,EAAE,SAAS,MAAM;AACnD,aAAO,cAAc,KAAK;AAAA,IAC9B;AAAA,EACJ,GAAG,CAAC,WAAW,KAAK,CAAC;AAWrB,SAAO,sBAAA,cAAC,UAAA,EAAQ,GAAG,aAAa,cAAc,OAAO,KAAU,OAAO,EAAE,SAAS,OAAA,EAAO,CAAG;AAC/F;;"}
@@ -1 +1 @@
1
- {"version":3,"file":"BubbleSelect.js","sources":["../../src/primitives/BubbleSelect.tsx"],"sourcesContent":["import React from 'react';\n\nimport { usePreviousValue } from '../hooks/usePrevious';\n\n// taken from radix - https://github.com/radix-ui/primitives/blob/main/packages/react/select/src/Select.tsx#L1183-L1224\nexport const BubbleSelect = (props: React.SelectHTMLAttributes<HTMLSelectElement>) => {\n const { value, ...selectProps } = props;\n const ref = React.useRef<HTMLSelectElement>(null);\n const prevValue = usePreviousValue(value);\n\n // Bubble value change to parents (e.g form change event)\n React.useEffect(() => {\n const select = ref.current;\n const descriptor = Object.getOwnPropertyDescriptor(window.HTMLSelectElement.prototype, 'value') as PropertyDescriptor;\n const setValue = descriptor.set;\n\n if (prevValue !== value && setValue && select) {\n if (Array.isArray(value)) {\n value.forEach(v => {\n const option: HTMLOptionElement | null = select.querySelector(`option[value='${CSS.escape(v)}']`);\n\n if (option) {\n option.selected = true;\n }\n });\n } else {\n setValue.call(select, value);\n }\n\n const event = new Event('change', { bubbles: true });\n select.dispatchEvent(event);\n }\n }, [prevValue, value]);\n\n /**\n * We purposefully do not use `type=\"hidden\"` here otherwise forms that\n * wrap it will not be able to access its value via the FormData API.\n *\n * We purposefully do not add the `value` attribute here to allow the value\n * to be set programatically and bubble to any parent form `onChange` event.\n * Adding the `value` will cause React to consider the programatic\n * dispatch a duplicate and it will get swallowed.\n */\n return <select {...selectProps} defaultValue={value} ref={ref} style={{ display: 'none' }} />;\n};\n"],"names":["React"],"mappings":";;AAKO,MAAM,eAAe,CAAC,UAAyD;AAClF,QAAM,EAAE,OAAO,GAAG,YAAA,IAAgB;AAClC,QAAM,MAAMA,eAAM,OAA0B,IAAI;AAChD,QAAM,YAAY,iBAAiB,KAAK;AAGxCA,iBAAM,UAAU,MAAM;AAClB,UAAM,SAAS,IAAI;AACnB,UAAM,aAAa,OAAO,yBAAyB,OAAO,kBAAkB,WAAW,OAAO;AAC9F,UAAM,WAAW,WAAW;AAE5B,QAAI,cAAc,SAAS,YAAY,QAAQ;AAC3C,UAAI,MAAM,QAAQ,KAAK,GAAG;AACtB,cAAM,QAAQ,CAAA,MAAK;AACf,gBAAM,SAAmC,OAAO,cAAc,iBAAiB,IAAI,OAAO,CAAC,CAAC,IAAI;AAEhG,cAAI,QAAQ;AACR,mBAAO,WAAW;AAAA,UACtB;AAAA,QACJ,CAAC;AAAA,MACL,OAAO;AACH,iBAAS,KAAK,QAAQ,KAAK;AAAA,MAC/B;AAEA,YAAM,QAAQ,IAAI,MAAM,UAAU,EAAE,SAAS,MAAM;AACnD,aAAO,cAAc,KAAK;AAAA,IAC9B;AAAA,EACJ,GAAG,CAAC,WAAW,KAAK,CAAC;AAWrB,SAAOA,+BAAA,cAAC,UAAA,EAAQ,GAAG,aAAa,cAAc,OAAO,KAAU,OAAO,EAAE,SAAS,OAAA,EAAO,CAAG;AAC/F;"}
1
+ {"version":3,"file":"BubbleSelect.js","sources":["../../src/primitives/BubbleSelect.tsx"],"sourcesContent":["import React from 'react';\n\nimport { usePreviousValue } from '@/hooks/usePrevious';\n\n// taken from radix - https://github.com/radix-ui/primitives/blob/main/packages/react/select/src/Select.tsx#L1183-L1224\nexport const BubbleSelect = (props: React.SelectHTMLAttributes<HTMLSelectElement>) => {\n const { value, ...selectProps } = props;\n const ref = React.useRef<HTMLSelectElement>(null);\n const prevValue = usePreviousValue(value);\n\n // Bubble value change to parents (e.g form change event)\n React.useEffect(() => {\n const select = ref.current;\n const descriptor = Object.getOwnPropertyDescriptor(window.HTMLSelectElement.prototype, 'value') as PropertyDescriptor;\n const setValue = descriptor.set;\n\n if (prevValue !== value && setValue && select) {\n if (Array.isArray(value)) {\n value.forEach(v => {\n const option: HTMLOptionElement | null = select.querySelector(`option[value='${CSS.escape(v)}']`);\n\n if (option) {\n option.selected = true;\n }\n });\n } else {\n setValue.call(select, value);\n }\n\n const event = new Event('change', { bubbles: true });\n select.dispatchEvent(event);\n }\n }, [prevValue, value]);\n\n /**\n * We purposefully do not use `type=\"hidden\"` here otherwise forms that\n * wrap it will not be able to access its value via the FormData API.\n *\n * We purposefully do not add the `value` attribute here to allow the value\n * to be set programatically and bubble to any parent form `onChange` event.\n * Adding the `value` will cause React to consider the programatic\n * dispatch a duplicate and it will get swallowed.\n */\n return <select {...selectProps} defaultValue={value} ref={ref} style={{ display: 'none' }} />;\n};\n"],"names":["React"],"mappings":";;AAKO,MAAM,eAAe,CAAC,UAAyD;AAClF,QAAM,EAAE,OAAO,GAAG,YAAA,IAAgB;AAClC,QAAM,MAAMA,eAAM,OAA0B,IAAI;AAChD,QAAM,YAAY,iBAAiB,KAAK;AAGxCA,iBAAM,UAAU,MAAM;AAClB,UAAM,SAAS,IAAI;AACnB,UAAM,aAAa,OAAO,yBAAyB,OAAO,kBAAkB,WAAW,OAAO;AAC9F,UAAM,WAAW,WAAW;AAE5B,QAAI,cAAc,SAAS,YAAY,QAAQ;AAC3C,UAAI,MAAM,QAAQ,KAAK,GAAG;AACtB,cAAM,QAAQ,CAAA,MAAK;AACf,gBAAM,SAAmC,OAAO,cAAc,iBAAiB,IAAI,OAAO,CAAC,CAAC,IAAI;AAEhG,cAAI,QAAQ;AACR,mBAAO,WAAW;AAAA,UACtB;AAAA,QACJ,CAAC;AAAA,MACL,OAAO;AACH,iBAAS,KAAK,QAAQ,KAAK;AAAA,MAC/B;AAEA,YAAM,QAAQ,IAAI,MAAM,UAAU,EAAE,SAAS,MAAM;AACnD,aAAO,cAAc,KAAK;AAAA,IAC9B;AAAA,EACJ,GAAG,CAAC,WAAW,KAAK,CAAC;AAWrB,SAAOA,+BAAA,cAAC,UAAA,EAAQ,GAAG,aAAa,cAAc,OAAO,KAAU,OAAO,EAAE,SAAS,OAAA,EAAO,CAAG;AAC/F;"}
@@ -1 +1 @@
1
- {"version":3,"file":"Button.cjs","sources":["../../src/primitives/Button.tsx"],"sourcesContent":["import * as React from 'react';\n\nimport { useGlobalKeyDown } from '../hooks/useGlobalKeyDown';\nimport { useMergedRef } from '../hooks/useMergedRef';\nimport type { KeyDownHandlerOptions } from '../utils/keyboard';\n\n// React 19 added the native `popover` attribute to HTML props. Consumers of this primitive use\n// `popover` as a render prop for an associated Popover, so the native one is dropped to keep that.\ntype ButtonProps = Omit<React.ButtonHTMLAttributes<HTMLButtonElement | HTMLAnchorElement>, 'popover'> & {\n /** Content should be a text */\n children: React.ReactNode;\n /** Provides url for buttons being used as a link */\n href?: string;\n shortcut?: string | KeyDownHandlerOptions;\n /** Provides target for buttons being used as a link */\n target?: '_self' | '_blank' | '_parent' | '_top';\n};\n\nconst Button = React.forwardRef(function Button(props: ButtonProps, ref: React.Ref<HTMLButtonElement | HTMLAnchorElement>) {\n const { disabled, shortcut, target, type = 'button', ...otherProps } = props;\n const internalRef = useMergedRef<HTMLButtonElement | HTMLAnchorElement>(ref);\n\n useGlobalKeyDown(shortcut, event => {\n event?.preventDefault();\n const dialog = document.querySelector('[role=\"dialog\"]');\n\n // Don't trigger the click on the button if it is outside of the dialog\n if (dialog && !dialog?.contains(internalRef.current)) {\n return;\n }\n\n internalRef.current?.click();\n });\n\n const Tag = props.href ? 'a' : 'button';\n\n return (\n <Tag\n {...otherProps}\n href={disabled ? undefined : props.href}\n aria-disabled={disabled ? 'true' : undefined}\n disabled={disabled}\n target={Tag === 'a' ? target : undefined}\n type={Tag === 'a' ? undefined : type}\n ref={internalRef as any}>\n {React.Children.count(props.children) > 1\n ? React.Children.map(props.children, child => (typeof child === 'string' ? <span>{child}</span> : child))\n : props.children}\n </Tag>\n );\n});\n\nexport { Button };\nexport type { ButtonProps };\n"],"names":["React","Button","useMergedRef","useGlobalKeyDown"],"mappings":";;;;;;;;;;;;;;;;;;;;;;AAkBA,MAAM,SAASA,iBAAM,WAAW,SAASC,QAAO,OAAoB,KAAuD;AACvH,QAAM,EAAE,UAAU,UAAU,QAAQ,OAAO,UAAU,GAAG,eAAe;AACvE,QAAM,cAAcC,aAAAA,aAAoD,GAAG;AAE3EC,oCAAiB,UAAU,CAAA,UAAS;AAChC,WAAO,eAAA;AACP,UAAM,SAAS,SAAS,cAAc,iBAAiB;AAGvD,QAAI,UAAU,CAAC,QAAQ,SAAS,YAAY,OAAO,GAAG;AAClD;AAAA,IACJ;AAEA,gBAAY,SAAS,MAAA;AAAA,EACzB,CAAC;AAED,QAAM,MAAM,MAAM,OAAO,MAAM;AAE/B,SACIH,iCAAA;AAAA,IAAC;AAAA,IAAA;AAAA,MACI,GAAG;AAAA,MACJ,MAAM,WAAW,SAAY,MAAM;AAAA,MACnC,iBAAe,WAAW,SAAS;AAAA,MACnC;AAAA,MACA,QAAQ,QAAQ,MAAM,SAAS;AAAA,MAC/B,MAAM,QAAQ,MAAM,SAAY;AAAA,MAChC,KAAK;AAAA,IAAA;AAAA,IACJA,iBAAM,SAAS,MAAM,MAAM,QAAQ,IAAI,IAClCA,iBAAM,SAAS,IAAI,MAAM,UAAU,CAAA,UAAU,OAAO,UAAU,WAAWA,iCAAA,cAAC,cAAM,KAAM,IAAU,KAAM,IACtG,MAAM;AAAA,EAAA;AAGxB,CAAC;;"}
1
+ {"version":3,"file":"Button.cjs","sources":["../../src/primitives/Button.tsx"],"sourcesContent":["import * as React from 'react';\n\nimport { useGlobalKeyDown } from '@/hooks/useGlobalKeyDown';\nimport { useMergedRef } from '@/hooks/useMergedRef';\nimport type { KeyDownHandlerOptions } from '@/utils/keyboard';\n\n// React 19 added the native `popover` attribute to HTML props. Consumers of this primitive use\n// `popover` as a render prop for an associated Popover, so the native one is dropped to keep that.\ntype ButtonProps = Omit<React.ButtonHTMLAttributes<HTMLButtonElement | HTMLAnchorElement>, 'popover'> & {\n /** Content should be a text */\n children: React.ReactNode;\n /** Provides url for buttons being used as a link */\n href?: string;\n shortcut?: string | KeyDownHandlerOptions;\n /** Provides target for buttons being used as a link */\n target?: '_self' | '_blank' | '_parent' | '_top';\n};\n\nconst Button = React.forwardRef(function Button(props: ButtonProps, ref: React.Ref<HTMLButtonElement | HTMLAnchorElement>) {\n const { disabled, shortcut, target, type = 'button', ...otherProps } = props;\n const internalRef = useMergedRef<HTMLButtonElement | HTMLAnchorElement>(ref);\n\n useGlobalKeyDown(shortcut, event => {\n event?.preventDefault();\n const dialog = document.querySelector('[role=\"dialog\"]');\n\n // Don't trigger the click on the button if it is outside of the dialog\n if (dialog && !dialog?.contains(internalRef.current)) {\n return;\n }\n\n internalRef.current?.click();\n });\n\n const Tag = props.href ? 'a' : 'button';\n\n return (\n <Tag\n {...otherProps}\n href={disabled ? undefined : props.href}\n aria-disabled={disabled ? 'true' : undefined}\n disabled={disabled}\n target={Tag === 'a' ? target : undefined}\n type={Tag === 'a' ? undefined : type}\n ref={internalRef as any}>\n {React.Children.count(props.children) > 1\n ? React.Children.map(props.children, child => (typeof child === 'string' ? <span>{child}</span> : child))\n : props.children}\n </Tag>\n );\n});\n\nexport { Button };\nexport type { ButtonProps };\n"],"names":["React","Button","useMergedRef","useGlobalKeyDown"],"mappings":";;;;;;;;;;;;;;;;;;;;;;AAkBA,MAAM,SAASA,iBAAM,WAAW,SAASC,QAAO,OAAoB,KAAuD;AACvH,QAAM,EAAE,UAAU,UAAU,QAAQ,OAAO,UAAU,GAAG,eAAe;AACvE,QAAM,cAAcC,aAAAA,aAAoD,GAAG;AAE3EC,oCAAiB,UAAU,CAAA,UAAS;AAChC,WAAO,eAAA;AACP,UAAM,SAAS,SAAS,cAAc,iBAAiB;AAGvD,QAAI,UAAU,CAAC,QAAQ,SAAS,YAAY,OAAO,GAAG;AAClD;AAAA,IACJ;AAEA,gBAAY,SAAS,MAAA;AAAA,EACzB,CAAC;AAED,QAAM,MAAM,MAAM,OAAO,MAAM;AAE/B,SACIH,iCAAA;AAAA,IAAC;AAAA,IAAA;AAAA,MACI,GAAG;AAAA,MACJ,MAAM,WAAW,SAAY,MAAM;AAAA,MACnC,iBAAe,WAAW,SAAS;AAAA,MACnC;AAAA,MACA,QAAQ,QAAQ,MAAM,SAAS;AAAA,MAC/B,MAAM,QAAQ,MAAM,SAAY;AAAA,MAChC,KAAK;AAAA,IAAA;AAAA,IACJA,iBAAM,SAAS,MAAM,MAAM,QAAQ,IAAI,IAClCA,iBAAM,SAAS,IAAI,MAAM,UAAU,CAAA,UAAU,OAAO,UAAU,WAAWA,iCAAA,cAAC,cAAM,KAAM,IAAU,KAAM,IACtG,MAAM;AAAA,EAAA;AAGxB,CAAC;;"}
@@ -1 +1 @@
1
- {"version":3,"file":"Button.js","sources":["../../src/primitives/Button.tsx"],"sourcesContent":["import * as React from 'react';\n\nimport { useGlobalKeyDown } from '../hooks/useGlobalKeyDown';\nimport { useMergedRef } from '../hooks/useMergedRef';\nimport type { KeyDownHandlerOptions } from '../utils/keyboard';\n\n// React 19 added the native `popover` attribute to HTML props. Consumers of this primitive use\n// `popover` as a render prop for an associated Popover, so the native one is dropped to keep that.\ntype ButtonProps = Omit<React.ButtonHTMLAttributes<HTMLButtonElement | HTMLAnchorElement>, 'popover'> & {\n /** Content should be a text */\n children: React.ReactNode;\n /** Provides url for buttons being used as a link */\n href?: string;\n shortcut?: string | KeyDownHandlerOptions;\n /** Provides target for buttons being used as a link */\n target?: '_self' | '_blank' | '_parent' | '_top';\n};\n\nconst Button = React.forwardRef(function Button(props: ButtonProps, ref: React.Ref<HTMLButtonElement | HTMLAnchorElement>) {\n const { disabled, shortcut, target, type = 'button', ...otherProps } = props;\n const internalRef = useMergedRef<HTMLButtonElement | HTMLAnchorElement>(ref);\n\n useGlobalKeyDown(shortcut, event => {\n event?.preventDefault();\n const dialog = document.querySelector('[role=\"dialog\"]');\n\n // Don't trigger the click on the button if it is outside of the dialog\n if (dialog && !dialog?.contains(internalRef.current)) {\n return;\n }\n\n internalRef.current?.click();\n });\n\n const Tag = props.href ? 'a' : 'button';\n\n return (\n <Tag\n {...otherProps}\n href={disabled ? undefined : props.href}\n aria-disabled={disabled ? 'true' : undefined}\n disabled={disabled}\n target={Tag === 'a' ? target : undefined}\n type={Tag === 'a' ? undefined : type}\n ref={internalRef as any}>\n {React.Children.count(props.children) > 1\n ? React.Children.map(props.children, child => (typeof child === 'string' ? <span>{child}</span> : child))\n : props.children}\n </Tag>\n );\n});\n\nexport { Button };\nexport type { ButtonProps };\n"],"names":["Button"],"mappings":";;;AAkBA,MAAM,SAAS,MAAM,WAAW,SAASA,QAAO,OAAoB,KAAuD;AACvH,QAAM,EAAE,UAAU,UAAU,QAAQ,OAAO,UAAU,GAAG,eAAe;AACvE,QAAM,cAAc,aAAoD,GAAG;AAE3E,mBAAiB,UAAU,CAAA,UAAS;AAChC,WAAO,eAAA;AACP,UAAM,SAAS,SAAS,cAAc,iBAAiB;AAGvD,QAAI,UAAU,CAAC,QAAQ,SAAS,YAAY,OAAO,GAAG;AAClD;AAAA,IACJ;AAEA,gBAAY,SAAS,MAAA;AAAA,EACzB,CAAC;AAED,QAAM,MAAM,MAAM,OAAO,MAAM;AAE/B,SACI,sBAAA;AAAA,IAAC;AAAA,IAAA;AAAA,MACI,GAAG;AAAA,MACJ,MAAM,WAAW,SAAY,MAAM;AAAA,MACnC,iBAAe,WAAW,SAAS;AAAA,MACnC;AAAA,MACA,QAAQ,QAAQ,MAAM,SAAS;AAAA,MAC/B,MAAM,QAAQ,MAAM,SAAY;AAAA,MAChC,KAAK;AAAA,IAAA;AAAA,IACJ,MAAM,SAAS,MAAM,MAAM,QAAQ,IAAI,IAClC,MAAM,SAAS,IAAI,MAAM,UAAU,CAAA,UAAU,OAAO,UAAU,WAAW,sBAAA,cAAC,cAAM,KAAM,IAAU,KAAM,IACtG,MAAM;AAAA,EAAA;AAGxB,CAAC;"}
1
+ {"version":3,"file":"Button.js","sources":["../../src/primitives/Button.tsx"],"sourcesContent":["import * as React from 'react';\n\nimport { useGlobalKeyDown } from '@/hooks/useGlobalKeyDown';\nimport { useMergedRef } from '@/hooks/useMergedRef';\nimport type { KeyDownHandlerOptions } from '@/utils/keyboard';\n\n// React 19 added the native `popover` attribute to HTML props. Consumers of this primitive use\n// `popover` as a render prop for an associated Popover, so the native one is dropped to keep that.\ntype ButtonProps = Omit<React.ButtonHTMLAttributes<HTMLButtonElement | HTMLAnchorElement>, 'popover'> & {\n /** Content should be a text */\n children: React.ReactNode;\n /** Provides url for buttons being used as a link */\n href?: string;\n shortcut?: string | KeyDownHandlerOptions;\n /** Provides target for buttons being used as a link */\n target?: '_self' | '_blank' | '_parent' | '_top';\n};\n\nconst Button = React.forwardRef(function Button(props: ButtonProps, ref: React.Ref<HTMLButtonElement | HTMLAnchorElement>) {\n const { disabled, shortcut, target, type = 'button', ...otherProps } = props;\n const internalRef = useMergedRef<HTMLButtonElement | HTMLAnchorElement>(ref);\n\n useGlobalKeyDown(shortcut, event => {\n event?.preventDefault();\n const dialog = document.querySelector('[role=\"dialog\"]');\n\n // Don't trigger the click on the button if it is outside of the dialog\n if (dialog && !dialog?.contains(internalRef.current)) {\n return;\n }\n\n internalRef.current?.click();\n });\n\n const Tag = props.href ? 'a' : 'button';\n\n return (\n <Tag\n {...otherProps}\n href={disabled ? undefined : props.href}\n aria-disabled={disabled ? 'true' : undefined}\n disabled={disabled}\n target={Tag === 'a' ? target : undefined}\n type={Tag === 'a' ? undefined : type}\n ref={internalRef as any}>\n {React.Children.count(props.children) > 1\n ? React.Children.map(props.children, child => (typeof child === 'string' ? <span>{child}</span> : child))\n : props.children}\n </Tag>\n );\n});\n\nexport { Button };\nexport type { ButtonProps };\n"],"names":["Button"],"mappings":";;;AAkBA,MAAM,SAAS,MAAM,WAAW,SAASA,QAAO,OAAoB,KAAuD;AACvH,QAAM,EAAE,UAAU,UAAU,QAAQ,OAAO,UAAU,GAAG,eAAe;AACvE,QAAM,cAAc,aAAoD,GAAG;AAE3E,mBAAiB,UAAU,CAAA,UAAS;AAChC,WAAO,eAAA;AACP,UAAM,SAAS,SAAS,cAAc,iBAAiB;AAGvD,QAAI,UAAU,CAAC,QAAQ,SAAS,YAAY,OAAO,GAAG;AAClD;AAAA,IACJ;AAEA,gBAAY,SAAS,MAAA;AAAA,EACzB,CAAC;AAED,QAAM,MAAM,MAAM,OAAO,MAAM;AAE/B,SACI,sBAAA;AAAA,IAAC;AAAA,IAAA;AAAA,MACI,GAAG;AAAA,MACJ,MAAM,WAAW,SAAY,MAAM;AAAA,MACnC,iBAAe,WAAW,SAAS;AAAA,MACnC;AAAA,MACA,QAAQ,QAAQ,MAAM,SAAS;AAAA,MAC/B,MAAM,QAAQ,MAAM,SAAY;AAAA,MAChC,KAAK;AAAA,IAAA;AAAA,IACJ,MAAM,SAAS,MAAM,MAAM,QAAQ,IAAI,IAClC,MAAM,SAAS,IAAI,MAAM,UAAU,CAAA,UAAU,OAAO,UAAU,WAAW,sBAAA,cAAC,cAAM,KAAM,IAAU,KAAM,IACtG,MAAM;AAAA,EAAA;AAGxB,CAAC;"}
@@ -1 +1 @@
1
- {"version":3,"file":"Root.cjs","sources":["../../../../src/primitives/Collection/components/Root.tsx"],"sourcesContent":["import React from 'react';\n\nimport { useMergedRef } from '../../../hooks/useMergedRef';\nimport { isAriaDirectionKey } from '../../../utils/aria';\nimport { createCustomKeyboardEvent } from '../../../utils/input';\n\n/* This component provides a keyboard navigable collection primitive for use in lists\n * It is unlikely you need to edit this component\n */\n\nexport type CollectionProps = React.HTMLAttributes<HTMLDivElement> & {\n querySelector: string;\n resetOnChange?: unknown;\n};\n\nexport type CollectionRef = HTMLDivElement & {\n setActiveIndexByElement: (option: HTMLDivElement) => void;\n};\n\nconst getOptionsFromCollection = (collection: HTMLDivElement, selector: string): NodeListOf<Element> =>\n collection.querySelectorAll(selector);\n\n// we use javascript to set attributes (rather than cloning children and adding them)\n// so that we can support nesting (e.g. groups) - child elements that aren't options.\n// without doing this we would have to unwrap and flatten all groups\nexport const Root = React.forwardRef<CollectionRef, CollectionProps>(function CollectionRoot(props, ref) {\n const { querySelector, resetOnChange, tabIndex = 0, ...otherProps } = props;\n const internalRef = useMergedRef<CollectionRef>(ref);\n const [activeIndex, setActiveIndex] = React.useState<number | undefined>();\n const isMultiselectable = props['aria-multiselectable'];\n\n const setActiveOption = (index: number, collection: HTMLDivElement, option: Element) => {\n collection.querySelector('[aria-current]')?.removeAttribute('aria-current');\n option.setAttribute('aria-current', 'true');\n\n option.scrollIntoView({ block: 'nearest' });\n setActiveIndex(index);\n };\n\n const setActiveIndexByElement = React.useCallback(\n (option: HTMLDivElement) => {\n if (internalRef.current && option.matches(querySelector)) {\n const options = getOptionsFromCollection(internalRef.current, querySelector);\n const nextActiveIndex = Array.from(options).indexOf(option);\n\n if (nextActiveIndex > -1) {\n setActiveOption(nextActiveIndex, internalRef.current, option);\n }\n }\n },\n [internalRef.current, querySelector]\n );\n\n React.useEffect(() => {\n if (internalRef.current) {\n internalRef.current.setActiveIndexByElement = setActiveIndexByElement;\n }\n }, [internalRef.current]);\n\n React.useEffect(() => {\n if (internalRef.current) {\n const options = getOptionsFromCollection(internalRef.current, querySelector);\n\n if (options.length && !isMultiselectable) {\n const firstSelected = internalRef.current.querySelector('[aria-selected]');\n\n if (firstSelected) {\n const selectedIndex = Array.from(options).indexOf(firstSelected);\n\n if (selectedIndex > -1 && selectedIndex !== activeIndex) {\n setActiveOption(selectedIndex, internalRef.current, firstSelected);\n }\n }\n }\n }\n }, [resetOnChange, isMultiselectable]);\n\n React.useEffect(() => {\n if (internalRef.current) {\n const options = getOptionsFromCollection(internalRef.current, querySelector);\n\n if (options.length) {\n let selected = internalRef.current.querySelectorAll('[aria-current=\"true\"]');\n\n // if nothing is current (keyboard visible), look for selected items\n if (selected.length === 0) {\n selected = internalRef.current.querySelectorAll('[aria-selected]');\n }\n\n // if one item is selected, make sure it's current\n if (selected.length === 1) {\n if (options) {\n const firstSelected = selected.item(0);\n const selectedIndex = Array.from(options).indexOf(firstSelected);\n\n if (selectedIndex > -1) {\n setActiveOption(selectedIndex, internalRef.current, firstSelected);\n }\n }\n } else {\n // multiple selected or none selected should go to 0\n setActiveOption(0, internalRef.current, options.item(0));\n }\n }\n }\n }, [props.children]);\n\n const handleClick = (event: React.MouseEvent<HTMLDivElement>) => {\n const target = event.target as HTMLElement;\n // after we allowed complex content in options (like prefix/postfix in Select2), the click target can be a child of the option\n // so in this case we need to find the closest option\n const option = target.matches(querySelector) ? target : target.closest(querySelector);\n\n if (option) {\n const options = getOptionsFromCollection(event.currentTarget, querySelector);\n const nextActiveIndex = Array.from(options).indexOf(option);\n\n if (nextActiveIndex > -1) {\n setActiveOption(nextActiveIndex, event.currentTarget, option);\n }\n }\n };\n\n const handleKeyDown = (event: React.KeyboardEvent<HTMLDivElement>) => {\n // this stops the event dispatched to the option rebounding back and starting an infinite loop\n if (event.target !== event.currentTarget) {\n return;\n }\n\n if (otherProps.onKeyDown) {\n otherProps.onKeyDown(event);\n }\n\n if (event.isDefaultPrevented()) {\n return;\n }\n\n const options = getOptionsFromCollection(event.currentTarget, querySelector);\n\n if (options) {\n if (isAriaDirectionKey(event)) {\n event.preventDefault();\n event.stopPropagation();\n const nextActiveIndex = getNextEnabledItem(event, options, activeIndex);\n\n if (nextActiveIndex !== undefined && nextActiveIndex !== activeIndex) {\n setActiveOption(nextActiveIndex, event.currentTarget, options.item(nextActiveIndex));\n }\n } else if (activeIndex !== undefined && !!options.item(activeIndex)) {\n // forward events onto the underlying option - this lets consumers place onKeyDown handlers on their own components\n options.item(activeIndex)?.dispatchEvent(createCustomKeyboardEvent(event));\n }\n }\n };\n\n return <div {...otherProps} onClick={handleClick} onKeyDown={handleKeyDown} ref={internalRef} tabIndex={tabIndex} />;\n});\n\nexport const getNextIndexFromKeycode = (\n event: React.KeyboardEvent,\n length: number,\n activeIndex: number | undefined\n): number | undefined => {\n switch (event.key) {\n case 'ArrowUp':\n return activeIndex === undefined ? length - 1 : activeIndex > 0 ? activeIndex - 1 : activeIndex;\n\n case 'ArrowDown':\n return activeIndex === undefined ? 0 : activeIndex < length - 1 ? activeIndex + 1 : activeIndex;\n\n case 'Home':\n return 0;\n\n case 'End':\n return length - 1;\n\n default:\n return;\n }\n};\n\nexport const getNextEnabledItem = (\n event: React.KeyboardEvent<HTMLElement>,\n options: NodeListOf<Element>,\n activeIndex: number | undefined,\n recurse = true\n): number | undefined => {\n const nextIndex = getNextIndexFromKeycode(event, options.length, activeIndex);\n\n if (nextIndex !== undefined) {\n if (nextIndex === activeIndex) {\n return activeIndex;\n }\n if (options.item(nextIndex) && isSkippableItem(options.item(nextIndex))) {\n // check in the other direction if the first or last item is disabled,\n // but prevent infinite loops if all elements are disabled by disabling recursion\n if (recurse && nextIndex === 0) {\n return getNextEnabledItem(\n new KeyboardEvent(event.type, { ...(event as any), key: 'ArrowDown' }) as any,\n options,\n nextIndex,\n false\n );\n }\n\n if (recurse && nextIndex === options.length - 1) {\n return getNextEnabledItem(\n new KeyboardEvent(event.type, { ...(event as any), key: 'ArrowUp' }) as any,\n options,\n nextIndex,\n false\n );\n }\n\n return getNextEnabledItem(event, options, nextIndex, recurse);\n }\n }\n\n return nextIndex;\n};\n\nconst isSkippableItem = (element: Element) => {\n return (\n element.getAttribute('role') === 'presentation' ||\n !!element.hasAttribute('disabled') ||\n !!element.getAttribute('aria-disabled') ||\n !!element.getAttribute('aria-hidden')\n );\n};\n"],"names":["useMergedRef","isAriaDirectionKey","createCustomKeyboardEvent"],"mappings":"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"}
1
+ {"version":3,"file":"Root.cjs","sources":["../../../../src/primitives/Collection/components/Root.tsx"],"sourcesContent":["import React from 'react';\n\nimport { useMergedRef } from '@/hooks/useMergedRef';\nimport { isAriaDirectionKey } from '@/utils/aria';\nimport { createCustomKeyboardEvent } from '@/utils/input';\n\n/* This component provides a keyboard navigable collection primitive for use in lists\n * It is unlikely you need to edit this component\n */\n\nexport type CollectionProps = React.HTMLAttributes<HTMLDivElement> & {\n querySelector: string;\n resetOnChange?: unknown;\n};\n\nexport type CollectionRef = HTMLDivElement & {\n setActiveIndexByElement: (option: HTMLDivElement) => void;\n};\n\nconst getOptionsFromCollection = (collection: HTMLDivElement, selector: string): NodeListOf<Element> =>\n collection.querySelectorAll(selector);\n\n// we use javascript to set attributes (rather than cloning children and adding them)\n// so that we can support nesting (e.g. groups) - child elements that aren't options.\n// without doing this we would have to unwrap and flatten all groups\nexport const Root = React.forwardRef<CollectionRef, CollectionProps>(function CollectionRoot(props, ref) {\n const { querySelector, resetOnChange, tabIndex = 0, ...otherProps } = props;\n const internalRef = useMergedRef<CollectionRef>(ref);\n const [activeIndex, setActiveIndex] = React.useState<number | undefined>();\n const isMultiselectable = props['aria-multiselectable'];\n\n const setActiveOption = (index: number, collection: HTMLDivElement, option: Element) => {\n collection.querySelector('[aria-current]')?.removeAttribute('aria-current');\n option.setAttribute('aria-current', 'true');\n\n option.scrollIntoView({ block: 'nearest' });\n setActiveIndex(index);\n };\n\n const setActiveIndexByElement = React.useCallback(\n (option: HTMLDivElement) => {\n if (internalRef.current && option.matches(querySelector)) {\n const options = getOptionsFromCollection(internalRef.current, querySelector);\n const nextActiveIndex = Array.from(options).indexOf(option);\n\n if (nextActiveIndex > -1) {\n setActiveOption(nextActiveIndex, internalRef.current, option);\n }\n }\n },\n [internalRef.current, querySelector]\n );\n\n React.useEffect(() => {\n if (internalRef.current) {\n internalRef.current.setActiveIndexByElement = setActiveIndexByElement;\n }\n }, [internalRef.current]);\n\n React.useEffect(() => {\n if (internalRef.current) {\n const options = getOptionsFromCollection(internalRef.current, querySelector);\n\n if (options.length && !isMultiselectable) {\n const firstSelected = internalRef.current.querySelector('[aria-selected]');\n\n if (firstSelected) {\n const selectedIndex = Array.from(options).indexOf(firstSelected);\n\n if (selectedIndex > -1 && selectedIndex !== activeIndex) {\n setActiveOption(selectedIndex, internalRef.current, firstSelected);\n }\n }\n }\n }\n }, [resetOnChange, isMultiselectable]);\n\n React.useEffect(() => {\n if (internalRef.current) {\n const options = getOptionsFromCollection(internalRef.current, querySelector);\n\n if (options.length) {\n let selected = internalRef.current.querySelectorAll('[aria-current=\"true\"]');\n\n // if nothing is current (keyboard visible), look for selected items\n if (selected.length === 0) {\n selected = internalRef.current.querySelectorAll('[aria-selected]');\n }\n\n // if one item is selected, make sure it's current\n if (selected.length === 1) {\n if (options) {\n const firstSelected = selected.item(0);\n const selectedIndex = Array.from(options).indexOf(firstSelected);\n\n if (selectedIndex > -1) {\n setActiveOption(selectedIndex, internalRef.current, firstSelected);\n }\n }\n } else {\n // multiple selected or none selected should go to 0\n setActiveOption(0, internalRef.current, options.item(0));\n }\n }\n }\n }, [props.children]);\n\n const handleClick = (event: React.MouseEvent<HTMLDivElement>) => {\n const target = event.target as HTMLElement;\n // after we allowed complex content in options (like prefix/postfix in Select2), the click target can be a child of the option\n // so in this case we need to find the closest option\n const option = target.matches(querySelector) ? target : target.closest(querySelector);\n\n if (option) {\n const options = getOptionsFromCollection(event.currentTarget, querySelector);\n const nextActiveIndex = Array.from(options).indexOf(option);\n\n if (nextActiveIndex > -1) {\n setActiveOption(nextActiveIndex, event.currentTarget, option);\n }\n }\n };\n\n const handleKeyDown = (event: React.KeyboardEvent<HTMLDivElement>) => {\n // this stops the event dispatched to the option rebounding back and starting an infinite loop\n if (event.target !== event.currentTarget) {\n return;\n }\n\n if (otherProps.onKeyDown) {\n otherProps.onKeyDown(event);\n }\n\n if (event.isDefaultPrevented()) {\n return;\n }\n\n const options = getOptionsFromCollection(event.currentTarget, querySelector);\n\n if (options) {\n if (isAriaDirectionKey(event)) {\n event.preventDefault();\n event.stopPropagation();\n const nextActiveIndex = getNextEnabledItem(event, options, activeIndex);\n\n if (nextActiveIndex !== undefined && nextActiveIndex !== activeIndex) {\n setActiveOption(nextActiveIndex, event.currentTarget, options.item(nextActiveIndex));\n }\n } else if (activeIndex !== undefined && !!options.item(activeIndex)) {\n // forward events onto the underlying option - this lets consumers place onKeyDown handlers on their own components\n options.item(activeIndex)?.dispatchEvent(createCustomKeyboardEvent(event));\n }\n }\n };\n\n return <div {...otherProps} onClick={handleClick} onKeyDown={handleKeyDown} ref={internalRef} tabIndex={tabIndex} />;\n});\n\nexport const getNextIndexFromKeycode = (\n event: React.KeyboardEvent,\n length: number,\n activeIndex: number | undefined\n): number | undefined => {\n switch (event.key) {\n case 'ArrowUp':\n return activeIndex === undefined ? length - 1 : activeIndex > 0 ? activeIndex - 1 : activeIndex;\n\n case 'ArrowDown':\n return activeIndex === undefined ? 0 : activeIndex < length - 1 ? activeIndex + 1 : activeIndex;\n\n case 'Home':\n return 0;\n\n case 'End':\n return length - 1;\n\n default:\n return;\n }\n};\n\nexport const getNextEnabledItem = (\n event: React.KeyboardEvent<HTMLElement>,\n options: NodeListOf<Element>,\n activeIndex: number | undefined,\n recurse = true\n): number | undefined => {\n const nextIndex = getNextIndexFromKeycode(event, options.length, activeIndex);\n\n if (nextIndex !== undefined) {\n if (nextIndex === activeIndex) {\n return activeIndex;\n }\n if (options.item(nextIndex) && isSkippableItem(options.item(nextIndex))) {\n // check in the other direction if the first or last item is disabled,\n // but prevent infinite loops if all elements are disabled by disabling recursion\n if (recurse && nextIndex === 0) {\n return getNextEnabledItem(\n new KeyboardEvent(event.type, { ...(event as any), key: 'ArrowDown' }) as any,\n options,\n nextIndex,\n false\n );\n }\n\n if (recurse && nextIndex === options.length - 1) {\n return getNextEnabledItem(\n new KeyboardEvent(event.type, { ...(event as any), key: 'ArrowUp' }) as any,\n options,\n nextIndex,\n false\n );\n }\n\n return getNextEnabledItem(event, options, nextIndex, recurse);\n }\n }\n\n return nextIndex;\n};\n\nconst isSkippableItem = (element: Element) => {\n return (\n element.getAttribute('role') === 'presentation' ||\n !!element.hasAttribute('disabled') ||\n !!element.getAttribute('aria-disabled') ||\n !!element.getAttribute('aria-hidden')\n );\n};\n"],"names":["useMergedRef","isAriaDirectionKey","createCustomKeyboardEvent"],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"Root.js","sources":["../../../../src/primitives/Collection/components/Root.tsx"],"sourcesContent":["import React from 'react';\n\nimport { useMergedRef } from '../../../hooks/useMergedRef';\nimport { isAriaDirectionKey } from '../../../utils/aria';\nimport { createCustomKeyboardEvent } from '../../../utils/input';\n\n/* This component provides a keyboard navigable collection primitive for use in lists\n * It is unlikely you need to edit this component\n */\n\nexport type CollectionProps = React.HTMLAttributes<HTMLDivElement> & {\n querySelector: string;\n resetOnChange?: unknown;\n};\n\nexport type CollectionRef = HTMLDivElement & {\n setActiveIndexByElement: (option: HTMLDivElement) => void;\n};\n\nconst getOptionsFromCollection = (collection: HTMLDivElement, selector: string): NodeListOf<Element> =>\n collection.querySelectorAll(selector);\n\n// we use javascript to set attributes (rather than cloning children and adding them)\n// so that we can support nesting (e.g. groups) - child elements that aren't options.\n// without doing this we would have to unwrap and flatten all groups\nexport const Root = React.forwardRef<CollectionRef, CollectionProps>(function CollectionRoot(props, ref) {\n const { querySelector, resetOnChange, tabIndex = 0, ...otherProps } = props;\n const internalRef = useMergedRef<CollectionRef>(ref);\n const [activeIndex, setActiveIndex] = React.useState<number | undefined>();\n const isMultiselectable = props['aria-multiselectable'];\n\n const setActiveOption = (index: number, collection: HTMLDivElement, option: Element) => {\n collection.querySelector('[aria-current]')?.removeAttribute('aria-current');\n option.setAttribute('aria-current', 'true');\n\n option.scrollIntoView({ block: 'nearest' });\n setActiveIndex(index);\n };\n\n const setActiveIndexByElement = React.useCallback(\n (option: HTMLDivElement) => {\n if (internalRef.current && option.matches(querySelector)) {\n const options = getOptionsFromCollection(internalRef.current, querySelector);\n const nextActiveIndex = Array.from(options).indexOf(option);\n\n if (nextActiveIndex > -1) {\n setActiveOption(nextActiveIndex, internalRef.current, option);\n }\n }\n },\n [internalRef.current, querySelector]\n );\n\n React.useEffect(() => {\n if (internalRef.current) {\n internalRef.current.setActiveIndexByElement = setActiveIndexByElement;\n }\n }, [internalRef.current]);\n\n React.useEffect(() => {\n if (internalRef.current) {\n const options = getOptionsFromCollection(internalRef.current, querySelector);\n\n if (options.length && !isMultiselectable) {\n const firstSelected = internalRef.current.querySelector('[aria-selected]');\n\n if (firstSelected) {\n const selectedIndex = Array.from(options).indexOf(firstSelected);\n\n if (selectedIndex > -1 && selectedIndex !== activeIndex) {\n setActiveOption(selectedIndex, internalRef.current, firstSelected);\n }\n }\n }\n }\n }, [resetOnChange, isMultiselectable]);\n\n React.useEffect(() => {\n if (internalRef.current) {\n const options = getOptionsFromCollection(internalRef.current, querySelector);\n\n if (options.length) {\n let selected = internalRef.current.querySelectorAll('[aria-current=\"true\"]');\n\n // if nothing is current (keyboard visible), look for selected items\n if (selected.length === 0) {\n selected = internalRef.current.querySelectorAll('[aria-selected]');\n }\n\n // if one item is selected, make sure it's current\n if (selected.length === 1) {\n if (options) {\n const firstSelected = selected.item(0);\n const selectedIndex = Array.from(options).indexOf(firstSelected);\n\n if (selectedIndex > -1) {\n setActiveOption(selectedIndex, internalRef.current, firstSelected);\n }\n }\n } else {\n // multiple selected or none selected should go to 0\n setActiveOption(0, internalRef.current, options.item(0));\n }\n }\n }\n }, [props.children]);\n\n const handleClick = (event: React.MouseEvent<HTMLDivElement>) => {\n const target = event.target as HTMLElement;\n // after we allowed complex content in options (like prefix/postfix in Select2), the click target can be a child of the option\n // so in this case we need to find the closest option\n const option = target.matches(querySelector) ? target : target.closest(querySelector);\n\n if (option) {\n const options = getOptionsFromCollection(event.currentTarget, querySelector);\n const nextActiveIndex = Array.from(options).indexOf(option);\n\n if (nextActiveIndex > -1) {\n setActiveOption(nextActiveIndex, event.currentTarget, option);\n }\n }\n };\n\n const handleKeyDown = (event: React.KeyboardEvent<HTMLDivElement>) => {\n // this stops the event dispatched to the option rebounding back and starting an infinite loop\n if (event.target !== event.currentTarget) {\n return;\n }\n\n if (otherProps.onKeyDown) {\n otherProps.onKeyDown(event);\n }\n\n if (event.isDefaultPrevented()) {\n return;\n }\n\n const options = getOptionsFromCollection(event.currentTarget, querySelector);\n\n if (options) {\n if (isAriaDirectionKey(event)) {\n event.preventDefault();\n event.stopPropagation();\n const nextActiveIndex = getNextEnabledItem(event, options, activeIndex);\n\n if (nextActiveIndex !== undefined && nextActiveIndex !== activeIndex) {\n setActiveOption(nextActiveIndex, event.currentTarget, options.item(nextActiveIndex));\n }\n } else if (activeIndex !== undefined && !!options.item(activeIndex)) {\n // forward events onto the underlying option - this lets consumers place onKeyDown handlers on their own components\n options.item(activeIndex)?.dispatchEvent(createCustomKeyboardEvent(event));\n }\n }\n };\n\n return <div {...otherProps} onClick={handleClick} onKeyDown={handleKeyDown} ref={internalRef} tabIndex={tabIndex} />;\n});\n\nexport const getNextIndexFromKeycode = (\n event: React.KeyboardEvent,\n length: number,\n activeIndex: number | undefined\n): number | undefined => {\n switch (event.key) {\n case 'ArrowUp':\n return activeIndex === undefined ? length - 1 : activeIndex > 0 ? activeIndex - 1 : activeIndex;\n\n case 'ArrowDown':\n return activeIndex === undefined ? 0 : activeIndex < length - 1 ? activeIndex + 1 : activeIndex;\n\n case 'Home':\n return 0;\n\n case 'End':\n return length - 1;\n\n default:\n return;\n }\n};\n\nexport const getNextEnabledItem = (\n event: React.KeyboardEvent<HTMLElement>,\n options: NodeListOf<Element>,\n activeIndex: number | undefined,\n recurse = true\n): number | undefined => {\n const nextIndex = getNextIndexFromKeycode(event, options.length, activeIndex);\n\n if (nextIndex !== undefined) {\n if (nextIndex === activeIndex) {\n return activeIndex;\n }\n if (options.item(nextIndex) && isSkippableItem(options.item(nextIndex))) {\n // check in the other direction if the first or last item is disabled,\n // but prevent infinite loops if all elements are disabled by disabling recursion\n if (recurse && nextIndex === 0) {\n return getNextEnabledItem(\n new KeyboardEvent(event.type, { ...(event as any), key: 'ArrowDown' }) as any,\n options,\n nextIndex,\n false\n );\n }\n\n if (recurse && nextIndex === options.length - 1) {\n return getNextEnabledItem(\n new KeyboardEvent(event.type, { ...(event as any), key: 'ArrowUp' }) as any,\n options,\n nextIndex,\n false\n );\n }\n\n return getNextEnabledItem(event, options, nextIndex, recurse);\n }\n }\n\n return nextIndex;\n};\n\nconst isSkippableItem = (element: Element) => {\n return (\n element.getAttribute('role') === 'presentation' ||\n !!element.hasAttribute('disabled') ||\n !!element.getAttribute('aria-disabled') ||\n !!element.getAttribute('aria-hidden')\n );\n};\n"],"names":["React"],"mappings":"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"}
1
+ {"version":3,"file":"Root.js","sources":["../../../../src/primitives/Collection/components/Root.tsx"],"sourcesContent":["import React from 'react';\n\nimport { useMergedRef } from '@/hooks/useMergedRef';\nimport { isAriaDirectionKey } from '@/utils/aria';\nimport { createCustomKeyboardEvent } from '@/utils/input';\n\n/* This component provides a keyboard navigable collection primitive for use in lists\n * It is unlikely you need to edit this component\n */\n\nexport type CollectionProps = React.HTMLAttributes<HTMLDivElement> & {\n querySelector: string;\n resetOnChange?: unknown;\n};\n\nexport type CollectionRef = HTMLDivElement & {\n setActiveIndexByElement: (option: HTMLDivElement) => void;\n};\n\nconst getOptionsFromCollection = (collection: HTMLDivElement, selector: string): NodeListOf<Element> =>\n collection.querySelectorAll(selector);\n\n// we use javascript to set attributes (rather than cloning children and adding them)\n// so that we can support nesting (e.g. groups) - child elements that aren't options.\n// without doing this we would have to unwrap and flatten all groups\nexport const Root = React.forwardRef<CollectionRef, CollectionProps>(function CollectionRoot(props, ref) {\n const { querySelector, resetOnChange, tabIndex = 0, ...otherProps } = props;\n const internalRef = useMergedRef<CollectionRef>(ref);\n const [activeIndex, setActiveIndex] = React.useState<number | undefined>();\n const isMultiselectable = props['aria-multiselectable'];\n\n const setActiveOption = (index: number, collection: HTMLDivElement, option: Element) => {\n collection.querySelector('[aria-current]')?.removeAttribute('aria-current');\n option.setAttribute('aria-current', 'true');\n\n option.scrollIntoView({ block: 'nearest' });\n setActiveIndex(index);\n };\n\n const setActiveIndexByElement = React.useCallback(\n (option: HTMLDivElement) => {\n if (internalRef.current && option.matches(querySelector)) {\n const options = getOptionsFromCollection(internalRef.current, querySelector);\n const nextActiveIndex = Array.from(options).indexOf(option);\n\n if (nextActiveIndex > -1) {\n setActiveOption(nextActiveIndex, internalRef.current, option);\n }\n }\n },\n [internalRef.current, querySelector]\n );\n\n React.useEffect(() => {\n if (internalRef.current) {\n internalRef.current.setActiveIndexByElement = setActiveIndexByElement;\n }\n }, [internalRef.current]);\n\n React.useEffect(() => {\n if (internalRef.current) {\n const options = getOptionsFromCollection(internalRef.current, querySelector);\n\n if (options.length && !isMultiselectable) {\n const firstSelected = internalRef.current.querySelector('[aria-selected]');\n\n if (firstSelected) {\n const selectedIndex = Array.from(options).indexOf(firstSelected);\n\n if (selectedIndex > -1 && selectedIndex !== activeIndex) {\n setActiveOption(selectedIndex, internalRef.current, firstSelected);\n }\n }\n }\n }\n }, [resetOnChange, isMultiselectable]);\n\n React.useEffect(() => {\n if (internalRef.current) {\n const options = getOptionsFromCollection(internalRef.current, querySelector);\n\n if (options.length) {\n let selected = internalRef.current.querySelectorAll('[aria-current=\"true\"]');\n\n // if nothing is current (keyboard visible), look for selected items\n if (selected.length === 0) {\n selected = internalRef.current.querySelectorAll('[aria-selected]');\n }\n\n // if one item is selected, make sure it's current\n if (selected.length === 1) {\n if (options) {\n const firstSelected = selected.item(0);\n const selectedIndex = Array.from(options).indexOf(firstSelected);\n\n if (selectedIndex > -1) {\n setActiveOption(selectedIndex, internalRef.current, firstSelected);\n }\n }\n } else {\n // multiple selected or none selected should go to 0\n setActiveOption(0, internalRef.current, options.item(0));\n }\n }\n }\n }, [props.children]);\n\n const handleClick = (event: React.MouseEvent<HTMLDivElement>) => {\n const target = event.target as HTMLElement;\n // after we allowed complex content in options (like prefix/postfix in Select2), the click target can be a child of the option\n // so in this case we need to find the closest option\n const option = target.matches(querySelector) ? target : target.closest(querySelector);\n\n if (option) {\n const options = getOptionsFromCollection(event.currentTarget, querySelector);\n const nextActiveIndex = Array.from(options).indexOf(option);\n\n if (nextActiveIndex > -1) {\n setActiveOption(nextActiveIndex, event.currentTarget, option);\n }\n }\n };\n\n const handleKeyDown = (event: React.KeyboardEvent<HTMLDivElement>) => {\n // this stops the event dispatched to the option rebounding back and starting an infinite loop\n if (event.target !== event.currentTarget) {\n return;\n }\n\n if (otherProps.onKeyDown) {\n otherProps.onKeyDown(event);\n }\n\n if (event.isDefaultPrevented()) {\n return;\n }\n\n const options = getOptionsFromCollection(event.currentTarget, querySelector);\n\n if (options) {\n if (isAriaDirectionKey(event)) {\n event.preventDefault();\n event.stopPropagation();\n const nextActiveIndex = getNextEnabledItem(event, options, activeIndex);\n\n if (nextActiveIndex !== undefined && nextActiveIndex !== activeIndex) {\n setActiveOption(nextActiveIndex, event.currentTarget, options.item(nextActiveIndex));\n }\n } else if (activeIndex !== undefined && !!options.item(activeIndex)) {\n // forward events onto the underlying option - this lets consumers place onKeyDown handlers on their own components\n options.item(activeIndex)?.dispatchEvent(createCustomKeyboardEvent(event));\n }\n }\n };\n\n return <div {...otherProps} onClick={handleClick} onKeyDown={handleKeyDown} ref={internalRef} tabIndex={tabIndex} />;\n});\n\nexport const getNextIndexFromKeycode = (\n event: React.KeyboardEvent,\n length: number,\n activeIndex: number | undefined\n): number | undefined => {\n switch (event.key) {\n case 'ArrowUp':\n return activeIndex === undefined ? length - 1 : activeIndex > 0 ? activeIndex - 1 : activeIndex;\n\n case 'ArrowDown':\n return activeIndex === undefined ? 0 : activeIndex < length - 1 ? activeIndex + 1 : activeIndex;\n\n case 'Home':\n return 0;\n\n case 'End':\n return length - 1;\n\n default:\n return;\n }\n};\n\nexport const getNextEnabledItem = (\n event: React.KeyboardEvent<HTMLElement>,\n options: NodeListOf<Element>,\n activeIndex: number | undefined,\n recurse = true\n): number | undefined => {\n const nextIndex = getNextIndexFromKeycode(event, options.length, activeIndex);\n\n if (nextIndex !== undefined) {\n if (nextIndex === activeIndex) {\n return activeIndex;\n }\n if (options.item(nextIndex) && isSkippableItem(options.item(nextIndex))) {\n // check in the other direction if the first or last item is disabled,\n // but prevent infinite loops if all elements are disabled by disabling recursion\n if (recurse && nextIndex === 0) {\n return getNextEnabledItem(\n new KeyboardEvent(event.type, { ...(event as any), key: 'ArrowDown' }) as any,\n options,\n nextIndex,\n false\n );\n }\n\n if (recurse && nextIndex === options.length - 1) {\n return getNextEnabledItem(\n new KeyboardEvent(event.type, { ...(event as any), key: 'ArrowUp' }) as any,\n options,\n nextIndex,\n false\n );\n }\n\n return getNextEnabledItem(event, options, nextIndex, recurse);\n }\n }\n\n return nextIndex;\n};\n\nconst isSkippableItem = (element: Element) => {\n return (\n element.getAttribute('role') === 'presentation' ||\n !!element.hasAttribute('disabled') ||\n !!element.getAttribute('aria-disabled') ||\n !!element.getAttribute('aria-hidden')\n );\n};\n"],"names":["React"],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"Option.cjs","sources":["../../../../src/primitives/Listbox2/components/Option.tsx"],"sourcesContent":["import React from 'react';\n\nimport { useId } from '../../../hooks/useId';\nimport { fixedForwardRef } from '../../../types';\nimport { isAriaSelectionKey } from '../../../utils/aria';\nimport type { Listbox2OptionValue } from '../types';\n\nimport { useListbox2Context } from './Context';\n\nexport type Listbox2OptionProps<T extends Listbox2OptionValue = Listbox2OptionValue> = React.HTMLAttributes<HTMLDivElement> & {\n disabled?: boolean;\n value: T;\n};\n\nexport const Option = fixedForwardRef(function Listbox2Option<T extends Listbox2OptionValue>(\n props: Listbox2OptionProps<T>,\n ref: React.Ref<HTMLDivElement>\n) {\n const { disabled, id: nativeId, title: _1, value, ...otherProps } = props;\n const { disabled: listboxDisabled, readOnly: listboxReadOnly, setValue, value: currentValue } = useListbox2Context();\n // The id name cannot start with a number, otherwise unit tests will fail when trying to querry element with such id.\n // That's why adding prefix.\n const id = 'option-' + useId(nativeId);\n const selected = Array.isArray(currentValue) ? currentValue.includes(value) : currentValue === value;\n\n const handleClick = (event: React.MouseEvent<HTMLDivElement>) => {\n if (disabled || listboxDisabled || listboxReadOnly) {\n event.stopPropagation();\n return;\n }\n setValue(value);\n\n if (typeof props.onClick === 'function') {\n props.onClick(event);\n }\n };\n\n const handleKeyDown = (event: React.KeyboardEvent<HTMLDivElement>) => {\n if (disabled || listboxDisabled || listboxReadOnly) {\n event.stopPropagation();\n return;\n }\n if (isAriaSelectionKey(event)) {\n setValue(value);\n }\n\n if (typeof props.onKeyDown === 'function') {\n props.onKeyDown(event);\n }\n };\n\n return (\n <div\n {...otherProps}\n aria-disabled={listboxDisabled || disabled ? 'true' : undefined}\n aria-selected={selected ? 'true' : undefined}\n id={id}\n onClick={handleClick}\n onKeyDown={handleKeyDown}\n ref={ref}\n role=\"option\"\n />\n );\n});\n"],"names":["fixedForwardRef","useListbox2Context","useId","isAriaSelectionKey"],"mappings":";;;;;;;AAcO,MAAM,SAASA,MAAAA,gBAAgB,SAAS,eAC3C,OACA,KACF;AACE,QAAM,EAAE,UAAU,IAAI,UAAU,OAAO,IAAI,OAAO,GAAG,WAAA,IAAe;AACpE,QAAM,EAAE,UAAU,iBAAiB,UAAU,iBAAiB,UAAU,OAAO,aAAA,IAAiBC,2BAAA;AAGhG,QAAM,KAAK,YAAYC,MAAAA,MAAM,QAAQ;AACrC,QAAM,WAAW,MAAM,QAAQ,YAAY,IAAI,aAAa,SAAS,KAAK,IAAI,iBAAiB;AAE/F,QAAM,cAAc,CAAC,UAA4C;AAC7D,QAAI,YAAY,mBAAmB,iBAAiB;AAChD,YAAM,gBAAA;AACN;AAAA,IACJ;AACA,aAAS,KAAK;AAEd,QAAI,OAAO,MAAM,YAAY,YAAY;AACrC,YAAM,QAAQ,KAAK;AAAA,IACvB;AAAA,EACJ;AAEA,QAAM,gBAAgB,CAAC,UAA+C;AAClE,QAAI,YAAY,mBAAmB,iBAAiB;AAChD,YAAM,gBAAA;AACN;AAAA,IACJ;AACA,QAAIC,KAAAA,mBAAmB,KAAK,GAAG;AAC3B,eAAS,KAAK;AAAA,IAClB;AAEA,QAAI,OAAO,MAAM,cAAc,YAAY;AACvC,YAAM,UAAU,KAAK;AAAA,IACzB;AAAA,EACJ;AAEA,SACI,sBAAA;AAAA,IAAC;AAAA,IAAA;AAAA,MACI,GAAG;AAAA,MACJ,iBAAe,mBAAmB,WAAW,SAAS;AAAA,MACtD,iBAAe,WAAW,SAAS;AAAA,MACnC;AAAA,MACA,SAAS;AAAA,MACT,WAAW;AAAA,MACX;AAAA,MACA,MAAK;AAAA,IAAA;AAAA,EAAA;AAGjB,CAAC;;"}
1
+ {"version":3,"file":"Option.cjs","sources":["../../../../src/primitives/Listbox2/components/Option.tsx"],"sourcesContent":["import React from 'react';\n\nimport { useId } from '@/hooks/useId';\nimport { fixedForwardRef } from '@/types';\nimport { isAriaSelectionKey } from '@/utils/aria';\n\nimport type { Listbox2OptionValue } from '../types';\n\nimport { useListbox2Context } from './Context';\n\nexport type Listbox2OptionProps<T extends Listbox2OptionValue = Listbox2OptionValue> = React.HTMLAttributes<HTMLDivElement> & {\n disabled?: boolean;\n value: T;\n};\n\nexport const Option = fixedForwardRef(function Listbox2Option<T extends Listbox2OptionValue>(\n props: Listbox2OptionProps<T>,\n ref: React.Ref<HTMLDivElement>\n) {\n const { disabled, id: nativeId, title: _1, value, ...otherProps } = props;\n const { disabled: listboxDisabled, readOnly: listboxReadOnly, setValue, value: currentValue } = useListbox2Context();\n // The id name cannot start with a number, otherwise unit tests will fail when trying to querry element with such id.\n // That's why adding prefix.\n const id = 'option-' + useId(nativeId);\n const selected = Array.isArray(currentValue) ? currentValue.includes(value) : currentValue === value;\n\n const handleClick = (event: React.MouseEvent<HTMLDivElement>) => {\n if (disabled || listboxDisabled || listboxReadOnly) {\n event.stopPropagation();\n return;\n }\n setValue(value);\n\n if (typeof props.onClick === 'function') {\n props.onClick(event);\n }\n };\n\n const handleKeyDown = (event: React.KeyboardEvent<HTMLDivElement>) => {\n if (disabled || listboxDisabled || listboxReadOnly) {\n event.stopPropagation();\n return;\n }\n if (isAriaSelectionKey(event)) {\n setValue(value);\n }\n\n if (typeof props.onKeyDown === 'function') {\n props.onKeyDown(event);\n }\n };\n\n return (\n <div\n {...otherProps}\n aria-disabled={listboxDisabled || disabled ? 'true' : undefined}\n aria-selected={selected ? 'true' : undefined}\n id={id}\n onClick={handleClick}\n onKeyDown={handleKeyDown}\n ref={ref}\n role=\"option\"\n />\n );\n});\n"],"names":["fixedForwardRef","useListbox2Context","useId","isAriaSelectionKey"],"mappings":";;;;;;;AAeO,MAAM,SAASA,MAAAA,gBAAgB,SAAS,eAC3C,OACA,KACF;AACE,QAAM,EAAE,UAAU,IAAI,UAAU,OAAO,IAAI,OAAO,GAAG,WAAA,IAAe;AACpE,QAAM,EAAE,UAAU,iBAAiB,UAAU,iBAAiB,UAAU,OAAO,aAAA,IAAiBC,2BAAA;AAGhG,QAAM,KAAK,YAAYC,MAAAA,MAAM,QAAQ;AACrC,QAAM,WAAW,MAAM,QAAQ,YAAY,IAAI,aAAa,SAAS,KAAK,IAAI,iBAAiB;AAE/F,QAAM,cAAc,CAAC,UAA4C;AAC7D,QAAI,YAAY,mBAAmB,iBAAiB;AAChD,YAAM,gBAAA;AACN;AAAA,IACJ;AACA,aAAS,KAAK;AAEd,QAAI,OAAO,MAAM,YAAY,YAAY;AACrC,YAAM,QAAQ,KAAK;AAAA,IACvB;AAAA,EACJ;AAEA,QAAM,gBAAgB,CAAC,UAA+C;AAClE,QAAI,YAAY,mBAAmB,iBAAiB;AAChD,YAAM,gBAAA;AACN;AAAA,IACJ;AACA,QAAIC,KAAAA,mBAAmB,KAAK,GAAG;AAC3B,eAAS,KAAK;AAAA,IAClB;AAEA,QAAI,OAAO,MAAM,cAAc,YAAY;AACvC,YAAM,UAAU,KAAK;AAAA,IACzB;AAAA,EACJ;AAEA,SACI,sBAAA;AAAA,IAAC;AAAA,IAAA;AAAA,MACI,GAAG;AAAA,MACJ,iBAAe,mBAAmB,WAAW,SAAS;AAAA,MACtD,iBAAe,WAAW,SAAS;AAAA,MACnC;AAAA,MACA,SAAS;AAAA,MACT,WAAW;AAAA,MACX;AAAA,MACA,MAAK;AAAA,IAAA;AAAA,EAAA;AAGjB,CAAC;;"}
@@ -1 +1 @@
1
- {"version":3,"file":"Option.js","sources":["../../../../src/primitives/Listbox2/components/Option.tsx"],"sourcesContent":["import React from 'react';\n\nimport { useId } from '../../../hooks/useId';\nimport { fixedForwardRef } from '../../../types';\nimport { isAriaSelectionKey } from '../../../utils/aria';\nimport type { Listbox2OptionValue } from '../types';\n\nimport { useListbox2Context } from './Context';\n\nexport type Listbox2OptionProps<T extends Listbox2OptionValue = Listbox2OptionValue> = React.HTMLAttributes<HTMLDivElement> & {\n disabled?: boolean;\n value: T;\n};\n\nexport const Option = fixedForwardRef(function Listbox2Option<T extends Listbox2OptionValue>(\n props: Listbox2OptionProps<T>,\n ref: React.Ref<HTMLDivElement>\n) {\n const { disabled, id: nativeId, title: _1, value, ...otherProps } = props;\n const { disabled: listboxDisabled, readOnly: listboxReadOnly, setValue, value: currentValue } = useListbox2Context();\n // The id name cannot start with a number, otherwise unit tests will fail when trying to querry element with such id.\n // That's why adding prefix.\n const id = 'option-' + useId(nativeId);\n const selected = Array.isArray(currentValue) ? currentValue.includes(value) : currentValue === value;\n\n const handleClick = (event: React.MouseEvent<HTMLDivElement>) => {\n if (disabled || listboxDisabled || listboxReadOnly) {\n event.stopPropagation();\n return;\n }\n setValue(value);\n\n if (typeof props.onClick === 'function') {\n props.onClick(event);\n }\n };\n\n const handleKeyDown = (event: React.KeyboardEvent<HTMLDivElement>) => {\n if (disabled || listboxDisabled || listboxReadOnly) {\n event.stopPropagation();\n return;\n }\n if (isAriaSelectionKey(event)) {\n setValue(value);\n }\n\n if (typeof props.onKeyDown === 'function') {\n props.onKeyDown(event);\n }\n };\n\n return (\n <div\n {...otherProps}\n aria-disabled={listboxDisabled || disabled ? 'true' : undefined}\n aria-selected={selected ? 'true' : undefined}\n id={id}\n onClick={handleClick}\n onKeyDown={handleKeyDown}\n ref={ref}\n role=\"option\"\n />\n );\n});\n"],"names":["React"],"mappings":";;;;;AAcO,MAAM,SAAS,gBAAgB,SAAS,eAC3C,OACA,KACF;AACE,QAAM,EAAE,UAAU,IAAI,UAAU,OAAO,IAAI,OAAO,GAAG,WAAA,IAAe;AACpE,QAAM,EAAE,UAAU,iBAAiB,UAAU,iBAAiB,UAAU,OAAO,aAAA,IAAiB,mBAAA;AAGhG,QAAM,KAAK,YAAY,MAAM,QAAQ;AACrC,QAAM,WAAW,MAAM,QAAQ,YAAY,IAAI,aAAa,SAAS,KAAK,IAAI,iBAAiB;AAE/F,QAAM,cAAc,CAAC,UAA4C;AAC7D,QAAI,YAAY,mBAAmB,iBAAiB;AAChD,YAAM,gBAAA;AACN;AAAA,IACJ;AACA,aAAS,KAAK;AAEd,QAAI,OAAO,MAAM,YAAY,YAAY;AACrC,YAAM,QAAQ,KAAK;AAAA,IACvB;AAAA,EACJ;AAEA,QAAM,gBAAgB,CAAC,UAA+C;AAClE,QAAI,YAAY,mBAAmB,iBAAiB;AAChD,YAAM,gBAAA;AACN;AAAA,IACJ;AACA,QAAI,mBAAmB,KAAK,GAAG;AAC3B,eAAS,KAAK;AAAA,IAClB;AAEA,QAAI,OAAO,MAAM,cAAc,YAAY;AACvC,YAAM,UAAU,KAAK;AAAA,IACzB;AAAA,EACJ;AAEA,SACIA,+BAAA;AAAA,IAAC;AAAA,IAAA;AAAA,MACI,GAAG;AAAA,MACJ,iBAAe,mBAAmB,WAAW,SAAS;AAAA,MACtD,iBAAe,WAAW,SAAS;AAAA,MACnC;AAAA,MACA,SAAS;AAAA,MACT,WAAW;AAAA,MACX;AAAA,MACA,MAAK;AAAA,IAAA;AAAA,EAAA;AAGjB,CAAC;"}
1
+ {"version":3,"file":"Option.js","sources":["../../../../src/primitives/Listbox2/components/Option.tsx"],"sourcesContent":["import React from 'react';\n\nimport { useId } from '@/hooks/useId';\nimport { fixedForwardRef } from '@/types';\nimport { isAriaSelectionKey } from '@/utils/aria';\n\nimport type { Listbox2OptionValue } from '../types';\n\nimport { useListbox2Context } from './Context';\n\nexport type Listbox2OptionProps<T extends Listbox2OptionValue = Listbox2OptionValue> = React.HTMLAttributes<HTMLDivElement> & {\n disabled?: boolean;\n value: T;\n};\n\nexport const Option = fixedForwardRef(function Listbox2Option<T extends Listbox2OptionValue>(\n props: Listbox2OptionProps<T>,\n ref: React.Ref<HTMLDivElement>\n) {\n const { disabled, id: nativeId, title: _1, value, ...otherProps } = props;\n const { disabled: listboxDisabled, readOnly: listboxReadOnly, setValue, value: currentValue } = useListbox2Context();\n // The id name cannot start with a number, otherwise unit tests will fail when trying to querry element with such id.\n // That's why adding prefix.\n const id = 'option-' + useId(nativeId);\n const selected = Array.isArray(currentValue) ? currentValue.includes(value) : currentValue === value;\n\n const handleClick = (event: React.MouseEvent<HTMLDivElement>) => {\n if (disabled || listboxDisabled || listboxReadOnly) {\n event.stopPropagation();\n return;\n }\n setValue(value);\n\n if (typeof props.onClick === 'function') {\n props.onClick(event);\n }\n };\n\n const handleKeyDown = (event: React.KeyboardEvent<HTMLDivElement>) => {\n if (disabled || listboxDisabled || listboxReadOnly) {\n event.stopPropagation();\n return;\n }\n if (isAriaSelectionKey(event)) {\n setValue(value);\n }\n\n if (typeof props.onKeyDown === 'function') {\n props.onKeyDown(event);\n }\n };\n\n return (\n <div\n {...otherProps}\n aria-disabled={listboxDisabled || disabled ? 'true' : undefined}\n aria-selected={selected ? 'true' : undefined}\n id={id}\n onClick={handleClick}\n onKeyDown={handleKeyDown}\n ref={ref}\n role=\"option\"\n />\n );\n});\n"],"names":["React"],"mappings":";;;;;AAeO,MAAM,SAAS,gBAAgB,SAAS,eAC3C,OACA,KACF;AACE,QAAM,EAAE,UAAU,IAAI,UAAU,OAAO,IAAI,OAAO,GAAG,WAAA,IAAe;AACpE,QAAM,EAAE,UAAU,iBAAiB,UAAU,iBAAiB,UAAU,OAAO,aAAA,IAAiB,mBAAA;AAGhG,QAAM,KAAK,YAAY,MAAM,QAAQ;AACrC,QAAM,WAAW,MAAM,QAAQ,YAAY,IAAI,aAAa,SAAS,KAAK,IAAI,iBAAiB;AAE/F,QAAM,cAAc,CAAC,UAA4C;AAC7D,QAAI,YAAY,mBAAmB,iBAAiB;AAChD,YAAM,gBAAA;AACN;AAAA,IACJ;AACA,aAAS,KAAK;AAEd,QAAI,OAAO,MAAM,YAAY,YAAY;AACrC,YAAM,QAAQ,KAAK;AAAA,IACvB;AAAA,EACJ;AAEA,QAAM,gBAAgB,CAAC,UAA+C;AAClE,QAAI,YAAY,mBAAmB,iBAAiB;AAChD,YAAM,gBAAA;AACN;AAAA,IACJ;AACA,QAAI,mBAAmB,KAAK,GAAG;AAC3B,eAAS,KAAK;AAAA,IAClB;AAEA,QAAI,OAAO,MAAM,cAAc,YAAY;AACvC,YAAM,UAAU,KAAK;AAAA,IACzB;AAAA,EACJ;AAEA,SACIA,+BAAA;AAAA,IAAC;AAAA,IAAA;AAAA,MACI,GAAG;AAAA,MACJ,iBAAe,mBAAmB,WAAW,SAAS;AAAA,MACtD,iBAAe,WAAW,SAAS;AAAA,MACnC;AAAA,MACA,SAAS;AAAA,MACT,WAAW;AAAA,MACX;AAAA,MACA,MAAK;AAAA,IAAA;AAAA,EAAA;AAGjB,CAAC;"}
@@ -1 +1 @@
1
- {"version":3,"file":"Root.cjs","sources":["../../../../src/primitives/Listbox2/components/Root.tsx"],"sourcesContent":["import React from 'react';\n\nimport { useId } from '../../../hooks/useId';\nimport * as CollectionPrimitive from '../../Collection/Collection';\nimport type { Listbox2Value } from '../types';\n\nimport { Listbox2Context } from './Context';\n\nexport type Listbox2Props = React.HTMLAttributes<HTMLDivElement> & {\n customSelector?: string;\n disabled?: boolean;\n multiple?: boolean;\n readOnly?: boolean;\n setValue: (value: Listbox2Value) => void;\n value?: Listbox2Value;\n};\n\nconst DEFAULT_SELECTOR = '[role=\"option\"]';\n\nexport const Root = React.forwardRef<CollectionPrimitive.CollectionRef, Listbox2Props>(function Listbox2(props, ref) {\n const {\n children,\n customSelector,\n disabled = false,\n id: nativeId,\n multiple,\n readOnly = false,\n setValue,\n title: _1,\n value,\n ...otherProps\n } = props;\n // The id name cannot start with a number, otherwise unit tests will fail when trying to querry element with such id.\n // That's why adding prefix.\n const id = 'listbox2-' + useId(nativeId);\n\n const context = React.useMemo(\n () => ({\n disabled,\n readOnly,\n setValue,\n value,\n }),\n [disabled, readOnly, value]\n );\n\n return (\n <Listbox2Context.Provider value={context}>\n <div data-taco=\"listbox2\">\n <CollectionPrimitive.Root\n {...otherProps}\n aria-multiselectable={multiple ? true : undefined}\n id={id}\n querySelector={customSelector ? `${DEFAULT_SELECTOR}, ${customSelector}` : DEFAULT_SELECTOR}\n ref={ref}\n resetOnChange={value}\n role=\"listbox\">\n {children}\n </CollectionPrimitive.Root>\n </div>\n </Listbox2Context.Provider>\n );\n});\n\nexport const createListboxValueSetter =\n (multiple: boolean, setValue: React.Dispatch<React.SetStateAction<Listbox2Value | undefined>>) =>\n (nextValue: Listbox2Value | undefined) => {\n setValue(value => {\n if (nextValue === undefined || Array.isArray(nextValue)) {\n return nextValue;\n }\n\n if (multiple) {\n if (value === undefined) {\n return [nextValue];\n }\n\n if (Array.isArray(value)) {\n if (value.includes(nextValue)) {\n return value.filter(v => v !== nextValue);\n }\n\n return [...value, nextValue];\n }\n\n if (value === nextValue) {\n return [];\n }\n\n return [value, nextValue];\n }\n\n return nextValue;\n });\n };\n"],"names":["useId","Listbox2Context","CollectionPrimitive.Root"],"mappings":";;;;;;AAiBA,MAAM,mBAAmB;AAElB,MAAM,OAAO,MAAM,WAA6D,SAAS,SAAS,OAAO,KAAK;AACjH,QAAM;AAAA,IACF;AAAA,IACA;AAAA,IACA,WAAW;AAAA,IACX,IAAI;AAAA,IACJ;AAAA,IACA,WAAW;AAAA,IACX;AAAA,IACA,OAAO;AAAA,IACP;AAAA,IACA,GAAG;AAAA,EAAA,IACH;AAGJ,QAAM,KAAK,cAAcA,MAAAA,MAAM,QAAQ;AAEvC,QAAM,UAAU,MAAM;AAAA,IAClB,OAAO;AAAA,MACH;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,IAAA;AAAA,IAEJ,CAAC,UAAU,UAAU,KAAK;AAAA,EAAA;AAG9B,SACI,sBAAA,cAACC,QAAAA,gBAAgB,UAAhB,EAAyB,OAAO,QAAA,GAC7B,sBAAA,cAAC,OAAA,EAAI,aAAU,WAAA,GACX,sBAAA;AAAA,IAACC,OAAAA;AAAAA,IAAA;AAAA,MACI,GAAG;AAAA,MACJ,wBAAsB,WAAW,OAAO;AAAA,MACxC;AAAA,MACA,eAAe,iBAAiB,GAAG,gBAAgB,KAAK,cAAc,KAAK;AAAA,MAC3E;AAAA,MACA,eAAe;AAAA,MACf,MAAK;AAAA,IAAA;AAAA,IACJ;AAAA,EAAA,CAET,CACJ;AAER,CAAC;AAEM,MAAM,2BACT,CAAC,UAAmB,aACpB,CAAC,cAAyC;AACtC,WAAS,CAAA,UAAS;AACd,QAAI,cAAc,UAAa,MAAM,QAAQ,SAAS,GAAG;AACrD,aAAO;AAAA,IACX;AAEA,QAAI,UAAU;AACV,UAAI,UAAU,QAAW;AACrB,eAAO,CAAC,SAAS;AAAA,MACrB;AAEA,UAAI,MAAM,QAAQ,KAAK,GAAG;AACtB,YAAI,MAAM,SAAS,SAAS,GAAG;AAC3B,iBAAO,MAAM,OAAO,CAAA,MAAK,MAAM,SAAS;AAAA,QAC5C;AAEA,eAAO,CAAC,GAAG,OAAO,SAAS;AAAA,MAC/B;AAEA,UAAI,UAAU,WAAW;AACrB,eAAO,CAAA;AAAA,MACX;AAEA,aAAO,CAAC,OAAO,SAAS;AAAA,IAC5B;AAEA,WAAO;AAAA,EACX,CAAC;AACL;;;"}
1
+ {"version":3,"file":"Root.cjs","sources":["../../../../src/primitives/Listbox2/components/Root.tsx"],"sourcesContent":["import React from 'react';\n\nimport { useId } from '@/hooks/useId';\nimport * as CollectionPrimitive from '@/primitives/Collection/Collection';\n\nimport type { Listbox2Value } from '../types';\n\nimport { Listbox2Context } from './Context';\n\nexport type Listbox2Props = React.HTMLAttributes<HTMLDivElement> & {\n customSelector?: string;\n disabled?: boolean;\n multiple?: boolean;\n readOnly?: boolean;\n setValue: (value: Listbox2Value) => void;\n value?: Listbox2Value;\n};\n\nconst DEFAULT_SELECTOR = '[role=\"option\"]';\n\nexport const Root = React.forwardRef<CollectionPrimitive.CollectionRef, Listbox2Props>(function Listbox2(props, ref) {\n const {\n children,\n customSelector,\n disabled = false,\n id: nativeId,\n multiple,\n readOnly = false,\n setValue,\n title: _1,\n value,\n ...otherProps\n } = props;\n // The id name cannot start with a number, otherwise unit tests will fail when trying to querry element with such id.\n // That's why adding prefix.\n const id = 'listbox2-' + useId(nativeId);\n\n const context = React.useMemo(\n () => ({\n disabled,\n readOnly,\n setValue,\n value,\n }),\n [disabled, readOnly, value]\n );\n\n return (\n <Listbox2Context.Provider value={context}>\n <div data-taco=\"listbox2\">\n <CollectionPrimitive.Root\n {...otherProps}\n aria-multiselectable={multiple ? true : undefined}\n id={id}\n querySelector={customSelector ? `${DEFAULT_SELECTOR}, ${customSelector}` : DEFAULT_SELECTOR}\n ref={ref}\n resetOnChange={value}\n role=\"listbox\">\n {children}\n </CollectionPrimitive.Root>\n </div>\n </Listbox2Context.Provider>\n );\n});\n\nexport const createListboxValueSetter =\n (multiple: boolean, setValue: React.Dispatch<React.SetStateAction<Listbox2Value | undefined>>) =>\n (nextValue: Listbox2Value | undefined) => {\n setValue(value => {\n if (nextValue === undefined || Array.isArray(nextValue)) {\n return nextValue;\n }\n\n if (multiple) {\n if (value === undefined) {\n return [nextValue];\n }\n\n if (Array.isArray(value)) {\n if (value.includes(nextValue)) {\n return value.filter(v => v !== nextValue);\n }\n\n return [...value, nextValue];\n }\n\n if (value === nextValue) {\n return [];\n }\n\n return [value, nextValue];\n }\n\n return nextValue;\n });\n };\n"],"names":["useId","Listbox2Context","CollectionPrimitive.Root"],"mappings":";;;;;;AAkBA,MAAM,mBAAmB;AAElB,MAAM,OAAO,MAAM,WAA6D,SAAS,SAAS,OAAO,KAAK;AACjH,QAAM;AAAA,IACF;AAAA,IACA;AAAA,IACA,WAAW;AAAA,IACX,IAAI;AAAA,IACJ;AAAA,IACA,WAAW;AAAA,IACX;AAAA,IACA,OAAO;AAAA,IACP;AAAA,IACA,GAAG;AAAA,EAAA,IACH;AAGJ,QAAM,KAAK,cAAcA,MAAAA,MAAM,QAAQ;AAEvC,QAAM,UAAU,MAAM;AAAA,IAClB,OAAO;AAAA,MACH;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,IAAA;AAAA,IAEJ,CAAC,UAAU,UAAU,KAAK;AAAA,EAAA;AAG9B,SACI,sBAAA,cAACC,QAAAA,gBAAgB,UAAhB,EAAyB,OAAO,QAAA,GAC7B,sBAAA,cAAC,OAAA,EAAI,aAAU,WAAA,GACX,sBAAA;AAAA,IAACC,OAAAA;AAAAA,IAAA;AAAA,MACI,GAAG;AAAA,MACJ,wBAAsB,WAAW,OAAO;AAAA,MACxC;AAAA,MACA,eAAe,iBAAiB,GAAG,gBAAgB,KAAK,cAAc,KAAK;AAAA,MAC3E;AAAA,MACA,eAAe;AAAA,MACf,MAAK;AAAA,IAAA;AAAA,IACJ;AAAA,EAAA,CAET,CACJ;AAER,CAAC;AAEM,MAAM,2BACT,CAAC,UAAmB,aACpB,CAAC,cAAyC;AACtC,WAAS,CAAA,UAAS;AACd,QAAI,cAAc,UAAa,MAAM,QAAQ,SAAS,GAAG;AACrD,aAAO;AAAA,IACX;AAEA,QAAI,UAAU;AACV,UAAI,UAAU,QAAW;AACrB,eAAO,CAAC,SAAS;AAAA,MACrB;AAEA,UAAI,MAAM,QAAQ,KAAK,GAAG;AACtB,YAAI,MAAM,SAAS,SAAS,GAAG;AAC3B,iBAAO,MAAM,OAAO,CAAA,MAAK,MAAM,SAAS;AAAA,QAC5C;AAEA,eAAO,CAAC,GAAG,OAAO,SAAS;AAAA,MAC/B;AAEA,UAAI,UAAU,WAAW;AACrB,eAAO,CAAA;AAAA,MACX;AAEA,aAAO,CAAC,OAAO,SAAS;AAAA,IAC5B;AAEA,WAAO;AAAA,EACX,CAAC;AACL;;;"}
@@ -1 +1 @@
1
- {"version":3,"file":"Root.js","sources":["../../../../src/primitives/Listbox2/components/Root.tsx"],"sourcesContent":["import React from 'react';\n\nimport { useId } from '../../../hooks/useId';\nimport * as CollectionPrimitive from '../../Collection/Collection';\nimport type { Listbox2Value } from '../types';\n\nimport { Listbox2Context } from './Context';\n\nexport type Listbox2Props = React.HTMLAttributes<HTMLDivElement> & {\n customSelector?: string;\n disabled?: boolean;\n multiple?: boolean;\n readOnly?: boolean;\n setValue: (value: Listbox2Value) => void;\n value?: Listbox2Value;\n};\n\nconst DEFAULT_SELECTOR = '[role=\"option\"]';\n\nexport const Root = React.forwardRef<CollectionPrimitive.CollectionRef, Listbox2Props>(function Listbox2(props, ref) {\n const {\n children,\n customSelector,\n disabled = false,\n id: nativeId,\n multiple,\n readOnly = false,\n setValue,\n title: _1,\n value,\n ...otherProps\n } = props;\n // The id name cannot start with a number, otherwise unit tests will fail when trying to querry element with such id.\n // That's why adding prefix.\n const id = 'listbox2-' + useId(nativeId);\n\n const context = React.useMemo(\n () => ({\n disabled,\n readOnly,\n setValue,\n value,\n }),\n [disabled, readOnly, value]\n );\n\n return (\n <Listbox2Context.Provider value={context}>\n <div data-taco=\"listbox2\">\n <CollectionPrimitive.Root\n {...otherProps}\n aria-multiselectable={multiple ? true : undefined}\n id={id}\n querySelector={customSelector ? `${DEFAULT_SELECTOR}, ${customSelector}` : DEFAULT_SELECTOR}\n ref={ref}\n resetOnChange={value}\n role=\"listbox\">\n {children}\n </CollectionPrimitive.Root>\n </div>\n </Listbox2Context.Provider>\n );\n});\n\nexport const createListboxValueSetter =\n (multiple: boolean, setValue: React.Dispatch<React.SetStateAction<Listbox2Value | undefined>>) =>\n (nextValue: Listbox2Value | undefined) => {\n setValue(value => {\n if (nextValue === undefined || Array.isArray(nextValue)) {\n return nextValue;\n }\n\n if (multiple) {\n if (value === undefined) {\n return [nextValue];\n }\n\n if (Array.isArray(value)) {\n if (value.includes(nextValue)) {\n return value.filter(v => v !== nextValue);\n }\n\n return [...value, nextValue];\n }\n\n if (value === nextValue) {\n return [];\n }\n\n return [value, nextValue];\n }\n\n return nextValue;\n });\n };\n"],"names":["React","CollectionPrimitive.Root"],"mappings":";;;;AAiBA,MAAM,mBAAmB;AAElB,MAAM,OAAOA,eAAM,WAA6D,SAAS,SAAS,OAAO,KAAK;AACjH,QAAM;AAAA,IACF;AAAA,IACA;AAAA,IACA,WAAW;AAAA,IACX,IAAI;AAAA,IACJ;AAAA,IACA,WAAW;AAAA,IACX;AAAA,IACA,OAAO;AAAA,IACP;AAAA,IACA,GAAG;AAAA,EAAA,IACH;AAGJ,QAAM,KAAK,cAAc,MAAM,QAAQ;AAEvC,QAAM,UAAUA,eAAM;AAAA,IAClB,OAAO;AAAA,MACH;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,IAAA;AAAA,IAEJ,CAAC,UAAU,UAAU,KAAK;AAAA,EAAA;AAG9B,SACIA,+BAAA,cAAC,gBAAgB,UAAhB,EAAyB,OAAO,QAAA,GAC7BA,+BAAA,cAAC,OAAA,EAAI,aAAU,WAAA,GACXA,+BAAA;AAAA,IAACC;AAAAA,IAAA;AAAA,MACI,GAAG;AAAA,MACJ,wBAAsB,WAAW,OAAO;AAAA,MACxC;AAAA,MACA,eAAe,iBAAiB,GAAG,gBAAgB,KAAK,cAAc,KAAK;AAAA,MAC3E;AAAA,MACA,eAAe;AAAA,MACf,MAAK;AAAA,IAAA;AAAA,IACJ;AAAA,EAAA,CAET,CACJ;AAER,CAAC;AAEM,MAAM,2BACT,CAAC,UAAmB,aACpB,CAAC,cAAyC;AACtC,WAAS,CAAA,UAAS;AACd,QAAI,cAAc,UAAa,MAAM,QAAQ,SAAS,GAAG;AACrD,aAAO;AAAA,IACX;AAEA,QAAI,UAAU;AACV,UAAI,UAAU,QAAW;AACrB,eAAO,CAAC,SAAS;AAAA,MACrB;AAEA,UAAI,MAAM,QAAQ,KAAK,GAAG;AACtB,YAAI,MAAM,SAAS,SAAS,GAAG;AAC3B,iBAAO,MAAM,OAAO,CAAA,MAAK,MAAM,SAAS;AAAA,QAC5C;AAEA,eAAO,CAAC,GAAG,OAAO,SAAS;AAAA,MAC/B;AAEA,UAAI,UAAU,WAAW;AACrB,eAAO,CAAA;AAAA,MACX;AAEA,aAAO,CAAC,OAAO,SAAS;AAAA,IAC5B;AAEA,WAAO;AAAA,EACX,CAAC;AACL;"}
1
+ {"version":3,"file":"Root.js","sources":["../../../../src/primitives/Listbox2/components/Root.tsx"],"sourcesContent":["import React from 'react';\n\nimport { useId } from '@/hooks/useId';\nimport * as CollectionPrimitive from '@/primitives/Collection/Collection';\n\nimport type { Listbox2Value } from '../types';\n\nimport { Listbox2Context } from './Context';\n\nexport type Listbox2Props = React.HTMLAttributes<HTMLDivElement> & {\n customSelector?: string;\n disabled?: boolean;\n multiple?: boolean;\n readOnly?: boolean;\n setValue: (value: Listbox2Value) => void;\n value?: Listbox2Value;\n};\n\nconst DEFAULT_SELECTOR = '[role=\"option\"]';\n\nexport const Root = React.forwardRef<CollectionPrimitive.CollectionRef, Listbox2Props>(function Listbox2(props, ref) {\n const {\n children,\n customSelector,\n disabled = false,\n id: nativeId,\n multiple,\n readOnly = false,\n setValue,\n title: _1,\n value,\n ...otherProps\n } = props;\n // The id name cannot start with a number, otherwise unit tests will fail when trying to querry element with such id.\n // That's why adding prefix.\n const id = 'listbox2-' + useId(nativeId);\n\n const context = React.useMemo(\n () => ({\n disabled,\n readOnly,\n setValue,\n value,\n }),\n [disabled, readOnly, value]\n );\n\n return (\n <Listbox2Context.Provider value={context}>\n <div data-taco=\"listbox2\">\n <CollectionPrimitive.Root\n {...otherProps}\n aria-multiselectable={multiple ? true : undefined}\n id={id}\n querySelector={customSelector ? `${DEFAULT_SELECTOR}, ${customSelector}` : DEFAULT_SELECTOR}\n ref={ref}\n resetOnChange={value}\n role=\"listbox\">\n {children}\n </CollectionPrimitive.Root>\n </div>\n </Listbox2Context.Provider>\n );\n});\n\nexport const createListboxValueSetter =\n (multiple: boolean, setValue: React.Dispatch<React.SetStateAction<Listbox2Value | undefined>>) =>\n (nextValue: Listbox2Value | undefined) => {\n setValue(value => {\n if (nextValue === undefined || Array.isArray(nextValue)) {\n return nextValue;\n }\n\n if (multiple) {\n if (value === undefined) {\n return [nextValue];\n }\n\n if (Array.isArray(value)) {\n if (value.includes(nextValue)) {\n return value.filter(v => v !== nextValue);\n }\n\n return [...value, nextValue];\n }\n\n if (value === nextValue) {\n return [];\n }\n\n return [value, nextValue];\n }\n\n return nextValue;\n });\n };\n"],"names":["React","CollectionPrimitive.Root"],"mappings":";;;;AAkBA,MAAM,mBAAmB;AAElB,MAAM,OAAOA,eAAM,WAA6D,SAAS,SAAS,OAAO,KAAK;AACjH,QAAM;AAAA,IACF;AAAA,IACA;AAAA,IACA,WAAW;AAAA,IACX,IAAI;AAAA,IACJ;AAAA,IACA,WAAW;AAAA,IACX;AAAA,IACA,OAAO;AAAA,IACP;AAAA,IACA,GAAG;AAAA,EAAA,IACH;AAGJ,QAAM,KAAK,cAAc,MAAM,QAAQ;AAEvC,QAAM,UAAUA,eAAM;AAAA,IAClB,OAAO;AAAA,MACH;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,IAAA;AAAA,IAEJ,CAAC,UAAU,UAAU,KAAK;AAAA,EAAA;AAG9B,SACIA,+BAAA,cAAC,gBAAgB,UAAhB,EAAyB,OAAO,QAAA,GAC7BA,+BAAA,cAAC,OAAA,EAAI,aAAU,WAAA,GACXA,+BAAA;AAAA,IAACC;AAAAA,IAAA;AAAA,MACI,GAAG;AAAA,MACJ,wBAAsB,WAAW,OAAO;AAAA,MACxC;AAAA,MACA,eAAe,iBAAiB,GAAG,gBAAgB,KAAK,cAAc,KAAK;AAAA,MAC3E;AAAA,MACA,eAAe;AAAA,MACf,MAAK;AAAA,IAAA;AAAA,IACJ;AAAA,EAAA,CAET,CACJ;AAER,CAAC;AAEM,MAAM,2BACT,CAAC,UAAmB,aACpB,CAAC,cAAyC;AACtC,WAAS,CAAA,UAAS;AACd,QAAI,cAAc,UAAa,MAAM,QAAQ,SAAS,GAAG;AACrD,aAAO;AAAA,IACX;AAEA,QAAI,UAAU;AACV,UAAI,UAAU,QAAW;AACrB,eAAO,CAAC,SAAS;AAAA,MACrB;AAEA,UAAI,MAAM,QAAQ,KAAK,GAAG;AACtB,YAAI,MAAM,SAAS,SAAS,GAAG;AAC3B,iBAAO,MAAM,OAAO,CAAA,MAAK,MAAM,SAAS;AAAA,QAC5C;AAEA,eAAO,CAAC,GAAG,OAAO,SAAS;AAAA,MAC/B;AAEA,UAAI,UAAU,WAAW;AACrB,eAAO,CAAA;AAAA,MACX;AAEA,aAAO,CAAC,OAAO,SAAS;AAAA,IAC5B;AAEA,WAAO;AAAA,EACX,CAAC;AACL;"}
@@ -1 +1 @@
1
- {"version":3,"file":"Title.cjs","sources":["../../../../src/primitives/Listbox2/components/Title.tsx"],"sourcesContent":["import React from 'react';\n\nimport { useId } from '../../../hooks/useId';\n\nimport { useListbox2GroupContext } from './Group';\n\nexport type Listbox2TitleProps = React.HTMLAttributes<HTMLDivElement>;\n\nexport const Title = React.forwardRef<HTMLDivElement, Listbox2TitleProps>(function Listbox2Group(props, ref) {\n const { id: nativeId, ...otherProps } = props;\n const { setLabelledById } = useListbox2GroupContext();\n const id = useId(nativeId);\n\n React.useEffect(() => {\n setLabelledById(id);\n }, [id]);\n\n return <div {...otherProps} id={id} ref={ref} role=\"presentation\" />;\n});\n"],"names":["useListbox2GroupContext","useId"],"mappings":";;;;;AAQO,MAAM,QAAQ,MAAM,WAA+C,SAAS,cAAc,OAAO,KAAK;AACzG,QAAM,EAAE,IAAI,UAAU,GAAG,eAAe;AACxC,QAAM,EAAE,gBAAA,IAAoBA,8BAAA;AAC5B,QAAM,KAAKC,MAAAA,MAAM,QAAQ;AAEzB,QAAM,UAAU,MAAM;AAClB,oBAAgB,EAAE;AAAA,EACtB,GAAG,CAAC,EAAE,CAAC;AAEP,6CAAQ,OAAA,EAAK,GAAG,YAAY,IAAQ,KAAU,MAAK,gBAAe;AACtE,CAAC;;"}
1
+ {"version":3,"file":"Title.cjs","sources":["../../../../src/primitives/Listbox2/components/Title.tsx"],"sourcesContent":["import React from 'react';\n\nimport { useId } from '@/hooks/useId';\n\nimport { useListbox2GroupContext } from './Group';\n\nexport type Listbox2TitleProps = React.HTMLAttributes<HTMLDivElement>;\n\nexport const Title = React.forwardRef<HTMLDivElement, Listbox2TitleProps>(function Listbox2Group(props, ref) {\n const { id: nativeId, ...otherProps } = props;\n const { setLabelledById } = useListbox2GroupContext();\n const id = useId(nativeId);\n\n React.useEffect(() => {\n setLabelledById(id);\n }, [id]);\n\n return <div {...otherProps} id={id} ref={ref} role=\"presentation\" />;\n});\n"],"names":["useListbox2GroupContext","useId"],"mappings":";;;;;AAQO,MAAM,QAAQ,MAAM,WAA+C,SAAS,cAAc,OAAO,KAAK;AACzG,QAAM,EAAE,IAAI,UAAU,GAAG,eAAe;AACxC,QAAM,EAAE,gBAAA,IAAoBA,8BAAA;AAC5B,QAAM,KAAKC,MAAAA,MAAM,QAAQ;AAEzB,QAAM,UAAU,MAAM;AAClB,oBAAgB,EAAE;AAAA,EACtB,GAAG,CAAC,EAAE,CAAC;AAEP,6CAAQ,OAAA,EAAK,GAAG,YAAY,IAAQ,KAAU,MAAK,gBAAe;AACtE,CAAC;;"}
@@ -1 +1 @@
1
- {"version":3,"file":"Title.js","sources":["../../../../src/primitives/Listbox2/components/Title.tsx"],"sourcesContent":["import React from 'react';\n\nimport { useId } from '../../../hooks/useId';\n\nimport { useListbox2GroupContext } from './Group';\n\nexport type Listbox2TitleProps = React.HTMLAttributes<HTMLDivElement>;\n\nexport const Title = React.forwardRef<HTMLDivElement, Listbox2TitleProps>(function Listbox2Group(props, ref) {\n const { id: nativeId, ...otherProps } = props;\n const { setLabelledById } = useListbox2GroupContext();\n const id = useId(nativeId);\n\n React.useEffect(() => {\n setLabelledById(id);\n }, [id]);\n\n return <div {...otherProps} id={id} ref={ref} role=\"presentation\" />;\n});\n"],"names":["React"],"mappings":";;;AAQO,MAAM,QAAQA,eAAM,WAA+C,SAAS,cAAc,OAAO,KAAK;AACzG,QAAM,EAAE,IAAI,UAAU,GAAG,eAAe;AACxC,QAAM,EAAE,gBAAA,IAAoB,wBAAA;AAC5B,QAAM,KAAK,MAAM,QAAQ;AAEzBA,iBAAM,UAAU,MAAM;AAClB,oBAAgB,EAAE;AAAA,EACtB,GAAG,CAAC,EAAE,CAAC;AAEP,sDAAQ,OAAA,EAAK,GAAG,YAAY,IAAQ,KAAU,MAAK,gBAAe;AACtE,CAAC;"}
1
+ {"version":3,"file":"Title.js","sources":["../../../../src/primitives/Listbox2/components/Title.tsx"],"sourcesContent":["import React from 'react';\n\nimport { useId } from '@/hooks/useId';\n\nimport { useListbox2GroupContext } from './Group';\n\nexport type Listbox2TitleProps = React.HTMLAttributes<HTMLDivElement>;\n\nexport const Title = React.forwardRef<HTMLDivElement, Listbox2TitleProps>(function Listbox2Group(props, ref) {\n const { id: nativeId, ...otherProps } = props;\n const { setLabelledById } = useListbox2GroupContext();\n const id = useId(nativeId);\n\n React.useEffect(() => {\n setLabelledById(id);\n }, [id]);\n\n return <div {...otherProps} id={id} ref={ref} role=\"presentation\" />;\n});\n"],"names":["React"],"mappings":";;;AAQO,MAAM,QAAQA,eAAM,WAA+C,SAAS,cAAc,OAAO,KAAK;AACzG,QAAM,EAAE,IAAI,UAAU,GAAG,eAAe;AACxC,QAAM,EAAE,gBAAA,IAAoB,wBAAA;AAC5B,QAAM,KAAK,MAAM,QAAQ;AAEzBA,iBAAM,UAAU,MAAM;AAClB,oBAAgB,EAAE;AAAA,EACtB,GAAG,CAAC,EAAE,CAAC;AAEP,sDAAQ,OAAA,EAAK,GAAG,YAAY,IAAQ,KAAU,MAAK,gBAAe;AACtE,CAAC;"}
@@ -1 +1 @@
1
- {"version":3,"file":"Body.cjs","sources":["../../../../../../src/primitives/Table/Core/components/Body/Body.tsx"],"sourcesContent":["import type { Table as ReactTable, TableMeta as ReactTableMeta } from '@tanstack/react-table';\nimport React from 'react';\n\nimport { hasFocusableElement } from '../../../../../utils/dom';\nimport { isPressingMetaKey } from '../../../../../utils/keyboard';\nimport type { TableRef } from '../../../types';\nimport { getReachableRowCount } from '../../../useTableManager/util/rows';\n\nimport { useAugmentedFocusManager } from './util';\n\ntype BodyProps<TType = unknown> = React.HTMLAttributes<HTMLTableSectionElement> & {\n enableHorizontalArrowKeyNavigation?: boolean;\n scrollToIndex: (index: number) => void;\n table: ReactTable<TType>;\n tableElement: TableRef | null;\n};\n\nexport function Body<TType = unknown>(props: BodyProps<TType>) {\n const { enableHorizontalArrowKeyNavigation = false, scrollToIndex, table, tableElement, ...attributes } = props;\n const ref = React.useRef<HTMLTableSectionElement>(null);\n const focusManager = useAugmentedFocusManager();\n const tableMeta = table.options.meta as ReactTableMeta<TType>;\n\n const handleKeyDown = (event: React.KeyboardEvent) => {\n const isEventTriggeredInsideTable = (event.target as HTMLElement)?.closest('tbody') === ref.current; // this prevents the handler from running when a dialog is opened from within the table (unless the table itself is in a dialog).\n\n if (event.isDefaultPrevented() || event.isPropagationStopped() || !isEventTriggeredInsideTable) {\n return;\n }\n\n if (tableMeta.rowActive.rowActiveIndex !== undefined) {\n const isFirstRow = tableMeta.rowActive.rowActiveIndex === 0;\n\n const reachableRows = getReachableRowCount(table);\n const isLastRow = tableMeta.rowActive.rowActiveIndex === reachableRows - 1;\n\n if (\n event.key === 'Tab' ||\n (enableHorizontalArrowKeyNavigation && (event.key === 'ArrowLeft' || event.key === 'ArrowRight'))\n ) {\n if (event.key === 'Tab' && !hasFocusableElement((event.target as HTMLElement).closest('tr[data-row-id]'))) {\n return;\n }\n\n tableMeta.rowActive.setHoverStatePaused(true);\n\n const isMetaKeyPressed = isPressingMetaKey(event);\n let focusedElement;\n\n switch (event.key) {\n case 'ArrowLeft':\n focusedElement = isMetaKeyPressed ? focusManager.focusFirst() : focusManager.focusPrevious(true);\n break;\n case 'ArrowRight':\n focusedElement = isMetaKeyPressed ? focusManager.focusLast() : focusManager.focusNext(true);\n\n // Scrolls table all the way to the right\n if (isMetaKeyPressed && tableElement) {\n tableElement.scrollLeft = tableElement.scrollWidth;\n }\n\n break;\n default:\n focusedElement = event.shiftKey ? focusManager.focusPrevious() : focusManager.focusNext();\n break;\n }\n\n if (focusedElement) {\n // override default behaviour, since we're handling focus internally now\n event.preventDefault();\n return;\n }\n\n // The code below only executes when focusedElement was undefined/null. This happens only when arrow-left/shift+tab\n // is pressed on the first cell or arrow-right/tab is pressed on the last cell.\n if (event.shiftKey || event.key === 'ArrowLeft') {\n if (!isFirstRow) {\n // there are no previous elements to focus, go up a row or go outside the table\n // but only if there are actually any focusable elements in the row\n event.preventDefault();\n const prevIndex = tableMeta.rowActive.rowActiveIndex - 1;\n tableMeta.rowActive.setRowActiveIndex(prevIndex);\n requestAnimationFrame(() => {\n focusManager.focusLast();\n scrollToIndex(prevIndex);\n });\n }\n } else if (!isLastRow) {\n // there are no next elements to focus, go down a row or go outside the table\n // but only if there are actually any focusable elements in the row\n event.preventDefault();\n const nextIndex = tableMeta.rowActive.rowActiveIndex + 1;\n tableMeta.rowActive.setRowActiveIndex(nextIndex);\n requestAnimationFrame(() => {\n focusManager.focusFirst();\n scrollToIndex(nextIndex);\n });\n }\n }\n }\n };\n const handleMouseMove = React.useCallback(\n (event: React.MouseEvent<HTMLTableSectionElement>) => {\n if (!(event.target instanceof HTMLElement)) {\n return;\n }\n\n const currentTable = ref.current?.closest('table');\n const targetTable = event.target.closest('table');\n\n // If we're in a different table context, don't handle the event\n if (targetTable !== currentTable) {\n return;\n }\n\n const rowIndex = event.target.closest('tr[data-row-id]')?.getAttribute('data-row-index');\n\n // Clear hover state if no valid row found, handles expanded section case too\n if (!rowIndex) {\n tableMeta.rowActive.setRowHoverIndex(undefined);\n return;\n }\n\n tableMeta.rowActive.setRowHoverIndex(Number(rowIndex));\n },\n [ref]\n );\n\n // Sometimes this event does not trigger if the mouse leaves the window without leaving boundary of the table\n // this is a browser level bug and there's not much to be done about it\n const handleMouseLeave = React.useCallback(() => tableMeta.rowActive.setRowHoverIndex(undefined), []);\n\n return (\n <tbody\n {...attributes}\n onKeyDown={handleKeyDown}\n onMouseLeave={handleMouseLeave}\n onMouseMove={handleMouseMove}\n // Prevents menu dropdowns inside the row from being closed straight after being opened, wehn clicked on a menu trigger\n onFocus={e => e.stopPropagation()}\n ref={ref}\n />\n );\n}\n"],"names":["useAugmentedFocusManager","getReachableRowCount","hasFocusableElement","isPressingMetaKey"],"mappings":"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"}
1
+ {"version":3,"file":"Body.cjs","sources":["../../../../../../src/primitives/Table/Core/components/Body/Body.tsx"],"sourcesContent":["import type { Table as ReactTable, TableMeta as ReactTableMeta } from '@tanstack/react-table';\nimport React from 'react';\n\nimport { hasFocusableElement } from '@/utils/dom';\nimport { isPressingMetaKey } from '@/utils/keyboard';\n\nimport type { TableRef } from '../../../types';\nimport { getReachableRowCount } from '../../../useTableManager/util/rows';\n\nimport { useAugmentedFocusManager } from './util';\n\ntype BodyProps<TType = unknown> = React.HTMLAttributes<HTMLTableSectionElement> & {\n enableHorizontalArrowKeyNavigation?: boolean;\n scrollToIndex: (index: number) => void;\n table: ReactTable<TType>;\n tableElement: TableRef | null;\n};\n\nexport function Body<TType = unknown>(props: BodyProps<TType>) {\n const { enableHorizontalArrowKeyNavigation = false, scrollToIndex, table, tableElement, ...attributes } = props;\n const ref = React.useRef<HTMLTableSectionElement>(null);\n const focusManager = useAugmentedFocusManager();\n const tableMeta = table.options.meta as ReactTableMeta<TType>;\n\n const handleKeyDown = (event: React.KeyboardEvent) => {\n const isEventTriggeredInsideTable = (event.target as HTMLElement)?.closest('tbody') === ref.current; // this prevents the handler from running when a dialog is opened from within the table (unless the table itself is in a dialog).\n\n if (event.isDefaultPrevented() || event.isPropagationStopped() || !isEventTriggeredInsideTable) {\n return;\n }\n\n if (tableMeta.rowActive.rowActiveIndex !== undefined) {\n const isFirstRow = tableMeta.rowActive.rowActiveIndex === 0;\n\n const reachableRows = getReachableRowCount(table);\n const isLastRow = tableMeta.rowActive.rowActiveIndex === reachableRows - 1;\n\n if (\n event.key === 'Tab' ||\n (enableHorizontalArrowKeyNavigation && (event.key === 'ArrowLeft' || event.key === 'ArrowRight'))\n ) {\n if (event.key === 'Tab' && !hasFocusableElement((event.target as HTMLElement).closest('tr[data-row-id]'))) {\n return;\n }\n\n tableMeta.rowActive.setHoverStatePaused(true);\n\n const isMetaKeyPressed = isPressingMetaKey(event);\n let focusedElement;\n\n switch (event.key) {\n case 'ArrowLeft':\n focusedElement = isMetaKeyPressed ? focusManager.focusFirst() : focusManager.focusPrevious(true);\n break;\n case 'ArrowRight':\n focusedElement = isMetaKeyPressed ? focusManager.focusLast() : focusManager.focusNext(true);\n\n // Scrolls table all the way to the right\n if (isMetaKeyPressed && tableElement) {\n tableElement.scrollLeft = tableElement.scrollWidth;\n }\n\n break;\n default:\n focusedElement = event.shiftKey ? focusManager.focusPrevious() : focusManager.focusNext();\n break;\n }\n\n if (focusedElement) {\n // override default behaviour, since we're handling focus internally now\n event.preventDefault();\n return;\n }\n\n // The code below only executes when focusedElement was undefined/null. This happens only when arrow-left/shift+tab\n // is pressed on the first cell or arrow-right/tab is pressed on the last cell.\n if (event.shiftKey || event.key === 'ArrowLeft') {\n if (!isFirstRow) {\n // there are no previous elements to focus, go up a row or go outside the table\n // but only if there are actually any focusable elements in the row\n event.preventDefault();\n const prevIndex = tableMeta.rowActive.rowActiveIndex - 1;\n tableMeta.rowActive.setRowActiveIndex(prevIndex);\n requestAnimationFrame(() => {\n focusManager.focusLast();\n scrollToIndex(prevIndex);\n });\n }\n } else if (!isLastRow) {\n // there are no next elements to focus, go down a row or go outside the table\n // but only if there are actually any focusable elements in the row\n event.preventDefault();\n const nextIndex = tableMeta.rowActive.rowActiveIndex + 1;\n tableMeta.rowActive.setRowActiveIndex(nextIndex);\n requestAnimationFrame(() => {\n focusManager.focusFirst();\n scrollToIndex(nextIndex);\n });\n }\n }\n }\n };\n const handleMouseMove = React.useCallback(\n (event: React.MouseEvent<HTMLTableSectionElement>) => {\n if (!(event.target instanceof HTMLElement)) {\n return;\n }\n\n const currentTable = ref.current?.closest('table');\n const targetTable = event.target.closest('table');\n\n // If we're in a different table context, don't handle the event\n if (targetTable !== currentTable) {\n return;\n }\n\n const rowIndex = event.target.closest('tr[data-row-id]')?.getAttribute('data-row-index');\n\n // Clear hover state if no valid row found, handles expanded section case too\n if (!rowIndex) {\n tableMeta.rowActive.setRowHoverIndex(undefined);\n return;\n }\n\n tableMeta.rowActive.setRowHoverIndex(Number(rowIndex));\n },\n [ref]\n );\n\n // Sometimes this event does not trigger if the mouse leaves the window without leaving boundary of the table\n // this is a browser level bug and there's not much to be done about it\n const handleMouseLeave = React.useCallback(() => tableMeta.rowActive.setRowHoverIndex(undefined), []);\n\n return (\n <tbody\n {...attributes}\n onKeyDown={handleKeyDown}\n onMouseLeave={handleMouseLeave}\n onMouseMove={handleMouseMove}\n // Prevents menu dropdowns inside the row from being closed straight after being opened, wehn clicked on a menu trigger\n onFocus={e => e.stopPropagation()}\n ref={ref}\n />\n );\n}\n"],"names":["useAugmentedFocusManager","getReachableRowCount","hasFocusableElement","isPressingMetaKey"],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"Body.js","sources":["../../../../../../src/primitives/Table/Core/components/Body/Body.tsx"],"sourcesContent":["import type { Table as ReactTable, TableMeta as ReactTableMeta } from '@tanstack/react-table';\nimport React from 'react';\n\nimport { hasFocusableElement } from '../../../../../utils/dom';\nimport { isPressingMetaKey } from '../../../../../utils/keyboard';\nimport type { TableRef } from '../../../types';\nimport { getReachableRowCount } from '../../../useTableManager/util/rows';\n\nimport { useAugmentedFocusManager } from './util';\n\ntype BodyProps<TType = unknown> = React.HTMLAttributes<HTMLTableSectionElement> & {\n enableHorizontalArrowKeyNavigation?: boolean;\n scrollToIndex: (index: number) => void;\n table: ReactTable<TType>;\n tableElement: TableRef | null;\n};\n\nexport function Body<TType = unknown>(props: BodyProps<TType>) {\n const { enableHorizontalArrowKeyNavigation = false, scrollToIndex, table, tableElement, ...attributes } = props;\n const ref = React.useRef<HTMLTableSectionElement>(null);\n const focusManager = useAugmentedFocusManager();\n const tableMeta = table.options.meta as ReactTableMeta<TType>;\n\n const handleKeyDown = (event: React.KeyboardEvent) => {\n const isEventTriggeredInsideTable = (event.target as HTMLElement)?.closest('tbody') === ref.current; // this prevents the handler from running when a dialog is opened from within the table (unless the table itself is in a dialog).\n\n if (event.isDefaultPrevented() || event.isPropagationStopped() || !isEventTriggeredInsideTable) {\n return;\n }\n\n if (tableMeta.rowActive.rowActiveIndex !== undefined) {\n const isFirstRow = tableMeta.rowActive.rowActiveIndex === 0;\n\n const reachableRows = getReachableRowCount(table);\n const isLastRow = tableMeta.rowActive.rowActiveIndex === reachableRows - 1;\n\n if (\n event.key === 'Tab' ||\n (enableHorizontalArrowKeyNavigation && (event.key === 'ArrowLeft' || event.key === 'ArrowRight'))\n ) {\n if (event.key === 'Tab' && !hasFocusableElement((event.target as HTMLElement).closest('tr[data-row-id]'))) {\n return;\n }\n\n tableMeta.rowActive.setHoverStatePaused(true);\n\n const isMetaKeyPressed = isPressingMetaKey(event);\n let focusedElement;\n\n switch (event.key) {\n case 'ArrowLeft':\n focusedElement = isMetaKeyPressed ? focusManager.focusFirst() : focusManager.focusPrevious(true);\n break;\n case 'ArrowRight':\n focusedElement = isMetaKeyPressed ? focusManager.focusLast() : focusManager.focusNext(true);\n\n // Scrolls table all the way to the right\n if (isMetaKeyPressed && tableElement) {\n tableElement.scrollLeft = tableElement.scrollWidth;\n }\n\n break;\n default:\n focusedElement = event.shiftKey ? focusManager.focusPrevious() : focusManager.focusNext();\n break;\n }\n\n if (focusedElement) {\n // override default behaviour, since we're handling focus internally now\n event.preventDefault();\n return;\n }\n\n // The code below only executes when focusedElement was undefined/null. This happens only when arrow-left/shift+tab\n // is pressed on the first cell or arrow-right/tab is pressed on the last cell.\n if (event.shiftKey || event.key === 'ArrowLeft') {\n if (!isFirstRow) {\n // there are no previous elements to focus, go up a row or go outside the table\n // but only if there are actually any focusable elements in the row\n event.preventDefault();\n const prevIndex = tableMeta.rowActive.rowActiveIndex - 1;\n tableMeta.rowActive.setRowActiveIndex(prevIndex);\n requestAnimationFrame(() => {\n focusManager.focusLast();\n scrollToIndex(prevIndex);\n });\n }\n } else if (!isLastRow) {\n // there are no next elements to focus, go down a row or go outside the table\n // but only if there are actually any focusable elements in the row\n event.preventDefault();\n const nextIndex = tableMeta.rowActive.rowActiveIndex + 1;\n tableMeta.rowActive.setRowActiveIndex(nextIndex);\n requestAnimationFrame(() => {\n focusManager.focusFirst();\n scrollToIndex(nextIndex);\n });\n }\n }\n }\n };\n const handleMouseMove = React.useCallback(\n (event: React.MouseEvent<HTMLTableSectionElement>) => {\n if (!(event.target instanceof HTMLElement)) {\n return;\n }\n\n const currentTable = ref.current?.closest('table');\n const targetTable = event.target.closest('table');\n\n // If we're in a different table context, don't handle the event\n if (targetTable !== currentTable) {\n return;\n }\n\n const rowIndex = event.target.closest('tr[data-row-id]')?.getAttribute('data-row-index');\n\n // Clear hover state if no valid row found, handles expanded section case too\n if (!rowIndex) {\n tableMeta.rowActive.setRowHoverIndex(undefined);\n return;\n }\n\n tableMeta.rowActive.setRowHoverIndex(Number(rowIndex));\n },\n [ref]\n );\n\n // Sometimes this event does not trigger if the mouse leaves the window without leaving boundary of the table\n // this is a browser level bug and there's not much to be done about it\n const handleMouseLeave = React.useCallback(() => tableMeta.rowActive.setRowHoverIndex(undefined), []);\n\n return (\n <tbody\n {...attributes}\n onKeyDown={handleKeyDown}\n onMouseLeave={handleMouseLeave}\n onMouseMove={handleMouseMove}\n // Prevents menu dropdowns inside the row from being closed straight after being opened, wehn clicked on a menu trigger\n onFocus={e => e.stopPropagation()}\n ref={ref}\n />\n );\n}\n"],"names":["React"],"mappings":"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"}
1
+ {"version":3,"file":"Body.js","sources":["../../../../../../src/primitives/Table/Core/components/Body/Body.tsx"],"sourcesContent":["import type { Table as ReactTable, TableMeta as ReactTableMeta } from '@tanstack/react-table';\nimport React from 'react';\n\nimport { hasFocusableElement } from '@/utils/dom';\nimport { isPressingMetaKey } from '@/utils/keyboard';\n\nimport type { TableRef } from '../../../types';\nimport { getReachableRowCount } from '../../../useTableManager/util/rows';\n\nimport { useAugmentedFocusManager } from './util';\n\ntype BodyProps<TType = unknown> = React.HTMLAttributes<HTMLTableSectionElement> & {\n enableHorizontalArrowKeyNavigation?: boolean;\n scrollToIndex: (index: number) => void;\n table: ReactTable<TType>;\n tableElement: TableRef | null;\n};\n\nexport function Body<TType = unknown>(props: BodyProps<TType>) {\n const { enableHorizontalArrowKeyNavigation = false, scrollToIndex, table, tableElement, ...attributes } = props;\n const ref = React.useRef<HTMLTableSectionElement>(null);\n const focusManager = useAugmentedFocusManager();\n const tableMeta = table.options.meta as ReactTableMeta<TType>;\n\n const handleKeyDown = (event: React.KeyboardEvent) => {\n const isEventTriggeredInsideTable = (event.target as HTMLElement)?.closest('tbody') === ref.current; // this prevents the handler from running when a dialog is opened from within the table (unless the table itself is in a dialog).\n\n if (event.isDefaultPrevented() || event.isPropagationStopped() || !isEventTriggeredInsideTable) {\n return;\n }\n\n if (tableMeta.rowActive.rowActiveIndex !== undefined) {\n const isFirstRow = tableMeta.rowActive.rowActiveIndex === 0;\n\n const reachableRows = getReachableRowCount(table);\n const isLastRow = tableMeta.rowActive.rowActiveIndex === reachableRows - 1;\n\n if (\n event.key === 'Tab' ||\n (enableHorizontalArrowKeyNavigation && (event.key === 'ArrowLeft' || event.key === 'ArrowRight'))\n ) {\n if (event.key === 'Tab' && !hasFocusableElement((event.target as HTMLElement).closest('tr[data-row-id]'))) {\n return;\n }\n\n tableMeta.rowActive.setHoverStatePaused(true);\n\n const isMetaKeyPressed = isPressingMetaKey(event);\n let focusedElement;\n\n switch (event.key) {\n case 'ArrowLeft':\n focusedElement = isMetaKeyPressed ? focusManager.focusFirst() : focusManager.focusPrevious(true);\n break;\n case 'ArrowRight':\n focusedElement = isMetaKeyPressed ? focusManager.focusLast() : focusManager.focusNext(true);\n\n // Scrolls table all the way to the right\n if (isMetaKeyPressed && tableElement) {\n tableElement.scrollLeft = tableElement.scrollWidth;\n }\n\n break;\n default:\n focusedElement = event.shiftKey ? focusManager.focusPrevious() : focusManager.focusNext();\n break;\n }\n\n if (focusedElement) {\n // override default behaviour, since we're handling focus internally now\n event.preventDefault();\n return;\n }\n\n // The code below only executes when focusedElement was undefined/null. This happens only when arrow-left/shift+tab\n // is pressed on the first cell or arrow-right/tab is pressed on the last cell.\n if (event.shiftKey || event.key === 'ArrowLeft') {\n if (!isFirstRow) {\n // there are no previous elements to focus, go up a row or go outside the table\n // but only if there are actually any focusable elements in the row\n event.preventDefault();\n const prevIndex = tableMeta.rowActive.rowActiveIndex - 1;\n tableMeta.rowActive.setRowActiveIndex(prevIndex);\n requestAnimationFrame(() => {\n focusManager.focusLast();\n scrollToIndex(prevIndex);\n });\n }\n } else if (!isLastRow) {\n // there are no next elements to focus, go down a row or go outside the table\n // but only if there are actually any focusable elements in the row\n event.preventDefault();\n const nextIndex = tableMeta.rowActive.rowActiveIndex + 1;\n tableMeta.rowActive.setRowActiveIndex(nextIndex);\n requestAnimationFrame(() => {\n focusManager.focusFirst();\n scrollToIndex(nextIndex);\n });\n }\n }\n }\n };\n const handleMouseMove = React.useCallback(\n (event: React.MouseEvent<HTMLTableSectionElement>) => {\n if (!(event.target instanceof HTMLElement)) {\n return;\n }\n\n const currentTable = ref.current?.closest('table');\n const targetTable = event.target.closest('table');\n\n // If we're in a different table context, don't handle the event\n if (targetTable !== currentTable) {\n return;\n }\n\n const rowIndex = event.target.closest('tr[data-row-id]')?.getAttribute('data-row-index');\n\n // Clear hover state if no valid row found, handles expanded section case too\n if (!rowIndex) {\n tableMeta.rowActive.setRowHoverIndex(undefined);\n return;\n }\n\n tableMeta.rowActive.setRowHoverIndex(Number(rowIndex));\n },\n [ref]\n );\n\n // Sometimes this event does not trigger if the mouse leaves the window without leaving boundary of the table\n // this is a browser level bug and there's not much to be done about it\n const handleMouseLeave = React.useCallback(() => tableMeta.rowActive.setRowHoverIndex(undefined), []);\n\n return (\n <tbody\n {...attributes}\n onKeyDown={handleKeyDown}\n onMouseLeave={handleMouseLeave}\n onMouseMove={handleMouseMove}\n // Prevents menu dropdowns inside the row from being closed straight after being opened, wehn clicked on a menu trigger\n onFocus={e => e.stopPropagation()}\n ref={ref}\n />\n );\n}\n"],"names":["React"],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"EmptyStateBody.cjs","sources":["../../../../../../src/primitives/Table/Core/components/Body/EmptyStateBody.tsx"],"sourcesContent":["import React from 'react';\n\nimport { useBoundingClientRectListener } from '../../../../../hooks/useBoundingClientRectListener';\nimport type { TableEmptyStateReason, TableEmptyStateRenderer } from '../../../types';\n\ntype EmptyStateProps = React.HTMLAttributes<HTMLTableSectionElement> & {\n emptyState?: TableEmptyStateRenderer;\n isReady: boolean;\n reason: TableEmptyStateReason;\n};\n\nexport function EmptyStateBody(props: EmptyStateProps) {\n const { emptyState: Placeholder, isReady, reason, ...attributes } = props;\n const ref = React.useRef<HTMLTableSectionElement>(null);\n\n const rect = useBoundingClientRectListener({ current: ref.current?.parentNode as HTMLElement });\n\n if (!isReady) {\n return <tbody {...attributes} className=\"!auto-rows-fr\" />;\n }\n\n return (\n <tbody {...attributes} ref={ref} className=\"!auto-rows-fr\" data-taco=\"empty-state\">\n <tr className=\"!auto-rows-fr\">\n <td style={{ maxWidth: rect?.width }} className=\"col-span-full !border-0 !p-0 hover:!bg-white\">\n {Placeholder ? <Placeholder reason={reason} /> : undefined}\n </td>\n </tr>\n </tbody>\n );\n}\n"],"names":["useBoundingClientRectListener"],"mappings":";;;;AAWO,SAAS,eAAe,OAAwB;AACnD,QAAM,EAAE,YAAY,aAAa,SAAS,QAAQ,GAAG,eAAe;AACpE,QAAM,MAAM,MAAM,OAAgC,IAAI;AAEtD,QAAM,OAAOA,8BAAAA,8BAA8B,EAAE,SAAS,IAAI,SAAS,YAA2B;AAE9F,MAAI,CAAC,SAAS;AACV,WAAO,sBAAA,cAAC,SAAA,EAAO,GAAG,YAAY,WAAU,iBAAgB;AAAA,EAC5D;AAEA,SACI,sBAAA,cAAC,SAAA,EAAO,GAAG,YAAY,KAAU,WAAU,iBAAgB,aAAU,cAAA,GACjE,sBAAA,cAAC,MAAA,EAAG,WAAU,mBACV,sBAAA,cAAC,MAAA,EAAG,OAAO,EAAE,UAAU,MAAM,MAAA,GAAS,WAAU,+CAAA,GAC3C,cAAc,sBAAA,cAAC,aAAA,EAAY,QAAgB,IAAK,MACrD,CACJ,CACJ;AAER;;"}
1
+ {"version":3,"file":"EmptyStateBody.cjs","sources":["../../../../../../src/primitives/Table/Core/components/Body/EmptyStateBody.tsx"],"sourcesContent":["import React from 'react';\n\nimport { useBoundingClientRectListener } from '@/hooks/useBoundingClientRectListener';\n\nimport type { TableEmptyStateReason, TableEmptyStateRenderer } from '../../../types';\n\ntype EmptyStateProps = React.HTMLAttributes<HTMLTableSectionElement> & {\n emptyState?: TableEmptyStateRenderer;\n isReady: boolean;\n reason: TableEmptyStateReason;\n};\n\nexport function EmptyStateBody(props: EmptyStateProps) {\n const { emptyState: Placeholder, isReady, reason, ...attributes } = props;\n const ref = React.useRef<HTMLTableSectionElement>(null);\n\n const rect = useBoundingClientRectListener({ current: ref.current?.parentNode as HTMLElement });\n\n if (!isReady) {\n return <tbody {...attributes} className=\"!auto-rows-fr\" />;\n }\n\n return (\n <tbody {...attributes} ref={ref} className=\"!auto-rows-fr\" data-taco=\"empty-state\">\n <tr className=\"!auto-rows-fr\">\n <td style={{ maxWidth: rect?.width }} className=\"col-span-full !border-0 !p-0 hover:!bg-white\">\n {Placeholder ? <Placeholder reason={reason} /> : undefined}\n </td>\n </tr>\n </tbody>\n );\n}\n"],"names":["useBoundingClientRectListener"],"mappings":";;;;AAYO,SAAS,eAAe,OAAwB;AACnD,QAAM,EAAE,YAAY,aAAa,SAAS,QAAQ,GAAG,eAAe;AACpE,QAAM,MAAM,MAAM,OAAgC,IAAI;AAEtD,QAAM,OAAOA,8BAAAA,8BAA8B,EAAE,SAAS,IAAI,SAAS,YAA2B;AAE9F,MAAI,CAAC,SAAS;AACV,WAAO,sBAAA,cAAC,SAAA,EAAO,GAAG,YAAY,WAAU,iBAAgB;AAAA,EAC5D;AAEA,SACI,sBAAA,cAAC,SAAA,EAAO,GAAG,YAAY,KAAU,WAAU,iBAAgB,aAAU,cAAA,GACjE,sBAAA,cAAC,MAAA,EAAG,WAAU,mBACV,sBAAA,cAAC,MAAA,EAAG,OAAO,EAAE,UAAU,MAAM,MAAA,GAAS,WAAU,+CAAA,GAC3C,cAAc,sBAAA,cAAC,aAAA,EAAY,QAAgB,IAAK,MACrD,CACJ,CACJ;AAER;;"}
@@ -1 +1 @@
1
- {"version":3,"file":"EmptyStateBody.js","sources":["../../../../../../src/primitives/Table/Core/components/Body/EmptyStateBody.tsx"],"sourcesContent":["import React from 'react';\n\nimport { useBoundingClientRectListener } from '../../../../../hooks/useBoundingClientRectListener';\nimport type { TableEmptyStateReason, TableEmptyStateRenderer } from '../../../types';\n\ntype EmptyStateProps = React.HTMLAttributes<HTMLTableSectionElement> & {\n emptyState?: TableEmptyStateRenderer;\n isReady: boolean;\n reason: TableEmptyStateReason;\n};\n\nexport function EmptyStateBody(props: EmptyStateProps) {\n const { emptyState: Placeholder, isReady, reason, ...attributes } = props;\n const ref = React.useRef<HTMLTableSectionElement>(null);\n\n const rect = useBoundingClientRectListener({ current: ref.current?.parentNode as HTMLElement });\n\n if (!isReady) {\n return <tbody {...attributes} className=\"!auto-rows-fr\" />;\n }\n\n return (\n <tbody {...attributes} ref={ref} className=\"!auto-rows-fr\" data-taco=\"empty-state\">\n <tr className=\"!auto-rows-fr\">\n <td style={{ maxWidth: rect?.width }} className=\"col-span-full !border-0 !p-0 hover:!bg-white\">\n {Placeholder ? <Placeholder reason={reason} /> : undefined}\n </td>\n </tr>\n </tbody>\n );\n}\n"],"names":["React"],"mappings":";;AAWO,SAAS,eAAe,OAAwB;AACnD,QAAM,EAAE,YAAY,aAAa,SAAS,QAAQ,GAAG,eAAe;AACpE,QAAM,MAAMA,eAAM,OAAgC,IAAI;AAEtD,QAAM,OAAO,8BAA8B,EAAE,SAAS,IAAI,SAAS,YAA2B;AAE9F,MAAI,CAAC,SAAS;AACV,WAAOA,+BAAA,cAAC,SAAA,EAAO,GAAG,YAAY,WAAU,iBAAgB;AAAA,EAC5D;AAEA,SACIA,+BAAA,cAAC,SAAA,EAAO,GAAG,YAAY,KAAU,WAAU,iBAAgB,aAAU,cAAA,GACjEA,+BAAA,cAAC,MAAA,EAAG,WAAU,mBACVA,+BAAA,cAAC,MAAA,EAAG,OAAO,EAAE,UAAU,MAAM,MAAA,GAAS,WAAU,+CAAA,GAC3C,cAAcA,+BAAA,cAAC,aAAA,EAAY,QAAgB,IAAK,MACrD,CACJ,CACJ;AAER;"}
1
+ {"version":3,"file":"EmptyStateBody.js","sources":["../../../../../../src/primitives/Table/Core/components/Body/EmptyStateBody.tsx"],"sourcesContent":["import React from 'react';\n\nimport { useBoundingClientRectListener } from '@/hooks/useBoundingClientRectListener';\n\nimport type { TableEmptyStateReason, TableEmptyStateRenderer } from '../../../types';\n\ntype EmptyStateProps = React.HTMLAttributes<HTMLTableSectionElement> & {\n emptyState?: TableEmptyStateRenderer;\n isReady: boolean;\n reason: TableEmptyStateReason;\n};\n\nexport function EmptyStateBody(props: EmptyStateProps) {\n const { emptyState: Placeholder, isReady, reason, ...attributes } = props;\n const ref = React.useRef<HTMLTableSectionElement>(null);\n\n const rect = useBoundingClientRectListener({ current: ref.current?.parentNode as HTMLElement });\n\n if (!isReady) {\n return <tbody {...attributes} className=\"!auto-rows-fr\" />;\n }\n\n return (\n <tbody {...attributes} ref={ref} className=\"!auto-rows-fr\" data-taco=\"empty-state\">\n <tr className=\"!auto-rows-fr\">\n <td style={{ maxWidth: rect?.width }} className=\"col-span-full !border-0 !p-0 hover:!bg-white\">\n {Placeholder ? <Placeholder reason={reason} /> : undefined}\n </td>\n </tr>\n </tbody>\n );\n}\n"],"names":["React"],"mappings":";;AAYO,SAAS,eAAe,OAAwB;AACnD,QAAM,EAAE,YAAY,aAAa,SAAS,QAAQ,GAAG,eAAe;AACpE,QAAM,MAAMA,eAAM,OAAgC,IAAI;AAEtD,QAAM,OAAO,8BAA8B,EAAE,SAAS,IAAI,SAAS,YAA2B;AAE9F,MAAI,CAAC,SAAS;AACV,WAAOA,+BAAA,cAAC,SAAA,EAAO,GAAG,YAAY,WAAU,iBAAgB;AAAA,EAC5D;AAEA,SACIA,+BAAA,cAAC,SAAA,EAAO,GAAG,YAAY,KAAU,WAAU,iBAAgB,aAAU,cAAA,GACjEA,+BAAA,cAAC,MAAA,EAAG,WAAU,mBACVA,+BAAA,cAAC,MAAA,EAAG,OAAO,EAAE,UAAU,MAAM,MAAA,GAAS,WAAU,+CAAA,GAC3C,cAAcA,+BAAA,cAAC,aAAA,EAAY,QAAgB,IAAK,MACrD,CACJ,CACJ;AAER;"}
@@ -1 +1 @@
1
- {"version":3,"file":"util.cjs","sources":["../../../../../../src/primitives/Table/Core/components/Body/util.ts"],"sourcesContent":["import { useFocusManager } from '@react-aria/focus';\n\nimport { hasFocusableElement, isElementInteractive } from '../../../../../utils/dom';\n\nconst FOCUS_MANAGER_OPTIONS_TAB = {\n accept: (element: Element) => !!element.closest('tr[data-row-active=\"true\"]'),\n tabbable: true,\n};\n\nconst FOCUS_MANAGER_OPTIONS_ARROW_KEYS = {\n accept: (element: Element) => {\n const acceptTabbable = isElementInteractive(element) ? element.getAttribute('tabindex') !== '-1' : true;\n return !!element.closest('tr[data-row-active=\"true\"]') && !hasFocusableElement(element as HTMLElement) && acceptTabbable;\n },\n};\n\nexport function useAugmentedFocusManager() {\n const focusManager = useFocusManager();\n\n const focusPrevious = (arrowNavigation = false) =>\n focusManager?.focusPrevious(arrowNavigation ? FOCUS_MANAGER_OPTIONS_ARROW_KEYS : FOCUS_MANAGER_OPTIONS_TAB);\n\n const focusNext = (arrowNavigation = false) =>\n focusManager?.focusNext(arrowNavigation ? FOCUS_MANAGER_OPTIONS_ARROW_KEYS : FOCUS_MANAGER_OPTIONS_TAB);\n\n // focusFirst should focus on editing controls\n const focusFirst = () => {\n return focusManager?.focusFirst({\n ...FOCUS_MANAGER_OPTIONS_TAB,\n accept: (element: Element) => {\n if (!FOCUS_MANAGER_OPTIONS_TAB.accept(element)) {\n return false;\n }\n\n // Check if this element or its parent has the cell-control attribute\n if (element.closest('[data-taco=\"cell-control\"]')) {\n return true;\n }\n\n return false;\n },\n });\n };\n\n const focusLast = () => focusManager?.focusLast(FOCUS_MANAGER_OPTIONS_TAB);\n\n return {\n focusPrevious,\n focusNext,\n focusFirst,\n focusLast,\n };\n}\n"],"names":["isElementInteractive","hasFocusableElement","useFocusManager"],"mappings":";;;;AAIA,MAAM,4BAA4B;AAAA,EAC9B,QAAQ,CAAC,YAAqB,CAAC,CAAC,QAAQ,QAAQ,4BAA4B;AAAA,EAC5E,UAAU;AACd;AAEA,MAAM,mCAAmC;AAAA,EACrC,QAAQ,CAAC,YAAqB;AAC1B,UAAM,iBAAiBA,IAAAA,qBAAqB,OAAO,IAAI,QAAQ,aAAa,UAAU,MAAM,OAAO;AACnG,WAAO,CAAC,CAAC,QAAQ,QAAQ,4BAA4B,KAAK,CAACC,IAAAA,oBAAoB,OAAsB,KAAK;AAAA,EAC9G;AACJ;AAEO,SAAS,2BAA2B;AACvC,QAAM,eAAeC,MAAAA,gBAAA;AAErB,QAAM,gBAAgB,CAAC,kBAAkB,UACrC,cAAc,cAAc,kBAAkB,mCAAmC,yBAAyB;AAE9G,QAAM,YAAY,CAAC,kBAAkB,UACjC,cAAc,UAAU,kBAAkB,mCAAmC,yBAAyB;AAG1G,QAAM,aAAa,MAAM;AACrB,WAAO,cAAc,WAAW;AAAA,MAC5B,GAAG;AAAA,MACH,QAAQ,CAAC,YAAqB;AAC1B,YAAI,CAAC,0BAA0B,OAAO,OAAO,GAAG;AAC5C,iBAAO;AAAA,QACX;AAGA,YAAI,QAAQ,QAAQ,4BAA4B,GAAG;AAC/C,iBAAO;AAAA,QACX;AAEA,eAAO;AAAA,MACX;AAAA,IAAA,CACH;AAAA,EACL;AAEA,QAAM,YAAY,MAAM,cAAc,UAAU,yBAAyB;AAEzE,SAAO;AAAA,IACH;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EAAA;AAER;;"}
1
+ {"version":3,"file":"util.cjs","sources":["../../../../../../src/primitives/Table/Core/components/Body/util.ts"],"sourcesContent":["import { useFocusManager } from '@react-aria/focus';\n\nimport { hasFocusableElement, isElementInteractive } from '@/utils/dom';\n\nconst FOCUS_MANAGER_OPTIONS_TAB = {\n accept: (element: Element) => !!element.closest('tr[data-row-active=\"true\"]'),\n tabbable: true,\n};\n\nconst FOCUS_MANAGER_OPTIONS_ARROW_KEYS = {\n accept: (element: Element) => {\n const acceptTabbable = isElementInteractive(element) ? element.getAttribute('tabindex') !== '-1' : true;\n return !!element.closest('tr[data-row-active=\"true\"]') && !hasFocusableElement(element as HTMLElement) && acceptTabbable;\n },\n};\n\nexport function useAugmentedFocusManager() {\n const focusManager = useFocusManager();\n\n const focusPrevious = (arrowNavigation = false) =>\n focusManager?.focusPrevious(arrowNavigation ? FOCUS_MANAGER_OPTIONS_ARROW_KEYS : FOCUS_MANAGER_OPTIONS_TAB);\n\n const focusNext = (arrowNavigation = false) =>\n focusManager?.focusNext(arrowNavigation ? FOCUS_MANAGER_OPTIONS_ARROW_KEYS : FOCUS_MANAGER_OPTIONS_TAB);\n\n // focusFirst should focus on editing controls\n const focusFirst = () => {\n return focusManager?.focusFirst({\n ...FOCUS_MANAGER_OPTIONS_TAB,\n accept: (element: Element) => {\n if (!FOCUS_MANAGER_OPTIONS_TAB.accept(element)) {\n return false;\n }\n\n // Check if this element or its parent has the cell-control attribute\n if (element.closest('[data-taco=\"cell-control\"]')) {\n return true;\n }\n\n return false;\n },\n });\n };\n\n const focusLast = () => focusManager?.focusLast(FOCUS_MANAGER_OPTIONS_TAB);\n\n return {\n focusPrevious,\n focusNext,\n focusFirst,\n focusLast,\n };\n}\n"],"names":["isElementInteractive","hasFocusableElement","useFocusManager"],"mappings":";;;;AAIA,MAAM,4BAA4B;AAAA,EAC9B,QAAQ,CAAC,YAAqB,CAAC,CAAC,QAAQ,QAAQ,4BAA4B;AAAA,EAC5E,UAAU;AACd;AAEA,MAAM,mCAAmC;AAAA,EACrC,QAAQ,CAAC,YAAqB;AAC1B,UAAM,iBAAiBA,IAAAA,qBAAqB,OAAO,IAAI,QAAQ,aAAa,UAAU,MAAM,OAAO;AACnG,WAAO,CAAC,CAAC,QAAQ,QAAQ,4BAA4B,KAAK,CAACC,IAAAA,oBAAoB,OAAsB,KAAK;AAAA,EAC9G;AACJ;AAEO,SAAS,2BAA2B;AACvC,QAAM,eAAeC,MAAAA,gBAAA;AAErB,QAAM,gBAAgB,CAAC,kBAAkB,UACrC,cAAc,cAAc,kBAAkB,mCAAmC,yBAAyB;AAE9G,QAAM,YAAY,CAAC,kBAAkB,UACjC,cAAc,UAAU,kBAAkB,mCAAmC,yBAAyB;AAG1G,QAAM,aAAa,MAAM;AACrB,WAAO,cAAc,WAAW;AAAA,MAC5B,GAAG;AAAA,MACH,QAAQ,CAAC,YAAqB;AAC1B,YAAI,CAAC,0BAA0B,OAAO,OAAO,GAAG;AAC5C,iBAAO;AAAA,QACX;AAGA,YAAI,QAAQ,QAAQ,4BAA4B,GAAG;AAC/C,iBAAO;AAAA,QACX;AAEA,eAAO;AAAA,MACX;AAAA,IAAA,CACH;AAAA,EACL;AAEA,QAAM,YAAY,MAAM,cAAc,UAAU,yBAAyB;AAEzE,SAAO;AAAA,IACH;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EAAA;AAER;;"}
@@ -1 +1 @@
1
- {"version":3,"file":"util.js","sources":["../../../../../../src/primitives/Table/Core/components/Body/util.ts"],"sourcesContent":["import { useFocusManager } from '@react-aria/focus';\n\nimport { hasFocusableElement, isElementInteractive } from '../../../../../utils/dom';\n\nconst FOCUS_MANAGER_OPTIONS_TAB = {\n accept: (element: Element) => !!element.closest('tr[data-row-active=\"true\"]'),\n tabbable: true,\n};\n\nconst FOCUS_MANAGER_OPTIONS_ARROW_KEYS = {\n accept: (element: Element) => {\n const acceptTabbable = isElementInteractive(element) ? element.getAttribute('tabindex') !== '-1' : true;\n return !!element.closest('tr[data-row-active=\"true\"]') && !hasFocusableElement(element as HTMLElement) && acceptTabbable;\n },\n};\n\nexport function useAugmentedFocusManager() {\n const focusManager = useFocusManager();\n\n const focusPrevious = (arrowNavigation = false) =>\n focusManager?.focusPrevious(arrowNavigation ? FOCUS_MANAGER_OPTIONS_ARROW_KEYS : FOCUS_MANAGER_OPTIONS_TAB);\n\n const focusNext = (arrowNavigation = false) =>\n focusManager?.focusNext(arrowNavigation ? FOCUS_MANAGER_OPTIONS_ARROW_KEYS : FOCUS_MANAGER_OPTIONS_TAB);\n\n // focusFirst should focus on editing controls\n const focusFirst = () => {\n return focusManager?.focusFirst({\n ...FOCUS_MANAGER_OPTIONS_TAB,\n accept: (element: Element) => {\n if (!FOCUS_MANAGER_OPTIONS_TAB.accept(element)) {\n return false;\n }\n\n // Check if this element or its parent has the cell-control attribute\n if (element.closest('[data-taco=\"cell-control\"]')) {\n return true;\n }\n\n return false;\n },\n });\n };\n\n const focusLast = () => focusManager?.focusLast(FOCUS_MANAGER_OPTIONS_TAB);\n\n return {\n focusPrevious,\n focusNext,\n focusFirst,\n focusLast,\n };\n}\n"],"names":[],"mappings":";;AAIA,MAAM,4BAA4B;AAAA,EAC9B,QAAQ,CAAC,YAAqB,CAAC,CAAC,QAAQ,QAAQ,4BAA4B;AAAA,EAC5E,UAAU;AACd;AAEA,MAAM,mCAAmC;AAAA,EACrC,QAAQ,CAAC,YAAqB;AAC1B,UAAM,iBAAiB,qBAAqB,OAAO,IAAI,QAAQ,aAAa,UAAU,MAAM,OAAO;AACnG,WAAO,CAAC,CAAC,QAAQ,QAAQ,4BAA4B,KAAK,CAAC,oBAAoB,OAAsB,KAAK;AAAA,EAC9G;AACJ;AAEO,SAAS,2BAA2B;AACvC,QAAM,eAAe,gBAAA;AAErB,QAAM,gBAAgB,CAAC,kBAAkB,UACrC,cAAc,cAAc,kBAAkB,mCAAmC,yBAAyB;AAE9G,QAAM,YAAY,CAAC,kBAAkB,UACjC,cAAc,UAAU,kBAAkB,mCAAmC,yBAAyB;AAG1G,QAAM,aAAa,MAAM;AACrB,WAAO,cAAc,WAAW;AAAA,MAC5B,GAAG;AAAA,MACH,QAAQ,CAAC,YAAqB;AAC1B,YAAI,CAAC,0BAA0B,OAAO,OAAO,GAAG;AAC5C,iBAAO;AAAA,QACX;AAGA,YAAI,QAAQ,QAAQ,4BAA4B,GAAG;AAC/C,iBAAO;AAAA,QACX;AAEA,eAAO;AAAA,MACX;AAAA,IAAA,CACH;AAAA,EACL;AAEA,QAAM,YAAY,MAAM,cAAc,UAAU,yBAAyB;AAEzE,SAAO;AAAA,IACH;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EAAA;AAER;"}
1
+ {"version":3,"file":"util.js","sources":["../../../../../../src/primitives/Table/Core/components/Body/util.ts"],"sourcesContent":["import { useFocusManager } from '@react-aria/focus';\n\nimport { hasFocusableElement, isElementInteractive } from '@/utils/dom';\n\nconst FOCUS_MANAGER_OPTIONS_TAB = {\n accept: (element: Element) => !!element.closest('tr[data-row-active=\"true\"]'),\n tabbable: true,\n};\n\nconst FOCUS_MANAGER_OPTIONS_ARROW_KEYS = {\n accept: (element: Element) => {\n const acceptTabbable = isElementInteractive(element) ? element.getAttribute('tabindex') !== '-1' : true;\n return !!element.closest('tr[data-row-active=\"true\"]') && !hasFocusableElement(element as HTMLElement) && acceptTabbable;\n },\n};\n\nexport function useAugmentedFocusManager() {\n const focusManager = useFocusManager();\n\n const focusPrevious = (arrowNavigation = false) =>\n focusManager?.focusPrevious(arrowNavigation ? FOCUS_MANAGER_OPTIONS_ARROW_KEYS : FOCUS_MANAGER_OPTIONS_TAB);\n\n const focusNext = (arrowNavigation = false) =>\n focusManager?.focusNext(arrowNavigation ? FOCUS_MANAGER_OPTIONS_ARROW_KEYS : FOCUS_MANAGER_OPTIONS_TAB);\n\n // focusFirst should focus on editing controls\n const focusFirst = () => {\n return focusManager?.focusFirst({\n ...FOCUS_MANAGER_OPTIONS_TAB,\n accept: (element: Element) => {\n if (!FOCUS_MANAGER_OPTIONS_TAB.accept(element)) {\n return false;\n }\n\n // Check if this element or its parent has the cell-control attribute\n if (element.closest('[data-taco=\"cell-control\"]')) {\n return true;\n }\n\n return false;\n },\n });\n };\n\n const focusLast = () => focusManager?.focusLast(FOCUS_MANAGER_OPTIONS_TAB);\n\n return {\n focusPrevious,\n focusNext,\n focusFirst,\n focusLast,\n };\n}\n"],"names":[],"mappings":";;AAIA,MAAM,4BAA4B;AAAA,EAC9B,QAAQ,CAAC,YAAqB,CAAC,CAAC,QAAQ,QAAQ,4BAA4B;AAAA,EAC5E,UAAU;AACd;AAEA,MAAM,mCAAmC;AAAA,EACrC,QAAQ,CAAC,YAAqB;AAC1B,UAAM,iBAAiB,qBAAqB,OAAO,IAAI,QAAQ,aAAa,UAAU,MAAM,OAAO;AACnG,WAAO,CAAC,CAAC,QAAQ,QAAQ,4BAA4B,KAAK,CAAC,oBAAoB,OAAsB,KAAK;AAAA,EAC9G;AACJ;AAEO,SAAS,2BAA2B;AACvC,QAAM,eAAe,gBAAA;AAErB,QAAM,gBAAgB,CAAC,kBAAkB,UACrC,cAAc,cAAc,kBAAkB,mCAAmC,yBAAyB;AAE9G,QAAM,YAAY,CAAC,kBAAkB,UACjC,cAAc,UAAU,kBAAkB,mCAAmC,yBAAyB;AAG1G,QAAM,aAAa,MAAM;AACrB,WAAO,cAAc,WAAW;AAAA,MAC5B,GAAG;AAAA,MACH,QAAQ,CAAC,YAAqB;AAC1B,YAAI,CAAC,0BAA0B,OAAO,OAAO,GAAG;AAC5C,iBAAO;AAAA,QACX;AAGA,YAAI,QAAQ,QAAQ,4BAA4B,GAAG;AAC/C,iBAAO;AAAA,QACX;AAEA,eAAO;AAAA,MACX;AAAA,IAAA,CACH;AAAA,EACL;AAEA,QAAM,YAAY,MAAM,cAAc,UAAU,yBAAyB;AAEzE,SAAO;AAAA,IACH;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EAAA;AAER;"}
@@ -1 +1 @@
1
- {"version":3,"file":"GroupedCell.cjs","sources":["../../../../../../../../src/primitives/Table/Core/components/Columns/Cell/BuiltIns/GroupedCell.tsx"],"sourcesContent":["import type { Table as ReactTable, TableMeta as ReactTableMeta } from '@tanstack/react-table';\nimport React from 'react';\n\nimport type { TableRowActionGroupRenderer } from '../../../../../types';\nimport { isInternalColumn } from '../../../../../useTableManager/util/columns';\nimport type { TableCellRendererProps } from '../../../../types';\nimport { RowContext } from '../../../Row/RowContext';\nimport { Actions as RowGroupActions } from '../../Internal/Actions';\nimport { getCellAttributes } from '../util';\n\nexport function GroupedCell<TType = unknown>(props: TableCellRendererProps<TType>) {\n const { cell, cellRef, index, isHighlighted } = props;\n const { table } = cell.getContext();\n const tableMeta = table.options.meta as ReactTableMeta<TType>;\n const attributes = getCellAttributes(cell, index, isHighlighted);\n\n const { isHovered, rowIndex } = React.useContext(RowContext);\n const isActiveRow = tableMeta.rowActive.rowActiveIndex === rowIndex;\n const canShowActions = isActiveRow || (isHovered && !tableMeta.rowActive.isHoverStatePaused);\n\n // Set colSpan based on the count of visible cells, including '__actions' and non-internal columns, so that\n // rowGroupActions aligns with rowActions.\n const colSpan =\n cell.row.getVisibleCells().filter(c => c.column.id === '__actions' || !isInternalColumn(c.column.id)).length - 1;\n const subRows = cell.getContext().row.subRows.map(row => row.original);\n\n // using flexRender renders as a react component not a function, and that causes re-render issues for us\n // for example, clicks on buttons in cells no longer works until the row becomes active\n const content = typeof cell.column.columnDef.cell === 'function' ? cell.column.columnDef.cell(cell.getContext()) : null;\n\n return (\n <MemoedGroupedCell<TType>\n {...attributes}\n canShowActions={canShowActions}\n cellRef={cellRef}\n colSpan={colSpan}\n rowActions={tableMeta.rowGroups.rowActionsForGroup}\n rowId={cell.row.id}\n subRows={subRows}\n table={table}>\n {content}\n </MemoedGroupedCell>\n );\n}\n\ntype MemoedGroupedCellProps<TType = unknown> = React.TdHTMLAttributes<HTMLTableCellElement> & {\n canShowActions: boolean;\n cellRef: React.RefObject<HTMLTableCellElement>;\n colSpan: number;\n rowActions?: TableRowActionGroupRenderer<TType>[];\n rowId: string;\n subRows: TType[];\n table: ReactTable<TType>;\n};\n\nconst MemoedGroupedCell = React.memo(function MemoedGroupedCell<TType = unknown>(props: MemoedGroupedCellProps<TType>) {\n const { canShowActions, cellRef, children, colSpan, rowActions, rowId, subRows, table, ...attributes } = props;\n\n return (\n // pr-1 is needed to align group row actions with row actions in sibling rows, if present\n <td {...attributes} className=\"!pr-1\" ref={cellRef} style={{ gridColumn: `span ${colSpan} / span ${colSpan}` }}>\n <span className=\"grow\">{children}</span>\n {rowActions?.length && canShowActions ? (\n <RowGroupActions<TType>\n actions={rowActions as any}\n actionsLength={4}\n data={subRows}\n isActiveRow\n rowId={rowId}\n table={table}\n />\n ) : null}\n </td>\n );\n}) as <TType = unknown>(props: MemoedGroupedCellProps<TType>) => React.JSX.Element;\n"],"names":["getCellAttributes","RowContext","isInternalColumn","MemoedGroupedCell","RowGroupActions"],"mappings":";;;;;;;AAUO,SAAS,YAA6B,OAAsC;AAC/E,QAAM,EAAE,MAAM,SAAS,OAAO,kBAAkB;AAChD,QAAM,EAAE,MAAA,IAAU,KAAK,WAAA;AACvB,QAAM,YAAY,MAAM,QAAQ;AAChC,QAAM,aAAaA,KAAAA,kBAAkB,MAAM,OAAO,aAAa;AAE/D,QAAM,EAAE,WAAW,SAAA,IAAa,MAAM,WAAWC,WAAAA,UAAU;AAC3D,QAAM,cAAc,UAAU,UAAU,mBAAmB;AAC3D,QAAM,iBAAiB,eAAgB,aAAa,CAAC,UAAU,UAAU;AAIzE,QAAM,UACF,KAAK,IAAI,kBAAkB,OAAO,OAAK,EAAE,OAAO,OAAO,eAAe,CAACC,QAAAA,iBAAiB,EAAE,OAAO,EAAE,CAAC,EAAE,SAAS;AACnH,QAAM,UAAU,KAAK,WAAA,EAAa,IAAI,QAAQ,IAAI,CAAA,QAAO,IAAI,QAAQ;AAIrE,QAAM,UAAU,OAAO,KAAK,OAAO,UAAU,SAAS,aAAa,KAAK,OAAO,UAAU,KAAK,KAAK,WAAA,CAAY,IAAI;AAEnH,SACI,sBAAA;AAAA,IAAC;AAAA,IAAA;AAAA,MACI,GAAG;AAAA,MACJ;AAAA,MACA;AAAA,MACA;AAAA,MACA,YAAY,UAAU,UAAU;AAAA,MAChC,OAAO,KAAK,IAAI;AAAA,MAChB;AAAA,MACA;AAAA,IAAA;AAAA,IACC;AAAA,EAAA;AAGb;AAYA,MAAM,oBAAoB,MAAM,KAAK,SAASC,mBAAmC,OAAsC;AACnH,QAAM,EAAE,gBAAgB,SAAS,UAAU,SAAS,YAAY,OAAO,SAAS,OAAO,GAAG,WAAA,IAAe;AAEzG;AAAA;AAAA,IAEI,sBAAA,cAAC,MAAA,EAAI,GAAG,YAAY,WAAU,SAAQ,KAAK,SAAS,OAAO,EAAE,YAAY,QAAQ,OAAO,WAAW,OAAO,GAAA,EAAG,GACzG,sBAAA,cAAC,QAAA,EAAK,WAAU,OAAA,GAAQ,QAAS,GAChC,YAAY,UAAU,iBACnB,sBAAA;AAAA,MAACC,QAAAA;AAAAA,MAAA;AAAA,QACG,SAAS;AAAA,QACT,eAAe;AAAA,QACf,MAAM;AAAA,QACN,aAAW;AAAA,QACX;AAAA,QACA;AAAA,MAAA;AAAA,IAAA,IAEJ,IACR;AAAA;AAER,CAAC;;"}
1
+ {"version":3,"file":"GroupedCell.cjs","sources":["../../../../../../../../src/primitives/Table/Core/components/Columns/Cell/BuiltIns/GroupedCell.tsx"],"sourcesContent":["import type { Table as ReactTable, TableMeta as ReactTableMeta } from '@tanstack/react-table';\nimport React from 'react';\n\nimport type { TableRowActionGroupRenderer } from '../../../../../types';\nimport { isInternalColumn } from '../../../../../useTableManager/util/columns';\nimport type { TableCellRendererProps } from '../../../../types';\nimport { RowContext } from '../../../Row/RowContext';\nimport { Actions as RowGroupActions } from '../../Internal/Actions';\nimport { getCellAttributes } from '../util';\n\nexport function GroupedCell<TType = unknown>(props: TableCellRendererProps<TType>) {\n const { cell, cellRef, index, isHighlighted } = props;\n const { table } = cell.getContext();\n const tableMeta = table.options.meta as ReactTableMeta<TType>;\n const attributes = getCellAttributes(cell, index, isHighlighted);\n\n const { isHovered, rowIndex } = React.useContext(RowContext);\n const isActiveRow = tableMeta.rowActive.rowActiveIndex === rowIndex;\n const canShowActions = isActiveRow || (isHovered && !tableMeta.rowActive.isHoverStatePaused);\n\n // Set colSpan based on the count of visible cells, including '__actions' and non-internal columns, so that\n // rowGroupActions aligns with rowActions.\n const colSpan =\n cell.row.getVisibleCells().filter(c => c.column.id === '__actions' || !isInternalColumn(c.column.id)).length - 1;\n const subRows = cell.getContext().row.subRows.map(row => row.original);\n\n // using flexRender renders as a react component not a function, and that causes re-render issues for us\n // for example, clicks on buttons in cells no longer works until the row becomes active\n const content = typeof cell.column.columnDef.cell === 'function' ? cell.column.columnDef.cell(cell.getContext()) : null;\n\n return (\n <MemoedGroupedCell<TType>\n {...attributes}\n canShowActions={canShowActions}\n cellRef={cellRef}\n colSpan={colSpan}\n rowActions={tableMeta.rowGroups.rowActionsForGroup}\n rowId={cell.row.id}\n subRows={subRows}\n table={table}>\n {content}\n </MemoedGroupedCell>\n );\n}\n\ntype MemoedGroupedCellProps<TType = unknown> = React.TdHTMLAttributes<HTMLTableCellElement> & {\n canShowActions: boolean;\n cellRef: React.RefObject<HTMLTableCellElement | null>;\n colSpan: number;\n rowActions?: TableRowActionGroupRenderer<TType>[];\n rowId: string;\n subRows: TType[];\n table: ReactTable<TType>;\n};\n\nconst MemoedGroupedCell = React.memo(function MemoedGroupedCell<TType = unknown>(props: MemoedGroupedCellProps<TType>) {\n const { canShowActions, cellRef, children, colSpan, rowActions, rowId, subRows, table, ...attributes } = props;\n\n return (\n // pr-1 is needed to align group row actions with row actions in sibling rows, if present\n <td {...attributes} className=\"!pr-1\" ref={cellRef} style={{ gridColumn: `span ${colSpan} / span ${colSpan}` }}>\n <span className=\"grow\">{children}</span>\n {rowActions?.length && canShowActions ? (\n <RowGroupActions<TType>\n actions={rowActions as any}\n actionsLength={4}\n data={subRows}\n isActiveRow\n rowId={rowId}\n table={table}\n />\n ) : null}\n </td>\n );\n}) as <TType = unknown>(props: MemoedGroupedCellProps<TType>) => React.JSX.Element;\n"],"names":["getCellAttributes","RowContext","isInternalColumn","MemoedGroupedCell","RowGroupActions"],"mappings":";;;;;;;AAUO,SAAS,YAA6B,OAAsC;AAC/E,QAAM,EAAE,MAAM,SAAS,OAAO,kBAAkB;AAChD,QAAM,EAAE,MAAA,IAAU,KAAK,WAAA;AACvB,QAAM,YAAY,MAAM,QAAQ;AAChC,QAAM,aAAaA,KAAAA,kBAAkB,MAAM,OAAO,aAAa;AAE/D,QAAM,EAAE,WAAW,SAAA,IAAa,MAAM,WAAWC,WAAAA,UAAU;AAC3D,QAAM,cAAc,UAAU,UAAU,mBAAmB;AAC3D,QAAM,iBAAiB,eAAgB,aAAa,CAAC,UAAU,UAAU;AAIzE,QAAM,UACF,KAAK,IAAI,kBAAkB,OAAO,OAAK,EAAE,OAAO,OAAO,eAAe,CAACC,QAAAA,iBAAiB,EAAE,OAAO,EAAE,CAAC,EAAE,SAAS;AACnH,QAAM,UAAU,KAAK,WAAA,EAAa,IAAI,QAAQ,IAAI,CAAA,QAAO,IAAI,QAAQ;AAIrE,QAAM,UAAU,OAAO,KAAK,OAAO,UAAU,SAAS,aAAa,KAAK,OAAO,UAAU,KAAK,KAAK,WAAA,CAAY,IAAI;AAEnH,SACI,sBAAA;AAAA,IAAC;AAAA,IAAA;AAAA,MACI,GAAG;AAAA,MACJ;AAAA,MACA;AAAA,MACA;AAAA,MACA,YAAY,UAAU,UAAU;AAAA,MAChC,OAAO,KAAK,IAAI;AAAA,MAChB;AAAA,MACA;AAAA,IAAA;AAAA,IACC;AAAA,EAAA;AAGb;AAYA,MAAM,oBAAoB,MAAM,KAAK,SAASC,mBAAmC,OAAsC;AACnH,QAAM,EAAE,gBAAgB,SAAS,UAAU,SAAS,YAAY,OAAO,SAAS,OAAO,GAAG,WAAA,IAAe;AAEzG;AAAA;AAAA,IAEI,sBAAA,cAAC,MAAA,EAAI,GAAG,YAAY,WAAU,SAAQ,KAAK,SAAS,OAAO,EAAE,YAAY,QAAQ,OAAO,WAAW,OAAO,GAAA,EAAG,GACzG,sBAAA,cAAC,QAAA,EAAK,WAAU,OAAA,GAAQ,QAAS,GAChC,YAAY,UAAU,iBACnB,sBAAA;AAAA,MAACC,QAAAA;AAAAA,MAAA;AAAA,QACG,SAAS;AAAA,QACT,eAAe;AAAA,QACf,MAAM;AAAA,QACN,aAAW;AAAA,QACX;AAAA,QACA;AAAA,MAAA;AAAA,IAAA,IAEJ,IACR;AAAA;AAER,CAAC;;"}