windmill-components 1.537.1 → 1.542.4

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (273) hide show
  1. package/package/components/AIProviderPicker.svelte +181 -0
  2. package/package/components/AIProviderPicker.svelte.d.ts +15 -0
  3. package/package/components/ArgInfo.svelte +2 -2
  4. package/package/components/ArgInput.svelte +35 -9
  5. package/package/components/ArgInput.svelte.d.ts +3 -3
  6. package/package/components/AssignableTagsInner.svelte +89 -3
  7. package/package/components/ConcurrentJobsChart.svelte +36 -48
  8. package/package/components/ConcurrentJobsChart.svelte.d.ts +8 -20
  9. package/package/components/CustomPopover.svelte.d.ts +1 -1
  10. package/package/components/DropdownSelect.svelte +26 -0
  11. package/package/components/DropdownSelect.svelte.d.ts +11 -0
  12. package/package/components/DropdownV2Inner.svelte +1 -1
  13. package/package/components/{DynSelect.svelte → DynamicInput.svelte} +47 -15
  14. package/package/components/DynamicInput.svelte.d.ts +11 -0
  15. package/package/components/EditableSchemaForm.svelte +119 -95
  16. package/package/components/EditableSchemaForm.svelte.d.ts +4 -4
  17. package/package/components/Editor.svelte +86 -93
  18. package/package/components/Editor.svelte.d.ts +4 -3
  19. package/package/components/EditorBar.svelte +2 -5
  20. package/package/components/FlowBuilder.svelte +3 -3
  21. package/package/components/FlowLogRow.svelte +64 -0
  22. package/package/components/FlowLogRow.svelte.d.ts +15 -0
  23. package/package/components/FlowLogViewer.svelte +406 -373
  24. package/package/components/FlowLogViewer.svelte.d.ts +5 -1
  25. package/package/components/FlowLogViewerWrapper.svelte +44 -1
  26. package/package/components/FlowLoopIterationPreview.svelte.d.ts +1 -1
  27. package/package/components/FlowPreviewContent.svelte.d.ts +1 -1
  28. package/package/components/FlowStatusViewerInner.svelte +34 -3
  29. package/package/components/FolderPicker.svelte +1 -1
  30. package/package/components/InputTransformForm.svelte +20 -10
  31. package/package/components/JobArgs.svelte +1 -1
  32. package/package/components/JobLoader.svelte.d.ts +1 -1
  33. package/package/components/JobStatus.svelte +2 -0
  34. package/package/components/LogSnippetViewer.svelte +3 -3
  35. package/package/components/LogSnippetViewer.svelte.d.ts +1 -1
  36. package/package/components/LogViewer.svelte +87 -71
  37. package/package/components/LogViewer.svelte.d.ts +1 -0
  38. package/package/components/Path.svelte +7 -1
  39. package/package/components/Path.svelte.d.ts +1 -1
  40. package/package/components/PrefixedInput.svelte +120 -0
  41. package/package/components/PrefixedInput.svelte.d.ts +8 -0
  42. package/package/components/QueuePosition.svelte +81 -0
  43. package/package/components/QueuePosition.svelte.d.ts +8 -0
  44. package/package/components/ResourceNarrowing.svelte +13 -0
  45. package/package/components/ResourceNarrowing.svelte.d.ts +6 -0
  46. package/package/components/ResourceTypePicker.svelte +49 -74
  47. package/package/components/RunChart.svelte +74 -89
  48. package/package/components/RunChart.svelte.d.ts +10 -22
  49. package/package/components/S3FilePicker.svelte +1 -1
  50. package/package/components/SchemaForm.svelte.d.ts +2 -2
  51. package/package/components/ScriptBuilder.svelte +2 -1
  52. package/package/components/ScriptEditor.svelte +4 -3
  53. package/package/components/ScriptEditor.svelte.d.ts +2 -1
  54. package/package/components/ServiceLogsInner.svelte +1 -1
  55. package/package/components/ShareModal.svelte.d.ts +1 -1
  56. package/package/components/SimpleEditor.svelte +4 -67
  57. package/package/components/StringTypeNarrowing.svelte +5 -10
  58. package/package/components/TemplateEditor.svelte +2 -16
  59. package/package/components/TimeAgo.svelte +1 -1
  60. package/package/components/TimeAgo.svelte.d.ts +1 -0
  61. package/package/components/Toggle.svelte +2 -1
  62. package/package/components/Toggle.svelte.d.ts +2 -1
  63. package/package/components/WorkerRepl.svelte +1 -1
  64. package/package/components/apps/components/display/AppNavbarItem.svelte +2 -1
  65. package/package/components/apps/components/display/table/AppAggridTable.svelte +44 -48
  66. package/package/components/apps/components/display/table/SyncColumnDefs.svelte +101 -19
  67. package/package/components/apps/components/display/table/SyncColumnDefs.svelte.d.ts +5 -2
  68. package/package/components/apps/components/display/table/utils.js +36 -5
  69. package/package/components/apps/components/inputs/currency/CurrencyInput.svelte +10 -5
  70. package/package/components/apps/editor/AppEditor.svelte +4 -3
  71. package/package/components/apps/editor/AppEditorHeader.svelte +0 -1
  72. package/package/components/apps/editor/GridViewer.svelte.d.ts +11 -4
  73. package/package/components/apps/editor/SettingsPanel.svelte +2 -2
  74. package/package/components/apps/editor/componentsPanel/ListItem.svelte +2 -2
  75. package/package/components/apps/editor/inlineScriptsPanel/InlineScriptEditor.svelte.d.ts +1 -1
  76. package/package/components/apps/editor/inlineScriptsPanel/InlineScriptEditorDrawer.svelte.d.ts +1 -1
  77. package/package/components/apps/editor/inlineScriptsPanel/InlineScriptRunnableByPath.svelte.d.ts +1 -1
  78. package/package/components/apps/editor/settingsPanel/ArrayStaticInputEditor.svelte +26 -3
  79. package/package/components/apps/editor/settingsPanel/InputsSpecEditor.svelte +1 -1
  80. package/package/components/apps/editor/settingsPanel/inputEditor/StaticInputEditor.svelte +13 -5
  81. package/package/components/apps/svelte-grid/Grid.svelte.d.ts +30 -11
  82. package/package/components/assets/JobAssetsViewer.svelte +28 -24
  83. package/package/components/auditLogs/AuditLogsTable.svelte +2 -6
  84. package/package/components/chartjs-wrappers/Chart.svelte.d.ts +14 -7
  85. package/package/components/common/OnChange.svelte.d.ts +11 -4
  86. package/package/components/common/badge/Badge.svelte +9 -2
  87. package/package/components/common/badge/Badge.svelte.d.ts +2 -1
  88. package/package/components/common/calendarPicker/CalendarPicker.svelte +5 -1
  89. package/package/components/common/calendarPicker/CalendarPicker.svelte.d.ts +5 -4
  90. package/package/components/common/drawer/Disposable.svelte +9 -11
  91. package/package/components/common/drawer/Drawer.svelte +3 -4
  92. package/package/components/common/drawer/Drawer.svelte.d.ts +1 -0
  93. package/package/components/common/menu/MenuItem.svelte.d.ts +2 -2
  94. package/package/components/common/modal/Modal.svelte.d.ts +1 -1
  95. package/package/components/common/tabs/TabContent.svelte +2 -7
  96. package/package/components/common/tabs/TabContent.svelte.d.ts +5 -27
  97. package/package/components/common/toggleButton-v2/ToggleButtonGroup.svelte +9 -3
  98. package/package/components/common/toggleButton-v2/ToggleButtonGroup.svelte.d.ts +1 -0
  99. package/package/components/common/toggleButton-v2/ToggleButtonMore.svelte +8 -4
  100. package/package/components/common/toggleButton-v2/ToggleButtonMore.svelte.d.ts +1 -0
  101. package/package/components/copilot/MetadataGen.svelte +1 -1
  102. package/package/components/copilot/chat/AIChatManager.svelte.js +24 -102
  103. package/package/components/copilot/chat/AssistantMessage.svelte +0 -4
  104. package/package/components/copilot/chat/anthropic.d.ts +15 -0
  105. package/package/components/copilot/chat/anthropic.js +208 -0
  106. package/package/components/copilot/chat/api/apiTools.d.ts +2 -2
  107. package/package/components/copilot/chat/api/apiTools.js +10 -7
  108. package/package/components/copilot/chat/api/core.d.ts +1 -1
  109. package/package/components/copilot/chat/api/core.js +7 -2
  110. package/package/components/copilot/chat/ask/core.d.ts +1 -1
  111. package/package/components/copilot/chat/ask/core.js +7 -2
  112. package/package/components/copilot/chat/flow/core.d.ts +1 -1
  113. package/package/components/copilot/chat/flow/core.js +14 -4
  114. package/package/components/copilot/chat/monaco-adapter.d.ts +6 -5
  115. package/package/components/copilot/chat/navigator/core.d.ts +1 -1
  116. package/package/components/copilot/chat/navigator/core.js +7 -2
  117. package/package/components/copilot/chat/script/CodeDisplay.svelte +10 -111
  118. package/package/components/copilot/chat/script/core.d.ts +5 -4
  119. package/package/components/copilot/chat/script/core.js +131 -19
  120. package/package/components/copilot/chat/shared.d.ts +7 -7
  121. package/package/components/copilot/lib.d.ts +29 -8
  122. package/package/components/copilot/lib.js +199 -24
  123. package/package/components/flows/content/FlowInput.svelte +5 -5
  124. package/package/components/flows/content/FlowModuleComponent.svelte +5 -2
  125. package/package/components/flows/content/FlowModuleEarlyStop.svelte +47 -17
  126. package/package/components/flows/content/FlowModuleSleep.svelte +4 -1
  127. package/package/components/flows/content/FlowModuleSuspend.svelte +0 -1
  128. package/package/components/flows/content/FlowModuleTimeout.svelte +50 -10
  129. package/package/components/flows/content/FlowModuleTimeout.svelte.d.ts +1 -0
  130. package/package/components/flows/content/FlowRetries.svelte +108 -3
  131. package/package/components/flows/content/FlowRetries.svelte.d.ts +3 -2
  132. package/package/components/flows/flowInfers.js +8 -35
  133. package/package/components/flows/flowStore.d.ts +45 -1
  134. package/package/components/flows/flowStore.js +1 -1
  135. package/package/components/flows/map/FlowJobsMenu.svelte +3 -3
  136. package/package/components/flows/map/FlowModuleSchemaItem.svelte +61 -54
  137. package/package/components/flows/map/FlowModuleSchemaItem.svelte.d.ts +1 -1
  138. package/package/components/flows/map/FlowModuleSchemaItemViewer.svelte +1 -1
  139. package/package/components/flows/map/InsertModuleButton.svelte +1 -0
  140. package/package/components/flows/map/InsertModuleInner.svelte +12 -15
  141. package/package/components/flows/map/InsertModuleInner.svelte.d.ts +10 -9
  142. package/package/components/flows/propPicker/OutputPickerInner.svelte.d.ts +1 -1
  143. package/package/components/git_sync/DetectionFlow.svelte +15 -17
  144. package/package/components/git_sync/GitSyncContext.svelte.js +1 -1
  145. package/package/components/git_sync/GitSyncRepositoryCard.svelte +0 -1
  146. package/package/components/graph/graphBuilder.svelte.d.ts +5 -1
  147. package/package/components/graph/renderers/edges/BaseEdge.svelte +9 -1
  148. package/package/components/graph/renderers/edges/BaseEdge.svelte.d.ts +4 -1
  149. package/package/components/graph/renderers/nodes/BranchAllStart.svelte +2 -3
  150. package/package/components/graph/renderers/nodes/BranchOneStart.svelte +2 -3
  151. package/package/components/graph/renderers/triggers/TriggerButton.svelte.d.ts +1 -1
  152. package/package/components/graph/renderers/triggers/TriggersBadge.svelte +3 -1
  153. package/package/components/graph/renderers/triggers/TriggersWrapper.svelte +34 -24
  154. package/package/components/graph/renderers/triggers/TriggersWrapper.svelte.d.ts +1 -2
  155. package/package/components/home/ItemsList.svelte +17 -13
  156. package/package/components/home/TreeView.svelte +21 -27
  157. package/package/components/home/TreeView.svelte.d.ts +2 -29
  158. package/package/components/home/TreeViewRoot.svelte +11 -23
  159. package/package/components/home/TreeViewRoot.svelte.d.ts +15 -13
  160. package/package/components/icons/GitIcon.svelte +10 -2
  161. package/package/components/icons/GitIcon.svelte.d.ts +1 -0
  162. package/package/components/meltComponents/MeltButton.svelte.d.ts +1 -1
  163. package/package/components/meltComponents/Popover.svelte +23 -3
  164. package/package/components/meltComponents/Popover.svelte.d.ts +2 -1
  165. package/package/components/monacoLanguagesOptions.d.ts +3 -0
  166. package/package/components/monacoLanguagesOptions.js +109 -0
  167. package/package/components/propertyPicker/ObjectViewer.svelte +7 -2
  168. package/package/components/propertyPicker/PropPicker.svelte +1 -1
  169. package/package/components/propertyPicker/utils.js +14 -7
  170. package/package/components/runs/JobRunsPreview.svelte +212 -177
  171. package/package/components/runs/JobsLoader.svelte +2 -2
  172. package/package/components/runs/JobsLoader.svelte.d.ts +1 -1
  173. package/package/components/runs/NoWorkerWithTagWarning.svelte +18 -5
  174. package/package/components/runs/RunBadges.svelte +100 -0
  175. package/package/components/runs/RunBadges.svelte.d.ts +12 -0
  176. package/package/components/runs/RunLabels.svelte +86 -0
  177. package/package/components/runs/RunLabels.svelte.d.ts +10 -0
  178. package/package/components/runs/RunOption.svelte +20 -0
  179. package/package/components/runs/RunOption.svelte.d.ts +10 -0
  180. package/package/components/runs/RunRow.svelte +239 -151
  181. package/package/components/runs/RunRow.svelte.d.ts +12 -9
  182. package/package/components/runs/RunsBatchActionsDropdown.svelte +13 -17
  183. package/package/components/runs/RunsBatchActionsDropdown.svelte.d.ts +5 -18
  184. package/package/components/runs/RunsFilter.svelte +369 -243
  185. package/package/components/runs/RunsFilter.svelte.d.ts +2 -0
  186. package/package/components/runs/RunsQueue.svelte +96 -25
  187. package/package/components/runs/RunsQueue.svelte.d.ts +7 -21
  188. package/package/components/runs/RunsTable.svelte +62 -71
  189. package/package/components/runs/RunsTable.svelte.d.ts +2 -1
  190. package/package/components/runs/runs-grid.css +95 -0
  191. package/package/components/schema/EditableSchemaDrawer.svelte +12 -12
  192. package/package/components/schema/FlowPropertyEditor.svelte +197 -206
  193. package/package/components/schema/PropertyEditor.svelte +33 -35
  194. package/package/components/schema/SchemaFormDND.svelte.d.ts +2 -2
  195. package/package/components/search/GlobalSearchModal.svelte +8 -1
  196. package/package/components/select/DraggableTags.svelte.d.ts +17 -7
  197. package/package/components/select/MultiSelect.svelte.d.ts +21 -11
  198. package/package/components/select/Select.svelte +2 -1
  199. package/package/components/select/Select.svelte.d.ts +25 -13
  200. package/package/components/select/SelectDropdown.svelte.d.ts +14 -7
  201. package/package/components/settings/TokenDisplay.svelte +1 -1
  202. package/package/components/sidebar/OperatorMenu.svelte +5 -0
  203. package/package/components/sidebar/SidebarContent.svelte +48 -2
  204. package/package/components/sidebar/WorkspaceMenu.svelte +116 -17
  205. package/package/components/toast.js +6 -3
  206. package/package/components/triggers/AddTriggersButton.svelte +7 -6
  207. package/package/components/triggers/CaptureWrapper.svelte +19 -3
  208. package/package/components/triggers/TriggerLabel.svelte +8 -0
  209. package/package/components/triggers/TriggerTokens.svelte +1 -1
  210. package/package/components/triggers/TriggersEditor.svelte +9 -5
  211. package/package/components/triggers/TriggersTable.svelte +2 -2
  212. package/package/components/triggers/TriggersWrapper.svelte +16 -5
  213. package/package/components/triggers/TriggersWrapper.svelte.d.ts +3 -19
  214. package/package/components/{details/EmailTriggerCaptures.svelte → triggers/email/DefaultEmailCapture.svelte} +5 -5
  215. package/package/components/{details/EmailTriggerCaptures.svelte.d.ts → triggers/email/DefaultEmailCapture.svelte.d.ts} +4 -4
  216. package/package/components/{details/EmailTriggerConfigSection.svelte → triggers/email/DefaultEmailConfigSection.svelte} +24 -14
  217. package/package/components/triggers/email/DefaultEmailConfigSection.svelte.d.ts +13 -0
  218. package/package/components/triggers/email/DefaultEmailPanel.svelte +71 -0
  219. package/package/components/triggers/email/DefaultEmailPanel.svelte.d.ts +11 -0
  220. package/package/components/triggers/email/EmailCapture.svelte +39 -0
  221. package/package/components/triggers/email/EmailCapture.svelte.d.ts +43 -0
  222. package/package/components/triggers/email/EmailTriggerEditor.svelte +20 -0
  223. package/package/components/triggers/email/EmailTriggerEditor.svelte.d.ts +11 -0
  224. package/package/components/triggers/email/EmailTriggerEditorConfigSection.svelte +133 -0
  225. package/package/components/triggers/email/EmailTriggerEditorConfigSection.svelte.d.ts +14 -0
  226. package/package/components/triggers/email/EmailTriggerEditorInner.svelte +335 -0
  227. package/package/components/triggers/email/EmailTriggerEditorInner.svelte.d.ts +22 -0
  228. package/package/components/triggers/email/EmailTriggerPanel.svelte +61 -0
  229. package/package/components/triggers/email/EmailTriggerPanel.svelte.d.ts +14 -0
  230. package/package/components/triggers/email/utils.d.ts +4 -0
  231. package/package/components/triggers/email/utils.js +52 -0
  232. package/package/components/triggers/http/RouteEditorConfigSection.svelte +1 -1
  233. package/package/components/triggers/http/utils.js +1 -1
  234. package/package/components/triggers/triggers.svelte.d.ts +1 -0
  235. package/package/components/triggers/triggers.svelte.js +24 -2
  236. package/package/components/triggers/utils.js +19 -5
  237. package/package/components/triggers.d.ts +1 -1
  238. package/package/components/triggers.js +2 -0
  239. package/package/components/wizards/AgGridWizard.svelte +85 -80
  240. package/package/components/workspaceSettings/AISettings.svelte +74 -22
  241. package/package/components/workspaceSettings/AISettings.svelte.d.ts +2 -1
  242. package/package/components/workspaceSettings/CreateWorkspace.svelte +395 -0
  243. package/package/components/workspaceSettings/CreateWorkspace.svelte.d.ts +6 -0
  244. package/package/components/workspaceSettings/DucklakeSettings.svelte +3 -1
  245. package/package/components/workspaceSettings/GitSyncFilterSettings.svelte +1 -1
  246. package/package/components/workspaceSettings/StorageSettings.svelte +69 -48
  247. package/package/gen/core/OpenAPI.js +1 -1
  248. package/package/gen/schemas.gen.d.ts +142 -3
  249. package/package/gen/schemas.gen.js +144 -3
  250. package/package/gen/services.gen.d.ts +129 -1
  251. package/package/gen/services.gen.js +267 -1
  252. package/package/gen/types.gen.d.ts +434 -8
  253. package/package/hubPaths.json +4 -2
  254. package/package/infer.js +1 -1
  255. package/package/keyboardChain.d.ts +5 -0
  256. package/package/keyboardChain.js +40 -0
  257. package/package/services/JobManager.js +2 -2
  258. package/package/stores.d.ts +3 -1
  259. package/package/stores.js +8 -5
  260. package/package/utils/workspaceHierarchy.d.ts +27 -0
  261. package/package/utils/workspaceHierarchy.js +101 -0
  262. package/package/utils.d.ts +6 -3
  263. package/package/utils.js +30 -15
  264. package/package/workspace_settings.js +2 -3
  265. package/package.json +9 -11
  266. package/package/components/DynSelect.svelte.d.ts +0 -11
  267. package/package/components/ObjectTypeNarrowing.svelte +0 -18
  268. package/package/components/ObjectTypeNarrowing.svelte.d.ts +0 -22
  269. package/package/components/details/DetailPageTriggerPanel.svelte +0 -121
  270. package/package/components/details/DetailPageTriggerPanel.svelte.d.ts +0 -20
  271. package/package/components/details/EmailTriggerConfigSection.svelte.d.ts +0 -12
  272. package/package/components/details/EmailTriggerPanel.svelte +0 -76
  273. package/package/components/details/EmailTriggerPanel.svelte.d.ts +0 -26
@@ -1,19 +1,6 @@
1
1
  import 'chartjs-adapter-date-fns';
2
2
  import type { CompletedJob } from '../gen';
3
- interface $$__sveltets_2_IsomorphicComponent<Props extends Record<string, any> = any, Events extends Record<string, any> = any, Slots extends Record<string, any> = any, Exports = {}, Bindings = string> {
4
- new (options: import('svelte').ComponentConstructorOptions<Props>): import('svelte').SvelteComponent<Props, Events, Slots> & {
5
- $$bindings?: Bindings;
6
- } & Exports;
7
- (internal: unknown, props: Props & {
8
- $$events?: Events;
9
- $$slots?: Slots;
10
- }): Exports & {
11
- $set?: any;
12
- $on?: any;
13
- };
14
- z_$$bindings?: Bindings;
15
- }
16
- declare const RunChart: $$__sveltets_2_IsomorphicComponent<{
3
+ interface Props {
17
4
  jobs?: CompletedJob[] | undefined;
18
5
  maxIsNow?: boolean;
19
6
  minTimeSet?: string | undefined;
@@ -21,12 +8,13 @@ declare const RunChart: $$__sveltets_2_IsomorphicComponent<{
21
8
  selectedIds?: string[];
22
9
  canSelect?: boolean;
23
10
  lastFetchWentToEnd?: boolean;
24
- }, {
25
- loadExtra: CustomEvent<any>;
26
- zoom: CustomEvent<any>;
27
- pointClicked: CustomEvent<any>;
28
- } & {
29
- [evt: string]: CustomEvent<any>;
30
- }, {}, {}, string>;
31
- type RunChart = InstanceType<typeof RunChart>;
11
+ onPointClicked: (ids: string[]) => void;
12
+ onLoadExtra: () => void;
13
+ onZoom: (zoom: {
14
+ min: Date;
15
+ max: Date;
16
+ }) => void;
17
+ }
18
+ declare const RunChart: import("svelte").Component<Props, {}, "selectedIds">;
19
+ type RunChart = ReturnType<typeof RunChart>;
32
20
  export default RunChart;
@@ -489,7 +489,7 @@ $effect.pre(() => {
489
489
  >
490
490
  {#snippet header()}{/snippet}
491
491
  {#snippet footer()}{/snippet}
492
- {#snippet children({ index, style })}
492
+ {#snippet item({ index, style })}
493
493
  {@const file_info = allFilesByKey[displayedFileKeys[index]]}
494
494
 
495
495
  <div
@@ -1,5 +1,5 @@
1
1
  import type { Schema } from '../common';
2
- import { type DynamicSelect } from '../utils';
2
+ import { type DynamicInput } from '../utils';
3
3
  import { type Options as DndOptions } from '@windmill-labs/svelte-dnd-action';
4
4
  import type { SchemaDiff } from './schema/schemaUtils.svelte';
5
5
  import type { ComponentCustomCSS } from './apps/types';
@@ -30,7 +30,7 @@ interface Props {
30
30
  id: string;
31
31
  value: string;
32
32
  }[] | undefined;
33
- helperScript?: DynamicSelect.HelperScript;
33
+ helperScript?: DynamicInput.HelperScript;
34
34
  lightHeader?: boolean;
35
35
  diff?: Record<string, SchemaDiff>;
36
36
  nestedParent?: {
@@ -133,7 +133,7 @@ async function loadTriggers() {
133
133
  // Add triggers context store
134
134
  const triggersState = $state(new Triggers([
135
135
  { type: 'webhook', path: '', isDraft: false },
136
- { type: 'email', path: '', isDraft: false },
136
+ { type: 'default_email', path: '', isDraft: false },
137
137
  ...(script.draft_triggers ?? [])
138
138
  ], undefined, saveSessionDraft));
139
139
  const captureOn = writable(undefined);
@@ -1571,6 +1571,7 @@ async function loadWorkerTags() {
1571
1571
  bind:hasPreprocessor
1572
1572
  bind:captureTable
1573
1573
  bind:assets={script.assets}
1574
+ enablePreprocessorSnippet
1574
1575
  />
1575
1576
  </div>
1576
1577
  {:else}
@@ -36,7 +36,7 @@ import { triggerableByAI } from '../actions/triggerableByAI.svelte';
36
36
  import AssetsDropdownButton from './assets/AssetsDropdownButton.svelte';
37
37
  import { assetEq } from './assets/lib';
38
38
  import { editor as meditor } from 'monaco-editor';
39
- let { schema = $bindable(), code = $bindable(), path, lang, kind = undefined, template = 'script', tag, fixedOverflowWidgets = true, noSyncFromGithub = false, editor = $bindable(undefined), diffEditor = $bindable(undefined), collabMode = false, edit = true, noHistory = false, saveToWorkspace = false, watchChanges = false, customUi = undefined, args = $bindable(), selectedTab = $bindable('main'), hasPreprocessor = $bindable(false), captureTable = $bindable(undefined), showCaptures = true, stablePathForCaptures = '', lastSavedCode = undefined, lastDeployedCode = undefined, disableAi = false, assets = $bindable(), editor_bar_right } = $props();
39
+ let { schema = $bindable(), code = $bindable(), path, lang, kind = undefined, template = 'script', tag, fixedOverflowWidgets = true, noSyncFromGithub = false, editor = $bindable(undefined), diffEditor = $bindable(undefined), collabMode = false, edit = true, noHistory = false, saveToWorkspace = false, watchChanges = false, customUi = undefined, args = $bindable(), selectedTab = $bindable('main'), hasPreprocessor = $bindable(false), captureTable = $bindable(undefined), showCaptures = true, stablePathForCaptures = '', lastSavedCode = undefined, lastDeployedCode = undefined, disableAi = false, assets = $bindable(), editor_bar_right, enablePreprocessorSnippet = false } = $props();
40
40
  $effect.pre(() => {
41
41
  if (schema == undefined) {
42
42
  schema = emptySchema();
@@ -297,9 +297,9 @@ $effect(() => {
297
297
  };
298
298
  untrack(() => {
299
299
  aiChatManager.scriptEditorOptions = options;
300
- aiChatManager.scriptEditorApplyCode = (code, applyAll = false) => {
300
+ aiChatManager.scriptEditorApplyCode = async (code, opts) => {
301
301
  hideDiffMode();
302
- editor?.reviewAndApplyCode(code, applyAll);
302
+ await editor?.reviewAndApplyCode(code, opts);
303
303
  };
304
304
  aiChatManager.scriptEditorShowDiffMode = showDiffMode;
305
305
  });
@@ -492,6 +492,7 @@ $effect(() => {
492
492
  automaticLayout={true}
493
493
  {fixedOverflowWidgets}
494
494
  {args}
495
+ {enablePreprocessorSnippet}
495
496
  />
496
497
  <DiffEditor
497
498
  className="h-full"
@@ -35,6 +35,7 @@ interface Props {
35
35
  disableAi?: boolean;
36
36
  assets?: AssetWithAltAccessType[];
37
37
  editor_bar_right?: import('svelte').Snippet;
38
+ enablePreprocessorSnippet?: boolean;
38
39
  }
39
40
  interface $$__sveltets_2_IsomorphicComponent<Props extends Record<string, any> = any, Events extends Record<string, any> = any, Slots extends Record<string, any> = any, Exports = {}, Bindings = string> {
40
41
  new (options: import('svelte').ComponentConstructorOptions<Props>): import('svelte').SvelteComponent<Props, Events, Slots> & {
@@ -74,6 +75,6 @@ declare const ScriptEditor: $$__sveltets_2_IsomorphicComponent<Props, {
74
75
  setCollaborationMode: () => Promise<void>;
75
76
  disableCollaboration: () => void;
76
77
  updateArgs: (newArgs: Record<string, any>) => Promise<void>;
77
- }, "args" | "code" | "assets" | "schema" | "selectedTab" | "editor" | "diffEditor" | "hasPreprocessor" | "captureTable">;
78
+ }, "args" | "code" | "assets" | "schema" | "editor" | "selectedTab" | "diffEditor" | "hasPreprocessor" | "captureTable">;
78
79
  type ScriptEditor = InstanceType<typeof ScriptEditor>;
79
80
  export default ScriptEditor;
@@ -12,7 +12,7 @@ import { copyToClipboard, scroll_into_view_if_needed_polyfill, truncateRev } fro
12
12
  import LogSnippetViewer from './LogSnippetViewer.svelte';
13
13
  import { Button, Drawer, DrawerContent } from './common';
14
14
  import ClipboardCopy from 'lucide-svelte/icons/clipboard-copy';
15
- import AnsiUp from 'ansi_up';
15
+ import { AnsiUp } from 'ansi_up';
16
16
  import SplitPanesOrColumnOnMobile from './splitPanes/SplitPanesOrColumnOnMobile.svelte';
17
17
  import Select from './select/Select.svelte';
18
18
  import { goto } from '../navigation';
@@ -16,7 +16,7 @@ declare const ShareModal: $$__sveltets_2_IsomorphicComponent<Record<string, neve
16
16
  } & {
17
17
  [evt: string]: CustomEvent<any>;
18
18
  }, {}, {
19
- openDrawer: (newPath: string, kind_l: "resource" | "script" | "flow" | "app" | "variable" | "schedule" | "group_" | "raw_app" | "http_trigger" | "websocket_trigger" | "kafka_trigger" | "nats_trigger" | "postgres_trigger" | "mqtt_trigger" | "gcp_trigger" | "sqs_trigger") => Promise<void>;
19
+ openDrawer: (newPath: string, kind_l: "resource" | "script" | "flow" | "app" | "variable" | "schedule" | "group_" | "raw_app" | "http_trigger" | "websocket_trigger" | "kafka_trigger" | "nats_trigger" | "postgres_trigger" | "mqtt_trigger" | "gcp_trigger" | "sqs_trigger" | "email_trigger") => Promise<void>;
20
20
  }, "">;
21
21
  type ShareModal = InstanceType<typeof ShareModal>;
22
22
  export default ShareModal;
@@ -7,51 +7,6 @@
7
7
  import '@codingame/monaco-vscode-standalone-css-language-features'
8
8
  import '@codingame/monaco-vscode-standalone-typescript-language-features'
9
9
  import '@codingame/monaco-vscode-standalone-html-language-features'
10
- import {
11
- editor as meditor,
12
- KeyCode,
13
- KeyMod,
14
- Uri as mUri,
15
- languages,
16
- type IRange,
17
- type IDisposable,
18
- type IPosition
19
- } from 'monaco-editor'
20
-
21
- languages.typescript.javascriptDefaults.setCompilerOptions({
22
- target: languages.typescript.ScriptTarget.Latest,
23
- allowNonTsExtensions: true,
24
- noSemanticValidation: false,
25
- noLib: true,
26
- moduleResolution: languages.typescript.ModuleResolutionKind.NodeJs
27
- })
28
- function setDiagnosticsOptions() {
29
- languages.typescript.javascriptDefaults.setDiagnosticsOptions({
30
- noSemanticValidation: false,
31
- noSyntaxValidation: false,
32
- noSuggestionDiagnostics: false,
33
- diagnosticCodesToIgnore: [1108]
34
- })
35
- }
36
- setDiagnosticsOptions()
37
- languages.json.jsonDefaults.setDiagnosticsOptions({
38
- validate: true,
39
- allowComments: false,
40
- schemas: [],
41
- enableSchemaRequest: true
42
- })
43
- languages.json.jsonDefaults.setModeConfiguration({
44
- documentRangeFormattingEdits: false,
45
- documentFormattingEdits: true,
46
- hovers: true,
47
- completionItems: true,
48
- documentSymbols: true,
49
- tokens: true,
50
- colors: true,
51
- foldingRanges: true,
52
- selectionRanges: true,
53
- diagnostics: true
54
- })
55
10
  </script>
56
11
 
57
12
  <script lang="ts">import { BROWSER } from 'esm-env';
@@ -77,6 +32,8 @@ import { initVim } from './monaco_keybindings';
77
32
  import FakeMonacoPlaceHolder from './FakeMonacoPlaceHolder.svelte';
78
33
  import { editorPositionMap } from '../utils';
79
34
  import { langToExt } from '../editorLangUtils';
35
+ import { editor as meditor, KeyCode, KeyMod, Uri as mUri, languages } from 'monaco-editor';
36
+ import { setMonacoJavascriptOptions, setMonacoJsonOptions } from './monacoLanguagesOptions';
80
37
  // import { createConfiguredEditor } from 'vscode/monaco'
81
38
  // import type { IStandaloneCodeEditor } from 'vscode/vscode/vs/editor/standalone/browser/standaloneCodeEditor'
82
39
  let divEl = null;
@@ -247,30 +204,10 @@ $effect(() => {
247
204
  });
248
205
  let fontSize = $derived(small ? 12 : 14);
249
206
  async function loadMonaco() {
207
+ setMonacoJsonOptions();
208
+ setMonacoJavascriptOptions();
250
209
  await initializeVscode();
251
210
  initialized = true;
252
- // if (lang === 'javascript') {
253
- // languages.typescript.javascriptDefaults.setCompilerOptions({
254
- // target: languages.typescript.ScriptTarget.Latest,
255
- // allowNonTsExtensions: true,
256
- // noSemanticValidation: false,
257
- // noLib: true,
258
- // moduleResolution: languages.typescript.ModuleResolutionKind.NodeJs
259
- // })
260
- // languages.typescript.javascriptDefaults.setDiagnosticsOptions({
261
- // noSemanticValidation: false,
262
- // noSyntaxValidation: false,
263
- // noSuggestionDiagnostics: false,
264
- // diagnosticCodesToIgnore: [1108]
265
- // })
266
- // } else if (lang === 'json') {
267
- // languages.json.jsonDefaults.setDiagnosticsOptions({
268
- // validate: true,
269
- // allowComments: false,
270
- // schemas: [],
271
- // enableSchemaRequest: true
272
- // })
273
- // }
274
211
  try {
275
212
  model = meditor.createModel(code ?? '', lang, mUri.parse(uri));
276
213
  }
@@ -1,5 +1,4 @@
1
- <script lang="ts">import { run } from 'svelte/legacy';
2
- import { computeKind } from '../utils';
1
+ <script lang="ts">import { computeKind } from '../utils';
3
2
  import Label from './Label.svelte';
4
3
  import ResourceTypePicker from './ResourceTypePicker.svelte';
5
4
  import Toggle from './Toggle.svelte';
@@ -21,6 +20,7 @@ const FORMATS = [
21
20
  'uri',
22
21
  'uuid',
23
22
  'ipv4',
23
+ 'ipv6',
24
24
  'yaml',
25
25
  'sql',
26
26
  // 'time',
@@ -38,21 +38,16 @@ const FIELD_SETTINGS = [
38
38
  ['Format', 'format'],
39
39
  ['Pattern', 'pattern']
40
40
  ];
41
- run(() => {
41
+ $effect(() => {
42
42
  format =
43
43
  kind == 'resource' ? (resource != undefined ? `resource-${resource}` : 'resource') : format;
44
44
  });
45
- run(() => {
45
+ $effect(() => {
46
46
  pattern = patternStr == '' ? undefined : patternStr;
47
47
  });
48
- run(() => {
48
+ $effect(() => {
49
49
  contentEncoding = kind == 'base64' ? 'base64' : undefined;
50
50
  });
51
- run(() => {
52
- if (format == 'email') {
53
- pattern = '^[\\w-+.]+@([\\w-]+\\.)+[\\w-]{2,63}$';
54
- }
55
- });
56
51
  function add() {
57
52
  if (enumLabels === undefined) {
58
53
  enumLabels = {};
@@ -1,19 +1,5 @@
1
1
  <script module>
2
2
  import '@codingame/monaco-vscode-standalone-typescript-language-features'
3
-
4
- languages.typescript.javascriptDefaults.setCompilerOptions({
5
- target: languages.typescript.ScriptTarget.Latest,
6
- allowNonTsExtensions: true,
7
- noSemanticValidation: false,
8
- noLib: true,
9
- moduleResolution: languages.typescript.ModuleResolutionKind.NodeJs
10
- })
11
- languages.typescript.javascriptDefaults.setDiagnosticsOptions({
12
- noSemanticValidation: false,
13
- noSyntaxValidation: false,
14
- noSuggestionDiagnostics: false,
15
- diagnosticCodesToIgnore: [1108]
16
- })
17
3
  </script>
18
4
 
19
5
  <script lang="ts">import { BROWSER } from 'esm-env';
@@ -28,6 +14,7 @@ import { writable } from 'svelte/store';
28
14
  import { initializeVscode } from './vscode';
29
15
  import EditorTheme from './EditorTheme.svelte';
30
16
  import FakeMonacoPlaceHolder from './FakeMonacoPlaceHolder.svelte';
17
+ import { setMonacoJsonOptions } from './monacoLanguagesOptions';
31
18
  export const conf = {
32
19
  wordPattern: /(-?\d*\.\d\w*)|([^\`\~\!\@\#\%\^\&\*\(\)\-\=\+\[\{\]\}\\\|\;\:\'\"\,\.\<\>\/\?\s]+)/g,
33
20
  comments: {
@@ -381,9 +368,8 @@ let initialized = false;
381
368
  let jsLoader = undefined;
382
369
  let timeoutModel = undefined;
383
370
  async function loadMonaco() {
384
- console.log('init template');
371
+ setMonacoJsonOptions();
385
372
  await initializeVscode('templateEditor');
386
- console.log('initialized');
387
373
  initialized = true;
388
374
  languages.register({ id: 'template' });
389
375
  // Register a tokens provider for the language
@@ -4,8 +4,8 @@ import { onDestroy, onMount } from 'svelte';
4
4
  export let date;
5
5
  export let agoOnlyIfRecent = false;
6
6
  export let noDate = false;
7
+ export let isRecent = true;
7
8
  let computedTimeAgo = undefined;
8
- let isRecent = true;
9
9
  let interval;
10
10
  $: date && computeDate();
11
11
  onMount(() => {
@@ -15,6 +15,7 @@ declare const TimeAgo: $$__sveltets_2_IsomorphicComponent<{
15
15
  date: string;
16
16
  agoOnlyIfRecent?: boolean;
17
17
  noDate?: boolean;
18
+ isRecent?: boolean;
18
19
  }, {
19
20
  [evt: string]: CustomEvent<any>;
20
21
  }, {}, {}, string>;
@@ -26,6 +26,7 @@ export let textDisabled = false;
26
26
  class="{$$props.class || ''} z-auto flex flex-row items-center duration-50 {disabled
27
27
  ? 'grayscale opacity-50'
28
28
  : 'cursor-pointer'}"
29
+ title={options?.title}
29
30
  >
30
31
  {#if Boolean(options?.left)}
31
32
  <span
@@ -92,7 +93,7 @@ export let textDisabled = false;
92
93
  class={twMerge(
93
94
  'ml-2 font-medium duration-50 select-none',
94
95
  bothOptions || textDisabled ? (checked ? 'text-primary' : 'text-disabled') : 'text-primary',
95
- size === 'xs' || size === '2sm' ? 'text-xs' : 'text-sm',
96
+ size === 'xs' || size === '2sm' ? 'text-xs' : size === '2xs' ? 'text-xs' : 'text-sm',
96
97
  textClass
97
98
  )}
98
99
  style={textStyle}
@@ -19,6 +19,7 @@ declare const Toggle: $$__sveltets_2_IsomorphicComponent<{
19
19
  right?: string;
20
20
  rightTooltip?: string;
21
21
  rightDocumentationLink?: string;
22
+ title?: string;
22
23
  } | undefined;
23
24
  checked?: boolean | undefined;
24
25
  disabled?: boolean | undefined;
@@ -33,7 +34,7 @@ declare const Toggle: $$__sveltets_2_IsomorphicComponent<{
33
34
  size?: "sm" | "xs" | "2xs" | "2sm" | undefined;
34
35
  textDisabled?: boolean | undefined;
35
36
  }, {
36
- click: MouseEvent;
37
+ click: PointerEvent;
37
38
  focus: FocusEvent;
38
39
  change: CustomEvent<boolean>;
39
40
  } & {
@@ -37,7 +37,7 @@ let homeDirectory = '~';
37
37
  let pendingsJobs = $state([]);
38
38
  let loadingPendingJobs = $state(false);
39
39
  let isCancelingJob = $state(false);
40
- let prompt = $derived(`$-${working_directory === '/' ? '/' : working_directory.split('/').at(-1)} `);
40
+ let prompt = $derived(`$-${working_directory === '/' ? '/' : working_directory.split('/').pop()} `);
41
41
  let codeObj = $state(undefined);
42
42
  function getNewWorkingDirectoryPath(currentDir, newPath) {
43
43
  if (newPath.startsWith('/') || newPath.startsWith('~')) {
@@ -9,6 +9,7 @@ import { loadIcon } from '../icon';
9
9
  import ResolveConfig from '../helpers/ResolveConfig.svelte';
10
10
  import { twMerge } from 'tailwind-merge';
11
11
  import ResolveNavbarItemPath from './ResolveNavbarItemPath.svelte';
12
+ import { urlParamsToObject } from '../../../../utils';
12
13
  let { navbarItem, id, borderColor = undefined, index, output = $bindable(), orientation = undefined } = $props();
13
14
  let icon = $state();
14
15
  async function handleIcon() {
@@ -47,7 +48,7 @@ function getButtonProps(resolvedPath) {
47
48
  const queryParams = url.search;
48
49
  const hash = url.hash;
49
50
  replaceStateFn?.(`${window.location.pathname}${queryParams}${hash}`);
50
- $worldStore.outputsById['ctx'].query.set(Object.fromEntries(new URLSearchParams(queryParams).entries()));
51
+ $worldStore.outputsById['ctx'].query.set(urlParamsToObject(new URLSearchParams(queryParams)));
51
52
  $worldStore.outputsById['ctx'].hash.set(hash.substring(1));
52
53
  $selected = resolvedPath === extractPathDetails() ? resolvedPath : undefined;
53
54
  },
@@ -17,7 +17,7 @@ import { twMerge } from 'tailwind-merge';
17
17
  import { deepCloneWithFunctions, initCss } from '../../../utils';
18
18
  import ResolveStyle from '../../helpers/ResolveStyle.svelte';
19
19
  import AppAggridTableActions from './AppAggridTableActions.svelte';
20
- import { cellRendererFactory, defaultCellRenderer } from './utils';
20
+ import { cellRendererFactory, transformColumnDefs } from './utils';
21
21
  import Popover from '../../../../Popover.svelte';
22
22
  import { Button } from '../../../../common';
23
23
  import InputValue from '../../helpers/InputValue.svelte';
@@ -217,6 +217,12 @@ const tableActionsFactory = cellRendererFactory((c, p) => {
217
217
  taComponent.props.rowIndex = params.node.rowIndex ?? 0;
218
218
  taComponent.props.row = params.data;
219
219
  taComponent.props.p = params;
220
+ const nextActions = computedOrder
221
+ ? computedOrder
222
+ .map((key) => actions?.find((a) => a.id === key))
223
+ .filter(Boolean)
224
+ : actions;
225
+ taComponent.props.actions = nextActions;
220
226
  }
221
227
  };
222
228
  });
@@ -229,31 +235,21 @@ function mountGrid() {
229
235
  // console.log(resolvedConfig?.extraConfig)
230
236
  if (eGui) {
231
237
  try {
232
- let columnDefs = Array.isArray(resolvedConfig?.columnDefs) && resolvedConfig.columnDefs.every(isObject)
233
- ? [...resolvedConfig?.columnDefs] // Clone to avoid direct mutation
234
- : [];
235
- // Add the action column if actions are defined
236
- if (actions && actions.length > 0) {
237
- columnDefs.push({
238
- headerName: resolvedConfig?.customActionsHeader
239
- ? resolvedConfig?.customActionsHeader
240
- : 'Actions',
241
- cellRenderer: tableActionsFactory,
242
- autoHeight: true,
243
- cellStyle: { textAlign: 'center' },
244
- cellClass: 'grid-cell-centered',
245
- ...(!resolvedConfig?.wrapActions ? { minWidth: 130 * actions?.length } : {})
246
- });
247
- }
238
+ const agColumnDefs = transformColumnDefs({
239
+ columnDefs: Array.isArray(resolvedConfig?.columnDefs) && resolvedConfig.columnDefs.every(isObject)
240
+ ? [...resolvedConfig?.columnDefs]
241
+ : [],
242
+ actions,
243
+ customActionsHeader: resolvedConfig?.customActionsHeader,
244
+ wrapActions: resolvedConfig?.wrapActions,
245
+ tableActionsFactory,
246
+ onInvalidColumnDefs: (errors) => {
247
+ sendUserToast(`Invalid columnDefs: ${errors.join('\n')}`, true);
248
+ }
249
+ });
248
250
  createGrid(eGui, {
249
251
  rowData: value,
250
- columnDefs: columnDefs.map((fields) => {
251
- let cr = defaultCellRenderer(fields.cellRendererType);
252
- return {
253
- ...fields,
254
- ...(cr ? { cellRenderer: cr } : {})
255
- };
256
- }),
252
+ columnDefs: agColumnDefs,
257
253
  pagination: resolvedConfig?.pagination,
258
254
  paginationAutoPageSize: resolvedConfig?.pagination,
259
255
  suppressPaginationPanel: true,
@@ -377,31 +373,21 @@ function updateValue() {
377
373
  }
378
374
  function updateOptions() {
379
375
  try {
380
- const columnDefs = Array.isArray(resolvedConfig?.columnDefs) && resolvedConfig.columnDefs.every(isObject)
381
- ? [...resolvedConfig?.columnDefs] // Clone to avoid direct mutation
382
- : [];
383
- // Add the action column if actions are defined
384
- if (actions && actions.length > 0) {
385
- columnDefs.push({
386
- headerName: resolvedConfig?.customActionsHeader
387
- ? resolvedConfig?.customActionsHeader
388
- : 'Actions',
389
- cellRenderer: tableActionsFactory,
390
- autoHeight: true,
391
- cellStyle: { textAlign: 'center' },
392
- cellClass: 'grid-cell-centered',
393
- ...(!resolvedConfig?.wrapActions ? { minWidth: 130 * actions?.length } : {})
394
- });
395
- }
376
+ const agColumnDefs = transformColumnDefs({
377
+ columnDefs: Array.isArray(resolvedConfig?.columnDefs) && resolvedConfig.columnDefs.every(isObject)
378
+ ? [...resolvedConfig?.columnDefs]
379
+ : [],
380
+ actions,
381
+ customActionsHeader: resolvedConfig?.customActionsHeader,
382
+ wrapActions: resolvedConfig?.wrapActions,
383
+ tableActionsFactory,
384
+ onInvalidColumnDefs: (errors) => {
385
+ sendUserToast(`Invalid columnDefs: ${errors.join('\n')}`, true);
386
+ }
387
+ });
396
388
  api?.updateGridOptions({
397
389
  rowData: value,
398
- columnDefs: columnDefs.map((fields) => {
399
- let cr = defaultCellRenderer(fields.cellRendererType);
400
- return {
401
- ...fields,
402
- ...(cr ? { cellRenderer: cr } : {})
403
- };
404
- }),
390
+ columnDefs: agColumnDefs,
405
391
  pagination: resolvedConfig?.pagination,
406
392
  paginationAutoPageSize: resolvedConfig?.pagination,
407
393
  suppressPaginationPanel: true,
@@ -421,6 +407,10 @@ function updateOptions() {
421
407
  ...resolvedConfig?.extraConfig?.['defaultColDef']
422
408
  }
423
409
  });
410
+ // Force refresh to re-render cell renderers after actions change
411
+ api?.refreshCells({ force: true });
412
+ // Force complete redraw to clear stale inline styles
413
+ api?.redrawRows();
424
414
  }
425
415
  catch (e) {
426
416
  console.error(e);
@@ -507,7 +497,13 @@ $effect(() => {
507
497
  bind:loading
508
498
  hideRefreshButton={true}
509
499
  >
510
- <SyncColumnDefs {id} columnDefs={resolvedConfig.columnDefs} {result}>
500
+ <SyncColumnDefs
501
+ {id}
502
+ columnDefs={resolvedConfig.columnDefs}
503
+ {result}
504
+ actionsPresent={Array.isArray(actions) && actions.length > 0}
505
+ customActionsHeader={resolvedConfig?.customActionsHeader}
506
+ >
511
507
  <div
512
508
  class={twMerge(
513
509
  'flex flex-col h-full component-wrapper divide-y',