@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
package/README.md CHANGED
@@ -132,40 +132,45 @@ The hook accepts the following options:
132
132
  - `queryResult` - Optional callback when query results are received
133
133
  - `enabled` - Whether to automatically connect when mosaic is ready (default: `true`)
134
134
 
135
- ### Mosaic Profiler Primitives
135
+ ### Data Table Explorer Primitives
136
136
 
137
- The profiler primitives let you build a Quake-style cross-filtered table with
138
- per-column summaries on top of `MosaicSlice`.
137
+ The Data Table Explorer primitives let you build a Quake-style cross-filtered
138
+ table with per-column summaries on top of `MosaicSlice`.
139
139
 
140
140
  ```tsx
141
- import {MosaicProfiler} from '@sqlrooms/mosaic';
141
+ import {DataTableExplorer} from '@sqlrooms/mosaic';
142
142
  import {ScrollArea} from '@sqlrooms/ui';
143
143
  import {useMemo} from 'react';
144
144
  import {useRoomStore} from './store';
145
145
 
146
- function EarthquakeProfiler() {
146
+ function EarthquakeExplorer() {
147
147
  const mosaic = useRoomStore((state) => state.mosaic);
148
148
  const brush = useMemo(() => mosaic.getSelection('brush'), [mosaic]);
149
149
 
150
150
  return (
151
- <MosaicProfiler tableName="earthquakes" selection={brush} pageSize={25}>
151
+ <DataTableExplorer tableName="earthquakes" selection={brush} pageSize={25}>
152
152
  <div className="flex min-h-0 flex-col border">
153
153
  <ScrollArea className="min-h-0 flex-1">
154
- <MosaicProfiler.Table>
155
- <MosaicProfiler.Header />
156
- <MosaicProfiler.Rows />
157
- </MosaicProfiler.Table>
154
+ <DataTableExplorer.Table>
155
+ <DataTableExplorer.Header />
156
+ <DataTableExplorer.Rows />
157
+ </DataTableExplorer.Table>
158
158
  </ScrollArea>
159
- <MosaicProfiler.StatusBar />
159
+ <DataTableExplorer.StatusBar />
160
160
  </div>
161
- </MosaicProfiler>
161
+ </DataTableExplorer>
162
162
  );
163
163
  }
164
164
  ```
165
165
 
166
- For the common case, prefer the compound `MosaicProfiler` API. `useMosaicProfiler`
167
- is still available when you need direct access to the profiler state for custom
168
- layout, sizing, or advanced composition.
166
+ For the common case, prefer the compound `DataTableExplorer` API.
167
+ `useDataTableExplorer` is still available when you need direct access to the
168
+ explorer state for custom layout, sizing, or advanced composition.
169
+
170
+ `DataTableBlockRenderer` wraps the same explorer UI as a stateful block
171
+ renderer for `@sqlrooms/documents` block documents. Register it with a
172
+ host-provided stateful block type such as `data-table` when a document or
173
+ worksheet surface should embed an interactive Data Table Explorer directly.
169
174
 
170
175
  ### Mosaic Dashboard Panels
171
176
 
@@ -176,7 +181,7 @@ runtime add-panel actions when creating the dashboard slice.
176
181
  ```tsx
177
182
  import {
178
183
  createDefaultMosaicDashboardPanelRenderers,
179
- createMosaicDashboardProfilerPanelConfig,
184
+ createMosaicDashboardDataTableExplorerPanelConfig,
180
185
  createMosaicDashboardChartPanelConfig,
181
186
  createMosaicDashboardSlice,
182
187
  MosaicDashboard,
@@ -192,10 +197,10 @@ function Dashboard() {
192
197
  return <MosaicDashboard dashboardId="main" />;
193
198
  }
194
199
 
195
- function addProfiler(store: RoomStore) {
200
+ function addDataTableExplorer(store: RoomStore) {
196
201
  store.getState().mosaicDashboard.addPanel(
197
202
  'main',
198
- createMosaicDashboardProfilerPanelConfig({
203
+ createMosaicDashboardDataTableExplorerPanelConfig({
199
204
  source: {tableName: 'earthquakes'},
200
205
  }),
201
206
  );
@@ -226,55 +231,83 @@ panel omits a source it falls back to the dashboard selected table. Panel render
226
231
  definitions and chart builder definitions are runtime-only and intentionally
227
232
  live outside persisted dashboard config.
228
233
 
229
- ### AI Chart Tools
234
+ ### Dashboard Stateful Block Adapter
235
+
236
+ `createMosaicDashboardBlockDefinition` exposes Mosaic dashboards as stateful
237
+ block implementations. This lets host packages render the same dashboard
238
+ implementation either inside a block host or through an artifact shell created
239
+ with `@sqlrooms/artifacts`.
230
240
 
231
- `createChartTools` generates assistant tools for the built-in chart types. The
232
- injected `ChartToolDeps.resolveResources(params, context)` callback receives the
233
- tool execution context as its second argument. Client apps should prefer
234
- execution-scoped context, such as a captured AI run context, over live UI state
235
- when resolving implicit dashboard targets. Explicit `params.artifactId` should
236
- still take precedence.
241
+ ```tsx
242
+ import {createArtifactTypeFromStatefulBlock} from '@sqlrooms/artifacts';
243
+ import {createMosaicDashboardBlockDefinition} from '@sqlrooms/mosaic';
244
+
245
+ const dashboardBlockDefinition = createMosaicDashboardBlockDefinition({
246
+ render: DashboardArtifact,
247
+ });
248
+
249
+ export const dashboardArtifactType = createArtifactTypeFromStatefulBlock(
250
+ dashboardBlockDefinition,
251
+ );
252
+ ```
253
+
254
+ The adapter preserves existing dashboard state in
255
+ `mosaicDashboard.config.dashboardsById` and delegates lifecycle work to the
256
+ dashboard slice.
257
+
258
+ ### Dashboard AI Tools
259
+
260
+ `@sqlrooms/mosaic` provides reusable assistant tools for dashboard authoring,
261
+ including chart tools, Data Table Explorer/text panel tools, panel management tools, and an
262
+ optional exploratory `dashboard_agent`. Client apps supply a small adapter that
263
+ maps Mosaic's generic dashboard operations to their store, artifact model, table
264
+ metadata, and AI run context. When an AI run context is present, implicit
265
+ dashboard targeting should resolve only a primary dashboard context item;
266
+ reference-only dashboard artifacts should require an explicit `artifactId`.
237
267
 
238
268
  ```ts
239
269
  import {
240
- createChartTools,
241
- createDefaultChartTypes,
242
- type ChartToolDeps,
270
+ createDashboardAiTools,
271
+ MAP_TOOL_KEY,
272
+ type DashboardAiAdapter,
243
273
  } from '@sqlrooms/mosaic';
244
274
 
