windmill-components 1.434.1 → 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 (285) 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 +14 -10
  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 +5 -1
  170. package/package/components/graph/FlowGraphV2.svelte.d.ts +2 -0
  171. package/package/components/graph/renderers/nodes/InputNode.svelte +2 -0
  172. package/package/components/graph/renderers/nodes/InputNode.svelte.d.ts +2 -0
  173. package/package/components/graph/renderers/triggers/TriggersWrapper.svelte +1 -1
  174. package/package/components/icons/CSharpIcon.svelte +14 -0
  175. package/package/components/icons/CSharpIcon.svelte.d.ts +25 -0
  176. package/package/components/icons/GitIcon.svelte +5 -2
  177. package/package/components/icons/XeroIcon.svelte +24 -0
  178. package/package/components/icons/XeroIcon.svelte.d.ts +17 -0
  179. package/package/components/icons/index.d.ts +3 -1
  180. package/package/components/icons/index.js +4 -2
  181. package/package/components/instanceSettings.d.ts +3 -1
  182. package/package/components/instanceSettings.js +77 -69
  183. package/package/components/meltComponents/Popover.svelte +82 -0
  184. package/package/components/meltComponents/Popover.svelte.d.ts +21 -0
  185. package/package/components/propertyPicker/PropPicker.svelte +5 -3
  186. package/package/components/runs/JobLoader.svelte +5 -2
  187. package/package/components/runs/JobPreview.svelte +5 -5
  188. package/package/components/runs/RunRow.svelte +3 -4
  189. package/package/components/runs/RunsFilter.svelte +4 -4
  190. package/package/components/schema/EditableSchemaDrawer.svelte +4 -4
  191. package/package/components/schema/PropertyEditor.svelte +1 -1
  192. package/package/components/schema/SchemaFormDND.svelte +2 -0
  193. package/package/components/schema/SchemaFormDND.svelte.d.ts +1 -0
  194. package/package/components/scriptEditor/LogPanel.svelte +176 -164
  195. package/package/components/scriptEditor/LogPanel.svelte.d.ts +2 -0
  196. package/package/components/search/GlobalSearchModal.svelte +3 -3
  197. package/package/components/sidebar/CriticalAlertModal.svelte +155 -9
  198. package/package/components/sidebar/CriticalAlertModalInner.svelte +65 -212
  199. package/package/components/sidebar/CriticalAlertModalInner.svelte.d.ts +2 -4
  200. package/package/components/sidebar/CriticalAlertTable.svelte +142 -0
  201. package/package/components/sidebar/CriticalAlertTable.svelte.d.ts +25 -0
  202. package/package/components/sidebar/OperatorMenu.svelte +30 -8
  203. package/package/components/sidebar/SideBarNotification.svelte +3 -6
  204. package/package/components/sidebar/SidebarContent.svelte +5 -5
  205. package/package/components/sidebar/WorkspaceMenu.svelte +9 -5
  206. package/package/components/sidebar/WorkspaceMenu.svelte.d.ts +1 -0
  207. package/package/components/sidebar/changelogs.js +82 -17
  208. package/package/components/splitPanes/SplitPanesOrColumnOnMobile.svelte +21 -21
  209. package/package/components/table/AutoDataTable.svelte +1 -1
  210. package/package/components/table/Cell.svelte +5 -3
  211. package/package/components/table/Cell.svelte.d.ts +1 -0
  212. package/package/components/table/DataTable.svelte +65 -58
  213. package/package/components/table/DataTable.svelte.d.ts +2 -0
  214. package/package/components/table/Head.svelte +1 -1
  215. package/package/components/table/Row.svelte +3 -1
  216. package/package/components/table/Row.svelte.d.ts +1 -0
  217. package/package/components/toast.js +3 -1
  218. package/package/components/triggers/CaptureButton.svelte +77 -0
  219. package/package/components/triggers/CaptureButton.svelte.d.ts +16 -0
  220. package/package/components/triggers/CaptureIcon.svelte +17 -0
  221. package/package/components/triggers/CaptureIcon.svelte.d.ts +23 -0
  222. package/package/components/triggers/CaptureSection.svelte +76 -0
  223. package/package/components/triggers/CaptureSection.svelte.d.ts +42 -0
  224. package/package/components/triggers/CaptureTable.svelte +224 -0
  225. package/package/components/triggers/CaptureTable.svelte.d.ts +43 -0
  226. package/package/components/triggers/CaptureWrapper.svelte +237 -0
  227. package/package/components/triggers/CaptureWrapper.svelte.d.ts +35 -0
  228. package/package/components/triggers/KafkaTriggerEditor.svelte +2 -2
  229. package/package/components/triggers/KafkaTriggerEditor.svelte.d.ts +2 -2
  230. package/package/components/triggers/KafkaTriggerEditorInner.svelte +47 -119
  231. package/package/components/triggers/KafkaTriggerEditorInner.svelte.d.ts +2 -2
  232. package/package/components/triggers/KafkaTriggersConfigSection.svelte +215 -0
  233. package/package/components/triggers/KafkaTriggersConfigSection.svelte.d.ts +36 -0
  234. package/package/components/triggers/KafkaTriggersPanel.svelte +73 -45
  235. package/package/components/triggers/KafkaTriggersPanel.svelte.d.ts +6 -0
  236. package/package/components/triggers/RouteEditor.svelte +2 -2
  237. package/package/components/triggers/RouteEditor.svelte.d.ts +2 -2
  238. package/package/components/triggers/RouteEditorConfigSection.svelte +162 -0
  239. package/package/components/triggers/RouteEditorConfigSection.svelte.d.ts +43 -0
  240. package/package/components/triggers/RouteEditorInner.svelte +98 -163
  241. package/package/components/triggers/RouteEditorInner.svelte.d.ts +2 -2
  242. package/package/components/triggers/RoutesPanel.svelte +69 -54
  243. package/package/components/triggers/RoutesPanel.svelte.d.ts +5 -0
  244. package/package/components/triggers/ScheduledPollPanel.svelte +5 -9
  245. package/package/components/triggers/TriggersEditor.svelte +119 -89
  246. package/package/components/triggers/TriggersEditor.svelte.d.ts +7 -0
  247. package/package/components/triggers/TriggersEditorSection.svelte +109 -0
  248. package/package/components/triggers/TriggersEditorSection.svelte.d.ts +29 -0
  249. package/package/components/triggers/TriggersWrapper.svelte +60 -0
  250. package/package/components/triggers/TriggersWrapper.svelte.d.ts +21 -0
  251. package/package/components/triggers/WebhooksConfigSection.svelte +382 -0
  252. package/package/components/triggers/WebhooksConfigSection.svelte.d.ts +39 -0
  253. package/package/components/triggers/WebhooksPanel.svelte +32 -331
  254. package/package/components/triggers/WebhooksPanel.svelte.d.ts +7 -1
  255. package/package/components/triggers/WebsocketEditorConfigSection.svelte +176 -0
  256. package/package/components/triggers/WebsocketEditorConfigSection.svelte.d.ts +37 -0
  257. package/package/components/triggers/WebsocketTriggerEditor.svelte +2 -2
  258. package/package/components/triggers/WebsocketTriggerEditor.svelte.d.ts +2 -2
  259. package/package/components/triggers/WebsocketTriggerEditorInner.svelte +29 -150
  260. package/package/components/triggers/WebsocketTriggerEditorInner.svelte.d.ts +2 -2
  261. package/package/components/triggers/WebsocketTriggersPanel.svelte +70 -45
  262. package/package/components/triggers/WebsocketTriggersPanel.svelte.d.ts +6 -0
  263. package/package/components/triggers.d.ts +6 -2
  264. package/package/components/triggers.js +16 -0
  265. package/package/components/wizards/AgGridWizard.svelte +4 -4
  266. package/package/editorUtils.d.ts +2 -0
  267. package/package/editorUtils.js +6 -3
  268. package/package/gen/core/OpenAPI.js +1 -1
  269. package/package/gen/schemas.gen.d.ts +17 -8
  270. package/package/gen/schemas.gen.js +17 -8
  271. package/package/gen/services.gen.d.ts +55 -5
  272. package/package/gen/services.gen.js +108 -5
  273. package/package/gen/types.gen.d.ts +180 -13
  274. package/package/hubPaths.json +6 -3
  275. package/package/infer.js +9 -0
  276. package/package/script_helpers.d.ts +5 -0
  277. package/package/script_helpers.js +68 -8
  278. package/package/scripts.d.ts +1 -1
  279. package/package/scripts.js +5 -1
  280. package/package/stores.d.ts +1 -0
  281. package/package/utils.d.ts +3 -1
  282. package/package/utils.js +20 -4
  283. package/package.json +11 -8
  284. package/package/components/flows/content/CapturePayload.svelte +0 -114
  285. package/package/components/flows/content/CapturePayload.svelte.d.ts +0 -17
