windmill-components 1.532.0 → 1.542.4

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 (371) hide show
  1. package/package/components/AIProviderPicker.svelte +181 -0
  2. package/package/components/AIProviderPicker.svelte.d.ts +15 -0
  3. package/package/components/ArgInfo.svelte +2 -2
  4. package/package/components/ArgInput.svelte +60 -27
  5. package/package/components/ArgInput.svelte.d.ts +3 -3
  6. package/package/components/AssignableTagsInner.svelte +89 -3
  7. package/package/components/Auth0Setting.svelte +8 -3
  8. package/package/components/ConcurrentJobsChart.svelte +36 -48
  9. package/package/components/ConcurrentJobsChart.svelte.d.ts +8 -20
  10. package/package/components/CustomPopover.svelte.d.ts +1 -1
  11. package/package/components/Dev.svelte +5 -4
  12. package/package/components/DiffDrawer.svelte +2 -2
  13. package/package/components/DiffEditor.svelte +34 -37
  14. package/package/components/DiffEditor.svelte.d.ts +23 -39
  15. package/package/components/DropdownSelect.svelte +26 -0
  16. package/package/components/DropdownSelect.svelte.d.ts +11 -0
  17. package/package/components/DropdownV2Inner.svelte +1 -1
  18. package/package/components/{DynSelect.svelte → DynamicInput.svelte} +47 -15
  19. package/package/components/DynamicInput.svelte.d.ts +11 -0
  20. package/package/components/EditableSchemaForm.svelte +155 -140
  21. package/package/components/EditableSchemaForm.svelte.d.ts +6 -7
  22. package/package/components/Editor.svelte +101 -87
  23. package/package/components/Editor.svelte.d.ts +7 -1
  24. package/package/components/EditorBar.svelte +2 -5
  25. package/package/components/FlowBuilder.svelte +10 -7
  26. package/package/components/FlowLogRow.svelte +64 -0
  27. package/package/components/FlowLogRow.svelte.d.ts +15 -0
  28. package/package/components/FlowLogViewer.svelte +406 -373
  29. package/package/components/FlowLogViewer.svelte.d.ts +5 -1
  30. package/package/components/FlowLogViewerWrapper.svelte +44 -1
  31. package/package/components/FlowLoopIterationPreview.svelte.d.ts +1 -1
  32. package/package/components/FlowPreviewContent.svelte +3 -3
  33. package/package/components/FlowPreviewContent.svelte.d.ts +1 -1
  34. package/package/components/FlowStatusViewer.svelte +28 -0
  35. package/package/components/FlowStatusViewerInner.svelte +106 -23
  36. package/package/components/FlowStatusViewerInner.svelte.d.ts +7 -0
  37. package/package/components/FolderPicker.svelte +1 -1
  38. package/package/components/InputTransformForm.svelte +20 -10
  39. package/package/components/JobArgs.svelte +1 -1
  40. package/package/components/JobLoader.svelte.d.ts +1 -1
  41. package/package/components/JobStatus.svelte +2 -0
  42. package/package/components/LogSnippetViewer.svelte +3 -3
  43. package/package/components/LogSnippetViewer.svelte.d.ts +1 -1
  44. package/package/components/LogViewer.svelte +87 -71
  45. package/package/components/LogViewer.svelte.d.ts +1 -0
  46. package/package/components/ModulePreview.svelte +2 -1
  47. package/package/components/ModulePreview.svelte.d.ts +1 -0
  48. package/package/components/ModulePreviewForm.svelte +72 -65
  49. package/package/components/ModulePreviewResultViewer.svelte +13 -18
  50. package/package/components/ModuleTest.svelte +6 -5
  51. package/package/components/ModuleTest.svelte.d.ts +1 -0
  52. package/package/components/OktaSetting.svelte +8 -3
  53. package/package/components/Path.svelte +7 -1
  54. package/package/components/Path.svelte.d.ts +1 -1
  55. package/package/components/Portal.svelte +11 -7
  56. package/package/components/Portal.svelte.d.ts +19 -39
  57. package/package/components/PrefixedInput.svelte +120 -0
  58. package/package/components/PrefixedInput.svelte.d.ts +8 -0
  59. package/package/components/QueuePosition.svelte +81 -0
  60. package/package/components/QueuePosition.svelte.d.ts +8 -0
  61. package/package/components/ResourceNarrowing.svelte +13 -0
  62. package/package/components/ResourceNarrowing.svelte.d.ts +6 -0
  63. package/package/components/ResourceTypePicker.svelte +49 -74
  64. package/package/components/RunChart.svelte +74 -89
  65. package/package/components/RunChart.svelte.d.ts +10 -22
  66. package/package/components/RunForm.svelte +2 -2
  67. package/package/components/RunForm.svelte.d.ts +1 -1
  68. package/package/components/RunFormAdvancedPopup.svelte +13 -1
  69. package/package/components/S3FilePicker.svelte +1 -1
  70. package/package/components/SchemaForm.svelte +1 -2
  71. package/package/components/SchemaForm.svelte.d.ts +2 -2
  72. package/package/components/ScriptBuilder.svelte +3 -2
  73. package/package/components/ScriptEditor.svelte +25 -10
  74. package/package/components/ScriptEditor.svelte.d.ts +2 -1
  75. package/package/components/ServiceLogsInner.svelte +1 -1
  76. package/package/components/ShareModal.svelte.d.ts +1 -1
  77. package/package/components/SimpleEditor.svelte +4 -68
  78. package/package/components/StringTypeNarrowing.svelte +5 -10
  79. package/package/components/TemplateEditor.svelte +2 -16
  80. package/package/components/TimeAgo.svelte +1 -1
  81. package/package/components/TimeAgo.svelte.d.ts +1 -0
  82. package/package/components/Toggle.svelte +2 -1
  83. package/package/components/Toggle.svelte.d.ts +2 -1
  84. package/package/components/WorkerRepl.svelte +1 -1
  85. package/package/components/apps/components/display/AppNavbarItem.svelte +2 -1
  86. package/package/components/apps/components/display/table/AppAggridTable.svelte +44 -48
  87. package/package/components/apps/components/display/table/SyncColumnDefs.svelte +101 -19
  88. package/package/components/apps/components/display/table/SyncColumnDefs.svelte.d.ts +5 -2
  89. package/package/components/apps/components/display/table/utils.js +36 -5
  90. package/package/components/apps/components/inputs/currency/CurrencyInput.svelte +10 -5
  91. package/package/components/apps/components/layout/AppModal.svelte +2 -2
  92. package/package/components/apps/editor/AppEditor.svelte +4 -3
  93. package/package/components/apps/editor/AppEditorHeader.svelte +0 -1
  94. package/package/components/apps/editor/GridViewer.svelte.d.ts +11 -4
  95. package/package/components/apps/editor/SettingsPanel.svelte +2 -2
  96. package/package/components/apps/editor/component/ComponentNavigation.svelte +3 -2
  97. package/package/components/apps/editor/componentsPanel/ListItem.svelte +2 -2
  98. package/package/components/apps/editor/inlineScriptsPanel/InlineScriptEditor.svelte +1 -1
  99. package/package/components/apps/editor/inlineScriptsPanel/InlineScriptEditor.svelte.d.ts +1 -1
  100. package/package/components/apps/editor/inlineScriptsPanel/InlineScriptEditorDrawer.svelte.d.ts +1 -1
  101. package/package/components/apps/editor/inlineScriptsPanel/InlineScriptRunnableByPath.svelte +0 -1
  102. package/package/components/apps/editor/inlineScriptsPanel/InlineScriptRunnableByPath.svelte.d.ts +1 -1
  103. package/package/components/apps/editor/settingsPanel/ArrayStaticInputEditor.svelte +29 -4
  104. package/package/components/apps/editor/settingsPanel/GridCondition.svelte +3 -1
  105. package/package/components/apps/editor/settingsPanel/GridNavbar.svelte +3 -1
  106. package/package/components/apps/editor/settingsPanel/GridTab.svelte +3 -1
  107. package/package/components/apps/editor/settingsPanel/InputsSpecEditor.svelte +1 -1
  108. package/package/components/apps/editor/settingsPanel/OneOfInputSpecsEditor.svelte +55 -53
  109. package/package/components/apps/editor/settingsPanel/TableActions.svelte +3 -1
  110. package/package/components/apps/editor/settingsPanel/inputEditor/StaticInputEditor.svelte +13 -5
  111. package/package/components/apps/svelte-grid/Grid.svelte.d.ts +30 -11
  112. package/package/components/assets/JobAssetsViewer.svelte +28 -24
  113. package/package/components/auditLogs/AuditLogsTable.svelte +2 -6
  114. package/package/components/chartjs-wrappers/Chart.svelte.d.ts +14 -7
  115. package/package/components/common/OnChange.svelte.d.ts +11 -4
  116. package/package/components/common/badge/Badge.svelte +9 -2
  117. package/package/components/common/badge/Badge.svelte.d.ts +2 -1
  118. package/package/components/common/button/model.d.ts +1 -1
  119. package/package/components/common/calendarPicker/CalendarPicker.svelte +5 -1
  120. package/package/components/common/calendarPicker/CalendarPicker.svelte.d.ts +5 -4
  121. package/package/components/common/drawer/Disposable.svelte +45 -26
  122. package/package/components/common/drawer/Disposable.svelte.d.ts +12 -44
  123. package/package/components/common/drawer/Drawer.svelte +17 -14
  124. package/package/components/common/drawer/Drawer.svelte.d.ts +1 -0
  125. package/package/components/common/menu/MenuItem.svelte.d.ts +2 -2
  126. package/package/components/common/modal/Modal.svelte.d.ts +1 -1
  127. package/package/components/common/tabs/TabContent.svelte +2 -7
  128. package/package/components/common/tabs/TabContent.svelte.d.ts +5 -27
  129. package/package/components/common/toggleButton-v2/ToggleButtonGroup.svelte +9 -3
  130. package/package/components/common/toggleButton-v2/ToggleButtonGroup.svelte.d.ts +1 -0
  131. package/package/components/common/toggleButton-v2/ToggleButtonMore.svelte +8 -4
  132. package/package/components/common/toggleButton-v2/ToggleButtonMore.svelte.d.ts +1 -0
  133. package/package/components/copilot/MetadataGen.svelte +14 -3
  134. package/package/components/copilot/chat/AIChatInput.svelte +0 -1
  135. package/package/components/copilot/chat/AIChatManager.svelte.js +26 -104
  136. package/package/components/copilot/chat/AssistantMessage.svelte +0 -4
  137. package/package/components/copilot/chat/AvailableContextList.svelte +192 -66
  138. package/package/components/copilot/chat/AvailableContextList.svelte.d.ts +2 -2
  139. package/package/components/copilot/chat/ContextElementBadge.svelte +3 -3
  140. package/package/components/copilot/chat/ContextManager.svelte.js +36 -13
  141. package/package/components/copilot/chat/ContextTextarea.svelte +21 -48
  142. package/package/components/copilot/chat/ToolContentDisplay.svelte +10 -1
  143. package/package/components/copilot/chat/ToolExecutionDisplay.svelte +3 -3
  144. package/package/components/copilot/chat/anthropic.d.ts +15 -0
  145. package/package/components/copilot/chat/anthropic.js +208 -0
  146. package/package/components/copilot/chat/api/apiTools.d.ts +2 -2
  147. package/package/components/copilot/chat/api/apiTools.js +10 -7
  148. package/package/components/copilot/chat/api/core.d.ts +1 -1
  149. package/package/components/copilot/chat/api/core.js +7 -2
  150. package/package/components/copilot/chat/ask/core.d.ts +1 -1
  151. package/package/components/copilot/chat/ask/core.js +7 -2
  152. package/package/components/copilot/chat/context.d.ts +7 -2
  153. package/package/components/copilot/chat/flow/FlowAIChat.svelte +110 -8
  154. package/package/components/copilot/chat/flow/core.d.ts +12 -1
  155. package/package/components/copilot/chat/flow/core.js +133 -5
  156. package/package/components/copilot/chat/flow/uiIntents.d.ts +8 -0
  157. package/package/components/copilot/chat/flow/uiIntents.js +5 -0
  158. package/package/components/copilot/chat/flow/useUiIntent.d.ts +5 -0
  159. package/package/components/copilot/chat/flow/useUiIntent.js +12 -0
  160. package/package/components/copilot/chat/monaco-adapter.d.ts +23 -4
  161. package/package/components/copilot/chat/monaco-adapter.js +55 -16
  162. package/package/components/copilot/chat/navigator/core.d.ts +1 -1
  163. package/package/components/copilot/chat/navigator/core.js +7 -2
  164. package/package/components/copilot/chat/script/CodeDisplay.svelte +10 -111
  165. package/package/components/copilot/chat/script/core.d.ts +5 -4
  166. package/package/components/copilot/chat/script/core.js +134 -21
  167. package/package/components/copilot/chat/shared.d.ts +10 -9
  168. package/package/components/copilot/chat/shared.js +24 -12
  169. package/package/components/copilot/lib.d.ts +29 -8
  170. package/package/components/copilot/lib.js +211 -31
  171. package/package/components/copilot/shared.d.ts +1 -1
  172. package/package/components/copilot/shared.js +16 -10
  173. package/package/components/flows/FlowEditor.svelte +4 -2
  174. package/package/components/flows/FlowEditor.svelte.d.ts +1 -0
  175. package/package/components/flows/FlowModuleIcon.svelte +8 -8
  176. package/package/components/flows/common/FlowCardHeader.svelte +4 -1
  177. package/package/components/flows/content/FlowBranchesAllWrapper.svelte +6 -0
  178. package/package/components/flows/content/FlowBranchesOneWrapper.svelte +6 -0
  179. package/package/components/flows/content/FlowEditorPanel.svelte +2 -1
  180. package/package/components/flows/content/FlowEditorPanel.svelte.d.ts +1 -0
  181. package/package/components/flows/content/FlowInput.svelte +36 -39
  182. package/package/components/flows/content/FlowInput.svelte.d.ts +1 -0
  183. package/package/components/flows/content/FlowLoop.svelte +7 -0
  184. package/package/components/flows/content/FlowModuleComponent.svelte +42 -46
  185. package/package/components/flows/content/FlowModuleEarlyStop.svelte +47 -17
  186. package/package/components/flows/content/FlowModuleScript.svelte +1 -1
  187. package/package/components/flows/content/FlowModuleSleep.svelte +4 -1
  188. package/package/components/flows/content/FlowModuleSuspend.svelte +15 -18
  189. package/package/components/flows/content/FlowModuleTimeout.svelte +50 -10
  190. package/package/components/flows/content/FlowModuleTimeout.svelte.d.ts +1 -0
  191. package/package/components/flows/content/FlowRetries.svelte +108 -3
  192. package/package/components/flows/content/FlowRetries.svelte.d.ts +3 -2
  193. package/package/components/flows/content/FlowWhileLoop.svelte +6 -0
  194. package/package/components/flows/content/ScriptEditorDrawer.svelte +9 -11
  195. package/package/components/flows/dfs.d.ts +1 -1
  196. package/package/components/flows/dfs.js +6 -6
  197. package/package/components/flows/flowInfers.js +15 -42
  198. package/package/components/flows/flowStateUtils.svelte.js +1 -2
  199. package/package/components/flows/flowStore.d.ts +45 -1
  200. package/package/components/flows/flowStore.js +1 -1
  201. package/package/components/flows/map/FlowJobsMenu.svelte +3 -3
  202. package/package/components/flows/map/FlowModuleSchemaItem.svelte +73 -80
  203. package/package/components/flows/map/FlowModuleSchemaItem.svelte.d.ts +1 -1
  204. package/package/components/flows/map/FlowModuleSchemaItemViewer.svelte +1 -1
  205. package/package/components/flows/map/InsertModuleButton.svelte +1 -0
  206. package/package/components/flows/map/InsertModuleInner.svelte +12 -15
  207. package/package/components/flows/map/InsertModuleInner.svelte.d.ts +10 -9
  208. package/package/components/flows/map/MapItem.svelte +8 -4
  209. package/package/components/flows/map/VirtualItem.svelte +1 -1
  210. package/package/components/flows/pickers/TopLevelNode.svelte +1 -1
  211. package/package/components/flows/propPicker/InputPickerInner.svelte +5 -5
  212. package/package/components/flows/propPicker/OutputPickerInner.svelte +143 -118
  213. package/package/components/flows/propPicker/OutputPickerInner.svelte.d.ts +7 -16
  214. package/package/components/flows/{testSteps.svelte.d.ts → stepsInputArgs.svelte.d.ts} +2 -1
  215. package/package/components/flows/{testSteps.svelte.js → stepsInputArgs.svelte.js} +15 -3
  216. package/package/components/flows/types.d.ts +16 -3
  217. package/package/components/flows/utils.js +3 -0
  218. package/package/components/git_sync/DetectionFlow.svelte +15 -17
  219. package/package/components/git_sync/GitSyncContext.svelte.js +1 -1
  220. package/package/components/git_sync/GitSyncRepositoryCard.svelte +0 -1
  221. package/package/components/graph/FlowGraphV2.svelte +1 -1
  222. package/package/components/graph/graphBuilder.svelte.d.ts +5 -1
  223. package/package/components/graph/renderers/edges/BaseEdge.svelte +9 -1
  224. package/package/components/graph/renderers/edges/BaseEdge.svelte.d.ts +4 -1
  225. package/package/components/graph/renderers/nodes/AIToolNode.svelte +4 -4
  226. package/package/components/graph/renderers/nodes/BranchAllStart.svelte +2 -3
  227. package/package/components/graph/renderers/nodes/BranchOneStart.svelte +2 -3
  228. package/package/components/graph/renderers/nodes/NewAIToolNode.svelte +71 -54
  229. package/package/components/graph/renderers/triggers/TriggerButton.svelte.d.ts +1 -1
  230. package/package/components/graph/renderers/triggers/TriggersBadge.svelte +3 -1
  231. package/package/components/graph/renderers/triggers/TriggersWrapper.svelte +34 -24
  232. package/package/components/graph/renderers/triggers/TriggersWrapper.svelte.d.ts +1 -2
  233. package/package/components/home/ItemsList.svelte +17 -13
  234. package/package/components/home/TreeView.svelte +21 -27
  235. package/package/components/home/TreeView.svelte.d.ts +2 -29
  236. package/package/components/home/TreeViewRoot.svelte +11 -23
  237. package/package/components/home/TreeViewRoot.svelte.d.ts +15 -13
  238. package/package/components/icons/GitIcon.svelte +10 -2
  239. package/package/components/icons/GitIcon.svelte.d.ts +1 -0
  240. package/package/components/meltComponents/MeltButton.svelte.d.ts +1 -1
  241. package/package/components/meltComponents/Popover.svelte +23 -3
  242. package/package/components/meltComponents/Popover.svelte.d.ts +2 -1
  243. package/package/components/monacoLanguagesOptions.d.ts +3 -0
  244. package/package/components/monacoLanguagesOptions.js +109 -0
  245. package/package/components/propertyPicker/ObjectViewer.svelte +18 -5
  246. package/package/components/propertyPicker/PropPicker.svelte +1 -1
  247. package/package/components/propertyPicker/utils.js +14 -7
  248. package/package/components/raw_apps/RawAppInlineScriptEditor.svelte +1 -1
  249. package/package/components/runs/JobRunsPreview.svelte +212 -177
  250. package/package/components/runs/JobsLoader.svelte +2 -2
  251. package/package/components/runs/JobsLoader.svelte.d.ts +1 -1
  252. package/package/components/runs/NoWorkerWithTagWarning.svelte +18 -5
  253. package/package/components/runs/RunBadges.svelte +100 -0
  254. package/package/components/runs/RunBadges.svelte.d.ts +12 -0
  255. package/package/components/runs/RunLabels.svelte +86 -0
  256. package/package/components/runs/RunLabels.svelte.d.ts +10 -0
  257. package/package/components/runs/RunOption.svelte +20 -0
  258. package/package/components/runs/RunOption.svelte.d.ts +10 -0
  259. package/package/components/runs/RunRow.svelte +239 -151
  260. package/package/components/runs/RunRow.svelte.d.ts +12 -9
  261. package/package/components/runs/RunsBatchActionsDropdown.svelte +13 -17
  262. package/package/components/runs/RunsBatchActionsDropdown.svelte.d.ts +5 -18
  263. package/package/components/runs/RunsFilter.svelte +369 -243
  264. package/package/components/runs/RunsFilter.svelte.d.ts +2 -0
  265. package/package/components/runs/RunsQueue.svelte +96 -25
  266. package/package/components/runs/RunsQueue.svelte.d.ts +7 -21
  267. package/package/components/runs/RunsTable.svelte +62 -71
  268. package/package/components/runs/RunsTable.svelte.d.ts +2 -1
  269. package/package/components/runs/runs-grid.css +95 -0
  270. package/package/components/schema/AddPropertyV2.svelte +2 -7
  271. package/package/components/schema/AddPropertyV2.svelte.d.ts +3 -20
  272. package/package/components/schema/EditableSchemaDrawer.svelte +121 -127
  273. package/package/components/schema/EditableSchemaDrawer.svelte.d.ts +2 -1
  274. package/package/components/schema/EditableSchemaSdkWrapper.svelte +16 -3
  275. package/package/components/schema/EditableSchemaSdkWrapper.svelte.d.ts +4 -1
  276. package/package/components/schema/EditableSchemaWrapper.svelte +3 -10
  277. package/package/components/schema/FlowPropertyEditor.svelte +195 -236
  278. package/package/components/schema/FlowPropertyEditor.svelte.d.ts +1 -1
  279. package/package/components/schema/PropertyEditor.svelte +33 -35
  280. package/package/components/schema/SchemaFormDND.svelte +11 -10
  281. package/package/components/schema/SchemaFormDND.svelte.d.ts +4 -3
  282. package/package/components/schema/editable_schema_wrapper.d.ts +0 -3
  283. package/package/components/search/GlobalSearchModal.svelte +8 -1
  284. package/package/components/select/DraggableTags.svelte.d.ts +17 -7
  285. package/package/components/select/MultiSelect.svelte.d.ts +21 -11
  286. package/package/components/select/Select.svelte +2 -1
  287. package/package/components/select/Select.svelte.d.ts +25 -13
  288. package/package/components/select/SelectDropdown.svelte.d.ts +14 -7
  289. package/package/components/settings/PremiumInfo.svelte +7 -2
  290. package/package/components/settings/TokenDisplay.svelte +1 -1
  291. package/package/components/sidebar/OperatorMenu.svelte +5 -0
  292. package/package/components/sidebar/SidebarContent.svelte +48 -2
  293. package/package/components/sidebar/WorkspaceMenu.svelte +116 -17
  294. package/package/components/toast.js +6 -3
  295. package/package/components/triggers/AddTriggersButton.svelte +7 -6
  296. package/package/components/triggers/CaptureWrapper.svelte +21 -16
  297. package/package/components/triggers/CaptureWrapper.svelte.d.ts +1 -1
  298. package/package/components/triggers/TriggerLabel.svelte +8 -0
  299. package/package/components/triggers/TriggerTokens.svelte +1 -1
  300. package/package/components/triggers/TriggersEditor.svelte +9 -5
  301. package/package/components/triggers/TriggersTable.svelte +2 -2
  302. package/package/components/triggers/TriggersWrapper.svelte +17 -5
  303. package/package/components/triggers/TriggersWrapper.svelte.d.ts +3 -19
  304. package/package/components/{details/EmailTriggerCaptures.svelte → triggers/email/DefaultEmailCapture.svelte} +5 -5
  305. package/package/components/{details/EmailTriggerCaptures.svelte.d.ts → triggers/email/DefaultEmailCapture.svelte.d.ts} +4 -4
  306. package/package/components/{details/EmailTriggerConfigSection.svelte → triggers/email/DefaultEmailConfigSection.svelte} +24 -14
  307. package/package/components/triggers/email/DefaultEmailConfigSection.svelte.d.ts +13 -0
  308. package/package/components/triggers/email/DefaultEmailPanel.svelte +71 -0
  309. package/package/components/triggers/email/DefaultEmailPanel.svelte.d.ts +11 -0
  310. package/package/components/triggers/email/EmailCapture.svelte +39 -0
  311. package/package/components/triggers/email/EmailCapture.svelte.d.ts +43 -0
  312. package/package/components/triggers/email/EmailTriggerEditor.svelte +20 -0
  313. package/package/components/triggers/email/EmailTriggerEditor.svelte.d.ts +11 -0
  314. package/package/components/triggers/email/EmailTriggerEditorConfigSection.svelte +133 -0
  315. package/package/components/triggers/email/EmailTriggerEditorConfigSection.svelte.d.ts +14 -0
  316. package/package/components/triggers/email/EmailTriggerEditorInner.svelte +335 -0
  317. package/package/components/triggers/email/EmailTriggerEditorInner.svelte.d.ts +22 -0
  318. package/package/components/triggers/email/EmailTriggerPanel.svelte +61 -0
  319. package/package/components/triggers/email/EmailTriggerPanel.svelte.d.ts +14 -0
  320. package/package/components/triggers/email/utils.d.ts +4 -0
  321. package/package/components/triggers/email/utils.js +52 -0
  322. package/package/components/triggers/http/RouteEditorConfigSection.svelte +1 -1
  323. package/package/components/triggers/http/RouteEditorInner.svelte +1 -1
  324. package/package/components/triggers/http/utils.js +1 -1
  325. package/package/components/triggers/nats/NatsTriggerEditorInner.svelte +23 -20
  326. package/package/components/triggers/nats/NatsTriggersConfigSection.svelte +15 -27
  327. package/package/components/triggers/nats/NatsTriggersConfigSection.svelte.d.ts +7 -5
  328. package/package/components/triggers/triggers.svelte.d.ts +1 -0
  329. package/package/components/triggers/triggers.svelte.js +24 -2
  330. package/package/components/triggers/utils.js +19 -5
  331. package/package/components/triggers/websocket/WebsocketTriggerEditorInner.svelte +16 -16
  332. package/package/components/triggers.d.ts +1 -1
  333. package/package/components/triggers.js +2 -0
  334. package/package/components/wizards/AgGridWizard.svelte +85 -80
  335. package/package/components/workspaceSettings/AISettings.svelte +74 -22
  336. package/package/components/workspaceSettings/AISettings.svelte.d.ts +2 -1
  337. package/package/components/workspaceSettings/CreateWorkspace.svelte +395 -0
  338. package/package/components/workspaceSettings/CreateWorkspace.svelte.d.ts +6 -0
  339. package/package/components/workspaceSettings/DucklakeSettings.svelte +3 -1
  340. package/package/components/workspaceSettings/GitSyncFilterSettings.svelte +1 -1
  341. package/package/components/workspaceSettings/StorageSettings.svelte +69 -48
  342. package/package/gen/core/OpenAPI.js +1 -1
  343. package/package/gen/schemas.gen.d.ts +142 -3
  344. package/package/gen/schemas.gen.js +144 -3
  345. package/package/gen/services.gen.d.ts +129 -1
  346. package/package/gen/services.gen.js +267 -1
  347. package/package/gen/types.gen.d.ts +434 -8
  348. package/package/hubPaths.json +6 -2
  349. package/package/infer.js +1 -1
  350. package/package/keyboardChain.d.ts +5 -0
  351. package/package/keyboardChain.js +40 -0
  352. package/package/script_helpers.d.ts +2 -2
  353. package/package/script_helpers.js +2 -0
  354. package/package/services/JobManager.js +2 -2
  355. package/package/stores.d.ts +4 -1
  356. package/package/stores.js +16 -6
  357. package/package/utils/workspaceHierarchy.d.ts +27 -0
  358. package/package/utils/workspaceHierarchy.js +101 -0
  359. package/package/utils.d.ts +6 -3
  360. package/package/utils.js +30 -15
  361. package/package/workspace_settings.js +2 -3
  362. package/package.json +10 -12
  363. package/package/components/DynSelect.svelte.d.ts +0 -11
  364. package/package/components/ModulePreviewResultViewer.svelte.d.ts +0 -28
  365. package/package/components/ObjectTypeNarrowing.svelte +0 -18
  366. package/package/components/ObjectTypeNarrowing.svelte.d.ts +0 -22
  367. package/package/components/details/DetailPageTriggerPanel.svelte +0 -121
  368. package/package/components/details/DetailPageTriggerPanel.svelte.d.ts +0 -20
  369. package/package/components/details/EmailTriggerConfigSection.svelte.d.ts +0 -12
  370. package/package/components/details/EmailTriggerPanel.svelte +0 -76
  371. package/package/components/details/EmailTriggerPanel.svelte.d.ts +0 -26
