@sqlrooms/mosaic 0.29.0-rc.2 → 0.29.0-rc.3

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 (312) hide show
  1. package/README.md +120 -0
  2. package/dist/MosaicChartBuilder.d.ts +48 -13
  3. package/dist/MosaicChartBuilder.d.ts.map +1 -1
  4. package/dist/MosaicChartBuilder.js +28 -30
  5. package/dist/MosaicChartBuilder.js.map +1 -1
  6. package/dist/MosaicSlice.d.ts +11 -0
  7. package/dist/MosaicSlice.d.ts.map +1 -1
  8. package/dist/MosaicSlice.js +73 -10
  9. package/dist/MosaicSlice.js.map +1 -1
  10. package/dist/ResponsivePlot.d.ts +23 -0
  11. package/dist/ResponsivePlot.d.ts.map +1 -0
  12. package/dist/ResponsivePlot.js +43 -0
  13. package/dist/ResponsivePlot.js.map +1 -0
  14. package/dist/VgPlotChart.d.ts +18 -2
  15. package/dist/VgPlotChart.d.ts.map +1 -1
  16. package/dist/VgPlotChart.js +112 -26
  17. package/dist/VgPlotChart.js.map +1 -1
  18. package/dist/chart-builders/ChartBuilderActions.d.ts +6 -0
  19. package/dist/chart-builders/ChartBuilderActions.d.ts.map +1 -0
  20. package/dist/chart-builders/ChartBuilderActions.js +28 -0
  21. package/dist/chart-builders/ChartBuilderActions.js.map +1 -0
  22. package/dist/chart-builders/ChartBuilderContent.d.ts +13 -11
  23. package/dist/chart-builders/ChartBuilderContent.d.ts.map +1 -1
  24. package/dist/chart-builders/ChartBuilderContent.js +21 -52
  25. package/dist/chart-builders/ChartBuilderContent.js.map +1 -1
  26. package/dist/chart-builders/ChartBuilderContext.d.ts +9 -4
  27. package/dist/chart-builders/ChartBuilderContext.d.ts.map +1 -1
  28. package/dist/chart-builders/ChartBuilderContext.js +5 -0
  29. package/dist/chart-builders/ChartBuilderContext.js.map +1 -1
  30. package/dist/chart-builders/ChartBuilderDialog.d.ts +31 -6
  31. package/dist/chart-builders/ChartBuilderDialog.d.ts.map +1 -1
  32. package/dist/chart-builders/ChartBuilderDialog.js +25 -10
  33. package/dist/chart-builders/ChartBuilderDialog.js.map +1 -1
  34. package/dist/chart-builders/ChartBuilderFields.d.ts +6 -0
  35. package/dist/chart-builders/ChartBuilderFields.d.ts.map +1 -0
  36. package/dist/chart-builders/ChartBuilderFields.js +25 -0
  37. package/dist/chart-builders/ChartBuilderFields.js.map +1 -0
  38. package/dist/chart-builders/ChartBuilderRoot.d.ts +27 -0
  39. package/dist/chart-builders/ChartBuilderRoot.d.ts.map +1 -0
  40. package/dist/chart-builders/ChartBuilderRoot.js +61 -0
  41. package/dist/chart-builders/ChartBuilderRoot.js.map +1 -0
  42. package/dist/chart-builders/ChartBuilderTypeGrid.d.ts +7 -0
  43. package/dist/chart-builders/ChartBuilderTypeGrid.d.ts.map +1 -0
  44. package/dist/chart-builders/ChartBuilderTypeGrid.js +23 -0
  45. package/dist/chart-builders/ChartBuilderTypeGrid.js.map +1 -0
  46. package/dist/chart-builders/FieldSelectorInput.d.ts.map +1 -1
  47. package/dist/chart-builders/FieldSelectorInput.js +2 -2
  48. package/dist/chart-builders/FieldSelectorInput.js.map +1 -1
  49. package/dist/chart-builders/builders.d.ts +28 -1
  50. package/dist/chart-builders/builders.d.ts.map +1 -1
  51. package/dist/chart-builders/builders.js +44 -273
  52. package/dist/chart-builders/builders.js.map +1 -1
  53. package/dist/chart-builders/chartSpecTitle.d.ts +3 -4
  54. package/dist/chart-builders/chartSpecTitle.d.ts.map +1 -1
  55. package/dist/chart-builders/chartSpecTitle.js +3 -5
  56. package/dist/chart-builders/chartSpecTitle.js.map +1 -1
  57. package/dist/chart-builders/chartTypeUtils.d.ts +17 -0
  58. package/dist/chart-builders/chartTypeUtils.d.ts.map +1 -0
  59. package/dist/chart-builders/chartTypeUtils.js +55 -0
  60. package/dist/chart-builders/chartTypeUtils.js.map +1 -0
  61. package/dist/chart-builders/constants.d.ts +7 -0
  62. package/dist/chart-builders/constants.d.ts.map +1 -0
  63. package/dist/chart-builders/constants.js +34 -0
  64. package/dist/chart-builders/constants.js.map +1 -0
  65. package/dist/chart-builders/createChartBuilderStore.d.ts +11 -0
  66. package/dist/chart-builders/createChartBuilderStore.d.ts.map +1 -0
  67. package/dist/chart-builders/createChartBuilderStore.js +26 -0
  68. package/dist/chart-builders/createChartBuilderStore.js.map +1 -0
  69. package/dist/chart-builders/describeChartSpecs.d.ts +5 -3
  70. package/dist/chart-builders/describeChartSpecs.d.ts.map +1 -1
  71. package/dist/chart-builders/describeChartSpecs.js +11 -8
  72. package/dist/chart-builders/describeChartSpecs.js.map +1 -1
  73. package/dist/chart-builders/hooks/useChartFieldForm.d.ts +13 -0
  74. package/dist/chart-builders/hooks/useChartFieldForm.d.ts.map +1 -0
  75. package/dist/chart-builders/hooks/useChartFieldForm.js +12 -0
  76. package/dist/chart-builders/hooks/useChartFieldForm.js.map +1 -0
  77. package/dist/chart-builders/types.d.ts +12 -29
  78. package/dist/chart-builders/types.d.ts.map +1 -1
  79. package/dist/chart-builders/types.js +16 -1
  80. package/dist/chart-builders/types.js.map +1 -1
  81. package/dist/chart-types/base-types.d.ts +54 -0
  82. package/dist/chart-types/base-types.d.ts.map +1 -0
  83. package/dist/chart-types/base-types.js +6 -0
  84. package/dist/chart-types/base-types.js.map +1 -0
  85. package/dist/chart-types/box-plot/definition.d.ts +4 -0
  86. package/dist/chart-types/box-plot/definition.d.ts.map +1 -0
  87. package/dist/chart-types/box-plot/definition.js +45 -0
  88. package/dist/chart-types/box-plot/definition.js.map +1 -0
  89. package/dist/chart-types/box-plot/index.d.ts +3 -0
  90. package/dist/chart-types/box-plot/index.d.ts.map +1 -0
  91. package/dist/chart-types/box-plot/index.js +3 -0
  92. package/dist/chart-types/box-plot/index.js.map +1 -0
  93. package/dist/chart-types/box-plot/schema.d.ts +17 -0
  94. package/dist/chart-types/box-plot/schema.d.ts.map +1 -0
  95. package/dist/chart-types/box-plot/schema.js +12 -0
  96. package/dist/chart-types/box-plot/schema.js.map +1 -0
  97. package/dist/chart-types/bubble-chart/definition.d.ts +4 -0
  98. package/dist/chart-types/bubble-chart/definition.d.ts.map +1 -0
  99. package/dist/chart-types/bubble-chart/definition.js +48 -0
  100. package/dist/chart-types/bubble-chart/definition.js.map +1 -0
  101. package/dist/chart-types/bubble-chart/index.d.ts +3 -0
  102. package/dist/chart-types/bubble-chart/index.d.ts.map +1 -0
  103. package/dist/chart-types/bubble-chart/index.js +3 -0
  104. package/dist/chart-types/bubble-chart/index.js.map +1 -0
  105. package/dist/chart-types/bubble-chart/schema.d.ts +17 -0
  106. package/dist/chart-types/bubble-chart/schema.d.ts.map +1 -0
  107. package/dist/chart-types/bubble-chart/schema.js +12 -0
  108. package/dist/chart-types/bubble-chart/schema.js.map +1 -0
  109. package/dist/chart-types/count-plot/definition.d.ts +4 -0
  110. package/dist/chart-types/count-plot/definition.d.ts.map +1 -0
  111. package/dist/chart-types/count-plot/definition.js +50 -0
  112. package/dist/chart-types/count-plot/definition.js.map +1 -0
  113. package/dist/chart-types/count-plot/index.d.ts +3 -0
  114. package/dist/chart-types/count-plot/index.d.ts.map +1 -0
  115. package/dist/chart-types/count-plot/index.js +3 -0
  116. package/dist/chart-types/count-plot/index.js.map +1 -0
  117. package/dist/chart-types/count-plot/schema.d.ts +15 -0
  118. package/dist/chart-types/count-plot/schema.d.ts.map +1 -0
  119. package/dist/chart-types/count-plot/schema.js +11 -0
  120. package/dist/chart-types/count-plot/schema.js.map +1 -0
  121. package/dist/chart-types/custom-spec/definition.d.ts +4 -0
  122. package/dist/chart-types/custom-spec/definition.d.ts.map +1 -0
  123. package/dist/chart-types/custom-spec/definition.js +28 -0
  124. package/dist/chart-types/custom-spec/definition.js.map +1 -0
  125. package/dist/chart-types/custom-spec/index.d.ts +3 -0
  126. package/dist/chart-types/custom-spec/index.d.ts.map +1 -0
  127. package/dist/chart-types/custom-spec/index.js +3 -0
  128. package/dist/chart-types/custom-spec/index.js.map +1 -0
  129. package/dist/chart-types/custom-spec/schema.d.ts +11 -0
  130. package/dist/chart-types/custom-spec/schema.d.ts.map +1 -0
  131. package/dist/chart-types/custom-spec/schema.js +9 -0
  132. package/dist/chart-types/custom-spec/schema.js.map +1 -0
  133. package/dist/chart-types/ecdf/definition.d.ts +4 -0
  134. package/dist/chart-types/ecdf/definition.d.ts.map +1 -0
  135. package/dist/chart-types/ecdf/definition.js +47 -0
  136. package/dist/chart-types/ecdf/definition.js.map +1 -0
  137. package/dist/chart-types/ecdf/index.d.ts +3 -0
  138. package/dist/chart-types/ecdf/index.d.ts.map +1 -0
  139. package/dist/chart-types/ecdf/index.js +3 -0
  140. package/dist/chart-types/ecdf/index.js.map +1 -0
  141. package/dist/chart-types/ecdf/schema.d.ts +15 -0
  142. package/dist/chart-types/ecdf/schema.d.ts.map +1 -0
  143. package/dist/chart-types/ecdf/schema.js +11 -0
  144. package/dist/chart-types/ecdf/schema.js.map +1 -0
  145. package/dist/chart-types/heatmap/definition.d.ts +4 -0
  146. package/dist/chart-types/heatmap/definition.d.ts.map +1 -0
  147. package/dist/chart-types/heatmap/definition.js +49 -0
  148. package/dist/chart-types/heatmap/definition.js.map +1 -0
  149. package/dist/chart-types/heatmap/index.d.ts +3 -0
  150. package/dist/chart-types/heatmap/index.d.ts.map +1 -0
  151. package/dist/chart-types/heatmap/index.js +3 -0
  152. package/dist/chart-types/heatmap/index.js.map +1 -0
  153. package/dist/chart-types/heatmap/schema.d.ts +17 -0
  154. package/dist/chart-types/heatmap/schema.d.ts.map +1 -0
  155. package/dist/chart-types/heatmap/schema.js +12 -0
  156. package/dist/chart-types/heatmap/schema.js.map +1 -0
  157. package/dist/chart-types/histogram/definition.d.ts +4 -0
  158. package/dist/chart-types/histogram/definition.d.ts.map +1 -0
  159. package/dist/chart-types/histogram/definition.js +49 -0
  160. package/dist/chart-types/histogram/definition.js.map +1 -0
  161. package/dist/chart-types/histogram/index.d.ts +3 -0
  162. package/dist/chart-types/histogram/index.d.ts.map +1 -0
  163. package/dist/chart-types/histogram/index.js +3 -0
  164. package/dist/chart-types/histogram/index.js.map +1 -0
  165. package/dist/chart-types/histogram/schema.d.ts +15 -0
  166. package/dist/chart-types/histogram/schema.d.ts.map +1 -0
  167. package/dist/chart-types/histogram/schema.js +11 -0
  168. package/dist/chart-types/histogram/schema.js.map +1 -0
  169. package/dist/chart-types/index.d.ts +109 -0
  170. package/dist/chart-types/index.d.ts.map +1 -0
  171. package/dist/chart-types/index.js +70 -0
  172. package/dist/chart-types/index.js.map +1 -0
  173. package/dist/chart-types/line-chart/definition.d.ts +4 -0
  174. package/dist/chart-types/line-chart/definition.d.ts.map +1 -0
  175. package/dist/chart-types/line-chart/definition.js +46 -0
  176. package/dist/chart-types/line-chart/definition.js.map +1 -0
  177. package/dist/chart-types/line-chart/index.d.ts +3 -0
  178. package/dist/chart-types/line-chart/index.d.ts.map +1 -0
  179. package/dist/chart-types/line-chart/index.js +3 -0
  180. package/dist/chart-types/line-chart/index.js.map +1 -0
  181. package/dist/chart-types/line-chart/schema.d.ts +17 -0
  182. package/dist/chart-types/line-chart/schema.d.ts.map +1 -0
  183. package/dist/chart-types/line-chart/schema.js +12 -0
  184. package/dist/chart-types/line-chart/schema.js.map +1 -0
  185. package/dist/chart-types/registry.d.ts +5 -0
  186. package/dist/chart-types/registry.d.ts.map +1 -0
  187. package/dist/chart-types/registry.js +28 -0
  188. package/dist/chart-types/registry.js.map +1 -0
  189. package/dist/dashboard/DashboardPanelErrorBoundary.d.ts +17 -0
  190. package/dist/dashboard/DashboardPanelErrorBoundary.d.ts.map +1 -0
  191. package/dist/dashboard/DashboardPanelErrorBoundary.js +21 -0
  192. package/dist/dashboard/DashboardPanelErrorBoundary.js.map +1 -0
  193. package/dist/dashboard/MosaicDashboard.d.ts +2 -4
  194. package/dist/dashboard/MosaicDashboard.d.ts.map +1 -1
  195. package/dist/dashboard/MosaicDashboard.js +42 -19
  196. package/dist/dashboard/MosaicDashboard.js.map +1 -1
  197. package/dist/dashboard/MosaicDashboardContext.d.ts +1 -0
  198. package/dist/dashboard/MosaicDashboardContext.d.ts.map +1 -1
  199. package/dist/dashboard/MosaicDashboardContext.js.map +1 -1
  200. package/dist/dashboard/MosaicDashboardPanel.d.ts +3 -0
  201. package/dist/dashboard/MosaicDashboardPanel.d.ts.map +1 -0
  202. package/dist/dashboard/MosaicDashboardPanel.js +26 -0
  203. package/dist/dashboard/MosaicDashboardPanel.js.map +1 -0
  204. package/dist/dashboard/MosaicDashboardPanelDragOverlay.d.ts +8 -0
  205. package/dist/dashboard/MosaicDashboardPanelDragOverlay.d.ts.map +1 -0
  206. package/dist/dashboard/MosaicDashboardPanelDragOverlay.js +17 -0
  207. package/dist/dashboard/MosaicDashboardPanelDragOverlay.js.map +1 -0
  208. package/dist/dashboard/MosaicDashboardPanelHeader.d.ts +13 -0
  209. package/dist/dashboard/MosaicDashboardPanelHeader.d.ts.map +1 -0
  210. package/dist/dashboard/MosaicDashboardPanelHeader.js +30 -0
  211. package/dist/dashboard/MosaicDashboardPanelHeader.js.map +1 -0
  212. package/dist/dashboard/MosaicDashboardPanelLayout.d.ts +10 -0
  213. package/dist/dashboard/MosaicDashboardPanelLayout.d.ts.map +1 -0
  214. package/dist/dashboard/MosaicDashboardPanelLayout.js +25 -0
  215. package/dist/dashboard/MosaicDashboardPanelLayout.js.map +1 -0
  216. package/dist/dashboard/MosaicDashboardPanels.d.ts +2 -0
  217. package/dist/dashboard/MosaicDashboardPanels.d.ts.map +1 -0
  218. package/dist/dashboard/MosaicDashboardPanels.js +52 -0
  219. package/dist/dashboard/MosaicDashboardPanels.js.map +1 -0
  220. package/dist/dashboard/MosaicDashboardProfilerPanelRenderer.d.ts +3 -0
  221. package/dist/dashboard/MosaicDashboardProfilerPanelRenderer.d.ts.map +1 -0
  222. package/dist/dashboard/MosaicDashboardProfilerPanelRenderer.js +32 -0
  223. package/dist/dashboard/MosaicDashboardProfilerPanelRenderer.js.map +1 -0
  224. package/dist/dashboard/MosaicDashboardSlice.d.ts +482 -27
  225. package/dist/dashboard/MosaicDashboardSlice.d.ts.map +1 -1
  226. package/dist/dashboard/MosaicDashboardSlice.js +478 -93
  227. package/dist/dashboard/MosaicDashboardSlice.js.map +1 -1
  228. package/dist/dashboard/MosaicDashboardToolbar.d.ts.map +1 -1
  229. package/dist/dashboard/MosaicDashboardToolbar.js +69 -7
  230. package/dist/dashboard/MosaicDashboardToolbar.js.map +1 -1
  231. package/dist/dashboard/MosaicDashboardVgPlotHeaderActions.d.ts +4 -0
  232. package/dist/dashboard/MosaicDashboardVgPlotHeaderActions.d.ts.map +1 -0
  233. package/dist/dashboard/MosaicDashboardVgPlotHeaderActions.js +29 -0
  234. package/dist/dashboard/MosaicDashboardVgPlotHeaderActions.js.map +1 -0
  235. package/dist/dashboard/MosaicDashboardVgPlotPanelRenderer.d.ts +3 -0
  236. package/dist/dashboard/MosaicDashboardVgPlotPanelRenderer.d.ts.map +1 -0
  237. package/dist/dashboard/MosaicDashboardVgPlotPanelRenderer.js +68 -0
  238. package/dist/dashboard/MosaicDashboardVgPlotPanelRenderer.js.map +1 -0
  239. package/dist/dashboard/VgPlotSpecPopoverEditor.d.ts.map +1 -1
  240. package/dist/dashboard/VgPlotSpecPopoverEditor.js +2 -2
  241. package/dist/dashboard/VgPlotSpecPopoverEditor.js.map +1 -1
  242. package/dist/dashboard/chart-settings/ChartSettings.d.ts +39 -0
  243. package/dist/dashboard/chart-settings/ChartSettings.d.ts.map +1 -0
  244. package/dist/dashboard/chart-settings/ChartSettings.js +90 -0
  245. package/dist/dashboard/chart-settings/ChartSettings.js.map +1 -0
  246. package/dist/dashboard/chart-settings/ChartSettingsContext.d.ts +20 -0
  247. package/dist/dashboard/chart-settings/ChartSettingsContext.d.ts.map +1 -0
  248. package/dist/dashboard/chart-settings/ChartSettingsContext.js +14 -0
  249. package/dist/dashboard/chart-settings/ChartSettingsContext.js.map +1 -0
  250. package/dist/dashboard/chart-settings/ChartSettingsPanel.d.ts +11 -0
  251. package/dist/dashboard/chart-settings/ChartSettingsPanel.d.ts.map +1 -0
  252. package/dist/dashboard/chart-settings/ChartSettingsPanel.js +8 -0
  253. package/dist/dashboard/chart-settings/ChartSettingsPanel.js.map +1 -0
  254. package/dist/dashboard/chart-settings/ChartTypeSelector.d.ts +11 -0
  255. package/dist/dashboard/chart-settings/ChartTypeSelector.d.ts.map +1 -0
  256. package/dist/dashboard/chart-settings/ChartTypeSelector.js +17 -0
  257. package/dist/dashboard/chart-settings/ChartTypeSelector.js.map +1 -0
  258. package/dist/dashboard/chart-settings/DynamicChartSettings.d.ts +11 -0
  259. package/dist/dashboard/chart-settings/DynamicChartSettings.d.ts.map +1 -0
  260. package/dist/dashboard/chart-settings/DynamicChartSettings.js +19 -0
  261. package/dist/dashboard/chart-settings/DynamicChartSettings.js.map +1 -0
  262. package/dist/dashboard/chart-settings/index.d.ts +6 -0
  263. package/dist/dashboard/chart-settings/index.d.ts.map +1 -0
  264. package/dist/dashboard/chart-settings/index.js +6 -0
  265. package/dist/dashboard/chart-settings/index.js.map +1 -0
  266. package/dist/dashboard/chart-settings/useTableColumns.d.ts +3 -0
  267. package/dist/dashboard/chart-settings/useTableColumns.d.ts.map +1 -0
  268. package/dist/dashboard/chart-settings/useTableColumns.js +12 -0
  269. package/dist/dashboard/chart-settings/useTableColumns.js.map +1 -0
  270. package/dist/dashboard/defaultPanelRenderers.d.ts +3 -0
  271. package/dist/dashboard/defaultPanelRenderers.d.ts.map +1 -0
  272. package/dist/dashboard/defaultPanelRenderers.js +11 -0
  273. package/dist/dashboard/defaultPanelRenderers.js.map +1 -0
  274. package/dist/dashboard/generateMosaicChartSpec.d.ts +15 -0
  275. package/dist/dashboard/generateMosaicChartSpec.d.ts.map +1 -0
  276. package/dist/dashboard/generateMosaicChartSpec.js +30 -0
  277. package/dist/dashboard/generateMosaicChartSpec.js.map +1 -0
  278. package/dist/editor/MosaicChartDisplay.d.ts.map +1 -1
  279. package/dist/editor/MosaicChartDisplay.js +6 -1
  280. package/dist/editor/MosaicChartDisplay.js.map +1 -1
  281. package/dist/index.d.ts +31 -5
  282. package/dist/index.d.ts.map +1 -1
  283. package/dist/index.js +21 -2
  284. package/dist/index.js.map +1 -1
  285. package/dist/profiler/useMosaicProfiler.d.ts.map +1 -1
  286. package/dist/profiler/useMosaicProfiler.js.map +1 -1
  287. package/dist/tableInterop.js.map +1 -1
  288. package/dist/useMosaicClient.d.ts +4 -15
  289. package/dist/useMosaicClient.d.ts.map +1 -1
  290. package/dist/useMosaicClient.js +10 -4
  291. package/dist/useMosaicClient.js.map +1 -1
  292. package/package.json +15 -9
  293. package/dist/chart-builders/createMosaicChartTool.d.ts +0 -45
  294. package/dist/chart-builders/createMosaicChartTool.d.ts.map +0 -1
  295. package/dist/chart-builders/createMosaicChartTool.js +0 -109
  296. package/dist/chart-builders/createMosaicChartTool.js.map +0 -1
  297. package/dist/dashboard/MosaicDashboardChartPanel.d.ts +0 -3
  298. package/dist/dashboard/MosaicDashboardChartPanel.d.ts.map +0 -1
  299. package/dist/dashboard/MosaicDashboardChartPanel.js +0 -49
  300. package/dist/dashboard/MosaicDashboardChartPanel.js.map +0 -1
  301. package/dist/dashboard/MosaicDashboardCharts.d.ts +0 -3
  302. package/dist/dashboard/MosaicDashboardCharts.d.ts.map +0 -1
  303. package/dist/dashboard/MosaicDashboardCharts.js +0 -45
  304. package/dist/dashboard/MosaicDashboardCharts.js.map +0 -1
  305. package/dist/dashboard/MosaicDashboardProfiler.d.ts +0 -3
  306. package/dist/dashboard/MosaicDashboardProfiler.d.ts.map +0 -1
  307. package/dist/dashboard/MosaicDashboardProfiler.js +0 -21
  308. package/dist/dashboard/MosaicDashboardProfiler.js.map +0 -1
  309. package/dist/use-mosaic.d.ts +0 -11
  310. package/dist/use-mosaic.d.ts.map +0 -1
  311. package/dist/use-mosaic.js +0 -42
  312. package/dist/use-mosaic.js.map +0 -1
