windmill-components 1.532.0 → 1.542.4

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (371) hide show
  1. package/package/components/AIProviderPicker.svelte +181 -0
  2. package/package/components/AIProviderPicker.svelte.d.ts +15 -0
  3. package/package/components/ArgInfo.svelte +2 -2
  4. package/package/components/ArgInput.svelte +60 -27
  5. package/package/components/ArgInput.svelte.d.ts +3 -3
  6. package/package/components/AssignableTagsInner.svelte +89 -3
  7. package/package/components/Auth0Setting.svelte +8 -3
  8. package/package/components/ConcurrentJobsChart.svelte +36 -48
  9. package/package/components/ConcurrentJobsChart.svelte.d.ts +8 -20
  10. package/package/components/CustomPopover.svelte.d.ts +1 -1
  11. package/package/components/Dev.svelte +5 -4
  12. package/package/components/DiffDrawer.svelte +2 -2
  13. package/package/components/DiffEditor.svelte +34 -37
  14. package/package/components/DiffEditor.svelte.d.ts +23 -39
  15. package/package/components/DropdownSelect.svelte +26 -0
  16. package/package/components/DropdownSelect.svelte.d.ts +11 -0
  17. package/package/components/DropdownV2Inner.svelte +1 -1
  18. package/package/components/{DynSelect.svelte → DynamicInput.svelte} +47 -15
  19. package/package/components/DynamicInput.svelte.d.ts +11 -0
  20. package/package/components/EditableSchemaForm.svelte +155 -140
  21. package/package/components/EditableSchemaForm.svelte.d.ts +6 -7
  22. package/package/components/Editor.svelte +101 -87
  23. package/package/components/Editor.svelte.d.ts +7 -1
  24. package/package/components/EditorBar.svelte +2 -5
  25. package/package/components/FlowBuilder.svelte +10 -7
  26. package/package/components/FlowLogRow.svelte +64 -0
  27. package/package/components/FlowLogRow.svelte.d.ts +15 -0
  28. package/package/components/FlowLogViewer.svelte +406 -373
  29. package/package/components/FlowLogViewer.svelte.d.ts +5 -1
  30. package/package/components/FlowLogViewerWrapper.svelte +44 -1
  31. package/package/components/FlowLoopIterationPreview.svelte.d.ts +1 -1
  32. package/package/components/FlowPreviewContent.svelte +3 -3
  33. package/package/components/FlowPreviewContent.svelte.d.ts +1 -1
  34. package/package/components/FlowStatusViewer.svelte +28 -0
  35. package/package/components/FlowStatusViewerInner.svelte +106 -23
  36. package/package/components/FlowStatusViewerInner.svelte.d.ts +7 -0
  37. package/package/components/FolderPicker.svelte +1 -1
  38. package/package/components/InputTransformForm.svelte +20 -10
  39. package/package/components/JobArgs.svelte +1 -1
  40. package/package/components/JobLoader.svelte.d.ts +1 -1
  41. package/package/components/JobStatus.svelte +2 -0
  42. package/package/components/LogSnippetViewer.svelte +3 -3
  43. package/package/components/LogSnippetViewer.svelte.d.ts +1 -1
  44. package/package/components/LogViewer.svelte +87 -71
  45. package/package/components/LogViewer.svelte.d.ts +1 -0
  46. package/package/components/ModulePreview.svelte +2 -1
  47. package/package/components/ModulePreview.svelte.d.ts +1 -0
  48. package/package/components/ModulePreviewForm.svelte +72 -65
  49. package/package/components/ModulePreviewResultViewer.svelte +13 -18
  50. package/package/components/ModuleTest.svelte +6 -5
  51. package/package/components/ModuleTest.svelte.d.ts +1 -0
  52. package/package/components/OktaSetting.svelte +8 -3
  53. package/package/components/Path.svelte +7 -1
  54. package/package/components/Path.svelte.d.ts +1 -1
  55. package/package/components/Portal.svelte +11 -7
  56. package/package/components/Portal.svelte.d.ts +19 -39
  57. package/package/components/PrefixedInput.svelte +120 -0
  58. package/package/components/PrefixedInput.svelte.d.ts +8 -0
  59. package/package/components/QueuePosition.svelte +81 -0
  60. package/package/components/QueuePosition.svelte.d.ts +8 -0
  61. package/package/components/ResourceNarrowing.svelte +13 -0
  62. package/package/components/ResourceNarrowing.svelte.d.ts +6 -0
  63. package/package/components/ResourceTypePicker.svelte +49 -74
  64. package/package/components/RunChart.svelte +74 -89
  65. package/package/components/RunChart.svelte.d.ts +10 -22
  66. package/package/components/RunForm.svelte +2 -2
  67. package/package/components/RunForm.svelte.d.ts +1 -1
  68. package/package/components/RunFormAdvancedPopup.svelte +13 -1
  69. package/package/components/S3FilePicker.svelte +1 -1
  70. package/package/components/SchemaForm.svelte +1 -2
  71. package/package/components/SchemaForm.svelte.d.ts +2 -2
  72. package/package/components/ScriptBuilder.svelte +3 -2
  73. package/package/components/ScriptEditor.svelte +25 -10
  74. package/package/components/ScriptEditor.svelte.d.ts +2 -1
  75. package/package/components/ServiceLogsInner.svelte +1 -1
  76. package/package/components/ShareModal.svelte.d.ts +1 -1
  77. package/package/components/SimpleEditor.svelte +4 -68
  78. package/package/components/StringTypeNarrowing.svelte +5 -10
  79. package/package/components/TemplateEditor.svelte +2 -16
  80. package/package/components/TimeAgo.svelte +1 -1
  81. package/package/components/TimeAgo.svelte.d.ts +1 -0
  82. package/package/components/Toggle.svelte +2 -1
  83. package/package/components/Toggle.svelte.d.ts +2 -1
  84. package/package/components/WorkerRepl.svelte +1 -1
  85. package/package/components/apps/components/display/AppNavbarItem.svelte +2 -1
  86. package/package/components/apps/components/display/table/AppAggridTable.svelte +44 -48
  87. package/package/components/apps/components/display/table/SyncColumnDefs.svelte +101 -19
  88. package/package/components/apps/components/display/table/SyncColumnDefs.svelte.d.ts +5 -2
  89. package/package/components/apps/components/display/table/utils.js +36 -5
  90. package/package/components/apps/components/inputs/currency/CurrencyInput.svelte +10 -5
  91. package/package/components/apps/components/layout/AppModal.svelte +2 -2
  92. package/package/components/apps/editor/AppEditor.svelte +4 -3
  93. package/package/components/apps/editor/AppEditorHeader.svelte +0 -1
  94. package/package/components/apps/editor/GridViewer.svelte.d.ts +11 -4
  95. package/package/components/apps/editor/SettingsPanel.svelte +2 -2
  96. package/package/components/apps/editor/component/ComponentNavigation.svelte +3 -2
  97. package/package/components/apps/editor/componentsPanel/ListItem.svelte +2 -2
  98. package/package/components/apps/editor/inlineScriptsPanel/InlineScriptEditor.svelte +1 -1
  99. package/package/components/apps/editor/inlineScriptsPanel/InlineScriptEditor.svelte.d.ts +1 -1
  100. package/package/components/apps/editor/inlineScriptsPanel/InlineScriptEditorDrawer.svelte.d.ts +1 -1
  101. package/package/components/apps/editor/inlineScriptsPanel/InlineScriptRunnableByPath.svelte +0 -1
  102. package/package/components/apps/editor/inlineScriptsPanel/InlineScriptRunnableByPath.svelte.d.ts +1 -1
  103. package/package/components/apps/editor/settingsPanel/ArrayStaticInputEditor.svelte +29 -4
  104. package/package/components/apps/editor/settingsPanel/GridCondition.svelte +3 -1
  105. package/package/components/apps/editor/settingsPanel/GridNavbar.svelte +3 -1
  106. package/package/components/apps/editor/settingsPanel/GridTab.svelte +3 -1
  107. package/package/components/apps/editor/settingsPanel/InputsSpecEditor.svelte +1 -1
  108. package/package/components/apps/editor/settingsPanel/OneOfInputSpecsEditor.svelte +55 -53
  109. package/package/components/apps/editor/settingsPanel/TableActions.svelte +3 -1
  110. package/package/components/apps/editor/settingsPanel/inputEditor/StaticInputEditor.svelte +13 -5
  111. package/package/components/apps/svelte-grid/Grid.svelte.d.ts +30 -11
  112. package/package/components/assets/JobAssetsViewer.svelte +28 -24
  113. package/package/components/auditLogs/AuditLogsTable.svelte +2 -6
  114. package/package/components/chartjs-wrappers/Chart.svelte.d.ts +14 -7
  115. package/package/components/common/OnChange.svelte.d.ts +11 -4
  116. package/package/components/common/badge/Badge.svelte +9 -2
  117. package/package/components/common/badge/Badge.svelte.d.ts +2 -1
  118. package/package/components/common/button/model.d.ts +1 -1
  119. package/package/components/common/calendarPicker/CalendarPicker.svelte +5 -1
  120. package/package/components/common/calendarPicker/CalendarPicker.svelte.d.ts +5 -4
  121. package/package/components/common/drawer/Disposable.svelte +45 -26
  122. package/package/components/common/drawer/Disposable.svelte.d.ts +12 -44
  123. package/package/components/common/drawer/Drawer.svelte +17 -14
  124. package/package/components/common/drawer/Drawer.svelte.d.ts +1 -0
  125. package/package/components/common/menu/MenuItem.svelte.d.ts +2 -2
  126. package/package/components/common/modal/Modal.svelte.d.ts +1 -1
  127. package/package/components/common/tabs/TabContent.svelte +2 -7
  128. package/package/components/common/tabs/TabContent.svelte.d.ts +5 -27
  129. package/package/components/common/toggleButton-v2/ToggleButtonGroup.svelte +9 -3
  130. package/package/components/common/toggleButton-v2/ToggleButtonGroup.svelte.d.ts +1 -0
  131. package/package/components/common/toggleButton-v2/ToggleButtonMore.svelte +8 -4
  132. package/package/components/common/toggleButton-v2/ToggleButtonMore.svelte.d.ts +1 -0
  133. package/package/components/copilot/MetadataGen.svelte +14 -3
  134. package/package/components/copilot/chat/AIChatInput.svelte +0 -1
  135. package/package/components/copilot/chat/AIChatManager.svelte.js +26 -104
  136. package/package/components/copilot/chat/AssistantMessage.svelte +0 -4
  137. package/package/components/copilot/chat/AvailableContextList.svelte +192 -66
  138. package/package/components/copilot/chat/AvailableContextList.svelte.d.ts +2 -2
  139. package/package/components/copilot/chat/ContextElementBadge.svelte +3 -3
  140. package/package/components/copilot/chat/ContextManager.svelte.js +36 -13
  141. package/package/components/copilot/chat/ContextTextarea.svelte +21 -48
  142. package/package/components/copilot/chat/ToolContentDisplay.svelte +10 -1
  143. package/package/components/copilot/chat/ToolExecutionDisplay.svelte +3 -3
  144. package/package/components/copilot/chat/anthropic.d.ts +15 -0
  145. package/package/components/copilot/chat/anthropic.js +208 -0
  146. package/package/components/copilot/chat/api/apiTools.d.ts +2 -2
  147. package/package/components/copilot/chat/api/apiTools.js +10 -7
  148. package/package/components/copilot/chat/api/core.d.ts +1 -1
  149. package/package/components/copilot/chat/api/core.js +7 -2
  150. package/package/components/copilot/chat/ask/core.d.ts +1 -1
  151. package/package/components/copilot/chat/ask/core.js +7 -2
  152. package/package/components/copilot/chat/context.d.ts +7 -2
  153. package/package/components/copilot/chat/flow/FlowAIChat.svelte +110 -8
  154. package/package/components/copilot/chat/flow/core.d.ts +12 -1
  155. package/package/components/copilot/chat/flow/core.js +133 -5
  156. package/package/components/copilot/chat/flow/uiIntents.d.ts +8 -0
  157. package/package/components/copilot/chat/flow/uiIntents.js +5 -0
  158. package/package/components/copilot/chat/flow/useUiIntent.d.ts +5 -0
  159. package/package/components/copilot/chat/flow/useUiIntent.js +12 -0
  160. package/package/components/copilot/chat/monaco-adapter.d.ts +23 -4
  161. package/package/components/copilot/chat/monaco-adapter.js +55 -16
  162. package/package/components/copilot/chat/navigator/core.d.ts +1 -1
  163. package/package/components/copilot/chat/navigator/core.js +7 -2
  164. package/package/components/copilot/chat/script/CodeDisplay.svelte +10 -111
  165. package/package/components/copilot/chat/script/core.d.ts +5 -4
  166. package/package/components/copilot/chat/script/core.js +134 -21
  167. package/package/components/copilot/chat/shared.d.ts +10 -9
  168. package/package/components/copilot/chat/shared.js +24 -12
  169. package/package/components/copilot/lib.d.ts +29 -8
  170. package/package/components/copilot/lib.js +211 -31
  171. package/package/components/copilot/shared.d.ts +1 -1
  172. package/package/components/copilot/shared.js +16 -10
  173. package/package/components/flows/FlowEditor.svelte +4 -2
  174. package/package/components/flows/FlowEditor.svelte.d.ts +1 -0
  175. package/package/components/flows/FlowModuleIcon.svelte +8 -8
  176. package/package/components/flows/common/FlowCardHeader.svelte +4 -1
  177. package/package/components/flows/content/FlowBranchesAllWrapper.svelte +6 -0
  178. package/package/components/flows/content/FlowBranchesOneWrapper.svelte +6 -0
  179. package/package/components/flows/content/FlowEditorPanel.svelte +2 -1
  180. package/package/components/flows/content/FlowEditorPanel.svelte.d.ts +1 -0
  181. package/package/components/flows/content/FlowInput.svelte +36 -39
  182. package/package/components/flows/content/FlowInput.svelte.d.ts +1 -0
  183. package/package/components/flows/content/FlowLoop.svelte +7 -0
  184. package/package/components/flows/content/FlowModuleComponent.svelte +42 -46
  185. package/package/components/flows/content/FlowModuleEarlyStop.svelte +47 -17
  186. package/package/components/flows/content/FlowModuleScript.svelte +1 -1
  187. package/package/components/flows/content/FlowModuleSleep.svelte +4 -1
  188. package/package/components/flows/content/FlowModuleSuspend.svelte +15 -18
  189. package/package/components/flows/content/FlowModuleTimeout.svelte +50 -10
  190. package/package/components/flows/content/FlowModuleTimeout.svelte.d.ts +1 -0
  191. package/package/components/flows/content/FlowRetries.svelte +108 -3
  192. package/package/components/flows/content/FlowRetries.svelte.d.ts +3 -2
  193. package/package/components/flows/content/FlowWhileLoop.svelte +6 -0
  194. package/package/components/flows/content/ScriptEditorDrawer.svelte +9 -11
  195. package/package/components/flows/dfs.d.ts +1 -1
  196. package/package/components/flows/dfs.js +6 -6
  197. package/package/components/flows/flowInfers.js +15 -42
  198. package/package/components/flows/flowStateUtils.svelte.js +1 -2
  199. package/package/components/flows/flowStore.d.ts +45 -1
  200. package/package/components/flows/flowStore.js +1 -1
  201. package/package/components/flows/map/FlowJobsMenu.svelte +3 -3
  202. package/package/components/flows/map/FlowModuleSchemaItem.svelte +73 -80
  203. package/package/components/flows/map/FlowModuleSchemaItem.svelte.d.ts +1 -1
  204. package/package/components/flows/map/FlowModuleSchemaItemViewer.svelte +1 -1
  205. package/package/components/flows/map/InsertModuleButton.svelte +1 -0
  206. package/package/components/flows/map/InsertModuleInner.svelte +12 -15
  207. package/package/components/flows/map/InsertModuleInner.svelte.d.ts +10 -9
  208. package/package/components/flows/map/MapItem.svelte +8 -4
  209. package/package/components/flows/map/VirtualItem.svelte +1 -1
  210. package/package/components/flows/pickers/TopLevelNode.svelte +1 -1
  211. package/package/components/flows/propPicker/InputPickerInner.svelte +5 -5
  212. package/package/components/flows/propPicker/OutputPickerInner.svelte +143 -118
  213. package/package/components/flows/propPicker/OutputPickerInner.svelte.d.ts +7 -16
  214. package/package/components/flows/{testSteps.svelte.d.ts → stepsInputArgs.svelte.d.ts} +2 -1
  215. package/package/components/flows/{testSteps.svelte.js → stepsInputArgs.svelte.js} +15 -3
  216. package/package/components/flows/types.d.ts +16 -3
  217. package/package/components/flows/utils.js +3 -0
  218. package/package/components/git_sync/DetectionFlow.svelte +15 -17
  219. package/package/components/git_sync/GitSyncContext.svelte.js +1 -1
  220. package/package/components/git_sync/GitSyncRepositoryCard.svelte +0 -1
  221. package/package/components/graph/FlowGraphV2.svelte +1 -1
  222. package/package/components/graph/graphBuilder.svelte.d.ts +5 -1
  223. package/package/components/graph/renderers/edges/BaseEdge.svelte +9 -1
  224. package/package/components/graph/renderers/edges/BaseEdge.svelte.d.ts +4 -1
  225. package/package/components/graph/renderers/nodes/AIToolNode.svelte +4 -4
  226. package/package/components/graph/renderers/nodes/BranchAllStart.svelte +2 -3
  227. package/package/components/graph/renderers/nodes/BranchOneStart.svelte +2 -3
  228. package/package/components/graph/renderers/nodes/NewAIToolNode.svelte +71 -54
  229. package/package/components/graph/renderers/triggers/TriggerButton.svelte.d.ts +1 -1
  230. package/package/components/graph/renderers/triggers/TriggersBadge.svelte +3 -1
  231. package/package/components/graph/renderers/triggers/TriggersWrapper.svelte +34 -24
  232. package/package/components/graph/renderers/triggers/TriggersWrapper.svelte.d.ts +1 -2
  233. package/package/components/home/ItemsList.svelte +17 -13
  234. package/package/components/home/TreeView.svelte +21 -27
  235. package/package/components/home/TreeView.svelte.d.ts +2 -29
  236. package/package/components/home/TreeViewRoot.svelte +11 -23
  237. package/package/components/home/TreeViewRoot.svelte.d.ts +15 -13
  238. package/package/components/icons/GitIcon.svelte +10 -2
  239. package/package/components/icons/GitIcon.svelte.d.ts +1 -0
  240. package/package/components/meltComponents/MeltButton.svelte.d.ts +1 -1
  241. package/package/components/meltComponents/Popover.svelte +23 -3
  242. package/package/components/meltComponents/Popover.svelte.d.ts +2 -1
  243. package/package/components/monacoLanguagesOptions.d.ts +3 -0
  244. package/package/components/monacoLanguagesOptions.js +109 -0
  245. package/package/components/propertyPicker/ObjectViewer.svelte +18 -5
  246. package/package/components/propertyPicker/PropPicker.svelte +1 -1
  247. package/package/components/propertyPicker/utils.js +14 -7
  248. package/package/components/raw_apps/RawAppInlineScriptEditor.svelte +1 -1
  249. package/package/components/runs/JobRunsPreview.svelte +212 -177
  250. package/package/components/runs/JobsLoader.svelte +2 -2
  251. package/package/components/runs/JobsLoader.svelte.d.ts +1 -1
  252. package/package/components/runs/NoWorkerWithTagWarning.svelte +18 -5
  253. package/package/components/runs/RunBadges.svelte +100 -0
  254. package/package/components/runs/RunBadges.svelte.d.ts +12 -0
  255. package/package/components/runs/RunLabels.svelte +86 -0
  256. package/package/components/runs/RunLabels.svelte.d.ts +10 -0
  257. package/package/components/runs/RunOption.svelte +20 -0
  258. package/package/components/runs/RunOption.svelte.d.ts +10 -0
  259. package/package/components/runs/RunRow.svelte +239 -151
  260. package/package/components/runs/RunRow.svelte.d.ts +12 -9
  261. package/package/components/runs/RunsBatchActionsDropdown.svelte +13 -17
  262. package/package/components/runs/RunsBatchActionsDropdown.svelte.d.ts +5 -18
  263. package/package/components/runs/RunsFilter.svelte +369 -243
  264. package/package/components/runs/RunsFilter.svelte.d.ts +2 -0
  265. package/package/components/runs/RunsQueue.svelte +96 -25
  266. package/package/components/runs/RunsQueue.svelte.d.ts +7 -21
  267. package/package/components/runs/RunsTable.svelte +62 -71
  268. package/package/components/runs/RunsTable.svelte.d.ts +2 -1
  269. package/package/components/runs/runs-grid.css +95 -0
  270. package/package/components/schema/AddPropertyV2.svelte +2 -7
  271. package/package/components/schema/AddPropertyV2.svelte.d.ts +3 -20
  272. package/package/components/schema/EditableSchemaDrawer.svelte +121 -127
  273. package/package/components/schema/EditableSchemaDrawer.svelte.d.ts +2 -1
  274. package/package/components/schema/EditableSchemaSdkWrapper.svelte +16 -3
  275. package/package/components/schema/EditableSchemaSdkWrapper.svelte.d.ts +4 -1
  276. package/package/components/schema/EditableSchemaWrapper.svelte +3 -10
  277. package/package/components/schema/FlowPropertyEditor.svelte +195 -236
  278. package/package/components/schema/FlowPropertyEditor.svelte.d.ts +1 -1
  279. package/package/components/schema/PropertyEditor.svelte +33 -35
  280. package/package/components/schema/SchemaFormDND.svelte +11 -10
  281. package/package/components/schema/SchemaFormDND.svelte.d.ts +4 -3
  282. package/package/components/schema/editable_schema_wrapper.d.ts +0 -3
  283. package/package/components/search/GlobalSearchModal.svelte +8 -1
  284. package/package/components/select/DraggableTags.svelte.d.ts +17 -7
  285. package/package/components/select/MultiSelect.svelte.d.ts +21 -11
  286. package/package/components/select/Select.svelte +2 -1
  287. package/package/components/select/Select.svelte.d.ts +25 -13
  288. package/package/components/select/SelectDropdown.svelte.d.ts +14 -7
  289. package/package/components/settings/PremiumInfo.svelte +7 -2
  290. package/package/components/settings/TokenDisplay.svelte +1 -1
  291. package/package/components/sidebar/OperatorMenu.svelte +5 -0
  292. package/package/components/sidebar/SidebarContent.svelte +48 -2
  293. package/package/components/sidebar/WorkspaceMenu.svelte +116 -17
  294. package/package/components/toast.js +6 -3
  295. package/package/components/triggers/AddTriggersButton.svelte +7 -6
  296. package/package/components/triggers/CaptureWrapper.svelte +21 -16
  297. package/package/components/triggers/CaptureWrapper.svelte.d.ts +1 -1
  298. package/package/components/triggers/TriggerLabel.svelte +8 -0
  299. package/package/components/triggers/TriggerTokens.svelte +1 -1
  300. package/package/components/triggers/TriggersEditor.svelte +9 -5
  301. package/package/components/triggers/TriggersTable.svelte +2 -2
  302. package/package/components/triggers/TriggersWrapper.svelte +17 -5
  303. package/package/components/triggers/TriggersWrapper.svelte.d.ts +3 -19
  304. package/package/components/{details/EmailTriggerCaptures.svelte → triggers/email/DefaultEmailCapture.svelte} +5 -5
  305. package/package/components/{details/EmailTriggerCaptures.svelte.d.ts → triggers/email/DefaultEmailCapture.svelte.d.ts} +4 -4
  306. package/package/components/{details/EmailTriggerConfigSection.svelte → triggers/email/DefaultEmailConfigSection.svelte} +24 -14
  307. package/package/components/triggers/email/DefaultEmailConfigSection.svelte.d.ts +13 -0
  308. package/package/components/triggers/email/DefaultEmailPanel.svelte +71 -0
  309. package/package/components/triggers/email/DefaultEmailPanel.svelte.d.ts +11 -0
  310. package/package/components/triggers/email/EmailCapture.svelte +39 -0
  311. package/package/components/triggers/email/EmailCapture.svelte.d.ts +43 -0
  312. package/package/components/triggers/email/EmailTriggerEditor.svelte +20 -0
  313. package/package/components/triggers/email/EmailTriggerEditor.svelte.d.ts +11 -0
  314. package/package/components/triggers/email/EmailTriggerEditorConfigSection.svelte +133 -0
  315. package/package/components/triggers/email/EmailTriggerEditorConfigSection.svelte.d.ts +14 -0
  316. package/package/components/triggers/email/EmailTriggerEditorInner.svelte +335 -0
  317. package/package/components/triggers/email/EmailTriggerEditorInner.svelte.d.ts +22 -0
  318. package/package/components/triggers/email/EmailTriggerPanel.svelte +61 -0
  319. package/package/components/triggers/email/EmailTriggerPanel.svelte.d.ts +14 -0
  320. package/package/components/triggers/email/utils.d.ts +4 -0
  321. package/package/components/triggers/email/utils.js +52 -0
  322. package/package/components/triggers/http/RouteEditorConfigSection.svelte +1 -1
  323. package/package/components/triggers/http/RouteEditorInner.svelte +1 -1
  324. package/package/components/triggers/http/utils.js +1 -1
  325. package/package/components/triggers/nats/NatsTriggerEditorInner.svelte +23 -20
  326. package/package/components/triggers/nats/NatsTriggersConfigSection.svelte +15 -27
  327. package/package/components/triggers/nats/NatsTriggersConfigSection.svelte.d.ts +7 -5
  328. package/package/components/triggers/triggers.svelte.d.ts +1 -0
  329. package/package/components/triggers/triggers.svelte.js +24 -2
  330. package/package/components/triggers/utils.js +19 -5
  331. package/package/components/triggers/websocket/WebsocketTriggerEditorInner.svelte +16 -16
  332. package/package/components/triggers.d.ts +1 -1
  333. package/package/components/triggers.js +2 -0
  334. package/package/components/wizards/AgGridWizard.svelte +85 -80
  335. package/package/components/workspaceSettings/AISettings.svelte +74 -22
  336. package/package/components/workspaceSettings/AISettings.svelte.d.ts +2 -1
  337. package/package/components/workspaceSettings/CreateWorkspace.svelte +395 -0
  338. package/package/components/workspaceSettings/CreateWorkspace.svelte.d.ts +6 -0
  339. package/package/components/workspaceSettings/DucklakeSettings.svelte +3 -1
  340. package/package/components/workspaceSettings/GitSyncFilterSettings.svelte +1 -1
  341. package/package/components/workspaceSettings/StorageSettings.svelte +69 -48
  342. package/package/gen/core/OpenAPI.js +1 -1
  343. package/package/gen/schemas.gen.d.ts +142 -3
  344. package/package/gen/schemas.gen.js +144 -3
  345. package/package/gen/services.gen.d.ts +129 -1
  346. package/package/gen/services.gen.js +267 -1
  347. package/package/gen/types.gen.d.ts +434 -8
  348. package/package/hubPaths.json +6 -2
  349. package/package/infer.js +1 -1
  350. package/package/keyboardChain.d.ts +5 -0
  351. package/package/keyboardChain.js +40 -0
  352. package/package/script_helpers.d.ts +2 -2
  353. package/package/script_helpers.js +2 -0
  354. package/package/services/JobManager.js +2 -2
  355. package/package/stores.d.ts +4 -1
  356. package/package/stores.js +16 -6
  357. package/package/utils/workspaceHierarchy.d.ts +27 -0
  358. package/package/utils/workspaceHierarchy.js +101 -0
  359. package/package/utils.d.ts +6 -3
  360. package/package/utils.js +30 -15
  361. package/package/workspace_settings.js +2 -3
  362. package/package.json +10 -12
  363. package/package/components/DynSelect.svelte.d.ts +0 -11
  364. package/package/components/ModulePreviewResultViewer.svelte.d.ts +0 -28
  365. package/package/components/ObjectTypeNarrowing.svelte +0 -18
  366. package/package/components/ObjectTypeNarrowing.svelte.d.ts +0 -22
  367. package/package/components/details/DetailPageTriggerPanel.svelte +0 -121
  368. package/package/components/details/DetailPageTriggerPanel.svelte.d.ts +0 -20
  369. package/package/components/details/EmailTriggerConfigSection.svelte.d.ts +0 -12
  370. package/package/components/details/EmailTriggerPanel.svelte +0 -76
  371. package/package/components/details/EmailTriggerPanel.svelte.d.ts +0 -26
