@sqlrooms/mosaic 0.29.0-rc.7 → 0.29.0-rc.8

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.
Files changed (344) hide show
  1. package/LICENSE.md +2 -1
  2. package/README.md +134 -0
  3. package/dist/MosaicSlice.d.ts +1 -0
  4. package/dist/MosaicSlice.d.ts.map +1 -1
  5. package/dist/MosaicSlice.js.map +1 -1
  6. package/dist/VgPlotChart.d.ts.map +1 -1
  7. package/dist/VgPlotChart.js +9 -3
  8. package/dist/VgPlotChart.js.map +1 -1
  9. package/dist/ai/ai.d.ts +9 -4
  10. package/dist/ai/ai.d.ts.map +1 -1
  11. package/dist/ai/ai.js +91 -49
  12. package/dist/ai/ai.js.map +1 -1
  13. package/dist/ai.d.ts.map +1 -1
  14. package/dist/ai.js.map +1 -1
  15. package/dist/charts/MosaicChart.d.ts +3 -1
  16. package/dist/charts/MosaicChart.d.ts.map +1 -1
  17. package/dist/charts/MosaicChart.js +2 -2
  18. package/dist/charts/MosaicChart.js.map +1 -1
  19. package/dist/charts/MosaicChartError.d.ts +8 -2
  20. package/dist/charts/MosaicChartError.d.ts.map +1 -1
  21. package/dist/charts/MosaicChartError.js +29 -3
  22. package/dist/charts/MosaicChartError.js.map +1 -1
  23. package/dist/charts/MosaicChartSettingsButton.d.ts +15 -0
  24. package/dist/charts/MosaicChartSettingsButton.d.ts.map +1 -0
  25. package/dist/charts/MosaicChartSettingsButton.js +7 -0
  26. package/dist/charts/MosaicChartSettingsButton.js.map +1 -0
  27. package/dist/charts/MosaicChartView.d.ts +2 -0
  28. package/dist/charts/MosaicChartView.d.ts.map +1 -1
  29. package/dist/charts/MosaicChartView.js +20 -7
  30. package/dist/charts/MosaicChartView.js.map +1 -1
  31. package/dist/charts/chart-settings/MosaicChartSettings.d.ts.map +1 -1
  32. package/dist/charts/chart-settings/MosaicChartSettings.js +3 -3
  33. package/dist/charts/chart-settings/MosaicChartSettings.js.map +1 -1
  34. package/dist/charts/chart-settings/MosaicChartSettingsPanel.js +1 -1
  35. package/dist/charts/chart-settings/MosaicChartSettingsPanel.js.map +1 -1
  36. package/dist/charts/chart-settings/MosaicChartTypeSelector.d.ts.map +1 -1
  37. package/dist/charts/chart-settings/MosaicChartTypeSelector.js +11 -4
  38. package/dist/charts/chart-settings/MosaicChartTypeSelector.js.map +1 -1
  39. package/dist/charts/chart-types/base-types.d.ts +17 -6
  40. package/dist/charts/chart-types/base-types.d.ts.map +1 -1
  41. package/dist/charts/chart-types/base-types.js +3 -0
  42. package/dist/charts/chart-types/base-types.js.map +1 -1
  43. package/dist/charts/chart-types/box-plot/renderer/BoxPlotClient.d.ts.map +1 -1
  44. package/dist/charts/chart-types/box-plot/renderer/BoxPlotClient.js +3 -8
  45. package/dist/charts/chart-types/box-plot/renderer/BoxPlotClient.js.map +1 -1
  46. package/dist/charts/chart-types/chart-config.d.ts +3 -1
  47. package/dist/charts/chart-types/chart-config.d.ts.map +1 -1
  48. package/dist/charts/chart-types/chart-config.js +2 -2
  49. package/dist/charts/chart-types/chart-config.js.map +1 -1
  50. package/dist/charts/chart-types/count-plot/spec.d.ts +2 -1
  51. package/dist/charts/chart-types/count-plot/spec.d.ts.map +1 -1
  52. package/dist/charts/chart-types/count-plot/spec.js +65 -34
  53. package/dist/charts/chart-types/count-plot/spec.js.map +1 -1
  54. package/dist/charts/chart-types/count-plot/tool.js +1 -1
  55. package/dist/charts/chart-types/count-plot/tool.js.map +1 -1
  56. package/dist/charts/chart-types/createDefaultChartTypes.js +2 -2
  57. package/dist/charts/chart-types/createDefaultChartTypes.js.map +1 -1
  58. package/dist/charts/chart-types/custom-spec/spec.d.ts +2 -1
  59. package/dist/charts/chart-types/custom-spec/spec.d.ts.map +1 -1
  60. package/dist/charts/chart-types/custom-spec/spec.js +16 -12
  61. package/dist/charts/chart-types/custom-spec/spec.js.map +1 -1
  62. package/dist/charts/chart-types/errors.d.ts +25 -0
  63. package/dist/charts/chart-types/errors.d.ts.map +1 -1
  64. package/dist/charts/chart-types/errors.js +38 -0
  65. package/dist/charts/chart-types/errors.js.map +1 -1
  66. package/dist/charts/chart-types/heatmap/spec.d.ts +2 -1
  67. package/dist/charts/chart-types/heatmap/spec.d.ts.map +1 -1
  68. package/dist/charts/chart-types/heatmap/spec.js +53 -21
  69. package/dist/charts/chart-types/heatmap/spec.js.map +1 -1
  70. package/dist/charts/chart-types/heatmap/tool.js +2 -2
  71. package/dist/charts/chart-types/heatmap/tool.js.map +1 -1
  72. package/dist/charts/chart-types/histogram/HistogramSettings.d.ts.map +1 -1
  73. package/dist/charts/chart-types/histogram/HistogramSettings.js +3 -1
  74. package/dist/charts/chart-types/histogram/HistogramSettings.js.map +1 -1
  75. package/dist/charts/chart-types/histogram/schema.d.ts +2 -0
  76. package/dist/charts/chart-types/histogram/schema.d.ts.map +1 -1
  77. package/dist/charts/chart-types/histogram/schema.js +1 -0
  78. package/dist/charts/chart-types/histogram/schema.js.map +1 -1
  79. package/dist/charts/chart-types/histogram/spec.d.ts +2 -1
  80. package/dist/charts/chart-types/histogram/spec.d.ts.map +1 -1
  81. package/dist/charts/chart-types/histogram/spec.js +50 -27
  82. package/dist/charts/chart-types/histogram/spec.js.map +1 -1
  83. package/dist/charts/chart-types/histogram/tool.d.ts +2 -0
  84. package/dist/charts/chart-types/histogram/tool.d.ts.map +1 -1
  85. package/dist/charts/chart-types/histogram/tool.js +1 -1
  86. package/dist/charts/chart-types/histogram/tool.js.map +1 -1
  87. package/dist/charts/chart-types/index.d.ts +4 -4
  88. package/dist/charts/chart-types/index.js +4 -4
  89. package/dist/charts/chart-types/index.js.map +1 -1
  90. package/dist/charts/chart-types/line-chart/LineChartSettings.d.ts.map +1 -1
  91. package/dist/charts/chart-types/line-chart/LineChartSettings.js +4 -13
  92. package/dist/charts/chart-types/line-chart/LineChartSettings.js.map +1 -1
  93. package/dist/charts/chart-types/line-chart/LineChartXFieldSelector.d.ts +7 -0
  94. package/dist/charts/chart-types/line-chart/LineChartXFieldSelector.d.ts.map +1 -0
  95. package/dist/charts/chart-types/line-chart/LineChartXFieldSelector.js +22 -0
  96. package/dist/charts/chart-types/line-chart/LineChartXFieldSelector.js.map +1 -0
  97. package/dist/charts/chart-types/line-chart/LineChartYFieldsSelector.d.ts +7 -0
  98. package/dist/charts/chart-types/line-chart/LineChartYFieldsSelector.d.ts.map +1 -0
  99. package/dist/charts/chart-types/line-chart/LineChartYFieldsSelector.js +42 -0
  100. package/dist/charts/chart-types/line-chart/LineChartYFieldsSelector.js.map +1 -0
  101. package/dist/charts/chart-types/line-chart/schema.d.ts +2 -0
  102. package/dist/charts/chart-types/line-chart/schema.d.ts.map +1 -1
  103. package/dist/charts/chart-types/line-chart/schema.js +5 -0
  104. package/dist/charts/chart-types/line-chart/schema.js.map +1 -1
  105. package/dist/charts/chart-types/line-chart/spec.d.ts +2 -1
  106. package/dist/charts/chart-types/line-chart/spec.d.ts.map +1 -1
  107. package/dist/charts/chart-types/line-chart/spec.js +97 -65
  108. package/dist/charts/chart-types/line-chart/spec.js.map +1 -1
  109. package/dist/charts/chart-types/line-chart/tool.d.ts +2 -0
  110. package/dist/charts/chart-types/line-chart/tool.d.ts.map +1 -1
  111. package/dist/charts/chart-types/line-chart/tool.js +1 -1
  112. package/dist/charts/chart-types/line-chart/tool.js.map +1 -1
  113. package/dist/charts/chart-types/line-chart/utils.d.ts +7 -0
  114. package/dist/charts/chart-types/line-chart/utils.d.ts.map +1 -0
  115. package/dist/charts/chart-types/line-chart/utils.js +17 -0
  116. package/dist/charts/chart-types/line-chart/utils.js.map +1 -0
  117. package/dist/charts/chart-types/mosaicChartTypes.d.ts +4 -2
  118. package/dist/charts/chart-types/mosaicChartTypes.d.ts.map +1 -1
  119. package/dist/charts/chart-types/mosaicChartTypes.js +2 -2
  120. package/dist/charts/chart-types/mosaicChartTypes.js.map +1 -1
  121. package/dist/charts/chart-types/scatter-plot/ScatterPlotSettings.d.ts +3 -0
  122. package/dist/charts/chart-types/scatter-plot/ScatterPlotSettings.d.ts.map +1 -0
  123. package/dist/charts/chart-types/{bubble-chart/BubbleChartSettings.js → scatter-plot/ScatterPlotSettings.js} +4 -4
  124. package/dist/charts/chart-types/scatter-plot/ScatterPlotSettings.js.map +1 -0
  125. package/dist/charts/chart-types/scatter-plot/definition.d.ts +4 -0
  126. package/dist/charts/chart-types/scatter-plot/definition.d.ts.map +1 -0
  127. package/dist/charts/chart-types/scatter-plot/definition.js +24 -0
  128. package/dist/charts/chart-types/scatter-plot/definition.js.map +1 -0
  129. package/dist/charts/chart-types/{bubble-chart → scatter-plot}/schema.d.ts +5 -5
  130. package/dist/charts/chart-types/scatter-plot/schema.d.ts.map +1 -0
  131. package/dist/charts/chart-types/{bubble-chart → scatter-plot}/schema.js +5 -5
  132. package/dist/charts/chart-types/scatter-plot/schema.js.map +1 -0
  133. package/dist/charts/chart-types/scatter-plot/spec.d.ts +5 -0
  134. package/dist/charts/chart-types/scatter-plot/spec.d.ts.map +1 -0
  135. package/dist/charts/chart-types/scatter-plot/spec.js +81 -0
  136. package/dist/charts/chart-types/scatter-plot/spec.js.map +1 -0
  137. package/dist/charts/chart-types/{bubble-chart → scatter-plot}/tool.d.ts +3 -3
  138. package/dist/charts/chart-types/{bubble-chart → scatter-plot}/tool.d.ts.map +1 -1
  139. package/dist/charts/chart-types/{bubble-chart → scatter-plot}/tool.js +17 -13
  140. package/dist/charts/chart-types/scatter-plot/tool.js.map +1 -0
  141. package/dist/charts/dashboard/MosaicDashboardChartHeaderActions.d.ts.map +1 -1
  142. package/dist/charts/dashboard/MosaicDashboardChartHeaderActions.js +12 -5
  143. package/dist/charts/dashboard/MosaicDashboardChartHeaderActions.js.map +1 -1
  144. package/dist/charts/dashboard/MosaicDashboardChartRenderer.d.ts.map +1 -1
  145. package/dist/charts/dashboard/MosaicDashboardChartRenderer.js +2 -2
  146. package/dist/charts/dashboard/MosaicDashboardChartRenderer.js.map +1 -1
  147. package/dist/charts/useChartDataPolicy.d.ts.map +1 -1
  148. package/dist/charts/useChartDataPolicy.js +2 -1
  149. package/dist/charts/useChartDataPolicy.js.map +1 -1
  150. package/dist/charts/useChartPanelClients.d.ts +8 -0
  151. package/dist/charts/useChartPanelClients.d.ts.map +1 -0
  152. package/dist/charts/useChartPanelClients.js +22 -0
  153. package/dist/charts/useChartPanelClients.js.map +1 -0
  154. package/dist/charts/useMosaicChartRenderContext.d.ts +2 -3
  155. package/dist/charts/useMosaicChartRenderContext.d.ts.map +1 -1
  156. package/dist/charts/useMosaicChartRenderContext.js +15 -15
  157. package/dist/charts/useMosaicChartRenderContext.js.map +1 -1
  158. package/dist/charts/worksheet/ChartBlockHeader.d.ts.map +1 -1
  159. package/dist/charts/worksheet/ChartBlockHeader.js +4 -3
  160. package/dist/charts/worksheet/ChartBlockHeader.js.map +1 -1
  161. package/dist/charts/worksheet/ChartBlockRenderer.d.ts.map +1 -1
  162. package/dist/charts/worksheet/ChartBlockRenderer.js +3 -13
  163. package/dist/charts/worksheet/ChartBlockRenderer.js.map +1 -1
  164. package/dist/column-types-utils.d.ts.map +1 -1
  165. package/dist/column-types-utils.js +12 -4
  166. package/dist/column-types-utils.js.map +1 -1
  167. package/dist/components/AggregationSelector.d.ts.map +1 -1
  168. package/dist/components/AggregationSelector.js +9 -2
  169. package/dist/components/AggregationSelector.js.map +1 -1
  170. package/dist/components/BlockCaptionEditor.d.ts +20 -0
  171. package/dist/components/BlockCaptionEditor.d.ts.map +1 -0
  172. package/dist/components/BlockCaptionEditor.js +15 -0
  173. package/dist/components/BlockCaptionEditor.js.map +1 -0
  174. package/dist/components/ColorSelector.d.ts +12 -0
  175. package/dist/components/ColorSelector.d.ts.map +1 -0
  176. package/dist/components/ColorSelector.js +14 -0
  177. package/dist/components/ColorSelector.js.map +1 -0
  178. package/dist/components/ColumnSelector.d.ts +1 -0
  179. package/dist/components/ColumnSelector.d.ts.map +1 -1
  180. package/dist/components/ColumnSelector.js +2 -2
  181. package/dist/components/ColumnSelector.js.map +1 -1
  182. package/dist/components/Combobox.d.ts +45 -0
  183. package/dist/components/Combobox.d.ts.map +1 -0
  184. package/dist/components/Combobox.js +58 -0
  185. package/dist/components/Combobox.js.map +1 -0
  186. package/dist/components/FieldSelectorInput.d.ts +1 -0
  187. package/dist/components/FieldSelectorInput.d.ts.map +1 -1
  188. package/dist/components/FieldSelectorInput.js +4 -9
  189. package/dist/components/FieldSelectorInput.js.map +1 -1
  190. package/dist/components/MultiFieldSelector.d.ts +4 -1
  191. package/dist/components/MultiFieldSelector.d.ts.map +1 -1
  192. package/dist/components/MultiFieldSelector.js +4 -13
  193. package/dist/components/MultiFieldSelector.js.map +1 -1
  194. package/dist/components/TemporalGranularitySelector.d.ts.map +1 -1
  195. package/dist/components/TemporalGranularitySelector.js +13 -9
  196. package/dist/components/TemporalGranularitySelector.js.map +1 -1
  197. package/dist/components/useCombobox.d.ts +23 -0
  198. package/dist/components/useCombobox.d.ts.map +1 -0
  199. package/dist/components/useCombobox.js +26 -0
  200. package/dist/components/useCombobox.js.map +1 -0
  201. package/dist/constants/chart-colors.d.ts +3 -0
  202. package/dist/constants/chart-colors.d.ts.map +1 -0
  203. package/dist/constants/chart-colors.js +5 -0
  204. package/dist/constants/chart-colors.js.map +1 -0
  205. package/dist/dashboard/DefaultMosaicDashboardBlock.d.ts +2 -1
  206. package/dist/dashboard/DefaultMosaicDashboardBlock.d.ts.map +1 -1
  207. package/dist/dashboard/DefaultMosaicDashboardBlock.js +1 -1
  208. package/dist/dashboard/DefaultMosaicDashboardBlock.js.map +1 -1
  209. package/dist/dashboard/MosaicDashboardSlice.d.ts +22 -4
  210. package/dist/dashboard/MosaicDashboardSlice.d.ts.map +1 -1
  211. package/dist/dashboard/MosaicDashboardSlice.js +55 -0
  212. package/dist/dashboard/MosaicDashboardSlice.js.map +1 -1
  213. package/dist/dashboard/components/ResetFiltersButton.d.ts +14 -0
  214. package/dist/dashboard/components/ResetFiltersButton.d.ts.map +1 -0
  215. package/dist/dashboard/components/ResetFiltersButton.js +15 -0
  216. package/dist/dashboard/components/ResetFiltersButton.js.map +1 -0
  217. package/dist/dashboard/dashboard-types.d.ts +9 -3
  218. package/dist/dashboard/dashboard-types.d.ts.map +1 -1
  219. package/dist/dashboard/hooks/useDashboardResetFilters.d.ts +14 -0
  220. package/dist/dashboard/hooks/useDashboardResetFilters.d.ts.map +1 -0
  221. package/dist/dashboard/hooks/useDashboardResetFilters.js +39 -0
  222. package/dist/dashboard/hooks/useDashboardResetFilters.js.map +1 -0
  223. package/dist/dashboard/hooks/usePanelResetFilters.d.ts +16 -0
  224. package/dist/dashboard/hooks/usePanelResetFilters.d.ts.map +1 -0
  225. package/dist/dashboard/hooks/usePanelResetFilters.js +47 -0
  226. package/dist/dashboard/hooks/usePanelResetFilters.js.map +1 -0
  227. package/dist/dashboard/toolbar/MosaicDashboardAddPanelDropdown.d.ts.map +1 -1
  228. package/dist/dashboard/toolbar/MosaicDashboardAddPanelDropdown.js +3 -3
  229. package/dist/dashboard/toolbar/MosaicDashboardAddPanelDropdown.js.map +1 -1
  230. package/dist/dashboard/toolbar/MosaicDashboardDataTableSelector.d.ts +7 -0
  231. package/dist/dashboard/toolbar/MosaicDashboardDataTableSelector.d.ts.map +1 -0
  232. package/dist/dashboard/toolbar/MosaicDashboardDataTableSelector.js +18 -0
  233. package/dist/dashboard/toolbar/MosaicDashboardDataTableSelector.js.map +1 -0
  234. package/dist/dashboard/toolbar/MosaicDashboardResetFiltersButton.d.ts.map +1 -1
  235. package/dist/dashboard/toolbar/MosaicDashboardResetFiltersButton.js +4 -32
  236. package/dist/dashboard/toolbar/MosaicDashboardResetFiltersButton.js.map +1 -1
  237. package/dist/dashboard/toolbar/MosaicDashboardToolbar.d.ts +2 -2
  238. package/dist/dashboard/toolbar/MosaicDashboardToolbar.d.ts.map +1 -1
  239. package/dist/dashboard/toolbar/MosaicDashboardToolbar.js +12 -10
  240. package/dist/dashboard/toolbar/MosaicDashboardToolbar.js.map +1 -1
  241. package/dist/dashboard/usePanelClientRegistration.d.ts +7 -0
  242. package/dist/dashboard/usePanelClientRegistration.d.ts.map +1 -0
  243. package/dist/dashboard/usePanelClientRegistration.js +30 -0
  244. package/dist/dashboard/usePanelClientRegistration.js.map +1 -0
  245. package/dist/dashboard/usePanelClients.d.ts +7 -0
  246. package/dist/dashboard/usePanelClients.d.ts.map +1 -0
  247. package/dist/dashboard/usePanelClients.js +13 -0
  248. package/dist/dashboard/usePanelClients.js.map +1 -0
  249. package/dist/data-table-explorer/DataTableExplorer.d.ts +4 -2
  250. package/dist/data-table-explorer/DataTableExplorer.d.ts.map +1 -1
  251. package/dist/data-table-explorer/DataTableExplorer.js +4 -4
  252. package/dist/data-table-explorer/DataTableExplorer.js.map +1 -1
  253. package/dist/data-table-explorer/DataTableExplorerCategoryClient.d.ts.map +1 -1
  254. package/dist/data-table-explorer/DataTableExplorerCategoryClient.js +1 -0
  255. package/dist/data-table-explorer/DataTableExplorerCategoryClient.js.map +1 -1
  256. package/dist/data-table-explorer/createDataTableExplorerStore.d.ts +3 -0
  257. package/dist/data-table-explorer/createDataTableExplorerStore.d.ts.map +1 -1
  258. package/dist/data-table-explorer/createDataTableExplorerStore.js +6 -0
  259. package/dist/data-table-explorer/createDataTableExplorerStore.js.map +1 -1
  260. package/dist/data-table-explorer/dashboard/MosaicDashboardDataTableExplorerHeaderActions.d.ts +4 -0
  261. package/dist/data-table-explorer/dashboard/MosaicDashboardDataTableExplorerHeaderActions.d.ts.map +1 -0
  262. package/dist/data-table-explorer/dashboard/MosaicDashboardDataTableExplorerHeaderActions.js +13 -0
  263. package/dist/data-table-explorer/dashboard/MosaicDashboardDataTableExplorerHeaderActions.js.map +1 -0
  264. package/dist/data-table-explorer/dashboard/MosaicDashboardDataTableExplorerPanelRenderer.d.ts.map +1 -1
  265. package/dist/data-table-explorer/dashboard/MosaicDashboardDataTableExplorerPanelRenderer.js +22 -7
  266. package/dist/data-table-explorer/dashboard/MosaicDashboardDataTableExplorerPanelRenderer.js.map +1 -1
  267. package/dist/data-table-explorer/dashboard/useDataTableExplorerPanelClients.d.ts +13 -0
  268. package/dist/data-table-explorer/dashboard/useDataTableExplorerPanelClients.d.ts.map +1 -0
  269. package/dist/data-table-explorer/dashboard/useDataTableExplorerPanelClients.js +32 -0
  270. package/dist/data-table-explorer/dashboard/useDataTableExplorerPanelClients.js.map +1 -0
  271. package/dist/data-table-explorer/dataTableExplorerController.d.ts +5 -1
  272. package/dist/data-table-explorer/dataTableExplorerController.d.ts.map +1 -1
  273. package/dist/data-table-explorer/dataTableExplorerController.js +5 -2
  274. package/dist/data-table-explorer/dataTableExplorerController.js.map +1 -1
  275. package/dist/data-table-explorer/hooks/useDataTableExplorerColumns.d.ts +12 -0
  276. package/dist/data-table-explorer/hooks/useDataTableExplorerColumns.d.ts.map +1 -0
  277. package/dist/data-table-explorer/hooks/useDataTableExplorerColumns.js +19 -0
  278. package/dist/data-table-explorer/hooks/useDataTableExplorerColumns.js.map +1 -0
  279. package/dist/data-table-explorer/hooks/useDataTableExplorerLifecycles.d.ts +30 -0
  280. package/dist/data-table-explorer/hooks/useDataTableExplorerLifecycles.d.ts.map +1 -0
  281. package/dist/data-table-explorer/hooks/useDataTableExplorerLifecycles.js +120 -0
  282. package/dist/data-table-explorer/hooks/useDataTableExplorerLifecycles.js.map +1 -0
  283. package/dist/data-table-explorer/hooks/useDataTableExplorerQueryState.d.ts +28 -0
  284. package/dist/data-table-explorer/hooks/useDataTableExplorerQueryState.d.ts.map +1 -0
  285. package/dist/data-table-explorer/hooks/useDataTableExplorerQueryState.js +40 -0
  286. package/dist/data-table-explorer/hooks/useDataTableExplorerQueryState.js.map +1 -0
  287. package/dist/data-table-explorer/hooks/useDataTableExplorerSelection.d.ts +13 -0
  288. package/dist/data-table-explorer/hooks/useDataTableExplorerSelection.d.ts.map +1 -0
  289. package/dist/data-table-explorer/hooks/useDataTableExplorerSelection.js +40 -0
  290. package/dist/data-table-explorer/hooks/useDataTableExplorerSelection.js.map +1 -0
  291. package/dist/data-table-explorer/hooks/useDataTableExplorerStatus.d.ts +18 -0
  292. package/dist/data-table-explorer/hooks/useDataTableExplorerStatus.d.ts.map +1 -0
  293. package/dist/data-table-explorer/hooks/useDataTableExplorerStatus.js +23 -0
  294. package/dist/data-table-explorer/hooks/useDataTableExplorerStatus.js.map +1 -0
  295. package/dist/data-table-explorer/hooks/useDataTableExplorerStoreState.d.ts +27 -0
  296. package/dist/data-table-explorer/hooks/useDataTableExplorerStoreState.d.ts.map +1 -0
  297. package/dist/data-table-explorer/hooks/useDataTableExplorerStoreState.js +28 -0
  298. package/dist/data-table-explorer/hooks/useDataTableExplorerStoreState.js.map +1 -0
  299. package/dist/data-table-explorer/hooks/useDataTableExplorerVisiblePage.d.ts +15 -0
  300. package/dist/data-table-explorer/hooks/useDataTableExplorerVisiblePage.d.ts.map +1 -0
  301. package/dist/data-table-explorer/hooks/useDataTableExplorerVisiblePage.js +21 -0
  302. package/dist/data-table-explorer/hooks/useDataTableExplorerVisiblePage.js.map +1 -0
  303. package/dist/data-table-explorer/types.d.ts +6 -3
  304. package/dist/data-table-explorer/types.d.ts.map +1 -1
  305. package/dist/data-table-explorer/types.js.map +1 -1
  306. package/dist/data-table-explorer/useDataTableExplorer.d.ts.map +1 -1
  307. package/dist/data-table-explorer/useDataTableExplorer.js +12 -275
  308. package/dist/data-table-explorer/useDataTableExplorer.js.map +1 -1
  309. package/dist/data-table-explorer/worksheet/DataTableBlockHeader.d.ts +1 -0
  310. package/dist/data-table-explorer/worksheet/DataTableBlockHeader.d.ts.map +1 -1
  311. package/dist/data-table-explorer/worksheet/DataTableBlockHeader.js +4 -2
  312. package/dist/data-table-explorer/worksheet/DataTableBlockHeader.js.map +1 -1
  313. package/dist/data-table-explorer/worksheet/DataTableBlockRenderer.d.ts.map +1 -1
  314. package/dist/data-table-explorer/worksheet/DataTableBlockRenderer.js +3 -3
  315. package/dist/data-table-explorer/worksheet/DataTableBlockRenderer.js.map +1 -1
  316. package/dist/index.d.ts +8 -4
  317. package/dist/index.d.ts.map +1 -1
  318. package/dist/index.js +7 -3
  319. package/dist/index.js.map +1 -1
  320. package/dist/useVgPlotChartRender.d.ts.map +1 -1
  321. package/dist/useVgPlotChartRender.js +125 -24
  322. package/dist/useVgPlotChartRender.js.map +1 -1
  323. package/dist/useVgPlotChartRetention.d.ts +11 -0
  324. package/dist/useVgPlotChartRetention.d.ts.map +1 -1
  325. package/dist/useVgPlotChartRetention.js.map +1 -1
  326. package/package.json +14 -14
  327. package/dist/charts/chart-types/bubble-chart/BubbleChartSettings.d.ts +0 -3
  328. package/dist/charts/chart-types/bubble-chart/BubbleChartSettings.d.ts.map +0 -1
  329. package/dist/charts/chart-types/bubble-chart/BubbleChartSettings.js.map +0 -1
  330. package/dist/charts/chart-types/bubble-chart/definition.d.ts +0 -4
  331. package/dist/charts/chart-types/bubble-chart/definition.d.ts.map +0 -1
  332. package/dist/charts/chart-types/bubble-chart/definition.js +0 -24
  333. package/dist/charts/chart-types/bubble-chart/definition.js.map +0 -1
  334. package/dist/charts/chart-types/bubble-chart/schema.d.ts.map +0 -1
  335. package/dist/charts/chart-types/bubble-chart/schema.js.map +0 -1
  336. package/dist/charts/chart-types/bubble-chart/spec.d.ts +0 -4
  337. package/dist/charts/chart-types/bubble-chart/spec.d.ts.map +0 -1
  338. package/dist/charts/chart-types/bubble-chart/spec.js +0 -31
  339. package/dist/charts/chart-types/bubble-chart/spec.js.map +0 -1
  340. package/dist/charts/chart-types/bubble-chart/tool.js.map +0 -1
  341. package/dist/hooks/useDataTable.d.ts +0 -3
  342. package/dist/hooks/useDataTable.d.ts.map +0 -1
  343. package/dist/hooks/useDataTable.js +0 -28
  344. package/dist/hooks/useDataTable.js.map +0 -1
