@tetrascience-npm/tetrascience-react-ui 0.7.0-beta.108.1 → 0.7.0-beta.128.1

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 (439) hide show
  1. package/README.md +2 -2
  2. package/dist/components/ai/chain-of-thought.cjs +1 -1
  3. package/dist/components/ai/chain-of-thought.cjs.map +1 -1
  4. package/dist/components/ai/chain-of-thought.js +1 -1
  5. package/dist/components/ai/chain-of-thought.js.map +1 -1
  6. package/dist/components/ai/confirmation.cjs +1 -1
  7. package/dist/components/ai/confirmation.cjs.map +1 -1
  8. package/dist/components/ai/confirmation.js +1 -1
  9. package/dist/components/ai/confirmation.js.map +1 -1
  10. package/dist/components/ai/context.cjs +1 -1
  11. package/dist/components/ai/context.cjs.map +1 -1
  12. package/dist/components/ai/context.js +36 -35
  13. package/dist/components/ai/context.js.map +1 -1
  14. package/dist/components/ai/message.cjs +1 -1
  15. package/dist/components/ai/message.cjs.map +1 -1
  16. package/dist/components/ai/message.js +68 -68
  17. package/dist/components/ai/message.js.map +1 -1
  18. package/dist/components/ai/prompt-input.cjs +1 -1
  19. package/dist/components/ai/prompt-input.cjs.map +1 -1
  20. package/dist/components/ai/prompt-input.js +4 -2
  21. package/dist/components/ai/prompt-input.js.map +1 -1
  22. package/dist/components/ai/queue.cjs +1 -1
  23. package/dist/components/ai/queue.cjs.map +1 -1
  24. package/dist/components/ai/queue.js +9 -9
  25. package/dist/components/ai/queue.js.map +1 -1
  26. package/dist/components/ai/reasoning.cjs +1 -1
  27. package/dist/components/ai/reasoning.cjs.map +1 -1
  28. package/dist/components/ai/reasoning.js +67 -67
  29. package/dist/components/ai/reasoning.js.map +1 -1
  30. package/dist/components/ai/stream-status.cjs +1 -1
  31. package/dist/components/ai/stream-status.cjs.map +1 -1
  32. package/dist/components/ai/stream-status.js +41 -39
  33. package/dist/components/ai/stream-status.js.map +1 -1
  34. package/dist/components/ai/streamdown-code-plugin.cjs +2 -0
  35. package/dist/components/ai/streamdown-code-plugin.cjs.map +1 -0
  36. package/dist/components/ai/streamdown-code-plugin.js +42 -0
  37. package/dist/components/ai/streamdown-code-plugin.js.map +1 -0
  38. package/dist/components/ai/streamdown-plugins.cjs +2 -0
  39. package/dist/components/ai/streamdown-plugins.cjs.map +1 -0
  40. package/dist/components/ai/streamdown-plugins.js +14 -0
  41. package/dist/components/ai/streamdown-plugins.js.map +1 -0
  42. package/dist/components/ai/task.cjs +1 -1
  43. package/dist/components/ai/task.cjs.map +1 -1
  44. package/dist/components/ai/task.js +18 -11
  45. package/dist/components/ai/task.js.map +1 -1
  46. package/dist/components/ai/tool.cjs +1 -1
  47. package/dist/components/ai/tool.cjs.map +1 -1
  48. package/dist/components/ai/tool.js +51 -55
  49. package/dist/components/ai/tool.js.map +1 -1
  50. package/dist/components/ai/use-streamdown-plugins.cjs +2 -0
  51. package/dist/components/ai/use-streamdown-plugins.cjs.map +1 -0
  52. package/dist/components/ai/use-streamdown-plugins.js +25 -0
  53. package/dist/components/ai/use-streamdown-plugins.js.map +1 -0
  54. package/dist/components/charts/AreaPlot/AreaPlot.cjs +2 -0
  55. package/dist/components/charts/AreaPlot/AreaPlot.cjs.map +1 -0
  56. package/dist/components/charts/AreaPlot/AreaPlot.js +270 -0
  57. package/dist/components/charts/AreaPlot/AreaPlot.js.map +1 -0
  58. package/dist/components/charts/BarChart/BarChart.cjs +2 -0
  59. package/dist/components/charts/BarChart/BarChart.cjs.map +1 -0
  60. package/dist/components/charts/BarChart/BarChart.js +219 -0
  61. package/dist/components/charts/BarChart/BarChart.js.map +1 -0
  62. package/dist/components/charts/BoxPlot/BoxPlot.cjs +2 -0
  63. package/dist/components/charts/BoxPlot/BoxPlot.cjs.map +1 -0
  64. package/dist/components/charts/{Boxplot/Boxplot.js → BoxPlot/BoxPlot.js} +78 -79
  65. package/dist/components/charts/BoxPlot/BoxPlot.js.map +1 -0
  66. package/dist/components/charts/ChartTooltip/ChartTooltip.cjs +1 -1
  67. package/dist/components/charts/ChartTooltip/ChartTooltip.cjs.map +1 -1
  68. package/dist/components/charts/ChartTooltip/ChartTooltip.js +22 -22
  69. package/dist/components/charts/ChartTooltip/ChartTooltip.js.map +1 -1
  70. package/dist/components/charts/Chromatogram/Chromatogram.cjs +1 -1
  71. package/dist/components/charts/Chromatogram/Chromatogram.cjs.map +1 -1
  72. package/dist/components/charts/Chromatogram/Chromatogram.js +232 -170
  73. package/dist/components/charts/Chromatogram/Chromatogram.js.map +1 -1
  74. package/dist/components/charts/Chromatogram/annotations.cjs +2 -0
  75. package/dist/components/charts/Chromatogram/annotations.cjs.map +1 -0
  76. package/dist/components/charts/Chromatogram/annotations.js +137 -0
  77. package/dist/components/charts/Chromatogram/annotations.js.map +1 -0
  78. package/dist/components/charts/Chromatogram/boundaryMarkers.cjs.map +1 -0
  79. package/dist/components/charts/Chromatogram/boundaryMarkers.js.map +1 -0
  80. package/dist/components/charts/Chromatogram/constants.cjs.map +1 -0
  81. package/dist/components/charts/Chromatogram/constants.js.map +1 -0
  82. package/dist/components/charts/Chromatogram/dataProcessing.cjs.map +1 -0
  83. package/dist/components/charts/Chromatogram/dataProcessing.js.map +1 -0
  84. package/dist/components/charts/Chromatogram/peakDetection.cjs.map +1 -0
  85. package/dist/components/charts/Chromatogram/peakDetection.js.map +1 -0
  86. package/dist/components/charts/Chromatogram/plotBuilder.cjs +2 -0
  87. package/dist/components/charts/Chromatogram/plotBuilder.cjs.map +1 -0
  88. package/dist/components/charts/Chromatogram/plotBuilder.js +216 -0
  89. package/dist/components/charts/Chromatogram/plotBuilder.js.map +1 -0
  90. package/dist/components/charts/Chromatogram/regionOverlays.cjs.map +1 -0
  91. package/dist/components/charts/Chromatogram/regionOverlays.js.map +1 -0
  92. package/dist/components/charts/Electropherogram/Electropherogram.cjs +2 -0
  93. package/dist/components/charts/Electropherogram/Electropherogram.cjs.map +1 -0
  94. package/dist/components/charts/Electropherogram/Electropherogram.js +180 -0
  95. package/dist/components/charts/Electropherogram/Electropherogram.js.map +1 -0
  96. package/dist/components/charts/Histogram/Histogram.cjs +1 -1
  97. package/dist/components/charts/Histogram/Histogram.cjs.map +1 -1
  98. package/dist/components/charts/Histogram/Histogram.js +107 -108
  99. package/dist/components/charts/Histogram/Histogram.js.map +1 -1
  100. package/dist/components/charts/LinePlot/LinePlot.cjs +2 -0
  101. package/dist/components/charts/LinePlot/LinePlot.cjs.map +1 -0
  102. package/dist/components/charts/LinePlot/LinePlot.js +224 -0
  103. package/dist/components/charts/LinePlot/LinePlot.js.map +1 -0
  104. package/dist/components/charts/PieChart/PieChart.cjs +1 -1
  105. package/dist/components/charts/PieChart/PieChart.cjs.map +1 -1
  106. package/dist/components/charts/PieChart/PieChart.js +62 -61
  107. package/dist/components/charts/PieChart/PieChart.js.map +1 -1
  108. package/dist/components/charts/PlateMap/PlateMap.cjs +1 -1
  109. package/dist/components/charts/PlateMap/PlateMap.cjs.map +1 -1
  110. package/dist/components/charts/PlateMap/PlateMap.js +246 -242
  111. package/dist/components/charts/PlateMap/PlateMap.js.map +1 -1
  112. package/dist/components/charts/ScatterPlot/ScatterPlot.cjs +2 -0
  113. package/dist/components/charts/ScatterPlot/ScatterPlot.cjs.map +1 -0
  114. package/dist/components/charts/ScatterPlot/ScatterPlot.js +252 -0
  115. package/dist/components/charts/ScatterPlot/ScatterPlot.js.map +1 -0
  116. package/dist/components/charts/ScatterPlotInteractive/ScatterPlotInteractive.cjs +2 -0
  117. package/dist/components/charts/ScatterPlotInteractive/ScatterPlotInteractive.cjs.map +1 -0
  118. package/dist/components/charts/ScatterPlotInteractive/ScatterPlotInteractive.js +215 -0
  119. package/dist/components/charts/ScatterPlotInteractive/ScatterPlotInteractive.js.map +1 -0
  120. package/dist/components/charts/ScatterPlotInteractive/constants.cjs +2 -0
  121. package/dist/components/charts/ScatterPlotInteractive/constants.cjs.map +1 -0
  122. package/dist/components/charts/ScatterPlotInteractive/constants.js +38 -0
  123. package/dist/components/charts/ScatterPlotInteractive/constants.js.map +1 -0
  124. package/dist/components/charts/ScatterPlotInteractive/utils.cjs +2 -0
  125. package/dist/components/charts/ScatterPlotInteractive/utils.cjs.map +1 -0
  126. package/dist/components/charts/ScatterPlotInteractive/utils.js +261 -0
  127. package/dist/components/charts/ScatterPlotInteractive/utils.js.map +1 -0
  128. package/dist/components/charts/StackedChromatogram/StackedChromatogram.cjs +2 -0
  129. package/dist/components/charts/StackedChromatogram/StackedChromatogram.cjs.map +1 -0
  130. package/dist/components/charts/StackedChromatogram/StackedChromatogram.js +40 -0
  131. package/dist/components/charts/StackedChromatogram/StackedChromatogram.js.map +1 -0
  132. package/dist/components/charts/StackedChromatogram/transforms.cjs.map +1 -0
  133. package/dist/components/charts/StackedChromatogram/transforms.js.map +1 -0
  134. package/dist/components/charts/plotly-loader.cjs +2 -0
  135. package/dist/components/charts/plotly-loader.cjs.map +1 -0
  136. package/dist/components/charts/plotly-loader.js +22 -0
  137. package/dist/components/charts/plotly-loader.js.map +1 -0
  138. package/dist/components/composed/AssistantLayout/AssistantLayout.cjs +2 -0
  139. package/dist/components/composed/AssistantLayout/AssistantLayout.cjs.map +1 -0
  140. package/dist/components/composed/AssistantLayout/AssistantLayout.js +142 -0
  141. package/dist/components/composed/AssistantLayout/AssistantLayout.js.map +1 -0
  142. package/dist/components/composed/AssistantLayout/dockLayout.cjs +2 -0
  143. package/dist/components/composed/AssistantLayout/dockLayout.cjs.map +1 -0
  144. package/dist/components/composed/AssistantLayout/dockLayout.js +10 -0
  145. package/dist/components/composed/AssistantLayout/dockLayout.js.map +1 -0
  146. package/dist/components/composed/Chat/Chat.cjs +1 -1
  147. package/dist/components/composed/Chat/Chat.cjs.map +1 -1
  148. package/dist/components/composed/Chat/Chat.js +23 -23
  149. package/dist/components/composed/Chat/Chat.js.map +1 -1
  150. package/dist/components/composed/ConfirmDialog/ConfirmDialog.cjs +1 -1
  151. package/dist/components/composed/ConfirmDialog/ConfirmDialog.cjs.map +1 -1
  152. package/dist/components/composed/ConfirmDialog/ConfirmDialog.js +33 -29
  153. package/dist/components/composed/ConfirmDialog/ConfirmDialog.js.map +1 -1
  154. package/dist/components/composed/DataAppShell/CollapseButton.cjs +2 -0
  155. package/dist/components/composed/DataAppShell/CollapseButton.cjs.map +1 -0
  156. package/dist/components/composed/DataAppShell/CollapseButton.js +42 -0
  157. package/dist/components/composed/DataAppShell/CollapseButton.js.map +1 -0
  158. package/dist/components/composed/DataAppShell/DataAppShell.cjs +1 -1
  159. package/dist/components/composed/DataAppShell/DataAppShell.cjs.map +1 -1
  160. package/dist/components/composed/DataAppShell/DataAppShell.js +349 -313
  161. package/dist/components/composed/DataAppShell/DataAppShell.js.map +1 -1
  162. package/dist/components/composed/DataAppShell/PrimaryNav.cjs +2 -0
  163. package/dist/components/composed/DataAppShell/PrimaryNav.cjs.map +1 -0
  164. package/dist/components/composed/DataAppShell/PrimaryNav.js +268 -0
  165. package/dist/components/composed/DataAppShell/PrimaryNav.js.map +1 -0
  166. package/dist/components/composed/DataAppShell/RightPanel.cjs +2 -0
  167. package/dist/components/composed/DataAppShell/RightPanel.cjs.map +1 -0
  168. package/dist/components/composed/DataAppShell/RightPanel.js +282 -0
  169. package/dist/components/composed/DataAppShell/RightPanel.js.map +1 -0
  170. package/dist/components/composed/DataAppShell/SecondaryNav.cjs +2 -0
  171. package/dist/components/composed/DataAppShell/SecondaryNav.cjs.map +1 -0
  172. package/dist/components/composed/DataAppShell/SecondaryNav.js +364 -0
  173. package/dist/components/composed/DataAppShell/SecondaryNav.js.map +1 -0
  174. package/dist/components/composed/DataAppShell/ShellContext.cjs +2 -0
  175. package/dist/components/composed/DataAppShell/ShellContext.cjs.map +1 -0
  176. package/dist/components/composed/DataAppShell/ShellContext.js +23 -0
  177. package/dist/components/composed/DataAppShell/ShellContext.js.map +1 -0
  178. package/dist/components/composed/MoleculeStructure/MoleculeStructure.cjs +2 -0
  179. package/dist/components/composed/MoleculeStructure/MoleculeStructure.cjs.map +1 -0
  180. package/dist/components/composed/MoleculeStructure/MoleculeStructure.js +87 -0
  181. package/dist/components/composed/MoleculeStructure/MoleculeStructure.js.map +1 -0
  182. package/dist/components/composed/MoleculeStructure/rdkit-loader.cjs +2 -0
  183. package/dist/components/composed/MoleculeStructure/rdkit-loader.cjs.map +1 -0
  184. package/dist/components/composed/MoleculeStructure/rdkit-loader.js +89 -0
  185. package/dist/components/composed/MoleculeStructure/rdkit-loader.js.map +1 -0
  186. package/dist/components/composed/MoleculeStructure/use-rdkit.cjs +2 -0
  187. package/dist/components/composed/MoleculeStructure/use-rdkit.cjs.map +1 -0
  188. package/dist/components/composed/MoleculeStructure/use-rdkit.js +19 -0
  189. package/dist/components/composed/MoleculeStructure/use-rdkit.js.map +1 -0
  190. package/dist/components/composed/PlateMapEditor/ManifestFilterPopover.cjs +1 -1
  191. package/dist/components/composed/PlateMapEditor/ManifestFilterPopover.cjs.map +1 -1
  192. package/dist/components/composed/PlateMapEditor/ManifestFilterPopover.js +17 -17
  193. package/dist/components/composed/PlateMapEditor/ManifestFilterPopover.js.map +1 -1
  194. package/dist/components/composed/PlateMapEditor/PlateMapActionsMenu.cjs +1 -1
  195. package/dist/components/composed/PlateMapEditor/PlateMapActionsMenu.cjs.map +1 -1
  196. package/dist/components/composed/PlateMapEditor/PlateMapActionsMenu.js +33 -33
  197. package/dist/components/composed/PlateMapEditor/PlateMapActionsMenu.js.map +1 -1
  198. package/dist/components/composed/PlateMapEditor/PlateMapPlateSelector.cjs +1 -1
  199. package/dist/components/composed/PlateMapEditor/PlateMapPlateSelector.cjs.map +1 -1
  200. package/dist/components/composed/PlateMapEditor/PlateMapPlateSelector.js +7 -7
  201. package/dist/components/composed/PlateMapEditor/PlateMapPlateSelector.js.map +1 -1
  202. package/dist/components/composed/PlateMapEditor/PlatePaintGrid.cjs +1 -1
  203. package/dist/components/composed/PlateMapEditor/PlatePaintGrid.cjs.map +1 -1
  204. package/dist/components/composed/PlateMapEditor/PlatePaintGrid.js +1 -1
  205. package/dist/components/composed/PlateMapEditor/PlatePaintGrid.js.map +1 -1
  206. package/dist/components/composed/PlateMapEditor/WellLegend.cjs +1 -1
  207. package/dist/components/composed/PlateMapEditor/WellLegend.cjs.map +1 -1
  208. package/dist/components/composed/PlateMapEditor/WellLegend.js +24 -12
  209. package/dist/components/composed/PlateMapEditor/WellLegend.js.map +1 -1
  210. package/dist/components/composed/PlateMapEditor/WellManifestTable.cjs +1 -1
  211. package/dist/components/composed/PlateMapEditor/WellManifestTable.cjs.map +1 -1
  212. package/dist/components/composed/PlateMapEditor/WellManifestTable.js +1 -1
  213. package/dist/components/composed/PlateMapEditor/WellManifestTable.js.map +1 -1
  214. package/dist/components/composed/TdpSearch/components/DefaultFilters.cjs +1 -1
  215. package/dist/components/composed/TdpSearch/components/DefaultFilters.cjs.map +1 -1
  216. package/dist/components/composed/TdpSearch/components/DefaultFilters.js +3 -3
  217. package/dist/components/composed/TdpSearch/components/DefaultFilters.js.map +1 -1
  218. package/dist/components/composed/TopBar/TopBar.cjs +2 -0
  219. package/dist/components/composed/TopBar/TopBar.cjs.map +1 -0
  220. package/dist/components/composed/TopBar/TopBar.js +56 -0
  221. package/dist/components/composed/TopBar/TopBar.js.map +1 -0
  222. package/dist/components/composed/UserMenu/UserMenu.cjs +2 -0
  223. package/dist/components/composed/UserMenu/UserMenu.cjs.map +1 -0
  224. package/dist/components/composed/UserMenu/UserMenu.js +99 -0
  225. package/dist/components/composed/UserMenu/UserMenu.js.map +1 -0
  226. package/dist/components/composed/tdp-link.cjs +1 -1
  227. package/dist/components/composed/tdp-link.cjs.map +1 -1
  228. package/dist/components/composed/tdp-link.js +5 -5
  229. package/dist/components/composed/tdp-link.js.map +1 -1
  230. package/dist/components/ui/alert.cjs +1 -1
  231. package/dist/components/ui/alert.cjs.map +1 -1
  232. package/dist/components/ui/alert.js +12 -12
  233. package/dist/components/ui/alert.js.map +1 -1
  234. package/dist/components/ui/badge.cjs +1 -1
  235. package/dist/components/ui/badge.cjs.map +1 -1
  236. package/dist/components/ui/badge.js +14 -14
  237. package/dist/components/ui/badge.js.map +1 -1
  238. package/dist/components/ui/banner.cjs +1 -1
  239. package/dist/components/ui/banner.cjs.map +1 -1
  240. package/dist/components/ui/banner.js +17 -17
  241. package/dist/components/ui/banner.js.map +1 -1
  242. package/dist/components/ui/button.cjs +1 -1
  243. package/dist/components/ui/button.cjs.map +1 -1
  244. package/dist/components/ui/button.js +16 -16
  245. package/dist/components/ui/button.js.map +1 -1
  246. package/dist/components/ui/calendar.cjs +1 -1
  247. package/dist/components/ui/calendar.cjs.map +1 -1
  248. package/dist/components/ui/calendar.js +3 -3
  249. package/dist/components/ui/calendar.js.map +1 -1
  250. package/dist/components/ui/code-block.cjs +3 -3
  251. package/dist/components/ui/code-block.cjs.map +1 -1
  252. package/dist/components/ui/code-block.js +136 -118
  253. package/dist/components/ui/code-block.js.map +1 -1
  254. package/dist/components/ui/code-editor.cjs +1 -1
  255. package/dist/components/ui/code-editor.cjs.map +1 -1
  256. package/dist/components/ui/code-editor.js +14 -12
  257. package/dist/components/ui/code-editor.js.map +1 -1
  258. package/dist/components/ui/combobox.cjs +1 -1
  259. package/dist/components/ui/combobox.cjs.map +1 -1
  260. package/dist/components/ui/combobox.js +33 -29
  261. package/dist/components/ui/combobox.js.map +1 -1
  262. package/dist/components/ui/command.cjs +1 -1
  263. package/dist/components/ui/command.cjs.map +1 -1
  264. package/dist/components/ui/command.js +81 -77
  265. package/dist/components/ui/command.js.map +1 -1
  266. package/dist/components/ui/context-menu.cjs +1 -1
  267. package/dist/components/ui/context-menu.cjs.map +1 -1
  268. package/dist/components/ui/context-menu.js +13 -13
  269. package/dist/components/ui/context-menu.js.map +1 -1
  270. package/dist/components/ui/data-table/data-table-column-toggle.cjs +1 -1
  271. package/dist/components/ui/data-table/data-table-column-toggle.cjs.map +1 -1
  272. package/dist/components/ui/data-table/data-table-column-toggle.js +70 -62
  273. package/dist/components/ui/data-table/data-table-column-toggle.js.map +1 -1
  274. package/dist/components/ui/data-table/data-table-filter.cjs +1 -1
  275. package/dist/components/ui/data-table/data-table-filter.cjs.map +1 -1
  276. package/dist/components/ui/data-table/data-table-filter.js +24 -23
  277. package/dist/components/ui/data-table/data-table-filter.js.map +1 -1
  278. package/dist/components/ui/data-table/data-table-group.cjs +1 -1
  279. package/dist/components/ui/data-table/data-table-group.cjs.map +1 -1
  280. package/dist/components/ui/data-table/data-table-group.js +17 -16
  281. package/dist/components/ui/data-table/data-table-group.js.map +1 -1
  282. package/dist/components/ui/data-table/data-table-pagination.cjs +1 -1
  283. package/dist/components/ui/data-table/data-table-pagination.cjs.map +1 -1
  284. package/dist/components/ui/data-table/data-table-pagination.js +15 -15
  285. package/dist/components/ui/data-table/data-table-pagination.js.map +1 -1
  286. package/dist/components/ui/data-table/data-table.cjs +1 -1
  287. package/dist/components/ui/data-table/data-table.cjs.map +1 -1
  288. package/dist/components/ui/data-table/data-table.js +191 -190
  289. package/dist/components/ui/data-table/data-table.js.map +1 -1
  290. package/dist/components/ui/dialog.cjs +1 -1
  291. package/dist/components/ui/dialog.cjs.map +1 -1
  292. package/dist/components/ui/dialog.js +1 -1
  293. package/dist/components/ui/dialog.js.map +1 -1
  294. package/dist/components/ui/dropdown-menu.cjs +1 -1
  295. package/dist/components/ui/dropdown-menu.cjs.map +1 -1
  296. package/dist/components/ui/dropdown-menu.js +12 -4
  297. package/dist/components/ui/dropdown-menu.js.map +1 -1
  298. package/dist/components/ui/hover-card.cjs +1 -1
  299. package/dist/components/ui/hover-card.cjs.map +1 -1
  300. package/dist/components/ui/hover-card.js +3 -3
  301. package/dist/components/ui/hover-card.js.map +1 -1
  302. package/dist/components/ui/item.cjs +1 -1
  303. package/dist/components/ui/item.cjs.map +1 -1
  304. package/dist/components/ui/item.js +44 -36
  305. package/dist/components/ui/item.js.map +1 -1
  306. package/dist/components/ui/menubar.cjs +1 -1
  307. package/dist/components/ui/menubar.cjs.map +1 -1
  308. package/dist/components/ui/menubar.js +2 -2
  309. package/dist/components/ui/menubar.js.map +1 -1
  310. package/dist/components/ui/navigation-menu.cjs +1 -1
  311. package/dist/components/ui/navigation-menu.cjs.map +1 -1
  312. package/dist/components/ui/navigation-menu.js +1 -1
  313. package/dist/components/ui/navigation-menu.js.map +1 -1
  314. package/dist/components/ui/popover.cjs +1 -1
  315. package/dist/components/ui/popover.cjs.map +1 -1
  316. package/dist/components/ui/popover.js +1 -1
  317. package/dist/components/ui/popover.js.map +1 -1
  318. package/dist/components/ui/scroll-area.cjs +1 -1
  319. package/dist/components/ui/scroll-area.cjs.map +1 -1
  320. package/dist/components/ui/scroll-area.js +1 -0
  321. package/dist/components/ui/scroll-area.js.map +1 -1
  322. package/dist/components/ui/select.cjs +1 -1
  323. package/dist/components/ui/select.cjs.map +1 -1
  324. package/dist/components/ui/select.js +1 -1
  325. package/dist/components/ui/select.js.map +1 -1
  326. package/dist/components/ui/sheet.cjs +1 -1
  327. package/dist/components/ui/sheet.cjs.map +1 -1
  328. package/dist/components/ui/sheet.js +5 -5
  329. package/dist/components/ui/sheet.js.map +1 -1
  330. package/dist/components/ui/sidebar.cjs +1 -1
  331. package/dist/components/ui/sidebar.cjs.map +1 -1
  332. package/dist/components/ui/sidebar.js +2 -2
  333. package/dist/components/ui/sidebar.js.map +1 -1
  334. package/dist/components/ui/slider.cjs +1 -1
  335. package/dist/components/ui/slider.cjs.map +1 -1
  336. package/dist/components/ui/slider.js +10 -9
  337. package/dist/components/ui/slider.js.map +1 -1
  338. package/dist/components/ui/sonner.cjs +1 -1
  339. package/dist/components/ui/sonner.cjs.map +1 -1
  340. package/dist/components/ui/sonner.js +25 -10
  341. package/dist/components/ui/sonner.js.map +1 -1
  342. package/dist/components/ui/table.cjs +1 -1
  343. package/dist/components/ui/table.cjs.map +1 -1
  344. package/dist/components/ui/table.js +1 -0
  345. package/dist/components/ui/table.js.map +1 -1
  346. package/dist/components/ui/tabs.cjs +1 -1
  347. package/dist/components/ui/tabs.cjs.map +1 -1
  348. package/dist/components/ui/tabs.js +18 -18
  349. package/dist/components/ui/tabs.js.map +1 -1
  350. package/dist/components/ui/tetra-molecule-icon.cjs +2 -0
  351. package/dist/components/ui/tetra-molecule-icon.cjs.map +1 -0
  352. package/dist/components/ui/tetra-molecule-icon.js +49 -0
  353. package/dist/components/ui/tetra-molecule-icon.js.map +1 -0
  354. package/dist/components/ui/toggle-group.cjs +1 -1
  355. package/dist/components/ui/toggle-group.cjs.map +1 -1
  356. package/dist/components/ui/toggle-group.js +35 -31
  357. package/dist/components/ui/toggle-group.js.map +1 -1
  358. package/dist/hooks/use-plotly-theme.cjs +1 -1
  359. package/dist/hooks/use-plotly-theme.cjs.map +1 -1
  360. package/dist/hooks/use-plotly-theme.js +4 -3
  361. package/dist/hooks/use-plotly-theme.js.map +1 -1
  362. package/dist/index.cjs +1 -1
  363. package/dist/index.css +1 -1
  364. package/dist/index.d.ts +1073 -136
  365. package/dist/index.js +698 -647
  366. package/dist/index.js.map +1 -1
  367. package/dist/index.tailwind.css +1 -1
  368. package/dist/lib/shiki.cjs +2 -0
  369. package/dist/lib/shiki.cjs.map +1 -0
  370. package/dist/lib/shiki.js +72 -0
  371. package/dist/lib/shiki.js.map +1 -0
  372. package/package.json +23 -12
  373. package/dist/components/charts/AreaGraph/AreaGraph.cjs +0 -2
  374. package/dist/components/charts/AreaGraph/AreaGraph.cjs.map +0 -1
  375. package/dist/components/charts/AreaGraph/AreaGraph.js +0 -271
  376. package/dist/components/charts/AreaGraph/AreaGraph.js.map +0 -1
  377. package/dist/components/charts/BarGraph/BarGraph.cjs +0 -2
  378. package/dist/components/charts/BarGraph/BarGraph.cjs.map +0 -1
  379. package/dist/components/charts/BarGraph/BarGraph.js +0 -220
  380. package/dist/components/charts/BarGraph/BarGraph.js.map +0 -1
  381. package/dist/components/charts/Boxplot/Boxplot.cjs +0 -2
  382. package/dist/components/charts/Boxplot/Boxplot.cjs.map +0 -1
  383. package/dist/components/charts/Boxplot/Boxplot.js.map +0 -1
  384. package/dist/components/charts/ChromatogramChart/ChromatogramChart.cjs +0 -2
  385. package/dist/components/charts/ChromatogramChart/ChromatogramChart.cjs.map +0 -1
  386. package/dist/components/charts/ChromatogramChart/ChromatogramChart.js +0 -241
  387. package/dist/components/charts/ChromatogramChart/ChromatogramChart.js.map +0 -1
  388. package/dist/components/charts/ChromatogramChart/annotations.cjs +0 -2
  389. package/dist/components/charts/ChromatogramChart/annotations.cjs.map +0 -1
  390. package/dist/components/charts/ChromatogramChart/annotations.js +0 -136
  391. package/dist/components/charts/ChromatogramChart/annotations.js.map +0 -1
  392. package/dist/components/charts/ChromatogramChart/boundaryMarkers.cjs.map +0 -1
  393. package/dist/components/charts/ChromatogramChart/boundaryMarkers.js.map +0 -1
  394. package/dist/components/charts/ChromatogramChart/constants.cjs.map +0 -1
  395. package/dist/components/charts/ChromatogramChart/constants.js.map +0 -1
  396. package/dist/components/charts/ChromatogramChart/dataProcessing.cjs.map +0 -1
  397. package/dist/components/charts/ChromatogramChart/dataProcessing.js.map +0 -1
  398. package/dist/components/charts/ChromatogramChart/peakDetection.cjs.map +0 -1
  399. package/dist/components/charts/ChromatogramChart/peakDetection.js.map +0 -1
  400. package/dist/components/charts/ChromatogramChart/plotBuilder.cjs +0 -2
  401. package/dist/components/charts/ChromatogramChart/plotBuilder.cjs.map +0 -1
  402. package/dist/components/charts/ChromatogramChart/plotBuilder.js +0 -207
  403. package/dist/components/charts/ChromatogramChart/plotBuilder.js.map +0 -1
  404. package/dist/components/charts/ChromatogramChart/regionOverlays.cjs.map +0 -1
  405. package/dist/components/charts/ChromatogramChart/regionOverlays.js.map +0 -1
  406. package/dist/components/charts/DotPlot/DotPlot.cjs +0 -2
  407. package/dist/components/charts/DotPlot/DotPlot.cjs.map +0 -1
  408. package/dist/components/charts/DotPlot/DotPlot.js +0 -208
  409. package/dist/components/charts/DotPlot/DotPlot.js.map +0 -1
  410. package/dist/components/charts/Heatmap/Heatmap.cjs +0 -2
  411. package/dist/components/charts/Heatmap/Heatmap.cjs.map +0 -1
  412. package/dist/components/charts/Heatmap/Heatmap.js +0 -67
  413. package/dist/components/charts/Heatmap/Heatmap.js.map +0 -1
  414. package/dist/components/charts/LineGraph/LineGraph.cjs +0 -2
  415. package/dist/components/charts/LineGraph/LineGraph.cjs.map +0 -1
  416. package/dist/components/charts/LineGraph/LineGraph.js +0 -225
  417. package/dist/components/charts/LineGraph/LineGraph.js.map +0 -1
  418. package/dist/components/charts/ScatterGraph/ScatterGraph.cjs +0 -2
  419. package/dist/components/charts/ScatterGraph/ScatterGraph.cjs.map +0 -1
  420. package/dist/components/charts/ScatterGraph/ScatterGraph.js +0 -234
  421. package/dist/components/charts/ScatterGraph/ScatterGraph.js.map +0 -1
  422. package/dist/components/charts/StackedChromatogramChart/StackedChromatogramChart.cjs +0 -2
  423. package/dist/components/charts/StackedChromatogramChart/StackedChromatogramChart.cjs.map +0 -1
  424. package/dist/components/charts/StackedChromatogramChart/StackedChromatogramChart.js +0 -40
  425. package/dist/components/charts/StackedChromatogramChart/StackedChromatogramChart.js.map +0 -1
  426. package/dist/components/charts/StackedChromatogramChart/transforms.cjs.map +0 -1
  427. package/dist/components/charts/StackedChromatogramChart/transforms.js.map +0 -1
  428. /package/dist/components/charts/{ChromatogramChart → Chromatogram}/boundaryMarkers.cjs +0 -0
  429. /package/dist/components/charts/{ChromatogramChart → Chromatogram}/boundaryMarkers.js +0 -0
  430. /package/dist/components/charts/{ChromatogramChart → Chromatogram}/constants.cjs +0 -0
  431. /package/dist/components/charts/{ChromatogramChart → Chromatogram}/constants.js +0 -0
  432. /package/dist/components/charts/{ChromatogramChart → Chromatogram}/dataProcessing.cjs +0 -0
  433. /package/dist/components/charts/{ChromatogramChart → Chromatogram}/dataProcessing.js +0 -0
  434. /package/dist/components/charts/{ChromatogramChart → Chromatogram}/peakDetection.cjs +0 -0
  435. /package/dist/components/charts/{ChromatogramChart → Chromatogram}/peakDetection.js +0 -0
  436. /package/dist/components/charts/{ChromatogramChart → Chromatogram}/regionOverlays.cjs +0 -0
  437. /package/dist/components/charts/{ChromatogramChart → Chromatogram}/regionOverlays.js +0 -0
  438. /package/dist/components/charts/{StackedChromatogramChart → StackedChromatogram}/transforms.cjs +0 -0
  439. /package/dist/components/charts/{StackedChromatogramChart → StackedChromatogram}/transforms.js +0 -0
