@tetrascience-npm/tetrascience-react-ui 0.7.0-beta.129.1 → 0.7.0-beta.131.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.
- package/README.md +49 -0
- package/dist/ai/attachments.cjs +2 -0
- package/dist/ai/attachments.cjs.map +1 -0
- package/dist/ai/attachments.js +224 -0
- package/dist/ai/attachments.js.map +1 -0
- package/dist/ai/chain-of-thought.cjs +2 -0
- package/dist/ai/chain-of-thought.cjs.map +1 -0
- package/dist/ai/chain-of-thought.js +145 -0
- package/dist/ai/chain-of-thought.js.map +1 -0
- package/dist/ai/confirmation.cjs +2 -0
- package/dist/ai/confirmation.cjs.map +1 -0
- package/dist/ai/confirmation.js +109 -0
- package/dist/ai/confirmation.js.map +1 -0
- package/dist/ai/context.cjs +2 -0
- package/dist/ai/context.cjs.map +1 -0
- package/dist/ai/context.js +267 -0
- package/dist/ai/context.js.map +1 -0
- package/dist/ai/conversation.cjs +4 -0
- package/dist/ai/conversation.cjs.map +1 -0
- package/dist/ai/conversation.js +108 -0
- package/dist/ai/conversation.js.map +1 -0
- package/dist/ai/inline-citation.cjs +2 -0
- package/dist/ai/inline-citation.cjs.map +1 -0
- package/dist/ai/inline-citation.js +182 -0
- package/dist/ai/inline-citation.js.map +1 -0
- package/dist/ai/message.cjs +2 -0
- package/dist/ai/message.cjs.map +1 -0
- package/dist/ai/message.js +237 -0
- package/dist/ai/message.js.map +1 -0
- package/dist/ai/model-selector.cjs +2 -0
- package/dist/ai/model-selector.cjs.map +1 -0
- package/dist/ai/model-selector.js +77 -0
- package/dist/ai/model-selector.js.map +1 -0
- package/dist/ai/prompt-input.cjs +2 -0
- package/dist/ai/prompt-input.cjs.map +1 -0
- package/dist/ai/prompt-input.js +776 -0
- package/dist/ai/prompt-input.js.map +1 -0
- package/dist/ai/queue.cjs +2 -0
- package/dist/ai/queue.cjs.map +1 -0
- package/dist/ai/queue.js +209 -0
- package/dist/ai/queue.js.map +1 -0
- package/dist/ai/reasoning.cjs +2 -0
- package/dist/ai/reasoning.cjs.map +1 -0
- package/dist/ai/reasoning.js +129 -0
- package/dist/ai/reasoning.js.map +1 -0
- package/dist/ai/shimmer.cjs +2 -0
- package/dist/ai/shimmer.cjs.map +1 -0
- package/dist/ai/shimmer.js +49 -0
- package/dist/ai/shimmer.js.map +1 -0
- package/dist/ai/sources.cjs +2 -0
- package/dist/ai/sources.cjs.map +1 -0
- package/dist/ai/sources.js +54 -0
- package/dist/ai/sources.js.map +1 -0
- package/dist/ai/speech-input.cjs +2 -0
- package/dist/ai/speech-input.cjs.map +1 -0
- package/dist/ai/speech-input.js +123 -0
- package/dist/ai/speech-input.js.map +1 -0
- package/dist/ai/stream-status.cjs +2 -0
- package/dist/ai/stream-status.cjs.map +1 -0
- package/dist/ai/stream-status.js +108 -0
- package/dist/ai/stream-status.js.map +1 -0
- package/dist/ai/suggestion.cjs +2 -0
- package/dist/ai/suggestion.cjs.map +1 -0
- package/dist/ai/suggestion.js +38 -0
- package/dist/ai/suggestion.js.map +1 -0
- package/dist/ai/task.cjs +2 -0
- package/dist/ai/task.cjs.map +1 -0
- package/dist/ai/task.js +101 -0
- package/dist/ai/task.js.map +1 -0
- package/dist/ai/tool.cjs +2 -0
- package/dist/ai/tool.cjs.map +1 -0
- package/dist/ai/tool.js +139 -0
- package/dist/ai/tool.js.map +1 -0
- package/dist/charts/AreaPlot.cjs +2 -0
- package/dist/charts/AreaPlot.cjs.map +1 -0
- package/dist/charts/AreaPlot.js +5 -0
- package/dist/charts/AreaPlot.js.map +1 -0
- package/dist/charts/BarChart.cjs +2 -0
- package/dist/charts/BarChart.cjs.map +1 -0
- package/dist/charts/BarChart.js +5 -0
- package/dist/charts/BarChart.js.map +1 -0
- package/dist/charts/BoxPlot.cjs +2 -0
- package/dist/charts/BoxPlot.cjs.map +1 -0
- package/dist/charts/BoxPlot.js +5 -0
- package/dist/charts/BoxPlot.js.map +1 -0
- package/dist/charts/ChartTooltip.cjs +2 -0
- package/dist/charts/ChartTooltip.cjs.map +1 -0
- package/dist/charts/ChartTooltip.js +8 -0
- package/dist/charts/ChartTooltip.js.map +1 -0
- package/dist/charts/Chromatogram.cjs +2 -0
- package/dist/charts/Chromatogram.cjs.map +1 -0
- package/dist/charts/Chromatogram.js +5 -0
- package/dist/charts/Chromatogram.js.map +1 -0
- package/dist/charts/Electropherogram.cjs +2 -0
- package/dist/charts/Electropherogram.cjs.map +1 -0
- package/dist/charts/Electropherogram.js +5 -0
- package/dist/charts/Electropherogram.js.map +1 -0
- package/dist/charts/Histogram.cjs +2 -0
- package/dist/charts/Histogram.cjs.map +1 -0
- package/dist/charts/Histogram.js +5 -0
- package/dist/charts/Histogram.js.map +1 -0
- package/dist/charts/LinePlot.cjs +2 -0
- package/dist/charts/LinePlot.cjs.map +1 -0
- package/dist/charts/LinePlot.js +5 -0
- package/dist/charts/LinePlot.js.map +1 -0
- package/dist/charts/PieChart.cjs +2 -0
- package/dist/charts/PieChart.cjs.map +1 -0
- package/dist/charts/PieChart.js +5 -0
- package/dist/charts/PieChart.js.map +1 -0
- package/dist/charts/PlateMap.cjs +2 -0
- package/dist/charts/PlateMap.cjs.map +1 -0
- package/dist/charts/PlateMap.js +5 -0
- package/dist/charts/PlateMap.js.map +1 -0
- package/dist/charts/ScatterPlot.cjs +2 -0
- package/dist/charts/ScatterPlot.cjs.map +1 -0
- package/dist/charts/ScatterPlot.js +5 -0
- package/dist/charts/ScatterPlot.js.map +1 -0
- package/dist/charts/ScatterPlotInteractive.cjs +2 -0
- package/dist/charts/ScatterPlotInteractive.cjs.map +1 -0
- package/dist/charts/ScatterPlotInteractive.js +14 -0
- package/dist/charts/ScatterPlotInteractive.js.map +1 -0
- package/dist/charts/StackedChromatogram.cjs +2 -0
- package/dist/charts/StackedChromatogram.cjs.map +1 -0
- package/dist/charts/StackedChromatogram.js +7 -0
- package/dist/charts/StackedChromatogram.js.map +1 -0
- package/dist/components/ai/attachments.d.ts +54 -0
- package/dist/components/ai/chain-of-thought.d.ts +56 -0
- package/dist/components/ai/confirmation.d.ts +47 -0
- package/dist/components/ai/context.d.ts +40 -0
- package/dist/components/ai/conversation.d.ts +23 -0
- package/dist/components/ai/inline-citation.d.ts +38 -0
- package/dist/components/ai/message.d.ts +37 -0
- package/dist/components/ai/model-selector.d.ts +36 -0
- package/dist/components/ai/prompt-input.d.ts +158 -0
- package/dist/components/ai/queue.d.ts +72 -0
- package/dist/components/ai/reasoning.d.ts +26 -0
- package/dist/components/ai/shimmer.d.ts +17 -0
- package/dist/components/ai/sources.d.ts +12 -0
- package/dist/components/ai/speech-input.d.ts +54 -0
- package/dist/components/ai/stream-status.d.ts +66 -0
- package/dist/components/ai/streamdown-code-plugin.d.ts +2 -0
- package/dist/components/ai/streamdown-plugins.d.ts +2 -0
- package/dist/components/ai/suggestion.d.ts +9 -0
- package/dist/components/ai/task.d.ts +16 -0
- package/dist/components/ai/tool.d.ts +33 -0
- package/dist/components/ai/use-streamdown-plugins.d.ts +8 -0
- package/dist/components/charts/AreaPlot/AreaPlot.cjs +1 -1
- package/dist/components/charts/AreaPlot/AreaPlot.d.ts +39 -0
- package/dist/components/charts/AreaPlot/index.d.ts +2 -0
- package/dist/components/charts/BarChart/BarChart.cjs +1 -1
- package/dist/components/charts/BarChart/BarChart.d.ts +44 -0
- package/dist/components/charts/BarChart/index.d.ts +2 -0
- package/dist/components/charts/BoxPlot/BoxPlot.cjs +1 -1
- package/dist/components/charts/BoxPlot/BoxPlot.d.ts +33 -0
- package/dist/components/charts/BoxPlot/index.d.ts +2 -0
- package/dist/components/charts/ChartTooltip/ChartTooltip.d.ts +71 -0
- package/dist/components/charts/ChartTooltip/index.d.ts +2 -0
- package/dist/components/charts/ChartTooltip/lines.d.ts +54 -0
- package/dist/components/charts/Chromatogram/Chromatogram.d.ts +5 -0
- package/dist/components/charts/Chromatogram/annotations.cjs +1 -1
- package/dist/components/charts/Chromatogram/annotations.d.ts +50 -0
- package/dist/components/charts/Chromatogram/boundaryMarkers.cjs +1 -1
- package/dist/components/charts/Chromatogram/boundaryMarkers.d.ts +14 -0
- package/dist/components/charts/Chromatogram/constants.d.ts +46 -0
- package/dist/components/charts/Chromatogram/dataProcessing.d.ts +49 -0
- package/dist/components/charts/Chromatogram/index.d.ts +2 -0
- package/dist/components/charts/Chromatogram/peakDetection.d.ts +33 -0
- package/dist/components/charts/Chromatogram/plotBuilder.d.ts +58 -0
- package/dist/components/charts/Chromatogram/regionOverlays.cjs +1 -1
- package/dist/components/charts/Chromatogram/regionOverlays.d.ts +9 -0
- package/dist/components/charts/Chromatogram/types.d.ts +258 -0
- package/dist/components/charts/Electropherogram/Electropherogram.cjs +1 -1
- package/dist/components/charts/Electropherogram/Electropherogram.d.ts +22 -0
- package/dist/components/charts/Electropherogram/index.d.ts +2 -0
- package/dist/components/charts/Histogram/Histogram.cjs +1 -1
- package/dist/components/charts/Histogram/Histogram.d.ts +36 -0
- package/dist/components/charts/Histogram/index.d.ts +2 -0
- package/dist/components/charts/LinePlot/LinePlot.cjs +1 -1
- package/dist/components/charts/LinePlot/LinePlot.d.ts +45 -0
- package/dist/components/charts/LinePlot/index.d.ts +2 -0
- package/dist/components/charts/PieChart/PieChart.d.ts +20 -0
- package/dist/components/charts/PieChart/index.d.ts +2 -0
- package/dist/components/charts/PlateMap/PlateMap.cjs +1 -1
- package/dist/components/charts/PlateMap/PlateMap.cjs.map +1 -1
- package/dist/components/charts/PlateMap/PlateMap.d.ts +29 -0
- package/dist/components/charts/PlateMap/PlateMap.js +1 -1
- package/dist/components/charts/PlateMap/constants.d.ts +75 -0
- package/dist/components/charts/PlateMap/index.d.ts +2 -0
- package/dist/components/charts/PlateMap/types.d.ts +322 -0
- package/dist/components/charts/PlateMap/utils.d.ts +133 -0
- package/dist/components/charts/ScatterPlot/ScatterPlot.cjs +1 -1
- package/dist/components/charts/ScatterPlot/ScatterPlot.d.ts +43 -0
- package/dist/components/charts/ScatterPlot/index.d.ts +2 -0
- package/dist/components/charts/ScatterPlotInteractive/ScatterPlotInteractive.d.ts +25 -0
- package/dist/components/charts/ScatterPlotInteractive/constants.d.ts +50 -0
- package/dist/components/charts/ScatterPlotInteractive/index.d.ts +3 -0
- package/dist/components/charts/ScatterPlotInteractive/types.d.ts +226 -0
- package/dist/components/charts/ScatterPlotInteractive/utils.d.ts +72 -0
- package/dist/components/charts/StackedChromatogram/StackedChromatogram.d.ts +3 -0
- package/dist/components/charts/StackedChromatogram/index.d.ts +3 -0
- package/dist/components/charts/StackedChromatogram/transforms.d.ts +9 -0
- package/dist/components/charts/StackedChromatogram/types.d.ts +26 -0
- package/dist/components/charts/plotly-loader.cjs +1 -1
- package/dist/components/charts/plotly-loader.cjs.map +1 -1
- package/dist/components/charts/plotly-loader.d.ts +29 -0
- package/dist/components/composed/AssistantLayout/AssistantLayout.cjs +1 -1
- package/dist/components/composed/AssistantLayout/AssistantLayout.cjs.map +1 -1
- package/dist/components/composed/AssistantLayout/AssistantLayout.d.ts +63 -0
- package/dist/components/composed/AssistantLayout/AssistantLayout.js +2 -2
- package/dist/components/composed/AssistantLayout/dockLayout.d.ts +15 -0
- package/dist/components/composed/AssistantLayout/index.d.ts +3 -0
- package/dist/components/composed/Chat/Chat.cjs +1 -1
- package/dist/components/composed/Chat/Chat.cjs.map +1 -1
- package/dist/components/composed/Chat/Chat.d.ts +35 -0
- package/dist/components/composed/Chat/Chat.js +7 -7
- package/dist/components/composed/Chat/index.d.ts +2 -0
- package/dist/components/composed/ConfirmDialog/ConfirmDialog.cjs +1 -1
- package/dist/components/composed/ConfirmDialog/ConfirmDialog.cjs.map +1 -1
- package/dist/components/composed/ConfirmDialog/ConfirmDialog.d.ts +23 -0
- package/dist/components/composed/ConfirmDialog/ConfirmDialog.js +4 -4
- package/dist/components/composed/ConfirmDialog/index.d.ts +1 -0
- package/dist/components/composed/DataAppShell/CollapseButton.cjs +1 -1
- package/dist/components/composed/DataAppShell/CollapseButton.cjs.map +1 -1
- package/dist/components/composed/DataAppShell/CollapseButton.d.ts +23 -0
- package/dist/components/composed/DataAppShell/CollapseButton.js +2 -2
- package/dist/components/composed/DataAppShell/DataAppShell.cjs +1 -1
- package/dist/components/composed/DataAppShell/DataAppShell.cjs.map +1 -1
- package/dist/components/composed/DataAppShell/DataAppShell.d.ts +88 -0
- package/dist/components/composed/DataAppShell/DataAppShell.js +5 -5
- package/dist/components/composed/DataAppShell/PrimaryNav.cjs +1 -1
- package/dist/components/composed/DataAppShell/PrimaryNav.cjs.map +1 -1
- package/dist/components/composed/DataAppShell/PrimaryNav.d.ts +64 -0
- package/dist/components/composed/DataAppShell/PrimaryNav.js +2 -2
- package/dist/components/composed/DataAppShell/RightPanel.cjs +1 -1
- package/dist/components/composed/DataAppShell/RightPanel.cjs.map +1 -1
- package/dist/components/composed/DataAppShell/RightPanel.d.ts +95 -0
- package/dist/components/composed/DataAppShell/RightPanel.js +2 -2
- package/dist/components/composed/DataAppShell/SecondaryNav.cjs +1 -1
- package/dist/components/composed/DataAppShell/SecondaryNav.cjs.map +1 -1
- package/dist/components/composed/DataAppShell/SecondaryNav.d.ts +63 -0
- package/dist/components/composed/DataAppShell/SecondaryNav.js +3 -3
- package/dist/components/composed/DataAppShell/ShellContext.d.ts +20 -0
- package/dist/components/composed/DataAppShell/index.d.ts +12 -0
- package/dist/components/composed/EmptyState/EmptyState.d.ts +12 -0
- package/dist/components/composed/EmptyState/index.d.ts +2 -0
- package/dist/components/composed/FormPatterns/FormSection.cjs +1 -1
- package/dist/components/composed/FormPatterns/FormSection.cjs.map +1 -1
- package/dist/components/composed/FormPatterns/FormSection.d.ts +7 -0
- package/dist/components/composed/FormPatterns/FormSection.js +2 -2
- package/dist/components/composed/FormPatterns/index.d.ts +1 -0
- package/dist/components/composed/MoleculeStructure/MoleculeStructure.cjs +1 -1
- package/dist/components/composed/MoleculeStructure/MoleculeStructure.cjs.map +1 -1
- package/dist/components/composed/MoleculeStructure/MoleculeStructure.d.ts +43 -0
- package/dist/components/composed/MoleculeStructure/MoleculeStructure.js +1 -1
- package/dist/components/composed/MoleculeStructure/index.d.ts +3 -0
- package/dist/components/composed/MoleculeStructure/rdkit-loader.cjs +1 -1
- package/dist/components/composed/MoleculeStructure/rdkit-loader.cjs.map +1 -1
- package/dist/components/composed/MoleculeStructure/rdkit-loader.d.ts +104 -0
- package/dist/components/composed/MoleculeStructure/use-rdkit.d.ts +29 -0
- package/dist/components/composed/PlateMapEditor/ManifestFilterPopover.cjs +1 -1
- package/dist/components/composed/PlateMapEditor/ManifestFilterPopover.cjs.map +1 -1
- package/dist/components/composed/PlateMapEditor/ManifestFilterPopover.d.ts +12 -0
- package/dist/components/composed/PlateMapEditor/ManifestFilterPopover.js +4 -4
- package/dist/components/composed/PlateMapEditor/PlateMapActionsMenu.cjs +1 -1
- package/dist/components/composed/PlateMapEditor/PlateMapActionsMenu.cjs.map +1 -1
- package/dist/components/composed/PlateMapEditor/PlateMapActionsMenu.d.ts +22 -0
- package/dist/components/composed/PlateMapEditor/PlateMapActionsMenu.js +2 -2
- package/dist/components/composed/PlateMapEditor/PlateMapEditor.cjs +1 -1
- package/dist/components/composed/PlateMapEditor/PlateMapEditor.cjs.map +1 -1
- package/dist/components/composed/PlateMapEditor/PlateMapEditor.d.ts +106 -0
- package/dist/components/composed/PlateMapEditor/PlateMapEditor.js +2 -2
- package/dist/components/composed/PlateMapEditor/PlateMapForm.cjs +1 -1
- package/dist/components/composed/PlateMapEditor/PlateMapForm.cjs.map +1 -1
- package/dist/components/composed/PlateMapEditor/PlateMapForm.d.ts +30 -0
- package/dist/components/composed/PlateMapEditor/PlateMapForm.js +1 -1
- package/dist/components/composed/PlateMapEditor/PlateMapGrid.cjs +1 -1
- package/dist/components/composed/PlateMapEditor/PlateMapGrid.cjs.map +1 -1
- package/dist/components/composed/PlateMapEditor/PlateMapGrid.d.ts +64 -0
- package/dist/components/composed/PlateMapEditor/PlateMapGrid.js +1 -1
- package/dist/components/composed/PlateMapEditor/PlateMapManifest.d.ts +29 -0
- package/dist/components/composed/PlateMapEditor/PlateMapPlateSelector.cjs +1 -1
- package/dist/components/composed/PlateMapEditor/PlateMapPlateSelector.cjs.map +1 -1
- package/dist/components/composed/PlateMapEditor/PlateMapPlateSelector.d.ts +19 -0
- package/dist/components/composed/PlateMapEditor/PlateMapPlateSelector.js +4 -4
- package/dist/components/composed/PlateMapEditor/PlatePaintGrid.d.ts +73 -0
- package/dist/components/composed/PlateMapEditor/PlateZoomControl.cjs +1 -1
- package/dist/components/composed/PlateMapEditor/PlateZoomControl.cjs.map +1 -1
- package/dist/components/composed/PlateMapEditor/PlateZoomControl.d.ts +12 -0
- package/dist/components/composed/PlateMapEditor/PlateZoomControl.js +2 -2
- package/dist/components/composed/PlateMapEditor/TemplateIOPanel.cjs +1 -1
- package/dist/components/composed/PlateMapEditor/TemplateIOPanel.cjs.map +1 -1
- package/dist/components/composed/PlateMapEditor/TemplateIOPanel.d.ts +13 -0
- package/dist/components/composed/PlateMapEditor/TemplateIOPanel.js +4 -4
- package/dist/components/composed/PlateMapEditor/WellLegend.cjs +1 -1
- package/dist/components/composed/PlateMapEditor/WellLegend.cjs.map +1 -1
- package/dist/components/composed/PlateMapEditor/WellLegend.d.ts +21 -0
- package/dist/components/composed/PlateMapEditor/WellLegend.js +2 -2
- package/dist/components/composed/PlateMapEditor/WellManifestTable.cjs +1 -1
- package/dist/components/composed/PlateMapEditor/WellManifestTable.cjs.map +1 -1
- package/dist/components/composed/PlateMapEditor/WellManifestTable.d.ts +46 -0
- package/dist/components/composed/PlateMapEditor/WellManifestTable.js +9 -9
- package/dist/components/composed/PlateMapEditor/WellMetadataForm.cjs +1 -1
- package/dist/components/composed/PlateMapEditor/WellMetadataForm.cjs.map +1 -1
- package/dist/components/composed/PlateMapEditor/WellMetadataForm.d.ts +17 -0
- package/dist/components/composed/PlateMapEditor/WellMetadataForm.js +7 -7
- package/dist/components/composed/PlateMapEditor/autoFill.d.ts +26 -0
- package/dist/components/composed/PlateMapEditor/csvPlateTriage.d.ts +4 -0
- package/dist/components/composed/PlateMapEditor/helpers.d.ts +2 -0
- package/dist/components/composed/PlateMapEditor/index.d.ts +31 -0
- package/dist/components/composed/PlateMapEditor/types.d.ts +137 -0
- package/dist/components/composed/PlateMapEditor/wellGrid.d.ts +12 -0
- package/dist/components/composed/ProcessFlow/ProcessFlow.d.ts +32 -0
- package/dist/components/composed/ProcessFlow/ProcessFlow.utils.d.ts +86 -0
- package/dist/components/composed/ProcessFlow/index.d.ts +1 -0
- package/dist/components/composed/RichListItem/RichListItem.cjs +1 -1
- package/dist/components/composed/RichListItem/RichListItem.cjs.map +1 -1
- package/dist/components/composed/RichListItem/RichListItem.d.ts +22 -0
- package/dist/components/composed/RichListItem/RichListItem.js +2 -2
- package/dist/components/composed/RichListItem/index.d.ts +2 -0
- package/dist/components/composed/StatCard/StatCard.cjs +1 -1
- package/dist/components/composed/StatCard/StatCard.cjs.map +1 -1
- package/dist/components/composed/StatCard/StatCard.d.ts +11 -0
- package/dist/components/composed/StatCard/StatCard.js +1 -1
- package/dist/components/composed/StatCard/index.d.ts +1 -0
- package/dist/components/composed/TdpSearch/TdpSearch.cjs +1 -1
- package/dist/components/composed/TdpSearch/TdpSearch.cjs.map +1 -1
- package/dist/components/composed/TdpSearch/TdpSearch.d.ts +21 -0
- package/dist/components/composed/TdpSearch/TdpSearch.js +14 -13
- package/dist/components/composed/TdpSearch/TdpSearch.mocks.d.ts +5 -0
- package/dist/components/composed/TdpSearch/components/DefaultFilters.cjs +1 -1
- package/dist/components/composed/TdpSearch/components/DefaultFilters.cjs.map +1 -1
- package/dist/components/composed/TdpSearch/components/DefaultFilters.d.ts +3 -0
- package/dist/components/composed/TdpSearch/components/DefaultFilters.js +1 -1
- package/dist/components/composed/TdpSearch/components/DefaultResults.cjs +1 -1
- package/dist/components/composed/TdpSearch/components/DefaultResults.cjs.map +1 -1
- package/dist/components/composed/TdpSearch/components/DefaultResults.d.ts +3 -0
- package/dist/components/composed/TdpSearch/components/DefaultResults.js +2 -2
- package/dist/components/composed/TdpSearch/components/DefaultSearchBar.cjs +1 -1
- package/dist/components/composed/TdpSearch/components/DefaultSearchBar.cjs.map +1 -1
- package/dist/components/composed/TdpSearch/components/DefaultSearchBar.d.ts +3 -0
- package/dist/components/composed/TdpSearch/components/DefaultSearchBar.js +2 -2
- package/dist/components/composed/TdpSearch/constants.d.ts +3 -0
- package/dist/components/composed/TdpSearch/hooks/useSearch.d.ts +2 -0
- package/dist/components/composed/TdpSearch/hooks/useTdpCredentials.d.ts +14 -0
- package/dist/components/composed/TdpSearch/index.d.ts +3 -0
- package/dist/components/composed/TdpSearch/types.d.ts +128 -0
- package/dist/components/composed/TdpSearch/utils.d.ts +3 -0
- package/dist/components/composed/TopBar/TopBar.d.ts +25 -0
- package/dist/components/composed/TopBar/index.d.ts +2 -0
- package/dist/components/composed/UserMenu/UserMenu.cjs +1 -1
- package/dist/components/composed/UserMenu/UserMenu.cjs.map +1 -1
- package/dist/components/composed/UserMenu/UserMenu.d.ts +53 -0
- package/dist/components/composed/UserMenu/UserMenu.js +2 -2
- package/dist/components/composed/UserMenu/index.d.ts +2 -0
- package/dist/components/composed/tdp-link.d.ts +110 -0
- package/dist/components/composed/tdp-url.d.ts +68 -0
- package/dist/components/ui/accordion.d.ts +7 -0
- package/dist/components/ui/alert-dialog.d.ts +18 -0
- package/dist/components/ui/alert.d.ts +10 -0
- package/dist/components/ui/aspect-ratio.d.ts +3 -0
- package/dist/components/ui/avatar.d.ts +11 -0
- package/dist/components/ui/badge.d.ts +9 -0
- package/dist/components/ui/banner.d.ts +19 -0
- package/dist/components/ui/breadcrumb.d.ts +11 -0
- package/dist/components/ui/button-group.d.ts +11 -0
- package/dist/components/ui/button.d.ts +10 -0
- package/dist/components/ui/calendar.d.ts +10 -0
- package/dist/components/ui/card.d.ts +11 -0
- package/dist/components/ui/carousel.d.ts +28 -0
- package/dist/components/ui/checkbox.d.ts +4 -0
- package/dist/components/ui/code-block.d.ts +45 -0
- package/dist/components/ui/code-editor.d.ts +18 -0
- package/dist/components/ui/collapsible.d.ts +5 -0
- package/dist/components/ui/combobox.d.ts +24 -0
- package/dist/components/ui/command.d.ts +18 -0
- package/dist/components/ui/context-menu.d.ts +31 -0
- package/dist/components/ui/data-table/data-table-column-toggle.cjs +1 -1
- package/dist/components/ui/data-table/data-table-column-toggle.cjs.map +1 -1
- package/dist/components/ui/data-table/data-table-column-toggle.d.ts +6 -0
- package/dist/components/ui/data-table/data-table-column-toggle.js +1 -1
- package/dist/components/ui/data-table/data-table-filter.cjs +1 -1
- package/dist/components/ui/data-table/data-table-filter.cjs.map +1 -1
- package/dist/components/ui/data-table/data-table-filter.d.ts +9 -0
- package/dist/components/ui/data-table/data-table-filter.js +3 -3
- package/dist/components/ui/data-table/data-table-group.cjs +1 -1
- package/dist/components/ui/data-table/data-table-group.cjs.map +1 -1
- package/dist/components/ui/data-table/data-table-group.d.ts +9 -0
- package/dist/components/ui/data-table/data-table-group.js +2 -2
- package/dist/components/ui/data-table/data-table-pagination.cjs +1 -1
- package/dist/components/ui/data-table/data-table-pagination.cjs.map +1 -1
- package/dist/components/ui/data-table/data-table-pagination.d.ts +7 -0
- package/dist/components/ui/data-table/data-table-pagination.js +2 -2
- package/dist/components/ui/data-table/data-table.cjs +1 -1
- package/dist/components/ui/data-table/data-table.cjs.map +1 -1
- package/dist/components/ui/data-table/data-table.d.ts +82 -0
- package/dist/components/ui/data-table/data-table.js +1 -1
- package/dist/components/ui/data-table/index.d.ts +5 -0
- package/dist/components/ui/dialog.d.ts +18 -0
- package/dist/components/ui/dropdown-menu.d.ts +29 -0
- package/dist/components/ui/field.d.ts +24 -0
- package/dist/components/ui/hover-card.d.ts +6 -0
- package/dist/components/ui/input-group.d.ts +16 -0
- package/dist/components/ui/input.d.ts +3 -0
- package/dist/components/ui/item.d.ts +23 -0
- package/dist/components/ui/kbd.d.ts +3 -0
- package/dist/components/ui/label.d.ts +4 -0
- package/dist/components/ui/menubar.d.ts +30 -0
- package/dist/components/ui/navigation-menu.d.ts +14 -0
- package/dist/components/ui/popover.d.ts +7 -0
- package/dist/components/ui/progress.d.ts +4 -0
- package/dist/components/ui/radio-group.d.ts +5 -0
- package/dist/components/ui/resizable.d.ts +25 -0
- package/dist/components/ui/scroll-area.d.ts +5 -0
- package/dist/components/ui/select.d.ts +15 -0
- package/dist/components/ui/separator.d.ts +4 -0
- package/dist/components/ui/sheet.d.ts +14 -0
- package/dist/components/ui/sidebar.d.ts +69 -0
- package/dist/components/ui/skeleton.d.ts +2 -0
- package/dist/components/ui/slider.d.ts +4 -0
- package/dist/components/ui/snippet.d.ts +18 -0
- package/dist/components/ui/sonner.d.ts +3 -0
- package/dist/components/ui/spinner.d.ts +6 -0
- package/dist/components/ui/switch.d.ts +6 -0
- package/dist/components/ui/table.d.ts +22 -0
- package/dist/components/ui/tabs.d.ts +11 -0
- package/dist/components/ui/tetra-molecule-icon.d.ts +11 -0
- package/dist/components/ui/tetrascience-icon.d.ts +7 -0
- package/dist/components/ui/textarea.d.ts +3 -0
- package/dist/components/ui/toggle-group.d.ts +10 -0
- package/dist/components/ui/toggle.d.ts +9 -0
- package/dist/components/ui/tooltip.d.ts +7 -0
- package/dist/composed/AssistantLayout.cjs +2 -0
- package/dist/composed/AssistantLayout.cjs.map +1 -0
- package/dist/composed/AssistantLayout.js +10 -0
- package/dist/composed/AssistantLayout.js.map +1 -0
- package/dist/composed/Chat.cjs +2 -0
- package/dist/composed/Chat.cjs.map +1 -0
- package/dist/composed/Chat.js +5 -0
- package/dist/composed/Chat.js.map +1 -0
- package/dist/composed/ConfirmDialog.cjs +2 -0
- package/dist/composed/ConfirmDialog.cjs.map +1 -0
- package/dist/composed/ConfirmDialog.js +5 -0
- package/dist/composed/ConfirmDialog.js.map +1 -0
- package/dist/composed/DataAppShell.cjs +2 -0
- package/dist/composed/DataAppShell.cjs.map +1 -0
- package/dist/composed/DataAppShell.js +22 -0
- package/dist/composed/DataAppShell.js.map +1 -0
- package/dist/composed/EmptyState.cjs +2 -0
- package/dist/composed/EmptyState.cjs.map +1 -0
- package/dist/composed/EmptyState.js +5 -0
- package/dist/composed/EmptyState.js.map +1 -0
- package/dist/composed/FormPatterns.cjs +2 -0
- package/dist/composed/FormPatterns.cjs.map +1 -0
- package/dist/composed/FormPatterns.js +5 -0
- package/dist/composed/FormPatterns.js.map +1 -0
- package/dist/composed/MoleculeStructure.cjs +2 -0
- package/dist/composed/MoleculeStructure.cjs.map +1 -0
- package/dist/composed/MoleculeStructure.js +11 -0
- package/dist/composed/MoleculeStructure.js.map +1 -0
- package/dist/composed/PlateMapEditor.cjs +2 -0
- package/dist/composed/PlateMapEditor.cjs.map +1 -0
- package/dist/composed/PlateMapEditor.js +45 -0
- package/dist/composed/PlateMapEditor.js.map +1 -0
- package/dist/composed/ProcessFlow.cjs +2 -0
- package/dist/composed/ProcessFlow.cjs.map +1 -0
- package/dist/composed/ProcessFlow.js +7 -0
- package/dist/composed/ProcessFlow.js.map +1 -0
- package/dist/composed/RichListItem.cjs +2 -0
- package/dist/composed/RichListItem.cjs.map +1 -0
- package/dist/composed/RichListItem.js +6 -0
- package/dist/composed/RichListItem.js.map +1 -0
- package/dist/composed/StatCard.cjs +2 -0
- package/dist/composed/StatCard.cjs.map +1 -0
- package/dist/composed/StatCard.js +5 -0
- package/dist/composed/StatCard.js.map +1 -0
- package/dist/composed/TdpSearch.cjs +2 -0
- package/dist/composed/TdpSearch.cjs.map +1 -0
- package/dist/composed/TdpSearch.js +8 -0
- package/dist/composed/TdpSearch.js.map +1 -0
- package/dist/composed/TopBar.cjs +2 -0
- package/dist/composed/TopBar.cjs.map +1 -0
- package/dist/composed/TopBar.js +6 -0
- package/dist/composed/TopBar.js.map +1 -0
- package/dist/composed/UserMenu.cjs +2 -0
- package/dist/composed/UserMenu.cjs.map +1 -0
- package/dist/composed/UserMenu.js +7 -0
- package/dist/composed/UserMenu.js.map +1 -0
- package/dist/composed/tdp-link.cjs +2 -0
- package/dist/composed/tdp-link.cjs.map +1 -0
- package/dist/composed/tdp-link.js.map +1 -0
- package/dist/composed/tdp-url.cjs.map +1 -0
- package/dist/composed/tdp-url.js.map +1 -0
- package/dist/hooks/use-code-editor-theme.d.ts +34 -0
- package/dist/hooks/use-element-size.d.ts +25 -0
- package/dist/hooks/use-is-dark.d.ts +12 -0
- package/dist/hooks/use-mobile.d.ts +1 -0
- package/dist/hooks/use-plotly-theme.d.ts +49 -0
- package/dist/index.cjs +1 -1
- package/dist/index.css +1 -1
- package/dist/index.d.ts +102 -5448
- package/dist/index.js +72 -72
- package/dist/jest-setup.cjs +4 -0
- package/dist/jest-setup.cjs.map +1 -0
- package/dist/jest-setup.d.ts +106 -0
- package/dist/jest-setup.js +218 -0
- package/dist/jest-setup.js.map +1 -0
- package/dist/lib/shiki.cjs +1 -1
- package/dist/lib/shiki.cjs.map +1 -1
- package/dist/lib/shiki.d.ts +32 -0
- package/dist/lib/utils.d.ts +2 -0
- package/dist/server/auth/JwtTokenManager.cjs +1 -1
- package/dist/server/auth/JwtTokenManager.cjs.map +1 -1
- package/dist/server/auth/JwtTokenManager.d.ts +113 -0
- package/dist/server/auth/JwtTokenManager.js +44 -21
- package/dist/server/auth/JwtTokenManager.js.map +1 -1
- package/dist/server/auth/index.d.ts +5 -0
- package/dist/server/index.d.ts +8 -0
- package/dist/server/providers/AthenaProvider.cjs +1 -1
- package/dist/server/providers/AthenaProvider.cjs.map +1 -1
- package/dist/server/providers/AthenaProvider.d.ts +75 -0
- package/dist/server/providers/DatabricksProvider.cjs +1 -1
- package/dist/server/providers/DatabricksProvider.cjs.map +1 -1
- package/dist/server/providers/DatabricksProvider.d.ts +38 -0
- package/dist/server/providers/SnowflakeProvider.cjs +1 -1
- package/dist/server/providers/SnowflakeProvider.cjs.map +1 -1
- package/dist/server/providers/SnowflakeProvider.d.ts +36 -0
- package/dist/server/providers/buildProvider.d.ts +39 -0
- package/dist/server/providers/entries/athena.d.ts +24 -0
- package/dist/server/providers/entries/databricks.d.ts +25 -0
- package/dist/server/providers/entries/snowflake.d.ts +25 -0
- package/dist/server/providers/exceptions.d.ts +36 -0
- package/dist/server/providers/getProviderConfigurations.d.ts +45 -0
- package/dist/server/providers/index.d.ts +31 -0
- package/dist/server/providers/providerDiscovery.d.ts +81 -0
- package/dist/server/providers/types.d.ts +145 -0
- package/dist/server/search/TdpSearchManager.d.ts +40 -0
- package/dist/server/search/index.d.ts +5 -0
- package/dist/server.d.ts +17 -540
- package/dist/ui/accordion.cjs +2 -0
- package/dist/ui/accordion.cjs.map +1 -0
- package/dist/ui/accordion.js +83 -0
- package/dist/ui/accordion.js.map +1 -0
- package/dist/ui/alert-dialog.cjs +2 -0
- package/dist/ui/alert-dialog.cjs.map +1 -0
- package/dist/ui/alert-dialog.js +181 -0
- package/dist/ui/alert-dialog.js.map +1 -0
- package/dist/ui/alert.cjs +2 -0
- package/dist/ui/alert.cjs.map +1 -0
- package/dist/ui/alert.js +81 -0
- package/dist/ui/alert.js.map +1 -0
- package/dist/ui/aspect-ratio.cjs.map +1 -0
- package/dist/ui/aspect-ratio.js.map +1 -0
- package/dist/ui/avatar.cjs +2 -0
- package/dist/ui/avatar.cjs.map +1 -0
- package/dist/ui/avatar.js +107 -0
- package/dist/ui/avatar.js.map +1 -0
- package/dist/ui/badge.cjs +2 -0
- package/dist/ui/badge.cjs.map +1 -0
- package/dist/ui/badge.js +47 -0
- package/dist/ui/badge.js.map +1 -0
- package/dist/ui/banner.cjs +2 -0
- package/dist/ui/banner.cjs.map +1 -0
- package/dist/ui/banner.js +80 -0
- package/dist/ui/banner.js.map +1 -0
- package/dist/ui/breadcrumb.cjs +2 -0
- package/dist/ui/breadcrumb.cjs.map +1 -0
- package/dist/ui/breadcrumb.js +118 -0
- package/dist/ui/breadcrumb.js.map +1 -0
- package/dist/ui/button-group.cjs +2 -0
- package/dist/ui/button-group.cjs.map +1 -0
- package/dist/ui/button-group.js +77 -0
- package/dist/ui/button-group.js.map +1 -0
- package/dist/ui/button.cjs +2 -0
- package/dist/ui/button.cjs.map +1 -0
- package/dist/ui/button.js +57 -0
- package/dist/ui/button.js.map +1 -0
- package/dist/ui/calendar.cjs +2 -0
- package/dist/ui/calendar.cjs.map +1 -0
- package/dist/ui/calendar.js +174 -0
- package/dist/ui/calendar.js.map +1 -0
- package/dist/ui/card.cjs +2 -0
- package/dist/ui/card.cjs.map +1 -0
- package/dist/ui/card.js +102 -0
- package/dist/ui/card.js.map +1 -0
- package/dist/ui/carousel.cjs +2 -0
- package/dist/ui/carousel.cjs.map +1 -0
- package/dist/ui/carousel.js +179 -0
- package/dist/ui/carousel.js.map +1 -0
- package/dist/ui/checkbox.cjs +2 -0
- package/dist/ui/checkbox.cjs.map +1 -0
- package/dist/ui/checkbox.js +35 -0
- package/dist/ui/checkbox.js.map +1 -0
- package/dist/ui/code-block.cjs +4 -0
- package/dist/ui/code-block.cjs.map +1 -0
- package/dist/ui/code-block.js +324 -0
- package/dist/ui/code-block.js.map +1 -0
- package/dist/ui/code-editor.cjs +2 -0
- package/dist/ui/code-editor.cjs.map +1 -0
- package/dist/ui/code-editor.js +106 -0
- package/dist/ui/code-editor.js.map +1 -0
- package/dist/ui/collapsible.cjs.map +1 -0
- package/dist/ui/collapsible.js.map +1 -0
- package/dist/ui/combobox.cjs +2 -0
- package/dist/ui/combobox.cjs.map +1 -0
- package/dist/ui/combobox.js +285 -0
- package/dist/ui/combobox.js.map +1 -0
- package/dist/ui/command.cjs +2 -0
- package/dist/ui/command.cjs.map +1 -0
- package/dist/ui/command.js +178 -0
- package/dist/ui/command.js.map +1 -0
- package/dist/ui/context-menu.cjs +2 -0
- package/dist/ui/context-menu.cjs.map +1 -0
- package/dist/ui/context-menu.js +236 -0
- package/dist/ui/context-menu.js.map +1 -0
- package/dist/ui/data-table.cjs +2 -0
- package/dist/ui/data-table.cjs.map +1 -0
- package/dist/ui/data-table.js +16 -0
- package/dist/ui/data-table.js.map +1 -0
- package/dist/ui/dialog.cjs +2 -0
- package/dist/ui/dialog.cjs.map +1 -0
- package/dist/ui/dialog.js +165 -0
- package/dist/ui/dialog.js.map +1 -0
- package/dist/ui/dropdown-menu.cjs +2 -0
- package/dist/ui/dropdown-menu.cjs.map +1 -0
- package/dist/ui/dropdown-menu.js +260 -0
- package/dist/ui/dropdown-menu.js.map +1 -0
- package/dist/ui/field.cjs +2 -0
- package/dist/ui/field.cjs.map +1 -0
- package/dist/ui/field.js +210 -0
- package/dist/ui/field.js.map +1 -0
- package/dist/ui/hover-card.cjs +2 -0
- package/dist/ui/hover-card.cjs.map +1 -0
- package/dist/ui/hover-card.js +39 -0
- package/dist/ui/hover-card.js.map +1 -0
- package/dist/ui/input-group.cjs +2 -0
- package/dist/ui/input-group.cjs.map +1 -0
- package/dist/ui/input-group.js +145 -0
- package/dist/ui/input-group.js.map +1 -0
- package/dist/ui/input.cjs +2 -0
- package/dist/ui/input.cjs.map +1 -0
- package/dist/ui/input.js +20 -0
- package/dist/ui/input.js.map +1 -0
- package/dist/ui/item.cjs +2 -0
- package/dist/ui/item.cjs.map +1 -0
- package/dist/ui/item.js +199 -0
- package/dist/ui/item.js.map +1 -0
- package/dist/ui/kbd.cjs +2 -0
- package/dist/ui/kbd.cjs.map +1 -0
- package/dist/ui/kbd.js +30 -0
- package/dist/ui/kbd.js.map +1 -0
- package/dist/ui/label.cjs +2 -0
- package/dist/ui/label.cjs.map +1 -0
- package/dist/ui/label.js +23 -0
- package/dist/ui/label.js.map +1 -0
- package/dist/ui/menubar.cjs +2 -0
- package/dist/ui/menubar.cjs.map +1 -0
- package/dist/ui/menubar.js +256 -0
- package/dist/ui/menubar.js.map +1 -0
- package/dist/ui/navigation-menu.cjs +2 -0
- package/dist/ui/navigation-menu.cjs.map +1 -0
- package/dist/ui/navigation-menu.js +164 -0
- package/dist/ui/navigation-menu.js.map +1 -0
- package/dist/ui/popover.cjs +2 -0
- package/dist/ui/popover.cjs.map +1 -0
- package/dist/ui/popover.js +45 -0
- package/dist/ui/popover.js.map +1 -0
- package/dist/ui/radio-group.cjs +2 -0
- package/dist/ui/radio-group.cjs.map +1 -0
- package/dist/ui/radio-group.js +45 -0
- package/dist/ui/radio-group.js.map +1 -0
- package/dist/ui/resizable.cjs +2 -0
- package/dist/ui/resizable.cjs.map +1 -0
- package/dist/ui/resizable.js +58 -0
- package/dist/ui/resizable.js.map +1 -0
- package/dist/ui/scroll-area.cjs +2 -0
- package/dist/ui/scroll-area.cjs.map +1 -0
- package/dist/ui/scroll-area.js +61 -0
- package/dist/ui/scroll-area.js.map +1 -0
- package/dist/ui/select.cjs +2 -0
- package/dist/ui/select.cjs.map +1 -0
- package/dist/ui/select.js +184 -0
- package/dist/ui/select.js.map +1 -0
- package/dist/ui/separator.cjs +2 -0
- package/dist/ui/separator.cjs.map +1 -0
- package/dist/ui/separator.js +27 -0
- package/dist/ui/separator.js.map +1 -0
- package/dist/ui/sheet.cjs +2 -0
- package/dist/ui/sheet.cjs.map +1 -0
- package/dist/ui/sheet.js +137 -0
- package/dist/ui/sheet.js.map +1 -0
- package/dist/ui/sidebar.cjs +2 -0
- package/dist/ui/sidebar.cjs.map +1 -0
- package/dist/ui/sidebar.js +579 -0
- package/dist/ui/sidebar.js.map +1 -0
- package/dist/ui/skeleton.cjs +2 -0
- package/dist/ui/skeleton.cjs.map +1 -0
- package/dist/ui/skeleton.js +24 -0
- package/dist/ui/skeleton.js.map +1 -0
- package/dist/ui/slider.cjs +2 -0
- package/dist/ui/slider.cjs.map +1 -0
- package/dist/ui/slider.js +61 -0
- package/dist/ui/slider.js.map +1 -0
- package/dist/ui/sonner.cjs +2 -0
- package/dist/ui/sonner.cjs.map +1 -0
- package/dist/ui/sonner.js +52 -0
- package/dist/ui/sonner.js.map +1 -0
- package/dist/ui/spinner.cjs +2 -0
- package/dist/ui/spinner.cjs.map +1 -0
- package/dist/ui/spinner.js +39 -0
- package/dist/ui/spinner.js.map +1 -0
- package/dist/ui/switch.cjs +2 -0
- package/dist/ui/switch.cjs.map +1 -0
- package/dist/ui/switch.js +32 -0
- package/dist/ui/switch.js.map +1 -0
- package/dist/ui/table.cjs +2 -0
- package/dist/ui/table.cjs.map +1 -0
- package/dist/ui/table.js +153 -0
- package/dist/ui/table.js.map +1 -0
- package/dist/ui/tabs.cjs +2 -0
- package/dist/ui/tabs.cjs.map +1 -0
- package/dist/ui/tabs.js +92 -0
- package/dist/ui/tabs.js.map +1 -0
- package/dist/ui/tetra-molecule-icon.cjs +2 -0
- package/dist/ui/tetra-molecule-icon.cjs.map +1 -0
- package/dist/ui/tetra-molecule-icon.js +50 -0
- package/dist/ui/tetra-molecule-icon.js.map +1 -0
- package/dist/ui/tetrascience-icon.cjs +2 -0
- package/dist/ui/tetrascience-icon.cjs.map +1 -0
- package/dist/ui/tetrascience-icon.js +47 -0
- package/dist/ui/tetrascience-icon.js.map +1 -0
- package/dist/ui/textarea.cjs +2 -0
- package/dist/ui/textarea.cjs.map +1 -0
- package/dist/ui/textarea.js +19 -0
- package/dist/ui/textarea.js.map +1 -0
- package/dist/ui/toggle-group.cjs +2 -0
- package/dist/ui/toggle-group.cjs.map +1 -0
- package/dist/ui/toggle-group.js +81 -0
- package/dist/ui/toggle-group.js.map +1 -0
- package/dist/ui/toggle.cjs +2 -0
- package/dist/ui/toggle.cjs.map +1 -0
- package/dist/ui/toggle.js +44 -0
- package/dist/ui/toggle.js.map +1 -0
- package/dist/ui/tooltip.cjs +2 -0
- package/dist/ui/tooltip.cjs.map +1 -0
- package/dist/ui/tooltip.js +56 -0
- package/dist/ui/tooltip.js.map +1 -0
- package/dist/utils/colors.d.ts +50 -0
- package/package.json +113 -10
- package/dist/athena.d.ts +0 -167
- package/dist/components/ai/attachments.cjs +0 -2
- package/dist/components/ai/attachments.cjs.map +0 -1
- package/dist/components/ai/attachments.js +0 -224
- package/dist/components/ai/attachments.js.map +0 -1
- package/dist/components/ai/chain-of-thought.cjs +0 -2
- package/dist/components/ai/chain-of-thought.cjs.map +0 -1
- package/dist/components/ai/chain-of-thought.js +0 -145
- package/dist/components/ai/chain-of-thought.js.map +0 -1
- package/dist/components/ai/confirmation.cjs +0 -2
- package/dist/components/ai/confirmation.cjs.map +0 -1
- package/dist/components/ai/confirmation.js +0 -109
- package/dist/components/ai/confirmation.js.map +0 -1
- package/dist/components/ai/context.cjs +0 -2
- package/dist/components/ai/context.cjs.map +0 -1
- package/dist/components/ai/context.js +0 -267
- package/dist/components/ai/context.js.map +0 -1
- package/dist/components/ai/conversation.cjs +0 -4
- package/dist/components/ai/conversation.cjs.map +0 -1
- package/dist/components/ai/conversation.js +0 -108
- package/dist/components/ai/conversation.js.map +0 -1
- package/dist/components/ai/inline-citation.cjs +0 -2
- package/dist/components/ai/inline-citation.cjs.map +0 -1
- package/dist/components/ai/inline-citation.js +0 -182
- package/dist/components/ai/inline-citation.js.map +0 -1
- package/dist/components/ai/message.cjs +0 -2
- package/dist/components/ai/message.cjs.map +0 -1
- package/dist/components/ai/message.js +0 -237
- package/dist/components/ai/message.js.map +0 -1
- package/dist/components/ai/model-selector.cjs +0 -2
- package/dist/components/ai/model-selector.cjs.map +0 -1
- package/dist/components/ai/model-selector.js +0 -77
- package/dist/components/ai/model-selector.js.map +0 -1
- package/dist/components/ai/prompt-input.cjs +0 -2
- package/dist/components/ai/prompt-input.cjs.map +0 -1
- package/dist/components/ai/prompt-input.js +0 -776
- package/dist/components/ai/prompt-input.js.map +0 -1
- package/dist/components/ai/queue.cjs +0 -2
- package/dist/components/ai/queue.cjs.map +0 -1
- package/dist/components/ai/queue.js +0 -209
- package/dist/components/ai/queue.js.map +0 -1
- package/dist/components/ai/reasoning.cjs +0 -2
- package/dist/components/ai/reasoning.cjs.map +0 -1
- package/dist/components/ai/reasoning.js +0 -129
- package/dist/components/ai/reasoning.js.map +0 -1
- package/dist/components/ai/shimmer.cjs +0 -2
- package/dist/components/ai/shimmer.cjs.map +0 -1
- package/dist/components/ai/shimmer.js +0 -49
- package/dist/components/ai/shimmer.js.map +0 -1
- package/dist/components/ai/sources.cjs +0 -2
- package/dist/components/ai/sources.cjs.map +0 -1
- package/dist/components/ai/sources.js +0 -54
- package/dist/components/ai/sources.js.map +0 -1
- package/dist/components/ai/speech-input.cjs +0 -2
- package/dist/components/ai/speech-input.cjs.map +0 -1
- package/dist/components/ai/speech-input.js +0 -123
- package/dist/components/ai/speech-input.js.map +0 -1
- package/dist/components/ai/stream-status.cjs +0 -2
- package/dist/components/ai/stream-status.cjs.map +0 -1
- package/dist/components/ai/stream-status.js +0 -108
- package/dist/components/ai/stream-status.js.map +0 -1
- package/dist/components/ai/suggestion.cjs +0 -2
- package/dist/components/ai/suggestion.cjs.map +0 -1
- package/dist/components/ai/suggestion.js +0 -38
- package/dist/components/ai/suggestion.js.map +0 -1
- package/dist/components/ai/task.cjs +0 -2
- package/dist/components/ai/task.cjs.map +0 -1
- package/dist/components/ai/task.js +0 -101
- package/dist/components/ai/task.js.map +0 -1
- package/dist/components/ai/tool.cjs +0 -2
- package/dist/components/ai/tool.cjs.map +0 -1
- package/dist/components/ai/tool.js +0 -139
- package/dist/components/ai/tool.js.map +0 -1
- package/dist/components/composed/tdp-link.cjs +0 -2
- package/dist/components/composed/tdp-link.cjs.map +0 -1
- package/dist/components/composed/tdp-link.js.map +0 -1
- package/dist/components/composed/tdp-url.cjs.map +0 -1
- package/dist/components/composed/tdp-url.js.map +0 -1
- package/dist/components/ui/accordion.cjs +0 -2
- package/dist/components/ui/accordion.cjs.map +0 -1
- package/dist/components/ui/accordion.js +0 -83
- package/dist/components/ui/accordion.js.map +0 -1
- package/dist/components/ui/alert-dialog.cjs +0 -2
- package/dist/components/ui/alert-dialog.cjs.map +0 -1
- package/dist/components/ui/alert-dialog.js +0 -181
- package/dist/components/ui/alert-dialog.js.map +0 -1
- package/dist/components/ui/alert.cjs +0 -2
- package/dist/components/ui/alert.cjs.map +0 -1
- package/dist/components/ui/alert.js +0 -81
- package/dist/components/ui/alert.js.map +0 -1
- package/dist/components/ui/aspect-ratio.cjs.map +0 -1
- package/dist/components/ui/aspect-ratio.js.map +0 -1
- package/dist/components/ui/avatar.cjs +0 -2
- package/dist/components/ui/avatar.cjs.map +0 -1
- package/dist/components/ui/avatar.js +0 -107
- package/dist/components/ui/avatar.js.map +0 -1
- package/dist/components/ui/badge.cjs +0 -2
- package/dist/components/ui/badge.cjs.map +0 -1
- package/dist/components/ui/badge.js +0 -47
- package/dist/components/ui/badge.js.map +0 -1
- package/dist/components/ui/banner.cjs +0 -2
- package/dist/components/ui/banner.cjs.map +0 -1
- package/dist/components/ui/banner.js +0 -80
- package/dist/components/ui/banner.js.map +0 -1
- package/dist/components/ui/breadcrumb.cjs +0 -2
- package/dist/components/ui/breadcrumb.cjs.map +0 -1
- package/dist/components/ui/breadcrumb.js +0 -118
- package/dist/components/ui/breadcrumb.js.map +0 -1
- package/dist/components/ui/button-group.cjs +0 -2
- package/dist/components/ui/button-group.cjs.map +0 -1
- package/dist/components/ui/button-group.js +0 -77
- package/dist/components/ui/button-group.js.map +0 -1
- package/dist/components/ui/button.cjs +0 -2
- package/dist/components/ui/button.cjs.map +0 -1
- package/dist/components/ui/button.js +0 -57
- package/dist/components/ui/button.js.map +0 -1
- package/dist/components/ui/calendar.cjs +0 -2
- package/dist/components/ui/calendar.cjs.map +0 -1
- package/dist/components/ui/calendar.js +0 -174
- package/dist/components/ui/calendar.js.map +0 -1
- package/dist/components/ui/card.cjs +0 -2
- package/dist/components/ui/card.cjs.map +0 -1
- package/dist/components/ui/card.js +0 -102
- package/dist/components/ui/card.js.map +0 -1
- package/dist/components/ui/carousel.cjs +0 -2
- package/dist/components/ui/carousel.cjs.map +0 -1
- package/dist/components/ui/carousel.js +0 -179
- package/dist/components/ui/carousel.js.map +0 -1
- package/dist/components/ui/checkbox.cjs +0 -2
- package/dist/components/ui/checkbox.cjs.map +0 -1
- package/dist/components/ui/checkbox.js +0 -35
- package/dist/components/ui/checkbox.js.map +0 -1
- package/dist/components/ui/code-block.cjs +0 -4
- package/dist/components/ui/code-block.cjs.map +0 -1
- package/dist/components/ui/code-block.js +0 -324
- package/dist/components/ui/code-block.js.map +0 -1
- package/dist/components/ui/code-editor.cjs +0 -2
- package/dist/components/ui/code-editor.cjs.map +0 -1
- package/dist/components/ui/code-editor.js +0 -105
- package/dist/components/ui/code-editor.js.map +0 -1
- package/dist/components/ui/collapsible.cjs.map +0 -1
- package/dist/components/ui/collapsible.js.map +0 -1
- package/dist/components/ui/combobox.cjs +0 -2
- package/dist/components/ui/combobox.cjs.map +0 -1
- package/dist/components/ui/combobox.js +0 -285
- package/dist/components/ui/combobox.js.map +0 -1
- package/dist/components/ui/command.cjs +0 -2
- package/dist/components/ui/command.cjs.map +0 -1
- package/dist/components/ui/command.js +0 -178
- package/dist/components/ui/command.js.map +0 -1
- package/dist/components/ui/context-menu.cjs +0 -2
- package/dist/components/ui/context-menu.cjs.map +0 -1
- package/dist/components/ui/context-menu.js +0 -236
- package/dist/components/ui/context-menu.js.map +0 -1
- package/dist/components/ui/dialog.cjs +0 -2
- package/dist/components/ui/dialog.cjs.map +0 -1
- package/dist/components/ui/dialog.js +0 -165
- package/dist/components/ui/dialog.js.map +0 -1
- package/dist/components/ui/dropdown-menu.cjs +0 -2
- package/dist/components/ui/dropdown-menu.cjs.map +0 -1
- package/dist/components/ui/dropdown-menu.js +0 -260
- package/dist/components/ui/dropdown-menu.js.map +0 -1
- package/dist/components/ui/field.cjs +0 -2
- package/dist/components/ui/field.cjs.map +0 -1
- package/dist/components/ui/field.js +0 -210
- package/dist/components/ui/field.js.map +0 -1
- package/dist/components/ui/hover-card.cjs +0 -2
- package/dist/components/ui/hover-card.cjs.map +0 -1
- package/dist/components/ui/hover-card.js +0 -39
- package/dist/components/ui/hover-card.js.map +0 -1
- package/dist/components/ui/input-group.cjs +0 -2
- package/dist/components/ui/input-group.cjs.map +0 -1
- package/dist/components/ui/input-group.js +0 -145
- package/dist/components/ui/input-group.js.map +0 -1
- package/dist/components/ui/input.cjs +0 -2
- package/dist/components/ui/input.cjs.map +0 -1
- package/dist/components/ui/input.js +0 -20
- package/dist/components/ui/input.js.map +0 -1
- package/dist/components/ui/item.cjs +0 -2
- package/dist/components/ui/item.cjs.map +0 -1
- package/dist/components/ui/item.js +0 -199
- package/dist/components/ui/item.js.map +0 -1
- package/dist/components/ui/kbd.cjs +0 -2
- package/dist/components/ui/kbd.cjs.map +0 -1
- package/dist/components/ui/kbd.js +0 -30
- package/dist/components/ui/kbd.js.map +0 -1
- package/dist/components/ui/label.cjs +0 -2
- package/dist/components/ui/label.cjs.map +0 -1
- package/dist/components/ui/label.js +0 -23
- package/dist/components/ui/label.js.map +0 -1
- package/dist/components/ui/menubar.cjs +0 -2
- package/dist/components/ui/menubar.cjs.map +0 -1
- package/dist/components/ui/menubar.js +0 -256
- package/dist/components/ui/menubar.js.map +0 -1
- package/dist/components/ui/navigation-menu.cjs +0 -2
- package/dist/components/ui/navigation-menu.cjs.map +0 -1
- package/dist/components/ui/navigation-menu.js +0 -164
- package/dist/components/ui/navigation-menu.js.map +0 -1
- package/dist/components/ui/popover.cjs +0 -2
- package/dist/components/ui/popover.cjs.map +0 -1
- package/dist/components/ui/popover.js +0 -45
- package/dist/components/ui/popover.js.map +0 -1
- package/dist/components/ui/radio-group.cjs +0 -2
- package/dist/components/ui/radio-group.cjs.map +0 -1
- package/dist/components/ui/radio-group.js +0 -45
- package/dist/components/ui/radio-group.js.map +0 -1
- package/dist/components/ui/resizable.cjs +0 -2
- package/dist/components/ui/resizable.cjs.map +0 -1
- package/dist/components/ui/resizable.js +0 -58
- package/dist/components/ui/resizable.js.map +0 -1
- package/dist/components/ui/scroll-area.cjs +0 -2
- package/dist/components/ui/scroll-area.cjs.map +0 -1
- package/dist/components/ui/scroll-area.js +0 -61
- package/dist/components/ui/scroll-area.js.map +0 -1
- package/dist/components/ui/select.cjs +0 -2
- package/dist/components/ui/select.cjs.map +0 -1
- package/dist/components/ui/select.js +0 -184
- package/dist/components/ui/select.js.map +0 -1
- package/dist/components/ui/separator.cjs +0 -2
- package/dist/components/ui/separator.cjs.map +0 -1
- package/dist/components/ui/separator.js +0 -27
- package/dist/components/ui/separator.js.map +0 -1
- package/dist/components/ui/sheet.cjs +0 -2
- package/dist/components/ui/sheet.cjs.map +0 -1
- package/dist/components/ui/sheet.js +0 -137
- package/dist/components/ui/sheet.js.map +0 -1
- package/dist/components/ui/sidebar.cjs +0 -2
- package/dist/components/ui/sidebar.cjs.map +0 -1
- package/dist/components/ui/sidebar.js +0 -579
- package/dist/components/ui/sidebar.js.map +0 -1
- package/dist/components/ui/skeleton.cjs +0 -2
- package/dist/components/ui/skeleton.cjs.map +0 -1
- package/dist/components/ui/skeleton.js +0 -24
- package/dist/components/ui/skeleton.js.map +0 -1
- package/dist/components/ui/slider.cjs +0 -2
- package/dist/components/ui/slider.cjs.map +0 -1
- package/dist/components/ui/slider.js +0 -61
- package/dist/components/ui/slider.js.map +0 -1
- package/dist/components/ui/sonner.cjs +0 -2
- package/dist/components/ui/sonner.cjs.map +0 -1
- package/dist/components/ui/sonner.js +0 -52
- package/dist/components/ui/sonner.js.map +0 -1
- package/dist/components/ui/spinner.cjs +0 -2
- package/dist/components/ui/spinner.cjs.map +0 -1
- package/dist/components/ui/spinner.js +0 -39
- package/dist/components/ui/spinner.js.map +0 -1
- package/dist/components/ui/switch.cjs +0 -2
- package/dist/components/ui/switch.cjs.map +0 -1
- package/dist/components/ui/switch.js +0 -32
- package/dist/components/ui/switch.js.map +0 -1
- package/dist/components/ui/table.cjs +0 -2
- package/dist/components/ui/table.cjs.map +0 -1
- package/dist/components/ui/table.js +0 -153
- package/dist/components/ui/table.js.map +0 -1
- package/dist/components/ui/tabs.cjs +0 -2
- package/dist/components/ui/tabs.cjs.map +0 -1
- package/dist/components/ui/tabs.js +0 -92
- package/dist/components/ui/tabs.js.map +0 -1
- package/dist/components/ui/tetra-molecule-icon.cjs +0 -2
- package/dist/components/ui/tetra-molecule-icon.cjs.map +0 -1
- package/dist/components/ui/tetra-molecule-icon.js +0 -49
- package/dist/components/ui/tetra-molecule-icon.js.map +0 -1
- package/dist/components/ui/tetrascience-icon.cjs +0 -2
- package/dist/components/ui/tetrascience-icon.cjs.map +0 -1
- package/dist/components/ui/tetrascience-icon.js +0 -46
- package/dist/components/ui/tetrascience-icon.js.map +0 -1
- package/dist/components/ui/textarea.cjs +0 -2
- package/dist/components/ui/textarea.cjs.map +0 -1
- package/dist/components/ui/textarea.js +0 -19
- package/dist/components/ui/textarea.js.map +0 -1
- package/dist/components/ui/toggle-group.cjs +0 -2
- package/dist/components/ui/toggle-group.cjs.map +0 -1
- package/dist/components/ui/toggle-group.js +0 -81
- package/dist/components/ui/toggle-group.js.map +0 -1
- package/dist/components/ui/toggle.cjs +0 -2
- package/dist/components/ui/toggle.cjs.map +0 -1
- package/dist/components/ui/toggle.js +0 -44
- package/dist/components/ui/toggle.js.map +0 -1
- package/dist/components/ui/tooltip.cjs +0 -2
- package/dist/components/ui/tooltip.cjs.map +0 -1
- package/dist/components/ui/tooltip.js +0 -56
- package/dist/components/ui/tooltip.js.map +0 -1
- package/dist/databricks.d.ts +0 -129
- package/dist/providers/athena.d.ts +0 -9
- package/dist/providers/databricks.d.ts +0 -9
- package/dist/providers/snowflake.d.ts +0 -9
- package/dist/snowflake.d.ts +0 -125
- /package/dist/{components/composed → composed}/tdp-link.js +0 -0
- /package/dist/{components/composed → composed}/tdp-url.cjs +0 -0
- /package/dist/{components/composed → composed}/tdp-url.js +0 -0
- /package/dist/{components/ui → ui}/aspect-ratio.cjs +0 -0
- /package/dist/{components/ui → ui}/aspect-ratio.js +0 -0
- /package/dist/{components/ui → ui}/collapsible.cjs +0 -0
- /package/dist/{components/ui → ui}/collapsible.js +0 -0
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
import { ContextMenu as ContextMenuPrimitive } from 'radix-ui';
|
|
2
|
+
import * as React from "react";
|
|
3
|
+
declare function ContextMenu({ ...props }: React.ComponentProps<typeof ContextMenuPrimitive.Root>): import("react/jsx-runtime").JSX.Element;
|
|
4
|
+
declare function ContextMenuTrigger({ className, ...props }: React.ComponentProps<typeof ContextMenuPrimitive.Trigger>): import("react/jsx-runtime").JSX.Element;
|
|
5
|
+
declare function ContextMenuGroup({ ...props }: React.ComponentProps<typeof ContextMenuPrimitive.Group>): import("react/jsx-runtime").JSX.Element;
|
|
6
|
+
declare function ContextMenuPortal({ ...props }: React.ComponentProps<typeof ContextMenuPrimitive.Portal>): import("react/jsx-runtime").JSX.Element;
|
|
7
|
+
declare function ContextMenuSub({ ...props }: React.ComponentProps<typeof ContextMenuPrimitive.Sub>): import("react/jsx-runtime").JSX.Element;
|
|
8
|
+
declare function ContextMenuRadioGroup({ ...props }: React.ComponentProps<typeof ContextMenuPrimitive.RadioGroup>): import("react/jsx-runtime").JSX.Element;
|
|
9
|
+
declare function ContextMenuContent({ className, ...props }: React.ComponentProps<typeof ContextMenuPrimitive.Content> & {
|
|
10
|
+
side?: "top" | "right" | "bottom" | "left";
|
|
11
|
+
}): import("react/jsx-runtime").JSX.Element;
|
|
12
|
+
declare function ContextMenuItem({ className, inset, variant, ...props }: React.ComponentProps<typeof ContextMenuPrimitive.Item> & {
|
|
13
|
+
inset?: boolean;
|
|
14
|
+
variant?: "default" | "destructive";
|
|
15
|
+
}): import("react/jsx-runtime").JSX.Element;
|
|
16
|
+
declare function ContextMenuSubTrigger({ className, inset, children, ...props }: React.ComponentProps<typeof ContextMenuPrimitive.SubTrigger> & {
|
|
17
|
+
inset?: boolean;
|
|
18
|
+
}): import("react/jsx-runtime").JSX.Element;
|
|
19
|
+
declare function ContextMenuSubContent({ className, ...props }: React.ComponentProps<typeof ContextMenuPrimitive.SubContent>): import("react/jsx-runtime").JSX.Element;
|
|
20
|
+
declare function ContextMenuCheckboxItem({ className, children, checked, inset, ...props }: React.ComponentProps<typeof ContextMenuPrimitive.CheckboxItem> & {
|
|
21
|
+
inset?: boolean;
|
|
22
|
+
}): import("react/jsx-runtime").JSX.Element;
|
|
23
|
+
declare function ContextMenuRadioItem({ className, children, inset, ...props }: React.ComponentProps<typeof ContextMenuPrimitive.RadioItem> & {
|
|
24
|
+
inset?: boolean;
|
|
25
|
+
}): import("react/jsx-runtime").JSX.Element;
|
|
26
|
+
declare function ContextMenuLabel({ className, inset, ...props }: React.ComponentProps<typeof ContextMenuPrimitive.Label> & {
|
|
27
|
+
inset?: boolean;
|
|
28
|
+
}): import("react/jsx-runtime").JSX.Element;
|
|
29
|
+
declare function ContextMenuSeparator({ className, ...props }: React.ComponentProps<typeof ContextMenuPrimitive.Separator>): import("react/jsx-runtime").JSX.Element;
|
|
30
|
+
declare function ContextMenuShortcut({ className, ...props }: React.ComponentProps<"span">): import("react/jsx-runtime").JSX.Element;
|
|
31
|
+
export { ContextMenu, ContextMenuTrigger, ContextMenuContent, ContextMenuItem, ContextMenuCheckboxItem, ContextMenuRadioItem, ContextMenuLabel, ContextMenuSeparator, ContextMenuShortcut, ContextMenuGroup, ContextMenuPortal, ContextMenuSub, ContextMenuSubContent, ContextMenuSubTrigger, ContextMenuRadioGroup, };
|
|
@@ -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"),C=require("lucide-react"),T=require("react"),k=require("./data-table.cjs"),q=require("
|
|
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("../../../ui/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 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
|
+
{"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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"}
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
interface DataTableColumnToggleProps {
|
|
2
|
+
className?: string;
|
|
3
|
+
}
|
|
4
|
+
declare function DataTableColumnToggle({ className }: DataTableColumnToggleProps): import("react/jsx-runtime").JSX.Element | null;
|
|
5
|
+
export { DataTableColumnToggle };
|
|
6
|
+
export type { DataTableColumnToggleProps };
|
|
@@ -6,7 +6,7 @@ import { CSS as R } from "@dnd-kit/utilities";
|
|
|
6
6
|
import { SlidersHorizontalIcon as K, GripVerticalIcon as j, CheckIcon as A } from "lucide-react";
|
|
7
7
|
import * as C from "react";
|
|
8
8
|
import { useDataTable as G } from "./data-table.js";
|
|
9
|
-
import { Button as H } from "
|
|
9
|
+
import { Button as H } from "../../../ui/button.js";
|
|
10
10
|
import { cn as S } from "../../../lib/utils.js";
|
|
11
11
|
function B({ id: b, label: a, visible: u, onToggle: s }) {
|
|
12
12
|
const {
|
|
@@ -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("
|
|
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("../../../ui/button.cjs"),O=require("../../../ui/input.cjs"),l=require("../../../ui/select.cjs"),_=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"],y=["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 F({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:_.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:_.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??y,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??y,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"})]})]})})})]})}F.displayName="DataTableFilter";exports.DataTableFilter=F;
|
|
2
2
|
//# sourceMappingURL=data-table-filter.cjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"data-table-filter.cjs","sources":["../../../../src/components/ui/data-table/data-table-filter.tsx"],"sourcesContent":["\"use client\"\n\nimport { ListFilterIcon, PlusIcon, XIcon } from \"lucide-react\"\nimport { Popover } from \"radix-ui\"\n\nimport { useDataTable } from \"./data-table\"\n\nimport type { FilterColumnConfig, FilterCondition, FilterOperator } from \"./data-table\"\n\nimport { Button } from \"@/components/ui/button\"\nimport { Input } from \"@/components/ui/input\"\nimport {\n Select,\n SelectContent,\n SelectItem,\n SelectTrigger,\n SelectValue,\n} from \"@/components/ui/select\"\nimport { cn } from \"@/lib/utils\"\n\n// ---------------------------------------------------------------------------\n// Operator metadata\n// ---------------------------------------------------------------------------\n\nconst OPERATOR_LABELS: Record<FilterOperator, string> = {\n contains: \"contains\",\n equals: \"equals\",\n not_equals: \"not equals\",\n starts_with: \"starts with\",\n ends_with: \"ends with\",\n is_empty: \"is empty\",\n is_not_empty: \"is not empty\",\n}\n\nconst VALUE_FREE_OPERATORS: FilterOperator[] = [\"is_empty\", \"is_not_empty\"]\n\nconst DEFAULT_OPERATORS: FilterOperator[] = [\n \"contains\",\n \"equals\",\n \"not_equals\",\n \"starts_with\",\n \"ends_with\",\n \"is_empty\",\n \"is_not_empty\",\n]\n\n// ---------------------------------------------------------------------------\n// Helpers\n// ---------------------------------------------------------------------------\n\nfunction getColumnLabel(\n colId: string,\n columnLabels: Record<string, string>,\n\n col: any,\n): string {\n return (\n columnLabels[colId] ??\n (col?.columnDef?.meta as { label?: string } | undefined)?.label ??\n (typeof col?.columnDef?.header === \"string\" ? col.columnDef.header : undefined) ??\n colId\n )\n}\n\nfunction makeCondition(\n columnId: string,\n allowedOperators?: FilterOperator[],\n): FilterCondition {\n const operator = allowedOperators?.[0] ?? \"contains\"\n return { id: crypto.randomUUID(), columnId, operator, value: \"\" }\n}\n\n// ---------------------------------------------------------------------------\n// DataTableFilter\n// ---------------------------------------------------------------------------\n\ninterface DataTableFilterProps {\n className?: string\n}\n\nfunction DataTableFilter({ className }: DataTableFilterProps) {\n const { table, columnLabels, filters, setFilters, filterConfig, enableFiltering } =\n useDataTable()\n\n if (!enableFiltering) return null\n\n const allLeafColumns = table.getAllLeafColumns()\n\n const resolvedColumns: FilterColumnConfig[] =\n filterConfig.length > 0\n ? filterConfig\n : allLeafColumns\n .filter((col) => \"accessorKey\" in col.columnDef || \"accessorFn\" in col.columnDef)\n .map((col) => ({ columnId: col.id }))\n\n const firstColumn = resolvedColumns[0]\n const firstColumnId = firstColumn?.columnId ?? \"\"\n\n function addFilter() {\n setFilters([...filters, makeCondition(firstColumnId, firstColumn?.operators)])\n }\n\n function removeFilter(id: string) {\n setFilters(filters.filter((f) => f.id !== id))\n }\n\n function updateFilter(id: string, patch: Partial<FilterCondition>) {\n setFilters(filters.map((f) => (f.id === id ? { ...f, ...patch } : f)))\n }\n\n function clearAll() {\n setFilters([])\n }\n\n const activeCount = filters.length\n\n return (\n <Popover.Root>\n <Popover.Trigger asChild>\n <Button\n type=\"button\"\n variant=\"outline\"\n size=\"sm\"\n data-slot=\"data-table-filter\"\n className={cn(className)}\n aria-label={activeCount > 0 ? `Filter (${activeCount} active)` : \"Filter\"}\n >\n <ListFilterIcon className=\"size-3.5\" />\n Filter\n {activeCount > 0 && (\n <span className=\"flex size-4 items-center justify-center rounded-full bg-primary text-[10px] font-medium text-primary-foreground\">\n {activeCount}\n </span>\n )}\n </Button>\n </Popover.Trigger>\n\n <Popover.Portal>\n <Popover.Content\n data-slot=\"data-table-filter-panel\"\n aria-label=\"Filter conditions\"\n align=\"end\"\n sideOffset={4}\n className={cn(\n \"z-50 min-w-80 rounded-lg border bg-popover p-3 text-popover-foreground shadow-elevation-4 outline-none\",\n \"data-[state=open]:animate-in data-[state=closed]:animate-out\",\n \"data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0\",\n \"data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95\",\n \"data-[side=bottom]:slide-in-from-top-2 data-[side=top]:slide-in-from-bottom-2\",\n )}\n >\n <div className=\"flex flex-col gap-2\">\n {filters.map((condition) => {\n const colConfig = resolvedColumns.find((c) => c.columnId === condition.columnId)\n const operators = colConfig?.operators ?? DEFAULT_OPERATORS\n const isValueFree = VALUE_FREE_OPERATORS.includes(condition.operator)\n\n return (\n <div key={condition.id} className=\"flex items-center gap-2\">\n {/* Column selector */}\n <Select\n value={condition.columnId}\n onValueChange={(v) => {\n const nextConfig = resolvedColumns.find((c) => c.columnId === v)\n const nextOperators = nextConfig?.operators ?? DEFAULT_OPERATORS\n const nextOperator = nextOperators.includes(condition.operator)\n ? condition.operator\n : (nextOperators[0] ?? \"contains\")\n updateFilter(condition.id, {\n columnId: v,\n operator: nextOperator,\n value: \"\",\n })\n }}\n >\n <SelectTrigger aria-label=\"Filter column\" size=\"sm\" className=\"w-36\">\n <SelectValue />\n </SelectTrigger>\n <SelectContent>\n {resolvedColumns.map((c) => {\n const col = allLeafColumns.find((lc) => lc.id === c.columnId)\n return (\n <SelectItem key={c.columnId} value={c.columnId}>\n {c.label ?? getColumnLabel(c.columnId, columnLabels, col)}\n </SelectItem>\n )\n })}\n </SelectContent>\n </Select>\n\n {/* Operator selector */}\n <Select\n value={condition.operator}\n onValueChange={(v) =>\n updateFilter(condition.id, {\n operator: v as FilterOperator,\n value: \"\",\n })\n }\n >\n <SelectTrigger aria-label=\"Filter operator\" size=\"sm\" className=\"w-32\">\n <SelectValue />\n </SelectTrigger>\n <SelectContent>\n {operators.map((op) => (\n <SelectItem key={op} value={op}>\n {OPERATOR_LABELS[op]}\n </SelectItem>\n ))}\n </SelectContent>\n </Select>\n\n {/* Value input — hidden for value-free operators */}\n {isValueFree ? (\n <div className=\"h-8 w-40\" aria-hidden />\n ) : (\n <Input\n className=\"w-40\"\n placeholder=\"Value…\"\n value={condition.value}\n onChange={(e) => updateFilter(condition.id, { value: e.target.value })}\n />\n )}\n\n {/* Remove button */}\n <Button\n type=\"button\"\n variant=\"ghost\"\n size=\"icon\"\n className=\"size-8 shrink-0 text-muted-foreground hover:text-foreground\"\n onClick={() => removeFilter(condition.id)}\n aria-label=\"Remove filter\"\n >\n <XIcon className=\"size-3.5\" />\n </Button>\n </div>\n )\n })}\n\n <div className=\"flex items-center gap-2\">\n <Button\n type=\"button\"\n variant=\"outline\"\n size=\"sm\"\n onClick={addFilter}\n disabled={resolvedColumns.length === 0}\n >\n <PlusIcon className=\"size-3.5\" />\n Add filter\n </Button>\n {filters.length > 0 && (\n <Button\n type=\"button\"\n variant=\"ghost\"\n size=\"sm\"\n className=\"text-muted-foreground\"\n onClick={clearAll}\n >\n Clear all\n </Button>\n )}\n </div>\n </div>\n </Popover.Content>\n </Popover.Portal>\n </Popover.Root>\n )\n}\n\nDataTableFilter.displayName = \"DataTableFilter\"\n\nexport { DataTableFilter }\nexport type { DataTableFilterProps }\n"],"names":["OPERATOR_LABELS","VALUE_FREE_OPERATORS","DEFAULT_OPERATORS","getColumnLabel","colId","columnLabels","col","makeCondition","columnId","allowedOperators","operator","DataTableFilter","className","table","filters","setFilters","filterConfig","enableFiltering","useDataTable","allLeafColumns","resolvedColumns","firstColumn","firstColumnId","addFilter","removeFilter","id","f","updateFilter","patch","clearAll","activeCount","jsxs","Popover","jsx","Button","cn","ListFilterIcon","condition","operators","c","isValueFree","Select","v","nextOperators","nextOperator","SelectTrigger","SelectValue","SelectContent","lc","SelectItem","op","Input","e","XIcon","PlusIcon"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"data-table-filter.cjs","sources":["../../../../src/components/ui/data-table/data-table-filter.tsx"],"sourcesContent":["\"use client\"\n\nimport { ListFilterIcon, PlusIcon, XIcon } from \"lucide-react\"\nimport { Popover } from \"radix-ui\"\n\nimport { useDataTable } from \"./data-table\"\n\nimport type { FilterColumnConfig, FilterCondition, FilterOperator } from \"./data-table\"\n\nimport { Button } from \"@/components/ui/button\"\nimport { Input } from \"@/components/ui/input\"\nimport {\n Select,\n SelectContent,\n SelectItem,\n SelectTrigger,\n SelectValue,\n} from \"@/components/ui/select\"\nimport { cn } from \"@/lib/utils\"\n\n// ---------------------------------------------------------------------------\n// Operator metadata\n// ---------------------------------------------------------------------------\n\nconst OPERATOR_LABELS: Record<FilterOperator, string> = {\n contains: \"contains\",\n equals: \"equals\",\n not_equals: \"not equals\",\n starts_with: \"starts with\",\n ends_with: \"ends with\",\n is_empty: \"is empty\",\n is_not_empty: \"is not empty\",\n}\n\nconst VALUE_FREE_OPERATORS: FilterOperator[] = [\"is_empty\", \"is_not_empty\"]\n\nconst DEFAULT_OPERATORS: FilterOperator[] = [\n \"contains\",\n \"equals\",\n \"not_equals\",\n \"starts_with\",\n \"ends_with\",\n \"is_empty\",\n \"is_not_empty\",\n]\n\n// ---------------------------------------------------------------------------\n// Helpers\n// ---------------------------------------------------------------------------\n\nfunction getColumnLabel(\n colId: string,\n columnLabels: Record<string, string>,\n\n col: any,\n): string {\n return (\n columnLabels[colId] ??\n (col?.columnDef?.meta as { label?: string } | undefined)?.label ??\n (typeof col?.columnDef?.header === \"string\" ? col.columnDef.header : undefined) ??\n colId\n )\n}\n\nfunction makeCondition(\n columnId: string,\n allowedOperators?: FilterOperator[],\n): FilterCondition {\n const operator = allowedOperators?.[0] ?? \"contains\"\n return { id: crypto.randomUUID(), columnId, operator, value: \"\" }\n}\n\n// ---------------------------------------------------------------------------\n// DataTableFilter\n// ---------------------------------------------------------------------------\n\ninterface DataTableFilterProps {\n className?: string\n}\n\nfunction DataTableFilter({ className }: DataTableFilterProps) {\n const { table, columnLabels, filters, setFilters, filterConfig, enableFiltering } =\n useDataTable()\n\n if (!enableFiltering) return null\n\n const allLeafColumns = table.getAllLeafColumns()\n\n const resolvedColumns: FilterColumnConfig[] =\n filterConfig.length > 0\n ? filterConfig\n : allLeafColumns\n .filter((col) => \"accessorKey\" in col.columnDef || \"accessorFn\" in col.columnDef)\n .map((col) => ({ columnId: col.id }))\n\n const firstColumn = resolvedColumns[0]\n const firstColumnId = firstColumn?.columnId ?? \"\"\n\n function addFilter() {\n setFilters([...filters, makeCondition(firstColumnId, firstColumn?.operators)])\n }\n\n function removeFilter(id: string) {\n setFilters(filters.filter((f) => f.id !== id))\n }\n\n function updateFilter(id: string, patch: Partial<FilterCondition>) {\n setFilters(filters.map((f) => (f.id === id ? { ...f, ...patch } : f)))\n }\n\n function clearAll() {\n setFilters([])\n }\n\n const activeCount = filters.length\n\n return (\n <Popover.Root>\n <Popover.Trigger asChild>\n <Button\n type=\"button\"\n variant=\"outline\"\n size=\"sm\"\n data-slot=\"data-table-filter\"\n className={cn(className)}\n aria-label={activeCount > 0 ? `Filter (${activeCount} active)` : \"Filter\"}\n >\n <ListFilterIcon className=\"size-3.5\" />\n Filter\n {activeCount > 0 && (\n <span className=\"flex size-4 items-center justify-center rounded-full bg-primary text-[10px] font-medium text-primary-foreground\">\n {activeCount}\n </span>\n )}\n </Button>\n </Popover.Trigger>\n\n <Popover.Portal>\n <Popover.Content\n data-slot=\"data-table-filter-panel\"\n aria-label=\"Filter conditions\"\n align=\"end\"\n sideOffset={4}\n className={cn(\n \"z-50 min-w-80 rounded-lg border bg-popover p-3 text-popover-foreground shadow-elevation-4 outline-none\",\n \"data-[state=open]:animate-in data-[state=closed]:animate-out\",\n \"data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0\",\n \"data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95\",\n \"data-[side=bottom]:slide-in-from-top-2 data-[side=top]:slide-in-from-bottom-2\",\n )}\n >\n <div className=\"flex flex-col gap-2\">\n {filters.map((condition) => {\n const colConfig = resolvedColumns.find((c) => c.columnId === condition.columnId)\n const operators = colConfig?.operators ?? DEFAULT_OPERATORS\n const isValueFree = VALUE_FREE_OPERATORS.includes(condition.operator)\n\n return (\n <div key={condition.id} className=\"flex items-center gap-2\">\n {/* Column selector */}\n <Select\n value={condition.columnId}\n onValueChange={(v) => {\n const nextConfig = resolvedColumns.find((c) => c.columnId === v)\n const nextOperators = nextConfig?.operators ?? DEFAULT_OPERATORS\n const nextOperator = nextOperators.includes(condition.operator)\n ? condition.operator\n : (nextOperators[0] ?? \"contains\")\n updateFilter(condition.id, {\n columnId: v,\n operator: nextOperator,\n value: \"\",\n })\n }}\n >\n <SelectTrigger aria-label=\"Filter column\" size=\"sm\" className=\"w-36\">\n <SelectValue />\n </SelectTrigger>\n <SelectContent>\n {resolvedColumns.map((c) => {\n const col = allLeafColumns.find((lc) => lc.id === c.columnId)\n return (\n <SelectItem key={c.columnId} value={c.columnId}>\n {c.label ?? getColumnLabel(c.columnId, columnLabels, col)}\n </SelectItem>\n )\n })}\n </SelectContent>\n </Select>\n\n {/* Operator selector */}\n <Select\n value={condition.operator}\n onValueChange={(v) =>\n updateFilter(condition.id, {\n operator: v as FilterOperator,\n value: \"\",\n })\n }\n >\n <SelectTrigger aria-label=\"Filter operator\" size=\"sm\" className=\"w-32\">\n <SelectValue />\n </SelectTrigger>\n <SelectContent>\n {operators.map((op) => (\n <SelectItem key={op} value={op}>\n {OPERATOR_LABELS[op]}\n </SelectItem>\n ))}\n </SelectContent>\n </Select>\n\n {/* Value input — hidden for value-free operators */}\n {isValueFree ? (\n <div className=\"h-8 w-40\" aria-hidden />\n ) : (\n <Input\n className=\"w-40\"\n placeholder=\"Value…\"\n value={condition.value}\n onChange={(e) => updateFilter(condition.id, { value: e.target.value })}\n />\n )}\n\n {/* Remove button */}\n <Button\n type=\"button\"\n variant=\"ghost\"\n size=\"icon\"\n className=\"size-8 shrink-0 text-muted-foreground hover:text-foreground\"\n onClick={() => removeFilter(condition.id)}\n aria-label=\"Remove filter\"\n >\n <XIcon className=\"size-3.5\" />\n </Button>\n </div>\n )\n })}\n\n <div className=\"flex items-center gap-2\">\n <Button\n type=\"button\"\n variant=\"outline\"\n size=\"sm\"\n onClick={addFilter}\n disabled={resolvedColumns.length === 0}\n >\n <PlusIcon className=\"size-3.5\" />\n Add filter\n </Button>\n {filters.length > 0 && (\n <Button\n type=\"button\"\n variant=\"ghost\"\n size=\"sm\"\n className=\"text-muted-foreground\"\n onClick={clearAll}\n >\n Clear all\n </Button>\n )}\n </div>\n </div>\n </Popover.Content>\n </Popover.Portal>\n </Popover.Root>\n )\n}\n\nDataTableFilter.displayName = \"DataTableFilter\"\n\nexport { DataTableFilter }\nexport type { DataTableFilterProps }\n"],"names":["OPERATOR_LABELS","VALUE_FREE_OPERATORS","DEFAULT_OPERATORS","getColumnLabel","colId","columnLabels","col","makeCondition","columnId","allowedOperators","operator","DataTableFilter","className","table","filters","setFilters","filterConfig","enableFiltering","useDataTable","allLeafColumns","resolvedColumns","firstColumn","firstColumnId","addFilter","removeFilter","id","f","updateFilter","patch","clearAll","activeCount","jsxs","Popover","jsx","Button","cn","ListFilterIcon","condition","operators","c","isValueFree","Select","v","nextOperators","nextOperator","SelectTrigger","SelectValue","SelectContent","lc","SelectItem","op","Input","e","XIcon","PlusIcon"],"mappings":"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"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
interface DataTableFilterProps {
|
|
2
|
+
className?: string;
|
|
3
|
+
}
|
|
4
|
+
declare function DataTableFilter({ className }: DataTableFilterProps): import("react/jsx-runtime").JSX.Element | null;
|
|
5
|
+
declare namespace DataTableFilter {
|
|
6
|
+
var displayName: string;
|
|
7
|
+
}
|
|
8
|
+
export { DataTableFilter };
|
|
9
|
+
export type { DataTableFilterProps };
|
|
@@ -2,9 +2,9 @@ import { jsxs as l, jsx as t } from "react/jsx-runtime";
|
|
|
2
2
|
import { ListFilterIcon as q, XIcon as P, PlusIcon as V } from "lucide-react";
|
|
3
3
|
import { Popover as f } from "radix-ui";
|
|
4
4
|
import { useDataTable as k } from "./data-table.js";
|
|
5
|
-
import { Button as h } from "
|
|
6
|
-
import { Input as U } from "
|
|
7
|
-
import { Select as y, SelectTrigger as _, SelectValue as F, SelectContent as I, SelectItem as N } from "
|
|
5
|
+
import { Button as h } from "../../../ui/button.js";
|
|
6
|
+
import { Input as U } from "../../../ui/input.js";
|
|
7
|
+
import { Select as y, SelectTrigger as _, SelectValue as F, SelectContent as I, SelectItem as N } from "../../../ui/select.js";
|
|
8
8
|
import { cn as z } from "../../../lib/utils.js";
|
|
9
9
|
const j = {
|
|
10
10
|
contains: "contains",
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("react/jsx-runtime"),x=require("lucide-react"),d=require("radix-ui"),N=require("react"),C=require("./data-table.cjs"),f=require("
|
|
1
|
+
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("react/jsx-runtime"),x=require("lucide-react"),d=require("radix-ui"),N=require("react"),C=require("./data-table.cjs"),f=require("../../../ui/button.cjs"),o=require("../../../ui/select.cjs"),h=require("../../../lib/utils.cjs");function j(l,s,n){const r=n?.columnDef.meta;return s[l]??r?.label??(typeof n?.columnDef.header=="string"?n.columnDef.header:void 0)??l}const m="__none__";function v({className:l}){const s=N.useId(),{table:n,columnLabels:r,grouping:a,setGrouping:p,groupConfig:b,enableGrouping:I}=C.useDataTable();if(!I)return null;const c=n.getAllLeafColumns(),g=b.length>0?b:c.filter(t=>"accessorKey"in t.columnDef||"accessorFn"in t.columnDef).map(t=>({columnId:t.id,label:void 0})),i=a?g.find(t=>t.columnId===a)??{columnId:a}:null,u=i?i.label??j(i.columnId,r,c.find(t=>t.id===i.columnId)):null;return e.jsxs(d.Popover.Root,{children:[e.jsx(d.Popover.Trigger,{asChild:!0,children:e.jsxs(f.Button,{type:"button",variant:"outline",size:"sm","data-slot":"data-table-group",className:h.cn(l),"aria-label":u?`Grouped by ${u}`:"Group by",children:[e.jsx(x.GroupIcon,{className:"size-3.5"}),u?e.jsxs(e.Fragment,{children:["Grouped by",e.jsx("span",{className:"rounded-sm bg-primary px-1.5 text-[10px] font-medium text-primary-foreground",children:u})]}):"Group"]})}),e.jsx(d.Popover.Portal,{children:e.jsx(d.Popover.Content,{"data-slot":"data-table-group-panel","aria-label":"Group rows by",align:"end",sideOffset:4,className:h.cn("z-50 min-w-64 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:[e.jsx("label",{className:"text-xs font-medium text-muted-foreground",htmlFor:s,children:"Group rows by"}),e.jsxs("div",{className:"flex items-center gap-2",children:[e.jsxs(o.Select,{value:a??m,onValueChange:t=>p(t===m?null:t),children:[e.jsx(o.SelectTrigger,{id:s,size:"sm",className:"w-44",children:e.jsx(o.SelectValue,{placeholder:"Select column"})}),e.jsxs(o.SelectContent,{children:[e.jsx(o.SelectItem,{value:m,children:"None"}),g.map(t=>{const y=c.find(G=>G.id===t.columnId);return e.jsx(o.SelectItem,{value:t.columnId,children:t.label??j(t.columnId,r,y)},t.columnId)})]})]}),a&&e.jsx(f.Button,{type:"button",variant:"ghost",size:"icon",className:"size-8 shrink-0 text-muted-foreground hover:text-foreground",onClick:()=>p(null),"aria-label":"Clear grouping",children:e.jsx(x.XIcon,{className:"size-3.5"})})]})]})})})]})}v.displayName="DataTableGroup";exports.DataTableGroup=v;
|
|
2
2
|
//# sourceMappingURL=data-table-group.cjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"data-table-group.cjs","sources":["../../../../src/components/ui/data-table/data-table-group.tsx"],"sourcesContent":["\"use client\"\n\nimport { GroupIcon, XIcon } from \"lucide-react\"\nimport { Popover } from \"radix-ui\"\nimport { useId } from \"react\"\n\nimport { useDataTable } from \"./data-table\"\n\nimport type { Column } from \"@tanstack/react-table\"\n\nimport { Button } from \"@/components/ui/button\"\nimport {\n Select,\n SelectContent,\n SelectItem,\n SelectTrigger,\n SelectValue,\n} from \"@/components/ui/select\"\nimport { cn } from \"@/lib/utils\"\n\n// ---------------------------------------------------------------------------\n// Helpers\n// ---------------------------------------------------------------------------\n\nfunction getColumnLabel(\n colId: string,\n columnLabels: Record<string, string>,\n col: Column<unknown, unknown> | undefined,\n): string {\n const meta = col?.columnDef.meta as { label?: string } | undefined\n return (\n columnLabels[colId] ??\n meta?.label ??\n (typeof col?.columnDef.header === \"string\" ? col.columnDef.header : undefined) ??\n colId\n )\n}\n\n// ---------------------------------------------------------------------------\n// DataTableGroup\n// ---------------------------------------------------------------------------\n\nconst NO_GROUPING = \"__none__\"\n\ninterface DataTableGroupProps {\n className?: string\n}\n\nfunction DataTableGroup({ className }: DataTableGroupProps) {\n const selectId = useId()\n const {\n table,\n columnLabels,\n grouping,\n setGrouping,\n groupConfig,\n enableGrouping,\n } = useDataTable()\n\n if (!enableGrouping) return null\n\n const allLeafColumns = table.getAllLeafColumns()\n\n const resolvedColumns =\n groupConfig.length > 0\n ? groupConfig\n : allLeafColumns\n .filter((col) => \"accessorKey\" in col.columnDef || \"accessorFn\" in col.columnDef)\n .map((col) => ({ columnId: col.id, label: undefined as string | undefined }))\n\n const activeColumn = grouping\n ? resolvedColumns.find((c) => c.columnId === grouping) ?? { columnId: grouping }\n : null\n\n const activeColumnLabel = activeColumn\n ? activeColumn.label ??\n getColumnLabel(\n activeColumn.columnId,\n columnLabels,\n allLeafColumns.find((lc) => lc.id === activeColumn.columnId),\n )\n : null\n\n return (\n <Popover.Root>\n <Popover.Trigger asChild>\n <Button\n type=\"button\"\n variant=\"outline\"\n size=\"sm\"\n data-slot=\"data-table-group\"\n className={cn(className)}\n aria-label={\n activeColumnLabel ? `Grouped by ${activeColumnLabel}` : \"Group by\"\n }\n >\n <GroupIcon className=\"size-3.5\" />\n {activeColumnLabel ? (\n <>\n Grouped by\n <span className=\"rounded-sm bg-primary px-1.5 text-[10px] font-medium text-primary-foreground\">\n {activeColumnLabel}\n </span>\n </>\n ) : (\n \"Group\"\n )}\n </Button>\n </Popover.Trigger>\n\n <Popover.Portal>\n <Popover.Content\n data-slot=\"data-table-group-panel\"\n aria-label=\"Group rows by\"\n align=\"end\"\n sideOffset={4}\n className={cn(\n \"z-50 min-w-64 rounded-lg border bg-popover p-3 text-popover-foreground shadow-elevation-4 outline-none\",\n \"data-[state=open]:animate-in data-[state=closed]:animate-out\",\n \"data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0\",\n \"data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95\",\n \"data-[side=bottom]:slide-in-from-top-2 data-[side=top]:slide-in-from-bottom-2\",\n )}\n >\n <div className=\"flex flex-col gap-2\">\n <label\n className=\"text-xs font-medium text-muted-foreground\"\n htmlFor={selectId}\n >\n Group rows by\n </label>\n <div className=\"flex items-center gap-2\">\n <Select\n value={grouping ?? NO_GROUPING}\n onValueChange={(v) => setGrouping(v === NO_GROUPING ? null : v)}\n >\n <SelectTrigger\n id={selectId}\n size=\"sm\"\n className=\"w-44\"\n >\n <SelectValue placeholder=\"Select column\" />\n </SelectTrigger>\n <SelectContent>\n <SelectItem value={NO_GROUPING}>None</SelectItem>\n {resolvedColumns.map((c) => {\n const col = allLeafColumns.find((lc) => lc.id === c.columnId)\n return (\n <SelectItem key={c.columnId} value={c.columnId}>\n {c.label ?? getColumnLabel(c.columnId, columnLabels, col)}\n </SelectItem>\n )\n })}\n </SelectContent>\n </Select>\n {grouping && (\n <Button\n type=\"button\"\n variant=\"ghost\"\n size=\"icon\"\n className=\"size-8 shrink-0 text-muted-foreground hover:text-foreground\"\n onClick={() => setGrouping(null)}\n aria-label=\"Clear grouping\"\n >\n <XIcon className=\"size-3.5\" />\n </Button>\n )}\n </div>\n </div>\n </Popover.Content>\n </Popover.Portal>\n </Popover.Root>\n )\n}\n\nDataTableGroup.displayName = \"DataTableGroup\"\n\nexport { DataTableGroup }\nexport type { DataTableGroupProps }\n"],"names":["getColumnLabel","colId","columnLabels","col","meta","NO_GROUPING","DataTableGroup","className","selectId","useId","table","grouping","setGrouping","groupConfig","enableGrouping","useDataTable","allLeafColumns","resolvedColumns","activeColumn","c","activeColumnLabel","lc","jsxs","Popover","jsx","Button","cn","GroupIcon","Fragment","Select","v","SelectTrigger","SelectValue","SelectContent","SelectItem","XIcon"],"mappings":"
|
|
1
|
+
{"version":3,"file":"data-table-group.cjs","sources":["../../../../src/components/ui/data-table/data-table-group.tsx"],"sourcesContent":["\"use client\"\n\nimport { GroupIcon, XIcon } from \"lucide-react\"\nimport { Popover } from \"radix-ui\"\nimport { useId } from \"react\"\n\nimport { useDataTable } from \"./data-table\"\n\nimport type { Column } from \"@tanstack/react-table\"\n\nimport { Button } from \"@/components/ui/button\"\nimport {\n Select,\n SelectContent,\n SelectItem,\n SelectTrigger,\n SelectValue,\n} from \"@/components/ui/select\"\nimport { cn } from \"@/lib/utils\"\n\n// ---------------------------------------------------------------------------\n// Helpers\n// ---------------------------------------------------------------------------\n\nfunction getColumnLabel(\n colId: string,\n columnLabels: Record<string, string>,\n col: Column<unknown, unknown> | undefined,\n): string {\n const meta = col?.columnDef.meta as { label?: string } | undefined\n return (\n columnLabels[colId] ??\n meta?.label ??\n (typeof col?.columnDef.header === \"string\" ? col.columnDef.header : undefined) ??\n colId\n )\n}\n\n// ---------------------------------------------------------------------------\n// DataTableGroup\n// ---------------------------------------------------------------------------\n\nconst NO_GROUPING = \"__none__\"\n\ninterface DataTableGroupProps {\n className?: string\n}\n\nfunction DataTableGroup({ className }: DataTableGroupProps) {\n const selectId = useId()\n const {\n table,\n columnLabels,\n grouping,\n setGrouping,\n groupConfig,\n enableGrouping,\n } = useDataTable()\n\n if (!enableGrouping) return null\n\n const allLeafColumns = table.getAllLeafColumns()\n\n const resolvedColumns =\n groupConfig.length > 0\n ? groupConfig\n : allLeafColumns\n .filter((col) => \"accessorKey\" in col.columnDef || \"accessorFn\" in col.columnDef)\n .map((col) => ({ columnId: col.id, label: undefined as string | undefined }))\n\n const activeColumn = grouping\n ? resolvedColumns.find((c) => c.columnId === grouping) ?? { columnId: grouping }\n : null\n\n const activeColumnLabel = activeColumn\n ? activeColumn.label ??\n getColumnLabel(\n activeColumn.columnId,\n columnLabels,\n allLeafColumns.find((lc) => lc.id === activeColumn.columnId),\n )\n : null\n\n return (\n <Popover.Root>\n <Popover.Trigger asChild>\n <Button\n type=\"button\"\n variant=\"outline\"\n size=\"sm\"\n data-slot=\"data-table-group\"\n className={cn(className)}\n aria-label={\n activeColumnLabel ? `Grouped by ${activeColumnLabel}` : \"Group by\"\n }\n >\n <GroupIcon className=\"size-3.5\" />\n {activeColumnLabel ? (\n <>\n Grouped by\n <span className=\"rounded-sm bg-primary px-1.5 text-[10px] font-medium text-primary-foreground\">\n {activeColumnLabel}\n </span>\n </>\n ) : (\n \"Group\"\n )}\n </Button>\n </Popover.Trigger>\n\n <Popover.Portal>\n <Popover.Content\n data-slot=\"data-table-group-panel\"\n aria-label=\"Group rows by\"\n align=\"end\"\n sideOffset={4}\n className={cn(\n \"z-50 min-w-64 rounded-lg border bg-popover p-3 text-popover-foreground shadow-elevation-4 outline-none\",\n \"data-[state=open]:animate-in data-[state=closed]:animate-out\",\n \"data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0\",\n \"data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95\",\n \"data-[side=bottom]:slide-in-from-top-2 data-[side=top]:slide-in-from-bottom-2\",\n )}\n >\n <div className=\"flex flex-col gap-2\">\n <label\n className=\"text-xs font-medium text-muted-foreground\"\n htmlFor={selectId}\n >\n Group rows by\n </label>\n <div className=\"flex items-center gap-2\">\n <Select\n value={grouping ?? NO_GROUPING}\n onValueChange={(v) => setGrouping(v === NO_GROUPING ? null : v)}\n >\n <SelectTrigger\n id={selectId}\n size=\"sm\"\n className=\"w-44\"\n >\n <SelectValue placeholder=\"Select column\" />\n </SelectTrigger>\n <SelectContent>\n <SelectItem value={NO_GROUPING}>None</SelectItem>\n {resolvedColumns.map((c) => {\n const col = allLeafColumns.find((lc) => lc.id === c.columnId)\n return (\n <SelectItem key={c.columnId} value={c.columnId}>\n {c.label ?? getColumnLabel(c.columnId, columnLabels, col)}\n </SelectItem>\n )\n })}\n </SelectContent>\n </Select>\n {grouping && (\n <Button\n type=\"button\"\n variant=\"ghost\"\n size=\"icon\"\n className=\"size-8 shrink-0 text-muted-foreground hover:text-foreground\"\n onClick={() => setGrouping(null)}\n aria-label=\"Clear grouping\"\n >\n <XIcon className=\"size-3.5\" />\n </Button>\n )}\n </div>\n </div>\n </Popover.Content>\n </Popover.Portal>\n </Popover.Root>\n )\n}\n\nDataTableGroup.displayName = \"DataTableGroup\"\n\nexport { DataTableGroup }\nexport type { DataTableGroupProps }\n"],"names":["getColumnLabel","colId","columnLabels","col","meta","NO_GROUPING","DataTableGroup","className","selectId","useId","table","grouping","setGrouping","groupConfig","enableGrouping","useDataTable","allLeafColumns","resolvedColumns","activeColumn","c","activeColumnLabel","lc","jsxs","Popover","jsx","Button","cn","GroupIcon","Fragment","Select","v","SelectTrigger","SelectValue","SelectContent","SelectItem","XIcon"],"mappings":"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"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
interface DataTableGroupProps {
|
|
2
|
+
className?: string;
|
|
3
|
+
}
|
|
4
|
+
declare function DataTableGroup({ className }: DataTableGroupProps): import("react/jsx-runtime").JSX.Element | null;
|
|
5
|
+
declare namespace DataTableGroup {
|
|
6
|
+
var displayName: string;
|
|
7
|
+
}
|
|
8
|
+
export { DataTableGroup };
|
|
9
|
+
export type { DataTableGroupProps };
|
|
@@ -3,8 +3,8 @@ import { GroupIcon as y, XIcon as z } from "lucide-react";
|
|
|
3
3
|
import { Popover as m } from "radix-ui";
|
|
4
4
|
import { useId as D } from "react";
|
|
5
5
|
import { useDataTable as S } from "./data-table.js";
|
|
6
|
-
import { Button as b } from "
|
|
7
|
-
import { Select as w, SelectTrigger as L, SelectValue as T, SelectContent as _, SelectItem as h } from "
|
|
6
|
+
import { Button as b } from "../../../ui/button.js";
|
|
7
|
+
import { Select as w, SelectTrigger as L, SelectValue as T, SelectContent as _, SelectItem as h } from "../../../ui/select.js";
|
|
8
8
|
import { cn as v } from "../../../lib/utils.js";
|
|
9
9
|
function x(n, r, a) {
|
|
10
10
|
const i = a?.columnDef.meta;
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("react/jsx-runtime"),g=require("lucide-react"),b=require("./data-table.cjs"),o=require("
|
|
1
|
+
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("react/jsx-runtime"),g=require("lucide-react"),b=require("./data-table.cjs"),o=require("../../../ui/button.cjs"),s=require("../../../ui/select.cjs"),j=require("../../../lib/utils.cjs"),P=5,S=10,v=25;function f({pageSizeOptions:u=[P,S,v],className:d}){const{table:t,grouping:x,enableGrouping:p}=b.useDataTable(),c=t.getPageCount(),{pageIndex:i,pageSize:r}=t.getState().pagination,l=t.getFilteredRowModel().rows.length;if(l===0||p&&x)return null;const h=i*r+1,m=Math.min((i+1)*r,l);return e.jsxs("div",{"data-slot":"data-table-pagination",className:j.cn("flex items-center justify-between gap-4 text-sm text-muted-foreground",d),children:[e.jsxs("div",{className:"flex items-center gap-2",children:[e.jsx("span",{className:"whitespace-nowrap",children:"Rows per page:"}),e.jsxs(s.Select,{value:String(r),onValueChange:a=>t.setPageSize(Number(a)),children:[e.jsx(s.SelectTrigger,{"aria-label":"Rows per page",className:"h-7 w-16",children:e.jsx(s.SelectValue,{})}),e.jsx(s.SelectContent,{children:u.map(a=>e.jsx(s.SelectItem,{value:String(a),children:a},a))})]}),e.jsxs("span",{className:"whitespace-nowrap tabular-nums",children:[h,"–",m," of ",l]})]}),c>1&&e.jsxs("div",{className:"flex items-center gap-1",children:[e.jsx(o.Button,{variant:"ghost",size:"icon-sm",onClick:()=>t.previousPage(),disabled:!t.getCanPreviousPage(),"aria-label":"Previous page",children:e.jsx(g.ChevronLeftIcon,{})}),Array.from({length:c},(a,n)=>e.jsx(o.Button,{variant:n===i?"default":"link",size:"icon-xs",onClick:()=>t.setPageIndex(n),"aria-label":`Page ${n+1}`,"aria-current":n===i?"page":void 0,children:n+1},n)),e.jsx(o.Button,{variant:"ghost",size:"icon-sm",onClick:()=>t.nextPage(),disabled:!t.getCanNextPage(),"aria-label":"Next page",children:e.jsx(g.ChevronRightIcon,{})})]})]})}exports.DataTablePagination=f;
|
|
2
2
|
//# sourceMappingURL=data-table-pagination.cjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"data-table-pagination.cjs","sources":["../../../../src/components/ui/data-table/data-table-pagination.tsx"],"sourcesContent":["\"use client\"\n\nimport { ChevronLeftIcon, ChevronRightIcon } from \"lucide-react\"\n\nimport { useDataTable } from \"./data-table\"\n\nimport { Button } from \"@/components/ui/button\"\nimport {\n Select,\n SelectContent,\n SelectItem,\n SelectTrigger,\n SelectValue,\n} from \"@/components/ui/select\"\nimport { cn } from \"@/lib/utils\"\n\ninterface DataTablePaginationProps {\n pageSizeOptions?: number[]\n className?: string\n}\n\nconst DEFAULT_PAGE_SIZE_SMALL = 5\nconst DEFAULT_PAGE_SIZE_MEDIUM = 10\nconst DEFAULT_PAGE_SIZE_LARGE = 25\n\nfunction DataTablePagination({\n pageSizeOptions = [DEFAULT_PAGE_SIZE_SMALL, DEFAULT_PAGE_SIZE_MEDIUM, DEFAULT_PAGE_SIZE_LARGE],\n className,\n}: DataTablePaginationProps) {\n const { table, grouping, enableGrouping } = useDataTable()\n\n const pageCount = table.getPageCount()\n const { pageIndex, pageSize } = table.getState().pagination\n const totalRows = table.getFilteredRowModel().rows.length\n\n if (totalRows === 0) return null\n if (enableGrouping && grouping) return null\n\n const start = pageIndex * pageSize + 1\n const end = Math.min((pageIndex + 1) * pageSize, totalRows)\n\n return (\n <div\n data-slot=\"data-table-pagination\"\n className={cn(\n \"flex items-center justify-between gap-4 text-sm text-muted-foreground\",\n className,\n )}\n >\n <div className=\"flex items-center gap-2\">\n <span className=\"whitespace-nowrap\">Rows per page:</span>\n <Select\n value={String(pageSize)}\n onValueChange={(value) => table.setPageSize(Number(value))}\n >\n <SelectTrigger aria-label=\"Rows per page\" className=\"h-7 w-16\">\n <SelectValue />\n </SelectTrigger>\n <SelectContent>\n {pageSizeOptions.map((size) => (\n <SelectItem key={size} value={String(size)}>\n {size}\n </SelectItem>\n ))}\n </SelectContent>\n </Select>\n <span className=\"whitespace-nowrap tabular-nums\">\n {start}–{end} of {totalRows}\n </span>\n </div>\n\n {pageCount > 1 && (\n <div className=\"flex items-center gap-1\">\n <Button\n variant=\"ghost\"\n size=\"icon-sm\"\n onClick={() => table.previousPage()}\n disabled={!table.getCanPreviousPage()}\n aria-label=\"Previous page\"\n >\n <ChevronLeftIcon />\n </Button>\n\n {Array.from({ length: pageCount }, (_, i) => (\n <Button\n key={i}\n variant={i === pageIndex ? \"default\" : \"link\"}\n size=\"icon-xs\"\n onClick={() => table.setPageIndex(i)}\n aria-label={`Page ${i + 1}`}\n aria-current={i === pageIndex ? \"page\" : undefined}\n >\n {i + 1}\n </Button>\n ))}\n\n <Button\n variant=\"ghost\"\n size=\"icon-sm\"\n onClick={() => table.nextPage()}\n disabled={!table.getCanNextPage()}\n aria-label=\"Next page\"\n >\n <ChevronRightIcon />\n </Button>\n </div>\n )}\n </div>\n )\n}\n\nexport { DataTablePagination }\nexport type { DataTablePaginationProps }\n"],"names":["DEFAULT_PAGE_SIZE_SMALL","DEFAULT_PAGE_SIZE_MEDIUM","DEFAULT_PAGE_SIZE_LARGE","DataTablePagination","pageSizeOptions","className","table","grouping","enableGrouping","useDataTable","pageCount","pageIndex","pageSize","totalRows","start","end","jsxs","cn","jsx","Select","value","SelectTrigger","SelectValue","SelectContent","size","SelectItem","Button","ChevronLeftIcon","_","i","ChevronRightIcon"],"mappings":"
|
|
1
|
+
{"version":3,"file":"data-table-pagination.cjs","sources":["../../../../src/components/ui/data-table/data-table-pagination.tsx"],"sourcesContent":["\"use client\"\n\nimport { ChevronLeftIcon, ChevronRightIcon } from \"lucide-react\"\n\nimport { useDataTable } from \"./data-table\"\n\nimport { Button } from \"@/components/ui/button\"\nimport {\n Select,\n SelectContent,\n SelectItem,\n SelectTrigger,\n SelectValue,\n} from \"@/components/ui/select\"\nimport { cn } from \"@/lib/utils\"\n\ninterface DataTablePaginationProps {\n pageSizeOptions?: number[]\n className?: string\n}\n\nconst DEFAULT_PAGE_SIZE_SMALL = 5\nconst DEFAULT_PAGE_SIZE_MEDIUM = 10\nconst DEFAULT_PAGE_SIZE_LARGE = 25\n\nfunction DataTablePagination({\n pageSizeOptions = [DEFAULT_PAGE_SIZE_SMALL, DEFAULT_PAGE_SIZE_MEDIUM, DEFAULT_PAGE_SIZE_LARGE],\n className,\n}: DataTablePaginationProps) {\n const { table, grouping, enableGrouping } = useDataTable()\n\n const pageCount = table.getPageCount()\n const { pageIndex, pageSize } = table.getState().pagination\n const totalRows = table.getFilteredRowModel().rows.length\n\n if (totalRows === 0) return null\n if (enableGrouping && grouping) return null\n\n const start = pageIndex * pageSize + 1\n const end = Math.min((pageIndex + 1) * pageSize, totalRows)\n\n return (\n <div\n data-slot=\"data-table-pagination\"\n className={cn(\n \"flex items-center justify-between gap-4 text-sm text-muted-foreground\",\n className,\n )}\n >\n <div className=\"flex items-center gap-2\">\n <span className=\"whitespace-nowrap\">Rows per page:</span>\n <Select\n value={String(pageSize)}\n onValueChange={(value) => table.setPageSize(Number(value))}\n >\n <SelectTrigger aria-label=\"Rows per page\" className=\"h-7 w-16\">\n <SelectValue />\n </SelectTrigger>\n <SelectContent>\n {pageSizeOptions.map((size) => (\n <SelectItem key={size} value={String(size)}>\n {size}\n </SelectItem>\n ))}\n </SelectContent>\n </Select>\n <span className=\"whitespace-nowrap tabular-nums\">\n {start}–{end} of {totalRows}\n </span>\n </div>\n\n {pageCount > 1 && (\n <div className=\"flex items-center gap-1\">\n <Button\n variant=\"ghost\"\n size=\"icon-sm\"\n onClick={() => table.previousPage()}\n disabled={!table.getCanPreviousPage()}\n aria-label=\"Previous page\"\n >\n <ChevronLeftIcon />\n </Button>\n\n {Array.from({ length: pageCount }, (_, i) => (\n <Button\n key={i}\n variant={i === pageIndex ? \"default\" : \"link\"}\n size=\"icon-xs\"\n onClick={() => table.setPageIndex(i)}\n aria-label={`Page ${i + 1}`}\n aria-current={i === pageIndex ? \"page\" : undefined}\n >\n {i + 1}\n </Button>\n ))}\n\n <Button\n variant=\"ghost\"\n size=\"icon-sm\"\n onClick={() => table.nextPage()}\n disabled={!table.getCanNextPage()}\n aria-label=\"Next page\"\n >\n <ChevronRightIcon />\n </Button>\n </div>\n )}\n </div>\n )\n}\n\nexport { DataTablePagination }\nexport type { DataTablePaginationProps }\n"],"names":["DEFAULT_PAGE_SIZE_SMALL","DEFAULT_PAGE_SIZE_MEDIUM","DEFAULT_PAGE_SIZE_LARGE","DataTablePagination","pageSizeOptions","className","table","grouping","enableGrouping","useDataTable","pageCount","pageIndex","pageSize","totalRows","start","end","jsxs","cn","jsx","Select","value","SelectTrigger","SelectValue","SelectContent","size","SelectItem","Button","ChevronLeftIcon","_","i","ChevronRightIcon"],"mappings":"yRAqBMA,EAA0B,EAC1BC,EAA2B,GAC3BC,EAA0B,GAEhC,SAASC,EAAoB,CAC3B,gBAAAC,EAAkB,CAACJ,EAAyBC,EAA0BC,CAAuB,EAC7F,UAAAG,CACF,EAA6B,CAC3B,KAAM,CAAE,MAAAC,EAAO,SAAAC,EAAU,eAAAC,CAAA,EAAmBC,EAAAA,aAAA,EAEtCC,EAAYJ,EAAM,aAAA,EAClB,CAAE,UAAAK,EAAW,SAAAC,CAAA,EAAaN,EAAM,WAAW,WAC3CO,EAAYP,EAAM,oBAAA,EAAsB,KAAK,OAGnD,GADIO,IAAc,GACdL,GAAkBD,EAAU,OAAO,KAEvC,MAAMO,EAAQH,EAAYC,EAAW,EAC/BG,EAAM,KAAK,KAAKJ,EAAY,GAAKC,EAAUC,CAAS,EAE1D,OACEG,EAAAA,KAAC,MAAA,CACC,YAAU,wBACV,UAAWC,EAAAA,GACT,wEACAZ,CAAA,EAGF,SAAA,CAAAW,EAAAA,KAAC,MAAA,CAAI,UAAU,0BACb,SAAA,CAAAE,EAAAA,IAAC,OAAA,CAAK,UAAU,oBAAoB,SAAA,iBAAc,EAClDF,EAAAA,KAACG,EAAAA,OAAA,CACC,MAAO,OAAOP,CAAQ,EACtB,cAAgBQ,GAAUd,EAAM,YAAY,OAAOc,CAAK,CAAC,EAEzD,SAAA,CAAAF,EAAAA,IAACG,EAAAA,eAAc,aAAW,gBAAgB,UAAU,WAClD,SAAAH,EAAAA,IAACI,gBAAY,CAAA,CACf,EACAJ,EAAAA,IAACK,EAAAA,cAAA,CACE,SAAAnB,EAAgB,IAAKoB,GACpBN,MAACO,EAAAA,WAAA,CAAsB,MAAO,OAAOD,CAAI,EACtC,SAAAA,CAAA,EADcA,CAEjB,CACD,CAAA,CACH,CAAA,CAAA,CAAA,EAEFR,EAAAA,KAAC,OAAA,CAAK,UAAU,iCACb,SAAA,CAAAF,EAAM,IAAQC,EAAI,OAAKF,CAAA,CAAA,CAC1B,CAAA,EACF,EAECH,EAAY,GACXM,OAAC,MAAA,CAAI,UAAU,0BACb,SAAA,CAAAE,EAAAA,IAACQ,EAAAA,OAAA,CACC,QAAQ,QACR,KAAK,UACL,QAAS,IAAMpB,EAAM,aAAA,EACrB,SAAU,CAACA,EAAM,mBAAA,EACjB,aAAW,gBAEX,eAACqB,EAAAA,gBAAA,CAAA,CAAgB,CAAA,CAAA,EAGlB,MAAM,KAAK,CAAE,OAAQjB,GAAa,CAACkB,EAAGC,IACrCX,EAAAA,IAACQ,EAAAA,OAAA,CAEC,QAASG,IAAMlB,EAAY,UAAY,OACvC,KAAK,UACL,QAAS,IAAML,EAAM,aAAauB,CAAC,EACnC,aAAY,QAAQA,EAAI,CAAC,GACzB,eAAcA,IAAMlB,EAAY,OAAS,OAExC,SAAAkB,EAAI,CAAA,EAPAA,CAAA,CASR,EAEDX,EAAAA,IAACQ,EAAAA,OAAA,CACC,QAAQ,QACR,KAAK,UACL,QAAS,IAAMpB,EAAM,SAAA,EACrB,SAAU,CAACA,EAAM,eAAA,EACjB,aAAW,YAEX,eAACwB,EAAAA,iBAAA,CAAA,CAAiB,CAAA,CAAA,CACpB,CAAA,CACF,CAAA,CAAA,CAAA,CAIR"}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
interface DataTablePaginationProps {
|
|
2
|
+
pageSizeOptions?: number[];
|
|
3
|
+
className?: string;
|
|
4
|
+
}
|
|
5
|
+
declare function DataTablePagination({ pageSizeOptions, className, }: DataTablePaginationProps): import("react/jsx-runtime").JSX.Element | null;
|
|
6
|
+
export { DataTablePagination };
|
|
7
|
+
export type { DataTablePaginationProps };
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
import { jsxs as r, jsx as e } from "react/jsx-runtime";
|
|
2
2
|
import { ChevronLeftIcon as f, ChevronRightIcon as b } from "lucide-react";
|
|
3
3
|
import { useDataTable as v } from "./data-table.js";
|
|
4
|
-
import { Button as s } from "
|
|
5
|
-
import { Select as x, SelectTrigger as P, SelectValue as S, SelectContent as w, SelectItem as C } from "
|
|
4
|
+
import { Button as s } from "../../../ui/button.js";
|
|
5
|
+
import { Select as x, SelectTrigger as P, SelectValue as S, SelectContent as w, SelectItem as C } from "../../../ui/select.js";
|
|
6
6
|
import { cn as E } from "../../../lib/utils.js";
|
|
7
7
|
const _ = 5, A = 10, I = 25;
|
|
8
8
|
function M({
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const n=require("react/jsx-runtime"),C=require("@dnd-kit/core"),qe=require("@dnd-kit/modifiers"),G=require("@dnd-kit/sortable"),Fe=require("@dnd-kit/utilities"),w=require("@tanstack/react-table"),T=require("lucide-react"),Ke=require("react"),Pe=require("./data-table-pagination.cjs"),g=require("../table.cjs"),D=require("../../../lib/utils.cjs");function Ae(e){const o=Object.create(null,{[Symbol.toStringTag]:{value:"Module"}});if(e){for(const r in e)if(r!=="default"){const t=Object.getOwnPropertyDescriptor(e,r);Object.defineProperty(o,r,t.get?t:{enumerable:!0,get:()=>e[r]})}}return o.default=e,Object.freeze(o)}const i=Ae(Ke);function A(e,o,r){const t=e.toLowerCase().trim(),l=r.toLowerCase().trim();switch(o){case"contains":return t.includes(l);case"equals":return t===l;case"not_equals":return t!==l;case"starts_with":return t.startsWith(l);case"ends_with":return t.endsWith(l);case"is_empty":return t==="";case"is_not_empty":return t!=="";default:return!0}}const B=i.createContext(null);function U(){const e=i.useContext(B);if(!e)throw new Error("useDataTable must be used within a <DataTable>");return e}function Be({header:e,children:o,position:r,numeric:t,truncate:l}){const{attributes:a,listeners:s,setNodeRef:c,transform:u,transition:d,isDragging:m}=G.useSortable({id:e.column.id}),{columnLabels:f}=U(),b=f[e.column.id]??e.column.columnDef.meta?.label??(typeof e.column.columnDef.header=="string"?e.column.columnDef.header:e.column.id),x={transform:Fe.CSS.Transform.toString(u?{...u,scaleX:1,scaleY:1}:null),transition:d,position:"relative"};return n.jsx(g.TableHead,{ref:c,style:x,variant:t?"numeric":void 0,truncate:l,className:D.cn("group/header transition-shadow duration-150",!m&&r==="first"&&"hover:shadow-[inset_-1px_0_0_0_var(--color-border)]",!m&&r==="last"&&"hover:shadow-[inset_1px_0_0_0_var(--color-border)]",!m&&r==="middle"&&"hover:shadow-[inset_1px_0_0_0_var(--color-border),inset_-1px_0_0_0_var(--color-border)]",m&&"opacity-40"),children:n.jsxs("div",{className:D.cn("flex items-center gap-1 min-w-0",t&&"flex-row-reverse"),children:[n.jsx("div",{className:"flex-1 min-w-0",children:o}),n.jsx("button",{type:"button","data-drag-handle":"","aria-label":`Drag to reorder ${b} column`,className:"cursor-grab touch-none text-muted-foreground hover:text-foreground active:cursor-grabbing opacity-0 group-hover/header:opacity-100 transition-opacity",...a,...s,children:n.jsx(T.GripVerticalIcon,{className:"size-3.5"})})]})})}function Y({header:e,enableSorting:o,numericColumns:r,columnLabels:t,truncate:l}){if(e.isPlaceholder)return null;const a=o&&e.column.getCanSort(),s=e.column.getIsSorted(),c=r.has(e.column.id);return n.jsxs("div",{className:D.cn("flex items-center gap-1 min-w-0",a&&"group/sort cursor-pointer select-none",c&&"flex-row-reverse"),onClick:a?e.column.getToggleSortingHandler():void 0,onKeyDown:u=>{(u.key==="Enter"||u.key===" ")&&a&&e.column.getToggleSortingHandler()},children:[n.jsx("span",{className:D.cn("min-w-0",l&&"truncate"),children:t[e.column.id]??w.flexRender(e.column.columnDef.header,e.getContext())}),a&&n.jsx("span",{className:D.cn(!s&&"opacity-0 group-hover/sort:opacity-100 transition-opacity"),children:s==="asc"?n.jsx(T.ArrowUpIcon,{className:"size-3.5 text-foreground"}):s==="desc"?n.jsx(T.ArrowDownIcon,{className:"size-3.5 text-foreground"}):n.jsx(T.ArrowUpDownIcon,{className:"size-3.5 text-muted-foreground"})})]})}const z="—";function Ue(e,o){const r=new Map,t=new Map;for(const s of e){const c=s.getValue(o),u=c==null||c==="",d=u?z:String(c),m=r.get(d);m?m.push(s):(r.set(d,[s]),t.set(d,u?null:c))}const l=[...r.keys()],a=l.every(s=>s===z||typeof t.get(s)=="number");return l.sort((s,c)=>s===z?1:c===z?-1:a?t.get(s)-t.get(c):s.localeCompare(c,void 0,{sensitivity:"base",numeric:!0})),{order:l,buckets:r}}function Ye(e,o,r,t){const l=e.getColumn(o);return r.find(a=>a.columnId===o)?.label??t[o]??(typeof l?.columnDef.header=="string"?l.columnDef.header:o)}function We({row:e,numericColumns:o,truncate:r}){return n.jsx(g.TableRow,{"data-state":e.getIsSelected()?"selected":void 0,children:e.getVisibleCells().map(t=>n.jsx(g.TableCell,{variant:o.has(t.column.id)?"numeric":void 0,truncate:r&&(t.column.columnDef.meta?.truncate??!0),children:w.flexRender(t.column.columnDef.cell,t.getContext())},t.id))})}function Xe({groupKey:e,groupLabel:o,isExpanded:r,colSpan:t,onToggle:l}){return n.jsx(g.TableRow,{"data-slot":"data-table-group-header",children:n.jsx(g.TableCell,{colSpan:t,className:"p-0 font-medium",children:n.jsxs("button",{type:"button",onClick:l,"aria-expanded":r,"aria-label":`${r?"Collapse":"Expand"} group ${e}`,className:"flex w-full items-center gap-2 text-left p-4 in-data-[density=compact]:py-2 in-data-[density=relaxed]:py-5 cursor-pointer focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-inset",children:[r?n.jsx(T.ChevronDownIcon,{className:"size-3.5 shrink-0 text-muted-foreground"}):n.jsx(T.ChevronRightIcon,{className:"size-3.5 shrink-0 text-muted-foreground"}),n.jsx("span",{className:"text-xs uppercase tracking-wide text-muted-foreground",children:o}),n.jsx("span",{className:"truncate",children:e})]})})})}function $e({table:e,numericColumns:o,truncate:r,grouping:t,groupConfig:l,columnLabels:a,collapsedGroups:s,onToggleGroup:c}){const u=e.getVisibleLeafColumns().length,d=e.getSortedRowModel().rows;if(d.length===0)return n.jsx(g.TableRow,{children:n.jsx(g.TableCell,{colSpan:u,className:"h-24 text-center text-muted-foreground",children:"No results."})});const{order:m,buckets:f}=Ue(d,t),b=Ye(e,t,l,a);return n.jsx(n.Fragment,{children:m.map(x=>{const S=f.get(x)??[],h=!s.has(x);return n.jsxs(i.Fragment,{children:[n.jsx(Xe,{groupKey:x,groupLabel:b,isExpanded:h,colSpan:u,onToggle:()=>c(x)}),h&&S.map(y=>n.jsx(We,{row:y,numericColumns:o,truncate:r},y.id))]},`group-${x}`)})})}function Je(e,o){if(e.length===0)return new Set;const r=e[0],t=new Set;for(const l of o){const a="accessorKey"in l?String(l.accessorKey):"";a&&typeof r[a]=="number"&&t.add(a)}return t}function K(e){return e.filter(o=>"accessorKey"in o).map(o=>({columnId:String(o.accessorKey)}))}function Qe(e,o){const r=o.filter(t=>t.columnId&&t.operator&&(t.value.trim()!==""||t.operator==="is_empty"||t.operator==="is_not_empty"));return r.length===0?e:e.filter(t=>r.every(l=>{const a=String(t[l.columnId]??"");return A(a,l.operator,l.value)}))}function Ze(e,o){const r=C.useSensors(C.useSensor(C.PointerSensor,{activationConstraint:{distance:5}}),C.useSensor(C.KeyboardSensor,{coordinateGetter:G.sortableKeyboardCoordinates})),[t,l]=i.useState(null),a=i.useCallback(u=>{l(String(u.active.id))},[]),s=i.useCallback(u=>{l(null);const{active:d,over:m}=u;if(!m||d.id===m.id)return;const f=o.length>0?o:e.getAllLeafColumns().map(h=>h.id),b=f.indexOf(String(d.id)),x=f.indexOf(String(m.id));if(b===-1||x===-1)return;const S=G.arrayMove(f,b,x);e.setColumnOrder(S)},[o,e]),c=t?e.getFlatHeaders().find(u=>u.column.id===t):null;return{sensors:r,draggingHeader:c,handleDragStart:a,handleDragEnd:s}}function et(e,o){const[r,t]=i.useState(null),[l,a]=i.useState(()=>new Set),s=e===void 0?r:e,c=i.useCallback(d=>{a(new Set),(o??t)(d)},[o]),u=i.useCallback(d=>{a(m=>{const f=new Set(m);return f.has(d)?f.delete(d):f.add(d),f})},[]);return{grouping:s,collapsedGroups:l,handleGroupingChange:c,toggleGroup:u}}function tt({table:e,enableSorting:o,numericColumns:r,columnLabels:t,truncate:l}){return n.jsx(n.Fragment,{children:e.getHeaderGroups().map(a=>n.jsx(g.TableRow,{children:a.headers.map(s=>n.jsx(g.TableHead,{variant:r.has(s.column.id)?"numeric":void 0,truncate:l&&(s.column.columnDef.meta?.truncate??!0),children:n.jsx(Y,{header:s,enableSorting:o,numericColumns:r,columnLabels:t,truncate:l&&(s.column.columnDef.meta?.truncate??!0)})},s.id))},a.id))})}function nt({table:e,enableSorting:o,numericColumns:r,columnLabels:t,truncate:l}){return n.jsx(n.Fragment,{children:e.getHeaderGroups().map(a=>n.jsx(g.TableRow,{children:a.headers.map((s,c)=>{const u=c===0?"first":c===a.headers.length-1?"last":"middle";return n.jsx(Be,{header:s,position:u,numeric:r.has(s.column.id),truncate:l&&(s.column.columnDef.meta?.truncate??!0),children:n.jsx(Y,{header:s,enableSorting:o,numericColumns:r,columnLabels:t,truncate:l&&(s.column.columnDef.meta?.truncate??!0)})},s.id)})},a.id))})}function P({table:e,useFlexSize:o}){return n.jsx("colgroup",{children:e.getHeaderGroups()[0]?.headers.map(r=>o?n.jsx("col",{style:{width:r.column.getSize()}},r.id):n.jsx("col",{style:r.column.columnDef.size==null?void 0:{width:r.column.columnDef.size}},r.id))})}function ot(e){const{table:o,columns:r,variant:t,containerClassName:l,density:a,hasExplicitSize:s,enableSorting:c,enableColumnReorder:u,enableGrouping:d,grouping:m,groupConfig:f,collapsedGroups:b,onToggleGroup:x,numericColumns:S,columnLabels:h,truncate:y,reorderSensors:R,draggingHeader:v,onDragStart:M,onDragEnd:H}=e,_=n.jsx(rt,{table:o,columns:r,numericColumns:S,truncate:y,grouping:d?m:null,groupConfig:f,columnLabels:h,collapsedGroups:b,onToggleGroup:x});return u?n.jsxs(C.DndContext,{sensors:R,collisionDetection:C.closestCenter,modifiers:[qe.restrictToHorizontalAxis],onDragStart:M,onDragEnd:H,children:[n.jsx(G.SortableContext,{items:o.getFlatHeaders().map(N=>N.column.id),strategy:G.horizontalListSortingStrategy,children:n.jsxs(g.Table,{"data-density":a,variant:t,containerClassName:l,layout:s?"fixed":void 0,children:[s&&n.jsx(P,{table:o,useFlexSize:!0}),n.jsx(g.TableHeader,{children:n.jsx(nt,{table:o,enableSorting:c,numericColumns:S,columnLabels:h,truncate:y})}),n.jsx(g.TableBody,{children:_})]})}),n.jsx(C.DragOverlay,{dropAnimation:null,children:v&&n.jsx("div",{className:"rounded-md border bg-background px-4 py-3 text-sm font-medium shadow-elevation-5",children:h[v.column.id]??(typeof v.column.columnDef.header=="string"?v.column.columnDef.header:v.column.id)})})]}):n.jsxs(g.Table,{"data-density":a,variant:t,containerClassName:l,layout:s?"fixed":void 0,children:[s&&n.jsx(P,{table:o,useFlexSize:!1}),n.jsx(g.TableHeader,{children:n.jsx(tt,{table:o,enableSorting:c,numericColumns:S,columnLabels:h,truncate:y})}),n.jsx(g.TableBody,{children:_})]})}function rt({table:e,columns:o,numericColumns:r,truncate:t,grouping:l,groupConfig:a,columnLabels:s,collapsedGroups:c,onToggleGroup:u}){return l?n.jsx($e,{table:e,numericColumns:r,truncate:t,grouping:l,groupConfig:a,columnLabels:s,collapsedGroups:c,onToggleGroup:u}):e.getRowModel().rows.length===0?n.jsx(g.TableRow,{children:n.jsx(g.TableCell,{colSpan:o.length,className:"h-24 text-center text-muted-foreground",children:"No results."})}):e.getRowModel().rows.map(d=>n.jsx(g.TableRow,{"data-state":d.getIsSelected()?"selected":void 0,children:d.getVisibleCells().map(m=>n.jsx(g.TableCell,{variant:r.has(m.column.id)?"numeric":void 0,truncate:t&&(m.column.columnDef.meta?.truncate??!0),children:w.flexRender(m.column.columnDef.cell,m.getContext())},m.id))},d.id))}function st(e){const o=[],r=[],t=[],l=[],a=[];return i.Children.forEach(e,s=>{i.isValidElement(s)&&s.type===W?o.push(s):i.isValidElement(s)&&s.type.displayName==="DataTableFilter"?r.push(s):i.isValidElement(s)&&s.type.displayName==="DataTableGroup"?t.push(s):i.isValidElement(s)&&s.type===Pe.DataTablePagination?l.push(s):a.push(s)}),{toolbarSlots:o,filterSlots:r,groupSlots:t,paginationSlots:l,restSlots:a}}function lt({columns:e,data:o,toolbar:r,enableSorting:t=!1,enableColumnVisibility:l=!1,children:a,columnOrder:s,onColumnOrderChange:c,columnVisibility:u,onColumnVisibilityChange:d,columnLabels:m,onColumnLabelChange:f,enablePagination:b=!1,defaultPageSize:x=10,pagination:S,onPaginationChange:h,enableColumnReorder:y=!1,enableFiltering:R=!1,filters:v,onFiltersChange:M,filterConfig:H,manualFiltering:_=!1,enableGrouping:N=!1,grouping:X,onGroupingChange:$,groupConfig:L,density:J="default",className:Q,variant:Z="card",containerClassName:ee,truncate:te=!0}){const[ne,oe]=i.useState([]),[re,se]=i.useState({}),[le,ae]=i.useState([]),[ie,ce]=i.useState({}),[ue,de]=i.useState({pageIndex:0,pageSize:x}),[me,ge]=i.useState([]),{grouping:V,collapsedGroups:fe,handleGroupingChange:pe,toggleGroup:xe}=et(X,$),be=S??ue,k=v??me,E=u??re,I=s??le,q=m??ie,he=i.useMemo(()=>{if(b)return h?p=>{const j=typeof p=="function"?p(S):p;h(j)}:de},[b,h,S]),Se=i.useMemo(()=>{if(l)return p=>{const j=typeof p=="function"?p(E):p;(d??se)(j)}},[l,E,d]),ye=i.useCallback(p=>{(M??ge)(p)},[M]),Ce=i.useMemo(()=>H??K(e),[H,e]),F=i.useMemo(()=>L??K(e),[L,e]),ve=i.useMemo(()=>!R||_?o:Qe(o,k),[o,k,R,_]),je=i.useCallback(p=>{const j=typeof p=="function"?p(I):p;(c??ae)(j)},[I,c]),O=w.useReactTable({data:ve,columns:e,state:{sorting:t?ne:void 0,columnVisibility:l?E:void 0,columnOrder:I.length>0?I:void 0,...b?{pagination:be}:{}},onSortingChange:t?oe:void 0,onPaginationChange:he,onColumnVisibilityChange:Se,onColumnOrderChange:je,getCoreRowModel:w.getCoreRowModel(),getSortedRowModel:t||N?w.getSortedRowModel():void 0,getPaginationRowModel:b?w.getPaginationRowModel():void 0}),we=i.useCallback((p,j)=>{(f??((Oe,Le)=>ce(Ve=>({...Ve,[Oe]:Le}))))(p,j)},[f]),{sensors:De,draggingHeader:Te,handleDragStart:Re,handleDragEnd:_e}=Ze(O,I),Ne=i.useMemo(()=>Je(o,e),[o,e]),Ie=e.some(p=>p.size!=null),Ge={table:O,columnLabels:q,setColumnLabel:we,filters:k,setFilters:ye,filterConfig:Ce,enableFiltering:R,grouping:V,setGrouping:pe,groupConfig:F,enableGrouping:N},{toolbarSlots:Me,filterSlots:He,groupSlots:ze,paginationSlots:ke,restSlots:Ee}=st(a);return n.jsx(B.Provider,{value:Ge,children:n.jsxs("div",{"data-slot":"data-table",className:D.cn("w-full space-y-2",Q),children:[r,Me,He,ze,n.jsx(ot,{table:O,columns:e,variant:Z,containerClassName:ee,density:J,hasExplicitSize:Ie,enableSorting:t,enableColumnReorder:y,enableGrouping:N,grouping:V,groupConfig:F,collapsedGroups:fe,onToggleGroup:xe,numericColumns:Ne,columnLabels:q,truncate:te,reorderSensors:De,draggingHeader:Te,onDragStart:Re,onDragEnd:_e}),ke,Ee]})})}function W({className:e,children:o,...r}){return n.jsx("div",{"data-slot":"table-toolbar",className:D.cn("flex items-center justify-end gap-2",e),...r,children:o})}exports.DataTable=lt;exports.TableToolbar=W;exports.applyFilterCondition=A;exports.useDataTable=U;
|
|
1
|
+
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const n=require("react/jsx-runtime"),C=require("@dnd-kit/core"),qe=require("@dnd-kit/modifiers"),G=require("@dnd-kit/sortable"),Fe=require("@dnd-kit/utilities"),w=require("@tanstack/react-table"),T=require("lucide-react"),Ke=require("react"),Pe=require("./data-table-pagination.cjs"),g=require("../../../ui/table.cjs"),D=require("../../../lib/utils.cjs");function Ae(e){const o=Object.create(null,{[Symbol.toStringTag]:{value:"Module"}});if(e){for(const r in e)if(r!=="default"){const t=Object.getOwnPropertyDescriptor(e,r);Object.defineProperty(o,r,t.get?t:{enumerable:!0,get:()=>e[r]})}}return o.default=e,Object.freeze(o)}const i=Ae(Ke);function A(e,o,r){const t=e.toLowerCase().trim(),l=r.toLowerCase().trim();switch(o){case"contains":return t.includes(l);case"equals":return t===l;case"not_equals":return t!==l;case"starts_with":return t.startsWith(l);case"ends_with":return t.endsWith(l);case"is_empty":return t==="";case"is_not_empty":return t!=="";default:return!0}}const B=i.createContext(null);function $(){const e=i.useContext(B);if(!e)throw new Error("useDataTable must be used within a <DataTable>");return e}function Be({header:e,children:o,position:r,numeric:t,truncate:l}){const{attributes:a,listeners:s,setNodeRef:c,transform:u,transition:d,isDragging:m}=G.useSortable({id:e.column.id}),{columnLabels:f}=$(),b=f[e.column.id]??e.column.columnDef.meta?.label??(typeof e.column.columnDef.header=="string"?e.column.columnDef.header:e.column.id),x={transform:Fe.CSS.Transform.toString(u?{...u,scaleX:1,scaleY:1}:null),transition:d,position:"relative"};return n.jsx(g.TableHead,{ref:c,style:x,variant:t?"numeric":void 0,truncate:l,className:D.cn("group/header transition-shadow duration-150",!m&&r==="first"&&"hover:shadow-[inset_-1px_0_0_0_var(--color-border)]",!m&&r==="last"&&"hover:shadow-[inset_1px_0_0_0_var(--color-border)]",!m&&r==="middle"&&"hover:shadow-[inset_1px_0_0_0_var(--color-border),inset_-1px_0_0_0_var(--color-border)]",m&&"opacity-40"),children:n.jsxs("div",{className:D.cn("flex items-center gap-1 min-w-0",t&&"flex-row-reverse"),children:[n.jsx("div",{className:"flex-1 min-w-0",children:o}),n.jsx("button",{type:"button","data-drag-handle":"","aria-label":`Drag to reorder ${b} column`,className:"cursor-grab touch-none text-muted-foreground hover:text-foreground active:cursor-grabbing opacity-0 group-hover/header:opacity-100 transition-opacity",...a,...s,children:n.jsx(T.GripVerticalIcon,{className:"size-3.5"})})]})})}function U({header:e,enableSorting:o,numericColumns:r,columnLabels:t,truncate:l}){if(e.isPlaceholder)return null;const a=o&&e.column.getCanSort(),s=e.column.getIsSorted(),c=r.has(e.column.id);return n.jsxs("div",{className:D.cn("flex items-center gap-1 min-w-0",a&&"group/sort cursor-pointer select-none",c&&"flex-row-reverse"),onClick:a?e.column.getToggleSortingHandler():void 0,onKeyDown:u=>{(u.key==="Enter"||u.key===" ")&&a&&e.column.getToggleSortingHandler()},children:[n.jsx("span",{className:D.cn("min-w-0",l&&"truncate"),children:t[e.column.id]??w.flexRender(e.column.columnDef.header,e.getContext())}),a&&n.jsx("span",{className:D.cn(!s&&"opacity-0 group-hover/sort:opacity-100 transition-opacity"),children:s==="asc"?n.jsx(T.ArrowUpIcon,{className:"size-3.5 text-foreground"}):s==="desc"?n.jsx(T.ArrowDownIcon,{className:"size-3.5 text-foreground"}):n.jsx(T.ArrowUpDownIcon,{className:"size-3.5 text-muted-foreground"})})]})}const z="—";function $e(e,o){const r=new Map,t=new Map;for(const s of e){const c=s.getValue(o),u=c==null||c==="",d=u?z:String(c),m=r.get(d);m?m.push(s):(r.set(d,[s]),t.set(d,u?null:c))}const l=[...r.keys()],a=l.every(s=>s===z||typeof t.get(s)=="number");return l.sort((s,c)=>s===z?1:c===z?-1:a?t.get(s)-t.get(c):s.localeCompare(c,void 0,{sensitivity:"base",numeric:!0})),{order:l,buckets:r}}function Ue(e,o,r,t){const l=e.getColumn(o);return r.find(a=>a.columnId===o)?.label??t[o]??(typeof l?.columnDef.header=="string"?l.columnDef.header:o)}function Ye({row:e,numericColumns:o,truncate:r}){return n.jsx(g.TableRow,{"data-state":e.getIsSelected()?"selected":void 0,children:e.getVisibleCells().map(t=>n.jsx(g.TableCell,{variant:o.has(t.column.id)?"numeric":void 0,truncate:r&&(t.column.columnDef.meta?.truncate??!0),children:w.flexRender(t.column.columnDef.cell,t.getContext())},t.id))})}function We({groupKey:e,groupLabel:o,isExpanded:r,colSpan:t,onToggle:l}){return n.jsx(g.TableRow,{"data-slot":"data-table-group-header",children:n.jsx(g.TableCell,{colSpan:t,className:"p-0 font-medium",children:n.jsxs("button",{type:"button",onClick:l,"aria-expanded":r,"aria-label":`${r?"Collapse":"Expand"} group ${e}`,className:"flex w-full items-center gap-2 text-left p-4 in-data-[density=compact]:py-2 in-data-[density=relaxed]:py-5 cursor-pointer focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-inset",children:[r?n.jsx(T.ChevronDownIcon,{className:"size-3.5 shrink-0 text-muted-foreground"}):n.jsx(T.ChevronRightIcon,{className:"size-3.5 shrink-0 text-muted-foreground"}),n.jsx("span",{className:"text-xs uppercase tracking-wide text-muted-foreground",children:o}),n.jsx("span",{className:"truncate",children:e})]})})})}function Xe({table:e,numericColumns:o,truncate:r,grouping:t,groupConfig:l,columnLabels:a,collapsedGroups:s,onToggleGroup:c}){const u=e.getVisibleLeafColumns().length,d=e.getSortedRowModel().rows;if(d.length===0)return n.jsx(g.TableRow,{children:n.jsx(g.TableCell,{colSpan:u,className:"h-24 text-center text-muted-foreground",children:"No results."})});const{order:m,buckets:f}=$e(d,t),b=Ue(e,t,l,a);return n.jsx(n.Fragment,{children:m.map(x=>{const S=f.get(x)??[],h=!s.has(x);return n.jsxs(i.Fragment,{children:[n.jsx(We,{groupKey:x,groupLabel:b,isExpanded:h,colSpan:u,onToggle:()=>c(x)}),h&&S.map(y=>n.jsx(Ye,{row:y,numericColumns:o,truncate:r},y.id))]},`group-${x}`)})})}function Je(e,o){if(e.length===0)return new Set;const r=e[0],t=new Set;for(const l of o){const a="accessorKey"in l?String(l.accessorKey):"";a&&typeof r[a]=="number"&&t.add(a)}return t}function K(e){return e.filter(o=>"accessorKey"in o).map(o=>({columnId:String(o.accessorKey)}))}function Qe(e,o){const r=o.filter(t=>t.columnId&&t.operator&&(t.value.trim()!==""||t.operator==="is_empty"||t.operator==="is_not_empty"));return r.length===0?e:e.filter(t=>r.every(l=>{const a=String(t[l.columnId]??"");return A(a,l.operator,l.value)}))}function Ze(e,o){const r=C.useSensors(C.useSensor(C.PointerSensor,{activationConstraint:{distance:5}}),C.useSensor(C.KeyboardSensor,{coordinateGetter:G.sortableKeyboardCoordinates})),[t,l]=i.useState(null),a=i.useCallback(u=>{l(String(u.active.id))},[]),s=i.useCallback(u=>{l(null);const{active:d,over:m}=u;if(!m||d.id===m.id)return;const f=o.length>0?o:e.getAllLeafColumns().map(h=>h.id),b=f.indexOf(String(d.id)),x=f.indexOf(String(m.id));if(b===-1||x===-1)return;const S=G.arrayMove(f,b,x);e.setColumnOrder(S)},[o,e]),c=t?e.getFlatHeaders().find(u=>u.column.id===t):null;return{sensors:r,draggingHeader:c,handleDragStart:a,handleDragEnd:s}}function et(e,o){const[r,t]=i.useState(null),[l,a]=i.useState(()=>new Set),s=e===void 0?r:e,c=i.useCallback(d=>{a(new Set),(o??t)(d)},[o]),u=i.useCallback(d=>{a(m=>{const f=new Set(m);return f.has(d)?f.delete(d):f.add(d),f})},[]);return{grouping:s,collapsedGroups:l,handleGroupingChange:c,toggleGroup:u}}function tt({table:e,enableSorting:o,numericColumns:r,columnLabels:t,truncate:l}){return n.jsx(n.Fragment,{children:e.getHeaderGroups().map(a=>n.jsx(g.TableRow,{children:a.headers.map(s=>n.jsx(g.TableHead,{variant:r.has(s.column.id)?"numeric":void 0,truncate:l&&(s.column.columnDef.meta?.truncate??!0),children:n.jsx(U,{header:s,enableSorting:o,numericColumns:r,columnLabels:t,truncate:l&&(s.column.columnDef.meta?.truncate??!0)})},s.id))},a.id))})}function nt({table:e,enableSorting:o,numericColumns:r,columnLabels:t,truncate:l}){return n.jsx(n.Fragment,{children:e.getHeaderGroups().map(a=>n.jsx(g.TableRow,{children:a.headers.map((s,c)=>{const u=c===0?"first":c===a.headers.length-1?"last":"middle";return n.jsx(Be,{header:s,position:u,numeric:r.has(s.column.id),truncate:l&&(s.column.columnDef.meta?.truncate??!0),children:n.jsx(U,{header:s,enableSorting:o,numericColumns:r,columnLabels:t,truncate:l&&(s.column.columnDef.meta?.truncate??!0)})},s.id)})},a.id))})}function P({table:e,useFlexSize:o}){return n.jsx("colgroup",{children:e.getHeaderGroups()[0]?.headers.map(r=>o?n.jsx("col",{style:{width:r.column.getSize()}},r.id):n.jsx("col",{style:r.column.columnDef.size==null?void 0:{width:r.column.columnDef.size}},r.id))})}function ot(e){const{table:o,columns:r,variant:t,containerClassName:l,density:a,hasExplicitSize:s,enableSorting:c,enableColumnReorder:u,enableGrouping:d,grouping:m,groupConfig:f,collapsedGroups:b,onToggleGroup:x,numericColumns:S,columnLabels:h,truncate:y,reorderSensors:R,draggingHeader:v,onDragStart:M,onDragEnd:H}=e,_=n.jsx(rt,{table:o,columns:r,numericColumns:S,truncate:y,grouping:d?m:null,groupConfig:f,columnLabels:h,collapsedGroups:b,onToggleGroup:x});return u?n.jsxs(C.DndContext,{sensors:R,collisionDetection:C.closestCenter,modifiers:[qe.restrictToHorizontalAxis],onDragStart:M,onDragEnd:H,children:[n.jsx(G.SortableContext,{items:o.getFlatHeaders().map(N=>N.column.id),strategy:G.horizontalListSortingStrategy,children:n.jsxs(g.Table,{"data-density":a,variant:t,containerClassName:l,layout:s?"fixed":void 0,children:[s&&n.jsx(P,{table:o,useFlexSize:!0}),n.jsx(g.TableHeader,{children:n.jsx(nt,{table:o,enableSorting:c,numericColumns:S,columnLabels:h,truncate:y})}),n.jsx(g.TableBody,{children:_})]})}),n.jsx(C.DragOverlay,{dropAnimation:null,children:v&&n.jsx("div",{className:"rounded-md border bg-background px-4 py-3 text-sm font-medium shadow-elevation-5",children:h[v.column.id]??(typeof v.column.columnDef.header=="string"?v.column.columnDef.header:v.column.id)})})]}):n.jsxs(g.Table,{"data-density":a,variant:t,containerClassName:l,layout:s?"fixed":void 0,children:[s&&n.jsx(P,{table:o,useFlexSize:!1}),n.jsx(g.TableHeader,{children:n.jsx(tt,{table:o,enableSorting:c,numericColumns:S,columnLabels:h,truncate:y})}),n.jsx(g.TableBody,{children:_})]})}function rt({table:e,columns:o,numericColumns:r,truncate:t,grouping:l,groupConfig:a,columnLabels:s,collapsedGroups:c,onToggleGroup:u}){return l?n.jsx(Xe,{table:e,numericColumns:r,truncate:t,grouping:l,groupConfig:a,columnLabels:s,collapsedGroups:c,onToggleGroup:u}):e.getRowModel().rows.length===0?n.jsx(g.TableRow,{children:n.jsx(g.TableCell,{colSpan:o.length,className:"h-24 text-center text-muted-foreground",children:"No results."})}):e.getRowModel().rows.map(d=>n.jsx(g.TableRow,{"data-state":d.getIsSelected()?"selected":void 0,children:d.getVisibleCells().map(m=>n.jsx(g.TableCell,{variant:r.has(m.column.id)?"numeric":void 0,truncate:t&&(m.column.columnDef.meta?.truncate??!0),children:w.flexRender(m.column.columnDef.cell,m.getContext())},m.id))},d.id))}function st(e){const o=[],r=[],t=[],l=[],a=[];return i.Children.forEach(e,s=>{i.isValidElement(s)&&s.type===Y?o.push(s):i.isValidElement(s)&&s.type.displayName==="DataTableFilter"?r.push(s):i.isValidElement(s)&&s.type.displayName==="DataTableGroup"?t.push(s):i.isValidElement(s)&&s.type===Pe.DataTablePagination?l.push(s):a.push(s)}),{toolbarSlots:o,filterSlots:r,groupSlots:t,paginationSlots:l,restSlots:a}}function lt({columns:e,data:o,toolbar:r,enableSorting:t=!1,enableColumnVisibility:l=!1,children:a,columnOrder:s,onColumnOrderChange:c,columnVisibility:u,onColumnVisibilityChange:d,columnLabels:m,onColumnLabelChange:f,enablePagination:b=!1,defaultPageSize:x=10,pagination:S,onPaginationChange:h,enableColumnReorder:y=!1,enableFiltering:R=!1,filters:v,onFiltersChange:M,filterConfig:H,manualFiltering:_=!1,enableGrouping:N=!1,grouping:W,onGroupingChange:X,groupConfig:L,density:J="default",className:Q,variant:Z="card",containerClassName:ee,truncate:te=!0}){const[ne,oe]=i.useState([]),[re,se]=i.useState({}),[le,ae]=i.useState([]),[ie,ce]=i.useState({}),[ue,de]=i.useState({pageIndex:0,pageSize:x}),[me,ge]=i.useState([]),{grouping:V,collapsedGroups:fe,handleGroupingChange:pe,toggleGroup:xe}=et(W,X),be=S??ue,k=v??me,E=u??re,I=s??le,q=m??ie,he=i.useMemo(()=>{if(b)return h?p=>{const j=typeof p=="function"?p(S):p;h(j)}:de},[b,h,S]),Se=i.useMemo(()=>{if(l)return p=>{const j=typeof p=="function"?p(E):p;(d??se)(j)}},[l,E,d]),ye=i.useCallback(p=>{(M??ge)(p)},[M]),Ce=i.useMemo(()=>H??K(e),[H,e]),F=i.useMemo(()=>L??K(e),[L,e]),ve=i.useMemo(()=>!R||_?o:Qe(o,k),[o,k,R,_]),je=i.useCallback(p=>{const j=typeof p=="function"?p(I):p;(c??ae)(j)},[I,c]),O=w.useReactTable({data:ve,columns:e,state:{sorting:t?ne:void 0,columnVisibility:l?E:void 0,columnOrder:I.length>0?I:void 0,...b?{pagination:be}:{}},onSortingChange:t?oe:void 0,onPaginationChange:he,onColumnVisibilityChange:Se,onColumnOrderChange:je,getCoreRowModel:w.getCoreRowModel(),getSortedRowModel:t||N?w.getSortedRowModel():void 0,getPaginationRowModel:b?w.getPaginationRowModel():void 0}),we=i.useCallback((p,j)=>{(f??((Oe,Le)=>ce(Ve=>({...Ve,[Oe]:Le}))))(p,j)},[f]),{sensors:De,draggingHeader:Te,handleDragStart:Re,handleDragEnd:_e}=Ze(O,I),Ne=i.useMemo(()=>Je(o,e),[o,e]),Ie=e.some(p=>p.size!=null),Ge={table:O,columnLabels:q,setColumnLabel:we,filters:k,setFilters:ye,filterConfig:Ce,enableFiltering:R,grouping:V,setGrouping:pe,groupConfig:F,enableGrouping:N},{toolbarSlots:Me,filterSlots:He,groupSlots:ze,paginationSlots:ke,restSlots:Ee}=st(a);return n.jsx(B.Provider,{value:Ge,children:n.jsxs("div",{"data-slot":"data-table",className:D.cn("w-full space-y-2",Q),children:[r,Me,He,ze,n.jsx(ot,{table:O,columns:e,variant:Z,containerClassName:ee,density:J,hasExplicitSize:Ie,enableSorting:t,enableColumnReorder:y,enableGrouping:N,grouping:V,groupConfig:F,collapsedGroups:fe,onToggleGroup:xe,numericColumns:Ne,columnLabels:q,truncate:te,reorderSensors:De,draggingHeader:Te,onDragStart:Re,onDragEnd:_e}),ke,Ee]})})}function Y({className:e,children:o,...r}){return n.jsx("div",{"data-slot":"table-toolbar",className:D.cn("flex items-center justify-end gap-2",e),...r,children:o})}exports.DataTable=lt;exports.TableToolbar=Y;exports.applyFilterCondition=A;exports.useDataTable=$;
|
|
2
2
|
//# sourceMappingURL=data-table.cjs.map
|