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

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (572) hide show
  1. package/LICENSE.md +2 -1
  2. package/README.md +179 -35
  3. package/dist/MosaicSlice.d.ts +1 -0
  4. package/dist/MosaicSlice.d.ts.map +1 -1
  5. package/dist/MosaicSlice.js.map +1 -1
  6. package/dist/VgPlotChart.d.ts.map +1 -1
  7. package/dist/VgPlotChart.js +9 -3
  8. package/dist/VgPlotChart.js.map +1 -1
  9. package/dist/ai/agentIntent.d.ts +5 -0
  10. package/dist/ai/agentIntent.d.ts.map +1 -0
  11. package/dist/ai/agentIntent.js +8 -0
  12. package/dist/ai/agentIntent.js.map +1 -0
  13. package/dist/ai/block-document/constants.d.ts +9 -0
  14. package/dist/ai/block-document/constants.d.ts.map +1 -0
  15. package/dist/ai/block-document/constants.js +9 -0
  16. package/dist/ai/block-document/constants.js.map +1 -0
  17. package/dist/ai/block-document/createAddMosaicDashboardBlockTool.d.ts +48 -0
  18. package/dist/ai/block-document/createAddMosaicDashboardBlockTool.d.ts.map +1 -0
  19. package/dist/ai/block-document/createAddMosaicDashboardBlockTool.js +59 -0
  20. package/dist/ai/block-document/createAddMosaicDashboardBlockTool.js.map +1 -0
  21. package/dist/ai/block-document/createBlockDocumentChartTools.d.ts +19 -0
  22. package/dist/ai/block-document/createBlockDocumentChartTools.d.ts.map +1 -0
  23. package/dist/ai/block-document/createBlockDocumentChartTools.js +37 -0
  24. package/dist/ai/block-document/createBlockDocumentChartTools.js.map +1 -0
  25. package/dist/ai/block-document/createBlockDocumentDataTableExplorerTool.d.ts +32 -0
  26. package/dist/ai/block-document/createBlockDocumentDataTableExplorerTool.d.ts.map +1 -0
  27. package/dist/ai/block-document/createBlockDocumentDataTableExplorerTool.js +37 -0
  28. package/dist/ai/block-document/createBlockDocumentDataTableExplorerTool.js.map +1 -0
  29. package/dist/ai/constants.d.ts +3 -0
  30. package/dist/ai/constants.d.ts.map +1 -0
  31. package/dist/ai/constants.js +3 -0
  32. package/dist/ai/constants.js.map +1 -0
  33. package/dist/ai/createDataTableExplorerTool.d.ts +69 -0
  34. package/dist/ai/createDataTableExplorerTool.d.ts.map +1 -0
  35. package/dist/ai/createDataTableExplorerTool.js +68 -0
  36. package/dist/ai/createDataTableExplorerTool.js.map +1 -0
  37. package/dist/ai/dashboard/constants.d.ts +6 -0
  38. package/dist/ai/dashboard/constants.d.ts.map +1 -0
  39. package/dist/ai/dashboard/constants.js +6 -0
  40. package/dist/ai/dashboard/constants.js.map +1 -0
  41. package/dist/ai/dashboard/createDashboardAgentTool.d.ts +17 -0
  42. package/dist/ai/dashboard/createDashboardAgentTool.d.ts.map +1 -0
  43. package/dist/ai/dashboard/createDashboardAgentTool.js +205 -0
  44. package/dist/ai/dashboard/createDashboardAgentTool.js.map +1 -0
  45. package/dist/ai/dashboard/createDashboardAiAdapter.d.ts +14 -0
  46. package/dist/ai/dashboard/createDashboardAiAdapter.d.ts.map +1 -0
  47. package/dist/ai/dashboard/createDashboardAiAdapter.js +75 -0
  48. package/dist/ai/dashboard/createDashboardAiAdapter.js.map +1 -0
  49. package/dist/ai/dashboard/createDashboardAiTools.d.ts +26 -0
  50. package/dist/ai/dashboard/createDashboardAiTools.d.ts.map +1 -0
  51. package/dist/ai/dashboard/createDashboardAiTools.js +40 -0
  52. package/dist/ai/dashboard/createDashboardAiTools.js.map +1 -0
  53. package/dist/ai/dashboard/createDashboardChartTools.d.ts +27 -0
  54. package/dist/ai/dashboard/createDashboardChartTools.d.ts.map +1 -0
  55. package/dist/ai/dashboard/createDashboardChartTools.js +55 -0
  56. package/dist/ai/dashboard/createDashboardChartTools.js.map +1 -0
  57. package/dist/ai/dashboard/createDashboardDataTableExplorerTool.d.ts +23 -0
  58. package/dist/ai/dashboard/createDashboardDataTableExplorerTool.d.ts.map +1 -0
  59. package/dist/ai/dashboard/createDashboardDataTableExplorerTool.js +29 -0
  60. package/dist/ai/dashboard/createDashboardDataTableExplorerTool.js.map +1 -0
  61. package/dist/ai/dashboard/createListDashboardPanelsTool.d.ts +28 -0
  62. package/dist/ai/dashboard/createListDashboardPanelsTool.d.ts.map +1 -0
  63. package/dist/ai/dashboard/createListDashboardPanelsTool.js +54 -0
  64. package/dist/ai/dashboard/createListDashboardPanelsTool.js.map +1 -0
  65. package/dist/ai/dashboard/dashboard-types.d.ts +59 -0
  66. package/dist/ai/dashboard/dashboard-types.d.ts.map +1 -0
  67. package/dist/ai/dashboard/dashboard-types.js +2 -0
  68. package/dist/ai/dashboard/dashboard-types.js.map +1 -0
  69. package/dist/ai/database-types.d.ts +12 -0
  70. package/dist/ai/database-types.d.ts.map +1 -0
  71. package/dist/ai/database-types.js +2 -0
  72. package/dist/ai/database-types.js.map +1 -0
  73. package/dist/ai/errors.d.ts +8 -0
  74. package/dist/ai/errors.d.ts.map +1 -0
  75. package/dist/ai/errors.js +11 -0
  76. package/dist/ai/errors.js.map +1 -0
  77. package/dist/ai/tool-helpers.d.ts +28 -29
  78. package/dist/ai/tool-helpers.d.ts.map +1 -1
  79. package/dist/ai/tool-helpers.js +38 -76
  80. package/dist/ai/tool-helpers.js.map +1 -1
  81. package/dist/ai/tool-schemas.d.ts +9 -4
  82. package/dist/ai/tool-schemas.d.ts.map +1 -1
  83. package/dist/ai/tool-schemas.js +12 -12
  84. package/dist/ai/tool-schemas.js.map +1 -1
  85. package/dist/ai/tool-types.d.ts +19 -1
  86. package/dist/ai/tool-types.d.ts.map +1 -1
  87. package/dist/ai/tool-types.js.map +1 -1
  88. package/dist/ai/types.d.ts +64 -0
  89. package/dist/ai/types.d.ts.map +1 -0
  90. package/dist/ai/types.js +2 -0
  91. package/dist/ai/types.js.map +1 -0
  92. package/dist/ai.d.ts +16 -2
  93. package/dist/ai.d.ts.map +1 -1
  94. package/dist/ai.js +14 -5
  95. package/dist/ai.js.map +1 -1
  96. package/dist/charts/MosaicChart.d.ts +3 -1
  97. package/dist/charts/MosaicChart.d.ts.map +1 -1
  98. package/dist/charts/MosaicChart.js +2 -2
  99. package/dist/charts/MosaicChart.js.map +1 -1
  100. package/dist/charts/MosaicChartError.d.ts +8 -2
  101. package/dist/charts/MosaicChartError.d.ts.map +1 -1
  102. package/dist/charts/MosaicChartError.js +29 -3
  103. package/dist/charts/MosaicChartError.js.map +1 -1
  104. package/dist/charts/MosaicChartSettingsButton.d.ts +15 -0
  105. package/dist/charts/MosaicChartSettingsButton.d.ts.map +1 -0
  106. package/dist/charts/MosaicChartSettingsButton.js +7 -0
  107. package/dist/charts/MosaicChartSettingsButton.js.map +1 -0
  108. package/dist/charts/MosaicChartView.d.ts +2 -0
  109. package/dist/charts/MosaicChartView.d.ts.map +1 -1
  110. package/dist/charts/MosaicChartView.js +19 -7
  111. package/dist/charts/MosaicChartView.js.map +1 -1
  112. package/dist/charts/chart-settings/MosaicChartSettings.d.ts.map +1 -1
  113. package/dist/charts/chart-settings/MosaicChartSettings.js +3 -3
  114. package/dist/charts/chart-settings/MosaicChartSettings.js.map +1 -1
  115. package/dist/charts/chart-settings/MosaicChartSettingsPanel.js +1 -1
  116. package/dist/charts/chart-settings/MosaicChartSettingsPanel.js.map +1 -1
  117. package/dist/charts/chart-settings/MosaicChartSpecViewerPanel.d.ts.map +1 -1
  118. package/dist/charts/chart-settings/MosaicChartSpecViewerPanel.js +2 -1
  119. package/dist/charts/chart-settings/MosaicChartSpecViewerPanel.js.map +1 -1
  120. package/dist/charts/chart-settings/MosaicChartTypeSelector.d.ts.map +1 -1
  121. package/dist/charts/chart-settings/MosaicChartTypeSelector.js +3 -3
  122. package/dist/charts/chart-settings/MosaicChartTypeSelector.js.map +1 -1
  123. package/dist/charts/chart-types/base-types.d.ts +40 -25
  124. package/dist/charts/chart-types/base-types.d.ts.map +1 -1
  125. package/dist/charts/chart-types/base-types.js +5 -0
  126. package/dist/charts/chart-types/base-types.js.map +1 -1
  127. package/dist/charts/chart-types/box-plot/definition.d.ts.map +1 -1
  128. package/dist/charts/chart-types/box-plot/definition.js +1 -0
  129. package/dist/charts/chart-types/box-plot/definition.js.map +1 -1
  130. package/dist/charts/chart-types/box-plot/renderer/BoxPlotClient.d.ts +37 -3
  131. package/dist/charts/chart-types/box-plot/renderer/BoxPlotClient.d.ts.map +1 -1
  132. package/dist/charts/chart-types/box-plot/renderer/BoxPlotClient.js +28 -13
  133. package/dist/charts/chart-types/box-plot/renderer/BoxPlotClient.js.map +1 -1
  134. package/dist/charts/chart-types/box-plot/renderer/BoxPlotPanelRenderer.js +2 -2
  135. package/dist/charts/chart-types/box-plot/renderer/BoxPlotPanelRenderer.js.map +1 -1
  136. package/dist/charts/chart-types/box-plot/renderer/useBoxPlotClient.d.ts +12 -1
  137. package/dist/charts/chart-types/box-plot/renderer/useBoxPlotClient.d.ts.map +1 -1
  138. package/dist/charts/chart-types/box-plot/renderer/useBoxPlotClient.js +13 -3
  139. package/dist/charts/chart-types/box-plot/renderer/useBoxPlotClient.js.map +1 -1
  140. package/dist/charts/chart-types/box-plot/tool.d.ts +20 -24
  141. package/dist/charts/chart-types/box-plot/tool.d.ts.map +1 -1
  142. package/dist/charts/chart-types/box-plot/tool.js +25 -33
  143. package/dist/charts/chart-types/box-plot/tool.js.map +1 -1
  144. package/dist/charts/chart-types/box-plot/validation.d.ts +9 -0
  145. package/dist/charts/chart-types/box-plot/validation.d.ts.map +1 -0
  146. package/dist/charts/chart-types/box-plot/validation.js +32 -0
  147. package/dist/charts/chart-types/box-plot/validation.js.map +1 -0
  148. package/dist/charts/chart-types/chart-config.d.ts +3 -1
  149. package/dist/charts/chart-types/chart-config.d.ts.map +1 -1
  150. package/dist/charts/chart-types/chart-config.js +2 -2
  151. package/dist/charts/chart-types/chart-config.js.map +1 -1
  152. package/dist/charts/chart-types/column-types.d.ts +8 -0
  153. package/dist/charts/chart-types/column-types.d.ts.map +1 -0
  154. package/dist/charts/chart-types/column-types.js +2 -0
  155. package/dist/charts/chart-types/column-types.js.map +1 -0
  156. package/dist/charts/chart-types/count-plot/definition.d.ts.map +1 -1
  157. package/dist/charts/chart-types/count-plot/definition.js +1 -0
  158. package/dist/charts/chart-types/count-plot/definition.js.map +1 -1
  159. package/dist/charts/chart-types/count-plot/spec.d.ts +2 -1
  160. package/dist/charts/chart-types/count-plot/spec.d.ts.map +1 -1
  161. package/dist/charts/chart-types/count-plot/spec.js +47 -34
  162. package/dist/charts/chart-types/count-plot/spec.js.map +1 -1
  163. package/dist/charts/chart-types/count-plot/tool.d.ts +19 -24
  164. package/dist/charts/chart-types/count-plot/tool.d.ts.map +1 -1
  165. package/dist/charts/chart-types/count-plot/tool.js +26 -33
  166. package/dist/charts/chart-types/count-plot/tool.js.map +1 -1
  167. package/dist/charts/chart-types/count-plot/validation.d.ts +8 -0
  168. package/dist/charts/chart-types/count-plot/validation.d.ts.map +1 -0
  169. package/dist/charts/chart-types/count-plot/validation.js +20 -0
  170. package/dist/charts/chart-types/count-plot/validation.js.map +1 -0
  171. package/dist/charts/chart-types/createChartInstructions.d.ts +3 -0
  172. package/dist/charts/chart-types/createChartInstructions.d.ts.map +1 -0
  173. package/dist/charts/chart-types/createChartInstructions.js +12 -0
  174. package/dist/charts/chart-types/createChartInstructions.js.map +1 -0
  175. package/dist/charts/chart-types/createChartTools.d.ts +15 -9
  176. package/dist/charts/chart-types/createChartTools.d.ts.map +1 -1
  177. package/dist/charts/chart-types/createChartTools.js +16 -10
  178. package/dist/charts/chart-types/createChartTools.js.map +1 -1
  179. package/dist/charts/chart-types/createDefaultChartTypes.js +2 -2
  180. package/dist/charts/chart-types/createDefaultChartTypes.js.map +1 -1
  181. package/dist/charts/chart-types/custom-spec/definition.d.ts.map +1 -1
  182. package/dist/charts/chart-types/custom-spec/definition.js +1 -0
  183. package/dist/charts/chart-types/custom-spec/definition.js.map +1 -1
  184. package/dist/charts/chart-types/custom-spec/spec.d.ts +2 -1
  185. package/dist/charts/chart-types/custom-spec/spec.d.ts.map +1 -1
  186. package/dist/charts/chart-types/custom-spec/spec.js +16 -12
  187. package/dist/charts/chart-types/custom-spec/spec.js.map +1 -1
  188. package/dist/charts/chart-types/errors.d.ts +35 -0
  189. package/dist/charts/chart-types/errors.d.ts.map +1 -1
  190. package/dist/charts/chart-types/errors.js +56 -0
  191. package/dist/charts/chart-types/errors.js.map +1 -1
  192. package/dist/charts/chart-types/heatmap/definition.d.ts.map +1 -1
  193. package/dist/charts/chart-types/heatmap/definition.js +1 -0
  194. package/dist/charts/chart-types/heatmap/definition.js.map +1 -1
  195. package/dist/charts/chart-types/heatmap/spec.d.ts +2 -1
  196. package/dist/charts/chart-types/heatmap/spec.d.ts.map +1 -1
  197. package/dist/charts/chart-types/heatmap/spec.js +21 -21
  198. package/dist/charts/chart-types/heatmap/spec.js.map +1 -1
  199. package/dist/charts/chart-types/heatmap/tool.d.ts +20 -24
  200. package/dist/charts/chart-types/heatmap/tool.d.ts.map +1 -1
  201. package/dist/charts/chart-types/heatmap/tool.js +27 -37
  202. package/dist/charts/chart-types/heatmap/tool.js.map +1 -1
  203. package/dist/charts/chart-types/heatmap/validation.d.ts +9 -0
  204. package/dist/charts/chart-types/heatmap/validation.d.ts.map +1 -0
  205. package/dist/charts/chart-types/heatmap/validation.js +34 -0
  206. package/dist/charts/chart-types/heatmap/validation.js.map +1 -0
  207. package/dist/charts/chart-types/histogram/HistogramSettings.d.ts.map +1 -1
  208. package/dist/charts/chart-types/histogram/HistogramSettings.js +3 -1
  209. package/dist/charts/chart-types/histogram/HistogramSettings.js.map +1 -1
  210. package/dist/charts/chart-types/histogram/definition.d.ts.map +1 -1
  211. package/dist/charts/chart-types/histogram/definition.js +1 -0
  212. package/dist/charts/chart-types/histogram/definition.js.map +1 -1
  213. package/dist/charts/chart-types/histogram/schema.d.ts +2 -0
  214. package/dist/charts/chart-types/histogram/schema.d.ts.map +1 -1
  215. package/dist/charts/chart-types/histogram/schema.js +1 -0
  216. package/dist/charts/chart-types/histogram/schema.js.map +1 -1
  217. package/dist/charts/chart-types/histogram/spec.d.ts +2 -1
  218. package/dist/charts/chart-types/histogram/spec.d.ts.map +1 -1
  219. package/dist/charts/chart-types/histogram/spec.js +31 -28
  220. package/dist/charts/chart-types/histogram/spec.js.map +1 -1
  221. package/dist/charts/chart-types/histogram/tool.d.ts +39 -24
  222. package/dist/charts/chart-types/histogram/tool.d.ts.map +1 -1
  223. package/dist/charts/chart-types/histogram/tool.js +39 -33
  224. package/dist/charts/chart-types/histogram/tool.js.map +1 -1
  225. package/dist/charts/chart-types/histogram/validation.d.ts +9 -0
  226. package/dist/charts/chart-types/histogram/validation.d.ts.map +1 -0
  227. package/dist/charts/chart-types/histogram/validation.js +22 -0
  228. package/dist/charts/chart-types/histogram/validation.js.map +1 -0
  229. package/dist/charts/chart-types/index.d.ts +5 -11
  230. package/dist/charts/chart-types/index.d.ts.map +1 -1
  231. package/dist/charts/chart-types/index.js +6 -12
  232. package/dist/charts/chart-types/index.js.map +1 -1
  233. package/dist/charts/chart-types/line-chart/LineChartSettings.d.ts.map +1 -1
  234. package/dist/charts/chart-types/line-chart/LineChartSettings.js +4 -13
  235. package/dist/charts/chart-types/line-chart/LineChartSettings.js.map +1 -1
  236. package/dist/charts/chart-types/line-chart/LineChartXFieldSelector.d.ts +7 -0
  237. package/dist/charts/chart-types/line-chart/LineChartXFieldSelector.d.ts.map +1 -0
  238. package/dist/charts/chart-types/line-chart/LineChartXFieldSelector.js +22 -0
  239. package/dist/charts/chart-types/line-chart/LineChartXFieldSelector.js.map +1 -0
  240. package/dist/charts/chart-types/line-chart/LineChartYFieldsSelector.d.ts +7 -0
  241. package/dist/charts/chart-types/line-chart/LineChartYFieldsSelector.d.ts.map +1 -0
  242. package/dist/charts/chart-types/line-chart/LineChartYFieldsSelector.js +42 -0
  243. package/dist/charts/chart-types/line-chart/LineChartYFieldsSelector.js.map +1 -0
  244. package/dist/charts/chart-types/line-chart/definition.d.ts.map +1 -1
  245. package/dist/charts/chart-types/line-chart/definition.js +1 -0
  246. package/dist/charts/chart-types/line-chart/definition.js.map +1 -1
  247. package/dist/charts/chart-types/line-chart/schema.d.ts +2 -0
  248. package/dist/charts/chart-types/line-chart/schema.d.ts.map +1 -1
  249. package/dist/charts/chart-types/line-chart/schema.js +5 -0
  250. package/dist/charts/chart-types/line-chart/schema.js.map +1 -1
  251. package/dist/charts/chart-types/line-chart/spec.d.ts +2 -1
  252. package/dist/charts/chart-types/line-chart/spec.d.ts.map +1 -1
  253. package/dist/charts/chart-types/line-chart/spec.js +56 -65
  254. package/dist/charts/chart-types/line-chart/spec.js.map +1 -1
  255. package/dist/charts/chart-types/line-chart/tool.d.ts +28 -24
  256. package/dist/charts/chart-types/line-chart/tool.d.ts.map +1 -1
  257. package/dist/charts/chart-types/line-chart/tool.js +27 -39
  258. package/dist/charts/chart-types/line-chart/tool.js.map +1 -1
  259. package/dist/charts/chart-types/line-chart/utils.d.ts +7 -0
  260. package/dist/charts/chart-types/line-chart/utils.d.ts.map +1 -0
  261. package/dist/charts/chart-types/line-chart/utils.js +17 -0
  262. package/dist/charts/chart-types/line-chart/utils.js.map +1 -0
  263. package/dist/charts/chart-types/line-chart/validation.d.ts +16 -0
  264. package/dist/charts/chart-types/line-chart/validation.d.ts.map +1 -0
  265. package/dist/charts/chart-types/line-chart/validation.js +43 -0
  266. package/dist/charts/chart-types/line-chart/validation.js.map +1 -0
  267. package/dist/charts/chart-types/mosaicChartTypes.d.ts +4 -2
  268. package/dist/charts/chart-types/mosaicChartTypes.d.ts.map +1 -1
  269. package/dist/charts/chart-types/mosaicChartTypes.js +2 -2
  270. package/dist/charts/chart-types/mosaicChartTypes.js.map +1 -1
  271. package/dist/charts/chart-types/resolveChartTypes.d.ts +3 -0
  272. package/dist/charts/chart-types/resolveChartTypes.d.ts.map +1 -0
  273. package/dist/charts/chart-types/resolveChartTypes.js +8 -0
  274. package/dist/charts/chart-types/resolveChartTypes.js.map +1 -0
  275. package/dist/charts/chart-types/scatter-plot/ScatterPlotSettings.d.ts +3 -0
  276. package/dist/charts/chart-types/scatter-plot/ScatterPlotSettings.d.ts.map +1 -0
  277. package/dist/charts/chart-types/{bubble-chart/BubbleChartSettings.js → scatter-plot/ScatterPlotSettings.js} +4 -4
  278. package/dist/charts/chart-types/scatter-plot/ScatterPlotSettings.js.map +1 -0
  279. package/dist/charts/chart-types/scatter-plot/definition.d.ts +4 -0
  280. package/dist/charts/chart-types/scatter-plot/definition.d.ts.map +1 -0
  281. package/dist/charts/chart-types/scatter-plot/definition.js +25 -0
  282. package/dist/charts/chart-types/scatter-plot/definition.js.map +1 -0
  283. package/dist/charts/chart-types/{bubble-chart → scatter-plot}/schema.d.ts +5 -5
  284. package/dist/charts/chart-types/scatter-plot/schema.d.ts.map +1 -0
  285. package/dist/charts/chart-types/{bubble-chart → scatter-plot}/schema.js +5 -5
  286. package/dist/charts/chart-types/scatter-plot/schema.js.map +1 -0
  287. package/dist/charts/chart-types/scatter-plot/spec.d.ts +5 -0
  288. package/dist/charts/chart-types/scatter-plot/spec.d.ts.map +1 -0
  289. package/dist/charts/chart-types/scatter-plot/spec.js +37 -0
  290. package/dist/charts/chart-types/scatter-plot/spec.js.map +1 -0
  291. package/dist/charts/chart-types/scatter-plot/tool.d.ts +39 -0
  292. package/dist/charts/chart-types/scatter-plot/tool.d.ts.map +1 -0
  293. package/dist/charts/chart-types/scatter-plot/tool.js +57 -0
  294. package/dist/charts/chart-types/scatter-plot/tool.js.map +1 -0
  295. package/dist/charts/chart-types/scatter-plot/validation.d.ts +13 -0
  296. package/dist/charts/chart-types/scatter-plot/validation.d.ts.map +1 -0
  297. package/dist/charts/chart-types/scatter-plot/validation.js +52 -0
  298. package/dist/charts/chart-types/scatter-plot/validation.js.map +1 -0
  299. package/dist/charts/chart-types/tool-types.d.ts +43 -0
  300. package/dist/charts/chart-types/tool-types.d.ts.map +1 -0
  301. package/dist/charts/chart-types/tool-types.js +2 -0
  302. package/dist/charts/chart-types/tool-types.js.map +1 -0
  303. package/dist/charts/chart-types/utils.d.ts +3 -0
  304. package/dist/charts/chart-types/utils.d.ts.map +1 -0
  305. package/dist/charts/chart-types/utils.js +4 -0
  306. package/dist/charts/chart-types/utils.js.map +1 -0
  307. package/dist/charts/dashboard/MosaicDashboardChartHeaderActions.d.ts.map +1 -1
  308. package/dist/charts/dashboard/MosaicDashboardChartHeaderActions.js +12 -5
  309. package/dist/charts/dashboard/MosaicDashboardChartHeaderActions.js.map +1 -1
  310. package/dist/charts/dashboard/MosaicDashboardChartRenderer.d.ts.map +1 -1
  311. package/dist/charts/dashboard/MosaicDashboardChartRenderer.js +6 -4
  312. package/dist/charts/dashboard/MosaicDashboardChartRenderer.js.map +1 -1
  313. package/dist/charts/useChartDataPolicy.d.ts.map +1 -1
  314. package/dist/charts/useChartDataPolicy.js +2 -1
  315. package/dist/charts/useChartDataPolicy.js.map +1 -1
  316. package/dist/charts/useChartPanelClients.d.ts +8 -0
  317. package/dist/charts/useChartPanelClients.d.ts.map +1 -0
  318. package/dist/charts/useChartPanelClients.js +22 -0
  319. package/dist/charts/useChartPanelClients.js.map +1 -0
  320. package/dist/charts/useMosaicChartRenderContext.d.ts +2 -3
  321. package/dist/charts/useMosaicChartRenderContext.d.ts.map +1 -1
  322. package/dist/charts/useMosaicChartRenderContext.js +15 -15
  323. package/dist/charts/useMosaicChartRenderContext.js.map +1 -1
  324. package/dist/charts/worksheet/ChartBlockHeader.d.ts.map +1 -1
  325. package/dist/charts/worksheet/ChartBlockHeader.js +4 -3
  326. package/dist/charts/worksheet/ChartBlockHeader.js.map +1 -1
  327. package/dist/charts/worksheet/ChartBlockRenderer.d.ts.map +1 -1
  328. package/dist/charts/worksheet/ChartBlockRenderer.js +3 -13
  329. package/dist/charts/worksheet/ChartBlockRenderer.js.map +1 -1
  330. package/dist/column-types-utils.d.ts.map +1 -1
  331. package/dist/column-types-utils.js +12 -4
  332. package/dist/column-types-utils.js.map +1 -1
  333. package/dist/components/AggregationSelector.d.ts.map +1 -1
  334. package/dist/components/AggregationSelector.js +9 -2
  335. package/dist/components/AggregationSelector.js.map +1 -1
  336. package/dist/components/BlockCaptionEditor.d.ts +20 -0
  337. package/dist/components/BlockCaptionEditor.d.ts.map +1 -0
  338. package/dist/components/BlockCaptionEditor.js +15 -0
  339. package/dist/components/BlockCaptionEditor.js.map +1 -0
  340. package/dist/components/ColorSelector.d.ts +12 -0
  341. package/dist/components/ColorSelector.d.ts.map +1 -0
  342. package/dist/components/ColorSelector.js +13 -0
  343. package/dist/components/ColorSelector.js.map +1 -0
  344. package/dist/components/ColumnSelector.d.ts +1 -0
  345. package/dist/components/ColumnSelector.d.ts.map +1 -1
  346. package/dist/components/ColumnSelector.js +2 -2
  347. package/dist/components/ColumnSelector.js.map +1 -1
  348. package/dist/components/FieldSelectorInput.d.ts +1 -0
  349. package/dist/components/FieldSelectorInput.d.ts.map +1 -1
  350. package/dist/components/FieldSelectorInput.js +4 -9
  351. package/dist/components/FieldSelectorInput.js.map +1 -1
  352. package/dist/components/MultiFieldSelector.d.ts +4 -1
  353. package/dist/components/MultiFieldSelector.d.ts.map +1 -1
  354. package/dist/components/MultiFieldSelector.js +4 -13
  355. package/dist/components/MultiFieldSelector.js.map +1 -1
  356. package/dist/components/TemporalGranularitySelector.d.ts.map +1 -1
  357. package/dist/components/TemporalGranularitySelector.js +13 -9
  358. package/dist/components/TemporalGranularitySelector.js.map +1 -1
  359. package/dist/constants/chart-colors.d.ts +3 -0
  360. package/dist/constants/chart-colors.d.ts.map +1 -0
  361. package/dist/constants/chart-colors.js +5 -0
  362. package/dist/constants/chart-colors.js.map +1 -0
  363. package/dist/dashboard/DefaultMosaicDashboardBlock.d.ts +2 -1
  364. package/dist/dashboard/DefaultMosaicDashboardBlock.d.ts.map +1 -1
  365. package/dist/dashboard/DefaultMosaicDashboardBlock.js +1 -1
  366. package/dist/dashboard/DefaultMosaicDashboardBlock.js.map +1 -1
  367. package/dist/dashboard/MosaicDashboardCommands.d.ts +19 -0
  368. package/dist/dashboard/MosaicDashboardCommands.d.ts.map +1 -0
  369. package/dist/dashboard/MosaicDashboardCommands.js +226 -0
  370. package/dist/dashboard/MosaicDashboardCommands.js.map +1 -0
  371. package/dist/dashboard/MosaicDashboardSlice.d.ts +22 -4
  372. package/dist/dashboard/MosaicDashboardSlice.d.ts.map +1 -1
  373. package/dist/dashboard/MosaicDashboardSlice.js +55 -0
  374. package/dist/dashboard/MosaicDashboardSlice.js.map +1 -1
  375. package/dist/dashboard/components/ResetFiltersButton.d.ts +14 -0
  376. package/dist/dashboard/components/ResetFiltersButton.d.ts.map +1 -0
  377. package/dist/dashboard/components/ResetFiltersButton.js +15 -0
  378. package/dist/dashboard/components/ResetFiltersButton.js.map +1 -0
  379. package/dist/dashboard/dashboard-types.d.ts +9 -3
  380. package/dist/dashboard/dashboard-types.d.ts.map +1 -1
  381. package/dist/dashboard/dashboard-types.js.map +1 -1
  382. package/dist/dashboard/hooks/useDashboardResetFilters.d.ts +14 -0
  383. package/dist/dashboard/hooks/useDashboardResetFilters.d.ts.map +1 -0
  384. package/dist/dashboard/hooks/useDashboardResetFilters.js +39 -0
  385. package/dist/dashboard/hooks/useDashboardResetFilters.js.map +1 -0
  386. package/dist/dashboard/hooks/usePanelResetFilters.d.ts +16 -0
  387. package/dist/dashboard/hooks/usePanelResetFilters.d.ts.map +1 -0
  388. package/dist/dashboard/hooks/usePanelResetFilters.js +47 -0
  389. package/dist/dashboard/hooks/usePanelResetFilters.js.map +1 -0
  390. package/dist/dashboard/panel/MosaicDashboardPanel.d.ts.map +1 -1
  391. package/dist/dashboard/panel/MosaicDashboardPanel.js +1 -1
  392. package/dist/dashboard/panel/MosaicDashboardPanel.js.map +1 -1
  393. package/dist/dashboard/panel/MosaicDashboardPanelLayout.d.ts.map +1 -1
  394. package/dist/dashboard/panel/MosaicDashboardPanelLayout.js +3 -3
  395. package/dist/dashboard/panel/MosaicDashboardPanelLayout.js.map +1 -1
  396. package/dist/dashboard/panel/MosaicDashboardPanels.d.ts.map +1 -1
  397. package/dist/dashboard/panel/MosaicDashboardPanels.js +4 -2
  398. package/dist/dashboard/panel/MosaicDashboardPanels.js.map +1 -1
  399. package/dist/dashboard/toolbar/MosaicDashboardAddPanelDropdown.d.ts.map +1 -1
  400. package/dist/dashboard/toolbar/MosaicDashboardAddPanelDropdown.js +3 -3
  401. package/dist/dashboard/toolbar/MosaicDashboardAddPanelDropdown.js.map +1 -1
  402. package/dist/dashboard/toolbar/MosaicDashboardDataTableSelector.d.ts +7 -0
  403. package/dist/dashboard/toolbar/MosaicDashboardDataTableSelector.d.ts.map +1 -0
  404. package/dist/dashboard/toolbar/MosaicDashboardDataTableSelector.js +18 -0
  405. package/dist/dashboard/toolbar/MosaicDashboardDataTableSelector.js.map +1 -0
  406. package/dist/dashboard/toolbar/MosaicDashboardResetFiltersButton.d.ts.map +1 -1
  407. package/dist/dashboard/toolbar/MosaicDashboardResetFiltersButton.js +4 -32
  408. package/dist/dashboard/toolbar/MosaicDashboardResetFiltersButton.js.map +1 -1
  409. package/dist/dashboard/toolbar/MosaicDashboardToolbar.d.ts +2 -2
  410. package/dist/dashboard/toolbar/MosaicDashboardToolbar.d.ts.map +1 -1
  411. package/dist/dashboard/toolbar/MosaicDashboardToolbar.js +14 -10
  412. package/dist/dashboard/toolbar/MosaicDashboardToolbar.js.map +1 -1
  413. package/dist/dashboard/usePanelClientRegistration.d.ts +7 -0
  414. package/dist/dashboard/usePanelClientRegistration.d.ts.map +1 -0
  415. package/dist/dashboard/usePanelClientRegistration.js +30 -0
  416. package/dist/dashboard/usePanelClientRegistration.js.map +1 -0
  417. package/dist/dashboard/usePanelClients.d.ts +7 -0
  418. package/dist/dashboard/usePanelClients.d.ts.map +1 -0
  419. package/dist/dashboard/usePanelClients.js +13 -0
  420. package/dist/dashboard/usePanelClients.js.map +1 -0
  421. package/dist/dashboard/useSelectedOrFirstTable.d.ts +1 -1
  422. package/dist/dashboard/useSelectedOrFirstTable.d.ts.map +1 -1
  423. package/dist/dashboard/useSelectedOrFirstTable.js +10 -8
  424. package/dist/dashboard/useSelectedOrFirstTable.js.map +1 -1
  425. package/dist/data-table-explorer/DataTableExplorer.d.ts +4 -2
  426. package/dist/data-table-explorer/DataTableExplorer.d.ts.map +1 -1
  427. package/dist/data-table-explorer/DataTableExplorer.js +4 -4
  428. package/dist/data-table-explorer/DataTableExplorer.js.map +1 -1
  429. package/dist/data-table-explorer/DataTableExplorerCategoryClient.d.ts +3 -2
  430. package/dist/data-table-explorer/DataTableExplorerCategoryClient.d.ts.map +1 -1
  431. package/dist/data-table-explorer/DataTableExplorerCategoryClient.js +4 -3
  432. package/dist/data-table-explorer/DataTableExplorerCategoryClient.js.map +1 -1
  433. package/dist/data-table-explorer/DataTableExplorerCountClient.d.ts +3 -1
  434. package/dist/data-table-explorer/DataTableExplorerCountClient.d.ts.map +1 -1
  435. package/dist/data-table-explorer/DataTableExplorerCountClient.js +3 -3
  436. package/dist/data-table-explorer/DataTableExplorerCountClient.js.map +1 -1
  437. package/dist/data-table-explorer/DataTableExplorerHistogramClient.d.ts +3 -2
  438. package/dist/data-table-explorer/DataTableExplorerHistogramClient.d.ts.map +1 -1
  439. package/dist/data-table-explorer/DataTableExplorerHistogramClient.js +4 -4
  440. package/dist/data-table-explorer/DataTableExplorerHistogramClient.js.map +1 -1
  441. package/dist/data-table-explorer/DataTableExplorerPageClient.d.ts +3 -1
  442. package/dist/data-table-explorer/DataTableExplorerPageClient.d.ts.map +1 -1
  443. package/dist/data-table-explorer/DataTableExplorerPageClient.js +3 -1
  444. package/dist/data-table-explorer/DataTableExplorerPageClient.js.map +1 -1
  445. package/dist/data-table-explorer/DataTableExplorerUnsupportedSummaryClient.d.ts +3 -2
  446. package/dist/data-table-explorer/DataTableExplorerUnsupportedSummaryClient.d.ts.map +1 -1
  447. package/dist/data-table-explorer/DataTableExplorerUnsupportedSummaryClient.js +3 -3
  448. package/dist/data-table-explorer/DataTableExplorerUnsupportedSummaryClient.js.map +1 -1
  449. package/dist/data-table-explorer/createDataTableExplorerStore.d.ts +3 -0
  450. package/dist/data-table-explorer/createDataTableExplorerStore.d.ts.map +1 -1
  451. package/dist/data-table-explorer/createDataTableExplorerStore.js +6 -0
  452. package/dist/data-table-explorer/createDataTableExplorerStore.js.map +1 -1
  453. package/dist/data-table-explorer/dashboard/MosaicDashboardDataTableExplorerHeaderActions.d.ts +4 -0
  454. package/dist/data-table-explorer/dashboard/MosaicDashboardDataTableExplorerHeaderActions.d.ts.map +1 -0
  455. package/dist/data-table-explorer/dashboard/MosaicDashboardDataTableExplorerHeaderActions.js +13 -0
  456. package/dist/data-table-explorer/dashboard/MosaicDashboardDataTableExplorerHeaderActions.js.map +1 -0
  457. package/dist/data-table-explorer/dashboard/MosaicDashboardDataTableExplorerPanelRenderer.d.ts.map +1 -1
  458. package/dist/data-table-explorer/dashboard/MosaicDashboardDataTableExplorerPanelRenderer.js +26 -8
  459. package/dist/data-table-explorer/dashboard/MosaicDashboardDataTableExplorerPanelRenderer.js.map +1 -1
  460. package/dist/data-table-explorer/dashboard/useDataTableExplorerPanelClients.d.ts +13 -0
  461. package/dist/data-table-explorer/dashboard/useDataTableExplorerPanelClients.d.ts.map +1 -0
  462. package/dist/data-table-explorer/dashboard/useDataTableExplorerPanelClients.js +32 -0
  463. package/dist/data-table-explorer/dashboard/useDataTableExplorerPanelClients.js.map +1 -0
  464. package/dist/data-table-explorer/dataTableExplorerController.d.ts +63 -3
  465. package/dist/data-table-explorer/dataTableExplorerController.d.ts.map +1 -1
  466. package/dist/data-table-explorer/dataTableExplorerController.js +73 -10
  467. package/dist/data-table-explorer/dataTableExplorerController.js.map +1 -1
  468. package/dist/data-table-explorer/hooks/useDataTableExplorerColumns.d.ts +12 -0
  469. package/dist/data-table-explorer/hooks/useDataTableExplorerColumns.d.ts.map +1 -0
  470. package/dist/data-table-explorer/hooks/useDataTableExplorerColumns.js +19 -0
  471. package/dist/data-table-explorer/hooks/useDataTableExplorerColumns.js.map +1 -0
  472. package/dist/data-table-explorer/hooks/useDataTableExplorerLifecycles.d.ts +52 -0
  473. package/dist/data-table-explorer/hooks/useDataTableExplorerLifecycles.d.ts.map +1 -0
  474. package/dist/data-table-explorer/hooks/useDataTableExplorerLifecycles.js +153 -0
  475. package/dist/data-table-explorer/hooks/useDataTableExplorerLifecycles.js.map +1 -0
  476. package/dist/data-table-explorer/hooks/useDataTableExplorerQueryState.d.ts +42 -0
  477. package/dist/data-table-explorer/hooks/useDataTableExplorerQueryState.d.ts.map +1 -0
  478. package/dist/data-table-explorer/hooks/useDataTableExplorerQueryState.js +43 -0
  479. package/dist/data-table-explorer/hooks/useDataTableExplorerQueryState.js.map +1 -0
  480. package/dist/data-table-explorer/hooks/useDataTableExplorerSelection.d.ts +13 -0
  481. package/dist/data-table-explorer/hooks/useDataTableExplorerSelection.d.ts.map +1 -0
  482. package/dist/data-table-explorer/hooks/useDataTableExplorerSelection.js +40 -0
  483. package/dist/data-table-explorer/hooks/useDataTableExplorerSelection.js.map +1 -0
  484. package/dist/data-table-explorer/hooks/useDataTableExplorerStatus.d.ts +18 -0
  485. package/dist/data-table-explorer/hooks/useDataTableExplorerStatus.d.ts.map +1 -0
  486. package/dist/data-table-explorer/hooks/useDataTableExplorerStatus.js +23 -0
  487. package/dist/data-table-explorer/hooks/useDataTableExplorerStatus.js.map +1 -0
  488. package/dist/data-table-explorer/hooks/useDataTableExplorerStoreState.d.ts +27 -0
  489. package/dist/data-table-explorer/hooks/useDataTableExplorerStoreState.d.ts.map +1 -0
  490. package/dist/data-table-explorer/hooks/useDataTableExplorerStoreState.js +28 -0
  491. package/dist/data-table-explorer/hooks/useDataTableExplorerStoreState.js.map +1 -0
  492. package/dist/data-table-explorer/hooks/useDataTableExplorerVisiblePage.d.ts +15 -0
  493. package/dist/data-table-explorer/hooks/useDataTableExplorerVisiblePage.d.ts.map +1 -0
  494. package/dist/data-table-explorer/hooks/useDataTableExplorerVisiblePage.js +21 -0
  495. package/dist/data-table-explorer/hooks/useDataTableExplorerVisiblePage.js.map +1 -0
  496. package/dist/data-table-explorer/types.d.ts +16 -3
  497. package/dist/data-table-explorer/types.d.ts.map +1 -1
  498. package/dist/data-table-explorer/types.js.map +1 -1
  499. package/dist/data-table-explorer/useDataTableExplorer.d.ts.map +1 -1
  500. package/dist/data-table-explorer/useDataTableExplorer.js +20 -279
  501. package/dist/data-table-explorer/useDataTableExplorer.js.map +1 -1
  502. package/dist/data-table-explorer/utils.d.ts +64 -6
  503. package/dist/data-table-explorer/utils.d.ts.map +1 -1
  504. package/dist/data-table-explorer/utils.js +58 -0
  505. package/dist/data-table-explorer/utils.js.map +1 -1
  506. package/dist/data-table-explorer/worksheet/DataTableBlockHeader.d.ts +1 -0
  507. package/dist/data-table-explorer/worksheet/DataTableBlockHeader.d.ts.map +1 -1
  508. package/dist/data-table-explorer/worksheet/DataTableBlockHeader.js +4 -2
  509. package/dist/data-table-explorer/worksheet/DataTableBlockHeader.js.map +1 -1
  510. package/dist/data-table-explorer/worksheet/DataTableBlockRenderer.d.ts.map +1 -1
  511. package/dist/data-table-explorer/worksheet/DataTableBlockRenderer.js +4 -4
  512. package/dist/data-table-explorer/worksheet/DataTableBlockRenderer.js.map +1 -1
  513. package/dist/index.d.ts +55 -31
  514. package/dist/index.d.ts.map +1 -1
  515. package/dist/index.js +86 -26
  516. package/dist/index.js.map +1 -1
  517. package/dist/mosaicTableReference.d.ts +59 -0
  518. package/dist/mosaicTableReference.d.ts.map +1 -0
  519. package/dist/mosaicTableReference.js +68 -0
  520. package/dist/mosaicTableReference.js.map +1 -0
  521. package/dist/useVgPlotChartRender.d.ts.map +1 -1
  522. package/dist/useVgPlotChartRender.js +151 -25
  523. package/dist/useVgPlotChartRender.js.map +1 -1
  524. package/dist/useVgPlotChartRetention.d.ts +11 -0
  525. package/dist/useVgPlotChartRetention.d.ts.map +1 -1
  526. package/dist/useVgPlotChartRetention.js.map +1 -1
  527. package/dist/utils/table-lookup.d.ts +7 -0
  528. package/dist/utils/table-lookup.d.ts.map +1 -0
  529. package/dist/utils/table-lookup.js +10 -0
  530. package/dist/utils/table-lookup.js.map +1 -0
  531. package/package.json +14 -14
  532. package/dist/ai/ai.d.ts +0 -103
  533. package/dist/ai/ai.d.ts.map +0 -1
  534. package/dist/ai/ai.js +0 -419
  535. package/dist/ai/ai.js.map +0 -1
  536. package/dist/ai/data-table-explorer-tool.d.ts +0 -40
  537. package/dist/ai/data-table-explorer-tool.d.ts.map +0 -1
  538. package/dist/ai/data-table-explorer-tool.js +0 -75
  539. package/dist/ai/data-table-explorer-tool.js.map +0 -1
  540. package/dist/ai/list-panels-tool.d.ts +0 -35
  541. package/dist/ai/list-panels-tool.d.ts.map +0 -1
  542. package/dist/ai/list-panels-tool.js +0 -66
  543. package/dist/ai/list-panels-tool.js.map +0 -1
  544. package/dist/ai/remove-panel-tool.d.ts +0 -31
  545. package/dist/ai/remove-panel-tool.d.ts.map +0 -1
  546. package/dist/ai/remove-panel-tool.js +0 -55
  547. package/dist/ai/remove-panel-tool.js.map +0 -1
  548. package/dist/ai/tool-validation.d.ts +0 -3
  549. package/dist/ai/tool-validation.d.ts.map +0 -1
  550. package/dist/ai/tool-validation.js +0 -11
  551. package/dist/ai/tool-validation.js.map +0 -1
  552. package/dist/charts/chart-types/bubble-chart/BubbleChartSettings.d.ts +0 -3
  553. package/dist/charts/chart-types/bubble-chart/BubbleChartSettings.d.ts.map +0 -1
  554. package/dist/charts/chart-types/bubble-chart/BubbleChartSettings.js.map +0 -1
  555. package/dist/charts/chart-types/bubble-chart/definition.d.ts +0 -4
  556. package/dist/charts/chart-types/bubble-chart/definition.d.ts.map +0 -1
  557. package/dist/charts/chart-types/bubble-chart/definition.js +0 -24
  558. package/dist/charts/chart-types/bubble-chart/definition.js.map +0 -1
  559. package/dist/charts/chart-types/bubble-chart/schema.d.ts.map +0 -1
  560. package/dist/charts/chart-types/bubble-chart/schema.js.map +0 -1
  561. package/dist/charts/chart-types/bubble-chart/spec.d.ts +0 -4
  562. package/dist/charts/chart-types/bubble-chart/spec.d.ts.map +0 -1
  563. package/dist/charts/chart-types/bubble-chart/spec.js +0 -31
  564. package/dist/charts/chart-types/bubble-chart/spec.js.map +0 -1
  565. package/dist/charts/chart-types/bubble-chart/tool.d.ts +0 -42
  566. package/dist/charts/chart-types/bubble-chart/tool.d.ts.map +0 -1
  567. package/dist/charts/chart-types/bubble-chart/tool.js +0 -66
  568. package/dist/charts/chart-types/bubble-chart/tool.js.map +0 -1
  569. package/dist/hooks/useDataTable.d.ts +0 -3
  570. package/dist/hooks/useDataTable.d.ts.map +0 -1
  571. package/dist/hooks/useDataTable.js +0 -28
  572. package/dist/hooks/useDataTable.js.map +0 -1
