drizzle-cube 0.6.6 → 0.7.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 (538) hide show
  1. package/README.md +231 -106
  2. package/dist/adapters/ActivityGridChart.config-DaYILvFZ.cjs +1 -0
  3. package/dist/adapters/ActivityGridChart.config-_SyTBEyR.js +2 -0
  4. package/dist/adapters/AreaChart.config-BKh6fY1_.cjs +1 -0
  5. package/dist/adapters/AreaChart.config-CJoxLP3Y.js +2 -0
  6. package/dist/adapters/BarChart.config-Bm1bfRbI.cjs +1 -0
  7. package/dist/adapters/BarChart.config-CGu2Bqrx.js +2 -0
  8. package/dist/adapters/BoxPlotChart.config-B7M9CQaE.js +2 -0
  9. package/dist/adapters/BoxPlotChart.config-CXQel8Hk.cjs +1 -0
  10. package/dist/adapters/BubbleChart.config-BJ36IuVS.cjs +1 -0
  11. package/dist/adapters/BubbleChart.config-CWoXeLdm.js +2 -0
  12. package/dist/adapters/CandlestickChart.config-CGMLZVIy.cjs +1 -0
  13. package/dist/adapters/CandlestickChart.config-CzOcfF1e.js +2 -0
  14. package/dist/adapters/DataTable.config-CdAzueTs.cjs +1 -0
  15. package/dist/adapters/DataTable.config-D_KmPyxV.js +2 -0
  16. package/dist/adapters/FunnelChart.config-D1QAUuYl.cjs +1 -0
  17. package/dist/adapters/FunnelChart.config-DCRHQoFc.js +2 -0
  18. package/dist/adapters/GaugeChart.config-DAybRXP3.js +2 -0
  19. package/dist/adapters/GaugeChart.config-WUPfyLP-.cjs +1 -0
  20. package/dist/adapters/HeatMapChart.config-CziltPnC.cjs +1 -0
  21. package/dist/adapters/HeatMapChart.config-DHpXNONW.js +2 -0
  22. package/dist/adapters/KpiDelta.config-Bw5o0ocY.js +2 -0
  23. package/dist/adapters/KpiDelta.config-CdAmE1pw.cjs +1 -0
  24. package/dist/adapters/KpiNumber.config-CQ_wq2gx.js +2 -0
  25. package/dist/adapters/KpiNumber.config-wxN8x4DC.cjs +1 -0
  26. package/dist/adapters/KpiText.config-DIRIC97F.cjs +1 -0
  27. package/dist/adapters/KpiText.config-eODcP6Hn.js +2 -0
  28. package/dist/adapters/LineChart.config-32-9zA2V.js +2 -0
  29. package/dist/adapters/LineChart.config-BukeFp6z.cjs +1 -0
  30. package/dist/adapters/MarkdownChart.config-BVsR5LDy.js +2 -0
  31. package/dist/adapters/MarkdownChart.config-j4veYjcZ.cjs +1 -0
  32. package/dist/adapters/MeasureProfileChart.config-BRDYx1hw.js +2 -0
  33. package/dist/adapters/MeasureProfileChart.config-CIosBxco.cjs +1 -0
  34. package/dist/adapters/PieChart.config-Bj8KiA0n.cjs +1 -0
  35. package/dist/adapters/PieChart.config-DgAj3y-I.js +2 -0
  36. package/dist/adapters/ProportionBarChart.config-BfFOppHY.js +2 -0
  37. package/dist/adapters/ProportionBarChart.config-c8GGE1aK.cjs +1 -0
  38. package/dist/adapters/RadarChart.config-D7iHY1v9.js +2 -0
  39. package/dist/adapters/RadarChart.config-ghlANG2-.cjs +1 -0
  40. package/dist/adapters/RadialBarChart.config-CsXIz-0v.js +2 -0
  41. package/dist/adapters/RadialBarChart.config-Dsvu2CPV.cjs +1 -0
  42. package/dist/adapters/RetentionCombinedChart.config-CdT1kXC7.js +2 -0
  43. package/dist/adapters/RetentionCombinedChart.config-sDjFKH9K.cjs +1 -0
  44. package/dist/adapters/RetentionHeatmap.config-CvKBvQmu.cjs +1 -0
  45. package/dist/adapters/RetentionHeatmap.config-DbM3ICwc.js +2 -0
  46. package/dist/adapters/SankeyChart.config-BNBcIHaD.js +2 -0
  47. package/dist/adapters/SankeyChart.config-DZscz3kh.cjs +1 -0
  48. package/dist/adapters/ScatterChart.config-BNYIddyM.cjs +1 -0
  49. package/dist/adapters/ScatterChart.config-CEhtoLWc.js +2 -0
  50. package/dist/adapters/SunburstChart.config-ClseCzji.cjs +1 -0
  51. package/dist/adapters/SunburstChart.config-nnphNoVO.js +2 -0
  52. package/dist/adapters/TreeMapChart.config-C8-75muA.js +2 -0
  53. package/dist/adapters/TreeMapChart.config-DoXeUg9Y.cjs +1 -0
  54. package/dist/adapters/WaterfallChart.config-BOF1qxY3.cjs +1 -0
  55. package/dist/adapters/WaterfallChart.config-uW5YyOji.js +2 -0
  56. package/dist/adapters/chartConfigHelpers-BZMu_1EP.cjs +1 -0
  57. package/dist/adapters/{chartConfigHelpers-CcvqrIWF.js → chartConfigHelpers-BsnbxA2c.js} +30 -1
  58. package/dist/adapters/compiler-DAyodAnH.cjs +166 -0
  59. package/dist/adapters/{compiler-ZruQ85ff.js → compiler-Dq04wAjm.js} +116 -60
  60. package/dist/adapters/core/index.cjs +1 -1
  61. package/dist/adapters/core/index.js +1 -1
  62. package/dist/adapters/{core-BMZhIzaI.js → core-BjxfG6Uf.js} +8 -8
  63. package/dist/adapters/core-zV2w0hO2.cjs +1 -0
  64. package/dist/adapters/{dist-CH3hwAUk.js → dist-ChBfLb7x.js} +7 -4
  65. package/dist/adapters/{dist-BOdf-GQO.cjs → dist-CohrBmKe.cjs} +2 -2
  66. package/dist/adapters/express/index.cjs +1 -1
  67. package/dist/adapters/express/index.js +5 -5
  68. package/dist/adapters/fastify/index.cjs +2 -2
  69. package/dist/adapters/fastify/index.js +10 -6
  70. package/dist/adapters/google-BhvizbFR.cjs +2 -0
  71. package/dist/adapters/{google-CvKM9yVM.js → google-eKAc20al.js} +3 -3
  72. package/dist/adapters/{handler-_PXp3G47.cjs → handler-C6Hj6_Yk.cjs} +9 -9
  73. package/dist/adapters/{handler-xR2P1EI4.js → handler-ox6qxLw5.js} +230 -152
  74. package/dist/adapters/hono/index.cjs +1 -1
  75. package/dist/adapters/hono/index.js +26 -18
  76. package/dist/adapters/mcp-tools.cjs +1 -1
  77. package/dist/adapters/mcp-tools.js +2 -2
  78. package/dist/adapters/mcp-transport-C_t_p0wU.cjs +40 -0
  79. package/dist/adapters/mcp-transport-DFH9e6de.js +603 -0
  80. package/dist/adapters/nextjs/index.cjs +1 -1
  81. package/dist/adapters/nextjs/index.js +14 -11
  82. package/dist/{server/openai-C3-mjSAc.cjs → adapters/openai-BffpdO4n.cjs} +1 -1
  83. package/dist/adapters/openai-C9LNhHfK.js +9295 -0
  84. package/dist/adapters/{openai-B6hWZk_r.js → openai-CmyXJWti.js} +18 -17
  85. package/dist/adapters/openai-DlT-0VRC.cjs +19 -0
  86. package/dist/adapters/utils-C5FLHK04.cjs +128 -0
  87. package/dist/adapters/{utils-U7gV5wQL.js → utils-tjiwXFnP.js} +69 -17
  88. package/dist/adapters/utils.cjs +1 -1
  89. package/dist/adapters/utils.js +1 -1
  90. package/dist/cjs/client/charts/chartConfigHelpers.d.ts +20 -0
  91. package/dist/cjs/client/components/AgenticNotebook/AgentChatPanel.d.ts +1 -1
  92. package/dist/cjs/client/components/AgenticNotebook/ChatInput.d.ts +1 -1
  93. package/dist/cjs/client/components/AgenticNotebook/ChatMessage.d.ts +1 -1
  94. package/dist/cjs/client/components/AgenticNotebook/NotebookCanvas.d.ts +2 -2
  95. package/dist/cjs/client/components/AgenticNotebook/NotebookMarkdownBlock.d.ts +1 -1
  96. package/dist/cjs/client/components/AgenticNotebook/NotebookPortletBlock.d.ts +1 -1
  97. package/dist/cjs/client/components/AgenticNotebook/index.d.ts +1 -1
  98. package/dist/cjs/client/components/AnalysisBuilder/AnalysisQueryPanel.d.ts +1 -1
  99. package/dist/cjs/client/components/AnalysisBuilder/AnalysisResultsPanel.d.ts +1 -1
  100. package/dist/cjs/client/components/AnalysisBuilder/AnalysisTypeSelector.d.ts +1 -1
  101. package/dist/cjs/client/components/AnalysisBuilder/BreakdownComparisonToggle.d.ts +1 -1
  102. package/dist/cjs/client/components/AnalysisBuilder/BreakdownItemCard.d.ts +1 -1
  103. package/dist/cjs/client/components/AnalysisBuilder/BreakdownRow.d.ts +1 -1
  104. package/dist/cjs/client/components/AnalysisBuilder/BreakdownSection.d.ts +1 -1
  105. package/dist/cjs/client/components/AnalysisBuilder/ExecutionPlanPanel.d.ts +1 -1
  106. package/dist/cjs/client/components/AnalysisBuilder/FieldSearchResults.d.ts +1 -1
  107. package/dist/cjs/client/components/AnalysisBuilder/FlowConfigPanel.d.ts +1 -1
  108. package/dist/cjs/client/components/AnalysisBuilder/FlowDepthControls.d.ts +1 -1
  109. package/dist/cjs/client/components/AnalysisBuilder/FlowModeContent.d.ts +1 -1
  110. package/dist/cjs/client/components/AnalysisBuilder/FlowVisualizationPicker.d.ts +1 -1
  111. package/dist/cjs/client/components/AnalysisBuilder/FunnelBindingKeySelector.d.ts +1 -1
  112. package/dist/cjs/client/components/AnalysisBuilder/FunnelConfigPanel.d.ts +1 -1
  113. package/dist/cjs/client/components/AnalysisBuilder/FunnelModeContent.d.ts +1 -1
  114. package/dist/cjs/client/components/AnalysisBuilder/FunnelStepCard.d.ts +1 -1
  115. package/dist/cjs/client/components/AnalysisBuilder/FunnelStepList.d.ts +1 -1
  116. package/dist/cjs/client/components/AnalysisBuilder/LegacyBooleanOptions.d.ts +1 -1
  117. package/dist/cjs/client/components/AnalysisBuilder/MetricItemCard.d.ts +1 -1
  118. package/dist/cjs/client/components/AnalysisBuilder/MetricRow.d.ts +1 -1
  119. package/dist/cjs/client/components/AnalysisBuilder/MetricsSection.d.ts +1 -1
  120. package/dist/cjs/client/components/AnalysisBuilder/RetentionConfigPanel.d.ts +2 -2
  121. package/dist/cjs/client/components/AnalysisBuilder/RetentionModeContent.d.ts +1 -1
  122. package/dist/cjs/client/components/AnalysisBuilder/SortToggleButton.d.ts +1 -1
  123. package/dist/cjs/client/components/DashboardPortletCard.d.ts +1 -1
  124. package/dist/cjs/client/components/DataBrowser/DataBrowserTable.d.ts +1 -1
  125. package/dist/cjs/client/components/PortletGroupCard.d.ts +18 -0
  126. package/dist/cjs/client/components/RowManagedLayout.d.ts +15 -3
  127. package/dist/cjs/client/components/analyticsPortlet/intrinsicChartHeight.d.ts +9 -0
  128. package/dist/cjs/client/components/charts/ActivityGridChart.d.ts +1 -1
  129. package/dist/cjs/client/components/charts/AngledXAxisTick.d.ts +5 -0
  130. package/dist/cjs/client/components/charts/AreaChart.d.ts +1 -1
  131. package/dist/cjs/client/components/charts/BarChart.d.ts +1 -1
  132. package/dist/cjs/client/components/charts/BoxPlotChart.d.ts +1 -1
  133. package/dist/cjs/client/components/charts/BubbleChart.d.ts +1 -1
  134. package/dist/cjs/client/components/charts/CandlestickChart.d.ts +1 -1
  135. package/dist/cjs/client/components/charts/ChartContainer.d.ts +7 -1
  136. package/dist/cjs/client/components/charts/ChartSummaryHeader.d.ts +31 -0
  137. package/dist/cjs/client/components/charts/DataTable.d.ts +1 -1
  138. package/dist/cjs/client/components/charts/FunnelChart.d.ts +1 -1
  139. package/dist/cjs/client/components/charts/GaugeChart.d.ts +1 -1
  140. package/dist/cjs/client/components/charts/HeatMapChart.d.ts +1 -1
  141. package/dist/cjs/client/components/charts/KpiCompactLayout.d.ts +31 -0
  142. package/dist/cjs/client/components/charts/KpiDelta.d.ts +1 -1
  143. package/dist/cjs/client/components/charts/KpiDelta.helpers.d.ts +2 -0
  144. package/dist/cjs/client/components/charts/KpiNumber.d.ts +1 -1
  145. package/dist/cjs/client/components/charts/KpiStates.d.ts +7 -2
  146. package/dist/cjs/client/components/charts/KpiText.d.ts +1 -1
  147. package/dist/cjs/client/components/charts/LineChart.d.ts +1 -1
  148. package/dist/cjs/client/components/charts/MarkdownChart.d.ts +1 -1
  149. package/dist/cjs/client/components/charts/MeasureProfileChart.d.ts +1 -1
  150. package/dist/cjs/client/components/charts/PieChart.d.ts +1 -1
  151. package/dist/cjs/client/components/charts/ProportionBarChart.config.d.ts +10 -0
  152. package/dist/cjs/client/components/charts/ProportionBarChart.d.ts +12 -0
  153. package/dist/cjs/client/components/charts/RadarChart.d.ts +1 -1
  154. package/dist/cjs/client/components/charts/RadialBarChart.d.ts +1 -1
  155. package/dist/cjs/client/components/charts/RetentionCombinedChart.d.ts +1 -1
  156. package/dist/cjs/client/components/charts/RetentionHeatmap.d.ts +1 -1
  157. package/dist/cjs/client/components/charts/SankeyChart.d.ts +1 -1
  158. package/dist/cjs/client/components/charts/ScatterChart.d.ts +1 -1
  159. package/dist/cjs/client/components/charts/SunburstChart.d.ts +1 -1
  160. package/dist/cjs/client/components/charts/TreeMapChart.d.ts +1 -1
  161. package/dist/cjs/client/components/charts/WaterfallChart.d.ts +1 -1
  162. package/dist/cjs/client/components/charts/cartesianChartHelpers.d.ts +62 -0
  163. package/dist/cjs/client/components/charts/chartScaffolding.d.ts +29 -0
  164. package/dist/cjs/client/components/dashboard/DashboardContext.d.ts +5 -1
  165. package/dist/cjs/client/components/dashboard/dashboardGridUtils.d.ts +2 -4
  166. package/dist/cjs/client/components/dashboardPortletCard/EditActionButtons.d.ts +34 -0
  167. package/dist/cjs/client/components/dashboardPortletCard/PortletCardHeader.d.ts +2 -12
  168. package/dist/cjs/client/components/dashboardPortletCard/PortletFloatingActions.d.ts +24 -0
  169. package/dist/cjs/client/components/dashboardPortletCard/cardStyles.d.ts +5 -0
  170. package/dist/cjs/client/components/dashboardPortletCard/propsEqual.d.ts +2 -0
  171. package/dist/cjs/client/components/mobileStackedLayout/memberDisplay.d.ts +21 -0
  172. package/dist/cjs/client/components.d.ts +1 -1
  173. package/dist/cjs/client/hooks/dashboard/groupGeometry.d.ts +23 -0
  174. package/dist/cjs/client/hooks/dashboard/groupUtils.d.ts +57 -0
  175. package/dist/cjs/client/hooks/dashboard/layoutUtils.d.ts +34 -3
  176. package/dist/cjs/client/hooks/dashboard/useDashboardController.d.ts +11 -3
  177. package/dist/cjs/client/hooks/dashboard/useRowLayoutEngine.d.ts +12 -2
  178. package/dist/cjs/client/hooks/useDashboardHook.d.ts +14 -1
  179. package/dist/cjs/client/icons/types.d.ts +1 -0
  180. package/dist/cjs/client/index.d.ts +1 -1
  181. package/dist/cjs/client/stores/dashboardStore.d.ts +11 -1
  182. package/dist/cjs/client/types.d.ts +37 -2
  183. package/dist/cli/index.cjs +6 -5
  184. package/dist/client/charts/chartConfigHelpers.d.ts +20 -0
  185. package/dist/client/charts.js +13 -13
  186. package/dist/client/chunks/DashboardEditModal-ByXLlXZD.js +11777 -0
  187. package/dist/client/chunks/DashboardEditModal-ByXLlXZD.js.map +1 -0
  188. package/dist/client/chunks/ProportionBarChart-lOeVz8ZC.js +109 -0
  189. package/dist/client/chunks/ProportionBarChart-lOeVz8ZC.js.map +1 -0
  190. package/dist/client/chunks/{RetentionCombinedChart-DY7wKLs5.js → RetentionCombinedChart-Mcm7zHFx.js} +8 -8
  191. package/dist/client/chunks/{RetentionCombinedChart-DY7wKLs5.js.map → RetentionCombinedChart-Mcm7zHFx.js.map} +1 -1
  192. package/dist/client/chunks/{RetentionHeatmap-iNCG-dLd.js → RetentionHeatmap-4VJx5KDM.js} +6 -6
  193. package/dist/client/chunks/{RetentionHeatmap-iNCG-dLd.js.map → RetentionHeatmap-4VJx5KDM.js.map} +1 -1
  194. package/dist/client/chunks/{analysis-builder-BDWychCW.js → analysis-builder-CWTJQQtL.js} +421 -413
  195. package/dist/client/chunks/analysis-builder-CWTJQQtL.js.map +1 -0
  196. package/dist/client/chunks/{analysis-builder-shared-DkL0e-wU.js → analysis-builder-shared-l-4WKVS1.js} +454 -452
  197. package/dist/client/chunks/analysis-builder-shared-l-4WKVS1.js.map +1 -0
  198. package/dist/client/chunks/{chart-activity-grid-DDqFVWoa.js → chart-activity-grid-DVOhLgxv.js} +61 -6
  199. package/dist/client/chunks/{chart-activity-grid-DDqFVWoa.js.map → chart-activity-grid-DVOhLgxv.js.map} +1 -1
  200. package/dist/client/chunks/chart-area-C-5ATxvi.js +963 -0
  201. package/dist/client/chunks/chart-area-C-5ATxvi.js.map +1 -0
  202. package/dist/client/chunks/{chart-bar-DAO3PPcE.js → chart-bar-CPiLaXHP.js} +71 -64
  203. package/dist/client/chunks/chart-bar-CPiLaXHP.js.map +1 -0
  204. package/dist/client/chunks/{chart-box-plot-CUpFyQQk.js → chart-box-plot-Bae5O9xC.js} +3 -3
  205. package/dist/client/chunks/{chart-box-plot-CUpFyQQk.js.map → chart-box-plot-Bae5O9xC.js.map} +1 -1
  206. package/dist/client/chunks/{chart-bubble-DvP_6_n9.js → chart-bubble-BFN5WIpf.js} +5 -5
  207. package/dist/client/chunks/{chart-bubble-DvP_6_n9.js.map → chart-bubble-BFN5WIpf.js.map} +1 -1
  208. package/dist/client/chunks/{chart-candlestick-Dx8ZCMzl.js → chart-candlestick-PBQKp_z7.js} +3 -3
  209. package/dist/client/chunks/{chart-candlestick-Dx8ZCMzl.js.map → chart-candlestick-PBQKp_z7.js.map} +1 -1
  210. package/dist/client/chunks/{chart-config-activity-grid-BU_bkvER.js → chart-config-activity-grid-C4vXGQNu.js} +2 -2
  211. package/dist/client/chunks/{chart-config-activity-grid-BU_bkvER.js.map → chart-config-activity-grid-C4vXGQNu.js.map} +1 -1
  212. package/dist/client/chunks/{chart-config-area-DxwIZ4Uf.js → chart-config-area-DsrZCIwF.js} +35 -4
  213. package/dist/client/chunks/chart-config-area-DsrZCIwF.js.map +1 -0
  214. package/dist/client/chunks/{chart-config-bar-Cc8GY9aQ.js → chart-config-bar-BixSs43E.js} +7 -7
  215. package/dist/client/chunks/{chart-config-bar-Cc8GY9aQ.js.map → chart-config-bar-BixSs43E.js.map} +1 -1
  216. package/dist/client/chunks/{chart-config-box-plot-Bs8ovYvV.js → chart-config-box-plot-DMuJZqkr.js} +2 -2
  217. package/dist/client/chunks/{chart-config-box-plot-Bs8ovYvV.js.map → chart-config-box-plot-DMuJZqkr.js.map} +1 -1
  218. package/dist/client/chunks/{chart-config-bubble-BfgY7pt8.js → chart-config-bubble-1IyZinH0.js} +2 -2
  219. package/dist/client/chunks/{chart-config-bubble-BfgY7pt8.js.map → chart-config-bubble-1IyZinH0.js.map} +1 -1
  220. package/dist/client/chunks/{chart-config-candlestick-jaeNNEtC.js → chart-config-candlestick-QwQwJB_-.js} +2 -2
  221. package/dist/client/chunks/{chart-config-candlestick-jaeNNEtC.js.map → chart-config-candlestick-QwQwJB_-.js.map} +1 -1
  222. package/dist/client/chunks/{chart-config-data-table-CRk0C0rW.js → chart-config-data-table-CrGyS7aJ.js} +2 -2
  223. package/dist/client/chunks/{chart-config-data-table-CRk0C0rW.js.map → chart-config-data-table-CrGyS7aJ.js.map} +1 -1
  224. package/dist/client/chunks/{chart-config-funnel-boT_LNfl.js → chart-config-funnel-DMLLKtPF.js} +2 -2
  225. package/dist/client/chunks/{chart-config-funnel-boT_LNfl.js.map → chart-config-funnel-DMLLKtPF.js.map} +1 -1
  226. package/dist/client/chunks/{chart-config-gauge-C5uJEr97.js → chart-config-gauge-DNafFwfS.js} +2 -2
  227. package/dist/client/chunks/{chart-config-gauge-C5uJEr97.js.map → chart-config-gauge-DNafFwfS.js.map} +1 -1
  228. package/dist/client/chunks/{chart-config-heat-map-CCarP44-.js → chart-config-heat-map-CJF65SyL.js} +2 -2
  229. package/dist/client/chunks/{chart-config-heat-map-CCarP44-.js.map → chart-config-heat-map-CJF65SyL.js.map} +1 -1
  230. package/dist/client/chunks/{chart-config-kpi-delta-DYopvwyG.js → chart-config-kpi-delta-Cl7k6jTj.js} +13 -4
  231. package/dist/client/chunks/chart-config-kpi-delta-Cl7k6jTj.js.map +1 -0
  232. package/dist/client/chunks/{chart-config-kpi-number-BhMdoArB.js → chart-config-kpi-number-DCcnANWC.js} +6 -4
  233. package/dist/client/chunks/chart-config-kpi-number-DCcnANWC.js.map +1 -0
  234. package/dist/client/chunks/{chart-config-kpi-text-DE6Zdi53.js → chart-config-kpi-text-DnnxvOSA.js} +2 -2
  235. package/dist/client/chunks/{chart-config-kpi-text-DE6Zdi53.js.map → chart-config-kpi-text-DnnxvOSA.js.map} +1 -1
  236. package/dist/client/chunks/{chart-config-line-CBfM0Rds.js → chart-config-line-CBF9Px9b.js} +9 -7
  237. package/dist/client/chunks/chart-config-line-CBF9Px9b.js.map +1 -0
  238. package/dist/client/chunks/{chart-config-markdown-BCDyBI8K.js → chart-config-markdown-C5kBQOjP.js} +2 -2
  239. package/dist/client/chunks/{chart-config-markdown-BCDyBI8K.js.map → chart-config-markdown-C5kBQOjP.js.map} +1 -1
  240. package/dist/client/chunks/{chart-config-measure-profile-BgQIH1u2.js → chart-config-measure-profile-CRSRIpKh.js} +2 -2
  241. package/dist/client/chunks/{chart-config-measure-profile-BgQIH1u2.js.map → chart-config-measure-profile-CRSRIpKh.js.map} +1 -1
  242. package/dist/client/chunks/{chart-config-pie-ChfFz6DV.js → chart-config-pie-DZLa6Eqm.js} +3 -3
  243. package/dist/client/chunks/{chart-config-pie-ChfFz6DV.js.map → chart-config-pie-DZLa6Eqm.js.map} +1 -1
  244. package/dist/client/chunks/{chart-config-radar-BlAIGnww.js → chart-config-radar-DR6vHHyd.js} +3 -3
  245. package/dist/client/chunks/{chart-config-radar-BlAIGnww.js.map → chart-config-radar-DR6vHHyd.js.map} +1 -1
  246. package/dist/client/chunks/{chart-config-radial-bar-VFerwbCO.js → chart-config-radial-bar-DVFou4fB.js} +3 -3
  247. package/dist/client/chunks/{chart-config-radial-bar-VFerwbCO.js.map → chart-config-radial-bar-DVFou4fB.js.map} +1 -1
  248. package/dist/client/chunks/{chart-config-sankey-BhrDxIgj.js → chart-config-sankey-De8E0C1A.js} +2 -2
  249. package/dist/client/chunks/{chart-config-sankey-BhrDxIgj.js.map → chart-config-sankey-De8E0C1A.js.map} +1 -1
  250. package/dist/client/chunks/{chart-config-scatter-q_olh54e.js → chart-config-scatter-CWA89oX4.js} +2 -2
  251. package/dist/client/chunks/{chart-config-scatter-q_olh54e.js.map → chart-config-scatter-CWA89oX4.js.map} +1 -1
  252. package/dist/client/chunks/{chart-config-sunburst-BOmkOnKn.js → chart-config-sunburst-B4NUYHMH.js} +2 -2
  253. package/dist/client/chunks/{chart-config-sunburst-BOmkOnKn.js.map → chart-config-sunburst-B4NUYHMH.js.map} +1 -1
  254. package/dist/client/chunks/{chart-config-tree-map-BjX88YBY.js → chart-config-tree-map-Uhise6Bx.js} +3 -3
  255. package/dist/client/chunks/{chart-config-tree-map-BjX88YBY.js.map → chart-config-tree-map-Uhise6Bx.js.map} +1 -1
  256. package/dist/client/chunks/{chart-config-waterfall-QsWXVSoF.js → chart-config-waterfall-DlQb_PLh.js} +2 -2
  257. package/dist/client/chunks/{chart-config-waterfall-QsWXVSoF.js.map → chart-config-waterfall-DlQb_PLh.js.map} +1 -1
  258. package/dist/client/chunks/{chart-data-table-BP6DMdom.js → chart-data-table-SNSqZj9B.js} +1072 -1034
  259. package/dist/client/chunks/chart-data-table-SNSqZj9B.js.map +1 -0
  260. package/dist/client/chunks/{chart-funnel-xeVGBy-p.js → chart-funnel-CkHSXp6h.js} +3 -3
  261. package/dist/client/chunks/{chart-funnel-xeVGBy-p.js.map → chart-funnel-CkHSXp6h.js.map} +1 -1
  262. package/dist/client/chunks/{chart-gauge-DXQ4r3cb.js → chart-gauge-DHIGq3TH.js} +62 -62
  263. package/dist/client/chunks/{chart-gauge-DXQ4r3cb.js.map → chart-gauge-DHIGq3TH.js.map} +1 -1
  264. package/dist/client/chunks/{chart-heat-map-Pnk6rhqQ.js → chart-heat-map-Bb8L1XQr.js} +4 -4
  265. package/dist/client/chunks/{chart-heat-map-Pnk6rhqQ.js.map → chart-heat-map-Bb8L1XQr.js.map} +1 -1
  266. package/dist/client/chunks/{chart-kpi-delta-nXQnRRBr.js → chart-kpi-delta-BJCOXE-F.js} +122 -48
  267. package/dist/client/chunks/chart-kpi-delta-BJCOXE-F.js.map +1 -0
  268. package/dist/client/chunks/chart-kpi-number-Cdqgv20g.js +263 -0
  269. package/dist/client/chunks/chart-kpi-number-Cdqgv20g.js.map +1 -0
  270. package/dist/client/chunks/{chart-kpi-text-CurpqmaD.js → chart-kpi-text-B10ZHCsI.js} +4 -4
  271. package/dist/client/chunks/{chart-kpi-text-CurpqmaD.js.map → chart-kpi-text-B10ZHCsI.js.map} +1 -1
  272. package/dist/client/chunks/chart-line-CzvVL3Be.js +117 -0
  273. package/dist/client/chunks/chart-line-CzvVL3Be.js.map +1 -0
  274. package/dist/client/chunks/{chart-markdown-BVrqqygz.js → chart-markdown-C0xxBW81.js} +1550 -1349
  275. package/dist/client/chunks/chart-markdown-C0xxBW81.js.map +1 -0
  276. package/dist/client/chunks/{chart-measure-profile-k9_QDQbB.js → chart-measure-profile-BSUPFZCR.js} +6 -5
  277. package/dist/client/chunks/{chart-measure-profile-k9_QDQbB.js.map → chart-measure-profile-BSUPFZCR.js.map} +1 -1
  278. package/dist/client/chunks/{chart-pie-BDaaYt7a.js → chart-pie-CwRfwWWZ.js} +11 -11
  279. package/dist/client/chunks/{chart-pie-BDaaYt7a.js.map → chart-pie-CwRfwWWZ.js.map} +1 -1
  280. package/dist/client/chunks/{chart-radar-Bz07PIVe.js → chart-radar-Dfql2E7i.js} +10 -10
  281. package/dist/client/chunks/{chart-radar-Bz07PIVe.js.map → chart-radar-Dfql2E7i.js.map} +1 -1
  282. package/dist/client/chunks/{chart-radial-bar-DpyxKQMj.js → chart-radial-bar-oE9OZ1IX.js} +11 -11
  283. package/dist/client/chunks/{chart-radial-bar-DpyxKQMj.js.map → chart-radial-bar-oE9OZ1IX.js.map} +1 -1
  284. package/dist/client/chunks/{chart-sankey-BAeNbI-p.js → chart-sankey-tK7Oz1bC.js} +3 -3
  285. package/dist/client/chunks/{chart-sankey-BAeNbI-p.js.map → chart-sankey-tK7Oz1bC.js.map} +1 -1
  286. package/dist/client/chunks/{chart-scatter-CRhGLCcy.js → chart-scatter-BtLfAsZb.js} +10 -10
  287. package/dist/client/chunks/{chart-scatter-CRhGLCcy.js.map → chart-scatter-BtLfAsZb.js.map} +1 -1
  288. package/dist/client/chunks/{chart-sunburst-D3wV5OrK.js → chart-sunburst-B7ryWwQ1.js} +4 -4
  289. package/dist/client/chunks/{chart-sunburst-D3wV5OrK.js.map → chart-sunburst-B7ryWwQ1.js.map} +1 -1
  290. package/dist/client/chunks/{chart-tree-map-iI3ewOKY.js → chart-tree-map-DU5M3-qe.js} +31 -29
  291. package/dist/client/chunks/{chart-tree-map-iI3ewOKY.js.map → chart-tree-map-DU5M3-qe.js.map} +1 -1
  292. package/dist/client/chunks/{chart-waterfall-BrrYTZfs.js → chart-waterfall-CAwutpzd.js} +4 -4
  293. package/dist/client/chunks/{chart-waterfall-BrrYTZfs.js.map → chart-waterfall-CAwutpzd.js.map} +1 -1
  294. package/dist/client/chunks/{charts-core-Cs-UIsQa.js → charts-core-BxBB2zBE.js} +2 -2
  295. package/dist/client/chunks/{charts-core-Cs-UIsQa.js.map → charts-core-BxBB2zBE.js.map} +1 -1
  296. package/dist/client/chunks/charts-loader-0avVzeDd.js +85 -0
  297. package/dist/client/chunks/charts-loader-0avVzeDd.js.map +1 -0
  298. package/dist/client/chunks/{core-D7vPfUIe.js → core-BWRP9s8x.js} +9 -8
  299. package/dist/client/chunks/core-BWRP9s8x.js.map +1 -0
  300. package/dist/client/chunks/{dist-BwQr11Fz.js → dist-BPmPx7kz.js} +56 -51
  301. package/dist/client/chunks/{dist-BwQr11Fz.js.map → dist-BPmPx7kz.js.map} +1 -1
  302. package/dist/client/chunks/{exceljs.min-Dey-qIFL.js → exceljs.min-DWC_b8G9.js} +236 -202
  303. package/dist/client/chunks/{exceljs.min-Dey-qIFL.js.map → exceljs.min-DWC_b8G9.js.map} +1 -1
  304. package/dist/client/chunks/{javascript-DFnKaHmQ.js → javascript-D6aJaG8F.js} +7 -5
  305. package/dist/client/chunks/javascript-D6aJaG8F.js.map +1 -0
  306. package/dist/client/chunks/json-BrJhaXJI.js +44 -0
  307. package/dist/client/chunks/json-BrJhaXJI.js.map +1 -0
  308. package/dist/client/chunks/{nl-NL-2zTAWTej.js → nl-NL-BSMhprPr.js} +57 -2
  309. package/dist/client/chunks/{nl-NL-2zTAWTej.js.map → nl-NL-BSMhprPr.js.map} +1 -1
  310. package/dist/client/chunks/{rolldown-runtime-CWhphoD1.js → rolldown-runtime-DArdT4gl.js} +2 -2
  311. package/dist/client/chunks/{schema-visualization-BGT_cNon.js → schema-visualization-CGbnbzj_.js} +10 -10
  312. package/dist/client/chunks/schema-visualization-CGbnbzj_.js.map +1 -0
  313. package/dist/client/chunks/{syntaxHighlighting-Bq2Bj9Xt.js → syntaxHighlighting-Cm43as8i.js} +2 -2
  314. package/dist/client/chunks/{syntaxHighlighting-Bq2Bj9Xt.js.map → syntaxHighlighting-Cm43as8i.js.map} +1 -1
  315. package/dist/client/chunks/{useDebounce-7suCFq9v.js → useDirtyStateTracking-Dc-Si4db.js} +112 -50
  316. package/dist/client/chunks/useDirtyStateTracking-Dc-Si4db.js.map +1 -0
  317. package/dist/client/chunks/{useExplainAI-DueJjb0r.js → useExplainAI-DJbc7Lu4.js} +18 -18
  318. package/dist/client/chunks/{useExplainAI-DueJjb0r.js.map → useExplainAI-DJbc7Lu4.js.map} +1 -1
  319. package/dist/client/chunks/{utils-DjLiJKS_.js → utils-CToHkuhU.js} +2 -2
  320. package/dist/client/chunks/{utils-DjLiJKS_.js.map → utils-CToHkuhU.js.map} +1 -1
  321. package/dist/client/chunks/{vendor-ChnlgSP0.js → vendor-cTfe9Kho.js} +223 -167
  322. package/dist/client/chunks/vendor-cTfe9Kho.js.map +1 -0
  323. package/dist/client/components/AgenticNotebook/AgentChatPanel.d.ts +1 -1
  324. package/dist/client/components/AgenticNotebook/ChatInput.d.ts +1 -1
  325. package/dist/client/components/AgenticNotebook/ChatMessage.d.ts +1 -1
  326. package/dist/client/components/AgenticNotebook/NotebookCanvas.d.ts +2 -2
  327. package/dist/client/components/AgenticNotebook/NotebookMarkdownBlock.d.ts +1 -1
  328. package/dist/client/components/AgenticNotebook/NotebookPortletBlock.d.ts +1 -1
  329. package/dist/client/components/AgenticNotebook/index.d.ts +1 -1
  330. package/dist/client/components/AnalysisBuilder/AnalysisQueryPanel.d.ts +1 -1
  331. package/dist/client/components/AnalysisBuilder/AnalysisResultsPanel.d.ts +1 -1
  332. package/dist/client/components/AnalysisBuilder/AnalysisTypeSelector.d.ts +1 -1
  333. package/dist/client/components/AnalysisBuilder/BreakdownComparisonToggle.d.ts +1 -1
  334. package/dist/client/components/AnalysisBuilder/BreakdownItemCard.d.ts +1 -1
  335. package/dist/client/components/AnalysisBuilder/BreakdownRow.d.ts +1 -1
  336. package/dist/client/components/AnalysisBuilder/BreakdownSection.d.ts +1 -1
  337. package/dist/client/components/AnalysisBuilder/ExecutionPlanPanel.d.ts +1 -1
  338. package/dist/client/components/AnalysisBuilder/FieldSearchResults.d.ts +1 -1
  339. package/dist/client/components/AnalysisBuilder/FlowConfigPanel.d.ts +1 -1
  340. package/dist/client/components/AnalysisBuilder/FlowDepthControls.d.ts +1 -1
  341. package/dist/client/components/AnalysisBuilder/FlowModeContent.d.ts +1 -1
  342. package/dist/client/components/AnalysisBuilder/FlowVisualizationPicker.d.ts +1 -1
  343. package/dist/client/components/AnalysisBuilder/FunnelBindingKeySelector.d.ts +1 -1
  344. package/dist/client/components/AnalysisBuilder/FunnelConfigPanel.d.ts +1 -1
  345. package/dist/client/components/AnalysisBuilder/FunnelModeContent.d.ts +1 -1
  346. package/dist/client/components/AnalysisBuilder/FunnelStepCard.d.ts +1 -1
  347. package/dist/client/components/AnalysisBuilder/FunnelStepList.d.ts +1 -1
  348. package/dist/client/components/AnalysisBuilder/LegacyBooleanOptions.d.ts +1 -1
  349. package/dist/client/components/AnalysisBuilder/MetricItemCard.d.ts +1 -1
  350. package/dist/client/components/AnalysisBuilder/MetricRow.d.ts +1 -1
  351. package/dist/client/components/AnalysisBuilder/MetricsSection.d.ts +1 -1
  352. package/dist/client/components/AnalysisBuilder/RetentionConfigPanel.d.ts +2 -2
  353. package/dist/client/components/AnalysisBuilder/RetentionModeContent.d.ts +1 -1
  354. package/dist/client/components/AnalysisBuilder/SortToggleButton.d.ts +1 -1
  355. package/dist/client/components/DashboardPortletCard.d.ts +1 -1
  356. package/dist/client/components/DataBrowser/DataBrowserTable.d.ts +1 -1
  357. package/dist/client/components/PortletGroupCard.d.ts +18 -0
  358. package/dist/client/components/RowManagedLayout.d.ts +15 -3
  359. package/dist/client/components/analyticsPortlet/intrinsicChartHeight.d.ts +9 -0
  360. package/dist/client/components/charts/ActivityGridChart.d.ts +1 -1
  361. package/dist/client/components/charts/AngledXAxisTick.d.ts +5 -0
  362. package/dist/client/components/charts/AreaChart.d.ts +1 -1
  363. package/dist/client/components/charts/BarChart.d.ts +1 -1
  364. package/dist/client/components/charts/BoxPlotChart.d.ts +1 -1
  365. package/dist/client/components/charts/BubbleChart.d.ts +1 -1
  366. package/dist/client/components/charts/CandlestickChart.d.ts +1 -1
  367. package/dist/client/components/charts/ChartContainer.d.ts +7 -1
  368. package/dist/client/components/charts/ChartSummaryHeader.d.ts +31 -0
  369. package/dist/client/components/charts/DataTable.d.ts +1 -1
  370. package/dist/client/components/charts/FunnelChart.d.ts +1 -1
  371. package/dist/client/components/charts/GaugeChart.d.ts +1 -1
  372. package/dist/client/components/charts/HeatMapChart.d.ts +1 -1
  373. package/dist/client/components/charts/KpiCompactLayout.d.ts +31 -0
  374. package/dist/client/components/charts/KpiDelta.d.ts +1 -1
  375. package/dist/client/components/charts/KpiDelta.helpers.d.ts +2 -0
  376. package/dist/client/components/charts/KpiNumber.d.ts +1 -1
  377. package/dist/client/components/charts/KpiStates.d.ts +7 -2
  378. package/dist/client/components/charts/KpiText.d.ts +1 -1
  379. package/dist/client/components/charts/LineChart.d.ts +1 -1
  380. package/dist/client/components/charts/MarkdownChart.d.ts +1 -1
  381. package/dist/client/components/charts/MeasureProfileChart.d.ts +1 -1
  382. package/dist/client/components/charts/PieChart.d.ts +1 -1
  383. package/dist/client/components/charts/ProportionBarChart.config.d.ts +10 -0
  384. package/dist/client/components/charts/ProportionBarChart.d.ts +12 -0
  385. package/dist/client/components/charts/RadarChart.d.ts +1 -1
  386. package/dist/client/components/charts/RadialBarChart.d.ts +1 -1
  387. package/dist/client/components/charts/RetentionCombinedChart.d.ts +1 -1
  388. package/dist/client/components/charts/RetentionHeatmap.d.ts +1 -1
  389. package/dist/client/components/charts/SankeyChart.d.ts +1 -1
  390. package/dist/client/components/charts/ScatterChart.d.ts +1 -1
  391. package/dist/client/components/charts/SunburstChart.d.ts +1 -1
  392. package/dist/client/components/charts/TreeMapChart.d.ts +1 -1
  393. package/dist/client/components/charts/WaterfallChart.d.ts +1 -1
  394. package/dist/client/components/charts/cartesianChartHelpers.d.ts +62 -0
  395. package/dist/client/components/charts/chartScaffolding.d.ts +29 -0
  396. package/dist/client/components/dashboard/DashboardContext.d.ts +5 -1
  397. package/dist/client/components/dashboard/dashboardGridUtils.d.ts +2 -4
  398. package/dist/client/components/dashboardPortletCard/EditActionButtons.d.ts +34 -0
  399. package/dist/client/components/dashboardPortletCard/PortletCardHeader.d.ts +2 -12
  400. package/dist/client/components/dashboardPortletCard/PortletFloatingActions.d.ts +24 -0
  401. package/dist/client/components/dashboardPortletCard/cardStyles.d.ts +5 -0
  402. package/dist/client/components/dashboardPortletCard/propsEqual.d.ts +2 -0
  403. package/dist/client/components/mobileStackedLayout/memberDisplay.d.ts +21 -0
  404. package/dist/client/components.d.ts +1 -1
  405. package/dist/client/components.js +3 -4
  406. package/dist/client/hooks/dashboard/groupGeometry.d.ts +23 -0
  407. package/dist/client/hooks/dashboard/groupUtils.d.ts +57 -0
  408. package/dist/client/hooks/dashboard/layoutUtils.d.ts +34 -3
  409. package/dist/client/hooks/dashboard/useDashboardController.d.ts +11 -3
  410. package/dist/client/hooks/dashboard/useRowLayoutEngine.d.ts +12 -2
  411. package/dist/client/hooks/useDashboardHook.d.ts +14 -1
  412. package/dist/client/hooks.js +4 -5
  413. package/dist/client/icons/types.d.ts +1 -0
  414. package/dist/client/icons.js +1 -1
  415. package/dist/client/index.d.ts +1 -1
  416. package/dist/client/index.js +48 -49
  417. package/dist/client/index.js.map +1 -1
  418. package/dist/client/providers.js +1 -1
  419. package/dist/client/schema.js +1 -1
  420. package/dist/client/stores/dashboardStore.d.ts +11 -1
  421. package/dist/client/styles.css +1 -1
  422. package/dist/client/styles.d.css.ts +2 -0
  423. package/dist/client/types.d.ts +37 -2
  424. package/dist/client/utils.js +13 -9
  425. package/dist/client/utils.js.map +1 -1
  426. package/dist/client-bundle-stats.html +388 -33
  427. package/dist/mcp-app/mcp-app.html +152 -165
  428. package/dist/server/chartConfigHelpers-BZMu_1EP.cjs +1 -0
  429. package/dist/server/{chartConfigHelpers-CcvqrIWF.js → chartConfigHelpers-BsnbxA2c.js} +30 -1
  430. package/dist/server/{dist-CH3hwAUk.js → dist-ChBfLb7x.js} +7 -4
  431. package/dist/server/{dist-BOdf-GQO.cjs → dist-CohrBmKe.cjs} +2 -2
  432. package/dist/server/google-BhvizbFR.cjs +2 -0
  433. package/dist/server/{google-CvKM9yVM.js → google-eKAc20al.js} +3 -3
  434. package/dist/server/index.cjs +84 -84
  435. package/dist/server/index.js +2436 -2260
  436. package/dist/server/openai-CUf4vc3Q.js +9295 -0
  437. package/dist/server/openai-Cu4TXXjl.cjs +19 -0
  438. package/dist/server/{openai-B6hWZk_r.js → openai-Czk1BdHa.js} +18 -17
  439. package/dist/{adapters/openai-C3-mjSAc.cjs → server/openai-DBwI1OSu.cjs} +1 -1
  440. package/dist/server/rolldown-runtime-B0aSnxlc.js +20 -0
  441. package/dist/server/rolldown-runtime-DF3sbh8G.cjs +1 -0
  442. package/package.json +14 -10
  443. package/dist/adapters/ActivityGridChart.config-BK3hB9co.cjs +0 -1
  444. package/dist/adapters/ActivityGridChart.config-C-68HsAw.js +0 -2
  445. package/dist/adapters/AreaChart.config-5G7_E-7u.cjs +0 -1
  446. package/dist/adapters/AreaChart.config-C7S67Qt4.js +0 -2
  447. package/dist/adapters/BarChart.config-C6kG_uEt.cjs +0 -1
  448. package/dist/adapters/BarChart.config-DQcicZYy.js +0 -2
  449. package/dist/adapters/BoxPlotChart.config-B4xDTwop.js +0 -2
  450. package/dist/adapters/BoxPlotChart.config-DifAPvo0.cjs +0 -1
  451. package/dist/adapters/BubbleChart.config-BS2edxZ5.cjs +0 -1
  452. package/dist/adapters/BubbleChart.config-C5AYou9n.js +0 -2
  453. package/dist/adapters/CandlestickChart.config-Duknkqyk.js +0 -2
  454. package/dist/adapters/CandlestickChart.config-jk3ZXIAQ.cjs +0 -1
  455. package/dist/adapters/DataTable.config-BG_5hx63.cjs +0 -1
  456. package/dist/adapters/DataTable.config-Bkv6CmFa.js +0 -2
  457. package/dist/adapters/FunnelChart.config-Dvy0S17e.js +0 -2
  458. package/dist/adapters/FunnelChart.config-DzqGZgKz.cjs +0 -1
  459. package/dist/adapters/GaugeChart.config-DAWIU33N.js +0 -2
  460. package/dist/adapters/GaugeChart.config-DC0NW8XT.cjs +0 -1
  461. package/dist/adapters/HeatMapChart.config-BlQDS9nY.cjs +0 -1
  462. package/dist/adapters/HeatMapChart.config-DccGkzHI.js +0 -2
  463. package/dist/adapters/KpiDelta.config-DvpALT3Z.js +0 -2
  464. package/dist/adapters/KpiDelta.config-u2AlJkZ3.cjs +0 -1
  465. package/dist/adapters/KpiNumber.config-CF_LqRh-.cjs +0 -1
  466. package/dist/adapters/KpiNumber.config-lhEzZOFR.js +0 -2
  467. package/dist/adapters/KpiText.config-BCYGZdnx.js +0 -2
  468. package/dist/adapters/KpiText.config-FbnsbjdV.cjs +0 -1
  469. package/dist/adapters/LineChart.config-B7qWURRH.js +0 -2
  470. package/dist/adapters/LineChart.config-B9JKd48E.cjs +0 -1
  471. package/dist/adapters/MarkdownChart.config-BIS9PqHh.js +0 -2
  472. package/dist/adapters/MarkdownChart.config-BfM9NaQe.cjs +0 -1
  473. package/dist/adapters/MeasureProfileChart.config-1hh--3nI.js +0 -2
  474. package/dist/adapters/MeasureProfileChart.config-cmL8wp6a.cjs +0 -1
  475. package/dist/adapters/PieChart.config-DzzCeT7z.cjs +0 -1
  476. package/dist/adapters/PieChart.config-aRJJwYx4.js +0 -2
  477. package/dist/adapters/RadarChart.config-AcZ7kWG8.js +0 -2
  478. package/dist/adapters/RadarChart.config-CddBTWAo.cjs +0 -1
  479. package/dist/adapters/RadialBarChart.config-D4qPexJV.cjs +0 -1
  480. package/dist/adapters/RadialBarChart.config-y-NBkq5N.js +0 -2
  481. package/dist/adapters/RetentionCombinedChart.config-BkRNE7lX.cjs +0 -1
  482. package/dist/adapters/RetentionCombinedChart.config-WoX6n6D5.js +0 -2
  483. package/dist/adapters/RetentionHeatmap.config-ByjWidhh.cjs +0 -1
  484. package/dist/adapters/RetentionHeatmap.config-DjXLk03y.js +0 -2
  485. package/dist/adapters/SankeyChart.config-BWO9LszQ.cjs +0 -1
  486. package/dist/adapters/SankeyChart.config-SuP0jjib.js +0 -2
  487. package/dist/adapters/ScatterChart.config-Dk1G4Eaj.cjs +0 -1
  488. package/dist/adapters/ScatterChart.config-DzVXd1ZM.js +0 -2
  489. package/dist/adapters/SunburstChart.config-Cu4ib4Ui.cjs +0 -1
  490. package/dist/adapters/SunburstChart.config-_0gUzNs7.js +0 -2
  491. package/dist/adapters/TreeMapChart.config-DbwYrje4.js +0 -2
  492. package/dist/adapters/TreeMapChart.config-hM8PukgE.cjs +0 -1
  493. package/dist/adapters/WaterfallChart.config-CjUHeE8R.js +0 -2
  494. package/dist/adapters/WaterfallChart.config-Dwxt0kK-.cjs +0 -1
  495. package/dist/adapters/chartConfigHelpers-DHQB-_v5.cjs +0 -1
  496. package/dist/adapters/compiler-D0v5KJhv.cjs +0 -166
  497. package/dist/adapters/core-VK-KVH9q.cjs +0 -1
  498. package/dist/adapters/google-BOnRIN1w.cjs +0 -2
  499. package/dist/adapters/mcp-transport-C2v5BTDF.cjs +0 -40
  500. package/dist/adapters/mcp-transport-CyDBoYEe.js +0 -601
  501. package/dist/adapters/openai-B1pC8nVM.js +0 -6178
  502. package/dist/adapters/openai-DQZaHN0V.cjs +0 -18
  503. package/dist/adapters/utils-CBR-9AMD.cjs +0 -128
  504. package/dist/client/chunks/ConfirmModal-D6eLc9NO.js +0 -3283
  505. package/dist/client/chunks/ConfirmModal-D6eLc9NO.js.map +0 -1
  506. package/dist/client/chunks/DashboardEditModal-9o16JNF0.js +0 -7580
  507. package/dist/client/chunks/DashboardEditModal-9o16JNF0.js.map +0 -1
  508. package/dist/client/chunks/analysis-builder-BDWychCW.js.map +0 -1
  509. package/dist/client/chunks/analysis-builder-shared-DkL0e-wU.js.map +0 -1
  510. package/dist/client/chunks/chart-area-BHxPNsmc.js +0 -775
  511. package/dist/client/chunks/chart-area-BHxPNsmc.js.map +0 -1
  512. package/dist/client/chunks/chart-bar-DAO3PPcE.js.map +0 -1
  513. package/dist/client/chunks/chart-config-area-DxwIZ4Uf.js.map +0 -1
  514. package/dist/client/chunks/chart-config-kpi-delta-DYopvwyG.js.map +0 -1
  515. package/dist/client/chunks/chart-config-kpi-number-BhMdoArB.js.map +0 -1
  516. package/dist/client/chunks/chart-config-line-CBfM0Rds.js.map +0 -1
  517. package/dist/client/chunks/chart-data-table-BP6DMdom.js.map +0 -1
  518. package/dist/client/chunks/chart-kpi-delta-nXQnRRBr.js.map +0 -1
  519. package/dist/client/chunks/chart-kpi-number-m8UGJfBr.js +0 -244
  520. package/dist/client/chunks/chart-kpi-number-m8UGJfBr.js.map +0 -1
  521. package/dist/client/chunks/chart-line-sJK-cJc0.js +0 -101
  522. package/dist/client/chunks/chart-line-sJK-cJc0.js.map +0 -1
  523. package/dist/client/chunks/chart-markdown-BVrqqygz.js.map +0 -1
  524. package/dist/client/chunks/charts-loader-DAJbAD7a.js +0 -84
  525. package/dist/client/chunks/charts-loader-DAJbAD7a.js.map +0 -1
  526. package/dist/client/chunks/core-D7vPfUIe.js.map +0 -1
  527. package/dist/client/chunks/javascript-DFnKaHmQ.js.map +0 -1
  528. package/dist/client/chunks/json-Cu6rbgWf.js +0 -38
  529. package/dist/client/chunks/json-Cu6rbgWf.js.map +0 -1
  530. package/dist/client/chunks/schema-visualization-BGT_cNon.js.map +0 -1
  531. package/dist/client/chunks/useDebounce-7suCFq9v.js.map +0 -1
  532. package/dist/client/chunks/useDirtyStateTracking-D2OiqKoQ.js +0 -66
  533. package/dist/client/chunks/useDirtyStateTracking-D2OiqKoQ.js.map +0 -1
  534. package/dist/client/chunks/vendor-ChnlgSP0.js.map +0 -1
  535. package/dist/server/chartConfigHelpers-DHQB-_v5.cjs +0 -1
  536. package/dist/server/google-BOnRIN1w.cjs +0 -2
  537. package/dist/server/openai-B1pC8nVM.js +0 -6178
  538. package/dist/server/openai-DQZaHN0V.cjs +0 -18
