windmill-components 1.389.3 → 1.394.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 (162) hide show
  1. package/package/assets/app.css +4 -3
  2. package/package/components/AppConnectInner.svelte +18 -10
  3. package/package/components/ArgInfo.svelte +1 -1
  4. package/package/components/ArgInput.svelte +22 -2
  5. package/package/components/AutheliaSetting.svelte +1 -0
  6. package/package/components/AuthentikSetting.svelte +1 -0
  7. package/package/components/BoundedInputNumber +0 -0
  8. package/package/components/CliHelpBox.svelte +2 -2
  9. package/package/components/DateInput.svelte +1 -0
  10. package/package/components/DisplayResult.svelte +39 -31
  11. package/package/components/Editor.svelte +0 -21
  12. package/package/components/ErrorOrRecoveryHandler.svelte +7 -1
  13. package/package/components/ErrorOrRecoveryHandler.svelte.d.ts +1 -1
  14. package/package/components/FlowBuilder.svelte +2 -2
  15. package/package/components/FlowGraphViewerStep.svelte +22 -0
  16. package/package/components/FlowJobResult.svelte +1 -0
  17. package/package/components/FlowMetadata.svelte +3 -2
  18. package/package/components/FlowStatusViewer.svelte +2 -0
  19. package/package/components/FlowStatusViewer.svelte.d.ts +2 -0
  20. package/package/components/FlowStatusViewerInner.svelte +10 -5
  21. package/package/components/FlowStatusViewerInner.svelte.d.ts +1 -0
  22. package/package/components/FolderEditor.svelte +1 -1
  23. package/package/components/IdEditorInput.svelte +82 -0
  24. package/package/components/IdEditorInput.svelte.d.ts +26 -0
  25. package/package/components/InputTransformForm.svelte +10 -10
  26. package/package/components/InputTransformForm.svelte.d.ts +4 -1
  27. package/package/components/InputTransformSchemaForm.svelte.d.ts +3 -1
  28. package/package/components/InstanceSettings.svelte +73 -12
  29. package/package/components/ItemPicker.svelte +1 -0
  30. package/package/components/KanidmSetting.svelte +1 -0
  31. package/package/components/KeycloakSetting.svelte +1 -0
  32. package/package/components/LightweightArgInput.svelte +2 -0
  33. package/package/components/LogViewer.svelte +206 -0
  34. package/package/components/ModulePreview.svelte.d.ts +3 -1
  35. package/package/components/ModulePreviewForm.svelte +2 -2
  36. package/package/components/ModulePreviewForm.svelte.d.ts +4 -1
  37. package/package/components/OAuthSetting.svelte +11 -10
  38. package/package/components/ObjectStoreConfigSettings.svelte +6 -6
  39. package/package/components/OktaSetting.svelte +1 -0
  40. package/package/components/Password.svelte +30 -35
  41. package/package/components/RunChart.svelte +16 -0
  42. package/package/components/RunChart.svelte.d.ts +2 -0
  43. package/package/components/SavedInputs.svelte +4 -4
  44. package/package/components/ScheduleEditorInner.svelte +145 -2
  45. package/package/components/SchemaForm.svelte +1 -2
  46. package/package/components/ScriptBuilder.svelte +1 -0
  47. package/package/components/TestConnection.svelte +24 -6
  48. package/package/components/TestJobLoader.svelte +2 -0
  49. package/package/components/ZitadelSetting.svelte +1 -0
  50. package/package/components/apps/components/display/table/AppAggridInfiniteTable.svelte +0 -1
  51. package/package/components/apps/components/display/table/AppAggridInfiniteTable.svelte.d.ts +1 -2
  52. package/package/components/apps/components/display/table/AppAggridInfiniteTableEe.svelte +0 -2
  53. package/package/components/apps/components/display/table/AppAggridInfiniteTableEe.svelte.d.ts +1 -2
  54. package/package/components/apps/components/display/table/AppAggridTable.svelte +6 -2
  55. package/package/components/apps/components/inputs/AppSelect.svelte +19 -18
  56. package/package/components/apps/editor/AppEditor.svelte +1 -1
  57. package/package/components/apps/editor/AppPreview.svelte +3 -6
  58. package/package/components/apps/editor/AppReportsDrawer.svelte +17 -5
  59. package/package/components/apps/editor/DeploymentHistory.svelte +1 -0
  60. package/package/components/apps/editor/component/Component.svelte +0 -2
  61. package/package/components/apps/editor/componentsPanel/themeUtils.js +18 -7
  62. package/package/components/apps/editor/contextPanel/SubGridOutput.svelte +1 -0
  63. package/package/components/apps/editor/contextPanel/components/IdEditor.svelte +13 -67
  64. package/package/components/apps/editor/contextPanel/components/IdEditor.svelte.d.ts +1 -2
  65. package/package/components/apps/editor/settingsPanel/ComponentPanel.svelte +0 -1
  66. package/package/components/apps/editor/settingsPanel/DecisionTreeGraphEditor.svelte +0 -1
  67. package/package/components/apps/editor/settingsPanel/DecisionTreeGraphEditor.svelte.d.ts +0 -1
  68. package/package/components/apps/editor/settingsPanel/DecisionTreeGraphNode.svelte +1 -1
  69. package/package/components/apps/editor/settingsPanel/decisionTree/InsertDecisionTreeNode.svelte +2 -2
  70. package/package/components/apps/editor/settingsPanel/inputEditor/IconSelectInput.svelte +1 -0
  71. package/package/components/apps/svelte-select/lib/Select.svelte +1 -0
  72. package/package/components/build_workers.js +23 -18
  73. package/package/components/common/button/Button.svelte +3 -4
  74. package/package/components/common/button/model.d.ts +1 -1
  75. package/package/components/common/button/model.js +6 -0
  76. package/package/components/common/clearableInput/ClearableInput.svelte +1 -0
  77. package/package/components/common/menu/MenuItem.svelte +1 -0
  78. package/package/components/common/modal/AlwaysMountedModal.svelte +1 -0
  79. package/package/components/common/stepper/Stepper.svelte +1 -0
  80. package/package/components/copilot/StepInputsGen.svelte +2 -2
  81. package/package/components/copilot/StepInputsGen.svelte.d.ts +3 -1
  82. package/package/components/copilot/lib.js +2 -2
  83. package/package/components/copilot/prompts/edit.yaml +3 -0
  84. package/package/components/copilot/prompts/editPrompt.js +3 -3
  85. package/package/components/copilot/prompts/fix.yaml +3 -0
  86. package/package/components/copilot/prompts/fixPrompt.js +3 -3
  87. package/package/components/details/ClipboardPanel.svelte +1 -0
  88. package/package/components/flows/content/DynamicInputHelpBox.svelte +4 -1
  89. package/package/components/flows/content/FlowConstants.svelte +3 -3
  90. package/package/components/flows/content/FlowEditorPanel.svelte +1 -1
  91. package/package/components/flows/content/FlowModuleComponent.svelte +2 -2
  92. package/package/components/flows/content/FlowModuleHeader.svelte +5 -45
  93. package/package/components/flows/content/FlowModuleWorkerTagSelect.svelte +47 -0
  94. package/package/components/flows/content/FlowModuleWorkerTagSelect.svelte.d.ts +16 -0
  95. package/package/components/flows/content/FlowSettings.svelte +1 -0
  96. package/package/components/flows/flowModuleNextId.js +1 -1
  97. package/package/components/flows/flowState.d.ts +1 -1
  98. package/package/components/flows/flowStateUtils.d.ts +1 -1
  99. package/package/components/flows/flowStateUtils.js +1 -1
  100. package/package/components/flows/flowStore.d.ts +1 -0
  101. package/package/components/flows/flowStore.js +5 -0
  102. package/package/components/flows/map/FlowJobsMenu.svelte +0 -1
  103. package/package/components/flows/map/FlowJobsMenu.svelte.d.ts +0 -1
  104. package/package/components/flows/map/FlowModuleSchemaItem.svelte +103 -19
  105. package/package/components/flows/map/FlowModuleSchemaItem.svelte.d.ts +1 -0
  106. package/package/components/flows/map/FlowModuleSchemaMap.svelte +31 -1
  107. package/package/components/flows/map/InsertModuleButton.svelte +5 -5
  108. package/package/components/flows/map/InsertTriggerButton.svelte +2 -2
  109. package/package/components/flows/map/MapItem.svelte +4 -0
  110. package/package/components/flows/map/MapItem.svelte.d.ts +1 -0
  111. package/package/components/flows/map/VirtualItem.svelte +15 -7
  112. package/package/components/flows/map/VirtualItem.svelte.d.ts +2 -1
  113. package/package/components/flows/previousResults.js +1 -1
  114. package/package/components/flows/utils.d.ts +3 -3
  115. package/package/components/flows/utils.js +2 -2
  116. package/package/components/graph/FlowGraphV2.svelte +4 -0
  117. package/package/components/graph/FlowGraphV2.svelte.d.ts +1 -0
  118. package/package/components/graph/graphBuilder.d.ts +1 -0
  119. package/package/components/graph/graphBuilder.js +2 -4
  120. package/package/components/graph/renderers/edges/BaseEdge.svelte +2 -2
  121. package/package/components/graph/renderers/nodes/BranchAllStart.svelte +2 -1
  122. package/package/components/graph/renderers/nodes/BranchOneStart.svelte +3 -3
  123. package/package/components/graph/renderers/nodes/BranchOneStart.svelte.d.ts +1 -0
  124. package/package/components/graph/renderers/nodes/InputNode.svelte +2 -2
  125. package/package/components/graph/renderers/nodes/ModuleNode.svelte +6 -2
  126. package/package/components/graph/util.d.ts +1 -1
  127. package/package/components/graph/util.js +7 -2
  128. package/package/components/icons/AzureIcon.svelte +1 -1
  129. package/package/components/icons/FunkwhaleIcon.svelte +1 -19
  130. package/package/components/icons/JumpCloudIcon.svelte +12 -0
  131. package/package/components/icons/JumpCloudIcon.svelte.d.ts +17 -0
  132. package/package/components/icons/KeycloakIcon.svelte +20 -0
  133. package/package/components/icons/KeycloakIcon.svelte.d.ts +17 -0
  134. package/package/components/icons/MailchimpIcon.svelte +1 -1
  135. package/package/components/icons/ZitadelIcon.svelte +76 -0
  136. package/package/components/icons/ZitadelIcon.svelte.d.ts +17 -0
  137. package/package/components/icons/index.d.ts +7 -1
  138. package/package/components/icons/index.js +8 -2
  139. package/package/components/instanceSettings.d.ts +1 -1
  140. package/package/components/instanceSettings.js +24 -15
  141. package/package/components/runs/JobLoader.svelte +17 -6
  142. package/package/components/runs/JobLoader.svelte.d.ts +2 -0
  143. package/package/components/runs/RunRow.svelte +7 -7
  144. package/package/components/runs/RunsFilter.svelte +8 -1
  145. package/package/components/runs/RunsTable.svelte +30 -8
  146. package/package/components/runs/RunsTable.svelte.d.ts +2 -0
  147. package/package/components/schema/PropertyEditor.svelte +0 -5
  148. package/package/components/settings/WorkspaceUserSettings.svelte +1 -1
  149. package/package/components/sidebar/MenuLink.svelte +2 -1
  150. package/package/components/sidebar/WorkspaceMenu.svelte +4 -1
  151. package/package/components/sidebar/changelogs.js +30 -0
  152. package/package/components/tutorials/FlowBuilderTutorialsForLoop.svelte +2 -2
  153. package/package/gen/core/OpenAPI.js +1 -1
  154. package/package/gen/schemas.gen.d.ts +21 -0
  155. package/package/gen/schemas.gen.js +21 -0
  156. package/package/gen/services.gen.d.ts +11 -12
  157. package/package/gen/services.gen.js +19 -24
  158. package/package/gen/types.gen.d.ts +62 -37
  159. package/package/hub.d.ts +1 -0
  160. package/package/hubPaths.json +11 -8
  161. package/package.json +4 -4
  162. package/package/windmill_fetch.d.ts.txt +0 -16966
