drizzle-cube 0.11.1 → 0.12.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 (264) hide show
  1. package/dist/adapters/ActivityGridChart.config-D2pyoHSf.cjs +1 -0
  2. package/dist/adapters/ActivityGridChart.config-DW-AgFxA.js +2 -0
  3. package/dist/adapters/AreaChart.config-BP3BU4W2.js +2 -0
  4. package/dist/adapters/AreaChart.config-CRyAhIvc.cjs +1 -0
  5. package/dist/adapters/BarChart.config-A6F0Q9OX.cjs +1 -0
  6. package/dist/adapters/BarChart.config-BInCLrWt.js +2 -0
  7. package/dist/adapters/BoxPlotChart.config-DUTvglWv.cjs +1 -0
  8. package/dist/adapters/BoxPlotChart.config-DXvJdMSr.js +2 -0
  9. package/dist/adapters/BubbleChart.config-B66v-bb5.cjs +1 -0
  10. package/dist/adapters/BubbleChart.config-nIFyWuBW.js +2 -0
  11. package/dist/adapters/CandlestickChart.config-C05c1RMZ.cjs +1 -0
  12. package/dist/adapters/CandlestickChart.config-D4axcOge.js +2 -0
  13. package/dist/adapters/DataTable.config-BOIQnyoS.js +2 -0
  14. package/dist/adapters/DataTable.config-CeFswxJI.cjs +1 -0
  15. package/dist/adapters/DotStripChart.config-B4DU-F1R.cjs +1 -0
  16. package/dist/adapters/DotStripChart.config-BsWG7BRS.js +2 -0
  17. package/dist/adapters/FunnelChart.config-BuAkxiFx.js +2 -0
  18. package/dist/adapters/FunnelChart.config-CEVsDKfR.cjs +1 -0
  19. package/dist/adapters/GaugeChart.config-JhbBQ77o.cjs +1 -0
  20. package/dist/adapters/GaugeChart.config-g3iF-G9g.js +2 -0
  21. package/dist/adapters/HeatMapChart.config-BzSlU0B1.cjs +1 -0
  22. package/dist/adapters/HeatMapChart.config-C6D638Sr.js +2 -0
  23. package/dist/adapters/KpiDelta.config-B5UKJ4n-.js +2 -0
  24. package/dist/adapters/KpiDelta.config-C3E_pfdr.cjs +1 -0
  25. package/dist/adapters/KpiNumber.config-B8mACkJy.js +2 -0
  26. package/dist/adapters/KpiNumber.config-BgNPzbNS.cjs +1 -0
  27. package/dist/adapters/KpiText.config-BsXkIGNW.js +2 -0
  28. package/dist/adapters/KpiText.config-vp2VuogK.cjs +1 -0
  29. package/dist/adapters/LineChart.config-B3NcBB9q.cjs +1 -0
  30. package/dist/adapters/LineChart.config-D_CAQVHv.js +2 -0
  31. package/dist/adapters/MarkdownChart.config-D_oVj4zs.js +2 -0
  32. package/dist/adapters/MarkdownChart.config-zhKb-tLR.cjs +1 -0
  33. package/dist/adapters/MeasureProfileChart.config-B-wBjGdA.cjs +1 -0
  34. package/dist/adapters/MeasureProfileChart.config-bRBJlzNa.js +2 -0
  35. package/dist/adapters/PieChart.config-CR9SlQ2E.cjs +1 -0
  36. package/dist/adapters/PieChart.config-DeGWqMNO.js +2 -0
  37. package/dist/adapters/ProportionBarChart.config-Bz0ssM8J.cjs +1 -0
  38. package/dist/adapters/ProportionBarChart.config-CXhHPnpM.js +2 -0
  39. package/dist/adapters/RadarChart.config-ColTmOOV.js +2 -0
  40. package/dist/adapters/RadarChart.config-QV34AUcy.cjs +1 -0
  41. package/dist/adapters/RadialBarChart.config-BU4kj-pP.js +2 -0
  42. package/dist/adapters/RadialBarChart.config-CxBOhmiO.cjs +1 -0
  43. package/dist/adapters/RecordsTable.config-B51ugEpH.js +2 -0
  44. package/dist/adapters/RecordsTable.config-LxS0O10c.cjs +1 -0
  45. package/dist/adapters/RetentionCombinedChart.config-DjunHInA.cjs +1 -0
  46. package/dist/adapters/RetentionCombinedChart.config-Xna3wl8a.js +2 -0
  47. package/dist/adapters/RetentionHeatmap.config-DJBHUdn1.cjs +1 -0
  48. package/dist/adapters/RetentionHeatmap.config-DMAmGV7x.js +2 -0
  49. package/dist/adapters/SankeyChart.config-CKuUbXMt.js +2 -0
  50. package/dist/adapters/SankeyChart.config-JrhBtNH4.cjs +1 -0
  51. package/dist/adapters/ScatterChart.config-BARL2-vh.cjs +1 -0
  52. package/dist/adapters/ScatterChart.config-Ch4yWKYL.js +2 -0
  53. package/dist/adapters/SunburstChart.config-CbvgqJ8d.cjs +1 -0
  54. package/dist/adapters/SunburstChart.config-Q89VT8vO.js +2 -0
  55. package/dist/adapters/TreeMapChart.config-Bee0ahde.js +2 -0
  56. package/dist/adapters/TreeMapChart.config-Dz1mOrnC.cjs +1 -0
  57. package/dist/adapters/WaterfallChart.config-BCJ4ZD6x.cjs +1 -0
  58. package/dist/adapters/WaterfallChart.config-Bz3tEEKN.js +2 -0
  59. package/dist/adapters/{compiler-BhityGUO.js → compiler-Cfy_zqyJ.js} +1 -1
  60. package/dist/adapters/{compiler-B-yljK02.cjs → compiler-ia3Lmjpw.cjs} +1 -1
  61. package/dist/adapters/core/index.cjs +1 -1
  62. package/dist/adapters/core/index.js +1 -1
  63. package/dist/adapters/{core-CQOrzBNh.cjs → core-ClA09uBX.cjs} +1 -1
  64. package/dist/adapters/{core-xZE0miIu.js → core-D4mTEaeK.js} +2 -2
  65. package/dist/adapters/express/index.cjs +1 -1
  66. package/dist/adapters/express/index.js +5 -5
  67. package/dist/adapters/fastify/index.cjs +1 -1
  68. package/dist/adapters/fastify/index.js +5 -5
  69. package/dist/adapters/{handler-ByeQ0-1r.js → handler-Bnp5LEMQ.js} +34 -33
  70. package/dist/adapters/{handler-DSNmfv1R.cjs → handler-TCnGdCyr.cjs} +3 -3
  71. package/dist/adapters/hono/index.cjs +1 -1
  72. package/dist/adapters/hono/index.js +4 -4
  73. package/dist/adapters/mcp-app-html-D37s8SEa.js +5 -0
  74. package/dist/adapters/mcp-app-html-MZNCuL3w.cjs +1 -0
  75. package/dist/adapters/mcp-app-html.cjs +1 -1
  76. package/dist/adapters/mcp-app-html.js +1 -1
  77. package/dist/adapters/mcp-tools.cjs +1 -1
  78. package/dist/adapters/mcp-tools.js +3 -3
  79. package/dist/adapters/{mcp-transport-DnLP5FPL.cjs → mcp-transport-6CWmHVtJ.cjs} +2 -2
  80. package/dist/adapters/{mcp-transport-Cy6n4uj1.js → mcp-transport-cd2BlW-Z.js} +28 -4
  81. package/dist/adapters/nextjs/index.cjs +1 -1
  82. package/dist/adapters/nextjs/index.js +5 -5
  83. package/dist/adapters/{openai-D3Nt6Bj7.js → openai-CIIYPf0X.js} +1 -1
  84. package/dist/adapters/{openai-z1ai-G4Q.cjs → openai-Cl5zHeHg.cjs} +1 -1
  85. package/dist/adapters/{openai-C4HrjyJj.js → openai-DioFEjMP.js} +1 -1
  86. package/dist/adapters/{openai-BQl0yJCS.cjs → openai-yJ8nX3dq.cjs} +1 -1
  87. package/dist/adapters/{utils-BaxFceDq.js → utils-B3_hJWlf.js} +9 -0
  88. package/dist/adapters/{utils-a2p2B6x8.cjs → utils-CeveyqY3.cjs} +1 -1
  89. package/dist/adapters/utils.cjs +1 -1
  90. package/dist/adapters/utils.js +1 -1
  91. package/dist/cjs/client/charts/chartConfigs.d.ts +17 -0
  92. package/dist/cjs/client/components/AnalysisBuilder/ColumnFormatsEditor.d.ts +9 -2
  93. package/dist/cjs/client/components/charts/MarkdownChart.helpers.d.ts +5 -0
  94. package/dist/cjs/client/components/markdownOverrides.d.ts +2 -0
  95. package/dist/cjs/client/types.d.ts +15 -1
  96. package/dist/cjs/client/utils/recordsTableUtils.d.ts +6 -3
  97. package/dist/cjs/server/ai/chart-schema.d.ts +25 -2
  98. package/dist/client/charts/chartConfigs.d.ts +17 -0
  99. package/dist/client/charts.js +12 -12
  100. package/dist/client/chunks/{DashboardEditModal-DifODH4h.js → DashboardEditModal-BFC08Qog.js} +315 -198
  101. package/dist/client/chunks/DashboardEditModal-BFC08Qog.js.map +1 -0
  102. package/dist/client/chunks/{DotStripChart-B9IVCFPO.js → DotStripChart-BwitDmpR.js} +3 -3
  103. package/dist/client/chunks/{DotStripChart-B9IVCFPO.js.map → DotStripChart-BwitDmpR.js.map} +1 -1
  104. package/dist/client/chunks/{ProportionBarChart-DieF9AzP.js → ProportionBarChart-CpUHH9UH.js} +3 -3
  105. package/dist/client/chunks/{ProportionBarChart-DieF9AzP.js.map → ProportionBarChart-CpUHH9UH.js.map} +1 -1
  106. package/dist/client/chunks/{RecordsTable-Mo3ai5_M.js → RecordsTable-BoQZiVVM.js} +85 -63
  107. package/dist/client/chunks/RecordsTable-BoQZiVVM.js.map +1 -0
  108. package/dist/client/chunks/{RetentionCombinedChart-Bie4ADyA.js → RetentionCombinedChart-Dd07baUu.js} +3 -3
  109. package/dist/client/chunks/{RetentionCombinedChart-Bie4ADyA.js.map → RetentionCombinedChart-Dd07baUu.js.map} +1 -1
  110. package/dist/client/chunks/{RetentionHeatmap-qstIAx5B.js → RetentionHeatmap-DlD2XmJe.js} +2 -2
  111. package/dist/client/chunks/{RetentionHeatmap-qstIAx5B.js.map → RetentionHeatmap-DlD2XmJe.js.map} +1 -1
  112. package/dist/client/chunks/{analysis-builder-D78aDJoL.js → analysis-builder-DVWOTd7e.js} +9 -9
  113. package/dist/client/chunks/{analysis-builder-D78aDJoL.js.map → analysis-builder-DVWOTd7e.js.map} +1 -1
  114. package/dist/client/chunks/{analysis-builder-shared-CsIs4-Xf.js → analysis-builder-shared-CXDGMDB-.js} +9 -9
  115. package/dist/client/chunks/{analysis-builder-shared-CsIs4-Xf.js.map → analysis-builder-shared-CXDGMDB-.js.map} +1 -1
  116. package/dist/client/chunks/{chart-activity-grid-Ly_-2B-f.js → chart-activity-grid-BHaBagS8.js} +12 -3
  117. package/dist/client/chunks/chart-activity-grid-BHaBagS8.js.map +1 -0
  118. package/dist/client/chunks/{chart-area-D3l-71Wy.js → chart-area-9lHCX2OO.js} +2 -2
  119. package/dist/client/chunks/{chart-area-D3l-71Wy.js.map → chart-area-9lHCX2OO.js.map} +1 -1
  120. package/dist/client/chunks/{chart-bar-BaTyQOqs.js → chart-bar-Dk1CH41V.js} +3 -3
  121. package/dist/client/chunks/{chart-bar-BaTyQOqs.js.map → chart-bar-Dk1CH41V.js.map} +1 -1
  122. package/dist/client/chunks/{chart-box-plot-Cem6PHjz.js → chart-box-plot-CMkzjTFz.js} +2 -2
  123. package/dist/client/chunks/{chart-box-plot-Cem6PHjz.js.map → chart-box-plot-CMkzjTFz.js.map} +1 -1
  124. package/dist/client/chunks/{chart-bubble-DFlfqCDG.js → chart-bubble-q8f7wXlp.js} +2 -2
  125. package/dist/client/chunks/{chart-bubble-DFlfqCDG.js.map → chart-bubble-q8f7wXlp.js.map} +1 -1
  126. package/dist/client/chunks/{chart-candlestick-BkAFBXtZ.js → chart-candlestick-DTX3wu-1.js} +2 -2
  127. package/dist/client/chunks/{chart-candlestick-BkAFBXtZ.js.map → chart-candlestick-DTX3wu-1.js.map} +1 -1
  128. package/dist/client/chunks/{chart-data-table-Cxd0cdAl.js → chart-data-table-BYQzVqtc.js} +4 -3
  129. package/dist/client/chunks/chart-data-table-BYQzVqtc.js.map +1 -0
  130. package/dist/client/chunks/{chart-funnel-71Kn4eeF.js → chart-funnel-CxW1voDU.js} +2 -2
  131. package/dist/client/chunks/{chart-funnel-71Kn4eeF.js.map → chart-funnel-CxW1voDU.js.map} +1 -1
  132. package/dist/client/chunks/{chart-gauge-BddS_9oS.js → chart-gauge-0M-Jufnw.js} +3 -3
  133. package/dist/client/chunks/{chart-gauge-BddS_9oS.js.map → chart-gauge-0M-Jufnw.js.map} +1 -1
  134. package/dist/client/chunks/{chart-heat-map-BQIsrn8m.js → chart-heat-map-BZvPdZAu.js} +3 -3
  135. package/dist/client/chunks/{chart-heat-map-BQIsrn8m.js.map → chart-heat-map-BZvPdZAu.js.map} +1 -1
  136. package/dist/client/chunks/{chart-kpi-delta-DndbqdZT.js → chart-kpi-delta-De-F9NUk.js} +3 -3
  137. package/dist/client/chunks/{chart-kpi-delta-DndbqdZT.js.map → chart-kpi-delta-De-F9NUk.js.map} +1 -1
  138. package/dist/client/chunks/{chart-kpi-number-DAbfoHMt.js → chart-kpi-number-MSdv2_ha.js} +5 -5
  139. package/dist/client/chunks/{chart-kpi-number-DAbfoHMt.js.map → chart-kpi-number-MSdv2_ha.js.map} +1 -1
  140. package/dist/client/chunks/{chart-kpi-text-D8oQgpxL.js → chart-kpi-text-Zt9JlUi2.js} +3 -3
  141. package/dist/client/chunks/{chart-kpi-text-D8oQgpxL.js.map → chart-kpi-text-Zt9JlUi2.js.map} +1 -1
  142. package/dist/client/chunks/{chart-line-BNqjUowg.js → chart-line-VFRY7_Zn.js} +3 -3
  143. package/dist/client/chunks/{chart-line-BNqjUowg.js.map → chart-line-VFRY7_Zn.js.map} +1 -1
  144. package/dist/client/chunks/{chart-markdown-DtgpU3xd.js → chart-markdown-RumOX5HX.js} +3 -2
  145. package/dist/client/chunks/{chart-markdown-DtgpU3xd.js.map → chart-markdown-RumOX5HX.js.map} +1 -1
  146. package/dist/client/chunks/{chart-measure-profile-D5nZMWlI.js → chart-measure-profile-5FFyPuV_.js} +3 -3
  147. package/dist/client/chunks/{chart-measure-profile-D5nZMWlI.js.map → chart-measure-profile-5FFyPuV_.js.map} +1 -1
  148. package/dist/client/chunks/{chart-pie-D8r9HCZ4.js → chart-pie-Bf5SbxZt.js} +3 -3
  149. package/dist/client/chunks/{chart-pie-D8r9HCZ4.js.map → chart-pie-Bf5SbxZt.js.map} +1 -1
  150. package/dist/client/chunks/{chart-radar-R4PuCIWp.js → chart-radar-D9NgUbth.js} +3 -3
  151. package/dist/client/chunks/{chart-radar-R4PuCIWp.js.map → chart-radar-D9NgUbth.js.map} +1 -1
  152. package/dist/client/chunks/{chart-radial-bar-hmrSFa6O.js → chart-radial-bar-BlFXSc1c.js} +3 -3
  153. package/dist/client/chunks/{chart-radial-bar-hmrSFa6O.js.map → chart-radial-bar-BlFXSc1c.js.map} +1 -1
  154. package/dist/client/chunks/{chart-sankey-CFXPybny.js → chart-sankey-BkanN_ql.js} +2 -2
  155. package/dist/client/chunks/{chart-sankey-CFXPybny.js.map → chart-sankey-BkanN_ql.js.map} +1 -1
  156. package/dist/client/chunks/{chart-scatter-CH82md0L.js → chart-scatter-DqqWojlQ.js} +3 -3
  157. package/dist/client/chunks/{chart-scatter-CH82md0L.js.map → chart-scatter-DqqWojlQ.js.map} +1 -1
  158. package/dist/client/chunks/{chart-sunburst-CTj95eEC.js → chart-sunburst-BMhXLThV.js} +3 -3
  159. package/dist/client/chunks/{chart-sunburst-CTj95eEC.js.map → chart-sunburst-BMhXLThV.js.map} +1 -1
  160. package/dist/client/chunks/{chart-tree-map-CmysE4bF.js → chart-tree-map-eaHTIJ76.js} +3 -3
  161. package/dist/client/chunks/{chart-tree-map-CmysE4bF.js.map → chart-tree-map-eaHTIJ76.js.map} +1 -1
  162. package/dist/client/chunks/{chart-waterfall-Bv1mPvlB.js → chart-waterfall-4MOpuCrR.js} +3 -3
  163. package/dist/client/chunks/{chart-waterfall-Bv1mPvlB.js.map → chart-waterfall-4MOpuCrR.js.map} +1 -1
  164. package/dist/client/chunks/{charts-core-BdEQgbqN.js → charts-core-CTTLxFYp.js} +2 -2
  165. package/dist/client/chunks/{charts-core-BdEQgbqN.js.map → charts-core-CTTLxFYp.js.map} +1 -1
  166. package/dist/client/chunks/charts-loader-DQ7MgPWB.js +87 -0
  167. package/dist/client/chunks/{charts-loader-DoLQqFXg.js.map → charts-loader-DQ7MgPWB.js.map} +1 -1
  168. package/dist/client/chunks/{en-US-HP6FHuNy.js → en-US-CXODg-om.js} +3 -1
  169. package/dist/client/chunks/{en-US-HP6FHuNy.js.map → en-US-CXODg-om.js.map} +1 -1
  170. package/dist/client/chunks/{nl-NL-DVZXf8U7.js → nl-NL-CpH637df.js} +10 -1
  171. package/dist/client/chunks/nl-NL-CpH637df.js.map +1 -0
  172. package/dist/client/chunks/{schema-visualization-MlRrcJQH.js → schema-visualization-26uy1UwE.js} +3 -3
  173. package/dist/client/chunks/{schema-visualization-MlRrcJQH.js.map → schema-visualization-26uy1UwE.js.map} +1 -1
  174. package/dist/client/chunks/{useDirtyStateTracking-DUyYwuN_.js → useDirtyStateTracking-CnEIH78A.js} +4 -4
  175. package/dist/client/chunks/{useDirtyStateTracking-DUyYwuN_.js.map → useDirtyStateTracking-CnEIH78A.js.map} +1 -1
  176. package/dist/client/chunks/{useExplainAI-BtoS3tb5.js → useExplainAI-SbAIGXOr.js} +4 -4
  177. package/dist/client/chunks/{useExplainAI-BtoS3tb5.js.map → useExplainAI-SbAIGXOr.js.map} +1 -1
  178. package/dist/client/chunks/{vendor-BfBpNmMa.js → vendor-Cn44d7zS.js} +2 -2
  179. package/dist/client/chunks/{vendor-BfBpNmMa.js.map → vendor-Cn44d7zS.js.map} +1 -1
  180. package/dist/client/components/AnalysisBuilder/ColumnFormatsEditor.d.ts +9 -2
  181. package/dist/client/components/charts/MarkdownChart.helpers.d.ts +5 -0
  182. package/dist/client/components/markdownOverrides.d.ts +2 -0
  183. package/dist/client/components.js +1 -1
  184. package/dist/client/hooks.js +3 -3
  185. package/dist/client/icons.js +1 -1
  186. package/dist/client/index.js +44 -38
  187. package/dist/client/index.js.map +1 -1
  188. package/dist/client/providers.js +1 -1
  189. package/dist/client/schema.js +1 -1
  190. package/dist/client/types.d.ts +15 -1
  191. package/dist/client/utils/recordsTableUtils.d.ts +6 -3
  192. package/dist/client/utils.js +4 -4
  193. package/dist/client-bundle-stats.html +1 -1
  194. package/dist/mcp-app/mcp-app.html +69 -69
  195. package/dist/server/ai/chart-schema.d.ts +25 -2
  196. package/dist/server/index.cjs +3 -3
  197. package/dist/server/index.js +37 -3
  198. package/package.json +1 -1
  199. package/dist/adapters/ActivityGridChart.config-XMtoteb6.js +0 -2
  200. package/dist/adapters/ActivityGridChart.config-h1AXPvn0.cjs +0 -1
  201. package/dist/adapters/AreaChart.config-DYf9wufo.cjs +0 -1
  202. package/dist/adapters/AreaChart.config-We6b53aT.js +0 -2
  203. package/dist/adapters/BarChart.config-4SX44IYv.cjs +0 -1
  204. package/dist/adapters/BarChart.config-CwBnyptL.js +0 -2
  205. package/dist/adapters/BoxPlotChart.config-BzNe-FlW.cjs +0 -1
  206. package/dist/adapters/BoxPlotChart.config-mfAHqmcp.js +0 -2
  207. package/dist/adapters/BubbleChart.config-CBT5jMdc.cjs +0 -1
  208. package/dist/adapters/BubbleChart.config-DxG_Umal.js +0 -2
  209. package/dist/adapters/CandlestickChart.config-Cqw3XP1h.js +0 -2
  210. package/dist/adapters/CandlestickChart.config-DPSSlzUD.cjs +0 -1
  211. package/dist/adapters/DataTable.config-DS1bvaDu.js +0 -2
  212. package/dist/adapters/DataTable.config-D_NsMeyz.cjs +0 -1
  213. package/dist/adapters/DotStripChart.config-BApWn6QV.cjs +0 -1
  214. package/dist/adapters/DotStripChart.config-Bdk5-YfB.js +0 -2
  215. package/dist/adapters/FunnelChart.config-BT5up_Bg.cjs +0 -1
  216. package/dist/adapters/FunnelChart.config-ISZiz9fn.js +0 -2
  217. package/dist/adapters/GaugeChart.config-Biaq1cKc.cjs +0 -1
  218. package/dist/adapters/GaugeChart.config-BjGfB84t.js +0 -2
  219. package/dist/adapters/HeatMapChart.config-Bmca8KiH.cjs +0 -1
  220. package/dist/adapters/HeatMapChart.config-uWvR0B-N.js +0 -2
  221. package/dist/adapters/KpiDelta.config-CJeDdj_1.js +0 -2
  222. package/dist/adapters/KpiDelta.config-CKr9pAxL.cjs +0 -1
  223. package/dist/adapters/KpiNumber.config-6YLEF2fy.cjs +0 -1
  224. package/dist/adapters/KpiNumber.config-C00M46GA.js +0 -2
  225. package/dist/adapters/KpiText.config-C8Av_D2W.cjs +0 -1
  226. package/dist/adapters/KpiText.config-bKTHob0C.js +0 -2
  227. package/dist/adapters/LineChart.config-DH68HT_B.js +0 -2
  228. package/dist/adapters/LineChart.config-DPq7GvL9.cjs +0 -1
  229. package/dist/adapters/MarkdownChart.config-CaaJPO3c.js +0 -2
  230. package/dist/adapters/MarkdownChart.config-ca_UyhWJ.cjs +0 -1
  231. package/dist/adapters/MeasureProfileChart.config-C1Il0IqL.cjs +0 -1
  232. package/dist/adapters/MeasureProfileChart.config-DMOnkmb6.js +0 -2
  233. package/dist/adapters/PieChart.config-Bg-8cxWK.js +0 -2
  234. package/dist/adapters/PieChart.config-joJcF--K.cjs +0 -1
  235. package/dist/adapters/ProportionBarChart.config-B2sltKsI.cjs +0 -1
  236. package/dist/adapters/ProportionBarChart.config-BlCedy1v.js +0 -2
  237. package/dist/adapters/RadarChart.config-DD1pX6FZ.js +0 -2
  238. package/dist/adapters/RadarChart.config-DVCCLSVw.cjs +0 -1
  239. package/dist/adapters/RadialBarChart.config--VIE2jMM.js +0 -2
  240. package/dist/adapters/RadialBarChart.config-BZwyWhTg.cjs +0 -1
  241. package/dist/adapters/RecordsTable.config-CTBQc-2r.js +0 -2
  242. package/dist/adapters/RecordsTable.config-DPdO0DL5.cjs +0 -1
  243. package/dist/adapters/RetentionCombinedChart.config-PGVxnkRL.js +0 -2
  244. package/dist/adapters/RetentionCombinedChart.config-mX5PMh82.cjs +0 -1
  245. package/dist/adapters/RetentionHeatmap.config-Co-JMzBm.js +0 -2
  246. package/dist/adapters/RetentionHeatmap.config-Cub3-ksy.cjs +0 -1
  247. package/dist/adapters/SankeyChart.config-BkIyUcAE.cjs +0 -1
  248. package/dist/adapters/SankeyChart.config-DGTnRmYg.js +0 -2
  249. package/dist/adapters/ScatterChart.config-CdZrBorg.js +0 -2
  250. package/dist/adapters/ScatterChart.config-CwN9niUL.cjs +0 -1
  251. package/dist/adapters/SunburstChart.config-D0ZkRSJv.cjs +0 -1
  252. package/dist/adapters/SunburstChart.config-RF3uu5Sa.js +0 -2
  253. package/dist/adapters/TreeMapChart.config-B2Yn_V7p.cjs +0 -1
  254. package/dist/adapters/TreeMapChart.config-diJtcs4D.js +0 -2
  255. package/dist/adapters/WaterfallChart.config-B10PxftT.cjs +0 -1
  256. package/dist/adapters/WaterfallChart.config-BImlkLmR.js +0 -2
  257. package/dist/adapters/mcp-app-html-CNp0VqS_.cjs +0 -1
  258. package/dist/adapters/mcp-app-html-CvWoYMO3.js +0 -5
  259. package/dist/client/chunks/DashboardEditModal-DifODH4h.js.map +0 -1
  260. package/dist/client/chunks/RecordsTable-Mo3ai5_M.js.map +0 -1
  261. package/dist/client/chunks/chart-activity-grid-Ly_-2B-f.js.map +0 -1
  262. package/dist/client/chunks/chart-data-table-Cxd0cdAl.js.map +0 -1
  263. package/dist/client/chunks/charts-loader-DoLQqFXg.js +0 -87
  264. package/dist/client/chunks/nl-NL-DVZXf8U7.js.map +0 -1
