@linkdlab/funcnodes_react_flow 0.3.11 → 0.3.12

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 (132) hide show
  1. package/dist/esm/index.esm.js +144 -8081
  2. package/dist/esm/index.esm.js.map +1 -0
  3. package/dist/esm/style.css +1726 -0
  4. package/dist/index.d.ts +722 -0
  5. package/dist/style.css +1726 -0
  6. package/dist/umd/index.umd.js +144 -8944
  7. package/dist/umd/index.umd.js.map +1 -0
  8. package/dist/umd/style.css +1726 -0
  9. package/package.json +33 -15
  10. package/dist/css/style.css +0 -52
  11. package/dist/types/frontend/datarenderer/data_renderer_overlay.d.ts +0 -7
  12. package/dist/types/frontend/datarenderer/data_renderer_overlay.d.ts.map +0 -1
  13. package/dist/types/frontend/datarenderer/data_renderer_preview.d.ts +0 -7
  14. package/dist/types/frontend/datarenderer/data_renderer_preview.d.ts.map +0 -1
  15. package/dist/types/frontend/datarenderer/default_preview_renderer.d.ts +0 -25
  16. package/dist/types/frontend/datarenderer/default_preview_renderer.d.ts.map +0 -1
  17. package/dist/types/frontend/datarenderer/images.d.ts +0 -15
  18. package/dist/types/frontend/datarenderer/images.d.ts.map +0 -1
  19. package/dist/types/frontend/datarenderer/index.d.ts +0 -17
  20. package/dist/types/frontend/datarenderer/index.d.ts.map +0 -1
  21. package/dist/types/frontend/datarenderer/rendermappings.d.ts +0 -183
  22. package/dist/types/frontend/datarenderer/rendermappings.d.ts.map +0 -1
  23. package/dist/types/frontend/dialog.d.ts +0 -22
  24. package/dist/types/frontend/dialog.d.ts.map +0 -1
  25. package/dist/types/frontend/edge.d.ts +0 -6
  26. package/dist/types/frontend/edge.d.ts.map +0 -1
  27. package/dist/types/frontend/funcnodesreactflow/index.d.ts +0 -7
  28. package/dist/types/frontend/funcnodesreactflow/index.d.ts.map +0 -1
  29. package/dist/types/frontend/funcnodesreactflow/react_flow_layer.d.ts +0 -10
  30. package/dist/types/frontend/funcnodesreactflow/react_flow_layer.d.ts.map +0 -1
  31. package/dist/types/frontend/header/index.d.ts +0 -6
  32. package/dist/types/frontend/header/index.d.ts.map +0 -1
  33. package/dist/types/frontend/index.d.ts +0 -4
  34. package/dist/types/frontend/index.d.ts.map +0 -1
  35. package/dist/types/frontend/lib.d.ts +0 -11
  36. package/dist/types/frontend/lib.d.ts.map +0 -1
  37. package/dist/types/frontend/node/body_data_renderer.d.ts +0 -12
  38. package/dist/types/frontend/node/body_data_renderer.d.ts.map +0 -1
  39. package/dist/types/frontend/node/index.d.ts +0 -5
  40. package/dist/types/frontend/node/index.d.ts.map +0 -1
  41. package/dist/types/frontend/node/io/default_input_renderer.d.ts +0 -12
  42. package/dist/types/frontend/node/io/default_input_renderer.d.ts.map +0 -1
  43. package/dist/types/frontend/node/io/default_output_render.d.ts +0 -8
  44. package/dist/types/frontend/node/io/default_output_render.d.ts.map +0 -1
  45. package/dist/types/frontend/node/io/handle_renderer.d.ts +0 -12
  46. package/dist/types/frontend/node/io/handle_renderer.d.ts.map +0 -1
  47. package/dist/types/frontend/node/io/index.d.ts +0 -4
  48. package/dist/types/frontend/node/io/index.d.ts.map +0 -1
  49. package/dist/types/frontend/node/io/io.d.ts +0 -17
  50. package/dist/types/frontend/node/io/io.d.ts.map +0 -1
  51. package/dist/types/frontend/node/io/nodeinput.d.ts +0 -11
  52. package/dist/types/frontend/node/io/nodeinput.d.ts.map +0 -1
  53. package/dist/types/frontend/node/io/nodeoutput.d.ts +0 -7
  54. package/dist/types/frontend/node/io/nodeoutput.d.ts.map +0 -1
  55. package/dist/types/frontend/node/node.d.ts +0 -24
  56. package/dist/types/frontend/node/node.d.ts.map +0 -1
  57. package/dist/types/frontend/node/nodesettings.d.ts +0 -5
  58. package/dist/types/frontend/node/nodesettings.d.ts.map +0 -1
  59. package/dist/types/frontend/utils/colorpicker.d.ts +0 -22
  60. package/dist/types/frontend/utils/colorpicker.d.ts.map +0 -1
  61. package/dist/types/frontend/utils/jsondata.d.ts +0 -7
  62. package/dist/types/frontend/utils/jsondata.d.ts.map +0 -1
  63. package/dist/types/frontend/utils/progressbar.d.ts +0 -48
  64. package/dist/types/frontend/utils/progressbar.d.ts.map +0 -1
  65. package/dist/types/frontend/utils/select.d.ts +0 -15
  66. package/dist/types/frontend/utils/select.d.ts.map +0 -1
  67. package/dist/types/frontend/utils/table.d.ts +0 -12
  68. package/dist/types/frontend/utils/table.d.ts.map +0 -1
  69. package/dist/types/funcnodes/funcnodesworker.d.ts +0 -123
  70. package/dist/types/funcnodes/funcnodesworker.d.ts.map +0 -1
  71. package/dist/types/funcnodes/index.d.ts +0 -5
  72. package/dist/types/funcnodes/index.d.ts.map +0 -1
  73. package/dist/types/funcnodes/websocketworker.d.ts +0 -40
  74. package/dist/types/funcnodes/websocketworker.d.ts.map +0 -1
  75. package/dist/types/funcnodes/workermanager.d.ts +0 -33
  76. package/dist/types/funcnodes/workermanager.d.ts.map +0 -1
  77. package/dist/types/index.d.ts +0 -25
  78. package/dist/types/index.d.ts.map +0 -1
  79. package/dist/types/plugin/index.d.ts +0 -19
  80. package/dist/types/plugin/index.d.ts.map +0 -1
  81. package/dist/types/plugin/rendenderer.d.ts +0 -24
  82. package/dist/types/plugin/rendenderer.d.ts.map +0 -1
  83. package/dist/types/plugin/renderer.d.ts +0 -24
  84. package/dist/types/plugin/renderer.d.ts.map +0 -1
  85. package/dist/types/states/edge.d.ts +0 -8
  86. package/dist/types/states/edge.d.ts.map +0 -1
  87. package/dist/types/states/edge.t.d.ts +0 -17
  88. package/dist/types/states/edge.t.d.ts.map +0 -1
  89. package/dist/types/states/fnrfzst.d.ts +0 -11
  90. package/dist/types/states/fnrfzst.d.ts.map +0 -1
  91. package/dist/types/states/fnrfzst.t.d.ts +0 -159
  92. package/dist/types/states/fnrfzst.t.d.ts.map +0 -1
  93. package/dist/types/states/index.d.ts +0 -8
  94. package/dist/types/states/index.d.ts.map +0 -1
  95. package/dist/types/states/lib.d.ts +0 -4
  96. package/dist/types/states/lib.d.ts.map +0 -1
  97. package/dist/types/states/lib.t.d.ts +0 -46
  98. package/dist/types/states/lib.t.d.ts.map +0 -1
  99. package/dist/types/states/node.d.ts +0 -6
  100. package/dist/types/states/node.d.ts.map +0 -1
  101. package/dist/types/states/node.t.d.ts +0 -77
  102. package/dist/types/states/node.t.d.ts.map +0 -1
  103. package/dist/types/states/nodeio.t.d.ts +0 -75
  104. package/dist/types/states/nodeio.t.d.ts.map +0 -1
  105. package/dist/types/states/nodespace.d.ts +0 -4
  106. package/dist/types/states/nodespace.d.ts.map +0 -1
  107. package/dist/types/states/nodespace.t.d.ts +0 -17
  108. package/dist/types/states/nodespace.t.d.ts.map +0 -1
  109. package/dist/types/states/reactflow.d.ts +0 -9
  110. package/dist/types/states/reactflow.d.ts.map +0 -1
  111. package/dist/types/states/reactflow.t.d.ts +0 -12
  112. package/dist/types/states/reactflow.t.d.ts.map +0 -1
  113. package/dist/types/types/rendering.t.d.ts +0 -11
  114. package/dist/types/types/rendering.t.d.ts.map +0 -1
  115. package/dist/types/utils/autolayout/force.d.ts +0 -3
  116. package/dist/types/utils/autolayout/force.d.ts.map +0 -1
  117. package/dist/types/utils/autolayout/index.d.ts +0 -3
  118. package/dist/types/utils/autolayout/index.d.ts.map +0 -1
  119. package/dist/types/utils/autolayout/txt.d.ts +0 -16
  120. package/dist/types/utils/autolayout/txt.d.ts.map +0 -1
  121. package/dist/types/utils/data.d.ts +0 -13
  122. package/dist/types/utils/data.d.ts.map +0 -1
  123. package/dist/types/utils/debugger.d.ts +0 -5
  124. package/dist/types/utils/debugger.d.ts.map +0 -1
  125. package/dist/types/utils/helperfunctions.d.ts +0 -17
  126. package/dist/types/utils/helperfunctions.d.ts.map +0 -1
  127. package/dist/types/utils/index.d.ts +0 -4
  128. package/dist/types/utils/index.d.ts.map +0 -1
  129. package/dist/types/utils/logger.d.ts +0 -25
  130. package/dist/types/utils/logger.d.ts.map +0 -1
  131. package/dist/types/utils/objects.d.ts +0 -30
  132. package/dist/types/utils/objects.d.ts.map +0 -1
