@synergenius/flow-weaver 0.10.5 → 0.10.7
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/cli/flow-weaver.mjs +75 -3
- package/dist/diagram/html-viewer.js +74 -2
- package/package.json +1 -1
package/dist/cli/flow-weaver.mjs
CHANGED
|
@@ -61598,7 +61598,7 @@ path[data-source].port-hover { opacity: 1; }
|
|
|
61598
61598
|
}
|
|
61599
61599
|
#info-panel.visible { display: block; }
|
|
61600
61600
|
#info-panel h3 {
|
|
61601
|
-
font-size: 14px; font-weight: 700; margin
|
|
61601
|
+
font-size: 14px; font-weight: 700; margin: 0;
|
|
61602
61602
|
white-space: nowrap; overflow: hidden; text-overflow: ellipsis;
|
|
61603
61603
|
}
|
|
61604
61604
|
#info-panel .node-desc { color: ${textMed}; font-size: 12px; margin-bottom: 8px; font-style: italic; }
|
|
@@ -61617,6 +61617,45 @@ path[data-source].port-hover { opacity: 1; }
|
|
|
61617
61617
|
max-height: 300px; overflow-y: auto; margin: 6px 0 0;
|
|
61618
61618
|
color: ${isDark ? "#e6edf3" : "#1a2340"};
|
|
61619
61619
|
}
|
|
61620
|
+
|
|
61621
|
+
/* Custom scrollbars */
|
|
61622
|
+
::-webkit-scrollbar { width: 6px; height: 6px; }
|
|
61623
|
+
::-webkit-scrollbar-track { background: transparent; }
|
|
61624
|
+
::-webkit-scrollbar-thumb { background: ${isDark ? "rgba(142,158,255,0.25)" : "rgba(84,104,255,0.2)"}; border-radius: 3px; }
|
|
61625
|
+
::-webkit-scrollbar-thumb:hover { background: ${isDark ? "rgba(142,158,255,0.45)" : "rgba(84,104,255,0.4)"}; }
|
|
61626
|
+
::-webkit-scrollbar-corner { background: transparent; }
|
|
61627
|
+
* { scrollbar-width: thin; scrollbar-color: ${isDark ? "rgba(142,158,255,0.25)" : "rgba(84,104,255,0.2)"} transparent; }
|
|
61628
|
+
|
|
61629
|
+
/* Info panel header */
|
|
61630
|
+
#info-header {
|
|
61631
|
+
display: flex; align-items: center; gap: 6px; margin-bottom: 6px;
|
|
61632
|
+
}
|
|
61633
|
+
#info-header h3 { flex: 1; margin-bottom: 0; }
|
|
61634
|
+
.panel-btn {
|
|
61635
|
+
display: flex; align-items: center; justify-content: center;
|
|
61636
|
+
width: 24px; height: 24px; border: none; border-radius: 4px;
|
|
61637
|
+
background: transparent; color: ${textLow};
|
|
61638
|
+
cursor: pointer; transition: background 0.15s, color 0.15s;
|
|
61639
|
+
flex-shrink: 0;
|
|
61640
|
+
}
|
|
61641
|
+
.panel-btn:hover { background: ${surfaceHigh}; color: ${textHigh}; }
|
|
61642
|
+
|
|
61643
|
+
/* Info panel transitions */
|
|
61644
|
+
#info-panel {
|
|
61645
|
+
transition: left 0.3s cubic-bezier(0.4,0,0.2,1), bottom 0.3s cubic-bezier(0.4,0,0.2,1),
|
|
61646
|
+
width 0.3s cubic-bezier(0.4,0,0.2,1), height 0.3s cubic-bezier(0.4,0,0.2,1),
|
|
61647
|
+
max-width 0.3s cubic-bezier(0.4,0,0.2,1), max-height 0.3s cubic-bezier(0.4,0,0.2,1),
|
|
61648
|
+
min-width 0.3s cubic-bezier(0.4,0,0.2,1), border-radius 0.3s cubic-bezier(0.4,0,0.2,1),
|
|
61649
|
+
opacity 0.2s ease, transform 0.3s cubic-bezier(0.4,0,0.2,1);
|
|
61650
|
+
transform: translateY(8px); opacity: 0;
|
|
61651
|
+
}
|
|
61652
|
+
#info-panel.visible { transform: translateY(0); opacity: 1; }
|
|
61653
|
+
#info-panel.fullscreen {
|
|
61654
|
+
left: 16px; bottom: 16px; top: 16px; right: 16px;
|
|
61655
|
+
max-width: none; min-width: 0; width: auto; max-height: none;
|
|
61656
|
+
border-radius: 12px;
|
|
61657
|
+
}
|
|
61658
|
+
#info-panel.fullscreen pre { max-height: none; }
|
|
61620
61659
|
.hl-kw { color: ${isDark ? "#8e9eff" : "#4040bf"}; }
|
|
61621
61660
|
.hl-str { color: ${isDark ? "#ff7b72" : "#c4432b"}; }
|
|
61622
61661
|
.hl-num { color: ${isDark ? "#f0a050" : "#b35e14"}; }
|
|
@@ -61704,7 +61743,19 @@ path[data-source].port-hover { opacity: 1; }
|
|
|
61704
61743
|
</button>
|
|
61705
61744
|
</div>
|
|
61706
61745
|
<div id="info-panel">
|
|
61707
|
-
<
|
|
61746
|
+
<div id="info-header">
|
|
61747
|
+
<h3 id="info-title"></h3>
|
|
61748
|
+
<button class="panel-btn" id="btn-expand" title="Expand panel" aria-label="Expand panel">
|
|
61749
|
+
<svg width="14" height="14" viewBox="0 0 14 14" fill="none" stroke="currentColor" stroke-width="1.5" stroke-linecap="round">
|
|
61750
|
+
<path d="M1 5V1h4M9 1h4v4M13 9v4H9M5 13H1V9"/>
|
|
61751
|
+
</svg>
|
|
61752
|
+
</button>
|
|
61753
|
+
<button class="panel-btn" id="btn-close-panel" title="Close panel" aria-label="Close panel">
|
|
61754
|
+
<svg width="14" height="14" viewBox="0 0 14 14" fill="none" stroke="currentColor" stroke-width="1.5" stroke-linecap="round">
|
|
61755
|
+
<path d="M2 2l10 10M12 2L2 12"/>
|
|
61756
|
+
</svg>
|
|
61757
|
+
</button>
|
|
61758
|
+
</div>
|
|
61708
61759
|
<div id="info-body"></div>
|
|
61709
61760
|
</div>
|
|
61710
61761
|
<a id="branding" href="https://flowweaver.ai" target="_blank" rel="noopener">
|
|
@@ -61725,8 +61776,12 @@ path[data-source].port-hover { opacity: 1; }
|
|
|
61725
61776
|
var infoPanel = document.getElementById('info-panel');
|
|
61726
61777
|
var infoTitle = document.getElementById('info-title');
|
|
61727
61778
|
var infoBody = document.getElementById('info-body');
|
|
61779
|
+
var btnExpand = document.getElementById('btn-expand');
|
|
61780
|
+
var btnClosePanel = document.getElementById('btn-close-panel');
|
|
61728
61781
|
var scrollHint = document.getElementById('scroll-hint');
|
|
61729
61782
|
var studioHint = document.getElementById('studio-hint');
|
|
61783
|
+
var expandIcon = '<svg width="14" height="14" viewBox="0 0 14 14" fill="none" stroke="currentColor" stroke-width="1.5" stroke-linecap="round"><path d="M1 5V1h4M9 1h4v4M13 9v4H9M5 13H1V9"/></svg>';
|
|
61784
|
+
var collapseIcon = '<svg width="14" height="14" viewBox="0 0 14 14" fill="none" stroke="currentColor" stroke-width="1.5" stroke-linecap="round"><path d="M5 1v4H1M13 5H9V1M9 13V9h4M1 9h4v4"/></svg>';
|
|
61730
61785
|
|
|
61731
61786
|
// Parse the original viewBox (diagram bounding box)
|
|
61732
61787
|
var vbParts = '${viewBox}'.split(/\\s+/).map(Number);
|
|
@@ -62235,6 +62290,8 @@ path[data-source].port-hover { opacity: 1; }
|
|
|
62235
62290
|
selectedNodeId = null;
|
|
62236
62291
|
document.body.classList.remove('node-active');
|
|
62237
62292
|
infoPanel.classList.remove('visible');
|
|
62293
|
+
infoPanel.classList.remove('fullscreen');
|
|
62294
|
+
btnExpand.innerHTML = expandIcon;
|
|
62238
62295
|
removeNodeGlow();
|
|
62239
62296
|
content.querySelectorAll('path[data-source].dimmed').forEach(function(p) {
|
|
62240
62297
|
p.classList.remove('dimmed');
|
|
@@ -62466,6 +62523,21 @@ path[data-source].port-hover { opacity: 1; }
|
|
|
62466
62523
|
deselectNode();
|
|
62467
62524
|
});
|
|
62468
62525
|
|
|
62526
|
+
// ---- Panel expand/collapse ----
|
|
62527
|
+
btnExpand.addEventListener('click', function(e) {
|
|
62528
|
+
e.stopPropagation();
|
|
62529
|
+
infoPanel.classList.toggle('fullscreen');
|
|
62530
|
+
btnExpand.innerHTML = infoPanel.classList.contains('fullscreen') ? collapseIcon : expandIcon;
|
|
62531
|
+
btnExpand.title = infoPanel.classList.contains('fullscreen') ? 'Collapse panel' : 'Expand panel';
|
|
62532
|
+
});
|
|
62533
|
+
btnClosePanel.addEventListener('click', function(e) {
|
|
62534
|
+
e.stopPropagation();
|
|
62535
|
+
deselectPort();
|
|
62536
|
+
deselectNode();
|
|
62537
|
+
infoPanel.classList.remove('fullscreen');
|
|
62538
|
+
btnExpand.innerHTML = expandIcon;
|
|
62539
|
+
});
|
|
62540
|
+
|
|
62469
62541
|
// ---- Init ----
|
|
62470
62542
|
requestAnimationFrame(fitToView);
|
|
62471
62543
|
window.addEventListener('resize', fitToView);
|
|
@@ -97096,7 +97168,7 @@ function displayInstalledPackage(pkg) {
|
|
|
97096
97168
|
}
|
|
97097
97169
|
|
|
97098
97170
|
// src/cli/index.ts
|
|
97099
|
-
var version2 = true ? "0.10.
|
|
97171
|
+
var version2 = true ? "0.10.7" : "0.0.0-dev";
|
|
97100
97172
|
var program2 = new Command();
|
|
97101
97173
|
program2.name("flow-weaver").description("Flow Weaver Annotations - Compile and validate workflow files").version(version2, "-v, --version", "Output the current version");
|
|
97102
97174
|
program2.configureOutput({
|
|
@@ -132,7 +132,7 @@ path[data-source].port-hover { opacity: 1; }
|
|
|
132
132
|
}
|
|
133
133
|
#info-panel.visible { display: block; }
|
|
134
134
|
#info-panel h3 {
|
|
135
|
-
font-size: 14px; font-weight: 700; margin
|
|
135
|
+
font-size: 14px; font-weight: 700; margin: 0;
|
|
136
136
|
white-space: nowrap; overflow: hidden; text-overflow: ellipsis;
|
|
137
137
|
}
|
|
138
138
|
#info-panel .node-desc { color: ${textMed}; font-size: 12px; margin-bottom: 8px; font-style: italic; }
|
|
@@ -151,6 +151,45 @@ path[data-source].port-hover { opacity: 1; }
|
|
|
151
151
|
max-height: 300px; overflow-y: auto; margin: 6px 0 0;
|
|
152
152
|
color: ${isDark ? '#e6edf3' : '#1a2340'};
|
|
153
153
|
}
|
|
154
|
+
|
|
155
|
+
/* Custom scrollbars */
|
|
156
|
+
::-webkit-scrollbar { width: 6px; height: 6px; }
|
|
157
|
+
::-webkit-scrollbar-track { background: transparent; }
|
|
158
|
+
::-webkit-scrollbar-thumb { background: ${isDark ? 'rgba(142,158,255,0.25)' : 'rgba(84,104,255,0.2)'}; border-radius: 3px; }
|
|
159
|
+
::-webkit-scrollbar-thumb:hover { background: ${isDark ? 'rgba(142,158,255,0.45)' : 'rgba(84,104,255,0.4)'}; }
|
|
160
|
+
::-webkit-scrollbar-corner { background: transparent; }
|
|
161
|
+
* { scrollbar-width: thin; scrollbar-color: ${isDark ? 'rgba(142,158,255,0.25)' : 'rgba(84,104,255,0.2)'} transparent; }
|
|
162
|
+
|
|
163
|
+
/* Info panel header */
|
|
164
|
+
#info-header {
|
|
165
|
+
display: flex; align-items: center; gap: 6px; margin-bottom: 6px;
|
|
166
|
+
}
|
|
167
|
+
#info-header h3 { flex: 1; margin-bottom: 0; }
|
|
168
|
+
.panel-btn {
|
|
169
|
+
display: flex; align-items: center; justify-content: center;
|
|
170
|
+
width: 24px; height: 24px; border: none; border-radius: 4px;
|
|
171
|
+
background: transparent; color: ${textLow};
|
|
172
|
+
cursor: pointer; transition: background 0.15s, color 0.15s;
|
|
173
|
+
flex-shrink: 0;
|
|
174
|
+
}
|
|
175
|
+
.panel-btn:hover { background: ${surfaceHigh}; color: ${textHigh}; }
|
|
176
|
+
|
|
177
|
+
/* Info panel transitions */
|
|
178
|
+
#info-panel {
|
|
179
|
+
transition: left 0.3s cubic-bezier(0.4,0,0.2,1), bottom 0.3s cubic-bezier(0.4,0,0.2,1),
|
|
180
|
+
width 0.3s cubic-bezier(0.4,0,0.2,1), height 0.3s cubic-bezier(0.4,0,0.2,1),
|
|
181
|
+
max-width 0.3s cubic-bezier(0.4,0,0.2,1), max-height 0.3s cubic-bezier(0.4,0,0.2,1),
|
|
182
|
+
min-width 0.3s cubic-bezier(0.4,0,0.2,1), border-radius 0.3s cubic-bezier(0.4,0,0.2,1),
|
|
183
|
+
opacity 0.2s ease, transform 0.3s cubic-bezier(0.4,0,0.2,1);
|
|
184
|
+
transform: translateY(8px); opacity: 0;
|
|
185
|
+
}
|
|
186
|
+
#info-panel.visible { transform: translateY(0); opacity: 1; }
|
|
187
|
+
#info-panel.fullscreen {
|
|
188
|
+
left: 16px; bottom: 16px; top: 16px; right: 16px;
|
|
189
|
+
max-width: none; min-width: 0; width: auto; max-height: none;
|
|
190
|
+
border-radius: 12px;
|
|
191
|
+
}
|
|
192
|
+
#info-panel.fullscreen pre { max-height: none; }
|
|
154
193
|
.hl-kw { color: ${isDark ? '#8e9eff' : '#4040bf'}; }
|
|
155
194
|
.hl-str { color: ${isDark ? '#ff7b72' : '#c4432b'}; }
|
|
156
195
|
.hl-num { color: ${isDark ? '#f0a050' : '#b35e14'}; }
|
|
@@ -238,7 +277,19 @@ path[data-source].port-hover { opacity: 1; }
|
|
|
238
277
|
</button>
|
|
239
278
|
</div>
|
|
240
279
|
<div id="info-panel">
|
|
241
|
-
<
|
|
280
|
+
<div id="info-header">
|
|
281
|
+
<h3 id="info-title"></h3>
|
|
282
|
+
<button class="panel-btn" id="btn-expand" title="Expand panel" aria-label="Expand panel">
|
|
283
|
+
<svg width="14" height="14" viewBox="0 0 14 14" fill="none" stroke="currentColor" stroke-width="1.5" stroke-linecap="round">
|
|
284
|
+
<path d="M1 5V1h4M9 1h4v4M13 9v4H9M5 13H1V9"/>
|
|
285
|
+
</svg>
|
|
286
|
+
</button>
|
|
287
|
+
<button class="panel-btn" id="btn-close-panel" title="Close panel" aria-label="Close panel">
|
|
288
|
+
<svg width="14" height="14" viewBox="0 0 14 14" fill="none" stroke="currentColor" stroke-width="1.5" stroke-linecap="round">
|
|
289
|
+
<path d="M2 2l10 10M12 2L2 12"/>
|
|
290
|
+
</svg>
|
|
291
|
+
</button>
|
|
292
|
+
</div>
|
|
242
293
|
<div id="info-body"></div>
|
|
243
294
|
</div>
|
|
244
295
|
<a id="branding" href="https://flowweaver.ai" target="_blank" rel="noopener">
|
|
@@ -259,8 +310,12 @@ path[data-source].port-hover { opacity: 1; }
|
|
|
259
310
|
var infoPanel = document.getElementById('info-panel');
|
|
260
311
|
var infoTitle = document.getElementById('info-title');
|
|
261
312
|
var infoBody = document.getElementById('info-body');
|
|
313
|
+
var btnExpand = document.getElementById('btn-expand');
|
|
314
|
+
var btnClosePanel = document.getElementById('btn-close-panel');
|
|
262
315
|
var scrollHint = document.getElementById('scroll-hint');
|
|
263
316
|
var studioHint = document.getElementById('studio-hint');
|
|
317
|
+
var expandIcon = '<svg width="14" height="14" viewBox="0 0 14 14" fill="none" stroke="currentColor" stroke-width="1.5" stroke-linecap="round"><path d="M1 5V1h4M9 1h4v4M13 9v4H9M5 13H1V9"/></svg>';
|
|
318
|
+
var collapseIcon = '<svg width="14" height="14" viewBox="0 0 14 14" fill="none" stroke="currentColor" stroke-width="1.5" stroke-linecap="round"><path d="M5 1v4H1M13 5H9V1M9 13V9h4M1 9h4v4"/></svg>';
|
|
264
319
|
|
|
265
320
|
// Parse the original viewBox (diagram bounding box)
|
|
266
321
|
var vbParts = '${viewBox}'.split(/\\s+/).map(Number);
|
|
@@ -769,6 +824,8 @@ path[data-source].port-hover { opacity: 1; }
|
|
|
769
824
|
selectedNodeId = null;
|
|
770
825
|
document.body.classList.remove('node-active');
|
|
771
826
|
infoPanel.classList.remove('visible');
|
|
827
|
+
infoPanel.classList.remove('fullscreen');
|
|
828
|
+
btnExpand.innerHTML = expandIcon;
|
|
772
829
|
removeNodeGlow();
|
|
773
830
|
content.querySelectorAll('path[data-source].dimmed').forEach(function(p) {
|
|
774
831
|
p.classList.remove('dimmed');
|
|
@@ -1000,6 +1057,21 @@ path[data-source].port-hover { opacity: 1; }
|
|
|
1000
1057
|
deselectNode();
|
|
1001
1058
|
});
|
|
1002
1059
|
|
|
1060
|
+
// ---- Panel expand/collapse ----
|
|
1061
|
+
btnExpand.addEventListener('click', function(e) {
|
|
1062
|
+
e.stopPropagation();
|
|
1063
|
+
infoPanel.classList.toggle('fullscreen');
|
|
1064
|
+
btnExpand.innerHTML = infoPanel.classList.contains('fullscreen') ? collapseIcon : expandIcon;
|
|
1065
|
+
btnExpand.title = infoPanel.classList.contains('fullscreen') ? 'Collapse panel' : 'Expand panel';
|
|
1066
|
+
});
|
|
1067
|
+
btnClosePanel.addEventListener('click', function(e) {
|
|
1068
|
+
e.stopPropagation();
|
|
1069
|
+
deselectPort();
|
|
1070
|
+
deselectNode();
|
|
1071
|
+
infoPanel.classList.remove('fullscreen');
|
|
1072
|
+
btnExpand.innerHTML = expandIcon;
|
|
1073
|
+
});
|
|
1074
|
+
|
|
1003
1075
|
// ---- Init ----
|
|
1004
1076
|
requestAnimationFrame(fitToView);
|
|
1005
1077
|
window.addEventListener('resize', fitToView);
|
package/package.json
CHANGED