@sqlrooms/mosaic 0.29.0-rc.8 → 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 (363) hide show
  1. package/README.md +84 -74
  2. package/dist/ai/agentIntent.d.ts +5 -0
  3. package/dist/ai/agentIntent.d.ts.map +1 -0
  4. package/dist/ai/agentIntent.js +8 -0
  5. package/dist/ai/agentIntent.js.map +1 -0
  6. package/dist/ai/block-document/constants.d.ts +9 -0
  7. package/dist/ai/block-document/constants.d.ts.map +1 -0
  8. package/dist/ai/block-document/constants.js +9 -0
  9. package/dist/ai/block-document/constants.js.map +1 -0
  10. package/dist/ai/block-document/createAddMosaicDashboardBlockTool.d.ts +48 -0
  11. package/dist/ai/block-document/createAddMosaicDashboardBlockTool.d.ts.map +1 -0
  12. package/dist/ai/block-document/createAddMosaicDashboardBlockTool.js +59 -0
  13. package/dist/ai/block-document/createAddMosaicDashboardBlockTool.js.map +1 -0
  14. package/dist/ai/block-document/createBlockDocumentChartTools.d.ts +19 -0
  15. package/dist/ai/block-document/createBlockDocumentChartTools.d.ts.map +1 -0
  16. package/dist/ai/block-document/createBlockDocumentChartTools.js +37 -0
  17. package/dist/ai/block-document/createBlockDocumentChartTools.js.map +1 -0
  18. package/dist/ai/block-document/createBlockDocumentDataTableExplorerTool.d.ts +32 -0
  19. package/dist/ai/block-document/createBlockDocumentDataTableExplorerTool.d.ts.map +1 -0
  20. package/dist/ai/block-document/createBlockDocumentDataTableExplorerTool.js +37 -0
  21. package/dist/ai/block-document/createBlockDocumentDataTableExplorerTool.js.map +1 -0
  22. package/dist/ai/constants.d.ts +3 -0
  23. package/dist/ai/constants.d.ts.map +1 -0
  24. package/dist/ai/constants.js +3 -0
  25. package/dist/ai/constants.js.map +1 -0
  26. package/dist/ai/createDataTableExplorerTool.d.ts +69 -0
  27. package/dist/ai/createDataTableExplorerTool.d.ts.map +1 -0
  28. package/dist/ai/createDataTableExplorerTool.js +68 -0
  29. package/dist/ai/createDataTableExplorerTool.js.map +1 -0
  30. package/dist/ai/dashboard/constants.d.ts +6 -0
  31. package/dist/ai/dashboard/constants.d.ts.map +1 -0
  32. package/dist/ai/dashboard/constants.js +6 -0
  33. package/dist/ai/dashboard/constants.js.map +1 -0
  34. package/dist/ai/dashboard/createDashboardAgentTool.d.ts +17 -0
  35. package/dist/ai/dashboard/createDashboardAgentTool.d.ts.map +1 -0
  36. package/dist/ai/dashboard/createDashboardAgentTool.js +205 -0
  37. package/dist/ai/dashboard/createDashboardAgentTool.js.map +1 -0
  38. package/dist/ai/dashboard/createDashboardAiAdapter.d.ts +14 -0
  39. package/dist/ai/dashboard/createDashboardAiAdapter.d.ts.map +1 -0
  40. package/dist/ai/dashboard/createDashboardAiAdapter.js +75 -0
  41. package/dist/ai/dashboard/createDashboardAiAdapter.js.map +1 -0
  42. package/dist/ai/dashboard/createDashboardAiTools.d.ts +26 -0
  43. package/dist/ai/dashboard/createDashboardAiTools.d.ts.map +1 -0
  44. package/dist/ai/dashboard/createDashboardAiTools.js +40 -0
  45. package/dist/ai/dashboard/createDashboardAiTools.js.map +1 -0
  46. package/dist/ai/dashboard/createDashboardChartTools.d.ts +27 -0
  47. package/dist/ai/dashboard/createDashboardChartTools.d.ts.map +1 -0
  48. package/dist/ai/dashboard/createDashboardChartTools.js +55 -0
  49. package/dist/ai/dashboard/createDashboardChartTools.js.map +1 -0
  50. package/dist/ai/dashboard/createDashboardDataTableExplorerTool.d.ts +23 -0
  51. package/dist/ai/dashboard/createDashboardDataTableExplorerTool.d.ts.map +1 -0
  52. package/dist/ai/dashboard/createDashboardDataTableExplorerTool.js +29 -0
  53. package/dist/ai/dashboard/createDashboardDataTableExplorerTool.js.map +1 -0
  54. package/dist/ai/dashboard/createListDashboardPanelsTool.d.ts +28 -0
  55. package/dist/ai/dashboard/createListDashboardPanelsTool.d.ts.map +1 -0
  56. package/dist/ai/dashboard/createListDashboardPanelsTool.js +54 -0
  57. package/dist/ai/dashboard/createListDashboardPanelsTool.js.map +1 -0
  58. package/dist/ai/dashboard/dashboard-types.d.ts +59 -0
  59. package/dist/ai/dashboard/dashboard-types.d.ts.map +1 -0
  60. package/dist/ai/dashboard/dashboard-types.js +2 -0
  61. package/dist/ai/dashboard/dashboard-types.js.map +1 -0
  62. package/dist/ai/database-types.d.ts +12 -0
  63. package/dist/ai/database-types.d.ts.map +1 -0
  64. package/dist/ai/database-types.js +2 -0
  65. package/dist/ai/database-types.js.map +1 -0
  66. package/dist/ai/errors.d.ts +8 -0
  67. package/dist/ai/errors.d.ts.map +1 -0
  68. package/dist/ai/errors.js +11 -0
  69. package/dist/ai/errors.js.map +1 -0
  70. package/dist/ai/tool-helpers.d.ts +28 -29
  71. package/dist/ai/tool-helpers.d.ts.map +1 -1
  72. package/dist/ai/tool-helpers.js +38 -76
  73. package/dist/ai/tool-helpers.js.map +1 -1
  74. package/dist/ai/tool-schemas.d.ts +9 -4
  75. package/dist/ai/tool-schemas.d.ts.map +1 -1
  76. package/dist/ai/tool-schemas.js +12 -12
  77. package/dist/ai/tool-schemas.js.map +1 -1
  78. package/dist/ai/tool-types.d.ts +19 -1
  79. package/dist/ai/tool-types.d.ts.map +1 -1
  80. package/dist/ai/tool-types.js.map +1 -1
  81. package/dist/ai/types.d.ts +64 -0
  82. package/dist/ai/types.d.ts.map +1 -0
  83. package/dist/ai/types.js +2 -0
  84. package/dist/ai/types.js.map +1 -0
  85. package/dist/ai.d.ts +16 -2
  86. package/dist/ai.d.ts.map +1 -1
  87. package/dist/ai.js +14 -5
  88. package/dist/ai.js.map +1 -1
  89. package/dist/charts/MosaicChart.js +1 -1
  90. package/dist/charts/MosaicChart.js.map +1 -1
  91. package/dist/charts/MosaicChartView.d.ts.map +1 -1
  92. package/dist/charts/MosaicChartView.js +1 -2
  93. package/dist/charts/MosaicChartView.js.map +1 -1
  94. package/dist/charts/chart-settings/MosaicChartSpecViewerPanel.d.ts.map +1 -1
  95. package/dist/charts/chart-settings/MosaicChartSpecViewerPanel.js +2 -1
  96. package/dist/charts/chart-settings/MosaicChartSpecViewerPanel.js.map +1 -1
  97. package/dist/charts/chart-settings/MosaicChartTypeSelector.d.ts.map +1 -1
  98. package/dist/charts/chart-settings/MosaicChartTypeSelector.js +4 -11
  99. package/dist/charts/chart-settings/MosaicChartTypeSelector.js.map +1 -1
  100. package/dist/charts/chart-types/base-types.d.ts +27 -23
  101. package/dist/charts/chart-types/base-types.d.ts.map +1 -1
  102. package/dist/charts/chart-types/base-types.js +3 -1
  103. package/dist/charts/chart-types/base-types.js.map +1 -1
  104. package/dist/charts/chart-types/box-plot/definition.d.ts.map +1 -1
  105. package/dist/charts/chart-types/box-plot/definition.js +1 -0
  106. package/dist/charts/chart-types/box-plot/definition.js.map +1 -1
  107. package/dist/charts/chart-types/box-plot/renderer/BoxPlotClient.d.ts +37 -3
  108. package/dist/charts/chart-types/box-plot/renderer/BoxPlotClient.d.ts.map +1 -1
  109. package/dist/charts/chart-types/box-plot/renderer/BoxPlotClient.js +26 -6
  110. package/dist/charts/chart-types/box-plot/renderer/BoxPlotClient.js.map +1 -1
  111. package/dist/charts/chart-types/box-plot/renderer/BoxPlotPanelRenderer.js +2 -2
  112. package/dist/charts/chart-types/box-plot/renderer/BoxPlotPanelRenderer.js.map +1 -1
  113. package/dist/charts/chart-types/box-plot/renderer/useBoxPlotClient.d.ts +12 -1
  114. package/dist/charts/chart-types/box-plot/renderer/useBoxPlotClient.d.ts.map +1 -1
  115. package/dist/charts/chart-types/box-plot/renderer/useBoxPlotClient.js +13 -3
  116. package/dist/charts/chart-types/box-plot/renderer/useBoxPlotClient.js.map +1 -1
  117. package/dist/charts/chart-types/box-plot/tool.d.ts +20 -24
  118. package/dist/charts/chart-types/box-plot/tool.d.ts.map +1 -1
  119. package/dist/charts/chart-types/box-plot/tool.js +25 -33
  120. package/dist/charts/chart-types/box-plot/tool.js.map +1 -1
  121. package/dist/charts/chart-types/box-plot/validation.d.ts +9 -0
  122. package/dist/charts/chart-types/box-plot/validation.d.ts.map +1 -0
  123. package/dist/charts/chart-types/box-plot/validation.js +32 -0
  124. package/dist/charts/chart-types/box-plot/validation.js.map +1 -0
  125. package/dist/charts/chart-types/column-types.d.ts +8 -0
  126. package/dist/charts/chart-types/column-types.d.ts.map +1 -0
  127. package/dist/charts/chart-types/column-types.js +2 -0
  128. package/dist/charts/chart-types/column-types.js.map +1 -0
  129. package/dist/charts/chart-types/count-plot/definition.d.ts.map +1 -1
  130. package/dist/charts/chart-types/count-plot/definition.js +1 -0
  131. package/dist/charts/chart-types/count-plot/definition.js.map +1 -1
  132. package/dist/charts/chart-types/count-plot/spec.d.ts.map +1 -1
  133. package/dist/charts/chart-types/count-plot/spec.js +1 -19
  134. package/dist/charts/chart-types/count-plot/spec.js.map +1 -1
  135. package/dist/charts/chart-types/count-plot/tool.d.ts +19 -24
  136. package/dist/charts/chart-types/count-plot/tool.d.ts.map +1 -1
  137. package/dist/charts/chart-types/count-plot/tool.js +25 -32
  138. package/dist/charts/chart-types/count-plot/tool.js.map +1 -1
  139. package/dist/charts/chart-types/count-plot/validation.d.ts +8 -0
  140. package/dist/charts/chart-types/count-plot/validation.d.ts.map +1 -0
  141. package/dist/charts/chart-types/count-plot/validation.js +20 -0
  142. package/dist/charts/chart-types/count-plot/validation.js.map +1 -0
  143. package/dist/charts/chart-types/createChartInstructions.d.ts +3 -0
  144. package/dist/charts/chart-types/createChartInstructions.d.ts.map +1 -0
  145. package/dist/charts/chart-types/createChartInstructions.js +12 -0
  146. package/dist/charts/chart-types/createChartInstructions.js.map +1 -0
  147. package/dist/charts/chart-types/createChartTools.d.ts +15 -9
  148. package/dist/charts/chart-types/createChartTools.d.ts.map +1 -1
  149. package/dist/charts/chart-types/createChartTools.js +16 -10
  150. package/dist/charts/chart-types/createChartTools.js.map +1 -1
  151. package/dist/charts/chart-types/custom-spec/definition.d.ts.map +1 -1
  152. package/dist/charts/chart-types/custom-spec/definition.js +1 -0
  153. package/dist/charts/chart-types/custom-spec/definition.js.map +1 -1
  154. package/dist/charts/chart-types/errors.d.ts +10 -0
  155. package/dist/charts/chart-types/errors.d.ts.map +1 -1
  156. package/dist/charts/chart-types/errors.js +18 -0
  157. package/dist/charts/chart-types/errors.js.map +1 -1
  158. package/dist/charts/chart-types/heatmap/definition.d.ts.map +1 -1
  159. package/dist/charts/chart-types/heatmap/definition.js +1 -0
  160. package/dist/charts/chart-types/heatmap/definition.js.map +1 -1
  161. package/dist/charts/chart-types/heatmap/spec.d.ts.map +1 -1
  162. package/dist/charts/chart-types/heatmap/spec.js +1 -33
  163. package/dist/charts/chart-types/heatmap/spec.js.map +1 -1
  164. package/dist/charts/chart-types/heatmap/tool.d.ts +20 -24
  165. package/dist/charts/chart-types/heatmap/tool.d.ts.map +1 -1
  166. package/dist/charts/chart-types/heatmap/tool.js +26 -36
  167. package/dist/charts/chart-types/heatmap/tool.js.map +1 -1
  168. package/dist/charts/chart-types/heatmap/validation.d.ts +9 -0
  169. package/dist/charts/chart-types/heatmap/validation.d.ts.map +1 -0
  170. package/dist/charts/chart-types/heatmap/validation.js +34 -0
  171. package/dist/charts/chart-types/heatmap/validation.js.map +1 -0
  172. package/dist/charts/chart-types/histogram/definition.d.ts.map +1 -1
  173. package/dist/charts/chart-types/histogram/definition.js +1 -0
  174. package/dist/charts/chart-types/histogram/definition.js.map +1 -1
  175. package/dist/charts/chart-types/histogram/spec.d.ts.map +1 -1
  176. package/dist/charts/chart-types/histogram/spec.js +1 -21
  177. package/dist/charts/chart-types/histogram/spec.js.map +1 -1
  178. package/dist/charts/chart-types/histogram/tool.d.ts +37 -24
  179. package/dist/charts/chart-types/histogram/tool.d.ts.map +1 -1
  180. package/dist/charts/chart-types/histogram/tool.js +38 -32
  181. package/dist/charts/chart-types/histogram/tool.js.map +1 -1
  182. package/dist/charts/chart-types/histogram/validation.d.ts +9 -0
  183. package/dist/charts/chart-types/histogram/validation.d.ts.map +1 -0
  184. package/dist/charts/chart-types/histogram/validation.js +22 -0
  185. package/dist/charts/chart-types/histogram/validation.js.map +1 -0
  186. package/dist/charts/chart-types/index.d.ts +1 -7
  187. package/dist/charts/chart-types/index.d.ts.map +1 -1
  188. package/dist/charts/chart-types/index.js +2 -8
  189. package/dist/charts/chart-types/index.js.map +1 -1
  190. package/dist/charts/chart-types/line-chart/definition.d.ts.map +1 -1
  191. package/dist/charts/chart-types/line-chart/definition.js +1 -0
  192. package/dist/charts/chart-types/line-chart/definition.js.map +1 -1
  193. package/dist/charts/chart-types/line-chart/spec.d.ts.map +1 -1
  194. package/dist/charts/chart-types/line-chart/spec.js +5 -46
  195. package/dist/charts/chart-types/line-chart/spec.js.map +1 -1
  196. package/dist/charts/chart-types/line-chart/tool.d.ts +26 -24
  197. package/dist/charts/chart-types/line-chart/tool.d.ts.map +1 -1
  198. package/dist/charts/chart-types/line-chart/tool.js +26 -38
  199. package/dist/charts/chart-types/line-chart/tool.js.map +1 -1
  200. package/dist/charts/chart-types/line-chart/validation.d.ts +16 -0
  201. package/dist/charts/chart-types/line-chart/validation.d.ts.map +1 -0
  202. package/dist/charts/chart-types/line-chart/validation.js +43 -0
  203. package/dist/charts/chart-types/line-chart/validation.js.map +1 -0
  204. package/dist/charts/chart-types/resolveChartTypes.d.ts +3 -0
  205. package/dist/charts/chart-types/resolveChartTypes.d.ts.map +1 -0
  206. package/dist/charts/chart-types/resolveChartTypes.js +8 -0
  207. package/dist/charts/chart-types/resolveChartTypes.js.map +1 -0
  208. package/dist/charts/chart-types/scatter-plot/definition.d.ts.map +1 -1
  209. package/dist/charts/chart-types/scatter-plot/definition.js +1 -0
  210. package/dist/charts/chart-types/scatter-plot/definition.js.map +1 -1
  211. package/dist/charts/chart-types/scatter-plot/spec.d.ts.map +1 -1
  212. package/dist/charts/chart-types/scatter-plot/spec.js +1 -45
  213. package/dist/charts/chart-types/scatter-plot/spec.js.map +1 -1
  214. package/dist/charts/chart-types/scatter-plot/tool.d.ts +21 -24
  215. package/dist/charts/chart-types/scatter-plot/tool.d.ts.map +1 -1
  216. package/dist/charts/chart-types/scatter-plot/tool.js +28 -41
  217. package/dist/charts/chart-types/scatter-plot/tool.js.map +1 -1
  218. package/dist/charts/chart-types/scatter-plot/validation.d.ts +13 -0
  219. package/dist/charts/chart-types/scatter-plot/validation.d.ts.map +1 -0
  220. package/dist/charts/chart-types/scatter-plot/validation.js +52 -0
  221. package/dist/charts/chart-types/scatter-plot/validation.js.map +1 -0
  222. package/dist/charts/chart-types/tool-types.d.ts +43 -0
  223. package/dist/charts/chart-types/tool-types.d.ts.map +1 -0
  224. package/dist/charts/chart-types/tool-types.js +2 -0
  225. package/dist/charts/chart-types/tool-types.js.map +1 -0
  226. package/dist/charts/chart-types/utils.d.ts +3 -0
  227. package/dist/charts/chart-types/utils.d.ts.map +1 -0
  228. package/dist/charts/chart-types/utils.js +4 -0
  229. package/dist/charts/chart-types/utils.js.map +1 -0
  230. package/dist/charts/dashboard/MosaicDashboardChartRenderer.d.ts.map +1 -1
  231. package/dist/charts/dashboard/MosaicDashboardChartRenderer.js +5 -3
  232. package/dist/charts/dashboard/MosaicDashboardChartRenderer.js.map +1 -1
  233. package/dist/charts/useChartDataPolicy.js +2 -2
  234. package/dist/charts/useChartDataPolicy.js.map +1 -1
  235. package/dist/components/AggregationSelector.d.ts.map +1 -1
  236. package/dist/components/AggregationSelector.js +1 -1
  237. package/dist/components/AggregationSelector.js.map +1 -1
  238. package/dist/components/ColorSelector.d.ts.map +1 -1
  239. package/dist/components/ColorSelector.js +1 -2
  240. package/dist/components/ColorSelector.js.map +1 -1
  241. package/dist/components/FieldSelectorInput.d.ts.map +1 -1
  242. package/dist/components/FieldSelectorInput.js +3 -3
  243. package/dist/components/FieldSelectorInput.js.map +1 -1
  244. package/dist/components/TemporalGranularitySelector.d.ts.map +1 -1
  245. package/dist/components/TemporalGranularitySelector.js +1 -1
  246. package/dist/components/TemporalGranularitySelector.js.map +1 -1
  247. package/dist/dashboard/MosaicDashboardCommands.d.ts +19 -0
  248. package/dist/dashboard/MosaicDashboardCommands.d.ts.map +1 -0
  249. package/dist/dashboard/MosaicDashboardCommands.js +226 -0
  250. package/dist/dashboard/MosaicDashboardCommands.js.map +1 -0
  251. package/dist/dashboard/dashboard-types.d.ts.map +1 -1
  252. package/dist/dashboard/dashboard-types.js.map +1 -1
  253. package/dist/dashboard/panel/MosaicDashboardPanel.d.ts.map +1 -1
  254. package/dist/dashboard/panel/MosaicDashboardPanel.js +1 -1
  255. package/dist/dashboard/panel/MosaicDashboardPanel.js.map +1 -1
  256. package/dist/dashboard/panel/MosaicDashboardPanelLayout.d.ts.map +1 -1
  257. package/dist/dashboard/panel/MosaicDashboardPanelLayout.js +3 -3
  258. package/dist/dashboard/panel/MosaicDashboardPanelLayout.js.map +1 -1
  259. package/dist/dashboard/panel/MosaicDashboardPanels.d.ts.map +1 -1
  260. package/dist/dashboard/panel/MosaicDashboardPanels.js +4 -2
  261. package/dist/dashboard/panel/MosaicDashboardPanels.js.map +1 -1
  262. package/dist/dashboard/toolbar/MosaicDashboardDataTableSelector.d.ts.map +1 -1
  263. package/dist/dashboard/toolbar/MosaicDashboardDataTableSelector.js +4 -4
  264. package/dist/dashboard/toolbar/MosaicDashboardDataTableSelector.js.map +1 -1
  265. package/dist/dashboard/toolbar/MosaicDashboardToolbar.d.ts.map +1 -1
  266. package/dist/dashboard/toolbar/MosaicDashboardToolbar.js +5 -3
  267. package/dist/dashboard/toolbar/MosaicDashboardToolbar.js.map +1 -1
  268. package/dist/dashboard/useSelectedOrFirstTable.d.ts +1 -1
  269. package/dist/dashboard/useSelectedOrFirstTable.d.ts.map +1 -1
  270. package/dist/dashboard/useSelectedOrFirstTable.js +10 -8
  271. package/dist/dashboard/useSelectedOrFirstTable.js.map +1 -1
  272. package/dist/data-table-explorer/DataTableExplorerCategoryClient.d.ts +3 -2
  273. package/dist/data-table-explorer/DataTableExplorerCategoryClient.d.ts.map +1 -1
  274. package/dist/data-table-explorer/DataTableExplorerCategoryClient.js +3 -3
  275. package/dist/data-table-explorer/DataTableExplorerCategoryClient.js.map +1 -1
  276. package/dist/data-table-explorer/DataTableExplorerCountClient.d.ts +3 -1
  277. package/dist/data-table-explorer/DataTableExplorerCountClient.d.ts.map +1 -1
  278. package/dist/data-table-explorer/DataTableExplorerCountClient.js +3 -3
  279. package/dist/data-table-explorer/DataTableExplorerCountClient.js.map +1 -1
  280. package/dist/data-table-explorer/DataTableExplorerHistogramClient.d.ts +3 -2
  281. package/dist/data-table-explorer/DataTableExplorerHistogramClient.d.ts.map +1 -1
  282. package/dist/data-table-explorer/DataTableExplorerHistogramClient.js +4 -4
  283. package/dist/data-table-explorer/DataTableExplorerHistogramClient.js.map +1 -1
  284. package/dist/data-table-explorer/DataTableExplorerPageClient.d.ts +3 -1
  285. package/dist/data-table-explorer/DataTableExplorerPageClient.d.ts.map +1 -1
  286. package/dist/data-table-explorer/DataTableExplorerPageClient.js +3 -1
  287. package/dist/data-table-explorer/DataTableExplorerPageClient.js.map +1 -1
  288. package/dist/data-table-explorer/DataTableExplorerUnsupportedSummaryClient.d.ts +3 -2
  289. package/dist/data-table-explorer/DataTableExplorerUnsupportedSummaryClient.d.ts.map +1 -1
  290. package/dist/data-table-explorer/DataTableExplorerUnsupportedSummaryClient.js +3 -3
  291. package/dist/data-table-explorer/DataTableExplorerUnsupportedSummaryClient.js.map +1 -1
  292. package/dist/data-table-explorer/dashboard/MosaicDashboardDataTableExplorerPanelRenderer.d.ts.map +1 -1
  293. package/dist/data-table-explorer/dashboard/MosaicDashboardDataTableExplorerPanelRenderer.js +7 -4
  294. package/dist/data-table-explorer/dashboard/MosaicDashboardDataTableExplorerPanelRenderer.js.map +1 -1
  295. package/dist/data-table-explorer/dataTableExplorerController.d.ts +58 -2
  296. package/dist/data-table-explorer/dataTableExplorerController.d.ts.map +1 -1
  297. package/dist/data-table-explorer/dataTableExplorerController.js +68 -8
  298. package/dist/data-table-explorer/dataTableExplorerController.js.map +1 -1
  299. package/dist/data-table-explorer/hooks/useDataTableExplorerLifecycles.d.ts +23 -1
  300. package/dist/data-table-explorer/hooks/useDataTableExplorerLifecycles.d.ts.map +1 -1
  301. package/dist/data-table-explorer/hooks/useDataTableExplorerLifecycles.js +46 -13
  302. package/dist/data-table-explorer/hooks/useDataTableExplorerLifecycles.js.map +1 -1
  303. package/dist/data-table-explorer/hooks/useDataTableExplorerQueryState.d.ts +17 -3
  304. package/dist/data-table-explorer/hooks/useDataTableExplorerQueryState.d.ts.map +1 -1
  305. package/dist/data-table-explorer/hooks/useDataTableExplorerQueryState.js +9 -6
  306. package/dist/data-table-explorer/hooks/useDataTableExplorerQueryState.js.map +1 -1
  307. package/dist/data-table-explorer/types.d.ts +10 -0
  308. package/dist/data-table-explorer/types.d.ts.map +1 -1
  309. package/dist/data-table-explorer/types.js.map +1 -1
  310. package/dist/data-table-explorer/useDataTableExplorer.d.ts.map +1 -1
  311. package/dist/data-table-explorer/useDataTableExplorer.js +10 -6
  312. package/dist/data-table-explorer/useDataTableExplorer.js.map +1 -1
  313. package/dist/data-table-explorer/utils.d.ts +64 -6
  314. package/dist/data-table-explorer/utils.d.ts.map +1 -1
  315. package/dist/data-table-explorer/utils.js +58 -0
  316. package/dist/data-table-explorer/utils.js.map +1 -1
  317. package/dist/data-table-explorer/worksheet/DataTableBlockRenderer.d.ts.map +1 -1
  318. package/dist/data-table-explorer/worksheet/DataTableBlockRenderer.js +2 -2
  319. package/dist/data-table-explorer/worksheet/DataTableBlockRenderer.js.map +1 -1
  320. package/dist/index.d.ts +49 -29
  321. package/dist/index.d.ts.map +1 -1
  322. package/dist/index.js +81 -25
  323. package/dist/index.js.map +1 -1
  324. package/dist/mosaicTableReference.d.ts +59 -0
  325. package/dist/mosaicTableReference.d.ts.map +1 -0
  326. package/dist/mosaicTableReference.js +68 -0
  327. package/dist/mosaicTableReference.js.map +1 -0
  328. package/dist/useVgPlotChartRender.d.ts.map +1 -1
  329. package/dist/useVgPlotChartRender.js +26 -1
  330. package/dist/useVgPlotChartRender.js.map +1 -1
  331. package/dist/utils/table-lookup.d.ts +7 -0
  332. package/dist/utils/table-lookup.d.ts.map +1 -0
  333. package/dist/utils/table-lookup.js +10 -0
  334. package/dist/utils/table-lookup.js.map +1 -0
  335. package/package.json +14 -14
  336. package/dist/ai/ai.d.ts +0 -108
  337. package/dist/ai/ai.d.ts.map +0 -1
  338. package/dist/ai/ai.js +0 -461
  339. package/dist/ai/ai.js.map +0 -1
  340. package/dist/ai/data-table-explorer-tool.d.ts +0 -40
  341. package/dist/ai/data-table-explorer-tool.d.ts.map +0 -1
  342. package/dist/ai/data-table-explorer-tool.js +0 -75
  343. package/dist/ai/data-table-explorer-tool.js.map +0 -1
  344. package/dist/ai/list-panels-tool.d.ts +0 -35
  345. package/dist/ai/list-panels-tool.d.ts.map +0 -1
  346. package/dist/ai/list-panels-tool.js +0 -66
  347. package/dist/ai/list-panels-tool.js.map +0 -1
  348. package/dist/ai/remove-panel-tool.d.ts +0 -31
  349. package/dist/ai/remove-panel-tool.d.ts.map +0 -1
  350. package/dist/ai/remove-panel-tool.js +0 -55
  351. package/dist/ai/remove-panel-tool.js.map +0 -1
  352. package/dist/ai/tool-validation.d.ts +0 -3
  353. package/dist/ai/tool-validation.d.ts.map +0 -1
  354. package/dist/ai/tool-validation.js +0 -11
  355. package/dist/ai/tool-validation.js.map +0 -1
  356. package/dist/components/Combobox.d.ts +0 -45
  357. package/dist/components/Combobox.d.ts.map +0 -1
  358. package/dist/components/Combobox.js +0 -58
  359. package/dist/components/Combobox.js.map +0 -1
  360. package/dist/components/useCombobox.d.ts +0 -23
  361. package/dist/components/useCombobox.d.ts.map +0 -1
  362. package/dist/components/useCombobox.js +0 -26
  363. package/dist/components/useCombobox.js.map +0 -1
