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

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 (975) hide show
  1. package/README.md +90 -57
  2. package/dist/DataPointLimitError.d.ts +9 -0
  3. package/dist/DataPointLimitError.d.ts.map +1 -0
  4. package/dist/DataPointLimitError.js +14 -0
  5. package/dist/DataPointLimitError.js.map +1 -0
  6. package/dist/MosaicChart.d.ts +6 -6
  7. package/dist/MosaicChart.d.ts.map +1 -1
  8. package/dist/MosaicChart.js +6 -6
  9. package/dist/MosaicChart.js.map +1 -1
  10. package/dist/MosaicChartBuilder.d.ts +1 -1
  11. package/dist/MosaicChartBuilder.d.ts.map +1 -1
  12. package/dist/MosaicChartBuilder.js +1 -1
  13. package/dist/MosaicChartBuilder.js.map +1 -1
  14. package/dist/MosaicColorLegend.d.ts.map +1 -1
  15. package/dist/MosaicColorLegend.js +0 -1
  16. package/dist/MosaicColorLegend.js.map +1 -1
  17. package/dist/MosaicSlice.d.ts.map +1 -1
  18. package/dist/MosaicSlice.js +3 -3
  19. package/dist/MosaicSlice.js.map +1 -1
  20. package/dist/VgPlotChart.d.ts +8 -11
  21. package/dist/VgPlotChart.d.ts.map +1 -1
  22. package/dist/VgPlotChart.js +77 -90
  23. package/dist/VgPlotChart.js.map +1 -1
  24. package/dist/VgPlotChartError.d.ts +7 -0
  25. package/dist/VgPlotChartError.d.ts.map +1 -0
  26. package/dist/VgPlotChartError.js +9 -0
  27. package/dist/VgPlotChartError.js.map +1 -0
  28. package/dist/ai/ai.d.ts +103 -0
  29. package/dist/ai/ai.d.ts.map +1 -0
  30. package/dist/ai/ai.js +419 -0
  31. package/dist/ai/ai.js.map +1 -0
  32. package/dist/ai/data-table-explorer-tool.d.ts +40 -0
  33. package/dist/ai/data-table-explorer-tool.d.ts.map +1 -0
  34. package/dist/ai/data-table-explorer-tool.js +75 -0
  35. package/dist/ai/data-table-explorer-tool.js.map +1 -0
  36. package/dist/ai/list-panels-tool.d.ts +35 -0
  37. package/dist/ai/list-panels-tool.d.ts.map +1 -0
  38. package/dist/ai/list-panels-tool.js +66 -0
  39. package/dist/ai/list-panels-tool.js.map +1 -0
  40. package/dist/ai/remove-panel-tool.d.ts +31 -0
  41. package/dist/ai/remove-panel-tool.d.ts.map +1 -0
  42. package/dist/ai/remove-panel-tool.js +55 -0
  43. package/dist/ai/remove-panel-tool.js.map +1 -0
  44. package/dist/ai/tool-helpers.d.ts +34 -0
  45. package/dist/ai/tool-helpers.d.ts.map +1 -0
  46. package/dist/ai/tool-helpers.js +93 -0
  47. package/dist/ai/tool-helpers.js.map +1 -0
  48. package/dist/ai/tool-schemas.d.ts +9 -0
  49. package/dist/ai/tool-schemas.d.ts.map +1 -0
  50. package/dist/ai/tool-schemas.js +22 -0
  51. package/dist/ai/tool-schemas.js.map +1 -0
  52. package/dist/ai/tool-types.d.ts +26 -0
  53. package/dist/ai/tool-types.d.ts.map +1 -0
  54. package/dist/ai/tool-types.js.map +1 -0
  55. package/dist/ai/tool-validation.d.ts +3 -0
  56. package/dist/ai/tool-validation.d.ts.map +1 -0
  57. package/dist/ai/tool-validation.js.map +1 -0
  58. package/dist/ai.d.ts +6 -0
  59. package/dist/ai.d.ts.map +1 -0
  60. package/dist/ai.js +6 -0
  61. package/dist/ai.js.map +1 -0
  62. package/dist/chart-builders/ChartBuilderActions.js.map +1 -1
  63. package/dist/chart-builders/ChartBuilderContent.d.ts +2 -2
  64. package/dist/chart-builders/ChartBuilderContent.d.ts.map +1 -1
  65. package/dist/chart-builders/ChartBuilderContent.js.map +1 -1
  66. package/dist/chart-builders/ChartBuilderContext.d.ts +2 -2
  67. package/dist/chart-builders/ChartBuilderContext.d.ts.map +1 -1
  68. package/dist/chart-builders/ChartBuilderContext.js.map +1 -1
  69. package/dist/chart-builders/ChartBuilderDialog.d.ts +2 -2
  70. package/dist/chart-builders/ChartBuilderDialog.d.ts.map +1 -1
  71. package/dist/chart-builders/ChartBuilderDialog.js.map +1 -1
  72. package/dist/chart-builders/ChartBuilderFields.js +2 -2
  73. package/dist/chart-builders/ChartBuilderFields.js.map +1 -1
  74. package/dist/chart-builders/ChartBuilderRoot.d.ts +2 -2
  75. package/dist/chart-builders/ChartBuilderRoot.d.ts.map +1 -1
  76. package/dist/chart-builders/ChartBuilderRoot.js.map +1 -1
  77. package/dist/chart-builders/chartSpecTitle.d.ts +1 -1
  78. package/dist/chart-builders/chartSpecTitle.d.ts.map +1 -1
  79. package/dist/chart-builders/chartSpecTitle.js.map +1 -1
  80. package/dist/chart-builders/chartTypeUtils.d.ts +1 -2
  81. package/dist/chart-builders/chartTypeUtils.d.ts.map +1 -1
  82. package/dist/chart-builders/chartTypeUtils.js +0 -1
  83. package/dist/chart-builders/chartTypeUtils.js.map +1 -1
  84. package/dist/chart-builders/createChartBuilderStore.d.ts +1 -1
  85. package/dist/chart-builders/createChartBuilderStore.d.ts.map +1 -1
  86. package/dist/chart-builders/createChartBuilderStore.js.map +1 -1
  87. package/dist/chart-runtime.d.ts +50 -0
  88. package/dist/chart-runtime.d.ts.map +1 -0
  89. package/dist/chart-runtime.js +76 -0
  90. package/dist/chart-runtime.js.map +1 -0
  91. package/dist/charts/MosaicChart.d.ts +12 -0
  92. package/dist/charts/MosaicChart.d.ts.map +1 -0
  93. package/dist/charts/MosaicChart.js +13 -0
  94. package/dist/charts/MosaicChart.js.map +1 -0
  95. package/dist/charts/MosaicChartError.d.ts +8 -0
  96. package/dist/charts/MosaicChartError.d.ts.map +1 -0
  97. package/dist/charts/MosaicChartError.js +5 -0
  98. package/dist/charts/MosaicChartError.js.map +1 -0
  99. package/dist/charts/MosaicChartRuntimeIssuePanel.d.ts +7 -0
  100. package/dist/charts/MosaicChartRuntimeIssuePanel.d.ts.map +1 -0
  101. package/dist/charts/MosaicChartRuntimeIssuePanel.js +10 -0
  102. package/dist/charts/MosaicChartRuntimeIssuePanel.js.map +1 -0
  103. package/dist/charts/MosaicChartSettingsPanel.d.ts +11 -0
  104. package/dist/charts/MosaicChartSettingsPanel.d.ts.map +1 -0
  105. package/dist/charts/MosaicChartSettingsPanel.js +21 -0
  106. package/dist/charts/MosaicChartSettingsPanel.js.map +1 -0
  107. package/dist/charts/MosaicChartView.d.ts +13 -0
  108. package/dist/charts/MosaicChartView.d.ts.map +1 -0
  109. package/dist/charts/MosaicChartView.js +56 -0
  110. package/dist/charts/MosaicChartView.js.map +1 -0
  111. package/dist/charts/addChartPanelAction.d.ts +3 -0
  112. package/dist/charts/addChartPanelAction.d.ts.map +1 -0
  113. package/dist/charts/addChartPanelAction.js +14 -0
  114. package/dist/charts/addChartPanelAction.js.map +1 -0
  115. package/dist/charts/chart-settings/MosaicChartSettings.d.ts +43 -0
  116. package/dist/charts/chart-settings/MosaicChartSettings.d.ts.map +1 -0
  117. package/dist/charts/chart-settings/MosaicChartSettings.js +74 -0
  118. package/dist/charts/chart-settings/MosaicChartSettings.js.map +1 -0
  119. package/dist/charts/chart-settings/MosaicChartSettingsContent.d.ts +13 -0
  120. package/dist/charts/chart-settings/MosaicChartSettingsContent.d.ts.map +1 -0
  121. package/dist/charts/chart-settings/MosaicChartSettingsContent.js +18 -0
  122. package/dist/charts/chart-settings/MosaicChartSettingsContent.js.map +1 -0
  123. package/dist/charts/chart-settings/MosaicChartSettingsContext.d.ts +24 -0
  124. package/dist/charts/chart-settings/MosaicChartSettingsContext.d.ts.map +1 -0
  125. package/dist/charts/chart-settings/MosaicChartSettingsContext.js +34 -0
  126. package/dist/charts/chart-settings/MosaicChartSettingsContext.js.map +1 -0
  127. package/dist/charts/chart-settings/MosaicChartSettingsPanel.d.ts +14 -0
  128. package/dist/charts/chart-settings/MosaicChartSettingsPanel.d.ts.map +1 -0
  129. package/dist/charts/chart-settings/MosaicChartSettingsPanel.js +17 -0
  130. package/dist/charts/chart-settings/MosaicChartSettingsPanel.js.map +1 -0
  131. package/dist/charts/chart-settings/MosaicChartSpecViewerPanel.d.ts +9 -0
  132. package/dist/charts/chart-settings/MosaicChartSpecViewerPanel.d.ts.map +1 -0
  133. package/dist/charts/chart-settings/MosaicChartSpecViewerPanel.js +11 -0
  134. package/dist/charts/chart-settings/MosaicChartSpecViewerPanel.js.map +1 -0
  135. package/dist/charts/chart-settings/MosaicChartTypeSelector.d.ts +9 -0
  136. package/dist/charts/chart-settings/MosaicChartTypeSelector.d.ts.map +1 -0
  137. package/dist/charts/chart-settings/MosaicChartTypeSelector.js +16 -0
  138. package/dist/charts/chart-settings/MosaicChartTypeSelector.js.map +1 -0
  139. package/dist/charts/chart-types/base-types.d.ts +168 -0
  140. package/dist/charts/chart-types/base-types.d.ts.map +1 -0
  141. package/dist/charts/chart-types/base-types.js.map +1 -0
  142. package/dist/charts/chart-types/box-plot/BoxPlotSettings.d.ts.map +1 -0
  143. package/dist/charts/chart-types/box-plot/BoxPlotSettings.js +9 -0
  144. package/dist/charts/chart-types/box-plot/BoxPlotSettings.js.map +1 -0
  145. package/dist/charts/chart-types/box-plot/definition.d.ts.map +1 -0
  146. package/dist/charts/chart-types/box-plot/definition.js +24 -0
  147. package/dist/charts/chart-types/box-plot/definition.js.map +1 -0
  148. package/dist/charts/chart-types/box-plot/renderer/BoxPlotClient.d.ts +67 -0
  149. package/dist/charts/chart-types/box-plot/renderer/BoxPlotClient.d.ts.map +1 -0
  150. package/dist/charts/chart-types/box-plot/renderer/BoxPlotClient.js +286 -0
  151. package/dist/charts/chart-types/box-plot/renderer/BoxPlotClient.js.map +1 -0
  152. package/dist/charts/chart-types/box-plot/renderer/BoxPlotErrorBoundary.d.ts.map +1 -0
  153. package/dist/charts/chart-types/box-plot/renderer/BoxPlotErrorBoundary.js.map +1 -0
  154. package/dist/charts/chart-types/box-plot/renderer/BoxPlotPanelRenderer.d.ts.map +1 -0
  155. package/dist/charts/chart-types/box-plot/renderer/BoxPlotPanelRenderer.js +118 -0
  156. package/dist/charts/chart-types/box-plot/renderer/BoxPlotPanelRenderer.js.map +1 -0
  157. package/dist/charts/chart-types/box-plot/renderer/constants.d.ts +24 -0
  158. package/dist/charts/chart-types/box-plot/renderer/constants.d.ts.map +1 -0
  159. package/dist/charts/chart-types/box-plot/renderer/constants.js.map +1 -0
  160. package/dist/charts/chart-types/box-plot/renderer/plot.d.ts +14 -0
  161. package/dist/charts/chart-types/box-plot/renderer/plot.d.ts.map +1 -0
  162. package/dist/charts/chart-types/box-plot/renderer/plot.js.map +1 -0
  163. package/dist/charts/chart-types/box-plot/renderer/useBoxPlotClient.d.ts +18 -0
  164. package/dist/charts/chart-types/box-plot/renderer/useBoxPlotClient.d.ts.map +1 -0
  165. package/dist/charts/chart-types/box-plot/renderer/useBoxPlotClient.js +63 -0
  166. package/dist/charts/chart-types/box-plot/renderer/useBoxPlotClient.js.map +1 -0
  167. package/dist/charts/chart-types/box-plot/renderer/utils.d.ts +6 -0
  168. package/dist/charts/chart-types/box-plot/renderer/utils.d.ts.map +1 -0
  169. package/dist/charts/chart-types/box-plot/renderer/utils.js.map +1 -0
  170. package/dist/charts/chart-types/box-plot/schema.d.ts +21 -0
  171. package/dist/charts/chart-types/box-plot/schema.d.ts.map +1 -0
  172. package/dist/charts/chart-types/box-plot/schema.js +16 -0
  173. package/dist/charts/chart-types/box-plot/schema.js.map +1 -0
  174. package/dist/charts/chart-types/box-plot/tool.d.ts +40 -0
  175. package/dist/charts/chart-types/box-plot/tool.d.ts.map +1 -0
  176. package/dist/charts/chart-types/box-plot/tool.js +67 -0
  177. package/dist/charts/chart-types/box-plot/tool.js.map +1 -0
  178. package/dist/charts/chart-types/bubble-chart/BubbleChartSettings.d.ts.map +1 -0
  179. package/dist/charts/chart-types/bubble-chart/BubbleChartSettings.js +9 -0
  180. package/dist/charts/chart-types/bubble-chart/BubbleChartSettings.js.map +1 -0
  181. package/dist/charts/chart-types/bubble-chart/definition.d.ts.map +1 -0
  182. package/dist/charts/chart-types/bubble-chart/definition.js +24 -0
  183. package/dist/charts/chart-types/bubble-chart/definition.js.map +1 -0
  184. package/dist/charts/chart-types/bubble-chart/schema.d.ts +23 -0
  185. package/dist/charts/chart-types/bubble-chart/schema.d.ts.map +1 -0
  186. package/dist/charts/chart-types/bubble-chart/schema.js +17 -0
  187. package/dist/charts/chart-types/bubble-chart/schema.js.map +1 -0
  188. package/dist/charts/chart-types/bubble-chart/spec.d.ts.map +1 -0
  189. package/dist/charts/chart-types/bubble-chart/spec.js +31 -0
  190. package/dist/charts/chart-types/bubble-chart/spec.js.map +1 -0
  191. package/dist/charts/chart-types/bubble-chart/tool.d.ts +42 -0
  192. package/dist/charts/chart-types/bubble-chart/tool.d.ts.map +1 -0
  193. package/dist/charts/chart-types/bubble-chart/tool.js +66 -0
  194. package/dist/charts/chart-types/bubble-chart/tool.js.map +1 -0
  195. package/dist/charts/chart-types/chart-config.d.ts +138 -0
  196. package/dist/charts/chart-types/chart-config.d.ts.map +1 -0
  197. package/dist/charts/chart-types/chart-config.js +41 -0
  198. package/dist/charts/chart-types/chart-config.js.map +1 -0
  199. package/dist/charts/chart-types/count-plot/CountPlotSettings.d.ts.map +1 -0
  200. package/dist/charts/chart-types/count-plot/CountPlotSettings.js +9 -0
  201. package/dist/charts/chart-types/count-plot/CountPlotSettings.js.map +1 -0
  202. package/dist/charts/chart-types/count-plot/definition.d.ts.map +1 -0
  203. package/dist/charts/chart-types/count-plot/definition.js +19 -0
  204. package/dist/charts/chart-types/count-plot/definition.js.map +1 -0
  205. package/dist/charts/chart-types/count-plot/schema.d.ts +19 -0
  206. package/dist/charts/chart-types/count-plot/schema.d.ts.map +1 -0
  207. package/dist/charts/chart-types/count-plot/schema.js +15 -0
  208. package/dist/charts/chart-types/count-plot/schema.js.map +1 -0
  209. package/dist/charts/chart-types/count-plot/spec.d.ts.map +1 -0
  210. package/dist/charts/chart-types/count-plot/spec.js +49 -0
  211. package/dist/charts/chart-types/count-plot/spec.js.map +1 -0
  212. package/dist/charts/chart-types/count-plot/tool.d.ts +38 -0
  213. package/dist/charts/chart-types/count-plot/tool.d.ts.map +1 -0
  214. package/dist/charts/chart-types/count-plot/tool.js +63 -0
  215. package/dist/charts/chart-types/count-plot/tool.js.map +1 -0
  216. package/dist/charts/chart-types/createChartTools.d.ts +17 -0
  217. package/dist/charts/chart-types/createChartTools.d.ts.map +1 -0
  218. package/dist/charts/chart-types/createChartTools.js +24 -0
  219. package/dist/charts/chart-types/createChartTools.js.map +1 -0
  220. package/dist/charts/chart-types/createDefaultChartTypes.d.ts +12 -0
  221. package/dist/charts/chart-types/createDefaultChartTypes.d.ts.map +1 -0
  222. package/dist/charts/chart-types/createDefaultChartTypes.js +30 -0
  223. package/dist/charts/chart-types/createDefaultChartTypes.js.map +1 -0
  224. package/dist/charts/chart-types/custom-spec/CustomSpecSettings.d.ts.map +1 -0
  225. package/dist/charts/chart-types/custom-spec/CustomSpecSettings.js +30 -0
  226. package/dist/charts/chart-types/custom-spec/CustomSpecSettings.js.map +1 -0
  227. package/dist/charts/chart-types/custom-spec/definition.d.ts.map +1 -0
  228. package/dist/charts/chart-types/custom-spec/definition.js +22 -0
  229. package/dist/charts/chart-types/custom-spec/definition.js.map +1 -0
  230. package/dist/charts/chart-types/custom-spec/schema.d.ts +19 -0
  231. package/dist/charts/chart-types/custom-spec/schema.d.ts.map +1 -0
  232. package/dist/charts/chart-types/custom-spec/schema.js +12 -0
  233. package/dist/charts/chart-types/custom-spec/schema.js.map +1 -0
  234. package/dist/charts/chart-types/custom-spec/spec.d.ts.map +1 -0
  235. package/dist/charts/chart-types/custom-spec/spec.js.map +1 -0
  236. package/dist/charts/chart-types/data-policy-schema.d.ts +8 -0
  237. package/dist/charts/chart-types/data-policy-schema.d.ts.map +1 -0
  238. package/dist/charts/chart-types/data-policy-schema.js +7 -0
  239. package/dist/charts/chart-types/data-policy-schema.js.map +1 -0
  240. package/dist/charts/chart-types/errors.d.ts +7 -0
  241. package/dist/charts/chart-types/errors.d.ts.map +1 -0
  242. package/dist/charts/chart-types/errors.js +10 -0
  243. package/dist/charts/chart-types/errors.js.map +1 -0
  244. package/dist/charts/chart-types/heatmap/HeatmapSettings.d.ts.map +1 -0
  245. package/dist/charts/chart-types/heatmap/HeatmapSettings.js +9 -0
  246. package/dist/charts/chart-types/heatmap/HeatmapSettings.js.map +1 -0
  247. package/dist/charts/chart-types/heatmap/definition.d.ts.map +1 -0
  248. package/dist/charts/chart-types/heatmap/definition.js +19 -0
  249. package/dist/charts/chart-types/heatmap/definition.js.map +1 -0
  250. package/dist/charts/chart-types/heatmap/schema.d.ts +21 -0
  251. package/dist/charts/chart-types/heatmap/schema.d.ts.map +1 -0
  252. package/dist/charts/chart-types/heatmap/schema.js +13 -0
  253. package/dist/charts/chart-types/heatmap/schema.js.map +1 -0
  254. package/dist/charts/chart-types/heatmap/spec.d.ts.map +1 -0
  255. package/dist/charts/chart-types/heatmap/spec.js +32 -0
  256. package/dist/charts/chart-types/heatmap/spec.js.map +1 -0
  257. package/dist/charts/chart-types/heatmap/tool.d.ts +40 -0
  258. package/dist/charts/chart-types/heatmap/tool.d.ts.map +1 -0
  259. package/dist/charts/chart-types/heatmap/tool.js +67 -0
  260. package/dist/charts/chart-types/heatmap/tool.js.map +1 -0
  261. package/dist/charts/chart-types/histogram/HistogramSettings.d.ts.map +1 -0
  262. package/dist/charts/chart-types/histogram/HistogramSettings.js +11 -0
  263. package/dist/charts/chart-types/histogram/HistogramSettings.js.map +1 -0
  264. package/dist/charts/chart-types/histogram/definition.d.ts.map +1 -0
  265. package/dist/charts/chart-types/histogram/definition.js +19 -0
  266. package/dist/charts/chart-types/histogram/definition.js.map +1 -0
  267. package/dist/charts/chart-types/histogram/schema.d.ts +24 -0
  268. package/dist/charts/chart-types/histogram/schema.d.ts.map +1 -0
  269. package/dist/charts/chart-types/histogram/schema.js +26 -0
  270. package/dist/charts/chart-types/histogram/schema.js.map +1 -0
  271. package/dist/charts/chart-types/histogram/spec.d.ts +4 -0
  272. package/dist/charts/chart-types/histogram/spec.d.ts.map +1 -0
  273. package/dist/charts/chart-types/histogram/spec.js +37 -0
  274. package/dist/charts/chart-types/histogram/spec.js.map +1 -0
  275. package/dist/charts/chart-types/histogram/tool.d.ts +40 -0
  276. package/dist/charts/chart-types/histogram/tool.d.ts.map +1 -0
  277. package/dist/charts/chart-types/histogram/tool.js +65 -0
  278. package/dist/charts/chart-types/histogram/tool.js.map +1 -0
  279. package/dist/charts/chart-types/index.d.ts +42 -0
  280. package/dist/charts/chart-types/index.d.ts.map +1 -0
  281. package/dist/charts/chart-types/index.js +53 -0
  282. package/dist/charts/chart-types/index.js.map +1 -0
  283. package/dist/charts/chart-types/line-chart/LineChartSettings.d.ts.map +1 -0
  284. package/dist/charts/chart-types/line-chart/LineChartSettings.js +24 -0
  285. package/dist/charts/chart-types/line-chart/LineChartSettings.js.map +1 -0
  286. package/dist/charts/chart-types/line-chart/definition.d.ts.map +1 -0
  287. package/dist/charts/chart-types/line-chart/definition.js +26 -0
  288. package/dist/charts/chart-types/line-chart/definition.js.map +1 -0
  289. package/dist/charts/chart-types/line-chart/schema.d.ts +70 -0
  290. package/dist/charts/chart-types/line-chart/schema.d.ts.map +1 -0
  291. package/dist/charts/chart-types/line-chart/schema.js +29 -0
  292. package/dist/charts/chart-types/line-chart/schema.js.map +1 -0
  293. package/dist/charts/chart-types/line-chart/spec.d.ts.map +1 -0
  294. package/dist/charts/chart-types/line-chart/spec.js +91 -0
  295. package/dist/charts/chart-types/line-chart/spec.js.map +1 -0
  296. package/dist/charts/chart-types/line-chart/tool.d.ts +64 -0
  297. package/dist/charts/chart-types/line-chart/tool.d.ts.map +1 -0
  298. package/dist/charts/chart-types/line-chart/tool.js +75 -0
  299. package/dist/charts/chart-types/line-chart/tool.js.map +1 -0
  300. package/dist/charts/chart-types/mosaicChartTypes.d.ts +101 -0
  301. package/dist/charts/chart-types/mosaicChartTypes.d.ts.map +1 -0
  302. package/dist/charts/chart-types/mosaicChartTypes.js +20 -0
  303. package/dist/charts/chart-types/mosaicChartTypes.js.map +1 -0
  304. package/dist/charts/dashboard/MosaicDashboardChartHeaderActions.d.ts +4 -0
  305. package/dist/charts/dashboard/MosaicDashboardChartHeaderActions.d.ts.map +1 -0
  306. package/dist/charts/dashboard/MosaicDashboardChartHeaderActions.js +16 -0
  307. package/dist/charts/dashboard/MosaicDashboardChartHeaderActions.js.map +1 -0
  308. package/dist/charts/dashboard/MosaicDashboardChartRenderer.d.ts +4 -0
  309. package/dist/charts/dashboard/MosaicDashboardChartRenderer.d.ts.map +1 -0
  310. package/dist/charts/dashboard/MosaicDashboardChartRenderer.js +23 -0
  311. package/dist/charts/dashboard/MosaicDashboardChartRenderer.js.map +1 -0
  312. package/dist/charts/useBrushSelectionParams.d.ts +3 -0
  313. package/dist/charts/useBrushSelectionParams.d.ts.map +1 -0
  314. package/dist/charts/useBrushSelectionParams.js +16 -0
  315. package/dist/charts/useBrushSelectionParams.js.map +1 -0
  316. package/dist/charts/useChartDataPolicy.d.ts +5 -0
  317. package/dist/charts/useChartDataPolicy.d.ts.map +1 -0
  318. package/dist/charts/useChartDataPolicy.js +17 -0
  319. package/dist/charts/useChartDataPolicy.js.map +1 -0
  320. package/dist/charts/useChartRetainer.d.ts +4 -0
  321. package/dist/charts/useChartRetainer.d.ts.map +1 -0
  322. package/dist/charts/useChartRetainer.js +18 -0
  323. package/dist/charts/useChartRetainer.js.map +1 -0
  324. package/dist/charts/useChartTypeDefinition.d.ts +3 -0
  325. package/dist/charts/useChartTypeDefinition.d.ts.map +1 -0
  326. package/dist/charts/useChartTypeDefinition.js.map +1 -0
  327. package/dist/charts/useMosaicChartRenderContext.d.ts +21 -0
  328. package/dist/charts/useMosaicChartRenderContext.d.ts.map +1 -0
  329. package/dist/charts/useMosaicChartRenderContext.js +63 -0
  330. package/dist/charts/useMosaicChartRenderContext.js.map +1 -0
  331. package/dist/charts/useParseChartConfig.d.ts +12 -0
  332. package/dist/charts/useParseChartConfig.d.ts.map +1 -0
  333. package/dist/charts/useParseChartConfig.js +28 -0
  334. package/dist/charts/useParseChartConfig.js.map +1 -0
  335. package/dist/charts/useRuntimeIssueReporter.d.ts +7 -0
  336. package/dist/charts/useRuntimeIssueReporter.d.ts.map +1 -0
  337. package/dist/charts/useRuntimeIssueReporter.js +19 -0
  338. package/dist/charts/useRuntimeIssueReporter.js.map +1 -0
  339. package/dist/charts/worksheet/ChartBlockHeader.d.ts +15 -0
  340. package/dist/charts/worksheet/ChartBlockHeader.d.ts.map +1 -0
  341. package/dist/charts/worksheet/ChartBlockHeader.js +9 -0
  342. package/dist/charts/worksheet/ChartBlockHeader.js.map +1 -0
  343. package/dist/charts/worksheet/ChartBlockRenderer.d.ts +4 -0
  344. package/dist/charts/worksheet/ChartBlockRenderer.d.ts.map +1 -0
  345. package/dist/charts/worksheet/ChartBlockRenderer.js +47 -0
  346. package/dist/charts/worksheet/ChartBlockRenderer.js.map +1 -0
  347. package/dist/charts/worksheet/ChartSelectorEmptyState.d.ts +15 -0
  348. package/dist/charts/worksheet/ChartSelectorEmptyState.d.ts.map +1 -0
  349. package/dist/charts/worksheet/ChartSelectorEmptyState.js +10 -0
  350. package/dist/charts/worksheet/ChartSelectorEmptyState.js.map +1 -0
  351. package/dist/column-types-utils.d.ts +12 -0
  352. package/dist/column-types-utils.d.ts.map +1 -0
  353. package/dist/column-types-utils.js +47 -0
  354. package/dist/column-types-utils.js.map +1 -0
  355. package/dist/components/AggregationSelector.d.ts +11 -0
  356. package/dist/components/AggregationSelector.d.ts.map +1 -0
  357. package/dist/components/AggregationSelector.js.map +1 -0
  358. package/dist/components/ColumnSelector.d.ts +13 -0
  359. package/dist/components/ColumnSelector.d.ts.map +1 -0
  360. package/dist/components/ColumnSelector.js +30 -0
  361. package/dist/components/ColumnSelector.js.map +1 -0
  362. package/dist/components/ColumnsContext.d.ts +11 -0
  363. package/dist/components/ColumnsContext.d.ts.map +1 -0
  364. package/dist/components/ColumnsContext.js +15 -0
  365. package/dist/components/ColumnsContext.js.map +1 -0
  366. package/dist/components/DataTableSelector.d.ts +22 -0
  367. package/dist/components/DataTableSelector.d.ts.map +1 -0
  368. package/dist/components/DataTableSelector.js +66 -0
  369. package/dist/components/DataTableSelector.js.map +1 -0
  370. package/dist/components/Field.d.ts.map +1 -0
  371. package/dist/components/Field.js.map +1 -0
  372. package/dist/components/FieldSelectorInput.d.ts +14 -0
  373. package/dist/components/FieldSelectorInput.d.ts.map +1 -0
  374. package/dist/components/FieldSelectorInput.js.map +1 -0
  375. package/dist/components/MultiFieldSelector.d.ts +14 -0
  376. package/dist/components/MultiFieldSelector.d.ts.map +1 -0
  377. package/dist/components/MultiFieldSelector.js +53 -0
  378. package/dist/components/MultiFieldSelector.js.map +1 -0
  379. package/dist/components/TableSelector.d.ts +14 -0
  380. package/dist/components/TableSelector.d.ts.map +1 -0
  381. package/dist/components/TableSelector.js +23 -0
  382. package/dist/components/TableSelector.js.map +1 -0
  383. package/dist/components/TemporalGranularitySelector.d.ts +10 -0
  384. package/dist/components/TemporalGranularitySelector.d.ts.map +1 -0
  385. package/dist/components/TemporalGranularitySelector.js +37 -0
  386. package/dist/components/TemporalGranularitySelector.js.map +1 -0
  387. package/dist/dashboard/DefaultMosaicDashboardBlock.d.ts +4 -0
  388. package/dist/dashboard/DefaultMosaicDashboardBlock.d.ts.map +1 -0
  389. package/dist/dashboard/DefaultMosaicDashboardBlock.js +6 -0
  390. package/dist/dashboard/DefaultMosaicDashboardBlock.js.map +1 -0
  391. package/dist/dashboard/MosaicDashboard.d.ts +2 -2
  392. package/dist/dashboard/MosaicDashboard.d.ts.map +1 -1
  393. package/dist/dashboard/MosaicDashboard.js +16 -37
  394. package/dist/dashboard/MosaicDashboard.js.map +1 -1
  395. package/dist/dashboard/MosaicDashboardSlice.d.ts +210 -177
  396. package/dist/dashboard/MosaicDashboardSlice.d.ts.map +1 -1
  397. package/dist/dashboard/MosaicDashboardSlice.js +109 -91
  398. package/dist/dashboard/MosaicDashboardSlice.js.map +1 -1
  399. package/dist/dashboard/action-types.d.ts +25 -0
  400. package/dist/dashboard/action-types.d.ts.map +1 -0
  401. package/dist/dashboard/action-types.js +5 -0
  402. package/dist/dashboard/action-types.js.map +1 -0
  403. package/dist/dashboard/core-types.d.ts +20 -0
  404. package/dist/dashboard/core-types.d.ts.map +1 -0
  405. package/dist/dashboard/core-types.js +15 -0
  406. package/dist/dashboard/core-types.js.map +1 -0
  407. package/dist/dashboard/createDefaultMosaicDashboardPanelRenderers.d.ts +3 -0
  408. package/dist/dashboard/createDefaultMosaicDashboardPanelRenderers.d.ts.map +1 -0
  409. package/dist/dashboard/createDefaultMosaicDashboardPanelRenderers.js +11 -0
  410. package/dist/dashboard/createDefaultMosaicDashboardPanelRenderers.js.map +1 -0
  411. package/dist/dashboard/createMosaicDashboardBlockDefinition.d.ts +12 -0
  412. package/dist/dashboard/createMosaicDashboardBlockDefinition.d.ts.map +1 -0
  413. package/dist/dashboard/createMosaicDashboardBlockDefinition.js +32 -0
  414. package/dist/dashboard/createMosaicDashboardBlockDefinition.js.map +1 -0
  415. package/dist/dashboard/dashboard-types.d.ts +449 -0
  416. package/dist/dashboard/dashboard-types.d.ts.map +1 -0
  417. package/dist/dashboard/dashboard-types.js +46 -0
  418. package/dist/dashboard/dashboard-types.js.map +1 -0
  419. package/dist/dashboard/defaultPanelActions.d.ts +3 -0
  420. package/dist/dashboard/defaultPanelActions.d.ts.map +1 -0
  421. package/dist/dashboard/defaultPanelActions.js +7 -0
  422. package/dist/dashboard/defaultPanelActions.js.map +1 -0
  423. package/dist/dashboard/panel/MosaicDashboardPanel.d.ts.map +1 -0
  424. package/dist/dashboard/panel/MosaicDashboardPanel.js +23 -0
  425. package/dist/dashboard/panel/MosaicDashboardPanel.js.map +1 -0
  426. package/dist/dashboard/panel/MosaicDashboardPanelDragOverlay.d.ts.map +1 -0
  427. package/dist/dashboard/panel/MosaicDashboardPanelDragOverlay.js +17 -0
  428. package/dist/dashboard/panel/MosaicDashboardPanelDragOverlay.js.map +1 -0
  429. package/dist/dashboard/panel/MosaicDashboardPanelErrorBoundary.d.ts +17 -0
  430. package/dist/dashboard/panel/MosaicDashboardPanelErrorBoundary.d.ts.map +1 -0
  431. package/dist/dashboard/panel/MosaicDashboardPanelErrorBoundary.js +21 -0
  432. package/dist/dashboard/panel/MosaicDashboardPanelErrorBoundary.js.map +1 -0
  433. package/dist/dashboard/panel/MosaicDashboardPanelHeader.d.ts +13 -0
  434. package/dist/dashboard/panel/MosaicDashboardPanelHeader.d.ts.map +1 -0
  435. package/dist/dashboard/panel/MosaicDashboardPanelHeader.js +30 -0
  436. package/dist/dashboard/panel/MosaicDashboardPanelHeader.js.map +1 -0
  437. package/dist/dashboard/panel/MosaicDashboardPanelLayout.d.ts.map +1 -0
  438. package/dist/dashboard/panel/MosaicDashboardPanelLayout.js.map +1 -0
  439. package/dist/dashboard/panel/MosaicDashboardPanels.d.ts.map +1 -0
  440. package/dist/dashboard/panel/MosaicDashboardPanels.js +63 -0
  441. package/dist/dashboard/panel/MosaicDashboardPanels.js.map +1 -0
  442. package/dist/dashboard/toolbar/MosaicDashboardAddPanelDropdown.d.ts +7 -0
  443. package/dist/dashboard/toolbar/MosaicDashboardAddPanelDropdown.d.ts.map +1 -0
  444. package/dist/dashboard/toolbar/MosaicDashboardAddPanelDropdown.js +12 -0
  445. package/dist/dashboard/toolbar/MosaicDashboardAddPanelDropdown.js.map +1 -0
  446. package/dist/dashboard/toolbar/MosaicDashboardResetFiltersButton.d.ts +7 -0
  447. package/dist/dashboard/toolbar/MosaicDashboardResetFiltersButton.d.ts.map +1 -0
  448. package/dist/dashboard/toolbar/MosaicDashboardResetFiltersButton.js +36 -0
  449. package/dist/dashboard/toolbar/MosaicDashboardResetFiltersButton.js.map +1 -0
  450. package/dist/dashboard/toolbar/MosaicDashboardToolbar.d.ts.map +1 -0
  451. package/dist/dashboard/toolbar/MosaicDashboardToolbar.js +24 -0
  452. package/dist/dashboard/toolbar/MosaicDashboardToolbar.js.map +1 -0
  453. package/dist/dashboard/useAddPanelActions.d.ts +10 -0
  454. package/dist/dashboard/useAddPanelActions.d.ts.map +1 -0
  455. package/dist/dashboard/useAddPanelActions.js +26 -0
  456. package/dist/dashboard/useAddPanelActions.js.map +1 -0
  457. package/dist/dashboard/useMosaicDashboardAddPanelActionContext.d.ts +3 -0
  458. package/dist/dashboard/useMosaicDashboardAddPanelActionContext.d.ts.map +1 -0
  459. package/dist/dashboard/useMosaicDashboardAddPanelActionContext.js +18 -0
  460. package/dist/dashboard/useMosaicDashboardAddPanelActionContext.js.map +1 -0
  461. package/dist/dashboard/useSelectedOrFirstTable.d.ts +10 -0
  462. package/dist/dashboard/useSelectedOrFirstTable.d.ts.map +1 -0
  463. package/dist/dashboard/useSelectedOrFirstTable.js +25 -0
  464. package/dist/dashboard/useSelectedOrFirstTable.js.map +1 -0
  465. package/dist/data-table-explorer/DataTableExplorer.d.ts +37 -0
  466. package/dist/data-table-explorer/DataTableExplorer.d.ts.map +1 -0
  467. package/dist/data-table-explorer/DataTableExplorer.js +67 -0
  468. package/dist/data-table-explorer/DataTableExplorer.js.map +1 -0
  469. package/dist/data-table-explorer/DataTableExplorerCategoryClient.d.ts +50 -0
  470. package/dist/data-table-explorer/DataTableExplorerCategoryClient.d.ts.map +1 -0
  471. package/dist/data-table-explorer/DataTableExplorerCategoryClient.js +121 -0
  472. package/dist/data-table-explorer/DataTableExplorerCategoryClient.js.map +1 -0
  473. package/dist/data-table-explorer/DataTableExplorerCountClient.d.ts +28 -0
  474. package/dist/data-table-explorer/DataTableExplorerCountClient.d.ts.map +1 -0
  475. package/dist/data-table-explorer/DataTableExplorerCountClient.js +51 -0
  476. package/dist/data-table-explorer/DataTableExplorerCountClient.js.map +1 -0
  477. package/dist/data-table-explorer/DataTableExplorerHeader.d.ts +7 -0
  478. package/dist/data-table-explorer/DataTableExplorerHeader.d.ts.map +1 -0
  479. package/dist/data-table-explorer/DataTableExplorerHeader.js +195 -0
  480. package/dist/data-table-explorer/DataTableExplorerHeader.js.map +1 -0
  481. package/dist/data-table-explorer/DataTableExplorerHistogramClient.d.ts +69 -0
  482. package/dist/data-table-explorer/DataTableExplorerHistogramClient.d.ts.map +1 -0
  483. package/dist/data-table-explorer/DataTableExplorerHistogramClient.js +179 -0
  484. package/dist/data-table-explorer/DataTableExplorerHistogramClient.js.map +1 -0
  485. package/dist/data-table-explorer/DataTableExplorerPageClient.d.ts +37 -0
  486. package/dist/data-table-explorer/DataTableExplorerPageClient.d.ts.map +1 -0
  487. package/dist/data-table-explorer/DataTableExplorerPageClient.js +65 -0
  488. package/dist/data-table-explorer/DataTableExplorerPageClient.js.map +1 -0
  489. package/dist/data-table-explorer/DataTableExplorerRows.d.ts +9 -0
  490. package/dist/data-table-explorer/DataTableExplorerRows.d.ts.map +1 -0
  491. package/dist/data-table-explorer/DataTableExplorerRows.js +65 -0
  492. package/dist/data-table-explorer/DataTableExplorerRows.js.map +1 -0
  493. package/dist/data-table-explorer/DataTableExplorerStatusBar.d.ts +9 -0
  494. package/dist/data-table-explorer/DataTableExplorerStatusBar.d.ts.map +1 -0
  495. package/dist/data-table-explorer/DataTableExplorerStatusBar.js +28 -0
  496. package/dist/data-table-explorer/DataTableExplorerStatusBar.js.map +1 -0
  497. package/dist/data-table-explorer/DataTableExplorerUnsupportedSummaryClient.d.ts +24 -0
  498. package/dist/data-table-explorer/DataTableExplorerUnsupportedSummaryClient.d.ts.map +1 -0
  499. package/dist/data-table-explorer/DataTableExplorerUnsupportedSummaryClient.js +51 -0
  500. package/dist/data-table-explorer/DataTableExplorerUnsupportedSummaryClient.js.map +1 -0
  501. package/dist/data-table-explorer/addDataTableExplorerPanelAction.d.ts +3 -0
  502. package/dist/data-table-explorer/addDataTableExplorerPanelAction.d.ts.map +1 -0
  503. package/dist/data-table-explorer/addDataTableExplorerPanelAction.js +9 -0
  504. package/dist/data-table-explorer/addDataTableExplorerPanelAction.js.map +1 -0
  505. package/dist/data-table-explorer/createDataTableExplorerStore.d.ts +46 -0
  506. package/dist/data-table-explorer/createDataTableExplorerStore.d.ts.map +1 -0
  507. package/dist/data-table-explorer/createDataTableExplorerStore.js +126 -0
  508. package/dist/data-table-explorer/createDataTableExplorerStore.js.map +1 -0
  509. package/dist/data-table-explorer/dashboard/MosaicDashboardDataTableExplorerPanelRenderer.d.ts +4 -0
  510. package/dist/data-table-explorer/dashboard/MosaicDashboardDataTableExplorerPanelRenderer.d.ts.map +1 -0
  511. package/dist/data-table-explorer/dashboard/MosaicDashboardDataTableExplorerPanelRenderer.js +28 -0
  512. package/dist/data-table-explorer/dashboard/MosaicDashboardDataTableExplorerPanelRenderer.js.map +1 -0
  513. package/dist/data-table-explorer/dataTableExplorerController.d.ts +64 -0
  514. package/dist/data-table-explorer/dataTableExplorerController.d.ts.map +1 -0
  515. package/dist/data-table-explorer/dataTableExplorerController.js +127 -0
  516. package/dist/data-table-explorer/dataTableExplorerController.js.map +1 -0
  517. package/dist/data-table-explorer/layout.d.ts +11 -0
  518. package/dist/data-table-explorer/layout.d.ts.map +1 -0
  519. package/dist/data-table-explorer/layout.js +23 -0
  520. package/dist/data-table-explorer/layout.js.map +1 -0
  521. package/dist/data-table-explorer/types.d.ts +87 -0
  522. package/dist/data-table-explorer/types.d.ts.map +1 -0
  523. package/dist/data-table-explorer/types.js.map +1 -0
  524. package/dist/data-table-explorer/useDataTableExplorer.d.ts +7 -0
  525. package/dist/data-table-explorer/useDataTableExplorer.d.ts.map +1 -0
  526. package/dist/data-table-explorer/useDataTableExplorer.js +358 -0
  527. package/dist/data-table-explorer/useDataTableExplorer.js.map +1 -0
  528. package/dist/data-table-explorer/utils.d.ts +61 -0
  529. package/dist/data-table-explorer/utils.d.ts.map +1 -0
  530. package/dist/data-table-explorer/utils.js +349 -0
  531. package/dist/data-table-explorer/utils.js.map +1 -0
  532. package/dist/data-table-explorer/worksheet/DataTableBlockHeader.d.ts +11 -0
  533. package/dist/data-table-explorer/worksheet/DataTableBlockHeader.d.ts.map +1 -0
  534. package/dist/data-table-explorer/worksheet/DataTableBlockHeader.js +7 -0
  535. package/dist/data-table-explorer/worksheet/DataTableBlockHeader.js.map +1 -0
  536. package/dist/data-table-explorer/worksheet/DataTableBlockRenderer.d.ts +4 -0
  537. package/dist/data-table-explorer/worksheet/DataTableBlockRenderer.d.ts.map +1 -0
  538. package/dist/data-table-explorer/worksheet/DataTableBlockRenderer.js +35 -0
  539. package/dist/data-table-explorer/worksheet/DataTableBlockRenderer.js.map +1 -0
  540. package/dist/editor/MosaicChartContainer.d.ts +4 -4
  541. package/dist/editor/MosaicChartContainer.js +4 -4
  542. package/dist/editor/MosaicChartContainer.js.map +1 -1
  543. package/dist/hooks/useDataTable.d.ts +3 -0
  544. package/dist/hooks/useDataTable.d.ts.map +1 -0
  545. package/dist/hooks/useDataTable.js +28 -0
  546. package/dist/hooks/useDataTable.js.map +1 -0
  547. package/dist/hooks/useTablesWithColumns.d.ts +9 -0
  548. package/dist/hooks/useTablesWithColumns.d.ts.map +1 -0
  549. package/dist/hooks/useTablesWithColumns.js +13 -0
  550. package/dist/hooks/useTablesWithColumns.js.map +1 -0
  551. package/dist/index.d.ts +48 -17
  552. package/dist/index.d.ts.map +1 -1
  553. package/dist/index.js +42 -12
  554. package/dist/index.js.map +1 -1
  555. package/dist/schemas/common.d.ts +20 -0
  556. package/dist/schemas/common.d.ts.map +1 -0
  557. package/dist/schemas/common.js +15 -0
  558. package/dist/schemas/common.js.map +1 -0
  559. package/dist/schemas/index.d.ts +2 -0
  560. package/dist/schemas/index.d.ts.map +1 -0
  561. package/dist/schemas/index.js +2 -0
  562. package/dist/schemas/index.js.map +1 -0
  563. package/dist/useMosaicClient.d.ts +4 -0
  564. package/dist/useMosaicClient.d.ts.map +1 -1
  565. package/dist/useMosaicClient.js +33 -3
  566. package/dist/useMosaicClient.js.map +1 -1
  567. package/dist/useVgPlotChartError.d.ts +13 -0
  568. package/dist/useVgPlotChartError.d.ts.map +1 -0
  569. package/dist/useVgPlotChartError.js +18 -0
  570. package/dist/useVgPlotChartError.js.map +1 -0
  571. package/dist/useVgPlotChartRender.d.ts +24 -0
  572. package/dist/useVgPlotChartRender.d.ts.map +1 -0
  573. package/dist/useVgPlotChartRender.js +162 -0
  574. package/dist/useVgPlotChartRender.js.map +1 -0
  575. package/dist/useVgPlotChartRetention.d.ts +21 -0
  576. package/dist/useVgPlotChartRetention.d.ts.map +1 -0
  577. package/dist/useVgPlotChartRetention.js +63 -0
  578. package/dist/useVgPlotChartRetention.js.map +1 -0
  579. package/dist/wrapCoordinatorWithValidation.d.ts +11 -0
  580. package/dist/wrapCoordinatorWithValidation.d.ts.map +1 -0
  581. package/dist/wrapCoordinatorWithValidation.js +23 -0
  582. package/dist/wrapCoordinatorWithValidation.js.map +1 -0
  583. package/package.json +32 -13
  584. package/dist/boxplot/BoxPlotClient.d.ts +0 -58
  585. package/dist/boxplot/BoxPlotClient.d.ts.map +0 -1
  586. package/dist/boxplot/BoxPlotClient.js +0 -264
  587. package/dist/boxplot/BoxPlotClient.js.map +0 -1
  588. package/dist/chart/MosaicDashboardChart.d.ts +0 -14
  589. package/dist/chart/MosaicDashboardChart.d.ts.map +0 -1
  590. package/dist/chart/MosaicDashboardChart.js +0 -21
  591. package/dist/chart/MosaicDashboardChart.js.map +0 -1
  592. package/dist/chart/MosaicDashboardChartContent.d.ts +0 -16
  593. package/dist/chart/MosaicDashboardChartContent.d.ts.map +0 -1
  594. package/dist/chart/MosaicDashboardChartContent.js +0 -18
  595. package/dist/chart/MosaicDashboardChartContent.js.map +0 -1
  596. package/dist/chart/MosaicDashboardChartHeaderActions.d.ts +0 -4
  597. package/dist/chart/MosaicDashboardChartHeaderActions.d.ts.map +0 -1
  598. package/dist/chart/MosaicDashboardChartHeaderActions.js +0 -16
  599. package/dist/chart/MosaicDashboardChartHeaderActions.js.map +0 -1
  600. package/dist/chart/MosaicDashboardChartRenderer.d.ts +0 -3
  601. package/dist/chart/MosaicDashboardChartRenderer.d.ts.map +0 -1
  602. package/dist/chart/MosaicDashboardChartRenderer.js +0 -31
  603. package/dist/chart/MosaicDashboardChartRenderer.js.map +0 -1
  604. package/dist/chart/MosaicDashboardComponentChart.d.ts +0 -14
  605. package/dist/chart/MosaicDashboardComponentChart.d.ts.map +0 -1
  606. package/dist/chart/MosaicDashboardComponentChart.js +0 -11
  607. package/dist/chart/MosaicDashboardComponentChart.js.map +0 -1
  608. package/dist/chart/MosaicDashboardVgPlotChart.d.ts +0 -10
  609. package/dist/chart/MosaicDashboardVgPlotChart.d.ts.map +0 -1
  610. package/dist/chart/MosaicDashboardVgPlotChart.js +0 -10
  611. package/dist/chart/MosaicDashboardVgPlotChart.js.map +0 -1
  612. package/dist/chart/MosaicDashboardVgPlotError.d.ts +0 -8
  613. package/dist/chart/MosaicDashboardVgPlotError.d.ts.map +0 -1
  614. package/dist/chart/MosaicDashboardVgPlotError.js +0 -11
  615. package/dist/chart/MosaicDashboardVgPlotError.js.map +0 -1
  616. package/dist/chart/chart-settings/ChartSettings.d.ts +0 -44
  617. package/dist/chart/chart-settings/ChartSettings.d.ts.map +0 -1
  618. package/dist/chart/chart-settings/ChartSettings.js +0 -71
  619. package/dist/chart/chart-settings/ChartSettings.js.map +0 -1
  620. package/dist/chart/chart-settings/ChartSettingsContent.d.ts +0 -13
  621. package/dist/chart/chart-settings/ChartSettingsContent.d.ts.map +0 -1
  622. package/dist/chart/chart-settings/ChartSettingsContent.js +0 -18
  623. package/dist/chart/chart-settings/ChartSettingsContent.js.map +0 -1
  624. package/dist/chart/chart-settings/ChartSettingsContext.d.ts +0 -27
  625. package/dist/chart/chart-settings/ChartSettingsContext.d.ts.map +0 -1
  626. package/dist/chart/chart-settings/ChartSettingsContext.js +0 -35
  627. package/dist/chart/chart-settings/ChartSettingsContext.js.map +0 -1
  628. package/dist/chart/chart-settings/ChartSettingsPanel.d.ts +0 -14
  629. package/dist/chart/chart-settings/ChartSettingsPanel.d.ts.map +0 -1
  630. package/dist/chart/chart-settings/ChartSettingsPanel.js +0 -17
  631. package/dist/chart/chart-settings/ChartSettingsPanel.js.map +0 -1
  632. package/dist/chart/chart-settings/ChartSpecViewerPanel.d.ts +0 -9
  633. package/dist/chart/chart-settings/ChartSpecViewerPanel.d.ts.map +0 -1
  634. package/dist/chart/chart-settings/ChartSpecViewerPanel.js +0 -11
  635. package/dist/chart/chart-settings/ChartSpecViewerPanel.js.map +0 -1
  636. package/dist/chart/chart-settings/ChartTypeSelector.d.ts +0 -9
  637. package/dist/chart/chart-settings/ChartTypeSelector.d.ts.map +0 -1
  638. package/dist/chart/chart-settings/ChartTypeSelector.js +0 -16
  639. package/dist/chart/chart-settings/ChartTypeSelector.js.map +0 -1
  640. package/dist/chart/chart-settings/useTableColumns.d.ts +0 -3
  641. package/dist/chart/chart-settings/useTableColumns.d.ts.map +0 -1
  642. package/dist/chart/chart-settings/useTableColumns.js +0 -12
  643. package/dist/chart/chart-settings/useTableColumns.js.map +0 -1
  644. package/dist/chart/useBrushSelectionParams.d.ts +0 -3
  645. package/dist/chart/useBrushSelectionParams.d.ts.map +0 -1
  646. package/dist/chart/useBrushSelectionParams.js +0 -16
  647. package/dist/chart/useBrushSelectionParams.js.map +0 -1
  648. package/dist/chart/useChartRetainer.d.ts +0 -3
  649. package/dist/chart/useChartRetainer.d.ts.map +0 -1
  650. package/dist/chart/useChartRetainer.js +0 -11
  651. package/dist/chart/useChartRetainer.js.map +0 -1
  652. package/dist/chart/useGenerateSpec.d.ts +0 -13
  653. package/dist/chart/useGenerateSpec.d.ts.map +0 -1
  654. package/dist/chart/useGenerateSpec.js +0 -32
  655. package/dist/chart/useGenerateSpec.js.map +0 -1
  656. package/dist/chart-builders/AggregationSelector.d.ts +0 -11
  657. package/dist/chart-builders/AggregationSelector.d.ts.map +0 -1
  658. package/dist/chart-builders/AggregationSelector.js.map +0 -1
  659. package/dist/chart-builders/ColumnSelector.d.ts +0 -15
  660. package/dist/chart-builders/ColumnSelector.d.ts.map +0 -1
  661. package/dist/chart-builders/ColumnSelector.js +0 -31
  662. package/dist/chart-builders/ColumnSelector.js.map +0 -1
  663. package/dist/chart-builders/Field.d.ts.map +0 -1
  664. package/dist/chart-builders/Field.js.map +0 -1
  665. package/dist/chart-builders/FieldSelectorInput.d.ts +0 -14
  666. package/dist/chart-builders/FieldSelectorInput.d.ts.map +0 -1
  667. package/dist/chart-builders/FieldSelectorInput.js.map +0 -1
  668. package/dist/chart-builders/MultiFieldSelector.d.ts +0 -14
  669. package/dist/chart-builders/MultiFieldSelector.d.ts.map +0 -1
  670. package/dist/chart-builders/MultiFieldSelector.js +0 -53
  671. package/dist/chart-builders/MultiFieldSelector.js.map +0 -1
  672. package/dist/chart-builders/TemporalGranularitySelector.d.ts +0 -10
  673. package/dist/chart-builders/TemporalGranularitySelector.d.ts.map +0 -1
  674. package/dist/chart-builders/TemporalGranularitySelector.js +0 -37
  675. package/dist/chart-builders/TemporalGranularitySelector.js.map +0 -1
  676. package/dist/chart-builders/constants.d.ts +0 -12
  677. package/dist/chart-builders/constants.d.ts.map +0 -1
  678. package/dist/chart-builders/constants.js +0 -47
  679. package/dist/chart-builders/constants.js.map +0 -1
  680. package/dist/chart-types/base-types.d.ts +0 -148
  681. package/dist/chart-types/base-types.d.ts.map +0 -1
  682. package/dist/chart-types/base-types.js.map +0 -1
  683. package/dist/chart-types/box-plot/BoxPlotSettings.d.ts.map +0 -1
  684. package/dist/chart-types/box-plot/BoxPlotSettings.js +0 -9
  685. package/dist/chart-types/box-plot/BoxPlotSettings.js.map +0 -1
  686. package/dist/chart-types/box-plot/definition.d.ts.map +0 -1
  687. package/dist/chart-types/box-plot/definition.js +0 -19
  688. package/dist/chart-types/box-plot/definition.js.map +0 -1
  689. package/dist/chart-types/box-plot/renderer/BoxPlotErrorBoundary.d.ts.map +0 -1
  690. package/dist/chart-types/box-plot/renderer/BoxPlotErrorBoundary.js.map +0 -1
  691. package/dist/chart-types/box-plot/renderer/BoxPlotPanelRenderer.d.ts.map +0 -1
  692. package/dist/chart-types/box-plot/renderer/BoxPlotPanelRenderer.js +0 -115
  693. package/dist/chart-types/box-plot/renderer/BoxPlotPanelRenderer.js.map +0 -1
  694. package/dist/chart-types/box-plot/renderer/constants.d.ts +0 -24
  695. package/dist/chart-types/box-plot/renderer/constants.d.ts.map +0 -1
  696. package/dist/chart-types/box-plot/renderer/constants.js.map +0 -1
  697. package/dist/chart-types/box-plot/renderer/plot.d.ts +0 -14
  698. package/dist/chart-types/box-plot/renderer/plot.d.ts.map +0 -1
  699. package/dist/chart-types/box-plot/renderer/plot.js.map +0 -1
  700. package/dist/chart-types/box-plot/renderer/useBoxPlotClient.d.ts +0 -14
  701. package/dist/chart-types/box-plot/renderer/useBoxPlotClient.d.ts.map +0 -1
  702. package/dist/chart-types/box-plot/renderer/useBoxPlotClient.js +0 -45
  703. package/dist/chart-types/box-plot/renderer/useBoxPlotClient.js.map +0 -1
  704. package/dist/chart-types/box-plot/renderer/utils.d.ts +0 -6
  705. package/dist/chart-types/box-plot/renderer/utils.d.ts.map +0 -1
  706. package/dist/chart-types/box-plot/renderer/utils.js.map +0 -1
  707. package/dist/chart-types/box-plot/schema.d.ts +0 -16
  708. package/dist/chart-types/box-plot/schema.d.ts.map +0 -1
  709. package/dist/chart-types/box-plot/schema.js +0 -11
  710. package/dist/chart-types/box-plot/schema.js.map +0 -1
  711. package/dist/chart-types/box-plot/tool.d.ts +0 -44
  712. package/dist/chart-types/box-plot/tool.d.ts.map +0 -1
  713. package/dist/chart-types/box-plot/tool.js +0 -59
  714. package/dist/chart-types/box-plot/tool.js.map +0 -1
  715. package/dist/chart-types/bubble-chart/BubbleChartSettings.d.ts.map +0 -1
  716. package/dist/chart-types/bubble-chart/BubbleChartSettings.js +0 -9
  717. package/dist/chart-types/bubble-chart/BubbleChartSettings.js.map +0 -1
  718. package/dist/chart-types/bubble-chart/definition.d.ts.map +0 -1
  719. package/dist/chart-types/bubble-chart/definition.js +0 -19
  720. package/dist/chart-types/bubble-chart/definition.js.map +0 -1
  721. package/dist/chart-types/bubble-chart/schema.d.ts +0 -18
  722. package/dist/chart-types/bubble-chart/schema.d.ts.map +0 -1
  723. package/dist/chart-types/bubble-chart/schema.js +0 -15
  724. package/dist/chart-types/bubble-chart/schema.js.map +0 -1
  725. package/dist/chart-types/bubble-chart/spec.d.ts.map +0 -1
  726. package/dist/chart-types/bubble-chart/spec.js +0 -31
  727. package/dist/chart-types/bubble-chart/spec.js.map +0 -1
  728. package/dist/chart-types/bubble-chart/tool.d.ts +0 -46
  729. package/dist/chart-types/bubble-chart/tool.d.ts.map +0 -1
  730. package/dist/chart-types/bubble-chart/tool.js +0 -58
  731. package/dist/chart-types/bubble-chart/tool.js.map +0 -1
  732. package/dist/chart-types/chart-config.d.ts +0 -92
  733. package/dist/chart-types/chart-config.d.ts.map +0 -1
  734. package/dist/chart-types/chart-config.js +0 -47
  735. package/dist/chart-types/chart-config.js.map +0 -1
  736. package/dist/chart-types/count-plot/CountPlotSettings.d.ts.map +0 -1
  737. package/dist/chart-types/count-plot/CountPlotSettings.js +0 -9
  738. package/dist/chart-types/count-plot/CountPlotSettings.js.map +0 -1
  739. package/dist/chart-types/count-plot/definition.d.ts.map +0 -1
  740. package/dist/chart-types/count-plot/definition.js +0 -19
  741. package/dist/chart-types/count-plot/definition.js.map +0 -1
  742. package/dist/chart-types/count-plot/schema.d.ts +0 -14
  743. package/dist/chart-types/count-plot/schema.d.ts.map +0 -1
  744. package/dist/chart-types/count-plot/schema.js +0 -13
  745. package/dist/chart-types/count-plot/schema.js.map +0 -1
  746. package/dist/chart-types/count-plot/spec.d.ts.map +0 -1
  747. package/dist/chart-types/count-plot/spec.js +0 -49
  748. package/dist/chart-types/count-plot/spec.js.map +0 -1
  749. package/dist/chart-types/count-plot/tool.d.ts +0 -42
  750. package/dist/chart-types/count-plot/tool.d.ts.map +0 -1
  751. package/dist/chart-types/count-plot/tool.js +0 -55
  752. package/dist/chart-types/count-plot/tool.js.map +0 -1
  753. package/dist/chart-types/custom-spec/CustomSpecSettings.d.ts.map +0 -1
  754. package/dist/chart-types/custom-spec/CustomSpecSettings.js +0 -30
  755. package/dist/chart-types/custom-spec/CustomSpecSettings.js.map +0 -1
  756. package/dist/chart-types/custom-spec/definition.d.ts.map +0 -1
  757. package/dist/chart-types/custom-spec/definition.js +0 -17
  758. package/dist/chart-types/custom-spec/definition.js.map +0 -1
  759. package/dist/chart-types/custom-spec/schema.d.ts +0 -14
  760. package/dist/chart-types/custom-spec/schema.d.ts.map +0 -1
  761. package/dist/chart-types/custom-spec/schema.js +0 -10
  762. package/dist/chart-types/custom-spec/schema.js.map +0 -1
  763. package/dist/chart-types/custom-spec/spec.d.ts.map +0 -1
  764. package/dist/chart-types/custom-spec/spec.js.map +0 -1
  765. package/dist/chart-types/errors.d.ts +0 -23
  766. package/dist/chart-types/errors.d.ts.map +0 -1
  767. package/dist/chart-types/errors.js +0 -26
  768. package/dist/chart-types/errors.js.map +0 -1
  769. package/dist/chart-types/heatmap/HeatmapSettings.d.ts.map +0 -1
  770. package/dist/chart-types/heatmap/HeatmapSettings.js +0 -9
  771. package/dist/chart-types/heatmap/HeatmapSettings.js.map +0 -1
  772. package/dist/chart-types/heatmap/definition.d.ts.map +0 -1
  773. package/dist/chart-types/heatmap/definition.js +0 -19
  774. package/dist/chart-types/heatmap/definition.js.map +0 -1
  775. package/dist/chart-types/heatmap/schema.d.ts +0 -16
  776. package/dist/chart-types/heatmap/schema.d.ts.map +0 -1
  777. package/dist/chart-types/heatmap/schema.js +0 -11
  778. package/dist/chart-types/heatmap/schema.js.map +0 -1
  779. package/dist/chart-types/heatmap/spec.d.ts.map +0 -1
  780. package/dist/chart-types/heatmap/spec.js +0 -32
  781. package/dist/chart-types/heatmap/spec.js.map +0 -1
  782. package/dist/chart-types/heatmap/tool.d.ts +0 -44
  783. package/dist/chart-types/heatmap/tool.d.ts.map +0 -1
  784. package/dist/chart-types/heatmap/tool.js +0 -59
  785. package/dist/chart-types/heatmap/tool.js.map +0 -1
  786. package/dist/chart-types/histogram/HistogramSettings.d.ts.map +0 -1
  787. package/dist/chart-types/histogram/HistogramSettings.js +0 -9
  788. package/dist/chart-types/histogram/HistogramSettings.js.map +0 -1
  789. package/dist/chart-types/histogram/definition.d.ts.map +0 -1
  790. package/dist/chart-types/histogram/definition.js +0 -19
  791. package/dist/chart-types/histogram/definition.js.map +0 -1
  792. package/dist/chart-types/histogram/schema.d.ts +0 -14
  793. package/dist/chart-types/histogram/schema.d.ts.map +0 -1
  794. package/dist/chart-types/histogram/schema.js +0 -13
  795. package/dist/chart-types/histogram/schema.js.map +0 -1
  796. package/dist/chart-types/histogram/spec.d.ts +0 -4
  797. package/dist/chart-types/histogram/spec.d.ts.map +0 -1
  798. package/dist/chart-types/histogram/spec.js +0 -36
  799. package/dist/chart-types/histogram/spec.js.map +0 -1
  800. package/dist/chart-types/histogram/tool.d.ts +0 -42
  801. package/dist/chart-types/histogram/tool.d.ts.map +0 -1
  802. package/dist/chart-types/histogram/tool.js +0 -55
  803. package/dist/chart-types/histogram/tool.js.map +0 -1
  804. package/dist/chart-types/index.d.ts +0 -115
  805. package/dist/chart-types/index.d.ts.map +0 -1
  806. package/dist/chart-types/index.js +0 -100
  807. package/dist/chart-types/index.js.map +0 -1
  808. package/dist/chart-types/line-chart/LineChartSettings.d.ts.map +0 -1
  809. package/dist/chart-types/line-chart/LineChartSettings.js +0 -22
  810. package/dist/chart-types/line-chart/LineChartSettings.js.map +0 -1
  811. package/dist/chart-types/line-chart/definition.d.ts.map +0 -1
  812. package/dist/chart-types/line-chart/definition.js +0 -19
  813. package/dist/chart-types/line-chart/definition.js.map +0 -1
  814. package/dist/chart-types/line-chart/schema.d.ts +0 -83
  815. package/dist/chart-types/line-chart/schema.d.ts.map +0 -1
  816. package/dist/chart-types/line-chart/schema.js +0 -39
  817. package/dist/chart-types/line-chart/schema.js.map +0 -1
  818. package/dist/chart-types/line-chart/spec.d.ts.map +0 -1
  819. package/dist/chart-types/line-chart/spec.js +0 -91
  820. package/dist/chart-types/line-chart/spec.js.map +0 -1
  821. package/dist/chart-types/line-chart/tool.d.ts +0 -68
  822. package/dist/chart-types/line-chart/tool.d.ts.map +0 -1
  823. package/dist/chart-types/line-chart/tool.js +0 -66
  824. package/dist/chart-types/line-chart/tool.js.map +0 -1
  825. package/dist/chart-types/tool-schemas.d.ts +0 -8
  826. package/dist/chart-types/tool-schemas.d.ts.map +0 -1
  827. package/dist/chart-types/tool-schemas.js +0 -18
  828. package/dist/chart-types/tool-schemas.js.map +0 -1
  829. package/dist/chart-types/tool-types.d.ts +0 -26
  830. package/dist/chart-types/tool-types.d.ts.map +0 -1
  831. package/dist/chart-types/tool-types.js.map +0 -1
  832. package/dist/chart-types/tool-validation.d.ts +0 -3
  833. package/dist/chart-types/tool-validation.d.ts.map +0 -1
  834. package/dist/chart-types/tool-validation.js.map +0 -1
  835. package/dist/chart-types/useChartTypeDefinition.d.ts +0 -3
  836. package/dist/chart-types/useChartTypeDefinition.d.ts.map +0 -1
  837. package/dist/chart-types/useChartTypeDefinition.js.map +0 -1
  838. package/dist/dashboard/DashboardPanelErrorBoundary.d.ts +0 -17
  839. package/dist/dashboard/DashboardPanelErrorBoundary.d.ts.map +0 -1
  840. package/dist/dashboard/DashboardPanelErrorBoundary.js +0 -21
  841. package/dist/dashboard/DashboardPanelErrorBoundary.js.map +0 -1
  842. package/dist/dashboard/MosaicDashboardEmptyState.d.ts +0 -2
  843. package/dist/dashboard/MosaicDashboardEmptyState.d.ts.map +0 -1
  844. package/dist/dashboard/MosaicDashboardEmptyState.js +0 -50
  845. package/dist/dashboard/MosaicDashboardEmptyState.js.map +0 -1
  846. package/dist/dashboard/MosaicDashboardPanel.d.ts.map +0 -1
  847. package/dist/dashboard/MosaicDashboardPanel.js +0 -26
  848. package/dist/dashboard/MosaicDashboardPanel.js.map +0 -1
  849. package/dist/dashboard/MosaicDashboardPanelDragOverlay.d.ts.map +0 -1
  850. package/dist/dashboard/MosaicDashboardPanelDragOverlay.js +0 -17
  851. package/dist/dashboard/MosaicDashboardPanelDragOverlay.js.map +0 -1
  852. package/dist/dashboard/MosaicDashboardPanelHeader.d.ts +0 -13
  853. package/dist/dashboard/MosaicDashboardPanelHeader.d.ts.map +0 -1
  854. package/dist/dashboard/MosaicDashboardPanelHeader.js +0 -30
  855. package/dist/dashboard/MosaicDashboardPanelHeader.js.map +0 -1
  856. package/dist/dashboard/MosaicDashboardPanelLayout.d.ts.map +0 -1
  857. package/dist/dashboard/MosaicDashboardPanelLayout.js.map +0 -1
  858. package/dist/dashboard/MosaicDashboardPanels.d.ts.map +0 -1
  859. package/dist/dashboard/MosaicDashboardPanels.js +0 -53
  860. package/dist/dashboard/MosaicDashboardPanels.js.map +0 -1
  861. package/dist/dashboard/MosaicDashboardToolbar.d.ts.map +0 -1
  862. package/dist/dashboard/MosaicDashboardToolbar.js +0 -86
  863. package/dist/dashboard/MosaicDashboardToolbar.js.map +0 -1
  864. package/dist/dashboard/defaultPanelRenderers.d.ts +0 -3
  865. package/dist/dashboard/defaultPanelRenderers.d.ts.map +0 -1
  866. package/dist/dashboard/defaultPanelRenderers.js +0 -13
  867. package/dist/dashboard/defaultPanelRenderers.js.map +0 -1
  868. package/dist/profiler/MosaicDashboardProfilerPanelRenderer.d.ts +0 -3
  869. package/dist/profiler/MosaicDashboardProfilerPanelRenderer.d.ts.map +0 -1
  870. package/dist/profiler/MosaicDashboardProfilerPanelRenderer.js +0 -32
  871. package/dist/profiler/MosaicDashboardProfilerPanelRenderer.js.map +0 -1
  872. package/dist/profiler/MosaicProfiler.d.ts +0 -32
  873. package/dist/profiler/MosaicProfiler.d.ts.map +0 -1
  874. package/dist/profiler/MosaicProfiler.js +0 -57
  875. package/dist/profiler/MosaicProfiler.js.map +0 -1
  876. package/dist/profiler/MosaicProfilerHeader.d.ts +0 -7
  877. package/dist/profiler/MosaicProfilerHeader.d.ts.map +0 -1
  878. package/dist/profiler/MosaicProfilerHeader.js +0 -196
  879. package/dist/profiler/MosaicProfilerHeader.js.map +0 -1
  880. package/dist/profiler/MosaicProfilerRows.d.ts +0 -9
  881. package/dist/profiler/MosaicProfilerRows.d.ts.map +0 -1
  882. package/dist/profiler/MosaicProfilerRows.js +0 -65
  883. package/dist/profiler/MosaicProfilerRows.js.map +0 -1
  884. package/dist/profiler/MosaicProfilerStatusBar.d.ts +0 -9
  885. package/dist/profiler/MosaicProfilerStatusBar.d.ts.map +0 -1
  886. package/dist/profiler/MosaicProfilerStatusBar.js +0 -28
  887. package/dist/profiler/MosaicProfilerStatusBar.js.map +0 -1
  888. package/dist/profiler/ProfilerCategoryClient.d.ts +0 -50
  889. package/dist/profiler/ProfilerCategoryClient.d.ts.map +0 -1
  890. package/dist/profiler/ProfilerCategoryClient.js +0 -121
  891. package/dist/profiler/ProfilerCategoryClient.js.map +0 -1
  892. package/dist/profiler/ProfilerCountClient.d.ts +0 -28
  893. package/dist/profiler/ProfilerCountClient.d.ts.map +0 -1
  894. package/dist/profiler/ProfilerCountClient.js +0 -51
  895. package/dist/profiler/ProfilerCountClient.js.map +0 -1
  896. package/dist/profiler/ProfilerHistogramClient.d.ts +0 -69
  897. package/dist/profiler/ProfilerHistogramClient.d.ts.map +0 -1
  898. package/dist/profiler/ProfilerHistogramClient.js +0 -179
  899. package/dist/profiler/ProfilerHistogramClient.js.map +0 -1
  900. package/dist/profiler/ProfilerPageClient.d.ts +0 -37
  901. package/dist/profiler/ProfilerPageClient.d.ts.map +0 -1
  902. package/dist/profiler/ProfilerPageClient.js +0 -65
  903. package/dist/profiler/ProfilerPageClient.js.map +0 -1
  904. package/dist/profiler/ProfilerUnsupportedSummaryClient.d.ts +0 -24
  905. package/dist/profiler/ProfilerUnsupportedSummaryClient.d.ts.map +0 -1
  906. package/dist/profiler/ProfilerUnsupportedSummaryClient.js +0 -51
  907. package/dist/profiler/ProfilerUnsupportedSummaryClient.js.map +0 -1
  908. package/dist/profiler/createProfilerStore.d.ts +0 -45
  909. package/dist/profiler/createProfilerStore.d.ts.map +0 -1
  910. package/dist/profiler/createProfilerStore.js +0 -120
  911. package/dist/profiler/createProfilerStore.js.map +0 -1
  912. package/dist/profiler/layout.d.ts +0 -7
  913. package/dist/profiler/layout.d.ts.map +0 -1
  914. package/dist/profiler/layout.js +0 -13
  915. package/dist/profiler/layout.js.map +0 -1
  916. package/dist/profiler/profilerController.d.ts +0 -64
  917. package/dist/profiler/profilerController.d.ts.map +0 -1
  918. package/dist/profiler/profilerController.js +0 -123
  919. package/dist/profiler/profilerController.js.map +0 -1
  920. package/dist/profiler/types.d.ts +0 -86
  921. package/dist/profiler/types.d.ts.map +0 -1
  922. package/dist/profiler/types.js.map +0 -1
  923. package/dist/profiler/useMosaicProfiler.d.ts +0 -7
  924. package/dist/profiler/useMosaicProfiler.d.ts.map +0 -1
  925. package/dist/profiler/useMosaicProfiler.js +0 -339
  926. package/dist/profiler/useMosaicProfiler.js.map +0 -1
  927. package/dist/profiler/utils.d.ts +0 -61
  928. package/dist/profiler/utils.d.ts.map +0 -1
  929. package/dist/profiler/utils.js +0 -347
  930. package/dist/profiler/utils.js.map +0 -1
  931. package/dist/text/MosaicDashboardTextRenderer.d.ts +0 -3
  932. package/dist/text/MosaicDashboardTextRenderer.d.ts.map +0 -1
  933. package/dist/text/MosaicDashboardTextRenderer.js +0 -46
  934. package/dist/text/MosaicDashboardTextRenderer.js.map +0 -1
  935. /package/dist/{chart-types → ai}/tool-types.js +0 -0
  936. /package/dist/{chart-types → ai}/tool-validation.js +0 -0
  937. /package/dist/{chart-types → charts/chart-types}/base-types.js +0 -0
  938. /package/dist/{chart-types → charts/chart-types}/box-plot/BoxPlotSettings.d.ts +0 -0
  939. /package/dist/{chart-types → charts/chart-types}/box-plot/definition.d.ts +0 -0
  940. /package/dist/{chart-types → charts/chart-types}/box-plot/renderer/BoxPlotErrorBoundary.d.ts +0 -0
  941. /package/dist/{chart-types → charts/chart-types}/box-plot/renderer/BoxPlotErrorBoundary.js +0 -0
  942. /package/dist/{chart-types → charts/chart-types}/box-plot/renderer/BoxPlotPanelRenderer.d.ts +0 -0
  943. /package/dist/{chart-types → charts/chart-types}/box-plot/renderer/constants.js +0 -0
  944. /package/dist/{chart-types → charts/chart-types}/box-plot/renderer/plot.js +0 -0
  945. /package/dist/{chart-types → charts/chart-types}/box-plot/renderer/utils.js +0 -0
  946. /package/dist/{chart-types → charts/chart-types}/bubble-chart/BubbleChartSettings.d.ts +0 -0
  947. /package/dist/{chart-types → charts/chart-types}/bubble-chart/definition.d.ts +0 -0
  948. /package/dist/{chart-types → charts/chart-types}/bubble-chart/spec.d.ts +0 -0
  949. /package/dist/{chart-types → charts/chart-types}/count-plot/CountPlotSettings.d.ts +0 -0
  950. /package/dist/{chart-types → charts/chart-types}/count-plot/definition.d.ts +0 -0
  951. /package/dist/{chart-types → charts/chart-types}/count-plot/spec.d.ts +0 -0
  952. /package/dist/{chart-types → charts/chart-types}/custom-spec/CustomSpecSettings.d.ts +0 -0
  953. /package/dist/{chart-types → charts/chart-types}/custom-spec/definition.d.ts +0 -0
  954. /package/dist/{chart-types → charts/chart-types}/custom-spec/spec.d.ts +0 -0
  955. /package/dist/{chart-types → charts/chart-types}/custom-spec/spec.js +0 -0
  956. /package/dist/{chart-types → charts/chart-types}/heatmap/HeatmapSettings.d.ts +0 -0
  957. /package/dist/{chart-types → charts/chart-types}/heatmap/definition.d.ts +0 -0
  958. /package/dist/{chart-types → charts/chart-types}/heatmap/spec.d.ts +0 -0
  959. /package/dist/{chart-types → charts/chart-types}/histogram/HistogramSettings.d.ts +0 -0
  960. /package/dist/{chart-types → charts/chart-types}/histogram/definition.d.ts +0 -0
  961. /package/dist/{chart-types → charts/chart-types}/line-chart/LineChartSettings.d.ts +0 -0
  962. /package/dist/{chart-types → charts/chart-types}/line-chart/definition.d.ts +0 -0
  963. /package/dist/{chart-types → charts/chart-types}/line-chart/spec.d.ts +0 -0
  964. /package/dist/{chart-types → charts}/useChartTypeDefinition.js +0 -0
  965. /package/dist/{chart-builders → components}/AggregationSelector.js +0 -0
  966. /package/dist/{chart-builders → components}/Field.d.ts +0 -0
  967. /package/dist/{chart-builders → components}/Field.js +0 -0
  968. /package/dist/{chart-builders → components}/FieldSelectorInput.js +0 -0
  969. /package/dist/dashboard/{MosaicDashboardPanel.d.ts → panel/MosaicDashboardPanel.d.ts} +0 -0
  970. /package/dist/dashboard/{MosaicDashboardPanelDragOverlay.d.ts → panel/MosaicDashboardPanelDragOverlay.d.ts} +0 -0
  971. /package/dist/dashboard/{MosaicDashboardPanelLayout.d.ts → panel/MosaicDashboardPanelLayout.d.ts} +0 -0
  972. /package/dist/dashboard/{MosaicDashboardPanelLayout.js → panel/MosaicDashboardPanelLayout.js} +0 -0
  973. /package/dist/dashboard/{MosaicDashboardPanels.d.ts → panel/MosaicDashboardPanels.d.ts} +0 -0
  974. /package/dist/dashboard/{MosaicDashboardToolbar.d.ts → toolbar/MosaicDashboardToolbar.d.ts} +0 -0
  975. /package/dist/{profiler → data-table-explorer}/types.js +0 -0
