@economic/taco 14.0.0 → 14.1.0-EC-85807-code-report-fixes.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 (364) hide show
  1. package/dist/charts/components/Area/AreaChart.cjs.map +1 -1
  2. package/dist/charts/components/Area/AreaChart.d.ts +1 -1
  3. package/dist/charts/components/Area/AreaChart.js.map +1 -1
  4. package/dist/charts/components/Bar/BarChart.cjs +2 -2
  5. package/dist/charts/components/Bar/BarChart.cjs.map +1 -1
  6. package/dist/charts/components/Bar/BarChart.d.ts +1 -1
  7. package/dist/charts/components/Bar/BarChart.js +2 -2
  8. package/dist/charts/components/Bar/BarChart.js.map +1 -1
  9. package/dist/charts/components/ChartWrapper.cjs.map +1 -1
  10. package/dist/charts/components/ChartWrapper.js.map +1 -1
  11. package/dist/charts/components/Composed/BarLineChart.cjs.map +1 -1
  12. package/dist/charts/components/Composed/BarLineChart.d.ts +2 -2
  13. package/dist/charts/components/Composed/BarLineChart.js.map +1 -1
  14. package/dist/charts/components/Donut/DonutChart.cjs.map +1 -1
  15. package/dist/charts/components/Donut/DonutChart.d.ts +1 -1
  16. package/dist/charts/components/Donut/DonutChart.js.map +1 -1
  17. package/dist/charts/components/LegacyDonut/ActiveShape.cjs +7 -5
  18. package/dist/charts/components/LegacyDonut/ActiveShape.cjs.map +1 -1
  19. package/dist/charts/components/LegacyDonut/ActiveShape.d.ts +6 -3
  20. package/dist/charts/components/LegacyDonut/ActiveShape.js +7 -5
  21. package/dist/charts/components/LegacyDonut/ActiveShape.js.map +1 -1
  22. package/dist/charts/components/LegacyDonut/CenteredLabel.cjs +1 -1
  23. package/dist/charts/components/LegacyDonut/CenteredLabel.cjs.map +1 -1
  24. package/dist/charts/components/LegacyDonut/CenteredLabel.js +1 -1
  25. package/dist/charts/components/LegacyDonut/CenteredLabel.js.map +1 -1
  26. package/dist/charts/components/LegacyDonut/LegacyDonutChart.cjs +119 -103
  27. package/dist/charts/components/LegacyDonut/LegacyDonutChart.cjs.map +1 -1
  28. package/dist/charts/components/LegacyDonut/LegacyDonutChart.d.ts +13 -2
  29. package/dist/charts/components/LegacyDonut/LegacyDonutChart.js +119 -103
  30. package/dist/charts/components/LegacyDonut/LegacyDonutChart.js.map +1 -1
  31. package/dist/charts/components/LegacyDonut/Legend.cjs +1 -1
  32. package/dist/charts/components/LegacyDonut/Legend.cjs.map +1 -1
  33. package/dist/charts/components/LegacyDonut/Legend.js +1 -1
  34. package/dist/charts/components/LegacyDonut/Legend.js.map +1 -1
  35. package/dist/charts/components/Legend.cjs +1 -1
  36. package/dist/charts/components/Legend.cjs.map +1 -1
  37. package/dist/charts/components/Legend.js +1 -1
  38. package/dist/charts/components/Legend.js.map +1 -1
  39. package/dist/charts/components/Line/LineChart.cjs.map +1 -1
  40. package/dist/charts/components/Line/LineChart.d.ts +3 -2
  41. package/dist/charts/components/Line/LineChart.js.map +1 -1
  42. package/dist/charts/components/Pie/PieChart.cjs +4 -4
  43. package/dist/charts/components/Pie/PieChart.cjs.map +1 -1
  44. package/dist/charts/components/Pie/PieChart.js +4 -4
  45. package/dist/charts/components/Pie/PieChart.js.map +1 -1
  46. package/dist/charts/components/Pie/util.cjs.map +1 -1
  47. package/dist/charts/components/Pie/util.d.ts +2 -1
  48. package/dist/charts/components/Pie/util.js.map +1 -1
  49. package/dist/charts/components/Tooltip.cjs.map +1 -1
  50. package/dist/charts/components/Tooltip.d.ts +2 -3
  51. package/dist/charts/components/Tooltip.js.map +1 -1
  52. package/dist/charts/components/types.d.ts +9 -5
  53. package/dist/charts/components/useChartData.cjs +5 -3
  54. package/dist/charts/components/useChartData.cjs.map +1 -1
  55. package/dist/charts/components/useChartData.d.ts +6 -2
  56. package/dist/charts/components/useChartData.js +5 -3
  57. package/dist/charts/components/useChartData.js.map +1 -1
  58. package/dist/charts/utils/color.cjs +6 -10
  59. package/dist/charts/utils/color.cjs.map +1 -1
  60. package/dist/charts/utils/color.js +6 -10
  61. package/dist/charts/utils/color.js.map +1 -1
  62. package/dist/charts/utils/common.cjs +10 -10
  63. package/dist/charts/utils/common.cjs.map +1 -1
  64. package/dist/charts/utils/common.d.ts +5 -6
  65. package/dist/charts/utils/common.js +10 -10
  66. package/dist/charts/utils/common.js.map +1 -1
  67. package/dist/components/AlertDialog/Context.cjs.map +1 -1
  68. package/dist/components/AlertDialog/Context.d.ts +1 -1
  69. package/dist/components/AlertDialog/Context.js.map +1 -1
  70. package/dist/components/Calendar/Calendar.cjs.map +1 -1
  71. package/dist/components/Calendar/Calendar.js.map +1 -1
  72. package/dist/components/Combobox/Combobox.cjs.map +1 -1
  73. package/dist/components/Combobox/Combobox.js.map +1 -1
  74. package/dist/components/Combobox/useCombobox.cjs +2 -4
  75. package/dist/components/Combobox/useCombobox.cjs.map +1 -1
  76. package/dist/components/Combobox/useCombobox.d.ts +1 -1
  77. package/dist/components/Combobox/useCombobox.js +2 -4
  78. package/dist/components/Combobox/useCombobox.js.map +1 -1
  79. package/dist/components/Datepicker/useDatepicker.cjs.map +1 -1
  80. package/dist/components/Datepicker/useDatepicker.js.map +1 -1
  81. package/dist/components/Dialog/Context.cjs.map +1 -1
  82. package/dist/components/Dialog/Context.d.ts +1 -1
  83. package/dist/components/Dialog/Context.js.map +1 -1
  84. package/dist/components/Dialog/components/Content.cjs.map +1 -1
  85. package/dist/components/Dialog/components/Content.js.map +1 -1
  86. package/dist/components/Drawer/components/Content.cjs +1 -1
  87. package/dist/components/Drawer/components/Content.cjs.map +1 -1
  88. package/dist/components/Drawer/components/Content.js +1 -1
  89. package/dist/components/Drawer/components/Content.js.map +1 -1
  90. package/dist/components/Drawer/useDrawerStack.cjs.map +1 -1
  91. package/dist/components/Drawer/useDrawerStack.js.map +1 -1
  92. package/dist/components/Hanger/Hanger.cjs.map +1 -1
  93. package/dist/components/Hanger/Hanger.js.map +1 -1
  94. package/dist/components/Header/Header.cjs +1 -1
  95. package/dist/components/Header/Header.cjs.map +1 -1
  96. package/dist/components/Header/Header.js +1 -1
  97. package/dist/components/Header/Header.js.map +1 -1
  98. package/dist/components/Header/components/PrimaryNavigation.cjs.map +1 -1
  99. package/dist/components/Header/components/PrimaryNavigation.js.map +1 -1
  100. package/dist/components/Icon/Icon.cjs.map +1 -1
  101. package/dist/components/Icon/Icon.js.map +1 -1
  102. package/dist/components/Layout/components/Sidebar.cjs +2 -1
  103. package/dist/components/Layout/components/Sidebar.cjs.map +1 -1
  104. package/dist/components/Layout/components/Sidebar.js +2 -1
  105. package/dist/components/Layout/components/Sidebar.js.map +1 -1
  106. package/dist/components/LegacyComponents/IconButton/IconButton.cjs.map +1 -1
  107. package/dist/components/LegacyComponents/IconButton/IconButton.js.map +1 -1
  108. package/dist/components/List/components/Toggle.cjs +0 -2
  109. package/dist/components/List/components/Toggle.cjs.map +1 -1
  110. package/dist/components/List/components/Toggle.js +0 -2
  111. package/dist/components/List/components/Toggle.js.map +1 -1
  112. package/dist/components/Listbox/Listbox.cjs +2 -5
  113. package/dist/components/Listbox/Listbox.cjs.map +1 -1
  114. package/dist/components/Listbox/Listbox.js +2 -5
  115. package/dist/components/Listbox/Listbox.js.map +1 -1
  116. package/dist/components/Listbox/useListbox.cjs +1 -1
  117. package/dist/components/Listbox/useListbox.cjs.map +1 -1
  118. package/dist/components/Listbox/useListbox.js +1 -1
  119. package/dist/components/Listbox/useListbox.js.map +1 -1
  120. package/dist/components/Listbox/useMultiListbox.cjs +1 -1
  121. package/dist/components/Listbox/useMultiListbox.cjs.map +1 -1
  122. package/dist/components/Listbox/useMultiListbox.js +1 -1
  123. package/dist/components/Listbox/useMultiListbox.js.map +1 -1
  124. package/dist/components/Listbox/util.cjs.map +1 -1
  125. package/dist/components/Listbox/util.js.map +1 -1
  126. package/dist/components/Menu/components/Content.cjs.map +1 -1
  127. package/dist/components/Menu/components/Content.js.map +1 -1
  128. package/dist/components/Menu/components/Item.cjs.map +1 -1
  129. package/dist/components/Menu/components/Item.d.ts +2 -2
  130. package/dist/components/Menu/components/Item.js.map +1 -1
  131. package/dist/components/Menu/components/Trigger.cjs +1 -5
  132. package/dist/components/Menu/components/Trigger.cjs.map +1 -1
  133. package/dist/components/Menu/components/Trigger.js +1 -5
  134. package/dist/components/Menu/components/Trigger.js.map +1 -1
  135. package/dist/components/Pagination/usePaginationShortcuts.cjs +0 -1
  136. package/dist/components/Pagination/usePaginationShortcuts.cjs.map +1 -1
  137. package/dist/components/Pagination/usePaginationShortcuts.js +0 -1
  138. package/dist/components/Pagination/usePaginationShortcuts.js.map +1 -1
  139. package/dist/components/Provider/Provider.cjs.map +1 -1
  140. package/dist/components/Provider/Provider.d.ts +1 -1
  141. package/dist/components/Provider/Provider.js.map +1 -1
  142. package/dist/components/SearchInput/SearchInput.cjs +0 -1
  143. package/dist/components/SearchInput/SearchInput.cjs.map +1 -1
  144. package/dist/components/SearchInput/SearchInput.js +0 -1
  145. package/dist/components/SearchInput/SearchInput.js.map +1 -1
  146. package/dist/components/SearchInput2/SearchInput2.cjs +0 -1
  147. package/dist/components/SearchInput2/SearchInput2.cjs.map +1 -1
  148. package/dist/components/SearchInput2/SearchInput2.js +0 -1
  149. package/dist/components/SearchInput2/SearchInput2.js.map +1 -1
  150. package/dist/components/Select2/Select2.cjs +6 -7
  151. package/dist/components/Select2/Select2.cjs.map +1 -1
  152. package/dist/components/Select2/Select2.js +6 -7
  153. package/dist/components/Select2/Select2.js.map +1 -1
  154. package/dist/components/Select2/components/Search.cjs +0 -1
  155. package/dist/components/Select2/components/Search.cjs.map +1 -1
  156. package/dist/components/Select2/components/Search.js +0 -1
  157. package/dist/components/Select2/components/Search.js.map +1 -1
  158. package/dist/components/Select2/components/Trigger.cjs +1 -1
  159. package/dist/components/Select2/components/Trigger.cjs.map +1 -1
  160. package/dist/components/Select2/components/Trigger.js +1 -1
  161. package/dist/components/Select2/components/Trigger.js.map +1 -1
  162. package/dist/components/Table3/components/Columns/Cell/EditingControlCell.cjs +1 -1
  163. package/dist/components/Table3/components/Columns/Cell/EditingControlCell.cjs.map +1 -1
  164. package/dist/components/Table3/components/Columns/Cell/EditingControlCell.js +1 -1
  165. package/dist/components/Table3/components/Columns/Cell/EditingControlCell.js.map +1 -1
  166. package/dist/components/Table3/components/Columns/Cell/util.cjs.map +1 -1
  167. package/dist/components/Table3/components/Columns/Cell/util.js.map +1 -1
  168. package/dist/components/Table3/components/Editing/Alert.cjs +4 -4
  169. package/dist/components/Table3/components/Editing/Alert.cjs.map +1 -1
  170. package/dist/components/Table3/components/Editing/Alert.js +4 -4
  171. package/dist/components/Table3/components/Editing/Alert.js.map +1 -1
  172. package/dist/components/Table3/features/useEditingState.cjs +1 -1
  173. package/dist/components/Table3/features/useEditingState.cjs.map +1 -1
  174. package/dist/components/Table3/features/useEditingState.js +1 -1
  175. package/dist/components/Table3/features/useEditingState.js.map +1 -1
  176. package/dist/components/Table3/types.d.ts +2 -2
  177. package/dist/components/Table3/useTable3.cjs +8 -6
  178. package/dist/components/Table3/useTable3.cjs.map +1 -1
  179. package/dist/components/Table3/useTable3.js +8 -6
  180. package/dist/components/Table3/useTable3.js.map +1 -1
  181. package/dist/components/Table3/util/editing.cjs +1 -1
  182. package/dist/components/Table3/util/editing.cjs.map +1 -1
  183. package/dist/components/Table3/util/editing.d.ts +1 -1
  184. package/dist/components/Table3/util/editing.js +1 -1
  185. package/dist/components/Table3/util/editing.js.map +1 -1
  186. package/dist/hooks/useBoundaryOverflowDetection.cjs.map +1 -1
  187. package/dist/hooks/useBoundaryOverflowDetection.d.ts +1 -1
  188. package/dist/hooks/useBoundaryOverflowDetection.js.map +1 -1
  189. package/dist/hooks/useBoundingClientRectListener.cjs.map +1 -1
  190. package/dist/hooks/useBoundingClientRectListener.d.ts +1 -1
  191. package/dist/hooks/useBoundingClientRectListener.js.map +1 -1
  192. package/dist/hooks/useControlled.cjs +6 -10
  193. package/dist/hooks/useControlled.cjs.map +1 -1
  194. package/dist/hooks/useControlled.js +6 -10
  195. package/dist/hooks/useControlled.js.map +1 -1
  196. package/dist/hooks/useIsFormControl.cjs.map +1 -1
  197. package/dist/hooks/useIsFormControl.d.ts +1 -1
  198. package/dist/hooks/useIsFormControl.js.map +1 -1
  199. package/dist/hooks/useMergedRef.cjs.map +1 -1
  200. package/dist/hooks/useMergedRef.js.map +1 -1
  201. package/dist/hooks/usePrevious.cjs.map +1 -1
  202. package/dist/hooks/usePrevious.js.map +1 -1
  203. package/dist/primitives/Button.cjs.map +1 -1
  204. package/dist/primitives/Button.js.map +1 -1
  205. package/dist/primitives/Collection/components/Root.cjs +9 -16
  206. package/dist/primitives/Collection/components/Root.cjs.map +1 -1
  207. package/dist/primitives/Collection/components/Root.js +9 -16
  208. package/dist/primitives/Collection/components/Root.js.map +1 -1
  209. package/dist/primitives/Listbox2/components/Context.cjs.map +1 -1
  210. package/dist/primitives/Listbox2/components/Context.d.ts +1 -0
  211. package/dist/primitives/Listbox2/components/Context.js.map +1 -1
  212. package/dist/primitives/Listbox2/components/Option.cjs +8 -2
  213. package/dist/primitives/Listbox2/components/Option.cjs.map +1 -1
  214. package/dist/primitives/Listbox2/components/Option.js +8 -2
  215. package/dist/primitives/Listbox2/components/Option.js.map +1 -1
  216. package/dist/primitives/Listbox2/components/Root.cjs +3 -2
  217. package/dist/primitives/Listbox2/components/Root.cjs.map +1 -1
  218. package/dist/primitives/Listbox2/components/Root.js +3 -2
  219. package/dist/primitives/Listbox2/components/Root.js.map +1 -1
  220. package/dist/primitives/Sortable/components/Item.cjs +2 -4
  221. package/dist/primitives/Sortable/components/Item.cjs.map +1 -1
  222. package/dist/primitives/Sortable/components/Item.js +2 -4
  223. package/dist/primitives/Sortable/components/Item.js.map +1 -1
  224. package/dist/primitives/Table/Core/components/Body/Body.cjs +4 -4
  225. package/dist/primitives/Table/Core/components/Body/Body.cjs.map +1 -1
  226. package/dist/primitives/Table/Core/components/Body/Body.js +4 -4
  227. package/dist/primitives/Table/Core/components/Body/Body.js.map +1 -1
  228. package/dist/primitives/Table/Core/components/Columns/Cell/BuiltIns/DisplayCell.cjs.map +1 -1
  229. package/dist/primitives/Table/Core/components/Columns/Cell/BuiltIns/DisplayCell.js.map +1 -1
  230. package/dist/primitives/Table/Core/components/Columns/Cell/BuiltIns/GroupedCell.cjs.map +1 -1
  231. package/dist/primitives/Table/Core/components/Columns/Cell/BuiltIns/GroupedCell.js.map +1 -1
  232. package/dist/primitives/Table/Core/components/Columns/Cell/util.cjs +22 -16
  233. package/dist/primitives/Table/Core/components/Columns/Cell/util.cjs.map +1 -1
  234. package/dist/primitives/Table/Core/components/Columns/Cell/util.js +22 -16
  235. package/dist/primitives/Table/Core/components/Columns/Cell/util.js.map +1 -1
  236. package/dist/primitives/Table/Core/components/Footer/Summary.cjs.map +1 -1
  237. package/dist/primitives/Table/Core/components/Footer/Summary.js.map +1 -1
  238. package/dist/primitives/Table/Core/components/Header/util.cjs +4 -3
  239. package/dist/primitives/Table/Core/components/Header/util.cjs.map +1 -1
  240. package/dist/primitives/Table/Core/components/Header/util.js +4 -3
  241. package/dist/primitives/Table/Core/components/Header/util.js.map +1 -1
  242. package/dist/primitives/Table/Core/components/Toolbar/components/Filters/Filters.cjs +1 -1
  243. package/dist/primitives/Table/Core/components/Toolbar/components/Filters/Filters.cjs.map +1 -1
  244. package/dist/primitives/Table/Core/components/Toolbar/components/Filters/Filters.js +1 -1
  245. package/dist/primitives/Table/Core/components/Toolbar/components/Filters/Filters.js.map +1 -1
  246. package/dist/primitives/Table/Core/components/Toolbar/components/Filters/ManageFiltersPopover.cjs +4 -2
  247. package/dist/primitives/Table/Core/components/Toolbar/components/Filters/ManageFiltersPopover.cjs.map +1 -1
  248. package/dist/primitives/Table/Core/components/Toolbar/components/Filters/ManageFiltersPopover.js +4 -2
  249. package/dist/primitives/Table/Core/components/Toolbar/components/Filters/ManageFiltersPopover.js.map +1 -1
  250. package/dist/primitives/Table/Core/components/Toolbar/components/Filters/components/Filter.cjs.map +1 -1
  251. package/dist/primitives/Table/Core/components/Toolbar/components/Filters/components/Filter.js.map +1 -1
  252. package/dist/primitives/Table/Core/components/Toolbar/components/Print/Print.cjs +1 -1
  253. package/dist/primitives/Table/Core/components/Toolbar/components/Print/Print.cjs.map +1 -1
  254. package/dist/primitives/Table/Core/components/Toolbar/components/Print/Print.js +1 -1
  255. package/dist/primitives/Table/Core/components/Toolbar/components/Print/Print.js.map +1 -1
  256. package/dist/primitives/Table/Core/features/useTableRef.cjs +7 -0
  257. package/dist/primitives/Table/Core/features/useTableRef.cjs.map +1 -1
  258. package/dist/primitives/Table/Core/features/useTableRef.js +7 -0
  259. package/dist/primitives/Table/Core/features/useTableRef.js.map +1 -1
  260. package/dist/primitives/Table/Core/features/useTableRenderer.cjs +2 -2
  261. package/dist/primitives/Table/Core/features/useTableRenderer.cjs.map +1 -1
  262. package/dist/primitives/Table/Core/features/useTableRenderer.js +2 -2
  263. package/dist/primitives/Table/Core/features/useTableRenderer.js.map +1 -1
  264. package/dist/primitives/Table/Core/features/useTableStyleColumnFreezing.cjs +2 -2
  265. package/dist/primitives/Table/Core/features/useTableStyleColumnFreezing.cjs.map +1 -1
  266. package/dist/primitives/Table/Core/features/useTableStyleColumnFreezing.js +2 -2
  267. package/dist/primitives/Table/Core/features/useTableStyleColumnFreezing.js.map +1 -1
  268. package/dist/primitives/Table/Core/features/useTableStyleGrid.cjs.map +1 -1
  269. package/dist/primitives/Table/Core/features/useTableStyleGrid.js.map +1 -1
  270. package/dist/primitives/Table/Core/listeners/useTableRowActiveListener.cjs +2 -4
  271. package/dist/primitives/Table/Core/listeners/useTableRowActiveListener.cjs.map +1 -1
  272. package/dist/primitives/Table/Core/listeners/useTableRowActiveListener.d.ts +2 -2
  273. package/dist/primitives/Table/Core/listeners/useTableRowActiveListener.js +2 -4
  274. package/dist/primitives/Table/Core/listeners/useTableRowActiveListener.js.map +1 -1
  275. package/dist/primitives/Table/types.cjs.map +1 -1
  276. package/dist/primitives/Table/types.d.ts +6 -0
  277. package/dist/primitives/Table/types.js.map +1 -1
  278. package/dist/primitives/Table/useTableDataLoader2.cjs +36 -3
  279. package/dist/primitives/Table/useTableDataLoader2.cjs.map +1 -1
  280. package/dist/primitives/Table/useTableDataLoader2.d.ts +2 -1
  281. package/dist/primitives/Table/useTableDataLoader2.js +36 -3
  282. package/dist/primitives/Table/useTableDataLoader2.js.map +1 -1
  283. package/dist/primitives/Table/useTableManager/features/useTableRowActive.cjs +0 -1
  284. package/dist/primitives/Table/useTableManager/features/useTableRowActive.cjs.map +1 -1
  285. package/dist/primitives/Table/useTableManager/features/useTableRowActive.d.ts +1 -1
  286. package/dist/primitives/Table/useTableManager/features/useTableRowActive.js +0 -1
  287. package/dist/primitives/Table/useTableManager/features/useTableRowActive.js.map +1 -1
  288. package/dist/primitives/Table/useTableManager/features/useTableRowClick.cjs +0 -2
  289. package/dist/primitives/Table/useTableManager/features/useTableRowClick.cjs.map +1 -1
  290. package/dist/primitives/Table/useTableManager/features/useTableRowClick.js +0 -2
  291. package/dist/primitives/Table/useTableManager/features/useTableRowClick.js.map +1 -1
  292. package/dist/primitives/Table/useTableManager/features/useTableRowSelection.cjs +0 -1
  293. package/dist/primitives/Table/useTableManager/features/useTableRowSelection.cjs.map +1 -1
  294. package/dist/primitives/Table/useTableManager/features/useTableRowSelection.js +0 -1
  295. package/dist/primitives/Table/useTableManager/features/useTableRowSelection.js.map +1 -1
  296. package/dist/primitives/Table/useTableManager/features/useTableServerLoading.cjs +10 -1
  297. package/dist/primitives/Table/useTableManager/features/useTableServerLoading.cjs.map +1 -1
  298. package/dist/primitives/Table/useTableManager/features/useTableServerLoading.d.ts +3 -2
  299. package/dist/primitives/Table/useTableManager/features/useTableServerLoading.js +10 -1
  300. package/dist/primitives/Table/useTableManager/features/useTableServerLoading.js.map +1 -1
  301. package/dist/primitives/Table/useTableManager/useTableManager.cjs +1 -5
  302. package/dist/primitives/Table/useTableManager/useTableManager.cjs.map +1 -1
  303. package/dist/primitives/Table/useTableManager/useTableManager.js +1 -5
  304. package/dist/primitives/Table/useTableManager/useTableManager.js.map +1 -1
  305. package/dist/primitives/Table/useTableManager/util/dataTypes.cjs.map +1 -1
  306. package/dist/primitives/Table/useTableManager/util/dataTypes.d.ts +3 -3
  307. package/dist/primitives/Table/useTableManager/util/dataTypes.js.map +1 -1
  308. package/dist/primitives/Table/useTableManager/util/filtering.cjs.map +1 -1
  309. package/dist/primitives/Table/useTableManager/util/filtering.js.map +1 -1
  310. package/dist/primitives/Table/useTableManager/util/search.cjs +1 -1
  311. package/dist/primitives/Table/useTableManager/util/search.cjs.map +1 -1
  312. package/dist/primitives/Table/useTableManager/util/search.js +1 -1
  313. package/dist/primitives/Table/useTableManager/util/search.js.map +1 -1
  314. package/dist/primitives/Table/useTableManager/util/setup.cjs +3 -3
  315. package/dist/primitives/Table/useTableManager/util/setup.cjs.map +1 -1
  316. package/dist/primitives/Table/useTableManager/util/setup.js +3 -3
  317. package/dist/primitives/Table/useTableManager/util/setup.js.map +1 -1
  318. package/dist/types.cjs.map +1 -1
  319. package/dist/types.d.ts +1 -1
  320. package/dist/types.js.map +1 -1
  321. package/dist/utils/dataTypes.cjs +4 -4
  322. package/dist/utils/dataTypes.cjs.map +1 -1
  323. package/dist/utils/dataTypes.d.ts +1 -1
  324. package/dist/utils/dataTypes.js +4 -4
  325. package/dist/utils/dataTypes.js.map +1 -1
  326. package/dist/utils/date.cjs +14 -16
  327. package/dist/utils/date.cjs.map +1 -1
  328. package/dist/utils/date.js +14 -16
  329. package/dist/utils/date.js.map +1 -1
  330. package/dist/utils/debounce.cjs.map +1 -1
  331. package/dist/utils/debounce.d.ts +1 -1
  332. package/dist/utils/debounce.js.map +1 -1
  333. package/dist/utils/device.cjs +1 -1
  334. package/dist/utils/device.cjs.map +1 -1
  335. package/dist/utils/device.js +1 -1
  336. package/dist/utils/device.js.map +1 -1
  337. package/dist/utils/dom.cjs +1 -1
  338. package/dist/utils/dom.cjs.map +1 -1
  339. package/dist/utils/dom.d.ts +2 -2
  340. package/dist/utils/dom.js +1 -1
  341. package/dist/utils/dom.js.map +1 -1
  342. package/dist/utils/hooks/useDraggable.cjs.map +1 -1
  343. package/dist/utils/hooks/useDraggable.d.ts +9 -1
  344. package/dist/utils/hooks/useDraggable.js.map +1 -1
  345. package/dist/utils/hooks/useListKeyboardNavigation.cjs +1 -1
  346. package/dist/utils/hooks/useListKeyboardNavigation.cjs.map +1 -1
  347. package/dist/utils/hooks/useListKeyboardNavigation.js +1 -1
  348. package/dist/utils/hooks/useListKeyboardNavigation.js.map +1 -1
  349. package/dist/utils/hooks/useListScrollTo.cjs.map +1 -1
  350. package/dist/utils/hooks/useListScrollTo.d.ts +4 -1
  351. package/dist/utils/hooks/useListScrollTo.js.map +1 -1
  352. package/dist/utils/hooks/useOnClickOutside.cjs.map +1 -1
  353. package/dist/utils/hooks/useOnClickOutside.d.ts +1 -1
  354. package/dist/utils/hooks/useOnClickOutside.js.map +1 -1
  355. package/dist/utils/hooks/useTruncated.cjs.map +1 -1
  356. package/dist/utils/hooks/useTruncated.d.ts +2 -1
  357. package/dist/utils/hooks/useTruncated.js.map +1 -1
  358. package/dist/utils/mergeRefs.cjs.map +1 -1
  359. package/dist/utils/mergeRefs.d.ts +1 -1
  360. package/dist/utils/mergeRefs.js.map +1 -1
  361. package/dist/utils/storyutils.d.ts +1 -3
  362. package/package.json +4 -5
  363. package/plugins/tailwindcss-group-peer.js +1 -1
  364. package/scripts/stylelint-plugin/radius.mjs +2 -2
