@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
|
@@ -1,38 +0,0 @@
|
|
|
1
|
-
import { jsx as t } from "react/jsx-runtime";
|
|
2
|
-
import { useCallback as i } from "react";
|
|
3
|
-
import { Button as p } from "../ui/button.js";
|
|
4
|
-
import { cn as l } from "../../lib/utils.js";
|
|
5
|
-
const w = ({
|
|
6
|
-
className: o,
|
|
7
|
-
children: r,
|
|
8
|
-
...e
|
|
9
|
-
}) => /* @__PURE__ */ t("div", { className: "w-full overflow-x-auto py-1", ...e, children: /* @__PURE__ */ t("div", { className: l("flex w-max flex-nowrap items-center gap-2 px-4", o), children: r }) }), h = ({
|
|
10
|
-
suggestion: o,
|
|
11
|
-
onClick: r,
|
|
12
|
-
className: e,
|
|
13
|
-
variant: n = "outline",
|
|
14
|
-
size: m = "sm",
|
|
15
|
-
children: a,
|
|
16
|
-
...c
|
|
17
|
-
}) => {
|
|
18
|
-
const s = i(() => {
|
|
19
|
-
r?.(o);
|
|
20
|
-
}, [r, o]);
|
|
21
|
-
return /* @__PURE__ */ t(
|
|
22
|
-
p,
|
|
23
|
-
{
|
|
24
|
-
className: l("cursor-pointer rounded-full px-4", e),
|
|
25
|
-
onClick: s,
|
|
26
|
-
size: m,
|
|
27
|
-
type: "button",
|
|
28
|
-
variant: n,
|
|
29
|
-
...c,
|
|
30
|
-
children: a || o
|
|
31
|
-
}
|
|
32
|
-
);
|
|
33
|
-
};
|
|
34
|
-
export {
|
|
35
|
-
h as Suggestion,
|
|
36
|
-
w as Suggestions
|
|
37
|
-
};
|
|
38
|
-
//# sourceMappingURL=suggestion.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"suggestion.js","sources":["../../../src/components/ai/suggestion.tsx"],"sourcesContent":["import { useCallback } from \"react\";\n\nimport type { ComponentProps } from \"react\";\n\nimport { Button } from \"@/components/ui/button\";\nimport { cn } from \"@/lib/utils\";\n\nexport type SuggestionsProps = ComponentProps<\"div\">;\n\nexport const Suggestions = ({\n className,\n children,\n ...props\n}: SuggestionsProps) => (\n <div className=\"w-full overflow-x-auto py-1\" {...props}>\n <div className={cn(\"flex w-max flex-nowrap items-center gap-2 px-4\", className)}>\n {children}\n </div>\n </div>\n);\n\nexport type SuggestionProps = Omit<ComponentProps<typeof Button>, \"onClick\"> & {\n suggestion: string;\n onClick?: (suggestion: string) => void;\n};\n\nexport const Suggestion = ({\n suggestion,\n onClick,\n className,\n variant = \"outline\",\n size = \"sm\",\n children,\n ...props\n}: SuggestionProps) => {\n const handleClick = useCallback(() => {\n onClick?.(suggestion);\n }, [onClick, suggestion]);\n\n return (\n <Button\n className={cn(\"cursor-pointer rounded-full px-4\", className)}\n onClick={handleClick}\n size={size}\n type=\"button\"\n variant={variant}\n {...props}\n >\n {children || suggestion}\n </Button>\n );\n};\n"],"names":["Suggestions","className","children","props","jsx","cn","Suggestion","suggestion","onClick","variant","size","handleClick","useCallback","Button"],"mappings":";;;;AASO,MAAMA,IAAc,CAAC;AAAA,EAC1B,WAAAC;AAAA,EACA,UAAAC;AAAA,EACA,GAAGC;AACL,MACE,gBAAAC,EAAC,OAAA,EAAI,WAAU,+BAA+B,GAAGD,GAC/C,UAAA,gBAAAC,EAAC,OAAA,EAAI,WAAWC,EAAG,kDAAkDJ,CAAS,GAC3E,UAAAC,GACH,EAAA,CACF,GAQWI,IAAa,CAAC;AAAA,EACzB,YAAAC;AAAA,EACA,SAAAC;AAAA,EACA,WAAAP;AAAA,EACA,SAAAQ,IAAU;AAAA,EACV,MAAAC,IAAO;AAAA,EACP,UAAAR;AAAA,EACA,GAAGC;AACL,MAAuB;AACrB,QAAMQ,IAAcC,EAAY,MAAM;AACpC,IAAAJ,IAAUD,CAAU;AAAA,EACtB,GAAG,CAACC,GAASD,CAAU,CAAC;AAExB,SACE,gBAAAH;AAAA,IAACS;AAAA,IAAA;AAAA,MACC,WAAWR,EAAG,oCAAoCJ,CAAS;AAAA,MAC3D,SAASU;AAAA,MACT,MAAAD;AAAA,MACA,MAAK;AAAA,MACL,SAAAD;AAAA,MACC,GAAGN;AAAA,MAEH,UAAAD,KAAYK;AAAA,IAAA;AAAA,EAAA;AAGnB;"}
|
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const t=require("react/jsx-runtime"),C=require("@radix-ui/react-use-controllable-state"),m=require("lucide-react"),a=require("react"),i=require("../ui/collapsible.cjs"),r=require("../../lib/utils.cjs"),T=({children:s,className:e,...o})=>t.jsx("div",{className:r.cn("inline-flex items-center gap-1 rounded-md border bg-secondary px-1.5 py-0.5 text-foreground text-xs",e),...o,children:s}),h=({children:s,className:e,...o})=>t.jsx("div",{className:r.cn("text-muted-foreground text-sm",e),...o,children:s}),j=1e3,k=({defaultOpen:s=!0,isStreaming:e=!1,open:o,onOpenChange:l,className:f,...x})=>{const[c,n]=C.useControllableState({defaultProp:s,onChange:l,prop:o}),d=a.useRef(e),[p,g]=a.useState(!1);a.useEffect(()=>{e&&(d.current=!0)},[e]),a.useEffect(()=>{if(d.current&&!e&&c&&!p){const u=setTimeout(()=>{n(!1),g(!0)},j);return()=>clearTimeout(u)}},[e,c,n,p]);const b=a.useCallback(u=>n(u),[n]);return t.jsx(i.Collapsible,{className:r.cn(f),onOpenChange:b,open:c,...x})},v=({children:s,className:e,title:o,...l})=>t.jsx(i.CollapsibleTrigger,{asChild:!0,className:r.cn("group",e),...l,children:s??t.jsxs("button",{type:"button",className:"group flex w-full cursor-pointer items-center gap-2 text-muted-foreground text-sm transition-colors hover:text-foreground",children:[t.jsx(m.SearchIcon,{className:"size-4"}),t.jsx("span",{className:"text-sm",children:o}),t.jsx(m.ChevronDownIcon,{className:"size-4 opacity-0 transition-all group-focus-visible:opacity-100 group-hover:opacity-100 group-data-[state=open]:rotate-180 group-data-[state=open]:opacity-100","data-slot":"collapsible-chevron"})]})}),y=({children:s,className:e,...o})=>t.jsx(i.CollapsibleContent,{className:r.cn("data-[state=closed]:fade-out-0 data-[state=closed]:slide-out-to-top-2 data-[state=open]:slide-in-from-top-2 text-popover-foreground outline-none data-[state=closed]:animate-out data-[state=open]:animate-in",e),...o,children:t.jsx("div",{className:"mt-4 space-y-2 border-border border-l-2 pl-4",children:s})});exports.Task=k;exports.TaskContent=y;exports.TaskItem=h;exports.TaskItemFile=T;exports.TaskTrigger=v;
|
|
2
|
-
//# sourceMappingURL=task.cjs.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"task.cjs","sources":["../../../src/components/ai/task.tsx"],"sourcesContent":["import { useControllableState } from \"@radix-ui/react-use-controllable-state\";\nimport { ChevronDownIcon, SearchIcon } from \"lucide-react\";\nimport { useCallback, useEffect, useRef, useState } from \"react\";\n\nimport type { ComponentProps } from \"react\";\n\nimport {\n Collapsible,\n CollapsibleContent,\n CollapsibleTrigger,\n} from \"@/components/ui/collapsible\";\nimport { cn } from \"@/lib/utils\";\n\nexport type TaskItemFileProps = ComponentProps<\"div\">;\n\nexport const TaskItemFile = ({\n children,\n className,\n ...props\n}: TaskItemFileProps) => (\n <div\n className={cn(\n \"inline-flex items-center gap-1 rounded-md border bg-secondary px-1.5 py-0.5 text-foreground text-xs\",\n className\n )}\n {...props}\n >\n {children}\n </div>\n);\n\nexport type TaskItemProps = ComponentProps<\"div\">;\n\nexport const TaskItem = ({ children, className, ...props }: TaskItemProps) => (\n <div className={cn(\"text-muted-foreground text-sm\", className)} {...props}>\n {children}\n </div>\n);\n\nconst AUTO_CLOSE_DELAY = 1000;\n\nexport type TaskProps = ComponentProps<typeof Collapsible> & {\n isStreaming?: boolean;\n};\n\nexport const Task = ({\n defaultOpen = true,\n isStreaming = false,\n open,\n onOpenChange,\n className,\n ...props\n}: TaskProps) => {\n const [isOpen, setIsOpen] = useControllableState<boolean>({\n defaultProp: defaultOpen,\n onChange: onOpenChange,\n prop: open,\n });\n\n const hasEverStreamedRef = useRef(isStreaming);\n const [hasAutoClosed, setHasAutoClosed] = useState(false);\n\n useEffect(() => {\n if (isStreaming) hasEverStreamedRef.current = true;\n }, [isStreaming]);\n\n useEffect(() => {\n if (hasEverStreamedRef.current && !isStreaming && isOpen && !hasAutoClosed) {\n const timer = setTimeout(() => {\n setIsOpen(false);\n setHasAutoClosed(true);\n }, AUTO_CLOSE_DELAY);\n return () => clearTimeout(timer);\n }\n }, [isStreaming, isOpen, setIsOpen, hasAutoClosed]);\n\n const handleOpenChange = useCallback(\n (newOpen: boolean) => setIsOpen(newOpen),\n [setIsOpen]\n );\n\n return (\n <Collapsible\n className={cn(className)}\n onOpenChange={handleOpenChange}\n open={isOpen}\n {...props}\n />\n );\n};\n\nexport type TaskTriggerProps = ComponentProps<typeof CollapsibleTrigger> & {\n title: string;\n};\n\nexport const TaskTrigger = ({\n children,\n className,\n title,\n ...props\n}: TaskTriggerProps) => (\n <CollapsibleTrigger asChild className={cn(\"group\", className)} {...props}>\n {children ?? (\n <button\n type=\"button\"\n className=\"group flex w-full cursor-pointer items-center gap-2 text-muted-foreground text-sm transition-colors hover:text-foreground\"\n >\n <SearchIcon className=\"size-4\" />\n <span className=\"text-sm\">{title}</span>\n <ChevronDownIcon\n className=\"size-4 opacity-0 transition-all group-focus-visible:opacity-100 group-hover:opacity-100 group-data-[state=open]:rotate-180 group-data-[state=open]:opacity-100\"\n data-slot=\"collapsible-chevron\"\n />\n </button>\n )}\n </CollapsibleTrigger>\n);\n\nexport type TaskContentProps = ComponentProps<typeof CollapsibleContent>;\n\nexport const TaskContent = ({\n children,\n className,\n ...props\n}: TaskContentProps) => (\n <CollapsibleContent\n className={cn(\n \"data-[state=closed]:fade-out-0 data-[state=closed]:slide-out-to-top-2 data-[state=open]:slide-in-from-top-2 text-popover-foreground outline-none data-[state=closed]:animate-out data-[state=open]:animate-in\",\n className\n )}\n {...props}\n >\n <div className=\"mt-4 space-y-2 border-border border-l-2 pl-4\">\n {children}\n </div>\n </CollapsibleContent>\n);\n"],"names":["TaskItemFile","children","className","props","jsx","cn","TaskItem","AUTO_CLOSE_DELAY","Task","defaultOpen","isStreaming","open","onOpenChange","isOpen","setIsOpen","useControllableState","hasEverStreamedRef","useRef","hasAutoClosed","setHasAutoClosed","useState","useEffect","timer","handleOpenChange","useCallback","newOpen","Collapsible","TaskTrigger","title","CollapsibleTrigger","jsxs","SearchIcon","ChevronDownIcon","TaskContent","CollapsibleContent"],"mappings":"0RAeaA,EAAe,CAAC,CAC3B,SAAAC,EACA,UAAAC,EACA,GAAGC,CACL,IACEC,EAAAA,IAAC,MAAA,CACC,UAAWC,EAAAA,GACT,sGACAH,CAAA,EAED,GAAGC,EAEH,SAAAF,CAAA,CACH,EAKWK,EAAW,CAAC,CAAE,SAAAL,EAAU,UAAAC,EAAW,GAAGC,CAAA,IACjDC,MAAC,MAAA,CAAI,UAAWC,EAAAA,GAAG,gCAAiCH,CAAS,EAAI,GAAGC,EACjE,SAAAF,CAAA,CACH,EAGIM,EAAmB,IAMZC,EAAO,CAAC,CACnB,YAAAC,EAAc,GACd,YAAAC,EAAc,GACd,KAAAC,EACA,aAAAC,EACA,UAAAV,EACA,GAAGC,CACL,IAAiB,CACf,KAAM,CAACU,EAAQC,CAAS,EAAIC,uBAA8B,CACxD,YAAaN,EACb,SAAUG,EACV,KAAMD,CAAA,CACP,EAEKK,EAAqBC,EAAAA,OAAOP,CAAW,EACvC,CAACQ,EAAeC,CAAgB,EAAIC,EAAAA,SAAS,EAAK,EAExDC,EAAAA,UAAU,IAAM,CACVX,MAAgC,QAAU,GAChD,EAAG,CAACA,CAAW,CAAC,EAEhBW,EAAAA,UAAU,IAAM,CACd,GAAIL,EAAmB,SAAW,CAACN,GAAeG,GAAU,CAACK,EAAe,CAC1E,MAAMI,EAAQ,WAAW,IAAM,CAC7BR,EAAU,EAAK,EACfK,EAAiB,EAAI,CACvB,EAAGZ,CAAgB,EACnB,MAAO,IAAM,aAAae,CAAK,CACjC,CACF,EAAG,CAACZ,EAAaG,EAAQC,EAAWI,CAAa,CAAC,EAElD,MAAMK,EAAmBC,EAAAA,YACtBC,GAAqBX,EAAUW,CAAO,EACvC,CAACX,CAAS,CAAA,EAGZ,OACEV,EAAAA,IAACsB,EAAAA,YAAA,CACC,UAAWrB,EAAAA,GAAGH,CAAS,EACvB,aAAcqB,EACd,KAAMV,EACL,GAAGV,CAAA,CAAA,CAGV,EAMawB,EAAc,CAAC,CAC1B,SAAA1B,EACA,UAAAC,EACA,MAAA0B,EACA,GAAGzB,CACL,IACEC,EAAAA,IAACyB,EAAAA,mBAAA,CAAmB,QAAO,GAAC,UAAWxB,EAAAA,GAAG,QAASH,CAAS,EAAI,GAAGC,EAChE,SAAAF,GACC6B,EAAAA,KAAC,SAAA,CACC,KAAK,SACL,UAAU,4HAEV,SAAA,CAAA1B,EAAAA,IAAC2B,EAAAA,WAAA,CAAW,UAAU,QAAA,CAAS,EAC/B3B,EAAAA,IAAC,OAAA,CAAK,UAAU,UAAW,SAAAwB,EAAM,EACjCxB,EAAAA,IAAC4B,EAAAA,gBAAA,CACC,UAAU,iKACV,YAAU,qBAAA,CAAA,CACZ,CAAA,CACF,CAAA,CAEJ,EAKWC,EAAc,CAAC,CAC1B,SAAAhC,EACA,UAAAC,EACA,GAAGC,CACL,IACEC,EAAAA,IAAC8B,EAAAA,mBAAA,CACC,UAAW7B,EAAAA,GACT,gNACAH,CAAA,EAED,GAAGC,EAEJ,SAAAC,EAAAA,IAAC,MAAA,CAAI,UAAU,+CACZ,SAAAH,CAAA,CACH,CAAA,CACF"}
|
|
@@ -1,101 +0,0 @@
|
|
|
1
|
-
import { jsx as s, jsxs as h } from "react/jsx-runtime";
|
|
2
|
-
import { useControllableState as x } from "@radix-ui/react-use-controllable-state";
|
|
3
|
-
import { SearchIcon as C, ChevronDownIcon as b } from "lucide-react";
|
|
4
|
-
import { useRef as v, useState as N, useEffect as d, useCallback as T } from "react";
|
|
5
|
-
import { Collapsible as y, CollapsibleContent as k, CollapsibleTrigger as O } from "../ui/collapsible.js";
|
|
6
|
-
import { cn as a } from "../../lib/utils.js";
|
|
7
|
-
const L = ({
|
|
8
|
-
children: t,
|
|
9
|
-
className: e,
|
|
10
|
-
...o
|
|
11
|
-
}) => /* @__PURE__ */ s(
|
|
12
|
-
"div",
|
|
13
|
-
{
|
|
14
|
-
className: a(
|
|
15
|
-
"inline-flex items-center gap-1 rounded-md border bg-secondary px-1.5 py-0.5 text-foreground text-xs",
|
|
16
|
-
e
|
|
17
|
-
),
|
|
18
|
-
...o,
|
|
19
|
-
children: t
|
|
20
|
-
}
|
|
21
|
-
), R = ({ children: t, className: e, ...o }) => /* @__PURE__ */ s("div", { className: a("text-muted-foreground text-sm", e), ...o, children: t }), I = 1e3, _ = ({
|
|
22
|
-
defaultOpen: t = !0,
|
|
23
|
-
isStreaming: e = !1,
|
|
24
|
-
open: o,
|
|
25
|
-
onOpenChange: n,
|
|
26
|
-
className: u,
|
|
27
|
-
...m
|
|
28
|
-
}) => {
|
|
29
|
-
const [l, r] = x({
|
|
30
|
-
defaultProp: t,
|
|
31
|
-
onChange: n,
|
|
32
|
-
prop: o
|
|
33
|
-
}), p = v(e), [i, f] = N(!1);
|
|
34
|
-
d(() => {
|
|
35
|
-
e && (p.current = !0);
|
|
36
|
-
}, [e]), d(() => {
|
|
37
|
-
if (p.current && !e && l && !i) {
|
|
38
|
-
const c = setTimeout(() => {
|
|
39
|
-
r(!1), f(!0);
|
|
40
|
-
}, I);
|
|
41
|
-
return () => clearTimeout(c);
|
|
42
|
-
}
|
|
43
|
-
}, [e, l, r, i]);
|
|
44
|
-
const g = T(
|
|
45
|
-
(c) => r(c),
|
|
46
|
-
[r]
|
|
47
|
-
);
|
|
48
|
-
return /* @__PURE__ */ s(
|
|
49
|
-
y,
|
|
50
|
-
{
|
|
51
|
-
className: a(u),
|
|
52
|
-
onOpenChange: g,
|
|
53
|
-
open: l,
|
|
54
|
-
...m
|
|
55
|
-
}
|
|
56
|
-
);
|
|
57
|
-
}, F = ({
|
|
58
|
-
children: t,
|
|
59
|
-
className: e,
|
|
60
|
-
title: o,
|
|
61
|
-
...n
|
|
62
|
-
}) => /* @__PURE__ */ s(O, { asChild: !0, className: a("group", e), ...n, children: t ?? /* @__PURE__ */ h(
|
|
63
|
-
"button",
|
|
64
|
-
{
|
|
65
|
-
type: "button",
|
|
66
|
-
className: "group flex w-full cursor-pointer items-center gap-2 text-muted-foreground text-sm transition-colors hover:text-foreground",
|
|
67
|
-
children: [
|
|
68
|
-
/* @__PURE__ */ s(C, { className: "size-4" }),
|
|
69
|
-
/* @__PURE__ */ s("span", { className: "text-sm", children: o }),
|
|
70
|
-
/* @__PURE__ */ s(
|
|
71
|
-
b,
|
|
72
|
-
{
|
|
73
|
-
className: "size-4 opacity-0 transition-all group-focus-visible:opacity-100 group-hover:opacity-100 group-data-[state=open]:rotate-180 group-data-[state=open]:opacity-100",
|
|
74
|
-
"data-slot": "collapsible-chevron"
|
|
75
|
-
}
|
|
76
|
-
)
|
|
77
|
-
]
|
|
78
|
-
}
|
|
79
|
-
) }), H = ({
|
|
80
|
-
children: t,
|
|
81
|
-
className: e,
|
|
82
|
-
...o
|
|
83
|
-
}) => /* @__PURE__ */ s(
|
|
84
|
-
k,
|
|
85
|
-
{
|
|
86
|
-
className: a(
|
|
87
|
-
"data-[state=closed]:fade-out-0 data-[state=closed]:slide-out-to-top-2 data-[state=open]:slide-in-from-top-2 text-popover-foreground outline-none data-[state=closed]:animate-out data-[state=open]:animate-in",
|
|
88
|
-
e
|
|
89
|
-
),
|
|
90
|
-
...o,
|
|
91
|
-
children: /* @__PURE__ */ s("div", { className: "mt-4 space-y-2 border-border border-l-2 pl-4", children: t })
|
|
92
|
-
}
|
|
93
|
-
);
|
|
94
|
-
export {
|
|
95
|
-
_ as Task,
|
|
96
|
-
H as TaskContent,
|
|
97
|
-
R as TaskItem,
|
|
98
|
-
L as TaskItemFile,
|
|
99
|
-
F as TaskTrigger
|
|
100
|
-
};
|
|
101
|
-
//# sourceMappingURL=task.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"task.js","sources":["../../../src/components/ai/task.tsx"],"sourcesContent":["import { useControllableState } from \"@radix-ui/react-use-controllable-state\";\nimport { ChevronDownIcon, SearchIcon } from \"lucide-react\";\nimport { useCallback, useEffect, useRef, useState } from \"react\";\n\nimport type { ComponentProps } from \"react\";\n\nimport {\n Collapsible,\n CollapsibleContent,\n CollapsibleTrigger,\n} from \"@/components/ui/collapsible\";\nimport { cn } from \"@/lib/utils\";\n\nexport type TaskItemFileProps = ComponentProps<\"div\">;\n\nexport const TaskItemFile = ({\n children,\n className,\n ...props\n}: TaskItemFileProps) => (\n <div\n className={cn(\n \"inline-flex items-center gap-1 rounded-md border bg-secondary px-1.5 py-0.5 text-foreground text-xs\",\n className\n )}\n {...props}\n >\n {children}\n </div>\n);\n\nexport type TaskItemProps = ComponentProps<\"div\">;\n\nexport const TaskItem = ({ children, className, ...props }: TaskItemProps) => (\n <div className={cn(\"text-muted-foreground text-sm\", className)} {...props}>\n {children}\n </div>\n);\n\nconst AUTO_CLOSE_DELAY = 1000;\n\nexport type TaskProps = ComponentProps<typeof Collapsible> & {\n isStreaming?: boolean;\n};\n\nexport const Task = ({\n defaultOpen = true,\n isStreaming = false,\n open,\n onOpenChange,\n className,\n ...props\n}: TaskProps) => {\n const [isOpen, setIsOpen] = useControllableState<boolean>({\n defaultProp: defaultOpen,\n onChange: onOpenChange,\n prop: open,\n });\n\n const hasEverStreamedRef = useRef(isStreaming);\n const [hasAutoClosed, setHasAutoClosed] = useState(false);\n\n useEffect(() => {\n if (isStreaming) hasEverStreamedRef.current = true;\n }, [isStreaming]);\n\n useEffect(() => {\n if (hasEverStreamedRef.current && !isStreaming && isOpen && !hasAutoClosed) {\n const timer = setTimeout(() => {\n setIsOpen(false);\n setHasAutoClosed(true);\n }, AUTO_CLOSE_DELAY);\n return () => clearTimeout(timer);\n }\n }, [isStreaming, isOpen, setIsOpen, hasAutoClosed]);\n\n const handleOpenChange = useCallback(\n (newOpen: boolean) => setIsOpen(newOpen),\n [setIsOpen]\n );\n\n return (\n <Collapsible\n className={cn(className)}\n onOpenChange={handleOpenChange}\n open={isOpen}\n {...props}\n />\n );\n};\n\nexport type TaskTriggerProps = ComponentProps<typeof CollapsibleTrigger> & {\n title: string;\n};\n\nexport const TaskTrigger = ({\n children,\n className,\n title,\n ...props\n}: TaskTriggerProps) => (\n <CollapsibleTrigger asChild className={cn(\"group\", className)} {...props}>\n {children ?? (\n <button\n type=\"button\"\n className=\"group flex w-full cursor-pointer items-center gap-2 text-muted-foreground text-sm transition-colors hover:text-foreground\"\n >\n <SearchIcon className=\"size-4\" />\n <span className=\"text-sm\">{title}</span>\n <ChevronDownIcon\n className=\"size-4 opacity-0 transition-all group-focus-visible:opacity-100 group-hover:opacity-100 group-data-[state=open]:rotate-180 group-data-[state=open]:opacity-100\"\n data-slot=\"collapsible-chevron\"\n />\n </button>\n )}\n </CollapsibleTrigger>\n);\n\nexport type TaskContentProps = ComponentProps<typeof CollapsibleContent>;\n\nexport const TaskContent = ({\n children,\n className,\n ...props\n}: TaskContentProps) => (\n <CollapsibleContent\n className={cn(\n \"data-[state=closed]:fade-out-0 data-[state=closed]:slide-out-to-top-2 data-[state=open]:slide-in-from-top-2 text-popover-foreground outline-none data-[state=closed]:animate-out data-[state=open]:animate-in\",\n className\n )}\n {...props}\n >\n <div className=\"mt-4 space-y-2 border-border border-l-2 pl-4\">\n {children}\n </div>\n </CollapsibleContent>\n);\n"],"names":["TaskItemFile","children","className","props","jsx","cn","TaskItem","AUTO_CLOSE_DELAY","Task","defaultOpen","isStreaming","open","onOpenChange","isOpen","setIsOpen","useControllableState","hasEverStreamedRef","useRef","hasAutoClosed","setHasAutoClosed","useState","useEffect","timer","handleOpenChange","useCallback","newOpen","Collapsible","TaskTrigger","title","CollapsibleTrigger","jsxs","SearchIcon","ChevronDownIcon","TaskContent","CollapsibleContent"],"mappings":";;;;;;AAeO,MAAMA,IAAe,CAAC;AAAA,EAC3B,UAAAC;AAAA,EACA,WAAAC;AAAA,EACA,GAAGC;AACL,MACE,gBAAAC;AAAA,EAAC;AAAA,EAAA;AAAA,IACC,WAAWC;AAAA,MACT;AAAA,MACAH;AAAA,IAAA;AAAA,IAED,GAAGC;AAAA,IAEH,UAAAF;AAAA,EAAA;AACH,GAKWK,IAAW,CAAC,EAAE,UAAAL,GAAU,WAAAC,GAAW,GAAGC,EAAA,MACjD,gBAAAC,EAAC,OAAA,EAAI,WAAWC,EAAG,iCAAiCH,CAAS,GAAI,GAAGC,GACjE,UAAAF,EAAA,CACH,GAGIM,IAAmB,KAMZC,IAAO,CAAC;AAAA,EACnB,aAAAC,IAAc;AAAA,EACd,aAAAC,IAAc;AAAA,EACd,MAAAC;AAAA,EACA,cAAAC;AAAA,EACA,WAAAV;AAAA,EACA,GAAGC;AACL,MAAiB;AACf,QAAM,CAACU,GAAQC,CAAS,IAAIC,EAA8B;AAAA,IACxD,aAAaN;AAAA,IACb,UAAUG;AAAA,IACV,MAAMD;AAAA,EAAA,CACP,GAEKK,IAAqBC,EAAOP,CAAW,GACvC,CAACQ,GAAeC,CAAgB,IAAIC,EAAS,EAAK;AAExD,EAAAC,EAAU,MAAM;AACd,IAAIX,QAAgC,UAAU;AAAA,EAChD,GAAG,CAACA,CAAW,CAAC,GAEhBW,EAAU,MAAM;AACd,QAAIL,EAAmB,WAAW,CAACN,KAAeG,KAAU,CAACK,GAAe;AAC1E,YAAMI,IAAQ,WAAW,MAAM;AAC7B,QAAAR,EAAU,EAAK,GACfK,EAAiB,EAAI;AAAA,MACvB,GAAGZ,CAAgB;AACnB,aAAO,MAAM,aAAae,CAAK;AAAA,IACjC;AAAA,EACF,GAAG,CAACZ,GAAaG,GAAQC,GAAWI,CAAa,CAAC;AAElD,QAAMK,IAAmBC;AAAA,IACvB,CAACC,MAAqBX,EAAUW,CAAO;AAAA,IACvC,CAACX,CAAS;AAAA,EAAA;AAGZ,SACE,gBAAAV;AAAA,IAACsB;AAAA,IAAA;AAAA,MACC,WAAWrB,EAAGH,CAAS;AAAA,MACvB,cAAcqB;AAAA,MACd,MAAMV;AAAA,MACL,GAAGV;AAAA,IAAA;AAAA,EAAA;AAGV,GAMawB,IAAc,CAAC;AAAA,EAC1B,UAAA1B;AAAA,EACA,WAAAC;AAAA,EACA,OAAA0B;AAAA,EACA,GAAGzB;AACL,MACE,gBAAAC,EAACyB,GAAA,EAAmB,SAAO,IAAC,WAAWxB,EAAG,SAASH,CAAS,GAAI,GAAGC,GAChE,UAAAF,KACC,gBAAA6B;AAAA,EAAC;AAAA,EAAA;AAAA,IACC,MAAK;AAAA,IACL,WAAU;AAAA,IAEV,UAAA;AAAA,MAAA,gBAAA1B,EAAC2B,GAAA,EAAW,WAAU,SAAA,CAAS;AAAA,MAC/B,gBAAA3B,EAAC,QAAA,EAAK,WAAU,WAAW,UAAAwB,GAAM;AAAA,MACjC,gBAAAxB;AAAA,QAAC4B;AAAA,QAAA;AAAA,UACC,WAAU;AAAA,UACV,aAAU;AAAA,QAAA;AAAA,MAAA;AAAA,IACZ;AAAA,EAAA;AACF,EAAA,CAEJ,GAKWC,IAAc,CAAC;AAAA,EAC1B,UAAAhC;AAAA,EACA,WAAAC;AAAA,EACA,GAAGC;AACL,MACE,gBAAAC;AAAA,EAAC8B;AAAA,EAAA;AAAA,IACC,WAAW7B;AAAA,MACT;AAAA,MACAH;AAAA,IAAA;AAAA,IAED,GAAGC;AAAA,IAEJ,UAAA,gBAAAC,EAAC,OAAA,EAAI,WAAU,gDACZ,UAAAH,EAAA,CACH;AAAA,EAAA;AACF;"}
|
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("react/jsx-runtime"),h=require("@radix-ui/react-use-controllable-state"),a=require("lucide-react"),l=require("react"),v=require("../ui/badge.cjs"),N=require("../ui/banner.cjs"),m=require("../ui/code-block.cjs"),x=require("../ui/collapsible.cjs"),i=require("../../lib/utils.cjs"),y=1e3,I=({className:s,isStreaming:t=!1,open:o,onOpenChange:r,defaultOpen:n,...u})=>{const[c,d]=h.useControllableState({defaultProp:n??!0,onChange:r,prop:o}),g=l.useRef(t),[f,C]=l.useState(!1);l.useEffect(()=>{t&&(g.current=!0)},[t]),l.useEffect(()=>{if(g.current&&!t&&c&&!f){const p=setTimeout(()=>{d(!1),C(!0)},y);return()=>clearTimeout(p)}},[t,c,d,f]);const b=l.useCallback(p=>d(p),[d]);return e.jsx(x.Collapsible,{className:i.cn("group not-prose mb-4 w-full rounded-md border bg-background",s),onOpenChange:b,open:c,...u})},k={"approval-requested":"Awaiting Approval","approval-responded":"Responded","input-available":"Running","input-streaming":"Pending","output-available":"Completed","output-denied":"Denied","output-error":"Error"},w={"approval-requested":e.jsx(a.ClockIcon,{className:"size-4 text-yellow-600"}),"approval-responded":e.jsx(a.CheckCircleIcon,{className:"size-4 text-blue-600"}),"input-available":e.jsx(a.ClockIcon,{className:"size-4 animate-pulse"}),"input-streaming":e.jsx(a.CircleIcon,{className:"size-4"}),"output-available":e.jsx(a.CheckCircleIcon,{className:"size-4 text-green-600"}),"output-denied":e.jsx(a.XCircleIcon,{className:"size-4 text-orange-600"}),"output-error":e.jsx(a.XCircleIcon,{className:"size-4 text-red-600"})},j=s=>e.jsxs(v.Badge,{className:"gap-1.5 rounded-full text-xs",variant:"secondary",children:[w[s],k[s]]}),O=({className:s,title:t,type:o,state:r,toolName:n,...u})=>{const c=o==="dynamic-tool"?n:o.split("-").slice(1).join("-");return e.jsxs(x.CollapsibleTrigger,{className:i.cn("flex w-full items-center justify-between gap-4 p-3",s),...u,children:[e.jsxs("div",{className:"flex items-center gap-2",children:[e.jsx(a.WrenchIcon,{className:"size-4 text-muted-foreground"}),e.jsx("span",{className:"font-medium text-sm",children:t??c}),j(r)]}),e.jsx(a.ChevronDownIcon,{className:"size-4 text-muted-foreground opacity-0 transition-all group-focus-within:opacity-100 group-hover:opacity-100 group-data-[state=open]:rotate-180 group-data-[state=open]:opacity-100","data-slot":"collapsible-chevron"})]})},T=({className:s,...t})=>e.jsx(x.CollapsibleContent,{className:i.cn("data-[state=closed]:fade-out-0 data-[state=closed]:slide-out-to-top-2 data-[state=open]:slide-in-from-top-2 space-y-4 p-4 text-popover-foreground outline-none data-[state=closed]:animate-out data-[state=open]:animate-in",s),...t}),q=({className:s,input:t,...o})=>e.jsxs("div",{className:i.cn("space-y-2 overflow-hidden",s),...o,children:[e.jsx("h4",{className:"font-medium text-muted-foreground text-xs uppercase tracking-wide",children:"Parameters"}),e.jsx("div",{className:"rounded-md bg-muted/50",children:e.jsx(m.CodeBlock,{code:JSON.stringify(t,null,2),language:"json"})})]}),z=({className:s,output:t,errorText:o,...r})=>{if(!(t||o))return null;let n=e.jsx("div",{children:t});return typeof t=="object"&&!l.isValidElement(t)?n=e.jsx(m.CodeBlock,{code:JSON.stringify(t,null,2),language:"json"}):typeof t=="string"&&(n=e.jsx(m.CodeBlock,{code:t,language:"json"})),e.jsxs("div",{className:i.cn("space-y-2",s),...r,children:[e.jsx("h4",{className:"font-medium text-muted-foreground text-xs uppercase tracking-wide",children:o?"Error":"Result"}),o?e.jsx(N.Banner,{variant:"destructive",description:o,className:"rounded-md text-xs"}):e.jsx("div",{className:"overflow-x-auto rounded-md bg-muted/50 text-foreground text-xs [&_table]:w-full",children:n})]})};exports.Tool=I;exports.ToolContent=T;exports.ToolHeader=O;exports.ToolInput=q;exports.ToolOutput=z;exports.getStatusBadge=j;
|
|
2
|
-
//# sourceMappingURL=tool.cjs.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"tool.cjs","sources":["../../../src/components/ai/tool.tsx"],"sourcesContent":["import { useControllableState } from \"@radix-ui/react-use-controllable-state\";\nimport {\n CheckCircleIcon,\n ChevronDownIcon,\n CircleIcon,\n ClockIcon,\n WrenchIcon,\n XCircleIcon,\n} from \"lucide-react\";\nimport { isValidElement, useCallback, useEffect, useRef, useState } from \"react\";\n\n\nimport type { DynamicToolUIPart, ToolUIPart } from \"ai\";\nimport type { ComponentProps, ReactNode } from \"react\";\n\nimport { Badge } from \"@/components/ui/badge\";\nimport { Banner } from \"@/components/ui/banner\";\nimport { CodeBlock } from \"@/components/ui/code-block\";\nimport {\n Collapsible,\n CollapsibleContent,\n CollapsibleTrigger,\n} from \"@/components/ui/collapsible\";\nimport { cn } from \"@/lib/utils\";\n\n\n\n\nconst AUTO_CLOSE_DELAY = 1000;\n\nexport type ToolProps = ComponentProps<typeof Collapsible> & {\n isStreaming?: boolean;\n};\n\nexport const Tool = ({\n className,\n isStreaming = false,\n open,\n onOpenChange,\n defaultOpen,\n ...props\n}: ToolProps) => {\n const [isOpen, setIsOpen] = useControllableState<boolean>({\n defaultProp: defaultOpen ?? true,\n onChange: onOpenChange,\n prop: open,\n });\n\n const hasEverStreamedRef = useRef(isStreaming);\n const [hasAutoClosed, setHasAutoClosed] = useState(false);\n\n useEffect(() => {\n if (isStreaming) hasEverStreamedRef.current = true;\n }, [isStreaming]);\n\n useEffect(() => {\n if (hasEverStreamedRef.current && !isStreaming && isOpen && !hasAutoClosed) {\n const timer = setTimeout(() => {\n setIsOpen(false);\n setHasAutoClosed(true);\n }, AUTO_CLOSE_DELAY);\n return () => clearTimeout(timer);\n }\n }, [isStreaming, isOpen, setIsOpen, hasAutoClosed]);\n\n const handleOpenChange = useCallback(\n (newOpen: boolean) => setIsOpen(newOpen),\n [setIsOpen]\n );\n\n return (\n <Collapsible\n className={cn(\"group not-prose mb-4 w-full rounded-md border bg-background\", className)}\n onOpenChange={handleOpenChange}\n open={isOpen}\n {...props}\n />\n );\n};\n\nexport type ToolPart = ToolUIPart | DynamicToolUIPart;\n\nexport type ToolHeaderProps = {\n title?: string;\n className?: string;\n} & (\n | { type: ToolUIPart[\"type\"]; state: ToolUIPart[\"state\"]; toolName?: never }\n | {\n type: DynamicToolUIPart[\"type\"];\n state: DynamicToolUIPart[\"state\"];\n toolName: string;\n }\n);\n\nconst statusLabels: Record<ToolPart[\"state\"], string> = {\n \"approval-requested\": \"Awaiting Approval\",\n \"approval-responded\": \"Responded\",\n \"input-available\": \"Running\",\n \"input-streaming\": \"Pending\",\n \"output-available\": \"Completed\",\n \"output-denied\": \"Denied\",\n \"output-error\": \"Error\",\n};\n\nconst statusIcons: Record<ToolPart[\"state\"], ReactNode> = {\n \"approval-requested\": <ClockIcon className=\"size-4 text-yellow-600\" />,\n \"approval-responded\": <CheckCircleIcon className=\"size-4 text-blue-600\" />,\n \"input-available\": <ClockIcon className=\"size-4 animate-pulse\" />,\n \"input-streaming\": <CircleIcon className=\"size-4\" />,\n \"output-available\": <CheckCircleIcon className=\"size-4 text-green-600\" />,\n \"output-denied\": <XCircleIcon className=\"size-4 text-orange-600\" />,\n \"output-error\": <XCircleIcon className=\"size-4 text-red-600\" />,\n};\n\nexport const getStatusBadge = (status: ToolPart[\"state\"]) => (\n <Badge className=\"gap-1.5 rounded-full text-xs\" variant=\"secondary\">\n {statusIcons[status]}\n {statusLabels[status]}\n </Badge>\n);\n\nexport const ToolHeader = ({\n className,\n title,\n type,\n state,\n toolName,\n ...props\n}: ToolHeaderProps) => {\n const derivedName =\n type === \"dynamic-tool\" ? toolName : type.split(\"-\").slice(1).join(\"-\");\n\n return (\n <CollapsibleTrigger\n className={cn(\n \"flex w-full items-center justify-between gap-4 p-3\",\n className\n )}\n {...props}\n >\n <div className=\"flex items-center gap-2\">\n <WrenchIcon className=\"size-4 text-muted-foreground\" />\n <span className=\"font-medium text-sm\">{title ?? derivedName}</span>\n {getStatusBadge(state)}\n </div>\n <ChevronDownIcon\n className=\"size-4 text-muted-foreground opacity-0 transition-all group-focus-within:opacity-100 group-hover:opacity-100 group-data-[state=open]:rotate-180 group-data-[state=open]:opacity-100\"\n data-slot=\"collapsible-chevron\"\n />\n </CollapsibleTrigger>\n );\n};\n\nexport type ToolContentProps = ComponentProps<typeof CollapsibleContent>;\n\nexport const ToolContent = ({ className, ...props }: ToolContentProps) => (\n <CollapsibleContent\n className={cn(\n \"data-[state=closed]:fade-out-0 data-[state=closed]:slide-out-to-top-2 data-[state=open]:slide-in-from-top-2 space-y-4 p-4 text-popover-foreground outline-none data-[state=closed]:animate-out data-[state=open]:animate-in\",\n className\n )}\n {...props}\n />\n);\n\nexport type ToolInputProps = ComponentProps<\"div\"> & {\n input: ToolPart[\"input\"];\n};\n\nexport const ToolInput = ({ className, input, ...props }: ToolInputProps) => (\n <div className={cn(\"space-y-2 overflow-hidden\", className)} {...props}>\n <h4 className=\"font-medium text-muted-foreground text-xs uppercase tracking-wide\">\n Parameters\n </h4>\n <div className=\"rounded-md bg-muted/50\">\n <CodeBlock code={JSON.stringify(input, null, 2)} language=\"json\" />\n </div>\n </div>\n);\n\nexport type ToolOutputProps = ComponentProps<\"div\"> & {\n output: ToolPart[\"output\"];\n errorText: ToolPart[\"errorText\"];\n};\n\nexport const ToolOutput = ({\n className,\n output,\n errorText,\n ...props\n}: ToolOutputProps) => {\n if (!(output || errorText)) {\n return null;\n }\n\n let Output = <div>{output as ReactNode}</div>;\n\n if (typeof output === \"object\" && !isValidElement(output)) {\n Output = (\n <CodeBlock code={JSON.stringify(output, null, 2)} language=\"json\" />\n );\n } else if (typeof output === \"string\") {\n Output = <CodeBlock code={output} language=\"json\" />;\n }\n\n return (\n <div className={cn(\"space-y-2\", className)} {...props}>\n <h4 className=\"font-medium text-muted-foreground text-xs uppercase tracking-wide\">\n {errorText ? \"Error\" : \"Result\"}\n </h4>\n {errorText ? (\n <Banner\n variant=\"destructive\"\n description={errorText}\n className=\"rounded-md text-xs\"\n />\n ) : (\n <div className=\"overflow-x-auto rounded-md bg-muted/50 text-foreground text-xs [&_table]:w-full\">\n {Output}\n </div>\n )}\n </div>\n );\n};\n"],"names":["AUTO_CLOSE_DELAY","Tool","className","isStreaming","open","onOpenChange","defaultOpen","props","isOpen","setIsOpen","useControllableState","hasEverStreamedRef","useRef","hasAutoClosed","setHasAutoClosed","useState","useEffect","timer","handleOpenChange","useCallback","newOpen","jsx","Collapsible","cn","statusLabels","statusIcons","ClockIcon","CheckCircleIcon","CircleIcon","XCircleIcon","getStatusBadge","status","jsxs","Badge","ToolHeader","title","type","state","toolName","derivedName","CollapsibleTrigger","WrenchIcon","ChevronDownIcon","ToolContent","CollapsibleContent","ToolInput","input","CodeBlock","ToolOutput","output","errorText","Output","isValidElement","Banner"],"mappings":"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"}
|
|
@@ -1,139 +0,0 @@
|
|
|
1
|
-
import { jsx as e, jsxs as l } from "react/jsx-runtime";
|
|
2
|
-
import { useControllableState as C } from "@radix-ui/react-use-controllable-state";
|
|
3
|
-
import { WrenchIcon as y, ChevronDownIcon as w, XCircleIcon as g, CheckCircleIcon as h, CircleIcon as O, ClockIcon as v } from "lucide-react";
|
|
4
|
-
import { useRef as z, useState as I, useEffect as x, useCallback as j, isValidElement as k } from "react";
|
|
5
|
-
import { Badge as E } from "../ui/badge.js";
|
|
6
|
-
import { Banner as A } from "../ui/banner.js";
|
|
7
|
-
import { CodeBlock as p } from "../ui/code-block.js";
|
|
8
|
-
import { Collapsible as T, CollapsibleContent as R, CollapsibleTrigger as B } from "../ui/collapsible.js";
|
|
9
|
-
import { cn as i } from "../../lib/utils.js";
|
|
10
|
-
const D = 1e3, F = ({
|
|
11
|
-
className: o,
|
|
12
|
-
isStreaming: t = !1,
|
|
13
|
-
open: a,
|
|
14
|
-
onOpenChange: n,
|
|
15
|
-
defaultOpen: s,
|
|
16
|
-
...c
|
|
17
|
-
}) => {
|
|
18
|
-
const [r, d] = C({
|
|
19
|
-
defaultProp: s ?? !0,
|
|
20
|
-
onChange: n,
|
|
21
|
-
prop: a
|
|
22
|
-
}), m = z(t), [f, N] = I(!1);
|
|
23
|
-
x(() => {
|
|
24
|
-
t && (m.current = !0);
|
|
25
|
-
}, [t]), x(() => {
|
|
26
|
-
if (m.current && !t && r && !f) {
|
|
27
|
-
const u = setTimeout(() => {
|
|
28
|
-
d(!1), N(!0);
|
|
29
|
-
}, D);
|
|
30
|
-
return () => clearTimeout(u);
|
|
31
|
-
}
|
|
32
|
-
}, [t, r, d, f]);
|
|
33
|
-
const b = j(
|
|
34
|
-
(u) => d(u),
|
|
35
|
-
[d]
|
|
36
|
-
);
|
|
37
|
-
return /* @__PURE__ */ e(
|
|
38
|
-
T,
|
|
39
|
-
{
|
|
40
|
-
className: i("group not-prose mb-4 w-full rounded-md border bg-background", o),
|
|
41
|
-
onOpenChange: b,
|
|
42
|
-
open: r,
|
|
43
|
-
...c
|
|
44
|
-
}
|
|
45
|
-
);
|
|
46
|
-
}, L = {
|
|
47
|
-
"approval-requested": "Awaiting Approval",
|
|
48
|
-
"approval-responded": "Responded",
|
|
49
|
-
"input-available": "Running",
|
|
50
|
-
"input-streaming": "Pending",
|
|
51
|
-
"output-available": "Completed",
|
|
52
|
-
"output-denied": "Denied",
|
|
53
|
-
"output-error": "Error"
|
|
54
|
-
}, P = {
|
|
55
|
-
"approval-requested": /* @__PURE__ */ e(v, { className: "size-4 text-yellow-600" }),
|
|
56
|
-
"approval-responded": /* @__PURE__ */ e(h, { className: "size-4 text-blue-600" }),
|
|
57
|
-
"input-available": /* @__PURE__ */ e(v, { className: "size-4 animate-pulse" }),
|
|
58
|
-
"input-streaming": /* @__PURE__ */ e(O, { className: "size-4" }),
|
|
59
|
-
"output-available": /* @__PURE__ */ e(h, { className: "size-4 text-green-600" }),
|
|
60
|
-
"output-denied": /* @__PURE__ */ e(g, { className: "size-4 text-orange-600" }),
|
|
61
|
-
"output-error": /* @__PURE__ */ e(g, { className: "size-4 text-red-600" })
|
|
62
|
-
}, S = (o) => /* @__PURE__ */ l(E, { className: "gap-1.5 rounded-full text-xs", variant: "secondary", children: [
|
|
63
|
-
P[o],
|
|
64
|
-
L[o]
|
|
65
|
-
] }), G = ({
|
|
66
|
-
className: o,
|
|
67
|
-
title: t,
|
|
68
|
-
type: a,
|
|
69
|
-
state: n,
|
|
70
|
-
toolName: s,
|
|
71
|
-
...c
|
|
72
|
-
}) => {
|
|
73
|
-
const r = a === "dynamic-tool" ? s : a.split("-").slice(1).join("-");
|
|
74
|
-
return /* @__PURE__ */ l(
|
|
75
|
-
B,
|
|
76
|
-
{
|
|
77
|
-
className: i(
|
|
78
|
-
"flex w-full items-center justify-between gap-4 p-3",
|
|
79
|
-
o
|
|
80
|
-
),
|
|
81
|
-
...c,
|
|
82
|
-
children: [
|
|
83
|
-
/* @__PURE__ */ l("div", { className: "flex items-center gap-2", children: [
|
|
84
|
-
/* @__PURE__ */ e(y, { className: "size-4 text-muted-foreground" }),
|
|
85
|
-
/* @__PURE__ */ e("span", { className: "font-medium text-sm", children: t ?? r }),
|
|
86
|
-
S(n)
|
|
87
|
-
] }),
|
|
88
|
-
/* @__PURE__ */ e(
|
|
89
|
-
w,
|
|
90
|
-
{
|
|
91
|
-
className: "size-4 text-muted-foreground opacity-0 transition-all group-focus-within:opacity-100 group-hover:opacity-100 group-data-[state=open]:rotate-180 group-data-[state=open]:opacity-100",
|
|
92
|
-
"data-slot": "collapsible-chevron"
|
|
93
|
-
}
|
|
94
|
-
)
|
|
95
|
-
]
|
|
96
|
-
}
|
|
97
|
-
);
|
|
98
|
-
}, K = ({ className: o, ...t }) => /* @__PURE__ */ e(
|
|
99
|
-
R,
|
|
100
|
-
{
|
|
101
|
-
className: i(
|
|
102
|
-
"data-[state=closed]:fade-out-0 data-[state=closed]:slide-out-to-top-2 data-[state=open]:slide-in-from-top-2 space-y-4 p-4 text-popover-foreground outline-none data-[state=closed]:animate-out data-[state=open]:animate-in",
|
|
103
|
-
o
|
|
104
|
-
),
|
|
105
|
-
...t
|
|
106
|
-
}
|
|
107
|
-
), M = ({ className: o, input: t, ...a }) => /* @__PURE__ */ l("div", { className: i("space-y-2 overflow-hidden", o), ...a, children: [
|
|
108
|
-
/* @__PURE__ */ e("h4", { className: "font-medium text-muted-foreground text-xs uppercase tracking-wide", children: "Parameters" }),
|
|
109
|
-
/* @__PURE__ */ e("div", { className: "rounded-md bg-muted/50", children: /* @__PURE__ */ e(p, { code: JSON.stringify(t, null, 2), language: "json" }) })
|
|
110
|
-
] }), Q = ({
|
|
111
|
-
className: o,
|
|
112
|
-
output: t,
|
|
113
|
-
errorText: a,
|
|
114
|
-
...n
|
|
115
|
-
}) => {
|
|
116
|
-
if (!(t || a))
|
|
117
|
-
return null;
|
|
118
|
-
let s = /* @__PURE__ */ e("div", { children: t });
|
|
119
|
-
return typeof t == "object" && !k(t) ? s = /* @__PURE__ */ e(p, { code: JSON.stringify(t, null, 2), language: "json" }) : typeof t == "string" && (s = /* @__PURE__ */ e(p, { code: t, language: "json" })), /* @__PURE__ */ l("div", { className: i("space-y-2", o), ...n, children: [
|
|
120
|
-
/* @__PURE__ */ e("h4", { className: "font-medium text-muted-foreground text-xs uppercase tracking-wide", children: a ? "Error" : "Result" }),
|
|
121
|
-
a ? /* @__PURE__ */ e(
|
|
122
|
-
A,
|
|
123
|
-
{
|
|
124
|
-
variant: "destructive",
|
|
125
|
-
description: a,
|
|
126
|
-
className: "rounded-md text-xs"
|
|
127
|
-
}
|
|
128
|
-
) : /* @__PURE__ */ e("div", { className: "overflow-x-auto rounded-md bg-muted/50 text-foreground text-xs [&_table]:w-full", children: s })
|
|
129
|
-
] });
|
|
130
|
-
};
|
|
131
|
-
export {
|
|
132
|
-
F as Tool,
|
|
133
|
-
K as ToolContent,
|
|
134
|
-
G as ToolHeader,
|
|
135
|
-
M as ToolInput,
|
|
136
|
-
Q as ToolOutput,
|
|
137
|
-
S as getStatusBadge
|
|
138
|
-
};
|
|
139
|
-
//# sourceMappingURL=tool.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"tool.js","sources":["../../../src/components/ai/tool.tsx"],"sourcesContent":["import { useControllableState } from \"@radix-ui/react-use-controllable-state\";\nimport {\n CheckCircleIcon,\n ChevronDownIcon,\n CircleIcon,\n ClockIcon,\n WrenchIcon,\n XCircleIcon,\n} from \"lucide-react\";\nimport { isValidElement, useCallback, useEffect, useRef, useState } from \"react\";\n\n\nimport type { DynamicToolUIPart, ToolUIPart } from \"ai\";\nimport type { ComponentProps, ReactNode } from \"react\";\n\nimport { Badge } from \"@/components/ui/badge\";\nimport { Banner } from \"@/components/ui/banner\";\nimport { CodeBlock } from \"@/components/ui/code-block\";\nimport {\n Collapsible,\n CollapsibleContent,\n CollapsibleTrigger,\n} from \"@/components/ui/collapsible\";\nimport { cn } from \"@/lib/utils\";\n\n\n\n\nconst AUTO_CLOSE_DELAY = 1000;\n\nexport type ToolProps = ComponentProps<typeof Collapsible> & {\n isStreaming?: boolean;\n};\n\nexport const Tool = ({\n className,\n isStreaming = false,\n open,\n onOpenChange,\n defaultOpen,\n ...props\n}: ToolProps) => {\n const [isOpen, setIsOpen] = useControllableState<boolean>({\n defaultProp: defaultOpen ?? true,\n onChange: onOpenChange,\n prop: open,\n });\n\n const hasEverStreamedRef = useRef(isStreaming);\n const [hasAutoClosed, setHasAutoClosed] = useState(false);\n\n useEffect(() => {\n if (isStreaming) hasEverStreamedRef.current = true;\n }, [isStreaming]);\n\n useEffect(() => {\n if (hasEverStreamedRef.current && !isStreaming && isOpen && !hasAutoClosed) {\n const timer = setTimeout(() => {\n setIsOpen(false);\n setHasAutoClosed(true);\n }, AUTO_CLOSE_DELAY);\n return () => clearTimeout(timer);\n }\n }, [isStreaming, isOpen, setIsOpen, hasAutoClosed]);\n\n const handleOpenChange = useCallback(\n (newOpen: boolean) => setIsOpen(newOpen),\n [setIsOpen]\n );\n\n return (\n <Collapsible\n className={cn(\"group not-prose mb-4 w-full rounded-md border bg-background\", className)}\n onOpenChange={handleOpenChange}\n open={isOpen}\n {...props}\n />\n );\n};\n\nexport type ToolPart = ToolUIPart | DynamicToolUIPart;\n\nexport type ToolHeaderProps = {\n title?: string;\n className?: string;\n} & (\n | { type: ToolUIPart[\"type\"]; state: ToolUIPart[\"state\"]; toolName?: never }\n | {\n type: DynamicToolUIPart[\"type\"];\n state: DynamicToolUIPart[\"state\"];\n toolName: string;\n }\n);\n\nconst statusLabels: Record<ToolPart[\"state\"], string> = {\n \"approval-requested\": \"Awaiting Approval\",\n \"approval-responded\": \"Responded\",\n \"input-available\": \"Running\",\n \"input-streaming\": \"Pending\",\n \"output-available\": \"Completed\",\n \"output-denied\": \"Denied\",\n \"output-error\": \"Error\",\n};\n\nconst statusIcons: Record<ToolPart[\"state\"], ReactNode> = {\n \"approval-requested\": <ClockIcon className=\"size-4 text-yellow-600\" />,\n \"approval-responded\": <CheckCircleIcon className=\"size-4 text-blue-600\" />,\n \"input-available\": <ClockIcon className=\"size-4 animate-pulse\" />,\n \"input-streaming\": <CircleIcon className=\"size-4\" />,\n \"output-available\": <CheckCircleIcon className=\"size-4 text-green-600\" />,\n \"output-denied\": <XCircleIcon className=\"size-4 text-orange-600\" />,\n \"output-error\": <XCircleIcon className=\"size-4 text-red-600\" />,\n};\n\nexport const getStatusBadge = (status: ToolPart[\"state\"]) => (\n <Badge className=\"gap-1.5 rounded-full text-xs\" variant=\"secondary\">\n {statusIcons[status]}\n {statusLabels[status]}\n </Badge>\n);\n\nexport const ToolHeader = ({\n className,\n title,\n type,\n state,\n toolName,\n ...props\n}: ToolHeaderProps) => {\n const derivedName =\n type === \"dynamic-tool\" ? toolName : type.split(\"-\").slice(1).join(\"-\");\n\n return (\n <CollapsibleTrigger\n className={cn(\n \"flex w-full items-center justify-between gap-4 p-3\",\n className\n )}\n {...props}\n >\n <div className=\"flex items-center gap-2\">\n <WrenchIcon className=\"size-4 text-muted-foreground\" />\n <span className=\"font-medium text-sm\">{title ?? derivedName}</span>\n {getStatusBadge(state)}\n </div>\n <ChevronDownIcon\n className=\"size-4 text-muted-foreground opacity-0 transition-all group-focus-within:opacity-100 group-hover:opacity-100 group-data-[state=open]:rotate-180 group-data-[state=open]:opacity-100\"\n data-slot=\"collapsible-chevron\"\n />\n </CollapsibleTrigger>\n );\n};\n\nexport type ToolContentProps = ComponentProps<typeof CollapsibleContent>;\n\nexport const ToolContent = ({ className, ...props }: ToolContentProps) => (\n <CollapsibleContent\n className={cn(\n \"data-[state=closed]:fade-out-0 data-[state=closed]:slide-out-to-top-2 data-[state=open]:slide-in-from-top-2 space-y-4 p-4 text-popover-foreground outline-none data-[state=closed]:animate-out data-[state=open]:animate-in\",\n className\n )}\n {...props}\n />\n);\n\nexport type ToolInputProps = ComponentProps<\"div\"> & {\n input: ToolPart[\"input\"];\n};\n\nexport const ToolInput = ({ className, input, ...props }: ToolInputProps) => (\n <div className={cn(\"space-y-2 overflow-hidden\", className)} {...props}>\n <h4 className=\"font-medium text-muted-foreground text-xs uppercase tracking-wide\">\n Parameters\n </h4>\n <div className=\"rounded-md bg-muted/50\">\n <CodeBlock code={JSON.stringify(input, null, 2)} language=\"json\" />\n </div>\n </div>\n);\n\nexport type ToolOutputProps = ComponentProps<\"div\"> & {\n output: ToolPart[\"output\"];\n errorText: ToolPart[\"errorText\"];\n};\n\nexport const ToolOutput = ({\n className,\n output,\n errorText,\n ...props\n}: ToolOutputProps) => {\n if (!(output || errorText)) {\n return null;\n }\n\n let Output = <div>{output as ReactNode}</div>;\n\n if (typeof output === \"object\" && !isValidElement(output)) {\n Output = (\n <CodeBlock code={JSON.stringify(output, null, 2)} language=\"json\" />\n );\n } else if (typeof output === \"string\") {\n Output = <CodeBlock code={output} language=\"json\" />;\n }\n\n return (\n <div className={cn(\"space-y-2\", className)} {...props}>\n <h4 className=\"font-medium text-muted-foreground text-xs uppercase tracking-wide\">\n {errorText ? \"Error\" : \"Result\"}\n </h4>\n {errorText ? (\n <Banner\n variant=\"destructive\"\n description={errorText}\n className=\"rounded-md text-xs\"\n />\n ) : (\n <div className=\"overflow-x-auto rounded-md bg-muted/50 text-foreground text-xs [&_table]:w-full\">\n {Output}\n </div>\n )}\n </div>\n );\n};\n"],"names":["AUTO_CLOSE_DELAY","Tool","className","isStreaming","open","onOpenChange","defaultOpen","props","isOpen","setIsOpen","useControllableState","hasEverStreamedRef","useRef","hasAutoClosed","setHasAutoClosed","useState","useEffect","timer","handleOpenChange","useCallback","newOpen","jsx","Collapsible","cn","statusLabels","statusIcons","ClockIcon","CheckCircleIcon","CircleIcon","XCircleIcon","getStatusBadge","status","jsxs","Badge","ToolHeader","title","type","state","toolName","derivedName","CollapsibleTrigger","WrenchIcon","ChevronDownIcon","ToolContent","CollapsibleContent","ToolInput","input","CodeBlock","ToolOutput","output","errorText","Output","isValidElement","Banner"],"mappings":"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"}
|
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const T=require("react/jsx-runtime"),u=require("react"),n=require("./tdp-url.cjs"),l=u.createContext(null);function p(){const r=u.useContext(l);if(!r)throw new Error("useTdpNavigationContext must be used within a TdpNavigationProvider. Wrap your app with <TdpNavigationProvider> or use the standalone useTdpNavigation() hook instead.");return r}const f=({tdpBaseUrl:r,children:t})=>{const e=u.useMemo(()=>r?r.replace(/\/$/u,""):n.getTdpBaseUrlFromReferrer(),[r]),o=u.useMemo(()=>({tdpBaseUrl:e,getTdpUrl:i=>e?n.buildTdpUrl(e,i):null,navigateToTdp:(i,a)=>{if(!e){console.warn("[TdpNavigation] Cannot navigate: TDP base URL not resolved");return}const d=n.buildTdpUrl(e,i);d&&n.navigateToTdpUrl(d,a)}}),[e]);return T.jsx(l.Provider,{value:o,children:t})};function b(r={}){const{tdpBaseUrl:t}=r,e=u.useMemo(()=>t?t.replace(/\/$/u,""):n.getTdpBaseUrlFromReferrer(),[t]);return u.useMemo(()=>({tdpBaseUrl:e,getTdpUrl:o=>e?n.buildTdpUrl(e,o):null,navigateToTdp:(o,i)=>{if(!e){console.warn("[useTdpNavigation] Cannot navigate: TDP base URL not resolved");return}const a=n.buildTdpUrl(e,o);a&&n.navigateToTdpUrl(a,i)}}),[e])}const U=({path:r,navigationOptions:t={newTab:!0},children:e,onClick:o,className:i,...a})=>{const{getTdpUrl:d,navigateToTdp:c}=p(),v=d(r),g=s=>{s.metaKey||s.ctrlKey||s.shiftKey||(s.preventDefault(),o?.(s),c(r,t))};return T.jsx("a",{href:v??"#",target:t.newTab?"_blank":void 0,rel:t.newTab?"noopener noreferrer":void 0,onClick:g,className:`underline underline-offset-2 cursor-pointer focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:rounded-[2px] ${i??""}`,style:{color:"var(--primary)",outlineColor:"var(--border)"},...a,children:e})};exports.TDPLink=U;exports.TdpNavigationContext=l;exports.TdpNavigationProvider=f;exports.useTdpNavigation=b;exports.useTdpNavigationContext=p;
|
|
2
|
-
//# sourceMappingURL=tdp-link.cjs.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"tdp-link.cjs","sources":["../../../src/components/composed/tdp-link.tsx"],"sourcesContent":["import React, { createContext, useContext, useMemo } from 'react';\n\nimport { buildTdpUrl, getTdpBaseUrlFromReferrer, navigateToTdpUrl } from './tdp-url';\n\nimport type { TdpNavigationOptions } from './tdp-url';\n\nexport interface TdpNavigationContextValue {\n /** The resolved TDP base URL (origin + org path prefix), or null if not resolved */\n tdpBaseUrl: string | null;\n /** Construct a full TDP URL from a path. Returns null if base URL is not resolved. */\n getTdpUrl: (path: string) => string | null;\n /** Navigate to a TDP page. */\n navigateToTdp: (path: string, options?: TdpNavigationOptions) => void;\n}\n\nexport const TdpNavigationContext = createContext<TdpNavigationContextValue | null>(null);\n\n/**\n * Access TDP navigation helpers from the nearest TdpNavigationProvider.\n *\n * @throws Error if used outside a TdpNavigationProvider\n *\n * @example\n * ```tsx\n * const { getTdpUrl, navigateToTdp } = useTdpNavigationContext();\n * ```\n */\nexport function useTdpNavigationContext(): TdpNavigationContextValue {\n const context = useContext(TdpNavigationContext);\n if (!context) {\n throw new Error(\n 'useTdpNavigationContext must be used within a TdpNavigationProvider. ' +\n 'Wrap your app with <TdpNavigationProvider> or use the standalone useTdpNavigation() hook instead.',\n );\n }\n return context;\n}\n\n/** Props for the TdpNavigationProvider component */\nexport interface TdpNavigationProviderProps {\n /**\n * Explicit TDP base URL override. Skips auto-detection when provided.\n */\n tdpBaseUrl?: string;\n children: React.ReactNode;\n}\n\n/**\n * Provider that resolves the TDP base URL and exposes navigation helpers.\n *\n * Resolution order:\n * 1. Explicit `tdpBaseUrl` prop (if provided)\n * 2. `document.referrer` parsing (production iframe)\n *\n * @example\n * ```tsx\n * <TdpNavigationProvider tdpBaseUrl=\"https://tetrascience.com/my-org\">\n * <App />\n * </TdpNavigationProvider>\n * ```\n */\nexport const TdpNavigationProvider: React.FC<TdpNavigationProviderProps> = ({\n tdpBaseUrl: explicitBaseUrl,\n children,\n}) => {\n const tdpBaseUrl = useMemo(() => {\n if (explicitBaseUrl) {\n return explicitBaseUrl.replace(/\\/$/u, '');\n }\n return getTdpBaseUrlFromReferrer();\n }, [explicitBaseUrl]);\n\n const contextValue = useMemo<TdpNavigationContextValue>(\n () => ({\n tdpBaseUrl,\n getTdpUrl: (path: string) => {\n if (!tdpBaseUrl) return null;\n return buildTdpUrl(tdpBaseUrl, path);\n },\n navigateToTdp: (path: string, options?: TdpNavigationOptions) => {\n if (!tdpBaseUrl) {\n console.warn('[TdpNavigation] Cannot navigate: TDP base URL not resolved');\n return;\n }\n const url = buildTdpUrl(tdpBaseUrl, path);\n if (url) {\n navigateToTdpUrl(url, options);\n }\n },\n }),\n [tdpBaseUrl],\n );\n\n return <TdpNavigationContext.Provider value={contextValue}>{children}</TdpNavigationContext.Provider>;\n};\n\nexport interface UseTdpNavigationOptions {\n /** Explicit TDP base URL override */\n tdpBaseUrl?: string;\n}\n\nexport interface UseTdpNavigationReturn {\n /** The resolved TDP base URL, or null */\n tdpBaseUrl: string | null;\n /** Construct a full TDP URL from a path */\n getTdpUrl: (path: string) => string | null;\n /** Navigate to a TDP page */\n navigateToTdp: (path: string, options?: TdpNavigationOptions) => void;\n}\n\n/**\n * Standalone hook for TDP navigation (no provider required).\n *\n * For simple use cases where you don't need a TdpNavigationProvider.\n * If multiple components need navigation, prefer the provider approach.\n *\n * @example\n * ```tsx\n * function MyComponent() {\n * const { getTdpUrl, navigateToTdp } = useTdpNavigation({\n * tdpBaseUrl: \"https://tetrascience.com/my-org\",\n * });\n *\n * return (\n * <a href={getTdpUrl(\"/file/abc\") ?? \"#\"} target=\"_blank\" rel=\"noopener noreferrer\">\n * View File\n * </a>\n * );\n * }\n * ```\n */\nexport function useTdpNavigation(options: UseTdpNavigationOptions = {}): UseTdpNavigationReturn {\n const { tdpBaseUrl: explicitBaseUrl } = options;\n\n const tdpBaseUrl = useMemo(() => {\n if (explicitBaseUrl) return explicitBaseUrl.replace(/\\/$/u, '');\n return getTdpBaseUrlFromReferrer();\n }, [explicitBaseUrl]);\n\n return useMemo(\n () => ({\n tdpBaseUrl,\n getTdpUrl: (path: string) => (tdpBaseUrl ? buildTdpUrl(tdpBaseUrl, path) : null),\n navigateToTdp: (path: string, opts?: TdpNavigationOptions) => {\n if (!tdpBaseUrl) {\n console.warn('[useTdpNavigation] Cannot navigate: TDP base URL not resolved');\n return;\n }\n const url = buildTdpUrl(tdpBaseUrl, path);\n if (url) navigateToTdpUrl(url, opts);\n },\n }),\n [tdpBaseUrl],\n );\n}\n\n/** Props for the TDPLink component */\nexport interface TDPLinkProps extends Omit<React.AnchorHTMLAttributes<HTMLAnchorElement>, 'href'> {\n /** TDP page path (e.g., \"/file/abc-123\" or use tdpPaths helpers) */\n path: string;\n /** Navigation behavior. Default: { newTab: true } */\n navigationOptions?: TdpNavigationOptions;\n children: React.ReactNode;\n ref?: React.Ref<HTMLAnchorElement>;\n}\n\n/**\n * A link component that navigates to TDP pages.\n *\n * Renders a standard `<a>` tag with the correct href for right-click\n * \"Open in new tab\" support, accessibility, and SEO.\n *\n * Must be used inside a `<TdpNavigationProvider>`.\n *\n * @example\n * ```tsx\n * import { TDPLink, tdpPaths } from '@tetrascience-npm/tetrascience-react-ui';\n *\n * <TDPLink path={tdpPaths.fileDetails(\"abc-123\")}>\n * View File Details\n * </TDPLink>\n *\n * <TDPLink path=\"/search?q=test\" navigationOptions={{ newTab: false }}>\n * Search in TDP (same tab)\n * </TDPLink>\n * ```\n */\nexport const TDPLink: React.FC<TDPLinkProps> = ({\n path,\n navigationOptions = { newTab: true },\n children,\n onClick,\n className,\n ...rest\n}) => {\n const { getTdpUrl, navigateToTdp } = useTdpNavigationContext();\n const href = getTdpUrl(path);\n\n const handleClick = (e: React.MouseEvent<HTMLAnchorElement>) => {\n // Let modifier-key clicks through for native \"open in new tab\" behavior\n if (e.metaKey || e.ctrlKey || e.shiftKey) {\n return;\n }\n\n e.preventDefault();\n onClick?.(e);\n navigateToTdp(path, navigationOptions);\n };\n\n return (\n <a\n href={href ?? '#'}\n target={navigationOptions.newTab ? '_blank' : undefined}\n rel={navigationOptions.newTab ? 'noopener noreferrer' : undefined}\n onClick={handleClick}\n className={`underline underline-offset-2 cursor-pointer focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:rounded-[2px] ${className ?? ''}`}\n style={{ color: 'var(--primary)', outlineColor: 'var(--border)' }}\n {...rest}\n >\n {children}\n </a>\n );\n};\n"],"names":["TdpNavigationContext","createContext","useTdpNavigationContext","context","useContext","TdpNavigationProvider","explicitBaseUrl","children","tdpBaseUrl","useMemo","getTdpBaseUrlFromReferrer","contextValue","path","buildTdpUrl","options","url","navigateToTdpUrl","useTdpNavigation","opts","TDPLink","navigationOptions","onClick","className","rest","getTdpUrl","navigateToTdp","href","handleClick","e","jsx"],"mappings":"mKAeaA,EAAuBC,EAAAA,cAAgD,IAAI,EAYjF,SAASC,GAAqD,CACnE,MAAMC,EAAUC,EAAAA,WAAWJ,CAAoB,EAC/C,GAAI,CAACG,EACH,MAAM,IAAI,MACR,wKAAA,EAIJ,OAAOA,CACT,CAyBO,MAAME,EAA8D,CAAC,CAC1E,WAAYC,EACZ,SAAAC,CACF,IAAM,CACJ,MAAMC,EAAaC,EAAAA,QAAQ,IACrBH,EACKA,EAAgB,QAAQ,OAAQ,EAAE,EAEpCI,4BAAA,EACN,CAACJ,CAAe,CAAC,EAEdK,EAAeF,EAAAA,QACnB,KAAO,CACL,WAAAD,EACA,UAAYI,GACLJ,EACEK,EAAAA,YAAYL,EAAYI,CAAI,EADX,KAG1B,cAAe,CAACA,EAAcE,IAAmC,CAC/D,GAAI,CAACN,EAAY,CACf,QAAQ,KAAK,4DAA4D,EACzE,MACF,CACA,MAAMO,EAAMF,EAAAA,YAAYL,EAAYI,CAAI,EACpCG,GACFC,EAAAA,iBAAiBD,EAAKD,CAAO,CAEjC,CAAA,GAEF,CAACN,CAAU,CAAA,EAGb,aAAQR,EAAqB,SAArB,CAA8B,MAAOW,EAAe,SAAAJ,EAAS,CACvE,EAqCO,SAASU,EAAiBH,EAAmC,GAA4B,CAC9F,KAAM,CAAE,WAAYR,CAAA,EAAoBQ,EAElCN,EAAaC,EAAAA,QAAQ,IACrBH,EAAwBA,EAAgB,QAAQ,OAAQ,EAAE,EACvDI,4BAAA,EACN,CAACJ,CAAe,CAAC,EAEpB,OAAOG,EAAAA,QACL,KAAO,CACL,WAAAD,EACA,UAAYI,GAAkBJ,EAAaK,EAAAA,YAAYL,EAAYI,CAAI,EAAI,KAC3E,cAAe,CAACA,EAAcM,IAAgC,CAC5D,GAAI,CAACV,EAAY,CACf,QAAQ,KAAK,+DAA+D,EAC5E,MACF,CACA,MAAMO,EAAMF,EAAAA,YAAYL,EAAYI,CAAI,EACpCG,GAAKC,EAAAA,iBAAiBD,EAAKG,CAAI,CACrC,CAAA,GAEF,CAACV,CAAU,CAAA,CAEf,CAiCO,MAAMW,EAAkC,CAAC,CAC9C,KAAAP,EACA,kBAAAQ,EAAoB,CAAE,OAAQ,EAAA,EAC9B,SAAAb,EACA,QAAAc,EACA,UAAAC,EACA,GAAGC,CACL,IAAM,CACJ,KAAM,CAAE,UAAAC,EAAW,cAAAC,CAAA,EAAkBvB,EAAA,EAC/BwB,EAAOF,EAAUZ,CAAI,EAErBe,EAAeC,GAA2C,CAE1DA,EAAE,SAAWA,EAAE,SAAWA,EAAE,WAIhCA,EAAE,eAAA,EACFP,IAAUO,CAAC,EACXH,EAAcb,EAAMQ,CAAiB,EACvC,EAEA,OACES,EAAAA,IAAC,IAAA,CACC,KAAMH,GAAQ,IACd,OAAQN,EAAkB,OAAS,SAAW,OAC9C,IAAKA,EAAkB,OAAS,sBAAwB,OACxD,QAASO,EACT,UAAW,kIAAkIL,GAAa,EAAE,GAC5J,MAAO,CAAE,MAAO,iBAAkB,aAAc,eAAA,EAC/C,GAAGC,EAEH,SAAAhB,CAAA,CAAA,CAGP"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"tdp-link.js","sources":["../../../src/components/composed/tdp-link.tsx"],"sourcesContent":["import React, { createContext, useContext, useMemo } from 'react';\n\nimport { buildTdpUrl, getTdpBaseUrlFromReferrer, navigateToTdpUrl } from './tdp-url';\n\nimport type { TdpNavigationOptions } from './tdp-url';\n\nexport interface TdpNavigationContextValue {\n /** The resolved TDP base URL (origin + org path prefix), or null if not resolved */\n tdpBaseUrl: string | null;\n /** Construct a full TDP URL from a path. Returns null if base URL is not resolved. */\n getTdpUrl: (path: string) => string | null;\n /** Navigate to a TDP page. */\n navigateToTdp: (path: string, options?: TdpNavigationOptions) => void;\n}\n\nexport const TdpNavigationContext = createContext<TdpNavigationContextValue | null>(null);\n\n/**\n * Access TDP navigation helpers from the nearest TdpNavigationProvider.\n *\n * @throws Error if used outside a TdpNavigationProvider\n *\n * @example\n * ```tsx\n * const { getTdpUrl, navigateToTdp } = useTdpNavigationContext();\n * ```\n */\nexport function useTdpNavigationContext(): TdpNavigationContextValue {\n const context = useContext(TdpNavigationContext);\n if (!context) {\n throw new Error(\n 'useTdpNavigationContext must be used within a TdpNavigationProvider. ' +\n 'Wrap your app with <TdpNavigationProvider> or use the standalone useTdpNavigation() hook instead.',\n );\n }\n return context;\n}\n\n/** Props for the TdpNavigationProvider component */\nexport interface TdpNavigationProviderProps {\n /**\n * Explicit TDP base URL override. Skips auto-detection when provided.\n */\n tdpBaseUrl?: string;\n children: React.ReactNode;\n}\n\n/**\n * Provider that resolves the TDP base URL and exposes navigation helpers.\n *\n * Resolution order:\n * 1. Explicit `tdpBaseUrl` prop (if provided)\n * 2. `document.referrer` parsing (production iframe)\n *\n * @example\n * ```tsx\n * <TdpNavigationProvider tdpBaseUrl=\"https://tetrascience.com/my-org\">\n * <App />\n * </TdpNavigationProvider>\n * ```\n */\nexport const TdpNavigationProvider: React.FC<TdpNavigationProviderProps> = ({\n tdpBaseUrl: explicitBaseUrl,\n children,\n}) => {\n const tdpBaseUrl = useMemo(() => {\n if (explicitBaseUrl) {\n return explicitBaseUrl.replace(/\\/$/u, '');\n }\n return getTdpBaseUrlFromReferrer();\n }, [explicitBaseUrl]);\n\n const contextValue = useMemo<TdpNavigationContextValue>(\n () => ({\n tdpBaseUrl,\n getTdpUrl: (path: string) => {\n if (!tdpBaseUrl) return null;\n return buildTdpUrl(tdpBaseUrl, path);\n },\n navigateToTdp: (path: string, options?: TdpNavigationOptions) => {\n if (!tdpBaseUrl) {\n console.warn('[TdpNavigation] Cannot navigate: TDP base URL not resolved');\n return;\n }\n const url = buildTdpUrl(tdpBaseUrl, path);\n if (url) {\n navigateToTdpUrl(url, options);\n }\n },\n }),\n [tdpBaseUrl],\n );\n\n return <TdpNavigationContext.Provider value={contextValue}>{children}</TdpNavigationContext.Provider>;\n};\n\nexport interface UseTdpNavigationOptions {\n /** Explicit TDP base URL override */\n tdpBaseUrl?: string;\n}\n\nexport interface UseTdpNavigationReturn {\n /** The resolved TDP base URL, or null */\n tdpBaseUrl: string | null;\n /** Construct a full TDP URL from a path */\n getTdpUrl: (path: string) => string | null;\n /** Navigate to a TDP page */\n navigateToTdp: (path: string, options?: TdpNavigationOptions) => void;\n}\n\n/**\n * Standalone hook for TDP navigation (no provider required).\n *\n * For simple use cases where you don't need a TdpNavigationProvider.\n * If multiple components need navigation, prefer the provider approach.\n *\n * @example\n * ```tsx\n * function MyComponent() {\n * const { getTdpUrl, navigateToTdp } = useTdpNavigation({\n * tdpBaseUrl: \"https://tetrascience.com/my-org\",\n * });\n *\n * return (\n * <a href={getTdpUrl(\"/file/abc\") ?? \"#\"} target=\"_blank\" rel=\"noopener noreferrer\">\n * View File\n * </a>\n * );\n * }\n * ```\n */\nexport function useTdpNavigation(options: UseTdpNavigationOptions = {}): UseTdpNavigationReturn {\n const { tdpBaseUrl: explicitBaseUrl } = options;\n\n const tdpBaseUrl = useMemo(() => {\n if (explicitBaseUrl) return explicitBaseUrl.replace(/\\/$/u, '');\n return getTdpBaseUrlFromReferrer();\n }, [explicitBaseUrl]);\n\n return useMemo(\n () => ({\n tdpBaseUrl,\n getTdpUrl: (path: string) => (tdpBaseUrl ? buildTdpUrl(tdpBaseUrl, path) : null),\n navigateToTdp: (path: string, opts?: TdpNavigationOptions) => {\n if (!tdpBaseUrl) {\n console.warn('[useTdpNavigation] Cannot navigate: TDP base URL not resolved');\n return;\n }\n const url = buildTdpUrl(tdpBaseUrl, path);\n if (url) navigateToTdpUrl(url, opts);\n },\n }),\n [tdpBaseUrl],\n );\n}\n\n/** Props for the TDPLink component */\nexport interface TDPLinkProps extends Omit<React.AnchorHTMLAttributes<HTMLAnchorElement>, 'href'> {\n /** TDP page path (e.g., \"/file/abc-123\" or use tdpPaths helpers) */\n path: string;\n /** Navigation behavior. Default: { newTab: true } */\n navigationOptions?: TdpNavigationOptions;\n children: React.ReactNode;\n ref?: React.Ref<HTMLAnchorElement>;\n}\n\n/**\n * A link component that navigates to TDP pages.\n *\n * Renders a standard `<a>` tag with the correct href for right-click\n * \"Open in new tab\" support, accessibility, and SEO.\n *\n * Must be used inside a `<TdpNavigationProvider>`.\n *\n * @example\n * ```tsx\n * import { TDPLink, tdpPaths } from '@tetrascience-npm/tetrascience-react-ui';\n *\n * <TDPLink path={tdpPaths.fileDetails(\"abc-123\")}>\n * View File Details\n * </TDPLink>\n *\n * <TDPLink path=\"/search?q=test\" navigationOptions={{ newTab: false }}>\n * Search in TDP (same tab)\n * </TDPLink>\n * ```\n */\nexport const TDPLink: React.FC<TDPLinkProps> = ({\n path,\n navigationOptions = { newTab: true },\n children,\n onClick,\n className,\n ...rest\n}) => {\n const { getTdpUrl, navigateToTdp } = useTdpNavigationContext();\n const href = getTdpUrl(path);\n\n const handleClick = (e: React.MouseEvent<HTMLAnchorElement>) => {\n // Let modifier-key clicks through for native \"open in new tab\" behavior\n if (e.metaKey || e.ctrlKey || e.shiftKey) {\n return;\n }\n\n e.preventDefault();\n onClick?.(e);\n navigateToTdp(path, navigationOptions);\n };\n\n return (\n <a\n href={href ?? '#'}\n target={navigationOptions.newTab ? '_blank' : undefined}\n rel={navigationOptions.newTab ? 'noopener noreferrer' : undefined}\n onClick={handleClick}\n className={`underline underline-offset-2 cursor-pointer focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:rounded-[2px] ${className ?? ''}`}\n style={{ color: 'var(--primary)', outlineColor: 'var(--border)' }}\n {...rest}\n >\n {children}\n </a>\n );\n};\n"],"names":["TdpNavigationContext","createContext","useTdpNavigationContext","context","useContext","TdpNavigationProvider","explicitBaseUrl","children","tdpBaseUrl","useMemo","getTdpBaseUrlFromReferrer","contextValue","path","buildTdpUrl","options","url","navigateToTdpUrl","useTdpNavigation","opts","TDPLink","navigationOptions","onClick","className","rest","getTdpUrl","navigateToTdp","href","handleClick","e","jsx"],"mappings":";;;AAeO,MAAMA,IAAuBC,EAAgD,IAAI;AAYjF,SAASC,IAAqD;AACnE,QAAMC,IAAUC,EAAWJ,CAAoB;AAC/C,MAAI,CAACG;AACH,UAAM,IAAI;AAAA,MACR;AAAA,IAAA;AAIJ,SAAOA;AACT;AAyBO,MAAME,IAA8D,CAAC;AAAA,EAC1E,YAAYC;AAAA,EACZ,UAAAC;AACF,MAAM;AACJ,QAAMC,IAAaC,EAAQ,MACrBH,IACKA,EAAgB,QAAQ,QAAQ,EAAE,IAEpCI,EAAA,GACN,CAACJ,CAAe,CAAC,GAEdK,IAAeF;AAAA,IACnB,OAAO;AAAA,MACL,YAAAD;AAAA,MACA,WAAW,CAACI,MACLJ,IACEK,EAAYL,GAAYI,CAAI,IADX;AAAA,MAG1B,eAAe,CAACA,GAAcE,MAAmC;AAC/D,YAAI,CAACN,GAAY;AACf,kBAAQ,KAAK,4DAA4D;AACzE;AAAA,QACF;AACA,cAAMO,IAAMF,EAAYL,GAAYI,CAAI;AACxC,QAAIG,KACFC,EAAiBD,GAAKD,CAAO;AAAA,MAEjC;AAAA,IAAA;AAAA,IAEF,CAACN,CAAU;AAAA,EAAA;AAGb,2BAAQR,EAAqB,UAArB,EAA8B,OAAOW,GAAe,UAAAJ,GAAS;AACvE;AAqCO,SAASU,EAAiBH,IAAmC,IAA4B;AAC9F,QAAM,EAAE,YAAYR,EAAA,IAAoBQ,GAElCN,IAAaC,EAAQ,MACrBH,IAAwBA,EAAgB,QAAQ,QAAQ,EAAE,IACvDI,EAAA,GACN,CAACJ,CAAe,CAAC;AAEpB,SAAOG;AAAA,IACL,OAAO;AAAA,MACL,YAAAD;AAAA,MACA,WAAW,CAACI,MAAkBJ,IAAaK,EAAYL,GAAYI,CAAI,IAAI;AAAA,MAC3E,eAAe,CAACA,GAAcM,MAAgC;AAC5D,YAAI,CAACV,GAAY;AACf,kBAAQ,KAAK,+DAA+D;AAC5E;AAAA,QACF;AACA,cAAMO,IAAMF,EAAYL,GAAYI,CAAI;AACxC,QAAIG,KAAKC,EAAiBD,GAAKG,CAAI;AAAA,MACrC;AAAA,IAAA;AAAA,IAEF,CAACV,CAAU;AAAA,EAAA;AAEf;AAiCO,MAAMW,IAAkC,CAAC;AAAA,EAC9C,MAAAP;AAAA,EACA,mBAAAQ,IAAoB,EAAE,QAAQ,GAAA;AAAA,EAC9B,UAAAb;AAAA,EACA,SAAAc;AAAA,EACA,WAAAC;AAAA,EACA,GAAGC;AACL,MAAM;AACJ,QAAM,EAAE,WAAAC,GAAW,eAAAC,EAAA,IAAkBvB,EAAA,GAC/BwB,IAAOF,EAAUZ,CAAI,GAErBe,IAAc,CAACC,MAA2C;AAE9D,IAAIA,EAAE,WAAWA,EAAE,WAAWA,EAAE,aAIhCA,EAAE,eAAA,GACFP,IAAUO,CAAC,GACXH,EAAcb,GAAMQ,CAAiB;AAAA,EACvC;AAEA,SACE,gBAAAS;AAAA,IAAC;AAAA,IAAA;AAAA,MACC,MAAMH,KAAQ;AAAA,MACd,QAAQN,EAAkB,SAAS,WAAW;AAAA,MAC9C,KAAKA,EAAkB,SAAS,wBAAwB;AAAA,MACxD,SAASO;AAAA,MACT,WAAW,kIAAkIL,KAAa,EAAE;AAAA,MAC5J,OAAO,EAAE,OAAO,kBAAkB,cAAc,gBAAA;AAAA,MAC/C,GAAGC;AAAA,MAEH,UAAAhB;AAAA,IAAA;AAAA,EAAA;AAGP;"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"tdp-url.cjs","sources":["../../../src/components/composed/tdp-url.ts"],"sourcesContent":["/**\n * TDP Navigation Utilities\n *\n * Pure utility functions for constructing and navigating to TDP URLs.\n * These work independently of React and can be used in any context.\n *\n * Data apps run inside iframes within TDP. These utilities help resolve\n * the TDP base URL from the iframe context and construct navigation URLs.\n */\n\n/**\n * Known TDP route prefixes. When found in a referrer URL's pathname,\n * everything from the prefix onward is stripped to derive the TDP base URL.\n */\nconst TDP_ROUTE_PREFIXES = [\n '/data-workspace',\n '/data-apps',\n '/pipelines',\n '/pipeline-edit/',\n '/pipeline-details/',\n '/pipeline-processing/',\n '/file/',\n '/file-details/',\n '/files',\n '/search',\n '/search-classic',\n '/artifacts/',\n '/admin',\n '/settings',\n '/agent-studio',\n];\n\n/**\n * Extract the TDP base URL from `document.referrer`.\n *\n * In production, data apps run inside iframes within TDP. The browser\n * provides `document.referrer` containing the parent TDP page URL.\n * This function strips the known route path to get the base URL\n * (origin + org slug path prefix).\n *\n * @example\n * // referrer: \"https://tetrascience-uat.com/my-org/data-workspace/abc\"\n * getTdpBaseUrlFromReferrer() // \"https://tetrascience-uat.com/my-org\"\n *\n * @returns The TDP base URL, or null if detection fails\n */\nexport function getTdpBaseUrlFromReferrer(): string | null {\n if (typeof document === 'undefined' || !document.referrer) {\n return null;\n }\n\n try {\n const referrerUrl = new URL(document.referrer);\n const pathname = referrerUrl.pathname;\n\n for (const prefix of TDP_ROUTE_PREFIXES) {\n const prefixIndex = pathname.indexOf(prefix);\n if (prefixIndex !== -1) {\n const basePath = pathname.slice(0, prefixIndex).replace(/\\/$/u, '');\n return `${referrerUrl.origin}${basePath}`;\n }\n }\n\n // No known route matched — return origin (handles TDP root pages)\n return referrerUrl.origin;\n } catch {\n return null;\n }\n}\n\n/**\n * Construct a full TDP URL by joining a base URL with a path.\n *\n * @example\n * buildTdpUrl(\"https://tetrascience.com/my-org\", \"/file/abc-123\")\n * // \"https://tetrascience.com/my-org/file/abc-123\"\n *\n * @param baseUrl - The TDP base URL (origin + optional org prefix)\n * @param path - The TDP page path (e.g., \"/file/abc-123\")\n * @returns The full TDP URL, or null if construction fails\n */\nexport function buildTdpUrl(baseUrl: string, path: string): string | null {\n try {\n const normalizedPath = path.startsWith('/') ? path : `/${path}`;\n const url = new URL(baseUrl);\n url.pathname = `${url.pathname.replace(/\\/$/u, '')}${normalizedPath}`;\n return url.href;\n } catch {\n return null;\n }\n}\n\nexport interface TdpNavigationOptions {\n /** Open in a new tab instead of navigating the parent TDP frame. Default: false */\n newTab?: boolean;\n}\n\n/**\n * Navigate to a TDP URL.\n *\n * - `{ newTab: true }` opens the URL in a new browser tab.\n * - Default: sends a `postMessage` to the parent TDP frame (same-tab navigation\n * when inside an iframe), or navigates the current window (standalone).\n *\n * @param url - Full TDP URL to navigate to\n * @param options - Navigation options\n */\nexport function navigateToTdpUrl(url: string, options: TdpNavigationOptions = {}): void {\n if (options.newTab) {\n window.open(url, '_blank', 'noopener,noreferrer');\n return;\n }\n\n // In a cross-origin iframe (TDP), use postMessage to navigate the parent frame.\n // Same-origin iframes (e.g., Storybook) fall through to direct navigation.\n if (window.parent !== window) {\n try {\n // Accessing window.parent.location.href throws SecurityError if cross-origin\n void window.parent.location.href;\n } catch {\n // Cross-origin iframe — use postMessage to navigate the parent TDP frame\n try {\n const tdpUrl = new URL(url);\n const relativePath = `${tdpUrl.pathname}${tdpUrl.search}${tdpUrl.hash}`;\n window.parent.postMessage({ type: 'navigate', path: relativePath }, '*');\n return;\n } catch {\n // Fall through to direct navigation\n }\n }\n }\n\n // Fallback: direct navigation (local dev or non-iframe)\n window.location.href = url;\n}\n\n/**\n * Convenience helpers for constructing common TDP page paths.\n * Returns path strings for use with `getTdpUrl()` or `buildTdpUrl()`.\n *\n * @example\n * const { getTdpUrl } = useTdpNavigation();\n * const url = getTdpUrl(tdpPaths.fileDetails(\"abc-123\"));\n */\nexport const tdpPaths = {\n fileDetails: (fileId: string) => `/file/${fileId}`,\n pipelineEdit: (pipelineId: string) => `/pipeline-edit/${pipelineId}`,\n pipelineDetails: (pipelineId: string) => `/pipeline-details/${pipelineId}`,\n search: (query?: string) => (query ? `/search?q=${encodeURIComponent(query)}` : '/search'),\n dataWorkspace: () => '/data-workspace',\n dataApps: () => '/data-apps',\n artifact: (type: string, namespace: string, slug: string) => `/artifacts/${type}/${namespace}/${slug}`,\n};\n"],"names":["TDP_ROUTE_PREFIXES","getTdpBaseUrlFromReferrer","referrerUrl","pathname","prefix","prefixIndex","basePath","buildTdpUrl","baseUrl","path","normalizedPath","url","navigateToTdpUrl","options","tdpUrl","relativePath","tdpPaths","fileId","pipelineId","query","type","namespace","slug"],"mappings":"gFAcA,MAAMA,EAAqB,CACzB,kBACA,aACA,aACA,kBACA,qBACA,wBACA,SACA,iBACA,SACA,UACA,kBACA,cACA,SACA,YACA,eACF,EAgBO,SAASC,GAA2C,CACzD,GAAI,OAAO,SAAa,KAAe,CAAC,SAAS,SAC/C,OAAO,KAGT,GAAI,CACF,MAAMC,EAAc,IAAI,IAAI,SAAS,QAAQ,EACvCC,EAAWD,EAAY,SAE7B,UAAWE,KAAUJ,EAAoB,CACvC,MAAMK,EAAcF,EAAS,QAAQC,CAAM,EAC3C,GAAIC,IAAgB,GAAI,CACtB,MAAMC,EAAWH,EAAS,MAAM,EAAGE,CAAW,EAAE,QAAQ,OAAQ,EAAE,EAClE,MAAO,GAAGH,EAAY,MAAM,GAAGI,CAAQ,EACzC,CACF,CAGA,OAAOJ,EAAY,MACrB,MAAQ,CACN,OAAO,IACT,CACF,CAaO,SAASK,EAAYC,EAAiBC,EAA6B,CACxE,GAAI,CACF,MAAMC,EAAiBD,EAAK,WAAW,GAAG,EAAIA,EAAO,IAAIA,CAAI,GACvDE,EAAM,IAAI,IAAIH,CAAO,EAC3B,OAAAG,EAAI,SAAW,GAAGA,EAAI,SAAS,QAAQ,OAAQ,EAAE,CAAC,GAAGD,CAAc,GAC5DC,EAAI,IACb,MAAQ,CACN,OAAO,IACT,CACF,CAiBO,SAASC,EAAiBD,EAAaE,EAAgC,GAAU,CACtF,GAAIA,EAAQ,OAAQ,CAClB,OAAO,KAAKF,EAAK,SAAU,qBAAqB,EAChD,MACF,CAIA,GAAI,OAAO,SAAW,OACpB,GAAI,CAEG,OAAO,OAAO,SAAS,IAC9B,MAAQ,CAEN,GAAI,CACF,MAAMG,EAAS,IAAI,IAAIH,CAAG,EACpBI,EAAe,GAAGD,EAAO,QAAQ,GAAGA,EAAO,MAAM,GAAGA,EAAO,IAAI,GACrE,OAAO,OAAO,YAAY,CAAE,KAAM,WAAY,KAAMC,CAAA,EAAgB,GAAG,EACvE,MACF,MAAQ,CAER,CACF,CAIF,OAAO,SAAS,KAAOJ,CACzB,CAUO,MAAMK,EAAW,CACtB,YAAcC,GAAmB,SAASA,CAAM,GAChD,aAAeC,GAAuB,kBAAkBA,CAAU,GAClE,gBAAkBA,GAAuB,qBAAqBA,CAAU,GACxE,OAASC,GAAoBA,EAAQ,aAAa,mBAAmBA,CAAK,CAAC,GAAK,UAChF,cAAe,IAAM,kBACrB,SAAU,IAAM,aAChB,SAAU,CAACC,EAAcC,EAAmBC,IAAiB,cAAcF,CAAI,IAAIC,CAAS,IAAIC,CAAI,EACtG"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"tdp-url.js","sources":["../../../src/components/composed/tdp-url.ts"],"sourcesContent":["/**\n * TDP Navigation Utilities\n *\n * Pure utility functions for constructing and navigating to TDP URLs.\n * These work independently of React and can be used in any context.\n *\n * Data apps run inside iframes within TDP. These utilities help resolve\n * the TDP base URL from the iframe context and construct navigation URLs.\n */\n\n/**\n * Known TDP route prefixes. When found in a referrer URL's pathname,\n * everything from the prefix onward is stripped to derive the TDP base URL.\n */\nconst TDP_ROUTE_PREFIXES = [\n '/data-workspace',\n '/data-apps',\n '/pipelines',\n '/pipeline-edit/',\n '/pipeline-details/',\n '/pipeline-processing/',\n '/file/',\n '/file-details/',\n '/files',\n '/search',\n '/search-classic',\n '/artifacts/',\n '/admin',\n '/settings',\n '/agent-studio',\n];\n\n/**\n * Extract the TDP base URL from `document.referrer`.\n *\n * In production, data apps run inside iframes within TDP. The browser\n * provides `document.referrer` containing the parent TDP page URL.\n * This function strips the known route path to get the base URL\n * (origin + org slug path prefix).\n *\n * @example\n * // referrer: \"https://tetrascience-uat.com/my-org/data-workspace/abc\"\n * getTdpBaseUrlFromReferrer() // \"https://tetrascience-uat.com/my-org\"\n *\n * @returns The TDP base URL, or null if detection fails\n */\nexport function getTdpBaseUrlFromReferrer(): string | null {\n if (typeof document === 'undefined' || !document.referrer) {\n return null;\n }\n\n try {\n const referrerUrl = new URL(document.referrer);\n const pathname = referrerUrl.pathname;\n\n for (const prefix of TDP_ROUTE_PREFIXES) {\n const prefixIndex = pathname.indexOf(prefix);\n if (prefixIndex !== -1) {\n const basePath = pathname.slice(0, prefixIndex).replace(/\\/$/u, '');\n return `${referrerUrl.origin}${basePath}`;\n }\n }\n\n // No known route matched — return origin (handles TDP root pages)\n return referrerUrl.origin;\n } catch {\n return null;\n }\n}\n\n/**\n * Construct a full TDP URL by joining a base URL with a path.\n *\n * @example\n * buildTdpUrl(\"https://tetrascience.com/my-org\", \"/file/abc-123\")\n * // \"https://tetrascience.com/my-org/file/abc-123\"\n *\n * @param baseUrl - The TDP base URL (origin + optional org prefix)\n * @param path - The TDP page path (e.g., \"/file/abc-123\")\n * @returns The full TDP URL, or null if construction fails\n */\nexport function buildTdpUrl(baseUrl: string, path: string): string | null {\n try {\n const normalizedPath = path.startsWith('/') ? path : `/${path}`;\n const url = new URL(baseUrl);\n url.pathname = `${url.pathname.replace(/\\/$/u, '')}${normalizedPath}`;\n return url.href;\n } catch {\n return null;\n }\n}\n\nexport interface TdpNavigationOptions {\n /** Open in a new tab instead of navigating the parent TDP frame. Default: false */\n newTab?: boolean;\n}\n\n/**\n * Navigate to a TDP URL.\n *\n * - `{ newTab: true }` opens the URL in a new browser tab.\n * - Default: sends a `postMessage` to the parent TDP frame (same-tab navigation\n * when inside an iframe), or navigates the current window (standalone).\n *\n * @param url - Full TDP URL to navigate to\n * @param options - Navigation options\n */\nexport function navigateToTdpUrl(url: string, options: TdpNavigationOptions = {}): void {\n if (options.newTab) {\n window.open(url, '_blank', 'noopener,noreferrer');\n return;\n }\n\n // In a cross-origin iframe (TDP), use postMessage to navigate the parent frame.\n // Same-origin iframes (e.g., Storybook) fall through to direct navigation.\n if (window.parent !== window) {\n try {\n // Accessing window.parent.location.href throws SecurityError if cross-origin\n void window.parent.location.href;\n } catch {\n // Cross-origin iframe — use postMessage to navigate the parent TDP frame\n try {\n const tdpUrl = new URL(url);\n const relativePath = `${tdpUrl.pathname}${tdpUrl.search}${tdpUrl.hash}`;\n window.parent.postMessage({ type: 'navigate', path: relativePath }, '*');\n return;\n } catch {\n // Fall through to direct navigation\n }\n }\n }\n\n // Fallback: direct navigation (local dev or non-iframe)\n window.location.href = url;\n}\n\n/**\n * Convenience helpers for constructing common TDP page paths.\n * Returns path strings for use with `getTdpUrl()` or `buildTdpUrl()`.\n *\n * @example\n * const { getTdpUrl } = useTdpNavigation();\n * const url = getTdpUrl(tdpPaths.fileDetails(\"abc-123\"));\n */\nexport const tdpPaths = {\n fileDetails: (fileId: string) => `/file/${fileId}`,\n pipelineEdit: (pipelineId: string) => `/pipeline-edit/${pipelineId}`,\n pipelineDetails: (pipelineId: string) => `/pipeline-details/${pipelineId}`,\n search: (query?: string) => (query ? `/search?q=${encodeURIComponent(query)}` : '/search'),\n dataWorkspace: () => '/data-workspace',\n dataApps: () => '/data-apps',\n artifact: (type: string, namespace: string, slug: string) => `/artifacts/${type}/${namespace}/${slug}`,\n};\n"],"names":["TDP_ROUTE_PREFIXES","getTdpBaseUrlFromReferrer","referrerUrl","pathname","prefix","prefixIndex","basePath","buildTdpUrl","baseUrl","path","normalizedPath","url","navigateToTdpUrl","options","tdpUrl","relativePath","tdpPaths","fileId","pipelineId","query","type","namespace","slug"],"mappings":"AAcA,MAAMA,IAAqB;AAAA,EACzB;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACF;AAgBO,SAASC,IAA2C;AACzD,MAAI,OAAO,WAAa,OAAe,CAAC,SAAS;AAC/C,WAAO;AAGT,MAAI;AACF,UAAMC,IAAc,IAAI,IAAI,SAAS,QAAQ,GACvCC,IAAWD,EAAY;AAE7B,eAAWE,KAAUJ,GAAoB;AACvC,YAAMK,IAAcF,EAAS,QAAQC,CAAM;AAC3C,UAAIC,MAAgB,IAAI;AACtB,cAAMC,IAAWH,EAAS,MAAM,GAAGE,CAAW,EAAE,QAAQ,QAAQ,EAAE;AAClE,eAAO,GAAGH,EAAY,MAAM,GAAGI,CAAQ;AAAA,MACzC;AAAA,IACF;AAGA,WAAOJ,EAAY;AAAA,EACrB,QAAQ;AACN,WAAO;AAAA,EACT;AACF;AAaO,SAASK,EAAYC,GAAiBC,GAA6B;AACxE,MAAI;AACF,UAAMC,IAAiBD,EAAK,WAAW,GAAG,IAAIA,IAAO,IAAIA,CAAI,IACvDE,IAAM,IAAI,IAAIH,CAAO;AAC3B,WAAAG,EAAI,WAAW,GAAGA,EAAI,SAAS,QAAQ,QAAQ,EAAE,CAAC,GAAGD,CAAc,IAC5DC,EAAI;AAAA,EACb,QAAQ;AACN,WAAO;AAAA,EACT;AACF;AAiBO,SAASC,EAAiBD,GAAaE,IAAgC,IAAU;AACtF,MAAIA,EAAQ,QAAQ;AAClB,WAAO,KAAKF,GAAK,UAAU,qBAAqB;AAChD;AAAA,EACF;AAIA,MAAI,OAAO,WAAW;AACpB,QAAI;AAEF,MAAK,OAAO,OAAO,SAAS;AAAA,IAC9B,QAAQ;AAEN,UAAI;AACF,cAAMG,IAAS,IAAI,IAAIH,CAAG,GACpBI,IAAe,GAAGD,EAAO,QAAQ,GAAGA,EAAO,MAAM,GAAGA,EAAO,IAAI;AACrE,eAAO,OAAO,YAAY,EAAE,MAAM,YAAY,MAAMC,EAAA,GAAgB,GAAG;AACvE;AAAA,MACF,QAAQ;AAAA,MAER;AAAA,IACF;AAIF,SAAO,SAAS,OAAOJ;AACzB;AAUO,MAAMK,IAAW;AAAA,EACtB,aAAa,CAACC,MAAmB,SAASA,CAAM;AAAA,EAChD,cAAc,CAACC,MAAuB,kBAAkBA,CAAU;AAAA,EAClE,iBAAiB,CAACA,MAAuB,qBAAqBA,CAAU;AAAA,EACxE,QAAQ,CAACC,MAAoBA,IAAQ,aAAa,mBAAmBA,CAAK,CAAC,KAAK;AAAA,EAChF,eAAe,MAAM;AAAA,EACrB,UAAU,MAAM;AAAA,EAChB,UAAU,CAACC,GAAcC,GAAmBC,MAAiB,cAAcF,CAAI,IAAIC,CAAS,IAAIC,CAAI;AACtG;"}
|
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const o=require("react/jsx-runtime"),c=require("lucide-react"),r=require("radix-ui"),t=require("../../lib/utils.cjs");function a({className:e,...n}){return o.jsx(r.Accordion.Root,{"data-slot":"accordion",className:t.cn("flex w-full flex-col",e),...n})}function d({className:e,...n}){return o.jsx(r.Accordion.Item,{"data-slot":"accordion-item",className:t.cn("not-last:border-b",e),...n})}function s({className:e,children:n,...i}){return o.jsx(r.Accordion.Header,{className:"flex",children:o.jsxs(r.Accordion.Trigger,{"data-slot":"accordion-trigger",className:t.cn("group/accordion-trigger relative flex flex-1 items-start justify-between rounded-lg border border-transparent py-2.5 text-left text-sm font-medium transition-all outline-none hover:underline focus-visible:border-ring focus-visible:shadow-focus disabled:pointer-events-none disabled:opacity-50 **:data-[slot=accordion-trigger-icon]:ml-auto **:data-[slot=accordion-trigger-icon]:size-4 **:data-[slot=accordion-trigger-icon]:text-muted-foreground",e),...i,children:[n,o.jsx(c.ChevronDownIcon,{"data-slot":"accordion-trigger-icon",className:"pointer-events-none shrink-0 group-aria-expanded/accordion-trigger:hidden"}),o.jsx(c.ChevronUpIcon,{"data-slot":"accordion-trigger-icon",className:"pointer-events-none hidden shrink-0 group-aria-expanded/accordion-trigger:inline"})]})})}function l({className:e,children:n,...i}){return o.jsx(r.Accordion.Content,{"data-slot":"accordion-content",className:"overflow-hidden text-sm data-open:animate-accordion-down data-closed:animate-accordion-up",...i,children:o.jsx("div",{className:t.cn("h-(--radix-accordion-content-height) pt-0 pb-2.5 [&_a]:underline [&_a]:underline-offset-3 [&_a]:hover:text-foreground [&_p:not(:last-child)]:mb-4",e),children:n})})}exports.Accordion=a;exports.AccordionContent=l;exports.AccordionItem=d;exports.AccordionTrigger=s;
|
|
2
|
-
//# sourceMappingURL=accordion.cjs.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"accordion.cjs","sources":["../../../src/components/ui/accordion.tsx"],"sourcesContent":["import { ChevronDownIcon, ChevronUpIcon } from \"lucide-react\"\nimport { Accordion as AccordionPrimitive } from \"radix-ui\"\nimport * as React from \"react\"\n\nimport { cn } from \"@/lib/utils\"\n\n\nfunction Accordion({\n className,\n ...props\n}: React.ComponentProps<typeof AccordionPrimitive.Root>) {\n return (\n <AccordionPrimitive.Root\n data-slot=\"accordion\"\n className={cn(\"flex w-full flex-col\", className)}\n {...props}\n />\n )\n}\n\nfunction AccordionItem({\n className,\n ...props\n}: React.ComponentProps<typeof AccordionPrimitive.Item>) {\n return (\n <AccordionPrimitive.Item\n data-slot=\"accordion-item\"\n className={cn(\"not-last:border-b\", className)}\n {...props}\n />\n )\n}\n\nfunction AccordionTrigger({\n className,\n children,\n ...props\n}: React.ComponentProps<typeof AccordionPrimitive.Trigger>) {\n return (\n <AccordionPrimitive.Header className=\"flex\">\n <AccordionPrimitive.Trigger\n data-slot=\"accordion-trigger\"\n className={cn(\n \"group/accordion-trigger relative flex flex-1 items-start justify-between rounded-lg border border-transparent py-2.5 text-left text-sm font-medium transition-all outline-none hover:underline focus-visible:border-ring focus-visible:shadow-focus disabled:pointer-events-none disabled:opacity-50 **:data-[slot=accordion-trigger-icon]:ml-auto **:data-[slot=accordion-trigger-icon]:size-4 **:data-[slot=accordion-trigger-icon]:text-muted-foreground\",\n className\n )}\n {...props}\n >\n {children}\n <ChevronDownIcon data-slot=\"accordion-trigger-icon\" className=\"pointer-events-none shrink-0 group-aria-expanded/accordion-trigger:hidden\" />\n <ChevronUpIcon data-slot=\"accordion-trigger-icon\" className=\"pointer-events-none hidden shrink-0 group-aria-expanded/accordion-trigger:inline\" />\n </AccordionPrimitive.Trigger>\n </AccordionPrimitive.Header>\n )\n}\n\nfunction AccordionContent({\n className,\n children,\n ...props\n}: React.ComponentProps<typeof AccordionPrimitive.Content>) {\n return (\n <AccordionPrimitive.Content\n data-slot=\"accordion-content\"\n className=\"overflow-hidden text-sm data-open:animate-accordion-down data-closed:animate-accordion-up\"\n {...props}\n >\n <div\n className={cn(\n \"h-(--radix-accordion-content-height) pt-0 pb-2.5 [&_a]:underline [&_a]:underline-offset-3 [&_a]:hover:text-foreground [&_p:not(:last-child)]:mb-4\",\n className\n )}\n >\n {children}\n </div>\n </AccordionPrimitive.Content>\n )\n}\n\nexport { Accordion, AccordionItem, AccordionTrigger, AccordionContent }\n"],"names":["Accordion","className","props","jsx","AccordionPrimitive","cn","AccordionItem","AccordionTrigger","children","jsxs","ChevronDownIcon","ChevronUpIcon","AccordionContent"],"mappings":"sMAOA,SAASA,EAAU,CACjB,UAAAC,EACA,GAAGC,CACL,EAAyD,CACvD,OACEC,EAAAA,IAACC,EAAAA,UAAmB,KAAnB,CACC,YAAU,YACV,UAAWC,EAAAA,GAAG,uBAAwBJ,CAAS,EAC9C,GAAGC,CAAA,CAAA,CAGV,CAEA,SAASI,EAAc,CACrB,UAAAL,EACA,GAAGC,CACL,EAAyD,CACvD,OACEC,EAAAA,IAACC,EAAAA,UAAmB,KAAnB,CACC,YAAU,iBACV,UAAWC,EAAAA,GAAG,oBAAqBJ,CAAS,EAC3C,GAAGC,CAAA,CAAA,CAGV,CAEA,SAASK,EAAiB,CACxB,UAAAN,EACA,SAAAO,EACA,GAAGN,CACL,EAA4D,CAC1D,OACEC,EAAAA,IAACC,EAAAA,UAAmB,OAAnB,CAA0B,UAAU,OACnC,SAAAK,EAAAA,KAACL,EAAAA,UAAmB,QAAnB,CACC,YAAU,oBACV,UAAWC,EAAAA,GACT,8bACAJ,CAAA,EAED,GAAGC,EAEH,SAAA,CAAAM,EACDL,EAAAA,IAACO,EAAAA,gBAAA,CAAgB,YAAU,yBAAyB,UAAU,4EAA4E,EAC1IP,EAAAA,IAACQ,EAAAA,cAAA,CAAc,YAAU,yBAAyB,UAAU,kFAAA,CAAmF,CAAA,CAAA,CAAA,EAEnJ,CAEJ,CAEA,SAASC,EAAiB,CACxB,UAAAX,EACA,SAAAO,EACA,GAAGN,CACL,EAA4D,CAC1D,OACEC,EAAAA,IAACC,EAAAA,UAAmB,QAAnB,CACC,YAAU,oBACV,UAAU,4FACT,GAAGF,EAEJ,SAAAC,EAAAA,IAAC,MAAA,CACC,UAAWE,EAAAA,GACT,oJACAJ,CAAA,EAGD,SAAAO,CAAA,CAAA,CACH,CAAA,CAGN"}
|
|
@@ -1,83 +0,0 @@
|
|
|
1
|
-
import { jsx as r, jsxs as a } from "react/jsx-runtime";
|
|
2
|
-
import { ChevronDownIcon as c, ChevronUpIcon as d } from "lucide-react";
|
|
3
|
-
import { Accordion as n } from "radix-ui";
|
|
4
|
-
import { cn as t } from "../../lib/utils.js";
|
|
5
|
-
function u({
|
|
6
|
-
className: o,
|
|
7
|
-
...e
|
|
8
|
-
}) {
|
|
9
|
-
return /* @__PURE__ */ r(
|
|
10
|
-
n.Root,
|
|
11
|
-
{
|
|
12
|
-
"data-slot": "accordion",
|
|
13
|
-
className: t("flex w-full flex-col", o),
|
|
14
|
-
...e
|
|
15
|
-
}
|
|
16
|
-
);
|
|
17
|
-
}
|
|
18
|
-
function f({
|
|
19
|
-
className: o,
|
|
20
|
-
...e
|
|
21
|
-
}) {
|
|
22
|
-
return /* @__PURE__ */ r(
|
|
23
|
-
n.Item,
|
|
24
|
-
{
|
|
25
|
-
"data-slot": "accordion-item",
|
|
26
|
-
className: t("not-last:border-b", o),
|
|
27
|
-
...e
|
|
28
|
-
}
|
|
29
|
-
);
|
|
30
|
-
}
|
|
31
|
-
function p({
|
|
32
|
-
className: o,
|
|
33
|
-
children: e,
|
|
34
|
-
...i
|
|
35
|
-
}) {
|
|
36
|
-
return /* @__PURE__ */ r(n.Header, { className: "flex", children: /* @__PURE__ */ a(
|
|
37
|
-
n.Trigger,
|
|
38
|
-
{
|
|
39
|
-
"data-slot": "accordion-trigger",
|
|
40
|
-
className: t(
|
|
41
|
-
"group/accordion-trigger relative flex flex-1 items-start justify-between rounded-lg border border-transparent py-2.5 text-left text-sm font-medium transition-all outline-none hover:underline focus-visible:border-ring focus-visible:shadow-focus disabled:pointer-events-none disabled:opacity-50 **:data-[slot=accordion-trigger-icon]:ml-auto **:data-[slot=accordion-trigger-icon]:size-4 **:data-[slot=accordion-trigger-icon]:text-muted-foreground",
|
|
42
|
-
o
|
|
43
|
-
),
|
|
44
|
-
...i,
|
|
45
|
-
children: [
|
|
46
|
-
e,
|
|
47
|
-
/* @__PURE__ */ r(c, { "data-slot": "accordion-trigger-icon", className: "pointer-events-none shrink-0 group-aria-expanded/accordion-trigger:hidden" }),
|
|
48
|
-
/* @__PURE__ */ r(d, { "data-slot": "accordion-trigger-icon", className: "pointer-events-none hidden shrink-0 group-aria-expanded/accordion-trigger:inline" })
|
|
49
|
-
]
|
|
50
|
-
}
|
|
51
|
-
) });
|
|
52
|
-
}
|
|
53
|
-
function h({
|
|
54
|
-
className: o,
|
|
55
|
-
children: e,
|
|
56
|
-
...i
|
|
57
|
-
}) {
|
|
58
|
-
return /* @__PURE__ */ r(
|
|
59
|
-
n.Content,
|
|
60
|
-
{
|
|
61
|
-
"data-slot": "accordion-content",
|
|
62
|
-
className: "overflow-hidden text-sm data-open:animate-accordion-down data-closed:animate-accordion-up",
|
|
63
|
-
...i,
|
|
64
|
-
children: /* @__PURE__ */ r(
|
|
65
|
-
"div",
|
|
66
|
-
{
|
|
67
|
-
className: t(
|
|
68
|
-
"h-(--radix-accordion-content-height) pt-0 pb-2.5 [&_a]:underline [&_a]:underline-offset-3 [&_a]:hover:text-foreground [&_p:not(:last-child)]:mb-4",
|
|
69
|
-
o
|
|
70
|
-
),
|
|
71
|
-
children: e
|
|
72
|
-
}
|
|
73
|
-
)
|
|
74
|
-
}
|
|
75
|
-
);
|
|
76
|
-
}
|
|
77
|
-
export {
|
|
78
|
-
u as Accordion,
|
|
79
|
-
h as AccordionContent,
|
|
80
|
-
f as AccordionItem,
|
|
81
|
-
p as AccordionTrigger
|
|
82
|
-
};
|
|
83
|
-
//# sourceMappingURL=accordion.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"accordion.js","sources":["../../../src/components/ui/accordion.tsx"],"sourcesContent":["import { ChevronDownIcon, ChevronUpIcon } from \"lucide-react\"\nimport { Accordion as AccordionPrimitive } from \"radix-ui\"\nimport * as React from \"react\"\n\nimport { cn } from \"@/lib/utils\"\n\n\nfunction Accordion({\n className,\n ...props\n}: React.ComponentProps<typeof AccordionPrimitive.Root>) {\n return (\n <AccordionPrimitive.Root\n data-slot=\"accordion\"\n className={cn(\"flex w-full flex-col\", className)}\n {...props}\n />\n )\n}\n\nfunction AccordionItem({\n className,\n ...props\n}: React.ComponentProps<typeof AccordionPrimitive.Item>) {\n return (\n <AccordionPrimitive.Item\n data-slot=\"accordion-item\"\n className={cn(\"not-last:border-b\", className)}\n {...props}\n />\n )\n}\n\nfunction AccordionTrigger({\n className,\n children,\n ...props\n}: React.ComponentProps<typeof AccordionPrimitive.Trigger>) {\n return (\n <AccordionPrimitive.Header className=\"flex\">\n <AccordionPrimitive.Trigger\n data-slot=\"accordion-trigger\"\n className={cn(\n \"group/accordion-trigger relative flex flex-1 items-start justify-between rounded-lg border border-transparent py-2.5 text-left text-sm font-medium transition-all outline-none hover:underline focus-visible:border-ring focus-visible:shadow-focus disabled:pointer-events-none disabled:opacity-50 **:data-[slot=accordion-trigger-icon]:ml-auto **:data-[slot=accordion-trigger-icon]:size-4 **:data-[slot=accordion-trigger-icon]:text-muted-foreground\",\n className\n )}\n {...props}\n >\n {children}\n <ChevronDownIcon data-slot=\"accordion-trigger-icon\" className=\"pointer-events-none shrink-0 group-aria-expanded/accordion-trigger:hidden\" />\n <ChevronUpIcon data-slot=\"accordion-trigger-icon\" className=\"pointer-events-none hidden shrink-0 group-aria-expanded/accordion-trigger:inline\" />\n </AccordionPrimitive.Trigger>\n </AccordionPrimitive.Header>\n )\n}\n\nfunction AccordionContent({\n className,\n children,\n ...props\n}: React.ComponentProps<typeof AccordionPrimitive.Content>) {\n return (\n <AccordionPrimitive.Content\n data-slot=\"accordion-content\"\n className=\"overflow-hidden text-sm data-open:animate-accordion-down data-closed:animate-accordion-up\"\n {...props}\n >\n <div\n className={cn(\n \"h-(--radix-accordion-content-height) pt-0 pb-2.5 [&_a]:underline [&_a]:underline-offset-3 [&_a]:hover:text-foreground [&_p:not(:last-child)]:mb-4\",\n className\n )}\n >\n {children}\n </div>\n </AccordionPrimitive.Content>\n )\n}\n\nexport { Accordion, AccordionItem, AccordionTrigger, AccordionContent }\n"],"names":["Accordion","className","props","jsx","AccordionPrimitive","cn","AccordionItem","AccordionTrigger","children","jsxs","ChevronDownIcon","ChevronUpIcon","AccordionContent"],"mappings":";;;;AAOA,SAASA,EAAU;AAAA,EACjB,WAAAC;AAAA,EACA,GAAGC;AACL,GAAyD;AACvD,SACE,gBAAAC;AAAA,IAACC,EAAmB;AAAA,IAAnB;AAAA,MACC,aAAU;AAAA,MACV,WAAWC,EAAG,wBAAwBJ,CAAS;AAAA,MAC9C,GAAGC;AAAA,IAAA;AAAA,EAAA;AAGV;AAEA,SAASI,EAAc;AAAA,EACrB,WAAAL;AAAA,EACA,GAAGC;AACL,GAAyD;AACvD,SACE,gBAAAC;AAAA,IAACC,EAAmB;AAAA,IAAnB;AAAA,MACC,aAAU;AAAA,MACV,WAAWC,EAAG,qBAAqBJ,CAAS;AAAA,MAC3C,GAAGC;AAAA,IAAA;AAAA,EAAA;AAGV;AAEA,SAASK,EAAiB;AAAA,EACxB,WAAAN;AAAA,EACA,UAAAO;AAAA,EACA,GAAGN;AACL,GAA4D;AAC1D,SACE,gBAAAC,EAACC,EAAmB,QAAnB,EAA0B,WAAU,QACnC,UAAA,gBAAAK;AAAA,IAACL,EAAmB;AAAA,IAAnB;AAAA,MACC,aAAU;AAAA,MACV,WAAWC;AAAA,QACT;AAAA,QACAJ;AAAA,MAAA;AAAA,MAED,GAAGC;AAAA,MAEH,UAAA;AAAA,QAAAM;AAAA,QACD,gBAAAL,EAACO,GAAA,EAAgB,aAAU,0BAAyB,WAAU,6EAA4E;AAAA,QAC1I,gBAAAP,EAACQ,GAAA,EAAc,aAAU,0BAAyB,WAAU,mFAAA,CAAmF;AAAA,MAAA;AAAA,IAAA;AAAA,EAAA,GAEnJ;AAEJ;AAEA,SAASC,EAAiB;AAAA,EACxB,WAAAX;AAAA,EACA,UAAAO;AAAA,EACA,GAAGN;AACL,GAA4D;AAC1D,SACE,gBAAAC;AAAA,IAACC,EAAmB;AAAA,IAAnB;AAAA,MACC,aAAU;AAAA,MACV,WAAU;AAAA,MACT,GAAGF;AAAA,MAEJ,UAAA,gBAAAC;AAAA,QAAC;AAAA,QAAA;AAAA,UACC,WAAWE;AAAA,YACT;AAAA,YACAJ;AAAA,UAAA;AAAA,UAGD,UAAAO;AAAA,QAAA;AAAA,MAAA;AAAA,IACH;AAAA,EAAA;AAGN;"}
|