windmill-components 1.433.0 → 1.444.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (286) hide show
  1. package/package/components/ArgInput.svelte +12 -16
  2. package/package/components/ArgInput.svelte.d.ts +1 -0
  3. package/package/components/AssignableTags.svelte +3 -1
  4. package/package/components/AssignableTags.svelte.d.ts +1 -0
  5. package/package/components/AuthSettings.svelte +248 -0
  6. package/package/components/AuthSettings.svelte.d.ts +19 -0
  7. package/package/components/AutoscalingConfigEditor.svelte +2 -2
  8. package/package/components/CronInput.svelte +2 -2
  9. package/package/components/DeployWorkspace.svelte +1 -1
  10. package/package/components/Description.svelte +9 -0
  11. package/package/components/Description.svelte.d.ts +18 -0
  12. package/package/components/Dev.svelte +18 -3
  13. package/package/components/DisplayResult.svelte +7 -4
  14. package/package/components/DisplayResult.svelte.d.ts +1 -0
  15. package/package/components/DropdownV2.svelte +2 -1
  16. package/package/components/DropdownV2.svelte.d.ts +1 -0
  17. package/package/components/EditableSchemaForm.svelte +2 -2
  18. package/package/components/Editor.svelte +9 -6
  19. package/package/components/Editor.svelte.d.ts +4 -2
  20. package/package/components/EditorBar.svelte +51 -6
  21. package/package/components/ErrorOrRecoveryHandler.svelte +4 -3
  22. package/package/components/ExecutionDuration.svelte +2 -1
  23. package/package/components/FieldHeader.svelte +9 -1
  24. package/package/components/FieldHeader.svelte.d.ts +1 -0
  25. package/package/components/FlowBuilder.svelte +16 -3
  26. package/package/components/FlowGraphViewer.svelte +2 -0
  27. package/package/components/FlowPreviewContent.svelte +6 -15
  28. package/package/components/FlowStatusViewerInner.svelte +80 -55
  29. package/package/components/FlowStatusViewerInner.svelte.d.ts +1 -0
  30. package/package/components/HighlightCode.svelte +3 -0
  31. package/package/components/InputTransformSchemaForm.svelte +1 -1
  32. package/package/components/InstanceSetting.svelte +774 -0
  33. package/package/components/InstanceSetting.svelte.d.ts +27 -0
  34. package/package/components/InstanceSettings.svelte +68 -1005
  35. package/package/components/InstanceSettings.svelte.d.ts +0 -4
  36. package/package/components/Label.svelte +16 -6
  37. package/package/components/Label.svelte.d.ts +3 -0
  38. package/package/components/Login.svelte +17 -9
  39. package/package/components/OAuthSetting.svelte +4 -3
  40. package/package/components/OauthExtraParams.svelte +1 -1
  41. package/package/components/OauthScopes.svelte +2 -2
  42. package/package/components/ObjectStoreConfigSettings.svelte +141 -128
  43. package/package/components/QueueMetricsDrawer.svelte +5 -5
  44. package/package/components/ResourceEditor.svelte +4 -0
  45. package/package/components/ResourceEditor.svelte.d.ts +1 -0
  46. package/package/components/ResourceEditorDrawer.svelte +15 -3
  47. package/package/components/ResourceEditorDrawer.svelte.d.ts +2 -2
  48. package/package/components/ResourcePicker.svelte +16 -5
  49. package/package/components/ResourcePicker.svelte.d.ts +1 -0
  50. package/package/components/ResultJobLoader.svelte.d.ts +1 -1
  51. package/package/components/RunPageSchedules.svelte +15 -10
  52. package/package/components/SavedInputs.svelte +1 -1
  53. package/package/components/ScheduleEditorInner.svelte +58 -27
  54. package/package/components/SchemaForm.svelte +7 -5
  55. package/package/components/SchemaForm.svelte.d.ts +1 -0
  56. package/package/components/ScriptBuilder.svelte +58 -5
  57. package/package/components/ScriptEditor.svelte +78 -40
  58. package/package/components/ScriptEditor.svelte.d.ts +17 -2
  59. package/package/components/ScriptPicker.svelte +41 -34
  60. package/package/components/ScriptPicker.svelte.d.ts +1 -0
  61. package/package/components/ScriptVersionHistory.svelte +1 -1
  62. package/package/components/Section.svelte +38 -35
  63. package/package/components/Section.svelte.d.ts +2 -0
  64. package/package/components/ServiceLogsInner.svelte +1 -1
  65. package/package/components/SimpleEditor.svelte +2 -0
  66. package/package/components/Subsection.svelte +52 -0
  67. package/package/components/Subsection.svelte.d.ts +27 -0
  68. package/package/components/SuperadminSettings.svelte +23 -13
  69. package/package/components/TemplateEditor.svelte +4 -3
  70. package/package/components/TestConnection.svelte +5 -0
  71. package/package/components/TestJobLoader.svelte +2 -1
  72. package/package/components/TestJobLoader.svelte.d.ts +1 -1
  73. package/package/components/Toggle.svelte +2 -4
  74. package/package/components/UserSettings.svelte +1 -1
  75. package/package/components/WorkerGroup.svelte +4 -4
  76. package/package/components/WorkerTagPicker.svelte +4 -2
  77. package/package/components/WorkerTagPicker.svelte.d.ts +1 -0
  78. package/package/components/WorkerTagSelect.svelte +2 -0
  79. package/package/components/WorkerTagSelect.svelte.d.ts +1 -0
  80. package/package/components/apps/components/display/AppDisplayComponent.svelte +2 -1
  81. package/package/components/apps/components/display/dbtable/utils.js +26 -1
  82. package/package/components/apps/components/helpers/RunnableComponent.svelte +8 -2
  83. package/package/components/apps/components/inputs/AppDateInput.svelte +7 -1
  84. package/package/components/apps/components/inputs/AppS3FileInput.svelte +1 -1
  85. package/package/components/apps/editor/AppEditor.svelte +5 -34
  86. package/package/components/apps/editor/AppEditor.svelte.d.ts +1 -0
  87. package/package/components/apps/editor/AppEditorBottomPanel.svelte +4 -7
  88. package/package/components/apps/editor/AppEditorBottomPanel.svelte.d.ts +1 -3
  89. package/package/components/apps/editor/AppEditorHeader.svelte +148 -58
  90. package/package/components/apps/editor/AppEditorHeader.svelte.d.ts +1 -0
  91. package/package/components/apps/editor/DeploymentHistory.svelte +1 -1
  92. package/package/components/apps/editor/RunnableJobPanel.svelte +6 -2
  93. package/package/components/apps/editor/RunnableJobPanel.svelte.d.ts +1 -0
  94. package/package/components/apps/editor/appUtils.d.ts +1 -0
  95. package/package/components/apps/editor/appUtils.js +17 -0
  96. package/package/components/apps/editor/component/components.d.ts +82 -81
  97. package/package/components/apps/editor/component/components.js +4 -3
  98. package/package/components/apps/editor/componentsPanel/ComponentList.svelte +1 -1
  99. package/package/components/apps/editor/componentsPanel/GroupList.svelte +12 -2
  100. package/package/components/apps/editor/contextPanel/ContextPanel.svelte +1 -1
  101. package/package/components/apps/editor/inlineScriptsPanel/InlineScriptEditorDrawer.svelte +1 -1
  102. package/package/components/apps/editor/inlineScriptsPanel/InlineScriptsPanel.svelte +53 -56
  103. package/package/components/apps/editor/inlineScriptsPanel/InlineScriptsPanelList.svelte +1 -1
  104. package/package/components/apps/editor/settingsPanel/inputEditor/EvalV2InputEditor.svelte +3 -2
  105. package/package/components/apps/editor/settingsPanel/inputEditor/StaticInputEditor.svelte +1 -1
  106. package/package/components/apps/editor/settingsPanel/mainInput/RunnableSelector.svelte +16 -9
  107. package/package/components/apps/editor/settingsPanel/mainInput/RunnableSelector.svelte.d.ts +1 -0
  108. package/package/components/apps/inputType.d.ts +2 -2
  109. package/package/components/apps/types.d.ts +2 -0
  110. package/package/components/common/alert/ConnectionIndicator.svelte +30 -0
  111. package/package/components/common/alert/ConnectionIndicator.svelte.d.ts +20 -0
  112. package/package/components/common/alert/Notification.svelte +15 -0
  113. package/package/components/common/alert/Notification.svelte.d.ts +17 -0
  114. package/package/components/common/button/AnimatedButton.svelte +1 -1
  115. package/package/components/common/button/RefreshButton.svelte +30 -0
  116. package/package/components/common/button/RefreshButton.svelte.d.ts +18 -0
  117. package/package/components/common/fileDownload/FileDownload.svelte +4 -3
  118. package/package/components/common/fileDownload/FileDownload.svelte.d.ts +1 -0
  119. package/package/components/common/fileUpload/FileUpload.svelte +3 -3
  120. package/package/components/common/languageIcons/LanguageIcon.svelte +5 -2
  121. package/package/components/common/layout/List.svelte +35 -0
  122. package/package/components/common/layout/List.svelte.d.ts +21 -0
  123. package/package/components/common/layout/ListElement.svelte +3 -0
  124. package/package/components/common/layout/ListElement.svelte.d.ts +27 -0
  125. package/package/components/common/menu/MenuV2.svelte +3 -2
  126. package/package/components/common/menu/MenuV2.svelte.d.ts +1 -0
  127. package/package/components/common/modal/Modal.svelte +6 -4
  128. package/package/components/common/modal/Modal.svelte.d.ts +1 -0
  129. package/package/components/common/modal/Modal2.svelte +101 -0
  130. package/package/components/common/modal/Modal2.svelte.d.ts +28 -0
  131. package/package/components/common/popup/Popup.svelte +5 -1
  132. package/package/components/common/popup/Popup.svelte.d.ts +2 -0
  133. package/package/components/common/toggleButton-v2/ToggleButton.svelte +1 -1
  134. package/package/components/copilot/FlowCopilotStatus.svelte +1 -1
  135. package/package/components/details/ClipboardPanel.svelte +12 -2
  136. package/package/components/details/ClipboardPanel.svelte.d.ts +2 -0
  137. package/package/components/details/CopyableCodeBlock.svelte +24 -0
  138. package/package/components/details/CopyableCodeBlock.svelte.d.ts +19 -0
  139. package/package/components/details/DetailPageLayout.svelte +3 -1
  140. package/package/components/details/EmailTriggerConfigSection.svelte +119 -0
  141. package/package/components/details/EmailTriggerConfigSection.svelte.d.ts +38 -0
  142. package/package/components/details/EmailTriggerPanel.svelte +27 -74
  143. package/package/components/details/EmailTriggerPanel.svelte.d.ts +7 -1
  144. package/package/components/flows/FlowEditor.svelte +1 -1
  145. package/package/components/flows/FlowEditor.svelte.d.ts +1 -0
  146. package/package/components/flows/FlowHistoryInner.svelte +1 -1
  147. package/package/components/flows/content/BranchPredicateEditor.svelte +1 -1
  148. package/package/components/flows/content/FlowEditorPanel.svelte +30 -1
  149. package/package/components/flows/content/FlowEditorPanel.svelte.d.ts +2 -0
  150. package/package/components/flows/content/FlowInput.svelte +2 -15
  151. package/package/components/flows/content/FlowInputs.svelte +1 -1
  152. package/package/components/flows/content/FlowInputsQuick.svelte +2 -2
  153. package/package/components/flows/content/FlowModuleComponent.svelte +9 -5
  154. package/package/components/flows/content/FlowModuleEarlyStop.svelte +2 -2
  155. package/package/components/flows/content/FlowModuleHeader.svelte +4 -1
  156. package/package/components/flows/content/FlowModuleSuspend.svelte +1 -1
  157. package/package/components/flows/content/FlowPathViewer.svelte +3 -1
  158. package/package/components/flows/content/FlowRetries.svelte +32 -5
  159. package/package/components/flows/content/FlowSettings.svelte +56 -48
  160. package/package/components/flows/flowStateUtils.d.ts +10 -1
  161. package/package/components/flows/flowStateUtils.js +23 -0
  162. package/package/components/flows/map/FlowModuleSchemaMap.svelte +9 -19
  163. package/package/components/flows/map/InsertModuleButton.svelte +3 -3
  164. package/package/components/flows/map/VirtualItem.svelte +29 -1
  165. package/package/components/flows/map/VirtualItem.svelte.d.ts +2 -0
  166. package/package/components/flows/pickers/TopLevelNode.svelte +2 -2
  167. package/package/components/flows/previousResults.js +8 -2
  168. package/package/components/flows/types.d.ts +1 -0
  169. package/package/components/graph/FlowGraphV2.svelte +16 -2
  170. package/package/components/graph/FlowGraphV2.svelte.d.ts +2 -0
  171. package/package/components/graph/graphBuilder.js +1 -0
  172. package/package/components/graph/renderers/nodes/InputNode.svelte +2 -0
  173. package/package/components/graph/renderers/nodes/InputNode.svelte.d.ts +2 -0
  174. package/package/components/graph/renderers/triggers/TriggersWrapper.svelte +1 -1
  175. package/package/components/icons/CSharpIcon.svelte +14 -0
  176. package/package/components/icons/CSharpIcon.svelte.d.ts +25 -0
  177. package/package/components/icons/GitIcon.svelte +5 -2
  178. package/package/components/icons/XeroIcon.svelte +24 -0
  179. package/package/components/icons/XeroIcon.svelte.d.ts +17 -0
  180. package/package/components/icons/index.d.ts +3 -1
  181. package/package/components/icons/index.js +4 -2
  182. package/package/components/instanceSettings.d.ts +3 -1
  183. package/package/components/instanceSettings.js +77 -69
  184. package/package/components/meltComponents/Popover.svelte +82 -0
  185. package/package/components/meltComponents/Popover.svelte.d.ts +21 -0
  186. package/package/components/propertyPicker/PropPicker.svelte +5 -3
  187. package/package/components/runs/JobLoader.svelte +5 -2
  188. package/package/components/runs/JobPreview.svelte +5 -5
  189. package/package/components/runs/RunRow.svelte +3 -4
  190. package/package/components/runs/RunsFilter.svelte +4 -4
  191. package/package/components/schema/EditableSchemaDrawer.svelte +4 -4
  192. package/package/components/schema/PropertyEditor.svelte +1 -1
  193. package/package/components/schema/SchemaFormDND.svelte +2 -0
  194. package/package/components/schema/SchemaFormDND.svelte.d.ts +1 -0
  195. package/package/components/scriptEditor/LogPanel.svelte +176 -164
  196. package/package/components/scriptEditor/LogPanel.svelte.d.ts +2 -0
  197. package/package/components/search/GlobalSearchModal.svelte +3 -3
  198. package/package/components/sidebar/CriticalAlertModal.svelte +155 -9
  199. package/package/components/sidebar/CriticalAlertModalInner.svelte +65 -212
  200. package/package/components/sidebar/CriticalAlertModalInner.svelte.d.ts +2 -4
  201. package/package/components/sidebar/CriticalAlertTable.svelte +142 -0
  202. package/package/components/sidebar/CriticalAlertTable.svelte.d.ts +25 -0
  203. package/package/components/sidebar/OperatorMenu.svelte +30 -8
  204. package/package/components/sidebar/SideBarNotification.svelte +3 -6
  205. package/package/components/sidebar/SidebarContent.svelte +5 -5
  206. package/package/components/sidebar/WorkspaceMenu.svelte +9 -5
  207. package/package/components/sidebar/WorkspaceMenu.svelte.d.ts +1 -0
  208. package/package/components/sidebar/changelogs.js +82 -17
  209. package/package/components/splitPanes/SplitPanesOrColumnOnMobile.svelte +21 -21
  210. package/package/components/table/AutoDataTable.svelte +1 -1
  211. package/package/components/table/Cell.svelte +5 -3
  212. package/package/components/table/Cell.svelte.d.ts +1 -0
  213. package/package/components/table/DataTable.svelte +65 -58
  214. package/package/components/table/DataTable.svelte.d.ts +2 -0
  215. package/package/components/table/Head.svelte +1 -1
  216. package/package/components/table/Row.svelte +3 -1
  217. package/package/components/table/Row.svelte.d.ts +1 -0
  218. package/package/components/toast.js +3 -1
  219. package/package/components/triggers/CaptureButton.svelte +77 -0
  220. package/package/components/triggers/CaptureButton.svelte.d.ts +16 -0
  221. package/package/components/triggers/CaptureIcon.svelte +17 -0
  222. package/package/components/triggers/CaptureIcon.svelte.d.ts +23 -0
  223. package/package/components/triggers/CaptureSection.svelte +76 -0
  224. package/package/components/triggers/CaptureSection.svelte.d.ts +42 -0
  225. package/package/components/triggers/CaptureTable.svelte +224 -0
  226. package/package/components/triggers/CaptureTable.svelte.d.ts +43 -0
  227. package/package/components/triggers/CaptureWrapper.svelte +237 -0
  228. package/package/components/triggers/CaptureWrapper.svelte.d.ts +35 -0
  229. package/package/components/triggers/KafkaTriggerEditor.svelte +2 -2
  230. package/package/components/triggers/KafkaTriggerEditor.svelte.d.ts +2 -2
  231. package/package/components/triggers/KafkaTriggerEditorInner.svelte +47 -119
  232. package/package/components/triggers/KafkaTriggerEditorInner.svelte.d.ts +2 -2
  233. package/package/components/triggers/KafkaTriggersConfigSection.svelte +215 -0
  234. package/package/components/triggers/KafkaTriggersConfigSection.svelte.d.ts +36 -0
  235. package/package/components/triggers/KafkaTriggersPanel.svelte +73 -45
  236. package/package/components/triggers/KafkaTriggersPanel.svelte.d.ts +6 -0
  237. package/package/components/triggers/RouteEditor.svelte +2 -2
  238. package/package/components/triggers/RouteEditor.svelte.d.ts +2 -2
  239. package/package/components/triggers/RouteEditorConfigSection.svelte +162 -0
  240. package/package/components/triggers/RouteEditorConfigSection.svelte.d.ts +43 -0
  241. package/package/components/triggers/RouteEditorInner.svelte +98 -163
  242. package/package/components/triggers/RouteEditorInner.svelte.d.ts +2 -2
  243. package/package/components/triggers/RoutesPanel.svelte +69 -54
  244. package/package/components/triggers/RoutesPanel.svelte.d.ts +5 -0
  245. package/package/components/triggers/ScheduledPollPanel.svelte +5 -9
  246. package/package/components/triggers/TriggersEditor.svelte +119 -89
  247. package/package/components/triggers/TriggersEditor.svelte.d.ts +7 -0
  248. package/package/components/triggers/TriggersEditorSection.svelte +109 -0
  249. package/package/components/triggers/TriggersEditorSection.svelte.d.ts +29 -0
  250. package/package/components/triggers/TriggersWrapper.svelte +60 -0
  251. package/package/components/triggers/TriggersWrapper.svelte.d.ts +21 -0
  252. package/package/components/triggers/WebhooksConfigSection.svelte +382 -0
  253. package/package/components/triggers/WebhooksConfigSection.svelte.d.ts +39 -0
  254. package/package/components/triggers/WebhooksPanel.svelte +32 -331
  255. package/package/components/triggers/WebhooksPanel.svelte.d.ts +7 -1
  256. package/package/components/triggers/WebsocketEditorConfigSection.svelte +176 -0
  257. package/package/components/triggers/WebsocketEditorConfigSection.svelte.d.ts +37 -0
  258. package/package/components/triggers/WebsocketTriggerEditor.svelte +2 -2
  259. package/package/components/triggers/WebsocketTriggerEditor.svelte.d.ts +2 -2
  260. package/package/components/triggers/WebsocketTriggerEditorInner.svelte +29 -150
  261. package/package/components/triggers/WebsocketTriggerEditorInner.svelte.d.ts +2 -2
  262. package/package/components/triggers/WebsocketTriggersPanel.svelte +70 -45
  263. package/package/components/triggers/WebsocketTriggersPanel.svelte.d.ts +6 -0
  264. package/package/components/triggers.d.ts +6 -2
  265. package/package/components/triggers.js +16 -0
  266. package/package/components/wizards/AgGridWizard.svelte +4 -4
  267. package/package/editorUtils.d.ts +2 -0
  268. package/package/editorUtils.js +6 -3
  269. package/package/gen/core/OpenAPI.js +1 -1
  270. package/package/gen/schemas.gen.d.ts +17 -8
  271. package/package/gen/schemas.gen.js +17 -8
  272. package/package/gen/services.gen.d.ts +55 -5
  273. package/package/gen/services.gen.js +108 -5
  274. package/package/gen/types.gen.d.ts +180 -13
  275. package/package/hubPaths.json +6 -3
  276. package/package/infer.js +9 -0
  277. package/package/script_helpers.d.ts +5 -0
  278. package/package/script_helpers.js +68 -8
  279. package/package/scripts.d.ts +1 -1
  280. package/package/scripts.js +5 -1
  281. package/package/stores.d.ts +1 -0
  282. package/package/utils.d.ts +3 -1
  283. package/package/utils.js +20 -4
  284. package/package.json +11 -8
  285. package/package/components/flows/content/CapturePayload.svelte +0 -114
  286. package/package/components/flows/content/CapturePayload.svelte.d.ts +0 -17
