@xyflow/vue 2.0.0-next.0

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.
package/dist/style.css ADDED
@@ -0,0 +1,634 @@
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
+ .vue-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
+ .vue-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
+ .vue-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
+ .vue-flow__container {
104
+ position: absolute;
105
+ width: 100%;
106
+ height: 100%;
107
+ top: 0;
108
+ left: 0;
109
+ }
110
+ .vue-flow__pane {
111
+ z-index: 1;
112
+ touch-action: none;
113
+ }
114
+ .vue-flow__pane.draggable {
115
+ cursor: grab;
116
+ }
117
+ .vue-flow__pane.dragging {
118
+ cursor: grabbing;
119
+ }
120
+ .vue-flow__pane.selection {
121
+ cursor: pointer;
122
+ }
123
+ .vue-flow__viewport {
124
+ transform-origin: 0 0;
125
+ z-index: 2;
126
+ pointer-events: none;
127
+ }
128
+ .vue-flow__renderer {
129
+ z-index: 4;
130
+ }
131
+ .vue-flow__selection {
132
+ z-index: 6;
133
+ }
134
+ .vue-flow__nodesselection-rect:focus,
135
+ .vue-flow__nodesselection-rect:focus-visible {
136
+ outline: none;
137
+ }
138
+ .vue-flow__edge-path {
139
+ stroke: var(--xy-edge-stroke, var(--xy-edge-stroke-default));
140
+ stroke-width: var(--xy-edge-stroke-width, var(--xy-edge-stroke-width-default));
141
+ fill: none;
142
+ }
143
+ .vue-flow__connection-path {
144
+ stroke: var(--xy-connectionline-stroke, var(--xy-connectionline-stroke-default));
145
+ stroke-width: var(--xy-connectionline-stroke-width, var(--xy-connectionline-stroke-width-default));
146
+ fill: none;
147
+ }
148
+ .vue-flow .vue-flow__edges {
149
+ position: absolute;
150
+ }
151
+ .vue-flow .vue-flow__edges svg {
152
+ overflow: visible;
153
+ position: absolute;
154
+ pointer-events: none;
155
+ }
156
+ .vue-flow__edge {
157
+ pointer-events: visibleStroke;
158
+ }
159
+ .vue-flow__edge.selectable {
160
+ cursor: pointer;
161
+ }
162
+ .vue-flow__edge.animated path {
163
+ stroke-dasharray: 5;
164
+ animation: dashdraw 0.5s linear infinite;
165
+ }
166
+ .vue-flow__edge.animated path.vue-flow__edge-interaction {
167
+ stroke-dasharray: none;
168
+ animation: none;
169
+ }
170
+ .vue-flow__edge.inactive {
171
+ pointer-events: none;
172
+ }
173
+ .vue-flow__edge.selected,
174
+ .vue-flow__edge:focus,
175
+ .vue-flow__edge:focus-visible {
176
+ outline: none;
177
+ }
178
+ .vue-flow__edge.selected .vue-flow__edge-path,
179
+ .vue-flow__edge.selectable:focus .vue-flow__edge-path,
180
+ .vue-flow__edge.selectable:focus-visible .vue-flow__edge-path {
181
+ stroke: var(--xy-edge-stroke-selected, var(--xy-edge-stroke-selected-default));
182
+ }
183
+ .vue-flow__edge-textwrapper {
184
+ pointer-events: all;
185
+ }
186
+ .vue-flow__edge .vue-flow__edge-text {
187
+ pointer-events: none;
188
+ -webkit-user-select: none;
189
+ -moz-user-select: none;
190
+ user-select: none;
191
+ }
192
+ /* Arrowhead marker styles - use CSS custom properties as default */
193
+ .vue-flow__arrowhead polyline {
194
+ stroke: var(--xy-edge-stroke, var(--xy-edge-stroke-default));
195
+ }
196
+ .vue-flow__arrowhead polyline.arrowclosed {
197
+ fill: var(--xy-edge-stroke, var(--xy-edge-stroke-default));
198
+ }
199
+ .vue-flow__connection {
200
+ pointer-events: none;
201
+ }
202
+ .vue-flow__connection .animated {
203
+ stroke-dasharray: 5;
204
+ animation: dashdraw 0.5s linear infinite;
205
+ }
206
+ svg.vue-flow__connectionline {
207
+ z-index: 1001;
208
+ overflow: visible;
209
+ position: absolute;
210
+ }
211
+ .vue-flow__nodes {
212
+ pointer-events: none;
213
+ transform-origin: 0 0;
214
+ }
215
+ .vue-flow__node {
216
+ position: absolute;
217
+ -webkit-user-select: none;
218
+ -moz-user-select: none;
219
+ user-select: none;
220
+ pointer-events: all;
221
+ transform-origin: 0 0;
222
+ box-sizing: border-box;
223
+ cursor: default;
224
+ }
225
+ .vue-flow__node.selectable {
226
+ cursor: pointer;
227
+ }
228
+ .vue-flow__node.draggable {
229
+ cursor: grab;
230
+ pointer-events: all;
231
+ }
232
+ .vue-flow__node.draggable.dragging {
233
+ cursor: grabbing;
234
+ }
235
+ .vue-flow__nodesselection {
236
+ z-index: 3;
237
+ transform-origin: left top;
238
+ pointer-events: none;
239
+ }
240
+ .vue-flow__nodesselection-rect {
241
+ position: absolute;
242
+ pointer-events: all;
243
+ cursor: grab;
244
+ }
245
+ .vue-flow__handle {
246
+ position: absolute;
247
+ pointer-events: none;
248
+ min-width: 5px;
249
+ min-height: 5px;
250
+ width: 6px;
251
+ height: 6px;
252
+ background-color: var(--xy-handle-background-color, var(--xy-handle-background-color-default));
253
+ border: 1px solid var(--xy-handle-border-color, var(--xy-handle-border-color-default));
254
+ border-radius: 100%;
255
+ }
256
+ .vue-flow__handle.connectingfrom {
257
+ pointer-events: all;
258
+ }
259
+ .vue-flow__handle.connectionindicator {
260
+ pointer-events: all;
261
+ cursor: crosshair;
262
+ }
263
+ .vue-flow__handle-bottom {
264
+ top: auto;
265
+ left: 50%;
266
+ bottom: 0;
267
+ transform: translate(-50%, 50%);
268
+ }
269
+ .vue-flow__handle-top {
270
+ top: 0;
271
+ left: 50%;
272
+ transform: translate(-50%, -50%);
273
+ }
274
+ .vue-flow__handle-left {
275
+ top: 50%;
276
+ left: 0;
277
+ transform: translate(-50%, -50%);
278
+ }
279
+ .vue-flow__handle-right {
280
+ top: 50%;
281
+ right: 0;
282
+ transform: translate(50%, -50%);
283
+ }
284
+ .vue-flow__edgeupdater {
285
+ cursor: move;
286
+ pointer-events: all;
287
+ }
288
+ .vue-flow__pane.selection .vue-flow__panel {
289
+ pointer-events: none;
290
+ }
291
+ .vue-flow__panel {
292
+ position: absolute;
293
+ z-index: 5;
294
+ margin: 15px;
295
+ }
296
+ .vue-flow__panel.top {
297
+ top: 0;
298
+ }
299
+ .vue-flow__panel.bottom {
300
+ bottom: 0;
301
+ }
302
+ .vue-flow__panel.top.center, .vue-flow__panel.bottom.center {
303
+ left: 50%;
304
+ transform: translateX(-15px) translateX(-50%);
305
+ }
306
+ .vue-flow__panel.left {
307
+ left: 0;
308
+ }
309
+ .vue-flow__panel.right {
310
+ right: 0;
311
+ }
312
+ .vue-flow__panel.left.center, .vue-flow__panel.right.center {
313
+ top: 50%;
314
+ transform: translateY(-15px) translateY(-50%);
315
+ }
316
+ .vue-flow__attribution {
317
+ font-size: 10px;
318
+ background: var(--xy-attribution-background-color, var(--xy-attribution-background-color-default));
319
+ padding: 2px 3px;
320
+ margin: 0;
321
+ }
322
+ .vue-flow__attribution a {
323
+ text-decoration: none;
324
+ color: #999;
325
+ }
326
+ @keyframes dashdraw {
327
+ from {
328
+ stroke-dashoffset: 10;
329
+ }
330
+ }
331
+ .vue-flow__edgelabel-renderer {
332
+ position: absolute;
333
+ width: 100%;
334
+ height: 100%;
335
+ pointer-events: none;
336
+ -webkit-user-select: none;
337
+ -moz-user-select: none;
338
+ user-select: none;
339
+ left: 0;
340
+ top: 0;
341
+ }
342
+ .vue-flow__viewport-portal {
343
+ position: absolute;
344
+ width: 100%;
345
+ height: 100%;
346
+ left: 0;
347
+ top: 0;
348
+ -webkit-user-select: none;
349
+ -moz-user-select: none;
350
+ user-select: none;
351
+ }
352
+ .vue-flow__minimap {
353
+ background: var(
354
+ --xy-minimap-background-color-props,
355
+ var(--xy-minimap-background-color, var(--xy-minimap-background-color-default))
356
+ );
357
+ }
358
+ .vue-flow__minimap-svg {
359
+ display: block;
360
+ }
361
+ .vue-flow__minimap-mask {
362
+ fill: var(
363
+ --xy-minimap-mask-background-color-props,
364
+ var(--xy-minimap-mask-background-color, var(--xy-minimap-mask-background-color-default))
365
+ );
366
+ stroke: var(
367
+ --xy-minimap-mask-stroke-color-props,
368
+ var(--xy-minimap-mask-stroke-color, var(--xy-minimap-mask-stroke-color-default))
369
+ );
370
+ stroke-width: var(
371
+ --xy-minimap-mask-stroke-width-props,
372
+ var(--xy-minimap-mask-stroke-width, var(--xy-minimap-mask-stroke-width-default))
373
+ );
374
+ }
375
+ .vue-flow__minimap-node {
376
+ fill: var(
377
+ --xy-minimap-node-background-color-props,
378
+ var(--xy-minimap-node-background-color, var(--xy-minimap-node-background-color-default))
379
+ );
380
+ stroke: var(
381
+ --xy-minimap-node-stroke-color-props,
382
+ var(--xy-minimap-node-stroke-color, var(--xy-minimap-node-stroke-color-default))
383
+ );
384
+ stroke-width: var(
385
+ --xy-minimap-node-stroke-width-props,
386
+ var(--xy-minimap-node-stroke-width, var(--xy-minimap-node-stroke-width-default))
387
+ );
388
+ }
389
+ .vue-flow__background-pattern.dots {
390
+ fill: var(
391
+ --xy-background-pattern-color-props,
392
+ var(--xy-background-pattern-color, var(--xy-background-pattern-dots-color-default))
393
+ );
394
+ }
395
+ .vue-flow__background-pattern.lines {
396
+ stroke: var(
397
+ --xy-background-pattern-color-props,
398
+ var(--xy-background-pattern-color, var(--xy-background-pattern-lines-color-default))
399
+ );
400
+ }
401
+ .vue-flow__background-pattern.cross {
402
+ stroke: var(
403
+ --xy-background-pattern-color-props,
404
+ var(--xy-background-pattern-color, var(--xy-background-pattern-cross-color-default))
405
+ );
406
+ }
407
+ .vue-flow__controls {
408
+ display: flex;
409
+ flex-direction: column;
410
+ box-shadow: var(--xy-controls-box-shadow, var(--xy-controls-box-shadow-default));
411
+ }
412
+ .vue-flow__controls.horizontal {
413
+ flex-direction: row;
414
+ }
415
+ .vue-flow__controls-button {
416
+ display: flex;
417
+ justify-content: center;
418
+ align-items: center;
419
+ height: 26px;
420
+ width: 26px;
421
+ padding: 4px;
422
+ border: none;
423
+ background: var(--xy-controls-button-background-color, var(--xy-controls-button-background-color-default));
424
+ border-bottom: 1px solid
425
+ var(
426
+ --xy-controls-button-border-color-props,
427
+ var(--xy-controls-button-border-color, var(--xy-controls-button-border-color-default))
428
+ );
429
+ color: var(
430
+ --xy-controls-button-color-props,
431
+ var(--xy-controls-button-color, var(--xy-controls-button-color-default))
432
+ );
433
+ cursor: pointer;
434
+ -webkit-user-select: none;
435
+ -moz-user-select: none;
436
+ user-select: none;
437
+ }
438
+ .vue-flow__controls-button svg {
439
+ width: 100%;
440
+ max-width: 12px;
441
+ max-height: 12px;
442
+ fill: currentColor;
443
+ }
444
+ .vue-flow__edge.updating .vue-flow__edge-path {
445
+ stroke: #777;
446
+ }
447
+ .vue-flow__edge-text {
448
+ font-size: 10px;
449
+ }
450
+ .vue-flow__node.selectable:focus,
451
+ .vue-flow__node.selectable:focus-visible {
452
+ outline: none;
453
+ }
454
+ .vue-flow__node-input,
455
+ .vue-flow__node-default,
456
+ .vue-flow__node-output,
457
+ .vue-flow__node-group {
458
+ padding: 10px;
459
+ border-radius: var(--xy-node-border-radius, var(--xy-node-border-radius-default));
460
+ width: 150px;
461
+ font-size: 12px;
462
+ color: var(--xy-node-color, var(--xy-node-color-default));
463
+ text-align: center;
464
+ border: var(--xy-node-border, var(--xy-node-border-default));
465
+ background-color: var(--xy-node-background-color, var(--xy-node-background-color-default));
466
+ }
467
+ .vue-flow__node-input.selectable:hover, .vue-flow__node-default.selectable:hover, .vue-flow__node-output.selectable:hover, .vue-flow__node-group.selectable:hover {
468
+ box-shadow: var(--xy-node-boxshadow-hover, var(--xy-node-boxshadow-hover-default));
469
+ }
470
+ .vue-flow__node-input.selectable.selected,
471
+ .vue-flow__node-input.selectable:focus,
472
+ .vue-flow__node-input.selectable:focus-visible,
473
+ .vue-flow__node-default.selectable.selected,
474
+ .vue-flow__node-default.selectable:focus,
475
+ .vue-flow__node-default.selectable:focus-visible,
476
+ .vue-flow__node-output.selectable.selected,
477
+ .vue-flow__node-output.selectable:focus,
478
+ .vue-flow__node-output.selectable:focus-visible,
479
+ .vue-flow__node-group.selectable.selected,
480
+ .vue-flow__node-group.selectable:focus,
481
+ .vue-flow__node-group.selectable:focus-visible {
482
+ box-shadow: var(--xy-node-boxshadow-selected, var(--xy-node-boxshadow-selected-default));
483
+ }
484
+ .vue-flow__node-group {
485
+ background-color: var(--xy-node-group-background-color, var(--xy-node-group-background-color-default));
486
+ }
487
+ .vue-flow__nodesselection-rect,
488
+ .vue-flow__selection {
489
+ background: var(--xy-selection-background-color, var(--xy-selection-background-color-default));
490
+ border: var(--xy-selection-border, var(--xy-selection-border-default));
491
+ }
492
+ .vue-flow__nodesselection-rect:focus,
493
+ .vue-flow__nodesselection-rect:focus-visible,
494
+ .vue-flow__selection:focus,
495
+ .vue-flow__selection:focus-visible {
496
+ outline: none;
497
+ }
498
+ .vue-flow__controls-button:hover {
499
+ background: var(
500
+ --xy-controls-button-background-color-hover-props,
501
+ var(--xy-controls-button-background-color-hover, var(--xy-controls-button-background-color-hover-default))
502
+ );
503
+ color: var(
504
+ --xy-controls-button-color-hover-props,
505
+ var(--xy-controls-button-color-hover, var(--xy-controls-button-color-hover-default))
506
+ );
507
+ }
508
+ .vue-flow__controls-button:disabled {
509
+ pointer-events: none;
510
+ }
511
+ .vue-flow__controls-button:disabled svg {
512
+ fill-opacity: 0.4;
513
+ }
514
+ .vue-flow__controls-button:last-child {
515
+ border-bottom: none;
516
+ }
517
+ .vue-flow__controls.horizontal .vue-flow__controls-button {
518
+ border-bottom: none;
519
+ border-right: 1px solid
520
+ var(
521
+ --xy-controls-button-border-color-props,
522
+ var(--xy-controls-button-border-color, var(--xy-controls-button-border-color-default))
523
+ );
524
+ }
525
+ .vue-flow__controls.horizontal .vue-flow__controls-button:last-child {
526
+ border-right: none;
527
+ }
528
+ .vue-flow__resize-control {
529
+ position: absolute;
530
+ }
531
+ .vue-flow__resize-control.left,
532
+ .vue-flow__resize-control.right {
533
+ cursor: ew-resize;
534
+ }
535
+ .vue-flow__resize-control.top,
536
+ .vue-flow__resize-control.bottom {
537
+ cursor: ns-resize;
538
+ }
539
+ .vue-flow__resize-control.top.left,
540
+ .vue-flow__resize-control.bottom.right {
541
+ cursor: nwse-resize;
542
+ }
543
+ .vue-flow__resize-control.bottom.left,
544
+ .vue-flow__resize-control.top.right {
545
+ cursor: nesw-resize;
546
+ }
547
+ /* handle styles */
548
+ .vue-flow__resize-control.handle {
549
+ width: 5px;
550
+ height: 5px;
551
+ border: 1px solid #fff;
552
+ border-radius: 1px;
553
+ background-color: var(--xy-resize-background-color, var(--xy-resize-background-color-default));
554
+ translate: -50% -50%;
555
+ }
556
+ .vue-flow__resize-control.handle.left {
557
+ left: 0;
558
+ top: 50%;
559
+ }
560
+ .vue-flow__resize-control.handle.right {
561
+ left: 100%;
562
+ top: 50%;
563
+ }
564
+ .vue-flow__resize-control.handle.top {
565
+ left: 50%;
566
+ top: 0;
567
+ }
568
+ .vue-flow__resize-control.handle.bottom {
569
+ left: 50%;
570
+ top: 100%;
571
+ }
572
+ .vue-flow__resize-control.handle.top.left {
573
+ left: 0;
574
+ }
575
+ .vue-flow__resize-control.handle.bottom.left {
576
+ left: 0;
577
+ }
578
+ .vue-flow__resize-control.handle.top.right {
579
+ left: 100%;
580
+ }
581
+ .vue-flow__resize-control.handle.bottom.right {
582
+ left: 100%;
583
+ }
584
+ /* line styles */
585
+ .vue-flow__resize-control.line {
586
+ border-color: var(--xy-resize-background-color, var(--xy-resize-background-color-default));
587
+ border-width: 0;
588
+ border-style: solid;
589
+ }
590
+ .vue-flow__resize-control.line.left,
591
+ .vue-flow__resize-control.line.right {
592
+ width: 1px;
593
+ transform: translate(-50%, 0);
594
+ top: 0;
595
+ height: 100%;
596
+ }
597
+ .vue-flow__resize-control.line.left {
598
+ left: 0;
599
+ border-left-width: 1px;
600
+ }
601
+ .vue-flow__resize-control.line.right {
602
+ left: 100%;
603
+ border-right-width: 1px;
604
+ }
605
+ .vue-flow__resize-control.line.top,
606
+ .vue-flow__resize-control.line.bottom {
607
+ height: 1px;
608
+ transform: translate(0, -50%);
609
+ left: 0;
610
+ width: 100%;
611
+ }
612
+ .vue-flow__resize-control.line.top {
613
+ top: 0;
614
+ border-top-width: 1px;
615
+ }
616
+ .vue-flow__resize-control.line.bottom {
617
+ border-bottom-width: 1px;
618
+ top: 100%;
619
+ }
620
+ /* root container layout — @xyflow/system's CSS only declares vars + theme on `.vue-flow`; the framework
621
+ owns the layout box (xyflow/react applies the equivalent inline). */
622
+ .vue-flow {
623
+ width: 100%;
624
+ height: 100%;
625
+ overflow: hidden;
626
+ position: relative;
627
+ z-index: 0;
628
+ }
629
+ .vue-flow__edge-textbg {
630
+ fill: var(--xy-edge-label-background-color, var(--xy-edge-label-background-color-default));
631
+ }
632
+ .vue-flow__edge-text {
633
+ fill: var(--xy-edge-label-color, var(--xy-edge-label-color-default));
634
+ }
package/package.json ADDED
@@ -0,0 +1,90 @@
1
+ {
2
+ "name": "@xyflow/vue",
3
+ "version": "2.0.0-next.0",
4
+ "private": false,
5
+ "description": "Vue Flow - A highly customizable Vue library for building node-based editors, workflow systems, diagrams and more.",
6
+ "author": "Burak Cakmakoglu<78412429+bcakmakoglu@users.noreply.github.com>",
7
+ "license": "MIT",
8
+ "homepage": "https://vueflow.dev",
9
+ "repository": {
10
+ "type": "git",
11
+ "url": "git+https://github.com/xyflow/xyflow.git",
12
+ "directory": "packages/vue"
13
+ },
14
+ "bugs": {
15
+ "url": "https://github.com/xyflow/xyflow/issues"
16
+ },
17
+ "keywords": [
18
+ "vue",
19
+ "node-based UI",
20
+ "graph",
21
+ "diagram",
22
+ "workflow",
23
+ "vue-flow",
24
+ "xyflow"
25
+ ],
26
+ "sideEffects": [
27
+ "*.css"
28
+ ],
29
+ "exports": {
30
+ ".": {
31
+ "import": {
32
+ "types": "./dist/index.d.mts",
33
+ "default": "./dist/index.mjs"
34
+ },
35
+ "require": {
36
+ "types": "./dist/index.d.ts",
37
+ "default": "./dist/index.js"
38
+ },
39
+ "default": "./dist/index.mjs"
40
+ },
41
+ "./dist/style.css": "./dist/style.css",
42
+ "./dist/base.css": "./dist/base.css",
43
+ "./base.css": "./dist/base.css",
44
+ "./style.css": "./dist/style.css",
45
+ "./package.json": "./package.json"
46
+ },
47
+ "main": "./dist/index.js",
48
+ "module": "./dist/index.mjs",
49
+ "types": "./dist/index.d.ts",
50
+ "files": [
51
+ "dist"
52
+ ],
53
+ "publishConfig": {
54
+ "access": "public",
55
+ "registry": "https://registry.npmjs.org/"
56
+ },
57
+ "peerDependencies": {
58
+ "@vue/reactivity": "^3.5.0",
59
+ "vue": "^3.5.0"
60
+ },
61
+ "dependencies": {
62
+ "@vueuse/core": "^14.3.0",
63
+ "@xyflow/system": "0.0.76"
64
+ },
65
+ "devDependencies": {
66
+ "@antfu/eslint-config": "8.2.0",
67
+ "@arethetypeswrong/core": "^0.18.3",
68
+ "@vue/reactivity": "^3.5.0",
69
+ "eslint": "^10.2.1",
70
+ "jiti": "^2.7.0",
71
+ "postcss": "^8.5.15",
72
+ "postcss-cli": "^11.0.1",
73
+ "publint": "^0.3.21",
74
+ "shx": "^0.4.0",
75
+ "tsdown": "^0.22.0",
76
+ "typescript": "^5.6.0",
77
+ "unplugin-vue": "^7.2.0",
78
+ "vue": "^3.5.0",
79
+ "vue-tsc": "^3.3.4",
80
+ "@xyflow/postcss-config": "0.0.0"
81
+ },
82
+ "scripts": {
83
+ "dev": "concurrently \"tsdown --watch\" \"pnpm:css --watch\"",
84
+ "build": "shx rm -rf dist && pnpm css && tsdown",
85
+ "build:watch": "tsdown --watch",
86
+ "css": "postcss src/styles/{base,style}.css --dir dist",
87
+ "lint": "eslint .",
88
+ "test": "exit 0"
89
+ }
90
+ }