@@ -1,17 +1,17 @@
1
- import { a as e, c as t, n, o as r, r as i, s as a, u as o } from "./vendor-BfBpNmMa.js";
1
+ import { a as e, c as t, n, o as r, r as i, s as a, u as o } from "./vendor-Cn44d7zS.js";
2
2
  import { n as s, t as c } from "./providers-DwQCKdGW.js";
3
- import { A as l, C as u, F as d, I as f, M as p, P as m, _t as h, ct as g, gt as _, j as v, v as y, y as b } from "./chart-data-table-Cxd0cdAl.js";
4
- import { r as x } from "./chart-sankey-CFXPybny.js";
3
+ import { A as l, C as u, F as d, I as f, M as p, P as m, _t as h, ct as g, gt as _, j as v, v as y, y as b } from "./chart-data-table-BYQzVqtc.js";
4
+ import { r as x } from "./chart-sankey-BkanN_ql.js";
5
5
  import { a as S, l as C, s as w } from "./retention-ChW9jYdy.js";
6
- import { i as T, t as E } from "./chart-markdown-DtgpU3xd.js";
6
+ import { i as T, t as E } from "./chart-markdown-RumOX5HX.js";
7
7
  import { c as D, f as O, n as k, o as A, p as j, r as M, t as N } from "./dashboardExport-Db3rmUP1.js";
