@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
@@ -1,18 +1,23 @@
1
1
  /**
2
- * C4 evidence — what an agent needs in order to propose elements.
2
+ * C4 evidence — the pure read-side of proposing and verifying C4 containers.
3
3
  *
4
- * This module does not decide anything. It answers "what is worth asking
5
- * about?" so an agent can go and read the source, then propose a
6
- * `C4Element` with a rationale. The questions come from the C4 notation
7
- * rules the document cannot satisfy on its own:
4
+ * This module does not decide anything. The proposing agent reads the
5
+ * subsystem diagrams, queries the existing containers, reasons, and writes
6
+ * its own rationale; what lives here is only the mechanical part of that
7
+ * loop:
8
8
  *
9
- * - every container needs a technology
10
- * - every element needs a description
11
- * - a container is a runtime boundary, so a library is not one
12
- * - a container cannot straddle two software systems
9
+ * - `proposeElements` — the proposal scaffold: skip keys containers
10
+ * already claim, skip boundaries no container can be discerned from
11
+ * (no runtime code behind them)
12
+ * - `verifyProcessBoundaries` — a boundary's verification status, read
13
+ * off the claiming container
14
+ * - `verificationIssues` — those statuses as dynamic-topology findings,
15
+ * so verification surfaces through the standard diagnostics pipeline
16
+ * - `findUnassigned` — runtime components no `process` names at all
13
17
  *
14
- * The output is a set of concerns. Resolving one is the agent's job, and the
15
- * answer lands in an element's `rationale`.
18
+ * Judgements — is this the same unit under a different name? is one function
19
+ * a deployable unit? — belong to the agent and the human, never to a
20
+ * matcher.
16
21
  */
17
22
  /** Constructs that execute at runtime — the only things a container can be. */
18
23
  const RUNTIME_CONSTRUCTS = new Set(['function', 'class', 'custom_entity']);
