windmill-components 1.542.5 → 1.555.0

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 (399) hide show
  1. package/package/aiStore.d.ts +13 -0
  2. package/package/aiStore.js +70 -0
  3. package/package/common.d.ts +6 -2
  4. package/package/components/AIAgentLogViewer.svelte +1 -1
  5. package/package/components/AIProviderPicker.svelte +25 -8
  6. package/package/components/ArgEnum.svelte +17 -7
  7. package/package/components/ArgEnum.svelte.d.ts +1 -0
  8. package/package/components/ArgInput.svelte +257 -188
  9. package/package/components/ArgInput.svelte.d.ts +4 -1
  10. package/package/components/ArrayTypeNarrowing.svelte +38 -32
  11. package/package/components/AutoscalingEvents.svelte +21 -5
  12. package/package/components/AutoscalingEvents.svelte.d.ts +4 -18
  13. package/package/components/ChannelSelector.svelte +92 -18
  14. package/package/components/ChannelSelector.svelte.d.ts +2 -0
  15. package/package/components/ConnectionSection.svelte +12 -1
  16. package/package/components/DateTimeInput.svelte +8 -6
  17. package/package/components/DeployButton.svelte +1 -1
  18. package/package/components/Dev.svelte +24 -9
  19. package/package/components/Dev.svelte.d.ts +23 -1
  20. package/package/components/DisplayResult.svelte +36 -23
  21. package/package/components/DropdownV2.svelte +8 -2
  22. package/package/components/DropdownV2.svelte.d.ts +1 -0
  23. package/package/components/DynamicInput.svelte +10 -10
  24. package/package/components/EditableSchemaForm.svelte +28 -13
  25. package/package/components/Editor.svelte +2 -1
  26. package/package/components/EditorSettings.svelte +5 -5
  27. package/package/components/EditorSettings.svelte.d.ts +4 -18
  28. package/package/components/ErrorOrRecoveryHandler.svelte +14 -20
  29. package/package/components/FakeMonacoPlaceHolder.svelte +4 -2
  30. package/package/components/FakeMonacoPlaceHolder.svelte.d.ts +1 -0
  31. package/package/components/FieldHeader.svelte +5 -7
  32. package/package/components/FirstStepInputs.svelte +1 -1
  33. package/package/components/FlowHistoryJobPicker.svelte +3 -0
  34. package/package/components/FlowHistoryJobPicker.svelte.d.ts +1 -0
  35. package/package/components/FlowJobResult.svelte +5 -5
  36. package/package/components/FlowLogRow.svelte +2 -2
  37. package/package/components/FlowLogViewer.svelte +228 -57
  38. package/package/components/FlowLogViewer.svelte.d.ts +16 -5
  39. package/package/components/FlowLogViewerWrapper.svelte +56 -3
  40. package/package/components/FlowLogViewerWrapper.svelte.d.ts +4 -3
  41. package/package/components/FlowLoopIterationPreview.svelte +4 -4
  42. package/package/components/FlowLoopIterationPreview.svelte.d.ts +1 -1
  43. package/package/components/FlowMetadata.svelte +3 -4
  44. package/package/components/FlowMetadata.svelte.d.ts +4 -18
  45. package/package/components/FlowPlugConnect.svelte +8 -2
  46. package/package/components/FlowPlugConnect.svelte.d.ts +1 -0
  47. package/package/components/FlowPreviewContent.svelte +121 -94
  48. package/package/components/FlowPreviewContent.svelte.d.ts +3 -3
  49. package/package/components/FlowStatusViewer.svelte +63 -59
  50. package/package/components/FlowStatusViewer.svelte.d.ts +2 -2
  51. package/package/components/FlowStatusViewerInner.svelte +186 -94
  52. package/package/components/FlowStatusViewerInner.svelte.d.ts +10 -3
  53. package/package/components/FlowTimeline.svelte +110 -131
  54. package/package/components/FlowTimeline.svelte.d.ts +13 -4
  55. package/package/components/FlowTimelineBar.svelte +227 -0
  56. package/package/components/FlowTimelineBar.svelte.d.ts +24 -0
  57. package/package/components/FolderEditor.svelte +6 -7
  58. package/package/components/GroupEditor.svelte +148 -141
  59. package/package/components/GroupEditor.svelte.d.ts +5 -4
  60. package/package/components/InputTransformForm.svelte +193 -71
  61. package/package/components/InputTransformForm.svelte.d.ts +3 -0
  62. package/package/components/InputTransformSchemaForm.svelte +10 -5
  63. package/package/components/InputTransformSchemaForm.svelte.d.ts +2 -0
  64. package/package/components/InstanceSetting.svelte +34 -51
  65. package/package/components/InstanceSettings.svelte +12 -21
  66. package/package/components/JobArgs.svelte +15 -16
  67. package/package/components/JobArgs.svelte.d.ts +4 -18
  68. package/package/components/JobLoader.svelte +23 -42
  69. package/package/components/JobLoader.svelte.d.ts +2 -0
  70. package/package/components/JobStatus.svelte +1 -1
  71. package/package/components/JobStatus.svelte.d.ts +4 -18
  72. package/package/components/JsonEditor.svelte +18 -9
  73. package/package/components/JsonEditor.svelte.d.ts +1 -1
  74. package/package/components/JsonInputs.svelte +1 -1
  75. package/package/components/ModulePreviewForm.svelte +23 -19
  76. package/package/components/ModulePreviewResultViewer.svelte +1 -7
  77. package/package/components/NextcloudSetting.svelte +6 -1
  78. package/package/components/NumberTypeNarrowing.svelte +32 -16
  79. package/package/components/ObjectStoreConfigSettings.svelte +27 -19
  80. package/package/components/Password.svelte +7 -11
  81. package/package/components/Password.svelte.d.ts +5 -20
  82. package/package/components/PasswordArgInput.svelte +35 -15
  83. package/package/components/PasswordArgInput.svelte.d.ts +4 -18
  84. package/package/components/Path.svelte +2 -8
  85. package/package/components/Path.svelte.d.ts +1 -1
  86. package/package/components/QueuePosition.svelte +6 -2
  87. package/package/components/ResourceEditor.svelte +3 -10
  88. package/package/components/ResourcePicker.svelte +85 -72
  89. package/package/components/ResourcePicker.svelte.d.ts +2 -0
  90. package/package/components/RunChart.svelte +1 -1
  91. package/package/components/RunForm.svelte +16 -21
  92. package/package/components/S3ArrayHelperButton.svelte +18 -0
  93. package/package/components/S3ArrayHelperButton.svelte.d.ts +9 -0
  94. package/package/components/S3FilePicker.svelte +1 -1
  95. package/package/components/SchemaForm.svelte +18 -10
  96. package/package/components/SchemaForm.svelte.d.ts +7 -1
  97. package/package/components/SchemaFormWithArgPicker.svelte +1 -1
  98. package/package/components/ScriptBuilder.svelte +2 -2
  99. package/package/components/ScriptEditor.svelte +9 -9
  100. package/package/components/ScriptEditor.svelte.d.ts +1 -1
  101. package/package/components/ShareModal.svelte +4 -4
  102. package/package/components/SimpleEditor.svelte +6 -2
  103. package/package/components/SimpleEditor.svelte.d.ts +3 -0
  104. package/package/components/StringTypeNarrowing.svelte +44 -25
  105. package/package/components/StringTypeNarrowing.svelte.d.ts +1 -1
  106. package/package/components/SuperadminSettingsInner.svelte +3 -3
  107. package/package/components/TeamSelector.svelte +83 -37
  108. package/package/components/TeamSelector.svelte.d.ts +0 -1
  109. package/package/components/TemplateEditor.svelte +18 -9
  110. package/package/components/Toast.svelte +2 -7
  111. package/package/components/Toast.svelte.d.ts +4 -18
  112. package/package/components/Toggle.svelte +17 -7
  113. package/package/components/ToggleHubWorkspaceQuick.svelte +3 -3
  114. package/package/components/WorkerGroup.svelte +2 -14
  115. package/package/components/apps/components/buttons/AppButton.svelte +66 -38
  116. package/package/components/apps/components/display/dbtable/InsertRow.svelte +32 -2
  117. package/package/components/apps/components/display/dbtable/queries/insert.js +2 -1
  118. package/package/components/apps/components/display/dbtable/utils.d.ts +8 -8
  119. package/package/components/apps/components/display/table/AppAggridInfiniteTable.svelte +13 -4
  120. package/package/components/apps/components/display/table/SyncColumnDefs.svelte +2 -2
  121. package/package/components/apps/components/display/table/utils.js +14 -4
  122. package/package/components/apps/components/helpers/RefreshButton.svelte +5 -1
  123. package/package/components/apps/components/helpers/RunnableComponent.svelte +3 -5
  124. package/package/components/apps/components/helpers/RunnableWrapper.svelte.d.ts +1 -0
  125. package/package/components/apps/components/inputs/currency/CurrencyInput.svelte +2 -1
  126. package/package/components/apps/components/layout/AppTabs.svelte +116 -71
  127. package/package/components/apps/components/layout/AppTabs.svelte.d.ts +1 -0
  128. package/package/components/apps/editor/AppEditorHeader.svelte +33 -271
  129. package/package/components/apps/editor/AppEditorHeaderDeploy.svelte +233 -0
  130. package/package/components/apps/editor/AppEditorHeaderDeploy.svelte.d.ts +18 -0
  131. package/package/components/apps/editor/AppEditorHeaderDeployInitialDraft.svelte +47 -0
  132. package/package/components/apps/editor/AppEditorHeaderDeployInitialDraft.svelte.d.ts +8 -0
  133. package/package/components/apps/editor/GridEditor.svelte +7 -2
  134. package/package/components/apps/editor/appDeploy.svelte.d.ts +1 -0
  135. package/package/components/apps/editor/appDeploy.svelte.js +6 -0
  136. package/package/components/apps/editor/appUtils.d.ts +1 -0
  137. package/package/components/apps/editor/appUtils.js +30 -1
  138. package/package/components/apps/editor/component/ComponentInner.svelte +1 -0
  139. package/package/components/apps/editor/component/ComponentNavigation.svelte +3 -1
  140. package/package/components/apps/editor/component/components.d.ts +19 -4
  141. package/package/components/apps/editor/component/components.js +23 -3
  142. package/package/components/apps/editor/contextPanel/ComponentOutputViewer.svelte +1 -1
  143. package/package/components/apps/editor/inlineScriptsPanel/EmptyInlineScript.svelte +6 -4
  144. package/package/components/apps/editor/inlineScriptsPanel/InlineScriptEditor.svelte.d.ts +1 -1
  145. package/package/components/apps/editor/inlineScriptsPanel/InlineScriptEditorDrawer.svelte.d.ts +1 -1
  146. package/package/components/apps/editor/inlineScriptsPanel/InlineScriptRunnableByPath.svelte.d.ts +1 -1
  147. package/package/components/apps/editor/settingsPanel/ComponentPanel.svelte +2 -0
  148. package/package/components/apps/editor/settingsPanel/GridTab.svelte +19 -1
  149. package/package/components/apps/editor/settingsPanel/GridTab.svelte.d.ts +3 -1
  150. package/package/components/apps/editor/settingsPanel/GridTabHidden.svelte +52 -0
  151. package/package/components/apps/editor/settingsPanel/GridTabHidden.svelte.d.ts +9 -0
  152. package/package/components/apps/editor/settingsPanel/InputsSpecEditor.svelte +58 -8
  153. package/package/components/auditLogs/AuditLogsFilters.svelte +7 -1
  154. package/package/components/auditLogs/AuditLogsTable.svelte +17 -7
  155. package/package/components/auditLogs/AuditLogsTable.svelte.d.ts +1 -0
  156. package/package/components/common/CloseButton.svelte +2 -2
  157. package/package/components/common/CloseButton.svelte.d.ts +1 -0
  158. package/package/components/common/ResizeTransitionWrapper.svelte +39 -0
  159. package/package/components/common/ResizeTransitionWrapper.svelte.d.ts +12 -0
  160. package/package/components/common/badge/CountBadge.svelte +29 -0
  161. package/package/components/common/badge/CountBadge.svelte.d.ts +8 -0
  162. package/package/components/common/button/Button.svelte +1 -0
  163. package/package/components/common/button/ConnectionButton.svelte +6 -1
  164. package/package/components/common/button/ConnectionButton.svelte.d.ts +2 -0
  165. package/package/components/common/button/RefreshButton.svelte +8 -4
  166. package/package/components/common/button/RefreshButton.svelte.d.ts +3 -0
  167. package/package/components/common/calendarPicker/CalendarPicker.svelte +1 -1
  168. package/package/components/common/fileInput/FileInput.svelte +7 -6
  169. package/package/components/common/fileUpload/S3ArgInput.svelte +11 -9
  170. package/package/components/common/fileUpload/S3ArgInput.svelte.d.ts +1 -0
  171. package/package/components/common/layout/List.svelte +3 -7
  172. package/package/components/common/layout/List.svelte.d.ts +7 -29
  173. package/package/components/common/popup/PopupV2.svelte +14 -25
  174. package/package/components/common/popup/PopupV2.svelte.d.ts +4 -2
  175. package/package/components/common/table/ScriptRow.svelte +22 -2
  176. package/package/components/common/toggleButton-v2/ToggleButton.svelte +17 -26
  177. package/package/components/common/toggleButton-v2/ToggleButton.svelte.d.ts +16 -30
  178. package/package/components/common/toggleButton-v2/ToggleButtonGroup.svelte +1 -1
  179. package/package/components/common/toggleButton-v2/ToggleButtonMore.svelte +3 -3
  180. package/package/components/common/toggleButton-v2/ToggleButtonMore.svelte.d.ts +1 -0
  181. package/package/components/copilot/CodeCompletionStatus.svelte +2 -1
  182. package/package/components/copilot/CronGen.svelte +1 -1
  183. package/package/components/copilot/FlowCopilotInputsModal.svelte +26 -23
  184. package/package/components/copilot/FlowInlineScriptAIButton.svelte +2 -2
  185. package/package/components/copilot/IteratorGen.svelte +30 -25
  186. package/package/components/copilot/IteratorGen.svelte.d.ts +8 -7
  187. package/package/components/copilot/MetadataGen.svelte +4 -3
  188. package/package/components/copilot/PredicateGen.svelte +15 -12
  189. package/package/components/copilot/PredicateGen.svelte.d.ts +5 -4
  190. package/package/components/copilot/RegexGen.svelte +1 -1
  191. package/package/components/copilot/ScriptFix.svelte +1 -1
  192. package/package/components/copilot/ScriptGen.svelte +2 -1
  193. package/package/components/copilot/StepGenQuick.svelte +15 -16
  194. package/package/components/copilot/StepGenQuick.svelte.d.ts +14 -13
  195. package/package/components/copilot/StepInputGen.svelte +50 -36
  196. package/package/components/copilot/StepInputGen.svelte.d.ts +13 -10
  197. package/package/components/copilot/StepInputsGen.svelte +18 -19
  198. package/package/components/copilot/StepInputsGen.svelte.d.ts +4 -18
  199. package/package/components/copilot/autocomplete/Autocompletor.js +1 -1
  200. package/package/components/copilot/autocomplete/request.js +1 -1
  201. package/package/components/copilot/chat/AIChat.svelte +2 -1
  202. package/package/components/copilot/chat/AIChatManager.svelte.js +5 -3
  203. package/package/components/copilot/chat/AiChatLayout.svelte +2 -1
  204. package/package/components/copilot/chat/ProviderModelSelector.svelte +11 -10
  205. package/package/components/copilot/chat/ProviderModelSelector.svelte.d.ts +2 -17
  206. package/package/components/copilot/chat/flow/FlowAIButton.svelte +1 -1
  207. package/package/components/copilot/chat/flow/FlowAIChat.svelte +4 -2
  208. package/package/components/copilot/chat/script/core.d.ts +4 -4
  209. package/package/components/copilot/chat/script/core.js +95 -35
  210. package/package/components/copilot/chat/shared.js +2 -1
  211. package/package/components/copilot/lib.d.ts +1 -0
  212. package/package/components/copilot/lib.js +7 -3
  213. package/package/components/custom_ui.d.ts +1 -0
  214. package/package/components/details/DetailPageLayout.svelte +3 -2
  215. package/package/components/details/DetailPageLayout.svelte.d.ts +1 -0
  216. package/package/components/flows/CreateActionsFlow.svelte +1 -1
  217. package/package/components/flows/FlowChatInterface.svelte +404 -0
  218. package/package/components/flows/FlowChatInterface.svelte.d.ts +19 -0
  219. package/package/components/flows/FlowChatMessage.svelte +41 -0
  220. package/package/components/flows/FlowChatMessage.svelte.d.ts +9 -0
  221. package/package/components/flows/FlowConversationsSidebar.svelte +213 -0
  222. package/package/components/flows/FlowConversationsSidebar.svelte.d.ts +15 -0
  223. package/package/components/flows/FlowEditor.svelte.d.ts +1 -1
  224. package/package/components/flows/FlowModuleIcon.svelte +10 -10
  225. package/package/components/flows/FlowProgressBar.svelte +16 -16
  226. package/package/components/flows/FlowProgressBar.svelte.d.ts +7 -22
  227. package/package/components/flows/common/FlowCard.svelte +10 -2
  228. package/package/components/flows/common/FlowCard.svelte.d.ts +1 -0
  229. package/package/components/flows/common/FlowCardHeader.svelte +2 -1
  230. package/package/components/flows/common/FlowCardHeader.svelte.d.ts +1 -0
  231. package/package/components/flows/content/DynamicInputHelpBox.svelte +4 -4
  232. package/package/components/flows/content/FlowEditorPanel.svelte.d.ts +1 -1
  233. package/package/components/flows/content/FlowInput.svelte +381 -259
  234. package/package/components/flows/content/FlowInput.svelte.d.ts +1 -1
  235. package/package/components/flows/content/FlowInputsQuick.svelte +56 -34
  236. package/package/components/flows/content/FlowInputsQuick.svelte.d.ts +3 -2
  237. package/package/components/flows/content/FlowModuleComponent.svelte +29 -11
  238. package/package/components/flows/flowInfers.d.ts +60 -0
  239. package/package/components/flows/flowInfers.js +72 -40
  240. package/package/components/flows/{flowStore.d.ts → flowStore.svelte.d.ts} +5 -1
  241. package/package/components/flows/header/FlowPreviewButtons.svelte +1 -1
  242. package/package/components/flows/map/FlowErrorHandlerItem.svelte +4 -2
  243. package/package/components/flows/map/FlowErrorHandlerItem.svelte.d.ts +1 -0
  244. package/package/components/flows/map/FlowJobsMenu.svelte +3 -3
  245. package/package/components/flows/map/FlowJobsMenu.svelte.d.ts +1 -1
  246. package/package/components/flows/map/FlowModuleSchemaItem.svelte +1 -1
  247. package/package/components/flows/map/FlowModuleSchemaMap.svelte +5 -2
  248. package/package/components/flows/map/FlowStickyNode.svelte +2 -2
  249. package/package/components/flows/map/FlowStickyNode.svelte.d.ts +1 -0
  250. package/package/components/flows/map/InsertModuleButton.svelte +8 -15
  251. package/package/components/flows/map/InsertModuleButton.svelte.d.ts +4 -4
  252. package/package/components/flows/map/InsertModuleInner.svelte +19 -20
  253. package/package/components/flows/map/InsertModuleInner.svelte.d.ts +2 -2
  254. package/package/components/flows/map/MapItem.svelte +1 -1
  255. package/package/components/flows/map/VirtualItem.svelte +1 -2
  256. package/package/components/flows/pickers/PickHubScriptQuick.svelte +43 -52
  257. package/package/components/flows/pickers/PickHubScriptQuick.svelte.d.ts +2 -1
  258. package/package/components/flows/pickers/WorkspaceScriptPickerQuick.svelte +41 -26
  259. package/package/components/flows/pickers/WorkspaceScriptPickerQuick.svelte.d.ts +1 -0
  260. package/package/components/flows/propPicker/OutputPicker.svelte +2 -0
  261. package/package/components/flows/propPicker/PropPickerWrapper.svelte +1 -15
  262. package/package/components/git_sync/DetectionFlow.svelte +33 -44
  263. package/package/components/git_sync/DetectionFlow.svelte.d.ts +1 -0
  264. package/package/components/git_sync/GitSyncContext.svelte.d.ts +22 -0
  265. package/package/components/git_sync/GitSyncContext.svelte.js +145 -5
  266. package/package/components/git_sync/GitSyncModeDisplay.svelte +14 -0
  267. package/package/components/git_sync/GitSyncModeDisplay.svelte.d.ts +9 -0
  268. package/package/components/git_sync/GitSyncRepositoryCard.svelte +365 -253
  269. package/package/components/git_sync/GitSyncRepositoryCard.svelte.d.ts +10 -1
  270. package/package/components/git_sync/GitSyncSection.svelte +134 -14
  271. package/package/components/git_sync/PullWorkspaceModal.svelte +24 -32
  272. package/package/components/git_sync/PushWorkspaceModal.svelte +24 -32
  273. package/package/components/graph/FlowGraphV2.svelte +2 -1
  274. package/package/components/graph/FlowGraphV2.svelte.d.ts +1 -0
  275. package/package/components/graph/graphBuilder.svelte.d.ts +2 -0
  276. package/package/components/graph/graphBuilder.svelte.js +1 -0
  277. package/package/components/graph/model.d.ts +5 -5
  278. package/package/components/graph/renderers/edges/BaseEdge.svelte +1 -0
  279. package/package/components/graph/renderers/edges/EmptyEdge.svelte +3 -10
  280. package/package/components/graph/renderers/edges/EmptyEdge.svelte.d.ts +4 -18
  281. package/package/components/graph/renderers/nodes/AIToolNode.svelte +2 -2
  282. package/package/components/graph/renderers/nodes/InputNode.svelte +13 -2
  283. package/package/components/graph/renderers/nodes/NewAIToolNode.svelte +5 -10
  284. package/package/components/graph/renderers/triggers/TriggersBadge.svelte +2 -27
  285. package/package/components/home/ItemsList.svelte +1 -1
  286. package/package/components/instanceSettings.js +17 -0
  287. package/package/components/jobs/JobProgressBar.svelte +27 -21
  288. package/package/components/jobs/JobProgressBar.svelte.d.ts +9 -24
  289. package/package/components/meltComponents/MenuSingleItem.svelte +3 -8
  290. package/package/components/meltComponents/MenuSingleItem.svelte.d.ts +0 -3
  291. package/package/components/meltComponents/Popover.svelte +3 -2
  292. package/package/components/meltComponents/Popover.svelte.d.ts +1 -0
  293. package/package/components/meltComponents/Tooltip.svelte +1 -1
  294. package/package/components/progressBar/ProgressBar.svelte +39 -53
  295. package/package/components/progressBar/ProgressBar.svelte.d.ts +11 -26
  296. package/package/components/raw_apps/FileEditorIcon.svelte +1 -1
  297. package/package/components/raw_apps/FileEditorIcon.svelte.d.ts +4 -18
  298. package/package/components/raw_apps/RawAppBackgroundRunner.svelte +2 -8
  299. package/package/components/raw_apps/RawAppBackgroundRunner.svelte.d.ts +4 -18
  300. package/package/components/raw_apps/RawAppEditor.svelte +6 -7
  301. package/package/components/raw_apps/RawAppEditorHeader.svelte +48 -301
  302. package/package/components/raw_apps/RawAppEditorHeader.svelte.d.ts +18 -19
  303. package/package/components/raw_apps/RawAppInlineScriptEditor.svelte +10 -16
  304. package/package/components/raw_apps/RawAppInlineScriptEditor.svelte.d.ts +13 -13
  305. package/package/components/raw_apps/RawAppInlineScriptPanelList.svelte +8 -11
  306. package/package/components/raw_apps/RawAppInlineScriptPanelList.svelte.d.ts +1 -2
  307. package/package/components/raw_apps/RawAppInlineScriptRunnable.svelte +0 -1
  308. package/package/components/raw_apps/RawAppInlineScriptsPanel.svelte +7 -13
  309. package/package/components/raw_apps/RawAppInlineScriptsPanel.svelte.d.ts +8 -8
  310. package/package/components/raw_apps/RawAppPreview.svelte +3 -7
  311. package/package/components/raw_apps/RawAppPreview.svelte.d.ts +5 -19
  312. package/package/components/raw_apps/utils.d.ts +1 -1
  313. package/package/components/raw_apps/utils.js +3 -3
  314. package/package/components/runs/JobsLoader.svelte +1 -1
  315. package/package/components/runs/NoWorkerWithTagWarning.svelte +3 -3
  316. package/package/components/runs/NoWorkerWithTagWarning.svelte.d.ts +1 -1
  317. package/package/components/runs/RunOption.svelte +2 -2
  318. package/package/components/runs/RunsFilter.svelte +15 -12
  319. package/package/components/runs/RunsFilter.svelte.d.ts +1 -1
  320. package/package/components/schema/AddPropertyV2.svelte +7 -4
  321. package/package/components/schema/EditableSchemaDrawer.svelte +19 -18
  322. package/package/components/schema/FlowPropertyEditor.svelte +9 -2
  323. package/package/components/schema/FlowPropertyEditor.svelte.d.ts +1 -1
  324. package/package/components/schema/PropertyEditor.svelte +22 -26
  325. package/package/components/schema/PropertyEditor.svelte.d.ts +1 -1
  326. package/package/components/schema/SchemaFormDND.svelte +3 -2
  327. package/package/components/schema/SchemaFormDND.svelte.d.ts +1 -0
  328. package/package/components/select/DraggableTags.svelte +2 -2
  329. package/package/components/select/MultiSelect.svelte +15 -9
  330. package/package/components/select/MultiSelect.svelte.d.ts +1 -0
  331. package/package/components/select/Select.svelte +12 -5
  332. package/package/components/select/Select.svelte.d.ts +11 -0
  333. package/package/components/select/SelectDropdown.svelte +98 -46
  334. package/package/components/select/SelectDropdown.svelte.d.ts +10 -0
  335. package/package/components/select/utils.svelte.js +2 -0
  336. package/package/components/settings/CreateToken.svelte +76 -49
  337. package/package/components/settings/WorkspaceUserSettings.svelte +111 -17
  338. package/package/components/sidebar/CriticalAlertTable.svelte +2 -1
  339. package/package/components/sidebar/Linkify.svelte +14 -0
  340. package/package/components/sidebar/Linkify.svelte.d.ts +5 -0
  341. package/package/components/sidebar/MenuLink.svelte +2 -1
  342. package/package/components/sidebar/MenuLink.svelte.d.ts +1 -0
  343. package/package/components/sidebar/SidebarContent.svelte +27 -27
  344. package/package/components/sidebar/WorkspaceMenu.svelte +8 -3
  345. package/package/components/table/Cell.svelte +7 -14
  346. package/package/components/table/Cell.svelte.d.ts +13 -35
  347. package/package/components/table/tableUtils.js +1 -1
  348. package/package/components/text_input/TextInput.svelte +30 -0
  349. package/package/components/text_input/TextInput.svelte.d.ts +17 -0
  350. package/package/components/triggers/AddTriggersButton.svelte +1 -0
  351. package/package/components/triggers/TriggersEditor.svelte +11 -1
  352. package/package/components/triggers/gcp/GcpTriggerEditorConfigSection.svelte +1 -1
  353. package/package/components/triggers/gcp/GcpTriggerEditorConfigSection.svelte.d.ts +2 -1
  354. package/package/components/triggers/gcp/GcpTriggerEditorInner.svelte +28 -5
  355. package/package/components/triggers/gcp/utils.js +1 -0
  356. package/package/components/triggers/schedules/ScheduleEditorInner.svelte +1 -0
  357. package/package/components/triggers/triggers.svelte.d.ts +1 -1
  358. package/package/components/triggers/triggers.svelte.js +8 -4
  359. package/package/components/triggers/webhook/WebhooksConfigSection.svelte +143 -63
  360. package/package/components/triggers/websocket/WebsocketTriggerEditorInner.svelte +22 -0
  361. package/package/components/triggers/websocket/utils.js +1 -0
  362. package/package/components/tutorials/FlowBuilderTutorialErrorHandler.svelte +2 -2
  363. package/package/components/tutorials/FlowBuilderTutorialForLoop.svelte +3 -0
  364. package/package/components/tutorials/FlowBuilderTutorialSimpleFlow.svelte +49 -17
  365. package/package/components/tutorials/Tutorial.svelte +9 -0
  366. package/package/components/tutorials/Tutorial.svelte.d.ts +1 -0
  367. package/package/components/tutorials/app/AppTutorial.svelte +41 -57
  368. package/package/components/tutorials/app/BackgroundRunnablesTutorial.svelte +3 -5
  369. package/package/components/tutorials/app/ConnectionTutorial.svelte +2 -2
  370. package/package/components/tutorials/utils.js +2 -154
  371. package/package/components/vscode.js +16 -8
  372. package/package/components/workspaceSettings/AISettings.svelte +12 -5
  373. package/package/components/workspaceSettings/AISettings.svelte.d.ts +2 -1
  374. package/package/components/workspaceSettings/CreateWorkspace.svelte +2 -2
  375. package/package/components/workspaceSettings/DucklakeSettings.svelte +64 -7
  376. package/package/components/workspaceSettings/ModelTokenLimits.svelte +165 -0
  377. package/package/components/workspaceSettings/ModelTokenLimits.svelte.d.ts +8 -0
  378. package/package/components/workspaceSettings/StorageSettings.svelte +147 -77
  379. package/package/editorUtils.d.ts +1 -1
  380. package/package/gen/core/OpenAPI.js +1 -1
  381. package/package/gen/schemas.gen.d.ts +223 -17
  382. package/package/gen/schemas.gen.js +226 -17
  383. package/package/gen/services.gen.d.ts +221 -27
  384. package/package/gen/services.gen.js +440 -48
  385. package/package/gen/types.gen.d.ts +1067 -218
  386. package/package/hubPaths.json +2 -1
  387. package/package/script_helpers.js +5 -5
  388. package/package/services/JobManager.js +14 -9
  389. package/package/stores.d.ts +4 -12
  390. package/package/stores.js +5 -65
  391. package/package/timelineCompute.svelte.d.ts +21 -0
  392. package/package/timelineCompute.svelte.js +113 -0
  393. package/package/toast.js +2 -1
  394. package/package/utils.d.ts +16 -8
  395. package/package/utils.js +65 -12
  396. package/package/workspace_settings.d.ts +13 -8
  397. package/package/workspace_settings.js +46 -11
  398. package/package.json +4 -4
  399. /package/package/components/flows/{flowStore.js → flowStore.svelte.js} +0 -0