8
- import { A as ee, D as P, E as F, L as I, S as te, T as L, a as R, d as ne, i as re, l as z, n as ie, r as ae, s as B, t as oe, u as se, w as ce, x as le } from "./useDirtyStateTracking-DUyYwuN_.js";
9
- import { B as ue, F as V, R as H } from "./chart-activity-grid-Ly_-2B-f.js";
8
+ import { A as ee, D as P, E as F, L as I, S as te, T as L, a as R, d as ne, i as re, l as z, n as ie, r as ae, s as B, t as oe, u as se, w as ce, x as le } from "./useDirtyStateTracking-CnEIH78A.js";
9
+ import { B as ue, F as V, R as H } from "./chart-activity-grid-BHaBagS8.js";
10
10
  import { o as de } from "./gapFilling-DKBRHcQL.js";
11
- import { a as fe, t as pe } from "./charts-loader-DoLQqFXg.js";
12
- import { H as me } from "./chart-area-D3l-71Wy.js";
13
- import { n as he, t as U } from "./charts-core-BdEQgbqN.js";
14
- import { n as ge } from "./chart-gauge-BddS_9oS.js";
11
+ import { a as fe, t as pe } from "./charts-loader-DQ7MgPWB.js";
12
+ import { H as me } from "./chart-area-9lHCX2OO.js";
13
+ import { n as he, t as U } from "./charts-core-CTTLxFYp.js";
14
+ import { n as ge } from "./chart-gauge-0M-Jufnw.js";
15
15
  import _e, { Component as ve, Fragment as ye, Suspense as be, createContext as xe, forwardRef as W, lazy as G, memo as Se, startTransition as Ce, useCallback as K, useContext as we, useEffect as q, useImperativeHandle as Te, useMemo as J, useRef as Y, useState as X } from "react";
16
16
  import { Fragment as Z, jsx as Q, jsxs as $ } from "react/jsx-runtime";
17
17
  import { createPortal as Ee } from "react-dom";
@@ -10252,7 +10252,7 @@ var us = ({ isOpen: e, onClose: t, title: n, size: r = "md", closeOnBackdropClic
10252
10252
  ]
10253
10253
  })
10254
10254
  }) : null;