@@ -1 +1 @@
1
- {"version":3,"file":"useListbox.js","sources":["../../../src/components/Listbox/useListbox.tsx"],"sourcesContent":["import { nanoid } from 'nanoid';\nimport * as React from 'react';\n\nimport { useMergedRef } from '@/hooks/useMergedRef';\n\nimport type { ListboxProps } from './Listbox';\nimport type { ScrollableListProps } from './ScrollableList';\nimport { useTypeahead } from './useTypeahead';\nimport { setInputValueByRef, getIndexFromValue, findByValue, getActiveDescendant, useFlattenedData, sanitizeItem } from './util';\n\ntype useListbox = {\n list: ScrollableListProps;\n input: Omit<React.HTMLAttributes<HTMLInputElement>, 'defaultValue'>;\n};\n\nexport const useListbox = (\n {\n data: externalData = [],\n defaultValue,\n disabled,\n emptyValue,\n id: nativeId,\n invalid,\n name,\n onChange,\n onFocus,\n onKeyDown,\n value = emptyValue,\n ...otherProps\n }: ListboxProps,\n ref: React.Ref<HTMLInputElement>\n): useListbox => {\n const data = useFlattenedData(emptyValue === undefined ? externalData : [{ text: '', value: emptyValue }, ...externalData]);\n const id = React.useMemo(() => nativeId || nanoid(), [nativeId]);\n const inputRef = useMergedRef<HTMLInputElement>(ref);\n const currentIndex = value === undefined ? undefined : getIndexFromValue(data, value);\n const { getNextIndex } = useTypeahead({ data, currentIndex });\n\n const setInputValueByIndex = (index: number | undefined): void => {\n if (index !== undefined) {\n const option = data[index];\n\n if (option && !option.disabled) {\n setInputValueByRef(inputRef.current, option.value);\n }\n }\n };\n\n const handleListboxChange = (index: number): void => {\n setInputValueByIndex(index);\n };\n\n React.useEffect(() => {\n if (data.length && currentIndex === undefined) {\n if (defaultValue === undefined) {\n setInputValueByIndex(0);\n } else {\n const defaultValueIndex = getIndexFromValue(data, defaultValue);\n\n if (defaultValueIndex !== undefined) {\n setInputValueByIndex(defaultValueIndex);\n }\n }\n }\n }, [data]);\n\n const handleListboxKeyDown = (event: React.KeyboardEvent<HTMLElement>): void => {\n const charKey = event.key;\n\n // event.key always returns the whole string (String.fromCharCode(event.keyCode) does not)\n // We need to filter out only alphabetical or numeric letters, that's why that condition has been changed\n if (charKey.length === 1 && /(\\w)/g.test(charKey)) {\n const nextIndex = getNextIndex(charKey);\n\n if (nextIndex > -1 && nextIndex !== currentIndex) {\n setInputValueByIndex(nextIndex);\n }\n return;\n }\n\n if (onKeyDown) {\n event.persist();\n onKeyDown(event);\n }\n };\n\n const handleListboxFocus = (event: React.FocusEvent<HTMLElement>): void => {\n if (currentIndex === undefined && data.length) {\n setInputValueByIndex(0);\n }\n\n if (onFocus) {\n event.persist();\n onFocus(event);\n }\n };\n\n const handleInputChange = (event: React.ChangeEvent<HTMLInputElement>): void => {\n event.persist();\n\n if (onChange) {\n const item = findByValue(data, event.target.value);\n (event as any).detail = sanitizeItem(item);\n\n const indexes = item?.path?.split('.') ?? [];\n\n if (indexes.length > 1) {\n // we don't want to map the current item\n indexes.pop();\n // we need to rebuild the path as we map\n let lastPath: string;\n\n (event as any).detail.parents = indexes.map(i => {\n lastPath = lastPath ? [lastPath, i].join('.') : i;\n return sanitizeItem(data.find(i => i.path === lastPath));\n });\n }\n\n onChange(event);\n }\n };\n\n const list: ScrollableListProps = {\n ...otherProps,\n 'aria-activedescendant': getActiveDescendant(data, currentIndex, id),\n data,\n disabled,\n id,\n invalid,\n onChange: handleListboxChange,\n onFocus: handleListboxFocus,\n onKeyDown: handleListboxKeyDown,\n scrollOnFocus: true,\n tabIndex: disabled ? -1 : otherProps.tabIndex ? otherProps.tabIndex : 0,\n value: currentIndex,\n };\n\n const input = {\n name,\n onChange: handleInputChange,\n ref: inputRef,\n tabIndex: -1,\n value: value ?? '',\n };\n\n return { list, input };\n};\n"],"names":["i"],"mappings":"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"}
1
+ {"version":3,"file":"useListbox.js","sources":["../../../src/components/Listbox/useListbox.tsx"],"sourcesContent":["import { nanoid } from 'nanoid';\nimport * as React from 'react';\n\nimport { useMergedRef } from '@/hooks/useMergedRef';\n\nimport type { ListboxProps } from './Listbox';\nimport type { ScrollableListProps } from './ScrollableList';\nimport { useTypeahead } from './useTypeahead';\nimport { setInputValueByRef, getIndexFromValue, findByValue, getActiveDescendant, useFlattenedData, sanitizeItem } from './util';\n\ntype useListbox = {\n list: ScrollableListProps;\n input: Omit<React.HTMLAttributes<HTMLInputElement>, 'defaultValue'>;\n};\n\nexport const useListbox = (\n {\n data: externalData = [],\n defaultValue,\n disabled,\n emptyValue,\n id: nativeId,\n invalid,\n name,\n onChange,\n onFocus,\n onKeyDown,\n value = emptyValue,\n ...otherProps\n }: ListboxProps,\n ref: React.Ref<HTMLInputElement>\n): useListbox => {\n const data = useFlattenedData(emptyValue === undefined ? externalData : [{ text: '', value: emptyValue }, ...externalData]);\n const id = React.useMemo(() => nativeId || nanoid(), [nativeId]);\n const inputRef = useMergedRef<HTMLInputElement>(ref);\n const currentIndex = value === undefined ? undefined : getIndexFromValue(data, value);\n const { getNextIndex } = useTypeahead({ data, currentIndex });\n\n const setInputValueByIndex = (index: number | undefined): void => {\n if (index !== undefined) {\n const option = data[index];\n\n if (option && !option.disabled) {\n setInputValueByRef(inputRef.current, option.value);\n }\n }\n };\n\n const handleListboxChange = (index: number): void => {\n setInputValueByIndex(index);\n };\n\n React.useEffect(() => {\n if (data.length && currentIndex === undefined) {\n if (defaultValue === undefined) {\n setInputValueByIndex(0);\n } else {\n const defaultValueIndex = getIndexFromValue(data, defaultValue);\n\n if (defaultValueIndex !== undefined) {\n setInputValueByIndex(defaultValueIndex);\n }\n }\n }\n }, [data]);\n\n const handleListboxKeyDown = (event: React.KeyboardEvent<HTMLElement>): void => {\n const charKey = event.key;\n\n // event.key always returns the whole string (String.fromCharCode(event.keyCode) does not)\n // We need to filter out only alphabetical or numeric letters, that's why that condition has been changed\n if (charKey.length === 1 && /(\\w)/gu.test(charKey)) {\n const nextIndex = getNextIndex(charKey);\n\n if (nextIndex > -1 && nextIndex !== currentIndex) {\n setInputValueByIndex(nextIndex);\n }\n return;\n }\n\n if (onKeyDown) {\n event.persist();\n onKeyDown(event);\n }\n };\n\n const handleListboxFocus = (event: React.FocusEvent<HTMLElement>): void => {\n if (currentIndex === undefined && data.length) {\n setInputValueByIndex(0);\n }\n\n if (onFocus) {\n event.persist();\n onFocus(event);\n }\n };\n\n const handleInputChange = (event: React.ChangeEvent<HTMLInputElement>): void => {\n event.persist();\n\n if (onChange) {\n const item = findByValue(data, event.target.value);\n (event as any).detail = sanitizeItem(item);\n\n const indexes = item?.path?.split('.') ?? [];\n\n if (indexes.length > 1) {\n // we don't want to map the current item\n indexes.pop();\n // we need to rebuild the path as we map\n let lastPath: string;\n\n (event as any).detail.parents = indexes.map(i => {\n lastPath = lastPath ? [lastPath, i].join('.') : i;\n return sanitizeItem(data.find(i => i.path === lastPath));\n });\n }\n\n onChange(event);\n }\n };\n\n const list: ScrollableListProps = {\n ...otherProps,\n 'aria-activedescendant': getActiveDescendant(data, currentIndex, id),\n data,\n disabled,\n id,\n invalid,\n onChange: handleListboxChange,\n onFocus: handleListboxFocus,\n onKeyDown: handleListboxKeyDown,\n scrollOnFocus: true,\n tabIndex: disabled ? -1 : otherProps.tabIndex ? otherProps.tabIndex : 0,\n value: currentIndex,\n };\n\n const input = {\n name,\n onChange: handleInputChange,\n ref: inputRef,\n tabIndex: -1,\n value: value ?? '',\n };\n\n return { list, input };\n};\n"],"names":["i"],"mappings":"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"}
@@ -95,7 +95,7 @@ const useMultiListbox = ({
95
95
  };
96
96
  const handleListboxKeyDown = (event, index) => {
97
97
  const charKey = event.key;
98
- if (charKey.length === 1 && /(\w)/g.test(charKey)) {
98
+ if (charKey.length === 1 && /(\w)/gu.test(charKey)) {
99
99
  const nextIndex = getNextIndex(charKey);
100
100
  if (nextIndex > -1 && nextIndex !== currentIndex) {
101
101
  setCurrentIndex(nextIndex);
@@ -1 +1 @@
1
- {"version":3,"file":"useMultiListbox.cjs","sources":["../../../src/components/Listbox/useMultiListbox.tsx"],"sourcesContent":["import { nanoid } from 'nanoid';\nimport * as React from 'react';\n\nimport { useLocalization } from '@/components';\nimport { useMergedRef } from '@/hooks/useMergedRef';\n\nimport type { ListboxProps } from './Listbox';\nimport type { ScrollableListProps, ScrollableListItem, ScrollableListItemValue } from './ScrollableList';\nimport { useTypeahead } from './useTypeahead';\nimport { setInputValueByRef, getIndexFromValue, getSelectedIndexesFromValue, findByValue, getActiveDescendant } from './util';\n\ntype useListbox = {\n list: ScrollableListProps;\n input: Omit<React.HTMLAttributes<HTMLInputElement>, 'defaultValue'>;\n};\n\nexport const useMultiListbox = (\n {\n data: externalData = [],\n defaultValue,\n disabled,\n emptyValue: _,\n id: nativeId,\n name,\n onClick,\n onChange,\n onFocus,\n onKeyDown,\n value,\n ...otherProps\n }: ListboxProps,\n ref: React.Ref<HTMLInputElement>\n): useListbox => {\n const { texts } = useLocalization();\n const id = React.useMemo(() => nativeId || nanoid(), [nativeId]);\n const inputRef = useMergedRef<HTMLInputElement>(ref);\n const data = React.useMemo(() => {\n return [{ text: texts.listbox.allOption, value: '#ALL-OPTIONS#' }, ...externalData];\n }, [externalData]);\n const [currentIndex, setCurrentIndex] = React.useState(getIndexFromValue(data, value) || 0);\n const [allOptionsSelected, setAllOptionsSelected] = React.useState(false);\n const { getNextIndex } = useTypeahead({ data, currentIndex });\n const [selectedIndexes, setSelectedIndexes] = React.useState(getSelectedIndexesFromValue(data, value));\n\n React.useEffect(() => {\n if (defaultValue && !value) {\n setInputValueByRef(inputRef.current, defaultValue.toString());\n }\n }, []);\n\n React.useEffect(() => {\n const selectableItemsCount = data.filter(item => !item.disabled).length - 1;\n\n if (selectableItemsCount === selectedIndexes.length) {\n setAllOptionsSelected(true);\n } else {\n setAllOptionsSelected(false);\n }\n }, [selectedIndexes, data]);\n\n const setInputValueByIndex = (index: number | undefined): void => {\n if (index !== undefined) {\n const option = data[index];\n\n if (option && !option.disabled) {\n let newInputValue: ScrollableListItemValue = '';\n const currentInputValue = inputRef.current?.value;\n const currentValuesArray = currentInputValue?.split(',') || [];\n const optionAlreadySelected = currentValuesArray.some(val => val === String(option.value));\n\n // Handling the select_all option\n if (option.value === '#ALL-OPTIONS#') {\n if (allOptionsSelected) {\n newInputValue = '';\n } else {\n newInputValue = data\n .filter((option, index) => index !== 0 && !option.disabled)\n .map(option => option.value)\n .join(',');\n }\n } else if (optionAlreadySelected) {\n newInputValue = currentValuesArray.filter(val => val !== String(option.value)).join(',');\n } else {\n newInputValue = currentInputValue ? `${currentInputValue},${option.value}` : option.value;\n }\n\n setInputValueByRef(inputRef.current, newInputValue);\n }\n }\n };\n\n const handleListboxClick = (event: React.MouseEvent<HTMLLIElement>, index: number): void => {\n event.preventDefault();\n\n if (data[index] && !data[index].disabled) {\n setCurrentIndex(index);\n setInputValueByIndex(index);\n }\n\n if (onClick) {\n onClick(event);\n }\n };\n\n const handleListboxKeyDown = (event: React.KeyboardEvent<HTMLElement>, index?: number): void => {\n const charKey = event.key;\n\n // event.key always returns the whole string (String.fromCharCode(event.keyCode) does not)\n // We need to filter out only alphabetical or numeric letters, that's why that condition has been changed\n if (charKey.length === 1 && /(\\w)/g.test(charKey)) {\n const nextIndex = getNextIndex(charKey);\n\n if (nextIndex > -1 && nextIndex !== currentIndex) {\n setCurrentIndex(nextIndex);\n }\n return;\n }\n\n switch (event.key) {\n case ' ': {\n event.preventDefault();\n setInputValueByIndex(index);\n break;\n }\n\n case 'Enter': {\n setInputValueByIndex(index);\n break;\n }\n\n default:\n }\n setCurrentIndex(index === undefined ? 0 : index);\n\n if (onKeyDown) {\n event.persist();\n onKeyDown(event);\n }\n };\n\n const handleListboxFocus = (event: React.FocusEvent<HTMLElement>): void => {\n if (onFocus) {\n event.persist();\n onFocus(event);\n }\n };\n\n const handleInputChange = (event: React.ChangeEvent<HTMLInputElement>): void => {\n event.persist();\n\n setSelectedIndexes(getSelectedIndexesFromValue(data, event.target.value));\n\n if (onChange) {\n const detail: ScrollableListItem[] = [];\n const valuesArray = event.target.value.split(',');\n\n valuesArray.forEach(val => {\n const item = findByValue(data, val);\n if (item) {\n detail.push(item);\n }\n });\n (event as any).detail = detail;\n\n onChange(event);\n }\n };\n\n const list = {\n ...otherProps,\n 'aria-activedescendant': getActiveDescendant(data, currentIndex, id),\n 'aria-multiselectable': true,\n data,\n disabled,\n id,\n onChange: () => null,\n onClick: handleListboxClick,\n onFocus: handleListboxFocus,\n onKeyDown: handleListboxKeyDown,\n scrollOnFocus: false,\n tabIndex: disabled ? -1 : otherProps.tabIndex ? otherProps.tabIndex : 0,\n value: currentIndex,\n selectedIndexes,\n multiselect: true,\n allOptionsSelected,\n };\n\n const input = {\n name,\n onChange: handleInputChange,\n ref: inputRef,\n tabIndex: -1,\n value: value ?? '',\n };\n\n return { list, input };\n};\n"],"names":["useLocalization","React","nanoid","useMergedRef","getIndexFromValue","useTypeahead","getSelectedIndexesFromValue","setInputValueByRef","option","index","findByValue","getActiveDescendant"],"mappings":"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"}
1
+ {"version":3,"file":"useMultiListbox.cjs","sources":["../../../src/components/Listbox/useMultiListbox.tsx"],"sourcesContent":["import { nanoid } from 'nanoid';\nimport * as React from 'react';\n\nimport { useLocalization } from '@/components';\nimport { useMergedRef } from '@/hooks/useMergedRef';\n\nimport type { ListboxProps } from './Listbox';\nimport type { ScrollableListProps, ScrollableListItem, ScrollableListItemValue } from './ScrollableList';\nimport { useTypeahead } from './useTypeahead';\nimport { setInputValueByRef, getIndexFromValue, getSelectedIndexesFromValue, findByValue, getActiveDescendant } from './util';\n\ntype useListbox = {\n list: ScrollableListProps;\n input: Omit<React.HTMLAttributes<HTMLInputElement>, 'defaultValue'>;\n};\n\nexport const useMultiListbox = (\n {\n data: externalData = [],\n defaultValue,\n disabled,\n emptyValue: _,\n id: nativeId,\n name,\n onClick,\n onChange,\n onFocus,\n onKeyDown,\n value,\n ...otherProps\n }: ListboxProps,\n ref: React.Ref<HTMLInputElement>\n): useListbox => {\n const { texts } = useLocalization();\n const id = React.useMemo(() => nativeId || nanoid(), [nativeId]);\n const inputRef = useMergedRef<HTMLInputElement>(ref);\n const data = React.useMemo(() => {\n return [{ text: texts.listbox.allOption, value: '#ALL-OPTIONS#' }, ...externalData];\n }, [externalData]);\n const [currentIndex, setCurrentIndex] = React.useState(getIndexFromValue(data, value) || 0);\n const [allOptionsSelected, setAllOptionsSelected] = React.useState(false);\n const { getNextIndex } = useTypeahead({ data, currentIndex });\n const [selectedIndexes, setSelectedIndexes] = React.useState(getSelectedIndexesFromValue(data, value));\n\n React.useEffect(() => {\n if (defaultValue && !value) {\n setInputValueByRef(inputRef.current, defaultValue.toString());\n }\n }, []);\n\n React.useEffect(() => {\n const selectableItemsCount = data.filter(item => !item.disabled).length - 1;\n\n if (selectableItemsCount === selectedIndexes.length) {\n setAllOptionsSelected(true);\n } else {\n setAllOptionsSelected(false);\n }\n }, [selectedIndexes, data]);\n\n const setInputValueByIndex = (index: number | undefined): void => {\n if (index !== undefined) {\n const option = data[index];\n\n if (option && !option.disabled) {\n let newInputValue: ScrollableListItemValue = '';\n const currentInputValue = inputRef.current?.value;\n const currentValuesArray = currentInputValue?.split(',') || [];\n const optionAlreadySelected = currentValuesArray.some(val => val === String(option.value));\n\n // Handling the select_all option\n if (option.value === '#ALL-OPTIONS#') {\n if (allOptionsSelected) {\n newInputValue = '';\n } else {\n newInputValue = data\n .filter((option, index) => index !== 0 && !option.disabled)\n .map(option => option.value)\n .join(',');\n }\n } else if (optionAlreadySelected) {\n newInputValue = currentValuesArray.filter(val => val !== String(option.value)).join(',');\n } else {\n newInputValue = currentInputValue ? `${currentInputValue},${option.value}` : option.value;\n }\n\n setInputValueByRef(inputRef.current, newInputValue);\n }\n }\n };\n\n const handleListboxClick = (event: React.MouseEvent<HTMLLIElement>, index: number): void => {\n event.preventDefault();\n\n if (data[index] && !data[index].disabled) {\n setCurrentIndex(index);\n setInputValueByIndex(index);\n }\n\n if (onClick) {\n onClick(event);\n }\n };\n\n const handleListboxKeyDown = (event: React.KeyboardEvent<HTMLElement>, index?: number): void => {\n const charKey = event.key;\n\n // event.key always returns the whole string (String.fromCharCode(event.keyCode) does not)\n // We need to filter out only alphabetical or numeric letters, that's why that condition has been changed\n if (charKey.length === 1 && /(\\w)/gu.test(charKey)) {\n const nextIndex = getNextIndex(charKey);\n\n if (nextIndex > -1 && nextIndex !== currentIndex) {\n setCurrentIndex(nextIndex);\n }\n return;\n }\n\n switch (event.key) {\n case ' ': {\n event.preventDefault();\n setInputValueByIndex(index);\n break;\n }\n\n case 'Enter': {\n setInputValueByIndex(index);\n break;\n }\n\n default:\n }\n setCurrentIndex(index === undefined ? 0 : index);\n\n if (onKeyDown) {\n event.persist();\n onKeyDown(event);\n }\n };\n\n const handleListboxFocus = (event: React.FocusEvent<HTMLElement>): void => {\n if (onFocus) {\n event.persist();\n onFocus(event);\n }\n };\n\n const handleInputChange = (event: React.ChangeEvent<HTMLInputElement>): void => {\n event.persist();\n\n setSelectedIndexes(getSelectedIndexesFromValue(data, event.target.value));\n\n if (onChange) {\n const detail: ScrollableListItem[] = [];\n const valuesArray = event.target.value.split(',');\n\n valuesArray.forEach(val => {\n const item = findByValue(data, val);\n if (item) {\n detail.push(item);\n }\n });\n (event as any).detail = detail;\n\n onChange(event);\n }\n };\n\n const list = {\n ...otherProps,\n 'aria-activedescendant': getActiveDescendant(data, currentIndex, id),\n 'aria-multiselectable': true,\n data,\n disabled,\n id,\n onChange: () => null,\n onClick: handleListboxClick,\n onFocus: handleListboxFocus,\n onKeyDown: handleListboxKeyDown,\n scrollOnFocus: false,\n tabIndex: disabled ? -1 : otherProps.tabIndex ? otherProps.tabIndex : 0,\n value: currentIndex,\n selectedIndexes,\n multiselect: true,\n allOptionsSelected,\n };\n\n const input = {\n name,\n onChange: handleInputChange,\n ref: inputRef,\n tabIndex: -1,\n value: value ?? '',\n };\n\n return { list, input };\n};\n"],"names":["useLocalization","React","nanoid","useMergedRef","getIndexFromValue","useTypeahead","getSelectedIndexesFromValue","setInputValueByRef","option","index","findByValue","getActiveDescendant"],"mappings":"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"}
@@ -76,7 +76,7 @@ const useMultiListbox = ({
76
76
  };
77
77
  const handleListboxKeyDown = (event, index) => {
78
78
  const charKey = event.key;
79
- if (charKey.length === 1 && /(\w)/g.test(charKey)) {
79
+ if (charKey.length === 1 && /(\w)/gu.test(charKey)) {
80
80
  const nextIndex = getNextIndex(charKey);
81
81
  if (nextIndex > -1 && nextIndex !== currentIndex) {
82
82
  setCurrentIndex(nextIndex);
@@ -1 +1 @@
1
- {"version":3,"file":"useMultiListbox.js","sources":["../../../src/components/Listbox/useMultiListbox.tsx"],"sourcesContent":["import { nanoid } from 'nanoid';\nimport * as React from 'react';\n\nimport { useLocalization } from '@/components';\nimport { useMergedRef } from '@/hooks/useMergedRef';\n\nimport type { ListboxProps } from './Listbox';\nimport type { ScrollableListProps, ScrollableListItem, ScrollableListItemValue } from './ScrollableList';\nimport { useTypeahead } from './useTypeahead';\nimport { setInputValueByRef, getIndexFromValue, getSelectedIndexesFromValue, findByValue, getActiveDescendant } from './util';\n\ntype useListbox = {\n list: ScrollableListProps;\n input: Omit<React.HTMLAttributes<HTMLInputElement>, 'defaultValue'>;\n};\n\nexport const useMultiListbox = (\n {\n data: externalData = [],\n defaultValue,\n disabled,\n emptyValue: _,\n id: nativeId,\n name,\n onClick,\n onChange,\n onFocus,\n onKeyDown,\n value,\n ...otherProps\n }: ListboxProps,\n ref: React.Ref<HTMLInputElement>\n): useListbox => {\n const { texts } = useLocalization();\n const id = React.useMemo(() => nativeId || nanoid(), [nativeId]);\n const inputRef = useMergedRef<HTMLInputElement>(ref);\n const data = React.useMemo(() => {\n return [{ text: texts.listbox.allOption, value: '#ALL-OPTIONS#' }, ...externalData];\n }, [externalData]);\n const [currentIndex, setCurrentIndex] = React.useState(getIndexFromValue(data, value) || 0);\n const [allOptionsSelected, setAllOptionsSelected] = React.useState(false);\n const { getNextIndex } = useTypeahead({ data, currentIndex });\n const [selectedIndexes, setSelectedIndexes] = React.useState(getSelectedIndexesFromValue(data, value));\n\n React.useEffect(() => {\n if (defaultValue && !value) {\n setInputValueByRef(inputRef.current, defaultValue.toString());\n }\n }, []);\n\n React.useEffect(() => {\n const selectableItemsCount = data.filter(item => !item.disabled).length - 1;\n\n if (selectableItemsCount === selectedIndexes.length) {\n setAllOptionsSelected(true);\n } else {\n setAllOptionsSelected(false);\n }\n }, [selectedIndexes, data]);\n\n const setInputValueByIndex = (index: number | undefined): void => {\n if (index !== undefined) {\n const option = data[index];\n\n if (option && !option.disabled) {\n let newInputValue: ScrollableListItemValue = '';\n const currentInputValue = inputRef.current?.value;\n const currentValuesArray = currentInputValue?.split(',') || [];\n const optionAlreadySelected = currentValuesArray.some(val => val === String(option.value));\n\n // Handling the select_all option\n if (option.value === '#ALL-OPTIONS#') {\n if (allOptionsSelected) {\n newInputValue = '';\n } else {\n newInputValue = data\n .filter((option, index) => index !== 0 && !option.disabled)\n .map(option => option.value)\n .join(',');\n }\n } else if (optionAlreadySelected) {\n newInputValue = currentValuesArray.filter(val => val !== String(option.value)).join(',');\n } else {\n newInputValue = currentInputValue ? `${currentInputValue},${option.value}` : option.value;\n }\n\n setInputValueByRef(inputRef.current, newInputValue);\n }\n }\n };\n\n const handleListboxClick = (event: React.MouseEvent<HTMLLIElement>, index: number): void => {\n event.preventDefault();\n\n if (data[index] && !data[index].disabled) {\n setCurrentIndex(index);\n setInputValueByIndex(index);\n }\n\n if (onClick) {\n onClick(event);\n }\n };\n\n const handleListboxKeyDown = (event: React.KeyboardEvent<HTMLElement>, index?: number): void => {\n const charKey = event.key;\n\n // event.key always returns the whole string (String.fromCharCode(event.keyCode) does not)\n // We need to filter out only alphabetical or numeric letters, that's why that condition has been changed\n if (charKey.length === 1 && /(\\w)/g.test(charKey)) {\n const nextIndex = getNextIndex(charKey);\n\n if (nextIndex > -1 && nextIndex !== currentIndex) {\n setCurrentIndex(nextIndex);\n }\n return;\n }\n\n switch (event.key) {\n case ' ': {\n event.preventDefault();\n setInputValueByIndex(index);\n break;\n }\n\n case 'Enter': {\n setInputValueByIndex(index);\n break;\n }\n\n default:\n }\n setCurrentIndex(index === undefined ? 0 : index);\n\n if (onKeyDown) {\n event.persist();\n onKeyDown(event);\n }\n };\n\n const handleListboxFocus = (event: React.FocusEvent<HTMLElement>): void => {\n if (onFocus) {\n event.persist();\n onFocus(event);\n }\n };\n\n const handleInputChange = (event: React.ChangeEvent<HTMLInputElement>): void => {\n event.persist();\n\n setSelectedIndexes(getSelectedIndexesFromValue(data, event.target.value));\n\n if (onChange) {\n const detail: ScrollableListItem[] = [];\n const valuesArray = event.target.value.split(',');\n\n valuesArray.forEach(val => {\n const item = findByValue(data, val);\n if (item) {\n detail.push(item);\n }\n });\n (event as any).detail = detail;\n\n onChange(event);\n }\n };\n\n const list = {\n ...otherProps,\n 'aria-activedescendant': getActiveDescendant(data, currentIndex, id),\n 'aria-multiselectable': true,\n data,\n disabled,\n id,\n onChange: () => null,\n onClick: handleListboxClick,\n onFocus: handleListboxFocus,\n onKeyDown: handleListboxKeyDown,\n scrollOnFocus: false,\n tabIndex: disabled ? -1 : otherProps.tabIndex ? otherProps.tabIndex : 0,\n value: currentIndex,\n selectedIndexes,\n multiselect: true,\n allOptionsSelected,\n };\n\n const input = {\n name,\n onChange: handleInputChange,\n ref: inputRef,\n tabIndex: -1,\n value: value ?? '',\n };\n\n return { list, input };\n};\n"],"names":["option","index"],"mappings":"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"}
1
+ {"version":3,"file":"useMultiListbox.js","sources":["../../../src/components/Listbox/useMultiListbox.tsx"],"sourcesContent":["import { nanoid } from 'nanoid';\nimport * as React from 'react';\n\nimport { useLocalization } from '@/components';\nimport { useMergedRef } from '@/hooks/useMergedRef';\n\nimport type { ListboxProps } from './Listbox';\nimport type { ScrollableListProps, ScrollableListItem, ScrollableListItemValue } from './ScrollableList';\nimport { useTypeahead } from './useTypeahead';\nimport { setInputValueByRef, getIndexFromValue, getSelectedIndexesFromValue, findByValue, getActiveDescendant } from './util';\n\ntype useListbox = {\n list: ScrollableListProps;\n input: Omit<React.HTMLAttributes<HTMLInputElement>, 'defaultValue'>;\n};\n\nexport const useMultiListbox = (\n {\n data: externalData = [],\n defaultValue,\n disabled,\n emptyValue: _,\n id: nativeId,\n name,\n onClick,\n onChange,\n onFocus,\n onKeyDown,\n value,\n ...otherProps\n }: ListboxProps,\n ref: React.Ref<HTMLInputElement>\n): useListbox => {\n const { texts } = useLocalization();\n const id = React.useMemo(() => nativeId || nanoid(), [nativeId]);\n const inputRef = useMergedRef<HTMLInputElement>(ref);\n const data = React.useMemo(() => {\n return [{ text: texts.listbox.allOption, value: '#ALL-OPTIONS#' }, ...externalData];\n }, [externalData]);\n const [currentIndex, setCurrentIndex] = React.useState(getIndexFromValue(data, value) || 0);\n const [allOptionsSelected, setAllOptionsSelected] = React.useState(false);\n const { getNextIndex } = useTypeahead({ data, currentIndex });\n const [selectedIndexes, setSelectedIndexes] = React.useState(getSelectedIndexesFromValue(data, value));\n\n React.useEffect(() => {\n if (defaultValue && !value) {\n setInputValueByRef(inputRef.current, defaultValue.toString());\n }\n }, []);\n\n React.useEffect(() => {\n const selectableItemsCount = data.filter(item => !item.disabled).length - 1;\n\n if (selectableItemsCount === selectedIndexes.length) {\n setAllOptionsSelected(true);\n } else {\n setAllOptionsSelected(false);\n }\n }, [selectedIndexes, data]);\n\n const setInputValueByIndex = (index: number | undefined): void => {\n if (index !== undefined) {\n const option = data[index];\n\n if (option && !option.disabled) {\n let newInputValue: ScrollableListItemValue = '';\n const currentInputValue = inputRef.current?.value;\n const currentValuesArray = currentInputValue?.split(',') || [];\n const optionAlreadySelected = currentValuesArray.some(val => val === String(option.value));\n\n // Handling the select_all option\n if (option.value === '#ALL-OPTIONS#') {\n if (allOptionsSelected) {\n newInputValue = '';\n } else {\n newInputValue = data\n .filter((option, index) => index !== 0 && !option.disabled)\n .map(option => option.value)\n .join(',');\n }\n } else if (optionAlreadySelected) {\n newInputValue = currentValuesArray.filter(val => val !== String(option.value)).join(',');\n } else {\n newInputValue = currentInputValue ? `${currentInputValue},${option.value}` : option.value;\n }\n\n setInputValueByRef(inputRef.current, newInputValue);\n }\n }\n };\n\n const handleListboxClick = (event: React.MouseEvent<HTMLLIElement>, index: number): void => {\n event.preventDefault();\n\n if (data[index] && !data[index].disabled) {\n setCurrentIndex(index);\n setInputValueByIndex(index);\n }\n\n if (onClick) {\n onClick(event);\n }\n };\n\n const handleListboxKeyDown = (event: React.KeyboardEvent<HTMLElement>, index?: number): void => {\n const charKey = event.key;\n\n // event.key always returns the whole string (String.fromCharCode(event.keyCode) does not)\n // We need to filter out only alphabetical or numeric letters, that's why that condition has been changed\n if (charKey.length === 1 && /(\\w)/gu.test(charKey)) {\n const nextIndex = getNextIndex(charKey);\n\n if (nextIndex > -1 && nextIndex !== currentIndex) {\n setCurrentIndex(nextIndex);\n }\n return;\n }\n\n switch (event.key) {\n case ' ': {\n event.preventDefault();\n setInputValueByIndex(index);\n break;\n }\n\n case 'Enter': {\n setInputValueByIndex(index);\n break;\n }\n\n default:\n }\n setCurrentIndex(index === undefined ? 0 : index);\n\n if (onKeyDown) {\n event.persist();\n onKeyDown(event);\n }\n };\n\n const handleListboxFocus = (event: React.FocusEvent<HTMLElement>): void => {\n if (onFocus) {\n event.persist();\n onFocus(event);\n }\n };\n\n const handleInputChange = (event: React.ChangeEvent<HTMLInputElement>): void => {\n event.persist();\n\n setSelectedIndexes(getSelectedIndexesFromValue(data, event.target.value));\n\n if (onChange) {\n const detail: ScrollableListItem[] = [];\n const valuesArray = event.target.value.split(',');\n\n valuesArray.forEach(val => {\n const item = findByValue(data, val);\n if (item) {\n detail.push(item);\n }\n });\n (event as any).detail = detail;\n\n onChange(event);\n }\n };\n\n const list = {\n ...otherProps,\n 'aria-activedescendant': getActiveDescendant(data, currentIndex, id),\n 'aria-multiselectable': true,\n data,\n disabled,\n id,\n onChange: () => null,\n onClick: handleListboxClick,\n onFocus: handleListboxFocus,\n onKeyDown: handleListboxKeyDown,\n scrollOnFocus: false,\n tabIndex: disabled ? -1 : otherProps.tabIndex ? otherProps.tabIndex : 0,\n value: currentIndex,\n selectedIndexes,\n multiselect: true,\n allOptionsSelected,\n };\n\n const input = {\n name,\n onChange: handleInputChange,\n ref: inputRef,\n tabIndex: -1,\n value: value ?? '',\n };\n\n return { list, input };\n};\n"],"names":["option","index"],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"util.cjs","sources":["../../../src/components/Listbox/util.ts"],"sourcesContent":["import React from 'react';\n\nimport { setInputValueByRef as setInputValueByRefBase } from '@/utils/input';\n\nimport type { ScrollableListItem, ScrollableListItemValue } from './ScrollableList';\nimport { getId } from './ScrollableList';\n\nconst getValue = (value: ScrollableListItemValue | undefined): string => String(value ?? '');\n\nexport const setInputValueByRef = (\n input: HTMLInputElement | null,\n value: ScrollableListItemValue | undefined,\n event = 'change'\n): void => {\n setInputValueByRefBase(input, getValue(value), event);\n};\n\nexport const getIndexFromValue = (data: ScrollableListItem[], value: ScrollableListItemValue | undefined): number | undefined => {\n const index = data.findIndex(option => getValue(option.value) === getValue(value));\n return index > -1 ? index : undefined;\n};\n\nexport const getSelectedIndexesFromValue = (data: ScrollableListItem[], value: ScrollableListItemValue | undefined): number[] => {\n if (typeof value !== 'string') return [];\n\n return value\n .split(',')\n .map(v => data.findIndex(o => String(o.value) === v))\n .filter(v => v !== -1);\n};\n\nexport const findByValue = (\n data: ScrollableListItem[],\n value: ScrollableListItemValue | undefined\n): ScrollableListItem | undefined => {\n return data.find(option => getValue(option.value) === getValue(value));\n};\n\nexport const searchForString = (child: React.JSX.Element | string, value: string, strategy = 'includes'): boolean => {\n try {\n if (typeof child !== 'string' && child.props?.children) {\n if (Array.isArray(child.props?.children)) {\n return !!child.props.children.some((subChild: React.JSX.Element | string) =>\n searchForString(subChild, value, strategy)\n );\n }\n\n return searchForString(child.props?.children, value, strategy);\n }\n\n // @ts-expect-error\n return child.toString().toLowerCase()[strategy](String(value).toLowerCase());\n } catch {\n return false;\n }\n};\n\nconst getIndexInRangeByValue = (\n data: ScrollableListItem[],\n query: string,\n firstIndex: number,\n lastIndex: number = data.length\n): number => {\n const index = data.slice(firstIndex, lastIndex).findIndex(option => {\n if (option.disabled) {\n return false;\n }\n\n return searchForString(option.text, query, 'startsWith');\n });\n\n return index > -1 ? index + firstIndex : -1;\n};\n\nexport const findNextIndexByValue = (data: ScrollableListItem[], query: string, activeIndex: number | undefined): number => {\n const firstIndex = activeIndex === undefined ? 0 : activeIndex + 1;\n let index = getIndexInRangeByValue(data, query, firstIndex);\n\n if (index === -1) {\n index = getIndexInRangeByValue(data, query, 0, activeIndex);\n }\n\n return index;\n};\n\nexport const getActiveDescendant = (data: ScrollableListItem[], currentIndex: number | undefined, id: string): any => {\n return currentIndex !== undefined && data[currentIndex] ? getId(id, data[currentIndex].value) : undefined;\n};\n\nexport const useFlattenedData = (data: ScrollableListItem[]): ScrollableListItem[] => {\n return React.useMemo(() => {\n const items: ScrollableListItem[] = [];\n\n const flatten = (item: ScrollableListItem, path: number, parentPath?: string, parentDisabled?: boolean) => {\n const currentPath = parentPath ? `${parentPath}.${path}` : `${path}`;\n const isItemDisabled = parentDisabled || item.disabled;\n\n items.push({\n ...item,\n disabled: isItemDisabled,\n path: currentPath,\n hasChildren: !!item.children,\n });\n\n if (item.children) {\n item.children.forEach((childItem: ScrollableListItem, childPath: number) =>\n flatten(childItem, childPath, currentPath, isItemDisabled)\n );\n }\n };\n\n data.forEach((item, index) => {\n flatten(item, index);\n });\n\n return items;\n }, [data]);\n};\n\nexport const sanitizeItem = (item: ScrollableListItem | undefined) => {\n if (item) {\n const { hasChildren: _1, path: _2, ...rest } = item;\n return rest;\n }\n\n return undefined;\n};\n\nexport const getOptionParents = (data: ScrollableListItem[], path?: string) => {\n const indexes = path?.split('.') ?? [];\n\n if (indexes.length > 1) {\n // we don't want to map the current item\n indexes.pop();\n // we need to rebuild the path as we map\n let lastPath: string;\n\n return indexes.map(i => {\n lastPath = lastPath ? [lastPath, i].join('.') : i;\n return sanitizeItem(data.find((i: ScrollableListItem) => i.path === lastPath));\n });\n }\n\n return null;\n};\n\nexport const filterData = (data: ScrollableListItem[], value: ScrollableListItemValue = ''): ScrollableListItem[] => {\n if (value === '' || value === null) {\n return data;\n }\n\n const filteredOptionValues = new Set();\n const shouldFilterOption = (option: ScrollableListItem): boolean => {\n if (option.disabled) {\n return false;\n }\n\n return searchForString(option.text, String(value));\n };\n\n data.forEach(option => {\n if (shouldFilterOption(option)) {\n const parents = getOptionParents(data, option.path);\n\n filteredOptionValues.add(option.value);\n\n if (parents !== null) {\n parents.forEach(option => filteredOptionValues.add(option?.value));\n }\n }\n });\n\n return data.filter(({ value }) => filteredOptionValues.has(value));\n};\n"],"names":["input","setInputValueByRefBase","getId","i","option","value"],"mappings":"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"}
1
+ {"version":3,"file":"util.cjs","sources":["../../../src/components/Listbox/util.ts"],"sourcesContent":["import React from 'react';\n\nimport { setInputValueByRef as setInputValueByRefBase } from '@/utils/input';\n\nimport type { ScrollableListItem, ScrollableListItemValue } from './ScrollableList';\nimport { getId } from './ScrollableList';\n\nconst getValue = (value: ScrollableListItemValue | undefined): string => String(value ?? '');\n\nexport const setInputValueByRef = (\n input: HTMLInputElement | null,\n value: ScrollableListItemValue | undefined,\n event = 'change'\n): void => {\n setInputValueByRefBase(input, getValue(value), event);\n};\n\nexport const getIndexFromValue = (data: ScrollableListItem[], value: ScrollableListItemValue | undefined): number | undefined => {\n const index = data.findIndex(option => getValue(option.value) === getValue(value));\n return index > -1 ? index : undefined;\n};\n\nexport const getSelectedIndexesFromValue = (data: ScrollableListItem[], value: ScrollableListItemValue | undefined): number[] => {\n if (typeof value !== 'string') return [];\n\n return value\n .split(',')\n .map(v => data.findIndex(o => String(o.value) === v))\n .filter(v => v !== -1);\n};\n\nexport const findByValue = (\n data: ScrollableListItem[],\n value: ScrollableListItemValue | undefined\n): ScrollableListItem | undefined => {\n return data.find(option => getValue(option.value) === getValue(value));\n};\n\nexport const searchForString = (child: React.JSX.Element | string, value: string, strategy = 'includes'): boolean => {\n try {\n if (typeof child !== 'string' && child.props?.children) {\n if (Array.isArray(child.props?.children)) {\n return !!child.props.children.some((subChild: React.JSX.Element | string) =>\n searchForString(subChild, value, strategy)\n );\n }\n\n return searchForString(child.props?.children, value, strategy);\n }\n\n // @ts-expect-error - This will need to be refactored\n return child.toString().toLowerCase()[strategy](String(value).toLowerCase());\n } catch {\n return false;\n }\n};\n\nconst getIndexInRangeByValue = (\n data: ScrollableListItem[],\n query: string,\n firstIndex: number,\n lastIndex: number = data.length\n): number => {\n const index = data.slice(firstIndex, lastIndex).findIndex(option => {\n if (option.disabled) {\n return false;\n }\n\n return searchForString(option.text, query, 'startsWith');\n });\n\n return index > -1 ? index + firstIndex : -1;\n};\n\nexport const findNextIndexByValue = (data: ScrollableListItem[], query: string, activeIndex: number | undefined): number => {\n const firstIndex = activeIndex === undefined ? 0 : activeIndex + 1;\n let index = getIndexInRangeByValue(data, query, firstIndex);\n\n if (index === -1) {\n index = getIndexInRangeByValue(data, query, 0, activeIndex);\n }\n\n return index;\n};\n\nexport const getActiveDescendant = (data: ScrollableListItem[], currentIndex: number | undefined, id: string): any => {\n return currentIndex !== undefined && data[currentIndex] ? getId(id, data[currentIndex].value) : undefined;\n};\n\nexport const useFlattenedData = (data: ScrollableListItem[]): ScrollableListItem[] => {\n return React.useMemo(() => {\n const items: ScrollableListItem[] = [];\n\n const flatten = (item: ScrollableListItem, path: number, parentPath?: string, parentDisabled?: boolean) => {\n const currentPath = parentPath ? `${parentPath}.${path}` : `${path}`;\n const isItemDisabled = parentDisabled || item.disabled;\n\n items.push({\n ...item,\n disabled: isItemDisabled,\n path: currentPath,\n hasChildren: !!item.children,\n });\n\n if (item.children) {\n item.children.forEach((childItem: ScrollableListItem, childPath: number) =>\n flatten(childItem, childPath, currentPath, isItemDisabled)\n );\n }\n };\n\n data.forEach((item, index) => {\n flatten(item, index);\n });\n\n return items;\n }, [data]);\n};\n\nexport const sanitizeItem = (item: ScrollableListItem | undefined) => {\n if (item) {\n const { hasChildren: _1, path: _2, ...rest } = item;\n return rest;\n }\n\n return undefined;\n};\n\nexport const getOptionParents = (data: ScrollableListItem[], path?: string) => {\n const indexes = path?.split('.') ?? [];\n\n if (indexes.length > 1) {\n // we don't want to map the current item\n indexes.pop();\n // we need to rebuild the path as we map\n let lastPath: string;\n\n return indexes.map(i => {\n lastPath = lastPath ? [lastPath, i].join('.') : i;\n return sanitizeItem(data.find((i: ScrollableListItem) => i.path === lastPath));\n });\n }\n\n return null;\n};\n\nexport const filterData = (data: ScrollableListItem[], value: ScrollableListItemValue = ''): ScrollableListItem[] => {\n if (value === '' || value === null) {\n return data;\n }\n\n const filteredOptionValues = new Set();\n const shouldFilterOption = (option: ScrollableListItem): boolean => {\n if (option.disabled) {\n return false;\n }\n\n return searchForString(option.text, String(value));\n };\n\n data.forEach(option => {\n if (shouldFilterOption(option)) {\n const parents = getOptionParents(data, option.path);\n\n filteredOptionValues.add(option.value);\n\n if (parents !== null) {\n parents.forEach(option => filteredOptionValues.add(option?.value));\n }\n }\n });\n\n return data.filter(({ value }) => filteredOptionValues.has(value));\n};\n"],"names":["input","setInputValueByRefBase","getId","i","option","value"],"mappings":";;;;;AAOA,MAAM,WAAW,CAAC,UAAuD,OAAO,SAAS,EAAE;AAEpF,MAAM,qBAAqB,CAC9BA,SACA,OACA,QAAQ,aACD;AACPC,QAAAA,mBAAuBD,SAAO,SAAS,KAAK,GAAG,KAAK;AACxD;AAEO,MAAM,oBAAoB,CAAC,MAA4B,UAAmE;AAC7H,QAAM,QAAQ,KAAK,UAAU,CAAA,WAAU,SAAS,OAAO,KAAK,MAAM,SAAS,KAAK,CAAC;AACjF,SAAO,QAAQ,KAAK,QAAQ;AAChC;AAEO,MAAM,8BAA8B,CAAC,MAA4B,UAAyD;AAC7H,MAAI,OAAO,UAAU,SAAU,QAAO,CAAA;AAEtC,SAAO,MACF,MAAM,GAAG,EACT,IAAI,CAAA,MAAK,KAAK,UAAU,CAAA,MAAK,OAAO,EAAE,KAAK,MAAM,CAAC,CAAC,EACnD,OAAO,CAAA,MAAK,MAAM,EAAE;AAC7B;AAEO,MAAM,cAAc,CACvB,MACA,UACiC;AACjC,SAAO,KAAK,KAAK,CAAA,WAAU,SAAS,OAAO,KAAK,MAAM,SAAS,KAAK,CAAC;AACzE;AAEO,MAAM,kBAAkB,CAAC,OAAmC,OAAe,WAAW,eAAwB;AACjH,MAAI;AACA,QAAI,OAAO,UAAU,YAAY,MAAM,OAAO,UAAU;AACpD,UAAI,MAAM,QAAQ,MAAM,OAAO,QAAQ,GAAG;AACtC,eAAO,CAAC,CAAC,MAAM,MAAM,SAAS;AAAA,UAAK,CAAC,aAChC,gBAAgB,UAAU,OAAO,QAAQ;AAAA,QAAA;AAAA,MAEjD;AAEA,aAAO,gBAAgB,MAAM,OAAO,UAAU,OAAO,QAAQ;AAAA,IACjE;AAGA,WAAO,MAAM,SAAA,EAAW,YAAA,EAAc,QAAQ,EAAE,OAAO,KAAK,EAAE,aAAa;AAAA,EAC/E,QAAQ;AACJ,WAAO;AAAA,EACX;AACJ;AAEA,MAAM,yBAAyB,CAC3B,MACA,OACA,YACA,YAAoB,KAAK,WAChB;AACT,QAAM,QAAQ,KAAK,MAAM,YAAY,SAAS,EAAE,UAAU,CAAA,WAAU;AAChE,QAAI,OAAO,UAAU;AACjB,aAAO;AAAA,IACX;AAEA,WAAO,gBAAgB,OAAO,MAAM,OAAO,YAAY;AAAA,EAC3D,CAAC;AAED,SAAO,QAAQ,KAAK,QAAQ,aAAa;AAC7C;AAEO,MAAM,uBAAuB,CAAC,MAA4B,OAAe,gBAA4C;AACxH,QAAM,aAAa,gBAAgB,SAAY,IAAI,cAAc;AACjE,MAAI,QAAQ,uBAAuB,MAAM,OAAO,UAAU;AAE1D,MAAI,UAAU,IAAI;AACd,YAAQ,uBAAuB,MAAM,OAAO,GAAG,WAAW;AAAA,EAC9D;AAEA,SAAO;AACX;AAEO,MAAM,sBAAsB,CAAC,MAA4B,cAAkC,OAAoB;AAClH,SAAO,iBAAiB,UAAa,KAAK,YAAY,IAAIE,eAAAA,MAAM,IAAI,KAAK,YAAY,EAAE,KAAK,IAAI;AACpG;AAEO,MAAM,mBAAmB,CAAC,SAAqD;AAClF,SAAO,MAAM,QAAQ,MAAM;AACvB,UAAM,QAA8B,CAAA;AAEpC,UAAM,UAAU,CAAC,MAA0B,MAAc,YAAqB,mBAA6B;AACvG,YAAM,cAAc,aAAa,GAAG,UAAU,IAAI,IAAI,KAAK,GAAG,IAAI;AAClE,YAAM,iBAAiB,kBAAkB,KAAK;AAE9C,YAAM,KAAK;AAAA,QACP,GAAG;AAAA,QACH,UAAU;AAAA,QACV,MAAM;AAAA,QACN,aAAa,CAAC,CAAC,KAAK;AAAA,MAAA,CACvB;AAED,UAAI,KAAK,UAAU;AACf,aAAK,SAAS;AAAA,UAAQ,CAAC,WAA+B,cAClD,QAAQ,WAAW,WAAW,aAAa,cAAc;AAAA,QAAA;AAAA,MAEjE;AAAA,IACJ;AAEA,SAAK,QAAQ,CAAC,MAAM,UAAU;AAC1B,cAAQ,MAAM,KAAK;AAAA,IACvB,CAAC;AAED,WAAO;AAAA,EACX,GAAG,CAAC,IAAI,CAAC;AACb;AAEO,MAAM,eAAe,CAAC,SAAyC;AAClE,MAAI,MAAM;AACN,UAAM,EAAE,aAAa,IAAI,MAAM,IAAI,GAAG,SAAS;AAC/C,WAAO;AAAA,EACX;AAEA,SAAO;AACX;AAEO,MAAM,mBAAmB,CAAC,MAA4B,SAAkB;AAC3E,QAAM,UAAU,MAAM,MAAM,GAAG,KAAK,CAAA;AAEpC,MAAI,QAAQ,SAAS,GAAG;AAEpB,YAAQ,IAAA;AAER,QAAI;AAEJ,WAAO,QAAQ,IAAI,CAAA,MAAK;AACpB,iBAAW,WAAW,CAAC,UAAU,CAAC,EAAE,KAAK,GAAG,IAAI;AAChD,aAAO,aAAa,KAAK,KAAK,CAACC,OAA0BA,GAAE,SAAS,QAAQ,CAAC;AAAA,IACjF,CAAC;AAAA,EACL;AAEA,SAAO;AACX;AAEO,MAAM,aAAa,CAAC,MAA4B,QAAiC,OAA6B;AACjH,MAAI,UAAU,MAAM,UAAU,MAAM;AAChC,WAAO;AAAA,EACX;AAEA,QAAM,2CAA2B,IAAA;AACjC,QAAM,qBAAqB,CAAC,WAAwC;AAChE,QAAI,OAAO,UAAU;AACjB,aAAO;AAAA,IACX;AAEA,WAAO,gBAAgB,OAAO,MAAM,OAAO,KAAK,CAAC;AAAA,EACrD;AAEA,OAAK,QAAQ,CAAA,WAAU;AACnB,QAAI,mBAAmB,MAAM,GAAG;AAC5B,YAAM,UAAU,iBAAiB,MAAM,OAAO,IAAI;AAElD,2BAAqB,IAAI,OAAO,KAAK;AAErC,UAAI,YAAY,MAAM;AAClB,gBAAQ,QAAQ,CAAAC,YAAU,qBAAqB,IAAIA,SAAQ,KAAK,CAAC;AAAA,MACrE;AAAA,IACJ;AAAA,EACJ,CAAC;AAED,SAAO,KAAK,OAAO,CAAC,EAAE,OAAAC,aAAY,qBAAqB,IAAIA,MAAK,CAAC;AACrE;;;;;;;;;;;;"}
@@ -1 +1 @@
1
- {"version":3,"file":"util.js","sources":["../../../src/components/Listbox/util.ts"],"sourcesContent":["import React from 'react';\n\nimport { setInputValueByRef as setInputValueByRefBase } from '@/utils/input';\n\nimport type { ScrollableListItem, ScrollableListItemValue } from './ScrollableList';\nimport { getId } from './ScrollableList';\n\nconst getValue = (value: ScrollableListItemValue | undefined): string => String(value ?? '');\n\nexport const setInputValueByRef = (\n input: HTMLInputElement | null,\n value: ScrollableListItemValue | undefined,\n event = 'change'\n): void => {\n setInputValueByRefBase(input, getValue(value), event);\n};\n\nexport const getIndexFromValue = (data: ScrollableListItem[], value: ScrollableListItemValue | undefined): number | undefined => {\n const index = data.findIndex(option => getValue(option.value) === getValue(value));\n return index > -1 ? index : undefined;\n};\n\nexport const getSelectedIndexesFromValue = (data: ScrollableListItem[], value: ScrollableListItemValue | undefined): number[] => {\n if (typeof value !== 'string') return [];\n\n return value\n .split(',')\n .map(v => data.findIndex(o => String(o.value) === v))\n .filter(v => v !== -1);\n};\n\nexport const findByValue = (\n data: ScrollableListItem[],\n value: ScrollableListItemValue | undefined\n): ScrollableListItem | undefined => {\n return data.find(option => getValue(option.value) === getValue(value));\n};\n\nexport const searchForString = (child: React.JSX.Element | string, value: string, strategy = 'includes'): boolean => {\n try {\n if (typeof child !== 'string' && child.props?.children) {\n if (Array.isArray(child.props?.children)) {\n return !!child.props.children.some((subChild: React.JSX.Element | string) =>\n searchForString(subChild, value, strategy)\n );\n }\n\n return searchForString(child.props?.children, value, strategy);\n }\n\n // @ts-expect-error\n return child.toString().toLowerCase()[strategy](String(value).toLowerCase());\n } catch {\n return false;\n }\n};\n\nconst getIndexInRangeByValue = (\n data: ScrollableListItem[],\n query: string,\n firstIndex: number,\n lastIndex: number = data.length\n): number => {\n const index = data.slice(firstIndex, lastIndex).findIndex(option => {\n if (option.disabled) {\n return false;\n }\n\n return searchForString(option.text, query, 'startsWith');\n });\n\n return index > -1 ? index + firstIndex : -1;\n};\n\nexport const findNextIndexByValue = (data: ScrollableListItem[], query: string, activeIndex: number | undefined): number => {\n const firstIndex = activeIndex === undefined ? 0 : activeIndex + 1;\n let index = getIndexInRangeByValue(data, query, firstIndex);\n\n if (index === -1) {\n index = getIndexInRangeByValue(data, query, 0, activeIndex);\n }\n\n return index;\n};\n\nexport const getActiveDescendant = (data: ScrollableListItem[], currentIndex: number | undefined, id: string): any => {\n return currentIndex !== undefined && data[currentIndex] ? getId(id, data[currentIndex].value) : undefined;\n};\n\nexport const useFlattenedData = (data: ScrollableListItem[]): ScrollableListItem[] => {\n return React.useMemo(() => {\n const items: ScrollableListItem[] = [];\n\n const flatten = (item: ScrollableListItem, path: number, parentPath?: string, parentDisabled?: boolean) => {\n const currentPath = parentPath ? `${parentPath}.${path}` : `${path}`;\n const isItemDisabled = parentDisabled || item.disabled;\n\n items.push({\n ...item,\n disabled: isItemDisabled,\n path: currentPath,\n hasChildren: !!item.children,\n });\n\n if (item.children) {\n item.children.forEach((childItem: ScrollableListItem, childPath: number) =>\n flatten(childItem, childPath, currentPath, isItemDisabled)\n );\n }\n };\n\n data.forEach((item, index) => {\n flatten(item, index);\n });\n\n return items;\n }, [data]);\n};\n\nexport const sanitizeItem = (item: ScrollableListItem | undefined) => {\n if (item) {\n const { hasChildren: _1, path: _2, ...rest } = item;\n return rest;\n }\n\n return undefined;\n};\n\nexport const getOptionParents = (data: ScrollableListItem[], path?: string) => {\n const indexes = path?.split('.') ?? [];\n\n if (indexes.length > 1) {\n // we don't want to map the current item\n indexes.pop();\n // we need to rebuild the path as we map\n let lastPath: string;\n\n return indexes.map(i => {\n lastPath = lastPath ? [lastPath, i].join('.') : i;\n return sanitizeItem(data.find((i: ScrollableListItem) => i.path === lastPath));\n });\n }\n\n return null;\n};\n\nexport const filterData = (data: ScrollableListItem[], value: ScrollableListItemValue = ''): ScrollableListItem[] => {\n if (value === '' || value === null) {\n return data;\n }\n\n const filteredOptionValues = new Set();\n const shouldFilterOption = (option: ScrollableListItem): boolean => {\n if (option.disabled) {\n return false;\n }\n\n return searchForString(option.text, String(value));\n };\n\n data.forEach(option => {\n if (shouldFilterOption(option)) {\n const parents = getOptionParents(data, option.path);\n\n filteredOptionValues.add(option.value);\n\n if (parents !== null) {\n parents.forEach(option => filteredOptionValues.add(option?.value));\n }\n }\n });\n\n return data.filter(({ value }) => filteredOptionValues.has(value));\n};\n"],"names":["setInputValueByRefBase","React","i","option","value"],"mappings":"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"}
1
+ {"version":3,"file":"util.js","sources":["../../../src/components/Listbox/util.ts"],"sourcesContent":["import React from 'react';\n\nimport { setInputValueByRef as setInputValueByRefBase } from '@/utils/input';\n\nimport type { ScrollableListItem, ScrollableListItemValue } from './ScrollableList';\nimport { getId } from './ScrollableList';\n\nconst getValue = (value: ScrollableListItemValue | undefined): string => String(value ?? '');\n\nexport const setInputValueByRef = (\n input: HTMLInputElement | null,\n value: ScrollableListItemValue | undefined,\n event = 'change'\n): void => {\n setInputValueByRefBase(input, getValue(value), event);\n};\n\nexport const getIndexFromValue = (data: ScrollableListItem[], value: ScrollableListItemValue | undefined): number | undefined => {\n const index = data.findIndex(option => getValue(option.value) === getValue(value));\n return index > -1 ? index : undefined;\n};\n\nexport const getSelectedIndexesFromValue = (data: ScrollableListItem[], value: ScrollableListItemValue | undefined): number[] => {\n if (typeof value !== 'string') return [];\n\n return value\n .split(',')\n .map(v => data.findIndex(o => String(o.value) === v))\n .filter(v => v !== -1);\n};\n\nexport const findByValue = (\n data: ScrollableListItem[],\n value: ScrollableListItemValue | undefined\n): ScrollableListItem | undefined => {\n return data.find(option => getValue(option.value) === getValue(value));\n};\n\nexport const searchForString = (child: React.JSX.Element | string, value: string, strategy = 'includes'): boolean => {\n try {\n if (typeof child !== 'string' && child.props?.children) {\n if (Array.isArray(child.props?.children)) {\n return !!child.props.children.some((subChild: React.JSX.Element | string) =>\n searchForString(subChild, value, strategy)\n );\n }\n\n return searchForString(child.props?.children, value, strategy);\n }\n\n // @ts-expect-error - This will need to be refactored\n return child.toString().toLowerCase()[strategy](String(value).toLowerCase());\n } catch {\n return false;\n }\n};\n\nconst getIndexInRangeByValue = (\n data: ScrollableListItem[],\n query: string,\n firstIndex: number,\n lastIndex: number = data.length\n): number => {\n const index = data.slice(firstIndex, lastIndex).findIndex(option => {\n if (option.disabled) {\n return false;\n }\n\n return searchForString(option.text, query, 'startsWith');\n });\n\n return index > -1 ? index + firstIndex : -1;\n};\n\nexport const findNextIndexByValue = (data: ScrollableListItem[], query: string, activeIndex: number | undefined): number => {\n const firstIndex = activeIndex === undefined ? 0 : activeIndex + 1;\n let index = getIndexInRangeByValue(data, query, firstIndex);\n\n if (index === -1) {\n index = getIndexInRangeByValue(data, query, 0, activeIndex);\n }\n\n return index;\n};\n\nexport const getActiveDescendant = (data: ScrollableListItem[], currentIndex: number | undefined, id: string): any => {\n return currentIndex !== undefined && data[currentIndex] ? getId(id, data[currentIndex].value) : undefined;\n};\n\nexport const useFlattenedData = (data: ScrollableListItem[]): ScrollableListItem[] => {\n return React.useMemo(() => {\n const items: ScrollableListItem[] = [];\n\n const flatten = (item: ScrollableListItem, path: number, parentPath?: string, parentDisabled?: boolean) => {\n const currentPath = parentPath ? `${parentPath}.${path}` : `${path}`;\n const isItemDisabled = parentDisabled || item.disabled;\n\n items.push({\n ...item,\n disabled: isItemDisabled,\n path: currentPath,\n hasChildren: !!item.children,\n });\n\n if (item.children) {\n item.children.forEach((childItem: ScrollableListItem, childPath: number) =>\n flatten(childItem, childPath, currentPath, isItemDisabled)\n );\n }\n };\n\n data.forEach((item, index) => {\n flatten(item, index);\n });\n\n return items;\n }, [data]);\n};\n\nexport const sanitizeItem = (item: ScrollableListItem | undefined) => {\n if (item) {\n const { hasChildren: _1, path: _2, ...rest } = item;\n return rest;\n }\n\n return undefined;\n};\n\nexport const getOptionParents = (data: ScrollableListItem[], path?: string) => {\n const indexes = path?.split('.') ?? [];\n\n if (indexes.length > 1) {\n // we don't want to map the current item\n indexes.pop();\n // we need to rebuild the path as we map\n let lastPath: string;\n\n return indexes.map(i => {\n lastPath = lastPath ? [lastPath, i].join('.') : i;\n return sanitizeItem(data.find((i: ScrollableListItem) => i.path === lastPath));\n });\n }\n\n return null;\n};\n\nexport const filterData = (data: ScrollableListItem[], value: ScrollableListItemValue = ''): ScrollableListItem[] => {\n if (value === '' || value === null) {\n return data;\n }\n\n const filteredOptionValues = new Set();\n const shouldFilterOption = (option: ScrollableListItem): boolean => {\n if (option.disabled) {\n return false;\n }\n\n return searchForString(option.text, String(value));\n };\n\n data.forEach(option => {\n if (shouldFilterOption(option)) {\n const parents = getOptionParents(data, option.path);\n\n filteredOptionValues.add(option.value);\n\n if (parents !== null) {\n parents.forEach(option => filteredOptionValues.add(option?.value));\n }\n }\n });\n\n return data.filter(({ value }) => filteredOptionValues.has(value));\n};\n"],"names":["setInputValueByRefBase","React","i","option","value"],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"Content.cjs","sources":["../../../../src/components/Menu/components/Content.tsx"],"sourcesContent":["import { Menu as MenuPrimitive } from '@base-ui/react/menu';\nimport cn from 'clsx';\nimport * as React from 'react';\n\nimport { useMergedRef } from '@/hooks/useMergedRef';\nimport type { Align, Placement } from '@/types';\nimport { isFragment } from '@/utils/flattenChildren';\nimport { createShortcutKeyDownHandler } from '@/utils/keyboard';\n\nimport { useCurrentMenu } from '../Context';\n\nimport type { MenuItemProps } from './Item';\n\nexport type MenuContentProps = Omit<React.ComponentPropsWithoutRef<typeof MenuPrimitive.Popup>, 'children' | 'side'> & {\n align?: Align;\n children: React.ReactNode;\n /** Set the position of the Menu relative to its trigger. Default value is `bottom` */\n placement?: Placement;\n};\n\nexport const Content = React.forwardRef(function MenuContent(props: MenuContentProps, ref: React.Ref<HTMLDivElement>) {\n const internalRef = useMergedRef<any>(ref);\n const menu = useCurrentMenu();\n const { align = 'start', children: _1, placement: side, ...otherProps } = props;\n const className = cn(\n 'block rounded border border-transparent bg-white p-1 text-black outline-none yt-shadow',\n props.className\n );\n\n // attach refs to each child\n const childrenRefs = React.useRef<React.RefObject<HTMLDivElement | null>[]>([]);\n const childrenWithRefs = (\n React.Children.toArray(props.children) as React.ReactElement<MenuItemProps & { ref: React.Ref<HTMLDivElement> }>[]\n )\n .filter(child => !!child) // remove falsey children\n .map((child, index) => {\n childrenRefs.current[index] = React.createRef<HTMLDivElement>();\n return isFragment(child) ? child : React.cloneElement(child, { ref: childrenRefs.current[index] });\n });\n\n // register any shortcuts attached to children\n React.useEffect(() => {\n const shortcuts: ((event: KeyboardEvent) => void)[] = [];\n childrenWithRefs.forEach((child, index) => {\n if (child.props.shortcut) {\n shortcuts.push(\n createShortcutKeyDownHandler(child.props.shortcut, event => {\n event.preventDefault();\n\n const dialog = document.querySelector('[role=\"dialog\"]');\n\n // Don't trigger the shortcut if it is outside of the dialog\n if (dialog && !dialog?.contains(internalRef.current)) {\n return;\n }\n\n menu?.open();\n setTimeout(() => childrenRefs.current[index]?.current?.click(), 1);\n })\n );\n }\n });\n\n // Use capture phase to intercept events before Base UI menu items can stop propagation\n shortcuts.forEach(handler => document.addEventListener('keydown', handler, { capture: true }));\n\n return () => {\n shortcuts.forEach(handler => document.removeEventListener('keydown', handler, { capture: true }));\n };\n }, []);\n\n return (\n <MenuPrimitive.Portal>\n <MenuPrimitive.Positioner align={align} side={side} sideOffset={3}>\n <MenuPrimitive.Popup\n {...otherProps}\n className={className}\n data-taco=\"menu\"\n style={{ minWidth: menu?.minWidth }}\n ref={internalRef}>\n {childrenWithRefs}\n </MenuPrimitive.Popup>\n </MenuPrimitive.Positioner>\n </MenuPrimitive.Portal>\n );\n});\n"],"names":["React","useMergedRef","menu","useCurrentMenu","isFragment","createShortcutKeyDownHandler","MenuPrimitive"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;AAoBO,MAAM,UAAUA,iBAAM,WAAW,SAAS,YAAY,OAAyB,KAAgC;AAClH,QAAM,cAAcC,aAAAA,aAAkB,GAAG;AACzC,QAAMC,SAAOC,QAAAA,eAAA;AACb,QAAM,EAAE,QAAQ,SAAS,UAAU,IAAI,WAAW,MAAM,GAAG,WAAA,IAAe;AAC1E,QAAM,YAAY;AAAA,IACd;AAAA,IACA,MAAM;AAAA,EAAA;AAIV,QAAM,eAAeH,iBAAM,OAAiD,EAAE;AAC9E,QAAM,mBACFA,iBAAM,SAAS,QAAQ,MAAM,QAAQ,EAEpC,OAAO,CAAA,UAAS,CAAC,CAAC,KAAK,EACvB,IAAI,CAAC,OAAO,UAAU;AACnB,iBAAa,QAAQ,KAAK,IAAIA,iBAAM,UAAA;AACpC,WAAOI,gBAAAA,WAAW,KAAK,IAAI,QAAQJ,iBAAM,aAAa,OAAO,EAAE,KAAK,aAAa,QAAQ,KAAK,GAAG;AAAA,EACrG,CAAC;AAGLA,mBAAM,UAAU,MAAM;AAClB,UAAM,YAAgD,CAAA;AACtD,qBAAiB,QAAQ,CAAC,OAAO,UAAU;AACvC,UAAI,MAAM,MAAM,UAAU;AACtB,kBAAU;AAAA,UACNK,SAAAA,6BAA6B,MAAM,MAAM,UAAU,CAAA,UAAS;AACxD,kBAAM,eAAA;AAEN,kBAAM,SAAS,SAAS,cAAc,iBAAiB;AAGvD,gBAAI,UAAU,CAAC,QAAQ,SAAS,YAAY,OAAO,GAAG;AAClD;AAAA,YACJ;AAEAH,oBAAM,KAAA;AACN,uBAAW,MAAM,aAAa,QAAQ,KAAK,GAAG,SAAS,MAAA,GAAS,CAAC;AAAA,UACrE,CAAC;AAAA,QAAA;AAAA,MAET;AAAA,IACJ,CAAC;AAGD,cAAU,QAAQ,CAAA,YAAW,SAAS,iBAAiB,WAAW,SAAS,EAAE,SAAS,KAAA,CAAM,CAAC;AAE7F,WAAO,MAAM;AACT,gBAAU,QAAQ,CAAA,YAAW,SAAS,oBAAoB,WAAW,SAAS,EAAE,SAAS,KAAA,CAAM,CAAC;AAAA,IACpG;AAAA,EACJ,GAAG,CAAA,CAAE;AAEL,SACIF,iCAAA,cAACM,KAAAA,KAAc,QAAd,MACGN,iCAAA,cAACM,KAAAA,KAAc,YAAd,EAAyB,OAAc,MAAY,YAAY,EAAA,GAC5DN,iCAAA;AAAA,IAACM,KAAAA,KAAc;AAAA,IAAd;AAAA,MACI,GAAG;AAAA,MACJ;AAAA,MACA,aAAU;AAAA,MACV,OAAO,EAAE,UAAUJ,QAAM,SAAA;AAAA,MACzB,KAAK;AAAA,IAAA;AAAA,IACJ;AAAA,EAAA,CAET,CACJ;AAER,CAAC;;"}
1
+ {"version":3,"file":"Content.cjs","sources":["../../../../src/components/Menu/components/Content.tsx"],"sourcesContent":["import { Menu as MenuPrimitive } from '@base-ui/react/menu';\nimport cn from 'clsx';\nimport * as React from 'react';\n\nimport { useMergedRef } from '@/hooks/useMergedRef';\nimport type { Align, Placement } from '@/types';\nimport { isFragment } from '@/utils/flattenChildren';\nimport { createShortcutKeyDownHandler } from '@/utils/keyboard';\n\nimport { useCurrentMenu } from '../Context';\n\nimport type { MenuItemProps } from './Item';\n\nexport type MenuContentProps = Omit<React.ComponentPropsWithoutRef<typeof MenuPrimitive.Popup>, 'children' | 'side'> & {\n align?: Align;\n children: React.ReactNode;\n /** Set the position of the Menu relative to its trigger. Default value is `bottom` */\n placement?: Placement;\n};\n\nexport const Content = React.forwardRef(function MenuContent(props: MenuContentProps, ref: React.Ref<HTMLDivElement>) {\n const internalRef = useMergedRef<any>(ref);\n const menu = useCurrentMenu();\n const { align = 'start', children: _1, placement: side, ...otherProps } = props;\n const className = cn(\n 'block rounded border border-transparent bg-white p-1 text-black outline-none yt-shadow',\n props.className\n );\n\n // attach refs to each child\n const childrenRefs = React.useRef<React.RefObject<HTMLDivElement | null>[]>([]);\n const childrenWithRefs = (\n React.Children.toArray(props.children) as React.ReactElement<MenuItemProps & { ref: React.Ref<HTMLDivElement> }>[]\n )\n // remove falsey children\n .filter(child => !!child)\n .map((child, index) => {\n childrenRefs.current[index] = React.createRef<HTMLDivElement>();\n return isFragment(child) ? child : React.cloneElement(child, { ref: childrenRefs.current[index] });\n });\n\n // register any shortcuts attached to children\n React.useEffect(() => {\n const shortcuts: ((event: KeyboardEvent) => void)[] = [];\n childrenWithRefs.forEach((child, index) => {\n if (child.props.shortcut) {\n shortcuts.push(\n createShortcutKeyDownHandler(child.props.shortcut, event => {\n event.preventDefault();\n\n const dialog = document.querySelector('[role=\"dialog\"]');\n\n // Don't trigger the shortcut if it is outside of the dialog\n if (dialog && !dialog?.contains(internalRef.current)) {\n return;\n }\n\n menu?.open();\n setTimeout(() => childrenRefs.current[index]?.current?.click(), 1);\n })\n );\n }\n });\n\n // Use capture phase to intercept events before Base UI menu items can stop propagation\n shortcuts.forEach(handler => document.addEventListener('keydown', handler, { capture: true }));\n\n return () => {\n shortcuts.forEach(handler => document.removeEventListener('keydown', handler, { capture: true }));\n };\n }, []);\n\n return (\n <MenuPrimitive.Portal>\n <MenuPrimitive.Positioner align={align} side={side} sideOffset={3}>\n <MenuPrimitive.Popup\n {...otherProps}\n className={className}\n data-taco=\"menu\"\n style={{ minWidth: menu?.minWidth }}\n ref={internalRef}>\n {childrenWithRefs}\n </MenuPrimitive.Popup>\n </MenuPrimitive.Positioner>\n </MenuPrimitive.Portal>\n );\n});\n"],"names":["React","useMergedRef","menu","useCurrentMenu","isFragment","createShortcutKeyDownHandler","MenuPrimitive"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;AAoBO,MAAM,UAAUA,iBAAM,WAAW,SAAS,YAAY,OAAyB,KAAgC;AAClH,QAAM,cAAcC,aAAAA,aAAkB,GAAG;AACzC,QAAMC,SAAOC,QAAAA,eAAA;AACb,QAAM,EAAE,QAAQ,SAAS,UAAU,IAAI,WAAW,MAAM,GAAG,WAAA,IAAe;AAC1E,QAAM,YAAY;AAAA,IACd;AAAA,IACA,MAAM;AAAA,EAAA;AAIV,QAAM,eAAeH,iBAAM,OAAiD,EAAE;AAC9E,QAAM,mBACFA,iBAAM,SAAS,QAAQ,MAAM,QAAQ,EAGpC,OAAO,CAAA,UAAS,CAAC,CAAC,KAAK,EACvB,IAAI,CAAC,OAAO,UAAU;AACnB,iBAAa,QAAQ,KAAK,IAAIA,iBAAM,UAAA;AACpC,WAAOI,gBAAAA,WAAW,KAAK,IAAI,QAAQJ,iBAAM,aAAa,OAAO,EAAE,KAAK,aAAa,QAAQ,KAAK,GAAG;AAAA,EACrG,CAAC;AAGLA,mBAAM,UAAU,MAAM;AAClB,UAAM,YAAgD,CAAA;AACtD,qBAAiB,QAAQ,CAAC,OAAO,UAAU;AACvC,UAAI,MAAM,MAAM,UAAU;AACtB,kBAAU;AAAA,UACNK,SAAAA,6BAA6B,MAAM,MAAM,UAAU,CAAA,UAAS;AACxD,kBAAM,eAAA;AAEN,kBAAM,SAAS,SAAS,cAAc,iBAAiB;AAGvD,gBAAI,UAAU,CAAC,QAAQ,SAAS,YAAY,OAAO,GAAG;AAClD;AAAA,YACJ;AAEAH,oBAAM,KAAA;AACN,uBAAW,MAAM,aAAa,QAAQ,KAAK,GAAG,SAAS,MAAA,GAAS,CAAC;AAAA,UACrE,CAAC;AAAA,QAAA;AAAA,MAET;AAAA,IACJ,CAAC;AAGD,cAAU,QAAQ,CAAA,YAAW,SAAS,iBAAiB,WAAW,SAAS,EAAE,SAAS,KAAA,CAAM,CAAC;AAE7F,WAAO,MAAM;AACT,gBAAU,QAAQ,CAAA,YAAW,SAAS,oBAAoB,WAAW,SAAS,EAAE,SAAS,KAAA,CAAM,CAAC;AAAA,IACpG;AAAA,EACJ,GAAG,CAAA,CAAE;AAEL,SACIF,iCAAA,cAACM,KAAAA,KAAc,QAAd,MACGN,iCAAA,cAACM,KAAAA,KAAc,YAAd,EAAyB,OAAc,MAAY,YAAY,EAAA,GAC5DN,iCAAA;AAAA,IAACM,KAAAA,KAAc;AAAA,IAAd;AAAA,MACI,GAAG;AAAA,MACJ;AAAA,MACA,aAAU;AAAA,MACV,OAAO,EAAE,UAAUJ,QAAM,SAAA;AAAA,MACzB,KAAK;AAAA,IAAA;AAAA,IACJ;AAAA,EAAA,CAET,CACJ;AAER,CAAC;;"}
@@ -1 +1 @@
1
- {"version":3,"file":"Content.js","sources":["../../../../src/components/Menu/components/Content.tsx"],"sourcesContent":["import { Menu as MenuPrimitive } from '@base-ui/react/menu';\nimport cn from 'clsx';\nimport * as React from 'react';\n\nimport { useMergedRef } from '@/hooks/useMergedRef';\nimport type { Align, Placement } from '@/types';\nimport { isFragment } from '@/utils/flattenChildren';\nimport { createShortcutKeyDownHandler } from '@/utils/keyboard';\n\nimport { useCurrentMenu } from '../Context';\n\nimport type { MenuItemProps } from './Item';\n\nexport type MenuContentProps = Omit<React.ComponentPropsWithoutRef<typeof MenuPrimitive.Popup>, 'children' | 'side'> & {\n align?: Align;\n children: React.ReactNode;\n /** Set the position of the Menu relative to its trigger. Default value is `bottom` */\n placement?: Placement;\n};\n\nexport const Content = React.forwardRef(function MenuContent(props: MenuContentProps, ref: React.Ref<HTMLDivElement>) {\n const internalRef = useMergedRef<any>(ref);\n const menu = useCurrentMenu();\n const { align = 'start', children: _1, placement: side, ...otherProps } = props;\n const className = cn(\n 'block rounded border border-transparent bg-white p-1 text-black outline-none yt-shadow',\n props.className\n );\n\n // attach refs to each child\n const childrenRefs = React.useRef<React.RefObject<HTMLDivElement | null>[]>([]);\n const childrenWithRefs = (\n React.Children.toArray(props.children) as React.ReactElement<MenuItemProps & { ref: React.Ref<HTMLDivElement> }>[]\n )\n .filter(child => !!child) // remove falsey children\n .map((child, index) => {\n childrenRefs.current[index] = React.createRef<HTMLDivElement>();\n return isFragment(child) ? child : React.cloneElement(child, { ref: childrenRefs.current[index] });\n });\n\n // register any shortcuts attached to children\n React.useEffect(() => {\n const shortcuts: ((event: KeyboardEvent) => void)[] = [];\n childrenWithRefs.forEach((child, index) => {\n if (child.props.shortcut) {\n shortcuts.push(\n createShortcutKeyDownHandler(child.props.shortcut, event => {\n event.preventDefault();\n\n const dialog = document.querySelector('[role=\"dialog\"]');\n\n // Don't trigger the shortcut if it is outside of the dialog\n if (dialog && !dialog?.contains(internalRef.current)) {\n return;\n }\n\n menu?.open();\n setTimeout(() => childrenRefs.current[index]?.current?.click(), 1);\n })\n );\n }\n });\n\n // Use capture phase to intercept events before Base UI menu items can stop propagation\n shortcuts.forEach(handler => document.addEventListener('keydown', handler, { capture: true }));\n\n return () => {\n shortcuts.forEach(handler => document.removeEventListener('keydown', handler, { capture: true }));\n };\n }, []);\n\n return (\n <MenuPrimitive.Portal>\n <MenuPrimitive.Positioner align={align} side={side} sideOffset={3}>\n <MenuPrimitive.Popup\n {...otherProps}\n className={className}\n data-taco=\"menu\"\n style={{ minWidth: menu?.minWidth }}\n ref={internalRef}>\n {childrenWithRefs}\n </MenuPrimitive.Popup>\n </MenuPrimitive.Positioner>\n </MenuPrimitive.Portal>\n );\n});\n"],"names":["MenuPrimitive"],"mappings":";;;;;;;AAoBO,MAAM,UAAU,MAAM,WAAW,SAAS,YAAY,OAAyB,KAAgC;AAClH,QAAM,cAAc,aAAkB,GAAG;AACzC,QAAM,OAAO,eAAA;AACb,QAAM,EAAE,QAAQ,SAAS,UAAU,IAAI,WAAW,MAAM,GAAG,WAAA,IAAe;AAC1E,QAAM,YAAY;AAAA,IACd;AAAA,IACA,MAAM;AAAA,EAAA;AAIV,QAAM,eAAe,MAAM,OAAiD,EAAE;AAC9E,QAAM,mBACF,MAAM,SAAS,QAAQ,MAAM,QAAQ,EAEpC,OAAO,CAAA,UAAS,CAAC,CAAC,KAAK,EACvB,IAAI,CAAC,OAAO,UAAU;AACnB,iBAAa,QAAQ,KAAK,IAAI,MAAM,UAAA;AACpC,WAAO,WAAW,KAAK,IAAI,QAAQ,MAAM,aAAa,OAAO,EAAE,KAAK,aAAa,QAAQ,KAAK,GAAG;AAAA,EACrG,CAAC;AAGL,QAAM,UAAU,MAAM;AAClB,UAAM,YAAgD,CAAA;AACtD,qBAAiB,QAAQ,CAAC,OAAO,UAAU;AACvC,UAAI,MAAM,MAAM,UAAU;AACtB,kBAAU;AAAA,UACN,6BAA6B,MAAM,MAAM,UAAU,CAAA,UAAS;AACxD,kBAAM,eAAA;AAEN,kBAAM,SAAS,SAAS,cAAc,iBAAiB;AAGvD,gBAAI,UAAU,CAAC,QAAQ,SAAS,YAAY,OAAO,GAAG;AAClD;AAAA,YACJ;AAEA,kBAAM,KAAA;AACN,uBAAW,MAAM,aAAa,QAAQ,KAAK,GAAG,SAAS,MAAA,GAAS,CAAC;AAAA,UACrE,CAAC;AAAA,QAAA;AAAA,MAET;AAAA,IACJ,CAAC;AAGD,cAAU,QAAQ,CAAA,YAAW,SAAS,iBAAiB,WAAW,SAAS,EAAE,SAAS,KAAA,CAAM,CAAC;AAE7F,WAAO,MAAM;AACT,gBAAU,QAAQ,CAAA,YAAW,SAAS,oBAAoB,WAAW,SAAS,EAAE,SAAS,KAAA,CAAM,CAAC;AAAA,IACpG;AAAA,EACJ,GAAG,CAAA,CAAE;AAEL,SACI,sBAAA,cAACA,KAAc,QAAd,MACG,sBAAA,cAACA,KAAc,YAAd,EAAyB,OAAc,MAAY,YAAY,EAAA,GAC5D,sBAAA;AAAA,IAACA,KAAc;AAAA,IAAd;AAAA,MACI,GAAG;AAAA,MACJ;AAAA,MACA,aAAU;AAAA,MACV,OAAO,EAAE,UAAU,MAAM,SAAA;AAAA,MACzB,KAAK;AAAA,IAAA;AAAA,IACJ;AAAA,EAAA,CAET,CACJ;AAER,CAAC;"}
1
+ {"version":3,"file":"Content.js","sources":["../../../../src/components/Menu/components/Content.tsx"],"sourcesContent":["import { Menu as MenuPrimitive } from '@base-ui/react/menu';\nimport cn from 'clsx';\nimport * as React from 'react';\n\nimport { useMergedRef } from '@/hooks/useMergedRef';\nimport type { Align, Placement } from '@/types';\nimport { isFragment } from '@/utils/flattenChildren';\nimport { createShortcutKeyDownHandler } from '@/utils/keyboard';\n\nimport { useCurrentMenu } from '../Context';\n\nimport type { MenuItemProps } from './Item';\n\nexport type MenuContentProps = Omit<React.ComponentPropsWithoutRef<typeof MenuPrimitive.Popup>, 'children' | 'side'> & {\n align?: Align;\n children: React.ReactNode;\n /** Set the position of the Menu relative to its trigger. Default value is `bottom` */\n placement?: Placement;\n};\n\nexport const Content = React.forwardRef(function MenuContent(props: MenuContentProps, ref: React.Ref<HTMLDivElement>) {\n const internalRef = useMergedRef<any>(ref);\n const menu = useCurrentMenu();\n const { align = 'start', children: _1, placement: side, ...otherProps } = props;\n const className = cn(\n 'block rounded border border-transparent bg-white p-1 text-black outline-none yt-shadow',\n props.className\n );\n\n // attach refs to each child\n const childrenRefs = React.useRef<React.RefObject<HTMLDivElement | null>[]>([]);\n const childrenWithRefs = (\n React.Children.toArray(props.children) as React.ReactElement<MenuItemProps & { ref: React.Ref<HTMLDivElement> }>[]\n )\n // remove falsey children\n .filter(child => !!child)\n .map((child, index) => {\n childrenRefs.current[index] = React.createRef<HTMLDivElement>();\n return isFragment(child) ? child : React.cloneElement(child, { ref: childrenRefs.current[index] });\n });\n\n // register any shortcuts attached to children\n React.useEffect(() => {\n const shortcuts: ((event: KeyboardEvent) => void)[] = [];\n childrenWithRefs.forEach((child, index) => {\n if (child.props.shortcut) {\n shortcuts.push(\n createShortcutKeyDownHandler(child.props.shortcut, event => {\n event.preventDefault();\n\n const dialog = document.querySelector('[role=\"dialog\"]');\n\n // Don't trigger the shortcut if it is outside of the dialog\n if (dialog && !dialog?.contains(internalRef.current)) {\n return;\n }\n\n menu?.open();\n setTimeout(() => childrenRefs.current[index]?.current?.click(), 1);\n })\n );\n }\n });\n\n // Use capture phase to intercept events before Base UI menu items can stop propagation\n shortcuts.forEach(handler => document.addEventListener('keydown', handler, { capture: true }));\n\n return () => {\n shortcuts.forEach(handler => document.removeEventListener('keydown', handler, { capture: true }));\n };\n }, []);\n\n return (\n <MenuPrimitive.Portal>\n <MenuPrimitive.Positioner align={align} side={side} sideOffset={3}>\n <MenuPrimitive.Popup\n {...otherProps}\n className={className}\n data-taco=\"menu\"\n style={{ minWidth: menu?.minWidth }}\n ref={internalRef}>\n {childrenWithRefs}\n </MenuPrimitive.Popup>\n </MenuPrimitive.Positioner>\n </MenuPrimitive.Portal>\n );\n});\n"],"names":["MenuPrimitive"],"mappings":";;;;;;;AAoBO,MAAM,UAAU,MAAM,WAAW,SAAS,YAAY,OAAyB,KAAgC;AAClH,QAAM,cAAc,aAAkB,GAAG;AACzC,QAAM,OAAO,eAAA;AACb,QAAM,EAAE,QAAQ,SAAS,UAAU,IAAI,WAAW,MAAM,GAAG,WAAA,IAAe;AAC1E,QAAM,YAAY;AAAA,IACd;AAAA,IACA,MAAM;AAAA,EAAA;AAIV,QAAM,eAAe,MAAM,OAAiD,EAAE;AAC9E,QAAM,mBACF,MAAM,SAAS,QAAQ,MAAM,QAAQ,EAGpC,OAAO,CAAA,UAAS,CAAC,CAAC,KAAK,EACvB,IAAI,CAAC,OAAO,UAAU;AACnB,iBAAa,QAAQ,KAAK,IAAI,MAAM,UAAA;AACpC,WAAO,WAAW,KAAK,IAAI,QAAQ,MAAM,aAAa,OAAO,EAAE,KAAK,aAAa,QAAQ,KAAK,GAAG;AAAA,EACrG,CAAC;AAGL,QAAM,UAAU,MAAM;AAClB,UAAM,YAAgD,CAAA;AACtD,qBAAiB,QAAQ,CAAC,OAAO,UAAU;AACvC,UAAI,MAAM,MAAM,UAAU;AACtB,kBAAU;AAAA,UACN,6BAA6B,MAAM,MAAM,UAAU,CAAA,UAAS;AACxD,kBAAM,eAAA;AAEN,kBAAM,SAAS,SAAS,cAAc,iBAAiB;AAGvD,gBAAI,UAAU,CAAC,QAAQ,SAAS,YAAY,OAAO,GAAG;AAClD;AAAA,YACJ;AAEA,kBAAM,KAAA;AACN,uBAAW,MAAM,aAAa,QAAQ,KAAK,GAAG,SAAS,MAAA,GAAS,CAAC;AAAA,UACrE,CAAC;AAAA,QAAA;AAAA,MAET;AAAA,IACJ,CAAC;AAGD,cAAU,QAAQ,CAAA,YAAW,SAAS,iBAAiB,WAAW,SAAS,EAAE,SAAS,KAAA,CAAM,CAAC;AAE7F,WAAO,MAAM;AACT,gBAAU,QAAQ,CAAA,YAAW,SAAS,oBAAoB,WAAW,SAAS,EAAE,SAAS,KAAA,CAAM,CAAC;AAAA,IACpG;AAAA,EACJ,GAAG,CAAA,CAAE;AAEL,SACI,sBAAA,cAACA,KAAc,QAAd,MACG,sBAAA,cAACA,KAAc,YAAd,EAAyB,OAAc,MAAY,YAAY,EAAA,GAC5D,sBAAA;AAAA,IAACA,KAAc;AAAA,IAAd;AAAA,MACI,GAAG;AAAA,MACJ;AAAA,MACA,aAAU;AAAA,MACV,OAAO,EAAE,UAAU,MAAM,SAAA;AAAA,MACzB,KAAK;AAAA,IAAA;AAAA,IACJ;AAAA,EAAA,CAET,CACJ;AAER,CAAC;"}
@@ -1 +1 @@
1
- {"version":3,"file":"Item.cjs","sources":["../../../../src/components/Menu/components/Item.tsx"],"sourcesContent":["import { Menu as MenuPrimitive } from '@base-ui/react/menu';\nimport cn from 'clsx';\nimport * as React from 'react';\n\nimport type { DialogProps, IconName } from '@/components';\nimport { Icon as IconPrimitive, Shortcut } from '@/components';\nimport type { KeyDownHandlerOptions } from '@/utils/keyboard';\n\nimport { useCurrentMenu } from '../Context';\n\nexport const Icon = ({ name }: { name: IconName }) => (\n // oxlint-disable-next-line taco/no-component-margin -- grandfathered; removing this margin is a visual breaking change\n <span className=\"absolute left-0 ml-1\">\n <IconPrimitive className=\"-ml-px -mt-px !h-5 !w-5\" name={name} />\n </span>\n);\n\nexport const useItemStyling = ({\n disabled,\n indented,\n className,\n}: {\n disabled?: boolean;\n indented: boolean;\n className?: string;\n}) => {\n const menu = useCurrentMenu();\n\n React.useEffect(() => {\n if (indented && !menu?.indented) {\n menu?.registerIndentation();\n }\n }, [indented]);\n\n return cn(\n 'group relative flex h-8 w-full items-center justify-start rounded pr-1.5 focus:outline-none',\n {\n 'pl-7': menu?.indented,\n 'pl-1.5': !menu?.indented,\n /* TODO: Why have both hover and data-[highlighted]? */\n /* shadow-none on hover is to prevent the focus style from showing up on hover */\n 'cursor-pointer text-black hover:bg-gray-100 hover:text-black hover:!shadow-none focus-visible:yt-focus data-[highlighted]:bg-gray-100 data-[highlighted]:text-black':\n !disabled,\n 'cursor-not-allowed text-gray-300 hover:bg-white': disabled,\n },\n className\n );\n};\n\nexport type MenuItemProps = Omit<React.HTMLAttributes<HTMLDivElement>, 'onSelect'> & {\n dialog?: (props: Partial<DialogProps>) => React.JSX.Element;\n disabled?: boolean;\n icon?: IconName;\n onClick?: (event: React.MouseEvent<HTMLDivElement, MouseEvent>) => void;\n shortcut?: string | KeyDownHandlerOptions;\n subMenu?: any;\n};\n\nexport const Item = React.forwardRef(function MenuItem(props: MenuItemProps, ref: React.Ref<HTMLDivElement>) {\n const { dialog, icon, onClick, shortcut, subMenu, ...otherProps } = props;\n const menu = useCurrentMenu();\n\n const className = useItemStyling({\n disabled: props.disabled,\n indented: !!icon,\n className: props.className,\n });\n\n const disabled = !!props.disabled || props['aria-disabled'] === true || props['aria-disabled'] === 'true';\n\n const handleClick = (event: React.MouseEvent<HTMLDivElement>) => {\n if (disabled) {\n event.preventDefault();\n return;\n }\n\n event.stopPropagation();\n\n // For dialog items, use menu context to manage state (survives menu close)\n if (dialog && menu) {\n menu.openDialog(() =>\n dialog({\n open: true,\n onChange: (open: boolean) => {\n if (!open) menu.closeDialog();\n },\n onClose: () => menu.closeDialog(),\n })\n );\n return;\n }\n\n // Call onClick handler\n if (onClick) {\n onClick(event);\n }\n };\n\n if (subMenu) {\n return (\n <MenuPrimitive.SubmenuRoot>\n <MenuPrimitive.SubmenuTrigger {...otherProps} className={className} ref={ref}>\n {icon ? <Icon name={icon} /> : null}\n {props.children}\n <IconPrimitive className=\"-mr-1.5 ml-auto !h-5 !w-5\" name=\"chevron-right\" />\n </MenuPrimitive.SubmenuTrigger>\n {subMenu()}\n </MenuPrimitive.SubmenuRoot>\n );\n }\n\n const menuItem = (\n <MenuPrimitive.Item\n {...otherProps}\n // Need to set aria-haspopup=\"dialog\" otherwise there is no way to know item opens the dialo (in e2e tests), and we need to know this to be able to test this scenario in e2e tests.\n {...(dialog ? { 'aria-haspopup': 'dialog' } : {})}\n className={className}\n onClick={handleClick}\n ref={ref}\n disabled={disabled}>\n {icon ? <Icon name={icon} /> : null}\n {props.children}\n {shortcut ? (\n <span className=\"ml-auto pl-5\">\n <Shortcut keys={shortcut} className=\"text-gray-700\" />\n </span>\n ) : null}\n </MenuPrimitive.Item>\n );\n\n return menuItem;\n});\n"],"names":["React","IconPrimitive","menu","useCurrentMenu","MenuPrimitive","Shortcut"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;AAUO,MAAM,OAAO,CAAC,EAAE,KAAA;AAAA;AAAA,EAEnBA,iCAAA,cAAC,UAAK,WAAU,uBAAA,kDACXC,OAAAA,MAAA,EAAc,WAAU,2BAA0B,KAAA,CAAY,CACnE;AAAA;AAGG,MAAM,iBAAiB,CAAC;AAAA,EAC3B;AAAA,EACA;AAAA,EACA;AACJ,MAIM;AACF,QAAMC,QAAOC,QAAAA,eAAA;AAEbH,mBAAM,UAAU,MAAM;AAClB,QAAI,YAAY,CAACE,OAAM,UAAU;AAC7B,MAAAA,OAAM,oBAAA;AAAA,IACV;AAAA,EACJ,GAAG,CAAC,QAAQ,CAAC;AAEb,SAAO;AAAA,IACH;AAAA,IACA;AAAA,MACI,QAAQA,OAAM;AAAA,MACd,UAAU,CAACA,OAAM;AAAA;AAAA;AAAA,MAGjB,uKACI,CAAC;AAAA,MACL,mDAAmD;AAAA,IAAA;AAAA,IAEvD;AAAA,EAAA;AAER;AAWO,MAAM,OAAOF,iBAAM,WAAW,SAAS,SAAS,OAAsB,KAAgC;AACzG,QAAM,EAAE,QAAQ,MAAM,SAAS,UAAU,SAAS,GAAG,eAAe;AACpE,QAAME,SAAOC,QAAAA,eAAA;AAEb,QAAM,YAAY,eAAe;AAAA,IAC7B,UAAU,MAAM;AAAA,IAChB,UAAU,CAAC,CAAC;AAAA,IACZ,WAAW,MAAM;AAAA,EAAA,CACpB;AAED,QAAM,WAAW,CAAC,CAAC,MAAM,YAAY,MAAM,eAAe,MAAM,QAAQ,MAAM,eAAe,MAAM;AAEnG,QAAM,cAAc,CAAC,UAA4C;AAC7D,QAAI,UAAU;AACV,YAAM,eAAA;AACN;AAAA,IACJ;AAEA,UAAM,gBAAA;AAGN,QAAI,UAAUD,QAAM;AAChBA,aAAK;AAAA,QAAW,MACZ,OAAO;AAAA,UACH,MAAM;AAAA,UACN,UAAU,CAAC,SAAkB;AACzB,gBAAI,CAAC,KAAMA,QAAK,YAAA;AAAA,UACpB;AAAA,UACA,SAAS,MAAMA,OAAK,YAAA;AAAA,QAAY,CACnC;AAAA,MAAA;AAEL;AAAA,IACJ;AAGA,QAAI,SAAS;AACT,cAAQ,KAAK;AAAA,IACjB;AAAA,EACJ;AAEA,MAAI,SAAS;AACT,WACIF,iCAAA,cAACI,KAAAA,KAAc,aAAd,MACGJ,iCAAA,cAACI,KAAAA,KAAc,gBAAd,EAA8B,GAAG,YAAY,WAAsB,IAAA,GAC/D,OAAOJ,iCAAA,cAAC,MAAA,EAAK,MAAM,MAAM,IAAK,MAC9B,MAAM,UACPA,iCAAA,cAACC,OAAAA,MAAA,EAAc,WAAU,6BAA4B,MAAK,iBAAgB,CAC9E,GACC,SACL;AAAA,EAER;AAEA,QAAM,WACFD,iCAAA;AAAA,IAACI,KAAAA,KAAc;AAAA,IAAd;AAAA,MACI,GAAG;AAAA,MAEH,GAAI,SAAS,EAAE,iBAAiB,SAAA,IAAa,CAAA;AAAA,MAC9C;AAAA,MACA,SAAS;AAAA,MACT;AAAA,MACA;AAAA,IAAA;AAAA,IACC,OAAOJ,iCAAA,cAAC,MAAA,EAAK,MAAM,MAAM,IAAK;AAAA,IAC9B,MAAM;AAAA,IACN,WACGA,iCAAA,cAAC,QAAA,EAAK,WAAU,kBACZA,iCAAA,cAACK,SAAAA,UAAA,EAAS,MAAM,UAAU,WAAU,gBAAA,CAAgB,CACxD,IACA;AAAA,EAAA;AAIZ,SAAO;AACX,CAAC;;;;"}
1
+ {"version":3,"file":"Item.cjs","sources":["../../../../src/components/Menu/components/Item.tsx"],"sourcesContent":["import { Menu as MenuPrimitive } from '@base-ui/react/menu';\nimport cn from 'clsx';\nimport * as React from 'react';\n\nimport type { DialogProps, IconName } from '@/components';\nimport { Icon as IconPrimitive, Shortcut } from '@/components';\nimport type { KeyDownHandlerOptions } from '@/utils/keyboard';\n\nimport { useCurrentMenu } from '../Context';\n\nexport const Icon = ({ name }: { name: IconName }) => (\n // oxlint-disable-next-line taco/no-component-margin -- grandfathered; removing this margin is a visual breaking change\n <span className=\"absolute left-0 ml-1\">\n <IconPrimitive className=\"-ml-px -mt-px !h-5 !w-5\" name={name} />\n </span>\n);\n\nexport const useItemStyling = ({\n disabled,\n indented,\n className,\n}: {\n disabled?: boolean;\n indented: boolean;\n className?: string;\n}) => {\n const menu = useCurrentMenu();\n\n React.useEffect(() => {\n if (indented && !menu?.indented) {\n menu?.registerIndentation();\n }\n }, [indented]);\n\n return cn(\n 'group relative flex h-8 w-full items-center justify-start rounded pr-1.5 focus:outline-none',\n {\n 'pl-7': menu?.indented,\n 'pl-1.5': !menu?.indented,\n /* TODO: Why have both hover and data-[highlighted]? */\n /* shadow-none on hover is to prevent the focus style from showing up on hover */\n 'cursor-pointer text-black hover:bg-gray-100 hover:text-black hover:!shadow-none focus-visible:yt-focus data-[highlighted]:bg-gray-100 data-[highlighted]:text-black':\n !disabled,\n 'cursor-not-allowed text-gray-300 hover:bg-white': disabled,\n },\n className\n );\n};\n\nexport type MenuItemProps = Omit<React.HTMLAttributes<HTMLDivElement>, 'onSelect'> & {\n dialog?: (props: Partial<DialogProps>) => React.JSX.Element;\n disabled?: boolean;\n icon?: IconName;\n onClick?: (event: React.MouseEvent<HTMLDivElement, MouseEvent>) => void;\n shortcut?: string | KeyDownHandlerOptions;\n // TODO: This has no need being a function\n subMenu?: () => React.ReactNode;\n};\n\nexport const Item = React.forwardRef(function MenuItem(props: MenuItemProps, ref: React.Ref<HTMLDivElement>) {\n const { dialog, icon, onClick, shortcut, subMenu, ...otherProps } = props;\n const menu = useCurrentMenu();\n\n const className = useItemStyling({\n disabled: props.disabled,\n indented: !!icon,\n className: props.className,\n });\n\n const disabled = !!props.disabled || props['aria-disabled'] === true || props['aria-disabled'] === 'true';\n\n const handleClick = (event: React.MouseEvent<HTMLDivElement>) => {\n if (disabled) {\n event.preventDefault();\n return;\n }\n\n event.stopPropagation();\n\n // For dialog items, use menu context to manage state (survives menu close)\n if (dialog && menu) {\n menu.openDialog(() =>\n dialog({\n open: true,\n onChange: (open: boolean) => {\n if (!open) menu.closeDialog();\n },\n onClose: () => menu.closeDialog(),\n })\n );\n return;\n }\n\n // Call onClick handler\n if (onClick) {\n onClick(event);\n }\n };\n\n if (subMenu) {\n return (\n <MenuPrimitive.SubmenuRoot>\n <MenuPrimitive.SubmenuTrigger {...otherProps} className={className} ref={ref}>\n {icon ? <Icon name={icon} /> : null}\n {props.children}\n <IconPrimitive className=\"-mr-1.5 ml-auto !h-5 !w-5\" name=\"chevron-right\" />\n </MenuPrimitive.SubmenuTrigger>\n {subMenu()}\n </MenuPrimitive.SubmenuRoot>\n );\n }\n\n const menuItem = (\n <MenuPrimitive.Item\n {...otherProps}\n // Need to set aria-haspopup=\"dialog\" otherwise there is no way to know item opens the dialo (in e2e tests), and we need to know this to be able to test this scenario in e2e tests.\n {...(dialog ? { 'aria-haspopup': 'dialog' } : {})}\n className={className}\n onClick={handleClick}\n ref={ref}\n disabled={disabled}>\n {icon ? <Icon name={icon} /> : null}\n {props.children}\n {shortcut ? (\n <span className=\"ml-auto pl-5\">\n <Shortcut keys={shortcut} className=\"text-gray-700\" />\n </span>\n ) : null}\n </MenuPrimitive.Item>\n );\n\n return menuItem;\n});\n"],"names":["React","IconPrimitive","menu","useCurrentMenu","MenuPrimitive","Shortcut"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;AAUO,MAAM,OAAO,CAAC,EAAE,KAAA;AAAA;AAAA,EAEnBA,iCAAA,cAAC,UAAK,WAAU,uBAAA,kDACXC,OAAAA,MAAA,EAAc,WAAU,2BAA0B,KAAA,CAAY,CACnE;AAAA;AAGG,MAAM,iBAAiB,CAAC;AAAA,EAC3B;AAAA,EACA;AAAA,EACA;AACJ,MAIM;AACF,QAAMC,QAAOC,QAAAA,eAAA;AAEbH,mBAAM,UAAU,MAAM;AAClB,QAAI,YAAY,CAACE,OAAM,UAAU;AAC7B,MAAAA,OAAM,oBAAA;AAAA,IACV;AAAA,EACJ,GAAG,CAAC,QAAQ,CAAC;AAEb,SAAO;AAAA,IACH;AAAA,IACA;AAAA,MACI,QAAQA,OAAM;AAAA,MACd,UAAU,CAACA,OAAM;AAAA;AAAA;AAAA,MAGjB,uKACI,CAAC;AAAA,MACL,mDAAmD;AAAA,IAAA;AAAA,IAEvD;AAAA,EAAA;AAER;AAYO,MAAM,OAAOF,iBAAM,WAAW,SAAS,SAAS,OAAsB,KAAgC;AACzG,QAAM,EAAE,QAAQ,MAAM,SAAS,UAAU,SAAS,GAAG,eAAe;AACpE,QAAME,SAAOC,QAAAA,eAAA;AAEb,QAAM,YAAY,eAAe;AAAA,IAC7B,UAAU,MAAM;AAAA,IAChB,UAAU,CAAC,CAAC;AAAA,IACZ,WAAW,MAAM;AAAA,EAAA,CACpB;AAED,QAAM,WAAW,CAAC,CAAC,MAAM,YAAY,MAAM,eAAe,MAAM,QAAQ,MAAM,eAAe,MAAM;AAEnG,QAAM,cAAc,CAAC,UAA4C;AAC7D,QAAI,UAAU;AACV,YAAM,eAAA;AACN;AAAA,IACJ;AAEA,UAAM,gBAAA;AAGN,QAAI,UAAUD,QAAM;AAChBA,aAAK;AAAA,QAAW,MACZ,OAAO;AAAA,UACH,MAAM;AAAA,UACN,UAAU,CAAC,SAAkB;AACzB,gBAAI,CAAC,KAAMA,QAAK,YAAA;AAAA,UACpB;AAAA,UACA,SAAS,MAAMA,OAAK,YAAA;AAAA,QAAY,CACnC;AAAA,MAAA;AAEL;AAAA,IACJ;AAGA,QAAI,SAAS;AACT,cAAQ,KAAK;AAAA,IACjB;AAAA,EACJ;AAEA,MAAI,SAAS;AACT,WACIF,iCAAA,cAACI,KAAAA,KAAc,aAAd,MACGJ,iCAAA,cAACI,KAAAA,KAAc,gBAAd,EAA8B,GAAG,YAAY,WAAsB,IAAA,GAC/D,OAAOJ,iCAAA,cAAC,MAAA,EAAK,MAAM,MAAM,IAAK,MAC9B,MAAM,UACPA,iCAAA,cAACC,OAAAA,MAAA,EAAc,WAAU,6BAA4B,MAAK,iBAAgB,CAC9E,GACC,SACL;AAAA,EAER;AAEA,QAAM,WACFD,iCAAA;AAAA,IAACI,KAAAA,KAAc;AAAA,IAAd;AAAA,MACI,GAAG;AAAA,MAEH,GAAI,SAAS,EAAE,iBAAiB,SAAA,IAAa,CAAA;AAAA,MAC9C;AAAA,MACA,SAAS;AAAA,MACT;AAAA,MACA;AAAA,IAAA;AAAA,IACC,OAAOJ,iCAAA,cAAC,MAAA,EAAK,MAAM,MAAM,IAAK;AAAA,IAC9B,MAAM;AAAA,IACN,WACGA,iCAAA,cAAC,QAAA,EAAK,WAAU,kBACZA,iCAAA,cAACK,SAAAA,UAAA,EAAS,MAAM,UAAU,WAAU,gBAAA,CAAgB,CACxD,IACA;AAAA,EAAA;AAIZ,SAAO;AACX,CAAC;;;;"}
@@ -15,7 +15,7 @@ export type MenuItemProps = Omit<React.HTMLAttributes<HTMLDivElement>, 'onSelect
15
15
  icon?: IconName;
16
16
  onClick?: (event: React.MouseEvent<HTMLDivElement, MouseEvent>) => void;
17
17
  shortcut?: string | KeyDownHandlerOptions;
18
- subMenu?: any;
18
+ subMenu?: () => React.ReactNode;
19
19
  };
20
20
  export declare const Item: React.ForwardRefExoticComponent<Omit<React.HTMLAttributes<HTMLDivElement>, "onSelect"> & {
21
21
  dialog?: (props: Partial<DialogProps>) => React.JSX.Element;
@@ -23,5 +23,5 @@ export declare const Item: React.ForwardRefExoticComponent<Omit<React.HTMLAttrib
23
23
  icon?: IconName;
24
24
  onClick?: (event: React.MouseEvent<HTMLDivElement, MouseEvent>) => void;
25
25
  shortcut?: string | KeyDownHandlerOptions;
26
- subMenu?: any;
26
+ subMenu?: () => React.ReactNode;
27
27
  } & React.RefAttributes<HTMLDivElement>>;
@@ -1 +1 @@
1
- {"version":3,"file":"Item.js","sources":["../../../../src/components/Menu/components/Item.tsx"],"sourcesContent":["import { Menu as MenuPrimitive } from '@base-ui/react/menu';\nimport cn from 'clsx';\nimport * as React from 'react';\n\nimport type { DialogProps, IconName } from '@/components';\nimport { Icon as IconPrimitive, Shortcut } from '@/components';\nimport type { KeyDownHandlerOptions } from '@/utils/keyboard';\n\nimport { useCurrentMenu } from '../Context';\n\nexport const Icon = ({ name }: { name: IconName }) => (\n // oxlint-disable-next-line taco/no-component-margin -- grandfathered; removing this margin is a visual breaking change\n <span className=\"absolute left-0 ml-1\">\n <IconPrimitive className=\"-ml-px -mt-px !h-5 !w-5\" name={name} />\n </span>\n);\n\nexport const useItemStyling = ({\n disabled,\n indented,\n className,\n}: {\n disabled?: boolean;\n indented: boolean;\n className?: string;\n}) => {\n const menu = useCurrentMenu();\n\n React.useEffect(() => {\n if (indented && !menu?.indented) {\n menu?.registerIndentation();\n }\n }, [indented]);\n\n return cn(\n 'group relative flex h-8 w-full items-center justify-start rounded pr-1.5 focus:outline-none',\n {\n 'pl-7': menu?.indented,\n 'pl-1.5': !menu?.indented,\n /* TODO: Why have both hover and data-[highlighted]? */\n /* shadow-none on hover is to prevent the focus style from showing up on hover */\n 'cursor-pointer text-black hover:bg-gray-100 hover:text-black hover:!shadow-none focus-visible:yt-focus data-[highlighted]:bg-gray-100 data-[highlighted]:text-black':\n !disabled,\n 'cursor-not-allowed text-gray-300 hover:bg-white': disabled,\n },\n className\n );\n};\n\nexport type MenuItemProps = Omit<React.HTMLAttributes<HTMLDivElement>, 'onSelect'> & {\n dialog?: (props: Partial<DialogProps>) => React.JSX.Element;\n disabled?: boolean;\n icon?: IconName;\n onClick?: (event: React.MouseEvent<HTMLDivElement, MouseEvent>) => void;\n shortcut?: string | KeyDownHandlerOptions;\n subMenu?: any;\n};\n\nexport const Item = React.forwardRef(function MenuItem(props: MenuItemProps, ref: React.Ref<HTMLDivElement>) {\n const { dialog, icon, onClick, shortcut, subMenu, ...otherProps } = props;\n const menu = useCurrentMenu();\n\n const className = useItemStyling({\n disabled: props.disabled,\n indented: !!icon,\n className: props.className,\n });\n\n const disabled = !!props.disabled || props['aria-disabled'] === true || props['aria-disabled'] === 'true';\n\n const handleClick = (event: React.MouseEvent<HTMLDivElement>) => {\n if (disabled) {\n event.preventDefault();\n return;\n }\n\n event.stopPropagation();\n\n // For dialog items, use menu context to manage state (survives menu close)\n if (dialog && menu) {\n menu.openDialog(() =>\n dialog({\n open: true,\n onChange: (open: boolean) => {\n if (!open) menu.closeDialog();\n },\n onClose: () => menu.closeDialog(),\n })\n );\n return;\n }\n\n // Call onClick handler\n if (onClick) {\n onClick(event);\n }\n };\n\n if (subMenu) {\n return (\n <MenuPrimitive.SubmenuRoot>\n <MenuPrimitive.SubmenuTrigger {...otherProps} className={className} ref={ref}>\n {icon ? <Icon name={icon} /> : null}\n {props.children}\n <IconPrimitive className=\"-mr-1.5 ml-auto !h-5 !w-5\" name=\"chevron-right\" />\n </MenuPrimitive.SubmenuTrigger>\n {subMenu()}\n </MenuPrimitive.SubmenuRoot>\n );\n }\n\n const menuItem = (\n <MenuPrimitive.Item\n {...otherProps}\n // Need to set aria-haspopup=\"dialog\" otherwise there is no way to know item opens the dialo (in e2e tests), and we need to know this to be able to test this scenario in e2e tests.\n {...(dialog ? { 'aria-haspopup': 'dialog' } : {})}\n className={className}\n onClick={handleClick}\n ref={ref}\n disabled={disabled}>\n {icon ? <Icon name={icon} /> : null}\n {props.children}\n {shortcut ? (\n <span className=\"ml-auto pl-5\">\n <Shortcut keys={shortcut} className=\"text-gray-700\" />\n </span>\n ) : null}\n </MenuPrimitive.Item>\n );\n\n return menuItem;\n});\n"],"names":["IconPrimitive","MenuPrimitive"],"mappings":";;;;;;AAUO,MAAM,OAAO,CAAC,EAAE,KAAA;AAAA;AAAA,EAEnB,sBAAA,cAAC,UAAK,WAAU,uBAAA,uCACXA,QAAA,EAAc,WAAU,2BAA0B,KAAA,CAAY,CACnE;AAAA;AAGG,MAAM,iBAAiB,CAAC;AAAA,EAC3B;AAAA,EACA;AAAA,EACA;AACJ,MAIM;AACF,QAAM,OAAO,eAAA;AAEb,QAAM,UAAU,MAAM;AAClB,QAAI,YAAY,CAAC,MAAM,UAAU;AAC7B,YAAM,oBAAA;AAAA,IACV;AAAA,EACJ,GAAG,CAAC,QAAQ,CAAC;AAEb,SAAO;AAAA,IACH;AAAA,IACA;AAAA,MACI,QAAQ,MAAM;AAAA,MACd,UAAU,CAAC,MAAM;AAAA;AAAA;AAAA,MAGjB,uKACI,CAAC;AAAA,MACL,mDAAmD;AAAA,IAAA;AAAA,IAEvD;AAAA,EAAA;AAER;AAWO,MAAM,OAAO,MAAM,WAAW,SAAS,SAAS,OAAsB,KAAgC;AACzG,QAAM,EAAE,QAAQ,MAAM,SAAS,UAAU,SAAS,GAAG,eAAe;AACpE,QAAM,OAAO,eAAA;AAEb,QAAM,YAAY,eAAe;AAAA,IAC7B,UAAU,MAAM;AAAA,IAChB,UAAU,CAAC,CAAC;AAAA,IACZ,WAAW,MAAM;AAAA,EAAA,CACpB;AAED,QAAM,WAAW,CAAC,CAAC,MAAM,YAAY,MAAM,eAAe,MAAM,QAAQ,MAAM,eAAe,MAAM;AAEnG,QAAM,cAAc,CAAC,UAA4C;AAC7D,QAAI,UAAU;AACV,YAAM,eAAA;AACN;AAAA,IACJ;AAEA,UAAM,gBAAA;AAGN,QAAI,UAAU,MAAM;AAChB,WAAK;AAAA,QAAW,MACZ,OAAO;AAAA,UACH,MAAM;AAAA,UACN,UAAU,CAAC,SAAkB;AACzB,gBAAI,CAAC,KAAM,MAAK,YAAA;AAAA,UACpB;AAAA,UACA,SAAS,MAAM,KAAK,YAAA;AAAA,QAAY,CACnC;AAAA,MAAA;AAEL;AAAA,IACJ;AAGA,QAAI,SAAS;AACT,cAAQ,KAAK;AAAA,IACjB;AAAA,EACJ;AAEA,MAAI,SAAS;AACT,WACI,sBAAA,cAACC,KAAc,aAAd,MACG,sBAAA,cAACA,KAAc,gBAAd,EAA8B,GAAG,YAAY,WAAsB,IAAA,GAC/D,OAAO,sBAAA,cAAC,MAAA,EAAK,MAAM,MAAM,IAAK,MAC9B,MAAM,UACP,sBAAA,cAACD,QAAA,EAAc,WAAU,6BAA4B,MAAK,iBAAgB,CAC9E,GACC,SACL;AAAA,EAER;AAEA,QAAM,WACF,sBAAA;AAAA,IAACC,KAAc;AAAA,IAAd;AAAA,MACI,GAAG;AAAA,MAEH,GAAI,SAAS,EAAE,iBAAiB,SAAA,IAAa,CAAA;AAAA,MAC9C;AAAA,MACA,SAAS;AAAA,MACT;AAAA,MACA;AAAA,IAAA;AAAA,IACC,OAAO,sBAAA,cAAC,MAAA,EAAK,MAAM,MAAM,IAAK;AAAA,IAC9B,MAAM;AAAA,IACN,WACG,sBAAA,cAAC,QAAA,EAAK,WAAU,kBACZ,sBAAA,cAAC,UAAA,EAAS,MAAM,UAAU,WAAU,gBAAA,CAAgB,CACxD,IACA;AAAA,EAAA;AAIZ,SAAO;AACX,CAAC;"}
1
+ {"version":3,"file":"Item.js","sources":["../../../../src/components/Menu/components/Item.tsx"],"sourcesContent":["import { Menu as MenuPrimitive } from '@base-ui/react/menu';\nimport cn from 'clsx';\nimport * as React from 'react';\n\nimport type { DialogProps, IconName } from '@/components';\nimport { Icon as IconPrimitive, Shortcut } from '@/components';\nimport type { KeyDownHandlerOptions } from '@/utils/keyboard';\n\nimport { useCurrentMenu } from '../Context';\n\nexport const Icon = ({ name }: { name: IconName }) => (\n // oxlint-disable-next-line taco/no-component-margin -- grandfathered; removing this margin is a visual breaking change\n <span className=\"absolute left-0 ml-1\">\n <IconPrimitive className=\"-ml-px -mt-px !h-5 !w-5\" name={name} />\n </span>\n);\n\nexport const useItemStyling = ({\n disabled,\n indented,\n className,\n}: {\n disabled?: boolean;\n indented: boolean;\n className?: string;\n}) => {\n const menu = useCurrentMenu();\n\n React.useEffect(() => {\n if (indented && !menu?.indented) {\n menu?.registerIndentation();\n }\n }, [indented]);\n\n return cn(\n 'group relative flex h-8 w-full items-center justify-start rounded pr-1.5 focus:outline-none',\n {\n 'pl-7': menu?.indented,\n 'pl-1.5': !menu?.indented,\n /* TODO: Why have both hover and data-[highlighted]? */\n /* shadow-none on hover is to prevent the focus style from showing up on hover */\n 'cursor-pointer text-black hover:bg-gray-100 hover:text-black hover:!shadow-none focus-visible:yt-focus data-[highlighted]:bg-gray-100 data-[highlighted]:text-black':\n !disabled,\n 'cursor-not-allowed text-gray-300 hover:bg-white': disabled,\n },\n className\n );\n};\n\nexport type MenuItemProps = Omit<React.HTMLAttributes<HTMLDivElement>, 'onSelect'> & {\n dialog?: (props: Partial<DialogProps>) => React.JSX.Element;\n disabled?: boolean;\n icon?: IconName;\n onClick?: (event: React.MouseEvent<HTMLDivElement, MouseEvent>) => void;\n shortcut?: string | KeyDownHandlerOptions;\n // TODO: This has no need being a function\n subMenu?: () => React.ReactNode;\n};\n\nexport const Item = React.forwardRef(function MenuItem(props: MenuItemProps, ref: React.Ref<HTMLDivElement>) {\n const { dialog, icon, onClick, shortcut, subMenu, ...otherProps } = props;\n const menu = useCurrentMenu();\n\n const className = useItemStyling({\n disabled: props.disabled,\n indented: !!icon,\n className: props.className,\n });\n\n const disabled = !!props.disabled || props['aria-disabled'] === true || props['aria-disabled'] === 'true';\n\n const handleClick = (event: React.MouseEvent<HTMLDivElement>) => {\n if (disabled) {\n event.preventDefault();\n return;\n }\n\n event.stopPropagation();\n\n // For dialog items, use menu context to manage state (survives menu close)\n if (dialog && menu) {\n menu.openDialog(() =>\n dialog({\n open: true,\n onChange: (open: boolean) => {\n if (!open) menu.closeDialog();\n },\n onClose: () => menu.closeDialog(),\n })\n );\n return;\n }\n\n // Call onClick handler\n if (onClick) {\n onClick(event);\n }\n };\n\n if (subMenu) {\n return (\n <MenuPrimitive.SubmenuRoot>\n <MenuPrimitive.SubmenuTrigger {...otherProps} className={className} ref={ref}>\n {icon ? <Icon name={icon} /> : null}\n {props.children}\n <IconPrimitive className=\"-mr-1.5 ml-auto !h-5 !w-5\" name=\"chevron-right\" />\n </MenuPrimitive.SubmenuTrigger>\n {subMenu()}\n </MenuPrimitive.SubmenuRoot>\n );\n }\n\n const menuItem = (\n <MenuPrimitive.Item\n {...otherProps}\n // Need to set aria-haspopup=\"dialog\" otherwise there is no way to know item opens the dialo (in e2e tests), and we need to know this to be able to test this scenario in e2e tests.\n {...(dialog ? { 'aria-haspopup': 'dialog' } : {})}\n className={className}\n onClick={handleClick}\n ref={ref}\n disabled={disabled}>\n {icon ? <Icon name={icon} /> : null}\n {props.children}\n {shortcut ? (\n <span className=\"ml-auto pl-5\">\n <Shortcut keys={shortcut} className=\"text-gray-700\" />\n </span>\n ) : null}\n </MenuPrimitive.Item>\n );\n\n return menuItem;\n});\n"],"names":["IconPrimitive","MenuPrimitive"],"mappings":";;;;;;AAUO,MAAM,OAAO,CAAC,EAAE,KAAA;AAAA;AAAA,EAEnB,sBAAA,cAAC,UAAK,WAAU,uBAAA,uCACXA,QAAA,EAAc,WAAU,2BAA0B,KAAA,CAAY,CACnE;AAAA;AAGG,MAAM,iBAAiB,CAAC;AAAA,EAC3B;AAAA,EACA;AAAA,EACA;AACJ,MAIM;AACF,QAAM,OAAO,eAAA;AAEb,QAAM,UAAU,MAAM;AAClB,QAAI,YAAY,CAAC,MAAM,UAAU;AAC7B,YAAM,oBAAA;AAAA,IACV;AAAA,EACJ,GAAG,CAAC,QAAQ,CAAC;AAEb,SAAO;AAAA,IACH;AAAA,IACA;AAAA,MACI,QAAQ,MAAM;AAAA,MACd,UAAU,CAAC,MAAM;AAAA;AAAA;AAAA,MAGjB,uKACI,CAAC;AAAA,MACL,mDAAmD;AAAA,IAAA;AAAA,IAEvD;AAAA,EAAA;AAER;AAYO,MAAM,OAAO,MAAM,WAAW,SAAS,SAAS,OAAsB,KAAgC;AACzG,QAAM,EAAE,QAAQ,MAAM,SAAS,UAAU,SAAS,GAAG,eAAe;AACpE,QAAM,OAAO,eAAA;AAEb,QAAM,YAAY,eAAe;AAAA,IAC7B,UAAU,MAAM;AAAA,IAChB,UAAU,CAAC,CAAC;AAAA,IACZ,WAAW,MAAM;AAAA,EAAA,CACpB;AAED,QAAM,WAAW,CAAC,CAAC,MAAM,YAAY,MAAM,eAAe,MAAM,QAAQ,MAAM,eAAe,MAAM;AAEnG,QAAM,cAAc,CAAC,UAA4C;AAC7D,QAAI,UAAU;AACV,YAAM,eAAA;AACN;AAAA,IACJ;AAEA,UAAM,gBAAA;AAGN,QAAI,UAAU,MAAM;AAChB,WAAK;AAAA,QAAW,MACZ,OAAO;AAAA,UACH,MAAM;AAAA,UACN,UAAU,CAAC,SAAkB;AACzB,gBAAI,CAAC,KAAM,MAAK,YAAA;AAAA,UACpB;AAAA,UACA,SAAS,MAAM,KAAK,YAAA;AAAA,QAAY,CACnC;AAAA,MAAA;AAEL;AAAA,IACJ;AAGA,QAAI,SAAS;AACT,cAAQ,KAAK;AAAA,IACjB;AAAA,EACJ;AAEA,MAAI,SAAS;AACT,WACI,sBAAA,cAACC,KAAc,aAAd,MACG,sBAAA,cAACA,KAAc,gBAAd,EAA8B,GAAG,YAAY,WAAsB,IAAA,GAC/D,OAAO,sBAAA,cAAC,MAAA,EAAK,MAAM,MAAM,IAAK,MAC9B,MAAM,UACP,sBAAA,cAACD,QAAA,EAAc,WAAU,6BAA4B,MAAK,iBAAgB,CAC9E,GACC,SACL;AAAA,EAER;AAEA,QAAM,WACF,sBAAA;AAAA,IAACC,KAAc;AAAA,IAAd;AAAA,MACI,GAAG;AAAA,MAEH,GAAI,SAAS,EAAE,iBAAiB,SAAA,IAAa,CAAA;AAAA,MAC9C;AAAA,MACA,SAAS;AAAA,MACT;AAAA,MACA;AAAA,IAAA;AAAA,IACC,OAAO,sBAAA,cAAC,MAAA,EAAK,MAAM,MAAM,IAAK;AAAA,IAC9B,MAAM;AAAA,IACN,WACG,sBAAA,cAAC,QAAA,EAAK,WAAU,kBACZ,sBAAA,cAAC,UAAA,EAAS,MAAM,UAAU,WAAU,gBAAA,CAAgB,CACxD,IACA;AAAA,EAAA;AAIZ,SAAO;AACX,CAAC;"}
@@ -27,11 +27,7 @@ const Trigger = React__namespace.forwardRef(function MenuTrigger(props, ref) {
27
27
  const { children, ...otherProps } = props;
28
28
  const menu$1 = Context.useCurrentMenu();
29
29
  const internalRef = React__namespace.useRef(null);
30
- const mergedRef = mergeRefs.mergeRefs([
31
- ref,
32
- internalRef,
33
- menu$1?.triggerRef
34
- ]);
30
+ const mergedRef = mergeRefs.mergeRefs([ref, internalRef, menu$1?.triggerRef]);
35
31
  const handleKeyDown = (event) => {
36
32
  if ((event.key === "ArrowDown" || event.key === "ArrowUp") && dom.isElementInsideTable3OrReport(event.currentTarget)) {
37
33
  event.preventDefault();
@@ -1 +1 @@
1
- {"version":3,"file":"Trigger.cjs","sources":["../../../../src/components/Menu/components/Trigger.tsx"],"sourcesContent":["import { Menu as MenuPrimitive } from '@base-ui/react/menu';\nimport * as React from 'react';\n\nimport { isElementInsideTable3OrReport } from '@/utils/dom';\nimport { createCustomKeyboardEvent } from '@/utils/input';\nimport { mergeRefs } from '@/utils/mergeRefs';\n\nimport { useCurrentMenu } from '../Context';\n\nexport type MenuTriggerProps = Omit<React.HTMLAttributes<HTMLButtonElement>, 'children'> & {\n children: React.ReactElement;\n};\n\nexport const Trigger = React.forwardRef(function MenuTrigger(props: MenuTriggerProps, ref: React.Ref<HTMLButtonElement>) {\n const { children, ...otherProps } = props;\n const menu = useCurrentMenu();\n const internalRef = React.useRef<HTMLButtonElement | null>(null);\n const mergedRef = mergeRefs<HTMLButtonElement>([\n ref,\n internalRef,\n menu?.triggerRef as React.MutableRefObject<HTMLButtonElement>,\n ]);\n\n const handleKeyDown = (event: React.KeyboardEvent) => {\n if ((event.key === 'ArrowDown' || event.key === 'ArrowUp') && isElementInsideTable3OrReport(event.currentTarget)) {\n event.preventDefault();\n event.currentTarget.parentNode?.dispatchEvent(createCustomKeyboardEvent(event));\n }\n };\n\n React.useEffect(() => {\n if (internalRef.current) {\n menu?.setMinWidth(internalRef.current.getBoundingClientRect().width);\n }\n }, [internalRef]);\n\n return <MenuPrimitive.Trigger {...otherProps} ref={mergedRef} onKeyDown={handleKeyDown} render={children} />;\n});\n"],"names":["React","menu","useCurrentMenu","mergeRefs","isElementInsideTable3OrReport","createCustomKeyboardEvent","MenuPrimitive"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;AAaO,MAAM,UAAUA,iBAAM,WAAW,SAAS,YAAY,OAAyB,KAAmC;AACrH,QAAM,EAAE,UAAU,GAAG,WAAA,IAAe;AACpC,QAAMC,SAAOC,QAAAA,eAAA;AACb,QAAM,cAAcF,iBAAM,OAAiC,IAAI;AAC/D,QAAM,YAAYG,UAAAA,UAA6B;AAAA,IAC3C;AAAA,IACA;AAAA,IACAF,QAAM;AAAA,EAAA,CACT;AAED,QAAM,gBAAgB,CAAC,UAA+B;AAClD,SAAK,MAAM,QAAQ,eAAe,MAAM,QAAQ,cAAcG,IAAAA,8BAA8B,MAAM,aAAa,GAAG;AAC9G,YAAM,eAAA;AACN,YAAM,cAAc,YAAY,cAAcC,MAAAA,0BAA0B,KAAK,CAAC;AAAA,IAClF;AAAA,EACJ;AAEAL,mBAAM,UAAU,MAAM;AAClB,QAAI,YAAY,SAAS;AACrBC,cAAM,YAAY,YAAY,QAAQ,sBAAA,EAAwB,KAAK;AAAA,IACvE;AAAA,EACJ,GAAG,CAAC,WAAW,CAAC;AAEhB,SAAOD,iCAAA,cAACM,UAAc,SAAd,EAAuB,GAAG,YAAY,KAAK,WAAW,WAAW,eAAe,QAAQ,SAAA,CAAU;AAC9G,CAAC;;"}
1
+ {"version":3,"file":"Trigger.cjs","sources":["../../../../src/components/Menu/components/Trigger.tsx"],"sourcesContent":["import { Menu as MenuPrimitive } from '@base-ui/react/menu';\nimport * as React from 'react';\n\nimport { isElementInsideTable3OrReport } from '@/utils/dom';\nimport { createCustomKeyboardEvent } from '@/utils/input';\nimport { mergeRefs } from '@/utils/mergeRefs';\n\nimport { useCurrentMenu } from '../Context';\n\nexport type MenuTriggerProps = Omit<React.HTMLAttributes<HTMLButtonElement>, 'children'> & {\n children: React.ReactElement;\n};\n\nexport const Trigger = React.forwardRef(function MenuTrigger(props: MenuTriggerProps, ref: React.Ref<HTMLButtonElement>) {\n const { children, ...otherProps } = props;\n const menu = useCurrentMenu();\n const internalRef = React.useRef<HTMLButtonElement | null>(null);\n const mergedRef = mergeRefs<HTMLButtonElement>([ref, internalRef, menu?.triggerRef as React.RefObject<HTMLButtonElement>]);\n\n const handleKeyDown = (event: React.KeyboardEvent) => {\n if ((event.key === 'ArrowDown' || event.key === 'ArrowUp') && isElementInsideTable3OrReport(event.currentTarget)) {\n event.preventDefault();\n event.currentTarget.parentNode?.dispatchEvent(createCustomKeyboardEvent(event));\n }\n };\n\n React.useEffect(() => {\n if (internalRef.current) {\n menu?.setMinWidth(internalRef.current.getBoundingClientRect().width);\n }\n }, [internalRef]);\n\n return <MenuPrimitive.Trigger {...otherProps} ref={mergedRef} onKeyDown={handleKeyDown} render={children} />;\n});\n"],"names":["React","menu","useCurrentMenu","mergeRefs","isElementInsideTable3OrReport","createCustomKeyboardEvent","MenuPrimitive"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;AAaO,MAAM,UAAUA,iBAAM,WAAW,SAAS,YAAY,OAAyB,KAAmC;AACrH,QAAM,EAAE,UAAU,GAAG,WAAA,IAAe;AACpC,QAAMC,SAAOC,QAAAA,eAAA;AACb,QAAM,cAAcF,iBAAM,OAAiC,IAAI;AAC/D,QAAM,YAAYG,UAAAA,UAA6B,CAAC,KAAK,aAAaF,QAAM,UAAgD,CAAC;AAEzH,QAAM,gBAAgB,CAAC,UAA+B;AAClD,SAAK,MAAM,QAAQ,eAAe,MAAM,QAAQ,cAAcG,IAAAA,8BAA8B,MAAM,aAAa,GAAG;AAC9G,YAAM,eAAA;AACN,YAAM,cAAc,YAAY,cAAcC,MAAAA,0BAA0B,KAAK,CAAC;AAAA,IAClF;AAAA,EACJ;AAEAL,mBAAM,UAAU,MAAM;AAClB,QAAI,YAAY,SAAS;AACrBC,cAAM,YAAY,YAAY,QAAQ,sBAAA,EAAwB,KAAK;AAAA,IACvE;AAAA,EACJ,GAAG,CAAC,WAAW,CAAC;AAEhB,SAAOD,iCAAA,cAACM,UAAc,SAAd,EAAuB,GAAG,YAAY,KAAK,WAAW,WAAW,eAAe,QAAQ,SAAA,CAAU;AAC9G,CAAC;;"}
@@ -8,11 +8,7 @@ const Trigger = React.forwardRef(function MenuTrigger(props, ref) {
8
8
  const { children, ...otherProps } = props;
9
9
  const menu = useCurrentMenu();
10
10
  const internalRef = React.useRef(null);
11
- const mergedRef = mergeRefs([
12
- ref,
13
- internalRef,
14
- menu?.triggerRef
15
- ]);
11
+ const mergedRef = mergeRefs([ref, internalRef, menu?.triggerRef]);
16
12
  const handleKeyDown = (event) => {
17
13
  if ((event.key === "ArrowDown" || event.key === "ArrowUp") && isElementInsideTable3OrReport(event.currentTarget)) {
18
14
  event.preventDefault();
@@ -1 +1 @@
1
- {"version":3,"file":"Trigger.js","sources":["../../../../src/components/Menu/components/Trigger.tsx"],"sourcesContent":["import { Menu as MenuPrimitive } from '@base-ui/react/menu';\nimport * as React from 'react';\n\nimport { isElementInsideTable3OrReport } from '@/utils/dom';\nimport { createCustomKeyboardEvent } from '@/utils/input';\nimport { mergeRefs } from '@/utils/mergeRefs';\n\nimport { useCurrentMenu } from '../Context';\n\nexport type MenuTriggerProps = Omit<React.HTMLAttributes<HTMLButtonElement>, 'children'> & {\n children: React.ReactElement;\n};\n\nexport const Trigger = React.forwardRef(function MenuTrigger(props: MenuTriggerProps, ref: React.Ref<HTMLButtonElement>) {\n const { children, ...otherProps } = props;\n const menu = useCurrentMenu();\n const internalRef = React.useRef<HTMLButtonElement | null>(null);\n const mergedRef = mergeRefs<HTMLButtonElement>([\n ref,\n internalRef,\n menu?.triggerRef as React.MutableRefObject<HTMLButtonElement>,\n ]);\n\n const handleKeyDown = (event: React.KeyboardEvent) => {\n if ((event.key === 'ArrowDown' || event.key === 'ArrowUp') && isElementInsideTable3OrReport(event.currentTarget)) {\n event.preventDefault();\n event.currentTarget.parentNode?.dispatchEvent(createCustomKeyboardEvent(event));\n }\n };\n\n React.useEffect(() => {\n if (internalRef.current) {\n menu?.setMinWidth(internalRef.current.getBoundingClientRect().width);\n }\n }, [internalRef]);\n\n return <MenuPrimitive.Trigger {...otherProps} ref={mergedRef} onKeyDown={handleKeyDown} render={children} />;\n});\n"],"names":["MenuPrimitive"],"mappings":";;;;;;AAaO,MAAM,UAAU,MAAM,WAAW,SAAS,YAAY,OAAyB,KAAmC;AACrH,QAAM,EAAE,UAAU,GAAG,WAAA,IAAe;AACpC,QAAM,OAAO,eAAA;AACb,QAAM,cAAc,MAAM,OAAiC,IAAI;AAC/D,QAAM,YAAY,UAA6B;AAAA,IAC3C;AAAA,IACA;AAAA,IACA,MAAM;AAAA,EAAA,CACT;AAED,QAAM,gBAAgB,CAAC,UAA+B;AAClD,SAAK,MAAM,QAAQ,eAAe,MAAM,QAAQ,cAAc,8BAA8B,MAAM,aAAa,GAAG;AAC9G,YAAM,eAAA;AACN,YAAM,cAAc,YAAY,cAAc,0BAA0B,KAAK,CAAC;AAAA,IAClF;AAAA,EACJ;AAEA,QAAM,UAAU,MAAM;AAClB,QAAI,YAAY,SAAS;AACrB,YAAM,YAAY,YAAY,QAAQ,sBAAA,EAAwB,KAAK;AAAA,IACvE;AAAA,EACJ,GAAG,CAAC,WAAW,CAAC;AAEhB,SAAO,sBAAA,cAACA,KAAc,SAAd,EAAuB,GAAG,YAAY,KAAK,WAAW,WAAW,eAAe,QAAQ,SAAA,CAAU;AAC9G,CAAC;"}
1
+ {"version":3,"file":"Trigger.js","sources":["../../../../src/components/Menu/components/Trigger.tsx"],"sourcesContent":["import { Menu as MenuPrimitive } from '@base-ui/react/menu';\nimport * as React from 'react';\n\nimport { isElementInsideTable3OrReport } from '@/utils/dom';\nimport { createCustomKeyboardEvent } from '@/utils/input';\nimport { mergeRefs } from '@/utils/mergeRefs';\n\nimport { useCurrentMenu } from '../Context';\n\nexport type MenuTriggerProps = Omit<React.HTMLAttributes<HTMLButtonElement>, 'children'> & {\n children: React.ReactElement;\n};\n\nexport const Trigger = React.forwardRef(function MenuTrigger(props: MenuTriggerProps, ref: React.Ref<HTMLButtonElement>) {\n const { children, ...otherProps } = props;\n const menu = useCurrentMenu();\n const internalRef = React.useRef<HTMLButtonElement | null>(null);\n const mergedRef = mergeRefs<HTMLButtonElement>([ref, internalRef, menu?.triggerRef as React.RefObject<HTMLButtonElement>]);\n\n const handleKeyDown = (event: React.KeyboardEvent) => {\n if ((event.key === 'ArrowDown' || event.key === 'ArrowUp') && isElementInsideTable3OrReport(event.currentTarget)) {\n event.preventDefault();\n event.currentTarget.parentNode?.dispatchEvent(createCustomKeyboardEvent(event));\n }\n };\n\n React.useEffect(() => {\n if (internalRef.current) {\n menu?.setMinWidth(internalRef.current.getBoundingClientRect().width);\n }\n }, [internalRef]);\n\n return <MenuPrimitive.Trigger {...otherProps} ref={mergedRef} onKeyDown={handleKeyDown} render={children} />;\n});\n"],"names":["MenuPrimitive"],"mappings":";;;;;;AAaO,MAAM,UAAU,MAAM,WAAW,SAAS,YAAY,OAAyB,KAAmC;AACrH,QAAM,EAAE,UAAU,GAAG,WAAA,IAAe;AACpC,QAAM,OAAO,eAAA;AACb,QAAM,cAAc,MAAM,OAAiC,IAAI;AAC/D,QAAM,YAAY,UAA6B,CAAC,KAAK,aAAa,MAAM,UAAgD,CAAC;AAEzH,QAAM,gBAAgB,CAAC,UAA+B;AAClD,SAAK,MAAM,QAAQ,eAAe,MAAM,QAAQ,cAAc,8BAA8B,MAAM,aAAa,GAAG;AAC9G,YAAM,eAAA;AACN,YAAM,cAAc,YAAY,cAAc,0BAA0B,KAAK,CAAC;AAAA,IAClF;AAAA,EACJ;AAEA,QAAM,UAAU,MAAM;AAClB,QAAI,YAAY,SAAS;AACrB,YAAM,YAAY,YAAY,QAAQ,sBAAA,EAAwB,KAAK;AAAA,IACvE;AAAA,EACJ,GAAG,CAAC,WAAW,CAAC;AAEhB,SAAO,sBAAA,cAACA,KAAc,SAAd,EAAuB,GAAG,YAAY,KAAK,WAAW,WAAW,eAAe,QAAQ,SAAA,CAAU;AAC9G,CAAC;"}
@@ -26,7 +26,6 @@ const usePaginationShortcuts = ({
26
26
  if (setPageIndex && event.key === "PageDown") {
27
27
  event.preventDefault();
28
28
  setPageIndex(Math.min(maxPageIndex, pageIndex + 1));
29
- return;
30
29
  }
31
30
  };
32
31
  React.useEffect(() => {
@@ -1 +1 @@
1
- {"version":3,"file":"usePaginationShortcuts.cjs","sources":["../../../src/components/Pagination/usePaginationShortcuts.tsx"],"sourcesContent":["import React from 'react';\n\ntype Props = {\n setPageIndex: (pageIndex: number) => void;\n maxPageIndex: number;\n pageIndex: number;\n dangerouslyHijackGlobalKeyboardNavigation: boolean;\n};\n\nexport const usePaginationShortcuts = ({\n setPageIndex,\n maxPageIndex,\n pageIndex,\n dangerouslyHijackGlobalKeyboardNavigation: useGlobalKeyboardNavigation,\n}: Props) => {\n const onKeyDown = (event: KeyboardEvent): void => {\n if (setPageIndex && event.key === 'Home') {\n event.preventDefault();\n setPageIndex(0);\n return;\n }\n\n if (setPageIndex && event.key === 'End') {\n event.preventDefault();\n setPageIndex(maxPageIndex);\n return;\n }\n\n if (setPageIndex && event.key === 'PageUp') {\n event.preventDefault();\n setPageIndex(Math.max(0, pageIndex - 1));\n return;\n }\n\n if (setPageIndex && event.key === 'PageDown') {\n event.preventDefault();\n setPageIndex(Math.min(maxPageIndex, pageIndex + 1));\n return;\n }\n };\n\n React.useEffect(() => {\n if (useGlobalKeyboardNavigation) {\n window.addEventListener('keydown', onKeyDown);\n }\n\n return () => {\n if (useGlobalKeyboardNavigation) {\n window.removeEventListener('keydown', onKeyDown);\n }\n };\n }, [onKeyDown, useGlobalKeyboardNavigation]);\n};\n"],"names":[],"mappings":";;;AASO,MAAM,yBAAyB,CAAC;AAAA,EACnC;AAAA,EACA;AAAA,EACA;AAAA,EACA,2CAA2C;AAC/C,MAAa;AACT,QAAM,YAAY,CAAC,UAA+B;AAC9C,QAAI,gBAAgB,MAAM,QAAQ,QAAQ;AACtC,YAAM,eAAA;AACN,mBAAa,CAAC;AACd;AAAA,IACJ;AAEA,QAAI,gBAAgB,MAAM,QAAQ,OAAO;AACrC,YAAM,eAAA;AACN,mBAAa,YAAY;AACzB;AAAA,IACJ;AAEA,QAAI,gBAAgB,MAAM,QAAQ,UAAU;AACxC,YAAM,eAAA;AACN,mBAAa,KAAK,IAAI,GAAG,YAAY,CAAC,CAAC;AACvC;AAAA,IACJ;AAEA,QAAI,gBAAgB,MAAM,QAAQ,YAAY;AAC1C,YAAM,eAAA;AACN,mBAAa,KAAK,IAAI,cAAc,YAAY,CAAC,CAAC;AAClD;AAAA,IACJ;AAAA,EACJ;AAEA,QAAM,UAAU,MAAM;AAClB,QAAI,6BAA6B;AAC7B,aAAO,iBAAiB,WAAW,SAAS;AAAA,IAChD;AAEA,WAAO,MAAM;AACT,UAAI,6BAA6B;AAC7B,eAAO,oBAAoB,WAAW,SAAS;AAAA,MACnD;AAAA,IACJ;AAAA,EACJ,GAAG,CAAC,WAAW,2BAA2B,CAAC;AAC/C;;"}
1
+ {"version":3,"file":"usePaginationShortcuts.cjs","sources":["../../../src/components/Pagination/usePaginationShortcuts.tsx"],"sourcesContent":["import React from 'react';\n\ntype Props = {\n setPageIndex: (pageIndex: number) => void;\n maxPageIndex: number;\n pageIndex: number;\n dangerouslyHijackGlobalKeyboardNavigation: boolean;\n};\n\nexport const usePaginationShortcuts = ({\n setPageIndex,\n maxPageIndex,\n pageIndex,\n dangerouslyHijackGlobalKeyboardNavigation: useGlobalKeyboardNavigation,\n}: Props) => {\n const onKeyDown = (event: KeyboardEvent): void => {\n if (setPageIndex && event.key === 'Home') {\n event.preventDefault();\n setPageIndex(0);\n return;\n }\n\n if (setPageIndex && event.key === 'End') {\n event.preventDefault();\n setPageIndex(maxPageIndex);\n return;\n }\n\n if (setPageIndex && event.key === 'PageUp') {\n event.preventDefault();\n setPageIndex(Math.max(0, pageIndex - 1));\n return;\n }\n\n if (setPageIndex && event.key === 'PageDown') {\n event.preventDefault();\n setPageIndex(Math.min(maxPageIndex, pageIndex + 1));\n }\n };\n\n React.useEffect(() => {\n if (useGlobalKeyboardNavigation) {\n window.addEventListener('keydown', onKeyDown);\n }\n\n return () => {\n if (useGlobalKeyboardNavigation) {\n window.removeEventListener('keydown', onKeyDown);\n }\n };\n }, [onKeyDown, useGlobalKeyboardNavigation]);\n};\n"],"names":[],"mappings":";;;AASO,MAAM,yBAAyB,CAAC;AAAA,EACnC;AAAA,EACA;AAAA,EACA;AAAA,EACA,2CAA2C;AAC/C,MAAa;AACT,QAAM,YAAY,CAAC,UAA+B;AAC9C,QAAI,gBAAgB,MAAM,QAAQ,QAAQ;AACtC,YAAM,eAAA;AACN,mBAAa,CAAC;AACd;AAAA,IACJ;AAEA,QAAI,gBAAgB,MAAM,QAAQ,OAAO;AACrC,YAAM,eAAA;AACN,mBAAa,YAAY;AACzB;AAAA,IACJ;AAEA,QAAI,gBAAgB,MAAM,QAAQ,UAAU;AACxC,YAAM,eAAA;AACN,mBAAa,KAAK,IAAI,GAAG,YAAY,CAAC,CAAC;AACvC;AAAA,IACJ;AAEA,QAAI,gBAAgB,MAAM,QAAQ,YAAY;AAC1C,YAAM,eAAA;AACN,mBAAa,KAAK,IAAI,cAAc,YAAY,CAAC,CAAC;AAAA,IACtD;AAAA,EACJ;AAEA,QAAM,UAAU,MAAM;AAClB,QAAI,6BAA6B;AAC7B,aAAO,iBAAiB,WAAW,SAAS;AAAA,IAChD;AAEA,WAAO,MAAM;AACT,UAAI,6BAA6B;AAC7B,eAAO,oBAAoB,WAAW,SAAS;AAAA,MACnD;AAAA,IACJ;AAAA,EACJ,GAAG,CAAC,WAAW,2BAA2B,CAAC;AAC/C;;"}
@@ -24,7 +24,6 @@ const usePaginationShortcuts = ({
24
24
  if (setPageIndex && event.key === "PageDown") {
25
25
  event.preventDefault();
26
26
  setPageIndex(Math.min(maxPageIndex, pageIndex + 1));
27
- return;
28
27
  }
29
28
  };
30
29
  React__default.useEffect(() => {
@@ -1 +1 @@
1
- {"version":3,"file":"usePaginationShortcuts.js","sources":["../../../src/components/Pagination/usePaginationShortcuts.tsx"],"sourcesContent":["import React from 'react';\n\ntype Props = {\n setPageIndex: (pageIndex: number) => void;\n maxPageIndex: number;\n pageIndex: number;\n dangerouslyHijackGlobalKeyboardNavigation: boolean;\n};\n\nexport const usePaginationShortcuts = ({\n setPageIndex,\n maxPageIndex,\n pageIndex,\n dangerouslyHijackGlobalKeyboardNavigation: useGlobalKeyboardNavigation,\n}: Props) => {\n const onKeyDown = (event: KeyboardEvent): void => {\n if (setPageIndex && event.key === 'Home') {\n event.preventDefault();\n setPageIndex(0);\n return;\n }\n\n if (setPageIndex && event.key === 'End') {\n event.preventDefault();\n setPageIndex(maxPageIndex);\n return;\n }\n\n if (setPageIndex && event.key === 'PageUp') {\n event.preventDefault();\n setPageIndex(Math.max(0, pageIndex - 1));\n return;\n }\n\n if (setPageIndex && event.key === 'PageDown') {\n event.preventDefault();\n setPageIndex(Math.min(maxPageIndex, pageIndex + 1));\n return;\n }\n };\n\n React.useEffect(() => {\n if (useGlobalKeyboardNavigation) {\n window.addEventListener('keydown', onKeyDown);\n }\n\n return () => {\n if (useGlobalKeyboardNavigation) {\n window.removeEventListener('keydown', onKeyDown);\n }\n };\n }, [onKeyDown, useGlobalKeyboardNavigation]);\n};\n"],"names":["React"],"mappings":";AASO,MAAM,yBAAyB,CAAC;AAAA,EACnC;AAAA,EACA;AAAA,EACA;AAAA,EACA,2CAA2C;AAC/C,MAAa;AACT,QAAM,YAAY,CAAC,UAA+B;AAC9C,QAAI,gBAAgB,MAAM,QAAQ,QAAQ;AACtC,YAAM,eAAA;AACN,mBAAa,CAAC;AACd;AAAA,IACJ;AAEA,QAAI,gBAAgB,MAAM,QAAQ,OAAO;AACrC,YAAM,eAAA;AACN,mBAAa,YAAY;AACzB;AAAA,IACJ;AAEA,QAAI,gBAAgB,MAAM,QAAQ,UAAU;AACxC,YAAM,eAAA;AACN,mBAAa,KAAK,IAAI,GAAG,YAAY,CAAC,CAAC;AACvC;AAAA,IACJ;AAEA,QAAI,gBAAgB,MAAM,QAAQ,YAAY;AAC1C,YAAM,eAAA;AACN,mBAAa,KAAK,IAAI,cAAc,YAAY,CAAC,CAAC;AAClD;AAAA,IACJ;AAAA,EACJ;AAEAA,iBAAM,UAAU,MAAM;AAClB,QAAI,6BAA6B;AAC7B,aAAO,iBAAiB,WAAW,SAAS;AAAA,IAChD;AAEA,WAAO,MAAM;AACT,UAAI,6BAA6B;AAC7B,eAAO,oBAAoB,WAAW,SAAS;AAAA,MACnD;AAAA,IACJ;AAAA,EACJ,GAAG,CAAC,WAAW,2BAA2B,CAAC;AAC/C;"}
1
+ {"version":3,"file":"usePaginationShortcuts.js","sources":["../../../src/components/Pagination/usePaginationShortcuts.tsx"],"sourcesContent":["import React from 'react';\n\ntype Props = {\n setPageIndex: (pageIndex: number) => void;\n maxPageIndex: number;\n pageIndex: number;\n dangerouslyHijackGlobalKeyboardNavigation: boolean;\n};\n\nexport const usePaginationShortcuts = ({\n setPageIndex,\n maxPageIndex,\n pageIndex,\n dangerouslyHijackGlobalKeyboardNavigation: useGlobalKeyboardNavigation,\n}: Props) => {\n const onKeyDown = (event: KeyboardEvent): void => {\n if (setPageIndex && event.key === 'Home') {\n event.preventDefault();\n setPageIndex(0);\n return;\n }\n\n if (setPageIndex && event.key === 'End') {\n event.preventDefault();\n setPageIndex(maxPageIndex);\n return;\n }\n\n if (setPageIndex && event.key === 'PageUp') {\n event.preventDefault();\n setPageIndex(Math.max(0, pageIndex - 1));\n return;\n }\n\n if (setPageIndex && event.key === 'PageDown') {\n event.preventDefault();\n setPageIndex(Math.min(maxPageIndex, pageIndex + 1));\n }\n };\n\n React.useEffect(() => {\n if (useGlobalKeyboardNavigation) {\n window.addEventListener('keydown', onKeyDown);\n }\n\n return () => {\n if (useGlobalKeyboardNavigation) {\n window.removeEventListener('keydown', onKeyDown);\n }\n };\n }, [onKeyDown, useGlobalKeyboardNavigation]);\n};\n"],"names":["React"],"mappings":";AASO,MAAM,yBAAyB,CAAC;AAAA,EACnC;AAAA,EACA;AAAA,EACA;AAAA,EACA,2CAA2C;AAC/C,MAAa;AACT,QAAM,YAAY,CAAC,UAA+B;AAC9C,QAAI,gBAAgB,MAAM,QAAQ,QAAQ;AACtC,YAAM,eAAA;AACN,mBAAa,CAAC;AACd;AAAA,IACJ;AAEA,QAAI,gBAAgB,MAAM,QAAQ,OAAO;AACrC,YAAM,eAAA;AACN,mBAAa,YAAY;AACzB;AAAA,IACJ;AAEA,QAAI,gBAAgB,MAAM,QAAQ,UAAU;AACxC,YAAM,eAAA;AACN,mBAAa,KAAK,IAAI,GAAG,YAAY,CAAC,CAAC;AACvC;AAAA,IACJ;AAEA,QAAI,gBAAgB,MAAM,QAAQ,YAAY;AAC1C,YAAM,eAAA;AACN,mBAAa,KAAK,IAAI,cAAc,YAAY,CAAC,CAAC;AAAA,IACtD;AAAA,EACJ;AAEAA,iBAAM,UAAU,MAAM;AAClB,QAAI,6BAA6B;AAC7B,aAAO,iBAAiB,WAAW,SAAS;AAAA,IAChD;AAEA,WAAO,MAAM;AACT,UAAI,6BAA6B;AAC7B,eAAO,oBAAoB,WAAW,SAAS;AAAA,MACnD;AAAA,IACJ;AAAA,EACJ,GAAG,CAAC,WAAW,2BAA2B,CAAC;AAC/C;"}
@@ -1 +1 @@
1
- {"version":3,"file":"Provider.cjs","sources":["../../../src/components/Provider/Provider.tsx"],"sourcesContent":["import { Tooltip } from '@base-ui/react/tooltip';\nimport * as React from 'react';\n\nimport { ToastProvider } from '@/components';\n\nimport type { Localization } from './Localization';\nimport { LocalizationProvider } from './Localization';\n\nexport type TacoSettings = {\n uniqueUserIdentifier: string;\n};\n\nexport const TacoContext = React.createContext<TacoSettings>({\n uniqueUserIdentifier: '',\n});\n\nexport type ProviderProps = {\n /** Content would be your application */\n children?: any;\n /** Define localized texts and formatted data in your application */\n localization?: Localization;\n settings: TacoSettings;\n};\n\nexport const Provider = (props: ProviderProps): React.JSX.Element => {\n const { children, localization, settings } = props;\n\n const context = React.useMemo(() => settings, [JSON.stringify(settings)]);\n\n return (\n <LocalizationProvider localization={localization}>\n <TacoContext.Provider value={context}>\n <Tooltip.Provider>\n <ToastProvider>{children}</ToastProvider>\n </Tooltip.Provider>\n </TacoContext.Provider>\n </LocalizationProvider>\n );\n};\n"],"names":["React","LocalizationProvider","Tooltip","ToastProvider"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;AAYO,MAAM,cAAcA,iBAAM,cAA4B;AAAA,EACzD,sBAAsB;AAC1B,CAAC;AAUM,MAAM,WAAW,CAAC,UAA4C;AACjE,QAAM,EAAE,UAAU,cAAc,SAAA,IAAa;AAE7C,QAAM,UAAUA,iBAAM,QAAQ,MAAM,UAAU,CAAC,KAAK,UAAU,QAAQ,CAAC,CAAC;AAExE,wDACKC,aAAAA,sBAAA,EAAqB,aAAA,kDACjB,YAAY,UAAZ,EAAqB,OAAO,WACzBD,iCAAA,cAACE,gBAAQ,UAAR,MACGF,iCAAA,cAACG,6BAAe,QAAS,CAC7B,CACJ,CACJ;AAER;;;"}
1
+ {"version":3,"file":"Provider.cjs","sources":["../../../src/components/Provider/Provider.tsx"],"sourcesContent":["import { Tooltip } from '@base-ui/react/tooltip';\nimport * as React from 'react';\n\nimport { ToastProvider } from '@/components';\n\nimport type { Localization } from './Localization';\nimport { LocalizationProvider } from './Localization';\n\nexport type TacoSettings = {\n uniqueUserIdentifier: string;\n};\n\nexport const TacoContext = React.createContext<TacoSettings>({\n uniqueUserIdentifier: '',\n});\n\nexport type ProviderProps = {\n /** Content would be your application */\n children?: React.ReactNode;\n /** Define localized texts and formatted data in your application */\n localization?: Localization;\n settings: TacoSettings;\n};\n\nexport const Provider = (props: ProviderProps): React.JSX.Element => {\n const { children, localization, settings } = props;\n\n const context = React.useMemo(() => settings, [JSON.stringify(settings)]);\n\n return (\n <LocalizationProvider localization={localization}>\n <TacoContext.Provider value={context}>\n <Tooltip.Provider>\n <ToastProvider>{children}</ToastProvider>\n </Tooltip.Provider>\n </TacoContext.Provider>\n </LocalizationProvider>\n );\n};\n"],"names":["React","LocalizationProvider","Tooltip","ToastProvider"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;AAYO,MAAM,cAAcA,iBAAM,cAA4B;AAAA,EACzD,sBAAsB;AAC1B,CAAC;AAUM,MAAM,WAAW,CAAC,UAA4C;AACjE,QAAM,EAAE,UAAU,cAAc,SAAA,IAAa;AAE7C,QAAM,UAAUA,iBAAM,QAAQ,MAAM,UAAU,CAAC,KAAK,UAAU,QAAQ,CAAC,CAAC;AAExE,wDACKC,aAAAA,sBAAA,EAAqB,aAAA,kDACjB,YAAY,UAAZ,EAAqB,OAAO,WACzBD,iCAAA,cAACE,gBAAQ,UAAR,MACGF,iCAAA,cAACG,6BAAe,QAAS,CAC7B,CACJ,CACJ;AAER;;;"}
@@ -6,7 +6,7 @@ export type TacoSettings = {
6
6
  export declare const TacoContext: React.Context<TacoSettings>;
7
7
  export type ProviderProps = {
8
8
  /** Content would be your application */
9
- children?: any;
9
+ children?: React.ReactNode;
10
10
  /** Define localized texts and formatted data in your application */
11
11
  localization?: Localization;
12
12
  settings: TacoSettings;
@@ -1 +1 @@
1
- {"version":3,"file":"Provider.js","sources":["../../../src/components/Provider/Provider.tsx"],"sourcesContent":["import { Tooltip } from '@base-ui/react/tooltip';\nimport * as React from 'react';\n\nimport { ToastProvider } from '@/components';\n\nimport type { Localization } from './Localization';\nimport { LocalizationProvider } from './Localization';\n\nexport type TacoSettings = {\n uniqueUserIdentifier: string;\n};\n\nexport const TacoContext = React.createContext<TacoSettings>({\n uniqueUserIdentifier: '',\n});\n\nexport type ProviderProps = {\n /** Content would be your application */\n children?: any;\n /** Define localized texts and formatted data in your application */\n localization?: Localization;\n settings: TacoSettings;\n};\n\nexport const Provider = (props: ProviderProps): React.JSX.Element => {\n const { children, localization, settings } = props;\n\n const context = React.useMemo(() => settings, [JSON.stringify(settings)]);\n\n return (\n <LocalizationProvider localization={localization}>\n <TacoContext.Provider value={context}>\n <Tooltip.Provider>\n <ToastProvider>{children}</ToastProvider>\n </Tooltip.Provider>\n </TacoContext.Provider>\n </LocalizationProvider>\n );\n};\n"],"names":[],"mappings":";;;;AAYO,MAAM,cAAc,MAAM,cAA4B;AAAA,EACzD,sBAAsB;AAC1B,CAAC;AAUM,MAAM,WAAW,CAAC,UAA4C;AACjE,QAAM,EAAE,UAAU,cAAc,SAAA,IAAa;AAE7C,QAAM,UAAU,MAAM,QAAQ,MAAM,UAAU,CAAC,KAAK,UAAU,QAAQ,CAAC,CAAC;AAExE,6CACK,sBAAA,EAAqB,aAAA,uCACjB,YAAY,UAAZ,EAAqB,OAAO,WACzB,sBAAA,cAAC,QAAQ,UAAR,MACG,sBAAA,cAAC,qBAAe,QAAS,CAC7B,CACJ,CACJ;AAER;"}
1
+ {"version":3,"file":"Provider.js","sources":["../../../src/components/Provider/Provider.tsx"],"sourcesContent":["import { Tooltip } from '@base-ui/react/tooltip';\nimport * as React from 'react';\n\nimport { ToastProvider } from '@/components';\n\nimport type { Localization } from './Localization';\nimport { LocalizationProvider } from './Localization';\n\nexport type TacoSettings = {\n uniqueUserIdentifier: string;\n};\n\nexport const TacoContext = React.createContext<TacoSettings>({\n uniqueUserIdentifier: '',\n});\n\nexport type ProviderProps = {\n /** Content would be your application */\n children?: React.ReactNode;\n /** Define localized texts and formatted data in your application */\n localization?: Localization;\n settings: TacoSettings;\n};\n\nexport const Provider = (props: ProviderProps): React.JSX.Element => {\n const { children, localization, settings } = props;\n\n const context = React.useMemo(() => settings, [JSON.stringify(settings)]);\n\n return (\n <LocalizationProvider localization={localization}>\n <TacoContext.Provider value={context}>\n <Tooltip.Provider>\n <ToastProvider>{children}</ToastProvider>\n </Tooltip.Provider>\n </TacoContext.Provider>\n </LocalizationProvider>\n );\n};\n"],"names":[],"mappings":";;;;AAYO,MAAM,cAAc,MAAM,cAA4B;AAAA,EACzD,sBAAsB;AAC1B,CAAC;AAUM,MAAM,WAAW,CAAC,UAA4C;AACjE,QAAM,EAAE,UAAU,cAAc,SAAA,IAAa;AAE7C,QAAM,UAAU,MAAM,QAAQ,MAAM,UAAU,CAAC,KAAK,UAAU,QAAQ,CAAC,CAAC;AAExE,6CACK,sBAAA,EAAqB,aAAA,uCACjB,YAAY,UAAZ,EAAqB,OAAO,WACzB,sBAAA,cAAC,QAAQ,UAAR,MACG,sBAAA,cAAC,qBAAe,QAAS,CAC7B,CACJ,CACJ;AAER;"}
@@ -44,7 +44,6 @@ const SearchInput = React__namespace.forwardRef(function SearchInput2({ onSearch
44
44
  }
45
45
  if (event.key === "Escape") {
46
46
  onSearch?.("");
47
- return;
48
47
  }
49
48
  };
50
49
  return /* @__PURE__ */ React__namespace.createElement(