windmill-components 1.448.50 → 1.472.2

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 (533) hide show
  1. package/package/components/AddUser.svelte +52 -54
  2. package/package/components/ApiConnectForm.svelte +57 -45
  3. package/package/components/AppConnectInner.svelte +18 -8
  4. package/package/components/ArgInput.svelte +132 -83
  5. package/package/components/ArgInput.svelte.d.ts +12 -1
  6. package/package/components/ArrayTypeNarrowing.svelte +35 -30
  7. package/package/components/ArrayTypeNarrowing.svelte.d.ts +1 -0
  8. package/package/components/AssignableTags.svelte +10 -6
  9. package/package/components/AssignableTagsInner.svelte +1 -1
  10. package/package/components/Auth0Setting.svelte +103 -0
  11. package/package/components/Auth0Setting.svelte.d.ts +16 -0
  12. package/package/components/AuthSettings.svelte +7 -2
  13. package/package/components/AutoscalingConfigEditor.svelte +12 -17
  14. package/package/components/ChangeInstanceUsername.svelte +15 -13
  15. package/package/components/ChangeInstanceUsernameInner.svelte +4 -5
  16. package/package/components/ChangeInstanceUsernameInner.svelte.d.ts +1 -0
  17. package/package/components/ConnectionSection.svelte +176 -0
  18. package/package/components/ConnectionSection.svelte.d.ts +28 -0
  19. package/package/components/ContentSearchInner.svelte +13 -3
  20. package/package/components/CronBuilder.svelte +12 -13
  21. package/package/components/CronBuilder.svelte.d.ts +1 -1
  22. package/package/components/CronInput.svelte +1 -1
  23. package/package/components/DBSchemaExplorer.svelte +18 -5
  24. package/package/components/DateTimeInput.svelte +3 -3
  25. package/package/components/DefaultTags.svelte +8 -8
  26. package/package/components/Dev.svelte +30 -8
  27. package/package/components/DisplayResult.svelte +132 -80
  28. package/package/components/DisplayResult.svelte.d.ts +2 -0
  29. package/package/components/DropdownV2.svelte +89 -16
  30. package/package/components/DropdownV2.svelte.d.ts +10 -27
  31. package/package/components/DropdownV2Inner.svelte +7 -4
  32. package/package/components/DropdownV2Inner.svelte.d.ts +4 -25
  33. package/package/components/DynSelect.svelte +6 -2
  34. package/package/components/EditableSchemaForm.svelte +48 -45
  35. package/package/components/EditableSchemaForm.svelte.d.ts +4 -1
  36. package/package/components/Editor.svelte +1 -1
  37. package/package/components/EditorBar.svelte +15 -13
  38. package/package/components/EditorBar.svelte.d.ts +1 -1
  39. package/package/components/EditorSettings.svelte +9 -7
  40. package/package/components/ErrorOrRecoveryHandler.svelte +195 -18
  41. package/package/components/ErrorOrRecoveryHandler.svelte.d.ts +2 -2
  42. package/package/components/FlowBuilder.svelte +10 -31
  43. package/package/components/FlowBuilder.svelte.d.ts +3 -0
  44. package/package/components/FlowBuilderTutorials.svelte +34 -64
  45. package/package/components/FlowBuilderTutorials.svelte.d.ts +0 -1
  46. package/package/components/FlowHistoryJobPicker.svelte +48 -0
  47. package/package/components/FlowHistoryJobPicker.svelte.d.ts +21 -0
  48. package/package/components/FlowJobResult.svelte +6 -3
  49. package/package/components/FlowPreviewContent.svelte +264 -182
  50. package/package/components/FlowPreviewContent.svelte.d.ts +3 -0
  51. package/package/components/FlowStatusViewerInner.svelte +28 -7
  52. package/package/components/FlowStatusWaitingForEvents.svelte +2 -2
  53. package/package/components/FolderEditor.svelte +14 -7
  54. package/package/components/GroupEditor.svelte +4 -0
  55. package/package/components/HistoricInputs.svelte +51 -110
  56. package/package/components/HistoricInputs.svelte.d.ts +9 -3
  57. package/package/components/HistoricList.svelte +95 -0
  58. package/package/components/HistoricList.svelte.d.ts +24 -0
  59. package/package/components/IconedResourceType.svelte +4 -1
  60. package/package/components/InfiniteList.svelte +12 -6
  61. package/package/components/InputTransformForm.svelte +25 -5
  62. package/package/components/InstanceNameEditor.svelte +100 -103
  63. package/package/components/InstanceSetting.svelte +777 -607
  64. package/package/components/InstanceSettings.svelte +33 -36
  65. package/package/components/InviteUser.svelte +43 -43
  66. package/package/components/{apps/editor/settingsPanel/inputEditor/JsonEditor.svelte → JsonEditor.svelte} +1 -1
  67. package/package/components/{apps/editor/settingsPanel/inputEditor/JsonEditor.svelte.d.ts → JsonEditor.svelte.d.ts} +1 -1
  68. package/package/components/JsonInputs.svelte +63 -0
  69. package/package/components/JsonInputs.svelte.d.ts +23 -0
  70. package/package/components/Label.svelte +6 -4
  71. package/package/components/Login.svelte +8 -2
  72. package/package/components/OAuthSetting.svelte +42 -15
  73. package/package/components/OAuthSetting.svelte.d.ts +1 -0
  74. package/package/components/ObjectResourceInput.svelte +6 -3
  75. package/package/components/ObjectResourceInput.svelte.d.ts +1 -1
  76. package/package/components/OktaSetting.svelte +9 -3
  77. package/package/components/PasswordArgInput.svelte +1 -1
  78. package/package/components/Path.svelte +16 -1
  79. package/package/components/Path.svelte.d.ts +1 -1
  80. package/package/components/ResourceEditor.svelte +6 -2
  81. package/package/components/ResourcePicker.svelte +3 -3
  82. package/package/components/ResourceTypePicker.svelte +10 -11
  83. package/package/components/ResultJobLoader.svelte.d.ts +1 -1
  84. package/package/components/RunForm.svelte +51 -47
  85. package/package/components/RunForm.svelte.d.ts +3 -0
  86. package/package/components/RunFormAdvancedPopup.svelte +2 -7
  87. package/package/components/RunFormAdvancedPopup.svelte.d.ts +0 -2
  88. package/package/components/RunPageSchedules.svelte +3 -2
  89. package/package/components/S3FilePicker.svelte +9 -1
  90. package/package/components/S3FilePicker.svelte.d.ts +1 -0
  91. package/package/components/S3ObjectPicker.svelte +13 -12
  92. package/package/components/S3ObjectPicker.svelte.d.ts +1 -1
  93. package/package/components/SavedInputsPicker.svelte +95 -56
  94. package/package/components/SavedInputsPicker.svelte.d.ts +10 -1
  95. package/package/components/SavedInputsV2.svelte +113 -0
  96. package/package/components/SavedInputsV2.svelte.d.ts +26 -0
  97. package/package/components/ScheduleEditorInner.svelte +40 -13
  98. package/package/components/SchemaForm.svelte +158 -191
  99. package/package/components/SchemaForm.svelte.d.ts +16 -3
  100. package/package/components/SchemaFormWithArgPicker.svelte +166 -0
  101. package/package/components/SchemaFormWithArgPicker.svelte.d.ts +29 -0
  102. package/package/components/ScriptBuilder.svelte +139 -71
  103. package/package/components/ScriptBuilder.svelte.d.ts +3 -0
  104. package/package/components/ScriptEditor.svelte +28 -2
  105. package/package/components/ScriptEditor.svelte.d.ts +2 -2
  106. package/package/components/ScriptPicker.svelte +6 -3
  107. package/package/components/ScriptSchema.svelte +2 -1
  108. package/package/components/ScriptSchema.svelte.d.ts +2 -0
  109. package/package/components/ScriptVersionHistory.svelte +9 -3
  110. package/package/components/Section.svelte +21 -9
  111. package/package/components/Section.svelte.d.ts +4 -0
  112. package/package/components/ShareModal.svelte +10 -5
  113. package/package/components/ShareModal.svelte.d.ts +2 -2
  114. package/package/components/SharedBadge.svelte +3 -3
  115. package/package/components/StringTypeNarrowing.svelte +10 -1
  116. package/package/components/SuperadminSettings.svelte +9 -2
  117. package/package/components/TestJobLoader.svelte +1 -1
  118. package/package/components/TestJobLoader.svelte.d.ts +1 -1
  119. package/package/components/TimelineBar.svelte.d.ts +1 -1
  120. package/package/components/ToggleHubWorkspace.svelte +3 -3
  121. package/package/components/ToggleHubWorkspaceQuick.svelte +4 -4
  122. package/package/components/Tooltip.svelte +36 -30
  123. package/package/components/VariableEditor.svelte +27 -20
  124. package/package/components/WorkerGroup.svelte +12 -3
  125. package/package/components/apps/components/buttons/AppButton.svelte +22 -2
  126. package/package/components/apps/components/buttons/AppFormButton.svelte +74 -70
  127. package/package/components/apps/components/buttons/AppSchemaForm.svelte +4 -2
  128. package/package/components/apps/components/display/AppAccordionList.svelte +149 -0
  129. package/package/components/apps/components/display/AppAccordionList.svelte.d.ts +25 -0
  130. package/package/components/apps/components/display/AppCarouselList.svelte +114 -106
  131. package/package/components/apps/components/display/AppCustomComponent.svelte +13 -13
  132. package/package/components/apps/components/display/AppDisplayComponent.svelte +2 -1
  133. package/package/components/apps/components/display/AppDisplayComponentByJobId.svelte +3 -1
  134. package/package/components/apps/components/display/AppHtml.svelte +28 -22
  135. package/package/components/apps/components/display/AppMarkdown.svelte +98 -31
  136. package/package/components/apps/components/display/AppMenu.svelte +77 -66
  137. package/package/components/apps/components/display/AppMenu.svelte.d.ts +0 -3
  138. package/package/components/apps/components/display/AppRecomputeAll.svelte +12 -1
  139. package/package/components/apps/components/display/AppText.svelte +8 -3
  140. package/package/components/apps/components/display/PlotlyHtml.svelte +16 -12
  141. package/package/components/apps/components/display/PlotlyHtmlV2.svelte +16 -12
  142. package/package/components/apps/components/display/VegaLiteHtml.svelte +9 -5
  143. package/package/components/apps/components/display/dbtable/AppDbExplorer.svelte +1 -1
  144. package/package/components/apps/components/display/dbtable/InsertRow.svelte +4 -4
  145. package/package/components/apps/components/display/dbtable/utils.js +19 -1
  146. package/package/components/apps/components/display/table/AppAggridExplorerTable.svelte +6 -0
  147. package/package/components/apps/components/display/table/AppAggridInfiniteTable.svelte +4 -0
  148. package/package/components/apps/components/display/table/AppAggridTable.svelte +1 -1
  149. package/package/components/apps/components/display/table/AppAggridTableActions.svelte +27 -19
  150. package/package/components/apps/components/display/table/AppTable.svelte +19 -15
  151. package/package/components/apps/components/helpers/InitializeComponent.svelte +1 -0
  152. package/package/components/apps/components/helpers/InputValue.svelte +4 -3
  153. package/package/components/apps/components/helpers/NonRunnableComponent.svelte +0 -2
  154. package/package/components/apps/components/helpers/RunnableComponent.svelte +16 -4
  155. package/package/components/apps/components/helpers/RunnableComponent.svelte.d.ts +1 -0
  156. package/package/components/apps/components/helpers/RunnableWrapper.svelte +32 -3
  157. package/package/components/apps/components/helpers/RunnableWrapper.svelte.d.ts +1 -0
  158. package/package/components/apps/components/inputs/AppS3FileInput.svelte +1 -0
  159. package/package/components/apps/components/layout/AppConditionalWrapper.svelte +29 -21
  160. package/package/components/apps/components/layout/AppContainer.svelte +28 -20
  161. package/package/components/apps/components/layout/AppDecisionTree.svelte +59 -49
  162. package/package/components/apps/components/layout/AppDrawer.svelte +94 -87
  163. package/package/components/apps/components/layout/AppList.svelte +70 -62
  164. package/package/components/apps/components/layout/AppModal.svelte +83 -79
  165. package/package/components/apps/components/layout/AppSplitpanes.svelte +51 -43
  166. package/package/components/apps/components/layout/AppStepper.svelte +97 -83
  167. package/package/components/apps/components/layout/AppTabs.svelte +128 -74
  168. package/package/components/apps/editor/AppEditor.svelte +21 -3
  169. package/package/components/apps/editor/AppEditor.svelte.d.ts +24 -1
  170. package/package/components/apps/editor/AppEditorHeader.svelte +73 -61
  171. package/package/components/apps/editor/AppEditorHeader.svelte.d.ts +24 -1
  172. package/package/components/apps/editor/AppEditorTutorial.svelte +53 -60
  173. package/package/components/apps/editor/AppJsonEditor.svelte +1 -1
  174. package/package/components/apps/editor/AppPreview.svelte +5 -5
  175. package/package/components/apps/editor/AppReportsDrawerInner.svelte +1 -0
  176. package/package/components/apps/editor/ComponentHeader.svelte +44 -20
  177. package/package/components/apps/editor/ComponentHeader.svelte.d.ts +1 -0
  178. package/package/components/apps/editor/DecisionTreeDebug.svelte +56 -73
  179. package/package/components/apps/editor/GridEditor.svelte +7 -4
  180. package/package/components/apps/editor/GridViewer.svelte +19 -7
  181. package/package/components/apps/editor/GridViewer.svelte.d.ts +1 -3
  182. package/package/components/apps/editor/PreviewToggle.svelte +3 -0
  183. package/package/components/apps/editor/RecomputeAllButton.svelte +7 -40
  184. package/package/components/apps/editor/RecomputeAllComponents.svelte +52 -19
  185. package/package/components/apps/editor/RecomputeAllWrapper.svelte +1 -10
  186. package/package/components/apps/editor/SubGridEditor.svelte +147 -145
  187. package/package/components/apps/editor/TabsDebug.svelte +43 -56
  188. package/package/components/apps/editor/component/Component.svelte +26 -926
  189. package/package/components/apps/editor/component/Component.svelte.d.ts +2 -3
  190. package/package/components/apps/editor/component/ComponentInner.svelte +775 -0
  191. package/package/components/apps/editor/component/ComponentInner.svelte.d.ts +22 -0
  192. package/package/components/apps/editor/component/ComponentRendered.svelte +195 -0
  193. package/package/components/apps/editor/component/ComponentRendered.svelte.d.ts +28 -0
  194. package/package/components/apps/editor/component/components.d.ts +154 -83
  195. package/package/components/apps/editor/component/components.js +59 -5
  196. package/package/components/apps/editor/component/sets.js +2 -1
  197. package/package/components/apps/editor/componentsPanel/CssProperty.svelte +8 -4
  198. package/package/components/apps/editor/componentsPanel/CustomComponentRow.svelte +12 -22
  199. package/package/components/apps/editor/componentsPanel/CustomComponentRow.svelte.d.ts +0 -1
  200. package/package/components/apps/editor/componentsPanel/CustomComponentsList.svelte +0 -2
  201. package/package/components/apps/editor/componentsPanel/GroupRow.svelte +12 -22
  202. package/package/components/apps/editor/componentsPanel/GroupRow.svelte.d.ts +0 -1
  203. package/package/components/apps/editor/componentsPanel/NameEditor.svelte +21 -20
  204. package/package/components/apps/editor/componentsPanel/ThemeNameEditor.svelte +9 -9
  205. package/package/components/apps/editor/componentsPanel/ThemeRow.svelte +32 -52
  206. package/package/components/apps/editor/componentsPanel/ThemeRow.svelte.d.ts +0 -1
  207. package/package/components/apps/editor/componentsPanel/cssUtils.js +7 -0
  208. package/package/components/apps/editor/componentsPanel/quickStyleProperties.js +3 -0
  209. package/package/components/apps/editor/contextPanel/LazyModePanel.svelte +46 -0
  210. package/package/components/apps/editor/contextPanel/LazyModePanel.svelte.d.ts +14 -0
  211. package/package/components/apps/editor/contextPanel/components/IdEditor.svelte +19 -13
  212. package/package/components/apps/editor/inlineScriptsPanel/CacheTtlPopup.svelte +10 -7
  213. package/package/components/apps/editor/inlineScriptsPanel/InlineScriptRunnableByPath.svelte +11 -7
  214. package/package/components/apps/editor/inlineScriptsPanel/RunButton.svelte +2 -2
  215. package/package/components/apps/editor/settingsPanel/AlignmentEditor.svelte +8 -6
  216. package/package/components/apps/editor/settingsPanel/ComponentInputTypeEditor.svelte +7 -0
  217. package/package/components/apps/editor/settingsPanel/ComponentPanelDataSource.svelte +5 -2
  218. package/package/components/apps/editor/settingsPanel/HideButton.svelte.d.ts +1 -1
  219. package/package/components/apps/editor/settingsPanel/InputsSpecEditor.svelte +17 -7
  220. package/package/components/apps/editor/settingsPanel/InputsSpecEditor.svelte.d.ts +3 -0
  221. package/package/components/apps/editor/settingsPanel/TableActions.svelte +10 -1
  222. package/package/components/apps/editor/settingsPanel/inputEditor/IconSelectInput.svelte +53 -51
  223. package/package/components/apps/editor/settingsPanel/inputEditor/IconSelectInput.svelte.d.ts +0 -1
  224. package/package/components/apps/editor/settingsPanel/inputEditor/StaticInputEditor.svelte +1 -1
  225. package/package/components/apps/rx.d.ts +3 -3
  226. package/package/components/apps/rx.js +5 -5
  227. package/package/components/apps/svelte-grid/Grid.svelte +121 -99
  228. package/package/components/apps/svelte-grid/Grid.svelte.d.ts +0 -1
  229. package/package/components/apps/svelte-grid/MoveResize.svelte +2 -1
  230. package/package/components/apps/svelte-grid/MoveResize.svelte.d.ts +1 -0
  231. package/package/components/apps/svelte-select/lib/Select.svelte.d.ts +8 -8
  232. package/package/components/apps/types.d.ts +2 -0
  233. package/package/components/apps/utils.js +1 -1
  234. package/package/components/auditLogs/AuditLogMobileFilters.svelte +7 -6
  235. package/package/components/auditLogs/AuditLogsFilters.svelte +75 -37
  236. package/package/components/auditLogs/AuditLogsFilters.svelte.d.ts +2 -0
  237. package/package/components/auditLogs/AuditLogsTable.svelte +2 -1
  238. package/package/components/auditLogs/AuditLogsTable.svelte.d.ts +1 -0
  239. package/package/components/common/alert/Alert.svelte +2 -27
  240. package/package/components/common/alert/Alert.svelte.d.ts +1 -1
  241. package/package/components/common/alert/model.d.ts +1 -0
  242. package/package/components/common/alert/model.js +26 -1
  243. package/package/components/common/button/Button.svelte +25 -39
  244. package/package/components/common/button/Button.svelte.d.ts +0 -1
  245. package/package/components/common/calendarPicker/CalendarPicker.svelte +30 -25
  246. package/package/components/common/confirmationModal/UnsavedConfirmationModal.svelte +12 -10
  247. package/package/components/common/confirmationModal/UnsavedConfirmationModal.svelte.d.ts +2 -3
  248. package/package/components/common/confirmationModal/unsavedTypes.d.ts +6 -0
  249. package/package/components/common/confirmationModal/unsavedTypes.js +1 -0
  250. package/package/components/common/drawer/Disposable.svelte +3 -1
  251. package/package/components/common/drawer/Disposable.svelte.d.ts +1 -0
  252. package/package/components/common/drawer/Drawer.svelte +2 -0
  253. package/package/components/common/drawer/Drawer.svelte.d.ts +1 -0
  254. package/package/components/common/fileInput/FileInput.svelte +63 -20
  255. package/package/components/common/fileInput/FileInput.svelte.d.ts +4 -1
  256. package/package/components/common/fileUpload/FileUpload.svelte +102 -20
  257. package/package/components/common/fileUpload/FileUpload.svelte.d.ts +7 -0
  258. package/package/components/common/index.d.ts +0 -1
  259. package/package/components/common/index.js +0 -1
  260. package/package/components/common/layout/List.svelte.d.ts +1 -1
  261. package/package/components/common/toggleButton-v2/ToggleButton.svelte +42 -39
  262. package/package/components/common/toggleButton-v2/ToggleButton.svelte.d.ts +3 -1
  263. package/package/components/common/toggleButton-v2/ToggleButtonGroup.svelte +28 -29
  264. package/package/components/common/toggleButton-v2/ToggleButtonGroup.svelte.d.ts +23 -7
  265. package/package/components/common/toggleButton-v2/ToggleButtonMore.svelte +17 -18
  266. package/package/components/common/toggleButton-v2/ToggleButtonMore.svelte.d.ts +2 -1
  267. package/package/components/common/waitTimeWarning/WaitTimeWarning.svelte.d.ts +1 -1
  268. package/package/components/copilot/CodeCompletionStatus.svelte +1 -1
  269. package/package/components/copilot/CronGen.svelte +50 -50
  270. package/package/components/copilot/FlowCopilotDrawer.svelte +3 -2
  271. package/package/components/copilot/FlowCopilotStatus.svelte +16 -19
  272. package/package/components/copilot/PredicateGen.svelte +9 -10
  273. package/package/components/copilot/RegexGen.svelte +67 -66
  274. package/package/components/copilot/ScriptFix.svelte +122 -105
  275. package/package/components/copilot/ScriptGen.svelte +177 -135
  276. package/package/components/copilot/StepInputsGen.svelte +31 -28
  277. package/package/components/copilot/{TestAiKey.svelte → TestAIKey.svelte} +13 -2
  278. package/package/components/copilot/{TestAiKey.svelte.d.ts → TestAIKey.svelte.d.ts} +4 -2
  279. package/package/components/copilot/completion.d.ts +2 -2
  280. package/package/components/copilot/completion.js +1 -1
  281. package/package/components/copilot/flow.d.ts +3 -4
  282. package/package/components/copilot/flow.js +1 -1
  283. package/package/components/copilot/lib.d.ts +46 -54
  284. package/package/components/copilot/lib.js +278 -209
  285. package/package/components/copilot/prompts/edit.yaml +19 -0
  286. package/package/components/copilot/prompts/editPrompt.d.ts +3 -0
  287. package/package/components/copilot/prompts/editPrompt.js +3 -0
  288. package/package/components/copilot/prompts/fix.yaml +19 -0
  289. package/package/components/copilot/prompts/fixPrompt.d.ts +3 -0
  290. package/package/components/copilot/prompts/fixPrompt.js +3 -0
  291. package/package/components/copilot/prompts/gen.yaml +12 -0
  292. package/package/components/copilot/prompts/genPrompt.d.ts +3 -0
  293. package/package/components/copilot/prompts/genPrompt.js +3 -0
  294. package/package/components/custom_ui.d.ts +37 -0
  295. package/package/components/details/DetailPageDetailPanel.svelte +3 -1
  296. package/package/components/details/DetailPageDetailPanel.svelte.d.ts +7 -1
  297. package/package/components/details/DetailPageHeader.svelte +12 -27
  298. package/package/components/details/DetailPageLayout.svelte +4 -0
  299. package/package/components/details/DetailPageLayout.svelte.d.ts +6 -0
  300. package/package/components/details/DetailPageTriggerPanel.svelte +20 -8
  301. package/package/components/details/DetailPageTriggerPanel.svelte.d.ts +4 -2
  302. package/package/components/details/EmailTriggerConfigSection.svelte +3 -3
  303. package/package/components/details/EmailTriggerConfigSection.svelte.d.ts +3 -1
  304. package/package/components/details/EmailTriggerPanel.svelte +1 -0
  305. package/package/components/flows/content/FlowInput.svelte +35 -44
  306. package/package/components/flows/content/FlowInputs.svelte +4 -1
  307. package/package/components/flows/content/FlowModuleComponent.svelte +10 -5
  308. package/package/components/flows/content/FlowModuleComponent.svelte.d.ts +1 -1
  309. package/package/components/flows/content/FlowModuleMock.svelte +1 -1
  310. package/package/components/flows/content/FlowModuleSuspend.svelte +15 -2
  311. package/package/components/flows/content/FlowRetries.svelte +4 -3
  312. package/package/components/flows/content/ScriptEditorDrawer.svelte +0 -1
  313. package/package/components/flows/flowStateUtils.js +1 -1
  314. package/package/components/flows/flowStore.d.ts +1 -1
  315. package/package/components/flows/header/FlowPreviewButtons.svelte +25 -16
  316. package/package/components/flows/header/FlowPreviewButtons.svelte.d.ts +1 -0
  317. package/package/components/flows/map/FlowJobsMenu.svelte +60 -47
  318. package/package/components/flows/previousResults.js +1 -1
  319. package/package/components/flows/propPicker/FlowPropPicker.svelte +28 -25
  320. package/package/components/flows/propPicker/PropPickerWrapper.svelte +1 -0
  321. package/package/components/flows/scheduleUtils.d.ts +2 -2
  322. package/package/components/flows/scheduleUtils.js +17 -13
  323. package/package/components/graph/FlowGraphV2.svelte +3 -2
  324. package/package/components/graph/renderers/triggers/TriggersBadge.svelte +9 -4
  325. package/package/components/graph/renderers/triggers/TriggersBadge.svelte.d.ts +1 -1
  326. package/package/components/home/FlowIcon.svelte +4 -1
  327. package/package/components/home/FlowIcon.svelte.d.ts +1 -0
  328. package/package/components/home/ItemsList.svelte +32 -24
  329. package/package/components/icons/Auth0Icon.svelte +17 -0
  330. package/package/components/icons/Auth0Icon.svelte.d.ts +23 -0
  331. package/package/components/icons/AwsIcon.svelte +25 -6
  332. package/package/components/icons/AwsIcon.svelte.d.ts +3 -2
  333. package/package/components/icons/brands/Auth0.svelte +24 -0
  334. package/package/components/icons/brands/Auth0.svelte.d.ts +18 -0
  335. package/package/components/icons/index.d.ts +3 -1
  336. package/package/components/icons/index.js +3 -1
  337. package/package/components/instanceSettings.d.ts +5 -0
  338. package/package/components/instanceSettings.js +34 -3
  339. package/package/components/meltComponents/MeltButton.svelte +10 -0
  340. package/package/components/meltComponents/MeltButton.svelte.d.ts +23 -0
  341. package/package/components/meltComponents/Menu.svelte +70 -0
  342. package/package/components/meltComponents/Menu.svelte.d.ts +51 -0
  343. package/package/components/meltComponents/MenuItem.svelte +42 -0
  344. package/package/components/meltComponents/MenuItem.svelte.d.ts +27 -0
  345. package/package/components/meltComponents/MenuSingleItem.svelte +12 -0
  346. package/package/components/meltComponents/MenuSingleItem.svelte.d.ts +36 -0
  347. package/package/components/meltComponents/Menubar.svelte +7 -0
  348. package/package/components/meltComponents/Menubar.svelte.d.ts +255 -0
  349. package/package/components/meltComponents/Popover.svelte +78 -24
  350. package/package/components/meltComponents/Popover.svelte.d.ts +23 -4
  351. package/package/components/meltComponents/SideBarTab.svelte +18 -6
  352. package/package/components/meltComponents/SideBarTab.svelte.d.ts +2 -0
  353. package/package/components/meltComponents/Tooltip.svelte +66 -0
  354. package/package/components/meltComponents/Tooltip.svelte.d.ts +29 -0
  355. package/package/components/meltComponents/index.d.ts +5 -0
  356. package/package/components/meltComponents/index.js +5 -0
  357. package/package/components/preview/FlowPreviewStatus.svelte +2 -1
  358. package/package/components/propertyPicker/ObjectViewer.svelte +15 -3
  359. package/package/components/propertyPicker/PropPicker.svelte +0 -1
  360. package/package/components/runs/JobLoader.svelte +18 -18
  361. package/package/components/runs/JobLoader.svelte.d.ts +1 -1
  362. package/package/components/runs/MobileFilters.svelte +12 -11
  363. package/package/components/runs/PreprocessedArgsDisplay.svelte +2 -3
  364. package/package/components/runs/PreprocessedArgsDisplay.svelte.d.ts +1 -1
  365. package/package/components/runs/RunsFilter.svelte +350 -320
  366. package/package/components/schema/AddPropertyFormV2.svelte +7 -7
  367. package/package/components/schema/AddPropertyFormV2.svelte.d.ts +3 -1
  368. package/package/components/schema/EditableSchemaDrawer.svelte +0 -1
  369. package/package/components/schema/EditableSchemaWrapper.svelte +1 -2
  370. package/package/components/schema/EditableSchemaWrapper.svelte.d.ts +0 -1
  371. package/package/components/schema/FlowPropertyEditor.svelte +51 -67
  372. package/package/components/schema/FlowPropertyEditor.svelte.d.ts +0 -1
  373. package/package/components/schema/InputSelectedBadge.svelte +28 -0
  374. package/package/components/schema/InputSelectedBadge.svelte.d.ts +18 -0
  375. package/package/components/schema/PropertyEditor.svelte +7 -3
  376. package/package/components/schema/SchemaFormDND.svelte +4 -2
  377. package/package/components/schema/SchemaFormDND.svelte.d.ts +2 -1
  378. package/package/components/schema/SchemaPickerRow.svelte +11 -3
  379. package/package/components/schema/SchemaPickerRow.svelte.d.ts +1 -1
  380. package/package/components/scriptEditor/LogPanel.svelte +8 -2
  381. package/package/components/scriptEditor/LogPanel.svelte.d.ts +2 -0
  382. package/package/components/settings/ChangeWorkspaceId.svelte +24 -12
  383. package/package/components/settings/PremiumInfo.svelte +4 -4
  384. package/package/components/settings/WorkspaceOperatorSettings.svelte +159 -0
  385. package/package/components/settings/WorkspaceOperatorSettings.svelte.d.ts +14 -0
  386. package/package/components/settings/WorkspaceUserSettings.svelte +108 -96
  387. package/package/components/sidebar/CriticalAlertModal.svelte +66 -60
  388. package/package/components/sidebar/FavoriteMenu.svelte +30 -21
  389. package/package/components/sidebar/FavoriteMenu.svelte.d.ts +2 -0
  390. package/package/components/sidebar/MenuButton.svelte +20 -5
  391. package/package/components/sidebar/MenuButton.svelte.d.ts +3 -0
  392. package/package/components/sidebar/MenuLink.svelte +8 -5
  393. package/package/components/sidebar/MenuLink.svelte.d.ts +2 -0
  394. package/package/components/sidebar/OperatorMenu.svelte +219 -126
  395. package/package/components/sidebar/SidebarContent.svelte +107 -127
  396. package/package/components/sidebar/SidebarContent.svelte.d.ts +0 -1
  397. package/package/components/sidebar/UserMenu.svelte +91 -111
  398. package/package/components/sidebar/UserMenu.svelte.d.ts +2 -0
  399. package/package/components/sidebar/WorkspaceMenu.svelte +59 -54
  400. package/package/components/sidebar/WorkspaceMenu.svelte.d.ts +2 -0
  401. package/package/components/sidebar/changelogs.js +55 -0
  402. package/package/components/table/DataTable.svelte +6 -14
  403. package/package/components/table/DataTable.svelte.d.ts +1 -0
  404. package/package/components/triggers/CaptureButton.svelte +51 -68
  405. package/package/components/triggers/CaptureSection.svelte +5 -2
  406. package/package/components/triggers/CaptureSection.svelte.d.ts +3 -1
  407. package/package/components/triggers/CaptureTable.svelte +61 -23
  408. package/package/components/triggers/CaptureWrapper.svelte +87 -46
  409. package/package/components/triggers/CaptureWrapper.svelte.d.ts +8 -4
  410. package/package/components/triggers/TestTriggerConnection.svelte +82 -0
  411. package/package/components/triggers/TestTriggerConnection.svelte.d.ts +21 -0
  412. package/package/components/triggers/TriggersEditor.svelte +46 -14
  413. package/package/components/triggers/TriggersEditorSection.svelte +53 -46
  414. package/package/components/triggers/TriggersEditorSection.svelte.d.ts +3 -0
  415. package/package/components/triggers/TriggersWrapper.svelte +26 -8
  416. package/package/components/triggers/{RouteEditorConfigSection.svelte → http/RouteEditorConfigSection.svelte} +57 -57
  417. package/package/components/triggers/{RouteEditorConfigSection.svelte.d.ts → http/RouteEditorConfigSection.svelte.d.ts} +8 -9
  418. package/package/components/triggers/{RouteEditorInner.svelte → http/RouteEditorInner.svelte} +190 -147
  419. package/package/components/triggers/{RoutesPanel.svelte → http/RoutesPanel.svelte} +44 -47
  420. package/package/components/triggers/{KafkaTriggerEditorInner.svelte → kafka/KafkaTriggerEditorInner.svelte} +23 -23
  421. package/package/components/triggers/{KafkaTriggersConfigSection.svelte → kafka/KafkaTriggersConfigSection.svelte} +29 -17
  422. package/package/components/triggers/{KafkaTriggersConfigSection.svelte.d.ts → kafka/KafkaTriggersConfigSection.svelte.d.ts} +5 -3
  423. package/package/components/triggers/{KafkaTriggersPanel.svelte → kafka/KafkaTriggersPanel.svelte} +40 -45
  424. package/package/components/triggers/{NatsTriggerEditorInner.svelte → nats/NatsTriggerEditorInner.svelte} +19 -20
  425. package/package/components/triggers/{NatsTriggersConfigSection.svelte → nats/NatsTriggersConfigSection.svelte} +25 -18
  426. package/package/components/triggers/{NatsTriggersConfigSection.svelte.d.ts → nats/NatsTriggersConfigSection.svelte.d.ts} +5 -3
  427. package/package/components/triggers/{NatsTriggersPanel.svelte → nats/NatsTriggersPanel.svelte} +41 -44
  428. package/package/components/triggers/postgres/CheckPostgresRequirement.svelte +71 -0
  429. package/package/components/triggers/postgres/CheckPostgresRequirement.svelte.d.ts +18 -0
  430. package/package/components/triggers/postgres/PostgresEditorConfigSection.svelte +152 -0
  431. package/package/components/triggers/postgres/PostgresEditorConfigSection.svelte.d.ts +40 -0
  432. package/package/components/triggers/postgres/PostgresTriggerEditor.svelte +19 -0
  433. package/package/components/triggers/postgres/PostgresTriggerEditor.svelte.d.ts +21 -0
  434. package/package/components/triggers/postgres/PostgresTriggerEditorInner.svelte +578 -0
  435. package/package/components/triggers/postgres/PostgresTriggerEditorInner.svelte.d.ts +21 -0
  436. package/package/components/triggers/postgres/PostgresTriggersPanel.svelte +112 -0
  437. package/package/components/triggers/postgres/PostgresTriggersPanel.svelte.d.ts +28 -0
  438. package/package/components/triggers/postgres/PublicationPicker.svelte +129 -0
  439. package/package/components/triggers/postgres/PublicationPicker.svelte.d.ts +23 -0
  440. package/package/components/triggers/postgres/RelationPicker.svelte +266 -0
  441. package/package/components/triggers/postgres/RelationPicker.svelte.d.ts +19 -0
  442. package/package/components/triggers/postgres/SlotPicker.svelte +92 -0
  443. package/package/components/triggers/postgres/SlotPicker.svelte.d.ts +18 -0
  444. package/package/components/triggers/postgres/utils.d.ts +5 -0
  445. package/package/components/triggers/postgres/utils.js +80 -0
  446. package/package/components/triggers/{ScheduledPollPanel.svelte → scheduled/ScheduledPollPanel.svelte} +3 -3
  447. package/package/components/triggers/sqs/SqsTriggerEditor.svelte +19 -0
  448. package/package/components/triggers/sqs/SqsTriggerEditor.svelte.d.ts +21 -0
  449. package/package/components/triggers/sqs/SqsTriggerEditorConfigSection.svelte +152 -0
  450. package/package/components/triggers/sqs/SqsTriggerEditorConfigSection.svelte.d.ts +40 -0
  451. package/package/components/triggers/sqs/SqsTriggerEditorInner.svelte +234 -0
  452. package/package/components/triggers/sqs/SqsTriggerEditorInner.svelte.d.ts +21 -0
  453. package/package/components/triggers/sqs/SqsTriggerPanel.svelte +123 -0
  454. package/package/components/triggers/sqs/SqsTriggerPanel.svelte.d.ts +28 -0
  455. package/package/components/triggers/{WebhooksConfigSection.svelte → webhook/WebhooksConfigSection.svelte} +26 -21
  456. package/package/components/triggers/{WebhooksConfigSection.svelte.d.ts → webhook/WebhooksConfigSection.svelte.d.ts} +6 -4
  457. package/package/components/triggers/{WebhooksPanel.svelte → webhook/WebhooksPanel.svelte} +5 -4
  458. package/package/components/triggers/{WebsocketEditorConfigSection.svelte → websocket/WebsocketEditorConfigSection.svelte} +42 -34
  459. package/package/components/triggers/{WebsocketEditorConfigSection.svelte.d.ts → websocket/WebsocketEditorConfigSection.svelte.d.ts} +5 -3
  460. package/package/components/triggers/{WebsocketTriggerEditorInner.svelte → websocket/WebsocketTriggerEditorInner.svelte} +62 -43
  461. package/package/components/triggers/{WebsocketTriggersPanel.svelte → websocket/WebsocketTriggersPanel.svelte} +45 -49
  462. package/package/components/triggers.d.ts +1 -1
  463. package/package/components/triggers.js +4 -0
  464. package/package/components/tutorials/FlowBuilderTutorialErrorHandler.svelte +1 -1
  465. package/package/components/wizards/AgChartWizard.svelte +26 -24
  466. package/package/components/wizards/AgGridWizard.svelte +166 -161
  467. package/package/components/wizards/ChartJSWizard.svelte +32 -30
  468. package/package/components/wizards/DBExplorerWizard.svelte +21 -12
  469. package/package/components/wizards/NavbarWizard.svelte +108 -107
  470. package/package/components/wizards/PlotlyWizard.svelte +84 -75
  471. package/package/components/wizards/TableActionsWizard.svelte +69 -66
  472. package/package/components/wizards/TableColumnWizard.svelte +52 -47
  473. package/package/gen/core/OpenAPI.js +1 -1
  474. package/package/gen/schemas.gen.d.ts +456 -111
  475. package/package/gen/schemas.gen.js +470 -112
  476. package/package/gen/services.gen.d.ts +429 -2
  477. package/package/gen/services.gen.js +890 -17
  478. package/package/gen/types.gen.d.ts +1491 -158
  479. package/package/hub.d.ts +3 -0
  480. package/package/hubPaths.json +5 -1
  481. package/package/inferArgSig.js +11 -4
  482. package/package/script_helpers.d.ts +5 -3
  483. package/package/script_helpers.js +138 -98
  484. package/package/scripts.d.ts +1 -1
  485. package/package/stores.d.ts +6 -3
  486. package/package/stores.js +5 -3
  487. package/package/utils.d.ts +15 -0
  488. package/package/utils.js +17 -3
  489. package/package/zIndexes.d.ts +2 -0
  490. package/package/zIndexes.js +3 -1
  491. package/package.json +5 -5
  492. package/package/components/CapturesInputs.svelte +0 -16
  493. package/package/components/CapturesInputs.svelte.d.ts +0 -21
  494. package/package/components/LightweightArgInput.svelte +0 -622
  495. package/package/components/LightweightArgInput.svelte.d.ts +0 -70
  496. package/package/components/LightweightObjectResourceInput.svelte +0 -40
  497. package/package/components/LightweightObjectResourceInput.svelte.d.ts +0 -19
  498. package/package/components/LightweightSchemaForm.svelte +0 -100
  499. package/package/components/LightweightSchemaForm.svelte.d.ts +0 -43
  500. package/package/components/common/button/ButtonDropdown.svelte +0 -61
  501. package/package/components/common/button/ButtonDropdown.svelte.d.ts +0 -22
  502. package/package/components/common/menu/MenuV2.svelte +0 -51
  503. package/package/components/common/menu/MenuV2.svelte.d.ts +0 -26
  504. package/package/components/common/popup/Popup.svelte +0 -66
  505. package/package/components/common/popup/Popup.svelte.d.ts +0 -35
  506. package/package/components/common/toggleButton-v2/ToggleEnable.svelte +0 -34
  507. package/package/components/common/toggleButton-v2/ToggleEnable.svelte.d.ts +0 -23
  508. package/package/components/details/Menu.svelte +0 -58
  509. package/package/components/details/Menu.svelte.d.ts +0 -16
  510. package/package/components/flows/map/FlowCopilotButton.svelte +0 -54
  511. package/package/components/flows/map/FlowCopilotButton.svelte.d.ts +0 -16
  512. package/package/components/meltComponents/ButtonDropDown.svelte +0 -32
  513. package/package/components/meltComponents/ButtonDropDown.svelte.d.ts +0 -27
  514. package/package/components/tutorials/TutorialItem.svelte +0 -27
  515. package/package/components/tutorials/TutorialItem.svelte.d.ts +0 -22
  516. /package/package/components/triggers/{RouteEditor.svelte → http/RouteEditor.svelte} +0 -0
  517. /package/package/components/triggers/{RouteEditor.svelte.d.ts → http/RouteEditor.svelte.d.ts} +0 -0
  518. /package/package/components/triggers/{RouteEditorInner.svelte.d.ts → http/RouteEditorInner.svelte.d.ts} +0 -0
  519. /package/package/components/triggers/{RoutesPanel.svelte.d.ts → http/RoutesPanel.svelte.d.ts} +0 -0
  520. /package/package/components/triggers/{KafkaTriggerEditor.svelte → kafka/KafkaTriggerEditor.svelte} +0 -0
  521. /package/package/components/triggers/{KafkaTriggerEditor.svelte.d.ts → kafka/KafkaTriggerEditor.svelte.d.ts} +0 -0
  522. /package/package/components/triggers/{KafkaTriggerEditorInner.svelte.d.ts → kafka/KafkaTriggerEditorInner.svelte.d.ts} +0 -0
  523. /package/package/components/triggers/{KafkaTriggersPanel.svelte.d.ts → kafka/KafkaTriggersPanel.svelte.d.ts} +0 -0
  524. /package/package/components/triggers/{NatsTriggerEditor.svelte → nats/NatsTriggerEditor.svelte} +0 -0
  525. /package/package/components/triggers/{NatsTriggerEditor.svelte.d.ts → nats/NatsTriggerEditor.svelte.d.ts} +0 -0
  526. /package/package/components/triggers/{NatsTriggerEditorInner.svelte.d.ts → nats/NatsTriggerEditorInner.svelte.d.ts} +0 -0
  527. /package/package/components/triggers/{NatsTriggersPanel.svelte.d.ts → nats/NatsTriggersPanel.svelte.d.ts} +0 -0
  528. /package/package/components/triggers/{ScheduledPollPanel.svelte.d.ts → scheduled/ScheduledPollPanel.svelte.d.ts} +0 -0
  529. /package/package/components/triggers/{WebhooksPanel.svelte.d.ts → webhook/WebhooksPanel.svelte.d.ts} +0 -0
  530. /package/package/components/triggers/{WebsocketTriggerEditor.svelte → websocket/WebsocketTriggerEditor.svelte} +0 -0
  531. /package/package/components/triggers/{WebsocketTriggerEditor.svelte.d.ts → websocket/WebsocketTriggerEditor.svelte.d.ts} +0 -0
  532. /package/package/components/triggers/{WebsocketTriggerEditorInner.svelte.d.ts → websocket/WebsocketTriggerEditorInner.svelte.d.ts} +0 -0
  533. /package/package/components/triggers/{WebsocketTriggersPanel.svelte.d.ts → websocket/WebsocketTriggersPanel.svelte.d.ts} +0 -0
