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
@@ -49,6 +49,14 @@ let value = noDefault
49
49
  : undefined;
50
50
  $: resolvedConfig.items && handleItems();
51
51
  let listItems = [];
52
+ function setContextValue(value) {
53
+ if (iterContext && listInputs) {
54
+ listInputs.set(id, value);
55
+ }
56
+ if (rowContext && rowInputs) {
57
+ rowInputs.set(id, value);
58
+ }
59
+ }
52
60
  function handleItems() {
53
61
  listItems = Array.isArray(resolvedConfig.items)
54
62
  ? resolvedConfig.items.map((item) => {
@@ -65,6 +73,9 @@ function handleItems() {
65
73
  };
66
74
  })
67
75
  : [];
76
+ if (value != undefined && listItems.some((x) => x.value === value)) {
77
+ return;
78
+ }
68
79
  let rawValue;
69
80
  if (resolvedConfig.defaultValue !== undefined) {
70
81
  rawValue = resolvedConfig.defaultValue;
@@ -76,12 +87,7 @@ function handleItems() {
76
87
  value = JSON.stringify(rawValue);
77
88
  outputs?.result.set(rawValue);
78
89
  }
79
- if (iterContext && listInputs) {
80
- listInputs.set(id, rawValue);
81
- }
82
- if (rowContext && rowInputs) {
83
- rowInputs.set(id, rawValue);
84
- }
90
+ setContextValue(rawValue);
85
91
  }
86
92
  onDestroy(() => {
87
93
  listInputs?.remove(id);
@@ -114,12 +120,7 @@ function setValue(nvalue) {
114
120
  catch (_) { }
115
121
  value = nvalue;
116
122
  outputs?.result.set(result);
117
- if (iterContext && listInputs) {
118
- listInputs.set(id, result);
119
- }
120
- if (rowContext && rowInputs) {
121
- rowInputs.set(id, result);
122
- }
123
+ setContextValue(result);
123
124
  if (recomputeIds) {
124
125
  recomputeIds.forEach((id) => $runnableComponents?.[id]?.cb?.forEach((f) => f()));
125
126
  }
@@ -127,9 +128,7 @@ function setValue(nvalue) {
127
128
  function onClear() {
128
129
  value = undefined;
129
130
  outputs?.result.set(undefined, true);
130
- if (iterContext && listInputs) {
131
- listInputs.set(id, undefined);
132
- }
131
+ setContextValue(undefined);
133
132
  }
134
133
  let css = initCss($app.css?.selectcomponent, customCss);
135
134
  let previsousFilter = '';
@@ -150,9 +149,11 @@ function handleFilter(e) {
150
149
  }
151
150
  $: resolvedConfig.defaultValue && handleDefault();
152
151
  function handleDefault() {
153
- if (resolvedConfig.defaultValue) {
154
- value = JSON.stringify(resolvedConfig.defaultValue);
155
- outputs?.result.set(resolvedConfig.defaultValue);
152
+ if (resolvedConfig.defaultValue != undefined) {
153
+ const nvalue = resolvedConfig.defaultValue;
154
+ value = JSON.stringify(nvalue);
155
+ outputs?.result.set(nvalue);
156
+ setContextValue(nvalue);
156
157
  }
157
158
  }
158
159
  let filterText = '';
@@ -552,7 +552,7 @@ let jobToWatch = undefined;
552
552
  {/if}
553
553
 
554
554
  <SplitPanesWrapper>
555
- <Splitpanes id="o1" class="max-w-full">
555
+ <Splitpanes id="o1" class="max-w-full overflow-hidden">
556
556
  <Pane bind:size={leftPanelSize} minSize={5} maxSize={33}>
557
557
  <div
558
558
  class={twMerge(
@@ -1,5 +1,5 @@
1
1
  <script>import { getContext, setContext } from 'svelte';
2
- import { writable } from 'svelte/store';
2
+ import { get, writable } from 'svelte/store';
3
3
  import { buildWorld } from '../rx';
4
4
  import Button from '../../common/button/Button.svelte';
5
5
  import { Unlock } from 'lucide-svelte';
@@ -58,11 +58,8 @@ $: onContextChange(context);
58
58
  function onContextChange(context) {
59
59
  Object.assign(ncontext, context);
60
60
  ncontext = ncontext;
61
- worldStore.update((x) => {
62
- Object.entries(context).forEach(([key, value]) => {
63
- x.outputsById?.['ctx']?.[key].set(value, true);
64
- });
65
- return x;
61
+ Object.entries(context).forEach(([key, value]) => {
62
+ get(worldStore).outputsById?.['ctx']?.[key].set(value, true);
66
63
  });
67
64
  }
68
65
  function hashchange(e) {
@@ -115,19 +115,25 @@ async function disableAppReporting() {
115
115
  const appPreviewScript = `import puppeteer from 'puppeteer-core';
116
116
  import dayjs from 'dayjs';
117
117
  export async function main(app_path: string, startup_duration = 5, kind: 'pdf' | 'png' = 'pdf') {
118
- const browser = await puppeteer.launch({ headless: 'new', executablePath: '/usr/bin/chromium', args: ['--no-sandbox'] });
118
+ let browser = null
119
+ try {
120
+ browser = await puppeteer.launch({ headless: true, executablePath: '/usr/bin/chromium', args: ['--no-sandbox',
121
+ '--no-zygote',
122
+ '--disable-setuid-sandbox',
123
+ '--disable-dev-shm-usage',
124
+ '--disable-gpu'] });
119
125
  const page = await browser.newPage();
120
126
  await page.setCookie({
121
127
  "name": "token",
122
128
  "value": Bun.env["WM_TOKEN"],
123
- "domain": Bun.env["WM_BASE_URL"]?.replace(/https?:\\/\\//, '')
129
+ "domain": Bun.env["BASE_URL"]?.replace(/https?:\\/\\//, '')
124
130
  })
125
131
  page
126
132
  .on('console', msg =>
127
133
  console.log(dayjs().format("HH:mm:ss") + " " + msg.type().substr(0, 3).toUpperCase() + " " + msg.text()))
128
134
  .on('pageerror', ({ msg }) => console.log(dayjs().format("HH:mm:ss") + " " + msg));
129
135
  await page.setViewport({ width: 1200, height: 2000 });
130
- await page.goto(Bun.env["WM_BASE_URL"] + '/apps/get/' + app_path + '?workspace=' + Bun.env["WM_WORKSPACE"] + "&hideRefreshBar=true&hideEditBtn=true");
136
+ await page.goto(Bun.env["BASE_URL"] + '/apps/get/' + app_path + '?workspace=' + Bun.env["WM_WORKSPACE"] + "&hideRefreshBar=true&hideEditBtn=true");
131
137
  await page.waitForSelector("#app-content", { timeout: 20000 })
132
138
  await new Promise((resolve, _) => {
133
139
  setTimeout(resolve, startup_duration * 1000)
@@ -151,8 +157,14 @@ export async function main(app_path: string, startup_duration = 5, kind: 'pdf' |
151
157
  type: "png",
152
158
  captureBeyondViewport: false
153
159
  });
154
- await browser.close();
155
- return Buffer.from(screenshot).toString('base64');
160
+ await browser.close();
161
+ return Buffer.from(screenshot).toString('base64');
162
+ } catch (err) {
163
+ if (browser) {
164
+ await browser.close();
165
+ }
166
+ throw err;
167
+ }
156
168
  }`;
157
169
  const notificationScripts = {
158
170
  discord: {
@@ -62,6 +62,7 @@ loadVersions();
62
62
  <div class="flex gap-2 flex-col">
63
63
  {#each versions ?? [] as version}
64
64
  <!-- svelte-ignore a11y-click-events-have-key-events -->
65
+ <!-- svelte-ignore a11y-no-static-element-interactions -->
65
66
  <div
66
67
  class={classNames(
67
68
  'border flex gap-1 truncate justify-between flex-row w-full items-center p-2 rounded-md cursor-pointer hover:bg-blue-50 hover:text-blue-400',
@@ -390,7 +390,6 @@ function mouseOut() {
390
390
  componentInput={component.componentInput}
391
391
  customCss={component.customCss}
392
392
  actions={component.actions ?? []}
393
- actionsOrder={component.actionsOrder ?? undefined}
394
393
  {render}
395
394
  />
396
395
  {:else if component.type === 'aggridinfinitecomponentee'}
@@ -402,7 +401,6 @@ function mouseOut() {
402
401
  componentInput={component.componentInput}
403
402
  customCss={component.customCss}
404
403
  actions={component.actions ?? []}
405
- actionsOrder={component.actionsOrder ?? undefined}
406
404
  {render}
407
405
  />
408
406
  {:else if component.type === 'textcomponent'}
@@ -1,7 +1,7 @@
1
1
  import { ResourceService, AppService } from '../../../../gen';
2
2
  import { sendUserToast } from '../../../../toast';
3
3
  export const DEFAULT_THEME = 'f/app_themes/theme_0';
4
- export function createTheme(workspace, theme) {
4
+ export async function createTheme(workspace, theme) {
5
5
  const createThemeRequest = {
6
6
  workspace,
7
7
  requestBody: {
@@ -10,7 +10,12 @@ export function createTheme(workspace, theme) {
10
10
  value: theme.value || ''
11
11
  }
12
12
  };
13
- return ResourceService.createResource(createThemeRequest);
13
+ try {
14
+ return await ResourceService.createResource(createThemeRequest);
15
+ }
16
+ catch (e) {
17
+ throw Error(`Error saving theme at resource ${theme.path}, you do not have enough permission`);
18
+ }
14
19
  }
15
20
  export async function getTheme(workspace, path) {
16
21
  try {
@@ -55,11 +60,17 @@ export async function resolveTheme(theme, workspace) {
55
60
  css = theme.css;
56
61
  }
57
62
  else if (theme?.type === 'path' && theme.path && workspace) {
58
- let loadedCss = await ResourceService.getResourceValue({
59
- workspace: workspace,
60
- path: theme.path
61
- });
62
- css = loadedCss.value ?? '';
63
+ let loadedCss = { value: '' };
64
+ try {
65
+ loadedCss = await ResourceService.getResourceValue({
66
+ workspace: workspace,
67
+ path: theme.path
68
+ });
69
+ }
70
+ catch (e) {
71
+ console.error('Error loading theme', e);
72
+ }
73
+ css = loadedCss?.['value'] ?? '';
63
74
  }
64
75
  return css;
65
76
  }
@@ -31,6 +31,7 @@ function subscribeToOutput() {
31
31
  <div class="ml-2 my-2">
32
32
  {#if subGrids.length > 1}
33
33
  <!-- svelte-ignore a11y-click-events-have-key-events -->
34
+ <!-- svelte-ignore a11y-no-static-element-interactions -->
34
35
  <div
35
36
  class={classNames(
36
37
  'px-1 py-0.5 flex justify-between items-center font-semibold text-xs border-l border-y w-full cursor-pointer',
@@ -1,35 +1,12 @@
1
1
  <script>import { allItems } from '../../../utils';
2
- import { forbiddenIds } from '../../../../flows/idUtils';
3
- import { ArrowRight, Pencil } from 'lucide-svelte';
2
+ import { Pencil } from 'lucide-svelte';
4
3
  import { createEventDispatcher, getContext } from 'svelte';
5
- import { slide } from 'svelte/transition';
6
- import { Button, Popup } from '../../../../common';
4
+ import IdEditorInput from '../../../../IdEditorInput.svelte';
5
+ import { Popup } from '../../../../common';
7
6
  const { app, selectedComponent } = getContext('AppViewerContext');
8
7
  export let id;
9
8
  const dispatch = createEventDispatcher();
10
- const regex = /^[a-zA-Z][a-zA-Z0-9]*$/;
11
- let value = id;
12
- let error = '';
13
- $: if (!regex.test(value)) {
14
- error = 'The ID must include only letters and numbers and start with a letter';
15
- }
16
- else if (forbiddenIds.includes(value)) {
17
- error = 'This ID is reserved';
18
- }
19
- else if (allItems($app.grid, $app.subgrids).some((item) => item.id === value && item.id !== id)) {
20
- error = 'This ID is already in use';
21
- }
22
- else {
23
- error = '';
24
- }
25
- function save() {
26
- if (error != '') {
27
- return;
28
- }
29
- if (value != id) {
30
- dispatch('change', value);
31
- }
32
- }
9
+ $: reservedIds = allItems($app.grid, $app.subgrids).map((item) => item.id);
33
10
  </script>
34
11
 
35
12
  <Popup let:close floatingConfig={{ strategy: 'absolute', placement: 'bottom-start' }}>
@@ -45,44 +22,13 @@ function save() {
45
22
  <Pencil size={14} />
46
23
  </button>
47
24
  </svelte:fragment>
48
- <label class="block text-primary">
49
- <div class="pb-1 text-sm text-secondary">Component ID</div>
50
- <div class="flex w-full">
51
- <input
52
- type="text"
53
- bind:value
54
- class="!w-auto grow"
55
- on:click|stopPropagation={() => {}}
56
- on:keydown|stopPropagation
57
- on:keypress|stopPropagation={({ key }) => {
58
- if (key === 'Enter') {
59
- save()
60
- close(null)
61
- }
62
- }}
63
- />
64
- <Button
65
- size="xs"
66
- color="blue"
67
- buttonType="button"
68
- btnClasses="!p-1 !w-[34px] !ml-1"
69
- aria-label="Save ID"
70
- disabled={error != ''}
71
- on:click={() => {
72
- save()
73
- close(null)
74
- }}
75
- >
76
- <ArrowRight size={18} />
77
- </Button>
78
- </div>
79
- {#if error != ''}
80
- <div
81
- transition:slide|local={{ duration: 100 }}
82
- class="w-full text-sm text-red-600 whitespace-pre-wrap pt-1"
83
- >
84
- {error}
85
- </div>
86
- {/if}
87
- </label>
25
+ <IdEditorInput
26
+ initialId={id}
27
+ on:close={() => close(null)}
28
+ on:save={(e) => {
29
+ dispatch('save', e.detail)
30
+ close(null)
31
+ }}
32
+ {reservedIds}
33
+ />
88
34
  </Popup>
@@ -4,8 +4,7 @@ declare const __propDef: {
4
4
  id: string;
5
5
  };
6
6
  events: {
7
- keydown: KeyboardEvent;
8
- change: CustomEvent<any>;
7
+ save: CustomEvent<any>;
9
8
  } & {
10
9
  [evt: string]: CustomEvent<any>;
11
10
  };
@@ -374,7 +374,6 @@ function transformToFrontend() {
374
374
  <DecisionTreeGraphEditor
375
375
  bind:nodes={componentSettings.item.data.nodes}
376
376
  bind:component={componentSettings.item.data}
377
- rebuildOnChange={componentSettings.item.data.nodes}
378
377
  />
379
378
  {:else if componentSettings.item.data.type === 'verticalsplitpanescomponent' || componentSettings.item.data.type === 'horizontalsplitpanescomponent'}
380
379
  <GridPane
@@ -12,7 +12,6 @@ import { debounce } from '../../../../utils';
12
12
  import Badge from '../../../common/badge/Badge.svelte';
13
13
  export let component;
14
14
  export let nodes;
15
- export let rebuildOnChange = undefined;
16
15
  let drawer = undefined;
17
16
  let paneWidth = 0;
18
17
  let paneHeight = 0;
@@ -4,7 +4,6 @@ declare const __propDef: {
4
4
  props: {
5
5
  component: AppComponent;
6
6
  nodes: DecisionTreeNode[];
7
- rebuildOnChange?: any;
8
7
  };
9
8
  events: {
10
9
  [evt: string]: CustomEvent<any>;
@@ -24,7 +24,7 @@ $: selected = $selectedNodeId === data.node.id;
24
24
  style="width: 275px; height: 34px; background-color: {getStateColor(
25
25
  undefined,
26
26
  darkMode,
27
- '#fff'
27
+ true
28
28
  )};"
29
29
  on:click={() => {
30
30
  selected = true
@@ -14,7 +14,7 @@ export let canAddNode = true;
14
14
  dispatch('node')
15
15
  }}
16
16
  type="button"
17
- class="text-primary bg-surface border-[1px] mx-[1px] border-gray-300 dark:border-gray-500 focus:outline-none hover:bg-surface-hover focus:ring-4 focus:ring-surface-selected font-medium rounded-full text-sm w-[25px] h-[25px] flex items-center justify-center"
17
+ class="text-primary bg-surface outline-[1px] outline dark:outline-gray-500 outline-gray-300 focus:outline-none hover:bg-surface-hover focus:ring-4 focus:ring-surface-selected font-medium rounded-full text-sm w-[25px] h-[25px] flex items-center justify-center"
18
18
  >
19
19
  <Cross class="mx-[5px]" size={15} />
20
20
  </button>
@@ -25,7 +25,7 @@ export let canAddNode = true;
25
25
  type="button"
26
26
  on:click={() => dispatch('addBranch')}
27
27
  class={twMerge(
28
- 'text-primary bg-surface border-[1px] mx-[1px] border-gray-300 dark:border-gray-500 focus:outline-none hover:bg-surface-hover focus:ring-4 focus:ring-surface-selected font-medium rounded-full text-sm w-[25px] h-[25px] flex items-center justify-center',
28
+ 'text-secondary bg-surface outline-[1px] outline dark:outline-gray-500 outline-gray-300 focus:outline-none hover:bg-surface-hover focus:ring-4 focus:ring-surface-selected font-medium rounded-full text-sm w-[25px] h-[25px] flex items-center justify-center',
29
29
  !canAddNode && 'ml-16 mb-2'
30
30
  )}
31
31
  >
@@ -78,6 +78,7 @@ export let shouldUsePortal = true;
78
78
  hover:bg-gray-100 focus:bg-gray-100 rounded duration-200 dark:hover:bg-frost-900 dark:focus:bg-frost-900
79
79
  {label === value ? 'text-blue-600 bg-blue-50 pointer-events-none' : ''}"
80
80
  >
81
+ <!-- svelte-ignore a11y-missing-attribute -->
81
82
  <img
82
83
  class="dark:invert"
83
84
  loading="lazy"
@@ -582,6 +582,7 @@
582
582
 
583
583
  <svelte:window on:click={handleClickOutside} on:keydown={handleKeyDown} />
584
584
 
585
+ <!-- svelte-ignore a11y-no-static-element-interactions -->
585
586
  <div
586
587
  class={twMerge('svelte-select', containerClasses)}
587
588
  class:disabled
@@ -1,39 +1,44 @@
1
1
  import { useWorkerFactory } from 'monaco-editor-wrapper/workerFactory';
2
- import cssWorker from 'monaco-editor-wrapper/workers/module/css?worker';
3
- import htmlWorker from 'monaco-editor-wrapper/workers/module/html?worker';
4
- import tsWorker from 'monaco-editor-wrapper/workers/module/ts?worker';
5
- import jsonWorker from 'monaco-editor-wrapper/workers/module/json?worker';
6
- import editorWorker from 'monaco-editor-wrapper/workers/module/editor?worker';
2
+ import tsWorker from 'monaco-editor-wrapper/workers/module/ts?url';
3
+ import cssWorker from 'monaco-editor-wrapper/workers/module/css?url';
4
+ import htmlWorker from 'monaco-editor-wrapper/workers/module/html?url';
5
+ import jsonWorker from 'monaco-editor-wrapper/workers/module/json?url';
6
+ import editorWorker from 'monaco-editor-wrapper/workers/module/editor?url';
7
7
  export function buildWorkerDefinition(workerPath, basePath, ...args) {
8
8
  useWorkerFactory({
9
9
  ignoreMapping: true,
10
10
  workerLoaders: {
11
11
  editorWorkerService: () => {
12
- console.log('editorWorkerService');
13
- return new editorWorker();
12
+ return new Worker(new URL(editorWorker, import.meta.url), {
13
+ type: 'module'
14
+ });
14
15
  },
15
16
  javascript: () => {
16
- console.log('javascript');
17
- return new tsWorker();
17
+ return new Worker(new URL(tsWorker, import.meta.url), {
18
+ type: 'module'
19
+ });
18
20
  },
19
21
  typescript: () => {
20
- console.log('typescript');
21
- return new tsWorker();
22
+ return new Worker(new URL(tsWorker, import.meta.url), {
23
+ type: 'module'
24
+ });
22
25
  },
23
26
  json: () => {
24
- console.log('json');
25
- return new jsonWorker();
27
+ return new Worker(new URL(jsonWorker, import.meta.url), {
28
+ type: 'module'
29
+ });
26
30
  },
27
31
  html: () => {
28
- console.log('html');
29
- return new htmlWorker();
32
+ return new Worker(new URL(htmlWorker, import.meta.url), {
33
+ type: 'module'
34
+ });
30
35
  },
31
36
  css: () => {
32
- console.log('html');
33
- return new cssWorker();
37
+ return new Worker(new URL(cssWorker, import.meta.url), {
38
+ type: 'module'
39
+ });
34
40
  },
35
41
  graphql: () => {
36
- console.log('graphql');
37
42
  const workerFilename = `graphql.worker.bundle.js`;
38
43
  const workerPathLocal = `${workerPath}/${workerFilename}`;
39
44
  const workerUrl = new URL(workerPathLocal, basePath);
@@ -106,6 +106,7 @@ function getColorClass(color, variant) {
106
106
  }
107
107
  $: buttonClass = twMerge('w-full', getColorClass(color, variant), variant === 'border' ? 'border' : '', ButtonType.FontSizeClasses[size], ButtonType.SpacingClasses[spacingSize][variant], 'focus-visible:ring-2 font-semibold', dropdownItems && dropdownItems.length > 0 ? 'rounded-l-md h-full' : 'rounded-md', 'justify-center items-center text-center whitespace-nowrap inline-flex gap-2', btnClasses, 'active:opacity-80 transition-all', disabled ? '!bg-surface-disabled !text-tertiary cursor-not-allowed' : '', loading ? 'cursor-wait' : '');
108
108
  const iconMap = {
109
+ xs3: 12,
109
110
  xs2: 14,
110
111
  xs: 14,
111
112
  sm: 16,
@@ -114,6 +115,7 @@ const iconMap = {
114
115
  xl: 18
115
116
  };
116
117
  const iconOnlyPadding = {
118
+ xs3: 'm-[0.5px] qhd:m-[1px]',
117
119
  xs2: 'm-[1px] qhd:m-[1.125px]',
118
120
  xs: 'm-[1px] qhd:m-[1.125px]',
119
121
  sm: 'm-[2px] qhd:m-[2.25px]',
@@ -121,12 +123,9 @@ const iconOnlyPadding = {
121
123
  lg: 'm-[5px] qhd:m-[5.625px]',
122
124
  xl: 'm-[5px] qhd:m-[5.625px]'
123
125
  };
124
- let innerWidth = 0;
125
- $: lucideIconSize = (iconMap[size] ?? 12) * (innerWidth > 2500 ? 1.125 : 1);
126
+ $: lucideIconSize = (iconMap[size] ?? 12) * 1;
126
127
  </script>
127
128
 
128
- <svelte:window bind:innerWidth />
129
-
130
129
  <div
131
130
  class="{dropdownItems && dropdownItems.length > 0 && variant === 'contained'
132
131
  ? colorVariants[color].divider
@@ -1,6 +1,6 @@
1
1
  export declare const BUTTON_COLORS: readonly ["blue", "red", "dark", "light", "green", "gray", "none"];
2
2
  export declare namespace ButtonType {
3
- type Size = 'xs2' | 'xs' | 'sm' | 'md' | 'lg' | 'xl';
3
+ type Size = 'xs3' | 'xs2' | 'xs' | 'sm' | 'md' | 'lg' | 'xl';
4
4
  type Color = string;
5
5
  type Variant = 'contained' | 'border' | 'divider';
6
6
  type Target = '_self' | '_blank';
@@ -2,6 +2,7 @@ export const BUTTON_COLORS = ['blue', 'red', 'dark', 'light', 'green', 'gray', '
2
2
  export var ButtonType;
3
3
  (function (ButtonType) {
4
4
  ButtonType.FontSizeClasses = {
5
+ xs3: 'text-2xs',
5
6
  xs2: 'text-xs',
6
7
  xs: 'text-xs',
7
8
  sm: 'text-sm',
@@ -10,6 +11,11 @@ export var ButtonType;
10
11
  xl: 'text-xl'
11
12
  };
12
13
  ButtonType.SpacingClasses = {
14
+ xs3: {
15
+ border: 'px-0.5 py-[1px] !rounded-xs',
16
+ contained: 'px-0.5 py-[1px]',
17
+ divider: ''
18
+ },
13
19
  xs2: {
14
20
  border: 'px-2 py-[4px]',
15
21
  contained: 'px-2 py-[4px]',
@@ -21,6 +21,7 @@ $: if (value === undefined)
21
21
  value = '';
22
22
  </script>
23
23
 
24
+ <!-- svelte-ignore a11y-no-static-element-interactions -->
24
25
  <div
25
26
  class="relative grow {wrapperClass}"
26
27
  on:mouseenter={() => (isHovered = true)}
@@ -1,4 +1,5 @@
1
1
  <!-- svelte-ignore a11y-click-events-have-key-events -->
2
+ <!-- svelte-ignore a11y-no-static-element-interactions -->
2
3
  <div on:click class="py-1">
3
4
  <span
4
5
  class="text-secondary block px-4 py-2 text-sm hover:bg-surface-hover hover:text-primary"
@@ -53,6 +53,7 @@ export function open() {
53
53
  </div>
54
54
 
55
55
  <!-- svelte-ignore a11y-click-events-have-key-events -->
56
+ <!-- svelte-ignore a11y-no-static-element-interactions -->
56
57
  <div class="relative bg-surface rounded-md" on:click|stopPropagation={() => {}}>
57
58
  <div
58
59
  class={twMerge(
@@ -50,6 +50,7 @@ function getStepColor(index, selectedIndex, statusByStep, maxReachedIndex) {
50
50
  <ol class="relative z-20 flex justify-between items-centers text-sm font-medium text-tertiary">
51
51
  {#each tabs ?? [] as step, index}
52
52
  <!-- svelte-ignore a11y-click-events-have-key-events -->
53
+ <!-- svelte-ignore a11y-no-noninteractive-element-interactions -->
53
54
  <li
54
55
  class={classNames(
55
56
  'flex items-center gap-2 px-2 py-1 hover:bg-gray-1200 rounded-md m-0.5',
@@ -15,7 +15,7 @@ import { twMerge } from 'tailwind-merge';
15
15
  let loading = false;
16
16
  export let pickableProperties = undefined;
17
17
  export let argNames = [];
18
- export let schema;
18
+ export let schema = undefined;
19
19
  const { flowStore, selectedId } = getContext('FlowEditorContext');
20
20
  const { exprsToSet, stepInputsLoading, generatedExprs } = getContext('FlowCopilotContext') || {};
21
21
  let generatedContent = '';
@@ -104,7 +104,7 @@ function createFlowInputs() {
104
104
  const properties = {
105
105
  ...$flowStore.schema?.properties,
106
106
  ...newFlowInputs.reduce((acc, x) => {
107
- acc[x] = (schema.properties ?? {})[x];
107
+ acc[x] = (schema?.properties ?? {})[x];
108
108
  return acc;
109
109
  }, {})
110
110
  };
@@ -5,7 +5,9 @@ declare const __propDef: {
5
5
  props: {
6
6
  pickableProperties?: PickableProperties | undefined;
7
7
  argNames?: string[] | undefined;
8
- schema: Schema;
8
+ schema?: Schema | {
9
+ properties?: Record<string, any>;
10
+ } | undefined;
9
11
  };
10
12
  events: {
11
13
  [evt: string]: CustomEvent<any>;
@@ -6,8 +6,8 @@ import { buildClientSchema, printSchema } from 'graphql';
6
6
  export const SUPPORTED_LANGUAGES = new Set(Object.keys(GEN_CONFIG.prompts));
7
7
  const openaiConfig = {
8
8
  temperature: 0,
9
- max_tokens: 4096,
10
- model: 'gpt-4o-2024-05-13',
9
+ max_tokens: 16384,
10
+ model: 'gpt-4o-2024-08-06',
11
11
  seed: 42,
12
12
  stream: true,
13
13
  messages: []
@@ -42,6 +42,7 @@ prompts:
42
42
  {resourceTypes}
43
43
  </resourceTypes>
44
44
  Only define the type for resources that are actually needed to achieve the function purpose. If the type name conflicts with the imported object, rename the imported object NOT THE TYPE.
45
+ Naming conventions are guidelines, but follow the user's naming choices in the existing code.
45
46
  </contextual_information>
46
47
  My instructions: {description}
47
48
  go:
@@ -148,6 +149,7 @@ prompts:
148
149
  {resourceTypes}
149
150
  </resourceTypes>
150
151
  Only define the type for resources that are actually needed to achieve the function purpose. The resource type name has to be exactly as specified. If the type name conflicts with the imported object, rename the imported object NOT THE TYPE.
152
+ Naming conventions are guidelines, but follow the user's naming choices in the existing code.
151
153
  </contextual_information>
152
154
  My instructions: {description}
153
155
  bun:
@@ -165,6 +167,7 @@ prompts:
165
167
  {resourceTypes}
166
168
  </resourceTypes>
167
169
  Only define the type for resources that are actually needed to achieve the function purpose. The resource type name has to be exactly as specified. If the type name conflicts with the imported object, rename the imported object NOT THE TYPE.
170
+ Naming conventions are guidelines, but follow the user's naming choices in the existing code.
168
171
  </contextual_information>
169
172
  My instructions: {description}
170
173
  php: