@principal-ai/subsystems-react 0.51.4 → 0.52.0

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 (64) hide show
  1. package/dist/index.d.ts +4 -4
  2. package/dist/index.d.ts.map +1 -1
  3. package/dist/index.js +2 -2
  4. package/dist/index.js.map +1 -1
  5. package/dist/subsystem/C4Graph.d.ts +3 -7
  6. package/dist/subsystem/C4Graph.d.ts.map +1 -1
  7. package/dist/subsystem/C4Graph.js +159 -45
  8. package/dist/subsystem/C4Graph.js.map +1 -1
  9. package/dist/subsystem/C4NodeCard.d.ts +26 -26
  10. package/dist/subsystem/C4NodeCard.d.ts.map +1 -1
  11. package/dist/subsystem/C4NodeCard.js +56 -30
  12. package/dist/subsystem/C4NodeCard.js.map +1 -1
  13. package/dist/subsystem/IssueList.d.ts +1 -1
  14. package/dist/subsystem/IssueList.d.ts.map +1 -1
  15. package/dist/subsystem/IssueList.js +20 -1
  16. package/dist/subsystem/IssueList.js.map +1 -1
  17. package/dist/subsystem/SubsystemComponentGraph.d.ts.map +1 -1
  18. package/dist/subsystem/SubsystemComponentGraph.js +42 -19
  19. package/dist/subsystem/SubsystemComponentGraph.js.map +1 -1
  20. package/dist/subsystem/c4.d.ts +48 -49
  21. package/dist/subsystem/c4.d.ts.map +1 -1
  22. package/dist/subsystem/c4.js +50 -0
  23. package/dist/subsystem/c4.js.map +1 -1
  24. package/dist/subsystem/c4Evidence.d.ts +88 -84
  25. package/dist/subsystem/c4Evidence.d.ts.map +1 -1
  26. package/dist/subsystem/c4Evidence.js +113 -166
  27. package/dist/subsystem/c4Evidence.js.map +1 -1
  28. package/dist/subsystem/nodes.js +5 -5
  29. package/dist/subsystem/nodes.js.map +1 -1
  30. package/dist/subsystem/techIcons/index.d.ts +5 -0
  31. package/dist/subsystem/techIcons/index.d.ts.map +1 -1
  32. package/dist/subsystem/techIcons/index.js +3 -0
  33. package/dist/subsystem/techIcons/index.js.map +1 -1
  34. package/dist/utils/edgeLabel.d.ts +15 -1
  35. package/dist/utils/edgeLabel.d.ts.map +1 -1
  36. package/dist/utils/edgeLabel.js +25 -1
  37. package/dist/utils/edgeLabel.js.map +1 -1
  38. package/dist/utils/elkLayout.d.ts +47 -0
  39. package/dist/utils/elkLayout.d.ts.map +1 -1
  40. package/dist/utils/elkLayout.js +71 -7
  41. package/dist/utils/elkLayout.js.map +1 -1
  42. package/package.json +1 -1
  43. package/src/index.ts +8 -6
  44. package/src/stories/Subsystem/C4Graph/C4Component.stories.tsx +198 -0
  45. package/src/stories/Subsystem/C4Graph/C4Container.stories.tsx +42 -6
  46. package/src/stories/Subsystem/C4Graph/C4NodeGallery.stories.tsx +9 -7
  47. package/src/stories/Subsystem/ComponentGraph/Issues.stories.tsx +686 -2
  48. package/src/subsystem/C4Graph.tsx +242 -82
  49. package/src/subsystem/C4NodeCard.test.ts +32 -22
  50. package/src/subsystem/C4NodeCard.tsx +67 -39
  51. package/src/subsystem/IssueList.tsx +23 -0
  52. package/src/subsystem/SubsystemComponentGraph.tsx +38 -16
  53. package/src/subsystem/c4.protocolColor.test.ts +26 -0
  54. package/src/subsystem/c4.ts +76 -52
  55. package/src/subsystem/c4Evidence.test.ts +177 -237
  56. package/src/subsystem/c4Evidence.ts +160 -235
  57. package/src/subsystem/nodes.group.test.tsx +15 -0
  58. package/src/subsystem/nodes.tsx +7 -7
  59. package/src/subsystem/techIcons/index.tsx +8 -0
  60. package/src/utils/edgeLabel.test.ts +21 -2
  61. package/src/utils/edgeLabel.ts +29 -1
  62. package/src/utils/elkLayout.test.ts +16 -0
  63. package/src/utils/elkLayout.ts +119 -7
  64. package/src/stories/Subsystem/ComponentGraph/IssueOverlay.stories.tsx +0 -602