@@ -1,14 +1,14 @@
1
- import { a as e, i as t, n, o as r, r as i, s as a, t as o } from "./vendor-ChnlgSP0.js";
2
- import { k as s, u as c, v as l, z as u } from "./chart-data-table-BP6DMdom.js";
3
- import { a as d, s as f, t as p } from "./retention-ChW9jYdy.js";
4
- import { C as m, M as h, N as g, P as _, S as v, X as y, Z as b, a as x, g as S, h as C, i as w, m as T, p as E, r as D, u as O, v as k, y as A } from "./ConfirmModal-D6eLc9NO.js";
5
- import { A as j, C as M, D as ee, E as N, M as te, N as P, O as ne, P as re, T as ie, a as ae, b as F, j as I, k as L, l as R, n as oe, r as se, s as ce, t as le } from "./useDebounce-7suCFq9v.js";
6
- import { P as z, z as ue } from "./chart-activity-grid-DDqFVWoa.js";
7
- import { a as B, i as de } from "./useExplainAI-DueJjb0r.js";
8
- import { r as fe, s as pe } from "./chart-funnel-xeVGBy-p.js";
9
- import { n as me } from "./charts-core-Cs-UIsQa.js";
10
- import V, { createContext as he, memo as ge, useCallback as H, useContext as _e, useEffect as U, useMemo as W, useRef as G, useState as K } from "react";
11
- import { Fragment as ve, jsx as q, jsxs as J } from "react/jsx-runtime";
1
+ import { a as e, i as t, n, o as r, r as i, s as a, t as o } from "./vendor-cTfe9Kho.js";
2
+ import { k as s, u as c, v as l, z as u } from "./chart-data-table-SNSqZj9B.js";
3
+ import { C as d, E as f, S as p, _ as m, b as h, bt as g, d as _, g as v, j as y, l as b, nt as x, rt as S, tt as C, u as w, v as T, y as E, yt as D } from "./DashboardEditModal-ByXLlXZD.js";
4
+ import { a as O, s as k, t as ee } from "./retention-ChW9jYdy.js";
5
+ import { A, D as te, F as ne, I as j, M as re, N as M, O as ie, P as ae, S as oe, T as N, a as P, d as se, j as F, k as I, l as L, n as ce, r as le, s as ue } from "./useDirtyStateTracking-Dc-Si4db.js";
6
+ import { P as R, z as de } from "./chart-activity-grid-DVOhLgxv.js";
7
+ import { a as z, i as fe } from "./useExplainAI-DJbc7Lu4.js";
8
+ import { r as pe, s as me } from "./chart-funnel-CkHSXp6h.js";
9
+ import { n as he } from "./charts-core-BxBB2zBE.js";
10
+ import B, { createContext as ge, memo as _e, useCallback as V, useContext as ve, useEffect as H, useMemo as U, useRef as W, useState as G } from "react";
11
+ import { Fragment as K, jsx as q, jsxs as J } from "react/jsx-runtime";
12
12
  //#region src/shared/date-utils.ts
