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
@@ -8,6 +8,7 @@
8
8
  </script>
9
9
 
10
10
  <script lang="ts">import { createEventDispatcher, getContext, untrack } from 'svelte';
11
+ import { computeShow } from '../utils';
11
12
  import ArgInput from './ArgInput.svelte';
12
13
  import FieldHeader from './FieldHeader.svelte';
13
14
  import DynamicInputHelpBox from './flows/content/DynamicInputHelpBox.svelte';
@@ -17,7 +18,6 @@ import { Button } from './common';
17
18
  import ToggleButtonGroup from './common/toggleButton-v2/ToggleButtonGroup.svelte';
18
19
  import ToggleButton from './common/toggleButton-v2/ToggleButton.svelte';
19
20
  import { tick } from 'svelte';
20
- import { fade } from 'svelte/transition';
21
21
  import { buildPrefixRegex } from './flows/previousResults';
22
22
  import TemplateEditor from './TemplateEditor.svelte';
23
23
  import { setInputCat as computeInputCat, isCodeInjection } from '../utils';
@@ -27,11 +27,14 @@ import StepInputGen from './copilot/StepInputGen.svelte';
27
27
  import { twMerge } from 'tailwind-merge';
28
28
  import FlowPlugConnect from './FlowPlugConnect.svelte';
29
29
  import { deepEqual } from 'fast-equals';
30
- let { schema = $bindable(), arg = $bindable(), argName = $bindable(), headerTooltip = undefined, headerTooltipIconClass = '', HeaderTooltipIcon = InfoIcon, extraLib = $bindable('missing extraLib'), inputCheck = $bindable(true), previousModuleId, pickForField = $bindable(undefined), variableEditor = undefined, itemPicker = undefined, noDynamicToggle = false, argExtra = {}, pickableProperties = undefined, enableAi = false, hideHelpButton = false, class: className = '', editor = $bindable(undefined) } = $props();
30
+ import S3ArrayHelperButton from './S3ArrayHelperButton.svelte';
31
+ import { inputBorderClass } from './text_input/TextInput.svelte';
32
+ let { schema = $bindable(), arg = $bindable(), argName = $bindable(), headerTooltip = undefined, headerTooltipIconClass = '', HeaderTooltipIcon = InfoIcon, extraLib = $bindable('missing extraLib'), inputCheck = $bindable(true), previousModuleId, pickForField = $bindable(undefined), variableEditor = undefined, itemPicker = undefined, noDynamicToggle = false, argExtra = {}, pickableProperties = undefined, enableAi = false, hideHelpButton = false, class: className = '', editor = $bindable(undefined), otherArgs = {}, helperScript = undefined } = $props();
31
33
  let monaco = $state(undefined);
32
34
  let monacoTemplate = $state(undefined);
33
35
  let argInput = $state(undefined);
34
36
  let focusedPrev = false;
37
+ let hidden = $state(false);
35
38
  const variableMatch = (value) => value.match(/^variable\('([^']+)'\)$/);
36
39
  const resourceMatch = (value) => value.match(/^resource\('([^']+)'\)$/);
37
40
  const dispatch = createEventDispatcher();
