@oomol-lab/open-flow 0.1.0-beta.75 → 0.1.0-beta.76

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 (125) hide show
  1. package/README.md +2 -1
  2. package/dist/browser/{ContentIcon-FCpKiwjp.js → ContentIcon-Cm1hbVzW.js} +2 -2
  3. package/dist/browser/{FlowCanvas-dzRBnlUT.js → FlowCanvas-NzKtla_c.js} +62 -62
  4. package/dist/browser/{createResourceDialog-BeYDdUl-.js → createResourceDialog-BgdedQqu.js} +3 -3
  5. package/dist/browser/{dialog-ZtpsFbl4.js → dialog-aSElFFw2.js} +49 -24
  6. package/dist/browser/{exportSvg-DqXw1yf-.js → exportSvg-Dcz4HTo_.js} +2 -2
  7. package/dist/browser/{flowChanges-b_5UobFj.js → flowChanges-NZyS7HSp.js} +207 -396
  8. package/dist/browser/{flowWorkspace-ItojZbO4.js → flowWorkspace-Bl0SDehy.js} +90 -13
  9. package/dist/browser/preview.css +515 -649
  10. package/dist/browser/preview.js +454 -545
  11. package/dist/browser/theme.css +114 -262
  12. package/dist/browser/{tooltip-wZJRB9oP.js → tooltip-3XMK9jkr.js} +1 -1
  13. package/dist/browser/{typeScriptSession-CSRwWmZm.js → typeScriptSession-C9sBGOKZ.js} +1 -1
  14. package/dist/browser/ui.css +354 -460
  15. package/dist/browser/ui.js +1 -1
  16. package/dist/browser/workbench.css +515 -649
  17. package/dist/browser/workbench.js +7 -7
  18. package/dist/browser/{workbenchSelect-M441Lz0d.js → workbenchSelect-DBGP7Y4Z.js} +2 -2
  19. package/dist/command/index.js +33 -35
  20. package/dist/common/authoring.d.ts +3 -3
  21. package/dist/common/authoringSchema.d.ts +3 -0
  22. package/dist/common/connector-proxy.d.ts +1 -1
  23. package/dist/common/control-api-conformance.js +197 -136
  24. package/dist/common/control-api.d.ts +3 -2
  25. package/dist/common/control-api.js +192 -131
  26. package/dist/common/control-requests.js +126 -24
  27. package/dist/common/cron-trigger.d.ts +2 -1
  28. package/dist/common/decision.d.ts +4 -4
  29. package/dist/common/decision.js +5 -2
  30. package/dist/common/engine-contract.d.ts +5 -1
  31. package/dist/common/event-source-definition.d.ts +1 -1
  32. package/dist/common/event-source-view.d.ts +22 -0
  33. package/dist/common/event-source.d.ts +1 -1
  34. package/dist/common/event-source.js +24 -65
  35. package/dist/common/event-sources.d.ts +0 -21
  36. package/dist/common/flow-authoring.js +40 -18
  37. package/dist/common/flow-change-schema.d.ts +9 -1
  38. package/dist/common/flow-change.d.ts +7 -201
  39. package/dist/common/flow-change.js +46 -22
  40. package/dist/common/flow-encoding.js +40 -20
  41. package/dist/common/flow-input-value.d.ts +1 -1
  42. package/dist/common/flow-model.d.ts +121 -0
  43. package/dist/common/flow-notifications.d.ts +1 -1
  44. package/dist/common/flow-retry.d.ts +2 -4
  45. package/dist/common/flow-semantics.js +83 -86
  46. package/dist/common/flow-workflowReferences.d.ts +8 -0
  47. package/dist/common/flowInspection.d.ts +1 -1
  48. package/dist/common/http-hosts.d.ts +6 -0
  49. package/dist/common/http-request.d.ts +13 -5
  50. package/dist/common/http-request.js +23 -5
  51. package/dist/common/integration-trigger.d.ts +2 -1
  52. package/dist/common/mcp.js +195 -134
  53. package/dist/common/openapi.d.ts +4 -4
  54. package/dist/common/openapi.js +4 -1
  55. package/dist/common/poll-trigger.d.ts +2 -1
  56. package/dist/common/runtime-contract.d.ts +23 -1
  57. package/dist/common/runtime-contract.js +604 -72
  58. package/dist/common/runtime-nodejs-compat.d.ts +44 -0
  59. package/dist/common/runtime-nodejs-compat.js +5870 -0
  60. package/dist/common/scheduler-checkpoint.d.ts +1 -1
  61. package/dist/common/scheduler-node-execution.d.ts +1 -1
  62. package/dist/common/scheduler.d.ts +1 -1
  63. package/dist/common/scheduler.js +25 -4
  64. package/dist/common/trigger-catalog.d.ts +1 -7
  65. package/dist/common/trigger-config-options.d.ts +1 -1
  66. package/dist/common/trigger-config.d.ts +1 -1
  67. package/dist/common/trigger-contract.d.ts +2 -1
  68. package/dist/common/trigger-localization.d.ts +8 -2
  69. package/dist/common/trigger-model.d.ts +101 -0
  70. package/dist/common/webhook-response.d.ts +1 -1
  71. package/dist/common/webhook-trigger.d.ts +3 -1
  72. package/dist/common/workflow.d.ts +3 -12
  73. package/dist/common/workflow.js +25 -23
  74. package/dist/index.d.ts +41 -14
  75. package/package.json +5 -1
  76. package/src/base/common/json.ts +1 -1
  77. package/src/connector/common/proxy.ts +1 -1
  78. package/src/control/common/api.ts +6 -5
  79. package/src/control/common/authoringSchema.ts +9 -2
  80. package/src/control/common/authoringTools.ts +1 -1
  81. package/src/control/common/conformance.ts +1 -1
  82. package/src/control/common/connectorDecoders.ts +1 -1
  83. package/src/control/common/eventSources.ts +2 -29
  84. package/src/control/common/triggerCatalog.ts +1 -8
  85. package/src/decision/common/decision.ts +15 -7
  86. package/src/event-source/common/definition.ts +1 -1
  87. package/src/event-source/common/index.ts +1 -1
  88. package/src/event-source/common/view.ts +20 -0
  89. package/src/execution/common/checkpoint.ts +1 -1
  90. package/src/execution/common/node-execution.ts +1 -1
  91. package/src/execution/common/scheduler.ts +1 -1
  92. package/src/flow/common/change.ts +58 -192
  93. package/src/flow/common/changeSchema.ts +29 -4
  94. package/src/flow/common/connectionUsage.ts +1 -1
  95. package/src/flow/common/inputValue.ts +1 -1
  96. package/src/flow/common/model.ts +130 -0
  97. package/src/flow/common/modules.ts +1 -1
  98. package/src/flow/common/portChanges.ts +1 -1
  99. package/src/flow/common/retry.ts +2 -4
  100. package/src/flow/common/semantics.ts +11 -4
  101. package/src/flow/common/webhookResponse.ts +1 -1
  102. package/src/flow/common/workflowReferences.ts +31 -0
  103. package/src/http/common/authBindings.ts +6 -9
  104. package/src/http/common/hosts.ts +13 -0
  105. package/src/http/common/httpRequest.ts +30 -15
  106. package/src/openapi/common/openapi.ts +9 -5
  107. package/src/{execution → runtime}/common/engineContract.ts +20 -15
  108. package/src/runtime/common/nodejsCompat.ts +275 -0
  109. package/src/runtime/common/nodejsGuest.generated.json +47 -0
  110. package/src/runtime/common/runtime.ts +1138 -0
  111. package/src/trigger/common/config.ts +1 -1
  112. package/src/trigger/common/configOptions.ts +1 -1
  113. package/src/trigger/common/contract.ts +2 -1
  114. package/src/trigger/common/cron.ts +2 -1
  115. package/src/trigger/common/integration.ts +2 -1
  116. package/src/trigger/common/model.ts +87 -0
  117. package/src/trigger/common/poll.ts +2 -1
  118. package/src/trigger/common/webhook.ts +3 -1
  119. package/src/trigger/providers/fieldDescriptions.ts +1 -1
  120. package/src/trigger/providers/localization.ts +9 -2
  121. package/src/trigger/providers/remote.ts +1 -1
  122. package/src/types/index.ts +44 -15
  123. package/src/workflow/common/workflow.ts +3 -44
  124. package/src/execution/common/runtime.ts +0 -563
  125. /package/src/{control → connector}/common/providerIconSprite.ts +0 -0
