windmill-components 1.405.0 → 1.406.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 (109) hide show
  1. package/package/assets/app.css +20 -0
  2. package/package/components/AppConnectLightweightResourcePicker.svelte +66 -0
  3. package/package/components/AppConnectLightweightResourcePicker.svelte.d.ts +21 -0
  4. package/package/components/ArgInput.svelte +6 -2
  5. package/package/components/ArgInput.svelte.d.ts +1 -0
  6. package/package/components/CustomPopover.svelte +1 -1
  7. package/package/components/DisplayResult.svelte +1 -1
  8. package/package/components/FlowBuilder.svelte +2 -0
  9. package/package/components/FlowBuilder.svelte.d.ts +1 -0
  10. package/package/components/FlowInputViewer.svelte +25 -0
  11. package/package/components/FlowInputViewer.svelte.d.ts +19 -0
  12. package/package/components/FlowJobResult.svelte +8 -1
  13. package/package/components/FlowJobResult.svelte.d.ts +1 -0
  14. package/package/components/FlowMetadata.svelte +2 -2
  15. package/package/components/FlowPreviewContent.svelte +2 -1
  16. package/package/components/FlowStatusViewer.svelte +3 -1
  17. package/package/components/FlowStatusViewer.svelte.d.ts +1 -0
  18. package/package/components/FlowStatusViewerInner.svelte +4 -1
  19. package/package/components/FlowViewer.svelte +2 -21
  20. package/package/components/LightweightResourcePicker.svelte +34 -30
  21. package/package/components/LogViewer.svelte +4 -3
  22. package/package/components/LogViewer.svelte.d.ts +1 -0
  23. package/package/components/ManualPopover.svelte +1 -1
  24. package/package/components/ObjectResourceInput.svelte +5 -2
  25. package/package/components/ObjectResourceInput.svelte.d.ts +2 -0
  26. package/package/components/Popover.svelte +1 -1
  27. package/package/components/Portal.svelte +7 -8
  28. package/package/components/Portal.svelte.d.ts +3 -7
  29. package/package/components/QueueMetricsDrawer.svelte +368 -3
  30. package/package/components/QueueMetricsDrawer.svelte.d.ts +2 -0
  31. package/package/components/ResourceEditor.svelte +4 -5
  32. package/package/components/ResourcePicker.svelte +14 -9
  33. package/package/components/ResourcePicker.svelte.d.ts +1 -0
  34. package/package/components/RunForm.svelte +1 -1
  35. package/package/components/SavedInputs.svelte +2 -2
  36. package/package/components/ScriptVersionHistory.svelte +54 -59
  37. package/package/components/TestConnection.svelte +1 -0
  38. package/package/components/TimeAgo.svelte +5 -6
  39. package/package/components/TimeAgo.svelte.d.ts +1 -1
  40. package/package/components/apps/components/buttons/AppButton.svelte +1 -1
  41. package/package/components/apps/components/display/dbtable/AppDbExplorer.svelte +1 -1
  42. package/package/components/apps/components/inputs/AppMultiSelect.svelte +1 -1
  43. package/package/components/apps/components/inputs/AppMultiSelectV2.svelte +1 -1
  44. package/package/components/apps/components/layout/AppDrawer.svelte +1 -1
  45. package/package/components/apps/components/layout/AppModal.svelte +1 -1
  46. package/package/components/apps/editor/AppEditor.svelte +11 -3
  47. package/package/components/apps/editor/GridEditor.svelte +57 -4
  48. package/package/components/apps/editor/GridEditor.svelte.d.ts +8 -0
  49. package/package/components/apps/editor/GridEditorMenu.svelte +1 -1
  50. package/package/components/apps/editor/SubGridEditor.svelte +82 -3
  51. package/package/components/apps/editor/SubGridEditor.svelte.d.ts +16 -0
  52. package/package/components/apps/editor/appUtils.d.ts +19 -2
  53. package/package/components/apps/editor/appUtils.js +103 -7
  54. package/package/components/apps/editor/component/Component.svelte +36 -8
  55. package/package/components/apps/editor/component/Component.svelte.d.ts +3 -1
  56. package/package/components/apps/editor/contextPanel/components/OutputHeader.svelte +1 -1
  57. package/package/components/apps/svelte-grid/Grid.svelte +235 -12
  58. package/package/components/apps/svelte-grid/Grid.svelte.d.ts +7 -7
  59. package/package/components/apps/svelte-grid/MoveResize.svelte +104 -11
  60. package/package/components/apps/svelte-grid/MoveResize.svelte.d.ts +7 -0
  61. package/package/components/apps/svelte-grid/utils/item.d.ts +4 -1
  62. package/package/components/apps/svelte-grid/utils/item.js +2 -3
  63. package/package/components/apps/svelte-select/lib/ConditionalPortal.svelte +1 -1
  64. package/package/components/apps/svelte-select/lib/ConditionalPortalGlobal.svelte +1 -1
  65. package/package/components/common/button/ButtonDropdown.svelte +1 -1
  66. package/package/components/common/drawer/ConditionalPortal.svelte +1 -1
  67. package/package/components/common/menu/MenuV2.svelte +1 -1
  68. package/package/components/common/modal/AlwaysMountedModal.svelte +1 -1
  69. package/package/components/common/popup/PopupV2.svelte +1 -1
  70. package/package/components/copilot/StepGenQuick.svelte +3 -2
  71. package/package/components/copilot/StepGenQuick.svelte.d.ts +1 -0
  72. package/package/components/custom_ui.d.ts +1 -0
  73. package/package/components/details/Menu.svelte +1 -1
  74. package/package/components/flows/CreateActionsApp.svelte +1 -1
  75. package/package/components/flows/FlowEditor.svelte +2 -1
  76. package/package/components/flows/FlowEditor.svelte.d.ts +1 -0
  77. package/package/components/flows/FlowHistory.svelte +10 -195
  78. package/package/components/flows/FlowHistory.svelte.d.ts +0 -1
  79. package/package/components/flows/FlowHistoryInner.svelte +200 -0
  80. package/package/components/flows/FlowHistoryInner.svelte.d.ts +19 -0
  81. package/package/components/flows/content/FlowEditorPanel.svelte +2 -1
  82. package/package/components/flows/content/FlowEditorPanel.svelte.d.ts +1 -0
  83. package/package/components/flows/content/FlowInput.svelte +66 -58
  84. package/package/components/flows/content/FlowInput.svelte.d.ts +1 -0
  85. package/package/components/flows/content/FlowModuleScript.svelte +1 -1
  86. package/package/components/flows/header/FlowYamlEditor.svelte +6 -2
  87. package/package/components/flows/map/FlowModuleSchemaMap.svelte +3 -2
  88. package/package/components/flows/map/InsertModuleButton.svelte +1 -1
  89. package/package/components/flows/pickers/WorkspaceScriptPickerQuick.svelte +1 -1
  90. package/package/components/graph/model.d.ts +1 -0
  91. package/package/components/icons/WindmillIcon.svelte +119 -105
  92. package/package/components/icons/store.d.ts +4 -0
  93. package/package/components/icons/store.js +1 -0
  94. package/package/components/multiselect/MultiSelectWrapper.svelte +1 -1
  95. package/package/components/propertyPicker/ObjectViewer.svelte +1 -1
  96. package/package/components/runs/RunRow.svelte +3 -7
  97. package/package/components/schema/FlowPropertyEditor.svelte +1 -0
  98. package/package/components/search/GlobalSearchModal.svelte +1 -1
  99. package/package/script_helpers.d.ts +37 -38
  100. package/package/script_helpers.js +100 -38
  101. package/package.json +23 -1
  102. package/package/init_scripts/python_failure_module.d.ts +0 -2
  103. package/package/init_scripts/python_failure_module.js +0 -8
  104. package/package/init_scripts/python_init_code.d.ts +0 -2
  105. package/package/init_scripts/python_init_code.js +0 -40
  106. package/package/init_scripts/python_init_code_clear.d.ts +0 -2
  107. package/package/init_scripts/python_init_code_clear.js +0 -5
  108. package/package/init_scripts/python_init_code_trigger.d.ts +0 -2
  109. package/package/init_scripts/python_init_code_trigger.js +0 -14