@@ -0,0 +1,90 @@
1
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
+ /**
3
+ * Chart settings compound component for configuring chart types and their parameters.
4
+ *
5
+ * @example
6
+ * ```tsx
7
+ * <ChartSettings.Root
8
+ * tableName={tableName}
9
+ * config={config}
10
+ * columns={columns}
11
+ * onChange={handleChange}
12
+ * >
13
+ * <ChartSettings.TypeSelector />
14
+ * <ChartSettings.Fields />
15
+ * </ChartSettings.Root>
16
+ * ```
17
+ */
18
+ import { useCallback, useMemo } from 'react';
19
+ import { DynamicChartSettings } from './DynamicChartSettings';
20
+ import { ChartTypeSelector } from './ChartTypeSelector';
21
+ import { ChartSettingsProvider, useChartSettingsContext, } from './ChartSettingsContext';
22
+ import { generateMosaicChartSpec } from '../generateMosaicChartSpec';
23
+ import { getChartTypeDefinition } from '../../chart-types/registry';
24
+ import { Button } from '@sqlrooms/ui';
25
+ import { XIcon } from 'lucide-react';
26
+ const ChartSettingsRoot = ({ tableName, config, columns, onChange, children, }) => {
27
+ return (_jsx(ChartSettingsProvider, { tableName: tableName, config: config, columns: columns, onChange: onChange, children: children }));
28
+ };
29
+ const ChartSettingsHeader = ({ children, onClose, }) => {
30
+ return (_jsxs("div", { className: "flex items-center justify-between border-b px-3 py-1.5 text-xs font-medium", children: [children, onClose && (_jsx(Button, { variant: "ghost", size: "icon", className: "h-5 w-5", onClick: onClose, children: _jsx(XIcon, { className: "h-3.5 w-3.5" }) }))] }));
31
+ };
32
+ const ChartSettingsContent = ({ children }) => {
33
+ return _jsx("div", { className: "flex flex-col gap-2 p-2", children: children });
34
+ };
35
+ const ChartSettingsTypeSelector = () => {
36
+ const { config, columns, onChange } = useChartSettingsContext();
37
+ const handleChartTypeChange = (newChartType) => {
38
+ // When changing chart type, clear settings and don't show chart
39
+ // until user selects all required fields
40
+ onChange({
41
+ chartType: newChartType,
42
+ settings: {},
43
+ vgplot: null,
44
+ settingsOpen: config.settingsOpen,
45
+ });
46
+ };
47
+ return (_jsx(ChartTypeSelector, { value: config.chartType, columns: columns, onChange: handleChartTypeChange }));
48
+ };
49
+ const ChartSettingsFields = () => {
50
+ const { tableName, config, columns, onChange } = useChartSettingsContext();
51
+ const chartTypeDef = getChartTypeDefinition(config.chartType);
52
+ // Memoize columns mapping
53
+ const mappedColumns = useMemo(() => columns.map((col) => ({ name: col.name, type: col.type })), [columns]);
54
+ const handleSettingsChange = useCallback((newSettings) => {
55
+ if (!chartTypeDef)
56
+ return;
57
+ // Check if all required fields are filled
58
+ const allRequiredFieldsFilled = chartTypeDef.fields
59
+ .filter((field) => field.required !== false)
60
+ .every((field) => {
61
+ const value = newSettings[field.key];
62
+ return value !== undefined && value !== null && value !== '';
63
+ });
64
+ // Generate spec
65
+ const vgplot = allRequiredFieldsFilled
66
+ ? generateMosaicChartSpec(tableName, config.chartType, newSettings)
67
+ : null;
68
+ onChange({
69
+ ...config,
70
+ settings: newSettings,
71
+ vgplot,
72
+ });
73
+ }, [chartTypeDef, config, onChange, tableName]);
74
+ if (!chartTypeDef) {
75
+ console.error(`[ChartSettings] Unknown chart type: ${config.chartType}`);
76
+ return (_jsxs("div", { className: "text-muted-foreground flex h-full items-center justify-center p-4 text-sm", children: ["Unknown chart type: ", config.chartType] }));
77
+ }
78
+ if (columns.length === 0) {
79
+ return (_jsx("div", { className: "text-muted-foreground flex h-full items-center justify-center p-4 text-sm", children: "No columns available" }));
80
+ }
81
+ return (_jsx(DynamicChartSettings, { chartTypeDefinition: chartTypeDef, columns: mappedColumns, values: config.settings, onChange: handleSettingsChange }));
82
+ };
83
+ export const ChartSettings = {
84
+ Root: ChartSettingsRoot,
85
+ Header: ChartSettingsHeader,
86
+ Content: ChartSettingsContent,
87
+ TypeSelector: ChartSettingsTypeSelector,
88
+ Fields: ChartSettingsFields,
89
+ };
90
+ //# sourceMappingURL=ChartSettings.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ChartSettings.js","sourceRoot":"","sources":["../../../src/dashboard/chart-settings/ChartSettings.tsx"],"names":[],"mappings":"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","sourcesContent":["/**\n * Chart settings compound component for configuring chart types and their parameters.\n *\n * @example\n * ```tsx\n * <ChartSettings.Root\n * tableName={tableName}\n * config={config}\n * columns={columns}\n * onChange={handleChange}\n * >\n * <ChartSettings.TypeSelector />\n * <ChartSettings.Fields />\n * </ChartSettings.Root>\n * ```\n */\nimport {type FC, type PropsWithChildren, useCallback, useMemo} from 'react';\nimport {DynamicChartSettings} from './DynamicChartSettings';\nimport {ChartTypeSelector} from './ChartTypeSelector';\nimport {\n ChartSettingsProvider,\n useChartSettingsContext,\n} from './ChartSettingsContext';\nimport type {TableColumn} from '@sqlrooms/duckdb';\nimport {type VgPlotChartConfig, type VgPlotChartType} from '../../chart-types';\nimport {generateMosaicChartSpec} from '../generateMosaicChartSpec';\nimport {getChartTypeDefinition} from '../../chart-types/registry';\nimport {Button} from '@sqlrooms/ui';\nimport {XIcon} from 'lucide-react';\n\ninterface ChartSettingsRootProps {\n tableName?: string;\n config: VgPlotChartConfig;\n columns: TableColumn[];\n onChange: (config: VgPlotChartConfig) => void;\n}\n\nconst ChartSettingsRoot: FC<PropsWithChildren<ChartSettingsRootProps>> = ({\n tableName,\n config,\n columns,\n onChange,\n children,\n}) => {\n return (\n <ChartSettingsProvider\n tableName={tableName}\n config={config}\n columns={columns}\n onChange={onChange}\n >\n {children}\n </ChartSettingsProvider>\n );\n};\n\ntype ChartSettingsHeaderProps = PropsWithChildren<{\n onClose?: () => void;\n}>;\n\nconst ChartSettingsHeader: FC<ChartSettingsHeaderProps> = ({\n children,\n onClose,\n}) => {\n return (\n <div className=\"flex items-center justify-between border-b px-3 py-1.5 text-xs font-medium\">\n {children}\n {onClose && (\n <Button\n variant=\"ghost\"\n size=\"icon\"\n className=\"h-5 w-5\"\n onClick={onClose}\n >\n <XIcon className=\"h-3.5 w-3.5\" />\n </Button>\n )}\n </div>\n );\n};\n\nconst ChartSettingsContent: FC<PropsWithChildren> = ({children}) => {\n return <div className=\"flex flex-col gap-2 p-2\">{children}</div>;\n};\n\nconst ChartSettingsTypeSelector: FC = () => {\n const {config, columns, onChange} = useChartSettingsContext();\n\n const handleChartTypeChange = (newChartType: VgPlotChartType) => {\n // When changing chart type, clear settings and don't show chart\n // until user selects all required fields\n onChange({\n chartType: newChartType,\n settings: {},\n vgplot: null,\n settingsOpen: config.settingsOpen,\n });\n };\n\n return (\n <ChartTypeSelector\n value={config.chartType}\n columns={columns}\n onChange={handleChartTypeChange}\n />\n );\n};\n\nconst ChartSettingsFields: FC = () => {\n const {tableName, config, columns, onChange} = useChartSettingsContext();\n const chartTypeDef = getChartTypeDefinition(config.chartType);\n\n // Memoize columns mapping\n const mappedColumns = useMemo(\n () => columns.map((col) => ({name: col.name, type: col.type})),\n [columns],\n );\n\n const handleSettingsChange = useCallback(\n (newSettings: Record<string, unknown>) => {\n if (!chartTypeDef) return;\n\n // Check if all required fields are filled\n const allRequiredFieldsFilled = chartTypeDef.fields\n .filter((field) => field.required !== false)\n .every((field) => {\n const value = newSettings[field.key];\n return value !== undefined && value !== null && value !== '';\n });\n\n // Generate spec\n const vgplot = allRequiredFieldsFilled\n ? generateMosaicChartSpec(tableName, config.chartType, newSettings)\n : null;\n\n onChange({\n ...config,\n settings: newSettings,\n vgplot,\n });\n },\n [chartTypeDef, config, onChange, tableName],\n );\n\n if (!chartTypeDef) {\n console.error(`[ChartSettings] Unknown chart type: ${config.chartType}`);\n return (\n <div className=\"text-muted-foreground flex h-full items-center justify-center p-4 text-sm\">\n Unknown chart type: {config.chartType}\n </div>\n );\n }\n\n if (columns.length === 0) {\n return (\n <div className=\"text-muted-foreground flex h-full items-center justify-center p-4 text-sm\">\n No columns available\n </div>\n );\n }\n\n return (\n <DynamicChartSettings\n chartTypeDefinition={chartTypeDef}\n columns={mappedColumns}\n values={config.settings}\n onChange={handleSettingsChange}\n />\n );\n};\n\nexport const ChartSettings = {\n Root: ChartSettingsRoot,\n Header: ChartSettingsHeader,\n Content: ChartSettingsContent,\n TypeSelector: ChartSettingsTypeSelector,\n Fields: ChartSettingsFields,\n};\n"]}
@@ -0,0 +1,20 @@
1
+ import { type ReactNode } from 'react';
2
+ import type { TableColumn } from '@sqlrooms/duckdb';
3
+ import type { VgPlotChartConfig } from '../../chart-types';
4
+ interface ChartSettingsContextValue {
5
+ tableName?: string;
6
+ config: VgPlotChartConfig;
7
+ columns: TableColumn[];
8
+ onChange: (config: VgPlotChartConfig) => void;
9
+ }
10
+ export declare function useChartSettingsContext(): ChartSettingsContextValue;
11
+ interface ChartSettingsProviderProps {
12
+ tableName?: string;
13
+ config: VgPlotChartConfig;
14
+ columns: TableColumn[];
15
+ onChange: (config: VgPlotChartConfig) => void;
16
+ children: ReactNode;
17
+ }
18
+ export declare function ChartSettingsProvider({ tableName, config, columns, onChange, children, }: ChartSettingsProviderProps): import("react/jsx-runtime").JSX.Element;
19
+ export {};
20
+ //# sourceMappingURL=ChartSettingsContext.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ChartSettingsContext.d.ts","sourceRoot":"","sources":["../../../src/dashboard/chart-settings/ChartSettingsContext.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAgB,KAAK,SAAS,EAAa,MAAM,OAAO,CAAC;AAChE,OAAO,KAAK,EAAC,WAAW,EAAC,MAAM,kBAAkB,CAAC;AAClD,OAAO,KAAK,EAAC,iBAAiB,EAAC,MAAM,mBAAmB,CAAC;AAEzD,UAAU,yBAAyB;IACjC,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,MAAM,EAAE,iBAAiB,CAAC;IAC1B,OAAO,EAAE,WAAW,EAAE,CAAC;IACvB,QAAQ,EAAE,CAAC,MAAM,EAAE,iBAAiB,KAAK,IAAI,CAAC;CAC/C;AAMD,wBAAgB,uBAAuB,8BAQtC;AAED,UAAU,0BAA0B;IAClC,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,MAAM,EAAE,iBAAiB,CAAC;IAC1B,OAAO,EAAE,WAAW,EAAE,CAAC;IACvB,QAAQ,EAAE,CAAC,MAAM,EAAE,iBAAiB,KAAK,IAAI,CAAC;IAC9C,QAAQ,EAAE,SAAS,CAAC;CACrB;AAED,wBAAgB,qBAAqB,CAAC,EACpC,SAAS,EACT,MAAM,EACN,OAAO,EACP,QAAQ,EACR,QAAQ,GACT,EAAE,0BAA0B,2CAQ5B"}
@@ -0,0 +1,14 @@
1
+ import { jsx as _jsx } from "react/jsx-runtime";
2
+ import { createContext, useContext } from 'react';
3
+ const ChartSettingsContext = createContext(null);
4
+ export function useChartSettingsContext() {
5
+ const context = useContext(ChartSettingsContext);
6
+ if (!context) {
7
+ throw new Error('ChartSettings compound components must be used within ChartSettings.Root');
8
+ }
9
+ return context;
10
+ }
11
+ export function ChartSettingsProvider({ tableName, config, columns, onChange, children, }) {
12
+ return (_jsx(ChartSettingsContext.Provider, { value: { tableName, config, columns, onChange }, children: children }));
13
+ }
14
+ //# sourceMappingURL=ChartSettingsContext.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ChartSettingsContext.js","sourceRoot":"","sources":["../../../src/dashboard/chart-settings/ChartSettingsContext.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAC,aAAa,EAAkB,UAAU,EAAC,MAAM,OAAO,CAAC;AAWhE,MAAM,oBAAoB,GAAG,aAAa,CACxC,IAAI,CACL,CAAC;AAEF,MAAM,UAAU,uBAAuB;IACrC,MAAM,OAAO,GAAG,UAAU,CAAC,oBAAoB,CAAC,CAAC;IACjD,IAAI,CAAC,OAAO,EAAE,CAAC;QACb,MAAM,IAAI,KAAK,CACb,0EAA0E,CAC3E,CAAC;IACJ,CAAC;IACD,OAAO,OAAO,CAAC;AACjB,CAAC;AAUD,MAAM,UAAU,qBAAqB,CAAC,EACpC,SAAS,EACT,MAAM,EACN,OAAO,EACP,QAAQ,EACR,QAAQ,GACmB;IAC3B,OAAO,CACL,KAAC,oBAAoB,CAAC,QAAQ,IAC5B,KAAK,EAAE,EAAC,SAAS,EAAE,MAAM,EAAE,OAAO,EAAE,QAAQ,EAAC,YAE5C,QAAQ,GACqB,CACjC,CAAC;AACJ,CAAC","sourcesContent":["import {createContext, type ReactNode, useContext} from 'react';\nimport type {TableColumn} from '@sqlrooms/duckdb';\nimport type {VgPlotChartConfig} from '../../chart-types';\n\ninterface ChartSettingsContextValue {\n tableName?: string;\n config: VgPlotChartConfig;\n columns: TableColumn[];\n onChange: (config: VgPlotChartConfig) => void;\n}\n\nconst ChartSettingsContext = createContext<ChartSettingsContextValue | null>(\n null,\n);\n\nexport function useChartSettingsContext() {\n const context = useContext(ChartSettingsContext);\n if (!context) {\n throw new Error(\n 'ChartSettings compound components must be used within ChartSettings.Root',\n );\n }\n return context;\n}\n\ninterface ChartSettingsProviderProps {\n tableName?: string;\n config: VgPlotChartConfig;\n columns: TableColumn[];\n onChange: (config: VgPlotChartConfig) => void;\n children: ReactNode;\n}\n\nexport function ChartSettingsProvider({\n tableName,\n config,\n columns,\n onChange,\n children,\n}: ChartSettingsProviderProps) {\n return (\n <ChartSettingsContext.Provider\n value={{tableName, config, columns, onChange}}\n >\n {children}\n </ChartSettingsContext.Provider>\n );\n}\n"]}
@@ -0,0 +1,11 @@
1
+ import { FC } from 'react';
2
+ import { VgPlotChartConfig } from '../../chart-types';
3
+ interface ChartSettingsPanelProps {
4
+ tableName?: string;
5
+ config: VgPlotChartConfig;
6
+ onChange: (settings: VgPlotChartConfig) => void;
7
+ onClose?: () => void;
8
+ }
9
+ export declare const ChartSettingsPanel: FC<ChartSettingsPanelProps>;
10
+ export {};
11
+ //# sourceMappingURL=ChartSettingsPanel.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ChartSettingsPanel.d.ts","sourceRoot":"","sources":["../../../src/dashboard/chart-settings/ChartSettingsPanel.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAC,EAAE,EAAC,MAAM,OAAO,CAAC;AAEzB,OAAO,EAAC,iBAAiB,EAAC,MAAM,mBAAmB,CAAC;AAGpD,UAAU,uBAAuB;IAC/B,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,MAAM,EAAE,iBAAiB,CAAC;IAC1B,QAAQ,EAAE,CAAC,QAAQ,EAAE,iBAAiB,KAAK,IAAI,CAAC;IAChD,OAAO,CAAC,EAAE,MAAM,IAAI,CAAC;CACtB;AAED,eAAO,MAAM,kBAAkB,EAAE,EAAE,CAAC,uBAAuB,CAwB1D,CAAC"}
@@ -0,0 +1,8 @@
1
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
+ import { ChartSettings } from './ChartSettings';
3
+ import { useTableColumns } from './useTableColumns';
4
+ export const ChartSettingsPanel = ({ tableName, config, onChange, onClose, }) => {
5
+ const columns = useTableColumns(tableName);
6
+ return (_jsxs(ChartSettings.Root, { tableName: tableName, config: config, columns: columns, onChange: onChange, children: [_jsx(ChartSettings.Header, { onClose: onClose, children: "Chart settings" }), _jsxs(ChartSettings.Content, { children: [_jsx(ChartSettings.TypeSelector, {}), _jsx(ChartSettings.Fields, {})] })] }));
7
+ };
8
+ //# sourceMappingURL=ChartSettingsPanel.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ChartSettingsPanel.js","sourceRoot":"","sources":["../../../src/dashboard/chart-settings/ChartSettingsPanel.tsx"],"names":[],"mappings":";AACA,OAAO,EAAC,aAAa,EAAC,MAAM,iBAAiB,CAAC;AAE9C,OAAO,EAAC,eAAe,EAAC,MAAM,mBAAmB,CAAC;AASlD,MAAM,CAAC,MAAM,kBAAkB,GAAgC,CAAC,EAC9D,SAAS,EACT,MAAM,EACN,QAAQ,EACR,OAAO,GACR,EAAE,EAAE;IACH,MAAM,OAAO,GAAG,eAAe,CAAC,SAAS,CAAC,CAAC;IAE3C,OAAO,CACL,MAAC,aAAa,CAAC,IAAI,IACjB,SAAS,EAAE,SAAS,EACpB,MAAM,EAAE,MAAM,EACd,OAAO,EAAE,OAAO,EAChB,QAAQ,EAAE,QAAQ,aAElB,KAAC,aAAa,CAAC,MAAM,IAAC,OAAO,EAAE,OAAO,+BAEf,EACvB,MAAC,aAAa,CAAC,OAAO,eACpB,KAAC,aAAa,CAAC,YAAY,KAAG,EAC9B,KAAC,aAAa,CAAC,MAAM,KAAG,IACF,IACL,CACtB,CAAC;AACJ,CAAC,CAAC","sourcesContent":["import {FC} from 'react';\nimport {ChartSettings} from './ChartSettings';\nimport {VgPlotChartConfig} from '../../chart-types';\nimport {useTableColumns} from './useTableColumns';\n\ninterface ChartSettingsPanelProps {\n tableName?: string;\n config: VgPlotChartConfig;\n onChange: (settings: VgPlotChartConfig) => void;\n onClose?: () => void;\n}\n\nexport const ChartSettingsPanel: FC<ChartSettingsPanelProps> = ({\n tableName,\n config,\n onChange,\n onClose,\n}) => {\n const columns = useTableColumns(tableName);\n\n return (\n <ChartSettings.Root\n tableName={tableName}\n config={config}\n columns={columns}\n onChange={onChange}\n >\n <ChartSettings.Header onClose={onClose}>\n Chart settings\n </ChartSettings.Header>\n <ChartSettings.Content>\n <ChartSettings.TypeSelector />\n <ChartSettings.Fields />\n </ChartSettings.Content>\n </ChartSettings.Root>\n );\n};\n"]}
@@ -0,0 +1,11 @@
1
+ import { type FC } from 'react';
2
+ import type { TableColumn } from '@sqlrooms/duckdb';
3
+ import { VgPlotChartType } from '../../chart-types';
4
+ interface ChartTypeSelectorProps {
5
+ value: VgPlotChartType;
6
+ columns: TableColumn[];
7
+ onChange: (chartType: VgPlotChartType) => void;
8
+ }
9
+ export declare const ChartTypeSelector: FC<ChartTypeSelectorProps>;
10
+ export {};
11
+ //# sourceMappingURL=ChartTypeSelector.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ChartTypeSelector.d.ts","sourceRoot":"","sources":["../../../src/dashboard/chart-settings/ChartTypeSelector.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAC,KAAK,EAAE,EAAgB,MAAM,OAAO,CAAC;AAS7C,OAAO,KAAK,EAAC,WAAW,EAAC,MAAM,kBAAkB,CAAC;AAGlD,OAAO,EAAC,eAAe,EAA0B,MAAM,mBAAmB,CAAC;AAG3E,UAAU,sBAAsB;IAC9B,KAAK,EAAE,eAAe,CAAC;IACvB,OAAO,EAAE,WAAW,EAAE,CAAC;IACvB,QAAQ,EAAE,CAAC,SAAS,EAAE,eAAe,KAAK,IAAI,CAAC;CAChD;AAED,eAAO,MAAM,iBAAiB,EAAE,EAAE,CAAC,sBAAsB,CAuDxD,CAAC"}
@@ -0,0 +1,17 @@
1
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
+ import { memo, useMemo } from 'react';
3
+ import { Label, Select, SelectContent, SelectItem, SelectTrigger, SelectValue, } from '@sqlrooms/ui';
4
+ import { isChartTypeAvailable } from '../../chart-builders/chartTypeUtils';
5
+ import { createChartBuilderTemplates } from '../../chart-builders/builders';
6
+ import { createDefaultChartTypes } from '../../chart-types';
7
+ import { useStoreWithMosaicDashboard } from '../MosaicDashboardSlice';
8
+ export const ChartTypeSelector = memo(({ value, columns, onChange }) => {
9
+ const chartTypesFromStore = useStoreWithMosaicDashboard((state) => state.mosaicDashboard.chartTypes);
10
+ const chartTypes = useMemo(() => chartTypesFromStore || createDefaultChartTypes(), [chartTypesFromStore]);
11
+ const templates = useMemo(() => createChartBuilderTemplates(chartTypes), [chartTypes]);
12
+ const availableTemplates = useMemo(() => templates.filter((template) => isChartTypeAvailable(template, columns)), [columns, templates]);
13
+ const selectedTemplate = useMemo(() => availableTemplates.find((template) => template.id === value), [availableTemplates, value]);
14
+ return (_jsxs("div", { className: "space-y-2", children: [_jsx(Label, { className: "text-xs", children: "Chart Type" }), _jsxs(Select, { value: value, onValueChange: onChange, children: [_jsx(SelectTrigger, { className: "h-8 text-xs", children: selectedTemplate ? (_jsxs("div", { className: "flex items-center gap-2", children: [_jsx(selectedTemplate.icon, { className: "h-3.5 w-3.5" }), _jsx("span", { children: selectedTemplate.label })] })) : (_jsx(SelectValue, { placeholder: "Select chart type" })) }), _jsx(SelectContent, { className: "text-xs", children: availableTemplates.map((template) => (_jsx(SelectItem, { value: template.id, children: _jsxs("div", { className: "flex items-center gap-2", children: [_jsx(template.icon, { className: "h-3.5 w-3.5" }), _jsx("span", { children: template.label })] }) }, template.id))) })] })] }));
15
+ });
16
+ ChartTypeSelector.displayName = 'ChartTypeSelector';
17
+ //# sourceMappingURL=ChartTypeSelector.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ChartTypeSelector.js","sourceRoot":"","sources":["../../../src/dashboard/chart-settings/ChartTypeSelector.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAU,IAAI,EAAE,OAAO,EAAC,MAAM,OAAO,CAAC;AAC7C,OAAO,EACL,KAAK,EACL,MAAM,EACN,aAAa,EACb,UAAU,EACV,aAAa,EACb,WAAW,GACZ,MAAM,cAAc,CAAC;AAEtB,OAAO,EAAC,oBAAoB,EAAC,MAAM,qCAAqC,CAAC;AACzE,OAAO,EAAC,2BAA2B,EAAC,MAAM,+BAA+B,CAAC;AAC1E,OAAO,EAAkB,uBAAuB,EAAC,MAAM,mBAAmB,CAAC;AAC3E,OAAO,EAAC,2BAA2B,EAAC,MAAM,yBAAyB,CAAC;AAQpE,MAAM,CAAC,MAAM,iBAAiB,GAA+B,IAAI,CAC/D,CAAC,EAAC,KAAK,EAAE,OAAO,EAAE,QAAQ,EAAC,EAAE,EAAE;IAC7B,MAAM,mBAAmB,GAAG,2BAA2B,CACrD,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,eAAe,CAAC,UAAU,CAC5C,CAAC;IAEF,MAAM,UAAU,GAAG,OAAO,CACxB,GAAG,EAAE,CAAC,mBAAmB,IAAI,uBAAuB,EAAE,EACtD,CAAC,mBAAmB,CAAC,CACtB,CAAC;IAEF,MAAM,SAAS,GAAG,OAAO,CACvB,GAAG,EAAE,CAAC,2BAA2B,CAAC,UAAU,CAAC,EAC7C,CAAC,UAAU,CAAC,CACb,CAAC;IAEF,MAAM,kBAAkB,GAAG,OAAO,CAChC,GAAG,EAAE,CACH,SAAS,CAAC,MAAM,CAAC,CAAC,QAAQ,EAAE,EAAE,CAAC,oBAAoB,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC,EACzE,CAAC,OAAO,EAAE,SAAS,CAAC,CACrB,CAAC;IAEF,MAAM,gBAAgB,GAAG,OAAO,CAC9B,GAAG,EAAE,CAAC,kBAAkB,CAAC,IAAI,CAAC,CAAC,QAAQ,EAAE,EAAE,CAAC,QAAQ,CAAC,EAAE,KAAK,KAAK,CAAC,EAClE,CAAC,kBAAkB,EAAE,KAAK,CAAC,CAC5B,CAAC;IAEF,OAAO,CACL,eAAK,SAAS,EAAC,WAAW,aACxB,KAAC,KAAK,IAAC,SAAS,EAAC,SAAS,2BAAmB,EAC7C,MAAC,MAAM,IAAC,KAAK,EAAE,KAAK,EAAE,aAAa,EAAE,QAAQ,aAC3C,KAAC,aAAa,IAAC,SAAS,EAAC,aAAa,YACnC,gBAAgB,CAAC,CAAC,CAAC,CAClB,eAAK,SAAS,EAAC,yBAAyB,aACtC,KAAC,gBAAgB,CAAC,IAAI,IAAC,SAAS,EAAC,aAAa,GAAG,EACjD,yBAAO,gBAAgB,CAAC,KAAK,GAAQ,IACjC,CACP,CAAC,CAAC,CAAC,CACF,KAAC,WAAW,IAAC,WAAW,EAAC,mBAAmB,GAAG,CAChD,GACa,EAChB,KAAC,aAAa,IAAC,SAAS,EAAC,SAAS,YAC/B,kBAAkB,CAAC,GAAG,CAAC,CAAC,QAAQ,EAAE,EAAE,CAAC,CACpC,KAAC,UAAU,IAAmB,KAAK,EAAE,QAAQ,CAAC,EAAE,YAC9C,eAAK,SAAS,EAAC,yBAAyB,aACtC,KAAC,QAAQ,CAAC,IAAI,IAAC,SAAS,EAAC,aAAa,GAAG,EACzC,yBAAO,QAAQ,CAAC,KAAK,GAAQ,IACzB,IAJS,QAAQ,CAAC,EAAE,CAKf,CACd,CAAC,GACY,IACT,IACL,CACP,CAAC;AACJ,CAAC,CACF,CAAC;AAEF,iBAAiB,CAAC,WAAW,GAAG,mBAAmB,CAAC","sourcesContent":["import {type FC, memo, useMemo} from 'react';\nimport {\n Label,\n Select,\n SelectContent,\n SelectItem,\n SelectTrigger,\n SelectValue,\n} from '@sqlrooms/ui';\nimport type {TableColumn} from '@sqlrooms/duckdb';\nimport {isChartTypeAvailable} from '../../chart-builders/chartTypeUtils';\nimport {createChartBuilderTemplates} from '../../chart-builders/builders';\nimport {VgPlotChartType, createDefaultChartTypes} from '../../chart-types';\nimport {useStoreWithMosaicDashboard} from '../MosaicDashboardSlice';\n\ninterface ChartTypeSelectorProps {\n value: VgPlotChartType;\n columns: TableColumn[];\n onChange: (chartType: VgPlotChartType) => void;\n}\n\nexport const ChartTypeSelector: FC<ChartTypeSelectorProps> = memo(\n ({value, columns, onChange}) => {\n const chartTypesFromStore = useStoreWithMosaicDashboard(\n (state) => state.mosaicDashboard.chartTypes,\n );\n\n const chartTypes = useMemo(\n () => chartTypesFromStore || createDefaultChartTypes(),\n [chartTypesFromStore],\n );\n\n const templates = useMemo(\n () => createChartBuilderTemplates(chartTypes),\n [chartTypes],\n );\n\n const availableTemplates = useMemo(\n () =>\n templates.filter((template) => isChartTypeAvailable(template, columns)),\n [columns, templates],\n );\n\n const selectedTemplate = useMemo(\n () => availableTemplates.find((template) => template.id === value),\n [availableTemplates, value],\n );\n\n return (\n <div className=\"space-y-2\">\n <Label className=\"text-xs\">Chart Type</Label>\n <Select value={value} onValueChange={onChange}>\n <SelectTrigger className=\"h-8 text-xs\">\n {selectedTemplate ? (\n <div className=\"flex items-center gap-2\">\n <selectedTemplate.icon className=\"h-3.5 w-3.5\" />\n <span>{selectedTemplate.label}</span>\n </div>\n ) : (\n <SelectValue placeholder=\"Select chart type\" />\n )}\n </SelectTrigger>\n <SelectContent className=\"text-xs\">\n {availableTemplates.map((template) => (\n <SelectItem key={template.id} value={template.id}>\n <div className=\"flex items-center gap-2\">\n <template.icon className=\"h-3.5 w-3.5\" />\n <span>{template.label}</span>\n </div>\n </SelectItem>\n ))}\n </SelectContent>\n </Select>\n </div>\n );\n },\n);\n\nChartTypeSelector.displayName = 'ChartTypeSelector';\n"]}
@@ -0,0 +1,11 @@
1
+ import { type FC } from 'react';
2
+ import type { ChartTypeDefinition, ChartBuilderColumn } from '../../chart-builders/types';
3
+ interface DynamicChartSettingsProps {
4
+ chartTypeDefinition: ChartTypeDefinition;
5
+ columns: ChartBuilderColumn[];
6
+ values: Record<string, unknown>;
7
+ onChange: (values: Record<string, unknown>) => void;
8
+ }
9
+ export declare const DynamicChartSettings: FC<DynamicChartSettingsProps>;
10
+ export {};
11
+ //# sourceMappingURL=DynamicChartSettings.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"DynamicChartSettings.d.ts","sourceRoot":"","sources":["../../../src/dashboard/chart-settings/DynamicChartSettings.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAC,KAAK,EAAE,EAAO,MAAM,OAAO,CAAC;AAGpC,OAAO,KAAK,EACV,mBAAmB,EACnB,kBAAkB,EACnB,MAAM,4BAA4B,CAAC;AAEpC,UAAU,yBAAyB;IACjC,mBAAmB,EAAE,mBAAmB,CAAC;IACzC,OAAO,EAAE,kBAAkB,EAAE,CAAC;IAC9B,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAChC,QAAQ,EAAE,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,KAAK,IAAI,CAAC;CACrD;AAED,eAAO,MAAM,oBAAoB,EAAE,EAAE,CAAC,yBAAyB,CAgC9D,CAAC"}
@@ -0,0 +1,19 @@
1
+ import { jsx as _jsx } from "react/jsx-runtime";
2
+ import { memo } from 'react';
3
+ import { useChartFieldForm } from '../../chart-builders/hooks/useChartFieldForm';
4
+ import { FieldSelectorInput } from '../../chart-builders/FieldSelectorInput';
5
+ export const DynamicChartSettings = memo(({ chartTypeDefinition, columns, values, onChange }) => {
6
+ const { fields, handleFieldChange } = useChartFieldForm({
7
+ fields: chartTypeDefinition.fields,
8
+ values,
9
+ onChange: (key, value) => {
10
+ onChange({ ...values, [key]: value });
11
+ },
12
+ });
13
+ if (fields.length === 0) {
14
+ return (_jsx("div", { className: "text-muted-foreground text-sm", children: "No settings available for this chart type" }));
15
+ }
16
+ return (_jsx("div", { className: "space-y-4", children: fields.map((field) => (_jsx(FieldSelectorInput, { field: field, columns: columns, value: values[field.key], onChange: (value) => handleFieldChange(field.key, value) }, field.key))) }));
17
+ });
18
+ DynamicChartSettings.displayName = 'DynamicChartSettings';
19
+ //# sourceMappingURL=DynamicChartSettings.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"DynamicChartSettings.js","sourceRoot":"","sources":["../../../src/dashboard/chart-settings/DynamicChartSettings.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAU,IAAI,EAAC,MAAM,OAAO,CAAC;AACpC,OAAO,EAAC,iBAAiB,EAAC,MAAM,8CAA8C,CAAC;AAC/E,OAAO,EAAC,kBAAkB,EAAC,MAAM,yCAAyC,CAAC;AAa3E,MAAM,CAAC,MAAM,oBAAoB,GAAkC,IAAI,CACrE,CAAC,EAAC,mBAAmB,EAAE,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAC,EAAE,EAAE;IACnD,MAAM,EAAC,MAAM,EAAE,iBAAiB,EAAC,GAAG,iBAAiB,CAAC;QACpD,MAAM,EAAE,mBAAmB,CAAC,MAAM;QAClC,MAAM;QACN,QAAQ,EAAE,CAAC,GAAG,EAAE,KAAK,EAAE,EAAE;YACvB,QAAQ,CAAC,EAAC,GAAG,MAAM,EAAE,CAAC,GAAG,CAAC,EAAE,KAAK,EAAC,CAAC,CAAC;QACtC,CAAC;KACF,CAAC,CAAC;IAEH,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACxB,OAAO,CACL,cAAK,SAAS,EAAC,+BAA+B,0DAExC,CACP,CAAC;IACJ,CAAC;IAED,OAAO,CACL,cAAK,SAAS,EAAC,WAAW,YACvB,MAAM,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,CACrB,KAAC,kBAAkB,IAEjB,KAAK,EAAE,KAAK,EACZ,OAAO,EAAE,OAAO,EAChB,KAAK,EAAE,MAAM,CAAC,KAAK,CAAC,GAAG,CAAW,EAClC,QAAQ,EAAE,CAAC,KAAK,EAAE,EAAE,CAAC,iBAAiB,CAAC,KAAK,CAAC,GAAG,EAAE,KAAK,CAAC,IAJnD,KAAK,CAAC,GAAG,CAKd,CACH,CAAC,GACE,CACP,CAAC;AACJ,CAAC,CACF,CAAC;AAEF,oBAAoB,CAAC,WAAW,GAAG,sBAAsB,CAAC","sourcesContent":["import {type FC, memo} from 'react';\nimport {useChartFieldForm} from '../../chart-builders/hooks/useChartFieldForm';\nimport {FieldSelectorInput} from '../../chart-builders/FieldSelectorInput';\nimport type {\n ChartTypeDefinition,\n ChartBuilderColumn,\n} from '../../chart-builders/types';\n\ninterface DynamicChartSettingsProps {\n chartTypeDefinition: ChartTypeDefinition;\n columns: ChartBuilderColumn[];\n values: Record<string, unknown>;\n onChange: (values: Record<string, unknown>) => void;\n}\n\nexport const DynamicChartSettings: FC<DynamicChartSettingsProps> = memo(\n ({chartTypeDefinition, columns, values, onChange}) => {\n const {fields, handleFieldChange} = useChartFieldForm({\n fields: chartTypeDefinition.fields,\n values,\n onChange: (key, value) => {\n onChange({...values, [key]: value});\n },\n });\n\n if (fields.length === 0) {\n return (\n <div className=\"text-muted-foreground text-sm\">\n No settings available for this chart type\n </div>\n );\n }\n\n return (\n <div className=\"space-y-4\">\n {fields.map((field) => (\n <FieldSelectorInput\n key={field.key}\n field={field}\n columns={columns}\n value={values[field.key] as string}\n onChange={(value) => handleFieldChange(field.key, value)}\n />\n ))}\n </div>\n );\n },\n);\n\nDynamicChartSettings.displayName = 'DynamicChartSettings';\n"]}
@@ -0,0 +1,6 @@
1
+ export { ChartSettingsPanel } from './ChartSettingsPanel';
2
+ export { ChartSettings } from './ChartSettings';
3
+ export { ChartTypeSelector } from './ChartTypeSelector';
4
+ export { DynamicChartSettings } from './DynamicChartSettings';
5
+ export { useChartSettingsContext } from './ChartSettingsContext';
6
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/dashboard/chart-settings/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,kBAAkB,EAAC,MAAM,sBAAsB,CAAC;AACxD,OAAO,EAAC,aAAa,EAAC,MAAM,iBAAiB,CAAC;AAC9C,OAAO,EAAC,iBAAiB,EAAC,MAAM,qBAAqB,CAAC;AACtD,OAAO,EAAC,oBAAoB,EAAC,MAAM,wBAAwB,CAAC;AAC5D,OAAO,EAAC,uBAAuB,EAAC,MAAM,wBAAwB,CAAC"}
@@ -0,0 +1,6 @@
1
+ export { ChartSettingsPanel } from './ChartSettingsPanel';
2
+ export { ChartSettings } from './ChartSettings';
3
+ export { ChartTypeSelector } from './ChartTypeSelector';
4
+ export { DynamicChartSettings } from './DynamicChartSettings';
5
+ export { useChartSettingsContext } from './ChartSettingsContext';
6
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/dashboard/chart-settings/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,kBAAkB,EAAC,MAAM,sBAAsB,CAAC;AACxD,OAAO,EAAC,aAAa,EAAC,MAAM,iBAAiB,CAAC;AAC9C,OAAO,EAAC,iBAAiB,EAAC,MAAM,qBAAqB,CAAC;AACtD,OAAO,EAAC,oBAAoB,EAAC,MAAM,wBAAwB,CAAC;AAC5D,OAAO,EAAC,uBAAuB,EAAC,MAAM,wBAAwB,CAAC","sourcesContent":["export {ChartSettingsPanel} from './ChartSettingsPanel';\nexport {ChartSettings} from './ChartSettings';\nexport {ChartTypeSelector} from './ChartTypeSelector';\nexport {DynamicChartSettings} from './DynamicChartSettings';\nexport {useChartSettingsContext} from './ChartSettingsContext';\n"]}
@@ -0,0 +1,3 @@
1
+ import { TableColumn } from '@sqlrooms/db';
2
+ export declare function useTableColumns(tableName?: string): TableColumn[];
3
+ //# sourceMappingURL=useTableColumns.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useTableColumns.d.ts","sourceRoot":"","sources":["../../../src/dashboard/chart-settings/useTableColumns.ts"],"names":[],"mappings":"AAEA,OAAO,EAAC,WAAW,EAAC,MAAM,cAAc,CAAC;AAEzC,wBAAgB,eAAe,CAAC,SAAS,CAAC,EAAE,MAAM,GAAG,WAAW,EAAE,CAQjE"}
@@ -0,0 +1,12 @@
1
+ import { useMemo } from 'react';
2
+ import { useStoreWithMosaicDashboard } from '../MosaicDashboardSlice';
3
+ export function useTableColumns(tableName) {
4
+ const tables = useStoreWithMosaicDashboard((state) => state.db.tables);
5
+ return useMemo(() => {
6
+ if (!tableName)
7
+ return [];
8
+ const resolvedTable = tables.find((t) => t.table.table === tableName);
9
+ return resolvedTable?.columns || [];
10
+ }, [tableName, tables]);
11
+ }
12
+ //# sourceMappingURL=useTableColumns.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useTableColumns.js","sourceRoot":"","sources":["../../../src/dashboard/chart-settings/useTableColumns.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,OAAO,EAAC,MAAM,OAAO,CAAC;AAC9B,OAAO,EAAC,2BAA2B,EAAC,MAAM,yBAAyB,CAAC;AAGpE,MAAM,UAAU,eAAe,CAAC,SAAkB;IAChD,MAAM,MAAM,GAAG,2BAA2B,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,EAAE,CAAC,MAAM,CAAC,CAAC;IAEvE,OAAO,OAAO,CAAC,GAAG,EAAE;QAClB,IAAI,CAAC,SAAS;YAAE,OAAO,EAAE,CAAC;QAC1B,MAAM,aAAa,GAAG,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,KAAK,SAAS,CAAC,CAAC;QACtE,OAAO,aAAa,EAAE,OAAO,IAAI,EAAE,CAAC;IACtC,CAAC,EAAE,CAAC,SAAS,EAAE,MAAM,CAAC,CAAC,CAAC;AAC1B,CAAC","sourcesContent":["import {useMemo} from 'react';\nimport {useStoreWithMosaicDashboard} from '../MosaicDashboardSlice';\nimport {TableColumn} from '@sqlrooms/db';\n\nexport function useTableColumns(tableName?: string): TableColumn[] {\n const tables = useStoreWithMosaicDashboard((state) => state.db.tables);\n\n return useMemo(() => {\n if (!tableName) return [];\n const resolvedTable = tables.find((t) => t.table.table === tableName);\n return resolvedTable?.columns || [];\n }, [tableName, tables]);\n}\n"]}
@@ -0,0 +1,3 @@
1
+ import { type PanelRenderersRecord } from './MosaicDashboardSlice';
2
+ export declare function createDefaultMosaicDashboardPanelRenderers(extraRenderers?: PanelRenderersRecord): PanelRenderersRecord;
3
+ //# sourceMappingURL=defaultPanelRenderers.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"defaultPanelRenderers.d.ts","sourceRoot":"","sources":["../../src/dashboard/defaultPanelRenderers.ts"],"names":[],"mappings":"AAAA,OAAO,EAIL,KAAK,oBAAoB,EAC1B,MAAM,wBAAwB,CAAC;AAIhC,wBAAgB,0CAA0C,CACxD,cAAc,GAAE,oBAAyB,GACxC,oBAAoB,CAQtB"}
@@ -0,0 +1,11 @@
1
+ import { MOSAIC_DASHBOARD_PROFILER_PANEL_TYPE, MOSAIC_DASHBOARD_VGPLOT_PANEL_TYPE, } from './MosaicDashboardSlice';
2
+ import { mosaicDashboardProfilerPanelRenderer } from './MosaicDashboardProfilerPanelRenderer';
3
+ import { mosaicDashboardVgPlotPanelRenderer } from './MosaicDashboardVgPlotPanelRenderer';
4
+ export function createDefaultMosaicDashboardPanelRenderers(extraRenderers = {}) {
5
+ return {
6
+ [MOSAIC_DASHBOARD_VGPLOT_PANEL_TYPE]: mosaicDashboardVgPlotPanelRenderer,
7
+ [MOSAIC_DASHBOARD_PROFILER_PANEL_TYPE]: mosaicDashboardProfilerPanelRenderer,
8
+ ...extraRenderers,
9
+ };
10
+ }
11
+ //# sourceMappingURL=defaultPanelRenderers.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"defaultPanelRenderers.js","sourceRoot":"","sources":["../../src/dashboard/defaultPanelRenderers.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,oCAAoC,EACpC,kCAAkC,GAGnC,MAAM,wBAAwB,CAAC;AAChC,OAAO,EAAC,oCAAoC,EAAC,MAAM,wCAAwC,CAAC;AAC5F,OAAO,EAAC,kCAAkC,EAAC,MAAM,sCAAsC,CAAC;AAExF,MAAM,UAAU,0CAA0C,CACxD,iBAAuC,EAAE;IAEzC,OAAO;QACL,CAAC,kCAAkC,CAAC,EAClC,kCAAsD;QACxD,CAAC,oCAAoC,CAAC,EACpC,oCAAwD;QAC1D,GAAG,cAAc;KAClB,CAAC;AACJ,CAAC","sourcesContent":["import {\n MOSAIC_DASHBOARD_PROFILER_PANEL_TYPE,\n MOSAIC_DASHBOARD_VGPLOT_PANEL_TYPE,\n type AnyPanelRenderer,\n type PanelRenderersRecord,\n} from './MosaicDashboardSlice';\nimport {mosaicDashboardProfilerPanelRenderer} from './MosaicDashboardProfilerPanelRenderer';\nimport {mosaicDashboardVgPlotPanelRenderer} from './MosaicDashboardVgPlotPanelRenderer';\n\nexport function createDefaultMosaicDashboardPanelRenderers(\n extraRenderers: PanelRenderersRecord = {},\n): PanelRenderersRecord {\n return {\n [MOSAIC_DASHBOARD_VGPLOT_PANEL_TYPE]:\n mosaicDashboardVgPlotPanelRenderer as AnyPanelRenderer,\n [MOSAIC_DASHBOARD_PROFILER_PANEL_TYPE]:\n mosaicDashboardProfilerPanelRenderer as AnyPanelRenderer,\n ...extraRenderers,\n };\n}\n"]}
@@ -0,0 +1,15 @@
1
+ import type { Spec } from '@uwdata/mosaic-spec';
2
+ import { type VgPlotChartSettings, type VgPlotChartType } from '../chart-types';
3
+ /**
4
+ * Generates a Mosaic chart specification from chart settings.
5
+ *
6
+ * @param tableName - The source table name. Returns null if undefined.
7
+ * @param chartType - The type of chart to generate (histogram, line, etc.)
8
+ * @param settings - Chart-specific settings matching the chart type
9
+ * @returns A Mosaic Spec object or null if generation fails
10
+ *
11
+ * @example
12
+ * const spec = generateMosaicChartSpec('sales', 'histogram', { field: 'amount' });
13
+ */
14
+ export declare function generateMosaicChartSpec(tableName: string | undefined, chartType: VgPlotChartType, settings: VgPlotChartSettings | Record<string, unknown>): Spec | null;
15
+ //# sourceMappingURL=generateMosaicChartSpec.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"generateMosaicChartSpec.d.ts","sourceRoot":"","sources":["../../src/dashboard/generateMosaicChartSpec.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAC,IAAI,EAAC,MAAM,qBAAqB,CAAC;AAC9C,OAAO,EAEL,KAAK,mBAAmB,EACxB,KAAK,eAAe,EACrB,MAAM,gBAAgB,CAAC;AAExB;;;;;;;;;;GAUG;AACH,wBAAgB,uBAAuB,CACrC,SAAS,EAAE,MAAM,GAAG,SAAS,EAC7B,SAAS,EAAE,eAAe,EAC1B,QAAQ,EAAE,mBAAmB,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GACtD,IAAI,GAAG,IAAI,CAuBb"}
@@ -0,0 +1,30 @@
1
+ import { mosaicChartTypes, } from '../chart-types';
2
+ /**
3
+ * Generates a Mosaic chart specification from chart settings.
4
+ *
5
+ * @param tableName - The source table name. Returns null if undefined.
6
+ * @param chartType - The type of chart to generate (histogram, line, etc.)
7
+ * @param settings - Chart-specific settings matching the chart type
8
+ * @returns A Mosaic Spec object or null if generation fails
9
+ *
10
+ * @example
11
+ * const spec = generateMosaicChartSpec('sales', 'histogram', { field: 'amount' });
12
+ */
13
+ export function generateMosaicChartSpec(tableName, chartType, settings) {
14
+ if (!tableName) {
15
+ return null;
16
+ }
17
+ const chartTypeDef = Object.values(mosaicChartTypes).find(({ id }) => id === chartType);
18
+ if (!chartTypeDef) {
19
+ console.error(`[generateMosaicChartSpec] Unknown chart type: ${chartType}`);
20
+ return null;
21
+ }
22
+ try {
23
+ return chartTypeDef.createSpec(tableName, settings);
24
+ }
25
+ catch (error) {
26
+ console.error(`[generateMosaicChartSpec] Failed to generate spec for chart type "${chartType}":`, error);
27
+ return null;
28
+ }
29
+ }
30
+ //# sourceMappingURL=generateMosaicChartSpec.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"generateMosaicChartSpec.js","sourceRoot":"","sources":["../../src/dashboard/generateMosaicChartSpec.ts"],"names":[],"mappings":"AACA,OAAO,EACL,gBAAgB,GAGjB,MAAM,gBAAgB,CAAC;AAExB;;;;;;;;;;GAUG;AACH,MAAM,UAAU,uBAAuB,CACrC,SAA6B,EAC7B,SAA0B,EAC1B,QAAuD;IAEvD,IAAI,CAAC,SAAS,EAAE,CAAC;QACf,OAAO,IAAI,CAAC;IACd,CAAC;IAED,MAAM,YAAY,GAAG,MAAM,CAAC,MAAM,CAAC,gBAAgB,CAAC,CAAC,IAAI,CACvD,CAAC,EAAC,EAAE,EAAC,EAAE,EAAE,CAAC,EAAE,KAAK,SAAS,CAC3B,CAAC;IAEF,IAAI,CAAC,YAAY,EAAE,CAAC;QAClB,OAAO,CAAC,KAAK,CAAC,iDAAiD,SAAS,EAAE,CAAC,CAAC;QAC5E,OAAO,IAAI,CAAC;IACd,CAAC;IAED,IAAI,CAAC;QACH,OAAO,YAAY,CAAC,UAAU,CAAC,SAAS,EAAE,QAAQ,CAAC,CAAC;IACtD,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,OAAO,CAAC,KAAK,CACX,qEAAqE,SAAS,IAAI,EAClF,KAAK,CACN,CAAC;QACF,OAAO,IAAI,CAAC;IACd,CAAC;AACH,CAAC","sourcesContent":["import type {Spec} from '@uwdata/mosaic-spec';\nimport {\n mosaicChartTypes,\n type VgPlotChartSettings,\n type VgPlotChartType,\n} from '../chart-types';\n\n/**\n * Generates a Mosaic chart specification from chart settings.\n *\n * @param tableName - The source table name. Returns null if undefined.\n * @param chartType - The type of chart to generate (histogram, line, etc.)\n * @param settings - Chart-specific settings matching the chart type\n * @returns A Mosaic Spec object or null if generation fails\n *\n * @example\n * const spec = generateMosaicChartSpec('sales', 'histogram', { field: 'amount' });\n */\nexport function generateMosaicChartSpec(\n tableName: string | undefined,\n chartType: VgPlotChartType,\n settings: VgPlotChartSettings | Record<string, unknown>,\n): Spec | null {\n if (!tableName) {\n return null;\n }\n\n const chartTypeDef = Object.values(mosaicChartTypes).find(\n ({id}) => id === chartType,\n );\n\n if (!chartTypeDef) {\n console.error(`[generateMosaicChartSpec] Unknown chart type: ${chartType}`);\n return null;\n }\n\n try {\n return chartTypeDef.createSpec(tableName, settings);\n } catch (error) {\n console.error(\n `[generateMosaicChartSpec] Failed to generate spec for chart type \"${chartType}\":`,\n error,\n );\n return null;\n }\n}\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"MosaicChartDisplay.d.ts","sourceRoot":"","sources":["../../src/editor/MosaicChartDisplay.tsx"],"names":[],"mappings":"AACA,OAAO,KAAgB,MAAM,OAAO,CAAC;AAIrC,MAAM,WAAW,uBAAuB;IACtC;;OAEG;IACH,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED;;;;;;;;GAQG;AACH,eAAO,MAAM,kBAAkB,EAAE,KAAK,CAAC,EAAE,CAAC,uBAAuB,CAehE,CAAC"}
1
+ {"version":3,"file":"MosaicChartDisplay.d.ts","sourceRoot":"","sources":["../../src/editor/MosaicChartDisplay.tsx"],"names":[],"mappings":"AACA,OAAO,KAAgB,MAAM,OAAO,CAAC;AAIrC,MAAM,WAAW,uBAAuB;IACtC;;OAEG;IACH,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAID;;;;;;;;GAQG;AACH,eAAO,MAAM,kBAAkB,EAAE,KAAK,CAAC,EAAE,CAAC,uBAAuB,CAoBhE,CAAC"}
@@ -3,6 +3,7 @@ import { cn } from '@sqlrooms/ui';
3
3
  import React, { useMemo } from 'react';
