@principal-ai/principal-view-react 0.16.26 → 0.16.28

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.
@@ -23,6 +23,10 @@ export interface SubsystemComponentGraphProps {
23
23
  maxNodeWidth?: number;
24
24
  /** Show edge labels (mechanism names) on the graph. @default true */
25
25
  showEdgeLabels?: boolean;
26
+ /** Subsystem title displayed in the sidebar. */
27
+ title?: string;
28
+ /** Markdown description rendered in the sidebar. */
29
+ description?: string;
26
30
  }
27
31
  export declare function SubsystemComponentGraph(props: SubsystemComponentGraphProps): import("react/jsx-runtime").JSX.Element;
28
32
  //# sourceMappingURL=SubsystemComponentGraph.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"SubsystemComponentGraph.d.ts","sourceRoot":"","sources":["../../src/subsystem/SubsystemComponentGraph.tsx"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAsBH,OAAO,EAKL,KAAK,sBAAsB,EAC3B,KAAK,kBAAkB,EAExB,MAAM,SAAS,CAAC;AAIjB,MAAM,WAAW,4BAA4B;IAC3C,UAAU,EAAE,kBAAkB,EAAE,CAAC;IACjC,KAAK,EAAE,sBAAsB,EAAE,CAAC;IAChC,QAAQ,CAAC,EAAE,CAAC,WAAW,EAAE,MAAM,KAAK,IAAI,CAAC;IACzC,6EAA6E;IAC7E,YAAY,CAAC,EAAE,CAAC,IAAI,EAAE,sBAAsB,KAAK,IAAI,CAAC;IACtD;kFAC8E;IAC9E,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,qEAAqE;IACrE,cAAc,CAAC,EAAE,OAAO,CAAC;CAC1B;AAyeD,wBAAgB,uBAAuB,CAAC,KAAK,EAAE,4BAA4B,2CAsC1E"}