@@ -9,6 +9,7 @@ import { dfs } from '../dfs';
9
9
  import FlowPreprocessorModule from './FlowPreprocessorModule.svelte';
10
10
  export let noEditor = false;
11
11
  export let enableAi = false;
12
+ export let disabledFlowInputs = false;
12
13
  const { selectedId, flowStore, flowStateStore, flowInputsStore } = getContext('FlowEditorContext');
13
14
  function checkDup(modules) {
14
15
  let seenModules = [];
@@ -41,7 +42,7 @@ onMount(() => {
41
42
  {#if $selectedId?.startsWith('settings')}
42
43
  <FlowSettings {noEditor} />
43
44
  {:else if $selectedId === 'Input'}
44
- <FlowInput {noEditor} />
45
+ <FlowInput {noEditor} disabled={disabledFlowInputs} />
45
46
  {:else if $selectedId === 'Result'}
46
47
  <p class="p-4 text-secondary">Nothing to show about the result node. Happy flow building!</p>
47
48
  {:else if $selectedId === 'constants'}
@@ -3,6 +3,7 @@ declare const __propDef: {
3
3
  props: {
4
4
  noEditor?: boolean | undefined;
5
5
  enableAi?: boolean | undefined;
6
+ disabledFlowInputs?: boolean | undefined;
6
7
  };
7
8
  events: {
8
9
  [evt: string]: CustomEvent<any>;
@@ -10,7 +10,9 @@ import { sendUserToast } from '../../../toast';
10
10
  import SavedInputs from '../../SavedInputs.svelte';
11
11
  import EditableSchemaForm from '../../EditableSchemaForm.svelte';
12
12
  import AddProperty from '../../schema/AddProperty.svelte';
13
+ import FlowInputViewer from '../../FlowInputViewer.svelte';
13
14
  export let noEditor;
15
+ export let disabled;
14
16
  const { flowStore, flowStateStore, previewArgs, initialPath } = getContext('FlowEditorContext');
15
17
  let capturePayload;
16
18
  let inputLibraryDrawer;
@@ -32,67 +34,73 @@ const yOffset = 191;
32
34
  <CapturePayload bind:this={capturePayload} />
33
35
 
34
36
  <FlowCard {noEditor} title="Flow Input">
35
- <div class="flex flex-row items-center gap-2 px-4 py-2 border-b">
36
- <div>Copy input's schema from</div>
37
- <Button
38
- color="dark"
39
- size="xs"
40
- on:click={() => {
41
- capturePayload.openDrawer()
42
- }}
43
- >
44
- A request
45
- </Button>
46
- <Button
47
- color="dark"
48
- size="xs"
49
- on:click={() => {
50
- jsonPayload.openDrawer()
51
- }}
52
- >
53
- A JSON
54
- </Button>
55
- <Button
56
- color="dark"
57
- size="xs"
58
- on:click={() => {
59
- inputLibraryDrawer.openDrawer()
60
- }}
61
- >
62
- Past Runs/Input library
63
- </Button>
64
- <Button
65
- color="dark"
66
- size="xs"
67
- disabled={$flowStore.value.modules.length === 0 ||
68
- $flowStore.value.modules[0].value.type == 'identity'}
69
- on:click={() => copyFirstStepSchema($flowStateStore, flowStore)}
70
- >
71
- First step's inputs
72
- </Button>
73
- </div>
74
- <div class="p-4 border-b">
75
- <AddProperty
37
+ {#if !disabled}
38
+ <div class="flex flex-row items-center gap-2 px-4 py-2 border-b">
39
+ <div>Copy input's schema from</div>
40
+ <Button
41
+ color="dark"
42
+ size="xs"
43
+ on:click={() => {
44
+ capturePayload.openDrawer()
45
+ }}
46
+ >
47
+ A request
48
+ </Button>
49
+ <Button
50
+ color="dark"
51
+ size="xs"
52
+ on:click={() => {
53
+ jsonPayload.openDrawer()
54
+ }}
55
+ >
56
+ A JSON
57
+ </Button>
58
+ <Button
59
+ color="dark"
60
+ size="xs"
61
+ on:click={() => {
62
+ inputLibraryDrawer.openDrawer()
63
+ }}
64
+ >
65
+ Past Runs/Input library
66
+ </Button>
67
+ <Button
68
+ color="dark"
69
+ size="xs"
70
+ disabled={$flowStore.value.modules.length === 0 ||
71
+ $flowStore.value.modules[0].value.type == 'identity'}
72
+ on:click={() => copyFirstStepSchema($flowStateStore, flowStore)}
73
+ >
74
+ First step's inputs
75
+ </Button>
76
+ </div>
77
+ <div class="p-4 border-b">
78
+ <AddProperty
79
+ bind:schema={$flowStore.schema}
80
+ bind:this={addProperty}
81
+ on:change={() => {
82
+ $flowStore = $flowStore
83
+ }}
84
+ />
85
+ </div>
86
+
87
+ <EditableSchemaForm
76
88
  bind:schema={$flowStore.schema}
77
- bind:this={addProperty}
78
- on:change={() => {
79
- $flowStore = $flowStore
89
+ isFlowInput
90
+ on:edit={(e) => {
91
+ addProperty?.openDrawer(e.detail)
80
92
  }}
93
+ on:delete={(e) => {
94
+ addProperty?.handleDeleteArgument([e.detail])
95
+ }}
96
+ offset={yOffset}
97
+ displayWebhookWarning
81
98
  />
82
- </div>
83
-
84
- <EditableSchemaForm
85
- bind:schema={$flowStore.schema}
86
- isFlowInput
87
- on:edit={(e) => {
88
- addProperty?.openDrawer(e.detail)
89
- }}
90
- on:delete={(e) => {
91
- addProperty?.handleDeleteArgument([e.detail])
92
- }}
93
- offset={yOffset}
94
- displayWebhookWarning
95
- />
99
+ {:else}
100
+ <div class="p-4 border-b">
101
+ <FlowInputViewer schema={$flowStore.schema} />
102
+ </div>
103
+ {/if}
96
104
  </FlowCard>
97
105
 
98
106
  <Drawer bind:this={jsonPayload} size="800px">
@@ -2,6 +2,7 @@ import { SvelteComponent } from "svelte";
2
2
  declare const __propDef: {
3
3
  props: {
4
4
  noEditor: boolean;
5
+ disabled: boolean;
5
6
  };
6
7
  events: {
7
8
  [evt: string]: CustomEvent<any>;
@@ -53,7 +53,7 @@ export let showDiff = false;
53
53
 
54
54
  <div class="flex flex-col flex-1 h-full overflow-auto p-2">
55
55
  {#if showDate && date}
56
- <span class="text-xs text-tertiary mb-4"><TimeAgo agoOnlyIfRecent withDate {date} /></span>
56
+ <span class="text-xs text-tertiary mb-4"><TimeAgo agoOnlyIfRecent {date} /></span>
57
57
  {/if}
58
58
  {#if notFound}
59
59
  <div class="text-red-400">script not found at {path} in workspace {$workspaceStore}</div>
@@ -3,9 +3,9 @@ import DrawerContent from '../../common/drawer/DrawerContent.svelte';
3
3
  import { getContext } from 'svelte';
4
4
  import { filteredContentForExport } from '../utils';
5
5
  import YAML from 'yaml';
6
- import SimpleEditor from '../../SimpleEditor.svelte';
7
6
  import { Button } from '../../common';
8
7
  import { sendUserToast } from '../../../toast';
8
+ import { Loader2 } from 'lucide-svelte';
9
9
  const { flowStore } = getContext('FlowEditorContext');
10
10
  export let drawer;
11
11
  let code = '';
@@ -49,7 +49,11 @@ function apply() {
49
49
  </svelte:fragment>
50
50
 
51
51
  {#if $flowStore}
52
- <SimpleEditor autoHeight bind:code lang="yaml" />
52
+ {#await import('../../SimpleEditor.svelte')}
53
+ <Loader2 class="animate-spin" />
54
+ {:then Module}
55
+ <Module.default autoHeight bind:code lang="yaml" />
56
+ {/await}
53
57
  {/if}
54
58
  </DrawerContent>
55
59
  </Drawer>
@@ -67,6 +67,7 @@ async function insertNewModuleAtIndex(modules, index, kind, wsScript, wsFlow, in
67
67
  if (inlineScript) {
68
68
  const { language, kind, subkind } = inlineScript;
69
69
  [module, state] = await createInlineScriptModule(language, kind, subkind, module.id, module.summary);
70
+ $flowStateStore[module.id] = state;
70
71
  }
71
72
  if (!modules)
72
73
  return [module];
@@ -181,7 +182,7 @@ async function updateFlowInputsStore() {
181
182
  }
182
183
  </script>
183
184
 
184
- <Portal>
185
+ <Portal name="flow-module">
185
186
  <ConfirmationModal
186
187
  title="Confirm deleting step with dependents"
187
188
  confirmationText="Delete step"
@@ -303,7 +304,7 @@ async function updateFlowInputsStore() {
303
304
  if (['branchone', 'branchall'].includes(detail.detail)) {
304
305
  await addBranch(detail.modules[detail.index ?? 0])
305
306
  }
306
-
307
+ $flowStateStore = $flowStateStore
307
308
  $flowStore = $flowStore
308
309
  dispatch('change')
309
310
  }
@@ -82,7 +82,7 @@ shouldUsePortal={true} -->
82
82
  role="none"
83
83
  >
84
84
  <div class="flex flex-row items-center gap-2">
85
- <StepGenQuick on:insert bind:funcDesc {preFilter} {loading} />
85
+ <StepGenQuick {disableAi} on:insert bind:funcDesc {preFilter} {loading} />
86
86
  {#if selectedKind != 'preprocessor' && selectedKind != 'flow'}
87
87
  <ToggleHubWorkspaceQuick bind:selected={preFilter} />
88
88
  {/if}
@@ -95,7 +95,7 @@ function onKeyDown(e) {
95
95
  }}
96
96
  >
97
97
  {#if kind == 'flow'}
98
- <BarsStaggered size={14} />
98
+ <BarsStaggered size={14} class="shrink-0" />
99
99
  {:else}
100
100
  <Code2 size={14} />
101
101
  {/if}
@@ -38,6 +38,7 @@ export type FlowStatusViewerContext = {
38
38
  hideTimeline?: boolean;
39
39
  hideNodeDefinition?: boolean;
40
40
  hideJobId?: boolean;
41
+ hideDownloadLogs: any;
41
42
  };
42
43
  export type GraphModuleState = {
43
44
  type: FlowStatusModule['type'];
@@ -1,112 +1,126 @@
1
- <script>export let height = '24px';
1
+ <script>import { customIcon } from './store';
2
+ export let height = '24px';
2
3
  export let width = '24px';
3
4
  export let white = false;
4
5
  export let spin = undefined;
5
6
  </script>
6
7
 
7
- <!-- Generator: Adobe Illustrator 26.5.0, SVG Export Plug-In . SVG Version: 6.00 Build 0) -->
8
- <svg
9
- class={$$props.class}
10
- class:animate-[spin_2s_linear_infinite]={spin === 'veryfast'}
11
- class:animate-[spin_5s_linear_infinite]={spin === 'fast'}
12
- class:animate-[spin_15s_linear_infinite]={spin === 'medium'}
13
- class:animate-[spin_50s_linear_infinite]={spin === 'slow'}
14
- version="1.1"
15
- id="Calque_1"
16
- xmlns="http://www.w3.org/2000/svg"
17
- xmlns:xlink="http://www.w3.org/1999/xlink"
18
- x="0px"
19
- y="0px"
20
- {width}
21
- {height}
22
- viewBox="0 0 256 256"
23
- style="enable-background:new 0 0 256 256;"
24
- xml:space="preserve"
25
- >
26
- <style>
27
- .st0 {
28
- fill: #ffffff;
29
- }
30
- .st1 {
31
- opacity: 0.4;
32
- fill: #ffffff;
33
- }
34
- .st2 {
35
- fill: #bcd4fc;
36
- }
37
- .st2-gray {
38
- fill: #cccccc;
39
- }
40
- .st3 {
41
- fill: #3b82f6;
42
- }
43
- .st4 {
44
- fill: #b3b3b3;
45
- }
46
- .st5 {
47
- fill: url(#SVGID_1_);
48
- }
49
- .st6 {
50
- fill: url(#SVGID_00000021089067129159788970000008246765442136188072_);
51
- }
52
- .st7 {
53
- fill: url(#SVGID_00000117639240116366130650000015074833605515028638_);
54
- }
55
- .st8 {
56
- opacity: 0.4;
57
- fill: url(#SVGID_00000101781798616409025840000016567063639337360777_);
58
- }
59
- .st9 {
60
- opacity: 0.4;
61
- fill: url(#SVGID_00000052086836598721292040000002033117744178971046_);
62
- }
63
- .st10 {
64
- opacity: 0.4;
65
- fill: url(#SVGID_00000159460939004760751800000002448009281983951536_);
66
- }
67
- .st11 {
68
- opacity: 0.4;
69
- fill: url(#SVGID_00000013177830667419993080000017721442101626521532_);
70
- }
71
- .st12 {
72
- opacity: 0.4;
73
- fill: url(#SVGID_00000152235521444854938490000006526001119318383285_);
74
- }
75
- .st13 {
76
- opacity: 0.4;
77
- fill: url(#SVGID_00000119823135212293698520000012774889010992664993_);
78
- }</style>
79
- <g>
80
- <polygon
81
- class:st2={!white}
82
- class:st2-gray={white}
83
- points="134.78,14.22 114.31,48.21 101.33,69.75 158.22,69.75 177.97,36.95 191.67,14.22 "
8
+ {#if customIcon}
9
+ {#if white}
10
+ <img src={customIcon.white} alt="Windmill Custom icon" {width} {height} class={$$props.class} />
11
+ {:else}
12
+ <img
13
+ src={customIcon.normal}
14
+ alt="Windmill Custom icon"
15
+ {width}
16
+ {height}
17
+ class={$$props.class}
84
18
  />
85
- <polygon
86
- class:st3={!white}
87
- class:st0={white}
88
- points="227.55,69.75 186.61,69.75 101.33,69.75 129.78,119.02 158.16,119.02 228.61,119.02 256,119.02 "
89
- />
90
- <polygon
91
- class:st3={!white}
92
- class:st0={white}
93
- points="136.93,132.47 116.46,167.93 73.82,241.78 130.71,241.78 144.9,217.2 180.13,156.18 193.82,132.46
19
+ {/if}
20
+ {:else}
21
+ <svg
22
+ class={$$props.class}
23
+ class:animate-[spin_2s_linear_infinite]={spin === 'veryfast'}
24
+ class:animate-[spin_5s_linear_infinite]={spin === 'fast'}
25
+ class:animate-[spin_15s_linear_infinite]={spin === 'medium'}
26
+ class:animate-[spin_50s_linear_infinite]={spin === 'slow'}
27
+ version="1.1"
28
+ id="Calque_1"
29
+ xmlns="http://www.w3.org/2000/svg"
30
+ xmlns:xlink="http://www.w3.org/1999/xlink"
31
+ x="0px"
32
+ y="0px"
33
+ {width}
34
+ {height}
35
+ viewBox="0 0 256 256"
36
+ style="enable-background:new 0 0 256 256;"
37
+ xml:space="preserve"
38
+ >
39
+ <style>
40
+ .st0 {
41
+ fill: #ffffff;
42
+ }
43
+ .st1 {
44
+ opacity: 0.4;
45
+ fill: #ffffff;
46
+ }
47
+ .st2 {
48
+ fill: #bcd4fc;
49
+ }
50
+ .st2-gray {
51
+ fill: #cccccc;
52
+ }
53
+ .st3 {
54
+ fill: #3b82f6;
55
+ }
56
+ .st4 {
57
+ fill: #b3b3b3;
58
+ }
59
+ .st5 {
60
+ fill: url(#SVGID_1_);
61
+ }
62
+ .st6 {
63
+ fill: url(#SVGID_00000021089067129159788970000008246765442136188072_);
64
+ }
65
+ .st7 {
66
+ fill: url(#SVGID_00000117639240116366130650000015074833605515028638_);
67
+ }
68
+ .st8 {
69
+ opacity: 0.4;
70
+ fill: url(#SVGID_00000101781798616409025840000016567063639337360777_);
71
+ }
72
+ .st9 {
73
+ opacity: 0.4;
74
+ fill: url(#SVGID_00000052086836598721292040000002033117744178971046_);
75
+ }
76
+ .st10 {
77
+ opacity: 0.4;
78
+ fill: url(#SVGID_00000159460939004760751800000002448009281983951536_);
79
+ }
80
+ .st11 {
81
+ opacity: 0.4;
82
+ fill: url(#SVGID_00000013177830667419993080000017721442101626521532_);
83
+ }
84
+ .st12 {
85
+ opacity: 0.4;
86
+ fill: url(#SVGID_00000152235521444854938490000006526001119318383285_);
87
+ }
88
+ .st13 {
89
+ opacity: 0.4;
90
+ fill: url(#SVGID_00000119823135212293698520000012774889010992664993_);
91
+ }</style>
92
+ <g>
93
+ <polygon
94
+ class:st2={!white}
95
+ class:st2-gray={white}
96
+ points="134.78,14.22 114.31,48.21 101.33,69.75 158.22,69.75 177.97,36.95 191.67,14.22 "
97
+ />
98
+ <polygon
99
+ class:st3={!white}
100
+ class:st0={white}
101
+ points="227.55,69.75 186.61,69.75 101.33,69.75 129.78,119.02 158.16,119.02 228.61,119.02 256,119.02 "
102
+ />
103
+ <polygon
104
+ class:st3={!white}
105
+ class:st0={white}
106
+ points="136.93,132.47 116.46,167.93 73.82,241.78 130.71,241.78 144.9,217.2 180.13,156.18 193.82,132.46
94
107
  "
95
- />
96
- <polygon
97
- class:st3={!white}
98
- class:st0={white}
99
- points="121.7,131.95 101.23,96.49 58.59,22.63 30.15,71.91 44.34,96.49 79.57,157.5 93.26,181.22 "
100
- />
101
- <polygon
102
- class:st2={!white}
103
- class:st2-gray={white}
104
- points="64.81,131.95 25.15,131.21 0,130.74 28.44,180.01 66.73,180.72 93.26,181.21 "
105
- />
106
- <polygon
107
- class:st2={!white}
108
- class:st2-gray={white}
109
- points="165.38,181.74 184.58,216.46 196.75,238.47 225.19,189.2 206.66,155.69 193.83,132.46 "
110
- />
111
- </g>
112
- </svg>
108
+ />
109
+ <polygon
110
+ class:st3={!white}
111
+ class:st0={white}
112
+ points="121.7,131.95 101.23,96.49 58.59,22.63 30.15,71.91 44.34,96.49 79.57,157.5 93.26,181.22 "
113
+ />
114
+ <polygon
115
+ class:st2={!white}
116
+ class:st2-gray={white}
117
+ points="64.81,131.95 25.15,131.21 0,130.74 28.44,180.01 66.73,180.72 93.26,181.21 "
118
+ />
119
+ <polygon
120
+ class:st2={!white}
121
+ class:st2-gray={white}
122
+ points="165.38,181.74 184.58,216.46 196.75,238.47 225.19,189.2 206.66,155.69 193.83,132.46 "
123
+ />
124
+ </g>
125
+ </svg>
126
+ {/if}
@@ -0,0 +1,4 @@
1
+ export declare let customIcon: {
2
+ normal: string;
3
+ white: string;
4
+ } | undefined;
@@ -0,0 +1 @@
1
+ export let customIcon = undefined;
@@ -71,7 +71,7 @@ let open = false;
71
71
  </div>
72
72
  </MultiSelect>
73
73
  </div>
74
- <Portal>
74
+ <Portal name="multi-select">
75
75
  <div use:floatingContent class="z5000" hidden={!open}>
76
76
  <!-- svelte-ignore a11y-click-events-have-key-events -->
77
77
  <!-- svelte-ignore a11y-no-static-element-interactions -->
@@ -51,7 +51,7 @@ $: keyLimit = isArray ? 1 : 100;
51
51
  $: fullyCollapsed = keys.length > 1 && collapsed;
52
52
  </script>
53
53
 
54
- <Portal>
54
+ <Portal name="object-viewer">
55
55
  <S3FilePicker bind:this={s3FileViewer} readOnlyMode={true} />
56
56
  </Portal>
57
57
 
@@ -25,7 +25,7 @@ function isJobCancelable(j) {
25
25
  }
26
26
  </script>
27
27
 
28
- <Portal>
28
+ <Portal name="run-row">
29
29
  <ScheduleEditor on:update={() => goto('/schedules')} bind:this={scheduleEditor} />
30
30
  </Portal>
31
31
  <!-- svelte-ignore a11y-click-events-have-key-events -->
@@ -86,7 +86,7 @@ function isJobCancelable(j) {
86
86
  <div class="flex flex-row items-center gap-1 text-gray-500 dark:text-gray-300 text-2xs">
87
87
  {#if job}
88
88
  {#if 'started_at' in job && job.started_at}
89
- Started <TimeAgo withDate agoOnlyIfRecent date={job.started_at ?? ''} />
89
+ Started <TimeAgo agoOnlyIfRecent date={job.started_at ?? ''} />
90
90
  {#if job && 'duration_ms' in job && job.duration_ms != undefined}
91
91
  (Ran in {msToReadableTime(
92
92
  job.duration_ms
@@ -102,11 +102,7 @@ function isJobCancelable(j) {
102
102
  {:else if `scheduled_for` in job && job.scheduled_for && forLater(job.scheduled_for)}
103
103
  Scheduled for {displayDate(job.scheduled_for)}
104
104
  {:else}
105
- Waiting for executor (created <TimeAgo
106
- withDate
107
- agoOnlyIfRecent
108
- date={job.created_at || ''}
109
- />)
105
+ Waiting for executor (created <TimeAgo agoOnlyIfRecent date={job.created_at || ''} />)
110
106
  {/if}
111
107
  {/if}
112
108
  </div>
@@ -307,6 +307,7 @@ let initialObjectSelected = Object.keys(schema?.properties ?? {}).length == 0 ?
307
307
  />
308
308
  {:else}
309
309
  <ArgInput
310
+ noDefaultOnSelectFirst
310
311
  {itemPicker}
311
312
  resourceTypes={getResourceTypesFromFormat(format)}
312
313
  bind:value={defaultValue}
@@ -399,7 +399,7 @@ function maxModalHeight(tab) {
399
399
  </script>
400
400
 
401
401
  {#if open}
402
- <Portal>
402
+ <Portal name="global-search">
403
403
  <div
404
404
  class={twMerge(
405
405
  `fixed top-0 bottom-0 left-0 right-0 transition-all duration-50 flex items-start justify-center`,