4
4
  import { VgPlotChart } from '../VgPlotChart';
5
5
  import { useMosaicEditorContext } from './MosaicEditorContext';
6
+ const DEFAULT_CHART_HEIGHT = 200;
6
7
  /**
7
8
  * Chart display subcomponent for MosaicChart.Container.
8
9
  * Renders the VgPlotChart with the current spec from editor context.
@@ -15,7 +16,11 @@ import { useMosaicEditorContext } from './MosaicEditorContext';
15
16
  export const MosaicChartDisplay = React.memo(({ className }) => {
16
17
  const { state, params } = useMosaicEditorContext();
17
18
  const spec = useMemo(() => state.parsedSpec ?? state.lastValidSpec, [state.parsedSpec, state.lastValidSpec]);
18
- return (_jsx("div", { className: cn('relative', className), children: _jsx(VgPlotChart, { spec: spec, params: params }) }));
19
+ const height = useMemo(() => {
20
+ const h = spec && typeof spec === 'object' ? spec.height : null;
21
+ return typeof h === 'number' && h > 0 ? h : DEFAULT_CHART_HEIGHT;
22
+ }, [spec]);
23
+ return (_jsx("div", { className: cn('relative', className), style: { height }, children: _jsx(VgPlotChart, { spec: spec, params: params }) }));
19
24
  });
20
25
  MosaicChartDisplay.displayName = 'MosaicChartDisplay';
21
26
  //# sourceMappingURL=MosaicChartDisplay.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"MosaicChartDisplay.js","sourceRoot":"","sources":["../../src/editor/MosaicChartDisplay.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAC,EAAE,EAAC,MAAM,cAAc,CAAC;AAChC,OAAO,KAAK,EAAE,EAAC,OAAO,EAAC,MAAM,OAAO,CAAC;AACrC,OAAO,EAAC,WAAW,EAAC,MAAM,gBAAgB,CAAC;AAC3C,OAAO,EAAC,sBAAsB,EAAC,MAAM,uBAAuB,CAAC;AAS7D;;;;;;;;GAQG;AACH,MAAM,CAAC,MAAM,kBAAkB,GAAsC,KAAK,CAAC,IAAI,CAC7E,CAAC,EAAC,SAAS,EAAC,EAAE,EAAE;IACd,MAAM,EAAC,KAAK,EAAE,MAAM,EAAC,GAAG,sBAAsB,EAAE,CAAC;IAEjD,MAAM,IAAI,GAAG,OAAO,CAClB,GAAG,EAAE,CAAC,KAAK,CAAC,UAAU,IAAI,KAAK,CAAC,aAAa,EAC7C,CAAC,KAAK,CAAC,UAAU,EAAE,KAAK,CAAC,aAAa,CAAC,CACxC,CAAC;IAEF,OAAO,CACL,cAAK,SAAS,EAAE,EAAE,CAAC,UAAU,EAAE,SAAS,CAAC,YACvC,KAAC,WAAW,IAAC,IAAI,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,GAAI,GACvC,CACP,CAAC;AACJ,CAAC,CACF,CAAC;AAEF,kBAAkB,CAAC,WAAW,GAAG,oBAAoB,CAAC","sourcesContent":["import {cn} from '@sqlrooms/ui';\nimport React, {useMemo} from 'react';\nimport {VgPlotChart} from '../VgPlotChart';\nimport {useMosaicEditorContext} from './MosaicEditorContext';\n\nexport interface MosaicChartDisplayProps {\n /**\n * Custom class name for the chart container\n */\n className?: string;\n}\n\n/**\n * Chart display subcomponent for MosaicChart.Container.\n * Renders the VgPlotChart with the current spec from editor context.\n *\n * Uses the last valid spec for rendering, so the chart keeps\n * displaying even during typing with invalid JSON.\n *\n * Must be used within a MosaicChart.Container component.\n */\nexport const MosaicChartDisplay: React.FC<MosaicChartDisplayProps> = React.memo(\n ({className}) => {\n const {state, params} = useMosaicEditorContext();\n\n const spec = useMemo(\n () => state.parsedSpec ?? state.lastValidSpec,\n [state.parsedSpec, state.lastValidSpec],\n );\n\n return (\n <div className={cn('relative', className)}>\n <VgPlotChart spec={spec} params={params} />\n </div>\n );\n },\n);\n\nMosaicChartDisplay.displayName = 'MosaicChartDisplay';\n"]}
