@fluxo-dev/shell-workflow 25.4.3 → 26.1.2

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 (101) hide show
  1. package/index.esm.css +761 -0
  2. package/index.esm.js +114700 -7344
  3. package/package.json +4 -4
  4. package/src/index.d.ts +5 -1
  5. package/src/lib/etl/browse/etl-browse.d.ts +8 -0
  6. package/src/lib/etl/browse/index.d.ts +2 -0
  7. package/src/lib/etl/components/nodes/EtlBlockNode.d.ts +3 -0
  8. package/src/lib/etl/components/nodes/index.d.ts +1 -0
  9. package/src/lib/etl/components/panels/BlockConfigPanel.d.ts +10 -0
  10. package/src/lib/etl/components/panels/BlocksPanel.d.ts +8 -0
  11. package/src/lib/etl/components/panels/PreviewDataPanel.d.ts +8 -0
  12. package/src/lib/etl/components/panels/index.d.ts +3 -0
  13. package/src/lib/etl/constants/index.d.ts +22 -0
  14. package/src/lib/etl/designer/EtlDesignerContext.d.ts +14 -0
  15. package/src/lib/etl/designer/etl-designer.d.ts +7 -0
  16. package/src/lib/etl/designer/index.d.ts +1 -0
  17. package/src/lib/etl/hooks/index.d.ts +6 -0
  18. package/src/lib/etl/hooks/useBlockDefinitions.d.ts +12 -0
  19. package/src/lib/etl/hooks/useExecutionHistory.d.ts +13 -0
  20. package/src/lib/etl/hooks/useNodeOperations.d.ts +15 -0
  21. package/src/lib/etl/hooks/usePipelineActions.d.ts +25 -0
  22. package/src/lib/etl/hooks/usePipelineLiveDebug.d.ts +20 -0
  23. package/src/lib/etl/hooks/usePipelineState.d.ts +16 -0
  24. package/src/lib/etl/services/etl-debug-hub.service.d.ts +13 -0
  25. package/src/lib/etl/types/etl-block.types.d.ts +2 -0
  26. package/src/lib/etl/types/etl-config-field.types.d.ts +9 -0
  27. package/src/lib/etl/types/etl-live-debug.types.d.ts +56 -0
  28. package/src/lib/etl/types/etl-pipeline.types.d.ts +243 -0
  29. package/src/lib/etl/types/index.d.ts +4 -0
  30. package/src/lib/etl/utils/dynamic-ports.d.ts +12 -0
  31. package/src/lib/etl/utils/icon-mapper.d.ts +12 -0
  32. package/src/lib/etl/utils/index.d.ts +5 -0
  33. package/src/lib/etl/utils/pipeline-converter.d.ts +14 -0
  34. package/src/lib/etl/utils/status-utils.d.ts +19 -0
  35. package/src/lib/etl/utils/validation.d.ts +17 -0
  36. package/src/lib/fluxo-module.d.ts +1 -2
  37. package/src/lib/workflow/browse/workflow-browse.d.ts +8 -0
  38. package/src/lib/workflow/browse/workflow-executions-panel.d.ts +8 -0
  39. package/src/lib/workflow/designer-v2/components/canvas/FlowCanvas.d.ts +16 -0
  40. package/src/lib/workflow/designer-v2/components/edges/CustomEdge.d.ts +3 -0
  41. package/src/lib/workflow/designer-v2/components/modals/TriggerInputModal.d.ts +10 -0
  42. package/src/lib/workflow/designer-v2/components/nodes/CustomNode.d.ts +3 -0
  43. package/src/lib/workflow/designer-v2/components/panels/ActionsPanel/ActionsPanel.d.ts +12 -0
  44. package/src/lib/workflow/designer-v2/components/panels/NodeConfigPanel/CollapsibleGroup.d.ts +12 -0
  45. package/src/lib/workflow/designer-v2/components/panels/NodeConfigPanel/ConditionalInput.d.ts +17 -0
  46. package/src/lib/workflow/designer-v2/components/panels/NodeConfigPanel/ExpressionEditor.d.ts +19 -0
  47. package/src/lib/workflow/designer-v2/components/panels/NodeConfigPanel/InputField.d.ts +26 -0
  48. package/src/lib/workflow/designer-v2/components/panels/NodeConfigPanel/InputsSection.d.ts +13 -0
  49. package/src/lib/workflow/designer-v2/components/panels/NodeConfigPanel/NodeConfigPanel.d.ts +12 -0
  50. package/src/lib/workflow/designer-v2/components/panels/NodeConfigPanel/OutcomesSection.d.ts +5 -0
  51. package/src/lib/workflow/designer-v2/components/panels/NodeConfigPanel/OutputsSection.d.ts +6 -0
  52. package/src/lib/workflow/designer-v2/components/panels/NodeConfigPanel/PrimitiveInputsSection.d.ts +13 -0
  53. package/src/lib/workflow/designer-v2/components/panels/NodeConfigPanel/TypedValueEditor.d.ts +17 -0
  54. package/src/lib/workflow/designer-v2/components/toolbar/WorkflowToolbar.d.ts +9 -0
  55. package/src/lib/workflow/designer-v2/constants/index.d.ts +3 -0
  56. package/src/lib/workflow/designer-v2/constants/primitives.d.ts +27 -0
  57. package/src/lib/workflow/designer-v2/constants/styles.d.ts +61 -0
  58. package/src/lib/workflow/designer-v2/constants/triggers.d.ts +10 -0
  59. package/src/lib/workflow/designer-v2/constants/ui-hints.d.ts +22 -0
  60. package/src/lib/workflow/designer-v2/hooks/index.d.ts +9 -0
  61. package/src/lib/workflow/designer-v2/hooks/useActionDefinitions.d.ts +11 -0
  62. package/src/lib/workflow/designer-v2/hooks/useAvailableOutputs.d.ts +14 -0
  63. package/src/lib/workflow/designer-v2/hooks/useInputDependencies.d.ts +9 -0
  64. package/src/lib/workflow/designer-v2/hooks/useInputValidation.d.ts +9 -0
  65. package/src/lib/workflow/designer-v2/hooks/useNodeInputs.d.ts +18 -0
  66. package/src/lib/workflow/designer-v2/hooks/useNodeOperations.d.ts +15 -0
  67. package/src/lib/workflow/designer-v2/hooks/useTriggerDefinitions.d.ts +11 -0
  68. package/src/lib/workflow/designer-v2/hooks/useWorkflowActions.d.ts +15 -0
  69. package/src/lib/workflow/designer-v2/hooks/useWorkflowState.d.ts +17 -0
  70. package/src/lib/workflow/designer-v2/index.d.ts +2 -0
  71. package/src/lib/workflow/designer-v2/types/index.d.ts +6 -0
  72. package/src/lib/workflow/designer-v2/types/input-config.types.d.ts +32 -0
  73. package/src/lib/workflow/designer-v2/types/input-dependency.types.d.ts +17 -0
  74. package/src/lib/workflow/designer-v2/types/input-group.types.d.ts +10 -0
  75. package/src/lib/workflow/designer-v2/types/input-validation.types.d.ts +11 -0
  76. package/src/lib/workflow/designer-v2/types/node-data.types.d.ts +52 -0
  77. package/src/lib/workflow/designer-v2/types/workflow-state.types.d.ts +28 -0
  78. package/src/lib/workflow/designer-v2/utils/branch-validation.d.ts +43 -0
  79. package/src/lib/workflow/designer-v2/utils/handle-helpers.d.ts +8 -0
  80. package/src/lib/workflow/designer-v2/utils/icon-mapper.d.ts +5 -0
  81. package/src/lib/workflow/designer-v2/utils/index.d.ts +8 -0
  82. package/src/lib/workflow/designer-v2/utils/node-factory.d.ts +31 -0
  83. package/src/lib/workflow/designer-v2/utils/parallel-detection.d.ts +32 -0
  84. package/src/lib/workflow/designer-v2/utils/transformers.d.ts +23 -0
  85. package/src/lib/workflow/designer-v2/utils/validation.d.ts +22 -0
  86. package/src/lib/workflow/designer-v2/utils/while-visual-edges.d.ts +7 -0
  87. package/src/lib/workflow/designer-v2/workflow-designer-v2.d.ts +8 -0
  88. package/src/lib/designer/components/action/action-card.d.ts +0 -5
  89. package/src/lib/designer/components/action/action-inputs.d.ts +0 -7
  90. package/src/lib/designer/components/action/outputs-picker.d.ts +0 -6
  91. package/src/lib/designer/components/action-chooser.d.ts +0 -5
  92. package/src/lib/designer/components/connectors/action-button.d.ts +0 -8
  93. package/src/lib/designer/components/connectors/action-connector-vertical-fill.d.ts +0 -10
  94. package/src/lib/designer/components/connectors/action-connector-vertical.d.ts +0 -9
  95. package/src/lib/designer/components/connectors/action-connector.d.ts +0 -7
  96. package/src/lib/designer/components/trigger/trigger-card.d.ts +0 -5
  97. package/src/lib/designer/components/trigger-chooser.d.ts +0 -5
  98. package/src/lib/designer/provider/workflow-designer-provider.d.ts +0 -27
  99. package/src/lib/designer/services/workflow-manager-interface.d.ts +0 -13
  100. package/src/lib/designer/services/workflow-manager.d.ts +0 -75
  101. package/src/lib/designer/workflow-designer.d.ts +0 -5
