drizzle-cube 0.8.3 → 0.9.0

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 (285) hide show
  1. package/dist/adapters/ActivityGridChart.config-DfyZh3He.js +2 -0
  2. package/dist/adapters/ActivityGridChart.config-DgOwl51m.cjs +1 -0
  3. package/dist/adapters/AreaChart.config-BL_ZpMsg.js +2 -0
  4. package/dist/adapters/AreaChart.config-rc1phjmI.cjs +1 -0
  5. package/dist/adapters/BarChart.config-C6k4BxhM.cjs +1 -0
  6. package/dist/adapters/BarChart.config-CBACR7Z-.js +2 -0
  7. package/dist/adapters/BoxPlotChart.config-Bvg6yFn2.js +2 -0
  8. package/dist/adapters/BoxPlotChart.config-CAlLRM0v.cjs +1 -0
  9. package/dist/adapters/BubbleChart.config-22qXNskY.js +2 -0
  10. package/dist/adapters/BubbleChart.config-BkB3P6Bi.cjs +1 -0
  11. package/dist/adapters/CandlestickChart.config-DuZb-y6d.cjs +1 -0
  12. package/dist/adapters/CandlestickChart.config-G78UbuwS.js +2 -0
  13. package/dist/adapters/DataTable.config-BXkpzOC2.js +2 -0
  14. package/dist/adapters/DataTable.config-CwPlSht6.cjs +1 -0
  15. package/dist/adapters/DotStripChart.config-Bw9Ww5zY.cjs +1 -0
  16. package/dist/adapters/DotStripChart.config-D5sbLAqA.js +2 -0
  17. package/dist/adapters/FunnelChart.config-CUs1rqN2.cjs +1 -0
  18. package/dist/adapters/FunnelChart.config-Cw9qrC2C.js +2 -0
  19. package/dist/adapters/GaugeChart.config-CjGtJVoO.cjs +1 -0
  20. package/dist/adapters/GaugeChart.config-F5SA5Oi3.js +2 -0
  21. package/dist/adapters/HeatMapChart.config-CvgmSiuY.cjs +1 -0
  22. package/dist/adapters/HeatMapChart.config-DrvQrPHT.js +2 -0
  23. package/dist/adapters/KpiDelta.config-B-UJWdJ5.cjs +1 -0
  24. package/dist/adapters/KpiDelta.config-C00mTZYy.js +2 -0
  25. package/dist/adapters/KpiNumber.config-CB0kTeoV.cjs +1 -0
  26. package/dist/adapters/KpiNumber.config-D3CogH8j.js +2 -0
  27. package/dist/adapters/KpiText.config-B0LbKRCf.js +2 -0
  28. package/dist/adapters/KpiText.config-Dv4TNprC.cjs +1 -0
  29. package/dist/adapters/LineChart.config-CdONxSLL.js +2 -0
  30. package/dist/adapters/LineChart.config-DBHsfIYG.cjs +1 -0
  31. package/dist/adapters/MarkdownChart.config-AYKXdpuw.cjs +1 -0
  32. package/dist/adapters/MarkdownChart.config-CngxD_Lc.js +2 -0
  33. package/dist/adapters/MeasureProfileChart.config-B0a5sUk6.cjs +1 -0
  34. package/dist/adapters/MeasureProfileChart.config-ByW5F1Ey.js +2 -0
  35. package/dist/adapters/PieChart.config-Csx1ctk4.js +2 -0
  36. package/dist/adapters/PieChart.config-Dfw66Xab.cjs +1 -0
  37. package/dist/adapters/ProportionBarChart.config-BaeYznc1.cjs +1 -0
  38. package/dist/adapters/ProportionBarChart.config-DCOizSVs.js +2 -0
  39. package/dist/adapters/RadarChart.config-AxQh97rB.js +2 -0
  40. package/dist/adapters/RadarChart.config-BjP-zEGW.cjs +1 -0
  41. package/dist/adapters/RadialBarChart.config-D5EwyJ0G.cjs +1 -0
  42. package/dist/adapters/RadialBarChart.config-DMaEJYM_.js +2 -0
  43. package/dist/adapters/RecordsTable.config-BdN0kZ8b.js +2 -0
  44. package/dist/adapters/RecordsTable.config-CWRvGDbi.cjs +1 -0
  45. package/dist/adapters/RetentionCombinedChart.config-BpciOTeX.cjs +1 -0
  46. package/dist/adapters/RetentionCombinedChart.config-CY8TDzuy.js +2 -0
  47. package/dist/adapters/RetentionHeatmap.config-BZPRoVpF.cjs +1 -0
  48. package/dist/adapters/RetentionHeatmap.config-YMZt-u-T.js +2 -0
  49. package/dist/adapters/SankeyChart.config-BdSA-Jlp.cjs +1 -0
  50. package/dist/adapters/SankeyChart.config-Dlgi5_DA.js +2 -0
  51. package/dist/adapters/ScatterChart.config-VJ0xG0Ak.cjs +1 -0
  52. package/dist/adapters/ScatterChart.config-oOd1Jplx.js +2 -0
  53. package/dist/adapters/SunburstChart.config-Cllhyjy4.js +2 -0
  54. package/dist/adapters/SunburstChart.config-DU11BAei.cjs +1 -0
  55. package/dist/adapters/TreeMapChart.config--EB8bQTo.js +2 -0
  56. package/dist/adapters/TreeMapChart.config-BPmMLBH1.cjs +1 -0
  57. package/dist/adapters/WaterfallChart.config-E99Fl6uM.cjs +1 -0
  58. package/dist/adapters/WaterfallChart.config-xz3DaoMQ.js +2 -0
  59. package/dist/adapters/{anthropic-DG4r1LSm.cjs → anthropic-CqLkud62.cjs} +1 -1
  60. package/dist/adapters/{anthropic-CZh4hB-m.js → anthropic-MQlafOZv.js} +3 -0
  61. package/dist/adapters/compiler-BdVMQ3Xj.cjs +166 -0
  62. package/dist/adapters/{compiler-BFLAXV7W.js → compiler-SBDjxyQ3.js} +1231 -1231
  63. package/dist/adapters/core/index.cjs +1 -1
  64. package/dist/adapters/core/index.js +1 -1
  65. package/dist/adapters/{core-DnUv8WiY.cjs → core-CSt8MGbw.cjs} +1 -1
  66. package/dist/adapters/{core-BBtbwMwR.js → core-CXrxqh7l.js} +2 -2
  67. package/dist/adapters/express/index.cjs +1 -1
  68. package/dist/adapters/express/index.js +5 -5
  69. package/dist/adapters/fastify/index.cjs +1 -1
  70. package/dist/adapters/fastify/index.js +23 -23
  71. package/dist/{server/google-PsZzwedr.cjs → adapters/google-6pofxIfm.cjs} +1 -1
  72. package/dist/{server/google-DRY7jnOh.js → adapters/google-BBBP1Dhs.js} +3 -0
  73. package/dist/adapters/{handler-_xh4X1OO.js → handler-Cppe-aqH.js} +569 -374
  74. package/dist/adapters/handler-_u5krbOj.cjs +26 -0
  75. package/dist/adapters/hono/index.cjs +1 -1
  76. package/dist/adapters/hono/index.js +4 -4
  77. package/dist/adapters/mcp-tools.cjs +1 -1
  78. package/dist/adapters/mcp-tools.js +2 -2
  79. package/dist/adapters/mcp-transport-CpF7usmR.js +754 -0
  80. package/dist/adapters/mcp-transport-DXIfb0p-.cjs +42 -0
  81. package/dist/adapters/nextjs/index.cjs +1 -1
  82. package/dist/adapters/nextjs/index.js +5 -5
  83. package/dist/adapters/{openai-DK_KWiI7.js → openai-62sEF0Ev.js} +10 -4
  84. package/dist/adapters/{openai-BJyU4kvE.js → openai-BIoIunc7.js} +2 -2
  85. package/dist/adapters/openai-CaxNY6TC.cjs +1 -0
  86. package/dist/adapters/{openai-GO3M7Hwi.cjs → openai-EBTQKJnV.cjs} +2 -2
  87. package/dist/adapters/{utils-BhlkVCzZ.js → utils-C_RKaP0n.js} +2 -1
  88. package/dist/adapters/utils-DXWQUJbD.cjs +128 -0
  89. package/dist/adapters/utils.cjs +1 -1
  90. package/dist/adapters/utils.js +2 -2
  91. package/dist/cjs/client/components/AgenticNotebook/chatMessageParts.d.ts +0 -2
  92. package/dist/cjs/client/components/markdownOverrides.d.ts +202 -0
  93. package/dist/cjs/client/hooks/agentChatStream.d.ts +3 -2
  94. package/dist/cjs/client/hooks/useAgentChat.d.ts +1 -0
  95. package/dist/cjs/server/agent/agent-prompts.d.ts +14 -0
  96. package/dist/cjs/server/agent/chart-validation.d.ts +14 -0
  97. package/dist/cjs/server/agent/data-shape.d.ts +41 -0
  98. package/dist/cjs/server/agent/providers/anthropic.d.ts +1 -0
  99. package/dist/cjs/server/agent/providers/google.d.ts +1 -0
  100. package/dist/cjs/server/agent/providers/openai.d.ts +1 -0
  101. package/dist/cjs/server/agent/providers/types.d.ts +13 -0
  102. package/dist/cjs/server/agent/tools.d.ts +18 -4
  103. package/dist/cjs/server/agent/types.d.ts +5 -1
  104. package/dist/cjs/server/ai/chart-schema.d.ts +37 -0
  105. package/dist/client/charts.js +12 -12
  106. package/dist/client/chunks/{DashboardEditModal-B-0eV6vd.js → DashboardEditModal-DjMGNTUa.js} +12 -12
  107. package/dist/client/chunks/{DashboardEditModal-B-0eV6vd.js.map → DashboardEditModal-DjMGNTUa.js.map} +1 -1
  108. package/dist/client/chunks/{DotStripChart-ChwsVeRU.js → DotStripChart-EEtJyV1v.js} +3 -3
  109. package/dist/client/chunks/{DotStripChart-ChwsVeRU.js.map → DotStripChart-EEtJyV1v.js.map} +1 -1
  110. package/dist/client/chunks/{ProportionBarChart-D-Qt9nkF.js → ProportionBarChart-3r7ZPX-V.js} +3 -3
  111. package/dist/client/chunks/{ProportionBarChart-D-Qt9nkF.js.map → ProportionBarChart-3r7ZPX-V.js.map} +1 -1
  112. package/dist/client/chunks/{RecordsTable-aG-QYXOH.js → RecordsTable-DvMXV6F6.js} +4 -4
  113. package/dist/client/chunks/{RecordsTable-aG-QYXOH.js.map → RecordsTable-DvMXV6F6.js.map} +1 -1
  114. package/dist/client/chunks/{RetentionCombinedChart-BRZ9w7ah.js → RetentionCombinedChart-DbxB86fj.js} +3 -3
  115. package/dist/client/chunks/{RetentionCombinedChart-BRZ9w7ah.js.map → RetentionCombinedChart-DbxB86fj.js.map} +1 -1
  116. package/dist/client/chunks/{RetentionHeatmap-LkTt89pK.js → RetentionHeatmap-CE3rxhAU.js} +2 -2
  117. package/dist/client/chunks/{RetentionHeatmap-LkTt89pK.js.map → RetentionHeatmap-CE3rxhAU.js.map} +1 -1
  118. package/dist/client/chunks/{analysis-builder-DnDw164v.js → analysis-builder-lQk_qJBQ.js} +9 -9
  119. package/dist/client/chunks/{analysis-builder-DnDw164v.js.map → analysis-builder-lQk_qJBQ.js.map} +1 -1
  120. package/dist/client/chunks/{analysis-builder-shared-D7eA0iW7.js → analysis-builder-shared-C_pLSXJR.js} +9 -9
  121. package/dist/client/chunks/{analysis-builder-shared-D7eA0iW7.js.map → analysis-builder-shared-C_pLSXJR.js.map} +1 -1
  122. package/dist/client/chunks/{chart-activity-grid-CJzxC18G.js → chart-activity-grid-UZIp9_2E.js} +3 -2
  123. package/dist/client/chunks/chart-activity-grid-UZIp9_2E.js.map +1 -0
  124. package/dist/client/chunks/{chart-area-C66dgy84.js → chart-area-CEBcvCcn.js} +2 -2
  125. package/dist/client/chunks/{chart-area-C66dgy84.js.map → chart-area-CEBcvCcn.js.map} +1 -1
  126. package/dist/client/chunks/{chart-bar-D9kiSOCT.js → chart-bar-DGh7cpU-.js} +3 -3
  127. package/dist/client/chunks/{chart-bar-D9kiSOCT.js.map → chart-bar-DGh7cpU-.js.map} +1 -1
  128. package/dist/client/chunks/{chart-box-plot-FsLIMisc.js → chart-box-plot-CeqoKPFa.js} +2 -2
  129. package/dist/client/chunks/{chart-box-plot-FsLIMisc.js.map → chart-box-plot-CeqoKPFa.js.map} +1 -1
  130. package/dist/client/chunks/{chart-bubble-BzyvrqKs.js → chart-bubble-8uH_JKNt.js} +2 -2
  131. package/dist/client/chunks/{chart-bubble-BzyvrqKs.js.map → chart-bubble-8uH_JKNt.js.map} +1 -1
  132. package/dist/client/chunks/{chart-candlestick-6lD35bLw.js → chart-candlestick-DogklMg1.js} +2 -2
  133. package/dist/client/chunks/{chart-candlestick-6lD35bLw.js.map → chart-candlestick-DogklMg1.js.map} +1 -1
  134. package/dist/client/chunks/{chart-data-table-Cou9qOab.js → chart-data-table-CCvvgeG_.js} +2 -2
  135. package/dist/client/chunks/{chart-data-table-Cou9qOab.js.map → chart-data-table-CCvvgeG_.js.map} +1 -1
  136. package/dist/client/chunks/{chart-funnel-B0775aaT.js → chart-funnel-D2vGQhaz.js} +2 -2
  137. package/dist/client/chunks/{chart-funnel-B0775aaT.js.map → chart-funnel-D2vGQhaz.js.map} +1 -1
  138. package/dist/client/chunks/{chart-gauge-pf-2E8w9.js → chart-gauge-DbU0rxqv.js} +3 -3
  139. package/dist/client/chunks/{chart-gauge-pf-2E8w9.js.map → chart-gauge-DbU0rxqv.js.map} +1 -1
  140. package/dist/client/chunks/{chart-heat-map-EzVGe6fl.js → chart-heat-map-x6aQq91x.js} +3 -3
  141. package/dist/client/chunks/{chart-heat-map-EzVGe6fl.js.map → chart-heat-map-x6aQq91x.js.map} +1 -1
  142. package/dist/client/chunks/{chart-kpi-delta-lfskDdx4.js → chart-kpi-delta-B2-m16QC.js} +3 -3
  143. package/dist/client/chunks/{chart-kpi-delta-lfskDdx4.js.map → chart-kpi-delta-B2-m16QC.js.map} +1 -1
  144. package/dist/client/chunks/{chart-kpi-number-BnsofbTf.js → chart-kpi-number-DggvlYT_.js} +5 -5
  145. package/dist/client/chunks/{chart-kpi-number-BnsofbTf.js.map → chart-kpi-number-DggvlYT_.js.map} +1 -1
  146. package/dist/client/chunks/{chart-kpi-text-U5EdmdkV.js → chart-kpi-text-BFy-m1NP.js} +3 -3
  147. package/dist/client/chunks/{chart-kpi-text-U5EdmdkV.js.map → chart-kpi-text-BFy-m1NP.js.map} +1 -1
  148. package/dist/client/chunks/{chart-line-IwXqPY80.js → chart-line-C4r44HWi.js} +3 -3
  149. package/dist/client/chunks/{chart-line-IwXqPY80.js.map → chart-line-C4r44HWi.js.map} +1 -1
  150. package/dist/client/chunks/{chart-markdown-BhLRzK_W.js → chart-markdown-b0qPZ617.js} +2 -2
  151. package/dist/client/chunks/{chart-markdown-BhLRzK_W.js.map → chart-markdown-b0qPZ617.js.map} +1 -1
  152. package/dist/client/chunks/{chart-measure-profile-Bs4vhBJQ.js → chart-measure-profile-Dc-d82kF.js} +3 -3
  153. package/dist/client/chunks/{chart-measure-profile-Bs4vhBJQ.js.map → chart-measure-profile-Dc-d82kF.js.map} +1 -1
  154. package/dist/client/chunks/{chart-pie-LDJfDXfX.js → chart-pie-BHrPxga2.js} +3 -3
  155. package/dist/client/chunks/{chart-pie-LDJfDXfX.js.map → chart-pie-BHrPxga2.js.map} +1 -1
  156. package/dist/client/chunks/{chart-radar-BZY6TP9m.js → chart-radar-I9sOFbG5.js} +3 -3
  157. package/dist/client/chunks/{chart-radar-BZY6TP9m.js.map → chart-radar-I9sOFbG5.js.map} +1 -1
  158. package/dist/client/chunks/{chart-radial-bar-aga05X7h.js → chart-radial-bar-DeDMMf9P.js} +3 -3
  159. package/dist/client/chunks/{chart-radial-bar-aga05X7h.js.map → chart-radial-bar-DeDMMf9P.js.map} +1 -1
  160. package/dist/client/chunks/{chart-sankey-MRCoWFd4.js → chart-sankey-1qB7yWHq.js} +2 -2
  161. package/dist/client/chunks/{chart-sankey-MRCoWFd4.js.map → chart-sankey-1qB7yWHq.js.map} +1 -1
  162. package/dist/client/chunks/{chart-scatter-DP-nn9hH.js → chart-scatter-BHttSxcc.js} +3 -3
  163. package/dist/client/chunks/{chart-scatter-DP-nn9hH.js.map → chart-scatter-BHttSxcc.js.map} +1 -1
  164. package/dist/client/chunks/{chart-sunburst-DE4EX7zi.js → chart-sunburst-Cmzol8kR.js} +3 -3
  165. package/dist/client/chunks/{chart-sunburst-DE4EX7zi.js.map → chart-sunburst-Cmzol8kR.js.map} +1 -1
  166. package/dist/client/chunks/{chart-tree-map-C3O6uQcP.js → chart-tree-map-CdSwr_zI.js} +3 -3
  167. package/dist/client/chunks/{chart-tree-map-C3O6uQcP.js.map → chart-tree-map-CdSwr_zI.js.map} +1 -1
  168. package/dist/client/chunks/{chart-waterfall-DU2Fg_7P.js → chart-waterfall-BN3B5luW.js} +3 -3
  169. package/dist/client/chunks/{chart-waterfall-DU2Fg_7P.js.map → chart-waterfall-BN3B5luW.js.map} +1 -1
  170. package/dist/client/chunks/{charts-core-DnirPG1F.js → charts-core-DIneMirc.js} +2 -2
  171. package/dist/client/chunks/{charts-core-DnirPG1F.js.map → charts-core-DIneMirc.js.map} +1 -1
  172. package/dist/client/chunks/charts-loader-OHpTBq8c.js +87 -0
  173. package/dist/client/chunks/{charts-loader-D_yEsIpH.js.map → charts-loader-OHpTBq8c.js.map} +1 -1
  174. package/dist/client/chunks/{nl-NL-B9VnaVAm.js → nl-NL-dk-kC0sL.js} +2 -1
  175. package/dist/client/chunks/nl-NL-dk-kC0sL.js.map +1 -0
  176. package/dist/client/chunks/{schema-visualization-o1zzuMQy.js → schema-visualization-PYa578pV.js} +3 -3
  177. package/dist/client/chunks/{schema-visualization-o1zzuMQy.js.map → schema-visualization-PYa578pV.js.map} +1 -1
  178. package/dist/client/chunks/{useDirtyStateTracking-DTYbmRBn.js → useDirtyStateTracking-BQupC3wJ.js} +4 -4
  179. package/dist/client/chunks/{useDirtyStateTracking-DTYbmRBn.js.map → useDirtyStateTracking-BQupC3wJ.js.map} +1 -1
  180. package/dist/client/chunks/{useExplainAI-MuC9jBn-.js → useExplainAI-DORnTynt.js} +4 -4
  181. package/dist/client/chunks/{useExplainAI-MuC9jBn-.js.map → useExplainAI-DORnTynt.js.map} +1 -1
  182. package/dist/client/chunks/{vendor-XQT9APIq.js → vendor-DDo8nSGP.js} +2 -2
  183. package/dist/client/chunks/{vendor-XQT9APIq.js.map → vendor-DDo8nSGP.js.map} +1 -1
  184. package/dist/client/components/AgenticNotebook/chatMessageParts.d.ts +0 -2
  185. package/dist/client/components/markdownOverrides.d.ts +202 -0
  186. package/dist/client/components.js +1 -1
  187. package/dist/client/hooks/agentChatStream.d.ts +3 -2
  188. package/dist/client/hooks/useAgentChat.d.ts +1 -0
  189. package/dist/client/hooks.js +3 -3
  190. package/dist/client/icons.js +1 -1
  191. package/dist/client/index.js +474 -471
  192. package/dist/client/index.js.map +1 -1
  193. package/dist/client/providers.js +1 -1
  194. package/dist/client/schema.js +1 -1
  195. package/dist/client/styles.css +1 -1
  196. package/dist/client/utils.js +4 -4
  197. package/dist/client-bundle-stats.html +1 -1
  198. package/dist/mcp-app/mcp-app.html +3 -3
  199. package/dist/server/agent/agent-prompts.d.ts +14 -0
  200. package/dist/server/agent/chart-validation.d.ts +14 -0
  201. package/dist/server/agent/data-shape.d.ts +41 -0
  202. package/dist/server/agent/providers/anthropic.d.ts +1 -0
  203. package/dist/server/agent/providers/google.d.ts +1 -0
  204. package/dist/server/agent/providers/openai.d.ts +1 -0
  205. package/dist/server/agent/providers/types.d.ts +13 -0
  206. package/dist/server/agent/tools.d.ts +18 -4
  207. package/dist/server/agent/types.d.ts +5 -1
  208. package/dist/server/ai/chart-schema.d.ts +37 -0
  209. package/dist/server/{anthropic-DG4r1LSm.cjs → anthropic-CqLkud62.cjs} +1 -1
  210. package/dist/server/{anthropic-CZh4hB-m.js → anthropic-MQlafOZv.js} +3 -0
  211. package/dist/{adapters/google-PsZzwedr.cjs → server/google-6pofxIfm.cjs} +1 -1
  212. package/dist/{adapters/google-DRY7jnOh.js → server/google-BBBP1Dhs.js} +3 -0
  213. package/dist/server/index.cjs +44 -43
  214. package/dist/server/index.js +2069 -1857
  215. package/dist/server/{openai-6uUf7h-5.js → openai-nBhuSFd3.js} +9 -3
  216. package/dist/server/openai-rF50ZEiR.cjs +1 -0
  217. package/package.json +4 -4
  218. package/dist/adapters/ActivityGridChart.config-Bu5lf3M0.js +0 -2
  219. package/dist/adapters/ActivityGridChart.config-NSLCFzvM.cjs +0 -1
  220. package/dist/adapters/AreaChart.config-Bv7qJYd0.cjs +0 -1
  221. package/dist/adapters/AreaChart.config-DexPQDQp.js +0 -2
  222. package/dist/adapters/BarChart.config-Br0vyPO0.js +0 -2
  223. package/dist/adapters/BarChart.config-Dc1FHoux.cjs +0 -1
  224. package/dist/adapters/BoxPlotChart.config-C_j-wp0l.cjs +0 -1
  225. package/dist/adapters/BoxPlotChart.config-Dz9P8ck_.js +0 -2
  226. package/dist/adapters/BubbleChart.config-e6hABmpk.js +0 -2
  227. package/dist/adapters/BubbleChart.config-ro80CWd_.cjs +0 -1
  228. package/dist/adapters/CandlestickChart.config-Btzcen-6.cjs +0 -1
  229. package/dist/adapters/CandlestickChart.config-BzAPnbp4.js +0 -2
  230. package/dist/adapters/DataTable.config-RNGMSueS.cjs +0 -1
  231. package/dist/adapters/DataTable.config-enzxzWhP.js +0 -2
  232. package/dist/adapters/DotStripChart.config-C3FEV6Ys.js +0 -2
  233. package/dist/adapters/DotStripChart.config-DhODtwbu.cjs +0 -1
  234. package/dist/adapters/FunnelChart.config-CX1DFABr.cjs +0 -1
  235. package/dist/adapters/FunnelChart.config-DXg1N0FP.js +0 -2
  236. package/dist/adapters/GaugeChart.config-Dl2DrFSl.cjs +0 -1
  237. package/dist/adapters/GaugeChart.config-oiPzrfGx.js +0 -2
  238. package/dist/adapters/HeatMapChart.config-B9SrePWx.js +0 -2
  239. package/dist/adapters/HeatMapChart.config-CTwcA2aU.cjs +0 -1
  240. package/dist/adapters/KpiDelta.config-CgZQueiY.js +0 -2
  241. package/dist/adapters/KpiDelta.config-eybdn0eH.cjs +0 -1
  242. package/dist/adapters/KpiNumber.config-Ce2piJuC.js +0 -2
  243. package/dist/adapters/KpiNumber.config-h_KXh89X.cjs +0 -1
  244. package/dist/adapters/KpiText.config-CLk6a0TW.cjs +0 -1
  245. package/dist/adapters/KpiText.config-_g2gpg2d.js +0 -2
  246. package/dist/adapters/LineChart.config-C3MQKW5U.cjs +0 -1
  247. package/dist/adapters/LineChart.config-CA4b1Xt-.js +0 -2
  248. package/dist/adapters/MarkdownChart.config-B4lCc0_v.js +0 -2
  249. package/dist/adapters/MarkdownChart.config-waq3gxEs.cjs +0 -1
  250. package/dist/adapters/MeasureProfileChart.config-B1LrfeP-.js +0 -2
  251. package/dist/adapters/MeasureProfileChart.config-Djka_dSU.cjs +0 -1
  252. package/dist/adapters/PieChart.config-BfSLFe9d.js +0 -2
  253. package/dist/adapters/PieChart.config-D5ixLlYJ.cjs +0 -1
  254. package/dist/adapters/ProportionBarChart.config-CRWy5aME.cjs +0 -1
  255. package/dist/adapters/ProportionBarChart.config-nyP6m6i0.js +0 -2
  256. package/dist/adapters/RadarChart.config-B7C-0wYa.cjs +0 -1
  257. package/dist/adapters/RadarChart.config-COzBFXrA.js +0 -2
  258. package/dist/adapters/RadialBarChart.config-C50IqzNQ.js +0 -2
  259. package/dist/adapters/RadialBarChart.config-LTSl-xoA.cjs +0 -1
  260. package/dist/adapters/RecordsTable.config-BHWD9CBE.js +0 -2
  261. package/dist/adapters/RecordsTable.config-DnY_PByk.cjs +0 -1
  262. package/dist/adapters/RetentionCombinedChart.config-CObWpIId.cjs +0 -1
  263. package/dist/adapters/RetentionCombinedChart.config-DxPk1BaI.js +0 -2
  264. package/dist/adapters/RetentionHeatmap.config-CHZiVXVo.cjs +0 -1
  265. package/dist/adapters/RetentionHeatmap.config-Ckoiq5Jo.js +0 -2
  266. package/dist/adapters/SankeyChart.config-CVoAarnp.cjs +0 -1
  267. package/dist/adapters/SankeyChart.config-D2R8E5Ss.js +0 -2
  268. package/dist/adapters/ScatterChart.config-BE_J_t4r.js +0 -2
  269. package/dist/adapters/ScatterChart.config-DsVSbcSc.cjs +0 -1
  270. package/dist/adapters/SunburstChart.config-BLtPPPli.cjs +0 -1
  271. package/dist/adapters/SunburstChart.config-DrnmHxNQ.js +0 -2
  272. package/dist/adapters/TreeMapChart.config-4p3cVWIy.js +0 -2
  273. package/dist/adapters/TreeMapChart.config-DkRO8LYG.cjs +0 -1
  274. package/dist/adapters/WaterfallChart.config-CKi4zg3x.cjs +0 -1
  275. package/dist/adapters/WaterfallChart.config-DuUXmAyw.js +0 -2
  276. package/dist/adapters/compiler-DG6dLFQU.cjs +0 -166
  277. package/dist/adapters/handler-l75Hbzv3.cjs +0 -25
  278. package/dist/adapters/mcp-transport-BOfhj01O.js +0 -730
  279. package/dist/adapters/mcp-transport-Dl5bn6h4.cjs +0 -42
  280. package/dist/adapters/openai-DH9MtcLA.cjs +0 -1
  281. package/dist/adapters/utils-C1JpSDOX.cjs +0 -128
  282. package/dist/client/chunks/chart-activity-grid-CJzxC18G.js.map +0 -1
  283. package/dist/client/chunks/charts-loader-D_yEsIpH.js +0 -87
  284. package/dist/client/chunks/nl-NL-B9VnaVAm.js.map +0 -1
  285. package/dist/server/openai-BBe1XbZd.cjs +0 -1