@@ -24,105 +29,6 @@ function storageOf(m) {
24
29
  export function isRuntimeConstruct(construct) {
25
30
  return RUNTIME_CONSTRUCTS.has(construct);
26
31
  }
27
- /**
28
- * Derive the questions worth asking about one candidate element.
29
- *
30
- * Pure over the rollup, so it runs identically against a single model, the 40
31
- * composed models, or a fixture. Pure *questions* — it never proposes an
32
- * answer, because the answers are architectural.
33
- */
34
- export function deriveConcerns(key, members, tech = { frameworks: [] }) {
35
- const out = [];
36
- const aliases = members.map((m) => m.alias);
37
- const runtime = members.filter((m) => isRuntimeConstruct(m.construct));
38
- if (members.length === 1) {
39
- out.push({
40
- target: key,
41
- kind: 'singleton',
42
- message: `process "${key}" has exactly one member (${aliases[0]}) — a lone function is not a deployable unit`,
43
- members: aliases,
44
- });
45
- }
46
- // No member executes at runtime ⇒ this cannot be a deployable unit,
47
- // regardless of how many members it has. A lone interface and a package of
48
- // interfaces fail the same way.
49
- if (members.length > 0 && runtime.length === 0) {
50
- out.push({
51
- target: key,
52
- kind: 'library_shaped',
53
- message: `process "${key}" has ${members.length} member(s) but none execute at runtime (${[...new Set(members.map((m) => m.construct))].join(', ')}) — this reads as a library, not a container`,
54
- members: aliases,
55
- });
56
- }
57
- if (runtime.length > 0 && tech.frameworks.length === 0) {
58
- out.push({
59
- target: key,
60
- kind: 'missing_technology',
61
- message: `container "${key}" has no framework signal — C4 requires a technology on every container`,
62
- members: aliases,
63
- });
64
- }
65
- const repos = new Set(members
66
- .map((m) => (m.purl ?? '').split('#')[0])
67
- .filter((r) => r && !r.startsWith('external:')));
68
- if (repos.size > 1) {
69
- out.push({
70
- target: key,
71
- kind: 'spans_repos',
72
- message: `process "${key}" spans ${repos.size} repo keys (${[...repos].join(', ')}) — a C4 container cannot straddle a system boundary`,
73
- members: aliases,
74
- });
75
- }
76
- const unclassified = members.filter((m) => m.construct === 'store' && !storageOf(m));
77
- if (unclassified.length > 0) {
78
- out.push({
79
- target: key,
80
- kind: 'store_unclassified',
81
- message: `${unclassified.length} store(s) in "${key}" declare no storage kind (${unclassified.map((m) => m.alias).join(', ')}) — decide whether each is a C4 data store or an internal detail`,
82
- members: unclassified.map((m) => m.alias),
83
- });
84
- }
85
- const unidentified = members.filter((m) => m.construct === 'external' && (!m.purl || m.purl === 'external' || m.purl.startsWith('external:proposed')));
86
- if (unidentified.length > 0) {
87
- out.push({
88
- target: key,
89
- kind: 'external_unidentified',
90
- message: `${unidentified.length} external(s) have no resolvable identity (${unidentified.map((m) => m.alias).join(', ')}) — a C4 box named "external" is not a diagram`,
91
- members: unidentified.map((m) => m.alias),
92
- });
93
- }
94
- return out;
95
- }
96
- /**
97
- * Suggest merges between keys that share a trailing role.
98
- *
99
- * `subsystems-studio/host` and `principal-studio/host` are the same role under
100
- * two app names. This is a *question*, never a merge — only the user knows
101
- * whether they are one process or two.
102
- */
103
- export function suggestMerges(rollup) {
104
- const byRole = new Map();
105
- for (const { key } of rollup) {
106
- const slash = key.lastIndexOf('/');
107
- if (slash <= 0)
108
- continue; // a bare key has no app/role shape
109
- const role = key.slice(slash + 1);
110
- const list = byRole.get(role) ?? [];
111
- list.push(key);
112
- byRole.set(role, list);
113
- }
114
- const out = [];
115
- for (const [role, keys] of [...byRole].sort((a, b) => a[0].localeCompare(b[0]))) {
116
- if (keys.length < 2)
117
- continue;
118
- out.push({
119
- role,
120
- keys: [...keys].sort(),
121
- reason: `${keys.length} process keys end in "/${role}" (${[...keys].sort().join(', ')}) — one deployable unit under two names, or two units?`,
122
- });
123
- }
124
- return out;
125
- }
126
32
  /**
127
33
  * Runtime components that state no `process` at all.
128
34
  *
@@ -134,69 +40,112 @@ export function findUnassigned(members) {
134
40
  return members.filter((m) => !m.process && isRuntimeConstruct(m.construct));
135
41
  }
136
42
  /**
137
- * Fold a decided merge into an element set.
43
+ * Read a process boundary's verification off its container assignment.
138
44
  *
139
- * Two process keys that are really one container become ONE element holding
140
- * both sets of members. The survivor keeps the id, label, and confirmed
141
- * attributes; the other disappears and its members move across.
45
+ * The claimant is the container whose `process` equals the boundary's key —
46
+ * a plain string match, no indirection. Two keys that are one deployable unit
47
+ * under two names are fixed in the model document (a consolidation proposal
48
+ * rewrites the components' `process` fields), so the reader never sees a
49
+ * discrepancy to resolve. When several containers claim one key (a
50
+ * hand-edited set can do this), the decided one wins: accepted over rejected
51
+ * over proposed, so one reviewer's yes outranks another's no.
142
52
  *
143
- * Which side survives is the **evidence-heavy** one — the element holding more
144
- * members — because folding the 113-member host into the 1-member one would
145
- * leave the box labelled after an almost-empty process and lose its confirmed
146
- * technology. Pass `preferId` to override.
147
- *
148
- * Returns a new set; the input is untouched. Idempotent.
53
+ * Pure: the same rollup and elements always read the same. `rollup` accepts
54
+ * `SubsystemProcessRegion`s directly — only `key` and `memberAliases` are read.
149
55
  */
150
- export function mergeElements(elements, derivedFromKeys, preferId, memberCountByKey) {
151
- const wanted = new Set(derivedFromKeys.map((k) => k.trim()).filter(Boolean));
152
- if (wanted.size < 2)
153
- return [...elements];
154
- const involved = elements.filter((e) => e.derivedFrom?.some((k) => wanted.has(k)));
155
- if (involved.length < 2)
156
- return [...elements];
157
- // Only containers merge. A component has a required `container` field, and
158
- // folding one into another would silently repoint it at a new parent.
159
- if (involved.some((e) => e.kind !== 'container'))
160
- return [...elements];
161
- const weight = (e) => {
162
- if (memberCountByKey) {
163
- let n = 0;
164
- for (const k of e.derivedFrom ?? [])
165
- n += memberCountByKey.get(k) ?? 0;
166
- return n;
56
+ export function verifyProcessBoundaries(options) {
57
+ const byKey = new Map();
58
+ for (const e of options.elements) {
59
+ if (e.kind !== 'container' || !e.process)
60
+ continue;
61
+ const list = byKey.get(e.process) ?? [];
62
+ list.push(e);
63
+ byKey.set(e.process, list);
64
+ }
65
+ const precedence = { accepted: 0, rejected: 1, proposed: 2 };
66
+ return options.rollup.map(({ key, memberAliases }) => {
67
+ const aliases = [...(memberAliases ?? [])];
68
+ const claimants = byKey.get(key) ?? [];
69
+ if (claimants.length === 0) {
70
+ return { key, memberAliases: aliases, status: 'unassigned' };
167
71
  }
168
- return e.members.length;
169
- };
170
- const survivor = (preferId ? involved.find((e) => e.id === preferId) : undefined) ??
171
- [...involved].sort((a, b) => weight(b) - weight(a) || a.id.localeCompare(b.id))[0];
172
- const absorbed = involved.filter((e) => e.id !== survivor.id);
173
- const absorbedIds = new Set(absorbed.map((e) => e.id));
174
- const merged = {
175
- ...survivor,
176
- members: [...new Set([...survivor.members, ...absorbed.flatMap((e) => e.members)])],
177
- derivedFrom: [
178
- ...new Set([...(survivor.derivedFrom ?? []), ...absorbed.flatMap((e) => e.derivedFrom ?? [])]),
179
- ],
180
- rationale: [survivor.rationale, ...absorbed.map((e) => e.rationale)].filter(Boolean).join(' | ') ||
181
- undefined,
182
- };
183
- return [...elements.filter((e) => e.id !== survivor.id && !absorbedIds.has(e.id)), merged].sort((a, b) => a.id.localeCompare(b.id));
72
+ const decided = [...claimants].sort((a, b) => precedence[a.state] - precedence[b.state] || a.id.localeCompare(b.id))[0];
73
+ const status = decided.state === 'accepted' ? 'verified' : decided.state;
74
+ return { key, memberAliases: aliases, status, element: decided };
75
+ });
184
76
  }
185
77
  /**
186
- * A starting point for an agent: one proposed element per derived key, shaped
187
- * by the mechanical evidence, with the open questions in the rationale.
78
+ * Verification statuses as diagnostics findings — the dynamic-topology layer
79
+ * of the issues list. One finding per boundary that is NOT verified: an
80
+ * unclaimed boundary is the absence a proposing agent run resolves, a
81
+ * `proposed` one awaits the human's decision, a `rejected` one records that
82
+ * the decision was no. `verified` reports nothing — the audit reports
83
+ * absence only, and silence is the good state.
188
84
  *
189
- * Every element comes back `proposed`. This is a scaffold to edit and argue
190
- * with — not an answer, and never `accepted`.
85
+ * The findings ride the existing pipeline untouched: they badge the process
86
+ * frame (target kind `process`), list under Dynamic topology, focus their
87
+ * members on click, and carry the fix the decision needs. Pure over its
88
+ * input, like the rest of this module.
89
+ */
90
+ export function verificationIssues(statuses) {
91
+ const out = [];
92
+ for (const { key, status, element } of statuses) {
93
+ if (status === 'verified')
94
+ continue;
95
+ const label = element?.label ?? key;
96
+ out.push({
97
+ id: `process-verification:${key}`,
98
+ severity: 'info',
99
+ kind: `boundary_process_${status}`,
100
+ message: status === 'unassigned'
101
+ ? `No C4 container claims this process boundary yet — a proposing agent run would scaffold one.`
102
+ : status === 'proposed'
103
+ ? `Container "${label}" claims this boundary and awaits a decision.`
104
+ : `Container "${label}" was rejected for this boundary — it stays unclaimed until a container is accepted.`,
105
+ target: { kind: 'process', id: key, label: key },
106
+ fix: status === 'unassigned'
107
+ ? { label: 'Propose container' }
108
+ : status === 'proposed'
109
+ ? { label: 'Accept container' }
110
+ : undefined,
111
+ });
112
+ }
113
+ return out;
114
+ }
115
+ /**
116
+ * A starting point for an agent, shaped by the two questions that matter when
117
+ * assessing a process boundary:
118
+ *
119
+ * 1. **Does a container already exist for it?** (`elements`) — a key one
120
+ * already claims is never re-proposed; proposing another would be
121
+ * exactly the duplicate this module exists to prevent. The exact claim
122
+ * is a fact and skipped here; whether a *similarly named* container is
123
+ * the same unit is a judgement, so it belongs to the agent querying the
124
+ * container list — the fix there is a consolidation proposal, not a
125
+ * second box.
126
+ * 2. **Can the boundary be discerned into a container?** — code that never
127
+ * runs cannot be, so a library-shaped group gets no proposal; that
128
+ * fact is the agent's to report, not the scaffold's.
129
+ *
130
+ * For boundaries passing both, one `proposed` container per key. The
131
+ * rationale is the proposing agent's own reasoning, written on the proposal
132
+ * it POSTs — this scaffold does not fabricate one. A scaffold to edit and
133
+ * argue with — not an answer, and never `accepted`.
191
134
  */
192
135
  export function proposeElements(options) {
193
- const elements = options.rollup.map(({ key, members, frameworks }) => {
194
- const concerns = deriveConcerns(key, members, { frameworks });
195
- return {
136
+ const existing = options.elements ?? [];
137
+ const claimed = new Set(existing.flatMap((e) => (e.kind === 'container' && e.process ? [e.process] : [])));
138
+ const elements = [];
139
+ for (const { key, members, frameworks } of options.rollup) {
140
+ if (claimed.has(key))
141
+ continue; // already covered — exact claim, a fact
142
+ const runtime = members.filter((m) => isRuntimeConstruct(m.construct));
143
+ if (members.length > 0 && runtime.length === 0)
144
+ continue; // not discernible: code that never runs
145
+ elements.push({
196
146
  id: `container:${key}`,
197
147
  kind: 'container',
198
- members: members.map((m) => m.alias),
199
- derivedFrom: [key],
148
+ process: key,
200
149
  label: key,
201
150
  containerKind: suggestContainerKind(members),
202
151
  // C4 requires a technology on every container. With no framework signal
@@ -205,10 +154,8 @@ export function proposeElements(options) {
205
154
  // module stopped doing.
206
155
  technology: frameworks.length > 0 ? frameworks.join(' + ') : '',
207
156
  state: 'proposed',
208
- rationale: concerns.map((c) => c.message).join(' ') || undefined,
209
- author: options.author,
210
- };
211
- });
157
+ });
158
+ }
212
159
  return {
213
160
  repoKey: options.repoKey,
214
161
  elements: elements.sort((a, b) => a.id.localeCompare(b.id)),
@@ -1 +1 @@
1
- {"version":3,"file":"c4Evidence.js","sourceRoot":"","sources":["../../src/subsystem/c4Evidence.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"c4Evidence.js","sourceRoot":"","sources":["../../src/subsystem/c4Evidence.ts"],"names":[],"mappings":"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"}
@@ -75,10 +75,10 @@ function NodeIssueOverlay({ issue }) {
75
75
  }
76
76
  /**
77
77
  * The shared severity chip: a severity-colored ring around the finding's icon,
78
- * with a count when there is more than one. Component nodes anchor it to the
79
- * bottom-right corner; a region frame anchors it to the top-right so it never
80
- * collides with the frame's own name badge. `aria-hidden` and inert — the
81
- * canvas badge never competes with the sidebar card for the interaction.
78
+ * with a count when there is more than one. Component nodes and region frames
79
+ * both anchor it overhanging the bottom-right corner — the issues convention.
80
+ * `aria-hidden` and inert — the canvas badge never competes with the sidebar
81
+ * card for the interaction.
82
82
  */
83
83
  function IssueChip({ color, Icon, count, anchor, }) {
84
84
  const { theme } = useTheme();
@@ -471,7 +471,7 @@ export function SubsystemGroupNode(props) {
471
471
  : undefined),
472
472
  }, children: canToggle ? (_jsx("span", { style: { whiteSpace: 'nowrap' }, children: expanded ? label : hover ? hoveredLabel : collapsedLabel })) : (label) }), data.issue && ISSUE_KIND_ICON[data.issue.kind] && (_jsx(IssueChip, { color: data.issue.severity === 'error'
473
473
  ? (theme.colors.error ?? '#e5534b')
474
- : (theme.colors.warning ?? '#d4a017'), Icon: ISSUE_KIND_ICON[data.issue.kind], count: data.issue.count, anchor: { right: 12, top: 0, transform: 'translateY(-50%)' } }))] }));
474
+ : (theme.colors.warning ?? '#d4a017'), Icon: ISSUE_KIND_ICON[data.issue.kind], count: data.issue.count, anchor: { right: -9, bottom: -8 } }))] }));
475
475
  }