@@ -1 +1 @@
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 {AggregationSelector} from './AggregationSelector';\nimport type {AggregateFunction} from '../schemas';\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\nexport interface MultiFieldSelectorProps {\n types?: string[];\n value: YFieldConfig[];\n onChange: (value: YFieldConfig[]) => void;\n showAggregation?: boolean;\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 showAggregation = false,\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 const handleAdd = useCallback(\n (fieldName: string) => {\n if (fieldName) {\n onChange([...value, {field: fieldName, aggregate: 'sum'}]);\n }\n },\n [value, onChange],\n );\n\n return (\n <div className=\"space-y-1\">\n {value.map((fieldConfig, index) => {\n const aggregate = fieldConfig.aggregate || 'sum';\n\n return (\n <div\n key={fieldConfig.field}\n className=\"grid items-end gap-2\"\n style={{\n gridTemplateColumns: showAggregation\n ? 'minmax(120px, 1fr) 100px 32px'\n : 'minmax(120px, 1fr) 32px',\n }}\n >\n <ColumnSelector\n types={types}\n value={fieldConfig.field}\n onChange={(newField) => handleUpdate(index, {field: newField})}\n />\n\n {showAggregation && (\n <AggregationSelector\n value={aggregate}\n onChange={(agg: AggregateFunction) =>\n handleUpdate(index, {aggregate: agg})\n }\n />\n )}\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={handleAdd}\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
+ {"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,EAAO,MAAM,OAAO,CAAC;AASpC,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,CAoCzE,CAAC"}
1
+ {"version":3,"file":"TemporalGranularitySelector.d.ts","sourceRoot":"","sources":["../../src/components/TemporalGranularitySelector.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAC,KAAK,EAAE,EAAoB,MAAM,OAAO,CAAC;AAEjD,OAAO,KAAK,EAAC,gBAAgB,EAAC,MAAM,YAAY,CAAC;AAGjD,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,7 +1,7 @@
1
1
  import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
- import { memo } from 'react';
3
- import { Select, SelectContent, SelectItem, SelectTrigger, SelectValue, } from '@sqlrooms/ui';
2
+ import { memo, useCallback } from 'react';
4
3
  import { TEMPORAL_COLUMN_TYPES } from '../column-types-utils';
4
+ import { Combobox } from './Combobox';
5
5
  const TEMPORAL_INTERVALS = [
6
6
  { value: 'year', label: 'Year' },
7
7
  { value: 'quarter', label: 'Quarter' },
@@ -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
- // Only render if X field is temporal
23
- if (!isTemporalField(xFieldType)) {
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
- return (_jsxs(Select, { value: value || NONE, onValueChange: handleValueChange, children: [_jsx(SelectTrigger, { className: "h-8 text-xs shadow-none", children: _jsx(SelectValue, { placeholder: "None" }) }), _jsxs(SelectContent, { children: [_jsx(SelectItem, { value: NONE, className: "text-xs", children: "None" }), TEMPORAL_INTERVALS.map((interval) => (_jsx(SelectItem, { value: interval.value, className: "text-xs", children: interval.label }, interval.value)))] })] }));
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;AACpC,OAAO,EACL,MAAM,EACN,aAAa,EACb,UAAU,EACV,aAAa,EACb,WAAW,GACZ,MAAM,cAAc,CAAC;AACtB,OAAO,EAAC,qBAAqB,EAAC,MAAM,uBAAuB,CAAC;AAS5D,MAAM,kBAAkB,GAAG;IACzB,EAAC,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAC;IAC9B,EAAC,KAAK,EAAE,SAAS,EAAE,KAAK,EAAE,SAAS,EAAC;IACpC,EAAC,KAAK,EAAE,OAAO,EAAE,KAAK,EAAE,OAAO,EAAC;IAChC,EAAC,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAC;IAC9B,EAAC,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAC;IAC5B,EAAC,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAC;IAC9B,EAAC,KAAK,EAAE,QAAQ,EAAE,KAAK,EAAE,QAAQ,EAAC;IAClC,EAAC,KAAK,EAAE,QAAQ,EAAE,KAAK,EAAE,QAAQ,EAAC;CAC1B,CAAC;AAEX,MAAM,IAAI,GAAG,MAAM,CAAC;AAEpB,SAAS,eAAe,CAAC,SAAkB;IACzC,IAAI,CAAC,SAAS;QAAE,OAAO,KAAK,CAAC;IAC7B,OAAO,qBAAqB,CAAC,IAAI,CAC/B,CAAC,IAAI,EAAE,EAAE,CAAC,SAAS,CAAC,WAAW,EAAE,KAAK,IAAI,CAAC,WAAW,EAAE,CACzD,CAAC;AACJ,CAAC;AAED,MAAM,CAAC,MAAM,2BAA2B,GACtC,IAAI,CAAC,CAAC,EAAC,KAAK,EAAE,QAAQ,EAAE,UAAU,EAAC,EAAE,EAAE;IACrC,qCAAqC;IACrC,IAAI,CAAC,eAAe,CAAC,UAAU,CAAC,EAAE,CAAC;QACjC,OAAO,IAAI,CAAC;IACd,CAAC;IAED,MAAM,iBAAiB,GAAG,CAAC,QAAwC,EAAE,EAAE;QACrE,IAAI,QAAQ,KAAK,IAAI,EAAE,CAAC;YACtB,QAAQ,CAAC,SAAS,CAAC,CAAC;QACtB,CAAC;aAAM,CAAC;YACN,QAAQ,CAAC,QAAQ,CAAC,CAAC;QACrB,CAAC;IACH,CAAC,CAAC;IAEF,OAAO,CACL,MAAC,MAAM,IAAC,KAAK,EAAE,KAAK,IAAI,IAAI,EAAE,aAAa,EAAE,iBAAiB,aAC5D,KAAC,aAAa,IAAC,SAAS,EAAC,yBAAyB,YAChD,KAAC,WAAW,IAAC,WAAW,EAAC,MAAM,GAAG,GACpB,EAChB,MAAC,aAAa,eACZ,KAAC,UAAU,IAAC,KAAK,EAAE,IAAI,EAAE,SAAS,EAAC,SAAS,qBAE/B,EACZ,kBAAkB,CAAC,GAAG,CAAC,CAAC,QAAQ,EAAE,EAAE,CAAC,CACpC,KAAC,UAAU,IAET,KAAK,EAAE,QAAQ,CAAC,KAAK,EACrB,SAAS,EAAC,SAAS,YAElB,QAAQ,CAAC,KAAK,IAJV,QAAQ,CAAC,KAAK,CAKR,CACd,CAAC,IACY,IACT,CACV,CAAC;AACJ,CAAC,CAAC,CAAC;AAEL,2BAA2B,CAAC,WAAW,GAAG,6BAA6B,CAAC","sourcesContent":["import {type FC, memo} from 'react';\nimport {\n Select,\n SelectContent,\n SelectItem,\n SelectTrigger,\n SelectValue,\n} 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 // Only render if X field is temporal\n if (!isTemporalField(xFieldType)) {\n return null;\n }\n\n const handleValueChange = (newValue: TemporalInterval | typeof NONE) => {\n if (newValue === NONE) {\n onChange(undefined);\n } else {\n onChange(newValue);\n }\n };\n\n return (\n <Select value={value || NONE} onValueChange={handleValueChange}>\n <SelectTrigger className=\"h-8 text-xs shadow-none\">\n <SelectValue placeholder=\"None\" />\n </SelectTrigger>\n <SelectContent>\n <SelectItem value={NONE} className=\"text-xs\">\n None\n </SelectItem>\n {TEMPORAL_INTERVALS.map((interval) => (\n <SelectItem\n key={interval.value}\n value={interval.value}\n className=\"text-xs\"\n >\n {interval.label}\n </SelectItem>\n ))}\n </SelectContent>\n </Select>\n );\n });\n\nTemporalGranularitySelector.displayName = 'TemporalGranularitySelector';\n"]}
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 {TEMPORAL_COLUMN_TYPES} from '../column-types-utils';\nimport type {TemporalInterval} from '../schemas';\nimport {Combobox} from './Combobox';\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,23 @@
1
+ export interface UseComboboxOptions<T extends string = string> {
2
+ value: T;
3
+ onChange: (value: T) => void;
4
+ }
5
+ export interface UseComboboxReturn {
6
+ open: boolean;
7
+ setOpen: (open: boolean) => void;
8
+ handleSelect: (value: string) => void;
9
+ popoverProps: {
10
+ open: boolean;
11
+ onOpenChange: (open: boolean) => void;
12
+ };
13
+ triggerProps: {
14
+ role: 'combobox';
15
+ 'aria-expanded': boolean;
16
+ };
17
+ }
18
+ /**
19
+ * Shared combobox state and behavior for Popover-based selectors.
20
+ * Handles open/close state and selection with auto-close.
21
+ */
22
+ export declare function useCombobox<T extends string = string>(options: UseComboboxOptions<T>): UseComboboxReturn;
23
+ //# sourceMappingURL=useCombobox.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useCombobox.d.ts","sourceRoot":"","sources":["../../src/components/useCombobox.ts"],"names":[],"mappings":"AAEA,MAAM,WAAW,kBAAkB,CAAC,CAAC,SAAS,MAAM,GAAG,MAAM;IAC3D,KAAK,EAAE,CAAC,CAAC;IACT,QAAQ,EAAE,CAAC,KAAK,EAAE,CAAC,KAAK,IAAI,CAAC;CAC9B;AAED,MAAM,WAAW,iBAAiB;IAChC,IAAI,EAAE,OAAO,CAAC;IACd,OAAO,EAAE,CAAC,IAAI,EAAE,OAAO,KAAK,IAAI,CAAC;IACjC,YAAY,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;IACtC,YAAY,EAAE;QACZ,IAAI,EAAE,OAAO,CAAC;QACd,YAAY,EAAE,CAAC,IAAI,EAAE,OAAO,KAAK,IAAI,CAAC;KACvC,CAAC;IACF,YAAY,EAAE;QACZ,IAAI,EAAE,UAAU,CAAC;QACjB,eAAe,EAAE,OAAO,CAAC;KAC1B,CAAC;CACH;AAED;;;GAGG;AACH,wBAAgB,WAAW,CAAC,CAAC,SAAS,MAAM,GAAG,MAAM,EACnD,OAAO,EAAE,kBAAkB,CAAC,CAAC,CAAC,GAC7B,iBAAiB,CAwBnB"}
@@ -0,0 +1,26 @@
1
+ import { useState, useCallback } from 'react';
2
+ /**
3
+ * Shared combobox state and behavior for Popover-based selectors.
4
+ * Handles open/close state and selection with auto-close.
5
+ */
6
+ export function useCombobox(options) {
7
+ const [open, setOpen] = useState(false);
8
+ const handleSelect = useCallback((value) => {
9
+ options.onChange(value);
10
+ setOpen(false);
11
+ }, [options]);
12
+ return {
13
+ open,
14
+ setOpen,
15
+ handleSelect,
16
+ popoverProps: {
17
+ open,
18
+ onOpenChange: setOpen,
19
+ },
20
+ triggerProps: {
21
+ role: 'combobox',
22
+ 'aria-expanded': open,
23
+ },
24
+ };
25
+ }
26
+ //# sourceMappingURL=useCombobox.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useCombobox.js","sourceRoot":"","sources":["../../src/components/useCombobox.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,QAAQ,EAAE,WAAW,EAAC,MAAM,OAAO,CAAC;AAqB5C;;;GAGG;AACH,MAAM,UAAU,WAAW,CACzB,OAA8B;IAE9B,MAAM,CAAC,IAAI,EAAE,OAAO,CAAC,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC;IAExC,MAAM,YAAY,GAAG,WAAW,CAC9B,CAAC,KAAa,EAAE,EAAE;QAChB,OAAO,CAAC,QAAQ,CAAC,KAAU,CAAC,CAAC;QAC7B,OAAO,CAAC,KAAK,CAAC,CAAC;IACjB,CAAC,EACD,CAAC,OAAO,CAAC,CACV,CAAC;IAEF,OAAO;QACL,IAAI;QACJ,OAAO;QACP,YAAY;QACZ,YAAY,EAAE;YACZ,IAAI;YACJ,YAAY,EAAE,OAAO;SACtB;QACD,YAAY,EAAE;YACZ,IAAI,EAAE,UAAmB;YACzB,eAAe,EAAE,IAAI;SACtB;KACF,CAAC;AACJ,CAAC","sourcesContent":["import {useState, useCallback} from 'react';\n\nexport interface UseComboboxOptions<T extends string = string> {\n value: T;\n onChange: (value: T) => void;\n}\n\nexport interface UseComboboxReturn {\n open: boolean;\n setOpen: (open: boolean) => void;\n handleSelect: (value: string) => void;\n popoverProps: {\n open: boolean;\n onOpenChange: (open: boolean) => void;\n };\n triggerProps: {\n role: 'combobox';\n 'aria-expanded': boolean;\n };\n}\n\n/**\n * Shared combobox state and behavior for Popover-based selectors.\n * Handles open/close state and selection with auto-close.\n */\nexport function useCombobox<T extends string = string>(\n options: UseComboboxOptions<T>,\n): UseComboboxReturn {\n const [open, setOpen] = useState(false);\n\n const handleSelect = useCallback(\n (value: string) => {\n options.onChange(value as T);\n setOpen(false);\n },\n [options],\n );\n\n return {\n open,\n setOpen,\n handleSelect,\n popoverProps: {\n open,\n onOpenChange: setOpen,\n },\n triggerProps: {\n role: 'combobox' as const,\n 'aria-expanded': open,\n },\n };\n}\n"]}
@@ -0,0 +1,3 @@
1
+ export declare const DEFAULT_CHART_COLORS: readonly string[];
2
+ export declare const DEFAULT_CHART_FALLBACK_COLOR: string;
3
+ //# sourceMappingURL=chart-colors.d.ts.map
@@ -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
- export declare const DefaultMosaicDashboardBlock: ({ blockId, }: StatefulBlockRenderProps<MosaicDashboardSliceState>) => import("react/jsx-runtime").JSX.Element;
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;AAEtE,eAAO,MAAM,2BAA2B,GAAI,cAEzC,wBAAwB,CAAC,yBAAyB,CAAC,4CAErD,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;AAGlD,MAAM,CAAC,MAAM,2BAA2B,GAAG,CAAC,EAC1C,OAAO,GAC6C,EAAE,EAAE;IACxD,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';\n\nexport const DefaultMosaicDashboardBlock = ({\n blockId,\n}: StatefulBlockRenderProps<MosaicDashboardSliceState>) => {\n return <MosaicDashboard dashboardId={blockId} />;\n};\n"]}
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"]}
@@ -11,6 +11,7 @@ import { type MosaicSliceState } from '../MosaicSlice';
11
11
  import { type RetainedVgPlotChart } from '../VgPlotChart';
12
12
  import type { MosaicDashboardAddPanelAction } from './action-types';
13
13
  import type { ChartRuntimeIssue } from '../chart-runtime';
14
+ import type { MosaicClient } from '@uwdata/mosaic-core';
14
15
  /**
15
16
  * Panel key used for function-form panel definitions registered by
16
17
  * `MosaicDashboardPanels`. Individual dashboard panels are represented as
@@ -38,6 +39,7 @@ export declare const ChartPanelConfig: z.ZodObject<{
38
39
  settings: z.ZodObject<{
39
40
  field: z.ZodOptional<z.ZodString>;
40
41
  maxBins: z.ZodOptional<z.ZodDefault<z.ZodNumber>>;
42
+ color: z.ZodOptional<z.ZodString>;
41
43
  }, z.core.$strip>;
42
44
  settingsOpen: z.ZodOptional<z.ZodBoolean>;
43
45
  dataPolicy: z.ZodOptional<z.ZodObject<{
@@ -80,6 +82,7 @@ export declare const ChartPanelConfig: z.ZodObject<{
80
82
  avg: "avg";
81
83
  }>>>;
82
84
  }, z.core.$strip>>>;
85
+ showLegend: z.ZodDefault<z.ZodOptional<z.ZodBoolean>>;
83
86
  }, z.core.$strip>;
84
87
  settingsOpen: z.ZodOptional<z.ZodBoolean>;
85
88
  dataPolicy: z.ZodOptional<z.ZodObject<{
@@ -88,7 +91,7 @@ export declare const ChartPanelConfig: z.ZodObject<{
88
91
  reason: z.ZodOptional<z.ZodString>;
89
92
  }, z.core.$strip>>;
90
93
  }, z.core.$strip>, z.ZodObject<{
91
- chartType: z.ZodLiteral<"bubble-chart">;
94
+ chartType: z.ZodLiteral<"scatter-plot">;
92
95
  settings: z.ZodObject<{
93
96
  x: z.ZodOptional<z.ZodString>;
94
97
  y: z.ZodOptional<z.ZodString>;
@@ -172,6 +175,7 @@ export declare const MosaicDashboardPanelConfig: z.ZodUnion<[z.ZodDiscriminatedU
172
175
  settings: z.ZodObject<{
173
176
  field: z.ZodOptional<z.ZodString>;
174
177
  maxBins: z.ZodOptional<z.ZodDefault<z.ZodNumber>>;
178
+ color: z.ZodOptional<z.ZodString>;
175
179
  }, z.core.$strip>;
176
180
  settingsOpen: z.ZodOptional<z.ZodBoolean>;
177
181
  dataPolicy: z.ZodOptional<z.ZodObject<{
@@ -214,6 +218,7 @@ export declare const MosaicDashboardPanelConfig: z.ZodUnion<[z.ZodDiscriminatedU
214
218
  avg: "avg";
215
219
  }>>>;
216
220
  }, z.core.$strip>>>;
221
+ showLegend: z.ZodDefault<z.ZodOptional<z.ZodBoolean>>;
217
222
  }, z.core.$strip>;
218
223
  settingsOpen: z.ZodOptional<z.ZodBoolean>;
219
224
  dataPolicy: z.ZodOptional<z.ZodObject<{
@@ -222,7 +227,7 @@ export declare const MosaicDashboardPanelConfig: z.ZodUnion<[z.ZodDiscriminatedU
222
227
  reason: z.ZodOptional<z.ZodString>;
223
228
  }, z.core.$strip>>;
224
229
  }, z.core.$strip>, z.ZodObject<{
225
- chartType: z.ZodLiteral<"bubble-chart">;
230
+ chartType: z.ZodLiteral<"scatter-plot">;
226
231
  settings: z.ZodObject<{
227
232
  x: z.ZodOptional<z.ZodString>;
228
233
  y: z.ZodOptional<z.ZodString>;
@@ -343,6 +348,7 @@ export declare const MosaicDashboardEntry: z.ZodObject<{
343
348
  settings: z.ZodObject<{
344
349
  field: z.ZodOptional<z.ZodString>;
345
350
  maxBins: z.ZodOptional<z.ZodDefault<z.ZodNumber>>;
351
+ color: z.ZodOptional<z.ZodString>;
346
352
  }, z.core.$strip>;
347
353
  settingsOpen: z.ZodOptional<z.ZodBoolean>;
348
354
  dataPolicy: z.ZodOptional<z.ZodObject<{
@@ -385,6 +391,7 @@ export declare const MosaicDashboardEntry: z.ZodObject<{
385
391
  avg: "avg";
386
392
  }>>>;
387
393
  }, z.core.$strip>>>;
394
+ showLegend: z.ZodDefault<z.ZodOptional<z.ZodBoolean>>;
388
395
  }, z.core.$strip>;
389
396
  settingsOpen: z.ZodOptional<z.ZodBoolean>;
390
397
  dataPolicy: z.ZodOptional<z.ZodObject<{
@@ -393,7 +400,7 @@ export declare const MosaicDashboardEntry: z.ZodObject<{
393
400
  reason: z.ZodOptional<z.ZodString>;
394
401
  }, z.core.$strip>>;
395
402
  }, z.core.$strip>, z.ZodObject<{
396
- chartType: z.ZodLiteral<"bubble-chart">;
403
+ chartType: z.ZodLiteral<"scatter-plot">;
397
404
  settings: z.ZodObject<{
398
405
  x: z.ZodOptional<z.ZodString>;
399
406
  y: z.ZodOptional<z.ZodString>;
@@ -486,6 +493,7 @@ export declare const MosaicDashboardSliceConfig: z.ZodObject<{
486
493
  settings: z.ZodObject<{
487
494
  field: z.ZodOptional<z.ZodString>;
488
495
  maxBins: z.ZodOptional<z.ZodDefault<z.ZodNumber>>;
496
+ color: z.ZodOptional<z.ZodString>;
489
497
  }, z.core.$strip>;
490
498
  settingsOpen: z.ZodOptional<z.ZodBoolean>;
491
499
  dataPolicy: z.ZodOptional<z.ZodObject<{
@@ -528,6 +536,7 @@ export declare const MosaicDashboardSliceConfig: z.ZodObject<{
528
536
  avg: "avg";
529
537
  }>>>;
530
538
  }, z.core.$strip>>>;
539
+ showLegend: z.ZodDefault<z.ZodOptional<z.ZodBoolean>>;
531
540
  }, z.core.$strip>;
532
541
  settingsOpen: z.ZodOptional<z.ZodBoolean>;
533
542
  dataPolicy: z.ZodOptional<z.ZodObject<{
@@ -536,7 +545,7 @@ export declare const MosaicDashboardSliceConfig: z.ZodObject<{
536
545
  reason: z.ZodOptional<z.ZodString>;
537
546
  }, z.core.$strip>>;
538
547
  }, z.core.$strip>, z.ZodObject<{
539
- chartType: z.ZodLiteral<"bubble-chart">;
548
+ chartType: z.ZodLiteral<"scatter-plot">;
540
549
  settings: z.ZodObject<{
541
550
  x: z.ZodOptional<z.ZodString>;
542
551
  y: z.ZodOptional<z.ZodString>;
@@ -628,6 +637,11 @@ export type MosaicDashboardSliceState = {
628
637
  * These are live diagnostics for UI and AI tools, not persisted config.
629
638
  */
630
639
  panelIssuesByPanelId: Record<string, ChartRuntimeIssue>;
640
+ /**
641
+ * Tracks Mosaic clients by panel ID for reset filter functionality.
642
+ * Key is `getMosaicDashboardPanelId(dashboardId, panelId)`.
643
+ */
644
+ panelClients: Record<string, MosaicClient[]>;
631
645
  };
632
646
  chartTypes?: ChartTypeDefinition[];
633
647
  addPanelActions: MosaicDashboardAddPanelAction[];
@@ -635,6 +649,7 @@ export type MosaicDashboardSliceState = {
635
649
  ensureDashboard: (dashboardId: string, title?: string, layoutType?: MosaicDashboardLayoutType) => void;
636
650
  removeDashboard: (dashboardId: string) => void;
637
651
  getDashboard: (dashboardId: string) => MosaicDashboardEntry | undefined;
652
+ setDashboardTitle: (dashboardId: string, title: string) => void;
638
653
  setSelectedTable: (dashboardId: string, tableName: string) => void;
639
654
  setLastSelectedTable: (dashboardId: string, tableName: string) => void;
640
655
  panelRenderers: PanelRenderersRecord;
@@ -660,6 +675,9 @@ export type MosaicDashboardSliceState = {
660
675
  }) => void;
661
676
  clearAllDashboardRuntime: () => void;
662
677
  setLayout: (dashboardId: string, layout: LayoutNode | null) => void;
678
+ registerPanelClient: (dashboardId: string, panelId: string, client: MosaicClient) => void;
679
+ unregisterPanelClient: (dashboardId: string, panelId: string, client: MosaicClient) => void;
680
+ getPanelClients: (dashboardId: string, panelId: string) => MosaicClient[];
663
681
  };
664
682
  };
665
683
  export type MosaicDashboardStoreState = BaseRoomStoreState & DbSliceState & DuckDbSliceState & LayoutSliceState & MosaicSliceState & MosaicDashboardSliceState;
@@ -1 +1 @@
1
- {"version":3,"file":"MosaicDashboardSlice.d.ts","sourceRoot":"","sources":["../../src/dashboard/MosaicDashboardSlice.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"MosaicDashboardSlice.d.ts","sourceRoot":"","sources":["../../src/dashboard/MosaicDashboardSlice.ts"],"names":[],"mappings":"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"}
@@ -377,6 +377,7 @@ export function createMosaicDashboardSlice(props = {}) {
377
377
  runtime: {
378
378
  retainedChartsByPanelId: {},
379
379
  panelIssuesByPanelId: {},
380
+ panelClients: {},
380
381
  },
381
382
  chartTypes: props.chartTypes,
382
383
  addPanelActions: props.addPanelActions ?? [],
@@ -432,6 +433,16 @@ export function createMosaicDashboardSlice(props = {}) {
432
433
  draft.mosaicDashboard.config = config;
433
434
  }));
434
435
  },
436
+ setDashboardTitle(dashboardId, title) {
437
+ get().mosaicDashboard.ensureDashboard(dashboardId);
438
+ set((state) => produce(state, (draft) => {
439
+ const dashboard = draft.mosaicDashboard.config.dashboardsById[dashboardId];
440
+ if (!dashboard)
441
+ return;
442
+ dashboard.title = title;
443
+ dashboard.updatedAt = Date.now();
444
+ }));
445
+ },
435
446
  setSelectedTable(dashboardId, tableName) {
436
447
  get().mosaicDashboard.ensureDashboard(dashboardId);
437
448
  set((state) => produce(state, (draft) => {
@@ -499,6 +510,11 @@ export function createMosaicDashboardSlice(props = {}) {
499
510
  }
500
511
  },
501
512
  removePanel(dashboardId, panelId) {
513
+ // Clean up panel clients
514
+ const key = getMosaicDashboardPanelId(dashboardId, panelId);
515
+ set(produce((state) => {
516
+ delete state.mosaicDashboard.runtime.panelClients[key];
517
+ }));
502
518
  get().mosaicDashboard.evictPanelRuntime(dashboardId, panelId);
503
519
  set((state) => produce(state, (draft) => {
504
520
  const dashboard = draft.mosaicDashboard.config.dashboardsById[dashboardId];
@@ -613,6 +629,7 @@ export function createMosaicDashboardSlice(props = {}) {
613
629
  const runtimePrefix = `dashboard:${dashboardId}:panel:`;
614
630
  const existingEntries = Object.entries(get().mosaicDashboard.runtime.retainedChartsByPanelId).filter(([runtimePanelId]) => runtimePanelId.startsWith(runtimePrefix));
615
631
  const existingIssueEntries = Object.keys(get().mosaicDashboard.runtime.panelIssuesByPanelId).filter((runtimePanelId) => runtimePanelId.startsWith(runtimePrefix));
632
+ const existingClientEntries = Object.keys(get().mosaicDashboard.runtime.panelClients).filter((runtimePanelId) => runtimePanelId.startsWith(runtimePrefix));
616
633
  existingEntries.forEach(([, chart]) => {
617
634
  destroyDashboardRuntimeChart(chart);
618
635
  });
@@ -626,12 +643,18 @@ export function createMosaicDashboardSlice(props = {}) {
626
643
  const nextPanelIssuesByPanelId = {
627
644
  ...state.mosaicDashboard.runtime.panelIssuesByPanelId,
628
645
  };
646
+ const nextPanelClients = {
647
+ ...state.mosaicDashboard.runtime.panelClients,
648
+ };
629
649
  for (const [runtimePanelId] of existingEntries) {
630
650
  delete nextRetainedChartsByPanelId[runtimePanelId];
631
651
  }
632
652
  for (const runtimePanelId of existingIssueEntries) {
633
653
  delete nextPanelIssuesByPanelId[runtimePanelId];
634
654
  }
655
+ for (const runtimePanelId of existingClientEntries) {
656
+ delete nextPanelClients[runtimePanelId];
657
+ }
635
658
  return {
636
659
  mosaicDashboard: {
637
660
  ...state.mosaicDashboard,
@@ -639,6 +662,7 @@ export function createMosaicDashboardSlice(props = {}) {
639
662
  ...state.mosaicDashboard.runtime,
640
663
  retainedChartsByPanelId: nextRetainedChartsByPanelId,
641
664
  panelIssuesByPanelId: nextPanelIssuesByPanelId,
665
+ panelClients: nextPanelClients,
642
666
  },
643
667
  },
644
668
  };
@@ -655,6 +679,7 @@ export function createMosaicDashboardSlice(props = {}) {
655
679
  ...state.mosaicDashboard.runtime,
656
680
  retainedChartsByPanelId: {},
657
681
  panelIssuesByPanelId: {},
682
+ panelClients: {},
658
683
  },
659
684
  },
660
685
  }));
@@ -671,6 +696,36 @@ export function createMosaicDashboardSlice(props = {}) {
671
696
  dashboard.updatedAt = Date.now();
672
697
  }));
673
698
  },
699
+ registerPanelClient: (dashboardId, panelId, client) => {
700
+ set(produce((state) => {
701
+ const key = getMosaicDashboardPanelId(dashboardId, panelId);
702
+ if (!state.mosaicDashboard.runtime.panelClients[key]) {
703
+ state.mosaicDashboard.runtime.panelClients[key] = [];
704
+ }
705
+ if (!state.mosaicDashboard.runtime.panelClients[key].includes(client)) {
706
+ state.mosaicDashboard.runtime.panelClients[key].push(client);
707
+ }
708
+ }));
709
+ },
710
+ unregisterPanelClient: (dashboardId, panelId, client) => {
711
+ set(produce((state) => {
712
+ const key = getMosaicDashboardPanelId(dashboardId, panelId);
713
+ const clients = state.mosaicDashboard.runtime.panelClients[key];
714
+ if (clients) {
715
+ const index = clients.indexOf(client);
716
+ if (index > -1) {
717
+ clients.splice(index, 1);
718
+ }
719
+ if (clients.length === 0) {
720
+ delete state.mosaicDashboard.runtime.panelClients[key];
721
+ }
722
+ }
723
+ }));
724
+ },
725
+ getPanelClients: (dashboardId, panelId) => {
726
+ const key = getMosaicDashboardPanelId(dashboardId, panelId);
727
+ return get().mosaicDashboard.runtime.panelClients[key] ?? [];
728
+ },
674
729
  },
675
730
  }));
676
731
  }