@@ -1,20 +1,25 @@
1
- <script>import { Alert, Button, Tab, Tabs } from './common';
1
+ <script>import { Alert, Button, Tab, Tabs, Badge } from './common';
2
2
  import ScriptPicker from './ScriptPicker.svelte';
3
3
  import Toggle from './Toggle.svelte';
4
+ import Tooltip from './Tooltip.svelte';
4
5
  import { base } from '../base';
5
6
  import { enterpriseLicense, workspaceStore } from '../stores';
7
+ import MsTeamsIcon from './icons/MSTeamsIcon.svelte';
6
8
  import { emptySchema, emptyString, sendUserToast, tryEvery } from '../utils';
7
9
  import { FlowService, JobService, ScriptService, WorkspaceService } from '../gen';
8
10
  import { inferArgs } from '../infer';
9
11
  import { hubBaseUrlStore } from '../stores';
10
- import { CheckCircle2, Loader2, RotateCw, XCircle } from 'lucide-svelte';
12
+ import { CheckCircle2, Loader2, RotateCw, XCircle, RefreshCcw } from 'lucide-svelte';
11
13
  import { hubPaths } from '../hub';
12
14
  const slackRecoveryHandler = hubPaths.slackRecoveryHandler;
13
15
  const slackHandlerScriptPath = hubPaths.slackErrorHandler;