@@ -1 +1 @@
1
- {"version":3,"file":"tool-helpers.js","sourceRoot":"","sources":["../../src/ai/tool-helpers.ts"],"names":[],"mappings":"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","sourcesContent":["import type {DashboardToolDeps} from '../charts/chart-types/base-types';\nimport {\n createMosaicDashboardChartPanelConfig,\n createMosaicDashboardDataTableExplorerPanelConfig,\n} from '../dashboard/MosaicDashboardSlice';\nimport {MosaicDashboardEntry} from '../dashboard/dashboard-types';\nimport type {DataTableExplorerPanelConfig} from '../dashboard/core-types';\nimport type {ChartConfig} from '../charts/chart-types/chart-config';\n\nexport interface PanelResult {\n panelId: string;\n artifactId: string;\n title: string;\n config: ChartConfig | DataTableExplorerPanelConfig;\n}\n\nexport interface CreateOrUpdateChartPanelParams {\n panelId?: string;\n dashboardId: string;\n tableName: string;\n title: string;\n config: ChartConfig;\n}\n\nexport interface CreateOrUpdateDataTableExplorerPanelParams {\n panelId?: string;\n dashboardId: string;\n tableName: string;\n title: string;\n config: DataTableExplorerPanelConfig;\n}\n\n/**\n * Validates that a dashboard exists. Throws if not found.\n */\nfunction ensureDashboard(\n deps: DashboardToolDeps,\n dashboardId: string,\n): NonNullable<ReturnType<DashboardToolDeps['getDashboard']>> {\n const dashboard = deps.getDashboard(dashboardId);\n if (!dashboard) {\n throw new Error(\n `Dashboard \"${dashboardId}\" not found. Cannot update panel.`,\n );\n }\n return dashboard;\n}\n\n/**\n * Validates that a panel exists in a dashboard. Throws if not found.\n */\nfunction ensurePanel(\n dashboard: MosaicDashboardEntry,\n dashboardId: string,\n panelId: string,\n): void {\n const panelExists = dashboard.panels.some((p) => p.id === panelId);\n if (!panelExists) {\n throw new Error(\n `Panel \"${panelId}\" not found in dashboard \"${dashboardId}\". Cannot update.`,\n );\n }\n}\n\n/**\n * Universal helper to create or update a chart panel.\n * Handles everything: panel config creation, add/update logic, artifact switching.\n * When updating, both source and config are updated to allow changing the data source.\n */\nexport function createOrUpdateChartPanel(\n deps: DashboardToolDeps,\n params: CreateOrUpdateChartPanelParams,\n): PanelResult {\n if (params.panelId) {\n // Validate panel exists before attempting update\n const dashboard = ensureDashboard(deps, params.dashboardId);\n ensurePanel(dashboard, params.dashboardId, params.panelId);\n\n // Update existing panel - update both source and config\n deps.updatePanel(params.dashboardId, params.panelId, {\n title: params.title,\n source: {tableName: params.tableName},\n config: params.config,\n });\n\n return {\n panelId: params.panelId,\n artifactId: params.dashboardId,\n title: params.title,\n config: params.config,\n };\n } else {\n // Create new panel - create config and add to dashboard\n const panel = createMosaicDashboardChartPanelConfig(\n params.title,\n params.config,\n );\n\n const panelId = deps.addPanel(params.dashboardId, panel);\n deps.setCurrentArtifact(params.dashboardId);\n\n return {\n panelId,\n artifactId: params.dashboardId,\n title: params.title,\n config: params.config,\n };\n }\n}\n\n/**\n * Universal helper to create or update a dataTableExplorer panel.\n */\nexport function createOrUpdateDataTableExplorerPanel(\n deps: DashboardToolDeps,\n params: CreateOrUpdateDataTableExplorerPanelParams,\n): PanelResult {\n if (params.panelId) {\n // Validate panel exists before attempting update\n const dashboard = ensureDashboard(deps, params.dashboardId);\n ensurePanel(dashboard, params.dashboardId, params.panelId);\n\n deps.updatePanel(params.dashboardId, params.panelId, {\n config: params.config,\n source: {tableName: params.tableName},\n title: params.title,\n });\n\n return {\n panelId: params.panelId,\n artifactId: params.dashboardId,\n title: params.title,\n config: params.config,\n };\n } else {\n // Create new panel - create full panel config\n const panel = createMosaicDashboardDataTableExplorerPanelConfig({\n title: params.title,\n config: params.config,\n });\n\n const panelId = deps.addPanel(params.dashboardId, panel);\n deps.setCurrentArtifact(params.dashboardId);\n\n return {\n panelId,\n artifactId: params.dashboardId,\n title: panel.title,\n config: panel.config,\n };\n }\n}\n"]}
1
+ {"version":3,"file":"tool-helpers.js","sourceRoot":"","sources":["../../src/ai/tool-helpers.ts"],"names":[],"mappings":"AACA,OAAO,EAAC,YAAY,EAAC,MAAM,UAAU,CAAC;AAQtC;;GAEG;AACH,MAAM,UAAU,WAAW,CACzB,OAA0B,EAC1B,SAAiB;IAEjB,MAAM,KAAK,GAAG,OAAO,CAAC,SAAS,CAAC,SAAS,CAAC,CAAC;IAE3C,IAAI,CAAC,KAAK,EAAE,CAAC;QACX,MAAM,IAAI,YAAY,CAAC,UAAU,SAAS,cAAc,CAAC,CAAC;IAC5D,CAAC;IAED,OAAO,KAAK,CAAC;AACf,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,WAAW,CACzB,OAA2B,EAC3B,OAAe,EACf,IAAa;IAEb,MAAM,KAAK,GAAG,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC;IAExC,IAAI,CAAC,KAAK,EAAE,CAAC;QACX,MAAM,IAAI,YAAY,CAAC,kBAAkB,CAAC,CAAC;IAC7C,CAAC;IAED,IAAI,IAAI,KAAK,SAAS,IAAI,KAAK,CAAC,IAAI,KAAK,IAAI,EAAE,CAAC;QAC9C,MAAM,IAAI,YAAY,CACpB,qBAAqB,KAAK,CAAC,IAAI,qBAAqB,IAAI,IAAI,CAC7D,CAAC;IACJ,CAAC;IAED,OAAO,KAAK,CAAC;AACf,CAAC;AAED;;;;;;;GAOG;AACH,MAAM,UAAU,gBAAgB,CAC9B,YAAkC,EAClC,UAAgC;IAEhC,KAAK,MAAM,GAAG,IAAI,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC,EAAE,CAAC;QAC1C,IAAI,GAAG,IAAI,YAAY,EAAE,CAAC;YACxB,MAAM,IAAI,YAAY,CACpB,uDAAuD,GAAG,+CAA+C,CAC1G,CAAC;QACJ,CAAC;IACH,CAAC;AACH,CAAC;AAED;;;;;;GAMG;AACH,MAAM,UAAU,4BAA4B,CAC1C,SAA6B,EAC7B,iBAAkC,EAAE;IAEpC,OAAO;QACL,SAAS;QACT,aAAa,EAAE,cAAc,CAAC,MAAM;QACpC,UAAU,EAAE,cAAc,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,QAAQ,KAAK,OAAO,CAAC;aACnE,MAAM;KACV,CAAC;AACJ,CAAC","sourcesContent":["import {MosaicDashboardPanelConfig} from '../dashboard/dashboard-types';\nimport {AiAgentError} from './errors';\nimport {DashboardAiAdapter} from './dashboard/dashboard-types';\nimport {DataTable} from '@sqlrooms/duckdb';\nimport {Tool} from 'ai';\nimport {DatabaseAiAdapter} from './database-types';\nimport {AgentResultMetadata} from './tool-types';\nimport {AgentToolCall} from './types';\n\n/**\n * Validates that a table exists. Throws if not found.\n */\nexport function ensureTable(\n adapter: DatabaseAiAdapter,\n tableName: string,\n): DataTable {\n const table = adapter.findTable(tableName);\n\n if (!table) {\n throw new AiAgentError(`Table \"${tableName}\" not found.`);\n }\n\n return table;\n}\n\n/**\n * Validates that a panel exists in a dashboard. Throws if not found.\n */\nexport function ensurePanel(\n adapter: DashboardAiAdapter,\n panelId: string,\n type?: string,\n): MosaicDashboardPanelConfig {\n const panel = adapter.getPanel(panelId);\n\n if (!panel) {\n throw new AiAgentError(`Panel not found.`);\n }\n\n if (type !== undefined && panel.type !== type) {\n throw new AiAgentError(\n `Panel is of type \"${panel.type}\", expected type \"${type}\".`,\n );\n }\n\n return panel;\n}\n\n/**\n * Validates that extra tools do not override built-in tools.\n * Prevents accidental shadowing of core functionality by custom tools.\n *\n * @param builtInTools - Record of built-in tool names to tools\n * @param extraTools - Record of extra tool names to tools being registered\n * @throws {AiAgentError} When a key from extraTools exists in builtInTools\n */\nexport function ensureNoOverride(\n builtInTools: Record<string, Tool>,\n extraTools: Record<string, Tool>,\n) {\n for (const key of Object.keys(extraTools)) {\n if (key in builtInTools) {\n throw new AiAgentError(\n `Dashboard extraTools cannot override built-in tool \"${key}\". Register the host tool under a unique key.`,\n );\n }\n }\n}\n\n/**\n * Calculate metadata about agent execution results.\n *\n * @param tableName - Optional table name associated with the agent execution\n * @param agentToolCalls - Array of tool calls made during agent execution\n * @returns Metadata including steps executed and queries run\n */\nexport function calculateAgentResultMetadata(\n tableName: string | undefined,\n agentToolCalls: AgentToolCall[] = [],\n): AgentResultMetadata {\n return {\n tableName,\n stepsExecuted: agentToolCalls.length,\n queriesRun: agentToolCalls.filter((call) => call.toolName === 'query')\n .length,\n };\n}\n"]}
@@ -1,8 +1,13 @@
1
1
  import { z } from 'zod';
