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
@@ -2,7 +2,7 @@
2
2
  import ToggleButton from '../common/toggleButton-v2/ToggleButton.svelte';
3
3
  import ToggleButtonGroup from '../common/toggleButton-v2/ToggleButtonGroup.svelte';
4
4
  import Tooltip from '../Tooltip.svelte';
5
- import { AlertCircle, CheckCircle2, Filter, Hourglass, PlayCircle, X } from 'lucide-svelte';
5
+ import { CircleAlert, CircleCheck, Hourglass, ListFilterPlus, CirclePlay, X } from 'lucide-svelte';
6
6
  import JsonEditor from '../JsonEditor.svelte';
7
7
  import Toggle from '../Toggle.svelte';
8
8
  import Label from '../Label.svelte';
@@ -13,7 +13,10 @@ import ToggleButtonMore from '../common/toggleButton-v2/ToggleButtonMore.svelte'
13
13
  import Popover from '../meltComponents/Popover.svelte';
14
14
  import Select from '../select/Select.svelte';
15
15
  import { safeSelectItems } from '../select/utils.svelte';
16
- let { path = $bindable(null), label = $bindable(null), concurrencyKey = $bindable(null), worker = $bindable(null), tag = $bindable(null), success = $bindable(undefined), isSkipped = $bindable(undefined), argFilter = $bindable(), argError = $bindable(), resultFilter = $bindable(), resultError = $bindable(), jobKindsCat = $bindable(), user = $bindable(null), folder = $bindable(null), mobile = false, schedulePath = $bindable(), allowWildcards = $bindable(false), paths = [], usernames = [], folders = [], allWorkspaces = $bindable(false), filterBy = $bindable('path') } = $props();
16
+ import RunOption from './RunOption.svelte';
17
+ import DropdownSelect from '../DropdownSelect.svelte';
18
+ import TooltipV2 from '../meltComponents/Tooltip.svelte';
19
+ let { path = $bindable(null), label = $bindable(null), concurrencyKey = $bindable(null), worker = $bindable(null), tag = $bindable(null), success = $bindable(undefined), isSkipped = $bindable(undefined), argFilter = $bindable(), argError = $bindable(), resultFilter = $bindable(), resultError = $bindable(), jobKindsCat = $bindable(), user = $bindable(null), folder = $bindable(null), mobile = false, schedulePath = $bindable(), allowWildcards = $bindable(false), paths = [], usernames = [], folders = [], allWorkspaces = $bindable(false), filterBy = $bindable('path'), small = false, calendarSmall = false } = $props();
17
20
  let copyArgFilter = $state(argFilter);
18
21
  let copyResultFilter = $state(resultFilter);
19
22
  const dispatch = createEventDispatcher();
@@ -58,106 +61,152 @@ $effect(() => {
58
61
  (path || user || folder || label || worker || concurrencyKey || tag || schedulePath) &&
59
62
  untrack(() => autosetFilter());
60
63
  });
64
+ function resetFilter() {
65
+ path = null;
66
+ user = null;
67
+ folder = null;
68
+ label = null;
69
+ concurrencyKey = null;
70
+ tag = null;
71
+ schedulePath = undefined;
72
+ worker = null;
73
+ }
61
74
  </script>
62
75
 
