@tetrascience-npm/tetrascience-react-ui 0.7.0-beta.129.1 → 0.7.0-beta.131.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +49 -0
- package/dist/ai/attachments.cjs +2 -0
- package/dist/ai/attachments.cjs.map +1 -0
- package/dist/ai/attachments.js +224 -0
- package/dist/ai/attachments.js.map +1 -0
- package/dist/ai/chain-of-thought.cjs +2 -0
- package/dist/ai/chain-of-thought.cjs.map +1 -0
- package/dist/ai/chain-of-thought.js +145 -0
- package/dist/ai/chain-of-thought.js.map +1 -0
- package/dist/ai/confirmation.cjs +2 -0
- package/dist/ai/confirmation.cjs.map +1 -0
- package/dist/ai/confirmation.js +109 -0
- package/dist/ai/confirmation.js.map +1 -0
- package/dist/ai/context.cjs +2 -0
- package/dist/ai/context.cjs.map +1 -0
- package/dist/ai/context.js +267 -0
- package/dist/ai/context.js.map +1 -0
- package/dist/ai/conversation.cjs +4 -0
- package/dist/ai/conversation.cjs.map +1 -0
- package/dist/ai/conversation.js +108 -0
- package/dist/ai/conversation.js.map +1 -0
- package/dist/ai/inline-citation.cjs +2 -0
- package/dist/ai/inline-citation.cjs.map +1 -0
- package/dist/ai/inline-citation.js +182 -0
- package/dist/ai/inline-citation.js.map +1 -0
- package/dist/ai/message.cjs +2 -0
- package/dist/ai/message.cjs.map +1 -0
- package/dist/ai/message.js +237 -0
- package/dist/ai/message.js.map +1 -0
- package/dist/ai/model-selector.cjs +2 -0
- package/dist/ai/model-selector.cjs.map +1 -0
- package/dist/ai/model-selector.js +77 -0
- package/dist/ai/model-selector.js.map +1 -0
- package/dist/ai/prompt-input.cjs +2 -0
- package/dist/ai/prompt-input.cjs.map +1 -0
- package/dist/ai/prompt-input.js +776 -0
- package/dist/ai/prompt-input.js.map +1 -0
- package/dist/ai/queue.cjs +2 -0
- package/dist/ai/queue.cjs.map +1 -0
- package/dist/ai/queue.js +209 -0
- package/dist/ai/queue.js.map +1 -0
- package/dist/ai/reasoning.cjs +2 -0
- package/dist/ai/reasoning.cjs.map +1 -0
- package/dist/ai/reasoning.js +129 -0
- package/dist/ai/reasoning.js.map +1 -0
- package/dist/ai/shimmer.cjs +2 -0
- package/dist/ai/shimmer.cjs.map +1 -0
- package/dist/ai/shimmer.js +49 -0
- package/dist/ai/shimmer.js.map +1 -0
- package/dist/ai/sources.cjs +2 -0
- package/dist/ai/sources.cjs.map +1 -0
- package/dist/ai/sources.js +54 -0
- package/dist/ai/sources.js.map +1 -0
- package/dist/ai/speech-input.cjs +2 -0
- package/dist/ai/speech-input.cjs.map +1 -0
- package/dist/ai/speech-input.js +123 -0
- package/dist/ai/speech-input.js.map +1 -0
- package/dist/ai/stream-status.cjs +2 -0
- package/dist/ai/stream-status.cjs.map +1 -0
- package/dist/ai/stream-status.js +108 -0
- package/dist/ai/stream-status.js.map +1 -0
- package/dist/ai/suggestion.cjs +2 -0
- package/dist/ai/suggestion.cjs.map +1 -0
- package/dist/ai/suggestion.js +38 -0
- package/dist/ai/suggestion.js.map +1 -0
- package/dist/ai/task.cjs +2 -0
- package/dist/ai/task.cjs.map +1 -0
- package/dist/ai/task.js +101 -0
- package/dist/ai/task.js.map +1 -0
- package/dist/ai/tool.cjs +2 -0
- package/dist/ai/tool.cjs.map +1 -0
- package/dist/ai/tool.js +139 -0
- package/dist/ai/tool.js.map +1 -0
- package/dist/charts/AreaPlot.cjs +2 -0
- package/dist/charts/AreaPlot.cjs.map +1 -0
- package/dist/charts/AreaPlot.js +5 -0
- package/dist/charts/AreaPlot.js.map +1 -0
- package/dist/charts/BarChart.cjs +2 -0
- package/dist/charts/BarChart.cjs.map +1 -0
- package/dist/charts/BarChart.js +5 -0
- package/dist/charts/BarChart.js.map +1 -0
- package/dist/charts/BoxPlot.cjs +2 -0
- package/dist/charts/BoxPlot.cjs.map +1 -0
- package/dist/charts/BoxPlot.js +5 -0
- package/dist/charts/BoxPlot.js.map +1 -0
- package/dist/charts/ChartTooltip.cjs +2 -0
- package/dist/charts/ChartTooltip.cjs.map +1 -0
- package/dist/charts/ChartTooltip.js +8 -0
- package/dist/charts/ChartTooltip.js.map +1 -0
- package/dist/charts/Chromatogram.cjs +2 -0
- package/dist/charts/Chromatogram.cjs.map +1 -0
- package/dist/charts/Chromatogram.js +5 -0
- package/dist/charts/Chromatogram.js.map +1 -0
- package/dist/charts/Electropherogram.cjs +2 -0
- package/dist/charts/Electropherogram.cjs.map +1 -0
- package/dist/charts/Electropherogram.js +5 -0
- package/dist/charts/Electropherogram.js.map +1 -0
- package/dist/charts/Histogram.cjs +2 -0
- package/dist/charts/Histogram.cjs.map +1 -0
- package/dist/charts/Histogram.js +5 -0
- package/dist/charts/Histogram.js.map +1 -0
- package/dist/charts/LinePlot.cjs +2 -0
- package/dist/charts/LinePlot.cjs.map +1 -0
- package/dist/charts/LinePlot.js +5 -0
- package/dist/charts/LinePlot.js.map +1 -0
- package/dist/charts/PieChart.cjs +2 -0
- package/dist/charts/PieChart.cjs.map +1 -0
- package/dist/charts/PieChart.js +5 -0
- package/dist/charts/PieChart.js.map +1 -0
- package/dist/charts/PlateMap.cjs +2 -0
- package/dist/charts/PlateMap.cjs.map +1 -0
- package/dist/charts/PlateMap.js +5 -0
- package/dist/charts/PlateMap.js.map +1 -0
- package/dist/charts/ScatterPlot.cjs +2 -0
- package/dist/charts/ScatterPlot.cjs.map +1 -0
- package/dist/charts/ScatterPlot.js +5 -0
- package/dist/charts/ScatterPlot.js.map +1 -0
- package/dist/charts/ScatterPlotInteractive.cjs +2 -0
- package/dist/charts/ScatterPlotInteractive.cjs.map +1 -0
- package/dist/charts/ScatterPlotInteractive.js +14 -0
- package/dist/charts/ScatterPlotInteractive.js.map +1 -0
- package/dist/charts/StackedChromatogram.cjs +2 -0
- package/dist/charts/StackedChromatogram.cjs.map +1 -0
- package/dist/charts/StackedChromatogram.js +7 -0
- package/dist/charts/StackedChromatogram.js.map +1 -0
- package/dist/components/ai/attachments.d.ts +54 -0
- package/dist/components/ai/chain-of-thought.d.ts +56 -0
- package/dist/components/ai/confirmation.d.ts +47 -0
- package/dist/components/ai/context.d.ts +40 -0
- package/dist/components/ai/conversation.d.ts +23 -0
- package/dist/components/ai/inline-citation.d.ts +38 -0
- package/dist/components/ai/message.d.ts +37 -0
- package/dist/components/ai/model-selector.d.ts +36 -0
- package/dist/components/ai/prompt-input.d.ts +158 -0
- package/dist/components/ai/queue.d.ts +72 -0
- package/dist/components/ai/reasoning.d.ts +26 -0
- package/dist/components/ai/shimmer.d.ts +17 -0
- package/dist/components/ai/sources.d.ts +12 -0
- package/dist/components/ai/speech-input.d.ts +54 -0
- package/dist/components/ai/stream-status.d.ts +66 -0
- package/dist/components/ai/streamdown-code-plugin.d.ts +2 -0
- package/dist/components/ai/streamdown-plugins.d.ts +2 -0
- package/dist/components/ai/suggestion.d.ts +9 -0
- package/dist/components/ai/task.d.ts +16 -0
- package/dist/components/ai/tool.d.ts +33 -0
- package/dist/components/ai/use-streamdown-plugins.d.ts +8 -0
- package/dist/components/charts/AreaPlot/AreaPlot.cjs +1 -1
- package/dist/components/charts/AreaPlot/AreaPlot.d.ts +39 -0
- package/dist/components/charts/AreaPlot/index.d.ts +2 -0
- package/dist/components/charts/BarChart/BarChart.cjs +1 -1
- package/dist/components/charts/BarChart/BarChart.d.ts +44 -0
- package/dist/components/charts/BarChart/index.d.ts +2 -0
- package/dist/components/charts/BoxPlot/BoxPlot.cjs +1 -1
- package/dist/components/charts/BoxPlot/BoxPlot.d.ts +33 -0
- package/dist/components/charts/BoxPlot/index.d.ts +2 -0
- package/dist/components/charts/ChartTooltip/ChartTooltip.d.ts +71 -0
- package/dist/components/charts/ChartTooltip/index.d.ts +2 -0
- package/dist/components/charts/ChartTooltip/lines.d.ts +54 -0
- package/dist/components/charts/Chromatogram/Chromatogram.d.ts +5 -0
- package/dist/components/charts/Chromatogram/annotations.cjs +1 -1
- package/dist/components/charts/Chromatogram/annotations.d.ts +50 -0
- package/dist/components/charts/Chromatogram/boundaryMarkers.cjs +1 -1
- package/dist/components/charts/Chromatogram/boundaryMarkers.d.ts +14 -0
- package/dist/components/charts/Chromatogram/constants.d.ts +46 -0
- package/dist/components/charts/Chromatogram/dataProcessing.d.ts +49 -0
- package/dist/components/charts/Chromatogram/index.d.ts +2 -0
- package/dist/components/charts/Chromatogram/peakDetection.d.ts +33 -0
- package/dist/components/charts/Chromatogram/plotBuilder.d.ts +58 -0
- package/dist/components/charts/Chromatogram/regionOverlays.cjs +1 -1
- package/dist/components/charts/Chromatogram/regionOverlays.d.ts +9 -0
- package/dist/components/charts/Chromatogram/types.d.ts +258 -0
- package/dist/components/charts/Electropherogram/Electropherogram.cjs +1 -1
- package/dist/components/charts/Electropherogram/Electropherogram.d.ts +22 -0
- package/dist/components/charts/Electropherogram/index.d.ts +2 -0
- package/dist/components/charts/Histogram/Histogram.cjs +1 -1
- package/dist/components/charts/Histogram/Histogram.d.ts +36 -0
- package/dist/components/charts/Histogram/index.d.ts +2 -0
- package/dist/components/charts/LinePlot/LinePlot.cjs +1 -1
- package/dist/components/charts/LinePlot/LinePlot.d.ts +45 -0
- package/dist/components/charts/LinePlot/index.d.ts +2 -0
- package/dist/components/charts/PieChart/PieChart.d.ts +20 -0
- package/dist/components/charts/PieChart/index.d.ts +2 -0
- package/dist/components/charts/PlateMap/PlateMap.cjs +1 -1
- package/dist/components/charts/PlateMap/PlateMap.cjs.map +1 -1
- package/dist/components/charts/PlateMap/PlateMap.d.ts +29 -0
- package/dist/components/charts/PlateMap/PlateMap.js +1 -1
- package/dist/components/charts/PlateMap/constants.d.ts +75 -0
- package/dist/components/charts/PlateMap/index.d.ts +2 -0
- package/dist/components/charts/PlateMap/types.d.ts +322 -0
- package/dist/components/charts/PlateMap/utils.d.ts +133 -0
- package/dist/components/charts/ScatterPlot/ScatterPlot.cjs +1 -1
- package/dist/components/charts/ScatterPlot/ScatterPlot.d.ts +43 -0
- package/dist/components/charts/ScatterPlot/index.d.ts +2 -0
- package/dist/components/charts/ScatterPlotInteractive/ScatterPlotInteractive.d.ts +25 -0
- package/dist/components/charts/ScatterPlotInteractive/constants.d.ts +50 -0
- package/dist/components/charts/ScatterPlotInteractive/index.d.ts +3 -0
- package/dist/components/charts/ScatterPlotInteractive/types.d.ts +226 -0
- package/dist/components/charts/ScatterPlotInteractive/utils.d.ts +72 -0
- package/dist/components/charts/StackedChromatogram/StackedChromatogram.d.ts +3 -0
- package/dist/components/charts/StackedChromatogram/index.d.ts +3 -0
- package/dist/components/charts/StackedChromatogram/transforms.d.ts +9 -0
- package/dist/components/charts/StackedChromatogram/types.d.ts +26 -0
- package/dist/components/charts/plotly-loader.cjs +1 -1
- package/dist/components/charts/plotly-loader.cjs.map +1 -1
- package/dist/components/charts/plotly-loader.d.ts +29 -0
- package/dist/components/composed/AssistantLayout/AssistantLayout.cjs +1 -1
- package/dist/components/composed/AssistantLayout/AssistantLayout.cjs.map +1 -1
- package/dist/components/composed/AssistantLayout/AssistantLayout.d.ts +63 -0
- package/dist/components/composed/AssistantLayout/AssistantLayout.js +2 -2
- package/dist/components/composed/AssistantLayout/dockLayout.d.ts +15 -0
- package/dist/components/composed/AssistantLayout/index.d.ts +3 -0
- package/dist/components/composed/Chat/Chat.cjs +1 -1
- package/dist/components/composed/Chat/Chat.cjs.map +1 -1
- package/dist/components/composed/Chat/Chat.d.ts +35 -0
- package/dist/components/composed/Chat/Chat.js +7 -7
- package/dist/components/composed/Chat/index.d.ts +2 -0
- package/dist/components/composed/ConfirmDialog/ConfirmDialog.cjs +1 -1
- package/dist/components/composed/ConfirmDialog/ConfirmDialog.cjs.map +1 -1
- package/dist/components/composed/ConfirmDialog/ConfirmDialog.d.ts +23 -0
- package/dist/components/composed/ConfirmDialog/ConfirmDialog.js +4 -4
- package/dist/components/composed/ConfirmDialog/index.d.ts +1 -0
- package/dist/components/composed/DataAppShell/CollapseButton.cjs +1 -1
- package/dist/components/composed/DataAppShell/CollapseButton.cjs.map +1 -1
- package/dist/components/composed/DataAppShell/CollapseButton.d.ts +23 -0
- package/dist/components/composed/DataAppShell/CollapseButton.js +2 -2
- package/dist/components/composed/DataAppShell/DataAppShell.cjs +1 -1
- package/dist/components/composed/DataAppShell/DataAppShell.cjs.map +1 -1
- package/dist/components/composed/DataAppShell/DataAppShell.d.ts +88 -0
- package/dist/components/composed/DataAppShell/DataAppShell.js +5 -5
- package/dist/components/composed/DataAppShell/PrimaryNav.cjs +1 -1
- package/dist/components/composed/DataAppShell/PrimaryNav.cjs.map +1 -1
- package/dist/components/composed/DataAppShell/PrimaryNav.d.ts +64 -0
- package/dist/components/composed/DataAppShell/PrimaryNav.js +2 -2
- package/dist/components/composed/DataAppShell/RightPanel.cjs +1 -1
- package/dist/components/composed/DataAppShell/RightPanel.cjs.map +1 -1
- package/dist/components/composed/DataAppShell/RightPanel.d.ts +95 -0
- package/dist/components/composed/DataAppShell/RightPanel.js +2 -2
- package/dist/components/composed/DataAppShell/SecondaryNav.cjs +1 -1
- package/dist/components/composed/DataAppShell/SecondaryNav.cjs.map +1 -1
- package/dist/components/composed/DataAppShell/SecondaryNav.d.ts +63 -0
- package/dist/components/composed/DataAppShell/SecondaryNav.js +3 -3
- package/dist/components/composed/DataAppShell/ShellContext.d.ts +20 -0
- package/dist/components/composed/DataAppShell/index.d.ts +12 -0
- package/dist/components/composed/EmptyState/EmptyState.d.ts +12 -0
- package/dist/components/composed/EmptyState/index.d.ts +2 -0
- package/dist/components/composed/FormPatterns/FormSection.cjs +1 -1
- package/dist/components/composed/FormPatterns/FormSection.cjs.map +1 -1
- package/dist/components/composed/FormPatterns/FormSection.d.ts +7 -0
- package/dist/components/composed/FormPatterns/FormSection.js +2 -2
- package/dist/components/composed/FormPatterns/index.d.ts +1 -0
- package/dist/components/composed/MoleculeStructure/MoleculeStructure.cjs +1 -1
- package/dist/components/composed/MoleculeStructure/MoleculeStructure.cjs.map +1 -1
- package/dist/components/composed/MoleculeStructure/MoleculeStructure.d.ts +43 -0
- package/dist/components/composed/MoleculeStructure/MoleculeStructure.js +1 -1
- package/dist/components/composed/MoleculeStructure/index.d.ts +3 -0
- package/dist/components/composed/MoleculeStructure/rdkit-loader.cjs +1 -1
- package/dist/components/composed/MoleculeStructure/rdkit-loader.cjs.map +1 -1
- package/dist/components/composed/MoleculeStructure/rdkit-loader.d.ts +104 -0
- package/dist/components/composed/MoleculeStructure/use-rdkit.d.ts +29 -0
- package/dist/components/composed/PlateMapEditor/ManifestFilterPopover.cjs +1 -1
- package/dist/components/composed/PlateMapEditor/ManifestFilterPopover.cjs.map +1 -1
- package/dist/components/composed/PlateMapEditor/ManifestFilterPopover.d.ts +12 -0
- package/dist/components/composed/PlateMapEditor/ManifestFilterPopover.js +4 -4
- package/dist/components/composed/PlateMapEditor/PlateMapActionsMenu.cjs +1 -1
- package/dist/components/composed/PlateMapEditor/PlateMapActionsMenu.cjs.map +1 -1
- package/dist/components/composed/PlateMapEditor/PlateMapActionsMenu.d.ts +22 -0
- package/dist/components/composed/PlateMapEditor/PlateMapActionsMenu.js +2 -2
- package/dist/components/composed/PlateMapEditor/PlateMapEditor.cjs +1 -1
- package/dist/components/composed/PlateMapEditor/PlateMapEditor.cjs.map +1 -1
- package/dist/components/composed/PlateMapEditor/PlateMapEditor.d.ts +106 -0
- package/dist/components/composed/PlateMapEditor/PlateMapEditor.js +2 -2
- package/dist/components/composed/PlateMapEditor/PlateMapForm.cjs +1 -1
- package/dist/components/composed/PlateMapEditor/PlateMapForm.cjs.map +1 -1
- package/dist/components/composed/PlateMapEditor/PlateMapForm.d.ts +30 -0
- package/dist/components/composed/PlateMapEditor/PlateMapForm.js +1 -1
- package/dist/components/composed/PlateMapEditor/PlateMapGrid.cjs +1 -1
- package/dist/components/composed/PlateMapEditor/PlateMapGrid.cjs.map +1 -1
- package/dist/components/composed/PlateMapEditor/PlateMapGrid.d.ts +64 -0
- package/dist/components/composed/PlateMapEditor/PlateMapGrid.js +1 -1
- package/dist/components/composed/PlateMapEditor/PlateMapManifest.d.ts +29 -0
- package/dist/components/composed/PlateMapEditor/PlateMapPlateSelector.cjs +1 -1
- package/dist/components/composed/PlateMapEditor/PlateMapPlateSelector.cjs.map +1 -1
- package/dist/components/composed/PlateMapEditor/PlateMapPlateSelector.d.ts +19 -0
- package/dist/components/composed/PlateMapEditor/PlateMapPlateSelector.js +4 -4
- package/dist/components/composed/PlateMapEditor/PlatePaintGrid.d.ts +73 -0
- package/dist/components/composed/PlateMapEditor/PlateZoomControl.cjs +1 -1
- package/dist/components/composed/PlateMapEditor/PlateZoomControl.cjs.map +1 -1
- package/dist/components/composed/PlateMapEditor/PlateZoomControl.d.ts +12 -0
- package/dist/components/composed/PlateMapEditor/PlateZoomControl.js +2 -2
- package/dist/components/composed/PlateMapEditor/TemplateIOPanel.cjs +1 -1
- package/dist/components/composed/PlateMapEditor/TemplateIOPanel.cjs.map +1 -1
- package/dist/components/composed/PlateMapEditor/TemplateIOPanel.d.ts +13 -0
- package/dist/components/composed/PlateMapEditor/TemplateIOPanel.js +4 -4
- package/dist/components/composed/PlateMapEditor/WellLegend.cjs +1 -1
- package/dist/components/composed/PlateMapEditor/WellLegend.cjs.map +1 -1
- package/dist/components/composed/PlateMapEditor/WellLegend.d.ts +21 -0
- package/dist/components/composed/PlateMapEditor/WellLegend.js +2 -2
- package/dist/components/composed/PlateMapEditor/WellManifestTable.cjs +1 -1
- package/dist/components/composed/PlateMapEditor/WellManifestTable.cjs.map +1 -1
- package/dist/components/composed/PlateMapEditor/WellManifestTable.d.ts +46 -0
- package/dist/components/composed/PlateMapEditor/WellManifestTable.js +9 -9
- package/dist/components/composed/PlateMapEditor/WellMetadataForm.cjs +1 -1
- package/dist/components/composed/PlateMapEditor/WellMetadataForm.cjs.map +1 -1
- package/dist/components/composed/PlateMapEditor/WellMetadataForm.d.ts +17 -0
- package/dist/components/composed/PlateMapEditor/WellMetadataForm.js +7 -7
- package/dist/components/composed/PlateMapEditor/autoFill.d.ts +26 -0
- package/dist/components/composed/PlateMapEditor/csvPlateTriage.d.ts +4 -0
- package/dist/components/composed/PlateMapEditor/helpers.d.ts +2 -0
- package/dist/components/composed/PlateMapEditor/index.d.ts +31 -0
- package/dist/components/composed/PlateMapEditor/types.d.ts +137 -0
- package/dist/components/composed/PlateMapEditor/wellGrid.d.ts +12 -0
- package/dist/components/composed/ProcessFlow/ProcessFlow.d.ts +32 -0
- package/dist/components/composed/ProcessFlow/ProcessFlow.utils.d.ts +86 -0
- package/dist/components/composed/ProcessFlow/index.d.ts +1 -0
- package/dist/components/composed/RichListItem/RichListItem.cjs +1 -1
- package/dist/components/composed/RichListItem/RichListItem.cjs.map +1 -1
- package/dist/components/composed/RichListItem/RichListItem.d.ts +22 -0
- package/dist/components/composed/RichListItem/RichListItem.js +2 -2
- package/dist/components/composed/RichListItem/index.d.ts +2 -0
- package/dist/components/composed/StatCard/StatCard.cjs +1 -1
- package/dist/components/composed/StatCard/StatCard.cjs.map +1 -1
- package/dist/components/composed/StatCard/StatCard.d.ts +11 -0
- package/dist/components/composed/StatCard/StatCard.js +1 -1
- package/dist/components/composed/StatCard/index.d.ts +1 -0
- package/dist/components/composed/TdpSearch/TdpSearch.cjs +1 -1
- package/dist/components/composed/TdpSearch/TdpSearch.cjs.map +1 -1
- package/dist/components/composed/TdpSearch/TdpSearch.d.ts +21 -0
- package/dist/components/composed/TdpSearch/TdpSearch.js +14 -13
- package/dist/components/composed/TdpSearch/TdpSearch.mocks.d.ts +5 -0
- package/dist/components/composed/TdpSearch/components/DefaultFilters.cjs +1 -1
- package/dist/components/composed/TdpSearch/components/DefaultFilters.cjs.map +1 -1
- package/dist/components/composed/TdpSearch/components/DefaultFilters.d.ts +3 -0
- package/dist/components/composed/TdpSearch/components/DefaultFilters.js +1 -1
- package/dist/components/composed/TdpSearch/components/DefaultResults.cjs +1 -1
- package/dist/components/composed/TdpSearch/components/DefaultResults.cjs.map +1 -1
- package/dist/components/composed/TdpSearch/components/DefaultResults.d.ts +3 -0
- package/dist/components/composed/TdpSearch/components/DefaultResults.js +2 -2
- package/dist/components/composed/TdpSearch/components/DefaultSearchBar.cjs +1 -1
- package/dist/components/composed/TdpSearch/components/DefaultSearchBar.cjs.map +1 -1
- package/dist/components/composed/TdpSearch/components/DefaultSearchBar.d.ts +3 -0
- package/dist/components/composed/TdpSearch/components/DefaultSearchBar.js +2 -2
- package/dist/components/composed/TdpSearch/constants.d.ts +3 -0
- package/dist/components/composed/TdpSearch/hooks/useSearch.d.ts +2 -0
- package/dist/components/composed/TdpSearch/hooks/useTdpCredentials.d.ts +14 -0
- package/dist/components/composed/TdpSearch/index.d.ts +3 -0
- package/dist/components/composed/TdpSearch/types.d.ts +128 -0
- package/dist/components/composed/TdpSearch/utils.d.ts +3 -0
- package/dist/components/composed/TopBar/TopBar.d.ts +25 -0
- package/dist/components/composed/TopBar/index.d.ts +2 -0
- package/dist/components/composed/UserMenu/UserMenu.cjs +1 -1
- package/dist/components/composed/UserMenu/UserMenu.cjs.map +1 -1
- package/dist/components/composed/UserMenu/UserMenu.d.ts +53 -0
- package/dist/components/composed/UserMenu/UserMenu.js +2 -2
- package/dist/components/composed/UserMenu/index.d.ts +2 -0
- package/dist/components/composed/tdp-link.d.ts +110 -0
- package/dist/components/composed/tdp-url.d.ts +68 -0
- package/dist/components/ui/accordion.d.ts +7 -0
- package/dist/components/ui/alert-dialog.d.ts +18 -0
- package/dist/components/ui/alert.d.ts +10 -0
- package/dist/components/ui/aspect-ratio.d.ts +3 -0
- package/dist/components/ui/avatar.d.ts +11 -0
- package/dist/components/ui/badge.d.ts +9 -0
- package/dist/components/ui/banner.d.ts +19 -0
- package/dist/components/ui/breadcrumb.d.ts +11 -0
- package/dist/components/ui/button-group.d.ts +11 -0
- package/dist/components/ui/button.d.ts +10 -0
- package/dist/components/ui/calendar.d.ts +10 -0
- package/dist/components/ui/card.d.ts +11 -0
- package/dist/components/ui/carousel.d.ts +28 -0
- package/dist/components/ui/checkbox.d.ts +4 -0
- package/dist/components/ui/code-block.d.ts +45 -0
- package/dist/components/ui/code-editor.d.ts +18 -0
- package/dist/components/ui/collapsible.d.ts +5 -0
- package/dist/components/ui/combobox.d.ts +24 -0
- package/dist/components/ui/command.d.ts +18 -0
- package/dist/components/ui/context-menu.d.ts +31 -0
- package/dist/components/ui/data-table/data-table-column-toggle.cjs +1 -1
- package/dist/components/ui/data-table/data-table-column-toggle.cjs.map +1 -1
- package/dist/components/ui/data-table/data-table-column-toggle.d.ts +6 -0
- package/dist/components/ui/data-table/data-table-column-toggle.js +1 -1
- package/dist/components/ui/data-table/data-table-filter.cjs +1 -1
- package/dist/components/ui/data-table/data-table-filter.cjs.map +1 -1
- package/dist/components/ui/data-table/data-table-filter.d.ts +9 -0
- package/dist/components/ui/data-table/data-table-filter.js +3 -3
- package/dist/components/ui/data-table/data-table-group.cjs +1 -1
- package/dist/components/ui/data-table/data-table-group.cjs.map +1 -1
- package/dist/components/ui/data-table/data-table-group.d.ts +9 -0
- package/dist/components/ui/data-table/data-table-group.js +2 -2
- package/dist/components/ui/data-table/data-table-pagination.cjs +1 -1
- package/dist/components/ui/data-table/data-table-pagination.cjs.map +1 -1
- package/dist/components/ui/data-table/data-table-pagination.d.ts +7 -0
- package/dist/components/ui/data-table/data-table-pagination.js +2 -2
- package/dist/components/ui/data-table/data-table.cjs +1 -1
- package/dist/components/ui/data-table/data-table.cjs.map +1 -1
- package/dist/components/ui/data-table/data-table.d.ts +82 -0
- package/dist/components/ui/data-table/data-table.js +1 -1
- package/dist/components/ui/data-table/index.d.ts +5 -0
- package/dist/components/ui/dialog.d.ts +18 -0
- package/dist/components/ui/dropdown-menu.d.ts +29 -0
- package/dist/components/ui/field.d.ts +24 -0
- package/dist/components/ui/hover-card.d.ts +6 -0
- package/dist/components/ui/input-group.d.ts +16 -0
- package/dist/components/ui/input.d.ts +3 -0
- package/dist/components/ui/item.d.ts +23 -0
- package/dist/components/ui/kbd.d.ts +3 -0
- package/dist/components/ui/label.d.ts +4 -0
- package/dist/components/ui/menubar.d.ts +30 -0
- package/dist/components/ui/navigation-menu.d.ts +14 -0
- package/dist/components/ui/popover.d.ts +7 -0
- package/dist/components/ui/progress.d.ts +4 -0
- package/dist/components/ui/radio-group.d.ts +5 -0
- package/dist/components/ui/resizable.d.ts +25 -0
- package/dist/components/ui/scroll-area.d.ts +5 -0
- package/dist/components/ui/select.d.ts +15 -0
- package/dist/components/ui/separator.d.ts +4 -0
- package/dist/components/ui/sheet.d.ts +14 -0
- package/dist/components/ui/sidebar.d.ts +69 -0
- package/dist/components/ui/skeleton.d.ts +2 -0
- package/dist/components/ui/slider.d.ts +4 -0
- package/dist/components/ui/snippet.d.ts +18 -0
- package/dist/components/ui/sonner.d.ts +3 -0
- package/dist/components/ui/spinner.d.ts +6 -0
- package/dist/components/ui/switch.d.ts +6 -0
- package/dist/components/ui/table.d.ts +22 -0
- package/dist/components/ui/tabs.d.ts +11 -0
- package/dist/components/ui/tetra-molecule-icon.d.ts +11 -0
- package/dist/components/ui/tetrascience-icon.d.ts +7 -0
- package/dist/components/ui/textarea.d.ts +3 -0
- package/dist/components/ui/toggle-group.d.ts +10 -0
- package/dist/components/ui/toggle.d.ts +9 -0
- package/dist/components/ui/tooltip.d.ts +7 -0
- package/dist/composed/AssistantLayout.cjs +2 -0
- package/dist/composed/AssistantLayout.cjs.map +1 -0
- package/dist/composed/AssistantLayout.js +10 -0
- package/dist/composed/AssistantLayout.js.map +1 -0
- package/dist/composed/Chat.cjs +2 -0
- package/dist/composed/Chat.cjs.map +1 -0
- package/dist/composed/Chat.js +5 -0
- package/dist/composed/Chat.js.map +1 -0
- package/dist/composed/ConfirmDialog.cjs +2 -0
- package/dist/composed/ConfirmDialog.cjs.map +1 -0
- package/dist/composed/ConfirmDialog.js +5 -0
- package/dist/composed/ConfirmDialog.js.map +1 -0
- package/dist/composed/DataAppShell.cjs +2 -0
- package/dist/composed/DataAppShell.cjs.map +1 -0
- package/dist/composed/DataAppShell.js +22 -0
- package/dist/composed/DataAppShell.js.map +1 -0
- package/dist/composed/EmptyState.cjs +2 -0
- package/dist/composed/EmptyState.cjs.map +1 -0
- package/dist/composed/EmptyState.js +5 -0
- package/dist/composed/EmptyState.js.map +1 -0
- package/dist/composed/FormPatterns.cjs +2 -0
- package/dist/composed/FormPatterns.cjs.map +1 -0
- package/dist/composed/FormPatterns.js +5 -0
- package/dist/composed/FormPatterns.js.map +1 -0
- package/dist/composed/MoleculeStructure.cjs +2 -0
- package/dist/composed/MoleculeStructure.cjs.map +1 -0
- package/dist/composed/MoleculeStructure.js +11 -0
- package/dist/composed/MoleculeStructure.js.map +1 -0
- package/dist/composed/PlateMapEditor.cjs +2 -0
- package/dist/composed/PlateMapEditor.cjs.map +1 -0
- package/dist/composed/PlateMapEditor.js +45 -0
- package/dist/composed/PlateMapEditor.js.map +1 -0
- package/dist/composed/ProcessFlow.cjs +2 -0
- package/dist/composed/ProcessFlow.cjs.map +1 -0
- package/dist/composed/ProcessFlow.js +7 -0
- package/dist/composed/ProcessFlow.js.map +1 -0
- package/dist/composed/RichListItem.cjs +2 -0
- package/dist/composed/RichListItem.cjs.map +1 -0
- package/dist/composed/RichListItem.js +6 -0
- package/dist/composed/RichListItem.js.map +1 -0
- package/dist/composed/StatCard.cjs +2 -0
- package/dist/composed/StatCard.cjs.map +1 -0
- package/dist/composed/StatCard.js +5 -0
- package/dist/composed/StatCard.js.map +1 -0
- package/dist/composed/TdpSearch.cjs +2 -0
- package/dist/composed/TdpSearch.cjs.map +1 -0
- package/dist/composed/TdpSearch.js +8 -0
- package/dist/composed/TdpSearch.js.map +1 -0
- package/dist/composed/TopBar.cjs +2 -0
- package/dist/composed/TopBar.cjs.map +1 -0
- package/dist/composed/TopBar.js +6 -0
- package/dist/composed/TopBar.js.map +1 -0
- package/dist/composed/UserMenu.cjs +2 -0
- package/dist/composed/UserMenu.cjs.map +1 -0
- package/dist/composed/UserMenu.js +7 -0
- package/dist/composed/UserMenu.js.map +1 -0
- package/dist/composed/tdp-link.cjs +2 -0
- package/dist/composed/tdp-link.cjs.map +1 -0
- package/dist/composed/tdp-link.js.map +1 -0
- package/dist/composed/tdp-url.cjs.map +1 -0
- package/dist/composed/tdp-url.js.map +1 -0
- package/dist/hooks/use-code-editor-theme.d.ts +34 -0
- package/dist/hooks/use-element-size.d.ts +25 -0
- package/dist/hooks/use-is-dark.d.ts +12 -0
- package/dist/hooks/use-mobile.d.ts +1 -0
- package/dist/hooks/use-plotly-theme.d.ts +49 -0
- package/dist/index.cjs +1 -1
- package/dist/index.css +1 -1
- package/dist/index.d.ts +102 -5448
- package/dist/index.js +72 -72
- package/dist/jest-setup.cjs +4 -0
- package/dist/jest-setup.cjs.map +1 -0
- package/dist/jest-setup.d.ts +106 -0
- package/dist/jest-setup.js +218 -0
- package/dist/jest-setup.js.map +1 -0
- package/dist/lib/shiki.cjs +1 -1
- package/dist/lib/shiki.cjs.map +1 -1
- package/dist/lib/shiki.d.ts +32 -0
- package/dist/lib/utils.d.ts +2 -0
- package/dist/server/auth/JwtTokenManager.cjs +1 -1
- package/dist/server/auth/JwtTokenManager.cjs.map +1 -1
- package/dist/server/auth/JwtTokenManager.d.ts +113 -0
- package/dist/server/auth/JwtTokenManager.js +44 -21
- package/dist/server/auth/JwtTokenManager.js.map +1 -1
- package/dist/server/auth/index.d.ts +5 -0
- package/dist/server/index.d.ts +8 -0
- package/dist/server/providers/AthenaProvider.cjs +1 -1
- package/dist/server/providers/AthenaProvider.cjs.map +1 -1
- package/dist/server/providers/AthenaProvider.d.ts +75 -0
- package/dist/server/providers/DatabricksProvider.cjs +1 -1
- package/dist/server/providers/DatabricksProvider.cjs.map +1 -1
- package/dist/server/providers/DatabricksProvider.d.ts +38 -0
- package/dist/server/providers/SnowflakeProvider.cjs +1 -1
- package/dist/server/providers/SnowflakeProvider.cjs.map +1 -1
- package/dist/server/providers/SnowflakeProvider.d.ts +36 -0
- package/dist/server/providers/buildProvider.d.ts +39 -0
- package/dist/server/providers/entries/athena.d.ts +24 -0
- package/dist/server/providers/entries/databricks.d.ts +25 -0
- package/dist/server/providers/entries/snowflake.d.ts +25 -0
- package/dist/server/providers/exceptions.d.ts +36 -0
- package/dist/server/providers/getProviderConfigurations.d.ts +45 -0
- package/dist/server/providers/index.d.ts +31 -0
- package/dist/server/providers/providerDiscovery.d.ts +81 -0
- package/dist/server/providers/types.d.ts +145 -0
- package/dist/server/search/TdpSearchManager.d.ts +40 -0
- package/dist/server/search/index.d.ts +5 -0
- package/dist/server.d.ts +17 -540
- package/dist/ui/accordion.cjs +2 -0
- package/dist/ui/accordion.cjs.map +1 -0
- package/dist/ui/accordion.js +83 -0
- package/dist/ui/accordion.js.map +1 -0
- package/dist/ui/alert-dialog.cjs +2 -0
- package/dist/ui/alert-dialog.cjs.map +1 -0
- package/dist/ui/alert-dialog.js +181 -0
- package/dist/ui/alert-dialog.js.map +1 -0
- package/dist/ui/alert.cjs +2 -0
- package/dist/ui/alert.cjs.map +1 -0
- package/dist/ui/alert.js +81 -0
- package/dist/ui/alert.js.map +1 -0
- package/dist/ui/aspect-ratio.cjs.map +1 -0
- package/dist/ui/aspect-ratio.js.map +1 -0
- package/dist/ui/avatar.cjs +2 -0
- package/dist/ui/avatar.cjs.map +1 -0
- package/dist/ui/avatar.js +107 -0
- package/dist/ui/avatar.js.map +1 -0
- package/dist/ui/badge.cjs +2 -0
- package/dist/ui/badge.cjs.map +1 -0
- package/dist/ui/badge.js +47 -0
- package/dist/ui/badge.js.map +1 -0
- package/dist/ui/banner.cjs +2 -0
- package/dist/ui/banner.cjs.map +1 -0
- package/dist/ui/banner.js +80 -0
- package/dist/ui/banner.js.map +1 -0
- package/dist/ui/breadcrumb.cjs +2 -0
- package/dist/ui/breadcrumb.cjs.map +1 -0
- package/dist/ui/breadcrumb.js +118 -0
- package/dist/ui/breadcrumb.js.map +1 -0
- package/dist/ui/button-group.cjs +2 -0
- package/dist/ui/button-group.cjs.map +1 -0
- package/dist/ui/button-group.js +77 -0
- package/dist/ui/button-group.js.map +1 -0
- package/dist/ui/button.cjs +2 -0
- package/dist/ui/button.cjs.map +1 -0
- package/dist/ui/button.js +57 -0
- package/dist/ui/button.js.map +1 -0
- package/dist/ui/calendar.cjs +2 -0
- package/dist/ui/calendar.cjs.map +1 -0
- package/dist/ui/calendar.js +174 -0
- package/dist/ui/calendar.js.map +1 -0
- package/dist/ui/card.cjs +2 -0
- package/dist/ui/card.cjs.map +1 -0
- package/dist/ui/card.js +102 -0
- package/dist/ui/card.js.map +1 -0
- package/dist/ui/carousel.cjs +2 -0
- package/dist/ui/carousel.cjs.map +1 -0
- package/dist/ui/carousel.js +179 -0
- package/dist/ui/carousel.js.map +1 -0
- package/dist/ui/checkbox.cjs +2 -0
- package/dist/ui/checkbox.cjs.map +1 -0
- package/dist/ui/checkbox.js +35 -0
- package/dist/ui/checkbox.js.map +1 -0
- package/dist/ui/code-block.cjs +4 -0
- package/dist/ui/code-block.cjs.map +1 -0
- package/dist/ui/code-block.js +324 -0
- package/dist/ui/code-block.js.map +1 -0
- package/dist/ui/code-editor.cjs +2 -0
- package/dist/ui/code-editor.cjs.map +1 -0
- package/dist/ui/code-editor.js +106 -0
- package/dist/ui/code-editor.js.map +1 -0
- package/dist/ui/collapsible.cjs.map +1 -0
- package/dist/ui/collapsible.js.map +1 -0
- package/dist/ui/combobox.cjs +2 -0
- package/dist/ui/combobox.cjs.map +1 -0
- package/dist/ui/combobox.js +285 -0
- package/dist/ui/combobox.js.map +1 -0
- package/dist/ui/command.cjs +2 -0
- package/dist/ui/command.cjs.map +1 -0
- package/dist/ui/command.js +178 -0
- package/dist/ui/command.js.map +1 -0
- package/dist/ui/context-menu.cjs +2 -0
- package/dist/ui/context-menu.cjs.map +1 -0
- package/dist/ui/context-menu.js +236 -0
- package/dist/ui/context-menu.js.map +1 -0
- package/dist/ui/data-table.cjs +2 -0
- package/dist/ui/data-table.cjs.map +1 -0
- package/dist/ui/data-table.js +16 -0
- package/dist/ui/data-table.js.map +1 -0
- package/dist/ui/dialog.cjs +2 -0
- package/dist/ui/dialog.cjs.map +1 -0
- package/dist/ui/dialog.js +165 -0
- package/dist/ui/dialog.js.map +1 -0
- package/dist/ui/dropdown-menu.cjs +2 -0
- package/dist/ui/dropdown-menu.cjs.map +1 -0
- package/dist/ui/dropdown-menu.js +260 -0
- package/dist/ui/dropdown-menu.js.map +1 -0
- package/dist/ui/field.cjs +2 -0
- package/dist/ui/field.cjs.map +1 -0
- package/dist/ui/field.js +210 -0
- package/dist/ui/field.js.map +1 -0
- package/dist/ui/hover-card.cjs +2 -0
- package/dist/ui/hover-card.cjs.map +1 -0
- package/dist/ui/hover-card.js +39 -0
- package/dist/ui/hover-card.js.map +1 -0
- package/dist/ui/input-group.cjs +2 -0
- package/dist/ui/input-group.cjs.map +1 -0
- package/dist/ui/input-group.js +145 -0
- package/dist/ui/input-group.js.map +1 -0
- package/dist/ui/input.cjs +2 -0
- package/dist/ui/input.cjs.map +1 -0
- package/dist/ui/input.js +20 -0
- package/dist/ui/input.js.map +1 -0
- package/dist/ui/item.cjs +2 -0
- package/dist/ui/item.cjs.map +1 -0
- package/dist/ui/item.js +199 -0
- package/dist/ui/item.js.map +1 -0
- package/dist/ui/kbd.cjs +2 -0
- package/dist/ui/kbd.cjs.map +1 -0
- package/dist/ui/kbd.js +30 -0
- package/dist/ui/kbd.js.map +1 -0
- package/dist/ui/label.cjs +2 -0
- package/dist/ui/label.cjs.map +1 -0
- package/dist/ui/label.js +23 -0
- package/dist/ui/label.js.map +1 -0
- package/dist/ui/menubar.cjs +2 -0
- package/dist/ui/menubar.cjs.map +1 -0
- package/dist/ui/menubar.js +256 -0
- package/dist/ui/menubar.js.map +1 -0
- package/dist/ui/navigation-menu.cjs +2 -0
- package/dist/ui/navigation-menu.cjs.map +1 -0
- package/dist/ui/navigation-menu.js +164 -0
- package/dist/ui/navigation-menu.js.map +1 -0
- package/dist/ui/popover.cjs +2 -0
- package/dist/ui/popover.cjs.map +1 -0
- package/dist/ui/popover.js +45 -0
- package/dist/ui/popover.js.map +1 -0
- package/dist/ui/radio-group.cjs +2 -0
- package/dist/ui/radio-group.cjs.map +1 -0
- package/dist/ui/radio-group.js +45 -0
- package/dist/ui/radio-group.js.map +1 -0
- package/dist/ui/resizable.cjs +2 -0
- package/dist/ui/resizable.cjs.map +1 -0
- package/dist/ui/resizable.js +58 -0
- package/dist/ui/resizable.js.map +1 -0
- package/dist/ui/scroll-area.cjs +2 -0
- package/dist/ui/scroll-area.cjs.map +1 -0
- package/dist/ui/scroll-area.js +61 -0
- package/dist/ui/scroll-area.js.map +1 -0
- package/dist/ui/select.cjs +2 -0
- package/dist/ui/select.cjs.map +1 -0
- package/dist/ui/select.js +184 -0
- package/dist/ui/select.js.map +1 -0
- package/dist/ui/separator.cjs +2 -0
- package/dist/ui/separator.cjs.map +1 -0
- package/dist/ui/separator.js +27 -0
- package/dist/ui/separator.js.map +1 -0
- package/dist/ui/sheet.cjs +2 -0
- package/dist/ui/sheet.cjs.map +1 -0
- package/dist/ui/sheet.js +137 -0
- package/dist/ui/sheet.js.map +1 -0
- package/dist/ui/sidebar.cjs +2 -0
- package/dist/ui/sidebar.cjs.map +1 -0
- package/dist/ui/sidebar.js +579 -0
- package/dist/ui/sidebar.js.map +1 -0
- package/dist/ui/skeleton.cjs +2 -0
- package/dist/ui/skeleton.cjs.map +1 -0
- package/dist/ui/skeleton.js +24 -0
- package/dist/ui/skeleton.js.map +1 -0
- package/dist/ui/slider.cjs +2 -0
- package/dist/ui/slider.cjs.map +1 -0
- package/dist/ui/slider.js +61 -0
- package/dist/ui/slider.js.map +1 -0
- package/dist/ui/sonner.cjs +2 -0
- package/dist/ui/sonner.cjs.map +1 -0
- package/dist/ui/sonner.js +52 -0
- package/dist/ui/sonner.js.map +1 -0
- package/dist/ui/spinner.cjs +2 -0
- package/dist/ui/spinner.cjs.map +1 -0
- package/dist/ui/spinner.js +39 -0
- package/dist/ui/spinner.js.map +1 -0
- package/dist/ui/switch.cjs +2 -0
- package/dist/ui/switch.cjs.map +1 -0
- package/dist/ui/switch.js +32 -0
- package/dist/ui/switch.js.map +1 -0
- package/dist/ui/table.cjs +2 -0
- package/dist/ui/table.cjs.map +1 -0
- package/dist/ui/table.js +153 -0
- package/dist/ui/table.js.map +1 -0
- package/dist/ui/tabs.cjs +2 -0
- package/dist/ui/tabs.cjs.map +1 -0
- package/dist/ui/tabs.js +92 -0
- package/dist/ui/tabs.js.map +1 -0
- package/dist/ui/tetra-molecule-icon.cjs +2 -0
- package/dist/ui/tetra-molecule-icon.cjs.map +1 -0
- package/dist/ui/tetra-molecule-icon.js +50 -0
- package/dist/ui/tetra-molecule-icon.js.map +1 -0
- package/dist/ui/tetrascience-icon.cjs +2 -0
- package/dist/ui/tetrascience-icon.cjs.map +1 -0
- package/dist/ui/tetrascience-icon.js +47 -0
- package/dist/ui/tetrascience-icon.js.map +1 -0
- package/dist/ui/textarea.cjs +2 -0
- package/dist/ui/textarea.cjs.map +1 -0
- package/dist/ui/textarea.js +19 -0
- package/dist/ui/textarea.js.map +1 -0
- package/dist/ui/toggle-group.cjs +2 -0
- package/dist/ui/toggle-group.cjs.map +1 -0
- package/dist/ui/toggle-group.js +81 -0
- package/dist/ui/toggle-group.js.map +1 -0
- package/dist/ui/toggle.cjs +2 -0
- package/dist/ui/toggle.cjs.map +1 -0
- package/dist/ui/toggle.js +44 -0
- package/dist/ui/toggle.js.map +1 -0
- package/dist/ui/tooltip.cjs +2 -0
- package/dist/ui/tooltip.cjs.map +1 -0
- package/dist/ui/tooltip.js +56 -0
- package/dist/ui/tooltip.js.map +1 -0
- package/dist/utils/colors.d.ts +50 -0
- package/package.json +113 -10
- package/dist/athena.d.ts +0 -167
- package/dist/components/ai/attachments.cjs +0 -2
- package/dist/components/ai/attachments.cjs.map +0 -1
- package/dist/components/ai/attachments.js +0 -224
- package/dist/components/ai/attachments.js.map +0 -1
- package/dist/components/ai/chain-of-thought.cjs +0 -2
- package/dist/components/ai/chain-of-thought.cjs.map +0 -1
- package/dist/components/ai/chain-of-thought.js +0 -145
- package/dist/components/ai/chain-of-thought.js.map +0 -1
- package/dist/components/ai/confirmation.cjs +0 -2
- package/dist/components/ai/confirmation.cjs.map +0 -1
- package/dist/components/ai/confirmation.js +0 -109
- package/dist/components/ai/confirmation.js.map +0 -1
- package/dist/components/ai/context.cjs +0 -2
- package/dist/components/ai/context.cjs.map +0 -1
- package/dist/components/ai/context.js +0 -267
- package/dist/components/ai/context.js.map +0 -1
- package/dist/components/ai/conversation.cjs +0 -4
- package/dist/components/ai/conversation.cjs.map +0 -1
- package/dist/components/ai/conversation.js +0 -108
- package/dist/components/ai/conversation.js.map +0 -1
- package/dist/components/ai/inline-citation.cjs +0 -2
- package/dist/components/ai/inline-citation.cjs.map +0 -1
- package/dist/components/ai/inline-citation.js +0 -182
- package/dist/components/ai/inline-citation.js.map +0 -1
- package/dist/components/ai/message.cjs +0 -2
- package/dist/components/ai/message.cjs.map +0 -1
- package/dist/components/ai/message.js +0 -237
- package/dist/components/ai/message.js.map +0 -1
- package/dist/components/ai/model-selector.cjs +0 -2
- package/dist/components/ai/model-selector.cjs.map +0 -1
- package/dist/components/ai/model-selector.js +0 -77
- package/dist/components/ai/model-selector.js.map +0 -1
- package/dist/components/ai/prompt-input.cjs +0 -2
- package/dist/components/ai/prompt-input.cjs.map +0 -1
- package/dist/components/ai/prompt-input.js +0 -776
- package/dist/components/ai/prompt-input.js.map +0 -1
- package/dist/components/ai/queue.cjs +0 -2
- package/dist/components/ai/queue.cjs.map +0 -1
- package/dist/components/ai/queue.js +0 -209
- package/dist/components/ai/queue.js.map +0 -1
- package/dist/components/ai/reasoning.cjs +0 -2
- package/dist/components/ai/reasoning.cjs.map +0 -1
- package/dist/components/ai/reasoning.js +0 -129
- package/dist/components/ai/reasoning.js.map +0 -1
- package/dist/components/ai/shimmer.cjs +0 -2
- package/dist/components/ai/shimmer.cjs.map +0 -1
- package/dist/components/ai/shimmer.js +0 -49
- package/dist/components/ai/shimmer.js.map +0 -1
- package/dist/components/ai/sources.cjs +0 -2
- package/dist/components/ai/sources.cjs.map +0 -1
- package/dist/components/ai/sources.js +0 -54
- package/dist/components/ai/sources.js.map +0 -1
- package/dist/components/ai/speech-input.cjs +0 -2
- package/dist/components/ai/speech-input.cjs.map +0 -1
- package/dist/components/ai/speech-input.js +0 -123
- package/dist/components/ai/speech-input.js.map +0 -1
- package/dist/components/ai/stream-status.cjs +0 -2
- package/dist/components/ai/stream-status.cjs.map +0 -1
- package/dist/components/ai/stream-status.js +0 -108
- package/dist/components/ai/stream-status.js.map +0 -1
- package/dist/components/ai/suggestion.cjs +0 -2
- package/dist/components/ai/suggestion.cjs.map +0 -1
- package/dist/components/ai/suggestion.js +0 -38
- package/dist/components/ai/suggestion.js.map +0 -1
- package/dist/components/ai/task.cjs +0 -2
- package/dist/components/ai/task.cjs.map +0 -1
- package/dist/components/ai/task.js +0 -101
- package/dist/components/ai/task.js.map +0 -1
- package/dist/components/ai/tool.cjs +0 -2
- package/dist/components/ai/tool.cjs.map +0 -1
- package/dist/components/ai/tool.js +0 -139
- package/dist/components/ai/tool.js.map +0 -1
- package/dist/components/composed/tdp-link.cjs +0 -2
- package/dist/components/composed/tdp-link.cjs.map +0 -1
- package/dist/components/composed/tdp-link.js.map +0 -1
- package/dist/components/composed/tdp-url.cjs.map +0 -1
- package/dist/components/composed/tdp-url.js.map +0 -1
- package/dist/components/ui/accordion.cjs +0 -2
- package/dist/components/ui/accordion.cjs.map +0 -1
- package/dist/components/ui/accordion.js +0 -83
- package/dist/components/ui/accordion.js.map +0 -1
- package/dist/components/ui/alert-dialog.cjs +0 -2
- package/dist/components/ui/alert-dialog.cjs.map +0 -1
- package/dist/components/ui/alert-dialog.js +0 -181
- package/dist/components/ui/alert-dialog.js.map +0 -1
- package/dist/components/ui/alert.cjs +0 -2
- package/dist/components/ui/alert.cjs.map +0 -1
- package/dist/components/ui/alert.js +0 -81
- package/dist/components/ui/alert.js.map +0 -1
- package/dist/components/ui/aspect-ratio.cjs.map +0 -1
- package/dist/components/ui/aspect-ratio.js.map +0 -1
- package/dist/components/ui/avatar.cjs +0 -2
- package/dist/components/ui/avatar.cjs.map +0 -1
- package/dist/components/ui/avatar.js +0 -107
- package/dist/components/ui/avatar.js.map +0 -1
- package/dist/components/ui/badge.cjs +0 -2
- package/dist/components/ui/badge.cjs.map +0 -1
- package/dist/components/ui/badge.js +0 -47
- package/dist/components/ui/badge.js.map +0 -1
- package/dist/components/ui/banner.cjs +0 -2
- package/dist/components/ui/banner.cjs.map +0 -1
- package/dist/components/ui/banner.js +0 -80
- package/dist/components/ui/banner.js.map +0 -1
- package/dist/components/ui/breadcrumb.cjs +0 -2
- package/dist/components/ui/breadcrumb.cjs.map +0 -1
- package/dist/components/ui/breadcrumb.js +0 -118
- package/dist/components/ui/breadcrumb.js.map +0 -1
- package/dist/components/ui/button-group.cjs +0 -2
- package/dist/components/ui/button-group.cjs.map +0 -1
- package/dist/components/ui/button-group.js +0 -77
- package/dist/components/ui/button-group.js.map +0 -1
- package/dist/components/ui/button.cjs +0 -2
- package/dist/components/ui/button.cjs.map +0 -1
- package/dist/components/ui/button.js +0 -57
- package/dist/components/ui/button.js.map +0 -1
- package/dist/components/ui/calendar.cjs +0 -2
- package/dist/components/ui/calendar.cjs.map +0 -1
- package/dist/components/ui/calendar.js +0 -174
- package/dist/components/ui/calendar.js.map +0 -1
- package/dist/components/ui/card.cjs +0 -2
- package/dist/components/ui/card.cjs.map +0 -1
- package/dist/components/ui/card.js +0 -102
- package/dist/components/ui/card.js.map +0 -1
- package/dist/components/ui/carousel.cjs +0 -2
- package/dist/components/ui/carousel.cjs.map +0 -1
- package/dist/components/ui/carousel.js +0 -179
- package/dist/components/ui/carousel.js.map +0 -1
- package/dist/components/ui/checkbox.cjs +0 -2
- package/dist/components/ui/checkbox.cjs.map +0 -1
- package/dist/components/ui/checkbox.js +0 -35
- package/dist/components/ui/checkbox.js.map +0 -1
- package/dist/components/ui/code-block.cjs +0 -4
- package/dist/components/ui/code-block.cjs.map +0 -1
- package/dist/components/ui/code-block.js +0 -324
- package/dist/components/ui/code-block.js.map +0 -1
- package/dist/components/ui/code-editor.cjs +0 -2
- package/dist/components/ui/code-editor.cjs.map +0 -1
- package/dist/components/ui/code-editor.js +0 -105
- package/dist/components/ui/code-editor.js.map +0 -1
- package/dist/components/ui/collapsible.cjs.map +0 -1
- package/dist/components/ui/collapsible.js.map +0 -1
- package/dist/components/ui/combobox.cjs +0 -2
- package/dist/components/ui/combobox.cjs.map +0 -1
- package/dist/components/ui/combobox.js +0 -285
- package/dist/components/ui/combobox.js.map +0 -1
- package/dist/components/ui/command.cjs +0 -2
- package/dist/components/ui/command.cjs.map +0 -1
- package/dist/components/ui/command.js +0 -178
- package/dist/components/ui/command.js.map +0 -1
- package/dist/components/ui/context-menu.cjs +0 -2
- package/dist/components/ui/context-menu.cjs.map +0 -1
- package/dist/components/ui/context-menu.js +0 -236
- package/dist/components/ui/context-menu.js.map +0 -1
- package/dist/components/ui/dialog.cjs +0 -2
- package/dist/components/ui/dialog.cjs.map +0 -1
- package/dist/components/ui/dialog.js +0 -165
- package/dist/components/ui/dialog.js.map +0 -1
- package/dist/components/ui/dropdown-menu.cjs +0 -2
- package/dist/components/ui/dropdown-menu.cjs.map +0 -1
- package/dist/components/ui/dropdown-menu.js +0 -260
- package/dist/components/ui/dropdown-menu.js.map +0 -1
- package/dist/components/ui/field.cjs +0 -2
- package/dist/components/ui/field.cjs.map +0 -1
- package/dist/components/ui/field.js +0 -210
- package/dist/components/ui/field.js.map +0 -1
- package/dist/components/ui/hover-card.cjs +0 -2
- package/dist/components/ui/hover-card.cjs.map +0 -1
- package/dist/components/ui/hover-card.js +0 -39
- package/dist/components/ui/hover-card.js.map +0 -1
- package/dist/components/ui/input-group.cjs +0 -2
- package/dist/components/ui/input-group.cjs.map +0 -1
- package/dist/components/ui/input-group.js +0 -145
- package/dist/components/ui/input-group.js.map +0 -1
- package/dist/components/ui/input.cjs +0 -2
- package/dist/components/ui/input.cjs.map +0 -1
- package/dist/components/ui/input.js +0 -20
- package/dist/components/ui/input.js.map +0 -1
- package/dist/components/ui/item.cjs +0 -2
- package/dist/components/ui/item.cjs.map +0 -1
- package/dist/components/ui/item.js +0 -199
- package/dist/components/ui/item.js.map +0 -1
- package/dist/components/ui/kbd.cjs +0 -2
- package/dist/components/ui/kbd.cjs.map +0 -1
- package/dist/components/ui/kbd.js +0 -30
- package/dist/components/ui/kbd.js.map +0 -1
- package/dist/components/ui/label.cjs +0 -2
- package/dist/components/ui/label.cjs.map +0 -1
- package/dist/components/ui/label.js +0 -23
- package/dist/components/ui/label.js.map +0 -1
- package/dist/components/ui/menubar.cjs +0 -2
- package/dist/components/ui/menubar.cjs.map +0 -1
- package/dist/components/ui/menubar.js +0 -256
- package/dist/components/ui/menubar.js.map +0 -1
- package/dist/components/ui/navigation-menu.cjs +0 -2
- package/dist/components/ui/navigation-menu.cjs.map +0 -1
- package/dist/components/ui/navigation-menu.js +0 -164
- package/dist/components/ui/navigation-menu.js.map +0 -1
- package/dist/components/ui/popover.cjs +0 -2
- package/dist/components/ui/popover.cjs.map +0 -1
- package/dist/components/ui/popover.js +0 -45
- package/dist/components/ui/popover.js.map +0 -1
- package/dist/components/ui/radio-group.cjs +0 -2
- package/dist/components/ui/radio-group.cjs.map +0 -1
- package/dist/components/ui/radio-group.js +0 -45
- package/dist/components/ui/radio-group.js.map +0 -1
- package/dist/components/ui/resizable.cjs +0 -2
- package/dist/components/ui/resizable.cjs.map +0 -1
- package/dist/components/ui/resizable.js +0 -58
- package/dist/components/ui/resizable.js.map +0 -1
- package/dist/components/ui/scroll-area.cjs +0 -2
- package/dist/components/ui/scroll-area.cjs.map +0 -1
- package/dist/components/ui/scroll-area.js +0 -61
- package/dist/components/ui/scroll-area.js.map +0 -1
- package/dist/components/ui/select.cjs +0 -2
- package/dist/components/ui/select.cjs.map +0 -1
- package/dist/components/ui/select.js +0 -184
- package/dist/components/ui/select.js.map +0 -1
- package/dist/components/ui/separator.cjs +0 -2
- package/dist/components/ui/separator.cjs.map +0 -1
- package/dist/components/ui/separator.js +0 -27
- package/dist/components/ui/separator.js.map +0 -1
- package/dist/components/ui/sheet.cjs +0 -2
- package/dist/components/ui/sheet.cjs.map +0 -1
- package/dist/components/ui/sheet.js +0 -137
- package/dist/components/ui/sheet.js.map +0 -1
- package/dist/components/ui/sidebar.cjs +0 -2
- package/dist/components/ui/sidebar.cjs.map +0 -1
- package/dist/components/ui/sidebar.js +0 -579
- package/dist/components/ui/sidebar.js.map +0 -1
- package/dist/components/ui/skeleton.cjs +0 -2
- package/dist/components/ui/skeleton.cjs.map +0 -1
- package/dist/components/ui/skeleton.js +0 -24
- package/dist/components/ui/skeleton.js.map +0 -1
- package/dist/components/ui/slider.cjs +0 -2
- package/dist/components/ui/slider.cjs.map +0 -1
- package/dist/components/ui/slider.js +0 -61
- package/dist/components/ui/slider.js.map +0 -1
- package/dist/components/ui/sonner.cjs +0 -2
- package/dist/components/ui/sonner.cjs.map +0 -1
- package/dist/components/ui/sonner.js +0 -52
- package/dist/components/ui/sonner.js.map +0 -1
- package/dist/components/ui/spinner.cjs +0 -2
- package/dist/components/ui/spinner.cjs.map +0 -1
- package/dist/components/ui/spinner.js +0 -39
- package/dist/components/ui/spinner.js.map +0 -1
- package/dist/components/ui/switch.cjs +0 -2
- package/dist/components/ui/switch.cjs.map +0 -1
- package/dist/components/ui/switch.js +0 -32
- package/dist/components/ui/switch.js.map +0 -1
- package/dist/components/ui/table.cjs +0 -2
- package/dist/components/ui/table.cjs.map +0 -1
- package/dist/components/ui/table.js +0 -153
- package/dist/components/ui/table.js.map +0 -1
- package/dist/components/ui/tabs.cjs +0 -2
- package/dist/components/ui/tabs.cjs.map +0 -1
- package/dist/components/ui/tabs.js +0 -92
- package/dist/components/ui/tabs.js.map +0 -1
- package/dist/components/ui/tetra-molecule-icon.cjs +0 -2
- package/dist/components/ui/tetra-molecule-icon.cjs.map +0 -1
- package/dist/components/ui/tetra-molecule-icon.js +0 -49
- package/dist/components/ui/tetra-molecule-icon.js.map +0 -1
- package/dist/components/ui/tetrascience-icon.cjs +0 -2
- package/dist/components/ui/tetrascience-icon.cjs.map +0 -1
- package/dist/components/ui/tetrascience-icon.js +0 -46
- package/dist/components/ui/tetrascience-icon.js.map +0 -1
- package/dist/components/ui/textarea.cjs +0 -2
- package/dist/components/ui/textarea.cjs.map +0 -1
- package/dist/components/ui/textarea.js +0 -19
- package/dist/components/ui/textarea.js.map +0 -1
- package/dist/components/ui/toggle-group.cjs +0 -2
- package/dist/components/ui/toggle-group.cjs.map +0 -1
- package/dist/components/ui/toggle-group.js +0 -81
- package/dist/components/ui/toggle-group.js.map +0 -1
- package/dist/components/ui/toggle.cjs +0 -2
- package/dist/components/ui/toggle.cjs.map +0 -1
- package/dist/components/ui/toggle.js +0 -44
- package/dist/components/ui/toggle.js.map +0 -1
- package/dist/components/ui/tooltip.cjs +0 -2
- package/dist/components/ui/tooltip.cjs.map +0 -1
- package/dist/components/ui/tooltip.js +0 -56
- package/dist/components/ui/tooltip.js.map +0 -1
- package/dist/databricks.d.ts +0 -129
- package/dist/providers/athena.d.ts +0 -9
- package/dist/providers/databricks.d.ts +0 -9
- package/dist/providers/snowflake.d.ts +0 -9
- package/dist/snowflake.d.ts +0 -125
- /package/dist/{components/composed → composed}/tdp-link.js +0 -0
- /package/dist/{components/composed → composed}/tdp-url.cjs +0 -0
- /package/dist/{components/composed → composed}/tdp-url.js +0 -0
- /package/dist/{components/ui → ui}/aspect-ratio.cjs +0 -0
- /package/dist/{components/ui → ui}/aspect-ratio.js +0 -0
- /package/dist/{components/ui → ui}/collapsible.cjs +0 -0
- /package/dist/{components/ui → ui}/collapsible.js +0 -0
|
@@ -0,0 +1,226 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* A single data point in the scatter plot
|
|
3
|
+
*/
|
|
4
|
+
export interface ScatterPoint {
|
|
5
|
+
/** Unique identifier for the point */
|
|
6
|
+
id: string | number;
|
|
7
|
+
/** X-axis value */
|
|
8
|
+
x: number;
|
|
9
|
+
/** Y-axis value */
|
|
10
|
+
y: number;
|
|
11
|
+
/** Optional label for the point */
|
|
12
|
+
label?: string;
|
|
13
|
+
/** Additional metadata for tooltips and styling */
|
|
14
|
+
metadata?: Record<string, unknown>;
|
|
15
|
+
}
|
|
16
|
+
/**
|
|
17
|
+
* Scale type for axes
|
|
18
|
+
*/
|
|
19
|
+
export type ScaleType = "linear" | "log";
|
|
20
|
+
/**
|
|
21
|
+
* Marker shape for scatter points
|
|
22
|
+
*/
|
|
23
|
+
export type MarkerShape = "circle" | "square" | "diamond" | "cross" | "x" | "triangle-up" | "triangle-down" | "star";
|
|
24
|
+
/**
|
|
25
|
+
* Selection mode for interactive selection
|
|
26
|
+
*/
|
|
27
|
+
export type SelectionMode = "replace" | "add" | "remove" | "toggle";
|
|
28
|
+
/**
|
|
29
|
+
* Color mapping configuration
|
|
30
|
+
*/
|
|
31
|
+
export interface ColorMapping {
|
|
32
|
+
/** Type of mapping: data-driven or static */
|
|
33
|
+
type: "static" | "continuous" | "categorical";
|
|
34
|
+
/** Static color value (for type: "static") */
|
|
35
|
+
value?: string;
|
|
36
|
+
/** Data field to map (for type: "continuous" | "categorical") */
|
|
37
|
+
field?: string;
|
|
38
|
+
/** Color scale for continuous mapping */
|
|
39
|
+
colorScale?: string | Array<[number, string]>;
|
|
40
|
+
/** Discrete colors for categorical mapping */
|
|
41
|
+
categoryColors?: Record<string, string>;
|
|
42
|
+
/** Min/max values for continuous mapping (auto-calculated if not provided) */
|
|
43
|
+
min?: number;
|
|
44
|
+
max?: number;
|
|
45
|
+
}
|
|
46
|
+
/**
|
|
47
|
+
* Shape mapping configuration
|
|
48
|
+
*/
|
|
49
|
+
export interface ShapeMapping {
|
|
50
|
+
/** Type of mapping: data-driven or static */
|
|
51
|
+
type: "static" | "categorical";
|
|
52
|
+
/** Static shape value (for type: "static") */
|
|
53
|
+
value?: MarkerShape;
|
|
54
|
+
/** Data field to map (for type: "categorical") */
|
|
55
|
+
field?: string;
|
|
56
|
+
/** Shape mapping for categorical values */
|
|
57
|
+
categoryShapes?: Record<string, MarkerShape>;
|
|
58
|
+
}
|
|
59
|
+
/**
|
|
60
|
+
* Size mapping configuration
|
|
61
|
+
*/
|
|
62
|
+
export interface SizeMapping {
|
|
63
|
+
/** Type of mapping: data-driven or static */
|
|
64
|
+
type: "static" | "continuous" | "categorical";
|
|
65
|
+
/** Static size value (for type: "static") */
|
|
66
|
+
value?: number;
|
|
67
|
+
/** Data field to map (for type: "continuous" | "categorical") */
|
|
68
|
+
field?: string;
|
|
69
|
+
/** Size range for continuous mapping */
|
|
70
|
+
sizeRange?: [number, number];
|
|
71
|
+
/** Discrete sizes for categorical mapping */
|
|
72
|
+
categorySizes?: Record<string, number>;
|
|
73
|
+
/** Min/max values for continuous mapping (auto-calculated if not provided) */
|
|
74
|
+
min?: number;
|
|
75
|
+
max?: number;
|
|
76
|
+
}
|
|
77
|
+
/**
|
|
78
|
+
* Axis configuration
|
|
79
|
+
*/
|
|
80
|
+
export interface AxisConfig {
|
|
81
|
+
/** Axis label */
|
|
82
|
+
title?: string;
|
|
83
|
+
/** Scale type (linear or log) */
|
|
84
|
+
scale?: ScaleType;
|
|
85
|
+
/** Fixed axis range [min, max] */
|
|
86
|
+
range?: [number, number];
|
|
87
|
+
/** Auto-range with optional padding percentage (0-1) */
|
|
88
|
+
autoRange?: boolean;
|
|
89
|
+
/** Padding percentage for auto-range (default: 0.1 = 10%) */
|
|
90
|
+
autoRangePadding?: number;
|
|
91
|
+
}
|
|
92
|
+
/**
|
|
93
|
+
* Tooltip configuration
|
|
94
|
+
*/
|
|
95
|
+
export interface TooltipConfig {
|
|
96
|
+
/** Enable/disable tooltips */
|
|
97
|
+
enabled?: boolean;
|
|
98
|
+
/** Custom tooltip content function. Lines are separated with `<br>`. */
|
|
99
|
+
content?: (point: ScatterPoint) => string;
|
|
100
|
+
/** Fields to display in default tooltip */
|
|
101
|
+
fields?: string[];
|
|
102
|
+
/**
|
|
103
|
+
* Use Plotly's built-in hover labels instead of the theme-styled
|
|
104
|
+
* HTML tooltip rendered by the component.
|
|
105
|
+
* @default false
|
|
106
|
+
*/
|
|
107
|
+
native?: boolean;
|
|
108
|
+
}
|
|
109
|
+
/**
|
|
110
|
+
* Selection state
|
|
111
|
+
*/
|
|
112
|
+
export interface SelectionState {
|
|
113
|
+
/** Array of selected point IDs */
|
|
114
|
+
selectedIds: Set<string | number>;
|
|
115
|
+
}
|
|
116
|
+
/**
|
|
117
|
+
* Downsampling configuration for performance optimization
|
|
118
|
+
*/
|
|
119
|
+
export interface DownsamplingConfig {
|
|
120
|
+
/** Enable downsampling */
|
|
121
|
+
enabled: boolean;
|
|
122
|
+
/** Target number of points to display */
|
|
123
|
+
maxPoints?: number;
|
|
124
|
+
/** Downsampling strategy */
|
|
125
|
+
strategy?: "lttb";
|
|
126
|
+
}
|
|
127
|
+
/**
|
|
128
|
+
* Props for ScatterPlotInteractive component
|
|
129
|
+
*/
|
|
130
|
+
export interface ScatterPlotInteractiveProps {
|
|
131
|
+
/**
|
|
132
|
+
* Array of data points to plot
|
|
133
|
+
*/
|
|
134
|
+
data: ScatterPoint[];
|
|
135
|
+
/**
|
|
136
|
+
* Chart title
|
|
137
|
+
*/
|
|
138
|
+
title?: string;
|
|
139
|
+
/**
|
|
140
|
+
* X-axis configuration
|
|
141
|
+
*/
|
|
142
|
+
xAxis?: AxisConfig;
|
|
143
|
+
/**
|
|
144
|
+
* Y-axis configuration
|
|
145
|
+
*/
|
|
146
|
+
yAxis?: AxisConfig;
|
|
147
|
+
/**
|
|
148
|
+
* Color mapping configuration
|
|
149
|
+
*/
|
|
150
|
+
colorMapping?: ColorMapping;
|
|
151
|
+
/**
|
|
152
|
+
* Shape mapping configuration
|
|
153
|
+
*/
|
|
154
|
+
shapeMapping?: ShapeMapping;
|
|
155
|
+
/**
|
|
156
|
+
* Size mapping configuration
|
|
157
|
+
*/
|
|
158
|
+
sizeMapping?: SizeMapping;
|
|
159
|
+
/**
|
|
160
|
+
* Tooltip configuration
|
|
161
|
+
*/
|
|
162
|
+
tooltip?: TooltipConfig;
|
|
163
|
+
/**
|
|
164
|
+
* Enable click selection
|
|
165
|
+
* @default true
|
|
166
|
+
*/
|
|
167
|
+
enableClickSelection?: boolean;
|
|
168
|
+
/**
|
|
169
|
+
* Enable box selection (drag to select rectangular region)
|
|
170
|
+
* @default true
|
|
171
|
+
*/
|
|
172
|
+
enableBoxSelection?: boolean;
|
|
173
|
+
/**
|
|
174
|
+
* Enable lasso selection (freeform selection)
|
|
175
|
+
* @default true
|
|
176
|
+
*/
|
|
177
|
+
enableLassoSelection?: boolean;
|
|
178
|
+
/**
|
|
179
|
+
* Controlled selection state.
|
|
180
|
+
* If provided, component operates in controlled mode.
|
|
181
|
+
*/
|
|
182
|
+
selectedIds?: Set<string | number>;
|
|
183
|
+
/**
|
|
184
|
+
* Callback when selection changes
|
|
185
|
+
*/
|
|
186
|
+
onSelectionChange?: (selectedIds: Set<string | number>, mode: SelectionMode) => void;
|
|
187
|
+
/**
|
|
188
|
+
* Callback when a point is clicked
|
|
189
|
+
*/
|
|
190
|
+
onPointClick?: (point: ScatterPoint, event: MouseEvent) => void;
|
|
191
|
+
/**
|
|
192
|
+
* Downsampling configuration for large datasets
|
|
193
|
+
*/
|
|
194
|
+
downsampling?: DownsamplingConfig;
|
|
195
|
+
/**
|
|
196
|
+
* Chart width in pixels
|
|
197
|
+
* @default 800
|
|
198
|
+
*/
|
|
199
|
+
width?: number;
|
|
200
|
+
/**
|
|
201
|
+
* Chart height in pixels
|
|
202
|
+
* @default 600
|
|
203
|
+
*/
|
|
204
|
+
height?: number;
|
|
205
|
+
/**
|
|
206
|
+
* Show the continuous color-scale bar when using a continuous `colorMapping`.
|
|
207
|
+
* Has no effect for categorical or static mappings.
|
|
208
|
+
* @default true
|
|
209
|
+
*/
|
|
210
|
+
showColorBar?: boolean;
|
|
211
|
+
/**
|
|
212
|
+
* Custom CSS class name
|
|
213
|
+
*/
|
|
214
|
+
className?: string;
|
|
215
|
+
}
|
|
216
|
+
/**
|
|
217
|
+
* Data format for selection propagation between components
|
|
218
|
+
*/
|
|
219
|
+
export interface SelectionEvent {
|
|
220
|
+
/** Array of selected point IDs */
|
|
221
|
+
selectedIds: Set<string | number>;
|
|
222
|
+
/** Selection mode used */
|
|
223
|
+
mode: SelectionMode;
|
|
224
|
+
/** Source component identifier (optional) */
|
|
225
|
+
source?: string;
|
|
226
|
+
}
|
|
@@ -0,0 +1,72 @@
|
|
|
1
|
+
import { AxisConfig, ColorMapping, DownsamplingConfig, ScatterPoint, SelectionMode, ShapeMapping, SizeMapping } from './types';
|
|
2
|
+
import { PlotlyThemeColors } from '../../../hooks/use-plotly-theme';
|
|
3
|
+
/**
|
|
4
|
+
* Calculate min and max values for a numeric field in the data
|
|
5
|
+
*/
|
|
6
|
+
export declare function calculateRange(data: ScatterPoint[], field: string): {
|
|
7
|
+
min: number;
|
|
8
|
+
max: number;
|
|
9
|
+
};
|
|
10
|
+
/**
|
|
11
|
+
* Get unique categorical values from a field
|
|
12
|
+
*/
|
|
13
|
+
export declare function getUniqueCategories(data: ScatterPoint[], field: string): string[];
|
|
14
|
+
/**
|
|
15
|
+
* Map colors based on color mapping configuration
|
|
16
|
+
*/
|
|
17
|
+
export declare function mapColors(data: ScatterPoint[], colorMapping?: ColorMapping): string[];
|
|
18
|
+
/**
|
|
19
|
+
* Map shapes based on shape mapping configuration
|
|
20
|
+
*/
|
|
21
|
+
export declare function mapShapes(data: ScatterPoint[], shapeMapping?: ShapeMapping): string[];
|
|
22
|
+
/**
|
|
23
|
+
* Map sizes based on size mapping configuration
|
|
24
|
+
*/
|
|
25
|
+
export declare function mapSizes(data: ScatterPoint[], sizeMapping?: SizeMapping): number[];
|
|
26
|
+
/**
|
|
27
|
+
* Downsample data using specified strategy
|
|
28
|
+
*/
|
|
29
|
+
export declare function downsampleData(data: ScatterPoint[], config: DownsamplingConfig): ScatterPoint[];
|
|
30
|
+
/**
|
|
31
|
+
* Largest Triangle Three Buckets (LTTB) downsampling algorithm.
|
|
32
|
+
* Preserves the visual shape of the data by maximizing the triangle area
|
|
33
|
+
* formed by adjacent bucket centroids and each candidate point.
|
|
34
|
+
* Exported for unit testing
|
|
35
|
+
*/
|
|
36
|
+
export declare function lttbDownsample(data: ScatterPoint[], threshold: number): ScatterPoint[];
|
|
37
|
+
/**
|
|
38
|
+
* Generate default tooltip content
|
|
39
|
+
*/
|
|
40
|
+
export declare function generateTooltipContent(point: ScatterPoint, fields?: string[]): string;
|
|
41
|
+
/**
|
|
42
|
+
* Determine selection mode from keyboard event
|
|
43
|
+
*/
|
|
44
|
+
export declare function getSelectionMode(event: {
|
|
45
|
+
shiftKey: boolean;
|
|
46
|
+
ctrlKey: boolean;
|
|
47
|
+
metaKey: boolean;
|
|
48
|
+
}): SelectionMode;
|
|
49
|
+
/**
|
|
50
|
+
* Calculate axis range with padding.
|
|
51
|
+
*
|
|
52
|
+
* When `scale` is `"log"`, the returned range is in log10 units (what Plotly
|
|
53
|
+
* expects for `type: "log"` axes), and padding is applied in log-space so that
|
|
54
|
+
* the visual margin is proportional on the logarithmic axis.
|
|
55
|
+
*/
|
|
56
|
+
export declare function calculateAxisRange(data: ScatterPoint[], axis: "x" | "y", padding?: number, scale?: "linear" | "log"): [number, number];
|
|
57
|
+
/**
|
|
58
|
+
* Apply selection to a set of point IDs
|
|
59
|
+
*/
|
|
60
|
+
export declare function applySelection(currentSelection: Set<string | number>, newIds: Set<string | number>, mode: SelectionMode): Set<string | number>;
|
|
61
|
+
export declare const getPlotlyLayoutConfig: ({ title, xAxis, yAxis, width, height, xRange, yRange, enableLassoSelection, enableBoxSelection, theme, }: {
|
|
62
|
+
title: string | undefined;
|
|
63
|
+
xAxis: AxisConfig;
|
|
64
|
+
yAxis: AxisConfig;
|
|
65
|
+
width: number;
|
|
66
|
+
height: number;
|
|
67
|
+
xRange: [number, number] | undefined;
|
|
68
|
+
yRange: [number, number] | undefined;
|
|
69
|
+
enableLassoSelection: boolean;
|
|
70
|
+
enableBoxSelection: boolean;
|
|
71
|
+
theme: PlotlyThemeColors;
|
|
72
|
+
}) => Partial<Plotly.Layout>;
|
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
import { StackedChromatogramProps } from './types';
|
|
2
|
+
export declare function StackedChromatogram({ series, stackingMode, stackOffset, stackingOrder, annotations, ...restProps }: StackedChromatogramProps): import("react/jsx-runtime").JSX.Element;
|
|
3
|
+
export default StackedChromatogram;
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import { ChromatogramSeries, PeakAnnotation } from '../Chromatogram';
|
|
2
|
+
import { StackingMode } from './types';
|
|
3
|
+
interface TransformResult {
|
|
4
|
+
series: ChromatogramSeries[];
|
|
5
|
+
annotations: PeakAnnotation[];
|
|
6
|
+
yRange: [number, number];
|
|
7
|
+
}
|
|
8
|
+
export declare function applyStackingTransform(inputSeries: ChromatogramSeries[], inputAnnotations: PeakAnnotation[][] | undefined, mode: StackingMode, stackOffset: number, stackingOrder?: "first-on-bottom" | "first-on-top"): TransformResult;
|
|
9
|
+
export {};
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
import { ChromatogramProps, ChromatogramSeries, PeakAnnotation } from '../Chromatogram';
|
|
2
|
+
export type StackingMode = "overlay" | "stack";
|
|
3
|
+
export interface StackedChromatogramProps extends Omit<ChromatogramProps, "series" | "annotations" | "yRange"> {
|
|
4
|
+
/** Array of data series to display */
|
|
5
|
+
series: ChromatogramSeries[];
|
|
6
|
+
/** Stacking mode: 'overlay' (default) or 'stack' */
|
|
7
|
+
stackingMode?: StackingMode;
|
|
8
|
+
/**
|
|
9
|
+
* Y-offset between stacked series in data units (e.g., AU).
|
|
10
|
+
* Only applies in 'stack' mode; ignored in 'overlay'.
|
|
11
|
+
*/
|
|
12
|
+
stackOffset?: number;
|
|
13
|
+
/**
|
|
14
|
+
* Peak annotations per series, parallel to the series array.
|
|
15
|
+
* annotations[i] corresponds to series[i].
|
|
16
|
+
* In stack mode, y values are shifted by the series offset.
|
|
17
|
+
*/
|
|
18
|
+
annotations?: PeakAnnotation[][];
|
|
19
|
+
/**
|
|
20
|
+
* Controls which end of the stack series[0] lands on (stack mode only).
|
|
21
|
+
* - "first-on-bottom" (default) — series[0] sits at the base; series[N-1] is highest.
|
|
22
|
+
* - "first-on-top" — series[0] is shifted to the top; series[N-1] is at the base.
|
|
23
|
+
* Annotations follow the chosen direction.
|
|
24
|
+
*/
|
|
25
|
+
stackingOrder?: "first-on-bottom" | "first-on-top";
|
|
26
|
+
}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
"use strict";
|
|
1
|
+
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});function d(e){const t=Object.create(null,{[Symbol.toStringTag]:{value:"Module"}});if(e){for(const l in e)if(l!=="default"){const n=Object.getOwnPropertyDescriptor(e,l);Object.defineProperty(t,l,n.get?n:{enumerable:!0,get:()=>e[l]})}}return t.default=e,Object.freeze(t)}const a="Failed to load 'plotly.js-dist'. It is an optional peer dependency of @tetrascience-npm/tetrascience-react-ui required by the chart components — install it in your app (e.g. `yarn add plotly.js-dist`).";let o=null,r=null;function i(){return r??=Promise.resolve().then(()=>d(require("plotly.js-dist"))).then(e=>{const t=e;return o=t.default??t,o}).catch(e=>{throw r=null,console.error(a,e),new Error(a)}),r}function c(){if(!o)throw new Error("Plotly accessed before loadPlotly() resolved. Call loadPlotly() and draw the plot first.");return o}exports.getLoadedPlotly=c;exports.loadPlotly=i;
|
|
2
2
|
//# sourceMappingURL=plotly-loader.cjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"plotly-loader.cjs","sources":["../../../src/components/charts/plotly-loader.ts"],"sourcesContent":["/**\n * Lazy Plotly loader (SW-2007).\n *\n * The kit ships preserved ES modules with all dependencies externalized, so a\n * static `import Plotly from \"plotly.js-dist\"` in any chart lands the full\n * ~4.7 MB Plotly dist in the consumer's main chunk — before any chart renders.\n * Loading it through this module's dynamic `import()` instead lets consumer\n * bundlers split Plotly into its own chunk, fetched only when a chart mounts.\n *\n * Chart components must call `loadPlotly()` before drawing. Code that only\n * runs after a plot exists (hover handlers, resize relayouts, unmount purges)\n * can use the synchronous `getLoadedPlotly()`.\n *\n * `plotly.js-dist` is an *optional* peer dependency (SW-2007): consumers that\n * use the kit's charts must add it to their own app; consumers that don't\n * never install its ~4.7 MB. A missing peer surfaces at build time as an\n * unresolved-import error from the consumer's bundler; the runtime guard below\n * covers the rarer case where the import resolves but fails to evaluate.\n */\n\ntype PlotlyModule = typeof import(\"plotly.js-dist\");\n\nconst MISSING_PLOTLY_MESSAGE =\n \"Failed to load 'plotly.js-dist'. It is an optional peer dependency of \" +\n \"@tetrascience-npm/tetrascience-react-ui required by the chart components — \" +\n \"install it in your app (e.g. `yarn add plotly.js-dist`).\";\n\nlet loadedPlotly: PlotlyModule | null = null;\nlet plotlyPromise: Promise<PlotlyModule> | null = null;\n\n/** Import Plotly on first use; subsequent calls reuse the same promise. */\nexport function loadPlotly(): Promise<PlotlyModule> {\n plotlyPromise ??= import(\"plotly.js-dist\")\n .then((mod) => {\n // plotly.js-dist is CJS; depending on the consumer's bundler interop the\n // API surface is either the namespace itself or its `default` export.\n const withDefault = mod as PlotlyModule & { default?: PlotlyModule };\n loadedPlotly = withDefault.default ?? withDefault;\n return loadedPlotly;\n })\n .catch((error: unknown) => {\n // Reset so a later mount can retry, and rethrow with install guidance.\n plotlyPromise = null;\n console.error(MISSING_PLOTLY_MESSAGE, error);\n throw new Error(MISSING_PLOTLY_MESSAGE);\n });\n return plotlyPromise;\n}\n\n/**\n * Synchronous access to the loaded Plotly module. Only valid after\n * `loadPlotly()` has resolved — i.e. in code paths that can only run once a\n * plot has been drawn (event handlers, cleanups, resize effects).\n */\nexport function getLoadedPlotly(): PlotlyModule {\n if (!loadedPlotly) {\n throw new Error(\n \"Plotly accessed before loadPlotly() resolved. Call loadPlotly() and draw the plot first.\",\n );\n }\n return loadedPlotly;\n}\n\nexport type { PlotlyModule };\n"],"names":["MISSING_PLOTLY_MESSAGE","loadedPlotly","plotlyPromise","loadPlotly","mod","withDefault","error","getLoadedPlotly"],"mappings":"
|
|
1
|
+
{"version":3,"file":"plotly-loader.cjs","sources":["../../../src/components/charts/plotly-loader.ts"],"sourcesContent":["/**\n * Lazy Plotly loader (SW-2007).\n *\n * The kit ships preserved ES modules with all dependencies externalized, so a\n * static `import Plotly from \"plotly.js-dist\"` in any chart lands the full\n * ~4.7 MB Plotly dist in the consumer's main chunk — before any chart renders.\n * Loading it through this module's dynamic `import()` instead lets consumer\n * bundlers split Plotly into its own chunk, fetched only when a chart mounts.\n *\n * Chart components must call `loadPlotly()` before drawing. Code that only\n * runs after a plot exists (hover handlers, resize relayouts, unmount purges)\n * can use the synchronous `getLoadedPlotly()`.\n *\n * `plotly.js-dist` is an *optional* peer dependency (SW-2007): consumers that\n * use the kit's charts must add it to their own app; consumers that don't\n * never install its ~4.7 MB. A missing peer surfaces at build time as an\n * unresolved-import error from the consumer's bundler; the runtime guard below\n * covers the rarer case where the import resolves but fails to evaluate.\n */\n\ntype PlotlyModule = typeof import(\"plotly.js-dist\");\n\nconst MISSING_PLOTLY_MESSAGE =\n \"Failed to load 'plotly.js-dist'. It is an optional peer dependency of \" +\n \"@tetrascience-npm/tetrascience-react-ui required by the chart components — \" +\n \"install it in your app (e.g. `yarn add plotly.js-dist`).\";\n\nlet loadedPlotly: PlotlyModule | null = null;\nlet plotlyPromise: Promise<PlotlyModule> | null = null;\n\n/** Import Plotly on first use; subsequent calls reuse the same promise. */\nexport function loadPlotly(): Promise<PlotlyModule> {\n plotlyPromise ??= import(\"plotly.js-dist\")\n .then((mod) => {\n // plotly.js-dist is CJS; depending on the consumer's bundler interop the\n // API surface is either the namespace itself or its `default` export.\n const withDefault = mod as PlotlyModule & { default?: PlotlyModule };\n loadedPlotly = withDefault.default ?? withDefault;\n return loadedPlotly;\n })\n .catch((error: unknown) => {\n // Reset so a later mount can retry, and rethrow with install guidance.\n plotlyPromise = null;\n console.error(MISSING_PLOTLY_MESSAGE, error);\n throw new Error(MISSING_PLOTLY_MESSAGE);\n });\n return plotlyPromise;\n}\n\n/**\n * Synchronous access to the loaded Plotly module. Only valid after\n * `loadPlotly()` has resolved — i.e. in code paths that can only run once a\n * plot has been drawn (event handlers, cleanups, resize effects).\n */\nexport function getLoadedPlotly(): PlotlyModule {\n if (!loadedPlotly) {\n throw new Error(\n \"Plotly accessed before loadPlotly() resolved. Call loadPlotly() and draw the plot first.\",\n );\n }\n return loadedPlotly;\n}\n\nexport type { PlotlyModule };\n"],"names":["MISSING_PLOTLY_MESSAGE","loadedPlotly","plotlyPromise","loadPlotly","_interopNamespaceDefault","mod","withDefault","error","getLoadedPlotly"],"mappings":"6VAsBA,MAAMA,EACJ,4MAIF,IAAIC,EAAoC,KACpCC,EAA8C,KAG3C,SAASC,GAAoC,CAClD,OAAAD,IAAkB,QAAA,QAAA,EAAA,KAAA,IAAAE,EAAA,QAAO,gBAAgB,CAAA,CAAA,EACtC,KAAMC,GAAQ,CAGb,MAAMC,EAAcD,EACpB,OAAAJ,EAAeK,EAAY,SAAWA,EAC/BL,CACT,CAAC,EACA,MAAOM,GAAmB,CAEzB,MAAAL,EAAgB,KAChB,QAAQ,MAAMF,EAAwBO,CAAK,EACrC,IAAI,MAAMP,CAAsB,CACxC,CAAC,EACIE,CACT,CAOO,SAASM,GAAgC,CAC9C,GAAI,CAACP,EACH,MAAM,IAAI,MACR,0FAAA,EAGJ,OAAOA,CACT"}
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Lazy Plotly loader (SW-2007).
|
|
3
|
+
*
|
|
4
|
+
* The kit ships preserved ES modules with all dependencies externalized, so a
|
|
5
|
+
* static `import Plotly from "plotly.js-dist"` in any chart lands the full
|
|
6
|
+
* ~4.7 MB Plotly dist in the consumer's main chunk — before any chart renders.
|
|
7
|
+
* Loading it through this module's dynamic `import()` instead lets consumer
|
|
8
|
+
* bundlers split Plotly into its own chunk, fetched only when a chart mounts.
|
|
9
|
+
*
|
|
10
|
+
* Chart components must call `loadPlotly()` before drawing. Code that only
|
|
11
|
+
* runs after a plot exists (hover handlers, resize relayouts, unmount purges)
|
|
12
|
+
* can use the synchronous `getLoadedPlotly()`.
|
|
13
|
+
*
|
|
14
|
+
* `plotly.js-dist` is an *optional* peer dependency (SW-2007): consumers that
|
|
15
|
+
* use the kit's charts must add it to their own app; consumers that don't
|
|
16
|
+
* never install its ~4.7 MB. A missing peer surfaces at build time as an
|
|
17
|
+
* unresolved-import error from the consumer's bundler; the runtime guard below
|
|
18
|
+
* covers the rarer case where the import resolves but fails to evaluate.
|
|
19
|
+
*/
|
|
20
|
+
type PlotlyModule = typeof import("plotly.js-dist");
|
|
21
|
+
/** Import Plotly on first use; subsequent calls reuse the same promise. */
|
|
22
|
+
export declare function loadPlotly(): Promise<PlotlyModule>;
|
|
23
|
+
/**
|
|
24
|
+
* Synchronous access to the loaded Plotly module. Only valid after
|
|
25
|
+
* `loadPlotly()` has resolved — i.e. in code paths that can only run once a
|
|
26
|
+
* plot has been drawn (event handlers, cleanups, resize effects).
|
|
27
|
+
*/
|
|
28
|
+
export declare function getLoadedPlotly(): PlotlyModule;
|
|
29
|
+
export type { PlotlyModule };
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const s=require("react/jsx-runtime"),j=require("lucide-react"),k=require("react"),p=require("./dockLayout.cjs"),D=require("
|
|
1
|
+
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const s=require("react/jsx-runtime"),j=require("lucide-react"),k=require("react"),p=require("./dockLayout.cjs"),D=require("../../../ui/button.cjs"),x=require("../../../ui/resizable.cjs"),u=require("../../../lib/utils.cjs");function L(n){const t=Object.create(null,{[Symbol.toStringTag]:{value:"Module"}});if(n){for(const e in n)if(e!=="default"){const o=Object.getOwnPropertyDescriptor(n,e);Object.defineProperty(t,e,o.get?o:{enumerable:!0,get:()=>n[e]})}}return t.default=n,Object.freeze(t)}const l=L(k),N=l.createContext(null);function I(n,t){if(typeof window>"u")return t;const e=window.localStorage.getItem(`${n}.dock`);return e==="right"||e==="bottom"||e==="left"?e:t}function C(n,t){if(typeof window>"u")return t;const e=Number(window.localStorage.getItem(`${n}.size`));return!Number.isFinite(e)||e<=0||e>=100?t:e}function R({children:n,storageKey:t="ts-ui.assistant",defaultDock:e="left",defaultSize:o=32,defaultVisible:f=!0,persist:i=!0}){const[a,c]=l.useState(()=>i?I(t,e):e),[m,r]=l.useState(()=>i?C(t,o):o),[h,S]=l.useState(f),w=l.useCallback(d=>{c(d),i&&typeof window<"u"&&window.localStorage.setItem(`${t}.dock`,d)},[t,i]),b=l.useCallback(d=>{r(d),i&&typeof window<"u"&&window.localStorage.setItem(`${t}.size`,String(Math.round(d)))},[t,i]),v=l.useMemo(()=>({dock:a,setDock:w,size:m,setSize:b,visible:h,setVisible:S}),[a,w,m,b,h]);return s.jsx(N.Provider,{value:v,children:n})}function y(){const n=l.useContext(N);if(!n)throw new Error("useAssistantLayout must be used within an AssistantLayoutProvider");return n}const _=[{value:"left",label:"Dock assistant left",Icon:j.PanelLeft},{value:"bottom",label:"Dock assistant bottom",Icon:j.PanelBottom},{value:"right",label:"Dock assistant right",Icon:j.PanelRight}];function O({label:n="AI Assistant",className:t}){const{dock:e,setDock:o,visible:f,setVisible:i}=y();return s.jsxs("div",{className:u.cn("flex items-center gap-2",t),children:[n!=null&&s.jsx("span",{className:"text-sm font-medium",children:n}),s.jsx("div",{className:"inline-flex overflow-hidden rounded-lg border border-border",children:_.map(({value:a,label:c,Icon:m})=>{const r=f&&e===a;return s.jsx(D.Button,{variant:r?"secondary":"ghost",size:"icon-sm",className:"rounded-none bg-clip-border","aria-label":r?"Hide AI Assistant":c,"aria-pressed":r,title:r?"Hide AI Assistant":c,onClick:()=>{r?i(!1):(o(a),i(!0))},children:s.jsx(m,{className:"size-4"})},a)})})]})}const A="flex min-h-0 min-w-0 p-2",g="flex h-full min-h-0 min-w-0 flex-1 flex-col overflow-hidden rounded-lg border border-border bg-card",z="assistant";function q({assistant:n,children:t,minSize:e=20,maxSize:o=70,className:f,assistantClassName:i,contentClassName:a}){const{dock:c,size:m,setSize:r,visible:h}=y(),{orientation:S,assistantFirst:w}=p.dockPanels(c);if(!h)return s.jsx("div",{"data-slot":"assistant-layout",className:u.cn("flex min-h-0 flex-1 overflow-hidden",f),children:s.jsx("div",{className:u.cn(A,"flex-1"),children:s.jsx("div",{"data-slot":"assistant-layout-content",className:u.cn(g,a),children:t})})});const b=s.jsx(x.ResizablePanel,{id:z,defaultSize:`${m}%`,minSize:`${e}%`,maxSize:`${o}%`,className:A,children:s.jsx("div",{"data-slot":"assistant-layout-assistant",className:u.cn(g,i),children:n})}),v=s.jsx(x.ResizablePanel,{id:"content",className:A,children:s.jsx("div",{"data-slot":"assistant-layout-content",className:u.cn(g,a),children:t})});return s.jsx(x.ResizablePanelGroup,{orientation:S,"data-slot":"assistant-layout",className:u.cn("min-h-0 flex-1 overflow-hidden",f),onLayoutChanged:d=>{const P=d[z];typeof P=="number"&&r(P)},children:w?s.jsxs(s.Fragment,{children:[b,s.jsx(x.ResizableHandle,{withHandle:!0}),v]}):s.jsxs(s.Fragment,{children:[v,s.jsx(x.ResizableHandle,{withHandle:!0}),b]})},c)}exports.AssistantDockControls=O;exports.AssistantLayout=q;exports.AssistantLayoutProvider=R;exports.useAssistantLayout=y;
|
|
2
2
|
//# sourceMappingURL=AssistantLayout.cjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"AssistantLayout.cjs","sources":["../../../../src/components/composed/AssistantLayout/AssistantLayout.tsx"],"sourcesContent":["\"use client\"\n\nimport { PanelBottom, PanelLeft, PanelRight } from \"lucide-react\"\nimport * as React from \"react\"\n\nimport { dockPanels, type AssistantDock } from \"./dockLayout\"\n\nimport { Button } from \"@/components/ui/button\"\nimport {\n ResizableHandle,\n ResizablePanel,\n ResizablePanelGroup,\n} from \"@/components/ui/resizable\"\nimport { cn } from \"@/lib/utils\"\n\n// ---------------------------------------------------------------------------\n// Context + provider\n// ---------------------------------------------------------------------------\n\ninterface AssistantLayoutContextValue {\n /** Where the assistant docks. Persisted. */\n dock: AssistantDock\n setDock: (dock: AssistantDock) => void\n /** Assistant size as a percentage of the layout along the dock axis. Persisted. */\n size: number\n setSize: (size: number) => void\n /** Whether the assistant is shown. In-memory by default (resets to visible on reload). */\n visible: boolean\n setVisible: (visible: boolean) => void\n}\n\nconst AssistantLayoutContext = React.createContext<AssistantLayoutContextValue | null>(null)\n\nexport interface AssistantLayoutProviderProps {\n children: React.ReactNode\n /** localStorage key prefix for the persisted dock + size. */\n storageKey?: string\n /** Default dock when nothing is persisted. */\n defaultDock?: AssistantDock\n /** Default assistant size as a percentage (1–99) of the layout. */\n defaultSize?: number\n /** Whether the assistant starts visible. */\n defaultVisible?: boolean\n /** Persist dock + size to localStorage. Defaults to `true`. */\n persist?: boolean\n}\n\nfunction readDock(key: string, fallback: AssistantDock): AssistantDock {\n if (typeof window === \"undefined\") return fallback\n const v = window.localStorage.getItem(`${key}.dock`)\n return v === \"right\" || v === \"bottom\" || v === \"left\" ? v : fallback\n}\n\nfunction readSize(key: string, fallback: number): number {\n if (typeof window === \"undefined\") return fallback\n const v = Number(window.localStorage.getItem(`${key}.size`))\n // Persisted as a percentage; ignore anything outside the open (0, 100) range.\n if (!Number.isFinite(v) || v <= 0 || v >= 100) return fallback\n return v\n}\n\nexport function AssistantLayoutProvider({\n children,\n storageKey = \"ts-ui.assistant\",\n defaultDock = \"left\",\n defaultSize = 32,\n defaultVisible = true,\n persist = true,\n}: AssistantLayoutProviderProps) {\n const [dock, setDockState] = React.useState<AssistantDock>(() =>\n persist ? readDock(storageKey, defaultDock) : defaultDock\n )\n const [size, setSizeState] = React.useState<number>(() =>\n persist ? readSize(storageKey, defaultSize) : defaultSize\n )\n const [visible, setVisible] = React.useState(defaultVisible)\n\n const setDock = React.useCallback(\n (next: AssistantDock) => {\n setDockState(next)\n if (persist && typeof window !== \"undefined\")\n window.localStorage.setItem(`${storageKey}.dock`, next)\n },\n [storageKey, persist]\n )\n\n const setSize = React.useCallback(\n (next: number) => {\n setSizeState(next)\n if (persist && typeof window !== \"undefined\")\n window.localStorage.setItem(`${storageKey}.size`, String(Math.round(next)))\n },\n [storageKey, persist]\n )\n\n const value = React.useMemo(\n () => ({ dock, setDock, size, setSize, visible, setVisible }),\n [dock, setDock, size, setSize, visible]\n )\n\n return <AssistantLayoutContext.Provider value={value}>{children}</AssistantLayoutContext.Provider>\n}\n\nexport function useAssistantLayout(): AssistantLayoutContextValue {\n const ctx = React.useContext(AssistantLayoutContext)\n if (!ctx) throw new Error(\"useAssistantLayout must be used within an AssistantLayoutProvider\")\n return ctx\n}\n\n// ---------------------------------------------------------------------------\n// Dock controls (segmented icon control for a top bar)\n// ---------------------------------------------------------------------------\n\nconst DOCK_OPTIONS: { value: AssistantDock; label: string; Icon: typeof PanelLeft }[] = [\n { value: \"left\", label: \"Dock assistant left\", Icon: PanelLeft },\n { value: \"bottom\", label: \"Dock assistant bottom\", Icon: PanelBottom },\n { value: \"right\", label: \"Dock assistant right\", Icon: PanelRight },\n]\n\nexport interface AssistantDockControlsProps {\n /** Label shown before the icons. Pass `null` to hide it. */\n label?: React.ReactNode\n className?: string\n}\n\n/**\n * Segmented control of dock icons. Clicking an inactive icon docks + shows the\n * assistant there; clicking the active icon again hides it.\n */\nexport function AssistantDockControls({ label = \"AI Assistant\", className }: AssistantDockControlsProps) {\n const { dock, setDock, visible, setVisible } = useAssistantLayout()\n\n return (\n <div className={cn(\"flex items-center gap-2\", className)}>\n {label != null && <span className=\"text-sm font-medium\">{label}</span>}\n <div className=\"inline-flex overflow-hidden rounded-lg border border-border\">\n {DOCK_OPTIONS.map(({ value, label: optionLabel, Icon }) => {\n const active = visible && dock === value\n return (\n <Button\n key={value}\n variant={active ? \"secondary\" : \"ghost\"}\n size=\"icon-sm\"\n // bg-clip-border so the filled (active/hover) state reaches the\n // cell edge instead of leaving a 1px gap from the button's\n // transparent border + default bg-clip-padding.\n className=\"rounded-none bg-clip-border\"\n aria-label={active ? \"Hide AI Assistant\" : optionLabel}\n aria-pressed={active}\n title={active ? \"Hide AI Assistant\" : optionLabel}\n onClick={() => {\n if (active) setVisible(false)\n else {\n setDock(value)\n setVisible(true)\n }\n }}\n >\n <Icon className=\"size-4\" />\n </Button>\n )\n })}\n </div>\n </div>\n )\n}\n\n// ---------------------------------------------------------------------------\n// Layout body\n// ---------------------------------------------------------------------------\n\n// Each panel is padded so the resize handle sits in a comfortable gutter between\n// the cards rather than a hairline seam (SW-2096). The padding lives inside the\n// panel box, so react-resizable-panels' flex sizing is unaffected.\nconst PANEL_PAD = \"flex min-h-0 min-w-0 p-2\"\n// The visible card surface rendered inside each panel.\nconst CARD_CLASS =\n \"flex h-full min-h-0 min-w-0 flex-1 flex-col overflow-hidden rounded-lg border border-border bg-card\"\n\nconst ASSISTANT_PANEL_ID = \"assistant\"\n\nexport interface AssistantLayoutProps {\n /** The AI Assistant panel content (e.g. a `<Chat />`). */\n assistant: React.ReactNode\n /** The main content; fills the remaining space (and the whole body when the assistant is hidden). */\n children: React.ReactNode\n /** Min assistant size as a percentage of the layout. */\n minSize?: number\n /** Max assistant size as a percentage of the layout. */\n maxSize?: number\n className?: string\n assistantClassName?: string\n contentClassName?: string\n}\n\n/**\n * Docks the assistant left / right / bottom of the main content and resizes it\n * with the design-system `Resizable` (react-resizable-panels). Must be rendered\n * inside an `AssistantLayoutProvider`; pair with `AssistantDockControls`.\n *\n * The group is keyed by `dock`, so changing dock remounts the panels. The\n * assistant panel is therefore re-created on redock (its transient state is not\n * preserved across a dock change) — a deliberate trade-off for using the shared\n * resizable primitive rather than a bespoke splitter.\n */\nexport function AssistantLayout({\n assistant,\n children,\n minSize = 20,\n maxSize = 70,\n className,\n assistantClassName,\n contentClassName,\n}: AssistantLayoutProps) {\n const { dock, size, setSize, visible } = useAssistantLayout()\n const { orientation, assistantFirst } = dockPanels(dock)\n\n // Hidden: no resizable group, content fills the whole body.\n if (!visible) {\n return (\n <div\n data-slot=\"assistant-layout\"\n className={cn(\"flex min-h-0 flex-1 overflow-hidden\", className)}\n >\n {/* flex-1 so the lone content panel fills the width (the ResizablePanel\n self-sizes when visible; this plain div needs to be told to grow).\n Padded to match the inset the visible panels carry. */}\n <div className={cn(PANEL_PAD, \"flex-1\")}>\n <div data-slot=\"assistant-layout-content\" className={cn(CARD_CLASS, contentClassName)}>\n {children}\n </div>\n </div>\n </div>\n )\n }\n\n const assistantPanel = (\n <ResizablePanel\n id={ASSISTANT_PANEL_ID}\n defaultSize={`${size}%`}\n minSize={`${minSize}%`}\n maxSize={`${maxSize}%`}\n className={PANEL_PAD}\n >\n <div data-slot=\"assistant-layout-assistant\" className={cn(CARD_CLASS, assistantClassName)}>\n {assistant}\n </div>\n </ResizablePanel>\n )\n\n const contentPanel = (\n <ResizablePanel id=\"content\" className={PANEL_PAD}>\n <div data-slot=\"assistant-layout-content\" className={cn(CARD_CLASS, contentClassName)}>\n {children}\n </div>\n </ResizablePanel>\n )\n\n return (\n <ResizablePanelGroup\n key={dock}\n orientation={orientation}\n data-slot=\"assistant-layout\"\n className={cn(\"min-h-0 flex-1 overflow-hidden\", className)}\n onLayoutChanged={(layout) => {\n const pct = layout[ASSISTANT_PANEL_ID]\n if (typeof pct === \"number\") setSize(pct)\n }}\n >\n {assistantFirst ? (\n <>\n {assistantPanel}\n <ResizableHandle withHandle />\n {contentPanel}\n </>\n ) : (\n <>\n {contentPanel}\n <ResizableHandle withHandle />\n {assistantPanel}\n </>\n )}\n </ResizablePanelGroup>\n )\n}\n"],"names":["AssistantLayoutContext","React","readDock","key","fallback","v","readSize","AssistantLayoutProvider","children","storageKey","defaultDock","defaultSize","defaultVisible","persist","dock","setDockState","size","setSizeState","visible","setVisible","setDock","next","setSize","value","jsx","useAssistantLayout","ctx","DOCK_OPTIONS","PanelLeft","PanelBottom","PanelRight","AssistantDockControls","label","className","cn","optionLabel","Icon","active","Button","PANEL_PAD","CARD_CLASS","ASSISTANT_PANEL_ID","AssistantLayout","assistant","minSize","maxSize","assistantClassName","contentClassName","orientation","assistantFirst","dockPanels","assistantPanel","ResizablePanel","contentPanel","ResizablePanelGroup","layout","pct","jsxs","Fragment","ResizableHandle"],"mappings":"mkBA+BMA,EAAyBC,EAAM,cAAkD,IAAI,EAgB3F,SAASC,EAASC,EAAaC,EAAwC,CACrE,GAAI,OAAO,OAAW,IAAa,OAAOA,EAC1C,MAAMC,EAAI,OAAO,aAAa,QAAQ,GAAGF,CAAG,OAAO,EACnD,OAAOE,IAAM,SAAWA,IAAM,UAAYA,IAAM,OAASA,EAAID,CAC/D,CAEA,SAASE,EAASH,EAAaC,EAA0B,CACvD,GAAI,OAAO,OAAW,IAAa,OAAOA,EAC1C,MAAMC,EAAI,OAAO,OAAO,aAAa,QAAQ,GAAGF,CAAG,OAAO,CAAC,EAE3D,MAAI,CAAC,OAAO,SAASE,CAAC,GAAKA,GAAK,GAAKA,GAAK,IAAYD,EAC/CC,CACT,CAEO,SAASE,EAAwB,CACtC,SAAAC,EACA,WAAAC,EAAa,kBACb,YAAAC,EAAc,OACd,YAAAC,EAAc,GACd,eAAAC,EAAiB,GACjB,QAAAC,EAAU,EACZ,EAAiC,CAC/B,KAAM,CAACC,EAAMC,CAAY,EAAId,EAAM,SAAwB,IACzDY,EAAUX,EAASO,EAAYC,CAAW,EAAIA,CAAA,EAE1C,CAACM,EAAMC,CAAY,EAAIhB,EAAM,SAAiB,IAClDY,EAAUP,EAASG,EAAYE,CAAW,EAAIA,CAAA,EAE1C,CAACO,EAASC,CAAU,EAAIlB,EAAM,SAASW,CAAc,EAErDQ,EAAUnB,EAAM,YACnBoB,GAAwB,CACvBN,EAAaM,CAAI,EACbR,GAAW,OAAO,OAAW,KAC/B,OAAO,aAAa,QAAQ,GAAGJ,CAAU,QAASY,CAAI,CAC1D,EACA,CAACZ,EAAYI,CAAO,CAAA,EAGhBS,EAAUrB,EAAM,YACnBoB,GAAiB,CAChBJ,EAAaI,CAAI,EACbR,GAAW,OAAO,OAAW,KAC/B,OAAO,aAAa,QAAQ,GAAGJ,CAAU,QAAS,OAAO,KAAK,MAAMY,CAAI,CAAC,CAAC,CAC9E,EACA,CAACZ,EAAYI,CAAO,CAAA,EAGhBU,EAAQtB,EAAM,QAClB,KAAO,CAAE,KAAAa,EAAM,QAAAM,EAAS,KAAAJ,EAAM,QAAAM,EAAS,QAAAJ,EAAS,WAAAC,IAChD,CAACL,EAAMM,EAASJ,EAAMM,EAASJ,CAAO,CAAA,EAGxC,OAAOM,EAAAA,IAACxB,EAAuB,SAAvB,CAAgC,MAAAuB,EAAe,SAAAf,CAAA,CAAS,CAClE,CAEO,SAASiB,GAAkD,CAChE,MAAMC,EAAMzB,EAAM,WAAWD,CAAsB,EACnD,GAAI,CAAC0B,EAAK,MAAM,IAAI,MAAM,mEAAmE,EAC7F,OAAOA,CACT,CAMA,MAAMC,EAAkF,CACtF,CAAE,MAAO,OAAQ,MAAO,sBAAuB,KAAMC,EAAAA,SAAA,EACrD,CAAE,MAAO,SAAU,MAAO,wBAAyB,KAAMC,EAAAA,WAAA,EACzD,CAAE,MAAO,QAAS,MAAO,uBAAwB,KAAMC,EAAAA,UAAA,CACzD,EAYO,SAASC,EAAsB,CAAE,MAAAC,EAAQ,eAAgB,UAAAC,GAAyC,CACvG,KAAM,CAAE,KAAAnB,EAAM,QAAAM,EAAS,QAAAF,EAAS,WAAAC,CAAA,EAAeM,EAAA,EAE/C,cACG,MAAA,CAAI,UAAWS,EAAAA,GAAG,0BAA2BD,CAAS,EACpD,SAAA,CAAAD,GAAS,MAAQR,EAAAA,IAAC,OAAA,CAAK,UAAU,sBAAuB,SAAAQ,EAAM,EAC/DR,EAAAA,IAAC,MAAA,CAAI,UAAU,8DACZ,SAAAG,EAAa,IAAI,CAAC,CAAE,MAAAJ,EAAO,MAAOY,EAAa,KAAAC,CAAA,IAAW,CACzD,MAAMC,EAASnB,GAAWJ,IAASS,EACnC,OACEC,EAAAA,IAACc,EAAAA,OAAA,CAEC,QAASD,EAAS,YAAc,QAChC,KAAK,UAIL,UAAU,8BACV,aAAYA,EAAS,oBAAsBF,EAC3C,eAAcE,EACd,MAAOA,EAAS,oBAAsBF,EACtC,QAAS,IAAM,CACTE,IAAmB,EAAK,GAE1BjB,EAAQG,CAAK,EACbJ,EAAW,EAAI,EAEnB,EAEA,SAAAK,EAAAA,IAACY,EAAA,CAAK,UAAU,QAAA,CAAS,CAAA,EAlBpBb,CAAA,CAqBX,CAAC,CAAA,CACH,CAAA,EACF,CAEJ,CASA,MAAMgB,EAAY,2BAEZC,EACJ,sGAEIC,EAAqB,YA0BpB,SAASC,EAAgB,CAC9B,UAAAC,EACA,SAAAnC,EACA,QAAAoC,EAAU,GACV,QAAAC,EAAU,GACV,UAAAZ,EACA,mBAAAa,EACA,iBAAAC,CACF,EAAyB,CACvB,KAAM,CAAE,KAAAjC,EAAM,KAAAE,EAAM,QAAAM,EAAS,QAAAJ,CAAA,EAAYO,EAAA,EACnC,CAAE,YAAAuB,EAAa,eAAAC,GAAmBC,EAAAA,WAAWpC,CAAI,EAGvD,GAAI,CAACI,EACH,OACEM,EAAAA,IAAC,MAAA,CACC,YAAU,mBACV,UAAWU,EAAAA,GAAG,sCAAuCD,CAAS,EAK9D,eAAC,MAAA,CAAI,UAAWC,EAAAA,GAAGK,EAAW,QAAQ,EACpC,SAAAf,EAAAA,IAAC,MAAA,CAAI,YAAU,2BAA2B,UAAWU,EAAAA,GAAGM,EAAYO,CAAgB,EACjF,SAAAvC,EACH,CAAA,CACF,CAAA,CAAA,EAKN,MAAM2C,EACJ3B,EAAAA,IAAC4B,EAAAA,eAAA,CACC,GAAIX,EACJ,YAAa,GAAGzB,CAAI,IACpB,QAAS,GAAG4B,CAAO,IACnB,QAAS,GAAGC,CAAO,IACnB,UAAWN,EAEX,SAAAf,EAAAA,IAAC,OAAI,YAAU,6BAA6B,UAAWU,EAAAA,GAAGM,EAAYM,CAAkB,EACrF,SAAAH,CAAA,CACH,CAAA,CAAA,EAIEU,EACJ7B,MAAC4B,EAAAA,eAAA,CAAe,GAAG,UAAU,UAAWb,EACtC,SAAAf,EAAAA,IAAC,MAAA,CAAI,YAAU,2BAA2B,UAAWU,EAAAA,GAAGM,EAAYO,CAAgB,EACjF,SAAAvC,EACH,EACF,EAGF,OACEgB,EAAAA,IAAC8B,EAAAA,oBAAA,CAEC,YAAAN,EACA,YAAU,mBACV,UAAWd,EAAAA,GAAG,iCAAkCD,CAAS,EACzD,gBAAkBsB,GAAW,CAC3B,MAAMC,EAAMD,EAAOd,CAAkB,EACjC,OAAOe,GAAQ,UAAUlC,EAAQkC,CAAG,CAC1C,EAEC,WACCC,EAAAA,KAAAC,EAAAA,SAAA,CACG,SAAA,CAAAP,EACD3B,EAAAA,IAACmC,EAAAA,gBAAA,CAAgB,WAAU,EAAA,CAAC,EAC3BN,CAAA,CAAA,CACH,EAEAI,EAAAA,KAAAC,EAAAA,SAAA,CACG,SAAA,CAAAL,EACD7B,EAAAA,IAACmC,EAAAA,gBAAA,CAAgB,WAAU,EAAA,CAAC,EAC3BR,CAAA,CAAA,CACH,CAAA,EApBGrC,CAAA,CAwBX"}
|
|
1
|
+
{"version":3,"file":"AssistantLayout.cjs","sources":["../../../../src/components/composed/AssistantLayout/AssistantLayout.tsx"],"sourcesContent":["\"use client\"\n\nimport { PanelBottom, PanelLeft, PanelRight } from \"lucide-react\"\nimport * as React from \"react\"\n\nimport { dockPanels, type AssistantDock } from \"./dockLayout\"\n\nimport { Button } from \"@/components/ui/button\"\nimport {\n ResizableHandle,\n ResizablePanel,\n ResizablePanelGroup,\n} from \"@/components/ui/resizable\"\nimport { cn } from \"@/lib/utils\"\n\n// ---------------------------------------------------------------------------\n// Context + provider\n// ---------------------------------------------------------------------------\n\ninterface AssistantLayoutContextValue {\n /** Where the assistant docks. Persisted. */\n dock: AssistantDock\n setDock: (dock: AssistantDock) => void\n /** Assistant size as a percentage of the layout along the dock axis. Persisted. */\n size: number\n setSize: (size: number) => void\n /** Whether the assistant is shown. In-memory by default (resets to visible on reload). */\n visible: boolean\n setVisible: (visible: boolean) => void\n}\n\nconst AssistantLayoutContext = React.createContext<AssistantLayoutContextValue | null>(null)\n\nexport interface AssistantLayoutProviderProps {\n children: React.ReactNode\n /** localStorage key prefix for the persisted dock + size. */\n storageKey?: string\n /** Default dock when nothing is persisted. */\n defaultDock?: AssistantDock\n /** Default assistant size as a percentage (1–99) of the layout. */\n defaultSize?: number\n /** Whether the assistant starts visible. */\n defaultVisible?: boolean\n /** Persist dock + size to localStorage. Defaults to `true`. */\n persist?: boolean\n}\n\nfunction readDock(key: string, fallback: AssistantDock): AssistantDock {\n if (typeof window === \"undefined\") return fallback\n const v = window.localStorage.getItem(`${key}.dock`)\n return v === \"right\" || v === \"bottom\" || v === \"left\" ? v : fallback\n}\n\nfunction readSize(key: string, fallback: number): number {\n if (typeof window === \"undefined\") return fallback\n const v = Number(window.localStorage.getItem(`${key}.size`))\n // Persisted as a percentage; ignore anything outside the open (0, 100) range.\n if (!Number.isFinite(v) || v <= 0 || v >= 100) return fallback\n return v\n}\n\nexport function AssistantLayoutProvider({\n children,\n storageKey = \"ts-ui.assistant\",\n defaultDock = \"left\",\n defaultSize = 32,\n defaultVisible = true,\n persist = true,\n}: AssistantLayoutProviderProps) {\n const [dock, setDockState] = React.useState<AssistantDock>(() =>\n persist ? readDock(storageKey, defaultDock) : defaultDock\n )\n const [size, setSizeState] = React.useState<number>(() =>\n persist ? readSize(storageKey, defaultSize) : defaultSize\n )\n const [visible, setVisible] = React.useState(defaultVisible)\n\n const setDock = React.useCallback(\n (next: AssistantDock) => {\n setDockState(next)\n if (persist && typeof window !== \"undefined\")\n window.localStorage.setItem(`${storageKey}.dock`, next)\n },\n [storageKey, persist]\n )\n\n const setSize = React.useCallback(\n (next: number) => {\n setSizeState(next)\n if (persist && typeof window !== \"undefined\")\n window.localStorage.setItem(`${storageKey}.size`, String(Math.round(next)))\n },\n [storageKey, persist]\n )\n\n const value = React.useMemo(\n () => ({ dock, setDock, size, setSize, visible, setVisible }),\n [dock, setDock, size, setSize, visible]\n )\n\n return <AssistantLayoutContext.Provider value={value}>{children}</AssistantLayoutContext.Provider>\n}\n\nexport function useAssistantLayout(): AssistantLayoutContextValue {\n const ctx = React.useContext(AssistantLayoutContext)\n if (!ctx) throw new Error(\"useAssistantLayout must be used within an AssistantLayoutProvider\")\n return ctx\n}\n\n// ---------------------------------------------------------------------------\n// Dock controls (segmented icon control for a top bar)\n// ---------------------------------------------------------------------------\n\nconst DOCK_OPTIONS: { value: AssistantDock; label: string; Icon: typeof PanelLeft }[] = [\n { value: \"left\", label: \"Dock assistant left\", Icon: PanelLeft },\n { value: \"bottom\", label: \"Dock assistant bottom\", Icon: PanelBottom },\n { value: \"right\", label: \"Dock assistant right\", Icon: PanelRight },\n]\n\nexport interface AssistantDockControlsProps {\n /** Label shown before the icons. Pass `null` to hide it. */\n label?: React.ReactNode\n className?: string\n}\n\n/**\n * Segmented control of dock icons. Clicking an inactive icon docks + shows the\n * assistant there; clicking the active icon again hides it.\n */\nexport function AssistantDockControls({ label = \"AI Assistant\", className }: AssistantDockControlsProps) {\n const { dock, setDock, visible, setVisible } = useAssistantLayout()\n\n return (\n <div className={cn(\"flex items-center gap-2\", className)}>\n {label != null && <span className=\"text-sm font-medium\">{label}</span>}\n <div className=\"inline-flex overflow-hidden rounded-lg border border-border\">\n {DOCK_OPTIONS.map(({ value, label: optionLabel, Icon }) => {\n const active = visible && dock === value\n return (\n <Button\n key={value}\n variant={active ? \"secondary\" : \"ghost\"}\n size=\"icon-sm\"\n // bg-clip-border so the filled (active/hover) state reaches the\n // cell edge instead of leaving a 1px gap from the button's\n // transparent border + default bg-clip-padding.\n className=\"rounded-none bg-clip-border\"\n aria-label={active ? \"Hide AI Assistant\" : optionLabel}\n aria-pressed={active}\n title={active ? \"Hide AI Assistant\" : optionLabel}\n onClick={() => {\n if (active) setVisible(false)\n else {\n setDock(value)\n setVisible(true)\n }\n }}\n >\n <Icon className=\"size-4\" />\n </Button>\n )\n })}\n </div>\n </div>\n )\n}\n\n// ---------------------------------------------------------------------------\n// Layout body\n// ---------------------------------------------------------------------------\n\n// Each panel is padded so the resize handle sits in a comfortable gutter between\n// the cards rather than a hairline seam (SW-2096). The padding lives inside the\n// panel box, so react-resizable-panels' flex sizing is unaffected.\nconst PANEL_PAD = \"flex min-h-0 min-w-0 p-2\"\n// The visible card surface rendered inside each panel.\nconst CARD_CLASS =\n \"flex h-full min-h-0 min-w-0 flex-1 flex-col overflow-hidden rounded-lg border border-border bg-card\"\n\nconst ASSISTANT_PANEL_ID = \"assistant\"\n\nexport interface AssistantLayoutProps {\n /** The AI Assistant panel content (e.g. a `<Chat />`). */\n assistant: React.ReactNode\n /** The main content; fills the remaining space (and the whole body when the assistant is hidden). */\n children: React.ReactNode\n /** Min assistant size as a percentage of the layout. */\n minSize?: number\n /** Max assistant size as a percentage of the layout. */\n maxSize?: number\n className?: string\n assistantClassName?: string\n contentClassName?: string\n}\n\n/**\n * Docks the assistant left / right / bottom of the main content and resizes it\n * with the design-system `Resizable` (react-resizable-panels). Must be rendered\n * inside an `AssistantLayoutProvider`; pair with `AssistantDockControls`.\n *\n * The group is keyed by `dock`, so changing dock remounts the panels. The\n * assistant panel is therefore re-created on redock (its transient state is not\n * preserved across a dock change) — a deliberate trade-off for using the shared\n * resizable primitive rather than a bespoke splitter.\n */\nexport function AssistantLayout({\n assistant,\n children,\n minSize = 20,\n maxSize = 70,\n className,\n assistantClassName,\n contentClassName,\n}: AssistantLayoutProps) {\n const { dock, size, setSize, visible } = useAssistantLayout()\n const { orientation, assistantFirst } = dockPanels(dock)\n\n // Hidden: no resizable group, content fills the whole body.\n if (!visible) {\n return (\n <div\n data-slot=\"assistant-layout\"\n className={cn(\"flex min-h-0 flex-1 overflow-hidden\", className)}\n >\n {/* flex-1 so the lone content panel fills the width (the ResizablePanel\n self-sizes when visible; this plain div needs to be told to grow).\n Padded to match the inset the visible panels carry. */}\n <div className={cn(PANEL_PAD, \"flex-1\")}>\n <div data-slot=\"assistant-layout-content\" className={cn(CARD_CLASS, contentClassName)}>\n {children}\n </div>\n </div>\n </div>\n )\n }\n\n const assistantPanel = (\n <ResizablePanel\n id={ASSISTANT_PANEL_ID}\n defaultSize={`${size}%`}\n minSize={`${minSize}%`}\n maxSize={`${maxSize}%`}\n className={PANEL_PAD}\n >\n <div data-slot=\"assistant-layout-assistant\" className={cn(CARD_CLASS, assistantClassName)}>\n {assistant}\n </div>\n </ResizablePanel>\n )\n\n const contentPanel = (\n <ResizablePanel id=\"content\" className={PANEL_PAD}>\n <div data-slot=\"assistant-layout-content\" className={cn(CARD_CLASS, contentClassName)}>\n {children}\n </div>\n </ResizablePanel>\n )\n\n return (\n <ResizablePanelGroup\n key={dock}\n orientation={orientation}\n data-slot=\"assistant-layout\"\n className={cn(\"min-h-0 flex-1 overflow-hidden\", className)}\n onLayoutChanged={(layout) => {\n const pct = layout[ASSISTANT_PANEL_ID]\n if (typeof pct === \"number\") setSize(pct)\n }}\n >\n {assistantFirst ? (\n <>\n {assistantPanel}\n <ResizableHandle withHandle />\n {contentPanel}\n </>\n ) : (\n <>\n {contentPanel}\n <ResizableHandle withHandle />\n {assistantPanel}\n </>\n )}\n </ResizablePanelGroup>\n )\n}\n"],"names":["AssistantLayoutContext","React","readDock","key","fallback","v","readSize","AssistantLayoutProvider","children","storageKey","defaultDock","defaultSize","defaultVisible","persist","dock","setDockState","size","setSizeState","visible","setVisible","setDock","next","setSize","value","jsx","useAssistantLayout","ctx","DOCK_OPTIONS","PanelLeft","PanelBottom","PanelRight","AssistantDockControls","label","className","cn","optionLabel","Icon","active","Button","PANEL_PAD","CARD_CLASS","ASSISTANT_PANEL_ID","AssistantLayout","assistant","minSize","maxSize","assistantClassName","contentClassName","orientation","assistantFirst","dockPanels","assistantPanel","ResizablePanel","contentPanel","ResizablePanelGroup","layout","pct","jsxs","Fragment","ResizableHandle"],"mappings":"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"}
|
|
@@ -0,0 +1,63 @@
|
|
|
1
|
+
import { AssistantDock } from './dockLayout';
|
|
2
|
+
import * as React from "react";
|
|
3
|
+
interface AssistantLayoutContextValue {
|
|
4
|
+
/** Where the assistant docks. Persisted. */
|
|
5
|
+
dock: AssistantDock;
|
|
6
|
+
setDock: (dock: AssistantDock) => void;
|
|
7
|
+
/** Assistant size as a percentage of the layout along the dock axis. Persisted. */
|
|
8
|
+
size: number;
|
|
9
|
+
setSize: (size: number) => void;
|
|
10
|
+
/** Whether the assistant is shown. In-memory by default (resets to visible on reload). */
|
|
11
|
+
visible: boolean;
|
|
12
|
+
setVisible: (visible: boolean) => void;
|
|
13
|
+
}
|
|
14
|
+
export interface AssistantLayoutProviderProps {
|
|
15
|
+
children: React.ReactNode;
|
|
16
|
+
/** localStorage key prefix for the persisted dock + size. */
|
|
17
|
+
storageKey?: string;
|
|
18
|
+
/** Default dock when nothing is persisted. */
|
|
19
|
+
defaultDock?: AssistantDock;
|
|
20
|
+
/** Default assistant size as a percentage (1–99) of the layout. */
|
|
21
|
+
defaultSize?: number;
|
|
22
|
+
/** Whether the assistant starts visible. */
|
|
23
|
+
defaultVisible?: boolean;
|
|
24
|
+
/** Persist dock + size to localStorage. Defaults to `true`. */
|
|
25
|
+
persist?: boolean;
|
|
26
|
+
}
|
|
27
|
+
export declare function AssistantLayoutProvider({ children, storageKey, defaultDock, defaultSize, defaultVisible, persist, }: AssistantLayoutProviderProps): import("react/jsx-runtime").JSX.Element;
|
|
28
|
+
export declare function useAssistantLayout(): AssistantLayoutContextValue;
|
|
29
|
+
export interface AssistantDockControlsProps {
|
|
30
|
+
/** Label shown before the icons. Pass `null` to hide it. */
|
|
31
|
+
label?: React.ReactNode;
|
|
32
|
+
className?: string;
|
|
33
|
+
}
|
|
34
|
+
/**
|
|
35
|
+
* Segmented control of dock icons. Clicking an inactive icon docks + shows the
|
|
36
|
+
* assistant there; clicking the active icon again hides it.
|
|
37
|
+
*/
|
|
38
|
+
export declare function AssistantDockControls({ label, className }: AssistantDockControlsProps): import("react/jsx-runtime").JSX.Element;
|
|
39
|
+
export interface AssistantLayoutProps {
|
|
40
|
+
/** The AI Assistant panel content (e.g. a `<Chat />`). */
|
|
41
|
+
assistant: React.ReactNode;
|
|
42
|
+
/** The main content; fills the remaining space (and the whole body when the assistant is hidden). */
|
|
43
|
+
children: React.ReactNode;
|
|
44
|
+
/** Min assistant size as a percentage of the layout. */
|
|
45
|
+
minSize?: number;
|
|
46
|
+
/** Max assistant size as a percentage of the layout. */
|
|
47
|
+
maxSize?: number;
|
|
48
|
+
className?: string;
|
|
49
|
+
assistantClassName?: string;
|
|
50
|
+
contentClassName?: string;
|
|
51
|
+
}
|
|
52
|
+
/**
|
|
53
|
+
* Docks the assistant left / right / bottom of the main content and resizes it
|
|
54
|
+
* with the design-system `Resizable` (react-resizable-panels). Must be rendered
|
|
55
|
+
* inside an `AssistantLayoutProvider`; pair with `AssistantDockControls`.
|
|
56
|
+
*
|
|
57
|
+
* The group is keyed by `dock`, so changing dock remounts the panels. The
|
|
58
|
+
* assistant panel is therefore re-created on redock (its transient state is not
|
|
59
|
+
* preserved across a dock change) — a deliberate trade-off for using the shared
|
|
60
|
+
* resizable primitive rather than a bespoke splitter.
|
|
61
|
+
*/
|
|
62
|
+
export declare function AssistantLayout({ assistant, children, minSize, maxSize, className, assistantClassName, contentClassName, }: AssistantLayoutProps): import("react/jsx-runtime").JSX.Element;
|
|
63
|
+
export {};
|
|
@@ -2,8 +2,8 @@ import { jsxs as N, jsx as n, Fragment as z } from "react/jsx-runtime";
|
|
|
2
2
|
import { PanelLeft as D, PanelBottom as C, PanelRight as L } from "lucide-react";
|
|
3
3
|
import * as l from "react";
|
|
4
4
|
import { dockPanels as $ } from "./dockLayout.js";
|
|
5
|
-
import { Button as R } from "
|
|
6
|
-
import { ResizablePanel as P, ResizablePanelGroup as H, ResizableHandle as g } from "
|
|
5
|
+
import { Button as R } from "../../../ui/button.js";
|
|
6
|
+
import { ResizablePanel as P, ResizablePanelGroup as H, ResizableHandle as g } from "../../../ui/resizable.js";
|
|
7
7
|
import { cn as d } from "../../../lib/utils.js";
|
|
8
8
|
const y = l.createContext(null);
|
|
9
9
|
function _(s, t) {
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
/** Where the AI Assistant panel docks relative to the main content. */
|
|
2
|
+
export type AssistantDock = "left" | "right" | "bottom";
|
|
3
|
+
export interface DockPanels {
|
|
4
|
+
/** Resizable group orientation for this dock. */
|
|
5
|
+
orientation: "horizontal" | "vertical";
|
|
6
|
+
/** Whether the assistant panel renders before the content panel. */
|
|
7
|
+
assistantFirst: boolean;
|
|
8
|
+
}
|
|
9
|
+
/**
|
|
10
|
+
* Maps a dock position to the resizable group's orientation and panel order.
|
|
11
|
+
* - left → horizontal, assistant first [assistant | content]
|
|
12
|
+
* - right → horizontal, content first [content | assistant]
|
|
13
|
+
* - bottom → vertical, content first [content / assistant]
|
|
14
|
+
*/
|
|
15
|
+
export declare function dockPanels(dock: AssistantDock): DockPanels;
|
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
export { AssistantLayout, AssistantLayoutProvider, AssistantDockControls, useAssistantLayout, } from './AssistantLayout';
|
|
2
|
+
export type { AssistantLayoutProps, AssistantLayoutProviderProps, AssistantDockControlsProps, } from './AssistantLayout';
|
|
3
|
+
export { dockPanels, type AssistantDock, type DockPanels } from './dockLayout';
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("react/jsx-runtime"),v=require("lucide-react"),a=require("react"),j=require("
|
|
1
|
+
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("react/jsx-runtime"),v=require("lucide-react"),a=require("react"),j=require("../../../ai/conversation.cjs"),t=require("../../../ai/message.cjs"),n=require("../../../ai/prompt-input.cjs"),M=require("../../../ai/reasoning.cjs"),m=require("../../../ai/sources.cjs"),L=require("../../../ai/stream-status.cjs"),q=require("../../../ai/suggestion.cjs"),O=require("../../../lib/utils.cjs"),z=[{id:"claude-sonnet-4-6",name:"Claude Sonnet"},{id:"claude-opus-4-7",name:"Claude Opus"}],V=["Explain quantum entanglement simply","Write a Python script to rename files","Summarise the latest AI research trends","What is the difference between TCP and UDP?"];let N=0;const k=()=>(N+=1,`chat-msg-${N}`),W=3e3,$=({initialMessages:S=[],models:c=z,defaultModel:u,suggestions:o=V,onSend:h,className:C})=>{const d=a.useId(),[x,b]=a.useState(S),[g,y]=a.useState(""),[I,A]=a.useState(u??c[0]?.id??""),[B,E]=a.useState(!1),[p,f]=a.useState("ready"),[P,T]=a.useState(),D=a.useCallback(async s=>{const r=g.trim();if(!r||p==="streaming")return;const l={id:k(),role:"user",content:r};b(i=>[...i,l]),y(""),f("streaming"),T(new Date);try{const i=await h?.(r,I),F={id:k(),role:"assistant",content:i??"I received your message."};b(G=>[...G,F])}finally{f("ready"),setTimeout(()=>T(void 0),W)}},[g,p,I,h]),U=a.useCallback(s=>{y(s)},[]),R=a.useCallback(s=>{navigator.clipboard.writeText(s).catch(()=>{})},[]),_=a.useCallback(s=>{b(r=>{const l=r.findIndex(i=>i.id===s);return l===-1?r:r.slice(0,l)})},[]);return e.jsxs("div",{className:O.cn("mx-auto flex h-full w-full max-w-[980px] flex-col",C),children:[e.jsxs(j.Conversation,{className:"flex-1",children:[e.jsxs(j.ConversationContent,{children:[x.length===0?e.jsx(j.ConversationEmptyState,{description:"Send a message or pick a suggestion below to start.",title:"Start a conversation"}):null,x.map((s,r)=>e.jsxs("div",{className:"space-y-1",children:[s.role==="assistant"&&s.branches&&s.branches.length>1?e.jsxs(t.MessageBranch,{children:[e.jsx(t.MessageBranchContent,{children:s.branches.map((l,i)=>e.jsx(w,{content:l,id:s.id,onCopy:R,onRetry:_,reasoning:i===0?s.reasoning:void 0,sources:i===0?s.sources:void 0},i))}),e.jsx(t.MessageToolbar,{children:e.jsxs(t.MessageBranchSelector,{children:[e.jsx(t.MessageBranchPrevious,{}),e.jsx(t.MessageBranchPage,{}),e.jsx(t.MessageBranchNext,{})]})})]}):s.role==="assistant"?e.jsx(e.Fragment,{children:e.jsx(w,{content:s.content,id:s.id,onCopy:R,onRetry:_,reasoning:s.reasoning,sources:s.sources})}):e.jsx(t.Message,{from:"user",children:e.jsx(t.MessageContent,{children:e.jsx(t.MessageResponse,{children:s.content})})}),r===x.length-1&&P&&e.jsx("div",{className:"mt-3",children:e.jsx(L.StreamStatus,{iconVariant:"loader-circle",isStreaming:p==="streaming",startTime:P})})]},s.id))]}),e.jsx(j.ConversationScrollButton,{})]}),x.length===0&&o.length>0&&e.jsx("div",{className:"px-4 pb-2",children:e.jsx(q.Suggestions,{children:o.map(s=>e.jsx(q.Suggestion,{onClick:U,suggestion:s},s))})}),e.jsx("div",{className:"px-4 pt-3 pb-4",children:e.jsxs(n.PromptInput,{onSubmit:D,children:[e.jsx(n.PromptInputBody,{children:e.jsx(n.PromptInputTextarea,{"aria-labelledby":d,onChange:s=>y(s.target.value),placeholder:"Ask anything...",value:g})}),e.jsxs(n.PromptInputFooter,{children:[e.jsxs(n.PromptInputTools,{children:[c.length>1&&e.jsxs(n.PromptInputSelect,{onValueChange:A,value:I,children:[e.jsx(n.PromptInputSelectTrigger,{"aria-label":"Select model",children:e.jsx(n.PromptInputSelectValue,{})}),e.jsx(n.PromptInputSelectContent,{children:c.map(s=>e.jsx(n.PromptInputSelectItem,{value:s.id,children:s.name},s.id))})]}),e.jsxs(n.PromptInputButton,{onClick:()=>E(s=>!s),tooltip:{content:"Search the web"},variant:B?"default":"ghost",children:[e.jsx(v.GlobeIcon,{size:16}),e.jsx("span",{children:"Search"})]})]}),e.jsx(n.PromptInputSubmit,{disabled:!g.trim(),status:p})]})]})})]})},w=({id:S,content:c,reasoning:u,sources:o,onCopy:h,onRetry:C})=>e.jsxs("div",{className:"space-y-2",children:[u&&e.jsxs(M.Reasoning,{children:[e.jsx(M.ReasoningTrigger,{}),e.jsx(M.ReasoningContent,{children:u})]}),e.jsx(t.Message,{from:"assistant",children:e.jsx(t.MessageContent,{children:e.jsx(t.MessageResponse,{children:c})})}),o&&o.length>0&&e.jsxs(m.Sources,{children:[e.jsx(m.SourcesTrigger,{count:o.length}),e.jsx(m.SourcesContent,{children:o.map(d=>e.jsx(m.Source,{href:d.href,title:d.title},d.href))})]}),e.jsxs(t.MessageActions,{children:[e.jsx(t.MessageAction,{label:"Copy",onClick:()=>h(c),children:e.jsx(v.CopyIcon,{className:"size-3"})}),e.jsx(t.MessageAction,{label:"Retry",onClick:()=>C(S),children:e.jsx(v.RefreshCcwIcon,{className:"size-3"})})]})]});exports.Chat=$;
|
|
2
2
|
//# sourceMappingURL=Chat.cjs.map
|