@trilogy-data/trilogy-studio-components 0.1.13 → 0.1.14

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 (294) hide show
  1. package/dist/{ChatCreatorModal-CGYVd4b5.js → ChatCreatorModal-D-CByWEF.js} +12 -12
  2. package/dist/{Dashboard-BzU5l0J1.js → Dashboard-CCWjUVBq.js} +347 -348
  3. package/dist/{DashboardCreatorInline-szUAhl3C.js → DashboardCreatorInline-DRlxDEBN.js} +1 -1
  4. package/dist/{DashboardMobile-cUHQPGAT.js → DashboardMobile-GOPaxc9_.js} +104 -103
  5. package/dist/{LLMConnectionList-egIna8uh.js → LLMConnectionList-ByLjIXLO.js} +1168 -1213
  6. package/dist/{LLMView-BXlHVvci.js → LLMView-B7XLbzBx.js} +53 -51
  7. package/dist/Manager-B2wTf-lw.js +4 -0
  8. package/dist/{ResultComponent-Dqzd51fk.js → ResultComponent-BKuWOt_p.js} +37 -34
  9. package/dist/Sidebar-CMy9ptnW.js +2188 -0
  10. package/dist/TutorialPage-9YzXa97t.js +509 -0
  11. package/dist/{WelcomePage-CKUubkCt.js → WelcomePage-BMcBpSQ7.js} +4 -4
  12. package/dist/components/AssetAutoImporter.vue.d.ts.map +1 -1
  13. package/dist/components/ChartControlPanel.vue.d.ts.map +1 -1
  14. package/dist/components/CodeBlock.vue.d.ts.map +1 -1
  15. package/dist/components/ConfirmDialog.vue.d.ts +25 -0
  16. package/dist/components/ConfirmDialog.vue.d.ts.map +1 -0
  17. package/dist/components/ContextMenu.vue.d.ts +4 -2
  18. package/dist/components/ContextMenu.vue.d.ts.map +1 -1
  19. package/dist/components/DataTable.vue.d.ts +9 -0
  20. package/dist/components/DataTable.vue.d.ts.map +1 -1
  21. package/dist/components/EditableTitle.vue.d.ts.map +1 -1
  22. package/dist/components/HintComponent.vue.d.ts +1 -1
  23. package/dist/components/HintComponent.vue.d.ts.map +1 -1
  24. package/dist/components/LoadingButton.vue.d.ts.map +1 -1
  25. package/dist/components/MarkdownRenderer.vue.d.ts +1 -0
  26. package/dist/components/MarkdownRenderer.vue.d.ts.map +1 -1
  27. package/dist/components/ModalDialog.vue.d.ts +36 -0
  28. package/dist/components/ModalDialog.vue.d.ts.map +1 -0
  29. package/dist/components/PopupModal.vue.d.ts.map +1 -1
  30. package/dist/components/SimpleEditor.vue.d.ts +117 -0
  31. package/dist/components/SimpleEditor.vue.d.ts.map +1 -1
  32. package/dist/components/StatusIcon.vue.d.ts +3 -3
  33. package/dist/components/StatusIcon.vue.d.ts.map +1 -1
  34. package/dist/components/StoreTokenModal.vue.d.ts +18 -0
  35. package/dist/components/StoreTokenModal.vue.d.ts.map +1 -0
  36. package/dist/components/SymbolsPane.vue.d.ts.map +1 -1
  37. package/dist/components/VegaLiteChart.vue.d.ts.map +1 -1
  38. package/dist/components/chartRenderManager.d.ts +2 -0
  39. package/dist/components/chartRenderManager.d.ts.map +1 -1
  40. package/dist/components/community/AddStoreModal.vue.d.ts +46 -1
  41. package/dist/components/community/AddStoreModal.vue.d.ts.map +1 -1
  42. package/dist/components/community/CommunityModelCard.vue.d.ts +3 -3
  43. package/dist/components/community/CommunityModelCard.vue.d.ts.map +1 -1
  44. package/dist/components/community/CommunityModelHeader.vue.d.ts +7 -4
  45. package/dist/components/community/CommunityModelHeader.vue.d.ts.map +1 -1
  46. package/dist/components/community/CommunityModels.vue.d.ts +4 -4
  47. package/dist/components/community/CommunityModels.vue.d.ts.map +1 -1
  48. package/dist/components/community/CommunityRemote.vue.d.ts.map +1 -1
  49. package/dist/components/connection/ConnectionDatabase.vue.d.ts.map +1 -1
  50. package/dist/components/connection/ConnectionSchema.vue.d.ts.map +1 -1
  51. package/dist/components/connection/ConnectionTable.vue.d.ts +9 -0
  52. package/dist/components/connection/ConnectionTable.vue.d.ts.map +1 -1
  53. package/dist/components/dashboard/Dashboard.vue.d.ts +4 -4
  54. package/dist/components/dashboard/Dashboard.vue.d.ts.map +1 -1
  55. package/dist/components/dashboard/DashboardAddItemModal.vue.d.ts +4 -4
  56. package/dist/components/dashboard/DashboardAddItemModal.vue.d.ts.map +1 -1
  57. package/dist/components/dashboard/DashboardCTA.vue.d.ts +4 -4
  58. package/dist/components/dashboard/DashboardCTA.vue.d.ts.map +1 -1
  59. package/dist/components/dashboard/DashboardChart.vue.d.ts +1 -1
  60. package/dist/components/dashboard/DashboardChart.vue.d.ts.map +1 -1
  61. package/dist/components/dashboard/DashboardChartEditor.vue.d.ts +234 -2
  62. package/dist/components/dashboard/DashboardChartEditor.vue.d.ts.map +1 -1
  63. package/dist/components/dashboard/DashboardDataSelector.vue.d.ts.map +1 -1
  64. package/dist/components/dashboard/DashboardEditorDialog.vue.d.ts +42 -0
  65. package/dist/components/dashboard/DashboardEditorDialog.vue.d.ts.map +1 -0
  66. package/dist/components/dashboard/DashboardFilter.vue.d.ts +0 -1
  67. package/dist/components/dashboard/DashboardFilter.vue.d.ts.map +1 -1
  68. package/dist/components/dashboard/DashboardFilterAutocomplete.vue.d.ts.map +1 -1
  69. package/dist/components/dashboard/DashboardGridItem.vue.d.ts +4 -4
  70. package/dist/components/dashboard/DashboardGridItem.vue.d.ts.map +1 -1
  71. package/dist/components/dashboard/DashboardHeader.vue.d.ts.map +1 -1
  72. package/dist/components/dashboard/DashboardHeaderFilterInput.vue.d.ts +1 -0
  73. package/dist/components/dashboard/DashboardHeaderFilterInput.vue.d.ts.map +1 -1
  74. package/dist/components/dashboard/DashboardImportPopup.vue.d.ts +5 -7
  75. package/dist/components/dashboard/DashboardImportPopup.vue.d.ts.map +1 -1
  76. package/dist/components/dashboard/DashboardImportSelector.vue.d.ts +4 -1
  77. package/dist/components/dashboard/DashboardImportSelector.vue.d.ts.map +1 -1
  78. package/dist/components/dashboard/DashboardMarkdown.vue.d.ts +1 -20
  79. package/dist/components/dashboard/DashboardMarkdown.vue.d.ts.map +1 -1
  80. package/dist/components/dashboard/DashboardMarkdownEditor.vue.d.ts +234 -1
  81. package/dist/components/dashboard/DashboardMarkdownEditor.vue.d.ts.map +1 -1
  82. package/dist/components/dashboard/DashboardMobile.vue.d.ts +3 -3
  83. package/dist/components/dashboard/DashboardMobile.vue.d.ts.map +1 -1
  84. package/dist/components/dashboard/DashboardSharePopup.vue.d.ts +5 -7
  85. package/dist/components/dashboard/DashboardSharePopup.vue.d.ts.map +1 -1
  86. package/dist/components/dashboard/DashboardTable.vue.d.ts +9 -1
  87. package/dist/components/dashboard/DashboardTable.vue.d.ts.map +1 -1
  88. package/dist/components/dashboard/useDashboard.d.ts.map +1 -1
  89. package/dist/components/dashboard/useDashboardItemShell.d.ts +28 -0
  90. package/dist/components/dashboard/useDashboardItemShell.d.ts.map +1 -0
  91. package/dist/components/editor/Editor.vue.d.ts +20 -6
  92. package/dist/components/editor/Editor.vue.d.ts.map +1 -1
  93. package/dist/components/editor/EditorCreatorInline.vue.d.ts.map +1 -1
  94. package/dist/components/editor/EditorHeader.vue.d.ts +10 -3
  95. package/dist/components/editor/EditorHeader.vue.d.ts.map +1 -1
  96. package/dist/components/editor/ResultComponent.vue.d.ts +75 -181
  97. package/dist/components/editor/ResultComponent.vue.d.ts.map +1 -1
  98. package/dist/components/editor/Results.vue.d.ts +9 -0
  99. package/dist/components/editor/Results.vue.d.ts.map +1 -1
  100. package/dist/components/editor/editorHelpers.d.ts +1 -1
  101. package/dist/components/editor/editorHelpers.d.ts.map +1 -1
  102. package/dist/components/jobs/JobsAddStoreModal.vue.d.ts +14 -0
  103. package/dist/components/jobs/JobsAddStoreModal.vue.d.ts.map +1 -0
  104. package/dist/components/jobs/JobsView.vue.d.ts +6 -0
  105. package/dist/components/jobs/JobsView.vue.d.ts.map +1 -0
  106. package/dist/components/layout/MobileSidebarLayout.vue.d.ts.map +1 -1
  107. package/dist/components/layout/SidebarLayout.vue.d.ts.map +1 -1
  108. package/dist/components/layout/TabbedBrowser.vue.d.ts +1 -12
  109. package/dist/components/layout/TabbedBrowser.vue.d.ts.map +1 -1
  110. package/dist/components/layout/TabbedLayout.vue.d.ts.map +1 -1
  111. package/dist/components/llm/ArtifactsPane.vue.d.ts +11 -2
  112. package/dist/components/llm/ArtifactsPane.vue.d.ts.map +1 -1
  113. package/dist/components/llm/ChatArtifact.vue.d.ts +10 -0
  114. package/dist/components/llm/ChatArtifact.vue.d.ts.map +1 -1
  115. package/dist/components/llm/ChatCreatorModal.vue.d.ts +1 -9
  116. package/dist/components/llm/ChatCreatorModal.vue.d.ts.map +1 -1
  117. package/dist/components/llm/LLMChat.vue.d.ts +9 -36
  118. package/dist/components/llm/LLMChat.vue.d.ts.map +1 -1
  119. package/dist/components/llm/LLMChatSplitView.vue.d.ts +55 -185
  120. package/dist/components/llm/LLMChatSplitView.vue.d.ts.map +1 -1
  121. package/dist/components/llm/LLMEditorRefinement.vue.d.ts +47 -180
  122. package/dist/components/llm/LLMEditorRefinement.vue.d.ts.map +1 -1
  123. package/dist/components/llm/toolCallDisplay.d.ts +13 -0
  124. package/dist/components/llm/toolCallDisplay.d.ts.map +1 -0
  125. package/dist/components/model/ModelCard.vue.d.ts +22 -5
  126. package/dist/components/model/ModelCard.vue.d.ts.map +1 -1
  127. package/dist/components/model/ModelConcept.vue.d.ts.map +1 -1
  128. package/dist/components/model/ModelCreator.vue.d.ts +3 -0
  129. package/dist/components/model/ModelCreator.vue.d.ts.map +1 -1
  130. package/dist/components/model/ModelSelector.vue.d.ts.map +1 -1
  131. package/dist/components/sidebar/CommunityModelList.vue.d.ts +284 -0
  132. package/dist/components/sidebar/CommunityModelList.vue.d.ts.map +1 -0
  133. package/dist/components/sidebar/CommunityModelListItem.vue.d.ts +7 -7
  134. package/dist/components/sidebar/CommunityModelListItem.vue.d.ts.map +1 -1
  135. package/dist/components/sidebar/ConnectionCreatorInline.vue.d.ts.map +1 -1
  136. package/dist/components/sidebar/ConnectionIcon.vue.d.ts.map +1 -1
  137. package/dist/components/sidebar/ConnectionList.vue.d.ts +21 -71
  138. package/dist/components/sidebar/ConnectionList.vue.d.ts.map +1 -1
  139. package/dist/components/sidebar/ConnectionListItem.vue.d.ts +15 -61
  140. package/dist/components/sidebar/ConnectionListItem.vue.d.ts.map +1 -1
  141. package/dist/components/sidebar/ConnectionRefresh.vue.d.ts.map +1 -1
  142. package/dist/components/sidebar/CreateEditorFromDatasourcePopup.vue.d.ts.map +1 -1
  143. package/dist/components/sidebar/DashboardList.vue.d.ts +33 -75
  144. package/dist/components/sidebar/DashboardList.vue.d.ts.map +1 -1
  145. package/dist/components/sidebar/DashboardListItem.vue.d.ts +13 -59
  146. package/dist/components/sidebar/DashboardListItem.vue.d.ts.map +1 -1
  147. package/dist/components/sidebar/DuckDBImporter.vue.d.ts +1 -0
  148. package/dist/components/sidebar/DuckDBImporter.vue.d.ts.map +1 -1
  149. package/dist/components/sidebar/EditorList.vue.d.ts +190 -67
  150. package/dist/components/sidebar/EditorList.vue.d.ts.map +1 -1
  151. package/dist/components/sidebar/EditorListItem.vue.d.ts +16 -59
  152. package/dist/components/sidebar/EditorListItem.vue.d.ts.map +1 -1
  153. package/dist/components/sidebar/GenericSidebarItem.vue.d.ts.map +1 -1
  154. package/dist/components/sidebar/JobsList.vue.d.ts +12 -0
  155. package/dist/components/sidebar/JobsList.vue.d.ts.map +1 -0
  156. package/dist/components/sidebar/JobsListItem.vue.d.ts +25 -0
  157. package/dist/components/sidebar/JobsListItem.vue.d.ts.map +1 -0
  158. package/dist/components/sidebar/LLMConnectionCreator.vue.d.ts.map +1 -1
  159. package/dist/components/sidebar/LLMConnectionList.vue.d.ts +14 -356
  160. package/dist/components/sidebar/LLMConnectionList.vue.d.ts.map +1 -1
  161. package/dist/components/sidebar/LLMConnectionListItem.vue.d.ts +15 -190
  162. package/dist/components/sidebar/LLMConnectionListItem.vue.d.ts.map +1 -1
  163. package/dist/components/sidebar/ModelSidebar.vue.d.ts +15 -0
  164. package/dist/components/sidebar/ModelSidebar.vue.d.ts.map +1 -1
  165. package/dist/components/sidebar/Sidebar.vue.d.ts +3966 -0
  166. package/dist/components/sidebar/Sidebar.vue.d.ts.map +1 -0
  167. package/dist/components/sidebar/SidebarList.vue.d.ts.map +1 -1
  168. package/dist/components/sidebar/SidebarOverflowMenu.vue.d.ts +19 -0
  169. package/dist/components/sidebar/SidebarOverflowMenu.vue.d.ts.map +1 -0
  170. package/dist/components/sidebar/SidebarTagChip.vue.d.ts +6 -0
  171. package/dist/components/sidebar/SidebarTagChip.vue.d.ts.map +1 -0
  172. package/dist/components/tutorial/TutorialPrompt.vue.d.ts +97 -186
  173. package/dist/components/tutorial/TutorialPrompt.vue.d.ts.map +1 -1
  174. package/dist/components/useConfirmationState.d.ts +10 -0
  175. package/dist/components/useConfirmationState.d.ts.map +1 -0
  176. package/dist/composables/useClickOutside.d.ts +12 -0
  177. package/dist/composables/useClickOutside.d.ts.map +1 -0
  178. package/dist/connections/index.d.ts +1 -0
  179. package/dist/connections/index.d.ts.map +1 -1
  180. package/dist/connections/remoteProject.d.ts +23 -0
  181. package/dist/connections/remoteProject.d.ts.map +1 -0
  182. package/dist/{cssMode-CTNpWCFn.js → cssMode-Cfy3yIk-.js} +1 -1
  183. package/dist/dashboards/base.d.ts +2 -1
  184. package/dist/dashboards/base.d.ts.map +1 -1
  185. package/dist/dashboards/prompts.d.ts +1 -1
  186. package/dist/dashboards/prompts.d.ts.map +1 -1
  187. package/dist/dashboards/spec.d.ts +4 -0
  188. package/dist/dashboards/spec.d.ts.map +1 -1
  189. package/dist/data/index.d.ts +1 -0
  190. package/dist/data/index.d.ts.map +1 -1
  191. package/dist/data/localStorage.d.ts +3 -3
  192. package/dist/data/localStorage.d.ts.map +1 -1
  193. package/dist/data/remoteStoreStorage.d.ts +46 -0
  194. package/dist/data/remoteStoreStorage.d.ts.map +1 -0
  195. package/dist/data/storage.d.ts +6 -6
  196. package/dist/data/storage.d.ts.map +1 -1
  197. package/dist/data/tutorial/reference.d.ts.map +1 -1
  198. package/dist/editors/editor.d.ts +19 -5
  199. package/dist/editors/editor.d.ts.map +1 -1
  200. package/dist/editors/fileTypes.d.ts +12 -0
  201. package/dist/editors/fileTypes.d.ts.map +1 -0
  202. package/dist/editors/helpers.d.ts +2 -0
  203. package/dist/editors/helpers.d.ts.map +1 -1
  204. package/dist/{freemarker2-Cc0GWdmq.js → freemarker2-Dy8u-XQv.js} +1 -1
  205. package/dist/{handlebars-BpAJzwKQ.js → handlebars-BDrD8h_c.js} +1 -1
  206. package/dist/{html-C4cOr6Q2.js → html-CKz7V4Cn.js} +1 -1
  207. package/dist/{htmlMode-4GTCH2de.js → htmlMode-BZE5C9QD.js} +1 -1
  208. package/dist/{javascript-eCxY6C4t.js → javascript-Cav2mApM.js} +1 -1
  209. package/dist/{jsonMode-P2zF1eXm.js → jsonMode-B6434NZu.js} +1 -1
  210. package/dist/{liquid-CHf82yU1.js → liquid-Cq-Omf5B.js} +1 -1
  211. package/dist/llm/chatToolExecutor.d.ts.map +1 -1
  212. package/dist/llm/editorRefinementToolExecutor.d.ts.map +1 -1
  213. package/dist/llm/toolLoopCore.d.ts.map +1 -1
  214. package/dist/{main-B49yDSSL.js → main-C-6acy1R.js} +57734 -55586
  215. package/dist/main.css +1 -1
  216. package/dist/main.js +16 -16
  217. package/dist/main.umd.cjs +580 -559
  218. package/dist/{mdx-DhkaMLCX.js → mdx-DYvw7-lF.js} +1 -1
  219. package/dist/models/helpers.d.ts +16 -4
  220. package/dist/models/helpers.d.ts.map +1 -1
  221. package/dist/models/model.d.ts +1 -0
  222. package/dist/models/model.d.ts.map +1 -1
  223. package/dist/monaco/editorHelpers.d.ts.map +1 -1
  224. package/dist/prism-clike-SH1s-yiH.js +31 -0
  225. package/dist/prism-javascript-CLux6jF8.js +137 -0
  226. package/dist/prism-json-iVb7He6L.js +25 -0
  227. package/dist/prism-markdown-tjNeCMi3.js +300 -0
  228. package/dist/prism-markup-BNGj0Tvm.js +173 -0
  229. package/dist/prism-python-DBk-6kcY.js +71 -0
  230. package/dist/prism-typescript-Crma_dEX.js +55 -0
  231. package/dist/{python-BPlpgFwf.js → python-BTTSwl4o.js} +1 -1
  232. package/dist/{razor-Bw_qWSSk.js → razor-BVBhJqGl.js} +1 -1
  233. package/dist/remotes/genericStoreMetadata.d.ts +8 -0
  234. package/dist/remotes/genericStoreMetadata.d.ts.map +1 -0
  235. package/dist/remotes/jobs.d.ts +38 -0
  236. package/dist/remotes/jobs.d.ts.map +1 -0
  237. package/dist/remotes/jobsService.d.ts +15 -0
  238. package/dist/remotes/jobsService.d.ts.map +1 -0
  239. package/dist/remotes/models.d.ts +2 -1
  240. package/dist/remotes/models.d.ts.map +1 -1
  241. package/dist/remotes/remoteStoreSync.d.ts +7 -0
  242. package/dist/remotes/remoteStoreSync.d.ts.map +1 -0
  243. package/dist/remotes/storeService.d.ts +2 -1
  244. package/dist/remotes/storeService.d.ts.map +1 -1
  245. package/dist/stores/Manager.vue.d.ts +9 -0
  246. package/dist/stores/Manager.vue.d.ts.map +1 -1
  247. package/dist/stores/communityApiStore.d.ts +6 -0
  248. package/dist/stores/communityApiStore.d.ts.map +1 -1
  249. package/dist/stores/editorStore.d.ts +7 -2
  250. package/dist/stores/editorStore.d.ts.map +1 -1
  251. package/dist/stores/index.d.ts +1 -0
  252. package/dist/stores/index.d.ts.map +1 -1
  253. package/dist/stores/jobsApiStore.d.ts +45 -0
  254. package/dist/stores/jobsApiStore.d.ts.map +1 -0
  255. package/dist/stores/modelStore.d.ts.map +1 -1
  256. package/dist/stores/queryExecutionService.d.ts +6 -4
  257. package/dist/stores/queryExecutionService.d.ts.map +1 -1
  258. package/dist/stores/resolver.d.ts +4 -4
  259. package/dist/stores/resolver.d.ts.map +1 -1
  260. package/dist/stores/useScreenNavigation.d.ts +3 -1
  261. package/dist/stores/useScreenNavigation.d.ts.map +1 -1
  262. package/dist/stores/userSettingsStore.d.ts.map +1 -1
  263. package/dist/{tsMode-B4G-3v3r.js → tsMode-z99lZ8eT.js} +1 -1
  264. package/dist/{typescript-CxjsldWX.js → typescript-BXQnMlGm.js} +1 -1
  265. package/dist/useDashboard-3deVRse_.js +3502 -0
  266. package/dist/utility/markdownRenderer.d.ts.map +1 -1
  267. package/dist/utility/prism.d.ts +5 -0
  268. package/dist/utility/prism.d.ts.map +1 -0
  269. package/dist/utils/terminalOutput.d.ts +3 -0
  270. package/dist/utils/terminalOutput.d.ts.map +1 -0
  271. package/dist/views/ConnectionView.vue.d.ts +9 -0
  272. package/dist/views/ConnectionView.vue.d.ts.map +1 -1
  273. package/dist/views/IDE.vue.d.ts +7 -0
  274. package/dist/views/IDE.vue.d.ts.map +1 -0
  275. package/dist/views/LLMView.vue.d.ts +232 -846
  276. package/dist/views/LLMView.vue.d.ts.map +1 -1
  277. package/dist/views/MobileIDE.vue.d.ts +6 -0
  278. package/dist/views/MobileIDE.vue.d.ts.map +1 -0
  279. package/dist/views/ModelView.vue.d.ts +46 -10
  280. package/dist/views/ModelView.vue.d.ts.map +1 -1
  281. package/dist/views/ResponsiveIDE.vue.d.ts.map +1 -1
  282. package/dist/views/TutorialPage.vue.d.ts +465 -907
  283. package/dist/views/TutorialPage.vue.d.ts.map +1 -1
  284. package/dist/{xml-DWqiAUCc.js → xml-Ci-UOFva.js} +1 -1
  285. package/dist/{yaml-BfqSAZW1.js → yaml-XEOisXAU.js} +1 -1
  286. package/package.json +1 -1
  287. package/dist/Manager-CWERTb_Q.js +0 -4
  288. package/dist/Sidebar-DNAHF4lz.js +0 -1862
  289. package/dist/TutorialPage-CqGb6CEf.js +0 -482
  290. package/dist/components/dashboard/DashboardCreatorIcon.vue.d.ts +0 -52
  291. package/dist/components/dashboard/DashboardCreatorIcon.vue.d.ts.map +0 -1
  292. package/dist/components/editor/EditorCreatorIcon.vue.d.ts +0 -61
  293. package/dist/components/editor/EditorCreatorIcon.vue.d.ts.map +0 -1
  294. package/dist/useDashboard-BrcAKpuC.js +0 -3352
