windmill-components 1.613.4 → 1.623.1

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 (427) hide show
  1. package/package/assets/tokens/tokens.json +1 -11
  2. package/package/ata/apis.js +5 -78
  3. package/package/components/AddUser.svelte +1 -1
  4. package/package/components/CenteredModal.svelte +24 -32
  5. package/package/components/CenteredModal.svelte.d.ts +27 -7
  6. package/package/components/CenteredPage.svelte +2 -5
  7. package/package/components/CenteredPage.svelte.d.ts +0 -2
  8. package/package/components/ConcurrentJobsChart.svelte +2 -3
  9. package/package/components/ConcurrentJobsChart.svelte.d.ts +2 -2
  10. package/package/components/CustomPopover.svelte +23 -20
  11. package/package/components/CustomPopover.svelte.d.ts +39 -14
  12. package/package/components/DBManager.svelte +17 -105
  13. package/package/components/DBManager.svelte.d.ts +1 -2
  14. package/package/components/DBManagerContent.svelte +3 -4
  15. package/package/components/DBManagerContent.svelte.d.ts +1 -1
  16. package/package/components/DBTableEditor.svelte +171 -210
  17. package/package/components/DBTableEditor.svelte.d.ts +3 -22
  18. package/package/components/Description.svelte +2 -3
  19. package/package/components/Dev.svelte +2 -36
  20. package/package/components/DiffDrawer.svelte +29 -8
  21. package/package/components/DiffEditor.svelte +2 -32
  22. package/package/components/DisplayResult.svelte +24 -32
  23. package/package/components/Editor.svelte +16 -70
  24. package/package/components/Editor.svelte.d.ts +0 -3
  25. package/package/components/EditorBar.svelte +1 -1
  26. package/package/components/FakeMonacoPlaceHolder.svelte +1 -1
  27. package/package/components/FlowBuilder.svelte +11 -17
  28. package/package/components/FlowPreviewContent.svelte +2 -3
  29. package/package/components/FlowPreviewResult.svelte +4 -0
  30. package/package/components/FlowRestartButton.svelte +3 -2
  31. package/package/components/FlowRestartButton.svelte.d.ts +0 -3
  32. package/package/components/FlowStatusViewerInner.svelte +33 -50
  33. package/package/components/FlowStatusViewerInner.svelte.d.ts +1 -1
  34. package/package/components/FlowStatusWaitingForEvents.svelte +23 -27
  35. package/package/components/FlowStatusWaitingForEvents.svelte.d.ts +18 -4
  36. package/package/components/FlowViewer.svelte +2 -103
  37. package/package/components/FlowViewer.svelte.d.ts +3 -9
  38. package/package/components/ForkWorkspaceBanner.svelte +13 -16
  39. package/package/components/GraphqlSchemaViewer.svelte +1 -8
  40. package/package/components/HistoricInputs.svelte +27 -25
  41. package/package/components/HistoricInputs.svelte.d.ts +2 -2
  42. package/package/components/InstanceSetting.svelte +0 -38
  43. package/package/components/InviteUser.svelte +42 -16
  44. package/package/components/InviteUser.svelte.d.ts +18 -4
  45. package/package/components/JsonInputs.svelte +8 -6
  46. package/package/components/JsonInputs.svelte.d.ts +8 -7
  47. package/package/components/LogViewer.svelte +33 -91
  48. package/package/components/Login.svelte +0 -21
  49. package/package/components/ManualPopover.svelte +6 -5
  50. package/package/components/ManualPopover.svelte.d.ts +35 -9
  51. package/package/components/MemoryFootprintViewer.svelte +6 -2
  52. package/package/components/ModulePreview.svelte +21 -23
  53. package/package/components/ModulePreview.svelte.d.ts +0 -1
  54. package/package/components/Path.svelte +2 -2
  55. package/package/components/Path.svelte.d.ts +1 -1
  56. package/package/components/ResourcePicker.svelte +0 -3
  57. package/package/components/ResourcePicker.svelte.d.ts +0 -1
  58. package/package/components/RunButton.svelte +15 -5
  59. package/package/components/RunButton.svelte.d.ts +19 -7
  60. package/package/components/RunChart.svelte +4 -8
  61. package/package/components/RunChart.svelte.d.ts +2 -2
  62. package/package/components/RunFormAdvancedPopup.svelte +1 -1
  63. package/package/components/RunsPage.svelte +539 -170
  64. package/package/components/RunsPage.svelte.d.ts +5 -5
  65. package/package/components/S3FilePicker.svelte +11 -7
  66. package/package/components/S3FilePickerInner.svelte +3 -2
  67. package/package/components/S3FilePickerInner.svelte.d.ts +2 -2
  68. package/package/components/SavedInputs.svelte +416 -0
  69. package/package/components/{tutorials/workspace/WorkspaceOnboardingOperatorTutorial.svelte.d.ts → SavedInputs.svelte.d.ts} +11 -8
  70. package/package/components/SchemaForm.svelte +19 -26
  71. package/package/components/SchemaFormWithArgPicker.svelte +3 -4
  72. package/package/components/ScriptBuilder.svelte +1 -1
  73. package/package/components/ScriptEditor.svelte +101 -575
  74. package/package/components/Section.svelte +1 -3
  75. package/package/components/ServiceLogsInner.svelte +4 -4
  76. package/package/components/SimpleEditor.svelte +2 -46
  77. package/package/components/SuperadminSettingsInner.svelte +1 -1
  78. package/package/components/TemplateEditor.svelte +29 -54
  79. package/package/components/TemplateEditor.svelte.d.ts +102 -13
  80. package/package/components/UserSettings.svelte +1 -1
  81. package/package/components/WorkerTagPicker.svelte +1 -1
  82. package/package/components/WorkerTagSelect.svelte +2 -5
  83. package/package/components/WorkspaceTutorials.svelte +0 -5
  84. package/package/components/apps/components/buttons/AppButton.svelte +6 -21
  85. package/package/components/apps/components/buttons/AppForm.svelte +1 -2
  86. package/package/components/apps/components/buttons/AppFormButton.svelte +1 -2
  87. package/package/components/apps/components/display/dbtable/AppDbExplorer.svelte +4 -0
  88. package/package/components/apps/components/display/dbtable/metadata.js +30 -69
  89. package/package/components/apps/components/display/dbtable/queries/createTable.d.ts +24 -2
  90. package/package/components/apps/components/display/dbtable/queries/createTable.js +25 -11
  91. package/package/components/apps/components/display/dbtable/queries/select.d.ts +0 -2
  92. package/package/components/apps/components/display/dbtable/queries/select.js +6 -37
  93. package/package/components/apps/components/display/dbtable/utils.d.ts +1 -10
  94. package/package/components/apps/components/display/dbtable/utils.js +20 -52
  95. package/package/components/apps/components/helpers/HiddenComponent.svelte +1 -1
  96. package/package/components/apps/components/helpers/InputValue.svelte +1 -1
  97. package/package/components/apps/components/helpers/ResolveConfig.svelte +1 -1
  98. package/package/components/apps/components/helpers/RunnableComponent.svelte +2 -3
  99. package/package/components/apps/components/helpers/RunnableComponent.svelte.d.ts +1 -1
  100. package/package/components/apps/components/helpers/RunnableWrapper.svelte +2 -2
  101. package/package/components/apps/editor/AppEditorHeader.svelte +1 -8
  102. package/package/components/apps/editor/AppEditorHeaderDeploy.svelte +29 -32
  103. package/package/components/apps/editor/AppEditorHeaderDeploy.svelte.d.ts +2 -2
  104. package/package/components/apps/editor/AppEditorHeaderDeployInitialDraft.svelte +4 -4
  105. package/package/components/apps/editor/AppEditorHeaderDeployInitialDraft.svelte.d.ts +3 -3
  106. package/package/components/apps/editor/PublicApp.svelte +30 -49
  107. package/package/components/apps/editor/PublicApp.svelte.d.ts +0 -1
  108. package/package/components/apps/editor/inlineScriptsPanel/InlineScriptRunnableByPath.svelte +7 -77
  109. package/package/components/apps/editor/inlineScriptsPanel/InlineScriptRunnableByPath.svelte.d.ts +2 -2
  110. package/package/components/apps/editor/inlineScriptsPanel/utils.d.ts +2 -2
  111. package/package/components/apps/editor/inlineScriptsPanel/utils.js +1 -10
  112. package/package/components/apps/inputType.d.ts +1 -6
  113. package/package/components/auditLogs/AuditLogsFilters.svelte +17 -9
  114. package/package/components/auditLogs/AuditLogsFilters.svelte.d.ts +1 -1
  115. package/package/components/common/button/model.js +1 -1
  116. package/package/components/common/calendarPicker/CalendarPicker.svelte.d.ts +1 -1
  117. package/package/components/common/languageIcons/TypeScript.svelte +3 -5
  118. package/package/components/common/languageIcons/TypeScript.svelte.d.ts +0 -1
  119. package/package/components/common/modal/Modal.svelte +3 -3
  120. package/package/components/copilot/autocomplete/Autocompletor.js +2 -3
  121. package/package/components/copilot/chat/AIButtonStyle.d.ts +1 -1
  122. package/package/components/copilot/chat/AIButtonStyle.js +1 -2
  123. package/package/components/copilot/chat/AIChat.svelte +1 -3
  124. package/package/components/copilot/chat/AIChatDisplay.svelte +4 -89
  125. package/package/components/copilot/chat/AIChatInput.svelte +0 -275
  126. package/package/components/copilot/chat/AIChatManager.svelte.js +1 -107
  127. package/package/components/copilot/chat/AiChatLayout.svelte +30 -15
  128. package/package/components/copilot/chat/ContextElementBadge.svelte +0 -44
  129. package/package/components/copilot/chat/DatatableCreationPolicy.svelte +33 -32
  130. package/package/components/copilot/chat/ProviderModelSelector.svelte +1 -1
  131. package/package/components/copilot/chat/__tests__/app/appEvalHelpers.js +0 -3
  132. package/package/components/copilot/chat/__tests__/flow/flowEvalHelpers.js +0 -4
  133. package/package/components/copilot/chat/app/core.d.ts +15 -56
  134. package/package/components/copilot/chat/app/core.js +22 -141
  135. package/package/components/copilot/chat/context.d.ts +2 -59
  136. package/package/components/copilot/chat/context.js +2 -6
  137. package/package/components/copilot/chat/flow/FlowAIChat.svelte +0 -22
  138. package/package/components/copilot/chat/flow/core.d.ts +1 -3
  139. package/package/components/copilot/chat/flow/core.js +2 -29
  140. package/package/components/copilot/chat/flow/openFlow.json +1 -1
  141. package/package/components/copilot/chat/flow/openFlowZod.d.ts +0 -1
  142. package/package/components/copilot/chat/flow/openFlowZod.js +2 -14
  143. package/package/components/copilot/chat/script/core.d.ts +1 -4
  144. package/package/components/copilot/chat/script/core.js +2 -38
  145. package/package/components/copilot/chat/shared.d.ts +0 -10
  146. package/package/components/copilot/chat/shared.js +0 -24
  147. package/package/components/copilot/lib.d.ts +1 -1
  148. package/package/components/custom_ui.d.ts +0 -2
  149. package/package/components/dbOps.d.ts +4 -18
  150. package/package/components/dbOps.js +3 -25
  151. package/package/components/flows/CreateActionsApp.svelte +4 -6
  152. package/package/components/flows/DebounceLimit.svelte.d.ts +1 -1
  153. package/package/components/flows/FlowHistoryInner.svelte +4 -15
  154. package/package/components/flows/content/AgentToolWrapper.svelte +1 -1
  155. package/package/components/flows/content/FlowInput.svelte +37 -211
  156. package/package/components/flows/content/FlowModuleComponent.svelte +67 -553
  157. package/package/components/flows/content/FlowModuleEarlyStop.svelte +10 -8
  158. package/package/components/flows/content/FlowModuleHeader.svelte +4 -7
  159. package/package/components/flows/content/FlowModuleWorkerTagSelect.svelte +1 -1
  160. package/package/components/flows/content/McpToolEditor.svelte +37 -50
  161. package/package/components/flows/content/McpToolEditor.svelte.d.ts +1 -0
  162. package/package/components/flows/conversations/FlowChat.svelte +2 -16
  163. package/package/components/flows/conversations/FlowChat.svelte.d.ts +1 -2
  164. package/package/components/flows/conversations/FlowChatInterface.svelte +6 -103
  165. package/package/components/flows/conversations/FlowChatInterface.svelte.d.ts +0 -2
  166. package/package/components/flows/conversations/FlowChatManager.svelte.js +21 -53
  167. package/package/components/flows/header/FlowImportExportMenu.svelte +1 -1
  168. package/package/components/flows/propPicker/PropPickerWrapper.svelte +1 -3
  169. package/package/components/flows/types.d.ts +0 -2
  170. package/package/components/git_sync/GitSyncRepositoryCard.svelte +8 -16
  171. package/package/components/home/ItemsList.svelte +5 -5
  172. package/package/components/home/TutorialBanner.svelte +18 -34
  173. package/package/components/icons/CssIcon.svelte +0 -20
  174. package/package/components/icons/CssIcon.svelte.d.ts +25 -7
  175. package/package/components/icons/JavaScriptIcon.svelte +2 -10
  176. package/package/components/icons/JavaScriptIcon.svelte.d.ts +0 -1
  177. package/package/components/icons/JsonIcon.svelte +2 -8
  178. package/package/components/icons/JsonIcon.svelte.d.ts +0 -1
  179. package/package/components/icons/ReactIcon.svelte +2 -10
  180. package/package/components/icons/ReactIcon.svelte.d.ts +0 -1
  181. package/package/components/icons/SvelteIcon.svelte +2 -10
  182. package/package/components/icons/SvelteIcon.svelte.d.ts +0 -1
  183. package/package/components/icons/VueIcon.svelte +2 -10
  184. package/package/components/icons/VueIcon.svelte.d.ts +0 -1
  185. package/package/components/instanceSettings.d.ts +1 -2
  186. package/package/components/instanceSettings.js +1 -32
  187. package/package/components/jobs/JobPreview.svelte +39 -46
  188. package/package/components/jobs/JobPreview.svelte.d.ts +0 -1
  189. package/package/components/monacoLanguagesOptions.js +15 -16
  190. package/package/components/propertyPicker/PropPicker.svelte +2 -16
  191. package/package/components/propertyPicker/PropPicker.svelte.d.ts +0 -2
  192. package/package/components/raw_apps/DefaultDatabaseSelector.svelte +5 -9
  193. package/package/components/raw_apps/FileEditorIcon.svelte +7 -12
  194. package/package/components/raw_apps/FileEditorIcon.svelte.d.ts +0 -2
  195. package/package/components/raw_apps/FileTreeNode.svelte +83 -119
  196. package/package/components/raw_apps/RawAppBackgroundRunner.svelte +8 -88
  197. package/package/components/raw_apps/RawAppDataTableList.svelte +9 -12
  198. package/package/components/raw_apps/RawAppEditor.svelte +68 -218
  199. package/package/components/raw_apps/RawAppEditorHeader.svelte +16 -33
  200. package/package/components/raw_apps/RawAppHistoryList.svelte +80 -264
  201. package/package/components/raw_apps/RawAppHistoryList.svelte.d.ts +0 -1
  202. package/package/components/raw_apps/RawAppHistoryManager.svelte.d.ts +1 -15
  203. package/package/components/raw_apps/RawAppHistoryManager.svelte.js +12 -46
  204. package/package/components/raw_apps/RawAppInlineScriptEditor.svelte +47 -549
  205. package/package/components/raw_apps/RawAppInlineScriptEditor.svelte.d.ts +5 -31
  206. package/package/components/raw_apps/RawAppInlineScriptPanelList.svelte +18 -25
  207. package/package/components/raw_apps/RawAppInlineScriptPanelList.svelte.d.ts +0 -1
  208. package/package/components/raw_apps/RawAppInlineScriptRunnable.svelte +10 -141
  209. package/package/components/raw_apps/RawAppInlineScriptRunnable.svelte.d.ts +0 -8
  210. package/package/components/raw_apps/RawAppInlineScriptsPanel.svelte +1 -2
  211. package/package/components/raw_apps/RawAppInlineScriptsPanel.svelte.d.ts +1 -9
  212. package/package/components/raw_apps/RawAppInputsSpecEditor.svelte +3 -47
  213. package/package/components/raw_apps/RawAppInputsSpecEditor.svelte.d.ts +2 -2
  214. package/package/components/raw_apps/RawAppModules.svelte +7 -13
  215. package/package/components/raw_apps/RawAppPreview.svelte +6 -48
  216. package/package/components/raw_apps/RawAppSidebar.svelte +125 -194
  217. package/package/components/raw_apps/RawAppSidebar.svelte.d.ts +0 -1
  218. package/package/components/raw_apps/utils.d.ts +1 -1
  219. package/package/components/raw_apps/utils.js +18 -76
  220. package/package/components/runs/JobsLoader.svelte +468 -0
  221. package/package/components/runs/JobsLoader.svelte.d.ts +49 -0
  222. package/package/components/runs/ManuelDatePicker.svelte +3 -3
  223. package/package/components/runs/ManuelDatePicker.svelte.d.ts +3 -3
  224. package/package/components/runs/NoWorkerWithTagWarning.svelte +1 -5
  225. package/package/components/runs/RunsFilter.svelte +63 -75
  226. package/package/components/runs/RunsFilter.svelte.d.ts +4 -35
  227. package/package/components/runs/RunsQueue.svelte.d.ts +1 -1
  228. package/package/components/runs/RunsTable.svelte +1 -1
  229. package/package/components/runs/RunsTable.svelte.d.ts +1 -1
  230. package/package/components/schema/SchemaPicker.svelte +92 -0
  231. package/package/components/{tutorials/RunsTutorial.svelte.d.ts → schema/SchemaPicker.svelte.d.ts} +12 -11
  232. package/package/components/scriptEditor/LogPanel.svelte +2 -17
  233. package/package/components/scriptEditor/LogPanel.svelte.d.ts +0 -2
  234. package/package/components/select/SelectDropdown.svelte +2 -2
  235. package/package/components/settings/ChangeWorkspaceColor.svelte +3 -4
  236. package/package/components/settings/ChangeWorkspaceId.svelte +10 -14
  237. package/package/components/settings/ChangeWorkspaceName.svelte +6 -7
  238. package/package/components/settings/CreateToken.svelte +1 -1
  239. package/package/components/settings/UserAIPromptsSettings.svelte +15 -56
  240. package/package/components/settings/WorkspaceOperatorSettings.svelte +85 -68
  241. package/package/components/settings/WorkspaceUserSettings.svelte +406 -531
  242. package/package/components/sidebar/MenuButton.svelte +24 -46
  243. package/package/components/sidebar/MenuButton.svelte.d.ts +0 -2
  244. package/package/components/sidebar/MultiplayerMenu.svelte +3 -3
  245. package/package/components/sidebar/OperatorMenu.svelte +88 -63
  246. package/package/components/sidebar/SidebarContent.svelte +2 -7
  247. package/package/components/sidebar/UserMenu.svelte +1 -1
  248. package/package/components/sidebar/WorkspaceMenu.svelte +85 -35
  249. package/package/components/sqlTypeService.js +3 -4
  250. package/package/components/table/DataTable.svelte +2 -3
  251. package/package/components/table/DataTable.svelte.d.ts +0 -1
  252. package/package/components/text_input/TextInput.svelte +0 -3
  253. package/package/components/text_input/TextInput.svelte.d.ts +0 -2
  254. package/package/components/triggers/utils.js +1 -0
  255. package/package/components/tutorials/FlowBuilderLiveTutorial.svelte +35 -6
  256. package/package/components/tutorials/TroubleshootFlowTutorial.svelte +20 -5
  257. package/package/components/tutorials/utils.d.ts +0 -16
  258. package/package/components/tutorials/utils.js +0 -96
  259. package/package/components/vscode.js +6 -6
  260. package/package/components/workspaceSettings/AISettings.svelte +108 -146
  261. package/package/components/workspaceSettings/CreateWorkspace.svelte +12 -26
  262. package/package/components/workspaceSettings/DucklakeSettings.svelte +23 -46
  263. package/package/components/workspaceSettings/DucklakeSettings.svelte.d.ts +1 -2
  264. package/package/components/workspaceSettings/ModelTokenLimits.svelte +18 -14
  265. package/package/components/workspaceSettings/StorageSettings.svelte +241 -280
  266. package/package/components/workspaceSettings/StorageSettings.svelte.d.ts +0 -1
  267. package/package/consts.js +1 -4
  268. package/package/gen/core/OpenAPI.js +1 -1
  269. package/package/gen/schemas.gen.d.ts +0 -126
  270. package/package/gen/schemas.gen.js +0 -126
  271. package/package/gen/services.gen.d.ts +2 -151
  272. package/package/gen/services.gen.js +4 -301
  273. package/package/gen/types.gen.d.ts +2 -584
  274. package/package/hubPaths.json +2 -3
  275. package/package/infer.js +0 -2
  276. package/package/logout.d.ts +2 -0
  277. package/package/logout.js +23 -2
  278. package/package/monaco_workers/graphql.worker.bundle.js +121 -121
  279. package/package/navigation.d.ts +1 -1
  280. package/package/rawAppWmillTs.d.ts +0 -11
  281. package/package/rawAppWmillTs.js +1 -38
  282. package/package/svelte5Utils.svelte.d.ts +1 -7
  283. package/package/svelte5Utils.svelte.js +2 -23
  284. package/package/tutorialUtils.js +4 -0
  285. package/package/tutorials/config.js +3 -31
  286. package/package/tutorials/roleUtils.d.ts +1 -1
  287. package/package/tutorials/roleUtils.js +2 -6
  288. package/package/utils.js +1 -159
  289. package/package.json +14 -16
  290. package/dist/sharedUtils/assets/tokens/colorTokensConfig.d.ts +0 -2
  291. package/dist/sharedUtils/base.d.ts +0 -1
  292. package/dist/sharedUtils/cloud.d.ts +0 -1
  293. package/dist/sharedUtils/common.d.ts +0 -111
  294. package/dist/sharedUtils/components/apps/components/display/dbtable/queries/count.d.ts +0 -5
  295. package/dist/sharedUtils/components/apps/components/display/dbtable/queries/delete.d.ts +0 -5
  296. package/dist/sharedUtils/components/apps/components/display/dbtable/queries/insert.d.ts +0 -5
  297. package/dist/sharedUtils/components/apps/components/display/dbtable/queries/select.d.ts +0 -13
  298. package/dist/sharedUtils/components/apps/components/display/dbtable/queries/update.d.ts +0 -11
  299. package/dist/sharedUtils/components/apps/components/display/dbtable/utils.d.ts +0 -95
  300. package/dist/sharedUtils/components/apps/editor/appPolicy.d.ts +0 -6
  301. package/dist/sharedUtils/components/apps/editor/appUtilsCore.d.ts +0 -7
  302. package/dist/sharedUtils/components/apps/editor/appUtilsS3.d.ts +0 -33
  303. package/dist/sharedUtils/components/apps/editor/commonAppUtils.d.ts +0 -10
  304. package/dist/sharedUtils/components/apps/editor/component/components.d.ts +0 -5371
  305. package/dist/sharedUtils/components/apps/editor/component/default-codes.d.ts +0 -3
  306. package/dist/sharedUtils/components/apps/editor/component/index.d.ts +0 -3
  307. package/dist/sharedUtils/components/apps/editor/component/sets.d.ts +0 -7
  308. package/dist/sharedUtils/components/apps/editor/componentsPanel/componentDefaultProps.d.ts +0 -3
  309. package/dist/sharedUtils/components/apps/gridUtils.d.ts +0 -14
  310. package/dist/sharedUtils/components/apps/inputType.d.ts +0 -178
  311. package/dist/sharedUtils/components/apps/rx.d.ts +0 -29
  312. package/dist/sharedUtils/components/apps/sharedTypes.d.ts +0 -21
  313. package/dist/sharedUtils/components/apps/types.d.ts +0 -274
  314. package/dist/sharedUtils/components/assets/lib.d.ts +0 -25
  315. package/dist/sharedUtils/components/common/alert/model.d.ts +0 -2
  316. package/dist/sharedUtils/components/common/badge/model.d.ts +0 -8
  317. package/dist/sharedUtils/components/common/button/model.d.ts +0 -45
  318. package/dist/sharedUtils/components/common/fileInput/model.d.ts +0 -1
  319. package/dist/sharedUtils/components/common/index.d.ts +0 -24
  320. package/dist/sharedUtils/components/common/skeleton/model.d.ts +0 -21
  321. package/dist/sharedUtils/components/dbTypes.d.ts +0 -14
  322. package/dist/sharedUtils/components/diff_drawer.d.ts +0 -26
  323. package/dist/sharedUtils/components/ducklake.d.ts +0 -1
  324. package/dist/sharedUtils/components/flows/scheduleUtils.d.ts +0 -7
  325. package/dist/sharedUtils/components/icons/index.d.ts +0 -101
  326. package/dist/sharedUtils/components/random_positive_adjetive.d.ts +0 -1
  327. package/dist/sharedUtils/components/raw_apps/rawAppPolicy.d.ts +0 -10
  328. package/dist/sharedUtils/components/raw_apps/utils.d.ts +0 -15
  329. package/dist/sharedUtils/components/triggers/email/utils.d.ts +0 -4
  330. package/dist/sharedUtils/components/triggers/gcp/utils.d.ts +0 -2
  331. package/dist/sharedUtils/components/triggers/http/utils.d.ts +0 -11
  332. package/dist/sharedUtils/components/triggers/kafka/utils.d.ts +0 -2
  333. package/dist/sharedUtils/components/triggers/mqtt/utils.d.ts +0 -2
  334. package/dist/sharedUtils/components/triggers/nats/utils.d.ts +0 -2
  335. package/dist/sharedUtils/components/triggers/postgres/utils.d.ts +0 -8
  336. package/dist/sharedUtils/components/triggers/sqs/utils.d.ts +0 -2
  337. package/dist/sharedUtils/components/triggers/triggers.svelte.d.ts +0 -32
  338. package/dist/sharedUtils/components/triggers/utils.d.ts +0 -80
  339. package/dist/sharedUtils/components/triggers/websocket/utils.d.ts +0 -2
  340. package/dist/sharedUtils/components/triggers.d.ts +0 -20
  341. package/dist/sharedUtils/gen/core/ApiError.d.ts +0 -10
  342. package/dist/sharedUtils/gen/core/ApiRequestOptions.d.ts +0 -13
  343. package/dist/sharedUtils/gen/core/ApiResult.d.ts +0 -7
  344. package/dist/sharedUtils/gen/core/CancelablePromise.d.ts +0 -26
  345. package/dist/sharedUtils/gen/core/OpenAPI.d.ts +0 -27
  346. package/dist/sharedUtils/gen/core/request.d.ts +0 -29
  347. package/dist/sharedUtils/gen/index.d.ts +0 -6
  348. package/dist/sharedUtils/gen/schemas.gen.d.ts +0 -7036
  349. package/dist/sharedUtils/gen/services.gen.d.ts +0 -6047
  350. package/dist/sharedUtils/gen/types.gen.d.ts +0 -21881
  351. package/dist/sharedUtils/history.svelte.d.ts +0 -9
  352. package/dist/sharedUtils/hub.d.ts +0 -49
  353. package/dist/sharedUtils/jsr.json +0 -6
  354. package/dist/sharedUtils/lib.d.ts +0 -5
  355. package/dist/sharedUtils/lib.es.js +0 -1588
  356. package/dist/sharedUtils/package.json +0 -12
  357. package/dist/sharedUtils/schema.d.ts +0 -3
  358. package/dist/sharedUtils/stores.d.ts +0 -97
  359. package/dist/sharedUtils/svelte5Utils.svelte.d.ts +0 -80
  360. package/dist/sharedUtils/toast.d.ts +0 -8
  361. package/dist/sharedUtils/utils.d.ts +0 -265
  362. package/package/components/FlowDiffViewer.svelte +0 -37
  363. package/package/components/FlowDiffViewer.svelte.d.ts +0 -7
  364. package/package/components/JobOtelTraces.svelte +0 -287
  365. package/package/components/JobOtelTraces.svelte.d.ts +0 -6
  366. package/package/components/apps/components/display/dbtable/queries/alterTable.d.ts +0 -46
  367. package/package/components/apps/components/display/dbtable/queries/alterTable.js +0 -314
  368. package/package/components/apps/components/display/dbtable/queries/alterTable.test.d.ts +0 -1
  369. package/package/components/apps/components/display/dbtable/queries/alterTable.test.js +0 -867
  370. package/package/components/apps/components/display/dbtable/queries/dbQueriesUtils.d.ts +0 -9
  371. package/package/components/apps/components/display/dbtable/queries/dbQueriesUtils.js +0 -45
  372. package/package/components/apps/components/display/dbtable/queries/relationalKeys.d.ts +0 -47
  373. package/package/components/apps/components/display/dbtable/queries/relationalKeys.js +0 -402
  374. package/package/components/apps/components/display/dbtable/tableEditor.d.ts +0 -35
  375. package/package/components/apps/components/display/dbtable/tableEditor.js +0 -49
  376. package/package/components/copilot/chat/AppAvailableContextList.svelte +0 -263
  377. package/package/components/copilot/chat/AppAvailableContextList.svelte.d.ts +0 -13
  378. package/package/components/debug/DebugConsole.svelte +0 -277
  379. package/package/components/debug/DebugConsole.svelte.d.ts +0 -13
  380. package/package/components/debug/DebugPanel.svelte +0 -97
  381. package/package/components/debug/DebugPanel.svelte.d.ts +0 -11
  382. package/package/components/debug/DebugToolbar.svelte +0 -148
  383. package/package/components/debug/DebugToolbar.svelte.d.ts +0 -17
  384. package/package/components/debug/DebugVariableViewer.svelte +0 -115
  385. package/package/components/debug/DebugVariableViewer.svelte.d.ts +0 -11
  386. package/package/components/debug/MonacoDebugger.svelte +0 -384
  387. package/package/components/debug/MonacoDebugger.svelte.d.ts +0 -15
  388. package/package/components/debug/dapClient.d.ts +0 -192
  389. package/package/components/debug/dapClient.js +0 -426
  390. package/package/components/debug/debugUtils.d.ts +0 -30
  391. package/package/components/debug/debugUtils.js +0 -131
  392. package/package/components/debug/index.d.ts +0 -75
  393. package/package/components/debug/index.js +0 -82
  394. package/package/components/flows/content/FlowEditorDrawer.svelte +0 -124
  395. package/package/components/flows/content/FlowEditorDrawer.svelte.d.ts +0 -22
  396. package/package/components/flows/content/McpOAuthConnect.svelte +0 -217
  397. package/package/components/flows/content/McpOAuthConnect.svelte.d.ts +0 -7
  398. package/package/components/icons/HtmlIcon.svelte +0 -20
  399. package/package/components/icons/HtmlIcon.svelte.d.ts +0 -8
  400. package/package/components/icons/LessIcon.svelte +0 -16
  401. package/package/components/icons/LessIcon.svelte.d.ts +0 -8
  402. package/package/components/icons/MarkdownIcon.svelte +0 -20
  403. package/package/components/icons/MarkdownIcon.svelte.d.ts +0 -8
  404. package/package/components/icons/SassIcon.svelte +0 -28
  405. package/package/components/icons/SassIcon.svelte.d.ts +0 -8
  406. package/package/components/icons/YamlIcon.svelte +0 -20
  407. package/package/components/icons/YamlIcon.svelte.d.ts +0 -8
  408. package/package/components/instanceSettings/SecretBackendConfig.svelte +0 -514
  409. package/package/components/instanceSettings/SecretBackendConfig.svelte.d.ts +0 -8
  410. package/package/components/raw_apps/RunnableRow.svelte +0 -41
  411. package/package/components/raw_apps/RunnableRow.svelte.d.ts +0 -11
  412. package/package/components/runs/useJobsLoader.svelte.d.ts +0 -34
  413. package/package/components/runs/useJobsLoader.svelte.js +0 -507
  414. package/package/components/settings/AIPromptsModal.svelte +0 -88
  415. package/package/components/settings/AIPromptsModal.svelte.d.ts +0 -11
  416. package/package/components/tutorials/RunsTutorial.svelte +0 -399
  417. package/package/components/tutorials/workspace/WorkspaceOnboardingOperatorTutorial.svelte +0 -133
  418. package/package/components/workspace/WorkspaceCard.svelte +0 -184
  419. package/package/components/workspace/WorkspaceCard.svelte.d.ts +0 -24
  420. package/package/components/workspace/WorkspaceIcon.svelte +0 -21
  421. package/package/components/workspace/WorkspaceIcon.svelte.d.ts +0 -9
  422. package/package/components/workspace/WorkspaceTreeView.svelte +0 -331
  423. package/package/components/workspace/WorkspaceTreeView.svelte.d.ts +0 -15
  424. package/package/logoutKit.d.ts +0 -2
  425. package/package/logoutKit.js +0 -26
  426. package/package/svelte5UtilsKit.svelte.d.ts +0 -3
  427. package/package/svelte5UtilsKit.svelte.js +0 -30