@@ -15,6 +15,7 @@ import FlowTutorials from '../../FlowTutorials.svelte';
15
15
  import { ignoredTutorials } from '../../tutorials/ignoredTutorials';
16
16
  import { tutorialInProgress } from '../../../tutorialUtils';
17
17
  import FlowGraphV2 from '../../graph/FlowGraphV2.svelte';
18
+ import { replaceId } from '../flowStore';
18
19
  export let modules;
19
20
  export let sidebarSize = undefined;
20
21
  export let disableStaticInputs = false;
@@ -149,7 +150,7 @@ async function updateFlowInputsStore() {
149
150
  $flowInputsStore = {};
150
151
  }
151
152
  $flowInputsStore[module.id] = {
152
- flowStepWarnings: await initFlowStepWarnings(module.value, $flowStateStore?.[module.id]?.schema ?? {}, dfs($flowStore.value.modules, (fm) => fm.id))
153
+ flowStepWarnings: await initFlowStepWarnings(module.value, $flowStateStore?.[module.id]?.schema, dfs($flowStore.value.modules, (fm) => fm.id))
153
154
  };
154
155
  }
155
156
  }
@@ -279,6 +280,35 @@ async function updateFlowInputsStore() {
279
280
  $flowStore = $flowStore
280
281
  }
