@dschz/solid-flow 0.3.0-next.0 → 0.3.0-next.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.
@@ -1,20 +1,757 @@
1
1
  /* Container Styles */
2
- @import "../components/container/styles.css";
3
- @import "../components/accessibility/styles.css";
4
-
5
- /* Graph Styles */
6
- @import "../components/graph/connection/styles.css";
7
- @import "../components/graph/edge/styles.css";
8
- @import "../components/graph/handle/styles.css";
9
- @import "../components/graph/node/styles.css";
10
- @import "../components/graph/plugins/background/styles.css";
11
- @import "../components/graph/plugins/controls/styles.css";
12
- @import "../components/graph/plugins/minimap/styles.css";
13
- @import "../components/graph/plugins/nodeResizer/styles.css";
14
- @import "../components/graph/selection/styles.css";
2
+ /* src/components/container/styles.css */
3
+ .solid-flow__zoom {
4
+ z-index: 4;
5
+ }
6
+
7
+ .solid-flow__viewport {
8
+ transform-origin: 0 0;
9
+ z-index: 2;
10
+ pointer-events: none;
11
+ }
12
+
13
+ .solid-flow__viewport-portal {
14
+ user-select: none;
15
+ }
16
+
17
+ .solid-flow__pane {
18
+ z-index: 1;
19
+
20
+ &.draggable {
21
+ cursor: grab;
22
+ }
23
+
24
+ &.dragging {
25
+ cursor: grabbing;
26
+ }
27
+
28
+ &.selection {
29
+ cursor: pointer;
30
+ }
31
+ }
32
+
33
+ .solid-flow__panel {
34
+ position: absolute;
35
+ z-index: 5;
36
+ margin: 15px;
37
+
38
+ &.top {
39
+ top: 0;
40
+ }
41
+
42
+ &.bottom {
43
+ bottom: 0;
44
+ }
45
+
46
+ &.left {
47
+ left: 0;
48
+ }
49
+
50
+ &.right {
51
+ right: 0;
52
+ }
53
+
54
+ &.center {
55
+ left: 50%;
56
+ transform: translateX(-50%);
57
+ }
58
+ }
59
+
60
+ .solid-flow__nodes {
61
+ z-index: 0;
62
+ pointer-events: none;
63
+ transform-origin: 0 0;
64
+ }
65
+
66
+ /* src/components/accessibility/styles.css */
67
+ .a11y-hidden {
68
+ display: none;
69
+ }
70
+
71
+ .a11y-live-msg {
72
+ position: absolute;
73
+ width: 1px;
74
+ height: 1px;
75
+ margin: -1px;
76
+ border: 0;
77
+ padding: 0;
78
+ overflow: hidden;
79
+ clip: rect(0px, 0px, 0px, 0px);
80
+ clip-path: inset(100%);
81
+ }
82
+
83
+
84
+ /* Graph Element Styles */
85
+ /* src/components/connection/styles.css */
86
+ .solid-flow {
87
+ --xy-connectionline-stroke-default: #b1b1b7;
88
+ --xy-connectionline-stroke-width-default: 1;
89
+ }
90
+
91
+ .solid-flow.dark {
92
+ --xy-connectionline-stroke-default: #b1b1b7;
93
+ --xy-connectionline-stroke-width-default: 1;
94
+ }
95
+
96
+ connectionline {
97
+ z-index: 1001;
98
+ overflow: visible;
99
+ position: absolute;
100
+ }
101
+
102
+ .solid-flow__connection {
103
+ pointer-events: none;
104
+
105
+ .animated {
106
+ stroke-dasharray: 5;
107
+ animation: dashdraw 0.5s linear infinite;
108
+ }
109
+ }
110
+
111
+ .solid-flow__connection-path {
112
+ fill: none;
113
+ stroke: var(--xy-connectionline-stroke, var(--xy-connectionline-stroke-default));
114
+ stroke-width: var(
115
+ --xy-connectionline-stroke-width,
116
+ var(--xy-connectionline-stroke-width-default)
117
+ );
118
+ }
119
+
120
+ /* src/components/edge/styles.css */
121
+ .solid-flow {
122
+ --xy-edge-label-background-color-default: #ffffff;
123
+ --xy-edge-label-color-default: inherit;
124
+
125
+ --xy-edge-stroke-default: #b1b1b7;
126
+ --xy-edge-stroke-width-default: 1;
127
+ --xy-edge-stroke-selected-default: #555;
128
+ }
129
+
130
+ .solid-flow.dark {
131
+ --xy-edge-stroke-default: #3e3e3e;
132
+ --xy-edge-stroke-width-default: 1;
133
+ --xy-edge-stroke-selected-default: #727272;
134
+ }
135
+
136
+ .solid-flow__edgeupdater {
137
+ cursor: move;
138
+ pointer-events: all;
139
+ }
140
+
141
+ .solid-flow__edgelabel-renderer {
142
+ position: absolute;
143
+ width: 100%;
144
+ height: 100%;
145
+ pointer-events: none;
146
+ user-select: none;
147
+ left: 0;
148
+ top: 0;
149
+ z-index: 0;
150
+ }
151
+
152
+ .solid-flow__edge-label {
153
+ text-align: center;
154
+ position: absolute;
155
+ padding: 2px;
156
+ font-size: 10px;
157
+ cursor: pointer;
158
+ color: var(--xy-edge-label-color, var(--xy-edge-label-color-default));
159
+ background: var(--xy-edge-label-background-color, var(--xy-edge-label-background-color-default));
160
+ }
161
+
162
+ .solid-flow__edge-path {
163
+ stroke: var(--xy-edge-stroke, var(--xy-edge-stroke-default));
164
+ stroke-width: var(--xy-edge-stroke-width, var(--xy-edge-stroke-width-default));
165
+ fill: none;
166
+ }
167
+
168
+ .solid-flow__edges {
169
+ position: absolute;
170
+
171
+ svg {
172
+ overflow: visible;
173
+ position: absolute;
174
+ pointer-events: none;
175
+ }
176
+ }
177
+
178
+ .solid-flow__edge {
179
+ pointer-events: visibleStroke;
180
+
181
+ &.updating {
182
+ .solid-flow__edge-path {
183
+ stroke: #777;
184
+ }
185
+ }
186
+
187
+ &.selectable {
188
+ cursor: pointer;
189
+ }
190
+
191
+ &.animated path {
192
+ stroke-dasharray: 5;
193
+ animation: dashdraw 0.5s linear infinite;
194
+ }
195
+
196
+ &.animated path.solid-flow__edge-interaction {
197
+ stroke-dasharray: none;
198
+ animation: none;
199
+ }
200
+
201
+ &.inactive {
202
+ pointer-events: none;
203
+ }
204
+
205
+ &.selected,
206
+ &:focus,
207
+ &:focus-visible {
208
+ outline: none;
209
+ }
210
+
211
+ &.selected .solid-flow__edge-path,
212
+ &.selectable:focus .solid-flow__edge-path,
213
+ &.selectable:focus-visible .solid-flow__edge-path {
214
+ stroke: var(--xy-edge-stroke-selected, var(--xy-edge-stroke-selected-default));
215
+ }
216
+
217
+ &.textwrapper {
218
+ pointer-events: all;
219
+ }
220
+
221
+ &.text {
222
+ font-size: 10px;
223
+ pointer-events: none;
224
+ user-select: none;
225
+ }
226
+ }
227
+
228
+ /* src/components/handle/styles.css */
229
+ .solid-flow {
230
+ --xy-handle-background-color-default: #1a192b;
231
+ --xy-handle-border-color-default: #fff;
232
+ }
233
+
234
+ .solid-flow.dark {
235
+ --xy-handle-background-color-default: #bebebe;
236
+ --xy-handle-border-color-default: #1e1e1e;
237
+ }
238
+
239
+ .solid-flow__handle {
240
+ position: absolute;
241
+ pointer-events: none;
242
+ min-width: 5px;
243
+ min-height: 5px;
244
+
245
+ width: 6px;
246
+ height: 6px;
247
+ background-color: var(--xy-handle-background-color, var(--xy-handle-background-color-default));
248
+ border: 1px solid var(--xy-handle-border-color, var(--xy-handle-border-color-default));
249
+ border-radius: 100%;
250
+
251
+ &.connectingfrom {
252
+ pointer-events: all;
253
+ }
254
+
255
+ &.connectionindicator {
256
+ pointer-events: all;
257
+ cursor: crosshair;
258
+ }
259
+ }
260
+
261
+ .solid-flow__handle-left {
262
+ top: 50%;
263
+ left: 0;
264
+ transform: translate(-50%, -50%);
265
+ }
266
+
267
+ .solid-flow__handle-right {
268
+ top: 50%;
269
+ right: 0;
270
+ transform: translate(50%, -50%);
271
+ }
272
+
273
+ .solid-flow__handle-top {
274
+ top: 0;
275
+ left: 50%;
276
+ transform: translate(-50%, -50%);
277
+ }
278
+
279
+ .solid-flow__handle-bottom {
280
+ top: auto;
281
+ left: 50%;
282
+ bottom: 0;
283
+ transform: translate(-50%, 50%);
284
+ }
285
+
286
+ /* src/components/node/styles.css */
287
+ .solid-flow {
288
+ --xy-node-color-default: inherit;
289
+ --xy-node-border-default: 1px solid #1a192b;
290
+ --xy-node-background-color-default: #fff;
291
+ --xy-node-group-background-color-default: rgba(240, 240, 240, 0.25);
292
+ --xy-node-boxshadow-hover-default: 0 1px 4px 1px rgba(0, 0, 0, 0.08);
293
+ --xy-node-boxshadow-selected-default: 0 0 0 0.5px #1a192b;
294
+ --xy-node-border-radius-default: 3px;
295
+
296
+ --xy-node-border-selected-default: 1px solid #555;
297
+ }
298
+
299
+ .solid-flow.dark {
300
+ --xy-node-color-default: #f8f8f8;
301
+ --xy-node-border-default: 1px solid #3c3c3c;
302
+ --xy-node-background-color-default: #1e1e1e;
303
+ --xy-node-group-background-color-default: rgba(240, 240, 240, 0.25);
304
+ --xy-node-boxshadow-hover-default: 0 1px 4px 1px rgba(255, 255, 255, 0.08);
305
+ --xy-node-boxshadow-selected-default: 0 0 0 0.5px #999;
306
+ }
307
+
308
+ .solid-flow__node {
309
+ position: absolute;
310
+ user-select: none;
311
+ pointer-events: all;
312
+ transform-origin: 0 0;
313
+ box-sizing: border-box;
314
+ cursor: default;
315
+
316
+ &.selectable {
317
+ cursor: pointer;
318
+ }
319
+
320
+ &.draggable {
321
+ cursor: grab;
322
+ pointer-events: all;
323
+
324
+ &.dragging {
325
+ cursor: grabbing;
326
+ }
327
+ }
328
+
329
+ /* TODO: Verify this class */
330
+ &.parent {
331
+ background-color: rgba(220, 220, 255, 0.4);
332
+ }
333
+ }
334
+
335
+ .solid-flow__node-input,
336
+ .solid-flow__node-default,
337
+ .solid-flow__node-output,
338
+ .solid-flow__node-group {
339
+ padding: 10px;
340
+ border-radius: var(--xy-node-border-radius, var(--xy-node-border-radius-default));
341
+ width: 150px;
342
+ font-size: 12px;
343
+ color: var(--xy-node-color, var(--xy-node-color-default));
344
+ text-align: center;
345
+ border: var(--xy-node-border, var(--xy-node-border-default));
346
+ background-color: var(--xy-node-background-color, var(--xy-node-background-color-default));
347
+
348
+ &.selectable {
349
+ &:hover {
350
+ box-shadow: var(--xy-node-boxshadow-hover, var(--xy-node-boxshadow-hover-default));
351
+ }
352
+
353
+ &.selected,
354
+ &:focus,
355
+ &:focus-visible {
356
+ box-shadow: var(--xy-node-boxshadow-selected, var(--xy-node-boxshadow-selected-default));
357
+ border: var(--xy-node-border-selected, var(--xy-node-border-selected-default));
358
+ outline: none;
359
+ }
360
+ }
361
+ }
362
+
363
+ .solid-flow__node-group {
364
+ background-color: var(
365
+ --xy-node-group-background-color,
366
+ var(--xy-node-group-background-color-default)
367
+ );
368
+ }
369
+
370
+ /* src/components/selection/styles.css */
371
+ .solid-flow {
372
+ --xy-selection-background-color-default: rgba(0, 89, 220, 0.08);
373
+ --xy-selection-border-default: 1px dotted rgba(0, 89, 220, 0.8);
374
+ }
375
+
376
+ .solid-flow.dark {
377
+ --xy-selection-background-color-default: rgba(200, 200, 220, 0.08);
378
+ --xy-selection-border-default: 1px dotted rgba(200, 200, 220, 0.8);
379
+ }
380
+
381
+ .solid-flow__selection-wrapper {
382
+ position: absolute;
383
+ top: 0;
384
+ left: 0;
385
+ z-index: 2000;
386
+ pointer-events: all;
387
+ }
388
+
389
+ .solid-flow__selection {
390
+ background: var(--xy-selection-background-color, var(--xy-selection-background-color-default));
391
+ border: var(--xy-selection-border, var(--xy-selection-border-default));
392
+
393
+ position: absolute;
394
+ top: 0;
395
+ left: 0;
396
+ z-index: 6;
397
+
398
+ &:focus,
399
+ &:focus-visible {
400
+ outline: none;
401
+ }
402
+ }
403
+
404
+
405
+ /* Plugin Styles */
406
+ /* src/plugins/background/styles.css */
407
+ .solid-flow {
408
+ --xy-background-color-default: transparent;
409
+ --xy-background-pattern-dots-color-default: #91919a;
410
+ --xy-background-pattern-lines-color-default: #eee;
411
+ --xy-background-pattern-cross-color-default: #e2e2e2;
412
+
413
+ --background-color-default: #fff;
414
+ --background-pattern-color-default: #ddd;
415
+ }
416
+
417
+ .solid-flow.dark {
418
+ --xy-background-color-default: #141414;
419
+ --xy-background-pattern-dots-color-default: #777;
420
+ --xy-background-pattern-lines-color-default: #777;
421
+ --xy-background-pattern-cross-color-default: #777;
422
+ }
423
+
424
+ .solid-flow__background {
425
+ pointer-events: none;
426
+ z-index: -1;
427
+
428
+ background-color: var(
429
+ --xy-background-color,
430
+ var(--xy-background-color-props, var(--xy-background-color-default))
431
+ );
432
+ }
433
+
434
+ .solid-flow__background-pattern {
435
+ &.dots {
436
+ fill: var(
437
+ --xy-background-pattern-color-props,
438
+ var(--xy-background-pattern-color, var(--xy-background-pattern-dots-color-default))
439
+ );
440
+ }
441
+
442
+ &.lines {
443
+ stroke: var(
444
+ --xy-background-pattern-color-props,
445
+ var(--xy-background-pattern-color, var(--xy-background-pattern-lines-color-default))
446
+ );
447
+ }
448
+
449
+ &.cross {
450
+ stroke: var(
451
+ --xy-background-pattern-color-props,
452
+ var(--xy-background-pattern-color, var(--xy-background-pattern-cross-color-default))
453
+ );
454
+ }
455
+ }
456
+
457
+ /* src/plugins/controls/styles.css */
458
+ .solid-flow {
459
+ --xy-controls-button-background-color-default: #fefefe;
460
+ --xy-controls-button-background-color-hover-default: #f4f4f4;
461
+ --xy-controls-button-color-default: inherit;
462
+ --xy-controls-button-color-hover-default: inherit;
463
+ --xy-controls-button-border-color-default: #eee;
464
+ --xy-controls-box-shadow-default: 0 0 2px 1px rgba(0, 0, 0, 0.08);
465
+ }
466
+
467
+ .solid-flow.dark {
468
+ --xy-controls-button-background-color-default: #2b2b2b;
469
+ --xy-controls-button-background-color-hover-default: #3e3e3e;
470
+ --xy-controls-button-color-default: #f8f8f8;
471
+ --xy-controls-button-color-hover-default: #fff;
472
+ --xy-controls-button-border-color-default: #5b5b5b;
473
+ --xy-controls-box-shadow-default: 0 0 2px 1px rgba(0, 0, 0, 0.08);
474
+ }
475
+
476
+ .solid-flow__controls {
477
+ display: flex;
478
+ flex-direction: column;
479
+ box-shadow: var(--xy-controls-box-shadow, var(--xy-controls-box-shadow-default));
480
+
481
+ &.horizontal {
482
+ flex-direction: row;
483
+ }
484
+
485
+ button {
486
+ cursor: pointer;
487
+ user-select: none;
488
+ border: none;
489
+
490
+ display: flex;
491
+ justify-content: center;
492
+ align-items: center;
493
+ height: 26px;
494
+ width: 26px;
495
+ padding: 4px;
496
+
497
+ background: var(
498
+ --xy-controls-button-background-color,
499
+ var(--xy-controls-button-background-color-default)
500
+ );
501
+ border-bottom: 1px solid
502
+ var(
503
+ --xy-controls-button-border-color-props,
504
+ var(--xy-controls-button-border-color, var(--xy-controls-button-border-color-default))
505
+ );
506
+ color: var(
507
+ --xy-controls-button-color-props,
508
+ var(--xy-controls-button-color, var(--xy-controls-button-color-default))
509
+ );
510
+
511
+ &:hover {
512
+ background: var(
513
+ --xy-controls-button-background-color-hover-props,
514
+ var(
515
+ --xy-controls-button-background-color-hover,
516
+ var(--xy-controls-button-background-color-hover-default)
517
+ )
518
+ );
519
+ color: var(
520
+ --xy-controls-button-color-hover-props,
521
+ var(--xy-controls-button-color-hover, var(--xy-controls-button-color-hover-default))
522
+ );
523
+ }
524
+
525
+ &:disabled {
526
+ pointer-events: none;
527
+
528
+ svg {
529
+ fill-opacity: 0.4;
530
+ }
531
+ }
532
+
533
+ svg {
534
+ width: 100%;
535
+ max-width: 12px;
536
+ max-height: 12px;
537
+ fill: currentColor;
538
+ }
539
+ }
540
+
541
+ button:last-child {
542
+ border-bottom: none;
543
+ }
544
+ }
545
+
546
+ /* src/plugins/minimap/styles.css */
547
+ .solid-flow {
548
+ --xy-minimap-background-color-default: #fff;
549
+
550
+ --xy-minimap-mask-background-color-default: rgba(240, 240, 240, 0.6);
551
+ --xy-minimap-mask-stroke-color-default: transparent;
552
+ --xy-minimap-mask-stroke-width-default: 1;
553
+
554
+ --xy-minimap-node-background-color-default: #e2e2e2;
555
+ --xy-minimap-node-stroke-color-default: transparent;
556
+ --xy-minimap-node-stroke-width-default: 2;
557
+ }
558
+
559
+ .solid-flow.dark {
560
+ --xy-minimap-background-color-default: #141414;
561
+
562
+ --xy-minimap-mask-background-color-default: rgb(60, 60, 60, 0.6);
563
+ --xy-minimap-mask-stroke-color-default: transparent;
564
+ --xy-minimap-mask-stroke-width-default: 1;
565
+
566
+ --xy-minimap-node-background-color-default: #2b2b2b;
567
+ --xy-minimap-node-stroke-color-default: transparent;
568
+ --xy-minimap-node-stroke-width-default: 2;
569
+ }
570
+
571
+ .solid-flow__minimap {
572
+ background: var(
573
+ --xy-minimap-background-color-props,
574
+ var(--xy-minimap-background-color, var(--xy-minimap-background-color-default))
575
+ );
576
+ }
577
+
578
+ .solid-flow__minimap-svg {
579
+ display: block;
580
+ }
581
+
582
+ .solid-flow__minimap-mask {
583
+ fill: var(
584
+ --xy-minimap-mask-background-color-props,
585
+ var(--xy-minimap-mask-background-color, var(--xy-minimap-mask-background-color-default))
586
+ );
587
+ stroke: var(
588
+ --xy-minimap-mask-stroke-color-props,
589
+ var(--xy-minimap-mask-stroke-color, var(--xy-minimap-mask-stroke-color-default))
590
+ );
591
+ stroke-width: var(
592
+ --xy-minimap-mask-stroke-width-props,
593
+ var(--xy-minimap-mask-stroke-width, var(--xy-minimap-mask-stroke-width-default))
594
+ );
595
+ }
596
+
597
+ .solid-flow__minimap-node {
598
+ fill: var(
599
+ --xy-minimap-node-background-color-props,
600
+ var(--xy-minimap-node-background-color, var(--xy-minimap-node-background-color-default))
601
+ );
602
+ stroke: var(
603
+ --xy-minimap-node-stroke-color-props,
604
+ var(--xy-minimap-node-stroke-color, var(--xy-minimap-node-stroke-color-default))
605
+ );
606
+ stroke-width: var(
607
+ --xy-minimap-node-stroke-width-props,
608
+ var(--xy-minimap-node-stroke-width, var(--xy-minimap-node-stroke-width-default))
609
+ );
610
+ }
611
+
612
+ /* src/plugins/nodeResizer/styles.css */
613
+ .solid-flow {
614
+ --xy-resize-background-color-default: #3367d9;
615
+ }
616
+
617
+ .solid-flow__resize-control {
618
+ position: absolute;
619
+
620
+ &.left,
621
+ &.right {
622
+ cursor: ew-resize;
623
+ }
624
+
625
+ &.top,
626
+ &.bottom {
627
+ cursor: ns-resize;
628
+ }
629
+
630
+ &.top.left,
631
+ &.bottom.right {
632
+ cursor: nwse-resize;
633
+ }
634
+
635
+ &.bottom.left,
636
+ &.top.right {
637
+ cursor: nesw-resize;
638
+ }
639
+ }
640
+
641
+ .solid-flow__resize-control.handle {
642
+ width: 4px;
643
+ height: 4px;
644
+ border: 1px solid #fff;
645
+ border-radius: 1px;
646
+ background-color: var(--xy-resize-background-color, var(--xy-resize-background-color-default));
647
+ transform: translate(-50%, -50%);
648
+
649
+ &.left {
650
+ left: 0;
651
+ top: 50%;
652
+ }
653
+
654
+ &.right {
655
+ left: 100%;
656
+ top: 50%;
657
+ }
658
+
659
+ &.top {
660
+ left: 50%;
661
+ top: 0;
662
+ }
663
+
664
+ &.bottom {
665
+ left: 50%;
666
+ top: 100%;
667
+ }
668
+
669
+ &.top.left {
670
+ left: 0;
671
+ }
672
+
673
+ &.bottom.left {
674
+ left: 0;
675
+ }
676
+
677
+ &.top.right {
678
+ left: 100%;
679
+ }
680
+
681
+ &.bottom.right {
682
+ left: 100%;
683
+ }
684
+ }
685
+
686
+ /* line styles */
687
+ .solid-flow__resize-control.line {
688
+ border-color: var(--xy-resize-background-color, var(--xy-resize-background-color-default));
689
+ border-width: 0;
690
+ border-style: solid;
691
+
692
+ &.left,
693
+ &.right {
694
+ width: 1px;
695
+ height: 100%;
696
+ transform: translate(-50%, 0);
697
+ top: 0;
698
+ }
699
+
700
+ &.top,
701
+ &.bottom {
702
+ width: 100%;
703
+ height: 1px;
704
+ transform: translate(0, -50%);
705
+ left: 0;
706
+ }
707
+
708
+ &.left {
709
+ left: 0;
710
+ border-left-width: 1px;
711
+ }
712
+
713
+ &.right {
714
+ left: 100%;
715
+ border-right-width: 1px;
716
+ }
717
+
718
+ &.top {
719
+ top: 0;
720
+ border-top-width: 1px;
721
+ }
722
+
723
+ &.bottom {
724
+ top: 100%;
725
+ border-bottom-width: 1px;
726
+ }
727
+ }
728
+
15
729
 
16
730
  /* Utility Styles */
17
- @import "../components/utility/styles.css";
731
+ /* src/components/utility/styles.css */
732
+ .solid-flow {
733
+ --xy-attribution-background-color-default: rgba(255, 255, 255, 0.5);
734
+ }
735
+
736
+ .solid-flow.dark {
737
+ --xy-attribution-background-color-default: rgba(150, 150, 150, 0.25);
738
+ }
739
+
740
+ .solid-flow__attribution {
741
+ font-size: 10px;
742
+ background: var(
743
+ --xy-attribution-background-color,
744
+ var(--xy-attribution-background-color-default)
745
+ );
746
+ padding: 2px 3px;
747
+ margin: 0;
748
+
749
+ a {
750
+ text-decoration: none;
751
+ color: #999;
752
+ }
753
+ }
754
+
18
755
 
19
756
  .solid-flow__container {
20
757
  position: absolute;