@@ -1,31 +1,31 @@
1
- import { a as e, n as t, o as n, r, s as i } from "./chunks/vendor-XQT9APIq.js";
1
+ import { a as e, n as t, o as n, r, s as i } from "./chunks/vendor-DDo8nSGP.js";
2
2
  import { n as a, t as o } from "./chunks/providers-DwQCKdGW.js";
3
- import { A as s, B as c, C as l, D as u, E as d, H as f, L as p, M as m, N as h, P as g, R as _, S as v, T as y, U as b, V as x, _ as S, b as C, c as w, j as T, l as E, s as D, v as O, w as k, x as A, y as j, z as M } from "./chunks/chart-data-table-Cou9qOab.js";
4
- import { n as N, r as P } from "./chunks/chart-sankey-MRCoWFd4.js";
5
- import { $ as F, A as I, B as L, D as ee, E as te, F as R, G as ne, H as re, I as ie, J as ae, K as oe, L as se, M as ce, N as le, O as ue, P as de, Q as fe, R as pe, St as me, U as he, V as ge, W as _e, X as ve, Y as ye, Z as be, _t as xe, a as Se, at as Ce, bt as we, c as Te, ct as Ee, dt as De, et as Oe, f as ke, ft as Ae, gt as je, h as Me, ht as Ne, i as Pe, it as Fe, k as Ie, lt as Le, m as Re, mt as ze, n as Be, o as Ve, ot as He, p as Ue, pt as We, q as Ge, r as Ke, st as qe, t as Je, ut as Ye, v as Xe, vt as Ze, w as Qe, xt as $e, yt as et, z as tt } from "./chunks/DashboardEditModal-B-0eV6vd.js";
6
- import { S as nt, _ as rt, b as it, c as at, d as ot, f as st, g as ct, h as lt, l as ut, m as dt, o as ft, p as pt, s as mt, v as ht, y as gt } from "./chunks/useDirtyStateTracking-DTYbmRBn.js";
7
- import { B as _t, F as z, S as vt, _ as yt, b as bt, g as xt, h as St, m as Ct, p as wt, v as Tt, x as Et, y as Dt } from "./chunks/chart-activity-grid-CJzxC18G.js";
8
- import { a as Ot, i as kt, n as At, o as jt, r as Mt, t as Nt } from "./chunks/useExplainAI-MuC9jBn-.js";
9
- import { a as Pt, c as Ft, i as It, l as Lt, o as Rt, r as zt, s as Bt } from "./chunks/chart-funnel-B0775aaT.js";
10
- import { a as Vt, i as Ht, n as Ut, o as Wt, r as Gt, s as Kt, t as qt } from "./chunks/charts-loader-D_yEsIpH.js";
11
- import { H as B } from "./chunks/chart-area-C66dgy84.js";
12
- import { r as Jt } from "./chunks/syntaxHighlighting-Cm43as8i.js";
13
- import { A as Yt, C as Xt, D as Zt, E as Qt, F as $t, N as en, O as tn, P as nn, T as rn, _ as an, a as on, b as sn, c as cn, d as ln, f as un, g as dn, h as fn, i as pn, j as mn, k as hn, l as gn, m as _n, n as vn, o as yn, r as bn, s as xn, t as Sn, u as Cn, v as wn, w as Tn, x as En, y as Dn } from "./chunks/analysis-builder-shared-D7eA0iW7.js";
14
- import { r as On } from "./chunks/chart-markdown-BhLRzK_W.js";
15
- import { t as kn } from "./chunks/useNotebookLayout-Ck3Z3uzg.js";
16
- import { n as An } from "./chunks/chart-bubble-BzyvrqKs.js";
17
- import { i as jn, t as Mn } from "./chunks/utils-CToHkuhU.js";
18
- import V, { createContext as Nn, useCallback as H, useContext as Pn, useEffect as U, useMemo as W, useRef as G, useState as K } from "react";
19
- import { Fragment as q, jsx as J, jsxs as Y } from "react/jsx-runtime";
3
+ import { A as s, B as c, C as l, D as u, E as d, H as f, L as p, M as m, N as h, P as g, R as _, S as v, T as y, U as b, V as x, _ as S, b as C, c as w, j as T, l as E, s as D, v as O, w as k, x as A, y as j, z as M } from "./chunks/chart-data-table-CCvvgeG_.js";
4
+ import { n as N, r as P } from "./chunks/chart-sankey-1qB7yWHq.js";
5
+ import { $ as F, A as ee, B as I, D as te, E as ne, F as L, G as re, H as ie, I as ae, J as oe, K as se, L as ce, M as le, N as ue, O as de, P as fe, Q as pe, R as me, St as he, U as ge, V as _e, W as ve, X as ye, Y as be, Z as xe, _t as Se, a as Ce, at as we, bt as Te, c as Ee, ct as De, dt as Oe, et as ke, f as Ae, ft as je, gt as Me, h as Ne, ht as Pe, i as Fe, it as Ie, k as Le, lt as Re, m as ze, mt as Be, n as Ve, o as He, ot as Ue, p as We, pt as Ge, q as Ke, r as qe, st as Je, t as Ye, ut as Xe, v as Ze, vt as Qe, w as $e, xt as et, yt as tt, z as nt } from "./chunks/DashboardEditModal-DjMGNTUa.js";
6
+ import { S as rt, _ as it, b as at, c as ot, d as st, f as ct, g as lt, h as ut, l as dt, m as ft, o as pt, p as mt, s as ht, v as gt, y as _t } from "./chunks/useDirtyStateTracking-BQupC3wJ.js";
7
+ import { B as vt, F as R, S as yt, _ as bt, b as xt, g as St, h as Ct, m as wt, p as Tt, v as Et, x as Dt, y as Ot } from "./chunks/chart-activity-grid-UZIp9_2E.js";
8
+ import { a as kt, i as At, n as jt, o as Mt, r as Nt, t as Pt } from "./chunks/useExplainAI-DORnTynt.js";
9
+ import { a as Ft, c as It, i as Lt, l as Rt, o as zt, r as Bt, s as Vt } from "./chunks/chart-funnel-D2vGQhaz.js";
10
+ import { a as Ht, i as Ut, n as Wt, o as Gt, r as Kt, s as qt, t as Jt } from "./chunks/charts-loader-OHpTBq8c.js";
11
+ import { H as z } from "./chunks/chart-area-CEBcvCcn.js";
12
+ import { r as Yt } from "./chunks/syntaxHighlighting-Cm43as8i.js";
13
+ import { A as Xt, C as Zt, D as Qt, E as $t, F as en, N as tn, O as nn, P as rn, T as an, _ as on, a as sn, b as cn, c as ln, d as un, f as dn, g as fn, h as pn, i as mn, j as hn, k as gn, l as _n, m as vn, n as yn, o as bn, r as xn, s as Sn, t as Cn, u as wn, v as Tn, w as En, x as Dn, y as On } from "./chunks/analysis-builder-shared-C_pLSXJR.js";
14
+ import { r as kn } from "./chunks/chart-markdown-b0qPZ617.js";
15
+ import { t as An } from "./chunks/useNotebookLayout-Ck3Z3uzg.js";
16
+ import { n as jn } from "./chunks/chart-bubble-8uH_JKNt.js";
17
+ import { i as Mn, t as Nn } from "./chunks/utils-CToHkuhU.js";
18
+ import B, { createContext as Pn, useCallback as V, useContext as Fn, useEffect as H, useMemo as U, useRef as W, useState as G } from "react";
19
+ import { Fragment as K, jsx as q, jsxs as J } from "react/jsx-runtime";
20
20
  //#region src/client/stores/notebookStore.tsx
