@zenfg/inspector 0.1.0-beta.2 → 0.1.0-beta.3
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/README.md +63 -1
- package/dist/FrameGraphInspector.d.ts +2 -5
- package/dist/FrameGraphInspector.d.ts.map +1 -1
- package/dist/FrameGraphInspector.js +16 -38
- package/dist/FrameGraphInspector.js.map +1 -1
- package/dist/debugCaptureModel.d.ts +9 -4
- package/dist/debugCaptureModel.d.ts.map +1 -1
- package/dist/debugCaptureModel.js +36 -14
- package/dist/debugCaptureModel.js.map +1 -1
- package/dist/panelCytoscapeGraphRenderer.d.ts +3 -1
- package/dist/panelCytoscapeGraphRenderer.d.ts.map +1 -1
- package/dist/panelCytoscapeGraphRenderer.js +39 -19
- package/dist/panelCytoscapeGraphRenderer.js.map +1 -1
- package/dist/panelDiagnosticsView.js +2 -2
- package/dist/panelDiagnosticsView.js.map +1 -1
- package/dist/panelGraphLayout.d.ts.map +1 -1
- package/dist/panelGraphLayout.js +15 -1
- package/dist/panelGraphLayout.js.map +1 -1
- package/dist/panelGraphScene.d.ts +14 -26
- package/dist/panelGraphScene.d.ts.map +1 -1
- package/dist/panelGraphScene.js +141 -195
- package/dist/panelGraphScene.js.map +1 -1
- package/dist/panelGraphView.d.ts.map +1 -1
- package/dist/panelGraphView.js +31 -9
- package/dist/panelGraphView.js.map +1 -1
- package/dist/panelGraphVisuals.d.ts +7 -3
- package/dist/panelGraphVisuals.d.ts.map +1 -1
- package/dist/panelGraphVisuals.js +45 -80
- package/dist/panelGraphVisuals.js.map +1 -1
- package/dist/panelInspectorView.d.ts +5 -0
- package/dist/panelInspectorView.d.ts.map +1 -1
- package/dist/panelInspectorView.js +99 -13
- package/dist/panelInspectorView.js.map +1 -1
- package/dist/panelSelection.js +2 -2
- package/dist/panelSelection.js.map +1 -1
- package/dist/panelTypes.d.ts +8 -3
- package/dist/panelTypes.d.ts.map +1 -1
- package/dist/panelTypes.js.map +1 -1
- package/dist/panelVisualTheme.d.ts +21 -13
- package/dist/panelVisualTheme.d.ts.map +1 -1
- package/dist/panelVisualTheme.js +15 -7
- package/dist/panelVisualTheme.js.map +1 -1
- package/dist/panelWorkbenchHelpers.js +1 -1
- package/dist/panelWorkbenchHelpers.js.map +1 -1
- package/dist/styles.d.ts.map +1 -1
- package/dist/styles.js +16 -12
- package/dist/styles.js.map +1 -1
- package/package.json +2 -2
- package/src/FrameGraphInspector.ts +17 -39
- package/src/debugCaptureModel.ts +44 -19
- package/src/panelCytoscapeGraphRenderer.ts +38 -18
- package/src/panelDiagnosticsView.ts +3 -3
- package/src/panelGraphLayout.ts +15 -1
- package/src/panelGraphScene.ts +153 -279
- package/src/panelGraphView.ts +31 -9
- package/src/panelGraphVisuals.ts +46 -82
- package/src/panelInspectorView.ts +104 -16
- package/src/panelSelection.ts +2 -2
- package/src/panelTypes.ts +9 -3
- package/src/panelVisualTheme.ts +18 -7
- package/src/panelWorkbenchHelpers.ts +2 -2
- package/src/styles.ts +16 -12
package/src/panelVisualTheme.ts
CHANGED
|
@@ -16,22 +16,33 @@ export const FRAME_GRAPH_DEBUG_VISUAL_THEME = {
|
|
|
16
16
|
fontMono: 'ui-monospace, SFMono-Regular, Consolas, "Liberation Mono", monospace',
|
|
17
17
|
} as const;
|
|
18
18
|
|
|
19
|
+
function category(stroke: string) {
|
|
20
|
+
const canvas = FRAME_GRAPH_DEBUG_VISUAL_THEME.canvas;
|
|
21
|
+
const fill = '#' + [1, 3, 5].map((offset) => Math.round(
|
|
22
|
+
parseInt(stroke.slice(offset, offset + 2), 16) * 0.18
|
|
23
|
+
+ parseInt(canvas.slice(offset, offset + 2), 16) * 0.82,
|
|
24
|
+
).toString(16).padStart(2, '0')).join('');
|
|
25
|
+
return { stroke, fill };
|
|
26
|
+
}
|
|
27
|
+
|
|
19
28
|
export const GRAPH_VISUAL_THEME = {
|
|
20
29
|
canvas: FRAME_GRAPH_DEBUG_VISUAL_THEME.canvas,
|
|
21
30
|
surface: FRAME_GRAPH_DEBUG_VISUAL_THEME.surface,
|
|
22
31
|
surfaceRaised: FRAME_GRAPH_DEBUG_VISUAL_THEME.surfaceRaised,
|
|
23
32
|
text: FRAME_GRAPH_DEBUG_VISUAL_THEME.text,
|
|
24
33
|
muted: FRAME_GRAPH_DEBUG_VISUAL_THEME.muted,
|
|
25
|
-
render:
|
|
26
|
-
compute:
|
|
27
|
-
copy:
|
|
28
|
-
clear:
|
|
29
|
-
command:
|
|
30
|
-
external:
|
|
34
|
+
render: category('#57C785'),
|
|
35
|
+
compute: category('#9AA5FF'),
|
|
36
|
+
copy: category('#F2CD60'),
|
|
37
|
+
clear: category('#C4CF89'),
|
|
38
|
+
command: category('#CF91E8'),
|
|
39
|
+
external: category('#F29A67'),
|
|
40
|
+
declaration: category('#B9AB94'),
|
|
41
|
+
output: category('#EC91AE'),
|
|
31
42
|
texture: { stroke: '#f472b6', fill: '#3c1f32' },
|
|
32
43
|
buffer: { stroke: '#2dd4bf', fill: '#123632' },
|
|
33
44
|
group: { stroke: '#64748b', fill: '#141c29', alternateFill: '#172033' },
|
|
34
|
-
dependency: { value: '#94a3b8', ordering: '#
|
|
45
|
+
dependency: { value: '#94a3b8', ordering: '#8593a6' },
|
|
35
46
|
access: { read: '#2dd4bf', write: '#f59e0b' },
|
|
36
47
|
selected: FRAME_GRAPH_DEBUG_VISUAL_THEME.accent,
|
|
37
48
|
hover: '#cbd5e1',
|
|
@@ -22,7 +22,7 @@ export function selectionKey(selection: Selection): string {
|
|
|
22
22
|
case 'node': return `node:${selection.id}`;
|
|
23
23
|
case 'group': return `group:${selection.pathKey}`;
|
|
24
24
|
case 'resource': return `resource:${selection.id}`;
|
|
25
|
-
case 'root': return `root:${selection.
|
|
25
|
+
case 'root': return `root:${selection.key}`;
|
|
26
26
|
case 'culled': return `culled:${selection.index}`;
|
|
27
27
|
case 'allocation': return `allocation:${selection.id}`;
|
|
28
28
|
case 'segment': return `segment:${selection.index}`;
|
|
@@ -161,7 +161,7 @@ export function createKindCell(kind: string, label = kind): HTMLTableCellElement
|
|
|
161
161
|
cell.appendChild(marker);
|
|
162
162
|
return cell;
|
|
163
163
|
}
|
|
164
|
-
|
|
164
|
+
|
|
165
165
|
export function groupPath(snapshot: FrameGraphDebugViewModel, groupId: string | undefined): string {
|
|
166
166
|
if (groupId === undefined) return '-';
|
|
167
167
|
return snapshot.groupById.get(groupId)?.path.join(' / ') ?? `group-${groupId}`;
|
package/src/styles.ts
CHANGED
|
@@ -597,7 +597,7 @@ button[aria-busy='true'] > .zenfg-inspector-control-icon {
|
|
|
597
597
|
.zenfg-inspector-graph-view { display: flex; flex-direction: column; }
|
|
598
598
|
.zenfg-inspector-graph-toolbar {
|
|
599
599
|
display: grid;
|
|
600
|
-
grid-template-columns:
|
|
600
|
+
grid-template-columns: minmax(0, 1fr) auto;
|
|
601
601
|
align-items: center;
|
|
602
602
|
gap: 10px;
|
|
603
603
|
min-width: 0;
|
|
@@ -606,18 +606,8 @@ button[aria-busy='true'] > .zenfg-inspector-control-icon {
|
|
|
606
606
|
border-bottom: 1px solid var(--fgd-border-subtle);
|
|
607
607
|
background: var(--fgd-surface);
|
|
608
608
|
}
|
|
609
|
-
.zenfg-inspector-graph-mode-controls,
|
|
610
609
|
.zenfg-inspector-graph-action-controls { display: flex; align-items: center; min-width: 0; }
|
|
611
610
|
.zenfg-inspector-graph-action-controls { gap: 4px; }
|
|
612
|
-
.zenfg-inspector-graph-toolbar .zenfg-inspector-mode-button {
|
|
613
|
-
margin-right: -1px;
|
|
614
|
-
border-radius: 0;
|
|
615
|
-
}
|
|
616
|
-
.zenfg-inspector-graph-toolbar .zenfg-inspector-mode-button:first-child { border-radius: 5px 0 0 5px; }
|
|
617
|
-
.zenfg-inspector-graph-toolbar .zenfg-inspector-mode-button:last-child {
|
|
618
|
-
margin-right: 0;
|
|
619
|
-
border-radius: 0 5px 5px 0;
|
|
620
|
-
}
|
|
621
611
|
.zenfg-inspector-graph-toolbar button.active,
|
|
622
612
|
.zenfg-inspector-graph-toolbar button[aria-pressed='true'] {
|
|
623
613
|
z-index: 1;
|
|
@@ -640,6 +630,9 @@ button[aria-busy='true'] > .zenfg-inspector-control-icon {
|
|
|
640
630
|
white-space: nowrap;
|
|
641
631
|
}
|
|
642
632
|
.zenfg-inspector-legend-item { display: inline-flex; align-items: center; gap: 4px; flex: 0 0 auto; }
|
|
633
|
+
.zenfg-inspector-legend-group { display: inline-flex; align-items: center; gap: 10px; flex: 0 0 auto; }
|
|
634
|
+
.zenfg-inspector-legend-group + .zenfg-inspector-legend-group { border-left: 1px solid var(--fgd-border-subtle); padding-left: 10px; }
|
|
635
|
+
.zenfg-inspector-legend-heading { color: var(--fgd-text-secondary); font-weight: 600; }
|
|
643
636
|
.zenfg-inspector-legend-swatch {
|
|
644
637
|
position: relative;
|
|
645
638
|
display: inline-block;
|
|
@@ -650,7 +643,15 @@ button[aria-busy='true'] > .zenfg-inspector-control-icon {
|
|
|
650
643
|
background: color-mix(in srgb, var(--zenfg-inspector-legend-color) 20%, var(--fgd-canvas));
|
|
651
644
|
}
|
|
652
645
|
.zenfg-inspector-legend-swatch[data-shape='ellipse'] { border-radius: 50%; }
|
|
653
|
-
.zenfg-inspector-legend-swatch[data-shape='group'] {
|
|
646
|
+
.zenfg-inspector-legend-swatch[data-shape='group'] { background: transparent; }
|
|
647
|
+
.zenfg-inspector-legend-swatch[data-shape='cut-rectangle'],
|
|
648
|
+
.zenfg-inspector-legend-swatch[data-shape='tag'] { width: 14px; height: 10px; border: 0; background: transparent; }
|
|
649
|
+
.zenfg-inspector-legend-swatch > svg { display: block; width: 100%; height: 100%; overflow: visible; }
|
|
650
|
+
.zenfg-inspector-legend-swatch > svg polygon {
|
|
651
|
+
fill: color-mix(in srgb, var(--zenfg-inspector-legend-color) 20%, var(--fgd-canvas));
|
|
652
|
+
stroke: var(--zenfg-inspector-legend-color);
|
|
653
|
+
stroke-width: 1.4;
|
|
654
|
+
}
|
|
654
655
|
.zenfg-inspector-legend-swatch[data-shape='line'] {
|
|
655
656
|
width: 16px;
|
|
656
657
|
height: 0;
|
|
@@ -743,6 +744,7 @@ button[aria-busy='true'] > .zenfg-inspector-control-icon {
|
|
|
743
744
|
.zenfg-inspector-graph-tooltip {
|
|
744
745
|
position: absolute;
|
|
745
746
|
z-index: 3;
|
|
747
|
+
width: max-content;
|
|
746
748
|
max-width: min(380px, calc(100% - 16px));
|
|
747
749
|
padding: 8px 10px;
|
|
748
750
|
border: 1px solid var(--fgd-border-strong);
|
|
@@ -834,6 +836,8 @@ button[aria-busy='true'] > .zenfg-inspector-control-icon {
|
|
|
834
836
|
overflow-wrap: anywhere;
|
|
835
837
|
white-space: normal;
|
|
836
838
|
}
|
|
839
|
+
.zenfg-inspector-relation-entry { display: grid; justify-items: start; gap: 2px; }
|
|
840
|
+
.zenfg-inspector-relation-entry > span { font: 11px/1.5 var(--fgd-font-mono); overflow-wrap: anywhere; }
|
|
837
841
|
.zenfg-inspector-inspector .zenfg-inspector-raw-detail {
|
|
838
842
|
min-width: 100%;
|
|
839
843
|
margin: 0;
|