package/dist/index.d.ts CHANGED
@@ -59,10 +59,10 @@ export { C4NodeCard, nodeStyle, nodeSubtitle, nodeTag, nodeKindIcon, nodeTopLabe
59
59
  export { TechMark, technologyBrand, TECH_BRANDS } from './subsystem/techIcons';
60
60
  export type { TechBrand } from './subsystem/techIcons';
61
61
  export type { C4NodeCardProps, NodeStyle, NodeShape, C4ShapeKind } from './subsystem/C4NodeCard';
62
- export { labelFromPurl } from './subsystem/c4';
63
- export type { C4View, C4Node, C4Group, C4Edge, C4Model, C4ContainerKind, C4Container, C4Component, C4ExternalSystem, C4Person, C4Element, C4ElementSet, C4ElementState, } from './subsystem/c4';
64
- export { deriveConcerns, suggestMerges, findUnassigned, isRuntimeConstruct, proposeElements, suggestContainerKind, mergeElements, } from './subsystem/c4Evidence';
65
- export type { C4Concern, C4ConcernKind, C4MemberView } from './subsystem/c4Evidence';
62
+ export { labelFromPurl, protocolColor, PROTOCOL_COLOR, PROTOCOL_COLOR_FALLBACK } from './subsystem/c4';
63
+ export type { C4View, C4Group, C4Edge, C4Model, C4ContainerKind, C4Container, C4Component, C4ExternalSystem, C4Person, C4Element, C4ElementSet, C4ElementState, } from './subsystem/c4';
64
+ export { findUnassigned, isRuntimeConstruct, proposeElements, suggestContainerKind, verificationIssues, verifyProcessBoundaries, } from './subsystem/c4Evidence';
65
+ export type { C4MemberView, C4ProcessVerification, C4ProcessBoundaryStatus, } from './subsystem/c4Evidence';
66
66
  export { constructBadgeLabel, constructBadgeColor, rightBadgeLabel, rightBadgeColor, deriveNameFromSymbol, nodeMinWidthForBadges, deriveGraphEdges, isConstructsOnlyModel, derivedGraphEdgeId, trailStepGraphEdgeId, reorderTrails, reorderTargetIndex, isTrailMechanism, SUBSYSTEM_TRAIL_MECHANISMS, ROLE_COLOR, ROLE_LABEL, FRAMEWORK_BADGE_COLOR, PROPOSED_COLOR, } from './subsystem/model';
67
67
  export type { SubsystemDeclarationRef, SubsystemOpenFileOptions, DeclarationFreshness, } from './subsystem/declarationRef';
68
68
  export { parseSourceLocation, normalizeDeclarationLine, extractDeclarationLine, DECLARATION_HASH_ALGO, } from './subsystem/declarationRef';
@@ -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,9 +39,9 @@ export { C4Graph } from './subsystem/C4Graph';
39
39
  export { C4NodeCard, nodeStyle, nodeSubtitle, nodeTag, nodeKindIcon, nodeTopLabel, nodeShape, nodeSize, nodeMissing, NODE_W, NODE_H, COMPONENT_SIZE } from './subsystem/C4NodeCard';
40
40
  export { TechMark, technologyBrand, TECH_BRANDS } from './subsystem/techIcons';
41
41
  // --- C4 elements: authored, not derived -------------------------------
42
- export { labelFromPurl } from './subsystem/c4';
42
+ export { labelFromPurl, protocolColor, PROTOCOL_COLOR, PROTOCOL_COLOR_FALLBACK } from './subsystem/c4';
43
43
  // --- Evidence an agent reads before proposing -------------------------
44
- export { deriveConcerns, suggestMerges, findUnassigned, isRuntimeConstruct, proposeElements, suggestContainerKind, mergeElements, } from './subsystem/c4Evidence';
44
+ export { findUnassigned, isRuntimeConstruct, proposeElements, suggestContainerKind, verificationIssues, verifyProcessBoundaries, } from './subsystem/c4Evidence';
45
45
  export { constructBadgeLabel, constructBadgeColor, rightBadgeLabel, rightBadgeColor, deriveNameFromSymbol, nodeMinWidthForBadges, deriveGraphEdges, isConstructsOnlyModel, derivedGraphEdgeId, trailStepGraphEdgeId, reorderTrails, reorderTargetIndex, isTrailMechanism, SUBSYSTEM_TRAIL_MECHANISMS, ROLE_COLOR, ROLE_LABEL, FRAMEWORK_BADGE_COLOR, PROPOSED_COLOR, } from './subsystem/model';
46
46
  export { parseSourceLocation, normalizeDeclarationLine, extractDeclarationLine, DECLARATION_HASH_ALGO, } from './subsystem/declarationRef';
47
47
  export { setPrettierProvider, getPrettierProvider, } from './subsystem/prettierProvider';
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,sEAAsE;AACtE,OAAO,EACL,gBAAgB,EAChB,uBAAuB,GACxB,MAAM,6BAA6B,CAAC;AAOrC,yEAAyE;AACzE,OAAO,EAAE,gBAAgB,EAAE,iBAAiB,EAAE,MAAM,8BAA8B,CAAC;AAyCnF,OAAO,EACL,sBAAsB,EACtB,0BAA0B,EAC1B,sBAAsB,EACtB,mBAAmB,EACnB,cAAc,EACd,gBAAgB,EAChB,mBAAmB,EACnB,sBAAsB,EACtB,mBAAmB,EACnB,0BAA0B,EAC1B,eAAe,EACf,qBAAqB,EACrB,iBAAiB,EACjB,wBAAwB,EACxB,iBAAiB,GAClB,MAAM,YAAY,CAAC;AAWpB,uBAAuB;AACvB,OAAO,EAAE,gBAAgB,EAAE,iBAAiB,EAAE,MAAM,mBAAmB,CAAC;AAExE,OAAO,EACL,gBAAgB,EAChB,iBAAiB,EACjB,oBAAoB,EACpB,uBAAuB,EACvB,mBAAmB,GACpB,MAAM,mBAAmB,CAAC;AAC3B,OAAO,EAAE,YAAY,EAAE,oBAAoB,EAAE,MAAM,sBAAsB,CAAC;AAG1E,4BAA4B;AAC5B,OAAO,EAAE,uBAAuB,EAAE,MAAM,qCAAqC,CAAC;AAE9E,OAAO,EAAE,wBAAwB,EAAE,MAAM,sCAAsC,CAAC;AAKhF,OAAO,EAAE,uBAAuB,EAAE,MAAM,qCAAqC,CAAC;AAQ9E,OAAO,EAAE,iBAAiB,EAAE,MAAM,+BAA+B,CAAC;AAOlE,OAAO,EAAE,oBAAoB,EAAE,MAAM,kCAAkC,CAAC;AACxE,OAAO,EAAE,oBAAoB,EAAE,MAAM,kCAAkC,CAAC;AAExE,OAAO,EACL,4BAA4B,EAC5B,mBAAmB,GACpB,MAAM,wBAAwB,CAAC;AAShC,OAAO,EACL,yBAAyB,EACzB,qBAAqB,EACrB,eAAe,GAChB,MAAM,8BAA8B,CAAC;AAMtC,OAAO,EACL,kBAAkB,EAClB,kBAAkB,EAClB,mBAAmB,EACnB,qBAAqB,EACrB,aAAa,EACb,cAAc,EACd,iBAAiB,EACjB,cAAc,EACd,aAAa,EACb,YAAY,EACZ,0BAA0B,EAC1B,8BAA8B,GAC/B,MAAM,uBAAuB,CAAC;AAa/B,yEAAyE;AACzE,OAAO,EAAE,oBAAoB,EAAE,MAAM,yBAAyB,CAAC;AAK/D,OAAO,EACL,eAAe,EACf,eAAe,EACf,wBAAwB,EACxB,uBAAuB,EACvB,uBAAuB,EACvB,gCAAgC,EAChC,SAAS,EACT,eAAe,GAChB,MAAM,mBAAmB,CAAC;AAC3B,OAAO,EAAE,cAAc,EAAE,oBAAoB,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AACvF,OAAO,EAAE,eAAe,EAAE,cAAc,EAAE,8BAA8B,EAAE,MAAM,0BAA0B,CAAC;AAC3G,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,EACL,WAAW,EACX,mBAAmB,EACnB,qBAAqB,GACtB,MAAM,yBAAyB,CAAC;AAEjC,OAAO,EAAE,cAAc,EAAE,MAAM,wBAAwB,CAAC;AACxD,OAAO,EAAE,gBAAgB,EAAE,MAAM,8BAA8B,CAAC;AAEhE,OAAO,EACL,sBAAsB,EACtB,0BAA0B,GAC3B,MAAM,mBAAmB,CAAC;AAuB3B,0EAA0E;AAC1E,OAAO,EAAE,OAAO,EAAE,MAAM,qBAAqB,CAAC;AAE9C,OAAO,EAAE,UAAU,EAAE,SAAS,EAAE,YAAY,EAAE,OAAO,EAAE,YAAY,EAAE,YAAY,EAAE,SAAS,EAAE,QAAQ,EAAE,WAAW,EAAE,MAAM,EAAE,MAAM,EAAE,cAAc,EAAE,MAAM,wBAAwB,CAAC;AACpL,OAAO,EAAE,QAAQ,EAAE,eAAe,EAAE,WAAW,EAAE,MAAM,uBAAuB,CAAC;AAG/E,yEAAyE;AACzE,OAAO,EAAE,aAAa,EAAE,MAAM,gBAAgB,CAAC;AAgB/C,yEAAyE;AACzE,OAAO,EACL,cAAc,EACd,aAAa,EACb,cAAc,EACd,kBAAkB,EAClB,eAAe,EACf,oBAAoB,EACpB,aAAa,GACd,MAAM,wBAAwB,CAAC;AAEhC,OAAO,EACL,mBAAmB,EACnB,mBAAmB,EACnB,eAAe,EACf,eAAe,EACf,oBAAoB,EACpB,qBAAqB,EACrB,gBAAgB,EAChB,qBAAqB,EACrB,kBAAkB,EAClB,oBAAoB,EACpB,aAAa,EACb,kBAAkB,EAClB,gBAAgB,EAChB,0BAA0B,EAC1B,UAAU,EACV,UAAU,EACV,qBAAqB,EACrB,cAAc,GACf,MAAM,mBAAmB,CAAC;AAM3B,OAAO,EACL,mBAAmB,EACnB,wBAAwB,EACxB,sBAAsB,EACtB,qBAAqB,GACtB,MAAM,4BAA4B,CAAC;AACpC,OAAO,EACL,mBAAmB,EACnB,mBAAmB,GACpB,MAAM,8BAA8B,CAAC;AAGtC,6CAA6C;AAC7C,OAAO,EAAE,cAAc,EAAE,iBAAiB,EAAE,mBAAmB,EAAE,kBAAkB,EAAE,4BAA4B,EAAE,MAAM,UAAU,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
@@ -17,13 +17,9 @@ export interface C4GraphProps {
17
17
  title?: string;
18
18
  onSelectNode?: (id: string | null) => void;
19
19
  /**
20
- * Extra width / height reserved around each card when laying out, in flow px.
21
- * The visible gap between boxes is `2 × gutter` (ELK's `nodeNode` spacing,
22
- * plus the frame padding where a frame adds one).
23
- *
24
- * Above the default 28 the `needs …` gap row was removed, so cards are
25
- * shorter and packing them tighter than the spacing they were tuned at makes
26
- * them collide. Raise it for a more airy graph.
20
+ * Breathing room around each card, in flow px, applied as ELK spacing (not by
21
+ * inflating the node box — that left the edge lines starting short of the
22
+ * card border). `nodeSpacing` is `2 × gutter`; `edgeNodeSpacing` is `gutter`.
27
23
  * @default 28
28
24
  */
29
25
  gutter?: number;
@@ -1 +1 @@
1
- {"version":3,"file":"C4Graph.d.ts","sourceRoot":"","sources":["../../src/subsystem/C4Graph.tsx"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;;AAsBH,OAAO,KAAK,EAAE,OAAO,EAAU,MAAM,MAAM,CAAC;AAE5C,MAAM,WAAW,YAAY;IAC3B,KAAK,EAAE,OAAO,CAAC;IACf,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,YAAY,CAAC,EAAE,CAAC,EAAE,EAAE,MAAM,GAAG,IAAI,KAAK,IAAI,CAAC;IAC3C;;;;;;;;;OASG;IACH,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAqhBD,wBAAgB,OAAO,CAAC,KAAK,EAAE,YAAY,+BAM1C"}
1
+ {"version":3,"file":"C4Graph.d.ts","sourceRoot":"","sources":["../../src/subsystem/C4Graph.tsx"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;;AAsBH,OAAO,KAAK,EAAa,OAAO,EAAE,MAAM,MAAM,CAAC;AAE/C,MAAM,WAAW,YAAY;IAC3B,KAAK,EAAE,OAAO,CAAC;IACf,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,YAAY,CAAC,EAAE,CAAC,EAAE,EAAE,MAAM,GAAG,IAAI,KAAK,IAAI,CAAC;IAC3C;;;;;OAKG;IACH,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAyrBD,wBAAgB,OAAO,CAAC,KAAK,EAAE,YAAY,+BAM1C"}
@@ -15,18 +15,13 @@ import { useEffect, useMemo, useState } from 'react';
15
15
  import { Handle, MarkerType, Position, ReactFlow, ReactFlowProvider, useReactFlow, useViewport, } from '@xyflow/react';
16
16
  import { useTheme } from '@principal-ade/industry-theme';
17
17
  import { computeElkLayout, pointAlongPath, pointsToSmoothPath } from '../utils/elkLayout';
18
- import { EDGE_LABEL_FONT_SIZE, EDGE_LABEL_HEIGHT, EDGE_LABEL_WIDTH } from '../utils/edgeLabel';
19
- import { MECHANISM_COLOR } from './model';
20
- import { C4NodeCard, NODE_H, NODE_W, nodeSize, nodeStyle } from './C4NodeCard';
18
+ import { EDGE_LABEL_FONT_SIZE, EDGE_LABEL_HEIGHT, C4_LABEL_WIDTH, estimateEdgeLabelWidth } from '../utils/edgeLabel';
19
+ import { protocolColor } from './c4';
20
+ import { C4NodeCard, NODE_H, NODE_W, nodeSize } from './C4NodeCard';
21
21
  import { GRAPH_CANVAS_CLASS, GRAPH_NAV_PROPS, GraphChrome, GraphLayerStyle } from './graphChrome';
22
- function edgeColor(mechanism, fallback) {
23
- if (!mechanism)
24
- return fallback;
25
- return MECHANISM_COLOR[mechanism] ?? fallback;
26
- }
27
22
  function C4NodeView(props) {
28
- const { node, selected } = props.data;
29
- return (_jsx(C4NodeCard, { node: node, selected: selected, handles: _jsxs(_Fragment, { children: [_jsx(Handle, { type: "target", position: Position.Left, style: { opacity: 0 } }), _jsx(Handle, { type: "source", position: Position.Right, style: { opacity: 0 } })] }) }));
23
+ const { element, selected } = props.data;
24
+ return (_jsx(C4NodeCard, { node: element, selected: selected, handles: _jsxs(_Fragment, { children: [_jsx(Handle, { type: "target", position: Position.Left, style: { opacity: 0 } }), _jsx(Handle, { type: "source", position: Position.Right, style: { opacity: 0 } })] }) }));
30
25
  }
31
26
  /**
32
27
  * Edge-label overlay.
@@ -36,7 +31,7 @@ function C4NodeView(props) {
36
31
  * never drift from the edges it sits on. Positions are ELK's computed label
37
32
  * anchors (`edgeLabelPositions`), in flow coordinates.
38
33
  */
39
- function C4EdgeLabels({ positions, edges, muted, }) {
34
+ function C4EdgeLabels({ positions, edges, }) {
40
35
  const { theme } = useTheme();
41
36
  const viewport = useViewport();
42
37
  const surface = theme.colors.backgroundSecondary ?? theme.colors.background;
@@ -51,7 +46,7 @@ function C4EdgeLabels({ positions, edges, muted, }) {
51
46
  const edge = byId.get(id);
52
47
  if (!edge)
53
48
  return null;
54
- const color = edgeColor(edge.mechanisms[0], muted);
49
+ const color = protocolColor(edge.protocol);
55
50
  const text = edge.protocol ?? edge.label;
56
51
  return (_jsxs("div", { style: {
57
52
  position: 'absolute',
@@ -62,7 +57,7 @@ function C4EdgeLabels({ positions, edges, muted, }) {
62
57
  display: 'flex',
63
58
  alignItems: 'center',
64
59
  justifyContent: 'center',
65
- width: EDGE_LABEL_WIDTH,
60
+ width: estimateEdgeLabelWidth(text),
66
61
  height: EDGE_LABEL_HEIGHT,
67
62
  boxSizing: 'border-box',
68
63
  padding: '7px 8px',
@@ -158,12 +153,15 @@ function Inner({ model, title, onSelectNode, gutter = 28 }) {
158
153
  let alive = true;
159
154
  setReady(false);
160
155
  setSelectedId(null);
161
- // Per-kind size, so a square component is laid out as a square. Feeding the
162
- // container dimensions for everything would make ELK reserve 250x150 of
163
- // space around a 140x140 box and space the component view twice as far
164
- // apart as it needs. `gutter` is added here, not passed as node spacing, so
165
- // a frame's padding clears the card inside it by the same margin.
166
- const rfNodes = model.nodes.map((n, i) => {
156
+ // Draw only the elements for this view. A container diagram shows the
157
+ // runtime units (containers, externals, people); components belong to the
158
+ // component view. Components are still carried on the model (see the side
159
+ // panel), just not drawn here.
160
+ const inView = (n) => model.view === 'component' ? n.kind !== 'container' : n.kind !== 'component';
161
+ // Layout against the true card size, so ELK's ports sit on the card's
162
+ // border — an inflated box leaves the line starting short of the card edge.
163
+ // The `gutter` becomes ELK spacing instead (see `nodeSpacing` below).
164
+ const rfNodes = model.nodes.filter(inView).map((n, i) => {
167
165
  const size = nodeSize(n);
168
166
  return {
169
167
  id: n.id,
@@ -171,10 +169,10 @@ function Inner({ model, title, onSelectNode, gutter = 28 }) {
171
169
  // Fallback grid pitch uses the container box — the largest, so the
172
170
  // pre-layout positions never overlap. ELK replaces them on success.
173
171
  position: { x: (i % 5) * (NODE_W + 44), y: Math.floor(i / 5) * (NODE_H + 44) },
174
- width: size.width + gutter,
175
- height: size.height + gutter,
172
+ width: size.width,
173
+ height: size.height,
176
174
  ...(n.parentId ? { parentId: n.parentId } : {}),
177
- data: { node: n, selected: false },
175
+ data: { element: n, selected: false },
178
176
  };
179
177
  });
180
178
  const groups = model.groups.map((g) => ({
@@ -182,9 +180,31 @@ function Inner({ model, title, onSelectNode, gutter = 28 }) {
182
180
  memberIds: g.memberIds,
183
181
  ...(g.parentId ? { parentId: g.parentId } : {}),
184
182
  }));
183
+ // Band nodes so a flat layout still reads as C4 and frames can't interleave.
184
+ //
185
+ // Flat mode has no ELK parents, so without bands ELK mixes members of
186
+ // different frames across the whole graph — their synthesized bounding
187
+ // boxes then overlap. A partition per frame keeps each frame's members
188
+ // contiguous; people lead, externals trail.
189
+ //
190
+ // Order (ascending = earlier in the layout direction): people, then each
191
+ // frame in model order, then external systems.
192
+ const frameIds = model.groups.map((g) => g.id);
193
+ const frameIndex = new Map(frameIds.map((id, i) => [id, i]));
194
+ const partitionByNode = new Map(model.nodes.map((n) => {
195
+ if (n.kind === 'person')
196
+ return [n.id, 0];
197
+ if (n.kind === 'external-system')
198
+ return [n.id, frameIds.length + 1];
199
+ // A node inside a frame shares its frame's band; a frame-less node
200
+ // (a container at container view) gets its own by id order.
201
+ const band = n.parentId ? (frameIndex.get(n.parentId) ?? 0) : (frameIndex.get(n.id) ?? 0);
202
+ return [n.id, 1 + band];
203
+ }));
185
204
  const rfEdges = model.edges.map((e) => {
186
- // Every edge here came from a trail step, so the mechanism colours apply.
187
- const color = edgeColor(e.mechanisms[0], muted);
205
+ // Colour keys off the protocol, not the trail verb: on a container
206
+ // diagram the transport is what a reader distinguishes at a glance.
207
+ const color = protocolColor(e.protocol);
188
208
  return {
189
209
  id: e.id,
190
210
  type: 'c4-edge',
@@ -203,7 +223,22 @@ function Inner({ model, title, onSelectNode, gutter = 28 }) {
203
223
  preserveNodePositions: false,
204
224
  groups,
205
225
  keepSingletonGroups: true,
206
- edgeLabels: { enabled: true, placement: 'CENTER' },
226
+ edgeLabels: { enabled: true, placement: 'CENTER', width: C4_LABEL_WIDTH, measure: estimateEdgeLabelWidth },
227
+ // The gutter that used to inflate each node box is now real spacing, so
228
+ // the ports still sit on the card edge.
229
+ nodeSpacing: gutter * 2,
230
+ edgeNodeSpacing: gutter,
231
+ // Between-layer/between-partition gap. This is what keeps the external
232
+ // band clear of the system frame's padding — ELK gives partitions zero
233
+ // default separation. It stacks on top of ELK's reserved label layer, so
234
+ // it is kept modest.
235
+ interLayerSpacing: 40,
236
+ // Draw the system frame as a decoration around the boxes rather than an
237
+ // ELK parent. Nesting made in-frame edges inherit the frame's padding and
238
+ // spacing, so they ran longer than a root-level edge touching the same
239
+ // nodes; flattening gives every edge one spacing.
240
+ flatGroups: true,
241
+ partitionByNode,
207
242
  })
208
243
  .then((result) => {
209
244
  if (!alive)
@@ -233,15 +268,26 @@ function Inner({ model, title, onSelectNode, gutter = 28 }) {
233
268
  }
234
269
  return d;
235
270
  };
271
+ // Shell positions from flat synthesis are absolute. React Flow reads a
272
+ // child's `position` as relative to its parent, so a shell nested in
273
+ // another shell must be made relative to it.
274
+ const shellAbs = new Map(result.groupBounds);
275
+ const shellOrigin = (id) => {
276
+ if (!id)
277
+ return { x: 0, y: 0 };
278
+ const b = shellAbs.get(id);
279
+ return b ? { x: b.x, y: b.y } : { x: 0, y: 0 };
280
+ };
236
281
  const shells = [...result.groupBounds.entries()]
237
282
  .sort((a, b) => depthOf(a[0]) - depthOf(b[0]))
238
283
  .map(([id, b]) => {
239
284
  const def = groupById.get(id);
240
285
  const parentId = def?.parentId && builtGroups.has(def.parentId) ? def.parentId : undefined;
286
+ const origin = shellOrigin(parentId);
241
287
  return {
242
288
  id,
243
289
  type: 'c4-group',
244
- position: { x: b.x, y: b.y },
290
+ position: { x: b.x - origin.x, y: b.y - origin.y },
245
291
  width: Math.max(200, b.width),
246
292
  height: Math.max(120, b.height),
247
293
  draggable: false,
@@ -256,13 +302,20 @@ function Inner({ model, title, onSelectNode, gutter = 28 }) {
256
302
  });
257
303
  const leaves = rfNodes.map((n) => {
258
304
  const p = positioned.get(n.id);
259
- const node = p ? { ...n, position: { x: p.position.x, y: p.position.y } } : n;
260
- const parentId = node.parentId;
261
- if (parentId && !builtGroups.has(parentId)) {
262
- const { parentId: _drop, ...rest } = node;
263
- return rest;
305
+ // Absolute flow position from the flat layout.
306
+ const abs = p ? p.position : n.position;
307
+ // Re-parent to the shell this node sits in, if any: a component's
308
+ // container, or a container's system frame. React Flow positions a
309
+ // child relative to its parent, so subtract the shell origin.
310
+ let parentId;
311
+ if (n.data && typeof n.data === 'object') {
312
+ const modelNode = n.data.element;
313
+ if (modelNode?.parentId && builtGroups.has(modelNode.parentId))
314
+ parentId = modelNode.parentId;
264
315
  }
265
- return node;
316
+ const origin = shellOrigin(parentId);
317
+ const node = { ...n, position: { x: abs.x - origin.x, y: abs.y - origin.y } };
318
+ return (parentId ? { ...node, parentId } : { ...node, parentId: undefined });
266
319
  });
267
320
  setNodes([...shells, ...leaves]);
268
321
  setRfEdges(withPaths);
@@ -284,10 +337,22 @@ function Inner({ model, title, onSelectNode, gutter = 28 }) {
284
337
  // eslint-disable-next-line react-hooks/exhaustive-deps
285
338
  }, [layoutKey]);
286
339
  const selected = useMemo(() => model.nodes.find((n) => n.id === selectedId) ?? null, [model, selectedId]);
340
+ /**
341
+ * The components authored inside the selected element, if it is a container.
342
+ * These are `C4Component`s whose `container` names the selected id (or, once
343
+ * flattened, whose `parentId` does). Shown in the panel so a container can be
344
+ * inspected without zooming the diagram into its components.
345
+ */
346
+ const selectedComponents = useMemo(() => selected
347
+ ? model.nodes.filter((n) => n.kind === 'component' &&
348
+ (n.container === selected.id || n.parentId === selected.id))
349
+ : [], [model, selected]);
287
350
  const displayNodes = useMemo(() => nodes.map((n) => n.type === 'c4-node'
288
351
  ? { ...n, data: { ...n.data, selected: n.id === selectedId } }
289
352
  : n), [nodes, selectedId]);
290
- const runtime = model.nodes.filter((n) => n.kind === 'container' || n.kind === 'component').length;
353
+ // What the current view draws: runtime units at container level, components
354
+ // at component level. Mirrors the `inView` filter used for the nodes.
355
+ const runtime = model.nodes.filter((n) => model.view === 'component' ? n.kind === 'component' : n.kind === 'container').length;
291
356
  const outside = model.nodes.filter((n) => n.kind === 'external-system' || n.kind === 'person').length;
292
357
  return (_jsxs("div", { style: { position: 'relative', width: '100%', height: '100%', background: theme.colors.background }, children: [_jsx(GraphLayerStyle, {}), _jsx(ReactFlow, { nodes: displayNodes, edges: rfEdges, nodeTypes: nodeTypes, edgeTypes: edgeTypes, className: GRAPH_CANVAS_CLASS, ...GRAPH_NAV_PROPS, onNodeClick: (_e, node) => {
293
358
  if (node.type !== 'c4-node')
@@ -302,7 +367,7 @@ function Inner({ model, title, onSelectNode, gutter = 28 }) {
302
367
  // Pin the flow to its container. The label overlay is a sibling sized
303
368
  // `inset: 0`, so the two must share an origin or `viewport.y` (measured
304
369
  // in the flow's own box) lands the chips off vertically.
305
- style: { width: '100%', height: '100%' }, children: _jsx(GraphChrome, {}) }), ready && labelPositions.size > 0 && (_jsx(C4EdgeLabels, { positions: labelPositions, edges: model.edges, muted: muted })), !ready && (_jsx("div", { style: {
370
+ style: { width: '100%', height: '100%' }, children: _jsx(GraphChrome, {}) }), ready && labelPositions.size > 0 && (_jsx(C4EdgeLabels, { positions: labelPositions, edges: model.edges })), !ready && (_jsx("div", { style: {
306
371
  position: 'absolute',
307
372
  inset: 0,
308
373
  display: 'flex',
@@ -334,27 +399,76 @@ function Inner({ model, title, onSelectNode, gutter = 28 }) {
334
399
  border: `1px solid ${theme.colors.border ?? '#333'}`,
335
400
  borderRadius: 8,
336
401
  padding: '10px 12px',
337
- }, children: [_jsxs("div", { style: { display: 'flex', alignItems: 'center', gap: 8 }, children: [_jsx("span", { style: { fontWeight: 600, color: theme.colors.text, flex: 1, minWidth: 0, overflow: 'hidden', textOverflow: 'ellipsis', whiteSpace: 'nowrap' }, children: selected.label }), _jsx("button", { type: "button", onClick: () => {
402
+ }, children: [_jsxs("div", { style: { display: 'flex', alignItems: 'center', gap: 8 }, children: [_jsx("span", { style: { fontFamily: theme.fonts.monospace, fontWeight: 600, color: theme.colors.text, flex: 1, minWidth: 0, overflow: 'hidden', textOverflow: 'ellipsis', whiteSpace: 'nowrap' }, children: selected.label }), _jsx("button", { type: "button", onClick: () => {
338
403
  setSelectedId(null);
339
404
  onSelectNode?.(null);
340
- }, "aria-label": "Clear selection", style: { border: 'none', background: 'transparent', color: muted, cursor: 'pointer', fontSize: theme.fontSizes[2], lineHeight: 1 }, children: "\u00D7" })] }), _jsxs("div", { style: { fontFamily: theme.fonts.monospace, fontSize: theme.fontSizes[0], color: muted, margin: '4px 0 8px' }, children: [selected.kind, " \u00B7 ", selected.members.length, " component", selected.members.length === 1 ? '' : 's', selected.models && selected.models.length > 0 ? ` · ${selected.models.length} model${selected.models.length === 1 ? '' : 's'}` : ''] }), selected.kind === 'container' && (_jsxs("div", { style: {
405
+ }, "aria-label": "Clear selection", style: { border: 'none', background: 'transparent', color: muted, cursor: 'pointer', fontSize: theme.fontSizes[2], lineHeight: 1 }, children: "\u00D7" })] }), selected.kind !== 'person' &&
406
+ (() => {
407
+ const technology = selected.technology;
408
+ return (_jsx("div", { style: {
409
+ fontFamily: theme.fonts.monospace,
410
+ fontSize: theme.fontSizes[0],
411
+ color: technology ? muted : (theme.colors.warning ?? '#e8a33a'),
412
+ margin: '4px 0 8px',
413
+ }, children: technology ?? 'technology: not stated' }));
414
+ })(), selected.kind === 'container' && selected.process && (_jsxs("div", { style: {
341
415
  fontFamily: theme.fonts.monospace,
342
416
  fontSize: theme.fontSizes[0],
343
417
  color: muted,
344
418
  borderTop: `1px solid ${theme.colors.border ?? '#333'}`,
345
419
  paddingTop: 6,
346
420
  marginBottom: 8,
421
+ whiteSpace: 'normal',
422
+ lineHeight: 1.4,
423
+ }, children: ["verifies process: ", selected.process] })), selected.kind === 'container' && selectedComponents.length > 0 && (_jsxs("div", { style: {
347
424
  display: 'flex',
348
425
  flexDirection: 'column',
349
- gap: 3,
350
- }, children: [_jsxs("span", { style: { color: nodeStyle(selected, theme).color }, children: [selected.state, selected.containerKind ? ` · ${selected.containerKind}` : ` · ${selected.kind}`] }), selected.technology ? (_jsxs("span", { children: ["technology: ", selected.technology] })) : (_jsx("span", { style: { color: theme.colors.warning ?? '#e8a33a' }, children: "technology: not stated" })), selected.description ? (_jsx("span", { style: { whiteSpace: 'normal', lineHeight: 1.4 }, children: selected.description })) : (_jsx("span", { style: { color: theme.colors.warning ?? '#e8a33a' }, children: "description: not stated" })), selected.derivedFrom && selected.derivedFrom.length > 1 && (_jsxs("span", { style: { whiteSpace: 'normal', lineHeight: 1.4 }, children: ["consolidated from: ", selected.derivedFrom.join(', ')] }))] })), _jsx("div", { style: { display: 'flex', flexDirection: 'column', gap: 2 }, children: selected.members.map((alias) => (_jsx("span", { title: alias, style: {
351
- fontFamily: theme.fonts.monospace,
352
- fontSize: theme.fontSizes[0],
353
- color: theme.colors.text,
354
- overflow: 'hidden',
355
- textOverflow: 'ellipsis',
356
- whiteSpace: 'nowrap',
357
- }, children: alias }, alias))) })] }))] }));
426
+ gap: 6,
427
+ borderTop: `1px solid ${theme.colors.border ?? '#333'}`,
428
+ paddingTop: 8,
429
+ }, children: [_jsx("span", { style: {
430
+ fontFamily: theme.fonts.monospace,
431
+ fontSize: theme.fontSizes[0],
432
+ color: muted,
433
+ textTransform: 'uppercase',
434
+ letterSpacing: 0.5,
435
+ }, children: "Components" }), selectedComponents.map((c) => (_jsxs("div", { style: { display: 'flex', flexDirection: 'column', gap: 1 }, children: [_jsx("span", { title: c.description ?? c.label, style: {
436
+ fontFamily: theme.fonts.body,
437
+ color: theme.colors.text,
438
+ overflow: 'hidden',
439
+ textOverflow: 'ellipsis',
440
+ whiteSpace: 'nowrap',
441
+ }, children: c.label }), _jsxs("span", { style: {
442
+ fontFamily: theme.fonts.monospace,
443
+ fontSize: theme.fontSizes[0],
444
+ color: muted,
445
+ overflow: 'hidden',
446
+ textOverflow: 'ellipsis',
447
+ whiteSpace: 'nowrap',
448
+ }, children: ['technology' in c && c.technology ? c.technology : c.kind, (c.members ?? []).length > 0 ? ` · ${(c.members ?? []).length} member${(c.members ?? []).length === 1 ? '' : 's'}` : ''] })] }, c.id)))] })), selected.kind === 'container' && selectedComponents.length === 0 && (_jsxs("div", { style: {
449
+ display: 'flex',
450
+ flexDirection: 'column',
451
+ gap: 6,
452
+ borderTop: `1px solid ${theme.colors.border ?? '#333'}`,
453
+ paddingTop: 8,
454
+ }, children: [_jsx("span", { style: {
455
+ fontFamily: theme.fonts.monospace,
456
+ fontSize: theme.fontSizes[0],
457
+ color: muted,
458
+ textTransform: 'uppercase',
459
+ letterSpacing: 0.5,
460
+ }, children: "Components" }), (selected.members ?? []).length > 0 ? ((selected.members ?? []).map((alias) => (_jsx("span", { title: alias, style: {
461
+ fontFamily: theme.fonts.monospace,
462
+ fontSize: theme.fontSizes[0],
463
+ color: theme.colors.text,
464
+ overflow: 'hidden',
465
+ textOverflow: 'ellipsis',
466
+ whiteSpace: 'nowrap',
467
+ }, children: alias }, alias)))) : (_jsx("span", { style: {
468
+ fontFamily: theme.fonts.monospace,
469
+ fontSize: theme.fontSizes[0],
470
+ color: muted,
471
+ }, children: "No components" }))] }))] }))] }));
358
472
  }
359
473
  export function C4Graph(props) {
360
474
  return (_jsx(ReactFlowProvider, { children: _jsx(Inner, { ...props }) }));
@@ -1 +1 @@
1
- {"version":3,"file":"C4Graph.js","sourceRoot":"","sources":["../../src/subsystem/C4Graph.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"C4Graph.js","sourceRoot":"","sources":["../../src/subsystem/C4Graph.tsx"],"names":[],"mappings":"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"}