@@ -4,4 +4,39 @@
4
4
  export declare class ChartSpecError extends Error {
5
5
  constructor(message: string);
6
6
  }
7
+ /**
8
+ * Error thrown when required chart configuration fields are missing.
9
+ * Used during chart validation to indicate which fields must be provided.
10
+ */
11
+ export declare class RequiredFieldsError extends ChartSpecError {
12
+ readonly fieldNames: string[];
13
+ constructor(fieldNames: string | string[]);
14
+ }
15
+ /**
16
+ * Error thrown when chart configuration references columns that don't exist in the data table.
17
+ * Used during chart validation to indicate which columns could not be found.
18
+ */
19
+ export declare class MissingColumnsError extends ChartSpecError {
20
+ readonly columnNames: string[];
21
+ constructor(columnNames: string | string[]);
22
+ }
23
+ /**
24
+ * Error thrown when chart configuration uses columns with incompatible data types.
25
+ * Used during chart validation to indicate which columns have invalid types and what type is expected.
26
+ */
27
+ export declare class InvalidColumnTypeError extends ChartSpecError {
28
+ readonly columnNames: string[];
29
+ readonly expectedType: string;
30
+ constructor(columnNames: string[] | string, expectedType: string);
31
+ }
32
+ /**
33
+ * Error thrown when attempting to create a chart that would render too many data points.
34
+ * Used to prevent browser crashes from non-aggregated charts on large datasets.
35
+ */
36
+ export declare class TooMuchDataError extends ChartSpecError {
37
+ readonly chartType: string;
38
+ readonly rowCount: number;
39
+ readonly maxDataPoints: number;
40
+ constructor(chartType: string, rowCount: number, maxDataPoints: number);
41
+ }
7
42
  //# sourceMappingURL=errors.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"errors.d.ts","sourceRoot":"","sources":["../../../src/charts/chart-types/errors.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,qBAAa,cAAe,SAAQ,KAAK;gBAC3B,OAAO,EAAE,MAAM;CAI5B"}
