drizzle-cube 0.4.29 → 0.4.30

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 (381) 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.js +232 -342
  7. package/dist/adapters/fastify/index.cjs +2 -10
  8. package/dist/adapters/fastify/index.js +275 -424
  9. package/dist/adapters/google-CT4kgmBf.js +154 -0
  10. package/dist/adapters/google-Dgo9-Kb5.cjs +2 -0
  11. package/dist/adapters/handler-B8vuFQYP.cjs +25 -0
  12. package/dist/adapters/handler-D-2-6uLM.js +2951 -0
  13. package/dist/adapters/hono/index.cjs +2 -10
  14. package/dist/adapters/hono/index.js +307 -402
  15. package/dist/adapters/mcp-prompts-BAutSQYA.js +344 -0
  16. package/dist/adapters/mcp-prompts-DsAkafVn.cjs +5 -0
  17. package/dist/adapters/mcp-transport-CuugoG8t.js +7821 -0
  18. package/dist/adapters/mcp-transport-Dpp6hdZe.cjs +253 -0
  19. package/dist/adapters/nextjs/index.cjs +1 -9
  20. package/dist/adapters/nextjs/index.js +377 -600
  21. package/dist/adapters/openai-CjBvA6mK.js +4114 -0
  22. package/dist/adapters/openai-DhLE0A9Z.cjs +1 -0
  23. package/dist/adapters/openai-Zjw4Zo4R.js +153 -0
  24. package/dist/adapters/openai-eJBw3LfQ.cjs +16 -0
  25. package/dist/adapters/types.cjs +0 -1
  26. package/dist/adapters/types.js +0 -1
  27. package/dist/adapters/utils-ChhNGUOF.js +5396 -0
  28. package/dist/adapters/utils-CwJplXR5.cjs +15 -0
  29. package/dist/adapters/utils.cjs +1 -19
  30. package/dist/adapters/utils.js +2 -21333
  31. package/dist/client/charts.js +15 -186
  32. package/dist/client/chunks/DashboardEditModal-C076pscL.js +6678 -0
  33. package/dist/client/chunks/DashboardEditModal-C076pscL.js.map +1 -0
  34. package/dist/client/chunks/FieldSearchModal-C0DjSWk3.js +2631 -0
  35. package/dist/client/chunks/FieldSearchModal-C0DjSWk3.js.map +1 -0
  36. package/dist/client/chunks/RetentionCombinedChart-DuGXc-AP.js +270 -0
  37. package/dist/client/chunks/RetentionCombinedChart-DuGXc-AP.js.map +1 -0
  38. package/dist/client/chunks/RetentionCombinedChart.config-DprbXd1N.js +56 -0
  39. package/dist/client/chunks/RetentionCombinedChart.config-DprbXd1N.js.map +1 -0
  40. package/dist/client/chunks/RetentionHeatmap-BoGY6mlZ.js +193 -0
  41. package/dist/client/chunks/RetentionHeatmap-BoGY6mlZ.js.map +1 -0
  42. package/dist/client/chunks/RetentionHeatmap.config-cbaNExVy.js +25 -0
  43. package/dist/client/chunks/RetentionHeatmap.config-cbaNExVy.js.map +1 -0
  44. package/dist/client/chunks/analysis-builder-DF0XntqC.js +6111 -0
  45. package/dist/client/chunks/analysis-builder-DF0XntqC.js.map +1 -0
  46. package/dist/client/chunks/analysis-builder-shared-2QhKYbs6.js +3114 -0
  47. package/dist/client/chunks/analysis-builder-shared-2QhKYbs6.js.map +1 -0
  48. package/dist/client/chunks/chart-activity-grid-CNES9VBk.js +803 -0
  49. package/dist/client/chunks/chart-activity-grid-CNES9VBk.js.map +1 -0
  50. package/dist/client/chunks/chart-area-CRJc3KOu.js +449 -0
  51. package/dist/client/chunks/chart-area-CRJc3KOu.js.map +1 -0
  52. package/dist/client/chunks/chart-bar-DD2PjJ5n.js +270 -0
  53. package/dist/client/chunks/chart-bar-DD2PjJ5n.js.map +1 -0
  54. package/dist/client/chunks/chart-box-plot-BcqleldJ.js +377 -0
  55. package/dist/client/chunks/chart-box-plot-BcqleldJ.js.map +1 -0
  56. package/dist/client/chunks/chart-bubble-BmQkVk4K.js +273 -0
  57. package/dist/client/chunks/chart-bubble-BmQkVk4K.js.map +1 -0
  58. package/dist/client/chunks/chart-candlestick-C3Rep469.js +306 -0
  59. package/dist/client/chunks/chart-candlestick-C3Rep469.js.map +1 -0
  60. package/dist/client/chunks/chart-config-activity-grid-USo7JrPh.js +51 -0
  61. package/dist/client/chunks/chart-config-activity-grid-USo7JrPh.js.map +1 -0
  62. package/dist/client/chunks/chart-config-area-D_ZufYzg.js +93 -0
  63. package/dist/client/chunks/chart-config-area-D_ZufYzg.js.map +1 -0
  64. package/dist/client/chunks/chart-config-bar-BCi2Wmd6.js +87 -0
  65. package/dist/client/chunks/chart-config-bar-BCi2Wmd6.js.map +1 -0
  66. package/dist/client/chunks/chart-config-box-plot-afKLzJSp.js +35 -0
  67. package/dist/client/chunks/chart-config-box-plot-afKLzJSp.js.map +1 -0
  68. package/dist/client/chunks/chart-config-bubble-CgbBjPv8.js +82 -0
  69. package/dist/client/chunks/chart-config-bubble-CgbBjPv8.js.map +1 -0
  70. package/dist/client/chunks/chart-config-candlestick-7boGjZ-A.js +72 -0
  71. package/dist/client/chunks/chart-config-candlestick-7boGjZ-A.js.map +1 -0
  72. package/dist/client/chunks/chart-config-data-table-Cl7sBasW.js +30 -0
  73. package/dist/client/chunks/chart-config-data-table-Cl7sBasW.js.map +1 -0
  74. package/dist/client/chunks/chart-config-funnel-CXPYQtTl.js +93 -0
  75. package/dist/client/chunks/chart-config-funnel-CXPYQtTl.js.map +1 -0
  76. package/dist/client/chunks/chart-config-gauge-DUNEUCvh.js +64 -0
  77. package/dist/client/chunks/chart-config-gauge-DUNEUCvh.js.map +1 -0
  78. package/dist/client/chunks/chart-config-heat-map-BFf1tO11.js +91 -0
  79. package/dist/client/chunks/chart-config-heat-map-BFf1tO11.js.map +1 -0
  80. package/dist/client/chunks/chart-config-kpi-delta-C5k2waIJ.js +94 -0
  81. package/dist/client/chunks/chart-config-kpi-delta-C5k2waIJ.js.map +1 -0
  82. package/dist/client/chunks/chart-config-kpi-number-DptOyhk0.js +75 -0
  83. package/dist/client/chunks/chart-config-kpi-number-DptOyhk0.js.map +1 -0
  84. package/dist/client/chunks/chart-config-kpi-text-D9DdVWqd.js +47 -0
  85. package/dist/client/chunks/chart-config-kpi-text-D9DdVWqd.js.map +1 -0
  86. package/dist/client/chunks/chart-config-line-B3NgLF7K.js +104 -0
  87. package/dist/client/chunks/chart-config-line-B3NgLF7K.js.map +1 -0
  88. package/dist/client/chunks/chart-config-markdown-tlfivQTt.js +117 -0
  89. package/dist/client/chunks/chart-config-markdown-tlfivQTt.js.map +1 -0
  90. package/dist/client/chunks/chart-config-measure-profile-D7XDwrU2.js +82 -0
  91. package/dist/client/chunks/chart-config-measure-profile-D7XDwrU2.js.map +1 -0
  92. package/dist/client/chunks/chart-config-pie-wY0B52PC.js +68 -0
  93. package/dist/client/chunks/chart-config-pie-wY0B52PC.js.map +1 -0
  94. package/dist/client/chunks/chart-config-radar-DRpJBy1M.js +49 -0
  95. package/dist/client/chunks/chart-config-radar-DRpJBy1M.js.map +1 -0
  96. package/dist/client/chunks/chart-config-radial-bar-DCUpXv9G.js +38 -0
  97. package/dist/client/chunks/chart-config-radial-bar-DCUpXv9G.js.map +1 -0
  98. package/dist/client/chunks/chart-config-sankey-CdOhlm4h.js +66 -0
  99. package/dist/client/chunks/chart-config-sankey-CdOhlm4h.js.map +1 -0
  100. package/dist/client/chunks/chart-config-scatter-B2su_x8f.js +61 -0
  101. package/dist/client/chunks/chart-config-scatter-B2su_x8f.js.map +1 -0
  102. package/dist/client/chunks/chart-config-sunburst-BPdjbk18.js +45 -0
  103. package/dist/client/chunks/chart-config-sunburst-BPdjbk18.js.map +1 -0
  104. package/dist/client/chunks/chart-config-tree-map-Cbsh2fe2.js +51 -0
  105. package/dist/client/chunks/chart-config-tree-map-Cbsh2fe2.js.map +1 -0
  106. package/dist/client/chunks/chart-config-waterfall-DGmuZfQF.js +59 -0
  107. package/dist/client/chunks/chart-config-waterfall-DGmuZfQF.js.map +1 -0
  108. package/dist/client/chunks/chart-data-table-DehW1C1G.js +4088 -0
  109. package/dist/client/chunks/chart-data-table-DehW1C1G.js.map +1 -0
  110. package/dist/client/chunks/chart-funnel-BjkpnG5g.js +447 -0
  111. package/dist/client/chunks/chart-funnel-BjkpnG5g.js.map +1 -0
  112. package/dist/client/chunks/chart-gauge-BWW_HEfg.js +424 -0
  113. package/dist/client/chunks/chart-gauge-BWW_HEfg.js.map +1 -0
  114. package/dist/client/chunks/chart-heat-map-BWuOuDcm.js +236 -0
  115. package/dist/client/chunks/chart-heat-map-BWuOuDcm.js.map +1 -0
  116. package/dist/client/chunks/chart-kpi-delta-D5OHtDJx.js +343 -0
  117. package/dist/client/chunks/chart-kpi-delta-D5OHtDJx.js.map +1 -0
  118. package/dist/client/chunks/chart-kpi-number-C9zH-aKC.js +326 -0
  119. package/dist/client/chunks/chart-kpi-number-C9zH-aKC.js.map +1 -0
  120. package/dist/client/chunks/chart-kpi-text-ChVn3S7j.js +149 -0
  121. package/dist/client/chunks/chart-kpi-text-ChVn3S7j.js.map +1 -0
  122. package/dist/client/chunks/chart-line-DOIMkP0b.js +431 -0
  123. package/dist/client/chunks/chart-line-DOIMkP0b.js.map +1 -0
  124. package/dist/client/chunks/chart-markdown-DXxc43w1.js +3457 -0
  125. package/dist/client/chunks/chart-markdown-DXxc43w1.js.map +1 -0
  126. package/dist/client/chunks/chart-measure-profile-C6wrr9il.js +179 -0
  127. package/dist/client/chunks/chart-measure-profile-C6wrr9il.js.map +1 -0
  128. package/dist/client/chunks/chart-pie-BU_FgwDc.js +172 -0
  129. package/dist/client/chunks/chart-pie-BU_FgwDc.js.map +1 -0
  130. package/dist/client/chunks/chart-radar-DlufwnAX.js +154 -0
  131. package/dist/client/chunks/chart-radar-DlufwnAX.js.map +1 -0
  132. package/dist/client/chunks/chart-radial-bar-B5vS_Aw5.js +148 -0
  133. package/dist/client/chunks/chart-radial-bar-B5vS_Aw5.js.map +1 -0
  134. package/dist/client/chunks/chart-sankey-FChb26UX.js +222 -0
  135. package/dist/client/chunks/chart-sankey-FChb26UX.js.map +1 -0
  136. package/dist/client/chunks/chart-scatter-DW0cAZ2H.js +255 -0
  137. package/dist/client/chunks/chart-scatter-DW0cAZ2H.js.map +1 -0
  138. package/dist/client/chunks/chart-sunburst-Clf-6WxW.js +221 -0
  139. package/dist/client/chunks/chart-sunburst-Clf-6WxW.js.map +1 -0
  140. package/dist/client/chunks/chart-tree-map-p_VwUJPF.js +298 -0
  141. package/dist/client/chunks/chart-tree-map-p_VwUJPF.js.map +1 -0
  142. package/dist/client/chunks/chart-waterfall-jt44IQ-w.js +237 -0
  143. package/dist/client/chunks/chart-waterfall-jt44IQ-w.js.map +1 -0
  144. package/dist/client/chunks/charts-core-CUVzf4cV.js +215 -0
  145. package/dist/client/chunks/charts-core-CUVzf4cV.js.map +1 -0
  146. package/dist/client/chunks/charts-loader-AGpph8_I.js +259 -0
  147. package/dist/client/chunks/charts-loader-AGpph8_I.js.map +1 -0
  148. package/dist/client/chunks/core-D1TOj17W.js +845 -0
  149. package/dist/client/chunks/core-D1TOj17W.js.map +1 -0
  150. package/dist/client/chunks/dist-DDBeV_JI.js +847 -0
  151. package/dist/client/chunks/dist-DDBeV_JI.js.map +1 -0
  152. package/dist/client/chunks/javascript-BBwTSo6e.js +438 -0
  153. package/dist/client/chunks/javascript-BBwTSo6e.js.map +1 -0
  154. package/dist/client/chunks/json-BpTrLZSh.js +38 -0
  155. package/dist/client/chunks/json-BpTrLZSh.js.map +1 -0
  156. package/dist/client/chunks/lazyChartConfigRegistry-BjhxDaSf.js +149 -0
  157. package/dist/client/chunks/lazyChartConfigRegistry-BjhxDaSf.js.map +1 -0
  158. package/dist/client/chunks/providers-DX3Vw5kc.js +7 -0
  159. package/dist/client/chunks/providers-DX3Vw5kc.js.map +1 -0
  160. package/dist/client/chunks/retention-UEXlSdZ-.js +132 -0
  161. package/dist/client/chunks/retention-UEXlSdZ-.js.map +1 -0
  162. package/dist/client/chunks/rolldown-runtime-lc2dmIiU.js +20 -0
  163. package/dist/client/chunks/schema-visualization-ZugB4Io9.js +1073 -0
  164. package/dist/client/chunks/schema-visualization-ZugB4Io9.js.map +1 -0
  165. package/dist/client/chunks/sql-B0chxcEK.js +120 -0
  166. package/dist/client/chunks/sql-B0chxcEK.js.map +1 -0
  167. package/dist/client/chunks/syntaxHighlighting-87bOwTxj.js +30 -0
  168. package/dist/client/chunks/syntaxHighlighting-87bOwTxj.js.map +1 -0
  169. package/dist/client/chunks/useDebounce-BQjNWndQ.js +1394 -0
  170. package/dist/client/chunks/useDebounce-BQjNWndQ.js.map +1 -0
  171. package/dist/client/chunks/useDirtyStateTracking-CgKZWkel.js +66 -0
  172. package/dist/client/chunks/useDirtyStateTracking-CgKZWkel.js.map +1 -0
  173. package/dist/client/chunks/useExplainAI-c_bHxZe5.js +203 -0
  174. package/dist/client/chunks/useExplainAI-c_bHxZe5.js.map +1 -0
  175. package/dist/client/chunks/useNotebookLayout-BFZ_33Kb.js +37 -0
  176. package/dist/client/chunks/useNotebookLayout-BFZ_33Kb.js.map +1 -0
  177. package/dist/client/chunks/utils-A54Ny29G.js +128 -0
  178. package/dist/client/chunks/utils-A54Ny29G.js.map +1 -0
  179. package/dist/client/chunks/vendor-CoPBRumI.js +828 -0
  180. package/dist/client/chunks/vendor-CoPBRumI.js.map +1 -0
  181. package/dist/client/components.js +4 -18
  182. package/dist/client/hooks.js +6 -58
  183. package/dist/client/icons.js +2 -15
  184. package/dist/client/index.js +1061 -1295
  185. package/dist/client/index.js.map +1 -1
  186. package/dist/client/providers.js +3 -9
  187. package/dist/client/styles.css +2 -1
  188. package/dist/client/types.d.ts +1 -0
  189. package/dist/client/utils.js +7 -74
  190. package/dist/client-bundle-stats.html +1 -1
  191. package/dist/server/anthropic-BsNspi1r.js +140 -0
  192. package/dist/server/anthropic-DsCEX6Fm.cjs +1 -0
  193. package/dist/server/dist-CMWZC51B.js +581 -0
  194. package/dist/server/dist-DxegvyZF.cjs +2 -0
  195. package/dist/server/google-BXwMolCu.js +154 -0
  196. package/dist/server/google-DzQWXFwF.cjs +2 -0
  197. package/dist/server/index.cjs +109 -129
  198. package/dist/server/index.js +15089 -34394
  199. package/dist/server/openai-BPhmb8mi.js +4114 -0
  200. package/dist/server/openai-CLsoLaue.cjs +1 -0
  201. package/dist/server/openai-D1kZ5sdM.js +153 -0
  202. package/dist/server/openai-DkOKbVLC.cjs +16 -0
  203. package/package.json +5 -5
  204. package/dist/adapters/anthropic-BTkjgFpT.cjs +0 -1
  205. package/dist/adapters/anthropic-CTu9E801.js +0 -126
  206. package/dist/adapters/google-BAK9pnQf.cjs +0 -2
  207. package/dist/adapters/google-DficVAsJ.js +0 -146
  208. package/dist/adapters/handler-BHguLZOY.js +0 -2713
  209. package/dist/adapters/handler-DOIyiFPg.cjs +0 -39
  210. package/dist/adapters/index-BgCeQBuN.cjs +0 -2
  211. package/dist/adapters/index-C3PskWTr.js +0 -5353
  212. package/dist/adapters/index-C45_meK_.js +0 -719
  213. package/dist/adapters/index-ht4NPca9.cjs +0 -23
  214. package/dist/adapters/mcp-transport-CWGqDQSI.cjs +0 -259
  215. package/dist/adapters/mcp-transport-CyeHMDPl.js +0 -11055
  216. package/dist/adapters/openai-BvA6eLs8.cjs +0 -1
  217. package/dist/adapters/openai-mcE24du8.js +0 -131
  218. package/dist/client/charts.js.map +0 -1
  219. package/dist/client/chunks/RetentionCombinedChart--SnU4Y_I.js +0 -256
  220. package/dist/client/chunks/RetentionCombinedChart--SnU4Y_I.js.map +0 -1
  221. package/dist/client/chunks/RetentionCombinedChart.config-Bbp2ghim.js +0 -48
  222. package/dist/client/chunks/RetentionCombinedChart.config-Bbp2ghim.js.map +0 -1
  223. package/dist/client/chunks/RetentionHeatmap-BHYU8MXY.js +0 -178
  224. package/dist/client/chunks/RetentionHeatmap-BHYU8MXY.js.map +0 -1
  225. package/dist/client/chunks/RetentionHeatmap.config-BWf_-vdj.js +0 -29
  226. package/dist/client/chunks/RetentionHeatmap.config-BWf_-vdj.js.map +0 -1
  227. package/dist/client/chunks/analysis-builder-DMFoAkjT.js +0 -6203
  228. package/dist/client/chunks/analysis-builder-DMFoAkjT.js.map +0 -1
  229. package/dist/client/chunks/analysis-builder-shared-CunrT3gi.js +0 -3140
  230. package/dist/client/chunks/analysis-builder-shared-CunrT3gi.js.map +0 -1
  231. package/dist/client/chunks/chart-activity-grid-DCznpK6N.js +0 -347
  232. package/dist/client/chunks/chart-activity-grid-DCznpK6N.js.map +0 -1
  233. package/dist/client/chunks/chart-area-CqKRIUpj.js +0 -234
  234. package/dist/client/chunks/chart-area-CqKRIUpj.js.map +0 -1
  235. package/dist/client/chunks/chart-bar-Bl5jvrU_.js +0 -267
  236. package/dist/client/chunks/chart-bar-Bl5jvrU_.js.map +0 -1
  237. package/dist/client/chunks/chart-box-plot-CzMb00z_.js +0 -322
  238. package/dist/client/chunks/chart-box-plot-CzMb00z_.js.map +0 -1
  239. package/dist/client/chunks/chart-bubble-BF8Z52eW.js +0 -249
  240. package/dist/client/chunks/chart-bubble-BF8Z52eW.js.map +0 -1
  241. package/dist/client/chunks/chart-candlestick-ByWS945g.js +0 -269
  242. package/dist/client/chunks/chart-candlestick-ByWS945g.js.map +0 -1
  243. package/dist/client/chunks/chart-config-activity-grid-CmOqDuOT.js +0 -50
  244. package/dist/client/chunks/chart-config-activity-grid-CmOqDuOT.js.map +0 -1
  245. package/dist/client/chunks/chart-config-area-CK_GVApT.js +0 -77
  246. package/dist/client/chunks/chart-config-area-CK_GVApT.js.map +0 -1
  247. package/dist/client/chunks/chart-config-bar-C8uzktxl.js +0 -71
  248. package/dist/client/chunks/chart-config-bar-C8uzktxl.js.map +0 -1
  249. package/dist/client/chunks/chart-config-box-plot-D_E_SSc2.js +0 -38
  250. package/dist/client/chunks/chart-config-box-plot-D_E_SSc2.js.map +0 -1
  251. package/dist/client/chunks/chart-config-bubble-q3DoQX5F.js +0 -71
  252. package/dist/client/chunks/chart-config-bubble-q3DoQX5F.js.map +0 -1
  253. package/dist/client/chunks/chart-config-candlestick-CRCpD43-.js +0 -70
  254. package/dist/client/chunks/chart-config-candlestick-CRCpD43-.js.map +0 -1
  255. package/dist/client/chunks/chart-config-data-table-B20Y5JCm.js +0 -28
  256. package/dist/client/chunks/chart-config-data-table-B20Y5JCm.js.map +0 -1
  257. package/dist/client/chunks/chart-config-funnel-3eYnGg8M.js +0 -92
  258. package/dist/client/chunks/chart-config-funnel-3eYnGg8M.js.map +0 -1
  259. package/dist/client/chunks/chart-config-gauge-CQx9w3d4.js +0 -64
  260. package/dist/client/chunks/chart-config-gauge-CQx9w3d4.js.map +0 -1
  261. package/dist/client/chunks/chart-config-heat-map-_wEnTnRA.js +0 -77
  262. package/dist/client/chunks/chart-config-heat-map-_wEnTnRA.js.map +0 -1
  263. package/dist/client/chunks/chart-config-kpi-delta-DLGZ2A3X.js +0 -97
  264. package/dist/client/chunks/chart-config-kpi-delta-DLGZ2A3X.js.map +0 -1
  265. package/dist/client/chunks/chart-config-kpi-number-K-wzviXF.js +0 -75
  266. package/dist/client/chunks/chart-config-kpi-number-K-wzviXF.js.map +0 -1
  267. package/dist/client/chunks/chart-config-kpi-text-BjYqwqaJ.js +0 -47
  268. package/dist/client/chunks/chart-config-kpi-text-BjYqwqaJ.js.map +0 -1
  269. package/dist/client/chunks/chart-config-line-JNagi9tf.js +0 -88
  270. package/dist/client/chunks/chart-config-line-JNagi9tf.js.map +0 -1
  271. package/dist/client/chunks/chart-config-markdown-BWQSjJpy.js +0 -97
  272. package/dist/client/chunks/chart-config-markdown-BWQSjJpy.js.map +0 -1
  273. package/dist/client/chunks/chart-config-measure-profile-ZYaMrtws.js +0 -70
  274. package/dist/client/chunks/chart-config-measure-profile-ZYaMrtws.js.map +0 -1
  275. package/dist/client/chunks/chart-config-pie-CNLXb-fr.js +0 -39
  276. package/dist/client/chunks/chart-config-pie-CNLXb-fr.js.map +0 -1
  277. package/dist/client/chunks/chart-config-radar-oxHfRAa3.js +0 -44
  278. package/dist/client/chunks/chart-config-radar-oxHfRAa3.js.map +0 -1
  279. package/dist/client/chunks/chart-config-radial-bar-_Aw3jAEm.js +0 -37
  280. package/dist/client/chunks/chart-config-radial-bar-_Aw3jAEm.js.map +0 -1
  281. package/dist/client/chunks/chart-config-sankey-C8FX9hGF.js +0 -61
  282. package/dist/client/chunks/chart-config-sankey-C8FX9hGF.js.map +0 -1
  283. package/dist/client/chunks/chart-config-scatter-DFKM80eO.js +0 -53
  284. package/dist/client/chunks/chart-config-scatter-DFKM80eO.js.map +0 -1
  285. package/dist/client/chunks/chart-config-sunburst-BmC0NLTU.js +0 -50
  286. package/dist/client/chunks/chart-config-sunburst-BmC0NLTU.js.map +0 -1
  287. package/dist/client/chunks/chart-config-tree-map-DGMbNTaa.js +0 -47
  288. package/dist/client/chunks/chart-config-tree-map-DGMbNTaa.js.map +0 -1
  289. package/dist/client/chunks/chart-config-waterfall-DTyXV_fo.js +0 -60
  290. package/dist/client/chunks/chart-config-waterfall-DTyXV_fo.js.map +0 -1
  291. package/dist/client/chunks/chart-data-table-HwfF-Ujv.js +0 -293
  292. package/dist/client/chunks/chart-data-table-HwfF-Ujv.js.map +0 -1
  293. package/dist/client/chunks/chart-funnel-WmuoWlCq.js +0 -259
  294. package/dist/client/chunks/chart-funnel-WmuoWlCq.js.map +0 -1
  295. package/dist/client/chunks/chart-gauge-Cot4By-w.js +0 -374
  296. package/dist/client/chunks/chart-gauge-Cot4By-w.js.map +0 -1
  297. package/dist/client/chunks/chart-heat-map-bGNtsZMr.js +0 -231
  298. package/dist/client/chunks/chart-heat-map-bGNtsZMr.js.map +0 -1
  299. package/dist/client/chunks/chart-kpi-delta-DeyKMxgq.js +0 -351
  300. package/dist/client/chunks/chart-kpi-delta-DeyKMxgq.js.map +0 -1
  301. package/dist/client/chunks/chart-kpi-number-D1z1gxXO.js +0 -476
  302. package/dist/client/chunks/chart-kpi-number-D1z1gxXO.js.map +0 -1
  303. package/dist/client/chunks/chart-kpi-text-b7q6KWc0.js +0 -165
  304. package/dist/client/chunks/chart-kpi-text-b7q6KWc0.js.map +0 -1
  305. package/dist/client/chunks/chart-line-3Nf-EPqJ.js +0 -450
  306. package/dist/client/chunks/chart-line-3Nf-EPqJ.js.map +0 -1
  307. package/dist/client/chunks/chart-markdown-BT_-MBq1.js +0 -2721
  308. package/dist/client/chunks/chart-markdown-BT_-MBq1.js.map +0 -1
  309. package/dist/client/chunks/chart-measure-profile-BVjUonqU.js +0 -114
  310. package/dist/client/chunks/chart-measure-profile-BVjUonqU.js.map +0 -1
  311. package/dist/client/chunks/chart-pie-DblG6w7g.js +0 -137
  312. package/dist/client/chunks/chart-pie-DblG6w7g.js.map +0 -1
  313. package/dist/client/chunks/chart-radar-BHZbeeTg.js +0 -129
  314. package/dist/client/chunks/chart-radar-BHZbeeTg.js.map +0 -1
  315. package/dist/client/chunks/chart-radial-bar-AlEJC1Jo.js +0 -119
  316. package/dist/client/chunks/chart-radial-bar-AlEJC1Jo.js.map +0 -1
  317. package/dist/client/chunks/chart-sankey-E8vYKjQF.js +0 -189
  318. package/dist/client/chunks/chart-sankey-E8vYKjQF.js.map +0 -1
  319. package/dist/client/chunks/chart-scatter-Bbxqi0iw.js +0 -202
  320. package/dist/client/chunks/chart-scatter-Bbxqi0iw.js.map +0 -1
  321. package/dist/client/chunks/chart-sunburst-BgnTKolT.js +0 -188
  322. package/dist/client/chunks/chart-sunburst-BgnTKolT.js.map +0 -1
  323. package/dist/client/chunks/chart-tree-map-i9LGCLwl.js +0 -284
  324. package/dist/client/chunks/chart-tree-map-i9LGCLwl.js.map +0 -1
  325. package/dist/client/chunks/chart-waterfall-BeIhCm83.js +0 -191
  326. package/dist/client/chunks/chart-waterfall-BeIhCm83.js.map +0 -1
  327. package/dist/client/chunks/charts-core-BUUO36OM.js +0 -692
  328. package/dist/client/chunks/charts-core-BUUO36OM.js.map +0 -1
  329. package/dist/client/chunks/charts-loader-goTYnavu.js +0 -258
  330. package/dist/client/chunks/charts-loader-goTYnavu.js.map +0 -1
  331. package/dist/client/chunks/components-BFgYvFq6.js +0 -10066
  332. package/dist/client/chunks/components-BFgYvFq6.js.map +0 -1
  333. package/dist/client/chunks/core-Y9e-sNfb.js +0 -1068
  334. package/dist/client/chunks/core-Y9e-sNfb.js.map +0 -1
  335. package/dist/client/chunks/flow-utils-CjQZG5qq.js +0 -16
  336. package/dist/client/chunks/flow-utils-CjQZG5qq.js.map +0 -1
  337. package/dist/client/chunks/funnel-utils-CyonoNeC.js +0 -135
  338. package/dist/client/chunks/funnel-utils-CyonoNeC.js.map +0 -1
  339. package/dist/client/chunks/icons-CwvgmdIP.js +0 -1636
  340. package/dist/client/chunks/icons-CwvgmdIP.js.map +0 -1
  341. package/dist/client/chunks/index-CApFCBF9.js +0 -81
  342. package/dist/client/chunks/index-CApFCBF9.js.map +0 -1
  343. package/dist/client/chunks/index-_2PSgbkC.js +0 -1046
  344. package/dist/client/chunks/index-_2PSgbkC.js.map +0 -1
  345. package/dist/client/chunks/javascript-DII1YQGr.js +0 -659
  346. package/dist/client/chunks/javascript-DII1YQGr.js.map +0 -1
  347. package/dist/client/chunks/json-C_6Prymp.js +0 -39
  348. package/dist/client/chunks/json-C_6Prymp.js.map +0 -1
  349. package/dist/client/chunks/providers-Ds7DRmnO.js +0 -554
  350. package/dist/client/chunks/providers-Ds7DRmnO.js.map +0 -1
  351. package/dist/client/chunks/retention-CzCo8262.js +0 -120
  352. package/dist/client/chunks/retention-CzCo8262.js.map +0 -1
  353. package/dist/client/chunks/schema-visualization-B97a1Ybu.js +0 -772
  354. package/dist/client/chunks/schema-visualization-B97a1Ybu.js.map +0 -1
  355. package/dist/client/chunks/sql-IeKX8fQ8.js +0 -616
  356. package/dist/client/chunks/sql-IeKX8fQ8.js.map +0 -1
  357. package/dist/client/chunks/syntaxHighlighting-DAMSW_A6.js +0 -34
  358. package/dist/client/chunks/syntaxHighlighting-DAMSW_A6.js.map +0 -1
  359. package/dist/client/chunks/theme-Dp3hFed1.js +0 -112
  360. package/dist/client/chunks/theme-Dp3hFed1.js.map +0 -1
  361. package/dist/client/chunks/useDirtyStateTracking-CyAXd07d.js +0 -1231
  362. package/dist/client/chunks/useDirtyStateTracking-CyAXd07d.js.map +0 -1
  363. package/dist/client/chunks/useExplainAI-CfQ_JmF1.js +0 -182
  364. package/dist/client/chunks/useExplainAI-CfQ_JmF1.js.map +0 -1
  365. package/dist/client/chunks/vendor-B2EH3V58.js +0 -2892
  366. package/dist/client/chunks/vendor-B2EH3V58.js.map +0 -1
  367. package/dist/client/components.js.map +0 -1
  368. package/dist/client/hooks.js.map +0 -1
  369. package/dist/client/icons.js.map +0 -1
  370. package/dist/client/providers.js.map +0 -1
  371. package/dist/client/utils.js.map +0 -1
  372. package/dist/server/anthropic-BTkjgFpT.cjs +0 -1
  373. package/dist/server/anthropic-CTu9E801.js +0 -126
  374. package/dist/server/google-BAK9pnQf.cjs +0 -2
  375. package/dist/server/google-DficVAsJ.js +0 -146
  376. package/dist/server/index-BgCeQBuN.cjs +0 -2
  377. package/dist/server/index-C3PskWTr.js +0 -5353
  378. package/dist/server/index-C45_meK_.js +0 -719
  379. package/dist/server/index-ht4NPca9.cjs +0 -23
  380. package/dist/server/openai-BvA6eLs8.cjs +0 -1
  381. package/dist/server/openai-mcE24du8.js +0 -131