@@ -1,5 +1,5 @@
1
1
  import { jsx as e, jsxs as s } from "react/jsx-runtime";
2
- import { CheckIcon as i, ChevronRightIcon as c } from "lucide-react";
2
+ import { CheckIcon as d, ChevronRightIcon as c } from "lucide-react";
3
3
  import { ContextMenu as o } from "radix-ui";
4
4
  import { cn as a } from "../../lib/utils.js";
5
5
  function f({
@@ -54,7 +54,7 @@ function M({
54
54
  o.Content,
55
55
  {
56
56
  "data-slot": "context-menu-content",
57
- className: a("z-50 max-h-(--radix-context-menu-content-available-height) min-w-36 origin-(--radix-context-menu-content-transform-origin) overflow-x-hidden overflow-y-auto rounded-lg bg-popover p-1 text-popover-foreground shadow-md ring-1 ring-foreground/10 duration-100 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2 data-open:animate-in data-open:fade-in-0 data-open:zoom-in-95 data-closed:animate-out data-closed:fade-out-0 data-closed:zoom-out-95", t),
57
+ className: a("z-50 max-h-(--radix-context-menu-content-available-height) min-w-36 origin-(--radix-context-menu-content-transform-origin) overflow-x-hidden overflow-y-auto rounded-lg bg-popover p-1 text-popover-foreground shadow-elevation-4 ring-1 ring-foreground/10 duration-100 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2 data-open:animate-in data-open:fade-in-0 data-open:zoom-in-95 data-closed:animate-out data-closed:fade-out-0 data-closed:zoom-out-95", t),
58
58
  ...n
59
59
  }
60
60
  ) });
@@ -63,7 +63,7 @@ function z({
63
63
  className: t,
64
64
  inset: n,
65
65
  variant: r = "default",
66
- ...d
66
+ ...i
67
67
  }) {
68
68
  return /* @__PURE__ */ e(
69
69
  o.Item,
@@ -75,7 +75,7 @@ function z({
75
75
  "group/context-menu-item relative flex cursor-default items-center gap-1.5 rounded-md px-1.5 py-1 text-sm outline-hidden select-none focus:bg-accent focus:text-accent-foreground data-inset:pl-7 data-[variant=destructive]:text-destructive data-[variant=destructive]:focus:bg-destructive/10 data-[variant=destructive]:focus:text-destructive dark:data-[variant=destructive]:focus:bg-destructive/20 data-disabled:pointer-events-none data-disabled:opacity-50 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4 focus:*:[svg]:text-accent-foreground data-[variant=destructive]:*:[svg]:text-destructive",
76
76
  t
77
77
  ),
78
- ...d
78
+ ...i
79
79
  }
80
80
  );
81
81
  }
@@ -83,7 +83,7 @@ function N({
83
83
  className: t,
84
84
  inset: n,
85
85
  children: r,
86
- ...d
86
+ ...i
87
87
  }) {
88
88
  return /* @__PURE__ */ s(
89
89
  o.SubTrigger,
@@ -94,7 +94,7 @@ function N({
94
94
  "flex cursor-default items-center gap-1.5 rounded-md px-1.5 py-1 text-sm outline-hidden select-none focus:bg-accent focus:text-accent-foreground data-inset:pl-7 data-open:bg-accent data-open:text-accent-foreground [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4",
95
95
  t
96
96
  ),
97
- ...d,
97
+ ...i,
98
98
  children: [
99
99
  r,
100
100
  /* @__PURE__ */ e(c, { className: "ml-auto" })
@@ -110,7 +110,7 @@ function I({
110
110
  o.SubContent,
111
111
  {
112
112
  "data-slot": "context-menu-sub-content",
113
- className: a("z-50 min-w-32 origin-(--radix-context-menu-content-transform-origin) overflow-hidden rounded-lg border bg-popover p-1 text-popover-foreground shadow-lg duration-100 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2 data-open:animate-in data-open:fade-in-0 data-open:zoom-in-95 data-closed:animate-out data-closed:fade-out-0 data-closed:zoom-out-95", t),
113
+ className: a("z-50 min-w-32 origin-(--radix-context-menu-content-transform-origin) overflow-hidden rounded-lg border bg-popover p-1 text-popover-foreground shadow-elevation-5 duration-100 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2 data-open:animate-in data-open:fade-in-0 data-open:zoom-in-95 data-closed:animate-out data-closed:fade-out-0 data-closed:zoom-out-95", t),
114
114
  ...n
115
115
  }
116
116
  );
@@ -119,14 +119,14 @@ function _({
119
119
  className: t,
120
120
  children: n,
121
121
  checked: r,
122
- inset: d,
122
+ inset: i,
123
123
  ...u
124
124
  }) {
125
125
  return /* @__PURE__ */ s(
126
126
  o.CheckboxItem,
127
127
  {
128
128
  "data-slot": "context-menu-checkbox-item",
129
- "data-inset": d,
129
+ "data-inset": i,
130
130
  className: a(
131
131
  "relative flex cursor-default items-center gap-1.5 rounded-md py-1 pr-8 pl-1.5 text-sm outline-hidden select-none focus:bg-accent focus:text-accent-foreground data-inset:pl-7 data-disabled:pointer-events-none data-disabled:opacity-50 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4",
132
132
  t
@@ -135,7 +135,7 @@ function _({
135
135
  ...u,
136
136
  children: [
137
137
  /* @__PURE__ */ e("span", { className: "pointer-events-none absolute right-2", children: /* @__PURE__ */ e(o.ItemIndicator, { children: /* @__PURE__ */ e(
138
- i,
138
+ d,
139
139
  {}
140
140
  ) }) }),
141
141
  n
@@ -147,7 +147,7 @@ function k({
147
147
  className: t,
148
148
  children: n,
149
149
  inset: r,
150
- ...d
150
+ ...i
151
151
  }) {
152
152
  return /* @__PURE__ */ s(
153
153
  o.RadioItem,
@@ -158,10 +158,10 @@ function k({
158
158
  "relative flex cursor-default items-center gap-1.5 rounded-md py-1 pr-8 pl-1.5 text-sm outline-hidden select-none focus:bg-accent focus:text-accent-foreground data-inset:pl-7 data-disabled:pointer-events-none data-disabled:opacity-50 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4",
159
159
  t
160
160
  ),
161
- ...d,
161
+ ...i,
162
162
  children: [
163
163
  /* @__PURE__ */ e("span", { className: "pointer-events-none absolute right-2", children: /* @__PURE__ */ e(o.ItemIndicator, { children: /* @__PURE__ */ e(
164
- i,
164
+ d,
165
165
  {}
166
166
  ) }) }),
167
167
  n
@@ -1 +1 @@
1
- {"version":3,"file":"context-menu.js","sources":["../../../src/components/ui/context-menu.tsx"],"sourcesContent":["import { ChevronRightIcon, CheckIcon } from \"lucide-react\"\nimport { ContextMenu as ContextMenuPrimitive } from \"radix-ui\"\nimport * as React from \"react\"\n\nimport { cn } from \"@/lib/utils\"\n\n\nfunction ContextMenu({\n ...props\n}: React.ComponentProps<typeof ContextMenuPrimitive.Root>) {\n return <ContextMenuPrimitive.Root data-slot=\"context-menu\" {...props} />\n}\n\nfunction ContextMenuTrigger({\n className,\n ...props\n}: React.ComponentProps<typeof ContextMenuPrimitive.Trigger>) {\n return (\n <ContextMenuPrimitive.Trigger\n data-slot=\"context-menu-trigger\"\n className={cn(\"select-none\", className)}\n {...props}\n />\n )\n}\n\nfunction ContextMenuGroup({\n ...props\n}: React.ComponentProps<typeof ContextMenuPrimitive.Group>) {\n return (\n <ContextMenuPrimitive.Group data-slot=\"context-menu-group\" {...props} />\n )\n}\n\nfunction ContextMenuPortal({\n ...props\n}: React.ComponentProps<typeof ContextMenuPrimitive.Portal>) {\n return (\n <ContextMenuPrimitive.Portal data-slot=\"context-menu-portal\" {...props} />\n )\n}\n\nfunction ContextMenuSub({\n ...props\n}: React.ComponentProps<typeof ContextMenuPrimitive.Sub>) {\n return <ContextMenuPrimitive.Sub data-slot=\"context-menu-sub\" {...props} />\n}\n\nfunction ContextMenuRadioGroup({\n ...props\n}: React.ComponentProps<typeof ContextMenuPrimitive.RadioGroup>) {\n return (\n <ContextMenuPrimitive.RadioGroup\n data-slot=\"context-menu-radio-group\"\n {...props}\n />\n )\n}\n\nfunction ContextMenuContent({\n className,\n ...props\n}: React.ComponentProps<typeof ContextMenuPrimitive.Content> & {\n side?: \"top\" | \"right\" | \"bottom\" | \"left\"\n}) {\n return (\n <ContextMenuPrimitive.Portal>\n <ContextMenuPrimitive.Content\n data-slot=\"context-menu-content\"\n className={cn(\"z-50 max-h-(--radix-context-menu-content-available-height) min-w-36 origin-(--radix-context-menu-content-transform-origin) overflow-x-hidden overflow-y-auto rounded-lg bg-popover p-1 text-popover-foreground shadow-md ring-1 ring-foreground/10 duration-100 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2 data-open:animate-in data-open:fade-in-0 data-open:zoom-in-95 data-closed:animate-out data-closed:fade-out-0 data-closed:zoom-out-95\", className )}\n {...props}\n />\n </ContextMenuPrimitive.Portal>\n )\n}\n\nfunction ContextMenuItem({\n className,\n inset,\n variant = \"default\",\n ...props\n}: React.ComponentProps<typeof ContextMenuPrimitive.Item> & {\n inset?: boolean\n variant?: \"default\" | \"destructive\"\n}) {\n return (\n <ContextMenuPrimitive.Item\n data-slot=\"context-menu-item\"\n data-inset={inset}\n data-variant={variant}\n className={cn(\n \"group/context-menu-item relative flex cursor-default items-center gap-1.5 rounded-md px-1.5 py-1 text-sm outline-hidden select-none focus:bg-accent focus:text-accent-foreground data-inset:pl-7 data-[variant=destructive]:text-destructive data-[variant=destructive]:focus:bg-destructive/10 data-[variant=destructive]:focus:text-destructive dark:data-[variant=destructive]:focus:bg-destructive/20 data-disabled:pointer-events-none data-disabled:opacity-50 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4 focus:*:[svg]:text-accent-foreground data-[variant=destructive]:*:[svg]:text-destructive\",\n className\n )}\n {...props}\n />\n )\n}\n\nfunction ContextMenuSubTrigger({\n className,\n inset,\n children,\n ...props\n}: React.ComponentProps<typeof ContextMenuPrimitive.SubTrigger> & {\n inset?: boolean\n}) {\n return (\n <ContextMenuPrimitive.SubTrigger\n data-slot=\"context-menu-sub-trigger\"\n data-inset={inset}\n className={cn(\n \"flex cursor-default items-center gap-1.5 rounded-md px-1.5 py-1 text-sm outline-hidden select-none focus:bg-accent focus:text-accent-foreground data-inset:pl-7 data-open:bg-accent data-open:text-accent-foreground [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4\",\n className\n )}\n {...props}\n >\n {children}\n <ChevronRightIcon className=\"ml-auto\" />\n </ContextMenuPrimitive.SubTrigger>\n )\n}\n\nfunction ContextMenuSubContent({\n className,\n ...props\n}: React.ComponentProps<typeof ContextMenuPrimitive.SubContent>) {\n return (\n <ContextMenuPrimitive.SubContent\n data-slot=\"context-menu-sub-content\"\n className={cn(\"z-50 min-w-32 origin-(--radix-context-menu-content-transform-origin) overflow-hidden rounded-lg border bg-popover p-1 text-popover-foreground shadow-lg duration-100 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2 data-open:animate-in data-open:fade-in-0 data-open:zoom-in-95 data-closed:animate-out data-closed:fade-out-0 data-closed:zoom-out-95\", className )}\n {...props}\n />\n )\n}\n\nfunction ContextMenuCheckboxItem({\n className,\n children,\n checked,\n inset,\n ...props\n}: React.ComponentProps<typeof ContextMenuPrimitive.CheckboxItem> & {\n inset?: boolean\n}) {\n return (\n <ContextMenuPrimitive.CheckboxItem\n data-slot=\"context-menu-checkbox-item\"\n data-inset={inset}\n className={cn(\n \"relative flex cursor-default items-center gap-1.5 rounded-md py-1 pr-8 pl-1.5 text-sm outline-hidden select-none focus:bg-accent focus:text-accent-foreground data-inset:pl-7 data-disabled:pointer-events-none data-disabled:opacity-50 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4\",\n className\n )}\n checked={checked}\n {...props}\n >\n <span className=\"pointer-events-none absolute right-2\">\n <ContextMenuPrimitive.ItemIndicator>\n <CheckIcon\n />\n </ContextMenuPrimitive.ItemIndicator>\n </span>\n {children}\n </ContextMenuPrimitive.CheckboxItem>\n )\n}\n\nfunction ContextMenuRadioItem({\n className,\n children,\n inset,\n ...props\n}: React.ComponentProps<typeof ContextMenuPrimitive.RadioItem> & {\n inset?: boolean\n}) {\n return (\n <ContextMenuPrimitive.RadioItem\n data-slot=\"context-menu-radio-item\"\n data-inset={inset}\n className={cn(\n \"relative flex cursor-default items-center gap-1.5 rounded-md py-1 pr-8 pl-1.5 text-sm outline-hidden select-none focus:bg-accent focus:text-accent-foreground data-inset:pl-7 data-disabled:pointer-events-none data-disabled:opacity-50 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4\",\n className\n )}\n {...props}\n >\n <span className=\"pointer-events-none absolute right-2\">\n <ContextMenuPrimitive.ItemIndicator>\n <CheckIcon\n />\n </ContextMenuPrimitive.ItemIndicator>\n </span>\n {children}\n </ContextMenuPrimitive.RadioItem>\n )\n}\n\nfunction ContextMenuLabel({\n className,\n inset,\n ...props\n}: React.ComponentProps<typeof ContextMenuPrimitive.Label> & {\n inset?: boolean\n}) {\n return (\n <ContextMenuPrimitive.Label\n data-slot=\"context-menu-label\"\n data-inset={inset}\n className={cn(\n \"px-1.5 py-1 text-xs font-medium text-muted-foreground data-inset:pl-7\",\n className\n )}\n {...props}\n />\n )\n}\n\nfunction ContextMenuSeparator({\n className,\n ...props\n}: React.ComponentProps<typeof ContextMenuPrimitive.Separator>) {\n return (\n <ContextMenuPrimitive.Separator\n data-slot=\"context-menu-separator\"\n className={cn(\"-mx-1 my-1 h-px bg-border\", className)}\n {...props}\n />\n )\n}\n\nfunction ContextMenuShortcut({\n className,\n ...props\n}: React.ComponentProps<\"span\">) {\n return (\n <span\n data-slot=\"context-menu-shortcut\"\n className={cn(\n \"ml-auto text-xs tracking-widest text-muted-foreground group-focus/context-menu-item:text-accent-foreground\",\n className\n )}\n {...props}\n />\n )\n}\n\nexport {\n ContextMenu,\n ContextMenuTrigger,\n ContextMenuContent,\n ContextMenuItem,\n ContextMenuCheckboxItem,\n ContextMenuRadioItem,\n ContextMenuLabel,\n ContextMenuSeparator,\n ContextMenuShortcut,\n ContextMenuGroup,\n ContextMenuPortal,\n ContextMenuSub,\n ContextMenuSubContent,\n ContextMenuSubTrigger,\n ContextMenuRadioGroup,\n}\n"],"names":["ContextMenu","props","ContextMenuPrimitive","ContextMenuTrigger","className","jsx","cn","ContextMenuGroup","ContextMenuPortal","ContextMenuSub","ContextMenuRadioGroup","ContextMenuContent","ContextMenuItem","inset","variant","ContextMenuSubTrigger","children","jsxs","ChevronRightIcon","ContextMenuSubContent","ContextMenuCheckboxItem","checked","CheckIcon","ContextMenuRadioItem","ContextMenuLabel","ContextMenuSeparator","ContextMenuShortcut"],"mappings":"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"}
1
+ {"version":3,"file":"context-menu.js","sources":["../../../src/components/ui/context-menu.tsx"],"sourcesContent":["import { ChevronRightIcon, CheckIcon } from \"lucide-react\"\nimport { ContextMenu as ContextMenuPrimitive } from \"radix-ui\"\nimport * as React from \"react\"\n\nimport { cn } from \"@/lib/utils\"\n\n\nfunction ContextMenu({\n ...props\n}: React.ComponentProps<typeof ContextMenuPrimitive.Root>) {\n return <ContextMenuPrimitive.Root data-slot=\"context-menu\" {...props} />\n}\n\nfunction ContextMenuTrigger({\n className,\n ...props\n}: React.ComponentProps<typeof ContextMenuPrimitive.Trigger>) {\n return (\n <ContextMenuPrimitive.Trigger\n data-slot=\"context-menu-trigger\"\n className={cn(\"select-none\", className)}\n {...props}\n />\n )\n}\n\nfunction ContextMenuGroup({\n ...props\n}: React.ComponentProps<typeof ContextMenuPrimitive.Group>) {\n return (\n <ContextMenuPrimitive.Group data-slot=\"context-menu-group\" {...props} />\n )\n}\n\nfunction ContextMenuPortal({\n ...props\n}: React.ComponentProps<typeof ContextMenuPrimitive.Portal>) {\n return (\n <ContextMenuPrimitive.Portal data-slot=\"context-menu-portal\" {...props} />\n )\n}\n\nfunction ContextMenuSub({\n ...props\n}: React.ComponentProps<typeof ContextMenuPrimitive.Sub>) {\n return <ContextMenuPrimitive.Sub data-slot=\"context-menu-sub\" {...props} />\n}\n\nfunction ContextMenuRadioGroup({\n ...props\n}: React.ComponentProps<typeof ContextMenuPrimitive.RadioGroup>) {\n return (\n <ContextMenuPrimitive.RadioGroup\n data-slot=\"context-menu-radio-group\"\n {...props}\n />\n )\n}\n\nfunction ContextMenuContent({\n className,\n ...props\n}: React.ComponentProps<typeof ContextMenuPrimitive.Content> & {\n side?: \"top\" | \"right\" | \"bottom\" | \"left\"\n}) {\n return (\n <ContextMenuPrimitive.Portal>\n <ContextMenuPrimitive.Content\n data-slot=\"context-menu-content\"\n className={cn(\"z-50 max-h-(--radix-context-menu-content-available-height) min-w-36 origin-(--radix-context-menu-content-transform-origin) overflow-x-hidden overflow-y-auto rounded-lg bg-popover p-1 text-popover-foreground shadow-elevation-4 ring-1 ring-foreground/10 duration-100 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2 data-open:animate-in data-open:fade-in-0 data-open:zoom-in-95 data-closed:animate-out data-closed:fade-out-0 data-closed:zoom-out-95\", className )}\n {...props}\n />\n </ContextMenuPrimitive.Portal>\n )\n}\n\nfunction ContextMenuItem({\n className,\n inset,\n variant = \"default\",\n ...props\n}: React.ComponentProps<typeof ContextMenuPrimitive.Item> & {\n inset?: boolean\n variant?: \"default\" | \"destructive\"\n}) {\n return (\n <ContextMenuPrimitive.Item\n data-slot=\"context-menu-item\"\n data-inset={inset}\n data-variant={variant}\n className={cn(\n \"group/context-menu-item relative flex cursor-default items-center gap-1.5 rounded-md px-1.5 py-1 text-sm outline-hidden select-none focus:bg-accent focus:text-accent-foreground data-inset:pl-7 data-[variant=destructive]:text-destructive data-[variant=destructive]:focus:bg-destructive/10 data-[variant=destructive]:focus:text-destructive dark:data-[variant=destructive]:focus:bg-destructive/20 data-disabled:pointer-events-none data-disabled:opacity-50 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4 focus:*:[svg]:text-accent-foreground data-[variant=destructive]:*:[svg]:text-destructive\",\n className\n )}\n {...props}\n />\n )\n}\n\nfunction ContextMenuSubTrigger({\n className,\n inset,\n children,\n ...props\n}: React.ComponentProps<typeof ContextMenuPrimitive.SubTrigger> & {\n inset?: boolean\n}) {\n return (\n <ContextMenuPrimitive.SubTrigger\n data-slot=\"context-menu-sub-trigger\"\n data-inset={inset}\n className={cn(\n \"flex cursor-default items-center gap-1.5 rounded-md px-1.5 py-1 text-sm outline-hidden select-none focus:bg-accent focus:text-accent-foreground data-inset:pl-7 data-open:bg-accent data-open:text-accent-foreground [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4\",\n className\n )}\n {...props}\n >\n {children}\n <ChevronRightIcon className=\"ml-auto\" />\n </ContextMenuPrimitive.SubTrigger>\n )\n}\n\nfunction ContextMenuSubContent({\n className,\n ...props\n}: React.ComponentProps<typeof ContextMenuPrimitive.SubContent>) {\n return (\n <ContextMenuPrimitive.SubContent\n data-slot=\"context-menu-sub-content\"\n className={cn(\"z-50 min-w-32 origin-(--radix-context-menu-content-transform-origin) overflow-hidden rounded-lg border bg-popover p-1 text-popover-foreground shadow-elevation-5 duration-100 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2 data-open:animate-in data-open:fade-in-0 data-open:zoom-in-95 data-closed:animate-out data-closed:fade-out-0 data-closed:zoom-out-95\", className )}\n {...props}\n />\n )\n}\n\nfunction ContextMenuCheckboxItem({\n className,\n children,\n checked,\n inset,\n ...props\n}: React.ComponentProps<typeof ContextMenuPrimitive.CheckboxItem> & {\n inset?: boolean\n}) {\n return (\n <ContextMenuPrimitive.CheckboxItem\n data-slot=\"context-menu-checkbox-item\"\n data-inset={inset}\n className={cn(\n \"relative flex cursor-default items-center gap-1.5 rounded-md py-1 pr-8 pl-1.5 text-sm outline-hidden select-none focus:bg-accent focus:text-accent-foreground data-inset:pl-7 data-disabled:pointer-events-none data-disabled:opacity-50 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4\",\n className\n )}\n checked={checked}\n {...props}\n >\n <span className=\"pointer-events-none absolute right-2\">\n <ContextMenuPrimitive.ItemIndicator>\n <CheckIcon\n />\n </ContextMenuPrimitive.ItemIndicator>\n </span>\n {children}\n </ContextMenuPrimitive.CheckboxItem>\n )\n}\n\nfunction ContextMenuRadioItem({\n className,\n children,\n inset,\n ...props\n}: React.ComponentProps<typeof ContextMenuPrimitive.RadioItem> & {\n inset?: boolean\n}) {\n return (\n <ContextMenuPrimitive.RadioItem\n data-slot=\"context-menu-radio-item\"\n data-inset={inset}\n className={cn(\n \"relative flex cursor-default items-center gap-1.5 rounded-md py-1 pr-8 pl-1.5 text-sm outline-hidden select-none focus:bg-accent focus:text-accent-foreground data-inset:pl-7 data-disabled:pointer-events-none data-disabled:opacity-50 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4\",\n className\n )}\n {...props}\n >\n <span className=\"pointer-events-none absolute right-2\">\n <ContextMenuPrimitive.ItemIndicator>\n <CheckIcon\n />\n </ContextMenuPrimitive.ItemIndicator>\n </span>\n {children}\n </ContextMenuPrimitive.RadioItem>\n )\n}\n\nfunction ContextMenuLabel({\n className,\n inset,\n ...props\n}: React.ComponentProps<typeof ContextMenuPrimitive.Label> & {\n inset?: boolean\n}) {\n return (\n <ContextMenuPrimitive.Label\n data-slot=\"context-menu-label\"\n data-inset={inset}\n className={cn(\n \"px-1.5 py-1 text-xs font-medium text-muted-foreground data-inset:pl-7\",\n className\n )}\n {...props}\n />\n )\n}\n\nfunction ContextMenuSeparator({\n className,\n ...props\n}: React.ComponentProps<typeof ContextMenuPrimitive.Separator>) {\n return (\n <ContextMenuPrimitive.Separator\n data-slot=\"context-menu-separator\"\n className={cn(\"-mx-1 my-1 h-px bg-border\", className)}\n {...props}\n />\n )\n}\n\nfunction ContextMenuShortcut({\n className,\n ...props\n}: React.ComponentProps<\"span\">) {\n return (\n <span\n data-slot=\"context-menu-shortcut\"\n className={cn(\n \"ml-auto text-xs tracking-widest text-muted-foreground group-focus/context-menu-item:text-accent-foreground\",\n className\n )}\n {...props}\n />\n )\n}\n\nexport {\n ContextMenu,\n ContextMenuTrigger,\n ContextMenuContent,\n ContextMenuItem,\n ContextMenuCheckboxItem,\n ContextMenuRadioItem,\n ContextMenuLabel,\n ContextMenuSeparator,\n ContextMenuShortcut,\n ContextMenuGroup,\n ContextMenuPortal,\n ContextMenuSub,\n ContextMenuSubContent,\n ContextMenuSubTrigger,\n ContextMenuRadioGroup,\n}\n"],"names":["ContextMenu","props","ContextMenuPrimitive","ContextMenuTrigger","className","jsx","cn","ContextMenuGroup","ContextMenuPortal","ContextMenuSub","ContextMenuRadioGroup","ContextMenuContent","ContextMenuItem","inset","variant","ContextMenuSubTrigger","children","jsxs","ChevronRightIcon","ContextMenuSubContent","ContextMenuCheckboxItem","checked","CheckIcon","ContextMenuRadioItem","ContextMenuLabel","ContextMenuSeparator","ContextMenuShortcut"],"mappings":"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"}
@@ -1,2 +1,2 @@
1
- "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const n=require("react/jsx-runtime"),u=require("@dnd-kit/core"),D=require("@dnd-kit/modifiers"),b=require("@dnd-kit/sortable"),O=require("@dnd-kit/utilities"),j=require("lucide-react"),k=require("react"),T=require("./data-table.cjs"),q=require("../button.cjs"),y=require("../../../lib/utils.cjs");function w(s){const i=Object.create(null,{[Symbol.toStringTag]:{value:"Module"}});if(s){for(const a in s)if(a!=="default"){const o=Object.getOwnPropertyDescriptor(s,a);Object.defineProperty(i,a,o.get?o:{enumerable:!0,get:()=>s[a]})}}return i.default=s,Object.freeze(i)}const C=w(k);function N({id:s,label:i,visible:a,onToggle:o}){const{attributes:p,listeners:g,setNodeRef:h,transform:l,transition:f,isDragging:c}=b.useSortable({id:s}),v={transform:O.CSS.Transform.toString(l),transition:f};return n.jsxs("div",{ref:h,style:v,role:"checkbox","aria-checked":a,tabIndex:0,onClick:o,onKeyDown:d=>{(d.key==="Enter"||d.key===" ")&&o()},className:y.cn("group/col-item flex cursor-pointer items-center gap-2 rounded-md px-2 py-1.5 text-sm select-none hover:bg-accent hover:text-accent-foreground",c&&"z-50 bg-accent text-accent-foreground shadow-sm"),children:[n.jsx("button",{type:"button",className:y.cn("cursor-grab touch-none text-muted-foreground group-hover/col-item:text-accent-foreground active:cursor-grabbing",!c&&"opacity-0 group-hover/col-item:opacity-100 transition-opacity"),onClick:d=>d.stopPropagation(),...p,...g,children:n.jsx(j.GripVerticalIcon,{className:"size-3.5"})}),n.jsx("span",{className:"flex-1 truncate",children:i}),n.jsx(j.CheckIcon,{className:y.cn("size-4 shrink-0",a?"text-muted-foreground group-hover/col-item:text-accent-foreground":"text-transparent")})]})}function z({className:s}){const{table:i,columnLabels:a}=T.useDataTable(),[o,p]=C.useState(!1),g=C.useRef(null),h=u.useSensors(u.useSensor(u.PointerSensor),u.useSensor(u.KeyboardSensor,{coordinateGetter:b.sortableKeyboardCoordinates})),l=i.getAllColumns().filter(t=>t.getCanHide()),f=i.getState().columnOrder,c=f&&f.length>0?f.filter(t=>l.some(e=>e.id===t)):l.map(t=>t.id);if(C.useEffect(()=>{if(!o)return;function t(e){g.current&&!g.current.contains(e.target)&&p(!1)}return document.addEventListener("mousedown",t),()=>document.removeEventListener("mousedown",t)},[o]),l.length===0)return null;function v(t){const e=l.find(r=>r.id===t);return e?a[e.id]??e.columnDef.meta?.label??(typeof e.columnDef.header=="string"?e.columnDef.header:e.id):t}const d=t=>{const{active:e,over:r}=t;if(!r||e.id===r.id)return;const m=c.indexOf(String(e.id)),x=c.indexOf(String(r.id));if(m===-1||x===-1)return;const S=b.arrayMove(c,m,x);i.setColumnOrder(S)};return n.jsxs("div",{className:"relative",ref:g,children:[n.jsxs(q.Button,{variant:"ghost",size:"sm",className:s,"data-slot":"data-table-column-toggle",onClick:()=>p(t=>!t),"aria-expanded":o,children:[n.jsx(j.SlidersHorizontalIcon,{"data-icon":"inline-start"}),"Columns"]}),o&&n.jsx("div",{className:"absolute right-0 top-full z-50 mt-1 w-56 rounded-lg border bg-popover p-1 shadow-md",role:"group","aria-label":"Toggle and reorder columns",children:n.jsx(u.DndContext,{sensors:h,collisionDetection:u.closestCenter,modifiers:[D.restrictToVerticalAxis],onDragEnd:d,children:n.jsx(b.SortableContext,{items:c,strategy:b.verticalListSortingStrategy,children:(()=>{const t=c.filter(e=>l.find(r=>r.id===e)?.getIsVisible()).length;return c.map(e=>{const r=l.find(S=>S.id===e);if(!r)return null;const m=r.getIsVisible(),x=m&&t<=1;return n.jsx(N,{id:e,label:v(e),visible:m,onToggle:x?()=>{}:()=>r.toggleVisibility()},e)})})()})})})]})}exports.DataTableColumnToggle=z;
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const n=require("react/jsx-runtime"),u=require("@dnd-kit/core"),D=require("@dnd-kit/modifiers"),b=require("@dnd-kit/sortable"),O=require("@dnd-kit/utilities"),C=require("lucide-react"),T=require("react"),k=require("./data-table.cjs"),q=require("../button.cjs"),y=require("../../../lib/utils.cjs");function N(i){const o=Object.create(null,{[Symbol.toStringTag]:{value:"Module"}});if(i){for(const a in i)if(a!=="default"){const s=Object.getOwnPropertyDescriptor(i,a);Object.defineProperty(o,a,s.get?s:{enumerable:!0,get:()=>i[a]})}}return o.default=i,Object.freeze(o)}const j=N(T);function w({id:i,label:o,visible:a,onToggle:s}){const{attributes:x,listeners:d,setNodeRef:h,transform:l,transition:g,isDragging:c}=b.useSortable({id:i}),v={transform:O.CSS.Transform.toString(l),transition:g};return n.jsxs("div",{ref:h,style:v,className:y.cn("group/col-item flex items-center gap-2 rounded-md px-2 py-1.5 text-sm select-none hover:bg-accent hover:text-accent-foreground",c&&"z-50 bg-accent text-accent-foreground shadow-elevation-3"),children:[n.jsx("button",{type:"button","aria-label":`Drag to reorder ${o}`,className:y.cn("cursor-grab touch-none text-muted-foreground group-hover/col-item:text-accent-foreground active:cursor-grabbing",!c&&"opacity-0 group-hover/col-item:opacity-100 transition-opacity"),...x,...d,children:n.jsx(C.GripVerticalIcon,{className:"size-3.5"})}),n.jsxs("div",{role:"checkbox","aria-checked":a,tabIndex:0,onClick:s,onKeyDown:f=>{(f.key==="Enter"||f.key===" ")&&(f.preventDefault(),s())},className:"flex flex-1 cursor-pointer items-center gap-2 select-none",children:[n.jsx("span",{className:"flex-1 truncate",children:o}),n.jsx(C.CheckIcon,{className:y.cn("size-4 shrink-0",a?"text-muted-foreground group-hover/col-item:text-accent-foreground":"text-transparent")})]})]})}function z({className:i}){const{table:o,columnLabels:a}=k.useDataTable(),[s,x]=j.useState(!1),d=j.useRef(null),h=u.useSensors(u.useSensor(u.PointerSensor),u.useSensor(u.KeyboardSensor,{coordinateGetter:b.sortableKeyboardCoordinates})),l=o.getAllColumns().filter(t=>t.getCanHide()),g=o.getState().columnOrder,c=g&&g.length>0?g.filter(t=>l.some(e=>e.id===t)):l.map(t=>t.id);if(j.useEffect(()=>{if(!s)return;function t(e){d.current&&!d.current.contains(e.target)&&x(!1)}return document.addEventListener("mousedown",t),()=>document.removeEventListener("mousedown",t)},[s]),l.length===0)return null;function v(t){const e=l.find(r=>r.id===t);return e?a[e.id]??e.columnDef.meta?.label??(typeof e.columnDef.header=="string"?e.columnDef.header:e.id):t}const f=t=>{const{active:e,over:r}=t;if(!r||e.id===r.id)return;const m=c.indexOf(String(e.id)),p=c.indexOf(String(r.id));if(m===-1||p===-1)return;const S=b.arrayMove(c,m,p);o.setColumnOrder(S)};return n.jsxs("div",{className:"relative",ref:d,children:[n.jsxs(q.Button,{variant:"ghost",size:"sm",className:i,"data-slot":"data-table-column-toggle",onClick:()=>x(t=>!t),"aria-expanded":s,children:[n.jsx(C.SlidersHorizontalIcon,{"data-icon":"inline-start"}),"Columns"]}),s&&n.jsx("div",{className:"absolute right-0 top-full z-50 mt-1 w-56 rounded-lg border bg-popover p-1 shadow-elevation-4",role:"group","aria-label":"Toggle and reorder columns",children:n.jsx(u.DndContext,{sensors:h,collisionDetection:u.closestCenter,modifiers:[D.restrictToVerticalAxis],onDragEnd:f,children:n.jsx(b.SortableContext,{items:c,strategy:b.verticalListSortingStrategy,children:(()=>{const t=c.filter(e=>l.find(r=>r.id===e)?.getIsVisible()).length;return c.map(e=>{const r=l.find(S=>S.id===e);if(!r)return null;const m=r.getIsVisible(),p=m&&t<=1;return n.jsx(w,{id:e,label:v(e),visible:m,onToggle:p?()=>{}:()=>r.toggleVisibility()},e)})})()})})})]})}exports.DataTableColumnToggle=z;
2
2
  //# sourceMappingURL=data-table-column-toggle.cjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"data-table-column-toggle.cjs","sources":["../../../../src/components/ui/data-table/data-table-column-toggle.tsx"],"sourcesContent":["\"use client\"\n\nimport {\n closestCenter,\n DndContext,\n type DragEndEvent,\n KeyboardSensor,\n PointerSensor,\n useSensor,\n useSensors,\n} from \"@dnd-kit/core\"\nimport { restrictToVerticalAxis } from \"@dnd-kit/modifiers\"\nimport {\n arrayMove,\n SortableContext,\n sortableKeyboardCoordinates,\n useSortable,\n verticalListSortingStrategy,\n} from \"@dnd-kit/sortable\"\nimport { CSS } from \"@dnd-kit/utilities\"\nimport { CheckIcon, GripVerticalIcon, SlidersHorizontalIcon } from \"lucide-react\"\nimport * as React from \"react\"\n\nimport { useDataTable } from \"./data-table\"\n\nimport { Button } from \"@/components/ui/button\"\nimport { cn } from \"@/lib/utils\"\n\ninterface DataTableColumnToggleProps {\n className?: string\n}\n\ninterface SortableColumnItemProps {\n id: string\n label: string\n visible: boolean\n onToggle: () => void\n}\n\nfunction SortableColumnItem({ id, label, visible, onToggle }: SortableColumnItemProps) {\n const {\n attributes,\n listeners,\n setNodeRef,\n transform,\n transition,\n isDragging,\n } = useSortable({ id })\n\n const style: React.CSSProperties = {\n transform: CSS.Transform.toString(transform),\n transition,\n }\n\n return (\n <div\n ref={setNodeRef}\n style={style}\n role=\"checkbox\"\n aria-checked={visible}\n tabIndex={0}\n onClick={onToggle}\n onKeyDown={(e) => {\n if (e.key === \"Enter\" || e.key === \" \") {\n onToggle();\n }\n }}\n className={cn(\n \"group/col-item flex cursor-pointer items-center gap-2 rounded-md px-2 py-1.5 text-sm select-none hover:bg-accent hover:text-accent-foreground\",\n isDragging && \"z-50 bg-accent text-accent-foreground shadow-sm\",\n )}\n >\n <button\n type=\"button\"\n className={cn(\n \"cursor-grab touch-none text-muted-foreground group-hover/col-item:text-accent-foreground active:cursor-grabbing\",\n !isDragging && \"opacity-0 group-hover/col-item:opacity-100 transition-opacity\",\n )}\n onClick={(e) => e.stopPropagation()}\n {...attributes}\n {...listeners}\n >\n <GripVerticalIcon className=\"size-3.5\" />\n </button>\n <span className=\"flex-1 truncate\">{label}</span>\n <CheckIcon className={cn(\"size-4 shrink-0\", visible ? \"text-muted-foreground group-hover/col-item:text-accent-foreground\" : \"text-transparent\")} />\n </div>\n )\n}\n\nfunction DataTableColumnToggle({ className }: DataTableColumnToggleProps) {\n const { table, columnLabels } = useDataTable()\n const [open, setOpen] = React.useState(false)\n const panelRef = React.useRef<HTMLDivElement>(null)\n\n const sensors = useSensors(\n useSensor(PointerSensor),\n useSensor(KeyboardSensor, {\n coordinateGetter: sortableKeyboardCoordinates,\n }),\n )\n\n const allColumns = table.getAllColumns().filter((col) => col.getCanHide())\n const stateOrder = table.getState().columnOrder\n const orderedIds =\n stateOrder && stateOrder.length > 0\n ? stateOrder.filter((id) => allColumns.some((c) => c.id === id))\n : allColumns.map((c) => c.id)\n\n // Close on outside click\n React.useEffect(() => {\n if (!open) return\n function handleClick(e: MouseEvent) {\n if (panelRef.current && !panelRef.current.contains(e.target as Node)) {\n setOpen(false)\n }\n }\n document.addEventListener(\"mousedown\", handleClick)\n return () => document.removeEventListener(\"mousedown\", handleClick)\n }, [open])\n\n if (allColumns.length === 0) return null\n\n function getLabel(colId: string) {\n const col = allColumns.find((c) => c.id === colId)\n if (!col) return colId\n return (\n columnLabels[col.id] ??\n (col.columnDef.meta as { label?: string } | undefined)?.label ??\n (typeof col.columnDef.header === \"string\" ? col.columnDef.header : col.id)\n )\n }\n\n const handleDragEnd = (event: DragEndEvent) => {\n const { active, over } = event\n if (!over || active.id === over.id) return\n\n const oldIndex = orderedIds.indexOf(String(active.id))\n const newIndex = orderedIds.indexOf(String(over.id))\n if (oldIndex === -1 || newIndex === -1) return\n\n const newOrder = arrayMove(orderedIds, oldIndex, newIndex)\n table.setColumnOrder(newOrder)\n }\n\n return (\n <div className=\"relative\" ref={panelRef}>\n <Button\n variant=\"ghost\"\n size=\"sm\"\n className={className}\n data-slot=\"data-table-column-toggle\"\n onClick={() => setOpen((prev) => !prev)}\n aria-expanded={open}\n >\n <SlidersHorizontalIcon data-icon=\"inline-start\" />\n Columns\n </Button>\n\n {open && (\n <div\n className=\"absolute right-0 top-full z-50 mt-1 w-56 rounded-lg border bg-popover p-1 shadow-md\"\n role=\"group\"\n aria-label=\"Toggle and reorder columns\"\n >\n <DndContext\n sensors={sensors}\n collisionDetection={closestCenter}\n modifiers={[restrictToVerticalAxis]}\n onDragEnd={handleDragEnd}\n >\n <SortableContext items={orderedIds} strategy={verticalListSortingStrategy}>\n {(() => {\n const visibleCount = orderedIds.filter((colId) => allColumns.find((c) => c.id === colId)?.getIsVisible()).length\n return orderedIds.map((colId) => {\n const col = allColumns.find((c) => c.id === colId)\n if (!col) return null\n const isVisible = col.getIsVisible()\n const isLastVisible = isVisible && visibleCount <= 1\n return (\n <SortableColumnItem\n key={colId}\n id={colId}\n label={getLabel(colId)}\n visible={isVisible}\n onToggle={isLastVisible ? () => { } : () => col.toggleVisibility()}\n />\n )\n })\n })()}\n </SortableContext>\n </DndContext>\n </div>\n )}\n </div>\n )\n}\n\nexport { DataTableColumnToggle }\nexport type { DataTableColumnToggleProps }\n"],"names":["SortableColumnItem","id","label","visible","onToggle","attributes","listeners","setNodeRef","transform","transition","isDragging","useSortable","style","CSS","jsxs","e","cn","jsx","GripVerticalIcon","CheckIcon","DataTableColumnToggle","className","table","columnLabels","useDataTable","open","setOpen","React","panelRef","sensors","useSensors","useSensor","PointerSensor","KeyboardSensor","sortableKeyboardCoordinates","allColumns","col","stateOrder","orderedIds","c","handleClick","getLabel","colId","handleDragEnd","event","active","over","oldIndex","newIndex","newOrder","arrayMove","Button","prev","SlidersHorizontalIcon","DndContext","closestCenter","restrictToVerticalAxis","SortableContext","verticalListSortingStrategy","visibleCount","isVisible","isLastVisible"],"mappings":"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"}
1
+ {"version":3,"file":"data-table-column-toggle.cjs","sources":["../../../../src/components/ui/data-table/data-table-column-toggle.tsx"],"sourcesContent":["\"use client\"\n\nimport {\n closestCenter,\n DndContext,\n type DragEndEvent,\n KeyboardSensor,\n PointerSensor,\n useSensor,\n useSensors,\n} from \"@dnd-kit/core\"\nimport { restrictToVerticalAxis } from \"@dnd-kit/modifiers\"\nimport {\n arrayMove,\n SortableContext,\n sortableKeyboardCoordinates,\n useSortable,\n verticalListSortingStrategy,\n} from \"@dnd-kit/sortable\"\nimport { CSS } from \"@dnd-kit/utilities\"\nimport { CheckIcon, GripVerticalIcon, SlidersHorizontalIcon } from \"lucide-react\"\nimport * as React from \"react\"\n\nimport { useDataTable } from \"./data-table\"\n\nimport { Button } from \"@/components/ui/button\"\nimport { cn } from \"@/lib/utils\"\n\ninterface DataTableColumnToggleProps {\n className?: string\n}\n\ninterface SortableColumnItemProps {\n id: string\n label: string\n visible: boolean\n onToggle: () => void\n}\n\nfunction SortableColumnItem({ id, label, visible, onToggle }: SortableColumnItemProps) {\n const {\n attributes,\n listeners,\n setNodeRef,\n transform,\n transition,\n isDragging,\n } = useSortable({ id })\n\n const style: React.CSSProperties = {\n transform: CSS.Transform.toString(transform),\n transition,\n }\n\n return (\n <div\n ref={setNodeRef}\n style={style}\n className={cn(\n \"group/col-item flex items-center gap-2 rounded-md px-2 py-1.5 text-sm select-none hover:bg-accent hover:text-accent-foreground\",\n isDragging && \"z-50 bg-accent text-accent-foreground shadow-elevation-3\",\n )}\n >\n <button\n type=\"button\"\n aria-label={`Drag to reorder ${label}`}\n className={cn(\n \"cursor-grab touch-none text-muted-foreground group-hover/col-item:text-accent-foreground active:cursor-grabbing\",\n !isDragging && \"opacity-0 group-hover/col-item:opacity-100 transition-opacity\",\n )}\n {...attributes}\n {...listeners}\n >\n <GripVerticalIcon className=\"size-3.5\" />\n </button>\n <div\n role=\"checkbox\"\n aria-checked={visible}\n tabIndex={0}\n onClick={onToggle}\n onKeyDown={(e) => {\n if (e.key === \"Enter\" || e.key === \" \") {\n e.preventDefault();\n onToggle();\n }\n }}\n className=\"flex flex-1 cursor-pointer items-center gap-2 select-none\"\n >\n <span className=\"flex-1 truncate\">{label}</span>\n <CheckIcon className={cn(\"size-4 shrink-0\", visible ? \"text-muted-foreground group-hover/col-item:text-accent-foreground\" : \"text-transparent\")} />\n </div>\n </div>\n )\n}\n\nfunction DataTableColumnToggle({ className }: DataTableColumnToggleProps) {\n const { table, columnLabels } = useDataTable()\n const [open, setOpen] = React.useState(false)\n const panelRef = React.useRef<HTMLDivElement>(null)\n\n const sensors = useSensors(\n useSensor(PointerSensor),\n useSensor(KeyboardSensor, {\n coordinateGetter: sortableKeyboardCoordinates,\n }),\n )\n\n const allColumns = table.getAllColumns().filter((col) => col.getCanHide())\n const stateOrder = table.getState().columnOrder\n const orderedIds =\n stateOrder && stateOrder.length > 0\n ? stateOrder.filter((id) => allColumns.some((c) => c.id === id))\n : allColumns.map((c) => c.id)\n\n // Close on outside click\n React.useEffect(() => {\n if (!open) return\n function handleClick(e: MouseEvent) {\n if (panelRef.current && !panelRef.current.contains(e.target as Node)) {\n setOpen(false)\n }\n }\n document.addEventListener(\"mousedown\", handleClick)\n return () => document.removeEventListener(\"mousedown\", handleClick)\n }, [open])\n\n if (allColumns.length === 0) return null\n\n function getLabel(colId: string) {\n const col = allColumns.find((c) => c.id === colId)\n if (!col) return colId\n return (\n columnLabels[col.id] ??\n (col.columnDef.meta as { label?: string } | undefined)?.label ??\n (typeof col.columnDef.header === \"string\" ? col.columnDef.header : col.id)\n )\n }\n\n const handleDragEnd = (event: DragEndEvent) => {\n const { active, over } = event\n if (!over || active.id === over.id) return\n\n const oldIndex = orderedIds.indexOf(String(active.id))\n const newIndex = orderedIds.indexOf(String(over.id))\n if (oldIndex === -1 || newIndex === -1) return\n\n const newOrder = arrayMove(orderedIds, oldIndex, newIndex)\n table.setColumnOrder(newOrder)\n }\n\n return (\n <div className=\"relative\" ref={panelRef}>\n <Button\n variant=\"ghost\"\n size=\"sm\"\n className={className}\n data-slot=\"data-table-column-toggle\"\n onClick={() => setOpen((prev) => !prev)}\n aria-expanded={open}\n >\n <SlidersHorizontalIcon data-icon=\"inline-start\" />\n Columns\n </Button>\n\n {open && (\n <div\n className=\"absolute right-0 top-full z-50 mt-1 w-56 rounded-lg border bg-popover p-1 shadow-elevation-4\"\n role=\"group\"\n aria-label=\"Toggle and reorder columns\"\n >\n <DndContext\n sensors={sensors}\n collisionDetection={closestCenter}\n modifiers={[restrictToVerticalAxis]}\n onDragEnd={handleDragEnd}\n >\n <SortableContext items={orderedIds} strategy={verticalListSortingStrategy}>\n {(() => {\n const visibleCount = orderedIds.filter((colId) => allColumns.find((c) => c.id === colId)?.getIsVisible()).length\n return orderedIds.map((colId) => {\n const col = allColumns.find((c) => c.id === colId)\n if (!col) return null\n const isVisible = col.getIsVisible()\n const isLastVisible = isVisible && visibleCount <= 1\n return (\n <SortableColumnItem\n key={colId}\n id={colId}\n label={getLabel(colId)}\n visible={isVisible}\n onToggle={isLastVisible ? () => { } : () => col.toggleVisibility()}\n />\n )\n })\n })()}\n </SortableContext>\n </DndContext>\n </div>\n )}\n </div>\n )\n}\n\nexport { DataTableColumnToggle }\nexport type { DataTableColumnToggleProps }\n"],"names":["SortableColumnItem","id","label","visible","onToggle","attributes","listeners","setNodeRef","transform","transition","isDragging","useSortable","style","CSS","jsxs","cn","jsx","GripVerticalIcon","e","CheckIcon","DataTableColumnToggle","className","table","columnLabels","useDataTable","open","setOpen","React","panelRef","sensors","useSensors","useSensor","PointerSensor","KeyboardSensor","sortableKeyboardCoordinates","allColumns","col","stateOrder","orderedIds","c","handleClick","getLabel","colId","handleDragEnd","event","active","over","oldIndex","newIndex","newOrder","arrayMove","Button","prev","SlidersHorizontalIcon","DndContext","closestCenter","restrictToVerticalAxis","SortableContext","verticalListSortingStrategy","visibleCount","isVisible","isLastVisible"],"mappings":"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"}
@@ -1,128 +1,136 @@
1
- import { jsxs as S, jsx as n } from "react/jsx-runtime";
2
- import { useSensors as D, useSensor as y, PointerSensor as k, KeyboardSensor as w, DndContext as N, closestCenter as E } from "@dnd-kit/core";
1
+ import { jsxs as p, jsx as o } from "react/jsx-runtime";
2
+ import { useSensors as D, useSensor as y, PointerSensor as k, KeyboardSensor as N, DndContext as w, closestCenter as E } from "@dnd-kit/core";
3
3
  import { restrictToVerticalAxis as O } from "@dnd-kit/modifiers";
4
4
  import { sortableKeyboardCoordinates as V, SortableContext as z, verticalListSortingStrategy as I, arrayMove as L, useSortable as T } from "@dnd-kit/sortable";
5
5
  import { CSS as R } from "@dnd-kit/utilities";
6
6
  import { SlidersHorizontalIcon as K, GripVerticalIcon as j, CheckIcon as A } from "lucide-react";
7
- import * as v from "react";
7
+ import * as C from "react";
8
8
  import { useDataTable as G } from "./data-table.js";
9
9
  import { Button as H } from "../button.js";
10
- import { cn as C } from "../../../lib/utils.js";
11
- function P({ id: p, label: a, visible: m, onToggle: s }) {
10
+ import { cn as S } from "../../../lib/utils.js";
11
+ function B({ id: b, label: a, visible: u, onToggle: s }) {
12
12
  const {
13
- attributes: f,
13
+ attributes: m,
14
14
  listeners: l,
15
- setNodeRef: b,
15
+ setNodeRef: h,
16
16
  transform: i,
17
17
  transition: c,
18
- isDragging: o
19
- } = T({ id: p }), h = {
18
+ isDragging: n
19
+ } = T({ id: b }), x = {
20
20
  transform: R.Transform.toString(i),
21
21
  transition: c
22
22
  };
23
- return /* @__PURE__ */ S(
23
+ return /* @__PURE__ */ p(
24
24
  "div",
25
25
  {
26
- ref: b,
27
- style: h,
28
- role: "checkbox",
29
- "aria-checked": m,
30
- tabIndex: 0,
31
- onClick: s,
32
- onKeyDown: (d) => {
33
- (d.key === "Enter" || d.key === " ") && s();
34
- },
35
- className: C(
36
- "group/col-item flex cursor-pointer items-center gap-2 rounded-md px-2 py-1.5 text-sm select-none hover:bg-accent hover:text-accent-foreground",
37
- o && "z-50 bg-accent text-accent-foreground shadow-sm"
26
+ ref: h,
27
+ style: x,
28
+ className: S(
29
+ "group/col-item flex items-center gap-2 rounded-md px-2 py-1.5 text-sm select-none hover:bg-accent hover:text-accent-foreground",
30
+ n && "z-50 bg-accent text-accent-foreground shadow-elevation-3"
38
31
  ),
39
32
  children: [
40
- /* @__PURE__ */ n(
33
+ /* @__PURE__ */ o(
41
34
  "button",
42
35
  {
43
36
  type: "button",
44
- className: C(
37
+ "aria-label": `Drag to reorder ${a}`,
38
+ className: S(
45
39
  "cursor-grab touch-none text-muted-foreground group-hover/col-item:text-accent-foreground active:cursor-grabbing",
46
- !o && "opacity-0 group-hover/col-item:opacity-100 transition-opacity"
40
+ !n && "opacity-0 group-hover/col-item:opacity-100 transition-opacity"
47
41
  ),
48
- onClick: (d) => d.stopPropagation(),
49
- ...f,
42
+ ...m,
50
43
  ...l,
51
- children: /* @__PURE__ */ n(j, { className: "size-3.5" })
44
+ children: /* @__PURE__ */ o(j, { className: "size-3.5" })
52
45
  }
53
46
  ),
54
- /* @__PURE__ */ n("span", { className: "flex-1 truncate", children: a }),
55
- /* @__PURE__ */ n(A, { className: C("size-4 shrink-0", m ? "text-muted-foreground group-hover/col-item:text-accent-foreground" : "text-transparent") })
47
+ /* @__PURE__ */ p(
48
+ "div",
49
+ {
50
+ role: "checkbox",
51
+ "aria-checked": u,
52
+ tabIndex: 0,
53
+ onClick: s,
54
+ onKeyDown: (f) => {
55
+ (f.key === "Enter" || f.key === " ") && (f.preventDefault(), s());
56
+ },
57
+ className: "flex flex-1 cursor-pointer items-center gap-2 select-none",
58
+ children: [
59
+ /* @__PURE__ */ o("span", { className: "flex-1 truncate", children: a }),
60
+ /* @__PURE__ */ o(A, { className: S("size-4 shrink-0", u ? "text-muted-foreground group-hover/col-item:text-accent-foreground" : "text-transparent") })
61
+ ]
62
+ }
63
+ )
56
64
  ]
57
65
  }
58
66
  );
59
67
  }
60
- function Y({ className: p }) {
61
- const { table: a, columnLabels: m } = G(), [s, f] = v.useState(!1), l = v.useRef(null), b = D(
68
+ function X({ className: b }) {
69
+ const { table: a, columnLabels: u } = G(), [s, m] = C.useState(!1), l = C.useRef(null), h = D(
62
70
  y(k),
63
- y(w, {
71
+ y(N, {
64
72
  coordinateGetter: V
65
73
  })
66
- ), i = a.getAllColumns().filter((t) => t.getCanHide()), c = a.getState().columnOrder, o = c && c.length > 0 ? c.filter((t) => i.some((e) => e.id === t)) : i.map((t) => t.id);
67
- if (v.useEffect(() => {
74
+ ), i = a.getAllColumns().filter((t) => t.getCanHide()), c = a.getState().columnOrder, n = c && c.length > 0 ? c.filter((t) => i.some((e) => e.id === t)) : i.map((t) => t.id);
75
+ if (C.useEffect(() => {
68
76
  if (!s) return;
69
77
  function t(e) {
70
- l.current && !l.current.contains(e.target) && f(!1);
78
+ l.current && !l.current.contains(e.target) && m(!1);
71
79
  }
72
80
  return document.addEventListener("mousedown", t), () => document.removeEventListener("mousedown", t);
73
81
  }, [s]), i.length === 0) return null;
74
- function h(t) {
82
+ function x(t) {
75
83
  const e = i.find((r) => r.id === t);
76
- return e ? m[e.id] ?? e.columnDef.meta?.label ?? (typeof e.columnDef.header == "string" ? e.columnDef.header : e.id) : t;
84
+ return e ? u[e.id] ?? e.columnDef.meta?.label ?? (typeof e.columnDef.header == "string" ? e.columnDef.header : e.id) : t;
77
85
  }
78
- return /* @__PURE__ */ S("div", { className: "relative", ref: l, children: [
79
- /* @__PURE__ */ S(
86
+ return /* @__PURE__ */ p("div", { className: "relative", ref: l, children: [
87
+ /* @__PURE__ */ p(
80
88
  H,
81
89
  {
82
90
  variant: "ghost",
83
91
  size: "sm",
84
- className: p,
92
+ className: b,
85
93
  "data-slot": "data-table-column-toggle",
86
- onClick: () => f((t) => !t),
94
+ onClick: () => m((t) => !t),
87
95
  "aria-expanded": s,
88
96
  children: [
89
- /* @__PURE__ */ n(K, { "data-icon": "inline-start" }),
97
+ /* @__PURE__ */ o(K, { "data-icon": "inline-start" }),
90
98
  "Columns"
91
99
  ]
92
100
  }
93
101
  ),
94
- s && /* @__PURE__ */ n(
102
+ s && /* @__PURE__ */ o(
95
103
  "div",
96
104
  {
97
- className: "absolute right-0 top-full z-50 mt-1 w-56 rounded-lg border bg-popover p-1 shadow-md",
105
+ className: "absolute right-0 top-full z-50 mt-1 w-56 rounded-lg border bg-popover p-1 shadow-elevation-4",
98
106
  role: "group",
99
107
  "aria-label": "Toggle and reorder columns",
100
- children: /* @__PURE__ */ n(
101
- N,
108
+ children: /* @__PURE__ */ o(
109
+ w,
102
110
  {
103
- sensors: b,
111
+ sensors: h,
104
112
  collisionDetection: E,
105
113
  modifiers: [O],
106
114
  onDragEnd: (t) => {
107
115
  const { active: e, over: r } = t;
108
116
  if (!r || e.id === r.id) return;
109
- const u = o.indexOf(String(e.id)), g = o.indexOf(String(r.id));
110
- if (u === -1 || g === -1) return;
111
- const x = L(o, u, g);
112
- a.setColumnOrder(x);
117
+ const d = n.indexOf(String(e.id)), g = n.indexOf(String(r.id));
118
+ if (d === -1 || g === -1) return;
119
+ const v = L(n, d, g);
120
+ a.setColumnOrder(v);
113
121
  },
114
- children: /* @__PURE__ */ n(z, { items: o, strategy: I, children: (() => {
115
- const t = o.filter((e) => i.find((r) => r.id === e)?.getIsVisible()).length;
116
- return o.map((e) => {
117
- const r = i.find((x) => x.id === e);
122
+ children: /* @__PURE__ */ o(z, { items: n, strategy: I, children: (() => {
123
+ const t = n.filter((e) => i.find((r) => r.id === e)?.getIsVisible()).length;
124
+ return n.map((e) => {
125
+ const r = i.find((v) => v.id === e);
118
126
  if (!r) return null;
119
- const u = r.getIsVisible(), g = u && t <= 1;
120
- return /* @__PURE__ */ n(
121
- P,
127
+ const d = r.getIsVisible(), g = d && t <= 1;
128
+ return /* @__PURE__ */ o(
129
+ B,
122
130
  {
123
131
  id: e,
124
- label: h(e),
125
- visible: u,
132
+ label: x(e),
133
+ visible: d,
126
134
  onToggle: g ? () => {
127
135
  } : () => r.toggleVisibility()
128
136
  },
@@ -137,6 +145,6 @@ function Y({ className: p }) {
137
145
  ] });
138
146
  }
139
147
  export {
140
- Y as DataTableColumnToggle
148
+ X as DataTableColumnToggle
141
149
  };
142
150
  //# sourceMappingURL=data-table-column-toggle.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"data-table-column-toggle.js","sources":["../../../../src/components/ui/data-table/data-table-column-toggle.tsx"],"sourcesContent":["\"use client\"\n\nimport {\n closestCenter,\n DndContext,\n type DragEndEvent,\n KeyboardSensor,\n PointerSensor,\n useSensor,\n useSensors,\n} from \"@dnd-kit/core\"\nimport { restrictToVerticalAxis } from \"@dnd-kit/modifiers\"\nimport {\n arrayMove,\n SortableContext,\n sortableKeyboardCoordinates,\n useSortable,\n verticalListSortingStrategy,\n} from \"@dnd-kit/sortable\"\nimport { CSS } from \"@dnd-kit/utilities\"\nimport { CheckIcon, GripVerticalIcon, SlidersHorizontalIcon } from \"lucide-react\"\nimport * as React from \"react\"\n\nimport { useDataTable } from \"./data-table\"\n\nimport { Button } from \"@/components/ui/button\"\nimport { cn } from \"@/lib/utils\"\n\ninterface DataTableColumnToggleProps {\n className?: string\n}\n\ninterface SortableColumnItemProps {\n id: string\n label: string\n visible: boolean\n onToggle: () => void\n}\n\nfunction SortableColumnItem({ id, label, visible, onToggle }: SortableColumnItemProps) {\n const {\n attributes,\n listeners,\n setNodeRef,\n transform,\n transition,\n isDragging,\n } = useSortable({ id })\n\n const style: React.CSSProperties = {\n transform: CSS.Transform.toString(transform),\n transition,\n }\n\n return (\n <div\n ref={setNodeRef}\n style={style}\n role=\"checkbox\"\n aria-checked={visible}\n tabIndex={0}\n onClick={onToggle}\n onKeyDown={(e) => {\n if (e.key === \"Enter\" || e.key === \" \") {\n onToggle();\n }\n }}\n className={cn(\n \"group/col-item flex cursor-pointer items-center gap-2 rounded-md px-2 py-1.5 text-sm select-none hover:bg-accent hover:text-accent-foreground\",\n isDragging && \"z-50 bg-accent text-accent-foreground shadow-sm\",\n )}\n >\n <button\n type=\"button\"\n className={cn(\n \"cursor-grab touch-none text-muted-foreground group-hover/col-item:text-accent-foreground active:cursor-grabbing\",\n !isDragging && \"opacity-0 group-hover/col-item:opacity-100 transition-opacity\",\n )}\n onClick={(e) => e.stopPropagation()}\n {...attributes}\n {...listeners}\n >\n <GripVerticalIcon className=\"size-3.5\" />\n </button>\n <span className=\"flex-1 truncate\">{label}</span>\n <CheckIcon className={cn(\"size-4 shrink-0\", visible ? \"text-muted-foreground group-hover/col-item:text-accent-foreground\" : \"text-transparent\")} />\n </div>\n )\n}\n\nfunction DataTableColumnToggle({ className }: DataTableColumnToggleProps) {\n const { table, columnLabels } = useDataTable()\n const [open, setOpen] = React.useState(false)\n const panelRef = React.useRef<HTMLDivElement>(null)\n\n const sensors = useSensors(\n useSensor(PointerSensor),\n useSensor(KeyboardSensor, {\n coordinateGetter: sortableKeyboardCoordinates,\n }),\n )\n\n const allColumns = table.getAllColumns().filter((col) => col.getCanHide())\n const stateOrder = table.getState().columnOrder\n const orderedIds =\n stateOrder && stateOrder.length > 0\n ? stateOrder.filter((id) => allColumns.some((c) => c.id === id))\n : allColumns.map((c) => c.id)\n\n // Close on outside click\n React.useEffect(() => {\n if (!open) return\n function handleClick(e: MouseEvent) {\n if (panelRef.current && !panelRef.current.contains(e.target as Node)) {\n setOpen(false)\n }\n }\n document.addEventListener(\"mousedown\", handleClick)\n return () => document.removeEventListener(\"mousedown\", handleClick)\n }, [open])\n\n if (allColumns.length === 0) return null\n\n function getLabel(colId: string) {\n const col = allColumns.find((c) => c.id === colId)\n if (!col) return colId\n return (\n columnLabels[col.id] ??\n (col.columnDef.meta as { label?: string } | undefined)?.label ??\n (typeof col.columnDef.header === \"string\" ? col.columnDef.header : col.id)\n )\n }\n\n const handleDragEnd = (event: DragEndEvent) => {\n const { active, over } = event\n if (!over || active.id === over.id) return\n\n const oldIndex = orderedIds.indexOf(String(active.id))\n const newIndex = orderedIds.indexOf(String(over.id))\n if (oldIndex === -1 || newIndex === -1) return\n\n const newOrder = arrayMove(orderedIds, oldIndex, newIndex)\n table.setColumnOrder(newOrder)\n }\n\n return (\n <div className=\"relative\" ref={panelRef}>\n <Button\n variant=\"ghost\"\n size=\"sm\"\n className={className}\n data-slot=\"data-table-column-toggle\"\n onClick={() => setOpen((prev) => !prev)}\n aria-expanded={open}\n >\n <SlidersHorizontalIcon data-icon=\"inline-start\" />\n Columns\n </Button>\n\n {open && (\n <div\n className=\"absolute right-0 top-full z-50 mt-1 w-56 rounded-lg border bg-popover p-1 shadow-md\"\n role=\"group\"\n aria-label=\"Toggle and reorder columns\"\n >\n <DndContext\n sensors={sensors}\n collisionDetection={closestCenter}\n modifiers={[restrictToVerticalAxis]}\n onDragEnd={handleDragEnd}\n >\n <SortableContext items={orderedIds} strategy={verticalListSortingStrategy}>\n {(() => {\n const visibleCount = orderedIds.filter((colId) => allColumns.find((c) => c.id === colId)?.getIsVisible()).length\n return orderedIds.map((colId) => {\n const col = allColumns.find((c) => c.id === colId)\n if (!col) return null\n const isVisible = col.getIsVisible()\n const isLastVisible = isVisible && visibleCount <= 1\n return (\n <SortableColumnItem\n key={colId}\n id={colId}\n label={getLabel(colId)}\n visible={isVisible}\n onToggle={isLastVisible ? () => { } : () => col.toggleVisibility()}\n />\n )\n })\n })()}\n </SortableContext>\n </DndContext>\n </div>\n )}\n </div>\n )\n}\n\nexport { DataTableColumnToggle }\nexport type { DataTableColumnToggleProps }\n"],"names":["SortableColumnItem","id","label","visible","onToggle","attributes","listeners","setNodeRef","transform","transition","isDragging","useSortable","style","CSS","jsxs","e","cn","jsx","GripVerticalIcon","CheckIcon","DataTableColumnToggle","className","table","columnLabels","useDataTable","open","setOpen","React","panelRef","sensors","useSensors","useSensor","PointerSensor","KeyboardSensor","sortableKeyboardCoordinates","allColumns","col","stateOrder","orderedIds","c","handleClick","getLabel","colId","Button","prev","SlidersHorizontalIcon","DndContext","closestCenter","restrictToVerticalAxis","event","active","over","oldIndex","newIndex","newOrder","arrayMove","SortableContext","verticalListSortingStrategy","visibleCount","isVisible","isLastVisible"],"mappings":"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"}
1
+ {"version":3,"file":"data-table-column-toggle.js","sources":["../../../../src/components/ui/data-table/data-table-column-toggle.tsx"],"sourcesContent":["\"use client\"\n\nimport {\n closestCenter,\n DndContext,\n type DragEndEvent,\n KeyboardSensor,\n PointerSensor,\n useSensor,\n useSensors,\n} from \"@dnd-kit/core\"\nimport { restrictToVerticalAxis } from \"@dnd-kit/modifiers\"\nimport {\n arrayMove,\n SortableContext,\n sortableKeyboardCoordinates,\n useSortable,\n verticalListSortingStrategy,\n} from \"@dnd-kit/sortable\"\nimport { CSS } from \"@dnd-kit/utilities\"\nimport { CheckIcon, GripVerticalIcon, SlidersHorizontalIcon } from \"lucide-react\"\nimport * as React from \"react\"\n\nimport { useDataTable } from \"./data-table\"\n\nimport { Button } from \"@/components/ui/button\"\nimport { cn } from \"@/lib/utils\"\n\ninterface DataTableColumnToggleProps {\n className?: string\n}\n\ninterface SortableColumnItemProps {\n id: string\n label: string\n visible: boolean\n onToggle: () => void\n}\n\nfunction SortableColumnItem({ id, label, visible, onToggle }: SortableColumnItemProps) {\n const {\n attributes,\n listeners,\n setNodeRef,\n transform,\n transition,\n isDragging,\n } = useSortable({ id })\n\n const style: React.CSSProperties = {\n transform: CSS.Transform.toString(transform),\n transition,\n }\n\n return (\n <div\n ref={setNodeRef}\n style={style}\n className={cn(\n \"group/col-item flex items-center gap-2 rounded-md px-2 py-1.5 text-sm select-none hover:bg-accent hover:text-accent-foreground\",\n isDragging && \"z-50 bg-accent text-accent-foreground shadow-elevation-3\",\n )}\n >\n <button\n type=\"button\"\n aria-label={`Drag to reorder ${label}`}\n className={cn(\n \"cursor-grab touch-none text-muted-foreground group-hover/col-item:text-accent-foreground active:cursor-grabbing\",\n !isDragging && \"opacity-0 group-hover/col-item:opacity-100 transition-opacity\",\n )}\n {...attributes}\n {...listeners}\n >\n <GripVerticalIcon className=\"size-3.5\" />\n </button>\n <div\n role=\"checkbox\"\n aria-checked={visible}\n tabIndex={0}\n onClick={onToggle}\n onKeyDown={(e) => {\n if (e.key === \"Enter\" || e.key === \" \") {\n e.preventDefault();\n onToggle();\n }\n }}\n className=\"flex flex-1 cursor-pointer items-center gap-2 select-none\"\n >\n <span className=\"flex-1 truncate\">{label}</span>\n <CheckIcon className={cn(\"size-4 shrink-0\", visible ? \"text-muted-foreground group-hover/col-item:text-accent-foreground\" : \"text-transparent\")} />\n </div>\n </div>\n )\n}\n\nfunction DataTableColumnToggle({ className }: DataTableColumnToggleProps) {\n const { table, columnLabels } = useDataTable()\n const [open, setOpen] = React.useState(false)\n const panelRef = React.useRef<HTMLDivElement>(null)\n\n const sensors = useSensors(\n useSensor(PointerSensor),\n useSensor(KeyboardSensor, {\n coordinateGetter: sortableKeyboardCoordinates,\n }),\n )\n\n const allColumns = table.getAllColumns().filter((col) => col.getCanHide())\n const stateOrder = table.getState().columnOrder\n const orderedIds =\n stateOrder && stateOrder.length > 0\n ? stateOrder.filter((id) => allColumns.some((c) => c.id === id))\n : allColumns.map((c) => c.id)\n\n // Close on outside click\n React.useEffect(() => {\n if (!open) return\n function handleClick(e: MouseEvent) {\n if (panelRef.current && !panelRef.current.contains(e.target as Node)) {\n setOpen(false)\n }\n }\n document.addEventListener(\"mousedown\", handleClick)\n return () => document.removeEventListener(\"mousedown\", handleClick)\n }, [open])\n\n if (allColumns.length === 0) return null\n\n function getLabel(colId: string) {\n const col = allColumns.find((c) => c.id === colId)\n if (!col) return colId\n return (\n columnLabels[col.id] ??\n (col.columnDef.meta as { label?: string } | undefined)?.label ??\n (typeof col.columnDef.header === \"string\" ? col.columnDef.header : col.id)\n )\n }\n\n const handleDragEnd = (event: DragEndEvent) => {\n const { active, over } = event\n if (!over || active.id === over.id) return\n\n const oldIndex = orderedIds.indexOf(String(active.id))\n const newIndex = orderedIds.indexOf(String(over.id))\n if (oldIndex === -1 || newIndex === -1) return\n\n const newOrder = arrayMove(orderedIds, oldIndex, newIndex)\n table.setColumnOrder(newOrder)\n }\n\n return (\n <div className=\"relative\" ref={panelRef}>\n <Button\n variant=\"ghost\"\n size=\"sm\"\n className={className}\n data-slot=\"data-table-column-toggle\"\n onClick={() => setOpen((prev) => !prev)}\n aria-expanded={open}\n >\n <SlidersHorizontalIcon data-icon=\"inline-start\" />\n Columns\n </Button>\n\n {open && (\n <div\n className=\"absolute right-0 top-full z-50 mt-1 w-56 rounded-lg border bg-popover p-1 shadow-elevation-4\"\n role=\"group\"\n aria-label=\"Toggle and reorder columns\"\n >\n <DndContext\n sensors={sensors}\n collisionDetection={closestCenter}\n modifiers={[restrictToVerticalAxis]}\n onDragEnd={handleDragEnd}\n >\n <SortableContext items={orderedIds} strategy={verticalListSortingStrategy}>\n {(() => {\n const visibleCount = orderedIds.filter((colId) => allColumns.find((c) => c.id === colId)?.getIsVisible()).length\n return orderedIds.map((colId) => {\n const col = allColumns.find((c) => c.id === colId)\n if (!col) return null\n const isVisible = col.getIsVisible()\n const isLastVisible = isVisible && visibleCount <= 1\n return (\n <SortableColumnItem\n key={colId}\n id={colId}\n label={getLabel(colId)}\n visible={isVisible}\n onToggle={isLastVisible ? () => { } : () => col.toggleVisibility()}\n />\n )\n })\n })()}\n </SortableContext>\n </DndContext>\n </div>\n )}\n </div>\n )\n}\n\nexport { DataTableColumnToggle }\nexport type { DataTableColumnToggleProps }\n"],"names":["SortableColumnItem","id","label","visible","onToggle","attributes","listeners","setNodeRef","transform","transition","isDragging","useSortable","style","CSS","jsxs","cn","jsx","GripVerticalIcon","e","CheckIcon","DataTableColumnToggle","className","table","columnLabels","useDataTable","open","setOpen","React","panelRef","sensors","useSensors","useSensor","PointerSensor","KeyboardSensor","sortableKeyboardCoordinates","allColumns","col","stateOrder","orderedIds","c","handleClick","getLabel","colId","Button","prev","SlidersHorizontalIcon","DndContext","closestCenter","restrictToVerticalAxis","event","active","over","oldIndex","newIndex","newOrder","arrayMove","SortableContext","verticalListSortingStrategy","visibleCount","isVisible","isLastVisible"],"mappings":"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"}
@@ -1,2 +1,2 @@
1
- "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("react/jsx-runtime"),g=require("lucide-react"),f=require("radix-ui"),R=require("./data-table.cjs"),x=require("../button.cjs"),O=require("../input.cjs"),s=require("../select.cjs"),y=require("../../../lib/utils.cjs"),P={contains:"contains",equals:"equals",not_equals:"not equals",starts_with:"starts with",ends_with:"ends with",is_empty:"is empty",is_not_empty:"is not empty"},A=["is_empty","is_not_empty"],_=["contains","equals","not_equals","starts_with","ends_with","is_empty","is_not_empty"];function L(l,r,n){return r[l]??n?.columnDef?.meta?.label??(typeof n?.columnDef?.header=="string"?n.columnDef.header:void 0)??l}function E(l,r){const n=r?.[0]??"contains";return{id:crypto.randomUUID(),columnId:l,operator:n,value:""}}function I({className:l}){const{table:r,columnLabels:n,filters:o,setFilters:u,filterConfig:v,enableFiltering:F}=R.useDataTable();if(!F)return null;const j=r.getAllLeafColumns(),i=v.length>0?v:j.filter(t=>"accessorKey"in t.columnDef||"accessorFn"in t.columnDef).map(t=>({columnId:t.id})),b=i[0],N=b?.columnId??"";function S(){u([...o,E(N,b?.operators)])}function q(t){u(o.filter(m=>m.id!==t))}function h(t,m){u(o.map(c=>c.id===t?{...c,...m}:c))}function z(){u([])}const d=o.length;return e.jsxs(f.Popover.Root,{children:[e.jsx(f.Popover.Trigger,{asChild:!0,children:e.jsxs(x.Button,{type:"button",variant:"outline",size:"sm","data-slot":"data-table-filter",className:y.cn(l),"aria-label":d>0?`Filter (${d} active)`:"Filter",children:[e.jsx(g.ListFilterIcon,{className:"size-3.5"}),"Filter",d>0&&e.jsx("span",{className:"flex size-4 items-center justify-center rounded-full bg-primary text-[10px] font-medium text-primary-foreground",children:d})]})}),e.jsx(f.Popover.Portal,{children:e.jsx(f.Popover.Content,{"data-slot":"data-table-filter-panel",align:"end",sideOffset:4,className:y.cn("z-50 min-w-80 rounded-lg border bg-popover p-3 text-popover-foreground shadow-md outline-none","data-[state=open]:animate-in data-[state=closed]:animate-out","data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0","data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95","data-[side=bottom]:slide-in-from-top-2 data-[side=top]:slide-in-from-bottom-2"),children:e.jsxs("div",{className:"flex flex-col gap-2",children:[o.map(t=>{const c=i.find(a=>a.columnId===t.columnId)?.operators??_,T=A.includes(t.operator);return e.jsxs("div",{className:"flex items-center gap-2",children:[e.jsxs(s.Select,{value:t.columnId,onValueChange:a=>{const p=i.find(D=>D.columnId===a)?.operators??_,w=p.includes(t.operator)?t.operator:p[0]??"contains";h(t.id,{columnId:a,operator:w,value:""})},children:[e.jsx(s.SelectTrigger,{size:"sm",className:"w-36",children:e.jsx(s.SelectValue,{})}),e.jsx(s.SelectContent,{children:i.map(a=>{const C=j.find(p=>p.id===a.columnId);return e.jsx(s.SelectItem,{value:a.columnId,children:a.label??L(a.columnId,n,C)},a.columnId)})})]}),e.jsxs(s.Select,{value:t.operator,onValueChange:a=>h(t.id,{operator:a,value:""}),children:[e.jsx(s.SelectTrigger,{size:"sm",className:"w-32",children:e.jsx(s.SelectValue,{})}),e.jsx(s.SelectContent,{children:c.map(a=>e.jsx(s.SelectItem,{value:a,children:P[a]},a))})]}),T?e.jsx("div",{className:"h-8 w-40","aria-hidden":!0}):e.jsx(O.Input,{className:"w-40",placeholder:"Value…",value:t.value,onChange:a=>h(t.id,{value:a.target.value})}),e.jsx(x.Button,{type:"button",variant:"ghost",size:"icon",className:"size-8 shrink-0 text-muted-foreground hover:text-foreground",onClick:()=>q(t.id),"aria-label":"Remove filter",children:e.jsx(g.XIcon,{className:"size-3.5"})})]},t.id)}),e.jsxs("div",{className:"flex items-center gap-2",children:[e.jsxs(x.Button,{type:"button",variant:"outline",size:"sm",onClick:S,disabled:i.length===0,children:[e.jsx(g.PlusIcon,{className:"size-3.5"}),"Add filter"]}),o.length>0&&e.jsx(x.Button,{type:"button",variant:"ghost",size:"sm",className:"text-muted-foreground",onClick:z,children:"Clear all"})]})]})})})]})}I.displayName="DataTableFilter";exports.DataTableFilter=I;
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("react/jsx-runtime"),g=require("lucide-react"),f=require("radix-ui"),R=require("./data-table.cjs"),x=require("../button.cjs"),O=require("../input.cjs"),l=require("../select.cjs"),y=require("../../../lib/utils.cjs"),P={contains:"contains",equals:"equals",not_equals:"not equals",starts_with:"starts with",ends_with:"ends with",is_empty:"is empty",is_not_empty:"is not empty"},A=["is_empty","is_not_empty"],F=["contains","equals","not_equals","starts_with","ends_with","is_empty","is_not_empty"];function L(n,r,s){return r[n]??s?.columnDef?.meta?.label??(typeof s?.columnDef?.header=="string"?s.columnDef.header:void 0)??n}function E(n,r){const s=r?.[0]??"contains";return{id:crypto.randomUUID(),columnId:n,operator:s,value:""}}function _({className:n}){const{table:r,columnLabels:s,filters:o,setFilters:u,filterConfig:v,enableFiltering:I}=R.useDataTable();if(!I)return null;const b=r.getAllLeafColumns(),i=v.length>0?v:b.filter(t=>"accessorKey"in t.columnDef||"accessorFn"in t.columnDef).map(t=>({columnId:t.id})),j=i[0],N=j?.columnId??"";function S(){u([...o,E(N,j?.operators)])}function q(t){u(o.filter(m=>m.id!==t))}function h(t,m){u(o.map(c=>c.id===t?{...c,...m}:c))}function z(){u([])}const d=o.length;return e.jsxs(f.Popover.Root,{children:[e.jsx(f.Popover.Trigger,{asChild:!0,children:e.jsxs(x.Button,{type:"button",variant:"outline",size:"sm","data-slot":"data-table-filter",className:y.cn(n),"aria-label":d>0?`Filter (${d} active)`:"Filter",children:[e.jsx(g.ListFilterIcon,{className:"size-3.5"}),"Filter",d>0&&e.jsx("span",{className:"flex size-4 items-center justify-center rounded-full bg-primary text-[10px] font-medium text-primary-foreground",children:d})]})}),e.jsx(f.Popover.Portal,{children:e.jsx(f.Popover.Content,{"data-slot":"data-table-filter-panel","aria-label":"Filter conditions",align:"end",sideOffset:4,className:y.cn("z-50 min-w-80 rounded-lg border bg-popover p-3 text-popover-foreground shadow-elevation-4 outline-none","data-[state=open]:animate-in data-[state=closed]:animate-out","data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0","data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95","data-[side=bottom]:slide-in-from-top-2 data-[side=top]:slide-in-from-bottom-2"),children:e.jsxs("div",{className:"flex flex-col gap-2",children:[o.map(t=>{const c=i.find(a=>a.columnId===t.columnId)?.operators??F,T=A.includes(t.operator);return e.jsxs("div",{className:"flex items-center gap-2",children:[e.jsxs(l.Select,{value:t.columnId,onValueChange:a=>{const p=i.find(D=>D.columnId===a)?.operators??F,w=p.includes(t.operator)?t.operator:p[0]??"contains";h(t.id,{columnId:a,operator:w,value:""})},children:[e.jsx(l.SelectTrigger,{"aria-label":"Filter column",size:"sm",className:"w-36",children:e.jsx(l.SelectValue,{})}),e.jsx(l.SelectContent,{children:i.map(a=>{const C=b.find(p=>p.id===a.columnId);return e.jsx(l.SelectItem,{value:a.columnId,children:a.label??L(a.columnId,s,C)},a.columnId)})})]}),e.jsxs(l.Select,{value:t.operator,onValueChange:a=>h(t.id,{operator:a,value:""}),children:[e.jsx(l.SelectTrigger,{"aria-label":"Filter operator",size:"sm",className:"w-32",children:e.jsx(l.SelectValue,{})}),e.jsx(l.SelectContent,{children:c.map(a=>e.jsx(l.SelectItem,{value:a,children:P[a]},a))})]}),T?e.jsx("div",{className:"h-8 w-40","aria-hidden":!0}):e.jsx(O.Input,{className:"w-40",placeholder:"Value…",value:t.value,onChange:a=>h(t.id,{value:a.target.value})}),e.jsx(x.Button,{type:"button",variant:"ghost",size:"icon",className:"size-8 shrink-0 text-muted-foreground hover:text-foreground",onClick:()=>q(t.id),"aria-label":"Remove filter",children:e.jsx(g.XIcon,{className:"size-3.5"})})]},t.id)}),e.jsxs("div",{className:"flex items-center gap-2",children:[e.jsxs(x.Button,{type:"button",variant:"outline",size:"sm",onClick:S,disabled:i.length===0,children:[e.jsx(g.PlusIcon,{className:"size-3.5"}),"Add filter"]}),o.length>0&&e.jsx(x.Button,{type:"button",variant:"ghost",size:"sm",className:"text-muted-foreground",onClick:z,children:"Clear all"})]})]})})})]})}_.displayName="DataTableFilter";exports.DataTableFilter=_;
2
2
  //# sourceMappingURL=data-table-filter.cjs.map