1
+ {"version":3,"file":"errors.d.ts","sourceRoot":"","sources":["../../../src/charts/chart-types/errors.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,qBAAa,cAAe,SAAQ,KAAK;gBAC3B,OAAO,EAAE,MAAM;CAI5B;AAED;;;GAGG;AACH,qBAAa,mBAAoB,SAAQ,cAAc;IACrD,QAAQ,CAAC,UAAU,EAAE,MAAM,EAAE,CAAC;gBAElB,UAAU,EAAE,MAAM,GAAG,MAAM,EAAE;CAM1C;AAED;;;GAGG;AACH,qBAAa,mBAAoB,SAAQ,cAAc;IACrD,QAAQ,CAAC,WAAW,EAAE,MAAM,EAAE,CAAC;gBAEnB,WAAW,EAAE,MAAM,GAAG,MAAM,EAAE;CAM3C;AAED;;;GAGG;AACH,qBAAa,sBAAuB,SAAQ,cAAc;IACxD,QAAQ,CAAC,WAAW,EAAE,MAAM,EAAE,CAAC;IAC/B,QAAQ,CAAC,YAAY,EAAE,MAAM,CAAC;gBAElB,WAAW,EAAE,MAAM,EAAE,GAAG,MAAM,EAAE,YAAY,EAAE,MAAM;CAQjE;AAED;;;GAGG;AACH,qBAAa,gBAAiB,SAAQ,cAAc;IAClD,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,aAAa,EAAE,MAAM,CAAC;gBAEnB,SAAS,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,aAAa,EAAE,MAAM;CAYvE"}
@@ -7,4 +7,60 @@ export class ChartSpecError extends Error {
7
7
  this.name = 'ChartSpecError';
8
8
  }
9
9
  }