2
- export declare const BaseChartToolParameters: z.ZodObject<{
3
- artifactId: z.ZodOptional<z.ZodString>;
4
- tableName: z.ZodOptional<z.ZodString>;
5
- createArtifactIfMissing: z.ZodDefault<z.ZodOptional<z.ZodBoolean>>;
2
+ /**
3
+ * Base input schema shared by chart AI tools.
4
+ *
5
+ * Includes the source table, optional chart title, optional dashboard panel to
6
+ * update, and the model's rationale for the chart choice.
7
+ */
8
+ export declare const BaseChartToolInput: z.ZodObject<{
9
+ tableName: z.ZodString;
10
+ title: z.ZodOptional<z.ZodString>;
6
11
  panelId: z.ZodOptional<z.ZodString>;
7
12
  reasoning: z.ZodString;
8
13
  }, z.core.$strip>;
@@ -1 +1 @@
1
- {"version":3,"file":"tool-schemas.d.ts","sourceRoot":"","sources":["../../src/ai/tool-schemas.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,CAAC,EAAC,MAAM,KAAK,CAAC;AAEtB,eAAO,MAAM,uBAAuB;;;;;;iBAuBlC,CAAC"}
1
+ {"version":3,"file":"tool-schemas.d.ts","sourceRoot":"","sources":["../../src/ai/tool-schemas.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,CAAC,EAAC,MAAM,KAAK,CAAC;AAEtB;;;;;GAKG;AACH,eAAO,MAAM,kBAAkB;;;;;iBAe7B,CAAC"}
@@ -1,22 +1,22 @@
1
1
  import { z } from 'zod';
2
- export const BaseChartToolParameters = z.object({
3
- artifactId: z
4
- .string()
5
- .optional()
6
- .describe('Optional dashboard artifact ID. Prefer passing this explicitly; if omitted, the host may use an unambiguous primary dashboard context.'),
2
+ /**
3
+ * Base input schema shared by chart AI tools.
4
+ *
5
+ * Includes the source table, optional chart title, optional dashboard panel to
6
+ * update, and the model's rationale for the chart choice.
7
+ */
8
+ export const BaseChartToolInput = z.object({
7
9
  tableName: z
10
+ .string()
11
+ .describe('REQUIRED table name to create the chart from.'),
12
+ title: z
8
13
  .string()
9
14
  .optional()
10
- .describe('Optional table name. Use when no table is selected yet.'),
11
- createArtifactIfMissing: z
12
- .boolean()
13
- .optional()
14
- .default(true)
15
- .describe('If true, create dashboard artifact if missing.'),
15
+ .describe('Optional title for the chart artifact'),
16
16
  panelId: z
17
17
  .string()
18
18
  .optional()
19
- .describe('Optional panel ID. If provided, updates the existing panel instead of creating new one.'),
19
+ .describe('Optional existing dashboard panel ID to update instead of creating a new panel.'),
20
20
  reasoning: z.string().describe('Brief rationale for the chart choice.'),
21
21
  });
22
22
  //# sourceMappingURL=tool-schemas.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"tool-schemas.js","sourceRoot":"","sources":["../../src/ai/tool-schemas.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,CAAC,EAAC,MAAM,KAAK,CAAC;AAEtB,MAAM,CAAC,MAAM,uBAAuB,GAAG,CAAC,CAAC,MAAM,CAAC;IAC9C,UAAU,EAAE,CAAC;SACV,MAAM,EAAE;SACR,QAAQ,EAAE;SACV,QAAQ,CACP,wIAAwI,CACzI;IACH,SAAS,EAAE,CAAC;SACT,MAAM,EAAE;SACR,QAAQ,EAAE;SACV,QAAQ,CAAC,yDAAyD,CAAC;IACtE,uBAAuB,EAAE,CAAC;SACvB,OAAO,EAAE;SACT,QAAQ,EAAE;SACV,OAAO,CAAC,IAAI,CAAC;SACb,QAAQ,CAAC,gDAAgD,CAAC;IAC7D,OAAO,EAAE,CAAC;SACP,MAAM,EAAE;SACR,QAAQ,EAAE;SACV,QAAQ,CACP,yFAAyF,CAC1F;IACH,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,uCAAuC,CAAC;CACxE,CAAC,CAAC","sourcesContent":["import {z} from 'zod';\n\nexport const BaseChartToolParameters = z.object({\n artifactId: z\n .string()\n .optional()\n .describe(\n 'Optional dashboard artifact ID. Prefer passing this explicitly; if omitted, the host may use an unambiguous primary dashboard context.',\n ),\n tableName: z\n .string()\n .optional()\n .describe('Optional table name. Use when no table is selected yet.'),\n createArtifactIfMissing: z\n .boolean()\n .optional()\n .default(true)\n .describe('If true, create dashboard artifact if missing.'),\n panelId: z\n .string()\n .optional()\n .describe(\n 'Optional panel ID. If provided, updates the existing panel instead of creating new one.',\n ),\n reasoning: z.string().describe('Brief rationale for the chart choice.'),\n});\n"]}
1
+ {"version":3,"file":"tool-schemas.js","sourceRoot":"","sources":["../../src/ai/tool-schemas.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,CAAC,EAAC,MAAM,KAAK,CAAC;AAEtB;;;;;GAKG;AACH,MAAM,CAAC,MAAM,kBAAkB,GAAG,CAAC,CAAC,MAAM,CAAC;IACzC,SAAS,EAAE,CAAC;SACT,MAAM,EAAE;SACR,QAAQ,CAAC,+CAA+C,CAAC;IAC5D,KAAK,EAAE,CAAC;SACL,MAAM,EAAE;SACR,QAAQ,EAAE;SACV,QAAQ,CAAC,uCAAuC,CAAC;IACpD,OAAO,EAAE,CAAC;SACP,MAAM,EAAE;SACR,QAAQ,EAAE;SACV,QAAQ,CACP,iFAAiF,CAClF;IACH,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,uCAAuC,CAAC;CACxE,CAAC,CAAC","sourcesContent":["import {z} from 'zod';\n\n/**\n * Base input schema shared by chart AI tools.\n *\n * Includes the source table, optional chart title, optional dashboard panel to\n * update, and the model's rationale for the chart choice.\n */\nexport const BaseChartToolInput = z.object({\n tableName: z\n .string()\n .describe('REQUIRED table name to create the chart from.'),\n title: z\n .string()\n .optional()\n .describe('Optional title for the chart artifact'),\n panelId: z\n .string()\n .optional()\n .describe(\n 'Optional existing dashboard panel ID to update instead of creating a new panel.',\n ),\n reasoning: z.string().describe('Brief rationale for the chart choice.'),\n});\n"]}
@@ -1,5 +1,5 @@
1
1
  import { ChartConfig } from '../charts/chart-types/chart-config';
2
- import type { ChartBuilderColumn } from '../charts/chart-types/base-types';
2
+ import type { ChartBuilderColumn } from '../charts/chart-types/column-types';
3
3
  export interface ResolvedChartResourcesParams {
4
4
  artifactId?: string;
5
5
  tableName?: string;
@@ -23,4 +23,22 @@ export interface CreateChartResult {
23
23
  title: string;
24
24
  config: ChartConfig;
25
25
  }
26
+ type ToolOutputDefaultError = {
27
+ errorMessage?: string;
28
+ };
29
+ export type ToolOutput<TSuccess, TError extends ToolOutputDefaultError = ToolOutputDefaultError> = ({
30
+ success: true;
31
+ } & TSuccess) | ({
32
+ success: false;
33
+ } & TError);
34
+ /**
35
+ * Metadata about agent execution.
36
+ * Tracks statistics like steps executed and queries run during agent operation.
37
+ */
38
+ export type AgentResultMetadata = {
39
+ tableName?: string;
40
+ stepsExecuted: number;
41
+ queriesRun: number;
42
+ };
43
+ export {};
26
44
  //# sourceMappingURL=tool-types.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"tool-types.d.ts","sourceRoot":"","sources":["../../src/ai/tool-types.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,WAAW,EAAC,MAAM,oCAAoC,CAAC;AAC/D,OAAO,KAAK,EAAC,kBAAkB,EAAC,MAAM,kCAAkC,CAAC;AAEzE,MAAM,WAAW,4BAA4B;IAC3C,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,uBAAuB,CAAC,EAAE,OAAO,CAAC;CACnC;AAED,MAAM,WAAW,sBAAsB;IACrC,UAAU,EAAE,MAAM,CAAC;IACnB,SAAS,EAAE,MAAM,CAAC;IAClB,OAAO,EAAE,kBAAkB,EAAE,CAAC;CAC/B;AAED,MAAM,WAAW,iBAAiB;IAChC,UAAU,EAAE,MAAM,CAAC;IACnB,SAAS,EAAE,MAAM,CAAC;IAClB,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,WAAW,CAAC;CACrB;AAED,MAAM,WAAW,iBAAiB;IAChC,OAAO,EAAE,MAAM,CAAC;IAChB,UAAU,EAAE,MAAM,CAAC;IACnB,SAAS,EAAE,MAAM,CAAC;IAClB,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,WAAW,CAAC;CACrB"}
1
+ {"version":3,"file":"tool-types.d.ts","sourceRoot":"","sources":["../../src/ai/tool-types.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,WAAW,EAAC,MAAM,oCAAoC,CAAC;AAC/D,OAAO,KAAK,EAAC,kBAAkB,EAAC,MAAM,oCAAoC,CAAC;AAE3E,MAAM,WAAW,4BAA4B;IAC3C,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,uBAAuB,CAAC,EAAE,OAAO,CAAC;CACnC;AAED,MAAM,WAAW,sBAAsB;IACrC,UAAU,EAAE,MAAM,CAAC;IACnB,SAAS,EAAE,MAAM,CAAC;IAClB,OAAO,EAAE,kBAAkB,EAAE,CAAC;CAC/B;AAED,MAAM,WAAW,iBAAiB;IAChC,UAAU,EAAE,MAAM,CAAC;IACnB,SAAS,EAAE,MAAM,CAAC;IAClB,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,WAAW,CAAC;CACrB;AAED,MAAM,WAAW,iBAAiB;IAChC,OAAO,EAAE,MAAM,CAAC;IAChB,UAAU,EAAE,MAAM,CAAC;IACnB,SAAS,EAAE,MAAM,CAAC;IAClB,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,WAAW,CAAC;CACrB;AAED,KAAK,sBAAsB,GAAG;IAAC,YAAY,CAAC,EAAE,MAAM,CAAA;CAAC,CAAC;AAEtD,MAAM,MAAM,UAAU,CACpB,QAAQ,EACR,MAAM,SAAS,sBAAsB,GAAG,sBAAsB,IAE5D,CAAC;IACC,OAAO,EAAE,IAAI,CAAC;CACf,GAAG,QAAQ,CAAC,GACb,CAAC;IACC,OAAO,EAAE,KAAK,CAAC;CAChB,GAAG,MAAM,CAAC,CAAC;AAEhB;;;GAGG;AACH,MAAM,MAAM,mBAAmB,GAAG;IAChC,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,aAAa,EAAE,MAAM,CAAC;IACtB,UAAU,EAAE,MAAM,CAAC;CACpB,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"tool-types.js","sourceRoot":"","sources":["../../src/ai/tool-types.ts"],"names":[],"mappings":"","sourcesContent":["import {ChartConfig} from '../charts/chart-types/chart-config';\nimport type {ChartBuilderColumn} from '../charts/chart-types/base-types';\n\nexport interface ResolvedChartResourcesParams {\n artifactId?: string;\n tableName?: string;\n createArtifactIfMissing?: boolean;\n}\n\nexport interface ResolvedChartResources {\n artifactId: string;\n tableName: string;\n columns: ChartBuilderColumn[];\n}\n\nexport interface CreateChartParams {\n artifactId: string;\n tableName: string;\n title: string;\n config: ChartConfig;\n}\n\nexport interface CreateChartResult {\n panelId: string;\n artifactId: string;\n tableName: string;\n title: string;\n config: ChartConfig;\n}\n"]}
1
+ {"version":3,"file":"tool-types.js","sourceRoot":"","sources":["../../src/ai/tool-types.ts"],"names":[],"mappings":"","sourcesContent":["import {ChartConfig} from '../charts/chart-types/chart-config';\nimport type {ChartBuilderColumn} from '../charts/chart-types/column-types';\n\nexport interface ResolvedChartResourcesParams {\n artifactId?: string;\n tableName?: string;\n createArtifactIfMissing?: boolean;\n}\n\nexport interface ResolvedChartResources {\n artifactId: string;\n tableName: string;\n columns: ChartBuilderColumn[];\n}\n\nexport interface CreateChartParams {\n artifactId: string;\n tableName: string;\n title: string;\n config: ChartConfig;\n}\n\nexport interface CreateChartResult {\n panelId: string;\n artifactId: string;\n tableName: string;\n title: string;\n config: ChartConfig;\n}\n\ntype ToolOutputDefaultError = {errorMessage?: string};\n\nexport type ToolOutput<\n TSuccess,\n TError extends ToolOutputDefaultError = ToolOutputDefaultError,\n> =\n | ({\n success: true;\n } & TSuccess)\n | ({\n success: false;\n } & TError);\n\n/**\n * Metadata about agent execution.\n * Tracks statistics like steps executed and queries run during agent operation.\n */\nexport type AgentResultMetadata = {\n tableName?: string;\n stepsExecuted: number;\n queriesRun: number;\n};\n"]}
@@ -0,0 +1,64 @@
1
+ import type { LanguageModel, Tool, ToolLoopAgent } from 'ai';
2
+ import type { DataTable } from '@sqlrooms/db';
3
+ import type { ChartTypeDefinition } from '../charts/chart-types/base-types';
4
+ /**
5
+ * Common types used by Mosaic AI agents and tool composition.
6
+ */
7
+ export type AiStore<TState> = {
8
+ getState: () => TState;
9
+ };
10
+ export type AgentToolCall = {
11
+ toolName: string;
12
+ };
13
+ export type AgentRunResult = {
14
+ finalOutput?: string;
15
+ agentToolCalls?: AgentToolCall[];
16
+ };
17
+ /**
18
+ * Minimal adapter interface for chart configuration tools.
19
+ * Chart tools only need access to tables for validation.
20
+ *
21
+ * This is a state-less interface - implementations bind state internally.
22
+ */
23
+ export type ChartAiAdapter = {
24
+ /** Get all available tables */
25
+ getTables: () => DataTable[];
26
+ /** Find table by name, throws if not found */
27
+ findTableByName: (tableName: string) => DataTable;
28
+ };
29
+ export type ChartToolsOptions = {
30
+ chartTypes?: ChartTypeDefinition<any>[];
31
+ chartMaxDataPoints?: number;
32
+ };
33
+ /**
34
+ * Common options for agent creation
35
+ */
36
+ export type BaseAgentToolOptions<TState> = {
37
+ store: AiStore<TState>;
38
+ getModel: (args: {
39
+ state: TState;
40
+ }) => LanguageModel;
41
+ createDataTools?: (args: {
42
+ store: AiStore<TState>;
43
+ }) => {
44
+ query: Tool;
45
+ list_tables: Tool;
46
+ read_table_schema: Tool;
47
+ };
48
+ runSubAgent: (args: {
49
+ agent: ToolLoopAgent<any, any, any>;
50
+ prompt: string;
51
+ store: AiStore<TState>;
52
+ parentToolCallId: string;
53
+ abortSignal?: AbortSignal;
54
+ }) => Promise<AgentRunResult>;
55
+ instructions?: string;
56
+ /**
57
+ * Optional host/plugin instructions appended after the built-in agent prompt.
58
+ * Use this when extending an agent with extra tools that need specialized
59
+ * usage guidance while preserving the base workflow.
60
+ */
61
+ additionalInstructions?: string;
62
+ chartToolsOptions?: ChartToolsOptions;
63
+ };
64
+ //# sourceMappingURL=types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/ai/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAC,aAAa,EAAE,IAAI,EAAE,aAAa,EAAC,MAAM,IAAI,CAAC;AAC3D,OAAO,KAAK,EAAC,SAAS,EAAC,MAAM,cAAc,CAAC;AAC5C,OAAO,KAAK,EAAC,mBAAmB,EAAC,MAAM,kCAAkC,CAAC;AAE1E;;GAEG;AAEH,MAAM,MAAM,OAAO,CAAC,MAAM,IAAI;IAC5B,QAAQ,EAAE,MAAM,MAAM,CAAC;CACxB,CAAC;AAEF,MAAM,MAAM,aAAa,GAAG;IAC1B,QAAQ,EAAE,MAAM,CAAC;CAClB,CAAC;AAEF,MAAM,MAAM,cAAc,GAAG;IAC3B,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,cAAc,CAAC,EAAE,aAAa,EAAE,CAAC;CAClC,CAAC;AAEF;;;;;GAKG;AACH,MAAM,MAAM,cAAc,GAAG;IAC3B,+BAA+B;IAC/B,SAAS,EAAE,MAAM,SAAS,EAAE,CAAC;IAE7B,8CAA8C;IAC9C,eAAe,EAAE,CAAC,SAAS,EAAE,MAAM,KAAK,SAAS,CAAC;CACnD,CAAC;AAEF,MAAM,MAAM,iBAAiB,GAAG;IAC9B,UAAU,CAAC,EAAE,mBAAmB,CAAC,GAAG,CAAC,EAAE,CAAC;IACxC,kBAAkB,CAAC,EAAE,MAAM,CAAC;CAC7B,CAAC;AAEF;;GAEG;AACH,MAAM,MAAM,oBAAoB,CAAC,MAAM,IAAI;IACzC,KAAK,EAAE,OAAO,CAAC,MAAM,CAAC,CAAC;IACvB,QAAQ,EAAE,CAAC,IAAI,EAAE;QAAC,KAAK,EAAE,MAAM,CAAA;KAAC,KAAK,aAAa,CAAC;IACnD,eAAe,CAAC,EAAE,CAAC,IAAI,EAAE;QAAC,KAAK,EAAE,OAAO,CAAC,MAAM,CAAC,CAAA;KAAC,KAAK;QACpD,KAAK,EAAE,IAAI,CAAC;QACZ,WAAW,EAAE,IAAI,CAAC;QAClB,iBAAiB,EAAE,IAAI,CAAC;KACzB,CAAC;IACF,WAAW,EAAE,CAAC,IAAI,EAAE;QAClB,KAAK,EAAE,aAAa,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,CAAC;QACpC,MAAM,EAAE,MAAM,CAAC;QACf,KAAK,EAAE,OAAO,CAAC,MAAM,CAAC,CAAC;QACvB,gBAAgB,EAAE,MAAM,CAAC;QACzB,WAAW,CAAC,EAAE,WAAW,CAAC;KAC3B,KAAK,OAAO,CAAC,cAAc,CAAC,CAAC;IAC9B,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB;;;;OAIG;IACH,sBAAsB,CAAC,EAAE,MAAM,CAAC;IAChC,iBAAiB,CAAC,EAAE,iBAAiB,CAAC;CACvC,CAAC"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/ai/types.ts"],"names":[],"mappings":"","sourcesContent":["import type {LanguageModel, Tool, ToolLoopAgent} from 'ai';\nimport type {DataTable} from '@sqlrooms/db';\nimport type {ChartTypeDefinition} from '../charts/chart-types/base-types';\n\n/**\n * Common types used by Mosaic AI agents and tool composition.\n */\n\nexport type AiStore<TState> = {\n getState: () => TState;\n};\n\nexport type AgentToolCall = {\n toolName: string;\n};\n\nexport type AgentRunResult = {\n finalOutput?: string;\n agentToolCalls?: AgentToolCall[];\n};\n\n/**\n * Minimal adapter interface for chart configuration tools.\n * Chart tools only need access to tables for validation.\n *\n * This is a state-less interface - implementations bind state internally.\n */\nexport type ChartAiAdapter = {\n /** Get all available tables */\n getTables: () => DataTable[];\n\n /** Find table by name, throws if not found */\n findTableByName: (tableName: string) => DataTable;\n};\n\nexport type ChartToolsOptions = {\n chartTypes?: ChartTypeDefinition<any>[];\n chartMaxDataPoints?: number;\n};\n\n/**\n * Common options for agent creation\n */\nexport type BaseAgentToolOptions<TState> = {\n store: AiStore<TState>;\n getModel: (args: {state: TState}) => LanguageModel;\n createDataTools?: (args: {store: AiStore<TState>}) => {\n query: Tool;\n list_tables: Tool;\n read_table_schema: Tool;\n };\n runSubAgent: (args: {\n agent: ToolLoopAgent<any, any, any>;\n prompt: string;\n store: AiStore<TState>;\n parentToolCallId: string;\n abortSignal?: AbortSignal;\n }) => Promise<AgentRunResult>;\n instructions?: string;\n /**\n * Optional host/plugin instructions appended after the built-in agent prompt.\n * Use this when extending an agent with extra tools that need specialized\n * usage guidance while preserving the base workflow.\n */\n additionalInstructions?: string;\n chartToolsOptions?: ChartToolsOptions;\n};\n"]}
package/dist/ai.d.ts CHANGED
@@ -1,6 +1,20 @@
1
1
  /**
2
- * AI tools and utilities for Mosaic dashboards
2
+ * AI tools and utilities for Mosaic dashboards and block-document integrations
3
3
  * @packageDocumentation
4
4
  */
5
- export * from './ai/ai';
5
+ export type { ChartToolExecutionContext } from './charts/chart-types';
6
+ export * from './ai/types';
7
+ export * from './ai/database-types';
8
+ export * from './ai/dashboard/dashboard-types';
9
+ export * from './ai/constants';
10
+ export * from './ai/block-document/constants';
11
+ export { AiAgentError } from './ai/errors';
12
+ export { calculateAgentResultMetadata } from './ai/tool-helpers';
13
+ export { createChartToolsInstructions } from './charts/chart-types/createChartInstructions';
14
+ export { resolveChartTypes } from './charts/chart-types/resolveChartTypes';
15
+ export { createDashboardAiTools } from './ai/dashboard/createDashboardAiTools';
16
+ export { createDashboardAgentTool } from './ai/dashboard/createDashboardAgentTool';
17
+ export { createAddMosaicDashboardBlockTool, type CreateAddMosaicDashboardBlockToolOptions, } from './ai/block-document/createAddMosaicDashboardBlockTool';
18
+ export { createBlockDocumentChartTools, type CreateBlockDocumentChartToolsParams, } from './ai/block-document/createBlockDocumentChartTools';
19
+ export { createBlockDocumentDataTableExplorerTool, type CreateBlockDocumentDataTableExplorerToolParams, } from './ai/block-document/createBlockDocumentDataTableExplorerTool';
6
20
  //# sourceMappingURL=ai.d.ts.map
package/dist/ai.d.ts.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"ai.d.ts","sourceRoot":"","sources":["../src/ai.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,cAAc,SAAS,CAAC"}
1
+ {"version":3,"file":"ai.d.ts","sourceRoot":"","sources":["../src/ai.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,YAAY,EAAC,yBAAyB,EAAC,MAAM,sBAAsB,CAAC;AACpE,cAAc,YAAY,CAAC;AAC3B,cAAc,qBAAqB,CAAC;AACpC,cAAc,gCAAgC,CAAC;AAC/C,cAAc,gBAAgB,CAAC;AAC/B,cAAc,+BAA+B,CAAC;AAC9C,OAAO,EAAC,YAAY,EAAC,MAAM,aAAa,CAAC;AACzC,OAAO,EAAC,4BAA4B,EAAC,MAAM,mBAAmB,CAAC;AAC/D,OAAO,EAAC,4BAA4B,EAAC,MAAM,8CAA8C,CAAC;AAC1F,OAAO,EAAC,iBAAiB,EAAC,MAAM,wCAAwC,CAAC;AACzE,OAAO,EAAC,sBAAsB,EAAC,MAAM,uCAAuC,CAAC;AAC7E,OAAO,EAAC,wBAAwB,EAAC,MAAM,yCAAyC,CAAC;AACjF,OAAO,EACL,iCAAiC,EACjC,KAAK,wCAAwC,GAC9C,MAAM,uDAAuD,CAAC;AAC/D,OAAO,EACL,6BAA6B,EAC7B,KAAK,mCAAmC,GACzC,MAAM,mDAAmD,CAAC;AAC3D,OAAO,EACL,wCAAwC,EACxC,KAAK,8CAA8C,GACpD,MAAM,8DAA8D,CAAC"}
package/dist/ai.js CHANGED
@@ -1,6 +1,15 @@
1
- /**
2
- * AI tools and utilities for Mosaic dashboards
3
- * @packageDocumentation
4
- */
5
- export * from './ai/ai';
1
+ export * from './ai/types';
2
+ export * from './ai/database-types';
3
+ export * from './ai/dashboard/dashboard-types';
4
+ export * from './ai/constants';
5
+ export * from './ai/block-document/constants';
6
+ export { AiAgentError } from './ai/errors';
7
+ export { calculateAgentResultMetadata } from './ai/tool-helpers';
8
+ export { createChartToolsInstructions } from './charts/chart-types/createChartInstructions';
9
+ export { resolveChartTypes } from './charts/chart-types/resolveChartTypes';
10
+ export { createDashboardAiTools } from './ai/dashboard/createDashboardAiTools';
11
+ export { createDashboardAgentTool } from './ai/dashboard/createDashboardAgentTool';
12
+ export { createAddMosaicDashboardBlockTool, } from './ai/block-document/createAddMosaicDashboardBlockTool';
13
+ export { createBlockDocumentChartTools, } from './ai/block-document/createBlockDocumentChartTools';
14
+ export { createBlockDocumentDataTableExplorerTool, } from './ai/block-document/createBlockDocumentDataTableExplorerTool';
6
15
  //# sourceMappingURL=ai.js.map
package/dist/ai.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"ai.js","sourceRoot":"","sources":["../src/ai.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,cAAc,SAAS,CAAC","sourcesContent":["/**\n * AI tools and utilities for Mosaic dashboards\n * @packageDocumentation\n */\n\nexport * from './ai/ai';\n"]}
1
+ {"version":3,"file":"ai.js","sourceRoot":"","sources":["../src/ai.ts"],"names":[],"mappings":"AAKA,cAAc,YAAY,CAAC;AAC3B,cAAc,qBAAqB,CAAC;AACpC,cAAc,gCAAgC,CAAC;AAC/C,cAAc,gBAAgB,CAAC;AAC/B,cAAc,+BAA+B,CAAC;AAC9C,OAAO,EAAC,YAAY,EAAC,MAAM,aAAa,CAAC;AACzC,OAAO,EAAC,4BAA4B,EAAC,MAAM,mBAAmB,CAAC;AAC/D,OAAO,EAAC,4BAA4B,EAAC,MAAM,8CAA8C,CAAC;AAC1F,OAAO,EAAC,iBAAiB,EAAC,MAAM,wCAAwC,CAAC;AACzE,OAAO,EAAC,sBAAsB,EAAC,MAAM,uCAAuC,CAAC;AAC7E,OAAO,EAAC,wBAAwB,EAAC,MAAM,yCAAyC,CAAC;AACjF,OAAO,EACL,iCAAiC,GAElC,MAAM,uDAAuD,CAAC;AAC/D,OAAO,EACL,6BAA6B,GAE9B,MAAM,mDAAmD,CAAC;AAC3D,OAAO,EACL,wCAAwC,GAEzC,MAAM,8DAA8D,CAAC","sourcesContent":["/**\n * AI tools and utilities for Mosaic dashboards and block-document integrations\n * @packageDocumentation\n */\nexport type {ChartToolExecutionContext} from './charts/chart-types';\nexport * from './ai/types';\nexport * from './ai/database-types';\nexport * from './ai/dashboard/dashboard-types';\nexport * from './ai/constants';\nexport * from './ai/block-document/constants';\nexport {AiAgentError} from './ai/errors';\nexport {calculateAgentResultMetadata} from './ai/tool-helpers';\nexport {createChartToolsInstructions} from './charts/chart-types/createChartInstructions';\nexport {resolveChartTypes} from './charts/chart-types/resolveChartTypes';\nexport {createDashboardAiTools} from './ai/dashboard/createDashboardAiTools';\nexport {createDashboardAgentTool} from './ai/dashboard/createDashboardAgentTool';\nexport {\n createAddMosaicDashboardBlockTool,\n type CreateAddMosaicDashboardBlockToolOptions,\n} from './ai/block-document/createAddMosaicDashboardBlockTool';\nexport {\n createBlockDocumentChartTools,\n type CreateBlockDocumentChartToolsParams,\n} from './ai/block-document/createBlockDocumentChartTools';\nexport {\n createBlockDocumentDataTableExplorerTool,\n type CreateBlockDocumentDataTableExplorerToolParams,\n} from './ai/block-document/createBlockDocumentDataTableExplorerTool';\n"]}
@@ -7,7 +7,7 @@ export const MosaicChart = ({ dataTable, selectionName, config, runtimeKey, onCo
7
7
  const handleOpenChange = useCallback((isOpen) => onConfigChange?.({ ...config, settingsOpen: isOpen }), [config, onConfigChange]);
8
8
  const handleConfigChange = useCallback((newConfig) => onConfigChange?.(newConfig), [onConfigChange]);
9
9
  const settingsContent = (_jsx(MosaicChartSettingsPanel, { dataTable: dataTable, config: config, onChange: handleConfigChange, onClose: () => handleOpenChange(false) }));
10
- const chartContent = (_jsx("div", { className: "h-full overflow-auto p-2", children: _jsx(MosaicChartView, { dataTable: dataTable, config: config, selectionName: selectionName, retentionKey: runtimeKey, runtimeIssueKey: runtimeKey, dashboardId: dashboardId, panelId: panelId }) }));
10
+ const chartContent = (_jsx("div", { className: "h-full min-h-0 min-w-0 overflow-hidden p-2", children: _jsx(MosaicChartView, { dataTable: dataTable, config: config, selectionName: selectionName, retentionKey: runtimeKey, runtimeIssueKey: runtimeKey, dashboardId: dashboardId, panelId: panelId }) }));
11
11
  return (_jsx("div", { className: "h-full min-h-0", children: _jsx(MosaicDashboardPanelLayout, { isOpen: config.settingsOpen, onIsOpenChange: handleOpenChange, settings: settingsContent, content: chartContent }) }));
12
12
  };
13
13
  //# sourceMappingURL=MosaicChart.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"MosaicChart.js","sourceRoot":"","sources":["../../src/charts/MosaicChart.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAU,WAAW,EAAC,MAAM,OAAO,CAAC;AAC3C,OAAO,EAAC,0BAA0B,EAAC,MAAM,+CAA+C,CAAC;AACzF,OAAO,EAAC,wBAAwB,EAAC,MAAM,4BAA4B,CAAC;AAEpE,OAAO,EAAC,eAAe,EAAC,MAAM,mBAAmB,CAAC;AAalD,MAAM,CAAC,MAAM,WAAW,GAAyB,CAAC,EAChD,SAAS,EACT,aAAa,EACb,MAAM,EACN,UAAU,EACV,cAAc,EACd,WAAW,EACX,OAAO,GACR,EAAE,EAAE;IACH,MAAM,gBAAgB,GAAG,WAAW,CAClC,CAAC,MAAe,EAAE,EAAE,CAAC,cAAc,EAAE,CAAC,EAAC,GAAG,MAAM,EAAE,YAAY,EAAE,MAAM,EAAC,CAAC,EACxE,CAAC,MAAM,EAAE,cAAc,CAAC,CACzB,CAAC;IAEF,MAAM,kBAAkB,GAAG,WAAW,CACpC,CAAC,SAAsB,EAAE,EAAE,CAAC,cAAc,EAAE,CAAC,SAAS,CAAC,EACvD,CAAC,cAAc,CAAC,CACjB,CAAC;IAEF,MAAM,eAAe,GAAG,CACtB,KAAC,wBAAwB,IACvB,SAAS,EAAE,SAAS,EACpB,MAAM,EAAE,MAAM,EACd,QAAQ,EAAE,kBAAkB,EAC5B,OAAO,EAAE,GAAG,EAAE,CAAC,gBAAgB,CAAC,KAAK,CAAC,GACtC,CACH,CAAC;IAEF,MAAM,YAAY,GAAG,CACnB,cAAK,SAAS,EAAC,0BAA0B,YACvC,KAAC,eAAe,IACd,SAAS,EAAE,SAAS,EACpB,MAAM,EAAE,MAAM,EACd,aAAa,EAAE,aAAa,EAC5B,YAAY,EAAE,UAAU,EACxB,eAAe,EAAE,UAAU,EAC3B,WAAW,EAAE,WAAW,EACxB,OAAO,EAAE,OAAO,GAChB,GACE,CACP,CAAC;IAEF,OAAO,CACL,cAAK,SAAS,EAAC,gBAAgB,YAC7B,KAAC,0BAA0B,IACzB,MAAM,EAAE,MAAM,CAAC,YAAY,EAC3B,cAAc,EAAE,gBAAgB,EAChC,QAAQ,EAAE,eAAe,EACzB,OAAO,EAAE,YAAY,GACrB,GACE,CACP,CAAC;AACJ,CAAC,CAAC","sourcesContent":["import {type FC, useCallback} from 'react';\nimport {MosaicDashboardPanelLayout} from '../dashboard/panel/MosaicDashboardPanelLayout';\nimport {MosaicChartSettingsPanel} from './MosaicChartSettingsPanel';\nimport type {ChartConfig} from './chart-types/chart-config';\nimport {MosaicChartView} from './MosaicChartView';\nimport {DataTable} from '@sqlrooms/db';\n\nexport type MosaicChartProps = {\n dataTable?: DataTable;\n selectionName?: string;\n config: ChartConfig;\n runtimeKey: string;\n onConfigChange?: (config: ChartConfig) => void;\n dashboardId?: string;\n panelId?: string;\n};\n\nexport const MosaicChart: FC<MosaicChartProps> = ({\n dataTable,\n selectionName,\n config,\n runtimeKey,\n onConfigChange,\n dashboardId,\n panelId,\n}) => {\n const handleOpenChange = useCallback(\n (isOpen: boolean) => onConfigChange?.({...config, settingsOpen: isOpen}),\n [config, onConfigChange],\n );\n\n const handleConfigChange = useCallback(\n (newConfig: ChartConfig) => onConfigChange?.(newConfig),\n [onConfigChange],\n );\n\n const settingsContent = (\n <MosaicChartSettingsPanel\n dataTable={dataTable}\n config={config}\n onChange={handleConfigChange}\n onClose={() => handleOpenChange(false)}\n />\n );\n\n const chartContent = (\n <div className=\"h-full overflow-auto p-2\">\n <MosaicChartView\n dataTable={dataTable}\n config={config}\n selectionName={selectionName}\n retentionKey={runtimeKey}\n runtimeIssueKey={runtimeKey}\n dashboardId={dashboardId}\n panelId={panelId}\n />\n </div>\n );\n\n return (\n <div className=\"h-full min-h-0\">\n <MosaicDashboardPanelLayout\n isOpen={config.settingsOpen}\n onIsOpenChange={handleOpenChange}\n settings={settingsContent}\n content={chartContent}\n />\n </div>\n );\n};\n"]}
1
+ {"version":3,"file":"MosaicChart.js","sourceRoot":"","sources":["../../src/charts/MosaicChart.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAU,WAAW,EAAC,MAAM,OAAO,CAAC;AAC3C,OAAO,EAAC,0BAA0B,EAAC,MAAM,+CAA+C,CAAC;AACzF,OAAO,EAAC,wBAAwB,EAAC,MAAM,4BAA4B,CAAC;AAEpE,OAAO,EAAC,eAAe,EAAC,MAAM,mBAAmB,CAAC;AAalD,MAAM,CAAC,MAAM,WAAW,GAAyB,CAAC,EAChD,SAAS,EACT,aAAa,EACb,MAAM,EACN,UAAU,EACV,cAAc,EACd,WAAW,EACX,OAAO,GACR,EAAE,EAAE;IACH,MAAM,gBAAgB,GAAG,WAAW,CAClC,CAAC,MAAe,EAAE,EAAE,CAAC,cAAc,EAAE,CAAC,EAAC,GAAG,MAAM,EAAE,YAAY,EAAE,MAAM,EAAC,CAAC,EACxE,CAAC,MAAM,EAAE,cAAc,CAAC,CACzB,CAAC;IAEF,MAAM,kBAAkB,GAAG,WAAW,CACpC,CAAC,SAAsB,EAAE,EAAE,CAAC,cAAc,EAAE,CAAC,SAAS,CAAC,EACvD,CAAC,cAAc,CAAC,CACjB,CAAC;IAEF,MAAM,eAAe,GAAG,CACtB,KAAC,wBAAwB,IACvB,SAAS,EAAE,SAAS,EACpB,MAAM,EAAE,MAAM,EACd,QAAQ,EAAE,kBAAkB,EAC5B,OAAO,EAAE,GAAG,EAAE,CAAC,gBAAgB,CAAC,KAAK,CAAC,GACtC,CACH,CAAC;IAEF,MAAM,YAAY,GAAG,CACnB,cAAK,SAAS,EAAC,4CAA4C,YACzD,KAAC,eAAe,IACd,SAAS,EAAE,SAAS,EACpB,MAAM,EAAE,MAAM,EACd,aAAa,EAAE,aAAa,EAC5B,YAAY,EAAE,UAAU,EACxB,eAAe,EAAE,UAAU,EAC3B,WAAW,EAAE,WAAW,EACxB,OAAO,EAAE,OAAO,GAChB,GACE,CACP,CAAC;IAEF,OAAO,CACL,cAAK,SAAS,EAAC,gBAAgB,YAC7B,KAAC,0BAA0B,IACzB,MAAM,EAAE,MAAM,CAAC,YAAY,EAC3B,cAAc,EAAE,gBAAgB,EAChC,QAAQ,EAAE,eAAe,EACzB,OAAO,EAAE,YAAY,GACrB,GACE,CACP,CAAC;AACJ,CAAC,CAAC","sourcesContent":["import {type FC, useCallback} from 'react';\nimport {MosaicDashboardPanelLayout} from '../dashboard/panel/MosaicDashboardPanelLayout';\nimport {MosaicChartSettingsPanel} from './MosaicChartSettingsPanel';\nimport type {ChartConfig} from './chart-types/chart-config';\nimport {MosaicChartView} from './MosaicChartView';\nimport {DataTable} from '@sqlrooms/db';\n\nexport type MosaicChartProps = {\n dataTable?: DataTable;\n selectionName?: string;\n config: ChartConfig;\n runtimeKey: string;\n onConfigChange?: (config: ChartConfig) => void;\n dashboardId?: string;\n panelId?: string;\n};\n\nexport const MosaicChart: FC<MosaicChartProps> = ({\n dataTable,\n selectionName,\n config,\n runtimeKey,\n onConfigChange,\n dashboardId,\n panelId,\n}) => {\n const handleOpenChange = useCallback(\n (isOpen: boolean) => onConfigChange?.({...config, settingsOpen: isOpen}),\n [config, onConfigChange],\n );\n\n const handleConfigChange = useCallback(\n (newConfig: ChartConfig) => onConfigChange?.(newConfig),\n [onConfigChange],\n );\n\n const settingsContent = (\n <MosaicChartSettingsPanel\n dataTable={dataTable}\n config={config}\n onChange={handleConfigChange}\n onClose={() => handleOpenChange(false)}\n />\n );\n\n const chartContent = (\n <div className=\"h-full min-h-0 min-w-0 overflow-hidden p-2\">\n <MosaicChartView\n dataTable={dataTable}\n config={config}\n selectionName={selectionName}\n retentionKey={runtimeKey}\n runtimeIssueKey={runtimeKey}\n dashboardId={dashboardId}\n panelId={panelId}\n />\n </div>\n );\n\n return (\n <div className=\"h-full min-h-0\">\n <MosaicDashboardPanelLayout\n isOpen={config.settingsOpen}\n onIsOpenChange={handleOpenChange}\n settings={settingsContent}\n content={chartContent}\n />\n </div>\n );\n};\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"MosaicChartView.d.ts","sourceRoot":"","sources":["../../src/charts/MosaicChartView.tsx"],"names":[],"mappings":"AACA,OAAO,EAAC,KAAK,EAAE,EAAoC,MAAM,OAAO,CAAC;AAGjE,OAAO,KAAK,EAAC,WAAW,EAAC,MAAM,4BAA4B,CAAC;AAW5D,OAAO,EAAC,SAAS,EAAC,MAAM,cAAc,CAAC;AAGvC,MAAM,MAAM,oBAAoB,GAAG;IACjC,SAAS,CAAC,EAAE,SAAS,CAAC;IACtB,MAAM,EAAE,WAAW,CAAC;IACpB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB,CAAC;AAEF,eAAO,MAAM,eAAe,EAAE,EAAE,CAAC,oBAAoB,CAsHpD,CAAC"}
1
+ {"version":3,"file":"MosaicChartView.d.ts","sourceRoot":"","sources":["../../src/charts/MosaicChartView.tsx"],"names":[],"mappings":"AACA,OAAO,EAAC,KAAK,EAAE,EAAoC,MAAM,OAAO,CAAC;AAGjE,OAAO,KAAK,EAAC,WAAW,EAAC,MAAM,4BAA4B,CAAC;AAW5D,OAAO,EAAC,SAAS,EAAC,MAAM,cAAc,CAAC;AAEvC,MAAM,MAAM,oBAAoB,GAAG;IACjC,SAAS,CAAC,EAAE,SAAS,CAAC;IACtB,MAAM,EAAE,WAAW,CAAC;IACpB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB,CAAC;AAEF,eAAO,MAAM,eAAe,EAAE,EAAE,CAAC,oBAAoB,CAsHpD,CAAC"}
@@ -12,7 +12,6 @@ import { useChartDataPolicy } from './useChartDataPolicy';
12
12
  import { useChartRetainerByKey } from './useChartRetainer';
13
13
  import { useMosaicChartRenderContext } from './useMosaicChartRenderContext';
14
14
  import { useRuntimeIssueReporter } from './useRuntimeIssueReporter';
15
- import { getChartTableReference } from './chart-types/base-types';
16
15
  export const MosaicChartView = ({ dataTable, config, selectionName, retentionKey, runtimeIssueKey, className, dashboardId, panelId, }) => {
17
16
  const connection = useStoreWithMosaicDashboard((state) => state.mosaic.connection);
18
17
  const retention = useChartRetainerByKey(retentionKey);
@@ -54,7 +53,7 @@ export const MosaicChartView = ({ dataTable, config, selectionName, retentionKey
54
53
  }
55
54
  if (renderContext.type === 'component') {
56
55
  return (_jsx("div", { className: cn('h-full w-full', className), children: createElement(renderContext.renderer, {
57
- tableName: getChartTableReference(renderContext.dataTable),
56
+ table: renderContext.dataTable.table,
58
57
  config,
59
58
  coordinator: connection.coordinator,
60
59
  params,
@@ -1 +1 @@
1
- {"version":3,"file":"MosaicChartView.js","sourceRoot":"","sources":["../../src/charts/MosaicChartView.tsx"],"names":[],"mappings":"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","sourcesContent":["import {SpinnerPane, cn} from '@sqlrooms/ui';\nimport {type FC, createElement, useMemo, useEffect} from 'react';\nimport {VgPlotChart} from '../VgPlotChart';\nimport type {ChartRuntimeIssueContext} from '../chart-runtime';\nimport type {ChartConfig} from './chart-types/chart-config';\nimport {useStoreWithMosaicDashboard} from '../dashboard/MosaicDashboardSlice';\nimport {usePanelClientRegistration} from '../dashboard/usePanelClientRegistration';\nimport {useChartPanelClients} from './useChartPanelClients';\nimport {MosaicChartRuntimeIssuePanel} from './MosaicChartRuntimeIssuePanel';\nimport {MosaicChartError} from './MosaicChartError';\nimport {useBrushSelectionParams} from './useBrushSelectionParams';\nimport {useChartDataPolicy} from './useChartDataPolicy';\nimport {useChartRetainerByKey} from './useChartRetainer';\nimport {useMosaicChartRenderContext} from './useMosaicChartRenderContext';\nimport {useRuntimeIssueReporter} from './useRuntimeIssueReporter';\nimport {DataTable} from '@sqlrooms/db';\nimport {getChartTableReference} from './chart-types/base-types';\n\nexport type MosaicChartViewProps = {\n dataTable?: DataTable;\n config: ChartConfig;\n selectionName?: string;\n retentionKey?: string;\n runtimeIssueKey?: string;\n className?: string;\n dashboardId?: string;\n panelId?: string;\n};\n\nexport const MosaicChartView: FC<MosaicChartViewProps> = ({\n dataTable,\n config,\n selectionName,\n retentionKey,\n runtimeIssueKey,\n className,\n dashboardId,\n panelId,\n}) => {\n const connection = useStoreWithMosaicDashboard(\n (state) => state.mosaic.connection,\n );\n\n const retention = useChartRetainerByKey(retentionKey);\n const chartClients = useChartPanelClients(retention);\n\n usePanelClientRegistration(dashboardId, panelId, chartClients);\n\n const params = useBrushSelectionParams(selectionName);\n const dataPolicy = useChartDataPolicy(dataTable, config);\n\n const runtimeIssueReporter = useRuntimeIssueReporter(runtimeIssueKey);\n\n const runtimeIssueContext: ChartRuntimeIssueContext = useMemo(\n () => ({\n panelId: runtimeIssueKey ?? retentionKey ?? config.chartType,\n chartType: config.chartType,\n }),\n [config.chartType, retentionKey, runtimeIssueKey],\n );\n\n const issue = useStoreWithMosaicDashboard((state) =>\n runtimeIssueKey\n ? state.mosaicDashboard.getPanelIssueByKey(runtimeIssueKey)\n : undefined,\n );\n\n const clearPanelIssue = useStoreWithMosaicDashboard(\n (state) => state.mosaicDashboard.clearPanelIssueByKey,\n );\n\n // Clear issue when config changes - new config means user is trying different settings\n useEffect(() => {\n if (runtimeIssueKey && issue) {\n clearPanelIssue(runtimeIssueKey);\n }\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [config, runtimeIssueKey, clearPanelIssue]);\n\n const renderContext = useMosaicChartRenderContext(\n dataTable,\n config,\n selectionName,\n );\n\n if (connection.status === 'loading' || connection.status === 'idle') {\n return <SpinnerPane className=\"h-full w-full\" />;\n }\n\n if (connection.status === 'error') {\n return (\n <div className=\"text-muted-foreground flex h-full items-center justify-center text-sm\">\n Mosaic connection failed\n </div>\n );\n }\n\n if (renderContext.type === 'error') {\n return (\n <div\n className={cn(\n 'flex h-full flex-col items-center justify-center',\n className,\n )}\n >\n <MosaicChartError error={renderContext.error} />\n </div>\n );\n }\n\n if (issue) {\n return <MosaicChartRuntimeIssuePanel issue={issue} />;\n }\n\n if (renderContext.type === 'spec') {\n return (\n <div className={cn('h-full w-full', className)}>\n <VgPlotChart\n spec={renderContext.spec}\n params={params}\n retention={retention}\n dataPolicy={dataPolicy}\n runtimeIssueContext={runtimeIssueContext}\n runtimeIssueReporter={runtimeIssueReporter}\n />\n </div>\n );\n }\n\n if (renderContext.type === 'component') {\n return (\n <div className={cn('h-full w-full', className)}>\n {createElement(renderContext.renderer, {\n tableName: getChartTableReference(renderContext.dataTable),\n config,\n coordinator: connection.coordinator,\n params,\n retention,\n dataPolicy,\n runtimeIssueContext,\n runtimeIssueReporter,\n })}\n </div>\n );\n }\n\n return null;\n};\n"]}
1
+ {"version":3,"file":"MosaicChartView.js","sourceRoot":"","sources":["../../src/charts/MosaicChartView.tsx"],"names":[],"mappings":"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","sourcesContent":["import {SpinnerPane, cn} from '@sqlrooms/ui';\nimport {type FC, createElement, useMemo, useEffect} from 'react';\nimport {VgPlotChart} from '../VgPlotChart';\nimport type {ChartRuntimeIssueContext} from '../chart-runtime';\nimport type {ChartConfig} from './chart-types/chart-config';\nimport {useStoreWithMosaicDashboard} from '../dashboard/MosaicDashboardSlice';\nimport {usePanelClientRegistration} from '../dashboard/usePanelClientRegistration';\nimport {useChartPanelClients} from './useChartPanelClients';\nimport {MosaicChartRuntimeIssuePanel} from './MosaicChartRuntimeIssuePanel';\nimport {MosaicChartError} from './MosaicChartError';\nimport {useBrushSelectionParams} from './useBrushSelectionParams';\nimport {useChartDataPolicy} from './useChartDataPolicy';\nimport {useChartRetainerByKey} from './useChartRetainer';\nimport {useMosaicChartRenderContext} from './useMosaicChartRenderContext';\nimport {useRuntimeIssueReporter} from './useRuntimeIssueReporter';\nimport {DataTable} from '@sqlrooms/db';\n\nexport type MosaicChartViewProps = {\n dataTable?: DataTable;\n config: ChartConfig;\n selectionName?: string;\n retentionKey?: string;\n runtimeIssueKey?: string;\n className?: string;\n dashboardId?: string;\n panelId?: string;\n};\n\nexport const MosaicChartView: FC<MosaicChartViewProps> = ({\n dataTable,\n config,\n selectionName,\n retentionKey,\n runtimeIssueKey,\n className,\n dashboardId,\n panelId,\n}) => {\n const connection = useStoreWithMosaicDashboard(\n (state) => state.mosaic.connection,\n );\n\n const retention = useChartRetainerByKey(retentionKey);\n const chartClients = useChartPanelClients(retention);\n\n usePanelClientRegistration(dashboardId, panelId, chartClients);\n\n const params = useBrushSelectionParams(selectionName);\n const dataPolicy = useChartDataPolicy(dataTable, config);\n\n const runtimeIssueReporter = useRuntimeIssueReporter(runtimeIssueKey);\n\n const runtimeIssueContext: ChartRuntimeIssueContext = useMemo(\n () => ({\n panelId: runtimeIssueKey ?? retentionKey ?? config.chartType,\n chartType: config.chartType,\n }),\n [config.chartType, retentionKey, runtimeIssueKey],\n );\n\n const issue = useStoreWithMosaicDashboard((state) =>\n runtimeIssueKey\n ? state.mosaicDashboard.getPanelIssueByKey(runtimeIssueKey)\n : undefined,\n );\n\n const clearPanelIssue = useStoreWithMosaicDashboard(\n (state) => state.mosaicDashboard.clearPanelIssueByKey,\n );\n\n // Clear issue when config changes - new config means user is trying different settings\n useEffect(() => {\n if (runtimeIssueKey && issue) {\n clearPanelIssue(runtimeIssueKey);\n }\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [config, runtimeIssueKey, clearPanelIssue]);\n\n const renderContext = useMosaicChartRenderContext(\n dataTable,\n config,\n selectionName,\n );\n\n if (connection.status === 'loading' || connection.status === 'idle') {\n return <SpinnerPane className=\"h-full w-full\" />;\n }\n\n if (connection.status === 'error') {\n return (\n <div className=\"text-muted-foreground flex h-full items-center justify-center text-sm\">\n Mosaic connection failed\n </div>\n );\n }\n\n if (renderContext.type === 'error') {\n return (\n <div\n className={cn(\n 'flex h-full flex-col items-center justify-center',\n className,\n )}\n >\n <MosaicChartError error={renderContext.error} />\n </div>\n );\n }\n\n if (issue) {\n return <MosaicChartRuntimeIssuePanel issue={issue} />;\n }\n\n if (renderContext.type === 'spec') {\n return (\n <div className={cn('h-full w-full', className)}>\n <VgPlotChart\n spec={renderContext.spec}\n params={params}\n retention={retention}\n dataPolicy={dataPolicy}\n runtimeIssueContext={runtimeIssueContext}\n runtimeIssueReporter={runtimeIssueReporter}\n />\n </div>\n );\n }\n\n if (renderContext.type === 'component') {\n return (\n <div className={cn('h-full w-full', className)}>\n {createElement(renderContext.renderer, {\n table: renderContext.dataTable.table,\n config,\n coordinator: connection.coordinator,\n params,\n retention,\n dataPolicy,\n runtimeIssueContext,\n runtimeIssueReporter,\n })}\n </div>\n );\n }\n\n return null;\n};\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"MosaicChartSpecViewerPanel.d.ts","sourceRoot":"","sources":["../../../src/charts/chart-settings/MosaicChartSpecViewerPanel.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAC,KAAK,EAAE,EAAU,MAAM,OAAO,CAAC;AAGvC,OAAO,EAAC,IAAI,EAAC,MAAM,qBAAqB,CAAC;AAGzC,UAAU,+BAA+B;IACvC,IAAI,EAAE,IAAI,CAAC;IACX,MAAM,EAAE,MAAM,IAAI,CAAC;CACpB;AAED,eAAO,MAAM,0BAA0B,EAAE,EAAE,CACzC,+BAA+B,CA+BhC,CAAC"}
1
+ {"version":3,"file":"MosaicChartSpecViewerPanel.d.ts","sourceRoot":"","sources":["../../../src/charts/chart-settings/MosaicChartSpecViewerPanel.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAC,KAAK,EAAE,EAAU,MAAM,OAAO,CAAC;AAIvC,OAAO,EAAC,IAAI,EAAC,MAAM,qBAAqB,CAAC;AAGzC,UAAU,+BAA+B;IACvC,IAAI,EAAE,IAAI,CAAC;IACX,MAAM,EAAE,MAAM,IAAI,CAAC;CACpB;AAED,eAAO,MAAM,0BAA0B,EAAE,EAAE,CACzC,+BAA+B,CAiChC,CAAC"}
@@ -1,11 +1,12 @@
1
1
  import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
2
  import { useMemo } from 'react';
3
+ import { ScrollArea } from '@sqlrooms/ui';
3
4
  import { MosaicCodeMirrorEditor } from '../../editor/MosaicCodeMirrorEditor';
4
5
  import { MosaicChartSettings } from './MosaicChartSettings';
5
6
  import { toRenderableMosaicSpec } from '../../dashboard/utils';
6
7
  export const MosaicChartSpecViewerPanel = ({ spec, onBack }) => {
7
8
  const renderableSpec = toRenderableMosaicSpec(spec);
8
9
  const serializedValue = useMemo(() => (renderableSpec ? JSON.stringify(renderableSpec, null, 2) : ''), [renderableSpec]);
9
- return (_jsxs("div", { className: "flex h-full flex-col", children: [_jsxs(MosaicChartSettings.Header, { children: [_jsx("div", { className: "flex items-center", children: _jsx("span", { children: "Spec viewer" }) }), _jsx("div", { className: "flex items-center gap-1", children: _jsx(MosaicChartSettings.CloseButton, { onClick: onBack }) })] }), _jsx("div", { className: "flex-1 overflow-auto p-2", children: _jsx("div", { className: "border-input h-full overflow-hidden rounded-md border", children: _jsx(MosaicCodeMirrorEditor, { value: serializedValue, className: "h-full", enableSchemaValidation: true, readOnly: true }) }) })] }));
10
+ return (_jsxs("div", { className: "flex h-full flex-col", children: [_jsxs(MosaicChartSettings.Header, { children: [_jsx("div", { className: "flex items-center", children: _jsx("span", { children: "Spec viewer" }) }), _jsx("div", { className: "flex items-center gap-1", children: _jsx(MosaicChartSettings.CloseButton, { onClick: onBack }) })] }), _jsx(ScrollArea, { className: "min-h-0 flex-1", children: _jsx("div", { className: "h-full p-2", children: _jsx("div", { className: "border-input h-full overflow-hidden rounded-md border", children: _jsx(MosaicCodeMirrorEditor, { value: serializedValue, className: "h-full", enableSchemaValidation: true, readOnly: true }) }) }) })] }));
10
11
  };
11
12
  //# sourceMappingURL=MosaicChartSpecViewerPanel.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"MosaicChartSpecViewerPanel.js","sourceRoot":"","sources":["../../../src/charts/chart-settings/MosaicChartSpecViewerPanel.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAU,OAAO,EAAC,MAAM,OAAO,CAAC;AACvC,OAAO,EAAC,sBAAsB,EAAC,MAAM,qCAAqC,CAAC;AAC3E,OAAO,EAAC,mBAAmB,EAAC,MAAM,uBAAuB,CAAC;AAE1D,OAAO,EAAC,sBAAsB,EAAC,MAAM,uBAAuB,CAAC;AAO7D,MAAM,CAAC,MAAM,0BAA0B,GAEnC,CAAC,EAAC,IAAI,EAAE,MAAM,EAAC,EAAE,EAAE;IACrB,MAAM,cAAc,GAAG,sBAAsB,CAAC,IAAI,CAAC,CAAC;IAEpD,MAAM,eAAe,GAAG,OAAO,CAC7B,GAAG,EAAE,CAAC,CAAC,cAAc,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,cAAc,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,EACrE,CAAC,cAAc,CAAC,CACjB,CAAC;IAEF,OAAO,CACL,eAAK,SAAS,EAAC,sBAAsB,aACnC,MAAC,mBAAmB,CAAC,MAAM,eACzB,cAAK,SAAS,EAAC,mBAAmB,YAChC,yCAAwB,GACpB,EACN,cAAK,SAAS,EAAC,yBAAyB,YACtC,KAAC,mBAAmB,CAAC,WAAW,IAAC,OAAO,EAAE,MAAM,GAAI,GAChD,IACqB,EAC7B,cAAK,SAAS,EAAC,0BAA0B,YACvC,cAAK,SAAS,EAAC,uDAAuD,YACpE,KAAC,sBAAsB,IACrB,KAAK,EAAE,eAAe,EACtB,SAAS,EAAC,QAAQ,EAClB,sBAAsB,QACtB,QAAQ,SACR,GACE,GACF,IACF,CACP,CAAC;AACJ,CAAC,CAAC","sourcesContent":["import {type FC, useMemo} from 'react';\nimport {MosaicCodeMirrorEditor} from '../../editor/MosaicCodeMirrorEditor';\nimport {MosaicChartSettings} from './MosaicChartSettings';\nimport {Spec} from '@uwdata/mosaic-spec';\nimport {toRenderableMosaicSpec} from '../../dashboard/utils';\n\ninterface MosaicChartSpecViewerPanelProps {\n spec: Spec;\n onBack: () => void;\n}\n\nexport const MosaicChartSpecViewerPanel: FC<\n MosaicChartSpecViewerPanelProps\n> = ({spec, onBack}) => {\n const renderableSpec = toRenderableMosaicSpec(spec);\n\n const serializedValue = useMemo(\n () => (renderableSpec ? JSON.stringify(renderableSpec, null, 2) : ''),\n [renderableSpec],\n );\n\n return (\n <div className=\"flex h-full flex-col\">\n <MosaicChartSettings.Header>\n <div className=\"flex items-center\">\n <span>Spec viewer</span>\n </div>\n <div className=\"flex items-center gap-1\">\n <MosaicChartSettings.CloseButton onClick={onBack} />\n </div>\n </MosaicChartSettings.Header>\n <div className=\"flex-1 overflow-auto p-2\">\n <div className=\"border-input h-full overflow-hidden rounded-md border\">\n <MosaicCodeMirrorEditor\n value={serializedValue}\n className=\"h-full\"\n enableSchemaValidation\n readOnly\n />\n </div>\n </div>\n </div>\n );\n};\n"]}
1
+ {"version":3,"file":"MosaicChartSpecViewerPanel.js","sourceRoot":"","sources":["../../../src/charts/chart-settings/MosaicChartSpecViewerPanel.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAU,OAAO,EAAC,MAAM,OAAO,CAAC;AACvC,OAAO,EAAC,UAAU,EAAC,MAAM,cAAc,CAAC;AACxC,OAAO,EAAC,sBAAsB,EAAC,MAAM,qCAAqC,CAAC;AAC3E,OAAO,EAAC,mBAAmB,EAAC,MAAM,uBAAuB,CAAC;AAE1D,OAAO,EAAC,sBAAsB,EAAC,MAAM,uBAAuB,CAAC;AAO7D,MAAM,CAAC,MAAM,0BAA0B,GAEnC,CAAC,EAAC,IAAI,EAAE,MAAM,EAAC,EAAE,EAAE;IACrB,MAAM,cAAc,GAAG,sBAAsB,CAAC,IAAI,CAAC,CAAC;IAEpD,MAAM,eAAe,GAAG,OAAO,CAC7B,GAAG,EAAE,CAAC,CAAC,cAAc,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,cAAc,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,EACrE,CAAC,cAAc,CAAC,CACjB,CAAC;IAEF,OAAO,CACL,eAAK,SAAS,EAAC,sBAAsB,aACnC,MAAC,mBAAmB,CAAC,MAAM,eACzB,cAAK,SAAS,EAAC,mBAAmB,YAChC,yCAAwB,GACpB,EACN,cAAK,SAAS,EAAC,yBAAyB,YACtC,KAAC,mBAAmB,CAAC,WAAW,IAAC,OAAO,EAAE,MAAM,GAAI,GAChD,IACqB,EAC7B,KAAC,UAAU,IAAC,SAAS,EAAC,gBAAgB,YACpC,cAAK,SAAS,EAAC,YAAY,YACzB,cAAK,SAAS,EAAC,uDAAuD,YACpE,KAAC,sBAAsB,IACrB,KAAK,EAAE,eAAe,EACtB,SAAS,EAAC,QAAQ,EAClB,sBAAsB,QACtB,QAAQ,SACR,GACE,GACF,GACK,IACT,CACP,CAAC;AACJ,CAAC,CAAC","sourcesContent":["import {type FC, useMemo} from 'react';\nimport {ScrollArea} from '@sqlrooms/ui';\nimport {MosaicCodeMirrorEditor} from '../../editor/MosaicCodeMirrorEditor';\nimport {MosaicChartSettings} from './MosaicChartSettings';\nimport {Spec} from '@uwdata/mosaic-spec';\nimport {toRenderableMosaicSpec} from '../../dashboard/utils';\n\ninterface MosaicChartSpecViewerPanelProps {\n spec: Spec;\n onBack: () => void;\n}\n\nexport const MosaicChartSpecViewerPanel: FC<\n MosaicChartSpecViewerPanelProps\n> = ({spec, onBack}) => {\n const renderableSpec = toRenderableMosaicSpec(spec);\n\n const serializedValue = useMemo(\n () => (renderableSpec ? JSON.stringify(renderableSpec, null, 2) : ''),\n [renderableSpec],\n );\n\n return (\n <div className=\"flex h-full flex-col\">\n <MosaicChartSettings.Header>\n <div className=\"flex items-center\">\n <span>Spec viewer</span>\n </div>\n <div className=\"flex items-center gap-1\">\n <MosaicChartSettings.CloseButton onClick={onBack} />\n </div>\n </MosaicChartSettings.Header>\n <ScrollArea className=\"min-h-0 flex-1\">\n <div className=\"h-full p-2\">\n <div className=\"border-input h-full overflow-hidden rounded-md border\">\n <MosaicCodeMirrorEditor\n value={serializedValue}\n className=\"h-full\"\n enableSchemaValidation\n readOnly\n />\n </div>\n </div>\n </ScrollArea>\n </div>\n );\n};\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"MosaicChartTypeSelector.d.ts","sourceRoot":"","sources":["../../../src/charts/chart-settings/MosaicChartTypeSelector.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAC,KAAK,EAAE,EAA6B,MAAM,OAAO,CAAC;AAE1D,OAAO,EAAC,KAAK,SAAS,EAAC,MAAM,2BAA2B,CAAC;AAIzD,UAAU,4BAA4B;IACpC,KAAK,EAAE,SAAS,CAAC;IACjB,QAAQ,EAAE,CAAC,SAAS,EAAE,SAAS,KAAK,IAAI,CAAC;CAC1C;AAED,eAAO,MAAM,uBAAuB,EAAE,EAAE,CAAC,4BAA4B,CA8DpE,CAAC"}
1
+ {"version":3,"file":"MosaicChartTypeSelector.d.ts","sourceRoot":"","sources":["../../../src/charts/chart-settings/MosaicChartTypeSelector.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAC,KAAK,EAAE,EAAgB,MAAM,OAAO,CAAC;AAG7C,OAAO,EAAC,KAAK,SAAS,EAAC,MAAM,2BAA2B,CAAC;AAGzD,UAAU,4BAA4B;IACpC,KAAK,EAAE,SAAS,CAAC;IACjB,QAAQ,EAAE,CAAC,SAAS,EAAE,SAAS,KAAK,IAAI,CAAC;CAC1C;AAED,eAAO,MAAM,uBAAuB,EAAE,EAAE,CAAC,4BAA4B,CAkDpE,CAAC"}
@@ -1,22 +1,15 @@
1
1
  import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
- import { memo, useMemo, useCallback } from 'react';
2
+ import { memo, useMemo } from 'react';
3
3
  import { ChartNoAxesCombined } from 'lucide-react';
4
+ import { Combobox } from '@sqlrooms/ui';
4
5
  import { useStoreWithMosaicDashboard } from '../../dashboard/MosaicDashboardSlice';
5
- import { Combobox } from '../../components/Combobox';
6
6
  export const MosaicChartTypeSelector = memo(({ value, onChange }) => {
7
7
  const chartTypes = useStoreWithMosaicDashboard((state) => state.mosaicDashboard.chartTypes);
8
- // Custom selection handler: maps from label back to id
9
- const handleChange = useCallback((searchValue) => {
10
- const chartType = chartTypes?.find((ct) => (ct.label ?? ct.id).toLowerCase() === searchValue.toLowerCase());
11
- if (chartType) {
12
- onChange(chartType.id);
13
- }
14
- }, [chartTypes, onChange]);
15
8
  const selectedChartType = useMemo(() => chartTypes?.find((chartType) => chartType.id === value), [chartTypes, value]);
16
9
  const SelectedChartTypeIcon = selectedChartType?.icon ?? ChartNoAxesCombined;
17
- return (_jsxs(Combobox, { value: value, onChange: handleChange, children: [_jsx(Combobox.Trigger, { className: "w-full", ariaLabel: "Chart type", children: selectedChartType ? (_jsxs("div", { className: "flex items-center gap-2", children: [_jsx(SelectedChartTypeIcon, { className: "h-3.5 w-3.5" }), _jsx("span", { children: selectedChartType.label })] })) : (_jsx("span", { className: "text-muted-foreground", children: "Select chart type" })) }), _jsx(Combobox.Content, { searchable: true, searchPlaceholder: "Search chart types...", emptyMessage: "No matching chart type.", children: chartTypes?.map((chartType) => {
10
+ return (_jsxs(Combobox, { value: value, onChange: onChange, children: [_jsx(Combobox.Trigger, { className: "w-full", ariaLabel: "Chart type", children: selectedChartType ? (_jsxs("div", { className: "flex items-center gap-2", children: [_jsx(SelectedChartTypeIcon, { className: "h-3.5 w-3.5" }), _jsx("span", { children: selectedChartType.label })] })) : (_jsx("span", { className: "text-muted-foreground", children: "Select chart type" })) }), _jsx(Combobox.Content, { searchable: true, searchPlaceholder: "Search chart types...", emptyMessage: "No matching chart type.", children: chartTypes?.map((chartType) => {
18
11
  const Icon = chartType.icon ?? ChartNoAxesCombined;
19
- return (_jsxs(Combobox.Item, { value: chartType.label ?? chartType.id, isSelected: value === chartType.id, children: [_jsx(Icon, { className: "mr-2 h-3.5 w-3.5 shrink-0" }), _jsx("span", { className: "truncate text-xs", children: chartType.label })] }, chartType.id));
12
+ return (_jsxs(Combobox.Item, { value: chartType.id, keywords: [chartType.label ?? chartType.id], children: [_jsx(Icon, { className: "mr-2 h-3.5 w-3.5 shrink-0" }), _jsx("span", { className: "truncate text-xs", children: chartType.label ?? chartType.id })] }, chartType.id));
20
13
  }) })] }));
21
14
  });
22
15
  MosaicChartTypeSelector.displayName = 'MosaicChartTypeSelector';
@@ -1 +1 @@
1
- {"version":3,"file":"MosaicChartTypeSelector.js","sourceRoot":"","sources":["../../../src/charts/chart-settings/MosaicChartTypeSelector.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAU,IAAI,EAAE,OAAO,EAAE,WAAW,EAAC,MAAM,OAAO,CAAC;AAC1D,OAAO,EAAC,mBAAmB,EAAC,MAAM,cAAc,CAAC;AAEjD,OAAO,EAAC,2BAA2B,EAAC,MAAM,sCAAsC,CAAC;AACjF,OAAO,EAAC,QAAQ,EAAC,MAAM,2BAA2B,CAAC;AAOnD,MAAM,CAAC,MAAM,uBAAuB,GAAqC,IAAI,CAC3E,CAAC,EAAC,KAAK,EAAE,QAAQ,EAAC,EAAE,EAAE;IACpB,MAAM,UAAU,GAAG,2BAA2B,CAC5C,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,eAAe,CAAC,UAAU,CAC5C,CAAC;IAEF,uDAAuD;IACvD,MAAM,YAAY,GAAG,WAAW,CAC9B,CAAC,WAAmB,EAAE,EAAE;QACtB,MAAM,SAAS,GAAG,UAAU,EAAE,IAAI,CAChC,CAAC,EAAE,EAAE,EAAE,CACL,CAAC,EAAE,CAAC,KAAK,IAAI,EAAE,CAAC,EAAE,CAAC,CAAC,WAAW,EAAE,KAAK,WAAW,CAAC,WAAW,EAAE,CAClE,CAAC;QACF,IAAI,SAAS,EAAE,CAAC;YACd,QAAQ,CAAC,SAAS,CAAC,EAAE,CAAC,CAAC;QACzB,CAAC;IACH,CAAC,EACD,CAAC,UAAU,EAAE,QAAQ,CAAC,CACvB,CAAC;IAEF,MAAM,iBAAiB,GAAG,OAAO,CAC/B,GAAG,EAAE,CAAC,UAAU,EAAE,IAAI,CAAC,CAAC,SAAS,EAAE,EAAE,CAAC,SAAS,CAAC,EAAE,KAAK,KAAK,CAAC,EAC7D,CAAC,UAAU,EAAE,KAAK,CAAC,CACpB,CAAC;IAEF,MAAM,qBAAqB,GACzB,iBAAiB,EAAE,IAAI,IAAI,mBAAmB,CAAC;IAEjD,OAAO,CACL,MAAC,QAAQ,IAAC,KAAK,EAAE,KAAK,EAAE,QAAQ,EAAE,YAAY,aAC5C,KAAC,QAAQ,CAAC,OAAO,IAAC,SAAS,EAAC,QAAQ,EAAC,SAAS,EAAC,YAAY,YACxD,iBAAiB,CAAC,CAAC,CAAC,CACnB,eAAK,SAAS,EAAC,yBAAyB,aACtC,KAAC,qBAAqB,IAAC,SAAS,EAAC,aAAa,GAAG,EACjD,yBAAO,iBAAiB,CAAC,KAAK,GAAQ,IAClC,CACP,CAAC,CAAC,CAAC,CACF,eAAM,SAAS,EAAC,uBAAuB,kCAAyB,CACjE,GACgB,EACnB,KAAC,QAAQ,CAAC,OAAO,IACf,UAAU,QACV,iBAAiB,EAAC,uBAAuB,EACzC,YAAY,EAAC,yBAAyB,YAErC,UAAU,EAAE,GAAG,CAAC,CAAC,SAAS,EAAE,EAAE;oBAC7B,MAAM,IAAI,GAAG,SAAS,CAAC,IAAI,IAAI,mBAAmB,CAAC;oBACnD,OAAO,CACL,MAAC,QAAQ,CAAC,IAAI,IAEZ,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,SAAS,CAAC,EAAE,EACtC,UAAU,EAAE,KAAK,KAAK,SAAS,CAAC,EAAE,aAElC,KAAC,IAAI,IAAC,SAAS,EAAC,2BAA2B,GAAG,EAC9C,eAAM,SAAS,EAAC,kBAAkB,YAAE,SAAS,CAAC,KAAK,GAAQ,KALtD,SAAS,CAAC,EAAE,CAMH,CACjB,CAAC;gBACJ,CAAC,CAAC,GACe,IACV,CACZ,CAAC;AACJ,CAAC,CACF,CAAC;AAEF,uBAAuB,CAAC,WAAW,GAAG,yBAAyB,CAAC","sourcesContent":["import {type FC, memo, useMemo, useCallback} from 'react';\nimport {ChartNoAxesCombined} from 'lucide-react';\nimport {type ChartType} from '../chart-types/base-types';\nimport {useStoreWithMosaicDashboard} from '../../dashboard/MosaicDashboardSlice';\nimport {Combobox} from '../../components/Combobox';\n\ninterface MosaicChartTypeSelectorProps {\n value: ChartType;\n onChange: (chartType: ChartType) => void;\n}\n\nexport const MosaicChartTypeSelector: FC<MosaicChartTypeSelectorProps> = memo(\n ({value, onChange}) => {\n const chartTypes = useStoreWithMosaicDashboard(\n (state) => state.mosaicDashboard.chartTypes,\n );\n\n // Custom selection handler: maps from label back to id\n const handleChange = useCallback(\n (searchValue: string) => {\n const chartType = chartTypes?.find(\n (ct) =>\n (ct.label ?? ct.id).toLowerCase() === searchValue.toLowerCase(),\n );\n if (chartType) {\n onChange(chartType.id);\n }\n },\n [chartTypes, onChange],\n );\n\n const selectedChartType = useMemo(\n () => chartTypes?.find((chartType) => chartType.id === value),\n [chartTypes, value],\n );\n\n const SelectedChartTypeIcon =\n selectedChartType?.icon ?? ChartNoAxesCombined;\n\n return (\n <Combobox value={value} onChange={handleChange}>\n <Combobox.Trigger className=\"w-full\" ariaLabel=\"Chart type\">\n {selectedChartType ? (\n <div className=\"flex items-center gap-2\">\n <SelectedChartTypeIcon className=\"h-3.5 w-3.5\" />\n <span>{selectedChartType.label}</span>\n </div>\n ) : (\n <span className=\"text-muted-foreground\">Select chart type</span>\n )}\n </Combobox.Trigger>\n <Combobox.Content\n searchable\n searchPlaceholder=\"Search chart types...\"\n emptyMessage=\"No matching chart type.\"\n >\n {chartTypes?.map((chartType) => {\n const Icon = chartType.icon ?? ChartNoAxesCombined;\n return (\n <Combobox.Item\n key={chartType.id}\n value={chartType.label ?? chartType.id}\n isSelected={value === chartType.id}\n >\n <Icon className=\"mr-2 h-3.5 w-3.5 shrink-0\" />\n <span className=\"truncate text-xs\">{chartType.label}</span>\n </Combobox.Item>\n );\n })}\n </Combobox.Content>\n </Combobox>\n );\n },\n);\n\nMosaicChartTypeSelector.displayName = 'MosaicChartTypeSelector';\n"]}
1
+ {"version":3,"file":"MosaicChartTypeSelector.js","sourceRoot":"","sources":["../../../src/charts/chart-settings/MosaicChartTypeSelector.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAU,IAAI,EAAE,OAAO,EAAC,MAAM,OAAO,CAAC;AAC7C,OAAO,EAAC,mBAAmB,EAAC,MAAM,cAAc,CAAC;AACjD,OAAO,EAAC,QAAQ,EAAC,MAAM,cAAc,CAAC;AAEtC,OAAO,EAAC,2BAA2B,EAAC,MAAM,sCAAsC,CAAC;AAOjF,MAAM,CAAC,MAAM,uBAAuB,GAAqC,IAAI,CAC3E,CAAC,EAAC,KAAK,EAAE,QAAQ,EAAC,EAAE,EAAE;IACpB,MAAM,UAAU,GAAG,2BAA2B,CAC5C,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,eAAe,CAAC,UAAU,CAC5C,CAAC;IAEF,MAAM,iBAAiB,GAAG,OAAO,CAC/B,GAAG,EAAE,CAAC,UAAU,EAAE,IAAI,CAAC,CAAC,SAAS,EAAE,EAAE,CAAC,SAAS,CAAC,EAAE,KAAK,KAAK,CAAC,EAC7D,CAAC,UAAU,EAAE,KAAK,CAAC,CACpB,CAAC;IAEF,MAAM,qBAAqB,GACzB,iBAAiB,EAAE,IAAI,IAAI,mBAAmB,CAAC;IAEjD,OAAO,CACL,MAAC,QAAQ,IAAC,KAAK,EAAE,KAAK,EAAE,QAAQ,EAAE,QAAQ,aACxC,KAAC,QAAQ,CAAC,OAAO,IAAC,SAAS,EAAC,QAAQ,EAAC,SAAS,EAAC,YAAY,YACxD,iBAAiB,CAAC,CAAC,CAAC,CACnB,eAAK,SAAS,EAAC,yBAAyB,aACtC,KAAC,qBAAqB,IAAC,SAAS,EAAC,aAAa,GAAG,EACjD,yBAAO,iBAAiB,CAAC,KAAK,GAAQ,IAClC,CACP,CAAC,CAAC,CAAC,CACF,eAAM,SAAS,EAAC,uBAAuB,kCAAyB,CACjE,GACgB,EACnB,KAAC,QAAQ,CAAC,OAAO,IACf,UAAU,QACV,iBAAiB,EAAC,uBAAuB,EACzC,YAAY,EAAC,yBAAyB,YAErC,UAAU,EAAE,GAAG,CAAC,CAAC,SAAS,EAAE,EAAE;oBAC7B,MAAM,IAAI,GAAG,SAAS,CAAC,IAAI,IAAI,mBAAmB,CAAC;oBACnD,OAAO,CACL,MAAC,QAAQ,CAAC,IAAI,IAEZ,KAAK,EAAE,SAAS,CAAC,EAAE,EACnB,QAAQ,EAAE,CAAC,SAAS,CAAC,KAAK,IAAI,SAAS,CAAC,EAAE,CAAC,aAE3C,KAAC,IAAI,IAAC,SAAS,EAAC,2BAA2B,GAAG,EAC9C,eAAM,SAAS,EAAC,kBAAkB,YAC/B,SAAS,CAAC,KAAK,IAAI,SAAS,CAAC,EAAE,GAC3B,KAPF,SAAS,CAAC,EAAE,CAQH,CACjB,CAAC;gBACJ,CAAC,CAAC,GACe,IACV,CACZ,CAAC;AACJ,CAAC,CACF,CAAC;AAEF,uBAAuB,CAAC,WAAW,GAAG,yBAAyB,CAAC","sourcesContent":["import {type FC, memo, useMemo} from 'react';\nimport {ChartNoAxesCombined} from 'lucide-react';\nimport {Combobox} from '@sqlrooms/ui';\nimport {type ChartType} from '../chart-types/base-types';\nimport {useStoreWithMosaicDashboard} from '../../dashboard/MosaicDashboardSlice';\n\ninterface MosaicChartTypeSelectorProps {\n value: ChartType;\n onChange: (chartType: ChartType) => void;\n}\n\nexport const MosaicChartTypeSelector: FC<MosaicChartTypeSelectorProps> = memo(\n ({value, onChange}) => {\n const chartTypes = useStoreWithMosaicDashboard(\n (state) => state.mosaicDashboard.chartTypes,\n );\n\n const selectedChartType = useMemo(\n () => chartTypes?.find((chartType) => chartType.id === value),\n [chartTypes, value],\n );\n\n const SelectedChartTypeIcon =\n selectedChartType?.icon ?? ChartNoAxesCombined;\n\n return (\n <Combobox value={value} onChange={onChange}>\n <Combobox.Trigger className=\"w-full\" ariaLabel=\"Chart type\">\n {selectedChartType ? (\n <div className=\"flex items-center gap-2\">\n <SelectedChartTypeIcon className=\"h-3.5 w-3.5\" />\n <span>{selectedChartType.label}</span>\n </div>\n ) : (\n <span className=\"text-muted-foreground\">Select chart type</span>\n )}\n </Combobox.Trigger>\n <Combobox.Content\n searchable\n searchPlaceholder=\"Search chart types...\"\n emptyMessage=\"No matching chart type.\"\n >\n {chartTypes?.map((chartType) => {\n const Icon = chartType.icon ?? ChartNoAxesCombined;\n return (\n <Combobox.Item\n key={chartType.id}\n value={chartType.id}\n keywords={[chartType.label ?? chartType.id]}\n >\n <Icon className=\"mr-2 h-3.5 w-3.5 shrink-0\" />\n <span className=\"truncate text-xs\">\n {chartType.label ?? chartType.id}\n </span>\n </Combobox.Item>\n );\n })}\n </Combobox.Content>\n </Combobox>\n );\n },\n);\n\nMosaicChartTypeSelector.displayName = 'MosaicChartTypeSelector';\n"]}