@principal-ai/principal-view-react 0.16.37 → 0.16.39
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/index.d.ts +2 -2
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +1 -1
- package/dist/index.js.map +1 -1
- package/dist/subsystem/ComponentDeclaration.d.ts +21 -0
- package/dist/subsystem/ComponentDeclaration.d.ts.map +1 -0
- package/dist/subsystem/ComponentDeclaration.js +136 -0
- package/dist/subsystem/ComponentDeclaration.js.map +1 -0
- package/dist/subsystem/SubsystemComponentGraph.d.ts.map +1 -1
- package/dist/subsystem/SubsystemComponentGraph.js +147 -93
- package/dist/subsystem/SubsystemComponentGraph.js.map +1 -1
- package/dist/subsystem/SubsystemFileTree.d.ts +4 -1
- package/dist/subsystem/SubsystemFileTree.d.ts.map +1 -1
- package/dist/subsystem/SubsystemFileTree.js +44 -18
- package/dist/subsystem/SubsystemFileTree.js.map +1 -1
- package/dist/subsystem/paths.d.ts +25 -0
- package/dist/subsystem/paths.d.ts.map +1 -1
- package/dist/subsystem/paths.js +34 -0
- package/dist/subsystem/paths.js.map +1 -1
- package/package.json +1 -1
- package/src/index.ts +3 -0
- package/src/stories/SubsystemComponentGraph.stories.tsx +40 -0
- package/src/subsystem/{ComponentDetail.tsx → ComponentDeclaration.tsx} +5 -6
- package/src/subsystem/SubsystemComponentGraph.tsx +183 -61
- package/src/subsystem/SubsystemFileTree.tsx +68 -36
- package/src/subsystem/paths.test.ts +62 -1
- package/src/subsystem/paths.ts +58 -0
package/dist/index.d.ts
CHANGED
|
@@ -54,8 +54,8 @@ export { normalizeGraphifyLabel, createGraphifyTypeResolver, resolveGraphifyType
|
|
|
54
54
|
export { SubsystemComponentGraph } from './subsystem/SubsystemComponentGraph';
|
|
55
55
|
export type { SubsystemComponentGraphProps } from './subsystem/SubsystemComponentGraph';
|
|
56
56
|
export { MECHANISM_COLOR, KIND_COLOR, MECHANISM_STYLE } from './subsystem/model';
|
|
57
|
-
export { purlRepoKey, purlOwnerName, buildTreePathMapping, } from './subsystem/paths';
|
|
58
|
-
export type { TreeEntry, TreePathMapping, } from './subsystem/paths';
|
|
57
|
+
export { purlRepoKey, purlOwnerName, buildTreePathMapping, buildRepoGroups, repoAvatarUrl, } from './subsystem/paths';
|
|
58
|
+
export type { TreeEntry, TreePathMapping, RepoGroup, } from './subsystem/paths';
|
|
59
59
|
export { SubsystemFileTree } from './subsystem/SubsystemFileTree';
|
|
60
60
|
export type { SubsystemFileTreeProps } from './subsystem/SubsystemFileTree';
|
|
61
61
|
export { GraphLayoutCover } from './subsystem/GraphLayoutCover';
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
package/dist/index.js
CHANGED
|
@@ -39,7 +39,7 @@ export { normalizeGraphifyLabel, createGraphifyTypeResolver, resolveGraphifyType
|
|
|
39
39
|
// Subsystem component graph
|
|
40
40
|
export { SubsystemComponentGraph } from './subsystem/SubsystemComponentGraph';
|
|
41
41
|
export { MECHANISM_COLOR, KIND_COLOR, MECHANISM_STYLE } from './subsystem/model';
|
|
42
|
-
export { purlRepoKey, purlOwnerName, buildTreePathMapping, } from './subsystem/paths';
|
|
42
|
+
export { purlRepoKey, purlOwnerName, buildTreePathMapping, buildRepoGroups, repoAvatarUrl, } from './subsystem/paths';
|
|
43
43
|
export { SubsystemFileTree } from './subsystem/SubsystemFileTree';
|
|
44
44
|
export { GraphLayoutCover } from './subsystem/GraphLayoutCover';
|
|
45
45
|
//# sourceMappingURL=index.js.map
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAsBH,oBAAoB;AACpB,OAAO,EAAE,aAAa,EAAE,MAAM,4BAA4B,CAAC;AAQ3D,OAAO,EAAE,uBAAuB,EAAE,MAAM,sCAAsC,CAAC;AAG/E,OAAO,EAAE,uBAAuB,EAAE,MAAM,sCAAsC,CAAC;AAG/E,OAAO,EAAE,iBAAiB,EAAE,MAAM,2BAA2B,CAAC;AAS9D,OAAO,EAAE,mBAAmB,EAAE,aAAa,EAAE,WAAW,EAAE,MAAM,kCAAkC,CAAC;AAOnG,OAAO,EAAE,qBAAqB,EAAE,MAAM,oCAAoC,CAAC;AAG3E,6BAA6B;AAC7B,OAAO,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAC;AAGlD,OAAO,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAC;AAGhD,8BAA8B;AAC9B,OAAO,EACL,sBAAsB,EACtB,aAAa,EACb,aAAa,EACb,gBAAgB,EAChB,gBAAgB,GACjB,MAAM,cAAc,CAAC;AAUtB,OAAO,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAC;AAGlD,OAAO,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAC;AAGhD,2BAA2B;AAC3B,OAAO,EAAE,WAAW,EAAE,MAAM,0BAA0B,CAAC;AAGvD,mBAAmB;AACnB,OAAO,EACL,oBAAoB,EACpB,oBAAoB,GACrB,MAAM,wBAAwB,CAAC;AAEhC,OAAO,EAAE,IAAI,EAAE,WAAW,EAAE,MAAM,sBAAsB,CAAC;AAEzD,OAAO,EACL,oBAAoB,EACpB,iBAAiB,EACjB,aAAa,GACd,MAAM,0BAA0B,CAAC;AAClC,OAAO,EAAE,eAAe,EAAE,oBAAoB,EAAE,wBAAwB,EAAE,MAAM,sBAAsB,CAAC;AAGvG,4DAA4D;AAC5D,OAAO,EAAE,gBAAgB,EAAE,iBAAiB,EAAE,MAAM,mBAAmB,CAAC;AAExE,OAAO,EAAE,YAAY,EAAE,oBAAoB,EAAE,MAAM,sBAAsB,CAAC;AAG1E,6EAA6E;AAC7E,OAAO,EACL,iBAAiB,EACjB,WAAW,EACX,UAAU,EACV,SAAS,EACT,QAAQ,EACR,UAAU,EACV,iBAAiB,EACjB,gBAAgB,EAChB,sBAAsB,GACvB,MAAM,wBAAwB,CAAC;AAsChC,6DAA6D;AAC7D,OAAO,EAAE,YAAY,EAAE,YAAY,EAAE,MAAM,yBAAyB,CAAC;AAmCrE,sEAAsE;AACtE,OAAO,EACL,gBAAgB,EAChB,uBAAuB,GACxB,MAAM,6BAA6B,CAAC;AAyCrC,OAAO,EACL,sBAAsB,EACtB,0BAA0B,EAC1B,sBAAsB,GACvB,MAAM,YAAY,CAAC;AAEpB,4BAA4B;AAC5B,OAAO,EAAE,uBAAuB,EAAE,MAAM,qCAAqC,CAAC;AAE9E,OAAO,EAAE,eAAe,EAAE,UAAU,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AACjF,OAAO,EACL,WAAW,EACX,aAAa,EACb,oBAAoB,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAsBH,oBAAoB;AACpB,OAAO,EAAE,aAAa,EAAE,MAAM,4BAA4B,CAAC;AAQ3D,OAAO,EAAE,uBAAuB,EAAE,MAAM,sCAAsC,CAAC;AAG/E,OAAO,EAAE,uBAAuB,EAAE,MAAM,sCAAsC,CAAC;AAG/E,OAAO,EAAE,iBAAiB,EAAE,MAAM,2BAA2B,CAAC;AAS9D,OAAO,EAAE,mBAAmB,EAAE,aAAa,EAAE,WAAW,EAAE,MAAM,kCAAkC,CAAC;AAOnG,OAAO,EAAE,qBAAqB,EAAE,MAAM,oCAAoC,CAAC;AAG3E,6BAA6B;AAC7B,OAAO,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAC;AAGlD,OAAO,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAC;AAGhD,8BAA8B;AAC9B,OAAO,EACL,sBAAsB,EACtB,aAAa,EACb,aAAa,EACb,gBAAgB,EAChB,gBAAgB,GACjB,MAAM,cAAc,CAAC;AAUtB,OAAO,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAC;AAGlD,OAAO,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAC;AAGhD,2BAA2B;AAC3B,OAAO,EAAE,WAAW,EAAE,MAAM,0BAA0B,CAAC;AAGvD,mBAAmB;AACnB,OAAO,EACL,oBAAoB,EACpB,oBAAoB,GACrB,MAAM,wBAAwB,CAAC;AAEhC,OAAO,EAAE,IAAI,EAAE,WAAW,EAAE,MAAM,sBAAsB,CAAC;AAEzD,OAAO,EACL,oBAAoB,EACpB,iBAAiB,EACjB,aAAa,GACd,MAAM,0BAA0B,CAAC;AAClC,OAAO,EAAE,eAAe,EAAE,oBAAoB,EAAE,wBAAwB,EAAE,MAAM,sBAAsB,CAAC;AAGvG,4DAA4D;AAC5D,OAAO,EAAE,gBAAgB,EAAE,iBAAiB,EAAE,MAAM,mBAAmB,CAAC;AAExE,OAAO,EAAE,YAAY,EAAE,oBAAoB,EAAE,MAAM,sBAAsB,CAAC;AAG1E,6EAA6E;AAC7E,OAAO,EACL,iBAAiB,EACjB,WAAW,EACX,UAAU,EACV,SAAS,EACT,QAAQ,EACR,UAAU,EACV,iBAAiB,EACjB,gBAAgB,EAChB,sBAAsB,GACvB,MAAM,wBAAwB,CAAC;AAsChC,6DAA6D;AAC7D,OAAO,EAAE,YAAY,EAAE,YAAY,EAAE,MAAM,yBAAyB,CAAC;AAmCrE,sEAAsE;AACtE,OAAO,EACL,gBAAgB,EAChB,uBAAuB,GACxB,MAAM,6BAA6B,CAAC;AAyCrC,OAAO,EACL,sBAAsB,EACtB,0BAA0B,EAC1B,sBAAsB,GACvB,MAAM,YAAY,CAAC;AAEpB,4BAA4B;AAC5B,OAAO,EAAE,uBAAuB,EAAE,MAAM,qCAAqC,CAAC;AAE9E,OAAO,EAAE,eAAe,EAAE,UAAU,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AACjF,OAAO,EACL,WAAW,EACX,aAAa,EACb,oBAAoB,EACpB,eAAe,EACf,aAAa,GACd,MAAM,mBAAmB,CAAC;AAM3B,OAAO,EAAE,iBAAiB,EAAE,MAAM,+BAA+B,CAAC;AAElE,OAAO,EAAE,gBAAgB,EAAE,MAAM,8BAA8B,CAAC"}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* ComponentDeclaration — the selected subsystem component rendered as it would
|
|
3
|
+
* appear in code: a file-path comment + doc comment, then the kind's
|
|
4
|
+
* declaration (`class X extends Y { ... }`, `function f(): T`, ...) with its
|
|
5
|
+
* members as signatures. Graphify relationship drill-downs appear as trailing
|
|
6
|
+
* comments. File content lives in the bottom FileDrawer, not here.
|
|
7
|
+
*/
|
|
8
|
+
import { type SubsystemComponent } from './model';
|
|
9
|
+
/** Panel props. The two callbacks are wired by the graph; standalone usage
|
|
10
|
+
* without them renders the same panel with nothing clickable. */
|
|
11
|
+
export interface ComponentDeclarationProps {
|
|
12
|
+
component: SubsystemComponent;
|
|
13
|
+
/** File-path click → open that file in the bottom drawer. */
|
|
14
|
+
onOpenFile?: (file: string) => void;
|
|
15
|
+
/** Related-name click (types, callers/callees, implementors, …) → select
|
|
16
|
+
* that component if one matches; unmatched refs no-op. */
|
|
17
|
+
onRelatedSelect?: (ref: string) => void;
|
|
18
|
+
}
|
|
19
|
+
/** Declaration panel for the selected component — its definition, code-style. */
|
|
20
|
+
export declare function ComponentDeclaration({ component, onOpenFile, onRelatedSelect }: ComponentDeclarationProps): import("react/jsx-runtime").JSX.Element;
|
|
21
|
+
//# sourceMappingURL=ComponentDeclaration.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ComponentDeclaration.d.ts","sourceRoot":"","sources":["../../src/subsystem/ComponentDeclaration.tsx"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAIH,OAAO,EAIL,KAAK,kBAAkB,EACxB,MAAM,SAAS,CAAC;AA+BjB;kEACkE;AAClE,MAAM,WAAW,yBAAyB;IACxC,SAAS,EAAE,kBAAkB,CAAC;IAC9B,6DAA6D;IAC7D,UAAU,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAC;IACpC;+DAC2D;IAC3D,eAAe,CAAC,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,IAAI,CAAC;CACzC;AAED,iFAAiF;AACjF,wBAAgB,oBAAoB,CAAC,EAAE,SAAS,EAAE,UAAU,EAAE,eAAe,EAAE,EAAE,yBAAyB,2CAsUzG"}
|
|
@@ -0,0 +1,136 @@
|
|
|
1
|
+
import { Fragment as _Fragment, jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
|
+
/**
|
|
3
|
+
* ComponentDeclaration — the selected subsystem component rendered as it would
|
|
4
|
+
* appear in code: a file-path comment + doc comment, then the kind's
|
|
5
|
+
* declaration (`class X extends Y { ... }`, `function f(): T`, ...) with its
|
|
6
|
+
* members as signatures. Graphify relationship drill-downs appear as trailing
|
|
7
|
+
* comments. File content lives in the bottom FileDrawer, not here.
|
|
8
|
+
*/
|
|
9
|
+
import { Fragment } from 'react';
|
|
10
|
+
import { useTheme } from '@principal-ade/industry-theme';
|
|
11
|
+
import { KIND_COLOR, deriveNameFromSymbol, formatPurl, } from './model';
|
|
12
|
+
/** Shared affordance for clickable text pieces. */
|
|
13
|
+
const clickableStyle = {
|
|
14
|
+
cursor: 'pointer',
|
|
15
|
+
textDecorationLine: 'underline',
|
|
16
|
+
textDecorationStyle: 'dotted',
|
|
17
|
+
textUnderlineOffset: 2,
|
|
18
|
+
};
|
|
19
|
+
/** Clickable detail-panel piece — dotted underline signals interactivity. */
|
|
20
|
+
function DetailLink({ children, onClick }) {
|
|
21
|
+
if (!onClick)
|
|
22
|
+
return _jsx(_Fragment, { children: children });
|
|
23
|
+
return (_jsx("span", { onClick: (e) => {
|
|
24
|
+
e.stopPropagation();
|
|
25
|
+
onClick();
|
|
26
|
+
}, style: {
|
|
27
|
+
cursor: 'pointer',
|
|
28
|
+
textDecorationLine: 'underline',
|
|
29
|
+
textDecorationStyle: 'dotted',
|
|
30
|
+
textUnderlineOffset: 2,
|
|
31
|
+
}, children: children }));
|
|
32
|
+
}
|
|
33
|
+
/** Declaration panel for the selected component — its definition, code-style. */
|
|
34
|
+
export function ComponentDeclaration({ component, onOpenFile, onRelatedSelect }) {
|
|
35
|
+
const { theme } = useTheme();
|
|
36
|
+
const muted = theme.colors.textMuted ?? theme.colors.textSecondary;
|
|
37
|
+
const color = KIND_COLOR[component.kind] ?? '#888';
|
|
38
|
+
const displayName = deriveNameFromSymbol(component.symbol, component.kind, component.name, component.file);
|
|
39
|
+
// Token styles — keyword / name / member / type / string / punctuation.
|
|
40
|
+
const kw = (text) => _jsx("span", { style: { color: theme.colors.secondary }, children: text });
|
|
41
|
+
const nm = (text) => _jsx("span", { style: { color }, children: text });
|
|
42
|
+
const mb = (text) => _jsx("span", { style: { color: theme.colors.info }, children: text });
|
|
43
|
+
// Type tokens are links into the graph (other components often own them).
|
|
44
|
+
const ty = (text) => (_jsx(DetailLink, { onClick: onRelatedSelect ? () => onRelatedSelect(text) : undefined, children: _jsx("span", { style: { color: theme.colors.accent }, children: text }) }));
|
|
45
|
+
const str = (text) => _jsx("span", { style: { color: theme.colors.success }, children: text });
|
|
46
|
+
const pn = (text) => _jsx("span", { style: { color: muted }, children: text });
|
|
47
|
+
const line = (children, key, indent) => (_jsx("div", { style: indent ? { paddingLeft: 16 } : undefined, children: children }, key));
|
|
48
|
+
const commentStyle = { color: muted, fontStyle: 'italic' };
|
|
49
|
+
const commentLine = (text, key, indent, onClick) => line(_jsx(DetailLink, { onClick: onClick, children: _jsx("span", { style: { ...commentStyle, ...(onClick ? clickableStyle : undefined) }, children: text }) }), key, indent);
|
|
50
|
+
// Trailing relationship comments whose names are individually clickable.
|
|
51
|
+
const commentListLine = (prefix, names, key) => line(_jsxs(_Fragment, { children: [_jsx("span", { style: commentStyle, children: prefix }), list(names.map((n, i) => (_jsx(Fragment, { children: _jsx(DetailLink, { onClick: onRelatedSelect ? () => onRelatedSelect(n) : undefined, children: _jsx("span", { style: { ...commentStyle, ...(onRelatedSelect ? clickableStyle : undefined) }, children: n }) }) }, i))))] }), key);
|
|
52
|
+
// Comma-join rendered tokens without raw-array key churn.
|
|
53
|
+
const list = (items) => items.map((item, i) => (_jsxs(Fragment, { children: [i > 0 ? ', ' : null, item] }, i)));
|
|
54
|
+
const lines = [];
|
|
55
|
+
if (component.purl)
|
|
56
|
+
lines.push(commentLine(`// ${formatPurl(component.purl)}`, 'purl'));
|
|
57
|
+
if (component.file)
|
|
58
|
+
lines.push(commentLine(`// ${component.file}`, 'file', false, onOpenFile ? () => onOpenFile(component.file) : undefined));
|
|
59
|
+
if (component.purpose)
|
|
60
|
+
lines.push(commentLine(`/** ${component.purpose} */`, 'purpose'));
|
|
61
|
+
const detail = component.detail;
|
|
62
|
+
switch (detail?.kind ?? component.kind) {
|
|
63
|
+
case 'class': {
|
|
64
|
+
const members = [];
|
|
65
|
+
if (detail?.kind === 'class') {
|
|
66
|
+
detail.methods.forEach((m, i) => members.push(line(_jsxs(_Fragment, { children: [mb(m.name), pn('('), (m.parameters ?? []).length > 0 &&
|
|
67
|
+
list((m.parameters ?? []).map((p, j) => (_jsxs(Fragment, { children: [p.name ? (_jsxs(_Fragment, { children: [mb(p.name), pn(': ')] })) : null, ty(p.type)] }, j)))), pn(')'), m.returnType ? (_jsxs(_Fragment, { children: [pn(': '), ty(m.returnType)] })) : null] }), `m${i}`, true)));
|
|
68
|
+
detail.properties.forEach((prop, i) => members.push(line(_jsxs(_Fragment, { children: [mb(prop.name), prop.type ? (_jsxs(_Fragment, { children: [pn(': '), ty(prop.type)] })) : null] }), `p${i}`, true)));
|
|
69
|
+
}
|
|
70
|
+
const cls = detail?.kind === 'class' ? detail : undefined;
|
|
71
|
+
const hasBody = members.length > 0;
|
|
72
|
+
lines.push(line(_jsxs(_Fragment, { children: [kw('class'), ' ', nm(displayName), cls && cls.extends.length > 0 && (_jsxs(_Fragment, { children: [' ', kw('extends'), ' ', list(cls.extends.map((e, i) => _jsx(Fragment, { children: ty(e) }, i)))] })), cls && cls.implements.length > 0 && (_jsxs(_Fragment, { children: [' ', kw('implements'), ' ', list(cls.implements.map((e, i) => _jsx(Fragment, { children: ty(e) }, i)))] })), hasBody ? pn(' {') : null] }), 'decl'));
|
|
73
|
+
lines.push(...members);
|
|
74
|
+
if (hasBody)
|
|
75
|
+
lines.push(line(pn('}'), 'end'));
|
|
76
|
+
if (cls && cls.instantiations.length > 0)
|
|
77
|
+
lines.push(commentListLine('// constructed by: ', cls.instantiations.map((c) => c.name), 'insts'));
|
|
78
|
+
if (cls && cls.references.length > 0)
|
|
79
|
+
lines.push(commentListLine('// referenced by: ', cls.references.map((r) => r.name), 'refs'));
|
|
80
|
+
break;
|
|
81
|
+
}
|
|
82
|
+
case 'function': {
|
|
83
|
+
const fn = detail?.kind === 'function' ? detail : undefined;
|
|
84
|
+
const params = fn?.parameters ?? [];
|
|
85
|
+
lines.push(line(_jsxs(_Fragment, { children: [kw('function'), ' ', nm(displayName), pn('('), params.length > 0 &&
|
|
86
|
+
list(params.map((param, i) => (_jsxs(Fragment, { children: [param.name ? (_jsxs(_Fragment, { children: [mb(param.name), pn(': ')] })) : null, ty(param.type)] }, i)))), pn(')'), fn?.returnType ? (_jsxs(_Fragment, { children: [pn(': '), ty(fn.returnType)] })) : null, pn(';')] }), 'decl'));
|
|
87
|
+
if (fn && fn.callers.length > 0)
|
|
88
|
+
lines.push(commentListLine('// called by: ', fn.callers.map((c) => c.name), 'callers'));
|
|
89
|
+
if (fn && fn.callees.length > 0)
|
|
90
|
+
lines.push(commentListLine('// calls: ', fn.callees.map((c) => c.name), 'callees'));
|
|
91
|
+
break;
|
|
92
|
+
}
|
|
93
|
+
case 'type': {
|
|
94
|
+
const tpe = detail?.kind === 'type' ? detail : undefined;
|
|
95
|
+
const hasBody = (tpe?.properties.length ?? 0) > 0;
|
|
96
|
+
lines.push(line(_jsxs(_Fragment, { children: [kw('interface'), ' ', nm(displayName), hasBody ? pn(' {') : null] }), 'decl'));
|
|
97
|
+
if (tpe) {
|
|
98
|
+
tpe.properties.forEach((prop, i) => lines.push(line(_jsxs(_Fragment, { children: [mb(prop.name), prop.type ? (_jsxs(_Fragment, { children: [pn(': '), ty(prop.type)] })) : null, pn(';')] }), `p${i}`, true)));
|
|
99
|
+
}
|
|
100
|
+
if (hasBody)
|
|
101
|
+
lines.push(line(pn('}'), 'end'));
|
|
102
|
+
if (tpe && tpe.implementors.length > 0)
|
|
103
|
+
lines.push(commentListLine('// implemented by: ', tpe.implementors, 'impl'));
|
|
104
|
+
if (tpe && tpe.usedBy.length > 0)
|
|
105
|
+
lines.push(commentListLine('// used by: ', tpe.usedBy.map((u) => u.name), 'usedBy'));
|
|
106
|
+
break;
|
|
107
|
+
}
|
|
108
|
+
case 'module': {
|
|
109
|
+
const mod = detail?.kind === 'module' ? detail : undefined;
|
|
110
|
+
if (mod) {
|
|
111
|
+
mod.imports.forEach((imp, i) => lines.push(line(_jsxs(_Fragment, { children: [kw('import'), ' ', pn("'"), str(imp.name), pn("';")] }), `imp${i}`)));
|
|
112
|
+
if (mod.exports.length > 0)
|
|
113
|
+
lines.push(line(_jsxs(_Fragment, { children: [kw('export'), ' ', pn('{ '), list(mod.exports.map((e, i) => _jsx(Fragment, { children: mb(e) }, i))), pn(' }'), pn(';')] }), 'exports'));
|
|
114
|
+
if (mod.symbols.length > 0)
|
|
115
|
+
lines.push(commentLine(`// defines: ${mod.symbols.join(', ')}`, 'symbols'));
|
|
116
|
+
}
|
|
117
|
+
else {
|
|
118
|
+
lines.push(line(_jsxs(_Fragment, { children: [kw('module'), ' ', nm(displayName)] }), 'decl'));
|
|
119
|
+
}
|
|
120
|
+
break;
|
|
121
|
+
}
|
|
122
|
+
case 'external': {
|
|
123
|
+
lines.push(line(_jsxs(_Fragment, { children: [kw('external'), ' ', detail?.kind === 'external' ? (_jsxs(_Fragment, { children: [pn("'"), str(detail.label), pn("'")] })) : (nm(displayName))] }), 'decl'));
|
|
124
|
+
break;
|
|
125
|
+
}
|
|
126
|
+
}
|
|
127
|
+
return (_jsx("div", { style: {
|
|
128
|
+
background: theme.colors.backgroundSecondary,
|
|
129
|
+
padding: '10px 12px',
|
|
130
|
+
fontFamily: theme.fonts.monospace,
|
|
131
|
+
fontSize: theme.fontSizes[0],
|
|
132
|
+
lineHeight: 1.7,
|
|
133
|
+
wordBreak: 'break-word',
|
|
134
|
+
}, children: lines }));
|
|
135
|
+
}
|
|
136
|
+
//# sourceMappingURL=ComponentDeclaration.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ComponentDeclaration.js","sourceRoot":"","sources":["../../src/subsystem/ComponentDeclaration.tsx"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SubsystemComponentGraph.d.ts","sourceRoot":"","sources":["../../src/subsystem/SubsystemComponentGraph.tsx"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAGH,OAAO,KAAK,EAAiC,SAAS,EAAE,MAAM,OAAO,CAAC;AAqBtE,OAAO,EAGL,KAAK,sBAAsB,EAC3B,KAAK,kBAAkB,EAExB,MAAM,SAAS,CAAC;AASjB,MAAM,WAAW,4BAA4B;IAC3C,UAAU,EAAE,kBAAkB,EAAE,CAAC;IACjC,KAAK,EAAE,sBAAsB,EAAE,CAAC;IAChC,QAAQ,CAAC,EAAE,CAAC,WAAW,EAAE,MAAM,KAAK,IAAI,CAAC;IACzC,6EAA6E;IAC7E,YAAY,CAAC,EAAE,CAAC,IAAI,EAAE,sBAAsB,KAAK,IAAI,CAAC;IACtD;kFAC8E;IAC9E,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,qEAAqE;IACrE,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB,gDAAgD;IAChD,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,oDAAoD;IACpD,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,0EAA0E;IAC1E,aAAa,CAAC,EAAE,SAAS,CAAC;IAC1B,6DAA6D;IAC7D,YAAY,CAAC,EAAE,SAAS,CAAC;IACzB,gFAAgF;IAChF,uBAAuB,CAAC,EAAE,SAAS,CAAC;IACpC;;;;;OAKG;IACH,gBAAgB,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,SAAS,CAAC;IAC/C;;;;OAIG;IACH,cAAc,CAAC,EAAE,CAAC,SAAS,EAAE,kBAAkB,KAAK,SAAS,CAAC;IAC9D;;;OAGG;IACH,YAAY,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAC;CACvC;
|
|
1
|
+
{"version":3,"file":"SubsystemComponentGraph.d.ts","sourceRoot":"","sources":["../../src/subsystem/SubsystemComponentGraph.tsx"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAGH,OAAO,KAAK,EAAiC,SAAS,EAAE,MAAM,OAAO,CAAC;AAqBtE,OAAO,EAGL,KAAK,sBAAsB,EAC3B,KAAK,kBAAkB,EAExB,MAAM,SAAS,CAAC;AASjB,MAAM,WAAW,4BAA4B;IAC3C,UAAU,EAAE,kBAAkB,EAAE,CAAC;IACjC,KAAK,EAAE,sBAAsB,EAAE,CAAC;IAChC,QAAQ,CAAC,EAAE,CAAC,WAAW,EAAE,MAAM,KAAK,IAAI,CAAC;IACzC,6EAA6E;IAC7E,YAAY,CAAC,EAAE,CAAC,IAAI,EAAE,sBAAsB,KAAK,IAAI,CAAC;IACtD;kFAC8E;IAC9E,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,qEAAqE;IACrE,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB,gDAAgD;IAChD,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,oDAAoD;IACpD,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,0EAA0E;IAC1E,aAAa,CAAC,EAAE,SAAS,CAAC;IAC1B,6DAA6D;IAC7D,YAAY,CAAC,EAAE,SAAS,CAAC;IACzB,gFAAgF;IAChF,uBAAuB,CAAC,EAAE,SAAS,CAAC;IACpC;;;;;OAKG;IACH,gBAAgB,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,SAAS,CAAC;IAC/C;;;;OAIG;IACH,cAAc,CAAC,EAAE,CAAC,SAAS,EAAE,kBAAkB,KAAK,SAAS,CAAC;IAC9D;;;OAGG;IACH,YAAY,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAC;CACvC;AA+rBD,wBAAgB,uBAAuB,CAAC,KAAK,EAAE,4BAA4B,2CAsC1E"}
|
|
@@ -21,10 +21,10 @@ import { buildSubsystemGraph, MECHANISM_COLOR, } from './model';
|
|
|
21
21
|
import { SubsystemComponentNode, SubsystemEdge, SUBSYSTEM_CALLBACKS } from './nodes';
|
|
22
22
|
import { SubsystemFileTree } from './SubsystemFileTree';
|
|
23
23
|
import { GraphLayoutCover } from './GraphLayoutCover';
|
|
24
|
-
import {
|
|
24
|
+
import { ComponentDeclaration } from './ComponentDeclaration';
|
|
25
25
|
import { FileDrawer } from './FileDrawer';
|
|
26
26
|
import { EdgeLegendModal, MECHANISM_DESCRIPTIONS } from './EdgeLegendModal';
|
|
27
|
-
import {
|
|
27
|
+
import { buildRepoGroups, repoAvatarUrl } from './paths';
|
|
28
28
|
const nodeTypes = {
|
|
29
29
|
'subsystem-component': SubsystemComponentNode,
|
|
30
30
|
};
|
|
@@ -211,30 +211,9 @@ function Inner({ components, edges, onSelect, onEdgeSelect, measured: _measured,
|
|
|
211
211
|
}, 200);
|
|
212
212
|
return () => clearTimeout(t);
|
|
213
213
|
}, [baseNodesKey, baseEdgesKey, fitView]);
|
|
214
|
-
// When the file drawer opens
|
|
215
|
-
//
|
|
216
|
-
//
|
|
217
|
-
const prevOpenFileRef = useRef(null);
|
|
218
|
-
useEffect(() => {
|
|
219
|
-
const prev = prevOpenFileRef.current;
|
|
220
|
-
prevOpenFileRef.current = openFile;
|
|
221
|
-
if (!layoutReady || prev === openFile)
|
|
222
|
-
return;
|
|
223
|
-
const t = setTimeout(() => {
|
|
224
|
-
if (openFile) {
|
|
225
|
-
const ids = xyflowNodesBase
|
|
226
|
-
.filter((n) => n.data?.component?.file === openFile)
|
|
227
|
-
.map((n) => ({ id: n.id }));
|
|
228
|
-
if (ids.length > 0) {
|
|
229
|
-
fitView({ nodes: ids, padding: 0.35, minZoom: 0.05, maxZoom: 2, duration: 250 });
|
|
230
|
-
}
|
|
231
|
-
}
|
|
232
|
-
else {
|
|
233
|
-
fitView({ padding: 0.1, includeHiddenNodes: false, minZoom: 0.05, maxZoom: 2, duration: 250 });
|
|
234
|
-
}
|
|
235
|
-
}, 230);
|
|
236
|
-
return () => clearTimeout(t);
|
|
237
|
-
}, [openFile, layoutReady, xyflowNodesBase, fitView]);
|
|
214
|
+
// When the file drawer opens or closes the canvas is resized but the
|
|
215
|
+
// camera stays put — no refit/zoom. Spotlight + dimming already convey
|
|
216
|
+
// which nodes belong to the open file.
|
|
238
217
|
const onNodeClick = useCallback((_e, node) => {
|
|
239
218
|
const comp = node.data?.component;
|
|
240
219
|
setSelectedEdgeId(null);
|
|
@@ -258,20 +237,29 @@ function Inner({ components, edges, onSelect, onEdgeSelect, measured: _measured,
|
|
|
258
237
|
setSelected(null);
|
|
259
238
|
setSelectedEdgeId(null);
|
|
260
239
|
}, []);
|
|
261
|
-
// Sidebar file
|
|
262
|
-
//
|
|
263
|
-
|
|
264
|
-
|
|
265
|
-
const
|
|
266
|
-
|
|
267
|
-
|
|
240
|
+
// Sidebar file trees — one per repo on multi-repo graphs, each under its
|
|
241
|
+
// own owner-avatar header. Clicking a header collapses that repo's tree.
|
|
242
|
+
const repoGroups = useMemo(() => buildRepoGroups(components), [components]);
|
|
243
|
+
const [collapsedRepos, setCollapsedRepos] = useState(new Set());
|
|
244
|
+
const toggleRepoCollapsed = useCallback((key) => {
|
|
245
|
+
setCollapsedRepos((prev) => {
|
|
246
|
+
const next = new Set(prev);
|
|
247
|
+
if (next.has(key))
|
|
248
|
+
next.delete(key);
|
|
249
|
+
else
|
|
250
|
+
next.add(key);
|
|
251
|
+
return next;
|
|
252
|
+
});
|
|
253
|
+
}, []);
|
|
254
|
+
const treeFiles = useMemo(() => repoGroups.groups.flatMap((g) => g.entries.map((e) => e.file)), [repoGroups]);
|
|
255
|
+
const onTreeSelectFile = useCallback((file) => {
|
|
268
256
|
if (openFileRef.current === file) {
|
|
269
257
|
setOpenFile(null);
|
|
270
258
|
return;
|
|
271
259
|
}
|
|
272
260
|
setOpenFile(file);
|
|
273
261
|
onFileSelect?.(file);
|
|
274
|
-
}, [
|
|
262
|
+
}, [onFileSelect]);
|
|
275
263
|
// Detail-panel links: related-name clicks select the matching component —
|
|
276
264
|
// resolved by id, name, or symbol (call labels may carry a trailing `()`).
|
|
277
265
|
const resolveRelatedComponent = useCallback((ref) => {
|
|
@@ -304,9 +292,8 @@ function Inner({ components, edges, onSelect, onEdgeSelect, measured: _measured,
|
|
|
304
292
|
const usedMechanisms = useMemo(() => {
|
|
305
293
|
return new Set(edgeLabels.map((l) => l.mechanism));
|
|
306
294
|
}, [edgeLabels]);
|
|
307
|
-
// Unique source files across components → sidebar file
|
|
308
|
-
|
|
309
|
-
const treeFilePaths = useMemo(() => treeMapping.entries.map((e) => e.displayPath).sort(), [treeMapping]);
|
|
295
|
+
// Unique source files across components → sidebar file trees.
|
|
296
|
+
const treeFilePaths = treeFiles;
|
|
310
297
|
// The hovered node's file (null when not hovering / file-less component).
|
|
311
298
|
const hoveredFile = useMemo(() => {
|
|
312
299
|
if (!hoveredComponentId)
|
|
@@ -354,65 +341,132 @@ function Inner({ components, edges, onSelect, onEdgeSelect, measured: _measured,
|
|
|
354
341
|
fontWeight: 600,
|
|
355
342
|
color: theme.colors.text,
|
|
356
343
|
fontFamily: theme.fonts.heading,
|
|
357
|
-
}, children: title })), 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, fontSizeScale: 0.9, enableKeyboardScrolling: false, autoFocusOnVisible: false }) })), sidebarAfterDescription] }), treeFilePaths.length > 0 && (_jsx(
|
|
358
|
-
|
|
359
|
-
|
|
360
|
-
|
|
361
|
-
|
|
362
|
-
|
|
344
|
+
}, children: title })), 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, fontSizeScale: 0.9, enableKeyboardScrolling: false, autoFocusOnVisible: false }) })), sidebarAfterDescription] }), treeFilePaths.length > 0 && (_jsx("div", { style: {
|
|
345
|
+
height: '50%',
|
|
346
|
+
minHeight: 160,
|
|
347
|
+
flexShrink: 0,
|
|
348
|
+
borderTop: `1px solid ${theme.colors.border}`,
|
|
349
|
+
display: 'flex',
|
|
350
|
+
flexDirection: 'column',
|
|
363
351
|
overflow: 'hidden',
|
|
364
|
-
|
|
365
|
-
|
|
366
|
-
|
|
367
|
-
|
|
368
|
-
|
|
369
|
-
|
|
370
|
-
|
|
371
|
-
|
|
372
|
-
|
|
373
|
-
|
|
374
|
-
|
|
375
|
-
|
|
352
|
+
}, children: repoGroups.groups.map((group, i) => {
|
|
353
|
+
const groupKey = group.repoKey ?? '__no-repo__';
|
|
354
|
+
const collapsed = collapsedRepos.has(groupKey);
|
|
355
|
+
return (_jsxs("div", { style: {
|
|
356
|
+
flex: collapsed ? '0 0 auto' : 1,
|
|
357
|
+
minHeight: collapsed ? 0 : undefined,
|
|
358
|
+
display: 'flex',
|
|
359
|
+
flexDirection: 'column',
|
|
360
|
+
borderTop: i > 0 ? `1px solid ${theme.colors.border}` : undefined,
|
|
361
|
+
}, children: [repoGroups.multiRepo && (_jsx(RepoGroupHeader, { group: group, collapsed: collapsed, onToggle: () => toggleRepoCollapsed(groupKey) })), !collapsed && (_jsx(SubsystemFileTree, { files: group.entries.map((e) => e.displayPath), selectedFile: selected?.file ?? openFile, hoveredFile: hoveredFile, onSelectFile: onTreeSelectFile, headerless: repoGroups.multiRepo }))] }, groupKey));
|
|
362
|
+
}) }))] })), _jsxs("div", { style: { flex: 1, position: 'relative', display: 'flex', flexDirection: 'column', minHeight: 0 }, children: [_jsxs("div", { style: { position: 'relative', flex: 1, minHeight: 0, display: 'flex', flexDirection: 'column' }, children: [showEdgeLabels !== false && (_jsx("div", { style: {
|
|
363
|
+
position: 'absolute',
|
|
364
|
+
inset: 0,
|
|
365
|
+
overflow: 'hidden',
|
|
366
|
+
pointerEvents: 'none',
|
|
367
|
+
zIndex: 5,
|
|
368
|
+
}, children: edgeLabels.map((lbl) => {
|
|
369
|
+
const mechanism = lbl.mechanism;
|
|
370
|
+
const color = MECHANISM_COLOR[mechanism] ?? '#888';
|
|
371
|
+
const verifiable = MECHANISM_DESCRIPTIONS.find(([m]) => m === mechanism)?.[2] ?? true;
|
|
372
|
+
const screenX = lbl.midX * viewport.zoom + viewport.x;
|
|
373
|
+
const screenY = lbl.midY * viewport.zoom + viewport.y;
|
|
374
|
+
return (_jsx("div", { "data-edge-label": lbl.id, title: verifiable ? undefined : 'Not directly verifiable with graphify', onClick: (e) => {
|
|
375
|
+
e.stopPropagation();
|
|
376
|
+
selectEdge(lbl.id);
|
|
377
|
+
}, style: {
|
|
378
|
+
position: 'absolute',
|
|
379
|
+
left: screenX,
|
|
380
|
+
top: screenY,
|
|
381
|
+
fontSize: 10,
|
|
382
|
+
fontFamily: theme.fonts.monospace,
|
|
383
|
+
fontWeight: 500,
|
|
384
|
+
color,
|
|
385
|
+
background: 'rgba(21,21,21,0.9)',
|
|
386
|
+
border: verifiable ? `0.5px solid ${color}` : `1px dashed ${color}`,
|
|
387
|
+
borderRadius: verifiable ? 4 : '10px 14px 12px 16px / 14px 10px 16px 12px',
|
|
388
|
+
padding: '1px 5px',
|
|
389
|
+
cursor: 'pointer',
|
|
390
|
+
pointerEvents: 'auto',
|
|
391
|
+
opacity: lbl.dimmed ? 0.15 : 1,
|
|
392
|
+
whiteSpace: 'nowrap',
|
|
393
|
+
}, children: lbl.mechanism }, lbl.id));
|
|
394
|
+
}) })), _jsxs(ReactFlow, { nodes: dispNodes, edges: dispEdges, nodeTypes: nodeTypes, edgeTypes: edgeTypes, minZoom: 0.05, maxZoom: 4, onNodeClick: onNodeClick, onEdgeClick: onEdgeClick, onNodesChange: onNodesChange, onEdgesChange: onEdgesChange, proOptions: { hideAttribution: true }, nodesDraggable: false, elementsSelectable: true, selectNodesOnDrag: false, nodesConnectable: false, edgesReconnectable: false, onPaneClick: onPaneClick, panOnDrag: true, panOnScroll: true, zoomOnScroll: false, zoomOnPinch: true, zoomOnDoubleClick: false, style: {
|
|
395
|
+
width: '100%',
|
|
396
|
+
height: '100%',
|
|
397
|
+
flex: 1,
|
|
398
|
+
minHeight: 0,
|
|
399
|
+
background: theme.colors.background,
|
|
400
|
+
}, children: [_jsx(Background, { variant: BackgroundVariant.Dots, gap: 16, size: 1 }), _jsx(Controls, { showZoom: true, showFitView: true, showInteractive: true })] }, `${baseNodesKey}-${baseEdgesKey}`), usedMechanisms.size > 0 && (_jsxs("button", { type: "button", onClick: () => setLegendOpen(true), style: {
|
|
376
401
|
position: 'absolute',
|
|
377
|
-
|
|
378
|
-
|
|
379
|
-
|
|
380
|
-
|
|
381
|
-
|
|
382
|
-
|
|
383
|
-
|
|
384
|
-
|
|
385
|
-
|
|
386
|
-
|
|
402
|
+
top: 10,
|
|
403
|
+
left: 10,
|
|
404
|
+
zIndex: 7,
|
|
405
|
+
display: 'inline-flex',
|
|
406
|
+
alignItems: 'center',
|
|
407
|
+
gap: 6,
|
|
408
|
+
padding: '4px 10px',
|
|
409
|
+
fontSize: theme.fontSizes[0],
|
|
410
|
+
fontFamily: theme.fonts.body,
|
|
411
|
+
color: theme.colors.text,
|
|
412
|
+
background: theme.colors.backgroundSecondary ?? theme.colors.background,
|
|
413
|
+
border: `1px solid ${theme.colors.border}`,
|
|
414
|
+
borderRadius: 6,
|
|
387
415
|
cursor: 'pointer',
|
|
388
|
-
|
|
389
|
-
|
|
390
|
-
|
|
391
|
-
|
|
392
|
-
|
|
393
|
-
|
|
394
|
-
|
|
395
|
-
|
|
396
|
-
|
|
397
|
-
|
|
398
|
-
|
|
399
|
-
|
|
400
|
-
|
|
401
|
-
|
|
402
|
-
|
|
403
|
-
|
|
404
|
-
|
|
405
|
-
|
|
406
|
-
|
|
407
|
-
|
|
408
|
-
|
|
409
|
-
|
|
410
|
-
|
|
411
|
-
|
|
412
|
-
|
|
413
|
-
|
|
414
|
-
|
|
415
|
-
|
|
416
|
+
boxShadow: '0 1px 4px rgba(0,0,0,0.25)',
|
|
417
|
+
}, children: [_jsx(MapIcon, { size: 13 }), "Legend"] })), selected && (_jsx("div", { style: {
|
|
418
|
+
position: 'absolute',
|
|
419
|
+
top: 10,
|
|
420
|
+
right: 10,
|
|
421
|
+
zIndex: 8,
|
|
422
|
+
maxWidth: 'min(560px, 70%)',
|
|
423
|
+
maxHeight: '46%',
|
|
424
|
+
overflowY: 'auto',
|
|
425
|
+
background: theme.colors.background,
|
|
426
|
+
border: `1px solid ${theme.colors.border}`,
|
|
427
|
+
borderRadius: 8,
|
|
428
|
+
boxShadow: '0 8px 24px rgba(0,0,0,0.35)',
|
|
429
|
+
}, children: _jsx(ComponentDeclaration, { component: selected, onOpenFile: onTreeSelectFile, onRelatedSelect: resolveRelatedComponent }) }))] }), _jsx(EdgeLegendModal, { open: legendOpen, mechanisms: usedMechanisms, onClose: () => setLegendOpen(false) }), _jsx(FileDrawer, { file: openFile, onClose: () => setOpenFile(null), children: _jsx(DrawerContent, { render: renderDrawerContent, file: openFile }) }), _jsx(GraphLayoutCover, { revealed: layoutReady }), canvasOverlay] })] }));
|
|
430
|
+
}
|
|
431
|
+
/** Sidebar header for one repo's tree: owner avatar + repo name + file count.
|
|
432
|
+
* Clicking toggles the tree's visibility. */
|
|
433
|
+
function RepoGroupHeader({ group, collapsed, onToggle, }) {
|
|
434
|
+
const { theme } = useTheme();
|
|
435
|
+
const avatar = repoAvatarUrl(group.repoKey);
|
|
436
|
+
const label = group.repo ?? 'No repo';
|
|
437
|
+
return (_jsxs("div", { role: "button", "aria-expanded": !collapsed, onClick: (e) => {
|
|
438
|
+
e.stopPropagation();
|
|
439
|
+
onToggle();
|
|
440
|
+
}, title: collapsed ? 'Show files' : 'Hide files', style: {
|
|
441
|
+
display: 'flex',
|
|
442
|
+
alignItems: 'center',
|
|
443
|
+
gap: 8,
|
|
444
|
+
padding: '10px 16px 4px',
|
|
445
|
+
flexShrink: 0,
|
|
446
|
+
cursor: 'pointer',
|
|
447
|
+
userSelect: 'none',
|
|
448
|
+
}, children: [avatar ? (_jsx("img", { src: avatar, alt: "", width: 16, height: 16, loading: "lazy", style: { borderRadius: 4, flexShrink: 0, background: theme.colors.border } })) : group.owner ? (_jsx("span", { style: {
|
|
449
|
+
width: 16,
|
|
450
|
+
height: 16,
|
|
451
|
+
borderRadius: 4,
|
|
452
|
+
flexShrink: 0,
|
|
453
|
+
display: 'inline-flex',
|
|
454
|
+
alignItems: 'center',
|
|
455
|
+
justifyContent: 'center',
|
|
456
|
+
fontSize: 9,
|
|
457
|
+
fontWeight: 700,
|
|
458
|
+
fontFamily: theme.fonts.monospace,
|
|
459
|
+
color: theme.colors.text,
|
|
460
|
+
background: theme.colors.border,
|
|
461
|
+
}, children: group.owner.charAt(0).toUpperCase() })) : null, _jsx("span", { style: {
|
|
462
|
+
fontSize: theme.fontSizes[1],
|
|
463
|
+
fontFamily: theme.fonts.monospace,
|
|
464
|
+
color: theme.colors.text,
|
|
465
|
+
fontWeight: 600,
|
|
466
|
+
overflow: 'hidden',
|
|
467
|
+
textOverflow: 'ellipsis',
|
|
468
|
+
whiteSpace: 'nowrap',
|
|
469
|
+
}, children: label })] }));
|
|
416
470
|
}
|
|
417
471
|
export function SubsystemComponentGraph(props) {
|
|
418
472
|
const wrapRef = useRef(null);
|