13
13
  function ye(e) {
14
14
  let t = /* @__PURE__ */ new Date(), n = e.toLowerCase().trim(), r = t.getUTCFullYear(), i = t.getUTCMonth(), a = t.getUTCDate(), o = t.getUTCDay();
@@ -138,7 +138,7 @@ function xe(e) {
138
138
  return e.toISOString().split("T")[0];
139
139
  }
140
140
  function Se(e, t) {
141
- let n = t.getTime() - e.getTime(), r = Math.ceil(n / (1e3 * 60 * 60 * 24)), i = new Date(e);
141
+ let n = t.getTime() - e.getTime(), r = Math.ceil(n / 864e5), i = new Date(e);
142
142
  i.setUTCDate(i.getUTCDate() - 1), i.setUTCHours(23, 59, 59, 999);
143
143
  let a = new Date(i);
144
144
  return a.setUTCDate(a.getUTCDate() - r + 1), a.setUTCHours(0, 0, 0, 0), {
@@ -149,7 +149,7 @@ function Se(e, t) {
149
149
  //#endregion
150
150
  //#region src/client/components/AnalysisBuilder/utils/filterUtils.ts
151
151
  function Ce(e, t) {
152
- let n = L(t, e);
152
+ let n = F(t, e);
153
153
  if (!n?.dateRange) return;
154
154
  let r = be(n.dateRange);
155
155
  if (!r) return;
@@ -157,14 +157,14 @@ function Ce(e, t) {
157
157
  return [[xe(r.start), xe(r.end)], [xe(i.start), xe(i.end)]];
158
158
  }
159
159
  function we(e, t) {
160
- return P(e, t, "inDateRange");
160
+ return ne(e, t, "inDateRange");
161
161
  }
162
162
  //#endregion
163
163
  //#region src/client/components/AnalysisBuilder/utils/queryUtils.ts
164
164
  function Te(e, t, n, r, i = !1, a) {
165
165
  let o = t.filter((e) => e.isTimeDimension && e.enableComparison).map((e) => e.field), s = n;
166
166
  if (!i) for (let e of o) s = we(s, e);
167
- s = s.filter((e) => h(e));
167
+ s = s.filter((e) => C(e));
168
168
  let c = {
169
169
  measures: e.map((e) => e.field),
170
170
  dimensions: t.filter((e) => !e.isTimeDimension).map((e) => e.field),
@@ -221,7 +221,7 @@ function Ee(e, t, n, r) {
221
221
  //#region src/client/components/AnalysisBuilder/FilterValueInput.tsx
222
222
  var De = l("close"), Oe = l("chevronDown");
223
223
  function ke({ filter: e, dateRange: t }) {
224
- let { t: n } = z(), { rangeType: r, numberValue: i, label: a, isOpen: o, onToggle: s, onRangeTypeChange: c, onNumberValueChange: l, onCustomStartDate: u, onCustomEndDate: d, onOpen: f } = t;
224
+ let { t: n } = R(), { rangeType: r, numberValue: i, label: a, isOpen: o, onToggle: s, onRangeTypeChange: c, onNumberValueChange: l, onCustomStartDate: u, onCustomEndDate: d, onOpen: f } = t;
225
225
  return /* @__PURE__ */ J("div", {
226
226
  className: "dc:space-y-2",
227
227
  children: [
@@ -231,21 +231,21 @@ function ke({ filter: e, dateRange: t }) {
231
231
  onClick: () => {
232
232
  f(), s(!o);
233
233
  },
234
- className: "dc:w-full dc:flex dc:items-center dc:justify-between dc:text-left dc:text-sm dc:border border-dc-border dc:rounded dc:px-3 dc:py-2 bg-dc-surface text-dc-text hover:bg-dc-surface-hover",
234
+ className: "dc:w-full dc:flex dc:items-center dc:justify-between dc:text-left dc:text-sm dc:border border-dc-border dc:rounded-sm dc:px-3 dc:py-2 bg-dc-surface text-dc-text hover:bg-dc-surface-hover",
235
235
  children: [/* @__PURE__ */ q("span", {
236
236
  className: "dc:truncate",
237
237
  children: a
238
238
  }), /* @__PURE__ */ q(Oe, { className: `dc:w-4 dc:h-4 text-dc-text-muted dc:shrink-0 dc:ml-2 dc:transition-transform ${o ? "dc:rotate-180" : ""}` })]
239
239
  }), o && /* @__PURE__ */ q("div", {
240
- className: "dc:absolute dc:z-[60] dc:left-0 dc:right-0 dc:mt-1 bg-dc-surface dc:border border-dc-border dc:rounded dc:shadow-lg dc:max-h-48 dc:overflow-y-auto",
241
- children: E.map((e) => /* @__PURE__ */ q("button", {
240
+ className: "dc:absolute dc:z-[60] dc:left-0 dc:right-0 dc:mt-1 bg-dc-surface dc:border border-dc-border dc:rounded-sm dc:shadow-lg dc:max-h-48 dc:overflow-y-auto",
241
+ children: m.map((e) => /* @__PURE__ */ q("button", {
242
242
  onClick: () => c(e.value),
243
243
  className: `dc:w-full dc:text-left dc:px-3 dc:py-2 dc:text-sm hover:bg-dc-surface-hover ${e.value === r ? "bg-dc-primary/10 text-dc-primary" : "text-dc-text"}`,
244
244
  children: n(e.label)
245
245
  }, e.value))
246
246
  })]
247
247
  }),
248
- ie(r) && /* @__PURE__ */ J("div", {
248
+ te(r) && /* @__PURE__ */ J("div", {
249
249
  className: "dc:flex dc:items-center dc:gap-2",
250
250
  children: [/* @__PURE__ */ q("input", {
251
251
  type: "number",
@@ -253,7 +253,7 @@ function ke({ filter: e, dateRange: t }) {
253
253
  max: "1000",
254
254
  value: i,
255
255
  onChange: (e) => l(Math.max(1, parseInt(e.target.value) || 1)),
256
- className: "dc:flex-1 dc:text-sm dc:border border-dc-border dc:rounded dc:px-3 dc:py-2 bg-dc-surface text-dc-text dc:w-20"
256
+ className: "dc:flex-1 dc:text-sm dc:border border-dc-border dc:rounded-sm dc:px-3 dc:py-2 bg-dc-surface text-dc-text dc:w-20"
257
257
  }), /* @__PURE__ */ q("span", {
258
258
  className: "dc:text-sm text-dc-text-muted",
259
259
  children: r.replace("last_n_", "")
@@ -266,7 +266,7 @@ function ke({ filter: e, dateRange: t }) {
266
266
  type: "date",
267
267
  value: Array.isArray(e.dateRange) ? e.dateRange[0] : "",
268
268
  onChange: u,
269
- className: "dc:flex-1 dc:text-sm dc:border border-dc-border dc:rounded dc:px-2 dc:py-2 bg-dc-surface text-dc-text"
269
+ className: "dc:flex-1 dc:text-sm dc:border border-dc-border dc:rounded-sm dc:px-2 dc:py-2 bg-dc-surface text-dc-text"
270
270
  }),
271
271
  /* @__PURE__ */ q("span", {
272
272
  className: "dc:text-sm text-dc-text-muted",
@@ -276,7 +276,7 @@ function ke({ filter: e, dateRange: t }) {
276
276
  type: "date",
277
277
  value: Array.isArray(e.dateRange) ? e.dateRange[1] : "",
278
278
  onChange: d,
279
- className: "dc:flex-1 dc:text-sm dc:border border-dc-border dc:rounded dc:px-2 dc:py-2 bg-dc-surface text-dc-text"
279
+ className: "dc:flex-1 dc:text-sm dc:border border-dc-border dc:rounded-sm dc:px-2 dc:py-2 bg-dc-surface text-dc-text"
280
280
  })
281
281
  ]
282
282
  })
@@ -284,7 +284,7 @@ function ke({ filter: e, dateRange: t }) {
284
284
  });
285
285
  }
286
286
  function Ae({ filter: e, combo: t }) {
287
- let { t: n } = z(), { options: r, loading: i, error: a, highlightedIndex: o, listRef: s, onSelect: c } = t;
287
+ let { t: n } = R(), { options: r, loading: i, error: a, highlightedIndex: o, listRef: s, onSelect: c } = t;
288
288
  return i ? /* @__PURE__ */ q("div", {
289
289
  className: "dc:px-3 dc:py-2 dc:text-sm text-dc-text-muted",
290
290
  children: n("filter.modal.loading")
@@ -311,14 +311,14 @@ function Ae({ filter: e, combo: t }) {
311
311
  });
312
312
  }
313
313
  function je({ filter: e, operatorMeta: t, combo: n }) {
314
- let { t: r } = z(), { isOpen: i, loading: a, searchText: o, onSearchTextChange: s, onHighlightedIndexChange: c, onRemove: l, onKeyDown: u, onOpen: d } = n;
314
+ let { t: r } = R(), { isOpen: i, loading: a, searchText: o, onSearchTextChange: s, onHighlightedIndexChange: c, onRemove: l, onKeyDown: u, onOpen: d } = n;
315
315
  return /* @__PURE__ */ J("div", {
316
316
  className: "dc:space-y-2",
317
317
  children: [
318
318
  e.values && e.values.length > 0 && /* @__PURE__ */ q("div", {
319
319
  className: "dc:flex dc:flex-wrap dc:gap-1.5",
320
320
  children: e.values.map((e, t) => /* @__PURE__ */ J("span", {
321
- className: "dc:inline-flex dc:items-center dc:gap-1 bg-dc-primary/10 text-dc-primary dc:text-sm dc:px-2 dc:py-1 dc:rounded",
321
+ className: "dc:inline-flex dc:items-center dc:gap-1 bg-dc-primary/10 text-dc-primary dc:text-sm dc:px-2 dc:py-1 dc:rounded-sm",
322
322
  children: [/* @__PURE__ */ q("span", {
323
323
  className: "dc:max-w-[150px] dc:truncate",
324
324
  children: String(e)
@@ -335,13 +335,13 @@ function je({ filter: e, operatorMeta: t, combo: n }) {
335
335
  onClick: () => {
336
336
  d();
337
337
  },
338
- className: "dc:w-full dc:flex dc:items-center dc:justify-between dc:text-left dc:text-sm dc:border border-dc-border dc:rounded dc:px-3 dc:py-2 bg-dc-surface text-dc-text hover:bg-dc-surface-hover",
338
+ className: "dc:w-full dc:flex dc:items-center dc:justify-between dc:text-left dc:text-sm dc:border border-dc-border dc:rounded-sm dc:px-3 dc:py-2 bg-dc-surface text-dc-text hover:bg-dc-surface-hover",
339
339
  children: [/* @__PURE__ */ q("span", {
340
340
  className: "text-dc-text-muted dc:truncate",
341
341
  children: r(a ? "filter.modal.loading" : "filter.modal.selectValue")
342
342
  }), /* @__PURE__ */ q(Oe, { className: `dc:w-4 dc:h-4 text-dc-text-muted dc:shrink-0 dc:ml-2 dc:transition-transform ${i ? "dc:rotate-180" : ""}` })]
343
343
  }), i && /* @__PURE__ */ J("div", {
344
- className: "dc:absolute dc:z-[60] dc:left-0 dc:right-0 dc:mt-1 bg-dc-surface dc:border border-dc-border dc:rounded dc:shadow-lg dc:max-h-56 dc:overflow-hidden",
344
+ className: "dc:absolute dc:z-[60] dc:left-0 dc:right-0 dc:mt-1 bg-dc-surface dc:border border-dc-border dc:rounded-sm dc:shadow-lg dc:max-h-56 dc:overflow-hidden",
345
345
  children: [/* @__PURE__ */ q("div", {
346
346
  className: "dc:p-2 dc:border-b border-dc-border",
347
347
  children: /* @__PURE__ */ q("input", {
@@ -352,7 +352,7 @@ function je({ filter: e, operatorMeta: t, combo: n }) {
352
352
  },
353
353
  onKeyDown: u,
354
354
  placeholder: r("filter.modal.search"),
355
- className: "dc:w-full dc:text-sm dc:border border-dc-border dc:rounded dc:px-3 dc:py-2 bg-dc-surface text-dc-text",
355
+ className: "dc:w-full dc:text-sm dc:border border-dc-border dc:rounded-sm dc:px-3 dc:py-2 bg-dc-surface text-dc-text",
356
356
  autoFocus: !0
357
357
  })
358
358
  }), /* @__PURE__ */ q(Ae, {
@@ -369,7 +369,7 @@ function je({ filter: e, operatorMeta: t, combo: n }) {
369
369
  });
370
370
  }
371
371
  function Me({ field: e, dateRange: t, combo: n, inputs: r }) {
372
- let { t: i } = z(), { filter: a, operatorMeta: o, shouldShowDateRange: s, shouldShowComboBox: c } = e, { onBetweenStart: l, onBetweenEnd: u, onDate: d, onDirect: f } = r;
372
+ let { t: i } = R(), { filter: a, operatorMeta: o, shouldShowDateRange: s, shouldShowComboBox: c } = e, { onBetweenStart: l, onBetweenEnd: u, onDate: d, onDirect: f } = r;
373
373
  return o?.requiresValues ? s ? /* @__PURE__ */ q(ke, {
374
374
  filter: a,
375
375
  dateRange: t
@@ -381,7 +381,7 @@ function Me({ field: e, dateRange: t, combo: n, inputs: r }) {
381
381
  value: a.values?.[0] ?? "",
382
382
  onChange: l,
383
383
  placeholder: i("filter.modal.min"),
384
- className: "dc:flex-1 dc:text-sm dc:border border-dc-border dc:rounded dc:px-3 dc:py-2 bg-dc-surface text-dc-text"
384
+ className: "dc:flex-1 dc:text-sm dc:border border-dc-border dc:rounded-sm dc:px-3 dc:py-2 bg-dc-surface text-dc-text"
385
385
  }),
386
386
  /* @__PURE__ */ q("span", {
387
387
  className: "dc:text-sm text-dc-text-muted",
@@ -392,20 +392,20 @@ function Me({ field: e, dateRange: t, combo: n, inputs: r }) {
392
392
  value: a.values?.[1] ?? "",
393
393
  onChange: u,
394
394
  placeholder: i("filter.modal.max"),
395
- className: "dc:flex-1 dc:text-sm dc:border border-dc-border dc:rounded dc:px-3 dc:py-2 bg-dc-surface text-dc-text"
395
+ className: "dc:flex-1 dc:text-sm dc:border border-dc-border dc:rounded-sm dc:px-3 dc:py-2 bg-dc-surface text-dc-text"
396
396
  })
397
397
  ]
398
398
  }) : o?.valueType === "date" ? /* @__PURE__ */ q("input", {
399
399
  type: "date",
400
400
  value: a.values?.[0] || "",
401
401
  onChange: d,
402
- className: "dc:w-full dc:text-sm dc:border border-dc-border dc:rounded dc:px-3 dc:py-2 bg-dc-surface text-dc-text"
402
+ className: "dc:w-full dc:text-sm dc:border border-dc-border dc:rounded-sm dc:px-3 dc:py-2 bg-dc-surface text-dc-text"
403
403
  }) : o?.valueType === "number" ? /* @__PURE__ */ q("input", {
404
404
  type: "number",
405
405
  value: a.values?.[0] ?? "",
406
406
  onChange: f,
407
407
  placeholder: i("filter.modal.enterNumber"),
408
- className: "dc:w-full dc:text-sm dc:border border-dc-border dc:rounded dc:px-3 dc:py-2 bg-dc-surface text-dc-text"
408
+ className: "dc:w-full dc:text-sm dc:border border-dc-border dc:rounded-sm dc:px-3 dc:py-2 bg-dc-surface text-dc-text"
409
409
  }) : c ? /* @__PURE__ */ q(je, {
410
410
  filter: a,
411
411
  operatorMeta: o,
@@ -415,7 +415,7 @@ function Me({ field: e, dateRange: t, combo: n, inputs: r }) {
415
415
  value: a.values?.[0] ?? "",
416
416
  onChange: f,
417
417
  placeholder: i("filter.modal.enterValue"),
418
- className: "dc:w-full dc:text-sm dc:border border-dc-border dc:rounded dc:px-3 dc:py-2 bg-dc-surface text-dc-text placeholder-dc-text-muted"
418
+ className: "dc:w-full dc:text-sm dc:border border-dc-border dc:rounded-sm dc:px-3 dc:py-2 bg-dc-surface text-dc-text placeholder-dc-text-muted"
419
419
  }) : /* @__PURE__ */ q("div", {
420
420
  className: "dc:text-sm text-dc-text-muted dc:italic dc:py-2",
421
421
  children: i("filter.modal.noValueRequired")
@@ -425,66 +425,66 @@ function Me({ field: e, dateRange: t, combo: n, inputs: r }) {
425
425
  //#region src/client/components/AnalysisBuilder/FilterConfigModal.tsx
426
426
  var Ne = l("close"), Pe = l("chevronDown"), Fe = l("dimension"), Ie = l("timeDimension"), Le = l("measure");
427
427
  function Re({ filter: e, schema: t, onSave: n, onCancel: r, anchorElement: i }) {
428
- let { t: a } = z(), [o, s] = K(e), [c, l] = K(!1), [u, d] = K(!1), [f, p] = K(!1), [m, h] = K("this_month"), [v, y] = K(1), [b, x] = K(""), [w, T] = K(null), [D, k] = K(-1), A = G(null), j = G(null), ee = le(b, 300), N = C(o.member, t), te = N?.field.type || "string", P = te === "time", ne = N?.fieldType === "measure", re = N?.fieldType === "dimension", ae = S(o.member, t), F = g[o.operator], I = _(te), L = P && o.operator === "inDateRange", R = H(() => [
428
+ let { t: a } = R(), [o, s] = G(e), [c, l] = G(!1), [u, d] = G(!1), [f, p] = G(!1), [g, _] = G("this_month"), [y, b] = G(1), [C, w] = G(""), [T, D] = G(null), [O, k] = G(-1), ee = W(null), A = W(null), ne = ce(C, 300), j = E(o.member, t), re = j?.field.type || "string", M = re === "time", ie = j?.fieldType === "measure", ae = j?.fieldType === "dimension", oe = h(o.member, t), P = x[o.operator], se = S(re), F = M && o.operator === "inDateRange", I = V(() => [
429
429
  "equals",
430
430
  "notEquals",
431
431
  "in",
432
432
  "notIn"
433
- ].includes(o.operator) && re && !P, [
433
+ ].includes(o.operator) && ae && !M, [
434
434
  o.operator,
435
- re,
436
- P
437
- ])(), { values: se, loading: ce, error: ue, searchValues: B } = oe(o.member, R);
438
- U(() => {
435
+ ae,
436
+ M
437
+ ])(), { values: L, loading: ue, error: de, searchValues: z } = le(o.member, I);
438
+ H(() => {
439
439
  if (!i) {
440
- T(null);
440
+ D(null);
441
441
  return;
442
442
  }
443
443
  let e = i.getBoundingClientRect(), t = e.top, n = window.innerHeight - e.bottom, r = t > 500 || t > n, a = Math.max(16, Math.min(e.left, window.innerWidth - 400 - 16));
444
- T(r ? {
444
+ D(r ? {
445
445
  bottom: window.innerHeight - e.top + 8,
446
446
  left: a
447
447
  } : {
448
448
  top: e.bottom + 8,
449
449
  left: a
450
450
  });
451
- }, [i]), U(() => {
451
+ }, [i]), H(() => {
452
452
  let e = (e) => {
453
- A.current && !A.current.contains(e.target) && (l(!1), d(!1), p(!1));
453
+ ee.current && !ee.current.contains(e.target) && (l(!1), d(!1), p(!1));
454
454
  };
455
455
  return document.addEventListener("mousedown", e), () => document.removeEventListener("mousedown", e);
456
- }, []), U(() => {
457
- u && R && B && B("", !0), u || k(-1);
456
+ }, []), H(() => {
457
+ u && I && z && z("", !0), u || k(-1);
458
458
  }, [
459
459
  u,
460
- R,
461
- B
462
- ]), U(() => {
463
- if (D >= 0 && j.current) {
464
- let e = j.current.children[D];
460
+ I,
461
+ z
462
+ ]), H(() => {
463
+ if (O >= 0 && A.current) {
464
+ let e = A.current.children[O];
465
465
  e && e.scrollIntoView({ block: "nearest" });
466
466
  }
467
- }, [D]), U(() => {
468
- u && R && B && ee !== void 0 && B(ee);
467
+ }, [O]), H(() => {
468
+ u && I && z && ne !== void 0 && z(ne);
469
469
  }, [
470
- ee,
470
+ ne,
471
471
  u,
472
- R,
473
- B
474
- ]), U(() => {
475
- if (!L) return;
476
- let e = O(o.dateRange);
477
- e && (h(e.rangeType), e.numberValue !== void 0 && y(e.numberValue));
478
- }, [o.dateRange, L]);
479
- let de = H((e) => {
472
+ I,
473
+ z
474
+ ]), H(() => {
475
+ if (!F) return;
476
+ let e = v(o.dateRange);
477
+ e && (_(e.rangeType), e.numberValue !== void 0 && b(e.numberValue));
478
+ }, [o.dateRange, F]);
479
+ let fe = V((e) => {
480
480
  s({
481
481
  member: o.member,
482
482
  operator: e,
483
483
  values: []
484
484
  }), l(!1);
485
- }, [o.member]), fe = H((e, t) => {
485
+ }, [o.member]), pe = V((e, t) => {
486
486
  let n = t?.shiftKey ?? !1, r = o.values || [];
487
- F?.supportsMultipleValues ? (r.includes(e) ? s({
487
+ P?.supportsMultipleValues ? (r.includes(e) ? s({
488
488
  ...o,
489
489
  values: r.filter((t) => t !== e)
490
490
  }) : s({
@@ -493,28 +493,28 @@ function Re({ filter: e, schema: t, onSave: n, onCancel: r, anchorElement: i })
493
493
  }), n || d(!1)) : (s({
494
494
  ...o,
495
495
  values: [e]
496
- }), d(!1)), x(""), k(-1);
497
- }, [o, F?.supportsMultipleValues]), pe = H((e) => {
496
+ }), d(!1)), w(""), k(-1);
497
+ }, [o, P?.supportsMultipleValues]), me = V((e) => {
498
498
  let t = (o.values || []).filter((t) => t !== e);
499
499
  s({
500
500
  ...o,
501
501
  values: t
502
502
  });
503
- }, [o]), me = H((e) => {
504
- let t = Ee(e.key, u, se.length, D);
503
+ }, [o]), he = V((e) => {
504
+ let t = Ee(e.key, u, L.length, O);
505
505
  if (t.type !== "none") {
506
506
  if (e.preventDefault(), t.type === "highlight") return k(t.index);
507
- if (t.type === "select") return fe(se[t.index], { shiftKey: e.shiftKey });
507
+ if (t.type === "select") return pe(L[t.index], { shiftKey: e.shiftKey });
508
508
  d(!1), k(-1);
509
509
  }
510
510
  }, [
511
511
  u,
512
- se,
513
- D,
514
- fe
515
- ]), V = H((e) => {
512
+ L,
513
+ O,
514
+ pe
515
+ ]), B = V((e) => {
516
516
  let t = e.target.value;
517
- if (F?.valueType === "number") {
517
+ if (P?.valueType === "number") {
518
518
  let e = parseFloat(t);
519
519
  isNaN(e) ? (t === "" || t === "-") && s({
520
520
  ...o,
@@ -527,63 +527,63 @@ function Re({ filter: e, schema: t, onSave: n, onCancel: r, anchorElement: i })
527
527
  ...o,
528
528
  values: t ? [t] : []
529
529
  });
530
- }, [o, F?.valueType]), he = H((e) => {
530
+ }, [o, P?.valueType]), ge = V((e) => {
531
531
  let t = parseFloat(e.target.value), n = [isNaN(t) ? "" : t, (o.values?.length >= 2 ? o.values : ["", ""])[1]].filter((e) => e !== "");
532
532
  s({
533
533
  ...o,
534
534
  values: n
535
535
  });
536
- }, [o]), ge = H((e) => {
536
+ }, [o]), _e = V((e) => {
537
537
  let t = parseFloat(e.target.value), n = [(o.values?.length >= 2 ? o.values : ["", ""])[0], isNaN(t) ? "" : t].filter((e) => e !== "");
538
538
  s({
539
539
  ...o,
540
540
  values: n
541
541
  });
542
- }, [o]), _e = H((e) => {
542
+ }, [o]), ve = V((e) => {
543
543
  let t = e.target.value;
544
544
  s({
545
545
  ...o,
546
546
  values: t ? [t] : []
547
547
  });
548
- }, [o]), ye = H((e) => {
549
- h(e), p(!1);
548
+ }, [o]), ye = V((e) => {
549
+ _(e), p(!1);
550
550
  let t;
551
551
  if (e === "custom") {
552
552
  let e = (/* @__PURE__ */ new Date()).toISOString().split("T")[0];
553
553
  t = [e, e];
554
- } else t = ie(e) ? M(e, v) : M(e);
554
+ } else t = te(e) ? N(e, y) : N(e);
555
555
  s({
556
556
  ...o,
557
557
  dateRange: t
558
558
  });
559
- }, [o, v]), be = H((e) => {
560
- if (y(e), ie(m)) {
561
- let t = M(m, e);
559
+ }, [o, y]), be = V((e) => {
560
+ if (b(e), te(g)) {
561
+ let t = N(g, e);
562
562
  s({
563
563
  ...o,
564
564
  dateRange: t
565
565
  });
566
566
  }
567
- }, [o, m]), xe = H((e) => {
567
+ }, [o, g]), xe = V((e) => {
568
568
  let t = e.target.value, n = (Array.isArray(o.dateRange) ? o.dateRange : [o.dateRange || "", ""])[1] || t;
569
569
  s({
570
570
  ...o,
571
571
  dateRange: [t, n]
572
572
  });
573
- }, [o]), Se = H((e) => {
573
+ }, [o]), Se = V((e) => {
574
574
  let t = e.target.value, n = (Array.isArray(o.dateRange) ? o.dateRange : ["", o.dateRange || ""])[0] || t;
575
575
  s({
576
576
  ...o,
577
577
  dateRange: [n, t]
578
578
  });
579
- }, [o]), Ce = a(I.find((e) => e.operator === o.operator)?.label || o.operator), we = a(E.find((e) => e.value === m)?.label || "filter.modal.selectRange"), Te = {
579
+ }, [o]), Ce = a(se.find((e) => e.operator === o.operator)?.label || o.operator), we = a(m.find((e) => e.value === g)?.label || "filter.modal.selectRange"), Te = {
580
580
  filter: o,
581
- operatorMeta: F,
582
- shouldShowDateRange: L,
583
- shouldShowComboBox: R
581
+ operatorMeta: P,
582
+ shouldShowDateRange: F,
583
+ shouldShowComboBox: I
584
584
  }, Y = {
585
- rangeType: m,
586
- numberValue: v,
585
+ rangeType: g,
586
+ numberValue: y,
587
587
  label: we,
588
588
  isOpen: f,
589
589
  onToggle: p,
@@ -591,46 +591,46 @@ function Re({ filter: e, schema: t, onSave: n, onCancel: r, anchorElement: i })
591
591
  onNumberValueChange: be,
592
592
  onCustomStartDate: xe,
593
593
  onCustomEndDate: Se,
594
- onOpen: H(() => {
594
+ onOpen: V(() => {
595
595
  l(!1), d(!1);
596
596
  }, [])
597
597
  }, De = {
598
598
  isOpen: u,
599
- options: se,
600
- loading: ce,
601
- error: ue,
602
- searchText: b,
603
- highlightedIndex: D,
604
- listRef: j,
605
- onSearchTextChange: x,
599
+ options: L,
600
+ loading: ue,
601
+ error: de,
602
+ searchText: C,
603
+ highlightedIndex: O,
604
+ listRef: A,
605
+ onSearchTextChange: w,
606
606
  onHighlightedIndexChange: k,
607
- onSelect: fe,
608
- onRemove: pe,
609
- onKeyDown: me,
610
- onOpen: H(() => {
607
+ onSelect: pe,
608
+ onRemove: me,
609
+ onKeyDown: he,
610
+ onOpen: V(() => {
611
611
  l(!1), p(!1), d((e) => !e);
612
612
  }, [])
613
- }, Oe = W(() => ({
614
- onBetweenStart: he,
615
- onBetweenEnd: ge,
616
- onDate: _e,
617
- onDirect: V
613
+ }, Oe = U(() => ({
614
+ onBetweenStart: ge,
615
+ onBetweenEnd: _e,
616
+ onDate: ve,
617
+ onDirect: B
618
618
  }), [
619
- he,
620
619
  ge,
621
620
  _e,
622
- V
623
- ]), ke = P ? Ie : ne ? Le : Fe;
624
- return /* @__PURE__ */ q(ve, { children: /* @__PURE__ */ q("div", {
625
- className: `dc:fixed dc:inset-0 bg-dc-overlay dc:z-50 ${w ? "" : "dc:flex dc:items-center dc:justify-center dc:p-4"}`,
621
+ ve,
622
+ B
623
+ ]), ke = M ? Ie : ie ? Le : Fe;
624
+ return /* @__PURE__ */ q(K, { children: /* @__PURE__ */ q("div", {
625
+ className: `dc:fixed dc:inset-0 bg-dc-overlay dc:z-50 ${T ? "" : "dc:flex dc:items-center dc:justify-center dc:p-4"}`,
626
626
  onClick: r,
627
627
  children: /* @__PURE__ */ J("div", {
628
- ref: A,
629
- className: w ? "bg-dc-surface rounded-lg border border-dc-border" : "bg-dc-surface rounded-lg border border-dc-border max-w-md w-full",
628
+ ref: ee,
629
+ className: T ? "bg-dc-surface dc:rounded-lg dc:border border-dc-border" : "bg-dc-surface dc:rounded-lg dc:border border-dc-border dc:max-w-md dc:w-full",
630
630
  style: {
631
- ...w ? {
631
+ ...T ? {
632
632
  position: "fixed",
633
- ...w,
633
+ ...T,
634
634
  maxWidth: "400px",
635
635
  width: "100%"
636
636
  } : {},
@@ -656,10 +656,10 @@ function Re({ filter: e, schema: t, onSave: n, onCancel: r, anchorElement: i })
656
656
  className: "dc:block dc:text-sm dc:font-medium text-dc-text-secondary dc:mb-2",
657
657
  children: a("filter.modal.fieldLabel")
658
658
  }), /* @__PURE__ */ J("div", {
659
- className: "dc:flex dc:items-center dc:gap-2 dc:p-3 bg-dc-surface-secondary dc:rounded",
659
+ className: "dc:flex dc:items-center dc:gap-2 dc:p-3 bg-dc-surface-secondary dc:rounded-sm",
660
660
  children: [/* @__PURE__ */ q(ke, { className: "dc:w-5 dc:h-5 text-dc-filter-text" }), /* @__PURE__ */ q("span", {
661
661
  className: "dc:text-sm dc:font-medium text-dc-text",
662
- children: ae
662
+ children: oe
663
663
  })]
664
664
  })] }),
665
665
  /* @__PURE__ */ J("div", { children: [/* @__PURE__ */ q("label", {
@@ -671,15 +671,15 @@ function Re({ filter: e, schema: t, onSave: n, onCancel: r, anchorElement: i })
671
671
  onClick: () => {
672
672
  d(!1), p(!1), l(!c);
673
673
  },
674
- className: "dc:w-full dc:flex dc:items-center dc:justify-between dc:text-left dc:text-sm dc:border border-dc-border dc:rounded dc:px-3 dc:py-2 bg-dc-surface text-dc-text hover:bg-dc-surface-hover",
674
+ className: "dc:w-full dc:flex dc:items-center dc:justify-between dc:text-left dc:text-sm dc:border border-dc-border dc:rounded-sm dc:px-3 dc:py-2 bg-dc-surface text-dc-text hover:bg-dc-surface-hover",
675
675
  children: [/* @__PURE__ */ q("span", {
676
676
  className: "dc:truncate",
677
677
  children: Ce
678
678
  }), /* @__PURE__ */ q(Pe, { className: `dc:w-4 dc:h-4 text-dc-text-muted dc:shrink-0 dc:ml-2 dc:transition-transform ${c ? "dc:rotate-180" : ""}` })]
679
679
  }), c && /* @__PURE__ */ q("div", {
680
- className: "dc:absolute dc:z-[60] dc:left-0 dc:right-0 dc:mt-1 bg-dc-surface dc:border border-dc-border dc:rounded dc:shadow-lg dc:max-h-48 dc:overflow-y-auto",
681
- children: I.map((e) => /* @__PURE__ */ q("button", {
682
- onClick: () => de(e.operator),
680
+ className: "dc:absolute dc:z-[60] dc:left-0 dc:right-0 dc:mt-1 bg-dc-surface dc:border border-dc-border dc:rounded-sm dc:shadow-lg dc:max-h-48 dc:overflow-y-auto",
681
+ children: se.map((e) => /* @__PURE__ */ q("button", {
682
+ onClick: () => fe(e.operator),
683
683
  className: `dc:w-full dc:text-left dc:px-3 dc:py-2 dc:text-sm hover:bg-dc-surface-hover ${e.operator === o.operator ? "bg-dc-primary/10 text-dc-primary" : "text-dc-text"}`,
684
684
  children: a(e.label)
685
685
  }, e.operator))
@@ -704,7 +704,7 @@ function Re({ filter: e, schema: t, onSave: n, onCancel: r, anchorElement: i })
704
704
  children: a("common.actions.cancel")
705
705
  }), /* @__PURE__ */ q("button", {
706
706
  onClick: () => n(o),
707
- className: "dc:px-4 dc:py-2 dc:text-sm dc:font-medium text-dc-primary-content bg-dc-primary hover:bg-dc-primary-hover dc:rounded dc:transition-colors",
707
+ className: "dc:px-4 dc:py-2 dc:text-sm dc:font-medium text-dc-primary-content bg-dc-primary hover:bg-dc-primary-hover dc:rounded-sm dc:transition-colors",
708
708
  children: a("common.actions.save")
709
709
  })]
710
710
  })
@@ -716,13 +716,13 @@ function Re({ filter: e, schema: t, onSave: n, onCancel: r, anchorElement: i })
716
716
  //#region src/client/components/AnalysisBuilder/AnalysisFilterItem.tsx
717
717
  var ze = l("close"), Be = l("dimension"), Ve = l("timeDimension"), He = l("measure");
718
718
  function Ue({ filter: e, schema: t, onRemove: n, onUpdate: r }) {
719
- let { t: i } = z(), [a, o] = K(!1), s = G(null), c = C(e.member, t), l = (c?.field.type || "string") === "time", u = c?.fieldType === "measure", d = S(e.member, t), f = g[e.operator], p = f?.label ? i(f.label) : e.operator, m = We(e, f, i), h = l ? Ve : u ? He : Be;
720
- return /* @__PURE__ */ J(ve, { children: [/* @__PURE__ */ J("div", {
719
+ let { t: i } = R(), [a, o] = G(!1), s = W(null), c = E(e.member, t), l = (c?.field.type || "string") === "time", u = c?.fieldType === "measure", d = h(e.member, t), f = x[e.operator], p = f?.label ? i(f.label) : e.operator, m = We(e, f, i), g = l ? Ve : u ? He : Be;
720
+ return /* @__PURE__ */ J(K, { children: [/* @__PURE__ */ J("div", {
721
721
  className: "dc:flex dc:items-start dc:gap-2 dc:px-2 dc:py-1.5 bg-dc-surface-secondary dc:rounded-lg dc:group hover:bg-dc-surface-tertiary dc:transition-all dc:duration-150 dc:w-full",
722
722
  children: [
723
723
  /* @__PURE__ */ q("span", {
724
- className: `dc:w-6 dc:h-6 dc:flex dc:items-center dc:justify-center dc:rounded ${l ? "bg-dc-time-dimension" : u ? "bg-dc-measure" : "bg-dc-dimension"} ${l ? "text-dc-time-dimension-text" : u ? "text-dc-measure-text" : "text-dc-dimension-text"} dc:flex-shrink-0 dc:mt-0.5`,
725
- children: h && /* @__PURE__ */ q(h, { className: "dc:w-4 dc:h-4" })
724
+ className: `dc:w-6 dc:h-6 dc:flex dc:items-center dc:justify-center dc:rounded-sm ${l ? "bg-dc-time-dimension" : u ? "bg-dc-measure" : "bg-dc-dimension"} ${l ? "text-dc-time-dimension-text" : u ? "text-dc-measure-text" : "text-dc-dimension-text"} dc:flex-shrink-0 dc:mt-0.5`,
725
+ children: g && /* @__PURE__ */ q(g, { className: "dc:w-4 dc:h-4" })
726
726
  }),
727
727
  /* @__PURE__ */ q("button", {
728
728
  ref: s,
@@ -774,22 +774,22 @@ function We(e, t, n) {
774
774
  //#region src/client/components/AnalysisBuilder/AnalysisFilterGroup.tsx
775
775
  var Ge = l("add"), Ke = l("close");
776
776
  function qe({ group: e, schema: t, onUpdate: n, onRemove: r, onAddFilter: i, depth: a = 0, hideRemoveButton: o = !1 }) {
777
- let { t: s } = z(), [c, l] = K(!1), u = G(null);
778
- U(() => {
777
+ let { t: s } = R(), [c, l] = G(!1), u = W(null);
778
+ H(() => {
779
779
  let e = (e) => {
780
780
  u.current && !u.current.contains(e.target) && l(!1);
781
781
  };
782
782
  return document.addEventListener("mousedown", e), () => document.removeEventListener("mousedown", e);
783
783
  }, []);
784
- let d = H(() => {
785
- n(re(e));
786
- }, [e, n]), f = H((t, r) => {
784
+ let d = V(() => {
785
+ n(j(e));
786
+ }, [e, n]), f = V((t, r) => {
787
787
  let i = [...e.filters];
788
788
  i[t] = r, n({
789
789
  ...e,
790
790
  filters: i
791
791
  });
792
- }, [e, n]), p = H((t) => {
792
+ }, [e, n]), p = V((t) => {
793
793
  let i = e.filters.filter((e, n) => n !== t);
794
794
  i.length === 0 ? r() : n({
795
795
  ...e,
@@ -800,7 +800,7 @@ function qe({ group: e, schema: t, onUpdate: n, onRemove: r, onAddFilter: i, dep
800
800
  n,
801
801
  r,
802
802
  a
803
- ]), m = H((t) => {
803
+ ]), m = V((t) => {
804
804
  let r = {
805
805
  type: t,
806
806
  filters: []
@@ -809,9 +809,9 @@ function qe({ group: e, schema: t, onUpdate: n, onRemove: r, onAddFilter: i, dep
809
809
  ...e,
810
810
  filters: [...e.filters, r]
811
811
  }), l(!1);
812
- }, [e, n]), h = H(() => {
812
+ }, [e, n]), h = V(() => {
813
813
  i([]), l(!1);
814
- }, [i]), g = H((e) => (t = []) => {
814
+ }, [i]), g = V((e) => (t = []) => {
815
815
  i([e, ...t]);
816
816
  }, [i]), _ = () => a % 2 == 0 ? "border-dc-border" : "border-dc-border dark:border-dc-border", v = () => e.type === "and" ? "bg-dc-info-bg/50" : "bg-dc-warning-bg/50", y = e.filters.length, b = s(y === 1 ? "filter.group.condition" : "filter.group.conditions");
817
817
  return /* @__PURE__ */ J("div", {
@@ -822,7 +822,7 @@ function qe({ group: e, schema: t, onUpdate: n, onRemove: r, onAddFilter: i, dep
822
822
  className: "dc:flex dc:items-center dc:gap-2",
823
823
  children: [/* @__PURE__ */ q("button", {
824
824
  onClick: d,
825
- className: `dc:px-2 dc:py-0.5 dc:text-xs dc:font-semibold dc:rounded dc:transition-colors ${e.type === "and" ? "bg-dc-info-bg text-dc-info dc:hover:opacity-80" : "bg-dc-warning-bg text-dc-warning dc:hover:opacity-80"}`,
825
+ className: `dc:px-2 dc:py-0.5 dc:text-xs dc:font-semibold dc:rounded-sm dc:transition-colors ${e.type === "and" ? "bg-dc-info-bg text-dc-info dc:hover:opacity-80" : "bg-dc-warning-bg text-dc-warning dc:hover:opacity-80"}`,
826
826
  title: `Click to switch to ${e.type === "and" ? "OR" : "AND"}`,
827
827
  children: e.type.toUpperCase()
828
828
  }), /* @__PURE__ */ J("span", {
@@ -840,11 +840,11 @@ function qe({ group: e, schema: t, onUpdate: n, onRemove: r, onAddFilter: i, dep
840
840
  ref: u,
841
841
  children: [/* @__PURE__ */ q("button", {
842
842
  onClick: () => l(!c),
843
- className: "dc:p-1 text-dc-text-secondary hover:text-dc-primary hover:bg-dc-surface-hover dc:rounded dc:transition-colors",
843
+ className: "dc:p-1 text-dc-text-secondary hover:text-dc-primary hover:bg-dc-surface-hover dc:rounded-sm dc:transition-colors",
844
844
  title: "Add condition",
845
845
  children: /* @__PURE__ */ q(Ge, { className: "dc:w-4 dc:h-4" })
846
846
  }), c && /* @__PURE__ */ J("div", {
847
- className: "dc:absolute dc:right-0 dc:mt-1 dc:z-40 bg-dc-surface dc:border border-dc-border dc:rounded dc:shadow-lg dc:py-1 dc:min-w-[120px]",
847
+ className: "dc:absolute dc:right-0 dc:mt-1 dc:z-40 bg-dc-surface dc:border border-dc-border dc:rounded-sm dc:shadow-lg dc:py-1 dc:min-w-[120px]",
848
848
  children: [
849
849
  /* @__PURE__ */ q("button", {
850
850
  onClick: h,
@@ -882,12 +882,12 @@ function qe({ group: e, schema: t, onUpdate: n, onRemove: r, onAddFilter: i, dep
882
882
  className: "dc:text-xs text-dc-primary dc:hover:underline",
883
883
  children: s("filter.group.addFilterLink")
884
884
  })]
885
- }) : e.filters.map((e, n) => I(e) ? /* @__PURE__ */ q(Ue, {
885
+ }) : e.filters.map((e, n) => M(e) ? /* @__PURE__ */ q(Ue, {
886
886
  filter: e,
887
887
  schema: t,
888
888
  onUpdate: (e) => f(n, e),
889
889
  onRemove: () => p(n)
890
- }, `filter-${n}`) : j(e) ? /* @__PURE__ */ q(qe, {
890
+ }, `filter-${n}`) : re(e) ? /* @__PURE__ */ q(qe, {
891
891
  group: e,
892
892
  schema: t,
893
893
  onUpdate: (e) => f(n, e),
@@ -902,42 +902,42 @@ function qe({ group: e, schema: t, onUpdate: n, onRemove: r, onAddFilter: i, dep
902
902
  //#region src/client/components/AnalysisBuilder/AnalysisFilterSection.tsx
903
903
  var Je = l("add");
904
904
  function Ye({ filters: e, schema: t, onFiltersChange: n, onFieldDropped: r, dimensionsOnly: i = !1 }) {
905
- let { t: a } = z(), [o, s] = K(!1), [c, l] = K(!1), u = G([]), d = ee(e), f = H((e) => {
905
+ let { t: a } = R(), [o, s] = G(!1), [c, l] = G(!1), u = W([]), d = I(e), f = V((e) => {
906
906
  e.preventDefault(), e.stopPropagation(), l(!0);
907
- }, []), p = H((e) => {
907
+ }, []), p = V((e) => {
908
908
  e.preventDefault(), e.stopPropagation(), l(!1);
909
- }, []), m = H((e) => {
909
+ }, []), m = V((e) => {
910
910
  e.preventDefault(), e.stopPropagation(), l(!1);
911
911
  try {
912
912
  let t = JSON.parse(e.dataTransfer.getData("text/plain"));
913
913
  t.field && r && r(t.field);
914
914
  } catch {}
915
- }, [r]), h = ne(e), g = H((t, r, i) => {
915
+ }, [r]), h = A(e), g = V((t, r, i) => {
916
916
  let a = t.type === "time", o = a ? "inDateRange" : "equals", c = {
917
917
  member: t.name,
918
918
  operator: o,
919
919
  values: []
920
920
  };
921
- a && o === "inDateRange" && (c.dateRange = M("this_month")), n(N(e, u.current, c)), s(!1), u.current = [];
922
- }, [e, n]), _ = H((t, r) => {
921
+ a && o === "inDateRange" && (c.dateRange = N("this_month")), n(ie(e, u.current, c)), s(!1), u.current = [];
922
+ }, [e, n]), _ = V((t, r) => {
923
923
  let i = [...e];
924
924
  i[t] = r, n(i);
925
- }, [e, n]), v = H((t) => {
926
- n(te(e, t));
927
- }, [e, n]), y = H(() => {
925
+ }, [e, n]), v = V((t) => {
926
+ n(ae(e, t));
927
+ }, [e, n]), y = V(() => {
928
928
  n([]);
929
- }, [n]), b = H(() => {
929
+ }, [n]), b = V(() => {
930
930
  u.current = [], s(!0);
931
- }, []), x = H((e) => (t = []) => {
931
+ }, []), x = V((e) => (t = []) => {
932
932
  u.current = [...e, ...t], s(!0);
933
933
  }, []), S = (n, r, i = []) => {
934
934
  let a = [...i, r];
935
- return I(n) ? /* @__PURE__ */ q(Ue, {
935
+ return M(n) ? /* @__PURE__ */ q(Ue, {
936
936
  filter: n,
937
937
  schema: t,
938
938
  onUpdate: (e) => _(r, e),
939
939
  onRemove: () => v(r)
940
- }, `filter-${a.join("-")}`) : j(n) ? /* @__PURE__ */ q(qe, {
940
+ }, `filter-${a.join("-")}`) : re(n) ? /* @__PURE__ */ q(qe, {
941
941
  group: n,
942
942
  schema: t,
943
943
  onUpdate: (e) => _(r, e),
@@ -951,7 +951,7 @@ function Ye({ filters: e, schema: t, onFiltersChange: n, onFieldDropped: r, dime
951
951
  onClick: b,
952
952
  className: "dc:flex dc:items-center dc:justify-between dc:mb-3 dc:w-full dc:py-1 dc:px-2 dc:-ml-2 dc:rounded-lg hover:bg-dc-primary/10 dc:transition-colors dc:group",
953
953
  title: "Add filter",
954
- children: [/* @__PURE__ */ J(me, { children: [a("analysis.sections.filters"), d > 0 && /* @__PURE__ */ J("span", {
954
+ children: [/* @__PURE__ */ J(he, { children: [a("analysis.sections.filters"), d > 0 && /* @__PURE__ */ J("span", {
955
955
  className: "dc:ml-1.5 dc:text-xs dc:font-normal text-dc-text-muted dc:normal-case dc:tracking-normal",
956
956
  children: [
957
957
  "(",
@@ -1018,7 +1018,7 @@ var Ze = {
1018
1018
  low: "text-dc-text-muted"
1019
1019
  };
1020
1020
  function et({ assessment: e, reason: t }) {
1021
- let { t: n } = z(), r = {
1021
+ let { t: n } = R(), r = {
1022
1022
  good: n("explainAI.assessment.good"),
1023
1023
  warning: n("explainAI.assessment.warning"),
1024
1024
  critical: n("explainAI.assessment.critical")
@@ -1059,8 +1059,8 @@ function tt({ issue: e }) {
1059
1059
  });
1060
1060
  }
1061
1061
  function nt({ text: e }) {
1062
- let { t } = z(), [n, r] = V.useState(!1), i = V.useRef(null);
1063
- return V.useEffect(() => () => {
1062
+ let { t } = R(), [n, r] = B.useState(!1), i = B.useRef(null);
1063
+ return B.useEffect(() => () => {
1064
1064
  i.current && clearTimeout(i.current);
1065
1065
  }, []), /* @__PURE__ */ q("button", {
1066
1066
  onClick: async () => {
@@ -1070,13 +1070,13 @@ function nt({ text: e }) {
1070
1070
  console.error("Failed to copy:", e);
1071
1071
  }
1072
1072
  },
1073
- className: "dc:px-2 dc:py-1 dc:text-xs dc:rounded bg-dc-surface hover:bg-dc-surface-hover text-dc-text-muted",
1073
+ className: "dc:px-2 dc:py-1 dc:text-xs dc:rounded-sm bg-dc-surface hover:bg-dc-surface-hover text-dc-text-muted",
1074
1074
  title: "Copy to clipboard",
1075
1075
  children: t(n ? "explainAI.copied" : "explainAI.copy")
1076
1076
  });
1077
1077
  }
1078
1078
  function rt({ rec: e }) {
1079
- let { t } = z(), n = {
1079
+ let { t } = R(), n = {
1080
1080
  index: t("explainAI.type.index"),
1081
1081
  table: t("explainAI.type.table"),
1082
1082
  cube: t("explainAI.type.cube"),
@@ -1088,7 +1088,7 @@ function rt({ rec: e }) {
1088
1088
  /* @__PURE__ */ J("div", {
1089
1089
  className: "dc:flex dc:items-center dc:gap-2 dc:mb-2",
1090
1090
  children: [/* @__PURE__ */ q("span", {
1091
- className: `dc:px-2 dc:py-0.5 dc:text-xs dc:font-medium dc:rounded ${Qe[e.severity]}`,
1091
+ className: `dc:px-2 dc:py-0.5 dc:text-xs dc:font-medium dc:rounded-sm ${Qe[e.severity]}`,
1092
1092
  children: n[e.type]
1093
1093
  }), /* @__PURE__ */ q("h5", {
1094
1094
  className: "dc:font-medium text-dc-text",
@@ -1101,7 +1101,7 @@ function rt({ rec: e }) {
1101
1101
  }),
1102
1102
  e.sql && /* @__PURE__ */ q("div", {
1103
1103
  className: "dc:mt-2",
1104
- children: /* @__PURE__ */ q(m, {
1104
+ children: /* @__PURE__ */ q(y, {
1105
1105
  code: e.sql,
1106
1106
  language: "sql",
1107
1107
  headerRight: /* @__PURE__ */ q(nt, { text: e.sql })
@@ -1115,7 +1115,7 @@ function rt({ rec: e }) {
1115
1115
  }), /* @__PURE__ */ J("div", {
1116
1116
  className: "dc:relative",
1117
1117
  children: [/* @__PURE__ */ q("pre", {
1118
- className: "dc:p-3 dc:text-xs bg-dc-surface-secondary dc:rounded dc:overflow-x-auto dc:font-mono text-dc-text",
1118
+ className: "dc:p-3 dc:text-xs bg-dc-surface-secondary dc:rounded-sm dc:overflow-x-auto dc:font-mono text-dc-text",
1119
1119
  children: e.cubeCode
1120
1120
  }), /* @__PURE__ */ q("div", {
1121
1121
  className: "dc:absolute dc:top-1 dc:right-1",
@@ -1135,13 +1135,13 @@ function rt({ rec: e }) {
1135
1135
  });
1136
1136
  }
1137
1137
  function it({ analysis: e, onClose: t, onClear: n }) {
1138
- let { t: r } = z(), i = t || n;
1139
- return V.useEffect(() => {
1138
+ let { t: r } = R(), i = t || n;
1139
+ return B.useEffect(() => {
1140
1140
  let e = (e) => {
1141
1141
  e.key === "Escape" && i && i();
1142
1142
  };
1143
1143
  return window.addEventListener("keydown", e), () => window.removeEventListener("keydown", e);
1144
- }, [i]), V.useEffect(() => (document.body.style.overflow = "hidden", () => {
1144
+ }, [i]), B.useEffect(() => (document.body.style.overflow = "hidden", () => {
1145
1145
  document.body.style.overflow = "";
1146
1146
  }), []), /* @__PURE__ */ J("div", {
1147
1147
  className: "dc:fixed dc:inset-0 dc:z-50 dc:flex dc:items-center dc:justify-center dc:p-4 bg-black/50",
@@ -1330,6 +1330,7 @@ var vt = {
1330
1330
  radar: ft,
1331
1331
  radialBar: ft,
1332
1332
  treemap: ft,
1333
+ proportionBar: lt,
1333
1334
  activityGrid: pt,
1334
1335
  kpiNumber: mt,
1335
1336
  kpiDelta: mt,
@@ -1402,7 +1403,7 @@ function jt(e, t, n, r) {
1402
1403
  //#endregion
1403
1404
  //#region src/client/components/AnalysisBuilder/ExecutionPlanPanelParts.tsx
1404
1405
  function Mt({ title: e, height: t, className: n, children: r }) {
1405
- return /* @__PURE__ */ J(ve, { children: [/* @__PURE__ */ q("h4", {
1406
+ return /* @__PURE__ */ J(K, { children: [/* @__PURE__ */ q("h4", {
1406
1407
  className: "dc:text-sm dc:font-semibold text-dc-text dc:mb-2",
1407
1408
  children: e
1408
1409
  }), /* @__PURE__ */ q("div", {
@@ -1412,18 +1413,18 @@ function Mt({ title: e, height: t, className: n, children: r }) {
1412
1413
  })] });
1413
1414
  }
1414
1415
  function Nt({ sql: e, sqlLoading: t, sqlError: n, sqlPlaceholder: r, formattedSql: i, title: a, height: o, headerRight: s }) {
1415
- let { t: c } = z();
1416
+ let { t: c } = R();
1416
1417
  return t ? /* @__PURE__ */ q(Mt, {
1417
1418
  title: a,
1418
1419
  height: o,
1419
- className: "bg-dc-surface-secondary dc:border border-dc-border dc:rounded dc:p-3 text-dc-text-muted dc:text-sm dc:animate-pulse",
1420
+ className: "bg-dc-surface-secondary dc:border border-dc-border dc:rounded-sm dc:p-3 text-dc-text-muted dc:text-sm dc:animate-pulse",
1420
1421
  children: c("results.debug.loadingSql")
1421
1422
  }) : n ? /* @__PURE__ */ q(Mt, {
1422
1423
  title: a,
1423
1424
  height: o,
1424
- className: "text-dc-error dc:text-sm bg-dc-danger-bg dc:p-3 dc:rounded dc:border border-dc-error",
1425
+ className: "text-dc-error dc:text-sm bg-dc-danger-bg dc:p-3 dc:rounded-sm dc:border border-dc-error",
1425
1426
  children: n.message
1426
- }) : e ? /* @__PURE__ */ q(m, {
1427
+ }) : e ? /* @__PURE__ */ q(y, {
1427
1428
  code: i,
1428
1429
  language: "sql",
1429
1430
  title: a,
@@ -1432,49 +1433,49 @@ function Nt({ sql: e, sqlLoading: t, sqlError: n, sqlPlaceholder: r, formattedSq
1432
1433
  }) : /* @__PURE__ */ q(Mt, {
1433
1434
  title: a,
1434
1435
  height: o,
1435
- className: "bg-dc-surface-secondary dc:border border-dc-border dc:rounded dc:p-3 text-dc-text-muted dc:text-sm",
1436
+ className: "bg-dc-surface-secondary dc:border border-dc-border dc:rounded-sm dc:p-3 text-dc-text-muted dc:text-sm",
1436
1437
  children: r
1437
1438
  });
1438
1439
  }
1439
1440
  function Pt({ summary: e }) {
1440
- let { t } = z();
1441
+ let { t } = R();
1441
1442
  return /* @__PURE__ */ J("div", {
1442
1443
  className: "dc:flex dc:flex-wrap dc:items-center dc:gap-2",
1443
1444
  children: [
1444
1445
  /* @__PURE__ */ q("span", {
1445
- className: "dc:px-2 dc:py-1 dc:text-xs dc:font-medium bg-dc-accent text-white dc:rounded",
1446
+ className: "dc:px-2 dc:py-1 dc:text-xs dc:font-medium bg-dc-accent text-white dc:rounded-sm",
1446
1447
  children: e.database.toUpperCase()
1447
1448
  }),
1448
1449
  e.hasSequentialScans && /* @__PURE__ */ q("span", {
1449
- className: "dc:px-2 dc:py-1 dc:text-xs dc:font-medium bg-dc-warning-bg text-dc-warning dc:border border-dc-warning dc:rounded",
1450
+ className: "dc:px-2 dc:py-1 dc:text-xs dc:font-medium bg-dc-warning-bg text-dc-warning dc:border border-dc-warning dc:rounded-sm",
1450
1451
  children: t("debug.sequentialScans")
1451
1452
  }),
1452
1453
  e.usedIndexes.length > 0 && /* @__PURE__ */ q("span", {
1453
- className: "dc:px-2 dc:py-1 dc:text-xs dc:font-medium bg-dc-success-bg text-dc-success dc:border border-dc-success dc:rounded",
1454
+ className: "dc:px-2 dc:py-1 dc:text-xs dc:font-medium bg-dc-success-bg text-dc-success dc:border border-dc-success dc:rounded-sm",
1454
1455
  children: t(e.usedIndexes.length === 1 ? "debug.indexesUsed" : "debug.indexesUsedPlural", { count: e.usedIndexes.length })
1455
1456
  }),
1456
1457
  e.executionTime !== void 0 && /* @__PURE__ */ q("span", {
1457
- className: "dc:px-2 dc:py-1 dc:text-xs dc:font-medium bg-dc-surface-secondary text-dc-text-secondary dc:border border-dc-border dc:rounded",
1458
+ className: "dc:px-2 dc:py-1 dc:text-xs dc:font-medium bg-dc-surface-secondary text-dc-text-secondary dc:border border-dc-border dc:rounded-sm",
1458
1459
  children: t("debug.executionTime", { time: e.executionTime.toFixed(2) })
1459
1460
  }),
1460
1461
  e.planningTime !== void 0 && /* @__PURE__ */ q("span", {
1461
- className: "dc:px-2 dc:py-1 dc:text-xs dc:font-medium bg-dc-surface-secondary text-dc-text-secondary dc:border border-dc-border dc:rounded",
1462
+ className: "dc:px-2 dc:py-1 dc:text-xs dc:font-medium bg-dc-surface-secondary text-dc-text-secondary dc:border border-dc-border dc:rounded-sm",
1462
1463
  children: t("debug.planningTime", { time: e.planningTime.toFixed(2) })
1463
1464
  }),
1464
1465
  e.totalCost !== void 0 && /* @__PURE__ */ q("span", {
1465
- className: "dc:px-2 dc:py-1 dc:text-xs dc:font-medium bg-dc-surface-secondary text-dc-text-secondary dc:border border-dc-border dc:rounded",
1466
+ className: "dc:px-2 dc:py-1 dc:text-xs dc:font-medium bg-dc-surface-secondary text-dc-text-secondary dc:border border-dc-border dc:rounded-sm",
1466
1467
  children: t("debug.cost", { cost: e.totalCost.toFixed(2) })
1467
1468
  })
1468
1469
  ]
1469
1470
  });
1470
1471
  }
1471
1472
  function Ft({ explainLoading: e, explainError: t, explainResult: n, useAnalyze: r, aiButton: i }) {
1472
- let { t: a } = z();
1473
+ let { t: a } = R();
1473
1474
  return e ? /* @__PURE__ */ q("div", {
1474
- className: "bg-dc-surface-secondary dc:border border-dc-border dc:rounded dc:p-3 text-dc-text-muted dc:text-sm dc:animate-pulse",
1475
+ className: "bg-dc-surface-secondary dc:border border-dc-border dc:rounded-sm dc:p-3 text-dc-text-muted dc:text-sm dc:animate-pulse",
1475
1476
  children: a(r ? "debug.explainRunningAnalyze" : "debug.explainRunningBasic")
1476
1477
  }) : t ? /* @__PURE__ */ J("div", {
1477
- className: "text-dc-error dc:text-sm bg-dc-danger-bg dc:p-3 dc:rounded dc:border border-dc-error",
1478
+ className: "text-dc-error dc:text-sm bg-dc-danger-bg dc:p-3 dc:rounded-sm dc:border border-dc-error",
1478
1479
  children: [
1479
1480
  /* @__PURE__ */ q("strong", { children: a("debug.explainError") }),
1480
1481
  " ",
@@ -1492,7 +1493,7 @@ function Ft({ explainLoading: e, explainError: t, explainResult: n, useAnalyze:
1492
1493
  n.summary.usedIndexes.join(", ")
1493
1494
  ]
1494
1495
  }),
1495
- /* @__PURE__ */ q(m, {
1496
+ /* @__PURE__ */ q(y, {
1496
1497
  code: n.raw,
1497
1498
  language: "sql",
1498
1499
  title: a("debug.executionPlanTitle", { database: n.summary.database }),
@@ -1504,19 +1505,19 @@ function Ft({ explainLoading: e, explainError: t, explainResult: n, useAnalyze:
1504
1505
  }
1505
1506
  //#endregion
1506
1507
  //#region src/client/components/AnalysisBuilder/ExecutionPlanPanel.tsx
1507
- var It = ge(function({ sql: e, sqlLoading: t = !1, sqlError: n, sqlPlaceholder: r = "Add metrics to generate SQL", explainResult: i, explainLoading: a = !1, explainHasRun: o = !1, explainError: s, runExplain: c, aiAnalysis: l, aiAnalysisLoading: u = !1, aiAnalysisError: d, runAIAnalysis: f, clearAIAnalysis: p, enableAI: m = !1, query: h, title: g = "Generated SQL", height: _ = "16rem" }) {
1508
- let { t: v } = z(), [y, b] = K(!1), [x, S] = K(!1), C = e ? e.sql + (e.params && e.params.length > 0 ? "\n\n-- Parameters:\n" + JSON.stringify(e.params, null, 2) : "") : "", w = () => {
1508
+ var It = _e(function({ sql: e, sqlLoading: t = !1, sqlError: n, sqlPlaceholder: r = "Add metrics to generate SQL", explainResult: i, explainLoading: a = !1, explainHasRun: o = !1, explainError: s, runExplain: c, aiAnalysis: l, aiAnalysisLoading: u = !1, aiAnalysisError: d, runAIAnalysis: f, clearAIAnalysis: p, enableAI: m = !1, query: h, title: g = "Generated SQL", height: _ = "16rem" }) {
1509
+ let { t: v } = R(), [y, b] = G(!1), [x, S] = G(!1), C = e ? e.sql + (e.params && e.params.length > 0 ? "\n\n-- Parameters:\n" + JSON.stringify(e.params, null, 2) : "") : "", w = () => {
1509
1510
  f && i && h && (f(i, h), S(!0));
1510
1511
  }, T = () => {
1511
1512
  S(!1);
1512
1513
  }, E = m && i ? /* @__PURE__ */ q("button", {
1513
1514
  onClick: w,
1514
1515
  disabled: u,
1515
- className: "dc:px-2 dc:py-1 dc:text-xs dc:font-medium dc:rounded bg-dc-accent text-white hover:bg-dc-accent-hover dc:disabled:opacity-50 dc:disabled:cursor-not-allowed dc:flex dc:items-center dc:gap-1",
1516
- children: u ? /* @__PURE__ */ J(ve, { children: [/* @__PURE__ */ q("span", {
1516
+ className: "dc:px-2 dc:py-1 dc:text-xs dc:font-medium dc:rounded-sm bg-dc-accent text-white hover:bg-dc-accent-hover dc:disabled:opacity-50 dc:disabled:cursor-not-allowed dc:flex dc:items-center dc:gap-1",
1517
+ children: u ? /* @__PURE__ */ J(K, { children: [/* @__PURE__ */ q("span", {
1517
1518
  className: "dc:animate-spin",
1518
1519
  children: "⟳"
1519
- }), v("debug.aiAnalyzing")] }) : /* @__PURE__ */ q(ve, { children: `✨ ${v("debug.aiAnalysis")}` })
1520
+ }), v("debug.aiAnalyzing")] }) : /* @__PURE__ */ q(K, { children: `✨ ${v("debug.aiAnalysis")}` })
1520
1521
  }) : null;
1521
1522
  return /* @__PURE__ */ J("div", {
1522
1523
  className: "dc:space-y-3",
@@ -1529,18 +1530,18 @@ var It = ge(function({ sql: e, sqlLoading: t = !1, sqlError: n, sqlPlaceholder:
1529
1530
  formattedSql: C,
1530
1531
  title: g,
1531
1532
  height: _,
1532
- headerRight: /* @__PURE__ */ J(ve, { children: [/* @__PURE__ */ J("label", {
1533
+ headerRight: /* @__PURE__ */ J(K, { children: [/* @__PURE__ */ J("label", {
1533
1534
  className: "dc:flex dc:items-center dc:gap-1 dc:text-xs text-dc-text-secondary dc:cursor-pointer",
1534
1535
  children: [/* @__PURE__ */ q("input", {
1535
1536
  type: "checkbox",
1536
1537
  checked: y,
1537
1538
  onChange: (e) => b(e.target.checked),
1538
- className: "dc:w-3 dc:h-3 dc:rounded border-dc-border text-dc-accent focus:ring-dc-accent"
1539
+ className: "dc:w-3 dc:h-3 dc:rounded-sm border-dc-border text-dc-accent focus:ring-dc-accent"
1539
1540
  }), v("debug.explainIncludeTiming")]
1540
1541
  }), /* @__PURE__ */ q("button", {
1541
1542
  onClick: () => c({ analyze: y }),
1542
1543
  disabled: a,
1543
- className: "dc:px-2 dc:py-1 dc:text-xs dc:font-medium dc:rounded dc:border border-dc-border bg-dc-surface hover:bg-dc-surface-hover text-dc-text-secondary hover:text-dc-text dc:transition-colors dc:disabled:opacity-50 dc:disabled:cursor-not-allowed",
1544
+ className: "dc:px-2 dc:py-1 dc:text-xs dc:font-medium dc:rounded-sm dc:border border-dc-border bg-dc-surface hover:bg-dc-surface-hover text-dc-text-secondary hover:text-dc-text dc:transition-colors dc:disabled:opacity-50 dc:disabled:cursor-not-allowed",
1544
1545
  children: v(a ? "debug.explainRunning" : "debug.explainPlan")
1545
1546
  })] })
1546
1547
  }),
@@ -1552,7 +1553,7 @@ var It = ge(function({ sql: e, sqlLoading: t = !1, sqlError: n, sqlPlaceholder:
1552
1553
  aiButton: E
1553
1554
  }) }),
1554
1555
  d && /* @__PURE__ */ J("div", {
1555
- className: "text-dc-error dc:text-sm bg-dc-danger-bg dc:p-3 dc:rounded dc:border border-dc-error",
1556
+ className: "text-dc-error dc:text-sm bg-dc-danger-bg dc:p-3 dc:rounded-sm dc:border border-dc-error",
1556
1557
  children: [
1557
1558
  /* @__PURE__ */ q("strong", { children: v("debug.aiAnalysisError") }),
1558
1559
  " ",
@@ -1609,22 +1610,22 @@ function Bt(e) {
1609
1610
  }
1610
1611
  function Vt(e) {
1611
1612
  return e.map((e, t) => ({
1612
- id: k(),
1613
+ id: p(),
1613
1614
  field: e,
1614
- label: A(t)
1615
+ label: d(t)
1615
1616
  }));
1616
1617
  }
1617
1618
  function Ht(e) {
1618
1619
  let t = [];
1619
1620
  if (e.dimensions) for (let n of e.dimensions) t.push({
1620
- id: k(),
1621
+ id: p(),
1621
1622
  field: n,
1622
1623
  isTimeDimension: !1
1623
1624
  });
1624
1625
  if (e.timeDimensions) for (let n of e.timeDimensions) {
1625
1626
  let e = !!(n.compareDateRange && n.compareDateRange.length > 0);
1626
1627
  t.push({
1627
- id: k(),
1628
+ id: p(),
1628
1629
  field: n.dimension,
1629
1630
  granularity: n.granularity,
1630
1631
  isTimeDimension: !0,
@@ -1729,7 +1730,7 @@ var X = {
1729
1730
  }
1730
1731
  }, Z = /* @__PURE__ */ new Map(), Gt = !1;
1731
1732
  function Kt() {
1732
- Gt ||= (Z.has("query") || Z.set("query", X), Z.has("funnel") || Z.set("funnel", x), Z.has("flow") || Z.set("flow", w), Z.has("retention") || Z.set("retention", D), !0);
1733
+ Gt ||= (Z.has("query") || Z.set("query", X), Z.has("funnel") || Z.set("funnel", _), Z.has("flow") || Z.set("flow", w), Z.has("retention") || Z.set("retention", b), !0);
1733
1734
  }
1734
1735
  var Q = {
1735
1736
  register(e) {
@@ -1754,9 +1755,9 @@ var Q = {
1754
1755
  analysisType: "query",
1755
1756
  charts: {
1756
1757
  query: X.getDefaultChartConfig(),
1757
- funnel: x.getDefaultChartConfig(),
1758
+ funnel: _.getDefaultChartConfig(),
1758
1759
  flow: w.getDefaultChartConfig(),
1759
- retention: D.getDefaultChartConfig()
1760
+ retention: b.getDefaultChartConfig()
1760
1761
  },
1761
1762
  activeViews: {
1762
1763
  query: "chart",
@@ -2015,9 +2016,9 @@ var Q = {
2015
2016
  }),
2016
2017
  addMetric: (t, n) => e((e) => {
2017
2018
  let r = e.activeQueryIndex, i = [...e.queryStates], a = i[r] || Y(), o = {
2018
- id: k(),
2019
+ id: p(),
2019
2020
  field: t,
2020
- label: n || A(a.metrics.length)
2021
+ label: n || d(a.metrics.length)
2021
2022
  };
2022
2023
  return i[r] = {
2023
2024
  ...a,
@@ -2040,9 +2041,9 @@ var Q = {
2040
2041
  };
2041
2042
  else {
2042
2043
  let e = {
2043
- id: k(),
2044
+ id: p(),
2044
2045
  field: t,
2045
- label: A(i.metrics.length)
2046
+ label: d(i.metrics.length)
2046
2047
  };
2047
2048
  r[n] = {
2048
2049
  ...i,
@@ -2062,7 +2063,7 @@ var Q = {
2062
2063
  let i = e.activeQueryIndex, a = [...e.queryStates], o = a[i] || Y();
2063
2064
  if (n && o.breakdowns.some((e) => e.isTimeDimension)) return e;
2064
2065
  let s = {
2065
- id: k(),
2066
+ id: p(),
2066
2067
  field: t,
2067
2068
  isTimeDimension: n,
2068
2069
  granularity: n ? r || "month" : void 0
@@ -2089,7 +2090,7 @@ var Q = {
2089
2090
  else {
2090
2091
  if (n && o.breakdowns.some((e) => e.isTimeDimension)) return e;
2091
2092
  let s = {
2092
- id: k(),
2093
+ id: p(),
2093
2094
  field: t,
2094
2095
  isTimeDimension: n,
2095
2096
  granularity: n ? r || "month" : void 0
@@ -2137,7 +2138,7 @@ var Q = {
2137
2138
  member: l.field,
2138
2139
  operator: "inDateRange",
2139
2140
  values: [],
2140
- dateRange: M("last_n_months", 3)
2141
+ dateRange: N("last_n_months", 3)
2141
2142
  };
2142
2143
  s[c] = {
2143
2144
  ...s[c],
@@ -2254,7 +2255,7 @@ var Q = {
2254
2255
  ...Zt(),
2255
2256
  addFunnelStep: () => e((e) => {
2256
2257
  let t = e.funnelSteps[e.funnelSteps.length - 1], n = {
2257
- id: k(),
2258
+ id: p(),
2258
2259
  name: `Step ${e.funnelSteps.length + 1}`,
2259
2260
  cube: e.funnelCube || "",
2260
2261
  filters: t?.filters ? JSON.parse(JSON.stringify(t.filters)) : [],
@@ -2402,7 +2403,7 @@ var Q = {
2402
2403
  joinStrategy: e.joinStrategy
2403
2404
  } };
2404
2405
  }
2405
- }), tn = () => ({ ...d }), nn = (e, t, n) => ({
2406
+ }), tn = () => ({ ...O }), nn = (e, t, n) => ({
2406
2407
  ...tn(),
2407
2408
  setRetentionCube: (t) => e(() => ({
2408
2409
  retentionCube: t,
@@ -2585,11 +2586,11 @@ var Q = {
2585
2586
  //#region src/client/stores/optionsToAnalysisConfig.ts
2586
2587
  function sn(e) {
2587
2588
  let t = e.filters ? [...e.filters] : [], n = e.timeDimensions || [], r = [...(e.dimensions || []).map((e) => ({
2588
- id: k(),
2589
+ id: p(),
2589
2590
  field: e,
2590
2591
  isTimeDimension: !1
2591
2592
  })), ...n.map((e) => ({
2592
- id: k(),
2593
+ id: p(),
2593
2594
  field: e.dimension,
2594
2595
  granularity: e.granularity,
2595
2596
  isTimeDimension: !0,
@@ -2617,9 +2618,9 @@ function sn(e) {
2617
2618
  return {
2618
2619
  ...Y(),
2619
2620
  metrics: (e.measures || []).map((e, t) => ({
2620
- id: k(),
2621
+ id: p(),
2621
2622
  field: e,
2622
- label: A(t)
2623
+ label: d(t)
2623
2624
  })),
2624
2625
  breakdowns: r,
2625
2626
  filters: i,
@@ -2641,8 +2642,8 @@ function un(e) {
2641
2642
  return e.initialActiveView || "chart";
2642
2643
  }
2643
2644
  function dn(e) {
2644
- let t = ln(x, e.initialChartConfig), n = e.initialFunnelState ?? {};
2645
- return x.save({
2645
+ let t = ln(_, e.initialChartConfig), n = e.initialFunnelState ?? {};
2646
+ return _.save({
2646
2647
  funnelCube: n.funnelCube ?? null,
2647
2648
  funnelSteps: n.funnelSteps || [],
2648
2649
  activeFunnelStepIndex: 0,
@@ -2667,8 +2668,8 @@ function fn(e) {
2667
2668
  }, { flow: t }, un(e));
2668
2669
  }
2669
2670
  function pn(e) {
2670
- let t = ln(D, e.initialChartConfig), n = e.initialRetentionState ?? {}, r = f(p);
2671
- return D.save({
2671
+ let t = ln(b, e.initialChartConfig), n = e.initialRetentionState ?? {}, r = k(ee);
2672
+ return b.save({
2672
2673
  retentionCube: n.retentionCube ?? null,
2673
2674
  retentionBindingKey: n.retentionBindingKey ?? null,
2674
2675
  retentionTimeDimension: n.retentionTimeDimension ?? null,
@@ -2722,9 +2723,9 @@ function vn(e, t) {
2722
2723
  ...tn(),
2723
2724
  charts: {
2724
2725
  query: X.getDefaultChartConfig(),
2725
- funnel: x.getDefaultChartConfig(),
2726
+ funnel: _.getDefaultChartConfig(),
2726
2727
  flow: w.getDefaultChartConfig(),
2727
- retention: D.getDefaultChartConfig()
2728
+ retention: b.getDefaultChartConfig()
2728
2729
  },
2729
2730
  activeViews: {
2730
2731
  query: "chart",
@@ -2740,7 +2741,7 @@ function vn(e, t) {
2740
2741
  ...Zt(),
2741
2742
  charts: {
2742
2743
  ...e.charts,
2743
- funnel: x.getDefaultChartConfig()
2744
+ funnel: _.getDefaultChartConfig()
2744
2745
  }
2745
2746
  };
2746
2747
  case "flow": return {
@@ -2754,7 +2755,7 @@ function vn(e, t) {
2754
2755
  ...tn(),
2755
2756
  charts: {
2756
2757
  ...e.charts,
2757
- retention: D.getDefaultChartConfig()
2758
+ retention: b.getDefaultChartConfig()
2758
2759
  }
2759
2760
  };
2760
2761
  default: return {
@@ -2801,10 +2802,10 @@ function yn(n = {}) {
2801
2802
  return a()(i(e(t(o, {
2802
2803
  name: n.storageKey || "drizzle-cube-analysis-builder-v3",
2803
2804
  partialize: (e) => e.saveWorkspace(),
2804
- merge: (e, t) => e && b(e) ? {
2805
+ merge: (e, t) => e && g(e) ? {
2805
2806
  ...t,
2806
2807
  _persistedWorkspace: e
2807
- } : e && y(e) ? {
2808
+ } : e && D(e) ? {
2808
2809
  ...t,
2809
2810
  _persistedConfig: e
2810
2811
  } : r ? {
@@ -2827,9 +2828,9 @@ function yn(n = {}) {
2827
2828
  }
2828
2829
  })), { name: "AnalysisBuilderStore" }));
2829
2830
  }
2830
- var bn = he(null);
2831
+ var bn = ge(null);
2831
2832
  function xn({ children: e, initialQuery: t, initialChartConfig: n, disableLocalStorage: r, storageKey: i, initialAnalysisType: a, initialFunnelState: o, initialFlowState: s, initialRetentionState: c, initialActiveView: l }) {
2832
- let u = G(null);
2833
+ let u = W(null);
2833
2834
  return u.current ||= yn({
2834
2835
  initialQuery: t,
2835
2836
  initialChartConfig: n,
@@ -2846,12 +2847,12 @@ function xn({ children: e, initialQuery: t, initialChartConfig: n, disableLocalS
2846
2847
  });
2847
2848
  }
2848
2849
  function $(e) {
2849
- let t = _e(bn);
2850
+ let t = ve(bn);
2850
2851
  if (!t) throw Error("useAnalysisBuilderStore must be used within AnalysisBuilderStoreProvider");
2851
2852
  return r(t, e);
2852
2853
  }
2853
2854
  function Sn() {
2854
- let e = _e(bn);
2855
+ let e = ve(bn);
2855
2856
  if (!e) throw Error("useAnalysisBuilderStoreApi must be used within AnalysisBuilderStoreProvider");
2856
2857
  return e;
2857
2858
  }
@@ -2999,37 +3000,37 @@ function Bn(e) {
2999
3000
  //#endregion
3000
3001
  //#region src/client/hooks/useAnalysisState.ts
3001
3002
  function Vn(e = {}) {
3002
- let { externalColorPalette: t } = e, r = Sn(), i = $((e) => e.queryStates), a = $((e) => e.activeQueryIndex), o = $((e) => e.mergeStrategy), s = $((e) => e.setActiveQueryIndex), c = $((e) => e.setMergeStrategy), l = $((e) => e.addQuery), u = $((e) => e.removeQuery), d = $((e) => e.getCurrentState), f = $((e) => e.getMergeKeys), p = $((e) => e.isMultiQueryMode), m = d(), h = p(), g = f(), _ = W(() => {
3003
- let e = i[a] || m;
3003
+ let { externalColorPalette: t } = e, r = Sn(), i = $((e) => e.queryStates), a = $((e) => e.activeQueryIndex), o = $((e) => e.mergeStrategy), s = $((e) => e.setActiveQueryIndex), c = $((e) => e.setMergeStrategy), l = $((e) => e.addQuery), u = $((e) => e.removeQuery), d = $((e) => e.getCurrentState), p = $((e) => e.getMergeKeys), m = $((e) => e.isMultiQueryMode), h = d(), g = m(), _ = p(), v = U(() => {
3004
+ let e = i[a] || h;
3004
3005
  return Te(e.metrics, e.breakdowns, e.filters, e.order, !1, e.limit);
3005
3006
  }, [
3006
3007
  i,
3007
3008
  a,
3008
- m
3009
- ]), y = W(() => {
3009
+ h
3010
+ ]), y = U(() => {
3010
3011
  let e = i[0]?.breakdowns || [];
3011
3012
  return i.map((t, n) => Te(t.metrics, o === "merge" && n > 0 ? e : t.breakdowns, t.filters, t.order, !1, t.limit));
3012
- }, [i, o]), b = W(() => {
3013
+ }, [i, o]), b = U(() => {
3013
3014
  if (i.length <= 1) return null;
3014
3015
  let e = y.filter((e) => e.measures && e.measures.length > 0 || e.dimensions && e.dimensions.length > 0 || e.timeDimensions && e.timeDimensions.length > 0);
3015
3016
  return e.length < 2 ? null : {
3016
3017
  queries: e,
3017
3018
  mergeStrategy: o,
3018
- mergeKeys: g,
3019
+ mergeKeys: _,
3019
3020
  queryLabels: e.map((e, t) => `Q${t + 1}`)
3020
3021
  };
3021
3022
  }, [
3022
3023
  y,
3023
3024
  i.length,
3024
3025
  o,
3025
- g
3026
- ]), x = W(() => h ? In(y, o, g || []) : null, [
3027
- h,
3026
+ _
3027
+ ]), x = U(() => g ? In(y, o, _ || []) : null, [
3028
+ g,
3028
3029
  y,
3029
3030
  o,
3030
- g
3031
- ]), S = W(() => _.measures && _.measures.length > 0 || _.dimensions && _.dimensions.length > 0 || _.timeDimensions && _.timeDimensions.length > 0, [_]), C = W(() => {
3032
- if (!h) return m.metrics;
3031
+ _
3032
+ ]), S = U(() => v.measures && v.measures.length > 0 || v.dimensions && v.dimensions.length > 0 || v.timeDimensions && v.timeDimensions.length > 0, [v]), C = U(() => {
3033
+ if (!g) return h.metrics;
3033
3034
  let e = /* @__PURE__ */ new Set(), t = [];
3034
3035
  for (let n = 0; n < i.length; n++) {
3035
3036
  let r = i[n];
@@ -3043,79 +3044,79 @@ function Vn(e = {}) {
3043
3044
  }
3044
3045
  return t;
3045
3046
  }, [
3046
- h,
3047
+ g,
3047
3048
  i,
3048
- m.metrics
3049
- ]), w = W(() => {
3050
- if (!h) return m.breakdowns;
3049
+ h.metrics
3050
+ ]), w = U(() => {
3051
+ if (!g) return h.breakdowns;
3051
3052
  let e = /* @__PURE__ */ new Set(), t = [];
3052
3053
  for (let n of i) for (let r of n.breakdowns) e.has(r.field) || (e.add(r.field), t.push(r));
3053
3054
  return t;
3054
3055
  }, [
3055
- h,
3056
+ g,
3056
3057
  i,
3057
- m.breakdowns
3058
- ]), T = W(() => o === "merge" && a > 0 ? i[0]?.breakdowns || [] : m.breakdowns, [
3058
+ h.breakdowns
3059
+ ]), T = U(() => o === "merge" && a > 0 ? i[0]?.breakdowns || [] : h.breakdowns, [
3059
3060
  o,
3060
3061
  a,
3061
3062
  i,
3062
- m.breakdowns
3063
- ]), E = $((e) => e.analysisType), D = $((e) => e.funnelBindingKey), O = $((e) => e.funnelCube), k = $((e) => e.funnelSteps), A = $((e) => e.activeFunnelStepIndex), j = $((e) => e.funnelTimeDimension), M = W(() => E !== "funnel" || !D?.dimension || !j || !k || k.length < 2 ? !1 : k.every((e) => e.filters.length > 0), [
3063
+ h.breakdowns
3064
+ ]), E = $((e) => e.analysisType), D = $((e) => e.funnelBindingKey), O = $((e) => e.funnelCube), k = $((e) => e.funnelSteps), ee = $((e) => e.activeFunnelStepIndex), A = $((e) => e.funnelTimeDimension), te = U(() => E !== "funnel" || !D?.dimension || !A || !k || k.length < 2 ? !1 : k.every((e) => e.filters.length > 0), [
3064
3065
  E,
3065
3066
  D,
3066
- j,
3067
+ A,
3067
3068
  k
3068
- ]), ee = $((e) => e.charts.funnel?.chartType) || "funnel", N = $((e) => e.charts.funnel?.chartConfig), te = W(() => N || {}, [N]), P = $((e) => e.charts.funnel?.displayConfig), ne = W(() => P || {
3069
+ ]), ne = $((e) => e.charts.funnel?.chartType) || "funnel", j = $((e) => e.charts.funnel?.chartConfig), re = U(() => j || {}, [j]), M = $((e) => e.charts.funnel?.displayConfig), ie = U(() => M || {
3069
3070
  showLegend: !0,
3070
3071
  showGrid: !0,
3071
3072
  showTooltip: !0
3072
- }, [P]), re = $((e) => e.flowCube), ie = $((e) => e.flowBindingKey), ae = $((e) => e.flowTimeDimension), F = $((e) => e.eventDimension), I = $((e) => e.startingStep), L = $((e) => e.stepsBefore), R = $((e) => e.stepsAfter), oe = $((e) => e.joinStrategy), se = $((e) => e.charts.flow?.displayConfig), ce = W(() => se || {
3073
+ }, [M]), ae = $((e) => e.flowCube), oe = $((e) => e.flowBindingKey), N = $((e) => e.flowTimeDimension), P = $((e) => e.eventDimension), se = $((e) => e.startingStep), F = $((e) => e.stepsBefore), I = $((e) => e.stepsAfter), L = $((e) => e.joinStrategy), ce = $((e) => e.charts.flow?.displayConfig), le = U(() => ce || {
3073
3074
  showLegend: !0,
3074
3075
  showGrid: !0,
3075
3076
  showTooltip: !0
3076
- }, [se]), le = $((e) => e.charts.flow?.chartType) || "sankey", z = $((e) => e.buildFunnelQueryFromSteps), ue = W(() => E === "funnel" ? z() : null, [
3077
+ }, [ce]), ue = $((e) => e.charts.flow?.chartType) || "sankey", R = $((e) => e.buildFunnelQueryFromSteps), de = U(() => E === "funnel" ? R() : null, [
3077
3078
  E,
3078
- z,
3079
+ R,
3079
3080
  k
3080
- ]), B = $((e) => e.buildFlowQuery), de = W(() => E === "flow" ? B() : null, [
3081
+ ]), z = $((e) => e.buildFlowQuery), fe = U(() => E === "flow" ? z() : null, [
3081
3082
  E,
3082
- B,
3083
- re,
3084
- ie,
3083
+ z,
3085
3084
  ae,
3085
+ oe,
3086
+ N,
3087
+ P,
3088
+ se,
3086
3089
  F,
3087
3090
  I,
3088
- L,
3089
- R,
3090
- le,
3091
- oe
3092
- ]), fe = $((e) => e.retentionCube), pe = $((e) => e.retentionBindingKey), me = $((e) => e.retentionTimeDimension), V = $((e) => e.retentionDateRange), he = $((e) => e.retentionCohortFilters), ge = $((e) => e.retentionActivityFilters), _e = $((e) => e.retentionBreakdowns), U = $((e) => e.retentionViewGranularity), G = $((e) => e.retentionPeriods), ve = $((e) => e.retentionType), q = $((e) => e.buildRetentionQuery), J = $((e) => e.getRetentionValidation), ye = $((e) => e.charts.retention?.displayConfig), be = W(() => E === "retention" ? q() : null, [
3091
+ ue,
3092
+ L
3093
+ ]), pe = $((e) => e.retentionCube), me = $((e) => e.retentionBindingKey), he = $((e) => e.retentionTimeDimension), B = $((e) => e.retentionDateRange), ge = $((e) => e.retentionCohortFilters), _e = $((e) => e.retentionActivityFilters), ve = $((e) => e.retentionBreakdowns), H = $((e) => e.retentionViewGranularity), W = $((e) => e.retentionPeriods), K = $((e) => e.retentionType), q = $((e) => e.buildRetentionQuery), J = $((e) => e.getRetentionValidation), ye = $((e) => e.charts.retention?.displayConfig), be = U(() => E === "retention" ? q() : null, [
3093
3094
  E,
3094
3095
  q,
3095
- fe,
3096
3096
  pe,
3097
3097
  me,
3098
- V,
3099
- _e,
3100
- U,
3101
- G,
3102
- ve,
3103
3098
  he,
3104
- ge
3105
- ]), xe = W(() => E === "retention" ? J() : null, [
3099
+ B,
3100
+ ve,
3101
+ H,
3102
+ W,
3103
+ K,
3104
+ ge,
3105
+ _e
3106
+ ]), xe = U(() => E === "retention" ? J() : null, [
3106
3107
  E,
3107
3108
  J,
3108
- fe,
3109
3109
  pe,
3110
3110
  me,
3111
- V
3112
- ]), Se = W(() => E === "retention" ? be !== null : E === "flow" ? de !== null : E === "funnel" ? ue !== null : S ?? !1, [
3111
+ he,
3112
+ B
3113
+ ]), Se = U(() => E === "retention" ? be !== null : E === "flow" ? fe !== null : E === "funnel" ? de !== null : S ?? !1, [
3113
3114
  E,
3114
3115
  be,
3116
+ fe,
3115
3117
  de,
3116
- ue,
3117
3118
  S
3118
- ]), { chartType: Ce, chartConfig: we, displayConfig: Y } = $(n(Dn)), Ee = $((e) => e.userManuallySelectedChart), De = $((e) => e.localPaletteName), Oe = $((e) => e.setChartTypeManual), ke = $((e) => e.setChartConfig), Ae = $((e) => e.setDisplayConfig), je = $((e) => e.setFunnelChartType), Me = $((e) => e.setFunnelChartConfig), Ne = $((e) => e.setFunnelDisplayConfig), Pe = $((e) => e.setLocalPaletteName), Fe = $((e) => e.setUserManuallySelectedChart), Ie = H((e) => {
3119
+ ]), { chartType: Ce, chartConfig: we, displayConfig: Y } = $(n(Dn)), Ee = $((e) => e.userManuallySelectedChart), De = $((e) => e.localPaletteName), Oe = $((e) => e.setChartTypeManual), ke = $((e) => e.setChartConfig), Ae = $((e) => e.setDisplayConfig), je = $((e) => e.setFunnelChartType), Me = $((e) => e.setFunnelChartConfig), Ne = $((e) => e.setFunnelDisplayConfig), Pe = $((e) => e.setLocalPaletteName), Fe = $((e) => e.setUserManuallySelectedChart), Ie = V((e) => {
3119
3120
  if (E === "funnel") je(e);
3120
3121
  else {
3121
3122
  Oe(e);
@@ -3129,24 +3130,24 @@ function Vn(e = {}) {
3129
3130
  je,
3130
3131
  Oe,
3131
3132
  ke
3132
- ]), Le = H((e) => {
3133
+ ]), Le = V((e) => {
3133
3134
  E === "funnel" ? Me(e) : ke(e);
3134
3135
  }, [
3135
3136
  E,
3136
3137
  Me,
3137
3138
  ke
3138
- ]), Re = H((e) => {
3139
+ ]), Re = V((e) => {
3139
3140
  E === "funnel" ? Ne(e) : Ae(e);
3140
3141
  }, [
3141
3142
  E,
3142
3143
  Ne,
3143
3144
  Ae
3144
- ]), ze = W(() => Dt(C, w), [C, w]), Be = W(() => t ? Array.isArray(t) && typeof t[0] == "string" ? {
3145
+ ]), ze = U(() => Dt(C, w), [C, w]), Be = U(() => t ? Array.isArray(t) && typeof t[0] == "string" ? {
3145
3146
  name: "custom",
3146
3147
  label: "Custom",
3147
3148
  colors: t,
3148
3149
  gradient: t
3149
- } : t : v(De), [t, De]), Ve = H((e) => {
3150
+ } : t : f(De), [t, De]), Ve = V((e) => {
3150
3151
  r.setState((t) => ({ charts: {
3151
3152
  ...t.charts,
3152
3153
  flow: {
@@ -3158,7 +3159,7 @@ function Vn(e = {}) {
3158
3159
  displayConfig: e
3159
3160
  }
3160
3161
  } }));
3161
- }, [r]), He = H((e) => {
3162
+ }, [r]), He = V((e) => {
3162
3163
  r.setState((t) => ({ charts: {
3163
3164
  ...t.charts,
3164
3165
  retention: {
@@ -3170,28 +3171,28 @@ function Vn(e = {}) {
3170
3171
  displayConfig: e
3171
3172
  }
3172
3173
  } }));
3173
- }, [r]), Ue = $((e) => e.activeTab), We = $((e) => e.activeView), Ge = $((e) => e.displayLimit), Ke = $((e) => e.showFieldModal), qe = $((e) => e.fieldModalMode), Je = $((e) => e.setActiveTab), Ye = $((e) => e.setActiveView), Xe = $((e) => e.setDisplayLimit), Ze = $((e) => e.closeFieldModal), [Qe, $e] = K(0), et = $((e) => e.openMetricsModal), tt = $((e) => e.addMetric), nt = $((e) => e.removeMetric), rt = $((e) => e.toggleMetric), it = $((e) => e.reorderMetrics), at = $((e) => e.openBreakdownsModal), ot = $((e) => e.addBreakdown), st = $((e) => e.removeBreakdown), ct = $((e) => e.toggleBreakdown), lt = $((e) => e.setBreakdownGranularity), ut = $((e) => e.toggleBreakdownComparison), dt = $((e) => e.reorderBreakdowns), ft = $((e) => e.setFilters), pt = $((e) => e.dropFieldToFilter), mt = $((e) => e.setOrder), ht = $((e) => e.setLimit), gt = $((e) => e.clearQuery), _t = $((e) => e.clearCurrentMode), vt = $((e) => e.setFunnelBindingKey), yt = $((e) => e.setAnalysisType), bt = $((e) => e.setFunnelCube), xt = $((e) => e.addFunnelStep), St = $((e) => e.removeFunnelStep), Ct = $((e) => e.updateFunnelStep), wt = $((e) => e.setActiveFunnelStepIndex), Tt = $((e) => e.reorderFunnelSteps), Et = $((e) => e.setFunnelTimeDimension), Ot = $((e) => e.setFlowCube), At = $((e) => e.setFlowBindingKey), jt = $((e) => e.setFlowTimeDimension), Mt = $((e) => e.setEventDimension), Nt = $((e) => e.setStartingStepName), Pt = $((e) => e.setStartingStepFilters), Ft = $((e) => e.setStepsBefore), It = $((e) => e.setStepsAfter), Lt = $((e) => e.setJoinStrategy), Rt = $((e) => e.setRetentionCube), zt = $((e) => e.setRetentionBindingKey), Bt = $((e) => e.setRetentionTimeDimension), Vt = $((e) => e.setRetentionDateRange), Ht = $((e) => e.setRetentionCohortFilters), Ut = $((e) => e.setRetentionActivityFilters), Wt = $((e) => e.setRetentionBreakdowns), X = $((e) => e.addRetentionBreakdown), Z = $((e) => e.removeRetentionBreakdown), Gt = $((e) => e.setRetentionViewGranularity), Kt = $((e) => e.setRetentionPeriods), Q = $((e) => e.setRetentionType), qt = $((e) => e.getValidation), Jt = W(() => qt(), [
3174
+ }, [r]), Ue = $((e) => e.activeTab), We = $((e) => e.activeView), Ge = $((e) => e.displayLimit), Ke = $((e) => e.showFieldModal), qe = $((e) => e.fieldModalMode), Je = $((e) => e.setActiveTab), Ye = $((e) => e.setActiveView), Xe = $((e) => e.setDisplayLimit), Ze = $((e) => e.closeFieldModal), [Qe, $e] = G(0), et = $((e) => e.openMetricsModal), tt = $((e) => e.addMetric), nt = $((e) => e.removeMetric), rt = $((e) => e.toggleMetric), it = $((e) => e.reorderMetrics), at = $((e) => e.openBreakdownsModal), ot = $((e) => e.addBreakdown), st = $((e) => e.removeBreakdown), ct = $((e) => e.toggleBreakdown), lt = $((e) => e.setBreakdownGranularity), ut = $((e) => e.toggleBreakdownComparison), dt = $((e) => e.reorderBreakdowns), ft = $((e) => e.setFilters), pt = $((e) => e.dropFieldToFilter), mt = $((e) => e.setOrder), ht = $((e) => e.setLimit), gt = $((e) => e.clearQuery), _t = $((e) => e.clearCurrentMode), vt = $((e) => e.setFunnelBindingKey), yt = $((e) => e.setAnalysisType), bt = $((e) => e.setFunnelCube), xt = $((e) => e.addFunnelStep), St = $((e) => e.removeFunnelStep), Ct = $((e) => e.updateFunnelStep), wt = $((e) => e.setActiveFunnelStepIndex), Tt = $((e) => e.reorderFunnelSteps), Et = $((e) => e.setFunnelTimeDimension), Ot = $((e) => e.setFlowCube), At = $((e) => e.setFlowBindingKey), jt = $((e) => e.setFlowTimeDimension), Mt = $((e) => e.setEventDimension), Nt = $((e) => e.setStartingStepName), Pt = $((e) => e.setStartingStepFilters), Ft = $((e) => e.setStepsBefore), It = $((e) => e.setStepsAfter), Lt = $((e) => e.setJoinStrategy), Rt = $((e) => e.setRetentionCube), zt = $((e) => e.setRetentionBindingKey), Bt = $((e) => e.setRetentionTimeDimension), Vt = $((e) => e.setRetentionDateRange), Ht = $((e) => e.setRetentionCohortFilters), Ut = $((e) => e.setRetentionActivityFilters), Wt = $((e) => e.setRetentionBreakdowns), X = $((e) => e.addRetentionBreakdown), Z = $((e) => e.removeRetentionBreakdown), Gt = $((e) => e.setRetentionViewGranularity), Kt = $((e) => e.setRetentionPeriods), Q = $((e) => e.setRetentionType), qt = $((e) => e.getValidation), Jt = U(() => qt(), [
3174
3175
  qt,
3175
3176
  i,
3176
3177
  E,
3177
3178
  k,
3178
3179
  D,
3179
- j,
3180
- re,
3181
- ie,
3180
+ A,
3182
3181
  ae,
3182
+ oe,
3183
+ N,
3184
+ P,
3185
+ se,
3183
3186
  F,
3184
3187
  I,
3185
- L,
3186
- R,
3187
- oe
3188
- ]), Yt = H((e, t) => {
3188
+ L
3189
+ ]), Yt = V((e, t) => {
3189
3190
  E === "retention" && t === "dimension" ? X({ field: e.name }) : ct(e.name, t === "timeDimension");
3190
3191
  }, [
3191
3192
  E,
3192
3193
  X,
3193
3194
  ct
3194
- ]), Xt = H((e, t, n, r) => {
3195
+ ]), Xt = V((e, t, n, r) => {
3195
3196
  qe === "metrics" && t === "measure" ? rt(e.name) : qe === "breakdown" && Yt(e, t), r || Ze();
3196
3197
  }, [
3197
3198
  qe,
@@ -3201,13 +3202,13 @@ function Vn(e = {}) {
3201
3202
  ]);
3202
3203
  return {
3203
3204
  storeApi: r,
3204
- queryState: m,
3205
+ queryState: h,
3205
3206
  queryStates: i,
3206
3207
  activeQueryIndex: a,
3207
3208
  mergeStrategy: o,
3208
- isMultiQueryMode: h,
3209
- mergeKeys: g,
3210
- currentQuery: _,
3209
+ isMultiQueryMode: g,
3210
+ mergeKeys: _,
3211
+ currentQuery: v,
3211
3212
  allQueries: y,
3212
3213
  multiQueryConfig: b,
3213
3214
  multiQueryValidation: x,
@@ -3218,35 +3219,35 @@ function Vn(e = {}) {
3218
3219
  effectiveBreakdowns: T,
3219
3220
  analysisType: E,
3220
3221
  funnelBindingKey: D,
3221
- isFunnelModeEnabled: M,
3222
+ isFunnelModeEnabled: te,
3222
3223
  funnelCube: O,
3223
3224
  funnelSteps: k,
3224
- activeFunnelStepIndex: A,
3225
- funnelTimeDimension: j,
3226
- funnelChartType: ee,
3227
- funnelChartConfig: te,
3228
- funnelDisplayConfig: ne,
3229
- serverFunnelQuery: ue,
3230
- flowCube: re,
3231
- flowBindingKey: ie,
3232
- flowTimeDimension: ae,
3233
- eventDimension: F,
3234
- startingStep: I,
3235
- stepsBefore: L,
3236
- stepsAfter: R,
3237
- joinStrategy: oe,
3238
- flowDisplayConfig: ce,
3239
- serverFlowQuery: de,
3240
- retentionCube: fe,
3241
- retentionBindingKey: pe,
3242
- retentionTimeDimension: me,
3243
- retentionDateRange: V,
3244
- retentionCohortFilters: he,
3245
- retentionActivityFilters: ge,
3246
- retentionBreakdowns: _e,
3247
- retentionViewGranularity: U,
3248
- retentionPeriods: G,
3249
- retentionType: ve,
3225
+ activeFunnelStepIndex: ee,
3226
+ funnelTimeDimension: A,
3227
+ funnelChartType: ne,
3228
+ funnelChartConfig: re,
3229
+ funnelDisplayConfig: ie,
3230
+ serverFunnelQuery: de,
3231
+ flowCube: ae,
3232
+ flowBindingKey: oe,
3233
+ flowTimeDimension: N,
3234
+ eventDimension: P,
3235
+ startingStep: se,
3236
+ stepsBefore: F,
3237
+ stepsAfter: I,
3238
+ joinStrategy: L,
3239
+ flowDisplayConfig: le,
3240
+ serverFlowQuery: fe,
3241
+ retentionCube: pe,
3242
+ retentionBindingKey: me,
3243
+ retentionTimeDimension: he,
3244
+ retentionDateRange: B,
3245
+ retentionCohortFilters: ge,
3246
+ retentionActivityFilters: _e,
3247
+ retentionBreakdowns: ve,
3248
+ retentionViewGranularity: H,
3249
+ retentionPeriods: W,
3250
+ retentionType: K,
3250
3251
  retentionDisplayConfig: ye,
3251
3252
  serverRetentionQuery: be,
3252
3253
  retentionValidation: xe,
@@ -3264,7 +3265,7 @@ function Vn(e = {}) {
3264
3265
  fieldModalMode: qe,
3265
3266
  activeTableIndex: Qe,
3266
3267
  adapterValidation: Jt,
3267
- getQueryConfig: H(() => {
3268
+ getQueryConfig: V(() => {
3268
3269
  let e = r.getState();
3269
3270
  return e.analysisType === "funnel" ? e.buildFunnelQueryFromSteps() || e.buildCurrentQuery() : e.queryStates.length > 1 ? {
3270
3271
  queries: e.buildAllQueries(),
@@ -3275,7 +3276,7 @@ function Vn(e = {}) {
3275
3276
  stepTimeToConvert: e.stepTimeToConvert
3276
3277
  } : e.buildCurrentQuery();
3277
3278
  }, [r]),
3278
- getChartConfig: H(() => {
3279
+ getChartConfig: V(() => {
3279
3280
  let e = r.getState(), t = e.charts[e.analysisType];
3280
3281
  return t ? {
3281
3282
  chartType: t.chartType,
@@ -3292,7 +3293,7 @@ function Vn(e = {}) {
3292
3293
  we,
3293
3294
  Y
3294
3295
  ]),
3295
- getAnalysisType: H(() => r.getState().analysisType, [r]),
3296
+ getAnalysisType: V(() => r.getState().analysisType, [r]),
3296
3297
  actions: {
3297
3298
  setActiveQueryIndex: s,
3298
3299
  setMergeStrategy: c,
@@ -3410,12 +3411,12 @@ function qn(e) {
3410
3411
  //#endregion
3411
3412
  //#region src/client/hooks/useAnalysisQuery.ts
3412
3413
  function Jn(e) {
3413
- let { currentQuery: t, allQueries: n, multiQueryConfig: r, isMultiQueryMode: i, isValidQuery: a, initialData: o, mergeStrategy: s, funnelBindingKey: c, isFunnelModeEnabled: l, analysisType: u, serverFunnelQuery: d, serverFlowQuery: f, serverRetentionQuery: p, retentionValidation: m } = e, { getFieldLabel: h } = ue(), g = u === "funnel" || l, _ = u === "flow", v = u === "retention", y = u === "query" && i, b = u === "query" && !i, x = u === "funnel" && !!d, S = Hn({
3414
+ let { currentQuery: t, allQueries: n, multiQueryConfig: r, isMultiQueryMode: i, isValidQuery: a, initialData: o, mergeStrategy: s, funnelBindingKey: c, isFunnelModeEnabled: l, analysisType: u, serverFunnelQuery: d, serverFlowQuery: f, serverRetentionQuery: p, retentionValidation: m } = e, { getFieldLabel: h } = de(), g = u === "funnel" || l, _ = u === "flow", v = u === "retention", y = u === "query" && i, b = u === "query" && !i, x = u === "funnel" && !!d, S = Hn({
3414
3415
  isRetentionMode: v,
3415
3416
  isFlowMode: _,
3416
3417
  isFunnelMode: g,
3417
3418
  isMultiMode: y
3418
- }), C = W(() => x || !g || !c || n.length < 2 ? null : fe(n, c), [
3419
+ }), C = U(() => x || !g || !c || n.length < 2 ? null : pe(n, c), [
3419
3420
  x,
3420
3421
  g,
3421
3422
  c,
@@ -3432,46 +3433,46 @@ function Jn(e) {
3432
3433
  hasServerFunnelQuery: !!d,
3433
3434
  hasServerFlowQuery: !!f,
3434
3435
  hasServerRetentionQuery: !!p
3435
- }), T = F(t, {
3436
+ }), T = oe(t, {
3436
3437
  skip: w.single,
3437
3438
  debounceMs: 300
3438
- }), E = R(r, {
3439
+ }), E = se(r, {
3439
3440
  skip: w.multi,
3440
3441
  debounceMs: 300
3441
- }), D = ce(C, {
3442
+ }), D = L(C, {
3442
3443
  skip: w.funnel,
3443
3444
  debounceMs: 300,
3444
3445
  prebuiltServerQuery: x ? d : void 0
3445
- }), O = ae(f ?? null, {
3446
+ }), O = ue(f ?? null, {
3446
3447
  skip: w.flow,
3447
3448
  debounceMs: 300
3448
- }), k = se(p ?? null, {
3449
+ }), k = P(p ?? null, {
3449
3450
  skip: w.retention,
3450
3451
  debounceMs: 300,
3451
3452
  getFieldLabel: h
3452
- }), A = de({
3453
+ }), ee = fe({
3453
3454
  queries: i ? n : [t],
3454
3455
  isMultiQueryMode: i,
3455
3456
  skip: w.dryRun
3456
- }), j = B(D.serverQuery, { skip: !g || !D.serverQuery }), M = B(O.serverQuery, { skip: !_ || !O.serverQuery }), ee = B(p, { skip: !v || !p }), N = Un(S, {
3457
+ }), A = z(D.serverQuery, { skip: !g || !D.serverQuery }), te = z(O.serverQuery, { skip: !_ || !O.serverQuery }), ne = z(p, { skip: !v || !p }), j = Un(S, {
3457
3458
  retention: k.isLoading || k.isDebouncing,
3458
3459
  flow: O.isLoading || O.isDebouncing,
3459
3460
  funnel: D.isExecuting || D.isDebouncing,
3460
3461
  multi: E.isLoading,
3461
3462
  single: T.isLoading
3462
- }), te = Un(S, {
3463
+ }), re = Un(S, {
3463
3464
  retention: k.isFetching,
3464
3465
  flow: O.isFetching,
3465
3466
  funnel: D.isExecuting,
3466
3467
  multi: E.isFetching,
3467
3468
  single: T.isFetching
3468
- }), P = Un(S, {
3469
+ }), M = Un(S, {
3469
3470
  retention: k.error,
3470
3471
  flow: O.error,
3471
3472
  funnel: D.error,
3472
3473
  multi: E.error,
3473
3474
  single: T.error
3474
- }), ne = !!(T.debouncedQuery || E.debouncedConfig || !D.isDebouncing || !O.isDebouncing || !k.isDebouncing), re = H((e) => {
3475
+ }), ie = !!(T.debouncedQuery || E.debouncedConfig || !D.isDebouncing || !O.isDebouncing || !k.isDebouncing), ae = V((e) => {
3475
3476
  switch (S) {
3476
3477
  case "retention":
3477
3478
  k.execute(e);
@@ -3494,7 +3495,7 @@ function Jn(e) {
3494
3495
  D,
3495
3496
  E,
3496
3497
  T
3497
- ]), ie = W(() => Kn({
3498
+ ]), N = U(() => Kn({
3498
3499
  hasResults: Un(S, {
3499
3500
  retention: k.chartData,
3500
3501
  flow: O.data,
@@ -3504,14 +3505,14 @@ function Jn(e) {
3504
3505
  }),
3505
3506
  initialData: o,
3506
3507
  isValidQuery: a,
3507
- isLoading: N,
3508
- isFetching: te,
3509
- error: P
3508
+ isLoading: j,
3509
+ isFetching: re,
3510
+ error: M
3510
3511
  }), [
3511
3512
  a,
3512
- N,
3513
- te,
3514
- P,
3513
+ j,
3514
+ re,
3515
+ M,
3515
3516
  T.rawData,
3516
3517
  E.data,
3517
3518
  D.chartData,
@@ -3519,7 +3520,7 @@ function Jn(e) {
3519
3520
  k.chartData,
3520
3521
  o,
3521
3522
  S
3522
- ]), I = W(() => qn({
3523
+ ]), F = U(() => qn({
3523
3524
  isRetentionMode: v,
3524
3525
  isFlowMode: _,
3525
3526
  isFunnelMode: g,
@@ -3541,25 +3542,25 @@ function Jn(e) {
3541
3542
  g,
3542
3543
  _,
3543
3544
  v
3544
- ]), L = W(() => g && D.stepResults ? D.stepResults.map((e) => e.data) : !y || !E.perQueryData ? null : E.perQueryData, [
3545
+ ]), I = U(() => g && D.stepResults ? D.stepResults.map((e) => e.data) : !y || !E.perQueryData ? null : E.perQueryData, [
3545
3546
  y,
3546
3547
  g,
3547
3548
  E.perQueryData,
3548
3549
  D.stepResults
3549
- ]), { funnelExecutedQueries: oe, funnelServerQuery: le, funnelDebugData: z, flowServerQuery: pe, flowChartData: me, flowDebugData: V, retentionServerQuery: he, retentionChartData: ge, retentionDebugData: _e } = Wn({
3550
+ ]), { funnelExecutedQueries: ce, funnelServerQuery: le, funnelDebugData: R, flowServerQuery: me, flowChartData: he, flowDebugData: B, retentionServerQuery: ge, retentionChartData: _e, retentionDebugData: ve } = Wn({
3550
3551
  isFunnelMode: g,
3551
3552
  isFlowMode: _,
3552
3553
  isRetentionMode: v,
3553
3554
  funnelExecutedQueries: D.executedQueries,
3554
3555
  funnelServerQuery: D.serverQuery,
3555
- funnelDebugData: j.debugData,
3556
+ funnelDebugData: A.debugData,
3556
3557
  flowServerQuery: O.serverQuery,
3557
3558
  flowData: O.data,
3558
- flowDebugData: M.debugData,
3559
+ flowDebugData: te.debugData,
3559
3560
  retentionServerQuery: p ?? null,
3560
3561
  retentionChartData: k.chartData,
3561
- retentionDebugData: ee.debugData
3562
- }), U = W(() => Un(S, {
3562
+ retentionDebugData: ne.debugData
3563
+ }), H = U(() => Un(S, {
3563
3564
  retention: k.needsRefresh,
3564
3565
  flow: O.needsRefresh,
3565
3566
  funnel: D.needsRefresh,
@@ -3571,45 +3572,46 @@ function Jn(e) {
3571
3572
  O.needsRefresh,
3572
3573
  D.needsRefresh,
3573
3574
  T.needsRefresh
3574
- ]), G = W(() => {
3575
+ ]), W = U(() => {
3575
3576
  if (b && T.warnings) return T.warnings;
3576
3577
  }, [b, T.warnings]);
3577
3578
  return {
3578
- executionStatus: ie,
3579
- executionResults: I,
3580
- perQueryResults: L,
3581
- isLoading: N,
3582
- isFetching: te,
3583
- error: P,
3584
- debugDataPerQuery: A.debugDataPerQuery,
3585
- hasDebounced: ne,
3586
- refetch: re,
3587
- funnelExecutedQueries: oe,
3579
+ executionStatus: N,
3580
+ executionResults: F,
3581
+ perQueryResults: I,
3582
+ isLoading: j,
3583
+ isFetching: re,
3584
+ error: M,
3585
+ debugDataPerQuery: ee.debugDataPerQuery,
3586
+ hasDebounced: ie,
3587
+ refetch: ae,
3588
+ funnelExecutedQueries: ce,
3588
3589
  funnelServerQuery: le,
3589
- funnelDebugData: z,
3590
- flowServerQuery: pe,
3591
- flowChartData: me,
3592
- flowDebugData: V,
3593
- retentionServerQuery: he,
3594
- retentionChartData: ge,
3595
- retentionDebugData: _e,
3590
+ funnelDebugData: R,
3591
+ flowServerQuery: me,
3592
+ flowChartData: he,
3593
+ flowDebugData: B,
3594
+ retentionServerQuery: ge,
3595
+ retentionChartData: _e,
3596
+ retentionDebugData: ve,
3596
3597
  retentionValidation: m ?? null,
3597
- needsRefresh: U,
3598
- warnings: G
3598
+ needsRefresh: H,
3599
+ warnings: W
3599
3600
  };
3600
3601
  }
3601
3602
  //#endregion
3602
3603
  //#region src/client/utils/shareUtils.ts
3603
3604
  var Yn = o(), Xn = 1800, Zn = "share=";
3604
3605
  function Qn(e) {
3605
- return (0, Yn.compressToEncodedURIComponent)(JSON.stringify(e));
3606
+ let t = JSON.stringify(e);
3607
+ return (0, Yn.compressToEncodedURIComponent)(t);
3606
3608
  }
3607
3609
  function $n(e) {
3608
3610
  try {
3609
3611
  let t = (0, Yn.decompressFromEncodedURIComponent)(e);
3610
3612
  if (!t) return null;
3611
3613
  let n = JSON.parse(t);
3612
- return y(n) ? n : (console.warn("[shareUtils] Invalid AnalysisConfig in share URL"), null);
3614
+ return D(n) ? n : (console.warn("[shareUtils] Invalid AnalysisConfig in share URL"), null);
3613
3615
  } catch {
3614
3616
  return null;
3615
3617
  }
@@ -3702,19 +3704,19 @@ function cr(e) {
3702
3704
  return typeof e == "object" && !!e && "funnel" in e && typeof e.funnel == "object";
3703
3705
  }
3704
3706
  function lr(e) {
3705
- let { state: t, query: n, aiEndpoint: r = "/api/ai", onQueryChange: i, onChartConfigChange: a } = e, { storeApi: o, actions: s } = t, { apiOptions: c } = u(), l = G(!1);
3706
- U(() => {
3707
+ let { state: t, query: n, aiEndpoint: r = "/api/ai", onQueryChange: i, onChartConfigChange: a } = e, { storeApi: o, actions: s } = t, { apiOptions: c } = u(), l = W(!1);
3708
+ H(() => {
3707
3709
  if (l.current) return;
3708
3710
  l.current = !0;
3709
3711
  let e = ar();
3710
3712
  e && (o.getState().load(e), ir());
3711
- }, [o]), U(() => {
3713
+ }, [o]), H(() => {
3712
3714
  i && t.isValidQuery && i(t.currentQuery);
3713
3715
  }, [
3714
3716
  t.currentQuery,
3715
3717
  t.isValidQuery,
3716
3718
  i
3717
- ]), U(() => {
3719
+ ]), H(() => {
3718
3720
  a && a({
3719
3721
  chartType: t.chartType,
3720
3722
  chartConfig: t.chartConfig,
@@ -3726,46 +3728,46 @@ function lr(e) {
3726
3728
  t.displayConfig,
3727
3729
  a
3728
3730
  ]);
3729
- let { combinedMetrics: d, combinedBreakdowns: f, chartType: p, chartConfig: m, userManuallySelectedChart: h } = t, { hasDebounced: g } = n, { setChartType: _, setChartConfig: v } = s, y = G("");
3730
- U(() => {
3731
- if (!g || d.length === 0 && f.length === 0) return;
3731
+ let { combinedMetrics: f, combinedBreakdowns: m, chartType: h, chartConfig: g, userManuallySelectedChart: _ } = t, { hasDebounced: v } = n, { setChartType: y, setChartConfig: b } = s, x = W("");
3732
+ H(() => {
3733
+ if (!v || f.length === 0 && m.length === 0) return;
3732
3734
  let e = JSON.stringify({
3733
- metrics: d.map((e) => e.field),
3734
- breakdowns: f.map((e) => ({
3735
+ metrics: f.map((e) => e.field),
3736
+ breakdowns: m.map((e) => ({
3735
3737
  field: e.field,
3736
3738
  isTime: e.isTimeDimension
3737
3739
  }))
3738
3740
  });
3739
- if (e === y.current) return;
3740
- y.current = e;
3741
- let t = jt(d, f, p, h);
3741
+ if (e === x.current) return;
3742
+ x.current = e;
3743
+ let t = jt(f, m, h, _);
3742
3744
  if (t) {
3743
- let { chartConfig: e } = kt(d, f, t);
3744
- _(t), v(e), s.setUserManuallySelectedChart(!1);
3745
- } else if (d.length > 0 || f.length > 0) {
3746
- if (p === "table") {
3747
- let e = [...f.map((e) => e.field), ...d.map((e) => e.field)], t = Array.isArray(m.xAxis) ? m.xAxis : [], n = e.filter((e) => !t.includes(e));
3748
- n.length > 0 && v({
3749
- ...m,
3745
+ let { chartConfig: e } = kt(f, m, t);
3746
+ y(t), b(e), s.setUserManuallySelectedChart(!1);
3747
+ } else if (f.length > 0 || m.length > 0) {
3748
+ if (h === "table") {
3749
+ let e = [...m.map((e) => e.field), ...f.map((e) => e.field)], t = Array.isArray(g.xAxis) ? g.xAxis : [], n = e.filter((e) => !t.includes(e));
3750
+ n.length > 0 && b({
3751
+ ...g,
3750
3752
  xAxis: [...t, ...n]
3751
3753
  });
3752
- } else if (!m.xAxis?.length && !m.yAxis?.length && !m.series?.length) {
3753
- let { chartConfig: e } = kt(d, f, p);
3754
- v(e);
3754
+ } else if (!g.xAxis?.length && !g.yAxis?.length && !g.series?.length) {
3755
+ let { chartConfig: e } = kt(f, m, h);
3756
+ b(e);
3755
3757
  }
3756
3758
  }
3757
3759
  }, [
3758
- g,
3759
- d,
3760
+ v,
3760
3761
  f,
3761
- p,
3762
- h,
3763
3762
  m,
3763
+ h,
3764
3764
  _,
3765
- v,
3765
+ g,
3766
+ y,
3767
+ b,
3766
3768
  s
3767
3769
  ]);
3768
- let [b, x] = K({
3770
+ let [S, C] = G({
3769
3771
  isOpen: !1,
3770
3772
  userPrompt: "",
3771
3773
  isGenerating: !1,
@@ -3773,7 +3775,7 @@ function lr(e) {
3773
3775
  hasGeneratedQuery: !1,
3774
3776
  previousState: null,
3775
3777
  previousConfig: null
3776
- }), S = H((e) => {
3778
+ }), w = V((e) => {
3777
3779
  o.getState().updateQueryState(t.activeQueryIndex, (t) => {
3778
3780
  let n = e(t);
3779
3781
  return {
@@ -3785,7 +3787,7 @@ function lr(e) {
3785
3787
  limit: n.limit
3786
3788
  };
3787
3789
  });
3788
- }, [o, t.activeQueryIndex]), C = H((e) => {
3790
+ }, [o, t.activeQueryIndex]), T = V((e) => {
3789
3791
  let t = {
3790
3792
  version: 1,
3791
3793
  analysisType: "funnel",
@@ -3798,9 +3800,9 @@ function lr(e) {
3798
3800
  query: e
3799
3801
  };
3800
3802
  o.getState().load(t);
3801
- }, [o]), w = H(() => {
3803
+ }, [o]), E = V(() => {
3802
3804
  let e = o.getState().save();
3803
- x({
3805
+ C({
3804
3806
  isOpen: !0,
3805
3807
  userPrompt: "",
3806
3808
  isGenerating: !1,
@@ -3826,30 +3828,30 @@ function lr(e) {
3826
3828
  t.chartConfig,
3827
3829
  t.displayConfig,
3828
3830
  t.analysisType
3829
- ]), T = H(() => {
3830
- x((e) => ({
3831
+ ]), D = V(() => {
3832
+ C((e) => ({
3831
3833
  ...e,
3832
3834
  isOpen: !1,
3833
3835
  userPrompt: "",
3834
3836
  error: null,
3835
3837
  hasGeneratedQuery: !1
3836
3838
  }));
3837
- }, []), E = H((e) => {
3838
- x((t) => ({
3839
+ }, []), O = V((e) => {
3840
+ C((t) => ({
3839
3841
  ...t,
3840
3842
  userPrompt: e
3841
3843
  }));
3842
- }, []), D = H(async () => {
3843
- if (b.userPrompt.trim()) {
3844
- x((e) => ({
3844
+ }, []), k = V(async () => {
3845
+ if (S.userPrompt.trim()) {
3846
+ C((e) => ({
3845
3847
  ...e,
3846
3848
  isGenerating: !0,
3847
3849
  error: null
3848
3850
  }));
3849
3851
  try {
3850
- let e = sr(await or("", b.userPrompt, r, c?.headers)), n = JSON.parse(e), i = "query" in n && n.query ? n.query : n, a = "chartType" in n ? n.chartType : void 0, o = "chartConfig" in n ? n.chartConfig : void 0;
3852
+ let e = sr(await or("", S.userPrompt, r, c?.headers)), n = JSON.parse(e), i = "query" in n && n.query ? n.query : n, a = "chartType" in n ? n.chartType : void 0, o = "chartConfig" in n ? n.chartConfig : void 0;
3851
3853
  if (cr(i)) {
3852
- s.setAnalysisType("funnel"), C(i), s.setChartType("funnel"), o && s.setChartConfig(o), s.setActiveView("chart"), x((e) => ({
3854
+ s.setAnalysisType("funnel"), T(i), s.setChartType("funnel"), o && s.setChartConfig(o), s.setActiveView("chart"), C((e) => ({
3853
3855
  ...e,
3854
3856
  isGenerating: !1,
3855
3857
  hasGeneratedQuery: !0
@@ -3857,19 +3859,19 @@ function lr(e) {
3857
3859
  return;
3858
3860
  }
3859
3861
  let l = i;
3860
- S((e) => ({
3862
+ w((e) => ({
3861
3863
  ...e,
3862
3864
  metrics: (l.measures || []).map((e, t) => ({
3863
- id: k(),
3865
+ id: p(),
3864
3866
  field: e,
3865
- label: A(t)
3867
+ label: d(t)
3866
3868
  })),
3867
3869
  breakdowns: [...(l.dimensions || []).map((e) => ({
3868
- id: k(),
3870
+ id: p(),
3869
3871
  field: e,
3870
3872
  isTimeDimension: !1
3871
3873
  })), ...(l.timeDimensions || []).map((e) => ({
3872
- id: k(),
3874
+ id: p(),
3873
3875
  field: e.dimension,
3874
3876
  granularity: e.granularity,
3875
3877
  isTimeDimension: !0
@@ -3877,13 +3879,13 @@ function lr(e) {
3877
3879
  filters: l.filters || [],
3878
3880
  order: l.order || void 0,
3879
3881
  limit: l.limit ?? void 0
3880
- })), t.analysisType === "funnel" && s.setAnalysisType("query"), a && s.setChartType(a), o && s.setChartConfig(o), s.setActiveView("chart"), x((e) => ({
3882
+ })), t.analysisType === "funnel" && s.setAnalysisType("query"), a && s.setChartType(a), o && s.setChartConfig(o), s.setActiveView("chart"), C((e) => ({
3881
3883
  ...e,
3882
3884
  isGenerating: !1,
3883
3885
  hasGeneratedQuery: !0
3884
3886
  }));
3885
3887
  } catch (e) {
3886
- x((t) => ({
3888
+ C((t) => ({
3887
3889
  ...t,
3888
3890
  isGenerating: !1,
3889
3891
  error: e instanceof Error ? e.message : "Failed to generate query"
@@ -3891,15 +3893,15 @@ function lr(e) {
3891
3893
  }
3892
3894
  }
3893
3895
  }, [
3894
- b.userPrompt,
3896
+ S.userPrompt,
3895
3897
  r,
3896
3898
  c?.headers,
3897
- S,
3898
- C,
3899
+ w,
3900
+ T,
3899
3901
  t.analysisType,
3900
3902
  s
3901
- ]), O = H(() => {
3902
- x({
3903
+ ]), ee = V(() => {
3904
+ C({
3903
3905
  isOpen: !1,
3904
3906
  userPrompt: "",
3905
3907
  isGenerating: !1,
@@ -3908,13 +3910,13 @@ function lr(e) {
3908
3910
  previousState: null,
3909
3911
  previousConfig: null
3910
3912
  });
3911
- }, []), j = H(() => {
3912
- b.previousConfig ? o.getState().load(b.previousConfig) : b.previousState && (S((e) => ({
3913
+ }, []), A = V(() => {
3914
+ S.previousConfig ? o.getState().load(S.previousConfig) : S.previousState && (w((e) => ({
3913
3915
  ...e,
3914
- metrics: b.previousState.metrics,
3915
- breakdowns: b.previousState.breakdowns,
3916
- filters: b.previousState.filters
3917
- })), s.setChartType(b.previousState.chartType), s.setChartConfig(b.previousState.chartConfig), s.setDisplayConfig(b.previousState.displayConfig), b.previousState.analysisType && s.setAnalysisType(b.previousState.analysisType)), x({
3916
+ metrics: S.previousState.metrics,
3917
+ breakdowns: S.previousState.breakdowns,
3918
+ filters: S.previousState.filters
3919
+ })), s.setChartType(S.previousState.chartType), s.setChartConfig(S.previousState.chartConfig), s.setDisplayConfig(S.previousState.displayConfig), S.previousState.analysisType && s.setAnalysisType(S.previousState.analysisType)), C({
3918
3920
  isOpen: !1,
3919
3921
  userPrompt: "",
3920
3922
  isGenerating: !1,
@@ -3924,23 +3926,23 @@ function lr(e) {
3924
3926
  previousConfig: null
3925
3927
  });
3926
3928
  }, [
3927
- b.previousState,
3928
- b.previousConfig,
3929
+ S.previousState,
3930
+ S.previousConfig,
3929
3931
  o,
3930
- S,
3932
+ w,
3931
3933
  s
3932
- ]), [M, ee] = K("idle"), N = t.effectiveIsValidQuery;
3934
+ ]), [te, ne] = G("idle"), j = t.effectiveIsValidQuery;
3933
3935
  return {
3934
- aiState: b,
3935
- openAI: w,
3936
- closeAI: T,
3937
- setAIPrompt: E,
3938
- generateAI: D,
3939
- acceptAI: O,
3940
- cancelAI: j,
3941
- shareButtonState: M,
3942
- share: H(async () => {
3943
- if (!N) return;
3936
+ aiState: S,
3937
+ openAI: E,
3938
+ closeAI: D,
3939
+ setAIPrompt: O,
3940
+ generateAI: k,
3941
+ acceptAI: ee,
3942
+ cancelAI: A,
3943
+ shareButtonState: te,
3944
+ share: V(async () => {
3945
+ if (!j) return;
3944
3946
  let { encoded: e, queryOnly: t } = tr(o.getState().save());
3945
3947
  if (!e) return;
3946
3948
  let n = `${window.location.origin}${window.location.pathname}#share=${e}`;
@@ -3950,11 +3952,11 @@ function lr(e) {
3950
3952
  let e = document.createElement("textarea");
3951
3953
  e.value = n, document.body.appendChild(e), e.select(), document.execCommand("copy"), document.body.removeChild(e);
3952
3954
  }
3953
- ee(t ? "copied-no-chart" : "copied"), setTimeout(() => {
3954
- ee("idle");
3955
+ ne(t ? "copied-no-chart" : "copied"), setTimeout(() => {
3956
+ ne("idle");
3955
3957
  }, 2e3);
3956
- }, [N, o]),
3957
- canShare: N
3958
+ }, [j, o]),
3959
+ canShare: j
3958
3960
  };
3959
3961
  }
3960
3962
  //#endregion
@@ -4188,7 +4190,7 @@ function fr(e) {
4188
4190
  }
4189
4191
  function pr(e, t) {
4190
4192
  if (typeof e.dimension == "string") return !0;
4191
- let n = pe(t);
4193
+ let n = me(t);
4192
4194
  return n ? e.dimension.some((e) => e.cube === n) : !1;
4193
4195
  }
4194
4196
  function mr(e, t) {
@@ -4196,7 +4198,7 @@ function mr(e, t) {
4196
4198
  for (let r = 0; r < t.length; r++) {
4197
4199
  let i = t[r];
4198
4200
  if (!pr(e, i.query)) {
4199
- let e = pe(i.query) || "unknown";
4201
+ let e = me(i.query) || "unknown";
4200
4202
  n.push({
4201
4203
  type: "cross_cube",
4202
4204
  message: `Step ${r + 1} uses cube "${e}" but no binding key mapping exists for it`,
@@ -4266,4 +4268,4 @@ function yr(e) {
4266
4268
  //#endregion
4267
4269
  export { On as A, Tn as C, An as D, En as E, Ye as F, Sn as M, It as N, wn as O, it as P, xn as S, Cn as T, Bn as _, mr as a, In as b, ur as c, nr as d, er as f, Pn as g, Fn as h, dr as i, $ as j, kn as k, Qn as l, ar as m, yr as n, gr as o, rr as p, _r as r, fr as s, vr as t, $n as u, Rn as v, Dn as w, Mn as x, Nn as y };
4268
4270
 
4269
- //# sourceMappingURL=analysis-builder-shared-DkL0e-wU.js.map
4271
+ //# sourceMappingURL=analysis-builder-shared-l-4WKVS1.js.map