@@ -1,7 +1,6 @@
1
1
  <script module lang="ts">export const sidebarClasses = {
2
2
  text: 'text-primary-inverse dark:text-primary data-[light-mode=true]:text-primary text-xs font-normal',
3
3
  selectedText: 'text-emphasis-inverse dark:text-emphasis text-xs font-normal',
4
- sublabelText: 'text-secondary-inverse dark:text-secondary text-2xs font-normal',
5
4
  hoverBg: 'transition-colors hover:bg-surface-hover-inverse dark:hover:bg-surface-hover data-[light-mode=true]:hover:bg-surface-hover'
6
5
  };
7
6
  </script>
@@ -12,7 +11,7 @@ import { createEventDispatcher } from 'svelte';
12
11
  import SideBarNotification from './SideBarNotification.svelte';
13
12
  import { conditionalMelt } from '../../utils';
14
13
  import { triggerableByAI } from '../../actions/triggerableByAI.svelte';
15
- let { aiId = undefined, aiDescription = undefined, label = undefined, sublabel = undefined, icon = undefined, iconClasses = null, iconProps = null, isCollapsed, disabled = false, lightMode = false, stopPropagationOnClick = false, shortcut = '', notificationsCount = 0, color = null, trigger = undefined, href = undefined, class: classNames = undefined } = $props();
14
+ let { aiId = undefined, aiDescription = undefined, label = undefined, icon = undefined, iconClasses = null, iconProps = null, isCollapsed, disabled = false, lightMode = false, stopPropagationOnClick = false, shortcut = '', notificationsCount = 0, color = null, trigger = undefined, href = undefined, class: classNames = undefined } = $props();
16
15
  let buttonRef = $state(undefined);