476
476
  /** `#rrggbb` + alpha → `#rrggbbaa`. Used to dim a stroke/marker by color so
477
477
  * each opacity gets its own SVG marker id — path `opacity` leaks across every
@@ -1 +1 @@
1
- {"version":3,"file":"nodes.js","sourceRoot":"","sources":["../../src/subsystem/nodes.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"nodes.js","sourceRoot":"","sources":["../../src/subsystem/nodes.tsx"],"names":[],"mappings":"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"}
@@ -20,6 +20,11 @@ export interface TechBrand {
20
20
  svg: string;
21
21
  /** Matched against the technology string. First match in `TECH_BRANDS` wins. */
22
22
  match: RegExp;
23
+ /**
24
+ * Representative brand hue, for the card border. The dominant colour of the
25
+ * mark, chosen to stay legible as a thin line.
26
+ */
27
+ color: string;
23
28
  }
24
29
  /**
25
30
  * Order matters: the first brand whose pattern matches is the one drawn, so
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/subsystem/techIcons/index.tsx"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;;AAMH,MAAM,WAAW,SAAS;IACxB,2DAA2D;IAC3D,IAAI,EAAE,MAAM,CAAC;IACb,wCAAwC;IACxC,MAAM,EAAE,MAAM,CAAC;IACf,qDAAqD;IACrD,GAAG,EAAE,MAAM,CAAC;IACZ,gFAAgF;IAChF,KAAK,EAAE,MAAM,CAAC;CACf;AAED;;;GAGG;AACH,eAAO,MAAM,WAAW,EAAE,SAAS,SAAS,EAqB3C,CAAC;AAEF,iFAAiF;AACjF,wBAAgB,eAAe,CAAC,UAAU,EAAE,MAAM,GAAG,SAAS,GAAG,SAAS,GAAG,SAAS,CAGrF;AAED,2EAA2E;AAC3E,wBAAgB,QAAQ,CAAC,EAAE,KAAK,EAAE,IAAS,EAAE,EAAE;IAAE,KAAK,EAAE,SAAS,CAAC;IAAC,IAAI,CAAC,EAAE,MAAM,CAAA;CAAE,+BAUjF"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/subsystem/techIcons/index.tsx"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;;AAMH,MAAM,WAAW,SAAS;IACxB,2DAA2D;IAC3D,IAAI,EAAE,MAAM,CAAC;IACb,wCAAwC;IACxC,MAAM,EAAE,MAAM,CAAC;IACf,qDAAqD;IACrD,GAAG,EAAE,MAAM,CAAC;IACZ,gFAAgF;IAChF,KAAK,EAAE,MAAM,CAAC;IACd;;;OAGG;IACH,KAAK,EAAE,MAAM,CAAC;CACf;AAED;;;GAGG;AACH,eAAO,MAAM,WAAW,EAAE,SAAS,SAAS,EAwB3C,CAAC;AAEF,iFAAiF;AACjF,wBAAgB,eAAe,CAAC,UAAU,EAAE,MAAM,GAAG,SAAS,GAAG,SAAS,GAAG,SAAS,CAGrF;AAED,2EAA2E;AAC3E,wBAAgB,QAAQ,CAAC,EAAE,KAAK,EAAE,IAAS,EAAE,EAAE;IAAE,KAAK,EAAE,SAAS,CAAC;IAAC,IAAI,CAAC,EAAE,MAAM,CAAA;CAAE,+BAUjF"}
@@ -24,12 +24,14 @@ export const TECH_BRANDS = [
24
24
  source: 'https://react.dev',
25
25
  svg: reactSvg,
26
26
  match: /\breact\b/i,
27
+ color: '#61dafb',
27
28
  },
28
29
  {
29
30
  name: 'Bun',
30
31
  source: 'https://bun.sh/logo.svg',
31
32
  svg: bunSvg,
32
33
  match: /\bbun\b/i,
34
+ color: '#fbf0df',
33
35
  },
34
36
  {
35
37
  name: 'Node.js',
@@ -38,6 +40,7 @@ export const TECH_BRANDS = [
38
40
  // Matches "Node" and "Node.js"; "Electrobun" has no word boundary before
39
41
  // "bun" and never reaches here.
40
42
  match: /\bnode(\.js)?\b/i,
43
+ color: '#5fa04e',
41
44
  },
42
45
  ];
43
46
  /** The official mark for a technology string, or undefined when we hold none. */
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/subsystem/techIcons/index.tsx"],"names":[],"mappings":";AAAA;;;;;;;;;;;GAWG;AAEH,OAAO,EAAE,MAAM,EAAE,MAAM,OAAO,CAAC;AAC/B,OAAO,EAAE,OAAO,EAAE,MAAM,QAAQ,CAAC;AACjC,OAAO,EAAE,QAAQ,EAAE,MAAM,SAAS,CAAC;AAanC;;;GAGG;AACH,MAAM,CAAC,MAAM,WAAW,GAAyB;IAC/C;QACE,IAAI,EAAE,OAAO;QACb,MAAM,EAAE,mBAAmB;QAC3B,GAAG,EAAE,QAAQ;QACb,KAAK,EAAE,YAAY;KACpB;IACD;QACE,IAAI,EAAE,KAAK;QACX,MAAM,EAAE,yBAAyB;QACjC,GAAG,EAAE,MAAM;QACX,KAAK,EAAE,UAAU;KAClB;IACD;QACE,IAAI,EAAE,SAAS;QACf,MAAM,EAAE,+CAA+C;QACvD,GAAG,EAAE,OAAO;QACZ,yEAAyE;QACzE,gCAAgC;QAChC,KAAK,EAAE,kBAAkB;KAC1B;CACF,CAAC;AAEF,iFAAiF;AACjF,MAAM,UAAU,eAAe,CAAC,UAA8B;IAC5D,IAAI,CAAC,UAAU;QAAE,OAAO,SAAS,CAAC;IAClC,OAAO,WAAW,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC;AACnE,CAAC;AAED,2EAA2E;AAC3E,MAAM,UAAU,QAAQ,CAAC,EAAE,KAAK,EAAE,IAAI,GAAG,EAAE,EAAuC;IAChF,OAAO,CACL,eACE,KAAK,EAAE,GAAG,KAAK,CAAC,IAAI,MAAM,KAAK,CAAC,MAAM,EAAE,gBAC5B,KAAK,CAAC,IAAI,EACtB,KAAK,EAAE,EAAE,OAAO,EAAE,aAAa,EAAE,KAAK,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,UAAU,EAAE,CAAC,EAAE;QAC3E,2DAA2D;QAC3D,uBAAuB,EAAE,EAAE,MAAM,EAAE,KAAK,CAAC,GAAG,EAAE,GAC9C,CACH,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/subsystem/techIcons/index.tsx"],"names":[],"mappings":";AAAA;;;;;;;;;;;GAWG;AAEH,OAAO,EAAE,MAAM,EAAE,MAAM,OAAO,CAAC;AAC/B,OAAO,EAAE,OAAO,EAAE,MAAM,QAAQ,CAAC;AACjC,OAAO,EAAE,QAAQ,EAAE,MAAM,SAAS,CAAC;AAkBnC;;;GAGG;AACH,MAAM,CAAC,MAAM,WAAW,GAAyB;IAC/C;QACE,IAAI,EAAE,OAAO;QACb,MAAM,EAAE,mBAAmB;QAC3B,GAAG,EAAE,QAAQ;QACb,KAAK,EAAE,YAAY;QACnB,KAAK,EAAE,SAAS;KACjB;IACD;QACE,IAAI,EAAE,KAAK;QACX,MAAM,EAAE,yBAAyB;QACjC,GAAG,EAAE,MAAM;QACX,KAAK,EAAE,UAAU;QACjB,KAAK,EAAE,SAAS;KACjB;IACD;QACE,IAAI,EAAE,SAAS;QACf,MAAM,EAAE,+CAA+C;QACvD,GAAG,EAAE,OAAO;QACZ,yEAAyE;QACzE,gCAAgC;QAChC,KAAK,EAAE,kBAAkB;QACzB,KAAK,EAAE,SAAS;KACjB;CACF,CAAC;AAEF,iFAAiF;AACjF,MAAM,UAAU,eAAe,CAAC,UAA8B;IAC5D,IAAI,CAAC,UAAU;QAAE,OAAO,SAAS,CAAC;IAClC,OAAO,WAAW,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC;AACnE,CAAC;AAED,2EAA2E;AAC3E,MAAM,UAAU,QAAQ,CAAC,EAAE,KAAK,EAAE,IAAI,GAAG,EAAE,EAAuC;IAChF,OAAO,CACL,eACE,KAAK,EAAE,GAAG,KAAK,CAAC,IAAI,MAAM,KAAK,CAAC,MAAM,EAAE,gBAC5B,KAAK,CAAC,IAAI,EACtB,KAAK,EAAE,EAAE,OAAO,EAAE,aAAa,EAAE,KAAK,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,UAAU,EAAE,CAAC,EAAE;QAC3E,2DAA2D;QAC3D,uBAAuB,EAAE,EAAE,MAAM,EAAE,KAAK,CAAC,GAAG,EAAE,GAC9C,CACH,CAAC;AACJ,CAAC"}
@@ -15,6 +15,20 @@ export declare const EDGE_LABEL_WIDTH = 140;
15
15
  export declare const EDGE_LABEL_HEIGHT = 40;
