@principal-ai/principal-view-react 0.15.6 → 0.15.7

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.
@@ -1,7 +1,11 @@
1
1
  /**
2
2
  * React hook for sequence diagram layout
3
3
  *
4
- * Computes swimlane-based positioning for events based on their namespaces.
4
+ * Computes swimlane-based positioning for events. Lanes default to the first
5
+ * dotted segment of each event name. Callers can drill deeper by passing
6
+ * `openedNamespaces`: any prefix listed there has its events pushed one level
7
+ * deeper, so its children appear as their own lanes instead of being grouped
8
+ * under the parent.
5
9
  */
6
10
  import type { Node, Edge } from '@xyflow/react';
7
11
  /**
@@ -50,34 +54,35 @@ export interface SequenceEdge {
50
54
  * Swimlane information computed from events
51
55
  */
52
56
  export interface Swimlane {
53
- /** Namespace identifier */
57
+ /** Namespace identifier for this lane */
54
58
  namespace: string;
55
- /** Display label for the lane header */
59
+ /** Display label for the lane header (last segment of the namespace) */
56
60
  label: string;
57
61
  /** X position of the lane center */
58
62
  x: number;
59
- /** Parent namespace (for hierarchical lanes) */
63
+ /** Parent namespace (one segment shallower), if any */
60
64
  parentNamespace?: string;
61
- /** Whether this lane is collapsed */
62
- isCollapsed: boolean;
63
- /** Child namespaces */
64
- children: string[];
65
- /** Events in this lane */
65
+ /** Whether this lane's namespace is in `openedNamespaces` (its events have been drilled deeper) */
66
+ isOpened: boolean;
67
+ /** Whether the immediate parent namespace is opened (this lane only exists because its parent was drilled into) */
68
+ isParentOpened: boolean;
69
+ /** Whether any event extends strictly past this lane's namespace (so opening would split it further) */
70
+ canExpand: boolean;
71
+ /** Events directly assigned to this lane */
66
72
  eventIds: string[];
67
73
  }
68
- /**
69
- * Namespace extraction strategy
70
- */
71
- export type NamespaceStrategy = 'first' | 'all-but-last' | number | ((name: string) => string);
72
74
  /**
73
75
  * Options for sequence layout
74
76
  */
75
77
  export interface UseSequenceLayoutOptions {
76
78
  /**
77
- * How to extract namespace from event name
78
- * @default 'all-but-last'
79
+ * Namespace prefixes whose events should be drilled one segment deeper.
80
+ * Pass an array or a Set. Each entry is a dotted prefix (e.g. `auth` or
81
+ * `auth.user`). When listed, events under that prefix land in lanes one
82
+ * level deeper than the prefix, instead of all sharing the prefix lane.
83
+ * Drilling is recursive: list both `auth` and `auth.user` to drill twice.
79
84
  */
80
- namespaceStrategy?: NamespaceStrategy;
85
+ openedNamespaces?: string[] | Set<string>;
81
86
  /**
82
87
  * Width of each swimlane
83
88
  * @default 250
@@ -108,10 +113,22 @@ export interface UseSequenceLayoutOptions {
108
113
  * @default 14
109
114
  */
110
115
  nodeHeight?: number;
111
- /**
112
- * Namespaces to collapse (show as single lane)
113
- */
114
- collapsedNamespaces?: string[];
116
+ }
117
+ /**
118
+ * A header cell for an opened ancestor namespace, sitting above the leaf
119
+ * lanes it groups. Rendered as a row in the header strip.
120
+ */
121
+ export interface ParentHeader {
122
+ /** Full ancestor namespace (always in `openedNamespaces`) */
123
+ namespace: string;
124
+ /** Last segment, for display */
125
+ label: string;
126
+ /** Center x of the cell */
127
+ x: number;
128
+ /** Total span width across the leaf lanes underneath */
129
+ width: number;
130
+ /** 1-based depth in the header strip (1 = topmost row) */
131
+ depth: number;
115
132
  }
116
133
  /**
117
134
  * Result from sequence layout computation
@@ -121,20 +138,26 @@ export interface UseSequenceLayoutResult {
121
138
  nodes: Node[];
122
139
  /** Edges for React Flow */
123
140
  edges: Edge[];
124
- /** Computed swimlane information */
141
+ /** Leaf swimlanes each gets a lifeline and a leaf header row */
125
142
  swimlanes: Swimlane[];
