drizzle-cube 0.4.29 → 0.4.31

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (388) hide show
  1. package/dist/adapters/anthropic-BIva8k1r.cjs +1 -0
  2. package/dist/adapters/anthropic-B_rg0BhK.js +140 -0
  3. package/dist/adapters/dist-Boc63-1q.cjs +2 -0
  4. package/dist/adapters/dist-De5fzUEM.js +581 -0
  5. package/dist/adapters/express/index.cjs +2 -10
  6. package/dist/adapters/express/index.d.ts +1 -1
  7. package/dist/adapters/express/index.js +232 -342
  8. package/dist/adapters/fastify/index.cjs +2 -10
  9. package/dist/adapters/fastify/index.d.ts +1 -1
  10. package/dist/adapters/fastify/index.js +275 -424
  11. package/dist/adapters/google-CT4kgmBf.js +154 -0
  12. package/dist/adapters/google-Dgo9-Kb5.cjs +2 -0
  13. package/dist/adapters/handler-BiVT5Sa4.js +2951 -0
  14. package/dist/adapters/handler-GLMhjuwG.cjs +25 -0
  15. package/dist/adapters/hono/index.cjs +2 -10
  16. package/dist/adapters/hono/index.d.ts +1 -1
  17. package/dist/adapters/hono/index.js +307 -402
  18. package/dist/adapters/mcp-prompts-BAutSQYA.js +344 -0
  19. package/dist/adapters/mcp-prompts-DsAkafVn.cjs +5 -0
  20. package/dist/adapters/mcp-transport-Cs6gEFCi.js +8127 -0
  21. package/dist/adapters/mcp-transport-nyTtswLM.cjs +254 -0
  22. package/dist/adapters/nextjs/index.cjs +1 -9
  23. package/dist/adapters/nextjs/index.d.ts +1 -1
  24. package/dist/adapters/nextjs/index.js +377 -600
  25. package/dist/adapters/openai-C5Brybjm.cjs +1 -0
  26. package/dist/adapters/openai-D1zCEi6A.cjs +16 -0
  27. package/dist/adapters/openai-DPuFtYsB.js +4136 -0
  28. package/dist/adapters/openai-wU05wYGL.js +153 -0
  29. package/dist/adapters/types.cjs +0 -1
  30. package/dist/adapters/types.js +0 -1
  31. package/dist/adapters/utils-Dj1adfDc.js +5399 -0
  32. package/dist/adapters/utils-cb6OWP7J.cjs +15 -0
  33. package/dist/adapters/utils.cjs +1 -19
  34. package/dist/adapters/utils.d.ts +1 -1
  35. package/dist/adapters/utils.js +2 -21333
  36. package/dist/client/charts.js +15 -186
  37. package/dist/client/chunks/DashboardEditModal-DenRJiYr.js +6678 -0
  38. package/dist/client/chunks/DashboardEditModal-DenRJiYr.js.map +1 -0
  39. package/dist/client/chunks/FieldSearchModal-BQS1v1up.js +2631 -0
  40. package/dist/client/chunks/FieldSearchModal-BQS1v1up.js.map +1 -0
  41. package/dist/client/chunks/RetentionCombinedChart-D4Yf1TnQ.js +270 -0
  42. package/dist/client/chunks/RetentionCombinedChart-D4Yf1TnQ.js.map +1 -0
  43. package/dist/client/chunks/RetentionCombinedChart.config-DprbXd1N.js +56 -0
  44. package/dist/client/chunks/RetentionCombinedChart.config-DprbXd1N.js.map +1 -0
  45. package/dist/client/chunks/RetentionHeatmap-BoGY6mlZ.js +193 -0
  46. package/dist/client/chunks/RetentionHeatmap-BoGY6mlZ.js.map +1 -0
  47. package/dist/client/chunks/RetentionHeatmap.config-cbaNExVy.js +25 -0
  48. package/dist/client/chunks/RetentionHeatmap.config-cbaNExVy.js.map +1 -0
  49. package/dist/client/chunks/analysis-builder-DG38V1gO.js +6105 -0
  50. package/dist/client/chunks/analysis-builder-DG38V1gO.js.map +1 -0
  51. package/dist/client/chunks/analysis-builder-shared-DaFu78dk.js +3116 -0
  52. package/dist/client/chunks/analysis-builder-shared-DaFu78dk.js.map +1 -0
  53. package/dist/client/chunks/chart-activity-grid-wR2Twpo7.js +806 -0
  54. package/dist/client/chunks/chart-activity-grid-wR2Twpo7.js.map +1 -0
  55. package/dist/client/chunks/chart-area-e9ysnatQ.js +449 -0
  56. package/dist/client/chunks/chart-area-e9ysnatQ.js.map +1 -0
  57. package/dist/client/chunks/chart-bar-Bx4oKlqo.js +270 -0
  58. package/dist/client/chunks/chart-bar-Bx4oKlqo.js.map +1 -0
  59. package/dist/client/chunks/chart-box-plot-CVIi1aM5.js +377 -0
  60. package/dist/client/chunks/chart-box-plot-CVIi1aM5.js.map +1 -0
  61. package/dist/client/chunks/chart-bubble-DvyG15UB.js +273 -0
  62. package/dist/client/chunks/chart-bubble-DvyG15UB.js.map +1 -0
  63. package/dist/client/chunks/chart-candlestick-caHyxB9O.js +306 -0
  64. package/dist/client/chunks/chart-candlestick-caHyxB9O.js.map +1 -0
  65. package/dist/client/chunks/chart-config-activity-grid-USo7JrPh.js +51 -0
  66. package/dist/client/chunks/chart-config-activity-grid-USo7JrPh.js.map +1 -0
  67. package/dist/client/chunks/chart-config-area-D_ZufYzg.js +93 -0
  68. package/dist/client/chunks/chart-config-area-D_ZufYzg.js.map +1 -0
  69. package/dist/client/chunks/chart-config-bar-BCi2Wmd6.js +87 -0
  70. package/dist/client/chunks/chart-config-bar-BCi2Wmd6.js.map +1 -0
  71. package/dist/client/chunks/chart-config-box-plot-afKLzJSp.js +35 -0
  72. package/dist/client/chunks/chart-config-box-plot-afKLzJSp.js.map +1 -0
  73. package/dist/client/chunks/chart-config-bubble-CgbBjPv8.js +82 -0
  74. package/dist/client/chunks/chart-config-bubble-CgbBjPv8.js.map +1 -0
  75. package/dist/client/chunks/chart-config-candlestick-7boGjZ-A.js +72 -0
  76. package/dist/client/chunks/chart-config-candlestick-7boGjZ-A.js.map +1 -0
  77. package/dist/client/chunks/chart-config-data-table-Cl7sBasW.js +30 -0
  78. package/dist/client/chunks/chart-config-data-table-Cl7sBasW.js.map +1 -0
  79. package/dist/client/chunks/chart-config-funnel-CXPYQtTl.js +93 -0
  80. package/dist/client/chunks/chart-config-funnel-CXPYQtTl.js.map +1 -0
  81. package/dist/client/chunks/chart-config-gauge-DUNEUCvh.js +64 -0
  82. package/dist/client/chunks/chart-config-gauge-DUNEUCvh.js.map +1 -0
  83. package/dist/client/chunks/chart-config-heat-map-BFf1tO11.js +91 -0
  84. package/dist/client/chunks/chart-config-heat-map-BFf1tO11.js.map +1 -0
  85. package/dist/client/chunks/chart-config-kpi-delta-C5k2waIJ.js +94 -0
  86. package/dist/client/chunks/chart-config-kpi-delta-C5k2waIJ.js.map +1 -0
  87. package/dist/client/chunks/chart-config-kpi-number-DptOyhk0.js +75 -0
  88. package/dist/client/chunks/chart-config-kpi-number-DptOyhk0.js.map +1 -0
  89. package/dist/client/chunks/chart-config-kpi-text-D9DdVWqd.js +47 -0
  90. package/dist/client/chunks/chart-config-kpi-text-D9DdVWqd.js.map +1 -0
  91. package/dist/client/chunks/chart-config-line-B3NgLF7K.js +104 -0
  92. package/dist/client/chunks/chart-config-line-B3NgLF7K.js.map +1 -0
  93. package/dist/client/chunks/chart-config-markdown-tlfivQTt.js +117 -0
  94. package/dist/client/chunks/chart-config-markdown-tlfivQTt.js.map +1 -0
  95. package/dist/client/chunks/chart-config-measure-profile-D7XDwrU2.js +82 -0
  96. package/dist/client/chunks/chart-config-measure-profile-D7XDwrU2.js.map +1 -0
  97. package/dist/client/chunks/chart-config-pie-wY0B52PC.js +68 -0
  98. package/dist/client/chunks/chart-config-pie-wY0B52PC.js.map +1 -0
  99. package/dist/client/chunks/chart-config-radar-DRpJBy1M.js +49 -0
  100. package/dist/client/chunks/chart-config-radar-DRpJBy1M.js.map +1 -0
  101. package/dist/client/chunks/chart-config-radial-bar-DCUpXv9G.js +38 -0
  102. package/dist/client/chunks/chart-config-radial-bar-DCUpXv9G.js.map +1 -0
  103. package/dist/client/chunks/chart-config-sankey-CdOhlm4h.js +66 -0
  104. package/dist/client/chunks/chart-config-sankey-CdOhlm4h.js.map +1 -0
  105. package/dist/client/chunks/chart-config-scatter-B2su_x8f.js +61 -0
  106. package/dist/client/chunks/chart-config-scatter-B2su_x8f.js.map +1 -0
  107. package/dist/client/chunks/chart-config-sunburst-BPdjbk18.js +45 -0
  108. package/dist/client/chunks/chart-config-sunburst-BPdjbk18.js.map +1 -0
  109. package/dist/client/chunks/chart-config-tree-map-Cbsh2fe2.js +51 -0
  110. package/dist/client/chunks/chart-config-tree-map-Cbsh2fe2.js.map +1 -0
  111. package/dist/client/chunks/chart-config-waterfall-DGmuZfQF.js +59 -0
  112. package/dist/client/chunks/chart-config-waterfall-DGmuZfQF.js.map +1 -0
  113. package/dist/client/chunks/chart-data-table-B2m_6EZe.js +4088 -0
  114. package/dist/client/chunks/chart-data-table-B2m_6EZe.js.map +1 -0
  115. package/dist/client/chunks/chart-funnel-C9JRW79j.js +447 -0
  116. package/dist/client/chunks/chart-funnel-C9JRW79j.js.map +1 -0
  117. package/dist/client/chunks/chart-gauge-BLLJqeXo.js +424 -0
  118. package/dist/client/chunks/chart-gauge-BLLJqeXo.js.map +1 -0
  119. package/dist/client/chunks/chart-heat-map-f2fM2mDC.js +236 -0
  120. package/dist/client/chunks/chart-heat-map-f2fM2mDC.js.map +1 -0
  121. package/dist/client/chunks/chart-kpi-delta-S6qDEoJO.js +343 -0
  122. package/dist/client/chunks/chart-kpi-delta-S6qDEoJO.js.map +1 -0
  123. package/dist/client/chunks/chart-kpi-number-CEUBsVW2.js +326 -0
  124. package/dist/client/chunks/chart-kpi-number-CEUBsVW2.js.map +1 -0
  125. package/dist/client/chunks/chart-kpi-text-DgRig_jQ.js +149 -0
  126. package/dist/client/chunks/chart-kpi-text-DgRig_jQ.js.map +1 -0
  127. package/dist/client/chunks/chart-line-CPhQRMZ7.js +432 -0
  128. package/dist/client/chunks/chart-line-CPhQRMZ7.js.map +1 -0
  129. package/dist/client/chunks/chart-markdown-DXxc43w1.js +3457 -0
  130. package/dist/client/chunks/chart-markdown-DXxc43w1.js.map +1 -0
  131. package/dist/client/chunks/chart-measure-profile-CVlqGslU.js +179 -0
  132. package/dist/client/chunks/chart-measure-profile-CVlqGslU.js.map +1 -0
  133. package/dist/client/chunks/chart-pie-DafSc9sE.js +172 -0
  134. package/dist/client/chunks/chart-pie-DafSc9sE.js.map +1 -0
  135. package/dist/client/chunks/chart-radar-Dz9F5k-B.js +154 -0
  136. package/dist/client/chunks/chart-radar-Dz9F5k-B.js.map +1 -0
  137. package/dist/client/chunks/chart-radial-bar-N3MNUL7o.js +148 -0
  138. package/dist/client/chunks/chart-radial-bar-N3MNUL7o.js.map +1 -0
  139. package/dist/client/chunks/chart-sankey-8nRYnupt.js +222 -0
  140. package/dist/client/chunks/chart-sankey-8nRYnupt.js.map +1 -0
  141. package/dist/client/chunks/chart-scatter-J2JNi88S.js +255 -0
  142. package/dist/client/chunks/chart-scatter-J2JNi88S.js.map +1 -0
  143. package/dist/client/chunks/chart-sunburst-D1NFQjqk.js +221 -0
  144. package/dist/client/chunks/chart-sunburst-D1NFQjqk.js.map +1 -0
  145. package/dist/client/chunks/chart-tree-map-CbYjko2s.js +298 -0
  146. package/dist/client/chunks/chart-tree-map-CbYjko2s.js.map +1 -0
  147. package/dist/client/chunks/chart-waterfall-Z65TGMUO.js +237 -0
  148. package/dist/client/chunks/chart-waterfall-Z65TGMUO.js.map +1 -0
  149. package/dist/client/chunks/charts-core-CJlGzwsW.js +215 -0
  150. package/dist/client/chunks/charts-core-CJlGzwsW.js.map +1 -0
  151. package/dist/client/chunks/charts-loader-BI07yxaQ.js +259 -0
  152. package/dist/client/chunks/charts-loader-BI07yxaQ.js.map +1 -0
  153. package/dist/client/chunks/core-D1TOj17W.js +845 -0
  154. package/dist/client/chunks/core-D1TOj17W.js.map +1 -0
  155. package/dist/client/chunks/dist-DDBeV_JI.js +847 -0
  156. package/dist/client/chunks/dist-DDBeV_JI.js.map +1 -0
  157. package/dist/client/chunks/javascript-BBwTSo6e.js +438 -0
  158. package/dist/client/chunks/javascript-BBwTSo6e.js.map +1 -0
  159. package/dist/client/chunks/json-BpTrLZSh.js +38 -0
  160. package/dist/client/chunks/json-BpTrLZSh.js.map +1 -0
  161. package/dist/client/chunks/lazyChartConfigRegistry-BjhxDaSf.js +149 -0
  162. package/dist/client/chunks/lazyChartConfigRegistry-BjhxDaSf.js.map +1 -0
  163. package/dist/client/chunks/providers-DX3Vw5kc.js +7 -0
  164. package/dist/client/chunks/providers-DX3Vw5kc.js.map +1 -0
  165. package/dist/client/chunks/retention-UEXlSdZ-.js +132 -0
  166. package/dist/client/chunks/retention-UEXlSdZ-.js.map +1 -0
  167. package/dist/client/chunks/rolldown-runtime-lc2dmIiU.js +20 -0
  168. package/dist/client/chunks/schema-visualization-DPL5_Tkh.js +1073 -0
  169. package/dist/client/chunks/schema-visualization-DPL5_Tkh.js.map +1 -0
  170. package/dist/client/chunks/sql-B0chxcEK.js +120 -0
  171. package/dist/client/chunks/sql-B0chxcEK.js.map +1 -0
  172. package/dist/client/chunks/syntaxHighlighting-87bOwTxj.js +30 -0
  173. package/dist/client/chunks/syntaxHighlighting-87bOwTxj.js.map +1 -0
  174. package/dist/client/chunks/useDebounce-DkuM7nQk.js +1394 -0
  175. package/dist/client/chunks/useDebounce-DkuM7nQk.js.map +1 -0
  176. package/dist/client/chunks/useDirtyStateTracking-CgKZWkel.js +66 -0
  177. package/dist/client/chunks/useDirtyStateTracking-CgKZWkel.js.map +1 -0
  178. package/dist/client/chunks/useExplainAI-RflLTDVL.js +203 -0
  179. package/dist/client/chunks/useExplainAI-RflLTDVL.js.map +1 -0
  180. package/dist/client/chunks/useNotebookLayout-BFZ_33Kb.js +37 -0
  181. package/dist/client/chunks/useNotebookLayout-BFZ_33Kb.js.map +1 -0
  182. package/dist/client/chunks/utils--32ZtfbZ.js +128 -0
  183. package/dist/client/chunks/utils--32ZtfbZ.js.map +1 -0
  184. package/dist/client/chunks/vendor-CZX7UVzM.js +828 -0
  185. package/dist/client/chunks/vendor-CZX7UVzM.js.map +1 -0
  186. package/dist/client/components/AnalysisBuilder/AnalysisModeErrorBoundary.d.ts +0 -1
  187. package/dist/client/components.js +4 -18
  188. package/dist/client/hooks.js +6 -58
  189. package/dist/client/icons.js +2 -15
  190. package/dist/client/index.js +1061 -1295
  191. package/dist/client/index.js.map +1 -1
  192. package/dist/client/providers.js +3 -9
  193. package/dist/client/styles.css +2 -1
  194. package/dist/client/types.d.ts +1 -0
  195. package/dist/client/utils.js +7 -74
  196. package/dist/client-bundle-stats.html +1 -1
  197. package/dist/server/anthropic-BsNspi1r.js +140 -0
  198. package/dist/server/anthropic-DsCEX6Fm.cjs +1 -0
  199. package/dist/server/dist-CMWZC51B.js +581 -0
  200. package/dist/server/dist-DxegvyZF.cjs +2 -0
  201. package/dist/server/google-BXwMolCu.js +154 -0
  202. package/dist/server/google-DzQWXFwF.cjs +2 -0
  203. package/dist/server/index.cjs +110 -129
  204. package/dist/server/index.d.ts +43 -9
  205. package/dist/server/index.js +15398 -34394
  206. package/dist/server/openai-CucrxPHM.cjs +16 -0
  207. package/dist/server/openai-DiyuZ3ds.cjs +1 -0
  208. package/dist/server/openai-nZJcAzON.js +4136 -0
  209. package/dist/server/openai-owPdq1yN.js +153 -0
  210. package/package.json +18 -8
  211. package/dist/adapters/anthropic-BTkjgFpT.cjs +0 -1
  212. package/dist/adapters/anthropic-CTu9E801.js +0 -126
  213. package/dist/adapters/google-BAK9pnQf.cjs +0 -2
  214. package/dist/adapters/google-DficVAsJ.js +0 -146
  215. package/dist/adapters/handler-BHguLZOY.js +0 -2713
  216. package/dist/adapters/handler-DOIyiFPg.cjs +0 -39
  217. package/dist/adapters/index-BgCeQBuN.cjs +0 -2
  218. package/dist/adapters/index-C3PskWTr.js +0 -5353
  219. package/dist/adapters/index-C45_meK_.js +0 -719
  220. package/dist/adapters/index-ht4NPca9.cjs +0 -23
  221. package/dist/adapters/mcp-transport-CWGqDQSI.cjs +0 -259
  222. package/dist/adapters/mcp-transport-CyeHMDPl.js +0 -11055
  223. package/dist/adapters/openai-BvA6eLs8.cjs +0 -1
  224. package/dist/adapters/openai-mcE24du8.js +0 -131
  225. package/dist/client/charts.js.map +0 -1
  226. package/dist/client/chunks/RetentionCombinedChart--SnU4Y_I.js +0 -256
  227. package/dist/client/chunks/RetentionCombinedChart--SnU4Y_I.js.map +0 -1
  228. package/dist/client/chunks/RetentionCombinedChart.config-Bbp2ghim.js +0 -48
  229. package/dist/client/chunks/RetentionCombinedChart.config-Bbp2ghim.js.map +0 -1
  230. package/dist/client/chunks/RetentionHeatmap-BHYU8MXY.js +0 -178
  231. package/dist/client/chunks/RetentionHeatmap-BHYU8MXY.js.map +0 -1
  232. package/dist/client/chunks/RetentionHeatmap.config-BWf_-vdj.js +0 -29
  233. package/dist/client/chunks/RetentionHeatmap.config-BWf_-vdj.js.map +0 -1
  234. package/dist/client/chunks/analysis-builder-DMFoAkjT.js +0 -6203
  235. package/dist/client/chunks/analysis-builder-DMFoAkjT.js.map +0 -1
  236. package/dist/client/chunks/analysis-builder-shared-CunrT3gi.js +0 -3140
  237. package/dist/client/chunks/analysis-builder-shared-CunrT3gi.js.map +0 -1
  238. package/dist/client/chunks/chart-activity-grid-DCznpK6N.js +0 -347
  239. package/dist/client/chunks/chart-activity-grid-DCznpK6N.js.map +0 -1
  240. package/dist/client/chunks/chart-area-CqKRIUpj.js +0 -234
  241. package/dist/client/chunks/chart-area-CqKRIUpj.js.map +0 -1
  242. package/dist/client/chunks/chart-bar-Bl5jvrU_.js +0 -267
  243. package/dist/client/chunks/chart-bar-Bl5jvrU_.js.map +0 -1
  244. package/dist/client/chunks/chart-box-plot-CzMb00z_.js +0 -322
  245. package/dist/client/chunks/chart-box-plot-CzMb00z_.js.map +0 -1
  246. package/dist/client/chunks/chart-bubble-BF8Z52eW.js +0 -249
  247. package/dist/client/chunks/chart-bubble-BF8Z52eW.js.map +0 -1
  248. package/dist/client/chunks/chart-candlestick-ByWS945g.js +0 -269
  249. package/dist/client/chunks/chart-candlestick-ByWS945g.js.map +0 -1
  250. package/dist/client/chunks/chart-config-activity-grid-CmOqDuOT.js +0 -50
  251. package/dist/client/chunks/chart-config-activity-grid-CmOqDuOT.js.map +0 -1
  252. package/dist/client/chunks/chart-config-area-CK_GVApT.js +0 -77
  253. package/dist/client/chunks/chart-config-area-CK_GVApT.js.map +0 -1
  254. package/dist/client/chunks/chart-config-bar-C8uzktxl.js +0 -71
  255. package/dist/client/chunks/chart-config-bar-C8uzktxl.js.map +0 -1
  256. package/dist/client/chunks/chart-config-box-plot-D_E_SSc2.js +0 -38
  257. package/dist/client/chunks/chart-config-box-plot-D_E_SSc2.js.map +0 -1
  258. package/dist/client/chunks/chart-config-bubble-q3DoQX5F.js +0 -71
  259. package/dist/client/chunks/chart-config-bubble-q3DoQX5F.js.map +0 -1
  260. package/dist/client/chunks/chart-config-candlestick-CRCpD43-.js +0 -70
  261. package/dist/client/chunks/chart-config-candlestick-CRCpD43-.js.map +0 -1
  262. package/dist/client/chunks/chart-config-data-table-B20Y5JCm.js +0 -28
  263. package/dist/client/chunks/chart-config-data-table-B20Y5JCm.js.map +0 -1
  264. package/dist/client/chunks/chart-config-funnel-3eYnGg8M.js +0 -92
  265. package/dist/client/chunks/chart-config-funnel-3eYnGg8M.js.map +0 -1
  266. package/dist/client/chunks/chart-config-gauge-CQx9w3d4.js +0 -64
  267. package/dist/client/chunks/chart-config-gauge-CQx9w3d4.js.map +0 -1
  268. package/dist/client/chunks/chart-config-heat-map-_wEnTnRA.js +0 -77
  269. package/dist/client/chunks/chart-config-heat-map-_wEnTnRA.js.map +0 -1
  270. package/dist/client/chunks/chart-config-kpi-delta-DLGZ2A3X.js +0 -97
  271. package/dist/client/chunks/chart-config-kpi-delta-DLGZ2A3X.js.map +0 -1
  272. package/dist/client/chunks/chart-config-kpi-number-K-wzviXF.js +0 -75
  273. package/dist/client/chunks/chart-config-kpi-number-K-wzviXF.js.map +0 -1
  274. package/dist/client/chunks/chart-config-kpi-text-BjYqwqaJ.js +0 -47
  275. package/dist/client/chunks/chart-config-kpi-text-BjYqwqaJ.js.map +0 -1
  276. package/dist/client/chunks/chart-config-line-JNagi9tf.js +0 -88
  277. package/dist/client/chunks/chart-config-line-JNagi9tf.js.map +0 -1
  278. package/dist/client/chunks/chart-config-markdown-BWQSjJpy.js +0 -97
  279. package/dist/client/chunks/chart-config-markdown-BWQSjJpy.js.map +0 -1
  280. package/dist/client/chunks/chart-config-measure-profile-ZYaMrtws.js +0 -70
  281. package/dist/client/chunks/chart-config-measure-profile-ZYaMrtws.js.map +0 -1
  282. package/dist/client/chunks/chart-config-pie-CNLXb-fr.js +0 -39
  283. package/dist/client/chunks/chart-config-pie-CNLXb-fr.js.map +0 -1
  284. package/dist/client/chunks/chart-config-radar-oxHfRAa3.js +0 -44
  285. package/dist/client/chunks/chart-config-radar-oxHfRAa3.js.map +0 -1
  286. package/dist/client/chunks/chart-config-radial-bar-_Aw3jAEm.js +0 -37
  287. package/dist/client/chunks/chart-config-radial-bar-_Aw3jAEm.js.map +0 -1
  288. package/dist/client/chunks/chart-config-sankey-C8FX9hGF.js +0 -61
  289. package/dist/client/chunks/chart-config-sankey-C8FX9hGF.js.map +0 -1
  290. package/dist/client/chunks/chart-config-scatter-DFKM80eO.js +0 -53
  291. package/dist/client/chunks/chart-config-scatter-DFKM80eO.js.map +0 -1
  292. package/dist/client/chunks/chart-config-sunburst-BmC0NLTU.js +0 -50
  293. package/dist/client/chunks/chart-config-sunburst-BmC0NLTU.js.map +0 -1
  294. package/dist/client/chunks/chart-config-tree-map-DGMbNTaa.js +0 -47
  295. package/dist/client/chunks/chart-config-tree-map-DGMbNTaa.js.map +0 -1
  296. package/dist/client/chunks/chart-config-waterfall-DTyXV_fo.js +0 -60
  297. package/dist/client/chunks/chart-config-waterfall-DTyXV_fo.js.map +0 -1
  298. package/dist/client/chunks/chart-data-table-HwfF-Ujv.js +0 -293
  299. package/dist/client/chunks/chart-data-table-HwfF-Ujv.js.map +0 -1
  300. package/dist/client/chunks/chart-funnel-WmuoWlCq.js +0 -259
  301. package/dist/client/chunks/chart-funnel-WmuoWlCq.js.map +0 -1
  302. package/dist/client/chunks/chart-gauge-Cot4By-w.js +0 -374
  303. package/dist/client/chunks/chart-gauge-Cot4By-w.js.map +0 -1
  304. package/dist/client/chunks/chart-heat-map-bGNtsZMr.js +0 -231
  305. package/dist/client/chunks/chart-heat-map-bGNtsZMr.js.map +0 -1
  306. package/dist/client/chunks/chart-kpi-delta-DeyKMxgq.js +0 -351
  307. package/dist/client/chunks/chart-kpi-delta-DeyKMxgq.js.map +0 -1
  308. package/dist/client/chunks/chart-kpi-number-D1z1gxXO.js +0 -476
  309. package/dist/client/chunks/chart-kpi-number-D1z1gxXO.js.map +0 -1
  310. package/dist/client/chunks/chart-kpi-text-b7q6KWc0.js +0 -165
  311. package/dist/client/chunks/chart-kpi-text-b7q6KWc0.js.map +0 -1
  312. package/dist/client/chunks/chart-line-3Nf-EPqJ.js +0 -450
  313. package/dist/client/chunks/chart-line-3Nf-EPqJ.js.map +0 -1
  314. package/dist/client/chunks/chart-markdown-BT_-MBq1.js +0 -2721
  315. package/dist/client/chunks/chart-markdown-BT_-MBq1.js.map +0 -1
  316. package/dist/client/chunks/chart-measure-profile-BVjUonqU.js +0 -114
  317. package/dist/client/chunks/chart-measure-profile-BVjUonqU.js.map +0 -1
  318. package/dist/client/chunks/chart-pie-DblG6w7g.js +0 -137
  319. package/dist/client/chunks/chart-pie-DblG6w7g.js.map +0 -1
  320. package/dist/client/chunks/chart-radar-BHZbeeTg.js +0 -129
  321. package/dist/client/chunks/chart-radar-BHZbeeTg.js.map +0 -1
  322. package/dist/client/chunks/chart-radial-bar-AlEJC1Jo.js +0 -119
  323. package/dist/client/chunks/chart-radial-bar-AlEJC1Jo.js.map +0 -1
  324. package/dist/client/chunks/chart-sankey-E8vYKjQF.js +0 -189
  325. package/dist/client/chunks/chart-sankey-E8vYKjQF.js.map +0 -1
  326. package/dist/client/chunks/chart-scatter-Bbxqi0iw.js +0 -202
  327. package/dist/client/chunks/chart-scatter-Bbxqi0iw.js.map +0 -1
  328. package/dist/client/chunks/chart-sunburst-BgnTKolT.js +0 -188
  329. package/dist/client/chunks/chart-sunburst-BgnTKolT.js.map +0 -1
  330. package/dist/client/chunks/chart-tree-map-i9LGCLwl.js +0 -284
  331. package/dist/client/chunks/chart-tree-map-i9LGCLwl.js.map +0 -1
  332. package/dist/client/chunks/chart-waterfall-BeIhCm83.js +0 -191
  333. package/dist/client/chunks/chart-waterfall-BeIhCm83.js.map +0 -1
  334. package/dist/client/chunks/charts-core-BUUO36OM.js +0 -692
  335. package/dist/client/chunks/charts-core-BUUO36OM.js.map +0 -1
  336. package/dist/client/chunks/charts-loader-goTYnavu.js +0 -258
  337. package/dist/client/chunks/charts-loader-goTYnavu.js.map +0 -1
  338. package/dist/client/chunks/components-BFgYvFq6.js +0 -10066
  339. package/dist/client/chunks/components-BFgYvFq6.js.map +0 -1
  340. package/dist/client/chunks/core-Y9e-sNfb.js +0 -1068
  341. package/dist/client/chunks/core-Y9e-sNfb.js.map +0 -1
  342. package/dist/client/chunks/flow-utils-CjQZG5qq.js +0 -16
  343. package/dist/client/chunks/flow-utils-CjQZG5qq.js.map +0 -1
  344. package/dist/client/chunks/funnel-utils-CyonoNeC.js +0 -135
  345. package/dist/client/chunks/funnel-utils-CyonoNeC.js.map +0 -1
  346. package/dist/client/chunks/icons-CwvgmdIP.js +0 -1636
  347. package/dist/client/chunks/icons-CwvgmdIP.js.map +0 -1
  348. package/dist/client/chunks/index-CApFCBF9.js +0 -81
  349. package/dist/client/chunks/index-CApFCBF9.js.map +0 -1
  350. package/dist/client/chunks/index-_2PSgbkC.js +0 -1046
  351. package/dist/client/chunks/index-_2PSgbkC.js.map +0 -1
  352. package/dist/client/chunks/javascript-DII1YQGr.js +0 -659
  353. package/dist/client/chunks/javascript-DII1YQGr.js.map +0 -1
  354. package/dist/client/chunks/json-C_6Prymp.js +0 -39
  355. package/dist/client/chunks/json-C_6Prymp.js.map +0 -1
  356. package/dist/client/chunks/providers-Ds7DRmnO.js +0 -554
  357. package/dist/client/chunks/providers-Ds7DRmnO.js.map +0 -1
  358. package/dist/client/chunks/retention-CzCo8262.js +0 -120
  359. package/dist/client/chunks/retention-CzCo8262.js.map +0 -1
  360. package/dist/client/chunks/schema-visualization-B97a1Ybu.js +0 -772
  361. package/dist/client/chunks/schema-visualization-B97a1Ybu.js.map +0 -1
  362. package/dist/client/chunks/sql-IeKX8fQ8.js +0 -616
  363. package/dist/client/chunks/sql-IeKX8fQ8.js.map +0 -1
  364. package/dist/client/chunks/syntaxHighlighting-DAMSW_A6.js +0 -34
  365. package/dist/client/chunks/syntaxHighlighting-DAMSW_A6.js.map +0 -1
  366. package/dist/client/chunks/theme-Dp3hFed1.js +0 -112
  367. package/dist/client/chunks/theme-Dp3hFed1.js.map +0 -1
  368. package/dist/client/chunks/useDirtyStateTracking-CyAXd07d.js +0 -1231
  369. package/dist/client/chunks/useDirtyStateTracking-CyAXd07d.js.map +0 -1
  370. package/dist/client/chunks/useExplainAI-CfQ_JmF1.js +0 -182
  371. package/dist/client/chunks/useExplainAI-CfQ_JmF1.js.map +0 -1
  372. package/dist/client/chunks/vendor-B2EH3V58.js +0 -2892
  373. package/dist/client/chunks/vendor-B2EH3V58.js.map +0 -1
  374. package/dist/client/components.js.map +0 -1
  375. package/dist/client/hooks.js.map +0 -1
  376. package/dist/client/icons.js.map +0 -1
  377. package/dist/client/providers.js.map +0 -1
  378. package/dist/client/utils.js.map +0 -1
  379. package/dist/server/anthropic-BTkjgFpT.cjs +0 -1
  380. package/dist/server/anthropic-CTu9E801.js +0 -126
  381. package/dist/server/google-BAK9pnQf.cjs +0 -2
  382. package/dist/server/google-DficVAsJ.js +0 -146
  383. package/dist/server/index-BgCeQBuN.cjs +0 -2
  384. package/dist/server/index-C3PskWTr.js +0 -5353
  385. package/dist/server/index-C45_meK_.js +0 -719
  386. package/dist/server/index-ht4NPca9.cjs +0 -23
  387. package/dist/server/openai-BvA6eLs8.cjs +0 -1
  388. package/dist/server/openai-mcE24du8.js +0 -131