16
16
  /** Label font size. Fixed so every label renders at the same text size. */
17
17
  export declare const EDGE_LABEL_FONT_SIZE = 14;
18
+ /**
19
+ * Estimated rendered width of an edge label's chip, from its text. Both the
20
+ * overlay and the ELK reservation must use this same number, or the reserved
21
+ * run drifts from what renders. Clamped to a minimum so a one-word protocol
22
+ * still reads as a chip.
23
+ */
24
+ export declare function estimateEdgeLabelWidth(text: string): number;
25
+ /**
26
+ * Reserved label width for C4's own edges, used as the fallback/max when a
27
+ * caller doesn't size per-label. C4's lines carry short protocols (`RPC`,
28
+ * `HTTP`, `file I/O`), so the shared 140 (sized for the component graph's
29
+ * `registers-into`) is wider than needed and inflates the run between boxes.
30
+ */
31
+ export declare const C4_LABEL_WIDTH = 90;
18
32
  /**
19
33
  * Clear space we want on each side of a label box.
20
34
  *
@@ -29,7 +43,7 @@ export declare const EDGE_LABEL_FONT_SIZE = 14;
29
43
  * "min edge length" here double-counts (it is applied twice), which is how the
30
44
  * gap silently ballooned before.
31
45
  */
32
- export declare const EDGE_LABEL_SIDE_PADDING = 8;
46
+ export declare const EDGE_LABEL_SIDE_PADDING = 32;
33
47
  /** Actual end-to-end gap ELK leaves for a labelled edge (box + both clearances). */