21
- var Fn = () => ({
21
+ var In = () => ({
22
22
  blocks: [],
23
23
  messages: [],
24
24
  isStreaming: !1,
25
25
  sessionId: null,
26
26
  inputValue: ""
27
27
  });
28
- function In(e, t) {
28
+ function Ln(e, t) {
29
29
  return {
30
30
  addBlock: (t) => e((e) => ({ blocks: [...e.blocks, t] })),
31
31
  removeBlock: (t) => e((e) => ({ blocks: e.blocks.filter((e) => e.id !== t) })),
@@ -89,38 +89,38 @@ function In(e, t) {
89
89
  blocks: t.blocks || [],
90
90
  messages: t.messages || []
91
91
  }),
92
- reset: () => e(Fn())
92
+ reset: () => e(In())
93
93
  };
94
94
  }
95
- function Ln() {
96
- let t = Fn();
95
+ function Rn() {
96
+ let t = In();
97
97
  return i()(r(e((e, n) => ({
98
98
  ...t,
99
- ...In(e, n)
99
+ ...Ln(e, n)
100
100
  })), { name: "NotebookStore" }));
101
101
  }
102
- var Rn = Nn(null);
103
- function zn({ children: e, initialConfig: t }) {
104
- let n = G(null);
102
+ var zn = Pn(null);
103
+ function Bn({ children: e, initialConfig: t }) {
104
+ let n = W(null);
105
105
  if (!n.current) {
106
- let e = Ln();
106
+ let e = Rn();
107
107
  t && e.getState().load(t), n.current = e;
108
108
  }
109
- return /* @__PURE__ */ J(Rn.Provider, {
109
+ return /* @__PURE__ */ q(zn.Provider, {
110
110
  value: n.current,
111
111
  children: e
112
112
  });
113
113
  }
114
- function X(e) {
115
- let t = Pn(Rn);
114
+ function Y(e) {
115
+ let t = Fn(zn);
116
116
  if (!t) throw Error("useNotebookStore must be used within NotebookStoreProvider");
117
117
  return n(t, e);
118
118
  }
119
- var Bn = (e) => e.blocks, Vn = (e) => e.messages, Hn = (e) => e.isStreaming, Un = (e) => e.sessionId, Wn = (e) => e.inputValue, Gn = (e) => ({
119
+ var Vn = (e) => e.blocks, Hn = (e) => e.messages, Un = (e) => e.isStreaming, Wn = (e) => e.sessionId, Gn = (e) => e.inputValue, Kn = (e) => ({
120
120
  messages: e.messages,
121
121
  isStreaming: e.isStreaming,
122
122
  inputValue: e.inputValue
123
- }), Kn = (e) => ({
123
+ }), qn = (e) => ({
124
124
  addMessage: e.addMessage,
125
125
  appendToLastAssistantMessage: e.appendToLastAssistantMessage,
126
126
  setLastAssistantError: e.setLastAssistantError,
@@ -129,29 +129,29 @@ var Bn = (e) => e.blocks, Vn = (e) => e.messages, Hn = (e) => e.isStreaming, Un
129
129
  setIsStreaming: e.setIsStreaming,
130
130
  setInputValue: e.setInputValue,
131
131
  setSessionId: e.setSessionId
132
- }), qn = (e) => ({
132
+ }), Jn = (e) => ({
133
133
  addBlock: e.addBlock,
134
134
  removeBlock: e.removeBlock,
135
135
  moveBlock: e.moveBlock,
136
136
  updateBlock: e.updateBlock
137
- }), Z = {
137
+ }), X = {
138
138
  width: "16px",
139
139
  height: "16px",
140
140
  color: "currentColor"
141
- }, Jn = j("chevronUp"), Yn = j("chevronDown"), Xn = j("edit"), Zn = j("delete"), Qn = V.memo(function({ block: e, colorPalette: t, onRemove: n, onMoveUp: r, onMoveDown: i, onEdit: a, isFirst: o, isLast: s }) {
142
- let [c, l] = K(null), u = H((e) => {
141
+ }, Yn = j("chevronUp"), Xn = j("chevronDown"), Zn = j("edit"), Qn = j("delete"), $n = B.memo(function({ block: e, colorPalette: t, onRemove: n, onMoveUp: r, onMoveDown: i, onEdit: a, isFirst: o, isLast: s }) {
142
+ let [c, l] = G(null), u = V((e) => {
143
143
  l(e);
144
144
  }, []);
145
- return /* @__PURE__ */ Y("div", {
145
+ return /* @__PURE__ */ J("div", {
146
146
  className: "dc:relative dc:mb-4 bg-dc-surface dc:border border-dc-border dc:rounded-lg dc:flex dc:flex-col",
147
- children: [/* @__PURE__ */ Y("div", {
147
+ children: [/* @__PURE__ */ J("div", {
148
148
  className: "dc:flex dc:items-center dc:justify-between dc:px-3 dc:py-1.5 dc:border-b border-dc-border dc:shrink-0 bg-dc-surface-secondary dc:rounded-t-lg",
149
- children: [/* @__PURE__ */ Y("div", {
149
+ children: [/* @__PURE__ */ J("div", {
150
150
  className: "dc:flex dc:items-center dc:gap-2 dc:flex-1 dc:min-w-0",
151
- children: [/* @__PURE__ */ J("h3", {
151
+ children: [/* @__PURE__ */ q("h3", {
152
152
  className: "dc:font-semibold dc:text-sm text-dc-text dc:truncate",
153
153
  children: e.title || "Untitled"
154
- }), c && /* @__PURE__ */ J(I, {
154
+ }), c && /* @__PURE__ */ q(ee, {
155
155
  chartConfig: c.chartConfig,
156
156
  displayConfig: c.displayConfig,
157
157
  queryObject: c.queryObject,
@@ -159,38 +159,38 @@ var Bn = (e) => e.blocks, Vn = (e) => e.messages, Hn = (e) => e.isStreaming, Un
159
159
  chartType: c.chartType,
160
160
  cacheInfo: c.cacheInfo ?? void 0
161
161
  })]
162
- }), /* @__PURE__ */ Y("div", {
162
+ }), /* @__PURE__ */ J("div", {
163
163
  className: "dc:flex dc:items-center dc:gap-1 dc:shrink-0 dc:ml-4 dc:-mr-2",
164
164
  children: [
165
- !o && /* @__PURE__ */ J("button", {
165
+ !o && /* @__PURE__ */ q("button", {
166
166
  onClick: () => r(e.id),
167
167
  className: "dc:p-1 dc:bg-transparent dc:border-none dc:rounded-sm text-dc-text-secondary dc:cursor-pointer dc:hover:bg-dc-surface-hover dc:transition-colors",
168
168
  title: "Move up",
169
- children: /* @__PURE__ */ J(Jn, { style: Z })
169
+ children: /* @__PURE__ */ q(Yn, { style: X })
170
170
  }),
171
- !s && /* @__PURE__ */ J("button", {
171
+ !s && /* @__PURE__ */ q("button", {
172
172
  onClick: () => i(e.id),
173
173
  className: "dc:p-1 dc:bg-transparent dc:border-none dc:rounded-sm text-dc-text-secondary dc:cursor-pointer dc:hover:bg-dc-surface-hover dc:transition-colors",
174
174
  title: "Move down",
175
- children: /* @__PURE__ */ J(Yn, { style: Z })
175
+ children: /* @__PURE__ */ q(Xn, { style: X })
176
176
  }),
177
- /* @__PURE__ */ J("button", {
177
+ /* @__PURE__ */ q("button", {
178
178
  onClick: () => a(e),
179
179
  className: "dc:p-1 dc:bg-transparent dc:border-none dc:rounded-sm text-dc-text-secondary dc:cursor-pointer dc:hover:bg-dc-surface-hover dc:transition-colors",
180
180
  title: "Edit visualization",
181
- children: /* @__PURE__ */ J(Xn, { style: Z })
181
+ children: /* @__PURE__ */ q(Zn, { style: X })
182
182
  }),
183
- /* @__PURE__ */ J("button", {
183
+ /* @__PURE__ */ q("button", {
184
184
  onClick: () => n(e.id),
185
185
  className: "dc:p-1 dc:mr-0.5 dc:bg-transparent dc:border-none dc:rounded-sm dc:cursor-pointer dc:hover:bg-dc-danger-bg text-dc-danger dc:transition-colors",
186
186
  title: "Remove",
187
- children: /* @__PURE__ */ J(Zn, { style: Z })
187
+ children: /* @__PURE__ */ q(Qn, { style: X })
188
188
  })
189
189
  ]
190
190
  })]
191
- }), /* @__PURE__ */ J("div", {
191
+ }), /* @__PURE__ */ q("div", {
192
192
  className: "dc:flex-1 dc:min-h-0",
193
- children: /* @__PURE__ */ J(ve, {
193
+ children: /* @__PURE__ */ q(ye, {
194
194
  query: e.query,
195
195
  chartType: e.chartType,
196
196
  chartConfig: e.chartConfig,
@@ -202,84 +202,100 @@ var Bn = (e) => e.blocks, Vn = (e) => e.messages, Hn = (e) => e.isStreaming, Un
202
202
  })
203
203
  })]
204
204
  });
205
- }), Q = {
206
- width: "16px",
207
- height: "16px",
208
- color: "currentColor"
209
- }, $n = j("documentText"), er = j("chevronUp"), tr = j("chevronDown"), nr = j("delete");
210
- function rr({ children: e, ...t }) {
211
- return /* @__PURE__ */ J("div", {
205
+ });
206
+ //#endregion
207
+ //#region src/client/components/markdownOverrides.tsx
208
+ function er({ children: e, ...t }) {
209
+ return /* @__PURE__ */ q("div", {
212
210
  className: "dc:overflow-x-auto dc:my-2",
213
- children: /* @__PURE__ */ J("table", {
211
+ children: /* @__PURE__ */ q("table", {
214
212
  ...t,
215
213
  children: e
216
214
  })
217
215
  });
218
216
  }
219
- var ir = { overrides: {
220
- h1: { props: { className: "dc:text-lg dc:font-bold text-dc-text dc:mb-2 dc:mt-3" } },
221
- h2: { props: { className: "dc:text-base dc:font-semibold text-dc-text dc:mb-2 dc:mt-3" } },
222
- h3: { props: { className: "dc:text-sm dc:font-semibold text-dc-text dc:mb-2 dc:mt-3" } },
223
- p: { props: { className: "dc:text-sm dc:leading-relaxed text-dc-text dc:mb-2" } },
224
- strong: { props: { className: "dc:font-semibold" } },
217
+ var tr = {
218
+ code: { props: { className: "dc:px-1 dc:py-0.5 dc:rounded-sm dc:text-xs bg-dc-surface-secondary text-dc-accent dc:font-mono" } },
219
+ pre: { props: { className: "dc:rounded-lg dc:p-3 dc:my-2 dc:overflow-x-auto dc:text-xs bg-dc-surface-secondary text-dc-text dc:font-mono" } },
225
220
  a: { props: {
226
221
  className: "text-dc-accent dc:hover:underline",
227
222
  target: "_blank",
228
223
  rel: "noopener noreferrer"
229
224
  } },
230
- code: { props: { className: "dc:px-1 dc:py-0.5 dc:rounded-sm dc:text-xs bg-dc-surface-secondary text-dc-accent dc:font-mono" } },
231
- pre: { props: { className: "dc:rounded-lg dc:p-3 dc:my-2 dc:overflow-x-auto dc:text-xs bg-dc-surface-secondary text-dc-text dc:font-mono" } },
232
- ul: { props: { className: "dc:list-disc dc:ml-5 dc:mb-2 dc:text-sm text-dc-text dc:space-y-1" } },
233
- ol: { props: { className: "dc:list-decimal dc:ml-5 dc:mb-2 dc:text-sm text-dc-text dc:space-y-1" } },
234
- li: { props: { className: "dc:text-sm text-dc-text" } },
235
- hr: { props: { className: "dc:my-3 border-dc-border" } },
236
- blockquote: { props: { className: "dc:border-l-4 border-dc-accent dc:pl-3 dc:my-2 dc:italic text-dc-text-secondary dc:text-sm" } },
237
225
  table: {
238
- component: rr,
226
+ component: er,
239
227
  props: { className: "dc:w-full dc:border-collapse dc:text-sm" }
240
228
  },
241
229
  thead: { props: { className: "bg-dc-surface-secondary" } },
242
230
  th: { props: { className: "dc:px-3 dc:py-2 dc:text-left dc:font-semibold dc:text-xs text-dc-text-secondary dc:uppercase dc:tracking-wider border-dc-border dc:border-b" } },
243
231
  td: { props: { className: "dc:px-3 dc:py-2 dc:text-sm text-dc-text border-dc-border dc:border-b" } },
244
232
  tr: { props: { className: "dc:hover:opacity-80" } }
245
- } }, ar = V.memo(function({ block: e, onRemove: t, onMoveUp: n, onMoveDown: r, isFirst: i, isLast: a }) {
246
- return /* @__PURE__ */ Y("div", {
233
+ }, nr = { overrides: {
234
+ h1: { props: { className: "dc:text-lg dc:font-bold text-dc-text dc:mb-2 dc:mt-3" } },
235
+ h2: { props: { className: "dc:text-base dc:font-semibold text-dc-text dc:mb-2 dc:mt-3" } },
236
+ h3: { props: { className: "dc:text-sm dc:font-semibold text-dc-text dc:mb-2 dc:mt-3" } },
237
+ p: { props: { className: "dc:text-sm dc:leading-relaxed text-dc-text dc:mb-2" } },
238
+ strong: { props: { className: "dc:font-semibold" } },
239
+ ul: { props: { className: "dc:list-disc dc:ml-5 dc:mb-2 dc:text-sm text-dc-text dc:space-y-1" } },
240
+ ol: { props: { className: "dc:list-decimal dc:ml-5 dc:mb-2 dc:text-sm text-dc-text dc:space-y-1" } },
241
+ li: { props: { className: "dc:text-sm text-dc-text" } },
242
+ hr: { props: { className: "dc:my-3 border-dc-border" } },
243
+ blockquote: { props: { className: "dc:border-l-4 border-dc-accent dc:pl-3 dc:my-2 dc:italic text-dc-text-secondary dc:text-sm" } },
244
+ ...tr
245
+ } }, rr = { overrides: {
246
+ h1: { props: { className: "dc:font-semibold text-dc-text dc:mt-2 dc:mb-1 dc:first:mt-0" } },
247
+ h2: { props: { className: "dc:font-semibold text-dc-text dc:mt-2 dc:mb-1 dc:first:mt-0" } },
248
+ h3: { props: { className: "dc:font-semibold text-dc-text dc:mt-2 dc:mb-1 dc:first:mt-0" } },
249
+ p: { props: { className: "dc:leading-snug dc:mb-1.5 dc:last:mb-0" } },
250
+ strong: { props: { className: "dc:font-semibold" } },
251
+ ul: { props: { className: "dc:list-disc dc:ml-4 dc:mb-1.5 dc:last:mb-0 dc:space-y-0.5" } },
252
+ ol: { props: { className: "dc:list-decimal dc:ml-4 dc:mb-1.5 dc:last:mb-0 dc:space-y-0.5" } },
253
+ li: { props: { className: "dc:leading-snug" } },
254
+ hr: { props: { className: "dc:my-2 border-dc-border" } },
255
+ blockquote: { props: { className: "dc:border-l-2 border-dc-accent dc:pl-2 dc:my-1.5 dc:italic text-dc-text-secondary" } },
256
+ ...tr
257
+ } }, Z = {
258
+ width: "16px",
259
+ height: "16px",
260
+ color: "currentColor"
261
+ }, ir = j("documentText"), ar = j("chevronUp"), or = j("chevronDown"), sr = j("delete"), cr = B.memo(function({ block: e, onRemove: t, onMoveUp: n, onMoveDown: r, isFirst: i, isLast: a }) {
262
+ return /* @__PURE__ */ J("div", {
247
263
  className: "dc:relative dc:mb-4 bg-dc-surface dc:border border-dc-border dc:rounded-lg dc:flex dc:flex-col",
248
- children: [/* @__PURE__ */ Y("div", {
264
+ children: [/* @__PURE__ */ J("div", {
249
265
  className: "dc:flex dc:items-center dc:justify-between dc:px-3 dc:py-1.5 dc:border-b border-dc-border dc:shrink-0 bg-dc-surface-secondary dc:rounded-t-lg",
250
- children: [/* @__PURE__ */ Y("div", {
266
+ children: [/* @__PURE__ */ J("div", {
251
267
  className: "dc:flex dc:items-center dc:gap-2 dc:flex-1 dc:min-w-0",
252
- children: [/* @__PURE__ */ J($n, { style: Q }), /* @__PURE__ */ J("h3", {
268
+ children: [/* @__PURE__ */ q(ir, { style: Z }), /* @__PURE__ */ q("h3", {
253
269
  className: "dc:font-semibold dc:text-sm text-dc-text dc:truncate",
254
270
  children: e.title || "Markdown"
255
271
  })]
256
- }), /* @__PURE__ */ Y("div", {
272
+ }), /* @__PURE__ */ J("div", {
257
273
  className: "dc:flex dc:items-center dc:gap-1 dc:shrink-0 dc:ml-4 dc:-mr-2",
258
274
  children: [
259
- !i && /* @__PURE__ */ J("button", {
275
+ !i && /* @__PURE__ */ q("button", {
260
276
  onClick: () => n(e.id),
261
277
  className: "dc:p-1 dc:bg-transparent dc:border-none dc:rounded-sm text-dc-text-secondary dc:cursor-pointer dc:hover:bg-dc-surface-hover dc:transition-colors",
262
278
  title: "Move up",
263
- children: /* @__PURE__ */ J(er, { style: Q })
279
+ children: /* @__PURE__ */ q(ar, { style: Z })
264
280
  }),
265
- !a && /* @__PURE__ */ J("button", {
281
+ !a && /* @__PURE__ */ q("button", {
266
282
  onClick: () => r(e.id),
267
283
  className: "dc:p-1 dc:bg-transparent dc:border-none dc:rounded-sm text-dc-text-secondary dc:cursor-pointer dc:hover:bg-dc-surface-hover dc:transition-colors",
268
284
  title: "Move down",
269
- children: /* @__PURE__ */ J(tr, { style: Q })
285
+ children: /* @__PURE__ */ q(or, { style: Z })
270
286
  }),
271
- /* @__PURE__ */ J("button", {
287
+ /* @__PURE__ */ q("button", {
272
288
  onClick: () => t(e.id),
273
289
  className: "dc:p-1 dc:mr-0.5 dc:bg-transparent dc:border-none dc:rounded-sm dc:cursor-pointer dc:hover:bg-dc-danger-bg text-dc-danger dc:transition-colors",
274
290
  title: "Remove",
275
- children: /* @__PURE__ */ J(nr, { style: Q })
291
+ children: /* @__PURE__ */ q(sr, { style: Z })
276
292
  })
277
293
  ]
278
294
  })]
279
- }), /* @__PURE__ */ J("div", {
295
+ }), /* @__PURE__ */ q("div", {
280
296
  className: "dc:p-4 dc:min-w-0 dc:overflow-hidden",
281
- children: /* @__PURE__ */ J(On, {
282
- options: ir,
297
+ children: /* @__PURE__ */ q(kn, {
298
+ options: nr,
283
299
  children: e.content
284
300
  })
285
301
  })]
@@ -287,8 +303,8 @@ var ir = { overrides: {
287
303
  });
288
304
  //#endregion
289
305
  //#region src/client/components/AgenticNotebook/NotebookCanvas.tsx
290
- function or(e) {
291
- let { analysisConfig: t } = Fe(e);
306
+ function lr(e) {
307
+ let { analysisConfig: t } = Ie(e);
292
308
  if (!t) return null;
293
309
  let n = t.charts[t.analysisType];
294
310
  return {
@@ -299,34 +315,34 @@ function or(e) {
299
315
  displayConfig: n?.displayConfig
300
316
  };
301
317
  }
302
- var sr = V.memo(function({ colorPalette: e }) {
303
- let { t: n } = z(), r = e ?? te(), i = X(Bn), { removeBlock: a, moveBlock: o, updateBlock: s } = X(t(qn)), c = G(null), [l, u] = K(null), d = G(i.length);
304
- U(() => {
318
+ var ur = B.memo(function({ colorPalette: e }) {
319
+ let { t: n } = R(), r = e ?? ne(), i = Y(Vn), { removeBlock: a, moveBlock: o, updateBlock: s } = Y(t(Jn)), c = W(null), [l, u] = G(null), d = W(i.length);
320
+ H(() => {
305
321
  i.length > d.current && c.current?.scrollIntoView({ behavior: "smooth" }), d.current = i.length;
306
322
  }, [i.length]);
307
- let f = H((e) => a(e), [a]), p = H((e) => o(e, "up"), [o]), m = H((e) => o(e, "down"), [o]), h = H((e) => u(e), []), g = H((e) => {
323
+ let f = V((e) => a(e), [a]), p = V((e) => o(e, "up"), [o]), m = V((e) => o(e, "down"), [o]), h = V((e) => u(e), []), g = V((e) => {
308
324
  if (!l) return;
309
- let t = or(e);
325
+ let t = lr(e);
310
326
  t && s(l.id, t), u(null);
311
327
  }, [l, s]);
312
- return i.length === 0 ? /* @__PURE__ */ J("div", {
328
+ return i.length === 0 ? /* @__PURE__ */ q("div", {
313
329
  className: "dc:flex dc:items-center dc:justify-center dc:h-full",
314
- children: /* @__PURE__ */ Y("div", {
330
+ children: /* @__PURE__ */ J("div", {
315
331
  className: "dc:text-center dc:max-w-sm dc:px-6",
316
- children: [/* @__PURE__ */ J("h3", {
332
+ children: [/* @__PURE__ */ q("h3", {
317
333
  className: "dc:text-base dc:font-semibold text-dc-text dc:mb-2",
318
334
  children: n("notebook.canvas.emptyTitle")
319
- }), /* @__PURE__ */ J("p", {
335
+ }), /* @__PURE__ */ q("p", {
320
336
  className: "dc:text-sm text-dc-text-secondary",
321
337
  children: n("notebook.canvas.emptyDescription")
322
338
  })]
323
339
  })
324
- }) : /* @__PURE__ */ Y("div", {
340
+ }) : /* @__PURE__ */ J("div", {
325
341
  className: "dc:h-full dc:overflow-y-auto dc:p-4",
326
342
  children: [
327
343
  i.map((e, t) => {
328
344
  let n = t === 0, a = t === i.length - 1;
329
- return e.type === "portlet" ? /* @__PURE__ */ J(Qn, {
345
+ return e.type === "portlet" ? /* @__PURE__ */ q($n, {
330
346
  block: e,
331
347
  colorPalette: r,
332
348
  onRemove: f,
@@ -335,7 +351,7 @@ var sr = V.memo(function({ colorPalette: e }) {
335
351
  onEdit: h,
336
352
  isFirst: n,
337
353
  isLast: a
338
- }, e.id) : e.type === "markdown" ? /* @__PURE__ */ J(ar, {
354
+ }, e.id) : e.type === "markdown" ? /* @__PURE__ */ q(cr, {
339
355
  block: e,
340
356
  onRemove: f,
341
357
  onMoveUp: p,
@@ -344,8 +360,8 @@ var sr = V.memo(function({ colorPalette: e }) {
344
360
  isLast: a
345
361
  }, e.id) : null;
346
362
  }),
347
- /* @__PURE__ */ J("div", { ref: c }),
348
- /* @__PURE__ */ J(Te, {
363
+ /* @__PURE__ */ q("div", { ref: c }),
364
+ /* @__PURE__ */ q(Ee, {
349
365
  isOpen: !!l,
350
366
  onClose: () => u(null),
351
367
  onSave: g,
@@ -367,97 +383,68 @@ var sr = V.memo(function({ colorPalette: e }) {
367
383
  })
368
384
  ]
369
385
  });
370
- });
371
- //#endregion
372
- //#region src/client/components/AgenticNotebook/chatMessageParts.tsx
373
- function cr(e) {
374
- let t = [], n = e, r = 0;
375
- for (; n;) {
376
- let e = n.match(/^(.*?)`([^`]+)`(.*)$/);
377
- if (e) {
378
- let [, i, a, o] = e;
379
- i && t.push(/* @__PURE__ */ J("span", { children: i }, r++)), t.push(/* @__PURE__ */ J("code", {
380
- className: "dc:px-1 dc:py-0.5 dc:rounded-sm dc:text-xs bg-dc-surface dc:font-mono",
381
- children: a
382
- }, r++)), n = o;
383
- continue;
384
- }
385
- let i = n.match(/^(.*?)\*\*([^*]+)\*\*(.*)$/);
386
- if (i) {
387
- let [, e, a, o] = i;
388
- e && t.push(/* @__PURE__ */ J("span", { children: e }, r++)), t.push(/* @__PURE__ */ J("strong", {
389
- className: "dc:font-semibold",
390
- children: a
391
- }, r++)), n = o;
392
- continue;
393
- }
394
- t.push(/* @__PURE__ */ J("span", { children: n }, r));
395
- break;
396
- }
397
- return t;
398
- }
399
- var lr = {
386
+ }), dr = {
400
387
  discover_cubes: "Discovering cubes",
401
388
  get_cube_metadata: "Reading metadata",
402
389
  execute_query: "Executing query",
403
390
  add_portlet: "Adding visualization",
404
391
  add_markdown: "Adding explanation"
405
392
  };
406
- function ur(e, t, n) {
393
+ function fr(e, t, n) {
407
394
  return e ? "bg-dc-accent text-dc-accent-text dc:rounded-br-sm" : t && !n ? "bg-dc-warning-bg text-dc-text dc:rounded-bl-sm" : "bg-dc-surface-secondary text-dc-text dc:rounded-bl-sm";
408
395
  }
409
- function dr({ toolCall: e, loadingComponent: t }) {
410
- return e.status === "running" ? t ? /* @__PURE__ */ J("span", {
396
+ function pr({ toolCall: e, loadingComponent: t }) {
397
+ return e.status === "running" ? t ? /* @__PURE__ */ q("span", {
411
398
  className: "dc:inline-flex dc:items-center dc:justify-center dc:h-3 dc:w-3",
412
399
  children: t
413
- }) : /* @__PURE__ */ J(B, { size: "xs" }) : /* @__PURE__ */ J("span", {
400
+ }) : /* @__PURE__ */ q(z, { size: "xs" }) : /* @__PURE__ */ q("span", {
414
401
  className: "dc:text-xs",
415
402
  children: e.status === "error" ? "✗" : "✓"
416
403
  });
417
404
  }
418
- function fr(e) {
405
+ function mr(e) {
419
406
  return typeof e == "string" ? e : JSON.stringify(e, null, 2);
420
407
  }
421
- function pr({ result: e }) {
422
- return e == null ? null : /* @__PURE__ */ J("pre", {
408
+ function hr({ result: e }) {
409
+ return e == null ? null : /* @__PURE__ */ q("pre", {
423
410
  className: "dc:mt-1 dc:p-2 dc:rounded-sm dc:text-[11px] dc:overflow-x-auto dc:max-h-32 dc:overflow-y-auto bg-dc-surface-secondary text-dc-text-secondary",
424
- children: fr(e)
411
+ children: mr(e)
425
412
  });
426
413
  }
427
- function mr({ toolCall: e, loadingComponent: t }) {
428
- let [n, r] = K(!1), i = lr[e.name] || e.name, a = e.status === "running";
429
- return /* @__PURE__ */ Y("div", {
414
+ function gr({ toolCall: e, loadingComponent: t }) {
415
+ let [n, r] = G(!1), i = dr[e.name] || e.name, a = e.status === "running";
416
+ return /* @__PURE__ */ J("div", {
430
417
  className: "dc:my-1 dc:text-xs",
431
- children: [/* @__PURE__ */ Y("button", {
418
+ children: [/* @__PURE__ */ J("button", {
432
419
  onClick: () => r(!n),
433
420
  className: "dc:flex dc:items-center dc:gap-1.5 text-dc-text-secondary dc:hover:opacity-80 dc:transition-opacity",
434
421
  children: [
435
- /* @__PURE__ */ J(dr, {
422
+ /* @__PURE__ */ q(pr, {
436
423
  toolCall: e,
437
424
  loadingComponent: t
438
425
  }),
439
- /* @__PURE__ */ Y("span", { children: [i, a ? "..." : ""] }),
440
- !a && /* @__PURE__ */ J("span", {
426
+ /* @__PURE__ */ J("span", { children: [i, a ? "..." : ""] }),
427
+ !a && /* @__PURE__ */ q("span", {
441
428
  className: "dc:text-[10px] dc:opacity-60",
442
429
  children: n ? "▲" : "▼"
443
430
  })
444
431
  ]
445
- }), n && /* @__PURE__ */ J(pr, { result: e.result })]
432
+ }), n && /* @__PURE__ */ q(hr, { result: e.result })]
446
433
  });
447
434
  }
448
- function hr({ error: e, hasContent: t }) {
449
- return /* @__PURE__ */ Y("div", {
435
+ function _r({ error: e, hasContent: t }) {
436
+ return /* @__PURE__ */ J("div", {
450
437
  className: `dc:flex dc:items-start dc:gap-2 ${t ? "dc:mt-2 dc:pt-2 dc:border-t dc:border-current dc:border-opacity-10" : ""}`,
451
- children: [/* @__PURE__ */ J("span", {
438
+ children: [/* @__PURE__ */ q("span", {
452
439
  className: "dc:text-base dc:leading-none dc:mt-0.5 text-dc-warning dc:flex-shrink-0",
453
440
  children: "⚠"
454
- }), /* @__PURE__ */ J("span", {
441
+ }), /* @__PURE__ */ q("span", {
455
442
  className: "text-dc-text-secondary",
456
443
  children: e
457
444
  })]
458
445
  });
459
446
  }
460
- function gr(e) {
447
+ function vr(e) {
461
448
  let t = e.role === "user", n = !!e.content?.trim(), r = !!e.error, i = e.toolCalls ?? [], a = i.length > 0;
462
449
  return {
463
450
  isUser: t,
@@ -468,28 +455,34 @@ function gr(e) {
468
455
  shouldRender: t || n || r || a
469
456
  };
470
457
  }
471
- function _r({ message: e, flags: t, loadingComponent: n }) {
458
+ function yr({ message: e, flags: t, loadingComponent: n }) {
472
459
  let { isUser: r, hasContent: i, hasError: a, hasToolCalls: o, toolCalls: s } = t;
473
- return /* @__PURE__ */ Y(q, { children: [
474
- i && /* @__PURE__ */ J("div", {
460
+ return /* @__PURE__ */ J(K, { children: [
461
+ i && (r ? /* @__PURE__ */ q("div", {
475
462
  className: "dc:whitespace-pre-wrap dc:break-words",
476
- children: r ? e.content : cr(e.content)
477
- }),
478
- a && /* @__PURE__ */ J(hr, {
463
+ children: e.content
464
+ }) : /* @__PURE__ */ q("div", {
465
+ className: "dc:break-words dc:min-w-0",
466
+ children: /* @__PURE__ */ q(kn, {
467
+ options: rr,
468
+ children: e.content
469
+ })
470
+ })),
471
+ a && /* @__PURE__ */ q(_r, {
479
472
  error: e.error,
480
473
  hasContent: i
481
474
  }),
482
- o && /* @__PURE__ */ J(vr, {
475
+ o && /* @__PURE__ */ q(br, {
483
476
  toolCalls: s,
484
477
  loadingComponent: n,
485
478
  separated: i || a
486
479
  })
487
480
  ] });
488
481
  }
489
- function vr({ toolCalls: e, loadingComponent: t, separated: n }) {
490
- return /* @__PURE__ */ J("div", {
482
+ function br({ toolCalls: e, loadingComponent: t, separated: n }) {
483
+ return /* @__PURE__ */ q("div", {
491
484
  className: n ? "dc:mt-1 dc:border-t dc:border-current dc:border-opacity-10 dc:pt-1" : "",
492
- children: e.map((e, n) => /* @__PURE__ */ J(mr, {
485
+ children: e.map((e, n) => /* @__PURE__ */ q(gr, {
493
486
  toolCall: e,
494
487
  loadingComponent: t
495
488
  }, e.id || n))
@@ -497,38 +490,38 @@ function vr({ toolCalls: e, loadingComponent: t, separated: n }) {
497
490
  }
498
491
  //#endregion
499
492
  //#region src/client/components/AgenticNotebook/ChatMessage.tsx
500
- var yr = { animation: "dc-msg-in 100ms ease-out" }, br = V.memo(function({ message: e, loadingComponent: t }) {
501
- let n = gr(e);
493
+ var xr = { animation: "dc-msg-in 100ms ease-out" }, Sr = B.memo(function({ message: e, loadingComponent: t }) {
494
+ let n = vr(e);
502
495
  if (!n.shouldRender) return null;
503
496
  let { isUser: r, hasContent: i, hasError: a } = n;
504
- return /* @__PURE__ */ J("div", {
497
+ return /* @__PURE__ */ q("div", {
505
498
  className: `dc:flex dc:mb-3 ${r ? "dc:justify-end" : "dc:justify-start"}`,
506
- style: yr,
507
- children: /* @__PURE__ */ J("div", {
508
- className: `dc:max-w-[85%] dc:rounded-lg dc:px-3 dc:py-2 dc:text-sm ${ur(r, a, i)}`,
509
- children: /* @__PURE__ */ J(_r, {
499
+ style: xr,
500
+ children: /* @__PURE__ */ q("div", {
501
+ className: `dc:max-w-[85%] dc:rounded-lg dc:px-3 dc:py-2 dc:text-sm ${fr(r, a, i)}`,
502
+ children: /* @__PURE__ */ q(yr, {
510
503
  message: e,
511
504
  flags: n,
512
505
  loadingComponent: t
513
506
  })
514
507
  })
515
508
  });
516
- }), xr = V.memo(function({ value: e, onChange: t, onSend: n, onStop: r, onContinue: i, isStreaming: a = !1, showContinue: o = !1, disabled: s = !1, placeholder: c }) {
517
- let { t: l } = z(), u = c ?? l("notebook.chatInput.placeholder"), d = G(null);
518
- U(() => {
509
+ }), Cr = B.memo(function({ value: e, onChange: t, onSend: n, onStop: r, onContinue: i, isStreaming: a = !1, showContinue: o = !1, disabled: s = !1, placeholder: c }) {
510
+ let { t: l } = R(), u = c ?? l("notebook.chatInput.placeholder"), d = W(null);
511
+ H(() => {
519
512
  let e = d.current;
520
513
  e && (e.style.height = "auto", e.style.height = `${Math.min(e.scrollHeight, 150)}px`);
521
514
  }, [e]);
522
- let f = H((t) => {
515
+ let f = V((t) => {
523
516
  t.key === "Enter" && !t.shiftKey && (t.preventDefault(), !s && e.trim() && n());
524
517
  }, [
525
518
  s,
526
519
  e,
527
520
  n
528
521
  ]);
529
- return /* @__PURE__ */ Y("div", {
522
+ return /* @__PURE__ */ J("div", {
530
523
  className: "dc:flex dc:gap-2 dc:items-end dc:p-3 border-dc-border dc:border-t",
531
- children: [/* @__PURE__ */ J("textarea", {
524
+ children: [/* @__PURE__ */ q("textarea", {
532
525
  ref: d,
533
526
  value: e,
534
527
  onChange: (e) => t(e.target.value),
@@ -537,17 +530,17 @@ var yr = { animation: "dc-msg-in 100ms ease-out" }, br = V.memo(function({ messa
537
530
  disabled: s,
538
531
  rows: 1,
539
532
  className: "dc:flex-1 dc:resize-none dc:rounded-lg dc:px-3 dc:py-2 dc:text-sm bg-dc-surface-secondary text-dc-text border-dc-border dc:border dc:outline-none dc:focus:ring-1 focus:ring-dc-accent dc:disabled:opacity-50"
540
- }), a ? /* @__PURE__ */ J("button", {
533
+ }), a ? /* @__PURE__ */ q("button", {
541
534
  onClick: r,
542
535
  className: "dc:px-4 dc:py-2 dc:rounded-lg dc:text-sm dc:font-medium dc:transition-colors text-dc-error border-dc-border dc:border dc:hover:opacity-80 dc:shrink-0",
543
536
  children: l("notebook.chatInput.stop")
544
- }) : /* @__PURE__ */ Y(q, { children: [o && !e.trim() && /* @__PURE__ */ J("button", {
537
+ }) : /* @__PURE__ */ J(K, { children: [o && !e.trim() && /* @__PURE__ */ q("button", {
545
538
  onClick: () => {
546
539
  i?.(), d.current?.focus();
547
540
  },
548
541
  className: "dc:px-4 dc:py-2 dc:rounded-lg dc:text-sm dc:font-medium dc:transition-colors border-dc-border dc:border text-dc-text-secondary dc:hover:opacity-80 dc:shrink-0",
549
542
  children: l("notebook.chatInput.continue")
550
- }), /* @__PURE__ */ J("button", {
543
+ }), /* @__PURE__ */ q("button", {
551
544
  onClick: n,
552
545
  disabled: s || !e.trim(),
553
546
  className: "dc:px-4 dc:py-2 dc:rounded-lg dc:text-sm dc:font-medium dc:transition-colors bg-dc-accent text-dc-accent-text dc:hover:opacity-90 dc:disabled:opacity-40 dc:disabled:cursor-not-allowed dc:shrink-0",
@@ -557,7 +550,7 @@ var yr = { animation: "dc-msg-in 100ms ease-out" }, br = V.memo(function({ messa
557
550
  });
558
551
  //#endregion
559
552
  //#region src/client/hooks/agentChatStream.ts
560
- function Sr(e) {
553
+ function wr(e) {
561
554
  if (e.startsWith("{") || e.includes("\"type\":\"error\"")) try {
562
555
  let t = JSON.parse(e.replace(/^Error:\s*/, ""));
563
556
  return {
@@ -575,7 +568,7 @@ function Sr(e) {
575
568
  }
576
569
  return e;
577
570
  }
578
- function Cr(e, t) {
571
+ function Tr(e, t) {
579
572
  switch (e.type) {
580
573
  case "text_delta":
581
574
  t.onTextDelta(e.data);
@@ -584,7 +577,7 @@ function Cr(e, t) {
584
577
  t.onToolStart(e.data.id, e.data.name, e.data.input);
585
578
  break;
586
579
  case "tool_use_result":
587
- t.onToolResult(e.data.id, e.data.name, e.data.result, e.data.isError);
580
+ t.onToolResult(e.data.id, e.data.name, e.data.result, e.data.isError, e.data.input);
588
581
  break;
589
582
  case "add_portlet":
590
583
  t.onAddPortlet({
@@ -592,6 +585,12 @@ function Cr(e, t) {
592
585
  type: "portlet"
593
586
  });
594
587
  break;
588
+ case "update_portlet":
589
+ t.onUpdatePortlet?.({
590
+ ...e.data,
591
+ type: "portlet"
592
+ });
593
+ break;
595
594
  case "add_markdown":
596
595
  t.onAddMarkdown({
597
596
  ...e.data,
@@ -610,13 +609,13 @@ function Cr(e, t) {
610
609
  case "error": t.onError(e.data.message);
611
610
  }
612
611
  }
613
- function wr(e, t) {
612
+ function Er(e, t) {
614
613
  let n = e.trim().split("\n");
615
614
  for (let e of n) if (e.startsWith("data: ")) try {
616
615
  t(JSON.parse(e.slice(6)));
617
616
  } catch {}
618
617
  }
619
- function Tr(e) {
618
+ function Dr(e) {
620
619
  let t = {
621
620
  "Content-Type": "application/json",
622
621
  ...e.baseHeaders
@@ -625,16 +624,16 @@ function Tr(e) {
625
624
  }
626
625
  //#endregion
627
626
  //#region src/client/hooks/useAgentChat.ts
628
- function Er(e) {
629
- let { agentEndpoint: t, agentApiKey: n, agentProvider: r, agentModel: i, agentProviderEndpoint: a } = e, { cubeApi: o } = c(), s = G(null), [l, u] = K(!1), d = G(e);
627
+ function Or(e) {
628
+ let { agentEndpoint: t, agentApiKey: n, agentProvider: r, agentModel: i, agentProviderEndpoint: a } = e, { cubeApi: o } = c(), s = W(null), [l, u] = G(!1), d = W(e);
630
629
  return d.current = e, {
631
- sendMessage: H(async (e, c, l) => {
632
- let f = (e) => Cr(e, d.current);
630
+ sendMessage: V(async (e, c, l) => {
631
+ let f = (e) => Tr(e, d.current);
633
632
  s.current && s.current.abort();
634
633
  let p = new AbortController();
635
634
  s.current = p, u(!0);
636
635
  try {
637
- let s = t || `${o.apiUrl || "/cubejs-api/v1"}/agent/chat`, u = Tr({
636
+ let s = t || `${o.apiUrl || "/cubejs-api/v1"}/agent/chat`, u = Dr({
638
637
  baseHeaders: o.headers,
639
638
  agentApiKey: n,
640
639
  agentProvider: r,
@@ -663,13 +662,13 @@ function Er(e) {
663
662
  g += h.decode(t, { stream: !0 });
664
663
  let n = g.split("\n\n");
665
664
  g = n.pop() || "";
666
- for (let e of n) wr(e, f);
665
+ for (let e of n) Er(e, f);
667
666
  }
668
- g.trim() && wr(g, f);
667
+ g.trim() && Er(g, f);
669
668
  } catch (e) {
670
669
  if (e.name !== "AbortError") {
671
670
  let t = e instanceof Error ? e.message : "Stream failed";
672
- d.current.onError(Sr(t));
671
+ d.current.onError(wr(t));
673
672
  }
674
673
  } finally {
675
674
  u(!1), s.current = null;
@@ -683,21 +682,21 @@ function Er(e) {
683
682
  a
684
683
  ]),
685
684
  isStreaming: l,
686
- abort: H(() => {
685
+ abort: V(() => {
687
686
  s.current && (s.current.abort(), s.current = null, u(!1));
688
687
  }, [])
689
688
  };
690
689
  }
691
690
  //#endregion
692
691
  //#region src/client/components/AgenticNotebook/useAgentChatController.ts
693
- function Dr({ agentEndpoint: e, agentApiKey: n, agentProvider: r, agentModel: i, agentProviderEndpoint: a, onDashboardSaved: o, messages: s, isStreaming: c }) {
694
- let [l, u] = K(!1), [d, f] = K(null), p = G(!1), { addMessage: m, appendToLastAssistantMessage: h, setLastAssistantError: g, addToolCallToLastAssistant: _, updateLastToolCall: v, setIsStreaming: y, setInputValue: b, setSessionId: x } = X(t(Kn)), S = X((e) => e.sessionId), C = X((e) => e.addBlock), w = G(s);
695
- w.current = s;
696
- let T = G(c);
697
- T.current = c;
698
- let E = G(S);
699
- E.current = S;
700
- let D = H(() => {
692
+ function kr({ agentEndpoint: e, agentApiKey: n, agentProvider: r, agentModel: i, agentProviderEndpoint: a, onDashboardSaved: o, messages: s, isStreaming: c }) {
693
+ let [l, u] = G(!1), [d, f] = G(null), p = W(!1), { addMessage: m, appendToLastAssistantMessage: h, setLastAssistantError: g, addToolCallToLastAssistant: _, updateLastToolCall: v, setIsStreaming: y, setInputValue: b, setSessionId: x } = Y(t(qn)), S = Y((e) => e.sessionId), C = Y((e) => e.addBlock), w = Y((e) => e.updateBlock), T = W(s);
694
+ T.current = s;
695
+ let E = W(c);
696
+ E.current = c;
697
+ let D = W(S);
698
+ D.current = S;
699
+ let O = V(() => {
701
700
  p.current && (p.current = !1, m({
702
701
  id: `msg-${Date.now()}`,
703
702
  role: "assistant",
@@ -705,56 +704,60 @@ function Dr({ agentEndpoint: e, agentApiKey: n, agentProvider: r, agentModel: i,
705
704
  toolCalls: [],
706
705
  timestamp: Date.now()
707
706
  }));
708
- }, [m]), { sendMessage: O, abort: k } = Er({
707
+ }, [m]), { sendMessage: k, abort: A } = Or({
709
708
  agentEndpoint: e,
710
709
  agentApiKey: n,
711
710
  agentProvider: r,
712
711
  agentModel: i,
713
712
  agentProviderEndpoint: a,
714
- onTextDelta: H((e) => {
715
- u(!1), D(), h(e);
716
- }, [D, h]),
717
- onToolStart: H((e, t, n) => {
718
- u(!1), D(), _({
713
+ onTextDelta: V((e) => {
714
+ u(!1), O(), h(e);
715
+ }, [O, h]),
716
+ onToolStart: V((e, t, n) => {
717
+ u(!1), O(), _({
719
718
  id: e,
720
719
  name: t,
721
720
  input: n,
722
721
  status: "running"
723
722
  });
724
- }, [D, _]),
725
- onToolResult: H((e, t, n, r) => {
723
+ }, [O, _]),
724
+ onToolResult: V((e, t, n, r, i) => {
726
725
  v({
727
726
  id: e,
728
727
  status: r ? "error" : "complete",
729
- result: n
728
+ result: n,
729
+ ...i === void 0 ? {} : { input: i }
730
730
  });
731
731
  }, [v]),
732
- onAddPortlet: H((e) => {
732
+ onAddPortlet: V((e) => {
733
733
  C(e);
734
734
  }, [C]),
735
- onAddMarkdown: H((e) => {
735
+ onUpdatePortlet: V(({ id: e, ...t }) => {
736
+ w(e, t);
737
+ }, [w]),
738
+ onAddMarkdown: V((e) => {
736
739
  C(e);
737
740
  }, [C]),
738
741
  onDashboardSaved: o,
739
- onTurnComplete: H(() => {
742
+ onTurnComplete: V(() => {
740
743
  p.current = !0, u(!0);
741
744
  }, []),
742
- onDone: H((e, t) => {
745
+ onDone: V((e, t) => {
743
746
  p.current = !1, x(e), y(!1), u(!1), t && f(t);
744
747
  }, [x, y]),
745
- onError: H((e) => {
746
- u(!1), D(), g(e), y(!1);
748
+ onError: V((e) => {
749
+ u(!1), O(), g(e), y(!1);
747
750
  }, [
748
- D,
751
+ O,
749
752
  g,
750
753
  y
751
754
  ])
752
755
  });
753
756
  return {
754
- doSend: H((e) => {
755
- if (!e || T.current) return;
757
+ doSend: V((e) => {
758
+ if (!e || E.current) return;
756
759
  p.current = !1;
757
- let t = w.current.map((e) => ({
760
+ let t = T.current.map((e) => ({
758
761
  role: e.role,
759
762
  content: e.content,
760
763
  ...e.toolCalls && e.toolCalls.length > 0 ? { toolCalls: e.toolCalls } : {}
@@ -770,17 +773,17 @@ function Dr({ agentEndpoint: e, agentApiKey: n, agentProvider: r, agentModel: i,
770
773
  content: "",
771
774
  toolCalls: [],
772
775
  timestamp: Date.now()
773
- }), b(""), y(!0), u(!0), O(e, E.current, t);
776
+ }), b(""), y(!0), u(!0), k(e, D.current, t);
774
777
  }, [
775
778
  m,
776
779
  b,
777
780
  y,
778
- O
781
+ k
779
782
  ]),
780
- handleStop: H(() => {
781
- k(), y(!1);
782
- }, [k, y]),
783
- abort: k,
783
+ handleStop: V(() => {
784
+ A(), y(!1);
785
+ }, [A, y]),
786
+ abort: A,
784
787
  isThinking: l,
785
788
  setIsThinking: u,
786
789
  lastTraceId: d,
@@ -789,34 +792,34 @@ function Dr({ agentEndpoint: e, agentApiKey: n, agentProvider: r, agentModel: i,
789
792
  }
790
793
  //#endregion
791
794
  //#region src/client/components/AgenticNotebook/agentChatParts.tsx
792
- var Or = j("thumbUp"), kr = j("thumbDown");
793
- function Ar(...e) {
795
+ var Ar = j("thumbUp"), jr = j("thumbDown");
796
+ function Mr(...e) {
794
797
  return e.every(Boolean);
795
798
  }
796
- function jr(e) {
797
- let t = Ar(!e.isStreaming, e.messageCount > 0), n = e.lastTraceId ? e.scoredTraceIds.has(e.lastTraceId) : !1;
799
+ function Nr(e) {
800
+ let t = Mr(!e.isStreaming, e.messageCount > 0), n = e.lastTraceId ? e.scoredTraceIds.has(e.lastTraceId) : !1;
798
801
  return {
799
- showSaveAsDashboard: Ar(t, e.onDashboardSaved, e.portletBlockCount > 0),
802
+ showSaveAsDashboard: Mr(t, e.onDashboardSaved, e.portletBlockCount > 0),
800
803
  showClear: e.messageCount > 0,
801
- showFeedback: Ar(t, e.onScore, !!e.lastTraceId, !n),
804
+ showFeedback: Mr(t, e.onScore, !!e.lastTraceId, !n),
802
805
  lastScored: n
803
806
  };
804
807
  }
805
- function Mr({ showSaveAsDashboard: e, showClear: t, isStreaming: n, onSaveAsDashboard: r, onClear: i }) {
806
- let { t: a } = z();
807
- return /* @__PURE__ */ Y("div", {
808
+ function Pr({ showSaveAsDashboard: e, showClear: t, isStreaming: n, onSaveAsDashboard: r, onClear: i }) {
809
+ let { t: a } = R();
810
+ return /* @__PURE__ */ J("div", {
808
811
  className: "dc:flex dc:items-center dc:justify-between dc:px-4 dc:py-3 border-dc-border dc:border-b",
809
- children: [/* @__PURE__ */ J("h3", {
812
+ children: [/* @__PURE__ */ q("h3", {
810
813
  className: "dc:text-sm dc:font-semibold text-dc-text",
811
814
  children: a("notebook.aiAssistant")
812
- }), /* @__PURE__ */ Y("div", {
815
+ }), /* @__PURE__ */ J("div", {
813
816
  className: "dc:flex dc:items-center dc:gap-1",
814
- children: [e && /* @__PURE__ */ J("button", {
817
+ children: [e && /* @__PURE__ */ q("button", {
815
818
  onClick: r,
816
819
  className: "dc:text-xs dc:px-2 dc:py-1 dc:rounded-sm text-dc-accent dc:hover:opacity-80",
817
820
  title: a("notebook.saveAsDashboardTitle"),
818
821
  children: a("notebook.saveAsDashboard")
819
- }), t && /* @__PURE__ */ J("button", {
822
+ }), t && /* @__PURE__ */ q("button", {
820
823
  onClick: i,
821
824
  disabled: n,
822
825
  className: "dc:text-xs dc:px-2 dc:py-1 dc:rounded-sm text-dc-text-secondary dc:hover:opacity-80 dc:disabled:opacity-40",
@@ -826,65 +829,65 @@ function Mr({ showSaveAsDashboard: e, showClear: t, isStreaming: n, onSaveAsDash
826
829
  })]
827
830
  });
828
831
  }
829
- function Nr({ scored: e, onScore: t }) {
830
- let { t: n } = z();
831
- return /* @__PURE__ */ J("div", {
832
+ function Fr({ scored: e, onScore: t }) {
833
+ let { t: n } = R();
834
+ return /* @__PURE__ */ q("div", {
832
835
  className: "dc:flex dc:items-center dc:justify-center dc:gap-3 dc:py-4 dc:mt-2",
833
- children: e ? /* @__PURE__ */ J("span", {
836
+ children: e ? /* @__PURE__ */ q("span", {
834
837
  className: "dc:text-sm text-dc-text-secondary",
835
838
  children: n("notebook.feedbackThanks")
836
- }) : /* @__PURE__ */ Y(q, { children: [/* @__PURE__ */ J("span", {
839
+ }) : /* @__PURE__ */ J(K, { children: [/* @__PURE__ */ q("span", {
837
840
  className: "dc:text-sm text-dc-text-secondary",
838
841
  children: n("notebook.feedbackQuestion")
839
- }), /* @__PURE__ */ Y("div", {
842
+ }), /* @__PURE__ */ J("div", {
840
843
  className: "dc:flex dc:items-center dc:gap-2",
841
- children: [/* @__PURE__ */ Y("button", {
844
+ children: [/* @__PURE__ */ J("button", {
842
845
  onClick: () => t(1),
843
846
  className: "dc:flex dc:items-center dc:gap-1.5 dc:px-3 dc:py-1.5 dc:rounded-lg dc:text-sm dc:font-medium border-dc-border dc:border text-dc-success hover:bg-dc-success-bg dc:transition-colors bg-dc-surface dc:cursor-pointer",
844
- children: [/* @__PURE__ */ J(Or, { className: "dc:w-4 dc:h-4" }), n("notebook.feedbackYes")]
845
- }), /* @__PURE__ */ Y("button", {
847
+ children: [/* @__PURE__ */ q(Ar, { className: "dc:w-4 dc:h-4" }), n("notebook.feedbackYes")]
848
+ }), /* @__PURE__ */ J("button", {
846
849
  onClick: () => t(0),
847
850
  className: "dc:flex dc:items-center dc:gap-1.5 dc:px-3 dc:py-1.5 dc:rounded-lg dc:text-sm dc:font-medium border-dc-border dc:border text-dc-error hover:bg-dc-danger-bg dc:transition-colors bg-dc-surface dc:cursor-pointer",
848
- children: [/* @__PURE__ */ J(kr, { className: "dc:w-4 dc:h-4" }), n("notebook.feedbackNo")]
851
+ children: [/* @__PURE__ */ q(jr, { className: "dc:w-4 dc:h-4" }), n("notebook.feedbackNo")]
849
852
  })]
850
853
  })] })
851
854
  });
852
855
  }
853
- function Pr({ loadingComponent: e }) {
854
- let { t } = z();
855
- return /* @__PURE__ */ J("div", {
856
+ function Ir({ loadingComponent: e }) {
857
+ let { t } = R();
858
+ return /* @__PURE__ */ q("div", {
856
859
  className: "dc:flex dc:mb-3 dc:justify-start",
857
860
  style: { animation: "dc-msg-in 100ms ease-out" },
858
- children: /* @__PURE__ */ Y("div", {
861
+ children: /* @__PURE__ */ J("div", {
859
862
  className: "dc:rounded-lg dc:px-3 dc:py-2 dc:text-sm bg-dc-surface-secondary text-dc-text-secondary dc:rounded-bl-sm dc:flex dc:items-center dc:gap-2",
860
- children: [e ? /* @__PURE__ */ J("span", {
863
+ children: [e ? /* @__PURE__ */ q("span", {
861
864
  className: "dc:inline-flex dc:items-center dc:justify-center dc:h-4 dc:w-4",
862
865
  children: e
863
- }) : /* @__PURE__ */ J(B, { size: "xs" }), /* @__PURE__ */ J("span", { children: t("notebook.thinking") })]
866
+ }) : /* @__PURE__ */ q(z, { size: "xs" }), /* @__PURE__ */ q("span", { children: t("notebook.thinking") })]
864
867
  })
865
868
  });
866
869
  }
867
- function Fr() {
868
- let { t: e } = z();
869
- return /* @__PURE__ */ J("div", {
870
+ function Lr() {
871
+ let { t: e } = R();
872
+ return /* @__PURE__ */ q("div", {
870
873
  className: "dc:flex dc:items-center dc:justify-center dc:h-full",
871
- children: /* @__PURE__ */ Y("div", {
874
+ children: /* @__PURE__ */ J("div", {
872
875
  className: "dc:text-center dc:max-w-xs",
873
876
  children: [
874
- /* @__PURE__ */ J("div", {
877
+ /* @__PURE__ */ q("div", {
875
878
  className: "dc:text-lg dc:font-semibold text-dc-text dc:mb-2",
876
879
  children: e("notebook.emptyState.title")
877
880
  }),
878
- /* @__PURE__ */ J("p", {
881
+ /* @__PURE__ */ q("p", {
879
882
  className: "dc:text-sm text-dc-text-secondary dc:mb-4",
880
883
  children: e("notebook.emptyState.description")
881
884
  }),
882
- /* @__PURE__ */ Y("div", {
885
+ /* @__PURE__ */ J("div", {
883
886
  className: "dc:space-y-2 dc:text-xs text-dc-text-muted",
884
887
  children: [
885
- /* @__PURE__ */ J("p", { children: e("notebook.emptyState.example1") }),
886
- /* @__PURE__ */ J("p", { children: e("notebook.emptyState.example2") }),
887
- /* @__PURE__ */ J("p", { children: e("notebook.emptyState.example3") })
888
+ /* @__PURE__ */ q("p", { children: e("notebook.emptyState.example1") }),
889
+ /* @__PURE__ */ q("p", { children: e("notebook.emptyState.example2") }),
890
+ /* @__PURE__ */ q("p", { children: e("notebook.emptyState.example3") })
888
891
  ]
889
892
  })
890
893
  ]
@@ -893,14 +896,14 @@ function Fr() {
893
896
  }
894
897
  //#endregion
895
898
  //#region src/client/components/AgenticNotebook/AgentChatPanel.tsx
896
- function Ir({ messages: e, loadingComponent: t }) {
897
- return e.length === 0 ? /* @__PURE__ */ J(Fr, {}) : /* @__PURE__ */ J(q, { children: e.map((e) => /* @__PURE__ */ J(br, {
899
+ function Rr({ messages: e, loadingComponent: t }) {
900
+ return e.length === 0 ? /* @__PURE__ */ q(Lr, {}) : /* @__PURE__ */ q(K, { children: e.map((e) => /* @__PURE__ */ q(Sr, {
898
901
  message: e,
899
902
  loadingComponent: t
900
903
  }, e.id)) });
901
904
  }
902
- var Lr = V.memo(function({ agentEndpoint: e, agentApiKey: n, agentProvider: r, agentModel: i, agentProviderEndpoint: a, onClear: o, onDashboardSaved: s, onScore: c, loadingComponent: l, initialPrompt: u }) {
903
- let { t: d } = z(), f = G(null), p = G(!1), [m, h] = K(/* @__PURE__ */ new Set()), { messages: g, isStreaming: _, inputValue: v } = X(t(Gn)), y = X((e) => e.setInputValue), b = X((e) => e.reset), x = X((e) => e.setIsStreaming), S = X((e) => e.blocks.filter((e) => e.type === "portlet").length), { doSend: C, handleStop: w, abort: T, isThinking: E, setIsThinking: D, lastTraceId: O, setLastTraceId: k } = Dr({
905
+ var zr = B.memo(function({ agentEndpoint: e, agentApiKey: n, agentProvider: r, agentModel: i, agentProviderEndpoint: a, onClear: o, onDashboardSaved: s, onScore: c, loadingComponent: l, initialPrompt: u }) {
906
+ let { t: d } = R(), f = W(null), p = W(!1), [m, h] = G(/* @__PURE__ */ new Set()), { messages: g, isStreaming: _, inputValue: v } = Y(t(Kn)), y = Y((e) => e.setInputValue), b = Y((e) => e.reset), x = Y((e) => e.setIsStreaming), S = Y((e) => e.blocks.filter((e) => e.type === "portlet").length), { doSend: C, handleStop: w, abort: T, isThinking: E, setIsThinking: D, lastTraceId: O, setLastTraceId: k } = kr({
904
907
  agentEndpoint: e,
905
908
  agentApiKey: n,
906
909
  agentProvider: r,
@@ -909,12 +912,12 @@ var Lr = V.memo(function({ agentEndpoint: e, agentApiKey: n, agentProvider: r, a
909
912
  onDashboardSaved: s,
910
913
  messages: g,
911
914
  isStreaming: _
912
- }), A = G(g.length);
913
- U(() => {
915
+ }), A = W(g.length);
916
+ H(() => {
914
917
  g.length > A.current && f.current?.scrollIntoView({ behavior: "smooth" }), A.current = g.length;
915
- }, [g]), U(() => {
918
+ }, [g]), H(() => {
916
919
  E && f.current?.scrollIntoView({ behavior: "smooth" });
917
- }, [E]), U(() => {
920
+ }, [E]), H(() => {
918
921
  if (u && !p.current && g.length === 0) {
919
922
  p.current = !0;
920
923
  let e = setTimeout(() => C(u), 100);
@@ -927,13 +930,13 @@ var Lr = V.memo(function({ agentEndpoint: e, agentApiKey: n, agentProvider: r, a
927
930
  g.length,
928
931
  C
929
932
  ]);
930
- let j = G(v);
933
+ let j = W(v);
931
934
  j.current = v;
932
- let M = H(() => {
935
+ let M = V(() => {
933
936
  C(j.current.trim());
934
- }, [C]), N = H(() => {
937
+ }, [C]), N = V(() => {
935
938
  y("");
936
- }, [y]), P = H(() => {
939
+ }, [y]), P = V(() => {
937
940
  T(), x(!1), D(!1), b(), k(null), h(/* @__PURE__ */ new Set()), o?.();
938
941
  }, [
939
942
  T,
@@ -942,14 +945,14 @@ var Lr = V.memo(function({ agentEndpoint: e, agentApiKey: n, agentProvider: r, a
942
945
  b,
943
946
  k,
944
947
  o
945
- ]), F = H(() => {
948
+ ]), F = V(() => {
946
949
  C(d("notebook.saveAsDashboardPrompt"));
947
- }, [C, d]), I = H((e) => {
950
+ }, [C, d]), ee = V((e) => {
948
951
  !O || !c || (c({
949
952
  traceId: O,
950
953
  value: e
951
954
  }), h((e) => new Set(e).add(O)));
952
- }, [O, c]), { showSaveAsDashboard: L, showClear: ee, showFeedback: te, lastScored: R } = jr({
955
+ }, [O, c]), { showSaveAsDashboard: I, showClear: te, showFeedback: ne, lastScored: L } = Nr({
953
956
  onDashboardSaved: !!s,
954
957
  onScore: !!c,
955
958
  isStreaming: _,
@@ -958,32 +961,32 @@ var Lr = V.memo(function({ agentEndpoint: e, agentApiKey: n, agentProvider: r, a
958
961
  lastTraceId: O,
959
962
  scoredTraceIds: m
960
963
  });
961
- return /* @__PURE__ */ Y("div", {
964
+ return /* @__PURE__ */ J("div", {
962
965
  className: "dc:flex dc:flex-col dc:h-full bg-dc-surface",
963
966
  children: [
964
- /* @__PURE__ */ J(Mr, {
965
- showSaveAsDashboard: L,
966
- showClear: ee,
967
+ /* @__PURE__ */ q(Pr, {
968
+ showSaveAsDashboard: I,
969
+ showClear: te,
967
970
  isStreaming: _,
968
971
  onSaveAsDashboard: F,
969
972
  onClear: P
970
973
  }),
971
- /* @__PURE__ */ Y("div", {
974
+ /* @__PURE__ */ J("div", {
972
975
  className: "dc:flex-1 dc:overflow-y-auto dc:px-4 dc:py-3",
973
976
  children: [
974
- /* @__PURE__ */ J(Ir, {
977
+ /* @__PURE__ */ q(Rr, {
975
978
  messages: g,
976
979
  loadingComponent: l
977
980
  }),
978
- E && /* @__PURE__ */ J(Pr, { loadingComponent: l }),
979
- (te || R) && /* @__PURE__ */ J(Nr, {
980
- scored: R,
981
- onScore: I
981
+ E && /* @__PURE__ */ q(Ir, { loadingComponent: l }),
982
+ (ne || L) && /* @__PURE__ */ q(Fr, {
983
+ scored: L,
984
+ onScore: ee
982
985
  }),
983
- /* @__PURE__ */ J("div", { ref: f })
986
+ /* @__PURE__ */ q("div", { ref: f })
984
987
  ]
985
988
  }),
986
- /* @__PURE__ */ J(xr, {
989
+ /* @__PURE__ */ q(Cr, {
987
990
  value: v,
988
991
  onChange: y,
989
992
  onSend: M,
@@ -997,12 +1000,12 @@ var Lr = V.memo(function({ agentEndpoint: e, agentApiKey: n, agentProvider: r, a
997
1000
  });
998
1001
  //#endregion
999
1002
  //#region src/client/components/AgenticNotebook/useNotebookAutosave.ts
1000
- function Rr({ blockCount: e, messageCount: t, isStreaming: n, save: r, onSave: i }) {
1001
- let a = G(), o = G(!1), s = G(i);
1003
+ function Br({ blockCount: e, messageCount: t, isStreaming: n, save: r, onSave: i }) {
1004
+ let a = W(), o = W(!1), s = W(i);
1002
1005
  s.current = i;
1003
- let c = G(e > 0 || t > 0), l = H(() => {
1006
+ let c = W(e > 0 || t > 0), l = V(() => {
1004
1007
  a.current && clearTimeout(a.current);
1005
- }, []), u = H(() => {
1008
+ }, []), u = V(() => {
1006
1009
  l(), a.current = setTimeout(() => {
1007
1010
  o.current = !1;
1008
1011
  let e = r();
@@ -1011,7 +1014,7 @@ function Rr({ blockCount: e, messageCount: t, isStreaming: n, save: r, onSave: i
1011
1014
  }, [l, r]);
1012
1015
  (e > 0 || t > 0) && (c.current = !0);
1013
1016
  let d = !!s.current && c.current;
1014
- return U(() => {
1017
+ return H(() => {
1015
1018
  if (d) {
1016
1019
  if (n) {
1017
1020
  o.current = !0, l();
@@ -1026,9 +1029,9 @@ function Rr({ blockCount: e, messageCount: t, isStreaming: n, save: r, onSave: i
1026
1029
  n,
1027
1030
  l,
1028
1031
  u
1029
- ]), U(() => {
1032
+ ]), H(() => {
1030
1033
  !n && o.current && s.current && c.current && u();
1031
- }, [n, u]), { clearSave: H(() => {
1034
+ }, [n, u]), { clearSave: V(() => {
1032
1035
  s.current && (l(), s.current({
1033
1036
  blocks: [],
1034
1037
  messages: []
@@ -1037,9 +1040,9 @@ function Rr({ blockCount: e, messageCount: t, isStreaming: n, save: r, onSave: i
1037
1040
  }
1038
1041
  //#endregion
1039
1042
  //#region src/client/components/AgenticNotebook/index.tsx
1040
- function zr({ blocks: e, pulsingBlockId: t, nudge: n, onExpand: r }) {
1041
- let { t: i } = z(), a = j("bookOpen"), o = j("documentText");
1042
- return /* @__PURE__ */ Y("button", {
1043
+ function Vr({ blocks: e, pulsingBlockId: t, nudge: n, onExpand: r }) {
1044
+ let { t: i } = R(), a = j("bookOpen"), o = j("documentText");
1045
+ return /* @__PURE__ */ J("button", {
1043
1046
  type: "button",
1044
1047
  onClick: r,
1045
1048
  className: "dc:h-full dc:flex-shrink-0 dc:flex dc:flex-col dc:items-center dc:pt-3 dc:gap-2 bg-dc-surface border-dc-border dc:border-r dc:cursor-pointer dc:hover:bg-dc-surface-hover dc:transition-colors",
@@ -1048,46 +1051,46 @@ function zr({ blocks: e, pulsingBlockId: t, nudge: n, onExpand: r }) {
1048
1051
  width: 48
1049
1052
  } : { width: 48 },
1050
1053
  title: i("notebook.collapsed.expandNotebook"),
1051
- children: [/* @__PURE__ */ J(a, { className: "dc:w-5 dc:h-5 text-dc-text-muted" }), /* @__PURE__ */ J("div", {
1054
+ children: [/* @__PURE__ */ q(a, { className: "dc:w-5 dc:h-5 text-dc-text-muted" }), /* @__PURE__ */ q("div", {
1052
1055
  className: "dc:flex dc:flex-col dc:items-center dc:gap-1.5 dc:flex-1 dc:overflow-y-auto dc:py-1",
1053
1056
  style: { scrollbarWidth: "none" },
1054
- children: e.length === 0 ? /* @__PURE__ */ J("span", {
1057
+ children: e.length === 0 ? /* @__PURE__ */ q("span", {
1055
1058
  className: "dc:text-[9px] text-dc-text-disabled dc:writing-vertical-lr dc:mt-2",
1056
1059
  style: { writingMode: "vertical-lr" },
1057
1060
  children: i("notebook.collapsed.noBlocks")
1058
1061
  }) : e.map((e) => {
1059
1062
  let n = e.id === t, r;
1060
- return r = e.type === "portlet" ? S(e.chartType) : o, /* @__PURE__ */ J("div", {
1063
+ return r = e.type === "portlet" ? S(e.chartType) : o, /* @__PURE__ */ q("div", {
1061
1064
  className: "dc:w-6 dc:h-6 dc:flex dc:items-center dc:justify-center dc:rounded-sm",
1062
1065
  style: n ? { animation: "dc-icon-pulse 0.6s ease-in-out 3" } : void 0,
1063
1066
  title: e.type === "portlet" ? e.title : e.title || i("notebook.collapsed.markdown"),
1064
- children: /* @__PURE__ */ J(r, { className: "dc:w-4 dc:h-4 text-dc-text-muted" })
1067
+ children: /* @__PURE__ */ q(r, { className: "dc:w-4 dc:h-4 text-dc-text-muted" })
1065
1068
  }, e.id);
1066
1069
  })
1067
1070
  })]
1068
1071
  });
1069
1072
  }
1070
- function Br({ onExpand: e }) {
1071
- let { t } = z(), n = j("sparkles");
1072
- return /* @__PURE__ */ Y("button", {
1073
+ function Hr({ onExpand: e }) {
1074
+ let { t } = R(), n = j("sparkles");
1075
+ return /* @__PURE__ */ J("button", {
1073
1076
  type: "button",
1074
1077
  onClick: e,
1075
1078
  className: "dc:w-12 dc:h-full dc:flex-shrink-0 dc:flex dc:flex-col dc:items-center dc:pt-3 dc:gap-2 bg-dc-surface border-dc-border dc:border-l dc:cursor-pointer dc:hover:bg-dc-surface-hover dc:transition-colors",
1076
1079
  title: t("notebook.collapsed.expandChat"),
1077
- children: [/* @__PURE__ */ J(n, { className: "dc:w-5 dc:h-5 text-dc-accent" }), /* @__PURE__ */ J("span", {
1080
+ children: [/* @__PURE__ */ q(n, { className: "dc:w-5 dc:h-5 text-dc-accent" }), /* @__PURE__ */ q("span", {
1078
1081
  className: "dc:text-[10px] dc:font-medium text-dc-text-muted",
1079
1082
  style: { writingMode: "vertical-lr" },
1080
1083
  children: t("notebook.collapsed.aiChat")
1081
1084
  })]
1082
1085
  });
1083
1086
  }
1084
- function Vr({ agentEndpoint: e, agentApiKey: t, agentProvider: n, agentModel: r, agentProviderEndpoint: i, onSave: a, onDirtyStateChange: o, onDashboardSaved: s, onScore: c, colorPalette: l, loadingComponent: u, className: d, initialPrompt: f }) {
1085
- let [p, m] = K(60), h = G(null), g = G(!1), { containerRef: _, layoutMode: v } = kn(), [y, b] = K("chat"), [x, S] = K(null), [C, w] = K(!1), T = G(v), E = X((e) => e.blocks), D = E.length, O = X((e) => e.messages.length), k = X((e) => e.isStreaming), A = X((e) => e.save);
1086
- U(() => {
1087
+ function Ur({ agentEndpoint: e, agentApiKey: t, agentProvider: n, agentModel: r, agentProviderEndpoint: i, onSave: a, onDirtyStateChange: o, onDashboardSaved: s, onScore: c, colorPalette: l, loadingComponent: u, className: d, initialPrompt: f }) {
1088
+ let [p, m] = G(60), h = W(null), g = W(!1), { containerRef: _, layoutMode: v } = An(), [y, b] = G("chat"), [x, S] = G(null), [C, w] = G(!1), T = W(v), E = Y((e) => e.blocks), D = E.length, O = Y((e) => e.messages.length), k = Y((e) => e.isStreaming), A = Y((e) => e.save);
1089
+ H(() => {
1087
1090
  T.current === "narrow" && v === "wide" && b("chat"), T.current = v;
1088
1091
  }, [v]);
1089
- let j = G(D);
1090
- U(() => {
1092
+ let j = W(D);
1093
+ H(() => {
1091
1094
  if (v === "narrow" && y === "chat" && D > j.current) {
1092
1095
  let e = E[E.length - 1];
1093
1096
  if (e) {
@@ -1103,8 +1106,8 @@ function Vr({ agentEndpoint: e, agentApiKey: t, agentProvider: n, agentModel: r,
1103
1106
  v,
1104
1107
  y
1105
1108
  ]);
1106
- let M = G(!1);
1107
- U(() => {
1109
+ let M = W(!1);
1110
+ H(() => {
1108
1111
  if (k) M.current = !0;
1109
1112
  else if (M.current && v === "narrow" && y === "chat" && D > 0) {
1110
1113
  M.current = !1, w(!0);
@@ -1117,26 +1120,26 @@ function Vr({ agentEndpoint: e, agentApiKey: t, agentProvider: n, agentModel: r,
1117
1120
  y,
1118
1121
  D
1119
1122
  ]);
1120
- let N = H((e) => {
1123
+ let N = V((e) => {
1121
1124
  _(e), h.current = e;
1122
- }, [_]), P = G({
1125
+ }, [_]), P = W({
1123
1126
  blockCount: D,
1124
1127
  msgCount: O
1125
1128
  });
1126
- U(() => {
1129
+ H(() => {
1127
1130
  o?.(D !== P.current.blockCount || O !== P.current.msgCount);
1128
1131
  }, [
1129
1132
  D,
1130
1133
  O,
1131
1134
  o
1132
1135
  ]);
1133
- let { clearSave: F } = Rr({
1136
+ let { clearSave: F } = Br({
1134
1137
  blockCount: D,
1135
1138
  messageCount: O,
1136
1139
  isStreaming: k,
1137
1140
  save: A,
1138
1141
  onSave: a
1139
- }), I = H((e) => {
1142
+ }), ee = V((e) => {
1140
1143
  e.preventDefault(), g.current = !0;
1141
1144
  let t = (e) => {
1142
1145
  if (!g.current || !h.current) return;
@@ -1146,7 +1149,7 @@ function Vr({ agentEndpoint: e, agentApiKey: t, agentProvider: n, agentModel: r,
1146
1149
  g.current = !1, document.removeEventListener("mousemove", t), document.removeEventListener("mouseup", n);
1147
1150
  };
1148
1151
  document.addEventListener("mousemove", t), document.addEventListener("mouseup", n);
1149
- }, []), L = /* @__PURE__ */ J(Lr, {
1152
+ }, []), I = /* @__PURE__ */ q(zr, {
1150
1153
  agentEndpoint: e,
1151
1154
  agentApiKey: t,
1152
1155
  agentProvider: n,
@@ -1158,46 +1161,46 @@ function Vr({ agentEndpoint: e, agentApiKey: t, agentProvider: n, agentModel: r,
1158
1161
  loadingComponent: u,
1159
1162
  initialPrompt: f
1160
1163
  });
1161
- return v === "narrow" ? /* @__PURE__ */ J("div", {
1164
+ return v === "narrow" ? /* @__PURE__ */ q("div", {
1162
1165
  ref: N,
1163
1166
  className: `dc:flex dc:h-full dc:w-full dc:overflow-hidden bg-dc-surface-secondary ${d || ""}`,
1164
- children: y === "chat" ? /* @__PURE__ */ Y(q, { children: [/* @__PURE__ */ J(zr, {
1167
+ children: y === "chat" ? /* @__PURE__ */ J(K, { children: [/* @__PURE__ */ q(Vr, {
1165
1168
  blocks: E,
1166
1169
  pulsingBlockId: x,
1167
1170
  nudge: C,
1168
1171
  onExpand: () => b("notebook")
1169
- }), /* @__PURE__ */ J("div", {
1172
+ }), /* @__PURE__ */ q("div", {
1170
1173
  className: "dc:h-full dc:overflow-hidden dc:flex-1",
1171
- children: L
1172
- })] }) : /* @__PURE__ */ Y(q, { children: [/* @__PURE__ */ J("div", {
1174
+ children: I
1175
+ })] }) : /* @__PURE__ */ J(K, { children: [/* @__PURE__ */ q("div", {
1173
1176
  className: "dc:h-full dc:overflow-hidden dc:flex-1",
1174
- children: /* @__PURE__ */ J(sr, { colorPalette: l })
1175
- }), /* @__PURE__ */ J(Br, { onExpand: () => b("chat") })] })
1176
- }) : /* @__PURE__ */ Y("div", {
1177
+ children: /* @__PURE__ */ q(ur, { colorPalette: l })
1178
+ }), /* @__PURE__ */ q(Hr, { onExpand: () => b("chat") })] })
1179
+ }) : /* @__PURE__ */ J("div", {
1177
1180
  ref: N,
1178
1181
  className: `dc:flex dc:h-full dc:w-full dc:overflow-hidden bg-dc-surface-secondary ${d || ""}`,
1179
1182
  children: [
1180
- /* @__PURE__ */ J("div", {
1183
+ /* @__PURE__ */ q("div", {
1181
1184
  className: "dc:h-full dc:overflow-hidden",
1182
1185
  style: { width: `${p}%` },
1183
- children: /* @__PURE__ */ J(sr, { colorPalette: l })
1186
+ children: /* @__PURE__ */ q(ur, { colorPalette: l })
1184
1187
  }),
1185
- /* @__PURE__ */ J("div", {
1188
+ /* @__PURE__ */ q("div", {
1186
1189
  className: "dc:w-1 dc:h-full dc:cursor-col-resize dc:flex-shrink-0 dc:transition-colors bg-dc-border dc:hover:bg-dc-accent",
1187
- onMouseDown: I
1190
+ onMouseDown: ee
1188
1191
  }),
1189
- /* @__PURE__ */ J("div", {
1192
+ /* @__PURE__ */ q("div", {
1190
1193
  className: "dc:h-full dc:overflow-hidden",
1191
1194
  style: { width: `${100 - p}%` },
1192
- children: L
1195
+ children: I
1193
1196
  })
1194
1197
  ]
1195
1198
  });
1196
1199
  }
1197
- var Hr = V.memo(function({ config: e, colorPalette: t, ...n }) {
1198
- return /* @__PURE__ */ J(zn, {
1200
+ var Wr = B.memo(function({ config: e, colorPalette: t, ...n }) {
1201
+ return /* @__PURE__ */ q(Bn, {
1199
1202
  initialConfig: e,
1200
- children: /* @__PURE__ */ J(Vr, {
1203
+ children: /* @__PURE__ */ q(Ur, {
1201
1204
  ...n,
1202
1205
  colorPalette: t
1203
1206
  })
@@ -1205,28 +1208,28 @@ var Hr = V.memo(function({ config: e, colorPalette: t, ...n }) {
1205
1208
  });
1206
1209
  //#endregion
1207
1210
  //#region src/client/components/AnalyticsPage.tsx
1208
- function Ur() {
1209
- let { t: e } = z();
1210
- return /* @__PURE__ */ J("div", { children: e("analyticsPage.title") });
1211
+ function Gr() {
1212
+ let { t: e } = R();
1213
+ return /* @__PURE__ */ q("div", { children: e("analyticsPage.title") });
1211
1214
  }
1212
1215
  //#endregion
1213
1216
  //#region src/client/stores/dataBrowserStore.tsx
1214
- var Wr = "dc-data-browser-column-widths";
1215
- function Gr(e) {
1217
+ var Kr = "dc-data-browser-column-widths";
1218
+ function qr(e) {
1216
1219
  try {
1217
- let t = localStorage.getItem(Wr);
1220
+ let t = localStorage.getItem(Kr);
1218
1221
  return t ? JSON.parse(t)[e] ?? {} : {};
1219
1222
  } catch {
1220
1223
  return {};
1221
1224
  }
1222
1225
  }
1223
- function Kr(e, t) {
1226
+ function Jr(e, t) {
1224
1227
  try {
1225
- let n = localStorage.getItem(Wr), r = n ? JSON.parse(n) : {};
1226
- r[e] = t, localStorage.setItem(Wr, JSON.stringify(r));
1228
+ let n = localStorage.getItem(Kr), r = n ? JSON.parse(n) : {};
1229
+ r[e] = t, localStorage.setItem(Kr, JSON.stringify(r));
1227
1230
  } catch {}
1228
1231
  }
1229
- function qr(e = {}) {
1232
+ function Yr(e = {}) {
1230
1233
  return i()((t, n) => ({
1231
1234
  selectedCube: e.defaultCube ?? null,
1232
1235
  visibleColumns: e.defaultColumns ?? [],
@@ -1237,7 +1240,7 @@ function qr(e = {}) {
1237
1240
  filters: [],
1238
1241
  showFilterBar: !1,
1239
1242
  showColumnPicker: !1,
1240
- columnWidths: e.defaultCube ? Gr(e.defaultCube) : {},
1243
+ columnWidths: e.defaultCube ? qr(e.defaultCube) : {},
1241
1244
  selectCube: (e, n) => t({
1242
1245
  selectedCube: e,
1243
1246
  visibleColumns: n,
@@ -1246,7 +1249,7 @@ function qr(e = {}) {
1246
1249
  page: 0,
1247
1250
  filters: [],
1248
1251
  showFilterBar: !1,
1249
- columnWidths: Gr(e)
1252
+ columnWidths: qr(e)
1250
1253
  }),
1251
1254
  setVisibleColumns: (e) => t({
1252
1255
  visibleColumns: e,
@@ -1293,39 +1296,39 @@ function qr(e = {}) {
1293
1296
  ...t.columnWidths,
1294
1297
  [e]: n
1295
1298
  };
1296
- return t.selectedCube && Kr(t.selectedCube, r), { columnWidths: r };
1299
+ return t.selectedCube && Jr(t.selectedCube, r), { columnWidths: r };
1297
1300
  }),
1298
1301
  setColumnWidths: (e) => {
1299
1302
  let r = n().selectedCube;
1300
- r && Kr(r, e), t({ columnWidths: e });
1303
+ r && Jr(r, e), t({ columnWidths: e });
1301
1304
  }
1302
1305
  }));
1303
1306
  }
1304
- var Jr = Nn(null);
1305
- function Yr({ children: e, defaultPageSize: t, defaultCube: n, defaultColumns: r }) {
1306
- let i = G(null);
1307
- return i.current ||= qr({
1307
+ var Xr = Pn(null);
1308
+ function Zr({ children: e, defaultPageSize: t, defaultCube: n, defaultColumns: r }) {
1309
+ let i = W(null);
1310
+ return i.current ||= Yr({
1308
1311
  defaultPageSize: t,
1309
1312
  defaultCube: n,
1310
1313
  defaultColumns: r
1311
- }), /* @__PURE__ */ J(Jr.Provider, {
1314
+ }), /* @__PURE__ */ q(Xr.Provider, {
1312
1315
  value: i.current,
1313
1316
  children: e
1314
1317
  });
1315
1318
  }
1316
- function $(e) {
1317
- let t = Pn(Jr);
1319
+ function Q(e) {
1320
+ let t = Fn(Xr);
1318
1321
  if (!t) throw Error("useDataBrowserStore must be used within DataBrowserStoreProvider");
1319
1322
  return n(t, e);
1320
1323
  }
1321
1324
  //#endregion
1322
1325
  //#region src/client/hooks/useDataBrowser.ts
1323
- function Xr(e, t) {
1326
+ function Qr(e, t) {
1324
1327
  if (!t) return !0;
1325
1328
  let [n, r] = e.split("."), i = t.cubes.find((e) => e.name === n);
1326
1329
  return !i || i.dimensions.some((e) => e.name === `${n}.${r}`);
1327
1330
  }
1328
- function Zr(e, t) {
1331
+ function $r(e, t) {
1329
1332
  if (!t) return "string";
1330
1333
  let [n] = e.split("."), r = t.cubes.find((e) => e.name === n);
1331
1334
  if (!r) return "string";
@@ -1334,7 +1337,7 @@ function Zr(e, t) {
1334
1337
  let a = r.measures.find((t) => t.name === e);
1335
1338
  return a ? a.type : "string";
1336
1339
  }
1337
- function Qr(e, t) {
1340
+ function ei(e, t) {
1338
1341
  if (!t) return {
1339
1342
  dimensions: [],
1340
1343
  measures: []
@@ -1356,8 +1359,8 @@ function Qr(e, t) {
1356
1359
  measures: n.measures.filter((e) => r.has(e.type)).map((e) => e.name)
1357
1360
  };
1358
1361
  }
1359
- function $r() {
1360
- let e = $((e) => e.selectedCube), n = $((e) => e.visibleColumns), r = $((e) => e.sortColumn), i = $((e) => e.sortDirection), a = $((e) => e.page), o = $((e) => e.pageSize), s = $((e) => e.filters), c = $((e) => e.showFilterBar), l = $((e) => e.showColumnPicker), u = $(t((e) => ({
1362
+ function ti() {
1363
+ let e = Q((e) => e.selectedCube), n = Q((e) => e.visibleColumns), r = Q((e) => e.sortColumn), i = Q((e) => e.sortDirection), a = Q((e) => e.page), o = Q((e) => e.pageSize), s = Q((e) => e.filters), c = Q((e) => e.showFilterBar), l = Q((e) => e.showColumnPicker), u = Q(t((e) => ({
1361
1364
  selectCube: e.selectCube,
1362
1365
  setVisibleColumns: e.setVisibleColumns,
1363
1366
  toggleColumn: e.toggleColumn,
@@ -1368,15 +1371,15 @@ function $r() {
1368
1371
  setFilters: e.setFilters,
1369
1372
  toggleFilterBar: e.toggleFilterBar,
1370
1373
  setShowColumnPicker: e.setShowColumnPicker
1371
- }))), { meta: d, getFieldLabel: f } = _t(), p = W(() => {
1374
+ }))), { meta: d, getFieldLabel: f } = vt(), p = U(() => {
1372
1375
  if (!d || !e) return null;
1373
1376
  let t = d.cubes.find((t) => t.name === e);
1374
1377
  if (!t) return null;
1375
1378
  let n = t.dimensions.find((e) => e.primaryKey);
1376
1379
  return n ? n.name : t.dimensions.length > 0 ? t.dimensions[0].name : null;
1377
- }, [d, e]), m = r ?? p, h = r ? i : "asc", g = W(() => {
1380
+ }, [d, e]), m = r ?? p, h = r ? i : "asc", g = U(() => {
1378
1381
  if (!e || n.length === 0) return null;
1379
- let t = n.filter((e) => Xr(e, d)), r = n.filter((e) => !Xr(e, d));
1382
+ let t = n.filter((e) => Qr(e, d)), r = n.filter((e) => !Qr(e, d));
1380
1383
  if (t.length === 0) return null;
1381
1384
  let i = {
1382
1385
  dimensions: t,
@@ -1394,7 +1397,7 @@ function $r() {
1394
1397
  a,
1395
1398
  o,
1396
1399
  d
1397
- ]), { rawData: _, isLoading: v, isFetching: y, isDebouncing: b, error: x, refetch: S } = nt(g, {
1400
+ ]), { rawData: _, isLoading: v, isFetching: y, isDebouncing: b, error: x, refetch: S } = rt(g, {
1398
1401
  skip: !g,
1399
1402
  debounceMs: 400,
1400
1403
  keepPreviousData: !0,
@@ -1430,24 +1433,24 @@ function $r() {
1430
1433
  }
1431
1434
  //#endregion
1432
1435
  //#region src/client/components/DataBrowser/DataBrowserSidebar.tsx
1433
- var ei = j("search"), ti = j("cube");
1434
- function ni({ cubes: e, selectedCube: t, onSelectCube: n }) {
1435
- let { t: r } = z(), [i, a] = K(""), o = W(() => {
1436
+ var ni = j("search"), ri = j("cube");
1437
+ function ii({ cubes: e, selectedCube: t, onSelectCube: n }) {
1438
+ let { t: r } = R(), [i, a] = G(""), o = U(() => {
1436
1439
  let t = [...e].sort((e, t) => (e.title || e.name).localeCompare(t.title || t.name));
1437
1440
  if (!i) return t;
1438
1441
  let n = i.toLowerCase();
1439
1442
  return t.filter((e) => e.name.toLowerCase().includes(n) || e.title.toLowerCase().includes(n));
1440
1443
  }, [e, i]);
1441
- return /* @__PURE__ */ Y("div", {
1444
+ return /* @__PURE__ */ J("div", {
1442
1445
  className: "dc:flex dc:flex-col dc:h-full dc:border-r border-dc-border bg-dc-surface dc:w-60 dc:shrink-0",
1443
- children: [/* @__PURE__ */ Y("div", {
1446
+ children: [/* @__PURE__ */ J("div", {
1444
1447
  className: "dc:px-3 dc:py-3 dc:border-b border-dc-border",
1445
- children: [/* @__PURE__ */ J("h2", {
1448
+ children: [/* @__PURE__ */ q("h2", {
1446
1449
  className: "dc:text-sm dc:font-semibold text-dc-text dc:mb-2",
1447
1450
  children: r("dataBrowser.sidebar.cubes")
1448
- }), /* @__PURE__ */ Y("div", {
1451
+ }), /* @__PURE__ */ J("div", {
1449
1452
  className: "dc:relative",
1450
- children: [/* @__PURE__ */ J(ei, { className: "dc:absolute dc:left-2 dc:top-1/2 dc:-translate-y-1/2 dc:w-3.5 dc:h-3.5 text-dc-text-muted" }), /* @__PURE__ */ J("input", {
1453
+ children: [/* @__PURE__ */ q(ni, { className: "dc:absolute dc:left-2 dc:top-1/2 dc:-translate-y-1/2 dc:w-3.5 dc:h-3.5 text-dc-text-muted" }), /* @__PURE__ */ q("input", {
1451
1454
  type: "text",
1452
1455
  value: i,
1453
1456
  onChange: (e) => a(e.target.value),
@@ -1455,16 +1458,16 @@ function ni({ cubes: e, selectedCube: t, onSelectCube: n }) {
1455
1458
  className: "dc:w-full dc:pl-7 dc:pr-2 dc:py-1.5 dc:text-xs dc:rounded-sm border-dc-border dc:border bg-dc-surface text-dc-text dc:outline-none dc:focus:ring-1 focus:ring-dc-accent"
1456
1459
  })]
1457
1460
  })]
1458
- }), /* @__PURE__ */ Y("div", {
1461
+ }), /* @__PURE__ */ J("div", {
1459
1462
  className: "dc:flex-1 dc:overflow-y-auto dc:py-1",
1460
- children: [o.map((e) => /* @__PURE__ */ Y("button", {
1463
+ children: [o.map((e) => /* @__PURE__ */ J("button", {
1461
1464
  onClick: () => n(e.name),
1462
1465
  className: `dc:flex dc:items-center dc:gap-2 dc:w-full dc:px-3 dc:py-1.5 dc:text-left dc:text-sm dc:transition-colors ${t === e.name ? "bg-dc-accent-bg text-dc-accent dc:font-medium" : "text-dc-text dc:hover:bg-dc-surface-hover"}`,
1463
- children: [/* @__PURE__ */ J(ti, { className: "dc:w-4 dc:h-4 dc:shrink-0 text-dc-text-muted" }), /* @__PURE__ */ J("span", {
1466
+ children: [/* @__PURE__ */ q(ri, { className: "dc:w-4 dc:h-4 dc:shrink-0 text-dc-text-muted" }), /* @__PURE__ */ q("span", {
1464
1467
  className: "dc:truncate",
1465
1468
  children: e.title || e.name
1466
1469
  })]
1467
- }, e.name)), o.length === 0 && /* @__PURE__ */ J("div", {
1470
+ }, e.name)), o.length === 0 && /* @__PURE__ */ q("div", {
1468
1471
  className: "dc:px-3 dc:py-4 dc:text-xs text-dc-text-muted dc:text-center",
1469
1472
  children: r("dataBrowser.sidebar.noCubes")
1470
1473
  })]
@@ -1473,77 +1476,77 @@ function ni({ cubes: e, selectedCube: t, onSelectCube: n }) {
1473
1476
  }
1474
1477
  //#endregion
1475
1478
  //#region src/client/components/DataBrowser/DataBrowserToolbar.tsx
1476
- var ri = j("filter"), ii = j("settings"), ai = j("chevronLeft"), oi = j("chevronRight"), si = j("refresh");
1477
- function ci({ showFilterBar: e, filterCount: t, onToggleFilterBar: n, onToggleColumnPicker: r, page: i, pageSize: a, rowCount: o, hasNextPage: s, hasPrevPage: c, onPageChange: l, onPageSizeChange: u, isFetching: d, onRefresh: f }) {
1478
- let { t: p } = z();
1479
- return /* @__PURE__ */ Y("div", {
1479
+ var ai = j("filter"), oi = j("settings"), si = j("chevronLeft"), ci = j("chevronRight"), li = j("refresh");
1480
+ function ui({ showFilterBar: e, filterCount: t, onToggleFilterBar: n, onToggleColumnPicker: r, page: i, pageSize: a, rowCount: o, hasNextPage: s, hasPrevPage: c, onPageChange: l, onPageSizeChange: u, isFetching: d, onRefresh: f }) {
1481
+ let { t: p } = R();
1482
+ return /* @__PURE__ */ J("div", {
1480
1483
  className: "dc:flex dc:items-center dc:gap-2 dc:px-3 dc:py-2 dc:border-b border-dc-border bg-dc-surface-secondary",
1481
1484
  children: [
1482
- /* @__PURE__ */ Y("button", {
1485
+ /* @__PURE__ */ J("button", {
1483
1486
  onClick: n,
1484
1487
  className: `dc:flex dc:items-center dc:gap-1.5 dc:px-2.5 dc:py-1.5 dc:text-xs dc:font-medium dc:rounded-sm dc:border dc:transition-colors ${e ? "border-dc-accent bg-dc-accent-bg text-dc-accent" : "border-dc-border bg-dc-surface text-dc-text dc:hover:bg-dc-surface-hover"}`,
1485
1488
  children: [
1486
- /* @__PURE__ */ J(ri, { className: "dc:w-3.5 dc:h-3.5" }),
1489
+ /* @__PURE__ */ q(ai, { className: "dc:w-3.5 dc:h-3.5" }),
1487
1490
  p("dataBrowser.toolbar.filters"),
1488
- t > 0 && /* @__PURE__ */ J("span", {
1491
+ t > 0 && /* @__PURE__ */ q("span", {
1489
1492
  className: "dc:inline-flex dc:items-center dc:justify-center dc:w-4 dc:h-4 dc:text-[10px] dc:font-bold dc:rounded-full bg-dc-accent text-dc-surface",
1490
1493
  children: t
1491
1494
  })
1492
1495
  ]
1493
1496
  }),
1494
- /* @__PURE__ */ Y("button", {
1497
+ /* @__PURE__ */ J("button", {
1495
1498
  onClick: r,
1496
1499
  className: "dc:flex dc:items-center dc:gap-1.5 dc:px-2.5 dc:py-1.5 dc:text-xs dc:font-medium dc:rounded-sm dc:border border-dc-border bg-dc-surface text-dc-text dc:hover:bg-dc-surface-hover dc:transition-colors",
1497
- children: [/* @__PURE__ */ J(ii, { className: "dc:w-3.5 dc:h-3.5" }), p("dataBrowser.toolbar.columns")]
1500
+ children: [/* @__PURE__ */ q(oi, { className: "dc:w-3.5 dc:h-3.5" }), p("dataBrowser.toolbar.columns")]
1498
1501
  }),
1499
- /* @__PURE__ */ J("div", { className: "dc:flex-1" }),
1500
- /* @__PURE__ */ J("span", {
1502
+ /* @__PURE__ */ q("div", { className: "dc:flex-1" }),
1503
+ /* @__PURE__ */ q("span", {
1501
1504
  className: "dc:text-xs text-dc-text-muted",
1502
1505
  children: p("dataBrowser.toolbar.rows", { count: o })
1503
1506
  }),
1504
- /* @__PURE__ */ J("button", {
1507
+ /* @__PURE__ */ q("button", {
1505
1508
  onClick: f,
1506
1509
  className: "dc:p-1 dc:rounded-sm dc:hover:bg-dc-surface-hover dc:transition-colors",
1507
1510
  title: "Refresh",
1508
- children: /* @__PURE__ */ J(si, { className: `dc:w-3.5 dc:h-3.5 text-dc-text-muted ${d ? "dc:animate-spin" : ""}` })
1511
+ children: /* @__PURE__ */ q(li, { className: `dc:w-3.5 dc:h-3.5 text-dc-text-muted ${d ? "dc:animate-spin" : ""}` })
1509
1512
  }),
1510
- /* @__PURE__ */ Y("select", {
1513
+ /* @__PURE__ */ J("select", {
1511
1514
  value: a,
1512
1515
  onChange: (e) => u(Number(e.target.value)),
1513
1516
  className: "dc:text-xs dc:px-1.5 dc:py-1 dc:rounded-sm dc:border border-dc-border bg-dc-surface text-dc-text dc:outline-none",
1514
1517
  children: [
1515
- /* @__PURE__ */ J("option", {
1518
+ /* @__PURE__ */ q("option", {
1516
1519
  value: 20,
1517
1520
  children: "20"
1518
1521
  }),
1519
- /* @__PURE__ */ J("option", {
1522
+ /* @__PURE__ */ q("option", {
1520
1523
  value: 50,
1521
1524
  children: "50"
1522
1525
  }),
1523
- /* @__PURE__ */ J("option", {
1526
+ /* @__PURE__ */ q("option", {
1524
1527
  value: 100,
1525
1528
  children: "100"
1526
1529
  })
1527
1530
  ]
1528
1531
  }),
1529
- /* @__PURE__ */ Y("div", {
1532
+ /* @__PURE__ */ J("div", {
1530
1533
  className: "dc:flex dc:items-center dc:gap-1",
1531
1534
  children: [
1532
- /* @__PURE__ */ J("button", {
1535
+ /* @__PURE__ */ q("button", {
1533
1536
  onClick: () => l(i - 1),
1534
1537
  disabled: !c,
1535
1538
  className: "dc:p-1 dc:rounded-sm dc:hover:bg-dc-surface-hover dc:disabled:opacity-30 dc:disabled:cursor-not-allowed dc:transition-colors",
1536
- children: /* @__PURE__ */ J(ai, { className: "dc:w-4 dc:h-4 text-dc-text-muted" })
1539
+ children: /* @__PURE__ */ q(si, { className: "dc:w-4 dc:h-4 text-dc-text-muted" })
1537
1540
  }),
1538
- /* @__PURE__ */ J("span", {
1541
+ /* @__PURE__ */ q("span", {
1539
1542
  className: "dc:text-xs dc:font-medium text-dc-text dc:min-w-[2rem] dc:text-center",
1540
1543
  children: i + 1
1541
1544
  }),
1542
- /* @__PURE__ */ J("button", {
1545
+ /* @__PURE__ */ q("button", {
1543
1546
  onClick: () => l(i + 1),
1544
1547
  disabled: !s,
1545
1548
  className: "dc:p-1 dc:rounded-sm dc:hover:bg-dc-surface-hover dc:disabled:opacity-30 dc:disabled:cursor-not-allowed dc:transition-colors",
1546
- children: /* @__PURE__ */ J(oi, { className: "dc:w-4 dc:h-4 text-dc-text-muted" })
1549
+ children: /* @__PURE__ */ q(ci, { className: "dc:w-4 dc:h-4 text-dc-text-muted" })
1547
1550
  })
1548
1551
  ]
1549
1552
  })
@@ -1552,9 +1555,9 @@ function ci({ showFilterBar: e, filterCount: t, onToggleFilterBar: n, onToggleCo
1552
1555
  }
1553
1556
  //#endregion
1554
1557
  //#region src/client/components/DataBrowser/DataBrowserTable.tsx
1555
- var li = j("chevronUp"), ui = j("chevronDown");
1556
- function di(e, t) {
1557
- let n = Zr(e, t);
1558
+ var di = j("chevronUp"), fi = j("chevronDown");
1559
+ function pi(e, t) {
1560
+ let n = $r(e, t);
1558
1561
  return {
1559
1562
  string: "text",
1560
1563
  number: "num",
@@ -1566,14 +1569,14 @@ function di(e, t) {
1566
1569
  max: "num"
1567
1570
  }[n] || n;
1568
1571
  }
1569
- function fi(e, t) {
1570
- return di(e, t) === "num";
1572
+ function mi(e, t) {
1573
+ return pi(e, t) === "num";
1571
1574
  }
1572
- function pi(e) {
1575
+ function hi(e) {
1573
1576
  return e == null ? "" : typeof e == "number" ? e.toLocaleString() : typeof e == "boolean" ? e ? "true" : "false" : e instanceof Date ? e.toISOString() : String(e);
1574
1577
  }
1575
- var mi = 60, hi = 150, gi = V.memo(function({ data: e, columns: t, sortColumn: n, sortDirection: r, onSort: i, getFieldLabel: a, meta: o, isLoading: s, isFetching: c, selectedCube: l, loadingComponent: u }) {
1576
- let { t: d } = z(), f = $((e) => e.columnWidths), p = $((e) => e.setColumnWidth), m = $((e) => e.setColumnWidths), h = G(null), g = G(!1), _ = H((e, n) => {
1578
+ var gi = 60, $ = 150, _i = B.memo(function({ data: e, columns: t, sortColumn: n, sortDirection: r, onSort: i, getFieldLabel: a, meta: o, isLoading: s, isFetching: c, selectedCube: l, loadingComponent: u }) {
1579
+ let { t: d } = R(), f = Q((e) => e.columnWidths), p = Q((e) => e.setColumnWidth), m = Q((e) => e.setColumnWidths), h = W(null), g = W(!1), _ = V((e, n) => {
1577
1580
  e.preventDefault(), e.stopPropagation();
1578
1581
  let r = e.clientX;
1579
1582
  g.current = !1;
@@ -1585,10 +1588,10 @@ var mi = 60, hi = 150, gi = V.memo(function({ data: e, columns: t, sortColumn: n
1585
1588
  i && (n[i] = e.getBoundingClientRect().width);
1586
1589
  }), m(n);
1587
1590
  }
1588
- let a = e.target.closest("th"), o = a ? a.getBoundingClientRect().width : hi, s = (e) => {
1591
+ let a = e.target.closest("th"), o = a ? a.getBoundingClientRect().width : $, s = (e) => {
1589
1592
  let t = e.clientX - r;
1590
1593
  Math.abs(t) > 2 && (g.current = !0);
1591
- let i = Math.max(mi, o + t);
1594
+ let i = Math.max(gi, o + t);
1592
1595
  p(n, i);
1593
1596
  }, c = () => {
1594
1597
  document.removeEventListener("mousemove", s), document.removeEventListener("mouseup", c), document.body.style.cursor = "", document.body.style.userSelect = "", requestAnimationFrame(() => {
@@ -1600,24 +1603,24 @@ var mi = 60, hi = 150, gi = V.memo(function({ data: e, columns: t, sortColumn: n
1600
1603
  t,
1601
1604
  p,
1602
1605
  m
1603
- ]), v = H((e) => {
1606
+ ]), v = V((e) => {
1604
1607
  g.current || i(e);
1605
- }, [i]), y = Object.keys(f).length > 0 ? t.reduce((e, t) => e + (f[t] ?? hi), 0) : void 0;
1606
- return l ? e ? e.length === 0 && !s && !c ? /* @__PURE__ */ J("div", {
1608
+ }, [i]), y = Object.keys(f).length > 0 ? t.reduce((e, t) => e + (f[t] ?? $), 0) : void 0;
1609
+ return l ? e ? e.length === 0 && !s && !c ? /* @__PURE__ */ q("div", {
1607
1610
  className: "dc:flex dc:items-center dc:justify-center dc:h-full",
1608
- children: /* @__PURE__ */ Y("div", {
1611
+ children: /* @__PURE__ */ J("div", {
1609
1612
  className: "dc:text-center text-dc-text-muted",
1610
- children: [/* @__PURE__ */ J("div", {
1613
+ children: [/* @__PURE__ */ q("div", {
1611
1614
  className: "dc:text-sm dc:font-semibold dc:mb-1",
1612
1615
  children: d("dataBrowser.noData")
1613
- }), /* @__PURE__ */ J("div", {
1616
+ }), /* @__PURE__ */ q("div", {
1614
1617
  className: "dc:text-xs text-dc-text-secondary",
1615
1618
  children: d("dataBrowser.noRows")
1616
1619
  })]
1617
1620
  })
1618
- }) : /* @__PURE__ */ Y("div", {
1621
+ }) : /* @__PURE__ */ J("div", {
1619
1622
  className: "dc:relative dc:flex-1 dc:overflow-auto",
1620
- children: [c && /* @__PURE__ */ J("div", { className: "dc:absolute dc:inset-0 bg-dc-surface dc:opacity-40 dc:z-10 dc:pointer-events-none" }), /* @__PURE__ */ Y("table", {
1623
+ children: [c && /* @__PURE__ */ q("div", { className: "dc:absolute dc:inset-0 bg-dc-surface dc:opacity-40 dc:z-10 dc:pointer-events-none" }), /* @__PURE__ */ J("table", {
1621
1624
  ref: h,
1622
1625
  className: "dc:border-collapse",
1623
1626
  style: {
@@ -1626,31 +1629,31 @@ var mi = 60, hi = 150, gi = V.memo(function({ data: e, columns: t, sortColumn: n
1626
1629
  minWidth: "100%"
1627
1630
  },
1628
1631
  children: [
1629
- /* @__PURE__ */ J("colgroup", { children: t.map((e) => /* @__PURE__ */ J("col", { style: { width: f[e] ?? hi } }, e)) }),
1630
- /* @__PURE__ */ J("thead", {
1632
+ /* @__PURE__ */ q("colgroup", { children: t.map((e) => /* @__PURE__ */ q("col", { style: { width: f[e] ?? $ } }, e)) }),
1633
+ /* @__PURE__ */ q("thead", {
1631
1634
  className: "dc:sticky dc:top-0 dc:z-20",
1632
1635
  style: { backgroundColor: "var(--dc-surface-secondary)" },
1633
- children: /* @__PURE__ */ J("tr", { children: t.map((e, i) => {
1634
- let s = n === e, c = a(e), l = di(e, o), u = i === t.length - 1, d = fi(e, o);
1635
- return /* @__PURE__ */ Y("th", {
1636
+ children: /* @__PURE__ */ q("tr", { children: t.map((e, i) => {
1637
+ let s = n === e, c = a(e), l = pi(e, o), u = i === t.length - 1, d = mi(e, o);
1638
+ return /* @__PURE__ */ J("th", {
1636
1639
  onClick: () => v(e),
1637
1640
  className: `dc:relative dc:px-3 dc:py-2 dc:text-xs dc:font-normal dc:cursor-pointer dc:select-none dc:border-b border-dc-border dc:transition-colors${u ? "" : " dc:border-r"}${d ? " dc:text-right" : " dc:text-left"}`,
1638
1641
  style: { color: "var(--dc-text-muted)" },
1639
- children: [/* @__PURE__ */ Y("div", {
1642
+ children: [/* @__PURE__ */ J("div", {
1640
1643
  className: `dc:flex dc:items-center dc:gap-1.5 dc:overflow-hidden${d ? " dc:justify-end" : ""}`,
1641
1644
  children: [
1642
- /* @__PURE__ */ J("span", {
1645
+ /* @__PURE__ */ q("span", {
1643
1646
  className: "dc:font-medium dc:truncate",
1644
1647
  style: { color: "var(--dc-text)" },
1645
1648
  children: c
1646
1649
  }),
1647
- /* @__PURE__ */ J("span", {
1650
+ /* @__PURE__ */ q("span", {
1648
1651
  className: "dc:text-[10px] dc:opacity-50 dc:shrink-0",
1649
1652
  children: l
1650
1653
  }),
1651
- s && J(r === "asc" ? li : ui, { className: "dc:w-3 dc:h-3 text-dc-accent dc:shrink-0" })
1654
+ s && q(r === "asc" ? di : fi, { className: "dc:w-3 dc:h-3 text-dc-accent dc:shrink-0" })
1652
1655
  ]
1653
- }), /* @__PURE__ */ J("div", {
1656
+ }), /* @__PURE__ */ q("div", {
1654
1657
  onMouseDown: (t) => _(t, e),
1655
1658
  className: "dc:absolute dc:top-0 dc:right-0 dc:w-1.5 dc:h-full dc:cursor-col-resize dc:hover:bg-dc-accent dc:opacity-0 dc:hover:opacity-100 dc:transition-opacity",
1656
1659
  style: { zIndex: 30 }
@@ -1658,7 +1661,7 @@ var mi = 60, hi = 150, gi = V.memo(function({ data: e, columns: t, sortColumn: n
1658
1661
  }, e);
1659
1662
  }) })
1660
1663
  }),
1661
- /* @__PURE__ */ J("tbody", { children: e.map((e, n) => /* @__PURE__ */ J("tr", {
1664
+ /* @__PURE__ */ q("tbody", { children: e.map((e, n) => /* @__PURE__ */ q("tr", {
1662
1665
  className: "dc:border-b border-dc-border",
1663
1666
  style: { transition: "background-color 0.1s" },
1664
1667
  onMouseEnter: (e) => {
@@ -1668,30 +1671,30 @@ var mi = 60, hi = 150, gi = V.memo(function({ data: e, columns: t, sortColumn: n
1668
1671
  e.currentTarget.style.backgroundColor = "";
1669
1672
  },
1670
1673
  children: t.map((n, r) => {
1671
- let i = r === t.length - 1, a = fi(n, o);
1672
- return /* @__PURE__ */ J("td", {
1674
+ let i = r === t.length - 1, a = mi(n, o);
1675
+ return /* @__PURE__ */ q("td", {
1673
1676
  className: `dc:px-3 dc:py-1.5 dc:text-sm dc:overflow-hidden dc:text-ellipsis dc:whitespace-nowrap${i ? "" : " dc:border-r border-dc-border"}${a ? " dc:text-right dc:tabular-nums" : ""}`,
1674
1677
  style: { color: "var(--dc-text)" },
1675
- children: pi(e[n])
1678
+ children: hi(e[n])
1676
1679
  }, n);
1677
1680
  })
1678
1681
  }, n)) })
1679
1682
  ]
1680
1683
  })]
1681
- }) : /* @__PURE__ */ J("div", {
1684
+ }) : /* @__PURE__ */ q("div", {
1682
1685
  className: "dc:flex dc:flex-col dc:items-center dc:justify-center dc:h-full dc:gap-3",
1683
- children: u ?? /* @__PURE__ */ Y(q, { children: [/* @__PURE__ */ J(B, { size: "md" }), /* @__PURE__ */ J("div", {
1686
+ children: u ?? /* @__PURE__ */ J(K, { children: [/* @__PURE__ */ q(z, { size: "md" }), /* @__PURE__ */ q("div", {
1684
1687
  className: "dc:text-sm text-dc-text-muted",
1685
1688
  children: d("dataBrowser.loadingData")
1686
1689
  })] })
1687
- }) : /* @__PURE__ */ J("div", {
1690
+ }) : /* @__PURE__ */ q("div", {
1688
1691
  className: "dc:flex dc:items-center dc:justify-center dc:h-full",
1689
- children: /* @__PURE__ */ Y("div", {
1692
+ children: /* @__PURE__ */ J("div", {
1690
1693
  className: "dc:text-center text-dc-text-muted",
1691
- children: [/* @__PURE__ */ J("div", {
1694
+ children: [/* @__PURE__ */ q("div", {
1692
1695
  className: "dc:text-base dc:font-semibold dc:mb-1",
1693
1696
  children: d("dataBrowser.selectCube")
1694
- }), /* @__PURE__ */ J("div", {
1697
+ }), /* @__PURE__ */ q("div", {
1695
1698
  className: "dc:text-sm text-dc-text-secondary",
1696
1699
  children: d("dataBrowser.selectCubeHint")
1697
1700
  })]
@@ -1700,41 +1703,41 @@ var mi = 60, hi = 150, gi = V.memo(function({ data: e, columns: t, sortColumn: n
1700
1703
  });
1701
1704
  //#endregion
1702
1705
  //#region src/client/components/DataBrowser/index.tsx
1703
- function _i({ className: e = "", maxHeight: t = "100vh", loadingComponent: n }) {
1704
- let { selectedCube: r, visibleColumns: i, sortColumn: a, sortDirection: o, page: s, pageSize: c, filters: l, showFilterBar: u, showColumnPicker: d, rawData: f, isLoading: p, isFetching: m, rowCount: h, hasNextPage: g, hasPrevPage: _, meta: v, getFieldLabel: y, selectCube: b, setSort: x, setPage: S, setPageSize: C, setFilters: w, toggleFilterBar: T, setShowColumnPicker: E, toggleColumn: D, refetch: O } = $r(), k = W(() => v ? v.cubes.map((e) => ({
1706
+ function vi({ className: e = "", maxHeight: t = "100vh", loadingComponent: n }) {
1707
+ let { selectedCube: r, visibleColumns: i, sortColumn: a, sortDirection: o, page: s, pageSize: c, filters: l, showFilterBar: u, showColumnPicker: d, rawData: f, isLoading: p, isFetching: m, rowCount: h, hasNextPage: g, hasPrevPage: _, meta: v, getFieldLabel: y, selectCube: b, setSort: x, setPage: S, setPageSize: C, setFilters: w, toggleFilterBar: T, setShowColumnPicker: E, toggleColumn: D, refetch: O } = ti(), k = U(() => v ? v.cubes.map((e) => ({
1705
1708
  name: e.name,
1706
1709
  title: e.title || e.name
1707
- })) : [], [v]), A = H((e) => {
1708
- let { dimensions: t } = Qr(e, v);
1710
+ })) : [], [v]), A = V((e) => {
1711
+ let { dimensions: t } = ei(e, v);
1709
1712
  b(e, t);
1710
- }, [v, b]), j = W(() => {
1713
+ }, [v, b]), j = U(() => {
1711
1714
  function e(t) {
1712
1715
  return t.reduce((t, n) => "member" in n ? t + 1 : "type" in n && "filters" in n ? t + e(n.filters) : t, 0);
1713
1716
  }
1714
1717
  return e(l);
1715
- }, [l]), M = W(() => {
1718
+ }, [l]), M = U(() => {
1716
1719
  if (!v) return null;
1717
1720
  if (r) {
1718
1721
  let e = v.cubes.find((e) => e.name === r);
1719
1722
  return e ? { cubes: [e] } : null;
1720
1723
  }
1721
1724
  return v;
1722
- }, [v, r]), N = H((e, t, n, r) => {
1725
+ }, [v, r]), N = V((e, t, n, r) => {
1723
1726
  D(e.name);
1724
1727
  }, [D]);
1725
- return /* @__PURE__ */ Y("div", {
1728
+ return /* @__PURE__ */ J("div", {
1726
1729
  className: `dc:flex dc:border border-dc-border dc:rounded-lg dc:overflow-hidden bg-dc-surface ${e}`,
1727
1730
  style: { height: t },
1728
1731
  children: [
1729
- /* @__PURE__ */ J(ni, {
1732
+ /* @__PURE__ */ q(ii, {
1730
1733
  cubes: k,
1731
1734
  selectedCube: r,
1732
1735
  onSelectCube: A
1733
1736
  }),
1734
- /* @__PURE__ */ Y("div", {
1737
+ /* @__PURE__ */ J("div", {
1735
1738
  className: "dc:flex dc:flex-col dc:flex-1 dc:min-w-0",
1736
1739
  children: [
1737
- r && /* @__PURE__ */ J(ci, {
1740
+ r && /* @__PURE__ */ q(ui, {
1738
1741
  showFilterBar: u,
1739
1742
  filterCount: j,
1740
1743
  onToggleFilterBar: T,
@@ -1749,15 +1752,15 @@ function _i({ className: e = "", maxHeight: t = "100vh", loadingComponent: n })
1749
1752
  isFetching: m,
1750
1753
  onRefresh: () => O()
1751
1754
  }),
1752
- r && u && /* @__PURE__ */ J("div", {
1755
+ r && u && /* @__PURE__ */ q("div", {
1753
1756
  className: "dc:px-3 dc:py-2 dc:border-b border-dc-border bg-dc-surface",
1754
- children: /* @__PURE__ */ J($t, {
1757
+ children: /* @__PURE__ */ q(en, {
1755
1758
  filters: l,
1756
1759
  schema: M,
1757
1760
  onFiltersChange: w
1758
1761
  })
1759
1762
  }),
1760
- /* @__PURE__ */ J(gi, {
1763
+ /* @__PURE__ */ q(_i, {
1761
1764
  data: f,
1762
1765
  columns: i,
1763
1766
  sortColumn: a,
@@ -1772,7 +1775,7 @@ function _i({ className: e = "", maxHeight: t = "100vh", loadingComponent: n })
1772
1775
  })
1773
1776
  ]
1774
1777
  }),
1775
- d && M && /* @__PURE__ */ J(Xe, {
1778
+ d && M && /* @__PURE__ */ q(Ze, {
1776
1779
  isOpen: d,
1777
1780
  onClose: () => E(!1),
1778
1781
  onSelect: N,
@@ -1783,11 +1786,11 @@ function _i({ className: e = "", maxHeight: t = "100vh", loadingComponent: n })
1783
1786
  ]
1784
1787
  });
1785
1788
  }
1786
- function vi({ className: e, defaultCube: t, defaultPageSize: n = 20, maxHeight: r, loadingComponent: i }) {
1787
- return /* @__PURE__ */ J(Yr, {
1789
+ function yi({ className: e, defaultCube: t, defaultPageSize: n = 20, maxHeight: r, loadingComponent: i }) {
1790
+ return /* @__PURE__ */ q(Zr, {
1788
1791
  defaultPageSize: n,
1789
1792
  defaultCube: t,
1790
- children: /* @__PURE__ */ J(_i, {
1793
+ children: /* @__PURE__ */ q(vi, {
1791
1794
  className: e,
1792
1795
  maxHeight: r,
1793
1796
  loadingComponent: i
@@ -1796,13 +1799,13 @@ function vi({ className: e, defaultCube: t, defaultPageSize: n = 20, maxHeight:
1796
1799
  }
1797
1800
  //#endregion
1798
1801
  //#region src/client/components/DashboardThumbnailPlaceholder.tsx
1799
- var yi = j("segment");
1800
- function bi({ className: e = "" }) {
1801
- return /* @__PURE__ */ J("div", {
1802
+ var bi = j("segment");
1803
+ function xi({ className: e = "" }) {
1804
+ return /* @__PURE__ */ q("div", {
1802
1805
  className: `dc:flex dc:items-center dc:justify-center bg-dc-bg-secondary ${e}`,
1803
- children: /* @__PURE__ */ Y("div", {
1806
+ children: /* @__PURE__ */ J("div", {
1804
1807
  className: "dc:text-center",
1805
- children: [/* @__PURE__ */ J(yi, { className: "dc:w-8 dc:h-8 dc:mx-auto dc:mb-2 text-dc-text-muted dc:opacity-50" }), /* @__PURE__ */ J("span", {
1808
+ children: [/* @__PURE__ */ q(bi, { className: "dc:w-8 dc:h-8 dc:mx-auto dc:mb-2 text-dc-text-muted dc:opacity-50" }), /* @__PURE__ */ q("span", {
1806
1809
  className: "dc:text-xs text-dc-text-muted",
1807
1810
  children: "No preview"
1808
1811
  })]
@@ -1810,6 +1813,6 @@ function bi({ className: e = "" }) {
1810
1813
  });
1811
1814
  }
1812
1815
  //#endregion
1813
- export { Hr as AgenticNotebook, ke as AnalysisBuilder, Ke as AnalyticsDashboard, Ur as AnalyticsPage, ve as AnalyticsPortlet, F as ChartErrorBoundary, Ve as ConfirmModal, x as CubeClient, D as CubeProvider, f as CubeQueryError, u as DEFAULT_ICONS, Je as DashboardEditModal, Me as DashboardFilterBar, Pe as DashboardGrid, Re as DashboardGridSurface, Se as DashboardModals, ee as DashboardProvider, de as DashboardStoreProvider, bi as DashboardThumbnailPlaceholder, Qe as DashboardToolbar, vi as DataBrowser, be as DrillBreadcrumb, fe as DrillMenu, en as ExecutionPlanPanel, nn as ExplainAIPanel, qt as LazyChart, B as LoadingIndicator, Ue as Modal, zn as NotebookStoreProvider, Te as PortletAnalysisModal, Be as PortletContainer, o as ScrollContainerProvider, wt as THEME_PRESETS, Ct as applyTheme, zt as buildFunnelConfigFromQueries, It as buildServerFunnelQuery, g as captureThumbnail, E as chartPluginRegistry, gn as compressAndEncode, b as createCubeClient, Mn as createDashboardLayout, R as createDashboardStore, qe as createDefaultConfig, Ee as createDefaultFlowConfig, Le as createDefaultFunnelConfig, Ye as createDefaultQueryConfig, De as createDefaultRetentionConfig, Ae as createDefaultWorkspace, At as createExplainQueryKey, ft as createFlowQueryKey, at as createFunnelQueryKey, Ln as createNotebookStore, Cn as decodeAndDecompress, fn as detectAsymmetricDateRanges, dn as detectMeasureCollisions, T as exportPortletToXlsx, jn as formatChartData, Pt as formatDuration, st as generateQueryLabel, ln as generateShareUrl, Sn as getAvailableBindingKeyDimensions, Ut as getAvailableChartTypes, Rt as getBindingKeyField, vn as getBindingKeyLabel, S as getChartTypeIcon, pt as getCombinedFields, Bt as getCubeNameFromQuery, O as getFieldTypeIcon, j as getIcon, C as getIconData, A as getIconRegistry, v as getIconsByCategory, l as getMeasureTypeIcon, dt as getQueryIndices, lt as getQueryLabels, St as getTheme, xt as getThemeVariable, Gt as getUnavailableChartTypes, an as getValidationSummary, Jt as highlightCodeBlocks, Ht as isChartTypeAvailable, yt as isDarkMode, m as isExportAvailable, We as isFlowConfig, ze as isFunnelConfig, Ft as isFunnelData, bn as isMinimumFunnelConfigValid, Ne as isMultiQuery, $e as isMultiQueryConfig, ct as isMultiQueryData, wn as isMultiQueryValid, je as isQueryConfig, xe as isRetentionConfig, N as isSankeyData, P as isServerFlowQuery, me as isServerFunnelQuery, un as isShareableSize, Ze as isSingleQuery, p as isThumbnailCaptureAvailable, et as isValidAnalysisConfig, we as isValidAnalysisWorkspace, Vt as isValidChartType, rt as mergeQueryResults, ht as mergeResultsByKey, gt as mergeResultsConcat, Ce as migrateConfig, He as migrateLegacyPortlet, _n as parseShareUrl, Wt as preloadChart, Kt as preloadCharts, k as registerIcons, y as resetIcons, Tt as resetTheme, ie as selectAllActions, qn as selectBlockActions, Bn as selectBlocks, Xt as selectBreakdowns, Tn as selectChartConfig, Kn as selectChatActions, Gn as selectChatState, rn as selectCurrentState, se as selectDebugData, pe as selectDebugDataActions, tt as selectEditModeActions, L as selectEditModeState, Qt as selectFilters, Zt as selectFunnelState, Wn as selectInputValue, Hn as selectIsStreaming, ge as selectLayoutActions, re as selectLayoutState, Vn as selectMessages, tn as selectMetrics, he as selectModalActions, _e as selectModalState, hn as selectMultiQueryState, ne as selectPortletDebugData, Un as selectSessionId, oe as selectThumbnailDirty, Yt as selectUIState, d as setIcon, Dt as setTheme, bt as setThemeVariable, Lt as transformServerFunnelResult, Er as useAgentChat, cn as useAnalysisBuilder, mn as useAnalysisBuilderStore, c as useCubeApi, w as useCubeContext, s as useCubeFeatures, vt as useCubeFieldLabel, nt as useCubeLoadQuery, nt as useCubeQuery, _t as useCubeMeta, M as useCubeMetaQuery, Ie as useDashboard, ue as useDashboardContext, Ge as useDashboardStore, ae as useDashboardStoreApi, ye as useDashboardStoreOptional, $r as useDataBrowser, Oe as useDrillInteraction, kt as useDryRunQueries, Ot as useDryRunQuery, ce as useElementVisibility, Nt as useExplainAI, Mt as useExplainQuery, mt as useFlowQuery, ut as useFunnelQuery, ot as useMultiCubeLoadQuery, jt as useMultiDryRunQueries, X as useNotebookStore, a as useScrollContainer, le as useScrollDetection, An as useTheme, pn as validateBindingKeyExists, on as validateBindingKeyForSteps, yn as validateFunnelConfig, it as validateMergeKey, Dn as validateMergeKeys, sn as validateMultiQueryConfig, xn as validateStepQueries, En as validateTimeDimensionAlignment, h as warnIfExcelJsMissing, _ as warnIfScreenshotLibMissing, Et as watchThemeChanges };
1816
+ export { Wr as AgenticNotebook, Ae as AnalysisBuilder, qe as AnalyticsDashboard, Gr as AnalyticsPage, ye as AnalyticsPortlet, F as ChartErrorBoundary, He as ConfirmModal, x as CubeClient, D as CubeProvider, f as CubeQueryError, u as DEFAULT_ICONS, Ye as DashboardEditModal, Ne as DashboardFilterBar, Fe as DashboardGrid, ze as DashboardGridSurface, Ce as DashboardModals, te as DashboardProvider, fe as DashboardStoreProvider, xi as DashboardThumbnailPlaceholder, $e as DashboardToolbar, yi as DataBrowser, xe as DrillBreadcrumb, pe as DrillMenu, tn as ExecutionPlanPanel, rn as ExplainAIPanel, Jt as LazyChart, z as LoadingIndicator, We as Modal, Bn as NotebookStoreProvider, Ee as PortletAnalysisModal, Ve as PortletContainer, o as ScrollContainerProvider, Tt as THEME_PRESETS, wt as applyTheme, Bt as buildFunnelConfigFromQueries, Lt as buildServerFunnelQuery, g as captureThumbnail, E as chartPluginRegistry, _n as compressAndEncode, b as createCubeClient, Nn as createDashboardLayout, L as createDashboardStore, Je as createDefaultConfig, De as createDefaultFlowConfig, Re as createDefaultFunnelConfig, Xe as createDefaultQueryConfig, Oe as createDefaultRetentionConfig, je as createDefaultWorkspace, jt as createExplainQueryKey, pt as createFlowQueryKey, ot as createFunnelQueryKey, Rn as createNotebookStore, wn as decodeAndDecompress, pn as detectAsymmetricDateRanges, fn as detectMeasureCollisions, T as exportPortletToXlsx, Mn as formatChartData, Ft as formatDuration, ct as generateQueryLabel, un as generateShareUrl, Cn as getAvailableBindingKeyDimensions, Wt as getAvailableChartTypes, zt as getBindingKeyField, yn as getBindingKeyLabel, S as getChartTypeIcon, mt as getCombinedFields, Vt as getCubeNameFromQuery, O as getFieldTypeIcon, j as getIcon, C as getIconData, A as getIconRegistry, v as getIconsByCategory, l as getMeasureTypeIcon, ft as getQueryIndices, ut as getQueryLabels, Ct as getTheme, St as getThemeVariable, Kt as getUnavailableChartTypes, on as getValidationSummary, Yt as highlightCodeBlocks, Ut as isChartTypeAvailable, bt as isDarkMode, m as isExportAvailable, Ge as isFlowConfig, Be as isFunnelConfig, It as isFunnelData, xn as isMinimumFunnelConfigValid, Pe as isMultiQuery, et as isMultiQueryConfig, lt as isMultiQueryData, Tn as isMultiQueryValid, Me as isQueryConfig, Se as isRetentionConfig, N as isSankeyData, P as isServerFlowQuery, he as isServerFunnelQuery, dn as isShareableSize, Qe as isSingleQuery, p as isThumbnailCaptureAvailable, tt as isValidAnalysisConfig, Te as isValidAnalysisWorkspace, Ht as isValidChartType, it as mergeQueryResults, gt as mergeResultsByKey, _t as mergeResultsConcat, we as migrateConfig, Ue as migrateLegacyPortlet, vn as parseShareUrl, Gt as preloadChart, qt as preloadCharts, k as registerIcons, y as resetIcons, Et as resetTheme, ae as selectAllActions, Jn as selectBlockActions, Vn as selectBlocks, Zt as selectBreakdowns, En as selectChartConfig, qn as selectChatActions, Kn as selectChatState, an as selectCurrentState, ce as selectDebugData, me as selectDebugDataActions, nt as selectEditModeActions, I as selectEditModeState, $t as selectFilters, Qt as selectFunnelState, Gn as selectInputValue, Un as selectIsStreaming, _e as selectLayoutActions, ie as selectLayoutState, Hn as selectMessages, nn as selectMetrics, ge as selectModalActions, ve as selectModalState, gn as selectMultiQueryState, re as selectPortletDebugData, Wn as selectSessionId, se as selectThumbnailDirty, Xt as selectUIState, d as setIcon, Ot as setTheme, xt as setThemeVariable, Rt as transformServerFunnelResult, Or as useAgentChat, ln as useAnalysisBuilder, hn as useAnalysisBuilderStore, c as useCubeApi, w as useCubeContext, s as useCubeFeatures, yt as useCubeFieldLabel, rt as useCubeLoadQuery, rt as useCubeQuery, vt as useCubeMeta, M as useCubeMetaQuery, Le as useDashboard, de as useDashboardContext, Ke as useDashboardStore, oe as useDashboardStoreApi, be as useDashboardStoreOptional, ti as useDataBrowser, ke as useDrillInteraction, At as useDryRunQueries, kt as useDryRunQuery, le as useElementVisibility, Pt as useExplainAI, Nt as useExplainQuery, ht as useFlowQuery, dt as useFunnelQuery, st as useMultiCubeLoadQuery, Mt as useMultiDryRunQueries, Y as useNotebookStore, a as useScrollContainer, ue as useScrollDetection, jn as useTheme, mn as validateBindingKeyExists, sn as validateBindingKeyForSteps, bn as validateFunnelConfig, at as validateMergeKey, On as validateMergeKeys, cn as validateMultiQueryConfig, Sn as validateStepQueries, Dn as validateTimeDimensionAlignment, h as warnIfExcelJsMissing, _ as warnIfScreenshotLibMissing, Dt as watchThemeChanges };
1814
1817
 
1815
1818
  //# sourceMappingURL=index.js.map