@@ -0,0 +1,1073 @@
1
+ import { n as e } from "./rolldown-runtime-lc2dmIiU.js";
2
+ import { c as t, d as n } from "./chart-data-table-DehW1C1G.js";
3
+ import { Suspense as r, createContext as i, lazy as a, useCallback as o, useContext as s, useEffect as c, useMemo as l, useRef as u, useState as d } from "react";
4
+ import { Fragment as f, jsx as p, jsxs as m } from "react/jsx-runtime";
5
+ //#region src/client/components/SchemaVisualization/xyflowContext.tsx
6
+ var h = i(null), g = h.Provider;
7
+ function _() {
8
+ let e = s(h);
9
+ if (!e) throw Error("useXyflow must be used within XyflowProvider");
10
+ return e;
11
+ }
12
+ //#endregion
13
+ //#region src/client/components/SchemaVisualization/SchemaVisualizationLazy.tsx
14
+ var v = !1;
15
+ function y(e) {
16
+ return /* @__PURE__ */ p("div", {
17
+ className: "dc:flex dc:items-center dc:justify-center dc:h-full dc:p-8",
18
+ children: /* @__PURE__ */ m("div", {
19
+ className: "dc:text-center dc:max-w-md",
20
+ children: [
21
+ /* @__PURE__ */ p("div", {
22
+ className: "dc:text-4xl dc:mb-4",
23
+ children: "🔍"
24
+ }),
25
+ /* @__PURE__ */ p("h3", {
26
+ className: "dc:text-lg dc:font-semibold text-dc-text dc:mb-2",
27
+ children: "Schema Visualization requires additional packages"
28
+ }),
29
+ /* @__PURE__ */ p("p", {
30
+ className: "dc:text-sm text-dc-text-secondary dc:mb-4",
31
+ children: "Install the required dependencies to enable the interactive schema diagram:"
32
+ }),
33
+ /* @__PURE__ */ p("code", {
34
+ className: "dc:block dc:px-4 dc:py-2 dc:rounded bg-dc-surface-secondary dc:text-sm dc:font-mono text-dc-text dc:border border-dc-border",
35
+ children: "npm install @xyflow/react elkjs"
36
+ })
37
+ ]
38
+ })
39
+ });
40
+ }
41
+ function b() {
42
+ return /* @__PURE__ */ p("div", {
43
+ className: "dc:flex dc:items-center dc:justify-center dc:h-full",
44
+ children: /* @__PURE__ */ m("div", {
45
+ className: "dc:text-center",
46
+ children: [/* @__PURE__ */ p("div", { className: "dc:animate-spin dc:rounded-full dc:h-8 dc:w-8 dc:border-b-2 border-dc-accent dc:mx-auto dc:mb-2" }), /* @__PURE__ */ p("p", {
47
+ className: "dc:text-sm text-dc-text-muted",
48
+ children: "Loading schema visualization..."
49
+ })]
50
+ })
51
+ });
52
+ }
53
+ var x = a(async () => ({ default: (await Promise.resolve().then(() => R)).SchemaVisualization }));
54
+ function S(e) {
55
+ let [t, n] = d(null), [i, a] = d(v);
56
+ return c(() => {
57
+ if (v) return;
58
+ let e = !1;
59
+ return import("@xyflow/react").then((t) => {
60
+ e || n(t);
61
+ }).catch(() => {
62
+ v = !0, e || a(!0);
63
+ }), () => {
64
+ e = !0;
65
+ };
66
+ }, []), i ? /* @__PURE__ */ p(y, { ...e }) : t ? /* @__PURE__ */ p(g, {
67
+ value: t,
68
+ children: /* @__PURE__ */ p(r, {
69
+ fallback: /* @__PURE__ */ p(b, {}),
70
+ children: /* @__PURE__ */ p(x, { ...e })
71
+ })
72
+ }) : /* @__PURE__ */ p(b, {});
73
+ }
74
+ //#endregion
75
+ //#region src/client/components/SchemaVisualization/CubeNode.tsx
76
+ function C({ data: e }) {
77
+ let { Handle: t, Position: r } = _(), { cube: i, onFieldClick: a, onCubeClick: o, isHighlighted: s, highlightedFields: c, searchTerm: l, selectedField: u } = e, d = (e, t, n) => {
78
+ a && a(i.name, t, n, {
79
+ x: e.clientX,
80
+ y: e.clientY
81
+ });
82
+ }, f = n("info"), h = (e) => {
83
+ e.stopPropagation(), o && o(i.name, {
84
+ x: e.clientX,
85
+ y: e.clientY
86
+ });
87
+ }, g = (e) => u ? u.cubeName === i.name && u.fieldName === e : !1, v = u?.cubeName === i.name && u?.fieldName === null, y = (e) => c.includes(e), b = (e) => {
88
+ if (!l?.trim()) return !0;
89
+ let t = l.toLowerCase();
90
+ return e.name.toLowerCase().includes(t) || e.title && e.title.toLowerCase().includes(t);
91
+ }, x = l?.trim() ? i.measures.some((e) => b(e)) || i.dimensions.some((e) => b(e)) : !0, S = (e, t, n) => {
92
+ let r = g(e.name.split(".")[1] || e.name), i = "dc:px-4 dc:py-2 dc:text-xs dc:cursor-pointer dc:transition-all dc:border-b border-dc-border last:dc:border-b-0 nodrag nopan";
93
+ return r ? `${i} bg-dc-accent-bg text-dc-accent dc:font-semibold dc:ring-1 dc:ring-inset ring-dc-accent` : !x && l?.trim() ? t ? `${i} bg-dc-accent-bg text-dc-accent dc:font-semibold` : `${i} dc:hover:bg-dc-surface-hover text-dc-text-secondary` : l?.trim() && !b(e) ? `${i} dc:opacity-40 dc:hover:opacity-60 text-dc-text-muted` : l?.trim() && b(e) && !t ? `${i} dc:font-bold dc:hover:bg-dc-accent-bg` : t ? `${i} bg-dc-accent-bg text-dc-accent dc:font-semibold` : `${i} dc:hover:bg-dc-surface-hover text-dc-text-secondary`;
94
+ }, C = i.dimensions.filter((e) => e.type === "time"), w = i.dimensions.filter((e) => e.type !== "time");
95
+ return /* @__PURE__ */ m("div", {
96
+ className: `
97
+ dc:border-2 dc:rounded-lg dc:shadow-lg dc:min-w-[280px] dc:overflow-hidden dc:transition-all
98
+ ${!x && l?.trim() ? "dc:opacity-30 dc:grayscale" : ""}
99
+ ${s ? "border-dc-accent dc:ring-2 ring-dc-accent" : "border-dc-border"}
100
+ `,
101
+ style: { backgroundColor: "var(--dc-surface)" },
102
+ children: [
103
+ /* @__PURE__ */ p("div", {
104
+ className: `dc:px-4 dc:py-3 dc:transition-colors ${s ? "bg-dc-accent-bg" : "bg-dc-surface-secondary"}`,
105
+ children: /* @__PURE__ */ m("div", {
106
+ className: "dc:flex dc:items-center dc:justify-between",
107
+ children: [
108
+ /* @__PURE__ */ m("div", { children: [/* @__PURE__ */ p("h3", {
109
+ className: "dc:font-semibold text-dc-text dc:text-sm",
110
+ children: i.title || i.name
111
+ }), i.description && /* @__PURE__ */ p("p", {
112
+ className: "dc:text-xs text-dc-text-muted dc:mt-1 dc:line-clamp-2",
113
+ children: i.description
114
+ })] }),
115
+ o && /* @__PURE__ */ p("button", {
116
+ className: `dc:ml-2 dc:p-1 dc:rounded dc:transition-colors nodrag nopan ${v ? "bg-dc-accent-bg text-dc-accent" : "text-dc-text-muted dc:hover:text-dc-text dc:hover:bg-dc-surface-hover"}`,
117
+ onClick: h,
118
+ title: "Cube info",
119
+ children: /* @__PURE__ */ p(f, { className: "dc:w-5 dc:h-5" })
120
+ }),
121
+ !o && /* @__PURE__ */ m("div", {
122
+ className: "dc:text-xs text-dc-text-muted dc:ml-2",
123
+ children: [/* @__PURE__ */ m("div", { children: [i.measures.length, "M"] }), /* @__PURE__ */ m("div", { children: [i.dimensions.length, "D"] })]
124
+ })
125
+ ]
126
+ })
127
+ }),
128
+ i.measures.length > 0 && /* @__PURE__ */ m("div", {
129
+ className: "dc:border-t border-dc-border",
130
+ children: [/* @__PURE__ */ p("div", {
131
+ className: "dc:px-4 dc:py-1.5 dc:border-b border-dc-border",
132
+ style: { backgroundColor: "color-mix(in srgb, var(--dc-warning) 10%, var(--dc-surface))" },
133
+ children: /* @__PURE__ */ m("h4", {
134
+ className: "dc:text-xs dc:font-medium text-dc-text-secondary dc:flex dc:items-center",
135
+ children: [
136
+ /* @__PURE__ */ p("span", { className: "dc:w-2 dc:h-2 bg-dc-warning dc:rounded-full dc:mr-2" }),
137
+ "Measures (",
138
+ i.measures.length,
139
+ ")"
140
+ ]
141
+ })
142
+ }), /* @__PURE__ */ p("div", {
143
+ className: "dc:max-h-64 dc:overflow-y-auto nowheel",
144
+ children: i.measures.map((e) => {
145
+ let t = e.name.split(".")[1] || e.name;
146
+ return /* @__PURE__ */ p("div", {
147
+ className: S(e, y(e.name), "measure"),
148
+ onClick: (e) => d(e, t, "measure"),
149
+ title: e.title,
150
+ children: /* @__PURE__ */ m("div", {
151
+ className: "dc:flex dc:items-center dc:justify-between",
152
+ children: [/* @__PURE__ */ p("span", {
153
+ className: "dc:font-mono dc:truncate",
154
+ children: e.shortTitle || e.title || t
155
+ }), /* @__PURE__ */ p("span", {
156
+ className: "text-dc-text-muted dc:ml-2 dc:text-[10px] dc:uppercase",
157
+ children: e.type
158
+ })]
159
+ })
160
+ }, e.name);
161
+ })
162
+ })]
163
+ }),
164
+ C.length > 0 && /* @__PURE__ */ m("div", {
165
+ className: "dc:border-t border-dc-border",
166
+ children: [/* @__PURE__ */ p("div", {
167
+ className: "dc:px-4 dc:py-1.5 dc:border-b border-dc-border",
168
+ style: { backgroundColor: "color-mix(in srgb, var(--dc-accent) 10%, var(--dc-surface))" },
169
+ children: /* @__PURE__ */ m("h4", {
170
+ className: "dc:text-xs dc:font-medium text-dc-text-secondary dc:flex dc:items-center",
171
+ children: [
172
+ /* @__PURE__ */ p("span", { className: "dc:w-2 dc:h-2 bg-dc-accent dc:rounded-full dc:mr-2" }),
173
+ "Time Dimensions (",
174
+ C.length,
175
+ ")"
176
+ ]
177
+ })
178
+ }), /* @__PURE__ */ p("div", {
179
+ className: "dc:max-h-64 dc:overflow-y-auto nowheel",
180
+ children: C.map((e) => {
181
+ let t = e.name.split(".")[1] || e.name;
182
+ return /* @__PURE__ */ p("div", {
183
+ className: S(e, y(e.name), "dimension"),
184
+ onClick: (e) => d(e, t, "dimension"),
185
+ title: e.title,
186
+ children: /* @__PURE__ */ m("div", {
187
+ className: "dc:flex dc:items-center dc:justify-between",
188
+ children: [/* @__PURE__ */ p("span", {
189
+ className: "dc:font-mono dc:truncate",
190
+ children: e.shortTitle || e.title || t
191
+ }), /* @__PURE__ */ p("span", {
192
+ className: "text-dc-text-muted dc:ml-2 dc:text-[10px] dc:uppercase",
193
+ children: e.type
194
+ })]
195
+ })
196
+ }, e.name);
197
+ })
198
+ })]
199
+ }),
200
+ w.length > 0 && /* @__PURE__ */ m("div", {
201
+ className: "dc:border-t border-dc-border",
202
+ children: [/* @__PURE__ */ p("div", {
203
+ className: "dc:px-4 dc:py-1.5 dc:border-b border-dc-border",
204
+ style: { backgroundColor: "color-mix(in srgb, var(--dc-success) 10%, var(--dc-surface))" },
205
+ children: /* @__PURE__ */ m("h4", {
206
+ className: "dc:text-xs dc:font-medium text-dc-text-secondary dc:flex dc:items-center",
207
+ children: [
208
+ /* @__PURE__ */ p("span", { className: "dc:w-2 dc:h-2 bg-dc-success dc:rounded-full dc:mr-2" }),
209
+ "Dimensions (",
210
+ w.length,
211
+ ")"
212
+ ]
213
+ })
214
+ }), /* @__PURE__ */ p("div", {
215
+ className: "dc:max-h-64 dc:overflow-y-auto nowheel",
216
+ children: w.map((e) => {
217
+ let t = e.name.split(".")[1] || e.name;
218
+ return /* @__PURE__ */ p("div", {
219
+ className: S(e, y(e.name), "dimension"),
220
+ onClick: (e) => d(e, t, "dimension"),
221
+ title: e.title,
222
+ children: /* @__PURE__ */ m("div", {
223
+ className: "dc:flex dc:items-center dc:justify-between",
224
+ children: [/* @__PURE__ */ p("span", {
225
+ className: "dc:font-mono dc:truncate",
226
+ children: e.shortTitle || e.title || t
227
+ }), /* @__PURE__ */ p("span", {
228
+ className: "text-dc-text-muted dc:ml-2 dc:text-[10px] dc:uppercase",
229
+ children: e.type
230
+ })]
231
+ })
232
+ }, e.name);
233
+ })
234
+ })]
235
+ }),
236
+ /* @__PURE__ */ p(t, {
237
+ type: "source",
238
+ position: r.Right,
239
+ id: "right",
240
+ className: "dc:opacity-0",
241
+ isConnectable: !1
242
+ }),
243
+ /* @__PURE__ */ p(t, {
244
+ type: "target",
245
+ position: r.Left,
246
+ id: "left",
247
+ className: "dc:opacity-0",
248
+ isConnectable: !1
249
+ }),
250
+ /* @__PURE__ */ p(t, {
251
+ type: "source",
252
+ position: r.Bottom,
253
+ id: "bottom",
254
+ className: "dc:opacity-0",
255
+ isConnectable: !1
256
+ }),
257
+ /* @__PURE__ */ p(t, {
258
+ type: "target",
259
+ position: r.Top,
260
+ id: "top",
261
+ className: "dc:opacity-0",
262
+ isConnectable: !1
263
+ })
264
+ ]
265
+ });
266
+ }
267
+ //#endregion
268
+ //#region src/client/components/SchemaVisualization/RelationshipEdge.tsx
269
+ function w({ sourceX: e, sourceY: t, targetX: n, targetY: r, sourcePosition: i, targetPosition: a, style: o = {}, data: s, markerEnd: c }) {
270
+ let { getBezierPath: l, BaseEdge: u, EdgeLabelRenderer: d } = _(), [h, g, v] = l({
271
+ sourceX: e,
272
+ sourceY: t,
273
+ sourcePosition: i,
274
+ targetX: n,
275
+ targetY: r,
276
+ targetPosition: a
277
+ });
278
+ if (!s) return null;
279
+ let { relationship: y, joinFields: b } = s, x = (e) => {
280
+ switch (e) {
281
+ case "belongsTo": return "∈";
282
+ case "hasOne": return "1:1";
283
+ case "hasMany": return "1:M";
284
+ case "belongsToMany": return "M:M";
285
+ default: return "?";
286
+ }
287
+ }, S = ((e) => {
288
+ switch (e) {
289
+ case "belongsTo": return "#10b981";
290
+ case "hasOne": return "#3b82f6";
291
+ case "hasMany": return "#f59e0b";
292
+ case "belongsToMany": return "#8b5cf6";
293
+ default: return "#6b7280";
294
+ }
295
+ })(y.relationship), C = x(y.relationship);
296
+ return /* @__PURE__ */ m(f, { children: [/* @__PURE__ */ p(u, {
297
+ path: h,
298
+ markerEnd: c,
299
+ style: {
300
+ ...o,
301
+ stroke: S
302
+ }
303
+ }), /* @__PURE__ */ p(d, { children: /* @__PURE__ */ p("div", {
304
+ style: {
305
+ position: "absolute",
306
+ transform: `translate(-50%, -50%) translate(${g}px,${v}px)`,
307
+ fontSize: 10,
308
+ pointerEvents: "all"
309
+ },
310
+ className: "nodrag nopan",
311
+ children: /* @__PURE__ */ p("div", {
312
+ className: "dc:border-2 dc:rounded-md dc:px-2 dc:py-1 dc:shadow-xs",
313
+ style: {
314
+ backgroundColor: "var(--dc-surface)",
315
+ borderColor: S
316
+ },
317
+ children: /* @__PURE__ */ m("div", {
318
+ className: "dc:text-center",
319
+ children: [/* @__PURE__ */ p("div", {
320
+ className: "dc:font-bold dc:text-xs dc:mb-1",
321
+ style: { color: S },
322
+ children: C
323
+ }), /* @__PURE__ */ p("div", {
324
+ className: "dc:text-[9px] text-dc-text-muted dc:leading-tight",
325
+ children: b.map((e, t) => /* @__PURE__ */ m("div", {
326
+ className: "dc:font-mono",
327
+ children: [
328
+ e.sourceField,
329
+ " → ",
330
+ e.targetField
331
+ ]
332
+ }, t))
333
+ })]
334
+ })
335
+ })
336
+ }) })] });
337
+ }
338
+ //#endregion
339
+ //#region src/client/components/SchemaVisualization/FieldDetailPanel.tsx
340
+ function T({ label: e, children: t }) {
341
+ return /* @__PURE__ */ m("div", {
342
+ className: "dc:flex dc:items-start dc:gap-2 dc:text-xs",
343
+ children: [/* @__PURE__ */ p("span", {
344
+ className: "text-dc-text-muted dc:w-20 dc:flex-shrink-0 dc:font-medium",
345
+ children: e
346
+ }), /* @__PURE__ */ p("span", {
347
+ className: "text-dc-text dc:flex-1 dc:min-w-0",
348
+ children: t
349
+ })]
350
+ });
351
+ }
352
+ function E({ type: e, color: t }) {
353
+ return /* @__PURE__ */ p("span", {
354
+ className: "dc:inline-flex dc:items-center dc:px-1.5 dc:py-0.5 dc:rounded dc:text-[10px] dc:font-medium dc:uppercase",
355
+ style: {
356
+ backgroundColor: `color-mix(in srgb, ${t} 15%, var(--dc-surface))`,
357
+ color: t
358
+ },
359
+ children: e
360
+ });
361
+ }
362
+ function D({ measure: e, cube: t }) {
363
+ let n = {
364
+ count: "#f59e0b",
365
+ countDistinct: "#f59e0b",
366
+ countDistinctApprox: "#f59e0b",
367
+ sum: "#10b981",
368
+ avg: "#3b82f6",
369
+ min: "#8b5cf6",
370
+ max: "#ec4899",
371
+ runningTotal: "#06b6d4",
372
+ number: "#6b7280"
373
+ }[e.type] || "#6b7280";
374
+ return /* @__PURE__ */ m("div", {
375
+ className: "dc:flex dc:flex-col dc:gap-2",
376
+ children: [
377
+ /* @__PURE__ */ p(T, {
378
+ label: "Cube",
379
+ children: t.title || t.name
380
+ }),
381
+ /* @__PURE__ */ p(T, {
382
+ label: "Type",
383
+ children: /* @__PURE__ */ p(E, {
384
+ type: e.type,
385
+ color: n
386
+ })
387
+ }),
388
+ e.title && e.title !== e.shortTitle && /* @__PURE__ */ p(T, {
389
+ label: "Title",
390
+ children: e.title
391
+ }),
392
+ e.drillMembers && e.drillMembers.length > 0 && /* @__PURE__ */ p(T, {
393
+ label: "Drill into",
394
+ children: /* @__PURE__ */ p("div", {
395
+ className: "dc:flex dc:flex-wrap dc:gap-1",
396
+ children: e.drillMembers.map((e) => /* @__PURE__ */ p("span", {
397
+ className: "dc:font-mono dc:text-[10px] dc:px-1 dc:py-0.5 dc:rounded bg-dc-surface-secondary border-dc-border dc:border",
398
+ children: e.split(".")[1] || e
399
+ }, e))
400
+ })
401
+ })
402
+ ]
403
+ });
404
+ }
405
+ function O({ dimension: e, cube: t }) {
406
+ let n = e.type === "time" ? "#3b82f6" : "#10b981", r = t.hierarchies?.filter((n) => n.levels.some((n) => n === e.name || n === `${t.name}.${e.name.split(".")[1]}`)) || [];
407
+ return /* @__PURE__ */ m("div", {
408
+ className: "dc:flex dc:flex-col dc:gap-2",
409
+ children: [
410
+ /* @__PURE__ */ p(T, {
411
+ label: "Cube",
412
+ children: t.title || t.name
413
+ }),
414
+ /* @__PURE__ */ p(T, {
415
+ label: "Type",
416
+ children: /* @__PURE__ */ p(E, {
417
+ type: e.type,
418
+ color: n
419
+ })
420
+ }),
421
+ e.title && e.title !== e.shortTitle && /* @__PURE__ */ p(T, {
422
+ label: "Title",
423
+ children: e.title
424
+ }),
425
+ e.type === "time" && e.granularities && e.granularities.length > 0 && /* @__PURE__ */ p(T, {
426
+ label: "Granularity",
427
+ children: /* @__PURE__ */ p("div", {
428
+ className: "dc:flex dc:flex-wrap dc:gap-1",
429
+ children: e.granularities.map((e) => /* @__PURE__ */ p("span", {
430
+ className: "dc:font-mono dc:text-[10px] dc:px-1 dc:py-0.5 dc:rounded bg-dc-surface-secondary border-dc-border dc:border",
431
+ children: e
432
+ }, e))
433
+ })
434
+ }),
435
+ r.length > 0 && /* @__PURE__ */ p(T, {
436
+ label: "Hierarchy",
437
+ children: r.map((e) => /* @__PURE__ */ m("div", {
438
+ className: "dc:text-[10px]",
439
+ children: [/* @__PURE__ */ p("span", {
440
+ className: "dc:font-medium",
441
+ children: e.title
442
+ }), /* @__PURE__ */ m("span", {
443
+ className: "text-dc-text-muted dc:ml-1",
444
+ children: [
445
+ "(",
446
+ e.levels.map((e) => e.split(".")[1] || e).join(" > "),
447
+ ")"
448
+ ]
449
+ })]
450
+ }, e.name))
451
+ })
452
+ ]
453
+ });
454
+ }
455
+ function k({ cube: e }) {
456
+ let t = {
457
+ belongsTo: "#10b981",
458
+ hasOne: "#3b82f6",
459
+ hasMany: "#f59e0b",
460
+ belongsToMany: "#8b5cf6"
461
+ };
462
+ return /* @__PURE__ */ m("div", {
463
+ className: "dc:flex dc:flex-col dc:gap-2",
464
+ children: [
465
+ e.description && /* @__PURE__ */ p(T, {
466
+ label: "Description",
467
+ children: e.description
468
+ }),
469
+ /* @__PURE__ */ m(T, {
470
+ label: "Measures",
471
+ children: [/* @__PURE__ */ p("span", {
472
+ className: "dc:font-mono",
473
+ children: e.measures.length
474
+ }), e.measures.length > 0 && /* @__PURE__ */ m("span", {
475
+ className: "text-dc-text-muted dc:ml-1",
476
+ children: [
477
+ "(",
478
+ [...new Set(e.measures.map((e) => e.type))].join(", "),
479
+ ")"
480
+ ]
481
+ })]
482
+ }),
483
+ /* @__PURE__ */ m(T, {
484
+ label: "Dimensions",
485
+ children: [/* @__PURE__ */ p("span", {
486
+ className: "dc:font-mono",
487
+ children: e.dimensions.length
488
+ }), e.dimensions.some((e) => e.type === "time") && /* @__PURE__ */ m("span", {
489
+ className: "text-dc-text-muted dc:ml-1",
490
+ children: [
491
+ "(",
492
+ e.dimensions.filter((e) => e.type === "time").length,
493
+ " time)"
494
+ ]
495
+ })]
496
+ }),
497
+ e.relationships && e.relationships.length > 0 && /* @__PURE__ */ p(T, {
498
+ label: "Joins",
499
+ children: /* @__PURE__ */ p("div", {
500
+ className: "dc:flex dc:flex-col dc:gap-1",
501
+ children: e.relationships.map((e, n) => /* @__PURE__ */ m("div", {
502
+ className: "dc:flex dc:items-center dc:gap-1.5 dc:text-[10px]",
503
+ children: [/* @__PURE__ */ p(E, {
504
+ type: e.relationship,
505
+ color: t[e.relationship] || "#6b7280"
506
+ }), /* @__PURE__ */ p("span", {
507
+ className: "dc:font-mono",
508
+ children: e.targetCube
509
+ })]
510
+ }, n))
511
+ })
512
+ }),
513
+ e.hierarchies && e.hierarchies.length > 0 && /* @__PURE__ */ p(T, {
514
+ label: "Hierarchies",
515
+ children: /* @__PURE__ */ p("div", {
516
+ className: "dc:flex dc:flex-col dc:gap-1",
517
+ children: e.hierarchies.map((e) => /* @__PURE__ */ m("div", {
518
+ className: "dc:text-[10px]",
519
+ children: [/* @__PURE__ */ p("span", {
520
+ className: "dc:font-medium",
521
+ children: e.title
522
+ }), /* @__PURE__ */ m("span", {
523
+ className: "text-dc-text-muted dc:ml-1",
524
+ children: [
525
+ "(",
526
+ e.levels.map((e) => e.split(".")[1] || e).join(" > "),
527
+ ")"
528
+ ]
529
+ })]
530
+ }, e.name))
531
+ })
532
+ }),
533
+ e.meta?.eventStream && /* @__PURE__ */ p(T, {
534
+ label: "Event Stream",
535
+ children: /* @__PURE__ */ m("div", {
536
+ className: "dc:text-[10px]",
537
+ children: [
538
+ /* @__PURE__ */ p("span", {
539
+ className: "text-dc-text-muted",
540
+ children: "binding: "
541
+ }),
542
+ /* @__PURE__ */ p("span", {
543
+ className: "dc:font-mono",
544
+ children: e.meta.eventStream.bindingKey.split(".")[1] || e.meta.eventStream.bindingKey
545
+ }),
546
+ /* @__PURE__ */ p("span", {
547
+ className: "text-dc-text-muted dc:ml-2",
548
+ children: "time: "
549
+ }),
550
+ /* @__PURE__ */ p("span", {
551
+ className: "dc:font-mono",
552
+ children: e.meta.eventStream.timeDimension.split(".")[1] || e.meta.eventStream.timeDimension
553
+ })
554
+ ]
555
+ })
556
+ })
557
+ ]
558
+ });
559
+ }
560
+ function ee({ selection: e, meta: t, onClose: r }) {
561
+ let i = n("close"), a = t.cubes.find((t) => t.name === e.cubeName);
562
+ if (!a) return null;
563
+ let o, s, c, l;
564
+ if (e.fieldType === "cube" || !e.fieldName) o = a.title || a.name, s = "var(--dc-accent)", c = "color-mix(in srgb, var(--dc-accent) 10%, var(--dc-surface))", l = /* @__PURE__ */ p(k, { cube: a });
565
+ else if (e.fieldType === "measure") {
566
+ let t = a.measures.find((t) => (t.name.split(".")[1] || t.name) === e.fieldName || t.name === e.fieldName);
567
+ if (!t) return null;
568
+ o = t.shortTitle || t.title || e.fieldName, s = "var(--dc-warning)", c = "color-mix(in srgb, var(--dc-warning) 10%, var(--dc-surface))", l = /* @__PURE__ */ p(D, {
569
+ measure: t,
570
+ cube: a
571
+ });
572
+ } else {
573
+ let t = a.dimensions.find((t) => (t.name.split(".")[1] || t.name) === e.fieldName || t.name === e.fieldName);
574
+ if (!t) return null;
575
+ o = t.shortTitle || t.title || e.fieldName, s = t.type === "time" ? "var(--dc-accent)" : "var(--dc-success)", c = t.type === "time" ? "color-mix(in srgb, var(--dc-accent) 10%, var(--dc-surface))" : "color-mix(in srgb, var(--dc-success) 10%, var(--dc-surface))", l = /* @__PURE__ */ p(O, {
576
+ dimension: t,
577
+ cube: a
578
+ });
579
+ }
580
+ return /* @__PURE__ */ m("div", {
581
+ className: "dc:border-2 dc:rounded-lg dc:shadow-lg dc:min-w-[260px] dc:max-w-[320px] dc:overflow-hidden dc:transition-all border-dc-border",
582
+ style: { backgroundColor: "var(--dc-surface)" },
583
+ children: [/* @__PURE__ */ m("div", {
584
+ className: "dc:px-4 dc:py-2.5 dc:border-b border-dc-border dc:flex dc:items-center dc:justify-between",
585
+ style: { backgroundColor: c },
586
+ children: [/* @__PURE__ */ m("div", {
587
+ className: "dc:flex dc:items-center dc:gap-2 dc:min-w-0",
588
+ children: [/* @__PURE__ */ p("span", {
589
+ className: "dc:w-2 dc:h-2 dc:rounded-full dc:flex-shrink-0",
590
+ style: { backgroundColor: s }
591
+ }), /* @__PURE__ */ p("h4", {
592
+ className: "dc:text-sm dc:font-semibold text-dc-text dc:truncate",
593
+ children: o
594
+ })]
595
+ }), /* @__PURE__ */ p("button", {
596
+ onClick: r,
597
+ className: "dc:ml-2 dc:flex-shrink-0 text-dc-text-muted dc:hover:text-dc-text dc:transition-colors",
598
+ children: /* @__PURE__ */ p(i, { className: "dc:w-3.5 dc:h-3.5" })
599
+ })]
600
+ }), /* @__PURE__ */ p("div", {
601
+ className: "dc:px-4 dc:py-3",
602
+ children: l
603
+ })]
604
+ });
605
+ }
606
+ //#endregion
607
+ //#region src/client/components/SchemaVisualization/useERDLayout.ts
608
+ var A = {
609
+ direction: "LR",
610
+ nodeWidth: 340,
611
+ nodeSep: 150,
612
+ rankSep: 350
613
+ };
614
+ function j(e) {
615
+ switch (e) {
616
+ case "TB": return "top";
617
+ case "LR": return "left";
618
+ default: return "top";
619
+ }
620
+ }
621
+ function M(e) {
622
+ switch (e) {
623
+ case "TB": return "bottom";
624
+ case "LR": return "right";
625
+ default: return "bottom";
626
+ }
627
+ }
628
+ function N(e) {
629
+ let t = e.data?.cube;
630
+ if (!t) return 300;
631
+ let n = t.description ? 80 : 56, r = t.measures?.length ?? 0, i = t.dimensions?.filter((e) => e.type === "time").length ?? 0, a = t.dimensions?.filter((e) => e.type !== "time").length ?? 0;
632
+ return r > 0 && (n += 36 + Math.min(r * 34, 256)), i > 0 && (n += 36 + Math.min(i * 34, 256)), a > 0 && (n += 36 + Math.min(a * 34, 256)), n + 30;
633
+ }
634
+ var P = null, F = import("elkjs/lib/elk.bundled.js").then((e) => (P = new (e.default || e)(), P)).catch(() => null);
635
+ async function I(e, t, n) {
636
+ if (await F, !P) return {
637
+ nodes: L(e, n),
638
+ edges: t
639
+ };
640
+ let r = n.direction === "LR" ? "EAST" : "SOUTH", i = n.direction === "LR" ? "WEST" : "NORTH", a = /* @__PURE__ */ new Map(), o = /* @__PURE__ */ new Map();
641
+ t.forEach((e) => {
642
+ a.has(e.source) || a.set(e.source, []), a.get(e.source).push(e.id), o.has(e.target) || o.set(e.target, []), o.get(e.target).push(e.id);
643
+ });
644
+ let s = e.map((e) => {
645
+ let t = n.nodeWidth, s = N(e), c = a.get(e.id) || [], l = o.get(e.id) || [], u = [...c.map((t) => ({
646
+ id: `${e.id}__src__${t}`,
647
+ layoutOptions: { "elk.port.side": r }
648
+ })), ...l.map((t) => ({
649
+ id: `${e.id}__tgt__${t}`,
650
+ layoutOptions: { "elk.port.side": i }
651
+ }))];
652
+ return {
653
+ id: e.id,
654
+ width: t,
655
+ height: s,
656
+ layoutOptions: { "elk.portConstraints": "FIXED_SIDE" },
657
+ ports: u
658
+ };
659
+ }), c = t.map((e) => ({
660
+ id: e.id,
661
+ sources: [`${e.source}__src__${e.id}`],
662
+ targets: [`${e.target}__tgt__${e.id}`]
663
+ })), l = n.direction === "LR" ? "RIGHT" : "DOWN", u = {
664
+ id: "root",
665
+ layoutOptions: {
666
+ "elk.algorithm": "layered",
667
+ "elk.direction": l,
668
+ "elk.edgeRouting": "SPLINES",
669
+ "elk.layered.edgeRouting.splines.mode": "CONSERVATIVE",
670
+ "elk.spacing.nodeNode": String(n.nodeSep),
671
+ "elk.layered.spacing.nodeNodeBetweenLayers": String(n.rankSep),
672
+ "elk.spacing.edgeNode": "60",
673
+ "elk.layered.spacing.edgeNodeBetweenLayers": "60",
674
+ "elk.spacing.edgeEdge": "25",
675
+ "elk.layered.nodePlacement.strategy": "NETWORK_SIMPLEX",
676
+ "elk.layered.crossingMinimization.strategy": "LAYER_SWEEP"
677
+ },
678
+ children: s,
679
+ edges: c
680
+ }, d = await P.layout(u), f = /* @__PURE__ */ new Map();
681
+ if (d.children) for (let e of d.children) f.set(e.id, {
682
+ x: e.x,
683
+ y: e.y
684
+ });
685
+ return {
686
+ nodes: e.map((e) => ({
687
+ ...e,
688
+ position: f.get(e.id) || e.position,
689
+ targetPosition: j(n.direction),
690
+ sourcePosition: M(n.direction)
691
+ })),
692
+ edges: t
693
+ };
694
+ }
695
+ function L(e, t) {
696
+ let n = 0, r = 0;
697
+ return e.map((e) => {
698
+ let i = N(e);
699
+ r + i > 1200 && r > 0 && (n++, r = 0);
700
+ let a = {
701
+ x: n * (t.nodeWidth + t.nodeSep),
702
+ y: r
703
+ };
704
+ return r += i + 40, {
705
+ ...e,
706
+ position: a,
707
+ sourcePosition: M(t.direction),
708
+ targetPosition: j(t.direction)
709
+ };
710
+ });
711
+ }
712
+ function te(e, t, n = {}) {
713
+ let r = l(() => ({
714
+ ...A,
715
+ ...n
716
+ }), [
717
+ n.direction,
718
+ n.nodeWidth,
719
+ n.nodeSep,
720
+ n.rankSep
721
+ ]), i = l(() => e.length === 0 ? "" : e.map((e) => e.id).sort().join(",") + "|" + t.map((e) => e.id).sort().join(","), [e, t]), a = u(e), o = u(t), s = u(r);
722
+ a.current = e, o.current = t, s.current = r;
723
+ let [f, p] = d("waiting"), [m, h] = d(null), [g, _] = d(""), v = u(0);
724
+ return c(() => {
725
+ if (!i) {
726
+ p("ready"), h(null), _("");
727
+ return;
728
+ }
729
+ let e = ++v.current;
730
+ p("computing"), I(a.current, o.current, s.current).then((t) => {
731
+ e === v.current && (h(t), _(i), p("ready"));
732
+ }).catch(() => {
733
+ e === v.current && (h({
734
+ nodes: L(a.current, s.current),
735
+ edges: o.current
736
+ }), _(i), p("ready"));
737
+ });
738
+ }, [i]), f === "ready" && m && g === i ? {
739
+ nodes: m.nodes,
740
+ edges: m.edges,
741
+ phase: "ready"
742
+ } : {
743
+ nodes: [],
744
+ edges: [],
745
+ phase: f
746
+ };
747
+ }
748
+ //#endregion
749
+ //#region src/client/components/SchemaVisualization/index.tsx
750
+ var R = /* @__PURE__ */ e({
751
+ SchemaVisualization: () => z,
752
+ default: () => z
753
+ }), ne = { cubeNode: C }, re = { relationshipEdge: w };
754
+ function ie({ token: e }) {
755
+ let { useNodesInitialized: t, useReactFlow: n } = _(), r = t(), { fitView: i } = n(), a = u(0);
756
+ return c(() => {
757
+ e === 0 || e === a.current || r && (a.current = e, i({ padding: .1 }));
758
+ }, [
759
+ e,
760
+ r,
761
+ i
762
+ ]), null;
763
+ }
764
+ var ae = [];
765
+ function oe(e) {
766
+ switch (e) {
767
+ case "belongsTo": return "#10b981";
768
+ case "hasOne": return "#3b82f6";
769
+ case "hasMany": return "#f59e0b";
770
+ case "belongsToMany": return "#8b5cf6";
771
+ default: return "#6b7280";
772
+ }
773
+ }
774
+ function z({ className: e = "", onFieldClick: r, highlightedCubes: i, highlightedFields: a, searchTerm: s, height: f = "100%" }) {
775
+ let { ReactFlow: h, Controls: g, MiniMap: v, Background: y, applyNodeChanges: b } = _(), { meta: x, metaLoading: S, metaError: C } = t(), w = i || ae, T = a || ae, [E, D] = d(null), [O, k] = d(s || ""), [A, j] = d(0), [M, N] = d(null), [P, F] = d(null), I = u(null), L = !r, [R, z] = d({}), [B, se] = d(!1), ce = n("search"), le = n("close"), V = s === void 0 ? O : s;
776
+ c(() => {
777
+ try {
778
+ let e = localStorage.getItem("drizzle-cube-erd-node-positions");
779
+ e && z(JSON.parse(e));
780
+ } catch {}
781
+ se(!0);
782
+ }, []);
783
+ let { structuralNodes: H, structuralEdges: U } = l(() => {
784
+ if (!x) return {
785
+ structuralNodes: [],
786
+ structuralEdges: []
787
+ };
788
+ let e = x.cubes.map((e, t) => ({
789
+ id: e.name,
790
+ type: "cubeNode",
791
+ position: {
792
+ x: t % 3 * 400,
793
+ y: Math.floor(t / 3) * 300
794
+ },
795
+ data: { cube: e }
796
+ })), t = [];
797
+ return x.cubes.forEach((e) => {
798
+ e.relationships && e.relationships.forEach((n, r) => {
799
+ n.relationship !== "belongsTo" && t.push({
800
+ id: `${e.name}-${n.targetCube}-${r}`,
801
+ source: e.name,
802
+ target: n.targetCube,
803
+ type: "relationshipEdge",
804
+ data: {
805
+ relationship: n,
806
+ joinFields: n.joinFields || []
807
+ },
808
+ animated: !1,
809
+ style: {
810
+ stroke: oe(n.relationship),
811
+ strokeWidth: 2
812
+ }
813
+ });
814
+ });
815
+ }), {
816
+ structuralNodes: e,
817
+ structuralEdges: t
818
+ };
819
+ }, [x]), W = A > 0 || B && Object.keys(R).length === 0, { nodes: G, edges: K, phase: ue } = te(W ? H : [], W ? U : [], {
820
+ direction: "LR",
821
+ nodeWidth: 340,
822
+ nodeSep: 150,
823
+ rankSep: 350
824
+ }), q = o((e, t) => {
825
+ let n = I.current?.getBoundingClientRect();
826
+ if (!n) return {
827
+ x: e,
828
+ y: t
829
+ };
830
+ let r = e - n.left + 12, i = t - n.top + 12;
831
+ return r + 300 > n.width && (r = e - n.left - 300 - 12), i + 200 > n.height && (i = n.height - 200 - 8), r < 0 && (r = 8), i < 0 && (i = 8), {
832
+ x: r,
833
+ y: i
834
+ };
835
+ }, []), de = o((e, t, n, r) => {
836
+ N((i) => i && i.cubeName === e && i.fieldName === t ? (F(null), null) : (r && F(q(r.x, r.y)), {
837
+ cubeName: e,
838
+ fieldName: t,
839
+ fieldType: n
840
+ }));
841
+ }, [q]), fe = o((e, t) => {
842
+ N((n) => n && n.cubeName === e && n.fieldName === null ? (F(null), null) : (t && F(q(t.x, t.y)), {
843
+ cubeName: e,
844
+ fieldName: null,
845
+ fieldType: "cube"
846
+ }));
847
+ }, [q]), pe = L ? de : r, me = L ? fe : void 0, J = o((e) => ({
848
+ cube: e,
849
+ onFieldClick: pe,
850
+ onCubeClick: me,
851
+ isHighlighted: w.includes(e.name),
852
+ highlightedFields: T,
853
+ searchTerm: V,
854
+ selectedField: L ? M : null
855
+ }), [
856
+ pe,
857
+ me,
858
+ w,
859
+ T,
860
+ V,
861
+ L,
862
+ M
863
+ ]), Y = !W || ue === "ready", X = l(() => !x || !Y || !B ? [] : W && G.length > 0 ? G.map((e) => ({
864
+ ...e,
865
+ data: J(e.data?.cube || x.cubes.find((t) => t.name === e.id))
866
+ })) : H.map((e) => ({
867
+ ...e,
868
+ position: R[e.id] || e.position,
869
+ data: J(e.data?.cube)
870
+ })), [
871
+ x,
872
+ Y,
873
+ B,
874
+ W,
875
+ G,
876
+ H,
877
+ R,
878
+ J
879
+ ]), he = l(() => !x || !Y ? [] : W && K.length > 0 ? K : U, [
880
+ x,
881
+ Y,
882
+ W,
883
+ K,
884
+ U
885
+ ]), [Z, Q] = d([]), [ge, _e] = d([]), $ = u(""), [ve, ye] = d(0);
886
+ c(() => {
887
+ if (X.length === 0) return;
888
+ let e = X.map((e) => `${e.id}:${Math.round(e.position.x)},${Math.round(e.position.y)}`).join("|");
889
+ if (e === $.current) return;
890
+ let t = $.current === "";
891
+ $.current = e, Q(X), _e(he), t && ye((e) => e + 1);
892
+ }, [X, he]);
893
+ let be = u("");
894
+ c(() => {
895
+ let e = M ? `${M.cubeName}.${M.fieldName}` : "", t = `${w.join(",")}|${T.join(",")}|${V}|${String(r)}|${e}`;
896
+ t !== be.current && (be.current = t, !(Z.length === 0 || !x) && Q((e) => e.map((e) => {
897
+ let t = x.cubes.find((t) => t.name === e.id);
898
+ return t ? {
899
+ ...e,
900
+ data: J(t)
901
+ } : e;
902
+ })));
903
+ }, [
904
+ w,
905
+ T,
906
+ V,
907
+ r,
908
+ M,
909
+ Z.length,
910
+ x,
911
+ J
912
+ ]);
913
+ let xe = o((e) => {
914
+ Q((t) => b(e, t)), e.filter((e) => e.type === "position" && "dragging" in e && e.dragging === !1).length > 0 && Q((e) => {
915
+ let t = {};
916
+ e.forEach((e) => {
917
+ e.position && (t[e.id] = e.position);
918
+ });
919
+ try {
920
+ localStorage.setItem("drizzle-cube-erd-node-positions", JSON.stringify(t));
921
+ } catch {}
922
+ return z(t), e;
923
+ });
924
+ }, []), Se = o((e) => {}, []), Ce = o((e) => {
925
+ e.preventDefault(), e.stopPropagation(), D({
926
+ x: e.clientX,
927
+ y: e.clientY
928
+ });
929
+ }, []), we = o(() => {
930
+ E && D(null), M && (N(null), F(null));
931
+ }, [E, M]), Te = o(() => {
932
+ z({}), $.current = "";
933
+ try {
934
+ localStorage.removeItem("drizzle-cube-erd-node-positions");
935
+ } catch {}
936
+ j((e) => e + 1), D(null);
937
+ }, []);
938
+ return S ? /* @__PURE__ */ p("div", {
939
+ className: `dc:flex dc:items-center dc:justify-center dc:h-96 ${e}`,
940
+ children: /* @__PURE__ */ m("div", {
941
+ className: "dc:text-center",
942
+ children: [/* @__PURE__ */ p("div", { className: "dc:animate-spin dc:rounded-full dc:h-8 dc:w-8 dc:border-b-2 border-dc-accent dc:mx-auto dc:mb-2" }), /* @__PURE__ */ p("p", {
943
+ className: "text-dc-text-muted",
944
+ children: "Loading cube schema..."
945
+ })]
946
+ })
947
+ }) : C ? /* @__PURE__ */ p("div", {
948
+ className: `dc:flex dc:items-center dc:justify-center dc:h-96 ${e}`,
949
+ children: /* @__PURE__ */ m("div", {
950
+ className: "dc:text-center text-dc-error",
951
+ children: [/* @__PURE__ */ p("p", {
952
+ className: "dc:font-medium",
953
+ children: "Failed to load cube schema"
954
+ }), /* @__PURE__ */ p("p", {
955
+ className: "dc:text-sm dc:mt-1",
956
+ children: C
957
+ })]
958
+ })
959
+ }) : !x || x.cubes.length === 0 ? /* @__PURE__ */ p("div", {
960
+ className: `dc:flex dc:items-center dc:justify-center dc:h-96 ${e}`,
961
+ children: /* @__PURE__ */ m("div", {
962
+ className: "dc:text-center text-dc-text-muted",
963
+ children: [/* @__PURE__ */ p("p", {
964
+ className: "dc:font-medium",
965
+ children: "No cubes found"
966
+ }), /* @__PURE__ */ p("p", {
967
+ className: "dc:text-sm dc:mt-1",
968
+ children: "Register some cubes to see the relationship diagram"
969
+ })]
970
+ })
971
+ }) : Y ? /* @__PURE__ */ m("div", {
972
+ className: `dc:flex dc:flex-col ${e}`,
973
+ style: {
974
+ height: f,
975
+ minHeight: 400
976
+ },
977
+ children: [
978
+ s === void 0 && /* @__PURE__ */ m("div", {
979
+ className: "dc:px-3 dc:py-2 dc:border-b border-dc-border bg-dc-surface dc:flex dc:items-center dc:gap-2 dc:flex-shrink-0",
980
+ children: [
981
+ /* @__PURE__ */ p(ce, { className: "dc:w-4 dc:h-4 text-dc-text-muted" }),
982
+ /* @__PURE__ */ p("input", {
983
+ type: "text",
984
+ value: O,
985
+ onChange: (e) => k(e.target.value),
986
+ placeholder: "Search cubes and fields...",
987
+ className: "dc:flex-1 dc:text-sm dc:bg-transparent dc:outline-none text-dc-text dc:placeholder:text-dc-text-muted"
988
+ }),
989
+ O && /* @__PURE__ */ p("button", {
990
+ onClick: () => k(""),
991
+ className: "text-dc-text-muted dc:hover:text-dc-text",
992
+ children: /* @__PURE__ */ p(le, { className: "dc:w-3 dc:h-3" })
993
+ })
994
+ ]
995
+ }),
996
+ /* @__PURE__ */ m("div", {
997
+ ref: I,
998
+ className: "dc:relative dc:flex-1 dc:min-h-0",
999
+ children: [/* @__PURE__ */ p("div", {
1000
+ style: {
1001
+ position: "absolute",
1002
+ inset: 0
1003
+ },
1004
+ children: /* @__PURE__ */ m(h, {
1005
+ nodes: Z,
1006
+ edges: ge,
1007
+ onNodesChange: xe,
1008
+ onEdgesChange: Se,
1009
+ nodeTypes: ne,
1010
+ edgeTypes: re,
1011
+ connectionMode: "loose",
1012
+ minZoom: .1,
1013
+ maxZoom: 2,
1014
+ proOptions: { hideAttribution: !0 },
1015
+ onPaneContextMenu: Ce,
1016
+ onPaneClick: we,
1017
+ children: [
1018
+ /* @__PURE__ */ p(g, {}),
1019
+ /* @__PURE__ */ p(v, {
1020
+ nodeColor: (e) => w.includes(e.id) ? "#8b5cf6" : "#e5e7eb",
1021
+ maskColor: "rgb(240, 242, 246, 0.7)"
1022
+ }),
1023
+ /* @__PURE__ */ p(y, {
1024
+ variant: "dots",
1025
+ gap: 12,
1026
+ size: 1
1027
+ }),
1028
+ /* @__PURE__ */ p(ie, { token: ve })
1029
+ ]
1030
+ })
1031
+ }), L && M && P && x && /* @__PURE__ */ p("div", {
1032
+ className: "dc:absolute dc:z-20",
1033
+ style: {
1034
+ left: P.x,
1035
+ top: P.y
1036
+ },
1037
+ children: /* @__PURE__ */ p(ee, {
1038
+ selection: M,
1039
+ meta: x,
1040
+ onClose: () => {
1041
+ N(null), F(null);
1042
+ }
1043
+ })
1044
+ })]
1045
+ }),
1046
+ E && /* @__PURE__ */ p("div", {
1047
+ className: "dc:fixed dc:z-50 bg-dc-surface dc:rounded-md dc:shadow-lg dc:border border-dc-border dc:py-1 dc:min-w-[120px]",
1048
+ style: {
1049
+ left: E.x,
1050
+ top: E.y
1051
+ },
1052
+ children: /* @__PURE__ */ p("button", {
1053
+ onClick: Te,
1054
+ className: "dc:w-full dc:px-3 dc:py-2 dc:text-sm text-dc-text-secondary dc:hover:bg-dc-surface-hover dc:text-left",
1055
+ children: "Auto Layout"
1056
+ })
1057
+ })
1058
+ ]
1059
+ }) : /* @__PURE__ */ p("div", {
1060
+ className: `dc:flex dc:items-center dc:justify-center dc:h-96 ${e}`,
1061
+ children: /* @__PURE__ */ m("div", {
1062
+ className: "dc:text-center",
1063
+ children: [/* @__PURE__ */ p("div", { className: "dc:animate-spin dc:rounded-full dc:h-8 dc:w-8 dc:border-b-2 border-dc-accent dc:mx-auto dc:mb-2" }), /* @__PURE__ */ p("p", {
1064
+ className: "text-dc-text-muted",
1065
+ children: "Computing layout..."
1066
+ })]
1067
+ })
1068
+ });
1069
+ }
1070
+ //#endregion
1071
+ export { S as n, R as t };
1072
+
1073
+ //# sourceMappingURL=schema-visualization-ZugB4Io9.js.map