1
+ {"version":3,"file":"SubsystemComponentGraph.d.ts","sourceRoot":"","sources":["../../src/subsystem/SubsystemComponentGraph.tsx"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAuBH,OAAO,EAKL,KAAK,sBAAsB,EAC3B,KAAK,kBAAkB,EAExB,MAAM,SAAS,CAAC;AAuBjB,MAAM,WAAW,4BAA4B;IAC3C,UAAU,EAAE,kBAAkB,EAAE,CAAC;IACjC,KAAK,EAAE,sBAAsB,EAAE,CAAC;IAChC,QAAQ,CAAC,EAAE,CAAC,WAAW,EAAE,MAAM,KAAK,IAAI,CAAC;IACzC,6EAA6E;IAC7E,YAAY,CAAC,EAAE,CAAC,IAAI,EAAE,sBAAsB,KAAK,IAAI,CAAC;IACtD;kFAC8E;IAC9E,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,qEAAqE;IACrE,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB,gDAAgD;IAChD,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,oDAAoD;IACpD,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AA4iBD,wBAAgB,uBAAuB,CAAC,KAAK,EAAE,4BAA4B,2CAsC1E"}
@@ -15,15 +15,34 @@ import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-run
15
15
  import { useCallback, useEffect, useMemo, useRef, useState } from 'react';
16
16
  import { ReactFlow, ReactFlowProvider, Background, BackgroundVariant, Controls, useReactFlow, useViewport, applyNodeChanges, } from '@xyflow/react';
17
17
  import { useTheme } from '@principal-ade/industry-theme';
18
+ import { IndustryMarkdownSlide } from 'themed-markdown';
18
19
  import { buildSubsystemGraph, KIND_COLOR, MECHANISM_COLOR, deriveNameFromSymbol, } from './model';
19
20
  import { SubsystemComponentNode, SubsystemEdge, SUBSYSTEM_CALLBACKS } from './nodes';
21
+ const MECHANISM_DESCRIPTIONS = [
22
+ ['imports', 'imports symbols from'],
23
+ ['imports_from', 'imported by'],
24
+ ['re_exports', 're-exports symbols from'],
25
+ ['defines', 'defines / declares'],
26
+ ['calls', 'invokes / calls into'],
27
+ ['extends', 'extends / inherits from'],
28
+ ['inherits', 'inherits from'],
29
+ ['implements', 'implements interface / protocol'],
30
+ ['mixes_in', 'mixes in / applies mixin'],
31
+ ['uses', 'uses / depends on'],
32
+ ['method', 'has method / member'],
33
+ ['references', 'references type / symbol'],
34
+ ['contains', 'contains / encapsulates'],
35
+ ['feeds', 'feeds data into'],
36
+ ['produces', 'produces / outputs'],
37
+ ['registers-into', 'registers into'],
38
+ ];
20
39
  const nodeTypes = {
21
40
  'subsystem-component': SubsystemComponentNode,
22
41
  };
23
42
  const edgeTypes = {
24
43
  'subsystem-edge': SubsystemEdge,
25
44
  };
26
- function Inner({ components, edges, onSelect, onEdgeSelect, measured, maxNodeWidth, showEdgeLabels }) {
45
+ function Inner({ components, edges, onSelect, onEdgeSelect, measured: _measured, maxNodeWidth, showEdgeLabels, title, description }) {
27
46
  const { theme } = useTheme();
28
47
  const { fitView } = useReactFlow();
29
48
  const viewport = useViewport();
@@ -205,43 +224,63 @@ function Inner({ components, edges, onSelect, onEdgeSelect, measured, maxNodeWid
205
224
  };
206
225
  });
207
226
  }, [dispEdges]);
208
- return (_jsxs("div", { style: { visibility: layoutReady ? 'visible' : 'hidden', width: '100%', height: '100%', display: 'flex', flexDirection: 'column' }, children: [showEdgeLabels !== false && (_jsx("div", { style: {
209
- position: 'absolute',
210
- inset: 0,
211
- overflow: 'hidden',
212
- pointerEvents: 'none',
213
- zIndex: 5,
214
- }, children: edgeLabels.map((lbl) => {
215
- const color = MECHANISM_COLOR[lbl.mechanism] ?? '#888';
216
- const screenX = lbl.midX * viewport.zoom + viewport.x;
217
- const screenY = lbl.midY * viewport.zoom + viewport.y;
218
- return (_jsx("div", { "data-edge-label": lbl.id, onClick: (e) => {
219
- e.stopPropagation();
220
- selectEdge(lbl.id);
221
- }, style: {
227
+ const usedMechanisms = useMemo(() => {
228
+ return new Set(edgeLabels.map((l) => l.mechanism));
229
+ }, [edgeLabels]);
230
+ const muted = theme.colors.textMuted ?? theme.colors.textSecondary;
231
+ return (_jsxs("div", { style: { visibility: layoutReady ? 'visible' : 'hidden', width: '100%', height: '100%', display: 'flex', flexDirection: 'row' }, children: [(title || description || usedMechanisms.size > 0) && (_jsxs("div", { style: {
232
+ width: 280,
233
+ minWidth: 280,
234
+ borderRight: `1px solid ${theme.colors.border}`,
235
+ background: theme.colors.backgroundSecondary ?? theme.colors.background,
236
+ padding: '16px',
237
+ overflowY: 'auto',
238
+ display: 'flex',
239
+ flexDirection: 'column',
240
+ gap: 12,
241
+ }, children: [title && (_jsx("h2", { style: {
242
+ margin: 0,
243
+ fontSize: theme.fontSizes[2],
244
+ fontWeight: 600,
245
+ color: theme.colors.text,
246
+ fontFamily: theme.fonts.heading,
247
+ }, children: title })), description && (_jsx("div", { style: { fontSize: theme.fontSizes[0], lineHeight: 1.5 }, children: _jsx(IndustryMarkdownSlide, { content: description, slideIdPrefix: "subsystem-desc", slideIndex: 0, isVisible: true, theme: theme, disableScroll: true, fontSizeScale: 0.9, enableKeyboardScrolling: false, autoFocusOnVisible: false }) })), usedMechanisms.size > 0 && (_jsxs("div", { style: { display: 'flex', flexDirection: 'column', gap: 4 }, children: [_jsx("span", { style: { fontSize: theme.fontSizes[0] * 0.8, fontFamily: theme.fonts.monospace, textTransform: 'uppercase', color: muted, fontWeight: 600 }, children: "Edge Legend" }), MECHANISM_DESCRIPTIONS.filter(([m]) => usedMechanisms.has(m)).map(([mechanism, desc]) => (_jsxs("div", { style: { display: 'flex', alignItems: 'center', gap: 6, fontSize: theme.fontSizes[0] }, children: [_jsx("span", { style: { width: 8, height: 8, borderRadius: '50%', background: MECHANISM_COLOR[mechanism], flexShrink: 0 } }), _jsx("span", { style: { fontFamily: theme.fonts.monospace, color: MECHANISM_COLOR[mechanism], fontWeight: 500 }, children: mechanism }), _jsx("span", { style: { color: muted }, children: desc })] }, mechanism)))] }))] })), _jsxs("div", { style: { flex: 1, position: 'relative', display: 'flex', flexDirection: 'column', minHeight: 0 }, children: [showEdgeLabels !== false && (_jsx("div", { style: {
222
248
  position: 'absolute',
223
- left: screenX,
224
- top: screenY,
225
- fontSize: 10,
226
- fontFamily: theme.fonts.monospace,
227
- fontWeight: 500,
228
- color,
229
- background: 'rgba(21,21,21,0.9)',
230
- border: `0.5px solid ${color}`,
231
- borderRadius: 4,
232
- padding: '1px 5px',
233
- cursor: 'pointer',
234
- pointerEvents: 'auto',
235
- opacity: lbl.dimmed ? 0.15 : 1,
236
- whiteSpace: 'nowrap',
237
- }, children: lbl.mechanism }, lbl.id));
238
- }) })), _jsxs(ReactFlow, { nodes: xyflowNodesBase, edges: dispEdges, nodeTypes: nodeTypes, edgeTypes: edgeTypes, minZoom: 0.05, maxZoom: 4, onNodeClick: onNodeClick, onEdgeClick: onEdgeClick, onNodesChange: onNodesChange, onEdgesChange: onEdgesChange, proOptions: { hideAttribution: true }, nodesDraggable: false, elementsSelectable: true, selectNodesOnDrag: false, nodesConnectable: false, edgesReconnectable: false, onPaneClick: onPaneClick, panOnDrag: true, panOnScroll: true, zoomOnScroll: false, zoomOnPinch: true, zoomOnDoubleClick: false, style: {
239
- width: measured ? measured.w : '100%',
240
- height: measured ? measured.h : '100%',
241
- flex: 1,
242
- minHeight: 0,
243
- background: theme.colors.background,
244
- }, children: [_jsx(Background, { variant: BackgroundVariant.Dots, gap: 16, size: 1 }), _jsx(Controls, { showZoom: true, showFitView: true, showInteractive: true })] }, `${baseNodesKey}-${baseEdgesKey}`), selected && _jsx(ComponentDetail, { component: selected })] }));
249
+ inset: 0,
250
+ overflow: 'hidden',
251
+ pointerEvents: 'none',
252
+ zIndex: 5,
253
+ }, children: edgeLabels.map((lbl) => {
254
+ const color = MECHANISM_COLOR[lbl.mechanism] ?? '#888';
255
+ const screenX = lbl.midX * viewport.zoom + viewport.x;
256
+ const screenY = lbl.midY * viewport.zoom + viewport.y;
257
+ return (_jsx("div", { "data-edge-label": lbl.id, onClick: (e) => {
258
+ e.stopPropagation();
259
+ selectEdge(lbl.id);
260
+ }, style: {
261
+ position: 'absolute',
262
+ left: screenX,
263
+ top: screenY,
264
+ fontSize: 10,
265
+ fontFamily: theme.fonts.monospace,
266
+ fontWeight: 500,
267
+ color,
268
+ background: 'rgba(21,21,21,0.9)',
269
+ border: `0.5px solid ${color}`,
270
+ borderRadius: 4,
271
+ padding: '1px 5px',
272
+ cursor: 'pointer',
273
+ pointerEvents: 'auto',
274
+ opacity: lbl.dimmed ? 0.15 : 1,
275
+ whiteSpace: 'nowrap',
276
+ }, children: lbl.mechanism }, lbl.id));
277
+ }) })), _jsxs(ReactFlow, { nodes: xyflowNodesBase, edges: dispEdges, nodeTypes: nodeTypes, edgeTypes: edgeTypes, minZoom: 0.05, maxZoom: 4, onNodeClick: onNodeClick, onEdgeClick: onEdgeClick, onNodesChange: onNodesChange, onEdgesChange: onEdgesChange, proOptions: { hideAttribution: true }, nodesDraggable: false, elementsSelectable: true, selectNodesOnDrag: false, nodesConnectable: false, edgesReconnectable: false, onPaneClick: onPaneClick, panOnDrag: true, panOnScroll: true, zoomOnScroll: false, zoomOnPinch: true, zoomOnDoubleClick: false, style: {
278
+ width: '100%',
279
+ height: '100%',
280
+ flex: 1,
281
+ minHeight: 0,
282
+ background: theme.colors.background,
283
+ }, children: [_jsx(Background, { variant: BackgroundVariant.Dots, gap: 16, size: 1 }), _jsx(Controls, { showZoom: true, showFitView: true, showInteractive: true })] }, `${baseNodesKey}-${baseEdgesKey}`), selected && _jsx(ComponentDetail, { component: selected })] })] }));
245
284
  }
246
285
  /** Detail panel for the selected component — the verifiable identity + sources
247
286
  * moved off the canvas so nodes stay minimal. */