@@ -1,7 +1,7 @@
1
1
  <script lang="ts">import { onDestroy, onMount, tick, untrack } from 'svelte';
2
2
  import { AppService, FlowService, RawAppService, ScriptService } from '../../gen';
3
3
  import { clickOutside, isMac, scroll_into_view_if_needed_polyfill } from '../../utils';
4
- import { AlertTriangle, BoxesIcon, CalendarIcon, Code2Icon, Database, DollarSignIcon, HomeIcon, LayoutDashboardIcon, PlayIcon, Route, Search, SearchCode, Unplug, WandSparkles } from 'lucide-svelte';
4
+ import { AlertTriangle, BoxesIcon, CalendarIcon, Code2Icon, Database, DollarSignIcon, HomeIcon, LayoutDashboardIcon, MailIcon, PlayIcon, Route, Search, SearchCode, Unplug, WandSparkles } from 'lucide-svelte';
5
5
  import Portal from '../Portal.svelte';
6
6
  import { twMerge } from 'tailwind-merge';
7
7
  import ContentSearchInner from '../ContentSearchInner.svelte';
@@ -101,6 +101,13 @@ let hiddenMenuItems = [
101
101
  action: (newtab = false) => gotoPage('/mqtt_triggers', newtab),
102
102
  icon: MqttIcon,
103
103
  disabled: $userStore?.operator
104
+ },
105
+ {
106
+ search_id: 'nav:email_triggers',
107
+ label: 'Go to Email triggers',
108
+ action: (newtab = false) => gotoPage('/email_triggers', newtab),
109
+ icon: MailIcon,
110
+ disabled: $userStore?.operator
104
111
  }
