drizzle-cube 0.5.8 → 0.6.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 (388) hide show
  1. package/README.md +2 -0
  2. package/dist/adapters/adapters/hono/agent-handler.d.ts +9 -0
  3. package/dist/adapters/adapters/hono/mcp-handler.d.ts +37 -0
  4. package/dist/adapters/adapters/mcp-tools-handlers.d.ts +18 -0
  5. package/dist/adapters/adapters/nextjs/mcp-handler.d.ts +36 -0
  6. package/dist/adapters/adapters/utils.d.ts +6 -81
  7. package/dist/adapters/express/index.cjs +1 -1
  8. package/dist/adapters/express/index.js +50 -50
  9. package/dist/adapters/fastify/index.cjs +1 -1
  10. package/dist/adapters/fastify/index.js +78 -78
  11. package/dist/adapters/google-BOnRIN1w.cjs +2 -0
  12. package/dist/adapters/{google-CFYljAOF.js → google-CvKM9yVM.js} +83 -71
  13. package/dist/adapters/{handler-Cx8QYLk6.js → handler-CfgE0JSL.js} +499 -576
  14. package/dist/adapters/handler-Cn0dOctE.cjs +25 -0
  15. package/dist/adapters/hono/index.cjs +2 -2
  16. package/dist/adapters/hono/index.js +205 -175
  17. package/dist/adapters/locale-DDvZDFVn.js +8114 -0
  18. package/dist/adapters/locale-ZLUUNUxr.cjs +166 -0
  19. package/dist/adapters/mcp-tools.cjs +1 -1
  20. package/dist/adapters/mcp-tools.js +49 -38
  21. package/dist/adapters/mcp-transport-Chiaj4ll.cjs +40 -0
  22. package/dist/adapters/mcp-transport-H96VG3WY.js +591 -0
  23. package/dist/adapters/nextjs/index.cjs +1 -1
  24. package/dist/adapters/nextjs/index.js +190 -197
  25. package/dist/adapters/{openai-BZdAA7Ji.js → openai-cDlFSTk6.js} +60 -58
  26. package/dist/adapters/openai-vXvLni8v.cjs +1 -0
  27. package/dist/adapters/{utils-D9JPLmfl.js → utils-BPWZsX7k.js} +1271 -1218
  28. package/dist/adapters/utils-_whV4fXL.cjs +128 -0
  29. package/dist/adapters/utils.cjs +1 -1
  30. package/dist/adapters/utils.js +2 -2
  31. package/dist/client/charts/ChartLoader.d.ts +2 -16
  32. package/dist/client/charts/chartComponentRegistry.d.ts +46 -0
  33. package/dist/client/charts/chartConfigHelpers.d.ts +38 -0
  34. package/dist/client/charts.js +14 -13
  35. package/dist/client/chunks/{DashboardEditModal-CjCIAT-J.js → DashboardEditModal-okVfH8ZK.js} +5296 -4544
  36. package/dist/client/chunks/DashboardEditModal-okVfH8ZK.js.map +1 -0
  37. package/dist/client/chunks/{RetentionCombinedChart-BPkfcTa8.js → RetentionCombinedChart-BgbDhsPz.js} +10 -10
  38. package/dist/client/chunks/{RetentionCombinedChart-BPkfcTa8.js.map → RetentionCombinedChart-BgbDhsPz.js.map} +1 -1
  39. package/dist/client/chunks/{RetentionHeatmap-DGzLzr7h.js → RetentionHeatmap-DjXZaTPq.js} +5 -5
  40. package/dist/client/chunks/{RetentionHeatmap-DGzLzr7h.js.map → RetentionHeatmap-DjXZaTPq.js.map} +1 -1
  41. package/dist/client/chunks/analysis-builder-DB88FojM.js +5674 -0
  42. package/dist/client/chunks/analysis-builder-DB88FojM.js.map +1 -0
  43. package/dist/client/chunks/{analysis-builder-shared-CYVwSPqt.js → analysis-builder-shared-BVK4TYfR.js} +1578 -1292
  44. package/dist/client/chunks/analysis-builder-shared-BVK4TYfR.js.map +1 -0
  45. package/dist/client/chunks/{chart-activity-grid-DmruKPab.js → chart-activity-grid-DX0SJbxs.js} +635 -492
  46. package/dist/client/chunks/chart-activity-grid-DX0SJbxs.js.map +1 -0
  47. package/dist/client/chunks/chart-area-of01_62R.js +775 -0
  48. package/dist/client/chunks/chart-area-of01_62R.js.map +1 -0
  49. package/dist/client/chunks/chart-bar-BqelQE_I.js +194 -0
  50. package/dist/client/chunks/chart-bar-BqelQE_I.js.map +1 -0
  51. package/dist/client/chunks/{chart-box-plot-DYKfyOI8.js → chart-box-plot-kkBixZ27.js} +2 -2
  52. package/dist/client/chunks/{chart-box-plot-DYKfyOI8.js.map → chart-box-plot-kkBixZ27.js.map} +1 -1
  53. package/dist/client/chunks/chart-bubble-B2he1--4.js +221 -0
  54. package/dist/client/chunks/chart-bubble-B2he1--4.js.map +1 -0
  55. package/dist/client/chunks/{chart-candlestick-Dwc92Mrj.js → chart-candlestick-DZp19Tzh.js} +2 -2
  56. package/dist/client/chunks/{chart-candlestick-Dwc92Mrj.js.map → chart-candlestick-DZp19Tzh.js.map} +1 -1
  57. package/dist/client/chunks/chart-config-area-BNigHUy8.js +124 -0
  58. package/dist/client/chunks/chart-config-area-BNigHUy8.js.map +1 -0
  59. package/dist/client/chunks/chart-config-bar-DSO_LRTx.js +54 -0
  60. package/dist/client/chunks/chart-config-bar-DSO_LRTx.js.map +1 -0
  61. package/dist/client/chunks/{chart-config-box-plot-DJ-dWWXA.js → chart-config-box-plot-oW8axV2q.js} +5 -10
  62. package/dist/client/chunks/chart-config-box-plot-oW8axV2q.js.map +1 -0
  63. package/dist/client/chunks/{chart-config-gauge-DSwC04l0.js → chart-config-gauge-Dq-_H9UN.js} +5 -7
  64. package/dist/client/chunks/chart-config-gauge-Dq-_H9UN.js.map +1 -0
  65. package/dist/client/chunks/{chart-config-kpi-delta-D6BIkHL3.js → chart-config-kpi-delta-DSQbvqu_.js} +5 -10
  66. package/dist/client/chunks/chart-config-kpi-delta-DSQbvqu_.js.map +1 -0
  67. package/dist/client/chunks/{chart-config-kpi-number-Bx-V9a62.js → chart-config-kpi-number-EFSWY1We.js} +5 -7
  68. package/dist/client/chunks/chart-config-kpi-number-EFSWY1We.js.map +1 -0
  69. package/dist/client/chunks/{chart-config-kpi-text-CcqC1u-8.js → chart-config-kpi-text-KM3V5X2u.js} +5 -7
  70. package/dist/client/chunks/chart-config-kpi-text-KM3V5X2u.js.map +1 -0
  71. package/dist/client/chunks/{chart-config-line-Db3jDsWc.js → chart-config-line-D6jG8PCH.js} +9 -36
  72. package/dist/client/chunks/chart-config-line-D6jG8PCH.js.map +1 -0
  73. package/dist/client/chunks/{chart-config-pie-DD4SmRTF.js → chart-config-pie-BhzW-fdn.js} +6 -16
  74. package/dist/client/chunks/chart-config-pie-BhzW-fdn.js.map +1 -0
  75. package/dist/client/chunks/{chart-config-radar-CC2XAaGr.js → chart-config-radar-D7REP1q_.js} +6 -16
  76. package/dist/client/chunks/chart-config-radar-D7REP1q_.js.map +1 -0
  77. package/dist/client/chunks/{chart-config-radial-bar-DmxKx1R0.js → chart-config-radial-bar-Byx6qOPU.js} +6 -16
  78. package/dist/client/chunks/chart-config-radial-bar-Byx6qOPU.js.map +1 -0
  79. package/dist/client/chunks/{chart-config-tree-map-BI-oQStO.js → chart-config-tree-map-DVrvf3yQ.js} +6 -16
  80. package/dist/client/chunks/chart-config-tree-map-DVrvf3yQ.js.map +1 -0
  81. package/dist/client/chunks/{chart-config-waterfall-DSnyixbI.js → chart-config-waterfall-DmFeQdIk.js} +5 -10
  82. package/dist/client/chunks/chart-config-waterfall-DmFeQdIk.js.map +1 -0
  83. package/dist/client/chunks/{chart-data-table-BO4sXsim.js → chart-data-table-CKauQXme.js} +1046 -1121
  84. package/dist/client/chunks/chart-data-table-CKauQXme.js.map +1 -0
  85. package/dist/client/chunks/{chart-funnel-DnWRsmnS.js → chart-funnel-CToKSBaL.js} +184 -222
  86. package/dist/client/chunks/chart-funnel-CToKSBaL.js.map +1 -0
  87. package/dist/client/chunks/chart-gauge-DTVezSk7.js +403 -0
  88. package/dist/client/chunks/chart-gauge-DTVezSk7.js.map +1 -0
  89. package/dist/client/chunks/chart-heat-map-DTuUl0BR.js +236 -0
  90. package/dist/client/chunks/chart-heat-map-DTuUl0BR.js.map +1 -0
  91. package/dist/client/chunks/chart-kpi-delta-Dn-jjO-2.js +408 -0
  92. package/dist/client/chunks/chart-kpi-delta-Dn-jjO-2.js.map +1 -0
  93. package/dist/client/chunks/chart-kpi-number-P_WBiO5S.js +244 -0
  94. package/dist/client/chunks/chart-kpi-number-P_WBiO5S.js.map +1 -0
  95. package/dist/client/chunks/chart-kpi-text-C-Y4eb5H.js +185 -0
  96. package/dist/client/chunks/chart-kpi-text-C-Y4eb5H.js.map +1 -0
  97. package/dist/client/chunks/chart-line-DKgrQA6c.js +101 -0
  98. package/dist/client/chunks/chart-line-DKgrQA6c.js.map +1 -0
  99. package/dist/client/chunks/{chart-markdown-dgUetjyM.js → chart-markdown-CV75S_zL.js} +2 -2
  100. package/dist/client/chunks/{chart-markdown-dgUetjyM.js.map → chart-markdown-CV75S_zL.js.map} +1 -1
  101. package/dist/client/chunks/{chart-measure-profile-ClfpLs4q.js → chart-measure-profile-Ket8fJyf.js} +7 -7
  102. package/dist/client/chunks/{chart-measure-profile-ClfpLs4q.js.map → chart-measure-profile-Ket8fJyf.js.map} +1 -1
  103. package/dist/client/chunks/chart-pie-ByieAX5H.js +119 -0
  104. package/dist/client/chunks/chart-pie-ByieAX5H.js.map +1 -0
  105. package/dist/client/chunks/chart-radar-CiSwHWp4.js +138 -0
  106. package/dist/client/chunks/chart-radar-CiSwHWp4.js.map +1 -0
  107. package/dist/client/chunks/chart-radial-bar-BF6Mhl6f.js +122 -0
  108. package/dist/client/chunks/chart-radial-bar-BF6Mhl6f.js.map +1 -0
  109. package/dist/client/chunks/{chart-sankey-M3XpO_ah.js → chart-sankey-DjrvKw6K.js} +36 -39
  110. package/dist/client/chunks/{chart-sankey-M3XpO_ah.js.map → chart-sankey-DjrvKw6K.js.map} +1 -1
  111. package/dist/client/chunks/chart-scatter-Dd9WFqnS.js +258 -0
  112. package/dist/client/chunks/chart-scatter-Dd9WFqnS.js.map +1 -0
  113. package/dist/client/chunks/{chart-sunburst-A_u6lqlS.js → chart-sunburst-leGpuDj7.js} +3 -3
  114. package/dist/client/chunks/{chart-sunburst-A_u6lqlS.js.map → chart-sunburst-leGpuDj7.js.map} +1 -1
  115. package/dist/client/chunks/chart-tree-map-Ceq5sLZA.js +323 -0
  116. package/dist/client/chunks/chart-tree-map-Ceq5sLZA.js.map +1 -0
  117. package/dist/client/chunks/{chart-waterfall-BuhMoagf.js → chart-waterfall-DyvQReN5.js} +7 -7
  118. package/dist/client/chunks/{chart-waterfall-BuhMoagf.js.map → chart-waterfall-DyvQReN5.js.map} +1 -1
  119. package/dist/client/chunks/{charts-core-jRtb0S2M.js → charts-core-DaXSt1Dd.js} +2 -2
  120. package/dist/client/chunks/{charts-core-jRtb0S2M.js.map → charts-core-DaXSt1Dd.js.map} +1 -1
  121. package/dist/client/chunks/charts-loader-DdTeCeNo.js +84 -0
  122. package/dist/client/chunks/charts-loader-DdTeCeNo.js.map +1 -0
  123. package/dist/client/chunks/{nl-NL-CpVs7ox3.js → nl-NL-2zTAWTej.js} +2 -1
  124. package/dist/client/chunks/{nl-NL-CpVs7ox3.js.map → nl-NL-2zTAWTej.js.map} +1 -1
  125. package/dist/client/chunks/retention-ChW9jYdy.js.map +1 -1
  126. package/dist/client/chunks/{schema-visualization-DE09kQE3.js → schema-visualization-Cb_E9_Gd.js} +12 -12
  127. package/dist/client/chunks/{schema-visualization-DE09kQE3.js.map → schema-visualization-Cb_E9_Gd.js.map} +1 -1
  128. package/dist/client/chunks/{useDirtyStateTracking-CoeQbprt.js → useDirtyStateTracking-MbpxH_v6.js} +95 -84
  129. package/dist/client/chunks/useDirtyStateTracking-MbpxH_v6.js.map +1 -0
  130. package/dist/client/chunks/{useExplainAI-DlnXWdmz.js → useExplainAI-evnZkjCY.js} +14 -14
  131. package/dist/client/chunks/{useExplainAI-DlnXWdmz.js.map → useExplainAI-evnZkjCY.js.map} +1 -1
  132. package/dist/client/chunks/{utils-CTKNaXS8.js → utils-3P6z1vz5.js} +2 -2
  133. package/dist/client/chunks/{utils-CTKNaXS8.js.map → utils-3P6z1vz5.js.map} +1 -1
  134. package/dist/client/chunks/{vendor-CPIYyeuD.js → vendor-DSpR0IW6.js} +43 -43
  135. package/dist/client/chunks/{vendor-CPIYyeuD.js.map → vendor-DSpR0IW6.js.map} +1 -1
  136. package/dist/client/components/AgenticNotebook/agentChatParts.d.ts +34 -0
  137. package/dist/client/components/AgenticNotebook/chatMessageParts.d.ts +39 -0
  138. package/dist/client/components/AgenticNotebook/useAgentChatController.d.ts +25 -0
  139. package/dist/client/components/AgenticNotebook/useNotebookAutosave.d.ts +12 -0
  140. package/dist/client/components/AnalysisBuilder/AnalysisQueryPanelParts.d.ts +64 -0
  141. package/dist/client/components/AnalysisBuilder/AnalysisResultsHeader.d.ts +67 -0
  142. package/dist/client/components/AnalysisBuilder/BreakdownComparisonToggle.d.ts +13 -0
  143. package/dist/client/components/AnalysisBuilder/BreakdownRow.d.ts +26 -0
  144. package/dist/client/components/AnalysisBuilder/DisplayOptionControl.d.ts +10 -0
  145. package/dist/client/components/AnalysisBuilder/ExecutionPlanPanelParts.d.ts +22 -0
  146. package/dist/client/components/AnalysisBuilder/FieldSearchResults.d.ts +16 -0
  147. package/dist/client/components/AnalysisBuilder/FilterValueInput.d.ts +63 -0
  148. package/dist/client/components/AnalysisBuilder/FlowDepthControls.d.ts +10 -0
  149. package/dist/client/components/AnalysisBuilder/FlowVisualizationPicker.d.ts +7 -0
  150. package/dist/client/components/AnalysisBuilder/LegacyBooleanOptions.d.ts +8 -0
  151. package/dist/client/components/AnalysisBuilder/MetricRow.d.ts +23 -0
  152. package/dist/client/components/AnalysisBuilder/SortToggleButton.d.ts +13 -0
  153. package/dist/client/components/AnalysisBuilder/StringArrayInput.d.ts +17 -0
  154. package/dist/client/components/AnalysisBuilder/filterConfigModalUtils.d.ts +30 -0
  155. package/dist/client/components/AnalysisBuilder/hooks/useAnalysisBuilderImperativeHandle.d.ts +13 -0
  156. package/dist/client/components/AnalysisBuilder/hooks/useDragReorder.d.ts +25 -0
  157. package/dist/client/components/AnalysisBuilder/hooks/useFieldSearchKeyboard.d.ts +11 -0
  158. package/dist/client/components/AnalysisBuilder/utils/axisConfigUtils.d.ts +23 -0
  159. package/dist/client/components/AnalysisBuilder/utils/executionPlanMarkdown.d.ts +8 -0
  160. package/dist/client/components/AnalysisBuilder/utils/fieldUtils.d.ts +5 -0
  161. package/dist/client/components/AnalysisBuilder/utils/resultsPanelDerive.d.ts +68 -0
  162. package/dist/client/components/AnalysisBuilder/utils/shareStateUtils.d.ts +68 -0
  163. package/dist/client/components/AnalysisBuilder/utils/sortUtils.d.ts +7 -0
  164. package/dist/client/components/DashboardFilters/CompactFilterBarParts.d.ts +26 -0
  165. package/dist/client/components/DashboardFilters/DashboardFilterConfigModalParts.d.ts +27 -0
  166. package/dist/client/components/DashboardFilters/DashboardFilterValueInput.d.ts +39 -0
  167. package/dist/client/components/DashboardFilters/dashboardFilterConfigModalUtils.d.ts +21 -0
  168. package/dist/client/components/DashboardFilters/useCompactFilterBar.d.ts +19 -0
  169. package/dist/client/components/DashboardFilters/useDashboardFilterConfigModal.d.ts +69 -0
  170. package/dist/client/components/DashboardFilters/useDateRangeState.d.ts +19 -0
  171. package/dist/client/components/DashboardFilters/useFilterDropdowns.d.ts +21 -0
  172. package/dist/client/components/DashboardFilters/useFilterValueFetch.d.ts +23 -0
  173. package/dist/client/components/DashboardPortletCard.d.ts +2 -57
  174. package/dist/client/components/analyticsPortlet/PortletChart.d.ts +31 -0
  175. package/dist/client/components/analyticsPortlet/PortletChartView.d.ts +35 -0
  176. package/dist/client/components/analyticsPortlet/PortletStates.d.ts +65 -0
  177. package/dist/client/components/analyticsPortlet/parsePortletQuery.d.ts +22 -0
  178. package/dist/client/components/analyticsPortlet/portletRenderState.d.ts +31 -0
  179. package/dist/client/components/analyticsPortlet/usePortletDebugData.d.ts +37 -0
  180. package/dist/client/components/analyticsPortlet/usePortletDrillState.d.ts +17 -0
  181. package/dist/client/components/analyticsPortlet/usePortletQueryResults.d.ts +37 -0
  182. package/dist/client/components/charts/ActivityGridChart.helpers.d.ts +33 -0
  183. package/dist/client/components/charts/ActivityGridChart.render.d.ts +31 -0
  184. package/dist/client/components/charts/AxisFormatControls.d.ts +3 -1
  185. package/dist/client/components/charts/BarChart.helpers.d.ts +23 -0
  186. package/dist/client/components/charts/BarSeries.d.ts +29 -0
  187. package/dist/client/components/charts/BubbleChart.helpers.d.ts +43 -0
  188. package/dist/client/components/charts/BubbleChart.render.d.ts +21 -0
  189. package/dist/client/components/charts/ChartStates.d.ts +38 -0
  190. package/dist/client/components/charts/FunnelChart.helpers.d.ts +25 -0
  191. package/dist/client/components/charts/FunnelViews.d.ts +16 -0
  192. package/dist/client/components/charts/HeatMapCanvas.d.ts +25 -0
  193. package/dist/client/components/charts/HeatMapChart.helpers.d.ts +64 -0
  194. package/dist/client/components/charts/KpiDelta.helpers.d.ts +20 -0
  195. package/dist/client/components/charts/KpiNumber.helpers.d.ts +30 -0
  196. package/dist/client/components/charts/KpiStates.d.ts +19 -0
  197. package/dist/client/components/charts/ScatterChart.helpers.d.ts +43 -0
  198. package/dist/client/components/charts/ScatterSeries.d.ts +17 -0
  199. package/dist/client/components/charts/ScatterTooltip.d.ts +21 -0
  200. package/dist/client/components/charts/TreeMapChart.helpers.d.ts +37 -0
  201. package/dist/client/components/charts/TreeMapContent.d.ts +24 -0
  202. package/dist/client/components/charts/TreeMapLegend.d.ts +13 -0
  203. package/dist/client/components/charts/cartesianChartHelpers.d.ts +126 -0
  204. package/dist/client/components/charts/chartAxisResolution.d.ts +32 -0
  205. package/dist/client/components/charts/chartScaffolding.d.ts +77 -0
  206. package/dist/client/components/charts/gaugeChartHelpers.d.ts +36 -0
  207. package/dist/client/components/charts/kpiTextHelpers.d.ts +46 -0
  208. package/dist/client/components/charts/radarChartHelpers.d.ts +14 -0
  209. package/dist/client/components/charts/radialBarChartHelpers.d.ts +22 -0
  210. package/dist/client/components/charts/useChartDimensions.d.ts +20 -0
  211. package/dist/client/components/charts/useKpiDimensions.d.ts +30 -0
  212. package/dist/client/components/dashboard/DashboardEditBar.d.ts +5 -0
  213. package/dist/client/components/dashboard/LayoutModeToggle.d.ts +10 -0
  214. package/dist/client/components/dashboardPortletCard/FilterFieldChip.d.ts +12 -0
  215. package/dist/client/components/dashboardPortletCard/PortletCardHeader.d.ts +43 -0
  216. package/dist/client/components/dashboardPortletCard/cardStyles.d.ts +33 -0
  217. package/dist/client/components/dashboardPortletCard/filterField.d.ts +12 -0
  218. package/dist/client/components/dashboardPortletCard/propsEqual.d.ts +55 -0
  219. package/dist/client/components/dashboardPortletCard/usePortletCardActions.d.ts +16 -0
  220. package/dist/client/components/portletAnalysisModal/saveValidation.d.ts +8 -0
  221. package/dist/client/components/shared/dateRangeUtils.d.ts +40 -0
  222. package/dist/client/components/shared/filterDisplayUtils.d.ts +10 -0
  223. package/dist/client/components/shared/filterItem/FilterDateRangeSelector.d.ts +17 -0
  224. package/dist/client/components/shared/filterItem/FilterFieldDropdown.d.ts +16 -0
  225. package/dist/client/components/shared/filterItem/dateRangeSync.d.ts +14 -0
  226. package/dist/client/components/shared/filterItem/fieldVisuals.d.ts +5 -0
  227. package/dist/client/components/shared/filterValueSelector/FilterValueInputs.d.ts +55 -0
  228. package/dist/client/components/shared/filterValueSelector/useFilterValueSelectorState.d.ts +25 -0
  229. package/dist/client/components/shared/queryFieldUtils.d.ts +21 -0
  230. package/dist/client/components/shared/utils.d.ts +4 -43
  231. package/dist/client/components.js +3 -3
  232. package/dist/client/hooks/agentChatStream.d.ts +39 -0
  233. package/dist/client/hooks/analysisQueryExecutionModes.d.ts +133 -0
  234. package/dist/client/hooks/drillNavigation.d.ts +25 -0
  235. package/dist/client/hooks.js +3 -3
  236. package/dist/client/icons.js +2 -2
  237. package/dist/client/index.js +816 -669
  238. package/dist/client/index.js.map +1 -1
  239. package/dist/client/providers.js +3 -3
  240. package/dist/client/schema.js +1 -1
  241. package/dist/client/shared/chartConfigBuilders.d.ts +18 -0
  242. package/dist/client/shared/components/QueryAnalysisPanel.sections.d.ts +41 -0
  243. package/dist/client/shared/queryTransforms.d.ts +20 -0
  244. package/dist/client/shared/utils.d.ts +2 -4
  245. package/dist/client/stores/optionsToAnalysisConfig.d.ts +17 -0
  246. package/dist/client/styles.css +1 -1
  247. package/dist/client/utils/axisValueFormatting.d.ts +32 -0
  248. package/dist/client/utils/timeValueFormatting.d.ts +32 -0
  249. package/dist/client/utils.js +6 -6
  250. package/dist/client-bundle-stats.html +1 -1
  251. package/dist/mcp-app/mcp-app.html +55 -55
  252. package/dist/server/google-BOnRIN1w.cjs +2 -0
  253. package/dist/server/{google-CFYljAOF.js → google-CvKM9yVM.js} +83 -71
  254. package/dist/server/index.cjs +179 -211
  255. package/dist/server/index.js +6330 -6458
  256. package/dist/server/{openai-BZdAA7Ji.js → openai-cDlFSTk6.js} +60 -58
  257. package/dist/server/openai-vXvLni8v.cjs +1 -0
  258. package/dist/server/server/adapters/base-adapter.d.ts +80 -35
  259. package/dist/server/server/adapters/databend-adapter.d.ts +8 -59
  260. package/dist/server/server/adapters/duckdb-adapter.d.ts +5 -59
  261. package/dist/server/server/adapters/mysql-adapter.d.ts +13 -70
  262. package/dist/server/server/adapters/postgres-adapter.d.ts +1 -65
  263. package/dist/server/server/adapters/snowflake-adapter.d.ts +5 -68
  264. package/dist/server/server/adapters/sqlite-adapter.d.ts +12 -32
  265. package/dist/server/server/adapters/window-function-builder.d.ts +11 -0
  266. package/dist/server/server/agent/chart-validation.d.ts +0 -5
  267. package/dist/server/server/agent/handler-steps.d.ts +37 -0
  268. package/dist/server/server/ai/discovery-helpers.d.ts +29 -0
  269. package/dist/server/server/ai/discovery.d.ts +4 -0
  270. package/dist/server/server/ai/suggestion-helpers.d.ts +33 -0
  271. package/dist/server/server/ai/suggestion.d.ts +0 -3
  272. package/dist/server/server/ai/validation-helpers.d.ts +21 -0
  273. package/dist/server/server/ai/validation.d.ts +0 -3
  274. package/dist/server/server/builders/analysis-utils.d.ts +106 -0
  275. package/dist/server/server/builders/cte-builder.d.ts +46 -0
  276. package/dist/server/server/builders/date-time-builder.d.ts +5 -0
  277. package/dist/server/server/builders/date-time-helpers.d.ts +34 -0
  278. package/dist/server/server/builders/filter-builder.d.ts +2 -0
  279. package/dist/server/server/builders/filter-operators.d.ts +23 -0
  280. package/dist/server/server/builders/flow-query-builder.d.ts +46 -19
  281. package/dist/server/server/builders/funnel-query-builder.d.ts +16 -5
  282. package/dist/server/server/builders/group-by-builder.d.ts +11 -0
  283. package/dist/server/server/builders/measure-builder.d.ts +43 -0
  284. package/dist/server/server/builders/retention-query-builder.d.ts +12 -14
  285. package/dist/server/server/cache-utils.d.ts +25 -5
  286. package/dist/server/server/compiler-metadata.d.ts +11 -0
  287. package/dist/server/server/compiler.d.ts +8 -14
  288. package/dist/server/server/cube-utils.d.ts +29 -4
  289. package/dist/server/server/execution/annotation-builder.d.ts +12 -0
  290. package/dist/server/server/execution/filter-cache-preloader.d.ts +19 -0
  291. package/dist/server/server/execution/mode-router.d.ts +25 -0
  292. package/dist/server/server/execution/query-result-cache.d.ts +21 -0
  293. package/dist/server/server/execution/result-post-processor.d.ts +10 -0
  294. package/dist/server/server/executor.d.ts +33 -30
  295. package/dist/server/server/executors/explain-utils.d.ts +28 -0
  296. package/dist/server/server/explain/explain-tree.d.ts +20 -0
  297. package/dist/server/server/filter-cache.d.ts +2 -2
  298. package/dist/server/server/gap-filler.d.ts +6 -0
  299. package/dist/server/server/index.d.ts +3 -1
  300. package/dist/server/server/logical-plan/cte-planner-helpers.d.ts +37 -0
  301. package/dist/server/server/logical-plan/cte-planner.d.ts +104 -0
  302. package/dist/server/server/logical-plan/filter-propagation.d.ts +44 -0
  303. package/dist/server/server/logical-plan/index.d.ts +6 -1
  304. package/dist/server/server/logical-plan/join-planner.d.ts +27 -0
  305. package/dist/server/server/logical-plan/logical-planner.d.ts +7 -200
  306. package/dist/server/server/logical-plan/optimiser.d.ts +3 -1
  307. package/dist/server/server/logical-plan/plan-analysis-reporter.d.ts +59 -0
  308. package/dist/server/server/logical-plan/planner-utils.d.ts +20 -0
  309. package/dist/server/server/logical-plan/types.d.ts +17 -9
  310. package/dist/server/server/measure-classification.d.ts +40 -0
  311. package/dist/server/server/physical-plan/drizzle-plan-builder.d.ts +21 -21
  312. package/dist/server/server/physical-plan/drizzle-sql-builder.d.ts +11 -0
  313. package/dist/server/server/physical-plan/processors/index.d.ts +2 -0
  314. package/dist/server/server/physical-plan/processors/keys-dedup-processor.d.ts +13 -0
  315. package/dist/server/server/physical-plan/processors/multi-fact-processor.d.ts +13 -0
  316. package/dist/server/server/physical-plan/processors/shared.d.ts +5 -0
  317. package/dist/server/server/query-handlers.d.ts +79 -0
  318. package/dist/server/server/query-modes.d.ts +28 -0
  319. package/dist/server/server/query-validator.d.ts +9 -0
  320. package/dist/server/server/resolvers/calculated-measure-resolver.d.ts +5 -0
  321. package/dist/server/server/resolvers/join-path-resolver.d.ts +6 -0
  322. package/dist/server/server/sql-format.d.ts +11 -0
  323. package/dist/server/server/types/cube.d.ts +18 -4
  324. package/dist/server/server/types/flow.d.ts +6 -5
  325. package/dist/server/server/types/index.d.ts +1 -1
  326. package/dist/server/server/types/validation.d.ts +14 -0
  327. package/package.json +11 -4
  328. package/dist/adapters/google-DUlXeeDA.cjs +0 -2
  329. package/dist/adapters/handler-CzbCuS6_.cjs +0 -25
  330. package/dist/adapters/locale-BPB7flIG.js +0 -8249
  331. package/dist/adapters/locale-tIMrNcCr.cjs +0 -198
  332. package/dist/adapters/mcp-transport-C2QzXm6h.cjs +0 -40
  333. package/dist/adapters/mcp-transport-D0B3S1tB.js +0 -579
  334. package/dist/adapters/openai-D_U4V0kT.cjs +0 -1
  335. package/dist/adapters/utils-KV37IBIv.cjs +0 -128
  336. package/dist/client/chunks/DashboardEditModal-CjCIAT-J.js.map +0 -1
  337. package/dist/client/chunks/analysis-builder-MuMIzoRq.js +0 -5367
  338. package/dist/client/chunks/analysis-builder-MuMIzoRq.js.map +0 -1
  339. package/dist/client/chunks/analysis-builder-shared-CYVwSPqt.js.map +0 -1
  340. package/dist/client/chunks/chart-activity-grid-DmruKPab.js.map +0 -1
  341. package/dist/client/chunks/chart-area-DHCPM4Em.js +0 -450
  342. package/dist/client/chunks/chart-area-DHCPM4Em.js.map +0 -1
  343. package/dist/client/chunks/chart-bar-KddciGDv.js +0 -271
  344. package/dist/client/chunks/chart-bar-KddciGDv.js.map +0 -1
  345. package/dist/client/chunks/chart-bubble-CfqiB538.js +0 -273
  346. package/dist/client/chunks/chart-bubble-CfqiB538.js.map +0 -1
  347. package/dist/client/chunks/chart-config-area-Bq_UsW3x.js +0 -101
  348. package/dist/client/chunks/chart-config-area-Bq_UsW3x.js.map +0 -1
  349. package/dist/client/chunks/chart-config-bar-_JEGZnAu.js +0 -95
  350. package/dist/client/chunks/chart-config-bar-_JEGZnAu.js.map +0 -1
  351. package/dist/client/chunks/chart-config-box-plot-DJ-dWWXA.js.map +0 -1
  352. package/dist/client/chunks/chart-config-gauge-DSwC04l0.js.map +0 -1
  353. package/dist/client/chunks/chart-config-kpi-delta-D6BIkHL3.js.map +0 -1
  354. package/dist/client/chunks/chart-config-kpi-number-Bx-V9a62.js.map +0 -1
  355. package/dist/client/chunks/chart-config-kpi-text-CcqC1u-8.js.map +0 -1
  356. package/dist/client/chunks/chart-config-line-Db3jDsWc.js.map +0 -1
  357. package/dist/client/chunks/chart-config-pie-DD4SmRTF.js.map +0 -1
  358. package/dist/client/chunks/chart-config-radar-CC2XAaGr.js.map +0 -1
  359. package/dist/client/chunks/chart-config-radial-bar-DmxKx1R0.js.map +0 -1
  360. package/dist/client/chunks/chart-config-tree-map-BI-oQStO.js.map +0 -1
  361. package/dist/client/chunks/chart-config-waterfall-DSnyixbI.js.map +0 -1
  362. package/dist/client/chunks/chart-data-table-BO4sXsim.js.map +0 -1
  363. package/dist/client/chunks/chart-funnel-DnWRsmnS.js.map +0 -1
  364. package/dist/client/chunks/chart-gauge-CgMeqeGb.js +0 -424
  365. package/dist/client/chunks/chart-gauge-CgMeqeGb.js.map +0 -1
  366. package/dist/client/chunks/chart-heat-map-DcGm9SWK.js +0 -231
  367. package/dist/client/chunks/chart-heat-map-DcGm9SWK.js.map +0 -1
  368. package/dist/client/chunks/chart-kpi-delta-C2wKPqCb.js +0 -343
  369. package/dist/client/chunks/chart-kpi-delta-C2wKPqCb.js.map +0 -1
  370. package/dist/client/chunks/chart-kpi-number-gWYF44ol.js +0 -322
  371. package/dist/client/chunks/chart-kpi-number-gWYF44ol.js.map +0 -1
  372. package/dist/client/chunks/chart-kpi-text-DIYtJtk4.js +0 -149
  373. package/dist/client/chunks/chart-kpi-text-DIYtJtk4.js.map +0 -1
  374. package/dist/client/chunks/chart-line-9BEGN5Ti.js +0 -433
  375. package/dist/client/chunks/chart-line-9BEGN5Ti.js.map +0 -1
  376. package/dist/client/chunks/chart-pie-BjAIhyOi.js +0 -172
  377. package/dist/client/chunks/chart-pie-BjAIhyOi.js.map +0 -1
  378. package/dist/client/chunks/chart-radar-Dgkcl2bN.js +0 -154
  379. package/dist/client/chunks/chart-radar-Dgkcl2bN.js.map +0 -1
  380. package/dist/client/chunks/chart-radial-bar-DdWJjAhK.js +0 -148
  381. package/dist/client/chunks/chart-radial-bar-DdWJjAhK.js.map +0 -1
  382. package/dist/client/chunks/chart-scatter-DaHYP_OL.js +0 -255
  383. package/dist/client/chunks/chart-scatter-DaHYP_OL.js.map +0 -1
  384. package/dist/client/chunks/chart-tree-map-uiwUU4nb.js +0 -298
  385. package/dist/client/chunks/chart-tree-map-uiwUU4nb.js.map +0 -1
  386. package/dist/client/chunks/useDirtyStateTracking-CoeQbprt.js.map +0 -1
  387. package/dist/server/google-DUlXeeDA.cjs +0 -2
  388. package/dist/server/openai-D_U4V0kT.cjs +0 -1