@@ -1 +1 @@
1
- {"version":3,"file":"MosaicDashboardSlice.js","sourceRoot":"","sources":["../../src/dashboard/MosaicDashboardSlice.ts"],"names":[],"mappings":"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","sourcesContent":["import {createId} from '@paralleldrive/cuid2';\nimport {DbSliceState} from '@sqlrooms/db';\nimport {type DataTable, type DuckDbSliceState} from '@sqlrooms/duckdb';\nimport {\n DEFAULT_GRID_COLS,\n getGridColsForBreakpoint,\n type LayoutSliceState,\n} from '@sqlrooms/layout';\nimport {\n type LayoutGridItem,\n type LayoutGridNode,\n type LayoutNode,\n type LayoutPanelNode,\n isLayoutGridNode,\n isLayoutNodeKey,\n isLayoutPanelNode,\n isLayoutSplitNode,\n LayoutNode as LayoutNodeSchema,\n} from '@sqlrooms/layout-config';\nimport {\n BaseRoomStoreState,\n createSlice,\n SliceFunctions,\n useBaseRoomStore,\n} from '@sqlrooms/room-store';\nimport {produce} from 'immer';\nimport type {ComponentType} from 'react';\nimport {z} from 'zod';\nimport type {ChartTypeDefinition} from '../chart-types/base-types';\nimport {type MosaicSliceState} from '../MosaicSlice';\nimport {\n destroyRetainedVgPlotChart,\n type RetainedVgPlotChart,\n} from '../VgPlotChart';\nimport {ChartConfig} from '../chart-types/chart-config';\n\n/**\n * Panel key used for function-form panel definitions registered by\n * `MosaicDashboardPanels`. Individual dashboard panels are represented as\n * `LayoutPanelNode` entries whose `panel` property carries\n * `{ key: MOSAIC_DASHBOARD_PANEL, meta: { dashboardId, panelId } }`.\n */\nexport const MOSAIC_DASHBOARD_PANEL = 'mosaic-dashboard-panel';\nexport const MOSAIC_DASHBOARD_CHART_PANEL_TYPE = 'vgplot';\nexport const MOSAIC_DASHBOARD_PROFILER_PANEL_TYPE = 'profiler';\nexport const MOSAIC_DASHBOARD_TEXT_PANEL_TYPE = 'text';\n\nexport const MosaicDashboardLayoutType = z.enum(['dock', 'grid']);\nexport type MosaicDashboardLayoutType = z.infer<\n typeof MosaicDashboardLayoutType\n>;\n\nexport const MosaicDashboardPanelSource = z.object({\n tableName: z.string().optional(),\n sqlQuery: z.string().optional(),\n});\nexport type MosaicDashboardPanelSource = z.infer<\n typeof MosaicDashboardPanelSource\n>;\n\n// Profiler panel config\nexport const ProfilerPanelConfig = z.object({\n pageSize: z.number().optional(),\n});\nexport type ProfilerPanelConfig = z.infer<typeof ProfilerPanelConfig>;\n\n// Text panel config\nexport const TextPanelConfig = z.object({\n content: z.string().default(''),\n toolbarOpen: z.boolean().default(true),\n sourcePanelOpen: z.boolean().default(false),\n});\nexport type TextPanelConfig = z.infer<typeof TextPanelConfig>;\n\n// Panel configs discriminated by type\nexport const ChartPanelConfig = z.object({\n id: z.string(),\n type: z.literal(MOSAIC_DASHBOARD_CHART_PANEL_TYPE),\n title: z.string().default('Panel'),\n source: MosaicDashboardPanelSource.optional(),\n config: ChartConfig,\n});\nexport type ChartPanelConfig = z.infer<typeof ChartPanelConfig>;\n\nexport const ProfilerPanel = z.object({\n id: z.string(),\n type: z.literal(MOSAIC_DASHBOARD_PROFILER_PANEL_TYPE),\n title: z.string().default('Panel'),\n source: MosaicDashboardPanelSource.optional(),\n config: ProfilerPanelConfig,\n});\nexport type ProfilerPanel = z.infer<typeof ProfilerPanel>;\n\nexport const TextPanel = z.object({\n id: z.string(),\n type: z.literal(MOSAIC_DASHBOARD_TEXT_PANEL_TYPE),\n title: z.string().default('Text'),\n source: MosaicDashboardPanelSource.optional(),\n config: TextPanelConfig,\n});\nexport type TextPanel = z.infer<typeof TextPanel>;\n\n// Legacy panel for backward compatibility\nexport const LegacyPanelConfig = z.object({\n id: z.string(),\n type: z.string(),\n title: z.string().default('Panel'),\n source: MosaicDashboardPanelSource.optional(),\n config: z.record(z.string(), z.unknown()).default({}),\n});\nexport type LegacyPanelConfig = z.infer<typeof LegacyPanelConfig>;\n\n// Discriminated union of all panel types\nexport const MosaicDashboardPanelConfig = z\n .discriminatedUnion('type', [ChartPanelConfig, ProfilerPanel, TextPanel])\n .or(LegacyPanelConfig);\nexport type MosaicDashboardPanelConfig = z.infer<\n typeof MosaicDashboardPanelConfig\n>;\n\nexport type MosaicDashboardPanelRendererProps<\n TPanel extends MosaicDashboardPanelConfig = MosaicDashboardPanelConfig,\n> = {\n dashboardId: string;\n dashboard: MosaicDashboardEntry;\n panel: TPanel;\n selectionName: string;\n resolvedSource?: MosaicDashboardPanelSource;\n};\n\nexport type ChartPanelRendererProps =\n MosaicDashboardPanelRendererProps<ChartPanelConfig>;\nexport type ProfilerPanelRendererProps =\n MosaicDashboardPanelRendererProps<ProfilerPanel>;\nexport type TextPanelRendererProps =\n MosaicDashboardPanelRendererProps<TextPanel>;\n\nexport type MosaicDashboardPanelRenderer<\n TPanel extends MosaicDashboardPanelConfig = MosaicDashboardPanelConfig,\n> = {\n component: ComponentType<MosaicDashboardPanelRendererProps<TPanel>>;\n headerActions?: ComponentType<MosaicDashboardPanelRendererProps<TPanel>>;\n icon?: ComponentType<{className?: string}>;\n};\n\n// Type-erased renderer for storage (avoids circular dependency issues)\nexport type AnyPanelRenderer = {\n component: ComponentType<any>;\n headerActions?: ComponentType<any>;\n icon?: ComponentType<{className?: string}>;\n};\n\n// Map of panel type string to panel config type\nexport type PanelTypeMap = {\n [MOSAIC_DASHBOARD_CHART_PANEL_TYPE]: ChartPanelConfig;\n [MOSAIC_DASHBOARD_PROFILER_PANEL_TYPE]: ProfilerPanel;\n [MOSAIC_DASHBOARD_TEXT_PANEL_TYPE]: TextPanel;\n};\n\n// Panel renderers record - use type-erased renderers for runtime compatibility\nexport type PanelRenderersRecord = Record<string, AnyPanelRenderer>;\n\nexport type MosaicDashboardAddPanelActionContext = {\n dashboardId: string;\n dashboard: MosaicDashboardEntry | undefined;\n selectedTable: DataTable | undefined;\n tables: DataTable[];\n};\n\nexport type MosaicDashboardAddPanelAction = {\n type: string;\n label: string;\n icon?: ComponentType<{className?: string}>;\n isEnabled?: (context: MosaicDashboardAddPanelActionContext) => boolean;\n createPanel: (\n context: MosaicDashboardAddPanelActionContext,\n ) => MosaicDashboardPanelConfig | undefined;\n};\n\nexport function createMosaicDashboardPanelConfig(options: {\n type: string;\n title: string;\n source?: MosaicDashboardPanelSource;\n config?: Record<string, unknown>;\n}): MosaicDashboardPanelConfig {\n return {\n id: createId(),\n type: options.type,\n title: options.title,\n source: options.source,\n config: options.config ?? {},\n };\n}\n\nexport function createMosaicDashboardChartPanelConfig(\n title: string,\n config: ChartConfig,\n source?: MosaicDashboardPanelSource,\n): ChartPanelConfig {\n return {\n id: createId(),\n type: MOSAIC_DASHBOARD_CHART_PANEL_TYPE,\n title,\n source,\n config,\n };\n}\n\nexport function createMosaicDashboardProfilerPanelConfig(\n options: {\n title?: string;\n source?: MosaicDashboardPanelSource;\n pageSize?: number;\n } = {},\n): MosaicDashboardPanelConfig {\n return createMosaicDashboardPanelConfig({\n type: MOSAIC_DASHBOARD_PROFILER_PANEL_TYPE,\n title: options.title ?? 'Profiler',\n source: options.source,\n config: {\n pageSize: options.pageSize ?? 10,\n },\n });\n}\n\nexport function createMosaicDashboardTextPanelConfig(\n options: {\n title?: string;\n content?: string;\n source?: MosaicDashboardPanelSource;\n } = {},\n): MosaicDashboardPanelConfig {\n return {\n id: createId(),\n type: MOSAIC_DASHBOARD_TEXT_PANEL_TYPE,\n title: options.title ?? 'Text',\n source: options.source,\n config: {\n content: options.content ?? '',\n },\n };\n}\n\nexport const MosaicDashboardEntry = z.object({\n id: z.string(),\n title: z.string().default('Dashboard'),\n layoutType: MosaicDashboardLayoutType.default('dock'),\n selectedTable: z.string().optional(),\n panels: z.array(MosaicDashboardPanelConfig).default([]),\n layout: LayoutNodeSchema.nullable().default(null),\n updatedAt: z.number().default(0),\n});\nexport type MosaicDashboardEntry = z.infer<typeof MosaicDashboardEntry>;\n\nexport const MosaicDashboardSliceConfig = z.object({\n dashboardsById: z.record(z.string(), MosaicDashboardEntry).default({}),\n});\nexport type MosaicDashboardSliceConfig = z.infer<\n typeof MosaicDashboardSliceConfig\n>;\n\nexport type MosaicDashboardSliceState = {\n mosaicDashboard: SliceFunctions & {\n config: MosaicDashboardSliceConfig;\n runtime: {\n /**\n * Live vgplot chart instances retained across transient dashboard panel\n * remounts, keyed by `getMosaicDashboardPanelId(dashboardId, panelId)`.\n *\n * This is runtime-only state: entries are never serialized with dashboard\n * config and must be evicted when their panel/dashboard lifecycle ends.\n */\n retainedChartsByPanelId: Record<string, RetainedVgPlotChart>;\n };\n chartTypes?: ChartTypeDefinition[];\n addPanelActions: MosaicDashboardAddPanelAction[];\n createDashboard: (\n title?: string,\n layoutType?: MosaicDashboardLayoutType,\n ) => string;\n ensureDashboard: (\n dashboardId: string,\n title?: string,\n layoutType?: MosaicDashboardLayoutType,\n ) => void;\n removeDashboard: (dashboardId: string) => void;\n getDashboard: (dashboardId: string) => MosaicDashboardEntry | undefined;\n setSelectedTable: (dashboardId: string, tableName: string) => void;\n panelRenderers: PanelRenderersRecord;\n registerPanelRenderer: (type: string, renderer: AnyPanelRenderer) => void;\n unregisterPanelRenderer: (type: string) => void;\n addPanel: (\n dashboardId: string,\n panel: MosaicDashboardPanelConfig,\n ) => MosaicDashboardPanelConfig['id'];\n updatePanel: (\n dashboardId: string,\n panelId: string,\n patch: Partial<Omit<MosaicDashboardPanelConfig, 'id'>>,\n ) => void;\n removePanel: (dashboardId: string, panelId: string) => void;\n getRetainedChart: (\n dashboardId: string,\n panelId: string,\n ) => RetainedVgPlotChart | undefined;\n setRetainedChart: (\n dashboardId: string,\n panelId: string,\n chart: RetainedVgPlotChart,\n ) => void;\n evictPanelRuntime: (dashboardId: string, panelId: string) => void;\n evictDashboardRuntime: (\n dashboardId: string,\n options?: {resetSelection?: boolean},\n ) => void;\n clearAllDashboardRuntime: () => void;\n setLayout: (dashboardId: string, layout: LayoutNode | null) => void;\n };\n};\n\nexport type MosaicDashboardStoreState = BaseRoomStoreState &\n DbSliceState &\n DuckDbSliceState &\n LayoutSliceState &\n MosaicSliceState &\n MosaicDashboardSliceState;\n\ntype DashboardPanelTypesByLayoutId = Record<string, string | undefined>;\n\n// ---------------------------------------------------------------------------\n// Layout tree helpers (operate on the new LayoutNode types)\n// ---------------------------------------------------------------------------\n\nfunction createDashboardPanelNode(\n dashboardId: string,\n panelId: string,\n): LayoutPanelNode {\n return {\n type: 'panel',\n id: getMosaicDashboardPanelId(dashboardId, panelId),\n minSize: 200,\n panel: {\n key: MOSAIC_DASHBOARD_PANEL,\n meta: {dashboardId, panelId},\n },\n };\n}\n\nfunction getDashboardPanelTypesByLayoutId(\n dashboardId: string,\n panels: MosaicDashboardPanelConfig[],\n): DashboardPanelTypesByLayoutId {\n return Object.fromEntries(\n panels.map((panel) => [\n getMosaicDashboardPanelId(dashboardId, panel.id),\n panel.type,\n ]),\n );\n}\n\nfunction appendPanelToLayout(\n layout: LayoutNode | null,\n panelNode: LayoutPanelNode,\n): LayoutNode {\n if (!layout) {\n return panelNode;\n }\n return {\n type: 'split',\n id: `split-${createId()}`,\n direction: 'row',\n children: [layout, panelNode],\n };\n}\n\nfunction createDashboardGridLayout(\n dashboardId: string,\n panelNode?: LayoutPanelNode,\n): LayoutGridNode {\n const children = panelNode ? [panelNode] : [];\n const layouts = createDashboardGridLayoutsForChildren(children);\n return {\n type: 'grid',\n id: getMosaicDashboardGridId(dashboardId),\n children,\n rowHeight: 150,\n margin: [12, 12],\n containerPadding: [0, 0],\n compactType: 'vertical',\n preventCollision: false,\n resizeHandles: ['e', 's', 'w', 'se', 'sw'],\n layouts,\n };\n}\n\nfunction getLayoutChildId(node: LayoutNode): string {\n return isLayoutNodeKey(node) ? node : node.id;\n}\n\nfunction createDashboardGridItem(\n panelId: string,\n layout: LayoutGridItem[],\n cols = 12,\n panelType?: string,\n): LayoutGridItem {\n const effectiveCols = Math.max(1, cols);\n const w =\n panelType === MOSAIC_DASHBOARD_PROFILER_PANEL_TYPE\n ? effectiveCols\n : Math.max(1, Math.ceil(effectiveCols / 2));\n const h = 2;\n const bottom = layout.reduce(\n (max, item) => Math.max(max, item.y + item.h),\n 0,\n );\n\n for (let y = 0; y <= bottom; y += 1) {\n for (let x = 0; x <= effectiveCols - w; x += 1) {\n const overlaps = layout.some(\n (item) =>\n x < item.x + item.w &&\n x + w > item.x &&\n y < item.y + item.h &&\n y + h > item.y,\n );\n if (!overlaps) {\n return {\n i: panelId,\n x,\n y,\n w,\n h,\n };\n }\n }\n }\n\n return {\n i: panelId,\n x: 0,\n y: bottom,\n w,\n h,\n };\n}\n\nfunction createDashboardGridLayoutsForChildren(\n children: LayoutNode[],\n sourceLayouts?: LayoutGridNode['layouts'],\n cols?: LayoutGridNode['cols'],\n panelTypesByLayoutId: Record<string, string | undefined> = {},\n): LayoutGridNode['layouts'] {\n const childIds = new Set(children.map((child) => getLayoutChildId(child)));\n const sourceEntries = new Map<string, LayoutGridItem[]>(\n Object.keys(DEFAULT_GRID_COLS).map((breakpoint) => [breakpoint, []]),\n );\n for (const [breakpoint, breakpointLayout] of Object.entries(\n sourceLayouts ?? {},\n )) {\n sourceEntries.set(breakpoint, breakpointLayout);\n }\n\n return Object.fromEntries(\n [...sourceEntries.entries()].map(([breakpoint, breakpointLayout]) => {\n const nextLayout = breakpointLayout.filter((item) =>\n childIds.has(item.i),\n );\n const layoutItemIds = new Set(nextLayout.map((item) => item.i));\n\n for (const child of children) {\n const childId = getLayoutChildId(child);\n if (!layoutItemIds.has(childId)) {\n const item = createDashboardGridItem(\n childId,\n nextLayout,\n getGridColsForBreakpoint(cols, breakpoint),\n panelTypesByLayoutId[childId],\n );\n nextLayout.push(item);\n layoutItemIds.add(childId);\n }\n }\n\n return [breakpoint, nextLayout];\n }),\n );\n}\n\nfunction isExpectedDashboardPanelNode(\n node: LayoutNode,\n expectedPanelIds: Set<string>,\n): boolean {\n return expectedPanelIds.has(getLayoutChildId(node));\n}\n\nfunction collectDashboardPanelNodes(\n layout: LayoutNode | null,\n expectedPanelIds: Set<string>,\n nodes: LayoutNode[] = [],\n seen = new Set<string>(),\n): LayoutNode[] {\n if (!layout) return nodes;\n\n if (isLayoutNodeKey(layout) || isLayoutPanelNode(layout)) {\n if (isExpectedDashboardPanelNode(layout, expectedPanelIds)) {\n const id = getLayoutChildId(layout);\n if (!seen.has(id)) {\n nodes.push(layout);\n seen.add(id);\n }\n }\n return nodes;\n }\n\n if (isLayoutSplitNode(layout) || isLayoutGridNode(layout)) {\n for (const child of layout.children) {\n collectDashboardPanelNodes(child, expectedPanelIds, nodes, seen);\n }\n }\n\n return nodes;\n}\n\nfunction normalizeDashboardGridLayout(\n layout: LayoutNode | null,\n dashboardId: string,\n expectedPanelIds: Set<string>,\n panelTypesByLayoutId: DashboardPanelTypesByLayoutId = {},\n): LayoutGridNode {\n const collectedPanelIds = collectPanelIds(layout);\n const existingExpectedPanelIds = new Set(\n [...expectedPanelIds].filter((panelId) => collectedPanelIds.has(panelId)),\n );\n const children = collectDashboardPanelNodes(layout, existingExpectedPanelIds);\n const layouts = createDashboardGridLayoutsForChildren(\n children,\n isLayoutGridNode(layout) ? layout.layouts : undefined,\n isLayoutGridNode(layout) ? layout.cols : undefined,\n panelTypesByLayoutId,\n );\n\n if (isLayoutGridNode(layout)) {\n return {\n ...layout,\n children,\n layouts,\n };\n }\n\n return {\n ...createDashboardGridLayout(dashboardId),\n children,\n layouts,\n };\n}\n\nfunction appendPanelToGridLayout(\n layout: LayoutNode | null,\n dashboardId: string,\n panelNode: LayoutPanelNode,\n panelType?: string,\n panelTypesByLayoutId: DashboardPanelTypesByLayoutId = {},\n): LayoutGridNode {\n const nextPanelTypesByLayoutId = {\n ...panelTypesByLayoutId,\n [panelNode.id]: panelType ?? panelTypesByLayoutId[panelNode.id],\n };\n\n if (!isLayoutGridNode(layout)) {\n const dashboardPanelPrefix = `dashboard:${dashboardId}:panel:`;\n const expectedPanelIds = new Set(\n [...collectPanelIds(layout)].filter((panelId) =>\n panelId.startsWith(dashboardPanelPrefix),\n ),\n );\n expectedPanelIds.add(panelNode.id);\n const normalizedLayout = normalizeDashboardGridLayout(\n layout,\n dashboardId,\n expectedPanelIds,\n nextPanelTypesByLayoutId,\n );\n return appendPanelToGridLayout(\n normalizedLayout,\n dashboardId,\n panelNode,\n panelType,\n nextPanelTypesByLayoutId,\n );\n }\n\n const hasChild = layout.children.some((child) => {\n if (isLayoutNodeKey(child)) return child === panelNode.id;\n return child.id === panelNode.id;\n });\n const children = hasChild ? layout.children : [...layout.children, panelNode];\n const layouts = Object.fromEntries(\n Object.entries(\n createDashboardGridLayoutsForChildren(\n children,\n layout.layouts,\n layout.cols,\n nextPanelTypesByLayoutId,\n ) ?? {},\n ).map(([breakpoint, breakpointLayout]) => {\n if (breakpointLayout.some((item) => item.i === panelNode.id)) {\n return [breakpoint, breakpointLayout];\n }\n return [\n breakpoint,\n [\n ...breakpointLayout,\n createDashboardGridItem(\n panelNode.id,\n breakpointLayout,\n getGridColsForBreakpoint(layout.cols, breakpoint),\n nextPanelTypesByLayoutId[panelNode.id],\n ),\n ],\n ];\n }),\n );\n\n return {\n ...layout,\n children,\n layouts,\n };\n}\n\nfunction removePanelFromLayout(\n layout: LayoutNode | null,\n panelId: string,\n): LayoutNode | null {\n if (!layout) return null;\n\n if (isLayoutNodeKey(layout)) {\n return layout === panelId ? null : layout;\n }\n\n if (isLayoutPanelNode(layout)) {\n return layout.id === panelId ? null : layout;\n }\n\n if (isLayoutSplitNode(layout)) {\n const nextChildren = layout.children\n .map((child) => removePanelFromLayout(child, panelId))\n .filter((child): child is LayoutNode => child !== null);\n\n if (nextChildren.length === 0) return null;\n if (nextChildren.length === 1) return nextChildren[0] ?? null;\n\n return {...layout, children: nextChildren};\n }\n\n if (isLayoutGridNode(layout)) {\n const nextChildren = layout.children.filter((child) => {\n if (isLayoutNodeKey(child)) return child !== panelId;\n return child.id !== panelId;\n });\n const nextLayouts = layout.layouts\n ? Object.fromEntries(\n Object.entries(layout.layouts).map(\n ([breakpoint, breakpointLayout]) => [\n breakpoint,\n breakpointLayout.filter((item) => item.i !== panelId),\n ],\n ),\n )\n : layout.layouts;\n\n if (nextChildren.length === 0) return null;\n return {...layout, children: nextChildren, layouts: nextLayouts};\n }\n\n return layout;\n}\n\nfunction collectPanelIds(\n layout: LayoutNode | null,\n panelIds = new Set<string>(),\n): Set<string> {\n if (!layout) return panelIds;\n if (isLayoutNodeKey(layout)) {\n panelIds.add(layout);\n return panelIds;\n }\n if (isLayoutPanelNode(layout)) {\n panelIds.add(layout.id);\n return panelIds;\n }\n if (isLayoutSplitNode(layout)) {\n for (const child of layout.children) {\n collectPanelIds(child, panelIds);\n }\n }\n if (isLayoutGridNode(layout)) {\n for (const child of layout.children) {\n collectPanelIds(child, panelIds);\n }\n }\n return panelIds;\n}\n\nfunction ensureLayoutContainsDashboardPanels(\n layout: LayoutNode | null,\n dashboardId: string,\n panelIds: string[],\n layoutType: MosaicDashboardLayoutType = 'dock',\n panelTypesByLayoutId: DashboardPanelTypesByLayoutId = {},\n): LayoutNode | null {\n let nextLayout = layout;\n\n if (layoutType === 'grid') {\n const expectedPanelIds = new Set(\n panelIds.map((panelId) =>\n getMosaicDashboardPanelId(dashboardId, panelId),\n ),\n );\n nextLayout = normalizeDashboardGridLayout(\n nextLayout,\n dashboardId,\n expectedPanelIds,\n panelTypesByLayoutId,\n );\n }\n\n const existing = collectPanelIds(nextLayout);\n for (const panelId of panelIds) {\n const layoutPanelId = getMosaicDashboardPanelId(dashboardId, panelId);\n if (!existing.has(layoutPanelId)) {\n const panelNode = createDashboardPanelNode(dashboardId, panelId);\n nextLayout =\n layoutType === 'grid'\n ? appendPanelToGridLayout(\n nextLayout,\n dashboardId,\n panelNode,\n panelTypesByLayoutId[layoutPanelId],\n panelTypesByLayoutId,\n )\n : appendPanelToLayout(nextLayout, panelNode);\n existing.add(layoutPanelId);\n }\n }\n\n return nextLayout;\n}\n\nexport function isChartPanelConfig(\n panel: MosaicDashboardPanelConfig,\n): panel is ChartPanelConfig {\n return panel.type === MOSAIC_DASHBOARD_CHART_PANEL_TYPE;\n}\n\nexport function getMosaicDashboardPanelId(\n dashboardId: string,\n panelId: string,\n): string {\n return `dashboard:${dashboardId}:panel:${panelId}`;\n}\n\nexport function getMosaicDashboardDockId(dashboardId: string): string {\n return `dashboard:${dashboardId}:dock`;\n}\n\nexport function getMosaicDashboardGridId(dashboardId: string): string {\n return `dashboard:${dashboardId}:grid`;\n}\n\nexport function getMosaicDashboardSelectionName(dashboardId: string): string {\n return `dashboard:${dashboardId}:brush`;\n}\n\nfunction destroyDashboardRuntimeChart(\n chart: RetainedVgPlotChart | undefined,\n): void {\n if (!chart) return;\n destroyRetainedVgPlotChart(chart);\n}\n\nfunction evictDashboardSelection(\n state: MosaicDashboardStoreState,\n dashboardId: string,\n): void {\n state.mosaic.selections[\n getMosaicDashboardSelectionName(dashboardId)\n ]?.reset();\n}\n\nfunction shouldEvictPanelRuntimeForPatch(\n panel: MosaicDashboardPanelConfig,\n patch: Partial<Omit<MosaicDashboardPanelConfig, 'id'>>,\n): boolean {\n if (patch.type && patch.type !== panel.type) {\n return true;\n }\n\n if (panel.type === MOSAIC_DASHBOARD_CHART_PANEL_TYPE) {\n return Boolean('config' in patch && patch.config);\n }\n\n return false;\n}\n\n/**\n * Type guard to check if a panel config has a source property.\n * All standard panel types (Chart, Profiler, Text) have optional sources.\n */\nexport function panelHasSource(\n panel: MosaicDashboardPanelConfig,\n): panel is ChartPanelConfig | ProfilerPanel | TextPanel {\n return (\n panel.type === MOSAIC_DASHBOARD_CHART_PANEL_TYPE ||\n panel.type === MOSAIC_DASHBOARD_PROFILER_PANEL_TYPE ||\n panel.type === MOSAIC_DASHBOARD_TEXT_PANEL_TYPE\n );\n}\n\nexport function resolveMosaicDashboardPanelSource(\n dashboard: MosaicDashboardEntry,\n panel: MosaicDashboardPanelConfig,\n): MosaicDashboardPanelSource | undefined {\n if (!panelHasSource(panel)) {\n return undefined;\n }\n if (panel.source?.sqlQuery || panel.source?.tableName) {\n return panel.source;\n }\n // Text panels typically don't need a table source\n if (panel.type === MOSAIC_DASHBOARD_TEXT_PANEL_TYPE) {\n return undefined;\n }\n return dashboard.selectedTable\n ? {tableName: dashboard.selectedTable}\n : undefined;\n}\n\nexport function createDefaultMosaicDashboardConfig(\n props?: Partial<MosaicDashboardSliceConfig>,\n): MosaicDashboardSliceConfig {\n return MosaicDashboardSliceConfig.parse({\n dashboardsById: {},\n ...props,\n });\n}\n\ntype CreateMosaicDashboardSliceProps = {\n config?: Partial<MosaicDashboardSliceConfig>;\n panelRenderers?: Record<string, MosaicDashboardPanelRenderer>;\n addPanelActions?: MosaicDashboardAddPanelAction[];\n chartTypes?: ChartTypeDefinition[];\n};\nexport type {CreateMosaicDashboardSliceProps};\n\nexport function createMosaicDashboardSlice(\n props: CreateMosaicDashboardSliceProps = {},\n) {\n return createSlice<MosaicDashboardSliceState, MosaicDashboardStoreState>(\n (set, get) => ({\n mosaicDashboard: {\n config: createDefaultMosaicDashboardConfig(props.config),\n runtime: {\n retainedChartsByPanelId: {},\n },\n chartTypes: props.chartTypes,\n addPanelActions: props.addPanelActions ?? [],\n panelRenderers: props.panelRenderers ?? {},\n\n createDashboard(title, layoutType) {\n const dashboardId = createId();\n get().mosaicDashboard.ensureDashboard(dashboardId, title, layoutType);\n return dashboardId;\n },\n\n ensureDashboard(dashboardId, title, layoutType) {\n set((state) =>\n produce(state, (draft) => {\n const existing =\n draft.mosaicDashboard.config.dashboardsById[dashboardId];\n if (existing) {\n if (title && existing.title !== title) {\n existing.title = title;\n existing.updatedAt = Date.now();\n }\n return;\n }\n draft.mosaicDashboard.config.dashboardsById[dashboardId] = {\n id: dashboardId,\n title: title ?? 'Dashboard',\n layoutType: layoutType ?? 'dock',\n selectedTable: undefined,\n panels: [],\n layout:\n layoutType === 'grid'\n ? createDashboardGridLayout(dashboardId)\n : null,\n updatedAt: Date.now(),\n };\n }),\n );\n },\n\n removeDashboard(dashboardId) {\n get().mosaicDashboard.evictDashboardRuntime(dashboardId, {\n resetSelection: true,\n });\n set((state) =>\n produce(state, (draft) => {\n delete draft.mosaicDashboard.config.dashboardsById[dashboardId];\n }),\n );\n },\n\n getDashboard(dashboardId) {\n return get().mosaicDashboard.config.dashboardsById[dashboardId];\n },\n\n setConfig(config: MosaicDashboardSliceConfig) {\n set((state) =>\n produce(state, (draft) => {\n draft.mosaicDashboard.config = config;\n }),\n );\n },\n\n setSelectedTable(dashboardId, tableName) {\n get().mosaicDashboard.ensureDashboard(dashboardId);\n set((state) =>\n produce(state, (draft) => {\n const dashboard =\n draft.mosaicDashboard.config.dashboardsById[dashboardId];\n if (!dashboard) return;\n dashboard.selectedTable = tableName;\n dashboard.updatedAt = Date.now();\n }),\n );\n },\n\n registerPanelRenderer(type, renderer) {\n set((state) =>\n produce(state, (draft) => {\n draft.mosaicDashboard.panelRenderers[type] = renderer;\n }),\n );\n },\n\n unregisterPanelRenderer(type) {\n set((state) =>\n produce(state, (draft) => {\n delete draft.mosaicDashboard.panelRenderers[type];\n }),\n );\n },\n\n addPanel(dashboardId, panel) {\n get().mosaicDashboard.ensureDashboard(dashboardId);\n set((state) =>\n produce(state, (draft) => {\n const dashboard =\n draft.mosaicDashboard.config.dashboardsById[dashboardId];\n if (!dashboard) return;\n\n dashboard.panels.push(panel);\n const panelNode = createDashboardPanelNode(dashboardId, panel.id);\n const panelTypesByLayoutId = getDashboardPanelTypesByLayoutId(\n dashboardId,\n dashboard.panels,\n );\n dashboard.layout =\n dashboard.layoutType === 'grid'\n ? appendPanelToGridLayout(\n dashboard.layout,\n dashboardId,\n panelNode,\n panel.type,\n panelTypesByLayoutId,\n )\n : appendPanelToLayout(dashboard.layout, panelNode);\n dashboard.updatedAt = Date.now();\n }),\n );\n return panel.id;\n },\n\n updatePanel(dashboardId, panelId, patch) {\n const existing = get().mosaicDashboard.config.dashboardsById[\n dashboardId\n ]?.panels.find((candidate) => candidate.id === panelId);\n const shouldEvict = existing\n ? shouldEvictPanelRuntimeForPatch(existing, patch)\n : false;\n set((state) =>\n produce(state, (draft) => {\n const dashboard =\n draft.mosaicDashboard.config.dashboardsById[dashboardId];\n if (!dashboard) return;\n\n const panel = dashboard.panels.find(\n (candidate) => candidate.id === panelId,\n );\n if (!panel) return;\n\n Object.assign(panel, patch);\n dashboard.updatedAt = Date.now();\n }),\n );\n if (shouldEvict) {\n get().mosaicDashboard.evictPanelRuntime(dashboardId, panelId);\n }\n },\n\n removePanel(dashboardId, panelId) {\n get().mosaicDashboard.evictPanelRuntime(dashboardId, panelId);\n set((state) =>\n produce(state, (draft) => {\n const dashboard =\n draft.mosaicDashboard.config.dashboardsById[dashboardId];\n if (!dashboard) return;\n\n dashboard.panels = dashboard.panels.filter(\n (panel) => panel.id !== panelId,\n );\n dashboard.layout = removePanelFromLayout(\n dashboard.layout,\n getMosaicDashboardPanelId(dashboardId, panelId),\n );\n dashboard.updatedAt = Date.now();\n }),\n );\n },\n\n getRetainedChart(dashboardId, panelId) {\n return get().mosaicDashboard.runtime.retainedChartsByPanelId[\n getMosaicDashboardPanelId(dashboardId, panelId)\n ];\n },\n\n setRetainedChart(dashboardId, panelId, chart) {\n const runtimePanelId = getMosaicDashboardPanelId(\n dashboardId,\n panelId,\n );\n const previous =\n get().mosaicDashboard.runtime.retainedChartsByPanelId[\n runtimePanelId\n ];\n if (previous && previous !== chart) {\n destroyDashboardRuntimeChart(previous);\n }\n set((state) => ({\n mosaicDashboard: {\n ...state.mosaicDashboard,\n runtime: {\n ...state.mosaicDashboard.runtime,\n retainedChartsByPanelId: {\n ...state.mosaicDashboard.runtime.retainedChartsByPanelId,\n [runtimePanelId]: chart,\n },\n },\n },\n }));\n },\n\n evictPanelRuntime(dashboardId, panelId) {\n const runtimePanelId = getMosaicDashboardPanelId(\n dashboardId,\n panelId,\n );\n const existing =\n get().mosaicDashboard.runtime.retainedChartsByPanelId[\n runtimePanelId\n ];\n destroyDashboardRuntimeChart(existing);\n set((state) => {\n const nextRetainedChartsByPanelId = {\n ...state.mosaicDashboard.runtime.retainedChartsByPanelId,\n };\n delete nextRetainedChartsByPanelId[runtimePanelId];\n return {\n mosaicDashboard: {\n ...state.mosaicDashboard,\n runtime: {\n ...state.mosaicDashboard.runtime,\n retainedChartsByPanelId: nextRetainedChartsByPanelId,\n },\n },\n };\n });\n },\n\n evictDashboardRuntime(dashboardId, options) {\n const runtimePrefix = `dashboard:${dashboardId}:panel:`;\n const existingEntries = Object.entries(\n get().mosaicDashboard.runtime.retainedChartsByPanelId,\n ).filter(([runtimePanelId]) =>\n runtimePanelId.startsWith(runtimePrefix),\n );\n\n existingEntries.forEach(([, chart]) => {\n destroyDashboardRuntimeChart(chart);\n });\n\n if (options?.resetSelection) {\n evictDashboardSelection(get(), dashboardId);\n }\n\n set((state) => {\n const nextRetainedChartsByPanelId = {\n ...state.mosaicDashboard.runtime.retainedChartsByPanelId,\n };\n for (const [runtimePanelId] of existingEntries) {\n delete nextRetainedChartsByPanelId[runtimePanelId];\n }\n return {\n mosaicDashboard: {\n ...state.mosaicDashboard,\n runtime: {\n ...state.mosaicDashboard.runtime,\n retainedChartsByPanelId: nextRetainedChartsByPanelId,\n },\n },\n };\n });\n },\n\n clearAllDashboardRuntime() {\n Object.values(\n get().mosaicDashboard.runtime.retainedChartsByPanelId,\n ).forEach((chart) => {\n destroyDashboardRuntimeChart(chart);\n });\n set((state) => ({\n mosaicDashboard: {\n ...state.mosaicDashboard,\n runtime: {\n ...state.mosaicDashboard.runtime,\n retainedChartsByPanelId: {},\n },\n },\n }));\n },\n\n setLayout(dashboardId, layout) {\n get().mosaicDashboard.ensureDashboard(dashboardId);\n set((state) =>\n produce(state, (draft) => {\n const dashboard =\n draft.mosaicDashboard.config.dashboardsById[dashboardId];\n if (!dashboard) return;\n\n const panelIds = dashboard.panels.map((panel) => panel.id);\n const panelTypesByLayoutId = getDashboardPanelTypesByLayoutId(\n dashboardId,\n dashboard.panels,\n );\n dashboard.layout = ensureLayoutContainsDashboardPanels(\n layout,\n dashboardId,\n panelIds,\n dashboard.layoutType,\n panelTypesByLayoutId,\n );\n dashboard.updatedAt = Date.now();\n }),\n );\n },\n },\n }),\n );\n}\n\nexport function useStoreWithMosaicDashboard<T>(\n selector: (state: MosaicDashboardStoreState) => T,\n): T {\n return useBaseRoomStore<BaseRoomStoreState, T>((state) =>\n selector(state as unknown as MosaicDashboardStoreState),\n );\n}\n"]}
1
+ {"version":3,"file":"MosaicDashboardSlice.js","sourceRoot":"","sources":["../../src/dashboard/MosaicDashboardSlice.ts"],"names":[],"mappings":"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","sourcesContent":["import {createId} from '@paralleldrive/cuid2';\nimport {DbSliceState} from '@sqlrooms/db';\nimport {type DuckDbSliceState} from '@sqlrooms/duckdb';\nimport {\n DEFAULT_GRID_COLS,\n getGridColsForBreakpoint,\n type LayoutSliceState,\n} from '@sqlrooms/layout';\nimport {\n type LayoutGridItem,\n type LayoutGridNode,\n LayoutNode,\n type LayoutPanelNode,\n isLayoutGridNode,\n isLayoutNodeKey,\n isLayoutPanelNode,\n isLayoutSplitNode,\n} from '@sqlrooms/layout-config';\nimport {\n BaseRoomStoreState,\n createSlice,\n SliceFunctions,\n useBaseRoomStore,\n} from '@sqlrooms/room-store';\nimport {produce} from 'immer';\nimport type {ComponentType} from 'react';\nimport {z} from 'zod';\nimport type {ChartTypeDefinition} from '../charts/chart-types/base-types';\nimport {ChartConfig} from '../charts/chart-types/chart-config';\nimport {type MosaicSliceState} from '../MosaicSlice';\nimport {\n destroyRetainedVgPlotChart,\n type RetainedVgPlotChart,\n} from '../VgPlotChart';\nimport type {MosaicDashboardAddPanelAction} from './action-types';\nimport type {ChartRuntimeIssue} from '../chart-runtime';\n\n/**\n * Panel key used for function-form panel definitions registered by\n * `MosaicDashboardPanels`. Individual dashboard panels are represented as\n * `LayoutPanelNode` entries whose `panel` property carries\n * `{ key: MOSAIC_DASHBOARD_PANEL, meta: { dashboardId, panelId } }`.\n */\nexport const MOSAIC_DASHBOARD_PANEL = 'mosaic-dashboard-panel';\nexport const MOSAIC_DASHBOARD_CHART_PANEL_TYPE = 'vgplot';\nexport const MOSAIC_DASHBOARD_DATA_TABLE_EXPLORER_PANEL_TYPE =\n 'data-table-explorer';\n\nexport const MosaicDashboardLayoutType = z.enum(['dock', 'grid']);\nexport type MosaicDashboardLayoutType = z.infer<\n typeof MosaicDashboardLayoutType\n>;\n\n// DataTableExplorer panel config\nexport const DataTableExplorerPanelConfig = z.object({\n pageSize: z.number().optional(),\n});\nexport type DataTableExplorerPanelConfig = z.infer<\n typeof DataTableExplorerPanelConfig\n>;\n\n// Panel configs discriminated by type\nexport const ChartPanelConfig = z.object({\n id: z.string(),\n type: z.literal(MOSAIC_DASHBOARD_CHART_PANEL_TYPE),\n title: z.string().default('Panel'),\n config: ChartConfig,\n});\nexport type ChartPanelConfig = z.infer<typeof ChartPanelConfig>;\n\nexport const DataTableExplorerPanel = z.object({\n id: z.string(),\n type: z.literal(MOSAIC_DASHBOARD_DATA_TABLE_EXPLORER_PANEL_TYPE),\n title: z.string().default('Panel'),\n config: DataTableExplorerPanelConfig,\n});\nexport type DataTableExplorerPanel = z.infer<typeof DataTableExplorerPanel>;\n\n// Legacy panel for backward compatibility\nexport const LegacyPanelConfig = z.object({\n id: z.string(),\n type: z.string(),\n title: z.string().default('Panel'),\n config: z.record(z.string(), z.unknown()).default({}),\n});\nexport type LegacyPanelConfig = z.infer<typeof LegacyPanelConfig>;\n\n// Discriminated union of all panel types\nexport const MosaicDashboardPanelConfig = z\n .discriminatedUnion('type', [ChartPanelConfig, DataTableExplorerPanel])\n .or(LegacyPanelConfig);\nexport type MosaicDashboardPanelConfig = z.infer<\n typeof MosaicDashboardPanelConfig\n>;\n\nexport type MosaicDashboardPanelRendererProps<\n TPanel extends MosaicDashboardPanelConfig = MosaicDashboardPanelConfig,\n> = {\n dashboardId: string;\n dashboard: MosaicDashboardEntry;\n panel: TPanel;\n selectionName: string;\n};\n\nexport type ChartPanelRendererProps =\n MosaicDashboardPanelRendererProps<ChartPanelConfig>;\nexport type DataTableExplorerPanelRendererProps =\n MosaicDashboardPanelRendererProps<DataTableExplorerPanel>;\n\nexport type MosaicDashboardPanelRenderer<\n TPanel extends MosaicDashboardPanelConfig = MosaicDashboardPanelConfig,\n> = {\n component: ComponentType<MosaicDashboardPanelRendererProps<TPanel>>;\n headerActions?: ComponentType<MosaicDashboardPanelRendererProps<TPanel>>;\n icon?: ComponentType<{className?: string}>;\n};\n\n// Type-erased renderer for storage (avoids circular dependency issues)\nexport type AnyPanelRenderer = {\n component: ComponentType<any>;\n headerActions?: ComponentType<any>;\n icon?: ComponentType<{className?: string}>;\n};\n\n// Map of panel type string to panel config type\nexport type PanelTypeMap = {\n [MOSAIC_DASHBOARD_CHART_PANEL_TYPE]: ChartPanelConfig;\n [MOSAIC_DASHBOARD_DATA_TABLE_EXPLORER_PANEL_TYPE]: DataTableExplorerPanel;\n};\n\n// Panel renderers record - use type-erased renderers for runtime compatibility\nexport type PanelRenderersRecord = Record<string, AnyPanelRenderer>;\n\nexport function createMosaicDashboardChartPanelConfig(\n title: string,\n config: ChartConfig,\n): ChartPanelConfig {\n return {\n id: createId(),\n type: MOSAIC_DASHBOARD_CHART_PANEL_TYPE,\n title,\n config,\n };\n}\n\nexport function createMosaicDashboardDataTableExplorerPanelConfig(\n options: {\n title?: string;\n config?: DataTableExplorerPanelConfig;\n } = {},\n): DataTableExplorerPanel {\n return {\n id: createId(),\n type: MOSAIC_DASHBOARD_DATA_TABLE_EXPLORER_PANEL_TYPE,\n title: options.title ?? 'Data Table Explorer',\n config: options.config ?? {},\n };\n}\n\nexport const MosaicDashboardEntry = z.object({\n id: z.string(),\n title: z.string().default('Dashboard'),\n layoutType: MosaicDashboardLayoutType.default('dock'),\n selectedTable: z.string().optional(),\n lastSelectedTable: z.string().optional(),\n panels: z.array(MosaicDashboardPanelConfig).default([]),\n layout: LayoutNode.nullable().default(null),\n updatedAt: z.number().default(0),\n});\nexport type MosaicDashboardEntry = z.infer<typeof MosaicDashboardEntry>;\n\nexport const MosaicDashboardSliceConfig = z.object({\n dashboardsById: z.record(z.string(), MosaicDashboardEntry).default({}),\n});\nexport type MosaicDashboardSliceConfig = z.infer<\n typeof MosaicDashboardSliceConfig\n>;\n\nexport type MosaicDashboardSliceState = {\n mosaicDashboard: SliceFunctions & {\n config: MosaicDashboardSliceConfig;\n runtime: {\n /**\n * Live vgplot chart instances retained across transient dashboard panel\n * remounts, keyed by `getMosaicDashboardPanelId(dashboardId, panelId)`.\n *\n * This is runtime-only state: entries are never serialized with dashboard\n * config and must be evicted when their panel/dashboard lifecycle ends.\n */\n retainedChartsByPanelId: Record<string, RetainedVgPlotChart>;\n /**\n * Runtime-only chart issues keyed by `getMosaicDashboardPanelId`.\n * These are live diagnostics for UI and AI tools, not persisted config.\n */\n panelIssuesByPanelId: Record<string, ChartRuntimeIssue>;\n };\n chartTypes?: ChartTypeDefinition[];\n addPanelActions: MosaicDashboardAddPanelAction[];\n createDashboard: (\n title?: string,\n layoutType?: MosaicDashboardLayoutType,\n ) => string;\n ensureDashboard: (\n dashboardId: string,\n title?: string,\n layoutType?: MosaicDashboardLayoutType,\n ) => void;\n removeDashboard: (dashboardId: string) => void;\n getDashboard: (dashboardId: string) => MosaicDashboardEntry | undefined;\n setSelectedTable: (dashboardId: string, tableName: string) => void;\n setLastSelectedTable: (dashboardId: string, tableName: string) => void;\n panelRenderers: PanelRenderersRecord;\n registerPanelRenderer: (type: string, renderer: AnyPanelRenderer) => void;\n unregisterPanelRenderer: (type: string) => void;\n addPanel: (\n dashboardId: string,\n panel: MosaicDashboardPanelConfig,\n ) => MosaicDashboardPanelConfig['id'];\n updatePanel: (\n dashboardId: string,\n panelId: string,\n patch: Partial<Omit<MosaicDashboardPanelConfig, 'id'>>,\n ) => void;\n removePanel: (dashboardId: string, panelId: string) => void;\n getRetainedChart: (\n dashboardId: string,\n panelId: string,\n ) => RetainedVgPlotChart | undefined;\n getRetainedChartByKey: (\n runtimeKey: string,\n ) => RetainedVgPlotChart | undefined;\n setRetainedChart: (\n dashboardId: string,\n panelId: string,\n chart: RetainedVgPlotChart,\n ) => void;\n setRetainedChartByKey: (\n runtimeKey: string,\n chart: RetainedVgPlotChart,\n ) => void;\n getPanelIssue: (\n dashboardId: string,\n panelId: string,\n ) => ChartRuntimeIssue | undefined;\n getPanelIssueByKey: (runtimeKey: string) => ChartRuntimeIssue | undefined;\n reportPanelIssue: (\n dashboardId: string,\n panelId: string,\n issue: ChartRuntimeIssue,\n ) => void;\n reportPanelIssueByKey: (\n runtimeKey: string,\n issue: ChartRuntimeIssue,\n ) => void;\n clearPanelIssue: (dashboardId: string, panelId: string) => void;\n clearPanelIssueByKey: (runtimeKey: string) => void;\n evictPanelRuntime: (dashboardId: string, panelId: string) => void;\n evictPanelRuntimeByKey: (runtimeKey: string) => void;\n evictDashboardRuntime: (\n dashboardId: string,\n options?: {resetSelection?: boolean},\n ) => void;\n clearAllDashboardRuntime: () => void;\n setLayout: (dashboardId: string, layout: LayoutNode | null) => void;\n };\n};\n\nexport type MosaicDashboardStoreState = BaseRoomStoreState &\n DbSliceState &\n DuckDbSliceState &\n LayoutSliceState &\n MosaicSliceState &\n MosaicDashboardSliceState;\n\ntype DashboardPanelTypesByLayoutId = Record<string, string | undefined>;\n\n// ---------------------------------------------------------------------------\n// Layout tree helpers (operate on the new LayoutNode types)\n// ---------------------------------------------------------------------------\n\nfunction createDashboardPanelNode(\n dashboardId: string,\n panelId: string,\n): LayoutPanelNode {\n return {\n type: 'panel',\n id: getMosaicDashboardPanelId(dashboardId, panelId),\n minSize: 200,\n panel: {\n key: MOSAIC_DASHBOARD_PANEL,\n meta: {dashboardId, panelId},\n },\n };\n}\n\nfunction getDashboardPanelTypesByLayoutId(\n dashboardId: string,\n panels: MosaicDashboardPanelConfig[],\n): DashboardPanelTypesByLayoutId {\n return Object.fromEntries(\n panels.map((panel) => [\n getMosaicDashboardPanelId(dashboardId, panel.id),\n panel.type,\n ]),\n );\n}\n\nfunction appendPanelToLayout(\n layout: LayoutNode | null,\n panelNode: LayoutPanelNode,\n): LayoutNode {\n if (!layout) {\n return panelNode;\n }\n return {\n type: 'split',\n id: `split-${createId()}`,\n direction: 'row',\n children: [layout, panelNode],\n };\n}\n\nfunction createDashboardGridLayout(\n dashboardId: string,\n panelNode?: LayoutPanelNode,\n): LayoutGridNode {\n const children = panelNode ? [panelNode] : [];\n const layouts = createDashboardGridLayoutsForChildren(children);\n return {\n type: 'grid',\n id: getMosaicDashboardGridId(dashboardId),\n children,\n rowHeight: 150,\n margin: [12, 12],\n containerPadding: [0, 0],\n compactType: 'vertical',\n preventCollision: false,\n resizeHandles: ['e', 's', 'w', 'se', 'sw'],\n layouts,\n };\n}\n\nfunction getLayoutChildId(node: LayoutNode): string {\n return isLayoutNodeKey(node) ? node : node.id;\n}\n\nfunction createDashboardGridItem(\n panelId: string,\n layout: LayoutGridItem[],\n cols = 12,\n panelType?: string,\n): LayoutGridItem {\n const effectiveCols = Math.max(1, cols);\n const w =\n panelType === MOSAIC_DASHBOARD_DATA_TABLE_EXPLORER_PANEL_TYPE\n ? effectiveCols\n : Math.max(1, Math.ceil(effectiveCols / 2));\n const h = 2;\n const bottom = layout.reduce(\n (max, item) => Math.max(max, item.y + item.h),\n 0,\n );\n\n for (let y = 0; y <= bottom; y += 1) {\n for (let x = 0; x <= effectiveCols - w; x += 1) {\n const overlaps = layout.some(\n (item) =>\n x < item.x + item.w &&\n x + w > item.x &&\n y < item.y + item.h &&\n y + h > item.y,\n );\n if (!overlaps) {\n return {\n i: panelId,\n x,\n y,\n w,\n h,\n };\n }\n }\n }\n\n return {\n i: panelId,\n x: 0,\n y: bottom,\n w,\n h,\n };\n}\n\nfunction createDashboardGridLayoutsForChildren(\n children: LayoutNode[],\n sourceLayouts?: LayoutGridNode['layouts'],\n cols?: LayoutGridNode['cols'],\n panelTypesByLayoutId: Record<string, string | undefined> = {},\n): LayoutGridNode['layouts'] {\n const childIds = new Set(children.map((child) => getLayoutChildId(child)));\n const sourceEntries = new Map<string, LayoutGridItem[]>(\n Object.keys(DEFAULT_GRID_COLS).map((breakpoint) => [breakpoint, []]),\n );\n for (const [breakpoint, breakpointLayout] of Object.entries(\n sourceLayouts ?? {},\n )) {\n sourceEntries.set(breakpoint, breakpointLayout);\n }\n\n return Object.fromEntries(\n [...sourceEntries.entries()].map(([breakpoint, breakpointLayout]) => {\n const nextLayout = breakpointLayout.filter((item) =>\n childIds.has(item.i),\n );\n const layoutItemIds = new Set(nextLayout.map((item) => item.i));\n\n for (const child of children) {\n const childId = getLayoutChildId(child);\n if (!layoutItemIds.has(childId)) {\n const item = createDashboardGridItem(\n childId,\n nextLayout,\n getGridColsForBreakpoint(cols, breakpoint),\n panelTypesByLayoutId[childId],\n );\n nextLayout.push(item);\n layoutItemIds.add(childId);\n }\n }\n\n return [breakpoint, nextLayout];\n }),\n );\n}\n\nfunction isExpectedDashboardPanelNode(\n node: LayoutNode,\n expectedPanelIds: Set<string>,\n): boolean {\n return expectedPanelIds.has(getLayoutChildId(node));\n}\n\nfunction collectDashboardPanelNodes(\n layout: LayoutNode | null,\n expectedPanelIds: Set<string>,\n nodes: LayoutNode[] = [],\n seen = new Set<string>(),\n): LayoutNode[] {\n if (!layout) return nodes;\n\n if (isLayoutNodeKey(layout) || isLayoutPanelNode(layout)) {\n if (isExpectedDashboardPanelNode(layout, expectedPanelIds)) {\n const id = getLayoutChildId(layout);\n if (!seen.has(id)) {\n nodes.push(layout);\n seen.add(id);\n }\n }\n return nodes;\n }\n\n if (isLayoutSplitNode(layout) || isLayoutGridNode(layout)) {\n for (const child of layout.children) {\n collectDashboardPanelNodes(child, expectedPanelIds, nodes, seen);\n }\n }\n\n return nodes;\n}\n\nfunction normalizeDashboardGridLayout(\n layout: LayoutNode | null,\n dashboardId: string,\n expectedPanelIds: Set<string>,\n panelTypesByLayoutId: DashboardPanelTypesByLayoutId = {},\n): LayoutGridNode {\n const collectedPanelIds = collectPanelIds(layout);\n const existingExpectedPanelIds = new Set(\n [...expectedPanelIds].filter((panelId) => collectedPanelIds.has(panelId)),\n );\n const children = collectDashboardPanelNodes(layout, existingExpectedPanelIds);\n const layouts = createDashboardGridLayoutsForChildren(\n children,\n isLayoutGridNode(layout) ? layout.layouts : undefined,\n isLayoutGridNode(layout) ? layout.cols : undefined,\n panelTypesByLayoutId,\n );\n\n if (isLayoutGridNode(layout)) {\n return {\n ...layout,\n children,\n layouts,\n };\n }\n\n return {\n ...createDashboardGridLayout(dashboardId),\n children,\n layouts,\n };\n}\n\nfunction appendPanelToGridLayout(\n layout: LayoutNode | null,\n dashboardId: string,\n panelNode: LayoutPanelNode,\n panelType?: string,\n panelTypesByLayoutId: DashboardPanelTypesByLayoutId = {},\n): LayoutGridNode {\n const nextPanelTypesByLayoutId = {\n ...panelTypesByLayoutId,\n [panelNode.id]: panelType ?? panelTypesByLayoutId[panelNode.id],\n };\n\n if (!isLayoutGridNode(layout)) {\n const dashboardPanelPrefix = `dashboard:${dashboardId}:panel:`;\n const expectedPanelIds = new Set(\n [...collectPanelIds(layout)].filter((panelId) =>\n panelId.startsWith(dashboardPanelPrefix),\n ),\n );\n expectedPanelIds.add(panelNode.id);\n const normalizedLayout = normalizeDashboardGridLayout(\n layout,\n dashboardId,\n expectedPanelIds,\n nextPanelTypesByLayoutId,\n );\n return appendPanelToGridLayout(\n normalizedLayout,\n dashboardId,\n panelNode,\n panelType,\n nextPanelTypesByLayoutId,\n );\n }\n\n const hasChild = layout.children.some((child) => {\n if (isLayoutNodeKey(child)) return child === panelNode.id;\n return child.id === panelNode.id;\n });\n const children = hasChild ? layout.children : [...layout.children, panelNode];\n const layouts = Object.fromEntries(\n Object.entries(\n createDashboardGridLayoutsForChildren(\n children,\n layout.layouts,\n layout.cols,\n nextPanelTypesByLayoutId,\n ) ?? {},\n ).map(([breakpoint, breakpointLayout]) => {\n if (breakpointLayout.some((item) => item.i === panelNode.id)) {\n return [breakpoint, breakpointLayout];\n }\n return [\n breakpoint,\n [\n ...breakpointLayout,\n createDashboardGridItem(\n panelNode.id,\n breakpointLayout,\n getGridColsForBreakpoint(layout.cols, breakpoint),\n nextPanelTypesByLayoutId[panelNode.id],\n ),\n ],\n ];\n }),\n );\n\n return {\n ...layout,\n children,\n layouts,\n };\n}\n\nfunction removePanelFromLayout(\n layout: LayoutNode | null,\n panelId: string,\n): LayoutNode | null {\n if (!layout) return null;\n\n if (isLayoutNodeKey(layout)) {\n return layout === panelId ? null : layout;\n }\n\n if (isLayoutPanelNode(layout)) {\n return layout.id === panelId ? null : layout;\n }\n\n if (isLayoutSplitNode(layout)) {\n const nextChildren = layout.children\n .map((child) => removePanelFromLayout(child, panelId))\n .filter((child): child is LayoutNode => child !== null);\n\n if (nextChildren.length === 0) return null;\n if (nextChildren.length === 1) return nextChildren[0] ?? null;\n\n return {...layout, children: nextChildren};\n }\n\n if (isLayoutGridNode(layout)) {\n const nextChildren = layout.children.filter((child) => {\n if (isLayoutNodeKey(child)) return child !== panelId;\n return child.id !== panelId;\n });\n const nextLayouts = layout.layouts\n ? Object.fromEntries(\n Object.entries(layout.layouts).map(\n ([breakpoint, breakpointLayout]) => [\n breakpoint,\n breakpointLayout.filter((item) => item.i !== panelId),\n ],\n ),\n )\n : layout.layouts;\n\n if (nextChildren.length === 0) return null;\n return {...layout, children: nextChildren, layouts: nextLayouts};\n }\n\n return layout;\n}\n\nfunction collectPanelIds(\n layout: LayoutNode | null,\n panelIds = new Set<string>(),\n): Set<string> {\n if (!layout) return panelIds;\n if (isLayoutNodeKey(layout)) {\n panelIds.add(layout);\n return panelIds;\n }\n if (isLayoutPanelNode(layout)) {\n panelIds.add(layout.id);\n return panelIds;\n }\n if (isLayoutSplitNode(layout)) {\n for (const child of layout.children) {\n collectPanelIds(child, panelIds);\n }\n }\n if (isLayoutGridNode(layout)) {\n for (const child of layout.children) {\n collectPanelIds(child, panelIds);\n }\n }\n return panelIds;\n}\n\nfunction ensureLayoutContainsDashboardPanels(\n layout: LayoutNode | null,\n dashboardId: string,\n panelIds: string[],\n layoutType: MosaicDashboardLayoutType = 'dock',\n panelTypesByLayoutId: DashboardPanelTypesByLayoutId = {},\n): LayoutNode | null {\n let nextLayout = layout;\n\n if (layoutType === 'grid') {\n const expectedPanelIds = new Set(\n panelIds.map((panelId) =>\n getMosaicDashboardPanelId(dashboardId, panelId),\n ),\n );\n nextLayout = normalizeDashboardGridLayout(\n nextLayout,\n dashboardId,\n expectedPanelIds,\n panelTypesByLayoutId,\n );\n }\n\n const existing = collectPanelIds(nextLayout);\n for (const panelId of panelIds) {\n const layoutPanelId = getMosaicDashboardPanelId(dashboardId, panelId);\n if (!existing.has(layoutPanelId)) {\n const panelNode = createDashboardPanelNode(dashboardId, panelId);\n nextLayout =\n layoutType === 'grid'\n ? appendPanelToGridLayout(\n nextLayout,\n dashboardId,\n panelNode,\n panelTypesByLayoutId[layoutPanelId],\n panelTypesByLayoutId,\n )\n : appendPanelToLayout(nextLayout, panelNode);\n existing.add(layoutPanelId);\n }\n }\n\n return nextLayout;\n}\n\nexport function isChartPanelConfig(\n panel: MosaicDashboardPanelConfig,\n): panel is ChartPanelConfig {\n return panel.type === MOSAIC_DASHBOARD_CHART_PANEL_TYPE;\n}\n\nexport function getMosaicDashboardPanelId(\n dashboardId: string,\n panelId: string,\n): string {\n return `dashboard:${dashboardId}:panel:${panelId}`;\n}\n\nexport function getMosaicDashboardDockId(dashboardId: string): string {\n return `dashboard:${dashboardId}:dock`;\n}\n\nexport function getMosaicDashboardGridId(dashboardId: string): string {\n return `dashboard:${dashboardId}:grid`;\n}\n\nexport function getMosaicDashboardSelectionName(dashboardId: string): string {\n return `dashboard:${dashboardId}:brush`;\n}\n\nfunction destroyDashboardRuntimeChart(\n chart: RetainedVgPlotChart | undefined,\n): void {\n if (!chart) return;\n destroyRetainedVgPlotChart(chart);\n}\n\nfunction evictDashboardSelection(\n state: MosaicDashboardStoreState,\n dashboardId: string,\n): void {\n state.mosaic.selections[\n getMosaicDashboardSelectionName(dashboardId)\n ]?.reset();\n}\n\nfunction shouldEvictPanelRuntimeForPatch(\n panel: MosaicDashboardPanelConfig,\n patch: Partial<Omit<MosaicDashboardPanelConfig, 'id'>>,\n): boolean {\n if (patch.type && patch.type !== panel.type) {\n return true;\n }\n\n if (panel.type === MOSAIC_DASHBOARD_CHART_PANEL_TYPE) {\n return Boolean('config' in patch && patch.config);\n }\n\n return false;\n}\n\nexport function createDefaultMosaicDashboardConfig(\n props?: Partial<MosaicDashboardSliceConfig>,\n): MosaicDashboardSliceConfig {\n return MosaicDashboardSliceConfig.parse({\n dashboardsById: {},\n ...props,\n });\n}\n\ntype CreateMosaicDashboardSliceProps = {\n config?: Partial<MosaicDashboardSliceConfig>;\n panelRenderers?: Record<string, MosaicDashboardPanelRenderer>;\n addPanelActions?: MosaicDashboardAddPanelAction[];\n chartTypes?: ChartTypeDefinition[];\n};\nexport type {CreateMosaicDashboardSliceProps};\n\nexport function createMosaicDashboardSlice(\n props: CreateMosaicDashboardSliceProps = {},\n) {\n return createSlice<MosaicDashboardSliceState, MosaicDashboardStoreState>(\n (set, get) => ({\n mosaicDashboard: {\n config: createDefaultMosaicDashboardConfig(props.config),\n runtime: {\n retainedChartsByPanelId: {},\n panelIssuesByPanelId: {},\n },\n chartTypes: props.chartTypes,\n addPanelActions: props.addPanelActions ?? [],\n panelRenderers: props.panelRenderers ?? {},\n\n createDashboard(title, layoutType) {\n const dashboardId = createId();\n get().mosaicDashboard.ensureDashboard(dashboardId, title, layoutType);\n return dashboardId;\n },\n\n ensureDashboard(dashboardId, title, layoutType) {\n set((state) =>\n produce(state, (draft) => {\n const existing =\n draft.mosaicDashboard.config.dashboardsById[dashboardId];\n if (existing) {\n if (title && existing.title !== title) {\n existing.title = title;\n existing.updatedAt = Date.now();\n }\n if (\n layoutType === 'grid' &&\n existing.layoutType === 'dock' &&\n existing.panels.length === 0\n ) {\n existing.layoutType = 'grid';\n existing.layout = createDashboardGridLayout(dashboardId);\n existing.updatedAt = Date.now();\n }\n return;\n }\n draft.mosaicDashboard.config.dashboardsById[dashboardId] = {\n id: dashboardId,\n title: title ?? 'Dashboard',\n layoutType: layoutType ?? 'dock',\n selectedTable: undefined,\n panels: [],\n layout:\n layoutType === 'grid'\n ? createDashboardGridLayout(dashboardId)\n : null,\n updatedAt: Date.now(),\n };\n }),\n );\n },\n\n removeDashboard(dashboardId) {\n get().mosaicDashboard.evictDashboardRuntime(dashboardId, {\n resetSelection: true,\n });\n set((state) =>\n produce(state, (draft) => {\n delete draft.mosaicDashboard.config.dashboardsById[dashboardId];\n }),\n );\n },\n\n getDashboard(dashboardId) {\n return get().mosaicDashboard.config.dashboardsById[dashboardId];\n },\n\n setConfig(config: MosaicDashboardSliceConfig) {\n set((state) =>\n produce(state, (draft) => {\n draft.mosaicDashboard.config = config;\n }),\n );\n },\n\n setSelectedTable(dashboardId, tableName) {\n get().mosaicDashboard.ensureDashboard(dashboardId);\n set((state) =>\n produce(state, (draft) => {\n const dashboard =\n draft.mosaicDashboard.config.dashboardsById[dashboardId];\n if (!dashboard) return;\n dashboard.selectedTable = tableName;\n dashboard.updatedAt = Date.now();\n }),\n );\n },\n\n setLastSelectedTable(dashboardId, tableName) {\n get().mosaicDashboard.ensureDashboard(dashboardId);\n set((state) =>\n produce(state, (draft) => {\n const dashboard =\n draft.mosaicDashboard.config.dashboardsById[dashboardId];\n if (!dashboard) return;\n dashboard.lastSelectedTable = tableName;\n dashboard.updatedAt = Date.now();\n }),\n );\n },\n\n registerPanelRenderer(type, renderer) {\n set((state) =>\n produce(state, (draft) => {\n draft.mosaicDashboard.panelRenderers[type] = renderer;\n }),\n );\n },\n\n unregisterPanelRenderer(type) {\n set((state) =>\n produce(state, (draft) => {\n delete draft.mosaicDashboard.panelRenderers[type];\n }),\n );\n },\n\n addPanel(dashboardId, panel) {\n get().mosaicDashboard.ensureDashboard(dashboardId);\n set((state) =>\n produce(state, (draft) => {\n const dashboard =\n draft.mosaicDashboard.config.dashboardsById[dashboardId];\n if (!dashboard) return;\n\n dashboard.panels.push(panel);\n const panelNode = createDashboardPanelNode(dashboardId, panel.id);\n const panelTypesByLayoutId = getDashboardPanelTypesByLayoutId(\n dashboardId,\n dashboard.panels,\n );\n dashboard.layout =\n dashboard.layoutType === 'grid'\n ? appendPanelToGridLayout(\n dashboard.layout,\n dashboardId,\n panelNode,\n panel.type,\n panelTypesByLayoutId,\n )\n : appendPanelToLayout(dashboard.layout, panelNode);\n dashboard.updatedAt = Date.now();\n }),\n );\n return panel.id;\n },\n\n updatePanel(dashboardId, panelId, patch) {\n const existing = get().mosaicDashboard.config.dashboardsById[\n dashboardId\n ]?.panels.find((candidate) => candidate.id === panelId);\n const shouldEvict = existing\n ? shouldEvictPanelRuntimeForPatch(existing, patch)\n : false;\n set((state) =>\n produce(state, (draft) => {\n const dashboard =\n draft.mosaicDashboard.config.dashboardsById[dashboardId];\n if (!dashboard) return;\n\n const panel = dashboard.panels.find(\n (candidate) => candidate.id === panelId,\n );\n if (!panel) return;\n\n Object.assign(panel, patch);\n dashboard.updatedAt = Date.now();\n }),\n );\n if (shouldEvict) {\n get().mosaicDashboard.evictPanelRuntime(dashboardId, panelId);\n }\n },\n\n removePanel(dashboardId, panelId) {\n get().mosaicDashboard.evictPanelRuntime(dashboardId, panelId);\n set((state) =>\n produce(state, (draft) => {\n const dashboard =\n draft.mosaicDashboard.config.dashboardsById[dashboardId];\n if (!dashboard) return;\n\n dashboard.panels = dashboard.panels.filter(\n (panel) => panel.id !== panelId,\n );\n dashboard.layout = removePanelFromLayout(\n dashboard.layout,\n getMosaicDashboardPanelId(dashboardId, panelId),\n );\n dashboard.updatedAt = Date.now();\n }),\n );\n },\n\n getRetainedChart(dashboardId, panelId) {\n return get().mosaicDashboard.getRetainedChartByKey(\n getMosaicDashboardPanelId(dashboardId, panelId),\n );\n },\n\n getRetainedChartByKey(runtimeKey) {\n return get().mosaicDashboard.runtime.retainedChartsByPanelId[\n runtimeKey\n ];\n },\n\n setRetainedChart(dashboardId, panelId, chart) {\n get().mosaicDashboard.setRetainedChartByKey(\n getMosaicDashboardPanelId(dashboardId, panelId),\n chart,\n );\n },\n\n setRetainedChartByKey(runtimeKey, chart) {\n const previous =\n get().mosaicDashboard.runtime.retainedChartsByPanelId[runtimeKey];\n if (previous && previous !== chart) {\n destroyDashboardRuntimeChart(previous);\n }\n set((state) => ({\n mosaicDashboard: {\n ...state.mosaicDashboard,\n runtime: {\n ...state.mosaicDashboard.runtime,\n retainedChartsByPanelId: {\n ...state.mosaicDashboard.runtime.retainedChartsByPanelId,\n [runtimeKey]: chart,\n },\n },\n },\n }));\n },\n\n getPanelIssue(dashboardId, panelId) {\n return get().mosaicDashboard.getPanelIssueByKey(\n getMosaicDashboardPanelId(dashboardId, panelId),\n );\n },\n\n getPanelIssueByKey(runtimeKey) {\n return get().mosaicDashboard.runtime.panelIssuesByPanelId[runtimeKey];\n },\n\n reportPanelIssue(dashboardId, panelId, issue) {\n get().mosaicDashboard.reportPanelIssueByKey(\n getMosaicDashboardPanelId(dashboardId, panelId),\n issue,\n );\n },\n\n reportPanelIssueByKey(runtimeKey, issue) {\n set((state) => ({\n mosaicDashboard: {\n ...state.mosaicDashboard,\n runtime: {\n ...state.mosaicDashboard.runtime,\n panelIssuesByPanelId: {\n ...state.mosaicDashboard.runtime.panelIssuesByPanelId,\n [runtimeKey]: issue,\n },\n },\n },\n }));\n },\n\n clearPanelIssue(dashboardId, panelId) {\n get().mosaicDashboard.clearPanelIssueByKey(\n getMosaicDashboardPanelId(dashboardId, panelId),\n );\n },\n\n clearPanelIssueByKey(runtimeKey) {\n if (!get().mosaicDashboard.runtime.panelIssuesByPanelId[runtimeKey]) {\n return;\n }\n set((state) => {\n const nextPanelIssuesByPanelId = {\n ...state.mosaicDashboard.runtime.panelIssuesByPanelId,\n };\n delete nextPanelIssuesByPanelId[runtimeKey];\n return {\n mosaicDashboard: {\n ...state.mosaicDashboard,\n runtime: {\n ...state.mosaicDashboard.runtime,\n panelIssuesByPanelId: nextPanelIssuesByPanelId,\n },\n },\n };\n });\n },\n\n evictPanelRuntime(dashboardId, panelId) {\n get().mosaicDashboard.evictPanelRuntimeByKey(\n getMosaicDashboardPanelId(dashboardId, panelId),\n );\n },\n\n evictPanelRuntimeByKey(runtimeKey) {\n const existing =\n get().mosaicDashboard.runtime.retainedChartsByPanelId[runtimeKey];\n destroyDashboardRuntimeChart(existing);\n set((state) => {\n const nextRetainedChartsByPanelId = {\n ...state.mosaicDashboard.runtime.retainedChartsByPanelId,\n };\n const nextPanelIssuesByPanelId = {\n ...state.mosaicDashboard.runtime.panelIssuesByPanelId,\n };\n delete nextRetainedChartsByPanelId[runtimeKey];\n delete nextPanelIssuesByPanelId[runtimeKey];\n return {\n mosaicDashboard: {\n ...state.mosaicDashboard,\n runtime: {\n ...state.mosaicDashboard.runtime,\n retainedChartsByPanelId: nextRetainedChartsByPanelId,\n panelIssuesByPanelId: nextPanelIssuesByPanelId,\n },\n },\n };\n });\n },\n\n evictDashboardRuntime(dashboardId, options) {\n const runtimePrefix = `dashboard:${dashboardId}:panel:`;\n const existingEntries = Object.entries(\n get().mosaicDashboard.runtime.retainedChartsByPanelId,\n ).filter(([runtimePanelId]) =>\n runtimePanelId.startsWith(runtimePrefix),\n );\n const existingIssueEntries = Object.keys(\n get().mosaicDashboard.runtime.panelIssuesByPanelId,\n ).filter((runtimePanelId) =>\n runtimePanelId.startsWith(runtimePrefix),\n );\n\n existingEntries.forEach(([, chart]) => {\n destroyDashboardRuntimeChart(chart);\n });\n\n if (options?.resetSelection) {\n evictDashboardSelection(get(), dashboardId);\n }\n\n set((state) => {\n const nextRetainedChartsByPanelId = {\n ...state.mosaicDashboard.runtime.retainedChartsByPanelId,\n };\n const nextPanelIssuesByPanelId = {\n ...state.mosaicDashboard.runtime.panelIssuesByPanelId,\n };\n for (const [runtimePanelId] of existingEntries) {\n delete nextRetainedChartsByPanelId[runtimePanelId];\n }\n for (const runtimePanelId of existingIssueEntries) {\n delete nextPanelIssuesByPanelId[runtimePanelId];\n }\n return {\n mosaicDashboard: {\n ...state.mosaicDashboard,\n runtime: {\n ...state.mosaicDashboard.runtime,\n retainedChartsByPanelId: nextRetainedChartsByPanelId,\n panelIssuesByPanelId: nextPanelIssuesByPanelId,\n },\n },\n };\n });\n },\n\n clearAllDashboardRuntime() {\n Object.values(\n get().mosaicDashboard.runtime.retainedChartsByPanelId,\n ).forEach((chart) => {\n destroyDashboardRuntimeChart(chart);\n });\n set((state) => ({\n mosaicDashboard: {\n ...state.mosaicDashboard,\n runtime: {\n ...state.mosaicDashboard.runtime,\n retainedChartsByPanelId: {},\n panelIssuesByPanelId: {},\n },\n },\n }));\n },\n\n setLayout(dashboardId, layout) {\n get().mosaicDashboard.ensureDashboard(dashboardId);\n set((state) =>\n produce(state, (draft) => {\n const dashboard =\n draft.mosaicDashboard.config.dashboardsById[dashboardId];\n if (!dashboard) return;\n\n const panelIds = dashboard.panels.map((panel) => panel.id);\n const panelTypesByLayoutId = getDashboardPanelTypesByLayoutId(\n dashboardId,\n dashboard.panels,\n );\n dashboard.layout = ensureLayoutContainsDashboardPanels(\n layout,\n dashboardId,\n panelIds,\n dashboard.layoutType,\n panelTypesByLayoutId,\n );\n dashboard.updatedAt = Date.now();\n }),\n );\n },\n },\n }),\n );\n}\n\nexport function useStoreWithMosaicDashboard<T>(\n selector: (state: MosaicDashboardStoreState) => T,\n): T {\n return useBaseRoomStore<BaseRoomStoreState, T>((state) =>\n selector(state as unknown as MosaicDashboardStoreState),\n );\n}\n"]}
@@ -0,0 +1,25 @@
1
+ /**
2
+ * Dashboard action types - separated to avoid circular dependencies with chart types.
3
+ */
4
+ import type { ComponentType } from 'react';
5
+ import type { DataTable } from '@sqlrooms/db';
6
+ import type { ChartTypeDefinition } from '../charts/chart-types/base-types';
7
+ import type { MosaicDashboardEntry, MosaicDashboardPanelConfig } from './dashboard-types';
8
+ export type MosaicDashboardAddPanelActionContext = {
9
+ dashboardId: string;
10
+ dashboard: MosaicDashboardEntry | undefined;
11
+ selectedTable: DataTable | undefined;
12
+ tables: DataTable[];
13
+ chartTypes: ChartTypeDefinition[] | undefined;
14
+ };
15
+ export type MosaicDashboardAddPanelAction = {
16
+ type: string;
17
+ label: string;
18
+ icon?: ComponentType<{
19
+ className?: string;
20
+ }>;
21
+ isEnabled?: (context: MosaicDashboardAddPanelActionContext) => boolean;
22
+ createPanel: (context: MosaicDashboardAddPanelActionContext) => MosaicDashboardPanelConfig | undefined;
23
+ };
24
+ export type OnStartDashboard = (prompt: string) => void | Promise<void>;
25
+ //# sourceMappingURL=action-types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"action-types.d.ts","sourceRoot":"","sources":["../../src/dashboard/action-types.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,KAAK,EAAC,aAAa,EAAC,MAAM,OAAO,CAAC;AACzC,OAAO,KAAK,EAAC,SAAS,EAAC,MAAM,cAAc,CAAC;AAC5C,OAAO,KAAK,EAAC,mBAAmB,EAAC,MAAM,kCAAkC,CAAC;AAC1E,OAAO,KAAK,EACV,oBAAoB,EACpB,0BAA0B,EAC3B,MAAM,mBAAmB,CAAC;AAE3B,MAAM,MAAM,oCAAoC,GAAG;IACjD,WAAW,EAAE,MAAM,CAAC;IACpB,SAAS,EAAE,oBAAoB,GAAG,SAAS,CAAC;IAC5C,aAAa,EAAE,SAAS,GAAG,SAAS,CAAC;IACrC,MAAM,EAAE,SAAS,EAAE,CAAC;IACpB,UAAU,EAAE,mBAAmB,EAAE,GAAG,SAAS,CAAC;CAC/C,CAAC;AAEF,MAAM,MAAM,6BAA6B,GAAG;IAC1C,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,CAAC,EAAE,aAAa,CAAC;QAAC,SAAS,CAAC,EAAE,MAAM,CAAA;KAAC,CAAC,CAAC;IAC3C,SAAS,CAAC,EAAE,CAAC,OAAO,EAAE,oCAAoC,KAAK,OAAO,CAAC;IACvE,WAAW,EAAE,CACX,OAAO,EAAE,oCAAoC,KAC1C,0BAA0B,GAAG,SAAS,CAAC;CAC7C,CAAC;AAEF,MAAM,MAAM,gBAAgB,GAAG,CAAC,MAAM,EAAE,MAAM,KAAK,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC"}
@@ -0,0 +1,5 @@
1
+ /**
2
+ * Dashboard action types - separated to avoid circular dependencies with chart types.
3
+ */
4
+ export {};
5
+ //# sourceMappingURL=action-types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"action-types.js","sourceRoot":"","sources":["../../src/dashboard/action-types.ts"],"names":[],"mappings":"AAAA;;GAEG","sourcesContent":["/**\n * Dashboard action types - separated to avoid circular dependencies with chart types.\n */\n\nimport type {ComponentType} from 'react';\nimport type {DataTable} from '@sqlrooms/db';\nimport type {ChartTypeDefinition} from '../charts/chart-types/base-types';\nimport type {\n MosaicDashboardEntry,\n MosaicDashboardPanelConfig,\n} from './dashboard-types';\n\nexport type MosaicDashboardAddPanelActionContext = {\n dashboardId: string;\n dashboard: MosaicDashboardEntry | undefined;\n selectedTable: DataTable | undefined;\n tables: DataTable[];\n chartTypes: ChartTypeDefinition[] | undefined;\n};\n\nexport type MosaicDashboardAddPanelAction = {\n type: string;\n label: string;\n icon?: ComponentType<{className?: string}>;\n isEnabled?: (context: MosaicDashboardAddPanelActionContext) => boolean;\n createPanel: (\n context: MosaicDashboardAddPanelActionContext,\n ) => MosaicDashboardPanelConfig | undefined;\n};\n\nexport type OnStartDashboard = (prompt: string) => void | Promise<void>;\n"]}
@@ -0,0 +1,20 @@
1
+ /**
2
+ * Core dashboard data types - no dependencies on chart-types.
3
+ * These types can be safely imported by chart-types without creating circular dependencies.
4
+ */
5
+ import { z } from 'zod';
6
+ export declare const DataTableExplorerPanelConfig: z.ZodObject<{
7
+ pageSize: z.ZodOptional<z.ZodNumber>;
8
+ }, z.core.$strip>;
9
+ export type DataTableExplorerPanelConfig = z.infer<typeof DataTableExplorerPanelConfig>;
10
+ export declare const MosaicDashboardLayoutType: z.ZodEnum<{
11
+ grid: "grid";
12
+ dock: "dock";
13
+ }>;
14
+ export type MosaicDashboardLayoutType = z.infer<typeof MosaicDashboardLayoutType>;
15
+ export declare const MosaicDashboardPanelSource: z.ZodObject<{
16
+ tableName: z.ZodOptional<z.ZodString>;
17
+ sqlQuery: z.ZodOptional<z.ZodString>;
18
+ }, z.core.$strip>;
19
+ export type MosaicDashboardPanelSource = z.infer<typeof MosaicDashboardPanelSource>;
20
+ //# sourceMappingURL=core-types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"core-types.d.ts","sourceRoot":"","sources":["../../src/dashboard/core-types.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAC,CAAC,EAAC,MAAM,KAAK,CAAC;AAGtB,eAAO,MAAM,4BAA4B;;iBAEvC,CAAC;AACH,MAAM,MAAM,4BAA4B,GAAG,CAAC,CAAC,KAAK,CAChD,OAAO,4BAA4B,CACpC,CAAC;AAEF,eAAO,MAAM,yBAAyB;;;EAA2B,CAAC;AAClE,MAAM,MAAM,yBAAyB,GAAG,CAAC,CAAC,KAAK,CAC7C,OAAO,yBAAyB,CACjC,CAAC;AAEF,eAAO,MAAM,0BAA0B;;;iBAGrC,CAAC;AACH,MAAM,MAAM,0BAA0B,GAAG,CAAC,CAAC,KAAK,CAC9C,OAAO,0BAA0B,CAClC,CAAC"}
@@ -0,0 +1,15 @@
1
+ /**
2
+ * Core dashboard data types - no dependencies on chart-types.
3
+ * These types can be safely imported by chart-types without creating circular dependencies.
4
+ */
5
+ import { z } from 'zod';
6
+ // DataTableExplorer panel config
7
+ export const DataTableExplorerPanelConfig = z.object({
8
+ pageSize: z.number().optional(),
9
+ });
10
+ export const MosaicDashboardLayoutType = z.enum(['dock', 'grid']);
11
+ export const MosaicDashboardPanelSource = z.object({
12
+ tableName: z.string().optional(),
13
+ sqlQuery: z.string().optional(),
14
+ });
15
+ //# sourceMappingURL=core-types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"core-types.js","sourceRoot":"","sources":["../../src/dashboard/core-types.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAC,CAAC,EAAC,MAAM,KAAK,CAAC;AAEtB,iCAAiC;AACjC,MAAM,CAAC,MAAM,4BAA4B,GAAG,CAAC,CAAC,MAAM,CAAC;IACnD,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;CAChC,CAAC,CAAC;AAKH,MAAM,CAAC,MAAM,yBAAyB,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC;AAKlE,MAAM,CAAC,MAAM,0BAA0B,GAAG,CAAC,CAAC,MAAM,CAAC;IACjD,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IAChC,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;CAChC,CAAC,CAAC","sourcesContent":["/**\n * Core dashboard data types - no dependencies on chart-types.\n * These types can be safely imported by chart-types without creating circular dependencies.\n */\n\nimport {z} from 'zod';\n\n// DataTableExplorer panel config\nexport const DataTableExplorerPanelConfig = z.object({\n pageSize: z.number().optional(),\n});\nexport type DataTableExplorerPanelConfig = z.infer<\n typeof DataTableExplorerPanelConfig\n>;\n\nexport const MosaicDashboardLayoutType = z.enum(['dock', 'grid']);\nexport type MosaicDashboardLayoutType = z.infer<\n typeof MosaicDashboardLayoutType\n>;\n\nexport const MosaicDashboardPanelSource = z.object({\n tableName: z.string().optional(),\n sqlQuery: z.string().optional(),\n});\nexport type MosaicDashboardPanelSource = z.infer<\n typeof MosaicDashboardPanelSource\n>;\n"]}
@@ -0,0 +1,3 @@
1
+ import { type PanelRenderersRecord } from './MosaicDashboardSlice';
2
+ export declare function createDefaultMosaicDashboardPanelRenderers(extraRenderers?: PanelRenderersRecord): PanelRenderersRecord;
3
+ //# sourceMappingURL=createDefaultMosaicDashboardPanelRenderers.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"createDefaultMosaicDashboardPanelRenderers.d.ts","sourceRoot":"","sources":["../../src/dashboard/createDefaultMosaicDashboardPanelRenderers.ts"],"names":[],"mappings":"AAIA,OAAO,EAEL,KAAK,oBAAoB,EAC1B,MAAM,wBAAwB,CAAC;AAIhC,wBAAgB,0CAA0C,CACxD,cAAc,GAAE,oBAAyB,GACxC,oBAAoB,CAQtB"}
@@ -0,0 +1,11 @@
1
+ import { MOSAIC_DASHBOARD_DATA_TABLE_EXPLORER_PANEL_TYPE, MOSAIC_DASHBOARD_CHART_PANEL_TYPE, } from './dashboard-types';
2
+ import { mosaicDashboardDataTableExplorerPanelRenderer } from '../data-table-explorer/dashboard/MosaicDashboardDataTableExplorerPanelRenderer';
3
+ import { mosaicDashboardChartRenderer } from '../charts/dashboard/MosaicDashboardChartRenderer';
4
+ export function createDefaultMosaicDashboardPanelRenderers(extraRenderers = {}) {
5
+ return {
6
+ [MOSAIC_DASHBOARD_CHART_PANEL_TYPE]: mosaicDashboardChartRenderer,
7
+ [MOSAIC_DASHBOARD_DATA_TABLE_EXPLORER_PANEL_TYPE]: mosaicDashboardDataTableExplorerPanelRenderer,
8
+ ...extraRenderers,
9
+ };
10
+ }
11
+ //# sourceMappingURL=createDefaultMosaicDashboardPanelRenderers.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"createDefaultMosaicDashboardPanelRenderers.js","sourceRoot":"","sources":["../../src/dashboard/createDefaultMosaicDashboardPanelRenderers.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,+CAA+C,EAC/C,iCAAiC,GAClC,MAAM,mBAAmB,CAAC;AAK3B,OAAO,EAAC,6CAA6C,EAAC,MAAM,gFAAgF,CAAC;AAC7I,OAAO,EAAC,4BAA4B,EAAC,MAAM,kDAAkD,CAAC;AAE9F,MAAM,UAAU,0CAA0C,CACxD,iBAAuC,EAAE;IAEzC,OAAO;QACL,CAAC,iCAAiC,CAAC,EACjC,4BAAgD;QAClD,CAAC,+CAA+C,CAAC,EAC/C,6CAAiE;QACnE,GAAG,cAAc;KAClB,CAAC;AACJ,CAAC","sourcesContent":["import {\n MOSAIC_DASHBOARD_DATA_TABLE_EXPLORER_PANEL_TYPE,\n MOSAIC_DASHBOARD_CHART_PANEL_TYPE,\n} from './dashboard-types';\nimport {\n type AnyPanelRenderer,\n type PanelRenderersRecord,\n} from './MosaicDashboardSlice';\nimport {mosaicDashboardDataTableExplorerPanelRenderer} from '../data-table-explorer/dashboard/MosaicDashboardDataTableExplorerPanelRenderer';\nimport {mosaicDashboardChartRenderer} from '../charts/dashboard/MosaicDashboardChartRenderer';\n\nexport function createDefaultMosaicDashboardPanelRenderers(\n extraRenderers: PanelRenderersRecord = {},\n): PanelRenderersRecord {\n return {\n [MOSAIC_DASHBOARD_CHART_PANEL_TYPE]:\n mosaicDashboardChartRenderer as AnyPanelRenderer,\n [MOSAIC_DASHBOARD_DATA_TABLE_EXPLORER_PANEL_TYPE]:\n mosaicDashboardDataTableExplorerPanelRenderer as AnyPanelRenderer,\n ...extraRenderers,\n };\n}\n"]}
@@ -0,0 +1,12 @@
1
+ import type { StatefulBlockDefinition, StatefulBlockRenderProps } from '@sqlrooms/blocks';
2
+ import type { ComponentType } from 'react';
3
+ import type { MosaicDashboardLayoutType, MosaicDashboardSliceState } from './MosaicDashboardSlice';
4
+ export type MosaicDashboardBlockRenderProps<TRoomState extends MosaicDashboardSliceState = MosaicDashboardSliceState> = StatefulBlockRenderProps<TRoomState>;
5
+ export type CreateMosaicDashboardBlockDefinitionOptions<TRoomState extends MosaicDashboardSliceState = MosaicDashboardSliceState> = {
6
+ render?: ComponentType<MosaicDashboardBlockRenderProps<TRoomState>>;
7
+ label?: string;
8
+ defaultTitle?: string;
9
+ layoutType?: MosaicDashboardLayoutType;
10
+ };
11
+ export declare function createMosaicDashboardBlockDefinition<TRoomState extends MosaicDashboardSliceState = MosaicDashboardSliceState>({ render, label, defaultTitle, layoutType, }?: CreateMosaicDashboardBlockDefinitionOptions<TRoomState>): StatefulBlockDefinition<TRoomState>;
12
+ //# sourceMappingURL=createMosaicDashboardBlockDefinition.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"createMosaicDashboardBlockDefinition.d.ts","sourceRoot":"","sources":["../../src/dashboard/createMosaicDashboardBlockDefinition.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,uBAAuB,EACvB,wBAAwB,EACzB,MAAM,kBAAkB,CAAC;AAE1B,OAAO,KAAK,EAAC,aAAa,EAAC,MAAM,OAAO,CAAC;AAEzC,OAAO,KAAK,EACV,yBAAyB,EACzB,yBAAyB,EAC1B,MAAM,wBAAwB,CAAC;AAEhC,MAAM,MAAM,+BAA+B,CACzC,UAAU,SAAS,yBAAyB,GAAG,yBAAyB,IACtE,wBAAwB,CAAC,UAAU,CAAC,CAAC;AAEzC,MAAM,MAAM,2CAA2C,CACrD,UAAU,SAAS,yBAAyB,GAAG,yBAAyB,IACtE;IACF,MAAM,CAAC,EAAE,aAAa,CAAC,+BAA+B,CAAC,UAAU,CAAC,CAAC,CAAC;IACpE,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,UAAU,CAAC,EAAE,yBAAyB,CAAC;CACxC,CAAC;AAEF,wBAAgB,oCAAoC,CAClD,UAAU,SAAS,yBAAyB,GAAG,yBAAyB,EACxE,EACA,MAEC,EACD,KAAmB,EACnB,YAA0B,EAC1B,UAAU,GACX,GAAE,2CAA2C,CAAC,UAAU,CAAM,GAAG,uBAAuB,CAAC,UAAU,CAAC,CAgCpG"}
@@ -0,0 +1,32 @@
1
+ import { BarChart3 } from 'lucide-react';
2
+ import { DefaultMosaicDashboardBlock } from './DefaultMosaicDashboardBlock';
3
+ export function createMosaicDashboardBlockDefinition({ render = DefaultMosaicDashboardBlock, label = 'Dashboard', defaultTitle = 'Dashboard', layoutType, } = {}) {
4
+ return {
5
+ type: 'dashboard',
6
+ label,
7
+ defaultTitle,
8
+ icon: BarChart3,
9
+ capabilities: {
10
+ stateful: true,
11
+ embeddable: true,
12
+ selectable: true,
13
+ hasRuntimeCache: true,
14
+ },
15
+ render,
16
+ ensureState: ({ blockId, title, getState }) => {
17
+ getState().mosaicDashboard.ensureDashboard(blockId, title ?? defaultTitle, layoutType);
18
+ },
19
+ rename: ({ blockId, title, getState }) => {
20
+ getState().mosaicDashboard.ensureDashboard(blockId, title, layoutType);
21
+ },
22
+ close: ({ blockId, getState }) => {
23
+ getState().mosaicDashboard.evictDashboardRuntime(blockId, {
24
+ resetSelection: true,
25
+ });
26
+ },
27
+ deleteState: ({ blockId, getState }) => {
28
+ getState().mosaicDashboard.removeDashboard(blockId);
29
+ },
30
+ };
31
+ }
32
+ //# sourceMappingURL=createMosaicDashboardBlockDefinition.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"createMosaicDashboardBlockDefinition.js","sourceRoot":"","sources":["../../src/dashboard/createMosaicDashboardBlockDefinition.tsx"],"names":[],"mappings":"AAIA,OAAO,EAAC,SAAS,EAAC,MAAM,cAAc,CAAC;AAEvC,OAAO,EAAC,2BAA2B,EAAC,MAAM,+BAA+B,CAAC;AAmB1E,MAAM,UAAU,oCAAoC,CAElD,EACA,MAAM,GAAG,2BAER,EACD,KAAK,GAAG,WAAW,EACnB,YAAY,GAAG,WAAW,EAC1B,UAAU,MACiD,EAAE;IAC7D,OAAO;QACL,IAAI,EAAE,WAAW;QACjB,KAAK;QACL,YAAY;QACZ,IAAI,EAAE,SAAS;QACf,YAAY,EAAE;YACZ,QAAQ,EAAE,IAAI;YACd,UAAU,EAAE,IAAI;YAChB,UAAU,EAAE,IAAI;YAChB,eAAe,EAAE,IAAI;SACtB;QACD,MAAM;QACN,WAAW,EAAE,CAAC,EAAC,OAAO,EAAE,KAAK,EAAE,QAAQ,EAAC,EAAE,EAAE;YAC1C,QAAQ,EAAE,CAAC,eAAe,CAAC,eAAe,CACxC,OAAO,EACP,KAAK,IAAI,YAAY,EACrB,UAAU,CACX,CAAC;QACJ,CAAC;QACD,MAAM,EAAE,CAAC,EAAC,OAAO,EAAE,KAAK,EAAE,QAAQ,EAAC,EAAE,EAAE;YACrC,QAAQ,EAAE,CAAC,eAAe,CAAC,eAAe,CAAC,OAAO,EAAE,KAAK,EAAE,UAAU,CAAC,CAAC;QACzE,CAAC;QACD,KAAK,EAAE,CAAC,EAAC,OAAO,EAAE,QAAQ,EAAC,EAAE,EAAE;YAC7B,QAAQ,EAAE,CAAC,eAAe,CAAC,qBAAqB,CAAC,OAAO,EAAE;gBACxD,cAAc,EAAE,IAAI;aACrB,CAAC,CAAC;QACL,CAAC;QACD,WAAW,EAAE,CAAC,EAAC,OAAO,EAAE,QAAQ,EAAC,EAAE,EAAE;YACnC,QAAQ,EAAE,CAAC,eAAe,CAAC,eAAe,CAAC,OAAO,CAAC,CAAC;QACtD,CAAC;KACF,CAAC;AACJ,CAAC","sourcesContent":["import type {\n StatefulBlockDefinition,\n StatefulBlockRenderProps,\n} from '@sqlrooms/blocks';\nimport {BarChart3} from 'lucide-react';\nimport type {ComponentType} from 'react';\nimport {DefaultMosaicDashboardBlock} from './DefaultMosaicDashboardBlock';\nimport type {\n MosaicDashboardLayoutType,\n MosaicDashboardSliceState,\n} from './MosaicDashboardSlice';\n\nexport type MosaicDashboardBlockRenderProps<\n TRoomState extends MosaicDashboardSliceState = MosaicDashboardSliceState,\n> = StatefulBlockRenderProps<TRoomState>;\n\nexport type CreateMosaicDashboardBlockDefinitionOptions<\n TRoomState extends MosaicDashboardSliceState = MosaicDashboardSliceState,\n> = {\n render?: ComponentType<MosaicDashboardBlockRenderProps<TRoomState>>;\n label?: string;\n defaultTitle?: string;\n layoutType?: MosaicDashboardLayoutType;\n};\n\nexport function createMosaicDashboardBlockDefinition<\n TRoomState extends MosaicDashboardSliceState = MosaicDashboardSliceState,\n>({\n render = DefaultMosaicDashboardBlock as ComponentType<\n MosaicDashboardBlockRenderProps<TRoomState>\n >,\n label = 'Dashboard',\n defaultTitle = 'Dashboard',\n layoutType,\n}: CreateMosaicDashboardBlockDefinitionOptions<TRoomState> = {}): StatefulBlockDefinition<TRoomState> {\n return {\n type: 'dashboard',\n label,\n defaultTitle,\n icon: BarChart3,\n capabilities: {\n stateful: true,\n embeddable: true,\n selectable: true,\n hasRuntimeCache: true,\n },\n render,\n ensureState: ({blockId, title, getState}) => {\n getState().mosaicDashboard.ensureDashboard(\n blockId,\n title ?? defaultTitle,\n layoutType,\n );\n },\n rename: ({blockId, title, getState}) => {\n getState().mosaicDashboard.ensureDashboard(blockId, title, layoutType);\n },\n close: ({blockId, getState}) => {\n getState().mosaicDashboard.evictDashboardRuntime(blockId, {\n resetSelection: true,\n });\n },\n deleteState: ({blockId, getState}) => {\n getState().mosaicDashboard.removeDashboard(blockId);\n },\n };\n}\n"]}