@principal-ai/subsystems-react 0.56.12 → 0.56.14

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 (54) hide show
  1. package/dist/index.d.ts +6 -0
  2. package/dist/index.d.ts.map +1 -1
  3. package/dist/index.js +3 -0
  4. package/dist/index.js.map +1 -1
  5. package/dist/subsystem/C4Graph.d.ts.map +1 -1
  6. package/dist/subsystem/C4Graph.js +10 -4
  7. package/dist/subsystem/C4Graph.js.map +1 -1
  8. package/dist/subsystem/C4ProjectionView.d.ts +60 -0
  9. package/dist/subsystem/C4ProjectionView.d.ts.map +1 -0
  10. package/dist/subsystem/C4ProjectionView.js +336 -0
  11. package/dist/subsystem/C4ProjectionView.js.map +1 -0
  12. package/dist/subsystem/C4SketchView.d.ts +23 -0
  13. package/dist/subsystem/C4SketchView.d.ts.map +1 -0
  14. package/dist/subsystem/C4SketchView.js +119 -0
  15. package/dist/subsystem/C4SketchView.js.map +1 -0
  16. package/dist/subsystem/DescriptionOverlay.d.ts +6 -0
  17. package/dist/subsystem/DescriptionOverlay.d.ts.map +1 -0
  18. package/dist/subsystem/DescriptionOverlay.js +58 -0
  19. package/dist/subsystem/DescriptionOverlay.js.map +1 -0
  20. package/dist/subsystem/SubsystemComponentGraph.d.ts.map +1 -1
  21. package/dist/subsystem/SubsystemComponentGraph.js +289 -271
  22. package/dist/subsystem/SubsystemComponentGraph.js.map +1 -1
  23. package/dist/subsystem/__fixtures__/c4Drilldown.d.ts +4 -27
  24. package/dist/subsystem/__fixtures__/c4Drilldown.d.ts.map +1 -1
  25. package/dist/subsystem/__fixtures__/c4Drilldown.js +4 -56
  26. package/dist/subsystem/__fixtures__/c4Drilldown.js.map +1 -1
  27. package/dist/subsystem/__fixtures__/c4Sketch.d.ts +9 -0
  28. package/dist/subsystem/__fixtures__/c4Sketch.d.ts.map +1 -0
  29. package/dist/subsystem/__fixtures__/c4Sketch.js +89 -0
  30. package/dist/subsystem/__fixtures__/c4Sketch.js.map +1 -0
  31. package/dist/subsystem/c4Sketch.d.ts +74 -0
  32. package/dist/subsystem/c4Sketch.d.ts.map +1 -0
  33. package/dist/subsystem/c4Sketch.js +9 -0
  34. package/dist/subsystem/c4Sketch.js.map +1 -0
  35. package/dist/subsystem/c4TrailFocus.d.ts +30 -0
  36. package/dist/subsystem/c4TrailFocus.d.ts.map +1 -0
  37. package/dist/subsystem/c4TrailFocus.js +57 -0
  38. package/dist/subsystem/c4TrailFocus.js.map +1 -0
  39. package/package.json +1 -1
  40. package/src/index.ts +14 -0
  41. package/src/stories/Canvases/C4/C4Draft.stories.tsx +238 -0
  42. package/src/stories/Canvases/C4/C4Sketch.stories.tsx +36 -0
  43. package/src/stories/Canvases/C4/C4ToComponentDrill.stories.tsx +18 -429
  44. package/src/subsystem/C4Graph.tsx +10 -4
  45. package/src/subsystem/C4ProjectionView.tsx +595 -0
  46. package/src/subsystem/C4SketchView.tsx +241 -0
  47. package/src/subsystem/DescriptionOverlay.test.tsx +76 -0
  48. package/src/subsystem/DescriptionOverlay.tsx +101 -0
  49. package/src/subsystem/SubsystemComponentGraph.sidebar.test.tsx +10 -3
  50. package/src/subsystem/SubsystemComponentGraph.tsx +44 -12
  51. package/src/subsystem/__fixtures__/c4Drilldown.ts +7 -58
  52. package/src/subsystem/__fixtures__/c4Sketch.ts +94 -0
  53. package/src/subsystem/c4Sketch.ts +78 -0
  54. package/src/subsystem/c4TrailFocus.ts +62 -0
