@principal-ai/principal-view-react 0.6.11 → 0.6.12

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.
@@ -52,6 +52,23 @@ export interface EdgeStateWithHandles extends EdgeState {
52
52
  targetHandle?: string;
53
53
  }
54
54
 
55
+ /**
56
+ * Map canvas side to source handle ID
57
+ * Source handles use '-out' suffix
58
+ */
59
+ function sideToSourceHandle(side?: string): string | undefined {
60
+ if (!side) return undefined;
61
+ return `${side}-out`;
62
+ }
63
+
64
+ /**
65
+ * Map canvas side to target handle ID
66
+ * Target handles use the side name directly
67
+ */
68
+ function sideToTargetHandle(side?: string): string | undefined {
69
+ return side;
70
+ }
71
+
55
72
  /**
56
73
  * Convert our EdgeState to xyflow Edge format
57
74
  */
@@ -71,6 +88,12 @@ export function convertToXYFlowEdges(
71
88
  const hasViolations = violations.some((v) => v.context?.edgeId === edge.id);
72
89
  const edgeWithHandles = edge as EdgeStateWithHandles;
73
90
 
91
+ // Get handle IDs from edge data (fromSide/toSide) or explicit handles
92
+ const fromSide = edge.data?.fromSide as string | undefined;
93
+ const toSide = edge.data?.toSide as string | undefined;
94
+ const sourceHandle = edgeWithHandles.sourceHandle || sideToSourceHandle(fromSide);
95
+ const targetHandle = edgeWithHandles.targetHandle || sideToTargetHandle(toSide);
96
+
74
97
  // Add arrow marker if edge type is directed
75
98
  // Color priority: edge data color > type definition color > default
76
99
  const edgeColor = edge.data?.color as string | undefined;
@@ -88,8 +111,8 @@ export function convertToXYFlowEdges(
88
111
  id: edge.id,
89
112
  source: edge.from,
90
113
  target: edge.to,
91
- sourceHandle: edgeWithHandles.sourceHandle,
92
- targetHandle: edgeWithHandles.targetHandle,
114
+ sourceHandle,
115
+ targetHandle,
93
116
  type: 'custom',
94
117
  animated: typeDefinition?.style === 'animated',
95
118
  markerEnd,
@@ -97,6 +120,7 @@ export function convertToXYFlowEdges(
97
120
  typeDefinition,
98
121
  hasViolations,
99
122
  data: edge.data,
123
+ edgeType: edge.type,
100
124
  },
101
125
  };
102
126
  });