@@ -0,0 +1,306 @@
1
+ import { n as e } from "./rolldown-runtime-lc2dmIiU.js";
2
+ import { y as t } from "./chart-activity-grid-wR2Twpo7.js";
3
+ import n, { useLayoutEffect as r, useMemo as i, useRef as a, useState as o } from "react";
4
+ import { Fragment as s, jsx as c, jsxs as l } from "react/jsx-runtime";
5
+ //#region src/client/components/charts/CandlestickChart.tsx
6
+ var u = /* @__PURE__ */ e({ default: () => v }), d = "#22c55e", f = "#ef4444", p = "#94a3b8", m = 200;
7
+ function h(e) {
8
+ if (e == null) return null;
9
+ let t = typeof e == "number" ? e : parseFloat(String(e));
10
+ return isNaN(t) ? null : t;
11
+ }
12
+ function g({ x: e, candleWidth: t, openY: n, closeY: r, highY: i, lowY: a, isBullish: o, bullColor: u, bearColor: d, showWicks: f, label: m }) {
13
+ let h = o ? u : d, g = Math.min(n, r), _ = Math.max(n, r), v = Math.max(_ - g, 1), y = t / 2;
14
+ return /* @__PURE__ */ l("g", {
15
+ "data-testid": `candle-${m}`,
16
+ children: [/* @__PURE__ */ c("rect", {
17
+ x: e - y,
18
+ y: g,
19
+ width: t,
20
+ height: v,
21
+ fill: h,
22
+ "data-testid": `candle-body-${m}`,
23
+ "data-bullish": o
24
+ }), f && /* @__PURE__ */ l(s, { children: [/* @__PURE__ */ c("line", {
25
+ x1: e,
26
+ y1: i,
27
+ x2: e,
28
+ y2: g,
29
+ stroke: p,
30
+ strokeWidth: 1,
31
+ "data-testid": `wick-high-${m}`
32
+ }), /* @__PURE__ */ c("line", {
33
+ x1: e,
34
+ y1: _,
35
+ x2: e,
36
+ y2: a,
37
+ stroke: p,
38
+ strokeWidth: 1,
39
+ "data-testid": `wick-low-${m}`
40
+ })] })]
41
+ });
42
+ }
43
+ function _({ domainMin: e, domainMax: t, innerHeight: n, tickCount: r, format: a }) {
44
+ let o = i(() => {
45
+ let n = (t - e) / (r - 1);
46
+ return Array.from({ length: r }, (t, r) => e + r * n);
47
+ }, [
48
+ e,
49
+ t,
50
+ r
51
+ ]), s = (r) => n - (r - e) / (t - e) * n;
52
+ return /* @__PURE__ */ l("g", {
53
+ "data-testid": "y-axis",
54
+ children: [/* @__PURE__ */ c("line", {
55
+ y1: 0,
56
+ y2: n,
57
+ stroke: "currentColor",
58
+ strokeWidth: 1
59
+ }), o.map((e, t) => /* @__PURE__ */ l("g", {
60
+ transform: `translate(0, ${s(e)})`,
61
+ children: [
62
+ /* @__PURE__ */ c("line", {
63
+ x1: 0,
64
+ x2: -6,
65
+ stroke: "currentColor",
66
+ strokeWidth: 1
67
+ }),
68
+ /* @__PURE__ */ c("text", {
69
+ x: -10,
70
+ textAnchor: "end",
71
+ dominantBaseline: "middle",
72
+ fontSize: 11,
73
+ fill: "currentColor",
74
+ className: "text-dc-text-secondary",
75
+ children: a ? a(e) : e.toLocaleString()
76
+ }),
77
+ /* @__PURE__ */ c("line", {
78
+ x1: 0,
79
+ x2: "100%",
80
+ stroke: "currentColor",
81
+ strokeOpacity: .1,
82
+ strokeWidth: 1
83
+ })
84
+ ]
85
+ }, t))]
86
+ });
87
+ }
88
+ var v = n.memo(function({ data: e, chartConfig: n, displayConfig: s = {}, height: u = "100%", onDataPointClick: p, drillEnabled: v }) {
89
+ let y = a(null), [b, x] = o({
90
+ width: 0,
91
+ height: 0
92
+ });
93
+ r(() => {
94
+ let e = y.current;
95
+ if (!e) return;
96
+ let t = new ResizeObserver((e) => {
97
+ for (let t of e) {
98
+ let { width: e, height: n } = t.contentRect;
99
+ e > 0 && n > 0 && x({
100
+ width: e,
101
+ height: n
102
+ });
103
+ }
104
+ });
105
+ t.observe(e);
106
+ let n = e.getBoundingClientRect();
107
+ return n.width > 0 && n.height > 0 && x({
108
+ width: n.width,
109
+ height: n.height
110
+ }), () => t.disconnect();
111
+ }, []);
112
+ let S = s?.bullColor ?? d, C = s?.bearColor ?? f, w = s?.showWicks ?? !0, T = s?.rangeMode ?? "ohlc", E = s?.leftYAxisFormat, { xField: D, openField: O, closeField: k, highField: A, lowField: j, configError: M } = i(() => {
113
+ let e = Array.isArray(n?.xAxis) ? n.xAxis[0] : n?.xAxis ?? n?.x, t = Array.isArray(n?.yAxis) ? n.yAxis : [], r = t[0] ?? "", i = (T === "range" ? t[0] : t[1]) ?? "", a = (T === "range" ? t[0] : t[2]) ?? "", o = (T === "range" ? t[1] : t[3]) ?? "";
114
+ return e ? T === "range" && (!a || !o) ? {
115
+ xField: e,
116
+ openField: r,
117
+ closeField: i,
118
+ highField: a,
119
+ lowField: o,
120
+ configError: "Range mode requires at least 2 measures (high, low) in Y-Axis"
121
+ } : T === "ohlc" && (!r || !i) ? {
122
+ xField: e,
123
+ openField: r,
124
+ closeField: i,
125
+ highField: a,
126
+ lowField: o,
127
+ configError: "OHLC mode requires at least 2 measures (open, close) in Y-Axis"
128
+ } : {
129
+ xField: e,
130
+ openField: r,
131
+ closeField: i,
132
+ highField: a,
133
+ lowField: o,
134
+ configError: null
135
+ } : {
136
+ xField: e,
137
+ openField: r,
138
+ closeField: i,
139
+ highField: a,
140
+ lowField: o,
141
+ configError: "Candlestick chart requires an X-Axis (time or category dimension)"
142
+ };
143
+ }, [n, T]), N = i(() => {
144
+ if (M || !e || e.length === 0) return [];
145
+ let t = e.slice(0, m), n = [];
146
+ for (let e = 0; e < t.length; e++) {
147
+ let r = t[e], i = String(r[D] ?? `Bar ${e + 1}`), a = h(r[O]), o = h(r[k]);
148
+ if (a === null || o === null) continue;
149
+ let s = a, c = o, l = A ? h(r[A]) ?? Math.max(s, c) : Math.max(s, c), u = j ? h(r[j]) ?? Math.min(s, c) : Math.min(s, c);
150
+ T === "range" && (s = u, c = l), n.push({
151
+ label: i,
152
+ open: s,
153
+ close: c,
154
+ high: Math.max(s, c, l),
155
+ low: Math.min(s, c, u),
156
+ isBullish: c >= s,
157
+ originalIndex: e
158
+ });
159
+ }
160
+ return n;
161
+ }, [
162
+ e,
163
+ D,
164
+ O,
165
+ k,
166
+ A,
167
+ j,
168
+ T,
169
+ M
170
+ ]);
171
+ try {
172
+ if (!e || e.length === 0) return /* @__PURE__ */ c("div", {
173
+ className: "dc:flex dc:items-center dc:justify-center dc:w-full text-dc-text-muted",
174
+ style: { height: u },
175
+ children: /* @__PURE__ */ l("div", {
176
+ className: "dc:text-center",
177
+ children: [/* @__PURE__ */ c("div", {
178
+ className: "dc:text-sm dc:font-semibold dc:mb-1",
179
+ children: "No data available"
180
+ }), /* @__PURE__ */ c("div", {
181
+ className: "dc:text-xs text-dc-text-secondary",
182
+ children: "No data points to display in candlestick chart"
183
+ })]
184
+ })
185
+ });
186
+ if (M) return /* @__PURE__ */ c("div", {
187
+ className: "dc:flex dc:items-center dc:justify-center dc:w-full text-dc-warning",
188
+ style: { height: u },
189
+ children: /* @__PURE__ */ l("div", {
190
+ className: "dc:text-center",
191
+ children: [/* @__PURE__ */ c("div", {
192
+ className: "dc:text-sm dc:font-semibold dc:mb-1",
193
+ children: "Configuration Error"
194
+ }), /* @__PURE__ */ c("div", {
195
+ className: "dc:text-xs",
196
+ children: M
197
+ })]
198
+ })
199
+ });
200
+ let n = {
201
+ top: 20,
202
+ right: 20,
203
+ bottom: 60,
204
+ left: 70
205
+ }, r = b.width || 600, i = typeof u == "number" ? u : b.height || 400, a = Math.max(r - n.left - n.right, 50), o = Math.max((typeof i == "number" ? i : parseInt(String(i)) || 400) - n.top - n.bottom, 50), s = N.flatMap((e) => [e.low, e.high]), d = Math.min(...s), f = Math.max(...s), h = (f - d) * .05 || 1, x = d - h, T = f + h, O = (e) => o - (e - x) / (T - x) * o, k = a / N.length, A = Math.min(k * .7, 20), j = e.length > m;
206
+ return /* @__PURE__ */ l("div", {
207
+ ref: y,
208
+ className: "dc:relative dc:w-full",
209
+ style: { height: u },
210
+ children: [/* @__PURE__ */ c("svg", {
211
+ width: "100%",
212
+ height: j ? "calc(100% - 20px)" : "100%",
213
+ viewBox: `0 0 ${r} ${typeof i == "number" ? i : 400}`,
214
+ "data-testid": "candlestick-svg",
215
+ children: /* @__PURE__ */ l("g", {
216
+ transform: `translate(${n.left}, ${n.top})`,
217
+ children: [/* @__PURE__ */ c(_, {
218
+ domainMin: x,
219
+ domainMax: T,
220
+ innerHeight: o,
221
+ tickCount: 5,
222
+ format: E ? (e) => t(e, E) : void 0
223
+ }), N.map((e, t) => {
224
+ let n = k * t + k / 2;
225
+ return /* @__PURE__ */ l("g", {
226
+ onClick: (t) => {
227
+ p && v && p({
228
+ dataPoint: { ...e },
229
+ clickedField: D ?? "",
230
+ xValue: e.label,
231
+ position: {
232
+ x: t.clientX,
233
+ y: t.clientY
234
+ },
235
+ nativeEvent: t
236
+ });
237
+ },
238
+ cursor: v ? "pointer" : void 0,
239
+ children: [
240
+ /* @__PURE__ */ c("title", { children: `${e.label}: O=${e.open} H=${e.high} L=${e.low} C=${e.close}` }),
241
+ /* @__PURE__ */ c(g, {
242
+ x: n,
243
+ candleWidth: A,
244
+ openY: O(e.open),
245
+ closeY: O(e.close),
246
+ highY: O(e.high),
247
+ lowY: O(e.low),
248
+ isBullish: e.isBullish,
249
+ bullColor: S,
250
+ bearColor: C,
251
+ showWicks: w,
252
+ label: e.label
253
+ }),
254
+ /* @__PURE__ */ c("text", {
255
+ x: n,
256
+ y: o + 20,
257
+ textAnchor: "middle",
258
+ fontSize: 10,
259
+ fill: "currentColor",
260
+ className: "text-dc-text-secondary",
261
+ "data-testid": `x-label-${e.label}`,
262
+ children: e.label
263
+ })
264
+ ]
265
+ }, e.label + t);
266
+ })]
267
+ })
268
+ }), j && /* @__PURE__ */ l("div", {
269
+ className: "dc:text-xs text-dc-warning dc:text-center dc:mt-1",
270
+ children: [
271
+ "Showing first ",
272
+ m,
273
+ " candles (total: ",
274
+ e.length,
275
+ ")"
276
+ ]
277
+ })]
278
+ });
279
+ } catch (e) {
280
+ return /* @__PURE__ */ c("div", {
281
+ className: "dc:flex dc:flex-col dc:items-center dc:justify-center dc:w-full text-dc-error dc:p-4",
282
+ style: { height: u },
283
+ children: /* @__PURE__ */ l("div", {
284
+ className: "dc:text-center",
285
+ children: [
286
+ /* @__PURE__ */ c("div", {
287
+ className: "dc:text-sm dc:font-semibold dc:mb-1",
288
+ children: "Candlestick Chart Error"
289
+ }),
290
+ /* @__PURE__ */ c("div", {
291
+ className: "dc:text-xs dc:mb-2",
292
+ children: e instanceof Error ? e.message : "Unknown rendering error"
293
+ }),
294
+ /* @__PURE__ */ c("div", {
295
+ className: "dc:text-xs text-dc-text-muted",
296
+ children: "Check the data and configuration"
297
+ })
298
+ ]
299
+ })
300
+ });
301
+ }
302
+ });
303
+ //#endregion
304
+ export { u as t };
305
+
306
+ //# sourceMappingURL=chart-candlestick-caHyxB9O.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"chart-candlestick-caHyxB9O.js","names":[],"sources":["../../../src/client/components/charts/CandlestickChart.tsx"],"sourcesContent":["import React, { useLayoutEffect, useMemo, useRef, useState } from 'react'\nimport { formatAxisValue } from '../../utils/chartUtils'\nimport type { ChartProps } from '../../types'\n\nconst BULL_COLOR_DEFAULT = '#22c55e'\nconst BEAR_COLOR_DEFAULT = '#ef4444'\nconst WICK_COLOR = '#94a3b8'\nconst MAX_CANDLES = 200\n\ninterface CandleData {\n label: string\n open: number\n close: number\n high: number\n low: number\n isBullish: boolean\n originalIndex: number\n}\n\nfunction parseNum(v: unknown): number | null {\n if (v === undefined || v === null) return null\n const n = typeof v === 'number' ? v : parseFloat(String(v))\n return isNaN(n) ? null : n\n}\n\nfunction Candle({\n x,\n candleWidth,\n openY,\n closeY,\n highY,\n lowY,\n isBullish,\n bullColor,\n bearColor,\n showWicks,\n label,\n}: {\n x: number\n candleWidth: number\n openY: number\n closeY: number\n highY: number\n lowY: number\n isBullish: boolean\n bullColor: string\n bearColor: string\n showWicks: boolean\n label: string\n}) {\n const fill = isBullish ? bullColor : bearColor\n const bodyTop = Math.min(openY, closeY)\n const bodyBottom = Math.max(openY, closeY)\n const bodyHeight = Math.max(bodyBottom - bodyTop, 1)\n const halfWidth = candleWidth / 2\n\n return (\n <g data-testid={`candle-${label}`}>\n <rect\n x={x - halfWidth}\n y={bodyTop}\n width={candleWidth}\n height={bodyHeight}\n fill={fill}\n data-testid={`candle-body-${label}`}\n data-bullish={isBullish}\n />\n {showWicks && (\n <>\n <line\n x1={x}\n y1={highY}\n x2={x}\n y2={bodyTop}\n stroke={WICK_COLOR}\n strokeWidth={1}\n data-testid={`wick-high-${label}`}\n />\n <line\n x1={x}\n y1={bodyBottom}\n x2={x}\n y2={lowY}\n stroke={WICK_COLOR}\n strokeWidth={1}\n data-testid={`wick-low-${label}`}\n />\n </>\n )}\n </g>\n )\n}\n\nfunction YAxisTicks({\n domainMin,\n domainMax,\n innerHeight,\n tickCount,\n format,\n}: {\n domainMin: number\n domainMax: number\n innerHeight: number\n tickCount: number\n format?: (v: number) => string\n}) {\n const ticks = useMemo(() => {\n const step = (domainMax - domainMin) / (tickCount - 1)\n return Array.from({ length: tickCount }, (_, i) => domainMin + i * step)\n }, [domainMin, domainMax, tickCount])\n\n const yScale = (v: number) => innerHeight - ((v - domainMin) / (domainMax - domainMin)) * innerHeight\n\n return (\n <g data-testid=\"y-axis\">\n <line y1={0} y2={innerHeight} stroke=\"currentColor\" strokeWidth={1} />\n {ticks.map((tick, i) => (\n <g key={i} transform={`translate(0, ${yScale(tick)})`}>\n <line x1={0} x2={-6} stroke=\"currentColor\" strokeWidth={1} />\n <text\n x={-10}\n textAnchor=\"end\"\n dominantBaseline=\"middle\"\n fontSize={11}\n fill=\"currentColor\"\n className=\"text-dc-text-secondary\"\n >\n {format ? format(tick) : tick.toLocaleString()}\n </text>\n <line x1={0} x2=\"100%\" stroke=\"currentColor\" strokeOpacity={0.1} strokeWidth={1} />\n </g>\n ))}\n </g>\n )\n}\n\nconst CandlestickChart = React.memo(function CandlestickChart({\n data,\n chartConfig,\n displayConfig = {},\n height = '100%',\n onDataPointClick,\n drillEnabled,\n}: ChartProps) {\n const containerRef = useRef<HTMLDivElement>(null)\n const [dimensions, setDimensions] = useState({ width: 0, height: 0 })\n\n useLayoutEffect(() => {\n const el = containerRef.current\n if (!el) return\n const observer = new ResizeObserver((entries) => {\n for (const entry of entries) {\n const { width, height: h } = entry.contentRect\n if (width > 0 && h > 0) setDimensions({ width, height: h })\n }\n })\n observer.observe(el)\n const rect = el.getBoundingClientRect()\n if (rect.width > 0 && rect.height > 0) setDimensions({ width: rect.width, height: rect.height })\n return () => observer.disconnect()\n }, [])\n\n const bullColor = displayConfig?.bullColor ?? BULL_COLOR_DEFAULT\n const bearColor = displayConfig?.bearColor ?? BEAR_COLOR_DEFAULT\n const showWicks = displayConfig?.showWicks ?? true\n const rangeMode = displayConfig?.rangeMode ?? 'ohlc'\n const yAxisFormat = displayConfig?.leftYAxisFormat\n\n const { xField, openField, closeField, highField, lowField, configError } = useMemo(() => {\n const xField = Array.isArray(chartConfig?.xAxis)\n ? chartConfig.xAxis[0]\n : chartConfig?.xAxis ?? chartConfig?.x\n\n const yAxisFields: string[] = Array.isArray(chartConfig?.yAxis)\n ? chartConfig.yAxis\n : []\n\n const openField = yAxisFields[0] ?? ''\n const closeField = (rangeMode === 'range' ? yAxisFields[0] : yAxisFields[1]) ?? ''\n const highField = (rangeMode === 'range' ? yAxisFields[0] : yAxisFields[2]) ?? ''\n const lowField = (rangeMode === 'range' ? yAxisFields[1] : yAxisFields[3]) ?? ''\n\n if (!xField) {\n return {\n xField,\n openField,\n closeField,\n highField,\n lowField,\n configError: 'Candlestick chart requires an X-Axis (time or category dimension)',\n }\n }\n\n if (rangeMode === 'range' && (!highField || !lowField)) {\n return {\n xField,\n openField,\n closeField,\n highField,\n lowField,\n configError: 'Range mode requires at least 2 measures (high, low) in Y-Axis',\n }\n }\n\n if (rangeMode === 'ohlc' && (!openField || !closeField)) {\n return {\n xField,\n openField,\n closeField,\n highField,\n lowField,\n configError: 'OHLC mode requires at least 2 measures (open, close) in Y-Axis',\n }\n }\n\n return { xField, openField, closeField, highField, lowField, configError: null }\n }, [chartConfig, rangeMode])\n\n const candles: CandleData[] = useMemo(() => {\n if (configError || !data || data.length === 0) return []\n const rows = (data as Record<string, unknown>[]).slice(0, MAX_CANDLES)\n const result: CandleData[] = []\n for (let i = 0; i < rows.length; i++) {\n const row = rows[i]\n const label = String(row[xField!] ?? `Bar ${i + 1}`)\n const rawOpen = parseNum(row[openField])\n const rawClose = parseNum(row[closeField])\n if (rawOpen === null || rawClose === null) continue\n\n let open = rawOpen\n let close = rawClose\n const high = highField ? (parseNum(row[highField]) ?? Math.max(open, close)) : Math.max(open, close)\n const low = lowField ? (parseNum(row[lowField]) ?? Math.min(open, close)) : Math.min(open, close)\n\n if (rangeMode === 'range') {\n open = low\n close = high\n }\n\n result.push({\n label,\n open,\n close,\n high: Math.max(open, close, high),\n low: Math.min(open, close, low),\n isBullish: close >= open,\n originalIndex: i,\n })\n }\n return result\n }, [data, xField, openField, closeField, highField, lowField, rangeMode, configError])\n\n try {\n if (!data || data.length === 0) {\n return (\n <div className=\"dc:flex dc:items-center dc:justify-center dc:w-full text-dc-text-muted\" style={{ height }}>\n <div className=\"dc:text-center\">\n <div className=\"dc:text-sm dc:font-semibold dc:mb-1\">No data available</div>\n <div className=\"dc:text-xs text-dc-text-secondary\">No data points to display in candlestick chart</div>\n </div>\n </div>\n )\n }\n\n if (configError) {\n return (\n <div className=\"dc:flex dc:items-center dc:justify-center dc:w-full text-dc-warning\" style={{ height }}>\n <div className=\"dc:text-center\">\n <div className=\"dc:text-sm dc:font-semibold dc:mb-1\">Configuration Error</div>\n <div className=\"dc:text-xs\">{configError}</div>\n </div>\n </div>\n )\n }\n const margin = { top: 20, right: 20, bottom: 60, left: 70 }\n const containerWidth = dimensions.width || 600\n const containerHeight =\n typeof height === 'number' ? height : dimensions.height || 400\n const innerWidth = Math.max(containerWidth - margin.left - margin.right, 50)\n const innerHeight = Math.max(\n (typeof containerHeight === 'number' ? containerHeight : parseInt(String(containerHeight)) || 400) -\n margin.top -\n margin.bottom,\n 50\n )\n\n const allValues = candles.flatMap((c) => [c.low, c.high])\n const rawMin = Math.min(...allValues)\n const rawMax = Math.max(...allValues)\n const pad = (rawMax - rawMin) * 0.05 || 1\n const domainMin = rawMin - pad\n const domainMax = rawMax + pad\n\n const yScale = (v: number) =>\n innerHeight - ((v - domainMin) / (domainMax - domainMin)) * innerHeight\n\n const candleSpacing = innerWidth / candles.length\n const candleWidth = Math.min(candleSpacing * 0.7, 20)\n\n const isTruncated = (data as unknown[]).length > MAX_CANDLES\n\n return (\n <div ref={containerRef} className=\"dc:relative dc:w-full\" style={{ height }}>\n <svg\n width=\"100%\"\n height={isTruncated ? 'calc(100% - 20px)' : '100%'}\n viewBox={`0 0 ${containerWidth} ${typeof containerHeight === 'number' ? containerHeight : 400}`}\n data-testid=\"candlestick-svg\"\n >\n <g transform={`translate(${margin.left}, ${margin.top})`}>\n <YAxisTicks\n domainMin={domainMin}\n domainMax={domainMax}\n innerHeight={innerHeight}\n tickCount={5}\n format={yAxisFormat ? (v) => formatAxisValue(v, yAxisFormat) : undefined}\n />\n\n {candles.map((candle, i) => {\n const cx = candleSpacing * i + candleSpacing / 2\n return (\n <g\n key={candle.label + i}\n onClick={(event: React.MouseEvent) => {\n if (onDataPointClick && drillEnabled) {\n onDataPointClick({\n dataPoint: { ...candle },\n clickedField: xField ?? '',\n xValue: candle.label,\n position: { x: event.clientX, y: event.clientY },\n nativeEvent: event,\n })\n }\n }}\n cursor={drillEnabled ? 'pointer' : undefined}\n >\n <title>{`${candle.label}: O=${candle.open} H=${candle.high} L=${candle.low} C=${candle.close}`}</title>\n <Candle\n x={cx}\n candleWidth={candleWidth}\n openY={yScale(candle.open)}\n closeY={yScale(candle.close)}\n highY={yScale(candle.high)}\n lowY={yScale(candle.low)}\n isBullish={candle.isBullish}\n bullColor={bullColor}\n bearColor={bearColor}\n showWicks={showWicks}\n label={candle.label}\n />\n <text\n x={cx}\n y={innerHeight + 20}\n textAnchor=\"middle\"\n fontSize={10}\n fill=\"currentColor\"\n className=\"text-dc-text-secondary\"\n data-testid={`x-label-${candle.label}`}\n >\n {candle.label}\n </text>\n </g>\n )\n })}\n </g>\n </svg>\n {isTruncated && (\n <div className=\"dc:text-xs text-dc-warning dc:text-center dc:mt-1\">\n Showing first {MAX_CANDLES} candles (total: {(data as unknown[]).length})\n </div>\n )}\n </div>\n )\n } catch (error) {\n return (\n <div className=\"dc:flex dc:flex-col dc:items-center dc:justify-center dc:w-full text-dc-error dc:p-4\" style={{ height }}>\n <div className=\"dc:text-center\">\n <div className=\"dc:text-sm dc:font-semibold dc:mb-1\">Candlestick Chart Error</div>\n <div className=\"dc:text-xs dc:mb-2\">{error instanceof Error ? error.message : 'Unknown rendering error'}</div>\n <div className=\"dc:text-xs text-dc-text-muted\">Check the data and configuration</div>\n </div>\n </div>\n )\n }\n})\n\nexport default CandlestickChart\n"],"mappings":"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"}
@@ -0,0 +1,51 @@
1
+ import { n as e } from "./rolldown-runtime-lc2dmIiU.js";
2
+ //#region src/client/components/charts/ActivityGridChart.config.ts
3
+ var t = /* @__PURE__ */ e({ activityGridChartConfig: () => n }), n = {
4
+ label: "Activity Grid",
5
+ description: "GitHub-style activity grid showing temporal patterns across different time scales",
6
+ useCase: "Best for visualizing activity patterns over time. Supports hour (3hr blocks × days), day (days × weeks), week (weeks × months), month (months × quarters), and quarter (quarters × years) granularities",
7
+ dropZones: [{
8
+ key: "dateField",
9
+ label: "Time Dimension",
10
+ description: "Time field that determines grid structure (granularity affects layout)",
11
+ mandatory: !0,
12
+ maxItems: 1,
13
+ acceptTypes: ["timeDimension"],
14
+ emptyText: "Drop a time dimension (granularity affects grid structure)"
15
+ }, {
16
+ key: "valueField",
17
+ label: "Activity Measure",
18
+ description: "Measure used for activity intensity (color coding)",
19
+ mandatory: !0,
20
+ maxItems: 1,
21
+ acceptTypes: ["measure"],
22
+ emptyText: "Drop a measure for activity intensity"
23
+ }],
24
+ displayOptions: [
25
+ "showLabels",
26
+ "showTooltip",
27
+ "hideHeader"
28
+ ],
29
+ displayOptionsConfig: [{
30
+ key: "fitToWidth",
31
+ label: "Fit to Width",
32
+ type: "boolean",
33
+ defaultValue: !1,
34
+ description: "Automatically size blocks to fill portlet width and height while maintaining aspect ratio"
35
+ }],
36
+ validate: (e) => {
37
+ let { dateField: t, valueField: n } = e;
38
+ return !t || Array.isArray(t) && t.length === 0 ? {
39
+ isValid: !1,
40
+ message: "Time dimension is required for activity grid"
41
+ } : !n || Array.isArray(n) && n.length === 0 ? {
42
+ isValid: !1,
43
+ message: "Activity measure is required for intensity mapping"
44
+ } : { isValid: !0 };
45
+ },
46
+ clickableElements: { cell: !0 }
47
+ };
48
+ //#endregion
49
+ export { n, t };
50
+
51
+ //# sourceMappingURL=chart-config-activity-grid-USo7JrPh.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"chart-config-activity-grid-USo7JrPh.js","names":[],"sources":["../../../src/client/components/charts/ActivityGridChart.config.ts"],"sourcesContent":["import type { ChartTypeConfig } from '../../charts/chartConfigs'\n\n/**\n * Configuration for the activity grid chart type\n */\nexport const activityGridChartConfig: ChartTypeConfig = {\n label: 'Activity Grid',\n description: 'GitHub-style activity grid showing temporal patterns across different time scales',\n useCase: 'Best for visualizing activity patterns over time. Supports hour (3hr blocks × days), day (days × weeks), week (weeks × months), month (months × quarters), and quarter (quarters × years) granularities',\n dropZones: [\n {\n key: 'dateField',\n label: 'Time Dimension',\n description: 'Time field that determines grid structure (granularity affects layout)',\n mandatory: true,\n maxItems: 1,\n acceptTypes: ['timeDimension'],\n emptyText: 'Drop a time dimension (granularity affects grid structure)'\n },\n {\n key: 'valueField',\n label: 'Activity Measure',\n description: 'Measure used for activity intensity (color coding)',\n mandatory: true,\n maxItems: 1,\n acceptTypes: ['measure'],\n emptyText: 'Drop a measure for activity intensity'\n }\n ],\n displayOptions: ['showLabels', 'showTooltip', 'hideHeader'],\n displayOptionsConfig: [\n {\n key: 'fitToWidth',\n label: 'Fit to Width',\n type: 'boolean',\n defaultValue: false,\n description: 'Automatically size blocks to fill portlet width and height while maintaining aspect ratio'\n }\n ],\n validate: (config) => {\n const { dateField, valueField } = config\n\n if (!dateField || (Array.isArray(dateField) && dateField.length === 0)) {\n return {\n isValid: false,\n message: 'Time dimension is required for activity grid'\n }\n }\n\n if (!valueField || (Array.isArray(valueField) && valueField.length === 0)) {\n return {\n isValid: false,\n message: 'Activity measure is required for intensity mapping'\n }\n }\n\n return { isValid: true }\n },\n clickableElements: { cell: true }\n}"],"mappings":";;iEAKa,IAA2C;CACtD,OAAO;CACP,aAAa;CACb,SAAS;CACT,WAAW,CACT;EACE,KAAK;EACL,OAAO;EACP,aAAa;EACb,WAAW;EACX,UAAU;EACV,aAAa,CAAC,gBAAgB;EAC9B,WAAW;EACZ,EACD;EACE,KAAK;EACL,OAAO;EACP,aAAa;EACb,WAAW;EACX,UAAU;EACV,aAAa,CAAC,UAAU;EACxB,WAAW;EACZ,CACF;CACD,gBAAgB;EAAC;EAAc;EAAe;EAAa;CAC3D,sBAAsB,CACpB;EACE,KAAK;EACL,OAAO;EACP,MAAM;EACN,cAAc;EACd,aAAa;EACd,CACF;CACD,WAAW,MAAW;EACpB,IAAM,EAAE,cAAW,kBAAe;AAgBlC,SAdI,CAAC,KAAc,MAAM,QAAQ,EAAU,IAAI,EAAU,WAAW,IAC3D;GACL,SAAS;GACT,SAAS;GACV,GAGC,CAAC,KAAe,MAAM,QAAQ,EAAW,IAAI,EAAW,WAAW,IAC9D;GACL,SAAS;GACT,SAAS;GACV,GAGI,EAAE,SAAS,IAAM;;CAE1B,mBAAmB,EAAE,MAAM,IAAM"}
@@ -0,0 +1,93 @@
1
+ import { n as e } from "./rolldown-runtime-lc2dmIiU.js";
2
+ //#region src/client/components/charts/AreaChart.config.ts
3
+ var t = /* @__PURE__ */ e({ areaChartConfig: () => n }), n = {
4
+ label: "Area Chart",
5
+ description: "Emphasize magnitude of change over time",
6
+ useCase: "Best for showing cumulative totals, volume changes, or stacked comparisons over time",
7
+ dropZones: [
8
+ {
9
+ key: "xAxis",
10
+ label: "X-Axis (Time/Categories)",
11
+ description: "Time dimensions or dimensions for X-axis",
12
+ mandatory: !0,
13
+ acceptTypes: ["dimension", "timeDimension"],
14
+ emptyText: "Drop time dimensions or dimensions here"
15
+ },
16
+ {
17
+ key: "yAxis",
18
+ label: "Y-Axis (Values)",
19
+ description: "Measures for area values",
20
+ mandatory: !0,
21
+ acceptTypes: ["measure"],
22
+ emptyText: "Drop measures here",
23
+ enableDualAxis: !0
24
+ },
25
+ {
26
+ key: "series",
27
+ label: "Series (Stack Areas)",
28
+ description: "Dimensions to create stacked areas",
29
+ mandatory: !1,
30
+ acceptTypes: ["dimension"],
31
+ emptyText: "Drop dimensions here for stacked areas"
32
+ }
33
+ ],
34
+ displayOptions: [
35
+ "showLegend",
36
+ "showGrid",
37
+ "showTooltip",
38
+ "hideHeader"
39
+ ],
40
+ displayOptionsConfig: [
41
+ {
42
+ key: "stackType",
43
+ label: "Stacking",
44
+ type: "select",
45
+ defaultValue: "none",
46
+ options: [
47
+ {
48
+ value: "none",
49
+ label: "None"
50
+ },
51
+ {
52
+ value: "normal",
53
+ label: "Stacked"
54
+ },
55
+ {
56
+ value: "percent",
57
+ label: "Stacked 100%"
58
+ }
59
+ ],
60
+ description: "How to stack multiple area series"
61
+ },
62
+ {
63
+ key: "connectNulls",
64
+ label: "Connect Nulls",
65
+ type: "boolean",
66
+ defaultValue: !1,
67
+ description: "Draw continuous line through missing data points"
68
+ },
69
+ {
70
+ key: "target",
71
+ label: "Target Values",
72
+ type: "string",
73
+ placeholder: "e.g., 100 or 50,75 for spread",
74
+ description: "Single value or comma-separated values to spread across X-axis"
75
+ },
76
+ {
77
+ key: "leftYAxisFormat",
78
+ label: "Left Y-Axis Format",
79
+ type: "axisFormat",
80
+ description: "Number formatting for left Y-axis"
81
+ },
82
+ {
83
+ key: "rightYAxisFormat",
84
+ label: "Right Y-Axis Format",
85
+ type: "axisFormat",
86
+ description: "Number formatting for right Y-axis"
87
+ }
88
+ ]
89
+ };
90
+ //#endregion
91
+ export { n, t };
92
+
93
+ //# sourceMappingURL=chart-config-area-D_ZufYzg.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"chart-config-area-D_ZufYzg.js","names":[],"sources":["../../../src/client/components/charts/AreaChart.config.ts"],"sourcesContent":["import type { ChartTypeConfig } from '../../charts/chartConfigs'\n\n/**\n * Configuration for the area chart type\n */\nexport const areaChartConfig: ChartTypeConfig = {\n label: 'Area Chart',\n description: 'Emphasize magnitude of change over time',\n useCase: 'Best for showing cumulative totals, volume changes, or stacked comparisons over time',\n dropZones: [\n {\n key: 'xAxis',\n label: 'X-Axis (Time/Categories)',\n description: 'Time dimensions or dimensions for X-axis',\n mandatory: true,\n acceptTypes: ['dimension', 'timeDimension'],\n emptyText: 'Drop time dimensions or dimensions here'\n },\n {\n key: 'yAxis',\n label: 'Y-Axis (Values)',\n description: 'Measures for area values',\n mandatory: true,\n acceptTypes: ['measure'],\n emptyText: 'Drop measures here',\n enableDualAxis: true\n },\n {\n key: 'series',\n label: 'Series (Stack Areas)',\n description: 'Dimensions to create stacked areas',\n mandatory: false,\n acceptTypes: ['dimension'],\n emptyText: 'Drop dimensions here for stacked areas'\n }\n ],\n displayOptions: ['showLegend', 'showGrid', 'showTooltip', 'hideHeader'],\n displayOptionsConfig: [\n {\n key: 'stackType',\n label: 'Stacking',\n type: 'select',\n defaultValue: 'none',\n options: [\n { value: 'none', label: 'None' },\n { value: 'normal', label: 'Stacked' },\n { value: 'percent', label: 'Stacked 100%' }\n ],\n description: 'How to stack multiple area series'\n },\n {\n key: 'connectNulls',\n label: 'Connect Nulls',\n type: 'boolean',\n defaultValue: false,\n description: 'Draw continuous line through missing data points'\n },\n {\n key: 'target',\n label: 'Target Values',\n type: 'string',\n placeholder: 'e.g., 100 or 50,75 for spread',\n description: 'Single value or comma-separated values to spread across X-axis'\n },\n {\n key: 'leftYAxisFormat',\n label: 'Left Y-Axis Format',\n type: 'axisFormat',\n description: 'Number formatting for left Y-axis'\n },\n {\n key: 'rightYAxisFormat',\n label: 'Right Y-Axis Format',\n type: 'axisFormat',\n description: 'Number formatting for right Y-axis'\n }\n ]\n}"],"mappings":";;yDAKa,IAAmC;CAC9C,OAAO;CACP,aAAa;CACb,SAAS;CACT,WAAW;EACT;GACE,KAAK;GACL,OAAO;GACP,aAAa;GACb,WAAW;GACX,aAAa,CAAC,aAAa,gBAAgB;GAC3C,WAAW;GACZ;EACD;GACE,KAAK;GACL,OAAO;GACP,aAAa;GACb,WAAW;GACX,aAAa,CAAC,UAAU;GACxB,WAAW;GACX,gBAAgB;GACjB;EACD;GACE,KAAK;GACL,OAAO;GACP,aAAa;GACb,WAAW;GACX,aAAa,CAAC,YAAY;GAC1B,WAAW;GACZ;EACF;CACD,gBAAgB;EAAC;EAAc;EAAY;EAAe;EAAa;CACvE,sBAAsB;EACpB;GACE,KAAK;GACL,OAAO;GACP,MAAM;GACN,cAAc;GACd,SAAS;IACP;KAAE,OAAO;KAAQ,OAAO;KAAQ;IAChC;KAAE,OAAO;KAAU,OAAO;KAAW;IACrC;KAAE,OAAO;KAAW,OAAO;KAAgB;IAC5C;GACD,aAAa;GACd;EACD;GACE,KAAK;GACL,OAAO;GACP,MAAM;GACN,cAAc;GACd,aAAa;GACd;EACD;GACE,KAAK;GACL,OAAO;GACP,MAAM;GACN,aAAa;GACb,aAAa;GACd;EACD;GACE,KAAK;GACL,OAAO;GACP,MAAM;GACN,aAAa;GACd;EACD;GACE,KAAK;GACL,OAAO;GACP,MAAM;GACN,aAAa;GACd;EACF"}
@@ -0,0 +1,87 @@
1
+ import { n as e } from "./rolldown-runtime-lc2dmIiU.js";
2
+ //#region src/client/components/charts/BarChart.config.ts
3
+ var t = /* @__PURE__ */ e({ barChartConfig: () => n }), n = {
4
+ label: "Bar Chart",
5
+ description: "Compare values across categories",
6
+ useCase: "Best for comparing discrete categories, showing rankings, or displaying changes over time",
7
+ clickableElements: { bar: !0 },
8
+ dropZones: [
9
+ {
10
+ key: "xAxis",
11
+ label: "X-Axis (Categories)",
12
+ description: "Dimensions and time dimensions for grouping",
13
+ mandatory: !1,
14
+ acceptTypes: ["dimension", "timeDimension"],
15
+ emptyText: "Drop dimensions & time dimensions here"
16
+ },
17
+ {
18
+ key: "yAxis",
19
+ label: "Y-Axis (Values)",
20
+ description: "Measures for bar heights",
21
+ mandatory: !0,
22
+ acceptTypes: ["measure"],
23
+ emptyText: "Drop measures here",
24
+ enableDualAxis: !0
25
+ },
26
+ {
27
+ key: "series",
28
+ label: "Series (Split into Multiple Series)",
29
+ description: "Dimensions to create separate data series",
30
+ mandatory: !1,
31
+ acceptTypes: ["dimension"],
32
+ emptyText: "Drop dimensions here to split data into series"
33
+ }
34
+ ],
35
+ displayOptions: [
36
+ "showLegend",
37
+ "showGrid",
38
+ "showTooltip",
39
+ "hideHeader"
40
+ ],
41
+ displayOptionsConfig: [
42
+ {
43
+ key: "stackType",
44
+ label: "Stacking",
45
+ type: "select",
46
+ defaultValue: "none",
47
+ options: [
48
+ {
49
+ value: "none",
50
+ label: "None"
51
+ },
52
+ {
53
+ value: "normal",
54
+ label: "Stacked"
55
+ },
56
+ {
57
+ value: "percent",
58
+ label: "Stacked 100%"
59
+ }
60
+ ],
61
+ description: "How to stack multiple bar series"
62
+ },
63
+ {
64
+ key: "target",
65
+ label: "Target Values",
66
+ type: "string",
67
+ placeholder: "e.g., 100 or 50,75 for spread",
68
+ description: "Single value or comma-separated values to spread across X-axis"
69
+ },
70
+ {
71
+ key: "leftYAxisFormat",
72
+ label: "Left Y-Axis Format",
73
+ type: "axisFormat",
74
+ description: "Number formatting for left Y-axis"
75
+ },
76
+ {
77
+ key: "rightYAxisFormat",
78
+ label: "Right Y-Axis Format",
79
+ type: "axisFormat",
80
+ description: "Number formatting for right Y-axis"
81
+ }
82
+ ]
83
+ };
84
+ //#endregion
85
+ export { n, t };
86
+
87
+ //# sourceMappingURL=chart-config-bar-BCi2Wmd6.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"chart-config-bar-BCi2Wmd6.js","names":[],"sources":["../../../src/client/components/charts/BarChart.config.ts"],"sourcesContent":["import type { ChartTypeConfig } from '../../charts/chartConfigs'\n\n/**\n * Configuration for the bar chart type\n */\nexport const barChartConfig: ChartTypeConfig = {\n label: 'Bar Chart',\n description: 'Compare values across categories',\n useCase: 'Best for comparing discrete categories, showing rankings, or displaying changes over time',\n clickableElements: { bar: true },\n dropZones: [\n {\n key: 'xAxis',\n label: 'X-Axis (Categories)',\n description: 'Dimensions and time dimensions for grouping',\n mandatory: false,\n acceptTypes: ['dimension', 'timeDimension'],\n emptyText: 'Drop dimensions & time dimensions here'\n },\n {\n key: 'yAxis',\n label: 'Y-Axis (Values)',\n description: 'Measures for bar heights',\n mandatory: true,\n acceptTypes: ['measure'],\n emptyText: 'Drop measures here',\n enableDualAxis: true\n },\n {\n key: 'series',\n label: 'Series (Split into Multiple Series)',\n description: 'Dimensions to create separate data series',\n mandatory: false,\n acceptTypes: ['dimension'],\n emptyText: 'Drop dimensions here to split data into series'\n }\n ],\n displayOptions: ['showLegend', 'showGrid', 'showTooltip', 'hideHeader'],\n displayOptionsConfig: [\n {\n key: 'stackType',\n label: 'Stacking',\n type: 'select',\n defaultValue: 'none',\n options: [\n { value: 'none', label: 'None' },\n { value: 'normal', label: 'Stacked' },\n { value: 'percent', label: 'Stacked 100%' }\n ],\n description: 'How to stack multiple bar series'\n },\n {\n key: 'target',\n label: 'Target Values',\n type: 'string',\n placeholder: 'e.g., 100 or 50,75 for spread',\n description: 'Single value or comma-separated values to spread across X-axis'\n },\n {\n key: 'leftYAxisFormat',\n label: 'Left Y-Axis Format',\n type: 'axisFormat',\n description: 'Number formatting for left Y-axis'\n },\n {\n key: 'rightYAxisFormat',\n label: 'Right Y-Axis Format',\n type: 'axisFormat',\n description: 'Number formatting for right Y-axis'\n }\n ]\n}"],"mappings":";;wDAKa,IAAkC;CAC7C,OAAO;CACP,aAAa;CACb,SAAS;CACT,mBAAmB,EAAE,KAAK,IAAM;CAChC,WAAW;EACT;GACE,KAAK;GACL,OAAO;GACP,aAAa;GACb,WAAW;GACX,aAAa,CAAC,aAAa,gBAAgB;GAC3C,WAAW;GACZ;EACD;GACE,KAAK;GACL,OAAO;GACP,aAAa;GACb,WAAW;GACX,aAAa,CAAC,UAAU;GACxB,WAAW;GACX,gBAAgB;GACjB;EACD;GACE,KAAK;GACL,OAAO;GACP,aAAa;GACb,WAAW;GACX,aAAa,CAAC,YAAY;GAC1B,WAAW;GACZ;EACF;CACD,gBAAgB;EAAC;EAAc;EAAY;EAAe;EAAa;CACvE,sBAAsB;EACpB;GACE,KAAK;GACL,OAAO;GACP,MAAM;GACN,cAAc;GACd,SAAS;IACP;KAAE,OAAO;KAAQ,OAAO;KAAQ;IAChC;KAAE,OAAO;KAAU,OAAO;KAAW;IACrC;KAAE,OAAO;KAAW,OAAO;KAAgB;IAC5C;GACD,aAAa;GACd;EACD;GACE,KAAK;GACL,OAAO;GACP,MAAM;GACN,aAAa;GACb,aAAa;GACd;EACD;GACE,KAAK;GACL,OAAO;GACP,MAAM;GACN,aAAa;GACd;EACD;GACE,KAAK;GACL,OAAO;GACP,MAAM;GACN,aAAa;GACd;EACF"}
@@ -0,0 +1,35 @@
1
+ import { n as e } from "./rolldown-runtime-lc2dmIiU.js";
2
+ //#region src/client/components/charts/BoxPlotChart.config.ts
3
+ var t = /* @__PURE__ */ e({ boxPlotChartConfig: () => n }), n = {
4
+ label: "Box Plot",
5
+ description: "Show statistical distribution (median, IQR, whiskers) across categories",
6
+ useCase: "Best for P&L spread per symbol, trade size distribution, latency distribution across platforms",
7
+ displayOptions: ["hideHeader"],
8
+ dropZones: [{
9
+ key: "xAxis",
10
+ label: "X-Axis (Groups)",
11
+ description: "Dimension to group boxes by (e.g. symbol, platform)",
12
+ mandatory: !0,
13
+ maxItems: 1,
14
+ acceptTypes: ["dimension", "timeDimension"],
15
+ emptyText: "Drop a dimension here"
16
+ }, {
17
+ key: "yAxis",
18
+ label: "Y-Axis (Measures)",
19
+ description: "Drop 1 measure for auto mode, 3 for avg/stddev/median mode, or 5 for min/q1/median/q3/max mode",
20
+ mandatory: !0,
21
+ maxItems: 5,
22
+ acceptTypes: ["measure"],
23
+ emptyText: "Drop 1, 3, or 5 measures here"
24
+ }],
25
+ displayOptionsConfig: [{
26
+ key: "leftYAxisFormat",
27
+ label: "Y-Axis Format",
28
+ type: "axisFormat",
29
+ description: "Number formatting for the value axis"
30
+ }]
31
+ };
32
+ //#endregion
33
+ export { n, t };
34
+
35
+ //# sourceMappingURL=chart-config-box-plot-afKLzJSp.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"chart-config-box-plot-afKLzJSp.js","names":[],"sources":["../../../src/client/components/charts/BoxPlotChart.config.ts"],"sourcesContent":["import type { ChartTypeConfig } from '../../charts/chartConfigs'\n\n/**\n * Configuration for the box plot chart type\n */\nexport const boxPlotChartConfig: ChartTypeConfig = {\n label: 'Box Plot',\n description: 'Show statistical distribution (median, IQR, whiskers) across categories',\n useCase:\n 'Best for P&L spread per symbol, trade size distribution, latency distribution across platforms',\n displayOptions: ['hideHeader'],\n dropZones: [\n {\n key: 'xAxis',\n label: 'X-Axis (Groups)',\n description: 'Dimension to group boxes by (e.g. symbol, platform)',\n mandatory: true,\n maxItems: 1,\n acceptTypes: ['dimension', 'timeDimension'],\n emptyText: 'Drop a dimension here',\n },\n {\n key: 'yAxis',\n label: 'Y-Axis (Measures)',\n description:\n 'Drop 1 measure for auto mode, 3 for avg/stddev/median mode, or 5 for min/q1/median/q3/max mode',\n mandatory: true,\n maxItems: 5,\n acceptTypes: ['measure'],\n emptyText: 'Drop 1, 3, or 5 measures here',\n },\n ],\n displayOptionsConfig: [\n {\n key: 'leftYAxisFormat',\n label: 'Y-Axis Format',\n type: 'axisFormat',\n description: 'Number formatting for the value axis',\n },\n ],\n}\n"],"mappings":";;4DAKa,IAAsC;CACjD,OAAO;CACP,aAAa;CACb,SACE;CACF,gBAAgB,CAAC,aAAa;CAC9B,WAAW,CACT;EACE,KAAK;EACL,OAAO;EACP,aAAa;EACb,WAAW;EACX,UAAU;EACV,aAAa,CAAC,aAAa,gBAAgB;EAC3C,WAAW;EACZ,EACD;EACE,KAAK;EACL,OAAO;EACP,aACE;EACF,WAAW;EACX,UAAU;EACV,aAAa,CAAC,UAAU;EACxB,WAAW;EACZ,CACF;CACD,sBAAsB,CACpB;EACE,KAAK;EACL,OAAO;EACP,MAAM;EACN,aAAa;EACd,CACF;CACF"}