10
+ /**
11
+ * Error thrown when required chart configuration fields are missing.
12
+ * Used during chart validation to indicate which fields must be provided.
13
+ */
14
+ export class RequiredFieldsError extends ChartSpecError {
15
+ fieldNames;
16
+ constructor(fieldNames) {
17
+ super('Required fields are missing');
18
+ this.fieldNames = Array.isArray(fieldNames) ? fieldNames : [fieldNames];
19
+ this.name = 'RequiredFieldsError';
20
+ }
21
+ }
22
+ /**
23
+ * Error thrown when chart configuration references columns that don't exist in the data table.
24
+ * Used during chart validation to indicate which columns could not be found.
25
+ */
26
+ export class MissingColumnsError extends ChartSpecError {
27
+ columnNames;
28
+ constructor(columnNames) {
29
+ super('Columns not found in data table');
30
+ this.columnNames = Array.isArray(columnNames) ? columnNames : [columnNames];
31
+ this.name = 'MissingColumnsError';
32
+ }
33
+ }
34
+ /**
35
+ * Error thrown when chart configuration uses columns with incompatible data types.
36
+ * Used during chart validation to indicate which columns have invalid types and what type is expected.
37
+ */
38
+ export class InvalidColumnTypeError extends ChartSpecError {
39
+ columnNames;
40
+ expectedType;
41
+ constructor(columnNames, expectedType) {
42
+ super('Invalid column type');
43
+ this.columnNames = Array.isArray(columnNames) ? columnNames : [columnNames];
44
+ this.expectedType = expectedType;
45
+ this.name = 'InvalidColumnTypeError';
46
+ }
47
+ }
48
+ /**
49
+ * Error thrown when attempting to create a chart that would render too many data points.
50
+ * Used to prevent browser crashes from non-aggregated charts on large datasets.
51
+ */
52
+ export class TooMuchDataError extends ChartSpecError {
53
+ chartType;
54
+ rowCount;
55
+ maxDataPoints;
56
+ constructor(chartType, rowCount, maxDataPoints) {
57
+ super(`Cannot create ${chartType} with ${rowCount.toLocaleString()} rows. ` +
58
+ `This chart type renders individual data points and is limited to ${maxDataPoints.toLocaleString()} rows. ` +
59
+ `Use an aggregated visualization instead (histogram, heatmap, or line chart with time intervals).`);
60
+ this.chartType = chartType;
61
+ this.rowCount = rowCount;
62
+ this.maxDataPoints = maxDataPoints;
63
+ this.name = 'TooMuchDataError';
64
+ }
65
+ }
10
66
  //# sourceMappingURL=errors.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"errors.js","sourceRoot":"","sources":["../../../src/charts/chart-types/errors.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,MAAM,OAAO,cAAe,SAAQ,KAAK;IACvC,YAAY,OAAe;QACzB,KAAK,CAAC,OAAO,CAAC,CAAC;QACf,IAAI,CAAC,IAAI,GAAG,gBAAgB,CAAC;IAC/B,CAAC;CACF","sourcesContent":["/**\n * Base error class for chart specification generation errors.\n */\nexport class ChartSpecError extends Error {\n constructor(message: string) {\n super(message);\n this.name = 'ChartSpecError';\n }\n}\n"]}
