@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.
- package/dist/edges/CustomEdge.d.ts +1 -0
- package/dist/edges/CustomEdge.d.ts.map +1 -1
- package/dist/edges/CustomEdge.js +17 -3
- package/dist/edges/CustomEdge.js.map +1 -1
- package/dist/nodes/CustomNode.d.ts.map +1 -1
- package/dist/nodes/CustomNode.js +2 -2
- package/dist/nodes/CustomNode.js.map +1 -1
- package/dist/utils/graphConverter.d.ts.map +1 -1
- package/dist/utils/graphConverter.js +24 -2
- package/dist/utils/graphConverter.js.map +1 -1
- package/package.json +1 -1
- package/src/edges/CustomEdge.tsx +34 -3
- package/src/nodes/CustomNode.tsx +5 -3
- package/src/stories/CanvasEdgeTypes.stories.tsx +980 -0
- package/src/utils/graphConverter.ts +26 -2
|
@@ -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
|
|
92
|
-
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
|
});
|