@@ -0,0 +1,336 @@
1
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
+ /**
3
+ * C4ProjectionView — a model-derived C4 diagram with its trails in a left
4
+ * sidebar.
5
+ *
6
+ * The host supplies the authored/composed `C4Model`, the subsystem components
7
+ * and trails it was projected from, and the element → member-alias map. This
8
+ * component owns the trail focus, the resulting emphasis, the construct-level
9
+ * drill-down, and the open-container state (controlled or uncontrolled).
10
+ *
11
+ * It is deliberately data-only: no RPC, no store reads. Studio passes a
12
+ * projection built from a stored model; Storybook passes a fixture.
13
+ */
14
+ import { useCallback, useMemo, useRef, useState } from 'react';
15
+ import { useTheme } from '@principal-ade/industry-theme';
16
+ import { IndustryMarkdownSlide } from 'themed-markdown';
17
+ import { C4Graph } from './C4Graph';
18
+ import { GraphWithSidebar } from './GraphWithSidebar';
19
+ import { TrailStepsNav } from './TrailStepsNav';
20
+ import { deriveLitC4Edges, deriveTrailPlayerElements, } from './c4TrailFocus';
21
+ import { deriveGraphEdges, trailStepGraphEdgeId } from './model';
22
+ function parentIdsOf(model) {
23
+ const parents = new Map();
24
+ for (const node of model.nodes) {
25
+ const parent = node.kind === 'component' ? (node.container ?? node.parentId) : node.parentId;
26
+ if (parent)
27
+ parents.set(node.id, parent);
28
+ }
29
+ return parents;
30
+ }
31
+ /** Include every ancestor of a player, so a filtered model never orphans a child. */
32
+ function withAncestors(players, parents) {
33
+ const out = new Set(players);
34
+ for (const id of players) {
35
+ let parent = parents.get(id);
36
+ while (parent && !out.has(parent)) {
37
+ out.add(parent);
38
+ parent = parents.get(parent);
39
+ }
40
+ }
41
+ return out;
42
+ }
43
+ function containersForTrail(trail, model, memberships) {
44
+ if (!trail)
45
+ return [];
46
+ const aliases = new Set();
47
+ for (const step of trail.steps) {
48
+ aliases.add(step.from);
49
+ aliases.add(step.to);
50
+ }
51
+ return model.nodes
52
+ .filter((node) => node.kind === 'container' &&
53
+ (memberships[node.id] ?? []).some((alias) => aliases.has(alias)))
54
+ .map((node) => node.id);
55
+ }
56
+ function buildConstructGraphs(opts) {
57
+ if (!opts.focusedTrailId)
58
+ return undefined;
59
+ const trail = opts.trails.find((t) => t.id === opts.focusedTrailId);
60
+ if (!trail)
61
+ return undefined;
62
+ const byAlias = new Map(opts.components.map((c) => [c.alias, c]));
63
+ const referenced = new Set();
64
+ for (const step of trail.steps) {
65
+ referenced.add(step.from);
66
+ referenced.add(step.to);
67
+ }
68
+ const componentOf = new Map();
69
+ for (const element of opts.model.nodes) {
70
+ if (element.kind !== 'component')
71
+ continue;
72
+ for (const alias of element.members ?? [])
73
+ componentOf.set(alias, element.id);
74
+ }
75
+ const out = new Map();
76
+ for (const element of opts.model.nodes) {
77
+ if (element.kind !== 'container')
78
+ continue;
79
+ const aliases = (opts.memberships[element.id] ?? []).filter((alias) => referenced.has(alias) && byAlias.has(alias));
80
+ if (aliases.length === 0)
81
+ continue;
82
+ out.set(element.id, {
83
+ components: aliases.map((alias) => byAlias.get(alias)),
84
+ trails: [trail],
85
+ componentOf,
86
+ });
87
+ }
88
+ return out.size > 0 ? out : undefined;
89
+ }
90
+ function constructEmphasis(activeStep, trails, constructGraphs) {
91
+ if (!activeStep)
92
+ return { ids: null, edgeIds: null };
93
+ const trail = trails.find((t) => t.id === activeStep.trailId);
94
+ if (!trail)
95
+ return { ids: null, edgeIds: null };
96
+ const step = trail.steps[activeStep.stepIndex];
97
+ if (!step)
98
+ return { ids: null, edgeIds: null };
99
+ const steps = [step];
100
+ const spotlight = new Set();
101
+ const litEdges = new Set();
102
+ for (const step of steps) {
103
+ spotlight.add(step.from);
104
+ spotlight.add(step.to);
105
+ litEdges.add(trailStepGraphEdgeId(step));
106
+ }
107
+ if (!constructGraphs)
108
+ return { ids: null, edgeIds: null };
109
+ const allAliases = new Set();
110
+ const allEdgeIds = new Set();
111
+ for (const graph of constructGraphs.values()) {
112
+ for (const component of graph.components)
113
+ allAliases.add(component.alias);
114
+ for (const edge of deriveGraphEdges({ trails: [...graph.trails] })) {
115
+ allEdgeIds.add(edge.id);
116
+ }
117
+ }
118
+ return {
119
+ ids: new Set([...allAliases].filter((alias) => !spotlight.has(alias))),
120
+ edgeIds: new Set([...allEdgeIds].filter((id) => !litEdges.has(id))),
121
+ };
122
+ }
123
+ export function C4ProjectionView({ model, components, trails, memberships, title, description, headerActions, openContainerIds, onOpenContainerIdsChange, onTrailSelect, onTrailStepHover, renderFileViewer, renderTrailViewer, hideDrawer = false, persistKey, style, }) {
124
+ const { theme } = useTheme();
125
+ const [internalOpenIds, setInternalOpenIds] = useState(() => [...(openContainerIds ?? model.openContainerIds ?? [])].sort());
126
+ const resolvedOpenIds = openContainerIds
127
+ ? [...openContainerIds]
128
+ : internalOpenIds;
129
+ const setOpenIds = useCallback((next) => {
130
+ if (!openContainerIds)
131
+ setInternalOpenIds(next);
132
+ onOpenContainerIdsChange?.(next);
133
+ }, [onOpenContainerIdsChange, openContainerIds]);
134
+ const [focusedTrailId, setFocusedTrailId] = useState(null);
135
+ const [hoveredStep, setHoveredStep] = useState(null);
136
+ const [focusedStep, setFocusedStep] = useState(null);
137
+ const trailOpenedRef = useRef(new Set());
138
+ const parents = useMemo(() => parentIdsOf(model), [model]);
139
+ const allElementIds = useMemo(() => model.nodes.map((node) => node.id), [model]);
140
+ const allEdgeIds = useMemo(() => model.edges.map((edge) => edge.id), [model]);
141
+ const componentByAlias = useMemo(() => new Map(components.map((component) => [component.alias, component])), [components]);
142
+ const focusedTrail = focusedTrailId
143
+ ? trails.find((trail) => trail.id === focusedTrailId)
144
+ : undefined;
145
+ const trailPlayers = useMemo(() => focusedTrail
146
+ ? withAncestors(deriveTrailPlayerElements(focusedTrail.steps, memberships), parents)
147
+ : null, [focusedTrail, memberships, parents]);
148
+ const renderedModel = useMemo(() => {
149
+ if (!trailPlayers) {
150
+ return { ...model, openContainerIds: resolvedOpenIds };
151
+ }
152
+ const nodes = model.nodes.filter((node) => trailPlayers.has(node.id));
153
+ const ids = new Set(nodes.map((node) => node.id));
154
+ const edges = model.edges.filter((edge) => ids.has(edge.source) && ids.has(edge.target));
155
+ return { ...model, nodes, edges, openContainerIds: resolvedOpenIds };
156
+ }, [model, resolvedOpenIds, trailPlayers]);
157
+ const containers = useCallback((trailId) => {
158
+ const trail = trails.find((t) => t.id === trailId);
159
+ return containersForTrail(trail, model, memberships);
160
+ }, [memberships, model, trails]);
161
+ const focusTrail = useCallback((trailId) => {
162
+ const previouslyOpened = trailOpenedRef.current;
163
+ const nextTrailContainers = containers(trailId);
164
+ trailOpenedRef.current = new Set(nextTrailContainers);
165
+ const next = [
166
+ ...new Set([
167
+ ...resolvedOpenIds.filter((id) => !previouslyOpened.has(id)),
168
+ ...nextTrailContainers,
169
+ ]),
170
+ ].sort();
171
+ setFocusedTrailId(trailId);
172
+ setHoveredStep(null);
173
+ setOpenIds(next);
174
+ onTrailSelect?.({ trailId });
175
+ }, [containers, onTrailSelect, resolvedOpenIds, setOpenIds]);
176
+ const clearFocus = useCallback(() => {
177
+ const opened = trailOpenedRef.current;
178
+ trailOpenedRef.current = new Set();
179
+ setFocusedTrailId(null);
180
+ setHoveredStep(null);
181
+ if (opened.size > 0) {
182
+ setOpenIds(resolvedOpenIds.filter((id) => !opened.has(id)));
183
+ }
184
+ onTrailSelect?.(null);
185
+ }, [onTrailSelect, resolvedOpenIds, setOpenIds]);
186
+ const toggleContainer = useCallback((id) => {
187
+ setOpenIds(resolvedOpenIds.includes(id)
188
+ ? resolvedOpenIds.filter((openId) => openId !== id)
189
+ : [...resolvedOpenIds, id].sort());
190
+ }, [resolvedOpenIds, setOpenIds]);
191
+ const activeStep = focusedStep ?? hoveredStep;
192
+ const emphasis = useMemo(() => {
193
+ let hiddenElementIds = null;
194
+ let hiddenEdgeIds = null;
195
+ if (focusedTrail) {
196
+ const players = trailPlayers ?? new Set();
197
+ hiddenElementIds = new Set(allElementIds.filter((id) => !players.has(id)));
198
+ const lit = deriveLitC4Edges({ trailId: focusedTrail.id }, model.edges);
199
+ hiddenEdgeIds = new Set(allEdgeIds.filter((id) => !lit.has(id)));
200
+ }
201
+ let dimmedElementIds = null;
202
+ let dimmedEdgeIds = null;
203
+ if (activeStep) {
204
+ const trail = trails.find((t) => t.id === activeStep.trailId);
205
+ const steps = !trail
206
+ ? []
207
+ : activeStep.stepIndex != null
208
+ ? trail.steps.slice(activeStep.stepIndex, activeStep.stepIndex + 1)
209
+ : trail.steps;
210
+ const spotlight = deriveTrailPlayerElements(steps, memberships);
211
+ dimmedElementIds = new Set(allElementIds.filter((id) => !spotlight.has(id)));
212
+ const lit = deriveLitC4Edges({
213
+ trailId: activeStep.trailId,
214
+ ...(activeStep.stepIndex != null
215
+ ? { stepIndex: activeStep.stepIndex }
216
+ : {}),
217
+ }, model.edges);
218
+ dimmedEdgeIds = new Set(allEdgeIds.filter((id) => !lit.has(id)));
219
+ }
220
+ return {
221
+ hiddenElementIds,
222
+ hiddenEdgeIds,
223
+ dimmedElementIds,
224
+ dimmedEdgeIds,
225
+ };
226
+ }, [
227
+ activeStep,
228
+ allEdgeIds,
229
+ allElementIds,
230
+ focusedTrail,
231
+ memberships,
232
+ model.edges,
233
+ trailPlayers,
234
+ trails,
235
+ ]);
236
+ const constructGraphs = useMemo(() => buildConstructGraphs({
237
+ model,
238
+ components,
239
+ trails,
240
+ memberships,
241
+ focusedTrailId,
242
+ }), [components, focusedTrailId, memberships, model, trails]);
243
+ const constructStage = useMemo(() => constructEmphasis(activeStep && activeStep.stepIndex != null
244
+ ? { trailId: activeStep.trailId, stepIndex: activeStep.stepIndex }
245
+ : null, trails, constructGraphs), [activeStep, constructGraphs, trails]);
246
+ const openAll = useCallback(() => {
247
+ setOpenIds(model.nodes
248
+ .filter((node) => node.kind === 'container')
249
+ .map((node) => node.id)
250
+ .sort());
251
+ }, [model, setOpenIds]);
252
+ const collapseAll = useCallback(() => {
253
+ setOpenIds([]);
254
+ }, [setOpenIds]);
255
+ const sidebarHeader = description ? (_jsx("div", { style: { fontSize: theme.fontSizes[0], lineHeight: 1.5 }, children: _jsx(IndustryMarkdownSlide, { content: description, slideIdPrefix: "c4-projection-desc", slideIndex: 0, isVisible: true, theme: theme, disableScroll: true, disableBasePadding: true, enableKeyboardScrolling: false, autoFocusOnVisible: false }) })) : null;
256
+ return (_jsxs("div", { style: {
257
+ width: '100%',
258
+ height: '100%',
259
+ display: 'flex',
260
+ flexDirection: 'column',
261
+ background: theme.colors.background,
262
+ ...style,
263
+ }, children: [_jsxs("header", { style: {
264
+ flexShrink: 0,
265
+ display: 'flex',
266
+ alignItems: 'center',
267
+ gap: 12,
268
+ padding: '12px 16px',
269
+ background: theme.colors.background,
270
+ borderBottom: `1px solid ${theme.colors.border}`,
271
+ }, children: [_jsx("h2", { style: {
272
+ margin: 0,
273
+ minWidth: 0,
274
+ flex: 1,
275
+ fontSize: theme.fontSizes[2],
276
+ fontWeight: 600,
277
+ color: theme.colors.text,
278
+ fontFamily: theme.fonts.monospace,
279
+ overflowWrap: 'anywhere',
280
+ }, children: title ?? model.system.label }), _jsxs("div", { style: {
281
+ marginLeft: 'auto',
282
+ flexShrink: 0,
283
+ display: 'flex',
284
+ alignItems: 'center',
285
+ gap: 6,
286
+ }, children: [headerActions, _jsx("button", { type: "button", onClick: openAll, style: smallButton(theme), children: "Open all" }), _jsx("button", { type: "button", onClick: collapseAll, style: smallButton(theme), children: "Collapse all" })] })] }), _jsx("div", { style: { flex: 1, minHeight: 0, display: 'flex', flexDirection: 'column' }, children: _jsx(GraphWithSidebar, { persistKey: persistKey, defaultWidth: 320, minWidth: 240, maxWidth: 480, headerMaxHeight: "30%", header: sidebarHeader, sidebarBody: _jsx(TrailStepsNav, { trails: [...trails], focusedTrailId: focusedTrailId, focusedStepIndex: focusedStep && focusedStep.trailId === focusedTrailId
287
+ ? focusedStep.stepIndex
288
+ : null, hoveredTrailStep: hoveredStep, componentByAlias: componentByAlias, onFocusFlow: (trail) => {
289
+ setFocusedStep(null);
290
+ focusTrail(trail.id);
291
+ }, onClearFocus: () => {
292
+ setFocusedStep(null);
293
+ clearFocus();
294
+ }, onFocusStep: (trail, stepIndex) => {
295
+ setFocusedStep((prev) => prev &&
296
+ prev.trailId === trail.id &&
297
+ prev.stepIndex === stepIndex
298
+ ? null
299
+ : { trailId: trail.id, stepIndex });
300
+ focusTrail(trail.id);
301
+ }, onHoverStep: (trail, stepIndex) => {
302
+ setHoveredStep({ trailId: trail.id, stepIndex });
303
+ onTrailStepHover?.({ trailId: trail.id, stepIndex });
304
+ }, onHoverFlow: (trail) => {
305
+ setHoveredStep({ trailId: trail.id, stepIndex: null });
306
+ onTrailStepHover?.(null);
307
+ }, onLeaveStep: () => {
308
+ setHoveredStep(null);
309
+ onTrailStepHover?.(null);
310
+ } }), children: _jsx(C4Graph, { model: renderedModel, onSelectEdge: (edge) => {
311
+ const refs = edge?.trailRefs ?? [];
312
+ if (refs.length > 0)
313
+ focusTrail(refs[0].trailId);
314
+ }, onTrailClick: (ref) => focusTrail(ref.trailId), onToggleContainer: toggleContainer, hiddenElementIds: emphasis.hiddenElementIds, hiddenEdgeIds: emphasis.hiddenEdgeIds, dimmedElementIds: emphasis.dimmedElementIds, dimmedEdgeIds: emphasis.dimmedEdgeIds, dimmedConstructIds: constructStage.ids, dimmedConstructEdgeIds: constructStage.edgeIds, constructGraphByContainer: constructGraphs, focusedStep: focusedStep, onCloseStep: () => setFocusedStep(null), renderFileViewer: renderFileViewer, renderTrailViewer: renderTrailViewer, hideDrawer: hideDrawer }) }) })] }));
315
+ }
316
+ function smallButton(theme) {
317
+ return {
318
+ flexShrink: 0,
319
+ display: 'inline-flex',
320
+ alignItems: 'center',
321
+ justifyContent: 'center',
322
+ width: 132,
323
+ height: 34,
324
+ padding: '0 12px',
325
+ boxSizing: 'border-box',
326
+ whiteSpace: 'nowrap',
327
+ borderRadius: 6,
328
+ border: `1px solid ${theme.colors.border}`,
329
+ background: 'transparent',
330
+ color: theme.colors.textSecondary,
331
+ fontFamily: theme.fonts.body,
332
+ fontSize: theme.fontSizes[1],
333
+ cursor: 'pointer',
334
+ };
335
+ }
336
+ //# sourceMappingURL=C4ProjectionView.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"C4ProjectionView.js","sourceRoot":"","sources":["../../src/subsystem/C4ProjectionView.tsx"],"names":[],"mappings":"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"}
@@ -0,0 +1,23 @@
1
+ /**
2
+ * C4SketchView — a standalone authored C4 hypothesis.
3
+ *
4
+ * Pure presentation: the host loads the sketch and passes it in. There is no
5
+ * model comparison, grounding, or promotion here; a sketch is a diagram in its
6
+ * own right.
7
+ */
8
+ import type { CSSProperties, ReactNode } from 'react';
9
+ import type { C4Sketch } from './c4Sketch';
10
+ export interface C4SketchViewProps {
11
+ sketch: C4Sketch;
12
+ /** Controlled open-container ids. Omit to let the view own them. */
13
+ openContainerIds?: readonly string[];
14
+ onOpenContainerIdsChange?: (ids: string[]) => void;
15
+ /** Extra controls in the header. */
16
+ headerActions?: ReactNode;
17
+ /** Sidebar width persistence key. */
18
+ persistKey?: string;
19
+ /** Outer style for the flex fill. */
20
+ style?: CSSProperties;
21
+ }
22
+ export declare function C4SketchView({ sketch, openContainerIds, onOpenContainerIdsChange, headerActions, persistKey, style, }: C4SketchViewProps): import("react").JSX.Element;
23
+ //# sourceMappingURL=C4SketchView.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"C4SketchView.d.ts","sourceRoot":"","sources":["../../src/subsystem/C4SketchView.tsx"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAGH,OAAO,KAAK,EAAE,aAAa,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAMtD,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AAE3C,MAAM,WAAW,iBAAiB;IAChC,MAAM,EAAE,QAAQ,CAAC;IACjB,oEAAoE;IACpE,gBAAgB,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;IACrC,wBAAwB,CAAC,EAAE,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,IAAI,CAAC;IACnD,oCAAoC;IACpC,aAAa,CAAC,EAAE,SAAS,CAAC;IAC1B,qCAAqC;IACrC,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,qCAAqC;IACrC,KAAK,CAAC,EAAE,aAAa,CAAC;CACvB;AAED,wBAAgB,YAAY,CAAC,EAC3B,MAAM,EACN,gBAAgB,EAChB,wBAAwB,EACxB,aAAa,EACb,UAAU,EACV,KAAK,GACN,EAAE,iBAAiB,+BAkLnB"}
@@ -0,0 +1,119 @@
1
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
+ /**
3
+ * C4SketchView — a standalone authored C4 hypothesis.
4
+ *
5
+ * Pure presentation: the host loads the sketch and passes it in. There is no
6
+ * model comparison, grounding, or promotion here; a sketch is a diagram in its
7
+ * own right.
8
+ */
9
+ import { useCallback, useMemo, useState } from 'react';
10
+ import { useTheme } from '@principal-ade/industry-theme';
11
+ import { PencilRuler } from 'lucide-react';
12
+ import { IndustryMarkdownSlide } from 'themed-markdown';
13
+ import { C4Graph } from './C4Graph';
14
+ import { GraphWithSidebar } from './GraphWithSidebar';
15
+ export function C4SketchView({ sketch, openContainerIds, onOpenContainerIdsChange, headerActions, persistKey, style, }) {
16
+ const { theme } = useTheme();
17
+ const [internalOpenIds, setInternalOpenIds] = useState(() => [...(openContainerIds ?? sketch.model.openContainerIds ?? [])].sort());
18
+ const resolvedOpenIds = openContainerIds
19
+ ? [...openContainerIds]
20
+ : internalOpenIds;
21
+ const setOpenIds = useCallback((next) => {
22
+ if (!openContainerIds)
23
+ setInternalOpenIds(next);
24
+ onOpenContainerIdsChange?.(next);
25
+ }, [onOpenContainerIdsChange, openContainerIds]);
26
+ const model = useMemo(() => ({ ...sketch.model, openContainerIds: resolvedOpenIds }), [resolvedOpenIds, sketch.model]);
27
+ const toggleContainer = useCallback((id) => {
28
+ setOpenIds(resolvedOpenIds.includes(id)
29
+ ? resolvedOpenIds.filter((openId) => openId !== id)
30
+ : [...resolvedOpenIds, id].sort());
31
+ }, [resolvedOpenIds, setOpenIds]);
32
+ const openAll = useCallback(() => {
33
+ setOpenIds(sketch.model.nodes
34
+ .filter((node) => node.kind === 'container')
35
+ .map((node) => node.id)
36
+ .sort());
37
+ }, [setOpenIds, sketch.model.nodes]);
38
+ const collapseAll = useCallback(() => setOpenIds([]), [setOpenIds]);
39
+ const notes = sketch.notes?.trim();
40
+ const notesPanel = notes ? (_jsxs("div", { style: { display: 'flex', flexDirection: 'column', gap: 8 }, children: [_jsx("div", { style: {
41
+ fontSize: 10,
42
+ fontFamily: theme.fonts.monospace,
43
+ letterSpacing: 0.4,
44
+ color: theme.colors.textSecondary,
45
+ }, children: "ABOUT" }), _jsx(IndustryMarkdownSlide, { content: notes, slideIdPrefix: `c4-sketch-notes-${sketch.id}`, slideIndex: 0, isVisible: true, theme: theme, disableScroll: true, disableBasePadding: true, enableKeyboardScrolling: false, autoFocusOnVisible: false })] })) : null;
46
+ return (_jsxs("div", { style: {
47
+ width: '100%',
48
+ height: '100%',
49
+ display: 'flex',
50
+ flexDirection: 'column',
51
+ background: theme.colors.background,
52
+ ...style,
53
+ }, children: [_jsxs("header", { style: {
54
+ flexShrink: 0,
55
+ display: 'flex',
56
+ alignItems: 'center',
57
+ gap: 12,
58
+ flexWrap: 'wrap',
59
+ padding: '12px 16px',
60
+ background: theme.colors.background,
61
+ borderBottom: `1px solid ${theme.colors.border}`,
62
+ }, children: [_jsxs("div", { style: {
63
+ minWidth: 240,
64
+ flex: 1,
65
+ display: 'flex',
66
+ alignItems: 'center',
67
+ gap: 8,
68
+ flexWrap: 'wrap',
69
+ }, children: [_jsx("h2", { style: {
70
+ margin: 0,
71
+ minWidth: 0,
72
+ fontSize: theme.fontSizes[2],
73
+ fontWeight: 600,
74
+ color: theme.colors.text,
75
+ fontFamily: theme.fonts.monospace,
76
+ overflowWrap: 'anywhere',
77
+ }, children: sketch.title }), _jsxs("span", { style: {
78
+ display: 'inline-flex',
79
+ alignItems: 'center',
80
+ gap: 4,
81
+ padding: '1px 7px',
82
+ borderRadius: 4,
83
+ border: '1px solid #e3b341',
84
+ color: '#e3b341',
85
+ fontFamily: theme.fonts.monospace,
86
+ fontSize: 10,
87
+ letterSpacing: 0.4,
88
+ flexShrink: 0,
89
+ }, children: [_jsx(PencilRuler, { size: 10, "aria-hidden": "true" }), "SKETCH"] })] }), _jsxs("div", { style: {
90
+ marginLeft: 'auto',
91
+ flexShrink: 0,
92
+ display: 'flex',
93
+ alignItems: 'center',
94
+ gap: 6,
95
+ flexWrap: 'wrap',
96
+ }, children: [headerActions, _jsx("button", { type: "button", onClick: openAll, style: smallButton(theme, { width: 132 }), children: "Open all" }), _jsx("button", { type: "button", onClick: collapseAll, style: smallButton(theme, { width: 132 }), children: "Collapse all" })] })] }), _jsx("div", { style: { flex: 1, minHeight: 0 }, children: _jsx(GraphWithSidebar, { hidden: !notes, stretchHeader: true, defaultWidth: 320, minWidth: 240, maxWidth: 480, persistKey: persistKey ?? `c4-sketch-notes-${sketch.id}`, header: notesPanel, children: _jsx(C4Graph, { model: model, onToggleContainer: toggleContainer }) }) })] }));
97
+ }
98
+ function smallButton(theme, opts = {}) {
99
+ return {
100
+ flexShrink: 0,
101
+ display: 'inline-flex',
102
+ alignItems: 'center',
103
+ justifyContent: 'center',
104
+ gap: 5,
105
+ ...(opts.width ? { width: opts.width } : {}),
106
+ height: 34,
107
+ padding: '0 10px',
108
+ boxSizing: 'border-box',
109
+ whiteSpace: 'nowrap',
110
+ borderRadius: 6,
111
+ border: `1px solid ${theme.colors.border}`,
112
+ background: 'transparent',
113
+ color: theme.colors.textSecondary,
114
+ fontFamily: theme.fonts.body,
115
+ fontSize: theme.fontSizes[1],
116
+ cursor: 'pointer',
117
+ };
118
+ }
119
+ //# sourceMappingURL=C4SketchView.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"C4SketchView.js","sourceRoot":"","sources":["../../src/subsystem/C4SketchView.tsx"],"names":[],"mappings":"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"}
@@ -0,0 +1,6 @@
1
+ /// <reference types="react" />
2
+ export declare function DescriptionOverlay({ description, onClose }: {
3
+ description: string;
4
+ onClose: () => void;
5
+ }): import("react").JSX.Element;
6
+ //# sourceMappingURL=DescriptionOverlay.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"DescriptionOverlay.d.ts","sourceRoot":"","sources":["../../src/subsystem/DescriptionOverlay.tsx"],"names":[],"mappings":";AAKA,wBAAgB,kBAAkB,CAAC,EAAE,WAAW,EAAE,OAAO,EAAE,EAAE;IAC3D,WAAW,EAAE,MAAM,CAAC;IACpB,OAAO,EAAE,MAAM,IAAI,CAAC;CACrB,+BA4FA"}
@@ -0,0 +1,58 @@
1
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
+ import { useEffect, useRef } from 'react';
3
+ import { useTheme } from '@principal-ade/industry-theme';
4
+ import { X } from 'lucide-react';
5
+ import { IndustryMarkdownSlide } from 'themed-markdown';
6
+ export function DescriptionOverlay({ description, onClose }) {
7
+ const { theme } = useTheme();
8
+ const closeRef = useRef(null);
9
+ useEffect(() => {
10
+ const previousFocus = document.activeElement;
11
+ closeRef.current?.focus();
12
+ return () => {
13
+ if (previousFocus instanceof HTMLElement && previousFocus.isConnected)
14
+ previousFocus.focus();
15
+ };
16
+ }, []);
17
+ return (_jsxs("div", { role: "dialog", "aria-label": "Subsystem description", onKeyDown: (event) => {
18
+ if (event.key === 'Escape') {
19
+ event.stopPropagation();
20
+ onClose();
21
+ }
22
+ }, style: {
23
+ position: 'absolute',
24
+ inset: 0,
25
+ zIndex: 10,
26
+ display: 'flex',
27
+ flexDirection: 'column',
28
+ background: theme.colors.background,
29
+ color: theme.colors.text,
30
+ }, children: [_jsxs("div", { style: {
31
+ display: 'flex',
32
+ alignItems: 'center',
33
+ gap: 8,
34
+ flexShrink: 0,
35
+ padding: '12px 16px',
36
+ borderBottom: `1px solid ${theme.colors.border}`,
37
+ }, children: [_jsx("h3", { style: {
38
+ flex: 1,
39
+ margin: 0,
40
+ fontSize: theme.fontSizes[1],
41
+ fontFamily: theme.fonts.monospace,
42
+ textTransform: 'uppercase',
43
+ color: theme.colors.textSecondary,
44
+ }, children: "Overview" }), _jsx("button", { ref: closeRef, type: "button", "aria-label": "Close description", onClick: onClose, style: {
45
+ display: 'inline-flex',
46
+ alignItems: 'center',
47
+ justifyContent: 'center',
48
+ width: 24,
49
+ height: 24,
50
+ padding: 0,
51
+ border: 'none',
52
+ borderRadius: 4,
53
+ background: 'transparent',
54
+ color: theme.colors.textSecondary,
55
+ cursor: 'pointer',
56
+ }, children: _jsx(X, { size: 14 }) })] }), _jsx("div", { style: { flex: 1, minHeight: 0, overflow: 'auto', padding: '20px 0 32px' }, children: _jsx("div", { style: { lineHeight: 1.7 }, children: _jsx(IndustryMarkdownSlide, { content: description, slideIdPrefix: "subsystem-desc-overlay", slideIndex: 0, isVisible: true, theme: theme, disableScroll: true, disableBasePadding: true, transparentBackground: true, additionalPadding: { left: '24px', right: '24px' }, fontSizeScale: 1.05, enableKeyboardScrolling: false, autoFocusOnVisible: false }) }) })] }));
57
+ }
58
+ //# sourceMappingURL=DescriptionOverlay.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"DescriptionOverlay.js","sourceRoot":"","sources":["../../src/subsystem/DescriptionOverlay.tsx"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"SubsystemComponentGraph.d.ts","sourceRoot":"","sources":["../../src/subsystem/SubsystemComponentGraph.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"SubsystemComponentGraph.d.ts","sourceRoot":"","sources":["../../src/subsystem/SubsystemComponentGraph.tsx"],"names":[],"mappings":"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"}