@@ -0,0 +1,27 @@
1
+ /** @typedef {typeof __propDef.props} ListElementProps */
2
+ /** @typedef {typeof __propDef.events} ListElementEvents */
3
+ /** @typedef {typeof __propDef.slots} ListElementSlots */
4
+ export default class ListElement extends SvelteComponent<{
5
+ [x: string]: never;
6
+ }, {
7
+ [evt: string]: CustomEvent<any>;
8
+ }, {
9
+ default: {};
10
+ }> {
11
+ }
12
+ export type ListElementProps = typeof __propDef.props;
13
+ export type ListElementEvents = typeof __propDef.events;
14
+ export type ListElementSlots = typeof __propDef.slots;
15
+ import { SvelteComponent } from "svelte";
16
+ declare const __propDef: {
17
+ props: {
18
+ [x: string]: never;
19
+ };
20
+ events: {
21
+ [evt: string]: CustomEvent<any>;
22
+ };
23
+ slots: {
24
+ default: {};
25
+ };
26
+ };
27
+ export {};
@@ -8,6 +8,7 @@ export let placement = 'bottom-start';
8
8
  export let justifyEnd = false;
9
9
  export let lightMode = false;
10
10
  export let maxHeight = 900;
11
+ export let disabled = false;
11
12
  const [floatingRef, floatingContent] = createFloatingActions({
12
13
  strategy: 'fixed',
13
14
  middleware: [offset(), flip(), shift()],
@@ -15,10 +16,10 @@ const [floatingRef, floatingContent] = createFloatingActions({
15
16
  });
16
17
  </script>
17
18
 
18
- <Menu let:open as="div" class="relative hover:z-50 flex w-full h-8">
19
+ <Menu let:open as="div" class="relative hover:z-50 flex w-full h-8">
19
20
  <ResolveOpen {open} on:open on:close />
20
21
  <div use:floatingRef class="w-full">
21
- <MenuButton class={twMerge('w-full', justifyEnd ? 'flex justify-end' : '')}>
22
+ <MenuButton class={twMerge('w-full', justifyEnd ? 'flex justify-end' : '')} disabled={disabled}>
22
23
  <slot name="trigger" />
23
24
  </MenuButton>
24
25
  </div>
@@ -5,6 +5,7 @@ declare const __propDef: {
5
5
  justifyEnd?: boolean | undefined;
6
6
  lightMode?: boolean | undefined;
7
7
  maxHeight?: number | undefined;
8
+ disabled?: boolean | undefined;
8
9
  };
9
10
  events: {
10
11
  open: CustomEvent<any>;
@@ -66,10 +66,12 @@ function fadeFast(node) {
66
66
  >
67
67
  <div class="flex">
68
68
  <div class="ml-4 text-left flex-1">
69
- <h3 class="text-lg font-medium text-primary">
70
- {title}
71
- </h3>
72
- <div class="mt-2 text-sm text-tertiary">
69
+ <div class="flex flex-row items-center justify-between">
70
+ <h3>{title}</h3>
71
+ <slot name="settings" />
72
+ </div>
73
+
74
+ <div class="mt-4 text-sm text-tertiary">
73
75
  <slot />
74
76
  </div>
75
77
  </div>
@@ -15,6 +15,7 @@ declare const __propDef: {
15
15
  [evt: string]: CustomEvent<any>;
16
16
  };
17
17
  slots: {
18
+ settings: {};
18
19
  default: {};
19
20
  actions: {};
20
21
  };
@@ -0,0 +1,101 @@
1
+ <script>import Portal from '../../Portal.svelte';
2
+ import { twMerge } from 'tailwind-merge';
3
+ import { clickOutside } from '../../../utils';
4
+ import { X } from 'lucide-svelte';
5
+ import List from '../layout/List.svelte';
6
+ import { fade } from 'svelte/transition';
7
+ export let title;
8
+ export let css = {};
9
+ export let target = '';
10
+ export let isOpen = false;
11
+ export let fixedSize = 'md';
12
+ // Add size mapping with custom pixel values
13
+ const sizeStyles = {
14
+ xs: { width: '400px', height: '250px' },
15
+ sm: { width: '600px', height: '400px' },
16
+ md: { width: '800px', height: '500px' },
17
+ lg: { width: '1400px', height: '720px' },
18
+ xl: { width: '1600px', height: '800px' },
19
+ xxl: { width: '1600px', height: '1000px' }
20
+ };
21
+ export function close() {
22
+ isOpen = false;
23
+ }
24
+ export function open() {
25
+ isOpen = true;
26
+ }
27
+ function handleKeyDown(event) {
28
+ if (event.key === 'Escape') {
29
+ event.preventDefault();
30
+ event.stopPropagation();
31
+ close();
32
+ }
33
+ }
34
+ function fadeFast(node) {
35
+ return fade(node, { duration: 200 });
36
+ }
37
+ </script>
38
+
39
+ <svelte:window on:keydown={handleKeyDown} />
40
+
41
+ {#if isOpen}
42
+ <Portal name="always-mounted" {target}>
43
+ <div
44
+ class={'fixed top-0 bottom-0 left-0 right-0 transition-all overflow-auto z-[1100] bg-black bg-opacity-60 w-full h-full'}
45
+ transition:fadeFast|local
46
+ >
47
+ <div class="flex min-h-full items-center justify-center p-8">
48
+ <div
49
+ style={`width: ${sizeStyles[fixedSize].width}; height: ${sizeStyles[fixedSize].height}; ${
50
+ css?.popup?.style || ''
51
+ }`}
52
+ class={twMerge(
53
+ 'max-h-screen-80 max-w-screen-80 rounded-lg relative bg-surface pt-2 px-4 pb-4',
54
+ css?.popup?.class,
55
+ 'wm-modal-form-popup'
56
+ )}
57
+ use:clickOutside
58
+ on:click_outside={() => {
59
+ close()
60
+ }}
61
+ >
62
+ <List gap="md">
63
+ <div class="flex w-full">
64
+ <List horizontal justify="between">
65
+ <h3>{title}</h3>
66
+ <div class="grow w-min-0">
67
+ <List horizontal justify="between">
68
+ <div class="min-w-0 grow">
69
+ <slot name="header-left" />
70
+ </div>
71
+ <div class="min-w-0 grow-0 justify-end">
72
+ <List horizontal justify="end">
73
+ <slot name="header-right" />
74
+ <div class="w-8">
75
+ <button
76
+ on:click={() => {
77
+ isOpen = false
78
+ }}
79
+ class="hover:bg-surface-hover rounded-full w-8 h-8 flex items-center justify-center transition-all"
80
+ >
81
+ <X class="text-tertiary " />
82
+ </button>
83
+ </div>
84
+ </List>
85
+ </div>
86
+ </List>
87
+ </div>
88
+ </List>
89
+ </div>
90
+
91
+ <!-- svelte-ignore a11y-click-events-have-key-events -->
92
+ <!-- svelte-ignore a11y-no-static-element-interactions -->
93
+ <div class="w-full flex grow min-h-0" on:click|stopPropagation={() => {}}>
94
+ <slot />
95
+ </div>
96
+ </List>
97
+ </div>
98
+ </div>
99
+ </div>
100
+ </Portal>
101
+ {/if}
@@ -0,0 +1,28 @@
1
+ import { SvelteComponent } from "svelte";
2
+ declare const __propDef: {
3
+ props: {
4
+ title: string;
5
+ css?: any;
6
+ target?: string | undefined;
7
+ isOpen?: boolean | undefined;
8
+ fixedSize?: "xs" | "sm" | "md" | "lg" | "xl" | "xxl" | undefined;
9
+ close?: (() => void) | undefined;
10
+ open?: (() => void) | undefined;
11
+ };
12
+ events: {
13
+ [evt: string]: CustomEvent<any>;
14
+ };
15
+ slots: {
16
+ 'header-left': {};
17
+ 'header-right': {};
18
+ default: {};
19
+ };
20
+ };
21
+ export type Modal2Props = typeof __propDef.props;
22
+ export type Modal2Events = typeof __propDef.events;
23
+ export type Modal2Slots = typeof __propDef.slots;
24
+ export default class Modal2 extends SvelteComponent<Modal2Props, Modal2Events, Modal2Slots> {
25
+ get close(): () => void;
26
+ get open(): () => void;
27
+ }
28
+ export {};
@@ -13,10 +13,12 @@ export let shouldUsePortal = true;
13
13
  export let target = undefined;
14
14
  export let noTransition = false;
15
15
  export let popupHover = false;
16
+ export let preventPopupClosingOnClickInside = false;
17
+ export let disabled = false;
16
18
  </script>
17
19
 
18
20
  <Popover on:close class="leading-none">
19
- <PopoverButton let:open>
21
+ <PopoverButton let:open {disabled}>
20
22
  <div use:floatingRef>
21
23
  <slot name="button" {open} />
22
24
  </div>
@@ -24,6 +26,7 @@ export let popupHover = false;
24
26
  <ConditionalPortal condition={shouldUsePortal} {target}>
25
27
  <!-- svelte-ignore a11y-no-static-element-interactions -->
26
28
  <!-- svelte-ignore a11y-mouse-events-have-key-events -->
29
+ <!-- svelte-ignore a11y-click-events-have-key-events -->
27
30
  <div
28
31
  use:floatingContent
29
32
  class={`z5000 ${floatingClasses}`}
@@ -33,6 +36,7 @@ export let popupHover = false;
33
36
  on:mouseleave={() => {
34
37
  popupHover = false
35
38
  }}
39
+ on:click={(e) => preventPopupClosingOnClickInside && e.stopPropagation()}
36
40
  >
37
41
  {#if !noTransition}
38
42
  <Transition
@@ -10,6 +10,8 @@ declare const __propDef: {
10
10
  target?: string | HTMLElement | undefined;
11
11
  noTransition?: boolean | undefined;
12
12
  popupHover?: boolean | undefined;
13
+ preventPopupClosingOnClickInside?: boolean | undefined;
14
+ disabled?: boolean | undefined;
13
15
  };
14
16
  events: {
15
17
  close: CustomEvent<any>;
@@ -43,7 +43,7 @@ const { select, selected } = getContext('ToggleButtonGroup');
43
43
  {#if icon}
44
44
  <svelte:component
45
45
  this={icon}
46
- size={14}
46
+ size={small ? 12 : 14}
47
47
  color={$selected === value ? selectedColor : '#9CA3AF'}
48
48
  {...iconProps}
49
49
  />
@@ -120,7 +120,7 @@ $: copilotStatus && copilotPopover?.refresh();
120
120
  variant={'border'}
121
121
  nonCaptureEvent
122
122
  >
123
- AI Builder
123
+ AI builder
124
124
  </Button>
125
125
  </svelte:fragment>
126
126
  <div class="block text-primary">
@@ -1,7 +1,10 @@
1
1
  <script>import { copyToClipboard } from '../../utils';
2
2
  import { Clipboard } from 'lucide-svelte';
3
+ import { twMerge } from 'tailwind-merge';
3
4
  export let content;
4
5
  export let title = undefined;
6
+ export let size = 'sm';
7
+ export let disabled = false;
5
8
  </script>
6
9
 
7
10
  {#if title !== undefined}
@@ -11,12 +14,19 @@ export let title = undefined;
11
14
  <!-- svelte-ignore a11y-click-events-have-key-events -->
12
15
  <!-- svelte-ignore a11y-no-static-element-interactions -->
13
16
  <div
14
- class="grow min-w-0 w-full px-2 py-1 border flex items-center cursor-pointer bg-surface-secondary text-primary justify-between rounded-md"
17
+ class="grow min-w-0 w-full px-2 py-1 border flex items-center bg-surface-secondary text-primary justify-between rounded-md"
18
+ class:cursor-not-allowed={disabled}
19
+ class:cursor-pointer={!disabled}
15
20
  on:click={(e) => {
21
+ if (disabled) {
22
+ return
23
+ }
16
24
  e.preventDefault()
17
25
  copyToClipboard(content)
18
26
  }}
19
27
  >
20
- <div class="text-xs truncate whitespace-no-wrap grow">{content}</div>
28
+ <div class={twMerge('truncate whitespace-no-wrap grow', size === 'sm' ? 'text-xs' : 'text-sm')}
29
+ >{content}</div
30
+ >
21
31
  <Clipboard size={12} class="flex-shrink-0" />
22
32
  </div>
@@ -3,6 +3,8 @@ declare const __propDef: {
3
3
  props: {
4
4
  content: string;
5
5
  title?: string | undefined;
6
+ size?: "sm" | "md" | undefined;
7
+ disabled?: boolean | undefined;
6
8
  };
7
9
  events: {
8
10
  [evt: string]: CustomEvent<any>;
@@ -0,0 +1,24 @@
1
+ <script>import { copyToClipboard } from '../../utils';
2
+ import { Clipboard } from 'lucide-svelte';
3
+ import Highlight from 'svelte-highlight';
4
+ export let code;
5
+ export let language;
6
+ export let disabled = false;
7
+ </script>
8
+
9
+ <!-- svelte-ignore a11y-click-events-have-key-events -->
10
+ <!-- svelte-ignore a11y-no-static-element-interactions -->
11
+ <div
12
+ class="flex flex-row flex-1 border p-2 rounded-md overflow-auto relative"
13
+ class:cursor-not-allowed={disabled}
14
+ on:click={(e) => {
15
+ if (disabled) {
16
+ return
17
+ }
18
+ e.preventDefault()
19
+ copyToClipboard(code)
20
+ }}
21
+ >
22
+ <Highlight {language} {code} class="pointer-events-none" />
23
+ <Clipboard size={14} class="w-8 top-2 right-2 absolute" />
24
+ </div>
@@ -0,0 +1,19 @@
1
+ import { SvelteComponent } from "svelte";
2
+ import type { LanguageType } from 'svelte-highlight/languages';
3
+ declare const __propDef: {
4
+ props: {
5
+ code: string;
6
+ language: LanguageType<string>;
7
+ disabled?: boolean | undefined;
8
+ };
9
+ events: {
10
+ [evt: string]: CustomEvent<any>;
11
+ };
12
+ slots: {};
13
+ };
14
+ export type CopyableCodeBlockProps = typeof __propDef.props;
15
+ export type CopyableCodeBlockEvents = typeof __propDef.events;
16
+ export type CopyableCodeBlockSlots = typeof __propDef.slots;
17
+ export default class CopyableCodeBlock extends SvelteComponent<CopyableCodeBlockProps, CopyableCodeBlockEvents, CopyableCodeBlockSlots> {
18
+ }
19
+ export {};
@@ -18,7 +18,9 @@ setContext('TriggerContext', {
18
18
  selectedTrigger: selectedTriggerStore,
19
19
  primarySchedule: primaryScheduleStore,
20
20
  triggersCount,
21
- simplifiedPoll
21
+ simplifiedPoll,
22
+ defaultValues: writable(undefined),
23
+ captureOn: writable(undefined)
22
24
  });
23
25
  </script>
24
26
 
@@ -0,0 +1,119 @@
1
+ <script>import Button from '../common/button/Button.svelte';
2
+ import Label from '../Label.svelte';
3
+ import Tooltip from '../Tooltip.svelte';
4
+ import { AlertTriangle } from 'lucide-svelte';
5
+ import { workspaceStore } from '../../stores';
6
+ import { SCRIPT_VIEW_SHOW_CREATE_TOKEN_BUTTON } from '../../consts';
7
+ import ToggleButton from '../common/toggleButton-v2/ToggleButton.svelte';
8
+ import ToggleButtonGroup from '../common/toggleButton-v2/ToggleButtonGroup.svelte';
9
+ import ClipboardPanel from './ClipboardPanel.svelte';
10
+ import Alert from '../common/alert/Alert.svelte';
11
+ import { base32 } from 'rfc4648';
12
+ import CaptureSection, {} from '../triggers/CaptureSection.svelte';
13
+ import CaptureTable from '../triggers/CaptureTable.svelte';
14
+ export let token = '';
15
+ export let isFlow = false;
16
+ export let hash = undefined;
17
+ export let path;
18
+ export let userSettings;
19
+ export let emailDomain = null;
20
+ export let showCapture = false;
21
+ export let captureInfo = undefined;
22
+ export let captureTable = undefined;
23
+ let requestType = 'path';
24
+ function getCaptureEmail() {
25
+ const cleanedPath = path.replaceAll('/', '.');
26
+ const plainPrefix = `capture+${$workspaceStore}+${(isFlow ? 'flow.' : '') + cleanedPath}`;
27
+ const encodedPrefix = base32
28
+ .stringify(new TextEncoder().encode(plainPrefix), {
29
+ pad: false
30
+ })
31
+ .toLowerCase();
32
+ console.log(encodedPrefix);
33
+ return `${encodedPrefix}@${emailDomain}`;
34
+ }
35
+ $: captureEmail = getCaptureEmail();
36
+ function emailAddress(requestType, path, hash, isFlow, token) {
37
+ const pathOrHash = requestType === 'hash' ? hash : path.replaceAll('/', '.');
38
+ const plainPrefix = `${$workspaceStore}+${(requestType === 'hash' ? 'hash.' : isFlow ? 'flow.' : '') + pathOrHash}+${token}`;
39
+ const encodedPrefix = base32
40
+ .stringify(new TextEncoder().encode(plainPrefix), {
41
+ pad: false
42
+ })
43
+ .toLowerCase();
44
+ return `${pathOrHash}+${encodedPrefix}@${emailDomain}`;
45
+ }
46
+ export let email = '';
47
+ $: email = emailAddress(requestType, path, hash, isFlow, token);
48
+ </script>
49
+
50
+ <div>
51
+ {#if showCapture && captureInfo}
52
+ <CaptureSection
53
+ bind:captureTable
54
+ captureType="email"
55
+ disabled={false}
56
+ {captureInfo}
57
+ on:captureToggle
58
+ on:applyArgs
59
+ on:updateSchema
60
+ on:addPreprocessor
61
+ >
62
+ <Label label="Email address">
63
+ <ClipboardPanel content={captureEmail} disabled={!captureInfo.active} />
64
+ </Label>
65
+ </CaptureSection>
66
+ {/if}
67
+ <div class="flex flex-col gap-4">
68
+ {#if SCRIPT_VIEW_SHOW_CREATE_TOKEN_BUTTON}
69
+ <Label label="Token">
70
+ <div class="flex flex-row justify-between gap-2">
71
+ <input
72
+ bind:value={token}
73
+ placeholder="paste your token here once created to alter examples below"
74
+ class="!text-xs"
75
+ />
76
+ <Button size="xs" color="light" variant="border" on:click={userSettings.openDrawer}>
77
+ Create an Email-specific Token
78
+ <Tooltip light>
79
+ The token will have a scope such that it can only be used to trigger this script. It
80
+ is safe to share as it cannot be used to impersonate you.
81
+ </Tooltip>
82
+ </Button>
83
+ </div>
84
+ {#if token === 'TOKEN_TO_CREATE'}
85
+ <div class="flex flex-row gap-1 text-xs text-red-500 items-center mt-1">
86
+ <AlertTriangle size="12" />
87
+ Create/input a valid token before copying the email address below
88
+ </div>
89
+ {/if}
90
+ </Label>
91
+ {/if}
92
+
93
+ {#if !isFlow}
94
+ <div class="flex flex-col gap-2">
95
+ <div class="flex flex-row justify-between">
96
+ <div class="text-xs font-semibold flex flex-row items-center">Call method</div>
97
+ <ToggleButtonGroup class="h-[30px] w-auto" bind:selected={requestType}>
98
+ <ToggleButton label="By path" value="path" />
99
+ <ToggleButton label="By hash" value="hash" />
100
+ </ToggleButtonGroup>
101
+ </div>
102
+ </div>
103
+ {/if}
104
+
105
+ {#key requestType}
106
+ {#key token}
107
+ <Label label="Email address">
108
+ <ClipboardPanel content={email} />
109
+ </Label>
110
+ {/key}
111
+ {/key}
112
+
113
+ <Alert title="Email trigger" size="xs">
114
+ To trigger the job by email, send an email to the address above. The job will receive two
115
+ arguments: `raw_email` containing the raw email as string, and `parsed_email` containing the
116
+ parsed email as an object.
117
+ </Alert>
118
+ </div>
119
+ </div>
@@ -0,0 +1,38 @@
1
+ import { SvelteComponent } from "svelte";
2
+ import { type CaptureInfo } from '../triggers/CaptureSection.svelte';
3
+ import CaptureTable from '../triggers/CaptureTable.svelte';
4
+ declare const __propDef: {
5
+ props: {
6
+ token?: string | undefined;
7
+ isFlow?: boolean | undefined;
8
+ hash?: string | undefined;
9
+ path: string;
10
+ userSettings: any;
11
+ emailDomain?: string | null | undefined;
12
+ showCapture?: boolean | undefined;
13
+ captureInfo?: CaptureInfo | undefined;
14
+ captureTable?: CaptureTable | undefined;
15
+ email?: string | undefined;
16
+ };
17
+ events: {
18
+ captureToggle: CustomEvent<undefined>;
19
+ applyArgs: CustomEvent<{
20
+ kind: "main" | "preprocessor";
21
+ args: Record<string, any> | undefined;
22
+ }>;
23
+ updateSchema: CustomEvent<{
24
+ schema: any;
25
+ redirect: boolean;
26
+ }>;
27
+ addPreprocessor: CustomEvent<null>;
28
+ } & {
29
+ [evt: string]: CustomEvent<any>;
30
+ };
31
+ slots: {};
32
+ };
33
+ export type EmailTriggerConfigSectionProps = typeof __propDef.props;
34
+ export type EmailTriggerConfigSectionEvents = typeof __propDef.events;
35
+ export type EmailTriggerConfigSectionSlots = typeof __propDef.slots;
36
+ export default class EmailTriggerConfigSection extends SvelteComponent<EmailTriggerConfigSectionProps, EmailTriggerConfigSectionEvents, EmailTriggerConfigSectionSlots> {
37
+ }
38
+ export {};
@@ -1,50 +1,34 @@
1
- <script>import Tooltip from '../Tooltip.svelte';
2
- import { enterpriseLicense, userStore, workspaceStore } from '../../stores';
3
- import { Button } from '../common';
4
- import { SCRIPT_VIEW_SHOW_CREATE_TOKEN_BUTTON } from '../../consts';
1
+ <script>import { enterpriseLicense, userStore, workspaceStore } from '../../stores';
5
2
  import UserSettings from '../UserSettings.svelte';
6
- import ClipboardPanel from './ClipboardPanel.svelte';
7
3
  import { generateRandomString } from '../../utils';
8
4
  import HighlightTheme from '../HighlightTheme.svelte';
9
5
  import Alert from '../common/alert/Alert.svelte';
10
6
  import { SettingService } from '../../gen';
11
- import { base32 } from 'rfc4648';
12
- import ToggleButton from '../common/toggleButton-v2/ToggleButton.svelte';
13
- import ToggleButtonGroup from '../common/toggleButton-v2/ToggleButtonGroup.svelte';
14
- import { AlertTriangle } from 'lucide-svelte';
15
7
  import Skeleton from '../common/skeleton/Skeleton.svelte';
16
- import Label from '../Label.svelte';
17
8
  import TriggerTokens from '../triggers/TriggerTokens.svelte';
9
+ import TriggersEditorSection from '../triggers/TriggersEditorSection.svelte';
10
+ import Description from '../Description.svelte';
18
11
  let userSettings;
19
12
  export let token;
20
13
  export let scopes = [];
21
14
  export let isFlow = false;
22
15
  export let hash = undefined;
23
16
  export let path;
17
+ export let isEditor = false;
18
+ export let canHavePreprocessor = false;
19
+ export let hasPreprocessor = false;
20
+ export let newItem = false;
24
21
  let emailDomain = null;
22
+ let triggerTokens = undefined;
25
23
  let loading = true;
26
24
  async function getEmailDomain() {
27
25
  emailDomain =
28
26
  (await SettingService.getGlobal({
29
27
  key: 'email_domain'
30
- })) ?? null;
28
+ })) ?? 'mail.test.com';
31
29
  loading = false;
32
30
  }
33
31
  getEmailDomain();
34
- let requestType = 'path';
35
- function emailAddress(requestType, path, hash, isFlow, token) {
36
- const pathOrHash = requestType === 'hash' ? hash : path.replaceAll('/', '.');
37
- const plainPrefix = `${$workspaceStore}+${(requestType === 'hash' ? 'hash.' : isFlow ? 'flow.' : '') + pathOrHash}+${token}`;
38
- const encodedPrefix = base32
39
- .stringify(new TextEncoder().encode(plainPrefix), {
40
- pad: false
41
- })
42
- .toLowerCase();
43
- return `${pathOrHash}+${encodedPrefix}@${emailDomain}`;
44
- }
45
- export let email = '';
46
- $: email = emailAddress(requestType, path, hash, isFlow, token);
47
- let triggerTokens = undefined;
48
32
  </script>
49
33
 
50
34
  <HighlightTheme />
@@ -61,59 +45,28 @@ let triggerTokens = undefined;
61
45
  />
62
46
 
63
47
  <div class="flex flex-col w-full gap-4">
48
+ <Description link="https://www.windmill.dev/docs/advanced/email_triggers">
49
+ Email triggers execute scripts and flows when emails are sent to specific addresses. Each
50
+ trigger has its own unique email address that can be used to invoke the script or flow.
51
+ </Description>
64
52
  {#if loading}
65
53
  <Skeleton layout={[[18]]} />
66
54
  {:else}
67
55
  {#if emailDomain}
68
- {#if SCRIPT_VIEW_SHOW_CREATE_TOKEN_BUTTON}
69
- <Label label="Token">
70
- <div class="flex flex-row justify-between gap-2">
71
- <input
72
- bind:value={token}
73
- placeholder="paste your token here once created to alter examples below"
74
- class="!text-xs"
75
- />
76
- <Button size="xs" color="light" variant="border" on:click={userSettings.openDrawer}>
77
- Create an Email-specific Token
78
- <Tooltip light>
79
- The token will have a scope such that it can only be used to trigger this script. It
80
- is safe to share as it cannot be used to impersonate you.
81
- </Tooltip>
82
- </Button>
83
- </div>
84
- {#if token === 'TOKEN_TO_CREATE'}
85
- <div class="flex flex-row gap-1 text-xs text-red-500 items-center mt-1">
86
- <AlertTriangle size="12" />
87
- Create/input a valid token before copying the email address below
88
- </div>
89
- {/if}
90
- </Label>
91
- {/if}
92
-
93
- {#if !isFlow}
94
- <div class="flex flex-col gap-2">
95
- <div class="flex flex-row justify-between">
96
- <div class="text-xs font-semibold flex flex-row items-center">Call method</div>
97
- <ToggleButtonGroup class="h-[30px] w-auto" bind:selected={requestType}>
98
- <ToggleButton label="By path" value="path" />
99
- <ToggleButton label="By hash" value="hash" />
100
- </ToggleButtonGroup>
101
- </div>
102
- </div>
103
- {/if}
104
-
105
- {#key requestType}
106
- {#key token}
107
- <Label label="Email address">
108
- <ClipboardPanel content={email} />
109
- </Label>
110
- {/key}
111
- {/key}
112
- <Alert title="Email trigger" size="xs">
113
- To trigger the job by email, send an email to the address above. The job will receive two
114
- arguments: `raw_email` containing the raw email as string, and `parsed_email` containing the
115
- parsed email as an object.
116
- </Alert>
56
+ <TriggersEditorSection
57
+ cloudDisabled={false}
58
+ triggerType="email"
59
+ {isFlow}
60
+ noSave
61
+ data={{ emailDomain, userSettings, token, hash, path }}
62
+ {isEditor}
63
+ {path}
64
+ {canHavePreprocessor}
65
+ {hasPreprocessor}
66
+ on:applyArgs
67
+ on:addPreprocessor
68
+ {newItem}
69
+ />
117
70
  {:else}
118
71
  <div>
119
72
  <Alert title="Email triggers are disabled" size="xs" type="warning">