143
+ /**
144
+ * Header cells for opened ancestor namespaces. Stack above the leaf
145
+ * headers; depth 1 sits at the top of the header strip.
146
+ */
147
+ parentHeaders: ParentHeader[];
148
+ /** Number of header rows (= max leaf depth). At least 1. */
149
+ headerRows: number;
126
150
  /** Total width of the diagram */
127
151
  totalWidth: number;
128
152
  /** Total height of the diagram */
129
153
  totalHeight: number;
130
154
  }
131
155
  /**
132
- * Hook for computing sequence diagram layout
156
+ * useSequenceLayout
133
157
  *
134
- * @param events - Events to layout
135
- * @param edges - Edges between events
136
- * @param options - Layout options
137
- * @returns Layout result with positioned nodes, edges, and swimlane info
158
+ * @param events - Events to lay out
159
+ * @param sequenceEdges - Edges connecting events
160
+ * @param options - Layout options (lane sizing, openedNamespaces)
138
161
  *
139
162
  * @example
140
163
  * ```tsx
@@ -147,7 +170,8 @@ export interface UseSequenceLayoutResult {
147
170
  * [
148
171
  * { id: 'e1', fromEvent: '1', toEvent: '2' },
149
172
  * { id: 'e2', fromEvent: '2', toEvent: '3' },
150
- * ]
173
+ * ],
174
+ * { openedNamespaces: ['auth'] }, // drill `auth` to show validation/token as separate lanes
151
175
  * );
152
176
  * ```
153
177
  */