1
+ {"version":3,"file":"errors.js","sourceRoot":"","sources":["../../../src/charts/chart-types/errors.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,MAAM,OAAO,cAAe,SAAQ,KAAK;IACvC,YAAY,OAAe;QACzB,KAAK,CAAC,OAAO,CAAC,CAAC;QACf,IAAI,CAAC,IAAI,GAAG,gBAAgB,CAAC;IAC/B,CAAC;CACF;AAED;;;GAGG;AACH,MAAM,OAAO,mBAAoB,SAAQ,cAAc;IAC5C,UAAU,CAAW;IAE9B,YAAY,UAA6B;QACvC,KAAK,CAAC,6BAA6B,CAAC,CAAC;QAErC,IAAI,CAAC,UAAU,GAAG,KAAK,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC;QACxE,IAAI,CAAC,IAAI,GAAG,qBAAqB,CAAC;IACpC,CAAC;CACF;AAED;;;GAGG;AACH,MAAM,OAAO,mBAAoB,SAAQ,cAAc;IAC5C,WAAW,CAAW;IAE/B,YAAY,WAA8B;QACxC,KAAK,CAAC,iCAAiC,CAAC,CAAC;QAEzC,IAAI,CAAC,WAAW,GAAG,KAAK,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC;QAC5E,IAAI,CAAC,IAAI,GAAG,qBAAqB,CAAC;IACpC,CAAC;CACF;AAED;;;GAGG;AACH,MAAM,OAAO,sBAAuB,SAAQ,cAAc;IAC/C,WAAW,CAAW;IACtB,YAAY,CAAS;IAE9B,YAAY,WAA8B,EAAE,YAAoB;QAC9D,KAAK,CAAC,qBAAqB,CAAC,CAAC;QAE7B,IAAI,CAAC,WAAW,GAAG,KAAK,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC;QAC5E,IAAI,CAAC,YAAY,GAAG,YAAY,CAAC;QAEjC,IAAI,CAAC,IAAI,GAAG,wBAAwB,CAAC;IACvC,CAAC;CACF;AAED;;;GAGG;AACH,MAAM,OAAO,gBAAiB,SAAQ,cAAc;IACzC,SAAS,CAAS;IAClB,QAAQ,CAAS;IACjB,aAAa,CAAS;IAE/B,YAAY,SAAiB,EAAE,QAAgB,EAAE,aAAqB;QACpE,KAAK,CACH,iBAAiB,SAAS,SAAS,QAAQ,CAAC,cAAc,EAAE,SAAS;YACnE,oEAAoE,aAAa,CAAC,cAAc,EAAE,SAAS;YAC3G,kGAAkG,CACrG,CAAC;QAEF,IAAI,CAAC,SAAS,GAAG,SAAS,CAAC;QAC3B,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC;QACzB,IAAI,CAAC,aAAa,GAAG,aAAa,CAAC;QACnC,IAAI,CAAC,IAAI,GAAG,kBAAkB,CAAC;IACjC,CAAC;CACF","sourcesContent":["/**\n * Base error class for chart specification generation errors.\n */\nexport class ChartSpecError extends Error {\n constructor(message: string) {\n super(message);\n this.name = 'ChartSpecError';\n }\n}\n\n/**\n * Error thrown when required chart configuration fields are missing.\n * Used during chart validation to indicate which fields must be provided.\n */\nexport class RequiredFieldsError extends ChartSpecError {\n readonly fieldNames: string[];\n\n constructor(fieldNames: string | string[]) {\n super('Required fields are missing');\n\n this.fieldNames = Array.isArray(fieldNames) ? fieldNames : [fieldNames];\n this.name = 'RequiredFieldsError';\n }\n}\n\n/**\n * Error thrown when chart configuration references columns that don't exist in the data table.\n * Used during chart validation to indicate which columns could not be found.\n */\nexport class MissingColumnsError extends ChartSpecError {\n readonly columnNames: string[];\n\n constructor(columnNames: string | string[]) {\n super('Columns not found in data table');\n\n this.columnNames = Array.isArray(columnNames) ? columnNames : [columnNames];\n this.name = 'MissingColumnsError';\n }\n}\n\n/**\n * Error thrown when chart configuration uses columns with incompatible data types.\n * Used during chart validation to indicate which columns have invalid types and what type is expected.\n */\nexport class InvalidColumnTypeError extends ChartSpecError {\n readonly columnNames: string[];\n readonly expectedType: string;\n\n constructor(columnNames: string[] | string, expectedType: string) {\n super('Invalid column type');\n\n this.columnNames = Array.isArray(columnNames) ? columnNames : [columnNames];\n this.expectedType = expectedType;\n\n this.name = 'InvalidColumnTypeError';\n }\n}\n\n/**\n * Error thrown when attempting to create a chart that would render too many data points.\n * Used to prevent browser crashes from non-aggregated charts on large datasets.\n */\nexport class TooMuchDataError extends ChartSpecError {\n readonly chartType: string;\n readonly rowCount: number;\n readonly maxDataPoints: number;\n\n constructor(chartType: string, rowCount: number, maxDataPoints: number) {\n super(\n `Cannot create ${chartType} with ${rowCount.toLocaleString()} rows. ` +\n `This chart type renders individual data points and is limited to ${maxDataPoints.toLocaleString()} rows. ` +\n `Use an aggregated visualization instead (histogram, heatmap, or line chart with time intervals).`,\n );\n\n this.chartType = chartType;\n this.rowCount = rowCount;\n this.maxDataPoints = maxDataPoints;\n this.name = 'TooMuchDataError';\n }\n}\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"definition.d.ts","sourceRoot":"","sources":["../../../../src/charts/chart-types/heatmap/definition.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAC,uBAAuB,EAAC,MAAM,eAAe,CAAC;AAC3D,OAAO,EAAC,kBAAkB,EAAuB,MAAM,UAAU,CAAC;AASlE,eAAO,MAAM,gBAAgB,EAAE,uBAAuB,CAAC,kBAAkB,CAUxE,CAAC"}
1
+ {"version":3,"file":"definition.d.ts","sourceRoot":"","sources":["../../../../src/charts/chart-types/heatmap/definition.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAC,uBAAuB,EAAC,MAAM,eAAe,CAAC;AAC3D,OAAO,EAAC,kBAAkB,EAAuB,MAAM,UAAU,CAAC;AASlE,eAAO,MAAM,gBAAgB,EAAE,uBAAuB,CAAC,kBAAkB,CAWxE,CAAC"}
@@ -9,6 +9,7 @@ export const heatmapChartType = {
9
9
  id: 'heatmap',
10
10
  label: 'Heatmap',
11
11
  description: DESCRIPTION,
12
+ aiDescription: `${DESCRIPTION} - density/patterns across two dimensions (preferred for large datasets)`,
12
13
  icon: Grid3X3,
13
14
  schema: HeatmapChartSettings,
14
15
  settingsComponent: HeatmapSettingsComponent,
@@ -1 +1 @@
1
- {"version":3,"file":"definition.js","sourceRoot":"","sources":["../../../../src/charts/chart-types/heatmap/definition.ts"],"names":[],"mappings":"AACA,OAAO,EAAqB,oBAAoB,EAAC,MAAM,UAAU,CAAC;AAClE,OAAO,EAAC,oBAAoB,EAAC,MAAM,wCAAwC,CAAC;AAC5E,OAAO,EAAC,wBAAwB,EAAC,MAAM,mBAAmB,CAAC;AAC3D,OAAO,EAAC,mBAAmB,EAAC,MAAM,QAAQ,CAAC;AAC3C,OAAO,EAAC,OAAO,EAAC,MAAM,cAAc,CAAC;AACrC,OAAO,EAAC,iBAAiB,EAAC,MAAM,QAAQ,CAAC;AAEzC,MAAM,WAAW,GAAG,mCAAmC,CAAC;AAExD,MAAM,CAAC,MAAM,gBAAgB,GAAgD;IAC3E,EAAE,EAAE,SAAS;IACb,KAAK,EAAE,SAAS;IAChB,WAAW,EAAE,WAAW;IACxB,IAAI,EAAE,OAAO;IACb,MAAM,EAAE,oBAAoB;IAC5B,iBAAiB,EAAE,wBAAwB;IAC3C,UAAU,EAAE,oBAAoB,CAAC,WAAW,CAAC;IAC7C,UAAU,EAAE,mBAAmB;IAC/B,UAAU,EAAE,iBAAiB;CAC9B,CAAC","sourcesContent":["import type {SpecChartTypeDefinition} from '../base-types';\nimport {HeatmapChartConfig, HeatmapChartSettings} from './schema';\nimport {titleFromDescription} from '../../../chart-builders/chartTypeUtils';\nimport {HeatmapSettingsComponent} from './HeatmapSettings';\nimport {createHeatmapAiTool} from './tool';\nimport {Grid3X3} from 'lucide-react';\nimport {createHeatmapSpec} from './spec';\n\nconst DESCRIPTION = 'Create a 2D heatmap of two fields';\n\nexport const heatmapChartType: SpecChartTypeDefinition<HeatmapChartConfig> = {\n id: 'heatmap',\n label: 'Heatmap',\n description: DESCRIPTION,\n icon: Grid3X3,\n schema: HeatmapChartSettings,\n settingsComponent: HeatmapSettingsComponent,\n buildTitle: titleFromDescription(DESCRIPTION),\n createTool: createHeatmapAiTool,\n createSpec: createHeatmapSpec,\n};\n"]}
1
+ {"version":3,"file":"definition.js","sourceRoot":"","sources":["../../../../src/charts/chart-types/heatmap/definition.ts"],"names":[],"mappings":"AACA,OAAO,EAAqB,oBAAoB,EAAC,MAAM,UAAU,CAAC;AAClE,OAAO,EAAC,oBAAoB,EAAC,MAAM,wCAAwC,CAAC;AAC5E,OAAO,EAAC,wBAAwB,EAAC,MAAM,mBAAmB,CAAC;AAC3D,OAAO,EAAC,mBAAmB,EAAC,MAAM,QAAQ,CAAC;AAC3C,OAAO,EAAC,OAAO,EAAC,MAAM,cAAc,CAAC;AACrC,OAAO,EAAC,iBAAiB,EAAC,MAAM,QAAQ,CAAC;AAEzC,MAAM,WAAW,GAAG,mCAAmC,CAAC;AAExD,MAAM,CAAC,MAAM,gBAAgB,GAAgD;IAC3E,EAAE,EAAE,SAAS;IACb,KAAK,EAAE,SAAS;IAChB,WAAW,EAAE,WAAW;IACxB,aAAa,EAAE,GAAG,WAAW,0EAA0E;IACvG,IAAI,EAAE,OAAO;IACb,MAAM,EAAE,oBAAoB;IAC5B,iBAAiB,EAAE,wBAAwB;IAC3C,UAAU,EAAE,oBAAoB,CAAC,WAAW,CAAC;IAC7C,UAAU,EAAE,mBAAmB;IAC/B,UAAU,EAAE,iBAAiB;CAC9B,CAAC","sourcesContent":["import type {SpecChartTypeDefinition} from '../base-types';\nimport {HeatmapChartConfig, HeatmapChartSettings} from './schema';\nimport {titleFromDescription} from '../../../chart-builders/chartTypeUtils';\nimport {HeatmapSettingsComponent} from './HeatmapSettings';\nimport {createHeatmapAiTool} from './tool';\nimport {Grid3X3} from 'lucide-react';\nimport {createHeatmapSpec} from './spec';\n\nconst DESCRIPTION = 'Create a 2D heatmap of two fields';\n\nexport const heatmapChartType: SpecChartTypeDefinition<HeatmapChartConfig> = {\n id: 'heatmap',\n label: 'Heatmap',\n description: DESCRIPTION,\n aiDescription: `${DESCRIPTION} - density/patterns across two dimensions (preferred for large datasets)`,\n icon: Grid3X3,\n schema: HeatmapChartSettings,\n settingsComponent: HeatmapSettingsComponent,\n buildTitle: titleFromDescription(DESCRIPTION),\n createTool: createHeatmapAiTool,\n createSpec: createHeatmapSpec,\n};\n"]}
@@ -1,4 +1,5 @@
1
1
  import type { Spec } from '@uwdata/mosaic-spec';
2
2
  import { HeatmapChartSettings } from './schema';
3
- export declare function createHeatmapSpec(tableName: string, { x, y }: HeatmapChartSettings): Spec;
3
+ import { CreateSpecOptions } from '../base-types';
4
+ export declare function createHeatmapSpec(options: CreateSpecOptions<HeatmapChartSettings>): Spec;
4
5
  //# sourceMappingURL=spec.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"spec.d.ts","sourceRoot":"","sources":["../../../../src/charts/chart-types/heatmap/spec.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAC,IAAI,EAAC,MAAM,qBAAqB,CAAC;AAC9C,OAAO,EAAC,oBAAoB,EAAC,MAAM,UAAU,CAAC;AAG9C,wBAAgB,iBAAiB,CAC/B,SAAS,EAAE,MAAM,EACjB,EAAC,CAAC,EAAE,CAAC,EAAC,EAAE,oBAAoB,GAC3B,IAAI,CA6BN"}
1
+ {"version":3,"file":"spec.d.ts","sourceRoot":"","sources":["../../../../src/charts/chart-types/heatmap/spec.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAC,IAAI,EAAC,MAAM,qBAAqB,CAAC;AAC9C,OAAO,EAAC,oBAAoB,EAAC,MAAM,UAAU,CAAC;AAC9C,OAAO,EAAC,iBAAiB,EAAyB,MAAM,eAAe,CAAC;AAGxE,wBAAgB,iBAAiB,CAC/B,OAAO,EAAE,iBAAiB,CAAC,oBAAoB,CAAC,GAC/C,IAAI,CAgCN"}
@@ -1,28 +1,28 @@
1
- import { ChartSpecError } from '../errors';
2
- export function createHeatmapSpec(tableName, { x, y }) {
3
- if (!x) {
4
- throw new ChartSpecError('X field is required for heatmap');
5
- }
6
- if (!y) {
7
- throw new ChartSpecError('Y field is required for heatmap');
1
+ import { getChartTableReference } from '../base-types';
2
+ import { validateHeatmapSettings } from './validation';
3
+ export function createHeatmapSpec(options) {
4
+ const { dataTable, selectionName } = options;
5
+ const { xColumn, yColumn } = validateHeatmapSettings(options);
6
+ const plot = [
7
+ {
8
+ mark: 'raster',
9
+ data: { from: getChartTableReference(dataTable), filterBy: '$brush' },
10
+ x: xColumn.name,
11
+ y: yColumn.name,
12
+ fill: 'density',
13
+ bandwidth: 0,
14
+ pixelSize: 3,
15
+ },
16
+ ];
17
+ if (selectionName) {
18
+ plot.push({ select: 'intervalXY', as: '$brush' });
8
19
  }
9
20
  return {
10
- plot: [
11
- {
12
- mark: 'raster',
13
- data: { from: tableName, filterBy: '$brush' },
14
- x,
15
- y,
16
- fill: 'density',
17
- bandwidth: 0,
18
- pixelSize: 3,
19
- },
20
- { select: 'intervalXY', as: '$brush' },
21
- ],
21
+ plot,
22
22
  colorScale: 'sqrt',
23
23
  colorScheme: 'ylorrd',
24
- xLabel: x,
25
- yLabel: y,
24
+ xLabel: xColumn.name,
25
+ yLabel: yColumn.name,
26
26
  height: 250,
27
27
  width: 380,
28
28
  margins: { left: 50, right: 20, top: 20, bottom: 50 },
@@ -1 +1 @@
1
- {"version":3,"file":"spec.js","sourceRoot":"","sources":["../../../../src/charts/chart-types/heatmap/spec.ts"],"names":[],"mappings":"AAEA,OAAO,EAAC,cAAc,EAAC,MAAM,WAAW,CAAC;AAEzC,MAAM,UAAU,iBAAiB,CAC/B,SAAiB,EACjB,EAAC,CAAC,EAAE,CAAC,EAAuB;IAE5B,IAAI,CAAC,CAAC,EAAE,CAAC;QACP,MAAM,IAAI,cAAc,CAAC,iCAAiC,CAAC,CAAC;IAC9D,CAAC;IACD,IAAI,CAAC,CAAC,EAAE,CAAC;QACP,MAAM,IAAI,cAAc,CAAC,iCAAiC,CAAC,CAAC;IAC9D,CAAC;IACD,OAAO;QACL,IAAI,EAAE;YACJ;gBACE,IAAI,EAAE,QAAQ;gBACd,IAAI,EAAE,EAAC,IAAI,EAAE,SAAS,EAAE,QAAQ,EAAE,QAAQ,EAAC;gBAC3C,CAAC;gBACD,CAAC;gBACD,IAAI,EAAE,SAAS;gBACf,SAAS,EAAE,CAAC;gBACZ,SAAS,EAAE,CAAC;aACb;YACD,EAAC,MAAM,EAAE,YAAY,EAAE,EAAE,EAAE,QAAQ,EAAC;SACrC;QACD,UAAU,EAAE,MAAM;QAClB,WAAW,EAAE,QAAQ;QACrB,MAAM,EAAE,CAAC;QACT,MAAM,EAAE,CAAC;QACT,MAAM,EAAE,GAAG;QACX,KAAK,EAAE,GAAG;QACV,OAAO,EAAE,EAAC,IAAI,EAAE,EAAE,EAAE,KAAK,EAAE,EAAE,EAAE,GAAG,EAAE,EAAE,EAAE,MAAM,EAAE,EAAE,EAAC;QACnD,MAAM,EAAE,EAAC,KAAK,EAAE,EAAC,MAAM,EAAE,aAAa,EAAC,EAAC;KACjC,CAAC;AACZ,CAAC","sourcesContent":["import type {Spec} from '@uwdata/mosaic-spec';\nimport {HeatmapChartSettings} from './schema';\nimport {ChartSpecError} from '../errors';\n\nexport function createHeatmapSpec(\n tableName: string,\n {x, y}: HeatmapChartSettings,\n): Spec {\n if (!x) {\n throw new ChartSpecError('X field is required for heatmap');\n }\n if (!y) {\n throw new ChartSpecError('Y field is required for heatmap');\n }\n return {\n plot: [\n {\n mark: 'raster',\n data: {from: tableName, filterBy: '$brush'},\n x,\n y,\n fill: 'density',\n bandwidth: 0,\n pixelSize: 3,\n },\n {select: 'intervalXY', as: '$brush'},\n ],\n colorScale: 'sqrt',\n colorScheme: 'ylorrd',\n xLabel: x,\n yLabel: y,\n height: 250,\n width: 380,\n margins: {left: 50, right: 20, top: 20, bottom: 50},\n params: {brush: {select: 'crossfilter'}},\n } as Spec;\n}\n"]}
1
+ {"version":3,"file":"spec.js","sourceRoot":"","sources":["../../../../src/charts/chart-types/heatmap/spec.ts"],"names":[],"mappings":"AAEA,OAAO,EAAoB,sBAAsB,EAAC,MAAM,eAAe,CAAC;AACxE,OAAO,EAAC,uBAAuB,EAAC,MAAM,cAAc,CAAC;AAErD,MAAM,UAAU,iBAAiB,CAC/B,OAAgD;IAEhD,MAAM,EAAC,SAAS,EAAE,aAAa,EAAC,GAAG,OAAO,CAAC;IAE3C,MAAM,EAAC,OAAO,EAAE,OAAO,EAAC,GAAG,uBAAuB,CAAC,OAAO,CAAC,CAAC;IAE5D,MAAM,IAAI,GAAc;QACtB;YACE,IAAI,EAAE,QAAQ;YACd,IAAI,EAAE,EAAC,IAAI,EAAE,sBAAsB,CAAC,SAAS,CAAC,EAAE,QAAQ,EAAE,QAAQ,EAAC;YACnE,CAAC,EAAE,OAAO,CAAC,IAAI;YACf,CAAC,EAAE,OAAO,CAAC,IAAI;YACf,IAAI,EAAE,SAAS;YACf,SAAS,EAAE,CAAC;YACZ,SAAS,EAAE,CAAC;SACb;KACF,CAAC;IAEF,IAAI,aAAa,EAAE,CAAC;QAClB,IAAI,CAAC,IAAI,CAAC,EAAC,MAAM,EAAE,YAAY,EAAE,EAAE,EAAE,QAAQ,EAAC,CAAC,CAAC;IAClD,CAAC;IAED,OAAO;QACL,IAAI;QACJ,UAAU,EAAE,MAAM;QAClB,WAAW,EAAE,QAAQ;QACrB,MAAM,EAAE,OAAO,CAAC,IAAI;QACpB,MAAM,EAAE,OAAO,CAAC,IAAI;QACpB,MAAM,EAAE,GAAG;QACX,KAAK,EAAE,GAAG;QACV,OAAO,EAAE,EAAC,IAAI,EAAE,EAAE,EAAE,KAAK,EAAE,EAAE,EAAE,GAAG,EAAE,EAAE,EAAE,MAAM,EAAE,EAAE,EAAC;QACnD,MAAM,EAAE,EAAC,KAAK,EAAE,EAAC,MAAM,EAAE,aAAa,EAAC,EAAC;KACjC,CAAC;AACZ,CAAC","sourcesContent":["import type {Spec} from '@uwdata/mosaic-spec';\nimport {HeatmapChartSettings} from './schema';\nimport {CreateSpecOptions, getChartTableReference} from '../base-types';\nimport {validateHeatmapSettings} from './validation';\n\nexport function createHeatmapSpec(\n options: CreateSpecOptions<HeatmapChartSettings>,\n): Spec {\n const {dataTable, selectionName} = options;\n\n const {xColumn, yColumn} = validateHeatmapSettings(options);\n\n const plot: unknown[] = [\n {\n mark: 'raster',\n data: {from: getChartTableReference(dataTable), filterBy: '$brush'},\n x: xColumn.name,\n y: yColumn.name,\n fill: 'density',\n bandwidth: 0,\n pixelSize: 3,\n },\n ];\n\n if (selectionName) {\n plot.push({select: 'intervalXY', as: '$brush'});\n }\n\n return {\n plot,\n colorScale: 'sqrt',\n colorScheme: 'ylorrd',\n xLabel: xColumn.name,\n yLabel: yColumn.name,\n height: 250,\n width: 380,\n margins: {left: 50, right: 20, top: 20, bottom: 50},\n params: {brush: {select: 'crossfilter'}},\n } as Spec;\n}\n"]}
@@ -1,9 +1,8 @@
1
1
  import { z } from 'zod';
2
- import { type DashboardToolDeps } from '../base-types';
3
- export declare const HeatmapToolParameters: z.ZodObject<{
4
- artifactId: z.ZodOptional<z.ZodString>;
5
- tableName: z.ZodOptional<z.ZodString>;
6
- createArtifactIfMissing: z.ZodDefault<z.ZodOptional<z.ZodBoolean>>;
2
+ import { ChartToolParams, ChartToolOutput } from '../tool-types';
3
+ export declare const HeatmapToolInput: z.ZodObject<{
4
+ tableName: z.ZodString;
5
+ title: z.ZodOptional<z.ZodString>;
7
6
  panelId: z.ZodOptional<z.ZodString>;
8
7
  reasoning: z.ZodString;
9
8
  settings: z.ZodObject<{
@@ -11,30 +10,27 @@ export declare const HeatmapToolParameters: z.ZodObject<{
11
10
  y: z.ZodNonOptional<z.ZodOptional<z.ZodString>>;
12
11
  }, z.core.$strip>;
13
12
  }, z.core.$strip>;
14
- export type HeatmapToolParams = z.infer<typeof HeatmapToolParameters>;
15
- export declare function createHeatmapAiTool(deps: DashboardToolDeps): import("ai").Tool<{
16
- createArtifactIfMissing: boolean;
13
+ export type HeatmapToolInput = z.infer<typeof HeatmapToolInput>;
14
+ export declare function createHeatmapAiTool({ databaseAdapter, addChart, maxDataPoints, }: ChartToolParams): import("ai").Tool<{
15
+ tableName: string;
17
16
  reasoning: string;
18
17
  settings: {
19
18
  x: string;
20
19
  y: string;
21
20
  };
22
- artifactId?: string | undefined;
23
- tableName?: string | undefined;
21
+ title?: string | undefined;
24
22
  panelId?: string | undefined;
25
- }, {
26
- llmResult: {
27
- success: boolean;
28
- details: string;
29
- data: import("..").PanelResult;
30
- errorMessage?: undefined;
31
- };
32
- } | {
33
- llmResult: {
34
- success: boolean;
35
- errorMessage: string;
36
- details?: undefined;
37
- data?: undefined;
23
+ }, ChartToolOutput<{
24
+ chartType: "heatmap";
25
+ settings: {
26
+ x?: string | undefined;
27
+ y?: string | undefined;
38
28
  };
39
- }>;
29
+ settingsOpen?: boolean | undefined;
30
+ dataPolicy?: {
31
+ disabled?: boolean | undefined;
32
+ maxRows?: number | undefined;
33
+ reason?: string | undefined;
34
+ } | undefined;
35
+ }>>;
40
36
  //# sourceMappingURL=tool.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"tool.d.ts","sourceRoot":"","sources":["../../../../src/charts/chart-types/heatmap/tool.ts"],"names":[],"mappings":"AACA,OAAO,EAAC,CAAC,EAAC,MAAM,KAAK,CAAC;AAGtB,OAAO,EAAC,KAAK,iBAAiB,EAAC,MAAM,eAAe,CAAC;AAKrD,eAAO,MAAM,qBAAqB;;;;;;;;;;iBAEhC,CAAC;AAEH,MAAM,MAAM,iBAAiB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,qBAAqB,CAAC,CAAC;AAEtE,wBAAgB,mBAAmB,CAAC,IAAI,EAAE,iBAAiB;;;;;;;;;;;;;;;;;;;;;;;;GA+E1D"}
1
+ {"version":3,"file":"tool.d.ts","sourceRoot":"","sources":["../../../../src/charts/chart-types/heatmap/tool.ts"],"names":[],"mappings":"AACA,OAAO,EAAC,CAAC,EAAC,MAAM,KAAK,CAAC;AAItB,OAAO,EAAC,eAAe,EAAE,eAAe,EAAC,MAAM,eAAe,CAAC;AAI/D,eAAO,MAAM,gBAAgB;;;;;;;;;iBAE3B,CAAC;AAEH,MAAM,MAAM,gBAAgB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,gBAAgB,CAAC,CAAC;AAEhE,wBAAgB,mBAAmB,CAAC,EAClC,eAAe,EACf,QAAQ,EACR,aAAa,GACd,EAAE,eAAe;;;;;;;;;;;;;;;;;;;;;IAiDjB"}
@@ -1,13 +1,13 @@
1
1
  import { tool } from 'ai';
2
2
  import { HeatmapChartSettings } from './schema';
3
- import { BaseChartToolParameters } from '../../../ai/tool-schemas';
4
- import { validateColumnExists } from '../../../ai/tool-validation';
3
+ import { BaseChartToolInput } from '../../../ai/tool-schemas';
5
4
  import { NUMERIC_COLUMN_TYPES } from '../../../column-types-utils';
6
- import { createOrUpdateChartPanel } from '../../../ai/tool-helpers';
7
- export const HeatmapToolParameters = BaseChartToolParameters.extend({
5
+ import { validateHeatmapSettings } from './validation';
6
+ import { ensureTable } from '../../../ai/tool-helpers';
7
+ export const HeatmapToolInput = BaseChartToolInput.extend({
8
8
  settings: HeatmapChartSettings.required(),
9
9
  });
10
- export function createHeatmapAiTool(deps) {
10
+ export function createHeatmapAiTool({ databaseAdapter, addChart, maxDataPoints, }) {
11
11
  return tool({
12
12
  description: `Heatmap: visualizes density or aggregated values across two dimensions using color intensity in a grid. Each cell color shows count/sum at that x,y position.
13
13
 
@@ -16,49 +16,39 @@ Example queries: "heatmap of population density by latitude and longitude", "tem
16
16
 
17
17
  Required: x and y should be numeric (${NUMERIC_COLUMN_TYPES.join(', ')}) for creating the grid.
18
18
 
19
- NOTE: Heatmaps aggregate data into grid cells and compute density/counts, so they handle large datasets efficiently (no data point limit). Heatmaps are a good alternative when bubble charts would exceed ${deps.maxDataPoints.toLocaleString()} rows.
20
-
21
- To UPDATE an existing heatmap: provide the panelId parameter. Otherwise creates new panel.
19
+ NOTE: Heatmaps aggregate data into grid cells and compute density/counts, so they handle large datasets efficiently (no data point limit). Heatmaps are a good alternative when scatter charts would exceed ${maxDataPoints.toLocaleString()} rows.
22
20
 
23
21
  Best for: large datasets with overlapping points, finding patterns/hotspots in 2D space, temporal patterns (hour×day), spatial density visualization.
24
22
 
25
- Do NOT use for: individual point plots (use bubble-chart), single variable distribution (use histogram), time trends (use line-chart).`,
26
- inputSchema: HeatmapToolParameters,
27
- execute: async (params, context) => {
23
+ Do NOT use for: individual point plots (use scatter-plot), single variable distribution (use histogram), time trends (use line-chart).`,
24
+ inputSchema: HeatmapToolInput,
25
+ execute: async ({ tableName, title, settings, panelId }) => {
28
26
  try {
29
- const artifactId = deps.resolveArtifact(params.artifactId, params.createArtifactIfMissing, context);
30
- const { tableName, columns } = deps.resolveTable(artifactId, params.tableName);
31
- // Validate settings
32
- validateColumnExists(params.settings.x, NUMERIC_COLUMN_TYPES, columns, 'x');
33
- validateColumnExists(params.settings.y, NUMERIC_COLUMN_TYPES, columns, 'y');
34
- const result = createOrUpdateChartPanel(deps, {
35
- panelId: params.panelId,
36
- dashboardId: artifactId,
27
+ const dataTable = ensureTable(databaseAdapter, tableName);
28
+ validateHeatmapSettings({
29
+ dataTable,
30
+ settings,
31
+ });
32
+ const chartConfig = {
33
+ chartType: 'heatmap',
34
+ settings,
35
+ };
36
+ await addChart({
37
37
  tableName,
38
- title: params.settings.x && params.settings.y
39
- ? `Heatmap - ${params.settings.x} vs ${params.settings.y}`
40
- : 'Heatmap',
41
- config: {
42
- chartType: 'heatmap',
43
- settings: params.settings,
44
- },
38
+ panelId,
39
+ title,
40
+ config: chartConfig,
45
41
  });
46
42
  return {
47
- llmResult: {
48
- success: true,
49
- details: params.panelId
50
- ? `Updated heatmap "${result.title}".`
51
- : `Created heatmap "${result.title}".`,
52
- data: result,
53
- },
43
+ success: true,
44
+ details: `Generated heatmap configuration.`,
45
+ data: chartConfig,
54
46
  };
55
47
  }
56
48
  catch (error) {
57
49
  return {
58
- llmResult: {
59
- success: false,
60
- errorMessage: error instanceof Error ? error.message : String(error),
61
- },
50
+ success: false,
51
+ errorMessage: error instanceof Error ? error.message : String(error),
62
52
  };
63
53
  }
64
54
  },
@@ -1 +1 @@
1
- {"version":3,"file":"tool.js","sourceRoot":"","sources":["../../../../src/charts/chart-types/heatmap/tool.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,IAAI,EAAC,MAAM,IAAI,CAAC;AAExB,OAAO,EAAC,oBAAoB,EAAC,MAAM,UAAU,CAAC;AAC9C,OAAO,EAAC,uBAAuB,EAAC,MAAM,0BAA0B,CAAC;AAEjE,OAAO,EAAC,oBAAoB,EAAC,MAAM,6BAA6B,CAAC;AACjE,OAAO,EAAC,oBAAoB,EAAC,MAAM,6BAA6B,CAAC;AACjE,OAAO,EAAC,wBAAwB,EAAC,MAAM,0BAA0B,CAAC;AAElE,MAAM,CAAC,MAAM,qBAAqB,GAAG,uBAAuB,CAAC,MAAM,CAAC;IAClE,QAAQ,EAAE,oBAAoB,CAAC,QAAQ,EAAE;CAC1C,CAAC,CAAC;AAIH,MAAM,UAAU,mBAAmB,CAAC,IAAuB;IACzD,OAAO,IAAI,CAAC;QACV,WAAW,EAAE;;;;;uCAKsB,oBAAoB,CAAC,IAAI,CAAC,IAAI,CAAC;;6MAEuI,IAAI,CAAC,aAAa,CAAC,cAAc,EAAE;;;;;;uIAMzG;QACnI,WAAW,EAAE,qBAAqB;QAClC,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,EAAE;YACjC,IAAI,CAAC;gBACH,MAAM,UAAU,GAAG,IAAI,CAAC,eAAe,CACrC,MAAM,CAAC,UAAU,EACjB,MAAM,CAAC,uBAAuB,EAC9B,OAAO,CACR,CAAC;gBACF,MAAM,EAAC,SAAS,EAAE,OAAO,EAAC,GAAG,IAAI,CAAC,YAAY,CAC5C,UAAU,EACV,MAAM,CAAC,SAAS,CACjB,CAAC;gBAEF,oBAAoB;gBAEpB,oBAAoB,CAClB,MAAM,CAAC,QAAQ,CAAC,CAAC,EACjB,oBAAoB,EACpB,OAAO,EACP,GAAG,CACJ,CAAC;gBAEF,oBAAoB,CAClB,MAAM,CAAC,QAAQ,CAAC,CAAC,EACjB,oBAAoB,EACpB,OAAO,EACP,GAAG,CACJ,CAAC;gBAEF,MAAM,MAAM,GAAG,wBAAwB,CAAC,IAAI,EAAE;oBAC5C,OAAO,EAAE,MAAM,CAAC,OAAO;oBACvB,WAAW,EAAE,UAAU;oBACvB,SAAS;oBACT,KAAK,EACH,MAAM,CAAC,QAAQ,CAAC,CAAC,IAAI,MAAM,CAAC,QAAQ,CAAC,CAAC;wBACpC,CAAC,CAAC,aAAa,MAAM,CAAC,QAAQ,CAAC,CAAC,OAAO,MAAM,CAAC,QAAQ,CAAC,CAAC,EAAE;wBAC1D,CAAC,CAAC,SAAS;oBACf,MAAM,EAAE;wBACN,SAAS,EAAE,SAAS;wBACpB,QAAQ,EAAE,MAAM,CAAC,QAAQ;qBAC1B;iBACF,CAAC,CAAC;gBAEH,OAAO;oBACL,SAAS,EAAE;wBACT,OAAO,EAAE,IAAI;wBACb,OAAO,EAAE,MAAM,CAAC,OAAO;4BACrB,CAAC,CAAC,oBAAoB,MAAM,CAAC,KAAK,IAAI;4BACtC,CAAC,CAAC,oBAAoB,MAAM,CAAC,KAAK,IAAI;wBACxC,IAAI,EAAE,MAAM;qBACb;iBACF,CAAC;YACJ,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBACf,OAAO;oBACL,SAAS,EAAE;wBACT,OAAO,EAAE,KAAK;wBACd,YAAY,EACV,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC;qBACzD;iBACF,CAAC;YACJ,CAAC;QACH,CAAC;KACF,CAAC,CAAC;AACL,CAAC","sourcesContent":["import {tool} from 'ai';\nimport {z} from 'zod';\nimport {HeatmapChartSettings} from './schema';\nimport {BaseChartToolParameters} from '../../../ai/tool-schemas';\nimport {type DashboardToolDeps} from '../base-types';\nimport {validateColumnExists} from '../../../ai/tool-validation';\nimport {NUMERIC_COLUMN_TYPES} from '../../../column-types-utils';\nimport {createOrUpdateChartPanel} from '../../../ai/tool-helpers';\n\nexport const HeatmapToolParameters = BaseChartToolParameters.extend({\n settings: HeatmapChartSettings.required(),\n});\n\nexport type HeatmapToolParams = z.infer<typeof HeatmapToolParameters>;\n\nexport function createHeatmapAiTool(deps: DashboardToolDeps) {\n return tool({\n description: `Heatmap: visualizes density or aggregated values across two dimensions using color intensity in a grid. Each cell color shows count/sum at that x,y position.\n\nUse when: user asks about \"heatmap\", \"density by X and Y\", \"activity by [category] and [category]\", \"intensity\", \"patterns across two dimensions\".\nExample queries: \"heatmap of population density by latitude and longitude\", \"temperature by elevation and month\", \"show building density by coordinates\", \"land use intensity by region and type\", \"feature distribution by grid cell\".\n\nRequired: x and y should be numeric (${NUMERIC_COLUMN_TYPES.join(', ')}) for creating the grid.\n\nNOTE: Heatmaps aggregate data into grid cells and compute density/counts, so they handle large datasets efficiently (no data point limit). Heatmaps are a good alternative when bubble charts would exceed ${deps.maxDataPoints.toLocaleString()} rows.\n\nTo UPDATE an existing heatmap: provide the panelId parameter. Otherwise creates new panel.\n\nBest for: large datasets with overlapping points, finding patterns/hotspots in 2D space, temporal patterns (hour×day), spatial density visualization.\n\nDo NOT use for: individual point plots (use bubble-chart), single variable distribution (use histogram), time trends (use line-chart).`,\n inputSchema: HeatmapToolParameters,\n execute: async (params, context) => {\n try {\n const artifactId = deps.resolveArtifact(\n params.artifactId,\n params.createArtifactIfMissing,\n context,\n );\n const {tableName, columns} = deps.resolveTable(\n artifactId,\n params.tableName,\n );\n\n // Validate settings\n\n validateColumnExists(\n params.settings.x,\n NUMERIC_COLUMN_TYPES,\n columns,\n 'x',\n );\n\n validateColumnExists(\n params.settings.y,\n NUMERIC_COLUMN_TYPES,\n columns,\n 'y',\n );\n\n const result = createOrUpdateChartPanel(deps, {\n panelId: params.panelId,\n dashboardId: artifactId,\n tableName,\n title:\n params.settings.x && params.settings.y\n ? `Heatmap - ${params.settings.x} vs ${params.settings.y}`\n : 'Heatmap',\n config: {\n chartType: 'heatmap',\n settings: params.settings,\n },\n });\n\n return {\n llmResult: {\n success: true,\n details: params.panelId\n ? `Updated heatmap \"${result.title}\".`\n : `Created heatmap \"${result.title}\".`,\n data: result,\n },\n };\n } catch (error) {\n return {\n llmResult: {\n success: false,\n errorMessage:\n error instanceof Error ? error.message : String(error),\n },\n };\n }\n },\n });\n}\n"]}
1
+ {"version":3,"file":"tool.js","sourceRoot":"","sources":["../../../../src/charts/chart-types/heatmap/tool.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,IAAI,EAAC,MAAM,IAAI,CAAC;AAExB,OAAO,EAAqB,oBAAoB,EAAC,MAAM,UAAU,CAAC;AAClE,OAAO,EAAC,kBAAkB,EAAC,MAAM,0BAA0B,CAAC;AAC5D,OAAO,EAAC,oBAAoB,EAAC,MAAM,6BAA6B,CAAC;AAEjE,OAAO,EAAC,uBAAuB,EAAC,MAAM,cAAc,CAAC;AACrD,OAAO,EAAC,WAAW,EAAC,MAAM,0BAA0B,CAAC;AAErD,MAAM,CAAC,MAAM,gBAAgB,GAAG,kBAAkB,CAAC,MAAM,CAAC;IACxD,QAAQ,EAAE,oBAAoB,CAAC,QAAQ,EAAE;CAC1C,CAAC,CAAC;AAIH,MAAM,UAAU,mBAAmB,CAAC,EAClC,eAAe,EACf,QAAQ,EACR,aAAa,GACG;IAChB,OAAO,IAAI,CAAwD;QACjE,WAAW,EAAE;;;;;uCAKsB,oBAAoB,CAAC,IAAI,CAAC,IAAI,CAAC;;8MAEwI,aAAa,CAAC,cAAc,EAAE;;;;uIAIrG;QACnI,WAAW,EAAE,gBAAgB;QAC7B,OAAO,EAAE,KAAK,EAAE,EAAC,SAAS,EAAE,KAAK,EAAE,QAAQ,EAAE,OAAO,EAAC,EAAE,EAAE;YACvD,IAAI,CAAC;gBACH,MAAM,SAAS,GAAG,WAAW,CAAC,eAAe,EAAE,SAAS,CAAC,CAAC;gBAE1D,uBAAuB,CAAC;oBACtB,SAAS;oBACT,QAAQ;iBACT,CAAC,CAAC;gBAEH,MAAM,WAAW,GAAuB;oBACtC,SAAS,EAAE,SAAkB;oBAC7B,QAAQ;iBACT,CAAC;gBAEF,MAAM,QAAQ,CAAC;oBACb,SAAS;oBACT,OAAO;oBACP,KAAK;oBACL,MAAM,EAAE,WAAW;iBACpB,CAAC,CAAC;gBAEH,OAAO;oBACL,OAAO,EAAE,IAAI;oBACb,OAAO,EAAE,kCAAkC;oBAC3C,IAAI,EAAE,WAAW;iBAClB,CAAC;YACJ,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBACf,OAAO;oBACL,OAAO,EAAE,KAAK;oBACd,YAAY,EAAE,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC;iBACrE,CAAC;YACJ,CAAC;QACH,CAAC;KACF,CAAC,CAAC;AACL,CAAC","sourcesContent":["import {tool} from 'ai';\nimport {z} from 'zod';\nimport {HeatmapChartConfig, HeatmapChartSettings} from './schema';\nimport {BaseChartToolInput} from '../../../ai/tool-schemas';\nimport {NUMERIC_COLUMN_TYPES} from '../../../column-types-utils';\nimport {ChartToolParams, ChartToolOutput} from '../tool-types';\nimport {validateHeatmapSettings} from './validation';\nimport {ensureTable} from '../../../ai/tool-helpers';\n\nexport const HeatmapToolInput = BaseChartToolInput.extend({\n settings: HeatmapChartSettings.required(),\n});\n\nexport type HeatmapToolInput = z.infer<typeof HeatmapToolInput>;\n\nexport function createHeatmapAiTool({\n databaseAdapter,\n addChart,\n maxDataPoints,\n}: ChartToolParams) {\n return tool<HeatmapToolInput, ChartToolOutput<HeatmapChartConfig>>({\n description: `Heatmap: visualizes density or aggregated values across two dimensions using color intensity in a grid. Each cell color shows count/sum at that x,y position.\n\nUse when: user asks about \"heatmap\", \"density by X and Y\", \"activity by [category] and [category]\", \"intensity\", \"patterns across two dimensions\".\nExample queries: \"heatmap of population density by latitude and longitude\", \"temperature by elevation and month\", \"show building density by coordinates\", \"land use intensity by region and type\", \"feature distribution by grid cell\".\n\nRequired: x and y should be numeric (${NUMERIC_COLUMN_TYPES.join(', ')}) for creating the grid.\n\nNOTE: Heatmaps aggregate data into grid cells and compute density/counts, so they handle large datasets efficiently (no data point limit). Heatmaps are a good alternative when scatter charts would exceed ${maxDataPoints.toLocaleString()} rows.\n\nBest for: large datasets with overlapping points, finding patterns/hotspots in 2D space, temporal patterns (hour×day), spatial density visualization.\n\nDo NOT use for: individual point plots (use scatter-plot), single variable distribution (use histogram), time trends (use line-chart).`,\n inputSchema: HeatmapToolInput,\n execute: async ({tableName, title, settings, panelId}) => {\n try {\n const dataTable = ensureTable(databaseAdapter, tableName);\n\n validateHeatmapSettings({\n dataTable,\n settings,\n });\n\n const chartConfig: HeatmapChartConfig = {\n chartType: 'heatmap' as const,\n settings,\n };\n\n await addChart({\n tableName,\n panelId,\n title,\n config: chartConfig,\n });\n\n return {\n success: true,\n details: `Generated heatmap configuration.`,\n data: chartConfig,\n };\n } catch (error) {\n return {\n success: false,\n errorMessage: error instanceof Error ? error.message : String(error),\n };\n }\n },\n });\n}\n"]}
@@ -0,0 +1,9 @@
1
+ import { HeatmapChartSettings } from './schema';
2
+ import { ValidateSpecOptions } from '../base-types';
3
+ import { TableColumn } from '@sqlrooms/duckdb';
4
+ export type ValidatedHeatmapSettings = {
5
+ xColumn: TableColumn;
6
+ yColumn: TableColumn;
7
+ };
8
+ export declare function validateHeatmapSettings({ dataTable, settings: { x, y }, }: ValidateSpecOptions<HeatmapChartSettings>): ValidatedHeatmapSettings;
9
+ //# sourceMappingURL=validation.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"validation.d.ts","sourceRoot":"","sources":["../../../../src/charts/chart-types/heatmap/validation.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,oBAAoB,EAAC,MAAM,UAAU,CAAC;AAC9C,OAAO,EAAC,mBAAmB,EAAC,MAAM,eAAe,CAAC;AAOlD,OAAO,EAAC,WAAW,EAAC,MAAM,kBAAkB,CAAC;AAE7C,MAAM,MAAM,wBAAwB,GAAG;IACrC,OAAO,EAAE,WAAW,CAAC;IACrB,OAAO,EAAE,WAAW,CAAC;CACtB,CAAC;AAEF,wBAAgB,uBAAuB,CAAC,EACtC,SAAS,EACT,QAAQ,EAAE,EAAC,CAAC,EAAE,CAAC,EAAC,GACjB,EAAE,mBAAmB,CAAC,oBAAoB,CAAC,GAAG,wBAAwB,CAqCtE"}
@@ -0,0 +1,34 @@
1
+ import { InvalidColumnTypeError, MissingColumnsError, RequiredFieldsError, } from '../errors';
2
+ import { isNumericType } from '../../../column-types-utils';
3
+ export function validateHeatmapSettings({ dataTable, settings: { x, y }, }) {
4
+ // Basic validation for required fields
5
+ if (!x || !y) {
6
+ throw new RequiredFieldsError([
7
+ ...(x ? [] : ['X field']),
8
+ ...(y ? [] : ['Y field']),
9
+ ]);
10
+ }
11
+ // Validate X and Y field existence
12
+ const xColumn = dataTable.columns.find((col) => col.name === x);
13
+ const yColumn = dataTable.columns.find((col) => col.name === y);
14
+ if (!xColumn || !yColumn) {
15
+ throw new MissingColumnsError([
16
+ ...(xColumn ? [] : [x]),
17
+ ...(yColumn ? [] : [y]),
18
+ ]);
19
+ }
20
+ // Validate X and Y field are numeric
21
+ const xIsNumeric = isNumericType(xColumn.type);
22
+ const yIsNumeric = isNumericType(yColumn.type);
23
+ if (!xIsNumeric || !yIsNumeric) {
24
+ throw new InvalidColumnTypeError([
25
+ ...(!xIsNumeric ? [xColumn.name] : []),
26
+ ...(!yIsNumeric ? [yColumn.name] : []),
27
+ ], 'numeric');
28
+ }
29
+ return {
30
+ xColumn,
31
+ yColumn,
32
+ };
33
+ }
34
+ //# sourceMappingURL=validation.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"validation.js","sourceRoot":"","sources":["../../../../src/charts/chart-types/heatmap/validation.ts"],"names":[],"mappings":"AAEA,OAAO,EACL,sBAAsB,EACtB,mBAAmB,EACnB,mBAAmB,GACpB,MAAM,WAAW,CAAC;AACnB,OAAO,EAAC,aAAa,EAAC,MAAM,6BAA6B,CAAC;AAQ1D,MAAM,UAAU,uBAAuB,CAAC,EACtC,SAAS,EACT,QAAQ,EAAE,EAAC,CAAC,EAAE,CAAC,EAAC,GAC0B;IAC1C,uCAAuC;IACvC,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC;QACb,MAAM,IAAI,mBAAmB,CAAC;YAC5B,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC;YACzB,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC;SAC1B,CAAC,CAAC;IACL,CAAC;IAED,mCAAmC;IACnC,MAAM,OAAO,GAAG,SAAS,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,IAAI,KAAK,CAAC,CAAC,CAAC;IAChE,MAAM,OAAO,GAAG,SAAS,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,IAAI,KAAK,CAAC,CAAC,CAAC;IAEhE,IAAI,CAAC,OAAO,IAAI,CAAC,OAAO,EAAE,CAAC;QACzB,MAAM,IAAI,mBAAmB,CAAC;YAC5B,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;YACvB,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;SACxB,CAAC,CAAC;IACL,CAAC;IAED,qCAAqC;IACrC,MAAM,UAAU,GAAG,aAAa,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;IAC/C,MAAM,UAAU,GAAG,aAAa,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;IAC/C,IAAI,CAAC,UAAU,IAAI,CAAC,UAAU,EAAE,CAAC;QAC/B,MAAM,IAAI,sBAAsB,CAC9B;YACE,GAAG,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;YACtC,GAAG,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;SACvC,EACD,SAAS,CACV,CAAC;IACJ,CAAC;IAED,OAAO;QACL,OAAO;QACP,OAAO;KACR,CAAC;AACJ,CAAC","sourcesContent":["import {HeatmapChartSettings} from './schema';\nimport {ValidateSpecOptions} from '../base-types';\nimport {\n InvalidColumnTypeError,\n MissingColumnsError,\n RequiredFieldsError,\n} from '../errors';\nimport {isNumericType} from '../../../column-types-utils';\nimport {TableColumn} from '@sqlrooms/duckdb';\n\nexport type ValidatedHeatmapSettings = {\n xColumn: TableColumn;\n yColumn: TableColumn;\n};\n\nexport function validateHeatmapSettings({\n dataTable,\n settings: {x, y},\n}: ValidateSpecOptions<HeatmapChartSettings>): ValidatedHeatmapSettings {\n // Basic validation for required fields\n if (!x || !y) {\n throw new RequiredFieldsError([\n ...(x ? [] : ['X field']),\n ...(y ? [] : ['Y field']),\n ]);\n }\n\n // Validate X and Y field existence\n const xColumn = dataTable.columns.find((col) => col.name === x);\n const yColumn = dataTable.columns.find((col) => col.name === y);\n\n if (!xColumn || !yColumn) {\n throw new MissingColumnsError([\n ...(xColumn ? [] : [x]),\n ...(yColumn ? [] : [y]),\n ]);\n }\n\n // Validate X and Y field are numeric\n const xIsNumeric = isNumericType(xColumn.type);\n const yIsNumeric = isNumericType(yColumn.type);\n if (!xIsNumeric || !yIsNumeric) {\n throw new InvalidColumnTypeError(\n [\n ...(!xIsNumeric ? [xColumn.name] : []),\n ...(!yIsNumeric ? [yColumn.name] : []),\n ],\n 'numeric',\n );\n }\n\n return {\n xColumn,\n yColumn,\n };\n}\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"HistogramSettings.d.ts","sourceRoot":"","sources":["../../../../src/charts/chart-types/histogram/HistogramSettings.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAC,KAAK,EAAE,EAAC,MAAM,OAAO,CAAC;AAO9B,eAAO,MAAM,0BAA0B,EAAE,EA0BxC,CAAC"}
1
+ {"version":3,"file":"HistogramSettings.d.ts","sourceRoot":"","sources":["../../../../src/charts/chart-types/histogram/HistogramSettings.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAC,KAAK,EAAE,EAAC,MAAM,OAAO,CAAC;AAY9B,eAAO,MAAM,0BAA0B,EAAE,EAkCxC,CAAC"}
@@ -2,10 +2,12 @@ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
2
  import { Input } from '@sqlrooms/ui';
3
3
  import { Field } from '../../../components/Field';
4
4
  import { ColumnSelector } from '../../../components/ColumnSelector';
5
+ import { ColorSelector } from '../../../components/ColorSelector';
5
6
  import { useMosaicChartSettingsContext } from '../../chart-settings/MosaicChartSettingsContext';
6
7
  import { MIN_BINS_COUNT, MAX_BINS_COUNT, DEFAULT_BINS_COUNT } from './schema';
8
+ import { DEFAULT_CHART_COLORS, DEFAULT_CHART_FALLBACK_COLOR, } from '../../../constants/chart-colors';
7
9
  export const HistogramSettingsComponent = () => {
8
10
  const { onChangeConfig, config } = useMosaicChartSettingsContext('histogram');
9
- return (_jsxs("div", { className: "space-y-4", children: [_jsx(Field, { label: "Field", required: true, children: _jsx(ColumnSelector.Quantitative, { value: config.settings.field, onChange: (field) => onChangeConfig('field', field) }) }), _jsx(Field, { label: "Max Bins", children: _jsx(Input, { type: "number", min: MIN_BINS_COUNT, max: MAX_BINS_COUNT, value: config.settings.maxBins ?? DEFAULT_BINS_COUNT, className: "no-spinner", onChange: (e) => onChangeConfig('maxBins', parseInt(e.target.value, 10)), placeholder: String(DEFAULT_BINS_COUNT) }) })] }));
11
+ return (_jsxs("div", { className: "space-y-4", children: [_jsx(Field, { label: "Field", required: true, children: _jsxs("div", { className: "flex items-end gap-2", children: [_jsx(ColumnSelector.Quantitative, { className: "flex-1", value: config.settings.field, onChange: (field) => onChangeConfig('field', field) }), _jsx(ColorSelector, { items: DEFAULT_CHART_COLORS, value: config.settings.color ?? DEFAULT_CHART_FALLBACK_COLOR, onChange: (color) => onChangeConfig('color', color) })] }) }), _jsx(Field, { label: "Max Bins", children: _jsx(Input, { type: "number", min: MIN_BINS_COUNT, max: MAX_BINS_COUNT, value: config.settings.maxBins ?? DEFAULT_BINS_COUNT, className: "no-spinner", onChange: (e) => onChangeConfig('maxBins', parseInt(e.target.value, 10)), placeholder: String(DEFAULT_BINS_COUNT) }) })] }));
10
12
  };
11
13
  //# sourceMappingURL=HistogramSettings.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"HistogramSettings.js","sourceRoot":"","sources":["../../../../src/charts/chart-types/histogram/HistogramSettings.tsx"],"names":[],"mappings":";AACA,OAAO,EAAC,KAAK,EAAC,MAAM,cAAc,CAAC;AACnC,OAAO,EAAC,KAAK,EAAC,MAAM,2BAA2B,CAAC;AAChD,OAAO,EAAC,cAAc,EAAC,MAAM,oCAAoC,CAAC;AAClE,OAAO,EAAC,6BAA6B,EAAC,MAAM,iDAAiD,CAAC;AAC9F,OAAO,EAAC,cAAc,EAAE,cAAc,EAAE,kBAAkB,EAAC,MAAM,UAAU,CAAC;AAE5E,MAAM,CAAC,MAAM,0BAA0B,GAAO,GAAG,EAAE;IACjD,MAAM,EAAC,cAAc,EAAE,MAAM,EAAC,GAAG,6BAA6B,CAAC,WAAW,CAAC,CAAC;IAE5E,OAAO,CACL,eAAK,SAAS,EAAC,WAAW,aACxB,KAAC,KAAK,IAAC,KAAK,EAAC,OAAO,EAAC,QAAQ,kBAC3B,KAAC,cAAc,CAAC,YAAY,IAC1B,KAAK,EAAE,MAAM,CAAC,QAAQ,CAAC,KAAK,EAC5B,QAAQ,EAAE,CAAC,KAAK,EAAE,EAAE,CAAC,cAAc,CAAC,OAAO,EAAE,KAAK,CAAC,GACnD,GACI,EACR,KAAC,KAAK,IAAC,KAAK,EAAC,UAAU,YACrB,KAAC,KAAK,IACJ,IAAI,EAAC,QAAQ,EACb,GAAG,EAAE,cAAc,EACnB,GAAG,EAAE,cAAc,EACnB,KAAK,EAAE,MAAM,CAAC,QAAQ,CAAC,OAAO,IAAI,kBAAkB,EACpD,SAAS,EAAC,YAAY,EACtB,QAAQ,EAAE,CAAC,CAAC,EAAE,EAAE,CACd,cAAc,CAAC,SAAS,EAAE,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC,EAEzD,WAAW,EAAE,MAAM,CAAC,kBAAkB,CAAC,GACvC,GACI,IACJ,CACP,CAAC;AACJ,CAAC,CAAC","sourcesContent":["import {type FC} from 'react';\nimport {Input} from '@sqlrooms/ui';\nimport {Field} from '../../../components/Field';\nimport {ColumnSelector} from '../../../components/ColumnSelector';\nimport {useMosaicChartSettingsContext} from '../../chart-settings/MosaicChartSettingsContext';\nimport {MIN_BINS_COUNT, MAX_BINS_COUNT, DEFAULT_BINS_COUNT} from './schema';\n\nexport const HistogramSettingsComponent: FC = () => {\n const {onChangeConfig, config} = useMosaicChartSettingsContext('histogram');\n\n return (\n <div className=\"space-y-4\">\n <Field label=\"Field\" required>\n <ColumnSelector.Quantitative\n value={config.settings.field}\n onChange={(field) => onChangeConfig('field', field)}\n />\n </Field>\n <Field label=\"Max Bins\">\n <Input\n type=\"number\"\n min={MIN_BINS_COUNT}\n max={MAX_BINS_COUNT}\n value={config.settings.maxBins ?? DEFAULT_BINS_COUNT}\n className=\"no-spinner\"\n onChange={(e) =>\n onChangeConfig('maxBins', parseInt(e.target.value, 10))\n }\n placeholder={String(DEFAULT_BINS_COUNT)}\n />\n </Field>\n </div>\n );\n};\n"]}
1
+ {"version":3,"file":"HistogramSettings.js","sourceRoot":"","sources":["../../../../src/charts/chart-types/histogram/HistogramSettings.tsx"],"names":[],"mappings":";AACA,OAAO,EAAC,KAAK,EAAC,MAAM,cAAc,CAAC;AACnC,OAAO,EAAC,KAAK,EAAC,MAAM,2BAA2B,CAAC;AAChD,OAAO,EAAC,cAAc,EAAC,MAAM,oCAAoC,CAAC;AAClE,OAAO,EAAC,aAAa,EAAC,MAAM,mCAAmC,CAAC;AAChE,OAAO,EAAC,6BAA6B,EAAC,MAAM,iDAAiD,CAAC;AAC9F,OAAO,EAAC,cAAc,EAAE,cAAc,EAAE,kBAAkB,EAAC,MAAM,UAAU,CAAC;AAC5E,OAAO,EACL,oBAAoB,EACpB,4BAA4B,GAC7B,MAAM,iCAAiC,CAAC;AAEzC,MAAM,CAAC,MAAM,0BAA0B,GAAO,GAAG,EAAE;IACjD,MAAM,EAAC,cAAc,EAAE,MAAM,EAAC,GAAG,6BAA6B,CAAC,WAAW,CAAC,CAAC;IAE5E,OAAO,CACL,eAAK,SAAS,EAAC,WAAW,aACxB,KAAC,KAAK,IAAC,KAAK,EAAC,OAAO,EAAC,QAAQ,kBAC3B,eAAK,SAAS,EAAC,sBAAsB,aACnC,KAAC,cAAc,CAAC,YAAY,IAC1B,SAAS,EAAC,QAAQ,EAClB,KAAK,EAAE,MAAM,CAAC,QAAQ,CAAC,KAAK,EAC5B,QAAQ,EAAE,CAAC,KAAK,EAAE,EAAE,CAAC,cAAc,CAAC,OAAO,EAAE,KAAK,CAAC,GACnD,EACF,KAAC,aAAa,IACZ,KAAK,EAAE,oBAAoB,EAC3B,KAAK,EAAE,MAAM,CAAC,QAAQ,CAAC,KAAK,IAAI,4BAA4B,EAC5D,QAAQ,EAAE,CAAC,KAAK,EAAE,EAAE,CAAC,cAAc,CAAC,OAAO,EAAE,KAAK,CAAC,GACnD,IACE,GACA,EACR,KAAC,KAAK,IAAC,KAAK,EAAC,UAAU,YACrB,KAAC,KAAK,IACJ,IAAI,EAAC,QAAQ,EACb,GAAG,EAAE,cAAc,EACnB,GAAG,EAAE,cAAc,EACnB,KAAK,EAAE,MAAM,CAAC,QAAQ,CAAC,OAAO,IAAI,kBAAkB,EACpD,SAAS,EAAC,YAAY,EACtB,QAAQ,EAAE,CAAC,CAAC,EAAE,EAAE,CACd,cAAc,CAAC,SAAS,EAAE,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC,EAEzD,WAAW,EAAE,MAAM,CAAC,kBAAkB,CAAC,GACvC,GACI,IACJ,CACP,CAAC;AACJ,CAAC,CAAC","sourcesContent":["import {type FC} from 'react';\nimport {Input} from '@sqlrooms/ui';\nimport {Field} from '../../../components/Field';\nimport {ColumnSelector} from '../../../components/ColumnSelector';\nimport {ColorSelector} from '../../../components/ColorSelector';\nimport {useMosaicChartSettingsContext} from '../../chart-settings/MosaicChartSettingsContext';\nimport {MIN_BINS_COUNT, MAX_BINS_COUNT, DEFAULT_BINS_COUNT} from './schema';\nimport {\n DEFAULT_CHART_COLORS,\n DEFAULT_CHART_FALLBACK_COLOR,\n} from '../../../constants/chart-colors';\n\nexport const HistogramSettingsComponent: FC = () => {\n const {onChangeConfig, config} = useMosaicChartSettingsContext('histogram');\n\n return (\n <div className=\"space-y-4\">\n <Field label=\"Field\" required>\n <div className=\"flex items-end gap-2\">\n <ColumnSelector.Quantitative\n className=\"flex-1\"\n value={config.settings.field}\n onChange={(field) => onChangeConfig('field', field)}\n />\n <ColorSelector\n items={DEFAULT_CHART_COLORS}\n value={config.settings.color ?? DEFAULT_CHART_FALLBACK_COLOR}\n onChange={(color) => onChangeConfig('color', color)}\n />\n </div>\n </Field>\n <Field label=\"Max Bins\">\n <Input\n type=\"number\"\n min={MIN_BINS_COUNT}\n max={MAX_BINS_COUNT}\n value={config.settings.maxBins ?? DEFAULT_BINS_COUNT}\n className=\"no-spinner\"\n onChange={(e) =>\n onChangeConfig('maxBins', parseInt(e.target.value, 10))\n }\n placeholder={String(DEFAULT_BINS_COUNT)}\n />\n </Field>\n </div>\n );\n};\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"definition.d.ts","sourceRoot":"","sources":["../../../../src/charts/chart-types/histogram/definition.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAC,uBAAuB,EAAC,MAAM,eAAe,CAAC;AAC3D,OAAO,EAAC,oBAAoB,EAAyB,MAAM,UAAU,CAAC;AAStE,eAAO,MAAM,kBAAkB,EAAE,uBAAuB,CAAC,oBAAoB,CAW1E,CAAC"}
1
+ {"version":3,"file":"definition.d.ts","sourceRoot":"","sources":["../../../../src/charts/chart-types/histogram/definition.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAC,uBAAuB,EAAC,MAAM,eAAe,CAAC;AAC3D,OAAO,EAAC,oBAAoB,EAAyB,MAAM,UAAU,CAAC;AAStE,eAAO,MAAM,kBAAkB,EAAE,uBAAuB,CAAC,oBAAoB,CAY1E,CAAC"}
@@ -9,6 +9,7 @@ export const histogramChartType = {
9
9
  id: 'histogram',
10
10
  label: 'Histogram',
11
11
  description: DESCRIPTION,
12
+ aiDescription: `${DESCRIPTION} - distribution of numeric values (always safe, aggregates automatically)`,
12
13
  icon: BarChart3,
13
14
  schema: HistogramChartSettings,
14
15
  settingsComponent: HistogramSettingsComponent,
@@ -1 +1 @@
1
- {"version":3,"file":"definition.js","sourceRoot":"","sources":["../../../../src/charts/chart-types/histogram/definition.ts"],"names":[],"mappings":"AACA,OAAO,EAAuB,sBAAsB,EAAC,MAAM,UAAU,CAAC;AACtE,OAAO,EAAC,oBAAoB,EAAC,MAAM,wCAAwC,CAAC;AAC5E,OAAO,EAAC,0BAA0B,EAAC,MAAM,qBAAqB,CAAC;AAC/D,OAAO,EAAC,qBAAqB,EAAC,MAAM,QAAQ,CAAC;AAC7C,OAAO,EAAC,SAAS,EAAC,MAAM,cAAc,CAAC;AACvC,OAAO,EAAC,mBAAmB,EAAC,MAAM,QAAQ,CAAC;AAE3C,MAAM,WAAW,GAAG,+BAA+B,CAAC;AAEpD,MAAM,CAAC,MAAM,kBAAkB,GAC7B;IACE,EAAE,EAAE,WAAW;IACf,KAAK,EAAE,WAAW;IAClB,WAAW,EAAE,WAAW;IACxB,IAAI,EAAE,SAAS;IACf,MAAM,EAAE,sBAAsB;IAC9B,iBAAiB,EAAE,0BAA0B;IAC7C,UAAU,EAAE,oBAAoB,CAAC,WAAW,CAAC;IAC7C,UAAU,EAAE,qBAAqB;IACjC,UAAU,EAAE,mBAAmB;CAChC,CAAC","sourcesContent":["import type {SpecChartTypeDefinition} from '../base-types';\nimport {HistogramChartConfig, HistogramChartSettings} from './schema';\nimport {titleFromDescription} from '../../../chart-builders/chartTypeUtils';\nimport {HistogramSettingsComponent} from './HistogramSettings';\nimport {createHistogramAiTool} from './tool';\nimport {BarChart3} from 'lucide-react';\nimport {createHistogramSpec} from './spec';\n\nconst DESCRIPTION = 'Create a histogram of a field';\n\nexport const histogramChartType: SpecChartTypeDefinition<HistogramChartConfig> =\n {\n id: 'histogram',\n label: 'Histogram',\n description: DESCRIPTION,\n icon: BarChart3,\n schema: HistogramChartSettings,\n settingsComponent: HistogramSettingsComponent,\n buildTitle: titleFromDescription(DESCRIPTION),\n createTool: createHistogramAiTool,\n createSpec: createHistogramSpec,\n };\n"]}
1
+ {"version":3,"file":"definition.js","sourceRoot":"","sources":["../../../../src/charts/chart-types/histogram/definition.ts"],"names":[],"mappings":"AACA,OAAO,EAAuB,sBAAsB,EAAC,MAAM,UAAU,CAAC;AACtE,OAAO,EAAC,oBAAoB,EAAC,MAAM,wCAAwC,CAAC;AAC5E,OAAO,EAAC,0BAA0B,EAAC,MAAM,qBAAqB,CAAC;AAC/D,OAAO,EAAC,qBAAqB,EAAC,MAAM,QAAQ,CAAC;AAC7C,OAAO,EAAC,SAAS,EAAC,MAAM,cAAc,CAAC;AACvC,OAAO,EAAC,mBAAmB,EAAC,MAAM,QAAQ,CAAC;AAE3C,MAAM,WAAW,GAAG,+BAA+B,CAAC;AAEpD,MAAM,CAAC,MAAM,kBAAkB,GAC7B;IACE,EAAE,EAAE,WAAW;IACf,KAAK,EAAE,WAAW;IAClB,WAAW,EAAE,WAAW;IACxB,aAAa,EAAE,GAAG,WAAW,2EAA2E;IACxG,IAAI,EAAE,SAAS;IACf,MAAM,EAAE,sBAAsB;IAC9B,iBAAiB,EAAE,0BAA0B;IAC7C,UAAU,EAAE,oBAAoB,CAAC,WAAW,CAAC;IAC7C,UAAU,EAAE,qBAAqB;IACjC,UAAU,EAAE,mBAAmB;CAChC,CAAC","sourcesContent":["import type {SpecChartTypeDefinition} from '../base-types';\nimport {HistogramChartConfig, HistogramChartSettings} from './schema';\nimport {titleFromDescription} from '../../../chart-builders/chartTypeUtils';\nimport {HistogramSettingsComponent} from './HistogramSettings';\nimport {createHistogramAiTool} from './tool';\nimport {BarChart3} from 'lucide-react';\nimport {createHistogramSpec} from './spec';\n\nconst DESCRIPTION = 'Create a histogram of a field';\n\nexport const histogramChartType: SpecChartTypeDefinition<HistogramChartConfig> =\n {\n id: 'histogram',\n label: 'Histogram',\n description: DESCRIPTION,\n aiDescription: `${DESCRIPTION} - distribution of numeric values (always safe, aggregates automatically)`,\n icon: BarChart3,\n schema: HistogramChartSettings,\n settingsComponent: HistogramSettingsComponent,\n buildTitle: titleFromDescription(DESCRIPTION),\n createTool: createHistogramAiTool,\n createSpec: createHistogramSpec,\n };\n"]}
@@ -5,6 +5,7 @@ export declare const DEFAULT_BINS_COUNT = 20;
5
5
  export declare const HistogramChartSettings: z.ZodObject<{
6
6
  field: z.ZodOptional<z.ZodString>;
7
7
  maxBins: z.ZodOptional<z.ZodDefault<z.ZodNumber>>;
8
+ color: z.ZodOptional<z.ZodString>;
8
9
  }, z.core.$strip>;
9
10
  export type HistogramChartSettings = z.infer<typeof HistogramChartSettings>;
10
11
  export declare const HistogramChartConfig: z.ZodObject<{
@@ -12,6 +13,7 @@ export declare const HistogramChartConfig: z.ZodObject<{
12
13
  settings: z.ZodObject<{
13
14
  field: z.ZodOptional<z.ZodString>;
14
15
  maxBins: z.ZodOptional<z.ZodDefault<z.ZodNumber>>;
16
+ color: z.ZodOptional<z.ZodString>;
15
17
  }, z.core.$strip>;
16
18
  settingsOpen: z.ZodOptional<z.ZodBoolean>;
17
19
  dataPolicy: z.ZodOptional<z.ZodObject<{
@@ -1 +1 @@
1
- {"version":3,"file":"schema.d.ts","sourceRoot":"","sources":["../../../../src/charts/chart-types/histogram/schema.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,CAAC,EAAC,MAAM,KAAK,CAAC;AAGtB,eAAO,MAAM,cAAc,IAAI,CAAC;AAChC,eAAO,MAAM,cAAc,OAAO,CAAC;AACnC,eAAO,MAAM,kBAAkB,KAAK,CAAC;AAErC,eAAO,MAAM,sBAAsB;;;iBAejC,CAAC;AAEH,MAAM,MAAM,sBAAsB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,sBAAsB,CAAC,CAAC;AAE5E,eAAO,MAAM,oBAAoB;;;;;;;;;;;;iBAK/B,CAAC;AAEH,MAAM,MAAM,oBAAoB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,oBAAoB,CAAC,CAAC"}
1
+ {"version":3,"file":"schema.d.ts","sourceRoot":"","sources":["../../../../src/charts/chart-types/histogram/schema.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,CAAC,EAAC,MAAM,KAAK,CAAC;AAGtB,eAAO,MAAM,cAAc,IAAI,CAAC;AAChC,eAAO,MAAM,cAAc,OAAO,CAAC;AACnC,eAAO,MAAM,kBAAkB,KAAK,CAAC;AAErC,eAAO,MAAM,sBAAsB;;;;iBAgBjC,CAAC;AAEH,MAAM,MAAM,sBAAsB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,sBAAsB,CAAC,CAAC;AAE5E,eAAO,MAAM,oBAAoB;;;;;;;;;;;;;iBAK/B,CAAC;AAEH,MAAM,MAAM,oBAAoB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,oBAAoB,CAAC,CAAC"}
@@ -16,6 +16,7 @@ export const HistogramChartSettings = z.object({
16
16
  .default(DEFAULT_BINS_COUNT)
17
17
  .optional()
18
18
  .describe(`Maximum number of bins for the histogram (default: ${DEFAULT_BINS_COUNT})`),
19
+ color: z.string().optional().describe('Optional color for histogram bars'),
19
20
  });
20
21
  export const HistogramChartConfig = z.object({
21
22
  chartType: z.literal('histogram'),
@@ -1 +1 @@
1
- {"version":3,"file":"schema.js","sourceRoot":"","sources":["../../../../src/charts/chart-types/histogram/schema.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,CAAC,EAAC,MAAM,KAAK,CAAC;AACtB,OAAO,EAAC,6BAA6B,EAAC,MAAM,uBAAuB,CAAC;AAEpE,MAAM,CAAC,MAAM,cAAc,GAAG,CAAC,CAAC;AAChC,MAAM,CAAC,MAAM,cAAc,GAAG,IAAI,CAAC;AACnC,MAAM,CAAC,MAAM,kBAAkB,GAAG,EAAE,CAAC;AAErC,MAAM,CAAC,MAAM,sBAAsB,GAAG,CAAC,CAAC,MAAM,CAAC;IAC7C,KAAK,EAAE,CAAC;SACL,MAAM,EAAE;SACR,QAAQ,EAAE;SACV,QAAQ,CAAC,qDAAqD,CAAC;IAClE,OAAO,EAAE,CAAC;SACP,MAAM,EAAE;SACR,GAAG,EAAE;SACL,GAAG,CAAC,cAAc,CAAC;SACnB,GAAG,CAAC,cAAc,CAAC;SACnB,OAAO,CAAC,kBAAkB,CAAC;SAC3B,QAAQ,EAAE;SACV,QAAQ,CACP,sDAAsD,kBAAkB,GAAG,CAC5E;CACJ,CAAC,CAAC;AAIH,MAAM,CAAC,MAAM,oBAAoB,GAAG,CAAC,CAAC,MAAM,CAAC;IAC3C,SAAS,EAAE,CAAC,CAAC,OAAO,CAAC,WAAW,CAAC;IACjC,QAAQ,EAAE,sBAAsB;IAChC,YAAY,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,QAAQ,EAAE;IACpC,UAAU,EAAE,6BAA6B,CAAC,QAAQ,EAAE;CACrD,CAAC,CAAC","sourcesContent":["import {z} from 'zod';\nimport {ChartDataPolicyOverrideConfig} from '../data-policy-schema';\n\nexport const MIN_BINS_COUNT = 1;\nexport const MAX_BINS_COUNT = 1000;\nexport const DEFAULT_BINS_COUNT = 20;\n\nexport const HistogramChartSettings = z.object({\n field: z\n .string()\n .optional()\n .describe('Numeric column to create histogram distribution for'),\n maxBins: z\n .number()\n .int()\n .min(MIN_BINS_COUNT)\n .max(MAX_BINS_COUNT)\n .default(DEFAULT_BINS_COUNT)\n .optional()\n .describe(\n `Maximum number of bins for the histogram (default: ${DEFAULT_BINS_COUNT})`,\n ),\n});\n\nexport type HistogramChartSettings = z.infer<typeof HistogramChartSettings>;\n\nexport const HistogramChartConfig = z.object({\n chartType: z.literal('histogram'),\n settings: HistogramChartSettings,\n settingsOpen: z.boolean().optional(),\n dataPolicy: ChartDataPolicyOverrideConfig.optional(),\n});\n\nexport type HistogramChartConfig = z.infer<typeof HistogramChartConfig>;\n"]}
1
+ {"version":3,"file":"schema.js","sourceRoot":"","sources":["../../../../src/charts/chart-types/histogram/schema.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,CAAC,EAAC,MAAM,KAAK,CAAC;AACtB,OAAO,EAAC,6BAA6B,EAAC,MAAM,uBAAuB,CAAC;AAEpE,MAAM,CAAC,MAAM,cAAc,GAAG,CAAC,CAAC;AAChC,MAAM,CAAC,MAAM,cAAc,GAAG,IAAI,CAAC;AACnC,MAAM,CAAC,MAAM,kBAAkB,GAAG,EAAE,CAAC;AAErC,MAAM,CAAC,MAAM,sBAAsB,GAAG,CAAC,CAAC,MAAM,CAAC;IAC7C,KAAK,EAAE,CAAC;SACL,MAAM,EAAE;SACR,QAAQ,EAAE;SACV,QAAQ,CAAC,qDAAqD,CAAC;IAClE,OAAO,EAAE,CAAC;SACP,MAAM,EAAE;SACR,GAAG,EAAE;SACL,GAAG,CAAC,cAAc,CAAC;SACnB,GAAG,CAAC,cAAc,CAAC;SACnB,OAAO,CAAC,kBAAkB,CAAC;SAC3B,QAAQ,EAAE;SACV,QAAQ,CACP,sDAAsD,kBAAkB,GAAG,CAC5E;IACH,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,mCAAmC,CAAC;CAC3E,CAAC,CAAC;AAIH,MAAM,CAAC,MAAM,oBAAoB,GAAG,CAAC,CAAC,MAAM,CAAC;IAC3C,SAAS,EAAE,CAAC,CAAC,OAAO,CAAC,WAAW,CAAC;IACjC,QAAQ,EAAE,sBAAsB;IAChC,YAAY,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,QAAQ,EAAE;IACpC,UAAU,EAAE,6BAA6B,CAAC,QAAQ,EAAE;CACrD,CAAC,CAAC","sourcesContent":["import {z} from 'zod';\nimport {ChartDataPolicyOverrideConfig} from '../data-policy-schema';\n\nexport const MIN_BINS_COUNT = 1;\nexport const MAX_BINS_COUNT = 1000;\nexport const DEFAULT_BINS_COUNT = 20;\n\nexport const HistogramChartSettings = z.object({\n field: z\n .string()\n .optional()\n .describe('Numeric column to create histogram distribution for'),\n maxBins: z\n .number()\n .int()\n .min(MIN_BINS_COUNT)\n .max(MAX_BINS_COUNT)\n .default(DEFAULT_BINS_COUNT)\n .optional()\n .describe(\n `Maximum number of bins for the histogram (default: ${DEFAULT_BINS_COUNT})`,\n ),\n color: z.string().optional().describe('Optional color for histogram bars'),\n});\n\nexport type HistogramChartSettings = z.infer<typeof HistogramChartSettings>;\n\nexport const HistogramChartConfig = z.object({\n chartType: z.literal('histogram'),\n settings: HistogramChartSettings,\n settingsOpen: z.boolean().optional(),\n dataPolicy: ChartDataPolicyOverrideConfig.optional(),\n});\n\nexport type HistogramChartConfig = z.infer<typeof HistogramChartConfig>;\n"]}
@@ -1,4 +1,5 @@
1
1
  import type { Spec } from '@uwdata/mosaic-spec';
2
2
  import { HistogramChartSettings } from './schema';
3
- export declare function createHistogramSpec(tableName: string, { field, maxBins }: HistogramChartSettings): Spec;
3
+ import { CreateSpecOptions } from '../base-types';
4
+ export declare function createHistogramSpec(options: CreateSpecOptions<HistogramChartSettings>): Spec;
4
5
  //# sourceMappingURL=spec.d.ts.map