17
16
  let dispatch = createEventDispatcher();
18
17
  // Dynamic component based on whether href is provided
@@ -48,62 +47,41 @@ const Element = href ? 'a' : 'button';
48
47
  {href}
49
48
  data-light-mode={lightMode}
50
49
  class={twMerge(
51
- 'group flex items-center px-2 py-2 font-light rounded-md gap-2 w-full',
50
+ 'group flex items-center px-2 py-2 font-light rounded-md h-8 gap-3 w-full',
52
51
  sidebarClasses.hoverBg,
52
+ color ? 'border-4' : '',
53
53
  'transition-all relative',
54
- sublabel ? 'h-10' : 'h-8',
55
54
  classNames
56
55
  )}
56
+ style={color ? `border-color: ${color}; padding: 0 calc(0.5rem - 4px);` : ''}
57
57
  use:conditionalMelt={trigger}
58
58
  title={isCollapsed ? undefined : label}
59
59
  {...$trigger}
60
60
  >
61
61
  {#if icon}
62
62
  {@const SvelteComponent = icon}
63
- <div
64
- style="background-color: {color}"
65
- class={twMerge('rounded-full center-center', color ? 'p-1 -ml-1' : '')}
66
- >
67
- <SvelteComponent
68
- size={16}
69
- class={twMerge('flex-shrink-0', sidebarClasses.text, 'transition-colors', iconClasses)}
70
- {...iconProps}
71
- />
72
- </div>
63
+ <SvelteComponent
64
+ size={16}
65
+ class={twMerge('flex-shrink-0', sidebarClasses.text, 'transition-colors', iconClasses)}
66
+ {...iconProps}
67
+ />
73
68
  {/if}
74
69
 
75
- <div class="flex flex-col text-left grow min-w-0">
76
- {#if !isCollapsed && label}
77
- <div
78
- class={twMerge(
79
- 'whitespace-pre truncate w-full',
80
- sidebarClasses.text,
81
- 'transition-all',
82
- classNames
83
- )}
84
- title={label}
85
- >
86
- {label}
87
- <span
88
- class="pl-2 text-xs dark:text-secondary light:text-secondary-inverse font-semibold"
89
- >
90
- {shortcut}
91
- </span>
92
- </div>
93
- {/if}
94
-
95
- {#if sublabel}
96
- <div
97
- class={twMerge(
98
- 'whitespace-pre truncate w-full',
99
- sidebarClasses.sublabelText,
100
- 'transition-all',
101
- classNames
102
- )}
103
- title={sublabel}>{sublabel}</div
104
- >
105
- {/if}
106
- </div>
70
+ {#if !isCollapsed && label}
71
+ <span
72
+ class={twMerge(
73
+ 'whitespace-pre truncate',
74
+ sidebarClasses.text,
75
+ 'transition-all',
76
+ classNames
77
+ )}
78
+ >
79
+ {label}
80
+ <span class="pl-2 text-xs dark:text-secondary light:text-secondary-inverse font-semibold">
81
+ {shortcut}
82
+ </span>
83
+ </span>
84
+ {/if}
107
85
 
108
86
  {#if isCollapsed && notificationsCount > 0}
109
87
  <div class="absolute translate-x-1/2 translate-y-1/2 -top-2 right-1 flex h-fit w-fit">
@@ -1,7 +1,6 @@
1
1
  export declare const sidebarClasses: {
2
2
  text: string;
3
3
  selectedText: string;
4
- sublabelText: string;
5
4
  hoverBg: string;
6
5
  };
7
6
  import type { MenubarMenuElements } from '@melt-ui/svelte';
@@ -9,7 +8,6 @@ interface Props {
9
8
  aiId?: string | undefined;
10
9
  aiDescription?: string | undefined;
11
10
  label?: string | undefined;
12
- sublabel?: string | undefined;
13
11
  icon?: any | undefined;
14
12
  iconClasses?: string | null;
15
13
  iconProps?: any | null;
@@ -80,7 +80,7 @@ function showActivity(url) {
80
80
 
81
81
  {#if connected}
82
82
  <div class="divide-gray-100 border-t" role="none">
83
- <div class="px-2 text-xs text-secondary font-normal mt-1">Live activity</div>
83
+ <div class="px-2.5 text-xs font-semibold mt-1">Live activity</div>
84
84
  <div class="py-1 flex flex-col gap-y-1 max-h-48 overflow-auto" transition:slide>
85
85
  {#each Object.entries($awarenessStore ?? {}) as [user, url]}
86
86
  <div class="inline-flex gap-2 px-2 items-center">
@@ -93,8 +93,8 @@ function showActivity(url) {
93
93
  >
94
94
  </span>
95
95
  <div class="flex flex-col">
96
- <span class="text-xs text-primary truncate">{user}</span>
97
- <span class="text-2xs text-secondary truncate">{showActivity(url)}</span>
96
+ <span class="text-sm text-primary truncate">{user}</span>
97
+ <span class="text-xs text-primary truncate">{showActivity(url)}</span>
98
98
  </div>
99
99
  </div>
100
100
  {/each}
@@ -4,13 +4,13 @@ import MultiplayerMenu from './MultiplayerMenu.svelte';
4
4
  import { clearWorkspaceFromStorage, enterpriseLicense, superadmin, userWorkspaces, workspaceStore, tutorialsToDo, skippedAll } from '../../stores';
5
5
  import { twMerge } from 'tailwind-merge';
6
6
  import { USER_SETTINGS_HASH } from './settings';
7
- import { logout } from '../../logoutKit';
7
+ import { logout } from '../../logout';
8
8
  import DarkModeObserver from '../DarkModeObserver.svelte';
9
9
  import BarsStaggered from '../icons/BarsStaggered.svelte';
10
10
  import { Menu, Menubar, MenuItem } from '../meltComponents';
11
11
  import MenuButton, { sidebarClasses } from './MenuButton.svelte';
12
12
  import MenuLink from './MenuLink.svelte';
13
- import ResizeTransitionWrapper from '../common/ResizeTransitionWrapper.svelte';
13
+ import { onDestroy } from 'svelte';
14
14
  let darkMode = $state(false);
15
15
  let { isCollapsed = false, favoriteLinks = [] } = $props();
16
16
  let mainMenuLinks = $derived([
@@ -34,12 +34,6 @@ let mainMenuLinks = $derived([
34
34
  $workspaceStore &&
35
35
  $userWorkspaces.find((_) => _.id === $workspaceStore)?.operator_settings?.[link.id] ===
36
36
  true)));
37
- function filterLink(link) {
38
- if (!$userWorkspaces || !$workspaceStore)
39
- return false;
40
- let userWorkspace = $userWorkspaces.find((_) => _.id === $workspaceStore);
41
- return userWorkspace?.operator_settings?.[link.id] === true;
42
- }
43
37
  let secondMenuLinks = $derived([
44
38
  {
45
39
  label: 'Resources',
@@ -56,23 +50,6 @@ let secondMenuLinks = $derived([
56
50
  id: 'assets',
57
51
  href: `${base}/assets`
58
52
  },
59
- {
60
- label: 'Groups',
61
- id: 'groups',
62
- href: `${base}/groups`
63
- },
64
- {
65
- label: 'Folders',
66
- id: 'folders',
67
- href: `${base}/folders`
68
- },
69
- {
70
- label: 'Workers',
71
- id: 'workers',
72
- href: `${base}/workers`
73
- }
74
- ].filter(filterLink));
75
- let secondMenuTriggerLinks = $derived([
76
53
  {
77
54
  label: 'Custom HTTP routes',
78
55
  id: 'triggers',
@@ -122,14 +99,47 @@ let secondMenuTriggerLinks = $derived([
122
99
  label: 'Audit logs',
123
100
  id: 'audit_logs',
124
101
  href: `${base}/audit_logs`
102
+ },
103
+ {
104
+ label: 'Groups',
105
+ id: 'groups',
106
+ href: `${base}/groups`
107
+ },
108
+ {
109
+ label: 'Folders',
110
+ id: 'folders',
111
+ href: `${base}/folders`
112
+ },
113
+ {
114
+ label: 'Workers',
115
+ id: 'workers',
116
+ href: `${base}/workers`
125
117
  }
126
- ].filter(filterLink));
127
- let showMore = $state(false);
118
+ ].filter((link) => {
119
+ if (!$userWorkspaces || !$workspaceStore)
120
+ return false;
121
+ return ($userWorkspaces.find((_) => _.id === $workspaceStore)?.operator_settings?.[link.id] === true);
122
+ }));
123
+ let moreOpen = $state(false);
124
+ let moreOpenTimeout = $state();
125
+ function debouncedSetMoreOpen(value) {
126
+ if (moreOpenTimeout) {
127
+ clearTimeout(moreOpenTimeout);
128
+ }
129
+ moreOpenTimeout = setTimeout(() => {
130
+ moreOpen = value;
131
+ }, 150); // 150ms debounce
132
+ }
133
+ onDestroy(() => {
134
+ if (moreOpenTimeout) {
135
+ clearTimeout(moreOpenTimeout);
136
+ }
137
+ });
128
138
  </script>
129
139
 
130
140
  <Menubar>
131
141
  {#snippet children({ createMenu })}
132
- <Menu {createMenu} usePointerDownOutside on:close={() => (showMore = false)}>
142
+ <Menu {createMenu} usePointerDownOutside>
133
143
  {#snippet triggr({ trigger })}
134
144
  <MenuButton
135
145
  class="!text-xs"
@@ -245,8 +255,8 @@ let showMore = $state(false);
245
255
  onClick={() => logout()}
246
256
  class={twMerge(
247
257
  'flex flex-row gap-3.5 items-center px-2 py-2 w-full',
248
- 'text-primary text-xs',
249
- 'hover:bg-surface-hover cursor-pointer',
258
+ 'text-secondary text-xs',
259
+ 'hover:bg-surface-hover hover:text-primary cursor-pointer',
250
260
  'data-[highlighted]:bg-surface-hover data-[highlighted]:text-primary'
251
261
  )}
252
262
  {item}
@@ -255,42 +265,57 @@ let showMore = $state(false);
255
265
  Sign out
256
266
  </MenuItem>
257
267
  </div>
258
- <div onmouseleave={() => (showMore = false)} role="none">
259
- {#if secondMenuLinks.length}
260
- <ResizeTransitionWrapper vertical innerClass="w-full">
261
- {#if !showMore}
262
- <div onmouseenter={() => (showMore = true)} role="none">
263
- <MenuItem {item}>
264
- <div class="px-2 py-2 text-primary text-2xs">More...</div>
265
- </MenuItem>
266
- </div>
267
- {:else}
268
- {#snippet renderSecondMenuLinks(menuLinks: SecondMenuLink[])}
269
- {#each menuLinks as menuLink (menuLink.href ?? menuLink.label)}
270
- <MenuItem
271
- href={menuLink.href}
272
- class={twMerge(
273
- 'flex flex-row gap-3.5 items-center px-2 py-2 text-secondary text-2xs hover:bg-surface-hover hover:text-primary cursor-pointer',
274
- 'data-[highlighted]:bg-surface-hover data-[highlighted]:text-primary'
275
- )}
276
- {item}
277
- >
278
- {menuLink.label}
279
- </MenuItem>
280
- {/each}
281
- {/snippet}
282
- <div class="divide-y">
283
- <div>{@render renderSecondMenuLinks(secondMenuLinks)}</div>
284
- <div>{@render renderSecondMenuLinks(secondMenuTriggerLinks)}</div>
285
- </div>
286
- {/if}
287
- </ResizeTransitionWrapper>
288
- {/if}
289
- {#if $enterpriseLicense}
290
- <MultiplayerMenu />
268
+ <div
269
+ onmouseenter={() => debouncedSetMoreOpen(true)}
270
+ onmouseleave={() => debouncedSetMoreOpen(false)}
271
+ role="none"
272
+ >
273
+ <MenuItem
274
+ onFocusIn={() => debouncedSetMoreOpen(true)}
275
+ onFocusOut={() => debouncedSetMoreOpen(false)}
276
+ {item}
277
+ >
278
+ {#if !moreOpen || secondMenuLinks.length === 0}
279
+ <div class="px-2 py-2 text-primary text-2xs">More...</div>
280
+ {/if}
281
+ </MenuItem>
282
+ {#if moreOpen && secondMenuLinks.length > 0}
283
+ {#each secondMenuLinks as menuLink (menuLink.href ?? menuLink.label)}
284
+ <div>
285
+ <MenuItem
286
+ href={menuLink.href}
287
+ class={twMerge(
288
+ 'flex flex-row gap-3.5 items-center px-2 py-2 text-secondary text-2xs hover:bg-surface-hover hover:text-primary cursor-pointer',
289
+ 'data-[highlighted]:bg-surface-hover data-[highlighted]:text-primary'
290
+ )}
291
+ {item}
292
+ onFocusIn={() => debouncedSetMoreOpen(true)}
293
+ onFocusOut={() => debouncedSetMoreOpen(false)}
294
+ >
295
+ {menuLink.label}
296
+ </MenuItem>
297
+ </div>
298
+ {/each}
291
299
  {/if}
292
300
  </div>
293
301
  </div>
302
+ {#if $enterpriseLicense}
303
+ <div
304
+ onmouseenter={() => {
305
+ if (moreOpenTimeout) {
306
+ setTimeout(() => {
307
+ clearTimeout(moreOpenTimeout)
308
+ }, 15)
309
+ }
310
+ }}
311
+ onmouseleave={() => {
312
+ debouncedSetMoreOpen(false)
313
+ }}
314
+ role="none"
315
+ >
316
+ <MultiplayerMenu />
317
+ </div>
318
+ {/if}
294
319
  {/snippet}
295
320
  </Menu>
296
321
  {/snippet}
@@ -582,12 +582,7 @@ let secondaryMenuLinks = $derived([
582
582
  {/snippet}
583
583
  {#snippet children({ item })}
584
584
  {#each menuLink.subItems as subItem (subItem.href ?? subItem.label)}
585
- <MenuItem
586
- href={subItem.href}
587
- class={itemClass}
588
- target={subItem.external !== false ? '_blank' : undefined}
589
- {item}
590
- >
585
+ <MenuItem href={subItem.href} class={itemClass} target={subItem.external !== false ? "_blank" : undefined} {item}>
591
586
  <div class="flex flex-row items-center gap-2">
592
587
  {#if subItem.icon}
593
588
  <subItem.icon size={16} />
@@ -620,7 +615,7 @@ let secondaryMenuLinks = $derived([
620
615
  <ConfirmationModal
621
616
  open={leaveWorkspaceModal}
622
617
  title="Leave workspace"
623
- confirmationText="Leave workspace"
618
+ confirmationText="Remove"
624
619
  on:canceled={() => {
625
620
  leaveWorkspaceModal = false
626
621
  }}
@@ -1,5 +1,5 @@
1
1
  <script lang="ts">import { goto } from '../../navigation';
2
- import { logout } from '../../logoutKit';
2
+ import { logout } from '../../logout';
3
3
  import { userStore, usageStore, workspaceUsageStore, isPremiumStore, workspaceStore } from '../../stores';
4
4
  import { USER_SETTINGS_HASH } from './settings';
5
5
  import { isCloudHosted } from '../../cloud';
@@ -2,7 +2,6 @@
2
2
  import { Building, Plus, Settings, GitFork } from 'lucide-svelte';
3
3
  import MenuButton from './MenuButton.svelte';
4
4
  import { Menu, MenuItem } from '../meltComponents';
5
- import WorkspaceIcon from '../workspace/WorkspaceIcon.svelte';
6
5
  import { goto } from '../../navigation';
7
6
  import { base } from '../../base';
8
7
  import { page } from '$app/stores';
@@ -13,7 +12,6 @@ import { isCloudHosted } from '../../cloud';
13
12
  import { workspaceAIClients } from '../copilot/lib';
14
13
  import { twMerge } from 'tailwind-merge';
15
14
  import { buildWorkspaceHierarchy } from '../../utils/workspaceHierarchy';
16
- import { getContrastTextColor } from '../../utils';
17
15
  function removePrefix(str, prefix) {
18
16
  if (str.startsWith(prefix)) {
19
17
  return str.substring(prefix.length);
@@ -46,6 +44,12 @@ async function toggleSwitchWorkspace(id) {
46
44
  await goto('/');
47
45
  }
48
46
  }
47
+ // Helper function to check if a workspace is forked
48
+ function isForkedWorkspace(workspaceId) {
49
+ if (!$userWorkspaces)
50
+ return false;
51
+ return $userWorkspaces.some((w) => w.id === workspaceId && w.parent_workspace_id != null);
52
+ }
49
53
  function getForkedWorkspace(workspaceId) {
50
54
  if (!$userWorkspaces)
51
55
  return undefined;
@@ -57,37 +61,48 @@ function getParentWorkspace(parentId) {
57
61
  return $userWorkspaces.find((w) => w.id === parentId);
58
62
  }
59
63
  // Group workspaces into parent-child hierarchy using Svelte 5 derived and the new utility
60
- const groupedWorkspaces = $derived.by(() => {
64
+ const groupedWorkspaces = $derived(() => {
61
65
  if (!$userWorkspaces)
62
66
  return [];
63
67
  return buildWorkspaceHierarchy($userWorkspaces);
64
68
  });
65
- const itemClass = 'text-primary flex flex-row gap-2 px-4 py-2 text-xs hover:bg-surface-hover hover:text-primary data-[highlighted]:bg-surface-hover data-[highlighted]:text-primary';
66
69
  </script>
67
70
 
71
+ {#if isForkedWorkspace($workspaceStore ?? '') && !isCollapsed}
72
+ {@const forkedWorkspace = getForkedWorkspace($workspaceStore ?? '')}
73
+ {@const parentWorkspace = forkedWorkspace
74
+ ? getParentWorkspace(forkedWorkspace.parent_workspace_id!)
75
+ : null}
76
+ <Menu {createMenu} usePointerDownOutside>
77
+ {#snippet triggr({ trigger })}
78
+ <div class="group flex items-center px-2 py-2 font-light rounded-md h-8 gap-3 w-full text-xs">
79
+ <Building size={12} class="text-primary" />
80
+ <span class="text-xs text-primary"> {parentWorkspace?.name ?? ''} </span>
81
+ </div>
82
+ {/snippet}
83
+ </Menu>
84
+ {/if}
68
85
  <Menu {createMenu} usePointerDownOutside>
69
86
  {#snippet triggr({ trigger })}
70
87
  {@const forkedWorkspace = getForkedWorkspace($workspaceStore ?? '')}
71
88
  {@const parentWorkspace = forkedWorkspace
72
89
  ? getParentWorkspace(forkedWorkspace.parent_workspace_id!)
73
90
  : null}
74
- {@const iconColor = getContrastTextColor($workspaceColor)}
75
91
  {#if forkedWorkspace && parentWorkspace}
76
- <MenuButton
77
- class="!text-xs"
78
- icon={GitFork}
79
- iconProps={iconColor ? { style: `color: ${iconColor}` } : undefined}
80
- label={removePrefix($workspaceStore ?? '', 'wm-fork-')}
81
- sublabel={parentWorkspace?.name ? `Fork of ${parentWorkspace.name}` : undefined}
82
- {isCollapsed}
83
- color={$workspaceColor}
84
- {trigger}
85
- />
92
+ <div class={isCollapsed ? '' : 'pl-6'}>
93
+ <MenuButton
94
+ class="!text-xs"
95
+ icon={GitFork}
96
+ label={removePrefix($workspaceStore ?? '', 'wm-fork-')}
97
+ {isCollapsed}
98
+ color={$workspaceColor}
99
+ {trigger}
100
+ />
101
+ </div>
86
102
  {:else}
87
103
  <MenuButton
88
104
  class="!text-xs"
89
105
  icon={Building}
90
- iconProps={iconColor ? { style: `color: ${iconColor}` } : undefined}
91
106
  label={$workspaceStore ?? ''}
92
107
  {isCollapsed}
93
108
  color={$workspaceColor}
@@ -99,14 +114,13 @@ const itemClass = 'text-primary flex flex-row gap-2 px-4 py-2 text-xs hover:bg-s
99
114
  {#snippet children({ item })}
100
115
  <div class="divide-y" role="none">
101
116
  <div class="py-1">
102
- {#each groupedWorkspaces as { workspace, depth, isForked, parentName }}
103
- {@const isSelected = $workspaceStore === workspace.id}
117
+ {#each groupedWorkspaces() as { workspace, depth, isForked, parentName }}
104
118
  <MenuItem
105
119
  class={twMerge(
106
- 'text-xs min-w-0 w-full overflow-hidden flex flex-col py-2 px-3',
120
+ 'text-xs min-w-0 w-full overflow-hidden flex flex-col py-1.5',
107
121
  workspace.disabled && 'opacity-50 cursor-not-allowed',
108
- isSelected
109
- ? 'cursor-default bg-surface-accent-selected'
122
+ $workspaceStore === workspace.id
123
+ ? 'cursor-default bg-surface-selected'
110
124
  : workspace.disabled
111
125
  ? ''
112
126
  : 'cursor-pointer hover:bg-surface-hover data-[highlighted]:bg-surface-hover'
@@ -119,47 +133,73 @@ const itemClass = 'text-primary flex flex-row gap-2 px-4 py-2 text-xs hover:bg-s
119
133
  {item}
120
134
  >
121
135
  <div class="flex items-center justify-between min-w-0 w-full">
122
- <div class="flex items-center gap-2 min-w-0" style:padding-left={`${depth * 16}px`}>
123
- <WorkspaceIcon workspaceColor={workspace.color} {isForked} {parentName} />
136
+ <div
137
+ class={twMerge('flex items-center gap-2 min-w-0', 'pl-4')}
138
+ style:padding-left={`${4 + depth * 12}px`}
139
+ >
140
+ {#if isForked}
141
+ <GitFork size={12} class="text-primary flex-shrink-0" />
142
+ {:else}
143
+ <Building size={12} />
144
+ {/if}
124
145
  <div class="min-w-0 flex-1">
125
146
  <div
126
147
  class={twMerge(
127
- 'truncate text-left text-xs font-normal',
128
- isSelected ? 'text-accent' : 'text-primary'
148
+ 'truncate text-left text-[1.2em]',
149
+ isForked ? 'text-secondary' : 'text-primary'
129
150
  )}
130
- title={workspace.name}
131
151
  >
132
152
  {workspace.name}{workspace.disabled ? ' (user disabled)' : ''}
133
153
  </div>
134
154
  <div
135
155
  class={twMerge(
136
- 'font-mono text-2xs whitespace-nowrap truncate text-left font-normal',
137
- isSelected ? 'text-accent/80' : 'text-hint'
156
+ 'font-mono text-2xs whitespace-nowrap truncate text-left',
157
+ isForked ? 'text-primary opacity-75' : 'text-primary'
138
158
  )}
139
- title={workspace.id}
140
159
  >
141
160
  {workspace.id}
142
161
  </div>
162
+ {#if isForked && parentName}
163
+ <div class="text-primary text-2xs truncate text-left pl-2 min-h-[1rem]">
164
+ Fork of {parentName}
165
+ </div>
166
+ {/if}
143
167
  </div>
144
168
  </div>
169
+ {#if workspace.color}
170
+ <div
171
+ class="w-5 h-5 mr-2 rounded border border-gray-300 dark:border-gray-600"
172
+ style="background-color: {workspace.color}"
173
+ ></div>
174
+ {/if}
145
175
  </div>
146
176
  </MenuItem>
147
177
  {/each}
148
178
  </div>
149
179
  {#if (isCloudHosted() || $superadmin) && !strictWorkspaceSelect}
150
180
  <div class="py-1" role="none">
151
- <MenuItem href="{base}/user/create_workspace" class={itemClass} {item}>
181
+ <a
182
+ href="{base}/user/create_workspace"
183
+ class="text-primary px-4 py-2 text-xs hover:bg-surface-hover hover:text-primary flex flex-flow gap-2"
184
+ role="menuitem"
185
+ tabindex="-1"
186
+ >
152
187
  <Plus size={16} />
153
188
  Workspace
154
- </MenuItem>
189
+ </a>
155
190
  </div>
156
191
  {/if}
157
192
  {#if !strictWorkspaceSelect && !isCloudHosted()}
158
193
  <div class="py-1" role="none">
159
- <MenuItem href="{base}/user/fork_workspace" class={itemClass} {item}>
194
+ <a
195
+ href="{base}/user/fork_workspace"
196
+ class="text-primary px-4 py-2 text-xs hover:bg-surface-hover hover:text-primary flex flex-flow gap-2"
197
+ role="menuitem"
198
+ tabindex="-1"
199
+ >
160
200
  <GitFork size={16} />
161
201
  Fork current workspace
162
- </MenuItem>
202
+ </a>
163
203
  </div>
164
204
  {/if}
165
205
  {#if !strictWorkspaceSelect}
@@ -167,7 +207,10 @@ const itemClass = 'text-primary flex flex-row gap-2 px-4 py-2 text-xs hover:bg-s
167
207
  <MenuItem
168
208
  href="{base}/user/workspaces"
169
209
  onClick={() => clearWorkspaceFromStorage()}
170
- class={itemClass}
210
+ class={twMerge(
211
+ 'text-primary block px-4 py-2 text-xs hover:bg-surface-hover hover:text-primary',
212
+ 'data-[highlighted]:bg-surface-hover data-[highlighted]:text-primary'
213
+ )}
171
214
  {item}
172
215
  >
173
216
  All workspaces
@@ -176,7 +219,14 @@ const itemClass = 'text-primary flex flex-row gap-2 px-4 py-2 text-xs hover:bg-s
176
219
  {/if}
177
220
  {#if ($userStore?.is_admin || $superadmin) && !strictWorkspaceSelect}
178
221
  <div class="py-1" role="none">
179
- <MenuItem href="{base}/workspace_settings" class={itemClass} {item}>
222
+ <MenuItem
223
+ href="{base}/workspace_settings"
224
+ class={twMerge(
225
+ 'text-secondary px-4 py-2 text-xs hover:bg-surface-hover hover:text-primary flex flex-flow gap-2',
226
+ 'data-[highlighted]:bg-surface-hover data-[highlighted]:text-primary'
227
+ )}
228
+ {item}
229
+ >
180
230
  <Settings size={16} />
181
231
  Workspace settings
182
232
  </MenuItem>
@@ -4,8 +4,7 @@
4
4
  * This module handles the communication between the Monaco editor and the
5
5
  * custom TypeScript worker that injects SQL type annotations.
6
6
  */
7
- import { getTypeScriptWorker } from '@codingame/monaco-vscode-standalone-typescript-language-features';
8
- import { Uri, editor, MarkerSeverity } from 'monaco-editor';
7
+ import { languages, Uri, editor, MarkerSeverity } from 'monaco-editor';
9
8
  /**
10
9
  * Cached promise for the TypeScript worker client
11
10
  * We lazily initialize this when first needed
@@ -15,7 +14,7 @@ async function getWorkerClient() {
15
14
  try {
16
15
  // Get or create the worker client
17
16
  if (!_workerClient) {
18
- _workerClient = (await getTypeScriptWorker());
17
+ _workerClient = (await languages.typescript.getTypeScriptWorker());
19
18
  }
20
19
  return _workerClient;
21
20
  }
@@ -98,7 +97,7 @@ export async function updateSqlQueriesInWorker(fileUri, queries) {
98
97
  async function revalidateModel(model) {
99
98
  if (!model || model.isDisposed())
100
99
  return;
101
- const getWorker = await getTypeScriptWorker();
100
+ const getWorker = await languages.typescript.getTypeScriptWorker();
102
101
  const worker = await getWorker(model.uri);
103
102
  const diagnostics = (await Promise.all([
104
103
  worker.getSyntacticDiagnostics(model.uri.toString()),
@@ -10,7 +10,7 @@ let footerHeight = $state(0);
10
10
  let tableHeight = $state(0);
11
11
  const dispatch = createEventDispatcher();
12
12
  let tableContainer = $state();
13
- let { paginated = false, currentPage = $bindable(1), showNext = true, showPrev = true, loadMore = 0, shouldLoadMore = false, rounded = true, size = 'md', perPage = $bindable(undefined), shouldHidePagination = false, noBorder = false, rowCount = undefined, hasMore = true, contentHeight = $bindable(0), tableFixed = false, infiniteScroll = undefined, neverShowLoader = false, loading = false, loadingMore = false, containerClass = '', children, emptyMessage } = $props();
13
+ let { paginated = false, currentPage = $bindable(1), showNext = true, showPrev = true, loadMore = 0, shouldLoadMore = false, rounded = true, size = 'md', perPage = $bindable(undefined), shouldHidePagination = false, noBorder = false, rowCount = undefined, hasMore = true, contentHeight = $bindable(0), tableFixed = false, infiniteScroll = undefined, neverShowLoader = false, loading = false, loadingMore = false, children, emptyMessage } = $props();
14
14
  setContext('datatable', {
15
15
  size
16
16
  });
@@ -63,8 +63,7 @@ $effect(() => {
63
63
  class={twMerge(
64
64
  'h-full',
65
65
  rounded ? 'rounded-md overflow-hidden' : '',
66
- noBorder ? 'border-0' : 'border',
67
- containerClass
66
+ noBorder ? 'border-0' : 'border'
68
67
  )}
69
68
  bind:clientHeight={tableHeight}
70
69
  >
@@ -21,7 +21,6 @@ interface Props {
21
21
  neverShowLoader?: boolean;
22
22
  loading?: boolean;
23
23
  loadingMore?: boolean;
24
- containerClass?: string;
25
24
  children?: import('svelte').Snippet;
26
25
  emptyMessage?: import('svelte').Snippet;
27
26
  }
@@ -20,9 +20,6 @@ export const inputSizeClasses = {
20
20
  export function focus() {
21
21
  inputEl?.focus();
22
22
  }
23
- export function select() {
24
- inputEl?.select();
25
- }
26
23
  let inputEl = $state();
27
24
  let { inputProps: _inputProps, value = $bindable(), class: className = '', error, size = 'md', unifiedHeight = true, underlyingInputEl: _underlyingInputEl } = $props();
28
25
  let underlyingInputEl = $derived(_underlyingInputEl ?? 'input');