34
48
  export declare const EDGE_LABEL_EDGE_GAP: number;
35
49
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"edgeLabel.d.ts","sourceRoot":"","sources":["../../src/utils/edgeLabel.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH;;iBAEiB;AACjB,eAAO,MAAM,gBAAgB,MAAM,CAAC;AAEpC,8EAA8E;AAC9E,eAAO,MAAM,iBAAiB,KAAK,CAAC;AAEpC,2EAA2E;AAC3E,eAAO,MAAM,oBAAoB,KAAK,CAAC;AAEvC;;;;;;;;;;;;;GAaG;AACH,eAAO,MAAM,uBAAuB,IAAI,CAAC;AAEzC,oFAAoF;AACpF,eAAO,MAAM,mBAAmB,QACgB,CAAC;AAEjD;;;;;GAKG;AACH,eAAO,MAAM,gBAAgB,IAAI,CAAC;AAkClC;;;;;GAKG;AACH,eAAO,MAAM,0BAA0B,KAAK,CAAC;AAE7C,4EAA4E;AAC5E,eAAO,MAAM,qBAAqB,QAGjC,CAAC"}
1
+ {"version":3,"file":"edgeLabel.d.ts","sourceRoot":"","sources":["../../src/utils/edgeLabel.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH;;iBAEiB;AACjB,eAAO,MAAM,gBAAgB,MAAM,CAAC;AAEpC,8EAA8E;AAC9E,eAAO,MAAM,iBAAiB,KAAK,CAAC;AAEpC,2EAA2E;AAC3E,eAAO,MAAM,oBAAoB,KAAK,CAAC;AAYvC;;;;;GAKG;AACH,wBAAgB,sBAAsB,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAE3D;AAED;;;;;GAKG;AACH,eAAO,MAAM,cAAc,KAAK,CAAC;AAEjC;;;;;;;;;;;;;GAaG;AACH,eAAO,MAAM,uBAAuB,KAAK,CAAC;AAE1C,oFAAoF;AACpF,eAAO,MAAM,mBAAmB,QACgB,CAAC;AAEjD;;;;;GAKG;AACH,eAAO,MAAM,gBAAgB,IAAI,CAAC;AAkClC;;;;;GAKG;AACH,eAAO,MAAM,0BAA0B,KAAK,CAAC;AAE7C,4EAA4E;AAC5E,eAAO,MAAM,qBAAqB,QAGjC,CAAC"}
@@ -15,6 +15,30 @@ export const EDGE_LABEL_WIDTH = 140;
15
15
  export const EDGE_LABEL_HEIGHT = 40;
16
16
  /** Label font size. Fixed so every label renders at the same text size. */
17
17
  export const EDGE_LABEL_FONT_SIZE = 14;
18
+ /**
19
+ * Approx monospace advance at `EDGE_LABEL_FONT_SIZE` (14px), incl. the tiny
20
+ * letter-spacing. Fira Code / SF Mono / Courier sit at ~0.6em (8.4px); rounded
21
+ * up so a width estimate never undershoots and clips the label.
22
+ */
23
+ const LABEL_CHAR_WIDTH = 8.5;
24
+ /** Chip chrome: horizontal padding is 8+8 in the overlay (see C4EdgeLabels). */
25
+ const LABEL_CHIP_CHROME = 16;
26
+ /**
27
+ * Estimated rendered width of an edge label's chip, from its text. Both the
28
+ * overlay and the ELK reservation must use this same number, or the reserved
29
+ * run drifts from what renders. Clamped to a minimum so a one-word protocol
30
+ * still reads as a chip.
31
+ */
32
+ export function estimateEdgeLabelWidth(text) {
33
+ return Math.max(48, (text?.length ?? 0) * LABEL_CHAR_WIDTH + LABEL_CHIP_CHROME);
34
+ }
35
+ /**
36
+ * Reserved label width for C4's own edges, used as the fallback/max when a
37
+ * caller doesn't size per-label. C4's lines carry short protocols (`RPC`,
38
+ * `HTTP`, `file I/O`), so the shared 140 (sized for the component graph's
39
+ * `registers-into`) is wider than needed and inflates the run between boxes.
40
+ */
41
+ export const C4_LABEL_WIDTH = 90;
18
42
  /**
19
43
  * Clear space we want on each side of a label box.
20
44
  *
@@ -29,7 +53,7 @@ export const EDGE_LABEL_FONT_SIZE = 14;
29
53
  * "min edge length" here double-counts (it is applied twice), which is how the
30
54
  * gap silently ballooned before.
31
55
  */
32
- export const EDGE_LABEL_SIDE_PADDING = 8;
56
+ export const EDGE_LABEL_SIDE_PADDING = 32;
33
57
  /** Actual end-to-end gap ELK leaves for a labelled edge (box + both clearances). */
34
58
  export const EDGE_LABEL_EDGE_GAP = EDGE_LABEL_WIDTH + EDGE_LABEL_SIDE_PADDING * 2;
35
59
  /**