63
- <div class="flex gap-4">
64
- {#if !mobile}
65
- <div class="flex gap-2">
66
- {#if $workspaceStore == 'admins'}
67
- <div class="relative">
68
- <span class="text-xs absolute -top-4">Workspaces</span>
69
- <ToggleButtonGroup
70
- bind:selected={allWorkspacesValue}
71
- on:selected={({ detail }) => (allWorkspaces = detail === 'all')}
72
- >
73
- {#snippet children({ item })}
74
- <ToggleButton value={'admins'} label="Admins" {item} />
75
- <ToggleButton value={'all'} label="All" {item} />
76
- {/snippet}
77
- </ToggleButtonGroup>
78
- </div>
79
- {/if}
76
+ {#snippet runsTooltip()}
77
+ <TooltipV2 placement="right">
78
+ {#snippet text()}
79
+ 'Runs are jobs that have no parent jobs (flows are jobs that are parent of the jobs they
80
+ start), they have been triggered through the UI, a schedule or webhook'
81
+ {/snippet}
82
+ </TooltipV2>
83
+ {/snippet}
84
+ {#snippet previewsTooltip()}
85
+ <TooltipV2 placement="right">
86
+ {#snippet text()}
87
+ 'Previews are jobs that have been started in the editor as "Tests"'
88
+ {/snippet}
89
+ </TooltipV2>
90
+ {/snippet}
91
+ {#snippet dependenciesTooltip()}
92
+ <TooltipV2 placement="right">
93
+ {#snippet text()}
94
+ 'Deploying a script, flow or an app launch a dependency job that creates and then attaches the
95
+ lockfile to the deployed item. This mechanism ensures that logic is always executed with the
96
+ exact same direct and indirect dependencies.'
97
+ {/snippet}
98
+ </TooltipV2>
99
+ {/snippet}
100
+ {#snippet syncTooltip()}
101
+ <TooltipV2 placement="right">
102
+ {#snippet text()}
103
+ 'Sync jobs that are triggered on every script deployment to sync the workspace with the Git
104
+ repository configured in the workspace settings'
105
+ {/snippet}
106
+ </TooltipV2>
107
+ {/snippet}
80
108
 
81
- <div class="relative">
82
- <span class="text-xs absolute -top-4">Filter by</span>
83
- <ToggleButtonGroup
84
- bind:selected={filterBy}
85
- on:selected={(e) => {
86
- if (e.detail != filterBy) {
87
- path = null
88
- user = null
89
- folder = null
90
- label = null
91
- concurrencyKey = null
92
- tag = null
93
- schedulePath = undefined
109
+ {#if !mobile}
110
+ {#if $workspaceStore == 'admins'}
111
+ <RunOption label="Workspaces" for="workspaces">
112
+ <ToggleButtonGroup
113
+ bind:selected={allWorkspacesValue}
114
+ on:selected={({ detail }) => (allWorkspaces = detail === 'all')}
115
+ >
116
+ {#snippet children({ item })}
117
+ <ToggleButton value={'admins'} label="Admins" {item} />
118
+ <ToggleButton value={'all'} label="All" {item} />
119
+ {/snippet}
120
+ </ToggleButtonGroup>
121
+ </RunOption>
122
+ {/if}
123
+ <!-- Filter by -->
124
+ <div class="flex flex-row gap-1">
125
+ <RunOption label="Filter by" for="filter-by">
126
+ <ToggleButtonGroup
127
+ bind:selected={filterBy}
128
+ on:selected={(e) => {
129
+ if (e.detail != filterBy) {
130
+ resetFilter()
131
+ }
132
+ }}
133
+ >
134
+ {#snippet children({ item })}
135
+ <ToggleButton value="path" label="Path" {item} />
136
+ <ToggleButton value="user" label="User" {item} />
137
+ <ToggleButton value="folder" label="Folder" {item} />
138
+ <ToggleButtonMore
139
+ togglableItems={[
140
+ { label: 'Schedule path', value: 'schedulePath' },
141
+ { label: 'Concurrency key', value: 'concurrencyKey' },
142
+ { label: 'Label', value: 'label' },
143
+ { label: 'Tag', value: 'tag' },
144
+ { label: 'Worker', value: 'worker' }
145
+ ]}
146
+ {item}
147
+ bind:selected={
148
+ () => filterBy,
149
+ (v) => {
150
+ resetFilter()
151
+ filterBy = v
152
+ }
94
153
  }
95
- }}
96
- >
97
- {#snippet children({ item })}
98
- <ToggleButton value="path" label="Path" {item} />
99
- <ToggleButton value="user" label="User" {item} />
100
- <ToggleButton value="folder" label="Folder" {item} />
101
- <ToggleButtonMore
102
- togglableItems={[
103
- { label: 'Schedule path', value: 'schedulePath' },
104
- { label: 'Concurrency key', value: 'concurrencyKey' },
105
- { label: 'Label', value: 'label' },
106
- { label: 'Tag', value: 'tag' },
107
- { label: 'Worker', value: 'worker' }
108
- ]}
109
- {item}
110
- bind:selected={filterBy}
111
- />
112
- {/snippet}
113
- </ToggleButtonGroup>
114
- </div>
115
-
116
- {#if filterBy == 'user'}
117
- {#key user}
118
- <div class="relative">
119
- <span class="text-xs absolute -top-4">User</span>
120
- <Select
121
- items={safeSelectItems(usernames)}
122
- bind:value={() => user ?? undefined, (v) => (user = v ?? null)}
123
- clearable
124
- onClear={() => ((user = null), dispatch('reset'))}
125
- inputClass="!h-[32px]"
126
- onCreateItem={(item) => (usernames.push(item), (user = item))}
127
- createText="Press enter to use this value"
128
- />
129
- </div>
130
- {/key}
131
- {:else if filterBy == 'folder'}
154
+ />
155
+ {/snippet}
156
+ </ToggleButtonGroup>
157
+ </RunOption>
158
+
159
+ {#if filterBy == 'user'}
160
+ {#key user}
161
+ <RunOption label="User" for="user">
162
+ <Select
163
+ items={safeSelectItems(usernames)}
164
+ bind:value={() => user ?? undefined, (v) => (user = v ?? null)}
165
+ clearable
166
+ onClear={() => ((user = null), dispatch('reset'))}
167
+ inputClass="!h-[32px] min-w-36"
168
+ onCreateItem={(item) => (usernames.push(item), (user = item))}
169
+ createText="Press enter to use this value"
170
+ id="user"
171
+ />
172
+ </RunOption>
173
+ {/key}
174
+ {:else if filterBy == 'folder'}
175
+ <RunOption label="Folder" for="folder">
132
176
  {#key folder}
133
- <div class="relative">
134
- <span class="text-xs absolute -top-4">Folder</span>
135
-
136
- <Select
137
- items={safeSelectItems(folders)}
138
- bind:value={() => folder ?? undefined, (v) => (folder = v ?? null)}
139
- clearable
140
- onClear={() => ((folder = null), dispatch('reset'))}
141
- inputClass="!h-[32px]"
142
- />
143
- </div>
177
+ <Select
178
+ items={safeSelectItems(folders)}
179
+ bind:value={() => folder ?? undefined, (v) => (folder = v ?? null)}
180
+ clearable
181
+ onClear={() => ((folder = null), dispatch('reset'))}
182
+ inputClass="!h-[32px] min-w-36"
183
+ id="folder"
184
+ />
144
185
  {/key}
145
- {:else if filterBy === 'path'}
186
+ </RunOption>
187
+ {:else if filterBy === 'path'}
188
+ <RunOption label="Path" for="path">
146
189
  {#key path}
147
- <div class="relative">
148
- <span class="text-xs absolute -top-4">Path</span>
149
- <Select
150
- items={safeSelectItems(paths)}
151
- bind:value={() => path ?? undefined, (v) => (path = v ?? null)}
152
- clearable
153
- onClear={() => ((path = null), dispatch('reset'))}
154
- inputClass="!h-[32px]"
155
- onCreateItem={(item) => (paths.push(item), (path = item))}
156
- createText="Press enter to use this value"
157
- />
158
- </div>
190
+ <Select
191
+ items={safeSelectItems(paths)}
192
+ bind:value={() => path ?? undefined, (v) => (path = v ?? null)}
193
+ clearable
194
+ onClear={() => ((path = null), dispatch('reset'))}
195
+ inputClass="!h-[32px] min-w-36"
196
+ onCreateItem={(item) => (paths.push(item), (path = item))}
197
+ createText="Press enter to use this value"
198
+ id="path"
199
+ />
159
200
  {/key}
160
- {:else if filterBy === 'label'}
201
+ </RunOption>
202
+ {:else if filterBy === 'label'}
203
+ <RunOption label="Label" for="label">
204
+ {#snippet tooltip()}
205
+ <a
206
+ href="https://www.windmill.dev/docs/core_concepts/monitor_past_and_future_runs#jobs-labels"
207
+ target="_blank">Job Labels</a
208
+ > are string values in the array at the result field 'wm_labels' to easily filter them.
209
+ {/snippet}
161
210
  {#key label}
162
211
  <div class="relative">
163
212
  {#if label}
@@ -172,20 +221,11 @@ $effect(() => {
172
221
  </button>
173
222
  {/if}
174
223
 
175
- <span class="text-xs absolute -top-4"
176
- >Label <Tooltip
177
- ><a
178
- href="https://www.windmill.dev/docs/core_concepts/monitor_past_and_future_runs#jobs-labels"
179
- target="_blank">Job Labels</a
180
- > are string values in the array at the result field 'wm_labels' to easily filter them.</Tooltip
181
- ></span
182
- >
183
-
184
224
  <!-- svelte-ignore a11y_autofocus -->
185
225
  <input
186
226
  autofocus
187
227
  type="text"
188
- class="!h-[32px] py-1 !text-xs !w-64"
228
+ class="!h-[32px] py-1 !text-xs min-w-36"
189
229
  bind:value={displayedLabel}
190
230
  onkeydown={(e) => {
191
231
  if (labelTimeout) {
@@ -197,58 +237,59 @@ $effect(() => {
197
237
  }, 1000)
198
238
  }}
199
239
  />
200
- <div class="absolute top-10">
240
+ <div class="absolute -top-4 right-0">
201
241
  <Toggle
202
242
  bind:checked={allowWildcards}
203
- size="xs"
204
- options={{ right: 'allow wildcards (*)' }}
243
+ size="2xs"
244
+ options={{ right: '(*)', title: 'allow wildcards (*)' }}
205
245
  ></Toggle>
206
246
  </div>
207
247
  </div>
208
248
  {/key}
209
- {:else if filterBy === 'concurrencyKey'}
249
+ </RunOption>
250
+ {:else if filterBy === 'concurrencyKey'}
251
+ <RunOption label="Concurrency Key" for="concurrencyKey">
252
+ {#snippet tooltip()}
253
+ For concurrency limited jobs, the concurrency key defines a group of jobs that share the
254
+ same limits.
255
+ {#if !$enterpriseLicense}
256
+ Concurrency limits are an EE feature.
257
+ {/if}
258
+ {/snippet}
210
259
  {#key concurrencyKey}
211
- <div class="relative">
212
- {#if concurrencyKey}
213
- <button
214
- class="absolute top-2 right-2 z-50"
215
- onclick={() => {
216
- concurrencyKey = null
217
- dispatch('reset')
218
- }}
219
- >
220
- <X size={14} />
221
- </button>
222
- {/if}
223
- <span class="text-xs absolute -top-4"
224
- >Concurrency Key <Tooltip>
225
- For concurrency limited jobs, the concurrency key defines a group of jobs that share
226
- the same limits.
227
- {#if !$enterpriseLicense}
228
- Concurrency limits are an EE feature.
229
- {/if}
230
- </Tooltip></span
260
+ {#if concurrencyKey}
261
+ <button
262
+ class="absolute top-2 right-2 z-50"
263
+ onclick={() => {
264
+ concurrencyKey = null
265
+ dispatch('reset')
266
+ }}
231
267
  >
268
+ <X size={14} />
269
+ </button>
270
+ {/if}
232
271
 
233
- <!-- svelte-ignore a11y_autofocus -->
234
- <input
235
- autofocus
236
- type="text"
237
- class="!h-[32px] py-1 !text-xs !w-64"
238
- bind:value={displayedConcurrencyKey}
239
- onkeydown={(e) => {
240
- if (concurrencyKeyTimeout) {
241
- clearTimeout(concurrencyKeyTimeout)
242
- }
243
-
244
- concurrencyKeyTimeout = setTimeout(() => {
245
- concurrencyKey = displayedConcurrencyKey
246
- }, 1000)
247
- }}
248
- />
249
- </div>
272
+ <!-- svelte-ignore a11y_autofocus -->
273
+ <input
274
+ autofocus
275
+ type="text"
276
+ class="!h-[32px] py-1 !text-xs min-w-36"
277
+ bind:value={displayedConcurrencyKey}
278
+ onkeydown={(e) => {
279
+ if (concurrencyKeyTimeout) {
280
+ clearTimeout(concurrencyKeyTimeout)
281
+ }
282
+
283
+ concurrencyKeyTimeout = setTimeout(() => {
284
+ concurrencyKey = displayedConcurrencyKey
285
+ }, 1000)
286
+ }}
287
+ id="concurrencyKey"
288
+ />
250
289
  {/key}
251
- {:else if filterBy === 'tag'}
290
+ </RunOption>
291
+ {:else if filterBy === 'tag'}
292
+ <RunOption label="Tag" for="tag">
252
293
  {#key tag}
253
294
  <div class="relative">
254
295
  {#if tag}
@@ -262,13 +303,12 @@ $effect(() => {
262
303
  <X size={14} />
263
304
  </button>
264
305
  {/if}
265
- <span class="text-xs absolute -top-4"> Tag </span>
266
306
 
267
307
  <!-- svelte-ignore a11y_autofocus -->
268
308
  <input
269
309
  autofocus
270
310
  type="text"
271
- class="!h-[32px] py-1 !text-xs !w-64"
311
+ class="!h-[32px] py-1 !text-xs min-w-36"
272
312
  bind:value={displayedTag}
273
313
  onkeydown={(e) => {
274
314
  if (tagTimeout) {
@@ -279,17 +319,20 @@ $effect(() => {
279
319
  tag = displayedTag
280
320
  }, 1000)
281
321
  }}
322
+ id="tag"
282
323
  />
283
- <div class="absolute top-10">
324
+ <div class="absolute -top-4 right-0">
284
325
  <Toggle
285
326
  bind:checked={allowWildcards}
286
- size="xs"
287
- options={{ right: 'allow wildcards (*)' }}
327
+ size="2xs"
328
+ options={{ right: 'wildcards (*)', title: 'allow wildcards (*)' }}
288
329
  ></Toggle>
289
330
  </div>
290
331
  </div>
291
332
  {/key}
292
- {:else if filterBy === 'schedulePath'}
333
+ </RunOption>
334
+ {:else if filterBy === 'schedulePath'}
335
+ <RunOption label="Schedule Path" for="schedulePath">
293
336
  {#key tag}
294
337
  <div class="relative">
295
338
  {#if tag}
@@ -303,13 +346,12 @@ $effect(() => {
303
346
  <X size={14} />
304
347
  </button>
305
348
  {/if}
306
- <span class="text-xs absolute -top-4"> Schedule Path </span>
307
349
 
308
350
  <!-- svelte-ignore a11y_autofocus -->
309
351
  <input
310
352
  autofocus
311
353
  type="text"
312
- class="!h-[32px] py-1 !text-xs !w-64"
354
+ class="!h-[32px] py-1 !text-xs min-w-36"
313
355
  bind:value={displayedSchedule}
314
356
  onkeydown={(e) => {
315
357
  if (tagTimeout) {
@@ -320,10 +362,13 @@ $effect(() => {
320
362
  schedulePath = displayedSchedule
321
363
  }, 1000)
322
364
  }}
365
+ id="schedulePath"
323
366
  />
324
367
  </div>
325
368
  {/key}
326
- {:else if filterBy === 'worker'}
369
+ </RunOption>
370
+ {:else if filterBy === 'worker'}
371
+ <RunOption label="Worker" for="worker">
327
372
  {#key worker}
328
373
  <div class="relative">
329
374
  {#if worker}
@@ -337,13 +382,12 @@ $effect(() => {
337
382
  <X size={14} />
338
383
  </button>
339
384
  {/if}
340
- <span class="text-xs absolute -top-4"> Worker </span>
341
385
 
342
386
  <!-- svelte-ignore a11y_autofocus -->
343
387
  <input
344
388
  autofocus
345
389
  type="text"
346
- class="!h-[32px] py-1 !text-xs !w-64"
390
+ class="!h-[32px] py-1 !text-xs min-w-36"
347
391
  bind:value={displayedWorker}
348
392
  onkeydown={(e) => {
349
393
  if (workerTimeout) {
@@ -354,20 +398,70 @@ $effect(() => {
354
398
  worker = displayedWorker
355
399
  }, 1000)
356
400
  }}
401
+ id="worker"
357
402
  />
358
- <div class="absolute top-10">
403
+ <div class="absolute -top-4 right-0">
359
404
  <Toggle
360
405
  bind:checked={allowWildcards}
361
- size="xs"
362
- options={{ right: 'allow wildcards (*)' }}
406
+ size="2xs"
407
+ options={{ right: 'wildcards (*)', title: 'allow wildcards (*)' }}
363
408
  ></Toggle>
364
409
  </div>
365
410
  </div>
366
411
  {/key}
367
- {/if}
368
- </div>
369
- <div class="relative">
370
- <span class="text-xs absolute -top-4">Kind</span>
412
+ </RunOption>
413
+ {/if}
414
+ </div>
415
+
416
+ <!-- Kind -->
417
+ <RunOption label="Kind" for="kind">
418
+ {#if small && !calendarSmall}
419
+ <DropdownSelect
420
+ btnClasses="min-w-24"
421
+ items={[
422
+ {
423
+ displayName: 'All',
424
+ action: () => {
425
+ jobKindsCat = 'all'
426
+ },
427
+ id: 'all'
428
+ },
429
+ {
430
+ displayName: 'Runs',
431
+ action: () => {
432
+ jobKindsCat = 'runs'
433
+ },
434
+ id: 'runs',
435
+ extra: runsTooltip
436
+ },
437
+ {
438
+ displayName: 'Previews',
439
+ action: () => {
440
+ jobKindsCat = 'previews'
441
+ },
442
+ id: 'previews',
443
+ extra: previewsTooltip
444
+ },
445
+ {
446
+ displayName: 'Deps',
447
+ action: () => {
448
+ jobKindsCat = 'dependencies'
449
+ },
450
+ id: 'dependencies',
451
+ extra: dependenciesTooltip
452
+ },
453
+ {
454
+ displayName: 'Sync',
455
+ action: () => {
456
+ jobKindsCat = 'deploymentcallbacks'
457
+ },
458
+ id: 'deploymentcallbacks',
459
+ extra: syncTooltip
460
+ }
461
+ ]}
462
+ selected={jobKindsCat}
463
+ />
464
+ {:else}
371
465
  <ToggleButtonGroup bind:selected={jobKindsCat}>
372
466
  {#snippet children({ item })}
373
467
  <ToggleButton value="all" label="All" {item} />
@@ -378,13 +472,6 @@ $effect(() => {
378
472
  tooltip="Runs are jobs that have no parent jobs (flows are jobs that are parent of the jobs they start), they have been triggered through the UI, a schedule or webhook"
379
473
  {item}
380
474
  />
381
- <ToggleButton
382
- value="previews"
383
- label="Previews"
384
- showTooltipIcon
385
- tooltip="Previews are jobs that have been started in the editor as 'Tests'"
386
- {item}
387
- />
388
475
  <ToggleButton
389
476
  value="dependencies"
390
477
  label="Deps"
@@ -392,75 +479,94 @@ $effect(() => {
392
479
  tooltip="Deploying a script, flow or an app launch a dependency job that create and then attach the lockfile to the deployed item. This mechanism ensure that logic is always executed with the exact same direct and indirect dependencies."
393
480
  {item}
394
481
  />
395
- <ToggleButton
396
- value="deploymentcallbacks"
397
- label="Sync"
398
- showTooltipIcon
399
- tooltip="Sync jobs that are triggered on every script deployment to sync the workspace with the Git repository configured in the the workspace settings"
482
+ <ToggleButtonMore
483
+ togglableItems={[
484
+ {
485
+ label: 'Previews',
486
+ value: 'previews',
487
+ tooltip: "Previews are jobs that have been started in the editor as 'Tests'"
488
+ },
489
+ {
490
+ label: 'Sync',
491
+ value: 'deploymentcallbacks',
492
+ tooltip:
493
+ 'Sync jobs that are triggered on every script deployment to sync the workspace with the Git repository configured in the the workspace settings'
494
+ }
495
+ ]}
400
496
  {item}
497
+ bind:selected={
498
+ () => jobKindsCat,
499
+ (v) => {
500
+ resetFilter()
501
+ jobKindsCat = v
502
+ }
503
+ }
401
504
  />
402
505
  {/snippet}
403
506
  </ToggleButtonGroup>
404
- </div>
405
- <div class="relative">
406
- <span class="text-xs absolute -top-4">Status</span>
407
- <ToggleButtonGroup
408
- selected={success ?? 'all'}
409
- on:selected={({ detail }) => {
410
- success = detail === 'all' ? undefined : detail
411
- dispatch('successChange', success)
412
- }}
413
- >
414
- {#snippet children({ item })}
415
- <ToggleButton value={'all'} label="All" {item} />
507
+ {/if}
508
+ </RunOption>
509
+ <!-- Status -->
510
+ <RunOption label="Status" for="status">
511
+ <ToggleButtonGroup
512
+ selected={success ?? 'all'}
513
+ on:selected={({ detail }) => {
514
+ success = detail === 'all' ? undefined : detail
515
+ dispatch('successChange', success)
516
+ }}
517
+ id="status"
518
+ >
519
+ {#snippet children({ item })}
520
+ <ToggleButton value={'all'} label="All" {item} />
521
+ <ToggleButton
522
+ value={'running'}
523
+ tooltip="Running"
524
+ class="whitespace-nowrap"
525
+ icon={CirclePlay}
526
+ iconProps={{ color: success === 'running' ? 'blue' : 'gray' }}
527
+ {item}
528
+ />
529
+ <ToggleButton
530
+ value={'success'}
531
+ tooltip="Success"
532
+ class="whitespace-nowrap"
533
+ icon={CircleCheck}
534
+ iconProps={{ color: success === 'success' ? 'green' : 'gray' }}
535
+ {item}
536
+ />
537
+ <ToggleButton
538
+ value={'failure'}
539
+ tooltip="Failure"
540
+ class="whitespace-nowrap"
541
+ icon={CircleAlert}
542
+ iconProps={{ color: success === 'failure' ? 'red' : 'gray' }}
543
+ {item}
544
+ />
545
+ {#if success == 'waiting'}
416
546
  <ToggleButton
417
- value={'running'}
418
- tooltip="Running"
547
+ value={'waiting'}
548
+ tooltip="Waiting"
419
549
  class="whitespace-nowrap"
420
- icon={PlayCircle}
421
- iconProps={{ color: success === 'running' ? 'blue' : 'gray' }}
550
+ icon={Hourglass}
551
+ iconProps={{ color: 'blue' }}
422
552
  {item}
423
553
  />
554
+ {:else if success == 'suspended'}
424
555
  <ToggleButton
425
- value={'success'}
426
- tooltip="Success"
556
+ value={'suspended'}
557
+ tooltip="Suspended"
427
558
  class="whitespace-nowrap"
428
- icon={CheckCircle2}
429
- iconProps={{ color: success === 'success' ? 'green' : 'gray' }}
559
+ icon={Hourglass}
560
+ iconProps={{ color: 'blue' }}
430
561
  {item}
431
562
  />
432
- <ToggleButton
433
- value={'failure'}
434
- tooltip="Failure"
435
- class="whitespace-nowrap"
436
- icon={AlertCircle}
437
- iconProps={{ color: success === 'failure' ? 'red' : 'gray' }}
438
- {item}
439
- />
440
- {#if success == 'waiting'}
441
- <ToggleButton
442
- value={'waiting'}
443
- tooltip="Waiting"
444
- class="whitespace-nowrap"
445
- icon={Hourglass}
446
- iconProps={{ color: 'blue' }}
447
- {item}
448
- />
449
- {:else if success == 'suspended'}
450
- <ToggleButton
451
- value={'suspended'}
452
- tooltip="Suspended"
453
- class="whitespace-nowrap"
454
- icon={Hourglass}
455
- iconProps={{ color: 'blue' }}
456
- {item}
457
- />
458
- {/if}
459
- {/snippet}
460
- </ToggleButtonGroup>
461
- </div>
462
- {/if}
563
+ {/if}
564
+ {/snippet}
565
+ </ToggleButtonGroup>
566
+ </RunOption>
567
+ {/if}
463
568
 
569
+ <RunOption label="_" for="more-filters" noLabel>
464
570
  <Popover
465
571
  floatingConfig={{ strategy: 'absolute', placement: 'bottom-end' }}
466
572
  contentClasses="p-4"
@@ -468,15 +574,33 @@ $effect(() => {
468
574
  usePointerDownOutside
469
575
  >
470
576
  {#snippet trigger()}
471
- <Button color="dark" size="xs" nonCaptureEvent={true} startIcon={{ icon: Filter }}>
472
- More filters
473
- </Button>
577
+ <Button
578
+ color="light"
579
+ variant="border"
580
+ size="xs"
581
+ nonCaptureEvent={true}
582
+ startIcon={{ icon: ListFilterPlus }}
583
+ iconOnly
584
+ ></Button>
474
585
  {/snippet}
475
586
 
476
587
  {#snippet content()}
477
588
  <Section label="Filters">
478
589
  <div class="w-102 flex flex-col gap-4">
479
- {#if mobile || true}
590
+ {#if mobile}
591
+ {#if $workspaceStore == 'admins'}
592
+ <Label label="Workspaces">
593
+ <ToggleButtonGroup
594
+ bind:selected={allWorkspacesValue}
595
+ on:selected={({ detail }) => (allWorkspaces = detail === 'all')}
596
+ >
597
+ {#snippet children({ item })}
598
+ <ToggleButton value={'admins'} label="Admins" {item} />
599
+ <ToggleButton value={'all'} label="All" {item} />
600
+ {/snippet}
601
+ </ToggleButtonGroup>
602
+ </Label>
603
+ {/if}
480
604
  <Label label="Filter by">
481
605
  <ToggleButtonGroup
482
606
  bind:selected={filterBy}
@@ -682,8 +806,8 @@ $effect(() => {
682
806
  {#if filterBy === 'tag' || filterBy === 'label' || filterBy === 'worker'}
683
807
  <Toggle
684
808
  bind:checked={allowWildcards}
685
- size="xs"
686
- options={{ right: 'allow wildcards (*)' }}
809
+ size="2xs"
810
+ options={{ right: 'wildcards (*)', title: 'allow wildcards (*)' }}
687
811
  ></Toggle>
688
812
  {/if}
689
813
  <Label label="Kind">
@@ -759,15 +883,17 @@ $effect(() => {
759
883
  </div>
760
884
  </Label>
761
885
 
762
- <span class="text-xs leading-6">
763
- {`Filter by a json being a subset of the args/result. Try '\{"foo": "bar"\}'`}
764
- </span>
765
- <Label label="Filter by args">
766
- <JsonEditor bind:error={argError} bind:code={copyArgFilter} />
767
- </Label>
768
- <Label label="Filter by result">
769
- <JsonEditor bind:error={resultError} bind:code={copyResultFilter} />
770
- </Label>
886
+ <div class="flex flex-col gap-1">
887
+ <span class="text-xs leading-6">
888
+ {`Filter by a json being a subset of the args/result. Try '\{"foo": "bar"\}'`}
889
+ </span>
890
+ <Label label="Filter by args">
891
+ <JsonEditor bind:error={argError} bind:code={copyArgFilter} />
892
+ </Label>
893
+ <Label label="Filter by result">
894
+ <JsonEditor bind:error={resultError} bind:code={copyResultFilter} />
895
+ </Label>
896
+ </div>
771
897
 
772
898
  <div class="flex flex-row gap-2 justify-between">
773
899
  <Button
@@ -796,4 +922,4 @@ $effect(() => {
796
922
  </Section>
797
923
  {/snippet}
798
924
  </Popover>
799
- </div>
925
+ </RunOption>