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,184 +0,0 @@
1
- <script lang="ts">import { GitFork, ChevronUp, ArchiveRestore } from 'lucide-svelte';
2
- import { slide } from 'svelte/transition';
3
- import { Badge, Button } from '../common';
4
- import { superadmin } from '../../stores';
5
- import { WorkspaceService } from '../../gen';
6
- import { pluralize } from '../../utils';
7
- import WorkspaceIcon from './WorkspaceIcon.svelte';
8
- import WorkspaceCard from './WorkspaceCard.svelte';
9
- import { twMerge } from 'tailwind-merge';
10
- let { workspace, isForked = false, depth = 0, children = [], isExpanded = false, expansionStates = {}, onEnterWorkspace, onUnarchive, onToggleExpand, selectedWorkspaceId, onMouseEnter, onMouseClick, onKeyboardNavigation } = $props();
11
- const paddingLeft = depth * 24;
12
- const isSelected = $derived(selectedWorkspaceId === workspace.id);
13
- // Helper functions
14
- function isWorkspaceArchived(workspace) {
15
- return workspace['deleted'] === true;
16
- }
17
- function isWorkspaceDisabled(workspace) {
18
- return workspace.disabled === true;
19
- }
20
- async function handleUnarchive() {
21
- if (onUnarchive) {
22
- await WorkspaceService.unarchiveWorkspace({ workspace: workspace.id });
23
- await onUnarchive(workspace.id);
24
- }
25
- }
26
- </script>
27
-
28
- <div class="block pb-2" style:padding-left={`${paddingLeft}px`}>
29
- <div
30
- class={twMerge(
31
- 'border border-border-light rounded-md overflow-hidden transition-all duration-150',
32
- isSelected ? 'bg-surface-hover' : 'bg-surface-tertiary'
33
- )}
34
- data-workspace-id={workspace.id}
35
- >
36
- <!-- Main workspace card - clickable to enter workspace -->
37
- <div
38
- class="px-4 py-2 hover:bg-surface-hover transition-colors w-full"
39
- class:rounded-lg={children.length === 0}
40
- class:rounded-b-none={children.length > 0}
41
- class:opacity-60={isWorkspaceDisabled(workspace)}
42
- class:cursor-not-allowed={isWorkspaceDisabled(workspace)}
43
- class:cursor-pointer={!isWorkspaceDisabled(workspace)}
44
- role="button"
45
- tabindex="0"
46
- onclick={async () => {
47
- onMouseClick?.()
48
- if (!isWorkspaceDisabled(workspace)) {
49
- await onEnterWorkspace(workspace.id)
50
- }
51
- }}
52
- onkeydown={(e) => {
53
- if ((e.key === 'Enter' || e.key === ' ') && !isWorkspaceDisabled(workspace)) {
54
- e.preventDefault()
55
- onKeyboardNavigation?.()
56
- onEnterWorkspace(workspace.id)
57
- }
58
- }}
59
- onmouseenter={() => onMouseEnter?.(workspace.id)}
60
- >
61
- <div class="flex flex-row items-center justify-between">
62
- <div class="flex flex-row items-center gap-3 flex-1 min-w-0">
63
- <div class="flex flex-row items-center gap-2 flex-1 min-w-0">
64
- <div class="flex-shrink-0">
65
- <WorkspaceIcon
66
- workspaceColor={workspace.color}
67
- {isForked}
68
- parentName={workspace.parent_workspace_id ?? undefined}
69
- size={12}
70
- />
71
- </div>
72
-
73
- <div class="min-w-0 flex-1">
74
- <div class="flex flex-row items-center gap-2 flex-wrap">
75
- <span class="text-xs font-semibold text-primary truncate">
76
- {#if workspace.marked}
77
- {@html workspace.marked}
78
- {:else}
79
- {workspace.name}
80
- {/if}
81
- </span>
82
- <span class="text-secondary text-xs">-</span>
83
- {#if workspace.id === 'admins'}
84
- <Badge color="blue">{workspace.id}</Badge>
85
- {:else}
86
- <span class="font-mono text-2xs text-secondary truncate">
87
- {workspace.id}
88
- </span>
89
- {/if}
90
- </div>
91
-
92
- <div class="text-xs text-secondary">
93
- as <span class="font-mono">{workspace.username}</span>
94
- {#if isWorkspaceArchived(workspace)}
95
- <span class="text-red-500 ml-1">(archived)</span>
96
- {#if $superadmin && onUnarchive}
97
- <Button
98
- size="xs2"
99
- variant="default"
100
- btnClasses="ml-1"
101
- propagateEvent={false}
102
- onClick={handleUnarchive}
103
- startIcon={{ icon: ArchiveRestore }}
104
- >
105
- Unarchive
106
- </Button>
107
- {/if}
108
- {/if}
109
- {#if isWorkspaceDisabled(workspace)}
110
- <span class="text-red-500 ml-1">(user disabled in this workspace)</span>
111
- {/if}
112
- {#if workspace.id === 'admins'}
113
- <span class="text-accent ml-1">Used to manage your Windmill instance</span>
114
- {/if}
115
- </div>
116
- </div>
117
- </div>
118
- </div>
119
- </div>
120
- </div>
121
-
122
- <!-- Forks section - clickable to expand -->
123
- {#if children.length > 0}
124
- <div
125
- class="border-t border-border-light px-4 py-1.5 hover:bg-surface-hover transition-colors cursor-pointer"
126
- role="button"
127
- tabindex="0"
128
- onclick={() => {
129
- onMouseClick?.()
130
- onToggleExpand?.(workspace.id)
131
- }}
132
- onkeydown={(e) => {
133
- if (e.key === 'Enter' || e.key === ' ') {
134
- e.preventDefault()
135
- onKeyboardNavigation?.()
136
- onToggleExpand?.(workspace.id)
137
- }
138
- }}
139
- onmouseenter={() => onMouseEnter?.(workspace.id)}
140
- >
141
- <div class="flex flex-row items-center justify-between">
142
- <div class="flex flex-row items-center gap-2 pl-2">
143
- <GitFork size={10} class="text-primary" />
144
- <span class="text-2xs text-primary">
145
- {pluralize(children.length, 'fork', 'forks')}
146
- </span>
147
- </div>
148
- <div class="flex items-center">
149
- <ChevronUp
150
- size={16}
151
- class={twMerge(
152
- 'text-secondary transition-transform duration-150',
153
- isExpanded ? 'transform rotate-180' : ''
154
- )}
155
- />
156
- </div>
157
- </div>
158
- </div>
159
- {/if}
160
- </div>
161
-
162
- <!-- Expanded forks -->
163
- {#if children.length > 0 && isExpanded}
164
- <div class="mt-2 ml-6" transition:slide={{ duration: 150 }}>
165
- {#each children as child (child.id)}
166
- <WorkspaceCard
167
- workspace={child}
168
- isForked={true}
169
- depth={depth + 1}
170
- children={child._children || []}
171
- isExpanded={expansionStates[child.id] ?? false}
172
- {expansionStates}
173
- {onEnterWorkspace}
174
- {onUnarchive}
175
- {onToggleExpand}
176
- {selectedWorkspaceId}
177
- {onMouseEnter}
178
- {onMouseClick}
179
- {onKeyboardNavigation}
180
- />
181
- {/each}
182
- </div>
183
- {/if}
184
- </div>
@@ -1,24 +0,0 @@
1
- import type { UserWorkspace } from '../../stores';
2
- import WorkspaceCard from './WorkspaceCard.svelte';
3
- declare const WorkspaceCard: import("svelte").Component<{
4
- workspace: UserWorkspace & {
5
- marked?: string;
6
- };
7
- isForked?: boolean;
8
- depth?: number;
9
- children?: (UserWorkspace & {
10
- _children?: (UserWorkspace & /*elided*/ any)[];
11
- marked?: string;
12
- })[];
13
- isExpanded?: boolean;
14
- expansionStates?: Record<string, boolean>;
15
- onEnterWorkspace: (workspaceId: string) => Promise<void>;
16
- onUnarchive?: (workspaceId: string) => Promise<void>;
17
- onToggleExpand?: (workspaceId: string) => void;
18
- selectedWorkspaceId?: string | null;
19
- onMouseEnter?: (workspaceId: string) => void;
20
- onMouseClick?: () => void;
21
- onKeyboardNavigation?: () => void;
22
- }, {}, "">;
23
- type WorkspaceCard = ReturnType<typeof WorkspaceCard>;
24
- export default WorkspaceCard;
@@ -1,21 +0,0 @@
1
- <script lang="ts">import { Building, GitFork } from 'lucide-svelte';
2
- import { Tooltip } from '../meltComponents';
3
- import { getContrastTextColor } from '../../utils';
4
- let { workspaceColor, isForked = false, parentName, size = 14 } = $props();
5
- const iconColor = $derived(getContrastTextColor(workspaceColor));
6
- </script>
7
-
8
- <div style="background-color: {workspaceColor}" class="rounded-full p-1.5 center-center">
9
- {#if isForked}
10
- <Tooltip>
11
- {#snippet text()}
12
- {#if isForked && parentName}
13
- Fork of {parentName}
14
- {/if}
15
- {/snippet}
16
- <GitFork {size} class="flex-shrink-0" style="color: {iconColor}" />
17
- </Tooltip>
18
- {:else}
19
- <Building {size} style="color: {iconColor}" />
20
- {/if}
21
- </div>
@@ -1,9 +0,0 @@
1
- interface Props {
2
- workspaceColor?: string;
3
- isForked?: boolean;
4
- parentName?: string;
5
- size?: number;
6
- }
7
- declare const WorkspaceIcon: import("svelte").Component<Props, {}, "">;
8
- type WorkspaceIcon = ReturnType<typeof WorkspaceIcon>;
9
- export default WorkspaceIcon;
@@ -1,331 +0,0 @@
1
- <script lang="ts">import { Building2 } from 'lucide-svelte';
2
- import { SvelteMap } from 'svelte/reactivity';
3
- import WorkspaceCard from './WorkspaceCard.svelte';
4
- import SearchItems from '../SearchItems.svelte';
5
- let { workspaces, onEnterWorkspace, onUnarchive, searchFilter = $bindable(''), onExpandCollapseAll = $bindable(), allExpanded = $bindable(false), hasForks = $bindable(false) } = $props();
6
- // State for manually toggled expansion status
7
- let manualExpansionStates = $state({});
8
- let filteredWorkspaces = $state();
9
- // Keyboard navigation state
10
- let selectedWorkspaceId = $state(null);
11
- let isKeyboardNavigation = $state(false);
12
- let scrollContainer;
13
- // Computed expansion states that include auto-expansion for search results
14
- let expansionStates = $derived.by(() => {
15
- if (!searchFilter || !filteredWorkspaces || !workspaces) {
16
- return manualExpansionStates;
17
- }
18
- const matchedWorkspaceIds = new Set(filteredWorkspaces.map((w) => w.id));
19
- const autoExpanded = {};
20
- // Build children map for descendant checking
21
- const childrenMap = new Map();
22
- workspaces.forEach((workspace) => {
23
- if (workspace.parent_workspace_id) {
24
- if (!childrenMap.has(workspace.parent_workspace_id)) {
25
- childrenMap.set(workspace.parent_workspace_id, []);
26
- }
27
- childrenMap.get(workspace.parent_workspace_id).push(workspace.id);
28
- }
29
- });
30
- // Function to check if workspace has matching descendants (not itself)
31
- function hasMatchingDescendant(workspaceId) {
32
- const children = childrenMap.get(workspaceId) || [];
33
- return children.some((childId) => matchedWorkspaceIds.has(childId) || hasMatchingDescendant(childId));
34
- }
35
- // Auto-expand workspaces only if they have matching descendants
36
- // (not if the workspace itself matches - user can manually expand to see children)
37
- workspaces.forEach((workspace) => {
38
- if (hasMatchingDescendant(workspace.id)) {
39
- autoExpanded[workspace.id] = true;
40
- }
41
- });
42
- // Combine manual and auto-expanded states
43
- return { ...manualExpansionStates, ...autoExpanded };
44
- });
45
- // Build nested hierarchy correctly - always use full workspace list for hierarchy
46
- let rootWorkspaces = $derived.by(() => {
47
- if (!workspaces)
48
- return [];
49
- // Create a map of children for each parent workspace using ALL workspaces
50
- const childrenMap = new SvelteMap();
51
- // Build children mapping - this correctly handles nested relationships
52
- workspaces.forEach((workspace) => {
53
- if (workspace.parent_workspace_id) {
54
- if (!childrenMap.has(workspace.parent_workspace_id)) {
55
- childrenMap.set(workspace.parent_workspace_id, []);
56
- }
57
- // Find marked version from filtered results if available
58
- const filteredWorkspace = filteredWorkspaces?.find((fw) => fw.id === workspace.id);
59
- const extendedWorkspace = {
60
- ...workspace,
61
- marked: filteredWorkspace?.marked
62
- };
63
- childrenMap.get(workspace.parent_workspace_id).push(extendedWorkspace);
64
- }
65
- });
66
- // Get IDs of workspaces that match the search
67
- const matchedWorkspaceIds = new Set(filteredWorkspaces?.map((w) => w.id) || []);
68
- // Function to check if a workspace or its descendants match the search
69
- function hasMatchingDescendant(workspaceId) {
70
- if (matchedWorkspaceIds.has(workspaceId))
71
- return true;
72
- const children = childrenMap.get(workspaceId) || [];
73
- return children.some((child) => hasMatchingDescendant(child.id));
74
- }
75
- // Recursive function to build full nested hierarchy
76
- // parentMatched: if true, include all children regardless of search match
77
- function buildWorkspaceWithChildren(workspace, parentMatched = false) {
78
- const directChildren = childrenMap.get(workspace.id) || [];
79
- const thisWorkspaceMatches = matchedWorkspaceIds.has(workspace.id);
80
- // If this workspace or a parent matches, show all children
81
- // Otherwise, only show children that match or have matching descendants
82
- const visibleChildren = searchFilter && !parentMatched && !thisWorkspaceMatches
83
- ? directChildren.filter((child) => hasMatchingDescendant(child.id))
84
- : directChildren;
85
- const childrenWithNestedStructure = visibleChildren.map((child) => buildWorkspaceWithChildren(child, parentMatched || thisWorkspaceMatches));
86
- // Find marked version from filtered results if available
87
- const filteredWorkspace = filteredWorkspaces?.find((fw) => fw.id === workspace.id);
88
- return {
89
- ...workspace,
90
- marked: filteredWorkspace?.marked,
91
- _children: childrenWithNestedStructure
92
- };
93
- }
94
- // Return only root workspaces - filter based on search if active
95
- const rootCandidates = workspaces.filter((workspace) => !workspace.parent_workspace_id ||
96
- !workspaces.find((w) => w.id === workspace.parent_workspace_id));
97
- const visibleRoots = searchFilter
98
- ? rootCandidates.filter((workspace) => hasMatchingDescendant(workspace.id))
99
- : rootCandidates;
100
- return visibleRoots
101
- .map((workspace) => buildWorkspaceWithChildren(workspace))
102
- .sort((a, b) => {
103
- // Admin workspace always goes first
104
- if (a.id === 'admins')
105
- return -1;
106
- if (b.id === 'admins')
107
- return 1;
108
- // Then sort alphabetically by name
109
- return a.name.localeCompare(b.name);
110
- });
111
- });
112
- function handleToggleExpand(workspaceId) {
113
- const currentState = expansionStates[workspaceId] ?? false;
114
- manualExpansionStates = { ...manualExpansionStates, [workspaceId]: !currentState };
115
- }
116
- // Get IDs of workspaces that have children (can be expanded)
117
- let workspacesWithChildren = $derived.by(() => {
118
- if (!workspaces)
119
- return [];
120
- const parentIds = new Set(workspaces.filter((w) => w.parent_workspace_id).map((w) => w.parent_workspace_id));
121
- return workspaces.filter((w) => parentIds.has(w.id)).map((w) => w.id);
122
- });
123
- // Check if all expandable workspaces are currently expanded
124
- let allExpandedInternal = $derived(workspacesWithChildren.length > 0 &&
125
- workspacesWithChildren.every((id) => expansionStates[id] === true));
126
- // Sync internal state to bindable props
127
- $effect(() => {
128
- allExpanded = allExpandedInternal;
129
- });
130
- $effect(() => {
131
- hasForks = workspacesWithChildren.length > 0;
132
- });
133
- export function handleExpandCollapseAll() {
134
- const newState = !allExpandedInternal;
135
- const newExpansionStates = {};
136
- workspacesWithChildren.forEach((id) => {
137
- newExpansionStates[id] = newState;
138
- });
139
- manualExpansionStates = newExpansionStates;
140
- }
141
- // Generate flattened navigation order for keyboard navigation
142
- const flatNavigationOrder = $derived.by(() => {
143
- const result = [];
144
- function addWorkspaceAndChildren(workspace) {
145
- result.push(workspace.id);
146
- if (workspace._children && expansionStates[workspace.id]) {
147
- workspace._children.forEach((child) => addWorkspaceAndChildren(child));
148
- }
149
- }
150
- rootWorkspaces.forEach((workspace) => addWorkspaceAndChildren(workspace));
151
- return result;
152
- });
153
- // Keyboard navigation handlers
154
- function handleKeyDown(event) {
155
- // Allow navigation keys even when search input has focus
156
- const navigationKeys = [
157
- 'ArrowDown',
158
- 'ArrowUp',
159
- 'Home',
160
- 'End',
161
- 'ArrowLeft',
162
- 'ArrowRight',
163
- 'Enter',
164
- ' ',
165
- 'Escape'
166
- ];
167
- const activeElement = document.activeElement;
168
- // Skip navigation only if user is typing in textarea or non-search inputs
169
- if (activeElement?.tagName === 'TEXTAREA' ||
170
- (activeElement?.tagName === 'INPUT' && !navigationKeys.includes(event.key))) {
171
- return;
172
- }
173
- // Enable keyboard navigation on arrow keys
174
- if (['ArrowDown', 'ArrowUp', 'Home', 'End', 'ArrowLeft', 'ArrowRight'].includes(event.key)) {
175
- enableKeyboardNavigation();
176
- }
177
- // Only handle navigation if keyboard navigation is active
178
- if (!isKeyboardNavigation) {
179
- return;
180
- }
181
- if (flatNavigationOrder.length === 0)
182
- return;
183
- const currentIndex = selectedWorkspaceId ? flatNavigationOrder.indexOf(selectedWorkspaceId) : -1;
184
- switch (event.key) {
185
- case 'ArrowDown': {
186
- event.preventDefault();
187
- const nextIndex = currentIndex < flatNavigationOrder.length - 1 ? currentIndex + 1 : 0;
188
- selectedWorkspaceId = flatNavigationOrder[nextIndex];
189
- break;
190
- }
191
- case 'ArrowUp': {
192
- event.preventDefault();
193
- const prevIndex = currentIndex > 0 ? currentIndex - 1 : flatNavigationOrder.length - 1;
194
- selectedWorkspaceId = flatNavigationOrder[prevIndex];
195
- break;
196
- }
197
- case 'Home': {
198
- event.preventDefault();
199
- selectedWorkspaceId = flatNavigationOrder[0];
200
- break;
201
- }
202
- case 'End': {
203
- event.preventDefault();
204
- selectedWorkspaceId = flatNavigationOrder[flatNavigationOrder.length - 1];
205
- break;
206
- }
207
- case 'ArrowRight': {
208
- if (selectedWorkspaceId && workspacesWithChildren.includes(selectedWorkspaceId)) {
209
- event.preventDefault();
210
- if (!expansionStates[selectedWorkspaceId]) {
211
- handleToggleExpand(selectedWorkspaceId);
212
- }
213
- }
214
- break;
215
- }
216
- case 'ArrowLeft': {
217
- if (selectedWorkspaceId && workspacesWithChildren.includes(selectedWorkspaceId)) {
218
- event.preventDefault();
219
- if (expansionStates[selectedWorkspaceId]) {
220
- handleToggleExpand(selectedWorkspaceId);
221
- }
222
- }
223
- break;
224
- }
225
- case 'Enter':
226
- case ' ': {
227
- if (selectedWorkspaceId) {
228
- event.preventDefault();
229
- const workspace = workspaces.find((w) => w.id === selectedWorkspaceId);
230
- if (workspace && !workspace.disabled) {
231
- onEnterWorkspace(selectedWorkspaceId);
232
- }
233
- }
234
- break;
235
- }
236
- case 'Escape': {
237
- selectedWorkspaceId = null;
238
- isKeyboardNavigation = false;
239
- break;
240
- }
241
- }
242
- }
243
- // Reset selection when workspaces change or search filter changes
244
- $effect(() => {
245
- if (rootWorkspaces.length === 0) {
246
- selectedWorkspaceId = null;
247
- }
248
- else if (selectedWorkspaceId && !flatNavigationOrder.includes(selectedWorkspaceId)) {
249
- // If currently selected workspace is no longer visible, reset to first visible
250
- selectedWorkspaceId = flatNavigationOrder[0] || null;
251
- }
252
- });
253
- // Enable keyboard navigation when user starts navigating
254
- function enableKeyboardNavigation() {
255
- if (!isKeyboardNavigation && rootWorkspaces.length > 0) {
256
- isKeyboardNavigation = true;
257
- if (!selectedWorkspaceId) {
258
- selectedWorkspaceId = flatNavigationOrder[0] || null;
259
- }
260
- }
261
- }
262
- // Handle mouse interactions - disable keyboard mode when mouse is used
263
- function handleMouseEnter(workspaceId) {
264
- if (isKeyboardNavigation) {
265
- selectedWorkspaceId = workspaceId;
266
- }
267
- }
268
- function handleMouseClick() {
269
- isKeyboardNavigation = false;
270
- selectedWorkspaceId = null;
271
- }
272
- // Scroll selected workspace into view
273
- function scrollToSelectedWorkspace() {
274
- if (!selectedWorkspaceId || !scrollContainer)
275
- return;
276
- // Find the workspace card element by data attribute
277
- const selectedElement = scrollContainer.querySelector(`[data-workspace-id="${selectedWorkspaceId}"]`);
278
- if (selectedElement) {
279
- selectedElement.scrollIntoView({
280
- behavior: 'smooth',
281
- block: 'nearest'
282
- });
283
- }
284
- }
285
- // Auto-scroll when selection changes
286
- $effect(() => {
287
- if (selectedWorkspaceId && isKeyboardNavigation) {
288
- scrollToSelectedWorkspace();
289
- }
290
- });
291
- </script>
292
-
293
- <svelte:window onkeydown={handleKeyDown} />
294
-
295
- <!-- Search Items Component for fuzzy search with highlighting -->
296
- <SearchItems
297
- filter={searchFilter}
298
- items={workspaces}
299
- bind:filteredItems={filteredWorkspaces}
300
- f={(workspace) => workspace.name + ' (' + workspace.id + ')'}
301
- />
302
-
303
- <div class="space-y-4 max-h-[50vh] overflow-auto" bind:this={scrollContainer}>
304
- <!-- Workspace Tree -->
305
- <div class="space-y-2">
306
- {#each rootWorkspaces as workspace (workspace.id)}
307
- <WorkspaceCard
308
- {workspace}
309
- children={workspace._children || []}
310
- isExpanded={expansionStates[workspace.id] ?? false}
311
- {expansionStates}
312
- {onEnterWorkspace}
313
- {onUnarchive}
314
- onToggleExpand={handleToggleExpand}
315
- {selectedWorkspaceId}
316
- onMouseEnter={handleMouseEnter}
317
- onMouseClick={handleMouseClick}
318
- onKeyboardNavigation={enableKeyboardNavigation}
319
- />
320
- {/each}
321
-
322
- {#if rootWorkspaces.length === 0}
323
- <div class="text-center py-8">
324
- <Building2 size={48} class="text-secondary mx-auto mb-3" />
325
- <p class="text-sm text-secondary">
326
- {searchFilter ? 'No workspaces match your search' : 'No workspaces available'}
327
- </p>
328
- </div>
329
- {/if}
330
- </div>
331
- </div>
@@ -1,15 +0,0 @@
1
- import type { UserWorkspace } from '../../stores';
2
- interface Props {
3
- workspaces: UserWorkspace[];
4
- onEnterWorkspace: (workspaceId: string) => Promise<void>;
5
- onUnarchive?: (workspaceId: string) => Promise<void>;
6
- searchFilter?: string;
7
- onExpandCollapseAll?: () => void;
8
- allExpanded?: boolean;
9
- hasForks?: boolean;
10
- }
11
- declare const WorkspaceTreeView: import("svelte").Component<Props, {
12
- handleExpandCollapseAll: () => void;
13
- }, "allExpanded" | "searchFilter" | "onExpandCollapseAll" | "hasForks">;
14
- type WorkspaceTreeView = ReturnType<typeof WorkspaceTreeView>;
15
- export default WorkspaceTreeView;
@@ -1,2 +0,0 @@
1
- export declare function logoutWithRedirect(rd?: string): Promise<void>;
2
- export declare function logout(): Promise<void>;
@@ -1,26 +0,0 @@
1
- // SvelteKit-specific logout utilities
2
- // These functions depend on $lib/navigation which requires SvelteKit
3
- import { goto } from './navigation';
4
- import { clearUser } from './logout';
5
- import { sendUserToast } from './toast';
6
- export async function logoutWithRedirect(rd) {
7
- console.log('logoutWithRedirect', rd);
8
- await clearUser();
9
- const splitted = rd?.split('?')[0];
10
- if (rd && rd != '/' && splitted != '/user/login' && splitted != '/user/logout') {
11
- const error = document.cookie.includes('token')
12
- ? `error=${encodeURIComponent('You have been logged out because your session has expired.')}&`
13
- : '';
14
- console.log('login redirect with error', error, rd);
15
- goto(`/user/login?${error}${rd ? 'rd=' + encodeURIComponent(rd) : ''}`, { replaceState: true });
16
- }
17
- else {
18
- console.log('login redirect vanilla');
19
- goto('/user/login', { replaceState: true });
20
- }
21
- }
22
- export async function logout() {
23
- await clearUser();
24
- goto(`/user/login`);
25
- sendUserToast('you have been logged out');
26
- }
@@ -1,3 +0,0 @@
1
- import * as runed from 'runed/kit';
2
- import type z from 'zod';
3
- export declare function useSearchParams<S extends z.ZodType>(schema: S, options?: runed.SearchParamsOptions): runed.ReturnUseSearchParams<S>;
@@ -1,30 +0,0 @@
1
- // SvelteKit-specific utilities
2
- // This file should only be imported in SvelteKit apps as it depends on $app/environment
3
- import * as runed from 'runed/kit';
4
- // The original from runed has a weird behavior with dedup reads causing duplicate effect runs
5
- // (Every field has to be derived to avoid it : https://runed.dev/docs/utilities/use-search-params)
6
- export function useSearchParams(schema, options) {
7
- let params = runed.useSearchParams(schema, options);
8
- let keys = Object.keys(schema.shape ?? {});
9
- let obj = { ...params };
10
- for (const key of keys) {
11
- // Somehow using $derived does not trigger reactivity sometimes ...
12
- // (e.g: filters.arg in RunsPage.svelte updates in the URL but does not trigger reactivity)
13
- let derivedVal = $state(params[key]);
14
- Object.defineProperty(obj, key, {
15
- get: () => {
16
- if (typeof derivedVal === 'string')
17
- return decodeURIComponent(derivedVal);
18
- return derivedVal;
19
- },
20
- set: (v) => {
21
- const val = typeof v === 'string' ? encodeURIComponent(v) : v;
22
- params[key] = val;
23
- derivedVal = val;
24
- },
25
- enumerable: true,
26
- configurable: true
27
- });
28
- }
29
- return obj;
30
- }