@sqlrooms/mosaic 0.29.0-rc.8 → 0.29.0-rc.9
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 +84 -74
- package/dist/ai/agentIntent.d.ts +5 -0
- package/dist/ai/agentIntent.d.ts.map +1 -0
- package/dist/ai/agentIntent.js +8 -0
- package/dist/ai/agentIntent.js.map +1 -0
- package/dist/ai/block-document/constants.d.ts +9 -0
- package/dist/ai/block-document/constants.d.ts.map +1 -0
- package/dist/ai/block-document/constants.js +9 -0
- package/dist/ai/block-document/constants.js.map +1 -0
- package/dist/ai/block-document/createAddMosaicDashboardBlockTool.d.ts +48 -0
- package/dist/ai/block-document/createAddMosaicDashboardBlockTool.d.ts.map +1 -0
- package/dist/ai/block-document/createAddMosaicDashboardBlockTool.js +59 -0
- package/dist/ai/block-document/createAddMosaicDashboardBlockTool.js.map +1 -0
- package/dist/ai/block-document/createBlockDocumentChartTools.d.ts +19 -0
- package/dist/ai/block-document/createBlockDocumentChartTools.d.ts.map +1 -0
- package/dist/ai/block-document/createBlockDocumentChartTools.js +37 -0
- package/dist/ai/block-document/createBlockDocumentChartTools.js.map +1 -0
- package/dist/ai/block-document/createBlockDocumentDataTableExplorerTool.d.ts +32 -0
- package/dist/ai/block-document/createBlockDocumentDataTableExplorerTool.d.ts.map +1 -0
- package/dist/ai/block-document/createBlockDocumentDataTableExplorerTool.js +37 -0
- package/dist/ai/block-document/createBlockDocumentDataTableExplorerTool.js.map +1 -0
- package/dist/ai/constants.d.ts +3 -0
- package/dist/ai/constants.d.ts.map +1 -0
- package/dist/ai/constants.js +3 -0
- package/dist/ai/constants.js.map +1 -0
- package/dist/ai/createDataTableExplorerTool.d.ts +69 -0
- package/dist/ai/createDataTableExplorerTool.d.ts.map +1 -0
- package/dist/ai/createDataTableExplorerTool.js +68 -0
- package/dist/ai/createDataTableExplorerTool.js.map +1 -0
- package/dist/ai/dashboard/constants.d.ts +6 -0
- package/dist/ai/dashboard/constants.d.ts.map +1 -0
- package/dist/ai/dashboard/constants.js +6 -0
- package/dist/ai/dashboard/constants.js.map +1 -0
- package/dist/ai/dashboard/createDashboardAgentTool.d.ts +17 -0
- package/dist/ai/dashboard/createDashboardAgentTool.d.ts.map +1 -0
- package/dist/ai/dashboard/createDashboardAgentTool.js +205 -0
- package/dist/ai/dashboard/createDashboardAgentTool.js.map +1 -0
- package/dist/ai/dashboard/createDashboardAiAdapter.d.ts +14 -0
- package/dist/ai/dashboard/createDashboardAiAdapter.d.ts.map +1 -0
- package/dist/ai/dashboard/createDashboardAiAdapter.js +75 -0
- package/dist/ai/dashboard/createDashboardAiAdapter.js.map +1 -0
- package/dist/ai/dashboard/createDashboardAiTools.d.ts +26 -0
- package/dist/ai/dashboard/createDashboardAiTools.d.ts.map +1 -0
- package/dist/ai/dashboard/createDashboardAiTools.js +40 -0
- package/dist/ai/dashboard/createDashboardAiTools.js.map +1 -0
- package/dist/ai/dashboard/createDashboardChartTools.d.ts +27 -0
- package/dist/ai/dashboard/createDashboardChartTools.d.ts.map +1 -0
- package/dist/ai/dashboard/createDashboardChartTools.js +55 -0
- package/dist/ai/dashboard/createDashboardChartTools.js.map +1 -0
- package/dist/ai/dashboard/createDashboardDataTableExplorerTool.d.ts +23 -0
- package/dist/ai/dashboard/createDashboardDataTableExplorerTool.d.ts.map +1 -0
- package/dist/ai/dashboard/createDashboardDataTableExplorerTool.js +29 -0
- package/dist/ai/dashboard/createDashboardDataTableExplorerTool.js.map +1 -0
- package/dist/ai/dashboard/createListDashboardPanelsTool.d.ts +28 -0
- package/dist/ai/dashboard/createListDashboardPanelsTool.d.ts.map +1 -0
- package/dist/ai/dashboard/createListDashboardPanelsTool.js +54 -0
- package/dist/ai/dashboard/createListDashboardPanelsTool.js.map +1 -0
- package/dist/ai/dashboard/dashboard-types.d.ts +59 -0
- package/dist/ai/dashboard/dashboard-types.d.ts.map +1 -0
- package/dist/ai/dashboard/dashboard-types.js +2 -0
- package/dist/ai/dashboard/dashboard-types.js.map +1 -0
- package/dist/ai/database-types.d.ts +12 -0
- package/dist/ai/database-types.d.ts.map +1 -0
- package/dist/ai/database-types.js +2 -0
- package/dist/ai/database-types.js.map +1 -0
- package/dist/ai/errors.d.ts +8 -0
- package/dist/ai/errors.d.ts.map +1 -0
- package/dist/ai/errors.js +11 -0
- package/dist/ai/errors.js.map +1 -0
- package/dist/ai/tool-helpers.d.ts +28 -29
- package/dist/ai/tool-helpers.d.ts.map +1 -1
- package/dist/ai/tool-helpers.js +38 -76
- package/dist/ai/tool-helpers.js.map +1 -1
- package/dist/ai/tool-schemas.d.ts +9 -4
- package/dist/ai/tool-schemas.d.ts.map +1 -1
- package/dist/ai/tool-schemas.js +12 -12
- package/dist/ai/tool-schemas.js.map +1 -1
- package/dist/ai/tool-types.d.ts +19 -1
- package/dist/ai/tool-types.d.ts.map +1 -1
- package/dist/ai/tool-types.js.map +1 -1
- package/dist/ai/types.d.ts +64 -0
- package/dist/ai/types.d.ts.map +1 -0
- package/dist/ai/types.js +2 -0
- package/dist/ai/types.js.map +1 -0
- package/dist/ai.d.ts +16 -2
- package/dist/ai.d.ts.map +1 -1
- package/dist/ai.js +14 -5
- package/dist/ai.js.map +1 -1
- package/dist/charts/MosaicChart.js +1 -1
- package/dist/charts/MosaicChart.js.map +1 -1
- package/dist/charts/MosaicChartView.d.ts.map +1 -1
- package/dist/charts/MosaicChartView.js +1 -2
- package/dist/charts/MosaicChartView.js.map +1 -1
- package/dist/charts/chart-settings/MosaicChartSpecViewerPanel.d.ts.map +1 -1
- package/dist/charts/chart-settings/MosaicChartSpecViewerPanel.js +2 -1
- package/dist/charts/chart-settings/MosaicChartSpecViewerPanel.js.map +1 -1
- package/dist/charts/chart-settings/MosaicChartTypeSelector.d.ts.map +1 -1
- package/dist/charts/chart-settings/MosaicChartTypeSelector.js +4 -11
- package/dist/charts/chart-settings/MosaicChartTypeSelector.js.map +1 -1
- package/dist/charts/chart-types/base-types.d.ts +27 -23
- package/dist/charts/chart-types/base-types.d.ts.map +1 -1
- package/dist/charts/chart-types/base-types.js +3 -1
- package/dist/charts/chart-types/base-types.js.map +1 -1
- package/dist/charts/chart-types/box-plot/definition.d.ts.map +1 -1
- package/dist/charts/chart-types/box-plot/definition.js +1 -0
- package/dist/charts/chart-types/box-plot/definition.js.map +1 -1
- package/dist/charts/chart-types/box-plot/renderer/BoxPlotClient.d.ts +37 -3
- package/dist/charts/chart-types/box-plot/renderer/BoxPlotClient.d.ts.map +1 -1
- package/dist/charts/chart-types/box-plot/renderer/BoxPlotClient.js +26 -6
- package/dist/charts/chart-types/box-plot/renderer/BoxPlotClient.js.map +1 -1
- package/dist/charts/chart-types/box-plot/renderer/BoxPlotPanelRenderer.js +2 -2
- package/dist/charts/chart-types/box-plot/renderer/BoxPlotPanelRenderer.js.map +1 -1
- package/dist/charts/chart-types/box-plot/renderer/useBoxPlotClient.d.ts +12 -1
- package/dist/charts/chart-types/box-plot/renderer/useBoxPlotClient.d.ts.map +1 -1
- package/dist/charts/chart-types/box-plot/renderer/useBoxPlotClient.js +13 -3
- package/dist/charts/chart-types/box-plot/renderer/useBoxPlotClient.js.map +1 -1
- package/dist/charts/chart-types/box-plot/tool.d.ts +20 -24
- package/dist/charts/chart-types/box-plot/tool.d.ts.map +1 -1
- package/dist/charts/chart-types/box-plot/tool.js +25 -33
- package/dist/charts/chart-types/box-plot/tool.js.map +1 -1
- package/dist/charts/chart-types/box-plot/validation.d.ts +9 -0
- package/dist/charts/chart-types/box-plot/validation.d.ts.map +1 -0
- package/dist/charts/chart-types/box-plot/validation.js +32 -0
- package/dist/charts/chart-types/box-plot/validation.js.map +1 -0
- package/dist/charts/chart-types/column-types.d.ts +8 -0
- package/dist/charts/chart-types/column-types.d.ts.map +1 -0
- package/dist/charts/chart-types/column-types.js +2 -0
- package/dist/charts/chart-types/column-types.js.map +1 -0
- package/dist/charts/chart-types/count-plot/definition.d.ts.map +1 -1
- package/dist/charts/chart-types/count-plot/definition.js +1 -0
- package/dist/charts/chart-types/count-plot/definition.js.map +1 -1
- package/dist/charts/chart-types/count-plot/spec.d.ts.map +1 -1
- package/dist/charts/chart-types/count-plot/spec.js +1 -19
- package/dist/charts/chart-types/count-plot/spec.js.map +1 -1
- package/dist/charts/chart-types/count-plot/tool.d.ts +19 -24
- package/dist/charts/chart-types/count-plot/tool.d.ts.map +1 -1
- package/dist/charts/chart-types/count-plot/tool.js +25 -32
- package/dist/charts/chart-types/count-plot/tool.js.map +1 -1
- package/dist/charts/chart-types/count-plot/validation.d.ts +8 -0
- package/dist/charts/chart-types/count-plot/validation.d.ts.map +1 -0
- package/dist/charts/chart-types/count-plot/validation.js +20 -0
- package/dist/charts/chart-types/count-plot/validation.js.map +1 -0
- package/dist/charts/chart-types/createChartInstructions.d.ts +3 -0
- package/dist/charts/chart-types/createChartInstructions.d.ts.map +1 -0
- package/dist/charts/chart-types/createChartInstructions.js +12 -0
- package/dist/charts/chart-types/createChartInstructions.js.map +1 -0
- package/dist/charts/chart-types/createChartTools.d.ts +15 -9
- package/dist/charts/chart-types/createChartTools.d.ts.map +1 -1
- package/dist/charts/chart-types/createChartTools.js +16 -10
- package/dist/charts/chart-types/createChartTools.js.map +1 -1
- package/dist/charts/chart-types/custom-spec/definition.d.ts.map +1 -1
- package/dist/charts/chart-types/custom-spec/definition.js +1 -0
- package/dist/charts/chart-types/custom-spec/definition.js.map +1 -1
- package/dist/charts/chart-types/errors.d.ts +10 -0
- package/dist/charts/chart-types/errors.d.ts.map +1 -1
- package/dist/charts/chart-types/errors.js +18 -0
- package/dist/charts/chart-types/errors.js.map +1 -1
- package/dist/charts/chart-types/heatmap/definition.d.ts.map +1 -1
- package/dist/charts/chart-types/heatmap/definition.js +1 -0
- package/dist/charts/chart-types/heatmap/definition.js.map +1 -1
- package/dist/charts/chart-types/heatmap/spec.d.ts.map +1 -1
- package/dist/charts/chart-types/heatmap/spec.js +1 -33
- package/dist/charts/chart-types/heatmap/spec.js.map +1 -1
- package/dist/charts/chart-types/heatmap/tool.d.ts +20 -24
- package/dist/charts/chart-types/heatmap/tool.d.ts.map +1 -1
- package/dist/charts/chart-types/heatmap/tool.js +26 -36
- package/dist/charts/chart-types/heatmap/tool.js.map +1 -1
- package/dist/charts/chart-types/heatmap/validation.d.ts +9 -0
- package/dist/charts/chart-types/heatmap/validation.d.ts.map +1 -0
- package/dist/charts/chart-types/heatmap/validation.js +34 -0
- package/dist/charts/chart-types/heatmap/validation.js.map +1 -0
- package/dist/charts/chart-types/histogram/definition.d.ts.map +1 -1
- package/dist/charts/chart-types/histogram/definition.js +1 -0
- package/dist/charts/chart-types/histogram/definition.js.map +1 -1
- package/dist/charts/chart-types/histogram/spec.d.ts.map +1 -1
- package/dist/charts/chart-types/histogram/spec.js +1 -21
- package/dist/charts/chart-types/histogram/spec.js.map +1 -1
- package/dist/charts/chart-types/histogram/tool.d.ts +37 -24
- package/dist/charts/chart-types/histogram/tool.d.ts.map +1 -1
- package/dist/charts/chart-types/histogram/tool.js +38 -32
- package/dist/charts/chart-types/histogram/tool.js.map +1 -1
- package/dist/charts/chart-types/histogram/validation.d.ts +9 -0
- package/dist/charts/chart-types/histogram/validation.d.ts.map +1 -0
- package/dist/charts/chart-types/histogram/validation.js +22 -0
- package/dist/charts/chart-types/histogram/validation.js.map +1 -0
- package/dist/charts/chart-types/index.d.ts +1 -7
- package/dist/charts/chart-types/index.d.ts.map +1 -1
- package/dist/charts/chart-types/index.js +2 -8
- package/dist/charts/chart-types/index.js.map +1 -1
- package/dist/charts/chart-types/line-chart/definition.d.ts.map +1 -1
- package/dist/charts/chart-types/line-chart/definition.js +1 -0
- package/dist/charts/chart-types/line-chart/definition.js.map +1 -1
- package/dist/charts/chart-types/line-chart/spec.d.ts.map +1 -1
- package/dist/charts/chart-types/line-chart/spec.js +5 -46
- package/dist/charts/chart-types/line-chart/spec.js.map +1 -1
- package/dist/charts/chart-types/line-chart/tool.d.ts +26 -24
- package/dist/charts/chart-types/line-chart/tool.d.ts.map +1 -1
- package/dist/charts/chart-types/line-chart/tool.js +26 -38
- package/dist/charts/chart-types/line-chart/tool.js.map +1 -1
- package/dist/charts/chart-types/line-chart/validation.d.ts +16 -0
- package/dist/charts/chart-types/line-chart/validation.d.ts.map +1 -0
- package/dist/charts/chart-types/line-chart/validation.js +43 -0
- package/dist/charts/chart-types/line-chart/validation.js.map +1 -0
- package/dist/charts/chart-types/resolveChartTypes.d.ts +3 -0
- package/dist/charts/chart-types/resolveChartTypes.d.ts.map +1 -0
- package/dist/charts/chart-types/resolveChartTypes.js +8 -0
- package/dist/charts/chart-types/resolveChartTypes.js.map +1 -0
- package/dist/charts/chart-types/scatter-plot/definition.d.ts.map +1 -1
- package/dist/charts/chart-types/scatter-plot/definition.js +1 -0
- package/dist/charts/chart-types/scatter-plot/definition.js.map +1 -1
- package/dist/charts/chart-types/scatter-plot/spec.d.ts.map +1 -1
- package/dist/charts/chart-types/scatter-plot/spec.js +1 -45
- package/dist/charts/chart-types/scatter-plot/spec.js.map +1 -1
- package/dist/charts/chart-types/scatter-plot/tool.d.ts +21 -24
- package/dist/charts/chart-types/scatter-plot/tool.d.ts.map +1 -1
- package/dist/charts/chart-types/scatter-plot/tool.js +28 -41
- package/dist/charts/chart-types/scatter-plot/tool.js.map +1 -1
- package/dist/charts/chart-types/scatter-plot/validation.d.ts +13 -0
- package/dist/charts/chart-types/scatter-plot/validation.d.ts.map +1 -0
- package/dist/charts/chart-types/scatter-plot/validation.js +52 -0
- package/dist/charts/chart-types/scatter-plot/validation.js.map +1 -0
- package/dist/charts/chart-types/tool-types.d.ts +43 -0
- package/dist/charts/chart-types/tool-types.d.ts.map +1 -0
- package/dist/charts/chart-types/tool-types.js +2 -0
- package/dist/charts/chart-types/tool-types.js.map +1 -0
- package/dist/charts/chart-types/utils.d.ts +3 -0
- package/dist/charts/chart-types/utils.d.ts.map +1 -0
- package/dist/charts/chart-types/utils.js +4 -0
- package/dist/charts/chart-types/utils.js.map +1 -0
- package/dist/charts/dashboard/MosaicDashboardChartRenderer.d.ts.map +1 -1
- package/dist/charts/dashboard/MosaicDashboardChartRenderer.js +5 -3
- package/dist/charts/dashboard/MosaicDashboardChartRenderer.js.map +1 -1
- package/dist/charts/useChartDataPolicy.js +2 -2
- package/dist/charts/useChartDataPolicy.js.map +1 -1
- package/dist/components/AggregationSelector.d.ts.map +1 -1
- package/dist/components/AggregationSelector.js +1 -1
- package/dist/components/AggregationSelector.js.map +1 -1
- package/dist/components/ColorSelector.d.ts.map +1 -1
- package/dist/components/ColorSelector.js +1 -2
- package/dist/components/ColorSelector.js.map +1 -1
- package/dist/components/FieldSelectorInput.d.ts.map +1 -1
- package/dist/components/FieldSelectorInput.js +3 -3
- package/dist/components/FieldSelectorInput.js.map +1 -1
- package/dist/components/TemporalGranularitySelector.d.ts.map +1 -1
- package/dist/components/TemporalGranularitySelector.js +1 -1
- package/dist/components/TemporalGranularitySelector.js.map +1 -1
- package/dist/dashboard/MosaicDashboardCommands.d.ts +19 -0
- package/dist/dashboard/MosaicDashboardCommands.d.ts.map +1 -0
- package/dist/dashboard/MosaicDashboardCommands.js +226 -0
- package/dist/dashboard/MosaicDashboardCommands.js.map +1 -0
- package/dist/dashboard/dashboard-types.d.ts.map +1 -1
- package/dist/dashboard/dashboard-types.js.map +1 -1
- package/dist/dashboard/panel/MosaicDashboardPanel.d.ts.map +1 -1
- package/dist/dashboard/panel/MosaicDashboardPanel.js +1 -1
- package/dist/dashboard/panel/MosaicDashboardPanel.js.map +1 -1
- package/dist/dashboard/panel/MosaicDashboardPanelLayout.d.ts.map +1 -1
- package/dist/dashboard/panel/MosaicDashboardPanelLayout.js +3 -3
- package/dist/dashboard/panel/MosaicDashboardPanelLayout.js.map +1 -1
- package/dist/dashboard/panel/MosaicDashboardPanels.d.ts.map +1 -1
- package/dist/dashboard/panel/MosaicDashboardPanels.js +4 -2
- package/dist/dashboard/panel/MosaicDashboardPanels.js.map +1 -1
- package/dist/dashboard/toolbar/MosaicDashboardDataTableSelector.d.ts.map +1 -1
- package/dist/dashboard/toolbar/MosaicDashboardDataTableSelector.js +4 -4
- package/dist/dashboard/toolbar/MosaicDashboardDataTableSelector.js.map +1 -1
- package/dist/dashboard/toolbar/MosaicDashboardToolbar.d.ts.map +1 -1
- package/dist/dashboard/toolbar/MosaicDashboardToolbar.js +5 -3
- package/dist/dashboard/toolbar/MosaicDashboardToolbar.js.map +1 -1
- package/dist/dashboard/useSelectedOrFirstTable.d.ts +1 -1
- package/dist/dashboard/useSelectedOrFirstTable.d.ts.map +1 -1
- package/dist/dashboard/useSelectedOrFirstTable.js +10 -8
- package/dist/dashboard/useSelectedOrFirstTable.js.map +1 -1
- package/dist/data-table-explorer/DataTableExplorerCategoryClient.d.ts +3 -2
- package/dist/data-table-explorer/DataTableExplorerCategoryClient.d.ts.map +1 -1
- package/dist/data-table-explorer/DataTableExplorerCategoryClient.js +3 -3
- package/dist/data-table-explorer/DataTableExplorerCategoryClient.js.map +1 -1
- package/dist/data-table-explorer/DataTableExplorerCountClient.d.ts +3 -1
- package/dist/data-table-explorer/DataTableExplorerCountClient.d.ts.map +1 -1
- package/dist/data-table-explorer/DataTableExplorerCountClient.js +3 -3
- package/dist/data-table-explorer/DataTableExplorerCountClient.js.map +1 -1
- package/dist/data-table-explorer/DataTableExplorerHistogramClient.d.ts +3 -2
- package/dist/data-table-explorer/DataTableExplorerHistogramClient.d.ts.map +1 -1
- package/dist/data-table-explorer/DataTableExplorerHistogramClient.js +4 -4
- package/dist/data-table-explorer/DataTableExplorerHistogramClient.js.map +1 -1
- package/dist/data-table-explorer/DataTableExplorerPageClient.d.ts +3 -1
- package/dist/data-table-explorer/DataTableExplorerPageClient.d.ts.map +1 -1
- package/dist/data-table-explorer/DataTableExplorerPageClient.js +3 -1
- package/dist/data-table-explorer/DataTableExplorerPageClient.js.map +1 -1
- package/dist/data-table-explorer/DataTableExplorerUnsupportedSummaryClient.d.ts +3 -2
- package/dist/data-table-explorer/DataTableExplorerUnsupportedSummaryClient.d.ts.map +1 -1
- package/dist/data-table-explorer/DataTableExplorerUnsupportedSummaryClient.js +3 -3
- package/dist/data-table-explorer/DataTableExplorerUnsupportedSummaryClient.js.map +1 -1
- package/dist/data-table-explorer/dashboard/MosaicDashboardDataTableExplorerPanelRenderer.d.ts.map +1 -1
- package/dist/data-table-explorer/dashboard/MosaicDashboardDataTableExplorerPanelRenderer.js +7 -4
- package/dist/data-table-explorer/dashboard/MosaicDashboardDataTableExplorerPanelRenderer.js.map +1 -1
- package/dist/data-table-explorer/dataTableExplorerController.d.ts +58 -2
- package/dist/data-table-explorer/dataTableExplorerController.d.ts.map +1 -1
- package/dist/data-table-explorer/dataTableExplorerController.js +68 -8
- package/dist/data-table-explorer/dataTableExplorerController.js.map +1 -1
- package/dist/data-table-explorer/hooks/useDataTableExplorerLifecycles.d.ts +23 -1
- package/dist/data-table-explorer/hooks/useDataTableExplorerLifecycles.d.ts.map +1 -1
- package/dist/data-table-explorer/hooks/useDataTableExplorerLifecycles.js +46 -13
- package/dist/data-table-explorer/hooks/useDataTableExplorerLifecycles.js.map +1 -1
- package/dist/data-table-explorer/hooks/useDataTableExplorerQueryState.d.ts +17 -3
- package/dist/data-table-explorer/hooks/useDataTableExplorerQueryState.d.ts.map +1 -1
- package/dist/data-table-explorer/hooks/useDataTableExplorerQueryState.js +9 -6
- package/dist/data-table-explorer/hooks/useDataTableExplorerQueryState.js.map +1 -1
- package/dist/data-table-explorer/types.d.ts +10 -0
- package/dist/data-table-explorer/types.d.ts.map +1 -1
- package/dist/data-table-explorer/types.js.map +1 -1
- package/dist/data-table-explorer/useDataTableExplorer.d.ts.map +1 -1
- package/dist/data-table-explorer/useDataTableExplorer.js +10 -6
- package/dist/data-table-explorer/useDataTableExplorer.js.map +1 -1
- package/dist/data-table-explorer/utils.d.ts +64 -6
- package/dist/data-table-explorer/utils.d.ts.map +1 -1
- package/dist/data-table-explorer/utils.js +58 -0
- package/dist/data-table-explorer/utils.js.map +1 -1
- package/dist/data-table-explorer/worksheet/DataTableBlockRenderer.d.ts.map +1 -1
- package/dist/data-table-explorer/worksheet/DataTableBlockRenderer.js +2 -2
- package/dist/data-table-explorer/worksheet/DataTableBlockRenderer.js.map +1 -1
- package/dist/index.d.ts +49 -29
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +81 -25
- package/dist/index.js.map +1 -1
- package/dist/mosaicTableReference.d.ts +59 -0
- package/dist/mosaicTableReference.d.ts.map +1 -0
- package/dist/mosaicTableReference.js +68 -0
- package/dist/mosaicTableReference.js.map +1 -0
- package/dist/useVgPlotChartRender.d.ts.map +1 -1
- package/dist/useVgPlotChartRender.js +26 -1
- package/dist/useVgPlotChartRender.js.map +1 -1
- package/dist/utils/table-lookup.d.ts +7 -0
- package/dist/utils/table-lookup.d.ts.map +1 -0
- package/dist/utils/table-lookup.js +10 -0
- package/dist/utils/table-lookup.js.map +1 -0
- package/package.json +14 -14
- package/dist/ai/ai.d.ts +0 -108
- package/dist/ai/ai.d.ts.map +0 -1
- package/dist/ai/ai.js +0 -461
- package/dist/ai/ai.js.map +0 -1
- package/dist/ai/data-table-explorer-tool.d.ts +0 -40
- package/dist/ai/data-table-explorer-tool.d.ts.map +0 -1
- package/dist/ai/data-table-explorer-tool.js +0 -75
- package/dist/ai/data-table-explorer-tool.js.map +0 -1
- package/dist/ai/list-panels-tool.d.ts +0 -35
- package/dist/ai/list-panels-tool.d.ts.map +0 -1
- package/dist/ai/list-panels-tool.js +0 -66
- package/dist/ai/list-panels-tool.js.map +0 -1
- package/dist/ai/remove-panel-tool.d.ts +0 -31
- package/dist/ai/remove-panel-tool.d.ts.map +0 -1
- package/dist/ai/remove-panel-tool.js +0 -55
- package/dist/ai/remove-panel-tool.js.map +0 -1
- package/dist/ai/tool-validation.d.ts +0 -3
- package/dist/ai/tool-validation.d.ts.map +0 -1
- package/dist/ai/tool-validation.js +0 -11
- package/dist/ai/tool-validation.js.map +0 -1
- package/dist/components/Combobox.d.ts +0 -45
- package/dist/components/Combobox.d.ts.map +0 -1
- package/dist/components/Combobox.js +0 -58
- package/dist/components/Combobox.js.map +0 -1
- package/dist/components/useCombobox.d.ts +0 -23
- package/dist/components/useCombobox.d.ts.map +0 -1
- package/dist/components/useCombobox.js +0 -26
- package/dist/components/useCombobox.js.map +0 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tool-helpers.js","sourceRoot":"","sources":["../../src/ai/tool-helpers.ts"],"names":[],"mappings":"AACA,OAAO,
|
|
1
|
+
{"version":3,"file":"tool-helpers.js","sourceRoot":"","sources":["../../src/ai/tool-helpers.ts"],"names":[],"mappings":"AACA,OAAO,EAAC,YAAY,EAAC,MAAM,UAAU,CAAC;AAQtC;;GAEG;AACH,MAAM,UAAU,WAAW,CACzB,OAA0B,EAC1B,SAAiB;IAEjB,MAAM,KAAK,GAAG,OAAO,CAAC,SAAS,CAAC,SAAS,CAAC,CAAC;IAE3C,IAAI,CAAC,KAAK,EAAE,CAAC;QACX,MAAM,IAAI,YAAY,CAAC,UAAU,SAAS,cAAc,CAAC,CAAC;IAC5D,CAAC;IAED,OAAO,KAAK,CAAC;AACf,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,WAAW,CACzB,OAA2B,EAC3B,OAAe,EACf,IAAa;IAEb,MAAM,KAAK,GAAG,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC;IAExC,IAAI,CAAC,KAAK,EAAE,CAAC;QACX,MAAM,IAAI,YAAY,CAAC,kBAAkB,CAAC,CAAC;IAC7C,CAAC;IAED,IAAI,IAAI,KAAK,SAAS,IAAI,KAAK,CAAC,IAAI,KAAK,IAAI,EAAE,CAAC;QAC9C,MAAM,IAAI,YAAY,CACpB,qBAAqB,KAAK,CAAC,IAAI,qBAAqB,IAAI,IAAI,CAC7D,CAAC;IACJ,CAAC;IAED,OAAO,KAAK,CAAC;AACf,CAAC;AAED;;;;;;;GAOG;AACH,MAAM,UAAU,gBAAgB,CAC9B,YAAkC,EAClC,UAAgC;IAEhC,KAAK,MAAM,GAAG,IAAI,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC,EAAE,CAAC;QAC1C,IAAI,GAAG,IAAI,YAAY,EAAE,CAAC;YACxB,MAAM,IAAI,YAAY,CACpB,uDAAuD,GAAG,+CAA+C,CAC1G,CAAC;QACJ,CAAC;IACH,CAAC;AACH,CAAC;AAED;;;;;;GAMG;AACH,MAAM,UAAU,4BAA4B,CAC1C,SAA6B,EAC7B,iBAAkC,EAAE;IAEpC,OAAO;QACL,SAAS;QACT,aAAa,EAAE,cAAc,CAAC,MAAM;QACpC,UAAU,EAAE,cAAc,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,QAAQ,KAAK,OAAO,CAAC;aACnE,MAAM;KACV,CAAC;AACJ,CAAC","sourcesContent":["import {MosaicDashboardPanelConfig} from '../dashboard/dashboard-types';\nimport {AiAgentError} from './errors';\nimport {DashboardAiAdapter} from './dashboard/dashboard-types';\nimport {DataTable} from '@sqlrooms/duckdb';\nimport {Tool} from 'ai';\nimport {DatabaseAiAdapter} from './database-types';\nimport {AgentResultMetadata} from './tool-types';\nimport {AgentToolCall} from './types';\n\n/**\n * Validates that a table exists. Throws if not found.\n */\nexport function ensureTable(\n adapter: DatabaseAiAdapter,\n tableName: string,\n): DataTable {\n const table = adapter.findTable(tableName);\n\n if (!table) {\n throw new AiAgentError(`Table \"${tableName}\" not found.`);\n }\n\n return table;\n}\n\n/**\n * Validates that a panel exists in a dashboard. Throws if not found.\n */\nexport function ensurePanel(\n adapter: DashboardAiAdapter,\n panelId: string,\n type?: string,\n): MosaicDashboardPanelConfig {\n const panel = adapter.getPanel(panelId);\n\n if (!panel) {\n throw new AiAgentError(`Panel not found.`);\n }\n\n if (type !== undefined && panel.type !== type) {\n throw new AiAgentError(\n `Panel is of type \"${panel.type}\", expected type \"${type}\".`,\n );\n }\n\n return panel;\n}\n\n/**\n * Validates that extra tools do not override built-in tools.\n * Prevents accidental shadowing of core functionality by custom tools.\n *\n * @param builtInTools - Record of built-in tool names to tools\n * @param extraTools - Record of extra tool names to tools being registered\n * @throws {AiAgentError} When a key from extraTools exists in builtInTools\n */\nexport function ensureNoOverride(\n builtInTools: Record<string, Tool>,\n extraTools: Record<string, Tool>,\n) {\n for (const key of Object.keys(extraTools)) {\n if (key in builtInTools) {\n throw new AiAgentError(\n `Dashboard extraTools cannot override built-in tool \"${key}\". Register the host tool under a unique key.`,\n );\n }\n }\n}\n\n/**\n * Calculate metadata about agent execution results.\n *\n * @param tableName - Optional table name associated with the agent execution\n * @param agentToolCalls - Array of tool calls made during agent execution\n * @returns Metadata including steps executed and queries run\n */\nexport function calculateAgentResultMetadata(\n tableName: string | undefined,\n agentToolCalls: AgentToolCall[] = [],\n): AgentResultMetadata {\n return {\n tableName,\n stepsExecuted: agentToolCalls.length,\n queriesRun: agentToolCalls.filter((call) => call.toolName === 'query')\n .length,\n };\n}\n"]}
|
|
@@ -1,8 +1,13 @@
|
|
|
1
1
|
import { z } from 'zod';
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
2
|
+
/**
|
|
3
|
+
* Base input schema shared by chart AI tools.
|
|
4
|
+
*
|
|
5
|
+
* Includes the source table, optional chart title, optional dashboard panel to
|
|
6
|
+
* update, and the model's rationale for the chart choice.
|
|
7
|
+
*/
|
|
8
|
+
export declare const BaseChartToolInput: z.ZodObject<{
|
|
9
|
+
tableName: z.ZodString;
|
|
10
|
+
title: z.ZodOptional<z.ZodString>;
|
|
6
11
|
panelId: z.ZodOptional<z.ZodString>;
|
|
7
12
|
reasoning: z.ZodString;
|
|
8
13
|
}, z.core.$strip>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tool-schemas.d.ts","sourceRoot":"","sources":["../../src/ai/tool-schemas.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,CAAC,EAAC,MAAM,KAAK,CAAC;AAEtB,eAAO,MAAM,
|
|
1
|
+
{"version":3,"file":"tool-schemas.d.ts","sourceRoot":"","sources":["../../src/ai/tool-schemas.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,CAAC,EAAC,MAAM,KAAK,CAAC;AAEtB;;;;;GAKG;AACH,eAAO,MAAM,kBAAkB;;;;;iBAe7B,CAAC"}
|
package/dist/ai/tool-schemas.js
CHANGED
|
@@ -1,22 +1,22 @@
|
|
|
1
1
|
import { z } from 'zod';
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
2
|
+
/**
|
|
3
|
+
* Base input schema shared by chart AI tools.
|
|
4
|
+
*
|
|
5
|
+
* Includes the source table, optional chart title, optional dashboard panel to
|
|
6
|
+
* update, and the model's rationale for the chart choice.
|
|
7
|
+
*/
|
|
8
|
+
export const BaseChartToolInput = z.object({
|
|
7
9
|
tableName: z
|
|
10
|
+
.string()
|
|
11
|
+
.describe('REQUIRED table name to create the chart from.'),
|
|
12
|
+
title: z
|
|
8
13
|
.string()
|
|
9
14
|
.optional()
|
|
10
|
-
.describe('Optional
|
|
11
|
-
createArtifactIfMissing: z
|
|
12
|
-
.boolean()
|
|
13
|
-
.optional()
|
|
14
|
-
.default(true)
|
|
15
|
-
.describe('If true, create dashboard artifact if missing.'),
|
|
15
|
+
.describe('Optional title for the chart artifact'),
|
|
16
16
|
panelId: z
|
|
17
17
|
.string()
|
|
18
18
|
.optional()
|
|
19
|
-
.describe('Optional panel ID
|
|
19
|
+
.describe('Optional existing dashboard panel ID to update instead of creating a new panel.'),
|
|
20
20
|
reasoning: z.string().describe('Brief rationale for the chart choice.'),
|
|
21
21
|
});
|
|
22
22
|
//# sourceMappingURL=tool-schemas.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tool-schemas.js","sourceRoot":"","sources":["../../src/ai/tool-schemas.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,CAAC,EAAC,MAAM,KAAK,CAAC;AAEtB,MAAM,CAAC,MAAM,
|
|
1
|
+
{"version":3,"file":"tool-schemas.js","sourceRoot":"","sources":["../../src/ai/tool-schemas.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,CAAC,EAAC,MAAM,KAAK,CAAC;AAEtB;;;;;GAKG;AACH,MAAM,CAAC,MAAM,kBAAkB,GAAG,CAAC,CAAC,MAAM,CAAC;IACzC,SAAS,EAAE,CAAC;SACT,MAAM,EAAE;SACR,QAAQ,CAAC,+CAA+C,CAAC;IAC5D,KAAK,EAAE,CAAC;SACL,MAAM,EAAE;SACR,QAAQ,EAAE;SACV,QAAQ,CAAC,uCAAuC,CAAC;IACpD,OAAO,EAAE,CAAC;SACP,MAAM,EAAE;SACR,QAAQ,EAAE;SACV,QAAQ,CACP,iFAAiF,CAClF;IACH,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,uCAAuC,CAAC;CACxE,CAAC,CAAC","sourcesContent":["import {z} from 'zod';\n\n/**\n * Base input schema shared by chart AI tools.\n *\n * Includes the source table, optional chart title, optional dashboard panel to\n * update, and the model's rationale for the chart choice.\n */\nexport const BaseChartToolInput = z.object({\n tableName: z\n .string()\n .describe('REQUIRED table name to create the chart from.'),\n title: z\n .string()\n .optional()\n .describe('Optional title for the chart artifact'),\n panelId: z\n .string()\n .optional()\n .describe(\n 'Optional existing dashboard panel ID to update instead of creating a new panel.',\n ),\n reasoning: z.string().describe('Brief rationale for the chart choice.'),\n});\n"]}
|
package/dist/ai/tool-types.d.ts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { ChartConfig } from '../charts/chart-types/chart-config';
|
|
2
|
-
import type { ChartBuilderColumn } from '../charts/chart-types/
|
|
2
|
+
import type { ChartBuilderColumn } from '../charts/chart-types/column-types';
|
|
3
3
|
export interface ResolvedChartResourcesParams {
|
|
4
4
|
artifactId?: string;
|
|
5
5
|
tableName?: string;
|
|
@@ -23,4 +23,22 @@ export interface CreateChartResult {
|
|
|
23
23
|
title: string;
|
|
24
24
|
config: ChartConfig;
|
|
25
25
|
}
|
|
26
|
+
type ToolOutputDefaultError = {
|
|
27
|
+
errorMessage?: string;
|
|
28
|
+
};
|
|
29
|
+
export type ToolOutput<TSuccess, TError extends ToolOutputDefaultError = ToolOutputDefaultError> = ({
|
|
30
|
+
success: true;
|
|
31
|
+
} & TSuccess) | ({
|
|
32
|
+
success: false;
|
|
33
|
+
} & TError);
|
|
34
|
+
/**
|
|
35
|
+
* Metadata about agent execution.
|
|
36
|
+
* Tracks statistics like steps executed and queries run during agent operation.
|
|
37
|
+
*/
|
|
38
|
+
export type AgentResultMetadata = {
|
|
39
|
+
tableName?: string;
|
|
40
|
+
stepsExecuted: number;
|
|
41
|
+
queriesRun: number;
|
|
42
|
+
};
|
|
43
|
+
export {};
|
|
26
44
|
//# sourceMappingURL=tool-types.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tool-types.d.ts","sourceRoot":"","sources":["../../src/ai/tool-types.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,WAAW,EAAC,MAAM,oCAAoC,CAAC;AAC/D,OAAO,KAAK,EAAC,kBAAkB,EAAC,MAAM,
|
|
1
|
+
{"version":3,"file":"tool-types.d.ts","sourceRoot":"","sources":["../../src/ai/tool-types.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,WAAW,EAAC,MAAM,oCAAoC,CAAC;AAC/D,OAAO,KAAK,EAAC,kBAAkB,EAAC,MAAM,oCAAoC,CAAC;AAE3E,MAAM,WAAW,4BAA4B;IAC3C,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,uBAAuB,CAAC,EAAE,OAAO,CAAC;CACnC;AAED,MAAM,WAAW,sBAAsB;IACrC,UAAU,EAAE,MAAM,CAAC;IACnB,SAAS,EAAE,MAAM,CAAC;IAClB,OAAO,EAAE,kBAAkB,EAAE,CAAC;CAC/B;AAED,MAAM,WAAW,iBAAiB;IAChC,UAAU,EAAE,MAAM,CAAC;IACnB,SAAS,EAAE,MAAM,CAAC;IAClB,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,WAAW,CAAC;CACrB;AAED,MAAM,WAAW,iBAAiB;IAChC,OAAO,EAAE,MAAM,CAAC;IAChB,UAAU,EAAE,MAAM,CAAC;IACnB,SAAS,EAAE,MAAM,CAAC;IAClB,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,WAAW,CAAC;CACrB;AAED,KAAK,sBAAsB,GAAG;IAAC,YAAY,CAAC,EAAE,MAAM,CAAA;CAAC,CAAC;AAEtD,MAAM,MAAM,UAAU,CACpB,QAAQ,EACR,MAAM,SAAS,sBAAsB,GAAG,sBAAsB,IAE5D,CAAC;IACC,OAAO,EAAE,IAAI,CAAC;CACf,GAAG,QAAQ,CAAC,GACb,CAAC;IACC,OAAO,EAAE,KAAK,CAAC;CAChB,GAAG,MAAM,CAAC,CAAC;AAEhB;;;GAGG;AACH,MAAM,MAAM,mBAAmB,GAAG;IAChC,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,aAAa,EAAE,MAAM,CAAC;IACtB,UAAU,EAAE,MAAM,CAAC;CACpB,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tool-types.js","sourceRoot":"","sources":["../../src/ai/tool-types.ts"],"names":[],"mappings":"","sourcesContent":["import {ChartConfig} from '../charts/chart-types/chart-config';\nimport type {ChartBuilderColumn} from '../charts/chart-types/
|
|
1
|
+
{"version":3,"file":"tool-types.js","sourceRoot":"","sources":["../../src/ai/tool-types.ts"],"names":[],"mappings":"","sourcesContent":["import {ChartConfig} from '../charts/chart-types/chart-config';\nimport type {ChartBuilderColumn} from '../charts/chart-types/column-types';\n\nexport interface ResolvedChartResourcesParams {\n artifactId?: string;\n tableName?: string;\n createArtifactIfMissing?: boolean;\n}\n\nexport interface ResolvedChartResources {\n artifactId: string;\n tableName: string;\n columns: ChartBuilderColumn[];\n}\n\nexport interface CreateChartParams {\n artifactId: string;\n tableName: string;\n title: string;\n config: ChartConfig;\n}\n\nexport interface CreateChartResult {\n panelId: string;\n artifactId: string;\n tableName: string;\n title: string;\n config: ChartConfig;\n}\n\ntype ToolOutputDefaultError = {errorMessage?: string};\n\nexport type ToolOutput<\n TSuccess,\n TError extends ToolOutputDefaultError = ToolOutputDefaultError,\n> =\n | ({\n success: true;\n } & TSuccess)\n | ({\n success: false;\n } & TError);\n\n/**\n * Metadata about agent execution.\n * Tracks statistics like steps executed and queries run during agent operation.\n */\nexport type AgentResultMetadata = {\n tableName?: string;\n stepsExecuted: number;\n queriesRun: number;\n};\n"]}
|
|
@@ -0,0 +1,64 @@
|
|
|
1
|
+
import type { LanguageModel, Tool, ToolLoopAgent } from 'ai';
|
|
2
|
+
import type { DataTable } from '@sqlrooms/db';
|
|
3
|
+
import type { ChartTypeDefinition } from '../charts/chart-types/base-types';
|
|
4
|
+
/**
|
|
5
|
+
* Common types used by Mosaic AI agents and tool composition.
|
|
6
|
+
*/
|
|
7
|
+
export type AiStore<TState> = {
|
|
8
|
+
getState: () => TState;
|
|
9
|
+
};
|
|
10
|
+
export type AgentToolCall = {
|
|
11
|
+
toolName: string;
|
|
12
|
+
};
|
|
13
|
+
export type AgentRunResult = {
|
|
14
|
+
finalOutput?: string;
|
|
15
|
+
agentToolCalls?: AgentToolCall[];
|
|
16
|
+
};
|
|
17
|
+
/**
|
|
18
|
+
* Minimal adapter interface for chart configuration tools.
|
|
19
|
+
* Chart tools only need access to tables for validation.
|
|
20
|
+
*
|
|
21
|
+
* This is a state-less interface - implementations bind state internally.
|
|
22
|
+
*/
|
|
23
|
+
export type ChartAiAdapter = {
|
|
24
|
+
/** Get all available tables */
|
|
25
|
+
getTables: () => DataTable[];
|
|
26
|
+
/** Find table by name, throws if not found */
|
|
27
|
+
findTableByName: (tableName: string) => DataTable;
|
|
28
|
+
};
|
|
29
|
+
export type ChartToolsOptions = {
|
|
30
|
+
chartTypes?: ChartTypeDefinition<any>[];
|
|
31
|
+
chartMaxDataPoints?: number;
|
|
32
|
+
};
|
|
33
|
+
/**
|
|
34
|
+
* Common options for agent creation
|
|
35
|
+
*/
|
|
36
|
+
export type BaseAgentToolOptions<TState> = {
|
|
37
|
+
store: AiStore<TState>;
|
|
38
|
+
getModel: (args: {
|
|
39
|
+
state: TState;
|
|
40
|
+
}) => LanguageModel;
|
|
41
|
+
createDataTools?: (args: {
|
|
42
|
+
store: AiStore<TState>;
|
|
43
|
+
}) => {
|
|
44
|
+
query: Tool;
|
|
45
|
+
list_tables: Tool;
|
|
46
|
+
read_table_schema: Tool;
|
|
47
|
+
};
|
|
48
|
+
runSubAgent: (args: {
|
|
49
|
+
agent: ToolLoopAgent<any, any, any>;
|
|
50
|
+
prompt: string;
|
|
51
|
+
store: AiStore<TState>;
|
|
52
|
+
parentToolCallId: string;
|
|
53
|
+
abortSignal?: AbortSignal;
|
|
54
|
+
}) => Promise<AgentRunResult>;
|
|
55
|
+
instructions?: string;
|
|
56
|
+
/**
|
|
57
|
+
* Optional host/plugin instructions appended after the built-in agent prompt.
|
|
58
|
+
* Use this when extending an agent with extra tools that need specialized
|
|
59
|
+
* usage guidance while preserving the base workflow.
|
|
60
|
+
*/
|
|
61
|
+
additionalInstructions?: string;
|
|
62
|
+
chartToolsOptions?: ChartToolsOptions;
|
|
63
|
+
};
|
|
64
|
+
//# sourceMappingURL=types.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/ai/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAC,aAAa,EAAE,IAAI,EAAE,aAAa,EAAC,MAAM,IAAI,CAAC;AAC3D,OAAO,KAAK,EAAC,SAAS,EAAC,MAAM,cAAc,CAAC;AAC5C,OAAO,KAAK,EAAC,mBAAmB,EAAC,MAAM,kCAAkC,CAAC;AAE1E;;GAEG;AAEH,MAAM,MAAM,OAAO,CAAC,MAAM,IAAI;IAC5B,QAAQ,EAAE,MAAM,MAAM,CAAC;CACxB,CAAC;AAEF,MAAM,MAAM,aAAa,GAAG;IAC1B,QAAQ,EAAE,MAAM,CAAC;CAClB,CAAC;AAEF,MAAM,MAAM,cAAc,GAAG;IAC3B,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,cAAc,CAAC,EAAE,aAAa,EAAE,CAAC;CAClC,CAAC;AAEF;;;;;GAKG;AACH,MAAM,MAAM,cAAc,GAAG;IAC3B,+BAA+B;IAC/B,SAAS,EAAE,MAAM,SAAS,EAAE,CAAC;IAE7B,8CAA8C;IAC9C,eAAe,EAAE,CAAC,SAAS,EAAE,MAAM,KAAK,SAAS,CAAC;CACnD,CAAC;AAEF,MAAM,MAAM,iBAAiB,GAAG;IAC9B,UAAU,CAAC,EAAE,mBAAmB,CAAC,GAAG,CAAC,EAAE,CAAC;IACxC,kBAAkB,CAAC,EAAE,MAAM,CAAC;CAC7B,CAAC;AAEF;;GAEG;AACH,MAAM,MAAM,oBAAoB,CAAC,MAAM,IAAI;IACzC,KAAK,EAAE,OAAO,CAAC,MAAM,CAAC,CAAC;IACvB,QAAQ,EAAE,CAAC,IAAI,EAAE;QAAC,KAAK,EAAE,MAAM,CAAA;KAAC,KAAK,aAAa,CAAC;IACnD,eAAe,CAAC,EAAE,CAAC,IAAI,EAAE;QAAC,KAAK,EAAE,OAAO,CAAC,MAAM,CAAC,CAAA;KAAC,KAAK;QACpD,KAAK,EAAE,IAAI,CAAC;QACZ,WAAW,EAAE,IAAI,CAAC;QAClB,iBAAiB,EAAE,IAAI,CAAC;KACzB,CAAC;IACF,WAAW,EAAE,CAAC,IAAI,EAAE;QAClB,KAAK,EAAE,aAAa,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,CAAC;QACpC,MAAM,EAAE,MAAM,CAAC;QACf,KAAK,EAAE,OAAO,CAAC,MAAM,CAAC,CAAC;QACvB,gBAAgB,EAAE,MAAM,CAAC;QACzB,WAAW,CAAC,EAAE,WAAW,CAAC;KAC3B,KAAK,OAAO,CAAC,cAAc,CAAC,CAAC;IAC9B,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB;;;;OAIG;IACH,sBAAsB,CAAC,EAAE,MAAM,CAAC;IAChC,iBAAiB,CAAC,EAAE,iBAAiB,CAAC;CACvC,CAAC"}
|
package/dist/ai/types.js
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/ai/types.ts"],"names":[],"mappings":"","sourcesContent":["import type {LanguageModel, Tool, ToolLoopAgent} from 'ai';\nimport type {DataTable} from '@sqlrooms/db';\nimport type {ChartTypeDefinition} from '../charts/chart-types/base-types';\n\n/**\n * Common types used by Mosaic AI agents and tool composition.\n */\n\nexport type AiStore<TState> = {\n getState: () => TState;\n};\n\nexport type AgentToolCall = {\n toolName: string;\n};\n\nexport type AgentRunResult = {\n finalOutput?: string;\n agentToolCalls?: AgentToolCall[];\n};\n\n/**\n * Minimal adapter interface for chart configuration tools.\n * Chart tools only need access to tables for validation.\n *\n * This is a state-less interface - implementations bind state internally.\n */\nexport type ChartAiAdapter = {\n /** Get all available tables */\n getTables: () => DataTable[];\n\n /** Find table by name, throws if not found */\n findTableByName: (tableName: string) => DataTable;\n};\n\nexport type ChartToolsOptions = {\n chartTypes?: ChartTypeDefinition<any>[];\n chartMaxDataPoints?: number;\n};\n\n/**\n * Common options for agent creation\n */\nexport type BaseAgentToolOptions<TState> = {\n store: AiStore<TState>;\n getModel: (args: {state: TState}) => LanguageModel;\n createDataTools?: (args: {store: AiStore<TState>}) => {\n query: Tool;\n list_tables: Tool;\n read_table_schema: Tool;\n };\n runSubAgent: (args: {\n agent: ToolLoopAgent<any, any, any>;\n prompt: string;\n store: AiStore<TState>;\n parentToolCallId: string;\n abortSignal?: AbortSignal;\n }) => Promise<AgentRunResult>;\n instructions?: string;\n /**\n * Optional host/plugin instructions appended after the built-in agent prompt.\n * Use this when extending an agent with extra tools that need specialized\n * usage guidance while preserving the base workflow.\n */\n additionalInstructions?: string;\n chartToolsOptions?: ChartToolsOptions;\n};\n"]}
|
package/dist/ai.d.ts
CHANGED
|
@@ -1,6 +1,20 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* AI tools and utilities for Mosaic dashboards
|
|
2
|
+
* AI tools and utilities for Mosaic dashboards and block-document integrations
|
|
3
3
|
* @packageDocumentation
|
|
4
4
|
*/
|
|
5
|
-
export
|
|
5
|
+
export type { ChartToolExecutionContext } from './charts/chart-types';
|
|
6
|
+
export * from './ai/types';
|
|
7
|
+
export * from './ai/database-types';
|
|
8
|
+
export * from './ai/dashboard/dashboard-types';
|
|
9
|
+
export * from './ai/constants';
|
|
10
|
+
export * from './ai/block-document/constants';
|
|
11
|
+
export { AiAgentError } from './ai/errors';
|
|
12
|
+
export { calculateAgentResultMetadata } from './ai/tool-helpers';
|
|
13
|
+
export { createChartToolsInstructions } from './charts/chart-types/createChartInstructions';
|
|
14
|
+
export { resolveChartTypes } from './charts/chart-types/resolveChartTypes';
|
|
15
|
+
export { createDashboardAiTools } from './ai/dashboard/createDashboardAiTools';
|
|
16
|
+
export { createDashboardAgentTool } from './ai/dashboard/createDashboardAgentTool';
|
|
17
|
+
export { createAddMosaicDashboardBlockTool, type CreateAddMosaicDashboardBlockToolOptions, } from './ai/block-document/createAddMosaicDashboardBlockTool';
|
|
18
|
+
export { createBlockDocumentChartTools, type CreateBlockDocumentChartToolsParams, } from './ai/block-document/createBlockDocumentChartTools';
|
|
19
|
+
export { createBlockDocumentDataTableExplorerTool, type CreateBlockDocumentDataTableExplorerToolParams, } from './ai/block-document/createBlockDocumentDataTableExplorerTool';
|
|
6
20
|
//# sourceMappingURL=ai.d.ts.map
|
package/dist/ai.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ai.d.ts","sourceRoot":"","sources":["../src/ai.ts"],"names":[],"mappings":"AAAA;;;GAGG;
|
|
1
|
+
{"version":3,"file":"ai.d.ts","sourceRoot":"","sources":["../src/ai.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,YAAY,EAAC,yBAAyB,EAAC,MAAM,sBAAsB,CAAC;AACpE,cAAc,YAAY,CAAC;AAC3B,cAAc,qBAAqB,CAAC;AACpC,cAAc,gCAAgC,CAAC;AAC/C,cAAc,gBAAgB,CAAC;AAC/B,cAAc,+BAA+B,CAAC;AAC9C,OAAO,EAAC,YAAY,EAAC,MAAM,aAAa,CAAC;AACzC,OAAO,EAAC,4BAA4B,EAAC,MAAM,mBAAmB,CAAC;AAC/D,OAAO,EAAC,4BAA4B,EAAC,MAAM,8CAA8C,CAAC;AAC1F,OAAO,EAAC,iBAAiB,EAAC,MAAM,wCAAwC,CAAC;AACzE,OAAO,EAAC,sBAAsB,EAAC,MAAM,uCAAuC,CAAC;AAC7E,OAAO,EAAC,wBAAwB,EAAC,MAAM,yCAAyC,CAAC;AACjF,OAAO,EACL,iCAAiC,EACjC,KAAK,wCAAwC,GAC9C,MAAM,uDAAuD,CAAC;AAC/D,OAAO,EACL,6BAA6B,EAC7B,KAAK,mCAAmC,GACzC,MAAM,mDAAmD,CAAC;AAC3D,OAAO,EACL,wCAAwC,EACxC,KAAK,8CAA8C,GACpD,MAAM,8DAA8D,CAAC"}
|
package/dist/ai.js
CHANGED
|
@@ -1,6 +1,15 @@
|
|
|
1
|
-
|
|
2
|
-
*
|
|
3
|
-
*
|
|
4
|
-
|
|
5
|
-
export * from './ai/
|
|
1
|
+
export * from './ai/types';
|
|
2
|
+
export * from './ai/database-types';
|
|
3
|
+
export * from './ai/dashboard/dashboard-types';
|
|
4
|
+
export * from './ai/constants';
|
|
5
|
+
export * from './ai/block-document/constants';
|
|
6
|
+
export { AiAgentError } from './ai/errors';
|
|
7
|
+
export { calculateAgentResultMetadata } from './ai/tool-helpers';
|
|
8
|
+
export { createChartToolsInstructions } from './charts/chart-types/createChartInstructions';
|
|
9
|
+
export { resolveChartTypes } from './charts/chart-types/resolveChartTypes';
|
|
10
|
+
export { createDashboardAiTools } from './ai/dashboard/createDashboardAiTools';
|
|
11
|
+
export { createDashboardAgentTool } from './ai/dashboard/createDashboardAgentTool';
|
|
12
|
+
export { createAddMosaicDashboardBlockTool, } from './ai/block-document/createAddMosaicDashboardBlockTool';
|
|
13
|
+
export { createBlockDocumentChartTools, } from './ai/block-document/createBlockDocumentChartTools';
|
|
14
|
+
export { createBlockDocumentDataTableExplorerTool, } from './ai/block-document/createBlockDocumentDataTableExplorerTool';
|
|
6
15
|
//# sourceMappingURL=ai.js.map
|
package/dist/ai.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ai.js","sourceRoot":"","sources":["../src/ai.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"ai.js","sourceRoot":"","sources":["../src/ai.ts"],"names":[],"mappings":"AAKA,cAAc,YAAY,CAAC;AAC3B,cAAc,qBAAqB,CAAC;AACpC,cAAc,gCAAgC,CAAC;AAC/C,cAAc,gBAAgB,CAAC;AAC/B,cAAc,+BAA+B,CAAC;AAC9C,OAAO,EAAC,YAAY,EAAC,MAAM,aAAa,CAAC;AACzC,OAAO,EAAC,4BAA4B,EAAC,MAAM,mBAAmB,CAAC;AAC/D,OAAO,EAAC,4BAA4B,EAAC,MAAM,8CAA8C,CAAC;AAC1F,OAAO,EAAC,iBAAiB,EAAC,MAAM,wCAAwC,CAAC;AACzE,OAAO,EAAC,sBAAsB,EAAC,MAAM,uCAAuC,CAAC;AAC7E,OAAO,EAAC,wBAAwB,EAAC,MAAM,yCAAyC,CAAC;AACjF,OAAO,EACL,iCAAiC,GAElC,MAAM,uDAAuD,CAAC;AAC/D,OAAO,EACL,6BAA6B,GAE9B,MAAM,mDAAmD,CAAC;AAC3D,OAAO,EACL,wCAAwC,GAEzC,MAAM,8DAA8D,CAAC","sourcesContent":["/**\n * AI tools and utilities for Mosaic dashboards and block-document integrations\n * @packageDocumentation\n */\nexport type {ChartToolExecutionContext} from './charts/chart-types';\nexport * from './ai/types';\nexport * from './ai/database-types';\nexport * from './ai/dashboard/dashboard-types';\nexport * from './ai/constants';\nexport * from './ai/block-document/constants';\nexport {AiAgentError} from './ai/errors';\nexport {calculateAgentResultMetadata} from './ai/tool-helpers';\nexport {createChartToolsInstructions} from './charts/chart-types/createChartInstructions';\nexport {resolveChartTypes} from './charts/chart-types/resolveChartTypes';\nexport {createDashboardAiTools} from './ai/dashboard/createDashboardAiTools';\nexport {createDashboardAgentTool} from './ai/dashboard/createDashboardAgentTool';\nexport {\n createAddMosaicDashboardBlockTool,\n type CreateAddMosaicDashboardBlockToolOptions,\n} from './ai/block-document/createAddMosaicDashboardBlockTool';\nexport {\n createBlockDocumentChartTools,\n type CreateBlockDocumentChartToolsParams,\n} from './ai/block-document/createBlockDocumentChartTools';\nexport {\n createBlockDocumentDataTableExplorerTool,\n type CreateBlockDocumentDataTableExplorerToolParams,\n} from './ai/block-document/createBlockDocumentDataTableExplorerTool';\n"]}
|
|
@@ -7,7 +7,7 @@ export const MosaicChart = ({ dataTable, selectionName, config, runtimeKey, onCo
|
|
|
7
7
|
const handleOpenChange = useCallback((isOpen) => onConfigChange?.({ ...config, settingsOpen: isOpen }), [config, onConfigChange]);
|
|
8
8
|
const handleConfigChange = useCallback((newConfig) => onConfigChange?.(newConfig), [onConfigChange]);
|
|
9
9
|
const settingsContent = (_jsx(MosaicChartSettingsPanel, { dataTable: dataTable, config: config, onChange: handleConfigChange, onClose: () => handleOpenChange(false) }));
|
|
10
|
-
const chartContent = (_jsx("div", { className: "h-full overflow-
|
|
10
|
+
const chartContent = (_jsx("div", { className: "h-full min-h-0 min-w-0 overflow-hidden p-2", children: _jsx(MosaicChartView, { dataTable: dataTable, config: config, selectionName: selectionName, retentionKey: runtimeKey, runtimeIssueKey: runtimeKey, dashboardId: dashboardId, panelId: panelId }) }));
|
|
11
11
|
return (_jsx("div", { className: "h-full min-h-0", children: _jsx(MosaicDashboardPanelLayout, { isOpen: config.settingsOpen, onIsOpenChange: handleOpenChange, settings: settingsContent, content: chartContent }) }));
|
|
12
12
|
};
|
|
13
13
|
//# sourceMappingURL=MosaicChart.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"MosaicChart.js","sourceRoot":"","sources":["../../src/charts/MosaicChart.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAU,WAAW,EAAC,MAAM,OAAO,CAAC;AAC3C,OAAO,EAAC,0BAA0B,EAAC,MAAM,+CAA+C,CAAC;AACzF,OAAO,EAAC,wBAAwB,EAAC,MAAM,4BAA4B,CAAC;AAEpE,OAAO,EAAC,eAAe,EAAC,MAAM,mBAAmB,CAAC;AAalD,MAAM,CAAC,MAAM,WAAW,GAAyB,CAAC,EAChD,SAAS,EACT,aAAa,EACb,MAAM,EACN,UAAU,EACV,cAAc,EACd,WAAW,EACX,OAAO,GACR,EAAE,EAAE;IACH,MAAM,gBAAgB,GAAG,WAAW,CAClC,CAAC,MAAe,EAAE,EAAE,CAAC,cAAc,EAAE,CAAC,EAAC,GAAG,MAAM,EAAE,YAAY,EAAE,MAAM,EAAC,CAAC,EACxE,CAAC,MAAM,EAAE,cAAc,CAAC,CACzB,CAAC;IAEF,MAAM,kBAAkB,GAAG,WAAW,CACpC,CAAC,SAAsB,EAAE,EAAE,CAAC,cAAc,EAAE,CAAC,SAAS,CAAC,EACvD,CAAC,cAAc,CAAC,CACjB,CAAC;IAEF,MAAM,eAAe,GAAG,CACtB,KAAC,wBAAwB,IACvB,SAAS,EAAE,SAAS,EACpB,MAAM,EAAE,MAAM,EACd,QAAQ,EAAE,kBAAkB,EAC5B,OAAO,EAAE,GAAG,EAAE,CAAC,gBAAgB,CAAC,KAAK,CAAC,GACtC,CACH,CAAC;IAEF,MAAM,YAAY,GAAG,CACnB,cAAK,SAAS,EAAC,
|
|
1
|
+
{"version":3,"file":"MosaicChart.js","sourceRoot":"","sources":["../../src/charts/MosaicChart.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAU,WAAW,EAAC,MAAM,OAAO,CAAC;AAC3C,OAAO,EAAC,0BAA0B,EAAC,MAAM,+CAA+C,CAAC;AACzF,OAAO,EAAC,wBAAwB,EAAC,MAAM,4BAA4B,CAAC;AAEpE,OAAO,EAAC,eAAe,EAAC,MAAM,mBAAmB,CAAC;AAalD,MAAM,CAAC,MAAM,WAAW,GAAyB,CAAC,EAChD,SAAS,EACT,aAAa,EACb,MAAM,EACN,UAAU,EACV,cAAc,EACd,WAAW,EACX,OAAO,GACR,EAAE,EAAE;IACH,MAAM,gBAAgB,GAAG,WAAW,CAClC,CAAC,MAAe,EAAE,EAAE,CAAC,cAAc,EAAE,CAAC,EAAC,GAAG,MAAM,EAAE,YAAY,EAAE,MAAM,EAAC,CAAC,EACxE,CAAC,MAAM,EAAE,cAAc,CAAC,CACzB,CAAC;IAEF,MAAM,kBAAkB,GAAG,WAAW,CACpC,CAAC,SAAsB,EAAE,EAAE,CAAC,cAAc,EAAE,CAAC,SAAS,CAAC,EACvD,CAAC,cAAc,CAAC,CACjB,CAAC;IAEF,MAAM,eAAe,GAAG,CACtB,KAAC,wBAAwB,IACvB,SAAS,EAAE,SAAS,EACpB,MAAM,EAAE,MAAM,EACd,QAAQ,EAAE,kBAAkB,EAC5B,OAAO,EAAE,GAAG,EAAE,CAAC,gBAAgB,CAAC,KAAK,CAAC,GACtC,CACH,CAAC;IAEF,MAAM,YAAY,GAAG,CACnB,cAAK,SAAS,EAAC,4CAA4C,YACzD,KAAC,eAAe,IACd,SAAS,EAAE,SAAS,EACpB,MAAM,EAAE,MAAM,EACd,aAAa,EAAE,aAAa,EAC5B,YAAY,EAAE,UAAU,EACxB,eAAe,EAAE,UAAU,EAC3B,WAAW,EAAE,WAAW,EACxB,OAAO,EAAE,OAAO,GAChB,GACE,CACP,CAAC;IAEF,OAAO,CACL,cAAK,SAAS,EAAC,gBAAgB,YAC7B,KAAC,0BAA0B,IACzB,MAAM,EAAE,MAAM,CAAC,YAAY,EAC3B,cAAc,EAAE,gBAAgB,EAChC,QAAQ,EAAE,eAAe,EACzB,OAAO,EAAE,YAAY,GACrB,GACE,CACP,CAAC;AACJ,CAAC,CAAC","sourcesContent":["import {type FC, useCallback} from 'react';\nimport {MosaicDashboardPanelLayout} from '../dashboard/panel/MosaicDashboardPanelLayout';\nimport {MosaicChartSettingsPanel} from './MosaicChartSettingsPanel';\nimport type {ChartConfig} from './chart-types/chart-config';\nimport {MosaicChartView} from './MosaicChartView';\nimport {DataTable} from '@sqlrooms/db';\n\nexport type MosaicChartProps = {\n dataTable?: DataTable;\n selectionName?: string;\n config: ChartConfig;\n runtimeKey: string;\n onConfigChange?: (config: ChartConfig) => void;\n dashboardId?: string;\n panelId?: string;\n};\n\nexport const MosaicChart: FC<MosaicChartProps> = ({\n dataTable,\n selectionName,\n config,\n runtimeKey,\n onConfigChange,\n dashboardId,\n panelId,\n}) => {\n const handleOpenChange = useCallback(\n (isOpen: boolean) => onConfigChange?.({...config, settingsOpen: isOpen}),\n [config, onConfigChange],\n );\n\n const handleConfigChange = useCallback(\n (newConfig: ChartConfig) => onConfigChange?.(newConfig),\n [onConfigChange],\n );\n\n const settingsContent = (\n <MosaicChartSettingsPanel\n dataTable={dataTable}\n config={config}\n onChange={handleConfigChange}\n onClose={() => handleOpenChange(false)}\n />\n );\n\n const chartContent = (\n <div className=\"h-full min-h-0 min-w-0 overflow-hidden p-2\">\n <MosaicChartView\n dataTable={dataTable}\n config={config}\n selectionName={selectionName}\n retentionKey={runtimeKey}\n runtimeIssueKey={runtimeKey}\n dashboardId={dashboardId}\n panelId={panelId}\n />\n </div>\n );\n\n return (\n <div className=\"h-full min-h-0\">\n <MosaicDashboardPanelLayout\n isOpen={config.settingsOpen}\n onIsOpenChange={handleOpenChange}\n settings={settingsContent}\n content={chartContent}\n />\n </div>\n );\n};\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"MosaicChartView.d.ts","sourceRoot":"","sources":["../../src/charts/MosaicChartView.tsx"],"names":[],"mappings":"AACA,OAAO,EAAC,KAAK,EAAE,EAAoC,MAAM,OAAO,CAAC;AAGjE,OAAO,KAAK,EAAC,WAAW,EAAC,MAAM,4BAA4B,CAAC;AAW5D,OAAO,EAAC,SAAS,EAAC,MAAM,cAAc,CAAC;
|
|
1
|
+
{"version":3,"file":"MosaicChartView.d.ts","sourceRoot":"","sources":["../../src/charts/MosaicChartView.tsx"],"names":[],"mappings":"AACA,OAAO,EAAC,KAAK,EAAE,EAAoC,MAAM,OAAO,CAAC;AAGjE,OAAO,KAAK,EAAC,WAAW,EAAC,MAAM,4BAA4B,CAAC;AAW5D,OAAO,EAAC,SAAS,EAAC,MAAM,cAAc,CAAC;AAEvC,MAAM,MAAM,oBAAoB,GAAG;IACjC,SAAS,CAAC,EAAE,SAAS,CAAC;IACtB,MAAM,EAAE,WAAW,CAAC;IACpB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB,CAAC;AAEF,eAAO,MAAM,eAAe,EAAE,EAAE,CAAC,oBAAoB,CAsHpD,CAAC"}
|
|
@@ -12,7 +12,6 @@ import { useChartDataPolicy } from './useChartDataPolicy';
|
|
|
12
12
|
import { useChartRetainerByKey } from './useChartRetainer';
|
|
13
13
|
import { useMosaicChartRenderContext } from './useMosaicChartRenderContext';
|
|
14
14
|
import { useRuntimeIssueReporter } from './useRuntimeIssueReporter';
|
|
15
|
-
import { getChartTableReference } from './chart-types/base-types';
|
|
16
15
|
export const MosaicChartView = ({ dataTable, config, selectionName, retentionKey, runtimeIssueKey, className, dashboardId, panelId, }) => {
|
|
17
16
|
const connection = useStoreWithMosaicDashboard((state) => state.mosaic.connection);
|
|
18
17
|
const retention = useChartRetainerByKey(retentionKey);
|
|
@@ -54,7 +53,7 @@ export const MosaicChartView = ({ dataTable, config, selectionName, retentionKey
|
|
|
54
53
|
}
|
|
55
54
|
if (renderContext.type === 'component') {
|
|
56
55
|
return (_jsx("div", { className: cn('h-full w-full', className), children: createElement(renderContext.renderer, {
|
|
57
|
-
|
|
56
|
+
table: renderContext.dataTable.table,
|
|
58
57
|
config,
|
|
59
58
|
coordinator: connection.coordinator,
|
|
60
59
|
params,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"MosaicChartView.js","sourceRoot":"","sources":["../../src/charts/MosaicChartView.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAC,WAAW,EAAE,EAAE,EAAC,MAAM,cAAc,CAAC;AAC7C,OAAO,EAAU,aAAa,EAAE,OAAO,EAAE,SAAS,EAAC,MAAM,OAAO,CAAC;AACjE,OAAO,EAAC,WAAW,EAAC,MAAM,gBAAgB,CAAC;AAG3C,OAAO,EAAC,2BAA2B,EAAC,MAAM,mCAAmC,CAAC;AAC9E,OAAO,EAAC,0BAA0B,EAAC,MAAM,yCAAyC,CAAC;AACnF,OAAO,EAAC,oBAAoB,EAAC,MAAM,wBAAwB,CAAC;AAC5D,OAAO,EAAC,4BAA4B,EAAC,MAAM,gCAAgC,CAAC;AAC5E,OAAO,EAAC,gBAAgB,EAAC,MAAM,oBAAoB,CAAC;AACpD,OAAO,EAAC,uBAAuB,EAAC,MAAM,2BAA2B,CAAC;AAClE,OAAO,EAAC,kBAAkB,EAAC,MAAM,sBAAsB,CAAC;AACxD,OAAO,EAAC,qBAAqB,EAAC,MAAM,oBAAoB,CAAC;AACzD,OAAO,EAAC,2BAA2B,EAAC,MAAM,+BAA+B,CAAC;AAC1E,OAAO,EAAC,uBAAuB,EAAC,MAAM,2BAA2B,CAAC;
|
|
1
|
+
{"version":3,"file":"MosaicChartView.js","sourceRoot":"","sources":["../../src/charts/MosaicChartView.tsx"],"names":[],"mappings":"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","sourcesContent":["import {SpinnerPane, cn} from '@sqlrooms/ui';\nimport {type FC, createElement, useMemo, useEffect} from 'react';\nimport {VgPlotChart} from '../VgPlotChart';\nimport type {ChartRuntimeIssueContext} from '../chart-runtime';\nimport type {ChartConfig} from './chart-types/chart-config';\nimport {useStoreWithMosaicDashboard} from '../dashboard/MosaicDashboardSlice';\nimport {usePanelClientRegistration} from '../dashboard/usePanelClientRegistration';\nimport {useChartPanelClients} from './useChartPanelClients';\nimport {MosaicChartRuntimeIssuePanel} from './MosaicChartRuntimeIssuePanel';\nimport {MosaicChartError} from './MosaicChartError';\nimport {useBrushSelectionParams} from './useBrushSelectionParams';\nimport {useChartDataPolicy} from './useChartDataPolicy';\nimport {useChartRetainerByKey} from './useChartRetainer';\nimport {useMosaicChartRenderContext} from './useMosaicChartRenderContext';\nimport {useRuntimeIssueReporter} from './useRuntimeIssueReporter';\nimport {DataTable} from '@sqlrooms/db';\n\nexport type MosaicChartViewProps = {\n dataTable?: DataTable;\n config: ChartConfig;\n selectionName?: string;\n retentionKey?: string;\n runtimeIssueKey?: string;\n className?: string;\n dashboardId?: string;\n panelId?: string;\n};\n\nexport const MosaicChartView: FC<MosaicChartViewProps> = ({\n dataTable,\n config,\n selectionName,\n retentionKey,\n runtimeIssueKey,\n className,\n dashboardId,\n panelId,\n}) => {\n const connection = useStoreWithMosaicDashboard(\n (state) => state.mosaic.connection,\n );\n\n const retention = useChartRetainerByKey(retentionKey);\n const chartClients = useChartPanelClients(retention);\n\n usePanelClientRegistration(dashboardId, panelId, chartClients);\n\n const params = useBrushSelectionParams(selectionName);\n const dataPolicy = useChartDataPolicy(dataTable, config);\n\n const runtimeIssueReporter = useRuntimeIssueReporter(runtimeIssueKey);\n\n const runtimeIssueContext: ChartRuntimeIssueContext = useMemo(\n () => ({\n panelId: runtimeIssueKey ?? retentionKey ?? config.chartType,\n chartType: config.chartType,\n }),\n [config.chartType, retentionKey, runtimeIssueKey],\n );\n\n const issue = useStoreWithMosaicDashboard((state) =>\n runtimeIssueKey\n ? state.mosaicDashboard.getPanelIssueByKey(runtimeIssueKey)\n : undefined,\n );\n\n const clearPanelIssue = useStoreWithMosaicDashboard(\n (state) => state.mosaicDashboard.clearPanelIssueByKey,\n );\n\n // Clear issue when config changes - new config means user is trying different settings\n useEffect(() => {\n if (runtimeIssueKey && issue) {\n clearPanelIssue(runtimeIssueKey);\n }\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [config, runtimeIssueKey, clearPanelIssue]);\n\n const renderContext = useMosaicChartRenderContext(\n dataTable,\n config,\n selectionName,\n );\n\n if (connection.status === 'loading' || connection.status === 'idle') {\n return <SpinnerPane className=\"h-full w-full\" />;\n }\n\n if (connection.status === 'error') {\n return (\n <div className=\"text-muted-foreground flex h-full items-center justify-center text-sm\">\n Mosaic connection failed\n </div>\n );\n }\n\n if (renderContext.type === 'error') {\n return (\n <div\n className={cn(\n 'flex h-full flex-col items-center justify-center',\n className,\n )}\n >\n <MosaicChartError error={renderContext.error} />\n </div>\n );\n }\n\n if (issue) {\n return <MosaicChartRuntimeIssuePanel issue={issue} />;\n }\n\n if (renderContext.type === 'spec') {\n return (\n <div className={cn('h-full w-full', className)}>\n <VgPlotChart\n spec={renderContext.spec}\n params={params}\n retention={retention}\n dataPolicy={dataPolicy}\n runtimeIssueContext={runtimeIssueContext}\n runtimeIssueReporter={runtimeIssueReporter}\n />\n </div>\n );\n }\n\n if (renderContext.type === 'component') {\n return (\n <div className={cn('h-full w-full', className)}>\n {createElement(renderContext.renderer, {\n table: renderContext.dataTable.table,\n config,\n coordinator: connection.coordinator,\n params,\n retention,\n dataPolicy,\n runtimeIssueContext,\n runtimeIssueReporter,\n })}\n </div>\n );\n }\n\n return null;\n};\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"MosaicChartSpecViewerPanel.d.ts","sourceRoot":"","sources":["../../../src/charts/chart-settings/MosaicChartSpecViewerPanel.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAC,KAAK,EAAE,EAAU,MAAM,OAAO,CAAC;
|
|
1
|
+
{"version":3,"file":"MosaicChartSpecViewerPanel.d.ts","sourceRoot":"","sources":["../../../src/charts/chart-settings/MosaicChartSpecViewerPanel.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAC,KAAK,EAAE,EAAU,MAAM,OAAO,CAAC;AAIvC,OAAO,EAAC,IAAI,EAAC,MAAM,qBAAqB,CAAC;AAGzC,UAAU,+BAA+B;IACvC,IAAI,EAAE,IAAI,CAAC;IACX,MAAM,EAAE,MAAM,IAAI,CAAC;CACpB;AAED,eAAO,MAAM,0BAA0B,EAAE,EAAE,CACzC,+BAA+B,CAiChC,CAAC"}
|
|
@@ -1,11 +1,12 @@
|
|
|
1
1
|
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
2
|
import { useMemo } from 'react';
|
|
3
|
+
import { ScrollArea } from '@sqlrooms/ui';
|
|
3
4
|
import { MosaicCodeMirrorEditor } from '../../editor/MosaicCodeMirrorEditor';
|
|
4
5
|
import { MosaicChartSettings } from './MosaicChartSettings';
|
|
5
6
|
import { toRenderableMosaicSpec } from '../../dashboard/utils';
|
|
6
7
|
export const MosaicChartSpecViewerPanel = ({ spec, onBack }) => {
|
|
7
8
|
const renderableSpec = toRenderableMosaicSpec(spec);
|
|
8
9
|
const serializedValue = useMemo(() => (renderableSpec ? JSON.stringify(renderableSpec, null, 2) : ''), [renderableSpec]);
|
|
9
|
-
return (_jsxs("div", { className: "flex h-full flex-col", children: [_jsxs(MosaicChartSettings.Header, { children: [_jsx("div", { className: "flex items-center", children: _jsx("span", { children: "Spec viewer" }) }), _jsx("div", { className: "flex items-center gap-1", children: _jsx(MosaicChartSettings.CloseButton, { onClick: onBack }) })] }), _jsx(
|
|
10
|
+
return (_jsxs("div", { className: "flex h-full flex-col", children: [_jsxs(MosaicChartSettings.Header, { children: [_jsx("div", { className: "flex items-center", children: _jsx("span", { children: "Spec viewer" }) }), _jsx("div", { className: "flex items-center gap-1", children: _jsx(MosaicChartSettings.CloseButton, { onClick: onBack }) })] }), _jsx(ScrollArea, { className: "min-h-0 flex-1", children: _jsx("div", { className: "h-full p-2", children: _jsx("div", { className: "border-input h-full overflow-hidden rounded-md border", children: _jsx(MosaicCodeMirrorEditor, { value: serializedValue, className: "h-full", enableSchemaValidation: true, readOnly: true }) }) }) })] }));
|
|
10
11
|
};
|
|
11
12
|
//# sourceMappingURL=MosaicChartSpecViewerPanel.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"MosaicChartSpecViewerPanel.js","sourceRoot":"","sources":["../../../src/charts/chart-settings/MosaicChartSpecViewerPanel.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAU,OAAO,EAAC,MAAM,OAAO,CAAC;AACvC,OAAO,EAAC,sBAAsB,EAAC,MAAM,qCAAqC,CAAC;AAC3E,OAAO,EAAC,mBAAmB,EAAC,MAAM,uBAAuB,CAAC;AAE1D,OAAO,EAAC,sBAAsB,EAAC,MAAM,uBAAuB,CAAC;AAO7D,MAAM,CAAC,MAAM,0BAA0B,GAEnC,CAAC,EAAC,IAAI,EAAE,MAAM,EAAC,EAAE,EAAE;IACrB,MAAM,cAAc,GAAG,sBAAsB,CAAC,IAAI,CAAC,CAAC;IAEpD,MAAM,eAAe,GAAG,OAAO,CAC7B,GAAG,EAAE,CAAC,CAAC,cAAc,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,cAAc,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,EACrE,CAAC,cAAc,CAAC,CACjB,CAAC;IAEF,OAAO,CACL,eAAK,SAAS,EAAC,sBAAsB,aACnC,MAAC,mBAAmB,CAAC,MAAM,eACzB,cAAK,SAAS,EAAC,mBAAmB,YAChC,yCAAwB,GACpB,EACN,cAAK,SAAS,EAAC,yBAAyB,YACtC,KAAC,mBAAmB,CAAC,WAAW,IAAC,OAAO,EAAE,MAAM,GAAI,GAChD,IACqB,EAC7B,cAAK,SAAS,EAAC,
|
|
1
|
+
{"version":3,"file":"MosaicChartSpecViewerPanel.js","sourceRoot":"","sources":["../../../src/charts/chart-settings/MosaicChartSpecViewerPanel.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAU,OAAO,EAAC,MAAM,OAAO,CAAC;AACvC,OAAO,EAAC,UAAU,EAAC,MAAM,cAAc,CAAC;AACxC,OAAO,EAAC,sBAAsB,EAAC,MAAM,qCAAqC,CAAC;AAC3E,OAAO,EAAC,mBAAmB,EAAC,MAAM,uBAAuB,CAAC;AAE1D,OAAO,EAAC,sBAAsB,EAAC,MAAM,uBAAuB,CAAC;AAO7D,MAAM,CAAC,MAAM,0BAA0B,GAEnC,CAAC,EAAC,IAAI,EAAE,MAAM,EAAC,EAAE,EAAE;IACrB,MAAM,cAAc,GAAG,sBAAsB,CAAC,IAAI,CAAC,CAAC;IAEpD,MAAM,eAAe,GAAG,OAAO,CAC7B,GAAG,EAAE,CAAC,CAAC,cAAc,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,cAAc,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,EACrE,CAAC,cAAc,CAAC,CACjB,CAAC;IAEF,OAAO,CACL,eAAK,SAAS,EAAC,sBAAsB,aACnC,MAAC,mBAAmB,CAAC,MAAM,eACzB,cAAK,SAAS,EAAC,mBAAmB,YAChC,yCAAwB,GACpB,EACN,cAAK,SAAS,EAAC,yBAAyB,YACtC,KAAC,mBAAmB,CAAC,WAAW,IAAC,OAAO,EAAE,MAAM,GAAI,GAChD,IACqB,EAC7B,KAAC,UAAU,IAAC,SAAS,EAAC,gBAAgB,YACpC,cAAK,SAAS,EAAC,YAAY,YACzB,cAAK,SAAS,EAAC,uDAAuD,YACpE,KAAC,sBAAsB,IACrB,KAAK,EAAE,eAAe,EACtB,SAAS,EAAC,QAAQ,EAClB,sBAAsB,QACtB,QAAQ,SACR,GACE,GACF,GACK,IACT,CACP,CAAC;AACJ,CAAC,CAAC","sourcesContent":["import {type FC, useMemo} from 'react';\nimport {ScrollArea} from '@sqlrooms/ui';\nimport {MosaicCodeMirrorEditor} from '../../editor/MosaicCodeMirrorEditor';\nimport {MosaicChartSettings} from './MosaicChartSettings';\nimport {Spec} from '@uwdata/mosaic-spec';\nimport {toRenderableMosaicSpec} from '../../dashboard/utils';\n\ninterface MosaicChartSpecViewerPanelProps {\n spec: Spec;\n onBack: () => void;\n}\n\nexport const MosaicChartSpecViewerPanel: FC<\n MosaicChartSpecViewerPanelProps\n> = ({spec, onBack}) => {\n const renderableSpec = toRenderableMosaicSpec(spec);\n\n const serializedValue = useMemo(\n () => (renderableSpec ? JSON.stringify(renderableSpec, null, 2) : ''),\n [renderableSpec],\n );\n\n return (\n <div className=\"flex h-full flex-col\">\n <MosaicChartSettings.Header>\n <div className=\"flex items-center\">\n <span>Spec viewer</span>\n </div>\n <div className=\"flex items-center gap-1\">\n <MosaicChartSettings.CloseButton onClick={onBack} />\n </div>\n </MosaicChartSettings.Header>\n <ScrollArea className=\"min-h-0 flex-1\">\n <div className=\"h-full p-2\">\n <div className=\"border-input h-full overflow-hidden rounded-md border\">\n <MosaicCodeMirrorEditor\n value={serializedValue}\n className=\"h-full\"\n enableSchemaValidation\n readOnly\n />\n </div>\n </div>\n </ScrollArea>\n </div>\n );\n};\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"MosaicChartTypeSelector.d.ts","sourceRoot":"","sources":["../../../src/charts/chart-settings/MosaicChartTypeSelector.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAC,KAAK,EAAE,
|
|
1
|
+
{"version":3,"file":"MosaicChartTypeSelector.d.ts","sourceRoot":"","sources":["../../../src/charts/chart-settings/MosaicChartTypeSelector.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAC,KAAK,EAAE,EAAgB,MAAM,OAAO,CAAC;AAG7C,OAAO,EAAC,KAAK,SAAS,EAAC,MAAM,2BAA2B,CAAC;AAGzD,UAAU,4BAA4B;IACpC,KAAK,EAAE,SAAS,CAAC;IACjB,QAAQ,EAAE,CAAC,SAAS,EAAE,SAAS,KAAK,IAAI,CAAC;CAC1C;AAED,eAAO,MAAM,uBAAuB,EAAE,EAAE,CAAC,4BAA4B,CAkDpE,CAAC"}
|
|
@@ -1,22 +1,15 @@
|
|
|
1
1
|
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
|
-
import { memo, useMemo
|
|
2
|
+
import { memo, useMemo } from 'react';
|
|
3
3
|
import { ChartNoAxesCombined } from 'lucide-react';
|
|
4
|
+
import { Combobox } from '@sqlrooms/ui';
|
|
4
5
|
import { useStoreWithMosaicDashboard } from '../../dashboard/MosaicDashboardSlice';
|
|
5
|
-
import { Combobox } from '../../components/Combobox';
|
|
6
6
|
export const MosaicChartTypeSelector = memo(({ value, onChange }) => {
|
|
7
7
|
const chartTypes = useStoreWithMosaicDashboard((state) => state.mosaicDashboard.chartTypes);
|
|
8
|
-
// Custom selection handler: maps from label back to id
|
|
9
|
-
const handleChange = useCallback((searchValue) => {
|
|
10
|
-
const chartType = chartTypes?.find((ct) => (ct.label ?? ct.id).toLowerCase() === searchValue.toLowerCase());
|
|
11
|
-
if (chartType) {
|
|
12
|
-
onChange(chartType.id);
|
|
13
|
-
}
|
|
14
|
-
}, [chartTypes, onChange]);
|
|
15
8
|
const selectedChartType = useMemo(() => chartTypes?.find((chartType) => chartType.id === value), [chartTypes, value]);
|
|
16
9
|
const SelectedChartTypeIcon = selectedChartType?.icon ?? ChartNoAxesCombined;
|
|
17
|
-
return (_jsxs(Combobox, { value: value, onChange:
|
|
10
|
+
return (_jsxs(Combobox, { value: value, onChange: onChange, children: [_jsx(Combobox.Trigger, { className: "w-full", ariaLabel: "Chart type", children: selectedChartType ? (_jsxs("div", { className: "flex items-center gap-2", children: [_jsx(SelectedChartTypeIcon, { className: "h-3.5 w-3.5" }), _jsx("span", { children: selectedChartType.label })] })) : (_jsx("span", { className: "text-muted-foreground", children: "Select chart type" })) }), _jsx(Combobox.Content, { searchable: true, searchPlaceholder: "Search chart types...", emptyMessage: "No matching chart type.", children: chartTypes?.map((chartType) => {
|
|
18
11
|
const Icon = chartType.icon ?? ChartNoAxesCombined;
|
|
19
|
-
return (_jsxs(Combobox.Item, { value: chartType.
|
|
12
|
+
return (_jsxs(Combobox.Item, { value: chartType.id, keywords: [chartType.label ?? chartType.id], children: [_jsx(Icon, { className: "mr-2 h-3.5 w-3.5 shrink-0" }), _jsx("span", { className: "truncate text-xs", children: chartType.label ?? chartType.id })] }, chartType.id));
|
|
20
13
|
}) })] }));
|
|
21
14
|
});
|
|
22
15
|
MosaicChartTypeSelector.displayName = 'MosaicChartTypeSelector';
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"MosaicChartTypeSelector.js","sourceRoot":"","sources":["../../../src/charts/chart-settings/MosaicChartTypeSelector.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAU,IAAI,EAAE,OAAO,
|
|
1
|
+
{"version":3,"file":"MosaicChartTypeSelector.js","sourceRoot":"","sources":["../../../src/charts/chart-settings/MosaicChartTypeSelector.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAU,IAAI,EAAE,OAAO,EAAC,MAAM,OAAO,CAAC;AAC7C,OAAO,EAAC,mBAAmB,EAAC,MAAM,cAAc,CAAC;AACjD,OAAO,EAAC,QAAQ,EAAC,MAAM,cAAc,CAAC;AAEtC,OAAO,EAAC,2BAA2B,EAAC,MAAM,sCAAsC,CAAC;AAOjF,MAAM,CAAC,MAAM,uBAAuB,GAAqC,IAAI,CAC3E,CAAC,EAAC,KAAK,EAAE,QAAQ,EAAC,EAAE,EAAE;IACpB,MAAM,UAAU,GAAG,2BAA2B,CAC5C,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,eAAe,CAAC,UAAU,CAC5C,CAAC;IAEF,MAAM,iBAAiB,GAAG,OAAO,CAC/B,GAAG,EAAE,CAAC,UAAU,EAAE,IAAI,CAAC,CAAC,SAAS,EAAE,EAAE,CAAC,SAAS,CAAC,EAAE,KAAK,KAAK,CAAC,EAC7D,CAAC,UAAU,EAAE,KAAK,CAAC,CACpB,CAAC;IAEF,MAAM,qBAAqB,GACzB,iBAAiB,EAAE,IAAI,IAAI,mBAAmB,CAAC;IAEjD,OAAO,CACL,MAAC,QAAQ,IAAC,KAAK,EAAE,KAAK,EAAE,QAAQ,EAAE,QAAQ,aACxC,KAAC,QAAQ,CAAC,OAAO,IAAC,SAAS,EAAC,QAAQ,EAAC,SAAS,EAAC,YAAY,YACxD,iBAAiB,CAAC,CAAC,CAAC,CACnB,eAAK,SAAS,EAAC,yBAAyB,aACtC,KAAC,qBAAqB,IAAC,SAAS,EAAC,aAAa,GAAG,EACjD,yBAAO,iBAAiB,CAAC,KAAK,GAAQ,IAClC,CACP,CAAC,CAAC,CAAC,CACF,eAAM,SAAS,EAAC,uBAAuB,kCAAyB,CACjE,GACgB,EACnB,KAAC,QAAQ,CAAC,OAAO,IACf,UAAU,QACV,iBAAiB,EAAC,uBAAuB,EACzC,YAAY,EAAC,yBAAyB,YAErC,UAAU,EAAE,GAAG,CAAC,CAAC,SAAS,EAAE,EAAE;oBAC7B,MAAM,IAAI,GAAG,SAAS,CAAC,IAAI,IAAI,mBAAmB,CAAC;oBACnD,OAAO,CACL,MAAC,QAAQ,CAAC,IAAI,IAEZ,KAAK,EAAE,SAAS,CAAC,EAAE,EACnB,QAAQ,EAAE,CAAC,SAAS,CAAC,KAAK,IAAI,SAAS,CAAC,EAAE,CAAC,aAE3C,KAAC,IAAI,IAAC,SAAS,EAAC,2BAA2B,GAAG,EAC9C,eAAM,SAAS,EAAC,kBAAkB,YAC/B,SAAS,CAAC,KAAK,IAAI,SAAS,CAAC,EAAE,GAC3B,KAPF,SAAS,CAAC,EAAE,CAQH,CACjB,CAAC;gBACJ,CAAC,CAAC,GACe,IACV,CACZ,CAAC;AACJ,CAAC,CACF,CAAC;AAEF,uBAAuB,CAAC,WAAW,GAAG,yBAAyB,CAAC","sourcesContent":["import {type FC, memo, useMemo} from 'react';\nimport {ChartNoAxesCombined} from 'lucide-react';\nimport {Combobox} from '@sqlrooms/ui';\nimport {type ChartType} from '../chart-types/base-types';\nimport {useStoreWithMosaicDashboard} from '../../dashboard/MosaicDashboardSlice';\n\ninterface MosaicChartTypeSelectorProps {\n value: ChartType;\n onChange: (chartType: ChartType) => void;\n}\n\nexport const MosaicChartTypeSelector: FC<MosaicChartTypeSelectorProps> = memo(\n ({value, onChange}) => {\n const chartTypes = useStoreWithMosaicDashboard(\n (state) => state.mosaicDashboard.chartTypes,\n );\n\n const selectedChartType = useMemo(\n () => chartTypes?.find((chartType) => chartType.id === value),\n [chartTypes, value],\n );\n\n const SelectedChartTypeIcon =\n selectedChartType?.icon ?? ChartNoAxesCombined;\n\n return (\n <Combobox value={value} onChange={onChange}>\n <Combobox.Trigger className=\"w-full\" ariaLabel=\"Chart type\">\n {selectedChartType ? (\n <div className=\"flex items-center gap-2\">\n <SelectedChartTypeIcon className=\"h-3.5 w-3.5\" />\n <span>{selectedChartType.label}</span>\n </div>\n ) : (\n <span className=\"text-muted-foreground\">Select chart type</span>\n )}\n </Combobox.Trigger>\n <Combobox.Content\n searchable\n searchPlaceholder=\"Search chart types...\"\n emptyMessage=\"No matching chart type.\"\n >\n {chartTypes?.map((chartType) => {\n const Icon = chartType.icon ?? ChartNoAxesCombined;\n return (\n <Combobox.Item\n key={chartType.id}\n value={chartType.id}\n keywords={[chartType.label ?? chartType.id]}\n >\n <Icon className=\"mr-2 h-3.5 w-3.5 shrink-0\" />\n <span className=\"truncate text-xs\">\n {chartType.label ?? chartType.id}\n </span>\n </Combobox.Item>\n );\n })}\n </Combobox.Content>\n </Combobox>\n );\n },\n);\n\nMosaicChartTypeSelector.displayName = 'MosaicChartTypeSelector';\n"]}
|