pict-section-flow 0.0.10 → 0.0.13
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/.claude/launch.json +1 -1
- package/README.md +176 -0
- package/docs/.nojekyll +0 -0
- package/docs/Architecture.md +303 -0
- package/docs/Custom-Styling.md +275 -0
- package/docs/Data_Model.md +158 -0
- package/docs/Event_System.md +156 -0
- package/docs/Getting_Started.md +237 -0
- package/docs/Implementation_Reference.md +528 -0
- package/docs/Layout_Persistence.md +117 -0
- package/docs/README.md +115 -52
- package/docs/_cover.md +11 -0
- package/docs/_sidebar.md +52 -0
- package/docs/_topbar.md +8 -0
- package/docs/api/PictFlowCard.md +216 -0
- package/docs/api/PictFlowCardPropertiesPanel.md +235 -0
- package/docs/api/addConnection.md +101 -0
- package/docs/api/addNode.md +137 -0
- package/docs/api/autoLayout.md +77 -0
- package/docs/api/getFlowData.md +112 -0
- package/docs/api/marshalToView.md +95 -0
- package/docs/api/openPanel.md +128 -0
- package/docs/api/registerHandler.md +174 -0
- package/docs/api/registerNodeType.md +142 -0
- package/docs/api/removeConnection.md +57 -0
- package/docs/api/removeNode.md +80 -0
- package/docs/api/saveLayout.md +152 -0
- package/docs/api/screenToSVGCoords.md +68 -0
- package/docs/api/selectNode.md +116 -0
- package/docs/api/setTheme.md +168 -0
- package/docs/api/setZoom.md +97 -0
- package/docs/api/toggleFullscreen.md +68 -0
- package/docs/card-help/EACH.md +19 -0
- package/docs/card-help/FREAD.md +24 -0
- package/docs/card-help/FWRITE.md +24 -0
- package/docs/card-help/GET.md +22 -0
- package/docs/card-help/ITE.md +23 -0
- package/docs/card-help/LOG.md +23 -0
- package/docs/card-help/NOTE.md +17 -0
- package/docs/card-help/PREV.md +18 -0
- package/docs/card-help/SET.md +27 -0
- package/docs/card-help/SPKL.md +22 -0
- package/docs/card-help/STAT.md +23 -0
- package/docs/card-help/SW.md +25 -0
- package/docs/css/docuserve.css +73 -0
- package/docs/index.html +39 -0
- package/docs/retold-catalog.json +169 -0
- package/docs/retold-keyword-index.json +13942 -0
- package/example_applications/simple_cards/package.json +1 -0
- package/example_applications/simple_cards/source/card-help-content.js +16 -0
- package/example_applications/simple_cards/source/cards/FlowCard-Comment.js +2 -0
- package/example_applications/simple_cards/source/cards/FlowCard-DataPreview.js +2 -0
- package/example_applications/simple_cards/source/cards/FlowCard-Each.js +2 -0
- package/example_applications/simple_cards/source/cards/FlowCard-FileRead.js +2 -0
- package/example_applications/simple_cards/source/cards/FlowCard-FileWrite.js +2 -0
- package/example_applications/simple_cards/source/cards/FlowCard-GetValue.js +2 -0
- package/example_applications/simple_cards/source/cards/FlowCard-IfThenElse.js +2 -0
- package/example_applications/simple_cards/source/cards/FlowCard-LogValues.js +2 -0
- package/example_applications/simple_cards/source/cards/FlowCard-SetValue.js +2 -0
- package/example_applications/simple_cards/source/cards/FlowCard-Sparkline.js +2 -0
- package/example_applications/simple_cards/source/cards/FlowCard-StatusMonitor.js +2 -0
- package/example_applications/simple_cards/source/cards/FlowCard-Switch.js +2 -0
- package/package.json +11 -7
- package/scripts/generate-card-help.js +214 -0
- package/source/Pict-Section-Flow.js +4 -0
- package/source/PictFlowCard.js +3 -1
- package/source/providers/PictProvider-Flow-CSS.js +245 -152
- package/source/providers/PictProvider-Flow-ConnectorShapes.js +24 -0
- package/source/providers/PictProvider-Flow-Geometry.js +195 -38
- package/source/providers/PictProvider-Flow-PanelChrome.js +14 -12
- package/source/services/PictService-Flow-ConnectionHandleManager.js +263 -0
- package/source/services/PictService-Flow-ConnectionRenderer.js +134 -183
- package/source/services/PictService-Flow-DataManager.js +338 -0
- package/source/services/PictService-Flow-InteractionManager.js +165 -7
- package/source/services/PictService-Flow-PathGenerator.js +282 -0
- package/source/services/PictService-Flow-PortRenderer.js +269 -0
- package/source/services/PictService-Flow-RenderManager.js +281 -0
- package/source/services/PictService-Flow-Tether.js +6 -42
- package/source/views/PictView-Flow-Node.js +2 -220
- package/source/views/PictView-Flow-PropertiesPanel.js +89 -44
- package/source/views/PictView-Flow.js +130 -882
- package/test/ConnectionHandleManager_tests.js +717 -0
- package/test/ConnectionRenderer_tests.js +591 -0
- package/test/DataManager_tests.js +859 -0
- package/test/Geometry_tests.js +767 -0
- package/test/PathGenerator_tests.js +978 -0
- package/test/PortRenderer_tests.js +367 -0
- package/test/RenderManager_tests.js +756 -0
|
@@ -39,9 +39,17 @@ class PictProviderFlowCSS extends libFableServiceProviderBase
|
|
|
39
39
|
Node-type classes (.pict-flow-node-{type}) can scope-override
|
|
40
40
|
any variable for per-type variation. */
|
|
41
41
|
|
|
42
|
+
/* Text */
|
|
43
|
+
--pf-text-primary: #2c3e50;
|
|
44
|
+
--pf-text-heading: #1a252f;
|
|
45
|
+
--pf-text-secondary: #7f8c8d;
|
|
46
|
+
--pf-text-tertiary: #8e99a4;
|
|
47
|
+
--pf-text-placeholder: #95a5a6;
|
|
48
|
+
|
|
42
49
|
/* Node */
|
|
43
50
|
--pf-node-body-fill: #ffffff;
|
|
44
51
|
--pf-node-body-stroke: #d0d4d8;
|
|
52
|
+
--pf-node-body-stroke-hover: #b0b8c0;
|
|
45
53
|
--pf-node-body-stroke-width: 1;
|
|
46
54
|
--pf-node-body-radius: 8px;
|
|
47
55
|
--pf-node-shadow: drop-shadow(0 1px 3px rgba(0, 0, 0, 0.10));
|
|
@@ -55,6 +63,16 @@ class PictProviderFlowCSS extends libFableServiceProviderBase
|
|
|
55
63
|
--pf-node-type-label-fill: #a0a8b0;
|
|
56
64
|
--pf-node-selected-stroke: #3498db;
|
|
57
65
|
|
|
66
|
+
/* Node Variants */
|
|
67
|
+
--pf-node-start-fill: #eafaf1;
|
|
68
|
+
--pf-node-start-stroke: #27ae60;
|
|
69
|
+
--pf-node-end-fill: #e8f8f5;
|
|
70
|
+
--pf-node-end-stroke: #1abc9c;
|
|
71
|
+
--pf-node-halt-fill: #fdedec;
|
|
72
|
+
--pf-node-halt-stroke: #e74c3c;
|
|
73
|
+
--pf-node-decision-fill: #fff9e6;
|
|
74
|
+
--pf-node-decision-stroke: #f39c12;
|
|
75
|
+
|
|
58
76
|
/* Ports */
|
|
59
77
|
--pf-port-input-fill: #3498db;
|
|
60
78
|
--pf-port-output-fill: #2ecc71;
|
|
@@ -77,6 +95,11 @@ class PictProviderFlowCSS extends libFableServiceProviderBase
|
|
|
77
95
|
--pf-connection-value-stroke: #f1c40f;
|
|
78
96
|
--pf-connection-error-stroke: #e74c3c;
|
|
79
97
|
|
|
98
|
+
/* Connections */
|
|
99
|
+
--pf-connection-stroke: #95a5a6;
|
|
100
|
+
--pf-connection-stroke-hover: #7f8c8d;
|
|
101
|
+
--pf-connection-selected-stroke: #3498db;
|
|
102
|
+
|
|
80
103
|
/* Panels */
|
|
81
104
|
--pf-panel-bg: #ffffff;
|
|
82
105
|
--pf-panel-border: #d0d4d8;
|
|
@@ -86,9 +109,44 @@ class PictProviderFlowCSS extends libFableServiceProviderBase
|
|
|
86
109
|
--pf-panel-titlebar-border: #e8eaed;
|
|
87
110
|
--pf-panel-title-color: #2c3e50;
|
|
88
111
|
|
|
89
|
-
/*
|
|
90
|
-
--pf-
|
|
91
|
-
--pf-
|
|
112
|
+
/* Tabs */
|
|
113
|
+
--pf-tab-text: #8e99a4;
|
|
114
|
+
--pf-tab-text-hover: #5a6a7a;
|
|
115
|
+
--pf-tab-active-border: var(--pf-node-selected-stroke);
|
|
116
|
+
--pf-resize-handle-hover: #e0e3e6;
|
|
117
|
+
|
|
118
|
+
/* Forms & Inputs */
|
|
119
|
+
--pf-input-border: #d5d8dc;
|
|
120
|
+
--pf-input-border-focus: #3498db;
|
|
121
|
+
--pf-divider-light: #ecf0f1;
|
|
122
|
+
--pf-divider-medium: #e8eaed;
|
|
123
|
+
|
|
124
|
+
/* Buttons */
|
|
125
|
+
--pf-button-border: #bdc3c7;
|
|
126
|
+
--pf-button-hover-border: #95a5a6;
|
|
127
|
+
--pf-button-hover-bg: #ecf0f1;
|
|
128
|
+
--pf-button-active-bg: #d5dbdb;
|
|
129
|
+
--pf-button-danger-text: #e74c3c;
|
|
130
|
+
--pf-button-danger-hover-bg: #fdedec;
|
|
131
|
+
--pf-button-close-color: #b0b8c0;
|
|
132
|
+
|
|
133
|
+
/* Badges */
|
|
134
|
+
--pf-badge-category-bg: #f0f2f4;
|
|
135
|
+
--pf-badge-category-text: #6b7b8d;
|
|
136
|
+
--pf-badge-code-bg: #eaf2f8;
|
|
137
|
+
--pf-badge-code-text: #2980b9;
|
|
138
|
+
|
|
139
|
+
/* Info Panel */
|
|
140
|
+
--pf-port-item-bg: #f8f9fa;
|
|
141
|
+
|
|
142
|
+
/* Toolbar */
|
|
143
|
+
--pf-toolbar-bg: #ffffff;
|
|
144
|
+
--pf-toolbar-border: #e0e0e0;
|
|
145
|
+
|
|
146
|
+
/* Palette Cards */
|
|
147
|
+
--pf-card-border: #d5d8dc;
|
|
148
|
+
--pf-card-hover-bg: #eaf2f8;
|
|
149
|
+
--pf-card-hover-shadow: 0 1px 3px rgba(52, 152, 219, 0.15);
|
|
92
150
|
|
|
93
151
|
/* Canvas */
|
|
94
152
|
--pf-canvas-bg: #fafafa;
|
|
@@ -100,7 +158,7 @@ class PictProviderFlowCSS extends libFableServiceProviderBase
|
|
|
100
158
|
min-height: 400px;
|
|
101
159
|
overflow: hidden;
|
|
102
160
|
background-color: var(--pf-canvas-bg);
|
|
103
|
-
border: 1px solid
|
|
161
|
+
border: 1px solid var(--pf-toolbar-border);
|
|
104
162
|
border-radius: 4px;
|
|
105
163
|
display: flex;
|
|
106
164
|
flex-direction: column;
|
|
@@ -147,7 +205,7 @@ class PictProviderFlowCSS extends libFableServiceProviderBase
|
|
|
147
205
|
filter: var(--pf-node-shadow-hover);
|
|
148
206
|
}
|
|
149
207
|
.pict-flow-node:hover .pict-flow-node-body {
|
|
150
|
-
stroke:
|
|
208
|
+
stroke: var(--pf-node-body-stroke-hover);
|
|
151
209
|
stroke-width: 1.5;
|
|
152
210
|
}
|
|
153
211
|
.pict-flow-node.selected {
|
|
@@ -234,7 +292,7 @@ class PictProviderFlowCSS extends libFableServiceProviderBase
|
|
|
234
292
|
box-sizing: border-box;
|
|
235
293
|
font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif;
|
|
236
294
|
font-size: 11px;
|
|
237
|
-
color:
|
|
295
|
+
color: var(--pf-text-primary);
|
|
238
296
|
pointer-events: auto;
|
|
239
297
|
}
|
|
240
298
|
.pict-flow-node-body-content-canvas {
|
|
@@ -253,23 +311,23 @@ class PictProviderFlowCSS extends libFableServiceProviderBase
|
|
|
253
311
|
{
|
|
254
312
|
return /*css*/`
|
|
255
313
|
.pict-flow-node-decision .pict-flow-node-body {
|
|
256
|
-
fill:
|
|
257
|
-
stroke:
|
|
314
|
+
fill: var(--pf-node-decision-fill);
|
|
315
|
+
stroke: var(--pf-node-decision-stroke);
|
|
258
316
|
stroke-width: 1.5;
|
|
259
317
|
}
|
|
260
318
|
.pict-flow-node-start .pict-flow-node-body {
|
|
261
|
-
fill:
|
|
262
|
-
stroke:
|
|
319
|
+
fill: var(--pf-node-start-fill);
|
|
320
|
+
stroke: var(--pf-node-start-stroke);
|
|
263
321
|
stroke-width: 1.5;
|
|
264
322
|
}
|
|
265
323
|
.pict-flow-node-end .pict-flow-node-body {
|
|
266
|
-
fill:
|
|
267
|
-
stroke:
|
|
324
|
+
fill: var(--pf-node-end-fill);
|
|
325
|
+
stroke: var(--pf-node-end-stroke);
|
|
268
326
|
stroke-width: 1.5;
|
|
269
327
|
}
|
|
270
328
|
.pict-flow-node-halt .pict-flow-node-body {
|
|
271
|
-
fill:
|
|
272
|
-
stroke:
|
|
329
|
+
fill: var(--pf-node-halt-fill);
|
|
330
|
+
stroke: var(--pf-node-halt-stroke);
|
|
273
331
|
stroke-width: 1.5;
|
|
274
332
|
}
|
|
275
333
|
`;
|
|
@@ -357,7 +415,7 @@ class PictProviderFlowCSS extends libFableServiceProviderBase
|
|
|
357
415
|
transition: stroke 0.15s;
|
|
358
416
|
}
|
|
359
417
|
.pict-flow-connection:hover {
|
|
360
|
-
stroke:
|
|
418
|
+
stroke: var(--pf-connection-stroke-hover);
|
|
361
419
|
stroke-width: 3;
|
|
362
420
|
}
|
|
363
421
|
.pict-flow-connection.selected {
|
|
@@ -388,7 +446,7 @@ class PictProviderFlowCSS extends libFableServiceProviderBase
|
|
|
388
446
|
}
|
|
389
447
|
.pict-flow-drag-connection {
|
|
390
448
|
fill: none;
|
|
391
|
-
stroke:
|
|
449
|
+
stroke: var(--pf-node-selected-stroke);
|
|
392
450
|
stroke-width: 2;
|
|
393
451
|
stroke-dasharray: 6 3;
|
|
394
452
|
pointer-events: none;
|
|
@@ -405,8 +463,8 @@ class PictProviderFlowCSS extends libFableServiceProviderBase
|
|
|
405
463
|
{
|
|
406
464
|
return /*css*/`
|
|
407
465
|
.pict-flow-connection-handle {
|
|
408
|
-
fill:
|
|
409
|
-
stroke:
|
|
466
|
+
fill: var(--pf-panel-bg);
|
|
467
|
+
stroke: var(--pf-node-selected-stroke);
|
|
410
468
|
stroke-width: 2;
|
|
411
469
|
cursor: grab;
|
|
412
470
|
transition: r 0.15s;
|
|
@@ -417,8 +475,8 @@ class PictProviderFlowCSS extends libFableServiceProviderBase
|
|
|
417
475
|
stroke-width: 2.5;
|
|
418
476
|
}
|
|
419
477
|
.pict-flow-connection-handle-midpoint {
|
|
420
|
-
fill:
|
|
421
|
-
stroke:
|
|
478
|
+
fill: var(--pf-panel-bg);
|
|
479
|
+
stroke: var(--pf-port-setting-fill);
|
|
422
480
|
stroke-width: 2;
|
|
423
481
|
cursor: grab;
|
|
424
482
|
transition: r 0.15s;
|
|
@@ -441,14 +499,14 @@ class PictProviderFlowCSS extends libFableServiceProviderBase
|
|
|
441
499
|
return /*css*/`
|
|
442
500
|
.pict-flow-tether-line {
|
|
443
501
|
fill: none;
|
|
444
|
-
stroke:
|
|
502
|
+
stroke: var(--pf-connection-stroke);
|
|
445
503
|
stroke-width: 1.5;
|
|
446
504
|
stroke-dasharray: 6 4;
|
|
447
505
|
pointer-events: visibleStroke;
|
|
448
506
|
cursor: pointer;
|
|
449
507
|
}
|
|
450
508
|
.pict-flow-tether-line.selected {
|
|
451
|
-
stroke:
|
|
509
|
+
stroke: var(--pf-node-selected-stroke);
|
|
452
510
|
stroke-width: 2;
|
|
453
511
|
}
|
|
454
512
|
.pict-flow-tether-hitarea {
|
|
@@ -458,8 +516,8 @@ class PictProviderFlowCSS extends libFableServiceProviderBase
|
|
|
458
516
|
cursor: pointer;
|
|
459
517
|
}
|
|
460
518
|
.pict-flow-tether-handle {
|
|
461
|
-
fill:
|
|
462
|
-
stroke:
|
|
519
|
+
fill: var(--pf-panel-bg);
|
|
520
|
+
stroke: var(--pf-node-selected-stroke);
|
|
463
521
|
stroke-width: 2;
|
|
464
522
|
cursor: grab;
|
|
465
523
|
transition: r 0.15s;
|
|
@@ -470,8 +528,8 @@ class PictProviderFlowCSS extends libFableServiceProviderBase
|
|
|
470
528
|
stroke-width: 2.5;
|
|
471
529
|
}
|
|
472
530
|
.pict-flow-tether-handle-midpoint {
|
|
473
|
-
fill:
|
|
474
|
-
stroke:
|
|
531
|
+
fill: var(--pf-panel-bg);
|
|
532
|
+
stroke: var(--pf-port-setting-fill);
|
|
475
533
|
stroke-width: 2;
|
|
476
534
|
cursor: grab;
|
|
477
535
|
transition: r 0.15s;
|
|
@@ -545,7 +603,7 @@ class PictProviderFlowCSS extends libFableServiceProviderBase
|
|
|
545
603
|
}
|
|
546
604
|
.pict-flow-panel-close-btn {
|
|
547
605
|
cursor: pointer;
|
|
548
|
-
color:
|
|
606
|
+
color: var(--pf-button-close-color);
|
|
549
607
|
font-size: 14px;
|
|
550
608
|
line-height: 1;
|
|
551
609
|
padding: 4px;
|
|
@@ -555,13 +613,18 @@ class PictProviderFlowCSS extends libFableServiceProviderBase
|
|
|
555
613
|
transition: background-color 0.15s, color 0.15s;
|
|
556
614
|
}
|
|
557
615
|
.pict-flow-panel-close-btn:hover {
|
|
558
|
-
color:
|
|
616
|
+
color: var(--pf-button-danger-text);
|
|
559
617
|
background-color: rgba(231, 76, 60, 0.08);
|
|
560
618
|
}
|
|
561
|
-
.pict-flow-panel-
|
|
619
|
+
.pict-flow-panel-content {
|
|
562
620
|
flex: 1;
|
|
563
|
-
overflow: auto;
|
|
621
|
+
overflow-y: auto;
|
|
622
|
+
min-height: 0;
|
|
623
|
+
padding: 0;
|
|
624
|
+
}
|
|
625
|
+
.pict-flow-panel-tab-pane {
|
|
564
626
|
padding: 10px 12px;
|
|
627
|
+
box-sizing: border-box;
|
|
565
628
|
}
|
|
566
629
|
`;
|
|
567
630
|
}
|
|
@@ -578,13 +641,13 @@ class PictProviderFlowCSS extends libFableServiceProviderBase
|
|
|
578
641
|
padding: 2px 0;
|
|
579
642
|
font-size: 12px;
|
|
580
643
|
line-height: 1.5;
|
|
581
|
-
color:
|
|
644
|
+
color: var(--pf-text-primary);
|
|
582
645
|
}
|
|
583
646
|
.pict-flow-info-panel-header {
|
|
584
647
|
font-size: 13px;
|
|
585
648
|
font-weight: 600;
|
|
586
649
|
margin-bottom: 6px;
|
|
587
|
-
color:
|
|
650
|
+
color: var(--pf-text-heading);
|
|
588
651
|
}
|
|
589
652
|
.pict-flow-info-panel-header.with-icon {
|
|
590
653
|
font-size: 14px;
|
|
@@ -594,7 +657,7 @@ class PictProviderFlowCSS extends libFableServiceProviderBase
|
|
|
594
657
|
}
|
|
595
658
|
.pict-flow-info-panel-description {
|
|
596
659
|
font-size: 11px;
|
|
597
|
-
color:
|
|
660
|
+
color: var(--pf-text-secondary);
|
|
598
661
|
margin-bottom: 10px;
|
|
599
662
|
line-height: 1.45;
|
|
600
663
|
}
|
|
@@ -611,12 +674,12 @@ class PictProviderFlowCSS extends libFableServiceProviderBase
|
|
|
611
674
|
font-size: 10px;
|
|
612
675
|
}
|
|
613
676
|
.pict-flow-info-panel-badge.category {
|
|
614
|
-
background:
|
|
615
|
-
color:
|
|
677
|
+
background: var(--pf-badge-category-bg);
|
|
678
|
+
color: var(--pf-badge-category-text);
|
|
616
679
|
}
|
|
617
680
|
.pict-flow-info-panel-badge.code {
|
|
618
|
-
background:
|
|
619
|
-
color:
|
|
681
|
+
background: var(--pf-badge-code-bg);
|
|
682
|
+
color: var(--pf-badge-code-text);
|
|
620
683
|
font-family: "SF Mono", "Fira Code", monospace;
|
|
621
684
|
}
|
|
622
685
|
.pict-flow-info-panel-section {
|
|
@@ -627,14 +690,14 @@ class PictProviderFlowCSS extends libFableServiceProviderBase
|
|
|
627
690
|
font-weight: 600;
|
|
628
691
|
text-transform: uppercase;
|
|
629
692
|
letter-spacing: 0.5px;
|
|
630
|
-
color:
|
|
693
|
+
color: var(--pf-text-tertiary);
|
|
631
694
|
margin-bottom: 4px;
|
|
632
695
|
padding-bottom: 2px;
|
|
633
|
-
border-bottom: 1px solid
|
|
696
|
+
border-bottom: 1px solid var(--pf-divider-light);
|
|
634
697
|
}
|
|
635
698
|
.pict-flow-info-panel-port {
|
|
636
699
|
padding: 3px 8px;
|
|
637
|
-
background:
|
|
700
|
+
background: var(--pf-port-item-bg);
|
|
638
701
|
margin-bottom: 3px;
|
|
639
702
|
font-size: 11px;
|
|
640
703
|
border-radius: 3px;
|
|
@@ -662,14 +725,14 @@ class PictProviderFlowCSS extends libFableServiceProviderBase
|
|
|
662
725
|
border-left-color: var(--pf-port-error-fill);
|
|
663
726
|
}
|
|
664
727
|
.pict-flow-info-panel-port-constraint {
|
|
665
|
-
color:
|
|
728
|
+
color: var(--pf-text-tertiary);
|
|
666
729
|
font-size: 10px;
|
|
667
730
|
}
|
|
668
731
|
/* Port summary section appended below form panels */
|
|
669
732
|
.pict-flow-port-summary {
|
|
670
733
|
margin-top: 12px;
|
|
671
734
|
padding-top: 8px;
|
|
672
|
-
border-top: 1px solid
|
|
735
|
+
border-top: 1px solid var(--pf-divider-medium);
|
|
673
736
|
}
|
|
674
737
|
.pict-flow-info-panel-port.event {
|
|
675
738
|
border-left: 3px solid var(--pf-port-event-in-fill);
|
|
@@ -682,51 +745,12 @@ class PictProviderFlowCSS extends libFableServiceProviderBase
|
|
|
682
745
|
|
|
683
746
|
// ── Node Properties Editor ────────────────────────────────────────────
|
|
684
747
|
/**
|
|
685
|
-
* CSS for the
|
|
748
|
+
* CSS for the node properties editor fields used in the Appearance tab.
|
|
686
749
|
* @returns {string}
|
|
687
750
|
*/
|
|
688
751
|
getNodePropsEditorCSS()
|
|
689
752
|
{
|
|
690
753
|
return /*css*/`
|
|
691
|
-
.pict-flow-panel-node-props {
|
|
692
|
-
border-top: 1px solid var(--pf-panel-titlebar-border);
|
|
693
|
-
flex-shrink: 0;
|
|
694
|
-
}
|
|
695
|
-
.pict-flow-panel-node-props-header {
|
|
696
|
-
display: flex;
|
|
697
|
-
align-items: center;
|
|
698
|
-
gap: 6px;
|
|
699
|
-
padding: 6px 12px;
|
|
700
|
-
cursor: pointer;
|
|
701
|
-
user-select: none;
|
|
702
|
-
-webkit-user-select: none;
|
|
703
|
-
background: var(--pf-panel-titlebar-bg);
|
|
704
|
-
transition: background-color 0.15s;
|
|
705
|
-
}
|
|
706
|
-
.pict-flow-panel-node-props-header:hover {
|
|
707
|
-
background: #eef0f2;
|
|
708
|
-
}
|
|
709
|
-
.pict-flow-panel-node-props-chevron {
|
|
710
|
-
font-size: 8px;
|
|
711
|
-
color: #95a5a6;
|
|
712
|
-
transition: transform 0.2s;
|
|
713
|
-
display: inline-block;
|
|
714
|
-
}
|
|
715
|
-
.pict-flow-panel-node-props-chevron.expanded {
|
|
716
|
-
transform: rotate(90deg);
|
|
717
|
-
}
|
|
718
|
-
.pict-flow-panel-node-props-title {
|
|
719
|
-
font-size: 10px;
|
|
720
|
-
font-weight: 600;
|
|
721
|
-
text-transform: uppercase;
|
|
722
|
-
letter-spacing: 0.5px;
|
|
723
|
-
color: #8e99a4;
|
|
724
|
-
}
|
|
725
|
-
.pict-flow-panel-node-props-body {
|
|
726
|
-
padding: 8px 12px;
|
|
727
|
-
max-height: 240px;
|
|
728
|
-
overflow-y: auto;
|
|
729
|
-
}
|
|
730
754
|
.pict-flow-node-props-fields {
|
|
731
755
|
display: flex;
|
|
732
756
|
flex-direction: column;
|
|
@@ -739,14 +763,14 @@ class PictProviderFlowCSS extends libFableServiceProviderBase
|
|
|
739
763
|
}
|
|
740
764
|
.pict-flow-node-props-label {
|
|
741
765
|
font-size: 11px;
|
|
742
|
-
color:
|
|
766
|
+
color: var(--pf-text-secondary);
|
|
743
767
|
min-width: 72px;
|
|
744
768
|
flex-shrink: 0;
|
|
745
769
|
}
|
|
746
770
|
.pict-flow-node-props-input {
|
|
747
771
|
flex: 1;
|
|
748
772
|
padding: 3px 6px;
|
|
749
|
-
border: 1px solid
|
|
773
|
+
border: 1px solid var(--pf-input-border);
|
|
750
774
|
border-radius: 3px;
|
|
751
775
|
font-size: 11px;
|
|
752
776
|
outline: none;
|
|
@@ -754,7 +778,7 @@ class PictProviderFlowCSS extends libFableServiceProviderBase
|
|
|
754
778
|
min-width: 0;
|
|
755
779
|
}
|
|
756
780
|
.pict-flow-node-props-input:focus {
|
|
757
|
-
border-color:
|
|
781
|
+
border-color: var(--pf-input-border-focus);
|
|
758
782
|
}
|
|
759
783
|
.pict-flow-node-props-color {
|
|
760
784
|
width: 28px;
|
|
@@ -766,6 +790,74 @@ class PictProviderFlowCSS extends libFableServiceProviderBase
|
|
|
766
790
|
`;
|
|
767
791
|
}
|
|
768
792
|
|
|
793
|
+
// ── Panel Tabs & Resize ───────────────────────────────────────────────
|
|
794
|
+
/**
|
|
795
|
+
* CSS for the tab bar, tab panes, resize handle, and help content.
|
|
796
|
+
* @returns {string}
|
|
797
|
+
*/
|
|
798
|
+
getPanelTabsCSS()
|
|
799
|
+
{
|
|
800
|
+
return /*css*/`
|
|
801
|
+
.pict-flow-panel-resize-handle {
|
|
802
|
+
height: 6px;
|
|
803
|
+
cursor: ns-resize;
|
|
804
|
+
background: transparent;
|
|
805
|
+
flex-shrink: 0;
|
|
806
|
+
transition: background-color 0.15s;
|
|
807
|
+
border-top: 1px solid var(--pf-panel-titlebar-border);
|
|
808
|
+
display: flex;
|
|
809
|
+
align-items: center;
|
|
810
|
+
justify-content: center;
|
|
811
|
+
}
|
|
812
|
+
.pict-flow-panel-resize-handle::after {
|
|
813
|
+
content: '';
|
|
814
|
+
width: 24px;
|
|
815
|
+
height: 2px;
|
|
816
|
+
border-radius: 1px;
|
|
817
|
+
background: var(--pf-resize-handle-hover);
|
|
818
|
+
transition: background-color 0.15s, width 0.15s;
|
|
819
|
+
}
|
|
820
|
+
.pict-flow-panel-resize-handle:hover::after {
|
|
821
|
+
background: var(--pf-button-hover-border);
|
|
822
|
+
width: 32px;
|
|
823
|
+
}
|
|
824
|
+
.pict-flow-panel-tabbar {
|
|
825
|
+
display: flex;
|
|
826
|
+
flex-shrink: 0;
|
|
827
|
+
border-top: 1px solid var(--pf-panel-titlebar-border);
|
|
828
|
+
background: var(--pf-panel-titlebar-bg);
|
|
829
|
+
}
|
|
830
|
+
.pict-flow-panel-tab {
|
|
831
|
+
flex: 1;
|
|
832
|
+
padding: 5px 8px;
|
|
833
|
+
font-size: 11px;
|
|
834
|
+
text-align: center;
|
|
835
|
+
cursor: pointer;
|
|
836
|
+
color: var(--pf-tab-text);
|
|
837
|
+
border-top: 2px solid transparent;
|
|
838
|
+
transition: color 0.15s, border-top-color 0.15s;
|
|
839
|
+
user-select: none;
|
|
840
|
+
-webkit-user-select: none;
|
|
841
|
+
}
|
|
842
|
+
.pict-flow-panel-tab:hover {
|
|
843
|
+
color: var(--pf-tab-text-hover);
|
|
844
|
+
}
|
|
845
|
+
.pict-flow-panel-tab.active {
|
|
846
|
+
border-top-color: var(--pf-node-selected-stroke);
|
|
847
|
+
color: var(--pf-panel-title-color);
|
|
848
|
+
font-weight: 600;
|
|
849
|
+
}
|
|
850
|
+
.pict-flow-panel-help-content {
|
|
851
|
+
font-size: 12px;
|
|
852
|
+
line-height: 1.5;
|
|
853
|
+
color: var(--pf-text-primary);
|
|
854
|
+
}
|
|
855
|
+
.pict-flow-panel-help-content p {
|
|
856
|
+
margin: 0 0 8px 0;
|
|
857
|
+
}
|
|
858
|
+
`;
|
|
859
|
+
}
|
|
860
|
+
|
|
769
861
|
// ── Fullscreen ─────────────────────────────────────────────────────────
|
|
770
862
|
/**
|
|
771
863
|
* CSS for fullscreen mode.
|
|
@@ -804,8 +896,8 @@ class PictProviderFlowCSS extends libFableServiceProviderBase
|
|
|
804
896
|
align-items: center;
|
|
805
897
|
gap: 0.5em;
|
|
806
898
|
padding: 0.5em 0.75em;
|
|
807
|
-
background-color:
|
|
808
|
-
border-bottom: 1px solid
|
|
899
|
+
background-color: var(--pf-toolbar-bg);
|
|
900
|
+
border-bottom: 1px solid var(--pf-toolbar-border);
|
|
809
901
|
flex-wrap: wrap;
|
|
810
902
|
}
|
|
811
903
|
.pict-flow-toolbar-group {
|
|
@@ -813,7 +905,7 @@ class PictProviderFlowCSS extends libFableServiceProviderBase
|
|
|
813
905
|
align-items: center;
|
|
814
906
|
gap: 0.25em;
|
|
815
907
|
padding-right: 0.75em;
|
|
816
|
-
border-right: 1px solid
|
|
908
|
+
border-right: 1px solid var(--pf-toolbar-border);
|
|
817
909
|
}
|
|
818
910
|
.pict-flow-toolbar-group:last-child {
|
|
819
911
|
border-right: none;
|
|
@@ -825,10 +917,10 @@ class PictProviderFlowCSS extends libFableServiceProviderBase
|
|
|
825
917
|
justify-content: center;
|
|
826
918
|
gap: 0.35em;
|
|
827
919
|
padding: 0.35em 0.65em;
|
|
828
|
-
border: 1px solid
|
|
920
|
+
border: 1px solid var(--pf-button-border);
|
|
829
921
|
border-radius: 4px;
|
|
830
|
-
background-color:
|
|
831
|
-
color:
|
|
922
|
+
background-color: var(--pf-toolbar-bg);
|
|
923
|
+
color: var(--pf-text-primary);
|
|
832
924
|
font-size: 0.85em;
|
|
833
925
|
cursor: pointer;
|
|
834
926
|
transition: background-color 0.15s, border-color 0.15s;
|
|
@@ -836,18 +928,18 @@ class PictProviderFlowCSS extends libFableServiceProviderBase
|
|
|
836
928
|
-webkit-user-select: none;
|
|
837
929
|
}
|
|
838
930
|
.pict-flow-toolbar-btn:hover {
|
|
839
|
-
background-color:
|
|
840
|
-
border-color:
|
|
931
|
+
background-color: var(--pf-button-hover-bg);
|
|
932
|
+
border-color: var(--pf-button-hover-border);
|
|
841
933
|
}
|
|
842
934
|
.pict-flow-toolbar-btn:active {
|
|
843
|
-
background-color:
|
|
935
|
+
background-color: var(--pf-button-active-bg);
|
|
844
936
|
}
|
|
845
937
|
.pict-flow-toolbar-btn.danger {
|
|
846
|
-
color:
|
|
847
|
-
border-color:
|
|
938
|
+
color: var(--pf-button-danger-text);
|
|
939
|
+
border-color: var(--pf-button-danger-text);
|
|
848
940
|
}
|
|
849
941
|
.pict-flow-toolbar-btn.danger:hover {
|
|
850
|
-
background-color:
|
|
942
|
+
background-color: var(--pf-button-danger-hover-bg);
|
|
851
943
|
}
|
|
852
944
|
.pict-flow-toolbar-btn-icon {
|
|
853
945
|
display: inline-flex;
|
|
@@ -873,16 +965,16 @@ class PictProviderFlowCSS extends libFableServiceProviderBase
|
|
|
873
965
|
}
|
|
874
966
|
.pict-flow-toolbar-label {
|
|
875
967
|
font-size: 0.8em;
|
|
876
|
-
color:
|
|
968
|
+
color: var(--pf-text-secondary);
|
|
877
969
|
margin-right: 0.25em;
|
|
878
970
|
}
|
|
879
971
|
.pict-flow-toolbar-select {
|
|
880
972
|
padding: 0.3em 0.5em;
|
|
881
|
-
border: 1px solid
|
|
973
|
+
border: 1px solid var(--pf-button-border);
|
|
882
974
|
border-radius: 4px;
|
|
883
975
|
font-size: 0.85em;
|
|
884
|
-
background-color:
|
|
885
|
-
color:
|
|
976
|
+
background-color: var(--pf-toolbar-bg);
|
|
977
|
+
color: var(--pf-text-primary);
|
|
886
978
|
}
|
|
887
979
|
`;
|
|
888
980
|
}
|
|
@@ -906,10 +998,10 @@ class PictProviderFlowCSS extends libFableServiceProviderBase
|
|
|
906
998
|
font-weight: 700;
|
|
907
999
|
text-transform: uppercase;
|
|
908
1000
|
letter-spacing: 0.05em;
|
|
909
|
-
color:
|
|
1001
|
+
color: var(--pf-text-placeholder);
|
|
910
1002
|
margin-bottom: 0.35em;
|
|
911
1003
|
padding-bottom: 0.2em;
|
|
912
|
-
border-bottom: 1px solid
|
|
1004
|
+
border-bottom: 1px solid var(--pf-divider-light);
|
|
913
1005
|
}
|
|
914
1006
|
.pict-flow-palette-cards {
|
|
915
1007
|
display: flex;
|
|
@@ -921,9 +1013,9 @@ class PictProviderFlowCSS extends libFableServiceProviderBase
|
|
|
921
1013
|
align-items: center;
|
|
922
1014
|
gap: 0.35em;
|
|
923
1015
|
padding: 0.35em 0.6em;
|
|
924
|
-
border: 1px solid
|
|
1016
|
+
border: 1px solid var(--pf-card-border);
|
|
925
1017
|
border-radius: 4px;
|
|
926
|
-
background-color:
|
|
1018
|
+
background-color: var(--pf-panel-bg);
|
|
927
1019
|
font-size: 0.8em;
|
|
928
1020
|
cursor: pointer;
|
|
929
1021
|
transition: background-color 0.15s, border-color 0.15s, box-shadow 0.15s;
|
|
@@ -932,9 +1024,9 @@ class PictProviderFlowCSS extends libFableServiceProviderBase
|
|
|
932
1024
|
position: relative;
|
|
933
1025
|
}
|
|
934
1026
|
.pict-flow-palette-card:hover {
|
|
935
|
-
background-color:
|
|
936
|
-
border-color:
|
|
937
|
-
box-shadow:
|
|
1027
|
+
background-color: var(--pf-card-hover-bg);
|
|
1028
|
+
border-color: var(--pf-node-selected-stroke);
|
|
1029
|
+
box-shadow: var(--pf-card-hover-shadow);
|
|
938
1030
|
}
|
|
939
1031
|
.pict-flow-palette-card.disabled {
|
|
940
1032
|
opacity: 0.45;
|
|
@@ -953,12 +1045,12 @@ class PictProviderFlowCSS extends libFableServiceProviderBase
|
|
|
953
1045
|
}
|
|
954
1046
|
.pict-flow-palette-card-title {
|
|
955
1047
|
font-weight: 500;
|
|
956
|
-
color:
|
|
1048
|
+
color: var(--pf-text-primary);
|
|
957
1049
|
white-space: nowrap;
|
|
958
1050
|
}
|
|
959
1051
|
.pict-flow-palette-card-code {
|
|
960
1052
|
font-size: 0.8em;
|
|
961
|
-
color:
|
|
1053
|
+
color: var(--pf-text-placeholder);
|
|
962
1054
|
font-family: monospace;
|
|
963
1055
|
}
|
|
964
1056
|
.pict-flow-toolbar-select.layout-select {
|
|
@@ -982,8 +1074,8 @@ class PictProviderFlowCSS extends libFableServiceProviderBase
|
|
|
982
1074
|
.pict-flow-toolbar-popup {
|
|
983
1075
|
position: absolute;
|
|
984
1076
|
z-index: 1000;
|
|
985
|
-
background:
|
|
986
|
-
border: 1px solid
|
|
1077
|
+
background: var(--pf-panel-bg);
|
|
1078
|
+
border: 1px solid var(--pf-card-border);
|
|
987
1079
|
border-radius: 6px;
|
|
988
1080
|
box-shadow: 0 4px 16px rgba(0,0,0,0.12);
|
|
989
1081
|
min-width: 240px;
|
|
@@ -996,7 +1088,7 @@ class PictProviderFlowCSS extends libFableServiceProviderBase
|
|
|
996
1088
|
.pict-flow-popup-search-wrapper {
|
|
997
1089
|
position: relative;
|
|
998
1090
|
padding: 0.4em 0.5em;
|
|
999
|
-
border-bottom: 1px solid
|
|
1091
|
+
border-bottom: 1px solid var(--pf-divider-light);
|
|
1000
1092
|
}
|
|
1001
1093
|
.pict-flow-popup-search-icon {
|
|
1002
1094
|
position: absolute;
|
|
@@ -1011,14 +1103,14 @@ class PictProviderFlowCSS extends libFableServiceProviderBase
|
|
|
1011
1103
|
.pict-flow-popup-search {
|
|
1012
1104
|
width: 100%;
|
|
1013
1105
|
padding: 0.4em 0.5em 0.4em 2em;
|
|
1014
|
-
border: 1px solid
|
|
1106
|
+
border: 1px solid var(--pf-input-border);
|
|
1015
1107
|
border-radius: 4px;
|
|
1016
1108
|
font-size: 0.9em;
|
|
1017
1109
|
outline: none;
|
|
1018
1110
|
box-sizing: border-box;
|
|
1019
1111
|
}
|
|
1020
1112
|
.pict-flow-popup-search:focus {
|
|
1021
|
-
border-color:
|
|
1113
|
+
border-color: var(--pf-input-border-focus);
|
|
1022
1114
|
}
|
|
1023
1115
|
.pict-flow-popup-list-item {
|
|
1024
1116
|
display: flex;
|
|
@@ -1029,7 +1121,7 @@ class PictProviderFlowCSS extends libFableServiceProviderBase
|
|
|
1029
1121
|
transition: background-color 0.1s;
|
|
1030
1122
|
}
|
|
1031
1123
|
.pict-flow-popup-list-item:hover {
|
|
1032
|
-
background-color:
|
|
1124
|
+
background-color: var(--pf-card-hover-bg);
|
|
1033
1125
|
}
|
|
1034
1126
|
.pict-flow-popup-list-item-icon {
|
|
1035
1127
|
display: inline-flex;
|
|
@@ -1039,25 +1131,25 @@ class PictProviderFlowCSS extends libFableServiceProviderBase
|
|
|
1039
1131
|
}
|
|
1040
1132
|
.pict-flow-popup-list-item-label {
|
|
1041
1133
|
flex: 1;
|
|
1042
|
-
color:
|
|
1134
|
+
color: var(--pf-text-primary);
|
|
1043
1135
|
font-weight: 500;
|
|
1044
1136
|
}
|
|
1045
1137
|
.pict-flow-popup-list-item-code {
|
|
1046
1138
|
font-size: 0.8em;
|
|
1047
|
-
color:
|
|
1139
|
+
color: var(--pf-text-placeholder);
|
|
1048
1140
|
font-family: monospace;
|
|
1049
|
-
background:
|
|
1141
|
+
background: var(--pf-badge-category-bg);
|
|
1050
1142
|
padding: 0.1em 0.4em;
|
|
1051
1143
|
border-radius: 3px;
|
|
1052
1144
|
}
|
|
1053
1145
|
.pict-flow-popup-divider {
|
|
1054
1146
|
height: 1px;
|
|
1055
|
-
background:
|
|
1147
|
+
background: var(--pf-divider-light);
|
|
1056
1148
|
margin: 0.25em 0;
|
|
1057
1149
|
}
|
|
1058
1150
|
.pict-flow-popup-list-empty {
|
|
1059
1151
|
text-align: center;
|
|
1060
|
-
color:
|
|
1152
|
+
color: var(--pf-text-placeholder);
|
|
1061
1153
|
padding: 1.5em 0.75em;
|
|
1062
1154
|
font-size: 0.9em;
|
|
1063
1155
|
}
|
|
@@ -1068,11 +1160,11 @@ class PictProviderFlowCSS extends libFableServiceProviderBase
|
|
|
1068
1160
|
padding: 0.45em 0.75em;
|
|
1069
1161
|
cursor: pointer;
|
|
1070
1162
|
transition: background-color 0.1s;
|
|
1071
|
-
color:
|
|
1163
|
+
color: var(--pf-text-primary);
|
|
1072
1164
|
font-weight: 500;
|
|
1073
1165
|
}
|
|
1074
1166
|
.pict-flow-popup-layout-save:hover {
|
|
1075
|
-
background-color:
|
|
1167
|
+
background-color: var(--pf-card-hover-bg);
|
|
1076
1168
|
}
|
|
1077
1169
|
.pict-flow-popup-layout-save-icon {
|
|
1078
1170
|
display: inline-flex;
|
|
@@ -1089,14 +1181,14 @@ class PictProviderFlowCSS extends libFableServiceProviderBase
|
|
|
1089
1181
|
.pict-flow-popup-layout-save-input {
|
|
1090
1182
|
flex: 1;
|
|
1091
1183
|
padding: 0.35em 0.5em;
|
|
1092
|
-
border: 1px solid
|
|
1184
|
+
border: 1px solid var(--pf-input-border);
|
|
1093
1185
|
border-radius: 4px;
|
|
1094
1186
|
font-size: 0.9em;
|
|
1095
1187
|
outline: none;
|
|
1096
1188
|
box-sizing: border-box;
|
|
1097
1189
|
}
|
|
1098
1190
|
.pict-flow-popup-layout-save-input:focus {
|
|
1099
|
-
border-color:
|
|
1191
|
+
border-color: var(--pf-input-border-focus);
|
|
1100
1192
|
}
|
|
1101
1193
|
.pict-flow-popup-layout-save-confirm {
|
|
1102
1194
|
display: inline-flex;
|
|
@@ -1104,17 +1196,17 @@ class PictProviderFlowCSS extends libFableServiceProviderBase
|
|
|
1104
1196
|
justify-content: center;
|
|
1105
1197
|
width: 28px;
|
|
1106
1198
|
height: 28px;
|
|
1107
|
-
border: 1px solid
|
|
1199
|
+
border: 1px solid var(--pf-input-border);
|
|
1108
1200
|
border-radius: 4px;
|
|
1109
|
-
background:
|
|
1201
|
+
background: var(--pf-panel-bg);
|
|
1110
1202
|
cursor: pointer;
|
|
1111
1203
|
flex-shrink: 0;
|
|
1112
1204
|
transition: background-color 0.15s, border-color 0.15s;
|
|
1113
1205
|
line-height: 1;
|
|
1114
1206
|
}
|
|
1115
1207
|
.pict-flow-popup-layout-save-confirm:hover {
|
|
1116
|
-
background-color:
|
|
1117
|
-
border-color:
|
|
1208
|
+
background-color: var(--pf-card-hover-bg);
|
|
1209
|
+
border-color: var(--pf-input-border-focus);
|
|
1118
1210
|
}
|
|
1119
1211
|
.pict-flow-popup-layout-row {
|
|
1120
1212
|
display: flex;
|
|
@@ -1124,11 +1216,11 @@ class PictProviderFlowCSS extends libFableServiceProviderBase
|
|
|
1124
1216
|
transition: background-color 0.1s;
|
|
1125
1217
|
}
|
|
1126
1218
|
.pict-flow-popup-layout-row:hover {
|
|
1127
|
-
background-color:
|
|
1219
|
+
background-color: var(--pf-card-hover-bg);
|
|
1128
1220
|
}
|
|
1129
1221
|
.pict-flow-popup-layout-name {
|
|
1130
1222
|
flex: 1;
|
|
1131
|
-
color:
|
|
1223
|
+
color: var(--pf-text-primary);
|
|
1132
1224
|
}
|
|
1133
1225
|
.pict-flow-popup-layout-delete {
|
|
1134
1226
|
display: none;
|
|
@@ -1136,7 +1228,7 @@ class PictProviderFlowCSS extends libFableServiceProviderBase
|
|
|
1136
1228
|
justify-content: center;
|
|
1137
1229
|
border: none;
|
|
1138
1230
|
background: none;
|
|
1139
|
-
color:
|
|
1231
|
+
color: var(--pf-button-danger-text);
|
|
1140
1232
|
cursor: pointer;
|
|
1141
1233
|
padding: 2px 4px;
|
|
1142
1234
|
border-radius: 3px;
|
|
@@ -1146,7 +1238,7 @@ class PictProviderFlowCSS extends libFableServiceProviderBase
|
|
|
1146
1238
|
display: inline-flex;
|
|
1147
1239
|
}
|
|
1148
1240
|
.pict-flow-popup-layout-delete:hover {
|
|
1149
|
-
background-color:
|
|
1241
|
+
background-color: var(--pf-button-danger-hover-bg);
|
|
1150
1242
|
}
|
|
1151
1243
|
.pict-flow-popup-settings-section {
|
|
1152
1244
|
padding: 0.5em 0.75em;
|
|
@@ -1155,7 +1247,7 @@ class PictProviderFlowCSS extends libFableServiceProviderBase
|
|
|
1155
1247
|
display: block;
|
|
1156
1248
|
font-size: 0.8em;
|
|
1157
1249
|
font-weight: 600;
|
|
1158
|
-
color:
|
|
1250
|
+
color: var(--pf-text-secondary);
|
|
1159
1251
|
text-transform: uppercase;
|
|
1160
1252
|
letter-spacing: 0.05em;
|
|
1161
1253
|
margin-bottom: 0.35em;
|
|
@@ -1163,17 +1255,17 @@ class PictProviderFlowCSS extends libFableServiceProviderBase
|
|
|
1163
1255
|
.pict-flow-popup-settings-select {
|
|
1164
1256
|
width: 100%;
|
|
1165
1257
|
padding: 0.4em 0.5em;
|
|
1166
|
-
border: 1px solid
|
|
1258
|
+
border: 1px solid var(--pf-input-border);
|
|
1167
1259
|
border-radius: 4px;
|
|
1168
1260
|
font-size: 0.9em;
|
|
1169
|
-
background:
|
|
1170
|
-
color:
|
|
1261
|
+
background: var(--pf-panel-bg);
|
|
1262
|
+
color: var(--pf-text-primary);
|
|
1171
1263
|
cursor: pointer;
|
|
1172
1264
|
outline: none;
|
|
1173
1265
|
box-sizing: border-box;
|
|
1174
1266
|
}
|
|
1175
1267
|
.pict-flow-popup-settings-select:focus {
|
|
1176
|
-
border-color:
|
|
1268
|
+
border-color: var(--pf-input-border-focus);
|
|
1177
1269
|
}
|
|
1178
1270
|
.pict-flow-popup-settings-slider-row {
|
|
1179
1271
|
display: flex;
|
|
@@ -1185,7 +1277,7 @@ class PictProviderFlowCSS extends libFableServiceProviderBase
|
|
|
1185
1277
|
-webkit-appearance: none;
|
|
1186
1278
|
appearance: none;
|
|
1187
1279
|
height: 4px;
|
|
1188
|
-
background:
|
|
1280
|
+
background: var(--pf-input-border);
|
|
1189
1281
|
border-radius: 2px;
|
|
1190
1282
|
outline: none;
|
|
1191
1283
|
cursor: pointer;
|
|
@@ -1195,21 +1287,21 @@ class PictProviderFlowCSS extends libFableServiceProviderBase
|
|
|
1195
1287
|
appearance: none;
|
|
1196
1288
|
width: 14px;
|
|
1197
1289
|
height: 14px;
|
|
1198
|
-
background:
|
|
1290
|
+
background: var(--pf-node-selected-stroke);
|
|
1199
1291
|
border-radius: 50%;
|
|
1200
1292
|
cursor: pointer;
|
|
1201
1293
|
}
|
|
1202
1294
|
.pict-flow-popup-settings-slider::-moz-range-thumb {
|
|
1203
1295
|
width: 14px;
|
|
1204
1296
|
height: 14px;
|
|
1205
|
-
background:
|
|
1297
|
+
background: var(--pf-node-selected-stroke);
|
|
1206
1298
|
border-radius: 50%;
|
|
1207
1299
|
cursor: pointer;
|
|
1208
1300
|
border: none;
|
|
1209
1301
|
}
|
|
1210
1302
|
.pict-flow-popup-settings-slider-value {
|
|
1211
1303
|
font-size: 0.85em;
|
|
1212
|
-
color:
|
|
1304
|
+
color: var(--pf-text-secondary);
|
|
1213
1305
|
min-width: 2.5em;
|
|
1214
1306
|
text-align: right;
|
|
1215
1307
|
}
|
|
@@ -1238,8 +1330,8 @@ class PictProviderFlowCSS extends libFableServiceProviderBase
|
|
|
1238
1330
|
width: 36px;
|
|
1239
1331
|
height: 36px;
|
|
1240
1332
|
border-radius: 6px;
|
|
1241
|
-
border: 1px solid
|
|
1242
|
-
background-color:
|
|
1333
|
+
border: 1px solid var(--pf-card-border);
|
|
1334
|
+
background-color: var(--pf-toolbar-bg);
|
|
1243
1335
|
box-shadow: 0 2px 6px rgba(0,0,0,0.1);
|
|
1244
1336
|
cursor: pointer;
|
|
1245
1337
|
display: flex;
|
|
@@ -1248,7 +1340,7 @@ class PictProviderFlowCSS extends libFableServiceProviderBase
|
|
|
1248
1340
|
transition: background-color 0.15s, box-shadow 0.15s;
|
|
1249
1341
|
}
|
|
1250
1342
|
.pict-flow-toolbar-expand-btn:hover {
|
|
1251
|
-
background-color:
|
|
1343
|
+
background-color: var(--pf-button-hover-bg);
|
|
1252
1344
|
box-shadow: 0 2px 8px rgba(0,0,0,0.15);
|
|
1253
1345
|
}
|
|
1254
1346
|
`;
|
|
@@ -1270,8 +1362,8 @@ class PictProviderFlowCSS extends libFableServiceProviderBase
|
|
|
1270
1362
|
gap: 2px;
|
|
1271
1363
|
padding: 4px;
|
|
1272
1364
|
border-radius: 8px;
|
|
1273
|
-
border: 1px solid
|
|
1274
|
-
background-color:
|
|
1365
|
+
border: 1px solid var(--pf-card-border);
|
|
1366
|
+
background-color: var(--pf-toolbar-bg);
|
|
1275
1367
|
box-shadow: 0 4px 16px rgba(0,0,0,0.12);
|
|
1276
1368
|
pointer-events: auto;
|
|
1277
1369
|
}
|
|
@@ -1285,7 +1377,7 @@ class PictProviderFlowCSS extends libFableServiceProviderBase
|
|
|
1285
1377
|
transition: background-color 0.15s;
|
|
1286
1378
|
}
|
|
1287
1379
|
.pict-flow-floating-grip:hover {
|
|
1288
|
-
background-color:
|
|
1380
|
+
background-color: var(--pf-button-hover-bg);
|
|
1289
1381
|
}
|
|
1290
1382
|
.pict-flow-floating-grip:active {
|
|
1291
1383
|
cursor: grabbing;
|
|
@@ -1303,14 +1395,14 @@ class PictProviderFlowCSS extends libFableServiceProviderBase
|
|
|
1303
1395
|
transition: background-color 0.15s;
|
|
1304
1396
|
}
|
|
1305
1397
|
.pict-flow-floating-btn:hover {
|
|
1306
|
-
background-color:
|
|
1398
|
+
background-color: var(--pf-button-hover-bg);
|
|
1307
1399
|
}
|
|
1308
1400
|
.pict-flow-floating-btn.danger:hover {
|
|
1309
|
-
background-color:
|
|
1401
|
+
background-color: var(--pf-button-danger-hover-bg);
|
|
1310
1402
|
}
|
|
1311
1403
|
.pict-flow-floating-separator {
|
|
1312
1404
|
height: 1px;
|
|
1313
|
-
background-color:
|
|
1405
|
+
background-color: var(--pf-divider-light);
|
|
1314
1406
|
margin: 2px 4px;
|
|
1315
1407
|
}
|
|
1316
1408
|
/* Collapsed floating toolbar — grip-only draggable square */
|
|
@@ -1411,7 +1503,7 @@ class PictProviderFlowCSS extends libFableServiceProviderBase
|
|
|
1411
1503
|
stroke-width: 2;
|
|
1412
1504
|
}
|
|
1413
1505
|
.pict-flow-node:hover .pict-flow-node-bracket {
|
|
1414
|
-
stroke:
|
|
1506
|
+
stroke: var(--pf-node-body-stroke-hover);
|
|
1415
1507
|
stroke-width: 1.5;
|
|
1416
1508
|
}
|
|
1417
1509
|
|
|
@@ -1461,6 +1553,7 @@ class PictProviderFlowCSS extends libFableServiceProviderBase
|
|
|
1461
1553
|
this.getPanelCSS() +
|
|
1462
1554
|
this.getInfoPanelCSS() +
|
|
1463
1555
|
this.getNodePropsEditorCSS() +
|
|
1556
|
+
this.getPanelTabsCSS() +
|
|
1464
1557
|
this.getBracketNodeCSS() +
|
|
1465
1558
|
this.getFullscreenCSS() +
|
|
1466
1559
|
this.getToolbarCSS() +
|