package/index.esm.css ADDED
@@ -0,0 +1,761 @@
1
+ /* this gets exported as style.css and can be used for the default theming */
2
+ /* these are the necessary styles for React/Svelte Flow, they get used by base.css and style.css */
3
+ .react-flow {
4
+ direction: ltr;
5
+
6
+ --xy-edge-stroke-default: #b1b1b7;
7
+ --xy-edge-stroke-width-default: 1;
8
+ --xy-edge-stroke-selected-default: #555;
9
+
10
+ --xy-connectionline-stroke-default: #b1b1b7;
11
+ --xy-connectionline-stroke-width-default: 1;
12
+
13
+ --xy-attribution-background-color-default: rgba(255, 255, 255, 0.5);
14
+
15
+ --xy-minimap-background-color-default: #fff;
16
+ --xy-minimap-mask-background-color-default: rgba(240, 240, 240, 0.6);
17
+ --xy-minimap-mask-stroke-color-default: transparent;
18
+ --xy-minimap-mask-stroke-width-default: 1;
19
+ --xy-minimap-node-background-color-default: #e2e2e2;
20
+ --xy-minimap-node-stroke-color-default: transparent;
21
+ --xy-minimap-node-stroke-width-default: 2;
22
+
23
+ --xy-background-color-default: transparent;
24
+ --xy-background-pattern-dots-color-default: #91919a;
25
+ --xy-background-pattern-lines-color-default: #eee;
26
+ --xy-background-pattern-cross-color-default: #e2e2e2;
27
+ background-color: var(--xy-background-color, var(--xy-background-color-default));
28
+ --xy-node-color-default: inherit;
29
+ --xy-node-border-default: 1px solid #1a192b;
30
+ --xy-node-background-color-default: #fff;
31
+ --xy-node-group-background-color-default: rgba(240, 240, 240, 0.25);
32
+ --xy-node-boxshadow-hover-default: 0 1px 4px 1px rgba(0, 0, 0, 0.08);
33
+ --xy-node-boxshadow-selected-default: 0 0 0 0.5px #1a192b;
34
+ --xy-node-border-radius-default: 3px;
35
+
36
+ --xy-handle-background-color-default: #1a192b;
37
+ --xy-handle-border-color-default: #fff;
38
+
39
+ --xy-selection-background-color-default: rgba(0, 89, 220, 0.08);
40
+ --xy-selection-border-default: 1px dotted rgba(0, 89, 220, 0.8);
41
+
42
+ --xy-controls-button-background-color-default: #fefefe;
43
+ --xy-controls-button-background-color-hover-default: #f4f4f4;
44
+ --xy-controls-button-color-default: inherit;
45
+ --xy-controls-button-color-hover-default: inherit;
46
+ --xy-controls-button-border-color-default: #eee;
47
+ --xy-controls-box-shadow-default: 0 0 2px 1px rgba(0, 0, 0, 0.08);
48
+
49
+ --xy-edge-label-background-color-default: #ffffff;
50
+ --xy-edge-label-color-default: inherit;
51
+ --xy-resize-background-color-default: #3367d9;
52
+ }
53
+ .react-flow.dark {
54
+ --xy-edge-stroke-default: #3e3e3e;
55
+ --xy-edge-stroke-width-default: 1;
56
+ --xy-edge-stroke-selected-default: #727272;
57
+
58
+ --xy-connectionline-stroke-default: #b1b1b7;
59
+ --xy-connectionline-stroke-width-default: 1;
60
+
61
+ --xy-attribution-background-color-default: rgba(150, 150, 150, 0.25);
62
+
63
+ --xy-minimap-background-color-default: #141414;
64
+ --xy-minimap-mask-background-color-default: rgba(60, 60, 60, 0.6);
65
+ --xy-minimap-mask-stroke-color-default: transparent;
66
+ --xy-minimap-mask-stroke-width-default: 1;
67
+ --xy-minimap-node-background-color-default: #2b2b2b;
68
+ --xy-minimap-node-stroke-color-default: transparent;
69
+ --xy-minimap-node-stroke-width-default: 2;
70
+
71
+ --xy-background-color-default: #141414;
72
+ --xy-background-pattern-dots-color-default: #777;
73
+ --xy-background-pattern-lines-color-default: #777;
74
+ --xy-background-pattern-cross-color-default: #777;
75
+ --xy-node-color-default: #f8f8f8;
76
+ --xy-node-border-default: 1px solid #3c3c3c;
77
+ --xy-node-background-color-default: #1e1e1e;
78
+ --xy-node-group-background-color-default: rgba(240, 240, 240, 0.25);
79
+ --xy-node-boxshadow-hover-default: 0 1px 4px 1px rgba(255, 255, 255, 0.08);
80
+ --xy-node-boxshadow-selected-default: 0 0 0 0.5px #999;
81
+
82
+ --xy-handle-background-color-default: #bebebe;
83
+ --xy-handle-border-color-default: #1e1e1e;
84
+
85
+ --xy-selection-background-color-default: rgba(200, 200, 220, 0.08);
86
+ --xy-selection-border-default: 1px dotted rgba(200, 200, 220, 0.8);
87
+
88
+ --xy-controls-button-background-color-default: #2b2b2b;
89
+ --xy-controls-button-background-color-hover-default: #3e3e3e;
90
+ --xy-controls-button-color-default: #f8f8f8;
91
+ --xy-controls-button-color-hover-default: #fff;
92
+ --xy-controls-button-border-color-default: #5b5b5b;
93
+ --xy-controls-box-shadow-default: 0 0 2px 1px rgba(0, 0, 0, 0.08);
94
+
95
+ --xy-edge-label-background-color-default: #141414;
96
+ --xy-edge-label-color-default: #f8f8f8;
97
+ }
98
+ .react-flow__background {
99
+ background-color: var(--xy-background-color-props, var(--xy-background-color, var(--xy-background-color-default)));
100
+ pointer-events: none;
101
+ z-index: -1;
102
+ }
103
+ .react-flow__container {
104
+ position: absolute;
105
+ width: 100%;
106
+ height: 100%;
107
+ top: 0;
108
+ left: 0;
109
+ }
110
+ .react-flow__pane {
111
+ z-index: 1;
112
+ }
113
+ .react-flow__pane.draggable {
114
+ cursor: grab;
115
+ }
116
+ .react-flow__pane.dragging {
117
+ cursor: grabbing;
118
+ }
119
+ .react-flow__pane.selection {
120
+ cursor: pointer;
121
+ }
122
+ .react-flow__viewport {
123
+ transform-origin: 0 0;
124
+ z-index: 2;
125
+ pointer-events: none;
126
+ }
127
+ .react-flow__renderer {
128
+ z-index: 4;
129
+ }
130
+ .react-flow__selection {
131
+ z-index: 6;
132
+ }
133
+ .react-flow__nodesselection-rect:focus,
134
+ .react-flow__nodesselection-rect:focus-visible {
135
+ outline: none;
136
+ }
137
+ .react-flow__edge-path {
138
+ stroke: var(--xy-edge-stroke, var(--xy-edge-stroke-default));
139
+ stroke-width: var(--xy-edge-stroke-width, var(--xy-edge-stroke-width-default));
140
+ fill: none;
141
+ }
142
+ .react-flow__connection-path {
143
+ stroke: var(--xy-connectionline-stroke, var(--xy-connectionline-stroke-default));
144
+ stroke-width: var(--xy-connectionline-stroke-width, var(--xy-connectionline-stroke-width-default));
145
+ fill: none;
146
+ }
147
+ .react-flow .react-flow__edges {
148
+ position: absolute;
149
+ }
150
+ .react-flow .react-flow__edges svg {
151
+ overflow: visible;
152
+ position: absolute;
153
+ pointer-events: none;
154
+ }
155
+ .react-flow__edge {
156
+ pointer-events: visibleStroke;
157
+ }
158
+ .react-flow__edge.selectable {
159
+ cursor: pointer;
160
+ }
161
+ .react-flow__edge.animated path {
162
+ stroke-dasharray: 5;
163
+ animation: dashdraw 0.5s linear infinite;
164
+ }
165
+ .react-flow__edge.animated path.react-flow__edge-interaction {
166
+ stroke-dasharray: none;
167
+ animation: none;
168
+ }
169
+ .react-flow__edge.inactive {
170
+ pointer-events: none;
171
+ }
172
+ .react-flow__edge.selected,
173
+ .react-flow__edge:focus,
174
+ .react-flow__edge:focus-visible {
175
+ outline: none;
176
+ }
177
+ .react-flow__edge.selected .react-flow__edge-path,
178
+ .react-flow__edge.selectable:focus .react-flow__edge-path,
179
+ .react-flow__edge.selectable:focus-visible .react-flow__edge-path {
180
+ stroke: var(--xy-edge-stroke-selected, var(--xy-edge-stroke-selected-default));
181
+ }
182
+ .react-flow__edge-textwrapper {
183
+ pointer-events: all;
184
+ }
185
+ .react-flow__edge .react-flow__edge-text {
186
+ pointer-events: none;
187
+ -webkit-user-select: none;
188
+ -moz-user-select: none;
189
+ user-select: none;
190
+ }
191
+ /* Arrowhead marker styles - use CSS custom properties as default */
192
+ .react-flow__arrowhead polyline {
193
+ stroke: var(--xy-edge-stroke, var(--xy-edge-stroke-default));
194
+ }
195
+ .react-flow__arrowhead polyline.arrowclosed {
196
+ fill: var(--xy-edge-stroke, var(--xy-edge-stroke-default));
197
+ }
198
+ .react-flow__connection {
199
+ pointer-events: none;
200
+ }
201
+ .react-flow__connection .animated {
202
+ stroke-dasharray: 5;
203
+ animation: dashdraw 0.5s linear infinite;
204
+ }
205
+ svg.react-flow__connectionline {
206
+ z-index: 1001;
207
+ overflow: visible;
208
+ position: absolute;
209
+ }
210
+ .react-flow__nodes {
211
+ pointer-events: none;
212
+ transform-origin: 0 0;
213
+ }
214
+ .react-flow__node {
215
+ position: absolute;
216
+ -webkit-user-select: none;
217
+ -moz-user-select: none;
218
+ user-select: none;
219
+ pointer-events: all;
220
+ transform-origin: 0 0;
221
+ box-sizing: border-box;
222
+ cursor: default;
223
+ }
224
+ .react-flow__node.selectable {
225
+ cursor: pointer;
226
+ }
227
+ .react-flow__node.draggable {
228
+ cursor: grab;
229
+ pointer-events: all;
230
+ }
231
+ .react-flow__node.draggable.dragging {
232
+ cursor: grabbing;
233
+ }
234
+ .react-flow__nodesselection {
235
+ z-index: 3;
236
+ transform-origin: left top;
237
+ pointer-events: none;
238
+ }
239
+ .react-flow__nodesselection-rect {
240
+ position: absolute;
241
+ pointer-events: all;
242
+ cursor: grab;
243
+ }
244
+ .react-flow__handle {
245
+ position: absolute;
246
+ pointer-events: none;
247
+ min-width: 5px;
248
+ min-height: 5px;
249
+ width: 6px;
250
+ height: 6px;
251
+ background-color: var(--xy-handle-background-color, var(--xy-handle-background-color-default));
252
+ border: 1px solid var(--xy-handle-border-color, var(--xy-handle-border-color-default));
253
+ border-radius: 100%;
254
+ }
255
+ .react-flow__handle.connectingfrom {
256
+ pointer-events: all;
257
+ }
258
+ .react-flow__handle.connectionindicator {
259
+ pointer-events: all;
260
+ cursor: crosshair;
261
+ }
262
+ .react-flow__handle-bottom {
263
+ top: auto;
264
+ left: 50%;
265
+ bottom: 0;
266
+ transform: translate(-50%, 50%);
267
+ }
268
+ .react-flow__handle-top {
269
+ top: 0;
270
+ left: 50%;
271
+ transform: translate(-50%, -50%);
272
+ }
273
+ .react-flow__handle-left {
274
+ top: 50%;
275
+ left: 0;
276
+ transform: translate(-50%, -50%);
277
+ }
278
+ .react-flow__handle-right {
279
+ top: 50%;
280
+ right: 0;
281
+ transform: translate(50%, -50%);
282
+ }
283
+ .react-flow__edgeupdater {
284
+ cursor: move;
285
+ pointer-events: all;
286
+ }
287
+ .react-flow__pane.selection .react-flow__panel {
288
+ pointer-events: none;
289
+ }
290
+ .react-flow__panel {
291
+ position: absolute;
292
+ z-index: 5;
293
+ margin: 15px;
294
+ }
295
+ .react-flow__panel.top {
296
+ top: 0;
297
+ }
298
+ .react-flow__panel.bottom {
299
+ bottom: 0;
300
+ }
301
+ .react-flow__panel.top.center, .react-flow__panel.bottom.center {
302
+ left: 50%;
303
+ transform: translateX(-15px) translateX(-50%);
304
+ }
305
+ .react-flow__panel.left {
306
+ left: 0;
307
+ }
308
+ .react-flow__panel.right {
309
+ right: 0;
310
+ }
311
+ .react-flow__panel.left.center, .react-flow__panel.right.center {
312
+ top: 50%;
313
+ transform: translateY(-15px) translateY(-50%);
314
+ }
315
+ .react-flow__attribution {
316
+ font-size: 10px;
317
+ background: var(--xy-attribution-background-color, var(--xy-attribution-background-color-default));
318
+ padding: 2px 3px;
319
+ margin: 0;
320
+ }
321
+ .react-flow__attribution a {
322
+ text-decoration: none;
323
+ color: #999;
324
+ }
325
+ @keyframes dashdraw {
326
+ from {
327
+ stroke-dashoffset: 10;
328
+ }
329
+ }
330
+ .react-flow__edgelabel-renderer {
331
+ position: absolute;
332
+ width: 100%;
333
+ height: 100%;
334
+ pointer-events: none;
335
+ -webkit-user-select: none;
336
+ -moz-user-select: none;
337
+ user-select: none;
338
+ left: 0;
339
+ top: 0;
340
+ }
341
+ .react-flow__viewport-portal {
342
+ position: absolute;
343
+ width: 100%;
344
+ height: 100%;
345
+ left: 0;
346
+ top: 0;
347
+ -webkit-user-select: none;
348
+ -moz-user-select: none;
349
+ user-select: none;
350
+ }
351
+ .react-flow__minimap {
352
+ background: var(
353
+ --xy-minimap-background-color-props,
354
+ var(--xy-minimap-background-color, var(--xy-minimap-background-color-default))
355
+ );
356
+ }
357
+ .react-flow__minimap-svg {
358
+ display: block;
359
+ }
360
+ .react-flow__minimap-mask {
361
+ fill: var(
362
+ --xy-minimap-mask-background-color-props,
363
+ var(--xy-minimap-mask-background-color, var(--xy-minimap-mask-background-color-default))
364
+ );
365
+ stroke: var(
366
+ --xy-minimap-mask-stroke-color-props,
367
+ var(--xy-minimap-mask-stroke-color, var(--xy-minimap-mask-stroke-color-default))
368
+ );
369
+ stroke-width: var(
370
+ --xy-minimap-mask-stroke-width-props,
371
+ var(--xy-minimap-mask-stroke-width, var(--xy-minimap-mask-stroke-width-default))
372
+ );
373
+ }
374
+ .react-flow__minimap-node {
375
+ fill: var(
376
+ --xy-minimap-node-background-color-props,
377
+ var(--xy-minimap-node-background-color, var(--xy-minimap-node-background-color-default))
378
+ );
379
+ stroke: var(
380
+ --xy-minimap-node-stroke-color-props,
381
+ var(--xy-minimap-node-stroke-color, var(--xy-minimap-node-stroke-color-default))
382
+ );
383
+ stroke-width: var(
384
+ --xy-minimap-node-stroke-width-props,
385
+ var(--xy-minimap-node-stroke-width, var(--xy-minimap-node-stroke-width-default))
386
+ );
387
+ }
388
+ .react-flow__background-pattern.dots {
389
+ fill: var(
390
+ --xy-background-pattern-color-props,
391
+ var(--xy-background-pattern-color, var(--xy-background-pattern-dots-color-default))
392
+ );
393
+ }
394
+ .react-flow__background-pattern.lines {
395
+ stroke: var(
396
+ --xy-background-pattern-color-props,
397
+ var(--xy-background-pattern-color, var(--xy-background-pattern-lines-color-default))
398
+ );
399
+ }
400
+ .react-flow__background-pattern.cross {
401
+ stroke: var(
402
+ --xy-background-pattern-color-props,
403
+ var(--xy-background-pattern-color, var(--xy-background-pattern-cross-color-default))
404
+ );
405
+ }
406
+ .react-flow__controls {
407
+ display: flex;
408
+ flex-direction: column;
409
+ box-shadow: var(--xy-controls-box-shadow, var(--xy-controls-box-shadow-default));
410
+ }
411
+ .react-flow__controls.horizontal {
412
+ flex-direction: row;
413
+ }
414
+ .react-flow__controls-button {
415
+ display: flex;
416
+ justify-content: center;
417
+ align-items: center;
418
+ height: 26px;
419
+ width: 26px;
420
+ padding: 4px;
421
+ border: none;
422
+ background: var(--xy-controls-button-background-color, var(--xy-controls-button-background-color-default));
423
+ border-bottom: 1px solid
424
+ var(
425
+ --xy-controls-button-border-color-props,
426
+ var(--xy-controls-button-border-color, var(--xy-controls-button-border-color-default))
427
+ );
428
+ color: var(
429
+ --xy-controls-button-color-props,
430
+ var(--xy-controls-button-color, var(--xy-controls-button-color-default))
431
+ );
432
+ cursor: pointer;
433
+ -webkit-user-select: none;
434
+ -moz-user-select: none;
435
+ user-select: none;
436
+ }
437
+ .react-flow__controls-button svg {
438
+ width: 100%;
439
+ max-width: 12px;
440
+ max-height: 12px;
441
+ fill: currentColor;
442
+ }
443
+ .react-flow__edge.updating .react-flow__edge-path {
444
+ stroke: #777;
445
+ }
446
+ .react-flow__edge-text {
447
+ font-size: 10px;
448
+ }
449
+ .react-flow__node.selectable:focus,
450
+ .react-flow__node.selectable:focus-visible {
451
+ outline: none;
452
+ }
453
+ .react-flow__node-input,
454
+ .react-flow__node-default,
455
+ .react-flow__node-output,
456
+ .react-flow__node-group {
457
+ padding: 10px;
458
+ border-radius: var(--xy-node-border-radius, var(--xy-node-border-radius-default));
459
+ width: 150px;
460
+ font-size: 12px;
461
+ color: var(--xy-node-color, var(--xy-node-color-default));
462
+ text-align: center;
463
+ border: var(--xy-node-border, var(--xy-node-border-default));
464
+ background-color: var(--xy-node-background-color, var(--xy-node-background-color-default));
465
+ }
466
+ .react-flow__node-input.selectable:hover, .react-flow__node-default.selectable:hover, .react-flow__node-output.selectable:hover, .react-flow__node-group.selectable:hover {
467
+ box-shadow: var(--xy-node-boxshadow-hover, var(--xy-node-boxshadow-hover-default));
468
+ }
469
+ .react-flow__node-input.selectable.selected,
470
+ .react-flow__node-input.selectable:focus,
471
+ .react-flow__node-input.selectable:focus-visible,
472
+ .react-flow__node-default.selectable.selected,
473
+ .react-flow__node-default.selectable:focus,
474
+ .react-flow__node-default.selectable:focus-visible,
475
+ .react-flow__node-output.selectable.selected,
476
+ .react-flow__node-output.selectable:focus,
477
+ .react-flow__node-output.selectable:focus-visible,
478
+ .react-flow__node-group.selectable.selected,
479
+ .react-flow__node-group.selectable:focus,
480
+ .react-flow__node-group.selectable:focus-visible {
481
+ box-shadow: var(--xy-node-boxshadow-selected, var(--xy-node-boxshadow-selected-default));
482
+ }
483
+ .react-flow__node-group {
484
+ background-color: var(--xy-node-group-background-color, var(--xy-node-group-background-color-default));
485
+ }
486
+ .react-flow__nodesselection-rect,
487
+ .react-flow__selection {
488
+ background: var(--xy-selection-background-color, var(--xy-selection-background-color-default));
489
+ border: var(--xy-selection-border, var(--xy-selection-border-default));
490
+ }
491
+ .react-flow__nodesselection-rect:focus,
492
+ .react-flow__nodesselection-rect:focus-visible,
493
+ .react-flow__selection:focus,
494
+ .react-flow__selection:focus-visible {
495
+ outline: none;
496
+ }
497
+ .react-flow__controls-button:hover {
498
+ background: var(
499
+ --xy-controls-button-background-color-hover-props,
500
+ var(--xy-controls-button-background-color-hover, var(--xy-controls-button-background-color-hover-default))
501
+ );
502
+ color: var(
503
+ --xy-controls-button-color-hover-props,
504
+ var(--xy-controls-button-color-hover, var(--xy-controls-button-color-hover-default))
505
+ );
506
+ }
507
+ .react-flow__controls-button:disabled {
508
+ pointer-events: none;
509
+ }
510
+ .react-flow__controls-button:disabled svg {
511
+ fill-opacity: 0.4;
512
+ }
513
+ .react-flow__controls-button:last-child {
514
+ border-bottom: none;
515
+ }
516
+ .react-flow__controls.horizontal .react-flow__controls-button {
517
+ border-bottom: none;
518
+ border-right: 1px solid
519
+ var(
520
+ --xy-controls-button-border-color-props,
521
+ var(--xy-controls-button-border-color, var(--xy-controls-button-border-color-default))
522
+ );
523
+ }
524
+ .react-flow__controls.horizontal .react-flow__controls-button:last-child {
525
+ border-right: none;
526
+ }
527
+ .react-flow__resize-control {
528
+ position: absolute;
529
+ }
530
+ .react-flow__resize-control.left,
531
+ .react-flow__resize-control.right {
532
+ cursor: ew-resize;
533
+ }
534
+ .react-flow__resize-control.top,
535
+ .react-flow__resize-control.bottom {
536
+ cursor: ns-resize;
537
+ }
538
+ .react-flow__resize-control.top.left,
539
+ .react-flow__resize-control.bottom.right {
540
+ cursor: nwse-resize;
541
+ }
542
+ .react-flow__resize-control.bottom.left,
543
+ .react-flow__resize-control.top.right {
544
+ cursor: nesw-resize;
545
+ }
546
+ /* handle styles */
547
+ .react-flow__resize-control.handle {
548
+ width: 5px;
549
+ height: 5px;
550
+ border: 1px solid #fff;
551
+ border-radius: 1px;
552
+ background-color: var(--xy-resize-background-color, var(--xy-resize-background-color-default));
553
+ translate: -50% -50%;
554
+ }
555
+ .react-flow__resize-control.handle.left {
556
+ left: 0;
557
+ top: 50%;
558
+ }
559
+ .react-flow__resize-control.handle.right {
560
+ left: 100%;
561
+ top: 50%;
562
+ }
563
+ .react-flow__resize-control.handle.top {
564
+ left: 50%;
565
+ top: 0;
566
+ }
567
+ .react-flow__resize-control.handle.bottom {
568
+ left: 50%;
569
+ top: 100%;
570
+ }
571
+ .react-flow__resize-control.handle.top.left {
572
+ left: 0;
573
+ }
574
+ .react-flow__resize-control.handle.bottom.left {
575
+ left: 0;
576
+ }
577
+ .react-flow__resize-control.handle.top.right {
578
+ left: 100%;
579
+ }
580
+ .react-flow__resize-control.handle.bottom.right {
581
+ left: 100%;
582
+ }
583
+ /* line styles */
584
+ .react-flow__resize-control.line {
585
+ border-color: var(--xy-resize-background-color, var(--xy-resize-background-color-default));
586
+ border-width: 0;
587
+ border-style: solid;
588
+ }
589
+ .react-flow__resize-control.line.left,
590
+ .react-flow__resize-control.line.right {
591
+ width: 1px;
592
+ transform: translate(-50%, 0);
593
+ top: 0;
594
+ height: 100%;
595
+ }
596
+ .react-flow__resize-control.line.left {
597
+ left: 0;
598
+ border-left-width: 1px;
599
+ }
600
+ .react-flow__resize-control.line.right {
601
+ left: 100%;
602
+ border-right-width: 1px;
603
+ }
604
+ .react-flow__resize-control.line.top,
605
+ .react-flow__resize-control.line.bottom {
606
+ height: 1px;
607
+ transform: translate(0, -50%);
608
+ left: 0;
609
+ width: 100%;
610
+ }
611
+ .react-flow__resize-control.line.top {
612
+ top: 0;
613
+ border-top-width: 1px;
614
+ }
615
+ .react-flow__resize-control.line.bottom {
616
+ border-bottom-width: 1px;
617
+ top: 100%;
618
+ }
619
+ .react-flow__edge-textbg {
620
+ fill: var(--xy-edge-label-background-color, var(--xy-edge-label-background-color-default));
621
+ }
622
+ .react-flow__edge-text {
623
+ fill: var(--xy-edge-label-color, var(--xy-edge-label-color-default));
624
+ }
625
+
626
+ /* ReactFlow Designer V2 Custom Styles */
627
+
628
+ /* IMPORTANT: Remove background and padding from ReactFlow node wrapper */
629
+ /* This fixes the white rectangle appearing under nodes */
630
+ .react-flow__node {
631
+ background: transparent !important;
632
+ padding: 0 !important;
633
+ border: none !important;
634
+ }
635
+
636
+ /* Remove default ReactFlow node styles that create white rectangle */
637
+ .react-flow__node-default {
638
+ background: transparent !important;
639
+ padding: 0 !important;
640
+ border: none !important;
641
+ box-shadow: none !important;
642
+ }
643
+
644
+ /* Hide the default node toolbar/resizer that appears as white rectangle */
645
+ .react-flow__node-toolbar,
646
+ .react-flow__node-resizer,
647
+ .react-flow__resize-control {
648
+ display: none !important;
649
+ }
650
+
651
+ /* Ensure node selection doesn't show resize handles */
652
+ .react-flow__node.selected .react-flow__resize-control {
653
+ display: none !important;
654
+ }
655
+
656
+ /* Custom node selection style (already handled in CustomNode) */
657
+ .react-flow__node.selected {
658
+ /* Let CustomNode handle its own selection style */
659
+ }
660
+
661
+ /* Improve edge selection visibility */
662
+ .react-flow__edge.selected .react-flow__edge-path {
663
+ stroke-width: 2.5px;
664
+ stroke: #2563eb;
665
+ filter: drop-shadow(0 0 4px rgba(37, 99, 235, 0.4));
666
+ }
667
+
668
+ /* Hide attribution if proOptions doesn't work */
669
+ .react-flow__attribution {
670
+ display: none !important;
671
+ }
672
+
673
+ /* Smooth transitions for connections */
674
+ .react-flow__connection-path {
675
+ transition: stroke-width 0.2s ease;
676
+ stroke: #2563eb;
677
+ stroke-width: 2px;
678
+ }
679
+
680
+ /* Handle hover effects with smooth animation */
681
+ .react-flow__handle {
682
+ transition: all 0.2s cubic-bezier(0.4, 0, 0.2, 1);
683
+ }
684
+
685
+ .react-flow__handle:hover {
686
+ transform: scale(1.3);
687
+ box-shadow: 0 4px 12px rgba(0, 0, 0, 0.2) !important;
688
+ }
689
+
690
+ .react-flow__handle-connecting {
691
+ background: #2563eb !important;
692
+ transform: scale(1.2);
693
+ }
694
+
695
+ .react-flow__handle-valid {
696
+ background: #10b981 !important;
697
+ }
698
+
699
+ /* Clean minimap style */
700
+ .react-flow__minimap {
701
+ overflow: hidden;
702
+ box-shadow: 0 2px 8px rgba(0, 0, 0, 0.1);
703
+ }
704
+
705
+ /* Node hover effect */
706
+ .react-flow__node:hover {
707
+ filter: brightness(1.02);
708
+ }
709
+
710
+ /* Smooth edge animations */
711
+ .react-flow__edge-path {
712
+ transition: all 0.2s ease;
713
+ }
714
+
715
+ .react-flow__edge:hover .react-flow__edge-path {
716
+ stroke-width: 2.5px;
717
+ }
718
+
719
+ /* Controls styling */
720
+ .react-flow__controls {
721
+ box-shadow: 0 4px 12px rgba(0, 0, 0, 0.08) !important;
722
+ }
723
+
724
+ .react-flow__controls-button {
725
+ transition: all 0.2s ease;
726
+ }
727
+
728
+ .react-flow__controls-button:hover {
729
+ background: #f3f4f6;
730
+ transform: scale(1.05);
731
+ }
732
+
733
+
734
+ /* Evidenziazione SEMPLICE per i riferimenti step output */
735
+
736
+ .monaco-editor .step-output-highlight {
737
+ color: #667eea !important;
738
+ font-weight: 600 !important;
739
+ cursor: help !important;
740
+ }
741
+
742
+ .monaco-editor .step-output-highlight:hover {
743
+ text-decoration: underline !important;
744
+ }
745
+
746
+ /* Stili per rendere Monaco simile a un editor di espressioni single-line */
747
+ .monaco-editor {
748
+ /* Nascondi margini e padding extra */
749
+ padding: 8px 12px !important;
750
+ }
751
+
752
+ .monaco-editor .margin {
753
+ display: none !important;
754
+ }
755
+
756
+ .monaco-editor .view-overlays {
757
+ /* Centra verticalmente il contenuto */
758
+ display: flex;
759
+ align-items: center;
760
+ }
761
+