@@ -1,14 +1,9 @@
1
1
  <script lang="ts">import 'chartjs-adapter-date-fns';
2
2
  import zoomPlugin from 'chartjs-plugin-zoom';
3
3
  import { Chart as ChartJS, CategoryScale, Legend, LineElement, LinearScale, PointElement, TimeScale, Title, Tooltip } from 'chart.js';
4
- import { createEventDispatcher } from 'svelte';
5
4
  import { getDbClockNow } from '../forLater';
6
5
  import { Line } from './chartjs-wrappers/chartJs';
7
- export let extendedJobs = undefined;
8
- export let maxIsNow = false;
9
- export let minTimeSet = undefined;
10
- export let maxTimeSet = undefined;
11
- const dispatch = createEventDispatcher();
6
+ let { extendedJobs = undefined, maxIsNow = false, minTimeSet = undefined, maxTimeSet = undefined, onZoom } = $props();
12
7
  function calculateTimeSeries(extendedJobs) {
13
8
  const timeline = new Map();
14
9
  extendedJobs.jobs.forEach((j) => {
@@ -40,7 +35,7 @@ function calculateTimeSeries(extendedJobs) {
40
35
  }
41
36
  const s = timeline.get(startTime);
42
37
  s.count += 1;
43
- s.id_started.push('unknoww');
38
+ s.id_started.push('unknown');
44
39
  if (j.duration_ms != undefined) {
45
40
  const jc = j;
46
41
  const endTime = startTime + jc.duration_ms;
@@ -79,32 +74,13 @@ function calculateTimeSeries(extendedJobs) {
79
74
  }
80
75
  return result;
81
76
  }
82
- let intervals = undefined;
83
- $: intervals = extendedJobs ? calculateTimeSeries(extendedJobs) : undefined;
84
77
  ChartJS.register(Title, Tooltip, Legend, zoomPlugin, LineElement, CategoryScale, LinearScale, PointElement, TimeScale);
85
- $: data = {
86
- datasets: [
87
- {
88
- borderColor: '#4ade80',
89
- backgroundColor: '#f8717100',
90
- pointRadius: 0,
91
- label: 'running',
92
- showLine: true,
93
- stepped: true,
94
- data: intervals?.map((job) => ({
95
- x: job.time,
96
- y: job.count,
97
- id: job.msg
98
- })) ?? []
99
- }
100
- ]
101
- };
102
78
  const zoomOptions = {
103
79
  pan: {
104
80
  enabled: true,
105
81
  modifierKey: 'ctrl',
106
82
  onPanComplete: ({ chart }) => {
107
- dispatch('zoom', {
83
+ onZoom({
108
84
  min: addSeconds(new Date(chart.scales.x.min), -1),
109
85
  max: addSeconds(new Date(chart.scales.x.max), 1)
110
86
  });
@@ -116,16 +92,13 @@ const zoomOptions = {
116
92
  },
117
93
  mode: 'x',
118
94
  onZoom: ({ chart }) => {
119
- dispatch('zoom', {
95
+ onZoom({
120
96
  min: addSeconds(new Date(chart.scales.x.min), -1),
121
97
  max: addSeconds(new Date(chart.scales.x.max), 1)
122
98
  });
123
99
  }
124
100
  }
125
101
  };
126
- let minTime = addSeconds(new Date(), -300);
127
- let maxTime = getDbClockNow();
128
- $: computeMinMaxTime(intervals, minTimeSet, maxTimeSet);
129
102
  function minJobTime(intervals) {
130
103
  return intervals[0].time;
131
104
  }
@@ -136,31 +109,46 @@ function computeMinMaxTime(intervals, minTimeSet, maxTimeSet) {
136
109
  let minTimeSetDate = minTimeSet ? new Date(minTimeSet) : undefined;
137
110
  let maxTimeSetDate = maxTimeSet ? new Date(maxTimeSet) : undefined;
138
111
  if (minTimeSetDate && maxTimeSetDate) {
139
- minTime = minTimeSetDate;
140
- maxTime = maxTimeSetDate;
141
- return;
112
+ return { min: minTimeSetDate, max: maxTimeSetDate };
142
113
  }
143
114
  if (intervals == undefined || intervals?.length == 0) {
144
- minTime = minTimeSetDate ?? addSeconds(new Date(), -300);
145
- maxTime = maxTimeSetDate ?? getDbClockNow();
146
- return;
115
+ const minTime = minTimeSetDate ?? addSeconds(new Date(), -300);
116
+ const maxTime = maxTimeSetDate ?? getDbClockNow();
117
+ return { min: minTime, max: maxTime };
147
118
  }
148
119
  const maxJob = maxIsNow ? getDbClockNow() : maxJobTime(intervals);
149
120
  const minJob = minJobTime(intervals);
150
121
  const diff = (maxJob.getTime() - minJob.getTime()) / 20000;
151
- minTime = minTimeSetDate ?? addSeconds(minJob, -diff);
152
- if (maxIsNow) {
153
- maxTime = maxTimeSetDate ?? maxJob;
154
- }
155
- else {
156
- maxTime = maxTimeSetDate ?? addSeconds(maxJob, diff);
157
- }
122
+ const minTime = minTimeSetDate ?? addSeconds(minJob, -diff);
123
+ const maxTime = maxIsNow
124
+ ? (maxTimeSetDate ?? maxJob)
125
+ : (maxTimeSetDate ?? addSeconds(maxJob, diff));
126
+ return { min: minTime, max: maxTime };
158
127
  }
159
128
  function addSeconds(date, seconds) {
160
129
  date.setTime(date.getTime() + seconds * 1000);
161
130
  return date;
162
131
  }
163
- $: options = {
132
+ const intervals = $derived(extendedJobs ? calculateTimeSeries(extendedJobs) : undefined);
133
+ let data = $derived({
134
+ datasets: [
135
+ {
136
+ borderColor: '#4ade80',
137
+ backgroundColor: '#f8717100',
138
+ pointRadius: 0,
139
+ label: 'running',
140
+ showLine: true,
141
+ stepped: true,
142
+ data: intervals?.map((job) => ({
143
+ x: job.time,
144
+ y: job.count,
145
+ id: job.msg
146
+ })) ?? []
147
+ }
148
+ ]
149
+ });
150
+ const minMaxTimes = $derived(computeMinMaxTime(intervals, minTimeSet, maxTimeSet));
151
+ let options = $derived({
164
152
  responsive: true,
165
153
  maintainAspectRatio: false,
166
154
  plugins: {
@@ -182,8 +170,8 @@ $: options = {
182
170
  grid: {
183
171
  display: false
184
172
  },
185
- min: minTime,
186
- max: maxTime
173
+ min: minMaxTimes.min,
174
+ max: minMaxTimes.max
187
175
  },
188
176
  y: {
189
177
  grid: {
@@ -204,7 +192,7 @@ $: options = {
204
192
  intersect: false,
205
193
  mode: 'index'
206
194
  }
207
- };
195
+ });
208
196
  </script>
209
197
 
210
198
  <div class="relative max-h-40">
@@ -1,27 +1,15 @@
1
1
  import 'chartjs-adapter-date-fns';
2
2
  import type { ExtendedJobs } from '../gen';
3
- 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> {
4
- new (options: import('svelte').ComponentConstructorOptions<Props>): import('svelte').SvelteComponent<Props, Events, Slots> & {
5
- $$bindings?: Bindings;
6
- } & Exports;
7
- (internal: unknown, props: Props & {
8
- $$events?: Events;
9
- $$slots?: Slots;
10
- }): Exports & {
11
- $set?: any;
12
- $on?: any;
13
- };
14
- z_$$bindings?: Bindings;
15
- }
16
- declare const ConcurrentJobsChart: $$__sveltets_2_IsomorphicComponent<{
3
+ interface Props {
17
4
  extendedJobs?: ExtendedJobs | undefined;
18
5
  maxIsNow?: boolean;
19
6
  minTimeSet?: string | undefined;
20
7
  maxTimeSet?: string | undefined;
21
- }, {
22
- zoom: CustomEvent<any>;
23
- } & {
24
- [evt: string]: CustomEvent<any>;
25
- }, {}, {}, string>;
26
- type ConcurrentJobsChart = InstanceType<typeof ConcurrentJobsChart>;
8
+ onZoom: (zoom: {
9
+ min: Date;
10
+ max: Date;
11
+ }) => void;
12
+ }
13
+ declare const ConcurrentJobsChart: import("svelte").Component<Props, {}, "">;
14
+ type ConcurrentJobsChart = ReturnType<typeof ConcurrentJobsChart>;
27
15
  export default ConcurrentJobsChart;
@@ -31,7 +31,7 @@ declare const CustomPopover: $$__sveltets_2_IsomorphicComponent<$$__sveltets_2_P
31
31
  default: {};
32
32
  overlay: {};
33
33
  }>, {
34
- click: MouseEvent;
34
+ click: PointerEvent;
35
35
  } & {
36
36
  [evt: string]: CustomEvent<any>;
37
37
  }, {
@@ -27,7 +27,7 @@ import { approximateFindPythonRelativePath, isTypescriptRelativePath, parseTypes
27
27
  import Tooltip from './Tooltip.svelte';
28
28
  import { workspaceAIClients } from './copilot/lib';
29
29
  import { Triggers } from './triggers/triggers.svelte';
30
- import { TestSteps } from './flows/testSteps.svelte';
30
+ import { StepsInputArgs } from './flows/stepsInputArgs.svelte';
31
31
  import { ModulesTestStates } from './modulesTest.svelte';
32
32
  let flowCopilotContext = {
33
33
  shouldUpdatePropertyType: writable({}),
@@ -374,7 +374,7 @@ const previewArgsStore = $state({ val: {} });
374
374
  const scriptEditorDrawer = writable(undefined);
375
375
  const moving = writable(undefined);
376
376
  const history = initHistory(flowStore.val);
377
- const testSteps = new TestSteps();
377
+ const stepsInputArgs = new StepsInputArgs();
378
378
  const selectedIdStore = writable('settings-metadata');
379
379
  const triggersCount = writable(undefined);
380
380
  const modulesTestStates = new ModulesTestStates((moduleId) => {
@@ -397,7 +397,7 @@ setContext('FlowEditorContext', {
397
397
  pathStore: writable(''),
398
398
  flowStateStore,
399
399
  flowStore,
400
- testSteps,
400
+ stepsInputArgs,
401
401
  saveDraft: () => { },
402
402
  initialPathStore: writable(''),
403
403
  fakeInitialPath: '',
@@ -708,7 +708,7 @@ const flowHasChanged = $derived(flowPreviewContent?.flowHasChanged());
708
708
  noEditor
709
709
  on:applyArgs={(ev) => {
710
710
  if (ev.detail.kind === 'preprocessor') {
711
- testSteps.setStepArgs('preprocessor', ev.detail.args ?? {})
711
+ stepsInputArgs.setStepArgs('preprocessor', ev.detail.args ?? {})
712
712
  $selectedIdStore = 'preprocessor'
713
713
  } else {
714
714
  previewArgsStore.val = ev.detail.args ?? {}
@@ -720,6 +720,7 @@ const flowHasChanged = $derived(flowPreviewContent?.flowHasChanged());
720
720
  isOwner={flowPreviewContent?.getIsOwner()}
721
721
  {suspendStatus}
722
722
  onOpenDetails={flowPreviewButtons?.openPreview}
723
+ previewOpen={flowPreviewButtons?.getPreviewOpen()}
723
724
  />
724
725
  {/key}
725
726
  </Pane>
@@ -155,7 +155,7 @@ export function setDiff(diff) {
155
155
  <Module.default
156
156
  open={true}
157
157
  automaticLayout
158
- class="h-full"
158
+ className="h-full"
159
159
  defaultLang={lang}
160
160
  defaultModifiedLang={data.current.lang}
161
161
  defaultOriginal={content}
@@ -170,7 +170,7 @@ export function setDiff(diff) {
170
170
  <Module.default
171
171
  open={true}
172
172
  automaticLayout
173
- class="h-full"
173
+ className="h-full"
174
174
  defaultLang="yaml"
175
175
  defaultOriginal={metadata}
176
176
  defaultModified={data.current.metadata}
@@ -1,5 +1,5 @@
1
1
  <script lang="ts">import { BROWSER } from 'esm-env';
2
- import { createEventDispatcher, onMount } from 'svelte';
2
+ import { onMount } from 'svelte';
3
3
  import '@codingame/monaco-vscode-standalone-languages';
4
4
  import '@codingame/monaco-vscode-standalone-json-language-features';
5
5
  import '@codingame/monaco-vscode-standalone-typescript-language-features';
@@ -7,20 +7,12 @@ import { editor as meditor } from 'monaco-editor';
7
7
  import { initializeVscode } from './vscode';
8
8
  import EditorTheme from './EditorTheme.svelte';
9
9
  import Button from './common/button/Button.svelte';
10
+ import { twMerge } from 'tailwind-merge';
10
11
  const SIDE_BY_SIDE_MIN_WIDTH = 700;
11
- export let automaticLayout = true;
12
- export let fixedOverflowWidgets = true;
13
- export let defaultLang = undefined;
14
- export let defaultModifiedLang = undefined;
15
- export let defaultOriginal = undefined;
16
- export let defaultModified = undefined;
17
- export let readOnly = false;
18
- export let showButtons = false;
19
- export let showHistoryButton = true;
20
- let diffEditor;
21
- let diffDivEl = null;
22
- let editorWidth = SIDE_BY_SIDE_MIN_WIDTH;
23
- export let open = false;
12
+ let { open = false, className = '', automaticLayout = true, fixedOverflowWidgets = true, defaultLang, defaultModifiedLang, defaultOriginal = undefined, defaultModified = undefined, readOnly = false, buttons = [], modifiedModel } = $props();
13
+ let diffEditor = $state(undefined);
14
+ let diffDivEl = $state(null);
15
+ let editorWidth = $state(SIDE_BY_SIDE_MIN_WIDTH);
24
16
  async function loadDiffEditor() {
25
17
  await initializeVscode();
26
18
  if (!diffDivEl) {
@@ -40,23 +32,17 @@ async function loadDiffEditor() {
40
32
  lineNumbersMinChars: 2,
41
33
  scrollbar: { alwaysConsumeMouseWheel: false }
42
34
  });
43
- if (defaultOriginal !== undefined &&
44
- defaultModified !== undefined &&
45
- defaultLang !== undefined) {
35
+ if (defaultLang !== undefined) {
46
36
  setupModel(defaultLang, defaultOriginal, defaultModified, defaultModifiedLang);
47
37
  }
48
38
  }
49
39
  export function setupModel(lang, original, modified, modifiedLang) {
40
+ const o = meditor.createModel(original ?? '', lang);
41
+ const m = modifiedModel ?? meditor.createModel(modified ?? '', modifiedLang ?? lang);
50
42
  diffEditor?.setModel({
51
- original: meditor.createModel('', lang),
52
- modified: meditor.createModel('', modifiedLang ?? lang)
43
+ original: o,
44
+ modified: m
53
45
  });
54
- if (original) {
55
- setOriginal(original);
56
- }
57
- if (modified) {
58
- setModified(modified);
59
- }
60
46
  }
61
47
  export function setOriginal(code) {
62
48
  diffEditor?.getModel()?.original?.setValue(code);
@@ -69,6 +55,15 @@ export function setModified(code) {
69
55
  diffEditor?.getModel()?.modified?.setValue(code);
70
56
  defaultModified = code;
71
57
  }
58
+ export function setModifiedModel(model) {
59
+ const curr = diffEditor?.getModel();
60
+ if (!curr)
61
+ return;
62
+ diffEditor?.setModel({
63
+ original: curr.original,
64
+ modified: model
65
+ });
66
+ }
72
67
  export function getModified() {
73
68
  return diffEditor?.getModel()?.modified.getValue() ?? '';
74
69
  }
@@ -81,8 +76,14 @@ export function hide() {
81
76
  function onWidthChange(editorWidth) {
82
77
  diffEditor?.updateOptions({ renderSideBySide: editorWidth >= SIDE_BY_SIDE_MIN_WIDTH });
83
78
  }
84
- $: onWidthChange(editorWidth);
85
- $: open && diffDivEl && loadDiffEditor();
79
+ $effect(() => {
80
+ if (open && diffDivEl) {
81
+ loadDiffEditor();
82
+ }
83
+ });
84
+ $effect(() => {
85
+ onWidthChange(editorWidth);
86
+ });
86
87
  onMount(() => {
87
88
  if (BROWSER) {
88
89
  return () => {
@@ -90,28 +91,24 @@ onMount(() => {
90
91
  };
91
92
  }
92
93
  });
93
- const dispatch = createEventDispatcher();
94
94
  </script>
95
95
 
96
96
  {#if open}
97
97
  <EditorTheme />
98
98
  <div
99
99
  bind:this={diffDivEl}
100
- class="{$$props.class} editor nonmain-editor"
100
+ class={twMerge('editor nonmain-editor', className)}
101
101
  bind:clientWidth={editorWidth}
102
102
  ></div>
103
- {#if showButtons}
103
+ {#if buttons.length > 0}
104
104
  <div
105
105
  class="absolute flex flex-row gap-2 bottom-10 left-1/2 z-10 -translate-x-1/2 rounded-md p-1 w-full justify-center"
106
106
  >
107
- {#if showHistoryButton}
108
- <Button on:click={() => dispatch('seeHistory')} variant="contained" size="sm"
109
- >See changes history</Button
107
+ {#each buttons as button}
108
+ <Button on:click={button.onClick} variant="contained" size="sm" color={button.color}
109
+ >{button.text}</Button
110
110
  >
111
- {/if}
112
- <Button on:click={() => dispatch('hideDiffMode')} variant="contained" size="sm" color="red"
113
- >Quit diff mode</Button
114
- >
111
+ {/each}
115
112
  </div>
116
113
  {/if}
117
114
  {/if}
@@ -1,51 +1,35 @@
1
1
  import '@codingame/monaco-vscode-standalone-languages';
2
2
  import '@codingame/monaco-vscode-standalone-json-language-features';
3
3
  import '@codingame/monaco-vscode-standalone-typescript-language-features';
4
- 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> {
5
- new (options: import('svelte').ComponentConstructorOptions<Props>): import('svelte').SvelteComponent<Props, Events, Slots> & {
6
- $$bindings?: Bindings;
7
- } & Exports;
8
- (internal: unknown, props: Props & {
9
- $$events?: Events;
10
- $$slots?: Slots;
11
- }): Exports & {
12
- $set?: any;
13
- $on?: any;
14
- };
15
- z_$$bindings?: Bindings;
4
+ import { editor as meditor } from 'monaco-editor';
5
+ import type { ButtonType } from './common';
6
+ export interface ButtonProp {
7
+ text: string;
8
+ color?: ButtonType.Color;
9
+ onClick: () => void;
16
10
  }
17
- declare const DiffEditor: $$__sveltets_2_IsomorphicComponent<{
18
- [x: string]: any;
19
- automaticLayout?: boolean | undefined;
20
- fixedOverflowWidgets?: boolean | undefined;
21
- defaultLang?: string | undefined | undefined;
22
- defaultModifiedLang?: string | undefined | undefined;
23
- defaultOriginal?: string | undefined | undefined;
24
- defaultModified?: string | undefined | undefined;
25
- readOnly?: boolean | undefined;
26
- showButtons?: boolean | undefined;
27
- showHistoryButton?: boolean | undefined;
28
- open?: boolean | undefined;
29
- setupModel?: ((lang: string, original?: string, modified?: string, modifiedLang?: string) => void) | undefined;
30
- setOriginal?: ((code: string) => void) | undefined;
31
- getOriginal?: (() => string) | undefined;
32
- setModified?: ((code: string) => void) | undefined;
33
- getModified?: (() => string) | undefined;
34
- show?: (() => void) | undefined;
35
- hide?: (() => void) | undefined;
36
- }, {
37
- hideDiffMode: CustomEvent<void>;
38
- seeHistory: CustomEvent<void>;
39
- } & {
40
- [evt: string]: CustomEvent<any>;
41
- }, {}, {
11
+ interface Props {
12
+ open?: boolean;
13
+ className?: string;
14
+ automaticLayout?: boolean;
15
+ fixedOverflowWidgets?: boolean;
16
+ defaultLang?: string;
17
+ defaultModifiedLang?: string;
18
+ defaultOriginal?: string;
19
+ defaultModified?: string;
20
+ readOnly?: boolean;
21
+ buttons?: ButtonProp[];
22
+ modifiedModel?: meditor.ITextModel;
23
+ }
24
+ declare const DiffEditor: import("svelte").Component<Props, {
42
25
  setupModel: (lang: string, original?: string, modified?: string, modifiedLang?: string) => void;
43
26
  setOriginal: (code: string) => void;
44
27
  getOriginal: () => string;
45
28
  setModified: (code: string) => void;
29
+ setModifiedModel: (model: meditor.ITextModel) => void;
46
30
  getModified: () => string;
47
31
  show: () => void;
48
32
  hide: () => void;
49
- }, string>;
50
- type DiffEditor = InstanceType<typeof DiffEditor>;
33
+ }, "">;
34
+ type DiffEditor = ReturnType<typeof DiffEditor>;
51
35
  export default DiffEditor;
@@ -0,0 +1,26 @@
1
+ <script lang="ts">import DropdownV2 from './DropdownV2.svelte';
2
+ import { ChevronDown } from 'lucide-svelte';
3
+ import { twMerge } from 'tailwind-merge';
4
+ let { items = [], extraLabel, selected, selectedDisplayName, btnClasses } = $props();
5
+ const filteredItems = $derived(items.filter((item) => item.id !== selected));
6
+ </script>
7
+
8
+ <DropdownV2 items={filteredItems}>
9
+ {#snippet buttonReplacement()}
10
+ <div
11
+ class={twMerge(
12
+ 'p-2 h-8 flex flex-row items-center gap-2 border hover:bg-surface-hover cursor-pointer rounded-md',
13
+ btnClasses
14
+ )}
15
+ >
16
+ <div class="flex flex-row items-center gap-1 pr-2 justify-between w-full">
17
+ <span class="text-xs whitespace-nowrap">
18
+ {selectedDisplayName ?? items.find((item) => item.id === selected)?.displayName ?? ''}
19
+ </span>
20
+
21
+ {@render extraLabel?.()}
22
+ </div>
23
+ <ChevronDown size={12} />
24
+ </div>
25
+ {/snippet}
26
+ </DropdownV2>
@@ -0,0 +1,11 @@
1
+ import type { Item } from '../utils';
2
+ interface Props {
3
+ items?: Item[];
4
+ extraLabel?: import('svelte').Snippet;
5
+ selected: string;
6
+ selectedDisplayName?: string;
7
+ btnClasses?: string;
8
+ }
9
+ declare const DropdownSelect: import("svelte").Component<Props, {}, "">;
10
+ type DropdownSelect = ReturnType<typeof DropdownSelect>;
11
+ export default DropdownSelect;
@@ -36,7 +36,7 @@ computeItems();
36
36
  aiDescription={item.displayName}
37
37
  >
38
38
  {#if item.icon}
39
- <item.icon size={14} color={item.iconColor} />
39
+ <item.icon size={14} color={item.iconColor} class="shrink-0" />
40
40
  {/if}
41
41
  <p title={item.displayName} class="truncate grow min-w-0 whitespace-nowrap text-left">
42
42
  {item.displayName}
@@ -17,12 +17,20 @@ function validSelectObject(x) {
17
17
  <script lang="ts">import { usePromise } from '../svelte5Utils.svelte';
18
18
  import JobLoader, {} from './JobLoader.svelte';
19
19
  import Select from './select/Select.svelte';
20
+ import MultiSelect from './select/MultiSelect.svelte';
21
+ import { safeSelectItems } from './select/utils.svelte';
20
22
  import Tooltip from './Tooltip.svelte';
21
23
  import { Loader2 } from 'lucide-svelte';
22
24
  import {} from '../utils';
23
25
  import { deepEqual } from 'fast-equals';
24
26
  import { untrack } from 'svelte';
25
- let { value = $bindable(), helperScript, entrypoint, otherArgs: otherArgs } = $props();
27
+ let { value = $bindable(), helperScript, format, otherArgs: otherArgs } = $props();
28
+ const [inputType, entrypoint] = format.includes('-') ? format.split('-', 2) : [format, ''];
29
+ const isMultiple = inputType === 'dynmultiselect';
30
+ const isSelect = inputType === 'dynselect' || inputType === 'dynmultiselect';
31
+ if (isMultiple && value === undefined) {
32
+ value = [];
33
+ }
26
34
  let resultJobLoader = $state();
27
35
  let _items = usePromise(getItemsFromOptions, { clearValueOnRefresh: false });
28
36
  let items = $derived(_items.value);
@@ -34,7 +42,7 @@ async function getItemsFromOptions() {
34
42
  doneResult({ result }) {
35
43
  if (!result || !Array.isArray(result)) {
36
44
  if (result?.error?.message && result?.error?.name) {
37
- reject('Error in DynSelect function execution: ' +
45
+ reject(`Error in ${inputType} function execution: ` +
38
46
  result?.error?.name +
39
47
  ' - ' +
40
48
  result?.error?.message);
@@ -67,9 +75,18 @@ async function getItemsFromOptions() {
67
75
  }
68
76
  let neverLoaded = $state(true);
69
77
  $effect(() => {
70
- if (_items.value && value) {
71
- if (!_items.value.find((x) => x.value == value)) {
72
- value = undefined;
78
+ if (_items.value && value !== undefined && isSelect) {
79
+ if (isMultiple && Array.isArray(value)) {
80
+ const availableValues = new Set(_items.value.map((x) => x.value));
81
+ const filteredValue = value.filter((v) => availableValues.has(v));
82
+ if (filteredValue.length !== value.length) {
83
+ value = filteredValue;
84
+ }
85
+ }
86
+ else if (!isMultiple && value !== undefined) {
87
+ if (!_items.value.find((x) => x.value == value)) {
88
+ value = undefined;
89
+ }
73
90
  }
74
91
  }
75
92
  });
@@ -98,15 +115,30 @@ $effect(() => {
98
115
  <JobLoader onlyResult bind:this={resultJobLoader} />
99
116
 
100
117
  <div class="w-full flex-col flex">
101
- <Select
102
- bind:value
103
- bind:open
104
- {items}
105
- bind:filterText
106
- loading={!open && _items.status === 'loading'}
107
- clearable
108
- noItemsMsg={_items.status === 'loading' ? 'Loading...' : 'No items found'}
109
- />
118
+ {#if inputType === 'dynmultiselect'}
119
+ <MultiSelect
120
+ bind:value
121
+ items={safeSelectItems(items || [])}
122
+ placeholder="Select items"
123
+ noItemsMsg={_items.status === 'loading' ? 'Loading...' : 'No items found'}
124
+ disabled={_items.status === 'loading'}
125
+ />
126
+ {:else if inputType === 'dynselect'}
127
+ <Select
128
+ bind:value
129
+ bind:open
130
+ {items}
131
+ bind:filterText
132
+ loading={!open && _items.status === 'loading'}
133
+ clearable
134
+ noItemsMsg={_items.status === 'loading' ? 'Loading...' : 'No items found'}
135
+ />
136
+ {:else}
137
+ <!-- Future dynamic input types can be added here -->
138
+ <div class="text-red-400 text-sm">
139
+ Unsupported dynamic input type: {inputType}
140
+ </div>
141
+ {/if}
110
142
  {#if _items.error}
111
143
  <div class="text-red-400 text-2xs">
112
144
  error: <Tooltip>{_items.error}</Tooltip>
@@ -116,7 +148,7 @@ $effect(() => {
116
148
  {:else}
117
149
  <div class="flex flex-col gap-1 w-full">
118
150
  <div class="text-xs text-tertiary"
119
- >Dynamic Select is not available in this mode, write value directly</div
151
+ >Dynamic input ({inputType}) is not available in this mode, write value directly</div
120
152
  >
121
153
  {#await import('./JsonEditor.svelte')}
122
154
  <Loader2 class="animate-spin" />
@@ -0,0 +1,11 @@
1
+ import { type DynamicInput } from '../utils';
2
+ interface Props {
3
+ value?: any;
4
+ helperScript?: DynamicInput.HelperScript;
5
+ format: string;
6
+ otherArgs?: Record<string, any>;
7
+ name: string;
8
+ }
9
+ declare const DynamicInput: import("svelte").Component<Props, {}, "value">;
10
+ type DynamicInput = ReturnType<typeof DynamicInput>;
11
+ export default DynamicInput;