@@ -144,6 +147,46 @@ function handleKeyUp(e) {
144
147
  function isStaticTemplate(inputCat) {
145
148
  return inputCat === 'string' || inputCat === 'sql' || inputCat == 'yaml';
146
149
  }
150
+ function appendPathToArrayExpr(currentExpr, path) {
151
+ const trimmedExpr = currentExpr?.trim() || '';
152
+ let newExpr = trimmedExpr;
153
+ if (trimmedExpr.startsWith('[') && trimmedExpr.endsWith(']')) {
154
+ // Parse existing array and append new item
155
+ const innerContent = trimmedExpr.slice(1, -1).trim();
156
+ if (innerContent) {
157
+ newExpr = `[${innerContent}, ${path}]`;
158
+ }
159
+ else {
160
+ newExpr = `[${path}]`;
161
+ }
162
+ }
163
+ else {
164
+ // Create new array with single item
165
+ newExpr = `[${path}]`;
166
+ }
167
+ arg.expr = newExpr;
168
+ arg.type = 'javascript';
169
+ // Update Monaco editor after setting the expression
170
+ tick().then(() => {
171
+ monaco?.setCode(newExpr);
172
+ });
173
+ // Dispatch change
174
+ dispatch('change', { argName, arg });
175
+ }
176
+ async function switchToJsAndConnect(onPath) {
177
+ // Switch to JavaScript mode
178
+ propertyType = 'javascript';
179
+ arg.type = 'javascript';
180
+ arg.expr = arg.expr || '[]';
181
+ arg.value = undefined;
182
+ // Wait for the component to re-render and Monaco to be available
183
+ await tick();
184
+ // Activate connect mode
185
+ focusProp?.(argName, 'connect', (path) => {
186
+ onPath(path);
187
+ return true;
188
+ });
189
+ }
147
190
  function connectProperty(rawValue) {
148
191
  // Extract path from variable('x') or resource('x') format
149
192
  const varMatch = variableMatch(rawValue);
@@ -167,6 +210,41 @@ function connectProperty(rawValue) {
167
210
  monaco?.setCode(arg.expr);
168
211
  }
169
212
  }
213
+ function handleFieldVisibility(schema, arg, otherArgs) {
214
+ const schemaProperty = schema?.properties?.[argName];
215
+ if (schemaProperty?.showExpr) {
216
+ // Build args object with current field value and other context
217
+ const currentValue = propertyType === 'static' ? arg?.value : arg?.expr;
218
+ // Convert otherArgs from InputTransform objects to their actual values
219
+ const contextArgs = {
220
+ [argName]: currentValue
221
+ };
222
+ // Extract values from InputTransform objects in otherArgs
223
+ Object.keys(otherArgs ?? {}).forEach((key) => {
224
+ const otherArg = otherArgs[key];
225
+ const otherArgValue = otherArg.type === 'static' ? otherArg.value : otherArg.expr;
226
+ contextArgs[key] = otherArgValue;
227
+ });
228
+ const shouldShow = computeShow(argName, schemaProperty.showExpr, contextArgs);
229
+ if (shouldShow) {
230
+ hidden = false;
231
+ }
232
+ else if (!hidden) {
233
+ hidden = true;
234
+ // Clear the arg value when hidden (following SchemaForm pattern)
235
+ if (arg) {
236
+ arg.value = undefined;
237
+ arg.expr = undefined;
238
+ }
239
+ // Make sure validation passes when hidden
240
+ inputCheck = true;
241
+ }
242
+ }
243
+ else {
244
+ // No showExpr, always show
245
+ hidden = false;
246
+ }
247
+ }
170
248
  function onFocus() {
171
249
  focused = true;
172
250
  if (isStaticTemplate(inputCat)) {
@@ -257,21 +335,22 @@ $effect(() => {
257
335
  $effect(() => {
258
336
  schema?.properties?.[argName]?.default && untrack(() => setDefaultCode());
259
337
  });
338
+ $effect.pre(() => {
339
+ // Monitor changes that affect field visibility
340
+ JSON.stringify(schema);
341
+ JSON.stringify(arg);
342
+ JSON.stringify(otherArgs);
343
+ untrack(() => handleFieldVisibility(schema, arg, otherArgs));
344
+ });
260
345
  let connecting = $derived($propPickerConfig?.propName == argName && $propPickerConfig?.insertionMode == 'connect');
346
+ let shouldShowS3ArrayHelper = $derived(inputCat === 'list' &&
347
+ ['s3object', 's3_object'].includes(schema?.properties?.[argName]?.items?.resourceType));
261
348
  </script>
262
349
 
263
350
  {#if arg != undefined}
264
- <div
265
- class={twMerge(
266
- 'pl-2 pt-2 pb-2 ml-2 relative hover:bg-surface hover:shadow-md transition-all duration-200',
267
- $propPickerConfig?.propName == argName
268
- ? 'bg-surface border-l-4 border-blue-500 shadow-md rounded-l-md z-50 '
269
- : 'hover:rounded-md',
270
- className
271
- )}
272
- >
273
- <div class="flex flex-row justify-between gap-1 pb-1 px-2">
274
- <div class="flex flex-wrap grow">
351
+ <div class={twMerge('pt-2 pb-2 relative group', className)}>
352
+ <div class="flex flex-row justify-between gap-1 pb-1">
353
+ <div class="flex flex-wrap grow min-h-7 items-end">
275
354
  <FieldHeader
276
355
  label={argName}
277
356
  simpleTooltip={headerTooltip}
@@ -286,7 +365,7 @@ let connecting = $derived($propPickerConfig?.propName == argName && $propPickerC
286
365
  {#if isStaticTemplate(inputCat)}
287
366
  <div>
288
367
  <span
289
- class="bg-blue-100 text-blue-800 text-sm font-medium mr-2 px-2.5 !py-0.5 rounded ml-2 {propertyType ==
368
+ class="border text-gray-400 dark:text-gray-500 text-2xs font-medium mr-2 px-1 !py-[1px] rounded ml-2.5 {propertyType ==
290
369
  'static' && arg.type === 'javascript'
291
370
  ? 'visible'
292
371
  : 'invisible'}"
@@ -297,7 +376,9 @@ let connecting = $derived($propPickerConfig?.propName == argName && $propPickerC
297
376
  {/if}
298
377
  </div>
299
378
  {#if !noDynamicToggle}
300
- <div class="flex flex-row gap-x-2 gap-y-1 flex-wrap z-10 items-center">
379
+ <div
380
+ class="flex flex-row gap-x-2 z-10 absolute right-0 group-hover:bg-surface transition-colors"
381
+ >
301
382
  {#if enableAi}
302
383
  <StepInputGen
303
384
  bind:this={stepInputGen}
@@ -326,14 +407,47 @@ let connecting = $derived($propPickerConfig?.propName == argName && $propPickerC
326
407
  }}
327
408
  {pickableProperties}
328
409
  {argName}
410
+ btnClass={twMerge(
411
+ 'h-6 min-w-8 px-2',
412
+ 'group-hover:opacity-100 transition-opacity',
413
+ !connecting ? 'opacity-0' : ''
414
+ )}
415
+ />
416
+ {/if}
417
+
418
+ {#if propPickerWrapperContext}
419
+ <FlowPlugConnect
420
+ wrapperClasses={twMerge(
421
+ connecting ? 'h-5 w-7' : 'h-6 w-8',
422
+ 'group-hover:opacity-100 transition-opacity p-0',
423
+ !connecting ? 'opacity-0' : ''
424
+ )}
425
+ id="flow-editor-plug"
426
+ {connecting}
427
+ on:click={() => {
428
+ if (
429
+ $propPickerConfig?.propName == argName &&
430
+ $propPickerConfig?.insertionMode == 'connect'
431
+ ) {
432
+ clearFocus()
433
+ } else {
434
+ focusProp?.(argName, 'connect', (path) => {
435
+ connectProperty(path)
436
+ dispatch('change', { argName })
437
+ return true
438
+ })
439
+ }
440
+ }}
329
441
  />
330
442
  {/if}
443
+
331
444
  <div>
332
445
  <ToggleButtonGroup
333
446
  selected={propertyType}
334
447
  on:selected={(e) => {
335
448
  if (e.detail == propertyType) return
336
449
  const staticTemplate = isStaticTemplate(inputCat)
450
+
337
451
  if (e.detail === 'javascript') {
338
452
  if (arg.expr == undefined) {
339
453
  arg.expr = getDefaultExpr(
@@ -382,19 +496,20 @@ let connecting = $derived($propPickerConfig?.propName == argName && $propPickerC
382
496
  propertyType = 'static'
383
497
  }
384
498
  }}
499
+ class="h-6"
385
500
  >
386
501
  {#snippet children({ item })}
387
502
  {#if isStaticTemplate(inputCat)}
388
503
  <ToggleButton
389
- tooltip={`Write text or surround javascript with \`\$\{\` and \`\}\`. Use \`results\` to connect to another node\'s output.`}
390
504
  light
505
+ small
506
+ tooltip={`Write text or surround javascript with \`\$\{\` and \`\}\`. Use \`results\` to connect to another node\'s output.`}
391
507
  value="static"
392
- size="xs2"
393
508
  label={'${}'}
394
509
  {item}
395
510
  />
396
511
  {:else}
397
- <ToggleButton small label="Static" value="static" {item} />
512
+ <ToggleButton light small label="static" value="static" {item} />
398
513
  {/if}
399
514
 
400
515
  {#if codeInjectionDetected && propertyType == 'static'}
@@ -411,6 +526,7 @@ let connecting = $derived($propPickerConfig?.propName == argName && $propPickerC
411
526
  </Button>
412
527
  {:else}
413
528
  <ToggleButton
529
+ disabled={inputCat === 'dynamic'}
414
530
  small
415
531
  light
416
532
  tooltip="JavaScript expression ('flow_input' or 'results')."
@@ -422,27 +538,6 @@ let connecting = $derived($propPickerConfig?.propName == argName && $propPickerC
422
538
  {/snippet}
423
539
  </ToggleButtonGroup>
424
540
  </div>
425
-
426
- {#if propPickerWrapperContext}
427
- <FlowPlugConnect
428
- id="flow-editor-plug"
429
- {connecting}
430
- on:click={() => {
431
- if (
432
- $propPickerConfig?.propName == argName &&
433
- $propPickerConfig?.insertionMode == 'connect'
434
- ) {
435
- clearFocus()
436
- } else {
437
- focusProp?.(argName, 'connect', (path) => {
438
- connectProperty(path)
439
- dispatch('change', { argName })
440
- return true
441
- })
442
- }
443
- }}
444
- />
445
- {/if}
446
541
  </div>
447
542
  {/if}
448
543
  </div>
@@ -462,12 +557,7 @@ let connecting = $derived($propPickerConfig?.propName == argName && $propPickerC
462
557
  <div class="relative flex flex-row items-top gap-2 justify-between">
463
558
  <div class="min-w-0 grow">
464
559
  {#if isStaticTemplate(inputCat) && propertyType == 'static' && !noDynamicToggle}
465
- {#if argName && schema?.properties?.[argName]?.description}
466
- <div class="text-xs italic pb-1 text-secondary">
467
- <pre class="font-main">{schema.properties[argName].description}</pre>
468
- </div>
469
- {/if}
470
- <div class="mt-2 min-h-[28px]">
560
+ <div>
471
561
  {#if arg}
472
562
  <TemplateEditor
473
563
  bind:this={monacoTemplate}
@@ -482,8 +572,16 @@ let connecting = $derived($propPickerConfig?.propName == argName && $propPickerC
482
572
  dispatch('change', { argName, arg })
483
573
  }}
484
574
  loadAsync
575
+ class="bg-surface-secondary"
485
576
  />
486
577
  {/if}
578
+ {#if argName && schema?.properties?.[argName]?.description}
579
+ <div class="text-xs italic py-1 text-hint">
580
+ <pre class="font-main whitespace-normal"
581
+ >{schema.properties[argName].description}</pre
582
+ >
583
+ </div>
584
+ {/if}
487
585
  </div>
488
586
  {:else if (propertyType === undefined || propertyType == 'static') && schema?.properties?.[argName]}
489
587
  <ArgInput
@@ -524,15 +622,38 @@ let connecting = $derived($propPickerConfig?.propName == argName && $propPickerC
524
622
  nullable={schema.properties[argName].nullable}
525
623
  bind:title={schema.properties[argName].title}
526
624
  bind:placeholder={schema.properties[argName].placeholder}
527
- />
625
+ {helperScript}
626
+ otherArgs={Object.fromEntries(
627
+ Object.entries(otherArgs).map(([key, transform]) => [
628
+ key,
629
+ transform?.type === 'static' ? transform.value : transform?.expr
630
+ ])
631
+ )}
632
+ >
633
+ {#snippet innerBottomSnippet()}
634
+ {#if shouldShowS3ArrayHelper}
635
+ <S3ArrayHelperButton
636
+ {connecting}
637
+ onClick={() =>
638
+ switchToJsAndConnect((path) => appendPathToArrayExpr(arg.expr, path))}
639
+ />
640
+ {/if}
641
+ {/snippet}
642
+ </ArgInput>
528
643
  {:else if arg.expr != undefined}
529
- <div class="border mt-2">
644
+ <div
645
+ class={`bg-surface-secondary rounded-md flex flex-col pl-4 ${inputBorderClass({ forceFocus: focused })}`}
646
+ >
530
647
  <SimpleEditor
531
648
  bind:this={monaco}
532
649
  bind:code={arg.expr}
650
+ yPadding={8}
533
651
  {extraLib}
534
652
  lang="javascript"
535
653
  shouldBindKey={false}
654
+ renderLineHighlight="none"
655
+ hideLineNumbers
656
+ fakeMonacoPlaceholderClass="mt-2"
536
657
  on:focus={() => {
537
658
  focused = true
538
659
  focusProp?.(argName, 'insert', (path) => {
@@ -551,12 +672,36 @@ let connecting = $derived($propPickerConfig?.propName == argName && $propPickerC
551
672
  />
552
673
  <!-- <input type="text" bind:value={arg.expr} /> -->
553
674
  </div>
675
+
676
+ {#if shouldShowS3ArrayHelper}
677
+ <S3ArrayHelperButton
678
+ class="mt-2"
679
+ {connecting}
680
+ onClick={() =>
681
+ focusProp?.(argName, 'connect', (path) => {
682
+ appendPathToArrayExpr(arg.expr, path)
683
+ return true
684
+ })}
685
+ />
686
+ {/if}
687
+
688
+ {#if argName && schema?.properties?.[argName]?.description}
689
+ <div class="text-xs italic py-1 text-hint">
690
+ <pre class="font-main whitespace-normal"
691
+ >{schema.properties[argName].description}</pre
692
+ >
693
+ </div>
694
+ {/if}
695
+
554
696
  {#if !hideHelpButton}
555
697
  <DynamicInputHelpBox />
556
698
  {/if}
699
+
557
700
  <div class="mb-2"></div>
558
701
  {:else}
559
- Not recognized input type {argName} ({arg.expr}, {propertyType})
702
+ <span class="text-xs text-red-500">
703
+ Not recognized input type {argName} ({arg.expr}, {propertyType})
704
+ </span>
560
705
  <div class="flex mt-2">
561
706
  <Button
562
707
  variant="border"
@@ -568,29 +713,6 @@ let connecting = $derived($propPickerConfig?.propName == argName && $propPickerC
568
713
  >
569
714
  {/if}
570
715
  </div>
571
-
572
- {#if $propPickerConfig?.propName == argName}
573
- <div
574
- class="text-blue-500 absolute top-2 lg:-right-2.5 -right-1"
575
- in:fade={{ duration: 200 }}
576
- >
577
- <svg
578
- xmlns="http://www.w3.org/2000/svg"
579
- width="16"
580
- height="24"
581
- viewBox="0 0 24 24"
582
- fill="currentColor"
583
- stroke="currentColor"
584
- stroke-width="2"
585
- stroke-linecap="round"
586
- stroke-linejoin="round"
587
- >
588
- <polyline points="24 24 12 12 24 0" />
589
- </svg>
590
- </div>
591
- {:else}
592
- <div class="w-0"></div>
593
- {/if}
594
716
  </div>
595
717
  </div>
596
718
  </div>
@@ -1,4 +1,5 @@
1
1
  import type { Schema } from '../common';
2
+ import type { DynamicInput as DynamicInputTypes } from '../utils';
2
3
  import SimpleEditor from './SimpleEditor.svelte';
3
4
  import type VariableEditor from './VariableEditor.svelte';
4
5
  import type ItemPicker from './ItemPicker.svelte';
@@ -27,6 +28,8 @@ interface Props {
27
28
  hideHelpButton?: boolean;
28
29
  class?: string;
29
30
  editor?: SimpleEditor | undefined;
31
+ otherArgs?: Record<string, InputTransform>;
32
+ helperScript?: DynamicInputTypes.HelperScript | undefined;
30
33
  }
31
34
  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> {
32
35
  new (options: import('svelte').ComponentConstructorOptions<Props>): import('svelte').SvelteComponent<Props, Events, Slots> & {
@@ -8,7 +8,8 @@ import InputTransformForm from './InputTransformForm.svelte';
8
8
  import ItemPicker from './ItemPicker.svelte';
9
9
  import VariableEditor from './VariableEditor.svelte';
10
10
  import { Plus } from 'lucide-svelte';
11
- let { schema = $bindable(), args = $bindable({}), isValid = $bindable(true), extraLib = $bindable('missing extraLib'), previousModuleId = undefined, filter = undefined, noDynamicToggle = false, pickableProperties = undefined, enableAi = false, class: clazz = '' } = $props();
11
+ import ResizeTransitionWrapper from './common/ResizeTransitionWrapper.svelte';
12
+ let { schema = $bindable(), args = $bindable({}), isValid = $bindable(true), extraLib = $bindable('missing extraLib'), previousModuleId = undefined, filter = undefined, noDynamicToggle = false, pickableProperties = undefined, enableAi = false, class: clazz = '', helperScript = undefined } = $props();
12
13
  let inputCheck = $state({});
13
14
  $effect(() => {
14
15
  isValid = allTrue(inputCheck) ?? false;
@@ -43,9 +44,9 @@ $effect(() => {
43
44
  });
44
45
  </script>
45
46
 
46
- <div class="w-full {clazz}">
47
+ <div class="w-full mb-6 {clazz}">
47
48
  {#if enableAi}
48
- <div class="px-0.5 pt-0.5">
49
+ <div class="mt-2">
49
50
  <StepInputsGen
50
51
  {pickableProperties}
51
52
  argNames={keys
@@ -64,7 +65,7 @@ $effect(() => {
64
65
  {#if keys.length > 0}
65
66
  {#each keys as argName, index (argName)}
66
67
  {#if (!filter || filter.includes(argName)) && Object.keys(schema.properties ?? {}).includes(argName)}
67
- <div class="pt-2 relative">
68
+ <ResizeTransitionWrapper class="mt-2 relative" innerClass="w-full" vertical>
68
69
  <InputTransformForm
69
70
  {previousModuleId}
70
71
  bind:arg={args[argName]}
@@ -80,8 +81,12 @@ $effect(() => {
80
81
  {noDynamicToggle}
81
82
  {pickableProperties}
82
83
  {enableAi}
84
+ {helperScript}
85
+ otherArgs={Object.fromEntries(
86
+ Object.entries(args ?? {}).filter(([key]) => key !== argName)
87
+ )}
83
88
  />
84
- </div>
89
+ </ResizeTransitionWrapper>
85
90
  {/if}
86
91
  {/each}
87
92
  {:else}
@@ -1,5 +1,6 @@
1
1
  import type { Schema } from '../common';
2
2
  import { type InputTransform } from '../gen';
3
+ import { type DynamicInput as DynamicInputTypes } from '../utils';
3
4
  import type { PickableProperties } from './flows/previousResults';
4
5
  interface Props {
5
6
  schema: Schema | {
@@ -14,6 +15,7 @@ interface Props {
14
15
  pickableProperties?: PickableProperties | undefined;
15
16
  enableAi?: boolean;
16
17
  class?: string;
18
+ helperScript?: DynamicInputTypes.HelperScript;
17
19
  }
18
20
  declare const InputTransformSchemaForm: import("svelte").Component<Props, {
19
21
  setArgs: (nargs: Record<string, InputTransform | any>) => void;
@@ -1,11 +1,11 @@
1
1
  <script lang="ts">import { isCloudHosted } from '../cloud';
2
2
  import { enterpriseLicense, isCriticalAlertsUIOpen } from '../stores';
3
- import { AlertCircle, AlertTriangle, BadgeCheck, BadgeX, Info, Plus, RefreshCcw, Slack, X } from 'lucide-svelte';
3
+ import { AlertCircle, AlertTriangle, BadgeCheck, BadgeX, Info, Plus, Slack, X } from 'lucide-svelte';
4
4
  import Tooltip from './Tooltip.svelte';
5
5
  import ObjectStoreConfigSettings from './ObjectStoreConfigSettings.svelte';
6
6
  import { sendUserToast } from '../toast';
7
7
  import ConfirmButton from './ConfirmButton.svelte';
8
- import { ConfigService, IndexSearchService, SettingService, TeamsService } from '../gen';
8
+ import { ConfigService, IndexSearchService, SettingService } from '../gen';
9
9
  import { Button, SecondsInput, Skeleton } from './common';
10
10
  import Password from './Password.svelte';
11
11
  import { classNames } from '../utils';
@@ -28,7 +28,6 @@ if ((setting.fieldType == 'select' || setting.fieldType == 'select_python') &&
28
28
  $values[setting.key] = 'default';
29
29
  }
30
30
  let latestKeyRenewalAttempt = $state(null);
31
- let isFetching = $state(false);
32
31
  function showSetting(setting, values) {
33
32
  if (setting == 'dev_instance') {
34
33
  if (values['license_key'] == undefined) {
@@ -120,29 +119,16 @@ async function fetch_available_python_versions() {
120
119
  if (setting.fieldType == 'select_python') {
121
120
  fetch_available_python_versions();
122
121
  }
123
- async function fetchTeams() {
124
- if (isFetching)
125
- return;
126
- isFetching = true;
127
- try {
128
- $values['teams'] = await TeamsService.syncTeams();
129
- }
130
- catch (error) {
131
- console.error('Error fetching teams:', error);
132
- }
133
- finally {
134
- isFetching = false;
135
- }
136
- }
137
122
  function handleTeamChange(teamItem, i) {
138
- const team = (teamItem && $values['teams'].find((team) => team.team_id === teamItem.team_id)) || null;
139
123
  $values['critical_error_channels'][i] = {
140
- teams_channel: {
141
- team_id: team?.team_id,
142
- team_name: team?.team_name,
143
- channel_id: team?.channels[0]?.channel_id,
144
- channel_name: team?.channels[0]?.channel_name
145
- }
124
+ teams_channel: teamItem
125
+ ? {
126
+ team_id: teamItem.team_id,
127
+ team_name: teamItem.team_name,
128
+ channel_id: undefined, // Will be set when channel is selected
129
+ channel_name: undefined
130
+ }
131
+ : undefined
146
132
  };
147
133
  }
148
134
  function handleChannelChange(channel, i) {
@@ -320,20 +306,28 @@ function handleChannelChange(channel, i) {
320
306
  </div>
321
307
  {/if}
322
308
  {:else if setting.fieldType == 'codearea'}
323
- <SimpleEditor
324
- autoHeight
325
- class="editor"
326
- lang={setting.codeAreaLang ?? 'txt'}
327
- bind:code={$values[setting.key]}
328
- fixedOverflowWidgets={false}
329
- />
309
+ <!-- svelte-ignore a11y_click_events_have_key_events -->
310
+ <!-- svelte-ignore a11y_no_static_element_interactions -->
311
+ <div
312
+ onclick={(ev) => {
313
+ ev.stopPropagation() // this is to prevent wrapping label interference
314
+ }}
315
+ >
316
+ <SimpleEditor
317
+ autoHeight
318
+ class="editor"
319
+ lang={setting.codeAreaLang ?? 'txt'}
320
+ bind:code={$values[setting.key]}
321
+ fixedOverflowWidgets={false}
322
+ /></div
323
+ >
330
324
  {:else if setting.fieldType == 'license_key'}
331
325
  {@const { valid, expiration } = parseLicenseKey($values[setting.key] ?? '')}
332
326
  <div class="flex gap-2">
333
327
  <Password
334
328
  small
335
329
  placeholder={setting.placeholder}
336
- on:keydown={() => {
330
+ onKeyDown={() => {
337
331
  licenseKeyChanged = true
338
332
  }}
339
333
  bind:password={$values[setting.key]}
@@ -501,9 +495,6 @@ function handleChannelChange(channel, i) {
501
495
  [e.target['value']]: ''
502
496
  }
503
497
  }
504
- if (e.target?.['value'] === 'teams_channel') {
505
- fetchTeams()
506
- }
507
498
  }}
508
499
  value={(() => {
509
500
  if (!v) return 'email'
@@ -535,8 +526,6 @@ function handleChannelChange(channel, i) {
535
526
  containerClass="w-44"
536
527
  minWidth="140px"
537
528
  showRefreshButton={false}
538
- placeholder="Select team"
539
- teams={$values['teams']}
540
529
  bind:selectedTeam={
541
530
  () =>
542
531
  $values['critical_error_channels'][i]?.teams_channel
@@ -555,12 +544,8 @@ function handleChannelChange(channel, i) {
555
544
  {#if $values['critical_error_channels'][i]?.teams_channel?.team_id}
556
545
  <ChannelSelector
557
546
  containerClass=""
558
- placeholder="Select channel"
559
- channels={$values['teams'].find(
560
- (team) =>
561
- team.team_id ===
562
- $values['critical_error_channels'][i]?.teams_channel?.team_id
563
- )?.channels ?? []}
547
+ placeholder="Search channels"
548
+ teamId={$values['critical_error_channels'][i]?.teams_channel?.team_id}
564
549
  bind:selectedChannel={
565
550
  () =>
566
551
  $values['critical_error_channels'][i]?.teams_channel?.channel_id
@@ -575,13 +560,10 @@ function handleChannelChange(channel, i) {
575
560
  : undefined,
576
561
  (channel) => handleChannelChange(channel, i)
577
562
  }
563
+ onError={(e) =>
564
+ sendUserToast('Failed to load channels: ' + e.message, true)}
578
565
  />
579
566
  {/if}
580
- <div>
581
- <button onclick={fetchTeams} class="flex items-center gap-1 mt-2">
582
- <RefreshCcw size={16} class={isFetching ? 'animate-spin' : ''} />
583
- </button>
584
- </div>
585
567
  </div>
586
568
  {:else}
587
569
  <input
@@ -624,7 +606,8 @@ function handleChannelChange(channel, i) {
624
606
  if ($values[setting.key] == undefined || !Array.isArray($values[setting.key])) {
625
607
  $values[setting.key] = []
626
608
  }
627
- $values[setting.key] = $values[setting.key].concat('')
609
+ // Start with a typed default to avoid invalid primitives in the array
610
+ $values[setting.key] = $values[setting.key].concat({ email: '' })
628
611
  }}
629
612
  id="arg-input-add-item"
630
613
  startIcon={{ icon: Plus }}
@@ -716,7 +699,7 @@ function handleChannelChange(channel, i) {
716
699
  The max amount of documents (here jobs) per commit. To optimize indexing
717
700
  throughput, it is best to keep this as high as possible. However, especially
718
701
  when reindexing the whole instance, it can be useful to have a limit on how many
719
- jobs can be written without being commited. A commit will make the jobs
702
+ jobs can be written without being committed. A commit will make the jobs
720
703
  available for search, constitute a "checkpoint" state in the indexing and will
721
704
  be logged.
722
705
  </Tooltip>
@@ -775,7 +758,7 @@ function handleChannelChange(channel, i) {
775
758
  representing all logs during 1 minute for a specific host. To optimize indexing
776
759
  throughput, it is best to keep this as high as possible. However, especially
777
760
  when reindexing the whole instance, it can be useful to have a limit on how many
778
- logs can be written without being commited. A commit will make the logs
761
+ logs can be written without being committed. A commit will make the logs
779
762
  available for search, appear as a log line, and be a "checkpoint" of the
780
763
  indexing progress.
781
764
  </Tooltip>