@@ -3,83 +3,70 @@
3
3
  --ui-font-size: 13px;
4
4
  }
5
5
 
6
+ /* Public --open-flow-* inputs inherit from the host; defaults resolve at each theme root. */
6
7
  .open-flow-theme {
7
- color-scheme: light;
8
- --open-flow-background: #fdfdfd;
9
- --open-flow-foreground: #242424;
10
- --open-flow-card: #ffffff;
11
- --open-flow-node-surface: #f6f6f6;
12
- --open-flow-node-content: #ffffff;
13
- --open-flow-node-running-beam: oklch(72.3% 0.219 149.579);
14
- --open-flow-comment-surface: #f3eddc;
15
- --open-flow-comment-content: color-mix(in srgb, var(--open-flow-comment-surface) 55%, var(--open-flow-node-content));
16
- --open-flow-comment-border: #e3d8ba;
17
- --open-flow-card-foreground: #242424;
18
- --open-flow-popover: #ffffff;
19
- --open-flow-popover-foreground: #242424;
20
- --open-flow-primary: #242424;
21
- --open-flow-primary-foreground: #fafafa;
22
- --open-flow-secondary: #eeeeee;
23
- --open-flow-secondary-foreground: #242424;
24
- --open-flow-muted: #f6f6f6;
25
- --open-flow-muted-foreground: #6b6b6b;
26
- --open-flow-accent: #e7e7e7;
27
- --open-flow-accent-foreground: #242424;
28
- --open-flow-destructive: #dc2626;
29
- --open-flow-border: #dedede;
30
- --open-flow-input: #d2d2d2;
31
- --open-flow-ring: #777777;
32
- --open-flow-radius: 10px;
8
+ --_open-flow-theme: light;
9
+ color-scheme: var(--_open-flow-theme);
10
+ --_open-flow-background: var(--open-flow-background, light-dark(#fdfdfd, #1c1c1c));
11
+ --_open-flow-foreground: var(--open-flow-foreground, light-dark(#242424, #eeeeee));
12
+ --_open-flow-card: var(--open-flow-card, light-dark(#fefefe, #242424));
13
+ --_open-flow-node-surface: var(--open-flow-node-surface, light-dark(#f6f6f6, #2b2b2b));
14
+ --_open-flow-node-content: var(--open-flow-node-content, light-dark(#ffffff, #242424));
15
+ --_open-flow-node-running-beam: var(--open-flow-node-running-beam, oklch(72.3% 0.219 149.579));
16
+ --_open-flow-comment-surface: var(--open-flow-comment-surface, light-dark(#f3eddc, #403727));
17
+ --_open-flow-comment-content: var(
18
+ --open-flow-comment-content,
19
+ light-dark(color-mix(in srgb, var(--_open-flow-comment-surface) 55%, var(--_open-flow-node-content)), #2b261d)
20
+ );
21
+ --_open-flow-comment-border: var(--open-flow-comment-border, light-dark(#e3d8ba, #5c4e36));
22
+ --_open-flow-card-foreground: var(--open-flow-card-foreground, light-dark(#242424, #eeeeee));
23
+ --_open-flow-popover: var(--open-flow-popover, light-dark(#fefefe, #2b2b2b));
24
+ --_open-flow-popover-foreground: var(--open-flow-popover-foreground, light-dark(#242424, #eeeeee));
25
+ --_open-flow-primary: var(--open-flow-primary, light-dark(#242424, #eeeeee));
26
+ --_open-flow-primary-foreground: var(--open-flow-primary-foreground, light-dark(#fafafa, #242424));
27
+ --_open-flow-secondary: var(--open-flow-secondary, light-dark(#eeeeee, #2b2b2b));
28
+ --_open-flow-secondary-foreground: var(--open-flow-secondary-foreground, light-dark(#242424, #eeeeee));
29
+ --_open-flow-muted: var(--open-flow-muted, light-dark(#f6f6f6, #242424));
30
+ --_open-flow-muted-foreground: var(--open-flow-muted-foreground, light-dark(#6b6b6b, #ababab));
31
+ --_open-flow-accent: var(--open-flow-accent, light-dark(#e7e7e7, #303030));
32
+ --_open-flow-accent-foreground: var(--open-flow-accent-foreground, light-dark(#242424, #eeeeee));
33
+ --_open-flow-destructive: var(--open-flow-destructive, light-dark(#dc2626, #f87171));
34
+ --_open-flow-border: var(--open-flow-border, light-dark(#dedede, #3c3c3c));
35
+ --_open-flow-input: var(--open-flow-input, light-dark(#d2d2d2, #484848));
36
+ --_open-flow-ring: var(--open-flow-ring, light-dark(#777777, #b4b4b4));
37
+ --_open-flow-radius: var(--open-flow-radius, 10px);
38
+ }
39
+
40
+ .open-flow-theme[data-theme='dark'] {
41
+ --_open-flow-theme: dark;
42
+ }
43
+
44
+ /* Product roles are shared by theme roots and explicit canvas control scopes. */
45
+ .open-flow-theme,
46
+ .open-flow-canvas-root :is(.react-flow__controls, [data-canvas-control-scope]) {
33
47
  --ui-code-gutter-background: light-dark(#fff, #333338);
34
48
  --ui-code-gutter-border: light-dark(#ddd, #333338);
35
- --ui-background: var(--open-flow-background);
36
- --ui-foreground: var(--open-flow-foreground);
37
- --ui-card: var(--open-flow-card);
38
- --ui-card-foreground: var(--open-flow-card-foreground);
39
- --ui-popover: var(--open-flow-popover);
40
- --ui-popover-foreground: var(--open-flow-popover-foreground);
41
- --ui-primary: var(--open-flow-primary);
42
- --ui-primary-foreground: var(--open-flow-primary-foreground);
43
- --ui-secondary: var(--open-flow-secondary);
44
- --ui-secondary-foreground: var(--open-flow-secondary-foreground);
45
- --ui-muted: var(--open-flow-muted);
46
- --ui-muted-foreground: var(--open-flow-muted-foreground);
47
- --ui-accent: var(--open-flow-accent);
48
- --ui-accent-foreground: var(--open-flow-accent-foreground);
49
- --ui-destructive: var(--open-flow-destructive);
49
+ --ui-background: var(--_open-flow-background);
50
+ --ui-foreground: var(--_open-flow-foreground);
51
+ --ui-card: var(--_open-flow-card);
52
+ --ui-card-foreground: var(--_open-flow-card-foreground);
53
+ --ui-popover: var(--_open-flow-popover);
54
+ --ui-popover-foreground: var(--_open-flow-popover-foreground);
55
+ --ui-primary: var(--_open-flow-primary);
56
+ --ui-primary-foreground: var(--_open-flow-primary-foreground);
57
+ --ui-secondary: var(--_open-flow-secondary);
58
+ --ui-secondary-foreground: var(--_open-flow-secondary-foreground);
59
+ --ui-muted: var(--_open-flow-muted);
60
+ --ui-muted-foreground: var(--_open-flow-muted-foreground);
61
+ --ui-accent: var(--_open-flow-accent);
62
+ --ui-accent-foreground: var(--_open-flow-accent-foreground);
63
+ --ui-destructive: var(--_open-flow-destructive);
50
64
  --ui-danger-control-background-default: color-mix(in srgb, var(--ui-destructive) 3%, var(--ui-control-background, var(--ui-background)));
51
65
  --ui-danger-control-background-hover: color-mix(in srgb, var(--ui-destructive) 8%, var(--ui-control-background, var(--ui-background)));
52
- --ui-border: var(--open-flow-border);
53
- --ui-input: var(--open-flow-input);
54
- --ui-ring: var(--open-flow-ring);
55
- --ui-radius: var(--open-flow-radius);
56
- }
57
-
58
- .open-flow-theme[data-theme='dark'] {
59
- color-scheme: dark;
60
- --open-flow-background: #1c1c1c;
61
- --open-flow-foreground: #eeeeee;
62
- --open-flow-card: #242424;
63
- --open-flow-node-surface: #2b2b2b;
64
- --open-flow-node-content: #242424;
65
- --open-flow-comment-surface: #403727;
66
- --open-flow-comment-content: #2b261d;
67
- --open-flow-comment-border: #5c4e36;
68
- --open-flow-card-foreground: #eeeeee;
69
- --open-flow-popover: #2b2b2b;
70
- --open-flow-popover-foreground: #eeeeee;
71
- --open-flow-primary: #eeeeee;
72
- --open-flow-primary-foreground: #242424;
73
- --open-flow-secondary: #2b2b2b;
74
- --open-flow-secondary-foreground: #eeeeee;
75
- --open-flow-muted: #242424;
76
- --open-flow-muted-foreground: #ababab;
77
- --open-flow-accent: #303030;
78
- --open-flow-accent-foreground: #eeeeee;
79
- --open-flow-destructive: #f87171;
80
- --open-flow-border: #3c3c3c;
81
- --open-flow-input: #484848;
82
- --open-flow-ring: #b4b4b4;
66
+ --ui-border: var(--_open-flow-border);
67
+ --ui-input: var(--_open-flow-input);
68
+ --ui-ring: var(--_open-flow-ring);
69
+ --ui-radius: var(--_open-flow-radius);
83
70
  }
84
71
 
85
72
  .open-flow-workbench .resource-browser {
@@ -100,11 +87,11 @@
100
87
  --ui-disabled-opacity: 1;
101
88
  --ui-disabled-cursor: default;
102
89
  --ui-disabled-background: var(--ui-control-background);
103
- --ui-input: color-mix(in srgb, var(--ui-border) 70%, var(--open-flow-node-content));
104
- --ui-card: var(--open-flow-node-surface);
105
- --ui-background: var(--open-flow-node-surface);
106
- --ui-control-background: var(--open-flow-node-content);
107
- --ui-control-hover-background: color-mix(in srgb, var(--open-flow-secondary) 25%, var(--ui-control-background));
90
+ --ui-input: color-mix(in srgb, var(--ui-border) 70%, var(--_open-flow-node-content));
91
+ --ui-card: var(--_open-flow-node-surface);
92
+ --ui-background: var(--_open-flow-node-surface);
93
+ --ui-control-background: var(--_open-flow-node-content);
94
+ --ui-control-hover-background: color-mix(in srgb, var(--_open-flow-secondary) 25%, var(--ui-control-background));
108
95
  --ui-readonly-focus-outline: 1px solid color-mix(in srgb, var(--ui-ring) 40%, var(--ui-input));
109
96
 
110
97
  :is(input, textarea):is([readonly], :disabled)::placeholder {
@@ -117,8 +104,8 @@
117
104
  }
118
105
  }
119
106
 
120
- /* Canvas surfaces preserve the approved node and floating-control palette.
121
- Theme values are owned here; components select a surface and data-theme. */
107
+ /* Canvas content keeps its compact geometry and semantic colors. Optional host inputs
108
+ customize its neutral palette without changing the default canvas appearance. */
122
109
  .open-flow-theme[data-surface='canvas'] {
123
110
  --nearly-transparent: #00000001;
124
111
  --white: #ffffff;
@@ -204,62 +191,58 @@
204
191
  --warning: #faad14;
205
192
  --error: #ff4d4f;
206
193
 
207
- color-scheme: light;
208
-
209
- --fill-1: #ffffff;
210
- --fill-2: #fafafa;
211
- --fill-3: #f6f6f6;
212
- --fill-4: #eeeeee;
213
- --fill-5: #e7e7e7;
214
- --fill-6: #e3e3e3;
215
- --fill-7: #dedede;
216
- --border-1: #dedede;
217
- --border-2: #d2d2d2;
218
- --text-1: #858585;
219
- --text-2: #6b6b6b;
220
- --text-3: #6b6b6b;
221
- --text-4: #242424;
222
- --text-5: #242424;
223
-
224
- --accent-soft: #ededed;
225
- --accent-soft-hover: #e3e3e3;
226
- --accent-foreground: #333333;
194
+ --fill-1: var(--open-flow-card, light-dark(#ffffff, #242424));
195
+ --fill-2: var(--open-flow-background, light-dark(#fafafa, #1c1c1c));
196
+ --fill-3: var(--open-flow-node-surface, light-dark(#f6f6f6, #2b2b2b));
197
+ --fill-4: var(--open-flow-secondary, light-dark(#eeeeee, #303030));
198
+ --fill-5: var(--open-flow-accent, light-dark(#e7e7e7, #363636));
199
+ --fill-6: var(--open-flow-border, light-dark(#e3e3e3, #3c3c3c));
200
+ --fill-7: var(--open-flow-input, light-dark(#dedede, #484848));
201
+ --border-1: var(--open-flow-border, light-dark(#dedede, #3c3c3c));
202
+ --border-2: var(--open-flow-input, light-dark(#d2d2d2, #484848));
203
+ --text-1: var(--open-flow-muted-foreground, #858585);
204
+ --text-2: var(--open-flow-muted-foreground, light-dark(#6b6b6b, #ababab));
205
+ --text-3: var(--open-flow-muted-foreground, light-dark(#6b6b6b, #ababab));
206
+ --text-4: var(--open-flow-foreground, light-dark(#242424, #eeeeee));
207
+ --text-5: var(--open-flow-foreground, light-dark(#242424, #eeeeee));
208
+
209
+ --accent-soft: var(--open-flow-accent, light-dark(#ededed, #353535));
210
+ --accent-soft-hover: var(--open-flow-secondary, light-dark(#e3e3e3, #424242));
211
+ --accent-foreground: var(--open-flow-accent-foreground, light-dark(#333333, #e0e0e0));
227
212
  --trigger-icon-color: var(--accent-orange-2);
228
213
  --trigger-icon-fill: color-mix(in srgb, var(--trigger-icon-color) 16%, transparent);
229
- --canvas-lock-stripe: var(--open-flow-canvas-lock-stripe, rgb(100 100 100 / 5%));
230
- --canvas-grid: rgb(100 100 100 / 14%);
214
+ --canvas-lock-stripe: var(--open-flow-canvas-lock-stripe, light-dark(rgb(100 100 100 / 5%), rgb(180 180 180 / 5%)));
215
+ --canvas-grid: var(--open-flow-canvas-grid, light-dark(rgb(100 100 100 / 14%), rgb(180 180 180 / 13%)));
231
216
  --node-shadow: none;
232
- --node-selected-shadow: 0 0 0 2px rgb(70 70 70 / 12%), 0 2px 6px rgb(0 0 0 / 5%);
217
+ --node-selected-shadow: 0 0 0 2px color-mix(in srgb, var(--open-flow-ring, rgb(70 70 70)) 12%, transparent), 0 2px 6px rgb(0 0 0 / 5%);
233
218
  --node-error-selected-shadow: 0 0 0 2px rgb(204 62 68 / 14%), 0 2px 6px rgb(28 32 36 / 5%);
234
219
  --floating-control-shadow: 0 1px 3px rgb(28 32 36 / 4%);
235
220
 
236
- --background: var(--fill-1);
237
- --foreground: var(--text-5);
238
221
  --ui-background: var(--fill-1);
239
222
  --ui-foreground: var(--text-5);
240
- --ui-card: var(--widget-popup-background);
241
- --ui-card-foreground: var(--widget-font-color);
223
+ --ui-card: var(--open-flow-card, var(--widget-popup-background));
224
+ --ui-card-foreground: var(--open-flow-card-foreground, var(--widget-font-color));
242
225
  --ui-popover: var(--widget-popup-background);
243
- --ui-popover-foreground: var(--widget-font-color);
226
+ --ui-popover-foreground: var(--open-flow-popover-foreground, var(--widget-font-color));
244
227
  --ui-primary: var(--brand-highlight-color);
245
228
  --ui-primary-foreground: var(--widget-font-highlight-color);
246
229
  --ui-secondary: var(--fill-4);
247
- --ui-secondary-foreground: var(--text-4);
248
- --ui-muted: var(--fill-4);
230
+ --ui-secondary-foreground: var(--open-flow-secondary-foreground, var(--text-4));
231
+ --ui-muted: var(--open-flow-muted, var(--fill-4));
249
232
  --ui-muted-foreground: var(--text-2);
250
233
  --ui-accent: var(--fill-5);
251
- --ui-accent-foreground: var(--text-5);
252
- --ui-destructive: var(--accent-red-1);
253
- --ui-border: var(--border-2);
234
+ --ui-accent-foreground: var(--open-flow-accent-foreground, var(--text-5));
235
+ --ui-destructive: var(--open-flow-destructive, var(--accent-red-1));
236
+ --ui-border: var(--open-flow-border, var(--border-2));
254
237
  --ui-input: var(--border-2);
255
- --ui-ring: var(--open-flow-ring);
238
+ --ui-ring: var(--_open-flow-ring);
256
239
  --ui-radius: 6px;
257
240
 
258
- --brand-color: #3d3d3d;
259
- --brand-highlight-color: #505050;
241
+ --brand-color: var(--open-flow-primary, light-dark(#3d3d3d, #cccccc));
242
+ --brand-highlight-color: var(--open-flow-primary, light-dark(#505050, #b8b8b8));
260
243
  --brand-hover-color: color-mix(in srgb, var(--brand-highlight-color) 20%, transparent);
261
244
 
262
- --node-background-color: var(--open-flow-node-content);
245
+ --node-background-color: var(--_open-flow-node-content);
263
246
  --node-border-color: var(--border-1);
264
247
  --node-selected-border-color: var(--brand-highlight-color);
265
248
  --node-head-background-color: var(--fill-3);
@@ -272,7 +255,7 @@
272
255
  --widget-font-color: var(--text-4);
273
256
  --widget-font-readonly-color: var(--widget-font-color);
274
257
  --widget-font-placeholder-color: var(--text-2);
275
- --widget-font-highlight-color: var(--white);
258
+ --widget-font-highlight-color: var(--open-flow-primary-foreground, var(--white));
276
259
  --widget-font-disable-color: var(--text-2);
277
260
  --widget-font-error-color: var(--widget-font-color);
278
261
  --widget-secondary-font-color: var(--text-3);
@@ -284,22 +267,22 @@
284
267
  --widget-null-bg-color: #79c0ff33;
285
268
 
286
269
  --widget-border-color: var(--border-2);
287
- --widget-border-highlight-color: #a3a3a3;
270
+ --widget-border-highlight-color: var(--open-flow-ring, light-dark(#a3a3a3, #747474));
288
271
  --widget-background: var(--fill-4);
289
272
  --widget-background-highlight-color: var(--fill-5);
290
273
  --widget-background-mask-highlight-color: rgba(0, 0, 0, 0.1);
291
274
 
292
275
  --widget-input-background: var(--fill-3);
293
- --widget-input-selection-background-color: #d1d2f3;
276
+ --widget-input-selection-background-color: var(--open-flow-accent, light-dark(#d1d2f3, #2b4f77));
294
277
  --widget-switch-background-color: var(--fill-7);
295
278
  --widget-switch-border-color: transparent;
296
279
  --widget-label-background: var(--fill-4);
297
280
  --widget-active-background: var(--fill-6);
298
281
 
299
- --widget-selector-selected-focused-bg: var(--brand-1);
300
- --widget-selector-selected-bg: var(--brand-2);
282
+ --widget-selector-selected-focused-bg: var(--open-flow-accent, light-dark(var(--brand-1), var(--brand-9)));
283
+ --widget-selector-selected-bg: var(--open-flow-secondary, light-dark(var(--brand-2), var(--brand-8)));
301
284
 
302
- --widget-popup-background: var(--fill-1);
285
+ --widget-popup-background: var(--open-flow-popover, var(--fill-1));
303
286
  --widget-range-background: var(--brand-color);
304
287
 
305
288
  --widget-segmented-item-selected-bg: var(--fill-2);
@@ -335,7 +318,7 @@
335
318
  --edge-selected: var(--text-2);
336
319
  --edge-bin: #00d6b9;
337
320
  --edge-error: var(--seti-red);
338
- --flow-bg: var(--fill-4);
321
+ --flow-bg: var(--open-flow-canvas-background, light-dark(var(--fill-4), var(--fill-2)));
339
322
 
340
323
  --xy-controls-button-background-color: var(--ui-background);
341
324
  --xy-controls-button-background-color-hover: var(--ui-muted);
@@ -347,7 +330,7 @@
347
330
  --xy-minimap-mask-background-color: rgb(0 0 0 / 10%);
348
331
  --xy-minimap-node-background-color: var(--widget-background);
349
332
 
350
- --highlight-indicate-color: var(--brand-7);
333
+ --highlight-indicate-color: var(--open-flow-primary, light-dark(var(--brand-7), var(--brand-1)));
351
334
 
352
335
  --block-editor-item-background-color: var(--fill-3);
353
336
 
@@ -365,188 +348,57 @@
365
348
  --text-weaker: var(--border-2);
366
349
  --border-weak: var(--border-1);
367
350
 
368
- --bubble-bg: var(--brand-1);
369
- --bubble-border: var(--brand-4);
351
+ --bubble-bg: var(--open-flow-accent, light-dark(var(--brand-1), var(--brand-7)));
352
+ --bubble-border: var(--open-flow-border, light-dark(var(--brand-4), var(--brand-3)));
370
353
 
371
- --pseudo-outline-color: var(--brand-3);
354
+ --pseudo-outline-color: var(--open-flow-ring, light-dark(var(--brand-3), var(--brand-7)));
372
355
 
373
- --comment-bg: var(--open-flow-comment-surface);
374
- --comment-preview-bg: var(--open-flow-comment-content);
356
+ --comment-bg: var(--_open-flow-comment-surface);
357
+ --comment-preview-bg: var(--_open-flow-comment-content);
375
358
  --comment-head-bg: #e8d7b3;
376
- --comment-border: var(--open-flow-comment-border);
359
+ --comment-border: var(--_open-flow-comment-border);
377
360
  --comment-selected-border: #a58b50;
378
361
  --comment-hover-bg: color-mix(in srgb, var(--comment-head-bg) 70%, #ffffff);
379
362
  --comment-active-bg: color-mix(in srgb, var(--comment-head-bg) 93%, #000000);
380
363
  }
381
364
 
382
365
  .open-flow-theme[data-surface='canvas'][data-theme='dark'] {
383
- color-scheme: dark;
384
-
385
- --fill-1: #242424;
386
- --fill-2: #1c1c1c;
387
- --fill-3: #2b2b2b;
388
- --fill-4: #303030;
389
- --fill-5: #363636;
390
- --fill-6: #3c3c3c;
391
- --fill-7: #484848;
392
- --border-1: #3c3c3c;
393
- --border-2: #484848;
394
- --text-1: #858585;
395
- --text-2: #ababab;
396
- --text-3: #ababab;
397
- --text-4: #eeeeee;
398
- --text-5: #eeeeee;
399
-
400
- --accent-soft: #353535;
401
- --accent-soft-hover: #424242;
402
- --accent-foreground: #e0e0e0;
403
366
  --trigger-icon-color: var(--warning);
404
367
  --trigger-icon-fill: color-mix(in srgb, var(--trigger-icon-color) 24%, transparent);
405
- --canvas-lock-stripe: var(--open-flow-canvas-lock-stripe, rgb(180 180 180 / 5%));
406
- --canvas-grid: rgb(180 180 180 / 13%);
407
- --node-shadow: none;
408
- --node-selected-shadow: 0 0 0 2px rgb(190 190 190 / 16%), 0 2px 6px rgb(0 0 0 / 20%);
368
+ --node-selected-shadow: 0 0 0 2px color-mix(in srgb, var(--open-flow-ring, rgb(190 190 190)) 16%, transparent), 0 2px 6px rgb(0 0 0 / 20%);
409
369
  --node-error-selected-shadow: 0 0 0 2px rgb(204 62 68 / 24%), 0 2px 6px rgb(0 0 0 / 20%);
410
370
  --floating-control-shadow: 0 1px 3px rgb(0 0 0 / 16%);
411
371
 
412
- --brand-color: #cccccc;
413
- --brand-highlight-color: #b8b8b8;
414
- --brand-hover-color: color-mix(in srgb, var(--brand-highlight-color) 20%, transparent);
415
- --ui-background: var(--fill-1);
416
- --ui-foreground: var(--text-5);
417
- --ui-card: var(--widget-popup-background);
418
- --ui-card-foreground: var(--widget-font-color);
419
- --ui-popover: var(--widget-popup-background);
420
- --ui-popover-foreground: var(--widget-font-color);
421
- --ui-primary: var(--brand-highlight-color);
422
- --ui-primary-foreground: var(--widget-font-highlight-color);
423
- --ui-secondary: var(--fill-4);
424
- --ui-secondary-foreground: var(--text-4);
425
- --ui-muted: var(--fill-4);
426
- --ui-muted-foreground: var(--text-2);
427
- --ui-accent: var(--fill-5);
428
- --ui-accent-foreground: var(--text-5);
429
- --ui-destructive: var(--accent-red-1);
430
- --ui-border: var(--border-2);
431
- --ui-input: var(--border-2);
432
- --ui-ring: var(--open-flow-ring);
433
- --ui-radius: 6px;
434
-
435
- --node-background-color: var(--open-flow-node-content);
436
- --node-border-color: var(--border-1);
437
- --node-selected-border-color: var(--brand-highlight-color);
438
- --node-head-background-color: var(--fill-3);
439
- --node-head-background-highlight-color: var(--fill-4);
440
-
441
372
  --widget-error-tag-background: #641e1e;
442
373
  --widget-error-tag-border-color: #c60000;
443
374
 
444
- --widget-shadow: #00000099;
445
- --widget-font-color: var(--text-4);
446
- --widget-font-readonly-color: var(--widget-font-color);
447
- --widget-font-placeholder-color: var(--text-2);
448
- --widget-font-highlight-color: var(--white);
449
- --widget-font-disable-color: var(--text-2);
450
- --widget-font-error-color: var(--widget-font-color);
451
- --widget-secondary-font-color: var(--text-3);
452
-
453
375
  --widget-font-danger-color: #ffffffcc;
454
- --widget-button-danger-bg: #f851494d;
455
- --widget-button-danger-hover-bg: #f8514989;
456
376
  --widget-null-color: #79c0ff;
457
- --widget-null-bg-color: #79c0ff33;
458
377
 
459
- --widget-border-color: var(--border-2);
460
- --widget-border-highlight-color: #747474;
461
- --widget-background: var(--fill-4);
462
- --widget-background-highlight-color: var(--fill-5);
463
378
  --widget-background-mask-highlight-color: #ffffff1a;
464
379
 
465
- --widget-input-background: var(--fill-3);
466
- --widget-input-selection-background-color: #2b4f77;
467
- --widget-switch-background-color: var(--fill-7);
468
- --widget-switch-border-color: transparent;
469
- --widget-label-background: var(--fill-4);
470
- --widget-active-background: var(--fill-6);
471
-
472
- --widget-selector-selected-focused-bg: var(--brand-9);
473
- --widget-selector-selected-bg: var(--brand-8);
474
-
475
- --widget-popup-background: var(--fill-1);
476
380
  --widget-range-background: var(--brand-highlight-color);
477
381
 
478
382
  --widget-segmented-item-selected-bg: var(--fill-4);
479
- --widget-segmented-item-hover-bg: var(--block-editor-item-background-color);
480
- --widget-segmented-track-bg: var(--fill-3);
481
- --widget-segmented-font-color: var(--text-strong);
482
- --widget-segmented-inactive-color: var(--text-weak);
483
-
484
- --widget-time-picker-active-bg: var(--brand-highlight-color);
485
-
486
- --widget-success-progress-color: var(--accent-green-1);
487
- --widget-error-progress-color: var(--accent-red-1);
488
383
 
489
- --widget-error-color: #ff0000;
490
384
  --widget-error-hover-color: #ff2222;
491
385
  --widget-error-hover-background-color: #ff000040;
492
386
  --widget-error-background: #7b2424;
493
387
  --widget-error-background-highlight-color: #853b3c;
494
388
  --widget-error-input-border-color: #761414;
495
389
  --widget-error-input-background: #351717;
496
- --widget-error-tip-border: var(--widget-error-input-border-color);
497
- --widget-error-tip-background: var(--widget-error-input-background);
498
-
499
- --widget-warn-color: var(--warning);
500
390
 
501
391
  --edge-color: #696e77;
502
- --edge-linear-gradient-start: var(--edge-color);
503
- --edge-linear-gradient-end: var(--edge-color);
504
392
 
505
- --edge-string: #f9ae58;
506
- --edge-json: #9ca0df;
507
393
  --edge-primitive: #737373;
508
- --edge-selected: var(--text-2);
509
- --edge-bin: #00d6b9;
510
- --edge-error: var(--seti-red);
511
- --flow-bg: var(--fill-2);
512
-
513
- --xy-controls-button-background-color: var(--ui-background);
514
- --xy-controls-button-background-color-hover: var(--ui-muted);
515
- --xy-controls-button-border-color: var(--ui-border);
516
- --xy-controls-button-color: var(--ui-muted-foreground);
517
- --xy-controls-button-color-hover: var(--ui-foreground);
518
- --xy-controls-box-shadow: var(--floating-control-shadow);
519
- --xy-minimap-background-color: var(--node-background-color);
520
- --xy-minimap-mask-background-color: rgb(0 0 0 / 10%);
521
- --xy-minimap-node-background-color: var(--widget-background);
522
-
523
- --highlight-indicate-color: var(--brand-1);
524
-
525
- --block-editor-item-background-color: var(--fill-3);
526
-
527
- --table-head-color: var(--text-2);
528
- --minimap-border-color: var(--border-2);
529
394
 
530
395
  --contextmenu-shadow: #0000005c;
531
- --contextmenu-background: var(--fill-1);
532
- --contextmenu-hover: var(--fill-5);
533
396
 
534
- --text: var(--text-3);
535
- --text-strong: var(--text-4);
536
- --text-stronger: var(--text-5);
537
397
  --text-weak: var(--text-2);
538
398
  --text-weaker: var(--text-1);
539
399
  --border-weak: var(--border-2);
540
400
 
541
- --bubble-bg: var(--brand-7);
542
- --bubble-border: var(--brand-3);
543
-
544
- --pseudo-outline-color: var(--brand-7);
545
-
546
- --comment-bg: var(--open-flow-comment-surface);
547
- --comment-preview-bg: var(--open-flow-comment-content);
548
401
  --comment-head-bg: #514532;
549
- --comment-border: var(--open-flow-comment-border);
550
402
  --comment-selected-border: #bba165;
551
403
  --comment-hover-bg: color-mix(in srgb, var(--comment-head-bg) 89%, #ffffff);
552
404
  --comment-active-bg: color-mix(in srgb, var(--comment-head-bg) 90%, #000000);
@@ -4254,7 +4254,7 @@ var buttonVariants = cva("nodrag group/button relative inline-flex shrink-0 item
4254
4254
  "default": "bg-primary text-primary-foreground hover:bg-primary/80",
4255
4255
  "outline": "border-border bg-background hover:bg-muted hover:text-foreground aria-expanded:bg-muted aria-expanded:text-foreground dark:border-input dark:bg-input/30 dark:hover:bg-[var(--ui-disabled-background,color-mix(in_srgb,var(--ui-input)_50%,transparent))]",
4256
4256
  "field": "border-input bg-[var(--ui-control-background,var(--ui-muted))] focus-visible:border-input",
4257
- "secondary": "bg-secondary text-secondary-foreground hover:bg-[color-mix(in_oklch,var(--secondary),var(--foreground)_5%)] aria-expanded:bg-secondary aria-expanded:text-secondary-foreground",
4257
+ "secondary": "bg-secondary text-secondary-foreground hover:bg-[color-mix(in_oklch,var(--ui-secondary),var(--ui-foreground)_5%)] aria-expanded:bg-secondary aria-expanded:text-secondary-foreground",
4258
4258
  "ghost": "hover:bg-[var(--ui-control-hover-background,var(--ui-muted))] hover:text-foreground aria-current:bg-[var(--ui-control-hover-background,var(--ui-muted))] aria-current:text-foreground aria-expanded:bg-[var(--ui-control-hover-background,var(--ui-muted))] aria-expanded:text-foreground dark:hover:bg-[var(--ui-control-hover-background,var(--ui-muted))]",
4259
4259
  "destructive-ghost": "text-destructive hover:bg-destructive/10 hover:text-destructive dark:hover:bg-destructive/20",
4260
4260
  "disclosure": "bg-clip-border text-muted-foreground hover:bg-[var(--ui-control-hover-background,var(--ui-muted))] hover:text-foreground active:bg-[var(--ui-control-hover-background,var(--ui-muted))]",