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
@@ -62,24 +62,6 @@ async function loadSettings() {
62
62
  if (nvalues['critical_error_channels'] == undefined) {
63
63
  nvalues['critical_error_channels'] = [];
64
64
  }
65
- else {
66
- let teams = (await SettingService.getGlobal({ key: 'teams' })) ?? [];
67
- nvalues['teams'] = teams;
68
- nvalues['critical_error_channels'] = nvalues['critical_error_channels'].map((el) => {
69
- if (el.teams_channel) {
70
- const team = teams.find((team) => team.team_name === el.teams_channel.team_name) || null;
71
- return {
72
- teams_channel: {
73
- team_id: team?.team_id,
74
- team_name: team?.team_name,
75
- channel_id: team?.channels.find((channel) => channel.channel_id === el.teams_channel.channel_id)?.channel_id,
76
- channel_name: team?.channels.find((channel) => channel.channel_id === el.teams_channel.channel_id)?.channel_name
77
- }
78
- };
79
- }
80
- return el;
81
- });
82
- }
83
65
  $values = nvalues;
84
66
  loading = false;
85
67
  // populate snowflake account identifier from db
@@ -94,12 +76,21 @@ export async function saveSettings() {
94
76
  snowflakeAccountIdentifier) {
95
77
  setupSnowflakeUrls();
96
78
  }
97
- // Remove empty or invalid teams_channel entries
79
+ // Remove empty or invalid entries for critical error channels
98
80
  $values.critical_error_channels = $values.critical_error_channels.filter((entry) => {
99
- if (entry && typeof entry == 'object' && 'teams_channel' in entry) {
81
+ if (!entry || typeof entry !== 'object')
82
+ return false;
83
+ if ('teams_channel' in entry) {
100
84
  return isValidTeamsChannel(entry.teams_channel);
101
85
  }
102
- return true;
86
+ if ('slack_channel' in entry) {
87
+ return (typeof entry.slack_channel === 'string' && entry.slack_channel.trim() !== '');
88
+ }
89
+ if ('email' in entry) {
90
+ return typeof entry.email === 'string' && entry.email.trim() !== '';
91
+ }
92
+ // Unknown shape
93
+ return false;
103
94
  });
104
95
  let shouldReloadPage = false;
105
96
  if ($values) {
@@ -11,13 +11,10 @@ import Row from './table/Row.svelte';
11
11
  import HighlightTheme from './HighlightTheme.svelte';
12
12
  import { deepEqual } from 'fast-equals';
13
13
  import { isWindmillTooBigObject } from './job_args';
14
- export let id = undefined;
15
- export let args;
16
- export let argLabel = undefined;
17
- export let workspace = undefined;
18
- let jsonViewer;
19
- let runLocally;
20
- let jsonStr = '';
14
+ let { id = undefined, args, argLabel = undefined, workspace = undefined } = $props();
15
+ let jsonViewer = $state();
16
+ let runLocally = $state();
17
+ let jsonStr = $state('');
21
18
  function pythonCode() {
22
19
  return `
23
20
  if __name__ == "__main__":
@@ -47,9 +44,9 @@ ${Object.entries(args)
47
44
  }
48
45
  </script>
49
46
 
50
- {#if args && typeof args === 'object' && deepEqual( Object.keys(args), ['reason'] ) && args['reason'] == 'PREPROCESSOR_ARGS_ARE_DISCARDED'}
47
+ {#if args && typeof args === 'object' && deepEqual( Object.keys(args ?? {}), ['reason'] ) && args['reason'] == 'PREPROCESSOR_ARGS_ARE_DISCARDED'}
51
48
  Preprocessor args are discarded
52
- {:else if id && workspace && args && typeof args === 'object' && deepEqual( Object.keys(args), ['reason'] ) && args['reason'] == 'WINDMILL_TOO_BIG'}
49
+ {:else if id && workspace && args && typeof args === 'object' && deepEqual( Object.keys(args ?? {}), ['reason'] ) && args['reason'] == 'WINDMILL_TOO_BIG'}
53
50
  The args are too big in size to be able to fetch alongside job. Please <a
54
51
  href="/api/w/{workspace}/jobs_u/get_args/{id}"
55
52
  target="_blank">download the JSON file to view them</a
@@ -62,26 +59,28 @@ ${Object.entries(args)
62
59
  <Cell head first>{argLabel ?? 'Arg'}</Cell>
63
60
  <Cell head last>Value</Cell>
64
61
  </tr>
65
- <svelte:fragment slot="headerAction">
62
+ {#snippet headerAction()}
66
63
  <button
67
- on:click={() => {
64
+ onclick={() => {
68
65
  jsonStr = JSON.stringify(args, null, 4)
69
- jsonViewer.openDrawer()
66
+ jsonViewer?.openDrawer()
70
67
  }}
71
68
  >
72
69
  <Expand size={18} />
73
70
  </button>
74
- </svelte:fragment>
71
+ {/snippet}
75
72
  </Head>
76
73
 
77
74
  <tbody class="divide-y w-full">
78
- {#if args && Object.keys(args).length > 0}
79
- {#each Object.entries(args).sort((a, b) => a[0].localeCompare(b[0])) as [arg, value]}
75
+ {#if args && typeof args === 'object' && Object.keys(args ?? {}).length > 0}
76
+ {#each Object.entries(args ?? {}).sort( (a, b) => a?.[0]?.localeCompare(b?.[0]) ) as [arg, value]}
80
77
  <Row>
81
78
  <Cell first>{arg}</Cell>
82
79
  <Cell><ArgInfo {value} /></Cell>
83
80
  </Row>
84
81
  {/each}
82
+ {:else if args && typeof args !== 'object'}
83
+ <Row><Cell>Argument is not an object (type: {typeof args})</Cell></Row>
85
84
  {:else if args}
86
85
  <Row><Cell>No arguments</Cell></Row>
87
86
  {:else}
@@ -116,7 +115,7 @@ ${Object.entries(args)
116
115
  Download
117
116
  </Button>
118
117
  <Button
119
- on:click={runLocally.openDrawer}
118
+ on:click={() => runLocally?.openDrawer()}
120
119
  color="light"
121
120
  size="xs"
122
121
  startIcon={{ icon: ChevronRightSquare }}
@@ -1,23 +1,9 @@
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;
13
- }
14
- declare const JobArgs: $$__sveltets_2_IsomorphicComponent<{
1
+ interface Props {
15
2
  id?: string | undefined;
16
3
  args: any;
17
4
  argLabel?: string | undefined;
18
5
  workspace?: string | undefined;
19
- }, {
20
- [evt: string]: CustomEvent<any>;
21
- }, {}, {}, string>;
22
- type JobArgs = InstanceType<typeof JobArgs>;
6
+ }
7
+ declare const JobArgs: import("svelte").Component<Props, {}, "">;
8
+ type JobArgs = ReturnType<typeof JobArgs>;
23
9
  export default JobArgs;
@@ -4,17 +4,10 @@ const plimit = pLimit(5);
4
4
 
5
5
  <script lang="ts">import { JobService } from '../gen';
6
6
  import { workspaceStore } from '../stores';
7
- import { onDestroy, tick, untrack } from 'svelte';
7
+ import { getContext, onDestroy, tick, untrack } from 'svelte';
8
8
  import { sendUserToast } from '../toast';
9
- import { isScriptPreview } from '../utils';
9
+ import { DynamicInput, isScriptPreview } from '../utils';
10
10
  let { isLoading = $bindable(false), job = $bindable(undefined), noCode = false, allowConcurentRequests = false, workspaceOverride = undefined, notfound = $bindable(false), jobUpdateLastFetch = $bindable(undefined), toastError = false, onlyResult = false, loadPlaceholderJobOnStart = undefined, scriptProgress = $bindable(undefined), noLogs = false, children } = $props();
11
- /// Last time asked for job progress
12
- let lastTimeCheckedProgress = undefined;
13
- /// Will try to poll progress every 5s and if once progress returned was not undefined, will be ignored
14
- /// and getProgressRate will be used instead
15
- const getProgressRetryRate = 5000;
16
- /// How often loader poll progress
17
- const getProgressRate = 1000;
18
11
  let workspace = $derived(workspaceOverride ?? $workspaceStore);
19
12
  let syncIteration = 0;
20
13
  let errorIteration = 0;
@@ -29,6 +22,7 @@ let currentId = $state(undefined);
29
22
  let noPingTimeout = undefined;
30
23
  let lastNoLogs = $state(noLogs);
31
24
  let lastCompletedJobId = $state(undefined);
25
+ let token = getContext('AuthToken');
32
26
  $effect(() => {
33
27
  let newIsLoading = currentId !== undefined;
34
28
  untrack(() => {
@@ -73,6 +67,7 @@ function clearCurrentId() {
73
67
  export async function abstractRun(fn, callbacks) {
74
68
  try {
75
69
  isLoading = true;
70
+ scriptProgress = undefined;
76
71
  lastCompletedJobId = undefined;
77
72
  clearCurrentJob();
78
73
  lastCallbacks = callbacks;
@@ -145,9 +140,6 @@ function refreshLogOffset() {
145
140
  if (logOffset == 0) {
146
141
  logOffset = job?.logs?.length ? job.logs?.length + 1 : 0;
147
142
  }
148
- if (resultStreamOffset == 0) {
149
- resultStreamOffset = job?.result_stream?.length ? job.result_stream?.length + 1 : 0;
150
- }
151
143
  }
152
144
  export async function getLogs() {
153
145
  if (job) {
@@ -164,10 +156,13 @@ export async function getLogs() {
164
156
  }
165
157
  }
166
158
  }
159
+ export async function runDynamicInputScript(entrypoint_function, runnable_ref, args, callbacks) {
160
+ return abstractRun(() => JobService.runDynamicSelect({
161
+ workspace: $workspaceStore,
162
+ requestBody: { entrypoint_function, args, runnable_ref }
163
+ }), callbacks);
164
+ }
167
165
  export async function runPreview(path, code, lang, args, tag, lock, hash, callbacks) {
168
- // Reset in case we rerun job without reloading
169
- scriptProgress = undefined;
170
- lastTimeCheckedProgress = undefined;
171
166
  return abstractRun(() => JobService.runScriptPreview({
172
167
  workspace: $workspaceStore,
173
168
  requestBody: {
@@ -222,6 +217,7 @@ export async function watchJob(testId, callbacks) {
222
217
  syncIteration = 0;
223
218
  errorIteration = 0;
224
219
  currentId = testId;
220
+ scriptProgress = undefined;
225
221
  if (loadPlaceholderJobOnStart) {
226
222
  job = structuredClone(loadPlaceholderJobOnStart);
227
223
  }
@@ -241,30 +237,6 @@ export async function watchJob(testId, callbacks) {
241
237
  syncer(testId, callbacks);
242
238
  }
243
239
  }
244
- function setJobProgress(job) {
245
- let getProgress = undefined;
246
- // We only pull individual job progress this way
247
- // Flow's progress we are getting from FlowStatusModule of flow job
248
- if (job.job_kind == 'script' || isScriptPreview(job.job_kind)) {
249
- // First time, before running job, lastTimeCheckedProgress is always undefined
250
- if (lastTimeCheckedProgress) {
251
- const lastTimeCheckedMs = Date.now() - lastTimeCheckedProgress;
252
- // Ask for progress if the last time we asked is >5s OR the progress was once not undefined
253
- if (lastTimeCheckedMs > getProgressRetryRate ||
254
- (scriptProgress != undefined && lastTimeCheckedMs > getProgressRate)) {
255
- lastTimeCheckedProgress = Date.now();
256
- getProgress = true;
257
- }
258
- }
259
- else {
260
- // Make it think we asked for progress, but in reality we didnt. First 5s we want to wait without putting extra work on db
261
- // 99.99% of the jobs won't have progress be set so we have to do a balance between having low-latency for jobs that use it and job that don't
262
- // we would usually not care to have progress the first 5s and jobs that are less than 5s
263
- lastTimeCheckedProgress = Date.now();
264
- }
265
- }
266
- return getProgress;
267
- }
268
240
  const clamp = (num, min, max) => Math.min(Math.max(num, min), max);
269
241
  function updateJobFromProgress(previewJobUpdates, job, callbacks) {
270
242
  // Clamp number between two values with the following line:
@@ -275,6 +247,7 @@ function updateJobFromProgress(previewJobUpdates, job, callbacks) {
275
247
  }
276
248
  }
277
249
  if (previewJobUpdates.progress) {
250
+ console.log('progress', previewJobUpdates.progress);
278
251
  // Progress cannot go back and cannot be set to 100
279
252
  scriptProgress = clamp(previewJobUpdates.progress, scriptProgress ?? 0, 99);
280
253
  }
@@ -329,14 +302,14 @@ async function loadTestJob(id, callbacks) {
329
302
  try {
330
303
  if (job && `running` in job) {
331
304
  callbacks?.running?.({ id });
332
- let getProgress = setJobProgress(job);
333
305
  refreshLogOffset();
334
306
  let previewJobUpdates = await JobService.getJobUpdates({
335
307
  workspace: workspace,
336
308
  id,
337
309
  running: job.running,
338
310
  logOffset: logOffset,
339
- getProgress: getProgress
311
+ streamOffset: resultStreamOffset,
312
+ getProgress: false
340
313
  });
341
314
  if ((previewJobUpdates.running ?? false) || (previewJobUpdates.completed ?? false)) {
342
315
  job = await JobService.getJob({
@@ -464,7 +437,9 @@ async function loadTestJobWithSSE(id, attempt, callbacks) {
464
437
  job.running = true;
465
438
  }
466
439
  }
467
- let getProgress = onlyResult || !job ? undefined : setJobProgress(job);
440
+ let getProgress = onlyResult || !job
441
+ ? undefined
442
+ : job.job_kind == 'script' || isScriptPreview(job.job_kind);
468
443
  refreshLogOffset();
469
444
  // Build SSE URL with query parameters
470
445
  const params = new URLSearchParams({
@@ -491,6 +466,12 @@ async function loadTestJobWithSSE(id, attempt, callbacks) {
491
466
  if (resultStreamOffset) {
492
467
  params.set('stream_offset', resultStreamOffset.toString());
493
468
  }
469
+ if (job) {
470
+ params.set('is_flow', (job.job_kind === 'flow' || job.job_kind === 'flowpreview').toString());
471
+ }
472
+ if (token?.token && token.token != '') {
473
+ params.set('token', token.token);
474
+ }
494
475
  const sseUrl = `/api/w/${workspace}/jobs_u/getupdate_sse/${id}?${params.toString()}`;
495
476
  currentEventSource = new EventSource(sseUrl);
496
477
  setNoPingTimeout(id, attempt, callbacks);
@@ -1,5 +1,6 @@
1
1
  import { type Job, type OpenFlow } from '../gen';
2
2
  import type { SupportedLanguage } from '../common';
3
+ import { DynamicInput } from '../utils';
3
4
  export type Callbacks = {
4
5
  done?: (x: Job & {
5
6
  result?: any;
@@ -57,6 +58,7 @@ declare const JobLoader: import("svelte").Component<Props, {
57
58
  tag?: string;
58
59
  }, callbacks?: Callbacks) => Promise<string>;
59
60
  getLogs: () => Promise<void>;
61
+ runDynamicInputScript: (entrypoint_function: string, runnable_ref: DynamicInput.HelperScript, args: Record<string, any>, callbacks?: Callbacks) => Promise<string>;
60
62
  runPreview: (path: string | undefined, code: string, lang: SupportedLanguage | undefined, args: Record<string, any>, tag: string | undefined, lock?: string, hash?: string, callbacks?: Callbacks) => Promise<string>;
61
63
  cancelJob: () => Promise<void>;
62
64
  clearCurrentJob: () => Promise<void>;
@@ -6,7 +6,7 @@ import { Calendar, CheckCircle2, Circle, Clock, Hourglass, Play, XCircle } from
6
6
  import NoWorkerWithTagWarning from './runs/NoWorkerWithTagWarning.svelte';
7
7
  import QueuePosition from './QueuePosition.svelte';
8
8
  const SMALL_ICON_SIZE = 12;
9
- export let job;
9
+ let { job } = $props();
10
10
  </script>
11
11
 
12
12
  {#if job && 'success' in job && job.success}
@@ -1,21 +1,7 @@
1
1
  import type { CompletedJob, QueuedJob } from '../gen';
2
- 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> {
3
- new (options: import('svelte').ComponentConstructorOptions<Props>): import('svelte').SvelteComponent<Props, Events, Slots> & {
4
- $$bindings?: Bindings;
5
- } & Exports;
6
- (internal: unknown, props: Props & {
7
- $$events?: Events;
8
- $$slots?: Slots;
9
- }): Exports & {
10
- $set?: any;
11
- $on?: any;
12
- };
13
- z_$$bindings?: Bindings;
14
- }
15
- declare const JobStatus: $$__sveltets_2_IsomorphicComponent<{
2
+ interface Props {
16
3
  job: QueuedJob | CompletedJob | undefined;
17
- }, {
18
- [evt: string]: CustomEvent<any>;
19
- }, {}, {}, string>;
20
- type JobStatus = InstanceType<typeof JobStatus>;
4
+ }
5
+ declare const JobStatus: import("svelte").Component<Props, {}, "">;
6
+ type JobStatus = ReturnType<typeof JobStatus>;
21
7
  export default JobStatus;
@@ -1,12 +1,14 @@
1
- <script lang="ts">import { run } from 'svelte/legacy';
2
- import '@codingame/monaco-vscode-standalone-json-language-features';
1
+ <script lang="ts">import '@codingame/monaco-vscode-standalone-json-language-features';
3
2
  import SimpleEditor from './SimpleEditor.svelte';
4
- import { createEventDispatcher } from 'svelte';
3
+ import { createEventDispatcher, untrack } from 'svelte';
5
4
  import { createDispatcherIfMounted } from '../createDispatcherIfMounted';
6
5
  import Button from './common/button/Button.svelte';
6
+ import { twMerge } from 'tailwind-merge';
7
+ import { inputBorderClass } from './text_input/TextInput.svelte';
7
8
  let { code = $bindable(), value = $bindable(undefined), error = $bindable(), editor = $bindable(undefined), small = false, loadAsync = false, class: clazz = undefined, disabled = false, fixedOverflowWidgets = true } = $props();
8
9
  let tooBig = $derived(code && code?.length > 1000000);
9
10
  let loadTooBigAnyway = $state(false);
11
+ let focused = $state(false);
10
12
  const dispatch = createEventDispatcher();
11
13
  const dispatchIfMounted = createDispatcherIfMounted(dispatch);
12
14
  function parseJson() {
@@ -24,8 +26,8 @@ function parseJson() {
24
26
  error = e.message;
25
27
  }
26
28
  }
27
- run(() => {
28
- code != undefined && parseJson();
29
+ $effect(() => {
30
+ code != undefined && untrack(() => parseJson());
29
31
  });
30
32
  </script>
31
33
 
@@ -38,12 +40,17 @@ run(() => {
38
40
  </div>
39
41
  {:else}
40
42
  <div class="flex flex-col w-full">
41
- <div class="border w-full">
43
+ <div
44
+ class={twMerge(
45
+ 'w-full rounded-md bg-surface-secondary',
46
+ inputBorderClass({ error: !!error, forceFocus: focused })
47
+ )}
48
+ >
42
49
  <SimpleEditor
43
50
  {loadAsync}
44
51
  {small}
45
- on:focus
46
- on:blur
52
+ on:focus={() => (dispatch('focus'), (focused = true))}
53
+ on:blur={() => (dispatch('blur'), (focused = false))}
47
54
  bind:this={editor}
48
55
  on:change
49
56
  autoHeight
@@ -52,10 +59,12 @@ run(() => {
52
59
  class={clazz}
53
60
  {disabled}
54
61
  {fixedOverflowWidgets}
62
+ renderLineHighlight="none"
63
+ yPadding={8}
55
64
  />
56
65
  </div>
57
66
  {#if error != ''}
58
- <span class="text-red-600 text-xs">{error}</span>
67
+ <span class="text-red-600 text-xs mt-1">{error}</span>
59
68
  {/if}
60
69
  </div>
61
70
  {/if}
@@ -25,9 +25,9 @@ interface $$__sveltets_2_IsomorphicComponent<Props extends Record<string, any> =
25
25
  z_$$bindings?: Bindings;
26
26
  }
27
27
  declare const JsonEditor: $$__sveltets_2_IsomorphicComponent<Props, {
28
+ change: CustomEvent<any>;
28
29
  focus: CustomEvent<any>;
29
30
  blur: CustomEvent<any>;
30
- change: CustomEvent<any>;
31
31
  } & {
32
32
  [evt: string]: CustomEvent<any>;
33
33
  }, {}, {}, "value" | "error" | "code" | "editor">;
@@ -41,7 +41,7 @@ function handleKeydown(event) {
41
41
  <!-- Add a hidden button that can receive focus -->
42
42
  <button bind:this={focusTrap} class="sr-only" tabindex="-1" aria-hidden="true">Focus trap</button>
43
43
 
44
- <div class="h-full">
44
+ <div class="h-full py-3 rounded-md border">
45
45
  <SimpleEditor
46
46
  bind:this={simpleEditor}
47
47
  on:focus={() => {
@@ -1,4 +1,5 @@
1
- <script lang="ts">import { allTrue } from '../utils';
1
+ <script lang="ts">import ResizeTransitionWrapper from './common/ResizeTransitionWrapper.svelte';
2
+ import { allTrue } from '../utils';
2
3
  import { RefreshCw } from 'lucide-svelte';
3
4
  import ArgInput from './ArgInput.svelte';
4
5
  import { Button } from './common';
@@ -69,12 +70,14 @@ $effect.pre(() => {
69
70
  {#if keys.length > 0}
70
71
  {#each keys as argName, i (argName)}
71
72
  {#if Object.keys(schema.properties ?? {}).includes(argName)}
72
- <div
73
+ <ResizeTransitionWrapper
74
+ vertical
73
75
  class={twMerge(
74
- 'flex gap-2',
76
+ 'flex gap-2 relative',
75
77
  animateArg === argName && 'animate-pulse ring-2 ring-offset-2 ring-blue-500 rounded'
76
78
  )}
77
- data-arg={argName}
79
+ innerClass="w-full"
80
+ outerDivProps={{ 'data-arg': argName }}
78
81
  >
79
82
  {#if schema?.properties?.[argName]}
80
83
  <ArgInput
@@ -104,22 +107,23 @@ $effect.pre(() => {
104
107
  nullable={schema.properties[argName].nullable}
105
108
  title={schema.properties[argName].title}
106
109
  placeholder={schema.properties[argName].placeholder}
107
- />
110
+ >
111
+ {#snippet fieldHeaderActions()}
112
+ {#if stepsInputArgs?.isArgManuallySet(mod.id, argName)}
113
+ <Button
114
+ on:click={() => {
115
+ plugIt(argName)
116
+ }}
117
+ size="xs2"
118
+ variant="contained"
119
+ color="light"
120
+ title="Re-evaluate input step"><RefreshCw size={12} /></Button
121
+ >
122
+ {/if}
123
+ {/snippet}
124
+ </ArgInput>
108
125
  {/if}
109
- {#if stepsInputArgs?.isArgManuallySet(mod.id, argName)}
110
- <div class="pt-6 mt-0.5">
111
- <Button
112
- on:click={() => {
113
- plugIt(argName)
114
- }}
115
- size="sm"
116
- variant="border"
117
- color="light"
118
- title="Re-evaluate input step"><RefreshCw size={14} /></Button
119
- >
120
- </div>
121
- {/if}
122
- </div>
126
+ </ResizeTransitionWrapper>
123
127
  {/if}
124
128
  {/each}
125
129
  {/if}
@@ -9,7 +9,6 @@ import { getStringError } from './copilot/chat/utils';
9
9
  import AiAgentLogViewer from './AIAgentLogViewer.svelte';
10
10
  let { lang, editor, diffEditor, loopStatus = undefined, scriptProgress = $bindable(undefined), testJob = undefined, mod, testIsLoading = false, disableMock = false, disableHistory = false, onUpdateMock, loadingJob = false, tagLabel = undefined } = $props();
11
11
  const { stepsInputArgs } = getContext('FlowEditorContext');
12
- let jobProgressReset = $state(() => { });
13
12
  let outputPickerInner = $state(undefined);
14
13
  export function getOutputPickerInner() {
15
14
  return outputPickerInner;
@@ -22,12 +21,7 @@ const preview = $derived.by(() => outputPickerInner?.getPreview?.());
22
21
  <Splitpanes horizontal>
23
22
  <Pane size={65} minSize={10} class="text-sm text-tertiary">
24
23
  {#if scriptProgress}
25
- <JobProgressBar
26
- job={testJob}
27
- bind:scriptProgress
28
- bind:reset={jobProgressReset}
29
- compact={true}
30
- />
24
+ <JobProgressBar job={testJob} {scriptProgress} compact={true} />
31
25
  {/if}
32
26
 
33
27
  <OutputPickerInner
@@ -25,8 +25,13 @@ function changeDomain(domain) {
25
25
  }
26
26
  }
27
27
  let enabled = $derived(value != undefined);
28
+ let lastDomain = $state(value?.['domain']);
28
29
  $effect(() => {
29
- changeDomain(value?.['domain']);
30
+ const currentDomain = value?.['domain'];
31
+ if (currentDomain && currentDomain !== lastDomain) {
32
+ lastDomain = currentDomain;
33
+ changeDomain(currentDomain);
34
+ }
30
35
  });
31
36
  </script>
32
37
 
@@ -2,6 +2,8 @@
2
2
  import Toggle from './Toggle.svelte';
3
3
  import Tooltip from './Tooltip.svelte';
4
4
  import { selectOptions } from './apps/editor/component';
5
+ import Select from './select/Select.svelte';
6
+ import TextInput from './text_input/TextInput.svelte';
5
7
  let { min = $bindable(), max = $bindable(), currency = $bindable(), currencyLocale = $bindable() } = $props();
6
8
  let minChecked = $state(min != undefined);
7
9
  let maxChecked = $state(max != undefined);
@@ -29,7 +31,11 @@ let maxChecked = $state(max != undefined);
29
31
  options={{ right: 'Enabled' }}
30
32
  size="xs"
31
33
  />
32
- {/snippet} <input type="number" bind:value={min} disabled={!minChecked} />
34
+ {/snippet}
35
+ <TextInput
36
+ inputProps={{ type: 'number', disabled: !minChecked }}
37
+ bind:value={() => min?.toString(), (v) => (min = v ? parseInt(v) : undefined)}
38
+ />
33
39
  </Label>
34
40
 
35
41
  <Label label="Max" class="w-full col-span-1 ">
@@ -53,31 +59,41 @@ let maxChecked = $state(max != undefined);
53
59
  size="xs"
54
60
  />
55
61
  {/snippet}
56
- <input type="number" bind:value={max} disabled={!maxChecked} />
62
+ <TextInput
63
+ inputProps={{ type: 'number', disabled: !maxChecked }}
64
+ bind:value={() => max?.toString(), (v) => (max = v ? parseInt(v) : undefined)}
65
+ />
57
66
  </Label>
58
67
  </div>
59
- <div class="grid grid-cols-3 gap-4">
60
- <Label label="Currency" class="w-full col-span-2">
68
+ <div class="flex gap-2">
69
+ <Label label="Currency" class=" col-span-2">
61
70
  {#snippet header()}
62
71
  <Tooltip light small>
63
72
  Select a currency to display the number in. If a currency is selected, you can also select
64
73
  a locale to format the number according to that locale.
65
74
  </Tooltip>
66
75
  {/snippet}
67
- <select bind:value={currency}>
68
- <option value={undefined}> No currency </option>
69
- {#each selectOptions.currencyOptions as c}
70
- <option value={c}>{c}</option>
71
- {/each}
72
- </select>
76
+ <Select
77
+ bind:value={
78
+ () => currency,
79
+ (v) => {
80
+ currency = v
81
+ if (!v) currencyLocale = undefined
82
+ }
83
+ }
84
+ items={selectOptions.currencyOptions.map((c) => ({ label: c, value: c }))}
85
+ placeholder="No currency"
86
+ clearable
87
+ />
73
88
  </Label>
74
89
  <Label label="Currency locale" class="w-full">
75
- <select bind:value={currencyLocale} disabled={!currency}>
76
- <option value={undefined}> No locale </option>
77
- {#each selectOptions.localeOptions as c}
78
- <option value={c}>{c}</option>
79
- {/each}
80
- </select>
90
+ <Select
91
+ bind:value={currencyLocale}
92
+ items={selectOptions.localeOptions.map((c) => ({ label: c, value: c }))}
93
+ placeholder="No locale"
94
+ disabled={!currency}
95
+ clearable
96
+ />
81
97
  </Label>
82
98
  </div>
83
99
  </div>