14
16
  const slackSuccessHandler = hubPaths.slackSuccessHandler;
17
+ const teamsRecoveryHandler = hubPaths.teamsRecoveryHandler;
18
+ const teamsHandlerScriptPath = hubPaths.teamsErrorHandler;
19
+ const teamsSuccessHandler = hubPaths.teamsSuccessHandler;
15
20
  export let errorOrRecovery;
16
21
  export let isEditable;
17
- export let slackToggleText = 'Enable';
22
+ export let toggleText = 'Enable';
18
23
  export let showScriptHelpText = false;
19
24
  export let handlerSelected;
20
25
  export let handlerPath;
@@ -24,8 +29,12 @@ export let customScriptTemplate;
24
29
  export let customHandlerKind = 'script';
25
30
  let customHandlerSchema;
26
31
  let slackHandlerSchema;
32
+ let isFetching = false;
33
+ let teams_channels = [];
34
+ let teams_team_name = undefined;
27
35
  let workspaceConnectedToSlack = undefined;
28
- let slackConnectionTestJob;
36
+ let workspaceConnectedToTeams = undefined;
37
+ let connectionTestJob;
29
38
  async function loadSlackResources() {
30
39
  const settings = await WorkspaceService.getSettings({ workspace: $workspaceStore });
31
40
  if (!emptyString(settings.slack_name) && !emptyString(settings.slack_team_id)) {
@@ -35,16 +44,36 @@ async function loadSlackResources() {
35
44
  workspaceConnectedToSlack = false;
36
45
  }
37
46
  }
38
- async function sendSlackMessage(channel) {
39
- let submitted_job = await WorkspaceService.runSlackMessageTestJob({
47
+ async function loadTeamsResources() {
48
+ isFetching = true;
49
+ const settings = await WorkspaceService.getSettings({ workspace: $workspaceStore });
50
+ if (!emptyString(settings.teams_team_name) && !emptyString(settings.teams_team_id)) {
51
+ workspaceConnectedToTeams = true;
52
+ }
53
+ else {
54
+ workspaceConnectedToTeams = false;
55
+ }
56
+ if (workspaceConnectedToTeams) {
57
+ teams_team_name = settings.teams_team_name;
58
+ teams_channels = await WorkspaceService.listAvailableTeamsChannels({
59
+ workspace: $workspaceStore
60
+ });
61
+ }
62
+ isFetching = false;
63
+ }
64
+ async function sendMessage(channel, platform) {
65
+ const testJobFunction = platform === 'slack'
66
+ ? WorkspaceService.runSlackMessageTestJob
67
+ : WorkspaceService.runTeamsMessageTestJob;
68
+ let submitted_job = await testJobFunction({
40
69
  workspace: $workspaceStore,
41
70
  requestBody: {
42
71
  hub_script_path: handlerPath,
43
72
  channel: channel,
44
- test_msg: `This is a notification to test the connection between Slack and Windmill workspace '${$workspaceStore}'`
73
+ test_msg: `This is a notification to test the connection between ${platform} and Windmill workspace '${$workspaceStore}'`
45
74
  }
46
75
  });
47
- slackConnectionTestJob = {
76
+ connectionTestJob = {
48
77
  uuid: submitted_job.job_uuid,
49
78
  in_progress: true,
50
79
  is_success: false
@@ -53,16 +82,16 @@ async function sendSlackMessage(channel) {
53
82
  tryCode: async () => {
54
83
  const testResult = await JobService.getCompletedJob({
55
84
  workspace: $workspaceStore,
56
- id: slackConnectionTestJob.uuid
85
+ id: connectionTestJob.uuid
57
86
  });
58
- slackConnectionTestJob.in_progress = false;
59
- slackConnectionTestJob.is_success = testResult.success;
87
+ connectionTestJob.in_progress = false;
88
+ connectionTestJob.is_success = testResult.success;
60
89
  },
61
90
  timeoutCode: async () => {
62
91
  try {
63
92
  await JobService.cancelQueuedJob({
64
93
  workspace: $workspaceStore,
65
- id: slackConnectionTestJob.uuid,
94
+ id: connectionTestJob.uuid,
66
95
  requestBody: {
67
96
  reason: 'Slack message not sent after 5s'
68
97
  }
@@ -76,6 +105,12 @@ async function sendSlackMessage(channel) {
76
105
  timeout: 5000
77
106
  });
78
107
  }
108
+ async function sendSlackMessage(channel) {
109
+ await sendMessage(channel, 'slack');
110
+ }
111
+ async function sendTeamsMessage(channel) {
112
+ await sendMessage(channel, 'teams');
113
+ }
79
114
  async function loadHandlerScriptArgs(p, defaultArgs = []) {
80
115
  try {
81
116
  let schema = emptySchema();
@@ -124,13 +159,49 @@ function isSlackHandler(scriptPath) {
124
159
  return scriptPath.startsWith('hub/') && scriptPath.endsWith('/schedule-success-handler-slack');
125
160
  }
126
161
  }
162
+ function isTeamsHandler(scriptPath) {
163
+ if (scriptPath === undefined) {
164
+ return false;
165
+ }
166
+ if (errorOrRecovery == 'error') {
167
+ return (scriptPath.startsWith('hub/') &&
168
+ scriptPath.endsWith('/workspace-or-schedule-error-handler-teams'));
169
+ }
170
+ else if (errorOrRecovery == 'recovery') {
171
+ return (scriptPath.startsWith('hub/') && scriptPath.endsWith('/schedule-recovery-handler-teams'));
172
+ }
173
+ else {
174
+ return scriptPath.startsWith('hub/') && scriptPath.endsWith('/schedule-success-handler-teams');
175
+ }
176
+ }
127
177
  $: {
128
178
  if ($workspaceStore) {
129
179
  loadSlackResources();
180
+ loadTeamsResources();
181
+ }
182
+ }
183
+ let lastHandlerSelected = undefined;
184
+ let channelCache = {
185
+ slack: undefined,
186
+ teams: undefined
187
+ };
188
+ $: {
189
+ if (lastHandlerSelected !== handlerSelected && lastHandlerSelected !== undefined) {
190
+ if (lastHandlerSelected === 'teams' || lastHandlerSelected === 'slack') {
191
+ channelCache[lastHandlerSelected] = handlerExtraArgs['channel'];
192
+ }
193
+ if (handlerSelected === 'custom') {
194
+ handlerExtraArgs['channel'] = '';
195
+ }
196
+ else {
197
+ handlerExtraArgs['channel'] = channelCache[handlerSelected] ?? '';
198
+ }
130
199
  }
200
+ lastHandlerSelected = handlerSelected;
131
201
  }
132
202
  $: handlerPath &&
133
203
  !isSlackHandler(handlerPath) &&
204
+ !isTeamsHandler(handlerPath) &&
134
205
  loadHandlerScriptArgs(handlerPath, [
135
206
  'path',
136
207
  'workspace_id',
@@ -169,6 +240,7 @@ $: handlerPath &&
169
240
  <div>
170
241
  <Tabs bind:selected={handlerSelected} class="mt-2 mb-4">
171
242
  <Tab value="slack" disabled={!isEditable}>Slack</Tab>
243
+ <Tab value="teams" disabled={!isEditable}>Teams</Tab>
172
244
  <Tab value="custom" disabled={!isEditable}>
173
245
  Custom
174
246
  <slot name="custom-tab-tooltip" />
@@ -231,7 +303,7 @@ $: handlerPath &&
231
303
  <Toggle
232
304
  disabled={!$enterpriseLicense || !isEditable}
233
305
  checked={isSlackHandler(handlerPath)}
234
- options={{ right: slackToggleText }}
306
+ options={{ right: toggleText }}
235
307
  on:change={async (e) => {
236
308
  if (e.detail && errorOrRecovery === 'error') {
237
309
  handlerPath = slackHandlerScriptPath
@@ -290,11 +362,116 @@ $: handlerPath &&
290
362
  on:click={() => sendSlackMessage(handlerExtraArgs['channel'])}
291
363
  size="xs">Send test message</Button
292
364
  >
293
- {#if slackConnectionTestJob !== undefined}
365
+ {#if connectionTestJob !== undefined}
366
+ <p class="text-normal text-2xs mt-1 gap-2">
367
+ {#if connectionTestJob.in_progress}
368
+ <RotateCw size={14} />
369
+ {:else if connectionTestJob.is_success}
370
+ <CheckCircle2 size={14} class="text-green-600" />
371
+ {:else}
372
+ <XCircle size={14} class="text-red-700" />
373
+ {/if}
374
+ Message sent via Windmill job
375
+ <a
376
+ target="_blank"
377
+ href={`${base}/run/${connectionTestJob.uuid}?workspace=${$workspaceStore}`}
378
+ >
379
+ {connectionTestJob.uuid}
380
+ </a>
381
+ </p>
382
+ {/if}
383
+ {/if}
384
+ {/if}
385
+ {:else if handlerSelected === 'teams'}
386
+ <span class="w-full flex mb-3">
387
+ <Toggle
388
+ disabled={!$enterpriseLicense || !isEditable}
389
+ checked={isTeamsHandler(handlerPath)}
390
+ options={{ right: toggleText }}
391
+ on:change={async (e) => {
392
+ if (e.detail && errorOrRecovery === 'error') {
393
+ handlerPath = teamsHandlerScriptPath
394
+ } else if (e.detail && errorOrRecovery === 'recovery') {
395
+ handlerPath = teamsRecoveryHandler
396
+ } else if (e.detail && errorOrRecovery === 'success') {
397
+ handlerPath = teamsSuccessHandler
398
+ } else {
399
+ handlerPath = undefined
400
+ }
401
+ }}
402
+ />
403
+ </span>
404
+ {#if workspaceConnectedToTeams}
405
+ <div class="w-2/3 flex flex-row items-center gap-2">
406
+ <div class="pt-1 flex-shrink-0">
407
+ <MsTeamsIcon height="24px" width="24px" />
408
+ </div>
409
+ <p class="text-sm">Teams Channel</p>
410
+ <div class="flex-grow">
411
+ <select class="w-full" bind:value={handlerExtraArgs['channel']}>
412
+ {#if teams_channels.length === 0}
413
+ <option value="" disabled selected>Bot not connected to any channel</option>
414
+ {:else}
415
+ <option value="" disabled selected>Select Teams channel</option>
416
+ {#each teams_channels as channel}
417
+ <option value={channel.channel_id}>
418
+ {channel.channel_name}
419
+ </option>
420
+ {/each}
421
+ {/if}
422
+ </select>
423
+ </div>
424
+ <div class="flex-shrink-0">
425
+ <button on:click={loadTeamsResources} class="flex items-center gap-1 mt-2">
426
+ <RefreshCcw size={16} class={isFetching ? 'animate-spin' : ''} />
427
+ </button>
428
+ </div>
429
+ </div>
430
+ <div class="flex flex-row gap-2 pb-4">
431
+ <p class="text-sm">
432
+ This workspace is connected to Team: <Badge color="blue" size="xs" class="mt-2">{teams_team_name}</Badge>
433
+ </p>
434
+ <Tooltip text={teams_team_name}>
435
+ Each workspace can only be connected to one Microsoft Teams team. You can configure it under <a
436
+ target="_blank"
437
+ href="{base}/workspace_settings?tab=teams">workspace settings</a
438
+ >.
439
+ </Tooltip>
440
+ </div>
441
+ {:else if workspaceConnectedToTeams == undefined}
442
+ <Loader2 class="animate-spin" size={10} />
443
+ {/if}
444
+ {#if $enterpriseLicense && isTeamsHandler(handlerPath)}
445
+ {#if workspaceConnectedToTeams == false}
446
+ <Alert type="error" title="Workspace not connected to Teams">
447
+ <div class="flex flex-row gap-x-1 w-full items-center">
448
+ <p class="text-clip grow min-w-0">
449
+ The workspace needs to be connected to Teams to use this feature. You can configure it
450
+ under <a target="_blank" href="{base}/workspace_settings?tab=teams"
451
+ >workspace settings</a
452
+ >.
453
+ </p>
454
+ <Button
455
+ variant="border"
456
+ color="light"
457
+ on:click={loadTeamsResources}
458
+ startIcon={{ icon: RotateCw }}
459
+ />
460
+ </div>
461
+ </Alert>
462
+ {:else}
463
+ <Button
464
+ disabled={emptyString(handlerExtraArgs['channel'])}
465
+ btnClasses="w-32 text-center"
466
+ color="dark"
467
+ on:click={() => sendTeamsMessage(handlerExtraArgs['channel'] ?? '')}
468
+ size="xs">Send test message</Button
469
+ >
470
+ {#if connectionTestJob !== undefined}
294
471
  <p class="text-normal text-2xs mt-1 gap-2">
295
- {#if slackConnectionTestJob.in_progress}
472
+ {#if connectionTestJob.in_progress}
296
473
  <RotateCw size={14} />
297
- {:else if slackConnectionTestJob.is_success}
474
+ {:else if connectionTestJob.is_success}
298
475
  <CheckCircle2 size={14} class="text-green-600" />
299
476
  {:else}
300
477
  <XCircle size={14} class="text-red-700" />
@@ -302,9 +479,9 @@ $: handlerPath &&
302
479
  Message sent via Windmill job
303
480
  <a
304
481
  target="_blank"
305
- href={`${base}/run/${slackConnectionTestJob.uuid}?workspace=${$workspaceStore}`}
482
+ href={`${base}/run/${connectionTestJob.uuid}?workspace=${$workspaceStore}`}
306
483
  >
307
- {slackConnectionTestJob.uuid}
484
+ {connectionTestJob.uuid}
308
485
  </a>
309
486
  </p>
310
487
  {/if}
@@ -3,9 +3,9 @@ declare const __propDef: {
3
3
  props: {
4
4
  errorOrRecovery: 'error' | 'recovery' | 'success';
5
5
  isEditable: boolean;
6
- slackToggleText?: string | undefined;
6
+ toggleText?: string | undefined;
7
7
  showScriptHelpText?: boolean | undefined;
8
- handlerSelected: 'custom' | 'slack';
8
+ handlerSelected: 'custom' | 'slack' | 'teams';
9
9
  handlerPath: string | undefined;
10
10
  handlerExtraArgs: Record<string, any>;
11
11
  customInitialScriptPath: string | undefined;
@@ -16,7 +16,7 @@ import { dfs, getPreviousIds } from './flows/previousResults';
16
16
  import FlowImportExportMenu from './flows/header/FlowImportExportMenu.svelte';
17
17
  import FlowPreviewButtons from './flows/header/FlowPreviewButtons.svelte';
18
18
  import { cleanInputs, emptyFlowModuleState } from './flows/utils';
19
- import { Calendar, Pen, Save, DiffIcon, MoreVertical, HistoryIcon, FileJson, CornerDownLeft } from 'lucide-svelte';
19
+ import { Calendar, Pen, Save, DiffIcon, HistoryIcon, FileJson, CornerDownLeft } from 'lucide-svelte';
20
20
  import { createEventDispatcher } from 'svelte';
21
21
  import Awareness from './Awareness.svelte';
22
22
  import { getAllModules } from './flows/flowExplorer';
@@ -27,12 +27,10 @@ import { fade } from 'svelte/transition';
27
27
  import { loadFlowModuleState, pickScript } from './flows/flowStateUtils';
28
28
  import FlowCopilotInputsModal from './copilot/FlowCopilotInputsModal.svelte';
29
29
  import FlowBuilderTutorials from './FlowBuilderTutorials.svelte';
30
+ import Dropdown from './DropdownV2.svelte';
30
31
  import FlowTutorials from './FlowTutorials.svelte';
31
32
  import { ignoredTutorials } from './tutorials/ignoredTutorials';
32
33
  import FlowHistory from './flows/FlowHistory.svelte';
33
- import ButtonDropdown from './common/button/ButtonDropdown.svelte';
34
- import { MenuItem } from '@rgossiaux/svelte-headlessui';
35
- import { twMerge } from 'tailwind-merge';
36
34
  import CustomPopover from './CustomPopover.svelte';
37
35
  import Summary from './Summary.svelte';
38
36
  import FlowYamlEditor from './flows/header/FlowYamlEditor.svelte';
@@ -59,6 +57,12 @@ let deployedBy = undefined; // Author
59
57
  let confirmCallback = () => { }; // What happens when user clicks `override` in warning
60
58
  let open = false; // Is confirmation modal open
61
59
  $: setContext('customUi', customUi);
60
+ export function getInitialAndModifiedValues() {
61
+ return {
62
+ savedValue: savedFlow,
63
+ modifiedValue: $flowStore
64
+ };
65
+ }
62
66
  let onLatest = true;
63
67
  async function compareVersions() {
64
68
  if (version === undefined) {
@@ -1140,33 +1144,7 @@ let flowPreviewButtons;
1140
1144
  {/if}
1141
1145
  <div>
1142
1146
  {#if moreItems?.length > 0}
1143
- <ButtonDropdown hasPadding={false}>
1144
- <svelte:fragment slot="buttonReplacement">
1145
- <Button nonCaptureEvent size="xs" color="light">
1146
- <div class="flex flex-row items-center">
1147
- <MoreVertical size={14} />
1148
- </div>
1149
- </Button>
1150
- </svelte:fragment>
1151
- <svelte:fragment slot="items">
1152
- {#each moreItems as item}
1153
- <MenuItem
1154
- on:click={item.action}
1155
- disabled={item.disabled}
1156
- class={item.disabled ? 'opacity-50' : ''}
1157
- >
1158
- <div
1159
- class={twMerge(
1160
- 'text-primary flex flex-row items-center text-left px-4 py-2 gap-2 cursor-pointer hover:bg-surface-hover !text-xs font-semibold'
1161
- )}
1162
- >
1163
- <svelte:component this={item.icon} size={14} />
1164
- {item.displayName}
1165
- </div>
1166
- </MenuItem>
1167
- {/each}
1168
- </svelte:fragment>
1169
- </ButtonDropdown>
1147
+ <Dropdown items={moreItems} />
1170
1148
  {/if}
1171
1149
  </div>
1172
1150
  {#if customUi?.topBar?.tutorials != false}
@@ -1221,6 +1199,7 @@ let flowPreviewButtons;
1221
1199
  showCaptureHint.set(true)
1222
1200
  }}
1223
1201
  bind:this={flowPreviewButtons}
1202
+ {loading}
1224
1203
  />
1225
1204
  <Button
1226
1205
  loading={loadingDraft}
@@ -5,6 +5,7 @@ import type { FlowState } from './flows/flowState';
5
5
  import type DiffDrawer from './DiffDrawer.svelte';
6
6
  import type { FlowBuilderWhitelabelCustomUi } from './custom_ui';
7
7
  import { type ScheduleTrigger } from './triggers';
8
+ import type { SavedAndModifiedValue } from './common/confirmationModal/unsavedTypes';
8
9
  declare const __propDef: {
9
10
  props: {
10
11
  initialPath?: string | undefined;
@@ -25,6 +26,7 @@ declare const __propDef: {
25
26
  savedPrimarySchedule?: ScheduleTrigger | undefined;
26
27
  version?: number | undefined;
27
28
  setSavedraftCb?: ((cb: () => void) => void) | undefined;
29
+ getInitialAndModifiedValues?: (() => SavedAndModifiedValue) | undefined;
28
30
  setPrimarySchedule?: ((schedule: ScheduleTrigger | undefined | false) => void) | undefined;
29
31
  saveDraft?: ((forceSave?: boolean) => Promise<void>) | undefined;
30
32
  computeUnlockedSteps?: ((flow: Flow) => {
@@ -53,6 +55,7 @@ export type FlowBuilderProps = typeof __propDef.props;
53
55
  export type FlowBuilderEvents = typeof __propDef.events;
54
56
  export type FlowBuilderSlots = typeof __propDef.slots;
55
57
  export default class FlowBuilder extends SvelteComponent<FlowBuilderProps, FlowBuilderEvents, FlowBuilderSlots> {
58
+ get getInitialAndModifiedValues(): () => SavedAndModifiedValue;
56
59
  get setPrimarySchedule(): (schedule: false | ScheduleTrigger | undefined) => void;
57
60
  get saveDraft(): (forceSave?: boolean) => Promise<void>;
58
61
  get computeUnlockedSteps(): (flow: Flow) => {
@@ -1,18 +1,43 @@
1
- <script>import { BookOpen } from 'lucide-svelte';
2
- import ButtonDropdown from './common/button/ButtonDropdown.svelte';
1
+ <script>import { BookOpen, CheckCircle, Circle, RefreshCw, CheckCheck } from 'lucide-svelte';
2
+ import Dropdown from './DropdownV2.svelte';
3
3
  import Button from './common/button/Button.svelte';
4
- import MenuItem from './common/menu/MenuItem.svelte';
5
- import { classNames } from '../utils';
6
4
  import { resetAllTodos, skipAllTodos } from '../tutorialUtils';
7
5
  import ConfirmationModal from './common/confirmationModal/ConfirmationModal.svelte';
8
- import TutorialItem from './tutorials/TutorialItem.svelte';
9
6
  import FlowTutorials from './FlowTutorials.svelte';
7
+ import { tutorialsToDo } from '../stores';
10
8
  let targetTutorial = undefined;
11
9
  let flowTutorials = undefined;
10
+ async function getTutorialItems() {
11
+ const tutorials = [
12
+ { displayName: 'Simple flow tutorials', id: 'action' },
13
+ { displayName: 'For loops tutorial', id: 'forloop' },
14
+ { displayName: 'Branch one tutorial', id: 'branchone' },
15
+ { displayName: 'Branch all tutorial', id: 'branchall' },
16
+ { displayName: 'Error handler', id: 'error-handler' }
17
+ ];
18
+ return [
19
+ ...tutorials.map((tutorial, index) => ({
20
+ displayName: tutorial.displayName,
21
+ action: () => flowTutorials?.runTutorialById(tutorial.id),
22
+ icon: $tutorialsToDo.includes(index) ? Circle : CheckCircle,
23
+ iconColor: $tutorialsToDo.includes(index) ? undefined : 'green'
24
+ })),
25
+ {
26
+ displayName: 'Skip tutorials',
27
+ action: () => skipAllTodos(),
28
+ icon: CheckCheck
29
+ },
30
+ {
31
+ displayName: 'Reset tutorials',
32
+ action: () => resetAllTodos(),
33
+ icon: RefreshCw
34
+ }
35
+ ];
36
+ }
12
37
  </script>
13
38
 
14
- <button on:pointerdown|stopPropagation>
15
- <ButtonDropdown hasPadding={false}>
39
+ {#key $tutorialsToDo}
40
+ <Dropdown items={getTutorialItems} class="w-fit">
16
41
  <svelte:fragment slot="buttonReplacement">
17
42
  <Button
18
43
  nonCaptureEvent
@@ -23,63 +48,8 @@ let flowTutorials = undefined;
23
48
  startIcon={{ icon: BookOpen }}
24
49
  />
25
50
  </svelte:fragment>
26
- <svelte:fragment slot="items">
27
- <TutorialItem
28
- on:click={() => flowTutorials?.runTutorialById('action')}
29
- label="Simple flow tutorial"
30
- index={0}
31
- />
32
-
33
- <TutorialItem
34
- on:click={() => flowTutorials?.runTutorialById('forloop')}
35
- label="For loops tutorial"
36
- index={1}
37
- />
38
-
39
- <TutorialItem
40
- on:click={() => flowTutorials?.runTutorialById('branchone')}
41
- label="Branch one tutorial"
42
- index={2}
43
- />
44
-
45
- <TutorialItem
46
- on:click={() => flowTutorials?.runTutorialById('branchall')}
47
- label="Branch all tutorial"
48
- index={3}
49
- />
50
-
51
- <TutorialItem
52
- on:click={() => flowTutorials?.runTutorialById('error-handler')}
53
- label="Error handler"
54
- index={4}
55
- />
56
-
57
- <div class="border-t border-surface-hover" />
58
- <MenuItem
59
- on:click={() => {
60
- resetAllTodos()
61
- }}
62
- >
63
- <div
64
- class={classNames(
65
- 'text-primary flex flex-row items-center text-left gap-2 cursor-pointer hover:bg-surface-hover !text-xs font-semibold'
66
- )}
67
- >
68
- Reset tutorials
69
- </div>
70
- </MenuItem>
71
- <MenuItem on:click={() => skipAllTodos()}>
72
- <div
73
- class={classNames(
74
- 'text-primary flex flex-row items-center text-left gap-2 cursor-pointer hover:bg-surface-hover !text-xs font-semibold'
75
- )}
76
- >
77
- Skip tutorials
78
- </div>
79
- </MenuItem>
80
- </svelte:fragment>
81
- </ButtonDropdown>
82
- </button>
51
+ </Dropdown>
52
+ {/key}
83
53
 
84
54
  <FlowTutorials
85
55
  bind:this={flowTutorials}
@@ -2,7 +2,6 @@ import { SvelteComponent } from "svelte";
2
2
  declare const __propDef: {
3
3
  props: Record<string, never>;
4
4
  events: {
5
- pointerdown: PointerEvent;
6
5
  reload: any;
7
6
  } & {
8
7
  [evt: string]: CustomEvent<any>;
@@ -0,0 +1,48 @@
1
+ <script>import { HistoryIcon } from 'lucide-svelte';
2
+ import { createEventDispatcher } from 'svelte';
3
+ import PopoverV2 from './meltComponents/Popover.svelte';
4
+ import HistoricInputs from './HistoricInputs.svelte';
5
+ import { workspaceStore } from '../stores';
6
+ import { JobService } from '../gen';
7
+ export let path;
8
+ export let selected = undefined;
9
+ const dispatch = createEventDispatcher();
10
+ async function loadInitial() {
11
+ let jobs = await JobService.listJobs({
12
+ workspace: $workspaceStore,
13
+ scriptPathExact: path,
14
+ jobKinds: ['flow', 'flowpreview'].join(','),
15
+ page: 1,
16
+ perPage: 1
17
+ });
18
+ if (jobs.length > 0) {
19
+ dispatch('select', { jobId: jobs[0].id, initial: true });
20
+ }
21
+ else {
22
+ dispatch('nohistory');
23
+ }
24
+ }
25
+ $: $workspaceStore && loadInitial();
26
+ </script>
27
+
28
+ <PopoverV2 closeButton={false}>
29
+ <svelte:fragment slot="trigger">
30
+ <HistoryIcon size={14} />
31
+ </svelte:fragment>
32
+ <svelte:fragment slot="content">
33
+ <div class="p-2 h-[400px] overflow-hidden w-80 border shadow-sm">
34
+ <HistoricInputs
35
+ on:select={(e) => {
36
+ if (e.detail) {
37
+ dispatch('select', { jobId: e.detail?.jobId, initial: false })
38
+ } else {
39
+ dispatch('unselect')
40
+ }
41
+ }}
42
+ {selected}
43
+ runnableId={path}
44
+ runnableType={'FlowPath'}
45
+ />
46
+ </div>
47
+ </svelte:fragment>
48
+ </PopoverV2>
@@ -0,0 +1,21 @@
1
+ import { SvelteComponent } from "svelte";
2
+ declare const __propDef: {
3
+ props: {
4
+ path: string;
5
+ selected?: string | undefined;
6
+ };
7
+ events: {
8
+ select: CustomEvent<any>;
9
+ unselect: CustomEvent<any>;
10
+ nohistory: CustomEvent<any>;
11
+ } & {
12
+ [evt: string]: CustomEvent<any>;
13
+ };
14
+ slots: {};
15
+ };
16
+ export type FlowHistoryJobPickerProps = typeof __propDef.props;
17
+ export type FlowHistoryJobPickerEvents = typeof __propDef.events;
18
+ export type FlowHistoryJobPickerSlots = typeof __propDef.slots;
19
+ export default class FlowHistoryJobPicker extends SvelteComponent<FlowHistoryJobPickerProps, FlowHistoryJobPickerEvents, FlowHistoryJobPickerSlots> {
20
+ }
21
+ export {};
@@ -22,16 +22,19 @@ export let downloadLogs = true;
22
22
  let lastJobId = undefined;
23
23
  let drawer = undefined;
24
24
  $: jobId != lastJobId && diffJobId();
25
+ let iteration = 0;
26
+ let logOffset = 0;
25
27
  async function diffJobId() {
26
28
  if (jobId != lastJobId) {
27
29
  lastJobId = jobId;
28
30
  logs = undefined;
29
31
  logOffset = 0;
32
+ iteration = 0;
30
33
  getLogs();
31
34
  }
32
35
  }
33
- let logOffset = 0;
34
36
  async function getLogs() {
37
+ iteration += 1;
35
38
  if (jobId) {
36
39
  const getUpdate = await JobService.getJobUpdates({
37
40
  workspace: workspaceId ?? $workspaceStore,
@@ -47,7 +50,7 @@ async function getLogs() {
47
50
  if (refreshLog) {
48
51
  getLogs();
49
52
  }
50
- }, 1000);
53
+ }, iteration < 10 ? 1000 : iteration < 20 ? 2000 : 5000);
51
54
  }
52
55
  }
53
56
  </script>
@@ -61,7 +64,7 @@ async function getLogs() {
61
64
  class:border={!noBorder}
62
65
  class="grid {!col
63
66
  ? 'grid-cols-2'
64
- : 'grid-rows-2'} shadow border border-tertiary-inverse grow overflow-hidden"
67
+ : 'grid-rows-2 max-h-screen'} shadow border border-tertiary-inverse grow overflow-hidden"
65
68
  >
66
69
  <div class="bg-surface {col ? '' : 'max-h-80'} p-1 overflow-auto relative">
67
70
  <span class="text-tertiary">Result</span>