@@ -0,0 +1,1726 @@
1
+ @charset "UTF-8";
2
+ :root {
3
+ --expandtime: 0.3s;
4
+ --libnodebgcolor: #48465f;
5
+ --libnodebgcolor_hover: #6a6698;
6
+ }
7
+
8
+ .libcontainer {
9
+ top: 0;
10
+ left: 0;
11
+ height: 100%;
12
+ padding: 0.5rem;
13
+ box-sizing: border-box;
14
+ display: flex;
15
+ flex-direction: column;
16
+ border-radius: 0.5rem;
17
+ }
18
+
19
+ .library {
20
+ display: flex;
21
+ flex-direction: column;
22
+ flex-grow: 1;
23
+ overflow: hidden;
24
+ width: 15rem;
25
+ background-color: var(--funcnodesbackground2);
26
+ border-radius: var(--containerboarderradius);
27
+ padding: 0.5rem;
28
+ }
29
+ .library .libtitle {
30
+ font-size: 1rem;
31
+ font-weight: bold;
32
+ color: var(--funheadercolor);
33
+ }
34
+ .library hr {
35
+ width: 100%;
36
+ }
37
+ .library hr.hr_prominent {
38
+ border: 0.5px solid var(--funheadercolor);
39
+ }
40
+
41
+ .addlib {
42
+ background-color: var(--funcnodesbackground2);
43
+ border-radius: var(--containerboarderradius);
44
+ padding: 0.5rem;
45
+ }
46
+ .addlib button {
47
+ background-color: var(--funcnodesbackground1);
48
+ color: var(--funheadercolor);
49
+ border: 0;
50
+ border-radius: 0.5rem;
51
+ padding: 0.5rem;
52
+ cursor: pointer;
53
+ font-size: 1rem;
54
+ width: 100%;
55
+ }
56
+ .addlib button:hover {
57
+ background-color: var(--funheadercolor);
58
+ color: var(--funcnodesbackground1);
59
+ }
60
+ .addlib button:active {
61
+ background-color: var(--funcnodesbackground1);
62
+ color: var(--funcnodestextcolor1);
63
+ }
64
+ .addlib button[disabled] {
65
+ background-color: var(--funcnodesbackground1);
66
+ color: var(--funcnodestextcolor1);
67
+ cursor: not-allowed;
68
+ }
69
+
70
+ .libfilter {
71
+ display: flex;
72
+ width: 100%;
73
+ flex-direction: row;
74
+ background-color: rgba(0, 0, 0, 0.1);
75
+ padding: 0.2rem;
76
+ }
77
+ .libfilter:focus-within {
78
+ border: 1px solid var(--funheadercolor);
79
+ }
80
+ .libfilter input {
81
+ flex-grow: 1;
82
+ background-color: transparent;
83
+ color: var(--funcnodestextcolor1);
84
+ border: 0;
85
+ }
86
+ .libfilter input:focus {
87
+ outline: none;
88
+ }
89
+
90
+ .libnodecontainer {
91
+ display: grid;
92
+ transition: grid-template-rows var(--expandtime) ease-out;
93
+ }
94
+ .libnodecontainer.close {
95
+ grid-template-rows: 0fr;
96
+ }
97
+ .libnodecontainer.open {
98
+ grid-template-rows: 1fr;
99
+ }
100
+ .libnodecontainer_inner {
101
+ transition: opacity var(--expandtime) ease-out;
102
+ overflow: hidden;
103
+ padding-left: 10px;
104
+ }
105
+ .libnodecontainer.close .libnodecontainer_inner {
106
+ opacity: 0.2;
107
+ }
108
+ .libnodecontainer.open .libnodecontainer_inner {
109
+ opacity: 1;
110
+ }
111
+
112
+ .shelfcontainer {
113
+ padding-top: 0.2rem;
114
+ padding-bottom: 0.2rem;
115
+ display: flex;
116
+ flex-direction: column;
117
+ }
118
+ .shelfcontainer .shelftitle {
119
+ font-size: 0.8rem;
120
+ color: var(--funheadercolor);
121
+ opacity: 0.8;
122
+ display: flex;
123
+ max-width: 100%;
124
+ }
125
+ .shelfcontainer .shelftitle_text {
126
+ flex-grow: 1;
127
+ overflow: hidden;
128
+ text-overflow: ellipsis;
129
+ }
130
+
131
+ .libnodeentry {
132
+ border-radius: 10px;
133
+ box-sizing: border-box;
134
+ background-color: var(--libnodebgcolor);
135
+ margin-bottom: 0.2rem;
136
+ padding: 0.1rem;
137
+ cursor: pointer;
138
+ border: 1px solid var(--libnodebgcolor);
139
+ transition: border 0.2s ease-in-out;
140
+ font-size: 0.8rem;
141
+ box-shadow: -0.2rem 0px rgb(0, 76, 255);
142
+ }
143
+ .libnodeentry:hover {
144
+ background-color: var(--libnodebgcolor_hover);
145
+ border: 1px solid rgb(0, 76, 255);
146
+ }
147
+
148
+ .expandicon {
149
+ transform: rotate(0deg);
150
+ transition: transform var(--expandtime) ease-out;
151
+ }
152
+ .expandicon.close {
153
+ transform: rotate(180deg);
154
+ }
155
+
156
+ .addable-module {
157
+ border: 1px solid #ddd;
158
+ border-radius: 8px;
159
+ padding: 16px;
160
+ margin-bottom: 12px;
161
+ background-color: #f9f9f9;
162
+ transition: box-shadow 0.2s ease-in-out, transform 0.2s ease-in-out;
163
+ margin-left: 20px;
164
+ margin-right: 20px;
165
+ }
166
+ .addable-module:hover {
167
+ box-shadow: 0 4px 8px rgba(0, 0, 0, 0.1);
168
+ transform: translateY(-2px);
169
+ }
170
+ .addable-module .module-name {
171
+ font-size: 1.2rem;
172
+ font-weight: bold;
173
+ color: #333;
174
+ margin-bottom: 8px;
175
+ }
176
+ .addable-module .module-description {
177
+ font-size: 0.75rem;
178
+ color: #666;
179
+ margin-bottom: 8px;
180
+ max-height: 200px;
181
+ overflow: auto;
182
+ }
183
+ .addable-module .module-links {
184
+ font-size: 0.9rem;
185
+ color: #007bff;
186
+ margin-bottom: 8px;
187
+ text-decoration: underline;
188
+ }
189
+ .addable-module .add-button {
190
+ background-color: #28a745;
191
+ border: none;
192
+ color: white;
193
+ padding: 8px 12px;
194
+ border-radius: 4px;
195
+ cursor: pointer;
196
+ font-size: 0.95rem;
197
+ transition: background-color 0.2s ease;
198
+ }
199
+ .addable-module .add-button:hover {
200
+ background-color: #218838;
201
+ }
202
+ .addable-module .remove-button {
203
+ background-color: #dc3545;
204
+ border: none;
205
+ color: white;
206
+ padding: 8px 12px;
207
+ border-radius: 4px;
208
+ cursor: pointer;
209
+ font-size: 0.95rem;
210
+ transition: background-color 0.2s ease;
211
+ }
212
+ .addable-module .remove-button:hover {
213
+ background-color: #c82333;
214
+ }
215
+ .addable-module .update-button {
216
+ background-color: #007bff;
217
+ border: none;
218
+ color: white;
219
+ padding: 8px 12px;
220
+ border-radius: 4px;
221
+ cursor: pointer;
222
+ font-size: 0.95rem;
223
+ transition: background-color 0.2s ease;
224
+ }
225
+ .addable-module .update-button:hover {
226
+ background-color: #0056b3;
227
+ }
228
+ .addable-module .update-button[disabled] {
229
+ background-color: #6c757d;
230
+ cursor: not-allowed;
231
+ }
232
+ .addable-module .toggle-description {
233
+ background-color: transparent;
234
+ border: none;
235
+ color: #007bff;
236
+ cursor: pointer;
237
+ font-size: 0.8rem;
238
+ margin-top: 4px;
239
+ text-decoration: underline;
240
+ padding: 0;
241
+ transition: color 0.2s ease;
242
+ }
243
+ .addable-module .toggle-description:hover {
244
+ color: #0056b3;
245
+ }
246
+
247
+ .dialogoverlay {
248
+ background-color: rgba(0, 0, 0, 0.5);
249
+ position: fixed;
250
+ inset: 0;
251
+ animation: overlayShow 150ms cubic-bezier(0.16, 1, 0.3, 1);
252
+ z-index: 2000;
253
+ }
254
+
255
+ .dialogconent {
256
+ background-color: var(--funcnodesbackground1);
257
+ border-radius: 6px;
258
+ box-shadow: var(--funheadercolor) 0px 10px 38px -10px, var(--funheadercolor) 0px 10px 20px -15px;
259
+ position: fixed;
260
+ top: 50%;
261
+ left: 50%;
262
+ transform: translate(-50%, -50%);
263
+ width: 90vw;
264
+ max-width: 85vw;
265
+ max-height: 85vh;
266
+ padding: 25px;
267
+ animation: contentShow 150ms cubic-bezier(0.16, 1, 0.3, 1);
268
+ color: var(--funcnodestextcolor1);
269
+ border: 1px solid var(--funheadercolor);
270
+ display: flex;
271
+ flex-direction: column;
272
+ z-index: 2001;
273
+ }
274
+
275
+ .dialogtitle {
276
+ margin: 0;
277
+ font-weight: 500;
278
+ color: var(--funheadercolor);
279
+ font-size: 17px;
280
+ }
281
+
282
+ .dialogdescription {
283
+ margin: 10px 0 20px;
284
+ font-size: 15px;
285
+ line-height: 1.5;
286
+ }
287
+
288
+ .dialogclosebutton {
289
+ border-radius: 100%;
290
+ height: 25px;
291
+ width: 25px;
292
+ display: inline-flex;
293
+ background-color: inherit;
294
+ align-items: center;
295
+ justify-content: center;
296
+ color: var(--funheadercolor);
297
+ position: absolute;
298
+ top: 10px;
299
+ right: 10px;
300
+ border: none;
301
+ }
302
+ .dialogclosebutton:hover {
303
+ background-color: var(--funheadercolor);
304
+ color: var(--funcnodesbackground1);
305
+ }
306
+ .dialogclosebutton:active {
307
+ background-color: var(--funheadercolor);
308
+ color: var(--funcnodestextcolor1);
309
+ }
310
+
311
+ .dialogsendbutton {
312
+ background-color: var(--funcnodesbackground1);
313
+ color: var(--funheadercolor);
314
+ border: 1px solid var(--funheadercolor);
315
+ border-radius: 99rem;
316
+ padding: 10px 20px;
317
+ cursor: pointer;
318
+ font-size: 15px;
319
+ margin-top: 20px;
320
+ }
321
+ .dialogsendbutton:hover {
322
+ background-color: var(--funheadercolor);
323
+ color: var(--funcnodesbackground1);
324
+ }
325
+ .dialogsendbutton:active {
326
+ background-color: var(--funheadercolor);
327
+ color: var(--funcnodestextcolor1);
328
+ }
329
+
330
+ .dialogchildren {
331
+ margin-top: 20px;
332
+ overflow: auto;
333
+ }
334
+
335
+ :root {
336
+ --funcnodesedgecolor: #7bb3ec;
337
+ }
338
+
339
+ .funcnodes-edge .react-flow__edge-path {
340
+ stroke: var(--funcnodesedgecolor);
341
+ stroke-width: 2px;
342
+ }
343
+ .funcnodes-edge.selected .react-flow__edge-path {
344
+ stroke: #11ff00;
345
+ }
346
+
347
+ /* this gets exported as style.css and can be used for the default theming */
348
+ /* these are the necessary styles for React Flow, they get used by base.css and style.css */
349
+ .react-flow {
350
+ direction: ltr;
351
+ }
352
+
353
+ .react-flow__container {
354
+ position: absolute;
355
+ width: 100%;
356
+ height: 100%;
357
+ top: 0;
358
+ left: 0;
359
+ }
360
+
361
+ .react-flow__pane {
362
+ z-index: 1;
363
+ cursor: -webkit-grab;
364
+ cursor: grab;
365
+ }
366
+
367
+ .react-flow__pane.selection {
368
+ cursor: pointer;
369
+ }
370
+
371
+ .react-flow__pane.dragging {
372
+ cursor: -webkit-grabbing;
373
+ cursor: grabbing;
374
+ }
375
+
376
+ .react-flow__viewport {
377
+ transform-origin: 0 0;
378
+ z-index: 2;
379
+ pointer-events: none;
380
+ }
381
+
382
+ .react-flow__renderer {
383
+ z-index: 4;
384
+ }
385
+
386
+ .react-flow__selection {
387
+ z-index: 6;
388
+ }
389
+
390
+ .react-flow__nodesselection-rect:focus,
391
+ .react-flow__nodesselection-rect:focus-visible {
392
+ outline: none;
393
+ }
394
+
395
+ .react-flow .react-flow__edges {
396
+ pointer-events: none;
397
+ overflow: visible;
398
+ }
399
+
400
+ .react-flow__edge-path,
401
+ .react-flow__connection-path {
402
+ stroke: #b1b1b7;
403
+ stroke-width: 1;
404
+ fill: none;
405
+ }
406
+
407
+ .react-flow__edge {
408
+ pointer-events: visibleStroke;
409
+ cursor: pointer;
410
+ }
411
+
412
+ .react-flow__edge.animated path {
413
+ stroke-dasharray: 5;
414
+ -webkit-animation: dashdraw 0.5s linear infinite;
415
+ animation: dashdraw 0.5s linear infinite;
416
+ }
417
+
418
+ .react-flow__edge.animated path.react-flow__edge-interaction {
419
+ stroke-dasharray: none;
420
+ -webkit-animation: none;
421
+ animation: none;
422
+ }
423
+
424
+ .react-flow__edge.inactive {
425
+ pointer-events: none;
426
+ }
427
+
428
+ .react-flow__edge.selected,
429
+ .react-flow__edge:focus,
430
+ .react-flow__edge:focus-visible {
431
+ outline: none;
432
+ }
433
+
434
+ .react-flow__edge.selected .react-flow__edge-path,
435
+ .react-flow__edge:focus .react-flow__edge-path,
436
+ .react-flow__edge:focus-visible .react-flow__edge-path {
437
+ stroke: #555;
438
+ }
439
+
440
+ .react-flow__edge-textwrapper {
441
+ pointer-events: all;
442
+ }
443
+
444
+ .react-flow__edge-textbg {
445
+ fill: white;
446
+ }
447
+
448
+ .react-flow__edge .react-flow__edge-text {
449
+ pointer-events: none;
450
+ -webkit-user-select: none;
451
+ -moz-user-select: none;
452
+ user-select: none;
453
+ }
454
+
455
+ .react-flow__connection {
456
+ pointer-events: none;
457
+ }
458
+
459
+ .react-flow__connection .animated {
460
+ stroke-dasharray: 5;
461
+ -webkit-animation: dashdraw 0.5s linear infinite;
462
+ animation: dashdraw 0.5s linear infinite;
463
+ }
464
+
465
+ .react-flow__connectionline {
466
+ z-index: 1001;
467
+ }
468
+
469
+ .react-flow__nodes {
470
+ pointer-events: none;
471
+ transform-origin: 0 0;
472
+ }
473
+
474
+ .react-flow__node {
475
+ position: absolute;
476
+ -webkit-user-select: none;
477
+ -moz-user-select: none;
478
+ user-select: none;
479
+ pointer-events: all;
480
+ transform-origin: 0 0;
481
+ box-sizing: border-box;
482
+ cursor: -webkit-grab;
483
+ cursor: grab;
484
+ }
485
+
486
+ .react-flow__node.dragging {
487
+ cursor: -webkit-grabbing;
488
+ cursor: grabbing;
489
+ }
490
+
491
+ .react-flow__nodesselection {
492
+ z-index: 3;
493
+ transform-origin: left top;
494
+ pointer-events: none;
495
+ }
496
+
497
+ .react-flow__nodesselection-rect {
498
+ position: absolute;
499
+ pointer-events: all;
500
+ cursor: -webkit-grab;
501
+ cursor: grab;
502
+ }
503
+
504
+ .react-flow__handle {
505
+ position: absolute;
506
+ pointer-events: none;
507
+ min-width: 5px;
508
+ min-height: 5px;
509
+ width: 6px;
510
+ height: 6px;
511
+ background: #1a192b;
512
+ border: 1px solid white;
513
+ border-radius: 100%;
514
+ }
515
+
516
+ .react-flow__handle.connectionindicator {
517
+ pointer-events: all;
518
+ cursor: crosshair;
519
+ }
520
+
521
+ .react-flow__handle-bottom {
522
+ top: auto;
523
+ left: 50%;
524
+ bottom: -4px;
525
+ transform: translate(-50%, 0);
526
+ }
527
+
528
+ .react-flow__handle-top {
529
+ left: 50%;
530
+ top: -4px;
531
+ transform: translate(-50%, 0);
532
+ }
533
+
534
+ .react-flow__handle-left {
535
+ top: 50%;
536
+ left: -4px;
537
+ transform: translate(0, -50%);
538
+ }
539
+
540
+ .react-flow__handle-right {
541
+ right: -4px;
542
+ top: 50%;
543
+ transform: translate(0, -50%);
544
+ }
545
+
546
+ .react-flow__edgeupdater {
547
+ cursor: move;
548
+ pointer-events: all;
549
+ }
550
+
551
+ .react-flow__panel {
552
+ position: absolute;
553
+ z-index: 5;
554
+ margin: 15px;
555
+ }
556
+
557
+ .react-flow__panel.top {
558
+ top: 0;
559
+ }
560
+
561
+ .react-flow__panel.bottom {
562
+ bottom: 0;
563
+ }
564
+
565
+ .react-flow__panel.left {
566
+ left: 0;
567
+ }
568
+
569
+ .react-flow__panel.right {
570
+ right: 0;
571
+ }
572
+
573
+ .react-flow__panel.center {
574
+ left: 50%;
575
+ transform: translateX(-50%);
576
+ }
577
+
578
+ .react-flow__attribution {
579
+ font-size: 10px;
580
+ background: rgba(255, 255, 255, 0.5);
581
+ padding: 2px 3px;
582
+ margin: 0;
583
+ }
584
+
585
+ .react-flow__attribution a {
586
+ text-decoration: none;
587
+ color: #999;
588
+ }
589
+
590
+ @-webkit-keyframes dashdraw {
591
+ from {
592
+ stroke-dashoffset: 10;
593
+ }
594
+ }
595
+ @keyframes dashdraw {
596
+ from {
597
+ stroke-dashoffset: 10;
598
+ }
599
+ }
600
+ .react-flow__edgelabel-renderer {
601
+ position: absolute;
602
+ width: 100%;
603
+ height: 100%;
604
+ pointer-events: none;
605
+ -webkit-user-select: none;
606
+ -moz-user-select: none;
607
+ user-select: none;
608
+ }
609
+
610
+ .react-flow__edge.updating .react-flow__edge-path {
611
+ stroke: #777;
612
+ }
613
+
614
+ .react-flow__edge-text {
615
+ font-size: 10px;
616
+ }
617
+
618
+ .react-flow__node.selectable:focus,
619
+ .react-flow__node.selectable:focus-visible {
620
+ outline: none;
621
+ }
622
+
623
+ .react-flow__node-default,
624
+ .react-flow__node-input,
625
+ .react-flow__node-output,
626
+ .react-flow__node-group {
627
+ padding: 10px;
628
+ border-radius: 3px;
629
+ width: 150px;
630
+ font-size: 12px;
631
+ color: #222;
632
+ text-align: center;
633
+ border-width: 1px;
634
+ border-style: solid;
635
+ border-color: #1a192b;
636
+ background-color: white;
637
+ }
638
+
639
+ .react-flow__node-default.selectable:hover, .react-flow__node-input.selectable:hover, .react-flow__node-output.selectable:hover, .react-flow__node-group.selectable:hover {
640
+ box-shadow: 0 1px 4px 1px rgba(0, 0, 0, 0.08);
641
+ }
642
+
643
+ .react-flow__node-default.selectable.selected,
644
+ .react-flow__node-default.selectable:focus,
645
+ .react-flow__node-default.selectable:focus-visible,
646
+ .react-flow__node-input.selectable.selected,
647
+ .react-flow__node-input.selectable:focus,
648
+ .react-flow__node-input.selectable:focus-visible,
649
+ .react-flow__node-output.selectable.selected,
650
+ .react-flow__node-output.selectable:focus,
651
+ .react-flow__node-output.selectable:focus-visible,
652
+ .react-flow__node-group.selectable.selected,
653
+ .react-flow__node-group.selectable:focus,
654
+ .react-flow__node-group.selectable:focus-visible {
655
+ box-shadow: 0 0 0 0.5px #1a192b;
656
+ }
657
+
658
+ .react-flow__node-group {
659
+ background-color: rgba(240, 240, 240, 0.25);
660
+ }
661
+
662
+ .react-flow__nodesselection-rect,
663
+ .react-flow__selection {
664
+ background: rgba(0, 89, 220, 0.08);
665
+ border: 1px dotted rgba(0, 89, 220, 0.8);
666
+ }
667
+
668
+ .react-flow__nodesselection-rect:focus,
669
+ .react-flow__nodesselection-rect:focus-visible,
670
+ .react-flow__selection:focus,
671
+ .react-flow__selection:focus-visible {
672
+ outline: none;
673
+ }
674
+
675
+ .react-flow__controls {
676
+ box-shadow: 0 0 2px 1px rgba(0, 0, 0, 0.08);
677
+ }
678
+
679
+ .react-flow__controls-button {
680
+ border: none;
681
+ background: #fefefe;
682
+ border-bottom: 1px solid #eee;
683
+ box-sizing: content-box;
684
+ display: flex;
685
+ justify-content: center;
686
+ align-items: center;
687
+ width: 16px;
688
+ height: 16px;
689
+ cursor: pointer;
690
+ -webkit-user-select: none;
691
+ -moz-user-select: none;
692
+ user-select: none;
693
+ padding: 5px;
694
+ }
695
+
696
+ .react-flow__controls-button:hover {
697
+ background: #f4f4f4;
698
+ }
699
+
700
+ .react-flow__controls-button svg {
701
+ width: 100%;
702
+ max-width: 12px;
703
+ max-height: 12px;
704
+ }
705
+
706
+ .react-flow__controls-button:disabled {
707
+ pointer-events: none;
708
+ }
709
+
710
+ .react-flow__controls-button:disabled svg {
711
+ fill-opacity: 0.4;
712
+ }
713
+
714
+ .react-flow__minimap {
715
+ background-color: #fff;
716
+ }
717
+
718
+ .react-flow__minimap svg {
719
+ display: block;
720
+ }
721
+
722
+ .react-flow__resize-control {
723
+ position: absolute;
724
+ }
725
+
726
+ .react-flow__resize-control.left,
727
+ .react-flow__resize-control.right {
728
+ cursor: ew-resize;
729
+ }
730
+
731
+ .react-flow__resize-control.top,
732
+ .react-flow__resize-control.bottom {
733
+ cursor: ns-resize;
734
+ }
735
+
736
+ .react-flow__resize-control.top.left,
737
+ .react-flow__resize-control.bottom.right {
738
+ cursor: nwse-resize;
739
+ }
740
+
741
+ .react-flow__resize-control.bottom.left,
742
+ .react-flow__resize-control.top.right {
743
+ cursor: nesw-resize;
744
+ }
745
+
746
+ /* handle styles */
747
+ .react-flow__resize-control.handle {
748
+ width: 4px;
749
+ height: 4px;
750
+ border: 1px solid #fff;
751
+ border-radius: 1px;
752
+ background-color: #3367d9;
753
+ transform: translate(-50%, -50%);
754
+ }
755
+
756
+ .react-flow__resize-control.handle.left {
757
+ left: 0;
758
+ top: 50%;
759
+ }
760
+
761
+ .react-flow__resize-control.handle.right {
762
+ left: 100%;
763
+ top: 50%;
764
+ }
765
+
766
+ .react-flow__resize-control.handle.top {
767
+ left: 50%;
768
+ top: 0;
769
+ }
770
+
771
+ .react-flow__resize-control.handle.bottom {
772
+ left: 50%;
773
+ top: 100%;
774
+ }
775
+
776
+ .react-flow__resize-control.handle.top.left {
777
+ left: 0;
778
+ }
779
+
780
+ .react-flow__resize-control.handle.bottom.left {
781
+ left: 0;
782
+ }
783
+
784
+ .react-flow__resize-control.handle.top.right {
785
+ left: 100%;
786
+ }
787
+
788
+ .react-flow__resize-control.handle.bottom.right {
789
+ left: 100%;
790
+ }
791
+
792
+ /* line styles */
793
+ .react-flow__resize-control.line {
794
+ border-color: #3367d9;
795
+ border-width: 0;
796
+ border-style: solid;
797
+ }
798
+
799
+ .react-flow__resize-control.line.left,
800
+ .react-flow__resize-control.line.right {
801
+ width: 1px;
802
+ transform: translate(-50%, 0);
803
+ top: 0;
804
+ height: 100%;
805
+ }
806
+
807
+ .react-flow__resize-control.line.left {
808
+ left: 0;
809
+ border-left-width: 1px;
810
+ }
811
+
812
+ .react-flow__resize-control.line.right {
813
+ left: 100%;
814
+ border-right-width: 1px;
815
+ }
816
+
817
+ .react-flow__resize-control.line.top,
818
+ .react-flow__resize-control.line.bottom {
819
+ height: 1px;
820
+ transform: translate(0, -50%);
821
+ left: 0;
822
+ width: 100%;
823
+ }
824
+
825
+ .react-flow__resize-control.line.top {
826
+ top: 0;
827
+ border-top-width: 1px;
828
+ }
829
+
830
+ .react-flow__resize-control.line.bottom {
831
+ border-bottom-width: 1px;
832
+ top: 100%;
833
+ }
834
+
835
+ .basicstyleelement, .headermenucontent, .styled-select__menu, .styleelement, .styledcheckbox, .styledinput, .styledbtn, .styleddropdown {
836
+ background-color: var(--funcnodesbackground1);
837
+ color: var(--funcnodestextcolor1);
838
+ border-radius: 0.75rem;
839
+ border: 1px solid var(--funheadercolor);
840
+ }
841
+
842
+ .styleelement, .styledcheckbox, .styledinput, .styledbtn, .styleddropdown {
843
+ height: 2rem;
844
+ padding-left: 0.5rem;
845
+ padding-right: 0.5rem;
846
+ }
847
+ .styleelement:hover, .styledcheckbox:hover, .styledinput:hover, .styledbtn:hover, .styleddropdown:hover {
848
+ background-color: var(--funcnodesbackground_light);
849
+ }
850
+ .styleelement:active, .styledcheckbox:active, .styledinput:active, .styledbtn:active, .styleddropdown:active {
851
+ background-color: var(--funheadercolor);
852
+ color: var(--funcnodesbackground1);
853
+ }
854
+ .styleelement:focus, .styledcheckbox:focus, .styledinput:focus, .styledbtn:focus, .styleddropdown:focus {
855
+ outline: 1px solid var(--funheadercolor);
856
+ }
857
+
858
+ .styleddropdown {
859
+ padding-right: 0.25rem;
860
+ }
861
+
862
+ .styledbtn {
863
+ cursor: pointer;
864
+ }
865
+
866
+ .styledinput :focus {
867
+ outline: none;
868
+ }
869
+
870
+ input[type=number]::-webkit-inner-spin-button,
871
+ input[type=number]::-webkit-outer-spin-button {
872
+ opacity: 0.5;
873
+ background-color: tr;
874
+ }
875
+
876
+ .styledcheckbox {
877
+ height: auto;
878
+ accent-color: var(--funheadercolor);
879
+ }
880
+ .styledcheckbox:focus {
881
+ outline: none;
882
+ }
883
+ .styledcheckbox:after {
884
+ content: "";
885
+ background-color: var(--funheadercolor);
886
+ }
887
+ .styledcheckbox.checked {
888
+ background-color: var(--funheadercolor);
889
+ color: var(--funcnodesbackground1);
890
+ }
891
+
892
+ .SliderContainer {
893
+ display: flex;
894
+ align-items: center;
895
+ width: 100%;
896
+ height: 100%;
897
+ min-height: 20px;
898
+ }
899
+
900
+ .SliderRoot {
901
+ position: relative;
902
+ display: flex;
903
+ align-items: center;
904
+ user-select: none;
905
+ touch-action: none;
906
+ width: 100%;
907
+ height: fit-content;
908
+ }
909
+
910
+ .SliderTrack {
911
+ background-color: var(--funcnodesbackground1);
912
+ position: relative;
913
+ flex-grow: 1;
914
+ border-radius: 9999px;
915
+ height: 3px;
916
+ }
917
+
918
+ .SliderRange {
919
+ position: absolute;
920
+ background-color: var(--funheadercolor);
921
+ border-radius: 9999px;
922
+ height: 100%;
923
+ }
924
+
925
+ .SliderThumb {
926
+ display: block;
927
+ width: 10px;
928
+ height: 10px;
929
+ background-color: white;
930
+ box-shadow: 0 2px 5px rgba(0, 0, 0, 0.3333333333);
931
+ border-radius: 10px;
932
+ }
933
+
934
+ .SliderThumb:hover {
935
+ background-color: #999;
936
+ }
937
+
938
+ .SliderThumb:focus {
939
+ outline: none;
940
+ box-shadow: 0 0 0 5px rgba(0, 0, 0, 0.3333333333);
941
+ }
942
+
943
+ .styled-select__control {
944
+ height: 100%;
945
+ min-height: initial;
946
+ }
947
+ .styled-select__menu-list {
948
+ max-height: 200px !important;
949
+ padding-left: 0;
950
+ height: initial;
951
+ }
952
+ .styled-select__menu {
953
+ margin-left: -0.5rem;
954
+ }
955
+ .styled-select__option:hover {
956
+ background-color: var(--funcnodesbackground_light);
957
+ }
958
+
959
+ button {
960
+ font-family: inherit;
961
+ font-size: inherit;
962
+ }
963
+
964
+ .funcnodesreactflowheader {
965
+ display: flex;
966
+ flex-direction: row;
967
+ height: 50px;
968
+ justify-content: flex-start;
969
+ position: relative;
970
+ top: 0;
971
+ left: 0;
972
+ z-index: 1000;
973
+ }
974
+ .funcnodesreactflowheader .headerelement {
975
+ height: 100%;
976
+ display: flex;
977
+ align-items: center;
978
+ margin: 4px 4px 4px 4px;
979
+ position: relative;
980
+ white-space: nowrap;
981
+ }
982
+ .funcnodesreactflowheader .statusbar {
983
+ width: 250px;
984
+ height: 1.5rem;
985
+ background-color: var(--funcnodesbackground2);
986
+ display: inline-block;
987
+ margin: 2px 4px 0px 4px;
988
+ position: relative;
989
+ border-radius: 0.5rem;
990
+ overflow: hidden;
991
+ }
992
+ .funcnodesreactflowheader .statusbar-progressbar {
993
+ position: absolute;
994
+ top: 0;
995
+ left: 0;
996
+ width: 0;
997
+ height: 100%;
998
+ background-color: var(--funheadercolor);
999
+ display: inline-block;
1000
+ }
1001
+ .funcnodesreactflowheader .statusbar-message {
1002
+ position: relative;
1003
+ top: 0;
1004
+ left: 0;
1005
+ font-size: 0.8rem;
1006
+ color: var(--funheadercolor);
1007
+ mix-blend-mode: difference;
1008
+ }
1009
+
1010
+ .headermenucontent {
1011
+ max-height: 90vh;
1012
+ overflow: auto;
1013
+ padding: 5px;
1014
+ border-radius: 0.25rem;
1015
+ }
1016
+
1017
+ .headermenuitem {
1018
+ padding: 0 5px;
1019
+ }
1020
+ .headermenuitem[data-highlighted] {
1021
+ background-color: var(--funcnodesbackground_light);
1022
+ }
1023
+ .headermenuitem[data-state=open] {
1024
+ background-color: var(--funcnodesbackground_light);
1025
+ }
1026
+ .headermenuitem[data-state=checked] {
1027
+ background-color: var(--funcnodesbackground_light);
1028
+ color: #fff;
1029
+ }
1030
+
1031
+ :root {
1032
+ --funheadercolor: #00d9ff;
1033
+ --funcnodesbackground1: hsl(243, 26%, 13%);
1034
+ --funcnodesbackground2: hsl(245, 22%, 22%);
1035
+ --funcnodesbackground_light: hsl(240, 22%, 38%);
1036
+ --containerboarderradius: 1rem;
1037
+ --funcnodestextcolor1: #ffffff;
1038
+ }
1039
+
1040
+ .funcnodescontainer {
1041
+ font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", "Roboto", "Oxygen", "Ubuntu", "Cantarell", "Fira Sans", "Droid Sans", "Helvetica Neue", sans-serif;
1042
+ -webkit-font-smoothing: antialiased;
1043
+ -moz-osx-font-smoothing: grayscale;
1044
+ }
1045
+ .funcnodescontainer code {
1046
+ font-family: source-code-pro, Menlo, Monaco, Consolas, "Courier New", monospace;
1047
+ }
1048
+
1049
+ .funcnodesreactflowcontainer {
1050
+ width: 100%;
1051
+ height: 100%;
1052
+ background-color: var(--funcnodesbackground1);
1053
+ position: relative;
1054
+ display: flex;
1055
+ flex-direction: column;
1056
+ color: var(--funcnodestextcolor1);
1057
+ }
1058
+ .funcnodesreactflowcontainer * {
1059
+ box-sizing: border-box;
1060
+ }
1061
+
1062
+ .funcnodesreactflowbody {
1063
+ flex-grow: 1;
1064
+ position: relative;
1065
+ display: flex;
1066
+ flex-direction: row;
1067
+ overflow: hidden;
1068
+ }
1069
+
1070
+ .reactflowlayer {
1071
+ flex-grow: 1;
1072
+ position: relative;
1073
+ overflow: hidden;
1074
+ background-color: var(--funcnodesbackground2);
1075
+ margin: 0.5rem;
1076
+ border-radius: var(--containerboarderradius);
1077
+ }
1078
+
1079
+ .vscrollcontainer {
1080
+ overflow-y: auto;
1081
+ overflow-x: hidden;
1082
+ flex-grow: 1;
1083
+ padding: 0.5rem;
1084
+ box-sizing: border-box;
1085
+ }
1086
+
1087
+ .workerselect {
1088
+ max-width: 140px;
1089
+ }
1090
+
1091
+ .workerselectoption.selected {
1092
+ color: var(--funcnodestextcolor1);
1093
+ }
1094
+ .workerselectoption.active {
1095
+ color: green;
1096
+ }
1097
+ .workerselectoption.inactive {
1098
+ color: red;
1099
+ }
1100
+
1101
+ :root {
1102
+ --node_border_radius: 5px;
1103
+ --handle_outer_radius: 4px;
1104
+ --handle_inner_radius: 2px;
1105
+ --handle_width: 10;
1106
+ --handle_width_hover: 15;
1107
+ --handle_overlap: 3;
1108
+ --nodeinput_margin: 2;
1109
+ --nodeio_shift: calc(var(--handle_overlap) - var(--nodeinput_margin));
1110
+ --handle_source_color: hsl(190, 98%, 49%);
1111
+ --handle_target_color: hsl(204, 98%, 51%);
1112
+ --node_background: hsl(245, 51%, 42%);
1113
+ --node_header_color: hsl(245, 51%, 22%);
1114
+ }
1115
+
1116
+ .react-flow__node {
1117
+ padding: 0;
1118
+ border-radius: var(--node_border_radius);
1119
+ background-color: var(--node_background);
1120
+ display: flex;
1121
+ flex-direction: column;
1122
+ color: #f0f8ff;
1123
+ box-sizing: content-box;
1124
+ transform: -50%, -50%;
1125
+ border: 2px solid rgba(255, 255, 255, 0);
1126
+ font-size: 0.5rem;
1127
+ width: auto;
1128
+ max-width: 200px;
1129
+ min-width: 100px;
1130
+ background-clip: content-box;
1131
+ }
1132
+ .react-flow__node.selected {
1133
+ border-color: rgba(255, 255, 255, 0.6);
1134
+ }
1135
+ .react-flow__node * {
1136
+ box-sizing: border-box;
1137
+ }
1138
+ .react-flow__handle {
1139
+ height: calc(100% - 4px);
1140
+ border-radius: 0;
1141
+ width: calc(var(--handle_width) * 1px);
1142
+ transition: left 0.2s ease-in-out, right 0.2s ease-in-out, width 0.2s ease-in-out;
1143
+ }
1144
+ .react-flow__handle:hover {
1145
+ width: calc(var(--handle_width_hover) * 1px);
1146
+ }
1147
+ .react-flow__handle.source {
1148
+ background-color: var(--handle_source_color);
1149
+ }
1150
+ .react-flow__handle.target {
1151
+ background-color: var(--handle_target_color);
1152
+ }
1153
+ .react-flow__handle-left {
1154
+ border-radius: var(--handle_outer_radius) var(--handle_inner_radius) var(--handle_inner_radius) var(--handle_outer_radius);
1155
+ left: calc((var(--nodeio_shift) - var(--handle_width)) * 1px);
1156
+ }
1157
+ .react-flow__handle-left:hover {
1158
+ left: calc((var(--nodeio_shift) - var(--handle_width_hover)) * 1px);
1159
+ }
1160
+ .react-flow__handle-right {
1161
+ border-radius: var(--handle_inner_radius) var(--handle_outer_radius) var(--handle_outer_radius) var(--handle_inner_radius);
1162
+ right: calc((var(--nodeio_shift) - var(--handle_width)) * 1px);
1163
+ }
1164
+ .react-flow__handle-right:hover {
1165
+ right: calc((var(--nodeio_shift) - var(--handle_width_hover)) * 1px);
1166
+ }
1167
+ .react-flow__handle-top {
1168
+ border-radius: var(--handle_outer_radius) var(--handle_outer_radius) var(--handle_inner_radius) var(--handle_inner_radius);
1169
+ }
1170
+ .react-flow__handle-bottom {
1171
+ border-radius: var(--handle_inner_radius) var(--handle_inner_radius) var(--handle_outer_radius) var(--handle_outer_radius);
1172
+ }
1173
+
1174
+ .innernode {
1175
+ width: 100%;
1176
+ height: 100%;
1177
+ flex-direction: column;
1178
+ display: flex;
1179
+ box-sizing: border-box;
1180
+ }
1181
+ .innernode.intrigger .nodeheader {
1182
+ background-color: #abb408;
1183
+ }
1184
+ .innernode.error .nodeheader {
1185
+ background-color: #ff0000;
1186
+ }
1187
+
1188
+ .nodeheader {
1189
+ box-sizing: border-box;
1190
+ background-color: var(--node_header_color);
1191
+ width: 100%;
1192
+ padding: 0.1rem;
1193
+ border-radius: var(--node_border_radius) var(--node_border_radius) 0 0;
1194
+ display: flex; /* Use flex layout */
1195
+ align-items: center; /* Align items vertically in the center */
1196
+ justify-content: space-between; /* Distribute space between items */
1197
+ }
1198
+ .nodeheader_element {
1199
+ display: flex; /* Enable flex within each child to center content */
1200
+ align-items: center; /* Align items vertically in the center */
1201
+ }
1202
+ .nodeheader_title {
1203
+ flex-grow: 1; /* Allow the text div to grow and fill available space */
1204
+ margin: 0 10px; /* Add some space around the text for aesthetics */
1205
+ white-space: nowrap; /* Prevent wrapping */
1206
+ overflow: hidden; /* Hide overflow */
1207
+ text-overflow: ellipsis; /* Add ellipsis to overflow */
1208
+ justify-content: center; /* Center the text horizontally */
1209
+ }
1210
+ .nodeheader_title_text {
1211
+ overflow: hidden;
1212
+ text-overflow: ellipsis;
1213
+ white-space: nowrap;
1214
+ max-width: 100%; /* Ensure it does not overflow the parent */
1215
+ }
1216
+ .nodeheader .triggerbutton {
1217
+ cursor: pointer;
1218
+ }
1219
+ .nodeheader .triggerbutton:hover {
1220
+ color: #0cc3f5;
1221
+ }
1222
+ .nodeheader .triggerbutton:active {
1223
+ color: #075d74;
1224
+ }
1225
+
1226
+ .nodename_input {
1227
+ border: 1px solid #000000;
1228
+ border-radius: 2px;
1229
+ background: none;
1230
+ color: white;
1231
+ text-align: center;
1232
+ font-size: inherit;
1233
+ margin: 2px;
1234
+ box-sizing: border-box;
1235
+ }
1236
+
1237
+ .nodefooter {
1238
+ background-color: #4e0ba5;
1239
+ width: 100%;
1240
+ padding: 0.1rem;
1241
+ border-radius: 0 0 var(--node_border_radius) var(--node_border_radius);
1242
+ }
1243
+ .nodefooter:empty {
1244
+ display: none;
1245
+ }
1246
+ .nodefooter .nodeerror {
1247
+ border: 1px solid #ff0000;
1248
+ border-radius: 2px;
1249
+ padding: 0.25rem;
1250
+ background-color: rgba(255, 0, 0, 0.4588235294);
1251
+ }
1252
+
1253
+ .nodebody {
1254
+ flex-grow: 1;
1255
+ }
1256
+
1257
+ .nodedatabody {
1258
+ overflow: auto;
1259
+ }
1260
+
1261
+ .noderesizecontrol {
1262
+ background: transparent !important;
1263
+ border: none !important;
1264
+ font-size: 0.5rem;
1265
+ }
1266
+
1267
+ .noderesizeicon {
1268
+ position: absolute;
1269
+ bottom: 4px;
1270
+ right: 4px;
1271
+ font-size: 0.5rem;
1272
+ }
1273
+
1274
+ .nodeio, .nodeoutput, .nodeinput {
1275
+ width: auto;
1276
+ background-color: inherit;
1277
+ padding: 0.1rem;
1278
+ margin-top: 0.1rem;
1279
+ margin-bottom: 0.1rem;
1280
+ position: relative;
1281
+ display: flex;
1282
+ flex-direction: row;
1283
+ border: 1px solid rgba(255, 255, 255, 0.5333333333);
1284
+ border-radius: 3px;
1285
+ box-sizing: border-box;
1286
+ margin-left: calc(var(--nodeinput_margin) * 1px);
1287
+ margin-right: calc(var(--nodeinput_margin) * 1px);
1288
+ align-items: center;
1289
+ }
1290
+
1291
+ .iovaluefield {
1292
+ flex-grow: 1;
1293
+ flex-shrink: 1;
1294
+ overflow: hidden;
1295
+ align-items: start;
1296
+ justify-content: start;
1297
+ display: flex;
1298
+ margin: 0.2rem;
1299
+ line-break: anywhere;
1300
+ }
1301
+ .iovaluefield > input {
1302
+ width: 100%;
1303
+ }
1304
+
1305
+ .nodeinput > .iovaluefield {
1306
+ overflow: visible;
1307
+ }
1308
+
1309
+ .ioname {
1310
+ flex-grow: 1;
1311
+ flex-shrink: 1;
1312
+ color: inherit;
1313
+ margin: 0.2rem;
1314
+ overflow: hidden;
1315
+ min-width: 2rem;
1316
+ }
1317
+ .nodeinput .ioname {
1318
+ text-align: left;
1319
+ }
1320
+ .nodeoutput .ioname {
1321
+ text-align: right;
1322
+ }
1323
+
1324
+ .nodedatainput {
1325
+ height: 1.5rem;
1326
+ display: flex;
1327
+ align-items: center;
1328
+ }
1329
+
1330
+ input.nodedatainput:focus {
1331
+ outline: none;
1332
+ }
1333
+
1334
+ .nodedatastyledelement, input.nodedatainput.styledinput,
1335
+ .nodedatainput.styleddropdown {
1336
+ background-color: var(--node_header_color);
1337
+ font-size: 0.5rem;
1338
+ height: 1.5rem;
1339
+ }
1340
+ .nodedatastyledelement:disabled, input.nodedatainput.styledinput:disabled,
1341
+ .nodedatainput.styleddropdown:disabled {
1342
+ opacity: 0.5;
1343
+ }
1344
+
1345
+ input.nodedatainput.styledinput,
1346
+ .nodedatainput.styleddropdown {
1347
+ width: 100%;
1348
+ }
1349
+
1350
+ .nodeprogress {
1351
+ width: 100%;
1352
+ height: 10px;
1353
+ transition: height 0.1s ease;
1354
+ overflow: hidden;
1355
+ }
1356
+ .nodeprogress-text {
1357
+ text-align: center;
1358
+ color: white;
1359
+ mix-blend-mode: difference;
1360
+ }
1361
+ .nodeprogress-bar {
1362
+ border-radius: 3px;
1363
+ }
1364
+ .nodeprogress-progress {
1365
+ background-color: #b7f50c;
1366
+ border-radius: 3px;
1367
+ transition: width 0.3s ease;
1368
+ }
1369
+
1370
+ .nodesettings_container {
1371
+ height: 100%;
1372
+ display: flex;
1373
+ flex-direction: row;
1374
+ }
1375
+ .nodesettings_expander {
1376
+ height: 100%;
1377
+ display: flex;
1378
+ align-items: center;
1379
+ justify-content: center;
1380
+ cursor: pointer;
1381
+ padding: 3px 3px;
1382
+ }
1383
+ .nodesettings_content {
1384
+ display: flex;
1385
+ flex-direction: column;
1386
+ flex: 1;
1387
+ padding: 0 5px;
1388
+ overflow: auto;
1389
+ transition: width 0.5s;
1390
+ }
1391
+ .nodesettings_content.expanded {
1392
+ width: 250px;
1393
+ }
1394
+ .nodesettings_content.collapsed {
1395
+ width: 0;
1396
+ }
1397
+ .nodesettings_section {
1398
+ margin-bottom: 10px;
1399
+ margin-left: 0.5rem;
1400
+ }
1401
+ .nodesettings_component {
1402
+ margin-bottom: 0.5rem;
1403
+ margin-left: 0.5rem;
1404
+ margin-top: 0.5rem;
1405
+ }
1406
+
1407
+ .tablecontainer {
1408
+ overflow: auto;
1409
+ background-color: white;
1410
+ min-height: 20rem;
1411
+ }
1412
+
1413
+ .tableHead {
1414
+ color: var(--funheadercolor) !important;
1415
+ background-color: var(--funcnodesbackground1);
1416
+ font-weight: bold !important;
1417
+ }
1418
+
1419
+ .tableheadercolor {
1420
+ color: inherit !important;
1421
+ font-family: inherit !important;
1422
+ font-weight: inherit !important;
1423
+ }
1424
+
1425
+ .indexcol {
1426
+ background-color: var(--funcnodesbackground2);
1427
+ color: var(--funheadercolor) !important;
1428
+ font-family: inherit !important;
1429
+ font-weight: inherit !important;
1430
+ }
1431
+
1432
+ .styled-select__control {
1433
+ height: 100%;
1434
+ min-height: initial;
1435
+ min-width: 10px;
1436
+ }
1437
+ .styled-select__menu-list {
1438
+ max-height: 200px;
1439
+ }
1440
+ .styled-select__single-value {
1441
+ text-align: start;
1442
+ }
1443
+ .styled-select__option {
1444
+ text-align: start;
1445
+ padding: 2px 5px;
1446
+ }
1447
+ .styled-select__option:hover {
1448
+ cursor: pointer;
1449
+ }
1450
+
1451
+ .colorspace {
1452
+ margin: 0.2rem;
1453
+ display: grid;
1454
+ grid-template-columns: auto minmax(0, 1fr);
1455
+ }
1456
+ .colorspace_title {
1457
+ font-size: 0.7em;
1458
+ font-weight: bold;
1459
+ }
1460
+ .colorspace label {
1461
+ font-size: 0.7rem;
1462
+ }
1463
+ .colorspace input {
1464
+ font-size: 0.7rem;
1465
+ max-height: 0.7rem;
1466
+ }
1467
+ .colorspace input[type=range] {
1468
+ width: 100%;
1469
+ margin: 0;
1470
+ padding: 0;
1471
+ -webkit-appearance: none;
1472
+ background-color: #666;
1473
+ height: 0.7rem;
1474
+ border-radius: 5px;
1475
+ }
1476
+ .colorspace input[type=range]::-webkit-slider-thumb, .colorspace input[type=range]::-webkit-range-thumb, .colorspace input[type=range]::-moz-range-thumb {
1477
+ width: 0.7rem;
1478
+ height: 0.7rem;
1479
+ background-color: #cc1c1c;
1480
+ border-radius: 50%;
1481
+ cursor: pointer;
1482
+ }
1483
+
1484
+ s slideUpAndFade from {
1485
+ opacity: 0;
1486
+ transform: translateY(2px);
1487
+ }
1488
+ s slideUpAndFade to {
1489
+ opacity: 1;
1490
+ transform: translateY(0);
1491
+ }
1492
+
1493
+ @keyframes slideRightAndFade {
1494
+ from {
1495
+ opacity: 0;
1496
+ transform: translateX(-2px);
1497
+ }
1498
+ to {
1499
+ opacity: 1;
1500
+ transform: translateX(0);
1501
+ }
1502
+ }
1503
+ @keyframes slideDownAndFade {
1504
+ from {
1505
+ opacity: 0;
1506
+ transform: translateY(-2px);
1507
+ }
1508
+ to {
1509
+ opacity: 1;
1510
+ transform: translateY(0);
1511
+ }
1512
+ }
1513
+ @keyframes slideLeftAndFade {
1514
+ from {
1515
+ opacity: 0;
1516
+ transform: translateX(2px);
1517
+ }
1518
+ to {
1519
+ opacity: 1;
1520
+ transform: translateX(0);
1521
+ }
1522
+ }
1523
+ .iotooltipcontent {
1524
+ background-color: #f9f9f9;
1525
+ border: 1px solid #ffffff;
1526
+ border-radius: 5px;
1527
+ padding: 10px;
1528
+ box-shadow: hsla(206, 22%, 7%, 0.35) 0px 10px 38px -10px, hsla(206, 22%, 7%, 0.2) 0px 10px 20px -15px;
1529
+ font-size: 10px;
1530
+ color: #333;
1531
+ max-width: 40vw;
1532
+ max-height: 40vh;
1533
+ cursor: default;
1534
+ overflow: auto;
1535
+ display: flex;
1536
+ flex-direction: column;
1537
+ }
1538
+ .iotooltipcontent.fullsize {
1539
+ max-width: 100vw;
1540
+ max-height: 100vh;
1541
+ position: fixed;
1542
+ top: 0;
1543
+ }
1544
+ .iotooltipcontent[data-state=delayed-open][data-side=top] {
1545
+ animation-name: slideDownAndFade;
1546
+ }
1547
+ .iotooltipcontent[data-state=delayed-open][data-side=right] {
1548
+ animation-name: slideLeftAndFade;
1549
+ }
1550
+ .iotooltipcontent[data-state=delayed-open][data-side=bottom] {
1551
+ animation-name: slideUpAndFade;
1552
+ }
1553
+ .iotooltipcontent[data-state=delayed-open][data-side=left] {
1554
+ animation-name: slideRightAndFade;
1555
+ }
1556
+
1557
+ .iotooltip_container {
1558
+ display: flex;
1559
+ flex-direction: column;
1560
+ max-width: inherit;
1561
+ max-height: inherit;
1562
+ }
1563
+
1564
+ .iotooltipcontentarrow {
1565
+ fill: white;
1566
+ }
1567
+
1568
+ /* base styles */
1569
+ ._GzYRV {
1570
+ line-height: 1.2;
1571
+ white-space: pre-wrap;
1572
+ white-space: -moz-pre-wrap;
1573
+ white-space: -pre-wrap;
1574
+ white-space: -o-pre-wrap;
1575
+ word-wrap: break-word;
1576
+ }
1577
+
1578
+ ._3eOF8 {
1579
+ margin-right: 5px;
1580
+ font-weight: bold;
1581
+ }
1582
+
1583
+ ._3eOF8 + ._3eOF8 {
1584
+ margin-left: -5px;
1585
+ }
1586
+
1587
+ ._1MFti {
1588
+ cursor: pointer;
1589
+ }
1590
+
1591
+ ._f10Tu {
1592
+ font-size: 1.2em;
1593
+ margin-right: 5px;
1594
+ -webkit-user-select: none;
1595
+ -moz-user-select: none;
1596
+ user-select: none;
1597
+ }
1598
+
1599
+ ._1UmXx::after {
1600
+ content: "▸";
1601
+ }
1602
+
1603
+ ._1LId0::after {
1604
+ content: "▾";
1605
+ }
1606
+
1607
+ ._1pNG9 {
1608
+ margin-right: 5px;
1609
+ }
1610
+
1611
+ ._1pNG9::after {
1612
+ content: "...";
1613
+ font-size: 0.8em;
1614
+ }
1615
+
1616
+ ._2IvMF {
1617
+ background: #eee;
1618
+ }
1619
+
1620
+ ._2bkNM {
1621
+ margin: 0;
1622
+ padding: 0 10px;
1623
+ }
1624
+
1625
+ ._1BXBN {
1626
+ margin: 0;
1627
+ padding: 0;
1628
+ }
1629
+
1630
+ /* default light style */
1631
+ ._1MGIk {
1632
+ font-weight: 600;
1633
+ margin-right: 5px;
1634
+ color: #000000;
1635
+ }
1636
+
1637
+ ._3uHL6 {
1638
+ color: #000000;
1639
+ }
1640
+
1641
+ ._2T6PJ {
1642
+ color: #df113a;
1643
+ }
1644
+
1645
+ ._1Gho6 {
1646
+ color: #df113a;
1647
+ }
1648
+
1649
+ ._vGjyY {
1650
+ color: rgb(42, 63, 60);
1651
+ }
1652
+
1653
+ ._1bQdo {
1654
+ color: #0b75f5;
1655
+ }
1656
+
1657
+ ._3zQKs {
1658
+ color: rgb(70, 144, 56);
1659
+ }
1660
+
1661
+ ._1xvuR {
1662
+ color: #43413d;
1663
+ }
1664
+
1665
+ ._oLqym {
1666
+ color: #000000;
1667
+ }
1668
+
1669
+ ._2AXVT {
1670
+ color: #000000;
1671
+ }
1672
+
1673
+ ._2KJWg {
1674
+ color: #000000;
1675
+ }
1676
+
1677
+ /* default dark style */
1678
+ ._11RoI {
1679
+ background: rgb(0, 43, 54);
1680
+ }
1681
+
1682
+ ._17H2C {
1683
+ color: rgb(253, 246, 227);
1684
+ }
1685
+
1686
+ ._3QHg2 {
1687
+ color: rgb(253, 246, 227);
1688
+ }
1689
+
1690
+ ._3fDAz {
1691
+ color: rgb(253, 246, 227);
1692
+ }
1693
+
1694
+ ._2bSDX {
1695
+ font-weight: bolder;
1696
+ margin-right: 5px;
1697
+ color: rgb(253, 246, 227);
1698
+ }
1699
+
1700
+ ._gsbQL {
1701
+ color: rgb(253, 246, 227);
1702
+ }
1703
+
1704
+ ._LaAZe {
1705
+ color: rgb(129, 181, 172);
1706
+ }
1707
+
1708
+ ._GTKgm {
1709
+ color: rgb(129, 181, 172);
1710
+ }
1711
+
1712
+ ._Chy1W {
1713
+ color: rgb(203, 75, 22);
1714
+ }
1715
+
1716
+ ._2bveF {
1717
+ color: rgb(211, 54, 130);
1718
+ }
1719
+
1720
+ ._2vRm- {
1721
+ color: rgb(174, 129, 255);
1722
+ }
1723
+
1724
+ ._1prJR {
1725
+ color: rgb(38, 139, 210);
1726
+ }