@@ -1,1862 +0,0 @@
1
- import { inject as A, ref as S, onMounted as x, computed as G, resolveComponent as D, createBlock as L, openBlock as r, withCtx as k, createElementBlock as h, Fragment as V, renderList as J, createElementVNode as o, createCommentVNode as g, createVNode as N, normalizeClass as U, toDisplayString as K, createTextVNode as H, defineComponent as X, withDirectives as T, vModelText as P, unref as ie, vModelSelect as te, withModifiers as _, watch as le, normalizeStyle as de, vShow as W } from "vue";
2
- import { S as Y, e as Z, g as B, K as E, a as F, T as Q, L as oe, f as re, u as ne, t as ce, D as ue, h as se, i as ae, j as me, d as ve, k as pe } from "./main-B49yDSSL.js";
3
- import { d as ee, a as be, L as he, C as ye } from "./LLMConnectionList-egIna8uh.js";
4
- import { D as fe } from "./DashboardCreatorInline-szUAhl3C.js";
5
- const ge = {
6
- name: "DocumentationSidebar",
7
- props: {
8
- activeDocumentationKey: {
9
- type: String,
10
- default: "",
11
- optional: !0
12
- }
13
- },
14
- setup(e) {
15
- if (!A("editorStore"))
16
- throw new Error("Editor store is not provided!");
17
- const s = B("documentationKey") || "", n = S({});
18
- return x(() => {
19
- const c = s.split(E)[1];
20
- let u = `documentation${E}${c}`;
21
- ee.forEach((a) => {
22
- const m = `documentation${E}${a.title}`;
23
- n.value[m] = !u.startsWith(m);
24
- });
25
- }), {
26
- documentationNodes: G(() => {
27
- const p = [];
28
- return ee.forEach((c) => {
29
- const u = `documentation${E}${c.title}`;
30
- p.push({
31
- id: u,
32
- name: c.title,
33
- indent: 0,
34
- count: c.articles.length,
35
- type: "documentation"
36
- }), n.value[u] || c.articles.forEach((a) => {
37
- p.push({
38
- id: `article${E}${c.title}${E}${a.title}`,
39
- name: a.displayName || a.title,
40
- indent: 1,
41
- count: a.paragraphs.length,
42
- type: "article"
43
- });
44
- });
45
- }), p;
46
- }),
47
- toggleCollapse: (p) => {
48
- n.value[p] = !n.value[p];
49
- },
50
- collapsed: n,
51
- isActiveNode: (p) => p === e.activeDocumentationKey
52
- };
53
- },
54
- methods: {
55
- handleClick(e) {
56
- this.$emit("documentation-key-selected", e);
57
- }
58
- },
59
- components: {
60
- SidebarList: Z,
61
- SidebarItem: Y
62
- }
63
- };
64
- function Se(e, t, s, n, v, b) {
65
- const d = D("sidebar-item"), p = D("sidebar-list");
66
- return r(), L(p, { title: "Documentation" }, {
67
- actions: k(() => [...t[0] || (t[0] = [])]),
68
- default: k(() => [
69
- (r(!0), h(V, null, J(n.documentationNodes, (c) => (r(), L(d, {
70
- key: c.id,
71
- "item-id": c.id,
72
- name: c.name,
73
- indent: c.indent,
74
- "is-selected": n.isActiveNode(c.id),
75
- "is-collapsible": c.type === "documentation",
76
- "is-collapsed": n.collapsed[c.id],
77
- icon: c.type === "article" ? "mdi-text-box-outline" : "",
78
- "extra-info": c.type === "documentation" ? c.count : "",
79
- itemType: "documentation",
80
- onClick: b.handleClick,
81
- onToggle: n.toggleCollapse
82
- }, null, 8, ["item-id", "name", "indent", "is-selected", "is-collapsible", "is-collapsed", "icon", "extra-info", "onClick", "onToggle"]))), 128))
83
- ]),
84
- _: 1
85
- });
86
- }
87
- const ke = /* @__PURE__ */ F(ge, [["render", Se], ["__scopeId", "data-v-7d844a72"]]), Ce = {
88
- name: "ModelList",
89
- props: {
90
- activeModelKey: String,
91
- testTag: {
92
- type: String,
93
- default: ""
94
- }
95
- },
96
- setup() {
97
- const e = A("modelStore"), t = A("saveModels"), s = A("editorStore"), n = A("trilogyResolver"), v = ne(), b = S(!1), d = v.activeModelKey.value || B("model") || "", p = d.split(E)[0];
98
- let c = "", u = "", a = d.split(E);
99
- if (p === "model" ? c = a[1] : (p === "source" || p === "datasource" || p === "concept") && (c = a[1], u = a[2]), !e || !t || !s || !n)
100
- throw new Error("Model store is not provided!");
101
- let m = {};
102
- Object.values(e.models).forEach((i) => {
103
- let $ = ["model", i.name].join(E);
104
- i.name !== c && (m[$] = !0), i.sources.forEach((w) => {
105
- let q = ["source", i.name, w.alias].join(E);
106
- (i.name !== c || w.alias !== u) && (m[q] = !0), w.datasources.forEach((R) => {
107
- let I = ["datasource", i.name, w.alias, R.name].join(E);
108
- m[I] = !0;
109
- });
110
- });
111
- });
112
- const f = S(m), j = G(() => {
113
- const i = [];
114
- return Object.values(e.models).sort((w, q) => w.name.localeCompare(q.name)).forEach((w) => {
115
- if (w.deleted) return;
116
- let q = ["model", w.name].join(E);
117
- i.push({
118
- id: q,
119
- name: w.name,
120
- indent: 0,
121
- count: w.sources.length,
122
- type: "model",
123
- concept: null
124
- }), f.value[q] || w.sources.forEach((R) => {
125
- let I = ["source", w.name, R.alias].join(E);
126
- i.push({
127
- id: I,
128
- name: R.alias,
129
- indent: 1,
130
- count: R.concepts.length,
131
- type: "source",
132
- concept: null
133
- }), f.value[I] || (R.concepts.forEach((l) => {
134
- i.push({
135
- id: ["concept", w.name, R.alias, l.namespace, l.name].join(
136
- E
137
- ),
138
- name: l.namespace === "local" ? l.name : l.namespace + "." + l.name,
139
- indent: 2,
140
- count: 0,
141
- type: "concept",
142
- concept: l
143
- });
144
- }), R.datasources.forEach((l) => {
145
- let C = ["datasource", w.name, R.alias, l.name].join(E);
146
- i.push({
147
- id: C,
148
- name: l.name,
149
- indent: 2,
150
- count: l.concepts.length,
151
- type: "datasource",
152
- concept: null
153
- }), f.value[C] || l.concepts.forEach((z) => {
154
- i.push({
155
- id: [
156
- "concept",
157
- w.name,
158
- R.alias,
159
- l.name,
160
- z.namespace,
161
- z.name
162
- ].join(E),
163
- name: z.namespace === "local" ? z.name : z.namespace + "." + z.name,
164
- indent: 3,
165
- count: 0,
166
- type: "concept",
167
- concept: z
168
- });
169
- });
170
- }));
171
- });
172
- }), i;
173
- });
174
- return {
175
- creatorVisible: b,
176
- flatList: j,
177
- collapsed: f,
178
- saveModels: t,
179
- fetchParseResults: (i) => n.resolveModel(
180
- i,
181
- e.models[i].sources.map(($) => ({
182
- alias: $.alias,
183
- contents: (s.editors[$.editor] || { contents: "" }).contents
184
- }))
185
- ).then(($) => {
186
- e.setModelConfigParseResults(i, $);
187
- }).catch(($) => {
188
- e.setModelParseError(i, $.message), console.error("Failed to fetch parse results:", $);
189
- }),
190
- trilogyIcon: ce,
191
- navigationStore: v,
192
- handleClick: (i) => {
193
- const $ = i.lastIndexOf(E), w = $ !== -1 ? i.substring($ + 1) : i;
194
- v.openTab("models", w, i);
195
- },
196
- handleToggle: (i) => {
197
- f.value[i] = !f.value[i];
198
- },
199
- modelStore: e
200
- };
201
- },
202
- components: {
203
- SidebarList: Z,
204
- SidebarItem: Y,
205
- ModelCreator: re,
206
- LoadingButton: oe,
207
- Tooltip: Q
208
- }
209
- }, De = { class: "button-container" }, we = ["data-testid"], Me = ["src"], $e = {
210
- key: 2,
211
- class: "mdi mdi-table node-icon"
212
- }, Ie = { class: "right-container hover-icon" }, Te = ["onClick"];
213
- function Ke(e, t, s, n, v, b) {
214
- const d = D("loading-button"), p = D("model-creator"), c = D("tooltip"), u = D("sidebar-item"), a = D("sidebar-list");
215
- return r(), L(a, { title: "Models" }, {
216
- actions: k(() => [
217
- o("div", De, [
218
- o("button", {
219
- onClick: t[0] || (t[0] = (m) => n.creatorVisible = !n.creatorVisible),
220
- "data-testid": s.testTag ? `model-creator-add-${s.testTag}` : "model-creator-add"
221
- }, K(n.creatorVisible ? "Hide" : "New"), 9, we),
222
- N(d, {
223
- action: n.saveModels,
224
- "key-combination": ["control", "s"]
225
- }, {
226
- default: k(() => [...t[2] || (t[2] = [
227
- H(" Save ", -1)
228
- ])]),
229
- _: 1
230
- }, 8, ["action"])
231
- ]),
232
- N(p, {
233
- visible: n.creatorVisible,
234
- onClose: t[1] || (t[1] = (m) => n.creatorVisible = !n.creatorVisible)
235
- }, null, 8, ["visible"])
236
- ]),
237
- default: k(() => [
238
- (r(!0), h(V, null, J(n.flatList, (m) => (r(), L(u, {
239
- key: m.id,
240
- "item-id": m.id,
241
- name: m.name,
242
- indent: m.indent,
243
- "is-selected": s.activeModelKey === m.id,
244
- "is-collapsible": ["model"].includes(m.type) || ["source", "datasource"].includes(m.type) && m.count > 0,
245
- "is-collapsed": n.collapsed[m.id],
246
- onClick: n.handleClick,
247
- onToggle: n.handleToggle
248
- }, {
249
- icon: k(() => [
250
- m.type === "source" ? (r(), h("img", {
251
- key: 0,
252
- src: n.trilogyIcon,
253
- class: "trilogy-icon"
254
- }, null, 8, Me)) : m.type === "concept" ? (r(), h("span", {
255
- key: 1,
256
- class: U(`purpose-${m.concept.purpose.toLowerCase()}`)
257
- }, K(m.concept.purpose.charAt(0).toUpperCase()), 3)) : m.type === "datasource" ? (r(), h("i", $e)) : g("", !0)
258
- ]),
259
- "extra-content": k(() => [
260
- o("span", Ie, [
261
- m.type === "model" ? (r(), L(c, {
262
- key: 0,
263
- content: "Refresh Model",
264
- position: "left"
265
- }, {
266
- default: k(() => [
267
- N(d, {
268
- action: () => n.fetchParseResults(m.name)
269
- }, {
270
- default: k(() => [...t[3] || (t[3] = [
271
- o("i", { class: "mdi mdi-cog-refresh-outline" }, null, -1)
272
- ])]),
273
- _: 1
274
- }, 8, ["action"])
275
- ]),
276
- _: 2
277
- }, 1024)) : g("", !0),
278
- m.type === "model" ? (r(), L(c, {
279
- key: 1,
280
- content: "Delete Model",
281
- position: "left"
282
- }, {
283
- default: k(() => [
284
- o("i", {
285
- class: "mdi mdi-delete-outline",
286
- onClick: () => n.modelStore.removeModelConfig(m.name)
287
- }, null, 8, Te)
288
- ]),
289
- _: 2
290
- }, 1024)) : g("", !0)
291
- ])
292
- ]),
293
- _: 2
294
- }, 1032, ["item-id", "name", "indent", "is-selected", "is-collapsible", "is-collapsed", "onClick", "onToggle"]))), 128))
295
- ]),
296
- _: 1
297
- });
298
- }
299
- const Le = /* @__PURE__ */ F(Ce, [["render", Ke], ["__scopeId", "data-v-a71c2207"]]), Ee = { class: "popup-header" }, Ne = { class: "popup-body" }, Ae = { class: "import-mode-selector" }, Ve = {
300
- key: 0,
301
- class: "input-group"
302
- }, je = {
303
- key: 0,
304
- class: "error-message"
305
- }, Ue = {
306
- key: 1,
307
- class: "input-group"
308
- }, Pe = { class: "url-input-container" }, Oe = ["disabled"], Re = {
309
- key: 0,
310
- class: "error-message"
311
- }, qe = {
312
- key: 1,
313
- class: "preview-container"
314
- }, Be = { class: "json-preview" }, _e = { class: "connection-selector" }, Fe = { class: "form-row" }, He = ["value"], Je = {
315
- key: 0,
316
- class: "form-row"
317
- }, ze = {
318
- key: 1,
319
- class: "form-row"
320
- }, We = { class: "form-row" }, Ge = { class: "form-row" }, Qe = { class: "form-row" }, Xe = { class: "popup-footer" }, Ye = ["disabled"], Ze = /* @__PURE__ */ X({
321
- __name: "DashboardImportPopup",
322
- props: {
323
- isOpen: { type: Boolean }
324
- },
325
- emits: ["close"],
326
- setup(e, { emit: t }) {
327
- const s = t, n = A("dashboardStore"), v = A("connectionStore"), b = A("saveDashboards"), d = A("saveAll");
328
- if (!n || !v || !b || !d)
329
- throw new Error("Required stores not provided");
330
- const p = S(""), c = S(""), u = S(null), a = S(!1), m = S(""), f = S("paste"), j = S(null), y = S({
331
- mdToken: "",
332
- projectId: "",
333
- username: "",
334
- password: "",
335
- account: "",
336
- sshPrivateKey: ""
337
- }), O = S(!0);
338
- function M() {
339
- if (!c.value) {
340
- O.value = !1;
341
- return;
342
- }
343
- if (c.value === "new-motherduck" && !y.value.mdToken) {
344
- O.value = !1;
345
- return;
346
- }
347
- if (c.value === "new-bigquery-oauth" && !y.value.projectId) {
348
- O.value = !1;
349
- return;
350
- }
351
- if (c.value === "new-snowflake" && (!y.value.username || !y.value.account || !y.value.sshPrivateKey)) {
352
- O.value = !1;
353
- return;
354
- }
355
- O.value = !0;
356
- }
357
- const i = async () => {
358
- if (!m.value) {
359
- j.value = "Please enter a URL", setTimeout(() => {
360
- j.value = null;
361
- }, 3e3);
362
- return;
363
- }
364
- a.value = !0, j.value = null;
365
- try {
366
- const I = await fetch(m.value);
367
- if (!I.ok)
368
- throw new Error(`HTTP error! Status: ${I.status}`);
369
- const l = await I.text();
370
- p.value = l, a.value = !1;
371
- } catch (I) {
372
- console.error("Error fetching dashboard:", I), j.value = `Failed to fetch from URL: ${I instanceof Error ? I.message : "Unknown error"}`, a.value = !1, setTimeout(() => {
373
- j.value = null;
374
- }, 5e3);
375
- }
376
- }, $ = async () => {
377
- try {
378
- const I = ue.fromSerialized(JSON.parse(p.value));
379
- I.storage = "local";
380
- let l = c.value;
381
- if (l.startsWith("new-")) {
382
- let C = l.replace("new-", "");
383
- l = `dashboard-${I.name || "imported"}-connection`, v.connections[l] || v.newConnection(l, C, {
384
- mdToken: y.value.mdToken,
385
- projectId: y.value.projectId,
386
- username: y.value.username,
387
- password: y.value.password,
388
- account: y.value.account,
389
- privateKey: y.value.sshPrivateKey
390
- });
391
- }
392
- I.connection = l, I.id = Math.random().toString(36).substring(2, 15), n.addDashboard(I), w.value = !0, p.value = "", m.value = "", y.value = {
393
- mdToken: "",
394
- projectId: "",
395
- username: "",
396
- password: "",
397
- account: "",
398
- sshPrivateKey: ""
399
- }, await d(), setTimeout(() => {
400
- w.value = !1, s("close");
401
- }, 1500);
402
- } catch {
403
- u.value = "Invalid JSON format", setTimeout(() => {
404
- u.value = null;
405
- }, 3e3);
406
- }
407
- }, w = S(!1), q = S(null), R = (I) => {
408
- q.value && !q.value.contains(I.target) && s("close");
409
- };
410
- return M(), (I, l) => e.isOpen ? (r(), h("div", {
411
- key: 0,
412
- class: "popup-overlay",
413
- onClick: R
414
- }, [
415
- o("div", {
416
- class: "popup-content",
417
- ref_key: "popupContent",
418
- ref: q,
419
- "data-testid": "dashboard-import-popup"
420
- }, [
421
- o("div", Ee, [
422
- l[11] || (l[11] = o("h3", null, "Import Dashboard", -1)),
423
- o("button", {
424
- onClick: l[0] || (l[0] = (C) => s("close")),
425
- class: "close-button",
426
- "data-testid": "close-popup-button"
427
- }, " ✕ ")
428
- ]),
429
- o("div", Ne, [
430
- o("div", Ae, [
431
- o("button", {
432
- class: U(["mode-button", { active: f.value === "paste" }]),
433
- onClick: l[1] || (l[1] = (C) => f.value = "paste"),
434
- "data-testid": "paste-mode-button"
435
- }, " Paste JSON ", 2),
436
- o("button", {
437
- class: U(["mode-button", { active: f.value === "url" }]),
438
- onClick: l[2] || (l[2] = (C) => f.value = "url"),
439
- "data-testid": "url-mode-button"
440
- }, " From URL ", 2)
441
- ]),
442
- f.value === "paste" ? (r(), h("div", Ve, [
443
- l[12] || (l[12] = o("label", { for: "dashboard-json" }, "Paste Dashboard JSON", -1)),
444
- T(o("textarea", {
445
- id: "dashboard-json",
446
- "onUpdate:modelValue": l[3] || (l[3] = (C) => p.value = C),
447
- placeholder: "Paste your dashboard JSON here",
448
- rows: "16",
449
- class: "dashboard-textarea",
450
- "data-testid": "dashboard-json-input"
451
- }, null, 512), [
452
- [P, p.value]
453
- ]),
454
- u.value ? (r(), h("div", je, K(u.value), 1)) : g("", !0)
455
- ])) : g("", !0),
456
- f.value === "url" ? (r(), h("div", Ue, [
457
- l[14] || (l[14] = o("label", { for: "dashboard-url" }, "Dashboard URL", -1)),
458
- o("div", Pe, [
459
- T(o("input", {
460
- type: "text",
461
- id: "dashboard-url",
462
- "onUpdate:modelValue": l[4] || (l[4] = (C) => m.value = C),
463
- placeholder: "https://example.com/dashboard.json",
464
- class: "url-input",
465
- "data-testid": "dashboard-url-input"
466
- }, null, 512), [
467
- [P, m.value]
468
- ]),
469
- o("button", {
470
- onClick: i,
471
- class: "fetch-button",
472
- disabled: a.value,
473
- "data-testid": "fetch-url-button"
474
- }, K(a.value ? "Loading..." : "Fetch"), 9, Oe)
475
- ]),
476
- j.value ? (r(), h("div", Re, K(j.value), 1)) : g("", !0),
477
- p.value && f.value === "url" ? (r(), h("div", qe, [
478
- l[13] || (l[13] = o("label", null, "Dashboard JSON Preview", -1)),
479
- o("div", Be, [
480
- o("pre", null, K(p.value.length > 500 ? p.value.substring(0, 500) + "..." : p.value), 1)
481
- ])
482
- ])) : g("", !0)
483
- ])) : g("", !0)
484
- ]),
485
- o("div", _e, [
486
- o("div", Fe, [
487
- l[20] || (l[20] = o("label", { for: "connection-select" }, "Assign To Connection", -1)),
488
- T(o("select", {
489
- id: "connection-select",
490
- "onUpdate:modelValue": l[5] || (l[5] = (C) => c.value = C),
491
- class: "connection-dropdown",
492
- "data-testid": "connection-select",
493
- onChange: M
494
- }, [
495
- l[15] || (l[15] = o("option", {
496
- value: "",
497
- disabled: ""
498
- }, "-- Select Connection --", -1)),
499
- (r(!0), h(V, null, J(ie(v).connections, (C) => (r(), h("option", {
500
- key: C.name,
501
- value: C.name
502
- }, K(C.name), 9, He))), 128)),
503
- l[16] || (l[16] = o("option", { value: "new-duckdb" }, "New DuckDB", -1)),
504
- l[17] || (l[17] = o("option", { value: "new-motherduck" }, "New MotherDuck", -1)),
505
- l[18] || (l[18] = o("option", { value: "new-bigquery-oauth" }, "New Bigquery Oauth", -1)),
506
- l[19] || (l[19] = o("option", { value: "new-snowflake" }, "New Snowflake", -1))
507
- ], 544), [
508
- [te, c.value]
509
- ])
510
- ]),
511
- c.value === "new-motherduck" ? (r(), h("div", Je, [
512
- l[21] || (l[21] = o("label", { for: "md-token" }, "MotherDuck Token", -1)),
513
- T(o("input", {
514
- type: "text",
515
- "onUpdate:modelValue": l[6] || (l[6] = (C) => y.value.mdToken = C),
516
- id: "md-token",
517
- placeholder: "MotherDuck Token",
518
- class: "connection-input",
519
- onInput: M
520
- }, null, 544), [
521
- [
522
- P,
523
- y.value.mdToken,
524
- void 0,
525
- { trim: !0 }
526
- ]
527
- ])
528
- ])) : g("", !0),
529
- c.value === "new-bigquery-oauth" ? (r(), h("div", ze, [
530
- l[22] || (l[22] = o("label", { for: "project-id" }, "BigQuery Project ID", -1)),
531
- T(o("input", {
532
- type: "text",
533
- "onUpdate:modelValue": l[7] || (l[7] = (C) => y.value.projectId = C),
534
- id: "project-id",
535
- placeholder: "Billing Project ID",
536
- class: "connection-input",
537
- onInput: M
538
- }, null, 544), [
539
- [
540
- P,
541
- y.value.projectId,
542
- void 0,
543
- { trim: !0 }
544
- ]
545
- ])
546
- ])) : g("", !0),
547
- c.value === "new-snowflake" ? (r(), h(V, { key: 2 }, [
548
- o("div", We, [
549
- l[23] || (l[23] = o("label", { for: "snowflake-username" }, "Username", -1)),
550
- T(o("input", {
551
- type: "text",
552
- "onUpdate:modelValue": l[8] || (l[8] = (C) => y.value.username = C),
553
- id: "snowflake-username",
554
- placeholder: "Snowflake Username",
555
- class: "connection-input",
556
- onInput: M
557
- }, null, 544), [
558
- [
559
- P,
560
- y.value.username,
561
- void 0,
562
- { trim: !0 }
563
- ]
564
- ])
565
- ]),
566
- o("div", Ge, [
567
- l[24] || (l[24] = o("label", { for: "snowflake-account" }, "Account", -1)),
568
- T(o("input", {
569
- type: "text",
570
- "onUpdate:modelValue": l[9] || (l[9] = (C) => y.value.account = C),
571
- id: "snowflake-account",
572
- placeholder: "Snowflake Account",
573
- class: "connection-input",
574
- onInput: M
575
- }, null, 544), [
576
- [
577
- P,
578
- y.value.account,
579
- void 0,
580
- { trim: !0 }
581
- ]
582
- ])
583
- ]),
584
- o("div", Qe, [
585
- l[25] || (l[25] = o("label", { for: "snowflake-ssh-private-key" }, "Private Key", -1)),
586
- T(o("input", {
587
- type: "text",
588
- "onUpdate:modelValue": l[10] || (l[10] = (C) => y.value.sshPrivateKey = C),
589
- id: "snowflake-ssh-private-key",
590
- placeholder: "Private Key",
591
- class: "connection-input",
592
- onInput: M
593
- }, null, 544), [
594
- [
595
- P,
596
- y.value.sshPrivateKey,
597
- void 0,
598
- { trim: !0 }
599
- ]
600
- ])
601
- ])
602
- ], 64)) : g("", !0)
603
- ]),
604
- o("div", Xe, [
605
- o("button", {
606
- onClick: $,
607
- class: "copy-button",
608
- "data-testid": "import-dashboard-button",
609
- disabled: !p.value || !c.value || a.value || !O.value
610
- }, K(w.value ? "Imported!" : "Import"), 9, Ye)
611
- ])
612
- ], 512)
613
- ])) : g("", !0);
614
- }
615
- }), xe = /* @__PURE__ */ F(Ze, [["__scopeId", "data-v-f89b7efa"]]), et = {
616
- name: "DashboardCreatorIcon",
617
- components: {
618
- Tooltip: Q
619
- },
620
- props: {
621
- connection: {
622
- type: String,
623
- required: !0
624
- },
625
- title: {
626
- type: String,
627
- default: "New Dashboard"
628
- }
629
- },
630
- setup(e) {
631
- const t = A("dashboardStore");
632
- if (!t)
633
- throw new Error("Dashboard store is not provided!");
634
- return {
635
- createDashboard: () => {
636
- const n = `${e.connection} Dashboard ${Date.now().toString().slice(-4)}`;
637
- try {
638
- const v = t.newDashboard(n, e.connection);
639
- t.setActiveDashboard(v.id);
640
- } catch (v) {
641
- console.error("Failed to create dashboard:", v), alert(`Error creating dashboard: ${v instanceof Error ? v.message : String(v)}`);
642
- }
643
- }
644
- };
645
- }
646
- };
647
- function tt(e, t, s, n, v, b) {
648
- const d = D("tooltip");
649
- return r(), L(d, {
650
- content: s.title,
651
- position: "left"
652
- }, {
653
- default: k(() => [
654
- o("span", {
655
- onClick: t[0] || (t[0] = _((...p) => n.createDashboard && n.createDashboard(...p), ["stop"])),
656
- class: "dashboard-creator-icon"
657
- }, [...t[1] || (t[1] = [
658
- o("i", { class: "mdi mdi-table-plus" }, null, -1)
659
- ])])
660
- ]),
661
- _: 1
662
- }, 8, ["content"]);
663
- }
664
- const ot = /* @__PURE__ */ F(et, [["render", tt], ["__scopeId", "data-v-783ac96e"]]), nt = {
665
- name: "DashboardListItem",
666
- props: {
667
- item: {
668
- type: Object,
669
- required: !0
670
- },
671
- isActive: {
672
- type: Boolean,
673
- default: !1
674
- },
675
- isCollapsed: {
676
- type: Boolean,
677
- default: !1
678
- }
679
- },
680
- emits: ["click", "delete", "clone", "toggle"],
681
- setup(e) {
682
- const t = A("connectionStore"), s = A("dashboardStore"), n = A("isMobile", !1);
683
- if (!t || !s)
684
- throw new Error("Connection/Dashboard stores is not provided!");
685
- const v = G(() => e.item.type === "connection" && t.connections[e.item.label] || null), b = G(() => {
686
- const d = v.value;
687
- return d ? d.running ? "running" : d.connected ? "connected" : "disabled" : "disabled";
688
- });
689
- return {
690
- isMobile: n,
691
- dashboardStore: s,
692
- connectionInfo: v,
693
- connectionStatus: b
694
- };
695
- },
696
- methods: {
697
- handleClick() {
698
- this.$emit("click", this.item);
699
- },
700
- handleToggle() {
701
- this.$emit("click", this.item);
702
- },
703
- handleDelete() {
704
- this.$emit("delete", this.item.dashboard);
705
- },
706
- handleClone() {
707
- this.dashboardStore.cloneDashboard(this.item.id);
708
- }
709
- },
710
- components: {
711
- SidebarItem: Y,
712
- DashboardCreatorIcon: ot,
713
- Tooltip: Q,
714
- StatusIcon: se
715
- }
716
- }, st = {
717
- key: 0,
718
- class: "text-light connection-model"
719
- }, at = { class: "dashboard-actions" }, it = { class: "tag-container hover-icon" }, lt = ["data-testid"], dt = ["data-testid"], rt = ["data-testid"];
720
- function ct(e, t, s, n, v, b) {
721
- const d = D("tooltip"), p = D("dashboard-creator-icon"), c = D("status-icon"), u = D("sidebar-item");
722
- return s.item.type !== "creator" ? (r(), L(u, {
723
- key: 0,
724
- "item-id": s.item.key,
725
- name: s.item.label,
726
- indent: s.item.indent,
727
- "is-selected": s.isActive,
728
- "is-collapsible": !["dashboard", "creator"].includes(s.item.type),
729
- "is-collapsed": s.isCollapsed,
730
- itemType: "dashboard",
731
- onClick: b.handleClick,
732
- onToggle: b.handleToggle
733
- }, {
734
- icon: k(() => [
735
- s.item.type === "dashboard" ? (r(), L(d, {
736
- key: 0,
737
- content: "Dashboard",
738
- position: "right"
739
- }, {
740
- default: k(() => [...t[3] || (t[3] = [
741
- o("i", { class: "mdi mdi-view-dashboard node-icon" }, null, -1)
742
- ])]),
743
- _: 1
744
- })) : g("", !0)
745
- ]),
746
- name: k(() => {
747
- var a, m;
748
- return [
749
- H(K(s.item.label) + " ", 1),
750
- s.item.type === "connection" ? (r(), h("span", st, " (" + K((a = n.connectionInfo) != null && a.model ? (m = n.connectionInfo) == null ? void 0 : m.model : "No Model Set") + ") ", 1)) : g("", !0)
751
- ];
752
- }),
753
- "extra-content": k(() => [
754
- o("div", at, [
755
- s.item.type === "connection" ? (r(), h(V, { key: 0 }, [
756
- o("span", it, [
757
- N(p, {
758
- connection: s.item.label,
759
- title: "New Dashboard"
760
- }, null, 8, ["connection"])
761
- ]),
762
- N(c, { status: n.connectionStatus }, null, 8, ["status"])
763
- ], 64)) : g("", !0),
764
- s.item.type === "dashboard" ? (r(), h(V, { key: 1 }, [
765
- N(d, {
766
- content: "Clone Dashboard",
767
- position: "left"
768
- }, {
769
- default: k(() => [
770
- o("span", {
771
- class: "clone-btn hover-icon",
772
- onClick: t[0] || (t[0] = _((...a) => b.handleClone && b.handleClone(...a), ["stop"])),
773
- "data-testid": `clone-dashboard-${s.item.label}`
774
- }, [...t[4] || (t[4] = [
775
- o("i", { class: "mdi mdi-content-copy" }, null, -1)
776
- ])], 8, lt)
777
- ]),
778
- _: 1
779
- }),
780
- N(d, {
781
- content: "Delete Dashboard",
782
- position: "left"
783
- }, {
784
- default: k(() => [
785
- o("span", {
786
- class: "remove-btn hover-icon",
787
- onClick: t[1] || (t[1] = _((...a) => b.handleDelete && b.handleDelete(...a), ["stop"])),
788
- "data-testid": `delete-dashboard-${s.item.label}`
789
- }, [...t[5] || (t[5] = [
790
- o("i", { class: "mdi mdi-trash-can-outline" }, null, -1)
791
- ])], 8, dt)
792
- ]),
793
- _: 1
794
- })
795
- ], 64)) : g("", !0)
796
- ])
797
- ]),
798
- _: 1
799
- }, 8, ["item-id", "name", "indent", "is-selected", "is-collapsible", "is-collapsed", "onClick", "onToggle"])) : (r(), h("div", {
800
- key: 1,
801
- "data-testid": `dashboard-list-id-${s.item.key}`,
802
- class: "creator-item",
803
- onClick: t[2] || (t[2] = (...a) => b.handleClick && b.handleClick(...a))
804
- }, K(s.item.label), 9, rt));
805
- }
806
- const ut = /* @__PURE__ */ F(nt, [["render", ct], ["__scopeId", "data-v-9e23d2b5"]]);
807
- function mt(e, t) {
808
- const s = [], n = {};
809
- return e.forEach((v) => {
810
- const b = v.storage || "local";
811
- v.deleted || (n[b] || (n[b] = []), n[b].push(v));
812
- }), Object.entries(n).forEach(([v, b]) => {
813
- const d = `s-${v}`;
814
- if (s.push({
815
- type: "storage",
816
- label: v === "local" ? "Browser Storage" : "Remote Storage",
817
- key: d,
818
- id: d,
819
- indent: 0
820
- }), !t[d]) {
821
- const p = {};
822
- b.forEach((c) => {
823
- const u = c.connection || "default";
824
- p[u] || (p[u] = []), p[u].push(c);
825
- }), Object.entries(p).forEach(([c, u]) => {
826
- const a = `c-${v}-${c}`;
827
- s.push({
828
- type: "connection",
829
- id: a,
830
- label: c,
831
- key: a,
832
- indent: 1
833
- }), t[a] || u.forEach((m) => {
834
- s.push({
835
- type: "dashboard",
836
- label: m.name,
837
- id: m.id,
838
- key: `d-${m.id}`,
839
- indent: 2,
840
- dashboard: m
841
- });
842
- });
843
- });
844
- }
845
- }), s;
846
- }
847
- const vt = {
848
- name: "DashboardList",
849
- props: {
850
- activeDashboardKey: String,
851
- testTag: {
852
- type: String,
853
- default: ""
854
- }
855
- },
856
- setup() {
857
- const e = A("dashboardStore"), t = A("connectionStore"), s = A("saveDashboards");
858
- if (!e || !t || !s)
859
- throw new Error("Dashboard or connection store is not provided!");
860
- const n = S({}), v = S(!1), b = S(!1), d = (u) => {
861
- n.value[u] === void 0 && (n.value[u] = !1), n.value[u] = !n.value[u];
862
- }, p = B("dashboard") || "";
863
- x(() => {
864
- if (Object.values(e.dashboards).forEach((u) => {
865
- let a = `s-${u.storage}`, m = `c-${u.storage}-${u.connection}`;
866
- p === u.id ? (n.value[a] = !1, n.value[m] = !1) : (n.value[a] === void 0 ? n.value[a] = !0 : n.value[a] === !1 && (n.value[a] = !1), n.value[m] === void 0 ? n.value[m] = !0 : n.value[m] === !1 && (n.value[m] = !1));
867
- }), Object.keys(e.dashboards).length > 0) {
868
- const u = Object.values(e.dashboards)[0];
869
- n.value[`s-${u.storage}`] = !1;
870
- }
871
- });
872
- const c = G(() => mt(Object.values(e.dashboards), n.value));
873
- return {
874
- connectionStore: t,
875
- dashboardStore: e,
876
- contentList: c,
877
- toggleCollapse: d,
878
- collapsed: n,
879
- creatorVisible: v,
880
- importPopupVisible: b,
881
- saveDashboards: s
882
- };
883
- },
884
- data() {
885
- return {
886
- showDeleteConfirmationState: !1,
887
- dashboardToDelete: null
888
- };
889
- },
890
- methods: {
891
- showDeleteConfirmation(e) {
892
- this.dashboardToDelete = e.id, this.showDeleteConfirmationState = !0;
893
- },
894
- cancelDelete() {
895
- this.showDeleteConfirmationState = !1, this.dashboardToDelete = null;
896
- },
897
- confirmDelete() {
898
- this.dashboardToDelete && this.dashboardStore.dashboards[this.dashboardToDelete] && this.dashboardStore.dashboards[this.dashboardToDelete].delete(), this.showDeleteConfirmationState = !1, this.dashboardToDelete = null;
899
- },
900
- dashboardCreated(e) {
901
- console.log("Dashboard created event received:", e), this.$emit("dashboard-key-selected", e);
902
- },
903
- clickAction(e) {
904
- e.type === "dashboard" ? this.$emit("dashboard-key-selected", e.id) : this.toggleCollapse(e.key);
905
- }
906
- },
907
- components: {
908
- DashboardCreatorInline: fe,
909
- DashboardImportPopup: xe,
910
- DashboardListItem: ut,
911
- SidebarList: Z,
912
- LoadingButton: oe
913
- }
914
- }, pt = { class: "button-container" }, bt = ["data-testid"], ht = { class: "confirmation-dialog" }, yt = { class: "dialog-actions" };
915
- function ft(e, t, s, n, v, b) {
916
- const d = D("dashboard-creator-inline"), p = D("dashboard-import-popup"), c = D("dashboard-list-item"), u = D("sidebar-list");
917
- return r(), L(u, { title: "Dashboards" }, {
918
- actions: k(() => [
919
- o("div", pt, [
920
- o("button", {
921
- onClick: t[0] || (t[0] = (a) => n.creatorVisible = !n.creatorVisible),
922
- "data-testid": s.testTag ? `dashboard-creator-add-${s.testTag}` : "dashboard-creator-add"
923
- }, K(n.creatorVisible ? "Hide" : "New"), 9, bt),
924
- o("button", {
925
- onClick: t[1] || (t[1] = (a) => n.importPopupVisible = !0),
926
- "data-testid": "dashboard-import-button"
927
- }, " Import ")
928
- ]),
929
- N(d, {
930
- visible: n.creatorVisible,
931
- onClose: t[2] || (t[2] = (a) => n.creatorVisible = !n.creatorVisible),
932
- testTag: s.testTag,
933
- onDashboardCreated: b.dashboardCreated
934
- }, null, 8, ["visible", "testTag", "onDashboardCreated"]),
935
- N(p, {
936
- isOpen: n.importPopupVisible,
937
- onClose: t[3] || (t[3] = (a) => n.importPopupVisible = !1)
938
- }, null, 8, ["isOpen"])
939
- ]),
940
- default: k(() => [
941
- (r(!0), h(V, null, J(n.contentList, (a) => (r(), L(c, {
942
- key: a.key,
943
- item: a,
944
- "is-active": s.activeDashboardKey === a.id,
945
- "is-collapsed": n.collapsed[a.key],
946
- onClick: (m) => b.clickAction(a),
947
- onDelete: b.showDeleteConfirmation
948
- }, null, 8, ["item", "is-active", "is-collapsed", "onClick", "onDelete"]))), 128)),
949
- v.showDeleteConfirmationState ? (r(), h("div", {
950
- key: 0,
951
- class: "confirmation-overlay",
952
- onClick: t[6] || (t[6] = _((...a) => b.cancelDelete && b.cancelDelete(...a), ["self"]))
953
- }, [
954
- o("div", ht, [
955
- t[7] || (t[7] = o("h3", null, "Confirm Deletion", -1)),
956
- t[8] || (t[8] = o("p", null, "Are you sure you want to delete this dashboard? Contents cannot be recovered.", -1)),
957
- o("div", yt, [
958
- o("button", {
959
- class: "cancel-btn",
960
- "data-testid": "cancel-dashboard-deletion",
961
- onClick: t[4] || (t[4] = (...a) => b.cancelDelete && b.cancelDelete(...a))
962
- }, " Cancel "),
963
- o("button", {
964
- class: "confirm-btn",
965
- "data-testid": "confirm-dashboard-deletion",
966
- onClick: t[5] || (t[5] = (...a) => b.confirmDelete && b.confirmDelete(...a))
967
- }, " Delete ")
968
- ])
969
- ])
970
- ])) : g("", !0)
971
- ]),
972
- _: 1
973
- });
974
- }
975
- const gt = /* @__PURE__ */ F(vt, [["render", ft], ["__scopeId", "data-v-311270bc"]]), St = {
976
- key: 0,
977
- class: "mdi mdi-source-repository sidebar-icon"
978
- }, kt = {
979
- key: 1,
980
- class: "right-pad"
981
- }, Ct = {
982
- key: 0,
983
- class: "tag-container"
984
- }, Dt = {
985
- key: 1,
986
- class: "tag-container hover-icon"
987
- }, wt = {
988
- key: 2,
989
- class: "tag-container"
990
- }, Mt = ["data-testid"], $t = /* @__PURE__ */ X({
991
- __name: "CommunityModelListItem",
992
- props: {
993
- item: {},
994
- activeModel: { default: "" },
995
- isCollapsed: { type: Boolean, default: !1 },
996
- isMobile: { type: Boolean, default: !1 }
997
- },
998
- emits: ["item-click", "model-selected", "model-details", "item-toggle", "delete-store"],
999
- setup(e, { emit: t }) {
1000
- const s = e, n = t, v = ae(), b = () => {
1001
- s.item.type === "model" ? n("model-selected", s.item.model, s.item.key, s.item.modelRoot) : n("item-click", s.item.type, s.item.key, s.item.modelRoot);
1002
- }, d = () => {
1003
- ["model"].includes(s.item.type) || n("item-toggle", s.item.type, s.item.key, s.item.modelRoot);
1004
- }, p = () => "", c = (m) => m.id === me.id, u = (m) => v.getStoreStatus(m.id), a = (m) => {
1005
- const f = v.errors[m.id];
1006
- if (f)
1007
- return `Connection failed: ${f}`;
1008
- if (v.getStoreStatus(m.id) === "connected")
1009
- return "Connected";
1010
- };
1011
- return (m, f) => (r(), L(Y, {
1012
- "item-id": e.item.key,
1013
- name: e.item.label,
1014
- indent: e.item.indent,
1015
- "is-selected": e.activeModel === e.item.key,
1016
- "is-collapsible": !["model"].includes(e.item.type),
1017
- "is-collapsed": e.isCollapsed,
1018
- icon: p(),
1019
- itemType: "community",
1020
- onClick: b,
1021
- onToggle: d
1022
- }, {
1023
- icon: k(() => [
1024
- e.item.type === "root" ? (r(), h("i", St)) : e.item.type === "engine" ? (r(), h("span", kt, [
1025
- N(be, {
1026
- "connection-type": e.item.label
1027
- }, null, 8, ["connection-type"])
1028
- ])) : g("", !0)
1029
- ]),
1030
- "extra-content": k(() => {
1031
- var j;
1032
- return [
1033
- e.item.type === "model" ? (r(), h("span", Ct, [
1034
- (r(!0), h(V, null, J(((j = e.item.model) == null ? void 0 : j.tags) || [], (y) => (r(), h("span", {
1035
- key: y,
1036
- class: "tag"
1037
- }, K(y), 1))), 128))
1038
- ])) : e.item.type === "engine" ? (r(), h("span", Dt)) : e.item.type === "root" ? (r(), h("span", wt, [
1039
- e.item.store && !c(e.item.store) ? (r(), L(Q, {
1040
- key: 0,
1041
- content: "Remove Store",
1042
- position: "left"
1043
- }, {
1044
- default: k(() => [
1045
- o("span", {
1046
- class: "remove-btn hover-icon",
1047
- onClick: f[0] || (f[0] = _((y) => n("delete-store", e.item.store), ["stop"])),
1048
- "data-testid": `delete-store-${e.item.store.id}`
1049
- }, [...f[1] || (f[1] = [
1050
- o("i", { class: "mdi mdi-trash-can-outline" }, null, -1)
1051
- ])], 8, Mt)
1052
- ]),
1053
- _: 1
1054
- })) : g("", !0),
1055
- e.item.store ? (r(), L(se, {
1056
- key: 1,
1057
- status: u(e.item.store),
1058
- message: a(e.item.store),
1059
- "test-name": e.item.store.id
1060
- }, null, 8, ["status", "message", "test-name"])) : g("", !0)
1061
- ])) : g("", !0)
1062
- ];
1063
- }),
1064
- _: 1
1065
- }, 8, ["item-id", "name", "indent", "is-selected", "is-collapsible", "is-collapsed", "icon"]));
1066
- }
1067
- }), It = /* @__PURE__ */ F($t, [["__scopeId", "data-v-080825ec"]]), Tt = {
1068
- name: "AddStoreModal",
1069
- props: {
1070
- show: {
1071
- type: Boolean,
1072
- required: !0
1073
- },
1074
- loading: {
1075
- type: Boolean,
1076
- default: !1
1077
- }
1078
- },
1079
- emits: ["close", "add"],
1080
- setup(e, { emit: t }) {
1081
- const s = S("generic"), n = S(""), v = S(""), b = S(""), d = S(""), p = S("main"), c = S(null);
1082
- return le(
1083
- () => e.show,
1084
- (a) => {
1085
- a && (s.value = "generic", n.value = "", v.value = "", b.value = "", d.value = "", p.value = "main", c.value = null);
1086
- }
1087
- ), {
1088
- storeType: s,
1089
- storeName: n,
1090
- baseUrl: v,
1091
- owner: b,
1092
- repo: d,
1093
- branch: p,
1094
- error: c,
1095
- handleSubmit: async () => {
1096
- c.value = null;
1097
- try {
1098
- if (s.value === "generic") {
1099
- if (!n.value || !v.value) {
1100
- c.value = "Please fill in all required fields";
1101
- return;
1102
- }
1103
- const m = {
1104
- type: "generic",
1105
- id: v.value.replace(/^https?:\/\//, "").replace(/\//g, "-"),
1106
- name: n.value,
1107
- baseUrl: v.value.replace(/\/$/, "")
1108
- // Remove trailing slash
1109
- };
1110
- t("add", m);
1111
- } else {
1112
- if (!n.value || !b.value || !d.value || !p.value) {
1113
- c.value = "Please fill in all required fields";
1114
- return;
1115
- }
1116
- const m = {
1117
- type: "github",
1118
- id: `${b.value}-${d.value}-${p.value}`,
1119
- name: n.value,
1120
- owner: b.value,
1121
- repo: d.value,
1122
- branch: p.value
1123
- };
1124
- t("add", m);
1125
- }
1126
- } catch (a) {
1127
- c.value = a instanceof Error ? a.message : "Failed to add store";
1128
- }
1129
- }
1130
- };
1131
- }
1132
- }, Kt = { class: "form-group" }, Lt = { class: "form-group" }, Et = { class: "form-group" }, Nt = { class: "form-group" }, At = { class: "form-group" }, Vt = { class: "form-group" }, jt = { class: "form-group" }, Ut = {
1133
- key: 2,
1134
- class: "form-error",
1135
- "data-testid": "add-store-error"
1136
- }, Pt = { class: "dialog-actions" }, Ot = ["disabled"];
1137
- function Rt(e, t, s, n, v, b) {
1138
- return s.show ? (r(), h("div", {
1139
- key: 0,
1140
- class: "confirmation-overlay",
1141
- onClick: t[10] || (t[10] = (d) => e.$emit("close"))
1142
- }, [
1143
- o("div", {
1144
- class: "confirmation-dialog",
1145
- "data-testid": "add-store-modal",
1146
- onClick: t[9] || (t[9] = _(() => {
1147
- }, ["stop"]))
1148
- }, [
1149
- t[20] || (t[20] = o("h3", null, "Add Model Store", -1)),
1150
- o("form", {
1151
- onSubmit: t[8] || (t[8] = _((...d) => n.handleSubmit && n.handleSubmit(...d), ["prevent"]))
1152
- }, [
1153
- o("div", Kt, [
1154
- t[12] || (t[12] = o("label", null, [
1155
- H("Store Type: "),
1156
- o("span", { class: "required" }, "*")
1157
- ], -1)),
1158
- T(o("select", {
1159
- "onUpdate:modelValue": t[0] || (t[0] = (d) => n.storeType = d),
1160
- "data-testid": "store-type-select"
1161
- }, [...t[11] || (t[11] = [
1162
- o("option", { value: "generic" }, "Generic", -1),
1163
- o("option", { value: "github" }, "GitHub Repository", -1)
1164
- ])], 512), [
1165
- [te, n.storeType]
1166
- ])
1167
- ]),
1168
- n.storeType === "generic" ? (r(), h(V, { key: 0 }, [
1169
- o("div", Lt, [
1170
- t[13] || (t[13] = o("label", null, [
1171
- H("Store Name: "),
1172
- o("span", { class: "required" }, "*")
1173
- ], -1)),
1174
- T(o("input", {
1175
- "onUpdate:modelValue": t[1] || (t[1] = (d) => n.storeName = d),
1176
- type: "text",
1177
- placeholder: "e.g., Local Dev Store",
1178
- "data-testid": "store-name-input",
1179
- required: ""
1180
- }, null, 512), [
1181
- [P, n.storeName]
1182
- ])
1183
- ]),
1184
- o("div", Et, [
1185
- t[14] || (t[14] = o("label", null, [
1186
- H("Base URL: "),
1187
- o("span", { class: "required" }, "*")
1188
- ], -1)),
1189
- T(o("input", {
1190
- "onUpdate:modelValue": t[2] || (t[2] = (d) => n.baseUrl = d),
1191
- type: "url",
1192
- placeholder: "e.g., http://localhost:8000",
1193
- "data-testid": "store-url-input",
1194
- required: ""
1195
- }, null, 512), [
1196
- [P, n.baseUrl]
1197
- ]),
1198
- t[15] || (t[15] = o("small", null, "URL should serve an index.json file at /index.json", -1))
1199
- ])
1200
- ], 64)) : g("", !0),
1201
- n.storeType === "github" ? (r(), h(V, { key: 1 }, [
1202
- o("div", Nt, [
1203
- t[16] || (t[16] = o("label", null, [
1204
- H("Display Name: "),
1205
- o("span", { class: "required" }, "*")
1206
- ], -1)),
1207
- T(o("input", {
1208
- "onUpdate:modelValue": t[3] || (t[3] = (d) => n.storeName = d),
1209
- type: "text",
1210
- placeholder: "e.g., My Custom Models",
1211
- "data-testid": "store-name-input",
1212
- required: ""
1213
- }, null, 512), [
1214
- [P, n.storeName]
1215
- ])
1216
- ]),
1217
- o("div", At, [
1218
- t[17] || (t[17] = o("label", null, [
1219
- H("Repository Owner: "),
1220
- o("span", { class: "required" }, "*")
1221
- ], -1)),
1222
- T(o("input", {
1223
- "onUpdate:modelValue": t[4] || (t[4] = (d) => n.owner = d),
1224
- type: "text",
1225
- placeholder: "e.g., trilogy-data",
1226
- "data-testid": "github-owner-input",
1227
- required: ""
1228
- }, null, 512), [
1229
- [P, n.owner]
1230
- ])
1231
- ]),
1232
- o("div", Vt, [
1233
- t[18] || (t[18] = o("label", null, [
1234
- H("Repository Name: "),
1235
- o("span", { class: "required" }, "*")
1236
- ], -1)),
1237
- T(o("input", {
1238
- "onUpdate:modelValue": t[5] || (t[5] = (d) => n.repo = d),
1239
- type: "text",
1240
- placeholder: "e.g., trilogy-public-models",
1241
- "data-testid": "github-repo-input",
1242
- required: ""
1243
- }, null, 512), [
1244
- [P, n.repo]
1245
- ])
1246
- ]),
1247
- o("div", jt, [
1248
- t[19] || (t[19] = o("label", null, [
1249
- H("Branch: "),
1250
- o("span", { class: "required" }, "*")
1251
- ], -1)),
1252
- T(o("input", {
1253
- "onUpdate:modelValue": t[6] || (t[6] = (d) => n.branch = d),
1254
- type: "text",
1255
- placeholder: "e.g., main",
1256
- "data-testid": "github-branch-input",
1257
- required: ""
1258
- }, null, 512), [
1259
- [P, n.branch]
1260
- ])
1261
- ])
1262
- ], 64)) : g("", !0),
1263
- n.error ? (r(), h("div", Ut, K(n.error), 1)) : g("", !0),
1264
- o("div", Pt, [
1265
- o("button", {
1266
- type: "button",
1267
- class: "cancel-btn",
1268
- "data-testid": "add-store-cancel",
1269
- onClick: t[7] || (t[7] = (d) => e.$emit("close"))
1270
- }, " Cancel "),
1271
- o("button", {
1272
- type: "submit",
1273
- class: "confirm-btn",
1274
- "data-testid": "add-store-submit",
1275
- disabled: s.loading
1276
- }, K(s.loading ? "Adding..." : "Add Store"), 9, Ot)
1277
- ])
1278
- ], 32)
1279
- ])
1280
- ])) : g("", !0);
1281
- }
1282
- const qt = /* @__PURE__ */ F(Tt, [["render", Rt], ["__scopeId", "data-v-9b0c5261"]]), Bt = (e = {}, t = [], s = {}) => {
1283
- const n = [];
1284
- return t.forEach((v) => {
1285
- const b = v.id, d = v.name, p = {
1286
- owner: v.type === "github" ? v.owner : "",
1287
- repo: v.type === "github" ? v.repo : "",
1288
- branch: v.type === "github" ? v.branch : "main",
1289
- displayName: d
1290
- };
1291
- if (n.push({
1292
- type: "root",
1293
- label: d,
1294
- key: b,
1295
- indent: 0,
1296
- modelRoot: p,
1297
- store: v
1298
- }), !e[b]) {
1299
- const c = s[b] || [], u = {};
1300
- c.forEach((a) => {
1301
- u[a.engine] || (u[a.engine] = []), u[a.engine].push(a);
1302
- }), Object.keys(u).sort().forEach((a) => {
1303
- const m = `${b}${E}${a}`;
1304
- n.push({
1305
- type: "engine",
1306
- label: a,
1307
- key: m,
1308
- indent: 1,
1309
- modelRoot: p,
1310
- store: v
1311
- }), e[m] || u[a].forEach((f) => {
1312
- n.push({
1313
- type: "model",
1314
- label: f.name,
1315
- key: `${m}${E}${f.name}`,
1316
- indent: 2,
1317
- model: f,
1318
- modelRoot: p,
1319
- store: v
1320
- });
1321
- });
1322
- });
1323
- }
1324
- }), n;
1325
- }, _t = X({
1326
- name: "CommunityModelList",
1327
- setup() {
1328
- const e = ae(), t = ne(), s = S({}), n = t.activeCommunityModelKey.value || "", v = (M) => {
1329
- const i = M.split("+");
1330
- if (i.length > 0 && (s.value[i[0]] = !1, i.length > 1)) {
1331
- const $ = `${i[0]}+${i[1]}`;
1332
- s.value[$] = !1;
1333
- }
1334
- };
1335
- for (const M of e.stores)
1336
- s.value[M.id] = !0;
1337
- n ? v(n) : e.stores.length > 0 && (s.value[e.stores[0].id] = !1);
1338
- const b = S(null), d = S(!1), p = S(null), c = async (M) => {
1339
- b.value = null;
1340
- try {
1341
- await e.addStore(M), e.closeAddStoreModal();
1342
- } catch (i) {
1343
- b.value = i instanceof Error ? i.message : "Failed to add store";
1344
- }
1345
- }, u = (M) => {
1346
- p.value = M, d.value = !0;
1347
- }, a = () => {
1348
- d.value = !1, p.value = null;
1349
- }, m = () => {
1350
- p.value && e.removeStore(p.value.id), d.value = !1, p.value = null;
1351
- }, f = (M, i, $) => {
1352
- t.openTab("community-models", M.name, i), console.log("Selected model:", M.name, "from root:", $);
1353
- }, j = (M, i, $) => {
1354
- t.openTab("community-models", null, i);
1355
- }, y = (M, i, $) => {
1356
- s.value[i] = !s.value[i];
1357
- }, O = G(() => Bt(
1358
- s.value,
1359
- e.stores,
1360
- e.filesByStore
1361
- ));
1362
- return x(async () => {
1363
- await e.initialize();
1364
- }), {
1365
- communityStore: e,
1366
- navigationStore: t,
1367
- addError: b,
1368
- handleAddStoreSubmit: c,
1369
- showDeleteStoreConfirmation: u,
1370
- cancelDeleteStore: a,
1371
- confirmDeleteStore: m,
1372
- showDeleteConfirmationState: d,
1373
- handleModelSelected: f,
1374
- handleItemClick: j,
1375
- handleItemToggle: y,
1376
- collapsed: s,
1377
- displayTree: O
1378
- };
1379
- },
1380
- components: {
1381
- SidebarList: Z,
1382
- CommunityModelListItem: It,
1383
- AddStoreModal: qt
1384
- }
1385
- }), Ft = { class: "button-container" }, Ht = ["disabled"], Jt = ["disabled"], zt = {
1386
- key: 0,
1387
- class: "error-container"
1388
- }, Wt = { class: "error-text" }, Gt = ["onClick"], Qt = { class: "confirmation-dialog" }, Xt = { class: "dialog-actions" };
1389
- function Yt(e, t, s, n, v, b) {
1390
- const d = D("CommunityModelListItem"), p = D("AddStoreModal"), c = D("sidebar-list");
1391
- return r(), L(c, { title: "Community Models" }, {
1392
- actions: k(() => [
1393
- o("div", Ft, [
1394
- o("button", {
1395
- onClick: t[0] || (t[0] = (u) => e.communityStore.refreshData()),
1396
- disabled: e.communityStore.loading
1397
- }, K(e.communityStore.loading ? "Refreshing..." : "Refresh"), 9, Ht),
1398
- o("button", {
1399
- onClick: t[1] || (t[1] = (u) => e.communityStore.openAddStoreModal()),
1400
- disabled: e.communityStore.loading
1401
- }, " Add Store ", 8, Jt)
1402
- ])
1403
- ]),
1404
- default: k(() => [
1405
- e.communityStore.hasErrors ? (r(), h("div", zt, [
1406
- (r(!0), h(V, null, J(e.communityStore.errorList, (u) => (r(), h("div", {
1407
- key: u.root,
1408
- class: "error-item"
1409
- }, [
1410
- o("span", Wt, K(u.name) + ": " + K(u.error), 1),
1411
- o("button", {
1412
- onClick: (a) => e.communityStore.clearStoreError(u.root),
1413
- class: "clear-error"
1414
- }, "×", 8, Gt)
1415
- ]))), 128))
1416
- ])) : g("", !0),
1417
- (r(!0), h(V, null, J(e.displayTree, (u) => (r(), L(d, {
1418
- key: u.key,
1419
- item: u,
1420
- "is-collapsed": e.collapsed[u.key],
1421
- "active-model": e.navigationStore.activeCommunityModelKey.value,
1422
- onItemClick: e.handleItemClick,
1423
- onItemToggle: e.handleItemToggle,
1424
- onModelSelected: e.handleModelSelected,
1425
- onDeleteStore: e.showDeleteStoreConfirmation
1426
- }, null, 8, ["item", "is-collapsed", "active-model", "onItemClick", "onItemToggle", "onModelSelected", "onDeleteStore"]))), 128)),
1427
- N(p, {
1428
- show: e.communityStore.showAddStoreModal,
1429
- loading: e.communityStore.addingStore,
1430
- onClose: t[2] || (t[2] = (u) => e.communityStore.closeAddStoreModal()),
1431
- onAdd: e.handleAddStoreSubmit
1432
- }, null, 8, ["show", "loading", "onAdd"]),
1433
- e.showDeleteConfirmationState ? (r(), h("div", {
1434
- key: 1,
1435
- class: "confirmation-overlay",
1436
- onClick: t[5] || (t[5] = _((...u) => e.cancelDeleteStore && e.cancelDeleteStore(...u), ["self"]))
1437
- }, [
1438
- o("div", Qt, [
1439
- t[6] || (t[6] = o("h3", null, "Confirm Store Removal", -1)),
1440
- t[7] || (t[7] = o("p", null, "Are you sure you want to remove this store? This will not delete any imported models.", -1)),
1441
- o("div", Xt, [
1442
- o("button", {
1443
- class: "cancel-btn",
1444
- "data-testid": "cancel-store-deletion",
1445
- onClick: t[3] || (t[3] = (...u) => e.cancelDeleteStore && e.cancelDeleteStore(...u))
1446
- }, " Cancel "),
1447
- o("button", {
1448
- class: "confirm-btn",
1449
- "data-testid": "confirm-store-deletion",
1450
- onClick: t[4] || (t[4] = (...u) => e.confirmDeleteStore && e.confirmDeleteStore(...u))
1451
- }, " Remove ")
1452
- ])
1453
- ])
1454
- ])) : g("", !0)
1455
- ]),
1456
- _: 1
1457
- });
1458
- }
1459
- const Zt = /* @__PURE__ */ F(_t, [["render", Yt], ["__scopeId", "data-v-abc5c56b"]]), xt = X({
1460
- name: "Sidebar",
1461
- props: {
1462
- active: {
1463
- type: String,
1464
- default: B("screen")
1465
- },
1466
- activeEditor: {
1467
- type: String,
1468
- default: B("editor")
1469
- },
1470
- activeModelKey: {
1471
- type: String,
1472
- default: B("model")
1473
- },
1474
- activeDocumentationKey: {
1475
- type: String,
1476
- default: B("documentationKey")
1477
- },
1478
- activeConnectionKey: {
1479
- type: String,
1480
- default: B("connection")
1481
- },
1482
- activeLLMKey: {
1483
- type: String,
1484
- default: B("llm")
1485
- },
1486
- activeDashboardKey: {
1487
- type: String,
1488
- default: B("dashboard")
1489
- },
1490
- containerWidth: {
1491
- type: Number,
1492
- default: 200
1493
- }
1494
- },
1495
- setup() {
1496
- const e = S(!1), t = S(null);
1497
- return {
1498
- isSaving: e,
1499
- previousUnSaved: t
1500
- };
1501
- },
1502
- data() {
1503
- let e = [
1504
- {
1505
- name: "dashboard",
1506
- tooltip: "Chart",
1507
- icon: "mdi mdi-chart-multiple",
1508
- screen: "dashboard"
1509
- },
1510
- {
1511
- name: "models",
1512
- tooltip: "Model",
1513
- icon: "mdi mdi-set-center",
1514
- screen: "models"
1515
- },
1516
- {
1517
- name: "community-models",
1518
- tooltip: "Share & Explore",
1519
- icon: "mdi mdi-library-outline",
1520
- screen: "community-models"
1521
- },
1522
- {
1523
- name: "help",
1524
- tooltip: "Help",
1525
- icon: "mdi mdi-help",
1526
- screen: "tutorial"
1527
- }
1528
- ], t = [
1529
- {
1530
- name: "edit",
1531
- tooltip: "Query",
1532
- icon: "mdi mdi-file-document-edit-outline",
1533
- screen: "editors"
1534
- },
1535
- {
1536
- name: "database",
1537
- tooltip: "Connect",
1538
- icon: "mdi mdi-database-outline",
1539
- screen: "connections"
1540
- },
1541
- {
1542
- name: "llm",
1543
- tooltip: "AI",
1544
- icon: "mdi mdi-creation-outline",
1545
- screen: "llms"
1546
- }
1547
- // {
1548
- // name: "Extensions",
1549
- // iconClass: "fas fa-puzzle-piece",
1550
- // component: "Extensions", // Replace with your actual component
1551
- // },
1552
- ], s = A("isMobile"), n = A("saveAll"), v = A("unSaved") || 0;
1553
- if (!s || !n)
1554
- throw new Error("isMobile is not provided");
1555
- return {
1556
- // index of the sidebarItem where the screen == active
1557
- // selectedIndex: sideBarItems.findIndex((item) => item.screen === active) || 0,
1558
- trilogyIcon: pe,
1559
- sidebarItems: t,
1560
- sidebarFeatureItems: e,
1561
- isMobile: s,
1562
- unSaved: v,
1563
- saveAll: n,
1564
- notMobile: !s,
1565
- contentCollapsed: !1
1566
- };
1567
- },
1568
- components: {
1569
- EditorList: ve,
1570
- ConnectionList: ye,
1571
- Tooltip: Q,
1572
- TutorialSidebar: ke,
1573
- ModelSidebar: Le,
1574
- LLMConnectionList: he,
1575
- DashboardList: gt,
1576
- CommunityModelList: Zt
1577
- },
1578
- watch: {
1579
- contentCollapsed(e) {
1580
- this.$emit("content-collapsed", e);
1581
- },
1582
- unSaved: {
1583
- handler(e, t) {
1584
- t > 0 && e === 0 && !this.isSaving && this.triggerSaveAnimation(), this.previousUnSaved = e;
1585
- },
1586
- immediate: !0
1587
- }
1588
- },
1589
- methods: {
1590
- triggerSaveAnimation() {
1591
- this.isSaving = !0, setTimeout(() => {
1592
- this.isSaving = !1;
1593
- }, 500);
1594
- },
1595
- async handleSave() {
1596
- this.isSaving = !0, await this.saveAll(), setTimeout(() => {
1597
- this.isSaving = !1;
1598
- }, 500);
1599
- },
1600
- selectItem(e) {
1601
- if (this.isMobile) {
1602
- this.$emit("screen-selected", e);
1603
- return;
1604
- }
1605
- e === this.active ? this.contentCollapsed = !this.contentCollapsed : (this.contentCollapsed = !1, this.$emit("screen-selected", e));
1606
- },
1607
- toggleCollapse() {
1608
- this.contentCollapsed = !this.contentCollapsed;
1609
- },
1610
- editorSelected(e) {
1611
- this.$emit("editor-selected", e);
1612
- },
1613
- modelKeySelected(e) {
1614
- this.$emit("model-key-selected", e);
1615
- },
1616
- documentationKeySelected(e) {
1617
- this.$emit("documentation-key-selected", e);
1618
- },
1619
- connectionKeySelected(e) {
1620
- this.$emit("connection-key-selected", e);
1621
- },
1622
- dashboardKeySelected(e) {
1623
- this.$emit("dashboard-key-selected", e);
1624
- },
1625
- toggleMobileMenu() {
1626
- this.$emit("toggle-mobile-menu");
1627
- },
1628
- llmKeySelected(e) {
1629
- this.$emit("llm-key-selected", e);
1630
- },
1631
- llmOpenView(e, t, s) {
1632
- this.$emit("llm-open-view", e, t, s);
1633
- },
1634
- createNewChat(e) {
1635
- this.$emit("create-new-chat", e);
1636
- },
1637
- saveEditors() {
1638
- this.$emit("save-editors");
1639
- },
1640
- saveDashboards() {
1641
- this.$emit("save-dashboards");
1642
- },
1643
- openSettings() {
1644
- console.log("Settings clicked");
1645
- },
1646
- openProfile() {
1647
- console.log("Profile clicked");
1648
- },
1649
- getUrl(e) {
1650
- const t = new URLSearchParams(window.location.search);
1651
- return t.set("sidebarScreen", e), `#${t.toString()}`;
1652
- }
1653
- }
1654
- }), eo = { class: "sidebar-container" }, to = {
1655
- class: "sidebar-icons",
1656
- "data-testid": "sidebar-icons"
1657
- }, oo = { class: "trilogy-icon" }, no = { class: "trilogy-icon-wrapper" }, so = ["src"], ao = ["title"], io = ["title"], lo = {
1658
- key: 1,
1659
- class: "sidebar-divider"
1660
- }, ro = ["onClick", "data-testid"], co = ["onClick", "href", "data-testid"], uo = ["data-testid"], mo = {
1661
- key: 2,
1662
- class: "sidebar-divider"
1663
- }, vo = ["onClick", "data-testid"], po = ["onClick", "href", "data-testid"], bo = ["data-testid"];
1664
- function ho(e, t, s, n, v, b) {
1665
- var y, O, M;
1666
- const d = D("tooltip"), p = D("EditorList"), c = D("ConnectionList"), u = D("LLMConnectionList"), a = D("ModelSidebar"), m = D("TutorialSidebar"), f = D("DashboardList"), j = D("CommunityModelList");
1667
- return r(), h("div", eo, [
1668
- o("div", to, [
1669
- o("div", oo, [
1670
- o("div", no, [
1671
- N(d, {
1672
- content: e.unSaved ? `Save ${e.unSaved} ${(((y = e.unSaved) == null ? void 0 : y.valueOf()) || 0) > 1 ? "changes" : "change"}` : "All changes saved!"
1673
- }, {
1674
- default: k(() => [
1675
- o("img", {
1676
- class: U(["trilogy-icon", { spinning: e.isSaving }]),
1677
- onClick: t[0] || (t[0] = (...i) => e.handleSave && e.handleSave(...i)),
1678
- src: e.trilogyIcon,
1679
- "data-testid": "trilogy-icon"
1680
- }, null, 10, so)
1681
- ]),
1682
- _: 1
1683
- }, 8, ["content"]),
1684
- (((O = e.unSaved) == null ? void 0 : O.valueOf()) || 0) > 0 ? (r(), h("div", {
1685
- key: 0,
1686
- class: "unsaved-badge",
1687
- title: `${e.unSaved} unsaved ${(((M = e.unSaved) == null ? void 0 : M.valueOf()) || 0) > 1 ? "changes" : "change"}`
1688
- }, K(e.unSaved), 9, ao)) : g("", !0)
1689
- ])
1690
- ]),
1691
- t[10] || (t[10] = o("div", { class: "trilogy-icon-padding" }, null, -1)),
1692
- e.isMobile ? g("", !0) : (r(), h("div", {
1693
- key: 0,
1694
- class: "sidebar-collapse-btn",
1695
- onClick: t[1] || (t[1] = (...i) => e.toggleCollapse && e.toggleCollapse(...i)),
1696
- title: e.contentCollapsed ? "Expand sidebar" : "Collapse sidebar"
1697
- }, [
1698
- o("i", {
1699
- class: U(e.contentCollapsed ? "mdi mdi-chevron-right" : "mdi mdi-chevron-left")
1700
- }, null, 2)
1701
- ], 8, io)),
1702
- e.isMobile ? g("", !0) : (r(), h("div", lo)),
1703
- (r(!0), h(V, null, J(e.sidebarItems, (i, $) => (r(), h("div", {
1704
- key: i.name,
1705
- class: U(["sidebar-icon", { selected: e.active == i.screen, "sidebar-icon-margin": !e.isMobile }]),
1706
- onClick: (w) => e.selectItem(i.screen),
1707
- "data-testid": `sidebar-icon-${i.screen}`
1708
- }, [
1709
- e.isMobile ? (r(), h(V, { key: 1 }, [
1710
- o("i", {
1711
- class: U(i.icon),
1712
- "data-testid": `sidebar-link-${i.screen}`
1713
- }, null, 10, uo),
1714
- o("div", null, K(i.tooltip), 1)
1715
- ], 64)) : (r(), L(d, {
1716
- key: 0,
1717
- content: i.tooltip
1718
- }, {
1719
- default: k(() => [
1720
- o("a", {
1721
- onClick: _((w) => e.selectItem(i.screen), ["prevent", "stop"]),
1722
- href: e.getUrl(i.screen),
1723
- target: "_blank",
1724
- "data-testid": `sidebar-link-${i.screen}`
1725
- }, [
1726
- o("i", {
1727
- class: U(i.icon)
1728
- }, null, 2)
1729
- ], 8, co)
1730
- ]),
1731
- _: 2
1732
- }, 1032, ["content"]))
1733
- ], 10, ro))), 128)),
1734
- e.isMobile ? g("", !0) : (r(), h("div", mo)),
1735
- (r(!0), h(V, null, J(e.sidebarFeatureItems, (i, $) => (r(), h("div", {
1736
- key: i.name,
1737
- class: U(["sidebar-icon", { selected: e.active == i.screen, "sidebar-icon-margin": !e.isMobile }]),
1738
- onClick: (w) => e.selectItem(i.screen),
1739
- "data-testid": `sidebar-icon-${i.screen}`
1740
- }, [
1741
- e.isMobile ? (r(), h(V, { key: 1 }, [
1742
- o("i", {
1743
- class: U(i.icon),
1744
- "data-testid": `sidebar-link-${i.screen}`
1745
- }, null, 10, bo),
1746
- o("div", null, K(i.tooltip), 1)
1747
- ], 64)) : (r(), L(d, {
1748
- key: 0,
1749
- content: i.tooltip
1750
- }, {
1751
- default: k(() => [
1752
- o("a", {
1753
- onClick: _((w) => e.selectItem(i.screen), ["prevent", "stop"]),
1754
- href: e.getUrl(i.screen),
1755
- target: "_blank",
1756
- "data-testid": `sidebar-link-${i.screen}`
1757
- }, [
1758
- o("i", {
1759
- class: U(i.icon)
1760
- }, null, 2)
1761
- ], 8, po)
1762
- ]),
1763
- _: 2
1764
- }, 1032, ["content"]))
1765
- ], 10, vo))), 128)),
1766
- o("div", {
1767
- class: U(["sidebar-bottom-icons", { "sidebar-bottom-icons-mobile": e.isMobile }])
1768
- }, [
1769
- o("div", {
1770
- class: U(["sidebar-icon", { selected: e.active == "settings", "sidebar-icon-margin": !e.isMobile }]),
1771
- onClick: t[2] || (t[2] = (i) => e.selectItem("settings")),
1772
- "data-testid": "sidebar-icon-settings"
1773
- }, [
1774
- e.isMobile ? (r(), h(V, { key: 1 }, [
1775
- t[5] || (t[5] = o("i", { class: "mdi mdi-cog-outline" }, null, -1)),
1776
- t[6] || (t[6] = o("div", null, "Settings", -1))
1777
- ], 64)) : (r(), L(d, {
1778
- key: 0,
1779
- content: "Settings"
1780
- }, {
1781
- default: k(() => [...t[4] || (t[4] = [
1782
- o("i", { class: "mdi mdi-cog-outline" }, null, -1)
1783
- ])]),
1784
- _: 1
1785
- }))
1786
- ], 2),
1787
- o("div", {
1788
- class: U(["sidebar-icon", { selected: e.active == "profile", "sidebar-icon-margin": !e.isMobile }]),
1789
- "data-testid": "sidebar-icon-profile",
1790
- onClick: t[3] || (t[3] = (i) => e.selectItem("profile"))
1791
- }, [
1792
- e.isMobile ? (r(), h(V, { key: 1 }, [
1793
- t[8] || (t[8] = o("i", { class: "mdi mdi-account-outline" }, null, -1)),
1794
- t[9] || (t[9] = o("div", null, "Profile", -1))
1795
- ], 64)) : (r(), L(d, {
1796
- key: 0,
1797
- content: "Profile"
1798
- }, {
1799
- default: k(() => [...t[7] || (t[7] = [
1800
- o("i", { class: "mdi mdi-account-outline" }, null, -1)
1801
- ])]),
1802
- _: 1
1803
- }))
1804
- ], 2)
1805
- ], 2)
1806
- ]),
1807
- o("div", {
1808
- class: U(["sidebar-content", { "sidebar-content-collapsed": e.contentCollapsed && !e.isMobile }]),
1809
- style: de(e.contentCollapsed && !e.isMobile ? {} : { width: e.containerWidth - 40 + "px" })
1810
- }, [
1811
- T(N(p, {
1812
- activeEditor: e.activeEditor,
1813
- onEditorSelected: e.editorSelected,
1814
- onSaveEditors: e.saveEditors
1815
- }, null, 8, ["activeEditor", "onEditorSelected", "onSaveEditors"]), [
1816
- [W, e.active === "editors"]
1817
- ]),
1818
- T(N(c, {
1819
- onConnectionKeySelected: e.connectionKeySelected,
1820
- onToggleMobileMenu: e.toggleMobileMenu,
1821
- activeConnectionKey: e.activeConnectionKey
1822
- }, null, 8, ["onConnectionKeySelected", "onToggleMobileMenu", "activeConnectionKey"]), [
1823
- [W, e.active === "connections"]
1824
- ]),
1825
- T(N(u, {
1826
- onLlmConnectionKeySelected: e.llmKeySelected,
1827
- onLlmOpenView: e.llmOpenView,
1828
- onCreateNewChat: e.createNewChat,
1829
- activeLLMKey: e.activeLLMKey
1830
- }, null, 8, ["onLlmConnectionKeySelected", "onLlmOpenView", "onCreateNewChat", "activeLLMKey"]), [
1831
- [W, e.active === "llms"]
1832
- ]),
1833
- T(N(a, {
1834
- onModelKeySelected: e.modelKeySelected,
1835
- activeModelKey: e.activeModelKey
1836
- }, null, 8, ["onModelKeySelected", "activeModelKey"]), [
1837
- [W, e.active === "models"]
1838
- ]),
1839
- T(N(m, {
1840
- onDocumentationKeySelected: e.documentationKeySelected,
1841
- activeDocumentationKey: e.activeDocumentationKey
1842
- }, null, 8, ["onDocumentationKeySelected", "activeDocumentationKey"]), [
1843
- [W, e.active === "tutorial"]
1844
- ]),
1845
- T(N(f, {
1846
- onDashboardKeySelected: e.dashboardKeySelected,
1847
- onSaveEditors: e.saveDashboards,
1848
- activeDashboardKey: e.activeDashboardKey,
1849
- onToggleMobileMenu: e.toggleMobileMenu
1850
- }, null, 8, ["onDashboardKeySelected", "onSaveEditors", "activeDashboardKey", "onToggleMobileMenu"]), [
1851
- [W, e.active === "dashboard"]
1852
- ]),
1853
- T(N(j, null, null, 512), [
1854
- [W, e.active === "community-models"]
1855
- ])
1856
- ], 6)
1857
- ]);
1858
- }
1859
- const ko = /* @__PURE__ */ F(xt, [["render", ho], ["__scopeId", "data-v-1c35bb00"]]);
1860
- export {
1861
- ko as default
1862
- };