@@ -0,0 +1,64 @@
1
+ import { default as React } from 'react';
2
+ import { AnalysisQueryPanelProps, BreakdownItem } from './types';
3
+ import { MetaField } from '../../shared/types';
4
+ import { QueryMergeStrategy } from '../../types';
5
+ type Props = AnalysisQueryPanelProps;
6
+ /** True when the funnel mode UI has all the callbacks it needs to render. */
7
+ export declare function canRenderFunnelMode(p: Props): boolean;
8
+ /** True when the flow mode UI has all the callbacks/state it needs to render. */
9
+ export declare function canRenderFlowMode(p: Props): boolean;
10
+ /**
11
+ * Whether a dedicated mode (funnel/flow/retention) replaces the standard layout.
12
+ */
13
+ export declare function shouldRenderModeContent(p: Props): boolean;
14
+ /**
15
+ * Renders the dedicated mode UI (funnel / flow / retention) when one of those
16
+ * analysis types is active and all the required callbacks are present. Returns
17
+ * null when the standard query/chart/display layout should be used instead.
18
+ */
19
+ export declare function AnalysisModeContent(props: Props): React.JSX.Element | null;
20
+ interface TabBarProps {
21
+ activeTab: Props['activeTab'];
22
+ onActiveTabChange: Props['onActiveTabChange'];
23
+ isMultiQuery: boolean;
24
+ queryCount: number;
25
+ activeQueryIndex: number;
26
+ onAddQuery?: Props['onAddQuery'];
27
+ getQueryTabLabel: (index: number) => string;
28
+ handleQueryTabClick: (index: number) => void;
29
+ handleRemoveQuery: (e: React.MouseEvent, index: number) => void;
30
+ }
31
+ export declare function QueryPanelTabBar(props: TabBarProps): React.JSX.Element;
32
+ export declare function MergeStrategyControls({ mergeStrategy, onMergeStrategyChange, isFunnelMode, funnelBindingKey, onFunnelBindingKeyChange, schema, }: {
33
+ mergeStrategy: QueryMergeStrategy;
34
+ onMergeStrategyChange?: Props['onMergeStrategyChange'];
35
+ isFunnelMode: boolean;
36
+ funnelBindingKey?: Props['funnelBindingKey'];
37
+ onFunnelBindingKeyChange?: Props['onFunnelBindingKeyChange'];
38
+ schema: Props['schema'];
39
+ }): React.JSX.Element;
40
+ export declare function AdapterValidationBanner({ adapterValidation, }: {
41
+ adapterValidation: NonNullable<Props['adapterValidation']>;
42
+ }): React.JSX.Element;
43
+ export declare function MultiQueryValidationBanner({ multiQueryValidation, }: {
44
+ multiQueryValidation: NonNullable<Props['multiQueryValidation']>;
45
+ }): React.JSX.Element;
46
+ interface TabContentProps extends Props {
47
+ isMultiQuery: boolean;
48
+ getFieldMeta: (breakdown: BreakdownItem) => MetaField | null;
49
+ comparisonEnabledBreakdown: BreakdownItem | undefined;
50
+ }
51
+ /**
52
+ * Renders the active tab's body (query sections / chart config / display config)
53
+ * for the standard (non-mode) layout.
54
+ */
55
+ export declare function QueryPanelTabContent(props: TabContentProps): React.JSX.Element | null;
56
+ export declare function LockedBreakdownList({ breakdowns, getFieldMeta, comparisonEnabledBreakdown, onBreakdownGranularityChange, onBreakdownComparisonToggle, onMergeStrategyChange, }: {
57
+ breakdowns: BreakdownItem[];
58
+ getFieldMeta: (breakdown: BreakdownItem) => MetaField | null;
59
+ comparisonEnabledBreakdown: BreakdownItem | undefined;
60
+ onBreakdownGranularityChange: Props['onBreakdownGranularityChange'];
61
+ onBreakdownComparisonToggle?: Props['onBreakdownComparisonToggle'];
62
+ onMergeStrategyChange?: Props['onMergeStrategyChange'];
63
+ }): React.JSX.Element;
64
+ export {};
@@ -0,0 +1,67 @@
1
+ /**
2
+ * AnalysisResultsHeader
3
+ *
4
+ * Presentational header for AnalysisResultsPanel: the status / row-count line,
5
+ * the toolbar of action buttons (display limit, AI, palette, share, refresh,
6
+ * clear, schema, debug) and the large-dataset performance warning. Extracted to
7
+ * keep the panel's renderHeader flat. Behaviour and markup are identical to the
8
+ * previous inline rendering.
9
+ *
10
+ * Props are grouped into cohesive named slices instead of a flat bag, and each
11
+ * sub-component receives only the slice it needs:
12
+ * - `summary` → results state / row-count line + debug-error indicator
13
+ * - `toolbar` → action handlers and their transient state
14
+ * - `display` → view / visibility flags driving which controls render
15
+ */
16
+ type Row = Record<string, unknown>;
17
+ /** Results state + row counts that drive the status line, warning and error dot. */
18
+ export interface ResultsSummary {
19
+ executionResults: Row[] | null | undefined;
20
+ executionStatus: string;
21
+ totalRowCount: number | null;
22
+ resultsStale: boolean;
23
+ executionError: unknown;
24
+ debugDataPerQuery: Array<{
25
+ error?: unknown;
26
+ }>;
27
+ }
28
+ /** Action handlers and their transient state for the toolbar buttons. */
29
+ export interface ResultsToolbarActions {
30
+ displayLimit: number;
31
+ onDisplayLimitChange?: (limit: number) => void;
32
+ isAIOpen?: boolean;
33
+ onAIToggle?: () => void;
34
+ onColorPaletteChange?: (palette: string) => void;
35
+ currentPaletteName?: string;
36
+ onShareClick?: () => void;
37
+ shareButtonState: string;
38
+ canShare: boolean;
39
+ onRefreshClick?: (opts: {
40
+ bustCache: boolean;
41
+ }) => void;
42
+ canRefresh: boolean;
43
+ isRefreshing: boolean;
44
+ showCacheBustIndicator: boolean;
45
+ setIsHoveringRefresh: (v: boolean) => void;
46
+ onClearClick?: () => void;
47
+ canClear: boolean;
48
+ setIsClearConfirmOpen: (v: boolean) => void;
49
+ setShowDebug: (v: boolean) => void;
50
+ setShowSchema: (v: boolean) => void;
51
+ }
52
+ /** View / visibility flags deciding which controls render. */
53
+ export interface ResultsDisplayFlags {
54
+ activeView: string;
55
+ showDebug: boolean;
56
+ showSchema: boolean;
57
+ enableAI?: boolean;
58
+ isFunnelMode: boolean;
59
+ showSchemaDiagram: boolean;
60
+ }
61
+ export interface ResultsHeaderProps {
62
+ summary: ResultsSummary;
63
+ toolbar: ResultsToolbarActions;
64
+ display: ResultsDisplayFlags;
65
+ }
66
+ export default function ResultsHeader({ summary, toolbar, display }: ResultsHeaderProps): import("react").JSX.Element;
67
+ export {};
@@ -0,0 +1,13 @@
1
+ /**
2
+ * BreakdownComparisonToggle Component
3
+ *
4
+ * "vs prior" period-comparison toggle for time-dimension breakdowns.
5
+ * Extracted from BreakdownItemCard to keep its render body flat.
6
+ */
7
+ interface BreakdownComparisonToggleProps {
8
+ enableComparison?: boolean;
9
+ comparisonDisabled?: boolean;
10
+ onComparisonToggle: () => void;
11
+ }
12
+ declare const BreakdownComparisonToggle: import('react').NamedExoticComponent<BreakdownComparisonToggleProps>;
13
+ export default BreakdownComparisonToggle;
@@ -0,0 +1,26 @@
1
+ import { DragEvent } from 'react';
2
+ import { MetaField } from '../../shared/types';
3
+ import { BreakdownItem } from './types';
4
+ interface BreakdownRowProps {
5
+ breakdown: BreakdownItem;
6
+ fieldMeta: MetaField | null;
7
+ sortDirection: 'asc' | 'desc' | null;
8
+ sortPriority: number | undefined;
9
+ index: number;
10
+ transform: string;
11
+ showGapBefore: boolean;
12
+ isAnyDragging: boolean;
13
+ isDragging: boolean;
14
+ comparisonDisabled: boolean;
15
+ onRemove: (id: string) => void;
16
+ onGranularityChange: (id: string, granularity: string) => void;
17
+ onComparisonToggle?: (id: string) => void;
18
+ onOrderChange?: (field: string, direction: 'asc' | 'desc' | null) => void;
19
+ onReorder?: (fromIndex: number, toIndex: number) => void;
20
+ onItemDragOver: (e: DragEvent, index: number) => void;
21
+ onItemDrop: (e: DragEvent) => void;
22
+ onDragStart: (e: DragEvent, index: number) => void;
23
+ onDragEnd: () => void;
24
+ }
25
+ declare const BreakdownRow: import('react').NamedExoticComponent<BreakdownRowProps>;
26
+ export default BreakdownRow;
@@ -0,0 +1,10 @@
1
+ import { ChartDisplayConfig, ColorPalette } from '../../types';
2
+ import { DisplayOptionConfig } from '../../charts/chartConfigs';
3
+ interface DisplayOptionControlProps {
4
+ option: DisplayOptionConfig;
5
+ displayConfig: ChartDisplayConfig;
6
+ colorPalette?: ColorPalette;
7
+ onDisplayConfigChange: (config: ChartDisplayConfig) => void;
8
+ }
9
+ export default function DisplayOptionControl({ option, displayConfig, colorPalette, onDisplayConfigChange, }: DisplayOptionControlProps): import("react").JSX.Element | null;
10
+ export {};
@@ -0,0 +1,22 @@
1
+ import { ReactNode } from 'react';
2
+ import { ExplainResult } from '../../types';
3
+ export declare function SqlBlock({ sql, sqlLoading, sqlError, sqlPlaceholder, formattedSql, title, height, headerRight, }: {
4
+ sql: {
5
+ sql: string;
6
+ params?: unknown[];
7
+ } | null | undefined;
8
+ sqlLoading: boolean;
9
+ sqlError?: Error | null;
10
+ sqlPlaceholder: string;
11
+ formattedSql: string;
12
+ title: string;
13
+ height: string;
14
+ headerRight: ReactNode;
15
+ }): import("react").JSX.Element;
16
+ export declare function ExplainResults({ explainLoading, explainError, explainResult, useAnalyze, aiButton, }: {
17
+ explainLoading: boolean;
18
+ explainError?: Error | null;
19
+ explainResult: ExplainResult | null;
20
+ useAnalyze: boolean;
21
+ aiButton: ReactNode;
22
+ }): import("react").JSX.Element | null;
@@ -0,0 +1,16 @@
1
+ import { FieldOption } from './types';
2
+ import { MetaResponse } from '../../shared/types';
3
+ interface FieldSearchResultsProps {
4
+ mode: 'metrics' | 'breakdown' | 'filter' | 'dimensionFilter';
5
+ schema: MetaResponse | null;
6
+ searchTerm: string;
7
+ recentOptions: FieldOption[];
8
+ groupedFields: Map<string, FieldOption[]>;
9
+ filteredCount: number;
10
+ selectedFields: string[];
11
+ focusedIndex: number;
12
+ onSelectField: (field: FieldOption, fieldIndex: number, shiftKey: boolean) => void;
13
+ onFocusField: (field: FieldOption, index: number) => void;
14
+ }
15
+ declare const FieldSearchResults: import('react').NamedExoticComponent<FieldSearchResultsProps>;
16
+ export default FieldSearchResults;
@@ -0,0 +1,63 @@
1
+ import { ChangeEvent, MouseEvent, KeyboardEvent, RefObject } from 'react';
2
+ import { SimpleFilter } from '../../types';
3
+ import { DateRangeType } from '../../shared/types';
4
+ type OperatorMeta = {
5
+ requiresValues?: boolean;
6
+ valueType?: string;
7
+ supportsMultipleValues?: boolean;
8
+ } | undefined;
9
+ /** Which control to render: the filter being edited and its operator metadata. */
10
+ export interface FilterFieldContext {
11
+ filter: SimpleFilter;
12
+ operatorMeta: OperatorMeta;
13
+ shouldShowDateRange: boolean;
14
+ shouldShowComboBox: boolean;
15
+ }
16
+ /** State + handlers for the date-range selector (inDateRange on time fields). */
17
+ export interface DateRangeGroup {
18
+ rangeType: DateRangeType;
19
+ numberValue: number;
20
+ label: string;
21
+ isOpen: boolean;
22
+ onToggle: (open: boolean) => void;
23
+ onRangeTypeChange: (rangeType: DateRangeType) => void;
24
+ onNumberValueChange: (value: number) => void;
25
+ onCustomStartDate: (e: ChangeEvent<HTMLInputElement>) => void;
26
+ onCustomEndDate: (e: ChangeEvent<HTMLInputElement>) => void;
27
+ /** Close sibling dropdowns when this one opens. */
28
+ onOpen: () => void;
29
+ }
30
+ /** Async distinct-value combo-box state + handlers (equals/in on dimensions). */
31
+ export interface ComboBoxGroup {
32
+ isOpen: boolean;
33
+ options: unknown[];
34
+ loading: boolean;
35
+ error: unknown;
36
+ searchText: string;
37
+ highlightedIndex: number;
38
+ listRef: RefObject<HTMLDivElement>;
39
+ onSearchTextChange: (text: string) => void;
40
+ onHighlightedIndexChange: (index: number) => void;
41
+ onSelect: (value: unknown, event?: MouseEvent | {
42
+ shiftKey: boolean;
43
+ }) => void;
44
+ onRemove: (value: unknown) => void;
45
+ onKeyDown: (e: KeyboardEvent) => void;
46
+ /** Open the combo-box, closing sibling dropdowns. */
47
+ onOpen: () => void;
48
+ }
49
+ /** Handlers for the plain between/date/number/text inputs. */
50
+ export interface SimpleInputHandlers {
51
+ onBetweenStart: (e: ChangeEvent<HTMLInputElement>) => void;
52
+ onBetweenEnd: (e: ChangeEvent<HTMLInputElement>) => void;
53
+ onDate: (e: ChangeEvent<HTMLInputElement>) => void;
54
+ onDirect: (e: ChangeEvent<HTMLInputElement>) => void;
55
+ }
56
+ export interface FilterValueInputProps {
57
+ field: FilterFieldContext;
58
+ dateRange: DateRangeGroup;
59
+ combo: ComboBoxGroup;
60
+ inputs: SimpleInputHandlers;
61
+ }
62
+ export default function FilterValueInput({ field, dateRange, combo, inputs }: FilterValueInputProps): import("react").JSX.Element;
63
+ export {};
@@ -0,0 +1,10 @@
1
+ import { ChartType } from '../../types';
2
+ interface FlowDepthControlsProps {
3
+ chartType: ChartType;
4
+ stepsBefore: number;
5
+ stepsAfter: number;
6
+ onStepsBeforeChange: (count: number) => void;
7
+ onStepsAfterChange: (count: number) => void;
8
+ }
9
+ declare const FlowDepthControls: import('react').NamedExoticComponent<FlowDepthControlsProps>;
10
+ export default FlowDepthControls;
@@ -0,0 +1,7 @@
1
+ import { ChartType } from '../../types';
2
+ interface FlowVisualizationPickerProps {
3
+ chartType: ChartType;
4
+ onChartTypeChange: (type: ChartType) => void;
5
+ }
6
+ declare const FlowVisualizationPicker: import('react').NamedExoticComponent<FlowVisualizationPickerProps>;
7
+ export default FlowVisualizationPicker;
@@ -0,0 +1,8 @@
1
+ import { ChartDisplayConfig } from '../../types';
2
+ interface LegacyBooleanOptionsProps {
3
+ displayOptions?: string[];
4
+ displayConfig: ChartDisplayConfig;
5
+ onDisplayConfigChange: (config: ChartDisplayConfig) => void;
6
+ }
7
+ declare const LegacyBooleanOptions: import('react').NamedExoticComponent<LegacyBooleanOptionsProps>;
8
+ export default LegacyBooleanOptions;
@@ -0,0 +1,23 @@
1
+ import { DragEvent } from 'react';
2
+ import { MetaField } from '../../shared/types';
3
+ import { MetricItem } from './types';
4
+ interface MetricRowProps {
5
+ metric: MetricItem;
6
+ fieldMeta: MetaField | null;
7
+ sortDirection: 'asc' | 'desc' | null;
8
+ sortPriority: number | undefined;
9
+ index: number;
10
+ transform: string;
11
+ showGapBefore: boolean;
12
+ isAnyDragging: boolean;
13
+ isDragging: boolean;
14
+ onRemove: (id: string) => void;
15
+ onOrderChange?: (field: string, direction: 'asc' | 'desc' | null) => void;
16
+ onReorder?: (fromIndex: number, toIndex: number) => void;
17
+ onItemDragOver: (e: DragEvent, index: number) => void;
18
+ onItemDrop: (e: DragEvent) => void;
19
+ onDragStart: (e: DragEvent, index: number) => void;
20
+ onDragEnd: () => void;
21
+ }
22
+ declare const MetricRow: import('react').NamedExoticComponent<MetricRowProps>;
23
+ export default MetricRow;
@@ -0,0 +1,13 @@
1
+ /**
2
+ * SortToggleButton Component
3
+ *
4
+ * Shared sort-direction toggle used by MetricItemCard and BreakdownItemCard.
5
+ * Renders the direction icon, optional sort-priority badge, and tooltip.
6
+ */
7
+ interface SortToggleButtonProps {
8
+ sortDirection?: 'asc' | 'desc' | null;
9
+ sortPriority?: number;
10
+ onToggleSort: () => void;
11
+ }
12
+ declare const SortToggleButton: import('react').NamedExoticComponent<SortToggleButtonProps>;
13
+ export default SortToggleButton;
@@ -0,0 +1,17 @@
1
+ /**
2
+ * StringArrayInput Component
3
+ *
4
+ * A textarea that edits an array of strings. Uses local state while editing and
5
+ * only commits to the parent on blur. Extracted from DisplayOptionControl so the
6
+ * structured-option renderers stay presentational. Behaviour is identical to the
7
+ * previous inline implementation.
8
+ */
9
+ interface StringArrayInputProps {
10
+ label: string;
11
+ value: string[];
12
+ onChange: (value: string[]) => void;
13
+ placeholder?: string;
14
+ description?: string;
15
+ }
16
+ export default function StringArrayInput({ label, value, onChange, placeholder, description, }: StringArrayInputProps): import("react").JSX.Element;
17
+ export {};
@@ -0,0 +1,30 @@
1
+ /**
2
+ * filterConfigModalUtils
3
+ *
4
+ * Pure helpers extracted from FilterConfigModal to keep the component's effects
5
+ * and render flat. Behaviour is identical to the previous inline logic.
6
+ *
7
+ * `deriveRangeFromDateRange` lives in the shared `dateRangeUtils` module and is
8
+ * re-exported here to keep existing import paths stable.
9
+ */
10
+ export type { DerivedRange } from '../shared/dateRangeUtils';
11
+ export { deriveRangeFromDateRange } from '../shared/dateRangeUtils';
12
+ /** Action the value-dropdown keyboard handler should apply, decided purely. */
13
+ export type ValueKeyAction = {
14
+ type: 'none';
15
+ } | {
16
+ type: 'highlight';
17
+ index: number;
18
+ } | {
19
+ type: 'select';
20
+ index: number;
21
+ } | {
22
+ type: 'close';
23
+ };
24
+ /**
25
+ * Pure keyboard-navigation logic for the filter value dropdown. Given the key
26
+ * and current state, returns the action to apply (no side effects), so the
27
+ * branchy decision can be unit-tested and the React handler stays a thin
28
+ * dispatcher.
29
+ */
30
+ export declare function resolveValueKeyboardAction(key: string, isOpen: boolean, length: number, highlightedIndex: number): ValueKeyAction;
@@ -0,0 +1,13 @@
1
+ import { Ref } from 'react';
2
+ import { StoreApi } from 'zustand';
3
+ import { AnalysisBuilderRef } from '../types';
4
+ import { AnalysisBuilderStore } from '../../../stores/analysisBuilderStore';
5
+ interface ImperativeHandleDeps {
6
+ getQueryConfig: AnalysisBuilderRef['getQueryConfig'];
7
+ getChartConfig: AnalysisBuilderRef['getChartConfig'];
8
+ getAnalysisType: AnalysisBuilderRef['getAnalysisType'];
9
+ clearQuery: AnalysisBuilderRef['clearQuery'];
10
+ storeApi: StoreApi<AnalysisBuilderStore>;
11
+ }
12
+ export declare function useAnalysisBuilderImperativeHandle(ref: Ref<AnalysisBuilderRef>, deps: ImperativeHandleDeps): void;
13
+ export {};
@@ -0,0 +1,25 @@
1
+ import { DragEvent } from 'react';
2
+ /**
3
+ * Calculate the vertical transform for an item while a drag is in progress.
4
+ * Pure helper extracted to keep the hook body flat.
5
+ */
6
+ export declare function computeItemTransform(itemIndex: number, draggedIndex: number | null, dropTargetIndex: number | null): string;
7
+ export interface DragReorderApi {
8
+ draggedIndex: number | null;
9
+ dropTargetIndex: number | null;
10
+ handleDragStart: (e: DragEvent, index: number) => void;
11
+ handleDragEnd: () => void;
12
+ handleItemDragOver: (e: DragEvent, itemIndex: number) => void;
13
+ handleItemDrop: (e: DragEvent) => void;
14
+ handleSectionDragLeave: (e: DragEvent) => void;
15
+ handleEndZoneDragOver: (e: DragEvent) => void;
16
+ getItemTransform: (itemIndex: number) => string;
17
+ shouldShowGapIndicator: (itemIndex: number) => boolean;
18
+ }
19
+ /**
20
+ * @param dragType Label written into the drag dataTransfer payload.
21
+ * @param getField Resolves the field name for a given index (for the payload).
22
+ * @param itemCount Current number of items (used for end-of-list drop zone).
23
+ * @param onReorder Optional reorder callback (fromIndex, toIndex).
24
+ */
25
+ export declare function useDragReorder(dragType: string, getField: (index: number) => string, itemCount: number, onReorder?: (fromIndex: number, toIndex: number) => void): DragReorderApi;
@@ -0,0 +1,11 @@
1
+ import { KeyboardEvent, RefObject } from 'react';
2
+ import { FieldOption } from '../types';
3
+ export interface FieldSearchKeyboardApi {
4
+ focusedField: FieldOption | null;
5
+ setFocusedField: (field: FieldOption | null) => void;
6
+ focusedIndex: number;
7
+ setFocusedIndex: (index: number) => void;
8
+ resultsContainerRef: RefObject<HTMLDivElement>;
9
+ handleKeyDown: (e: KeyboardEvent) => void;
10
+ }
11
+ export declare function useFieldSearchKeyboard(flatFieldsList: FieldOption[], onSelectField: (field: FieldOption, fieldIndex: number, shiftKey: boolean) => void, onClose: () => void): FieldSearchKeyboardApi;
@@ -0,0 +1,23 @@
1
+ import { ChartAxisConfig } from '../../../types';
2
+ interface DropZoneShape {
3
+ key: string;
4
+ maxItems?: number;
5
+ enableDualAxis?: boolean;
6
+ }
7
+ /**
8
+ * Compute the new config after dropping `field` onto `toAxis` (optionally moving
9
+ * it from `fromAxis`). Applies the default left/right yAxisAssignment for dual-axis
10
+ * drop zones.
11
+ */
12
+ export declare function applyAxisDrop(chartConfig: ChartAxisConfig, field: string, fromAxis: string, toAxis: string, dropZoneConfig: DropZoneShape | undefined): ChartAxisConfig;
13
+ /**
14
+ * Compute the new config after removing `field` from `fromAxis`, cleaning up any
15
+ * yAxisAssignment entry.
16
+ */
17
+ export declare function applyAxisRemove(chartConfig: ChartAxisConfig, field: string, fromAxis: string): ChartAxisConfig;
18
+ /**
19
+ * Compute the new config after reordering items within `axisKey`. Returns null
20
+ * when no reorder is applicable (non-array, single item, or no-op move).
21
+ */
22
+ export declare function applyAxisReorder(chartConfig: ChartAxisConfig, fromIndex: number, toIndex: number, axisKey: string): ChartAxisConfig | null;
23
+ export {};
@@ -0,0 +1,8 @@
1
+ import { CubeQuery } from '../../../types';
2
+ import { QueryAnalysis } from '../../../shared/types';
3
+ /**
4
+ * Generate markdown representation of query execution plan.
5
+ */
6
+ export declare function generateExecutionPlanMarkdown(analysis: QueryAnalysis, query: CubeQuery | null, sql?: {
7
+ sql: string;
8
+ } | null): string;
@@ -26,6 +26,11 @@ export declare function getFieldTitle(fieldName: string, schema: MetaResponse |
26
26
  export declare function getFieldType(field: MetaField): FieldType;
27
27
  /**
28
28
  * Convert schema to flat list of field options
29
+ *
30
+ * - 'metrics': measures only
31
+ * - 'breakdown' / 'dimensionFilter': dimensions only ('dimensionFilter' is used
32
+ * for funnel step filters where measures don't work)
33
+ * - 'filter': both measures and dimensions
29
34
  */
30
35
  export declare function schemaToFieldOptions(schema: MetaResponse | null, mode: 'metrics' | 'breakdown' | 'filter' | 'dimensionFilter'): FieldOption[];
31
36
  /**
@@ -0,0 +1,68 @@
1
+ /**
2
+ * resultsPanelDerive
3
+ *
4
+ * Small pure helpers for AnalysisResultsPanel derived values, extracted to keep
5
+ * the component body flat. Behaviour is identical to the previous inline logic.
6
+ */
7
+ export interface DebugDataEntry {
8
+ sql: unknown;
9
+ analysis: unknown;
10
+ mode: unknown;
11
+ queryType: unknown;
12
+ joinType: unknown;
13
+ cubesUsed: unknown[];
14
+ modeMetadata: unknown;
15
+ loading: boolean;
16
+ error: unknown;
17
+ }
18
+ /**
19
+ * Resolve the active debug entry, falling back to an empty placeholder.
20
+ * The fallback is cast to the element type so callers keep their precise typing.
21
+ */
22
+ export declare function resolveDebugData<T>(debugDataPerQuery: T[], activeDebugIndex: number): T;
23
+ interface ChartViewParams {
24
+ isCurrentChartRenderable: boolean;
25
+ isFlowMode: boolean;
26
+ isFunnelMode: boolean;
27
+ isRetentionMode: boolean;
28
+ }
29
+ /** Whether the chart view toggle should be enabled. */
30
+ export declare function isChartViewEnabled({ isCurrentChartRenderable, isFlowMode, isFunnelMode, isRetentionMode }: ChartViewParams): boolean;
31
+ /**
32
+ * Whether the panel has meaningful results to display, accounting for the
33
+ * different data shapes per analysis mode.
34
+ */
35
+ export declare function computeHasResults(executionResults: unknown[] | null | undefined, isFlowMode: boolean, isRetentionMode: boolean, retentionChartData: {
36
+ rows: unknown[];
37
+ } | null | undefined): boolean;
38
+ interface TableSelectionParams<Q, R> {
39
+ tableIndex: number | undefined;
40
+ isMultiQuery: unknown;
41
+ allQueries: Q[] | null | undefined;
42
+ perQueryResults: R[] | null | undefined;
43
+ executionResults: R | null | undefined;
44
+ combinedQueryForChart: Q | undefined;
45
+ }
46
+ /**
47
+ * Resolve the data + query object for a table view given the requested index.
48
+ * tableIndex: undefined = single query, -1 = merged view, 0+ = per-query view.
49
+ */
50
+ export declare function selectTableData<Q, R>({ tableIndex, isMultiQuery, allQueries, perQueryResults, executionResults, combinedQueryForChart }: TableSelectionParams<Q, R>): {
51
+ tableData: R | null;
52
+ tableQuery: Q | undefined;
53
+ };
54
+ /**
55
+ * Resolve the display source/target event names for a flow Sankey link, handling
56
+ * both transformed (`source`/`target`) and raw (`source_id`/`target_id`) shapes.
57
+ */
58
+ export declare function flowLinkNames(link: Record<string, unknown>): {
59
+ sourceName: string;
60
+ targetName: string;
61
+ };
62
+ /**
63
+ * Multi-query mode (but NOT funnel mode — funnels always show unified results).
64
+ */
65
+ export declare function computeIsMultiQuery(isFunnelMode: boolean, queryCount: number, perQueryResults: unknown[] | null | undefined): boolean;
66
+ /** Title/tooltip for the chart view toggle button. */
67
+ export declare function chartViewButtonTitle(chartViewEnabled: boolean, chartViewUnavailableReason: string | undefined, t: (key: string) => string): string;
68
+ export {};
@@ -0,0 +1,68 @@
1
+ import { AnalysisConfig } from '../../../types/analysisConfig';
2
+ /**
3
+ * Extract funnel initial state from a shared AnalysisConfig.
4
+ *
5
+ * Phase 3: funnel config is in query.funnel, chart config is in charts.funnel.
6
+ */
7
+ export declare function extractFunnelStateFromShare(sharedState: AnalysisConfig | null): {
8
+ funnelCube: null;
9
+ funnelSteps: never[];
10
+ funnelTimeDimension: string | null;
11
+ funnelBindingKey: {
12
+ dimension: string | {
13
+ cube: string;
14
+ dimension: string;
15
+ }[];
16
+ } | null;
17
+ funnelChartType: import('../../..').ChartType;
18
+ funnelChartConfig: import('../../..').ChartAxisConfig;
19
+ funnelDisplayConfig: import('../../..').ChartDisplayConfig;
20
+ } | undefined;
21
+ /**
22
+ * Extract flow initial state from a shared AnalysisConfig.
23
+ */
24
+ export declare function extractFlowStateFromShare(sharedState: AnalysisConfig | null): {
25
+ flowCube: null;
26
+ flowBindingKey: {
27
+ dimension: string;
28
+ } | null;
29
+ flowTimeDimension: string | null;
30
+ startingStep: {
31
+ name: string;
32
+ filters: import('../../../types').Filter[];
33
+ };
34
+ stepsBefore: number;
35
+ stepsAfter: number;
36
+ eventDimension: string | null;
37
+ flowChartType: import('../../..').ChartType;
38
+ flowChartConfig: import('../../..').ChartAxisConfig;
39
+ flowDisplayConfig: import('../../..').ChartDisplayConfig;
40
+ } | undefined;
41
+ /**
42
+ * Extract retention initial state from a shared AnalysisConfig.
43
+ */
44
+ export declare function extractRetentionStateFromShare(sharedState: AnalysisConfig | null): {
45
+ retentionCube: null;
46
+ retentionBindingKey: {
47
+ dimension: string;
48
+ } | {
49
+ dimension: {
50
+ cube: string;
51
+ dimension: string;
52
+ }[];
53
+ } | null;
54
+ retentionTimeDimension: string | null;
55
+ retentionDateRange: import('../../../types/retention').DateRange;
56
+ retentionCohortFilters: import('../../../types').Filter[];
57
+ retentionActivityFilters: import('../../../types').Filter[];
58
+ retentionBreakdowns: {
59
+ field: string;
60
+ label: string;
61
+ }[];
62
+ retentionViewGranularity: import('../../../types/retention').RetentionGranularity;
63
+ retentionPeriods: number;
64
+ retentionType: import('../../../types/retention').RetentionType;
65
+ retentionChartType: import('../../..').ChartType;
66
+ retentionChartConfig: import('../../..').ChartAxisConfig;
67
+ retentionDisplayConfig: import('../../..').ChartDisplayConfig;
68
+ } | undefined;
@@ -0,0 +1,7 @@
1
+ /**
2
+ * Sort direction cycle helper shared by query section components.
3
+ */
4
+ /**
5
+ * Get next sort direction in the cycle: null -> asc -> desc -> null
6
+ */
7
+ export declare function getNextSortDirection(current: 'asc' | 'desc' | null): 'asc' | 'desc' | null;