@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.
Files changed (62) hide show
  1. package/README.md +63 -1
  2. package/dist/FrameGraphInspector.d.ts +2 -5
  3. package/dist/FrameGraphInspector.d.ts.map +1 -1
  4. package/dist/FrameGraphInspector.js +16 -38
  5. package/dist/FrameGraphInspector.js.map +1 -1
  6. package/dist/debugCaptureModel.d.ts +9 -4
  7. package/dist/debugCaptureModel.d.ts.map +1 -1
  8. package/dist/debugCaptureModel.js +36 -14
  9. package/dist/debugCaptureModel.js.map +1 -1
  10. package/dist/panelCytoscapeGraphRenderer.d.ts +3 -1
  11. package/dist/panelCytoscapeGraphRenderer.d.ts.map +1 -1
  12. package/dist/panelCytoscapeGraphRenderer.js +39 -19
  13. package/dist/panelCytoscapeGraphRenderer.js.map +1 -1
  14. package/dist/panelDiagnosticsView.js +2 -2
  15. package/dist/panelDiagnosticsView.js.map +1 -1
  16. package/dist/panelGraphLayout.d.ts.map +1 -1
  17. package/dist/panelGraphLayout.js +15 -1
  18. package/dist/panelGraphLayout.js.map +1 -1
  19. package/dist/panelGraphScene.d.ts +14 -26
  20. package/dist/panelGraphScene.d.ts.map +1 -1
  21. package/dist/panelGraphScene.js +141 -195
  22. package/dist/panelGraphScene.js.map +1 -1
  23. package/dist/panelGraphView.d.ts.map +1 -1
  24. package/dist/panelGraphView.js +31 -9
  25. package/dist/panelGraphView.js.map +1 -1
  26. package/dist/panelGraphVisuals.d.ts +7 -3
  27. package/dist/panelGraphVisuals.d.ts.map +1 -1
  28. package/dist/panelGraphVisuals.js +45 -80
  29. package/dist/panelGraphVisuals.js.map +1 -1
  30. package/dist/panelInspectorView.d.ts +5 -0
  31. package/dist/panelInspectorView.d.ts.map +1 -1
  32. package/dist/panelInspectorView.js +99 -13
  33. package/dist/panelInspectorView.js.map +1 -1
  34. package/dist/panelSelection.js +2 -2
  35. package/dist/panelSelection.js.map +1 -1
  36. package/dist/panelTypes.d.ts +8 -3
  37. package/dist/panelTypes.d.ts.map +1 -1
  38. package/dist/panelTypes.js.map +1 -1
  39. package/dist/panelVisualTheme.d.ts +21 -13
  40. package/dist/panelVisualTheme.d.ts.map +1 -1
  41. package/dist/panelVisualTheme.js +15 -7
  42. package/dist/panelVisualTheme.js.map +1 -1
  43. package/dist/panelWorkbenchHelpers.js +1 -1
  44. package/dist/panelWorkbenchHelpers.js.map +1 -1
  45. package/dist/styles.d.ts.map +1 -1
  46. package/dist/styles.js +16 -12
  47. package/dist/styles.js.map +1 -1
  48. package/package.json +2 -2
  49. package/src/FrameGraphInspector.ts +17 -39
  50. package/src/debugCaptureModel.ts +44 -19
  51. package/src/panelCytoscapeGraphRenderer.ts +38 -18
  52. package/src/panelDiagnosticsView.ts +3 -3
  53. package/src/panelGraphLayout.ts +15 -1
  54. package/src/panelGraphScene.ts +153 -279
  55. package/src/panelGraphView.ts +31 -9
  56. package/src/panelGraphVisuals.ts +46 -82
  57. package/src/panelInspectorView.ts +104 -16
  58. package/src/panelSelection.ts +2 -2
  59. package/src/panelTypes.ts +9 -3
  60. package/src/panelVisualTheme.ts +18 -7
  61. package/src/panelWorkbenchHelpers.ts +2 -2
  62. package/src/styles.ts +16 -12
@@ -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: { stroke: '#34d399', fill: '#12342b' },
26
- compute: { stroke: '#60a5fa', fill: '#162c46' },
27
- copy: { stroke: '#fbbf24', fill: '#3a2d12' },
28
- clear: { stroke: '#94a3b8', fill: '#25303a' },
29
- command: { stroke: '#c084fc', fill: '#322044' },
30
- external: { stroke: '#fb923c', fill: '#402318' },
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: '#64748b' },
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.index}`;
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: auto minmax(0, 1fr) auto;
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'] { border-style: double; background: transparent; }
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;