@@ -39,8 +39,8 @@ let selectedNewInstanceGroup = $state(undefined);
39
39
  let selectedNewRole = $state('developer');
40
40
  // Available groups for dropdowns - filter out already configured groups
41
41
  let availableGroupItems = $derived(instanceGroups
42
- .filter(group => !autoAddInstanceGroups.includes(group.name))
43
- .map(group => ({
42
+ .filter((group) => !autoAddInstanceGroups.includes(group.name))
43
+ .map((group) => ({
44
44
  value: group.name,
45
45
  label: group.name + (group.summary ? ` - ${group.summary}` : '')
46
46
  })));
@@ -54,6 +54,22 @@ let sortedUsers = $derived(() => {
54
54
  });
55
55
  });
56
56
  let hasNonManualUsers = $derived((filteredUsers || users || []).some((user) => user.added_via?.source === 'instance_group' || user.added_via?.source === 'domain'));
57
+ // Function to check if a manual user can be converted to a group user
58
+ function canConvertToGroup(user) {
59
+ // User must be manually added (not via instance group or domain)
60
+ if (user.added_via?.source === 'instance_group' || user.added_via?.source === 'domain') {
61
+ return false;
62
+ }
63
+ // Check if user's email is in any configured instance group
64
+ const userEmail = user.email;
65
+ for (const groupName of autoAddInstanceGroups) {
66
+ const group = instanceGroups.find((g) => g.name === groupName);
67
+ if (group && group.emails && group.emails.includes(userEmail)) {
68
+ return true;
69
+ }
70
+ }
71
+ return false;
72
+ }
57
73
  async function loadSettings() {
58
74
  const settings = await WorkspaceService.getSettings({ workspace: $workspaceStore });
59
75
  auto_invite_domain = settings.auto_invite_domain;
@@ -131,7 +147,7 @@ async function addInstanceGroup() {
131
147
  }
132
148
  catch (e) {
133
149
  // Rollback on error
134
- autoAddInstanceGroups = autoAddInstanceGroups.filter(g => g !== groupToAdd);
150
+ autoAddInstanceGroups = autoAddInstanceGroups.filter((g) => g !== groupToAdd);
135
151
  delete autoAddInstanceGroupsRoles[groupToAdd];
136
152
  sendUserToast('Failed to add instance group', true);
137
153
  }
@@ -140,7 +156,7 @@ async function removeInstanceGroup(groupName) {
140
156
  const previousGroups = [...autoAddInstanceGroups];
141
157
  const previousRole = autoAddInstanceGroupsRoles[groupName];
142
158
  try {
143
- autoAddInstanceGroups = autoAddInstanceGroups.filter(g => g !== groupName);
159
+ autoAddInstanceGroups = autoAddInstanceGroups.filter((g) => g !== groupName);
144
160
  delete autoAddInstanceGroupsRoles[groupName];
145
161
  await saveInstanceGroupSettings();
146
162
  }
@@ -165,6 +181,20 @@ async function updateGroupRole(groupName, role) {
165
181
  sendUserToast('Failed to update role', true);
166
182
  }
167
183
  }
184
+ async function convertUserToGroup(username) {
185
+ try {
186
+ await UserService.convertUserToGroup({
187
+ workspace: $workspaceStore ?? '',
188
+ username
189
+ });
190
+ sendUserToast('User converted to group user');
191
+ listUsers();
192
+ }
193
+ catch (e) {
194
+ console.error('Failed to convert user:', e);
195
+ sendUserToast('Failed to convert user', true);
196
+ }
197
+ }
168
198
  let domain = $derived($userStore?.email.split('@')[1]);
169
199
  $effect(() => {
170
200
  if ($workspaceStore) {
@@ -188,6 +218,7 @@ onDestroy(() => {
188
218
  });
189
219
  let deleteConfirmedCallback = $state(undefined);
190
220
  let removeInstanceGroupConfirmedCallback = $state(undefined);
221
+ let convertConfirmedCallback = $state(undefined);
191
222
  async function removeAllInvitesFromDomain() {
192
223
  await Promise.all(invites
193
224
  .filter((x) => isCloudHosted() ? x.email.endsWith('@' + (auto_invite_domain ?? '')) : true)
@@ -293,8 +324,8 @@ $effect(() => {
293
324
  }}
294
325
  >
295
326
  {#snippet children({ item })}
296
- <ToggleButton value="invite" size="xs" label="Auto-invite" {item} />
297
- <ToggleButton value="add" size="xs" label="Auto-add" {item} />
327
+ <ToggleButton value="invite" small label="Auto-invite" {item} />
328
+ <ToggleButton value="add" small label="Auto-add" {item} />
298
329
  {/snippet}
299
330
  </ToggleButtonGroup>
300
331
  {/if}
@@ -394,9 +425,7 @@ $effect(() => {
394
425
  {#snippet content()}
395
426
  <div class="flex flex-col p-4 min-w-[500px]">
396
427
  <div class="flex flex-col gap-4">
397
- <span class="text-sm leading-6 font-semibold">
398
- Auto-add instance groups
399
- </span>
428
+ <span class="text-sm leading-6 font-semibold"> Auto-add instance groups </span>
400
429
 
401
430
  <!-- Add new instance group form -->
402
431
  {#if availableGroupItems.length > 0}
@@ -472,7 +501,7 @@ $effect(() => {
472
501
  </thead>
473
502
  <tbody>
474
503
  {#each autoAddInstanceGroups as groupName (groupName)}
475
- {@const group = instanceGroups.find(g => g.name === groupName)}
504
+ {@const group = instanceGroups.find((g) => g.name === groupName)}
476
505
  <tr class="border-t border-gray-200 dark:border-gray-700">
477
506
  <td class="py-2">
478
507
  <div class="font-medium">{groupName}</div>
@@ -572,7 +601,8 @@ $effect(() => {
572
601
  <Cell head>
573
602
  Added via
574
603
  <Tooltip>
575
- Shows how the user was added to the workspace: manually, via domain auto-invite, or through an instance group.
604
+ Shows how the user was added to the workspace: manually, via domain auto-invite, or
605
+ through an instance group.
576
606
  </Tooltip>
577
607
  </Cell>
578
608
  {/if}
@@ -593,14 +623,13 @@ $effect(() => {
593
623
  </Head>
594
624
  <tbody class="divide-y bg-surface">
595
625
  {#if filteredUsers}
596
- {#each sortedUsers().slice(0, nbDisplayed) as { email, username, is_admin, operator, disabled, added_via }, index (email)}
626
+ {#each sortedUsers().slice(0, nbDisplayed) as user, index (user.email)}
627
+ {@const { email, username, is_admin, operator, disabled, added_via } = user}
597
628
  <!-- Add separator between manual users and instance group users -->
598
629
  {#if hasNonManualUsers && index > 0 && sortedUsers()[index - 1]?.added_via?.source !== 'instance_group' && added_via?.source === 'instance_group'}
599
630
  <tr class="bg-surface-secondary">
600
631
  <td colspan={hasNonManualUsers ? 8 : 7} class="px-4 py-2">
601
- <div class="text-xs text-tertiary font-bold">
602
- Instance group users
603
- </div>
632
+ <div class="text-xs text-tertiary font-bold"> Instance group users </div>
604
633
  </td>
605
634
  </tr>
606
635
  {/if}
@@ -731,8 +760,45 @@ $effect(() => {
731
760
  >
732
761
  Remove
733
762
  </Button>
734
- <Tooltip>Cannot remove users synced from instance groups. Either disable the user or remove them from the SCIM group.</Tooltip>
763
+ <Tooltip
764
+ >Cannot remove users synced from instance groups. Either disable the user or
765
+ remove them from the SCIM group.</Tooltip
766
+ >
735
767
  </div>
768
+ {:else if canConvertToGroup(user)}
769
+ <Button
770
+ color="light"
771
+ variant="contained"
772
+ btnClasses="text-blue-500"
773
+ size="xs"
774
+ spacingSize="xs2"
775
+ on:click={() => {
776
+ convertConfirmedCallback = async () => {
777
+ await convertUserToGroup(username)
778
+ }
779
+ }}
780
+ >
781
+ Convert
782
+ </Button>
783
+ <Button
784
+ color="light"
785
+ variant="contained"
786
+ btnClasses="text-red-500"
787
+ size="xs"
788
+ spacingSize="xs2"
789
+ on:click={() => {
790
+ deleteConfirmedCallback = async () => {
791
+ await UserService.deleteUser({
792
+ workspace: $workspaceStore ?? '',
793
+ username
794
+ })
795
+ sendUserToast('User removed')
796
+ listUsers()
797
+ }
798
+ }}
799
+ >
800
+ Remove
801
+ </Button>
736
802
  {:else}
737
803
  <Button
738
804
  color="light"
@@ -918,7 +984,35 @@ $effect(() => {
918
984
  }}
919
985
  >
920
986
  <div class="flex flex-col w-full space-y-4">
921
- <span>Are you sure you want to remove this instance group from auto-add? This will not remove users already added from this group.</span>
987
+ <span
988
+ >Are you sure you want to remove this instance group from auto-add? This will not remove
989
+ users already added from this group.</span
990
+ >
922
991
  </div>
923
992
  </ConfirmationModal>
924
993
  </div>
994
+
995
+ <ConfirmationModal
996
+ open={Boolean(convertConfirmedCallback)}
997
+ title="Convert to Group User"
998
+ confirmationText="Convert"
999
+ on:canceled={() => {
1000
+ convertConfirmedCallback = undefined
1001
+ }}
1002
+ on:confirmed={() => {
1003
+ if (convertConfirmedCallback) {
1004
+ convertConfirmedCallback()
1005
+ }
1006
+ convertConfirmedCallback = undefined
1007
+ }}
1008
+ >
1009
+ <div class="flex flex-col w-full space-y-4">
1010
+ <span>Are you sure you want to convert this user to a group user?</span>
1011
+ <span class="text-sm text-secondary">This will:</span>
1012
+ <ul class="text-sm text-secondary list-disc ml-4 space-y-1">
1013
+ <li>Change the user's role based on their instance group configuration</li>
1014
+ <li>Make their role managed through the instance group settings</li>
1015
+ <li>Prevent manual role changes for this user</li>
1016
+ </ul>
1017
+ </div>
1018
+ </ConfirmationModal>
@@ -7,6 +7,7 @@ import { AlertCircle, CheckCircle2 } from 'lucide-svelte';
7
7
  import { devopsRole } from '../../stores';
8
8
  import List from '../common/layout/List.svelte';
9
9
  import { Skeleton } from '../common';
10
+ import Linkify from './Linkify.svelte';
10
11
  export let alerts;
11
12
  export let hideAcknowledged = false;
12
13
  export let goToNextPage;
@@ -107,7 +108,7 @@ $: availableHeight = (contentHeight - headerHeight - pageSize - 1) / pageSize;
107
108
  </Cell>
108
109
 
109
110
  <Cell wrap>
110
- <div class="flex-shrink min-w-0 break-words">{message}</div>
111
+ <div class="flex-shrink min-w-0 break-words"><Linkify text={message} /></div>
111
112
  </Cell>
112
113
  <!-- Flexible width -->
113
114
  <Cell wrap>{formatDate(created_at)}</Cell>
@@ -0,0 +1,14 @@
1
+ <script lang="ts">"use strict";
2
+ let { text } = $props();
3
+ // Function to convert text with URLs to HTML
4
+ function linkifyText(text) {
5
+ // Regex to match URLs starting with http/https and ending with )
6
+ const urlRegex = /\(((https?:\/\/[^\s)]+))\)/g;
7
+ // Replace matched patterns with anchor tags
8
+ return text.replace(urlRegex, '(<a href="$1" target="_blank" rel="noopener noreferrer">$1</a>)');
9
+ }
10
+ let processedText = $derived(linkifyText(text));
11
+ </script>
12
+
13
+ <!-- Use @html to render the HTML -->
14
+ {@html processedText}
@@ -0,0 +1,5 @@
1
+ declare const Linkify: import("svelte").Component<{
2
+ text: any;
3
+ }, {}, "">;
4
+ type Linkify = ReturnType<typeof Linkify>;
5
+ export default Linkify;
@@ -5,7 +5,7 @@ import { base } from '$app/paths';
5
5
  import { triggerableByAI } from '../../actions/triggerableByAI.svelte';
6
6
  import { goto } from '$app/navigation';
7
7
  import { twMerge } from 'tailwind-merge';
8
- let { aiId = undefined, aiDescription = undefined, label, href, icon = undefined, isCollapsed, disabled = false, lightMode = false, item = undefined, class: classNames = '' } = $props();
8
+ let { aiId = undefined, aiDescription = undefined, label, href, icon = undefined, isCollapsed, disabled = false, lightMode = false, item = undefined, class: classNames = '', onclick = undefined } = $props();
9
9
  let isSelected = $state(false);
10
10
  navigating.subscribe(() => {
11
11
  if (href === `${base}/`) {
@@ -28,6 +28,7 @@ navigating.subscribe(() => {
28
28
  goto(href)
29
29
  }
30
30
  }}
31
+ {onclick}
31
32
  class={twMerge(
32
33
  'group flex items-center px-2 py-2 text-sm font-light rounded-md h-8 gap-3',
33
34
  isSelected
@@ -10,6 +10,7 @@ interface Props {
10
10
  lightMode?: boolean;
11
11
  item?: MenubarMenuElements['item'] | undefined;
12
12
  class?: string;
13
+ onclick?: (ev: MouseEvent) => any;
13
14
  }
14
15
  declare const MenuLink: import("svelte").Component<Props, {}, "">;
15
16
  type MenuLink = ReturnType<typeof MenuLink>;
@@ -113,7 +113,12 @@ let mainMenuLinks = $derived([
113
113
  href: `${base}/runs`,
114
114
  icon: Play,
115
115
  aiId: 'sidebar-menu-link-runs',
116
- aiDescription: 'Button to navigate to runs'
116
+ aiDescription: 'Button to navigate to runs',
117
+ onclick: () => {
118
+ setTimeout(() => {
119
+ window.dispatchEvent(new Event('popstate'));
120
+ }, 100);
121
+ }
117
122
  },
118
123
  {
119
124
  label: 'Variables',
@@ -295,7 +300,7 @@ let secondaryMenuLinks = $derived([
295
300
  }
296
301
  ]
297
302
  : []),
298
- ...($workspaceStore?.startsWith("wm-fork")
303
+ ...($workspaceStore?.startsWith('wm-fork')
299
304
  ? [
300
305
  {
301
306
  label: 'Delete Forked Workspace',
@@ -306,7 +311,7 @@ let secondaryMenuLinks = $derived([
306
311
  faIcon: undefined
307
312
  }
308
313
  ]
309
- : []),
314
+ : [])
310
315
  ],
311
316
  disabled: $userStore?.operator
312
317
  },
@@ -508,14 +513,9 @@ let secondaryMenuLinks = $derived([
508
513
  {/snippet}
509
514
  </Menu>
510
515
  {:else}
511
- <MenuSingleItem {createMenu}>
512
- {#snippet triggr({ trigger })}
513
- <div class="w-full">
514
- <MenuButton class="!text-2xs" {...menuLink} {isCollapsed} {trigger} />
515
- </div>
516
- {/snippet}
517
- {#snippet children({ item })}
518
- <MenuLink class="!text-2xs" {...menuLink} {isCollapsed} {item} />
516
+ <MenuSingleItem>
517
+ {#snippet children({})}
518
+ <MenuLink class="!text-2xs" {...menuLink} {isCollapsed} />
519
519
  {/snippet}
520
520
  </MenuSingleItem>
521
521
  {/if}
@@ -601,20 +601,20 @@ let secondaryMenuLinks = $derived([
601
601
  </div>
602
602
  </ConfirmationModal>
603
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>
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
620
  {/if}
@@ -120,12 +120,17 @@ const groupedWorkspaces = $derived(() => {
120
120
  <MenuItem
121
121
  class={twMerge(
122
122
  'text-xs min-w-0 w-full overflow-hidden flex flex-col py-1.5',
123
+ workspace.disabled && 'opacity-50 cursor-not-allowed',
123
124
  $workspaceStore === workspace.id
124
125
  ? 'cursor-default bg-surface-selected'
125
- : 'cursor-pointer hover:bg-surface-hover data-[highlighted]:bg-surface-hover'
126
+ : workspace.disabled
127
+ ? ''
128
+ : 'cursor-pointer hover:bg-surface-hover data-[highlighted]:bg-surface-hover'
126
129
  )}
127
130
  onClick={async () => {
128
- await toggleSwitchWorkspace(workspace.id)
131
+ if (!workspace.disabled) {
132
+ await toggleSwitchWorkspace(workspace.id)
133
+ }
129
134
  }}
130
135
  {item}
131
136
  >
@@ -146,7 +151,7 @@ const groupedWorkspaces = $derived(() => {
146
151
  isForked ? 'text-secondary' : 'text-primary'
147
152
  )}
148
153
  >
149
- {workspace.name}
154
+ {workspace.name}{workspace.disabled ? ' (user disabled)' : ''}
150
155
  </div>
151
156
  <div
152
157
  class={twMerge(
@@ -1,22 +1,15 @@
1
1
  <script lang="ts">import { getContext } from 'svelte';
2
2
  import { twMerge } from 'tailwind-merge';
3
- export let first = false;
4
- export let last = false;
5
- export let numeric = false;
6
- export let head = false;
7
- export let shouldStopPropagation = false;
8
- export let selected = false;
9
- export let sticky = false;
10
- export let wrap = false;
3
+ let { first = false, last = false, numeric = false, head = false, shouldStopPropagation = false, selected = false, sticky = false, wrap = false, children, ...rest } = $props();
11
4
  let Tag = head ? 'th' : 'td';
12
5
  const { size } = getContext('datatable');
13
6
  </script>
14
7
 
15
- <!-- svelte-ignore a11y-no-static-element-interactions -->
8
+ <!-- svelte-ignore a11y_no_static_element_interactions -->
16
9
  <svelte:element
17
10
  this={Tag}
18
- {...$$restProps}
19
- on:click={(e) => {
11
+ {...rest}
12
+ onclick={(e) => {
20
13
  if (shouldStopPropagation) e.stopPropagation()
21
14
  }}
22
15
  class={twMerge(
@@ -36,14 +29,14 @@ const { size } = getContext('datatable');
36
29
  size === 'xs' ? 'px-1 py-1.5' : '',
37
30
  selected ? 'bg-blue-50 dark:bg-blue-900/50' : '',
38
31
  'transition-all',
39
- $$restProps.class
32
+ rest.class
40
33
  )}
41
34
  >
42
35
  {#if sticky}
43
36
  <div class={twMerge(first ? 'border-r' : ' border-l ')}>
44
- <slot />
37
+ {@render children?.()}
45
38
  </div>
46
39
  {:else}
47
- <slot />
40
+ {@render children?.()}
48
41
  {/if}
49
42
  </svelte:element>
@@ -1,37 +1,15 @@
1
- interface $$__sveltets_2_IsomorphicComponent<Props extends Record<string, any> = any, Events extends Record<string, any> = any, Slots extends Record<string, any> = any, Exports = {}, Bindings = string> {
2
- new (options: import('svelte').ComponentConstructorOptions<Props>): import('svelte').SvelteComponent<Props, Events, Slots> & {
3
- $$bindings?: Bindings;
4
- } & Exports;
5
- (internal: unknown, props: Props & {
6
- $$events?: Events;
7
- $$slots?: Slots;
8
- }): Exports & {
9
- $set?: any;
10
- $on?: any;
11
- };
12
- z_$$bindings?: Bindings;
1
+ interface Props {
2
+ first?: boolean;
3
+ last?: boolean;
4
+ numeric?: boolean;
5
+ head?: boolean;
6
+ shouldStopPropagation?: boolean;
7
+ selected?: boolean;
8
+ sticky?: boolean;
9
+ wrap?: boolean;
10
+ children?: import('svelte').Snippet;
11
+ [key: string]: any;
13
12
  }
14
- type $$__sveltets_2_PropsWithChildren<Props, Slots> = Props & (Slots extends {
15
- default: any;
16
- } ? Props extends Record<string, never> ? any : {
17
- children?: any;
18
- } : {});
19
- declare const Cell: $$__sveltets_2_IsomorphicComponent<$$__sveltets_2_PropsWithChildren<{
20
- [x: string]: any;
21
- first?: boolean | undefined;
22
- last?: boolean | undefined;
23
- numeric?: boolean | undefined;
24
- head?: boolean | undefined;
25
- shouldStopPropagation?: boolean | undefined;
26
- selected?: boolean | undefined;
27
- sticky?: boolean | undefined;
28
- wrap?: boolean | undefined;
29
- }, {
30
- default: {};
31
- }>, {
32
- [evt: string]: CustomEvent<any>;
33
- }, {
34
- default: {};
35
- }, {}, string>;
36
- type Cell = InstanceType<typeof Cell>;
13
+ declare const Cell: import("svelte").Component<Props, {}, "">;
14
+ type Cell = ReturnType<typeof Cell>;
37
15
  export default Cell;
@@ -38,6 +38,6 @@ export function convertJsonToCsv(arr) {
38
38
  return csv;
39
39
  }
40
40
  catch (err) {
41
- throw new Error('An error occured when generating CSV:' + err);
41
+ throw new Error('An error occurred when generating CSV:' + err);
42
42
  }
43
43
  }
@@ -0,0 +1,30 @@
1
+ <script module lang="ts">export function inputBorderClass({ error, forceFocus } = {}) {
2
+ return twMerge('transition-colors border', forceFocus
3
+ ? '!border-nord-900 dark:!border-nord-900'
4
+ : '!border-nord-400 dark:!border-nord-300 hover:!border-nord-900/50 hover:dark:!border-nord-900/50 focus:!border-nord-900 dark:focus:!border-nord-900', error
5
+ ? '!border-red-300 focus:!border-red-400 hover:!border-red-500 dark:!border-red-400/40 dark:hover:!border-red-600/40'
6
+ : '');
7
+ }
8
+ export const inputBaseClass = 'rounded-md focus:ring-0 no-default-style text-sm text-tertiary dark:text-secondary !bg-surface-secondary disabled:!bg-surface-disabled disabled:!border-none disabled:!text-hint disabled:cursor-not-allowed shadow-none py-2 px-3 placeholder-hint';
9
+ </script>
10
+
11
+ <script lang="ts">import { twMerge } from 'tailwind-merge';
12
+ export function focus() {
13
+ inputEl?.focus();
14
+ }
15
+ let inputEl = $state();
16
+ let { inputProps, value = $bindable(), class: className = '', error } = $props();
17
+ </script>
18
+
19
+ <input
20
+ {...inputProps}
21
+ class={twMerge(
22
+ inputBaseClass,
23
+ 'w-full',
24
+ '[appearance:textfield] [&::-webkit-outer-spin-button]:appearance-none [&::-webkit-inner-spin-button]:appearance-none',
25
+ inputBorderClass({ error: !!error }),
26
+ className
27
+ )}
28
+ bind:this={inputEl}
29
+ bind:value
30
+ />
@@ -0,0 +1,17 @@
1
+ export declare function inputBorderClass({ error, forceFocus }?: {
2
+ error?: boolean;
3
+ forceFocus?: boolean;
4
+ }): string;
5
+ export declare const inputBaseClass = "rounded-md focus:ring-0 no-default-style text-sm text-tertiary dark:text-secondary !bg-surface-secondary disabled:!bg-surface-disabled disabled:!border-none disabled:!text-hint disabled:cursor-not-allowed shadow-none py-2 px-3 placeholder-hint";
6
+ import type { HTMLInputAttributes } from 'svelte/elements';
7
+ type Props = {
8
+ inputProps?: HTMLInputAttributes;
9
+ value?: string;
10
+ class?: string;
11
+ error?: string;
12
+ };
13
+ declare const TextInput: import("svelte").Component<Props, {
14
+ focus: () => void;
15
+ }, "value">;
16
+ type TextInput = ReturnType<typeof TextInput>;
17
+ export default TextInput;
@@ -88,6 +88,7 @@ export function close() {
88
88
  {/snippet}
89
89
 
90
90
  <DropdownV2
91
+ enableFlyTransition
91
92
  bind:this={dropdown}
92
93
  items={addTriggerItems}
93
94
  {placement}
@@ -15,6 +15,7 @@ import { triggerTypeToCaptureKind, CLOUD_DISABLED_TRIGGER_TYPES } from './utils'
15
15
  import { isCloudHosted } from '../../cloud';
16
16
  import { ScheduleService, WebsocketTriggerService, PostgresTriggerService, KafkaTriggerService, NatsTriggerService, MqttTriggerService, HttpTriggerService, GcpTriggerService, SqsTriggerService, EmailTriggerService } from '../../gen';
17
17
  import { sendUserToast } from '../../toast';
18
+ import Alert from '../common/alert/Alert.svelte';
18
19
  let { noEditor, newItem = false, currentPath, fakeInitialPath = '', hash = undefined, args = {}, initialPath, isFlow, canHavePreprocessor = false, hasPreprocessor = false, isDeployed = false, schema = undefined, noCapture = false, isEditor = true, onDeployTrigger } = $props();
19
20
  let config = $state({});
20
21
  let width = $state(0);
@@ -24,6 +25,8 @@ let renderCount = $state(0);
24
25
  let loading = $state(false);
25
26
  const useVerticalTriggerBar = $derived(width < 1000);
26
27
  const { triggersState, triggersCount } = getContext('TriggerContext');
28
+ const flowEditorContext = getContext('FlowEditorContext');
29
+ const chatInputEnabled = $derived(Boolean(flowEditorContext?.flowStore?.val?.value?.chat_input_enabled));
27
30
  const dispatch = createEventDispatcher();
28
31
  onDestroy(() => {
29
32
  dispatch('exitTriggers');
@@ -143,6 +146,13 @@ const cloudDisabled = $derived(CLOUD_DISABLED_TRIGGER_TYPES.includes(triggersSta
143
146
  </script>
144
147
 
145
148
  <div bind:clientWidth={width} class="h-full w-full">
149
+ {#if chatInputEnabled}
150
+ <div class="p-2 pb-0">
151
+ <Alert type="warning" title="Chat Input Mode Enabled" size="xs">
152
+ This flow will only accept <span class="font-mono text-xs bg-surface-secondary px-1 rounded">user_message</span> as input parameter.
153
+ </Alert>
154
+ </div>
155
+ {/if}
146
156
  <FlowCard {noEditor} noHeader>
147
157
  <Splitpanes horizontal>
148
158
  <Pane>
@@ -241,7 +251,7 @@ const cloudDisabled = $derived(CLOUD_DISABLED_TRIGGER_TYPES.includes(triggersSta
241
251
  {/key}
242
252
  {:else}
243
253
  <span class="text-sm text-tertiary text-center mx-auto mt-2"
244
- >{`Select a trigger from the ${useVerticalTriggerBar ? 'left toolbar' : 'table'} or a create a new one`}</span
254
+ >{`Select a trigger from the ${useVerticalTriggerBar ? 'left toolbar' : 'table'} or create a new one`}</span
245
255
  >
246
256
  {/if}
247
257
  </div>
@@ -57,7 +57,7 @@ async function loadAllSubscriptionFromGooglePubSubTopic() {
57
57
  loadingSubscription = false;
58
58
  }
59
59
  }
60
- let { can_write = false, headless = false, isValid = $bindable(false), gcp_resource_path = $bindable(''), subscription_id = $bindable(''), topic_id = $bindable(''), delivery_type = $bindable('pull'), delivery_config = $bindable(), subscription_mode = $bindable('create_update'), base_endpoint = $bindable(getBaseUrl()), auto_acknowledge_msg = $bindable(true), path = '', showTestingBadge = false, cloud_subscription_id = $bindable(''), create_update_subscription_id = $bindable('') } = $props();
60
+ let { can_write = false, headless = false, isValid = $bindable(false), gcp_resource_path = $bindable(''), subscription_id = $bindable(''), topic_id = $bindable(''), delivery_type = $bindable('pull'), delivery_config = $bindable(), subscription_mode = $bindable('create_update'), base_endpoint = $bindable(getBaseUrl()), auto_acknowledge_msg = $bindable(true), ack_deadline = $bindable(), path = '', showTestingBadge = false, cloud_subscription_id = $bindable(''), create_update_subscription_id = $bindable('') } = $props();
61
61
  if (gcp_resource_path) {
62
62
  loadAllPubSubTopicsFromProject();
63
63
  }
@@ -15,7 +15,8 @@ interface Props {
15
15
  cloud_subscription_id?: string;
16
16
  create_update_subscription_id?: string;
17
17
  auto_acknowledge_msg: boolean;
18
+ ack_deadline?: number;
18
19
  }
19
- declare const GcpTriggerEditorConfigSection: import("svelte").Component<Props, {}, "base_endpoint" | "gcp_resource_path" | "topic_id" | "subscription_id" | "delivery_type" | "subscription_mode" | "delivery_config" | "auto_acknowledge_msg" | "isValid" | "cloud_subscription_id" | "create_update_subscription_id">;
20
+ declare const GcpTriggerEditorConfigSection: import("svelte").Component<Props, {}, "base_endpoint" | "gcp_resource_path" | "topic_id" | "subscription_id" | "delivery_type" | "subscription_mode" | "delivery_config" | "auto_acknowledge_msg" | "ack_deadline" | "isValid" | "cloud_subscription_id" | "create_update_subscription_id">;
20
21
  type GcpTriggerEditorConfigSection = ReturnType<typeof GcpTriggerEditorConfigSection>;
21
22
  export default GcpTriggerEditorConfigSection;