@tetrascience-npm/tetrascience-react-ui 0.7.0 → 1.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +58 -4
- 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.cjs +2 -0
- package/dist/components/ai/streamdown-code-plugin.cjs.map +1 -0
- package/dist/components/ai/streamdown-code-plugin.d.ts +2 -0
- package/dist/components/ai/streamdown-code-plugin.js +42 -0
- package/dist/components/ai/streamdown-code-plugin.js.map +1 -0
- package/dist/components/ai/streamdown-plugins.cjs +2 -0
- package/dist/components/ai/streamdown-plugins.cjs.map +1 -0
- package/dist/components/ai/streamdown-plugins.d.ts +2 -0
- package/dist/components/ai/streamdown-plugins.js +14 -0
- package/dist/components/ai/streamdown-plugins.js.map +1 -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.cjs +2 -0
- package/dist/components/ai/use-streamdown-plugins.cjs.map +1 -0
- package/dist/components/ai/use-streamdown-plugins.d.ts +8 -0
- package/dist/components/ai/use-streamdown-plugins.js +25 -0
- package/dist/components/ai/use-streamdown-plugins.js.map +1 -0
- package/dist/components/charts/AreaPlot/AreaPlot.cjs +2 -0
- package/dist/components/charts/AreaPlot/AreaPlot.cjs.map +1 -0
- package/dist/components/charts/AreaPlot/AreaPlot.d.ts +39 -0
- package/dist/components/charts/AreaPlot/AreaPlot.js +270 -0
- package/dist/components/charts/AreaPlot/AreaPlot.js.map +1 -0
- package/dist/components/charts/AreaPlot/index.d.ts +2 -0
- package/dist/components/charts/BarChart/BarChart.cjs +2 -0
- package/dist/components/charts/BarChart/BarChart.cjs.map +1 -0
- package/dist/components/charts/BarChart/BarChart.d.ts +44 -0
- package/dist/components/charts/BarChart/BarChart.js +219 -0
- package/dist/components/charts/BarChart/BarChart.js.map +1 -0
- package/dist/components/charts/BarChart/index.d.ts +2 -0
- package/dist/components/charts/BoxPlot/BoxPlot.cjs +2 -0
- package/dist/components/charts/BoxPlot/BoxPlot.cjs.map +1 -0
- package/dist/components/charts/BoxPlot/BoxPlot.d.ts +33 -0
- package/dist/components/charts/BoxPlot/BoxPlot.js +208 -0
- package/dist/components/charts/BoxPlot/BoxPlot.js.map +1 -0
- package/dist/components/charts/BoxPlot/index.d.ts +2 -0
- package/dist/components/charts/ChartTooltip/ChartTooltip.cjs +1 -1
- package/dist/components/charts/ChartTooltip/ChartTooltip.cjs.map +1 -1
- package/dist/components/charts/ChartTooltip/ChartTooltip.d.ts +71 -0
- package/dist/components/charts/ChartTooltip/ChartTooltip.js +22 -22
- package/dist/components/charts/ChartTooltip/ChartTooltip.js.map +1 -1
- 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.cjs +1 -1
- package/dist/components/charts/Chromatogram/Chromatogram.cjs.map +1 -1
- package/dist/components/charts/Chromatogram/Chromatogram.d.ts +5 -0
- package/dist/components/charts/Chromatogram/Chromatogram.js +232 -170
- package/dist/components/charts/Chromatogram/Chromatogram.js.map +1 -1
- package/dist/components/charts/Chromatogram/annotations.cjs +2 -0
- package/dist/components/charts/Chromatogram/annotations.cjs.map +1 -0
- package/dist/components/charts/Chromatogram/annotations.d.ts +50 -0
- package/dist/components/charts/Chromatogram/annotations.js +137 -0
- package/dist/components/charts/Chromatogram/annotations.js.map +1 -0
- package/dist/components/charts/Chromatogram/boundaryMarkers.cjs +2 -0
- package/dist/components/charts/Chromatogram/boundaryMarkers.cjs.map +1 -0
- package/dist/components/charts/Chromatogram/boundaryMarkers.d.ts +14 -0
- package/dist/components/charts/Chromatogram/boundaryMarkers.js +34 -0
- package/dist/components/charts/Chromatogram/boundaryMarkers.js.map +1 -0
- package/dist/components/charts/Chromatogram/constants.cjs +2 -0
- package/dist/components/charts/Chromatogram/constants.cjs.map +1 -0
- package/dist/components/charts/Chromatogram/constants.d.ts +46 -0
- package/dist/components/charts/Chromatogram/constants.js +36 -0
- package/dist/components/charts/Chromatogram/constants.js.map +1 -0
- package/dist/components/charts/Chromatogram/dataProcessing.cjs +2 -0
- package/dist/components/charts/Chromatogram/dataProcessing.cjs.map +1 -0
- package/dist/components/charts/Chromatogram/dataProcessing.d.ts +49 -0
- package/dist/components/charts/Chromatogram/dataProcessing.js +90 -0
- package/dist/components/charts/Chromatogram/dataProcessing.js.map +1 -0
- package/dist/components/charts/Chromatogram/index.d.ts +2 -0
- package/dist/components/charts/Chromatogram/peakDetection.cjs.map +1 -0
- package/dist/components/charts/Chromatogram/peakDetection.d.ts +33 -0
- package/dist/components/charts/Chromatogram/peakDetection.js.map +1 -0
- package/dist/components/charts/Chromatogram/plotBuilder.cjs +2 -0
- package/dist/components/charts/Chromatogram/plotBuilder.cjs.map +1 -0
- package/dist/components/charts/Chromatogram/plotBuilder.d.ts +58 -0
- package/dist/components/charts/Chromatogram/plotBuilder.js +216 -0
- package/dist/components/charts/Chromatogram/plotBuilder.js.map +1 -0
- package/dist/components/charts/Chromatogram/regionOverlays.cjs +2 -0
- package/dist/components/charts/Chromatogram/regionOverlays.cjs.map +1 -0
- package/dist/components/charts/Chromatogram/regionOverlays.d.ts +9 -0
- package/dist/components/charts/Chromatogram/regionOverlays.js +26 -0
- package/dist/components/charts/Chromatogram/regionOverlays.js.map +1 -0
- package/dist/components/charts/Chromatogram/types.d.ts +258 -0
- package/dist/components/charts/Electropherogram/Electropherogram.cjs +2 -0
- package/dist/components/charts/Electropherogram/Electropherogram.cjs.map +1 -0
- package/dist/components/charts/Electropherogram/Electropherogram.d.ts +22 -0
- package/dist/components/charts/Electropherogram/Electropherogram.js +180 -0
- package/dist/components/charts/Electropherogram/Electropherogram.js.map +1 -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.cjs.map +1 -1
- package/dist/components/charts/Histogram/Histogram.d.ts +36 -0
- package/dist/components/charts/Histogram/Histogram.js +107 -108
- package/dist/components/charts/Histogram/Histogram.js.map +1 -1
- package/dist/components/charts/Histogram/index.d.ts +2 -0
- package/dist/components/charts/LinePlot/LinePlot.cjs +2 -0
- package/dist/components/charts/LinePlot/LinePlot.cjs.map +1 -0
- package/dist/components/charts/LinePlot/LinePlot.d.ts +45 -0
- package/dist/components/charts/LinePlot/LinePlot.js +224 -0
- package/dist/components/charts/LinePlot/LinePlot.js.map +1 -0
- package/dist/components/charts/LinePlot/index.d.ts +2 -0
- package/dist/components/charts/PieChart/PieChart.cjs +1 -1
- package/dist/components/charts/PieChart/PieChart.cjs.map +1 -1
- package/dist/components/charts/PieChart/PieChart.d.ts +20 -0
- package/dist/components/charts/PieChart/PieChart.js +62 -61
- package/dist/components/charts/PieChart/PieChart.js.map +1 -1
- 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 +246 -242
- package/dist/components/charts/PlateMap/PlateMap.js.map +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 +2 -0
- package/dist/components/charts/ScatterPlot/ScatterPlot.cjs.map +1 -0
- package/dist/components/charts/ScatterPlot/ScatterPlot.d.ts +43 -0
- package/dist/components/charts/ScatterPlot/ScatterPlot.js +252 -0
- package/dist/components/charts/ScatterPlot/ScatterPlot.js.map +1 -0
- package/dist/components/charts/ScatterPlot/index.d.ts +2 -0
- package/dist/components/charts/ScatterPlotInteractive/ScatterPlotInteractive.cjs +2 -0
- package/dist/components/charts/ScatterPlotInteractive/ScatterPlotInteractive.cjs.map +1 -0
- package/dist/components/charts/ScatterPlotInteractive/ScatterPlotInteractive.d.ts +25 -0
- package/dist/components/charts/ScatterPlotInteractive/ScatterPlotInteractive.js +215 -0
- package/dist/components/charts/ScatterPlotInteractive/ScatterPlotInteractive.js.map +1 -0
- package/dist/components/charts/ScatterPlotInteractive/constants.cjs +2 -0
- package/dist/components/charts/ScatterPlotInteractive/constants.cjs.map +1 -0
- package/dist/components/charts/ScatterPlotInteractive/constants.d.ts +50 -0
- package/dist/components/charts/ScatterPlotInteractive/constants.js +38 -0
- package/dist/components/charts/ScatterPlotInteractive/constants.js.map +1 -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.cjs +2 -0
- package/dist/components/charts/ScatterPlotInteractive/utils.cjs.map +1 -0
- package/dist/components/charts/ScatterPlotInteractive/utils.d.ts +72 -0
- package/dist/components/charts/ScatterPlotInteractive/utils.js +261 -0
- package/dist/components/charts/ScatterPlotInteractive/utils.js.map +1 -0
- package/dist/components/charts/StackedChromatogram/StackedChromatogram.cjs +2 -0
- package/dist/components/charts/StackedChromatogram/StackedChromatogram.cjs.map +1 -0
- package/dist/components/charts/StackedChromatogram/StackedChromatogram.d.ts +3 -0
- package/dist/components/charts/StackedChromatogram/StackedChromatogram.js +40 -0
- package/dist/components/charts/StackedChromatogram/StackedChromatogram.js.map +1 -0
- package/dist/components/charts/StackedChromatogram/index.d.ts +3 -0
- package/dist/components/charts/StackedChromatogram/transforms.cjs +2 -0
- package/dist/components/charts/StackedChromatogram/transforms.cjs.map +1 -0
- package/dist/components/charts/StackedChromatogram/transforms.d.ts +9 -0
- package/dist/components/charts/StackedChromatogram/transforms.js +31 -0
- package/dist/components/charts/StackedChromatogram/transforms.js.map +1 -0
- package/dist/components/charts/StackedChromatogram/types.d.ts +26 -0
- package/dist/components/charts/plotly-loader.cjs +2 -0
- package/dist/components/charts/plotly-loader.cjs.map +1 -0
- package/dist/components/charts/plotly-loader.d.ts +29 -0
- package/dist/components/charts/plotly-loader.js +22 -0
- package/dist/components/charts/plotly-loader.js.map +1 -0
- package/dist/components/composed/AssistantLayout/AssistantLayout.cjs +2 -0
- package/dist/components/composed/AssistantLayout/AssistantLayout.cjs.map +1 -0
- package/dist/components/composed/AssistantLayout/AssistantLayout.d.ts +63 -0
- package/dist/components/composed/AssistantLayout/AssistantLayout.js +142 -0
- package/dist/components/composed/AssistantLayout/AssistantLayout.js.map +1 -0
- package/dist/components/composed/AssistantLayout/dockLayout.cjs +2 -0
- package/dist/components/composed/AssistantLayout/dockLayout.cjs.map +1 -0
- package/dist/components/composed/AssistantLayout/dockLayout.d.ts +15 -0
- package/dist/components/composed/AssistantLayout/dockLayout.js +10 -0
- package/dist/components/composed/AssistantLayout/dockLayout.js.map +1 -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 +28 -28
- package/dist/components/composed/Chat/Chat.js.map +1 -1
- 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 +33 -29
- package/dist/components/composed/ConfirmDialog/ConfirmDialog.js.map +1 -1
- package/dist/components/composed/ConfirmDialog/index.d.ts +1 -0
- package/dist/components/composed/DataAppShell/CollapseButton.cjs +2 -0
- package/dist/components/composed/DataAppShell/CollapseButton.cjs.map +1 -0
- package/dist/components/composed/DataAppShell/CollapseButton.d.ts +23 -0
- package/dist/components/composed/DataAppShell/CollapseButton.js +42 -0
- package/dist/components/composed/DataAppShell/CollapseButton.js.map +1 -0
- 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 +350 -328
- package/dist/components/composed/DataAppShell/DataAppShell.js.map +1 -1
- package/dist/components/composed/DataAppShell/PrimaryNav.cjs +2 -0
- package/dist/components/composed/DataAppShell/PrimaryNav.cjs.map +1 -0
- package/dist/components/composed/DataAppShell/PrimaryNav.d.ts +64 -0
- package/dist/components/composed/DataAppShell/PrimaryNav.js +268 -0
- package/dist/components/composed/DataAppShell/PrimaryNav.js.map +1 -0
- package/dist/components/composed/DataAppShell/RightPanel.cjs +2 -0
- package/dist/components/composed/DataAppShell/RightPanel.cjs.map +1 -0
- package/dist/components/composed/DataAppShell/RightPanel.d.ts +95 -0
- package/dist/components/composed/DataAppShell/RightPanel.js +282 -0
- package/dist/components/composed/DataAppShell/RightPanel.js.map +1 -0
- package/dist/components/composed/DataAppShell/SecondaryNav.cjs +2 -0
- package/dist/components/composed/DataAppShell/SecondaryNav.cjs.map +1 -0
- package/dist/components/composed/DataAppShell/SecondaryNav.d.ts +63 -0
- package/dist/components/composed/DataAppShell/SecondaryNav.js +364 -0
- package/dist/components/composed/DataAppShell/SecondaryNav.js.map +1 -0
- package/dist/components/composed/DataAppShell/ShellContext.cjs +2 -0
- package/dist/components/composed/DataAppShell/ShellContext.cjs.map +1 -0
- package/dist/components/composed/DataAppShell/ShellContext.d.ts +20 -0
- package/dist/components/composed/DataAppShell/ShellContext.js +23 -0
- package/dist/components/composed/DataAppShell/ShellContext.js.map +1 -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 +2 -0
- package/dist/components/composed/MoleculeStructure/MoleculeStructure.cjs.map +1 -0
- package/dist/components/composed/MoleculeStructure/MoleculeStructure.d.ts +43 -0
- package/dist/components/composed/MoleculeStructure/MoleculeStructure.js +87 -0
- package/dist/components/composed/MoleculeStructure/MoleculeStructure.js.map +1 -0
- package/dist/components/composed/MoleculeStructure/index.d.ts +3 -0
- package/dist/components/composed/MoleculeStructure/rdkit-loader.cjs +2 -0
- package/dist/components/composed/MoleculeStructure/rdkit-loader.cjs.map +1 -0
- package/dist/components/composed/MoleculeStructure/rdkit-loader.d.ts +104 -0
- package/dist/components/composed/MoleculeStructure/rdkit-loader.js +89 -0
- package/dist/components/composed/MoleculeStructure/rdkit-loader.js.map +1 -0
- package/dist/components/composed/MoleculeStructure/use-rdkit.cjs +2 -0
- package/dist/components/composed/MoleculeStructure/use-rdkit.cjs.map +1 -0
- package/dist/components/composed/MoleculeStructure/use-rdkit.d.ts +29 -0
- package/dist/components/composed/MoleculeStructure/use-rdkit.js +19 -0
- package/dist/components/composed/MoleculeStructure/use-rdkit.js.map +1 -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 +21 -21
- package/dist/components/composed/PlateMapEditor/ManifestFilterPopover.js.map +1 -1
- 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 +34 -34
- package/dist/components/composed/PlateMapEditor/PlateMapActionsMenu.js.map +1 -1
- 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 +11 -11
- package/dist/components/composed/PlateMapEditor/PlateMapPlateSelector.js.map +1 -1
- package/dist/components/composed/PlateMapEditor/PlatePaintGrid.cjs +1 -1
- package/dist/components/composed/PlateMapEditor/PlatePaintGrid.cjs.map +1 -1
- package/dist/components/composed/PlateMapEditor/PlatePaintGrid.d.ts +73 -0
- package/dist/components/composed/PlateMapEditor/PlatePaintGrid.js +1 -1
- package/dist/components/composed/PlateMapEditor/PlatePaintGrid.js.map +1 -1
- 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 +24 -12
- package/dist/components/composed/PlateMapEditor/WellLegend.js.map +1 -1
- 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 +10 -10
- package/dist/components/composed/PlateMapEditor/WellManifestTable.js.map +1 -1
- 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 +4 -4
- package/dist/components/composed/TdpSearch/components/DefaultFilters.js.map +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.cjs +2 -0
- package/dist/components/composed/TopBar/TopBar.cjs.map +1 -0
- package/dist/components/composed/TopBar/TopBar.d.ts +25 -0
- package/dist/components/composed/TopBar/TopBar.js +56 -0
- package/dist/components/composed/TopBar/TopBar.js.map +1 -0
- package/dist/components/composed/TopBar/index.d.ts +2 -0
- package/dist/components/composed/UserMenu/UserMenu.cjs +2 -0
- package/dist/components/composed/UserMenu/UserMenu.cjs.map +1 -0
- package/dist/components/composed/UserMenu/UserMenu.d.ts +53 -0
- package/dist/components/composed/UserMenu/UserMenu.js +99 -0
- package/dist/components/composed/UserMenu/UserMenu.js.map +1 -0
- 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 +71 -63
- package/dist/components/ui/data-table/data-table-column-toggle.js.map +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 +26 -25
- package/dist/components/ui/data-table/data-table-filter.js.map +1 -1
- 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 +18 -17
- package/dist/components/ui/data-table/data-table-group.js.map +1 -1
- 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 +16 -16
- package/dist/components/ui/data-table/data-table-pagination.js.map +1 -1
- 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 +191 -190
- package/dist/components/ui/data-table/data-table.js.map +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 +84 -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.cjs +1 -1
- package/dist/hooks/use-plotly-theme.cjs.map +1 -1
- package/dist/hooks/use-plotly-theme.d.ts +49 -0
- package/dist/hooks/use-plotly-theme.js +4 -3
- package/dist/hooks/use-plotly-theme.js.map +1 -1
- package/dist/index.cjs +1 -1
- package/dist/index.css +1 -1
- package/dist/index.d.ts +102 -4404
- package/dist/index.js +698 -659
- package/dist/index.js.map +1 -1
- package/dist/index.tailwind.css +1 -1
- 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 +2 -0
- package/dist/lib/shiki.cjs.map +1 -0
- package/dist/lib/shiki.d.ts +32 -0
- package/dist/lib/shiki.js +72 -0
- package/dist/lib/shiki.js.map +1 -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 +137 -24
- 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 -266
- 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 -774
- 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 -106
- 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 -94
- 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 -143
- package/dist/components/ai/tool.js.map +0 -1
- package/dist/components/charts/AreaGraph/AreaGraph.cjs +0 -2
- package/dist/components/charts/AreaGraph/AreaGraph.cjs.map +0 -1
- package/dist/components/charts/AreaGraph/AreaGraph.js +0 -271
- package/dist/components/charts/AreaGraph/AreaGraph.js.map +0 -1
- package/dist/components/charts/BarGraph/BarGraph.cjs +0 -2
- package/dist/components/charts/BarGraph/BarGraph.cjs.map +0 -1
- package/dist/components/charts/BarGraph/BarGraph.js +0 -220
- package/dist/components/charts/BarGraph/BarGraph.js.map +0 -1
- package/dist/components/charts/Boxplot/Boxplot.cjs +0 -2
- package/dist/components/charts/Boxplot/Boxplot.cjs.map +0 -1
- package/dist/components/charts/Boxplot/Boxplot.js +0 -209
- package/dist/components/charts/Boxplot/Boxplot.js.map +0 -1
- package/dist/components/charts/ChromatogramChart/ChromatogramChart.cjs +0 -2
- package/dist/components/charts/ChromatogramChart/ChromatogramChart.cjs.map +0 -1
- package/dist/components/charts/ChromatogramChart/ChromatogramChart.js +0 -227
- package/dist/components/charts/ChromatogramChart/ChromatogramChart.js.map +0 -1
- package/dist/components/charts/ChromatogramChart/annotations.cjs +0 -2
- package/dist/components/charts/ChromatogramChart/annotations.cjs.map +0 -1
- package/dist/components/charts/ChromatogramChart/annotations.js +0 -73
- package/dist/components/charts/ChromatogramChart/annotations.js.map +0 -1
- package/dist/components/charts/ChromatogramChart/boundaryMarkers.cjs +0 -2
- package/dist/components/charts/ChromatogramChart/boundaryMarkers.cjs.map +0 -1
- package/dist/components/charts/ChromatogramChart/boundaryMarkers.js +0 -34
- package/dist/components/charts/ChromatogramChart/boundaryMarkers.js.map +0 -1
- package/dist/components/charts/ChromatogramChart/constants.cjs +0 -2
- package/dist/components/charts/ChromatogramChart/constants.cjs.map +0 -1
- package/dist/components/charts/ChromatogramChart/constants.js +0 -30
- package/dist/components/charts/ChromatogramChart/constants.js.map +0 -1
- package/dist/components/charts/ChromatogramChart/dataProcessing.cjs +0 -2
- package/dist/components/charts/ChromatogramChart/dataProcessing.cjs.map +0 -1
- package/dist/components/charts/ChromatogramChart/dataProcessing.js +0 -79
- package/dist/components/charts/ChromatogramChart/dataProcessing.js.map +0 -1
- package/dist/components/charts/ChromatogramChart/peakDetection.cjs.map +0 -1
- package/dist/components/charts/ChromatogramChart/peakDetection.js.map +0 -1
- package/dist/components/charts/DotPlot/DotPlot.cjs +0 -2
- package/dist/components/charts/DotPlot/DotPlot.cjs.map +0 -1
- package/dist/components/charts/DotPlot/DotPlot.js +0 -208
- package/dist/components/charts/DotPlot/DotPlot.js.map +0 -1
- package/dist/components/charts/Heatmap/Heatmap.cjs +0 -2
- package/dist/components/charts/Heatmap/Heatmap.cjs.map +0 -1
- package/dist/components/charts/Heatmap/Heatmap.js +0 -67
- package/dist/components/charts/Heatmap/Heatmap.js.map +0 -1
- package/dist/components/charts/LineGraph/LineGraph.cjs +0 -2
- package/dist/components/charts/LineGraph/LineGraph.cjs.map +0 -1
- package/dist/components/charts/LineGraph/LineGraph.js +0 -225
- package/dist/components/charts/LineGraph/LineGraph.js.map +0 -1
- package/dist/components/charts/ScatterGraph/ScatterGraph.cjs +0 -2
- package/dist/components/charts/ScatterGraph/ScatterGraph.cjs.map +0 -1
- package/dist/components/charts/ScatterGraph/ScatterGraph.js +0 -234
- package/dist/components/charts/ScatterGraph/ScatterGraph.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 +0 -84
- 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 -306
- 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 -103
- 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 -281
- 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 -174
- 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/drawer.cjs +0 -2
- package/dist/components/ui/drawer.cjs.map +0 -1
- package/dist/components/ui/drawer.js +0 -125
- package/dist/components/ui/drawer.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 -252
- 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-otp.cjs +0 -2
- package/dist/components/ui/input-otp.cjs.map +0 -1
- package/dist/components/ui/input-otp.js +0 -82
- package/dist/components/ui/input-otp.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 -191
- 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 -60
- 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 -60
- 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 -37
- 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 -152
- 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/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 -77
- 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/charts/{ChromatogramChart → Chromatogram}/peakDetection.cjs +0 -0
- /package/dist/components/charts/{ChromatogramChart → Chromatogram}/peakDetection.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
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
import { jsxs as l, jsx as t } from "react/jsx-runtime";
|
|
2
|
-
import { ListFilterIcon as
|
|
3
|
-
import { Button as m } from "
|
|
4
|
-
import { Input as q } from "
|
|
5
|
-
import { Popover as T, PopoverTrigger as V, PopoverContent as k } from "
|
|
6
|
-
import { Select as v, SelectTrigger as g, SelectValue as _, SelectContent as x, SelectItem as y } from "
|
|
2
|
+
import { ListFilterIcon as P, XIcon as R, PlusIcon as S } from "lucide-react";
|
|
3
|
+
import { Button as m } from "../../../ui/button.js";
|
|
4
|
+
import { Input as q } from "../../../ui/input.js";
|
|
5
|
+
import { Popover as T, PopoverTrigger as V, PopoverContent as k } from "../../../ui/popover.js";
|
|
6
|
+
import { Select as v, SelectTrigger as g, SelectValue as _, SelectContent as x, SelectItem as y } from "../../../ui/select.js";
|
|
7
7
|
import { cn as U } from "../../../lib/utils.js";
|
|
8
8
|
const j = {
|
|
9
9
|
contains: "contains",
|
|
@@ -30,11 +30,11 @@ function Q({
|
|
|
30
30
|
columns: n,
|
|
31
31
|
columnLabel: u,
|
|
32
32
|
filters: r,
|
|
33
|
-
onFiltersChange:
|
|
33
|
+
onFiltersChange: s,
|
|
34
34
|
triggerLabel: d = "Filter",
|
|
35
35
|
className: I
|
|
36
36
|
}) {
|
|
37
|
-
const N = (e) => u?.(e) ?? e, h = n[0],
|
|
37
|
+
const N = (e) => u?.(e) ?? e, h = n[0], b = h?.columnId ?? "", w = () => s([...r, B(b, h?.operators)]), z = (e) => s(r.filter((c) => c.id !== e)), p = (e, c) => s(r.map((o) => o.id === e ? { ...o, ...c } : o)), F = () => s([]), i = r.length;
|
|
38
38
|
return /* @__PURE__ */ l(T, { children: [
|
|
39
39
|
/* @__PURE__ */ t(V, { asChild: !0, children: /* @__PURE__ */ l(
|
|
40
40
|
m,
|
|
@@ -46,26 +46,26 @@ function Q({
|
|
|
46
46
|
className: U(I),
|
|
47
47
|
"aria-label": i > 0 ? `${d} (${i} active)` : d,
|
|
48
48
|
children: [
|
|
49
|
-
/* @__PURE__ */ t(
|
|
49
|
+
/* @__PURE__ */ t(P, { className: "size-3.5" }),
|
|
50
50
|
d,
|
|
51
51
|
i > 0 ? /* @__PURE__ */ t("span", { className: "flex size-4 items-center justify-center rounded-full bg-primary text-[10px] font-medium text-primary-foreground", children: i }) : null
|
|
52
52
|
]
|
|
53
53
|
}
|
|
54
54
|
) }),
|
|
55
|
-
/* @__PURE__ */ t(k, { align: "end", className: "min-w-80", children: /* @__PURE__ */ l("div", { className: "flex flex-col gap-2", children: [
|
|
55
|
+
/* @__PURE__ */ t(k, { align: "end", className: "min-w-80", "aria-label": "Filter conditions", children: /* @__PURE__ */ l("div", { className: "flex flex-col gap-2", children: [
|
|
56
56
|
r.map((e) => {
|
|
57
|
-
const
|
|
57
|
+
const o = n.find((a) => a.columnId === e.columnId)?.operators ?? C, A = L.includes(e.operator);
|
|
58
58
|
return /* @__PURE__ */ l("div", { className: "flex items-center gap-2", children: [
|
|
59
59
|
/* @__PURE__ */ l(
|
|
60
60
|
v,
|
|
61
61
|
{
|
|
62
62
|
value: e.columnId,
|
|
63
63
|
onValueChange: (a) => {
|
|
64
|
-
const f = n.find((
|
|
65
|
-
p(e.id, { columnId: a, operator:
|
|
64
|
+
const f = n.find((O) => O.columnId === a)?.operators ?? C, E = f.includes(e.operator) ? e.operator : f[0] ?? "contains";
|
|
65
|
+
p(e.id, { columnId: a, operator: E, value: "" });
|
|
66
66
|
},
|
|
67
67
|
children: [
|
|
68
|
-
/* @__PURE__ */ t(g, { size: "sm", className: "w-36", children: /* @__PURE__ */ t(_, {}) }),
|
|
68
|
+
/* @__PURE__ */ t(g, { "aria-label": "Filter column", size: "sm", className: "w-36", children: /* @__PURE__ */ t(_, {}) }),
|
|
69
69
|
/* @__PURE__ */ t(x, { children: n.map((a) => /* @__PURE__ */ t(y, { value: a.columnId, children: a.label ?? N(a.columnId) }, a.columnId)) })
|
|
70
70
|
]
|
|
71
71
|
}
|
|
@@ -76,12 +76,12 @@ function Q({
|
|
|
76
76
|
value: e.operator,
|
|
77
77
|
onValueChange: (a) => p(e.id, { operator: a, value: "" }),
|
|
78
78
|
children: [
|
|
79
|
-
/* @__PURE__ */ t(g, { size: "sm", className: "w-32", children: /* @__PURE__ */ t(_, {}) }),
|
|
80
|
-
/* @__PURE__ */ t(x, { children:
|
|
79
|
+
/* @__PURE__ */ t(g, { "aria-label": "Filter operator", size: "sm", className: "w-32", children: /* @__PURE__ */ t(_, {}) }),
|
|
80
|
+
/* @__PURE__ */ t(x, { children: o.map((a) => /* @__PURE__ */ t(y, { value: a, children: j[a] }, a)) })
|
|
81
81
|
]
|
|
82
82
|
}
|
|
83
83
|
),
|
|
84
|
-
|
|
84
|
+
A ? /* @__PURE__ */ t("div", { className: "h-8 w-40", "aria-hidden": !0 }) : /* @__PURE__ */ t(
|
|
85
85
|
q,
|
|
86
86
|
{
|
|
87
87
|
className: "w-40",
|
|
@@ -97,9 +97,9 @@ function Q({
|
|
|
97
97
|
variant: "ghost",
|
|
98
98
|
size: "icon",
|
|
99
99
|
className: "size-8 shrink-0 text-muted-foreground hover:text-foreground",
|
|
100
|
-
onClick: () =>
|
|
100
|
+
onClick: () => z(e.id),
|
|
101
101
|
"aria-label": "Remove filter",
|
|
102
|
-
children: /* @__PURE__ */ t(
|
|
102
|
+
children: /* @__PURE__ */ t(R, { className: "size-3.5" })
|
|
103
103
|
}
|
|
104
104
|
)
|
|
105
105
|
] }, e.id);
|
|
@@ -111,10 +111,10 @@ function Q({
|
|
|
111
111
|
type: "button",
|
|
112
112
|
variant: "outline",
|
|
113
113
|
size: "sm",
|
|
114
|
-
onClick:
|
|
114
|
+
onClick: w,
|
|
115
115
|
disabled: n.length === 0,
|
|
116
116
|
children: [
|
|
117
|
-
/* @__PURE__ */ t(
|
|
117
|
+
/* @__PURE__ */ t(S, { className: "size-3.5" }),
|
|
118
118
|
"Add filter"
|
|
119
119
|
]
|
|
120
120
|
}
|
|
@@ -126,7 +126,7 @@ function Q({
|
|
|
126
126
|
variant: "ghost",
|
|
127
127
|
size: "sm",
|
|
128
128
|
className: "text-muted-foreground",
|
|
129
|
-
onClick:
|
|
129
|
+
onClick: F,
|
|
130
130
|
children: "Clear all"
|
|
131
131
|
}
|
|
132
132
|
) : null
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ManifestFilterPopover.js","sources":["../../../../src/components/composed/PlateMapEditor/ManifestFilterPopover.tsx"],"sourcesContent":["import { ListFilterIcon, PlusIcon, XIcon } from \"lucide-react\";\n\nimport type { FilterColumnConfig, FilterCondition, FilterOperator } from \"@/components/ui/data-table/data-table\";\n\nimport { Button } from \"@/components/ui/button\";\nimport { Input } from \"@/components/ui/input\";\nimport { Popover, PopoverContent, PopoverTrigger } from \"@/components/ui/popover\";\nimport { Select, SelectContent, SelectItem, SelectTrigger, SelectValue } from \"@/components/ui/select\";\nimport { cn } from \"@/lib/utils\";\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\nfunction makeCondition(columnId: string, allowedOperators?: FilterOperator[]): FilterCondition {\n const operator = allowedOperators?.[0] ?? \"contains\";\n return { id: crypto.randomUUID(), columnId, operator, value: \"\" };\n}\n\nexport interface ManifestFilterPopoverProps {\n /** Filterable columns. Operator subsets can be specified per column. */\n columns: FilterColumnConfig[];\n /** Column id → display label resolver. */\n columnLabel?: (columnId: string) => string;\n filters: FilterCondition[];\n onFiltersChange: (next: FilterCondition[]) => void;\n triggerLabel?: string;\n className?: string;\n}\n\nexport function ManifestFilterPopover({\n columns,\n columnLabel,\n filters,\n onFiltersChange,\n triggerLabel = \"Filter\",\n className,\n}: ManifestFilterPopoverProps) {\n const labelFor = (columnId: string): string => columnLabel?.(columnId) ?? columnId;\n const firstColumn = columns[0];\n const firstColumnId = firstColumn?.columnId ?? \"\";\n\n const addFilter = () => onFiltersChange([...filters, makeCondition(firstColumnId, firstColumn?.operators)]);\n const removeFilter = (id: string) => onFiltersChange(filters.filter((cond) => cond.id !== id));\n const updateFilter = (id: string, patch: Partial<FilterCondition>) =>\n onFiltersChange(filters.map((cond) => (cond.id === id ? { ...cond, ...patch } : cond)));\n const clearAll = () => onFiltersChange([]);\n\n const activeCount = filters.length;\n\n return (\n <Popover>\n <PopoverTrigger asChild>\n <Button\n type=\"button\"\n variant=\"outline\"\n size=\"sm\"\n data-slot=\"manifest-filter\"\n className={cn(className)}\n aria-label={activeCount > 0 ? `${triggerLabel} (${activeCount} active)` : triggerLabel}\n >\n <ListFilterIcon className=\"size-3.5\" />\n {triggerLabel}\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 ) : null}\n </Button>\n </PopoverTrigger>\n\n <PopoverContent align=\"end\" className=\"min-w-80\">\n <div className=\"flex flex-col gap-2\">\n {filters.map((condition) => {\n const colConfig = columns.find((c) => c.columnId === condition.columnId);\n const operators = colConfig?.operators ?? DEFAULT_OPERATORS;\n const isValueFree = VALUE_FREE_OPERATORS.includes(condition.operator);\n return (\n <div key={condition.id} className=\"flex items-center gap-2\">\n <Select\n value={condition.columnId}\n onValueChange={(value) => {\n const nextConfig = columns.find((c) => c.columnId === value);\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, { columnId: value, operator: nextOperator, value: \"\" });\n }}\n >\n <SelectTrigger size=\"sm\" className=\"w-36\">\n <SelectValue />\n </SelectTrigger>\n <SelectContent>\n {columns.map((c) => (\n <SelectItem key={c.columnId} value={c.columnId}>\n {c.label ?? labelFor(c.columnId)}\n </SelectItem>\n ))}\n </SelectContent>\n </Select>\n\n <Select\n value={condition.operator}\n onValueChange={(value) =>\n updateFilter(condition.id, { operator: value as FilterOperator, value: \"\" })\n }\n >\n <SelectTrigger 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 {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={(event) => updateFilter(condition.id, { value: event.target.value })}\n />\n )}\n\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={columns.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 ) : null}\n </div>\n </div>\n </PopoverContent>\n </Popover>\n );\n}\n"],"names":["OPERATOR_LABELS","VALUE_FREE_OPERATORS","DEFAULT_OPERATORS","makeCondition","columnId","allowedOperators","operator","ManifestFilterPopover","columns","columnLabel","filters","onFiltersChange","triggerLabel","className","labelFor","firstColumn","firstColumnId","addFilter","removeFilter","id","cond","updateFilter","patch","clearAll","activeCount","Popover","jsx","PopoverTrigger","jsxs","Button","cn","ListFilterIcon","PopoverContent","condition","operators","c","isValueFree","Select","value","nextOperators","nextOperator","SelectTrigger","SelectValue","SelectContent","SelectItem","op","Input","event","XIcon","PlusIcon"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"ManifestFilterPopover.js","sources":["../../../../src/components/composed/PlateMapEditor/ManifestFilterPopover.tsx"],"sourcesContent":["import { ListFilterIcon, PlusIcon, XIcon } from \"lucide-react\";\n\nimport type { FilterColumnConfig, FilterCondition, FilterOperator } from \"@/components/ui/data-table/data-table\";\n\nimport { Button } from \"@/components/ui/button\";\nimport { Input } from \"@/components/ui/input\";\nimport { Popover, PopoverContent, PopoverTrigger } from \"@/components/ui/popover\";\nimport { Select, SelectContent, SelectItem, SelectTrigger, SelectValue } from \"@/components/ui/select\";\nimport { cn } from \"@/lib/utils\";\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\nfunction makeCondition(columnId: string, allowedOperators?: FilterOperator[]): FilterCondition {\n const operator = allowedOperators?.[0] ?? \"contains\";\n return { id: crypto.randomUUID(), columnId, operator, value: \"\" };\n}\n\nexport interface ManifestFilterPopoverProps {\n /** Filterable columns. Operator subsets can be specified per column. */\n columns: FilterColumnConfig[];\n /** Column id → display label resolver. */\n columnLabel?: (columnId: string) => string;\n filters: FilterCondition[];\n onFiltersChange: (next: FilterCondition[]) => void;\n triggerLabel?: string;\n className?: string;\n}\n\nexport function ManifestFilterPopover({\n columns,\n columnLabel,\n filters,\n onFiltersChange,\n triggerLabel = \"Filter\",\n className,\n}: ManifestFilterPopoverProps) {\n const labelFor = (columnId: string): string => columnLabel?.(columnId) ?? columnId;\n const firstColumn = columns[0];\n const firstColumnId = firstColumn?.columnId ?? \"\";\n\n const addFilter = () => onFiltersChange([...filters, makeCondition(firstColumnId, firstColumn?.operators)]);\n const removeFilter = (id: string) => onFiltersChange(filters.filter((cond) => cond.id !== id));\n const updateFilter = (id: string, patch: Partial<FilterCondition>) =>\n onFiltersChange(filters.map((cond) => (cond.id === id ? { ...cond, ...patch } : cond)));\n const clearAll = () => onFiltersChange([]);\n\n const activeCount = filters.length;\n\n return (\n <Popover>\n <PopoverTrigger asChild>\n <Button\n type=\"button\"\n variant=\"outline\"\n size=\"sm\"\n data-slot=\"manifest-filter\"\n className={cn(className)}\n aria-label={activeCount > 0 ? `${triggerLabel} (${activeCount} active)` : triggerLabel}\n >\n <ListFilterIcon className=\"size-3.5\" />\n {triggerLabel}\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 ) : null}\n </Button>\n </PopoverTrigger>\n\n <PopoverContent align=\"end\" className=\"min-w-80\" aria-label=\"Filter conditions\">\n <div className=\"flex flex-col gap-2\">\n {filters.map((condition) => {\n const colConfig = columns.find((c) => c.columnId === condition.columnId);\n const operators = colConfig?.operators ?? DEFAULT_OPERATORS;\n const isValueFree = VALUE_FREE_OPERATORS.includes(condition.operator);\n return (\n <div key={condition.id} className=\"flex items-center gap-2\">\n <Select\n value={condition.columnId}\n onValueChange={(value) => {\n const nextConfig = columns.find((c) => c.columnId === value);\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, { columnId: value, operator: nextOperator, value: \"\" });\n }}\n >\n <SelectTrigger aria-label=\"Filter column\" size=\"sm\" className=\"w-36\">\n <SelectValue />\n </SelectTrigger>\n <SelectContent>\n {columns.map((c) => (\n <SelectItem key={c.columnId} value={c.columnId}>\n {c.label ?? labelFor(c.columnId)}\n </SelectItem>\n ))}\n </SelectContent>\n </Select>\n\n <Select\n value={condition.operator}\n onValueChange={(value) =>\n updateFilter(condition.id, { operator: value as FilterOperator, value: \"\" })\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 {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={(event) => updateFilter(condition.id, { value: event.target.value })}\n />\n )}\n\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={columns.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 ) : null}\n </div>\n </div>\n </PopoverContent>\n </Popover>\n );\n}\n"],"names":["OPERATOR_LABELS","VALUE_FREE_OPERATORS","DEFAULT_OPERATORS","makeCondition","columnId","allowedOperators","operator","ManifestFilterPopover","columns","columnLabel","filters","onFiltersChange","triggerLabel","className","labelFor","firstColumn","firstColumnId","addFilter","removeFilter","id","cond","updateFilter","patch","clearAll","activeCount","Popover","jsx","PopoverTrigger","jsxs","Button","cn","ListFilterIcon","PopoverContent","condition","operators","c","isValueFree","Select","value","nextOperators","nextOperator","SelectTrigger","SelectValue","SelectContent","SelectItem","op","Input","event","XIcon","PlusIcon"],"mappings":"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"}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("react/jsx-runtime"),d=require("lucide-react"),C=require("react"),
|
|
1
|
+
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("react/jsx-runtime"),d=require("lucide-react"),C=require("react"),_=require("./csvPlateTriage.cjs"),A=require("./helpers.cjs"),F=require("../../../ui/button.cjs"),n=require("../../../ui/dropdown-menu.cjs"),I=require("../../../lib/utils.cjs");function z(t){const a=Object.create(null,{[Symbol.toStringTag]:{value:"Module"}});if(t){for(const i in t)if(i!=="default"){const r=Object.getOwnPropertyDescriptor(t,i);Object.defineProperty(a,i,r.get?r:{enumerable:!0,get:()=>t[i]})}}return a.default=t,Object.freeze(a)}const x=z(C);function b({inputRef:t,accept:a,onPick:i,triageCsv:r}){return e.jsx("input",{ref:t,type:"file",accept:a,hidden:!0,onChange:o=>{const u=o.currentTarget,s=o.target.files?.[0];if(!s){u.value="";return}(async()=>{const c=r?await _.triagePlateMapCsvFile(s):void 0;await(c?i?.(s,c):i?.(s)),u.value=""})()}})}function G({templates:t,templateId:a,onTemplateChange:i,onClearTemplate:r,hasEntries:o,onImportCsv:u,onExportCsv:s,onImportTemplate:c,onExportTemplate:j,label:g="Actions",align:D="start",side:m="bottom",csvAccept:S=".csv,text/csv",templateAccept:k="application/json",importTemplateLabel:y="Import template (JSON)",exportTemplateLabel:R="Save template",importCsvLabel:v="Import plate map (CSV)",exportCsvLabel:q="Export plate map (CSV)",clearLabel:N="Clear template",className:O}){const f=x.useRef(null),M=x.useRef(null),h=x.useMemo(()=>A.groupTemplateOptions(t),[t]),w=o===!1;return h.length>0||!!c||!!j||!!u||!!s||!!r?e.jsxs(e.Fragment,{children:[e.jsxs(n.DropdownMenu,{modal:!1,children:[e.jsx(n.DropdownMenuTrigger,{asChild:!0,children:e.jsxs(F.Button,{type:"button",variant:"outline",size:"sm",className:I.cn("min-w-24 justify-between",O),children:[e.jsx("span",{children:g}),e.jsx(d.ChevronDown,{"aria-hidden":!0})]})}),e.jsxs(n.DropdownMenuContent,{align:D,side:m,className:"w-64",children:[h.map(([p,P])=>e.jsxs(n.DropdownMenuGroup,{children:[p?e.jsx(n.DropdownMenuLabel,{children:p}):null,P.map(l=>e.jsxs(n.DropdownMenuItem,{disabled:l.disabled,onClick:()=>i?.(l.id),children:[l.id===a?e.jsx(d.Check,{"aria-hidden":!0}):e.jsx("span",{className:"size-4","aria-hidden":!0}),e.jsxs("span",{className:"flex min-w-0 flex-col",children:[e.jsx("span",{className:"truncate",children:l.label}),l.description?e.jsx("span",{className:"truncate text-xs text-muted-foreground",children:l.description}):null]})]},l.id))]},p||"templates")),h.length>0&&(c||j||u||s||r)?e.jsx(n.DropdownMenuSeparator,{}):null,c?e.jsxs(n.DropdownMenuItem,{onClick:()=>f.current?.click(),children:[e.jsx(d.LayoutTemplate,{"aria-hidden":!0}),y]}):null,j?e.jsxs(n.DropdownMenuItem,{disabled:w,onClick:()=>j(),children:[e.jsx(d.SaveAll,{"aria-hidden":!0}),R]}):null,(c||j)&&(u||s)?e.jsx(n.DropdownMenuSeparator,{}):null,u?e.jsxs(n.DropdownMenuItem,{onClick:()=>M.current?.click(),children:[e.jsx(d.Upload,{"aria-hidden":!0}),v]}):null,s?e.jsxs(n.DropdownMenuItem,{disabled:w,onClick:()=>s(),children:[e.jsx(d.Download,{"aria-hidden":!0}),q]}):null,r?e.jsxs(e.Fragment,{children:[e.jsx(n.DropdownMenuSeparator,{}),e.jsxs(n.DropdownMenuItem,{variant:"destructive",disabled:!a&&!o,onClick:()=>r(),children:[e.jsx(d.Trash2,{"aria-hidden":!0}),N]})]}):null]})]}),e.jsx(b,{inputRef:f,accept:k,onPick:c}),e.jsx(b,{inputRef:M,accept:S,onPick:u,triageCsv:!0})]}):null}exports.PlateMapActionsMenu=G;
|
|
2
2
|
//# sourceMappingURL=PlateMapActionsMenu.cjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"PlateMapActionsMenu.cjs","sources":["../../../../src/components/composed/PlateMapEditor/PlateMapActionsMenu.tsx"],"sourcesContent":["import { Check, ChevronDown, Download, LayoutTemplate, SaveAll, Trash2, Upload } from \"lucide-react\";\nimport * as React from \"react\";\n\nimport { triagePlateMapCsvFile } from \"./csvPlateTriage\";\nimport { groupTemplateOptions } from \"./helpers\";\n\nimport type { ImportExportHandlers, PlateMapCsvTriage, TemplateOption } from \"./types\";\n\nimport { Button } from \"@/components/ui/button\";\nimport {\n DropdownMenu,\n DropdownMenuContent,\n DropdownMenuGroup,\n DropdownMenuItem,\n DropdownMenuLabel,\n DropdownMenuSeparator,\n DropdownMenuTrigger,\n} from \"@/components/ui/dropdown-menu\";\nimport { cn } from \"@/lib/utils\";\n\nexport interface PlateMapActionsMenuProps extends ImportExportHandlers {\n templates?: TemplateOption[];\n templateId?: string;\n onTemplateChange?: (id: string) => void;\n onClearTemplate?: () => void;\n /** Disable export/save actions when there is nothing to export. */\n hasEntries?: boolean;\n label?: React.ReactNode;\n align?: \"start\" | \"center\" | \"end\";\n side?: \"top\" | \"right\" | \"bottom\" | \"left\";\n csvAccept?: string;\n templateAccept?: string;\n importTemplateLabel?: string;\n exportTemplateLabel?: string;\n importCsvLabel?: string;\n exportCsvLabel?: string;\n clearLabel?: string;\n className?: string;\n}\n\nfunction HiddenFileInput({\n inputRef,\n accept,\n onPick,\n triageCsv,\n}: {\n inputRef: React.RefObject<HTMLInputElement | null>;\n accept: string;\n onPick?: (file: File, triage?: PlateMapCsvTriage) => void | Promise<void>;\n triageCsv?: boolean;\n}) {\n return (\n <input\n ref={inputRef}\n type=\"file\"\n accept={accept}\n hidden\n onChange={(event) => {\n const input = event.currentTarget;\n const file = event.target.files?.[0];\n if (!file) {\n input.value = \"\";\n return;\n }\n\n void (async () => {\n const triage = triageCsv ? await triagePlateMapCsvFile(file) : undefined;\n await (triage ? onPick?.(file, triage) : onPick?.(file));\n input.value = \"\";\n })();\n }}\n />\n );\n}\n\nexport function PlateMapActionsMenu({\n templates,\n templateId,\n onTemplateChange,\n onClearTemplate,\n hasEntries,\n onImportCsv,\n onExportCsv,\n onImportTemplate,\n onExportTemplate,\n label = \"Actions\",\n align = \"start\",\n side = \"bottom\",\n csvAccept = \".csv,text/csv\",\n templateAccept = \"application/json\",\n importTemplateLabel = \"Import template (JSON)\",\n exportTemplateLabel = \"Save template\",\n importCsvLabel = \"Import plate map (CSV)\",\n exportCsvLabel = \"Export plate map (CSV)\",\n clearLabel = \"Clear template\",\n className,\n}: PlateMapActionsMenuProps) {\n const templateInputRef = React.useRef<HTMLInputElement>(null);\n const csvInputRef = React.useRef<HTMLInputElement>(null);\n const templateGroups = React.useMemo(() => groupTemplateOptions(templates), [templates]);\n const disableEntryExport = hasEntries === false;\n\n const hasMenuItems =\n templateGroups.length > 0 ||\n !!onImportTemplate ||\n !!onExportTemplate ||\n !!onImportCsv ||\n !!onExportCsv ||\n !!onClearTemplate;\n\n if (!hasMenuItems) return null;\n\n return (\n <>\n <DropdownMenu>\n <DropdownMenuTrigger asChild>\n <Button type=\"button\" variant=\"outline\" size=\"sm\" className={cn(\"min-w-24 justify-between\", className)}>\n <span>{label}</span>\n <ChevronDown aria-hidden />\n </Button>\n </DropdownMenuTrigger>\n <DropdownMenuContent align={align} side={side} className=\"w-64\">\n {templateGroups.map(([group, options]) => (\n <DropdownMenuGroup key={group || \"templates\"}>\n {group ? <DropdownMenuLabel>{group}</DropdownMenuLabel> : null}\n {options.map((template) => (\n <DropdownMenuItem\n key={template.id}\n disabled={template.disabled}\n onClick={() => onTemplateChange?.(template.id)}\n >\n {template.id === templateId ? <Check aria-hidden /> : <span className=\"size-4\" aria-hidden />}\n <span className=\"flex min-w-0 flex-col\">\n <span className=\"truncate\">{template.label}</span>\n {template.description ? (\n <span className=\"truncate text-xs text-muted-foreground\">{template.description}</span>\n ) : null}\n </span>\n </DropdownMenuItem>\n ))}\n </DropdownMenuGroup>\n ))}\n\n {templateGroups.length > 0 &&\n (onImportTemplate || onExportTemplate || onImportCsv || onExportCsv || onClearTemplate) ? (\n <DropdownMenuSeparator />\n ) : null}\n\n {onImportTemplate ? (\n <DropdownMenuItem onClick={() => templateInputRef.current?.click()}>\n <LayoutTemplate aria-hidden />\n {importTemplateLabel}\n </DropdownMenuItem>\n ) : null}\n {onExportTemplate ? (\n <DropdownMenuItem disabled={disableEntryExport} onClick={() => onExportTemplate()}>\n <SaveAll aria-hidden />\n {exportTemplateLabel}\n </DropdownMenuItem>\n ) : null}\n\n {(onImportTemplate || onExportTemplate) && (onImportCsv || onExportCsv) ? <DropdownMenuSeparator /> : null}\n\n {onImportCsv ? (\n <DropdownMenuItem onClick={() => csvInputRef.current?.click()}>\n <Upload aria-hidden />\n {importCsvLabel}\n </DropdownMenuItem>\n ) : null}\n {onExportCsv ? (\n <DropdownMenuItem disabled={disableEntryExport} onClick={() => onExportCsv()}>\n <Download aria-hidden />\n {exportCsvLabel}\n </DropdownMenuItem>\n ) : null}\n\n {onClearTemplate ? (\n <>\n <DropdownMenuSeparator />\n <DropdownMenuItem\n variant=\"destructive\"\n disabled={!templateId && !hasEntries}\n onClick={() => onClearTemplate()}\n >\n <Trash2 aria-hidden />\n {clearLabel}\n </DropdownMenuItem>\n </>\n ) : null}\n </DropdownMenuContent>\n </DropdownMenu>\n <HiddenFileInput inputRef={templateInputRef} accept={templateAccept} onPick={onImportTemplate} />\n <HiddenFileInput inputRef={csvInputRef} accept={csvAccept} onPick={onImportCsv} triageCsv />\n </>\n );\n}\n"],"names":["HiddenFileInput","inputRef","accept","onPick","triageCsv","jsx","event","input","file","triage","triagePlateMapCsvFile","PlateMapActionsMenu","templates","templateId","onTemplateChange","onClearTemplate","hasEntries","onImportCsv","onExportCsv","onImportTemplate","onExportTemplate","label","align","side","csvAccept","templateAccept","importTemplateLabel","exportTemplateLabel","importCsvLabel","exportCsvLabel","clearLabel","className","templateInputRef","React","csvInputRef","templateGroups","groupTemplateOptions","disableEntryExport","jsxs","Fragment","DropdownMenu","DropdownMenuTrigger","Button","cn","ChevronDown","DropdownMenuContent","group","options","DropdownMenuGroup","DropdownMenuLabel","template","DropdownMenuItem","Check","DropdownMenuSeparator","LayoutTemplate","SaveAll","Upload","Download","Trash2"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"PlateMapActionsMenu.cjs","sources":["../../../../src/components/composed/PlateMapEditor/PlateMapActionsMenu.tsx"],"sourcesContent":["import { Check, ChevronDown, Download, LayoutTemplate, SaveAll, Trash2, Upload } from \"lucide-react\";\nimport * as React from \"react\";\n\nimport { triagePlateMapCsvFile } from \"./csvPlateTriage\";\nimport { groupTemplateOptions } from \"./helpers\";\n\nimport type { ImportExportHandlers, PlateMapCsvTriage, TemplateOption } from \"./types\";\n\nimport { Button } from \"@/components/ui/button\";\nimport {\n DropdownMenu,\n DropdownMenuContent,\n DropdownMenuGroup,\n DropdownMenuItem,\n DropdownMenuLabel,\n DropdownMenuSeparator,\n DropdownMenuTrigger,\n} from \"@/components/ui/dropdown-menu\";\nimport { cn } from \"@/lib/utils\";\n\nexport interface PlateMapActionsMenuProps extends ImportExportHandlers {\n templates?: TemplateOption[];\n templateId?: string;\n onTemplateChange?: (id: string) => void;\n onClearTemplate?: () => void;\n /** Disable export/save actions when there is nothing to export. */\n hasEntries?: boolean;\n label?: React.ReactNode;\n align?: \"start\" | \"center\" | \"end\";\n side?: \"top\" | \"right\" | \"bottom\" | \"left\";\n csvAccept?: string;\n templateAccept?: string;\n importTemplateLabel?: string;\n exportTemplateLabel?: string;\n importCsvLabel?: string;\n exportCsvLabel?: string;\n clearLabel?: string;\n className?: string;\n}\n\nfunction HiddenFileInput({\n inputRef,\n accept,\n onPick,\n triageCsv,\n}: {\n inputRef: React.RefObject<HTMLInputElement | null>;\n accept: string;\n onPick?: (file: File, triage?: PlateMapCsvTriage) => void | Promise<void>;\n triageCsv?: boolean;\n}) {\n return (\n <input\n ref={inputRef}\n type=\"file\"\n accept={accept}\n hidden\n onChange={(event) => {\n const input = event.currentTarget;\n const file = event.target.files?.[0];\n if (!file) {\n input.value = \"\";\n return;\n }\n\n void (async () => {\n const triage = triageCsv ? await triagePlateMapCsvFile(file) : undefined;\n await (triage ? onPick?.(file, triage) : onPick?.(file));\n input.value = \"\";\n })();\n }}\n />\n );\n}\n\nexport function PlateMapActionsMenu({\n templates,\n templateId,\n onTemplateChange,\n onClearTemplate,\n hasEntries,\n onImportCsv,\n onExportCsv,\n onImportTemplate,\n onExportTemplate,\n label = \"Actions\",\n align = \"start\",\n side = \"bottom\",\n csvAccept = \".csv,text/csv\",\n templateAccept = \"application/json\",\n importTemplateLabel = \"Import template (JSON)\",\n exportTemplateLabel = \"Save template\",\n importCsvLabel = \"Import plate map (CSV)\",\n exportCsvLabel = \"Export plate map (CSV)\",\n clearLabel = \"Clear template\",\n className,\n}: PlateMapActionsMenuProps) {\n const templateInputRef = React.useRef<HTMLInputElement>(null);\n const csvInputRef = React.useRef<HTMLInputElement>(null);\n const templateGroups = React.useMemo(() => groupTemplateOptions(templates), [templates]);\n const disableEntryExport = hasEntries === false;\n\n const hasMenuItems =\n templateGroups.length > 0 ||\n !!onImportTemplate ||\n !!onExportTemplate ||\n !!onImportCsv ||\n !!onExportCsv ||\n !!onClearTemplate;\n\n if (!hasMenuItems) return null;\n\n return (\n <>\n <DropdownMenu modal={false}>\n <DropdownMenuTrigger asChild>\n <Button type=\"button\" variant=\"outline\" size=\"sm\" className={cn(\"min-w-24 justify-between\", className)}>\n <span>{label}</span>\n <ChevronDown aria-hidden />\n </Button>\n </DropdownMenuTrigger>\n <DropdownMenuContent align={align} side={side} className=\"w-64\">\n {templateGroups.map(([group, options]) => (\n <DropdownMenuGroup key={group || \"templates\"}>\n {group ? <DropdownMenuLabel>{group}</DropdownMenuLabel> : null}\n {options.map((template) => (\n <DropdownMenuItem\n key={template.id}\n disabled={template.disabled}\n onClick={() => onTemplateChange?.(template.id)}\n >\n {template.id === templateId ? <Check aria-hidden /> : <span className=\"size-4\" aria-hidden />}\n <span className=\"flex min-w-0 flex-col\">\n <span className=\"truncate\">{template.label}</span>\n {template.description ? (\n <span className=\"truncate text-xs text-muted-foreground\">{template.description}</span>\n ) : null}\n </span>\n </DropdownMenuItem>\n ))}\n </DropdownMenuGroup>\n ))}\n\n {templateGroups.length > 0 &&\n (onImportTemplate || onExportTemplate || onImportCsv || onExportCsv || onClearTemplate) ? (\n <DropdownMenuSeparator />\n ) : null}\n\n {onImportTemplate ? (\n <DropdownMenuItem onClick={() => templateInputRef.current?.click()}>\n <LayoutTemplate aria-hidden />\n {importTemplateLabel}\n </DropdownMenuItem>\n ) : null}\n {onExportTemplate ? (\n <DropdownMenuItem disabled={disableEntryExport} onClick={() => onExportTemplate()}>\n <SaveAll aria-hidden />\n {exportTemplateLabel}\n </DropdownMenuItem>\n ) : null}\n\n {(onImportTemplate || onExportTemplate) && (onImportCsv || onExportCsv) ? <DropdownMenuSeparator /> : null}\n\n {onImportCsv ? (\n <DropdownMenuItem onClick={() => csvInputRef.current?.click()}>\n <Upload aria-hidden />\n {importCsvLabel}\n </DropdownMenuItem>\n ) : null}\n {onExportCsv ? (\n <DropdownMenuItem disabled={disableEntryExport} onClick={() => onExportCsv()}>\n <Download aria-hidden />\n {exportCsvLabel}\n </DropdownMenuItem>\n ) : null}\n\n {onClearTemplate ? (\n <>\n <DropdownMenuSeparator />\n <DropdownMenuItem\n variant=\"destructive\"\n disabled={!templateId && !hasEntries}\n onClick={() => onClearTemplate()}\n >\n <Trash2 aria-hidden />\n {clearLabel}\n </DropdownMenuItem>\n </>\n ) : null}\n </DropdownMenuContent>\n </DropdownMenu>\n <HiddenFileInput inputRef={templateInputRef} accept={templateAccept} onPick={onImportTemplate} />\n <HiddenFileInput inputRef={csvInputRef} accept={csvAccept} onPick={onImportCsv} triageCsv />\n </>\n );\n}\n"],"names":["HiddenFileInput","inputRef","accept","onPick","triageCsv","jsx","event","input","file","triage","triagePlateMapCsvFile","PlateMapActionsMenu","templates","templateId","onTemplateChange","onClearTemplate","hasEntries","onImportCsv","onExportCsv","onImportTemplate","onExportTemplate","label","align","side","csvAccept","templateAccept","importTemplateLabel","exportTemplateLabel","importCsvLabel","exportCsvLabel","clearLabel","className","templateInputRef","React","csvInputRef","templateGroups","groupTemplateOptions","disableEntryExport","jsxs","Fragment","DropdownMenu","DropdownMenuTrigger","Button","cn","ChevronDown","DropdownMenuContent","group","options","DropdownMenuGroup","DropdownMenuLabel","template","DropdownMenuItem","Check","DropdownMenuSeparator","LayoutTemplate","SaveAll","Upload","Download","Trash2"],"mappings":"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"}
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
import { ImportExportHandlers, TemplateOption } from './types';
|
|
2
|
+
import * as React from "react";
|
|
3
|
+
export interface PlateMapActionsMenuProps extends ImportExportHandlers {
|
|
4
|
+
templates?: TemplateOption[];
|
|
5
|
+
templateId?: string;
|
|
6
|
+
onTemplateChange?: (id: string) => void;
|
|
7
|
+
onClearTemplate?: () => void;
|
|
8
|
+
/** Disable export/save actions when there is nothing to export. */
|
|
9
|
+
hasEntries?: boolean;
|
|
10
|
+
label?: React.ReactNode;
|
|
11
|
+
align?: "start" | "center" | "end";
|
|
12
|
+
side?: "top" | "right" | "bottom" | "left";
|
|
13
|
+
csvAccept?: string;
|
|
14
|
+
templateAccept?: string;
|
|
15
|
+
importTemplateLabel?: string;
|
|
16
|
+
exportTemplateLabel?: string;
|
|
17
|
+
importCsvLabel?: string;
|
|
18
|
+
exportCsvLabel?: string;
|
|
19
|
+
clearLabel?: string;
|
|
20
|
+
className?: string;
|
|
21
|
+
}
|
|
22
|
+
export declare function PlateMapActionsMenu({ templates, templateId, onTemplateChange, onClearTemplate, hasEntries, onImportCsv, onExportCsv, onImportTemplate, onExportTemplate, label, align, side, csvAccept, templateAccept, importTemplateLabel, exportTemplateLabel, importCsvLabel, exportCsvLabel, clearLabel, className, }: PlateMapActionsMenuProps): import("react/jsx-runtime").JSX.Element | null;
|
|
@@ -3,14 +3,14 @@ import { ChevronDown as G, Check as L, LayoutTemplate as O, SaveAll as V, Upload
|
|
|
3
3
|
import * as m from "react";
|
|
4
4
|
import { triagePlateMapCsvFile as U } from "./csvPlateTriage.js";
|
|
5
5
|
import { groupTemplateOptions as q } from "./helpers.js";
|
|
6
|
-
import { Button as K } from "
|
|
7
|
-
import { DropdownMenu as Q, DropdownMenuTrigger as W, DropdownMenuContent as X, DropdownMenuGroup as Y, DropdownMenuLabel as Z, DropdownMenuItem as
|
|
6
|
+
import { Button as K } from "../../../ui/button.js";
|
|
7
|
+
import { DropdownMenu as Q, DropdownMenuTrigger as W, DropdownMenuContent as X, DropdownMenuGroup as Y, DropdownMenuLabel as Z, DropdownMenuItem as d, DropdownMenuSeparator as w } from "../../../ui/dropdown-menu.js";
|
|
8
8
|
import { cn as _ } from "../../../lib/utils.js";
|
|
9
9
|
function D({
|
|
10
10
|
inputRef: s,
|
|
11
11
|
accept: o,
|
|
12
12
|
onPick: h,
|
|
13
|
-
triageCsv:
|
|
13
|
+
triageCsv: t
|
|
14
14
|
}) {
|
|
15
15
|
return /* @__PURE__ */ e(
|
|
16
16
|
"input",
|
|
@@ -19,29 +19,29 @@ function D({
|
|
|
19
19
|
type: "file",
|
|
20
20
|
accept: o,
|
|
21
21
|
hidden: !0,
|
|
22
|
-
onChange: (
|
|
23
|
-
const r =
|
|
22
|
+
onChange: (c) => {
|
|
23
|
+
const r = c.currentTarget, i = c.target.files?.[0];
|
|
24
24
|
if (!i) {
|
|
25
25
|
r.value = "";
|
|
26
26
|
return;
|
|
27
27
|
}
|
|
28
28
|
(async () => {
|
|
29
|
-
const
|
|
30
|
-
await (
|
|
29
|
+
const a = t ? await U(i) : void 0;
|
|
30
|
+
await (a ? h?.(i, a) : h?.(i)), r.value = "";
|
|
31
31
|
})();
|
|
32
32
|
}
|
|
33
33
|
}
|
|
34
34
|
);
|
|
35
35
|
}
|
|
36
|
-
function
|
|
36
|
+
function ae({
|
|
37
37
|
templates: s,
|
|
38
38
|
templateId: o,
|
|
39
39
|
onTemplateChange: h,
|
|
40
|
-
onClearTemplate:
|
|
41
|
-
hasEntries:
|
|
40
|
+
onClearTemplate: t,
|
|
41
|
+
hasEntries: c,
|
|
42
42
|
onImportCsv: r,
|
|
43
43
|
onExportCsv: i,
|
|
44
|
-
onImportTemplate:
|
|
44
|
+
onImportTemplate: a,
|
|
45
45
|
onExportTemplate: u,
|
|
46
46
|
label: N = "Actions",
|
|
47
47
|
align: R = "start",
|
|
@@ -55,9 +55,9 @@ function te({
|
|
|
55
55
|
clearLabel: F = "Clear template",
|
|
56
56
|
className: P
|
|
57
57
|
}) {
|
|
58
|
-
const M = m.useRef(null), b = m.useRef(null), f = m.useMemo(() => q(s), [s]), g =
|
|
59
|
-
return f.length > 0 || !!
|
|
60
|
-
/* @__PURE__ */ n(Q, { children: [
|
|
58
|
+
const M = m.useRef(null), b = m.useRef(null), f = m.useMemo(() => q(s), [s]), g = c === !1;
|
|
59
|
+
return f.length > 0 || !!a || !!u || !!r || !!i || !!t ? /* @__PURE__ */ n(k, { children: [
|
|
60
|
+
/* @__PURE__ */ n(Q, { modal: !1, children: [
|
|
61
61
|
/* @__PURE__ */ e(W, { asChild: !0, children: /* @__PURE__ */ n(K, { type: "button", variant: "outline", size: "sm", className: _("min-w-24 justify-between", P), children: [
|
|
62
62
|
/* @__PURE__ */ e("span", { children: N }),
|
|
63
63
|
/* @__PURE__ */ e(G, { "aria-hidden": !0 })
|
|
@@ -65,48 +65,48 @@ function te({
|
|
|
65
65
|
/* @__PURE__ */ n(X, { align: R, side: v, className: "w-64", children: [
|
|
66
66
|
f.map(([p, z]) => /* @__PURE__ */ n(Y, { children: [
|
|
67
67
|
p ? /* @__PURE__ */ e(Z, { children: p }) : null,
|
|
68
|
-
z.map((
|
|
69
|
-
|
|
68
|
+
z.map((l) => /* @__PURE__ */ n(
|
|
69
|
+
d,
|
|
70
70
|
{
|
|
71
|
-
disabled:
|
|
72
|
-
onClick: () => h?.(
|
|
71
|
+
disabled: l.disabled,
|
|
72
|
+
onClick: () => h?.(l.id),
|
|
73
73
|
children: [
|
|
74
|
-
|
|
74
|
+
l.id === o ? /* @__PURE__ */ e(L, { "aria-hidden": !0 }) : /* @__PURE__ */ e("span", { className: "size-4", "aria-hidden": !0 }),
|
|
75
75
|
/* @__PURE__ */ n("span", { className: "flex min-w-0 flex-col", children: [
|
|
76
|
-
/* @__PURE__ */ e("span", { className: "truncate", children:
|
|
77
|
-
|
|
76
|
+
/* @__PURE__ */ e("span", { className: "truncate", children: l.label }),
|
|
77
|
+
l.description ? /* @__PURE__ */ e("span", { className: "truncate text-xs text-muted-foreground", children: l.description }) : null
|
|
78
78
|
] })
|
|
79
79
|
]
|
|
80
80
|
},
|
|
81
|
-
|
|
81
|
+
l.id
|
|
82
82
|
))
|
|
83
83
|
] }, p || "templates")),
|
|
84
|
-
f.length > 0 && (
|
|
85
|
-
|
|
84
|
+
f.length > 0 && (a || u || r || i || t) ? /* @__PURE__ */ e(w, {}) : null,
|
|
85
|
+
a ? /* @__PURE__ */ n(d, { onClick: () => M.current?.click(), children: [
|
|
86
86
|
/* @__PURE__ */ e(O, { "aria-hidden": !0 }),
|
|
87
87
|
C
|
|
88
88
|
] }) : null,
|
|
89
|
-
u ? /* @__PURE__ */ n(
|
|
89
|
+
u ? /* @__PURE__ */ n(d, { disabled: g, onClick: () => u(), children: [
|
|
90
90
|
/* @__PURE__ */ e(V, { "aria-hidden": !0 }),
|
|
91
91
|
j
|
|
92
92
|
] }) : null,
|
|
93
|
-
(
|
|
94
|
-
r ? /* @__PURE__ */ n(
|
|
93
|
+
(a || u) && (r || i) ? /* @__PURE__ */ e(w, {}) : null,
|
|
94
|
+
r ? /* @__PURE__ */ n(d, { onClick: () => b.current?.click(), children: [
|
|
95
95
|
/* @__PURE__ */ e(B, { "aria-hidden": !0 }),
|
|
96
96
|
x
|
|
97
97
|
] }) : null,
|
|
98
|
-
i ? /* @__PURE__ */ n(
|
|
98
|
+
i ? /* @__PURE__ */ n(d, { disabled: g, onClick: () => i(), children: [
|
|
99
99
|
/* @__PURE__ */ e(H, { "aria-hidden": !0 }),
|
|
100
100
|
A
|
|
101
101
|
] }) : null,
|
|
102
|
-
|
|
102
|
+
t ? /* @__PURE__ */ n(k, { children: [
|
|
103
103
|
/* @__PURE__ */ e(w, {}),
|
|
104
104
|
/* @__PURE__ */ n(
|
|
105
|
-
|
|
105
|
+
d,
|
|
106
106
|
{
|
|
107
107
|
variant: "destructive",
|
|
108
|
-
disabled: !o && !
|
|
109
|
-
onClick: () =>
|
|
108
|
+
disabled: !o && !c,
|
|
109
|
+
onClick: () => t(),
|
|
110
110
|
children: [
|
|
111
111
|
/* @__PURE__ */ e(J, { "aria-hidden": !0 }),
|
|
112
112
|
F
|
|
@@ -116,11 +116,11 @@ function te({
|
|
|
116
116
|
] }) : null
|
|
117
117
|
] })
|
|
118
118
|
] }),
|
|
119
|
-
/* @__PURE__ */ e(D, { inputRef: M, accept: S, onPick:
|
|
119
|
+
/* @__PURE__ */ e(D, { inputRef: M, accept: S, onPick: a }),
|
|
120
120
|
/* @__PURE__ */ e(D, { inputRef: b, accept: y, onPick: r, triageCsv: !0 })
|
|
121
121
|
] }) : null;
|
|
122
122
|
}
|
|
123
123
|
export {
|
|
124
|
-
|
|
124
|
+
ae as PlateMapActionsMenu
|
|
125
125
|
};
|
|
126
126
|
//# sourceMappingURL=PlateMapActionsMenu.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"PlateMapActionsMenu.js","sources":["../../../../src/components/composed/PlateMapEditor/PlateMapActionsMenu.tsx"],"sourcesContent":["import { Check, ChevronDown, Download, LayoutTemplate, SaveAll, Trash2, Upload } from \"lucide-react\";\nimport * as React from \"react\";\n\nimport { triagePlateMapCsvFile } from \"./csvPlateTriage\";\nimport { groupTemplateOptions } from \"./helpers\";\n\nimport type { ImportExportHandlers, PlateMapCsvTriage, TemplateOption } from \"./types\";\n\nimport { Button } from \"@/components/ui/button\";\nimport {\n DropdownMenu,\n DropdownMenuContent,\n DropdownMenuGroup,\n DropdownMenuItem,\n DropdownMenuLabel,\n DropdownMenuSeparator,\n DropdownMenuTrigger,\n} from \"@/components/ui/dropdown-menu\";\nimport { cn } from \"@/lib/utils\";\n\nexport interface PlateMapActionsMenuProps extends ImportExportHandlers {\n templates?: TemplateOption[];\n templateId?: string;\n onTemplateChange?: (id: string) => void;\n onClearTemplate?: () => void;\n /** Disable export/save actions when there is nothing to export. */\n hasEntries?: boolean;\n label?: React.ReactNode;\n align?: \"start\" | \"center\" | \"end\";\n side?: \"top\" | \"right\" | \"bottom\" | \"left\";\n csvAccept?: string;\n templateAccept?: string;\n importTemplateLabel?: string;\n exportTemplateLabel?: string;\n importCsvLabel?: string;\n exportCsvLabel?: string;\n clearLabel?: string;\n className?: string;\n}\n\nfunction HiddenFileInput({\n inputRef,\n accept,\n onPick,\n triageCsv,\n}: {\n inputRef: React.RefObject<HTMLInputElement | null>;\n accept: string;\n onPick?: (file: File, triage?: PlateMapCsvTriage) => void | Promise<void>;\n triageCsv?: boolean;\n}) {\n return (\n <input\n ref={inputRef}\n type=\"file\"\n accept={accept}\n hidden\n onChange={(event) => {\n const input = event.currentTarget;\n const file = event.target.files?.[0];\n if (!file) {\n input.value = \"\";\n return;\n }\n\n void (async () => {\n const triage = triageCsv ? await triagePlateMapCsvFile(file) : undefined;\n await (triage ? onPick?.(file, triage) : onPick?.(file));\n input.value = \"\";\n })();\n }}\n />\n );\n}\n\nexport function PlateMapActionsMenu({\n templates,\n templateId,\n onTemplateChange,\n onClearTemplate,\n hasEntries,\n onImportCsv,\n onExportCsv,\n onImportTemplate,\n onExportTemplate,\n label = \"Actions\",\n align = \"start\",\n side = \"bottom\",\n csvAccept = \".csv,text/csv\",\n templateAccept = \"application/json\",\n importTemplateLabel = \"Import template (JSON)\",\n exportTemplateLabel = \"Save template\",\n importCsvLabel = \"Import plate map (CSV)\",\n exportCsvLabel = \"Export plate map (CSV)\",\n clearLabel = \"Clear template\",\n className,\n}: PlateMapActionsMenuProps) {\n const templateInputRef = React.useRef<HTMLInputElement>(null);\n const csvInputRef = React.useRef<HTMLInputElement>(null);\n const templateGroups = React.useMemo(() => groupTemplateOptions(templates), [templates]);\n const disableEntryExport = hasEntries === false;\n\n const hasMenuItems =\n templateGroups.length > 0 ||\n !!onImportTemplate ||\n !!onExportTemplate ||\n !!onImportCsv ||\n !!onExportCsv ||\n !!onClearTemplate;\n\n if (!hasMenuItems) return null;\n\n return (\n <>\n <DropdownMenu>\n <DropdownMenuTrigger asChild>\n <Button type=\"button\" variant=\"outline\" size=\"sm\" className={cn(\"min-w-24 justify-between\", className)}>\n <span>{label}</span>\n <ChevronDown aria-hidden />\n </Button>\n </DropdownMenuTrigger>\n <DropdownMenuContent align={align} side={side} className=\"w-64\">\n {templateGroups.map(([group, options]) => (\n <DropdownMenuGroup key={group || \"templates\"}>\n {group ? <DropdownMenuLabel>{group}</DropdownMenuLabel> : null}\n {options.map((template) => (\n <DropdownMenuItem\n key={template.id}\n disabled={template.disabled}\n onClick={() => onTemplateChange?.(template.id)}\n >\n {template.id === templateId ? <Check aria-hidden /> : <span className=\"size-4\" aria-hidden />}\n <span className=\"flex min-w-0 flex-col\">\n <span className=\"truncate\">{template.label}</span>\n {template.description ? (\n <span className=\"truncate text-xs text-muted-foreground\">{template.description}</span>\n ) : null}\n </span>\n </DropdownMenuItem>\n ))}\n </DropdownMenuGroup>\n ))}\n\n {templateGroups.length > 0 &&\n (onImportTemplate || onExportTemplate || onImportCsv || onExportCsv || onClearTemplate) ? (\n <DropdownMenuSeparator />\n ) : null}\n\n {onImportTemplate ? (\n <DropdownMenuItem onClick={() => templateInputRef.current?.click()}>\n <LayoutTemplate aria-hidden />\n {importTemplateLabel}\n </DropdownMenuItem>\n ) : null}\n {onExportTemplate ? (\n <DropdownMenuItem disabled={disableEntryExport} onClick={() => onExportTemplate()}>\n <SaveAll aria-hidden />\n {exportTemplateLabel}\n </DropdownMenuItem>\n ) : null}\n\n {(onImportTemplate || onExportTemplate) && (onImportCsv || onExportCsv) ? <DropdownMenuSeparator /> : null}\n\n {onImportCsv ? (\n <DropdownMenuItem onClick={() => csvInputRef.current?.click()}>\n <Upload aria-hidden />\n {importCsvLabel}\n </DropdownMenuItem>\n ) : null}\n {onExportCsv ? (\n <DropdownMenuItem disabled={disableEntryExport} onClick={() => onExportCsv()}>\n <Download aria-hidden />\n {exportCsvLabel}\n </DropdownMenuItem>\n ) : null}\n\n {onClearTemplate ? (\n <>\n <DropdownMenuSeparator />\n <DropdownMenuItem\n variant=\"destructive\"\n disabled={!templateId && !hasEntries}\n onClick={() => onClearTemplate()}\n >\n <Trash2 aria-hidden />\n {clearLabel}\n </DropdownMenuItem>\n </>\n ) : null}\n </DropdownMenuContent>\n </DropdownMenu>\n <HiddenFileInput inputRef={templateInputRef} accept={templateAccept} onPick={onImportTemplate} />\n <HiddenFileInput inputRef={csvInputRef} accept={csvAccept} onPick={onImportCsv} triageCsv />\n </>\n );\n}\n"],"names":["HiddenFileInput","inputRef","accept","onPick","triageCsv","jsx","event","input","file","triage","triagePlateMapCsvFile","PlateMapActionsMenu","templates","templateId","onTemplateChange","onClearTemplate","hasEntries","onImportCsv","onExportCsv","onImportTemplate","onExportTemplate","label","align","side","csvAccept","templateAccept","importTemplateLabel","exportTemplateLabel","importCsvLabel","exportCsvLabel","clearLabel","className","templateInputRef","React","csvInputRef","templateGroups","groupTemplateOptions","disableEntryExport","jsxs","Fragment","DropdownMenu","DropdownMenuTrigger","Button","cn","ChevronDown","DropdownMenuContent","group","options","DropdownMenuGroup","DropdownMenuLabel","template","DropdownMenuItem","Check","DropdownMenuSeparator","LayoutTemplate","SaveAll","Upload","Download","Trash2"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"PlateMapActionsMenu.js","sources":["../../../../src/components/composed/PlateMapEditor/PlateMapActionsMenu.tsx"],"sourcesContent":["import { Check, ChevronDown, Download, LayoutTemplate, SaveAll, Trash2, Upload } from \"lucide-react\";\nimport * as React from \"react\";\n\nimport { triagePlateMapCsvFile } from \"./csvPlateTriage\";\nimport { groupTemplateOptions } from \"./helpers\";\n\nimport type { ImportExportHandlers, PlateMapCsvTriage, TemplateOption } from \"./types\";\n\nimport { Button } from \"@/components/ui/button\";\nimport {\n DropdownMenu,\n DropdownMenuContent,\n DropdownMenuGroup,\n DropdownMenuItem,\n DropdownMenuLabel,\n DropdownMenuSeparator,\n DropdownMenuTrigger,\n} from \"@/components/ui/dropdown-menu\";\nimport { cn } from \"@/lib/utils\";\n\nexport interface PlateMapActionsMenuProps extends ImportExportHandlers {\n templates?: TemplateOption[];\n templateId?: string;\n onTemplateChange?: (id: string) => void;\n onClearTemplate?: () => void;\n /** Disable export/save actions when there is nothing to export. */\n hasEntries?: boolean;\n label?: React.ReactNode;\n align?: \"start\" | \"center\" | \"end\";\n side?: \"top\" | \"right\" | \"bottom\" | \"left\";\n csvAccept?: string;\n templateAccept?: string;\n importTemplateLabel?: string;\n exportTemplateLabel?: string;\n importCsvLabel?: string;\n exportCsvLabel?: string;\n clearLabel?: string;\n className?: string;\n}\n\nfunction HiddenFileInput({\n inputRef,\n accept,\n onPick,\n triageCsv,\n}: {\n inputRef: React.RefObject<HTMLInputElement | null>;\n accept: string;\n onPick?: (file: File, triage?: PlateMapCsvTriage) => void | Promise<void>;\n triageCsv?: boolean;\n}) {\n return (\n <input\n ref={inputRef}\n type=\"file\"\n accept={accept}\n hidden\n onChange={(event) => {\n const input = event.currentTarget;\n const file = event.target.files?.[0];\n if (!file) {\n input.value = \"\";\n return;\n }\n\n void (async () => {\n const triage = triageCsv ? await triagePlateMapCsvFile(file) : undefined;\n await (triage ? onPick?.(file, triage) : onPick?.(file));\n input.value = \"\";\n })();\n }}\n />\n );\n}\n\nexport function PlateMapActionsMenu({\n templates,\n templateId,\n onTemplateChange,\n onClearTemplate,\n hasEntries,\n onImportCsv,\n onExportCsv,\n onImportTemplate,\n onExportTemplate,\n label = \"Actions\",\n align = \"start\",\n side = \"bottom\",\n csvAccept = \".csv,text/csv\",\n templateAccept = \"application/json\",\n importTemplateLabel = \"Import template (JSON)\",\n exportTemplateLabel = \"Save template\",\n importCsvLabel = \"Import plate map (CSV)\",\n exportCsvLabel = \"Export plate map (CSV)\",\n clearLabel = \"Clear template\",\n className,\n}: PlateMapActionsMenuProps) {\n const templateInputRef = React.useRef<HTMLInputElement>(null);\n const csvInputRef = React.useRef<HTMLInputElement>(null);\n const templateGroups = React.useMemo(() => groupTemplateOptions(templates), [templates]);\n const disableEntryExport = hasEntries === false;\n\n const hasMenuItems =\n templateGroups.length > 0 ||\n !!onImportTemplate ||\n !!onExportTemplate ||\n !!onImportCsv ||\n !!onExportCsv ||\n !!onClearTemplate;\n\n if (!hasMenuItems) return null;\n\n return (\n <>\n <DropdownMenu modal={false}>\n <DropdownMenuTrigger asChild>\n <Button type=\"button\" variant=\"outline\" size=\"sm\" className={cn(\"min-w-24 justify-between\", className)}>\n <span>{label}</span>\n <ChevronDown aria-hidden />\n </Button>\n </DropdownMenuTrigger>\n <DropdownMenuContent align={align} side={side} className=\"w-64\">\n {templateGroups.map(([group, options]) => (\n <DropdownMenuGroup key={group || \"templates\"}>\n {group ? <DropdownMenuLabel>{group}</DropdownMenuLabel> : null}\n {options.map((template) => (\n <DropdownMenuItem\n key={template.id}\n disabled={template.disabled}\n onClick={() => onTemplateChange?.(template.id)}\n >\n {template.id === templateId ? <Check aria-hidden /> : <span className=\"size-4\" aria-hidden />}\n <span className=\"flex min-w-0 flex-col\">\n <span className=\"truncate\">{template.label}</span>\n {template.description ? (\n <span className=\"truncate text-xs text-muted-foreground\">{template.description}</span>\n ) : null}\n </span>\n </DropdownMenuItem>\n ))}\n </DropdownMenuGroup>\n ))}\n\n {templateGroups.length > 0 &&\n (onImportTemplate || onExportTemplate || onImportCsv || onExportCsv || onClearTemplate) ? (\n <DropdownMenuSeparator />\n ) : null}\n\n {onImportTemplate ? (\n <DropdownMenuItem onClick={() => templateInputRef.current?.click()}>\n <LayoutTemplate aria-hidden />\n {importTemplateLabel}\n </DropdownMenuItem>\n ) : null}\n {onExportTemplate ? (\n <DropdownMenuItem disabled={disableEntryExport} onClick={() => onExportTemplate()}>\n <SaveAll aria-hidden />\n {exportTemplateLabel}\n </DropdownMenuItem>\n ) : null}\n\n {(onImportTemplate || onExportTemplate) && (onImportCsv || onExportCsv) ? <DropdownMenuSeparator /> : null}\n\n {onImportCsv ? (\n <DropdownMenuItem onClick={() => csvInputRef.current?.click()}>\n <Upload aria-hidden />\n {importCsvLabel}\n </DropdownMenuItem>\n ) : null}\n {onExportCsv ? (\n <DropdownMenuItem disabled={disableEntryExport} onClick={() => onExportCsv()}>\n <Download aria-hidden />\n {exportCsvLabel}\n </DropdownMenuItem>\n ) : null}\n\n {onClearTemplate ? (\n <>\n <DropdownMenuSeparator />\n <DropdownMenuItem\n variant=\"destructive\"\n disabled={!templateId && !hasEntries}\n onClick={() => onClearTemplate()}\n >\n <Trash2 aria-hidden />\n {clearLabel}\n </DropdownMenuItem>\n </>\n ) : null}\n </DropdownMenuContent>\n </DropdownMenu>\n <HiddenFileInput inputRef={templateInputRef} accept={templateAccept} onPick={onImportTemplate} />\n <HiddenFileInput inputRef={csvInputRef} accept={csvAccept} onPick={onImportCsv} triageCsv />\n </>\n );\n}\n"],"names":["HiddenFileInput","inputRef","accept","onPick","triageCsv","jsx","event","input","file","triage","triagePlateMapCsvFile","PlateMapActionsMenu","templates","templateId","onTemplateChange","onClearTemplate","hasEntries","onImportCsv","onExportCsv","onImportTemplate","onExportTemplate","label","align","side","csvAccept","templateAccept","importTemplateLabel","exportTemplateLabel","importCsvLabel","exportCsvLabel","clearLabel","className","templateInputRef","React","csvInputRef","templateGroups","groupTemplateOptions","disableEntryExport","jsxs","Fragment","DropdownMenu","DropdownMenuTrigger","Button","cn","ChevronDown","DropdownMenuContent","group","options","DropdownMenuGroup","DropdownMenuLabel","template","DropdownMenuItem","Check","DropdownMenuSeparator","LayoutTemplate","SaveAll","Upload","Download","Trash2"],"mappings":"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"}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const s=require("react/jsx-runtime"),dt=require("react"),ut=require("./csvPlateTriage.cjs"),ft=require("./PlateMapActionsMenu.cjs"),xt=require("./PlateMapForm.cjs"),pt=require("./PlateMapGrid.cjs"),mt=require("./PlateMapManifest.cjs"),Pt=require("./PlateMapPlateSelector.cjs"),J=require("
|
|
1
|
+
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const s=require("react/jsx-runtime"),dt=require("react"),ut=require("./csvPlateTriage.cjs"),ft=require("./PlateMapActionsMenu.cjs"),xt=require("./PlateMapForm.cjs"),pt=require("./PlateMapGrid.cjs"),mt=require("./PlateMapManifest.cjs"),Pt=require("./PlateMapPlateSelector.cjs"),J=require("../../../ui/badge.cjs"),f=require("../../../ui/card.cjs"),ht=require("../../../lib/utils.cjs");function vt(t){const n=Object.create(null,{[Symbol.toStringTag]:{value:"Module"}});if(t){for(const r in t)if(r!=="default"){const l=Object.getOwnPropertyDescriptor(t,r);Object.defineProperty(n,r,l.get?l:{enumerable:!0,get:()=>t[r]})}}return n.default=t,Object.freeze(n)}const o=vt(dt),Q="::",gt="plateBarcode",jt="Plate Barcode";function X(t,n){return`${t}${Q}${n}`}function Z(t,n){const r=`${t}${Q}`;return n.startsWith(r)?n.slice(r.length):void 0}function Mt(t,n){return{...t??{},...n}}function bt(t,n){const r=new Map;return t.forEach(l=>r.set(l.id,l)),(n??[]).forEach(l=>r.set(l.id,l)),[...r.values()]}function St(t,n){const r=t.find(l=>l.id===n);return r||(n?void 0:t[0])}function Ct(t,n){if(!n)return t;const r=new Map;return t.forEach((l,p)=>{const i=Z(n,p);i&&r.set(i,l)}),r}function Et({importedPlates:t,selectedPlateId:n,isControlled:r,providedPlateCount:l}){const p=t[0]?.id;return p?t.some(i=>i.id===n)?void 0:p:!r&&l===0?null:void 0}function wt(t,n){return t>0||!!n}function At(t,n){return!t||!!n}function yt({title:t,badges:n}){return!t&&!n?null:s.jsxs("div",{className:"flex flex-wrap items-center justify-between gap-2",children:[t?s.jsx("h2",{className:"text-lg font-semibold",children:t}):s.jsx("span",{}),n?s.jsx("div",{className:"flex flex-wrap gap-2",children:n}):null]})}function Nt({format:t,rows:n,columns:r,values:l,onChange:p,selection:i,onSelectionChange:E,fields:j,tableColumns:M,colorForWell:ee,emptyEntry:w,mergeOnApply:te,isPopulated:ne,cycleFieldOnWellDoubleClick:T,title:se,badges:ae,banner:re,legend:le,formExtras:oe,formSlot:ce,footer:q,plateTitle:ie="Plate",plateToolbar:de,plates:A,activePlateId:z,onPlateChange:b,onAddPlate:B,onRemovePlate:ue,addPlateLabel:fe,removePlateLabel:xe,plateSelectorLabel:pe,plateSelectorVariant:me,plateBarcodeField:Pe,plateBarcodeColumnHeader:F=jt,hidePlateBarcodeColumn:O=!1,groups:he,activeGroupId:ve,onGroupClick:ge,renderHoverSummary:je,cellSize:Me,emptyWellFillColor:be,wellShape:Se,framedPlate:Ce,wrapWell:Ee,highlightedWellIds:we,onHoveredWellChange:Ae,manifestFilterable:ye,manifestGroupable:Ne,autoScaleGrid:Te,minCellSize:We,maxCellSize:_e,className:ke,templates:qe,templateId:ze,onTemplateChange:Be,onClearTemplate:Fe,onImportCsv:W,onExportCsv:Oe,onImportTemplate:Re,onExportTemplate:Le,csvAccept:De,templateAccept:Ie,label:He,align:Ke,side:$e,importTemplateLabel:Ue,exportTemplateLabel:Ve,importCsvLabel:Ge,exportCsvLabel:Ye,clearLabel:Je}){const[R,L]=o.useState({}),[Qe,D]=o.useState(null),[I,H]=o.useState(),[K,Xe]=o.useState([]),[Ze,$]=o.useState(),et=te??Mt,y=o.useMemo(()=>bt(K,A),[K,A]),v=z!==void 0,N=z??Ze,U=o.useMemo(()=>St(y,N),[y,N]),P=U?.barcode,d=P,m=!!d,h=Pe??gt,V=o.useRef(d),g=o.useMemo(()=>Ct(l,d),[d,l]),G=o.useCallback(e=>!m||!d?e:X(d,e),[d,m]),tt=o.useCallback(e=>{v||$(e),b?.(e)},[v,b]),nt=o.useCallback(async(e,a)=>{if(a){const c=ut.plateOptionsFromCsvTriage(a);Xe(c);const u=Et({importedPlates:c,selectedPlateId:N,isControlled:v,providedPlateCount:A?.length??0});u!==void 0&&(v||$(u??void 0),u&&b?.(u))}await W?.(e,a)},[v,W,b,A,N]),S=o.useCallback(e=>!m||!P?e:{...e,[h]:P},[P,h,m]),C=o.useCallback(e=>{if(!m||!d){p(e);return}const a=new Map(l);[...a.keys()].forEach(c=>{Z(d,c)&&a.delete(c)}),e.forEach((c,u)=>{a.set(G(u),S(c))}),p(a)},[d,m,p,S,G,l]);o.useEffect(()=>{V.current!==d&&(V.current=d,L({}),D(null),H(void 0),i.size>0&&E(new Set))},[d,E,i.size]);const x=o.useMemo(()=>{if(!T)return;const e=j.find(a=>a.key===T);if(!(e?.kind!=="select"||!e.options?.length))return e},[T,j]),st=()=>{if(i.size===0)return;const e=new Map(g);i.forEach(a=>{const u=e.get(a)??w(a),_=S(et(u,R,a));e.set(a,_)}),C(e)},at=()=>{if(i.size===0)return;const e=new Map(g);i.forEach(a=>e.delete(a)),C(e)},rt=o.useCallback(e=>{if(!x?.options?.length)return;const a=new Map(g),c=a.get(e),u=c?.[x.key],_=x.options.findIndex(k=>k.value===u),Y=x.options[(_+1)%x.options.length];if(!Y)return;const it=c??w(e);a.set(e,S({...it,[x.key]:Y.value})),C(a),H(k=>({wellId:e,key:(k?.key??0)+1}))},[C,x,w,g,S]),lt=o.useMemo(()=>!m||!P||O||M.some(c=>c.field===h||c.id===h)?M:[{id:h,header:F,minWidth:150,render:({row:c})=>{const u=c[h]??P;return s.jsx(J.Badge,{variant:"outline",children:String(u)})}},...M],[P,h,O,m,F,M]),ot=wt(y.length,B),ct=At(v,b);return s.jsxs("div",{"data-slot":"plate-map-editor",className:ht.cn("flex flex-col gap-4",ke),children:[s.jsx(yt,{title:se,badges:ae}),re,s.jsxs("div",{className:"flex flex-wrap gap-3 md:flex-nowrap",children:[s.jsx(f.Card,{className:"flex w-full max-w-[360px] min-w-[300px] basis-[360px] flex-col",size:"sm",children:s.jsx(f.CardContent,{className:"flex h-full flex-1 flex-col gap-3",children:s.jsx(xt.PlateMapForm,{fields:j,value:R,onChange:L,selectionSize:i.size,onApply:st,onClear:at,extras:oe,legend:le,formSlot:ce})})}),s.jsxs(f.Card,{className:"flex min-w-[360px] flex-1 flex-col",size:"sm",children:[s.jsxs(f.CardHeader,{className:"border-b",children:[s.jsxs("div",{className:"flex min-w-0 flex-wrap items-center gap-2",children:[s.jsx(f.CardTitle,{className:"min-w-0",children:ie}),ot?s.jsx(Pt.PlateMapPlateSelector,{plates:y,activePlateId:U?.id,onPlateChange:ct?tt:void 0,onAddPlate:B,onRemovePlate:ue,addPlateLabel:fe,removePlateLabel:xe,label:pe,variant:me}):null]}),s.jsx(f.CardAction,{className:"flex flex-wrap items-center gap-2",children:s.jsx(ft.PlateMapActionsMenu,{templates:qe,templateId:ze,onTemplateChange:Be,onClearTemplate:Fe,hasEntries:l.size>0,onImportCsv:W?nt:void 0,onExportCsv:Oe,onImportTemplate:Re,onExportTemplate:Le,csvAccept:De,templateAccept:Ie,label:He,align:Ke,side:$e,importTemplateLabel:Ue,exportTemplateLabel:Ve,importCsvLabel:Ge,exportCsvLabel:Ye,clearLabel:Je})})]}),s.jsx(f.CardContent,{children:s.jsx(pt.PlateMapGrid,{format:t,rows:n,columns:r,values:g,selection:i,onSelectionChange:E,colorForWell:ee,fields:j,renderHoverSummary:je,hoveredWellId:Qe,onHoveredWellChange:e=>{D(e),Ae?.(e)},toolbar:de,emptyWellFillColor:be,wellShape:Se,framed:Ce,wrapWell:Ee,highlightedWellIds:we,onWellDoubleClick:x?rt:void 0,selectionFillMode:x?"well":"selection",flashWellId:I?.wellId,flashWellKey:I?.key,cellSize:Me,autoScale:Te,minCellSize:We,maxCellSize:_e,groups:he,activeGroupId:ve,onGroupClick:ge})})]})]}),s.jsxs(f.Card,{size:"sm",children:[s.jsx(f.CardHeader,{className:"border-b",children:s.jsx(f.CardTitle,{children:"Sample manifest"})}),s.jsx(f.CardContent,{children:s.jsx(mt.PlateMapManifest,{values:g,onChange:C,columns:lt,fields:j,selection:i,onSelectionChange:E,emptyEntry:w,isPopulated:ne,filterable:ye,groupable:Ne})})]}),q?s.jsx("div",{className:"flex justify-end gap-2 pt-2",children:q}):null]})}exports.PlateBadge=J.Badge;exports.PlateMapEditor=Nt;exports.getPlateMapScopedWellId=X;
|
|
2
2
|
//# sourceMappingURL=PlateMapEditor.cjs.map
|