@@ -12,6 +12,8 @@ import { MenuItem } from '@rgossiaux/svelte-headlessui';
12
12
  import { isCloudHosted } from '../../cloud';
13
13
  import { initAllAiWorkspace } from '../copilot/lib';
14
14
  export let isCollapsed = false;
15
+ // When used outside of the side bar, where links to workspace settings and such don't make as much sense.
16
+ export let strictWorkspaceSelect = false;
15
17
  async function toggleSwitchWorkspace(id) {
16
18
  if ($workspaceStore === id) {
17
19
  return;
@@ -65,7 +67,7 @@ async function toggleSwitchWorkspace(id) {
65
67
  </MenuItem>
66
68
  {/each}
67
69
  </div>
68
- {#if isCloudHosted() || $superadmin}
70
+ {#if (isCloudHosted() || $superadmin) && !strictWorkspaceSelect}
69
71
  <div class="py-1" role="none">
70
72
  <a
71
73
  href="{base}/user/create_workspace"
@@ -78,6 +80,7 @@ async function toggleSwitchWorkspace(id) {
78
80
  </a>
79
81
  </div>
80
82
  {/if}
83
+ {#if !strictWorkspaceSelect}
81
84
  <div class="py-1" role="none">
82
85
  <a
83
86
  href="{base}/user/workspaces"
@@ -91,7 +94,8 @@ async function toggleSwitchWorkspace(id) {
91
94
  All workspaces
92
95
  </a>
93
96
  </div>
94
- {#if $userStore?.is_admin || $superadmin}
97
+ {/if}
98
+ {#if ($userStore?.is_admin || $superadmin) && !strictWorkspaceSelect}
95
99
  <div class="py-1" role="none">
96
100
  <MenuItem>
97
101
  <a
@@ -101,13 +105,13 @@ async function toggleSwitchWorkspace(id) {
101
105
  tabindex="-1"
102
106
  >
103
107
  <Settings size={16} />
104
- Workspace Settings
108
+ Workspace settings
105
109
  </a>
106
110
  </MenuItem>
107
111
  </div>
108
112
  {/if}
109
113
  </div>
110
- {#if isCloudHosted() && !$isPremiumStore}
114
+ {#if isCloudHosted() && !$isPremiumStore && !strictWorkspaceSelect}
111
115
  <div class="py-1" role="none">
112
116
  {#if $workspaceStore != 'demo'}
113
117
  <span class="text-secondary block w-full text-left px-4 py-2 text-xs"
@@ -135,7 +139,7 @@ async function toggleSwitchWorkspace(id) {
135
139
  {/if}
136
140
  </div>
137
141
  {/if}
138
- {#if $enterpriseLicense}
142
+ {#if $enterpriseLicense && !strictWorkspaceSelect}
139
143
  <MultiplayerMenu />
140
144
  {/if}
141
145
  </Menu>
@@ -2,6 +2,7 @@ import { SvelteComponent } from "svelte";
2
2
  declare const __propDef: {
3
3
  props: {
4
4
  isCollapsed?: boolean | undefined;
5
+ strictWorkspaceSelect?: boolean | undefined;
5
6
  };
6
7
  events: {
7
8
  [evt: string]: CustomEvent<any>;
@@ -1,4 +1,69 @@
1
1
  const changelogs = [
2
+ {
3
+ label: 'Full text search on jobs and logs',
4
+ href: 'https://www.windmill.dev/changelog/instant-full-text-search-on-jobs-and-logs',
5
+ date: '2024-12-05'
6
+ },
7
+ {
8
+ label: 'Force dark/light theme in apps',
9
+ href: 'https://www.windmill.dev/changelog/force-dark-light-theme',
10
+ date: '2024-11-28'
11
+ },
12
+ {
13
+ label: 'Kafka triggers',
14
+ href: 'https://www.windmill.dev/changelog/kafka-triggers',
15
+ date: '2024-11-18'
16
+ },
17
+ {
18
+ label: 'Critical channels in UI',
19
+ href: 'https://www.windmill.dev/changelog/critical-channels-ui',
20
+ date: '2024-11-15'
21
+ },
22
+ {
23
+ label: 'Support for Mistral and Anthropic AI models',
24
+ href: 'https://www.windmill.dev/changelog/mistral-anthropic-support',
25
+ date: '2024-11-14'
26
+ },
27
+ {
28
+ label: 'Websocket triggers',
29
+ href: 'https://www.windmill.dev/changelog/websocket-triggers',
30
+ date: '2024-11-06'
31
+ },
32
+ {
33
+ label: 'Autoscaling',
34
+ href: 'https://www.windmill.dev/changelog/autoscaling',
35
+ date: '2024-10-28'
36
+ },
37
+ {
38
+ label: 'File download helper',
39
+ href: 'https://www.windmill.dev/changelog/file-download-helper',
40
+ date: '2024-10-12'
41
+ },
42
+ {
43
+ label: 'Queue metric alerts',
44
+ href: 'https://www.windmill.dev/changelog/queue-metric-alerts',
45
+ date: '2024-10-10'
46
+ },
47
+ {
48
+ label: 'Deno 2.0',
49
+ href: 'https://www.windmill.dev/changelog/deno-2.0',
50
+ date: '2024-10-10'
51
+ },
52
+ {
53
+ label: 'Move components inside containers with ctrl+click',
54
+ href: 'https://www.windmill.dev/changelog/move-components-inside-containers-with-ctrl',
55
+ date: '2024-10-09'
56
+ },
57
+ {
58
+ label: 'Support workers to run natively on Windows',
59
+ href: 'https://www.windmill.dev/changelog/workers-run-natively-windows',
60
+ date: '2024-10-03'
61
+ },
62
+ {
63
+ label: 'Quick access menu for faster component insertion',
64
+ href: 'https://www.windmill.dev/changelog/flow-quick-access-menu',
65
+ date: '2024-10-03'
66
+ },
2
67
  {
3
68
  label: 'Custom HTTP routes',
4
69
  href: 'https://www.windmill.dev/changelog/http-routing',
@@ -16,7 +81,7 @@ const changelogs = [
16
81
  },
17
82
  {
18
83
  label: 'Critical alert channels',
19
- href: 'https://www.windmill.dev/changelog/critical-alert-channels',
84
+ href: 'https://www.windmill.dev/changelog/critical-alerts',
20
85
  date: '2024-09-01'
21
86
  },
22
87
  {
@@ -60,7 +125,7 @@ const changelogs = [
60
125
  date: '2024-07-26'
61
126
  },
62
127
  {
63
- label: 'Dynamic Select',
128
+ label: 'Dynamic select',
64
129
  href: 'https://www.windmill.dev/changelog/dynamic-select',
65
130
  date: '2024-07-22'
66
131
  },
@@ -70,17 +135,17 @@ const changelogs = [
70
135
  date: '2024-07-14'
71
136
  },
72
137
  {
73
- label: 'Navbar Component',
138
+ label: 'Navbar component',
74
139
  href: 'https://www.windmill.dev/changelog/navbar',
75
140
  date: '2024-07-05'
76
141
  },
77
142
  {
78
- label: 'Flow Versioning',
143
+ label: 'Flow versioning',
79
144
  href: 'https://www.windmill.dev/changelog/flow-versioning',
80
145
  date: '2024-07-04'
81
146
  },
82
147
  {
83
- label: 'OneOf Inputs',
148
+ label: 'OneOf inputs',
84
149
  href: 'https://www.windmill.dev/changelog/oneof-inputs',
85
150
  date: '2024-06-17'
86
151
  },
@@ -95,7 +160,7 @@ const changelogs = [
95
160
  date: '2024-06-04'
96
161
  },
97
162
  {
98
- label: 'Secondary Storage',
163
+ label: 'Secondary storage',
99
164
  href: 'https://www.windmill.dev/changelog/secondary-storage',
100
165
  date: '2024-05-31'
101
166
  },
@@ -110,12 +175,12 @@ const changelogs = [
110
175
  date: '2024-05-27'
111
176
  },
112
177
  {
113
- label: 'Concurrency Limit Observability',
178
+ label: 'Concurrency limit observability',
114
179
  href: 'https://www.windmill.dev/changelog/concurrency-limit-observability',
115
180
  date: '2024-05-15'
116
181
  },
117
182
  {
118
- label: 'Full Height Components',
183
+ label: 'Full height components',
119
184
  href: 'https://www.windmill.dev/changelog/full-height-components',
120
185
  date: '2024-05-15'
121
186
  },
@@ -130,7 +195,7 @@ const changelogs = [
130
195
  date: '2024-05-13'
131
196
  },
132
197
  {
133
- label: 'Workers Metrics',
198
+ label: 'Workers metrics',
134
199
  href: 'https://www.windmill.dev/changelog/workers-metrics',
135
200
  date: '2024-05-10'
136
201
  },
@@ -145,7 +210,7 @@ const changelogs = [
145
210
  date: '2024-04-24'
146
211
  },
147
212
  {
148
- label: 'Jobs Labels',
213
+ label: 'Jobs labels',
149
214
  href: 'https://www.windmill.dev/changelog/jobs-labels',
150
215
  date: '2024-04-24'
151
216
  },
@@ -160,12 +225,12 @@ const changelogs = [
160
225
  date: '2024-04-02'
161
226
  },
162
227
  {
163
- label: 'While Loops',
228
+ label: 'While loops',
164
229
  href: 'https://www.windmill.dev/changelog/while-loops',
165
230
  date: '2024-04-02'
166
231
  },
167
232
  {
168
- label: 'Approval Steps Improvements',
233
+ label: 'Approval steps improvements',
169
234
  href: 'https://www.windmill.dev/changelog/approval-steps-improvements',
170
235
  date: '2024-03-27'
171
236
  },
@@ -180,12 +245,12 @@ const changelogs = [
180
245
  date: '2024-03-27'
181
246
  },
182
247
  {
183
- label: 'Custom Flow States',
248
+ label: 'Custom flow states',
184
249
  href: 'https://www.windmill.dev/changelog/custom-flow-states',
185
250
  date: '2024-03-26'
186
251
  },
187
252
  {
188
- label: 'Custom Contextual Variables',
253
+ label: 'Custom contextual variables',
189
254
  href: 'https://www.windmill.dev/changelog/custom-contextual-variables',
190
255
  date: '2024-03-23'
191
256
  },
@@ -200,7 +265,7 @@ const changelogs = [
200
265
  date: '2024-03-22'
201
266
  },
202
267
  {
203
- label: 'Configurable Available Languages',
268
+ label: 'Configurable available languages',
204
269
  href: 'https://www.windmill.dev/changelog/configurable-languages',
205
270
  date: '2024-03-13'
206
271
  },
@@ -215,7 +280,7 @@ const changelogs = [
215
280
  date: '2024-02-27'
216
281
  },
217
282
  {
218
- label: 'Custom Workspace Secret Encryption',
283
+ label: 'Custom workspace secret encryption',
219
284
  href: 'https://www.windmill.dev/changelog/workspace-encryption',
220
285
  date: '2024-02-15'
221
286
  },
@@ -230,7 +295,7 @@ const changelogs = [
230
295
  date: '2024-01-24'
231
296
  },
232
297
  {
233
- label: 'Database Studio',
298
+ label: 'Database studio',
234
299
  href: 'https://www.windmill.dev/changelog/database-studio',
235
300
  date: '2024-01-24'
236
301
  },
@@ -8,27 +8,27 @@ export let rightPaneIsFirstInCol = false;
8
8
  let clientWidth = window.innerWidth;
9
9
  </script>
10
10
 
11
- <main class="h-screen w-full" bind:clientWidth>
12
- {#if clientWidth >= 768}
13
- <SplitPanesWrapper class="hidden md:block">
14
- <Splitpanes>
15
- <Pane size={30} minSize={25}>
11
+ <main class="flex-grow w-full overflow-y-auto" bind:clientWidth>
12
+ {#if clientWidth >= 768}
13
+ <SplitPanesWrapper class="hidden md:block">
14
+ <Splitpanes>
15
+ <Pane size={leftPaneSize} minSize={leftPaneMinSize}>
16
+ <slot name="left-pane" />
17
+ </Pane>
18
+ <Pane size={rightPaneSize} minSize={rightPaneMinSize}>
19
+ <slot name="right-pane" />
20
+ </Pane>
21
+ </Splitpanes>
22
+ </SplitPanesWrapper>
23
+ {:else}
24
+ <div class="flex flex-col">
25
+ {#if rightPaneIsFirstInCol}
26
+ <slot name="right-pane" />
27
+ <slot name="left-pane" />
28
+ {:else}
16
29
  <slot name="left-pane" />
17
- </Pane>
18
- <Pane size={70} minSize={25}>
19
30
  <slot name="right-pane" />
20
- </Pane>
21
- </Splitpanes>
22
- </SplitPanesWrapper>
23
- {:else}
24
- <div class="flex flex-col">
25
- {#if rightPaneIsFirstInCol}
26
- <slot name="right-pane" />
27
- <slot name="left-pane" />
28
- {:else}
29
- <slot name="left-pane" />
30
- <slot name="right-pane" />
31
- {/if}
32
- </div>
33
- {/if}
31
+ {/if}
32
+ </div>
33
+ {/if}
34
34
  </main>
@@ -362,7 +362,7 @@ function handleColumnSelected(key) {
362
362
  disablePopup={typeof value === 'string' && value.length < 100}
363
363
  >
364
364
  <div
365
- class="max-w-80 text-wrap whitespace-pre-wrap flex flex-grow w-max three-lines cursor-text"
365
+ class="max-w-[100ch] text-wrap whitespace-pre-wrap flex flex-grow w-max three-lines cursor-text"
366
366
  >
367
367
  {txt?.length > 100 ? txt.slice(0, 100) + '...' : txt}
368
368
  </div>
@@ -7,6 +7,7 @@ export let head = false;
7
7
  export let shouldStopPropagation = false;
8
8
  export let selected = false;
9
9
  export let sticky = false;
10
+ export let wrap = false;
10
11
  let Tag = head ? 'th' : 'td';
11
12
  const { size } = getContext('datatable');
12
13
  </script>
@@ -19,7 +20,8 @@ const { size } = getContext('datatable');
19
20
  if (shouldStopPropagation) e.stopPropagation()
20
21
  }}
21
22
  class={twMerge(
22
- 'text-left text-xs text-primary font-normal whitespace-nowrap',
23
+ 'text-left text-xs text-primary font-normal',
24
+ wrap ? 'break-words' : 'whitespace-nowrap',
23
25
  first ? 'sm:pl-6' : '',
24
26
  last ? 'sm:pr-6' : '',
25
27
 
@@ -28,13 +30,13 @@ const { size } = getContext('datatable');
28
30
 
29
31
  numeric ? 'text-right' : '',
30
32
  head ? 'font-semibold ' : '',
31
- $$restProps.class,
32
33
  sticky ? `!p-0 sticky ${first ? 'left-0' : 'right-0'}` : 'px-2 py-3.5',
33
34
  size === 'sm' ? 'px-1.5 py-2.5' : '',
34
35
  size === 'lg' ? 'px-3 py-4' : '',
35
36
  size === 'xs' ? 'px-1 py-1.5' : '',
36
37
  selected ? 'bg-blue-50 dark:bg-blue-900/50' : '',
37
- 'transition-all'
38
+ 'transition-all',
39
+ $$restProps.class
38
40
  )}
39
41
  >
40
42
  {#if sticky}
@@ -9,6 +9,7 @@ declare const __propDef: {
9
9
  shouldStopPropagation?: boolean | undefined;
10
10
  selected?: boolean | undefined;
11
11
  sticky?: boolean | undefined;
12
+ wrap?: boolean | undefined;
12
13
  };
13
14
  events: {
14
15
  [evt: string]: CustomEvent<any>;
@@ -5,6 +5,7 @@
5
5
  import Button from '../common/button/Button.svelte';
6
6
  import { ArrowDownIcon, ArrowLeftIcon, ArrowRightIcon } from 'lucide-svelte';
7
7
  import { twMerge } from 'tailwind-merge';
8
+ import List from '../common/layout/List.svelte';
8
9
  export let paginated = false;
9
10
  export let currentPage = 1;
10
11
  export let showNext = true;
@@ -16,78 +17,84 @@ export let perPage = undefined;
16
17
  export let shouldHidePagination = false;
17
18
  export let noBorder = false;
18
19
  export let rowCount = undefined;
20
+ export let hasMore = true;
21
+ export let contentHeight = 0;
22
+ let footerHeight = 0;
23
+ let tableHeight = 0;
19
24
  const dispatch = createEventDispatcher();
20
25
  setContext('datatable', {
21
26
  size
22
27
  });
28
+ $: contentHeight = tableHeight - footerHeight;
23
29
  </script>
24
30
 
25
31
  <div
26
- class={twMerge(
27
- 'h-full overflow-auto',
28
- rounded ? 'rounded-md' : '',
29
- noBorder ? 'border-0' : 'border'
30
- )}
32
+ class={twMerge('h-full', rounded ? 'rounded-md' : '', noBorder ? 'border-0' : 'border')}
33
+ bind:clientHeight={tableHeight}
31
34
  >
32
- <div class={twMerge('overflow-auto')}>
33
- <table class={twMerge('min-w-full divide-y')}>
34
- <slot />
35
- </table>
36
- </div>
37
- {#if paginated && !shouldHidePagination}
38
- <div
39
- class="bg-surface border-t flex flex-row justify-between p-1 items-center gap-2 sticky bottom-0"
40
- >
41
- <div>
42
- {#if rowCount}
43
- <span class="text-xs mx-2"> {rowCount} items</span>
44
- {/if}
45
- </div>
35
+ <List justify="between" gap="none">
36
+ <div class="w-full overflow-auto min-h-0 grow">
37
+ <table class={twMerge('min-w-full divide-y')}>
38
+ <slot />
39
+ </table>
40
+ </div>
41
+ {#if paginated && !shouldHidePagination}
42
+ <div
43
+ class="w-full bg-surface border-t flex flex-row justify-between p-1 items-center gap-2 sticky bottom-0"
44
+ bind:clientHeight={footerHeight}
45
+ >
46
+ <div>
47
+ {#if rowCount}
48
+ <span class="text-xs mx-2"> {rowCount} items</span>
49
+ {/if}
50
+ </div>
46
51
 
47
- <div class="flex flex-row gap-2 items-center">
48
- <span class="text-xs">
49
- Page: {currentPage}
50
- {perPage && rowCount ? `/ ${Math.ceil(rowCount / perPage)}` : ''}
51
- </span>
52
+ <div class="flex flex-row gap-2 items-center">
53
+ <span class="text-xs">
54
+ Page: {currentPage}
55
+ {perPage && rowCount ? `/ ${Math.ceil(rowCount / perPage)}` : ''}
56
+ </span>
52
57
 
53
- {#if perPage !== undefined}
54
- <select class="!text-xs !w-16" bind:value={perPage}>
55
- <option value={25}>25</option>
56
- <option value={100}>100</option>
57
- <option value={1000}>1000</option>
58
- </select>
59
- {/if}
60
- <Button
61
- color="light"
62
- size="xs2"
63
- on:click={() => dispatch('previous')}
64
- disabled={currentPage === 1}
65
- startIcon={{ icon: ArrowLeftIcon }}
66
- >
67
- Previous
68
- </Button>
69
- {#if showNext}
58
+ {#if perPage !== undefined}
59
+ <select class="!text-xs !w-16" bind:value={perPage}>
60
+ <option value={25}>25</option>
61
+ <option value={100}>100</option>
62
+ <option value={1000}>1000</option>
63
+ </select>
64
+ {/if}
70
65
  <Button
71
66
  color="light"
72
67
  size="xs2"
73
- on:click={() => dispatch('next')}
74
- endIcon={{ icon: ArrowRightIcon }}
68
+ on:click={() => dispatch('previous')}
69
+ disabled={currentPage === 1}
70
+ startIcon={{ icon: ArrowLeftIcon }}
75
71
  >
76
- Next
72
+ Previous
77
73
  </Button>
78
- {/if}
74
+ {#if showNext}
75
+ <Button
76
+ color="light"
77
+ size="xs2"
78
+ on:click={() => dispatch('next')}
79
+ endIcon={{ icon: ArrowRightIcon }}
80
+ disabled={!hasMore}
81
+ >
82
+ Next
83
+ </Button>
84
+ {/if}
85
+ </div>
79
86
  </div>
80
- </div>
81
- {:else if shouldLoadMore}
82
- <div class="bg-surface border-t flex flex-row justify-center py-4 items-center gap-2">
83
- <Button
84
- color="light"
85
- size="xs2"
86
- on:click={() => dispatch('loadMore')}
87
- endIcon={{ icon: ArrowDownIcon }}
88
- >
89
- Load {loadMore} more
90
- </Button>
91
- </div>
92
- {/if}
87
+ {:else if shouldLoadMore}
88
+ <div class="bg-surface border-t flex flex-row justify-center py-4 items-center gap-2">
89
+ <Button
90
+ color="light"
91
+ size="xs2"
92
+ on:click={() => dispatch('loadMore')}
93
+ endIcon={{ icon: ArrowDownIcon }}
94
+ >
95
+ Load {loadMore} more
96
+ </Button>
97
+ </div>
98
+ {/if}
99
+ </List>
93
100
  </div>
@@ -15,6 +15,8 @@ declare const __propDef: {
15
15
  shouldHidePagination?: boolean | undefined;
16
16
  noBorder?: boolean | undefined;
17
17
  rowCount?: number | undefined;
18
+ hasMore?: boolean | undefined;
19
+ contentHeight?: number | undefined;
18
20
  };
19
21
  events: {
20
22
  previous: CustomEvent<any>;
@@ -1,4 +1,4 @@
1
- <thead class="bg-surface-secondary sticky top-0">
1
+ <thead class="bg-surface-secondary sticky top-0 z-10">
2
2
  <slot />
3
3
  <div class="absolute top-2 right-2">
4
4
  <slot name="headerAction" />
@@ -3,6 +3,7 @@ import { twMerge } from 'tailwind-merge';
3
3
  export let hoverable = false;
4
4
  export let selected = false;
5
5
  export let dividable = false;
6
+ export let disabled = false;
6
7
  const dispatch = createEventDispatcher();
7
8
  </script>
8
9
 
@@ -11,7 +12,8 @@ const dispatch = createEventDispatcher();
11
12
  hoverable ? 'hover:bg-surface-hover cursor-pointer' : '',
12
13
  selected ? 'bg-blue-50 dark:bg-blue-900/50' : '',
13
14
  'transition-all',
14
- dividable ? 'divide-x' : ''
15
+ dividable ? 'divide-x' : '',
16
+ disabled ? 'opacity-60' : ''
15
17
  )}
16
18
  on:click={() => {
17
19
  dispatch('click')
@@ -4,6 +4,7 @@ declare const __propDef: {
4
4
  hoverable?: boolean | undefined;
5
5
  selected?: boolean | undefined;
6
6
  dividable?: boolean | undefined;
7
+ disabled?: boolean | undefined;
7
8
  };
8
9
  events: {
9
10
  click: CustomEvent<any>;
@@ -1,7 +1,9 @@
1
1
  //regex that match path starting with u/ or f/ and with at least 2 /
2
2
  const pathRegex = /\b(u|f)\/[^\/\s]+\/[^\/\s]+\b/g;
3
3
  export function processMessage(message) {
4
- return (message ?? 'Error without message').replaceAll(pathRegex, (path) => {
4
+ return (typeof message == 'string'
5
+ ? message ?? 'Error without message'
6
+ : JSON.stringify(message, null, 2)).replaceAll(pathRegex, (path) => {
5
7
  return `<span class="bg-surface-secondary p-1 text-xs font-mono whitespace-nowrap rounded-md">${path}</span>`;
6
8
  });
7
9
  }
@@ -0,0 +1,77 @@
1
+ <script>import Popover from '../meltComponents/Popover.svelte';
2
+ import { Button } from '../common';
3
+ import { Webhook, Route, Unplug, Mail } from 'lucide-svelte';
4
+ import KafkaIcon from '../icons/KafkaIcon.svelte';
5
+ import { enterpriseLicense } from '../../stores';
6
+ import {} from '../../gen';
7
+ import { createEventDispatcher } from 'svelte';
8
+ import { captureTriggerKindToTriggerKind } from '../triggers';
9
+ import CaptureIcon from './CaptureIcon.svelte';
10
+ let isOpen = false;
11
+ const dispatch = createEventDispatcher();
12
+ function handleClick(kind) {
13
+ dispatch('openTriggers', {
14
+ kind: captureTriggerKindToTriggerKind(kind),
15
+ config: {}
16
+ });
17
+ isOpen = false;
18
+ }
19
+ </script>
20
+
21
+ <Popover closeButton={false} bind:open={isOpen}>
22
+ <svelte:fragment slot="trigger">
23
+ <Button color="dark" btnClasses="rounded-l-none" wrapperClasses="h-full" nonCaptureEvent>
24
+ <CaptureIcon />
25
+ </Button>
26
+ </svelte:fragment>
27
+ <svelte:fragment slot="content">
28
+ <div class="flex flex-col bg-surface">
29
+ <button
30
+ class="hover:bg-surface-hover p-2 transition-colors duration-150"
31
+ on:click={() => handleClick('webhook')}
32
+ >
33
+ <div class="flex flex-row items-center gap-2">
34
+ <Webhook size={16} />
35
+ <p class="text-xs text-secondary">Webhook</p>
36
+ </div>
37
+ </button>
38
+ <button
39
+ class="hover:bg-surface-hover p-2 transition-colors duration-150"
40
+ on:click={() => handleClick('http')}
41
+ >
42
+ <div class="flex flex-row items-center gap-2">
43
+ <Route size={16} />
44
+ <p class="text-xs text-secondary">HTTP</p>
45
+ </div>
46
+ </button>
47
+ <button
48
+ class="hover:bg-surface-hover p-2 transition-colors duration-150"
49
+ on:click={() => handleClick('websocket')}
50
+ >
51
+ <div class="flex flex-row items-center gap-2">
52
+ <Unplug size={16} />
53
+ <p class="text-xs text-secondary">Websocket</p>
54
+ </div>
55
+ </button>
56
+ <button
57
+ class="hover:bg-surface-hover p-2 transition-colors duration-150"
58
+ on:click={() => handleClick('email')}
59
+ >
60
+ <div class="flex flex-row items-center gap-2">
61
+ <Mail size={16} />
62
+ <p class="text-xs text-secondary">Email</p>
63
+ </div>
64
+ </button>
65
+ <button
66
+ disabled={!$enterpriseLicense}
67
+ class="hover:bg-surface-hover p-2 transition-colors duration-150"
68
+ on:click={() => handleClick('kafka')}
69
+ >
70
+ <div class="flex flex-row items-center gap-2">
71
+ <KafkaIcon size={16} />
72
+ <p class="text-xs text-secondary">Kafka</p>
73
+ </div>
74
+ </button>
75
+ </div>
76
+ </svelte:fragment>
77
+ </Popover>