@@ -1 +1 @@
1
- {"version":3,"file":"useSequenceLayout.d.ts","sourceRoot":"","sources":["../../src/hooks/useSequenceLayout.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAGH,OAAO,KAAK,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,eAAe,CAAC;AAEhD;;GAEG;AACH,MAAM,WAAW,aAAa;IAC5B,8BAA8B;IAC9B,EAAE,EAAE,MAAM,CAAC;IACX,kEAAkE;IAClE,IAAI,EAAE,MAAM,CAAC;IACb,gDAAgD;IAChD,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,sCAAsC;IACtC,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,oEAAoE;IACpE,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,8EAA8E;IAC9E,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB;;;;;;OAMG;IACH,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,kDAAkD;IAClD,IAAI,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CAChC;AAED;;GAEG;AACH,MAAM,WAAW,YAAY;IAC3B,6BAA6B;IAC7B,EAAE,EAAE,MAAM,CAAC;IACX,sBAAsB;IACtB,SAAS,EAAE,MAAM,CAAC;IAClB,sBAAsB;IACtB,OAAO,EAAE,MAAM,CAAC;IAChB,0BAA0B;IAC1B,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,qCAAqC;IACrC,IAAI,CAAC,EAAE,MAAM,CAAC;CACf;AAED;;GAEG;AACH,MAAM,WAAW,QAAQ;IACvB,2BAA2B;IAC3B,SAAS,EAAE,MAAM,CAAC;IAClB,wCAAwC;IACxC,KAAK,EAAE,MAAM,CAAC;IACd,oCAAoC;IACpC,CAAC,EAAE,MAAM,CAAC;IACV,gDAAgD;IAChD,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,qCAAqC;IACrC,WAAW,EAAE,OAAO,CAAC;IACrB,uBAAuB;IACvB,QAAQ,EAAE,MAAM,EAAE,CAAC;IACnB,0BAA0B;IAC1B,QAAQ,EAAE,MAAM,EAAE,CAAC;CACpB;AAED;;GAEG;AACH,MAAM,MAAM,iBAAiB,GACzB,OAAO,GACP,cAAc,GACd,MAAM,GACN,CAAC,CAAC,IAAI,EAAE,MAAM,KAAK,MAAM,CAAC,CAAC;AAE/B;;GAEG;AACH,MAAM,WAAW,wBAAwB;IACvC;;;OAGG;IACH,iBAAiB,CAAC,EAAE,iBAAiB,CAAC;IAEtC;;;OAGG;IACH,SAAS,CAAC,EAAE,MAAM,CAAC;IAEnB;;;OAGG;IACH,OAAO,CAAC,EAAE,MAAM,CAAC;IAEjB;;;OAGG;IACH,YAAY,CAAC,EAAE,MAAM,CAAC;IAEtB;;;OAGG;IACH,YAAY,CAAC,EAAE,MAAM,CAAC;IAEtB;;;OAGG;IACH,SAAS,CAAC,EAAE,MAAM,CAAC;IAEnB;;;OAGG;IACH,UAAU,CAAC,EAAE,MAAM,CAAC;IAEpB;;OAEG;IACH,mBAAmB,CAAC,EAAE,MAAM,EAAE,CAAC;CAChC;AAED;;GAEG;AACH,MAAM,WAAW,uBAAuB;IACtC,sCAAsC;IACtC,KAAK,EAAE,IAAI,EAAE,CAAC;IACd,2BAA2B;IAC3B,KAAK,EAAE,IAAI,EAAE,CAAC;IACd,oCAAoC;IACpC,SAAS,EAAE,QAAQ,EAAE,CAAC;IACtB,iCAAiC;IACjC,UAAU,EAAE,MAAM,CAAC;IACnB,kCAAkC;IAClC,WAAW,EAAE,MAAM,CAAC;CACrB;AA0CD;;;;;;;;;;;;;;;;;;;;;;GAsBG;AACH,wBAAgB,iBAAiB,CAC/B,MAAM,EAAE,aAAa,EAAE,EACvB,aAAa,EAAE,YAAY,EAAE,EAC7B,OAAO,GAAE,wBAA6B,GACrC,uBAAuB,CAoQzB"}
1
+ {"version":3,"file":"useSequenceLayout.d.ts","sourceRoot":"","sources":["../../src/hooks/useSequenceLayout.ts"],"names":[],"mappings":"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"}
@@ -1,48 +1,38 @@
1
1
  /**
2
2
  * React hook for sequence diagram layout
3
3
  *
4
- * Computes swimlane-based positioning for events based on their namespaces.
4
+ * Computes swimlane-based positioning for events. Lanes default to the first
5
+ * dotted segment of each event name. Callers can drill deeper by passing
6
+ * `openedNamespaces`: any prefix listed there has its events pushed one level
7
+ * deeper, so its children appear as their own lanes instead of being grouped
8
+ * under the parent.
5
9
  */
6
10
  import { useMemo } from 'react';
7
11
  /**
8
- * Extract namespace from event name based on strategy
12
+ * Resolve the lane (namespace prefix) for a given event name, given the set
13
+ * of opened namespaces. Walks segments from depth 1 outward, descending while
14
+ * the current prefix is opened, and stopping at the first prefix that isn't.
9
15
  */
10
- function extractNamespace(name, strategy) {
11
- if (typeof strategy === 'function') {
12
- return strategy(name);
13
- }
14
- const segments = name.split('.');
15
- if (segments.length <= 1) {
16
- return name;
17
- }
18
- if (strategy === 'first') {
19
- return segments[0];
20
- }
21
- if (strategy === 'all-but-last') {
22
- return segments.slice(0, -1).join('.');
23
- }
24
- if (typeof strategy === 'number') {
25
- return segments.slice(0, strategy).join('.');
26
- }
27
- return segments.slice(0, -1).join('.');
28
- }
29
- /**
30
- * Get parent namespace (one level up)
31
- */
32
- function getParentNamespace(namespace) {
33
- const segments = namespace.split('.');
34
- if (segments.length <= 1) {
35
- return undefined;
16
+ function resolveLane(name, opened) {
17
+ const segs = name.split('.');
18
+ let depth = 1;
19
+ while (depth < segs.length) {
20
+ const prefix = segs.slice(0, depth).join('.');
21
+ if (opened.has(prefix)) {
22
+ depth++;
23
+ }
24
+ else {
25
+ break;
26
+ }
36
27
  }
37
- return segments.slice(0, -1).join('.');
28
+ return segs.slice(0, depth).join('.');
38
29
  }
39
30
  /**
40
- * Hook for computing sequence diagram layout
31
+ * useSequenceLayout
41
32
  *
42
- * @param events - Events to layout
43
- * @param edges - Edges between events
44
- * @param options - Layout options
45
- * @returns Layout result with positioned nodes, edges, and swimlane info
33
+ * @param events - Events to lay out
34
+ * @param sequenceEdges - Edges connecting events
35
+ * @param options - Layout options (lane sizing, openedNamespaces)
46
36
  *
47
37
  * @example
48
38
  * ```tsx
@@ -55,105 +45,140 @@ function getParentNamespace(namespace) {
55
45
  * [
56
46
  * { id: 'e1', fromEvent: '1', toEvent: '2' },
57
47
  * { id: 'e2', fromEvent: '2', toEvent: '3' },
58
- * ]
48
+ * ],
49
+ * { openedNamespaces: ['auth'] }, // drill `auth` to show validation/token as separate lanes
59
50
  * );
60
51
  * ```
61
52
  */
62
53
  export function useSequenceLayout(events, sequenceEdges, options = {}) {
63
- const { namespaceStrategy = 'all-but-last', laneWidth = 250, laneGap = 0, eventSpacing = 80, headerHeight = 60, collapsedNamespaces = [], nodeWidth = 14, nodeHeight = 14, } = options;
54
+ const { openedNamespaces, laneWidth = 250, laneGap = 0, eventSpacing = 80, headerHeight = 60, nodeWidth = 14, nodeHeight = 14, } = options;
55
+ // Normalize openedNamespaces into a stable string for memo dependency
56
+ const openedKey = useMemo(() => {
57
+ if (!openedNamespaces)
58
+ return '';
59
+ const arr = Array.from(openedNamespaces);
60
+ arr.sort();
61
+ return arr.join('|');
62
+ }, [openedNamespaces]);
64
63
  return useMemo(() => {
65
64
  if (events.length === 0) {
66
65
  return {
67
66
  nodes: [],
68
67
  edges: [],
69
68
  swimlanes: [],
69
+ parentHeaders: [],
70
+ headerRows: 1,
70
71
  totalWidth: 0,
71
72
  totalHeight: 0,
72
73
  };
73
74
  }
74
- // Step 1: Extract namespaces and group events
75
- const eventNamespaces = new Map();
76
- const namespaceEvents = new Map();
75
+ const opened = new Set(openedKey ? openedKey.split('|') : []);
76
+ // Step 1: Resolve each event to a lane prefix
77
+ const eventLane = new Map();
78
+ const laneEvents = new Map();
77
79
  for (const event of events) {
78
- const namespace = extractNamespace(event.name, namespaceStrategy);
79
- eventNamespaces.set(event.id, namespace);
80
- if (!namespaceEvents.has(namespace)) {
81
- namespaceEvents.set(namespace, []);
80
+ const lane = resolveLane(event.name, opened);
81
+ eventLane.set(event.id, lane);
82
+ if (!laneEvents.has(lane)) {
83
+ laneEvents.set(lane, []);
82
84
  }
83
- namespaceEvents.get(namespace).push(event.id);
85
+ laneEvents.get(lane).push(event.id);
84
86
  }
85
- // Step 2: Build namespace hierarchy and determine visible lanes
86
- const allNamespaces = Array.from(namespaceEvents.keys()).sort();
87
- const collapsedSet = new Set(collapsedNamespaces);
88
- // For collapsed namespaces, merge children into parent
89
- const visibleNamespaces = [];
90
- const namespaceToVisible = new Map();
91
- for (const ns of allNamespaces) {
92
- // Check if any ancestor is collapsed
93
- let visibleNs = ns;
94
- let current = ns;
95
- while (current) {
96
- if (collapsedSet.has(current)) {
97
- visibleNs = current;
98
- }
99
- current = getParentNamespace(current);
100
- }
101
- namespaceToVisible.set(ns, visibleNs);
102
- if (!visibleNamespaces.includes(visibleNs)) {
103
- visibleNamespaces.push(visibleNs);
87
+ // Step 2: Order lanes alphabetically (parents naturally sort before children)
88
+ const laneNames = Array.from(laneEvents.keys()).sort();
89
+ // canExpand is meaningful only when opening would actually fork the lane
90
+ // into multiple child lanes. If every event in the lane would drill into
91
+ // the same child, drilling is a relabel — hide the chevron.
92
+ const eventsById = new Map();
93
+ for (const event of events)
94
+ eventsById.set(event.id, event);
95
+ const canExpandLane = (laneNs, eventIds) => {
96
+ const augmented = new Set(opened);
97
+ augmented.add(laneNs);
98
+ const seen = new Set();
99
+ for (const eid of eventIds) {
100
+ const event = eventsById.get(eid);
101
+ if (!event)
102
+ continue;
103
+ seen.add(resolveLane(event.name, augmented));
104
+ if (seen.size > 1)
105
+ return true;
104
106
  }
105
- }
106
- // Step 3: Create swimlanes with positions
107
- const swimlanes = visibleNamespaces.map((namespace, index) => {
107
+ return false;
108
+ };
109
+ // Step 3: Build Swimlane records
110
+ const swimlanes = laneNames.map((namespace, index) => {
108
111
  const x = index * (laneWidth + laneGap) + laneWidth / 2;
109
- // Find all events that map to this visible namespace
110
- const eventIds = [];
111
- for (const [eventId, eventNs] of eventNamespaces) {
112
- if (namespaceToVisible.get(eventNs) === namespace) {
113
- eventIds.push(eventId);
114
- }
115
- }
116
- // Find children (namespaces that have this as parent)
117
- const children = allNamespaces.filter((ns) => getParentNamespace(ns) === namespace);
112
+ const segs = namespace.split('.');
113
+ const parentNamespace = segs.length > 1 ? segs.slice(0, -1).join('.') : undefined;
114
+ const eventIds = laneEvents.get(namespace);
118
115
  return {
119
116
  namespace,
120
- label: namespace.split('.').pop() || namespace,
117
+ label: segs[segs.length - 1] || namespace,
121
118
  x,
122
- parentNamespace: getParentNamespace(namespace),
123
- isCollapsed: collapsedSet.has(namespace),
124
- children,
119
+ parentNamespace,
120
+ isOpened: opened.has(namespace),
121
+ isParentOpened: parentNamespace ? opened.has(parentNamespace) : false,
122
+ canExpand: canExpandLane(namespace, eventIds),
125
123
  eventIds,
126
124
  };
127
125
  });
128
- // Create lookup for swimlane by namespace
129
- const swimlaneByNamespace = new Map();
126
+ const laneByNamespace = new Map();
127
+ for (const lane of swimlanes) {
128
+ laneByNamespace.set(lane.namespace, lane);
129
+ }
130
+ // Step 3b: Build parent header cells for opened ancestors. For every leaf
131
+ // lane at depth > 1, walk depths 1..d-1 and aggregate the leaf x-extent
132
+ // under each ancestor.
133
+ const ancestorBounds = new Map();
130
134
  for (const lane of swimlanes) {
131
- swimlaneByNamespace.set(lane.namespace, lane);
135
+ const segs = lane.namespace.split('.');
136
+ const left = lane.x - laneWidth / 2;
137
+ const right = lane.x + laneWidth / 2;
138
+ for (let d = 1; d < segs.length; d++) {
139
+ const ancestorNs = segs.slice(0, d).join('.');
140
+ const existing = ancestorBounds.get(ancestorNs);
141
+ if (existing) {
142
+ existing.xMin = Math.min(existing.xMin, left);
143
+ existing.xMax = Math.max(existing.xMax, right);
144
+ }
145
+ else {
146
+ ancestorBounds.set(ancestorNs, { xMin: left, xMax: right, depth: d });
147
+ }
148
+ }
132
149
  }
133
- // Step 4: Position events using global time layers
134
- // Each event gets a Y position based on its index in the overall sequence
135
- // This creates horizontal "time layers" across all swimlanes
150
+ const parentHeaders = Array.from(ancestorBounds.entries())
151
+ .map(([namespace, { xMin, xMax, depth }]) => {
152
+ const segs = namespace.split('.');
153
+ return {
154
+ namespace,
155
+ label: segs[segs.length - 1] || namespace,
156
+ x: (xMin + xMax) / 2,
157
+ width: xMax - xMin,
158
+ depth,
159
+ };
160
+ })
161
+ .sort((a, b) => a.depth - b.depth || a.x - b.x);
162
+ const headerRows = swimlanes.reduce((max, lane) => Math.max(max, lane.namespace.split('.').length), 1);
163
+ const totalHeaderHeight = headerHeight * headerRows;
164
+ // Step 4: Position events on global time layers, below the full header strip
136
165
  const nodes = [];
137
166
  for (let i = 0; i < events.length; i++) {
138
167
  const event = events[i];
139
- const originalNamespace = eventNamespaces.get(event.id);
140
- const visibleNamespace = namespaceToVisible.get(originalNamespace);
141
- const lane = swimlaneByNamespace.get(visibleNamespace);
142
- // Global Y position based on event order (time layer)
143
- // Start first event closer to header with small offset
144
- const y = headerHeight + 40 + i * eventSpacing;
168
+ const laneNs = eventLane.get(event.id);
169
+ const lane = laneByNamespace.get(laneNs);
170
+ const y = totalHeaderHeight + 40 + i * eventSpacing;
145
171
  nodes.push({
146
172
  id: event.id,
147
173
  type: 'sequenceMarker',
148
174
  position: {
149
175
  x: lane.x - nodeWidth / 2,
150
- y: y - nodeHeight / 2, // Center vertically on the time layer
176
+ y: y - nodeHeight / 2,
151
177
  },
152
178
  data: {
153
179
  label: event.label || event.name.split('.').pop() || event.name,
154
180
  fullName: event.name,
155
- namespace: originalNamespace,
156
- visibleNamespace,
181
+ namespace: laneNs,
157
182
  timeLayer: i,
158
183
  isMoveEvent: event.moveEvent === true,
159
184
  sourcePath: event.sourcePath,
@@ -165,24 +190,21 @@ export function useSequenceLayout(events, sequenceEdges, options = {}) {
165
190
  },
166
191
  });
167
192
  }
168
- // Step 5: Create edges - one per event, showing how to get to the NEXT event
169
- // Each edge looks forward to determine what to render
193
+ // Step 5: Edges one per event, looking ahead to the next
170
194
  const edges = [];
171
195
  for (let i = 0; i < events.length; i++) {
172
196
  const currentEvent = events[i];
173
- const currentNamespace = eventNamespaces.get(currentEvent.id);
174
- const currentVisibleNs = namespaceToVisible.get(currentNamespace);
175
- const currentLane = swimlaneByNamespace.get(currentVisibleNs);
176
- // Look at the next event (if any)
197
+ const currentLaneNs = eventLane.get(currentEvent.id);
198
+ const currentLane = laneByNamespace.get(currentLaneNs);
177
199
  if (i < events.length - 1) {
178
200
  const nextEvent = events[i + 1];
179
- const nextNamespace = eventNamespaces.get(nextEvent.id);
180
- const nextVisibleNs = namespaceToVisible.get(nextNamespace);
181
- const nextLane = swimlaneByNamespace.get(nextVisibleNs);
201
+ const nextLaneNs = eventLane.get(nextEvent.id);
202
+ const nextLane = laneByNamespace.get(nextLaneNs);
182
203
  const nextIsMoveEvent = nextEvent.moveEvent === true;
183
- const crossesLanes = currentVisibleNs !== nextVisibleNs;
184
- // Label is from the CURRENT event (the one creating this edge)
185
- const edgeLabel = currentEvent.label || currentEvent.name.split('.').pop() || currentEvent.name;
204
+ const crossesLanes = currentLaneNs !== nextLaneNs;
205
+ const edgeLabel = currentEvent.label ||
206
+ currentEvent.name.split('.').pop() ||
207
+ currentEvent.name;
186
208
  edges.push({
187
209
  id: `edge-${currentEvent.id}-to-${nextEvent.id}`,
188
210
  source: currentEvent.id,
@@ -193,8 +215,8 @@ export function useSequenceLayout(events, sequenceEdges, options = {}) {
193
215
  labelBgStyle: { fill: 'white', fillOpacity: 0.8 },
194
216
  data: {
195
217
  crossesLanes,
196
- sourceNamespace: currentNamespace,
197
- targetNamespace: nextNamespace,
218
+ sourceNamespace: currentLaneNs,
219
+ targetNamespace: nextLaneNs,
198
220
  isMoveEvent: nextIsMoveEvent,
199
221
  sourceEvent: currentEvent,
200
222
  targetEvent: nextEvent,
@@ -204,9 +226,10 @@ export function useSequenceLayout(events, sequenceEdges, options = {}) {
204
226
  });
205
227
  }
206
228
  else {
207
- // Last event - render small activation bar to show it exists
208
229
  const currentIsMoveEvent = currentEvent.moveEvent === true;
209
- const edgeLabel = currentEvent.label || currentEvent.name.split('.').pop() || currentEvent.name;
230
+ const edgeLabel = currentEvent.label ||
231
+ currentEvent.name.split('.').pop() ||
232
+ currentEvent.name;
210
233
  edges.push({
211
234
  id: `edge-${currentEvent.id}-end`,
212
235
  source: currentEvent.id,
@@ -217,8 +240,8 @@ export function useSequenceLayout(events, sequenceEdges, options = {}) {
217
240
  labelBgStyle: { fill: 'white', fillOpacity: 0.8 },
218
241
  data: {
219
242
  crossesLanes: false,
220
- sourceNamespace: currentNamespace,
221
- targetNamespace: currentNamespace,
243
+ sourceNamespace: currentLaneNs,
244
+ targetNamespace: currentLaneNs,
222
245
  isMoveEvent: currentIsMoveEvent,
223
246
  sourceEvent: currentEvent,
224
247
  targetEvent: currentEvent,
@@ -232,13 +255,11 @@ export function useSequenceLayout(events, sequenceEdges, options = {}) {
232
255
  }
233
256
  // Step 6: Compute total dimensions
234
257
  const totalWidth = swimlanes.length * laneWidth + (swimlanes.length - 1) * laneGap;
235
- // Total height based on number of events (time layers)
236
- const totalHeight = headerHeight + 40 + events.length * eventSpacing;
237
- // Step 7: Add invisible boundary nodes to ensure fitView includes full diagram width
258
+ const totalHeight = totalHeaderHeight + 40 + events.length * eventSpacing;
259
+ // Step 7: Boundary nodes so React Flow's fitView covers full width
238
260
  if (swimlanes.length > 0) {
239
261
  const leftmostLane = swimlanes[0];
240
262
  const rightmostLane = swimlanes[swimlanes.length - 1];
241
- // Add boundary nodes at the corners
242
263
  nodes.push({
243
264
  id: '__boundary_left__',
244
265
  type: 'default',
@@ -261,20 +282,21 @@ export function useSequenceLayout(events, sequenceEdges, options = {}) {
261
282
  nodes,
262
283
  edges,
263
284
  swimlanes,
285
+ parentHeaders,
286
+ headerRows,
264
287
  totalWidth,
265
288
  totalHeight,
266
289
  };
267
290
  }, [
268
291
  events,
269
292
  sequenceEdges,
270
- namespaceStrategy,
293
+ openedKey,
271
294
  laneWidth,
272
295
  laneGap,
273
296
  eventSpacing,
274
297
  headerHeight,
275
298
  nodeWidth,
276
299
  nodeHeight,
277
- collapsedNamespaces,
278
300
  ]);
279
301
  }
280
302
  //# sourceMappingURL=useSequenceLayout.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"useSequenceLayout.js","sourceRoot":"","sources":["../../src/hooks/useSequenceLayout.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"useSequenceLayout.js","sourceRoot":"","sources":["../../src/hooks/useSequenceLayout.ts"],"names":[],"mappings":"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"}
package/dist/index.d.ts CHANGED
@@ -13,7 +13,7 @@ export type { SequenceDiagramRendererProps } from './components/SequenceDiagramR
13
13
  export { WorkflowSequenceDiagram } from './components/WorkflowSequenceDiagram';
14
14
  export type { WorkflowSequenceDiagramProps } from './components/WorkflowSequenceDiagram';
15
15
  export { useSequenceLayout } from './hooks/useSequenceLayout';
16
- export type { SequenceEvent, SequenceEdge, Swimlane, NamespaceStrategy, UseSequenceLayoutOptions, UseSequenceLayoutResult, } from './hooks/useSequenceLayout';
16
+ export type { SequenceEvent, SequenceEdge, Swimlane, UseSequenceLayoutOptions, UseSequenceLayoutResult, } from './hooks/useSequenceLayout';
17
17
  export { MultiCanvasRenderer, mergeCanvases, parseNodeId } from './components/MultiCanvasRenderer';
18
18
  export type { MultiCanvasRendererProps, MultiCanvasLayout, CanvasPlacement, } from './components/MultiCanvasRenderer';
19
19
  export { ConfigurationSelector } from './components/ConfigurationSelector';
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAsBH,oBAAoB;AACpB,OAAO,EAAE,aAAa,EAAE,MAAM,4BAA4B,CAAC;AAQ3D,OAAO,EAAE,uBAAuB,EAAE,MAAM,sCAAsC,CAAC;AAG/E,OAAO,EAAE,uBAAuB,EAAE,MAAM,sCAAsC,CAAC;AAG/E,OAAO,EAAE,iBAAiB,EAAE,MAAM,2BAA2B,CAAC;AAU9D,OAAO,EAAE,mBAAmB,EAAE,aAAa,EAAE,WAAW,EAAE,MAAM,kCAAkC,CAAC;AAOnG,OAAO,EAAE,qBAAqB,EAAE,MAAM,oCAAoC,CAAC;AAG3E,6BAA6B;AAC7B,OAAO,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAC;AAGlD,OAAO,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAC;AAGhD,8BAA8B;AAC9B,OAAO,EACL,sBAAsB,EACtB,aAAa,EACb,aAAa,EACb,gBAAgB,EAChB,gBAAgB,GACjB,MAAM,cAAc,CAAC;AAUtB,OAAO,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAC;AAGlD,OAAO,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAC;AAGhD,2BAA2B;AAC3B,OAAO,EAAE,WAAW,EAAE,MAAM,0BAA0B,CAAC;AAGvD,mBAAmB;AACnB,OAAO,EACL,oBAAoB,EACpB,oBAAoB,GACrB,MAAM,wBAAwB,CAAC;AAEhC,OAAO,EAAE,IAAI,EAAE,WAAW,EAAE,MAAM,sBAAsB,CAAC;AAEzD,OAAO,EACL,oBAAoB,EACpB,iBAAiB,EACjB,aAAa,GACd,MAAM,0BAA0B,CAAC;AAClC,OAAO,EAAE,eAAe,EAAE,oBAAoB,EAAE,wBAAwB,EAAE,MAAM,sBAAsB,CAAC;AAGvG,4DAA4D;AAC5D,OAAO,EAAE,gBAAgB,EAAE,iBAAiB,EAAE,MAAM,mBAAmB,CAAC;AAExE,OAAO,EAAE,YAAY,EAAE,oBAAoB,EAAE,MAAM,sBAAsB,CAAC;AAG1E,6EAA6E;AAC7E,OAAO,EACL,iBAAiB,EACjB,WAAW,EACX,UAAU,EACV,SAAS,EACT,QAAQ,EACR,UAAU,EACV,iBAAiB,EACjB,gBAAgB,EAChB,sBAAsB,GACvB,MAAM,wBAAwB,CAAC;AAsChC,6DAA6D;AAC7D,OAAO,EAAE,YAAY,EAAE,YAAY,EAAE,MAAM,yBAAyB,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAsBH,oBAAoB;AACpB,OAAO,EAAE,aAAa,EAAE,MAAM,4BAA4B,CAAC;AAQ3D,OAAO,EAAE,uBAAuB,EAAE,MAAM,sCAAsC,CAAC;AAG/E,OAAO,EAAE,uBAAuB,EAAE,MAAM,sCAAsC,CAAC;AAG/E,OAAO,EAAE,iBAAiB,EAAE,MAAM,2BAA2B,CAAC;AAS9D,OAAO,EAAE,mBAAmB,EAAE,aAAa,EAAE,WAAW,EAAE,MAAM,kCAAkC,CAAC;AAOnG,OAAO,EAAE,qBAAqB,EAAE,MAAM,oCAAoC,CAAC;AAG3E,6BAA6B;AAC7B,OAAO,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAC;AAGlD,OAAO,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAC;AAGhD,8BAA8B;AAC9B,OAAO,EACL,sBAAsB,EACtB,aAAa,EACb,aAAa,EACb,gBAAgB,EAChB,gBAAgB,GACjB,MAAM,cAAc,CAAC;AAUtB,OAAO,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAC;AAGlD,OAAO,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAC;AAGhD,2BAA2B;AAC3B,OAAO,EAAE,WAAW,EAAE,MAAM,0BAA0B,CAAC;AAGvD,mBAAmB;AACnB,OAAO,EACL,oBAAoB,EACpB,oBAAoB,GACrB,MAAM,wBAAwB,CAAC;AAEhC,OAAO,EAAE,IAAI,EAAE,WAAW,EAAE,MAAM,sBAAsB,CAAC;AAEzD,OAAO,EACL,oBAAoB,EACpB,iBAAiB,EACjB,aAAa,GACd,MAAM,0BAA0B,CAAC;AAClC,OAAO,EAAE,eAAe,EAAE,oBAAoB,EAAE,wBAAwB,EAAE,MAAM,sBAAsB,CAAC;AAGvG,4DAA4D;AAC5D,OAAO,EAAE,gBAAgB,EAAE,iBAAiB,EAAE,MAAM,mBAAmB,CAAC;AAExE,OAAO,EAAE,YAAY,EAAE,oBAAoB,EAAE,MAAM,sBAAsB,CAAC;AAG1E,6EAA6E;AAC7E,OAAO,EACL,iBAAiB,EACjB,WAAW,EACX,UAAU,EACV,SAAS,EACT,QAAQ,EACR,UAAU,EACV,iBAAiB,EACjB,gBAAgB,EAChB,sBAAsB,GACvB,MAAM,wBAAwB,CAAC;AAsChC,6DAA6D;AAC7D,OAAO,EAAE,YAAY,EAAE,YAAY,EAAE,MAAM,yBAAyB,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@principal-ai/principal-view-react",
3
- "version": "0.15.6",
3
+ "version": "0.15.7",
4
4
  "description": "React components for graph-based principal view framework",
5
5
  "main": "dist/index.js",
6
6
  "types": "dist/index.d.ts",