@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
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"chain-of-thought.js","sources":["../../src/components/ai/chain-of-thought.tsx"],"sourcesContent":["import { Brain, ChevronUpIcon, ImageIcon, SearchIcon } from \"lucide-react\";\n\nimport type { ComponentProps, ReactNode } from \"react\";\n\nimport {\n Collapsible,\n CollapsibleContent,\n CollapsibleTrigger,\n} from \"@/components/ui/collapsible\";\nimport { cn } from \"@/lib/utils\";\n\n// ---------------------------------------------------------------------------\n// ChainOfThought (root)\n// ---------------------------------------------------------------------------\n\nexport type ChainOfThoughtProps = ComponentProps<typeof Collapsible>;\n\nexport const ChainOfThought = ({\n className,\n defaultOpen = true,\n ...props\n}: ChainOfThoughtProps) => (\n <Collapsible\n className={cn(\"overflow-hidden rounded-lg text-sm\", className)}\n defaultOpen={defaultOpen}\n {...props}\n />\n);\n\n// ---------------------------------------------------------------------------\n// ChainOfThoughtTrigger\n// ---------------------------------------------------------------------------\n\nexport type ChainOfThoughtTriggerProps = ComponentProps<typeof CollapsibleTrigger> & {\n title?: string;\n icon?: ReactNode;\n /** When true, renders a subtle animated dot next to the title. */\n isStreaming?: boolean;\n};\n\nexport const ChainOfThoughtTrigger = ({\n className,\n children,\n title = \"Chain of Thought\",\n icon,\n isStreaming = false,\n ...props\n}: ChainOfThoughtTriggerProps) => (\n <CollapsibleTrigger\n className={cn(\n \"group flex w-full items-center gap-2 text-muted-foreground text-sm transition-colors hover:text-foreground\",\n className\n )}\n {...props}\n >\n {children ?? (\n <>\n {icon ?? <Brain className=\"size-4 text-muted-foreground\" />}\n <span className=\"flex-1 text-left items-center gap-2\">\n {title}\n {isStreaming && (\n <span className=\"size-1.5 animate-pulse rounded-full bg-primary\" />\n )}\n </span>\n <ChevronUpIcon\n className=\"size-4 text-muted-foreground opacity-0 transition-all group-focus-visible:opacity-100 group-hover:opacity-100 group-data-[state=open]:opacity-100 group-data-[state=closed]:rotate-180\"\n data-slot=\"collapsible-chevron\"\n />\n </>\n )}\n </CollapsibleTrigger>\n);\n\n// ---------------------------------------------------------------------------\n// ChainOfThoughtContent\n// ---------------------------------------------------------------------------\n\nexport type ChainOfThoughtContentProps = ComponentProps<typeof CollapsibleContent>;\n\nexport const ChainOfThoughtContent = ({\n className,\n ...props\n}: ChainOfThoughtContentProps) => (\n <CollapsibleContent\n className={cn(\n \"flex flex-col gap-2.5 pb-4 pt-3\",\n \"data-[state=closed]:animate-out data-[state=open]:animate-in\",\n \"data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0\",\n \"data-[state=closed]:slide-out-to-top-1 data-[state=open]:slide-in-from-top-1\",\n className\n )}\n {...props}\n />\n);\n\n// ---------------------------------------------------------------------------\n// ChainOfThoughtStep\n// ---------------------------------------------------------------------------\n\nexport type ChainOfThoughtStepVariant = \"bullet\" | \"search\" | \"image\";\n\nexport type ChainOfThoughtStepProps = ComponentProps<\"div\"> & {\n /**\n * Visual prefix for the step.\n * - `\"bullet\"` — small dot (default, plain reasoning text)\n * - `\"search\"` — magnifying-glass (web search / tool call)\n * - `\"image\"` — image icon (image fetch / vision step)\n * - ReactNode — custom icon\n */\n variant?: ChainOfThoughtStepVariant | ReactNode;\n};\n\nconst STEP_ICONS: Record<ChainOfThoughtStepVariant, ReactNode> = {\n bullet: (\n <span className=\"mt-[7px] ml-1 size-1.5 shrink-0 rounded-full bg-muted-foreground/50\" />\n ),\n search: <SearchIcon className=\"mt-0.5 w-[18px] size-3.5 shrink-0 text-muted-foreground\" />,\n image: <ImageIcon className=\"mt-0.5 size-3.5 shrink-0 text-muted-foreground\" />,\n};\n\nexport const ChainOfThoughtStep = ({\n variant = \"bullet\",\n className,\n children,\n ...props\n}: ChainOfThoughtStepProps) => {\n const icon =\n typeof variant === \"string\"\n ? STEP_ICONS[variant as ChainOfThoughtStepVariant]\n : variant;\n\n return (\n <div\n className={cn(\"flex items-start gap-2 text-muted-foreground\", className)}\n {...props}\n >\n <span className=\"flex shrink-0\">{icon}</span>\n <span className=\"min-w-0 flex-1 leading-relaxed\">{children}</span>\n </div>\n );\n};\n\n// ---------------------------------------------------------------------------\n// ChainOfThoughtSources — inline chip group with left bar\n// ---------------------------------------------------------------------------\n\nexport type ChainOfThoughtSourcesProps = ComponentProps<\"div\">;\n\nexport const ChainOfThoughtSources = ({\n className,\n ...props\n}: ChainOfThoughtSourcesProps) => (\n <div\n className={cn(\n \"ml-[6px] flex flex-wrap gap-1.5 border-l-2 border-muted-foreground/20 py-0.5 pl-3\",\n className\n )}\n {...props}\n />\n);\n\nexport type ChainOfThoughtSourceProps = ComponentProps<\"a\">;\n\nexport const ChainOfThoughtSource = ({\n className,\n children,\n ...props\n}: ChainOfThoughtSourceProps) => (\n <a\n className={cn(\n \"inline-flex items-center rounded-full border border-border/60 bg-muted/50 px-2 py-0.5 text-xs text-muted-foreground transition-colors\",\n props.href && \"cursor-pointer hover:bg-accent hover:text-accent-foreground\",\n className\n )}\n rel=\"noreferrer\"\n target=\"_blank\"\n {...props}\n >\n {children}\n </a>\n);\n\n// ---------------------------------------------------------------------------\n// ChainOfThoughtImage — inline image with optional caption\n// ---------------------------------------------------------------------------\n\nexport type ChainOfThoughtImageProps = ComponentProps<\"figure\"> & {\n src: string;\n alt?: string;\n caption?: string;\n};\n\nexport const ChainOfThoughtImage = ({\n src,\n alt = \"\",\n caption,\n className,\n ...props\n}: ChainOfThoughtImageProps) => (\n <figure\n className={cn(\"ml-[22px] overflow-hidden rounded-lg border\", className)}\n {...props}\n >\n <img alt={alt} className=\"max-h-64 w-full object-cover\" src={src} />\n {caption && (\n <figcaption className=\"border-t px-3 py-2 text-xs italic text-muted-foreground\">\n {caption}\n </figcaption>\n )}\n </figure>\n);\n\nChainOfThought.displayName = \"ChainOfThought\";\nChainOfThoughtTrigger.displayName = \"ChainOfThoughtTrigger\";\nChainOfThoughtContent.displayName = \"ChainOfThoughtContent\";\nChainOfThoughtStep.displayName = \"ChainOfThoughtStep\";\nChainOfThoughtSources.displayName = \"ChainOfThoughtSources\";\nChainOfThoughtSource.displayName = \"ChainOfThoughtSource\";\nChainOfThoughtImage.displayName = \"ChainOfThoughtImage\";\n"],"names":["ChainOfThought","className","defaultOpen","props","jsx","Collapsible","cn","ChainOfThoughtTrigger","children","title","icon","isStreaming","CollapsibleTrigger","jsxs","Fragment","Brain","ChevronUpIcon","ChainOfThoughtContent","CollapsibleContent","STEP_ICONS","SearchIcon","ImageIcon","ChainOfThoughtStep","variant","ChainOfThoughtSources","ChainOfThoughtSource","ChainOfThoughtImage","src","alt","caption"],"mappings":"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"}
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const o=require("react/jsx-runtime"),l=require("motion/react"),r=require("react"),b=require("../ui/button.cjs"),j=require("../ui/code-block.cjs"),v=require("../ui/kbd.cjs"),i=require("../lib/utils.cjs"),d=r.createContext(null),a=()=>{const e=r.useContext(d);if(!e)throw new Error("Confirmation components must be used within Confirmation");return e},g=1500,h=({className:e,approval:n,state:t,children:m,...c})=>{const f=r.useMemo(()=>({approval:n,state:t}),[n,t]),[p,C]=r.useState(!0),u=n?.approved===!0&&(t==="approval-responded"||t==="output-available"||t==="output-denied");if(r.useEffect(()=>{if(u){const s=setTimeout(()=>C(!1),g);return()=>clearTimeout(s)}},[u]),!n||t==="input-streaming"||t==="input-available")return null;const x=Object.fromEntries(Object.entries(c).filter(([s])=>s.startsWith("data-")||s.startsWith("aria-")));return o.jsx(d.Provider,{value:f,children:o.jsx(l.AnimatePresence,{children:p&&o.jsx(l.motion.div,{...x,className:i.cn("flex flex-col gap-4 rounded-xl border bg-card p-5 shadow-elevation-3",e),exit:{opacity:0,scale:.96},id:c.id,style:c.style,transition:{duration:.5,ease:"easeOut"},children:m})})})},q=({className:e,children:n,...t})=>o.jsx("h3",{className:i.cn("font-semibold text-base text-foreground",e),...t,children:n}),A=({className:e,children:n,...t})=>o.jsx(j.CodeBlock,{className:i.cn(e),...t,language:"bash",code:n?.toString()??""}),y=({children:e})=>{const{state:n}=a();return n!=="approval-requested"?null:o.jsx(o.Fragment,{children:e})},E=({children:e})=>{const{approval:n,state:t}=a();return!n?.approved||t!=="approval-responded"&&t!=="output-denied"&&t!=="output-available"?null:o.jsx(o.Fragment,{children:e})},N=({children:e})=>{const{approval:n,state:t}=a();return n?.approved!==!1||t!=="approval-responded"&&t!=="output-denied"&&t!=="output-available"?null:o.jsx(o.Fragment,{children:e})},R=({className:e,...n})=>{const{state:t}=a();return t!=="approval-requested"?null:o.jsx("div",{className:i.cn("flex items-center justify-between gap-2",e),...n})},S=({className:e,size:n="sm",...t})=>o.jsx(b.Button,{className:i.cn("gap-1.5",e),size:n,type:"button",...t}),T=({className:e,...n})=>o.jsx(v.Kbd,{className:i.cn("ml-0.5",e),...n});exports.Confirmation=h;exports.ConfirmationAccepted=E;exports.ConfirmationAction=S;exports.ConfirmationActions=R;exports.ConfirmationCode=A;exports.ConfirmationRejected=N;exports.ConfirmationRequest=y;exports.ConfirmationShortcut=T;exports.ConfirmationTitle=q;
|
|
2
|
+
//# sourceMappingURL=confirmation.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"confirmation.cjs","sources":["../../src/components/ai/confirmation.tsx"],"sourcesContent":["import { AnimatePresence, motion } from \"motion/react\";\nimport { createContext, useContext, useEffect, useMemo, useState } from \"react\";\n\n\nimport type { ToolUIPart } from \"ai\";\nimport type { ComponentProps, PropsWithChildren, ReactNode } from \"react\";\n\nimport { Button } from \"@/components/ui/button\";\nimport { CodeBlock } from \"@/components/ui/code-block\";\nimport { Kbd } from \"@/components/ui/kbd\";\nimport { cn } from \"@/lib/utils\";\n\n\ntype ToolUIPartApproval =\n | { id: string; approved?: never; reason?: never }\n | { id: string; approved: boolean; reason?: string }\n | { id: string; approved: true; reason?: string }\n | { id: string; approved: false; reason?: string }\n | undefined;\n\ninterface ConfirmationContextValue {\n approval: ToolUIPartApproval;\n state: ToolUIPart[\"state\"];\n}\n\nconst ConfirmationContext = createContext<ConfirmationContextValue | null>(null);\n\nconst useConfirmation = () => {\n const context = useContext(ConfirmationContext);\n if (!context) {\n throw new Error(\"Confirmation components must be used within Confirmation\");\n }\n return context;\n};\n\n// ---------------------------------------------------------------------------\n// Confirmation (root)\n// ---------------------------------------------------------------------------\n\nexport type ConfirmationProps = ComponentProps<\"div\"> & {\n approval?: ToolUIPartApproval;\n state: ToolUIPart[\"state\"];\n};\n\nconst ACCEPTED_HIDE_DELAY = 1500;\n\nexport const Confirmation = ({\n className,\n approval,\n state,\n children,\n ...props\n}: ConfirmationProps) => {\n const contextValue = useMemo(() => ({ approval, state }), [approval, state]);\n const [visible, setVisible] = useState(true);\n\n const isAccepted =\n approval?.approved === true &&\n (state === \"approval-responded\" ||\n state === \"output-available\" ||\n state === \"output-denied\");\n\n useEffect(() => {\n if (isAccepted) {\n const timer = setTimeout(() => setVisible(false), ACCEPTED_HIDE_DELAY);\n return () => clearTimeout(timer);\n }\n }, [isAccepted]);\n\n if (!approval || state === \"input-streaming\" || state === \"input-available\") {\n return null;\n }\n\n // Pass through data-* and aria-* only; drop event handlers to avoid\n // onDrag type conflict between React and framer-motion.\n const passthroughProps = Object.fromEntries(\n Object.entries(props).filter(([k]) => k.startsWith(\"data-\") || k.startsWith(\"aria-\"))\n );\n\n return (\n <ConfirmationContext.Provider value={contextValue}>\n <AnimatePresence>\n {visible && (\n <motion.div\n {...passthroughProps}\n className={cn(\n \"flex flex-col gap-4 rounded-xl border bg-card p-5 shadow-elevation-3\",\n className\n )}\n exit={{ opacity: 0, scale: 0.96 }}\n id={props.id}\n style={props.style}\n transition={{ duration: 0.5, ease: \"easeOut\" }}\n >\n {children}\n </motion.div>\n )}\n </AnimatePresence>\n </ConfirmationContext.Provider>\n );\n};\n\n// ---------------------------------------------------------------------------\n// ConfirmationTitle\n// ---------------------------------------------------------------------------\n\nexport type ConfirmationTitleProps = PropsWithChildren<ComponentProps<\"h3\">>;\n\nexport const ConfirmationTitle = ({\n className,\n children,\n ...props\n}: ConfirmationTitleProps) => (\n <h3\n className={cn(\"font-semibold text-base text-foreground\", className)}\n {...props}\n >\n {children}\n </h3>\n);\n\n// ---------------------------------------------------------------------------\n// ConfirmationCode — monospace command/code block\n// ---------------------------------------------------------------------------\n\nexport type ConfirmationCodeProps = ComponentProps<typeof CodeBlock>;\n\nexport const ConfirmationCode = ({\n className,\n children,\n ...props\n}: ConfirmationCodeProps) => (\n <CodeBlock className={cn(className)} {...props} language=\"bash\" code={children?.toString() ?? ''} />\n);\n\n// ---------------------------------------------------------------------------\n// ConfirmationRequest / Accepted / Rejected — conditional renderers\n// ---------------------------------------------------------------------------\n\nexport const ConfirmationRequest = ({ children }: { children?: ReactNode }) => {\n const { state } = useConfirmation();\n if (state !== \"approval-requested\") return null;\n return <>{children}</>;\n};\n\nexport const ConfirmationAccepted = ({ children }: { children?: ReactNode }) => {\n const { approval, state } = useConfirmation();\n if (\n !approval?.approved ||\n (state !== \"approval-responded\" &&\n state !== \"output-denied\" &&\n state !== \"output-available\")\n ) {\n return null;\n }\n return <>{children}</>;\n};\n\nexport const ConfirmationRejected = ({ children }: { children?: ReactNode }) => {\n const { approval, state } = useConfirmation();\n if (\n approval?.approved !== false ||\n (state !== \"approval-responded\" &&\n state !== \"output-denied\" &&\n state !== \"output-available\")\n ) {\n return null;\n }\n return <>{children}</>;\n};\n\n// ---------------------------------------------------------------------------\n// ConfirmationActions — deny left, allow buttons right\n// ---------------------------------------------------------------------------\n\nexport type ConfirmationActionsProps = ComponentProps<\"div\">;\n\nexport const ConfirmationActions = ({\n className,\n ...props\n}: ConfirmationActionsProps) => {\n const { state } = useConfirmation();\n if (state !== \"approval-requested\") return null;\n return (\n <div\n className={cn(\"flex items-center justify-between gap-2\", className)}\n {...props}\n />\n );\n};\n\n// ---------------------------------------------------------------------------\n// ConfirmationAction — individual button\n// ---------------------------------------------------------------------------\n\nexport type ConfirmationActionProps = ComponentProps<typeof Button>;\n\nexport const ConfirmationAction = ({\n className,\n size = \"sm\",\n ...props\n}: ConfirmationActionProps) => (\n <Button\n className={cn(\"gap-1.5\", className)}\n size={size}\n type=\"button\"\n {...props}\n />\n);\n\n// ---------------------------------------------------------------------------\n// ConfirmationShortcut — keyboard shortcut label inside a button\n// ---------------------------------------------------------------------------\n\nexport type ConfirmationShortcutProps = ComponentProps<typeof Kbd>;\n\nexport const ConfirmationShortcut = ({\n className,\n ...props\n}: ConfirmationShortcutProps) => (\n <Kbd className={cn(\"ml-0.5\", className)} {...props} />\n);\n"],"names":["ConfirmationContext","createContext","useConfirmation","context","useContext","ACCEPTED_HIDE_DELAY","Confirmation","className","approval","state","children","props","contextValue","useMemo","visible","setVisible","useState","isAccepted","useEffect","timer","passthroughProps","k","jsx","AnimatePresence","motion","cn","ConfirmationTitle","ConfirmationCode","CodeBlock","ConfirmationRequest","ConfirmationAccepted","ConfirmationRejected","ConfirmationActions","ConfirmationAction","size","Button","ConfirmationShortcut","Kbd"],"mappings":"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"}
|
|
@@ -0,0 +1,109 @@
|
|
|
1
|
+
import { jsx as n, Fragment as u } from "react/jsx-runtime";
|
|
2
|
+
import { AnimatePresence as b, motion as v } from "motion/react";
|
|
3
|
+
import { createContext as x, useMemo as h, useState as g, useEffect as A, useContext as E } from "react";
|
|
4
|
+
import { Button as N } from "../ui/button.js";
|
|
5
|
+
import { CodeBlock as j } from "../ui/code-block.js";
|
|
6
|
+
import { Kbd as w } from "../ui/kbd.js";
|
|
7
|
+
import { cn as r } from "../lib/utils.js";
|
|
8
|
+
const l = x(null), a = () => {
|
|
9
|
+
const e = E(l);
|
|
10
|
+
if (!e)
|
|
11
|
+
throw new Error("Confirmation components must be used within Confirmation");
|
|
12
|
+
return e;
|
|
13
|
+
}, y = 1500, R = ({
|
|
14
|
+
className: e,
|
|
15
|
+
approval: o,
|
|
16
|
+
state: t,
|
|
17
|
+
children: m,
|
|
18
|
+
...s
|
|
19
|
+
}) => {
|
|
20
|
+
const d = h(() => ({ approval: o, state: t }), [o, t]), [p, f] = g(!0), c = o?.approved === !0 && (t === "approval-responded" || t === "output-available" || t === "output-denied");
|
|
21
|
+
if (A(() => {
|
|
22
|
+
if (c) {
|
|
23
|
+
const i = setTimeout(() => f(!1), y);
|
|
24
|
+
return () => clearTimeout(i);
|
|
25
|
+
}
|
|
26
|
+
}, [c]), !o || t === "input-streaming" || t === "input-available")
|
|
27
|
+
return null;
|
|
28
|
+
const C = Object.fromEntries(
|
|
29
|
+
Object.entries(s).filter(([i]) => i.startsWith("data-") || i.startsWith("aria-"))
|
|
30
|
+
);
|
|
31
|
+
return /* @__PURE__ */ n(l.Provider, { value: d, children: /* @__PURE__ */ n(b, { children: p && /* @__PURE__ */ n(
|
|
32
|
+
v.div,
|
|
33
|
+
{
|
|
34
|
+
...C,
|
|
35
|
+
className: r(
|
|
36
|
+
"flex flex-col gap-4 rounded-xl border bg-card p-5 shadow-elevation-3",
|
|
37
|
+
e
|
|
38
|
+
),
|
|
39
|
+
exit: { opacity: 0, scale: 0.96 },
|
|
40
|
+
id: s.id,
|
|
41
|
+
style: s.style,
|
|
42
|
+
transition: { duration: 0.5, ease: "easeOut" },
|
|
43
|
+
children: m
|
|
44
|
+
}
|
|
45
|
+
) }) });
|
|
46
|
+
}, V = ({
|
|
47
|
+
className: e,
|
|
48
|
+
children: o,
|
|
49
|
+
...t
|
|
50
|
+
}) => /* @__PURE__ */ n(
|
|
51
|
+
"h3",
|
|
52
|
+
{
|
|
53
|
+
className: r("font-semibold text-base text-foreground", e),
|
|
54
|
+
...t,
|
|
55
|
+
children: o
|
|
56
|
+
}
|
|
57
|
+
), W = ({
|
|
58
|
+
className: e,
|
|
59
|
+
children: o,
|
|
60
|
+
...t
|
|
61
|
+
}) => /* @__PURE__ */ n(j, { className: r(e), ...t, language: "bash", code: o?.toString() ?? "" }), _ = ({ children: e }) => {
|
|
62
|
+
const { state: o } = a();
|
|
63
|
+
return o !== "approval-requested" ? null : /* @__PURE__ */ n(u, { children: e });
|
|
64
|
+
}, F = ({ children: e }) => {
|
|
65
|
+
const { approval: o, state: t } = a();
|
|
66
|
+
return !o?.approved || t !== "approval-responded" && t !== "output-denied" && t !== "output-available" ? null : /* @__PURE__ */ n(u, { children: e });
|
|
67
|
+
}, H = ({ children: e }) => {
|
|
68
|
+
const { approval: o, state: t } = a();
|
|
69
|
+
return o?.approved !== !1 || t !== "approval-responded" && t !== "output-denied" && t !== "output-available" ? null : /* @__PURE__ */ n(u, { children: e });
|
|
70
|
+
}, I = ({
|
|
71
|
+
className: e,
|
|
72
|
+
...o
|
|
73
|
+
}) => {
|
|
74
|
+
const { state: t } = a();
|
|
75
|
+
return t !== "approval-requested" ? null : /* @__PURE__ */ n(
|
|
76
|
+
"div",
|
|
77
|
+
{
|
|
78
|
+
className: r("flex items-center justify-between gap-2", e),
|
|
79
|
+
...o
|
|
80
|
+
}
|
|
81
|
+
);
|
|
82
|
+
}, K = ({
|
|
83
|
+
className: e,
|
|
84
|
+
size: o = "sm",
|
|
85
|
+
...t
|
|
86
|
+
}) => /* @__PURE__ */ n(
|
|
87
|
+
N,
|
|
88
|
+
{
|
|
89
|
+
className: r("gap-1.5", e),
|
|
90
|
+
size: o,
|
|
91
|
+
type: "button",
|
|
92
|
+
...t
|
|
93
|
+
}
|
|
94
|
+
), L = ({
|
|
95
|
+
className: e,
|
|
96
|
+
...o
|
|
97
|
+
}) => /* @__PURE__ */ n(w, { className: r("ml-0.5", e), ...o });
|
|
98
|
+
export {
|
|
99
|
+
R as Confirmation,
|
|
100
|
+
F as ConfirmationAccepted,
|
|
101
|
+
K as ConfirmationAction,
|
|
102
|
+
I as ConfirmationActions,
|
|
103
|
+
W as ConfirmationCode,
|
|
104
|
+
H as ConfirmationRejected,
|
|
105
|
+
_ as ConfirmationRequest,
|
|
106
|
+
L as ConfirmationShortcut,
|
|
107
|
+
V as ConfirmationTitle
|
|
108
|
+
};
|
|
109
|
+
//# sourceMappingURL=confirmation.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"confirmation.js","sources":["../../src/components/ai/confirmation.tsx"],"sourcesContent":["import { AnimatePresence, motion } from \"motion/react\";\nimport { createContext, useContext, useEffect, useMemo, useState } from \"react\";\n\n\nimport type { ToolUIPart } from \"ai\";\nimport type { ComponentProps, PropsWithChildren, ReactNode } from \"react\";\n\nimport { Button } from \"@/components/ui/button\";\nimport { CodeBlock } from \"@/components/ui/code-block\";\nimport { Kbd } from \"@/components/ui/kbd\";\nimport { cn } from \"@/lib/utils\";\n\n\ntype ToolUIPartApproval =\n | { id: string; approved?: never; reason?: never }\n | { id: string; approved: boolean; reason?: string }\n | { id: string; approved: true; reason?: string }\n | { id: string; approved: false; reason?: string }\n | undefined;\n\ninterface ConfirmationContextValue {\n approval: ToolUIPartApproval;\n state: ToolUIPart[\"state\"];\n}\n\nconst ConfirmationContext = createContext<ConfirmationContextValue | null>(null);\n\nconst useConfirmation = () => {\n const context = useContext(ConfirmationContext);\n if (!context) {\n throw new Error(\"Confirmation components must be used within Confirmation\");\n }\n return context;\n};\n\n// ---------------------------------------------------------------------------\n// Confirmation (root)\n// ---------------------------------------------------------------------------\n\nexport type ConfirmationProps = ComponentProps<\"div\"> & {\n approval?: ToolUIPartApproval;\n state: ToolUIPart[\"state\"];\n};\n\nconst ACCEPTED_HIDE_DELAY = 1500;\n\nexport const Confirmation = ({\n className,\n approval,\n state,\n children,\n ...props\n}: ConfirmationProps) => {\n const contextValue = useMemo(() => ({ approval, state }), [approval, state]);\n const [visible, setVisible] = useState(true);\n\n const isAccepted =\n approval?.approved === true &&\n (state === \"approval-responded\" ||\n state === \"output-available\" ||\n state === \"output-denied\");\n\n useEffect(() => {\n if (isAccepted) {\n const timer = setTimeout(() => setVisible(false), ACCEPTED_HIDE_DELAY);\n return () => clearTimeout(timer);\n }\n }, [isAccepted]);\n\n if (!approval || state === \"input-streaming\" || state === \"input-available\") {\n return null;\n }\n\n // Pass through data-* and aria-* only; drop event handlers to avoid\n // onDrag type conflict between React and framer-motion.\n const passthroughProps = Object.fromEntries(\n Object.entries(props).filter(([k]) => k.startsWith(\"data-\") || k.startsWith(\"aria-\"))\n );\n\n return (\n <ConfirmationContext.Provider value={contextValue}>\n <AnimatePresence>\n {visible && (\n <motion.div\n {...passthroughProps}\n className={cn(\n \"flex flex-col gap-4 rounded-xl border bg-card p-5 shadow-elevation-3\",\n className\n )}\n exit={{ opacity: 0, scale: 0.96 }}\n id={props.id}\n style={props.style}\n transition={{ duration: 0.5, ease: \"easeOut\" }}\n >\n {children}\n </motion.div>\n )}\n </AnimatePresence>\n </ConfirmationContext.Provider>\n );\n};\n\n// ---------------------------------------------------------------------------\n// ConfirmationTitle\n// ---------------------------------------------------------------------------\n\nexport type ConfirmationTitleProps = PropsWithChildren<ComponentProps<\"h3\">>;\n\nexport const ConfirmationTitle = ({\n className,\n children,\n ...props\n}: ConfirmationTitleProps) => (\n <h3\n className={cn(\"font-semibold text-base text-foreground\", className)}\n {...props}\n >\n {children}\n </h3>\n);\n\n// ---------------------------------------------------------------------------\n// ConfirmationCode — monospace command/code block\n// ---------------------------------------------------------------------------\n\nexport type ConfirmationCodeProps = ComponentProps<typeof CodeBlock>;\n\nexport const ConfirmationCode = ({\n className,\n children,\n ...props\n}: ConfirmationCodeProps) => (\n <CodeBlock className={cn(className)} {...props} language=\"bash\" code={children?.toString() ?? ''} />\n);\n\n// ---------------------------------------------------------------------------\n// ConfirmationRequest / Accepted / Rejected — conditional renderers\n// ---------------------------------------------------------------------------\n\nexport const ConfirmationRequest = ({ children }: { children?: ReactNode }) => {\n const { state } = useConfirmation();\n if (state !== \"approval-requested\") return null;\n return <>{children}</>;\n};\n\nexport const ConfirmationAccepted = ({ children }: { children?: ReactNode }) => {\n const { approval, state } = useConfirmation();\n if (\n !approval?.approved ||\n (state !== \"approval-responded\" &&\n state !== \"output-denied\" &&\n state !== \"output-available\")\n ) {\n return null;\n }\n return <>{children}</>;\n};\n\nexport const ConfirmationRejected = ({ children }: { children?: ReactNode }) => {\n const { approval, state } = useConfirmation();\n if (\n approval?.approved !== false ||\n (state !== \"approval-responded\" &&\n state !== \"output-denied\" &&\n state !== \"output-available\")\n ) {\n return null;\n }\n return <>{children}</>;\n};\n\n// ---------------------------------------------------------------------------\n// ConfirmationActions — deny left, allow buttons right\n// ---------------------------------------------------------------------------\n\nexport type ConfirmationActionsProps = ComponentProps<\"div\">;\n\nexport const ConfirmationActions = ({\n className,\n ...props\n}: ConfirmationActionsProps) => {\n const { state } = useConfirmation();\n if (state !== \"approval-requested\") return null;\n return (\n <div\n className={cn(\"flex items-center justify-between gap-2\", className)}\n {...props}\n />\n );\n};\n\n// ---------------------------------------------------------------------------\n// ConfirmationAction — individual button\n// ---------------------------------------------------------------------------\n\nexport type ConfirmationActionProps = ComponentProps<typeof Button>;\n\nexport const ConfirmationAction = ({\n className,\n size = \"sm\",\n ...props\n}: ConfirmationActionProps) => (\n <Button\n className={cn(\"gap-1.5\", className)}\n size={size}\n type=\"button\"\n {...props}\n />\n);\n\n// ---------------------------------------------------------------------------\n// ConfirmationShortcut — keyboard shortcut label inside a button\n// ---------------------------------------------------------------------------\n\nexport type ConfirmationShortcutProps = ComponentProps<typeof Kbd>;\n\nexport const ConfirmationShortcut = ({\n className,\n ...props\n}: ConfirmationShortcutProps) => (\n <Kbd className={cn(\"ml-0.5\", className)} {...props} />\n);\n"],"names":["ConfirmationContext","createContext","useConfirmation","context","useContext","ACCEPTED_HIDE_DELAY","Confirmation","className","approval","state","children","props","contextValue","useMemo","visible","setVisible","useState","isAccepted","useEffect","timer","passthroughProps","k","jsx","AnimatePresence","motion","cn","ConfirmationTitle","ConfirmationCode","CodeBlock","ConfirmationRequest","ConfirmationAccepted","ConfirmationRejected","ConfirmationActions","ConfirmationAction","size","Button","ConfirmationShortcut","Kbd"],"mappings":"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"}
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const t=require("react/jsx-runtime"),f=require("react"),b=require("../ui/button.cjs"),p=require("../ui/hover-card.cjs"),k=require("../components/ui/progress.cjs"),i=require("../lib/utils.cjs"),S=100,g=10,h=24,l=12,j=2,U=.75,I=.9,T=e=>e>=I?"danger":e>=U?"warning":"normal",C={normal:"text-muted-foreground",warning:"text-warning",danger:"text-destructive"},O={normal:"",warning:"[&_[data-slot=progress-indicator]]:bg-warning",danger:"[&_[data-slot=progress-indicator]]:bg-destructive"},N=new Intl.NumberFormat("en-US",{currency:"USD",style:"currency"}),x=e=>e===void 0?void 0:N.format(e),w=f.createContext(null),u=()=>{const e=f.useContext(w);if(!e)throw new Error("Context components must be used within Context");return e},R=({usedTokens:e,maxTokens:n,usage:s,cost:o,...c})=>{const r=f.useMemo(()=>({cost:o,maxTokens:n,usage:s,usedTokens:e}),[o,n,s,e]);return t.jsx(w.Provider,{value:r,children:t.jsx(p.HoverCard,{closeDelay:0,openDelay:0,...c})})},_=()=>{const{usedTokens:e,maxTokens:n}=u(),s=2*Math.PI*g,o=e/n,c=s*(1-o);return t.jsxs("svg",{"aria-label":"Model context usage",height:"20",role:"img",style:{color:"currentcolor"},viewBox:`0 0 ${h} ${h}`,width:"20",children:[t.jsx("circle",{cx:l,cy:l,fill:"none",opacity:"0.25",r:g,stroke:"currentColor",strokeWidth:j}),t.jsx("circle",{cx:l,cy:l,fill:"none",opacity:"0.7",r:g,stroke:"currentColor",strokeDasharray:`${s} ${s}`,strokeDashoffset:c,strokeLinecap:"round",strokeWidth:j,style:{transform:"rotate(-90deg)",transformOrigin:"center"}})]})},D=({children:e,showPercentage:n=!1,...s})=>{const{usedTokens:o,maxTokens:c}=u(),r=o/c,a=T(r),m=new Intl.NumberFormat("en-US",{maximumFractionDigits:1,style:"percent"}).format(r);return t.jsx(p.HoverCardTrigger,{asChild:!0,children:e??t.jsxs(b.Button,{type:"button",variant:"ghost",...s,children:[n?t.jsx("span",{className:i.cn("font-medium",C[a]),children:m}):null,t.jsx("span",{className:C[a],children:t.jsx(_,{})})]})})},F=({className:e,...n})=>t.jsx(p.HoverCardContent,{className:i.cn("min-w-60 divide-y overflow-hidden p-0",e),...n}),E=({children:e,className:n,...s})=>{const{usedTokens:o,maxTokens:c}=u(),r=o/c,a=T(r),m=new Intl.NumberFormat("en-US",{maximumFractionDigits:1,style:"percent"}).format(r),y=new Intl.NumberFormat("en-US",{notation:"compact"}).format(o),v=new Intl.NumberFormat("en-US",{notation:"compact"}).format(c);return t.jsx("div",{className:i.cn("w-full space-y-2 p-3",n),...s,children:e??t.jsxs(t.Fragment,{children:[t.jsxs("div",{className:"flex items-center justify-between gap-3 text-xs",children:[t.jsx("p",{className:i.cn(C[a]),children:m}),t.jsxs("p",{className:"font-mono text-muted-foreground",children:[y," / ",v]})]}),t.jsx("div",{className:"space-y-2",children:t.jsx(k.Progress,{"aria-label":"Context window usage",className:i.cn("bg-muted",O[a]),value:r*S})})]})})},P=({children:e,className:n,...s})=>t.jsx("div",{className:i.cn("w-full p-3",n),...s,children:e}),H=({children:e,className:n,...s})=>{const{cost:o}=u(),c=o?.total===void 0?"—":N.format(o.total);return t.jsx("div",{className:i.cn("flex w-full items-center justify-between gap-3 bg-muted/50 p-3 text-xs",n),...s,children:e??t.jsxs(t.Fragment,{children:[t.jsx("span",{className:"text-muted-foreground",children:"Total cost"}),t.jsx("span",{children:c})]})})},d=({tokens:e,costText:n})=>t.jsxs("span",{children:[e===void 0?"—":new Intl.NumberFormat("en-US",{notation:"compact"}).format(e),n?t.jsxs("span",{className:"ml-2 text-muted-foreground",children:["• ",n]}):null]}),A=({className:e,children:n,...s})=>{const{usage:o,cost:c}=u(),r=o?.inputTokens??0;if(n)return n;if(!r)return null;const a=x(c?.input);return t.jsxs("div",{className:i.cn("flex items-center justify-between text-xs",e),...s,children:[t.jsx("span",{className:"text-muted-foreground",children:"Input"}),t.jsx(d,{costText:a,tokens:r})]})},q=({className:e,children:n,...s})=>{const{usage:o,cost:c}=u(),r=o?.outputTokens??0;if(n)return n;if(!r)return null;const a=x(c?.output);return t.jsxs("div",{className:i.cn("flex items-center justify-between text-xs",e),...s,children:[t.jsx("span",{className:"text-muted-foreground",children:"Output"}),t.jsx(d,{costText:a,tokens:r})]})},M=({className:e,children:n,...s})=>{const{usage:o,cost:c}=u(),r=o?.reasoningTokens??0;if(n)return n;if(!r)return null;const a=x(c?.reasoning);return t.jsxs("div",{className:i.cn("flex items-center justify-between text-xs",e),...s,children:[t.jsx("span",{className:"text-muted-foreground",children:"Reasoning"}),t.jsx(d,{costText:a,tokens:r})]})},W=({className:e,children:n,...s})=>{const{usage:o,cost:c}=u(),r=o?.cachedInputTokens??0;if(n)return n;if(!r)return null;const a=x(c?.cache);return t.jsxs("div",{className:i.cn("flex items-center justify-between text-xs",e),...s,children:[t.jsx("span",{className:"text-muted-foreground",children:"Cache"}),t.jsx(d,{costText:a,tokens:r})]})};exports.Context=R;exports.ContextCacheUsage=W;exports.ContextContent=F;exports.ContextContentBody=P;exports.ContextContentFooter=H;exports.ContextContentHeader=E;exports.ContextInputUsage=A;exports.ContextOutputUsage=q;exports.ContextReasoningUsage=M;exports.ContextTrigger=D;
|
|
2
|
+
//# sourceMappingURL=context.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"context.cjs","sources":["../../src/components/ai/context.tsx"],"sourcesContent":["import { createContext, useContext, useMemo } from \"react\";\n\nimport type { LanguageModelUsage } from \"ai\";\nimport type { ComponentProps } from \"react\";\n\nimport { Button } from \"@/components/ui/button\";\nimport {\n HoverCard,\n HoverCardContent,\n HoverCardTrigger,\n} from \"@/components/ui/hover-card\";\nimport { Progress } from \"@/components/ui/progress\";\nimport { cn } from \"@/lib/utils\";\n\n\nconst PERCENT_MAX = 100;\nconst ICON_RADIUS = 10;\nconst ICON_VIEWBOX = 24;\nconst ICON_CENTER = 12;\nconst ICON_STROKE_WIDTH = 2;\nconst WARN_THRESHOLD = 0.75;\nconst DANGER_THRESHOLD = 0.9;\n\ntype UsageStatus = \"normal\" | \"warning\" | \"danger\";\n\nconst getUsageStatus = (pct: number): UsageStatus => {\n if (pct >= DANGER_THRESHOLD) return \"danger\";\n if (pct >= WARN_THRESHOLD) return \"warning\";\n return \"normal\";\n};\n\nconst STATUS_TEXT: Record<UsageStatus, string> = {\n normal: \"text-muted-foreground\",\n warning: \"text-warning\",\n danger: \"text-destructive\",\n};\n\nconst STATUS_PROGRESS: Record<UsageStatus, string> = {\n normal: \"\",\n warning: \"[&_[data-slot=progress-indicator]]:bg-warning\",\n danger: \"[&_[data-slot=progress-indicator]]:bg-destructive\",\n};\n\nconst USD_FORMAT = new Intl.NumberFormat(\"en-US\", {\n currency: \"USD\",\n style: \"currency\",\n});\n\nconst formatUSD = (value: number | undefined): string | undefined =>\n value === undefined ? undefined : USD_FORMAT.format(value);\n\nexport interface CostBreakdown {\n total?: number;\n input?: number;\n output?: number;\n reasoning?: number;\n cache?: number;\n}\n\ninterface ContextSchema {\n usedTokens: number;\n maxTokens: number;\n usage?: LanguageModelUsage;\n cost?: CostBreakdown;\n}\n\nconst ContextContext = createContext<ContextSchema | null>(null);\n\nconst useContextValue = () => {\n const context = useContext(ContextContext);\n\n if (!context) {\n throw new Error(\"Context components must be used within Context\");\n }\n\n return context;\n};\n\nexport type ContextProps = ComponentProps<typeof HoverCard> & ContextSchema;\n\nexport const Context = ({\n usedTokens,\n maxTokens,\n usage,\n cost,\n ...props\n}: ContextProps) => {\n const contextValue = useMemo(\n () => ({ cost, maxTokens, usage, usedTokens }),\n [cost, maxTokens, usage, usedTokens]\n );\n\n return (\n <ContextContext.Provider value={contextValue}>\n <HoverCard closeDelay={0} openDelay={0} {...props} />\n </ContextContext.Provider>\n );\n};\n\nconst ContextIcon = () => {\n const { usedTokens, maxTokens } = useContextValue();\n const circumference = 2 * Math.PI * ICON_RADIUS;\n const usedPercent = usedTokens / maxTokens;\n const dashOffset = circumference * (1 - usedPercent);\n\n return (\n <svg\n aria-label=\"Model context usage\"\n height=\"20\"\n role=\"img\"\n style={{ color: \"currentcolor\" }}\n viewBox={`0 0 ${ICON_VIEWBOX} ${ICON_VIEWBOX}`}\n width=\"20\"\n >\n <circle\n cx={ICON_CENTER}\n cy={ICON_CENTER}\n fill=\"none\"\n opacity=\"0.25\"\n r={ICON_RADIUS}\n stroke=\"currentColor\"\n strokeWidth={ICON_STROKE_WIDTH}\n />\n <circle\n cx={ICON_CENTER}\n cy={ICON_CENTER}\n fill=\"none\"\n opacity=\"0.7\"\n r={ICON_RADIUS}\n stroke=\"currentColor\"\n strokeDasharray={`${circumference} ${circumference}`}\n strokeDashoffset={dashOffset}\n strokeLinecap=\"round\"\n strokeWidth={ICON_STROKE_WIDTH}\n style={{ transform: \"rotate(-90deg)\", transformOrigin: \"center\" }}\n />\n </svg>\n );\n};\n\nexport type ContextTriggerProps = ComponentProps<typeof Button> & {\n showPercentage?: boolean;\n};\n\nexport const ContextTrigger = ({\n children,\n showPercentage = false,\n ...props\n}: ContextTriggerProps) => {\n const { usedTokens, maxTokens } = useContextValue();\n const usedPercent = usedTokens / maxTokens;\n const status = getUsageStatus(usedPercent);\n const renderedPercent = new Intl.NumberFormat(\"en-US\", {\n maximumFractionDigits: 1,\n style: \"percent\",\n }).format(usedPercent);\n\n return (\n <HoverCardTrigger asChild>\n {children ?? (\n <Button type=\"button\" variant=\"ghost\" {...props}>\n {showPercentage ? (\n <span className={cn(\"font-medium\", STATUS_TEXT[status])}>\n {renderedPercent}\n </span>\n ) : null}\n <span className={STATUS_TEXT[status]}>\n <ContextIcon />\n </span>\n </Button>\n )}\n </HoverCardTrigger>\n );\n};\n\nexport type ContextContentProps = ComponentProps<typeof HoverCardContent>;\n\nexport const ContextContent = ({\n className,\n ...props\n}: ContextContentProps) => (\n <HoverCardContent\n className={cn(\"min-w-60 divide-y overflow-hidden p-0\", className)}\n {...props}\n />\n);\n\nexport type ContextContentHeaderProps = ComponentProps<\"div\">;\n\nexport const ContextContentHeader = ({\n children,\n className,\n ...props\n}: ContextContentHeaderProps) => {\n const { usedTokens, maxTokens } = useContextValue();\n const usedPercent = usedTokens / maxTokens;\n const status = getUsageStatus(usedPercent);\n const displayPct = new Intl.NumberFormat(\"en-US\", {\n maximumFractionDigits: 1,\n style: \"percent\",\n }).format(usedPercent);\n const used = new Intl.NumberFormat(\"en-US\", {\n notation: \"compact\",\n }).format(usedTokens);\n const total = new Intl.NumberFormat(\"en-US\", {\n notation: \"compact\",\n }).format(maxTokens);\n\n return (\n <div className={cn(\"w-full space-y-2 p-3\", className)} {...props}>\n {children ?? (\n <>\n <div className=\"flex items-center justify-between gap-3 text-xs\">\n <p className={cn(STATUS_TEXT[status])}>{displayPct}</p>\n <p className=\"font-mono text-muted-foreground\">\n {used} / {total}\n </p>\n </div>\n <div className=\"space-y-2\">\n <Progress\n aria-label=\"Context window usage\"\n className={cn(\"bg-muted\", STATUS_PROGRESS[status])}\n value={usedPercent * PERCENT_MAX}\n />\n </div>\n </>\n )}\n </div>\n );\n};\n\nexport type ContextContentBodyProps = ComponentProps<\"div\">;\n\nexport const ContextContentBody = ({\n children,\n className,\n ...props\n}: ContextContentBodyProps) => (\n <div className={cn(\"w-full p-3\", className)} {...props}>\n {children}\n </div>\n);\n\nexport type ContextContentFooterProps = ComponentProps<\"div\">;\n\nexport const ContextContentFooter = ({\n children,\n className,\n ...props\n}: ContextContentFooterProps) => {\n const { cost } = useContextValue();\n const totalCost = cost?.total === undefined ? \"—\" : USD_FORMAT.format(cost.total);\n\n return (\n <div\n className={cn(\n \"flex w-full items-center justify-between gap-3 bg-muted/50 p-3 text-xs\",\n className\n )}\n {...props}\n >\n {children ?? (\n <>\n <span className=\"text-muted-foreground\">Total cost</span>\n <span>{totalCost}</span>\n </>\n )}\n </div>\n );\n};\n\nconst TokensWithCost = ({\n tokens,\n costText,\n}: {\n tokens?: number;\n costText?: string;\n}) => (\n <span>\n {tokens === undefined\n ? \"—\"\n : new Intl.NumberFormat(\"en-US\", {\n notation: \"compact\",\n }).format(tokens)}\n {costText ? (\n <span className=\"ml-2 text-muted-foreground\">• {costText}</span>\n ) : null}\n </span>\n);\n\nexport type ContextInputUsageProps = ComponentProps<\"div\">;\n\nexport const ContextInputUsage = ({\n className,\n children,\n ...props\n}: ContextInputUsageProps) => {\n const { usage, cost } = useContextValue();\n const inputTokens = usage?.inputTokens ?? 0;\n\n if (children) {\n return children;\n }\n\n if (!inputTokens) {\n return null;\n }\n\n const inputCostText = formatUSD(cost?.input);\n\n return (\n <div\n className={cn(\"flex items-center justify-between text-xs\", className)}\n {...props}\n >\n <span className=\"text-muted-foreground\">Input</span>\n <TokensWithCost costText={inputCostText} tokens={inputTokens} />\n </div>\n );\n};\n\nexport type ContextOutputUsageProps = ComponentProps<\"div\">;\n\nexport const ContextOutputUsage = ({\n className,\n children,\n ...props\n}: ContextOutputUsageProps) => {\n const { usage, cost } = useContextValue();\n const outputTokens = usage?.outputTokens ?? 0;\n\n if (children) {\n return children;\n }\n\n if (!outputTokens) {\n return null;\n }\n\n const outputCostText = formatUSD(cost?.output);\n\n return (\n <div\n className={cn(\"flex items-center justify-between text-xs\", className)}\n {...props}\n >\n <span className=\"text-muted-foreground\">Output</span>\n <TokensWithCost costText={outputCostText} tokens={outputTokens} />\n </div>\n );\n};\n\nexport type ContextReasoningUsageProps = ComponentProps<\"div\">;\n\nexport const ContextReasoningUsage = ({\n className,\n children,\n ...props\n}: ContextReasoningUsageProps) => {\n const { usage, cost } = useContextValue();\n const reasoningTokens = usage?.reasoningTokens ?? 0;\n\n if (children) {\n return children;\n }\n\n if (!reasoningTokens) {\n return null;\n }\n\n const reasoningCostText = formatUSD(cost?.reasoning);\n\n return (\n <div\n className={cn(\"flex items-center justify-between text-xs\", className)}\n {...props}\n >\n <span className=\"text-muted-foreground\">Reasoning</span>\n <TokensWithCost costText={reasoningCostText} tokens={reasoningTokens} />\n </div>\n );\n};\n\nexport type ContextCacheUsageProps = ComponentProps<\"div\">;\n\nexport const ContextCacheUsage = ({\n className,\n children,\n ...props\n}: ContextCacheUsageProps) => {\n const { usage, cost } = useContextValue();\n const cacheTokens = usage?.cachedInputTokens ?? 0;\n\n if (children) {\n return children;\n }\n\n if (!cacheTokens) {\n return null;\n }\n\n const cacheCostText = formatUSD(cost?.cache);\n\n return (\n <div\n className={cn(\"flex items-center justify-between text-xs\", className)}\n {...props}\n >\n <span className=\"text-muted-foreground\">Cache</span>\n <TokensWithCost costText={cacheCostText} tokens={cacheTokens} />\n </div>\n );\n};\n"],"names":["PERCENT_MAX","ICON_RADIUS","ICON_VIEWBOX","ICON_CENTER","ICON_STROKE_WIDTH","WARN_THRESHOLD","DANGER_THRESHOLD","getUsageStatus","pct","STATUS_TEXT","STATUS_PROGRESS","USD_FORMAT","formatUSD","value","ContextContext","createContext","useContextValue","context","useContext","Context","usedTokens","maxTokens","usage","cost","props","contextValue","useMemo","jsx","HoverCard","ContextIcon","circumference","usedPercent","dashOffset","jsxs","ContextTrigger","children","showPercentage","status","renderedPercent","HoverCardTrigger","Button","cn","ContextContent","className","HoverCardContent","ContextContentHeader","displayPct","used","total","Fragment","Progress","ContextContentBody","ContextContentFooter","totalCost","TokensWithCost","tokens","costText","ContextInputUsage","inputTokens","inputCostText","ContextOutputUsage","outputTokens","outputCostText","ContextReasoningUsage","reasoningTokens","reasoningCostText","ContextCacheUsage","cacheTokens","cacheCostText"],"mappings":"iRAeMA,EAAc,IACdC,EAAc,GACdC,EAAe,GACfC,EAAc,GACdC,EAAoB,EACpBC,EAAiB,IACjBC,EAAmB,GAInBC,EAAkBC,GAClBA,GAAOF,EAAyB,SAChCE,GAAOH,EAAuB,UAC3B,SAGHI,EAA2C,CAC/C,OAAQ,wBACR,QAAS,eACT,OAAQ,kBACV,EAEMC,EAA+C,CACnD,OAAQ,GACR,QAAS,gDACT,OAAQ,mDACV,EAEMC,EAAa,IAAI,KAAK,aAAa,QAAS,CAChD,SAAU,MACV,MAAO,UACT,CAAC,EAEKC,EAAaC,GACjBA,IAAU,OAAY,OAAYF,EAAW,OAAOE,CAAK,EAiBrDC,EAAiBC,EAAAA,cAAoC,IAAI,EAEzDC,EAAkB,IAAM,CAC5B,MAAMC,EAAUC,EAAAA,WAAWJ,CAAc,EAEzC,GAAI,CAACG,EACH,MAAM,IAAI,MAAM,gDAAgD,EAGlE,OAAOA,CACT,EAIaE,EAAU,CAAC,CACtB,WAAAC,EACA,UAAAC,EACA,MAAAC,EACA,KAAAC,EACA,GAAGC,CACL,IAAoB,CAClB,MAAMC,EAAeC,EAAAA,QACnB,KAAO,CAAE,KAAAH,EAAM,UAAAF,EAAW,MAAAC,EAAO,WAAAF,CAAA,GACjC,CAACG,EAAMF,EAAWC,EAAOF,CAAU,CAAA,EAGrC,OACEO,EAAAA,IAACb,EAAe,SAAf,CAAwB,MAAOW,EAC9B,SAAAE,EAAAA,IAACC,EAAAA,UAAA,CAAU,WAAY,EAAG,UAAW,EAAI,GAAGJ,EAAO,EACrD,CAEJ,EAEMK,EAAc,IAAM,CACxB,KAAM,CAAE,WAAAT,EAAY,UAAAC,CAAA,EAAcL,EAAA,EAC5Bc,EAAgB,EAAI,KAAK,GAAK7B,EAC9B8B,EAAcX,EAAaC,EAC3BW,EAAaF,GAAiB,EAAIC,GAExC,OACEE,EAAAA,KAAC,MAAA,CACC,aAAW,sBACX,OAAO,KACP,KAAK,MACL,MAAO,CAAE,MAAO,cAAA,EAChB,QAAS,OAAO/B,CAAY,IAAIA,CAAY,GAC5C,MAAM,KAEN,SAAA,CAAAyB,EAAAA,IAAC,SAAA,CACC,GAAIxB,EACJ,GAAIA,EACJ,KAAK,OACL,QAAQ,OACR,EAAGF,EACH,OAAO,eACP,YAAaG,CAAA,CAAA,EAEfuB,EAAAA,IAAC,SAAA,CACC,GAAIxB,EACJ,GAAIA,EACJ,KAAK,OACL,QAAQ,MACR,EAAGF,EACH,OAAO,eACP,gBAAiB,GAAG6B,CAAa,IAAIA,CAAa,GAClD,iBAAkBE,EAClB,cAAc,QACd,YAAa5B,EACb,MAAO,CAAE,UAAW,iBAAkB,gBAAiB,QAAA,CAAS,CAAA,CAClE,CAAA,CAAA,CAGN,EAMa8B,EAAiB,CAAC,CAC7B,SAAAC,EACA,eAAAC,EAAiB,GACjB,GAAGZ,CACL,IAA2B,CACzB,KAAM,CAAE,WAAAJ,EAAY,UAAAC,CAAA,EAAcL,EAAA,EAC5Be,EAAcX,EAAaC,EAC3BgB,EAAS9B,EAAewB,CAAW,EACnCO,EAAkB,IAAI,KAAK,aAAa,QAAS,CACrD,sBAAuB,EACvB,MAAO,SAAA,CACR,EAAE,OAAOP,CAAW,EAErB,OACEJ,EAAAA,IAACY,EAAAA,iBAAA,CAAiB,QAAO,GACtB,SAAAJ,GACCF,EAAAA,KAACO,EAAAA,OAAA,CAAO,KAAK,SAAS,QAAQ,QAAS,GAAGhB,EACvC,SAAA,CAAAY,EACCT,EAAAA,IAAC,OAAA,CAAK,UAAWc,EAAAA,GAAG,cAAehC,EAAY4B,CAAM,CAAC,EACnD,SAAAC,CAAA,CACH,EACE,KACJX,EAAAA,IAAC,QAAK,UAAWlB,EAAY4B,CAAM,EACjC,SAAAV,EAAAA,IAACE,IAAY,CAAA,CACf,CAAA,CAAA,CACF,CAAA,CAEJ,CAEJ,EAIaa,EAAiB,CAAC,CAC7B,UAAAC,EACA,GAAGnB,CACL,IACEG,EAAAA,IAACiB,EAAAA,iBAAA,CACC,UAAWH,EAAAA,GAAG,wCAAyCE,CAAS,EAC/D,GAAGnB,CAAA,CACN,EAKWqB,EAAuB,CAAC,CACnC,SAAAV,EACA,UAAAQ,EACA,GAAGnB,CACL,IAAiC,CAC/B,KAAM,CAAE,WAAAJ,EAAY,UAAAC,CAAA,EAAcL,EAAA,EAC5Be,EAAcX,EAAaC,EAC3BgB,EAAS9B,EAAewB,CAAW,EACnCe,EAAa,IAAI,KAAK,aAAa,QAAS,CAChD,sBAAuB,EACvB,MAAO,SAAA,CACR,EAAE,OAAOf,CAAW,EACfgB,EAAO,IAAI,KAAK,aAAa,QAAS,CAC1C,SAAU,SAAA,CACX,EAAE,OAAO3B,CAAU,EACd4B,EAAQ,IAAI,KAAK,aAAa,QAAS,CAC3C,SAAU,SAAA,CACX,EAAE,OAAO3B,CAAS,EAEnB,OACEM,EAAAA,IAAC,MAAA,CAAI,UAAWc,EAAAA,GAAG,uBAAwBE,CAAS,EAAI,GAAGnB,EACxD,SAAAW,GACCF,EAAAA,KAAAgB,EAAAA,SAAA,CACE,SAAA,CAAAhB,EAAAA,KAAC,MAAA,CAAI,UAAU,kDACb,SAAA,CAAAN,MAAC,KAAE,UAAWc,EAAAA,GAAGhC,EAAY4B,CAAM,CAAC,EAAI,SAAAS,EAAW,EACnDb,EAAAA,KAAC,IAAA,CAAE,UAAU,kCACV,SAAA,CAAAc,EAAK,MAAIC,CAAA,CAAA,CACZ,CAAA,EACF,EACArB,EAAAA,IAAC,MAAA,CAAI,UAAU,YACb,SAAAA,EAAAA,IAACuB,EAAAA,SAAA,CACC,aAAW,uBACX,UAAWT,EAAAA,GAAG,WAAY/B,EAAgB2B,CAAM,CAAC,EACjD,MAAON,EAAc/B,CAAA,CAAA,CACvB,CACF,CAAA,CAAA,CACF,CAAA,CAEJ,CAEJ,EAIamD,EAAqB,CAAC,CACjC,SAAAhB,EACA,UAAAQ,EACA,GAAGnB,CACL,IACEG,EAAAA,IAAC,OAAI,UAAWc,EAAAA,GAAG,aAAcE,CAAS,EAAI,GAAGnB,EAC9C,SAAAW,CAAA,CACH,EAKWiB,EAAuB,CAAC,CACnC,SAAAjB,EACA,UAAAQ,EACA,GAAGnB,CACL,IAAiC,CAC/B,KAAM,CAAE,KAAAD,CAAA,EAASP,EAAA,EACXqC,EAAY9B,GAAM,QAAU,OAAY,IAAMZ,EAAW,OAAOY,EAAK,KAAK,EAEhF,OACEI,EAAAA,IAAC,MAAA,CACC,UAAWc,EAAAA,GACT,yEACAE,CAAA,EAED,GAAGnB,EAEH,YACCS,EAAAA,KAAAgB,EAAAA,SAAA,CACE,SAAA,CAAAtB,EAAAA,IAAC,OAAA,CAAK,UAAU,wBAAwB,SAAA,aAAU,EAClDA,EAAAA,IAAC,QAAM,SAAA0B,CAAA,CAAU,CAAA,CAAA,CACnB,CAAA,CAAA,CAIR,EAEMC,EAAiB,CAAC,CACtB,OAAAC,EACA,SAAAC,CACF,WAIG,OAAA,CACE,SAAA,CAAAD,IAAW,OACR,IACA,IAAI,KAAK,aAAa,QAAS,CAC7B,SAAU,SAAA,CACX,EAAE,OAAOA,CAAM,EACnBC,EACCvB,EAAAA,KAAC,OAAA,CAAK,UAAU,6BAA6B,SAAA,CAAA,KAAGuB,CAAA,CAAA,CAAS,EACvD,IAAA,EACN,EAKWC,EAAoB,CAAC,CAChC,UAAAd,EACA,SAAAR,EACA,GAAGX,CACL,IAA8B,CAC5B,KAAM,CAAE,MAAAF,EAAO,KAAAC,CAAA,EAASP,EAAA,EAClB0C,EAAcpC,GAAO,aAAe,EAE1C,GAAIa,EACF,OAAOA,EAGT,GAAI,CAACuB,EACH,OAAO,KAGT,MAAMC,EAAgB/C,EAAUW,GAAM,KAAK,EAE3C,OACEU,EAAAA,KAAC,MAAA,CACC,UAAWQ,EAAAA,GAAG,4CAA6CE,CAAS,EACnE,GAAGnB,EAEJ,SAAA,CAAAG,EAAAA,IAAC,OAAA,CAAK,UAAU,wBAAwB,SAAA,QAAK,EAC7CA,EAAAA,IAAC2B,EAAA,CAAe,SAAUK,EAAe,OAAQD,CAAA,CAAa,CAAA,CAAA,CAAA,CAGpE,EAIaE,EAAqB,CAAC,CACjC,UAAAjB,EACA,SAAAR,EACA,GAAGX,CACL,IAA+B,CAC7B,KAAM,CAAE,MAAAF,EAAO,KAAAC,CAAA,EAASP,EAAA,EAClB6C,EAAevC,GAAO,cAAgB,EAE5C,GAAIa,EACF,OAAOA,EAGT,GAAI,CAAC0B,EACH,OAAO,KAGT,MAAMC,EAAiBlD,EAAUW,GAAM,MAAM,EAE7C,OACEU,EAAAA,KAAC,MAAA,CACC,UAAWQ,EAAAA,GAAG,4CAA6CE,CAAS,EACnE,GAAGnB,EAEJ,SAAA,CAAAG,EAAAA,IAAC,OAAA,CAAK,UAAU,wBAAwB,SAAA,SAAM,EAC9CA,EAAAA,IAAC2B,EAAA,CAAe,SAAUQ,EAAgB,OAAQD,CAAA,CAAc,CAAA,CAAA,CAAA,CAGtE,EAIaE,EAAwB,CAAC,CACpC,UAAApB,EACA,SAAAR,EACA,GAAGX,CACL,IAAkC,CAChC,KAAM,CAAE,MAAAF,EAAO,KAAAC,CAAA,EAASP,EAAA,EAClBgD,EAAkB1C,GAAO,iBAAmB,EAElD,GAAIa,EACF,OAAOA,EAGT,GAAI,CAAC6B,EACH,OAAO,KAGT,MAAMC,EAAoBrD,EAAUW,GAAM,SAAS,EAEnD,OACEU,EAAAA,KAAC,MAAA,CACC,UAAWQ,EAAAA,GAAG,4CAA6CE,CAAS,EACnE,GAAGnB,EAEJ,SAAA,CAAAG,EAAAA,IAAC,OAAA,CAAK,UAAU,wBAAwB,SAAA,YAAS,EACjDA,EAAAA,IAAC2B,EAAA,CAAe,SAAUW,EAAmB,OAAQD,CAAA,CAAiB,CAAA,CAAA,CAAA,CAG5E,EAIaE,EAAoB,CAAC,CAChC,UAAAvB,EACA,SAAAR,EACA,GAAGX,CACL,IAA8B,CAC5B,KAAM,CAAE,MAAAF,EAAO,KAAAC,CAAA,EAASP,EAAA,EAClBmD,EAAc7C,GAAO,mBAAqB,EAEhD,GAAIa,EACF,OAAOA,EAGT,GAAI,CAACgC,EACH,OAAO,KAGT,MAAMC,EAAgBxD,EAAUW,GAAM,KAAK,EAE3C,OACEU,EAAAA,KAAC,MAAA,CACC,UAAWQ,EAAAA,GAAG,4CAA6CE,CAAS,EACnE,GAAGnB,EAEJ,SAAA,CAAAG,EAAAA,IAAC,OAAA,CAAK,UAAU,wBAAwB,SAAA,QAAK,EAC7CA,EAAAA,IAAC2B,EAAA,CAAe,SAAUc,EAAe,OAAQD,CAAA,CAAa,CAAA,CAAA,CAAA,CAGpE"}
|
|
@@ -0,0 +1,267 @@
|
|
|
1
|
+
import { jsx as n, jsxs as i, Fragment as T } from "react/jsx-runtime";
|
|
2
|
+
import { createContext as b, useMemo as S, useContext as I } from "react";
|
|
3
|
+
import { Button as U } from "../ui/button.js";
|
|
4
|
+
import { HoverCard as D, HoverCardContent as O, HoverCardTrigger as R } from "../ui/hover-card.js";
|
|
5
|
+
import { Progress as _ } from "../components/ui/progress.js";
|
|
6
|
+
import { cn as l } from "../lib/utils.js";
|
|
7
|
+
const E = 100, g = 10, C = 24, m = 12, h = 2, F = 0.75, P = 0.9, N = (t) => t >= P ? "danger" : t >= F ? "warning" : "normal", p = {
|
|
8
|
+
normal: "text-muted-foreground",
|
|
9
|
+
warning: "text-warning",
|
|
10
|
+
danger: "text-destructive"
|
|
11
|
+
}, H = {
|
|
12
|
+
normal: "",
|
|
13
|
+
warning: "[&_[data-slot=progress-indicator]]:bg-warning",
|
|
14
|
+
danger: "[&_[data-slot=progress-indicator]]:bg-destructive"
|
|
15
|
+
}, w = new Intl.NumberFormat("en-US", {
|
|
16
|
+
currency: "USD",
|
|
17
|
+
style: "currency"
|
|
18
|
+
}), d = (t) => t === void 0 ? void 0 : w.format(t), y = b(null), u = () => {
|
|
19
|
+
const t = I(y);
|
|
20
|
+
if (!t)
|
|
21
|
+
throw new Error("Context components must be used within Context");
|
|
22
|
+
return t;
|
|
23
|
+
}, V = ({
|
|
24
|
+
usedTokens: t,
|
|
25
|
+
maxTokens: e,
|
|
26
|
+
usage: o,
|
|
27
|
+
cost: s,
|
|
28
|
+
...c
|
|
29
|
+
}) => {
|
|
30
|
+
const r = S(
|
|
31
|
+
() => ({ cost: s, maxTokens: e, usage: o, usedTokens: t }),
|
|
32
|
+
[s, e, o, t]
|
|
33
|
+
);
|
|
34
|
+
return /* @__PURE__ */ n(y.Provider, { value: r, children: /* @__PURE__ */ n(D, { closeDelay: 0, openDelay: 0, ...c }) });
|
|
35
|
+
}, j = () => {
|
|
36
|
+
const { usedTokens: t, maxTokens: e } = u(), o = 2 * Math.PI * g, s = t / e, c = o * (1 - s);
|
|
37
|
+
return /* @__PURE__ */ i(
|
|
38
|
+
"svg",
|
|
39
|
+
{
|
|
40
|
+
"aria-label": "Model context usage",
|
|
41
|
+
height: "20",
|
|
42
|
+
role: "img",
|
|
43
|
+
style: { color: "currentcolor" },
|
|
44
|
+
viewBox: `0 0 ${C} ${C}`,
|
|
45
|
+
width: "20",
|
|
46
|
+
children: [
|
|
47
|
+
/* @__PURE__ */ n(
|
|
48
|
+
"circle",
|
|
49
|
+
{
|
|
50
|
+
cx: m,
|
|
51
|
+
cy: m,
|
|
52
|
+
fill: "none",
|
|
53
|
+
opacity: "0.25",
|
|
54
|
+
r: g,
|
|
55
|
+
stroke: "currentColor",
|
|
56
|
+
strokeWidth: h
|
|
57
|
+
}
|
|
58
|
+
),
|
|
59
|
+
/* @__PURE__ */ n(
|
|
60
|
+
"circle",
|
|
61
|
+
{
|
|
62
|
+
cx: m,
|
|
63
|
+
cy: m,
|
|
64
|
+
fill: "none",
|
|
65
|
+
opacity: "0.7",
|
|
66
|
+
r: g,
|
|
67
|
+
stroke: "currentColor",
|
|
68
|
+
strokeDasharray: `${o} ${o}`,
|
|
69
|
+
strokeDashoffset: c,
|
|
70
|
+
strokeLinecap: "round",
|
|
71
|
+
strokeWidth: h,
|
|
72
|
+
style: { transform: "rotate(-90deg)", transformOrigin: "center" }
|
|
73
|
+
}
|
|
74
|
+
)
|
|
75
|
+
]
|
|
76
|
+
}
|
|
77
|
+
);
|
|
78
|
+
}, X = ({
|
|
79
|
+
children: t,
|
|
80
|
+
showPercentage: e = !1,
|
|
81
|
+
...o
|
|
82
|
+
}) => {
|
|
83
|
+
const { usedTokens: s, maxTokens: c } = u(), r = s / c, a = N(r), f = new Intl.NumberFormat("en-US", {
|
|
84
|
+
maximumFractionDigits: 1,
|
|
85
|
+
style: "percent"
|
|
86
|
+
}).format(r);
|
|
87
|
+
return /* @__PURE__ */ n(R, { asChild: !0, children: t ?? /* @__PURE__ */ i(U, { type: "button", variant: "ghost", ...o, children: [
|
|
88
|
+
e ? /* @__PURE__ */ n("span", { className: l("font-medium", p[a]), children: f }) : null,
|
|
89
|
+
/* @__PURE__ */ n("span", { className: p[a], children: /* @__PURE__ */ n(j, {}) })
|
|
90
|
+
] }) });
|
|
91
|
+
}, G = ({
|
|
92
|
+
className: t,
|
|
93
|
+
...e
|
|
94
|
+
}) => /* @__PURE__ */ n(
|
|
95
|
+
O,
|
|
96
|
+
{
|
|
97
|
+
className: l("min-w-60 divide-y overflow-hidden p-0", t),
|
|
98
|
+
...e
|
|
99
|
+
}
|
|
100
|
+
), K = ({
|
|
101
|
+
children: t,
|
|
102
|
+
className: e,
|
|
103
|
+
...o
|
|
104
|
+
}) => {
|
|
105
|
+
const { usedTokens: s, maxTokens: c } = u(), r = s / c, a = N(r), f = new Intl.NumberFormat("en-US", {
|
|
106
|
+
maximumFractionDigits: 1,
|
|
107
|
+
style: "percent"
|
|
108
|
+
}).format(r), v = new Intl.NumberFormat("en-US", {
|
|
109
|
+
notation: "compact"
|
|
110
|
+
}).format(s), k = new Intl.NumberFormat("en-US", {
|
|
111
|
+
notation: "compact"
|
|
112
|
+
}).format(c);
|
|
113
|
+
return /* @__PURE__ */ n("div", { className: l("w-full space-y-2 p-3", e), ...o, children: t ?? /* @__PURE__ */ i(T, { children: [
|
|
114
|
+
/* @__PURE__ */ i("div", { className: "flex items-center justify-between gap-3 text-xs", children: [
|
|
115
|
+
/* @__PURE__ */ n("p", { className: l(p[a]), children: f }),
|
|
116
|
+
/* @__PURE__ */ i("p", { className: "font-mono text-muted-foreground", children: [
|
|
117
|
+
v,
|
|
118
|
+
" / ",
|
|
119
|
+
k
|
|
120
|
+
] })
|
|
121
|
+
] }),
|
|
122
|
+
/* @__PURE__ */ n("div", { className: "space-y-2", children: /* @__PURE__ */ n(
|
|
123
|
+
_,
|
|
124
|
+
{
|
|
125
|
+
"aria-label": "Context window usage",
|
|
126
|
+
className: l("bg-muted", H[a]),
|
|
127
|
+
value: r * E
|
|
128
|
+
}
|
|
129
|
+
) })
|
|
130
|
+
] }) });
|
|
131
|
+
}, q = ({
|
|
132
|
+
children: t,
|
|
133
|
+
className: e,
|
|
134
|
+
...o
|
|
135
|
+
}) => /* @__PURE__ */ n("div", { className: l("w-full p-3", e), ...o, children: t }), z = ({
|
|
136
|
+
children: t,
|
|
137
|
+
className: e,
|
|
138
|
+
...o
|
|
139
|
+
}) => {
|
|
140
|
+
const { cost: s } = u(), c = s?.total === void 0 ? "—" : w.format(s.total);
|
|
141
|
+
return /* @__PURE__ */ n(
|
|
142
|
+
"div",
|
|
143
|
+
{
|
|
144
|
+
className: l(
|
|
145
|
+
"flex w-full items-center justify-between gap-3 bg-muted/50 p-3 text-xs",
|
|
146
|
+
e
|
|
147
|
+
),
|
|
148
|
+
...o,
|
|
149
|
+
children: t ?? /* @__PURE__ */ i(T, { children: [
|
|
150
|
+
/* @__PURE__ */ n("span", { className: "text-muted-foreground", children: "Total cost" }),
|
|
151
|
+
/* @__PURE__ */ n("span", { children: c })
|
|
152
|
+
] })
|
|
153
|
+
}
|
|
154
|
+
);
|
|
155
|
+
}, x = ({
|
|
156
|
+
tokens: t,
|
|
157
|
+
costText: e
|
|
158
|
+
}) => /* @__PURE__ */ i("span", { children: [
|
|
159
|
+
t === void 0 ? "—" : new Intl.NumberFormat("en-US", {
|
|
160
|
+
notation: "compact"
|
|
161
|
+
}).format(t),
|
|
162
|
+
e ? /* @__PURE__ */ i("span", { className: "ml-2 text-muted-foreground", children: [
|
|
163
|
+
"• ",
|
|
164
|
+
e
|
|
165
|
+
] }) : null
|
|
166
|
+
] }), J = ({
|
|
167
|
+
className: t,
|
|
168
|
+
children: e,
|
|
169
|
+
...o
|
|
170
|
+
}) => {
|
|
171
|
+
const { usage: s, cost: c } = u(), r = s?.inputTokens ?? 0;
|
|
172
|
+
if (e)
|
|
173
|
+
return e;
|
|
174
|
+
if (!r)
|
|
175
|
+
return null;
|
|
176
|
+
const a = d(c?.input);
|
|
177
|
+
return /* @__PURE__ */ i(
|
|
178
|
+
"div",
|
|
179
|
+
{
|
|
180
|
+
className: l("flex items-center justify-between text-xs", t),
|
|
181
|
+
...o,
|
|
182
|
+
children: [
|
|
183
|
+
/* @__PURE__ */ n("span", { className: "text-muted-foreground", children: "Input" }),
|
|
184
|
+
/* @__PURE__ */ n(x, { costText: a, tokens: r })
|
|
185
|
+
]
|
|
186
|
+
}
|
|
187
|
+
);
|
|
188
|
+
}, Q = ({
|
|
189
|
+
className: t,
|
|
190
|
+
children: e,
|
|
191
|
+
...o
|
|
192
|
+
}) => {
|
|
193
|
+
const { usage: s, cost: c } = u(), r = s?.outputTokens ?? 0;
|
|
194
|
+
if (e)
|
|
195
|
+
return e;
|
|
196
|
+
if (!r)
|
|
197
|
+
return null;
|
|
198
|
+
const a = d(c?.output);
|
|
199
|
+
return /* @__PURE__ */ i(
|
|
200
|
+
"div",
|
|
201
|
+
{
|
|
202
|
+
className: l("flex items-center justify-between text-xs", t),
|
|
203
|
+
...o,
|
|
204
|
+
children: [
|
|
205
|
+
/* @__PURE__ */ n("span", { className: "text-muted-foreground", children: "Output" }),
|
|
206
|
+
/* @__PURE__ */ n(x, { costText: a, tokens: r })
|
|
207
|
+
]
|
|
208
|
+
}
|
|
209
|
+
);
|
|
210
|
+
}, Y = ({
|
|
211
|
+
className: t,
|
|
212
|
+
children: e,
|
|
213
|
+
...o
|
|
214
|
+
}) => {
|
|
215
|
+
const { usage: s, cost: c } = u(), r = s?.reasoningTokens ?? 0;
|
|
216
|
+
if (e)
|
|
217
|
+
return e;
|
|
218
|
+
if (!r)
|
|
219
|
+
return null;
|
|
220
|
+
const a = d(c?.reasoning);
|
|
221
|
+
return /* @__PURE__ */ i(
|
|
222
|
+
"div",
|
|
223
|
+
{
|
|
224
|
+
className: l("flex items-center justify-between text-xs", t),
|
|
225
|
+
...o,
|
|
226
|
+
children: [
|
|
227
|
+
/* @__PURE__ */ n("span", { className: "text-muted-foreground", children: "Reasoning" }),
|
|
228
|
+
/* @__PURE__ */ n(x, { costText: a, tokens: r })
|
|
229
|
+
]
|
|
230
|
+
}
|
|
231
|
+
);
|
|
232
|
+
}, Z = ({
|
|
233
|
+
className: t,
|
|
234
|
+
children: e,
|
|
235
|
+
...o
|
|
236
|
+
}) => {
|
|
237
|
+
const { usage: s, cost: c } = u(), r = s?.cachedInputTokens ?? 0;
|
|
238
|
+
if (e)
|
|
239
|
+
return e;
|
|
240
|
+
if (!r)
|
|
241
|
+
return null;
|
|
242
|
+
const a = d(c?.cache);
|
|
243
|
+
return /* @__PURE__ */ i(
|
|
244
|
+
"div",
|
|
245
|
+
{
|
|
246
|
+
className: l("flex items-center justify-between text-xs", t),
|
|
247
|
+
...o,
|
|
248
|
+
children: [
|
|
249
|
+
/* @__PURE__ */ n("span", { className: "text-muted-foreground", children: "Cache" }),
|
|
250
|
+
/* @__PURE__ */ n(x, { costText: a, tokens: r })
|
|
251
|
+
]
|
|
252
|
+
}
|
|
253
|
+
);
|
|
254
|
+
};
|
|
255
|
+
export {
|
|
256
|
+
V as Context,
|
|
257
|
+
Z as ContextCacheUsage,
|
|
258
|
+
G as ContextContent,
|
|
259
|
+
q as ContextContentBody,
|
|
260
|
+
z as ContextContentFooter,
|
|
261
|
+
K as ContextContentHeader,
|
|
262
|
+
J as ContextInputUsage,
|
|
263
|
+
Q as ContextOutputUsage,
|
|
264
|
+
Y as ContextReasoningUsage,
|
|
265
|
+
X as ContextTrigger
|
|
266
|
+
};
|
|
267
|
+
//# sourceMappingURL=context.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"context.js","sources":["../../src/components/ai/context.tsx"],"sourcesContent":["import { createContext, useContext, useMemo } from \"react\";\n\nimport type { LanguageModelUsage } from \"ai\";\nimport type { ComponentProps } from \"react\";\n\nimport { Button } from \"@/components/ui/button\";\nimport {\n HoverCard,\n HoverCardContent,\n HoverCardTrigger,\n} from \"@/components/ui/hover-card\";\nimport { Progress } from \"@/components/ui/progress\";\nimport { cn } from \"@/lib/utils\";\n\n\nconst PERCENT_MAX = 100;\nconst ICON_RADIUS = 10;\nconst ICON_VIEWBOX = 24;\nconst ICON_CENTER = 12;\nconst ICON_STROKE_WIDTH = 2;\nconst WARN_THRESHOLD = 0.75;\nconst DANGER_THRESHOLD = 0.9;\n\ntype UsageStatus = \"normal\" | \"warning\" | \"danger\";\n\nconst getUsageStatus = (pct: number): UsageStatus => {\n if (pct >= DANGER_THRESHOLD) return \"danger\";\n if (pct >= WARN_THRESHOLD) return \"warning\";\n return \"normal\";\n};\n\nconst STATUS_TEXT: Record<UsageStatus, string> = {\n normal: \"text-muted-foreground\",\n warning: \"text-warning\",\n danger: \"text-destructive\",\n};\n\nconst STATUS_PROGRESS: Record<UsageStatus, string> = {\n normal: \"\",\n warning: \"[&_[data-slot=progress-indicator]]:bg-warning\",\n danger: \"[&_[data-slot=progress-indicator]]:bg-destructive\",\n};\n\nconst USD_FORMAT = new Intl.NumberFormat(\"en-US\", {\n currency: \"USD\",\n style: \"currency\",\n});\n\nconst formatUSD = (value: number | undefined): string | undefined =>\n value === undefined ? undefined : USD_FORMAT.format(value);\n\nexport interface CostBreakdown {\n total?: number;\n input?: number;\n output?: number;\n reasoning?: number;\n cache?: number;\n}\n\ninterface ContextSchema {\n usedTokens: number;\n maxTokens: number;\n usage?: LanguageModelUsage;\n cost?: CostBreakdown;\n}\n\nconst ContextContext = createContext<ContextSchema | null>(null);\n\nconst useContextValue = () => {\n const context = useContext(ContextContext);\n\n if (!context) {\n throw new Error(\"Context components must be used within Context\");\n }\n\n return context;\n};\n\nexport type ContextProps = ComponentProps<typeof HoverCard> & ContextSchema;\n\nexport const Context = ({\n usedTokens,\n maxTokens,\n usage,\n cost,\n ...props\n}: ContextProps) => {\n const contextValue = useMemo(\n () => ({ cost, maxTokens, usage, usedTokens }),\n [cost, maxTokens, usage, usedTokens]\n );\n\n return (\n <ContextContext.Provider value={contextValue}>\n <HoverCard closeDelay={0} openDelay={0} {...props} />\n </ContextContext.Provider>\n );\n};\n\nconst ContextIcon = () => {\n const { usedTokens, maxTokens } = useContextValue();\n const circumference = 2 * Math.PI * ICON_RADIUS;\n const usedPercent = usedTokens / maxTokens;\n const dashOffset = circumference * (1 - usedPercent);\n\n return (\n <svg\n aria-label=\"Model context usage\"\n height=\"20\"\n role=\"img\"\n style={{ color: \"currentcolor\" }}\n viewBox={`0 0 ${ICON_VIEWBOX} ${ICON_VIEWBOX}`}\n width=\"20\"\n >\n <circle\n cx={ICON_CENTER}\n cy={ICON_CENTER}\n fill=\"none\"\n opacity=\"0.25\"\n r={ICON_RADIUS}\n stroke=\"currentColor\"\n strokeWidth={ICON_STROKE_WIDTH}\n />\n <circle\n cx={ICON_CENTER}\n cy={ICON_CENTER}\n fill=\"none\"\n opacity=\"0.7\"\n r={ICON_RADIUS}\n stroke=\"currentColor\"\n strokeDasharray={`${circumference} ${circumference}`}\n strokeDashoffset={dashOffset}\n strokeLinecap=\"round\"\n strokeWidth={ICON_STROKE_WIDTH}\n style={{ transform: \"rotate(-90deg)\", transformOrigin: \"center\" }}\n />\n </svg>\n );\n};\n\nexport type ContextTriggerProps = ComponentProps<typeof Button> & {\n showPercentage?: boolean;\n};\n\nexport const ContextTrigger = ({\n children,\n showPercentage = false,\n ...props\n}: ContextTriggerProps) => {\n const { usedTokens, maxTokens } = useContextValue();\n const usedPercent = usedTokens / maxTokens;\n const status = getUsageStatus(usedPercent);\n const renderedPercent = new Intl.NumberFormat(\"en-US\", {\n maximumFractionDigits: 1,\n style: \"percent\",\n }).format(usedPercent);\n\n return (\n <HoverCardTrigger asChild>\n {children ?? (\n <Button type=\"button\" variant=\"ghost\" {...props}>\n {showPercentage ? (\n <span className={cn(\"font-medium\", STATUS_TEXT[status])}>\n {renderedPercent}\n </span>\n ) : null}\n <span className={STATUS_TEXT[status]}>\n <ContextIcon />\n </span>\n </Button>\n )}\n </HoverCardTrigger>\n );\n};\n\nexport type ContextContentProps = ComponentProps<typeof HoverCardContent>;\n\nexport const ContextContent = ({\n className,\n ...props\n}: ContextContentProps) => (\n <HoverCardContent\n className={cn(\"min-w-60 divide-y overflow-hidden p-0\", className)}\n {...props}\n />\n);\n\nexport type ContextContentHeaderProps = ComponentProps<\"div\">;\n\nexport const ContextContentHeader = ({\n children,\n className,\n ...props\n}: ContextContentHeaderProps) => {\n const { usedTokens, maxTokens } = useContextValue();\n const usedPercent = usedTokens / maxTokens;\n const status = getUsageStatus(usedPercent);\n const displayPct = new Intl.NumberFormat(\"en-US\", {\n maximumFractionDigits: 1,\n style: \"percent\",\n }).format(usedPercent);\n const used = new Intl.NumberFormat(\"en-US\", {\n notation: \"compact\",\n }).format(usedTokens);\n const total = new Intl.NumberFormat(\"en-US\", {\n notation: \"compact\",\n }).format(maxTokens);\n\n return (\n <div className={cn(\"w-full space-y-2 p-3\", className)} {...props}>\n {children ?? (\n <>\n <div className=\"flex items-center justify-between gap-3 text-xs\">\n <p className={cn(STATUS_TEXT[status])}>{displayPct}</p>\n <p className=\"font-mono text-muted-foreground\">\n {used} / {total}\n </p>\n </div>\n <div className=\"space-y-2\">\n <Progress\n aria-label=\"Context window usage\"\n className={cn(\"bg-muted\", STATUS_PROGRESS[status])}\n value={usedPercent * PERCENT_MAX}\n />\n </div>\n </>\n )}\n </div>\n );\n};\n\nexport type ContextContentBodyProps = ComponentProps<\"div\">;\n\nexport const ContextContentBody = ({\n children,\n className,\n ...props\n}: ContextContentBodyProps) => (\n <div className={cn(\"w-full p-3\", className)} {...props}>\n {children}\n </div>\n);\n\nexport type ContextContentFooterProps = ComponentProps<\"div\">;\n\nexport const ContextContentFooter = ({\n children,\n className,\n ...props\n}: ContextContentFooterProps) => {\n const { cost } = useContextValue();\n const totalCost = cost?.total === undefined ? \"—\" : USD_FORMAT.format(cost.total);\n\n return (\n <div\n className={cn(\n \"flex w-full items-center justify-between gap-3 bg-muted/50 p-3 text-xs\",\n className\n )}\n {...props}\n >\n {children ?? (\n <>\n <span className=\"text-muted-foreground\">Total cost</span>\n <span>{totalCost}</span>\n </>\n )}\n </div>\n );\n};\n\nconst TokensWithCost = ({\n tokens,\n costText,\n}: {\n tokens?: number;\n costText?: string;\n}) => (\n <span>\n {tokens === undefined\n ? \"—\"\n : new Intl.NumberFormat(\"en-US\", {\n notation: \"compact\",\n }).format(tokens)}\n {costText ? (\n <span className=\"ml-2 text-muted-foreground\">• {costText}</span>\n ) : null}\n </span>\n);\n\nexport type ContextInputUsageProps = ComponentProps<\"div\">;\n\nexport const ContextInputUsage = ({\n className,\n children,\n ...props\n}: ContextInputUsageProps) => {\n const { usage, cost } = useContextValue();\n const inputTokens = usage?.inputTokens ?? 0;\n\n if (children) {\n return children;\n }\n\n if (!inputTokens) {\n return null;\n }\n\n const inputCostText = formatUSD(cost?.input);\n\n return (\n <div\n className={cn(\"flex items-center justify-between text-xs\", className)}\n {...props}\n >\n <span className=\"text-muted-foreground\">Input</span>\n <TokensWithCost costText={inputCostText} tokens={inputTokens} />\n </div>\n );\n};\n\nexport type ContextOutputUsageProps = ComponentProps<\"div\">;\n\nexport const ContextOutputUsage = ({\n className,\n children,\n ...props\n}: ContextOutputUsageProps) => {\n const { usage, cost } = useContextValue();\n const outputTokens = usage?.outputTokens ?? 0;\n\n if (children) {\n return children;\n }\n\n if (!outputTokens) {\n return null;\n }\n\n const outputCostText = formatUSD(cost?.output);\n\n return (\n <div\n className={cn(\"flex items-center justify-between text-xs\", className)}\n {...props}\n >\n <span className=\"text-muted-foreground\">Output</span>\n <TokensWithCost costText={outputCostText} tokens={outputTokens} />\n </div>\n );\n};\n\nexport type ContextReasoningUsageProps = ComponentProps<\"div\">;\n\nexport const ContextReasoningUsage = ({\n className,\n children,\n ...props\n}: ContextReasoningUsageProps) => {\n const { usage, cost } = useContextValue();\n const reasoningTokens = usage?.reasoningTokens ?? 0;\n\n if (children) {\n return children;\n }\n\n if (!reasoningTokens) {\n return null;\n }\n\n const reasoningCostText = formatUSD(cost?.reasoning);\n\n return (\n <div\n className={cn(\"flex items-center justify-between text-xs\", className)}\n {...props}\n >\n <span className=\"text-muted-foreground\">Reasoning</span>\n <TokensWithCost costText={reasoningCostText} tokens={reasoningTokens} />\n </div>\n );\n};\n\nexport type ContextCacheUsageProps = ComponentProps<\"div\">;\n\nexport const ContextCacheUsage = ({\n className,\n children,\n ...props\n}: ContextCacheUsageProps) => {\n const { usage, cost } = useContextValue();\n const cacheTokens = usage?.cachedInputTokens ?? 0;\n\n if (children) {\n return children;\n }\n\n if (!cacheTokens) {\n return null;\n }\n\n const cacheCostText = formatUSD(cost?.cache);\n\n return (\n <div\n className={cn(\"flex items-center justify-between text-xs\", className)}\n {...props}\n >\n <span className=\"text-muted-foreground\">Cache</span>\n <TokensWithCost costText={cacheCostText} tokens={cacheTokens} />\n </div>\n );\n};\n"],"names":["PERCENT_MAX","ICON_RADIUS","ICON_VIEWBOX","ICON_CENTER","ICON_STROKE_WIDTH","WARN_THRESHOLD","DANGER_THRESHOLD","getUsageStatus","pct","STATUS_TEXT","STATUS_PROGRESS","USD_FORMAT","formatUSD","value","ContextContext","createContext","useContextValue","context","useContext","Context","usedTokens","maxTokens","usage","cost","props","contextValue","useMemo","jsx","HoverCard","ContextIcon","circumference","usedPercent","dashOffset","jsxs","ContextTrigger","children","showPercentage","status","renderedPercent","HoverCardTrigger","Button","cn","ContextContent","className","HoverCardContent","ContextContentHeader","displayPct","used","total","Fragment","Progress","ContextContentBody","ContextContentFooter","totalCost","TokensWithCost","tokens","costText","ContextInputUsage","inputTokens","inputCostText","ContextOutputUsage","outputTokens","outputCostText","ContextReasoningUsage","reasoningTokens","reasoningCostText","ContextCacheUsage","cacheTokens","cacheCostText"],"mappings":"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"}
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const o=require("react/jsx-runtime"),u=require("lucide-react"),m=require("react"),i=require("use-stick-to-bottom"),x=require("../ui/button.cjs"),c=require("../lib/utils.cjs"),j=({className:e,...t})=>o.jsx(i.StickToBottom,{className:c.cn("relative flex-1 overflow-y-hidden",e),initial:"smooth",resize:"smooth",role:"log",...t}),C=({className:e,...t})=>o.jsx(i.StickToBottom.Content,{className:c.cn("flex flex-col gap-8 p-4",e),...t}),g=({className:e,title:t="No messages yet",description:n="Start a conversation to see messages here",icon:s,children:r,...l})=>o.jsx("div",{className:c.cn("flex size-full flex-col items-center justify-center gap-3 p-8 text-center",e),...l,children:r??o.jsxs(o.Fragment,{children:[s&&o.jsx("div",{className:"text-muted-foreground",children:s}),o.jsxs("div",{className:"space-y-1",children:[o.jsx("h3",{className:"font-medium text-sm",children:t}),n&&o.jsx("p",{className:"text-muted-foreground text-sm",children:n})]})]})}),f=({className:e,...t})=>{const{isAtBottom:n,scrollToBottom:s}=i.useStickToBottomContext(),r=m.useCallback(()=>{s()},[s]);return!n&&o.jsx(x.Button,{className:c.cn("absolute bottom-4 left-[50%] translate-x-[-50%] rounded-full dark:bg-background dark:hover:bg-accent",e),onClick:r,size:"icon",type:"button",variant:"outline",...t,children:o.jsx(u.ArrowDownIcon,{className:"size-4"})})},w=e=>e.parts.filter(t=>t.type==="text").map(t=>t.text).join(""),b=e=>`**${e.role.charAt(0).toUpperCase()+e.role.slice(1)}:** ${w(e)}`,v=(e,t=b)=>e.map((n,s)=>t(n,s)).join(`
|
|
2
|
+
|
|
3
|
+
`),y=({messages:e,filename:t="conversation.md",formatMessage:n=b,className:s,children:r,...l})=>{const k=m.useCallback(()=>{const h=v(e,n),p=new Blob([h],{type:"text/markdown"}),d=URL.createObjectURL(p),a=document.createElement("a");a.href=d,a.download=t,document.body.append(a),a.click(),a.remove(),URL.revokeObjectURL(d)},[e,t,n]);return o.jsx(x.Button,{className:c.cn("absolute top-4 right-4 rounded-full dark:bg-background dark:hover:bg-accent",s),onClick:k,size:"icon",type:"button",variant:"outline",...l,children:r??o.jsx(u.DownloadIcon,{className:"size-4"})})};exports.Conversation=j;exports.ConversationContent=C;exports.ConversationDownload=y;exports.ConversationEmptyState=g;exports.ConversationScrollButton=f;exports.messagesToMarkdown=v;
|
|
4
|
+
//# sourceMappingURL=conversation.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"conversation.cjs","sources":["../../src/components/ai/conversation.tsx"],"sourcesContent":["import { ArrowDownIcon, DownloadIcon } from \"lucide-react\";\nimport { useCallback } from \"react\";\nimport { StickToBottom, useStickToBottomContext } from \"use-stick-to-bottom\";\n\nimport type { UIMessage } from \"ai\";\nimport type { ComponentProps } from \"react\";\n\nimport { Button } from \"@/components/ui/button\";\nimport { cn } from \"@/lib/utils\";\n\nexport type ConversationProps = ComponentProps<typeof StickToBottom>;\n\nexport const Conversation = ({ className, ...props }: ConversationProps) => (\n <StickToBottom\n className={cn(\"relative flex-1 overflow-y-hidden\", className)}\n initial=\"smooth\"\n resize=\"smooth\"\n role=\"log\"\n {...props}\n />\n);\n\nexport type ConversationContentProps = ComponentProps<\n typeof StickToBottom.Content\n>;\n\nexport const ConversationContent = ({\n className,\n ...props\n}: ConversationContentProps) => (\n <StickToBottom.Content\n className={cn(\"flex flex-col gap-8 p-4\", className)}\n {...props}\n />\n);\n\nexport type ConversationEmptyStateProps = ComponentProps<\"div\"> & {\n title?: string;\n description?: string;\n icon?: React.ReactNode;\n};\n\nexport const ConversationEmptyState = ({\n className,\n title = \"No messages yet\",\n description = \"Start a conversation to see messages here\",\n icon,\n children,\n ...props\n}: ConversationEmptyStateProps) => (\n <div\n className={cn(\n \"flex size-full flex-col items-center justify-center gap-3 p-8 text-center\",\n className\n )}\n {...props}\n >\n {children ?? (\n <>\n {icon && <div className=\"text-muted-foreground\">{icon}</div>}\n <div className=\"space-y-1\">\n <h3 className=\"font-medium text-sm\">{title}</h3>\n {description && (\n <p className=\"text-muted-foreground text-sm\">{description}</p>\n )}\n </div>\n </>\n )}\n </div>\n);\n\nexport type ConversationScrollButtonProps = ComponentProps<typeof Button>;\n\nexport const ConversationScrollButton = ({\n className,\n ...props\n}: ConversationScrollButtonProps) => {\n const { isAtBottom, scrollToBottom } = useStickToBottomContext();\n\n const handleScrollToBottom = useCallback(() => {\n scrollToBottom();\n }, [scrollToBottom]);\n\n return (\n !isAtBottom && (\n <Button\n className={cn(\n \"absolute bottom-4 left-[50%] translate-x-[-50%] rounded-full dark:bg-background dark:hover:bg-accent\",\n className\n )}\n onClick={handleScrollToBottom}\n size=\"icon\"\n type=\"button\"\n variant=\"outline\"\n {...props}\n >\n <ArrowDownIcon className=\"size-4\" />\n </Button>\n )\n );\n};\n\nconst getMessageText = (message: UIMessage): string =>\n message.parts\n .filter((part) => part.type === \"text\")\n .map((part) => part.text)\n .join(\"\");\n\nexport type ConversationDownloadProps = Omit<\n ComponentProps<typeof Button>,\n \"onClick\"\n> & {\n messages: UIMessage[];\n filename?: string;\n formatMessage?: (message: UIMessage, index: number) => string;\n};\n\nconst defaultFormatMessage = (message: UIMessage): string => {\n const roleLabel =\n message.role.charAt(0).toUpperCase() + message.role.slice(1);\n return `**${roleLabel}:** ${getMessageText(message)}`;\n};\n\nexport const messagesToMarkdown = (\n messages: UIMessage[],\n formatMessage: (\n message: UIMessage,\n index: number\n ) => string = defaultFormatMessage\n): string => messages.map((msg, i) => formatMessage(msg, i)).join(\"\\n\\n\");\n\nexport const ConversationDownload = ({\n messages,\n filename = \"conversation.md\",\n formatMessage = defaultFormatMessage,\n className,\n children,\n ...props\n}: ConversationDownloadProps) => {\n const handleDownload = useCallback(() => {\n const markdown = messagesToMarkdown(messages, formatMessage);\n const blob = new Blob([markdown], { type: \"text/markdown\" });\n const url = URL.createObjectURL(blob);\n const link = document.createElement(\"a\");\n link.href = url;\n link.download = filename;\n document.body.append(link);\n link.click();\n link.remove();\n URL.revokeObjectURL(url);\n }, [messages, filename, formatMessage]);\n\n return (\n <Button\n className={cn(\n \"absolute top-4 right-4 rounded-full dark:bg-background dark:hover:bg-accent\",\n className\n )}\n onClick={handleDownload}\n size=\"icon\"\n type=\"button\"\n variant=\"outline\"\n {...props}\n >\n {children ?? <DownloadIcon className=\"size-4\" />}\n </Button>\n );\n};\n"],"names":["Conversation","className","props","jsx","StickToBottom","cn","ConversationContent","ConversationEmptyState","title","description","icon","children","jsxs","Fragment","ConversationScrollButton","isAtBottom","scrollToBottom","useStickToBottomContext","handleScrollToBottom","useCallback","Button","ArrowDownIcon","getMessageText","message","part","defaultFormatMessage","messagesToMarkdown","messages","formatMessage","msg","i","ConversationDownload","filename","handleDownload","markdown","blob","url","link","DownloadIcon"],"mappings":"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"}
|