@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,4 @@
|
|
|
1
|
+
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const i=require("react/jsx-runtime");function u(e){const t=e,o=new Map;return t.on=(s,r)=>{const n=o.get(s)??new Set;n.add(r),o.set(s,n)},t.once=(s,r)=>{const n=j=>{t.removeListener(s,n),r(j)};t.on(s,n)},t.removeListener=(s,r)=>{o.get(s)?.delete(r)},t.removeAllListeners=s=>{s?o.delete(s):o.clear()},t.emit=(s,r)=>{for(const n of o.get(s)??[])n(r)},t}const f={newPlot:e=>Promise.resolve(u(e)),react:e=>Promise.resolve(u(e)),relayout:e=>Promise.resolve(e),restyle:e=>Promise.resolve(e),update:e=>Promise.resolve(e),addTraces:e=>Promise.resolve(e),deleteTraces:e=>Promise.resolve(e),extendTraces:e=>Promise.resolve(e),purge:()=>{},setPlotConfig:()=>{},toImage:()=>Promise.resolve("data:image/png;base64,"),downloadImage:()=>Promise.resolve("mock-download"),Plots:{resize:()=>Promise.resolve()}},b={get_mol:e=>({is_valid:()=>!0,get_svg_with_highlights:()=>`<?xml version='1.0' encoding='iso-8859-1'?>
|
|
2
|
+
<svg data-smiles="${e}"></svg>`,delete:()=>{}})},p=()=>Promise.resolve(b);function l({children:e,className:t}){return i.jsx("div",{"data-slot":"streamdown-mock",className:t,children:e})}const a=()=>({});function R({children:e,className:t,style:o,role:s}){return i.jsx("div",{"data-slot":"stick-to-bottom-mock",className:t,style:o,role:s,children:e})}function C({children:e,className:t,style:o}){return i.jsx("div",{"data-slot":"stick-to-bottom-content-mock",className:t,style:o,children:e})}const S=Object.assign(R,{Content:C}),g={isAtBottom:!0,scrollToBottom:()=>{},stopScroll:()=>{}};function v(){return g}function k(){return{...g,scrollRef:()=>{},contentRef:()=>{}}}function c({children:e,className:t,style:o}){return i.jsx("div",{"data-slot":"resizable-group-mock",className:t,style:o,children:e})}function h({children:e,className:t,style:o}){return i.jsx("div",{"data-slot":"resizable-panel-mock",className:t,style:o,children:e})}function d({children:e,className:t,style:o}){return i.jsx("div",{"data-slot":"resizable-separator-mock",role:"separator",className:t,style:o,children:e})}function x(e){return e.replace(/&/g,"&").replace(/</g,"<").replace(/>/g,">")}function P(){return Promise.resolve({codeToTokens:e=>({bg:"transparent",fg:"inherit",tokens:e.split(`
|
|
3
|
+
`).map(t=>[{content:t,color:"inherit"}])}),codeToHtml:e=>`<pre><code>${x(e)}</code></pre>`,loadLanguage:()=>Promise.resolve(),getLoadedLanguages:()=>[],dispose:()=>{}})}const w=["bash","javascript","json","markdown","python","sql","tsx","typescript","yaml"];function y(e){const t=(o,s)=>{try{e.mock(o,s)}catch{e.mock(o,s,{virtual:!0})}};t("plotly.js-dist",()=>f),t("@rdkit/rdkit",()=>p),t("streamdown",()=>({Streamdown:l,default:l})),t("use-stick-to-bottom",()=>({StickToBottom:S,useStickToBottomContext:v,useStickToBottom:k})),t("react-resizable-panels",()=>({Group:c,Panel:h,Separator:d,PanelGroup:c,PanelResizeHandle:d})),t("@streamdown/cjk",()=>({cjk:a})),t("@streamdown/math",()=>({math:a})),t("@streamdown/mermaid",()=>({mermaid:a})),t("shiki/core",()=>({createHighlighterCore:P})),t("shiki/engine/javascript",()=>({createJavaScriptRegexEngine:()=>({})})),t("@shikijs/themes/github-light",()=>({})),t("@shikijs/themes/github-dark",()=>({}));for(const o of w)t(`@shikijs/langs/${o}`,()=>[])}class z{observe(){}unobserve(){}disconnect(){}}class B{root=null;rootMargin="";thresholds=[];observe(){}unobserve(){}disconnect(){}takeRecords(){return[]}}function T(){const e=globalThis;if(typeof e.ResizeObserver>"u"&&(e.ResizeObserver=z),typeof e.IntersectionObserver>"u"&&(e.IntersectionObserver=B),typeof window>"u")return;typeof window.matchMedia>"u"&&(window.matchMedia=o=>({matches:!1,media:o,onchange:null,addListener:()=>{},removeListener:()=>{},addEventListener:()=>{},removeEventListener:()=>{},dispatchEvent:()=>!1}));const t=window.Element.prototype;typeof t.scrollIntoView>"u"&&(t.scrollIntoView=()=>{}),typeof t.scrollTo>"u"&&(t.scrollTo=()=>{}),typeof t.hasPointerCapture>"u"&&(t.hasPointerCapture=()=>!1),typeof t.setPointerCapture>"u"&&(t.setPointerCapture=()=>{}),typeof t.releasePointerCapture>"u"&&(t.releasePointerCapture=()=>{})}const m=typeof jest<"u"&&jest&&typeof jest.mock=="function"?jest:void 0;m&&(T(),y(m));exports.KIT_SHIKI_LANGUAGES=w;exports.ResizableGroupStub=c;exports.ResizablePanelStub=h;exports.ResizableSeparatorStub=d;exports.StickToBottomStub=S;exports.StreamdownStub=l;exports.createHighlighterCoreStub=P;exports.installUiKitDomShims=T;exports.installUiKitJestMocks=y;exports.plotlyStub=f;exports.rdkitFactoryStub=p;exports.rdkitModuleStub=b;exports.streamdownPluginStub=a;exports.useStickToBottomContextStub=v;exports.useStickToBottomStub=k;
|
|
4
|
+
//# sourceMappingURL=jest-setup.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"jest-setup.cjs","sources":["../src/jest-setup.tsx"],"sourcesContent":["/**\n * Single-file Jest support for consumers. Add one line to jest.config:\n *\n * module.exports = {\n * testEnvironment: \"jsdom\",\n * setupFiles: [\"@tetrascience-npm/tetrascience-react-ui/jest-setup\"],\n * };\n *\n * The kit ships dual ESM + CJS output, so Jest's CommonJS runtime loads every\n * kit module directly. What Jest cannot load are the few third-party deps\n * that publish ESM-only (streamdown, use-stick-to-bottom,\n * react-resizable-panels, shiki/@shikijs) and the optional peers a consumer\n * may not have installed (plotly.js-dist, @streamdown/math|mermaid). On\n * import this file registers lightweight functional stubs for exactly those\n * via `jest.mock(id, factory)` and installs the jsdom shims Radix-based\n * components need. Everything else in the kit runs for real.\n *\n * Registration strategy: non-virtual first — Jest then keys the mock by the\n * resolved module path, which matches what kit modules load because this\n * file ships inside the kit package (same dependency context under npm and\n * pnpm layouts alike). When resolution fails — the package publishes\n * `import`-only exports Jest's CJS resolver can't see (e.g. streamdown), or\n * it's an optional peer that isn't installed — fall back to\n * `{ virtual: true }`: virtual mocks of bare specifiers are keyed by the\n * specifier itself, so they intercept the kit's `require` without any\n * resolution.\n *\n * Overrides: a consumer's own `jest.mock(\"<id>\", …)` — in a test file or a\n * later setup file — replaces any registration made here.\n *\n * Maintenance: when the kit gains a static import of a new ESM-only package\n * (`\"type\": \"module\"`, no `require` export condition), add a registration\n * here or Jest consumers regress to `ERR_REQUIRE_ESM`.\n */\nimport type { CSSProperties, ReactNode } from \"react\";\n\n// ---------------------------------------------------------------------------\n// Plotly stub — jsdom has no layout or WebGL, so chart tests assert on the\n// calls the kit makes into Plotly rather than on rendered output. `newPlot`/\n// `react` attach the plot-event API to the target element (kit code registers\n// hover/click handlers on it) and resolve it; tests can fire those handlers\n// through the element's `emit`.\n// ---------------------------------------------------------------------------\n\ntype PlotHandler = (payload: unknown) => void;\n\nexport interface MockPlotElement extends HTMLElement {\n on: (event: string, handler: PlotHandler) => void;\n once: (event: string, handler: PlotHandler) => void;\n removeListener: (event: string, handler: PlotHandler) => void;\n removeAllListeners: (event?: string) => void;\n emit: (event: string, payload?: unknown) => void;\n}\n\nfunction attachPlotEvents(el: HTMLElement): MockPlotElement {\n const plotEl = el as MockPlotElement;\n const listeners = new Map<string, Set<PlotHandler>>();\n\n plotEl.on = (event, handler) => {\n const set = listeners.get(event) ?? new Set<PlotHandler>();\n set.add(handler);\n listeners.set(event, set);\n };\n plotEl.once = (event, handler) => {\n const onceHandler: PlotHandler = (payload) => {\n plotEl.removeListener(event, onceHandler);\n handler(payload);\n };\n plotEl.on(event, onceHandler);\n };\n plotEl.removeListener = (event, handler) => {\n listeners.get(event)?.delete(handler);\n };\n plotEl.removeAllListeners = (event) => {\n if (event) {\n listeners.delete(event);\n } else {\n listeners.clear();\n }\n };\n plotEl.emit = (event, payload) => {\n for (const handler of listeners.get(event) ?? []) {\n handler(payload);\n }\n };\n return plotEl;\n}\n\nexport const plotlyStub = {\n newPlot: (el: HTMLElement): Promise<MockPlotElement> =>\n Promise.resolve(attachPlotEvents(el)),\n react: (el: HTMLElement): Promise<MockPlotElement> =>\n Promise.resolve(attachPlotEvents(el)),\n relayout: (el: HTMLElement): Promise<HTMLElement> => Promise.resolve(el),\n restyle: (el: HTMLElement): Promise<HTMLElement> => Promise.resolve(el),\n update: (el: HTMLElement): Promise<HTMLElement> => Promise.resolve(el),\n addTraces: (el: HTMLElement): Promise<HTMLElement> => Promise.resolve(el),\n deleteTraces: (el: HTMLElement): Promise<HTMLElement> => Promise.resolve(el),\n extendTraces: (el: HTMLElement): Promise<HTMLElement> => Promise.resolve(el),\n purge: (): void => {},\n setPlotConfig: (): void => {},\n toImage: (): Promise<string> => Promise.resolve(\"data:image/png;base64,\"),\n downloadImage: (): Promise<string> => Promise.resolve(\"mock-download\"),\n Plots: {\n resize: (): Promise<void> => Promise.resolve(),\n },\n};\n\n// ---------------------------------------------------------------------------\n// RDKit stub — `MoleculeStructure` loads the optional `@rdkit/rdkit` peer\n// (a WASM module) via `loadRDKit()` → `import(\"@rdkit/rdkit\")`. This is a\n// safety net for tests that render `MoleculeStructure` without configuring\n// their own fake: `get_mol` always returns a valid, empty-SVG molecule.\n// For real behavior assertions (invalid-SMILES handling, rendered markup,\n// …), use the kit's own override hook instead — it's more accurate than\n// anything this generic stub can be:\n//\n// import { configureRDKit } from \"@tetrascience-npm/tetrascience-react-ui/composed/MoleculeStructure\";\n// configureRDKit({ importFactory: () => Promise.resolve(myFakeRDKitModule) });\n//\n// (see src/components/composed/MoleculeStructure/__tests__/rdkit-loader.test.ts\n// in the kit's own source for a fuller fake to model one on.)\n// ---------------------------------------------------------------------------\n\nexport interface MinimalRdkitMol {\n is_valid: () => boolean;\n get_svg_with_highlights: (details: string) => string;\n delete: () => void;\n}\n\nexport const rdkitModuleStub = {\n get_mol: (smiles: string): MinimalRdkitMol => ({\n is_valid: () => true,\n get_svg_with_highlights: () =>\n `<?xml version='1.0' encoding='iso-8859-1'?>\\n<svg data-smiles=\"${smiles}\"></svg>`,\n delete: () => {},\n }),\n};\n\nexport const rdkitFactoryStub = (): Promise<typeof rdkitModuleStub> =>\n Promise.resolve(rdkitModuleStub);\n\n// ---------------------------------------------------------------------------\n// streamdown stub — renders the markdown source as plain text so\n// text-content assertions on `MessageResponse` / `Reasoning` keep working\n// without transpiling the unified markdown ecosystem.\n// ---------------------------------------------------------------------------\n\nexport interface StreamdownStubProps {\n children?: ReactNode;\n className?: string;\n [prop: string]: unknown;\n}\n\nexport function StreamdownStub({ children, className }: StreamdownStubProps) {\n return (\n <div data-slot=\"streamdown-mock\" className={className}>\n {children}\n </div>\n );\n}\n\n/** Inert factory for `@streamdown/*` plugin packages (cjk, math, mermaid). */\nexport const streamdownPluginStub = (): Record<string, never> => ({});\n\n// ---------------------------------------------------------------------------\n// use-stick-to-bottom stub — used by `Conversation`. jsdom has no scrolling\n// to pin, so containers render plainly and report the view as at the bottom.\n// ---------------------------------------------------------------------------\n\ninterface ContainerStubProps {\n children?: ReactNode;\n className?: string;\n style?: CSSProperties;\n role?: string;\n [prop: string]: unknown;\n}\n\nfunction StickToBottomRoot({ children, className, style, role }: ContainerStubProps) {\n return (\n <div data-slot=\"stick-to-bottom-mock\" className={className} style={style} role={role}>\n {children}\n </div>\n );\n}\n\nfunction StickToBottomContent({ children, className, style }: ContainerStubProps) {\n return (\n <div data-slot=\"stick-to-bottom-content-mock\" className={className} style={style}>\n {children}\n </div>\n );\n}\n\nexport const StickToBottomStub = Object.assign(StickToBottomRoot, {\n Content: StickToBottomContent,\n});\n\nconst stickToBottomContext = {\n isAtBottom: true,\n scrollToBottom: (): void => {},\n stopScroll: (): void => {},\n};\n\nexport function useStickToBottomContextStub(): typeof stickToBottomContext {\n return stickToBottomContext;\n}\n\nexport function useStickToBottomStub(): typeof stickToBottomContext & {\n scrollRef: (node: HTMLElement | null) => void;\n contentRef: (node: HTMLElement | null) => void;\n} {\n return { ...stickToBottomContext, scrollRef: () => {}, contentRef: () => {} };\n}\n\n// ---------------------------------------------------------------------------\n// react-resizable-panels stub — used by `Resizable*`. jsdom has no layout,\n// so panels render as plain containers; drag/resize is not simulated.\n// ---------------------------------------------------------------------------\n\nexport function ResizableGroupStub({ children, className, style }: ContainerStubProps) {\n return (\n <div data-slot=\"resizable-group-mock\" className={className} style={style}>\n {children}\n </div>\n );\n}\n\nexport function ResizablePanelStub({ children, className, style }: ContainerStubProps) {\n return (\n <div data-slot=\"resizable-panel-mock\" className={className} style={style}>\n {children}\n </div>\n );\n}\n\nexport function ResizableSeparatorStub({ children, className, style }: ContainerStubProps) {\n return (\n <div\n data-slot=\"resizable-separator-mock\"\n role=\"separator\"\n className={className}\n style={style}\n >\n {children}\n </div>\n );\n}\n\n// ---------------------------------------------------------------------------\n// shiki stub — serves the subpaths the kit's slim highlighter\n// (`src/lib/shiki.ts`) dynamic-imports. The stub highlighter tokenizes each\n// line as one unstyled token, so `CodeBlock` renders the raw code.\n// ---------------------------------------------------------------------------\n\ninterface StubToken {\n content: string;\n color: string;\n}\n\nexport interface StubHighlighterCore {\n codeToTokens: (\n code: string,\n options?: unknown,\n ) => { bg: string; fg: string; tokens: StubToken[][] };\n codeToHtml: (code: string, options?: unknown) => string;\n loadLanguage: (...grammars: unknown[]) => Promise<void>;\n getLoadedLanguages: () => string[];\n dispose: () => void;\n}\n\nfunction escapeHtml(code: string): string {\n return code\n .replace(/&/g, \"&\")\n .replace(/</g, \"<\")\n .replace(/>/g, \">\");\n}\n\nexport function createHighlighterCoreStub(): Promise<StubHighlighterCore> {\n return Promise.resolve({\n codeToTokens: (code: string) => ({\n bg: \"transparent\",\n fg: \"inherit\",\n tokens: code\n .split(\"\\n\")\n .map((line) => [{ content: line, color: \"inherit\" }]),\n }),\n codeToHtml: (code: string) => `<pre><code>${escapeHtml(code)}</code></pre>`,\n loadLanguage: () => Promise.resolve(),\n getLoadedLanguages: () => [],\n dispose: () => {},\n });\n}\n\n/** Languages the kit's `CodeBlock` highlighter loads by id (src/lib/shiki.ts). */\nexport const KIT_SHIKI_LANGUAGES = [\n \"bash\",\n \"javascript\",\n \"json\",\n \"markdown\",\n \"python\",\n \"sql\",\n \"tsx\",\n \"typescript\",\n \"yaml\",\n] as const;\n\n// ---------------------------------------------------------------------------\n// Registration + jsdom shims\n// ---------------------------------------------------------------------------\n\n/** Structural subset of Jest's `jest` object — avoids @types/jest. */\nexport interface JestMockApi {\n mock: (\n moduleName: string,\n factory?: () => unknown,\n options?: { virtual?: boolean },\n ) => unknown;\n}\n\n/**\n * Register stubs for every ESM-only / optional-peer module the kit reaches.\n * Non-virtual when the module resolves, virtual fallback when it doesn't —\n * see the module docblock.\n */\nexport function installUiKitJestMocks(jestApi: JestMockApi): void {\n const tryMock = (moduleName: string, factory: () => unknown): void => {\n try {\n jestApi.mock(moduleName, factory);\n } catch {\n jestApi.mock(moduleName, factory, { virtual: true });\n }\n };\n tryMock(\"plotly.js-dist\", () => plotlyStub);\n // Same interop shape as plotly: MoleculeStructure's loader does\n // `mod.default ?? mod`, so the factory returns the raw function directly.\n tryMock(\"@rdkit/rdkit\", () => rdkitFactoryStub);\n tryMock(\"streamdown\", () => ({\n Streamdown: StreamdownStub,\n default: StreamdownStub,\n }));\n tryMock(\"use-stick-to-bottom\", () => ({\n StickToBottom: StickToBottomStub,\n useStickToBottomContext: useStickToBottomContextStub,\n useStickToBottom: useStickToBottomStub,\n }));\n tryMock(\"react-resizable-panels\", () => ({\n Group: ResizableGroupStub,\n Panel: ResizablePanelStub,\n Separator: ResizableSeparatorStub,\n // Pre-v4 API names, for consumer code using the library directly.\n PanelGroup: ResizableGroupStub,\n PanelResizeHandle: ResizableSeparatorStub,\n }));\n // Each package exports exactly one of these — separate one-key objects\n // (not a shared multi-key literal) so the shape doesn't imply a\n // relationship between packages that don't actually share one.\n tryMock(\"@streamdown/cjk\", () => ({ cjk: streamdownPluginStub }));\n tryMock(\"@streamdown/math\", () => ({ math: streamdownPluginStub }));\n tryMock(\"@streamdown/mermaid\", () => ({ mermaid: streamdownPluginStub }));\n tryMock(\"shiki/core\", () => ({\n createHighlighterCore: createHighlighterCoreStub,\n }));\n tryMock(\"shiki/engine/javascript\", () => ({\n createJavaScriptRegexEngine: () => ({}),\n }));\n // These four are consumed via dynamic `import()`, which Rollup's CJS\n // output rewrites to an interop-wrapped `require()` (see\n // `dynamicImportInCjs: false` in vite.config.ts) — and that interop\n // helper unconditionally does `namespace.default = <raw required value>`,\n // with no `__esModule` check. So a factory returning `{ default: X }`\n // produces `namespace.default === { default: X }`, not `X` — the factory\n // must return the value the consuming code expects at `.default` directly.\n tryMock(\"@shikijs/themes/github-light\", () => ({}));\n tryMock(\"@shikijs/themes/github-dark\", () => ({}));\n for (const lang of KIT_SHIKI_LANGUAGES) {\n // `src/lib/shiki.ts` does `highlighter.loadLanguage(...grammar.default)`\n // — an empty array is inert there once unwrapped correctly.\n tryMock(`@shikijs/langs/${lang}`, () => []);\n }\n}\n\ntype MutableGlobal = Record<string, unknown>;\n\nclass ResizeObserverShim {\n observe(): void {}\n unobserve(): void {}\n disconnect(): void {}\n}\n\nclass IntersectionObserverShim {\n readonly root = null;\n readonly rootMargin = \"\";\n readonly thresholds: ReadonlyArray<number> = [];\n observe(): void {}\n unobserve(): void {}\n disconnect(): void {}\n takeRecords(): unknown[] {\n return [];\n }\n}\n\n/**\n * Install the browser APIs jsdom lacks but the kit's components touch —\n * ResizeObserver (charts, sidebar), matchMedia (sonner, hooks),\n * IntersectionObserver, pointer capture and scrollIntoView (Radix menus and\n * selects). Install-if-missing, so a consumer's own polyfills always win.\n */\nexport function installUiKitDomShims(): void {\n const globalRef = globalThis as unknown as MutableGlobal;\n\n if (typeof globalRef.ResizeObserver === \"undefined\") {\n globalRef.ResizeObserver = ResizeObserverShim;\n }\n if (typeof globalRef.IntersectionObserver === \"undefined\") {\n globalRef.IntersectionObserver = IntersectionObserverShim;\n }\n\n if (typeof window === \"undefined\") {\n return;\n }\n\n if (typeof window.matchMedia === \"undefined\") {\n window.matchMedia = (query: string) =>\n ({\n matches: false,\n media: query,\n onchange: null,\n addListener: () => {},\n removeListener: () => {},\n addEventListener: () => {},\n removeEventListener: () => {},\n dispatchEvent: () => false,\n }) as unknown as MediaQueryList;\n }\n\n const elementProto = window.Element.prototype as unknown as MutableGlobal;\n if (typeof elementProto.scrollIntoView === \"undefined\") {\n elementProto.scrollIntoView = () => {};\n }\n if (typeof elementProto.scrollTo === \"undefined\") {\n elementProto.scrollTo = () => {};\n }\n if (typeof elementProto.hasPointerCapture === \"undefined\") {\n elementProto.hasPointerCapture = () => false;\n }\n if (typeof elementProto.setPointerCapture === \"undefined\") {\n elementProto.setPointerCapture = () => {};\n }\n if (typeof elementProto.releasePointerCapture === \"undefined\") {\n elementProto.releasePointerCapture = () => {};\n }\n}\n\n// Side effect on import: active only under Jest. The `jest` object is not a\n// true global — Jest injects it into every module as a wrapper parameter —\n// so it must be read as a free variable behind a `typeof` guard, which also\n// keeps this module inert everywhere else (bundlers, Vitest, tooling).\ndeclare const jest: JestMockApi | undefined;\n\nconst jestObject =\n typeof jest !== \"undefined\" && jest && typeof jest.mock === \"function\"\n ? jest\n : undefined;\nif (jestObject) {\n installUiKitDomShims();\n installUiKitJestMocks(jestObject);\n}\n"],"names":["attachPlotEvents","el","plotEl","listeners","event","handler","set","onceHandler","payload","plotlyStub","rdkitModuleStub","smiles","rdkitFactoryStub","StreamdownStub","children","className","jsx","streamdownPluginStub","StickToBottomRoot","style","role","StickToBottomContent","StickToBottomStub","stickToBottomContext","useStickToBottomContextStub","useStickToBottomStub","ResizableGroupStub","ResizablePanelStub","ResizableSeparatorStub","escapeHtml","code","createHighlighterCoreStub","line","KIT_SHIKI_LANGUAGES","installUiKitJestMocks","jestApi","tryMock","moduleName","factory","lang","ResizeObserverShim","IntersectionObserverShim","installUiKitDomShims","globalRef","query","elementProto","jestObject"],"mappings":"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"}
|
|
@@ -0,0 +1,106 @@
|
|
|
1
|
+
import { CSSProperties, ReactNode } from 'react';
|
|
2
|
+
type PlotHandler = (payload: unknown) => void;
|
|
3
|
+
export interface MockPlotElement extends HTMLElement {
|
|
4
|
+
on: (event: string, handler: PlotHandler) => void;
|
|
5
|
+
once: (event: string, handler: PlotHandler) => void;
|
|
6
|
+
removeListener: (event: string, handler: PlotHandler) => void;
|
|
7
|
+
removeAllListeners: (event?: string) => void;
|
|
8
|
+
emit: (event: string, payload?: unknown) => void;
|
|
9
|
+
}
|
|
10
|
+
export declare const plotlyStub: {
|
|
11
|
+
newPlot: (el: HTMLElement) => Promise<MockPlotElement>;
|
|
12
|
+
react: (el: HTMLElement) => Promise<MockPlotElement>;
|
|
13
|
+
relayout: (el: HTMLElement) => Promise<HTMLElement>;
|
|
14
|
+
restyle: (el: HTMLElement) => Promise<HTMLElement>;
|
|
15
|
+
update: (el: HTMLElement) => Promise<HTMLElement>;
|
|
16
|
+
addTraces: (el: HTMLElement) => Promise<HTMLElement>;
|
|
17
|
+
deleteTraces: (el: HTMLElement) => Promise<HTMLElement>;
|
|
18
|
+
extendTraces: (el: HTMLElement) => Promise<HTMLElement>;
|
|
19
|
+
purge: () => void;
|
|
20
|
+
setPlotConfig: () => void;
|
|
21
|
+
toImage: () => Promise<string>;
|
|
22
|
+
downloadImage: () => Promise<string>;
|
|
23
|
+
Plots: {
|
|
24
|
+
resize: () => Promise<void>;
|
|
25
|
+
};
|
|
26
|
+
};
|
|
27
|
+
export interface MinimalRdkitMol {
|
|
28
|
+
is_valid: () => boolean;
|
|
29
|
+
get_svg_with_highlights: (details: string) => string;
|
|
30
|
+
delete: () => void;
|
|
31
|
+
}
|
|
32
|
+
export declare const rdkitModuleStub: {
|
|
33
|
+
get_mol: (smiles: string) => MinimalRdkitMol;
|
|
34
|
+
};
|
|
35
|
+
export declare const rdkitFactoryStub: () => Promise<typeof rdkitModuleStub>;
|
|
36
|
+
export interface StreamdownStubProps {
|
|
37
|
+
children?: ReactNode;
|
|
38
|
+
className?: string;
|
|
39
|
+
[prop: string]: unknown;
|
|
40
|
+
}
|
|
41
|
+
export declare function StreamdownStub({ children, className }: StreamdownStubProps): import("react/jsx-runtime").JSX.Element;
|
|
42
|
+
/** Inert factory for `@streamdown/*` plugin packages (cjk, math, mermaid). */
|
|
43
|
+
export declare const streamdownPluginStub: () => Record<string, never>;
|
|
44
|
+
interface ContainerStubProps {
|
|
45
|
+
children?: ReactNode;
|
|
46
|
+
className?: string;
|
|
47
|
+
style?: CSSProperties;
|
|
48
|
+
role?: string;
|
|
49
|
+
[prop: string]: unknown;
|
|
50
|
+
}
|
|
51
|
+
declare function StickToBottomRoot({ children, className, style, role }: ContainerStubProps): import("react/jsx-runtime").JSX.Element;
|
|
52
|
+
declare function StickToBottomContent({ children, className, style }: ContainerStubProps): import("react/jsx-runtime").JSX.Element;
|
|
53
|
+
export declare const StickToBottomStub: typeof StickToBottomRoot & {
|
|
54
|
+
Content: typeof StickToBottomContent;
|
|
55
|
+
};
|
|
56
|
+
declare const stickToBottomContext: {
|
|
57
|
+
isAtBottom: boolean;
|
|
58
|
+
scrollToBottom: () => void;
|
|
59
|
+
stopScroll: () => void;
|
|
60
|
+
};
|
|
61
|
+
export declare function useStickToBottomContextStub(): typeof stickToBottomContext;
|
|
62
|
+
export declare function useStickToBottomStub(): typeof stickToBottomContext & {
|
|
63
|
+
scrollRef: (node: HTMLElement | null) => void;
|
|
64
|
+
contentRef: (node: HTMLElement | null) => void;
|
|
65
|
+
};
|
|
66
|
+
export declare function ResizableGroupStub({ children, className, style }: ContainerStubProps): import("react/jsx-runtime").JSX.Element;
|
|
67
|
+
export declare function ResizablePanelStub({ children, className, style }: ContainerStubProps): import("react/jsx-runtime").JSX.Element;
|
|
68
|
+
export declare function ResizableSeparatorStub({ children, className, style }: ContainerStubProps): import("react/jsx-runtime").JSX.Element;
|
|
69
|
+
interface StubToken {
|
|
70
|
+
content: string;
|
|
71
|
+
color: string;
|
|
72
|
+
}
|
|
73
|
+
export interface StubHighlighterCore {
|
|
74
|
+
codeToTokens: (code: string, options?: unknown) => {
|
|
75
|
+
bg: string;
|
|
76
|
+
fg: string;
|
|
77
|
+
tokens: StubToken[][];
|
|
78
|
+
};
|
|
79
|
+
codeToHtml: (code: string, options?: unknown) => string;
|
|
80
|
+
loadLanguage: (...grammars: unknown[]) => Promise<void>;
|
|
81
|
+
getLoadedLanguages: () => string[];
|
|
82
|
+
dispose: () => void;
|
|
83
|
+
}
|
|
84
|
+
export declare function createHighlighterCoreStub(): Promise<StubHighlighterCore>;
|
|
85
|
+
/** Languages the kit's `CodeBlock` highlighter loads by id (src/lib/shiki.ts). */
|
|
86
|
+
export declare const KIT_SHIKI_LANGUAGES: readonly ["bash", "javascript", "json", "markdown", "python", "sql", "tsx", "typescript", "yaml"];
|
|
87
|
+
/** Structural subset of Jest's `jest` object — avoids @types/jest. */
|
|
88
|
+
export interface JestMockApi {
|
|
89
|
+
mock: (moduleName: string, factory?: () => unknown, options?: {
|
|
90
|
+
virtual?: boolean;
|
|
91
|
+
}) => unknown;
|
|
92
|
+
}
|
|
93
|
+
/**
|
|
94
|
+
* Register stubs for every ESM-only / optional-peer module the kit reaches.
|
|
95
|
+
* Non-virtual when the module resolves, virtual fallback when it doesn't —
|
|
96
|
+
* see the module docblock.
|
|
97
|
+
*/
|
|
98
|
+
export declare function installUiKitJestMocks(jestApi: JestMockApi): void;
|
|
99
|
+
/**
|
|
100
|
+
* Install the browser APIs jsdom lacks but the kit's components touch —
|
|
101
|
+
* ResizeObserver (charts, sidebar), matchMedia (sonner, hooks),
|
|
102
|
+
* IntersectionObserver, pointer capture and scrollIntoView (Radix menus and
|
|
103
|
+
* selects). Install-if-missing, so a consumer's own polyfills always win.
|
|
104
|
+
*/
|
|
105
|
+
export declare function installUiKitDomShims(): void;
|
|
106
|
+
export {};
|
|
@@ -0,0 +1,218 @@
|
|
|
1
|
+
import { jsx as i } from "react/jsx-runtime";
|
|
2
|
+
function l(e) {
|
|
3
|
+
const t = e, o = /* @__PURE__ */ new Map();
|
|
4
|
+
return t.on = (r, s) => {
|
|
5
|
+
const n = o.get(r) ?? /* @__PURE__ */ new Set();
|
|
6
|
+
n.add(s), o.set(r, n);
|
|
7
|
+
}, t.once = (r, s) => {
|
|
8
|
+
const n = (p) => {
|
|
9
|
+
t.removeListener(r, n), s(p);
|
|
10
|
+
};
|
|
11
|
+
t.on(r, n);
|
|
12
|
+
}, t.removeListener = (r, s) => {
|
|
13
|
+
o.get(r)?.delete(s);
|
|
14
|
+
}, t.removeAllListeners = (r) => {
|
|
15
|
+
r ? o.delete(r) : o.clear();
|
|
16
|
+
}, t.emit = (r, s) => {
|
|
17
|
+
for (const n of o.get(r) ?? [])
|
|
18
|
+
n(s);
|
|
19
|
+
}, t;
|
|
20
|
+
}
|
|
21
|
+
const g = {
|
|
22
|
+
newPlot: (e) => Promise.resolve(l(e)),
|
|
23
|
+
react: (e) => Promise.resolve(l(e)),
|
|
24
|
+
relayout: (e) => Promise.resolve(e),
|
|
25
|
+
restyle: (e) => Promise.resolve(e),
|
|
26
|
+
update: (e) => Promise.resolve(e),
|
|
27
|
+
addTraces: (e) => Promise.resolve(e),
|
|
28
|
+
deleteTraces: (e) => Promise.resolve(e),
|
|
29
|
+
extendTraces: (e) => Promise.resolve(e),
|
|
30
|
+
purge: () => {
|
|
31
|
+
},
|
|
32
|
+
setPlotConfig: () => {
|
|
33
|
+
},
|
|
34
|
+
toImage: () => Promise.resolve("data:image/png;base64,"),
|
|
35
|
+
downloadImage: () => Promise.resolve("mock-download"),
|
|
36
|
+
Plots: {
|
|
37
|
+
resize: () => Promise.resolve()
|
|
38
|
+
}
|
|
39
|
+
}, v = {
|
|
40
|
+
get_mol: (e) => ({
|
|
41
|
+
is_valid: () => !0,
|
|
42
|
+
get_svg_with_highlights: () => `<?xml version='1.0' encoding='iso-8859-1'?>
|
|
43
|
+
<svg data-smiles="${e}"></svg>`,
|
|
44
|
+
delete: () => {
|
|
45
|
+
}
|
|
46
|
+
})
|
|
47
|
+
}, b = () => Promise.resolve(v);
|
|
48
|
+
function c({ children: e, className: t }) {
|
|
49
|
+
return /* @__PURE__ */ i("div", { "data-slot": "streamdown-mock", className: t, children: e });
|
|
50
|
+
}
|
|
51
|
+
const a = () => ({});
|
|
52
|
+
function h({ children: e, className: t, style: o, role: r }) {
|
|
53
|
+
return /* @__PURE__ */ i("div", { "data-slot": "stick-to-bottom-mock", className: t, style: o, role: r, children: e });
|
|
54
|
+
}
|
|
55
|
+
function k({ children: e, className: t, style: o }) {
|
|
56
|
+
return /* @__PURE__ */ i("div", { "data-slot": "stick-to-bottom-content-mock", className: t, style: o, children: e });
|
|
57
|
+
}
|
|
58
|
+
const S = Object.assign(h, {
|
|
59
|
+
Content: k
|
|
60
|
+
}), f = {
|
|
61
|
+
isAtBottom: !0,
|
|
62
|
+
scrollToBottom: () => {
|
|
63
|
+
},
|
|
64
|
+
stopScroll: () => {
|
|
65
|
+
}
|
|
66
|
+
};
|
|
67
|
+
function P() {
|
|
68
|
+
return f;
|
|
69
|
+
}
|
|
70
|
+
function w() {
|
|
71
|
+
return { ...f, scrollRef: () => {
|
|
72
|
+
}, contentRef: () => {
|
|
73
|
+
} };
|
|
74
|
+
}
|
|
75
|
+
function d({ children: e, className: t, style: o }) {
|
|
76
|
+
return /* @__PURE__ */ i("div", { "data-slot": "resizable-group-mock", className: t, style: o, children: e });
|
|
77
|
+
}
|
|
78
|
+
function y({ children: e, className: t, style: o }) {
|
|
79
|
+
return /* @__PURE__ */ i("div", { "data-slot": "resizable-panel-mock", className: t, style: o, children: e });
|
|
80
|
+
}
|
|
81
|
+
function m({ children: e, className: t, style: o }) {
|
|
82
|
+
return /* @__PURE__ */ i(
|
|
83
|
+
"div",
|
|
84
|
+
{
|
|
85
|
+
"data-slot": "resizable-separator-mock",
|
|
86
|
+
role: "separator",
|
|
87
|
+
className: t,
|
|
88
|
+
style: o,
|
|
89
|
+
children: e
|
|
90
|
+
}
|
|
91
|
+
);
|
|
92
|
+
}
|
|
93
|
+
function T(e) {
|
|
94
|
+
return e.replace(/&/g, "&").replace(/</g, "<").replace(/>/g, ">");
|
|
95
|
+
}
|
|
96
|
+
function j() {
|
|
97
|
+
return Promise.resolve({
|
|
98
|
+
codeToTokens: (e) => ({
|
|
99
|
+
bg: "transparent",
|
|
100
|
+
fg: "inherit",
|
|
101
|
+
tokens: e.split(`
|
|
102
|
+
`).map((t) => [{ content: t, color: "inherit" }])
|
|
103
|
+
}),
|
|
104
|
+
codeToHtml: (e) => `<pre><code>${T(e)}</code></pre>`,
|
|
105
|
+
loadLanguage: () => Promise.resolve(),
|
|
106
|
+
getLoadedLanguages: () => [],
|
|
107
|
+
dispose: () => {
|
|
108
|
+
}
|
|
109
|
+
});
|
|
110
|
+
}
|
|
111
|
+
const C = [
|
|
112
|
+
"bash",
|
|
113
|
+
"javascript",
|
|
114
|
+
"json",
|
|
115
|
+
"markdown",
|
|
116
|
+
"python",
|
|
117
|
+
"sql",
|
|
118
|
+
"tsx",
|
|
119
|
+
"typescript",
|
|
120
|
+
"yaml"
|
|
121
|
+
];
|
|
122
|
+
function R(e) {
|
|
123
|
+
const t = (o, r) => {
|
|
124
|
+
try {
|
|
125
|
+
e.mock(o, r);
|
|
126
|
+
} catch {
|
|
127
|
+
e.mock(o, r, { virtual: !0 });
|
|
128
|
+
}
|
|
129
|
+
};
|
|
130
|
+
t("plotly.js-dist", () => g), t("@rdkit/rdkit", () => b), t("streamdown", () => ({
|
|
131
|
+
Streamdown: c,
|
|
132
|
+
default: c
|
|
133
|
+
})), t("use-stick-to-bottom", () => ({
|
|
134
|
+
StickToBottom: S,
|
|
135
|
+
useStickToBottomContext: P,
|
|
136
|
+
useStickToBottom: w
|
|
137
|
+
})), t("react-resizable-panels", () => ({
|
|
138
|
+
Group: d,
|
|
139
|
+
Panel: y,
|
|
140
|
+
Separator: m,
|
|
141
|
+
// Pre-v4 API names, for consumer code using the library directly.
|
|
142
|
+
PanelGroup: d,
|
|
143
|
+
PanelResizeHandle: m
|
|
144
|
+
})), t("@streamdown/cjk", () => ({ cjk: a })), t("@streamdown/math", () => ({ math: a })), t("@streamdown/mermaid", () => ({ mermaid: a })), t("shiki/core", () => ({
|
|
145
|
+
createHighlighterCore: j
|
|
146
|
+
})), t("shiki/engine/javascript", () => ({
|
|
147
|
+
createJavaScriptRegexEngine: () => ({})
|
|
148
|
+
})), t("@shikijs/themes/github-light", () => ({})), t("@shikijs/themes/github-dark", () => ({}));
|
|
149
|
+
for (const o of C)
|
|
150
|
+
t(`@shikijs/langs/${o}`, () => []);
|
|
151
|
+
}
|
|
152
|
+
class z {
|
|
153
|
+
observe() {
|
|
154
|
+
}
|
|
155
|
+
unobserve() {
|
|
156
|
+
}
|
|
157
|
+
disconnect() {
|
|
158
|
+
}
|
|
159
|
+
}
|
|
160
|
+
class B {
|
|
161
|
+
root = null;
|
|
162
|
+
rootMargin = "";
|
|
163
|
+
thresholds = [];
|
|
164
|
+
observe() {
|
|
165
|
+
}
|
|
166
|
+
unobserve() {
|
|
167
|
+
}
|
|
168
|
+
disconnect() {
|
|
169
|
+
}
|
|
170
|
+
takeRecords() {
|
|
171
|
+
return [];
|
|
172
|
+
}
|
|
173
|
+
}
|
|
174
|
+
function L() {
|
|
175
|
+
const e = globalThis;
|
|
176
|
+
if (typeof e.ResizeObserver > "u" && (e.ResizeObserver = z), typeof e.IntersectionObserver > "u" && (e.IntersectionObserver = B), typeof window > "u")
|
|
177
|
+
return;
|
|
178
|
+
typeof window.matchMedia > "u" && (window.matchMedia = (o) => ({
|
|
179
|
+
matches: !1,
|
|
180
|
+
media: o,
|
|
181
|
+
onchange: null,
|
|
182
|
+
addListener: () => {
|
|
183
|
+
},
|
|
184
|
+
removeListener: () => {
|
|
185
|
+
},
|
|
186
|
+
addEventListener: () => {
|
|
187
|
+
},
|
|
188
|
+
removeEventListener: () => {
|
|
189
|
+
},
|
|
190
|
+
dispatchEvent: () => !1
|
|
191
|
+
}));
|
|
192
|
+
const t = window.Element.prototype;
|
|
193
|
+
typeof t.scrollIntoView > "u" && (t.scrollIntoView = () => {
|
|
194
|
+
}), typeof t.scrollTo > "u" && (t.scrollTo = () => {
|
|
195
|
+
}), typeof t.hasPointerCapture > "u" && (t.hasPointerCapture = () => !1), typeof t.setPointerCapture > "u" && (t.setPointerCapture = () => {
|
|
196
|
+
}), typeof t.releasePointerCapture > "u" && (t.releasePointerCapture = () => {
|
|
197
|
+
});
|
|
198
|
+
}
|
|
199
|
+
const u = typeof jest < "u" && jest && typeof jest.mock == "function" ? jest : void 0;
|
|
200
|
+
u && (L(), R(u));
|
|
201
|
+
export {
|
|
202
|
+
C as KIT_SHIKI_LANGUAGES,
|
|
203
|
+
d as ResizableGroupStub,
|
|
204
|
+
y as ResizablePanelStub,
|
|
205
|
+
m as ResizableSeparatorStub,
|
|
206
|
+
S as StickToBottomStub,
|
|
207
|
+
c as StreamdownStub,
|
|
208
|
+
j as createHighlighterCoreStub,
|
|
209
|
+
L as installUiKitDomShims,
|
|
210
|
+
R as installUiKitJestMocks,
|
|
211
|
+
g as plotlyStub,
|
|
212
|
+
b as rdkitFactoryStub,
|
|
213
|
+
v as rdkitModuleStub,
|
|
214
|
+
a as streamdownPluginStub,
|
|
215
|
+
P as useStickToBottomContextStub,
|
|
216
|
+
w as useStickToBottomStub
|
|
217
|
+
};
|
|
218
|
+
//# sourceMappingURL=jest-setup.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"jest-setup.js","sources":["../src/jest-setup.tsx"],"sourcesContent":["/**\n * Single-file Jest support for consumers. Add one line to jest.config:\n *\n * module.exports = {\n * testEnvironment: \"jsdom\",\n * setupFiles: [\"@tetrascience-npm/tetrascience-react-ui/jest-setup\"],\n * };\n *\n * The kit ships dual ESM + CJS output, so Jest's CommonJS runtime loads every\n * kit module directly. What Jest cannot load are the few third-party deps\n * that publish ESM-only (streamdown, use-stick-to-bottom,\n * react-resizable-panels, shiki/@shikijs) and the optional peers a consumer\n * may not have installed (plotly.js-dist, @streamdown/math|mermaid). On\n * import this file registers lightweight functional stubs for exactly those\n * via `jest.mock(id, factory)` and installs the jsdom shims Radix-based\n * components need. Everything else in the kit runs for real.\n *\n * Registration strategy: non-virtual first — Jest then keys the mock by the\n * resolved module path, which matches what kit modules load because this\n * file ships inside the kit package (same dependency context under npm and\n * pnpm layouts alike). When resolution fails — the package publishes\n * `import`-only exports Jest's CJS resolver can't see (e.g. streamdown), or\n * it's an optional peer that isn't installed — fall back to\n * `{ virtual: true }`: virtual mocks of bare specifiers are keyed by the\n * specifier itself, so they intercept the kit's `require` without any\n * resolution.\n *\n * Overrides: a consumer's own `jest.mock(\"<id>\", …)` — in a test file or a\n * later setup file — replaces any registration made here.\n *\n * Maintenance: when the kit gains a static import of a new ESM-only package\n * (`\"type\": \"module\"`, no `require` export condition), add a registration\n * here or Jest consumers regress to `ERR_REQUIRE_ESM`.\n */\nimport type { CSSProperties, ReactNode } from \"react\";\n\n// ---------------------------------------------------------------------------\n// Plotly stub — jsdom has no layout or WebGL, so chart tests assert on the\n// calls the kit makes into Plotly rather than on rendered output. `newPlot`/\n// `react` attach the plot-event API to the target element (kit code registers\n// hover/click handlers on it) and resolve it; tests can fire those handlers\n// through the element's `emit`.\n// ---------------------------------------------------------------------------\n\ntype PlotHandler = (payload: unknown) => void;\n\nexport interface MockPlotElement extends HTMLElement {\n on: (event: string, handler: PlotHandler) => void;\n once: (event: string, handler: PlotHandler) => void;\n removeListener: (event: string, handler: PlotHandler) => void;\n removeAllListeners: (event?: string) => void;\n emit: (event: string, payload?: unknown) => void;\n}\n\nfunction attachPlotEvents(el: HTMLElement): MockPlotElement {\n const plotEl = el as MockPlotElement;\n const listeners = new Map<string, Set<PlotHandler>>();\n\n plotEl.on = (event, handler) => {\n const set = listeners.get(event) ?? new Set<PlotHandler>();\n set.add(handler);\n listeners.set(event, set);\n };\n plotEl.once = (event, handler) => {\n const onceHandler: PlotHandler = (payload) => {\n plotEl.removeListener(event, onceHandler);\n handler(payload);\n };\n plotEl.on(event, onceHandler);\n };\n plotEl.removeListener = (event, handler) => {\n listeners.get(event)?.delete(handler);\n };\n plotEl.removeAllListeners = (event) => {\n if (event) {\n listeners.delete(event);\n } else {\n listeners.clear();\n }\n };\n plotEl.emit = (event, payload) => {\n for (const handler of listeners.get(event) ?? []) {\n handler(payload);\n }\n };\n return plotEl;\n}\n\nexport const plotlyStub = {\n newPlot: (el: HTMLElement): Promise<MockPlotElement> =>\n Promise.resolve(attachPlotEvents(el)),\n react: (el: HTMLElement): Promise<MockPlotElement> =>\n Promise.resolve(attachPlotEvents(el)),\n relayout: (el: HTMLElement): Promise<HTMLElement> => Promise.resolve(el),\n restyle: (el: HTMLElement): Promise<HTMLElement> => Promise.resolve(el),\n update: (el: HTMLElement): Promise<HTMLElement> => Promise.resolve(el),\n addTraces: (el: HTMLElement): Promise<HTMLElement> => Promise.resolve(el),\n deleteTraces: (el: HTMLElement): Promise<HTMLElement> => Promise.resolve(el),\n extendTraces: (el: HTMLElement): Promise<HTMLElement> => Promise.resolve(el),\n purge: (): void => {},\n setPlotConfig: (): void => {},\n toImage: (): Promise<string> => Promise.resolve(\"data:image/png;base64,\"),\n downloadImage: (): Promise<string> => Promise.resolve(\"mock-download\"),\n Plots: {\n resize: (): Promise<void> => Promise.resolve(),\n },\n};\n\n// ---------------------------------------------------------------------------\n// RDKit stub — `MoleculeStructure` loads the optional `@rdkit/rdkit` peer\n// (a WASM module) via `loadRDKit()` → `import(\"@rdkit/rdkit\")`. This is a\n// safety net for tests that render `MoleculeStructure` without configuring\n// their own fake: `get_mol` always returns a valid, empty-SVG molecule.\n// For real behavior assertions (invalid-SMILES handling, rendered markup,\n// …), use the kit's own override hook instead — it's more accurate than\n// anything this generic stub can be:\n//\n// import { configureRDKit } from \"@tetrascience-npm/tetrascience-react-ui/composed/MoleculeStructure\";\n// configureRDKit({ importFactory: () => Promise.resolve(myFakeRDKitModule) });\n//\n// (see src/components/composed/MoleculeStructure/__tests__/rdkit-loader.test.ts\n// in the kit's own source for a fuller fake to model one on.)\n// ---------------------------------------------------------------------------\n\nexport interface MinimalRdkitMol {\n is_valid: () => boolean;\n get_svg_with_highlights: (details: string) => string;\n delete: () => void;\n}\n\nexport const rdkitModuleStub = {\n get_mol: (smiles: string): MinimalRdkitMol => ({\n is_valid: () => true,\n get_svg_with_highlights: () =>\n `<?xml version='1.0' encoding='iso-8859-1'?>\\n<svg data-smiles=\"${smiles}\"></svg>`,\n delete: () => {},\n }),\n};\n\nexport const rdkitFactoryStub = (): Promise<typeof rdkitModuleStub> =>\n Promise.resolve(rdkitModuleStub);\n\n// ---------------------------------------------------------------------------\n// streamdown stub — renders the markdown source as plain text so\n// text-content assertions on `MessageResponse` / `Reasoning` keep working\n// without transpiling the unified markdown ecosystem.\n// ---------------------------------------------------------------------------\n\nexport interface StreamdownStubProps {\n children?: ReactNode;\n className?: string;\n [prop: string]: unknown;\n}\n\nexport function StreamdownStub({ children, className }: StreamdownStubProps) {\n return (\n <div data-slot=\"streamdown-mock\" className={className}>\n {children}\n </div>\n );\n}\n\n/** Inert factory for `@streamdown/*` plugin packages (cjk, math, mermaid). */\nexport const streamdownPluginStub = (): Record<string, never> => ({});\n\n// ---------------------------------------------------------------------------\n// use-stick-to-bottom stub — used by `Conversation`. jsdom has no scrolling\n// to pin, so containers render plainly and report the view as at the bottom.\n// ---------------------------------------------------------------------------\n\ninterface ContainerStubProps {\n children?: ReactNode;\n className?: string;\n style?: CSSProperties;\n role?: string;\n [prop: string]: unknown;\n}\n\nfunction StickToBottomRoot({ children, className, style, role }: ContainerStubProps) {\n return (\n <div data-slot=\"stick-to-bottom-mock\" className={className} style={style} role={role}>\n {children}\n </div>\n );\n}\n\nfunction StickToBottomContent({ children, className, style }: ContainerStubProps) {\n return (\n <div data-slot=\"stick-to-bottom-content-mock\" className={className} style={style}>\n {children}\n </div>\n );\n}\n\nexport const StickToBottomStub = Object.assign(StickToBottomRoot, {\n Content: StickToBottomContent,\n});\n\nconst stickToBottomContext = {\n isAtBottom: true,\n scrollToBottom: (): void => {},\n stopScroll: (): void => {},\n};\n\nexport function useStickToBottomContextStub(): typeof stickToBottomContext {\n return stickToBottomContext;\n}\n\nexport function useStickToBottomStub(): typeof stickToBottomContext & {\n scrollRef: (node: HTMLElement | null) => void;\n contentRef: (node: HTMLElement | null) => void;\n} {\n return { ...stickToBottomContext, scrollRef: () => {}, contentRef: () => {} };\n}\n\n// ---------------------------------------------------------------------------\n// react-resizable-panels stub — used by `Resizable*`. jsdom has no layout,\n// so panels render as plain containers; drag/resize is not simulated.\n// ---------------------------------------------------------------------------\n\nexport function ResizableGroupStub({ children, className, style }: ContainerStubProps) {\n return (\n <div data-slot=\"resizable-group-mock\" className={className} style={style}>\n {children}\n </div>\n );\n}\n\nexport function ResizablePanelStub({ children, className, style }: ContainerStubProps) {\n return (\n <div data-slot=\"resizable-panel-mock\" className={className} style={style}>\n {children}\n </div>\n );\n}\n\nexport function ResizableSeparatorStub({ children, className, style }: ContainerStubProps) {\n return (\n <div\n data-slot=\"resizable-separator-mock\"\n role=\"separator\"\n className={className}\n style={style}\n >\n {children}\n </div>\n );\n}\n\n// ---------------------------------------------------------------------------\n// shiki stub — serves the subpaths the kit's slim highlighter\n// (`src/lib/shiki.ts`) dynamic-imports. The stub highlighter tokenizes each\n// line as one unstyled token, so `CodeBlock` renders the raw code.\n// ---------------------------------------------------------------------------\n\ninterface StubToken {\n content: string;\n color: string;\n}\n\nexport interface StubHighlighterCore {\n codeToTokens: (\n code: string,\n options?: unknown,\n ) => { bg: string; fg: string; tokens: StubToken[][] };\n codeToHtml: (code: string, options?: unknown) => string;\n loadLanguage: (...grammars: unknown[]) => Promise<void>;\n getLoadedLanguages: () => string[];\n dispose: () => void;\n}\n\nfunction escapeHtml(code: string): string {\n return code\n .replace(/&/g, \"&\")\n .replace(/</g, \"<\")\n .replace(/>/g, \">\");\n}\n\nexport function createHighlighterCoreStub(): Promise<StubHighlighterCore> {\n return Promise.resolve({\n codeToTokens: (code: string) => ({\n bg: \"transparent\",\n fg: \"inherit\",\n tokens: code\n .split(\"\\n\")\n .map((line) => [{ content: line, color: \"inherit\" }]),\n }),\n codeToHtml: (code: string) => `<pre><code>${escapeHtml(code)}</code></pre>`,\n loadLanguage: () => Promise.resolve(),\n getLoadedLanguages: () => [],\n dispose: () => {},\n });\n}\n\n/** Languages the kit's `CodeBlock` highlighter loads by id (src/lib/shiki.ts). */\nexport const KIT_SHIKI_LANGUAGES = [\n \"bash\",\n \"javascript\",\n \"json\",\n \"markdown\",\n \"python\",\n \"sql\",\n \"tsx\",\n \"typescript\",\n \"yaml\",\n] as const;\n\n// ---------------------------------------------------------------------------\n// Registration + jsdom shims\n// ---------------------------------------------------------------------------\n\n/** Structural subset of Jest's `jest` object — avoids @types/jest. */\nexport interface JestMockApi {\n mock: (\n moduleName: string,\n factory?: () => unknown,\n options?: { virtual?: boolean },\n ) => unknown;\n}\n\n/**\n * Register stubs for every ESM-only / optional-peer module the kit reaches.\n * Non-virtual when the module resolves, virtual fallback when it doesn't —\n * see the module docblock.\n */\nexport function installUiKitJestMocks(jestApi: JestMockApi): void {\n const tryMock = (moduleName: string, factory: () => unknown): void => {\n try {\n jestApi.mock(moduleName, factory);\n } catch {\n jestApi.mock(moduleName, factory, { virtual: true });\n }\n };\n tryMock(\"plotly.js-dist\", () => plotlyStub);\n // Same interop shape as plotly: MoleculeStructure's loader does\n // `mod.default ?? mod`, so the factory returns the raw function directly.\n tryMock(\"@rdkit/rdkit\", () => rdkitFactoryStub);\n tryMock(\"streamdown\", () => ({\n Streamdown: StreamdownStub,\n default: StreamdownStub,\n }));\n tryMock(\"use-stick-to-bottom\", () => ({\n StickToBottom: StickToBottomStub,\n useStickToBottomContext: useStickToBottomContextStub,\n useStickToBottom: useStickToBottomStub,\n }));\n tryMock(\"react-resizable-panels\", () => ({\n Group: ResizableGroupStub,\n Panel: ResizablePanelStub,\n Separator: ResizableSeparatorStub,\n // Pre-v4 API names, for consumer code using the library directly.\n PanelGroup: ResizableGroupStub,\n PanelResizeHandle: ResizableSeparatorStub,\n }));\n // Each package exports exactly one of these — separate one-key objects\n // (not a shared multi-key literal) so the shape doesn't imply a\n // relationship between packages that don't actually share one.\n tryMock(\"@streamdown/cjk\", () => ({ cjk: streamdownPluginStub }));\n tryMock(\"@streamdown/math\", () => ({ math: streamdownPluginStub }));\n tryMock(\"@streamdown/mermaid\", () => ({ mermaid: streamdownPluginStub }));\n tryMock(\"shiki/core\", () => ({\n createHighlighterCore: createHighlighterCoreStub,\n }));\n tryMock(\"shiki/engine/javascript\", () => ({\n createJavaScriptRegexEngine: () => ({}),\n }));\n // These four are consumed via dynamic `import()`, which Rollup's CJS\n // output rewrites to an interop-wrapped `require()` (see\n // `dynamicImportInCjs: false` in vite.config.ts) — and that interop\n // helper unconditionally does `namespace.default = <raw required value>`,\n // with no `__esModule` check. So a factory returning `{ default: X }`\n // produces `namespace.default === { default: X }`, not `X` — the factory\n // must return the value the consuming code expects at `.default` directly.\n tryMock(\"@shikijs/themes/github-light\", () => ({}));\n tryMock(\"@shikijs/themes/github-dark\", () => ({}));\n for (const lang of KIT_SHIKI_LANGUAGES) {\n // `src/lib/shiki.ts` does `highlighter.loadLanguage(...grammar.default)`\n // — an empty array is inert there once unwrapped correctly.\n tryMock(`@shikijs/langs/${lang}`, () => []);\n }\n}\n\ntype MutableGlobal = Record<string, unknown>;\n\nclass ResizeObserverShim {\n observe(): void {}\n unobserve(): void {}\n disconnect(): void {}\n}\n\nclass IntersectionObserverShim {\n readonly root = null;\n readonly rootMargin = \"\";\n readonly thresholds: ReadonlyArray<number> = [];\n observe(): void {}\n unobserve(): void {}\n disconnect(): void {}\n takeRecords(): unknown[] {\n return [];\n }\n}\n\n/**\n * Install the browser APIs jsdom lacks but the kit's components touch —\n * ResizeObserver (charts, sidebar), matchMedia (sonner, hooks),\n * IntersectionObserver, pointer capture and scrollIntoView (Radix menus and\n * selects). Install-if-missing, so a consumer's own polyfills always win.\n */\nexport function installUiKitDomShims(): void {\n const globalRef = globalThis as unknown as MutableGlobal;\n\n if (typeof globalRef.ResizeObserver === \"undefined\") {\n globalRef.ResizeObserver = ResizeObserverShim;\n }\n if (typeof globalRef.IntersectionObserver === \"undefined\") {\n globalRef.IntersectionObserver = IntersectionObserverShim;\n }\n\n if (typeof window === \"undefined\") {\n return;\n }\n\n if (typeof window.matchMedia === \"undefined\") {\n window.matchMedia = (query: string) =>\n ({\n matches: false,\n media: query,\n onchange: null,\n addListener: () => {},\n removeListener: () => {},\n addEventListener: () => {},\n removeEventListener: () => {},\n dispatchEvent: () => false,\n }) as unknown as MediaQueryList;\n }\n\n const elementProto = window.Element.prototype as unknown as MutableGlobal;\n if (typeof elementProto.scrollIntoView === \"undefined\") {\n elementProto.scrollIntoView = () => {};\n }\n if (typeof elementProto.scrollTo === \"undefined\") {\n elementProto.scrollTo = () => {};\n }\n if (typeof elementProto.hasPointerCapture === \"undefined\") {\n elementProto.hasPointerCapture = () => false;\n }\n if (typeof elementProto.setPointerCapture === \"undefined\") {\n elementProto.setPointerCapture = () => {};\n }\n if (typeof elementProto.releasePointerCapture === \"undefined\") {\n elementProto.releasePointerCapture = () => {};\n }\n}\n\n// Side effect on import: active only under Jest. The `jest` object is not a\n// true global — Jest injects it into every module as a wrapper parameter —\n// so it must be read as a free variable behind a `typeof` guard, which also\n// keeps this module inert everywhere else (bundlers, Vitest, tooling).\ndeclare const jest: JestMockApi | undefined;\n\nconst jestObject =\n typeof jest !== \"undefined\" && jest && typeof jest.mock === \"function\"\n ? jest\n : undefined;\nif (jestObject) {\n installUiKitDomShims();\n installUiKitJestMocks(jestObject);\n}\n"],"names":["attachPlotEvents","el","plotEl","listeners","event","handler","set","onceHandler","payload","plotlyStub","rdkitModuleStub","smiles","rdkitFactoryStub","StreamdownStub","children","className","jsx","streamdownPluginStub","StickToBottomRoot","style","role","StickToBottomContent","StickToBottomStub","stickToBottomContext","useStickToBottomContextStub","useStickToBottomStub","ResizableGroupStub","ResizablePanelStub","ResizableSeparatorStub","escapeHtml","code","createHighlighterCoreStub","line","KIT_SHIKI_LANGUAGES","installUiKitJestMocks","jestApi","tryMock","moduleName","factory","lang","ResizeObserverShim","IntersectionObserverShim","installUiKitDomShims","globalRef","query","elementProto","jestObject"],"mappings":"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"}
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});function o(t){const e=Object.create(null,{[Symbol.toStringTag]:{value:"Module"}});if(t){for(const r in t)if(r!=="default"){const n=Object.getOwnPropertyDescriptor(t,r);Object.defineProperty(e,r,n.get?n:{enumerable:!0,get:()=>t[r]})}}return e.default=t,Object.freeze(e)}const i=new Map([["bash",()=>Promise.resolve().then(()=>o(require("@shikijs/langs/bash")))],["javascript",()=>Promise.resolve().then(()=>o(require("@shikijs/langs/javascript")))],["json",()=>Promise.resolve().then(()=>o(require("@shikijs/langs/json")))],["markdown",()=>Promise.resolve().then(()=>o(require("@shikijs/langs/markdown")))],["python",()=>Promise.resolve().then(()=>o(require("@shikijs/langs/python")))],["sql",()=>Promise.resolve().then(()=>o(require("@shikijs/langs/sql")))],["tsx",()=>Promise.resolve().then(()=>o(require("@shikijs/langs/tsx")))],["typescript",()=>Promise.resolve().then(()=>o(require("@shikijs/langs/typescript")))],["yaml",()=>Promise.resolve().then(()=>o(require("@shikijs/langs/yaml")))]]),g=new Map([["sh","bash"],["shell","bash"],["shellscript","bash"],["zsh","bash"],["js","javascript"],["jsx","tsx"],["md","markdown"],["py","python"],["ts","typescript"],["yml","yaml"]]);function u(t){const e=t.trim().toLowerCase(),r=g.get(e)??e;return i.has(r)?r:null}function h(){return[...i.keys()]}function m(t,e,r=[]){const n=t.trim().toLowerCase();i.set(n,e);for(const s of r)g.set(s.trim().toLowerCase(),n)}let a=null;const l=new Map;function d(){return a??=Promise.all([Promise.resolve().then(()=>o(require("shiki/core"))),Promise.resolve().then(()=>o(require("shiki/engine/javascript"))),Promise.resolve().then(()=>o(require("@shikijs/themes/github-light"))),Promise.resolve().then(()=>o(require("@shikijs/themes/github-dark")))]).then(([t,e,r,n])=>t.createHighlighterCore({engine:e.createJavaScriptRegexEngine({forgiving:!0}),langs:[],themes:[r.default,n.default]})),a}async function p(t){const e=u(t),r=await d();if(e){let n=l.get(e);if(!n){const s=i.get(e);n=s?s().then(c=>r.loadLanguage(...c.default)):Promise.resolve(),l.set(e,n)}await n}return{highlighter:r,lang:e??"text"}}exports.getCodeBlockHighlighter=p;exports.getSupportedCodeBlockLanguages=h;exports.registerCodeBlockLanguage=m;exports.resolveCodeBlockLanguage=u;
|
|
2
|
+
//# sourceMappingURL=shiki.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"shiki.cjs","sources":["../../src/lib/shiki.ts"],"sourcesContent":["/**\n * Shared slim Shiki setup (SW-2007).\n *\n * Importing `createHighlighter` from \"shiki\" pulls the full bundle — ~200\n * grammars, each its own module — which balloons consumer builds (~9k\n * modules) and can OOM Vite's default heap. This module uses `shiki/core`\n * with an explicit language set instead: the engine, themes, and grammars\n * all arrive through dynamic imports, so they land in lazy chunks and only\n * the languages listed here are ever pulled into a build.\n *\n * Consumers can extend the set at runtime with `registerCodeBlockLanguage`.\n */\nimport type { HighlighterCore, LanguageRegistration } from \"shiki/core\";\n\ntype LanguageLoader = () => Promise<{ default: LanguageRegistration[] }>;\n\n// Default grammars, chosen for scientific data-app content. Keys are the\n// canonical ids requested via `lang`; aliases map onto them below.\nconst languageLoaders = new Map<string, LanguageLoader>([\n [\"bash\", () => import(\"@shikijs/langs/bash\")],\n [\"javascript\", () => import(\"@shikijs/langs/javascript\")],\n [\"json\", () => import(\"@shikijs/langs/json\")],\n [\"markdown\", () => import(\"@shikijs/langs/markdown\")],\n [\"python\", () => import(\"@shikijs/langs/python\")],\n [\"sql\", () => import(\"@shikijs/langs/sql\")],\n [\"tsx\", () => import(\"@shikijs/langs/tsx\")],\n [\"typescript\", () => import(\"@shikijs/langs/typescript\")],\n [\"yaml\", () => import(\"@shikijs/langs/yaml\")],\n]);\n\nconst languageAliases = new Map<string, string>([\n [\"sh\", \"bash\"],\n [\"shell\", \"bash\"],\n [\"shellscript\", \"bash\"],\n [\"zsh\", \"bash\"],\n [\"js\", \"javascript\"],\n [\"jsx\", \"tsx\"],\n [\"md\", \"markdown\"],\n [\"py\", \"python\"],\n [\"ts\", \"typescript\"],\n [\"yml\", \"yaml\"],\n]);\n\n/**\n * Resolve a requested language to a registered canonical id, or null when\n * the language isn't in the set (callers fall back to plaintext).\n */\nexport function resolveCodeBlockLanguage(language: string): string | null {\n const normalized = language.trim().toLowerCase();\n const canonical = languageAliases.get(normalized) ?? normalized;\n return languageLoaders.has(canonical) ? canonical : null;\n}\n\n/** Canonical ids of every language the slim highlighter can load. */\nexport function getSupportedCodeBlockLanguages(): string[] {\n return [...languageLoaders.keys()];\n}\n\n/**\n * Register an additional grammar for `CodeBlock`/`MessageResponse` code\n * highlighting, e.g.:\n *\n * ```ts\n * registerCodeBlockLanguage(\"rust\", () => import(\"@shikijs/langs/rust\"), [\"rs\"]);\n * ```\n *\n * The loader stays a dynamic import, so added grammars are also code-split.\n */\nexport function registerCodeBlockLanguage(\n language: string,\n loader: LanguageLoader,\n aliases: string[] = [],\n): void {\n const canonical = language.trim().toLowerCase();\n languageLoaders.set(canonical, loader);\n for (const alias of aliases) {\n languageAliases.set(alias.trim().toLowerCase(), canonical);\n }\n}\n\n// One shared highlighter core; grammars are loaded into it on demand.\nlet corePromise: Promise<HighlighterCore> | null = null;\nconst loadedLanguages = new Map<string, Promise<void>>();\n\nfunction getHighlighterCore(): Promise<HighlighterCore> {\n corePromise ??= Promise.all([\n import(\"shiki/core\"),\n import(\"shiki/engine/javascript\"),\n import(\"@shikijs/themes/github-light\"),\n import(\"@shikijs/themes/github-dark\"),\n ]).then(([core, engine, githubLight, githubDark]) =>\n core.createHighlighterCore({\n // The JS regex engine avoids shipping the oniguruma WASM asset;\n // `forgiving` skips the few grammar rules it can't translate.\n engine: engine.createJavaScriptRegexEngine({ forgiving: true }),\n langs: [],\n themes: [githubLight.default, githubDark.default],\n }),\n );\n return corePromise;\n}\n\n/**\n * Get the shared highlighter with the requested language loaded. `lang` is\n * the id to pass to `codeToTokens` — the canonical id when supported,\n * otherwise \"text\" (plaintext needs no grammar).\n */\nexport async function getCodeBlockHighlighter(\n language: string,\n): Promise<{ highlighter: HighlighterCore; lang: string }> {\n const canonical = resolveCodeBlockLanguage(language);\n const highlighter = await getHighlighterCore();\n if (canonical) {\n let pending = loadedLanguages.get(canonical);\n if (!pending) {\n const loader = languageLoaders.get(canonical);\n pending = loader\n ? loader().then((grammar) => highlighter.loadLanguage(...grammar.default))\n : Promise.resolve();\n loadedLanguages.set(canonical, pending);\n }\n await pending;\n }\n return { highlighter, lang: canonical ?? \"text\" };\n}\n"],"names":["languageLoaders","_interopNamespaceDefault","languageAliases","resolveCodeBlockLanguage","language","normalized","canonical","getSupportedCodeBlockLanguages","registerCodeBlockLanguage","loader","aliases","alias","corePromise","loadedLanguages","getHighlighterCore","core","engine","githubLight","githubDark","getCodeBlockHighlighter","highlighter","pending","grammar"],"mappings":"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"}
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
import { HighlighterCore, LanguageRegistration } from 'shiki/core';
|
|
2
|
+
type LanguageLoader = () => Promise<{
|
|
3
|
+
default: LanguageRegistration[];
|
|
4
|
+
}>;
|
|
5
|
+
/**
|
|
6
|
+
* Resolve a requested language to a registered canonical id, or null when
|
|
7
|
+
* the language isn't in the set (callers fall back to plaintext).
|
|
8
|
+
*/
|
|
9
|
+
export declare function resolveCodeBlockLanguage(language: string): string | null;
|
|
10
|
+
/** Canonical ids of every language the slim highlighter can load. */
|
|
11
|
+
export declare function getSupportedCodeBlockLanguages(): string[];
|
|
12
|
+
/**
|
|
13
|
+
* Register an additional grammar for `CodeBlock`/`MessageResponse` code
|
|
14
|
+
* highlighting, e.g.:
|
|
15
|
+
*
|
|
16
|
+
* ```ts
|
|
17
|
+
* registerCodeBlockLanguage("rust", () => import("@shikijs/langs/rust"), ["rs"]);
|
|
18
|
+
* ```
|
|
19
|
+
*
|
|
20
|
+
* The loader stays a dynamic import, so added grammars are also code-split.
|
|
21
|
+
*/
|
|
22
|
+
export declare function registerCodeBlockLanguage(language: string, loader: LanguageLoader, aliases?: string[]): void;
|
|
23
|
+
/**
|
|
24
|
+
* Get the shared highlighter with the requested language loaded. `lang` is
|
|
25
|
+
* the id to pass to `codeToTokens` — the canonical id when supported,
|
|
26
|
+
* otherwise "text" (plaintext needs no grammar).
|
|
27
|
+
*/
|
|
28
|
+
export declare function getCodeBlockHighlighter(language: string): Promise<{
|
|
29
|
+
highlighter: HighlighterCore;
|
|
30
|
+
lang: string;
|
|
31
|
+
}>;
|
|
32
|
+
export {};
|
|
@@ -0,0 +1,72 @@
|
|
|
1
|
+
const r = /* @__PURE__ */ new Map([
|
|
2
|
+
["bash", () => import("@shikijs/langs/bash")],
|
|
3
|
+
["javascript", () => import("@shikijs/langs/javascript")],
|
|
4
|
+
["json", () => import("@shikijs/langs/json")],
|
|
5
|
+
["markdown", () => import("@shikijs/langs/markdown")],
|
|
6
|
+
["python", () => import("@shikijs/langs/python")],
|
|
7
|
+
["sql", () => import("@shikijs/langs/sql")],
|
|
8
|
+
["tsx", () => import("@shikijs/langs/tsx")],
|
|
9
|
+
["typescript", () => import("@shikijs/langs/typescript")],
|
|
10
|
+
["yaml", () => import("@shikijs/langs/yaml")]
|
|
11
|
+
]), l = /* @__PURE__ */ new Map([
|
|
12
|
+
["sh", "bash"],
|
|
13
|
+
["shell", "bash"],
|
|
14
|
+
["shellscript", "bash"],
|
|
15
|
+
["zsh", "bash"],
|
|
16
|
+
["js", "javascript"],
|
|
17
|
+
["jsx", "tsx"],
|
|
18
|
+
["md", "markdown"],
|
|
19
|
+
["py", "python"],
|
|
20
|
+
["ts", "typescript"],
|
|
21
|
+
["yml", "yaml"]
|
|
22
|
+
]);
|
|
23
|
+
function c(a) {
|
|
24
|
+
const e = a.trim().toLowerCase(), t = l.get(e) ?? e;
|
|
25
|
+
return r.has(t) ? t : null;
|
|
26
|
+
}
|
|
27
|
+
function m() {
|
|
28
|
+
return [...r.keys()];
|
|
29
|
+
}
|
|
30
|
+
function h(a, e, t = []) {
|
|
31
|
+
const o = a.trim().toLowerCase();
|
|
32
|
+
r.set(o, e);
|
|
33
|
+
for (const n of t)
|
|
34
|
+
l.set(n.trim().toLowerCase(), o);
|
|
35
|
+
}
|
|
36
|
+
let i = null;
|
|
37
|
+
const s = /* @__PURE__ */ new Map();
|
|
38
|
+
function p() {
|
|
39
|
+
return i ??= Promise.all([
|
|
40
|
+
import("shiki/core"),
|
|
41
|
+
import("shiki/engine/javascript"),
|
|
42
|
+
import("@shikijs/themes/github-light"),
|
|
43
|
+
import("@shikijs/themes/github-dark")
|
|
44
|
+
]).then(
|
|
45
|
+
([a, e, t, o]) => a.createHighlighterCore({
|
|
46
|
+
// The JS regex engine avoids shipping the oniguruma WASM asset;
|
|
47
|
+
// `forgiving` skips the few grammar rules it can't translate.
|
|
48
|
+
engine: e.createJavaScriptRegexEngine({ forgiving: !0 }),
|
|
49
|
+
langs: [],
|
|
50
|
+
themes: [t.default, o.default]
|
|
51
|
+
})
|
|
52
|
+
), i;
|
|
53
|
+
}
|
|
54
|
+
async function u(a) {
|
|
55
|
+
const e = c(a), t = await p();
|
|
56
|
+
if (e) {
|
|
57
|
+
let o = s.get(e);
|
|
58
|
+
if (!o) {
|
|
59
|
+
const n = r.get(e);
|
|
60
|
+
o = n ? n().then((g) => t.loadLanguage(...g.default)) : Promise.resolve(), s.set(e, o);
|
|
61
|
+
}
|
|
62
|
+
await o;
|
|
63
|
+
}
|
|
64
|
+
return { highlighter: t, lang: e ?? "text" };
|
|
65
|
+
}
|
|
66
|
+
export {
|
|
67
|
+
u as getCodeBlockHighlighter,
|
|
68
|
+
m as getSupportedCodeBlockLanguages,
|
|
69
|
+
h as registerCodeBlockLanguage,
|
|
70
|
+
c as resolveCodeBlockLanguage
|
|
71
|
+
};
|
|
72
|
+
//# sourceMappingURL=shiki.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"shiki.js","sources":["../../src/lib/shiki.ts"],"sourcesContent":["/**\n * Shared slim Shiki setup (SW-2007).\n *\n * Importing `createHighlighter` from \"shiki\" pulls the full bundle — ~200\n * grammars, each its own module — which balloons consumer builds (~9k\n * modules) and can OOM Vite's default heap. This module uses `shiki/core`\n * with an explicit language set instead: the engine, themes, and grammars\n * all arrive through dynamic imports, so they land in lazy chunks and only\n * the languages listed here are ever pulled into a build.\n *\n * Consumers can extend the set at runtime with `registerCodeBlockLanguage`.\n */\nimport type { HighlighterCore, LanguageRegistration } from \"shiki/core\";\n\ntype LanguageLoader = () => Promise<{ default: LanguageRegistration[] }>;\n\n// Default grammars, chosen for scientific data-app content. Keys are the\n// canonical ids requested via `lang`; aliases map onto them below.\nconst languageLoaders = new Map<string, LanguageLoader>([\n [\"bash\", () => import(\"@shikijs/langs/bash\")],\n [\"javascript\", () => import(\"@shikijs/langs/javascript\")],\n [\"json\", () => import(\"@shikijs/langs/json\")],\n [\"markdown\", () => import(\"@shikijs/langs/markdown\")],\n [\"python\", () => import(\"@shikijs/langs/python\")],\n [\"sql\", () => import(\"@shikijs/langs/sql\")],\n [\"tsx\", () => import(\"@shikijs/langs/tsx\")],\n [\"typescript\", () => import(\"@shikijs/langs/typescript\")],\n [\"yaml\", () => import(\"@shikijs/langs/yaml\")],\n]);\n\nconst languageAliases = new Map<string, string>([\n [\"sh\", \"bash\"],\n [\"shell\", \"bash\"],\n [\"shellscript\", \"bash\"],\n [\"zsh\", \"bash\"],\n [\"js\", \"javascript\"],\n [\"jsx\", \"tsx\"],\n [\"md\", \"markdown\"],\n [\"py\", \"python\"],\n [\"ts\", \"typescript\"],\n [\"yml\", \"yaml\"],\n]);\n\n/**\n * Resolve a requested language to a registered canonical id, or null when\n * the language isn't in the set (callers fall back to plaintext).\n */\nexport function resolveCodeBlockLanguage(language: string): string | null {\n const normalized = language.trim().toLowerCase();\n const canonical = languageAliases.get(normalized) ?? normalized;\n return languageLoaders.has(canonical) ? canonical : null;\n}\n\n/** Canonical ids of every language the slim highlighter can load. */\nexport function getSupportedCodeBlockLanguages(): string[] {\n return [...languageLoaders.keys()];\n}\n\n/**\n * Register an additional grammar for `CodeBlock`/`MessageResponse` code\n * highlighting, e.g.:\n *\n * ```ts\n * registerCodeBlockLanguage(\"rust\", () => import(\"@shikijs/langs/rust\"), [\"rs\"]);\n * ```\n *\n * The loader stays a dynamic import, so added grammars are also code-split.\n */\nexport function registerCodeBlockLanguage(\n language: string,\n loader: LanguageLoader,\n aliases: string[] = [],\n): void {\n const canonical = language.trim().toLowerCase();\n languageLoaders.set(canonical, loader);\n for (const alias of aliases) {\n languageAliases.set(alias.trim().toLowerCase(), canonical);\n }\n}\n\n// One shared highlighter core; grammars are loaded into it on demand.\nlet corePromise: Promise<HighlighterCore> | null = null;\nconst loadedLanguages = new Map<string, Promise<void>>();\n\nfunction getHighlighterCore(): Promise<HighlighterCore> {\n corePromise ??= Promise.all([\n import(\"shiki/core\"),\n import(\"shiki/engine/javascript\"),\n import(\"@shikijs/themes/github-light\"),\n import(\"@shikijs/themes/github-dark\"),\n ]).then(([core, engine, githubLight, githubDark]) =>\n core.createHighlighterCore({\n // The JS regex engine avoids shipping the oniguruma WASM asset;\n // `forgiving` skips the few grammar rules it can't translate.\n engine: engine.createJavaScriptRegexEngine({ forgiving: true }),\n langs: [],\n themes: [githubLight.default, githubDark.default],\n }),\n );\n return corePromise;\n}\n\n/**\n * Get the shared highlighter with the requested language loaded. `lang` is\n * the id to pass to `codeToTokens` — the canonical id when supported,\n * otherwise \"text\" (plaintext needs no grammar).\n */\nexport async function getCodeBlockHighlighter(\n language: string,\n): Promise<{ highlighter: HighlighterCore; lang: string }> {\n const canonical = resolveCodeBlockLanguage(language);\n const highlighter = await getHighlighterCore();\n if (canonical) {\n let pending = loadedLanguages.get(canonical);\n if (!pending) {\n const loader = languageLoaders.get(canonical);\n pending = loader\n ? loader().then((grammar) => highlighter.loadLanguage(...grammar.default))\n : Promise.resolve();\n loadedLanguages.set(canonical, pending);\n }\n await pending;\n }\n return { highlighter, lang: canonical ?? \"text\" };\n}\n"],"names":["languageLoaders","languageAliases","resolveCodeBlockLanguage","language","normalized","canonical","getSupportedCodeBlockLanguages","registerCodeBlockLanguage","loader","aliases","alias","corePromise","loadedLanguages","getHighlighterCore","core","engine","githubLight","githubDark","getCodeBlockHighlighter","highlighter","pending","grammar"],"mappings":"AAkBA,MAAMA,wBAAsB,IAA4B;AAAA,EACtD,CAAC,QAAQ,MAAM,OAAO,qBAAqB,CAAC;AAAA,EAC5C,CAAC,cAAc,MAAM,OAAO,2BAA2B,CAAC;AAAA,EACxD,CAAC,QAAQ,MAAM,OAAO,qBAAqB,CAAC;AAAA,EAC5C,CAAC,YAAY,MAAM,OAAO,yBAAyB,CAAC;AAAA,EACpD,CAAC,UAAU,MAAM,OAAO,uBAAuB,CAAC;AAAA,EAChD,CAAC,OAAO,MAAM,OAAO,oBAAoB,CAAC;AAAA,EAC1C,CAAC,OAAO,MAAM,OAAO,oBAAoB,CAAC;AAAA,EAC1C,CAAC,cAAc,MAAM,OAAO,2BAA2B,CAAC;AAAA,EACxD,CAAC,QAAQ,MAAM,OAAO,qBAAqB,CAAC;AAC9C,CAAC,GAEKC,wBAAsB,IAAoB;AAAA,EAC9C,CAAC,MAAM,MAAM;AAAA,EACb,CAAC,SAAS,MAAM;AAAA,EAChB,CAAC,eAAe,MAAM;AAAA,EACtB,CAAC,OAAO,MAAM;AAAA,EACd,CAAC,MAAM,YAAY;AAAA,EACnB,CAAC,OAAO,KAAK;AAAA,EACb,CAAC,MAAM,UAAU;AAAA,EACjB,CAAC,MAAM,QAAQ;AAAA,EACf,CAAC,MAAM,YAAY;AAAA,EACnB,CAAC,OAAO,MAAM;AAChB,CAAC;AAMM,SAASC,EAAyBC,GAAiC;AACxE,QAAMC,IAAaD,EAAS,KAAA,EAAO,YAAA,GAC7BE,IAAYJ,EAAgB,IAAIG,CAAU,KAAKA;AACrD,SAAOJ,EAAgB,IAAIK,CAAS,IAAIA,IAAY;AACtD;AAGO,SAASC,IAA2C;AACzD,SAAO,CAAC,GAAGN,EAAgB,MAAM;AACnC;AAYO,SAASO,EACdJ,GACAK,GACAC,IAAoB,CAAA,GACd;AACN,QAAMJ,IAAYF,EAAS,KAAA,EAAO,YAAA;AAClC,EAAAH,EAAgB,IAAIK,GAAWG,CAAM;AACrC,aAAWE,KAASD;AAClB,IAAAR,EAAgB,IAAIS,EAAM,KAAA,EAAO,YAAA,GAAeL,CAAS;AAE7D;AAGA,IAAIM,IAA+C;AACnD,MAAMC,wBAAsB,IAAA;AAE5B,SAASC,IAA+C;AACtD,SAAAF,MAAgB,QAAQ,IAAI;AAAA,IAC1B,OAAO,YAAY;AAAA,IACnB,OAAO,yBAAyB;AAAA,IAChC,OAAO,8BAA8B;AAAA,IACrC,OAAO,6BAA6B;AAAA,EAAA,CACrC,EAAE;AAAA,IAAK,CAAC,CAACG,GAAMC,GAAQC,GAAaC,CAAU,MAC7CH,EAAK,sBAAsB;AAAA;AAAA;AAAA,MAGzB,QAAQC,EAAO,4BAA4B,EAAE,WAAW,IAAM;AAAA,MAC9D,OAAO,CAAA;AAAA,MACP,QAAQ,CAACC,EAAY,SAASC,EAAW,OAAO;AAAA,IAAA,CACjD;AAAA,EAAA,GAEIN;AACT;AAOA,eAAsBO,EACpBf,GACyD;AACzD,QAAME,IAAYH,EAAyBC,CAAQ,GAC7CgB,IAAc,MAAMN,EAAA;AAC1B,MAAIR,GAAW;AACb,QAAIe,IAAUR,EAAgB,IAAIP,CAAS;AAC3C,QAAI,CAACe,GAAS;AACZ,YAAMZ,IAASR,EAAgB,IAAIK,CAAS;AAC5C,MAAAe,IAAUZ,IACNA,EAAA,EAAS,KAAK,CAACa,MAAYF,EAAY,aAAa,GAAGE,EAAQ,OAAO,CAAC,IACvE,QAAQ,QAAA,GACZT,EAAgB,IAAIP,GAAWe,CAAO;AAAA,IACxC;AACA,UAAMA;AAAA,EACR;AACA,SAAO,EAAE,aAAAD,GAAa,MAAMd,KAAa,OAAA;AAC3C;"}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const
|
|
1
|
+
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const c=require("@tetrascience-npm/ts-connectors-sdk"),l="ts-auth-token",h=60,a=1e3,d=5*h*a;class i{baseUrlOverride;connectorId;orgSlug;tokenCache;tokenRefreshThresholdMs;tdpClient;constructor(e={}){this.baseUrlOverride=e.baseUrl,this.connectorId=process.env.CONNECTOR_ID,this.orgSlug=process.env.ORG_SLUG,this.tokenCache=new Map,this.tokenRefreshThresholdMs=e.tokenRefreshThresholdMs||d,this.tdpClient=null}getBaseUrl(){const e=this.baseUrlOverride||process.env.TDP_ENDPOINT;if(!e)throw new Error("TDP base URL not configured. Set TDP_ENDPOINT environment variable or pass baseUrl in config.");return e}decodeJwtPayload(e){try{const t=e.split(".");if(t.length!==3)return console.warn("Invalid JWT token format"),null;const n=t[1].replace(/-/g,"+").replace(/_/g,"/"),o=n.padEnd(n.length+(4-n.length%4)%4,"=");return JSON.parse(Buffer.from(o,"base64").toString("utf-8"))}catch(t){return console.warn("Error decoding JWT token:",t),null}}isPayloadExpiringSoon(e){if(!e.exp)return console.warn("JWT token has no expiration claim"),!0;const t=e.exp*a,r=Date.now()+this.tokenRefreshThresholdMs;return t<=r}getValidUserJwt(e){const t=this.tokenCache.get(e);return t&&!this.isPayloadExpiringSoon(t.payload)?t.token:(t&&this.tokenCache.delete(e),null)}async getTdpClient(){if(this.tdpClient!==null)return this.tdpClient;if(!this.connectorId||!this.orgSlug)throw new Error("Missing required configuration: CONNECTOR_ID or ORG_SLUG");const e=this.getBaseUrl();try{const t=new c.TDPClient({tdpEndpoint:e,connectorId:this.connectorId,orgSlug:this.orgSlug,artifactType:"data-app"});return await t.init(),this.tdpClient=t,this.tdpClient}catch(t){throw console.error("Failed to initialize TDP client:",t),t}}async getJwtFromTokenRefInternal(e){const t=await this.getTdpClient();try{const r=await t.getValues([e]);if(r&&r.length>0&&r[0]?.jwt){const n=r[0].jwt,o=this.decodeJwtPayload(n);return o&&this.tokenCache.set(e,{token:n,payload:o}),n}console.error(`No JWT found for key '${e}' in connector store`)}catch(r){console.error("Error retrieving JWT token:",r)}return null}async getJwtFromTokenRef(e){if(!e||!this.orgSlug)return console.warn("Missing required parameters for JWT token retrieval"),null;const t=this.getValidUserJwt(e);return t||this.getJwtFromTokenRefInternal(e)}getHeaderAuthToken(e){const t=e?.[l];return(Array.isArray(t)?t[0]:t)||null}async getUserToken(e,t){const r=this.getHeaderAuthToken(t);if(r)return r;const n=e["ts-auth-token"]||process.env.TS_AUTH_TOKEN;if(n)return n;const o=e["ts-token-ref"];if(o&&this.connectorId){const s=await this.getJwtFromTokenRef(o);if(s)return s;console.warn("Failed to resolve ts-token-ref to JWT token")}else o&&console.error("Connector ID not configured");return console.warn("No valid authentication token found"),null}async getTokenFromExpressRequest(e){return this.getUserToken(e.cookies||{},e.headers)}clearCache(){this.tokenCache.clear()}}const u=new i;exports.JwtTokenManager=i;exports.jwtManager=u;
|
|
2
2
|
//# sourceMappingURL=JwtTokenManager.cjs.map
|