system-canvas-react 0.2.10 → 0.2.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.
@@ -1 +1 @@
1
- {"version":3,"file":"EdgeRenderer.d.ts","sourceRoot":"","sources":["../../src/components/EdgeRenderer.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAA;AACzB,OAAO,KAAK,EACV,UAAU,EACV,YAAY,EACZ,WAAW,EACX,SAAS,EACV,MAAM,eAAe,CAAA;AAOtB,UAAU,iBAAiB;IACzB,KAAK,EAAE,UAAU,EAAE,CAAA;IACnB,OAAO,EAAE,GAAG,CAAC,MAAM,EAAE,YAAY,CAAC,CAAA;IAClC,KAAK,EAAE,WAAW,CAAA;IAClB,gBAAgB,EAAE,SAAS,CAAA;IAC3B,OAAO,EAAE,CAAC,IAAI,EAAE,UAAU,EAAE,KAAK,EAAE,KAAK,CAAC,UAAU,KAAK,IAAI,CAAA;IAC5D,aAAa,CAAC,EAAE,CAAC,IAAI,EAAE,UAAU,EAAE,KAAK,EAAE,KAAK,CAAC,UAAU,KAAK,IAAI,CAAA;IACnE,aAAa,EAAE,CAAC,IAAI,EAAE,UAAU,EAAE,KAAK,EAAE,KAAK,CAAC,UAAU,KAAK,IAAI,CAAA;IAClE,wDAAwD;IACxD,UAAU,CAAC,EAAE,MAAM,GAAG,IAAI,CAAA;IAC1B,6EAA6E;IAC7E,SAAS,CAAC,EAAE,MAAM,GAAG,IAAI,CAAA;IACzB,iHAAiH;IACjH,aAAa,CAAC,EAAE,GAAG,CAAC,MAAM,CAAC,CAAA;CAC5B;AAED;;;GAGG;AACH,wBAAgB,YAAY,CAAC,EAC3B,KAAK,EACL,OAAO,EACP,KAAK,EACL,gBAAgB,EAChB,OAAO,EACP,aAAa,EACb,aAAa,EACb,UAAU,EACV,SAAS,EACT,aAAa,GACd,EAAE,iBAAiB,2CAmInB"}
1
+ {"version":3,"file":"EdgeRenderer.d.ts","sourceRoot":"","sources":["../../src/components/EdgeRenderer.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAA;AACzB,OAAO,KAAK,EACV,UAAU,EACV,YAAY,EACZ,WAAW,EACX,SAAS,EACV,MAAM,eAAe,CAAA;AAQtB,UAAU,iBAAiB;IACzB,KAAK,EAAE,UAAU,EAAE,CAAA;IACnB,OAAO,EAAE,GAAG,CAAC,MAAM,EAAE,YAAY,CAAC,CAAA;IAClC,KAAK,EAAE,WAAW,CAAA;IAClB,gBAAgB,EAAE,SAAS,CAAA;IAC3B,OAAO,EAAE,CAAC,IAAI,EAAE,UAAU,EAAE,KAAK,EAAE,KAAK,CAAC,UAAU,KAAK,IAAI,CAAA;IAC5D,aAAa,CAAC,EAAE,CAAC,IAAI,EAAE,UAAU,EAAE,KAAK,EAAE,KAAK,CAAC,UAAU,KAAK,IAAI,CAAA;IACnE,aAAa,EAAE,CAAC,IAAI,EAAE,UAAU,EAAE,KAAK,EAAE,KAAK,CAAC,UAAU,KAAK,IAAI,CAAA;IAClE,wDAAwD;IACxD,UAAU,CAAC,EAAE,MAAM,GAAG,IAAI,CAAA;IAC1B,6EAA6E;IAC7E,SAAS,CAAC,EAAE,MAAM,GAAG,IAAI,CAAA;IACzB,iHAAiH;IACjH,aAAa,CAAC,EAAE,GAAG,CAAC,MAAM,CAAC,CAAA;CAC5B;AAED;;;GAGG;AACH,wBAAgB,YAAY,CAAC,EAC3B,KAAK,EACL,OAAO,EACP,KAAK,EACL,gBAAgB,EAChB,OAAO,EACP,aAAa,EACb,aAAa,EACb,UAAU,EACV,SAAS,EACT,aAAa,GACd,EAAE,iBAAiB,2CAgJnB"}
@@ -1,5 +1,5 @@
1
1
  import { jsx as _jsx, Fragment as _Fragment, jsxs as _jsxs } from "react/jsx-runtime";
2
- import { computeEdgePath, computeEdgeMidpoint, resolveColor, } from 'system-canvas';
2
+ import { computeEdgePath, computeEdgeMidpoint, resolveColor, measureTextWidth, } from 'system-canvas';
3
3
  /**
4
4
  * Renders all edges. Edges are drawn before nodes in the SVG so they
5
5
  * appear behind node rectangles (painter's model).
@@ -41,7 +41,16 @@ export function EdgeRenderer({ edges, nodeMap, theme, defaultEdgeStyle, onClick,
41
41
  const fromEnd = edge.fromEnd ?? 'none';
42
42
  const arrowId = 'system-canvas-arrowhead';
43
43
  const isEdgeDimmed = (dimmedNodeIds?.has(edge.fromNode) || dimmedNodeIds?.has(edge.toNode)) ?? false;
44
- return (_jsxs("g", { className: "system-canvas-edge", style: { cursor: 'pointer' }, onClick: (e) => onClick(edge, e), onDoubleClick: (e) => onDoubleClick?.(edge, e), onContextMenu: (e) => onContextMenu(edge, e), children: [_jsx("path", { d: pathD, fill: "none", stroke: "transparent", strokeWidth: 12 }), _jsx("path", { d: pathD, fill: "none", stroke: edgeColor, strokeWidth: strokeWidth, strokeDasharray: isEdgeDimmed ? '4 4' : undefined, strokeOpacity: isEdgeDimmed ? 0.3 : 1, markerEnd: toEnd === 'arrow' ? `url(#${arrowId})` : undefined, markerStart: fromEnd === 'arrow' ? `url(#${arrowId})` : undefined }), edge.label && !isEditing && (_jsxs(_Fragment, { children: [_jsx("rect", { x: midpoint.x - edge.label.length * 3 - 4, y: midpoint.y - theme.edge.labelFontSize - 2, width: edge.label.length * 6 + 8, height: theme.edge.labelFontSize + 6, rx: 3, fill: theme.background, opacity: 0.8 }), _jsx("text", { x: midpoint.x, y: midpoint.y, fill: isSelected ? theme.node.labelColor : theme.edge.labelColor, fontSize: theme.edge.labelFontSize, fontFamily: theme.node.fontFamily, textAnchor: "middle", pointerEvents: "none", children: edge.label })] }))] }, edge.id));
44
+ return (_jsxs("g", { className: "system-canvas-edge", style: { cursor: 'pointer' }, onClick: (e) => onClick(edge, e), onDoubleClick: (e) => onDoubleClick?.(edge, e), onContextMenu: (e) => onContextMenu(edge, e), children: [_jsx("path", { d: pathD, fill: "none", stroke: "transparent", strokeWidth: 12 }), _jsx("path", { d: pathD, fill: "none", stroke: edgeColor, strokeWidth: strokeWidth, strokeDasharray: isEdgeDimmed ? '4 4' : undefined, strokeOpacity: isEdgeDimmed ? 0.3 : 1, markerEnd: toEnd === 'arrow' ? `url(#${arrowId})` : undefined, markerStart: fromEnd === 'arrow' ? `url(#${arrowId})` : undefined }), edge.label && !isEditing && (_jsx(_Fragment, { children: (() => {
45
+ const labelFontSize = theme.edge.labelFontSize;
46
+ const pillPadX = 8;
47
+ const pillPadY = 3;
48
+ const pillH = labelFontSize + pillPadY * 2;
49
+ const pillW = measureTextWidth(edge.label, labelFontSize) + pillPadX * 2;
50
+ const pillX = midpoint.x - pillW / 2;
51
+ const pillY = midpoint.y - pillH / 2 - labelFontSize * 0.35;
52
+ return (_jsxs(_Fragment, { children: [_jsx("rect", { x: pillX, y: pillY, width: pillW, height: pillH, rx: pillH / 2, fill: theme.background, opacity: 0.85 }), _jsx("text", { x: midpoint.x, y: pillY + pillH / 2 + labelFontSize * 0.35, fill: isSelected ? theme.node.labelColor : theme.edge.labelColor, fontSize: labelFontSize, fontFamily: theme.node.fontFamily, textAnchor: "middle", pointerEvents: "none", children: edge.label })] }));
53
+ })() }))] }, edge.id));
45
54
  })] }));
46
55
  }
47
56
  //# sourceMappingURL=EdgeRenderer.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"EdgeRenderer.js","sourceRoot":"","sources":["../../src/components/EdgeRenderer.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"EdgeRenderer.js","sourceRoot":"","sources":["../../src/components/EdgeRenderer.tsx"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=canvasEdgeFields.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"canvasEdgeFields.test.d.ts","sourceRoot":"","sources":["../../../src/hooks/__tests__/canvasEdgeFields.test.ts"],"names":[],"mappings":""}
@@ -0,0 +1,88 @@
1
+ import { describe, it, expect } from 'vitest';
2
+ import { validateCanvas } from 'system-canvas';
3
+ describe('CanvasEdge — waypoints and animated fields', () => {
4
+ const baseCanvas = {
5
+ nodes: [
6
+ { id: 'n1', type: 'text', x: 0, y: 0, width: 100, height: 50, text: 'A' },
7
+ { id: 'n2', type: 'text', x: 200, y: 0, width: 100, height: 50, text: 'B' },
8
+ ],
9
+ };
10
+ it('validateCanvas passes when edge omits waypoints and animated', () => {
11
+ const canvas = {
12
+ ...baseCanvas,
13
+ edges: [{ id: 'e1', fromNode: 'n1', toNode: 'n2' }],
14
+ };
15
+ expect(validateCanvas(canvas)).toEqual([]);
16
+ });
17
+ it('validateCanvas passes when edge includes waypoints', () => {
18
+ const canvas = {
19
+ ...baseCanvas,
20
+ edges: [
21
+ {
22
+ id: 'e1',
23
+ fromNode: 'n1',
24
+ toNode: 'n2',
25
+ waypoints: [{ x: 100, y: 50 }, { x: 150, y: 25 }],
26
+ },
27
+ ],
28
+ };
29
+ expect(validateCanvas(canvas)).toEqual([]);
30
+ });
31
+ it('validateCanvas passes when edge includes animated: true', () => {
32
+ const canvas = {
33
+ ...baseCanvas,
34
+ edges: [
35
+ {
36
+ id: 'e1',
37
+ fromNode: 'n1',
38
+ toNode: 'n2',
39
+ animated: true,
40
+ },
41
+ ],
42
+ };
43
+ expect(validateCanvas(canvas)).toEqual([]);
44
+ });
45
+ it('validateCanvas passes when edge includes both waypoints and animated', () => {
46
+ const canvas = {
47
+ ...baseCanvas,
48
+ edges: [
49
+ {
50
+ id: 'e1',
51
+ fromNode: 'n1',
52
+ toNode: 'n2',
53
+ waypoints: [{ x: 0, y: 0 }],
54
+ animated: true,
55
+ },
56
+ ],
57
+ };
58
+ expect(validateCanvas(canvas)).toEqual([]);
59
+ });
60
+ it('EdgeUpdate type accepts waypoints patch', () => {
61
+ // Type-level assertion — if this compiles, the type is correct
62
+ const patch = { waypoints: [{ x: 0, y: 0 }] };
63
+ expect(patch.waypoints).toEqual([{ x: 0, y: 0 }]);
64
+ });
65
+ it('EdgeUpdate type accepts animated patch', () => {
66
+ const patch = { animated: true };
67
+ expect(patch.animated).toBe(true);
68
+ });
69
+ it('CanvasEdge type includes waypoints field', () => {
70
+ const edge = {
71
+ id: 'e1',
72
+ fromNode: 'n1',
73
+ toNode: 'n2',
74
+ waypoints: [{ x: 10, y: 20 }],
75
+ };
76
+ expect(edge.waypoints).toEqual([{ x: 10, y: 20 }]);
77
+ });
78
+ it('CanvasEdge type includes animated field', () => {
79
+ const edge = {
80
+ id: 'e1',
81
+ fromNode: 'n1',
82
+ toNode: 'n2',
83
+ animated: false,
84
+ };
85
+ expect(edge.animated).toBe(false);
86
+ });
87
+ });
88
+ //# sourceMappingURL=canvasEdgeFields.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"canvasEdgeFields.test.js","sourceRoot":"","sources":["../../../src/hooks/__tests__/canvasEdgeFields.test.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,EAAE,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAA;AAC7C,OAAO,EAAE,cAAc,EAAE,MAAM,eAAe,CAAA;AAG9C,QAAQ,CAAC,4CAA4C,EAAE,GAAG,EAAE;IAC1D,MAAM,UAAU,GAAG;QACjB,KAAK,EAAE;YACL,EAAE,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,MAAe,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,KAAK,EAAE,GAAG,EAAE,MAAM,EAAE,EAAE,EAAE,IAAI,EAAE,GAAG,EAAE;YAClF,EAAE,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,MAAe,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,CAAC,EAAE,KAAK,EAAE,GAAG,EAAE,MAAM,EAAE,EAAE,EAAE,IAAI,EAAE,GAAG,EAAE;SACrF;KACF,CAAA;IAED,EAAE,CAAC,8DAA8D,EAAE,GAAG,EAAE;QACtE,MAAM,MAAM,GAAG;YACb,GAAG,UAAU;YACb,KAAK,EAAE,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC;SACpD,CAAA;QACD,MAAM,CAAC,cAAc,CAAC,MAAM,CAAC,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC,CAAA;IAC5C,CAAC,CAAC,CAAA;IAEF,EAAE,CAAC,oDAAoD,EAAE,GAAG,EAAE;QAC5D,MAAM,MAAM,GAAG;YACb,GAAG,UAAU;YACb,KAAK,EAAE;gBACL;oBACE,EAAE,EAAE,IAAI;oBACR,QAAQ,EAAE,IAAI;oBACd,MAAM,EAAE,IAAI;oBACZ,SAAS,EAAE,CAAC,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC;iBAClD;aACF;SACF,CAAA;QACD,MAAM,CAAC,cAAc,CAAC,MAAM,CAAC,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC,CAAA;IAC5C,CAAC,CAAC,CAAA;IAEF,EAAE,CAAC,yDAAyD,EAAE,GAAG,EAAE;QACjE,MAAM,MAAM,GAAG;YACb,GAAG,UAAU;YACb,KAAK,EAAE;gBACL;oBACE,EAAE,EAAE,IAAI;oBACR,QAAQ,EAAE,IAAI;oBACd,MAAM,EAAE,IAAI;oBACZ,QAAQ,EAAE,IAAI;iBACf;aACF;SACF,CAAA;QACD,MAAM,CAAC,cAAc,CAAC,MAAM,CAAC,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC,CAAA;IAC5C,CAAC,CAAC,CAAA;IAEF,EAAE,CAAC,sEAAsE,EAAE,GAAG,EAAE;QAC9E,MAAM,MAAM,GAAG;YACb,GAAG,UAAU;YACb,KAAK,EAAE;gBACL;oBACE,EAAE,EAAE,IAAI;oBACR,QAAQ,EAAE,IAAI;oBACd,MAAM,EAAE,IAAI;oBACZ,SAAS,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC;oBAC3B,QAAQ,EAAE,IAAI;iBACf;aACF;SACF,CAAA;QACD,MAAM,CAAC,cAAc,CAAC,MAAM,CAAC,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC,CAAA;IAC5C,CAAC,CAAC,CAAA;IAEF,EAAE,CAAC,yCAAyC,EAAE,GAAG,EAAE;QACjD,+DAA+D;QAC/D,MAAM,KAAK,GAAe,EAAE,SAAS,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAA;QACzD,MAAM,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC,OAAO,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAA;IACnD,CAAC,CAAC,CAAA;IAEF,EAAE,CAAC,wCAAwC,EAAE,GAAG,EAAE;QAChD,MAAM,KAAK,GAAe,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAA;QAC5C,MAAM,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;IACnC,CAAC,CAAC,CAAA;IAEF,EAAE,CAAC,0CAA0C,EAAE,GAAG,EAAE;QAClD,MAAM,IAAI,GAAe;YACvB,EAAE,EAAE,IAAI;YACR,QAAQ,EAAE,IAAI;YACd,MAAM,EAAE,IAAI;YACZ,SAAS,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC;SAC9B,CAAA;QACD,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,OAAO,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC,CAAA;IACpD,CAAC,CAAC,CAAA;IAEF,EAAE,CAAC,yCAAyC,EAAE,GAAG,EAAE;QACjD,MAAM,IAAI,GAAe;YACvB,EAAE,EAAE,IAAI;YACR,QAAQ,EAAE,IAAI;YACd,MAAM,EAAE,IAAI;YACZ,QAAQ,EAAE,KAAK;SAChB,CAAA;QACD,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAA;IACnC,CAAC,CAAC,CAAA;AACJ,CAAC,CAAC,CAAA"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "system-canvas-react",
3
- "version": "0.2.10",
3
+ "version": "0.2.12",
4
4
  "license": "MIT",
5
5
  "repository": {
6
6
  "type": "git",
@@ -35,7 +35,7 @@
35
35
  "d3-selection": "^3.0.0",
36
36
  "d3-transition": "^3.0.0",
37
37
  "d3-zoom": "^3.0.0",
38
- "system-canvas": "^0.2.10"
38
+ "system-canvas": "^0.2.12"
39
39
  },
40
40
  "peerDependencies": {
41
41
  "react": "^18.0.0 || ^19.0.0",