245
- const deps: ChartToolDeps = {
246
- resolveResources: (params, context) => {
247
- const sessionId = context?.sessionId;
248
- const runContext = context?.aiRunContext;
249
- const contextArtifactId = getDashboardArtifactIdFromRunContext(
250
- runContext,
251
- sessionId,
252
- );
253
-
254
- // Prefer execution-scoped context over live UI state for implicit targets.
255
- // Explicit tool input still wins over anything derived from context.
256
- const artifactId =
257
- params.artifactId ??
258
- contextArtifactId ??
259
- getCurrentDashboardArtifactId();
260
- const tableName = params.tableName ?? getSelectedTableName(artifactId);
261
-
262
- return {
263
- artifactId,
264
- tableName,
265
- columns: getTableColumns(tableName),
266
- };
267
- },
268
- createChart: ({artifactId, tableName, title, config}) =>
269
- addChartPanel({artifactId, tableName, title, config}),
275
+ const adapter: DashboardAiAdapter<AppState> = {
276
+ getTables: (state) => state.db.tables,
277
+ hasRunContext: (state, context) => hasAiRunContext(context),
278
+ resolveContextDashboardArtifactId: (state, context) =>
279
+ getPrimaryDashboardArtifactIdFromRunContext(context, state),
280
+ makeDashboardPrimaryForRun: (state, artifactId, context) =>
281
+ makeArtifactPrimaryForAiRun(artifactId, context),
282
+ getCurrentDashboardArtifactId: (state) =>
283
+ state.dashboard.getCurrentDashboardArtifactId(),
284
+ createDashboardArtifact: (state, title, layoutType) =>
285
+ state.dashboard.createDashboardArtifact(title, layoutType),
286
+ isDashboardArtifact: (state, artifactId) =>
287
+ state.artifacts.getArtifact(artifactId)?.type === 'dashboard',
288
+ setCurrentArtifact: (state, artifactId) =>
289
+ state.artifacts.setCurrentArtifact(artifactId),
290
+ ensureDashboard: (state, dashboardId) =>
291
+ state.dashboard.ensureDashboardArtifact(dashboardId),
292
+ getDashboard: (state, dashboardId) =>
293
+ state.mosaicDashboard.getDashboard(dashboardId),
294
+ setSelectedTable: (state, dashboardId, tableName) =>
295
+ state.mosaicDashboard.setSelectedTable(dashboardId, tableName),
296
+ addPanel: (state, dashboardId, panel) =>
297
+ state.mosaicDashboard.addPanel(dashboardId, panel),
298
+ updatePanel: (state, dashboardId, panelId, patch) =>
299
+ state.mosaicDashboard.updatePanel(dashboardId, panelId, patch),
300
+ removePanel: (state, dashboardId, panelId) =>
301
+ state.mosaicDashboard.removePanel(dashboardId, panelId),
270
302
  };
271
303
 
272
- const chartTools = createChartTools(
273
- createDefaultChartTypes({includeCustomSpec: false}),
274
- deps,
275
- );
304
+ const dashboardTools = createDashboardAiTools({store, adapter});
276
305
  ```
277
306
 
307
+ Host tools can be added with `extraTools`; they must not reuse built-in
308
+ dashboard tool keys. Register geospatial map tools under `MAP_TOOL_KEY` so the
309
+ dashboard prompts and tool registration stay aligned.
310
+
278
311
  ### Box Plot Chart Type
279
312
 
280
313
  The built-in Box Plot chart type (`'box-plot'`) is a specialized chart that uses
@@ -0,0 +1,9 @@
1
+ /**
2
+ * Custom error class for data point limit exceeded.
3
+ */
4
+ export declare class DataPointLimitError extends Error {
5
+ readonly rowCount: number;
6
+ readonly limit: number;
7
+ constructor(rowCount: number, limit: number);
8
+ }
9
+ //# sourceMappingURL=DataPointLimitError.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"DataPointLimitError.d.ts","sourceRoot":"","sources":["../src/DataPointLimitError.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,qBAAa,mBAAoB,SAAQ,KAAK;aAE1B,QAAQ,EAAE,MAAM;aAChB,KAAK,EAAE,MAAM;gBADb,QAAQ,EAAE,MAAM,EAChB,KAAK,EAAE,MAAM;CAOhC"}
@@ -0,0 +1,14 @@
1
+ /**
2
+ * Custom error class for data point limit exceeded.
3
+ */
4
+ export class DataPointLimitError extends Error {
5
+ rowCount;
6
+ limit;
7
+ constructor(rowCount, limit) {
8
+ super(`This chart would render ${rowCount.toLocaleString()} data points (limit: ${limit.toLocaleString()})`);
9
+ this.rowCount = rowCount;
10
+ this.limit = limit;
11
+ this.name = 'DataPointLimitError';
12
+ }
13
+ }
14
+ //# sourceMappingURL=DataPointLimitError.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"DataPointLimitError.js","sourceRoot":"","sources":["../src/DataPointLimitError.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,MAAM,OAAO,mBAAoB,SAAQ,KAAK;IAE1B;IACA;IAFlB,YACkB,QAAgB,EAChB,KAAa;QAE7B,KAAK,CACH,2BAA2B,QAAQ,CAAC,cAAc,EAAE,wBAAwB,KAAK,CAAC,cAAc,EAAE,GAAG,CACtG,CAAC;QALc,aAAQ,GAAR,QAAQ,CAAQ;QAChB,UAAK,GAAL,KAAK,CAAQ;QAK7B,IAAI,CAAC,IAAI,GAAG,qBAAqB,CAAC;IACpC,CAAC;CACF","sourcesContent":["/**\n * Custom error class for data point limit exceeded.\n */\nexport class DataPointLimitError extends Error {\n constructor(\n public readonly rowCount: number,\n public readonly limit: number,\n ) {\n super(\n `This chart would render ${rowCount.toLocaleString()} data points (limit: ${limit.toLocaleString()})`,\n );\n this.name = 'DataPointLimitError';\n }\n}\n"]}
@@ -3,14 +3,14 @@
3
3
  *
4
4
  * @example
5
5
  * ```tsx
6
- * <MosaicChart.Container spec={mySpec} onSpecChange={save}>
7
- * <MosaicChart.Display />
8
- * <MosaicChart.SpecEditor />
9
- * <MosaicChart.Actions />
10
- * </MosaicChart.Container>
6
+ * <MosaicSpecChart.Container spec={mySpec} onSpecChange={save}>
7
+ * <MosaicSpecChart.Display />
8
+ * <MosaicSpecChart.SpecEditor />
9
+ * <MosaicSpecChart.Actions />
10
+ * </MosaicSpecChart.Container>
11
11
  * ```
12
12
  */
13
- export declare const MosaicChart: {
13
+ export declare const MosaicSpecChart: {
14
14
  readonly Container: import("react").FC<import(".").MosaicChartContainerProps>;
15
15
  readonly Display: import("react").FC<import(".").MosaicChartDisplayProps>;
16
16
  readonly SpecEditor: import("react").FC<import(".").MosaicSpecEditorPanelProps>;
@@ -1 +1 @@
1
- {"version":3,"file":"MosaicChart.d.ts","sourceRoot":"","sources":["../src/MosaicChart.ts"],"names":[],"mappings":"AAMA;;;;;;;;;;;GAWG;AACH,eAAO,MAAM,WAAW;;;;;;CAMd,CAAC"}
1
+ {"version":3,"file":"MosaicChart.d.ts","sourceRoot":"","sources":["../src/MosaicChart.ts"],"names":[],"mappings":"AAMA;;;;;;;;;;;GAWG;AACH,eAAO,MAAM,eAAe;;;;;;CAMlB,CAAC"}
@@ -8,14 +8,14 @@ import { MosaicCodeMirrorEditor } from './editor/MosaicCodeMirrorEditor';
8
8
  *
9
9
  * @example
10
10
  * ```tsx
11
- * <MosaicChart.Container spec={mySpec} onSpecChange={save}>
12
- * <MosaicChart.Display />
13
- * <MosaicChart.SpecEditor />
14
- * <MosaicChart.Actions />
15
- * </MosaicChart.Container>
11
+ * <MosaicSpecChart.Container spec={mySpec} onSpecChange={save}>
12
+ * <MosaicSpecChart.Display />
13
+ * <MosaicSpecChart.SpecEditor />
14
+ * <MosaicSpecChart.Actions />
15
+ * </MosaicSpecChart.Container>
16
16
  * ```
17
17
  */
18
- export const MosaicChart = {
18
+ export const MosaicSpecChart = {
19
19
  Container: MosaicChartContainer,
20
20
  Display: MosaicChartDisplay,
21
21
  SpecEditor: MosaicSpecEditorPanel,
@@ -1 +1 @@
1
- {"version":3,"file":"MosaicChart.js","sourceRoot":"","sources":["../src/MosaicChart.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,oBAAoB,EAAC,MAAM,+BAA+B,CAAC;AACnE,OAAO,EAAC,kBAAkB,EAAC,MAAM,6BAA6B,CAAC;AAC/D,OAAO,EAAC,qBAAqB,EAAC,MAAM,gCAAgC,CAAC;AACrE,OAAO,EAAC,wBAAwB,EAAC,MAAM,mCAAmC,CAAC;AAC3E,OAAO,EAAC,sBAAsB,EAAC,MAAM,iCAAiC,CAAC;AAEvE;;;;;;;;;;;GAWG;AACH,MAAM,CAAC,MAAM,WAAW,GAAG;IACzB,SAAS,EAAE,oBAAoB;IAC/B,OAAO,EAAE,kBAAkB;IAC3B,UAAU,EAAE,qBAAqB;IACjC,OAAO,EAAE,wBAAwB;IACjC,gBAAgB,EAAE,sBAAsB;CAChC,CAAC","sourcesContent":["import {MosaicChartContainer} from './editor/MosaicChartContainer';\nimport {MosaicChartDisplay} from './editor/MosaicChartDisplay';\nimport {MosaicSpecEditorPanel} from './editor/MosaicSpecEditorPanel';\nimport {MosaicChartEditorActions} from './editor/MosaicChartEditorActions';\nimport {MosaicCodeMirrorEditor} from './editor/MosaicCodeMirrorEditor';\n\n/**\n * Compound component for composable Mosaic chart editing.\n *\n * @example\n * ```tsx\n * <MosaicChart.Container spec={mySpec} onSpecChange={save}>\n * <MosaicChart.Display />\n * <MosaicChart.SpecEditor />\n * <MosaicChart.Actions />\n * </MosaicChart.Container>\n * ```\n */\nexport const MosaicChart = {\n Container: MosaicChartContainer,\n Display: MosaicChartDisplay,\n SpecEditor: MosaicSpecEditorPanel,\n Actions: MosaicChartEditorActions,\n CodeMirrorEditor: MosaicCodeMirrorEditor,\n} as const;\n"]}
1
+ {"version":3,"file":"MosaicChart.js","sourceRoot":"","sources":["../src/MosaicChart.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,oBAAoB,EAAC,MAAM,+BAA+B,CAAC;AACnE,OAAO,EAAC,kBAAkB,EAAC,MAAM,6BAA6B,CAAC;AAC/D,OAAO,EAAC,qBAAqB,EAAC,MAAM,gCAAgC,CAAC;AACrE,OAAO,EAAC,wBAAwB,EAAC,MAAM,mCAAmC,CAAC;AAC3E,OAAO,EAAC,sBAAsB,EAAC,MAAM,iCAAiC,CAAC;AAEvE;;;;;;;;;;;GAWG;AACH,MAAM,CAAC,MAAM,eAAe,GAAG;IAC7B,SAAS,EAAE,oBAAoB;IAC/B,OAAO,EAAE,kBAAkB;IAC3B,UAAU,EAAE,qBAAqB;IACjC,OAAO,EAAE,wBAAwB;IACjC,gBAAgB,EAAE,sBAAsB;CAChC,CAAC","sourcesContent":["import {MosaicChartContainer} from './editor/MosaicChartContainer';\nimport {MosaicChartDisplay} from './editor/MosaicChartDisplay';\nimport {MosaicSpecEditorPanel} from './editor/MosaicSpecEditorPanel';\nimport {MosaicChartEditorActions} from './editor/MosaicChartEditorActions';\nimport {MosaicCodeMirrorEditor} from './editor/MosaicCodeMirrorEditor';\n\n/**\n * Compound component for composable Mosaic chart editing.\n *\n * @example\n * ```tsx\n * <MosaicSpecChart.Container spec={mySpec} onSpecChange={save}>\n * <MosaicSpecChart.Display />\n * <MosaicSpecChart.SpecEditor />\n * <MosaicSpecChart.Actions />\n * </MosaicSpecChart.Container>\n * ```\n */\nexport const MosaicSpecChart = {\n Container: MosaicChartContainer,\n Display: MosaicChartDisplay,\n SpecEditor: MosaicSpecEditorPanel,\n Actions: MosaicChartEditorActions,\n CodeMirrorEditor: MosaicCodeMirrorEditor,\n} as const;\n"]}
@@ -5,7 +5,7 @@ import { ChartBuilderDialog, ChartBuilderDialogContent, ChartBuilderTrigger } fr
5
5
  import { ChartBuilderRoot, type ChartBuilderRootProps } from './chart-builders/ChartBuilderRoot';
6
6
  import { ChartBuilderFields } from './chart-builders/ChartBuilderFields';
7
7
  import { ChartBuilderTypeGrid } from './chart-builders/ChartBuilderTypeGrid';
8
- import { FieldSelectorInput } from './chart-builders/FieldSelectorInput';
8
+ import { FieldSelectorInput } from './components/FieldSelectorInput';
9
9
  /**
10
10
  * Compound component for building Mosaic charts from templates.
11
11
  *
@@ -1 +1 @@
1
- {"version":3,"file":"MosaicChartBuilder.d.ts","sourceRoot":"","sources":["../src/MosaicChartBuilder.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAC,YAAY,EAAC,MAAM,OAAO,CAAC;AACxC,OAAO,EAAC,mBAAmB,EAAC,MAAM,sCAAsC,CAAC;AACzE,OAAO,EAAC,mBAAmB,EAAC,MAAM,sCAAsC,CAAC;AACzE,OAAO,EACL,kBAAkB,EAClB,yBAAyB,EACzB,mBAAmB,EACpB,MAAM,qCAAqC,CAAC;AAC7C,OAAO,EACL,gBAAgB,EAChB,KAAK,qBAAqB,EAC3B,MAAM,mCAAmC,CAAC;AAC3C,OAAO,EAAC,kBAAkB,EAAC,MAAM,qCAAqC,CAAC;AACvE,OAAO,EAAC,oBAAoB,EAAC,MAAM,uCAAuC,CAAC;AAC3E,OAAO,EAAC,kBAAkB,EAAC,MAAM,qCAAqC,CAAC;AAEvE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAwCG;AAEH,KAAK,mCAAmC,GAAG,CAAC,CAC1C,KAAK,EAAE,qBAAqB,KACzB,YAAY,CAAC,GAAG;IACnB,IAAI,EAAE,OAAO,gBAAgB,CAAC;IAC9B,OAAO,EAAE,OAAO,mBAAmB,CAAC;IACpC,MAAM,EAAE,OAAO,yBAAyB,CAAC;IACzC,OAAO,EAAE,OAAO,mBAAmB,CAAC;IACpC,QAAQ,EAAE,OAAO,oBAAoB,CAAC;IACtC,MAAM,EAAE,OAAO,kBAAkB,CAAC;IAClC,OAAO,EAAE,OAAO,mBAAmB,CAAC;IACpC,aAAa,EAAE,OAAO,kBAAkB,CAAC;IACzC,YAAY,EAAE,OAAO,kBAAkB,CAAC;CACzC,CAAC;AAEF,eAAO,MAAM,kBAAkB,EAAE,mCAsB9B,CAAC"}
1
+ {"version":3,"file":"MosaicChartBuilder.d.ts","sourceRoot":"","sources":["../src/MosaicChartBuilder.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAC,YAAY,EAAC,MAAM,OAAO,CAAC;AACxC,OAAO,EAAC,mBAAmB,EAAC,MAAM,sCAAsC,CAAC;AACzE,OAAO,EAAC,mBAAmB,EAAC,MAAM,sCAAsC,CAAC;AACzE,OAAO,EACL,kBAAkB,EAClB,yBAAyB,EACzB,mBAAmB,EACpB,MAAM,qCAAqC,CAAC;AAC7C,OAAO,EACL,gBAAgB,EAChB,KAAK,qBAAqB,EAC3B,MAAM,mCAAmC,CAAC;AAC3C,OAAO,EAAC,kBAAkB,EAAC,MAAM,qCAAqC,CAAC;AACvE,OAAO,EAAC,oBAAoB,EAAC,MAAM,uCAAuC,CAAC;AAC3E,OAAO,EAAC,kBAAkB,EAAC,MAAM,iCAAiC,CAAC;AAEnE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAwCG;AAEH,KAAK,mCAAmC,GAAG,CAAC,CAC1C,KAAK,EAAE,qBAAqB,KACzB,YAAY,CAAC,GAAG;IACnB,IAAI,EAAE,OAAO,gBAAgB,CAAC;IAC9B,OAAO,EAAE,OAAO,mBAAmB,CAAC;IACpC,MAAM,EAAE,OAAO,yBAAyB,CAAC;IACzC,OAAO,EAAE,OAAO,mBAAmB,CAAC;IACpC,QAAQ,EAAE,OAAO,oBAAoB,CAAC;IACtC,MAAM,EAAE,OAAO,kBAAkB,CAAC;IAClC,OAAO,EAAE,OAAO,mBAAmB,CAAC;IACpC,aAAa,EAAE,OAAO,kBAAkB,CAAC;IACzC,YAAY,EAAE,OAAO,kBAAkB,CAAC;CACzC,CAAC;AAEF,eAAO,MAAM,kBAAkB,EAAE,mCAsB9B,CAAC"}
@@ -4,7 +4,7 @@ import { ChartBuilderDialog, ChartBuilderDialogContent, ChartBuilderTrigger, } f
4
4
  import { ChartBuilderRoot, } from './chart-builders/ChartBuilderRoot';
5
5
  import { ChartBuilderFields } from './chart-builders/ChartBuilderFields';
6
6
  import { ChartBuilderTypeGrid } from './chart-builders/ChartBuilderTypeGrid';
7
- import { FieldSelectorInput } from './chart-builders/FieldSelectorInput';
7
+ import { FieldSelectorInput } from './components/FieldSelectorInput';
8
8
  export const MosaicChartBuilder = Object.assign(ChartBuilderRoot, {
9
9
  Root: ChartBuilderRoot,
10
10
  /** Default trigger button; customize via ButtonProps or children. */
@@ -1 +1 @@
1
- {"version":3,"file":"MosaicChartBuilder.js","sourceRoot":"","sources":["../src/MosaicChartBuilder.ts"],"names":[],"mappings":"AACA,OAAO,EAAC,mBAAmB,EAAC,MAAM,sCAAsC,CAAC;AACzE,OAAO,EAAC,mBAAmB,EAAC,MAAM,sCAAsC,CAAC;AACzE,OAAO,EACL,kBAAkB,EAClB,yBAAyB,EACzB,mBAAmB,GACpB,MAAM,qCAAqC,CAAC;AAC7C,OAAO,EACL,gBAAgB,GAEjB,MAAM,mCAAmC,CAAC;AAC3C,OAAO,EAAC,kBAAkB,EAAC,MAAM,qCAAqC,CAAC;AACvE,OAAO,EAAC,oBAAoB,EAAC,MAAM,uCAAuC,CAAC;AAC3E,OAAO,EAAC,kBAAkB,EAAC,MAAM,qCAAqC,CAAC;AA0DvE,MAAM,CAAC,MAAM,kBAAkB,GAC7B,MAAM,CAAC,MAAM,CACX,gBAAkE,EAClE;IACE,IAAI,EAAE,gBAAgB;IACtB,qEAAqE;IACrE,OAAO,EAAE,mBAAmB;IAC5B,oDAAoD;IACpD,MAAM,EAAE,yBAAyB;IACjC,iDAAiD;IACjD,OAAO,EAAE,mBAAmB;IAC5B,uCAAuC;IACvC,QAAQ,EAAE,oBAAoB;IAC9B,6DAA6D;IAC7D,MAAM,EAAE,kBAAkB;IAC1B,gEAAgE;IAChE,OAAO,EAAE,mBAAmB;IAC5B,gCAAgC;IAChC,aAAa,EAAE,kBAAkB;IACjC,oDAAoD;IACpD,YAAY,EAAE,kBAAkB;CACjC,CACF,CAAC","sourcesContent":["import type {ReactElement} from 'react';\nimport {ChartBuilderActions} from './chart-builders/ChartBuilderActions';\nimport {ChartBuilderContent} from './chart-builders/ChartBuilderContent';\nimport {\n ChartBuilderDialog,\n ChartBuilderDialogContent,\n ChartBuilderTrigger,\n} from './chart-builders/ChartBuilderDialog';\nimport {\n ChartBuilderRoot,\n type ChartBuilderRootProps,\n} from './chart-builders/ChartBuilderRoot';\nimport {ChartBuilderFields} from './chart-builders/ChartBuilderFields';\nimport {ChartBuilderTypeGrid} from './chart-builders/ChartBuilderTypeGrid';\nimport {FieldSelectorInput} from './chart-builders/FieldSelectorInput';\n\n/**\n * Compound component for building Mosaic charts from templates.\n *\n * Use `<MosaicChartBuilder>` as the root; it provides context and wraps a\n * Radix Dialog.\n *\n * @example Compound usage (recommended)\n * ```tsx\n * <MosaicChartBuilder\n * tableName=\"my_table\"\n * columns={columns}\n * onCreateChart={handleCreate}\n * >\n * <MosaicChartBuilder.Trigger />\n * <MosaicChartBuilder.Dialog />\n * </MosaicChartBuilder>\n * ```\n *\n * @example Custom trigger button\n * ```tsx\n * <MosaicChartBuilder\n * tableName=\"my_table\"\n * columns={columns}\n * onCreateChart={handleCreate}\n * >\n * <MosaicChartBuilder.Trigger variant=\"ghost\" size=\"icon\">\n * <PlusIcon />\n * </MosaicChartBuilder.Trigger>\n * <MosaicChartBuilder.Dialog />\n * </MosaicChartBuilder>\n * ```\n *\n * @example Inline builder (no dialog)\n * ```tsx\n * <MosaicChartBuilder.Content\n * tableName=\"my_table\"\n * columns={columns}\n * onCreateChart={handleCreate}\n * />\n * ```\n */\n\ntype MosaicChartBuilderCompoundComponent = ((\n props: ChartBuilderRootProps,\n) => ReactElement) & {\n Root: typeof ChartBuilderRoot;\n Trigger: typeof ChartBuilderTrigger;\n Dialog: typeof ChartBuilderDialogContent;\n Content: typeof ChartBuilderContent;\n TypeGrid: typeof ChartBuilderTypeGrid;\n Fields: typeof ChartBuilderFields;\n Actions: typeof ChartBuilderActions;\n FieldSelector: typeof FieldSelectorInput;\n LegacyDialog: typeof ChartBuilderDialog;\n};\n\nexport const MosaicChartBuilder: MosaicChartBuilderCompoundComponent =\n Object.assign(\n ChartBuilderRoot as (props: ChartBuilderRootProps) => ReactElement,\n {\n Root: ChartBuilderRoot,\n /** Default trigger button; customize via ButtonProps or children. */\n Trigger: ChartBuilderTrigger,\n /** Dialog content pane with chart-builder steps. */\n Dialog: ChartBuilderDialogContent,\n /** Standalone builder UI (no dialog wrapper). */\n Content: ChartBuilderContent,\n /** Built-in chart-type picker grid. */\n TypeGrid: ChartBuilderTypeGrid,\n /** Field selectors for the currently selected chart type. */\n Fields: ChartBuilderFields,\n /** Back/Create actions for the current chart type selection. */\n Actions: ChartBuilderActions,\n /** Field selector primitive. */\n FieldSelector: FieldSelectorInput,\n /** Legacy one-shot dialog (backward-compatible). */\n LegacyDialog: ChartBuilderDialog,\n },\n );\n"]}
1
+ {"version":3,"file":"MosaicChartBuilder.js","sourceRoot":"","sources":["../src/MosaicChartBuilder.ts"],"names":[],"mappings":"AACA,OAAO,EAAC,mBAAmB,EAAC,MAAM,sCAAsC,CAAC;AACzE,OAAO,EAAC,mBAAmB,EAAC,MAAM,sCAAsC,CAAC;AACzE,OAAO,EACL,kBAAkB,EAClB,yBAAyB,EACzB,mBAAmB,GACpB,MAAM,qCAAqC,CAAC;AAC7C,OAAO,EACL,gBAAgB,GAEjB,MAAM,mCAAmC,CAAC;AAC3C,OAAO,EAAC,kBAAkB,EAAC,MAAM,qCAAqC,CAAC;AACvE,OAAO,EAAC,oBAAoB,EAAC,MAAM,uCAAuC,CAAC;AAC3E,OAAO,EAAC,kBAAkB,EAAC,MAAM,iCAAiC,CAAC;AA0DnE,MAAM,CAAC,MAAM,kBAAkB,GAC7B,MAAM,CAAC,MAAM,CACX,gBAAkE,EAClE;IACE,IAAI,EAAE,gBAAgB;IACtB,qEAAqE;IACrE,OAAO,EAAE,mBAAmB;IAC5B,oDAAoD;IACpD,MAAM,EAAE,yBAAyB;IACjC,iDAAiD;IACjD,OAAO,EAAE,mBAAmB;IAC5B,uCAAuC;IACvC,QAAQ,EAAE,oBAAoB;IAC9B,6DAA6D;IAC7D,MAAM,EAAE,kBAAkB;IAC1B,gEAAgE;IAChE,OAAO,EAAE,mBAAmB;IAC5B,gCAAgC;IAChC,aAAa,EAAE,kBAAkB;IACjC,oDAAoD;IACpD,YAAY,EAAE,kBAAkB;CACjC,CACF,CAAC","sourcesContent":["import type {ReactElement} from 'react';\nimport {ChartBuilderActions} from './chart-builders/ChartBuilderActions';\nimport {ChartBuilderContent} from './chart-builders/ChartBuilderContent';\nimport {\n ChartBuilderDialog,\n ChartBuilderDialogContent,\n ChartBuilderTrigger,\n} from './chart-builders/ChartBuilderDialog';\nimport {\n ChartBuilderRoot,\n type ChartBuilderRootProps,\n} from './chart-builders/ChartBuilderRoot';\nimport {ChartBuilderFields} from './chart-builders/ChartBuilderFields';\nimport {ChartBuilderTypeGrid} from './chart-builders/ChartBuilderTypeGrid';\nimport {FieldSelectorInput} from './components/FieldSelectorInput';\n\n/**\n * Compound component for building Mosaic charts from templates.\n *\n * Use `<MosaicChartBuilder>` as the root; it provides context and wraps a\n * Radix Dialog.\n *\n * @example Compound usage (recommended)\n * ```tsx\n * <MosaicChartBuilder\n * tableName=\"my_table\"\n * columns={columns}\n * onCreateChart={handleCreate}\n * >\n * <MosaicChartBuilder.Trigger />\n * <MosaicChartBuilder.Dialog />\n * </MosaicChartBuilder>\n * ```\n *\n * @example Custom trigger button\n * ```tsx\n * <MosaicChartBuilder\n * tableName=\"my_table\"\n * columns={columns}\n * onCreateChart={handleCreate}\n * >\n * <MosaicChartBuilder.Trigger variant=\"ghost\" size=\"icon\">\n * <PlusIcon />\n * </MosaicChartBuilder.Trigger>\n * <MosaicChartBuilder.Dialog />\n * </MosaicChartBuilder>\n * ```\n *\n * @example Inline builder (no dialog)\n * ```tsx\n * <MosaicChartBuilder.Content\n * tableName=\"my_table\"\n * columns={columns}\n * onCreateChart={handleCreate}\n * />\n * ```\n */\n\ntype MosaicChartBuilderCompoundComponent = ((\n props: ChartBuilderRootProps,\n) => ReactElement) & {\n Root: typeof ChartBuilderRoot;\n Trigger: typeof ChartBuilderTrigger;\n Dialog: typeof ChartBuilderDialogContent;\n Content: typeof ChartBuilderContent;\n TypeGrid: typeof ChartBuilderTypeGrid;\n Fields: typeof ChartBuilderFields;\n Actions: typeof ChartBuilderActions;\n FieldSelector: typeof FieldSelectorInput;\n LegacyDialog: typeof ChartBuilderDialog;\n};\n\nexport const MosaicChartBuilder: MosaicChartBuilderCompoundComponent =\n Object.assign(\n ChartBuilderRoot as (props: ChartBuilderRootProps) => ReactElement,\n {\n Root: ChartBuilderRoot,\n /** Default trigger button; customize via ButtonProps or children. */\n Trigger: ChartBuilderTrigger,\n /** Dialog content pane with chart-builder steps. */\n Dialog: ChartBuilderDialogContent,\n /** Standalone builder UI (no dialog wrapper). */\n Content: ChartBuilderContent,\n /** Built-in chart-type picker grid. */\n TypeGrid: ChartBuilderTypeGrid,\n /** Field selectors for the currently selected chart type. */\n Fields: ChartBuilderFields,\n /** Back/Create actions for the current chart type selection. */\n Actions: ChartBuilderActions,\n /** Field selector primitive. */\n FieldSelector: FieldSelectorInput,\n /** Legacy one-shot dialog (backward-compatible). */\n LegacyDialog: ChartBuilderDialog,\n },\n );\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"MosaicColorLegend.d.ts","sourceRoot":"","sources":["../src/MosaicColorLegend.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAC,gBAAgB,EAAC,MAAM,wBAAwB,CAAC;AAG7D,OAAO,EAAC,SAAS,EAAC,MAAM,qBAAqB,CAAC;AAK9C,KAAK,iBAAiB,GAAG,MAAM,GAAG,MAAM,GAAG,IAAI,CAAC;AAEhD,KAAK,kCAAkC,GAAG;IACxC,UAAU,EAAE,gBAAgB,CAAC;IAC7B,SAAS,CAAC,EAAE,SAAS,CAAC;IACtB,MAAM,CAAC,EAAE,aAAa,CAAC,iBAAiB,CAAC,CAAC;IAC1C,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB,CAAC;AAEF,MAAM,MAAM,sBAAsB,GAAG,kCAAkC,GAAG;IACxE,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB,CAAC;AAuDF,wBAAgB,2BAA2B,CAAC,EAC1C,UAAU,EACV,SAAS,EACT,MAAM,EACN,KAAK,EACL,KAAW,EACX,UAAkB,GACnB,EAAE,kCAAkC,OAiDpC;AAED,wBAAgB,iBAAiB,CAAC,EAChC,UAAU,EACV,SAAS,EACT,MAAM,EACN,KAAK,EACL,KAAK,EACL,UAAU,EACV,SAAS,GACV,EAAE,sBAAsB,kDAgDxB"}
1
+ {"version":3,"file":"MosaicColorLegend.d.ts","sourceRoot":"","sources":["../src/MosaicColorLegend.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAC,gBAAgB,EAAC,MAAM,wBAAwB,CAAC;AAG7D,OAAO,EAAC,SAAS,EAAC,MAAM,qBAAqB,CAAC;AAK9C,KAAK,iBAAiB,GAAG,MAAM,GAAG,MAAM,GAAG,IAAI,CAAC;AAEhD,KAAK,kCAAkC,GAAG;IACxC,UAAU,EAAE,gBAAgB,CAAC;IAC7B,SAAS,CAAC,EAAE,SAAS,CAAC;IACtB,MAAM,CAAC,EAAE,aAAa,CAAC,iBAAiB,CAAC,CAAC;IAC1C,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB,CAAC;AAEF,MAAM,MAAM,sBAAsB,GAAG,kCAAkC,GAAG;IACxE,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB,CAAC;AAuDF,wBAAgB,2BAA2B,CAAC,EAC1C,UAAU,EACV,SAAS,EACT,MAAM,EACN,KAAK,EACL,KAAW,EACX,UAAkB,GACnB,EAAE,kCAAkC,OAiDpC;AAED,wBAAgB,iBAAiB,CAAC,EAChC,UAAU,EACV,SAAS,EACT,MAAM,EACN,KAAK,EACL,KAAK,EACL,UAAU,EACV,SAAS,GACV,EAAE,sBAAsB,kDA+CxB"}
@@ -96,7 +96,6 @@ export function MosaicColorLegend({ colorScale, selection, domain, title, width,
96
96
  width,
97
97
  tickFormat,
98
98
  });
99
- // eslint-disable-next-line react-hooks/preserve-manual-memoization
100
99
  const plot = useMemo(() => createMosaicColorLegendPlot({
101
100
  colorScale,
102
101
  selection,
@@ -1 +1 @@
1
- {"version":3,"file":"MosaicColorLegend.js","sourceRoot":"","sources":["../src/MosaicColorLegend.tsx"],"names":[],"mappings":"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","sourcesContent":["import type {ColorScaleConfig} from '@sqlrooms/color-scales';\nimport {resolveColorLegendTitle} from '@sqlrooms/color-scales';\nimport {cn, getResolvedTheme, useTheme} from '@sqlrooms/ui';\nimport {Selection} from '@uwdata/mosaic-core';\nimport * as vg from '@uwdata/vgplot';\nimport {useMemo} from 'react';\nimport {VgPlotChart} from './VgPlotChart';\n\ntype LegendDomainValue = string | number | Date;\n\ntype CreateMosaicColorLegendPlotOptions = {\n colorScale: ColorScaleConfig;\n selection?: Selection;\n domain?: ReadonlyArray<LegendDomainValue>;\n title?: string;\n width?: number;\n tickFormat?: string;\n};\n\nexport type MosaicColorLegendProps = CreateMosaicColorLegendPlotOptions & {\n className?: string;\n};\n\nfunction isExplicitNumericDomain(\n domain: 'auto' | [number, number] | [number, number, number],\n): domain is [number, number] | [number, number, number] {\n return domain !== 'auto';\n}\n\nfunction resolveLegendDomain(\n colorScale: ColorScaleConfig,\n domain?: ReadonlyArray<LegendDomainValue>,\n) {\n if (\n (colorScale.type === 'sequential' ||\n colorScale.type === 'diverging' ||\n colorScale.type === 'quantize') &&\n isExplicitNumericDomain(colorScale.domain)\n ) {\n return colorScale.domain;\n }\n\n return domain;\n}\n\nfunction getVgColorScaleType(colorScale: ColorScaleConfig) {\n switch (colorScale.type) {\n case 'sequential':\n return 'linear';\n case 'diverging':\n return 'diverging';\n case 'quantize':\n return 'quantize';\n case 'quantile':\n return 'quantile';\n case 'threshold':\n return 'threshold';\n case 'categorical':\n return 'categorical';\n default: {\n const _exhaustive: never = colorScale;\n throw new Error(\n `Unknown color scale type: ${(_exhaustive as ColorScaleConfig).type}`,\n );\n }\n }\n}\n\nfunction supportsInteractiveLegend(colorScale: ColorScaleConfig) {\n return (\n colorScale.type === 'sequential' ||\n colorScale.type === 'diverging' ||\n colorScale.type === 'categorical'\n );\n}\n\nexport function createMosaicColorLegendPlot({\n colorScale,\n selection,\n domain,\n title,\n width = 220,\n tickFormat = '.1f',\n}: CreateMosaicColorLegendPlotOptions) {\n const resolvedDomain = resolveLegendDomain(colorScale, domain);\n const legendTitle = resolveColorLegendTitle(colorScale, title);\n const plotAttributes: Array<(plot: any) => void> = [\n vg.colorScale(getVgColorScaleType(colorScale)),\n vg.colorScheme(colorScale.scheme),\n vg.colorLabel(legendTitle),\n vg.marginTop(0),\n vg.marginRight(0),\n vg.marginBottom(0),\n vg.marginLeft(0),\n ];\n\n if ('clamp' in colorScale && colorScale.clamp !== undefined) {\n plotAttributes.push(vg.colorClamp(colorScale.clamp));\n }\n\n if ('reverse' in colorScale && colorScale.reverse !== undefined) {\n plotAttributes.push(vg.colorReverse(colorScale.reverse));\n }\n\n if (colorScale.type === 'diverging') {\n if (Array.isArray(resolvedDomain) && resolvedDomain.length === 3) {\n plotAttributes.push(\n vg.colorDomain([resolvedDomain[0], resolvedDomain[2]]),\n vg.colorPivot(resolvedDomain[1]),\n );\n } else if (Array.isArray(resolvedDomain) && resolvedDomain.length === 2) {\n plotAttributes.push(vg.colorDomain(resolvedDomain));\n }\n } else if (colorScale.type === 'threshold') {\n plotAttributes.push(vg.colorDomain(colorScale.thresholds));\n } else if (resolvedDomain) {\n plotAttributes.push(vg.colorDomain(resolvedDomain));\n }\n\n if (colorScale.type === 'quantize' || colorScale.type === 'quantile') {\n plotAttributes.push(vg.colorN(colorScale.bins ?? 5));\n }\n\n const backingPlot = vg.plot(...plotAttributes);\n return vg.colorLegend({\n for: backingPlot,\n as: supportsInteractiveLegend(colorScale) ? selection : undefined,\n field: colorScale.field,\n width,\n tickFormat,\n label: legendTitle,\n });\n}\n\nexport function MosaicColorLegend({\n colorScale,\n selection,\n domain,\n title,\n width,\n tickFormat,\n className,\n}: MosaicColorLegendProps) {\n const {theme} = useTheme();\n const resolvedTheme = getResolvedTheme(theme);\n const legendSpecKey = JSON.stringify({\n colorScale,\n domain,\n title,\n width,\n tickFormat,\n });\n\n // eslint-disable-next-line react-hooks/preserve-manual-memoization\n const plot = useMemo(\n () =>\n createMosaicColorLegendPlot({\n colorScale,\n selection,\n domain,\n title,\n width,\n tickFormat,\n }),\n // eslint-disable-next-line react-hooks/exhaustive-deps -- deep-equal via serialized key instead of object refs\n [legendSpecKey, selection],\n );\n\n if (!plot) {\n return null;\n }\n\n return (\n <div\n className={cn(\n 'pointer-events-auto rounded-md border px-3 py-2 shadow-lg backdrop-blur-sm',\n 'border-slate-200 bg-white/95 text-slate-900',\n 'dark:border-slate-700 dark:bg-[#1f1d1b]/90 dark:text-slate-100',\n '[&_svg]:block [&_svg]:overflow-visible',\n '[&_svg_line]:stroke-current [&_svg_path]:stroke-current [&_svg_text]:fill-current',\n resolvedTheme === 'dark' &&\n '[&_svg_.domain]:stroke-slate-500 [&_svg_line]:stroke-slate-500',\n resolvedTheme === 'light' &&\n '[&_svg_.domain]:stroke-slate-400 [&_svg_line]:stroke-slate-400',\n className,\n )}\n >\n <VgPlotChart plot={plot} />\n </div>\n );\n}\n"]}
1
+ {"version":3,"file":"MosaicColorLegend.js","sourceRoot":"","sources":["../src/MosaicColorLegend.tsx"],"names":[],"mappings":"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","sourcesContent":["import type {ColorScaleConfig} from '@sqlrooms/color-scales';\nimport {resolveColorLegendTitle} from '@sqlrooms/color-scales';\nimport {cn, getResolvedTheme, useTheme} from '@sqlrooms/ui';\nimport {Selection} from '@uwdata/mosaic-core';\nimport * as vg from '@uwdata/vgplot';\nimport {useMemo} from 'react';\nimport {VgPlotChart} from './VgPlotChart';\n\ntype LegendDomainValue = string | number | Date;\n\ntype CreateMosaicColorLegendPlotOptions = {\n colorScale: ColorScaleConfig;\n selection?: Selection;\n domain?: ReadonlyArray<LegendDomainValue>;\n title?: string;\n width?: number;\n tickFormat?: string;\n};\n\nexport type MosaicColorLegendProps = CreateMosaicColorLegendPlotOptions & {\n className?: string;\n};\n\nfunction isExplicitNumericDomain(\n domain: 'auto' | [number, number] | [number, number, number],\n): domain is [number, number] | [number, number, number] {\n return domain !== 'auto';\n}\n\nfunction resolveLegendDomain(\n colorScale: ColorScaleConfig,\n domain?: ReadonlyArray<LegendDomainValue>,\n) {\n if (\n (colorScale.type === 'sequential' ||\n colorScale.type === 'diverging' ||\n colorScale.type === 'quantize') &&\n isExplicitNumericDomain(colorScale.domain)\n ) {\n return colorScale.domain;\n }\n\n return domain;\n}\n\nfunction getVgColorScaleType(colorScale: ColorScaleConfig) {\n switch (colorScale.type) {\n case 'sequential':\n return 'linear';\n case 'diverging':\n return 'diverging';\n case 'quantize':\n return 'quantize';\n case 'quantile':\n return 'quantile';\n case 'threshold':\n return 'threshold';\n case 'categorical':\n return 'categorical';\n default: {\n const _exhaustive: never = colorScale;\n throw new Error(\n `Unknown color scale type: ${(_exhaustive as ColorScaleConfig).type}`,\n );\n }\n }\n}\n\nfunction supportsInteractiveLegend(colorScale: ColorScaleConfig) {\n return (\n colorScale.type === 'sequential' ||\n colorScale.type === 'diverging' ||\n colorScale.type === 'categorical'\n );\n}\n\nexport function createMosaicColorLegendPlot({\n colorScale,\n selection,\n domain,\n title,\n width = 220,\n tickFormat = '.1f',\n}: CreateMosaicColorLegendPlotOptions) {\n const resolvedDomain = resolveLegendDomain(colorScale, domain);\n const legendTitle = resolveColorLegendTitle(colorScale, title);\n const plotAttributes: Array<(plot: any) => void> = [\n vg.colorScale(getVgColorScaleType(colorScale)),\n vg.colorScheme(colorScale.scheme),\n vg.colorLabel(legendTitle),\n vg.marginTop(0),\n vg.marginRight(0),\n vg.marginBottom(0),\n vg.marginLeft(0),\n ];\n\n if ('clamp' in colorScale && colorScale.clamp !== undefined) {\n plotAttributes.push(vg.colorClamp(colorScale.clamp));\n }\n\n if ('reverse' in colorScale && colorScale.reverse !== undefined) {\n plotAttributes.push(vg.colorReverse(colorScale.reverse));\n }\n\n if (colorScale.type === 'diverging') {\n if (Array.isArray(resolvedDomain) && resolvedDomain.length === 3) {\n plotAttributes.push(\n vg.colorDomain([resolvedDomain[0], resolvedDomain[2]]),\n vg.colorPivot(resolvedDomain[1]),\n );\n } else if (Array.isArray(resolvedDomain) && resolvedDomain.length === 2) {\n plotAttributes.push(vg.colorDomain(resolvedDomain));\n }\n } else if (colorScale.type === 'threshold') {\n plotAttributes.push(vg.colorDomain(colorScale.thresholds));\n } else if (resolvedDomain) {\n plotAttributes.push(vg.colorDomain(resolvedDomain));\n }\n\n if (colorScale.type === 'quantize' || colorScale.type === 'quantile') {\n plotAttributes.push(vg.colorN(colorScale.bins ?? 5));\n }\n\n const backingPlot = vg.plot(...plotAttributes);\n return vg.colorLegend({\n for: backingPlot,\n as: supportsInteractiveLegend(colorScale) ? selection : undefined,\n field: colorScale.field,\n width,\n tickFormat,\n label: legendTitle,\n });\n}\n\nexport function MosaicColorLegend({\n colorScale,\n selection,\n domain,\n title,\n width,\n tickFormat,\n className,\n}: MosaicColorLegendProps) {\n const {theme} = useTheme();\n const resolvedTheme = getResolvedTheme(theme);\n const legendSpecKey = JSON.stringify({\n colorScale,\n domain,\n title,\n width,\n tickFormat,\n });\n\n const plot = useMemo(\n () =>\n createMosaicColorLegendPlot({\n colorScale,\n selection,\n domain,\n title,\n width,\n tickFormat,\n }),\n // eslint-disable-next-line react-hooks/exhaustive-deps -- deep-equal via serialized key instead of object refs\n [legendSpecKey, selection],\n );\n\n if (!plot) {\n return null;\n }\n\n return (\n <div\n className={cn(\n 'pointer-events-auto rounded-md border px-3 py-2 shadow-lg backdrop-blur-sm',\n 'border-slate-200 bg-white/95 text-slate-900',\n 'dark:border-slate-700 dark:bg-[#1f1d1b]/90 dark:text-slate-100',\n '[&_svg]:block [&_svg]:overflow-visible',\n '[&_svg_line]:stroke-current [&_svg_path]:stroke-current [&_svg_text]:fill-current',\n resolvedTheme === 'dark' &&\n '[&_svg_.domain]:stroke-slate-500 [&_svg_line]:stroke-slate-500',\n resolvedTheme === 'light' &&\n '[&_svg_.domain]:stroke-slate-400 [&_svg_line]:stroke-slate-400',\n className,\n )}\n >\n <VgPlotChart plot={plot} />\n </div>\n );\n}\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"MosaicSlice.d.ts","sourceRoot":"","sources":["../src/MosaicSlice.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"MosaicSlice.d.ts","sourceRoot":"","sources":["../src/MosaicSlice.ts"],"names":[],"mappings":"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"}
@@ -7,9 +7,7 @@ import { z } from 'zod';
7
7
  import { createMosaicTableFromArrowTable, toArrowClientResult, } from './tableInterop';
8
8
  export const MosaicSliceConfig = z.object({});
9
9
  export function createDefaultMosaicConfig(props) {
10
- return {
11
- ...props,
12
- };
10
+ return { ...props };
13
11
  }
14
12
  export function createMosaicSlice(props = {}) {
15
13
  return createSlice((set, get, store) => ({
@@ -123,6 +121,7 @@ export function createMosaicSlice(props = {}) {
123
121
  tracked.error = error;
124
122
  }
125
123
  }));
124
+ // Disable client to prevent further queries
126
125
  client.enabled = false;
127
126
  options.queryError?.(error);
128
127
  };
@@ -205,6 +204,7 @@ export function createMosaicSlice(props = {}) {
205
204
  tracked.error = error;
206
205
  }
207
206
  }));
207
+ // Disable client to prevent further queries
208
208
  client.enabled = false;
209
209
  options.onQueryError?.(error);
210
210
  options.queryError?.(error);
@@ -1 +1 @@
1
- {"version":3,"file":"MosaicSlice.js","sourceRoot":"","sources":["../src/MosaicSlice.ts"],"names":[],"mappings":"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","sourcesContent":["import {createId} from '@paralleldrive/cuid2';\nimport {\n isWasmDuckDbConnector,\n type DuckDbConnector,\n type DuckDbSliceState,\n} from '@sqlrooms/duckdb';\nimport {\n BaseRoomStoreState,\n createSlice,\n useBaseRoomStore,\n type SliceFunctions,\n} from '@sqlrooms/room-store';\nimport type {\n ArrowQueryRequest,\n ExecQueryRequest,\n JSONQueryRequest,\n} from '@uwdata/mosaic-core';\nimport {\n Connector,\n Coordinator,\n coordinator,\n makeClient,\n Selection,\n wasmConnector,\n} from '@uwdata/mosaic-core';\nimport {Query} from '@uwdata/mosaic-sql';\nimport type {Table as ArrowTable} from 'apache-arrow';\nimport {produce} from 'immer';\nimport {z} from 'zod';\nimport {\n createMosaicTableFromArrowTable,\n toArrowClientResult,\n} from './tableInterop';\n\nexport const MosaicSliceConfig = z.object({});\nexport type MosaicSliceConfig = z.infer<typeof MosaicSliceConfig>;\n\nexport type MosaicPreAggregateOptions = {\n /** Database schema/namespace for Mosaic pre-aggregate tables. */\n schema?: string;\n /** Enable or disable Mosaic's pre-aggregation optimization. */\n enabled?: boolean;\n};\n\n// Client configuration options\nexport type MosaicClientOptions = {\n /** Unique identifier for this client */\n id?: string;\n /** Selection name for cross-filtering (will create if doesn't exist) */\n selectionName?: string;\n /** The selection to subscribe to for cross-filtering */\n selection?: Selection;\n /** Query builder function that receives the current filter */\n query: (filter: unknown) => ReturnType<typeof Query.from>;\n /** Callback when query results are received */\n queryResult?: (result: ArrowTable) => void;\n /** Callback when query execution fails */\n queryError?: (error: Error) => void;\n};\n\n// Tracked client info\nexport type TrackedClient = {\n id: string;\n client: ReturnType<typeof makeClient>;\n createdAt: number;\n isLoading: boolean;\n data: unknown | null;\n error?: Error;\n selection?: Selection; // Track for change detection\n queryResultCallback?: (result: ArrowTable) => void; // External callback\n};\n\nexport type MosaicIdleConnection = {status: 'idle'};\nexport type MosaicLoadingConnection = {status: 'loading'};\nexport type MosaicReadyConnection = {\n status: 'ready';\n connector?: Connector;\n coordinator: Coordinator;\n};\nexport type MosaicErrorConnection = {status: 'error'; error: unknown};\n\nexport type MosaicConnection =\n | MosaicIdleConnection\n | MosaicLoadingConnection\n | MosaicReadyConnection\n | MosaicErrorConnection;\n\nexport type MosaicSliceState = {\n mosaic: SliceFunctions & {\n connection: MosaicConnection;\n config: MosaicSliceConfig;\n /** Record of registered clients by id */\n clients: Record<string, TrackedClient>;\n /** Named selections for cross-filtering (e.g., 'brush', 'hover') */\n selections: Record<string, Selection>;\n initialize: () => Promise<void>;\n /** Get or create a named selection for cross-filtering */\n getSelection: (\n name: string,\n type?: 'crossfilter' | 'single' | 'union',\n ) => Selection;\n /** Create a mosaic client and register it */\n createClient: (options: MosaicClientOptions) => string;\n /** Ensure a client exists with given options (idempotent - creates or updates as needed) */\n ensureClient: (\n options: MosaicClientOptions & {\n id: string;\n onQueryResult?: (result: ArrowTable) => void;\n onQueryError?: (error: Error) => void;\n },\n ) => void;\n /** Disconnect and remove a client by id */\n destroyClient: (id: string) => void;\n /** Disconnect all clients (useful for cleanup) */\n destroyAllClients: () => void;\n };\n};\n\nexport function createDefaultMosaicConfig(\n props?: Partial<MosaicSliceConfig>,\n): MosaicSliceConfig {\n return {\n ...props,\n } as MosaicSliceConfig;\n}\n\nexport type CreateMosaicSliceProps = {\n config?: Partial<MosaicSliceConfig>;\n coordinator?: Coordinator;\n preagg?: MosaicPreAggregateOptions;\n};\n\nexport function createMosaicSlice(props: CreateMosaicSliceProps = {}) {\n return createSlice<\n MosaicSliceState,\n BaseRoomStoreState & DuckDbSliceState & MosaicSliceState\n >((set, get, store) => ({\n mosaic: {\n config: createDefaultMosaicConfig(props?.config),\n connection: {status: 'idle'},\n clients: {},\n selections: {},\n\n async initialize() {\n let mosaicConnector: Connector | undefined;\n let resolvedCoordinator!: Coordinator;\n set((state) =>\n produce(state, (draft) => {\n draft.mosaic.connection = {status: 'loading'};\n }),\n );\n try {\n if (props.coordinator) {\n resolvedCoordinator = props.coordinator;\n applyMosaicPreAggregateOptions(resolvedCoordinator, props.preagg);\n } else {\n const dbConnector = await get().db.getConnector();\n resolvedCoordinator = coordinator();\n mosaicConnector = isWasmDuckDbConnector(dbConnector)\n ? await wasmConnector({\n // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n // @ts-ignore - We might be using a different version of duckdb-wasm than mosaic expects\n duckDb: dbConnector.getDb(),\n // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n // @ts-ignore - same version mismatch\n connection: dbConnector.getConnection(),\n })\n : createDuckDbMosaicConnector(dbConnector);\n applyMosaicPreAggregateOptions(resolvedCoordinator, props.preagg);\n resolvedCoordinator.databaseConnector(mosaicConnector);\n }\n } catch (error) {\n set((state) =>\n produce(state, (draft) => {\n draft.mosaic.connection = {status: 'error', error};\n }),\n );\n throw error;\n }\n set((state) =>\n produce(state, (draft) => {\n draft.mosaic.connection = {\n status: 'ready',\n connector: mosaicConnector,\n coordinator: resolvedCoordinator,\n };\n }),\n );\n },\n\n async destroy() {\n get().mosaic.destroyAllClients();\n },\n\n setConfig(config: MosaicSliceConfig) {\n set((state) =>\n produce(state, (draft) => {\n draft.mosaic.config = config;\n }),\n );\n },\n\n getSelection(\n name: string,\n type: 'crossfilter' | 'single' | 'union' = 'crossfilter',\n ) {\n const existing = get().mosaic.selections[name];\n if (existing) return existing;\n\n const selection =\n type === 'crossfilter'\n ? Selection.crossfilter()\n : type === 'single'\n ? Selection.single()\n : Selection.union();\n\n set((state) =>\n produce(state, (draft) => {\n draft.mosaic.selections[name] = selection;\n }),\n );\n return selection;\n },\n\n createClient(options: MosaicClientOptions) {\n const {connection} = get().mosaic;\n if (connection.status !== 'ready') {\n throw new Error('Mosaic connection not ready');\n }\n\n const id = options.id ?? createId();\n\n // Determine which selection to use\n const selection =\n options.selection ??\n (options.selectionName\n ? get().mosaic.getSelection(options.selectionName)\n : undefined);\n\n // Wrap queryResult to update store state AND call external callback\n const wrappedQueryResult = (data: unknown) => {\n set((state) =>\n produce(state, (draft) => {\n const tracked = draft.mosaic.clients[id];\n if (tracked) {\n tracked.data = data;\n tracked.isLoading = false;\n tracked.error = undefined;\n }\n }),\n );\n // Call external callback if provided\n options.queryResult?.(toArrowClientResult(data));\n };\n const wrappedQueryPending = () => {\n set((state) =>\n produce(state, (draft) => {\n const tracked = draft.mosaic.clients[id];\n if (tracked) {\n tracked.isLoading = true;\n tracked.error = undefined;\n }\n }),\n );\n };\n const wrappedQueryError = (error: Error) => {\n set((state) =>\n produce(state, (draft) => {\n const tracked = draft.mosaic.clients[id];\n if (tracked) {\n tracked.isLoading = false;\n tracked.error = error;\n }\n }),\n );\n client.enabled = false;\n options.queryError?.(error);\n };\n\n const client = makeClient({\n coordinator: connection.coordinator,\n selection,\n query: options.query,\n queryResult: wrappedQueryResult,\n queryPending: wrappedQueryPending,\n queryError: wrappedQueryError,\n });\n\n set((state) =>\n produce(state, (draft) => {\n draft.mosaic.clients[id] = {\n id,\n client,\n createdAt: Date.now(),\n isLoading: true,\n data: null,\n error: undefined,\n selection,\n queryResultCallback: options.queryResult\n ? (result: unknown) =>\n options.queryResult!(toArrowClientResult(result))\n : undefined,\n };\n }),\n );\n\n return id;\n },\n\n ensureClient(\n options: MosaicClientOptions & {\n id: string;\n onQueryResult?: (result: ArrowTable) => void;\n onQueryError?: (error: Error) => void;\n },\n ) {\n const {connection, clients} = get().mosaic;\n if (connection.status !== 'ready') {\n return; // Silently return if not ready - hook will handle retry\n }\n\n const existing = clients[options.id];\n\n // Determine which selection to use\n const selection =\n options.selection ??\n (options.selectionName\n ? get().mosaic.getSelection(options.selectionName)\n : undefined);\n\n // Check if client exists and selection matches\n // Note: If query or callback changes, we recreate the client to ensure\n // the latest versions are used. This is simpler than trying to update\n // the bound queryResult callback in makeClient.\n if (existing && existing.selection === selection) {\n return; // No-op - client already exists with same selection\n }\n\n // If exists but selection changed, destroy it first\n if (existing) {\n get().mosaic.destroyClient(options.id);\n }\n\n // Create new client with wrapped queryResult that calls both store update and external callback\n const wrappedQueryResult = (data: unknown) => {\n set((state) =>\n produce(state, (draft) => {\n const tracked = draft.mosaic.clients[options.id];\n if (tracked) {\n tracked.data = data;\n tracked.isLoading = false;\n tracked.error = undefined;\n }\n }),\n );\n const arrowData = toArrowClientResult(data);\n // Call external callback if provided\n options.onQueryResult?.(arrowData);\n // Also call original queryResult if provided\n options.queryResult?.(arrowData);\n };\n const wrappedQueryPending = () => {\n set((state) =>\n produce(state, (draft) => {\n const tracked = draft.mosaic.clients[options.id];\n if (tracked) {\n tracked.isLoading = true;\n tracked.error = undefined;\n }\n }),\n );\n };\n const wrappedQueryError = (error: Error) => {\n set((state) =>\n produce(state, (draft) => {\n const tracked = draft.mosaic.clients[options.id];\n if (tracked) {\n tracked.isLoading = false;\n tracked.error = error;\n }\n }),\n );\n client.enabled = false;\n options.onQueryError?.(error);\n options.queryError?.(error);\n };\n\n const client = makeClient({\n coordinator: connection.coordinator,\n selection,\n query: options.query,\n queryResult: wrappedQueryResult,\n queryPending: wrappedQueryPending,\n queryError: wrappedQueryError,\n });\n\n set((state) =>\n produce(state, (draft) => {\n draft.mosaic.clients[options.id] = {\n id: options.id,\n client,\n createdAt: Date.now(),\n isLoading: true,\n data: null,\n error: undefined,\n selection,\n queryResultCallback: options.onQueryResult\n ? (result: unknown) =>\n options.onQueryResult!(toArrowClientResult(result))\n : undefined,\n };\n }),\n );\n },\n\n destroyClient(id: string) {\n const {clients} = get().mosaic;\n const tracked = clients[id];\n if (!tracked) return;\n\n tracked.client.destroy();\n\n set((state) =>\n produce(state, (draft) => {\n delete draft.mosaic.clients[id];\n }),\n );\n },\n\n destroyAllClients() {\n const {clients} = get().mosaic;\n Object.values(clients).forEach((tracked) => {\n tracked.client.destroy();\n });\n\n set((state) =>\n produce(state, (draft) => {\n draft.mosaic.clients = {};\n }),\n );\n },\n },\n }));\n}\n\nfunction applyMosaicPreAggregateOptions(\n mosaicCoordinator: Coordinator,\n options?: MosaicPreAggregateOptions,\n) {\n if (!options) {\n return;\n }\n if (options.schema !== undefined) {\n mosaicCoordinator.preaggregator.schema = options.schema;\n }\n if (options.enabled !== undefined) {\n mosaicCoordinator.preaggregator.enabled = options.enabled;\n }\n}\n\nexport type DuckDbSliceStateWithMosaic = DuckDbSliceState & MosaicSliceState;\n\nexport function useStoreWithMosaic<T>(\n selector: (state: DuckDbSliceStateWithMosaic) => T,\n): T {\n return useBaseRoomStore<BaseRoomStoreState, T>((state) =>\n selector(state as unknown as DuckDbSliceStateWithMosaic),\n );\n}\n\n/**\n * Adapts a {@link DuckDbConnector} to the Mosaic {@link Connector} interface.\n *\n * For `'arrow'` queries the Apache Arrow table returned by the connector is\n * converted via {@link createMosaicTableFromArrowTable} into a flechette\n * `Table`, which is the shape Mosaic consumers expect (with `.toColumns()`).\n * For `'json'` queries, rows are materialized with {@link Array.from} which\n * may have performance/memory implications for very large result sets.\n * The `as any` casts on the return type are an intentional adapter trade-off\n * to satisfy the polymorphic {@link Connector['query']} signature.\n */\nfunction createDuckDbMosaicConnector(connector: DuckDbConnector): Connector {\n return {\n query: (async (\n query: ArrowQueryRequest | ExecQueryRequest | JSONQueryRequest,\n ) => {\n const queryType = query.type ?? 'arrow';\n if (queryType === 'exec') {\n await connector.execute(query.sql);\n return undefined as any;\n }\n if (queryType === 'json') {\n const rows = await connector.queryJson<Record<string, unknown>>(\n query.sql,\n );\n return Array.from(rows) as any;\n }\n if (queryType === 'arrow') {\n const arrowTable = await connector.query(query.sql);\n return createMosaicTableFromArrowTable(arrowTable) as any;\n }\n throw new Error(`Unsupported Mosaic query type \"${queryType}\".`);\n }) as Connector['query'],\n };\n}\n"]}
1
+ {"version":3,"file":"MosaicSlice.js","sourceRoot":"","sources":["../src/MosaicSlice.ts"],"names":[],"mappings":"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","sourcesContent":["import {createId} from '@paralleldrive/cuid2';\nimport {\n isWasmDuckDbConnector,\n type DuckDbConnector,\n type DuckDbSliceState,\n} from '@sqlrooms/duckdb';\nimport {\n BaseRoomStoreState,\n createSlice,\n useBaseRoomStore,\n type SliceFunctions,\n} from '@sqlrooms/room-store';\nimport type {\n ArrowQueryRequest,\n ExecQueryRequest,\n JSONQueryRequest,\n} from '@uwdata/mosaic-core';\nimport {\n Connector,\n Coordinator,\n coordinator,\n makeClient,\n Selection,\n wasmConnector,\n} from '@uwdata/mosaic-core';\nimport {Query} from '@uwdata/mosaic-sql';\nimport type {Table as ArrowTable} from 'apache-arrow';\nimport {produce} from 'immer';\nimport {z} from 'zod';\nimport {\n createMosaicTableFromArrowTable,\n toArrowClientResult,\n} from './tableInterop';\n\nexport const MosaicSliceConfig = z.object({});\nexport type MosaicSliceConfig = z.infer<typeof MosaicSliceConfig>;\n\nexport type MosaicPreAggregateOptions = {\n /** Database schema/namespace for Mosaic pre-aggregate tables. */\n schema?: string;\n /** Enable or disable Mosaic's pre-aggregation optimization. */\n enabled?: boolean;\n};\n\n// Client configuration options\nexport type MosaicClientOptions = {\n /** Unique identifier for this client */\n id?: string;\n /** Selection name for cross-filtering (will create if doesn't exist) */\n selectionName?: string;\n /** The selection to subscribe to for cross-filtering */\n selection?: Selection;\n /** Query builder function that receives the current filter */\n query: (filter: unknown) => ReturnType<typeof Query.from>;\n /** Callback when query results are received */\n queryResult?: (result: ArrowTable) => void;\n /** Callback when query execution fails */\n queryError?: (error: Error) => void;\n};\n\n// Tracked client info\nexport type TrackedClient = {\n id: string;\n client: ReturnType<typeof makeClient>;\n createdAt: number;\n isLoading: boolean;\n data: unknown | null;\n error?: Error;\n selection?: Selection; // Track for change detection\n queryResultCallback?: (result: ArrowTable) => void; // External callback\n};\n\nexport type MosaicIdleConnection = {status: 'idle'};\nexport type MosaicLoadingConnection = {status: 'loading'};\nexport type MosaicReadyConnection = {\n status: 'ready';\n connector?: Connector;\n coordinator: Coordinator;\n};\nexport type MosaicErrorConnection = {status: 'error'; error: unknown};\n\nexport type MosaicConnection =\n | MosaicIdleConnection\n | MosaicLoadingConnection\n | MosaicReadyConnection\n | MosaicErrorConnection;\n\nexport type MosaicSliceState = {\n mosaic: SliceFunctions & {\n connection: MosaicConnection;\n config: MosaicSliceConfig;\n /** Record of registered clients by id */\n clients: Record<string, TrackedClient>;\n /** Named selections for cross-filtering (e.g., 'brush', 'hover') */\n selections: Record<string, Selection>;\n initialize: () => Promise<void>;\n /** Get or create a named selection for cross-filtering */\n getSelection: (\n name: string,\n type?: 'crossfilter' | 'single' | 'union',\n ) => Selection;\n /** Create a mosaic client and register it */\n createClient: (options: MosaicClientOptions) => string;\n /** Ensure a client exists with given options (idempotent - creates or updates as needed) */\n ensureClient: (\n options: MosaicClientOptions & {\n id: string;\n onQueryResult?: (result: ArrowTable) => void;\n onQueryError?: (error: Error) => void;\n },\n ) => void;\n /** Disconnect and remove a client by id */\n destroyClient: (id: string) => void;\n /** Disconnect all clients (useful for cleanup) */\n destroyAllClients: () => void;\n };\n};\n\nexport function createDefaultMosaicConfig(\n props?: Partial<MosaicSliceConfig>,\n): MosaicSliceConfig {\n return {...props} as MosaicSliceConfig;\n}\n\nexport type CreateMosaicSliceProps = {\n config?: Partial<MosaicSliceConfig>;\n coordinator?: Coordinator;\n preagg?: MosaicPreAggregateOptions;\n};\n\nexport function createMosaicSlice(props: CreateMosaicSliceProps = {}) {\n return createSlice<\n MosaicSliceState,\n BaseRoomStoreState & DuckDbSliceState & MosaicSliceState\n >((set, get, store) => ({\n mosaic: {\n config: createDefaultMosaicConfig(props?.config),\n connection: {status: 'idle'},\n clients: {},\n selections: {},\n\n async initialize() {\n let mosaicConnector: Connector | undefined;\n let resolvedCoordinator!: Coordinator;\n set((state) =>\n produce(state, (draft) => {\n draft.mosaic.connection = {status: 'loading'};\n }),\n );\n try {\n if (props.coordinator) {\n resolvedCoordinator = props.coordinator;\n applyMosaicPreAggregateOptions(resolvedCoordinator, props.preagg);\n } else {\n const dbConnector = await get().db.getConnector();\n resolvedCoordinator = coordinator();\n mosaicConnector = isWasmDuckDbConnector(dbConnector)\n ? await wasmConnector({\n // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n // @ts-ignore - We might be using a different version of duckdb-wasm than mosaic expects\n duckDb: dbConnector.getDb(),\n // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n // @ts-ignore - same version mismatch\n connection: dbConnector.getConnection(),\n })\n : createDuckDbMosaicConnector(dbConnector);\n applyMosaicPreAggregateOptions(resolvedCoordinator, props.preagg);\n resolvedCoordinator.databaseConnector(mosaicConnector);\n }\n } catch (error) {\n set((state) =>\n produce(state, (draft) => {\n draft.mosaic.connection = {status: 'error', error};\n }),\n );\n throw error;\n }\n set((state) =>\n produce(state, (draft) => {\n draft.mosaic.connection = {\n status: 'ready',\n connector: mosaicConnector,\n coordinator: resolvedCoordinator,\n };\n }),\n );\n },\n\n async destroy() {\n get().mosaic.destroyAllClients();\n },\n\n setConfig(config: MosaicSliceConfig) {\n set((state) =>\n produce(state, (draft) => {\n draft.mosaic.config = config;\n }),\n );\n },\n\n getSelection(\n name: string,\n type: 'crossfilter' | 'single' | 'union' = 'crossfilter',\n ) {\n const existing = get().mosaic.selections[name];\n if (existing) return existing;\n\n const selection =\n type === 'crossfilter'\n ? Selection.crossfilter()\n : type === 'single'\n ? Selection.single()\n : Selection.union();\n\n set((state) =>\n produce(state, (draft) => {\n draft.mosaic.selections[name] = selection;\n }),\n );\n return selection;\n },\n\n createClient(options: MosaicClientOptions) {\n const {connection} = get().mosaic;\n if (connection.status !== 'ready') {\n throw new Error('Mosaic connection not ready');\n }\n\n const id = options.id ?? createId();\n\n // Determine which selection to use\n const selection =\n options.selection ??\n (options.selectionName\n ? get().mosaic.getSelection(options.selectionName)\n : undefined);\n\n // Wrap queryResult to update store state AND call external callback\n const wrappedQueryResult = (data: unknown) => {\n set((state) =>\n produce(state, (draft) => {\n const tracked = draft.mosaic.clients[id];\n if (tracked) {\n tracked.data = data;\n tracked.isLoading = false;\n tracked.error = undefined;\n }\n }),\n );\n // Call external callback if provided\n options.queryResult?.(toArrowClientResult(data));\n };\n const wrappedQueryPending = () => {\n set((state) =>\n produce(state, (draft) => {\n const tracked = draft.mosaic.clients[id];\n if (tracked) {\n tracked.isLoading = true;\n tracked.error = undefined;\n }\n }),\n );\n };\n const wrappedQueryError = (error: Error) => {\n set((state) =>\n produce(state, (draft) => {\n const tracked = draft.mosaic.clients[id];\n if (tracked) {\n tracked.isLoading = false;\n tracked.error = error;\n }\n }),\n );\n // Disable client to prevent further queries\n client.enabled = false;\n options.queryError?.(error);\n };\n\n const client = makeClient({\n coordinator: connection.coordinator,\n selection,\n query: options.query,\n queryResult: wrappedQueryResult,\n queryPending: wrappedQueryPending,\n queryError: wrappedQueryError,\n });\n\n set((state) =>\n produce(state, (draft) => {\n draft.mosaic.clients[id] = {\n id,\n client,\n createdAt: Date.now(),\n isLoading: true,\n data: null,\n error: undefined,\n selection,\n queryResultCallback: options.queryResult\n ? (result: unknown) =>\n options.queryResult!(toArrowClientResult(result))\n : undefined,\n };\n }),\n );\n\n return id;\n },\n\n ensureClient(\n options: MosaicClientOptions & {\n id: string;\n onQueryResult?: (result: ArrowTable) => void;\n onQueryError?: (error: Error) => void;\n },\n ) {\n const {connection, clients} = get().mosaic;\n if (connection.status !== 'ready') {\n return; // Silently return if not ready - hook will handle retry\n }\n\n const existing = clients[options.id];\n\n // Determine which selection to use\n const selection =\n options.selection ??\n (options.selectionName\n ? get().mosaic.getSelection(options.selectionName)\n : undefined);\n\n // Check if client exists and selection matches\n // Note: If query or callback changes, we recreate the client to ensure\n // the latest versions are used. This is simpler than trying to update\n // the bound queryResult callback in makeClient.\n if (existing && existing.selection === selection) {\n return; // No-op - client already exists with same selection\n }\n\n // If exists but selection changed, destroy it first\n if (existing) {\n get().mosaic.destroyClient(options.id);\n }\n\n // Create new client with wrapped queryResult that calls both store update and external callback\n const wrappedQueryResult = (data: unknown) => {\n set((state) =>\n produce(state, (draft) => {\n const tracked = draft.mosaic.clients[options.id];\n if (tracked) {\n tracked.data = data;\n tracked.isLoading = false;\n tracked.error = undefined;\n }\n }),\n );\n const arrowData = toArrowClientResult(data);\n // Call external callback if provided\n options.onQueryResult?.(arrowData);\n // Also call original queryResult if provided\n options.queryResult?.(arrowData);\n };\n const wrappedQueryPending = () => {\n set((state) =>\n produce(state, (draft) => {\n const tracked = draft.mosaic.clients[options.id];\n if (tracked) {\n tracked.isLoading = true;\n tracked.error = undefined;\n }\n }),\n );\n };\n const wrappedQueryError = (error: Error) => {\n set((state) =>\n produce(state, (draft) => {\n const tracked = draft.mosaic.clients[options.id];\n if (tracked) {\n tracked.isLoading = false;\n tracked.error = error;\n }\n }),\n );\n // Disable client to prevent further queries\n client.enabled = false;\n options.onQueryError?.(error);\n options.queryError?.(error);\n };\n\n const client = makeClient({\n coordinator: connection.coordinator,\n selection,\n query: options.query,\n queryResult: wrappedQueryResult,\n queryPending: wrappedQueryPending,\n queryError: wrappedQueryError,\n });\n\n set((state) =>\n produce(state, (draft) => {\n draft.mosaic.clients[options.id] = {\n id: options.id,\n client,\n createdAt: Date.now(),\n isLoading: true,\n data: null,\n error: undefined,\n selection,\n queryResultCallback: options.onQueryResult\n ? (result: unknown) =>\n options.onQueryResult!(toArrowClientResult(result))\n : undefined,\n };\n }),\n );\n },\n\n destroyClient(id: string) {\n const {clients} = get().mosaic;\n const tracked = clients[id];\n if (!tracked) return;\n\n tracked.client.destroy();\n\n set((state) =>\n produce(state, (draft) => {\n delete draft.mosaic.clients[id];\n }),\n );\n },\n\n destroyAllClients() {\n const {clients} = get().mosaic;\n Object.values(clients).forEach((tracked) => {\n tracked.client.destroy();\n });\n\n set((state) =>\n produce(state, (draft) => {\n draft.mosaic.clients = {};\n }),\n );\n },\n },\n }));\n}\n\nfunction applyMosaicPreAggregateOptions(\n mosaicCoordinator: Coordinator,\n options?: MosaicPreAggregateOptions,\n) {\n if (!options) {\n return;\n }\n if (options.schema !== undefined) {\n mosaicCoordinator.preaggregator.schema = options.schema;\n }\n if (options.enabled !== undefined) {\n mosaicCoordinator.preaggregator.enabled = options.enabled;\n }\n}\n\nexport type DuckDbSliceStateWithMosaic = DuckDbSliceState & MosaicSliceState;\n\nexport function useStoreWithMosaic<T>(\n selector: (state: DuckDbSliceStateWithMosaic) => T,\n): T {\n return useBaseRoomStore<BaseRoomStoreState, T>((state) =>\n selector(state as unknown as DuckDbSliceStateWithMosaic),\n );\n}\n\n/**\n * Adapts a {@link DuckDbConnector} to the Mosaic {@link Connector} interface.\n *\n * For `'arrow'` queries the Apache Arrow table returned by the connector is\n * converted via {@link createMosaicTableFromArrowTable} into a flechette\n * `Table`, which is the shape Mosaic consumers expect (with `.toColumns()`).\n * For `'json'` queries, rows are materialized with {@link Array.from} which\n * may have performance/memory implications for very large result sets.\n * The `as any` casts on the return type are an intentional adapter trade-off\n * to satisfy the polymorphic {@link Connector['query']} signature.\n */\nfunction createDuckDbMosaicConnector(connector: DuckDbConnector): Connector {\n return {\n query: (async (\n query: ArrowQueryRequest | ExecQueryRequest | JSONQueryRequest,\n ) => {\n const queryType = query.type ?? 'arrow';\n if (queryType === 'exec') {\n await connector.execute(query.sql);\n return undefined as any;\n }\n if (queryType === 'json') {\n const rows = await connector.queryJson<Record<string, unknown>>(\n query.sql,\n );\n return Array.from(rows) as any;\n }\n if (queryType === 'arrow') {\n const arrowTable = await connector.query(query.sql);\n return createMosaicTableFromArrowTable(arrowTable) as any;\n }\n throw new Error(`Unsupported Mosaic query type \"${queryType}\".`);\n }) as Connector['query'],\n };\n}\n"]}