1
+ {"version":3,"file":"MosaicChartDisplay.js","sourceRoot":"","sources":["../../src/editor/MosaicChartDisplay.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAC,EAAE,EAAC,MAAM,cAAc,CAAC;AAChC,OAAO,KAAK,EAAE,EAAC,OAAO,EAAC,MAAM,OAAO,CAAC;AACrC,OAAO,EAAC,WAAW,EAAC,MAAM,gBAAgB,CAAC;AAC3C,OAAO,EAAC,sBAAsB,EAAC,MAAM,uBAAuB,CAAC;AAS7D,MAAM,oBAAoB,GAAG,GAAG,CAAC;AAEjC;;;;;;;;GAQG;AACH,MAAM,CAAC,MAAM,kBAAkB,GAAsC,KAAK,CAAC,IAAI,CAC7E,CAAC,EAAC,SAAS,EAAC,EAAE,EAAE;IACd,MAAM,EAAC,KAAK,EAAE,MAAM,EAAC,GAAG,sBAAsB,EAAE,CAAC;IAEjD,MAAM,IAAI,GAAG,OAAO,CAClB,GAAG,EAAE,CAAC,KAAK,CAAC,UAAU,IAAI,KAAK,CAAC,aAAa,EAC7C,CAAC,KAAK,CAAC,UAAU,EAAE,KAAK,CAAC,aAAa,CAAC,CACxC,CAAC;IAEF,MAAM,MAAM,GAAG,OAAO,CAAC,GAAG,EAAE;QAC1B,MAAM,CAAC,GAAG,IAAI,IAAI,OAAO,IAAI,KAAK,QAAQ,CAAC,CAAC,CAAE,IAAY,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC;QACzE,OAAO,OAAO,CAAC,KAAK,QAAQ,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,oBAAoB,CAAC;IACnE,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC;IAEX,OAAO,CACL,cAAK,SAAS,EAAE,EAAE,CAAC,UAAU,EAAE,SAAS,CAAC,EAAE,KAAK,EAAE,EAAC,MAAM,EAAC,YACxD,KAAC,WAAW,IAAC,IAAI,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,GAAI,GACvC,CACP,CAAC;AACJ,CAAC,CACF,CAAC;AAEF,kBAAkB,CAAC,WAAW,GAAG,oBAAoB,CAAC","sourcesContent":["import {cn} from '@sqlrooms/ui';\nimport React, {useMemo} from 'react';\nimport {VgPlotChart} from '../VgPlotChart';\nimport {useMosaicEditorContext} from './MosaicEditorContext';\n\nexport interface MosaicChartDisplayProps {\n /**\n * Custom class name for the chart container\n */\n className?: string;\n}\n\nconst DEFAULT_CHART_HEIGHT = 200;\n\n/**\n * Chart display subcomponent for MosaicChart.Container.\n * Renders the VgPlotChart with the current spec from editor context.\n *\n * Uses the last valid spec for rendering, so the chart keeps\n * displaying even during typing with invalid JSON.\n *\n * Must be used within a MosaicChart.Container component.\n */\nexport const MosaicChartDisplay: React.FC<MosaicChartDisplayProps> = React.memo(\n ({className}) => {\n const {state, params} = useMosaicEditorContext();\n\n const spec = useMemo(\n () => state.parsedSpec ?? state.lastValidSpec,\n [state.parsedSpec, state.lastValidSpec],\n );\n\n const height = useMemo(() => {\n const h = spec && typeof spec === 'object' ? (spec as any).height : null;\n return typeof h === 'number' && h > 0 ? h : DEFAULT_CHART_HEIGHT;\n }, [spec]);\n\n return (\n <div className={cn('relative', className)} style={{height}}>\n <VgPlotChart spec={spec} params={params} />\n </div>\n );\n },\n);\n\nMosaicChartDisplay.displayName = 'MosaicChartDisplay';\n"]}
package/dist/index.d.ts CHANGED
@@ -7,14 +7,21 @@ export { astToDOM, astToESM, parseSpec } from '@uwdata/mosaic-spec';
7
7
  export type { Spec } from '@uwdata/mosaic-spec';
8
8
  export { asc, column, desc, Query, sql } from '@uwdata/mosaic-sql';
9
9
  export * as vg from '@uwdata/vgplot';
10
- export { createDefaultMosaicConfig, createMosaicSlice, MosaicSliceConfig, type CreateMosaicSliceProps, type MosaicClientOptions, type MosaicSliceState, type TrackedClient, } from './MosaicSlice';
10
+ export { MosaicDashboard, MosaicDashboardRoot, type MosaicDashboardProps, type MosaicDashboardRootProps, } from './dashboard/MosaicDashboard';
11
+ export { useMosaicDashboardContext } from './dashboard/MosaicDashboardContext';
12
+ export { DashboardPanelErrorBoundary } from './dashboard/DashboardPanelErrorBoundary';
13
+ export { createDefaultMosaicDashboardPanelRenderers } from './dashboard/defaultPanelRenderers';
14
+ export { createMosaicDashboardProfilerPanelConfig, createMosaicDashboardVgPlotPanelConfig, createDefaultMosaicDashboardConfig, createMosaicDashboardSlice, getMosaicDashboardDockId, getMosaicDashboardGridId, getMosaicDashboardPanelId, getMosaicDashboardSelectionName, isVgPlotPanelConfig, MOSAIC_DASHBOARD_PANEL, MOSAIC_DASHBOARD_PROFILER_PANEL_TYPE, MOSAIC_DASHBOARD_VGPLOT_PANEL_TYPE, MosaicDashboardEntry, MosaicDashboardLayoutType, MosaicDashboardPanelConfig, MosaicDashboardPanelSource, MosaicDashboardSliceConfig, resolveMosaicDashboardPanelSource, useStoreWithMosaicDashboard, } from './dashboard/MosaicDashboardSlice';
15
+ export type { MosaicDashboardAddPanelAction, MosaicDashboardAddPanelActionContext, CreateMosaicDashboardSliceProps, MosaicDashboardEntry as MosaicDashboardEntryType, MosaicDashboardPanelConfig as MosaicDashboardPanelConfigType, MosaicDashboardPanelRenderer, MosaicDashboardPanelRendererProps, MosaicDashboardPanelSource as MosaicDashboardPanelSourceType, MosaicDashboardSliceConfig as MosaicDashboardSliceConfigType, MosaicDashboardSliceState, MosaicDashboardStoreState, VgPlotPanelConfig, } from './dashboard/MosaicDashboardSlice';
16
+ export { createMosaicColorLegendPlot, MosaicColorLegend, type MosaicColorLegendProps, } from './MosaicColorLegend';
17
+ export { createDefaultMosaicConfig, createMosaicSlice, MosaicSliceConfig, type CreateMosaicSliceProps, type MosaicClientOptions, type MosaicPreAggregateOptions, type MosaicSliceState, type TrackedClient, } from './MosaicSlice';
11
18
  export { MosaicProfiler, type MosaicProfilerCompoundHeaderProps, type MosaicProfilerCompoundRowsProps, type MosaicProfilerCompoundStatusBarProps, type MosaicProfilerCompoundTableProps, type MosaicProfilerProps, type MosaicProfilerRootProps, } from './profiler/MosaicProfiler';
12
19
  export { MosaicProfilerHeader, type MosaicProfilerHeaderProps, } from './profiler/MosaicProfilerHeader';
13
20
  export { MosaicProfilerRows, type MosaicProfilerRowsProps, } from './profiler/MosaicProfilerRows';
14
21
  export { MosaicProfilerStatusBar, type MosaicProfilerStatusBarProps, } from './profiler/MosaicProfilerStatusBar';
15
22
  export { useMosaicProfiler } from './profiler/useMosaicProfiler';
23
+ export { ResponsivePlot, type PlotSize, type ResponsivePlotProps, } from './ResponsivePlot';
16
24
  export { useMosaicClient, type UseMosaicClientOptions } from './useMosaicClient';
17
- export { createMosaicColorLegendPlot, MosaicColorLegend, type MosaicColorLegendProps, } from './MosaicColorLegend';
18
25
  export { VgPlotChart } from './VgPlotChart';
19
26
  export { MosaicChart } from './MosaicChart';
20
27
  export { MosaicChartBuilder } from './MosaicChartBuilder';
@@ -29,9 +36,28 @@ export type { MosaicSpecEditorPanelProps } from './editor/MosaicSpecEditorPanel'
29
36
  export type { MosaicEditorActions, MosaicEditorContextValue, MosaicEditorState, OnMosaicSpecChange, UseMosaicChartEditorOptions, UseMosaicChartEditorReturn, } from './editor/types';
30
37
  export { getProfilerTableWidth, PROFILER_DEFAULT_COLUMN_WIDTH_PX, PROFILER_ROW_NUMBER_COLUMN_WIDTH_PX, PROFILER_UNSUPPORTED_COLUMN_WIDTH_PX, } from './profiler/layout';
31
38
  export type { MosaicProfilerCategoryBucket, MosaicProfilerCategorySummary, MosaicProfilerColumnKind, MosaicProfilerColumnState, MosaicProfilerHistogramSummary, MosaicProfilerOptions, MosaicProfilerPaginationState, MosaicProfilerSorting, MosaicProfilerSummaryState, UseMosaicProfilerReturn, } from './profiler/types';
32
- export { createDefaultChartBuilders } from './chart-builders/builders';
39
+ export { boxPlotBuilder, bubbleChartBuilder, countPlotBuilder, createChartBuilderTemplate, createChartBuilderTemplates, createDefaultChartBuilders, customSpecBuilder, ecdfBuilder, heatmapBuilder, histogramBuilder, lineChartBuilder, mosaicChartBuilders, } from './chart-builders/builders';
40
+ export type { ChartBuilderActionsProps } from './chart-builders/ChartBuilderActions';
41
+ export { ChartBuilderActions } from './chart-builders/ChartBuilderActions';
33
42
  export type { ChartBuilderContentProps } from './chart-builders/ChartBuilderContent';
34
- export type { ChartBuilderDialogProps } from './chart-builders/ChartBuilderDialog';
43
+ export { ChartBuilderContent } from './chart-builders/ChartBuilderContent';
44
+ export { useChartBuilderContext, useChartBuilderStore, } from './chart-builders/ChartBuilderContext';
45
+ export type { ChartBuilderContextValue } from './chart-builders/ChartBuilderContext';
46
+ export type { ChartBuilderDialogContentProps, ChartBuilderDialogProps, ChartBuilderTriggerProps, } from './chart-builders/ChartBuilderDialog';
47
+ export { ChartBuilderDialogContent, ChartBuilderTrigger, } from './chart-builders/ChartBuilderDialog';
48
+ export type { ChartBuilderRootProps } from './chart-builders/ChartBuilderRoot';
49
+ export { ChartBuilderRoot } from './chart-builders/ChartBuilderRoot';
50
+ export type { ChartBuilderFieldsProps } from './chart-builders/ChartBuilderFields';
51
+ export { ChartBuilderFields } from './chart-builders/ChartBuilderFields';
52
+ export type { ChartBuilderTypeGridProps } from './chart-builders/ChartBuilderTypeGrid';
53
+ export { ChartBuilderTypeGrid } from './chart-builders/ChartBuilderTypeGrid';
54
+ export { buildChartTitleForSpec } from './chart-builders/chartSpecTitle';
55
+ export { boxPlotChartType, bubbleChartChartType, countPlotChartType, createDefaultChartTypes, customSpecChartType, ecdfChartType, heatmapChartType, histogramChartType, lineChartChartType, mosaicChartTypes, } from './chart-types';
56
+ export type { VgPlotChartConfig, VgPlotChartSettings, VgPlotChartType, } from './chart-types';
57
+ export { buildChartTypeTitle, canCreateChartFromType, columnMatchesFieldTypes, getAvailableChartTypes, getCompatibleColumns, isChartTypeAvailable, NUMERIC_COLUMN_TYPES, QUANTITATIVE_COLUMN_TYPES, TEMPORAL_COLUMN_TYPES, } from './chart-builders/chartTypeUtils';
58
+ export { describeChartSpecs, describeChartTypes, } from './chart-builders/describeChartSpecs';
35
59
  export type { FieldSelectorInputProps } from './chart-builders/FieldSelectorInput';
36
- export type { ChartBuilderColumn, ChartBuilderField, ChartBuilderTemplate, } from './chart-builders/types';
60
+ export { toChartSpec, toChartTypeDefinition } from './chart-builders/types';
61
+ export type { ChartBuilderColumn, ChartBuilderField, ChartBuilderTemplate, ChartSpec, ChartTypeDefinition, } from './chart-builders/types';
62
+ export { MosaicCodeMirrorEditor } from './editor/MosaicCodeMirrorEditor';
37
63
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}