@sqlrooms/mosaic 0.29.0-rc.7 → 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/LICENSE.md +2 -1
- package/README.md +179 -35
- package/dist/MosaicSlice.d.ts +1 -0
- package/dist/MosaicSlice.d.ts.map +1 -1
- package/dist/MosaicSlice.js.map +1 -1
- package/dist/VgPlotChart.d.ts.map +1 -1
- package/dist/VgPlotChart.js +9 -3
- package/dist/VgPlotChart.js.map +1 -1
- 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.d.ts +3 -1
- package/dist/charts/MosaicChart.d.ts.map +1 -1
- package/dist/charts/MosaicChart.js +2 -2
- package/dist/charts/MosaicChart.js.map +1 -1
- package/dist/charts/MosaicChartError.d.ts +8 -2
- package/dist/charts/MosaicChartError.d.ts.map +1 -1
- package/dist/charts/MosaicChartError.js +29 -3
- package/dist/charts/MosaicChartError.js.map +1 -1
- package/dist/charts/MosaicChartSettingsButton.d.ts +15 -0
- package/dist/charts/MosaicChartSettingsButton.d.ts.map +1 -0
- package/dist/charts/MosaicChartSettingsButton.js +7 -0
- package/dist/charts/MosaicChartSettingsButton.js.map +1 -0
- package/dist/charts/MosaicChartView.d.ts +2 -0
- package/dist/charts/MosaicChartView.d.ts.map +1 -1
- package/dist/charts/MosaicChartView.js +19 -7
- package/dist/charts/MosaicChartView.js.map +1 -1
- package/dist/charts/chart-settings/MosaicChartSettings.d.ts.map +1 -1
- package/dist/charts/chart-settings/MosaicChartSettings.js +3 -3
- package/dist/charts/chart-settings/MosaicChartSettings.js.map +1 -1
- package/dist/charts/chart-settings/MosaicChartSettingsPanel.js +1 -1
- package/dist/charts/chart-settings/MosaicChartSettingsPanel.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 +3 -3
- package/dist/charts/chart-settings/MosaicChartTypeSelector.js.map +1 -1
- package/dist/charts/chart-types/base-types.d.ts +40 -25
- package/dist/charts/chart-types/base-types.d.ts.map +1 -1
- package/dist/charts/chart-types/base-types.js +5 -0
- 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 +28 -13
- 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/chart-config.d.ts +3 -1
- package/dist/charts/chart-types/chart-config.d.ts.map +1 -1
- package/dist/charts/chart-types/chart-config.js +2 -2
- package/dist/charts/chart-types/chart-config.js.map +1 -1
- 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 +2 -1
- package/dist/charts/chart-types/count-plot/spec.d.ts.map +1 -1
- package/dist/charts/chart-types/count-plot/spec.js +47 -34
- 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 +26 -33
- 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/createDefaultChartTypes.js +2 -2
- package/dist/charts/chart-types/createDefaultChartTypes.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/custom-spec/spec.d.ts +2 -1
- package/dist/charts/chart-types/custom-spec/spec.d.ts.map +1 -1
- package/dist/charts/chart-types/custom-spec/spec.js +16 -12
- package/dist/charts/chart-types/custom-spec/spec.js.map +1 -1
- package/dist/charts/chart-types/errors.d.ts +35 -0
- package/dist/charts/chart-types/errors.d.ts.map +1 -1
- package/dist/charts/chart-types/errors.js +56 -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 +2 -1
- package/dist/charts/chart-types/heatmap/spec.d.ts.map +1 -1
- package/dist/charts/chart-types/heatmap/spec.js +21 -21
- 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 +27 -37
- 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/HistogramSettings.d.ts.map +1 -1
- package/dist/charts/chart-types/histogram/HistogramSettings.js +3 -1
- package/dist/charts/chart-types/histogram/HistogramSettings.js.map +1 -1
- 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/schema.d.ts +2 -0
- package/dist/charts/chart-types/histogram/schema.d.ts.map +1 -1
- package/dist/charts/chart-types/histogram/schema.js +1 -0
- package/dist/charts/chart-types/histogram/schema.js.map +1 -1
- package/dist/charts/chart-types/histogram/spec.d.ts +2 -1
- package/dist/charts/chart-types/histogram/spec.d.ts.map +1 -1
- package/dist/charts/chart-types/histogram/spec.js +31 -28
- package/dist/charts/chart-types/histogram/spec.js.map +1 -1
- package/dist/charts/chart-types/histogram/tool.d.ts +39 -24
- package/dist/charts/chart-types/histogram/tool.d.ts.map +1 -1
- package/dist/charts/chart-types/histogram/tool.js +39 -33
- 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 +5 -11
- package/dist/charts/chart-types/index.d.ts.map +1 -1
- package/dist/charts/chart-types/index.js +6 -12
- package/dist/charts/chart-types/index.js.map +1 -1
- package/dist/charts/chart-types/line-chart/LineChartSettings.d.ts.map +1 -1
- package/dist/charts/chart-types/line-chart/LineChartSettings.js +4 -13
- package/dist/charts/chart-types/line-chart/LineChartSettings.js.map +1 -1
- package/dist/charts/chart-types/line-chart/LineChartXFieldSelector.d.ts +7 -0
- package/dist/charts/chart-types/line-chart/LineChartXFieldSelector.d.ts.map +1 -0
- package/dist/charts/chart-types/line-chart/LineChartXFieldSelector.js +22 -0
- package/dist/charts/chart-types/line-chart/LineChartXFieldSelector.js.map +1 -0
- package/dist/charts/chart-types/line-chart/LineChartYFieldsSelector.d.ts +7 -0
- package/dist/charts/chart-types/line-chart/LineChartYFieldsSelector.d.ts.map +1 -0
- package/dist/charts/chart-types/line-chart/LineChartYFieldsSelector.js +42 -0
- package/dist/charts/chart-types/line-chart/LineChartYFieldsSelector.js.map +1 -0
- 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/schema.d.ts +2 -0
- package/dist/charts/chart-types/line-chart/schema.d.ts.map +1 -1
- package/dist/charts/chart-types/line-chart/schema.js +5 -0
- package/dist/charts/chart-types/line-chart/schema.js.map +1 -1
- package/dist/charts/chart-types/line-chart/spec.d.ts +2 -1
- package/dist/charts/chart-types/line-chart/spec.d.ts.map +1 -1
- package/dist/charts/chart-types/line-chart/spec.js +56 -65
- package/dist/charts/chart-types/line-chart/spec.js.map +1 -1
- package/dist/charts/chart-types/line-chart/tool.d.ts +28 -24
- package/dist/charts/chart-types/line-chart/tool.d.ts.map +1 -1
- package/dist/charts/chart-types/line-chart/tool.js +27 -39
- package/dist/charts/chart-types/line-chart/tool.js.map +1 -1
- package/dist/charts/chart-types/line-chart/utils.d.ts +7 -0
- package/dist/charts/chart-types/line-chart/utils.d.ts.map +1 -0
- package/dist/charts/chart-types/line-chart/utils.js +17 -0
- package/dist/charts/chart-types/line-chart/utils.js.map +1 -0
- 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/mosaicChartTypes.d.ts +4 -2
- package/dist/charts/chart-types/mosaicChartTypes.d.ts.map +1 -1
- package/dist/charts/chart-types/mosaicChartTypes.js +2 -2
- package/dist/charts/chart-types/mosaicChartTypes.js.map +1 -1
- 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/ScatterPlotSettings.d.ts +3 -0
- package/dist/charts/chart-types/scatter-plot/ScatterPlotSettings.d.ts.map +1 -0
- package/dist/charts/chart-types/{bubble-chart/BubbleChartSettings.js → scatter-plot/ScatterPlotSettings.js} +4 -4
- package/dist/charts/chart-types/scatter-plot/ScatterPlotSettings.js.map +1 -0
- package/dist/charts/chart-types/scatter-plot/definition.d.ts +4 -0
- package/dist/charts/chart-types/scatter-plot/definition.d.ts.map +1 -0
- package/dist/charts/chart-types/scatter-plot/definition.js +25 -0
- package/dist/charts/chart-types/scatter-plot/definition.js.map +1 -0
- package/dist/charts/chart-types/{bubble-chart → scatter-plot}/schema.d.ts +5 -5
- package/dist/charts/chart-types/scatter-plot/schema.d.ts.map +1 -0
- package/dist/charts/chart-types/{bubble-chart → scatter-plot}/schema.js +5 -5
- package/dist/charts/chart-types/scatter-plot/schema.js.map +1 -0
- package/dist/charts/chart-types/scatter-plot/spec.d.ts +5 -0
- package/dist/charts/chart-types/scatter-plot/spec.d.ts.map +1 -0
- package/dist/charts/chart-types/scatter-plot/spec.js +37 -0
- package/dist/charts/chart-types/scatter-plot/spec.js.map +1 -0
- package/dist/charts/chart-types/scatter-plot/tool.d.ts +39 -0
- package/dist/charts/chart-types/scatter-plot/tool.d.ts.map +1 -0
- package/dist/charts/chart-types/scatter-plot/tool.js +57 -0
- package/dist/charts/chart-types/scatter-plot/tool.js.map +1 -0
- 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/MosaicDashboardChartHeaderActions.d.ts.map +1 -1
- package/dist/charts/dashboard/MosaicDashboardChartHeaderActions.js +12 -5
- package/dist/charts/dashboard/MosaicDashboardChartHeaderActions.js.map +1 -1
- package/dist/charts/dashboard/MosaicDashboardChartRenderer.d.ts.map +1 -1
- package/dist/charts/dashboard/MosaicDashboardChartRenderer.js +6 -4
- package/dist/charts/dashboard/MosaicDashboardChartRenderer.js.map +1 -1
- package/dist/charts/useChartDataPolicy.d.ts.map +1 -1
- package/dist/charts/useChartDataPolicy.js +2 -1
- package/dist/charts/useChartDataPolicy.js.map +1 -1
- package/dist/charts/useChartPanelClients.d.ts +8 -0
- package/dist/charts/useChartPanelClients.d.ts.map +1 -0
- package/dist/charts/useChartPanelClients.js +22 -0
- package/dist/charts/useChartPanelClients.js.map +1 -0
- package/dist/charts/useMosaicChartRenderContext.d.ts +2 -3
- package/dist/charts/useMosaicChartRenderContext.d.ts.map +1 -1
- package/dist/charts/useMosaicChartRenderContext.js +15 -15
- package/dist/charts/useMosaicChartRenderContext.js.map +1 -1
- package/dist/charts/worksheet/ChartBlockHeader.d.ts.map +1 -1
- package/dist/charts/worksheet/ChartBlockHeader.js +4 -3
- package/dist/charts/worksheet/ChartBlockHeader.js.map +1 -1
- package/dist/charts/worksheet/ChartBlockRenderer.d.ts.map +1 -1
- package/dist/charts/worksheet/ChartBlockRenderer.js +3 -13
- package/dist/charts/worksheet/ChartBlockRenderer.js.map +1 -1
- package/dist/column-types-utils.d.ts.map +1 -1
- package/dist/column-types-utils.js +12 -4
- package/dist/column-types-utils.js.map +1 -1
- package/dist/components/AggregationSelector.d.ts.map +1 -1
- package/dist/components/AggregationSelector.js +9 -2
- package/dist/components/AggregationSelector.js.map +1 -1
- package/dist/components/BlockCaptionEditor.d.ts +20 -0
- package/dist/components/BlockCaptionEditor.d.ts.map +1 -0
- package/dist/components/BlockCaptionEditor.js +15 -0
- package/dist/components/BlockCaptionEditor.js.map +1 -0
- package/dist/components/ColorSelector.d.ts +12 -0
- package/dist/components/ColorSelector.d.ts.map +1 -0
- package/dist/components/ColorSelector.js +13 -0
- package/dist/components/ColorSelector.js.map +1 -0
- package/dist/components/ColumnSelector.d.ts +1 -0
- package/dist/components/ColumnSelector.d.ts.map +1 -1
- package/dist/components/ColumnSelector.js +2 -2
- package/dist/components/ColumnSelector.js.map +1 -1
- package/dist/components/FieldSelectorInput.d.ts +1 -0
- package/dist/components/FieldSelectorInput.d.ts.map +1 -1
- package/dist/components/FieldSelectorInput.js +4 -9
- package/dist/components/FieldSelectorInput.js.map +1 -1
- package/dist/components/MultiFieldSelector.d.ts +4 -1
- package/dist/components/MultiFieldSelector.d.ts.map +1 -1
- package/dist/components/MultiFieldSelector.js +4 -13
- package/dist/components/MultiFieldSelector.js.map +1 -1
- package/dist/components/TemporalGranularitySelector.d.ts.map +1 -1
- package/dist/components/TemporalGranularitySelector.js +13 -9
- package/dist/components/TemporalGranularitySelector.js.map +1 -1
- package/dist/constants/chart-colors.d.ts +3 -0
- package/dist/constants/chart-colors.d.ts.map +1 -0
- package/dist/constants/chart-colors.js +5 -0
- package/dist/constants/chart-colors.js.map +1 -0
- package/dist/dashboard/DefaultMosaicDashboardBlock.d.ts +2 -1
- package/dist/dashboard/DefaultMosaicDashboardBlock.d.ts.map +1 -1
- package/dist/dashboard/DefaultMosaicDashboardBlock.js +1 -1
- package/dist/dashboard/DefaultMosaicDashboardBlock.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/MosaicDashboardSlice.d.ts +22 -4
- package/dist/dashboard/MosaicDashboardSlice.d.ts.map +1 -1
- package/dist/dashboard/MosaicDashboardSlice.js +55 -0
- package/dist/dashboard/MosaicDashboardSlice.js.map +1 -1
- package/dist/dashboard/components/ResetFiltersButton.d.ts +14 -0
- package/dist/dashboard/components/ResetFiltersButton.d.ts.map +1 -0
- package/dist/dashboard/components/ResetFiltersButton.js +15 -0
- package/dist/dashboard/components/ResetFiltersButton.js.map +1 -0
- package/dist/dashboard/dashboard-types.d.ts +9 -3
- package/dist/dashboard/dashboard-types.d.ts.map +1 -1
- package/dist/dashboard/dashboard-types.js.map +1 -1
- package/dist/dashboard/hooks/useDashboardResetFilters.d.ts +14 -0
- package/dist/dashboard/hooks/useDashboardResetFilters.d.ts.map +1 -0
- package/dist/dashboard/hooks/useDashboardResetFilters.js +39 -0
- package/dist/dashboard/hooks/useDashboardResetFilters.js.map +1 -0
- package/dist/dashboard/hooks/usePanelResetFilters.d.ts +16 -0
- package/dist/dashboard/hooks/usePanelResetFilters.d.ts.map +1 -0
- package/dist/dashboard/hooks/usePanelResetFilters.js +47 -0
- package/dist/dashboard/hooks/usePanelResetFilters.js.map +1 -0
- 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/MosaicDashboardAddPanelDropdown.d.ts.map +1 -1
- package/dist/dashboard/toolbar/MosaicDashboardAddPanelDropdown.js +3 -3
- package/dist/dashboard/toolbar/MosaicDashboardAddPanelDropdown.js.map +1 -1
- package/dist/dashboard/toolbar/MosaicDashboardDataTableSelector.d.ts +7 -0
- package/dist/dashboard/toolbar/MosaicDashboardDataTableSelector.d.ts.map +1 -0
- package/dist/dashboard/toolbar/MosaicDashboardDataTableSelector.js +18 -0
- package/dist/dashboard/toolbar/MosaicDashboardDataTableSelector.js.map +1 -0
- package/dist/dashboard/toolbar/MosaicDashboardResetFiltersButton.d.ts.map +1 -1
- package/dist/dashboard/toolbar/MosaicDashboardResetFiltersButton.js +4 -32
- package/dist/dashboard/toolbar/MosaicDashboardResetFiltersButton.js.map +1 -1
- package/dist/dashboard/toolbar/MosaicDashboardToolbar.d.ts +2 -2
- package/dist/dashboard/toolbar/MosaicDashboardToolbar.d.ts.map +1 -1
- package/dist/dashboard/toolbar/MosaicDashboardToolbar.js +14 -10
- package/dist/dashboard/toolbar/MosaicDashboardToolbar.js.map +1 -1
- package/dist/dashboard/usePanelClientRegistration.d.ts +7 -0
- package/dist/dashboard/usePanelClientRegistration.d.ts.map +1 -0
- package/dist/dashboard/usePanelClientRegistration.js +30 -0
- package/dist/dashboard/usePanelClientRegistration.js.map +1 -0
- package/dist/dashboard/usePanelClients.d.ts +7 -0
- package/dist/dashboard/usePanelClients.d.ts.map +1 -0
- package/dist/dashboard/usePanelClients.js +13 -0
- package/dist/dashboard/usePanelClients.js.map +1 -0
- 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/DataTableExplorer.d.ts +4 -2
- package/dist/data-table-explorer/DataTableExplorer.d.ts.map +1 -1
- package/dist/data-table-explorer/DataTableExplorer.js +4 -4
- package/dist/data-table-explorer/DataTableExplorer.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 +4 -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/createDataTableExplorerStore.d.ts +3 -0
- package/dist/data-table-explorer/createDataTableExplorerStore.d.ts.map +1 -1
- package/dist/data-table-explorer/createDataTableExplorerStore.js +6 -0
- package/dist/data-table-explorer/createDataTableExplorerStore.js.map +1 -1
- package/dist/data-table-explorer/dashboard/MosaicDashboardDataTableExplorerHeaderActions.d.ts +4 -0
- package/dist/data-table-explorer/dashboard/MosaicDashboardDataTableExplorerHeaderActions.d.ts.map +1 -0
- package/dist/data-table-explorer/dashboard/MosaicDashboardDataTableExplorerHeaderActions.js +13 -0
- package/dist/data-table-explorer/dashboard/MosaicDashboardDataTableExplorerHeaderActions.js.map +1 -0
- package/dist/data-table-explorer/dashboard/MosaicDashboardDataTableExplorerPanelRenderer.d.ts.map +1 -1
- package/dist/data-table-explorer/dashboard/MosaicDashboardDataTableExplorerPanelRenderer.js +26 -8
- package/dist/data-table-explorer/dashboard/MosaicDashboardDataTableExplorerPanelRenderer.js.map +1 -1
- package/dist/data-table-explorer/dashboard/useDataTableExplorerPanelClients.d.ts +13 -0
- package/dist/data-table-explorer/dashboard/useDataTableExplorerPanelClients.d.ts.map +1 -0
- package/dist/data-table-explorer/dashboard/useDataTableExplorerPanelClients.js +32 -0
- package/dist/data-table-explorer/dashboard/useDataTableExplorerPanelClients.js.map +1 -0
- package/dist/data-table-explorer/dataTableExplorerController.d.ts +63 -3
- package/dist/data-table-explorer/dataTableExplorerController.d.ts.map +1 -1
- package/dist/data-table-explorer/dataTableExplorerController.js +73 -10
- package/dist/data-table-explorer/dataTableExplorerController.js.map +1 -1
- package/dist/data-table-explorer/hooks/useDataTableExplorerColumns.d.ts +12 -0
- package/dist/data-table-explorer/hooks/useDataTableExplorerColumns.d.ts.map +1 -0
- package/dist/data-table-explorer/hooks/useDataTableExplorerColumns.js +19 -0
- package/dist/data-table-explorer/hooks/useDataTableExplorerColumns.js.map +1 -0
- package/dist/data-table-explorer/hooks/useDataTableExplorerLifecycles.d.ts +52 -0
- package/dist/data-table-explorer/hooks/useDataTableExplorerLifecycles.d.ts.map +1 -0
- package/dist/data-table-explorer/hooks/useDataTableExplorerLifecycles.js +153 -0
- package/dist/data-table-explorer/hooks/useDataTableExplorerLifecycles.js.map +1 -0
- package/dist/data-table-explorer/hooks/useDataTableExplorerQueryState.d.ts +42 -0
- package/dist/data-table-explorer/hooks/useDataTableExplorerQueryState.d.ts.map +1 -0
- package/dist/data-table-explorer/hooks/useDataTableExplorerQueryState.js +43 -0
- package/dist/data-table-explorer/hooks/useDataTableExplorerQueryState.js.map +1 -0
- package/dist/data-table-explorer/hooks/useDataTableExplorerSelection.d.ts +13 -0
- package/dist/data-table-explorer/hooks/useDataTableExplorerSelection.d.ts.map +1 -0
- package/dist/data-table-explorer/hooks/useDataTableExplorerSelection.js +40 -0
- package/dist/data-table-explorer/hooks/useDataTableExplorerSelection.js.map +1 -0
- package/dist/data-table-explorer/hooks/useDataTableExplorerStatus.d.ts +18 -0
- package/dist/data-table-explorer/hooks/useDataTableExplorerStatus.d.ts.map +1 -0
- package/dist/data-table-explorer/hooks/useDataTableExplorerStatus.js +23 -0
- package/dist/data-table-explorer/hooks/useDataTableExplorerStatus.js.map +1 -0
- package/dist/data-table-explorer/hooks/useDataTableExplorerStoreState.d.ts +27 -0
- package/dist/data-table-explorer/hooks/useDataTableExplorerStoreState.d.ts.map +1 -0
- package/dist/data-table-explorer/hooks/useDataTableExplorerStoreState.js +28 -0
- package/dist/data-table-explorer/hooks/useDataTableExplorerStoreState.js.map +1 -0
- package/dist/data-table-explorer/hooks/useDataTableExplorerVisiblePage.d.ts +15 -0
- package/dist/data-table-explorer/hooks/useDataTableExplorerVisiblePage.d.ts.map +1 -0
- package/dist/data-table-explorer/hooks/useDataTableExplorerVisiblePage.js +21 -0
- package/dist/data-table-explorer/hooks/useDataTableExplorerVisiblePage.js.map +1 -0
- package/dist/data-table-explorer/types.d.ts +16 -3
- 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 +20 -279
- 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/DataTableBlockHeader.d.ts +1 -0
- package/dist/data-table-explorer/worksheet/DataTableBlockHeader.d.ts.map +1 -1
- package/dist/data-table-explorer/worksheet/DataTableBlockHeader.js +4 -2
- package/dist/data-table-explorer/worksheet/DataTableBlockHeader.js.map +1 -1
- package/dist/data-table-explorer/worksheet/DataTableBlockRenderer.d.ts.map +1 -1
- package/dist/data-table-explorer/worksheet/DataTableBlockRenderer.js +4 -4
- package/dist/data-table-explorer/worksheet/DataTableBlockRenderer.js.map +1 -1
- package/dist/index.d.ts +55 -31
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +86 -26
- 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 +151 -25
- package/dist/useVgPlotChartRender.js.map +1 -1
- package/dist/useVgPlotChartRetention.d.ts +11 -0
- package/dist/useVgPlotChartRetention.d.ts.map +1 -1
- package/dist/useVgPlotChartRetention.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 -103
- package/dist/ai/ai.d.ts.map +0 -1
- package/dist/ai/ai.js +0 -419
- 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/charts/chart-types/bubble-chart/BubbleChartSettings.d.ts +0 -3
- package/dist/charts/chart-types/bubble-chart/BubbleChartSettings.d.ts.map +0 -1
- package/dist/charts/chart-types/bubble-chart/BubbleChartSettings.js.map +0 -1
- package/dist/charts/chart-types/bubble-chart/definition.d.ts +0 -4
- package/dist/charts/chart-types/bubble-chart/definition.d.ts.map +0 -1
- package/dist/charts/chart-types/bubble-chart/definition.js +0 -24
- package/dist/charts/chart-types/bubble-chart/definition.js.map +0 -1
- package/dist/charts/chart-types/bubble-chart/schema.d.ts.map +0 -1
- package/dist/charts/chart-types/bubble-chart/schema.js.map +0 -1
- package/dist/charts/chart-types/bubble-chart/spec.d.ts +0 -4
- package/dist/charts/chart-types/bubble-chart/spec.d.ts.map +0 -1
- package/dist/charts/chart-types/bubble-chart/spec.js +0 -31
- package/dist/charts/chart-types/bubble-chart/spec.js.map +0 -1
- package/dist/charts/chart-types/bubble-chart/tool.d.ts +0 -42
- package/dist/charts/chart-types/bubble-chart/tool.d.ts.map +0 -1
- package/dist/charts/chart-types/bubble-chart/tool.js +0 -66
- package/dist/charts/chart-types/bubble-chart/tool.js.map +0 -1
- package/dist/hooks/useDataTable.d.ts +0 -3
- package/dist/hooks/useDataTable.d.ts.map +0 -1
- package/dist/hooks/useDataTable.js +0 -28
- package/dist/hooks/useDataTable.js.map +0 -1
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"BlockCaptionEditor.js","sourceRoot":"","sources":["../../src/components/BlockCaptionEditor.tsx"],"names":[],"mappings":";AACA,OAAO,EAAC,EAAE,EAAE,YAAY,EAAC,MAAM,cAAc,CAAC;AAU9C;;;;;;;;GAQG;AACH,MAAM,CAAC,MAAM,kBAAkB,GAAgC,CAAC,EAC9D,KAAK,EACL,SAAS,EACT,WAAW,EACX,UAAU,EACV,QAAQ,GACT,EAAE,EAAE;IACH,OAAO,CACL,KAAC,YAAY,IACX,SAAS,EAAE,EAAE,CAAC,wCAAwC,EAAE,SAAS,CAAC,EAClE,KAAK,EAAE,KAAK,IAAI,EAAE,EAClB,WAAW,EAAE,WAAW,EACxB,UAAU,EAAE,UAAU,EACtB,QAAQ,EAAE,QAAQ,GAClB,CACH,CAAC;AACJ,CAAC,CAAC","sourcesContent":["import {FC} from 'react';\nimport {cn, EditableText} from '@sqlrooms/ui';\n\ntype BlockCaptionEditorProps = {\n className?: string;\n value?: string;\n placeholder?: string;\n isReadOnly?: boolean;\n onChange: (value: string) => void;\n};\n\n/**\n * Editable caption field for blocks (charts, queries, etc.).\n *\n * @param value - Current caption text\n * @param className - Optional CSS class name\n * @param placeholder - Placeholder text when empty\n * @param isReadOnly - Whether the caption is editable\n * @param onChange - Callback when caption changes\n */\nexport const BlockCaptionEditor: FC<BlockCaptionEditorProps> = ({\n value,\n className,\n placeholder,\n isReadOnly,\n onChange,\n}) => {\n return (\n <EditableText\n className={cn('h-8 min-w-0 flex-1 text-sm font-medium', className)}\n value={value ?? ''}\n placeholder={placeholder}\n isReadOnly={isReadOnly}\n onChange={onChange}\n />\n );\n};\n"]}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import type { FC } from 'react';
|
|
2
|
+
export type ColorSelectorProps = {
|
|
3
|
+
value: string;
|
|
4
|
+
items: readonly string[];
|
|
5
|
+
onChange: (color: string) => void;
|
|
6
|
+
};
|
|
7
|
+
/**
|
|
8
|
+
* Dropdown for selecting a color from the chart color palette.
|
|
9
|
+
* Displays colors as circular indicators.
|
|
10
|
+
*/
|
|
11
|
+
export declare const ColorSelector: FC<ColorSelectorProps>;
|
|
12
|
+
//# sourceMappingURL=ColorSelector.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ColorSelector.d.ts","sourceRoot":"","sources":["../../src/components/ColorSelector.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAC,EAAE,EAAC,MAAM,OAAO,CAAC;AAoB9B,MAAM,MAAM,kBAAkB,GAAG;IAC/B,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,SAAS,MAAM,EAAE,CAAC;IACzB,QAAQ,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;CACnC,CAAC;AAEF;;;GAGG;AACH,eAAO,MAAM,aAAa,EAAE,EAAE,CAAC,kBAAkB,CAsBhD,CAAC"}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import { jsx as _jsx, Fragment as _Fragment, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
|
+
import { Combobox, cn } from '@sqlrooms/ui';
|
|
3
|
+
const ColorSelectorItem = ({ color, className }) => {
|
|
4
|
+
return (_jsxs(_Fragment, { children: [_jsx("div", { className: cn('h-4 w-4 rounded-full border border-gray-300', className), style: { backgroundColor: color } }), _jsx("span", { className: "sr-only", children: color })] }));
|
|
5
|
+
};
|
|
6
|
+
/**
|
|
7
|
+
* Dropdown for selecting a color from the chart color palette.
|
|
8
|
+
* Displays colors as circular indicators.
|
|
9
|
+
*/
|
|
10
|
+
export const ColorSelector = ({ value, items, onChange, }) => {
|
|
11
|
+
return (_jsxs(Combobox, { value: value, onChange: onChange, children: [_jsx(Combobox.Trigger, { className: "w-auto gap-1.5 px-2 shadow-none [&>svg]:ml-0", ariaLabel: "Select color", children: _jsx(ColorSelectorItem, { color: value, className: "h-3.5 w-3.5 shrink-0" }) }), _jsx(Combobox.Content, { children: items.map((color) => (_jsx(Combobox.Item, { value: color, children: _jsx(ColorSelectorItem, { color: color }) }, color))) })] }));
|
|
12
|
+
};
|
|
13
|
+
//# sourceMappingURL=ColorSelector.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ColorSelector.js","sourceRoot":"","sources":["../../src/components/ColorSelector.tsx"],"names":[],"mappings":";AACA,OAAO,EAAC,QAAQ,EAAE,EAAE,EAAC,MAAM,cAAc,CAAC;AAO1C,MAAM,iBAAiB,GAA+B,CAAC,EAAC,KAAK,EAAE,SAAS,EAAC,EAAE,EAAE;IAC3E,OAAO,CACL,8BACE,cACE,SAAS,EAAE,EAAE,CAAC,6CAA6C,EAAE,SAAS,CAAC,EACvE,KAAK,EAAE,EAAC,eAAe,EAAE,KAAK,EAAC,GAC/B,EACF,eAAM,SAAS,EAAC,SAAS,YAAE,KAAK,GAAQ,IACvC,CACJ,CAAC;AACJ,CAAC,CAAC;AAQF;;;GAGG;AACH,MAAM,CAAC,MAAM,aAAa,GAA2B,CAAC,EACpD,KAAK,EACL,KAAK,EACL,QAAQ,GACT,EAAE,EAAE;IACH,OAAO,CACL,MAAC,QAAQ,IAAC,KAAK,EAAE,KAAK,EAAE,QAAQ,EAAE,QAAQ,aACxC,KAAC,QAAQ,CAAC,OAAO,IACf,SAAS,EAAC,8CAA8C,EACxD,SAAS,EAAC,cAAc,YAExB,KAAC,iBAAiB,IAAC,KAAK,EAAE,KAAK,EAAE,SAAS,EAAC,sBAAsB,GAAG,GACnD,EACnB,KAAC,QAAQ,CAAC,OAAO,cACd,KAAK,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,CACpB,KAAC,QAAQ,CAAC,IAAI,IAAa,KAAK,EAAE,KAAK,YACrC,KAAC,iBAAiB,IAAC,KAAK,EAAE,KAAK,GAAI,IADjB,KAAK,CAET,CACjB,CAAC,GACe,IACV,CACZ,CAAC;AACJ,CAAC,CAAC","sourcesContent":["import type {FC} from 'react';\nimport {Combobox, cn} from '@sqlrooms/ui';\n\ntype ColorSelectorItemProps = {\n color: string;\n className?: string;\n};\n\nconst ColorSelectorItem: FC<ColorSelectorItemProps> = ({color, className}) => {\n return (\n <>\n <div\n className={cn('h-4 w-4 rounded-full border border-gray-300', className)}\n style={{backgroundColor: color}}\n />\n <span className=\"sr-only\">{color}</span>\n </>\n );\n};\n\nexport type ColorSelectorProps = {\n value: string;\n items: readonly string[];\n onChange: (color: string) => void;\n};\n\n/**\n * Dropdown for selecting a color from the chart color palette.\n * Displays colors as circular indicators.\n */\nexport const ColorSelector: FC<ColorSelectorProps> = ({\n value,\n items,\n onChange,\n}) => {\n return (\n <Combobox value={value} onChange={onChange}>\n <Combobox.Trigger\n className=\"w-auto gap-1.5 px-2 shadow-none [&>svg]:ml-0\"\n ariaLabel=\"Select color\"\n >\n <ColorSelectorItem color={value} className=\"h-3.5 w-3.5 shrink-0\" />\n </Combobox.Trigger>\n <Combobox.Content>\n {items.map((color) => (\n <Combobox.Item key={color} value={color}>\n <ColorSelectorItem color={color} />\n </Combobox.Item>\n ))}\n </Combobox.Content>\n </Combobox>\n );\n};\n"]}
|
|
@@ -4,6 +4,7 @@ export interface ColumnSelectorProps {
|
|
|
4
4
|
value: string | undefined;
|
|
5
5
|
onChange: (value: string) => void;
|
|
6
6
|
placeholder?: string;
|
|
7
|
+
className?: string;
|
|
7
8
|
}
|
|
8
9
|
export declare const ColumnSelector: FC<ColumnSelectorProps> & {
|
|
9
10
|
Numeric: FC<Omit<ColumnSelectorProps, "types">>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ColumnSelector.d.ts","sourceRoot":"","sources":["../../src/components/ColumnSelector.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAC,KAAK,EAAE,EAAC,MAAM,OAAO,CAAC;AAS9B,MAAM,WAAW,mBAAmB;IAClC,KAAK,CAAC,EAAE,MAAM,EAAE,CAAC;IACjB,KAAK,EAAE,MAAM,GAAG,SAAS,CAAC;IAC1B,QAAQ,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;IAClC,WAAW,CAAC,EAAE,MAAM,CAAC;
|
|
1
|
+
{"version":3,"file":"ColumnSelector.d.ts","sourceRoot":"","sources":["../../src/components/ColumnSelector.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAC,KAAK,EAAE,EAAC,MAAM,OAAO,CAAC;AAS9B,MAAM,WAAW,mBAAmB;IAClC,KAAK,CAAC,EAAE,MAAM,EAAE,CAAC;IACjB,KAAK,EAAE,MAAM,GAAG,SAAS,CAAC;IAC1B,QAAQ,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;IAClC,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAgDD,eAAO,MAAM,cAAc;;;;CAIzB,CAAC"}
|
|
@@ -11,13 +11,13 @@ import { useColumnsContext } from './ColumnsContext';
|
|
|
11
11
|
* - `<ColumnSelector.Quantitative />` - numeric + temporal
|
|
12
12
|
* - `<ColumnSelector.Categorical />` - text/enum types
|
|
13
13
|
*/
|
|
14
|
-
const ColumnSelectorRoot = ({ types, value, onChange, placeholder, }) => {
|
|
14
|
+
const ColumnSelectorRoot = ({ types, value, onChange, placeholder, className, }) => {
|
|
15
15
|
const { columns } = useColumnsContext();
|
|
16
16
|
return (_jsx(FieldSelectorInput, { field: {
|
|
17
17
|
key: '',
|
|
18
18
|
label: '',
|
|
19
19
|
types,
|
|
20
|
-
}, value: value, columns: columns, onChange: onChange, placeholder: placeholder ?? 'Select column…' }));
|
|
20
|
+
}, value: value, columns: columns, onChange: onChange, placeholder: placeholder ?? 'Select column…', className: className }));
|
|
21
21
|
};
|
|
22
22
|
const Numeric = (props) => (_jsx(ColumnSelectorRoot, { ...props, types: NUMERIC_COLUMN_TYPES }));
|
|
23
23
|
const Quantitative = (props) => (_jsx(ColumnSelectorRoot, { ...props, types: QUANTITATIVE_COLUMN_TYPES }));
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ColumnSelector.js","sourceRoot":"","sources":["../../src/components/ColumnSelector.tsx"],"names":[],"mappings":";AACA,OAAO,EAAC,kBAAkB,EAAC,MAAM,sBAAsB,CAAC;AACxD,OAAO,EACL,oBAAoB,EACpB,yBAAyB,EACzB,wBAAwB,GACzB,MAAM,uBAAuB,CAAC;AAC/B,OAAO,EAAC,iBAAiB,EAAC,MAAM,kBAAkB,CAAC;
|
|
1
|
+
{"version":3,"file":"ColumnSelector.js","sourceRoot":"","sources":["../../src/components/ColumnSelector.tsx"],"names":[],"mappings":";AACA,OAAO,EAAC,kBAAkB,EAAC,MAAM,sBAAsB,CAAC;AACxD,OAAO,EACL,oBAAoB,EACpB,yBAAyB,EACzB,wBAAwB,GACzB,MAAM,uBAAuB,CAAC;AAC/B,OAAO,EAAC,iBAAiB,EAAC,MAAM,kBAAkB,CAAC;AAUnD;;;;;;;;GAQG;AACH,MAAM,kBAAkB,GAA4B,CAAC,EACnD,KAAK,EACL,KAAK,EACL,QAAQ,EACR,WAAW,EACX,SAAS,GACV,EAAE,EAAE;IACH,MAAM,EAAC,OAAO,EAAC,GAAG,iBAAiB,EAAE,CAAC;IAEtC,OAAO,CACL,KAAC,kBAAkB,IACjB,KAAK,EAAE;YACL,GAAG,EAAE,EAAE;YACP,KAAK,EAAE,EAAE;YACT,KAAK;SACN,EACD,KAAK,EAAE,KAAK,EACZ,OAAO,EAAE,OAAO,EAChB,QAAQ,EAAE,QAAQ,EAClB,WAAW,EAAE,WAAW,IAAI,gBAAgB,EAC5C,SAAS,EAAE,SAAS,GACpB,CACH,CAAC;AACJ,CAAC,CAAC;AAEF,MAAM,OAAO,GAA2C,CAAC,KAAK,EAAE,EAAE,CAAC,CACjE,KAAC,kBAAkB,OAAK,KAAK,EAAE,KAAK,EAAE,oBAAoB,GAAI,CAC/D,CAAC;AAEF,MAAM,YAAY,GAA2C,CAAC,KAAK,EAAE,EAAE,CAAC,CACtE,KAAC,kBAAkB,OAAK,KAAK,EAAE,KAAK,EAAE,yBAAyB,GAAI,CACpE,CAAC;AAEF,MAAM,WAAW,GAA2C,CAAC,KAAK,EAAE,EAAE,CAAC,CACrE,KAAC,kBAAkB,OAAK,KAAK,EAAE,KAAK,EAAE,wBAAwB,GAAI,CACnE,CAAC;AAEF,MAAM,CAAC,MAAM,cAAc,GAAG,MAAM,CAAC,MAAM,CAAC,kBAAkB,EAAE;IAC9D,OAAO;IACP,YAAY;IACZ,WAAW;CACZ,CAAC,CAAC","sourcesContent":["import {type FC} from 'react';\nimport {FieldSelectorInput} from './FieldSelectorInput';\nimport {\n NUMERIC_COLUMN_TYPES,\n QUANTITATIVE_COLUMN_TYPES,\n CATEGORICAL_COLUMN_TYPES,\n} from '../column-types-utils';\nimport {useColumnsContext} from './ColumnsContext';\n\nexport interface ColumnSelectorProps {\n types?: string[];\n value: string | undefined;\n onChange: (value: string) => void;\n placeholder?: string;\n className?: string;\n}\n\n/**\n * Simplified wrapper around FieldSelectorInput for selecting a table column.\n * Removes the field prop requirement for easier composition.\n *\n * Can be used as:\n * - `<ColumnSelector.Numeric />` - numeric types only\n * - `<ColumnSelector.Quantitative />` - numeric + temporal\n * - `<ColumnSelector.Categorical />` - text/enum types\n */\nconst ColumnSelectorRoot: FC<ColumnSelectorProps> = ({\n types,\n value,\n onChange,\n placeholder,\n className,\n}) => {\n const {columns} = useColumnsContext();\n\n return (\n <FieldSelectorInput\n field={{\n key: '',\n label: '',\n types,\n }}\n value={value}\n columns={columns}\n onChange={onChange}\n placeholder={placeholder ?? 'Select column…'}\n className={className}\n />\n );\n};\n\nconst Numeric: FC<Omit<ColumnSelectorProps, 'types'>> = (props) => (\n <ColumnSelectorRoot {...props} types={NUMERIC_COLUMN_TYPES} />\n);\n\nconst Quantitative: FC<Omit<ColumnSelectorProps, 'types'>> = (props) => (\n <ColumnSelectorRoot {...props} types={QUANTITATIVE_COLUMN_TYPES} />\n);\n\nconst Categorical: FC<Omit<ColumnSelectorProps, 'types'>> = (props) => (\n <ColumnSelectorRoot {...props} types={CATEGORICAL_COLUMN_TYPES} />\n);\n\nexport const ColumnSelector = Object.assign(ColumnSelectorRoot, {\n Numeric,\n Quantitative,\n Categorical,\n});\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"FieldSelectorInput.d.ts","sourceRoot":"","sources":["../../src/components/FieldSelectorInput.tsx"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"FieldSelectorInput.d.ts","sourceRoot":"","sources":["../../src/components/FieldSelectorInput.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EACL,kBAAkB,EAClB,iBAAiB,EAClB,MAAM,kCAAkC,CAAC;AAG1C,MAAM,WAAW,uBAAuB;IACtC,KAAK,EAAE,iBAAiB,CAAC;IACzB,OAAO,EAAE,kBAAkB,EAAE,CAAC;IAC9B,KAAK,EAAE,MAAM,GAAG,SAAS,CAAC;IAC1B,QAAQ,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;IAClC,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED;;GAEG;AACH,eAAO,MAAM,kBAAkB,EAAE,KAAK,CAAC,EAAE,CAAC,uBAAuB,CA+DhE,CAAC"}
|
|
@@ -1,19 +1,14 @@
|
|
|
1
1
|
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
|
-
import {
|
|
3
|
-
import { Check, ChevronsUpDown } from 'lucide-react';
|
|
4
|
-
import { useState } from 'react';
|
|
2
|
+
import { Combobox, cn } from '@sqlrooms/ui';
|
|
5
3
|
/**
|
|
6
4
|
* A searchable dropdown selector for choosing a table column for a chart builder field.
|
|
7
5
|
*/
|
|
8
|
-
export const FieldSelectorInput = ({ field, columns, value, onChange, placeholder = 'Select...', }) => {
|
|
9
|
-
const [open, setOpen] = useState(false);
|
|
6
|
+
export const FieldSelectorInput = ({ field, columns, value, onChange, className, placeholder = 'Select...', }) => {
|
|
10
7
|
const filteredColumns = field.types
|
|
11
8
|
? columns.filter((col) => field.types.some((t) => col.type.toUpperCase() === t.toUpperCase()))
|
|
12
9
|
: columns;
|
|
13
10
|
const selectedColumn = filteredColumns.find((col) => col.name === value);
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
setOpen(false);
|
|
17
|
-
}, children: [_jsx(Check, { className: cn('mr-2 h-3.5 w-3.5 shrink-0', value === col.name ? 'opacity-100' : 'opacity-0') }), _jsx("span", { className: "truncate text-xs", children: col.name }), _jsx("span", { className: "text-muted-foreground ml-auto text-[8px]", children: col.type })] }, col.name))) })] })] }) })] }) }));
|
|
11
|
+
const isMissing = Boolean(value && !selectedColumn);
|
|
12
|
+
return (_jsx("div", { className: cn('@container flex flex-col gap-1', className), children: _jsxs(Combobox, { value: value ?? '', onChange: onChange, children: [_jsx(Combobox.Trigger, { className: cn('w-full', isMissing && 'border-destructive/60 bg-destructive/5'), children: selectedColumn ? (_jsxs("span", { className: "flex min-w-0 items-baseline gap-1", children: [_jsx("span", { className: "truncate text-xs", children: selectedColumn.name }), _jsx("span", { className: "text-muted-foreground hidden overflow-hidden text-[8px] whitespace-nowrap @[180px]:inline", children: selectedColumn.type })] })) : value ? (_jsxs("span", { className: "flex min-w-0 items-baseline gap-1", children: [_jsx("span", { className: "text-destructive truncate text-xs", children: value }), _jsx("span", { className: "text-destructive/60 hidden text-[8px] @[180px]:inline", children: "missing" })] })) : (_jsx("span", { className: "text-muted-foreground truncate text-xs", children: placeholder })) }), _jsx(Combobox.Content, { searchable: true, searchPlaceholder: "Search columns...", emptyMessage: "No matching column.", children: filteredColumns.map((col) => (_jsxs(Combobox.Item, { value: col.name, children: [_jsx("span", { className: "truncate text-xs", children: col.name }), _jsx("span", { className: "text-muted-foreground ml-auto text-[8px]", children: col.type })] }, col.name))) })] }) }));
|
|
18
13
|
};
|
|
19
14
|
//# sourceMappingURL=FieldSelectorInput.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"FieldSelectorInput.js","sourceRoot":"","sources":["../../src/components/FieldSelectorInput.tsx"],"names":[],"mappings":";
|
|
1
|
+
{"version":3,"file":"FieldSelectorInput.js","sourceRoot":"","sources":["../../src/components/FieldSelectorInput.tsx"],"names":[],"mappings":";AAKA,OAAO,EAAC,QAAQ,EAAE,EAAE,EAAC,MAAM,cAAc,CAAC;AAW1C;;GAEG;AACH,MAAM,CAAC,MAAM,kBAAkB,GAAsC,CAAC,EACpE,KAAK,EACL,OAAO,EACP,KAAK,EACL,QAAQ,EACR,SAAS,EACT,WAAW,GAAG,WAAW,GAC1B,EAAE,EAAE;IACH,MAAM,eAAe,GAAG,KAAK,CAAC,KAAK;QACjC,CAAC,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,EAAE,CACrB,KAAK,CAAC,KAAM,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,IAAI,CAAC,WAAW,EAAE,KAAK,CAAC,CAAC,WAAW,EAAE,CAAC,CACrE;QACH,CAAC,CAAC,OAAO,CAAC;IAEZ,MAAM,cAAc,GAAG,eAAe,CAAC,IAAI,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,IAAI,KAAK,KAAK,CAAC,CAAC;IACzE,MAAM,SAAS,GAAG,OAAO,CAAC,KAAK,IAAI,CAAC,cAAc,CAAC,CAAC;IAEpD,OAAO,CACL,cAAK,SAAS,EAAE,EAAE,CAAC,gCAAgC,EAAE,SAAS,CAAC,YAC7D,MAAC,QAAQ,IAAC,KAAK,EAAE,KAAK,IAAI,EAAE,EAAE,QAAQ,EAAE,QAAQ,aAC9C,KAAC,QAAQ,CAAC,OAAO,IACf,SAAS,EAAE,EAAE,CACX,QAAQ,EACR,SAAS,IAAI,wCAAwC,CACtD,YAEA,cAAc,CAAC,CAAC,CAAC,CAChB,gBAAM,SAAS,EAAC,mCAAmC,aACjD,eAAM,SAAS,EAAC,kBAAkB,YAAE,cAAc,CAAC,IAAI,GAAQ,EAC/D,eAAM,SAAS,EAAC,2FAA2F,YACxG,cAAc,CAAC,IAAI,GACf,IACF,CACR,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CACV,gBAAM,SAAS,EAAC,mCAAmC,aACjD,eAAM,SAAS,EAAC,mCAAmC,YAAE,KAAK,GAAQ,EAClE,eAAM,SAAS,EAAC,uDAAuD,wBAEhE,IACF,CACR,CAAC,CAAC,CAAC,CACF,eAAM,SAAS,EAAC,wCAAwC,YACrD,WAAW,GACP,CACR,GACgB,EACnB,KAAC,QAAQ,CAAC,OAAO,IACf,UAAU,QACV,iBAAiB,EAAC,mBAAmB,EACrC,YAAY,EAAC,qBAAqB,YAEjC,eAAe,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,CAC5B,MAAC,QAAQ,CAAC,IAAI,IAAgB,KAAK,EAAE,GAAG,CAAC,IAAI,aAC3C,eAAM,SAAS,EAAC,kBAAkB,YAAE,GAAG,CAAC,IAAI,GAAQ,EACpD,eAAM,SAAS,EAAC,0CAA0C,YACvD,GAAG,CAAC,IAAI,GACJ,KAJW,GAAG,CAAC,IAAI,CAKZ,CACjB,CAAC,GACe,IACV,GACP,CACP,CAAC;AACJ,CAAC,CAAC","sourcesContent":["import React from 'react';\nimport {\n ChartBuilderColumn,\n ChartBuilderField,\n} from '../charts/chart-types/base-types';\nimport {Combobox, cn} from '@sqlrooms/ui';\n\nexport interface FieldSelectorInputProps {\n field: ChartBuilderField;\n columns: ChartBuilderColumn[];\n value: string | undefined;\n onChange: (value: string) => void;\n placeholder?: string;\n className?: string;\n}\n\n/**\n * A searchable dropdown selector for choosing a table column for a chart builder field.\n */\nexport const FieldSelectorInput: React.FC<FieldSelectorInputProps> = ({\n field,\n columns,\n value,\n onChange,\n className,\n placeholder = 'Select...',\n}) => {\n const filteredColumns = field.types\n ? columns.filter((col) =>\n field.types!.some((t) => col.type.toUpperCase() === t.toUpperCase()),\n )\n : columns;\n\n const selectedColumn = filteredColumns.find((col) => col.name === value);\n const isMissing = Boolean(value && !selectedColumn);\n\n return (\n <div className={cn('@container flex flex-col gap-1', className)}>\n <Combobox value={value ?? ''} onChange={onChange}>\n <Combobox.Trigger\n className={cn(\n 'w-full',\n isMissing && 'border-destructive/60 bg-destructive/5',\n )}\n >\n {selectedColumn ? (\n <span className=\"flex min-w-0 items-baseline gap-1\">\n <span className=\"truncate text-xs\">{selectedColumn.name}</span>\n <span className=\"text-muted-foreground hidden overflow-hidden text-[8px] whitespace-nowrap @[180px]:inline\">\n {selectedColumn.type}\n </span>\n </span>\n ) : value ? (\n <span className=\"flex min-w-0 items-baseline gap-1\">\n <span className=\"text-destructive truncate text-xs\">{value}</span>\n <span className=\"text-destructive/60 hidden text-[8px] @[180px]:inline\">\n missing\n </span>\n </span>\n ) : (\n <span className=\"text-muted-foreground truncate text-xs\">\n {placeholder}\n </span>\n )}\n </Combobox.Trigger>\n <Combobox.Content\n searchable\n searchPlaceholder=\"Search columns...\"\n emptyMessage=\"No matching column.\"\n >\n {filteredColumns.map((col) => (\n <Combobox.Item key={col.name} value={col.name}>\n <span className=\"truncate text-xs\">{col.name}</span>\n <span className=\"text-muted-foreground ml-auto text-[8px]\">\n {col.type}\n </span>\n </Combobox.Item>\n ))}\n </Combobox.Content>\n </Combobox>\n </div>\n );\n};\n"]}
|
|
@@ -1,14 +1,17 @@
|
|
|
1
1
|
import { type FC } from 'react';
|
|
2
2
|
import type { YFieldConfig } from '../charts/chart-types/line-chart/schema';
|
|
3
|
+
type RenderItemFunction = (fieldConfig: YFieldConfig, index: number, handleUpdate: (index: number, updates: Partial<YFieldConfig>) => void) => React.ReactNode;
|
|
3
4
|
export interface MultiFieldSelectorProps {
|
|
4
5
|
types?: string[];
|
|
5
6
|
value: YFieldConfig[];
|
|
6
7
|
onChange: (value: YFieldConfig[]) => void;
|
|
7
|
-
|
|
8
|
+
onAdd: (fieldName: string) => void;
|
|
9
|
+
renderItem?: RenderItemFunction;
|
|
8
10
|
}
|
|
9
11
|
export declare const MultiFieldSelector: FC<MultiFieldSelectorProps> & {
|
|
10
12
|
Numeric: FC<Omit<MultiFieldSelectorProps, "types">>;
|
|
11
13
|
Quantitative: FC<Omit<MultiFieldSelectorProps, "types">>;
|
|
12
14
|
Categorical: FC<Omit<MultiFieldSelectorProps, "types">>;
|
|
13
15
|
};
|
|
16
|
+
export {};
|
|
14
17
|
//# sourceMappingURL=MultiFieldSelector.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"MultiFieldSelector.d.ts","sourceRoot":"","sources":["../../src/components/MultiFieldSelector.tsx"],"names":[],"mappings":"AAEA,OAAO,EAAuB,KAAK,EAAE,EAAC,MAAM,OAAO,CAAC;
|
|
1
|
+
{"version":3,"file":"MultiFieldSelector.d.ts","sourceRoot":"","sources":["../../src/components/MultiFieldSelector.tsx"],"names":[],"mappings":"AAEA,OAAO,EAAuB,KAAK,EAAE,EAAC,MAAM,OAAO,CAAC;AAQpD,OAAO,KAAK,EAAC,YAAY,EAAC,MAAM,yCAAyC,CAAC;AAE1E,KAAK,kBAAkB,GAAG,CACxB,WAAW,EAAE,YAAY,EACzB,KAAK,EAAE,MAAM,EACb,YAAY,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,CAAC,YAAY,CAAC,KAAK,IAAI,KAClE,KAAK,CAAC,SAAS,CAAC;AAErB,MAAM,WAAW,uBAAuB;IACtC,KAAK,CAAC,EAAE,MAAM,EAAE,CAAC;IACjB,KAAK,EAAE,YAAY,EAAE,CAAC;IACtB,QAAQ,EAAE,CAAC,KAAK,EAAE,YAAY,EAAE,KAAK,IAAI,CAAC;IAC1C,KAAK,EAAE,CAAC,SAAS,EAAE,MAAM,KAAK,IAAI,CAAC;IACnC,UAAU,CAAC,EAAE,kBAAkB,CAAC;CACjC;AAmGD,eAAO,MAAM,kBAAkB;;;;CAI7B,CAAC"}
|
|
@@ -3,7 +3,6 @@ import { Button } from '@sqlrooms/ui';
|
|
|
3
3
|
import { Trash2 } from 'lucide-react';
|
|
4
4
|
import { useCallback, useMemo } from 'react';
|
|
5
5
|
import { ColumnSelector } from './ColumnSelector';
|
|
6
|
-
import { AggregationSelector } from './AggregationSelector';
|
|
7
6
|
import { ColumnsProvider, useColumnsContext } from './ColumnsContext';
|
|
8
7
|
import { NUMERIC_COLUMN_TYPES, QUANTITATIVE_COLUMN_TYPES, CATEGORICAL_COLUMN_TYPES, } from '../column-types-utils';
|
|
9
8
|
/**
|
|
@@ -16,7 +15,7 @@ import { NUMERIC_COLUMN_TYPES, QUANTITATIVE_COLUMN_TYPES, CATEGORICAL_COLUMN_TYP
|
|
|
16
15
|
* - `<MultiFieldSelector.Quantitative />` - numeric + temporal
|
|
17
16
|
* - `<MultiFieldSelector.Categorical />` - text/enum types
|
|
18
17
|
*/
|
|
19
|
-
const MultiFieldSelectorRoot = ({ types, value, onChange,
|
|
18
|
+
const MultiFieldSelectorRoot = ({ types, value, onChange, onAdd, renderItem, }) => {
|
|
20
19
|
const { columns } = useColumnsContext();
|
|
21
20
|
const selectedFieldNames = useMemo(() => value.map((v) => v.field), [value]);
|
|
22
21
|
const availableColumns = useMemo(() => columns.filter((col) => !selectedFieldNames.includes(col.name)), [columns, selectedFieldNames]);
|
|
@@ -28,19 +27,11 @@ const MultiFieldSelectorRoot = ({ types, value, onChange, showAggregation = fals
|
|
|
28
27
|
const handleRemove = useCallback((index) => {
|
|
29
28
|
onChange(value.filter((_, i) => i !== index));
|
|
30
29
|
}, [value, onChange]);
|
|
31
|
-
const handleAdd = useCallback((fieldName) => {
|
|
32
|
-
if (fieldName) {
|
|
33
|
-
onChange([...value, { field: fieldName, aggregate: 'sum' }]);
|
|
34
|
-
}
|
|
35
|
-
}, [value, onChange]);
|
|
36
30
|
return (_jsxs("div", { className: "space-y-1", children: [value.map((fieldConfig, index) => {
|
|
37
|
-
const aggregate = fieldConfig.aggregate || 'sum';
|
|
38
31
|
return (_jsxs("div", { className: "grid items-end gap-2", style: {
|
|
39
|
-
gridTemplateColumns:
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
}, children: [_jsx(ColumnSelector, { types: types, value: fieldConfig.field, onChange: (newField) => handleUpdate(index, { field: newField }) }), showAggregation && (_jsx(AggregationSelector, { value: aggregate, onChange: (agg) => handleUpdate(index, { aggregate: agg }) })), _jsx(Button, { variant: "ghost", size: "icon", onClick: () => handleRemove(index), className: "h-8 w-8 shrink-0", children: _jsx(Trash2, { className: "text-destructive h-4 w-4" }) })] }, fieldConfig.field));
|
|
43
|
-
}), _jsx(ColumnsProvider, { columns: availableColumns, children: _jsx(ColumnSelector, { types: types, value: undefined, onChange: handleAdd, placeholder: "Select field..." }) })] }));
|
|
32
|
+
gridTemplateColumns: 'minmax(120px, 1fr) auto 32px',
|
|
33
|
+
}, children: [_jsx(ColumnSelector, { types: types, value: fieldConfig.field, onChange: (newField) => handleUpdate(index, { field: newField }) }), renderItem && renderItem(fieldConfig, index, handleUpdate), _jsx(Button, { variant: "ghost", size: "icon", onClick: () => handleRemove(index), className: "h-8 w-8 shrink-0", children: _jsx(Trash2, { className: "text-destructive h-4 w-4" }) })] }, fieldConfig.field));
|
|
34
|
+
}), _jsx(ColumnsProvider, { columns: availableColumns, children: _jsx(ColumnSelector, { types: types, value: undefined, onChange: onAdd, placeholder: "Select field..." }) })] }));
|
|
44
35
|
};
|
|
45
36
|
const Numeric = (props) => (_jsx(MultiFieldSelectorRoot, { ...props, types: NUMERIC_COLUMN_TYPES }));
|
|
46
37
|
const Quantitative = (props) => (_jsx(MultiFieldSelectorRoot, { ...props, types: QUANTITATIVE_COLUMN_TYPES }));
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"MultiFieldSelector.js","sourceRoot":"","sources":["../../src/components/MultiFieldSelector.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAC,MAAM,EAAC,MAAM,cAAc,CAAC;AACpC,OAAO,EAAC,MAAM,EAAC,MAAM,cAAc,CAAC;AACpC,OAAO,EAAC,WAAW,EAAE,OAAO,EAAU,MAAM,OAAO,CAAC;AACpD,OAAO,EAAC,cAAc,EAAC,MAAM,kBAAkB,CAAC;AAChD,OAAO,EAAC,
|
|
1
|
+
{"version":3,"file":"MultiFieldSelector.js","sourceRoot":"","sources":["../../src/components/MultiFieldSelector.tsx"],"names":[],"mappings":"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","sourcesContent":["import {Button} from '@sqlrooms/ui';\nimport {Trash2} from 'lucide-react';\nimport {useCallback, useMemo, type FC} from 'react';\nimport {ColumnSelector} from './ColumnSelector';\nimport {ColumnsProvider, useColumnsContext} from './ColumnsContext';\nimport {\n NUMERIC_COLUMN_TYPES,\n QUANTITATIVE_COLUMN_TYPES,\n CATEGORICAL_COLUMN_TYPES,\n} from '../column-types-utils';\nimport type {YFieldConfig} from '../charts/chart-types/line-chart/schema';\n\ntype RenderItemFunction = (\n fieldConfig: YFieldConfig,\n index: number,\n handleUpdate: (index: number, updates: Partial<YFieldConfig>) => void,\n) => React.ReactNode;\n\nexport interface MultiFieldSelectorProps {\n types?: string[];\n value: YFieldConfig[];\n onChange: (value: YFieldConfig[]) => void;\n onAdd: (fieldName: string) => void;\n renderItem?: RenderItemFunction;\n}\n\n/**\n * Manages an array of field configurations with add/update/remove logic.\n * Emits the full updated array on every change.\n *\n * Can be used as:\n * - `<MultiFieldSelector types={...} />` - custom types\n * - `<MultiFieldSelector.Numeric />` - numeric types only\n * - `<MultiFieldSelector.Quantitative />` - numeric + temporal\n * - `<MultiFieldSelector.Categorical />` - text/enum types\n */\nconst MultiFieldSelectorRoot: FC<MultiFieldSelectorProps> = ({\n types,\n value,\n onChange,\n onAdd,\n renderItem,\n}) => {\n const {columns} = useColumnsContext();\n\n const selectedFieldNames = useMemo(() => value.map((v) => v.field), [value]);\n\n const availableColumns = useMemo(\n () => columns.filter((col) => !selectedFieldNames.includes(col.name)),\n [columns, selectedFieldNames],\n );\n\n const handleUpdate = useCallback(\n (index: number, updates: Partial<(typeof value)[0]>) => {\n const updated = [...value];\n updated[index] = {...updated[index]!, ...updates};\n onChange(updated);\n },\n [value, onChange],\n );\n\n const handleRemove = useCallback(\n (index: number) => {\n onChange(value.filter((_, i) => i !== index));\n },\n [value, onChange],\n );\n\n return (\n <div className=\"space-y-1\">\n {value.map((fieldConfig, index) => {\n return (\n <div\n key={fieldConfig.field}\n className=\"grid items-end gap-2\"\n style={{\n gridTemplateColumns: 'minmax(120px, 1fr) auto 32px',\n }}\n >\n <ColumnSelector\n types={types}\n value={fieldConfig.field}\n onChange={(newField) => handleUpdate(index, {field: newField})}\n />\n\n {renderItem && renderItem(fieldConfig, index, handleUpdate)}\n\n <Button\n variant=\"ghost\"\n size=\"icon\"\n onClick={() => handleRemove(index)}\n className=\"h-8 w-8 shrink-0\"\n >\n <Trash2 className=\"text-destructive h-4 w-4\" />\n </Button>\n </div>\n );\n })}\n\n <ColumnsProvider columns={availableColumns}>\n <ColumnSelector\n types={types}\n value={undefined}\n onChange={onAdd}\n placeholder=\"Select field...\"\n />\n </ColumnsProvider>\n </div>\n );\n};\n\nconst Numeric: FC<Omit<MultiFieldSelectorProps, 'types'>> = (props) => (\n <MultiFieldSelectorRoot {...props} types={NUMERIC_COLUMN_TYPES} />\n);\n\nconst Quantitative: FC<Omit<MultiFieldSelectorProps, 'types'>> = (props) => (\n <MultiFieldSelectorRoot {...props} types={QUANTITATIVE_COLUMN_TYPES} />\n);\n\nconst Categorical: FC<Omit<MultiFieldSelectorProps, 'types'>> = (props) => (\n <MultiFieldSelectorRoot {...props} types={CATEGORICAL_COLUMN_TYPES} />\n);\n\nexport const MultiFieldSelector = Object.assign(MultiFieldSelectorRoot, {\n Numeric,\n Quantitative,\n Categorical,\n});\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"TemporalGranularitySelector.d.ts","sourceRoot":"","sources":["../../src/components/TemporalGranularitySelector.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAC,KAAK,EAAE,
|
|
1
|
+
{"version":3,"file":"TemporalGranularitySelector.d.ts","sourceRoot":"","sources":["../../src/components/TemporalGranularitySelector.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAC,KAAK,EAAE,EAAoB,MAAM,OAAO,CAAC;AAGjD,OAAO,KAAK,EAAC,gBAAgB,EAAC,MAAM,YAAY,CAAC;AAEjD,UAAU,gCAAgC;IACxC,KAAK,CAAC,EAAE,gBAAgB,CAAC;IACzB,QAAQ,EAAE,CAAC,KAAK,CAAC,EAAE,gBAAgB,KAAK,IAAI,CAAC;IAC7C,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAsBD,eAAO,MAAM,2BAA2B,EAAE,EAAE,CAAC,gCAAgC,CAkDzE,CAAC"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
|
-
import { memo } from 'react';
|
|
3
|
-
import {
|
|
2
|
+
import { memo, useCallback } from 'react';
|
|
3
|
+
import { Combobox } from '@sqlrooms/ui';
|
|
4
4
|
import { TEMPORAL_COLUMN_TYPES } from '../column-types-utils';
|
|
5
5
|
const TEMPORAL_INTERVALS = [
|
|
6
6
|
{ value: 'year', label: 'Year' },
|
|
@@ -19,19 +19,23 @@ function isTemporalField(fieldType) {
|
|
|
19
19
|
return TEMPORAL_COLUMN_TYPES.some((type) => fieldType.toUpperCase() === type.toUpperCase());
|
|
20
20
|
}
|
|
21
21
|
export const TemporalGranularitySelector = memo(({ value, onChange, xFieldType }) => {
|
|
22
|
-
//
|
|
23
|
-
|
|
24
|
-
return null;
|
|
25
|
-
}
|
|
26
|
-
const handleValueChange = (newValue) => {
|
|
22
|
+
// Custom onChange wrapper to handle undefined values
|
|
23
|
+
const handleChange = useCallback((newValue) => {
|
|
27
24
|
if (newValue === NONE) {
|
|
28
25
|
onChange(undefined);
|
|
29
26
|
}
|
|
30
27
|
else {
|
|
31
28
|
onChange(newValue);
|
|
32
29
|
}
|
|
33
|
-
};
|
|
34
|
-
|
|
30
|
+
}, [onChange]);
|
|
31
|
+
// Only render if X field is temporal
|
|
32
|
+
if (!isTemporalField(xFieldType)) {
|
|
33
|
+
return null;
|
|
34
|
+
}
|
|
35
|
+
const selectedInterval = TEMPORAL_INTERVALS.find((interval) => interval.value === value);
|
|
36
|
+
const displayValue = selectedInterval?.label ?? 'None';
|
|
37
|
+
const currentValue = value || NONE;
|
|
38
|
+
return (_jsxs(Combobox, { value: currentValue, onChange: handleChange, currentValue: currentValue, children: [_jsx(Combobox.Trigger, { className: "shadow-none", children: _jsx("span", { children: displayValue }) }), _jsxs(Combobox.Content, { children: [_jsx(Combobox.Item, { value: NONE, children: _jsx("span", { className: "text-xs", children: "None" }) }), TEMPORAL_INTERVALS.map((interval) => (_jsx(Combobox.Item, { value: interval.value, isSelected: value === interval.value, children: _jsx("span", { className: "text-xs", children: interval.label }) }, interval.value)))] })] }));
|
|
35
39
|
});
|
|
36
40
|
TemporalGranularitySelector.displayName = 'TemporalGranularitySelector';
|
|
37
41
|
//# sourceMappingURL=TemporalGranularitySelector.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"TemporalGranularitySelector.js","sourceRoot":"","sources":["../../src/components/TemporalGranularitySelector.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAU,IAAI,EAAC,MAAM,OAAO,CAAC;
|
|
1
|
+
{"version":3,"file":"TemporalGranularitySelector.js","sourceRoot":"","sources":["../../src/components/TemporalGranularitySelector.tsx"],"names":[],"mappings":"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","sourcesContent":["import {type FC, memo, useCallback} from 'react';\nimport {Combobox} from '@sqlrooms/ui';\nimport {TEMPORAL_COLUMN_TYPES} from '../column-types-utils';\nimport type {TemporalInterval} from '../schemas';\n\ninterface TemporalGranularitySelectorProps {\n value?: TemporalInterval;\n onChange: (value?: TemporalInterval) => void;\n xFieldType?: string;\n}\n\nconst TEMPORAL_INTERVALS = [\n {value: 'year', label: 'Year'},\n {value: 'quarter', label: 'Quarter'},\n {value: 'month', label: 'Month'},\n {value: 'week', label: 'Week'},\n {value: 'day', label: 'Day'},\n {value: 'hour', label: 'Hour'},\n {value: 'minute', label: 'Minute'},\n {value: 'second', label: 'Second'},\n] as const;\n\nconst NONE = 'none';\n\nfunction isTemporalField(fieldType?: string): boolean {\n if (!fieldType) return false;\n return TEMPORAL_COLUMN_TYPES.some(\n (type) => fieldType.toUpperCase() === type.toUpperCase(),\n );\n}\n\nexport const TemporalGranularitySelector: FC<TemporalGranularitySelectorProps> =\n memo(({value, onChange, xFieldType}) => {\n // Custom onChange wrapper to handle undefined values\n const handleChange = useCallback(\n (newValue: string) => {\n if (newValue === NONE) {\n onChange(undefined);\n } else {\n onChange(newValue as TemporalInterval);\n }\n },\n [onChange],\n );\n\n // Only render if X field is temporal\n if (!isTemporalField(xFieldType)) {\n return null;\n }\n\n const selectedInterval = TEMPORAL_INTERVALS.find(\n (interval) => interval.value === value,\n );\n const displayValue = selectedInterval?.label ?? 'None';\n const currentValue = value || NONE;\n\n return (\n <Combobox\n value={currentValue}\n onChange={handleChange}\n currentValue={currentValue}\n >\n <Combobox.Trigger className=\"shadow-none\">\n <span>{displayValue}</span>\n </Combobox.Trigger>\n <Combobox.Content>\n <Combobox.Item value={NONE}>\n <span className=\"text-xs\">None</span>\n </Combobox.Item>\n {TEMPORAL_INTERVALS.map((interval) => (\n <Combobox.Item\n key={interval.value}\n value={interval.value}\n isSelected={value === interval.value}\n >\n <span className=\"text-xs\">{interval.label}</span>\n </Combobox.Item>\n ))}\n </Combobox.Content>\n </Combobox>\n );\n });\n\nTemporalGranularitySelector.displayName = 'TemporalGranularitySelector';\n"]}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"chart-colors.d.ts","sourceRoot":"","sources":["../../src/constants/chart-colors.ts"],"names":[],"mappings":"AAGA,eAAO,MAAM,oBAAoB,mBAAuC,CAAC;AACzE,eAAO,MAAM,4BAA4B,QAA2B,CAAC"}
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
import { categoricalSchemeColors } from '@sqlrooms/color-scales';
|
|
2
|
+
// Chart color palette (default palette colors)
|
|
3
|
+
export const DEFAULT_CHART_COLORS = categoricalSchemeColors.Observable10;
|
|
4
|
+
export const DEFAULT_CHART_FALLBACK_COLOR = DEFAULT_CHART_COLORS[0];
|
|
5
|
+
//# sourceMappingURL=chart-colors.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"chart-colors.js","sourceRoot":"","sources":["../../src/constants/chart-colors.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,uBAAuB,EAAC,MAAM,wBAAwB,CAAC;AAE/D,+CAA+C;AAC/C,MAAM,CAAC,MAAM,oBAAoB,GAAG,uBAAuB,CAAC,YAAY,CAAC;AACzE,MAAM,CAAC,MAAM,4BAA4B,GAAG,oBAAoB,CAAC,CAAC,CAAE,CAAC","sourcesContent":["import {categoricalSchemeColors} from '@sqlrooms/color-scales';\n\n// Chart color palette (default palette colors)\nexport const DEFAULT_CHART_COLORS = categoricalSchemeColors.Observable10;\nexport const DEFAULT_CHART_FALLBACK_COLOR = DEFAULT_CHART_COLORS[0]!;\n"]}
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import type { StatefulBlockRenderProps } from '@sqlrooms/blocks';
|
|
2
2
|
import type { MosaicDashboardSliceState } from './MosaicDashboardSlice';
|
|
3
|
-
|
|
3
|
+
import { FC } from 'react';
|
|
4
|
+
export declare const DefaultMosaicDashboardBlock: FC<StatefulBlockRenderProps<MosaicDashboardSliceState>>;
|
|
4
5
|
//# sourceMappingURL=DefaultMosaicDashboardBlock.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"DefaultMosaicDashboardBlock.d.ts","sourceRoot":"","sources":["../../src/dashboard/DefaultMosaicDashboardBlock.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAC,wBAAwB,EAAC,MAAM,kBAAkB,CAAC;AAE/D,OAAO,KAAK,EAAC,yBAAyB,EAAC,MAAM,wBAAwB,CAAC;
|
|
1
|
+
{"version":3,"file":"DefaultMosaicDashboardBlock.d.ts","sourceRoot":"","sources":["../../src/dashboard/DefaultMosaicDashboardBlock.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAC,wBAAwB,EAAC,MAAM,kBAAkB,CAAC;AAE/D,OAAO,KAAK,EAAC,yBAAyB,EAAC,MAAM,wBAAwB,CAAC;AACtE,OAAO,EAAC,EAAE,EAAC,MAAM,OAAO,CAAC;AAEzB,eAAO,MAAM,2BAA2B,EAAE,EAAE,CAC1C,wBAAwB,CAAC,yBAAyB,CAAC,CAGpD,CAAC"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { jsx as _jsx } from "react/jsx-runtime";
|
|
2
2
|
import { MosaicDashboard } from './MosaicDashboard';
|
|
3
|
-
export const DefaultMosaicDashboardBlock = ({ blockId
|
|
3
|
+
export const DefaultMosaicDashboardBlock = ({ blockId }) => {
|
|
4
4
|
return _jsx(MosaicDashboard, { dashboardId: blockId });
|
|
5
5
|
};
|
|
6
6
|
//# sourceMappingURL=DefaultMosaicDashboardBlock.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"DefaultMosaicDashboardBlock.js","sourceRoot":"","sources":["../../src/dashboard/DefaultMosaicDashboardBlock.tsx"],"names":[],"mappings":";AACA,OAAO,EAAC,eAAe,EAAC,MAAM,mBAAmB,CAAC;
|
|
1
|
+
{"version":3,"file":"DefaultMosaicDashboardBlock.js","sourceRoot":"","sources":["../../src/dashboard/DefaultMosaicDashboardBlock.tsx"],"names":[],"mappings":";AACA,OAAO,EAAC,eAAe,EAAC,MAAM,mBAAmB,CAAC;AAIlD,MAAM,CAAC,MAAM,2BAA2B,GAEpC,CAAC,EAAC,OAAO,EAAC,EAAE,EAAE;IAChB,OAAO,KAAC,eAAe,IAAC,WAAW,EAAE,OAAO,GAAI,CAAC;AACnD,CAAC,CAAC","sourcesContent":["import type {StatefulBlockRenderProps} from '@sqlrooms/blocks';\nimport {MosaicDashboard} from './MosaicDashboard';\nimport type {MosaicDashboardSliceState} from './MosaicDashboardSlice';\nimport {FC} from 'react';\n\nexport const DefaultMosaicDashboardBlock: FC<\n StatefulBlockRenderProps<MosaicDashboardSliceState>\n> = ({blockId}) => {\n return <MosaicDashboard dashboardId={blockId} />;\n};\n"]}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import type { BaseRoomStoreState, RoomCommand } from '@sqlrooms/room-store';
|
|
2
|
+
import type { MosaicDashboardSliceState } from './MosaicDashboardSlice';
|
|
3
|
+
export declare const MOSAIC_DASHBOARD_COMMAND_IDS: {
|
|
4
|
+
readonly setSelectedTable: "dashboard.set-selected-table";
|
|
5
|
+
readonly addPanel: "dashboard.add-panel";
|
|
6
|
+
readonly updatePanel: "dashboard.update-panel";
|
|
7
|
+
readonly removePanel: "dashboard.remove-panel";
|
|
8
|
+
};
|
|
9
|
+
type DashboardCommandState = BaseRoomStoreState & MosaicDashboardSliceState;
|
|
10
|
+
/**
|
|
11
|
+
* Create reusable Mosaic dashboard commands for selected table and panel
|
|
12
|
+
* mutations.
|
|
13
|
+
*
|
|
14
|
+
* These commands delegate to the dashboard slice so UI code, agents, and
|
|
15
|
+
* future automation share the same persistence behavior.
|
|
16
|
+
*/
|
|
17
|
+
export declare function createMosaicDashboardCommands<TRoomState extends DashboardCommandState = DashboardCommandState>(): RoomCommand<TRoomState>[];
|
|
18
|
+
export {};
|
|
19
|
+
//# sourceMappingURL=MosaicDashboardCommands.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"MosaicDashboardCommands.d.ts","sourceRoot":"","sources":["../../src/dashboard/MosaicDashboardCommands.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAC,kBAAkB,EAAE,WAAW,EAAC,MAAM,sBAAsB,CAAC;AAc1E,OAAO,KAAK,EAAC,yBAAyB,EAAC,MAAM,wBAAwB,CAAC;AAEtE,eAAO,MAAM,4BAA4B;;;;;CAK/B,CAAC;AA8BX,KAAK,qBAAqB,GAAG,kBAAkB,GAAG,yBAAyB,CAAC;AAyC5E;;;;;;GAMG;AACH,wBAAgB,6BAA6B,CAC3C,UAAU,SAAS,qBAAqB,GAAG,qBAAqB,KAC7D,WAAW,CAAC,UAAU,CAAC,EAAE,CAyK7B"}
|