@@ -1 +1 @@
1
- {"version":3,"file":"SubsystemComponentGraph.js","sourceRoot":"","sources":["../../src/subsystem/SubsystemComponentGraph.tsx"],"names":[],"mappings":";AAAA;;;;;;;;;;;;GAYG;AAEH,OAAO,EAAE,WAAW,EAAE,SAAS,EAAE,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAC;AAE1E,OAAO,EACL,SAAS,EACT,iBAAiB,EACjB,UAAU,EACV,iBAAiB,EACjB,QAAQ,EACR,YAAY,EACZ,WAAW,EAQX,gBAAgB,GACjB,MAAM,eAAe,CAAC;AACvB,OAAO,EAAE,QAAQ,EAAE,MAAM,+BAA+B,CAAC;AACzD,OAAO,EACL,mBAAmB,EACnB,UAAU,EACV,eAAe,EACf,oBAAoB,GAIrB,MAAM,SAAS,CAAC;AAEjB,OAAO,EAAE,sBAAsB,EAAE,aAAa,EAAE,mBAAmB,EAAE,MAAM,SAAS,CAAC;AAerF,MAAM,SAAS,GAAc;IAC3B,qBAAqB,EAAE,sBAAsB;CAC9C,CAAC;AAEF,MAAM,SAAS,GAAc;IAC3B,gBAAgB,EAAE,aAAa;CAChC,CAAC;AAMF,SAAS,KAAK,CAAC,EAAE,UAAU,EAAE,KAAK,EAAE,QAAQ,EAAE,YAAY,EAAE,QAAQ,EAAE,YAAY,EAAE,cAAc,EAAc;IAC9G,MAAM,EAAE,KAAK,EAAE,GAAG,QAAQ,EAAE,CAAC;IAC7B,MAAM,EAAE,OAAO,EAAE,GAAG,YAAY,EAAE,CAAC;IACnC,MAAM,QAAQ,GAAG,WAAW,EAAE,CAAC;IAC/B,MAAM,CAAC,KAAK,EAAE,QAAQ,CAAC,GAAG,QAAQ,CAAmC;QACnE,KAAK,EAAE,EAAE;QACT,KAAK,EAAE,EAAE;KACV,CAAC,CAAC;IACH,MAAM,CAAC,WAAW,EAAE,cAAc,CAAC,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC;IACtD,MAAM,CAAC,QAAQ,EAAE,WAAW,CAAC,GAAG,QAAQ,CAA4B,IAAI,CAAC,CAAC;IAC1E,uEAAuE;IACvE,kEAAkE;IAClE,MAAM,WAAW,GAAG,MAAM,CAA4B,IAAI,CAAC,CAAC;IAC5D,WAAW,CAAC,OAAO,GAAG,QAAQ,CAAC;IAE/B,yEAAyE;IACzE,gDAAgD;IAChD,SAAS,CAAC,GAAG,EAAE;QACb,IAAI,KAAK,GAAG,IAAI,CAAC;QACjB,YAAY,CAAC,OAAO,GAAG,KAAK,CAAC;QAC7B,eAAe,CAAC,OAAO,GAAG,IAAI,GAAG,EAAE,CAAC;QACpC,kBAAkB,CAAC,OAAO,GAAG,EAAE,CAAC;QAChC,KAAK,mBAAmB,CAAC,EAAE,UAAU,EAAE,KAAK,EAAE,EAAE,EAAE,YAAY,EAAE,cAAc,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,EAAE,KAAK,EAAE,KAAK,EAAE,CAAC,EAAE,EAAE,EAAE;YAC7G,IAAI,CAAC,KAAK;gBAAE,OAAO;YACnB,QAAQ,CAAC,EAAE,KAAK,EAAE,KAAK,EAAE,CAAW,EAAE,CAAC,CAAC;YACxC,cAAc,CAAC,KAAK,CAAC,CAAC;QACxB,CAAC,CAAC,CAAC;QACH,OAAO,GAAG,EAAE,GAAG,KAAK,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;IAClC,CAAC,EAAE,CAAC,UAAU,EAAE,KAAK,CAAC,CAAC,CAAC;IAExB,iEAAiE;IACjE,2EAA2E;IAC3E,MAAM,eAAe,GAAG,MAAM,CAAC,IAAI,GAAG,EAA6C,CAAC,CAAC;IACrF,MAAM,kBAAkB,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC;IAEzC,gEAAgE;IAChE,MAAM,kBAAkB,GAAG,MAAM,CAAC,EAAE,CAAC,CAAC;IACtC,MAAM,YAAY,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC;IACnC,MAAM,YAAY,GAAG,WAAW,CAAC,GAAG,EAAE;QACpC,IAAI,YAAY,CAAC,OAAO;YAAE,OAAO;QACjC,MAAM,IAAI,GAAG,eAAe,CAAC,OAAO,CAAC;QACrC,IAAI,IAAI,CAAC,IAAI,GAAG,KAAK,CAAC,KAAK,CAAC,MAAM;YAAE,OAAO;QAC3C,MAAM,GAAG,GAAG,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,KAAK,IAAI,GAAG,EAAE,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QACxF,IAAI,GAAG,CAAC,QAAQ,CAAC,IAAI,CAAC;YAAE,OAAO;QAC/B,IAAI,GAAG,KAAK,kBAAkB,CAAC,OAAO;YAAE,OAAO;QAC/C,kBAAkB,CAAC,OAAO,GAAG,GAAG,CAAC;QACjC,kBAAkB,CAAC,OAAO,GAAG,KAAK,CAAC;QACnC,YAAY,CAAC,OAAO,GAAG,IAAI,CAAC;QAE5B,MAAM,cAAc,GAAG,IAAI,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAE,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;QACtF,MAAM,eAAe,GAAG,IAAI,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAE,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;QACxF,IAAI,KAAK,GAAG,IAAI,CAAC;QACjB,KAAK,mBAAmB,CACtB,EAAE,UAAU,EAAE,KAAK,EAAE,EACrB,EAAE,YAAY,EAAE,cAAc,EAAE,cAAc,EAAE,eAAe,EAAE,CAClE,CAAC,IAAI,CAAC,CAAC,EAAE,KAAK,EAAE,KAAK,EAAE,CAAC,EAAE,EAAE,EAAE;YAC7B,IAAI,CAAC,KAAK;gBAAE,OAAO;YACnB,QAAQ,CAAC,EAAE,KAAK,EAAE,KAAK,EAAE,CAAW,EAAE,CAAC,CAAC;YACxC,cAAc,CAAC,IAAI,CAAC,CAAC;QACvB,CAAC,CAAC,CAAC;QACH,OAAO,GAAG,EAAE,GAAG,KAAK,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;IAClC,CAAC,EAAE,CAAC,KAAK,CAAC,KAAK,EAAE,UAAU,EAAE,KAAK,EAAE,YAAY,EAAE,cAAc,CAAC,CAAC,CAAC;IAEnE,0EAA0E;IAC1E,+EAA+E;IAC/E,gFAAgF;IAChF,MAAM,QAAQ,GAAG,OAAO,CAAC,GAAG,EAAE,CAAC,IAAI,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC;IAE9E,4EAA4E;IAC5E,2DAA2D;IAC3D,MAAM,UAAU,GAAG,WAAW,CAC5B,CAAC,MAAc,EAAE,EAAE;QACjB,IAAI,iBAAiB,CAAC,OAAO,KAAK,MAAM,EAAE;YACxC,iBAAiB,CAAC,IAAI,CAAC,CAAC;YACxB,OAAO;SACR;QACD,MAAM,GAAG,GAAG,QAAQ,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;QACjC,iBAAiB,CAAC,MAAM,CAAC,CAAC;QAC1B,IAAI,GAAG;YAAE,YAAY,EAAE,CAAC,GAAG,CAAC,CAAC;IAC/B,CAAC,EACD,CAAC,QAAQ,EAAE,YAAY,CAAC,CACzB,CAAC;IAEF,SAAS,CAAC,GAAG,EAAE;QACb,mBAAmB,CAAC,QAAQ,GAAG,CAAC,EAAU,EAAE,EAAE;YAC5C,MAAM,IAAI,GAAG,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC;YACjD,IAAI,IAAI,EAAE;gBACR,gEAAgE;gBAChE,IAAI,WAAW,CAAC,OAAO,EAAE,EAAE,KAAK,IAAI,CAAC,EAAE,EAAE;oBACvC,WAAW,CAAC,IAAI,CAAC,CAAC;oBAClB,iBAAiB,CAAC,IAAI,CAAC,CAAC;oBACxB,OAAO;iBACR;gBACD,WAAW,CAAC,IAAI,CAAC,CAAC;gBAClB,iBAAiB,CAAC,IAAI,CAAC,CAAC;gBACxB,QAAQ,EAAE,CAAC,EAAE,CAAC,CAAC;aAChB;QACH,CAAC,CAAC;QACF,mBAAmB,CAAC,YAAY,GAAG,UAAU,CAAC;QAC9C,mBAAmB,CAAC,YAAY,GAAG,YAAY,CAAC;QAChD,OAAO,GAAG,EAAE;YACV,mBAAmB,CAAC,QAAQ,GAAG,SAAS,CAAC;YACzC,mBAAmB,CAAC,YAAY,GAAG,SAAS,CAAC;YAC7C,mBAAmB,CAAC,YAAY,GAAG,SAAS,CAAC;QAC/C,CAAC,CAAC;IACJ,CAAC,EAAE,CAAC,UAAU,EAAE,QAAQ,EAAE,YAAY,EAAE,UAAU,CAAC,CAAC,CAAC;IAErD,MAAM,EAAE,KAAK,EAAE,KAAK,EAAE,cAAc,EAAE,GAAG,KAAK,CAAC;IAC/C,MAAM,eAAe,GAAG,KAAe,CAAC;IACxC,MAAM,SAAS,GAAG,cAAwB,CAAC;IAE3C,MAAM,YAAY,GAAG,OAAO,CAAC,GAAG,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC;IACrF,MAAM,YAAY,GAAG,OAAO,CAC1B,GAAG,EAAE,CAAC,cAAc,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,EACtD,CAAC,cAAc,CAAC,CACjB,CAAC;IAEF,0EAA0E;IAC1E,MAAM,CAAC,cAAc,EAAE,iBAAiB,CAAC,GAAG,QAAQ,CAAgB,IAAI,CAAC,CAAC;IAC1E,wEAAwE;IACxE,iCAAiC;IACjC,MAAM,iBAAiB,GAAG,MAAM,CAAgB,IAAI,CAAC,CAAC;IACtD,iBAAiB,CAAC,OAAO,GAAG,cAAc,CAAC;IAC3C,MAAM,SAAS,GAAG,OAAO,CAAC,GAAG,EAAE;QAC7B,IAAI,CAAC,cAAc;YAAE,OAAO,SAAS,CAAC;QACtC,OAAO,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;YAC3B,GAAG,CAAC;YACJ,IAAI,EAAE;gBACJ,GAAI,CAAC,CAAC,IAAe;gBACrB,MAAM,EAAE,CAAC,CAAC,EAAE,KAAK,cAAc;aAChC;SACF,CAAC,CAAC,CAAC;IACN,CAAC,EAAE,CAAC,SAAS,EAAE,cAAc,CAAC,CAAC,CAAC;IAEhC,MAAM,aAAa,GAAG,WAAW,CAC/B,CAAC,OAAqB,EAAE,EAAE;QACxB,iEAAiE;QACjE,KAAK,MAAM,EAAE,IAAI,OAAO,EAAE;YACxB,IAAI,EAAE,CAAC,IAAI,KAAK,YAAY,IAAI,EAAE,CAAC,UAAU,EAAE;gBAC7C,eAAe,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,UAAU,CAAC,CAAC;gBAClD,kBAAkB,CAAC,OAAO,GAAG,IAAI,CAAC;aACnC;SACF;QACD,MAAM,MAAM,GAAG,gBAAgB,CAAC,OAAO,EAAE,eAAe,CAAC,CAAC;QAC1D,6DAA6D;QAC7D,IAAI,kBAAkB,CAAC,OAAO,EAAE;YAC9B,yEAAyE;YACzE,cAAc,CAAC,GAAG,EAAE,CAAC,YAAY,EAAE,CAAC,CAAC;SACtC;QACD,OAAO,MAAM,CAAC;IAChB,CAAC,EACD,CAAC,eAAe,EAAE,YAAY,CAAC,CAChC,CAAC;IACF,MAAM,aAAa,GAAG,WAAW,CAC/B,CAAC,QAAsB,EAAE,EAAE,CAAC,SAAS,EACrC,CAAC,SAAS,CAAC,CACZ,CAAC;IAEF,SAAS,CAAC,GAAG,EAAE;QACb,MAAM,CAAC,GAAG,UAAU,CAAC,GAAG,EAAE;YACxB,OAAO,CAAC,EAAE,OAAO,EAAE,GAAG,EAAE,kBAAkB,EAAE,KAAK,EAAE,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC,EAAE,QAAQ,EAAE,GAAG,EAAE,CAAC,CAAC;QACjG,CAAC,EAAE,GAAG,CAAC,CAAC;QACR,OAAO,GAAG,EAAE,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC;IAC/B,CAAC,EAAE,CAAC,YAAY,EAAE,YAAY,EAAE,OAAO,CAAC,CAAC,CAAC;IAE1C,MAAM,WAAW,GAAqB,WAAW,CAC/C,CAAC,EAAE,EAAE,IAAU,EAAE,EAAE;QACjB,MAAM,IAAI,GAAI,IAAI,CAAC,IAAuD,EAAE,SAAS,CAAC;QACtF,iBAAiB,CAAC,IAAI,CAAC,CAAC;QACxB,IAAI,IAAI,CAAC,IAAI,KAAK,qBAAqB,IAAI,IAAI,EAAE;YAC/C,gEAAgE;YAChE,IAAI,QAAQ,EAAE,EAAE,KAAK,IAAI,CAAC,EAAE,EAAE;gBAC5B,WAAW,CAAC,IAAI,CAAC,CAAC;gBAClB,OAAO;aACR;YACD,WAAW,CAAC,IAAI,CAAC,CAAC;YAClB,IAAI,IAAI,CAAC,EAAE;gBAAE,QAAQ,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;SAClC;IACH,CAAC,EACD,CAAC,QAAQ,EAAE,QAAQ,CAAC,CACrB,CAAC;IAEF,0EAA0E;IAC1E,MAAM,WAAW,GAAG,WAAW,CAC7B,CAAC,EAAmB,EAAE,IAAU,EAAE,EAAE;QAClC,UAAU,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IACtB,CAAC,EACD,CAAC,UAAU,CAAC,CACb,CAAC;IAEF,MAAM,WAAW,GAAG,WAAW,CAAC,GAAG,EAAE;QACnC,WAAW,CAAC,IAAI,CAAC,CAAC;QAClB,iBAAiB,CAAC,IAAI,CAAC,CAAC;IAC1B,CAAC,EAAE,EAAE,CAAC,CAAC;IAEP,0EAA0E;IAC1E,4EAA4E;IAC5E,yDAAyD;IACzD,MAAM,UAAU,GAAG,OAAO,CAAC,GAAG,EAAE;QAC9B,OAAO,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE;YACzB,MAAM,CAAC,GAAG,CAAC,CAAC,IAA8F,CAAC;YAC3G,OAAO;gBACL,EAAE,EAAE,CAAC,CAAC,EAAE;gBACR,SAAS,EAAE,CAAC,EAAE,SAAS,IAAI,SAAS;gBACpC,MAAM,EAAE,CAAC,EAAE,MAAM,KAAK,IAAI;gBAC1B,IAAI,EAAE,CAAC,EAAE,MAAM,IAAI,CAAC;gBACpB,IAAI,EAAE,CAAC,EAAE,MAAM,IAAI,CAAC;aACrB,CAAC;QACJ,CAAC,CAAC,CAAC;IACL,CAAC,EAAE,CAAC,SAAS,CAAC,CAAC,CAAC;IAIhB,OAAO,CACL,eAAK,KAAK,EAAE,EAAE,UAAU,EAAE,WAAW,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,QAAQ,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,aAAa,EAAE,QAAQ,EAAE,aAEpI,cAAc,KAAK,KAAK,IAAI,CAC7B,cACE,KAAK,EAAE;oBACL,QAAQ,EAAE,UAAU;oBACpB,KAAK,EAAE,CAAC;oBACR,QAAQ,EAAE,QAAQ;oBAClB,aAAa,EAAE,MAAM;oBACrB,MAAM,EAAE,CAAC;iBACV,YAEA,UAAU,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE;oBACtB,MAAM,KAAK,GAAG,eAAe,CAAC,GAAG,CAAC,SAAmC,CAAC,IAAI,MAAM,CAAC;oBACjF,MAAM,OAAO,GAAG,GAAG,CAAC,IAAI,GAAG,QAAQ,CAAC,IAAI,GAAG,QAAQ,CAAC,CAAC,CAAC;oBACtD,MAAM,OAAO,GAAG,GAAG,CAAC,IAAI,GAAG,QAAQ,CAAC,IAAI,GAAG,QAAQ,CAAC,CAAC,CAAC;oBACtD,OAAO,CACL,iCAEmB,GAAG,CAAC,EAAE,EACvB,OAAO,EAAE,CAAC,CAAC,EAAE,EAAE;4BACb,CAAC,CAAC,eAAe,EAAE,CAAC;4BACpB,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;wBACrB,CAAC,EACD,KAAK,EAAE;4BACL,QAAQ,EAAE,UAAU;4BACpB,IAAI,EAAE,OAAO;4BACb,GAAG,EAAE,OAAO;4BACZ,QAAQ,EAAE,EAAE;4BACZ,UAAU,EAAE,KAAK,CAAC,KAAK,CAAC,SAAS;4BACjC,UAAU,EAAE,GAAG;4BACf,KAAK;4BACL,UAAU,EAAE,oBAAoB;4BAChC,MAAM,EAAE,eAAe,KAAK,EAAE;4BAC9B,YAAY,EAAE,CAAC;4BACf,OAAO,EAAE,SAAS;4BAClB,MAAM,EAAE,SAAS;4BACjB,aAAa,EAAE,MAAM;4BACrB,OAAO,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;4BAC9B,UAAU,EAAE,QAAQ;yBACrB,YAEA,GAAG,CAAC,SAAS,IAxBT,GAAG,CAAC,EAAE,CAyBP,CACP,CAAC;gBACJ,CAAC,CAAC,GACE,CACL,EACD,MAAC,SAAS,IAER,KAAK,EAAE,eAAe,EACtB,KAAK,EAAE,SAAS,EAChB,SAAS,EAAE,SAAS,EACpB,SAAS,EAAE,SAAS,EACpB,OAAO,EAAE,IAAI,EACb,OAAO,EAAE,CAAC,EACV,WAAW,EAAE,WAAW,EACxB,WAAW,EAAE,WAAW,EACxB,aAAa,EAAE,aAAa,EAC5B,aAAa,EAAE,aAAa,EAC5B,UAAU,EAAE,EAAE,eAAe,EAAE,IAAI,EAAE,EACrC,cAAc,EAAE,KAAK,EACrB,kBAAkB,QAClB,iBAAiB,EAAE,KAAK,EACxB,gBAAgB,EAAE,KAAK,EACvB,kBAAkB,EAAE,KAAK,EACzB,WAAW,EAAE,WAAW,EACxB,SAAS,QACT,WAAW,QACX,YAAY,EAAE,KAAK,EACnB,WAAW,QACX,iBAAiB,EAAE,KAAK,EACxB,KAAK,EAAE;oBACL,KAAK,EAAE,QAAQ,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM;oBACrC,MAAM,EAAE,QAAQ,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM;oBACtC,IAAI,EAAE,CAAC;oBACP,SAAS,EAAE,CAAC;oBACZ,UAAU,EAAE,KAAK,CAAC,MAAM,CAAC,UAAU;iBACpC,aAED,KAAC,UAAU,IAAC,OAAO,EAAE,iBAAiB,CAAC,IAAI,EAAE,GAAG,EAAE,EAAE,EAAE,IAAI,EAAE,CAAC,GAAI,EACjE,KAAC,QAAQ,IAAC,QAAQ,QAAC,WAAW,QAAC,eAAe,SAAG,KAhC5C,GAAG,YAAY,IAAI,YAAY,EAAE,CAiC5B,EACX,QAAQ,IAAI,KAAC,eAAe,IAAC,SAAS,EAAE,QAAQ,GAAI,IACjD,CACP,CAAC;AACJ,CAAC;AAED;kDACkD;AAClD,SAAS,eAAe,CAAC,EAAE,SAAS,EAAqC;IACvE,MAAM,EAAE,KAAK,EAAE,GAAG,QAAQ,EAAE,CAAC;IAC7B,MAAM,KAAK,GAAG,KAAK,CAAC,MAAM,CAAC,SAAS,IAAI,KAAK,CAAC,MAAM,CAAC,aAAa,CAAC;IACnE,MAAM,KAAK,GAAG,UAAU,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,MAAM,CAAC;IACnD,MAAM,WAAW,GAAG,oBAAoB,CAAC,SAAS,CAAC,MAAM,EAAE,SAAS,CAAC,IAAI,EAAE,SAAS,CAAC,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,CAAC;IAC3G,MAAM,IAAI,GAA4B,EAAE,CAAC;IACzC,IAAI,SAAS,CAAC,MAAM;QAAE,IAAI,CAAC,IAAI,CAAC,CAAC,QAAQ,EAAE,SAAS,CAAC,MAAM,CAAC,CAAC,CAAC;IAC9D,IAAI,SAAS,CAAC,IAAI;QAAE,IAAI,CAAC,IAAI,CAAC,CAAC,MAAM,EAAE,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC;IACxD,IAAI,SAAS,CAAC,OAAO;QAAE,IAAI,CAAC,IAAI,CAAC,CAAC,SAAS,EAAE,SAAS,CAAC,OAAO,CAAC,CAAC,CAAC;IACjE,IAAI,CAAC,IAAI,CAAC,CAAC,MAAM,EAAE,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC;IAEpC,OAAO,CACL,eACE,KAAK,EAAE;YACL,SAAS,EAAE,aAAa,KAAK,CAAC,MAAM,CAAC,MAAM,EAAE;YAC7C,UAAU,EAAE,KAAK,CAAC,MAAM,CAAC,UAAU;YACnC,OAAO,EAAE,WAAW;YACpB,UAAU,EAAE,KAAK,CAAC,KAAK,CAAC,IAAI;SAC7B,aAED,eACE,KAAK,EAAE;oBACL,OAAO,EAAE,MAAM;oBACf,UAAU,EAAE,QAAQ;oBACpB,GAAG,EAAE,CAAC;oBACN,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAC,CAAC,CAAC;oBAC5B,UAAU,EAAE,GAAG;oBACf,YAAY,EAAE,CAAC;iBAChB,aAED,eAAM,KAAK,EAAE,EAAE,KAAK,EAAE,YAAG,WAAW,GAAQ,EAC5C,eACE,KAAK,EAAE;4BACL,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAC,CAAC,CAAC,GAAG,GAAG;4BAClC,UAAU,EAAE,KAAK,CAAC,KAAK,CAAC,SAAS;4BACjC,aAAa,EAAE,WAAW;4BAC1B,KAAK;yBACN,YAEA,SAAS,CAAC,IAAI,GACV,IACH,EACL,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CACpB,eAEE,KAAK,EAAE,EAAE,OAAO,EAAE,MAAM,EAAE,GAAG,EAAE,CAAC,EAAE,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,UAAU,EAAE,GAAG,EAAE,aAEjF,eACE,KAAK,EAAE;4BACL,KAAK,EAAE,EAAE;4BACT,UAAU,EAAE,CAAC;4BACb,KAAK,EAAE,KAAK;4BACZ,UAAU,EAAE,KAAK,CAAC,KAAK,CAAC,SAAS;4BACjC,aAAa,EAAE,WAAW;4BAC1B,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAC,CAAC,CAAC,GAAG,GAAG;yBACnC,YAEA,CAAC,GACG,EACP,eAAM,KAAK,EAAE,EAAE,KAAK,EAAE,KAAK,CAAC,MAAM,CAAC,IAAI,EAAE,UAAU,EAAE,KAAK,CAAC,KAAK,CAAC,SAAS,EAAE,YACzE,CAAC,GACG,KAjBF,CAAC,CAkBF,CACP,CAAC,EACD,SAAS,CAAC,MAAM,IAAI,KAAC,sBAAsB,IAAC,MAAM,EAAE,SAAS,CAAC,MAAM,GAAI,IACrE,CACP,CAAC;AACJ,CAAC;AAED,+DAA+D;AAC/D,SAAS,sBAAsB,CAAC,EAAE,MAAM,EAAuC;IAC7E,MAAM,EAAE,KAAK,EAAE,GAAG,QAAQ,EAAE,CAAC;IAC7B,MAAM,KAAK,GAAG,KAAK,CAAC,MAAM,CAAC,SAAS,IAAI,KAAK,CAAC,MAAM,CAAC,aAAa,CAAC;IAEnE,MAAM,KAAK,GAAG,CAAC,CAAS,EAAE,EAAE,CAAC,CAC3B,eACE,KAAK,EAAE;YACL,KAAK,EAAE,EAAE;YACT,UAAU,EAAE,CAAC;YACb,KAAK,EAAE,KAAK;YACZ,UAAU,EAAE,KAAK,CAAC,KAAK,CAAC,SAAS;YACjC,aAAa,EAAE,WAAW;YAC1B,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAC,CAAC,CAAC,GAAG,GAAG;SACnC,YAEA,CAAC,GACG,CACR,CAAC;IACF,MAAM,IAAI,GAAG,CAAC,IAAY,EAAE,IAAa,EAAE,GAAqB,EAAE,EAAE,CAAC,CACnE,gBAEE,KAAK,EAAE;YACL,UAAU,EAAE,KAAK,CAAC,KAAK,CAAC,SAAS;YACjC,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAC,CAAC,CAAC;YAC5B,KAAK,EAAE,KAAK,CAAC,MAAM,CAAC,IAAI;YACxB,MAAM,EAAE,aAAa,KAAK,CAAC,MAAM,CAAC,MAAM,EAAE;YAC1C,YAAY,EAAE,CAAC;YACf,OAAO,EAAE,SAAS;YAClB,WAAW,EAAE,CAAC;YACd,YAAY,EAAE,CAAC;YACf,OAAO,EAAE,cAAc;SACxB,aAEA,IAAI,EACJ,IAAI,CAAC,CAAC,CAAC,gBAAM,KAAK,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,kBAAI,IAAI,IAAQ,CAAC,CAAC,CAAC,EAAE,KAdrD,GAAG,CAeH,CACR,CAAC;IACF,MAAM,GAAG,GAAG,CAAC,CAAS,EAAE,QAAmB,EAAE,EAAE,CAAC,CAC9C,eACE,KAAK,EAAE,EAAE,OAAO,EAAE,MAAM,EAAE,GAAG,EAAE,CAAC,EAAE,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,UAAU,EAAE,GAAG,EAAE,YAAY,EAAE,CAAC,EAAE,aAEjG,KAAK,CAAC,CAAC,CAAC,EACT,cAAK,KAAK,EAAE,EAAE,QAAQ,EAAE,CAAC,EAAE,YAAG,QAAQ,GAAO,IACzC,CACP,CAAC;IAEF,QAAQ,MAAM,CAAC,IAAI,EAAE;QACnB,KAAK,OAAO;YACV,OAAO,CACL,8BACG,MAAM,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC;wBACxB,GAAG,CAAC,SAAS,EAAE,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,UAAU,EAAE,CAAC,CAAC,CAAC,CAAC,EAC5E,MAAM,CAAC,UAAU,CAAC,MAAM,GAAG,CAAC;wBAC3B,GAAG,CAAC,OAAO,EAAE,MAAM,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC,EACvE,MAAM,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC,IAAI,GAAG,CAAC,SAAS,EAAE,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,CAAC,EAAE,SAAS,EAAE,CAAC,CAAC,CAAC,CAAC,EAChG,MAAM,CAAC,UAAU,CAAC,MAAM,GAAG,CAAC,IAAI,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,CAAC,EAAE,SAAS,EAAE,CAAC,CAAC,CAAC,CAAC,EACnG,MAAM,CAAC,cAAc,CAAC,MAAM,GAAG,CAAC;wBAC/B,GAAG,CAAC,OAAO,EAAE,MAAM,CAAC,cAAc,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,GAAG,EAAE,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,EAAE,SAAS,EAAE,GAAG,CAAC,CAAC,CAAC,EAClF,MAAM,CAAC,UAAU,CAAC,MAAM,GAAG,CAAC;wBAC3B,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,GAAG,EAAE,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,EAAE,SAAS,EAAE,GAAG,CAAC,CAAC,CAAC,IAC7E,CACJ,CAAC;QACJ,KAAK,UAAU;YACb,OAAO,CACL,8BACG,MAAM,CAAC,UAAU,CAAC,MAAM,GAAG,CAAC;wBAC3B,GAAG,CAAC,QAAQ,EAAE,MAAM,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,EAAE,SAAS,EAAE,CAAC,CAAC,CAAC,CAAC,EAC3E,MAAM,CAAC,UAAU,IAAI,GAAG,CAAC,QAAQ,EAAE,yBAAO,MAAM,CAAC,UAAU,GAAQ,CAAC,EACpE,MAAM,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC;wBACxB,GAAG,CAAC,SAAS,EAAE,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,EAAE,SAAS,EAAE,CAAC,CAAC,CAAC,CAAC,EACzE,MAAM,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC;wBACxB,GAAG,CAAC,SAAS,EAAE,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,EAAE,SAAS,EAAE,CAAC,CAAC,CAAC,CAAC,IACzE,CACJ,CAAC;QACJ,KAAK,MAAM;YACT,OAAO,CACL,8BACG,MAAM,CAAC,UAAU,CAAC,MAAM,GAAG,CAAC;wBAC3B,GAAG,CAAC,OAAO,EAAE,MAAM,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC,EACvE,MAAM,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC;wBACvB,GAAG,CAAC,SAAS,EAAE,MAAM,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,EAAE,SAAS,EAAE,CAAC,CAAC,CAAC,CAAC,EACxE,MAAM,CAAC,YAAY,CAAC,MAAM,GAAG,CAAC;wBAC7B,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,YAAY,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,CAAC,EAAE,SAAS,EAAE,CAAC,CAAC,CAAC,CAAC,IACtE,CACJ,CAAC;QACJ,KAAK,QAAQ;YACX,OAAO,CACL,8BACG,MAAM,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC;wBACxB,GAAG,CAAC,SAAS,EAAE,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,CAAC,EAAE,SAAS,EAAE,CAAC,CAAC,CAAC,CAAC,EACpE,MAAM,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC;wBACxB,GAAG,CAAC,SAAS,EAAE,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,GAAG,EAAE,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,EAAE,SAAS,EAAE,GAAG,CAAC,CAAC,CAAC,EAC7E,MAAM,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC;wBACxB,GAAG,CAAC,SAAS,EAAE,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,CAAC,EAAE,SAAS,EAAE,CAAC,CAAC,CAAC,CAAC,IACpE,CACJ,CAAC;QACJ,KAAK,UAAU;YACb,OAAO,GAAG,CAAC,QAAQ,EAAE,yBAAO,MAAM,CAAC,KAAK,GAAQ,CAAC,CAAC;KACrD;AACH,CAAC;AAED,MAAM,UAAU,uBAAuB,CAAC,KAAmC;IACzE,MAAM,OAAO,GAAG,MAAM,CAAiB,IAAI,CAAC,CAAC;IAC7C,MAAM,CAAC,IAAI,EAAE,OAAO,CAAC,GAAG,QAAQ,CAAkC,IAAI,CAAC,CAAC;IAExE,6EAA6E;IAC7E,2DAA2D;IAC3D,SAAS,CAAC,GAAG,EAAE;QACb,MAAM,EAAE,GAAG,OAAO,CAAC,OAAO,CAAC;QAC3B,IAAI,CAAC,EAAE;YAAE,OAAO;QAChB,MAAM,MAAM,GAAG,GAAG,EAAE;YAClB,MAAM,IAAI,GAAG,EAAE,CAAC,qBAAqB,EAAE,CAAC;YACxC,IAAI,IAAI,CAAC,KAAK,GAAG,CAAC,IAAI,IAAI,CAAC,MAAM,GAAG,CAAC;gBAAE,OAAO,CAAC,EAAE,CAAC,EAAE,IAAI,CAAC,KAAK,EAAE,CAAC,EAAE,IAAI,CAAC,MAAM,EAAE,CAAC,CAAC;QACpF,CAAC,CAAC;QACF,MAAM,EAAE,CAAC;QACT,MAAM,EAAE,GAAG,IAAI,cAAc,CAAC,MAAM,CAAC,CAAC;QACtC,EAAE,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;QACf,OAAO,GAAG,EAAE,CAAC,EAAE,CAAC,UAAU,EAAE,CAAC;IAC/B,CAAC,EAAE,EAAE,CAAC,CAAC;IAEP,OAAO,CACL,cACE,GAAG,EAAE,OAAO,EACZ,KAAK,EAAE;YACL,QAAQ,EAAE,UAAU;YACpB,KAAK,EAAE,MAAM;YACb,MAAM,EAAE,MAAM;YACd,SAAS,EAAE,CAAC;YACZ,OAAO,EAAE,MAAM;YACf,aAAa,EAAE,QAAQ;SACxB,YAED,cAAK,KAAK,EAAE,EAAE,IAAI,EAAE,CAAC,EAAE,SAAS,EAAE,CAAC,EAAE,OAAO,EAAE,MAAM,EAAE,aAAa,EAAE,QAAQ,EAAE,YAC7E,KAAC,iBAAiB,cAChB,KAAC,KAAK,OAAK,KAAK,EAAE,QAAQ,EAAE,IAAI,GAAI,GAClB,GAChB,GACF,CACP,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"SubsystemComponentGraph.js","sourceRoot":"","sources":["../../src/subsystem/SubsystemComponentGraph.tsx"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@principal-ai/principal-view-react",
3
- "version": "0.16.26",
3
+ "version": "0.16.28",
4
4
  "description": "React components for graph-based principal view framework",
5
5
  "main": "dist/index.js",
6
6
  "types": "dist/index.d.ts",
@@ -32,6 +32,7 @@ import {
32
32
  applyNodeChanges,
33
33
  } from '@xyflow/react';
34
34
  import { useTheme } from '@principal-ade/industry-theme';
35
+ import { IndustryMarkdownSlide } from 'themed-markdown';
35
36
  import {
36
37
  buildSubsystemGraph,
37
38
  KIND_COLOR,
@@ -44,6 +45,25 @@ import {
44
45
  import type { GraphifyComponentDetail } from '../graphify';
45
46
  import { SubsystemComponentNode, SubsystemEdge, SUBSYSTEM_CALLBACKS } from './nodes';
46
47
 
48
+ const MECHANISM_DESCRIPTIONS: [SubsystemEdgeMechanism, string][] = [
49
+ ['imports', 'imports symbols from'],
50
+ ['imports_from', 'imported by'],
51
+ ['re_exports', 're-exports symbols from'],
52
+ ['defines', 'defines / declares'],
53
+ ['calls', 'invokes / calls into'],
54
+ ['extends', 'extends / inherits from'],
55
+ ['inherits', 'inherits from'],
56
+ ['implements', 'implements interface / protocol'],
57
+ ['mixes_in', 'mixes in / applies mixin'],
58
+ ['uses', 'uses / depends on'],
59
+ ['method', 'has method / member'],
60
+ ['references', 'references type / symbol'],
61
+ ['contains', 'contains / encapsulates'],
62
+ ['feeds', 'feeds data into'],
63
+ ['produces', 'produces / outputs'],
64
+ ['registers-into', 'registers into'],
65
+ ];
66
+
47
67
  export interface SubsystemComponentGraphProps {
48
68
  components: SubsystemComponent[];
49
69
  edges: SubsystemComponentEdge[];
@@ -55,6 +75,10 @@ export interface SubsystemComponentGraphProps {
55
75
  maxNodeWidth?: number;
56
76
  /** Show edge labels (mechanism names) on the graph. @default true */
57
77
  showEdgeLabels?: boolean;
78
+ /** Subsystem title displayed in the sidebar. */
79
+ title?: string;
80
+ /** Markdown description rendered in the sidebar. */
81
+ description?: string;
58
82
  }
59
83
 
60
84
  const nodeTypes: NodeTypes = {
@@ -69,7 +93,7 @@ interface InnerProps extends SubsystemComponentGraphProps {
69
93
  measured: { w: number; h: number } | null;
70
94
  }
71
95
 
72
- function Inner({ components, edges, onSelect, onEdgeSelect, measured, maxNodeWidth, showEdgeLabels }: InnerProps) {
96
+ function Inner({ components, edges, onSelect, onEdgeSelect, measured: _measured, maxNodeWidth, showEdgeLabels, title, description }: InnerProps) {
73
97
  const { theme } = useTheme();
74
98
  const { fitView } = useReactFlow();
75
99
  const viewport = useViewport();
@@ -280,28 +304,94 @@ function Inner({ components, edges, onSelect, onEdgeSelect, measured, maxNodeWid
280
304
  });
281
305
  }, [dispEdges]);
282
306
 
307
+ const usedMechanisms = useMemo(() => {
308
+ return new Set(edgeLabels.map((l) => l.mechanism));
309
+ }, [edgeLabels]);
283
310
 
311
+ const muted = theme.colors.textMuted ?? theme.colors.textSecondary;
284
312
 
285
313
  return (
286
- <div style={{ visibility: layoutReady ? 'visible' : 'hidden', width: '100%', height: '100%', display: 'flex', flexDirection: 'column' }}>
287
- {/* Edge-label overlay sits above the ReactFlow pane so clicks land. */}
288
- {showEdgeLabels !== false && (
289
- <div
290
- style={{
291
- position: 'absolute',
292
- inset: 0,
293
- overflow: 'hidden',
294
- pointerEvents: 'none',
295
- zIndex: 5,
296
- }}
297
- >
298
- {edgeLabels.map((lbl) => {
299
- const color = MECHANISM_COLOR[lbl.mechanism as SubsystemEdgeMechanism] ?? '#888';
300
- const screenX = lbl.midX * viewport.zoom + viewport.x;
301
- const screenY = lbl.midY * viewport.zoom + viewport.y;
302
- return (
303
- <div
304
- key={lbl.id}
314
+ <div style={{ visibility: layoutReady ? 'visible' : 'hidden', width: '100%', height: '100%', display: 'flex', flexDirection: 'row' }}>
315
+ {/* Sidebar with title and description */}
316
+ {(title || description || usedMechanisms.size > 0) && (
317
+ <div
318
+ style={{
319
+ width: 280,
320
+ minWidth: 280,
321
+ borderRight: `1px solid ${theme.colors.border}`,
322
+ background: theme.colors.backgroundSecondary ?? theme.colors.background,
323
+ padding: '16px',
324
+ overflowY: 'auto',
325
+ display: 'flex',
326
+ flexDirection: 'column',
327
+ gap: 12,
328
+ }}
329
+ >
330
+ {title && (
331
+ <h2
332
+ style={{
333
+ margin: 0,
334
+ fontSize: theme.fontSizes[2],
335
+ fontWeight: 600,
336
+ color: theme.colors.text,
337
+ fontFamily: theme.fonts.heading,
338
+ }}
339
+ >
340
+ {title}
341
+ </h2>
342
+ )}
343
+ {description && (
344
+ <div style={{ fontSize: theme.fontSizes[0], lineHeight: 1.5 }}>
345
+ <IndustryMarkdownSlide
346
+ content={description}
347
+ slideIdPrefix="subsystem-desc"
348
+ slideIndex={0}
349
+ isVisible={true}
350
+ theme={theme}
351
+ disableScroll={true}
352
+ fontSizeScale={0.9}
353
+ enableKeyboardScrolling={false}
354
+ autoFocusOnVisible={false}
355
+ />
356
+ </div>
357
+ )}
358
+ {usedMechanisms.size > 0 && (
359
+ <div style={{ display: 'flex', flexDirection: 'column', gap: 4 }}>
360
+ <span style={{ fontSize: theme.fontSizes[0] * 0.8, fontFamily: theme.fonts.monospace, textTransform: 'uppercase', color: muted, fontWeight: 600 }}>
361
+ Edge Legend
362
+ </span>
363
+ {MECHANISM_DESCRIPTIONS.filter(([m]) => usedMechanisms.has(m)).map(([mechanism, desc]) => (
364
+ <div key={mechanism} style={{ display: 'flex', alignItems: 'center', gap: 6, fontSize: theme.fontSizes[0] }}>
365
+ <span style={{ width: 8, height: 8, borderRadius: '50%', background: MECHANISM_COLOR[mechanism], flexShrink: 0 }} />
366
+ <span style={{ fontFamily: theme.fonts.monospace, color: MECHANISM_COLOR[mechanism], fontWeight: 500 }}>{mechanism}</span>
367
+ <span style={{ color: muted }}>{desc}</span>
368
+ </div>
369
+ ))}
370
+ </div>
371
+ )}
372
+ </div>
373
+ )}
374
+
375
+ {/* Graph area */}
376
+ <div style={{ flex: 1, position: 'relative', display: 'flex', flexDirection: 'column', minHeight: 0 }}>
377
+ {/* Edge-label overlay — sits above the ReactFlow pane so clicks land. */}
378
+ {showEdgeLabels !== false && (
379
+ <div
380
+ style={{
381
+ position: 'absolute',
382
+ inset: 0,
383
+ overflow: 'hidden',
384
+ pointerEvents: 'none',
385
+ zIndex: 5,
386
+ }}
387
+ >
388
+ {edgeLabels.map((lbl) => {
389
+ const color = MECHANISM_COLOR[lbl.mechanism as SubsystemEdgeMechanism] ?? '#888';
390
+ const screenX = lbl.midX * viewport.zoom + viewport.x;
391
+ const screenY = lbl.midY * viewport.zoom + viewport.y;
392
+ return (
393
+ <div
394
+ key={lbl.id}
305
395
  data-edge-label={lbl.id}
306
396
  onClick={(e) => {
307
397
  e.stopPropagation();
@@ -356,8 +446,8 @@ function Inner({ components, edges, onSelect, onEdgeSelect, measured, maxNodeWid
356
446
  zoomOnPinch
357
447
  zoomOnDoubleClick={false}
358
448
  style={{
359
- width: measured ? measured.w : '100%',
360
- height: measured ? measured.h : '100%',
449
+ width: '100%',
450
+ height: '100%',
361
451
  flex: 1,
362
452
  minHeight: 0,
363
453
  background: theme.colors.background,
@@ -367,6 +457,7 @@ function Inner({ components, edges, onSelect, onEdgeSelect, measured, maxNodeWid
367
457
  <Controls showZoom showFitView showInteractive />
368
458
  </ReactFlow>
369
459
  {selected && <ComponentDetail component={selected} />}
460
+ </div>
370
461
  </div>
371
462
  );
372
463
  }