10255
- }, ds = G(() => import("./analysis-builder-D78aDJoL.js")), fs = W((e, t) => /* @__PURE__ */ Q(be, {
10255
+ }, ds = G(() => import("./analysis-builder-DVWOTd7e.js")), fs = W((e, t) => /* @__PURE__ */ Q(be, {
10256
10256
  fallback: /* @__PURE__ */ Q("div", {
10257
10257
  className: "dc:flex dc:items-center dc:justify-center dc:w-full dc:py-6",
10258
10258
  children: /* @__PURE__ */ Q(me, {})
@@ -10854,7 +10854,8 @@ var As = [
10854
10854
  "number",
10855
10855
  "date",
10856
10856
  "badge",
10857
- "progress"
10857
+ "progress",
10858
+ "link"
10858
10859
  ], js = ["bar", "circle"], Ms = [
10859
10860
  "hour",
10860
10861
  "day",
@@ -10863,70 +10864,75 @@ var As = [
10863
10864
  "quarter",
10864
10865
  "year"
10865
10866
  ];
10866
- function Ns({ value: e, chartConfig: t, colorPalette: n, onChange: r, t: i }) {
10867
- let { getFieldLabel: a } = ue(), [o, s] = X(null), c = t?.columns ?? [];
10868
- if (c.length === 0) return /* @__PURE__ */ Q("p", {
10867
+ function Ns({ value: e, chartConfig: t, displayConfig: n, columns: r, colorPalette: i, progressBands: a = !1, onChange: o, t: s }) {
10868
+ let { getFieldLabel: c } = ue(), [l, u] = X(null), d = [...new Set((r ? r({
10869
+ chartConfig: t,
10870
+ displayConfig: n ?? {}
10871
+ }) : t?.columns) ?? [])];
10872
+ if (d.length === 0) return /* @__PURE__ */ Q("p", {
10869
10873
  className: "dc:text-xs text-dc-text-muted",
10870
- children: i("chart.recordsTable.columnFormats.noColumns")
10874
+ children: s("chart.recordsTable.columnFormats.noColumns")
10871
10875
  });
10872
- let l = (t, n) => {
10873
- let i = { ...e };
10874
- !n || n.kind === "text" && !n.label && !n.align ? delete i[t] : i[t] = n, r(Object.keys(i).length > 0 ? i : void 0);
10876
+ let f = (t, n) => {
10877
+ let r = { ...e };
10878
+ !n || n.kind === "text" && !n.label && !n.align ? delete r[t] : r[t] = n, o(Object.keys(r).length > 0 ? r : void 0);
10875
10879
  };
10876
10880
  return /* @__PURE__ */ Q("div", {
10877
10881
  className: "dc:space-y-1",
10878
- children: c.map((t) => /* @__PURE__ */ Q(Ps, {
10882
+ children: d.map((t) => /* @__PURE__ */ Q(Ps, {
10879
10883
  column: t,
10880
10884
  format: e[t] ?? { kind: "text" },
10881
- fallbackLabel: a(t),
10882
- isOpen: o === t,
10883
- colorPalette: n,
10884
- onToggle: () => s(o === t ? null : t),
10885
- onChange: (e) => l(t, e),
10886
- t: i
10885
+ fallbackLabel: c(t),
10886
+ isOpen: l === t,
10887
+ colorPalette: i,
10888
+ showProgressBands: a,
10889
+ onToggle: () => u(l === t ? null : t),
10890
+ onChange: (e) => f(t, e),
10891
+ t: s
10887
10892
  }, t))
10888
10893
  });
10889
10894
  }
10890
- function Ps({ format: e, fallbackLabel: t, isOpen: n, colorPalette: r, onToggle: i, onChange: a, t: o }) {
10895
+ function Ps({ format: e, fallbackLabel: t, isOpen: n, colorPalette: r, showProgressBands: i, onToggle: a, onChange: o, t: s }) {
10891
10896
  return /* @__PURE__ */ $("div", {
10892
10897
  className: "dc:border border-dc-border dc:rounded-sm",
10893
10898
  children: [/* @__PURE__ */ $("button", {
10894
10899
  type: "button",
10895
- onClick: i,
10900
+ onClick: a,
10896
10901
  className: "dc:w-full dc:flex dc:items-center dc:justify-between dc:gap-2 dc:px-2 dc:py-1.5 dc:text-sm text-dc-text hover:bg-dc-surface-secondary dc:cursor-pointer",
10897
10902
  children: [/* @__PURE__ */ Q("span", {
10898
10903
  className: "dc:truncate",
10899
10904
  children: e.label || t
10900
10905
  }), /* @__PURE__ */ Q("span", {
10901
10906
  className: "dc:text-xs text-dc-text-muted dc:shrink-0",
10902
- children: o(`chart.recordsTable.columnFormats.kind.${e.kind}`)
10907
+ children: s(`chart.recordsTable.columnFormats.kind.${e.kind}`)
10903
10908
  })]
10904
10909
  }), n && /* @__PURE__ */ $("div", {
10905
10910
  className: "dc:px-2 dc:py-2 dc:space-y-2 dc:border-t border-dc-border",
10906
10911
  children: [
10907
10912
  /* @__PURE__ */ Q(Ls, {
10908
10913
  kind: e.kind,
10909
- onSelect: (t) => a({
10914
+ onSelect: (t) => o({
10910
10915
  ...e,
10911
10916
  kind: t
10912
10917
  }),
10913
- t: o
10918
+ t: s
10914
10919
  }),
10915
10920
  /* @__PURE__ */ Q(Fs, {
10916
10921
  format: e,
10917
10922
  colorPalette: r,
10918
- onChange: a,
10919
- t: o
10923
+ showProgressBands: i,
10924
+ onChange: o,
10925
+ t: s
10920
10926
  }),
10921
10927
  /* @__PURE__ */ $("label", {
10922
10928
  className: "dc:block dc:space-y-1",
10923
10929
  children: [/* @__PURE__ */ Q("span", {
10924
10930
  className: "dc:text-xs text-dc-text-secondary",
10925
- children: o("chart.recordsTable.columnFormats.header")
10931
+ children: s("chart.recordsTable.columnFormats.header")
10926
10932
  }), /* @__PURE__ */ Q("input", {
10927
10933
  type: "text",
10928
10934
  value: e.label ?? "",
10929
- onChange: (t) => a({
10935
+ onChange: (t) => o({
10930
10936
  ...e,
10931
10937
  label: t.target.value || void 0
10932
10938
  }),
@@ -10938,11 +10944,11 @@ function Ps({ format: e, fallbackLabel: t, isOpen: n, colorPalette: r, onToggle:
10938
10944
  })]
10939
10945
  });
10940
10946
  }
10941
- function Fs({ format: e, colorPalette: t, onChange: n, t: r }) {
10947
+ function Fs({ format: e, colorPalette: t, showProgressBands: n, onChange: r, t: i }) {
10942
10948
  return e.kind === "number" ? /* @__PURE__ */ Q(U, {
10943
- axisLabel: r("chart.recordsTable.columnFormats.numberFormat"),
10949
+ axisLabel: i("chart.recordsTable.columnFormats.numberFormat"),
10944
10950
  value: e.numberFormat ?? {},
10945
- onChange: (t) => n({
10951
+ onChange: (t) => r({
10946
10952
  ...e,
10947
10953
  numberFormat: t
10948
10954
  }),
@@ -10951,64 +10957,97 @@ function Fs({ format: e, colorPalette: t, onChange: n, t: r }) {
10951
10957
  className: "dc:block dc:space-y-1",
10952
10958
  children: [/* @__PURE__ */ Q("span", {
10953
10959
  className: "dc:text-xs text-dc-text-secondary",
10954
- children: r("chart.recordsTable.columnFormats.granularity")
10960
+ children: i("chart.recordsTable.columnFormats.granularity")
10955
10961
  }), /* @__PURE__ */ Q("select", {
10956
10962
  value: e.dateGranularity ?? "day",
10957
- onChange: (t) => n({
10963
+ onChange: (t) => r({
10958
10964
  ...e,
10959
10965
  dateGranularity: t.target.value
10960
10966
  }),
10961
10967
  className: "dc:w-full dc:px-2 dc:py-1 dc:text-sm dc:border border-dc-border dc:rounded-sm bg-dc-surface text-dc-text",
10962
10968
  children: Ms.map((e) => /* @__PURE__ */ Q("option", {
10963
10969
  value: e,
10964
- children: r(`timeGranularity.${e}`)
10970
+ children: i(`timeGranularity.${e}`)
10965
10971
  }, e))
10966
10972
  })]
10967
10973
  }) : e.kind === "badge" ? /* @__PURE__ */ Q(zs, {
10968
10974
  format: e,
10969
10975
  colorPalette: t,
10970
- onChange: n,
10971
- t: r
10976
+ onChange: r,
10977
+ t: i
10978
+ }) : e.kind === "link" ? /* @__PURE__ */ $("label", {
10979
+ className: "dc:block dc:space-y-1",
10980
+ children: [
10981
+ /* @__PURE__ */ Q("span", {
10982
+ className: "dc:text-xs text-dc-text-secondary",
10983
+ children: i("chart.recordsTable.columnFormats.linkTemplate")
10984
+ }),
10985
+ /* @__PURE__ */ Q("input", {
10986
+ type: "text",
10987
+ value: e.linkTemplate ?? "",
10988
+ onChange: (t) => r({
10989
+ ...e,
10990
+ linkTemplate: t.target.value || void 0
10991
+ }),
10992
+ placeholder: i("chart.recordsTable.columnFormats.linkTemplatePlaceholder"),
10993
+ className: "dc:w-full dc:px-2 dc:py-1 dc:text-sm dc:border border-dc-border dc:rounded-sm bg-dc-surface text-dc-text"
10994
+ }),
10995
+ /* @__PURE__ */ Q("span", {
10996
+ className: "dc:block dc:text-xs text-dc-text-muted",
10997
+ children: i("chart.recordsTable.columnFormats.linkTemplateHelp")
10998
+ })
10999
+ ]
10972
11000
  }) : e.kind === "progress" ? /* @__PURE__ */ Q(Is, {
10973
11001
  format: e,
10974
- onChange: n,
10975
- t: r
11002
+ colorPalette: t,
11003
+ showBands: n,
11004
+ onChange: r,
11005
+ t: i
10976
11006
  }) : null;
10977
11007
  }
10978
- function Is({ format: e, onChange: t, t: n }) {
11008
+ function Is({ format: e, colorPalette: t, showBands: n, onChange: r, t: i }) {
10979
11009
  return /* @__PURE__ */ $("div", {
10980
11010
  className: "dc:space-y-2",
10981
- children: [/* @__PURE__ */ $("div", {
10982
- className: "dc:space-y-1",
10983
- children: [/* @__PURE__ */ Q("span", {
10984
- className: "dc:block dc:text-xs text-dc-text-secondary",
10985
- children: n("chart.recordsTable.columnFormats.progressStyle")
10986
- }), /* @__PURE__ */ Q(Rs, {
10987
- style: e.progressStyle ?? "bar",
10988
- onSelect: (n) => t({
10989
- ...e,
10990
- progressStyle: n
10991
- }),
10992
- t: n
10993
- })]
10994
- }), /* @__PURE__ */ $("div", {
10995
- className: "dc:flex dc:gap-2",
10996
- children: [/* @__PURE__ */ Q(Bs, {
10997
- label: n("chart.recordsTable.columnFormats.progressMin"),
10998
- value: e.progressMin ?? 0,
10999
- onChange: (n) => t({
11000
- ...e,
11001
- progressMin: n
11002
- })
11003
- }), /* @__PURE__ */ Q(Bs, {
11004
- label: n("chart.recordsTable.columnFormats.progressMax"),
11005
- value: e.progressMax ?? 100,
11006
- onChange: (n) => t({
11007
- ...e,
11008
- progressMax: n
11009
- })
11010
- })]
11011
- })]
11011
+ children: [
11012
+ /* @__PURE__ */ $("div", {
11013
+ className: "dc:space-y-1",
11014
+ children: [/* @__PURE__ */ Q("span", {
11015
+ className: "dc:block dc:text-xs text-dc-text-secondary",
11016
+ children: i("chart.recordsTable.columnFormats.progressStyle")
11017
+ }), /* @__PURE__ */ Q(Rs, {
11018
+ style: e.progressStyle ?? "bar",
11019
+ onSelect: (t) => r({
11020
+ ...e,
11021
+ progressStyle: t
11022
+ }),
11023
+ t: i
11024
+ })]
11025
+ }),
11026
+ /* @__PURE__ */ $("div", {
11027
+ className: "dc:flex dc:gap-2",
11028
+ children: [/* @__PURE__ */ Q(Us, {
11029
+ label: i("chart.recordsTable.columnFormats.progressMin"),
11030
+ value: e.progressMin ?? 0,
11031
+ onChange: (t) => r({
11032
+ ...e,
11033
+ progressMin: t
11034
+ })
11035
+ }), /* @__PURE__ */ Q(Us, {
11036
+ label: i("chart.recordsTable.columnFormats.progressMax"),
11037
+ value: e.progressMax ?? 100,
11038
+ onChange: (t) => r({
11039
+ ...e,
11040
+ progressMax: t
11041
+ })
11042
+ })]
11043
+ }),
11044
+ n && /* @__PURE__ */ Q(Vs, {
11045
+ format: e,
11046
+ colorPalette: t,
11047
+ onChange: r,
11048
+ t: i
11049
+ })
11050
+ ]
11012
11051
  });
11013
11052
  }
11014
11053
  function Ls({ kind: e, onSelect: t, t: n }) {
@@ -11067,22 +11106,14 @@ function zs({ format: e, colorPalette: t, onChange: n, t: r }) {
11067
11106
  className: "dc:px-2 dc:py-1 dc:text-sm dc:shrink-0 dc:rounded-sm text-dc-danger hover:bg-dc-danger-bg dc:cursor-pointer",
11068
11107
  children: "×"
11069
11108
  })]
11070
- }), /* @__PURE__ */ Q("div", {
11071
- className: "dc:flex dc:flex-wrap dc:gap-1",
11072
- children: a.map((n, a) => /* @__PURE__ */ Q("button", {
11073
- type: "button",
11074
- onClick: () => o(i.map((e, n) => n === t ? {
11075
- ...e,
11076
- colorIndex: a
11077
- } : e)),
11078
- title: n,
11079
- "aria-label": `${r("chart.recordsTable.columnFormats.badgeColour")} ${a + 1}`,
11080
- className: `dc:w-6 dc:h-6 dc:rounded-sm dc:border-2 dc:cursor-pointer dc:transition-transform dc:hover:scale-110 ${e.colorIndex === a ? "dc:ring-2 dc:ring-offset-1 dc:scale-110" : ""}`,
11081
- style: {
11082
- backgroundColor: n,
11083
- borderColor: e.colorIndex === a ? "var(--dc-primary)" : "var(--dc-border)"
11084
- }
11085
- }, a))
11109
+ }), /* @__PURE__ */ Q(Hs, {
11110
+ palette: a,
11111
+ selected: e.colorIndex,
11112
+ label: r("chart.recordsTable.columnFormats.badgeColour"),
11113
+ onSelect: (e) => o(i.map((n, r) => r === t ? {
11114
+ ...n,
11115
+ colorIndex: e
11116
+ } : n))
11086
11117
  })]
11087
11118
  }, t)),
11088
11119
  /* @__PURE__ */ Q("button", {
@@ -11097,7 +11128,90 @@ function zs({ format: e, colorPalette: t, onChange: n, t: r }) {
11097
11128
  ]
11098
11129
  });
11099
11130
  }
11100
- function Bs({ label: e, value: t, onChange: n }) {
11131
+ var Bs = 25;
11132
+ function Vs({ format: e, colorPalette: t, onChange: n, t: r }) {
11133
+ let i = Array.isArray(e.progressBands) ? e.progressBands.filter((e) => typeof e == "object" && !!e && typeof e.value == "number" && Number.isFinite(e.value)) : [], a = t?.colors ?? [], [o, s] = X(null), c = (t) => n({
11134
+ ...e,
11135
+ progressBands: t.length > 0 ? t : void 0
11136
+ }), l = (e, t) => {
11137
+ s({
11138
+ index: e,
11139
+ text: t
11140
+ });
11141
+ let n = Number(t);
11142
+ t.trim() !== "" && Number.isFinite(n) && c(i.map((t, r) => r === e ? {
11143
+ ...t,
11144
+ value: n
11145
+ } : t));
11146
+ }, u = i.length > 0 ? (Number(i[i.length - 1].value) || 0) + Bs : 0;
11147
+ return /* @__PURE__ */ $("div", {
11148
+ className: "dc:space-y-1",
11149
+ children: [
11150
+ /* @__PURE__ */ Q("span", {
11151
+ className: "dc:text-xs text-dc-text-secondary",
11152
+ children: r("chart.recordsTable.columnFormats.progressBandColours")
11153
+ }),
11154
+ i.map((e, t) => /* @__PURE__ */ $("div", {
11155
+ className: "dc:space-y-1 dc:border border-dc-border dc:rounded-sm dc:p-1.5",
11156
+ children: [/* @__PURE__ */ $("div", {
11157
+ className: "dc:flex dc:items-center dc:gap-2",
11158
+ children: [/* @__PURE__ */ Q("input", {
11159
+ type: "number",
11160
+ value: o?.index === t ? o.text : e.value,
11161
+ onChange: (e) => l(t, e.target.value),
11162
+ onBlur: () => s(null),
11163
+ placeholder: r("chart.recordsTable.columnFormats.progressBandValue"),
11164
+ "aria-label": r("chart.recordsTable.columnFormats.progressBandValue"),
11165
+ className: "dc:flex-1 dc:min-w-0 dc:px-2 dc:py-1 dc:text-sm dc:border border-dc-border dc:rounded-sm bg-dc-surface text-dc-text"
11166
+ }), /* @__PURE__ */ Q("button", {
11167
+ type: "button",
11168
+ onClick: () => {
11169
+ s(null), c(i.filter((e, n) => n !== t));
11170
+ },
11171
+ title: r("chart.recordsTable.columnFormats.progressBandRemove"),
11172
+ "aria-label": r("chart.recordsTable.columnFormats.progressBandRemove"),
11173
+ className: "dc:px-2 dc:py-1 dc:text-sm dc:shrink-0 dc:rounded-sm text-dc-danger hover:bg-dc-danger-bg dc:cursor-pointer",
11174
+ children: "×"
11175
+ })]
11176
+ }), /* @__PURE__ */ Q(Hs, {
11177
+ palette: a,
11178
+ selected: e.colorIndex,
11179
+ label: r("chart.recordsTable.columnFormats.progressBandColour"),
11180
+ onSelect: (e) => c(i.map((n, r) => r === t ? {
11181
+ ...n,
11182
+ colorIndex: e
11183
+ } : n))
11184
+ })]
11185
+ }, t)),
11186
+ /* @__PURE__ */ Q("button", {
11187
+ type: "button",
11188
+ onClick: () => c([...i, {
11189
+ value: u,
11190
+ colorIndex: i.length % Math.max(1, a.length)
11191
+ }]),
11192
+ className: "dc:text-xs dc:px-2 dc:py-1 dc:rounded-sm dc:border border-dc-border text-dc-text-secondary hover:bg-dc-surface-hover dc:cursor-pointer",
11193
+ children: r("chart.recordsTable.columnFormats.progressBandAdd")
11194
+ })
11195
+ ]
11196
+ });
11197
+ }
11198
+ function Hs({ palette: e, selected: t, label: n, onSelect: r }) {
11199
+ return /* @__PURE__ */ Q("div", {
11200
+ className: "dc:flex dc:flex-wrap dc:gap-1",
11201
+ children: e.map((e, i) => /* @__PURE__ */ Q("button", {
11202
+ type: "button",
11203
+ onClick: () => r(i),
11204
+ title: e,
11205
+ "aria-label": `${n} ${i + 1}`,
11206
+ className: `dc:w-6 dc:h-6 dc:rounded-sm dc:border-2 dc:cursor-pointer dc:transition-transform dc:hover:scale-110 ${t === i ? "dc:ring-2 dc:ring-offset-1 dc:scale-110" : ""}`,
11207
+ style: {
11208
+ backgroundColor: e,
11209
+ borderColor: t === i ? "var(--dc-primary)" : "var(--dc-border)"
11210
+ }
11211
+ }, i))
11212
+ });
11213
+ }
11214
+ function Us({ label: e, value: t, onChange: n }) {
11101
11215
  return /* @__PURE__ */ $("label", {
11102
11216
  className: "dc:flex-1 dc:space-y-1",
11103
11217
  children: [/* @__PURE__ */ Q("span", {
@@ -11117,7 +11231,7 @@ function Bs({ label: e, value: t, onChange: n }) {
11117
11231
  }
11118
11232
  //#endregion
11119
11233
  //#region src/client/components/AnalysisBuilder/templateSyntax.ts
11120
- var Vs = /\{\{[\s\S]*?\}\}|\{%[\s\S]*?%\}/g, Hs = /^[ \t]{0,3}#{1,6}[ \t].*$/gm, Us = /"(?:[^"\\]|\\.)*"|'(?:[^'\\]|\\.)*'|[A-Za-z_$][\w$]*|\d+(?:\.\d+)?|\s+|[\s\S]/g, Ws = /* @__PURE__ */ new Set([
11234
+ var Ws = /\{\{[\s\S]*?\}\}|\{%[\s\S]*?%\}/g, Gs = /^[ \t]{0,3}#{1,6}[ \t].*$/gm, Ks = /"(?:[^"\\]|\\.)*"|'(?:[^'\\]|\\.)*'|[A-Za-z_$][\w$]*|\d+(?:\.\d+)?|\s+|[\s\S]/g, qs = /* @__PURE__ */ new Set([
11121
11235
  "if",
11122
11236
  "elseif",
11123
11237
  "else",
@@ -11134,7 +11248,7 @@ var Vs = /\{\{[\s\S]*?\}\}|\{%[\s\S]*?%\}/g, Hs = /^[ \t]{0,3}#{1,6}[ \t].*$/gm,
11134
11248
  "false",
11135
11249
  "null"
11136
11250
  ]);
11137
- function Gs(e, t, n) {
11251
+ function Js(e, t, n) {
11138
11252
  if (!t) return;
11139
11253
  let r = e[e.length - 1];
11140
11254
  if (r && r.kind === n) {
@@ -11146,36 +11260,36 @@ function Gs(e, t, n) {
11146
11260
  kind: n
11147
11261
  });
11148
11262
  }
11149
- function Ks(e, t) {
11150
- return /^\s/.test(e) ? "delimiter" : /^["']/.test(e) ? "string" : /^\d/.test(e) ? "number" : /^[A-Za-z_$]/.test(e) ? Ws.has(e) ? "keyword" : t === "|" ? "filter" : "identifier" : "operator";
11263
+ function Ys(e, t) {
11264
+ return /^\s/.test(e) ? "delimiter" : /^["']/.test(e) ? "string" : /^\d/.test(e) ? "number" : /^[A-Za-z_$]/.test(e) ? qs.has(e) ? "keyword" : t === "|" ? "filter" : "identifier" : "operator";
11151
11265
  }
11152
- function qs(e, t) {
11266
+ function Xs(e, t) {
11153
11267
  let n = "";
11154
- for (let [r] of e.matchAll(Us)) Gs(t, r, Ks(r, n)), /^\s/.test(r) || (n = r);
11268
+ for (let [r] of e.matchAll(Ks)) Js(t, r, Ys(r, n)), /^\s/.test(r) || (n = r);
11155
11269
  }
11156
- function Js(e, t) {
11270
+ function Zs(e, t) {
11157
11271
  let n = e.slice(0, 2), r = e.slice(-2);
11158
- Gs(t, n, "delimiter"), qs(e.slice(2, -2), t), Gs(t, r, "delimiter");
11272
+ Js(t, n, "delimiter"), Xs(e.slice(2, -2), t), Js(t, r, "delimiter");
11159
11273
  }
11160
- function Ys(e, t) {
11274
+ function Qs(e, t) {
11161
11275
  let n = 0;
11162
- for (let r of e.matchAll(Hs)) {
11276
+ for (let r of e.matchAll(Gs)) {
11163
11277
  let i = r.index;
11164
- Gs(t, e.slice(n, i), "text"), Gs(t, r[0], "heading"), n = i + r[0].length;
11278
+ Js(t, e.slice(n, i), "text"), Js(t, r[0], "heading"), n = i + r[0].length;
11165
11279
  }
11166
- Gs(t, e.slice(n), "text");
11280
+ Js(t, e.slice(n), "text");
11167
11281
  }
11168
- function Xs(e) {
11282
+ function $s(e) {
11169
11283
  let t = [], n = 0;
11170
- for (let r of e.matchAll(Vs)) {
11284
+ for (let r of e.matchAll(Ws)) {
11171
11285
  let i = r.index;
11172
- Ys(e.slice(n, i), t), Js(r[0], t), n = i + r[0].length;
11286
+ Qs(e.slice(n, i), t), Zs(r[0], t), n = i + r[0].length;
11173
11287
  }
11174
- return Ys(e.slice(n), t), t;
11288
+ return Qs(e.slice(n), t), t;
11175
11289
  }
11176
11290
  //#endregion
11177
11291
  //#region src/client/components/AnalysisBuilder/TemplateEditor.tsx
11178
- var Zs = {
11292
+ var ec = {
11179
11293
  margin: 0,
11180
11294
  padding: "0.25rem 0.5rem",
11181
11295
  border: "1px solid transparent",
@@ -11187,7 +11301,7 @@ var Zs = {
11187
11301
  whiteSpace: "pre-wrap",
11188
11302
  overflowWrap: "break-word",
11189
11303
  wordBreak: "normal"
11190
- }, Qs = "​", $s = {
11304
+ }, tc = "​", nc = {
11191
11305
  keyword: "text-dc-filter",
11192
11306
  identifier: "text-dc-accent",
11193
11307
  filter: "text-dc-warning",
@@ -11198,8 +11312,8 @@ var Zs = {
11198
11312
  heading: "dc:font-bold text-dc-text-secondary",
11199
11313
  text: "text-dc-text"
11200
11314
  };
11201
- function ec({ value: e, onChange: t, placeholder: n, rows: r = 8 }) {
11202
- let i = Y(null), a = J(() => Xs(e.endsWith("\n") ? `${e}${Qs}` : e), [e]), o = K((e) => {
11315
+ function rc({ value: e, onChange: t, placeholder: n, rows: r = 8 }) {
11316
+ let i = Y(null), a = J(() => $s(e.endsWith("\n") ? `${e}${tc}` : e), [e]), o = K((e) => {
11203
11317
  let t = i.current;
11204
11318
  t && (t.scrollTop = e.currentTarget.scrollTop, t.scrollLeft = e.currentTarget.scrollLeft);
11205
11319
  }, []), s = `calc(${r} * 1.5rem + 0.5rem + 2px)`;
@@ -11210,12 +11324,12 @@ function ec({ value: e, onChange: t, placeholder: n, rows: r = 8 }) {
11210
11324
  ref: i,
11211
11325
  "aria-hidden": "true",
11212
11326
  className: "dc:absolute dc:inset-0 dc:overflow-auto dc:pointer-events-none",
11213
- style: Zs,
11327
+ style: ec,
11214
11328
  children: e === "" && n ? /* @__PURE__ */ Q("span", {
11215
11329
  className: "text-dc-text-muted",
11216
11330
  children: n
11217
11331
  }) : a.map((e, t) => /* @__PURE__ */ Q("span", {
11218
- className: $s[e.kind],
11332
+ className: nc[e.kind],
11219
11333
  children: e.text
11220
11334
  }, t))
11221
11335
  }), /* @__PURE__ */ Q("textarea", {
@@ -11226,7 +11340,7 @@ function ec({ value: e, onChange: t, placeholder: n, rows: r = 8 }) {
11226
11340
  spellCheck: !1,
11227
11341
  className: "dc:absolute dc:inset-0 dc:w-full dc:h-full dc:resize-none dc:bg-transparent focus:outline-hidden",
11228
11342
  style: {
11229
- ...Zs,
11343
+ ...ec,
11230
11344
  color: "transparent",
11231
11345
  caretColor: "var(--dc-text)",
11232
11346
  WebkitTextFillColor: "transparent"
@@ -11236,8 +11350,8 @@ function ec({ value: e, onChange: t, placeholder: n, rows: r = 8 }) {
11236
11350
  }
11237
11351
  //#endregion
11238
11352
  //#region src/client/components/AnalysisBuilder/DisplayOptionControl.tsx
11239
- var tc = "#22c55e";
11240
- function nc({ description: e, docsUrl: t, docsLabel: n, t: r }) {
11353
+ var ic = "#22c55e";
11354
+ function ac({ description: e, docsUrl: t, docsLabel: n, t: r }) {
11241
11355
  return !e && !t ? null : /* @__PURE__ */ $("p", {
11242
11356
  className: "dc:text-xs text-dc-text-muted",
11243
11357
  children: [e ? r(e) : null, t ? /* @__PURE__ */ $(Z, { children: [e ? " " : null, /* @__PURE__ */ Q("a", {
@@ -11249,7 +11363,7 @@ function nc({ description: e, docsUrl: t, docsLabel: n, t: r }) {
11249
11363
  })] }) : null]
11250
11364
  });
11251
11365
  }
11252
- function rc({ option: e, displayConfig: t, setValue: n, t: r }) {
11366
+ function oc({ option: e, displayConfig: t, setValue: n, t: r }) {
11253
11367
  let i = e.key;
11254
11368
  return /* @__PURE__ */ $("label", {
11255
11369
  className: "dc:flex dc:items-center dc:space-x-2",
@@ -11265,7 +11379,7 @@ function rc({ option: e, displayConfig: t, setValue: n, t: r }) {
11265
11379
  })]
11266
11380
  });
11267
11381
  }
11268
- function ic({ option: e, displayConfig: t, setValue: n, t: r }) {
11382
+ function sc({ option: e, displayConfig: t, setValue: n, t: r }) {
11269
11383
  let i = t[e.key] ?? e.defaultValue ?? "", a = e.placeholder ? r(e.placeholder) : void 0;
11270
11384
  return /* @__PURE__ */ $("div", {
11271
11385
  className: "dc:space-y-1",
@@ -11277,7 +11391,7 @@ function ic({ option: e, displayConfig: t, setValue: n, t: r }) {
11277
11391
  children: r("chart.markdown.contentHint")
11278
11392
  })]
11279
11393
  }),
11280
- e.syntax === "markdownTemplate" ? /* @__PURE__ */ Q(ec, {
11394
+ e.syntax === "markdownTemplate" ? /* @__PURE__ */ Q(rc, {
11281
11395
  value: i,
11282
11396
  onChange: n,
11283
11397
  placeholder: a,
@@ -11295,7 +11409,7 @@ function ic({ option: e, displayConfig: t, setValue: n, t: r }) {
11295
11409
  placeholder: a,
11296
11410
  className: "dc:w-full dc:px-2 dc:py-1 dc:text-sm dc:border border-dc-border dc:rounded-sm focus:ring-dc-accent focus:border-dc-accent bg-dc-surface text-dc-text"
11297
11411
  }),
11298
- /* @__PURE__ */ Q(nc, {
11412
+ /* @__PURE__ */ Q(ac, {
11299
11413
  description: e.description,
11300
11414
  docsUrl: e.docsUrl,
11301
11415
  docsLabel: e.docsLabel,
@@ -11304,7 +11418,7 @@ function ic({ option: e, displayConfig: t, setValue: n, t: r }) {
11304
11418
  ]
11305
11419
  });
11306
11420
  }
11307
- function ac({ option: e, displayConfig: t, colorPalette: n, setValue: r, t: i }) {
11421
+ function cc({ option: e, displayConfig: t, colorPalette: n, setValue: r, t: i }) {
11308
11422
  let a = t[e.key] ?? e.defaultValue ?? 0;
11309
11423
  return /* @__PURE__ */ $("div", {
11310
11424
  className: "dc:space-y-1",
@@ -11336,7 +11450,7 @@ function ac({ option: e, displayConfig: t, colorPalette: n, setValue: r, t: i })
11336
11450
  title: "Default Color"
11337
11451
  }, 0)]
11338
11452
  }),
11339
- /* @__PURE__ */ Q(nc, {
11453
+ /* @__PURE__ */ Q(ac, {
11340
11454
  description: e.description,
11341
11455
  docsUrl: e.docsUrl,
11342
11456
  docsLabel: e.docsLabel,
@@ -11345,7 +11459,7 @@ function ac({ option: e, displayConfig: t, colorPalette: n, setValue: r, t: i })
11345
11459
  ]
11346
11460
  });
11347
11461
  }
11348
- function oc({ option: e, displayConfig: t, setValue: n, t: r }) {
11462
+ function lc({ option: e, displayConfig: t, setValue: n, t: r }) {
11349
11463
  let i = e.key;
11350
11464
  return /* @__PURE__ */ $("div", {
11351
11465
  className: "dc:space-y-1",
@@ -11364,7 +11478,7 @@ function oc({ option: e, displayConfig: t, setValue: n, t: r }) {
11364
11478
  step: e.step,
11365
11479
  className: "dc:w-full dc:px-2 dc:py-1 dc:text-sm dc:border border-dc-border dc:rounded-sm focus:ring-dc-accent focus:border-dc-accent bg-dc-surface text-dc-text"
11366
11480
  }),
11367
- /* @__PURE__ */ Q(nc, {
11481
+ /* @__PURE__ */ Q(ac, {
11368
11482
  description: e.description,
11369
11483
  docsUrl: e.docsUrl,
11370
11484
  docsLabel: e.docsLabel,
@@ -11373,7 +11487,7 @@ function oc({ option: e, displayConfig: t, setValue: n, t: r }) {
11373
11487
  ]
11374
11488
  });
11375
11489
  }
11376
- function sc({ option: e, displayConfig: t, setValue: n, t: r }) {
11490
+ function uc({ option: e, displayConfig: t, setValue: n, t: r }) {
11377
11491
  let i = e.key;
11378
11492
  return /* @__PURE__ */ $("div", {
11379
11493
  className: "dc:space-y-1",
@@ -11391,7 +11505,7 @@ function sc({ option: e, displayConfig: t, setValue: n, t: r }) {
11391
11505
  children: r(e.label)
11392
11506
  }, e.value))
11393
11507
  }),
11394
- /* @__PURE__ */ Q(nc, {
11508
+ /* @__PURE__ */ Q(ac, {
11395
11509
  description: e.description,
11396
11510
  docsUrl: e.docsUrl,
11397
11511
  docsLabel: e.docsLabel,
@@ -11400,7 +11514,7 @@ function sc({ option: e, displayConfig: t, setValue: n, t: r }) {
11400
11514
  ]
11401
11515
  });
11402
11516
  }
11403
- function cc({ option: e, displayConfig: t, setValue: n, t: r }) {
11517
+ function dc({ option: e, displayConfig: t, setValue: n, t: r }) {
11404
11518
  let i = t[e.key] ?? e.defaultValue ?? "#8884d8";
11405
11519
  return /* @__PURE__ */ $("div", {
11406
11520
  className: "dc:space-y-1",
@@ -11424,7 +11538,7 @@ function cc({ option: e, displayConfig: t, setValue: n, t: r }) {
11424
11538
  className: "dc:flex-1 dc:px-2 dc:py-1 dc:text-sm dc:border border-dc-border dc:rounded-sm focus:ring-dc-accent focus:border-dc-accent bg-dc-surface text-dc-text"
11425
11539
  })]
11426
11540
  }),
11427
- /* @__PURE__ */ Q(nc, {
11541
+ /* @__PURE__ */ Q(ac, {
11428
11542
  description: e.description,
11429
11543
  docsUrl: e.docsUrl,
11430
11544
  docsLabel: e.docsLabel,
@@ -11433,7 +11547,7 @@ function cc({ option: e, displayConfig: t, setValue: n, t: r }) {
11433
11547
  ]
11434
11548
  });
11435
11549
  }
11436
- function lc({ option: e, displayConfig: t, setValue: n, t: r }) {
11550
+ function fc({ option: e, displayConfig: t, setValue: n, t: r }) {
11437
11551
  let i = e.key;
11438
11552
  return /* @__PURE__ */ Q(U, {
11439
11553
  axisLabel: r(e.label),
@@ -11441,7 +11555,7 @@ function lc({ option: e, displayConfig: t, setValue: n, t: r }) {
11441
11555
  onChange: (e) => n(Object.keys(e).length > 0 ? e : void 0)
11442
11556
  });
11443
11557
  }
11444
- function uc({ option: e, displayConfig: t, setValue: n, t: r }) {
11558
+ function pc({ option: e, displayConfig: t, setValue: n, t: r }) {
11445
11559
  let i = e.key;
11446
11560
  return /* @__PURE__ */ Q(ks, {
11447
11561
  label: r(e.label),
@@ -11451,7 +11565,7 @@ function uc({ option: e, displayConfig: t, setValue: n, t: r }) {
11451
11565
  description: e.description ? r(e.description) : void 0
11452
11566
  });
11453
11567
  }
11454
- function dc({ option: e, displayConfig: t, setValue: n, t: r }) {
11568
+ function mc({ option: e, displayConfig: t, setValue: n, t: r }) {
11455
11569
  let i = e.key;
11456
11570
  return /* @__PURE__ */ $("div", {
11457
11571
  className: "dc:space-y-1",
@@ -11469,7 +11583,7 @@ function dc({ option: e, displayConfig: t, setValue: n, t: r }) {
11469
11583
  children: r(a.label)
11470
11584
  }, a.value))
11471
11585
  }),
11472
- /* @__PURE__ */ Q(nc, {
11586
+ /* @__PURE__ */ Q(ac, {
11473
11587
  description: e.description,
11474
11588
  docsUrl: e.docsUrl,
11475
11589
  docsLabel: e.docsLabel,
@@ -11478,7 +11592,7 @@ function dc({ option: e, displayConfig: t, setValue: n, t: r }) {
11478
11592
  ]
11479
11593
  });
11480
11594
  }
11481
- function fc({ option: e, displayConfig: t, setValue: n, t: r }) {
11595
+ function hc({ option: e, displayConfig: t, setValue: n, t: r }) {
11482
11596
  let i = t[e.key], a = ge(i), o = Number(t.minValue ?? 0), s = Number(t.maxValue ?? 100) - o, c = Number.isFinite(s) && s !== 0, l = (e) => c ? o + e * s : e, u = (e) => c ? (e - o) / s : e, d = (e) => {
11483
11597
  let t = [...e].sort((e, t) => e.value - t.value);
11484
11598
  n(t.length > 0 ? t : void 0);
@@ -11531,13 +11645,13 @@ function fc({ option: e, displayConfig: t, setValue: n, t: r }) {
11531
11645
  let e = a[a.length - 1], t = e ? Math.min(1, (e.value + 1) / 2) : 0;
11532
11646
  d([...a, {
11533
11647
  value: t,
11534
- color: tc
11648
+ color: ic
11535
11649
  }]);
11536
11650
  },
11537
11651
  className: "dc:text-xs dc:px-2 dc:py-1 dc:rounded-sm dc:border border-dc-border text-dc-text-secondary hover:bg-dc-surface-hover dc:cursor-pointer",
11538
11652
  children: r("chart.gauge.thresholds.add")
11539
11653
  }),
11540
- /* @__PURE__ */ Q(nc, {
11654
+ /* @__PURE__ */ Q(ac, {
11541
11655
  description: e.description,
11542
11656
  docsUrl: e.docsUrl,
11543
11657
  docsLabel: e.docsLabel,
@@ -11546,7 +11660,7 @@ function fc({ option: e, displayConfig: t, setValue: n, t: r }) {
11546
11660
  ]
11547
11661
  });
11548
11662
  }
11549
- function pc({ option: e, displayConfig: t, chartConfig: n, colorPalette: r, setValue: i, t: a }) {
11663
+ function gc({ option: e, displayConfig: t, chartConfig: n, colorPalette: r, setValue: i, t: a }) {
11550
11664
  let o = e.key;
11551
11665
  return /* @__PURE__ */ $("div", {
11552
11666
  className: "dc:space-y-1",
@@ -11558,11 +11672,14 @@ function pc({ option: e, displayConfig: t, chartConfig: n, colorPalette: r, setV
11558
11672
  /* @__PURE__ */ Q(Ns, {
11559
11673
  value: t[o] ?? {},
11560
11674
  chartConfig: n,
11675
+ displayConfig: t,
11676
+ columns: e.columns,
11561
11677
  colorPalette: r,
11678
+ progressBands: e.progressBands,
11562
11679
  onChange: i,
11563
11680
  t: a
11564
11681
  }),
11565
- /* @__PURE__ */ Q(nc, {
11682
+ /* @__PURE__ */ Q(ac, {
11566
11683
  description: e.description,
11567
11684
  docsUrl: e.docsUrl,
11568
11685
  docsLabel: e.docsLabel,
@@ -11571,7 +11688,7 @@ function pc({ option: e, displayConfig: t, chartConfig: n, colorPalette: r, setV
11571
11688
  ]
11572
11689
  });
11573
11690
  }
11574
- function mc({ option: e, displayConfig: t, setValue: n, t: r }) {
11691
+ function _c({ option: e, displayConfig: t, setValue: n, t: r }) {
11575
11692
  let i = t[e.key] ?? { urlTemplate: "" }, a = (e) => n(e.urlTemplate.trim() ? e : void 0);
11576
11693
  return /* @__PURE__ */ $("div", {
11577
11694
  className: "dc:space-y-1",
@@ -11603,7 +11720,7 @@ function mc({ option: e, displayConfig: t, setValue: n, t: r }) {
11603
11720
  children: r(`chart.recordsTable.rowLink.target.${e}`)
11604
11721
  }, e))
11605
11722
  }),
11606
- /* @__PURE__ */ Q(nc, {
11723
+ /* @__PURE__ */ Q(ac, {
11607
11724
  description: e.description,
11608
11725
  docsUrl: e.docsUrl,
11609
11726
  docsLabel: e.docsLabel,
@@ -11612,25 +11729,25 @@ function mc({ option: e, displayConfig: t, setValue: n, t: r }) {
11612
11729
  ]
11613
11730
  });
11614
11731
  }
11615
- var hc = {
11616
- boolean: rc,
11617
- string: ic,
11618
- paletteColor: ac,
11619
- number: oc,
11620
- select: sc,
11621
- color: cc,
11622
- axisFormat: lc,
11623
- stringArray: uc,
11624
- buttonGroup: dc,
11625
- thresholdBands: fc,
11626
- columnFormats: pc,
11627
- rowLink: mc
11732
+ var vc = {
11733
+ boolean: oc,
11734
+ string: sc,
11735
+ paletteColor: cc,
11736
+ number: lc,
11737
+ select: uc,
11738
+ color: dc,
11739
+ axisFormat: fc,
11740
+ stringArray: pc,
11741
+ buttonGroup: mc,
11742
+ thresholdBands: hc,
11743
+ columnFormats: gc,
11744
+ rowLink: _c
11628
11745
  };
11629
- function gc({ option: e, displayConfig: t, colorPalette: n, chartConfig: r, onDisplayConfigChange: i }) {
11746
+ function yc({ option: e, displayConfig: t, colorPalette: n, chartConfig: r, onDisplayConfigChange: i }) {
11630
11747
  let { t: a } = V(), o = (n) => i({
11631
11748
  ...t,
11632
11749
  [e.key]: n
11633
- }), s = hc[e.type];
11750
+ }), s = vc[e.type];
11634
11751
  return s ? /* @__PURE__ */ Q(s, {
11635
11752
  option: e,
11636
11753
  displayConfig: t,
@@ -11642,7 +11759,7 @@ function gc({ option: e, displayConfig: t, colorPalette: n, chartConfig: r, onDi
11642
11759
  }
11643
11760
  //#endregion
11644
11761
  //#region src/client/components/AnalysisBuilder/LegacyBooleanOptions.tsx
11645
- var _c = [
11762
+ var bc = [
11646
11763
  {
11647
11764
  key: "showLegend",
11648
11765
  labelKey: "display.showLegend",
@@ -11673,9 +11790,9 @@ var _c = [
11673
11790
  labelKey: "display.hideHeader",
11674
11791
  defaultChecked: !1
11675
11792
  }
11676
- ], vc = Se(function({ displayOptions: e, displayConfig: t, onDisplayConfigChange: n }) {
11793
+ ], xc = Se(function({ displayOptions: e, displayConfig: t, onDisplayConfigChange: n }) {
11677
11794
  let { t: r } = V();
11678
- return !e || e.length === 0 ? null : /* @__PURE__ */ Q(Z, { children: _c.filter((t) => e.includes(t.key)).map((e) => /* @__PURE__ */ $("label", {
11795
+ return !e || e.length === 0 ? null : /* @__PURE__ */ Q(Z, { children: bc.filter((t) => e.includes(t.key)).map((e) => /* @__PURE__ */ $("label", {
11679
11796
  className: "dc:flex dc:items-center dc:space-x-2",
11680
11797
  children: [/* @__PURE__ */ Q("input", {
11681
11798
  type: "checkbox",
@@ -11694,7 +11811,7 @@ var _c = [
11694
11811
  });
11695
11812
  //#endregion
11696
11813
  //#region src/client/components/AnalysisBuilder/AnalysisDisplayConfigPanel.tsx
11697
- function yc({ chartType: e, displayConfig: t, colorPalette: n, chartConfig: r, onDisplayConfigChange: i, excludeKeys: a }) {
11814
+ function Sc({ chartType: e, displayConfig: t, colorPalette: n, chartConfig: r, onDisplayConfigChange: i, excludeKeys: a }) {
11698
11815
  let { t: o } = V(), { config: s, loaded: c } = _(e);
11699
11816
  if (!c) return /* @__PURE__ */ Q("div", {
11700
11817
  className: "dc:text-center text-dc-text-muted dc:text-sm dc:py-4",
@@ -11708,13 +11825,13 @@ function yc({ chartType: e, displayConfig: t, colorPalette: n, chartConfig: r, o
11708
11825
  children: o("display.heading")
11709
11826
  }), /* @__PURE__ */ $("div", {
11710
11827
  className: "dc:space-y-2",
11711
- children: [/* @__PURE__ */ Q(vc, {
11828
+ children: [/* @__PURE__ */ Q(xc, {
11712
11829
  displayOptions: s.displayOptions,
11713
11830
  displayConfig: t,
11714
11831
  onDisplayConfigChange: i
11715
11832
  }), l.map((e) => /* @__PURE__ */ Q("div", {
11716
11833
  className: `dc:space-y-1 ${e.type === "axisFormat" ? "dc:mt-6 dc:pt-2" : ""}`,
11717
- children: /* @__PURE__ */ Q(gc, {
11834
+ children: /* @__PURE__ */ Q(yc, {
11718
11835
  option: e,
11719
11836
  displayConfig: t,
11720
11837
  colorPalette: n,
@@ -11730,8 +11847,8 @@ function yc({ chartType: e, displayConfig: t, colorPalette: n, chartConfig: r, o
11730
11847
  }
11731
11848
  //#endregion
11732
11849
  //#region src/client/components/TextPortletModal.tsx
11733
- var bc = b("close");
11734
- function xc({ isOpen: e, onClose: t, onSave: n, portlet: r, colorPalette: i, existingTitles: a = [] }) {
11850
+ var Cc = b("close");
11851
+ function wc({ isOpen: e, onClose: t, onSave: n, portlet: r, colorPalette: i, existingTitles: a = [] }) {
11735
11852
  let { t: o } = V(), s = J(() => r ? j(r).analysisConfig.charts.query?.displayConfig ?? {} : {
11736
11853
  content: "",
11737
11854
  hideHeader: !0,
@@ -11827,7 +11944,7 @@ function xc({ isOpen: e, onClose: t, onSave: n, portlet: r, colorPalette: i, exi
11827
11944
  }), /* @__PURE__ */ Q("button", {
11828
11945
  onClick: t,
11829
11946
  className: "dc:p-1 dc:rounded-md text-dc-text-secondary dc:hover:bg-dc-surface-hover dc:transition-colors",
11830
- children: /* @__PURE__ */ Q(bc, { className: "dc:w-5 dc:h-5" })
11947
+ children: /* @__PURE__ */ Q(Cc, { className: "dc:w-5 dc:h-5" })
11831
11948
  })]
11832
11949
  }),
11833
11950
  /* @__PURE__ */ Q("div", {
@@ -11884,7 +12001,7 @@ function xc({ isOpen: e, onClose: t, onSave: n, portlet: r, colorPalette: i, exi
11884
12001
  ]
11885
12002
  }), /* @__PURE__ */ Q("div", {
11886
12003
  className: "dc:w-72 dc:shrink-0",
11887
- children: /* @__PURE__ */ Q(yc, {
12004
+ children: /* @__PURE__ */ Q(Sc, {
11888
12005
  chartType: "markdown",
11889
12006
  displayConfig: c,
11890
12007
  colorPalette: i,
@@ -11913,7 +12030,7 @@ function xc({ isOpen: e, onClose: t, onSave: n, portlet: r, colorPalette: i, exi
11913
12030
  }
11914
12031
  //#endregion
11915
12032
  //#region src/client/utils/joinReachability.ts
11916
- function Sc(e, t) {
12033
+ function Tc(e, t) {
11917
12034
  let n = new Set(t);
11918
12035
  if (!e?.cubes || t.length === 0) return n;
11919
12036
  let r = /* @__PURE__ */ new Map(), i = (e, t) => {
@@ -11931,14 +12048,14 @@ function Sc(e, t) {
11931
12048
  }
11932
12049
  return n;
11933
12050
  }
11934
- function Cc(e) {
12051
+ function Ec(e) {
11935
12052
  let t = e.indexOf(".");
11936
12053
  return t > 0 ? e.substring(0, t) : null;
11937
12054
  }
11938
- function wc(e) {
12055
+ function Dc(e) {
11939
12056
  let t = /* @__PURE__ */ new Set(), n = (e) => {
11940
12057
  if (typeof e == "string") {
11941
- let n = Cc(e);
12058
+ let n = Ec(e);
11942
12059
  n && t.add(n);
11943
12060
  }
11944
12061
  }, r = (e) => {
@@ -11956,11 +12073,11 @@ function wc(e) {
11956
12073
  }
11957
12074
  return [...t];
11958
12075
  }
11959
- function Tc(e, t, n) {
12076
+ function Oc(e, t, n) {
11960
12077
  if (!e?.cubes) return [];
11961
- let r = wc(t);
12078
+ let r = Dc(t);
11962
12079
  if (r.length === 0) return [];
11963
- let i = Sc(e, r), a = n?.type;
12080
+ let i = Tc(e, r), a = n?.type;
11964
12081
  if (!a && n?.sameTypeAs) for (let t of e.cubes) {
11965
12082
  let e = t.dimensions?.find((e) => e.name === n.sameTypeAs);
11966
12083
  if (e) {
@@ -11976,7 +12093,7 @@ function Tc(e, t, n) {
11976
12093
  }
11977
12094
  //#endregion
11978
12095
  //#region src/client/components/PortletFilterConfigModal.tsx
11979
- function Ec({ isOpen: e, onClose: t, dashboardFilters: n = [], currentMapping: r = [], onSave: i, portletTitle: a, schema: o = null, portlet: s = null }) {
12096
+ function kc({ isOpen: e, onClose: t, dashboardFilters: n = [], currentMapping: r = [], onSave: i, portletTitle: a, schema: o = null, portlet: s = null }) {
11980
12097
  let { t: c } = V(), [l, u] = X(() => Fe(r));
11981
12098
  q(() => {
11982
12099
  u((e) => {
@@ -12000,10 +12117,10 @@ function Ec({ isOpen: e, onClose: t, dashboardFilters: n = [], currentMapping: r
12000
12117
  return !o || !s || n.forEach((t) => {
12001
12118
  if ("member" in t.filter && t.filter.member) {
12002
12119
  if (t.isUniversalTime) {
12003
- e.has(t.filter.member) || e.set(t.filter.member, Tc(o, s, { type: "time" }));
12120
+ e.has(t.filter.member) || e.set(t.filter.member, Oc(o, s, { type: "time" }));
12004
12121
  return;
12005
12122
  }
12006
- e.has(t.filter.member) || e.set(t.filter.member, Tc(o, s, { sameTypeAs: t.filter.member }));
12123
+ e.has(t.filter.member) || e.set(t.filter.member, Oc(o, s, { sameTypeAs: t.filter.member }));
12007
12124
  }
12008
12125
  }), e;
12009
12126
  }, [
@@ -12183,7 +12300,7 @@ function Ec({ isOpen: e, onClose: t, dashboardFilters: n = [], currentMapping: r
12183
12300
  }
12184
12301
  //#endregion
12185
12302
  //#region src/client/components/ConfirmModal.tsx
12186
- var Dc = ({ isOpen: e, onClose: t, onConfirm: n, title: r, message: i, confirmText: a, cancelText: o, confirmVariant: s = "primary", isLoading: c = !1 }) => {
12303
+ var Ac = ({ isOpen: e, onClose: t, onConfirm: n, title: r, message: i, confirmText: a, cancelText: o, confirmVariant: s = "primary", isLoading: c = !1 }) => {
12187
12304
  let { t: l } = V(), u = r ?? l("common.actions.confirm"), d = a ?? l("common.actions.confirm"), f = o ?? l("common.actions.cancel");
12188
12305
  return /* @__PURE__ */ Q(us, {
12189
12306
  isOpen: e,
@@ -12242,7 +12359,7 @@ var Dc = ({ isOpen: e, onClose: t, onConfirm: n, title: r, message: i, confirmTe
12242
12359
  };
12243
12360
  //#endregion
12244
12361
  //#region src/client/components/dashboard/DashboardImportModals.tsx
12245
- function Oc(e, t) {
12362
+ function jc(e, t) {
12246
12363
  switch (e.code) {
12247
12364
  case "invalidJson": return t("dashboard.import.error.invalidJson");
12248
12365
  case "unknownFormat": return t("dashboard.import.error.unknownFormat");
@@ -12253,15 +12370,15 @@ function Oc(e, t) {
12253
12370
  });
12254
12371
  }
12255
12372
  }
12256
- function kc(e, t) {
12373
+ function Mc(e, t) {
12257
12374
  if (e.code === "unknownFilterMapping") return t("dashboard.import.warning.unknownFilterMapping", {
12258
12375
  portlet: e.portletTitle || e.portletId,
12259
12376
  filterId: e.filterId
12260
12377
  });
12261
12378
  }
12262
- function Ac() {
12379
+ function Nc() {
12263
12380
  let { t: e } = V(), { importExport: t } = ai(), { pendingImport: n, failedImport: r, isImporting: i, canRename: a } = t, o = !!(a && n?.name);
12264
- return /* @__PURE__ */ $(Z, { children: [/* @__PURE__ */ Q(Dc, {
12381
+ return /* @__PURE__ */ $(Z, { children: [/* @__PURE__ */ Q(Ac, {
12265
12382
  isOpen: n !== null,
12266
12383
  onClose: t.cancelImport,
12267
12384
  onConfirm: t.confirmImport,
@@ -12284,7 +12401,7 @@ function Ac() {
12284
12401
  children: e("dashboard.import.warningsTitle")
12285
12402
  }), /* @__PURE__ */ Q("ul", {
12286
12403
  className: "dc:list-disc dc:pl-5 dc:mt-1 dc:space-y-1",
12287
- children: n.warnings.map((t, n) => /* @__PURE__ */ Q("li", { children: kc(t, e) }, n))
12404
+ children: n.warnings.map((t, n) => /* @__PURE__ */ Q("li", { children: Mc(t, e) }, n))
12288
12405
  })]
12289
12406
  })
12290
12407
  ]
@@ -12304,14 +12421,14 @@ function Ac() {
12304
12421
  className: "text-dc-text-secondary dc:space-y-2",
12305
12422
  children: [/* @__PURE__ */ Q("p", { children: e("dashboard.import.errorIntro", { fileName: r.fileName }) }), /* @__PURE__ */ Q("ul", {
12306
12423
  className: "dc:list-disc dc:pl-5 dc:space-y-1 dc:text-sm",
12307
- children: r.errors.map((t, n) => /* @__PURE__ */ Q("li", { children: Oc(t, e) }, n))
12424
+ children: r.errors.map((t, n) => /* @__PURE__ */ Q("li", { children: jc(t, e) }, n))
12308
12425
  })]
12309
12426
  })
12310
12427
  })] });
12311
12428
  }
12312
12429
  //#endregion
12313
12430
  //#region src/client/components/dashboard/DashboardModals.tsx
12314
- function jc() {
12431
+ function Pc() {
12315
12432
  let { t: e } = V(), { config: t, colorPalette: n, dashboardFilters: r, schema: i, isPortletModalOpen: a, editingPortlet: o, isTextModalOpen: s, editingTextPortlet: c, isFilterConfigModalOpen: l, filterConfigPortlet: u, deleteConfirmPortletId: d, deleteConfirmGroupId: f, handlePortletSave: p, handleSaveFilterConfig: m, actions: h } = ai(), g = t.portlets.find((e) => e.id === d)?.title || e("dashboard.thisPortlet"), _ = (t.groups?.find((e) => e.id === f))?.cells.reduce((e, t) => e + t.portletIds.length, 0) ?? 0;
12316
12433
  return /* @__PURE__ */ $(Z, { children: [
12317
12434
  /* @__PURE__ */ Q(Os, {
@@ -12324,7 +12441,7 @@ function jc() {
12324
12441
  colorPalette: n,
12325
12442
  dashboardFilters: r
12326
12443
  }),
12327
- /* @__PURE__ */ Q(xc, {
12444
+ /* @__PURE__ */ Q(wc, {
12328
12445
  isOpen: s,
12329
12446
  onClose: h.closeTextModal,
12330
12447
  onSave: p,
@@ -12332,7 +12449,7 @@ function jc() {
12332
12449
  colorPalette: n,
12333
12450
  existingTitles: t.portlets.map((e) => e.title)
12334
12451
  }),
12335
- /* @__PURE__ */ Q(Ec, {
12452
+ /* @__PURE__ */ Q(kc, {
12336
12453
  isOpen: l,
12337
12454
  onClose: h.closeFilterConfig,
12338
12455
  dashboardFilters: r || [],
@@ -12342,7 +12459,7 @@ function jc() {
12342
12459
  schema: i || null,
12343
12460
  portlet: u
12344
12461
  }),
12345
- /* @__PURE__ */ Q(Dc, {
12462
+ /* @__PURE__ */ Q(Ac, {
12346
12463
  isOpen: !!f,
12347
12464
  onClose: h.closeDeleteConfirm,
12348
12465
  onConfirm: h.confirmDelete,
@@ -12351,7 +12468,7 @@ function jc() {
12351
12468
  confirmText: e("common.actions.delete"),
12352
12469
  confirmVariant: "danger"
12353
12470
  }),
12354
- /* @__PURE__ */ Q(Dc, {
12471
+ /* @__PURE__ */ Q(Ac, {
12355
12472
  isOpen: !!d,
12356
12473
  onClose: h.closeDeleteConfirm,
12357
12474
  onConfirm: h.confirmDelete,
@@ -12365,12 +12482,12 @@ function jc() {
12365
12482
  confirmText: e("common.actions.delete"),
12366
12483
  confirmVariant: "danger"
12367
12484
  }),
12368
- /* @__PURE__ */ Q(Ac, {})
12485
+ /* @__PURE__ */ Q(Nc, {})
12369
12486
  ] });
12370
12487
  }
12371
12488
  //#endregion
12372
12489
  //#region src/client/components/DashboardGrid.tsx
12373
- function Mc(e) {
12490
+ function Fc(e) {
12374
12491
  let t = !e.config.portlets || e.config.portlets.length === 0;
12375
12492
  return /* @__PURE__ */ $(fi, {
12376
12493
  ...e,
@@ -12378,13 +12495,13 @@ function Mc(e) {
12378
12495
  !t && !e.hideToolbar && /* @__PURE__ */ Q(Ki, {}),
12379
12496
  !t && /* @__PURE__ */ Q(es, {}),
12380
12497
  /* @__PURE__ */ Q(ls, {}),
12381
- /* @__PURE__ */ Q(jc, {})
12498
+ /* @__PURE__ */ Q(Pc, {})
12382
12499
  ]
12383
12500
  });
12384
12501
  }
12385
12502
  //#endregion
12386
12503
  //#region src/client/components/AnalyticsDashboard.tsx
12387
- function Nc({ config: e, editable: t = !1, dashboardFilters: n, loadingComponent: r, onConfigChange: i, onSave: a, onSaveThumbnail: o, onDirtyStateChange: s, dashboardMeta: c, onDashboardMetaChange: u }) {
12504
+ function Ic({ config: e, editable: t = !1, dashboardFilters: n, loadingComponent: r, onConfigChange: i, onSave: a, onSaveThumbnail: o, onDirtyStateChange: s, dashboardMeta: c, onDashboardMetaChange: u }) {
12388
12505
  let { meta: d } = ue(), { dashboardModes: f } = l(), { handleConfigChange: p, handleSave: m } = oe({
12389
12506
  initialConfig: e,
12390
12507
  onConfigChange: i,
@@ -12417,7 +12534,7 @@ function Nc({ config: e, editable: t = !1, dashboardFilters: n, loadingComponent
12417
12534
  }, [e.colorPalette]);
12418
12535
  return /* @__PURE__ */ Q("div", {
12419
12536
  className: "dc:w-full",
12420
- children: /* @__PURE__ */ Q(Mc, {
12537
+ children: /* @__PURE__ */ Q(Fc, {
12421
12538
  config: e,
12422
12539
  editable: t,
12423
12540
  dashboardFilters: h,
@@ -12436,7 +12553,7 @@ function Nc({ config: e, editable: t = !1, dashboardFilters: n, loadingComponent
12436
12553
  }
12437
12554
  //#endregion
12438
12555
  //#region src/client/components/PortletContainer.tsx
12439
- function Pc({ portlet: e, editable: t = !1, onEdit: n, onDelete: r, onRefresh: i }) {
12556
+ function Lc({ portlet: e, editable: t = !1, onEdit: n, onDelete: r, onRefresh: i }) {
12440
12557
  let { analysisConfig: a } = J(() => j(e), [e]), o = a.charts[a.analysisType], s = J(() => JSON.stringify(a.query), [a.query]), c = o?.chartType || "line", l = o?.chartConfig, u = o?.displayConfig, [d, f] = X(null), p = K((e) => {
12441
12558
  f(e);
12442
12559
  }, []);
@@ -12533,7 +12650,7 @@ function Pc({ portlet: e, editable: t = !1, onEdit: n, onDelete: r, onRefresh: i
12533
12650
  }
12534
12651
  //#endregion
12535
12652
  //#region src/client/components/DashboardEditModal.tsx
12536
- function Fc({ isOpen: e, onClose: t, onSave: n, title: r, submitText: i, initialName: a = "", initialDescription: o = "" }) {
12653
+ function Rc({ isOpen: e, onClose: t, onSave: n, title: r, submitText: i, initialName: a = "", initialDescription: o = "" }) {
12537
12654
  let { t: s } = V(), [c, l] = X(""), [u, d] = X(""), [f, p] = X(!1);
12538
12655
  q(() => {
12539
12656
  e && (l(a), d(o));
@@ -12608,6 +12725,6 @@ function Fc({ isOpen: e, onClose: t, onSave: n, title: r, submitText: i, initial
12608
12725
  });
12609
12726
  }
12610
12727
  //#endregion
12611
- export { Jt as $, Qr as A, An as B, qi as C, mi as D, Oi as E, xn as F, En as G, Mn as H, _n as I, Sn as J, kn as K, Fn as L, Gn as M, Ln as N, fi as O, In as P, $t as Q, On as R, aa as S, Ki as T, Dn as U, Tn as V, jn as W, wn as X, Cn as Y, pn as Z, ka as _, jc as a, ke as at, Yi as b, gc as c, bs as d, zt as et, gs as f, es as g, ls as h, Mc as i, Pe as it, Kn as j, ai as k, Os as l, us as m, Pc as n, Be as nt, Dc as o, Ae as ot, fs as p, Pn as q, Nc as r, je as rt, yc as s, Fc as t, xt as tt, ws as u, Sa as v, Ji as w, Xi as x, xa as y, Nn as z };
12728
+ export { Jt as $, Qr as A, An as B, qi as C, mi as D, Oi as E, xn as F, En as G, Mn as H, _n as I, Sn as J, kn as K, Fn as L, Gn as M, Ln as N, fi as O, In as P, $t as Q, On as R, aa as S, Ki as T, Dn as U, Tn as V, jn as W, wn as X, Cn as Y, pn as Z, ka as _, Pc as a, ke as at, Yi as b, yc as c, bs as d, zt as et, gs as f, es as g, ls as h, Fc as i, Pe as it, Kn as j, ai as k, Os as l, us as m, Lc as n, Be as nt, Ac as o, Ae as ot, fs as p, Pn as q, Ic as r, je as rt, Sc as s, Rc as t, xt as tt, ws as u, Sa as v, Ji as w, Xi as x, xa as y, Nn as z };
12612
12729
 
12613
- //# sourceMappingURL=DashboardEditModal-DifODH4h.js.map
12730
+ //# sourceMappingURL=DashboardEditModal-BFC08Qog.js.map