@principal-ai/subsystems-react 0.56.10 → 0.56.12
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/subsystem/DiagnosticToggle.d.ts.map +1 -1
- package/dist/subsystem/DiagnosticToggle.js +2 -1
- package/dist/subsystem/DiagnosticToggle.js.map +1 -1
- package/dist/subsystem/SubsystemComponentGraph.d.ts +2 -1
- package/dist/subsystem/SubsystemComponentGraph.d.ts.map +1 -1
- package/dist/subsystem/SubsystemComponentGraph.js +64 -27
- package/dist/subsystem/SubsystemComponentGraph.js.map +1 -1
- package/dist/subsystem/SubsystemFileTree.d.ts.map +1 -1
- package/dist/subsystem/SubsystemFileTree.js +2 -1
- package/dist/subsystem/SubsystemFileTree.js.map +1 -1
- package/dist/subsystem/TrailStepsNav.d.ts +3 -1
- package/dist/subsystem/TrailStepsNav.d.ts.map +1 -1
- package/dist/subsystem/TrailStepsNav.js +13 -10
- package/dist/subsystem/TrailStepsNav.js.map +1 -1
- package/dist/subsystem/TrailsPanel.d.ts +5 -3
- package/dist/subsystem/TrailsPanel.d.ts.map +1 -1
- package/dist/subsystem/TrailsPanel.js +44 -68
- package/dist/subsystem/TrailsPanel.js.map +1 -1
- package/dist/subsystem/trailSidebarScope.d.ts +11 -0
- package/dist/subsystem/trailSidebarScope.d.ts.map +1 -0
- package/dist/subsystem/trailSidebarScope.js +47 -0
- package/dist/subsystem/trailSidebarScope.js.map +1 -0
- package/package.json +1 -1
- package/src/stories/Canvases/Subsystem/TrailSidebarViews.stories.tsx +68 -0
- package/src/subsystem/DiagnosticToggle.tsx +2 -1
- package/src/subsystem/SubsystemComponentGraph.sidebar.test.tsx +106 -5
- package/src/subsystem/SubsystemComponentGraph.tsx +87 -41
- package/src/subsystem/SubsystemFileTree.tsx +2 -1
- package/src/subsystem/TrailStepsNav.test.tsx +60 -0
- package/src/subsystem/TrailStepsNav.tsx +16 -10
- package/src/subsystem/TrailsPanel.test.tsx +99 -35
- package/src/subsystem/TrailsPanel.tsx +43 -86
- package/src/subsystem/trailSidebarScope.test.ts +89 -0
- package/src/subsystem/trailSidebarScope.ts +62 -0
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"DiagnosticToggle.d.ts","sourceRoot":"","sources":["../../src/subsystem/DiagnosticToggle.tsx"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;GAiBG;;AAOH,MAAM,MAAM,yBAAyB,GAAG,IAAI,GAAG,QAAQ,GAAG,MAAM,GAAG,SAAS,CAAC;AAE7E,MAAM,WAAW,mBAAmB;IAClC,MAAM,EAAE,yBAAyB,CAAC;IAClC,yFAAyF;IACzF,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB;;;;;OAKG;IACH,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,oDAAoD;IACpD,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,gDAAgD;IAChD,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,kEAAkE;IAClE,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,sEAAsE;IACtE,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,2CAA2C;IAC3C,QAAQ,CAAC,EAAE,MAAM,IAAI,CAAC;CACvB;AAED,uDAAuD;AACvD,wBAAgB,qBAAqB,CACnC,MAAM,EAAE,yBAAyB,EACjC,MAAM,EAAE;IAAE,OAAO,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,MAAM,CAAA;CAAE,EAC3D,KAAK,EAAE,MAAM,GACZ,MAAM,CAKR;AAED,sDAAsD;AACtD,wBAAgB,eAAe,CAAC,UAAU,EAAE,mBAAmB,GAAG,MAAM,CAyBvE;AAED,MAAM,WAAW,8BAA+B,SAAQ,mBAAmB;IACzE,mCAAmC;IACnC,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,qDAAqD;IACrD,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,6CAA6C;IAC7C,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,6DAA6D;IAC7D,SAAS,CAAC,EAAE,OAAO,CAAC;CACrB;AAED,wBAAgB,yBAAyB,CAAC,EACxC,MAAM,EACN,UAAU,EACV,YAAgB,EAChB,KAAa,EACb,IAAY,EACZ,MAAc,EACd,IAAS,EACT,SAAS,EACT,QAAgB,EAChB,SAAiB,EACjB,QAAQ,EACR,GAAG,IAAI,EACR,EAAE,8BAA8B,+
|
|
1
|
+
{"version":3,"file":"DiagnosticToggle.d.ts","sourceRoot":"","sources":["../../src/subsystem/DiagnosticToggle.tsx"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;GAiBG;;AAOH,MAAM,MAAM,yBAAyB,GAAG,IAAI,GAAG,QAAQ,GAAG,MAAM,GAAG,SAAS,CAAC;AAE7E,MAAM,WAAW,mBAAmB;IAClC,MAAM,EAAE,yBAAyB,CAAC;IAClC,yFAAyF;IACzF,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB;;;;;OAKG;IACH,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,oDAAoD;IACpD,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,gDAAgD;IAChD,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,kEAAkE;IAClE,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,sEAAsE;IACtE,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,2CAA2C;IAC3C,QAAQ,CAAC,EAAE,MAAM,IAAI,CAAC;CACvB;AAED,uDAAuD;AACvD,wBAAgB,qBAAqB,CACnC,MAAM,EAAE,yBAAyB,EACjC,MAAM,EAAE;IAAE,OAAO,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,MAAM,CAAA;CAAE,EAC3D,KAAK,EAAE,MAAM,GACZ,MAAM,CAKR;AAED,sDAAsD;AACtD,wBAAgB,eAAe,CAAC,UAAU,EAAE,mBAAmB,GAAG,MAAM,CAyBvE;AAED,MAAM,WAAW,8BAA+B,SAAQ,mBAAmB;IACzE,mCAAmC;IACnC,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,qDAAqD;IACrD,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,6CAA6C;IAC7C,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,6DAA6D;IAC7D,SAAS,CAAC,EAAE,OAAO,CAAC;CACrB;AAED,wBAAgB,yBAAyB,CAAC,EACxC,MAAM,EACN,UAAU,EACV,YAAgB,EAChB,KAAa,EACb,IAAY,EACZ,MAAc,EACd,IAAS,EACT,SAAS,EACT,QAAgB,EAChB,SAAiB,EACjB,QAAQ,EACR,GAAG,IAAI,EACR,EAAE,8BAA8B,+BA8HhC"}
|
|
@@ -92,7 +92,7 @@ export function SubsystemDiagnosticToggle({ status, issueCount, fixableCount = 0
|
|
|
92
92
|
justifyContent: bordered || segmented ? 'center' : undefined,
|
|
93
93
|
gap: 4,
|
|
94
94
|
height: bordered || segmented ? 28 : 22,
|
|
95
|
-
padding:
|
|
95
|
+
padding: segmented ? '4px 16px' : bordered ? '4px 7px' : showCount ? '0 7px 0 6px' : '0 5px',
|
|
96
96
|
border: bordered ? `1px solid ${theme.colors.border}` : 'none',
|
|
97
97
|
borderRadius: 4,
|
|
98
98
|
background,
|
|
@@ -131,6 +131,7 @@ export function SubsystemDiagnosticToggle({ status, issueCount, fixableCount = 0
|
|
|
131
131
|
fontFamily: theme.fonts.monospace,
|
|
132
132
|
fontSize: theme.fontSizes[0],
|
|
133
133
|
fontWeight: 600,
|
|
134
|
+
marginLeft: segmented && labelText ? 4 : undefined,
|
|
134
135
|
lineHeight: 1,
|
|
135
136
|
}, children: issueCount }))] })] }));
|
|
136
137
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"DiagnosticToggle.js","sourceRoot":"","sources":["../../src/subsystem/DiagnosticToggle.tsx"],"names":[],"mappings":";AAAA;;;;;;;;;;;;;;;;;GAiBG;AAEH,OAAO,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAC;AACjC,OAAO,EAAE,QAAQ,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC;AACjD,OAAO,EAAE,QAAQ,EAAE,MAAM,+BAA+B,CAAC;AACzD,OAAO,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AA2BvC,uDAAuD;AACvD,MAAM,UAAU,qBAAqB,CACnC,MAAiC,EACjC,MAA2D,EAC3D,KAAa;IAEb,IAAI,MAAM,KAAK,IAAI;QAAE,OAAO,MAAM,CAAC,OAAO,CAAC;IAC3C,IAAI,MAAM,KAAK,QAAQ;QAAE,OAAO,MAAM,CAAC,KAAK,CAAC;IAC7C,IAAI,MAAM,KAAK,MAAM;QAAE,OAAO,MAAM,CAAC,OAAO,CAAC;IAC7C,OAAO,KAAK,CAAC;AACf,CAAC;AAED,sDAAsD;AACtD,MAAM,UAAU,eAAe,CAAC,UAA+B;IAC7D,IAAI,UAAU,CAAC,KAAK;QAAE,OAAO,UAAU,CAAC,KAAK,CAAC;IAC9C,MAAM,EAAE,MAAM,EAAE,UAAU,EAAE,YAAY,EAAE,KAAK,EAAE,IAAI,EAAE,GAAG,UAAU,CAAC;IACrE,IAAI,IAAY,CAAC;IACjB,IAAI,MAAM,KAAK,IAAI;QAAE,IAAI,GAAG,wBAAwB,CAAC;SAChD,IAAI,MAAM,KAAK,QAAQ;QAC1B,IAAI;YACF,UAAU,IAAI,IAAI,IAAI,UAAU,GAAG,CAAC;gBAClC,CAAC,CAAC,gBAAgB,UAAU,SAAS,UAAU,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,EAAE;gBAClE,CAAC,CAAC,2BAA2B,CAAC;SAC/B,IAAI,MAAM,KAAK,MAAM;QACxB,IAAI;YACF,UAAU,IAAI,IAAI,IAAI,UAAU,GAAG,CAAC;gBAClC,CAAC,CAAC,gBAAgB,UAAU,cAAc;gBAC1C,CAAC,CAAC,iCAAiC,CAAC;;QACrC,IAAI,GAAG,8BAA8B,CAAC;IAC3C,wEAAwE;IACxE,0CAA0C;IAC1C,MAAM,OAAO,GACX,YAAY,IAAI,IAAI,IAAI,YAAY,GAAG,CAAC;QACtC,CAAC,CAAC,GAAG,YAAY,yBAAyB;QAC1C,CAAC,CAAC,EAAE,CAAC;IACT,IAAI,IAAI;QAAE,OAAO,GAAG,IAAI,cAAc,CAAC;IACvC,IAAI,KAAK;QAAE,OAAO,GAAG,IAAI,6BAA6B,OAAO,CAAC,CAAC,CAAC,KAAK,OAAO,EAAE,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC;IACtF,OAAO,GAAG,IAAI,qBAAqB,OAAO,CAAC,CAAC,CAAC,KAAK,OAAO,EAAE,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC;AACrE,CAAC;AAaD,MAAM,UAAU,yBAAyB,CAAC,EACxC,MAAM,EACN,UAAU,EACV,YAAY,GAAG,CAAC,EAChB,KAAK,GAAG,KAAK,EACb,IAAI,GAAG,KAAK,EACZ,MAAM,GAAG,KAAK,EACd,IAAI,GAAG,EAAE,EACT,SAAS,EACT,QAAQ,GAAG,KAAK,EAChB,SAAS,GAAG,KAAK,EACjB,QAAQ,EACR,GAAG,IAAI,EACwB;IAC/B,MAAM,EAAE,KAAK,EAAE,GAAG,QAAQ,EAAE,CAAC;IAC7B,MAAM,CAAC,KAAK,EAAE,QAAQ,CAAC,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC;IAC1C,MAAM,KAAK,GAAG,KAAK,CAAC,MAAM,CAAC,SAAS,IAAI,KAAK,CAAC,MAAM,CAAC,aAAa,CAAC;IACnE,MAAM,KAAK,GAAG,qBAAqB,CAAC,MAAM,EAAE,KAAK,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC;IACjE,MAAM,KAAK,GAAG,eAAe,CAAC;QAC5B,MAAM;QACN,UAAU;QACV,YAAY;QACZ,KAAK;QACL,IAAI;QACJ,MAAM;QACN,GAAG,IAAI;KACR,CAAC,CAAC;IACH,MAAM,SAAS,GAAG,UAAU,IAAI,IAAI,IAAI,UAAU,GAAG,CAAC,CAAC;IACvD,6EAA6E;IAC7E,kEAAkE;IAClE,MAAM,WAAW,GAAG,YAAY,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC;IAC9C,MAAM,YAAY,GAAG,KAAK,CAAC,MAAM,CAAC,OAAO,IAAI,SAAS,CAAC;IACvD,MAAM,UAAU,GAAG,MAAM;QACvB,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,KAAK,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,YAAY,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC;QAC5E,CAAC,CAAC,KAAK;YACL,CAAC,CAAC,KAAK,CAAC,MAAM,CAAC,MAAM;YACrB,CAAC,CAAC,aAAa,CAAC;IAEpB,OAAO,CACL,8BACG,IAAI,IAAI,CACP,0BAAQ,oEAAoE,GAAS,CACtF,EACD,kBACE,IAAI,EAAC,QAAQ,EACb,OAAO,EAAE,QAAQ,EACjB,YAAY,EAAE,GAAG,EAAE,CAAC,QAAQ,CAAC,IAAI,CAAC,EAClC,YAAY,EAAE,GAAG,EAAE,CAAC,QAAQ,CAAC,KAAK,CAAC,EACnC,KAAK,EAAE,KAAK,gBACA,SAAS,CAAC,CAAC,CAAC,GAAG,SAAS,KAAK,KAAK,EAAE,CAAC,CAAC,CAAC,KAAK,kBAC1C,MAAM,EACpB,KAAK,EAAE;oBACL,OAAO,EAAE,aAAa;oBACtB,UAAU,EAAE,QAAQ;oBACpB,cAAc,EAAE,QAAQ,IAAI,SAAS,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,SAAS;oBAC5D,GAAG,EAAE,CAAC;oBACN,MAAM,EAAE,QAAQ,IAAI,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE;oBACvC,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"DiagnosticToggle.js","sourceRoot":"","sources":["../../src/subsystem/DiagnosticToggle.tsx"],"names":[],"mappings":"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"}
|
|
@@ -267,7 +267,8 @@ export interface SubsystemComponentGraphProps {
|
|
|
267
267
|
/**
|
|
268
268
|
* Verification issues for this graph (audit findings). When diagnostics are
|
|
269
269
|
* active the sidebar's bottom panel becomes the issue list instead of the
|
|
270
|
-
* file tree / trails.
|
|
270
|
+
* file tree / trails. Graph issue badges and issue-driven dimming are only
|
|
271
|
+
* shown in that mode.
|
|
271
272
|
*/
|
|
272
273
|
issues?: SubsystemIssue[];
|
|
273
274
|
/**
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SubsystemComponentGraph.d.ts","sourceRoot":"","sources":["../../src/subsystem/SubsystemComponentGraph.tsx"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AAGH,OAAO,KAAK,EAAgD,SAAS,EAAE,MAAM,OAAO,CAAC;AAkBrF,OAAO,EAYL,KAAK,sBAAsB,EAC3B,KAAK,kBAAkB,EAEvB,KAAK,iBAAiB,EACtB,KAAK,wBAAwB,EAC7B,KAAK,yBAAyB,EAG9B,KAAK,cAAc,EACpB,MAAM,SAAS,CAAC;AAEjB,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,cAAc,CAAC;AAC7D,OAAO,EAEL,KAAK,yBAAyB,EAC/B,MAAM,eAAe,CAAC;AACvB,OAAO,EAEL,KAAK,sBAAsB,EAC5B,MAAM,iDAAiD,CAAC;AACzD,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,+BAA+B,CAAC;AAEtE,OAAO,EAA6B,KAAK,mBAAmB,EAAE,MAAM,oBAAoB,CAAC;AACzF,OAAO,EAOL,KAAK,uBAAuB,EAC5B,KAAK,cAAc,EACnB,KAAK,sBAAsB,EAC5B,MAAM,aAAa,CAAC;AAMrB,OAAO,KAAK,EAAE,0BAA0B,EAAE,MAAM,wBAAwB,CAAC;AACzE,OAAO,KAAK,EAAE,oBAAoB,EAAE,gBAAgB,EAAE,MAAM,cAAc,CAAC;AAK3E,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,gBAAgB,CAAC;AAStD,yEAAyE;AACzE,MAAM,WAAW,kBAAkB;IACjC,KAAK,EAAE,cAAc,CAAC;IACtB,0EAA0E;IAC1E,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;IACzB,qFAAqF;IACrF,UAAU,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,wBAAwB,KAAK,IAAI,CAAC;IACpE;;;;;OAKG;IACH,aAAa,CAAC,EAAE,CAAC,KAAK,EAAE,gBAAgB,KAAK,MAAM,GAAG,IAAI,CAAC;IAC3D,0EAA0E;IAC1E,aAAa,CAAC,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,gBAAgB,KAAK,IAAI,CAAC;IAClE;;;;OAIG;IACH,mBAAmB,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;CAC/C;
|
|
1
|
+
{"version":3,"file":"SubsystemComponentGraph.d.ts","sourceRoot":"","sources":["../../src/subsystem/SubsystemComponentGraph.tsx"],"names":[],"mappings":"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"}
|
|
@@ -29,7 +29,7 @@ import { SubsystemDiagnosticToggle } from './DiagnosticToggle';
|
|
|
29
29
|
import { SubsystemIssueList, issueCategory, issueKindOrder, issueRung, ISSUE_KIND_ICON, ISSUE_RUNG_ORDER, } from './IssueList';
|
|
30
30
|
import { GraphLayoutCover } from './GraphLayoutCover';
|
|
31
31
|
import { SubsystemFileTree } from './SubsystemFileTree';
|
|
32
|
-
import {
|
|
32
|
+
import { buildTrailSidebarScope } from './trailSidebarScope';
|
|
33
33
|
import { GRAPH_CANVAS_CLASS, GRAPH_NAV_PROPS, GraphChrome, GraphLayerStyle, LAYOUT_FLIP_CLASS, LAYOUT_FLIP_EDGE_MS, LAYOUT_FLIP_NODE_MS } from './graphChrome';
|
|
34
34
|
import { ComponentDeclaration } from './ComponentDeclaration';
|
|
35
35
|
import { FileDrawer, FILE_DRAWER_HEIGHT_MS } from './FileDrawer';
|
|
@@ -127,7 +127,7 @@ const TrailDrawerContent = memo(function TrailDrawerContent({ render, trail, ste
|
|
|
127
127
|
onVisibleStepChange,
|
|
128
128
|
}) }));
|
|
129
129
|
});
|
|
130
|
-
function Inner({ components, trails, graphifyRelations, orderByLine, layoutDirection: layoutDirectionProp, defaultLayoutDirection = 'horizontal', onLayoutDirectionChange, hideLayoutToggle = false, refocusOnLayoutFlip = true, initialTrailId, onTrailSelect, onTrailStepHover, onReorderTrails, stepEmphasis, onRemoveStepEmphasis, onSelect, onEdgeSelect, measured: _measured, maxNodeWidth, showEdgeLabels, showSingletonFrames = true, moduleNesting, edgeView, hideSidebar, trailStepMode = 'focus', autoPlayTrails = false, trailAutoPlayIntervalMs = TRAIL_PLAY_PAUSE_MS, zoomOnTrailFocus = true, trailFocusDurationMs = 300, graphTitle, showTrailTitle = false, description, canvasOverlay, sidebarExtra, sidebarAfterDescription, issues, showIssues, filesActive, focusIssueCategory, laneStatus, onSelectIssue, onApplyIssueFix, onHoverIssue, renderFileViewer, renderTrailViewer, onFileSelect, componentVerification, onInspectSymbol, boundaryColors, codeProcessKeys, hideDrawer = false, persistKey, liveEvents, agentsPanel }) {
|
|
130
|
+
function Inner({ components, trails, graphifyRelations, orderByLine, layoutDirection: layoutDirectionProp, defaultLayoutDirection = 'horizontal', onLayoutDirectionChange, hideLayoutToggle = false, refocusOnLayoutFlip = true, initialTrailId, onTrailSelect, onTrailStepHover, onReorderTrails, stepEmphasis, onRemoveStepEmphasis, onSelect, onEdgeSelect, measured: _measured, maxNodeWidth, showEdgeLabels, showSingletonFrames = true, moduleNesting, edgeView, hideSidebar, trailStepMode = 'focus', autoPlayTrails = false, trailAutoPlayIntervalMs = TRAIL_PLAY_PAUSE_MS, zoomOnTrailFocus = true, trailFocusDurationMs = 300, graphTitle, showTrailTitle = false, description, canvasOverlay, sidebarExtra, sidebarAfterDescription, issues, showIssues, filesActive, sidebarScope, onSidebarTrailChange, focusIssueCategory, laneStatus, onSelectIssue, onApplyIssueFix, onHoverIssue, renderFileViewer, renderTrailViewer, onFileSelect, componentVerification, onInspectSymbol, boundaryColors, codeProcessKeys, hideDrawer = false, persistKey, liveEvents, agentsPanel }) {
|
|
131
131
|
const { theme } = useTheme();
|
|
132
132
|
const { fitView, fitBounds } = useReactFlow();
|
|
133
133
|
const viewport = useViewport();
|
|
@@ -725,7 +725,7 @@ function Inner({ components, trails, graphifyRelations, orderByLine, layoutDirec
|
|
|
725
725
|
// node says "diagnostics here" for every finding the sidebar lists.
|
|
726
726
|
const issueBadgeByAlias = useMemo(() => {
|
|
727
727
|
const map = new Map();
|
|
728
|
-
if (!issues?.length)
|
|
728
|
+
if (showIssues !== true || !issues?.length)
|
|
729
729
|
return map;
|
|
730
730
|
for (const issue of issues) {
|
|
731
731
|
const rung = issueRung(issue.kind);
|
|
@@ -760,7 +760,7 @@ function Inner({ components, trails, graphifyRelations, orderByLine, layoutDirec
|
|
|
760
760
|
map.set(alias, { ...badge, kind: kinded.kind });
|
|
761
761
|
}
|
|
762
762
|
return map;
|
|
763
|
-
}, [issues, issueComponent]);
|
|
763
|
+
}, [showIssues, issues, issueComponent]);
|
|
764
764
|
// Per-frame diagnostics badge: the same fold, but for findings about a
|
|
765
765
|
// BOUNDARY rather than a construct. Keyed by the region's React Flow node
|
|
766
766
|
// id — a `module` target names a module frame, a `process` target a process
|
|
@@ -770,7 +770,7 @@ function Inner({ components, trails, graphifyRelations, orderByLine, layoutDirec
|
|
|
770
770
|
// borrowing its layer's icon would imply the frame is at fault for it.
|
|
771
771
|
const regionIssueByNodeId = useMemo(() => {
|
|
772
772
|
const map = new Map();
|
|
773
|
-
if (!issues?.length)
|
|
773
|
+
if (showIssues !== true || !issues?.length)
|
|
774
774
|
return map;
|
|
775
775
|
for (const issue of issues) {
|
|
776
776
|
const target = issue.target;
|
|
@@ -791,7 +791,7 @@ function Inner({ components, trails, graphifyRelations, orderByLine, layoutDirec
|
|
|
791
791
|
});
|
|
792
792
|
}
|
|
793
793
|
return map;
|
|
794
|
-
}, [issues]);
|
|
794
|
+
}, [showIssues, issues]);
|
|
795
795
|
// Per-edge step verification badge: maps edge IDs to step verification status.
|
|
796
796
|
// Keyed by the React Flow edge id (from → mechanism → to). An edge can have
|
|
797
797
|
// multiple steps with issues; we show the worst status.
|
|
@@ -804,7 +804,7 @@ function Inner({ components, trails, graphifyRelations, orderByLine, layoutDirec
|
|
|
804
804
|
step_span_stale: 1,
|
|
805
805
|
};
|
|
806
806
|
const map = new Map();
|
|
807
|
-
if (!issues?.length || !trails?.length) {
|
|
807
|
+
if (showIssues !== true || !issues?.length || !trails?.length) {
|
|
808
808
|
return map;
|
|
809
809
|
}
|
|
810
810
|
for (const issue of issues) {
|
|
@@ -831,7 +831,7 @@ function Inner({ components, trails, graphifyRelations, orderByLine, layoutDirec
|
|
|
831
831
|
});
|
|
832
832
|
}
|
|
833
833
|
return map;
|
|
834
|
-
}, [issues, trails, issueStep]);
|
|
834
|
+
}, [showIssues, issues, trails, issueStep]);
|
|
835
835
|
// Expanded verification layers in the diagnostics list. When any layer with
|
|
836
836
|
// findings is expanded, the canvas dims everything that layer does not
|
|
837
837
|
// implicate (see `issueFocus`). The list publishes this through
|
|
@@ -864,7 +864,7 @@ function Inner({ components, trails, graphifyRelations, orderByLine, layoutDirec
|
|
|
864
864
|
// Returns null when nothing is expanded, no expanded layer has findings, or
|
|
865
865
|
// the findings implicate nothing — so no dimming is applied.
|
|
866
866
|
const issueFocus = useMemo(() => {
|
|
867
|
-
if (!issues?.length || expandedIssueCategories.length === 0)
|
|
867
|
+
if (showIssues !== true || !issues?.length || expandedIssueCategories.length === 0)
|
|
868
868
|
return null;
|
|
869
869
|
const active = new Set(expandedIssueCategories);
|
|
870
870
|
const activeIssues = issues.filter((i) => active.has(issueCategory(i)));
|
|
@@ -927,7 +927,7 @@ function Inner({ components, trails, graphifyRelations, orderByLine, layoutDirec
|
|
|
927
927
|
edgeIds.add(e.id);
|
|
928
928
|
}
|
|
929
929
|
return { nodeIds, edgeIds };
|
|
930
|
-
}, [issues, expandedIssueCategories, components, trails, resolveAlias]);
|
|
930
|
+
}, [showIssues, issues, expandedIssueCategories, components, trails, resolveAlias]);
|
|
931
931
|
const issueFocusNodeIds = issueFocus?.nodeIds ?? null;
|
|
932
932
|
const issueFocusEdgeIds = issueFocus?.edgeIds ?? null;
|
|
933
933
|
// When an edge is selected, dim every other edge + its label to focus it.
|
|
@@ -1258,7 +1258,12 @@ function Inner({ components, trails, graphifyRelations, orderByLine, layoutDirec
|
|
|
1258
1258
|
issueModuleFocusRef.current = null;
|
|
1259
1259
|
}, []);
|
|
1260
1260
|
const hasTrails = useMemo(() => (trails?.length ?? 0) > 0, [trails]);
|
|
1261
|
-
const treePaths
|
|
1261
|
+
const { treePaths, trail: sidebarTrail } = sidebarScope;
|
|
1262
|
+
const treeFilePaths = useMemo(() => treePaths.entries.map((entry) => entry.displayPath), [treePaths]);
|
|
1263
|
+
useEffect(() => {
|
|
1264
|
+
if (persistKey)
|
|
1265
|
+
writeViewState(persistKey, { sidebarTrailId: sidebarTrail?.id ?? null });
|
|
1266
|
+
}, [persistKey, sidebarTrail?.id]);
|
|
1262
1267
|
// Alias → component, so the Trails panel can show human hop names instead
|
|
1263
1268
|
// of model-local aliases (and the site/`via` distinction can read).
|
|
1264
1269
|
const componentByAlias = useMemo(() => new Map(components.map((c) => [c.alias, c])), [components]);
|
|
@@ -1508,12 +1513,13 @@ function Inner({ components, trails, graphifyRelations, orderByLine, layoutDirec
|
|
|
1508
1513
|
}
|
|
1509
1514
|
setExpandedTrails(new Set([tl.id]));
|
|
1510
1515
|
setLayoutTrailId(tl.id);
|
|
1516
|
+
onSidebarTrailChange(tl.id);
|
|
1511
1517
|
setFocusedStepIndex(null);
|
|
1512
1518
|
setFocusedTrailId(tl.id);
|
|
1513
1519
|
onTrailSelect?.({ trailId: tl.id });
|
|
1514
1520
|
fitFocusBounds(new Set(tl.steps.map((s) => trailStepGraphEdgeId(s))));
|
|
1515
1521
|
setDrawerTarget((prev) => (prev?.kind === 'trail' ? null : prev));
|
|
1516
|
-
}, [fitFocusBounds, trailStepMode, onTrailSelect]);
|
|
1522
|
+
}, [fitFocusBounds, trailStepMode, onTrailSelect, onSidebarTrailChange]);
|
|
1517
1523
|
const clearTrailFocus = useCallback(() => {
|
|
1518
1524
|
if (pendingFocusFitRef.current != null) {
|
|
1519
1525
|
window.clearTimeout(pendingFocusFitRef.current);
|
|
@@ -1521,25 +1527,26 @@ function Inner({ components, trails, graphifyRelations, orderByLine, layoutDirec
|
|
|
1521
1527
|
}
|
|
1522
1528
|
setExpandedTrails(new Set());
|
|
1523
1529
|
setLayoutTrailId(null);
|
|
1530
|
+
onSidebarTrailChange(null);
|
|
1524
1531
|
setFocusedTrailId(null);
|
|
1525
1532
|
setFocusedStepIndex(null);
|
|
1526
1533
|
setHoveredTrailStep(null);
|
|
1527
1534
|
setDrawerTarget((prev) => (prev?.kind === 'trail' ? null : prev));
|
|
1528
1535
|
onTrailSelect?.(null);
|
|
1529
|
-
}, [onTrailSelect]);
|
|
1530
|
-
//
|
|
1536
|
+
}, [onTrailSelect, onSidebarTrailChange]);
|
|
1537
|
+
// Switching panels keeps the selected trail, but drops transient hover previews.
|
|
1531
1538
|
const filesWereActive = useRef(false);
|
|
1532
1539
|
useEffect(() => {
|
|
1533
1540
|
const enteringFiles = filesActive && !filesWereActive.current;
|
|
1534
1541
|
filesWereActive.current = filesActive;
|
|
1535
1542
|
if (!enteringFiles)
|
|
1536
1543
|
return;
|
|
1537
|
-
|
|
1538
|
-
|
|
1544
|
+
if (!sidebarTrail)
|
|
1545
|
+
clearTrailFocus();
|
|
1539
1546
|
setSelectedEdgeId(null);
|
|
1540
|
-
|
|
1547
|
+
setHoveredTrailStep(null);
|
|
1541
1548
|
onTrailStepHover?.(null);
|
|
1542
|
-
}, [filesActive, clearTrailFocus, onTrailStepHover]);
|
|
1549
|
+
}, [filesActive, clearTrailFocus, onTrailStepHover, sidebarTrail]);
|
|
1543
1550
|
// Host deep-link: opening the graph from a trail row selects that
|
|
1544
1551
|
// flow — expand its steps and focus its edges.
|
|
1545
1552
|
// Guarded by a ref so a later in-tab selection isn't yanked
|
|
@@ -1579,6 +1586,7 @@ function Inner({ components, trails, graphifyRelations, orderByLine, layoutDirec
|
|
|
1579
1586
|
return;
|
|
1580
1587
|
}
|
|
1581
1588
|
// Toggle: clicking the selected step unselects it (back to whole flow).
|
|
1589
|
+
onSidebarTrailChange(tl.id);
|
|
1582
1590
|
if (focusedTrailId === tl.id && focusedStepIndex === stepIndex) {
|
|
1583
1591
|
setFocusedStepIndex(null);
|
|
1584
1592
|
// Pointer is still over the row — keep hover preview so dimming doesn't
|
|
@@ -1635,6 +1643,7 @@ function Inner({ components, trails, graphifyRelations, orderByLine, layoutDirec
|
|
|
1635
1643
|
renderTrailViewer,
|
|
1636
1644
|
trailStepMode,
|
|
1637
1645
|
onTrailSelect,
|
|
1646
|
+
onSidebarTrailChange,
|
|
1638
1647
|
]);
|
|
1639
1648
|
useEffect(() => {
|
|
1640
1649
|
return () => {
|
|
@@ -2039,7 +2048,7 @@ function Inner({ components, trails, graphifyRelations, orderByLine, layoutDirec
|
|
|
2039
2048
|
(description || filesActive || issuesActive || sidebarExtra || sidebarAfterDescription ||
|
|
2040
2049
|
hasTrails);
|
|
2041
2050
|
const sidebarBodyVisible = hasTrails || filesActive || issuesActive;
|
|
2042
|
-
const sidebarTabs = issuesActive
|
|
2051
|
+
const sidebarTabs = issuesActive && !sidebarTrail
|
|
2043
2052
|
? agentsPanel
|
|
2044
2053
|
? [
|
|
2045
2054
|
{ id: 'issues', label: 'Issues' },
|
|
@@ -2050,11 +2059,12 @@ function Inner({ components, trails, graphifyRelations, orderByLine, layoutDirec
|
|
|
2050
2059
|
// Header block: extras, then the description.
|
|
2051
2060
|
const sidebarHeader = (_jsxs(_Fragment, { children: [sidebarExtra, description && (_jsx("div", { style: { fontSize: theme.fontSizes[0], lineHeight: 1.5 }, children: _jsx(IndustryMarkdownSlide, { content: description, slideIdPrefix: "subsystem-desc", slideIndex: 0, isVisible: true, theme: theme, disableScroll: true, disableBasePadding: true, enableKeyboardScrolling: false, autoFocusOnVisible: false }) })), sidebarAfterDescription] }));
|
|
2052
2061
|
// Lower panel: diagnostics, the file tree, or the trail flow list.
|
|
2053
|
-
const
|
|
2062
|
+
const sidebarPanel = issuesActive ? (diagnosticsTab === 'agents' && agentsPanel && !sidebarTrail ? (_jsx(SubsystemAgentsPanel, { ...agentsPanel })) : (_jsx(SubsystemIssueList, { issues: sidebarScope.issues, focusCategory: focusIssueCategory, laneStatus: sidebarTrail ? undefined : laneStatus, onSelectIssue: focusIssueTarget, onDeselectIssue: unfocusIssueTarget, onApplyFix: onApplyIssueFix, onHoverIssue: onHoverIssue, onExpandedCategoriesChange: handleExpandedCategoriesChange }))) : filesActive ? treePaths.entries.length === 0 ? (_jsx("div", { style: { padding: 16, color: theme.colors.textSecondary }, children: "No files for this trail." })) : (_jsx(SubsystemFileTree, { headerless: true, files: treeFilePaths, selectedFile: openFile ? treePaths.toDisplay.get(openFile) : null, onSelectFile: (path) => {
|
|
2054
2063
|
const file = treePaths.toFile.get(path);
|
|
2055
2064
|
if (file)
|
|
2056
2065
|
onOpenDeclarationFile(file);
|
|
2057
|
-
} })) :
|
|
2066
|
+
} })) : null;
|
|
2067
|
+
const trailNavigation = trails && trails.length > 0 ? (_jsx(TrailsPanel, { drilldown: trailStepMode !== 'dim', trails: trails, expandedTrails: expandedTrails, focusedTrailId: sidebarTrail?.id ?? focusedTrailId, focusedStepIndex: !sidebarTrail || focusedTrailId === sidebarTrail.id ? focusedStepIndex : null, detailContent: sidebarPanel, hoveredTrailStep: hoveredTrailStep, onToggleCollapsed: toggleTrailCollapsed, onFocusFlow: focusTrailEdges, onClearFocus: clearTrailFocus, onFocusStep: focusTrailStep, onHoverStep: (tl, i) => {
|
|
2058
2068
|
setHoveredTrailStep({ trailId: tl.id, stepIndex: i });
|
|
2059
2069
|
onTrailStepHover?.({ trailId: tl.id, stepIndex: i });
|
|
2060
2070
|
}, onHoverFlow: (tl) => {
|
|
@@ -2064,6 +2074,9 @@ function Inner({ components, trails, graphifyRelations, orderByLine, layoutDirec
|
|
|
2064
2074
|
setHoveredTrailStep(null);
|
|
2065
2075
|
onTrailStepHover?.(null);
|
|
2066
2076
|
}, onReorder: onReorderTrails, componentByAlias: componentByAlias, stepEmphasis: stepEmphasis, onRemoveStepEmphasis: onRemoveStepEmphasis })) : null;
|
|
2077
|
+
const sidebarBody = sidebarTrail && trailStepMode !== 'dim'
|
|
2078
|
+
? trailNavigation
|
|
2079
|
+
: sidebarPanel ?? trailNavigation;
|
|
2067
2080
|
const fileOverlayView = fileOverlay && (_jsxs("div", { style: {
|
|
2068
2081
|
position: 'absolute',
|
|
2069
2082
|
inset: 0,
|
|
@@ -2368,15 +2381,39 @@ export function SubsystemComponentGraph(props) {
|
|
|
2368
2381
|
const wrapRef = useRef(null);
|
|
2369
2382
|
const [size, setSize] = useState(null);
|
|
2370
2383
|
const [filesOpen, setFilesOpen] = useState(false);
|
|
2371
|
-
|
|
2372
|
-
const
|
|
2384
|
+
// Browsing a trail is independent of selecting one of its files or findings.
|
|
2385
|
+
const [sidebarTrailId, setSidebarTrailId] = useState(() => {
|
|
2386
|
+
const saved = readViewState(props.persistKey);
|
|
2387
|
+
return saved.sidebarTrailId !== undefined ? saved.sidebarTrailId : saved.focusedTrailId ?? null;
|
|
2388
|
+
});
|
|
2389
|
+
const sidebarScope = useMemo(() => buildTrailSidebarScope(props.components, props.trails, props.issues, sidebarTrailId), [props.components, props.trails, props.issues, sidebarTrailId]);
|
|
2390
|
+
const fileCount = sidebarScope.treePaths.entries.length;
|
|
2391
|
+
const trailViewLabel = sidebarScope.trail ? 'Trail' : 'Trails';
|
|
2392
|
+
const trailCount = props.trails?.length ?? 0;
|
|
2393
|
+
const hasFiles = fileCount > 0 || sidebarScope.trail != null;
|
|
2394
|
+
const sidebarDiagnostic = sidebarScope.trail ? {
|
|
2395
|
+
...props.diagnostic,
|
|
2396
|
+
status: props.issues == null ? props.diagnostic?.status ?? 'unknown'
|
|
2397
|
+
: sidebarScope.issues.length > 0 ? 'issues' : 'ok',
|
|
2398
|
+
issueCount: sidebarScope.issues.length,
|
|
2399
|
+
fixableCount: sidebarScope.issues.filter((issue) => issue.fix != null).length,
|
|
2400
|
+
title: undefined,
|
|
2401
|
+
} : props.diagnostic ?? { status: 'unknown', issueCount: props.issues?.length };
|
|
2402
|
+
const hasIssues = (props.issues != null
|
|
2403
|
+
? sidebarScope.issues.length
|
|
2404
|
+
: sidebarDiagnostic.issueCount ?? 0) > 0;
|
|
2405
|
+
useEffect(() => {
|
|
2406
|
+
if (sidebarTrailId != null && !sidebarScope.trail)
|
|
2407
|
+
setSidebarTrailId(null);
|
|
2408
|
+
}, [sidebarTrailId, sidebarScope.trail]);
|
|
2373
2409
|
const [diagnosticsOpen, setDiagnosticsOpen] = useState(props.showIssues ?? (props.issues?.length ?? 0) > 0);
|
|
2374
|
-
const
|
|
2410
|
+
const issuesRequested = props.showIssues ?? diagnosticsOpen;
|
|
2411
|
+
const issuesActive = hasIssues && issuesRequested;
|
|
2375
2412
|
const filesActive = filesOpen && hasFiles && !issuesActive;
|
|
2376
2413
|
const selectSidebarView = (view) => {
|
|
2377
2414
|
const nextIssuesActive = view === 'issues';
|
|
2378
2415
|
setFilesOpen(view === 'files');
|
|
2379
|
-
if (nextIssuesActive !==
|
|
2416
|
+
if (nextIssuesActive !== issuesRequested) {
|
|
2380
2417
|
if (props.showIssues === undefined)
|
|
2381
2418
|
setDiagnosticsOpen(nextIssuesActive);
|
|
2382
2419
|
props.diagnostic?.onToggle?.();
|
|
@@ -2388,7 +2425,7 @@ export function SubsystemComponentGraph(props) {
|
|
|
2388
2425
|
justifyContent: 'center',
|
|
2389
2426
|
gap: 4,
|
|
2390
2427
|
height: 28,
|
|
2391
|
-
padding: '4px
|
|
2428
|
+
padding: '4px 16px',
|
|
2392
2429
|
fontFamily: theme.fonts.monospace,
|
|
2393
2430
|
fontSize: theme.fontSizes[0],
|
|
2394
2431
|
border: 'none',
|
|
@@ -2456,6 +2493,6 @@ export function SubsystemComponentGraph(props) {
|
|
|
2456
2493
|
padding: 2,
|
|
2457
2494
|
border: `1px solid ${theme.colors.border}`,
|
|
2458
2495
|
borderRadius: 6,
|
|
2459
|
-
}, children: [_jsxs("button", { type: "button", "aria-label":
|
|
2496
|
+
}, children: [_jsxs("button", { type: "button", "aria-label": sidebarScope.trail ? 'Trail' : `Trails (${trailCount} ${trailCount === 1 ? 'trail' : 'trails'})`, "aria-pressed": !filesActive && !issuesActive, onClick: () => selectSidebarView('trails'), style: viewButtonStyle(!filesActive && !issuesActive), children: [_jsx(Route, { size: 14, "aria-hidden": true }), _jsx("span", { children: trailViewLabel }), !sidebarScope.trail && _jsx("span", { style: { fontWeight: 600, marginLeft: 4 }, children: trailCount })] }), hasFiles && (_jsxs("button", { type: "button", "aria-label": `Files (${fileCount} files)`, title: "Show files", "aria-pressed": filesActive, onClick: () => selectSidebarView('files'), style: viewButtonStyle(filesActive), children: [_jsx(Files, { size: 14, "aria-hidden": true }), _jsx("span", { children: "Files" }), _jsx("span", { style: { fontWeight: 600, marginLeft: 4 }, children: fileCount })] })), hasIssues && (_jsx(SubsystemDiagnosticToggle, { ...sidebarDiagnostic, labelText: "Issues", segmented: true, active: issuesActive, onToggle: () => selectSidebarView('issues') }))] })] })), _jsx("div", { ref: wrapRef, style: { flex: 1, minHeight: 0, display: 'flex', flexDirection: 'column' }, children: constructsOnly ? (_jsx(ConstructsCatalog, { components: props.components, onSelect: props.onSelect, title: props.title, hideSidebar: props.hideSidebar, description: props.description, descriptionOpen: props.descriptionOpen, onDescriptionOpenChange: props.onDescriptionOpenChange, diagnostic: props.diagnostic, sidebarExtra: props.sidebarExtra, sidebarAfterDescription: props.sidebarAfterDescription, renderFileViewer: props.renderFileViewer, onFileSelect: props.onFileSelect, componentVerification: props.componentVerification, onInspectSymbol: props.onInspectSymbol })) : (_jsx(ReactFlowProvider, { children: _jsx(Inner, { ...props, showIssues: issuesActive, filesActive: filesActive, measured: size, sidebarScope: sidebarScope, onSidebarTrailChange: setSidebarTrailId }) })) })] }));
|
|
2460
2497
|
}
|
|
2461
2498
|
//# sourceMappingURL=SubsystemComponentGraph.js.map
|