281
282
  }}
283
+ on:changeId={({ detail }) => {
284
+ let { id, newId, deps } = detail
285
+ dfs($flowStore.value.modules, (mod) => {
286
+ if (deps[mod.id]) {
287
+ deps[mod.id].forEach((dep) => {
288
+ if (
289
+ mod.value.type == 'rawscript' ||
290
+ mod.value.type == 'script' ||
291
+ mod.value.type == 'flow'
292
+ ) {
293
+ mod.value.input_transforms = Object.fromEntries(
294
+ Object.entries(mod.value.input_transforms).map(([k, v]) => {
295
+ if (v.type == 'javascript') {
296
+ return [k, { ...v, expr: replaceId(v.expr, id, newId) }]
297
+ } else {
298
+ return [k, v]
299
+ }
300
+ })
301
+ )
302
+ }
303
+ })
304
+ }
305
+ if (mod.id == id) {
306
+ mod.id = newId
307
+ }
308
+ })
309
+ $flowStore = $flowStore
310
+ $selectedId = newId
311
+ }}
282
312
  on:deleteBranch={async ({ detail }) => {
283
313
  if (detail.module) {
284
314
  await removeBranch(detail.module, detail.index)
@@ -30,13 +30,13 @@ let customUi = getContext('customUi');
30
30
  id={`flow-editor-add-step-${index}`}
31
31
  type="button"
32
32
  class={twMerge(
33
- 'w-6 h-6 flex items-center justify-center',
34
- 'border border-gray-300 dark:border-gray-500',
35
- 'text-primary text-sm',
36
- 'bg-surface focus:outline-none hover:bg-surface-hover focus:ring-4 focus:ring-surface-selected rounded-full '
33
+ 'w-5 h-5 flex items-center justify-center',
34
+ 'outline-[1px] outline dark:outline-gray-500 outline-gray-300',
35
+ 'text-secondary',
36
+ 'bg-surface focus:outline-none hover:bg-surface-hover rounded '
37
37
  )}
38
38
  >
39
- <Cross size={14} />
39
+ <Cross size={12} />
40
40
  </button>
41
41
  </svelte:fragment>
42
42
  <div id="flow-editor-insert-module">
@@ -23,9 +23,9 @@ $: !open && (funcDesc = '');
23
23
  title="Add a Trigger"
24
24
  slot="trigger"
25
25
  type="button"
26
- class="text-primary bg-surface border-[1px] mx-[1px] border-gray-300 dark:border-gray-500 rotate-180 focus:outline-none hover:bg-surface-hover focus:ring-4 focus:ring-gray-200 font-medium rounded-full text-sm w-[25px] h-[25px] flex items-center justify-center"
26
+ class="text-secondary bg-surface outline-[1px] outline dark:outline-gray-500 outline-gray-300 rotate-180 focus:outline-none hover:bg-surface-hover focus:ring-4 focus:ring-gray-200 font-medium rounded text-sm w-[20px] h-[20px] flex items-center justify-center"
27
27
  >
28
- <Zap size={14} />
28
+ <Zap size={12} />
29
29
  </button>
30
30
  {#if !disableAi}
31
31
  <StepGen {index} bind:funcDesc bind:open {close} {modules} trigger on:insert />
@@ -79,6 +79,7 @@ function onDelete(event) {
79
79
  mod.value.skip_failures ? '(skip failures)' : ''
80
80
  }`}
81
81
  id={mod.id}
82
+ on:changeId
82
83
  on:move={() => dispatch('move')}
83
84
  on:delete={onDelete}
84
85
  on:click={() => dispatch('select', mod.id)}
@@ -97,6 +98,7 @@ function onDelete(event) {
97
98
  {:else if mod.value.type === 'branchone'}
98
99
  <FlowModuleSchemaItem
99
100
  deletable={insertable}
101
+ on:changeId
100
102
  on:delete={onDelete}
101
103
  on:move={() => dispatch('move')}
102
104
  on:click={() => dispatch('select', mod.id)}
@@ -112,6 +114,7 @@ function onDelete(event) {
112
114
  {:else if mod.value.type === 'branchall'}
113
115
  <FlowModuleSchemaItem
114
116
  deletable={insertable}
117
+ on:changeId
115
118
  on:delete={onDelete}
116
119
  on:move={() => dispatch('move')}
117
120
  on:click={() => dispatch('select', mod.id)}
@@ -127,6 +130,7 @@ function onDelete(event) {
127
130
  {:else}
128
131
  <FlowModuleSchemaItem
129
132
  {retries}
133
+ on:changeId
130
134
  on:click={() => dispatch('select', mod.id)}
131
135
  on:delete={onDelete}
132
136
  on:move={() => dispatch('move')}
@@ -17,6 +17,7 @@ declare const __propDef: {
17
17
  } | undefined;
18
18
  };
19
19
  events: {
20
+ changeId: CustomEvent<any>;
20
21
  delete: CustomEvent<CustomEvent<MouseEvent>>;
21
22
  insert: CustomEvent<{
22
23
  modules: FlowModule[];
@@ -1,7 +1,7 @@
1
1
  <script>import { Badge } from '../../common';
2
2
  import { classNames } from '../../../utils';
3
3
  import { createEventDispatcher, getContext } from 'svelte';
4
- export let label;
4
+ export let label = undefined;
5
5
  export let bgColor = '';
6
6
  export let selected;
7
7
  export let selectable;
@@ -9,6 +9,7 @@ export let id = undefined;
9
9
  export let center = true;
10
10
  export let borderColor = undefined;
11
11
  export let hideId = false;
12
+ export let preLabel = undefined;
12
13
  const dispatch = createEventDispatcher();
13
14
  const { currentStepStore: copilotCurrentStepStore } = getContext('FlowCopilotContext') || {};
14
15
  </script>
@@ -20,8 +21,7 @@ const { currentStepStore: copilotCurrentStepStore } = getContext('FlowCopilotCon
20
21
  'w-full flex relative overflow-hidden rounded-sm',
21
22
  selectable ? 'cursor-pointer' : '',
22
23
  selected ? 'outline outline-offset-1 outline-2 outline-gray-600' : '',
23
- label === 'Input' && $copilotCurrentStepStore === 'Input' ? 'z-[901]' : '',
24
- 'bg-surface'
24
+ label === 'Input' && $copilotCurrentStepStore === 'Input' ? 'z-[901]' : ''
25
25
  )}
26
26
  style="width: 275px; max-height: 34px; background-color: {bgColor} !important;"
27
27
  on:click={() => {
@@ -29,14 +29,15 @@ const { currentStepStore: copilotCurrentStepStore } = getContext('FlowCopilotCon
29
29
  if (id) {
30
30
  dispatch('select', id)
31
31
  } else {
32
- dispatch('select', label)
32
+ dispatch('select', label || label || '')
33
33
  }
34
34
  }
35
35
  }}
36
- id={`flow-editor-virtual-${encodeURIComponent(label)}`}
36
+ title={(label ? label + ' ' : '') + (label ?? '')}
37
+ id={`flow-editor-virtual-${encodeURIComponent(label || label || '')}`}
37
38
  >
38
39
  <div
39
- style={borderColor ? `border-color: ${borderColor};` : ''}
40
+ style={borderColor ? `border-color: ${borderColor};` : 'border: 0'}
40
41
  class="flex gap-1 justify-between {center
41
42
  ? 'items-center'
42
43
  : 'items-baseline'} w-full overflow-hidden rounded-sm border p-2 text-2xs module text-primary border-gray-400 dark:border-gray-600"
@@ -46,7 +47,14 @@ const { currentStepStore: copilotCurrentStepStore } = getContext('FlowCopilotCon
46
47
  <span class="mr-2" />
47
48
  {/if}
48
49
  <div />
49
- <div class="truncate"><pre>{label}</pre></div>
50
+ <div class="flex flex-col w-full">
51
+ {#if label}
52
+ <div class="truncate text-center">{label}</div>
53
+ {/if}
54
+ {#if preLabel}
55
+ <div class="truncate text-2xs text-center"><pre>{preLabel}</pre></div>
56
+ {/if}
57
+ </div>
50
58
  <div class="flex items-center space-x-2">
51
59
  {#if id && !hideId}
52
60
  <Badge color="indigo">{id}</Badge>
@@ -2,7 +2,7 @@ import { SvelteComponent } from "svelte";
2
2
  import type { FlowModule } from '../../../gen';
3
3
  declare const __propDef: {
4
4
  props: {
5
- label: string;
5
+ label?: string | undefined;
6
6
  bgColor?: string | undefined;
7
7
  selected: boolean;
8
8
  selectable: boolean;
@@ -10,6 +10,7 @@ declare const __propDef: {
10
10
  center?: boolean | undefined;
11
11
  borderColor?: string | undefined;
12
12
  hideId?: boolean | undefined;
13
+ preLabel?: string | undefined;
13
14
  };
14
15
  events: {
15
16
  insert: CustomEvent<{
@@ -90,7 +90,7 @@ export function getPreviousIds(id, flow, include_node) {
90
90
  export function getFailureStepPropPicker(flowState, flow, args) {
91
91
  const allIds = flow.value.modules.map((x) => x.id);
92
92
  let priorIds = Object.fromEntries(allIds.map((id) => [id, flowState[id]?.previewResult ?? {}]).reverse());
93
- const flowInput = getFlowInput(dfs(flow.value.modules[0].id, flow), flowState, args, flow.schema);
93
+ const flowInput = getFlowInput(dfs(flow.value.modules?.[0]?.id, flow), flowState, args, flow.schema);
94
94
  return {
95
95
  pickableProperties: {
96
96
  flow_input: schemaToObject(flow.schema, args),
@@ -25,15 +25,15 @@ export declare function runFlowPreview(args: Record<string, any>, flow: OpenFlow
25
25
  }, path: string, restartedFrom: RestartedFrom | undefined): Promise<string>;
26
26
  export declare function codeToStaticTemplate(code?: string): string | undefined;
27
27
  export declare function emptyFlowModuleState(): FlowModuleState;
28
- export declare function isInputFilled(inputTransforms: Record<string, InputTransform>, key: string, schema: Schema): boolean;
28
+ export declare function isInputFilled(inputTransforms: Record<string, InputTransform>, key: string, schema: Schema | undefined): boolean;
29
29
  export declare function computeFlowStepWarning(argName: string, flowModuleValue: FlowModuleValue, messages: Record<string, {
30
30
  message: string;
31
31
  type: 'error' | 'warning';
32
- }>, schema: Schema, moduleIds?: string[]): Promise<Record<string, {
32
+ }>, schema: Schema | undefined, moduleIds?: string[]): Promise<Record<string, {
33
33
  message: string;
34
34
  type: 'error' | 'warning';
35
35
  }>>;
36
- export declare function initFlowStepWarnings(flowModuleValue: FlowModuleValue, schema: Schema, moduleIds?: string[]): Promise<Record<string, {
36
+ export declare function initFlowStepWarnings(flowModuleValue: FlowModuleValue, schema: Schema | undefined, moduleIds?: string[]): Promise<Record<string, {
37
37
  message: string;
38
38
  type: 'error' | 'warning';
39
39
  }>>;
@@ -187,7 +187,7 @@ export async function computeFlowStepWarning(argName, flowModuleValue, messages,
187
187
  }
188
188
  const type = flowModuleValue.type;
189
189
  if (type == 'rawscript' || type == 'script' || type == 'flow') {
190
- if (!isInputFilled(flowModuleValue.input_transforms, argName, schema ?? {})) {
190
+ if (!isInputFilled(flowModuleValue.input_transforms, argName, schema)) {
191
191
  messages[argName] = {
192
192
  message: `Input ${argName} is required but not filled`,
193
193
  type: 'warning'
@@ -214,7 +214,7 @@ export async function initFlowStepWarnings(flowModuleValue, schema, moduleIds =
214
214
  if (type == 'rawscript' || type == 'script' || type == 'flow') {
215
215
  const keys = Object.keys(flowModuleValue.input_transforms ?? {});
216
216
  const promises = keys.map(async (key) => {
217
- await computeFlowStepWarning(key, flowModuleValue, messages, schema ?? {}, moduleIds);
217
+ await computeFlowStepWarning(key, flowModuleValue, messages, schema, moduleIds);
218
218
  });
219
219
  await Promise.all(promises);
220
220
  }
@@ -110,6 +110,9 @@ $: graph = graphBuilder(modules, {
110
110
  dispatch('select', modId);
111
111
  }
112
112
  },
113
+ changeId: (detail) => {
114
+ dispatch('changeId', detail);
115
+ },
113
116
  delete: (detail, label) => {
114
117
  $selectedId = label;
115
118
  dispatch('delete', detail);
@@ -219,6 +222,7 @@ onMount(() => {
219
222
  showLock={false}
220
223
  showZoom={false}
221
224
  showFitView={false}
225
+ class="!shadow-none"
222
226
  >
223
227
  {#if showDataflow}
224
228
  <Toggle
@@ -26,6 +26,7 @@ declare const __propDef: {
26
26
  deleteBranch: CustomEvent<any>;
27
27
  insert: CustomEvent<any>;
28
28
  select: CustomEvent<any>;
29
+ changeId: CustomEvent<any>;
29
30
  delete: CustomEvent<any>;
30
31
  newBranch: CustomEvent<any>;
31
32
  move: CustomEvent<any>;
@@ -8,6 +8,7 @@ export type GraphEventHandlers = {
8
8
  newBranch: (module: FlowModule) => void;
9
9
  move: (module: FlowModule, modules: FlowModule[]) => void;
10
10
  selectedIteration: (detail: any, moduleId: string) => void;
11
+ changeId: (newId: string) => void;
11
12
  };
12
13
  export default function graphBuilder(modules: FlowModule[] | undefined, extra: Record<string, any>, failureModule: FlowModule | undefined, eventHandlers: GraphEventHandlers, success: boolean | undefined, useDataflow: boolean | undefined, selectedId: string | undefined, moving: string | undefined): {
13
14
  nodes: Node[];
@@ -258,10 +258,8 @@ export default function graphBuilder(modules, extra, failureModule, eventHandler
258
258
  id: `${module.id}-branch-${branchIndex}`,
259
259
  data: {
260
260
  offset: currentOffset,
261
- label: defaultIfEmptyString(branch.summary, 'Branch ' + (branchIndex + 1)) +
262
- '\n`' +
263
- branch.expr +
264
- '`',
261
+ label: defaultIfEmptyString(branch.summary, 'Branch ' + (branchIndex + 1)),
262
+ preLabel: branch.summary ? '' : branch.expr,
265
263
  id: module.id,
266
264
  branchIndex: branchIndex,
267
265
  modules: modules,
@@ -34,7 +34,7 @@ let menuOpen = false;
34
34
  {#if data?.insertable && !$useDataflow && !data?.moving}
35
35
  <div
36
36
  class={twMerge('edgeButtonContainer nodrag nopan top-0', menuOpen ? 'z-50' : '')}
37
- style:transform="translate(-50%, 50%) translate({sourceX}px,{sourceY}px)"
37
+ style:transform="translate(-50%, 50%) translate({sourceX}px,{sourceY + 2}px)"
38
38
  >
39
39
  <InsertModuleButton
40
40
  disableAi={data.disableAi}
@@ -58,7 +58,7 @@ let menuOpen = false;
58
58
  {#if data.enableTrigger}
59
59
  <div
60
60
  class="edgeButtonContainer nodrag nopan"
61
- style:transform="translate(100%, 50%) translate({sourceX}px,{sourceY}px)"
61
+ style:transform="translate(100%, 50%) translate({sourceX}px,{sourceY + 2}px)"
62
62
  >
63
63
  <InsertTriggerButton
64
64
  disableAi={data.disableAi}
@@ -25,8 +25,9 @@ $: borderStatus = computeBorderStatus(data.branchIndex, 'branchall', data.flowMo
25
25
  />
26
26
  {#if data.insertable}
27
27
  <button
28
+ title="Delete branch"
28
29
  class="z-50 absolute -top-[10px] -right-[10px] rounded-full h-[20px] w-[20px] center-center text-primary
29
- border-[1.5px] border-gray-700 bg-surface duration-150 hover:bg-red-400 hover:text-white
30
+ outline-[1px] outline outline-gray-700 bg-surface duration-150 hover:bg-red-400 hover:text-white
30
31
  hover:border-red-700"
31
32
  on:click|preventDefault|stopPropagation={() => {
32
33
  data.eventHandlers.deleteBranch(
@@ -10,18 +10,18 @@ $: borderStatus = computeBorderStatus(data.branchIndex + 1, 'branchone', data.fl
10
10
  <NodeWrapper let:darkMode offset={data.offset}>
11
11
  <VirtualItem
12
12
  label={data.label}
13
+ preLabel={data.preLabel}
13
14
  selectable
14
15
  selected={data.selected}
15
16
  bgColor={getStateColor(undefined, darkMode)}
16
- borderColor={borderStatus
17
- ? getStateColor(borderStatus, darkMode) + (!darkMode ? '; border-width: 3px' : '')
18
- : undefined}
17
+ borderColor={borderStatus ? getStateColor(borderStatus, darkMode) : undefined}
19
18
  on:select={() => {
20
19
  data.eventHandlers.select(data.id)
21
20
  }}
22
21
  />
23
22
  {#if data.insertable}
24
23
  <button
24
+ title="Delete branch"
25
25
  class="z-50 absolute -top-[10px] -right-[10px] rounded-full h-[20px] w-[20px] center-center text-primary
26
26
  border-[1.5px] border-gray-700 bg-surface duration-150 hover:bg-red-400 hover:text-white
27
27
  hover:border-red-700"
@@ -6,6 +6,7 @@ declare const __propDef: {
6
6
  props: {
7
7
  data: {
8
8
  label: string;
9
+ preLabel: string | undefined;
9
10
  insertable: boolean;
10
11
  flowModuleStates: Record<string, GraphModuleState> | undefined;
11
12
  id: string;
@@ -30,9 +30,9 @@ const { selectedId } = getContext('FlowGraphContext');
30
30
  : undefined}
31
31
  slot="trigger"
32
32
  type="button"
33
- class=" bg-surface text-violet-800 dark:text-violet-400 border mx-0.5 focus:outline-none hover:bg-surface-hover focus:ring-4 focus:ring-gray-200 font-medium rounded-full text-sm w-8 h-8 flex items-center justify-center"
33
+ class=" bg-surface text-violet-800 dark:text-violet-400 border mx-0.5 focus:outline-none hover:bg-surface-hover focus:ring-4 focus:ring-gray-200 font-medium rounded-full text-sm w-7 h-7 flex items-center justify-center"
34
34
  >
35
- <Wand2 size={16} />
35
+ <Wand2 size={12} />
36
36
  </button>
37
37
  {#if !$copilotInfo.exists_openai_resource_path}
38
38
  <div class="text-primary p-4">
@@ -29,7 +29,7 @@ let selectedIteration = -1;
29
29
  '/' +
30
30
  (state?.iteration_total ?? '?')
31
31
  : ''}
32
- bgColor={getStateColor(type, darkMode, '#fff')}
32
+ bgColor={getStateColor(type, darkMode, true)}
33
33
  modules={data.modules ?? []}
34
34
  moving={data.moving}
35
35
  duration_ms={state?.duration_ms}
@@ -41,6 +41,9 @@ let selectedIteration = -1;
41
41
  on:insert={(e) => {
42
42
  data.eventHandlers.insert(e.detail)
43
43
  }}
44
+ on:changeId={(e) => {
45
+ data.eventHandlers.changeId(e.detail)
46
+ }}
44
47
  on:move={(e) => {
45
48
  data.eventHandlers.move(data.module, data.modules)
46
49
  }}
@@ -59,7 +62,8 @@ let selectedIteration = -1;
59
62
  <div class="absolute -bottom-10 left-1/2 transform -translate-x-1/2 z-10">
60
63
  {#if (data.value.type === 'branchall' || data.value.type === 'branchone') && data.insertable}
61
64
  <button
62
- class="rounded-full border hover:bg-surface-hover bg-surface p-1"
65
+ title="Add branch"
66
+ class="rounded text-secondary border hover:bg-surface-hover bg-surface p-1"
63
67
  on:click={() => {
64
68
  data?.eventHandlers?.newBranch(data.module)
65
69
  }}
@@ -7,4 +7,4 @@ export declare const NODE: {
7
7
  vertical: number;
8
8
  };
9
9
  };
10
- export declare function getStateColor(state: FlowStatusModule['type'] | undefined, isDark: boolean, lightModeBackground?: string): string;
10
+ export declare function getStateColor(state: FlowStatusModule['type'] | undefined, isDark: boolean, nonVirtualItem?: boolean): string;
@@ -6,7 +6,7 @@ export const NODE = {
6
6
  vertical: 50
7
7
  }
8
8
  };
9
- export function getStateColor(state, isDark, lightModeBackground = '#dfe6ee') {
9
+ export function getStateColor(state, isDark, nonVirtualItem) {
10
10
  switch (state) {
11
11
  case 'Success':
12
12
  return isDark ? '#059669' : 'rgb(193, 255, 216)';
@@ -19,6 +19,11 @@ export function getStateColor(state, isDark, lightModeBackground = '#dfe6ee') {
19
19
  case 'WaitingForExecutor':
20
20
  return isDark ? '#ea580c' : 'rgb(255, 208, 193)';
21
21
  default:
22
- return isDark ? '#2e3440' : lightModeBackground;
22
+ if (nonVirtualItem) {
23
+ return isDark ? '#2E3440' : 'white';
24
+ }
25
+ else {
26
+ return isDark ? '#313742' : '#dfe6ee';
27
+ }
23
28
  }
24
29
  }
@@ -2,7 +2,7 @@
2
2
  export let width = '24px';
3
3
  </script>
4
4
 
5
- <svg id="azure" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 374.5 377.3" width="20" height="20"
5
+ <svg id="azure" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 374.5 377.3" {width} {height}
6
6
  ><style>
7
7
  .st0-azure {
8
8
  fill: #00bef2;
@@ -14,11 +14,7 @@ export let width = '24px';
14
14
  style="fill:currentcolor;"
15
15
  ><metadata id="metadata25"
16
16
  ><rdf:RDF
17
- ><cc:Work rdf:about=""
18
- ><dc:format>image/svg+xml</dc:format><dc:type
19
- rdf:resource="http://purl.org/dc/dcmitype/StillImage"
20
- /><dc:title /></cc:Work
21
- ></rdf:RDF
17
+ ><cc:Work><dc:format>image/svg+xml</dc:format><dc:type /><dc:title /></cc:Work></rdf:RDF
22
18
  ></metadata
23
19
  ><defs id="defs23" /><sodipodi:namedview
24
20
  pagecolor="#ffffff"
@@ -27,19 +23,8 @@ export let width = '24px';
27
23
  objecttolerance="10"
28
24
  gridtolerance="10"
29
25
  guidetolerance="10"
30
- inkscape:pageopacity="0"
31
- inkscape:pageshadow="2"
32
- inkscape:window-width="1920"
33
- inkscape:window-height="1043"
34
26
  id="namedview21"
35
27
  showgrid="true"
36
- inkscape:zoom="1.84375"
37
- inkscape:cx="210.72257"
38
- inkscape:cy="88.813847"
39
- inkscape:window-x="0"
40
- inkscape:window-y="0"
41
- inkscape:window-maximized="1"
42
- inkscape:current-layer="Calque_1"
43
28
  ><inkscape:grid
44
29
  type="xygrid"
45
30
  id="grid4535"
@@ -49,13 +34,10 @@ export let width = '24px';
49
34
  >
50
35
  <style id="style2">
51
36
  .st0 {
52
-
53
37
  }
54
38
  .st1 {
55
-
56
39
  }
57
40
  .st2 {
58
-
59
41
  }</style>
60
42
 
61
43
  <g id="g18" transform="matrix(1.3627521,0,0,1.3627521,-48.105149,-68.371499)">
@@ -0,0 +1,12 @@
1
+ <script>export let height = '24px';
2
+ export let width = '24px';
3
+ </script>
4
+
5
+ <svg version="1.1" id="svg2" x=0 y=0 {width} {height} viewBox="0 0 56 56" style="fill:currentcolor;">
6
+ <g id="g8">
7
+ <path
8
+ d="M55.195 44.935c-.216 0-.38.054-.595.054H29.65c1.678-3.247 4.71-5.79 8.173-6.982-2.5-1.732-3.735-4.763-3.247-7.74.487-2.87 2.598-5.304 5.358-6.224 3.735-1.137 7.794.38 9.634 3.843 1.786 3.464.704 7.848-2.5 10.12 3.464 1.137 6.44 3.68 8.12 6.928-.216 0-1.46-2.76 0 0zm-27.44 0c0-1.028.866-2.057 1.407-2.814-1.3-1.3-2.923-2.327-4.71-2.977 4.222-2.977 3.356-9.634-1.46-11.474-2.977-1.082-6.333 0-8 2.652-1.84 2.923-1.028 6.82 1.786 8.822-2.87.974-5.358 3.085-6.766 5.79h6.71z" fill="#003e52"/><path d="M58.876 34.705c2.977 2.977 1.948 8.12-1.894 9.742-.433-1.515-1.786-3.03-2.87-4.113-1.137-1.19-2.436-2.165-3.843-2.923.866-1.137 1.46-2.5 1.786-3.843 2.273-1.137 5.034-.65 6.82 1.137.27.27-.704-.704 0 0zM5.51 43.203c.758.704 1.678 1.19 2.706 1.515.162-1.245 1.353-2.598 2.22-3.464.92-1.028 2.057-1.948 3.247-2.652-1.3-1.894-1.786-4.276-1.3-6.495-2.923-1.082-6.278.054-7.956 2.652-1.786 2.652-1.3 6.278 1.082 8.443.433.433-.054-.054 0 0zm23.598-9.418c0 1.732-.54 3.356-1.515 4.763 1.028.595 1.894 1.3 2.76 2.11 1.19-1.3 2.598-2.436 4.168-3.302-3.897-5.142-1.678-12.665 4.33-14.992-2.22-2.814-6.008-4.005-9.418-3.03-3.03.866-5.467 3.356-6.17 6.44 3.356 1.137 5.845 4.276 5.845 8z" fill="#f38b00"/><path d="M63.963 38.115c-.433-4.763-4.546-8.498-9.364-8.498-.325 0-.704 0-1.028.054-.974-5.737-6.333-9.85-12.124-9.364-2.87-3.572-7.632-5.304-12.124-4.33a12.18 12.18 0 0 0-8.985 7.956c-3.4.108-6.387 1.948-8.12 4.655C6.375 27.3.53 31.566.042 37.52-.5 43.203 4.2 48.3 10 48.3h45.14c.325 0 .65-.054.92-.162 4.87-.812 8.335-5.25 7.902-10.013zM55.79 46.72c3.79-.595-.216.054 0 0-.162.054-.38.108-.54.108H10c-5.088 0-9.093-4.546-8.498-9.526.65-5.358 6.333-8.822 11.42-6.982 1.515-3.193 4.925-5.196 8.498-4.87.92-3.897 4.06-7.036 7.956-7.956 4.33-1.028 8.93.758 11.42 4.384 5.9-.974 11.42 3.626 11.474 9.58 4.384-1.353 9.147 1.407 10.12 5.9.866 4.33-2.165 8.66-6.603 9.364z" fill="#003e52"
9
+ id="path116"
10
+ />
11
+ </g>
12
+ </svg>
@@ -0,0 +1,17 @@
1
+ import { SvelteComponent } from "svelte";
2
+ declare const __propDef: {
3
+ props: {
4
+ height?: string | undefined;
5
+ width?: string | undefined;
6
+ };
7
+ events: {
8
+ [evt: string]: CustomEvent<any>;
9
+ };
10
+ slots: {};
11
+ };
12
+ export type JumpCloudIconProps = typeof __propDef.props;
13
+ export type JumpCloudIconEvents = typeof __propDef.events;
14
+ export type JumpCloudIconSlots = typeof __propDef.slots;
15
+ export default class JumpCloudIcon extends SvelteComponent<JumpCloudIconProps, JumpCloudIconEvents, JumpCloudIconSlots> {
16
+ }
17
+ export {};
@@ -0,0 +1,20 @@
1
+ <script>export let height = '24px';
2
+ export let width = '24px';
3
+ </script>
4
+
5
+ <svg {width} {height} viewBox="0 0 500 500" fill="none" xmlns="http://www.w3.org/2000/svg">
6
+ <path d="M120.265 169.789L165.899 91.024L349.671 91L395.059 170.549L395.113 329.677L349.678 409.178L165.96 409.243L119.799 329.688L120.265 169.789Z" fill="#4D4D4D"/>
7
+ <path d="M119.809 329.656H202.632L157.141 249.494L194.138 169.802L120.274 169.785L74 250.142" fill="#EDEDED"/>
8
+ <path d="M227.748 329.657H288.286L341.814 251.632L289.218 170.552H218.008L175.114 248.902L227.748 329.657Z" fill="#E0E0E0"/>
9
+ <path d="M74 250.135L119.809 329.684H202.638L157.645 250.409L74 250.135Z" fill="#ACACAC"/>
10
+ <path d="M175.98 250.149L227.755 329.681H288.286L340.978 250.18L175.98 250.149Z" fill="#9E9E9E"/>
11
+ <path d="M196.485 250.19L180.861 254.742L165.868 250.183L227.078 144.083L242.39 170.573" fill="#00B8E3"/>
12
+ <path d="M242.324 329.657L227.091 356.256L186.433 312.454L165.836 250.207V250.176H196.477" fill="#33C6E9"/>
13
+ <path d="M165.874 250.183H165.843V250.207L150.538 276.728L135.171 250.327L150.754 223.296L196.484 144.1H227.094" fill="#008AAA"/>
14
+ <path d="M334.293 329.657H427L426.945 170.546H334.297L334.293 329.657Z" fill="#D4D4D4"/>
15
+ <path d="M334.293 250.399V329.674H426.832V250.399H334.293Z" fill="#919191"/>
16
+ <path d="M227.108 356.291H196.475L150.536 276.718L165.841 250.214L227.108 356.291Z" fill="#00B8E3"/>
17
+ <path d="M349.585 250.183L288.358 356.27C282.731 348 273.084 329.684 273.084 329.684L319.013 250.17L349.585 250.183Z" fill="#008AAA"/>
18
+ <path d="M318.934 356.267L288.358 356.26L349.592 250.173L364.89 223.683L380.236 250.348M349.585 250.183H319.023L273.077 170.563L288.286 144.107L325.475 191.385L349.585 250.183Z" fill="#00B8E3"/>
19
+ <path d="M364.888 223.669V223.693L349.583 250.183L288.294 144.114L318.959 144.131L364.888 223.669Z" fill="#33C6E9"/>
20
+ </svg>
@@ -0,0 +1,17 @@
1
+ import { SvelteComponent } from "svelte";
2
+ declare const __propDef: {
3
+ props: {
4
+ height?: string | undefined;
5
+ width?: string | undefined;
6
+ };
7
+ events: {
8
+ [evt: string]: CustomEvent<any>;
9
+ };
10
+ slots: {};
11
+ };
12
+ export type KeycloakIconProps = typeof __propDef.props;
13
+ export type KeycloakIconEvents = typeof __propDef.events;
14
+ export type KeycloakIconSlots = typeof __propDef.slots;
15
+ export default class KeycloakIcon extends SvelteComponent<KeycloakIconProps, KeycloakIconEvents, KeycloakIconSlots> {
16
+ }
17
+ export {};
@@ -2,7 +2,7 @@
2
2
  export let width = '24px';
3
3
  </script>
4
4
 
5
- <svg {width} {height} viewBox="0 0 38 40" fill="none" xmlns="http://www.w3.org/2000/svg">
5
+ <svg {width} {height} viewBox="0 0 500 500" fill="none" xmlns="http://www.w3.org/2000/svg">
6
6
  <path d="M35.4564 23.7461C35.7634 23.9117 36.0345 24.1365 36.2539 24.4075C36.595 24.8245 37 25.5651 37 26.7228C37 28.3318 36.3816 30.045 36.1932 30.5305C36.1885 30.5398 36.1807 30.5491 36.1807 30.56C35.0954 33.1717 33.1998 35.3665 30.7727 36.8215C28.4004 38.2453 25.5204 39 22.4457 39H21.874C18.989 38.9399 16.1728 38.1087 13.7183 36.5928C11.5573 35.2377 9.80917 33.317 8.66388 31.0393C7.34228 30.8341 6.10864 30.2504 5.11251 29.3588C3.83683 28.2291 3.04712 26.7509 2.89136 25.1948C2.80667 24.4079 2.85245 23.6125 3.02687 22.8405L2.48482 22.3815C1.61255 21.6455 1.10321 20.5858 1.01443 19.341C0.941223 18.3047 1.14683 17.1221 1.62502 15.815C2.74183 12.7714 5.30566 9.14581 8.48631 6.11775C9.90595 4.74017 11.4809 3.53186 13.1794 2.51708C14.9302 1.50721 16.5189 0.995269 17.9021 1.00149C18.9853 0.973166 20.0403 1.3487 20.8616 2.05493C20.9071 2.08828 21.5749 2.74181 22.1033 3.2589L22.145 3.29976L22.3771 3.20173C24.131 2.47506 25.8568 2.09228 27.3693 2.09228C30.5561 2.09228 32.6215 3.80392 32.6215 6.44919C32.6215 8.08148 31.8225 9.91138 30.3443 11.6853C30.7474 12.3092 31.0516 12.9915 31.2462 13.7081C31.4562 14.4388 31.5709 15.1935 31.5873 15.9535C31.6029 16.2803 31.6169 16.8015 31.6293 17.2683C32.6044 17.5578 33.8287 18.0464 34.5639 18.8244C35.1335 19.3887 35.5069 20.1206 35.6293 20.9126C35.7507 21.6931 35.6295 22.492 35.282 23.2015C35.3131 23.2902 35.3505 23.4007 35.3785 23.4894C35.4066 23.5781 35.433 23.6637 35.4564 23.7461Z" fill="#001D28"/>
7
7
  <path d="M8.446 20.7569C8.16153 20.7416 7.87628 20.762 7.59683 20.8174C5.57352 21.2268 4.43041 22.9461 4.6574 25.1942C4.85989 27.2229 6.9077 28.934 8.802 28.9848C8.99665 28.9901 9.19135 28.9764 9.38336 28.9438C11.4312 28.5934 11.9701 26.3617 11.632 24.1676C11.2499 21.6918 9.57932 20.8191 8.446 20.7569ZM10.4514 26.6237C10.3683 26.7584 10.2494 26.8672 10.1081 26.9378C9.96668 27.0084 9.80843 27.038 9.65117 27.0232C9.21352 26.9888 8.72525 26.6695 8.6583 25.877C8.65371 25.4926 8.72416 25.111 8.86569 24.7537C8.95434 24.5298 8.96344 24.2821 8.89148 24.0522C8.81952 23.8223 8.67087 23.6243 8.4705 23.4913C8.35128 23.4129 8.21769 23.359 8.07751 23.3329C7.93733 23.3067 7.79336 23.3088 7.65399 23.339C7.51755 23.3679 7.38822 23.4238 7.27354 23.5034C7.15887 23.5829 7.06115 23.6846 6.98608 23.8024C6.88071 23.9835 6.79842 24.1771 6.74113 24.3788C6.73133 24.4148 6.72153 24.4426 6.715 24.4607C6.62192 24.7112 6.47331 24.7881 6.3737 24.7701C6.32634 24.7701 6.26102 24.7325 6.21856 24.6178C6.10915 24.3002 6.2055 23.4144 6.79012 22.7594C6.98319 22.5527 7.22241 22.3949 7.48813 22.299C7.75385 22.2031 8.03848 22.1718 8.31863 22.2076C8.61521 22.248 8.89714 22.3616 9.13913 22.5382C9.38111 22.7148 9.57557 22.9489 9.70506 23.2195C10.1068 23.9858 9.74915 24.7898 9.54176 25.2712L9.4797 25.4136C9.3458 25.7329 9.33926 26.0113 9.46011 26.1979C9.511 26.2713 9.57929 26.3308 9.65882 26.3711C9.73835 26.4114 9.82664 26.4312 9.91572 26.4288C9.9996 26.4283 10.0831 26.4167 10.1639 26.3944C10.2685 26.3699 10.3779 26.3437 10.4448 26.4272C10.467 26.4548 10.4796 26.4889 10.4808 26.5243C10.4819 26.5597 10.4716 26.5946 10.4514 26.6237Z"
8
8
  fill="#EFEEEA"/>