105
112
  ];
106
113
  let defaultMenuItems = [
@@ -1,15 +1,25 @@
1
- declare class __sveltets_Render<Item extends {
1
+ declare function $$render<Item extends {
2
2
  label?: string;
3
3
  value: any;
4
- }> {
5
- props(): {
6
- items?: Item[] | undefined;
4
+ }>(): {
5
+ props: {
6
+ items?: Item[];
7
7
  allowClear?: boolean;
8
8
  onRemove: (item: Item) => void;
9
- onReorder?: ((oldIndex: number, newIndex: number) => void) | undefined;
9
+ onReorder?: (oldIndex: number, newIndex: number) => void;
10
10
  };
11
- events(): {};
12
- slots(): {};
11
+ exports: {};
12
+ bindings: "";
13
+ slots: {};
14
+ events: {};
15
+ };
16
+ declare class __sveltets_Render<Item extends {
17
+ label?: string;
18
+ value: any;
19
+ }> {
20
+ props(): ReturnType<typeof $$render<Item>>['props'];
21
+ events(): ReturnType<typeof $$render<Item>>['events'];
22
+ slots(): ReturnType<typeof $$render<Item>>['slots'];
13
23
  bindings(): "";
14
24
  exports(): {};
15
25
  }
@@ -1,9 +1,9 @@
1
- declare class __sveltets_Render<Item extends {
1
+ declare function $$render<Item extends {
2
2
  label?: string;
3
3
  value: any;
4
- }> {
5
- props(): {
6
- items?: Item[] | undefined;
4
+ }>(): {
5
+ props: {
6
+ items?: Item[];
7
7
  value: Item["value"][];
8
8
  placeholder?: string;
9
9
  class?: string;
@@ -20,14 +20,24 @@ declare class __sveltets_Render<Item extends {
20
20
  selectedUlClass?: string;
21
21
  placeholderClass?: string;
22
22
  allowClear?: boolean;
23
- groupBy?: ((item: Item) => string) | undefined;
24
- sortBy?: ((a: Item, b: Item) => number) | undefined;
25
- onOpen?: (() => void) | undefined;
26
- onClear?: (() => void) | undefined;
27
- onCreateItem?: ((value: string) => void) | undefined;
23
+ groupBy?: (item: Item) => string;
24
+ sortBy?: (a: Item, b: Item) => number;
25
+ onOpen?: () => void;
26
+ onClear?: () => void;
27
+ onCreateItem?: (value: string) => void;
28
28
  };
29
- events(): {};
30
- slots(): {};
29
+ exports: {};
30
+ bindings: "value";
31
+ slots: {};
32
+ events: {};
33
+ };
34
+ declare class __sveltets_Render<Item extends {
35
+ label?: string;
36
+ value: any;
37
+ }> {
38
+ props(): ReturnType<typeof $$render<Item>>['props'];
39
+ events(): ReturnType<typeof $$render<Item>>['events'];
40
+ slots(): ReturnType<typeof $$render<Item>>['slots'];
31
41
  bindings(): "value";
32
42
  exports(): {};
33
43
  }
@@ -6,7 +6,7 @@ import { untrack } from 'svelte';
6
6
  import { getLabel, processItems } from './utils.svelte';
7
7
  import SelectDropdown from './SelectDropdown.svelte';
8
8
  import { deepEqual } from 'fast-equals';
9
- let { items, placeholder = 'Please select', value = $bindable(), filterText = $bindable(''), class: className = '', clearable = false, listAutoWidth = true, disabled: _disabled = false, containerStyle = '', inputClass = '', disablePortal = false, loading = false, autofocus, RightIcon, createText, noItemsMsg, open = $bindable(false), groupBy, sortBy, onFocus, onBlur, onClear, onCreateItem, startSnippet } = $props();
9
+ let { items, placeholder = 'Please select', value = $bindable(), filterText = $bindable(''), class: className = '', clearable = false, listAutoWidth = true, disabled: _disabled = false, containerStyle = '', inputClass = '', disablePortal = false, loading = false, autofocus, RightIcon, createText, noItemsMsg, open = $bindable(false), id, groupBy, sortBy, onFocus, onBlur, onClear, onCreateItem, startSnippet } = $props();
10
10
  let disabled = $derived(_disabled || (loading && !value));
11
11
  let inputEl = $state();
12
12
  let processedItems = $derived.by(() => {
@@ -81,6 +81,7 @@ function clearValue() {
81
81
  autocomplete="off"
82
82
  onpointerdown={() => (open = true)}
83
83
  bind:this={inputEl}
84
+ {id}
84
85
  />
85
86
  <SelectDropdown
86
87
  {disablePortal}
@@ -1,12 +1,12 @@
1
1
  import { type Snippet } from 'svelte';
2
2
  import { type ProcessedItem } from './utils.svelte';
3
- declare class __sveltets_Render<Item extends {
3
+ declare function $$render<Item extends {
4
4
  label?: string;
5
5
  value: any;
6
6
  subtitle?: string;
7
- }> {
8
- props(): {
9
- items?: Item[] | undefined;
7
+ }>(): {
8
+ props: {
9
+ items?: Item[];
10
10
  value: Item["value"] | undefined;
11
11
  placeholder?: string;
12
12
  class?: string;
@@ -23,18 +23,30 @@ declare class __sveltets_Render<Item extends {
23
23
  createText?: string;
24
24
  noItemsMsg?: string;
25
25
  open?: boolean;
26
- groupBy?: ((item: Item) => string) | undefined;
27
- sortBy?: ((a: Item, b: Item) => number) | undefined;
28
- onFocus?: (() => void) | undefined;
29
- onBlur?: (() => void) | undefined;
30
- onClear?: (() => void) | undefined;
31
- onCreateItem?: ((value: string) => void) | undefined;
26
+ id?: string;
27
+ groupBy?: (item: Item) => string;
28
+ sortBy?: (a: Item, b: Item) => number;
29
+ onFocus?: () => void;
30
+ onBlur?: () => void;
31
+ onClear?: () => void;
32
+ onCreateItem?: (value: string) => void;
32
33
  startSnippet?: Snippet<[{
33
34
  item: ProcessedItem<Item["value"]>;
34
- }]> | undefined;
35
+ }]>;
35
36
  };
36
- events(): {};
37
- slots(): {};
37
+ exports: {};
38
+ bindings: "value" | "open" | "filterText";
39
+ slots: {};
40
+ events: {};
41
+ };
42
+ declare class __sveltets_Render<Item extends {
43
+ label?: string;
44
+ value: any;
45
+ subtitle?: string;
46
+ }> {
47
+ props(): ReturnType<typeof $$render<Item>>['props'];
48
+ events(): ReturnType<typeof $$render<Item>>['events'];
49
+ slots(): ReturnType<typeof $$render<Item>>['slots'];
38
50
  bindings(): "value" | "open" | "filterText";
39
51
  exports(): {};
40
52
  }
@@ -1,8 +1,8 @@
1
1
  import { type Snippet } from 'svelte';
2
2
  import type { ProcessedItem } from './utils.svelte';
3
- declare class __sveltets_Render<T> {
4
- props(): {
5
- processedItems?: ProcessedItem<T>[] | undefined;
3
+ declare function $$render<T>(): {
4
+ props: {
5
+ processedItems?: ProcessedItem<T>[];
6
6
  value: T | undefined;
7
7
  filterText?: string;
8
8
  listAutoWidth?: Boolean;
@@ -13,14 +13,21 @@ declare class __sveltets_Render<T> {
13
13
  class?: string;
14
14
  ulClass?: string;
15
15
  header?: Snippet;
16
- getInputRect?: (() => DOMRect) | undefined;
16
+ getInputRect?: () => DOMRect;
17
17
  onSelectValue: (item: ProcessedItem<T>) => void;
18
18
  startSnippet?: Snippet<[{
19
19
  item: ProcessedItem<T>;
20
- }]> | undefined;
20
+ }]>;
21
21
  };
22
- events(): {};
23
- slots(): {};
22
+ exports: {};
23
+ bindings: "";
24
+ slots: {};
25
+ events: {};
26
+ };
27
+ declare class __sveltets_Render<T> {
28
+ props(): ReturnType<typeof $$render<T>>['props'];
29
+ events(): ReturnType<typeof $$render<T>>['events'];
30
+ slots(): ReturnType<typeof $$render<T>>['slots'];
24
31
  bindings(): "";
25
32
  exports(): {};
26
33
  }
@@ -126,8 +126,13 @@ $: estimatedSeats && updateExecs();
126
126
  </div>
127
127
  {#if premiumInfo?.status === 'past_due'}
128
128
  <p class="text-red-500 text-base">
129
- Your last invoice is unpaid. Please update your payment method in the customer portal to
130
- prevent account downgrade and the interruption of your job executions.
129
+ {#if premiumInfo.max_tolerated_executions === undefined || premiumInfo.usage > premiumInfo.max_tolerated_executions}
130
+ Your last invoice is unpaid, you cannot run any more jobs. Please update your payment
131
+ method in the customer portal to continue running jobs.
132
+ {:else}
133
+ Your last invoice is unpaid. Please update your payment method in the customer portal to
134
+ prevent the interruption of your job executions.
135
+ {/if}
131
136
  </p>
132
137
  {/if}
133
138
  </div>
@@ -3,7 +3,7 @@ import { Clipboard } from 'lucide-svelte';
3
3
  import Alert from '../common/alert/Alert.svelte';
4
4
  let { token, mcpUrl, title, onCopy } = $props();
5
5
  function handleCopyClick() {
6
- copyToClipboard(token);
6
+ copyToClipboard(mcpUrl || token);
7
7
  onCopy?.();
8
8
  }
9
9
  const displayTitle = $derived(title || (mcpUrl ? 'MCP URL Generated Successfully' : 'Token Created Successfully'));
@@ -78,6 +78,11 @@ let secondMenuLinks = $derived([
78
78
  id: 'triggers',
79
79
  href: `${base}/mqtt_triggers`
80
80
  },
81
+ {
82
+ label: 'Email triggers',
83
+ id: 'triggers',
84
+ href: `${base}/email_triggers`
85
+ },
81
86
  {
82
87
  label: 'Audit logs',
83
88
  id: 'audit_logs',
@@ -1,7 +1,7 @@
1
1
  <script lang="ts">import MenuLink from './MenuLink.svelte';
2
2
  import { superadmin, usedTriggerKinds, userStore, workspaceStore, isCriticalAlertsUIOpen, enterpriseLicense, devopsRole } from '../../stores';
3
3
  import { SIDEBAR_SHOW_SCHEDULES } from '../../consts';
4
- import { BookOpen, Bot, Boxes, Calendar, DollarSign, Eye, Logs, FolderCog, FolderOpen, Github, HelpCircle, Home, LogOut, Newspaper, Play, Route, ServerCog, Settings, UserCog, Plus, Unplug, AlertCircle, Database, Pyramid } from 'lucide-svelte';
4
+ import { BookOpen, Bot, Boxes, Calendar, DollarSign, Eye, Logs, FolderCog, FolderOpen, Github, HelpCircle, Home, LogOut, Newspaper, Play, Route, ServerCog, Settings, UserCog, Plus, Unplug, AlertCircle, Database, Pyramid, Trash2, MailIcon } from 'lucide-svelte';
5
5
  import UserMenu from './UserMenu.svelte';
6
6
  import DiscordIcon from '../icons/brands/Discord.svelte';
7
7
  import { WorkspaceService } from '../../gen';
@@ -28,6 +28,12 @@ async function leaveWorkspace() {
28
28
  clearStores();
29
29
  goto('/user/workspaces');
30
30
  }
31
+ async function deleteFork() {
32
+ await WorkspaceService.deleteWorkspace({ workspace: $workspaceStore ?? '' });
33
+ sendUserToast('You deleted the workspace');
34
+ clearStores();
35
+ goto('/user/workspaces');
36
+ }
31
37
  let hasNewChangelogs = $state(false);
32
38
  let recentChangelogs = $state([]);
33
39
  let lastOpened = localStorage.getItem('changelogsLastOpened');
@@ -85,6 +91,7 @@ const thirdMenuLinks = [
85
91
  ];
86
92
  let { numUnacknowledgedCriticalAlerts = 0, isCollapsed = false } = $props();
87
93
  let leaveWorkspaceModal = $state(false);
94
+ let deleteWorkspaceForkModal = $state(false);
88
95
  function computeAllNotificationsCount(menuItems) {
89
96
  let count = 0;
90
97
  for (const menuItem of menuItems) {
@@ -205,6 +212,15 @@ let defaultExtraTriggerLinks = $derived([
205
212
  kind: 'mqtt',
206
213
  aiId: 'sidebar-menu-link-mqtt',
207
214
  aiDescription: 'Button to navigate to MQTT triggers'
215
+ },
216
+ {
217
+ label: 'Email',
218
+ href: '/email_triggers',
219
+ icon: MailIcon,
220
+ disabled: $userStore?.operator,
221
+ kind: 'email',
222
+ aiId: 'sidebar-menu-link-email',
223
+ aiDescription: 'Button to navigate to Email triggers'
208
224
  }
209
225
  ]);
210
226
  let triggerMenuLinks = $derived([
@@ -278,7 +294,19 @@ let secondaryMenuLinks = $derived([
278
294
  faIcon: undefined
279
295
  }
280
296
  ]
281
- : [])
297
+ : []),
298
+ ...($workspaceStore?.startsWith("wm-fork")
299
+ ? [
300
+ {
301
+ label: 'Delete Forked Workspace',
302
+ action: () => {
303
+ deleteWorkspaceForkModal = true;
304
+ },
305
+ icon: Trash2,
306
+ faIcon: undefined
307
+ }
308
+ ]
309
+ : []),
282
310
  ],
283
311
  disabled: $userStore?.operator
284
312
  },
@@ -572,3 +600,21 @@ let secondaryMenuLinks = $derived([
572
600
  <span>Are you sure you want to leave this workspace?</span>
573
601
  </div>
574
602
  </ConfirmationModal>
603
+
604
+ {#if $workspaceStore?.startsWith("wm-fork-")}
605
+ <ConfirmationModal
606
+ open={deleteWorkspaceForkModal}
607
+ title="Delete forked workspace"
608
+ confirmationText="Remove"
609
+ on:canceled={() => {
610
+ deleteWorkspaceForkModal = false
611
+ }}
612
+ on:confirmed={() => {
613
+ deleteFork()
614
+ }}
615
+ >
616
+ <div class="flex flex-col w-full space-y-4">
617
+ <span>Are you sure you want to delete this workspace fork? (deleting {$workspaceStore})</span>
618
+ </div>
619
+ </ConfirmationModal>
620
+ {/if}
@@ -1,5 +1,5 @@
1
1
  <script lang="ts">import { isPremiumStore, superadmin, userStore, userWorkspaces, workspaceStore, workspaceUsageStore, workspaceColor } from '../../stores';
2
- import { Building, Plus, Settings } from 'lucide-svelte';
2
+ import { Building, Plus, Settings, GitFork } from 'lucide-svelte';
3
3
  import MenuButton from './MenuButton.svelte';
4
4
  import { Menu, MenuItem } from '../meltComponents';
5
5
  import { goto } from '../../navigation';
@@ -11,6 +11,13 @@ import { enterpriseLicense } from '../../stores';
11
11
  import { isCloudHosted } from '../../cloud';
12
12
  import { workspaceAIClients } from '../copilot/lib';
13
13
  import { twMerge } from 'tailwind-merge';
14
+ import { buildWorkspaceHierarchy } from '../../utils/workspaceHierarchy';
15
+ function removePrefix(str, prefix) {
16
+ if (str.startsWith(prefix)) {
17
+ return str.substring(prefix.length);
18
+ }
19
+ return str;
20
+ }
14
21
  let { isCollapsed = false, createMenu, strictWorkspaceSelect = false } = $props();
15
22
  async function toggleSwitchWorkspace(id) {
16
23
  if ($workspaceStore === id) {
@@ -37,24 +44,79 @@ async function toggleSwitchWorkspace(id) {
37
44
  await goto('/');
38
45
  }
39
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
+ }
53
+ function getForkedWorkspace(workspaceId) {
54
+ if (!$userWorkspaces)
55
+ return undefined;
56
+ return $userWorkspaces.find((w) => w.id === workspaceId && w.parent_workspace_id != null);
57
+ }
58
+ function getParentWorkspace(parentId) {
59
+ if (!$userWorkspaces)
60
+ return undefined;
61
+ return $userWorkspaces.find((w) => w.id === parentId);
62
+ }
63
+ // Group workspaces into parent-child hierarchy using Svelte 5 derived and the new utility
64
+ const groupedWorkspaces = $derived(() => {
65
+ if (!$userWorkspaces)
66
+ return [];
67
+ return buildWorkspaceHierarchy($userWorkspaces);
68
+ });
40
69
  </script>
41
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
79
+ class="group flex items-center px-2 py-2 font-light rounded-md h-8 gap-3 w-full text-xs"
80
+ >
81
+ <Building size={12} class="text-tertiary" />
82
+ <span class="text-xs text-tertiary"> {parentWorkspace?.name ?? ''} </span>
83
+ </div>
84
+ {/snippet}
85
+ </Menu>
86
+ {/if}
42
87
  <Menu {createMenu} usePointerDownOutside>
43
88
  {#snippet triggr({ trigger })}
44
- <MenuButton
45
- class="!text-xs"
46
- icon={Building}
47
- label={$workspaceStore ?? ''}
48
- {isCollapsed}
49
- color={$workspaceColor}
50
- {trigger}
51
- />
89
+ {@const forkedWorkspace = getForkedWorkspace($workspaceStore ?? '')}
90
+ {@const parentWorkspace = forkedWorkspace
91
+ ? getParentWorkspace(forkedWorkspace.parent_workspace_id!)
92
+ : null}
93
+ {#if forkedWorkspace && parentWorkspace}
94
+ <div class={isCollapsed ? '' : 'pl-6'}>
95
+ <MenuButton
96
+ class="!text-xs"
97
+ icon={GitFork}
98
+ label={removePrefix($workspaceStore ?? '', 'wm-fork-')}
99
+ {isCollapsed}
100
+ color={$workspaceColor}
101
+ {trigger}
102
+ />
103
+ </div>
104
+ {:else}
105
+ <MenuButton
106
+ class="!text-xs"
107
+ icon={Building}
108
+ label={$workspaceStore ?? ''}
109
+ {isCollapsed}
110
+ color={$workspaceColor}
111
+ {trigger}
112
+ />
113
+ {/if}
52
114
  {/snippet}
53
115
 
54
116
  {#snippet children({ item })}
55
117
  <div class="divide-y" role="none">
56
118
  <div class="py-1">
57
- {#each $userWorkspaces as workspace}
119
+ {#each groupedWorkspaces() as { workspace, depth, isForked, parentName }}
58
120
  <MenuItem
59
121
  class={twMerge(
60
122
  'text-xs min-w-0 w-full overflow-hidden flex flex-col py-1.5',
@@ -68,13 +130,37 @@ async function toggleSwitchWorkspace(id) {
68
130
  {item}
69
131
  >
70
132
  <div class="flex items-center justify-between min-w-0 w-full">
71
- <div>
72
- <div class="text-primary pl-4 truncate text-left text-[1.2em]">{workspace.name}</div
73
- >
74
- <div
75
- class="text-tertiary font-mono pl-4 text-2xs whitespace-nowrap truncate text-left"
76
- >
77
- {workspace.id}
133
+ <div
134
+ class={twMerge('flex items-center gap-2 min-w-0', 'pl-4')}
135
+ style:padding-left={`${4 + depth * 12}px`}
136
+ >
137
+ {#if isForked}
138
+ <GitFork size={12} class="text-tertiary flex-shrink-0" />
139
+ {:else}
140
+ <Building size={12} />
141
+ {/if}
142
+ <div class="min-w-0 flex-1">
143
+ <div
144
+ class={twMerge(
145
+ 'truncate text-left text-[1.2em]',
146
+ isForked ? 'text-secondary' : 'text-primary'
147
+ )}
148
+ >
149
+ {workspace.name}
150
+ </div>
151
+ <div
152
+ class={twMerge(
153
+ 'font-mono text-2xs whitespace-nowrap truncate text-left',
154
+ isForked ? 'text-tertiary opacity-75' : 'text-tertiary'
155
+ )}
156
+ >
157
+ {workspace.id}
158
+ </div>
159
+ {#if isForked && parentName}
160
+ <div class="text-tertiary text-2xs truncate text-left pl-2 min-h-[1rem]">
161
+ Fork of {parentName}
162
+ </div>
163
+ {/if}
78
164
  </div>
79
165
  </div>
80
166
  {#if workspace.color}
@@ -100,6 +186,19 @@ async function toggleSwitchWorkspace(id) {
100
186
  </a>
101
187
  </div>
102
188
  {/if}
189
+ {#if !strictWorkspaceSelect}
190
+ <div class="py-1" role="none">
191
+ <a
192
+ href="{base}/user/fork_workspace"
193
+ class="text-primary px-4 py-2 text-xs hover:bg-surface-hover hover:text-primary flex flex-flow gap-2"
194
+ role="menuitem"
195
+ tabindex="-1"
196
+ >
197
+ <GitFork size={16} />
198
+ Fork current workspace
199
+ </a>
200
+ </div>
201
+ {/if}
103
202
  {#if !strictWorkspaceSelect}
104
203
  <div class="py-1" role="none">
105
204
  <MenuItem
@@ -1,9 +1,12 @@
1
1
  //regex that match path starting with u/ or f/ and with at least 2 /
2
2
  const pathRegex = /\b(u|f)\/[^\/\s]+\/[^\/\s]+\b/g;
3
3
  export function processMessage(message) {
4
- return (typeof message == 'string'
5
- ? message ?? 'Error without message'
6
- : JSON.stringify(message, null, 2)).replaceAll(pathRegex, (path) => {
4
+ let msg = !message
5
+ ? 'Error without message'
6
+ : typeof message != 'string'
7
+ ? JSON.stringify(message, null, 2)
8
+ : message;
9
+ return msg.replaceAll(pathRegex, (path) => {
7
10
  return `<span class="bg-surface-secondary p-1 text-xs font-mono whitespace-nowrap rounded-md">${path}</span>`;
8
11
  });
9
12
  }
@@ -3,7 +3,7 @@ import DropdownV2 from '../DropdownV2.svelte';
3
3
  import { SchedulePollIcon } from '../icons';
4
4
  import { isCloudHosted } from '../../cloud';
5
5
  import { CloudOff } from 'lucide-svelte';
6
- let { setDropdownWidthToButtonWidth = false, children, class: className, triggerScriptPicker, placement = 'bottom', isEditor = false, onAddDraftTrigger, onAddScheduledPoll, onClose } = $props();
6
+ let { setDropdownWidthToButtonWidth = false, children, class: className, placement = 'bottom', isEditor = false, onAddDraftTrigger, onAddScheduledPoll, onClose } = $props();
7
7
  let dropdown;
8
8
  const cloudHosted = isCloudHosted();
9
9
  // Dropdown items for adding new triggers
@@ -56,10 +56,15 @@ const addTriggerItems = [
56
56
  icon: triggerIconMap.gcp,
57
57
  extra: cloudHosted ? extra : undefined
58
58
  },
59
+ {
60
+ displayName: 'Email',
61
+ action: () => onAddDraftTrigger?.('email'),
62
+ icon: triggerIconMap.email,
63
+ extra: cloudHosted ? extra : undefined
64
+ },
59
65
  {
60
66
  displayName: 'Scheduled Poll',
61
67
  action: (e) => {
62
- e.preventDefault();
63
68
  onAddDraftTrigger?.('poll');
64
69
  onAddScheduledPoll?.();
65
70
  },
@@ -89,7 +94,6 @@ export function close() {
89
94
  class={className}
90
95
  customWidth={setDropdownWidthToButtonWidth ? triggersButtonWidth : undefined}
91
96
  usePointerDownOutside
92
- customMenu={!!triggerScriptPicker}
93
97
  on:close={() => onClose?.()}
94
98
  >
95
99
  {#snippet buttonReplacement()}
@@ -97,7 +101,4 @@ export function close() {
97
101
  {@render children?.()}
98
102
  </div>
99
103
  {/snippet}
100
- {#snippet menu()}
101
- {@render triggerScriptPicker?.()}
102
- {/snippet}
103
104
  </DropdownV2>
@@ -1,10 +1,10 @@
1
1
  <script lang="ts">import { workspaceStore } from '../../stores';
2
2
  import { CaptureService } from '../../gen';
3
3
  import { onDestroy, untrack } from 'svelte';
4
- import { isObject, sendUserToast, sleep } from '../../utils';
4
+ import { sendUserToast, sleep } from '../../utils';
5
5
  import RouteCapture from './http/RouteCapture.svelte';
6
6
  import WebhooksCapture from './webhook/WebhooksCapture.svelte';
7
- import EmailTriggerCaptures from '../details/EmailTriggerCaptures.svelte';
7
+ import DefaultEmailCapture from './email/DefaultEmailCapture.svelte';
8
8
  import WebsocketCapture from './websocket/WebsocketCapture.svelte';
9
9
  import PostgresCapture from './postgres/PostgresCapture.svelte';
10
10
  import KafkaCapture from './kafka/KafkaCapture.svelte';
@@ -12,7 +12,8 @@ import NatsCapture from './nats/NatsCapture.svelte';
12
12
  import MqttCapture from './mqtt/MqttCapture.svelte';
13
13
  import SqsCapture from './sqs/SqsCapture.svelte';
14
14
  import GcpCapture from './gcp/GcpCapture.svelte';
15
- let { isFlow, path, hasPreprocessor, canHavePreprocessor, captureType = 'webhook', data = {}, connectionInfo = $bindable(undefined), args = $bindable({}), isValid = false, triggerDeployed = false } = $props();
15
+ import EmailCapture from './email/EmailCapture.svelte';
16
+ let { isFlow, path, hasPreprocessor, canHavePreprocessor, captureType = 'webhook', data = {}, connectionInfo = $bindable(undefined), args = {}, isValid = false, triggerDeployed = false } = $props();
16
17
  let captureLoading = $state(false);
17
18
  let captureActive = $state(false);
18
19
  let captureConfigs = $state({});
@@ -64,7 +65,6 @@ async function getCaptureConfigs() {
64
65
  }
65
66
  return captureConfigs;
66
67
  }
67
- getCaptureConfigs().then((captureConfigs) => setDefaultArgs(captureConfigs));
68
68
  async function capture() {
69
69
  let i = 0;
70
70
  captureActive = true;
@@ -82,16 +82,6 @@ async function capture() {
82
82
  await sleep(1000);
83
83
  }
84
84
  }
85
- function setDefaultArgs(captureConfigs) {
86
- if (captureType in captureConfigs) {
87
- const triggerConfig = captureConfigs[captureType].trigger_config;
88
- args = isObject(triggerConfig) ? triggerConfig : {};
89
- }
90
- else {
91
- args = {};
92
- }
93
- ready = true;
94
- }
95
85
  onDestroy(() => {
96
86
  captureActive = false;
97
87
  });
@@ -206,8 +196,8 @@ $effect(() => {
206
196
  on:captureToggle={handleCapture}
207
197
  on:testWithArgs
208
198
  />
209
- {:else if captureType === 'email'}
210
- <EmailTriggerCaptures
199
+ {:else if captureType === 'default_email'}
200
+ <DefaultEmailCapture
211
201
  {path}
212
202
  {isFlow}
213
203
  emailDomain={data?.emailDomain}
@@ -291,6 +281,21 @@ $effect(() => {
291
281
  on:captureToggle={handleCapture}
292
282
  on:testWithArgs
293
283
  />
284
+ {:else if captureType === 'email'}
285
+ <EmailCapture
286
+ local_part={args.local_part}
287
+ emailDomain={data?.emailDomain}
288
+ {isValid}
289
+ {captureInfo}
290
+ {hasPreprocessor}
291
+ {isFlow}
292
+ {captureLoading}
293
+ on:applyArgs
294
+ on:updateSchema
295
+ on:addPreprocessor
296
+ on:captureToggle={handleCapture}
297
+ on:testWithArgs
298
+ />
294
299
  {/if}
295
300
  </div>
296
301
  {/key}
@@ -37,6 +37,6 @@ declare const CaptureWrapper: $$__sveltets_2_IsomorphicComponent<Props, {
37
37
  handleCapture: (e: CustomEvent<{
38
38
  disableOnly?: boolean;
39
39
  }>) => Promise<void>;
40
- }, "args" | "connectionInfo">;
40
+ }, "connectionInfo">;
41
41
  type CaptureWrapper = InstanceType<typeof CaptureWrapper>;
42
42
  export default CaptureWrapper;