@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 +1 @@
|
|
|
1
|
-
{"version":3,"file":"WellMetadataForm.cjs","sources":["../../../../src/components/composed/PlateMapEditor/WellMetadataForm.tsx"],"sourcesContent":["import * as React from \"react\";\n\nimport type { WellField, WellRecord, WellSelectOption } from \"./types\";\n\nimport { Button } from \"@/components/ui/button\";\nimport { Checkbox } from \"@/components/ui/checkbox\";\nimport {\n Combobox,\n ComboboxChip,\n ComboboxChips,\n ComboboxChipsInput,\n ComboboxContent,\n ComboboxEmpty,\n ComboboxItem,\n ComboboxList,\n ComboboxValue,\n useComboboxAnchor,\n} from \"@/components/ui/combobox\";\nimport { Input } from \"@/components/ui/input\";\nimport { Label } from \"@/components/ui/label\";\nimport { Select, SelectContent, SelectItem, SelectTrigger, SelectValue } from \"@/components/ui/select\";\nimport { Switch } from \"@/components/ui/switch\";\nimport { cn } from \"@/lib/utils\";\n\nfunction MultiSelectControl({\n id,\n value,\n options,\n placeholder,\n onChange,\n}: {\n id: string;\n value: string[];\n options: WellSelectOption[];\n placeholder?: string;\n onChange: (next: string[]) => void;\n}) {\n const anchorRef = useComboboxAnchor();\n const labelByValue = React.useMemo(() => {\n const m = new Map<string, string>();\n options.forEach((o) => m.set(o.value, o.label));\n return m;\n }, [options]);\n\n return (\n <Combobox multiple items={options.map((o) => o.value)} value={value} onValueChange={onChange}>\n <ComboboxChips ref={anchorRef} className=\"min-h-9 w-full\">\n <ComboboxValue>\n {(items: string[]) =>\n items.map((item) => <ComboboxChip key={item}>{labelByValue.get(item) ?? item}</ComboboxChip>)\n }\n </ComboboxValue>\n <ComboboxChipsInput id={id} placeholder={placeholder ?? \"Select…\"} />\n </ComboboxChips>\n <ComboboxContent anchor={anchorRef}>\n <ComboboxEmpty>No options.</ComboboxEmpty>\n <ComboboxList>\n {(item: string) => (\n <ComboboxItem key={item} value={item}>\n <span className=\"inline-flex items-center gap-2\">\n {(() => {\n const opt = options.find((o) => o.value === item);\n return opt?.swatch ? (\n <span\n className=\"inline-block h-2.5 w-2.5 rounded-sm border border-foreground/20\"\n style={{ backgroundColor: opt.swatch }}\n aria-hidden\n />\n ) : null;\n })()}\n {labelByValue.get(item) ?? item}\n </span>\n </ComboboxItem>\n )}\n </ComboboxList>\n </ComboboxContent>\n </Combobox>\n );\n}\n\nexport interface WellMetadataFormProps<T extends WellRecord = WellRecord> {\n fields: WellField<T>[];\n /** Staged values used to apply across the selection. */\n value: Partial<T>;\n onChange: (next: Partial<T>) => void;\n selectionSize: number;\n onApply: () => void;\n onClear: () => void;\n applyLabel?: string;\n clearLabel?: string;\n /** Optional extra slot rendered between fields and action row. */\n extras?: React.ReactNode;\n className?: string;\n}\n\nconst INPUT_TYPE_BY_KIND: Record<string, string> = {\n number: \"number\",\n integer: \"number\",\n date: \"date\",\n datetime: \"datetime-local\",\n time: \"time\",\n};\n\nfunction resolveInputType(kind: string): string {\n return INPUT_TYPE_BY_KIND[kind] ?? \"text\";\n}\n\nfunction parseInputValue(kind: string, raw: string): unknown {\n if (raw === \"\") return undefined;\n if (kind === \"number\") {\n const num = parseFloat(raw);\n return Number.isFinite(num) ? num : raw;\n }\n if (kind === \"integer\") {\n const num = parseInt(raw, 10);\n return Number.isFinite(num) ? num : raw;\n }\n return raw;\n}\n\nexport function WellMetadataForm<T extends WellRecord = WellRecord>({\n fields,\n value,\n onChange,\n selectionSize,\n onApply,\n onClear,\n applyLabel = \"Apply\",\n clearLabel = \"Clear wells\",\n extras,\n className,\n}: WellMetadataFormProps<T>) {\n const setField = (key: keyof T & string, next: unknown) => {\n onChange({ ...value, [key]: next } as Partial<T>);\n };\n\n const renderLabel = (field: WellField<T>) => (\n <Label htmlFor={`field-${field.key}`} className=\"gap-1.5\">\n {field.icon ? <span className=\"inline-flex text-muted-foreground [&_svg]:size-3.5\">{field.icon}</span> : null}\n {field.label}\n </Label>\n );\n\n const renderCustom = (field: WellField<T>, fieldValue: unknown) => (\n <div key={field.key} className=\"flex flex-col gap-1.5\">\n {renderLabel(field)}\n {field.render!({\n value: fieldValue,\n onChange: (next) => setField(field.key, next),\n selectionSize,\n })}\n </div>\n );\n\n const renderSelect = (field: WellField<T>, fieldValue: unknown) => (\n <div key={field.key} className=\"flex flex-col gap-1.5\">\n {renderLabel(field)}\n <Select value={(fieldValue as string | undefined) ?? \"\"} onValueChange={(v) => setField(field.key, v)}>\n <SelectTrigger id={`field-${field.key}`} size=\"sm\" className=\"w-full\">\n <SelectValue placeholder={field.placeholder ?? \"Select…\"} />\n </SelectTrigger>\n <SelectContent>\n {(field.options ?? []).map((opt) => (\n <SelectItem key={opt.value} value={opt.value}>\n <span className=\"inline-flex items-center gap-2\">\n {opt.swatch ? (\n <span\n className=\"inline-block h-2.5 w-2.5 rounded-sm border border-foreground/20\"\n style={{ backgroundColor: opt.swatch }}\n aria-hidden\n />\n ) : null}\n {opt.label}\n </span>\n </SelectItem>\n ))}\n </SelectContent>\n </Select>\n </div>\n );\n\n const renderMultiSelect = (field: WellField<T>, fieldValue: unknown) => {\n const current = Array.isArray(fieldValue) ? (fieldValue as string[]) : [];\n return (\n <div key={field.key} className=\"flex flex-col gap-1.5\">\n {renderLabel(field)}\n <MultiSelectControl\n id={`field-${field.key}`}\n value={current}\n options={field.options ?? []}\n placeholder={field.placeholder}\n onChange={(next) => setField(field.key, next.length === 0 ? undefined : next)}\n />\n </div>\n );\n };\n\n const renderBoolean = (field: WellField<T>, fieldValue: unknown) => {\n const checked = !!fieldValue;\n if (field.boolStyle === \"switch\") {\n return (\n <div key={field.key} className=\"flex items-center justify-between gap-2\">\n {renderLabel(field)}\n <Switch\n id={`field-${field.key}`}\n checked={checked}\n onCheckedChange={(c) => setField(field.key, c)}\n />\n </div>\n );\n }\n return (\n <div key={field.key} className=\"flex items-center gap-2\">\n <Checkbox\n id={`field-${field.key}`}\n checked={checked}\n onCheckedChange={(c) => setField(field.key, c === true)}\n />\n {renderLabel(field)}\n </div>\n );\n };\n\n const renderInput = (field: WellField<T>, fieldValue: unknown) => (\n <div key={field.key} className=\"flex flex-col gap-1.5\">\n {renderLabel(field)}\n <Input\n id={`field-${field.key}`}\n type={resolveInputType(field.kind)}\n step={field.kind === \"integer\" ? 1 : undefined}\n placeholder={field.placeholder}\n value={(fieldValue as string | number | undefined) ?? \"\"}\n onChange={(e) => setField(field.key, parseInputValue(field.kind, e.target.value))}\n />\n </div>\n );\n\n const renderField = (field: WellField<T>) => {\n const fieldValue = value[field.key];\n if (field.render) return renderCustom(field, fieldValue);\n if (field.kind === \"select\") return renderSelect(field, fieldValue);\n if (field.kind === \"multiselect\") return renderMultiSelect(field, fieldValue);\n if (field.kind === \"boolean\") return renderBoolean(field, fieldValue);\n return renderInput(field, fieldValue);\n };\n\n return (\n <div data-slot=\"well-metadata-form\" className={cn(\"flex flex-col gap-3\", className)}>\n <div className=\"text-sm font-medium\">\n {selectionSize > 0 ? `Apply to ${selectionSize} well${selectionSize === 1 ? \"\" : \"s\"}` : \"Select wells to edit\"}\n </div>\n\n {fields.map(renderField)}\n\n {extras}\n\n <div className=\"mt-auto flex gap-2 pt-1\">\n <Button variant=\"default\" size=\"sm\" disabled={selectionSize === 0} onClick={onApply}>\n {applyLabel}\n </Button>\n <Button variant=\"outline\" size=\"sm\" disabled={selectionSize === 0} onClick={onClear}>\n {clearLabel}\n </Button>\n </div>\n </div>\n );\n}\n"],"names":["MultiSelectControl","id","value","options","placeholder","onChange","anchorRef","useComboboxAnchor","labelByValue","React","m","o","jsxs","Combobox","ComboboxChips","jsx","ComboboxValue","items","item","ComboboxChip","ComboboxChipsInput","ComboboxContent","ComboboxEmpty","ComboboxList","ComboboxItem","opt","INPUT_TYPE_BY_KIND","resolveInputType","kind","parseInputValue","raw","num","WellMetadataForm","fields","selectionSize","onApply","onClear","applyLabel","clearLabel","extras","className","setField","key","next","renderLabel","field","Label","renderCustom","fieldValue","renderSelect","Select","v","SelectTrigger","SelectValue","SelectContent","SelectItem","renderMultiSelect","current","renderBoolean","checked","Switch","c","Checkbox","renderInput","Input","e","renderField","cn","Button"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"WellMetadataForm.cjs","sources":["../../../../src/components/composed/PlateMapEditor/WellMetadataForm.tsx"],"sourcesContent":["import * as React from \"react\";\n\nimport type { WellField, WellRecord, WellSelectOption } from \"./types\";\n\nimport { Button } from \"@/components/ui/button\";\nimport { Checkbox } from \"@/components/ui/checkbox\";\nimport {\n Combobox,\n ComboboxChip,\n ComboboxChips,\n ComboboxChipsInput,\n ComboboxContent,\n ComboboxEmpty,\n ComboboxItem,\n ComboboxList,\n ComboboxValue,\n useComboboxAnchor,\n} from \"@/components/ui/combobox\";\nimport { Input } from \"@/components/ui/input\";\nimport { Label } from \"@/components/ui/label\";\nimport { Select, SelectContent, SelectItem, SelectTrigger, SelectValue } from \"@/components/ui/select\";\nimport { Switch } from \"@/components/ui/switch\";\nimport { cn } from \"@/lib/utils\";\n\nfunction MultiSelectControl({\n id,\n value,\n options,\n placeholder,\n onChange,\n}: {\n id: string;\n value: string[];\n options: WellSelectOption[];\n placeholder?: string;\n onChange: (next: string[]) => void;\n}) {\n const anchorRef = useComboboxAnchor();\n const labelByValue = React.useMemo(() => {\n const m = new Map<string, string>();\n options.forEach((o) => m.set(o.value, o.label));\n return m;\n }, [options]);\n\n return (\n <Combobox multiple items={options.map((o) => o.value)} value={value} onValueChange={onChange}>\n <ComboboxChips ref={anchorRef} className=\"min-h-9 w-full\">\n <ComboboxValue>\n {(items: string[]) =>\n items.map((item) => <ComboboxChip key={item}>{labelByValue.get(item) ?? item}</ComboboxChip>)\n }\n </ComboboxValue>\n <ComboboxChipsInput id={id} placeholder={placeholder ?? \"Select…\"} />\n </ComboboxChips>\n <ComboboxContent anchor={anchorRef}>\n <ComboboxEmpty>No options.</ComboboxEmpty>\n <ComboboxList>\n {(item: string) => (\n <ComboboxItem key={item} value={item}>\n <span className=\"inline-flex items-center gap-2\">\n {(() => {\n const opt = options.find((o) => o.value === item);\n return opt?.swatch ? (\n <span\n className=\"inline-block h-2.5 w-2.5 rounded-sm border border-foreground/20\"\n style={{ backgroundColor: opt.swatch }}\n aria-hidden\n />\n ) : null;\n })()}\n {labelByValue.get(item) ?? item}\n </span>\n </ComboboxItem>\n )}\n </ComboboxList>\n </ComboboxContent>\n </Combobox>\n );\n}\n\nexport interface WellMetadataFormProps<T extends WellRecord = WellRecord> {\n fields: WellField<T>[];\n /** Staged values used to apply across the selection. */\n value: Partial<T>;\n onChange: (next: Partial<T>) => void;\n selectionSize: number;\n onApply: () => void;\n onClear: () => void;\n applyLabel?: string;\n clearLabel?: string;\n /** Optional extra slot rendered between fields and action row. */\n extras?: React.ReactNode;\n className?: string;\n}\n\nconst INPUT_TYPE_BY_KIND: Record<string, string> = {\n number: \"number\",\n integer: \"number\",\n date: \"date\",\n datetime: \"datetime-local\",\n time: \"time\",\n};\n\nfunction resolveInputType(kind: string): string {\n return INPUT_TYPE_BY_KIND[kind] ?? \"text\";\n}\n\nfunction parseInputValue(kind: string, raw: string): unknown {\n if (raw === \"\") return undefined;\n if (kind === \"number\") {\n const num = parseFloat(raw);\n return Number.isFinite(num) ? num : raw;\n }\n if (kind === \"integer\") {\n const num = parseInt(raw, 10);\n return Number.isFinite(num) ? num : raw;\n }\n return raw;\n}\n\nexport function WellMetadataForm<T extends WellRecord = WellRecord>({\n fields,\n value,\n onChange,\n selectionSize,\n onApply,\n onClear,\n applyLabel = \"Apply\",\n clearLabel = \"Clear wells\",\n extras,\n className,\n}: WellMetadataFormProps<T>) {\n const setField = (key: keyof T & string, next: unknown) => {\n onChange({ ...value, [key]: next } as Partial<T>);\n };\n\n const renderLabel = (field: WellField<T>) => (\n <Label htmlFor={`field-${field.key}`} className=\"gap-1.5\">\n {field.icon ? <span className=\"inline-flex text-muted-foreground [&_svg]:size-3.5\">{field.icon}</span> : null}\n {field.label}\n </Label>\n );\n\n const renderCustom = (field: WellField<T>, fieldValue: unknown) => (\n <div key={field.key} className=\"flex flex-col gap-1.5\">\n {renderLabel(field)}\n {field.render!({\n value: fieldValue,\n onChange: (next) => setField(field.key, next),\n selectionSize,\n })}\n </div>\n );\n\n const renderSelect = (field: WellField<T>, fieldValue: unknown) => (\n <div key={field.key} className=\"flex flex-col gap-1.5\">\n {renderLabel(field)}\n <Select value={(fieldValue as string | undefined) ?? \"\"} onValueChange={(v) => setField(field.key, v)}>\n <SelectTrigger id={`field-${field.key}`} size=\"sm\" className=\"w-full\">\n <SelectValue placeholder={field.placeholder ?? \"Select…\"} />\n </SelectTrigger>\n <SelectContent>\n {(field.options ?? []).map((opt) => (\n <SelectItem key={opt.value} value={opt.value}>\n <span className=\"inline-flex items-center gap-2\">\n {opt.swatch ? (\n <span\n className=\"inline-block h-2.5 w-2.5 rounded-sm border border-foreground/20\"\n style={{ backgroundColor: opt.swatch }}\n aria-hidden\n />\n ) : null}\n {opt.label}\n </span>\n </SelectItem>\n ))}\n </SelectContent>\n </Select>\n </div>\n );\n\n const renderMultiSelect = (field: WellField<T>, fieldValue: unknown) => {\n const current = Array.isArray(fieldValue) ? (fieldValue as string[]) : [];\n return (\n <div key={field.key} className=\"flex flex-col gap-1.5\">\n {renderLabel(field)}\n <MultiSelectControl\n id={`field-${field.key}`}\n value={current}\n options={field.options ?? []}\n placeholder={field.placeholder}\n onChange={(next) => setField(field.key, next.length === 0 ? undefined : next)}\n />\n </div>\n );\n };\n\n const renderBoolean = (field: WellField<T>, fieldValue: unknown) => {\n const checked = !!fieldValue;\n if (field.boolStyle === \"switch\") {\n return (\n <div key={field.key} className=\"flex items-center justify-between gap-2\">\n {renderLabel(field)}\n <Switch\n id={`field-${field.key}`}\n checked={checked}\n onCheckedChange={(c) => setField(field.key, c)}\n />\n </div>\n );\n }\n return (\n <div key={field.key} className=\"flex items-center gap-2\">\n <Checkbox\n id={`field-${field.key}`}\n checked={checked}\n onCheckedChange={(c) => setField(field.key, c === true)}\n />\n {renderLabel(field)}\n </div>\n );\n };\n\n const renderInput = (field: WellField<T>, fieldValue: unknown) => (\n <div key={field.key} className=\"flex flex-col gap-1.5\">\n {renderLabel(field)}\n <Input\n id={`field-${field.key}`}\n type={resolveInputType(field.kind)}\n step={field.kind === \"integer\" ? 1 : undefined}\n placeholder={field.placeholder}\n value={(fieldValue as string | number | undefined) ?? \"\"}\n onChange={(e) => setField(field.key, parseInputValue(field.kind, e.target.value))}\n />\n </div>\n );\n\n const renderField = (field: WellField<T>) => {\n const fieldValue = value[field.key];\n if (field.render) return renderCustom(field, fieldValue);\n if (field.kind === \"select\") return renderSelect(field, fieldValue);\n if (field.kind === \"multiselect\") return renderMultiSelect(field, fieldValue);\n if (field.kind === \"boolean\") return renderBoolean(field, fieldValue);\n return renderInput(field, fieldValue);\n };\n\n return (\n <div data-slot=\"well-metadata-form\" className={cn(\"flex flex-col gap-3\", className)}>\n <div className=\"text-sm font-medium\">\n {selectionSize > 0 ? `Apply to ${selectionSize} well${selectionSize === 1 ? \"\" : \"s\"}` : \"Select wells to edit\"}\n </div>\n\n {fields.map(renderField)}\n\n {extras}\n\n <div className=\"mt-auto flex gap-2 pt-1\">\n <Button variant=\"default\" size=\"sm\" disabled={selectionSize === 0} onClick={onApply}>\n {applyLabel}\n </Button>\n <Button variant=\"outline\" size=\"sm\" disabled={selectionSize === 0} onClick={onClear}>\n {clearLabel}\n </Button>\n </div>\n </div>\n );\n}\n"],"names":["MultiSelectControl","id","value","options","placeholder","onChange","anchorRef","useComboboxAnchor","labelByValue","React","m","o","jsxs","Combobox","ComboboxChips","jsx","ComboboxValue","items","item","ComboboxChip","ComboboxChipsInput","ComboboxContent","ComboboxEmpty","ComboboxList","ComboboxItem","opt","INPUT_TYPE_BY_KIND","resolveInputType","kind","parseInputValue","raw","num","WellMetadataForm","fields","selectionSize","onApply","onClear","applyLabel","clearLabel","extras","className","setField","key","next","renderLabel","field","Label","renderCustom","fieldValue","renderSelect","Select","v","SelectTrigger","SelectValue","SelectContent","SelectItem","renderMultiSelect","current","renderBoolean","checked","Switch","c","Checkbox","renderInput","Input","e","renderField","cn","Button"],"mappings":"osBAwBA,SAASA,EAAmB,CAC1B,GAAAC,EACA,MAAAC,EACA,QAAAC,EACA,YAAAC,EACA,SAAAC,CACF,EAMG,CACD,MAAMC,EAAYC,EAAAA,kBAAA,EACZC,EAAeC,EAAM,QAAQ,IAAM,CACvC,MAAMC,MAAQ,IACd,OAAAP,EAAQ,QAASQ,GAAMD,EAAE,IAAIC,EAAE,MAAOA,EAAE,KAAK,CAAC,EACvCD,CACT,EAAG,CAACP,CAAO,CAAC,EAEZ,OACES,EAAAA,KAACC,EAAAA,SAAA,CAAS,SAAQ,GAAC,MAAOV,EAAQ,IAAKQ,GAAMA,EAAE,KAAK,EAAG,MAAAT,EAAc,cAAeG,EAClF,SAAA,CAAAO,EAAAA,KAACE,EAAAA,cAAA,CAAc,IAAKR,EAAW,UAAU,iBACvC,SAAA,CAAAS,MAACC,EAAAA,eACE,SAACC,GACAA,EAAM,IAAKC,GAASH,EAAAA,IAACI,EAAAA,aAAA,CAAyB,SAAAX,EAAa,IAAIU,CAAI,GAAKA,CAAA,EAAjCA,CAAsC,CAAe,EAEhG,EACAH,EAAAA,IAACK,EAAAA,mBAAA,CAAmB,GAAAnB,EAAQ,YAAaG,GAAe,SAAA,CAAW,CAAA,EACrE,EACAQ,EAAAA,KAACS,EAAAA,gBAAA,CAAgB,OAAQf,EACvB,SAAA,CAAAS,EAAAA,IAACO,EAAAA,eAAc,SAAA,aAAA,CAAW,EAC1BP,EAAAA,IAACQ,EAAAA,aAAA,CACE,SAACL,GACAH,EAAAA,IAACS,eAAA,CAAwB,MAAON,EAC9B,SAAAN,OAAC,OAAA,CAAK,UAAU,iCACZ,SAAA,EAAA,IAAM,CACN,MAAMa,EAAMtB,EAAQ,KAAMQ,GAAMA,EAAE,QAAUO,CAAI,EAChD,OAAOO,GAAK,OACVV,EAAAA,IAAC,OAAA,CACC,UAAU,kEACV,MAAO,CAAE,gBAAiBU,EAAI,MAAA,EAC9B,cAAW,EAAA,CAAA,EAEX,IACN,GAAA,EACCjB,EAAa,IAAIU,CAAI,GAAKA,CAAA,EAC7B,CAAA,EAbiBA,CAcnB,CAAA,CAEJ,CAAA,CAAA,CACF,CAAA,EACF,CAEJ,CAiBA,MAAMQ,EAA6C,CACjD,OAAQ,SACR,QAAS,SACT,KAAM,OACN,SAAU,iBACV,KAAM,MACR,EAEA,SAASC,EAAiBC,EAAsB,CAC9C,OAAOF,EAAmBE,CAAI,GAAK,MACrC,CAEA,SAASC,EAAgBD,EAAcE,EAAsB,CAC3D,GAAIA,IAAQ,GACZ,IAAIF,IAAS,SAAU,CACrB,MAAMG,EAAM,WAAWD,CAAG,EAC1B,OAAO,OAAO,SAASC,CAAG,EAAIA,EAAMD,CACtC,CACA,GAAIF,IAAS,UAAW,CACtB,MAAMG,EAAM,SAASD,EAAK,EAAE,EAC5B,OAAO,OAAO,SAASC,CAAG,EAAIA,EAAMD,CACtC,CACA,OAAOA,EACT,CAEO,SAASE,EAAoD,CAClE,OAAAC,EACA,MAAA/B,EACA,SAAAG,EACA,cAAA6B,EACA,QAAAC,EACA,QAAAC,EACA,WAAAC,EAAa,QACb,WAAAC,EAAa,cACb,OAAAC,EACA,UAAAC,CACF,EAA6B,CAC3B,MAAMC,EAAW,CAACC,EAAuBC,IAAkB,CACzDtC,EAAS,CAAE,GAAGH,EAAO,CAACwC,CAAG,EAAGC,EAAoB,CAClD,EAEMC,EAAeC,GACnBjC,EAAAA,KAACkC,EAAAA,MAAA,CAAM,QAAS,SAASD,EAAM,GAAG,GAAI,UAAU,UAC7C,SAAA,CAAAA,EAAM,KAAO9B,MAAC,OAAA,CAAK,UAAU,qDAAsD,SAAA8B,EAAM,KAAK,EAAU,KACxGA,EAAM,KAAA,EACT,EAGIE,EAAe,CAACF,EAAqBG,IACzCpC,EAAAA,KAAC,MAAA,CAAoB,UAAU,wBAC5B,SAAA,CAAAgC,EAAYC,CAAK,EACjBA,EAAM,OAAQ,CACb,MAAOG,EACP,SAAWL,GAASF,EAASI,EAAM,IAAKF,CAAI,EAC5C,cAAAT,CAAA,CACD,CAAA,CAAA,EANOW,EAAM,GAOhB,EAGII,EAAe,CAACJ,EAAqBG,IACzCpC,EAAAA,KAAC,MAAA,CAAoB,UAAU,wBAC5B,SAAA,CAAAgC,EAAYC,CAAK,EAClBjC,EAAAA,KAACsC,EAAAA,OAAA,CAAO,MAAQF,GAAqC,GAAI,cAAgBG,GAAMV,EAASI,EAAM,IAAKM,CAAC,EAClG,SAAA,CAAApC,MAACqC,EAAAA,eAAc,GAAI,SAASP,EAAM,GAAG,GAAI,KAAK,KAAK,UAAU,SAC3D,eAACQ,cAAA,CAAY,YAAaR,EAAM,aAAe,UAAW,EAC5D,QACCS,EAAAA,cAAA,CACG,UAAAT,EAAM,SAAW,IAAI,IAAKpB,GAC1BV,EAAAA,IAACwC,EAAAA,YAA2B,MAAO9B,EAAI,MACrC,SAAAb,OAAC,OAAA,CAAK,UAAU,iCACb,SAAA,CAAAa,EAAI,OACHV,EAAAA,IAAC,OAAA,CACC,UAAU,kEACV,MAAO,CAAE,gBAAiBU,EAAI,MAAA,EAC9B,cAAW,EAAA,CAAA,EAEX,KACHA,EAAI,KAAA,CAAA,CACP,CAAA,EAVeA,EAAI,KAWrB,CACD,CAAA,CACH,CAAA,CAAA,CACF,CAAA,CAAA,EAtBQoB,EAAM,GAuBhB,EAGIW,EAAoB,CAACX,EAAqBG,IAAwB,CACtE,MAAMS,EAAU,MAAM,QAAQT,CAAU,EAAKA,EAA0B,CAAA,EACvE,OACEpC,EAAAA,KAAC,MAAA,CAAoB,UAAU,wBAC5B,SAAA,CAAAgC,EAAYC,CAAK,EAClB9B,EAAAA,IAACf,EAAA,CACC,GAAI,SAAS6C,EAAM,GAAG,GACtB,MAAOY,EACP,QAASZ,EAAM,SAAW,CAAA,EAC1B,YAAaA,EAAM,YACnB,SAAWF,GAASF,EAASI,EAAM,IAAKF,EAAK,SAAW,EAAI,OAAYA,CAAI,CAAA,CAAA,CAC9E,CAAA,EARQE,EAAM,GAShB,CAEJ,EAEMa,EAAgB,CAACb,EAAqBG,IAAwB,CAClE,MAAMW,EAAU,CAAC,CAACX,EAClB,OAAIH,EAAM,YAAc,SAEpBjC,EAAAA,KAAC,MAAA,CAAoB,UAAU,0CAC5B,SAAA,CAAAgC,EAAYC,CAAK,EAClB9B,EAAAA,IAAC6C,EAAAA,OAAA,CACC,GAAI,SAASf,EAAM,GAAG,GACtB,QAAAc,EACA,gBAAkBE,GAAMpB,EAASI,EAAM,IAAKgB,CAAC,CAAA,CAAA,CAC/C,CAAA,EANQhB,EAAM,GAOhB,EAIFjC,EAAAA,KAAC,MAAA,CAAoB,UAAU,0BAC7B,SAAA,CAAAG,EAAAA,IAAC+C,EAAAA,SAAA,CACC,GAAI,SAASjB,EAAM,GAAG,GACtB,QAAAc,EACA,gBAAkBE,GAAMpB,EAASI,EAAM,IAAKgB,IAAM,EAAI,CAAA,CAAA,EAEvDjB,EAAYC,CAAK,CAAA,CAAA,EANVA,EAAM,GAOhB,CAEJ,EAEMkB,EAAc,CAAClB,EAAqBG,IACxCpC,EAAAA,KAAC,MAAA,CAAoB,UAAU,wBAC5B,SAAA,CAAAgC,EAAYC,CAAK,EAClB9B,EAAAA,IAACiD,EAAAA,MAAA,CACC,GAAI,SAASnB,EAAM,GAAG,GACtB,KAAMlB,EAAiBkB,EAAM,IAAI,EACjC,KAAMA,EAAM,OAAS,UAAY,EAAI,OACrC,YAAaA,EAAM,YACnB,MAAQG,GAA8C,GACtD,SAAWiB,GAAMxB,EAASI,EAAM,IAAKhB,EAAgBgB,EAAM,KAAMoB,EAAE,OAAO,KAAK,CAAC,CAAA,CAAA,CAClF,CAAA,EATQpB,EAAM,GAUhB,EAGIqB,EAAerB,GAAwB,CAC3C,MAAMG,EAAa9C,EAAM2C,EAAM,GAAG,EAClC,OAAIA,EAAM,OAAeE,EAAaF,EAAOG,CAAU,EACnDH,EAAM,OAAS,SAAiBI,EAAaJ,EAAOG,CAAU,EAC9DH,EAAM,OAAS,cAAsBW,EAAkBX,EAAOG,CAAU,EACxEH,EAAM,OAAS,UAAkBa,EAAcb,EAAOG,CAAU,EAC7De,EAAYlB,EAAOG,CAAU,CACtC,EAEA,OACEpC,OAAC,OAAI,YAAU,qBAAqB,UAAWuD,EAAAA,GAAG,sBAAuB3B,CAAS,EAChF,SAAA,CAAAzB,EAAAA,IAAC,MAAA,CAAI,UAAU,sBACZ,SAAAmB,EAAgB,EAAI,YAAYA,CAAa,QAAQA,IAAkB,EAAI,GAAK,GAAG,GAAK,uBAC3F,EAECD,EAAO,IAAIiC,CAAW,EAEtB3B,EAED3B,EAAAA,KAAC,MAAA,CAAI,UAAU,0BACb,SAAA,CAAAG,EAAAA,IAACqD,EAAAA,OAAA,CAAO,QAAQ,UAAU,KAAK,KAAK,SAAUlC,IAAkB,EAAG,QAASC,EACzE,SAAAE,CAAA,CACH,EACAtB,EAAAA,IAACqD,EAAAA,OAAA,CAAO,QAAQ,UAAU,KAAK,KAAK,SAAUlC,IAAkB,EAAG,QAASE,EACzE,SAAAE,CAAA,CACH,CAAA,CAAA,CACF,CAAA,EACF,CAEJ"}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import { WellField, WellRecord } from './types';
|
|
2
|
+
import * as React from "react";
|
|
3
|
+
export interface WellMetadataFormProps<T extends WellRecord = WellRecord> {
|
|
4
|
+
fields: WellField<T>[];
|
|
5
|
+
/** Staged values used to apply across the selection. */
|
|
6
|
+
value: Partial<T>;
|
|
7
|
+
onChange: (next: Partial<T>) => void;
|
|
8
|
+
selectionSize: number;
|
|
9
|
+
onApply: () => void;
|
|
10
|
+
onClear: () => void;
|
|
11
|
+
applyLabel?: string;
|
|
12
|
+
clearLabel?: string;
|
|
13
|
+
/** Optional extra slot rendered between fields and action row. */
|
|
14
|
+
extras?: React.ReactNode;
|
|
15
|
+
className?: string;
|
|
16
|
+
}
|
|
17
|
+
export declare function WellMetadataForm<T extends WellRecord = WellRecord>({ fields, value, onChange, selectionSize, onApply, onClear, applyLabel, clearLabel, extras, className, }: WellMetadataFormProps<T>): import("react/jsx-runtime").JSX.Element;
|
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
import { jsxs as o, jsx as n } from "react/jsx-runtime";
|
|
2
2
|
import * as I from "react";
|
|
3
|
-
import { Button as x } from "
|
|
4
|
-
import { Checkbox as S } from "
|
|
5
|
-
import { useComboboxAnchor as $, Combobox as F, ComboboxChips as V, ComboboxValue as A, ComboboxChip as M, ComboboxChipsInput as B, ComboboxContent as T, ComboboxEmpty as _, ComboboxList as j, ComboboxItem as E } from "
|
|
6
|
-
import { Input as L } from "
|
|
7
|
-
import { Label as P } from "
|
|
8
|
-
import { Select as R, SelectTrigger as Y, SelectValue as D, SelectContent as K, SelectItem as U } from "
|
|
9
|
-
import { Switch as W } from "
|
|
3
|
+
import { Button as x } from "../../../ui/button.js";
|
|
4
|
+
import { Checkbox as S } from "../../../ui/checkbox.js";
|
|
5
|
+
import { useComboboxAnchor as $, Combobox as F, ComboboxChips as V, ComboboxValue as A, ComboboxChip as M, ComboboxChipsInput as B, ComboboxContent as T, ComboboxEmpty as _, ComboboxList as j, ComboboxItem as E } from "../../../ui/combobox.js";
|
|
6
|
+
import { Input as L } from "../../../ui/input.js";
|
|
7
|
+
import { Label as P } from "../../../ui/label.js";
|
|
8
|
+
import { Select as R, SelectTrigger as Y, SelectValue as D, SelectContent as K, SelectItem as U } from "../../../ui/select.js";
|
|
9
|
+
import { Switch as W } from "../../../ui/switch.js";
|
|
10
10
|
import { cn as q } from "../../../lib/utils.js";
|
|
11
11
|
function G({
|
|
12
12
|
id: i,
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
import { PlateDimensions, WellId } from './types';
|
|
2
|
+
export type FillStrategy = "row-major" | "column-major" | "row-snake" | "column-snake";
|
|
3
|
+
export interface AutoFillOptions {
|
|
4
|
+
dims: PlateDimensions;
|
|
5
|
+
/** Number of distinct items to place. Each is repeated `replicates` times. */
|
|
6
|
+
count: number;
|
|
7
|
+
/** First well in fill order. Defaults to position (0,0). */
|
|
8
|
+
startWellId?: WellId;
|
|
9
|
+
/** Traversal strategy. Defaults to `"row-major"`. */
|
|
10
|
+
strategy?: FillStrategy;
|
|
11
|
+
/** Consecutive cells assigned per item. Defaults to 1. */
|
|
12
|
+
replicates?: number;
|
|
13
|
+
}
|
|
14
|
+
/**
|
|
15
|
+
* Compute the ordered list of well ids to assign to `count` items (each
|
|
16
|
+
* repeated `replicates` times) starting from `startWellId`. Returns at most
|
|
17
|
+
* `dims.rows * dims.columns` ids — overflow is silently truncated so callers
|
|
18
|
+
* can paginate onto multiple plates themselves.
|
|
19
|
+
*/
|
|
20
|
+
export declare function autoFillPositions(options: AutoFillOptions): WellId[];
|
|
21
|
+
/**
|
|
22
|
+
* Convenience wrapper: assigns each input item to `replicates` consecutive
|
|
23
|
+
* wells, returning a `Map<WellId, T>`. The mapper builds the record stored at
|
|
24
|
+
* each well (e.g. stamp item-specific fields onto a base record).
|
|
25
|
+
*/
|
|
26
|
+
export declare function autoFillRecords<T>(items: T[], buildRecord: (item: T, index: number, wellId: WellId) => T, options: Omit<AutoFillOptions, "count">): Map<WellId, T>;
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
import { PlateMapCsvTriage, PlateMapCsvTriageOptions, PlateMapPlateOption } from './types';
|
|
2
|
+
export declare function triagePlateMapCsvByBarcode(text: string, options?: PlateMapCsvTriageOptions): PlateMapCsvTriage;
|
|
3
|
+
export declare function plateOptionsFromCsvTriage(triage: PlateMapCsvTriage): PlateMapPlateOption[];
|
|
4
|
+
export declare function triagePlateMapCsvFile(file: File, options?: PlateMapCsvTriageOptions): Promise<PlateMapCsvTriage | undefined>;
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
export { PlateMapEditor, getPlateMapScopedWellId } from './PlateMapEditor';
|
|
2
|
+
export type { PlateMapEditorProps } from './PlateMapEditor';
|
|
3
|
+
export { PlateMapForm } from './PlateMapForm';
|
|
4
|
+
export type { PlateMapFormProps } from './PlateMapForm';
|
|
5
|
+
export { PlateMapGrid } from './PlateMapGrid';
|
|
6
|
+
export type { PlateMapGridProps } from './PlateMapGrid';
|
|
7
|
+
export { PlateMapManifest } from './PlateMapManifest';
|
|
8
|
+
export type { PlateMapManifestProps } from './PlateMapManifest';
|
|
9
|
+
export { PlateMapActionsMenu } from './PlateMapActionsMenu';
|
|
10
|
+
export type { PlateMapActionsMenuProps } from './PlateMapActionsMenu';
|
|
11
|
+
export { PlateMapPlateSelector } from './PlateMapPlateSelector';
|
|
12
|
+
export type { PlateMapPlateSelectorProps, PlateMapPlateSelectorVariant } from './PlateMapPlateSelector';
|
|
13
|
+
export { PlatePaintGrid } from './PlatePaintGrid';
|
|
14
|
+
export type { PlatePaintGridProps, WellShape } from './PlatePaintGrid';
|
|
15
|
+
export { WellMetadataForm } from './WellMetadataForm';
|
|
16
|
+
export type { WellMetadataFormProps } from './WellMetadataForm';
|
|
17
|
+
export { WellManifestTable } from './WellManifestTable';
|
|
18
|
+
export type { WellManifestTableProps, WellManifestTableRowContext } from './WellManifestTable';
|
|
19
|
+
export { TemplateIOPanel } from './TemplateIOPanel';
|
|
20
|
+
export type { TemplateIOPanelProps } from './TemplateIOPanel';
|
|
21
|
+
export { plateOptionsFromCsvTriage, triagePlateMapCsvByBarcode, triagePlateMapCsvFile } from './csvPlateTriage';
|
|
22
|
+
export { ManifestFilterPopover } from './ManifestFilterPopover';
|
|
23
|
+
export type { ManifestFilterPopoverProps } from './ManifestFilterPopover';
|
|
24
|
+
export { WellLegend } from './WellLegend';
|
|
25
|
+
export type { WellLegendItem, WellLegendProps } from './WellLegend';
|
|
26
|
+
export { PlateZoomControl } from './PlateZoomControl';
|
|
27
|
+
export type { PlateZoomControlProps } from './PlateZoomControl';
|
|
28
|
+
export { autoFillPositions, autoFillRecords } from './autoFill';
|
|
29
|
+
export type { AutoFillOptions, FillStrategy } from './autoFill';
|
|
30
|
+
export type { PlateDimensions, PlateMapCsvPlate, PlateMapCsvRow, PlateMapCsvTriage, PlateMapCsvTriageOptions, WellId, WellRecord, WellField, WellFieldKind, WellSelectOption, WellColumn, TemplateOption, ImportExportHandlers, PlateMapGroupOption, PlateMapPlateOption, } from './types';
|
|
31
|
+
export { resolveDimensions, rowLabel, parseRowLabel, pos, parsePos, rectPositions, allPositions } from './wellGrid';
|
|
@@ -0,0 +1,137 @@
|
|
|
1
|
+
import { PlateFormat } from '../../charts/PlateMap';
|
|
2
|
+
import type * as React from "react";
|
|
3
|
+
export type { PlateFormat };
|
|
4
|
+
export type WellId = string;
|
|
5
|
+
/**
|
|
6
|
+
* Generic per-well record. Callers supply concrete shape via the `T` generic
|
|
7
|
+
* on `PlateMapEditor`. Permissive base accepts both interfaces and indexable
|
|
8
|
+
* record types.
|
|
9
|
+
*/
|
|
10
|
+
export type WellRecord = NonNullable<unknown>;
|
|
11
|
+
/**
|
|
12
|
+
* Field kinds rendered by `WellMetadataForm` and (when `editableInTable`) by
|
|
13
|
+
* `WellManifestTable`.
|
|
14
|
+
*/
|
|
15
|
+
export type WellFieldKind = "text" | "number" | "integer" | "boolean" | "date" | "datetime" | "time" | "select" | "multiselect" | "custom";
|
|
16
|
+
export interface WellSelectOption {
|
|
17
|
+
value: string;
|
|
18
|
+
label: string;
|
|
19
|
+
/** Optional swatch color shown next to the label. */
|
|
20
|
+
swatch?: string;
|
|
21
|
+
}
|
|
22
|
+
export interface WellField<T extends WellRecord = WellRecord> {
|
|
23
|
+
/** Key in the well record this field reads/writes. */
|
|
24
|
+
key: keyof T & string;
|
|
25
|
+
label: string;
|
|
26
|
+
/** Optional leading icon shown in form labels and matching table headers. */
|
|
27
|
+
icon?: React.ReactNode;
|
|
28
|
+
kind: WellFieldKind;
|
|
29
|
+
placeholder?: string;
|
|
30
|
+
/** Required for `kind: "select"` and `kind: "multiselect"`. */
|
|
31
|
+
options?: WellSelectOption[];
|
|
32
|
+
/** Visual style for `kind: "boolean"`. Defaults to `"checkbox"`. */
|
|
33
|
+
boolStyle?: "checkbox" | "switch";
|
|
34
|
+
/**
|
|
35
|
+
* When true, matching `WellManifestTable` cells render an inline editor of
|
|
36
|
+
* this field's `kind` (mirroring the form). Defaults to false — cells stay
|
|
37
|
+
* read-only unless the developer opts in or supplies `WellColumn.render`.
|
|
38
|
+
*/
|
|
39
|
+
editableInTable?: boolean;
|
|
40
|
+
/**
|
|
41
|
+
* Custom renderer for the form input. Receives current value and a setter
|
|
42
|
+
* that patches the field on the staged form record.
|
|
43
|
+
*/
|
|
44
|
+
render?: (ctx: {
|
|
45
|
+
value: unknown;
|
|
46
|
+
onChange: (next: unknown) => void;
|
|
47
|
+
selectionSize: number;
|
|
48
|
+
}) => React.ReactNode;
|
|
49
|
+
}
|
|
50
|
+
export interface WellColumn<T extends WellRecord = WellRecord> {
|
|
51
|
+
/** Stable id; falls back to `field` if omitted. */
|
|
52
|
+
id?: string;
|
|
53
|
+
header: string;
|
|
54
|
+
/** Optional leading icon in the table header. */
|
|
55
|
+
icon?: React.ReactNode;
|
|
56
|
+
/** Read direct property when `field` is set. */
|
|
57
|
+
field?: keyof T & string;
|
|
58
|
+
/** Min width in px (applied via inline style). */
|
|
59
|
+
minWidth?: number;
|
|
60
|
+
/**
|
|
61
|
+
* Cell renderer. If omitted, the cell renders a display value. `select`
|
|
62
|
+
* fields render as badge-style custom cells using the matching option label.
|
|
63
|
+
*/
|
|
64
|
+
render?: (ctx: {
|
|
65
|
+
row: T;
|
|
66
|
+
wellId: WellId;
|
|
67
|
+
update: (patch: Partial<T>) => void;
|
|
68
|
+
}) => React.ReactNode;
|
|
69
|
+
}
|
|
70
|
+
export interface TemplateOption {
|
|
71
|
+
id: string;
|
|
72
|
+
label: string;
|
|
73
|
+
/** Optional group header in the dropdown (e.g. "Built-in", "User"). */
|
|
74
|
+
group?: string;
|
|
75
|
+
/** Optional supporting text for richer chooser menus. */
|
|
76
|
+
description?: string;
|
|
77
|
+
disabled?: boolean;
|
|
78
|
+
}
|
|
79
|
+
export interface PlateMapPlateOption {
|
|
80
|
+
/** Stable plate id. For imported CSVs this should be the user-provided barcode. */
|
|
81
|
+
id: string;
|
|
82
|
+
/** User-provided plate barcode. Barcodes are never generated by the editor. */
|
|
83
|
+
barcode: string;
|
|
84
|
+
/** Optional display label when it differs from the barcode. */
|
|
85
|
+
label?: string;
|
|
86
|
+
/** Optional count shown beside the plate pill, usually imported row/well count. */
|
|
87
|
+
count?: number;
|
|
88
|
+
disabled?: boolean;
|
|
89
|
+
}
|
|
90
|
+
export interface PlateMapCsvRow {
|
|
91
|
+
/** 1-based CSV line number, including the header line. */
|
|
92
|
+
line: number;
|
|
93
|
+
values: Record<string, string>;
|
|
94
|
+
}
|
|
95
|
+
export interface PlateMapCsvPlate {
|
|
96
|
+
/** User-provided plate barcode used as the selectable plate id. */
|
|
97
|
+
id: string;
|
|
98
|
+
barcode: string;
|
|
99
|
+
rows: PlateMapCsvRow[];
|
|
100
|
+
rowCount: number;
|
|
101
|
+
}
|
|
102
|
+
export interface PlateMapCsvTriage {
|
|
103
|
+
headers: string[];
|
|
104
|
+
/** Resolved header name for the plate barcode column, when present. */
|
|
105
|
+
plateBarcodeColumn?: string;
|
|
106
|
+
rows: PlateMapCsvRow[];
|
|
107
|
+
plates: PlateMapCsvPlate[];
|
|
108
|
+
/** Rows missing a barcode. The editor does not create fallback barcodes. */
|
|
109
|
+
missingBarcodeRows: PlateMapCsvRow[];
|
|
110
|
+
}
|
|
111
|
+
export interface PlateMapCsvTriageOptions {
|
|
112
|
+
/** Exact column name to use before trying aliases. */
|
|
113
|
+
plateBarcodeColumn?: string;
|
|
114
|
+
/** Additional accepted names for the plate barcode column. */
|
|
115
|
+
plateBarcodeColumnAliases?: readonly string[];
|
|
116
|
+
}
|
|
117
|
+
export interface ImportExportHandlers {
|
|
118
|
+
onImportCsv?: (file: File, triage?: PlateMapCsvTriage) => void | Promise<void>;
|
|
119
|
+
onExportCsv?: () => void;
|
|
120
|
+
onImportTemplate?: (file: File) => void | Promise<void>;
|
|
121
|
+
onExportTemplate?: () => void;
|
|
122
|
+
}
|
|
123
|
+
export interface PlateDimensions {
|
|
124
|
+
rows: number;
|
|
125
|
+
columns: number;
|
|
126
|
+
}
|
|
127
|
+
export interface PlateMapGroupOption {
|
|
128
|
+
id: string;
|
|
129
|
+
label: string;
|
|
130
|
+
/** Well ids in the group; callers can use this to select the group. */
|
|
131
|
+
wellIds?: WellId[];
|
|
132
|
+
/** Optional explicit count; defaults to `wellIds.length` when present. */
|
|
133
|
+
count?: number;
|
|
134
|
+
color?: string;
|
|
135
|
+
borderColor?: string;
|
|
136
|
+
disabled?: boolean;
|
|
137
|
+
}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import { PlateDimensions, PlateFormat, WellId } from './types';
|
|
2
|
+
export declare function resolveDimensions(format: PlateFormat, rows?: number, columns?: number): PlateDimensions;
|
|
3
|
+
/** Letter for a row index. Supports A-Z then AA-ZZ for 1536-format plates. */
|
|
4
|
+
export declare function rowLabel(row: number): string;
|
|
5
|
+
export declare function parseRowLabel(label: string): number;
|
|
6
|
+
export declare function pos(row: number, col: number, columns: number): WellId;
|
|
7
|
+
export declare function parsePos(id: WellId, dims: PlateDimensions): {
|
|
8
|
+
row: number;
|
|
9
|
+
col: number;
|
|
10
|
+
} | null;
|
|
11
|
+
export declare function rectPositions(r0: number, c0: number, r1: number, c1: number, columns: number): WellId[];
|
|
12
|
+
export declare function allPositions(dims: PlateDimensions): WellId[];
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
import { ProcessFlowConnection, ProcessFlowOrientation, ProcessFlowSize, ProcessFlowStep, ProcessFlowStepStatus } from './ProcessFlow.utils';
|
|
2
|
+
import { ComponentPropsWithoutRef, MouseEvent } from 'react';
|
|
3
|
+
export { PROCESS_FLOW_STEP_STATUSES } from './ProcessFlow.utils';
|
|
4
|
+
export type { ProcessFlowConnection, ProcessFlowOrientation, ProcessFlowSize, ProcessFlowStep, ProcessFlowStepConfig, ProcessFlowStepPosition, ProcessFlowStepStatus, ProcessStep, ProcessStepStatus, } from './ProcessFlow.utils';
|
|
5
|
+
export interface ProcessFlowStepSelectDetails {
|
|
6
|
+
/** Zero-based index of the selected step in the steps prop. */
|
|
7
|
+
stepIndex: number;
|
|
8
|
+
/** Current visual status of the selected step. */
|
|
9
|
+
status: ProcessFlowStepStatus;
|
|
10
|
+
nativeEvent: MouseEvent<HTMLButtonElement>;
|
|
11
|
+
}
|
|
12
|
+
/**
|
|
13
|
+
* Presentational process flow.
|
|
14
|
+
*
|
|
15
|
+
* ProcessFlow is fully controlled by props. It visualizes parent-owned workflow state and emits user selection through
|
|
16
|
+
* onStepSelect. It intentionally does not own status transitions or fire completion/error side effects.
|
|
17
|
+
*/
|
|
18
|
+
export interface ProcessFlowProps extends Omit<ComponentPropsWithoutRef<"nav">, "onSelect"> {
|
|
19
|
+
/** Ordered list of steps to render. Each step controls its own visual status. */
|
|
20
|
+
steps: ProcessFlowStep[];
|
|
21
|
+
/** Optional explicit connections for branching/configurable flows. */
|
|
22
|
+
connections?: ProcessFlowConnection[];
|
|
23
|
+
/** Selected/viewed step id. This is separate from the active workflow status. */
|
|
24
|
+
selectedStepId?: string;
|
|
25
|
+
/** Called when a selectable step is clicked. Disabled and non-selectable steps do not call this. */
|
|
26
|
+
onStepSelect?: (step: ProcessFlowStep, details: ProcessFlowStepSelectDetails) => void;
|
|
27
|
+
orientation?: ProcessFlowOrientation;
|
|
28
|
+
size?: ProcessFlowSize;
|
|
29
|
+
/** Defaults to true. Set to false to hide step descriptions. */
|
|
30
|
+
showDescriptions?: boolean;
|
|
31
|
+
}
|
|
32
|
+
export declare function ProcessFlow({ steps, connections, selectedStepId, onStepSelect, orientation, size, showDescriptions, className, style, "aria-label": ariaLabel, ...props }: ProcessFlowProps): import("react/jsx-runtime").JSX.Element | null;
|
|
@@ -0,0 +1,86 @@
|
|
|
1
|
+
import { ReactNode } from 'react';
|
|
2
|
+
/**
|
|
3
|
+
* Runtime list of the visual states supported by ProcessFlow steps.
|
|
4
|
+
* Use this for controls, schemas, and forms that need to present the same status values the component understands.
|
|
5
|
+
*/
|
|
6
|
+
export declare const PROCESS_FLOW_STEP_STATUSES: readonly ["pending", "active", "completed", "error", "disabled"];
|
|
7
|
+
/**
|
|
8
|
+
* Visual state for a ProcessFlow step.
|
|
9
|
+
*
|
|
10
|
+
* The parent application owns this state. ProcessFlow renders the provided status and does not run workflow side effects.
|
|
11
|
+
*/
|
|
12
|
+
export type ProcessFlowStepStatus = (typeof PROCESS_FLOW_STEP_STATUSES)[number];
|
|
13
|
+
export type ProcessStepStatus = ProcessFlowStepStatus;
|
|
14
|
+
/** Direction for linear process flows. Branching flows are configured with step positions and connections. */
|
|
15
|
+
export type ProcessFlowOrientation = "horizontal" | "vertical";
|
|
16
|
+
/** Visual density of the process flow. */
|
|
17
|
+
export type ProcessFlowSize = "default" | "compact";
|
|
18
|
+
export type ProcessFlowDescriptionVisibility = "auto" | "hidden" | "visible";
|
|
19
|
+
export interface ProcessFlowStepPosition {
|
|
20
|
+
/** Zero-based row used when rendering a simple branching/configurable flow. */
|
|
21
|
+
row?: number;
|
|
22
|
+
/** Zero-based column used when rendering a simple branching/configurable flow. */
|
|
23
|
+
column?: number;
|
|
24
|
+
}
|
|
25
|
+
/**
|
|
26
|
+
* Configurable step rendered by ProcessFlow.
|
|
27
|
+
*
|
|
28
|
+
* Keep workflow-specific behavior in the parent. A step config should describe what to render, not what to do when a
|
|
29
|
+
* workflow completes or errors.
|
|
30
|
+
*/
|
|
31
|
+
export interface ProcessFlowStep {
|
|
32
|
+
/** Stable identifier used for selection and connections. */
|
|
33
|
+
id: string;
|
|
34
|
+
/** Visible step label. */
|
|
35
|
+
label: ReactNode;
|
|
36
|
+
/** Optional secondary text shown under or beside the label. */
|
|
37
|
+
description?: ReactNode;
|
|
38
|
+
/** Parent-controlled visual state. Defaults to "pending". */
|
|
39
|
+
status?: ProcessFlowStepStatus;
|
|
40
|
+
/** Accessible label for selectable steps. */
|
|
41
|
+
ariaLabel?: string;
|
|
42
|
+
/** Forces the step into the disabled visual/non-interactive state. */
|
|
43
|
+
disabled?: boolean;
|
|
44
|
+
/** Set to false when the step should render as non-navigable even when onStepSelect is provided. */
|
|
45
|
+
selectable?: boolean;
|
|
46
|
+
/** Optional grid position for simple branching/configurable layouts. */
|
|
47
|
+
position?: ProcessFlowStepPosition;
|
|
48
|
+
}
|
|
49
|
+
export type ProcessFlowStepConfig = ProcessFlowStep;
|
|
50
|
+
export type ProcessStep = ProcessFlowStep;
|
|
51
|
+
/** Connection between two steps in a branching/configurable flow. Linear flows derive connections automatically. */
|
|
52
|
+
export interface ProcessFlowConnection {
|
|
53
|
+
id?: string;
|
|
54
|
+
from: string;
|
|
55
|
+
to: string;
|
|
56
|
+
status?: ProcessFlowStepStatus;
|
|
57
|
+
ariaLabel?: string;
|
|
58
|
+
}
|
|
59
|
+
export interface PositionedStep {
|
|
60
|
+
step: ProcessFlowStep;
|
|
61
|
+
stepIndex: number;
|
|
62
|
+
status: ProcessFlowStepStatus;
|
|
63
|
+
row: number;
|
|
64
|
+
column: number;
|
|
65
|
+
}
|
|
66
|
+
export interface ResolvedConnection extends ProcessFlowConnection {
|
|
67
|
+
id: string;
|
|
68
|
+
fromStep: PositionedStep;
|
|
69
|
+
toStep: PositionedStep;
|
|
70
|
+
status: ProcessFlowStepStatus;
|
|
71
|
+
}
|
|
72
|
+
export interface Point {
|
|
73
|
+
x: number;
|
|
74
|
+
y: number;
|
|
75
|
+
}
|
|
76
|
+
export declare const STATUS_LABELS: Record<ProcessFlowStepStatus, string>;
|
|
77
|
+
export declare function getDescriptionVisibility(showDescriptions?: boolean): ProcessFlowDescriptionVisibility;
|
|
78
|
+
export declare function normalizeGridIndex(value: number | undefined, fallback: number): number;
|
|
79
|
+
export declare function getStepStatus(step: ProcessFlowStep): ProcessFlowStepStatus;
|
|
80
|
+
export declare function getStepAccessibleLabel(step: ProcessFlowStep, status: ProcessFlowStepStatus, stepNumber: number): string;
|
|
81
|
+
export declare function positionStep(step: ProcessFlowStep, index: number, orientation: ProcessFlowOrientation): PositionedStep;
|
|
82
|
+
export declare function deriveConnectionStatus(fromStatus: ProcessFlowStepStatus, toStatus: ProcessFlowStepStatus): ProcessFlowStepStatus;
|
|
83
|
+
export declare function resolveConnections(steps: PositionedStep[], connections?: ProcessFlowConnection[]): ResolvedConnection[];
|
|
84
|
+
export declare function getPoint(step: PositionedStep, rowCount: number, columnCount: number): Point;
|
|
85
|
+
export declare function getConnectionPath(connection: ResolvedConnection, rowCount: number, columnCount: number): string;
|
|
86
|
+
export declare function hasCustomStepLayout(steps: ProcessFlowStep[]): boolean;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export * from './ProcessFlow';
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("react/jsx-runtime"),o=require("
|
|
1
|
+
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("react/jsx-runtime"),o=require("../../../ui/avatar.cjs"),i=require("../../../ui/item.cjs"),c=require("../../../lib/utils.cjs"),h="grid-cols-[minmax(0,1fr)_auto_auto]",p="grid-cols-[minmax(0,1fr)_auto]",g="grid-cols-[minmax(0,1fr)]";function j(t,n){return t&&n?h:t||n?p:g}function C({leading:t,primary:n,secondary:s,trailing:r,actions:a,className:m,variant:u="default",size:d="default",...x}){const N=!!s,f=j(!!r,!!a),l=N?"row-span-2":"row-span-1";return e.jsxs(i.Item,{"data-slot":"rich-list-item",variant:u,size:d,className:c.cn("flex-nowrap items-center gap-3 rounded-none border-transparent px-4 py-3 hover:bg-accent/50",m),...x,children:[t&&e.jsx(i.ItemMedia,{className:"self-center",children:t}),e.jsx(i.ItemContent,{className:"min-w-0",children:e.jsxs("div",{className:c.cn("grid min-w-0 items-center gap-x-3 gap-y-1",f),children:[e.jsx(i.ItemTitle,{className:"min-w-0 max-w-full truncate",children:n}),r&&e.jsx("div",{className:c.cn("flex flex-col items-end gap-1 whitespace-nowrap text-right",l),children:r}),a&&e.jsx(i.ItemActions,{className:c.cn("shrink-0 self-center",l),children:a}),s&&e.jsx("div",{"data-slot":"rich-list-item-secondary",className:"min-w-0 truncate text-xs leading-tight text-muted-foreground",children:s})]})})]})}function _({initials:t,className:n,fallbackClassName:s,size:r="default",...a}){return e.jsx(o.Avatar,{className:n,size:r,...a,children:e.jsx(o.AvatarFallback,{className:c.cn("bg-primary/10 text-xs font-semibold text-primary",s),children:t})})}exports.RichListItem=C;exports.RichListItemAvatar=_;
|
|
2
2
|
//# sourceMappingURL=RichListItem.cjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"RichListItem.cjs","sources":["../../../../src/components/composed/RichListItem/RichListItem.tsx"],"sourcesContent":["import * as React from \"react\";\n\nimport { Avatar, AvatarFallback } from \"@/components/ui/avatar\";\nimport { Item, ItemActions, ItemContent, ItemMedia, ItemTitle } from \"@/components/ui/item\";\nimport { cn } from \"@/lib/utils\";\n\nexport interface RichListItemProps extends Omit<React.ComponentProps<typeof Item>, \"asChild\" | \"children\"> {\n /** Slot before the text content — typically an avatar or icon. */\n leading?: React.ReactNode;\n /** Primary line of text. Truncates to a single line. */\n primary: React.ReactNode;\n /** Secondary line of text shown beneath `primary`. Truncates to a single line. */\n secondary?: React.ReactNode;\n /** Right-aligned supplemental content (badges, timestamps) shown above `actions`. */\n trailing?: React.ReactNode;\n /** Right-aligned interactive controls (buttons, menus). */\n actions?: React.ReactNode;\n}\n\nconst CONTENT_COLUMNS_BOTH = \"grid-cols-[minmax(0,1fr)_auto_auto]\";\nconst CONTENT_COLUMNS_ONE = \"grid-cols-[minmax(0,1fr)_auto]\";\nconst CONTENT_COLUMNS_NONE = \"grid-cols-[minmax(0,1fr)]\";\n\nfunction getContentColumns(hasTrailing: boolean, hasActions: boolean) {\n if (hasTrailing && hasActions) return CONTENT_COLUMNS_BOTH;\n if (hasTrailing || hasActions) return CONTENT_COLUMNS_ONE;\n return CONTENT_COLUMNS_NONE;\n}\n\nfunction RichListItem({\n leading,\n primary,\n secondary,\n trailing,\n actions,\n className,\n variant = \"default\",\n size = \"default\",\n ...props\n}: RichListItemProps) {\n const hasSecondary = Boolean(secondary);\n const contentColumns = getContentColumns(Boolean(trailing), Boolean(actions));\n const supplementalSpanClass = hasSecondary ? \"row-span-2\" : \"row-span-1\";\n\n return (\n <Item\n data-slot=\"rich-list-item\"\n variant={variant}\n size={size}\n className={cn(\n \"flex-nowrap items-center gap-3 rounded-none border-transparent px-4 py-3 hover:bg-accent/50\",\n className,\n )}\n {...props}\n >\n {leading && <ItemMedia className=\"self-center\">{leading}</ItemMedia>}\n <ItemContent className=\"min-w-0\">\n <div className={cn(\"grid min-w-0 items-center gap-x-3 gap-y-1\", contentColumns)}>\n <ItemTitle className=\"min-w-0 max-w-full truncate\">{primary}</ItemTitle>\n {trailing && (\n <div className={cn(\"flex flex-col items-end gap-1 whitespace-nowrap text-right\", supplementalSpanClass)}>\n {trailing}\n </div>\n )}\n {actions && (\n <ItemActions className={cn(\"shrink-0 self-center\", supplementalSpanClass)}>{actions}</ItemActions>\n )}\n {secondary && (\n <div\n data-slot=\"rich-list-item-secondary\"\n className=\"min-w-0 truncate text-xs leading-tight text-muted-foreground\"\n >\n {secondary}\n </div>\n )}\n </div>\n </ItemContent>\n </Item>\n );\n}\n\nexport interface RichListItemAvatarProps extends Omit<React.ComponentProps<typeof Avatar>, \"children\"> {\n initials: string;\n fallbackClassName?: string;\n}\n\nfunction RichListItemAvatar({\n initials,\n className,\n fallbackClassName,\n size = \"default\",\n ...props\n}: RichListItemAvatarProps) {\n return (\n <Avatar className={className} size={size} {...props}>\n <AvatarFallback className={cn(\"bg-primary/10 text-xs font-semibold text-primary\", fallbackClassName)}>\n {initials}\n </AvatarFallback>\n </Avatar>\n );\n}\n\nexport { RichListItem, RichListItemAvatar };\n"],"names":["CONTENT_COLUMNS_BOTH","CONTENT_COLUMNS_ONE","CONTENT_COLUMNS_NONE","getContentColumns","hasTrailing","hasActions","RichListItem","leading","primary","secondary","trailing","actions","className","variant","size","props","hasSecondary","contentColumns","supplementalSpanClass","jsxs","Item","cn","jsx","ItemMedia","ItemContent","ItemTitle","ItemActions","RichListItemAvatar","initials","fallbackClassName","Avatar","AvatarFallback"],"mappings":"
|
|
1
|
+
{"version":3,"file":"RichListItem.cjs","sources":["../../../../src/components/composed/RichListItem/RichListItem.tsx"],"sourcesContent":["import * as React from \"react\";\n\nimport { Avatar, AvatarFallback } from \"@/components/ui/avatar\";\nimport { Item, ItemActions, ItemContent, ItemMedia, ItemTitle } from \"@/components/ui/item\";\nimport { cn } from \"@/lib/utils\";\n\nexport interface RichListItemProps extends Omit<React.ComponentProps<typeof Item>, \"asChild\" | \"children\"> {\n /** Slot before the text content — typically an avatar or icon. */\n leading?: React.ReactNode;\n /** Primary line of text. Truncates to a single line. */\n primary: React.ReactNode;\n /** Secondary line of text shown beneath `primary`. Truncates to a single line. */\n secondary?: React.ReactNode;\n /** Right-aligned supplemental content (badges, timestamps) shown above `actions`. */\n trailing?: React.ReactNode;\n /** Right-aligned interactive controls (buttons, menus). */\n actions?: React.ReactNode;\n}\n\nconst CONTENT_COLUMNS_BOTH = \"grid-cols-[minmax(0,1fr)_auto_auto]\";\nconst CONTENT_COLUMNS_ONE = \"grid-cols-[minmax(0,1fr)_auto]\";\nconst CONTENT_COLUMNS_NONE = \"grid-cols-[minmax(0,1fr)]\";\n\nfunction getContentColumns(hasTrailing: boolean, hasActions: boolean) {\n if (hasTrailing && hasActions) return CONTENT_COLUMNS_BOTH;\n if (hasTrailing || hasActions) return CONTENT_COLUMNS_ONE;\n return CONTENT_COLUMNS_NONE;\n}\n\nfunction RichListItem({\n leading,\n primary,\n secondary,\n trailing,\n actions,\n className,\n variant = \"default\",\n size = \"default\",\n ...props\n}: RichListItemProps) {\n const hasSecondary = Boolean(secondary);\n const contentColumns = getContentColumns(Boolean(trailing), Boolean(actions));\n const supplementalSpanClass = hasSecondary ? \"row-span-2\" : \"row-span-1\";\n\n return (\n <Item\n data-slot=\"rich-list-item\"\n variant={variant}\n size={size}\n className={cn(\n \"flex-nowrap items-center gap-3 rounded-none border-transparent px-4 py-3 hover:bg-accent/50\",\n className,\n )}\n {...props}\n >\n {leading && <ItemMedia className=\"self-center\">{leading}</ItemMedia>}\n <ItemContent className=\"min-w-0\">\n <div className={cn(\"grid min-w-0 items-center gap-x-3 gap-y-1\", contentColumns)}>\n <ItemTitle className=\"min-w-0 max-w-full truncate\">{primary}</ItemTitle>\n {trailing && (\n <div className={cn(\"flex flex-col items-end gap-1 whitespace-nowrap text-right\", supplementalSpanClass)}>\n {trailing}\n </div>\n )}\n {actions && (\n <ItemActions className={cn(\"shrink-0 self-center\", supplementalSpanClass)}>{actions}</ItemActions>\n )}\n {secondary && (\n <div\n data-slot=\"rich-list-item-secondary\"\n className=\"min-w-0 truncate text-xs leading-tight text-muted-foreground\"\n >\n {secondary}\n </div>\n )}\n </div>\n </ItemContent>\n </Item>\n );\n}\n\nexport interface RichListItemAvatarProps extends Omit<React.ComponentProps<typeof Avatar>, \"children\"> {\n initials: string;\n fallbackClassName?: string;\n}\n\nfunction RichListItemAvatar({\n initials,\n className,\n fallbackClassName,\n size = \"default\",\n ...props\n}: RichListItemAvatarProps) {\n return (\n <Avatar className={className} size={size} {...props}>\n <AvatarFallback className={cn(\"bg-primary/10 text-xs font-semibold text-primary\", fallbackClassName)}>\n {initials}\n </AvatarFallback>\n </Avatar>\n );\n}\n\nexport { RichListItem, RichListItemAvatar };\n"],"names":["CONTENT_COLUMNS_BOTH","CONTENT_COLUMNS_ONE","CONTENT_COLUMNS_NONE","getContentColumns","hasTrailing","hasActions","RichListItem","leading","primary","secondary","trailing","actions","className","variant","size","props","hasSecondary","contentColumns","supplementalSpanClass","jsxs","Item","cn","jsx","ItemMedia","ItemContent","ItemTitle","ItemActions","RichListItemAvatar","initials","fallbackClassName","Avatar","AvatarFallback"],"mappings":"+NAmBMA,EAAuB,sCACvBC,EAAsB,iCACtBC,EAAuB,4BAE7B,SAASC,EAAkBC,EAAsBC,EAAqB,CACpE,OAAID,GAAeC,EAAmBL,EAClCI,GAAeC,EAAmBJ,EAC/BC,CACT,CAEA,SAASI,EAAa,CACpB,QAAAC,EACA,QAAAC,EACA,UAAAC,EACA,SAAAC,EACA,QAAAC,EACA,UAAAC,EACA,QAAAC,EAAU,UACV,KAAAC,EAAO,UACP,GAAGC,CACL,EAAsB,CACpB,MAAMC,EAAe,EAAQP,EACvBQ,EAAiBd,EAAkB,EAAQO,EAAW,EAAQC,CAAQ,EACtEO,EAAwBF,EAAe,aAAe,aAE5D,OACEG,EAAAA,KAACC,EAAAA,KAAA,CACC,YAAU,iBACV,QAAAP,EACA,KAAAC,EACA,UAAWO,EAAAA,GACT,8FACAT,CAAA,EAED,GAAGG,EAEH,SAAA,CAAAR,GAAWe,EAAAA,IAACC,YAAA,CAAU,UAAU,cAAe,SAAAhB,EAAQ,EACxDe,EAAAA,IAACE,EAAAA,YAAA,CAAY,UAAU,UACrB,SAAAL,EAAAA,KAAC,OAAI,UAAWE,EAAAA,GAAG,4CAA6CJ,CAAc,EAC5E,SAAA,CAAAK,EAAAA,IAACG,EAAAA,UAAA,CAAU,UAAU,8BAA+B,SAAAjB,EAAQ,EAC3DE,SACE,MAAA,CAAI,UAAWW,EAAAA,GAAG,6DAA8DH,CAAqB,EACnG,SAAAR,EACH,EAEDC,SACEe,cAAA,CAAY,UAAWL,EAAAA,GAAG,uBAAwBH,CAAqB,EAAI,SAAAP,EAAQ,EAErFF,GACCa,EAAAA,IAAC,MAAA,CACC,YAAU,2BACV,UAAU,+DAET,SAAAb,CAAA,CAAA,CACH,CAAA,CAEJ,CAAA,CACF,CAAA,CAAA,CAAA,CAGN,CAOA,SAASkB,EAAmB,CAC1B,SAAAC,EACA,UAAAhB,EACA,kBAAAiB,EACA,KAAAf,EAAO,UACP,GAAGC,CACL,EAA4B,CAC1B,OACEO,EAAAA,IAACQ,EAAAA,OAAA,CAAO,UAAAlB,EAAsB,KAAAE,EAAa,GAAGC,EAC5C,SAAAO,EAAAA,IAACS,EAAAA,eAAA,CAAe,UAAWV,EAAAA,GAAG,mDAAoDQ,CAAiB,EAChG,WACH,EACF,CAEJ"}
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
import { Avatar } from '../../ui/avatar';
|
|
2
|
+
import { Item } from '../../ui/item';
|
|
3
|
+
import * as React from "react";
|
|
4
|
+
export interface RichListItemProps extends Omit<React.ComponentProps<typeof Item>, "asChild" | "children"> {
|
|
5
|
+
/** Slot before the text content — typically an avatar or icon. */
|
|
6
|
+
leading?: React.ReactNode;
|
|
7
|
+
/** Primary line of text. Truncates to a single line. */
|
|
8
|
+
primary: React.ReactNode;
|
|
9
|
+
/** Secondary line of text shown beneath `primary`. Truncates to a single line. */
|
|
10
|
+
secondary?: React.ReactNode;
|
|
11
|
+
/** Right-aligned supplemental content (badges, timestamps) shown above `actions`. */
|
|
12
|
+
trailing?: React.ReactNode;
|
|
13
|
+
/** Right-aligned interactive controls (buttons, menus). */
|
|
14
|
+
actions?: React.ReactNode;
|
|
15
|
+
}
|
|
16
|
+
declare function RichListItem({ leading, primary, secondary, trailing, actions, className, variant, size, ...props }: RichListItemProps): import("react/jsx-runtime").JSX.Element;
|
|
17
|
+
export interface RichListItemAvatarProps extends Omit<React.ComponentProps<typeof Avatar>, "children"> {
|
|
18
|
+
initials: string;
|
|
19
|
+
fallbackClassName?: string;
|
|
20
|
+
}
|
|
21
|
+
declare function RichListItemAvatar({ initials, className, fallbackClassName, size, ...props }: RichListItemAvatarProps): import("react/jsx-runtime").JSX.Element;
|
|
22
|
+
export { RichListItem, RichListItemAvatar };
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { jsxs as m, jsx as e } from "react/jsx-runtime";
|
|
2
|
-
import { Avatar as N, AvatarFallback as x } from "
|
|
3
|
-
import { Item as h, ItemMedia as g, ItemContent as C, ItemTitle as w, ItemActions as O } from "
|
|
2
|
+
import { Avatar as N, AvatarFallback as x } from "../../../ui/avatar.js";
|
|
3
|
+
import { Item as h, ItemMedia as g, ItemContent as C, ItemTitle as w, ItemActions as O } from "../../../ui/item.js";
|
|
4
4
|
import { cn as o } from "../../../lib/utils.js";
|
|
5
5
|
const _ = "grid-cols-[minmax(0,1fr)_auto_auto]", v = "grid-cols-[minmax(0,1fr)_auto]", I = "grid-cols-[minmax(0,1fr)]";
|
|
6
6
|
function T(t, n) {
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("react/jsx-runtime"),s=require("lucide-react"),t=require("
|
|
1
|
+
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("react/jsx-runtime"),s=require("lucide-react"),t=require("../../../ui/card.cjs"),d=require("../../../lib/utils.cjs"),f={up:s.TrendingUpIcon,down:s.TrendingDownIcon,neutral:s.MinusIcon},j={up:"text-positive",down:"text-destructive",neutral:"text-muted-foreground"};function h({label:l,value:o,delta:n,deltaLabel:r,trend:a="neutral",description:c,className:i,...u}){const x=f[a],m=j[a];return e.jsx("div",{"data-slot":"stat-card",className:d.cn("w-full",i),...u,children:e.jsxs(t.Card,{children:[e.jsx(t.CardHeader,{children:e.jsx(t.CardTitle,{className:"text-sm font-medium text-muted-foreground",children:l})}),e.jsxs(t.CardContent,{className:"flex flex-col gap-2",children:[e.jsx("p",{className:"text-3xl font-semibold tabular-nums",children:o}),c&&e.jsx("p",{className:"text-sm text-muted-foreground",children:c}),n!==void 0&&e.jsxs("div",{className:d.cn("flex items-center gap-1 text-sm",m),children:[e.jsx(x,{className:"h-4 w-4 shrink-0"}),e.jsx("span",{className:"font-medium",children:n}),r&&e.jsx("span",{className:"text-muted-foreground",children:r})]})]})]})})}exports.StatCard=h;
|
|
2
2
|
//# sourceMappingURL=StatCard.cjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"StatCard.cjs","sources":["../../../../src/components/composed/StatCard/StatCard.tsx"],"sourcesContent":["import { MinusIcon, TrendingDownIcon, TrendingUpIcon } from \"lucide-react\"\nimport * as React from \"react\"\n\nimport { Card, CardContent, CardHeader, CardTitle } from \"@/components/ui/card\"\nimport { cn } from \"@/lib/utils\"\n\nexport type StatCardTrend = \"up\" | \"down\" | \"neutral\"\n\nexport interface StatCardProps extends React.ComponentProps<\"div\"> {\n label: string\n value: string | number\n delta?: string | number\n deltaLabel?: string\n trend?: StatCardTrend\n description?: string\n}\n\nconst TREND_ICON: Record<StatCardTrend, React.ElementType> = {\n up: TrendingUpIcon,\n down: TrendingDownIcon,\n neutral: MinusIcon,\n}\n\nconst TREND_CLASS: Record<StatCardTrend, string> = {\n up: \"text-positive\",\n down: \"text-destructive\",\n neutral: \"text-muted-foreground\",\n}\n\nexport function StatCard({\n label,\n value,\n delta,\n deltaLabel,\n trend = \"neutral\",\n description,\n className,\n ...props\n}: StatCardProps) {\n const TrendIcon = TREND_ICON[trend]\n const trendClass = TREND_CLASS[trend]\n\n return (\n <div data-slot=\"stat-card\" className={cn(\"w-full\", className)} {...props}>\n <Card>\n <CardHeader>\n <CardTitle className=\"text-sm font-medium text-muted-foreground\">\n {label}\n </CardTitle>\n </CardHeader>\n <CardContent className=\"flex flex-col gap-2\">\n <p className=\"text-3xl font-semibold tabular-nums\">{value}</p>\n {description && (\n <p className=\"text-sm text-muted-foreground\">{description}</p>\n )}\n {delta !== undefined && (\n <div className={cn(\"flex items-center gap-1 text-sm\", trendClass)}>\n <TrendIcon className=\"h-4 w-4 shrink-0\" />\n <span className=\"font-medium\">{delta}</span>\n {deltaLabel && (\n <span className=\"text-muted-foreground\">{deltaLabel}</span>\n )}\n </div>\n )}\n </CardContent>\n </Card>\n </div>\n )\n}\n"],"names":["TREND_ICON","TrendingUpIcon","TrendingDownIcon","MinusIcon","TREND_CLASS","StatCard","label","value","delta","deltaLabel","trend","description","className","props","TrendIcon","trendClass","jsx","cn","jsxs","Card","CardHeader","CardTitle","CardContent"],"mappings":"
|
|
1
|
+
{"version":3,"file":"StatCard.cjs","sources":["../../../../src/components/composed/StatCard/StatCard.tsx"],"sourcesContent":["import { MinusIcon, TrendingDownIcon, TrendingUpIcon } from \"lucide-react\"\nimport * as React from \"react\"\n\nimport { Card, CardContent, CardHeader, CardTitle } from \"@/components/ui/card\"\nimport { cn } from \"@/lib/utils\"\n\nexport type StatCardTrend = \"up\" | \"down\" | \"neutral\"\n\nexport interface StatCardProps extends React.ComponentProps<\"div\"> {\n label: string\n value: string | number\n delta?: string | number\n deltaLabel?: string\n trend?: StatCardTrend\n description?: string\n}\n\nconst TREND_ICON: Record<StatCardTrend, React.ElementType> = {\n up: TrendingUpIcon,\n down: TrendingDownIcon,\n neutral: MinusIcon,\n}\n\nconst TREND_CLASS: Record<StatCardTrend, string> = {\n up: \"text-positive\",\n down: \"text-destructive\",\n neutral: \"text-muted-foreground\",\n}\n\nexport function StatCard({\n label,\n value,\n delta,\n deltaLabel,\n trend = \"neutral\",\n description,\n className,\n ...props\n}: StatCardProps) {\n const TrendIcon = TREND_ICON[trend]\n const trendClass = TREND_CLASS[trend]\n\n return (\n <div data-slot=\"stat-card\" className={cn(\"w-full\", className)} {...props}>\n <Card>\n <CardHeader>\n <CardTitle className=\"text-sm font-medium text-muted-foreground\">\n {label}\n </CardTitle>\n </CardHeader>\n <CardContent className=\"flex flex-col gap-2\">\n <p className=\"text-3xl font-semibold tabular-nums\">{value}</p>\n {description && (\n <p className=\"text-sm text-muted-foreground\">{description}</p>\n )}\n {delta !== undefined && (\n <div className={cn(\"flex items-center gap-1 text-sm\", trendClass)}>\n <TrendIcon className=\"h-4 w-4 shrink-0\" />\n <span className=\"font-medium\">{delta}</span>\n {deltaLabel && (\n <span className=\"text-muted-foreground\">{deltaLabel}</span>\n )}\n </div>\n )}\n </CardContent>\n </Card>\n </div>\n )\n}\n"],"names":["TREND_ICON","TrendingUpIcon","TrendingDownIcon","MinusIcon","TREND_CLASS","StatCard","label","value","delta","deltaLabel","trend","description","className","props","TrendIcon","trendClass","jsx","cn","jsxs","Card","CardHeader","CardTitle","CardContent"],"mappings":"qNAiBMA,EAAuD,CAC3D,GAAIC,EAAAA,eACJ,KAAMC,EAAAA,iBACN,QAASC,EAAAA,SACX,EAEMC,EAA6C,CACjD,GAAI,gBACJ,KAAM,mBACN,QAAS,uBACX,EAEO,SAASC,EAAS,CACvB,MAAAC,EACA,MAAAC,EACA,MAAAC,EACA,WAAAC,EACA,MAAAC,EAAQ,UACR,YAAAC,EACA,UAAAC,EACA,GAAGC,CACL,EAAkB,CAChB,MAAMC,EAAYd,EAAWU,CAAK,EAC5BK,EAAaX,EAAYM,CAAK,EAEpC,OACEM,EAAAA,IAAC,MAAA,CAAI,YAAU,YAAY,UAAWC,KAAG,SAAUL,CAAS,EAAI,GAAGC,EACjE,SAAAK,EAAAA,KAACC,EAAAA,KAAA,CACC,SAAA,CAAAH,EAAAA,IAACI,EAAAA,YACC,SAAAJ,EAAAA,IAACK,EAAAA,UAAA,CAAU,UAAU,4CAClB,WACH,CAAA,CACF,EACAH,EAAAA,KAACI,EAAAA,YAAA,CAAY,UAAU,sBACrB,SAAA,CAAAN,EAAAA,IAAC,IAAA,CAAE,UAAU,sCAAuC,SAAAT,EAAM,EACzDI,GACCK,EAAAA,IAAC,IAAA,CAAE,UAAU,gCAAiC,SAAAL,EAAY,EAE3DH,IAAU,QACTU,EAAAA,KAAC,MAAA,CAAI,UAAWD,EAAAA,GAAG,kCAAmCF,CAAU,EAC9D,SAAA,CAAAC,EAAAA,IAACF,EAAA,CAAU,UAAU,kBAAA,CAAmB,EACxCE,EAAAA,IAAC,OAAA,CAAK,UAAU,cAAe,SAAAR,EAAM,EACpCC,GACCO,EAAAA,IAAC,OAAA,CAAK,UAAU,wBAAyB,SAAAP,CAAA,CAAW,CAAA,CAAA,CAExD,CAAA,CAAA,CAEJ,CAAA,CAAA,CACF,CAAA,CACF,CAEJ"}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import * as React from "react";
|
|
2
|
+
export type StatCardTrend = "up" | "down" | "neutral";
|
|
3
|
+
export interface StatCardProps extends React.ComponentProps<"div"> {
|
|
4
|
+
label: string;
|
|
5
|
+
value: string | number;
|
|
6
|
+
delta?: string | number;
|
|
7
|
+
deltaLabel?: string;
|
|
8
|
+
trend?: StatCardTrend;
|
|
9
|
+
description?: string;
|
|
10
|
+
}
|
|
11
|
+
export declare function StatCard({ label, value, delta, deltaLabel, trend, description, className, ...props }: StatCardProps): import("react/jsx-runtime").JSX.Element;
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { jsx as e, jsxs as t } from "react/jsx-runtime";
|
|
2
2
|
import { MinusIcon as x, TrendingDownIcon as f, TrendingUpIcon as p } from "lucide-react";
|
|
3
|
-
import { Card as h, CardHeader as N, CardTitle as C, CardContent as g } from "
|
|
3
|
+
import { Card as h, CardHeader as N, CardTitle as C, CardContent as g } from "../../../ui/card.js";
|
|
4
4
|
import { cn as a } from "../../../lib/utils.js";
|
|
5
5
|
const T = {
|
|
6
6
|
up: p,
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export * from './StatCard';
|