@ngroznykh/papirus 0.9.1 → 0.9.2

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":"ConnectionManager.d.ts","sourceRoot":"","sources":["../../src/core/ConnectionManager.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"ConnectionManager.d.ts","sourceRoot":"","sources":["../../src/core/ConnectionManager.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"EdgeEndpointUpdater.d.ts","sourceRoot":"","sources":["../../src/core/EdgeEndpointUpdater.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,iBAAiB,CAAC;AAC5C,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,iBAAiB,CAAC;AAC5C,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,kBAAkB,CAAC;AAOrD,MAAM,WAAW,uBAAuB;IACtC,QAAQ,IAAI,WAAW,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;IACtC,QAAQ,IAAI,WAAW,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;IACtC,gBAAgB,IAAI,YAAY,EAAE,CAAC;CACpC;AAOD,qBAAa,mBAAmB;IAClB,OAAO,CAAC,QAAQ,CAAC,IAAI;gBAAJ,IAAI,EAAE,uBAAuB;IAE1D,aAAa,IAAI,IAAI;IAMrB,SAAS,IAAI,IAAI;IAIjB,OAAO,CAAC,MAAM;IA+Bd,OAAO,CAAC,kBAAkB;IA2D1B;;OAEG;IACH,OAAO,CAAC,sBAAsB;IA8C9B,OAAO,CAAC,cAAc;IAWtB,OAAO,CAAC,mBAAmB;IAe3B,OAAO,CAAC,WAAW;IAqBnB;;;;;;;;;OASG;IACH,OAAO,CAAC,qBAAqB;IA2C7B,OAAO,CAAC,QAAQ;IAShB,OAAO,CAAC,YAAY;IAQpB,OAAO,CAAC,mBAAmB;IAmB3B,OAAO,CAAC,mBAAmB;IAqB3B;;;;;OAKG;IACH,OAAO,CAAC,mBAAmB;IA6B3B,OAAO,CAAC,uBAAuB;CAOhC"}
1
+ {"version":3,"file":"EdgeEndpointUpdater.d.ts","sourceRoot":"","sources":["../../src/core/EdgeEndpointUpdater.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,iBAAiB,CAAC;AAC5C,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,iBAAiB,CAAC;AAC5C,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,kBAAkB,CAAC;AAMrD,MAAM,WAAW,uBAAuB;IACtC,QAAQ,IAAI,WAAW,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;IACtC,QAAQ,IAAI,WAAW,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;IACtC,gBAAgB,IAAI,YAAY,EAAE,CAAC;CACpC;AAOD,qBAAa,mBAAmB;IAClB,OAAO,CAAC,QAAQ,CAAC,IAAI;gBAAJ,IAAI,EAAE,uBAAuB;IAE1D,aAAa,IAAI,IAAI;IAMrB,SAAS,IAAI,IAAI;IAIjB,OAAO,CAAC,MAAM;IA+Bd,OAAO,CAAC,kBAAkB;IA2D1B;;OAEG;IACH,OAAO,CAAC,sBAAsB;IA8C9B,OAAO,CAAC,cAAc;IAWtB,OAAO,CAAC,mBAAmB;IAe3B,OAAO,CAAC,WAAW;IAqBnB;;;;;;;;;OASG;IACH,OAAO,CAAC,qBAAqB;IA2C7B,OAAO,CAAC,QAAQ;IAShB,OAAO,CAAC,YAAY;IAQpB,OAAO,CAAC,mBAAmB;IAmB3B,OAAO,CAAC,mBAAmB;IAqB3B;;;;;OAKG;IACH,OAAO,CAAC,mBAAmB;IA4B3B,OAAO,CAAC,uBAAuB;CAOhC"}
@@ -4,6 +4,7 @@ import { TextLabel, TextLabelOptions } from './TextLabel';
4
4
  import { NodeImage, NodeImageOptions } from './NodeImage';
5
5
  import { StyleManager } from '../styles/StyleManager';
6
6
  import { Bounds, ContentInsetSides, NodeStyle, Point, Size } from '../types';
7
+ import { Direction } from '../utils/direction';
7
8
  import { ContentInsetScaleSides } from '../utils/resolveContentInset';
8
9
  /** Badge shown in top-left corner of node (e.g. interactive property indicator) */
9
10
  export interface NodeBadgeOption {
@@ -275,6 +276,15 @@ export declare abstract class Node extends Element {
275
276
  * Get point on outline at normalized param (0-1 along perimeter).
276
277
  * Base implementation uses rectangular outline. Override for non-rectangular shapes.
277
278
  */
279
+ /**
280
+ * Outward cardinal side at an outline param. Rectangles use AABB perimeter
281
+ * fractions; non-rectangular shapes override from the real outline point.
282
+ */
283
+ getOutlineDirection(param: number): Exclude<Direction, undefined>;
284
+ /**
285
+ * Outward side from node center toward a point on the outline.
286
+ */
287
+ protected outlineDirectionFromCenter(param: number): Exclude<Direction, undefined>;
278
288
  getConnectionPointAtOutlineParam(param: number): Point;
279
289
  /**
280
290
  * Get closest point on outline and its param (0-1).
@@ -1 +1 @@
1
- {"version":3,"file":"Node.d.ts","sourceRoot":"","sources":["../../src/elements/Node.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"Node.d.ts","sourceRoot":"","sources":["../../src/elements/Node.ts"],"names":[],"mappings":"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"}
@@ -15,6 +15,7 @@ export declare class CircleNode extends Node {
15
15
  */
16
16
  get radiusY(): number;
17
17
  hitTest(point: Point): boolean;
18
+ getOutlineDirection(param: number): 'top' | 'right' | 'bottom' | 'left';
18
19
  getConnectionPointAtOutlineParam(param: number): Point;
19
20
  getClosestPointOnOutline(target: Point): {
20
21
  point: Point;
@@ -1 +1 @@
1
- {"version":3,"file":"CircleNode.d.ts","sourceRoot":"","sources":["../../../src/elements/nodes/CircleNode.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,KAAK,WAAW,EAAE,MAAM,SAAS,CAAC;AAEjD,OAAO,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,SAAS,CAAC;AAE7C;;GAEG;AACH,qBAAa,UAAW,SAAQ,IAAI;gBACtB,OAAO,EAAE,WAAW;IAIhC,IAAI,QAAQ,IAAI,MAAM,CAErB;IAED;;OAEG;IACH,IAAI,OAAO,IAAI,MAAM,CAEpB;IAED;;OAEG;IACH,IAAI,OAAO,IAAI,MAAM,CAEpB;IAEQ,OAAO,CAAC,KAAK,EAAE,KAAK,GAAG,OAAO;IAY9B,gCAAgC,CAAC,KAAK,EAAE,MAAM,GAAG,KAAK;IAYtD,wBAAwB,CAAC,MAAM,EAAE,KAAK,GAAG;QAAE,KAAK,EAAE,KAAK,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAE;cAc9D,qBAAqB,CAAC,MAAM,EAAE,KAAK,GAAG,KAAK;cAkB3C,uBAAuB,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM;IAWlE,MAAM,CAAC,GAAG,EAAE,wBAAwB,GAAG,IAAI;CAuB5C"}
1
+ {"version":3,"file":"CircleNode.d.ts","sourceRoot":"","sources":["../../../src/elements/nodes/CircleNode.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,KAAK,WAAW,EAAE,MAAM,SAAS,CAAC;AAEjD,OAAO,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,SAAS,CAAC;AAE7C;;GAEG;AACH,qBAAa,UAAW,SAAQ,IAAI;gBACtB,OAAO,EAAE,WAAW;IAIhC,IAAI,QAAQ,IAAI,MAAM,CAErB;IAED;;OAEG;IACH,IAAI,OAAO,IAAI,MAAM,CAEpB;IAED;;OAEG;IACH,IAAI,OAAO,IAAI,MAAM,CAEpB;IAEQ,OAAO,CAAC,KAAK,EAAE,KAAK,GAAG,OAAO;IAY9B,mBAAmB,CAAC,KAAK,EAAE,MAAM,GAAG,KAAK,GAAG,OAAO,GAAG,QAAQ,GAAG,MAAM;IAIvE,gCAAgC,CAAC,KAAK,EAAE,MAAM,GAAG,KAAK;IAYtD,wBAAwB,CAAC,MAAM,EAAE,KAAK,GAAG;QAAE,KAAK,EAAE,KAAK,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAE;cAc9D,qBAAqB,CAAC,MAAM,EAAE,KAAK,GAAG,KAAK;cAkB3C,uBAAuB,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM;IAWlE,MAAM,CAAC,GAAG,EAAE,wBAAwB,GAAG,IAAI;CAuB5C"}
@@ -43,6 +43,7 @@ export declare class CustomShapeNode extends Node {
43
43
  setSvgPath(value: string | ((width: number, height: number) => string) | undefined): void;
44
44
  private getOutlineSample;
45
45
  private localToWorld;
46
+ getOutlineDirection(param: number): 'top' | 'right' | 'bottom' | 'left';
46
47
  getConnectionPointAtOutlineParam(param: number): Point;
47
48
  getClosestPointOnOutline(target: Point): {
48
49
  point: Point;
@@ -1 +1 @@
1
- {"version":3,"file":"CustomShapeNode.d.ts","sourceRoot":"","sources":["../../../src/elements/nodes/CustomShapeNode.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,KAAK,WAAW,EAAE,MAAM,SAAS,CAAC;AAEjD,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,SAAS,CAAC;AAIrC,MAAM,WAAW,sBAAuB,SAAQ,WAAW;IACzD,IAAI,EAAE,MAAM,GAAG,CAAC,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,KAAK,MAAM,CAAC,CAAC;IAC3D;;;;OAIG;IACH,OAAO,CAAC,EAAE,MAAM,GAAG,CAAC,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,KAAK,MAAM,CAAC,CAAC;IAC/D,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED;;GAEG;AACH,qBAAa,eAAgB,SAAQ,IAAI;IACvC,OAAO,CAAC,YAAY,CAA4C;IAChE,OAAO,CAAC,eAAe,CAA4D;IACnF,OAAO,CAAC,UAAU,CAAC,CAAS;IAC5B,OAAO,CAAC,WAAW,CAAuB;IAC1C,OAAO,CAAC,YAAY,CAAK;IACzB,OAAO,CAAC,aAAa,CAAK;IAC1B,OAAO,CAAC,cAAc,CAA4E;gBAEtF,OAAO,EAAE,sBAAsB;IAsB3C,IAAI,QAAQ,IAAI,MAAM,CAErB;IAED,IAAI,SAAS,IAAI,MAAM,GAAG,SAAS,CAElC;IAED,IAAI,SAAS,CAAC,KAAK,EAAE,MAAM,GAAG,SAAS,EAKtC;IAED;;OAEG;IACH,cAAc,CAAC,OAAO,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,KAAK,MAAM,GAAG,IAAI;IAOxE;;OAEG;IACH,OAAO,IAAI,MAAM;IAcjB;;OAEG;IACH,UAAU,IAAI,MAAM,GAAG,IAAI;IAO3B;;OAEG;IACH,UAAU,CAAC,KAAK,EAAE,MAAM,GAAG,CAAC,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,KAAK,MAAM,CAAC,GAAG,SAAS,GAAG,IAAI;IAWzF,OAAO,CAAC,gBAAgB;IAkExB,OAAO,CAAC,YAAY;IAIX,gCAAgC,CAAC,KAAK,EAAE,MAAM,GAAG,KAAK;IAuBtD,wBAAwB,CAAC,MAAM,EAAE,KAAK,GAAG;QAAE,KAAK,EAAE,KAAK,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAE;cAiD9D,qBAAqB,CAAC,MAAM,EAAE,KAAK,GAAG,KAAK;IAqB9D,OAAO,CAAC,qBAAqB;IA6BpB,OAAO,CAAC,KAAK,EAAE,KAAK,GAAG,OAAO;IAyBvC,MAAM,CAAC,GAAG,EAAE,wBAAwB,GAAG,IAAI;CAsB5C;AAED;;GAEG;AACH,eAAO,MAAM,cAAc;IACzB;;OAEG;qBACc,MAAM,UAAU,MAAM,KAAG,MAAM;IAehD;;OAEG;2BACoB,MAAM,UAAU,MAAM,KAAG,MAAM;IAatD;;OAEG;sBACe,MAAM,UAAU,MAAM,KAAG,MAAM;IAgBjD;;OAEG;sBACe,MAAM,UAAU,MAAM,KAAG,MAAM;IAcjD;;OAEG;;qBAEY,MAAM,KAAK,MAAM,KAAG,MAAM;2BAEpB,MAAM,KAAK,MAAM,KAAG,MAAM;sBAI/B,MAAM,KAAK,MAAM,KAAG,MAAM;sBAK1B,MAAM,KAAK,MAAM,KAAG,MAAM;QAIxC,wCAAwC;uBACzB,MAAM,KAAK,MAAM,KAAG,MAAM;;CAK5C,CAAC"}
1
+ {"version":3,"file":"CustomShapeNode.d.ts","sourceRoot":"","sources":["../../../src/elements/nodes/CustomShapeNode.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,KAAK,WAAW,EAAE,MAAM,SAAS,CAAC;AAEjD,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,SAAS,CAAC;AAIrC,MAAM,WAAW,sBAAuB,SAAQ,WAAW;IACzD,IAAI,EAAE,MAAM,GAAG,CAAC,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,KAAK,MAAM,CAAC,CAAC;IAC3D;;;;OAIG;IACH,OAAO,CAAC,EAAE,MAAM,GAAG,CAAC,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,KAAK,MAAM,CAAC,CAAC;IAC/D,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED;;GAEG;AACH,qBAAa,eAAgB,SAAQ,IAAI;IACvC,OAAO,CAAC,YAAY,CAA4C;IAChE,OAAO,CAAC,eAAe,CAA4D;IACnF,OAAO,CAAC,UAAU,CAAC,CAAS;IAC5B,OAAO,CAAC,WAAW,CAAuB;IAC1C,OAAO,CAAC,YAAY,CAAK;IACzB,OAAO,CAAC,aAAa,CAAK;IAC1B,OAAO,CAAC,cAAc,CAA4E;gBAEtF,OAAO,EAAE,sBAAsB;IAsB3C,IAAI,QAAQ,IAAI,MAAM,CAErB;IAED,IAAI,SAAS,IAAI,MAAM,GAAG,SAAS,CAElC;IAED,IAAI,SAAS,CAAC,KAAK,EAAE,MAAM,GAAG,SAAS,EAKtC;IAED;;OAEG;IACH,cAAc,CAAC,OAAO,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,KAAK,MAAM,GAAG,IAAI;IAOxE;;OAEG;IACH,OAAO,IAAI,MAAM;IAcjB;;OAEG;IACH,UAAU,IAAI,MAAM,GAAG,IAAI;IAO3B;;OAEG;IACH,UAAU,CAAC,KAAK,EAAE,MAAM,GAAG,CAAC,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,KAAK,MAAM,CAAC,GAAG,SAAS,GAAG,IAAI;IAWzF,OAAO,CAAC,gBAAgB;IAkExB,OAAO,CAAC,YAAY;IAIX,mBAAmB,CAAC,KAAK,EAAE,MAAM,GAAG,KAAK,GAAG,OAAO,GAAG,QAAQ,GAAG,MAAM;IAOvE,gCAAgC,CAAC,KAAK,EAAE,MAAM,GAAG,KAAK;IAuBtD,wBAAwB,CAAC,MAAM,EAAE,KAAK,GAAG;QAAE,KAAK,EAAE,KAAK,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAE;cAiD9D,qBAAqB,CAAC,MAAM,EAAE,KAAK,GAAG,KAAK;IAqB9D,OAAO,CAAC,qBAAqB;IA6BpB,OAAO,CAAC,KAAK,EAAE,KAAK,GAAG,OAAO;IAyBvC,MAAM,CAAC,GAAG,EAAE,wBAAwB,GAAG,IAAI;CAsB5C;AAED;;GAEG;AACH,eAAO,MAAM,cAAc;IACzB;;OAEG;qBACc,MAAM,UAAU,MAAM,KAAG,MAAM;IAehD;;OAEG;2BACoB,MAAM,UAAU,MAAM,KAAG,MAAM;IAatD;;OAEG;sBACe,MAAM,UAAU,MAAM,KAAG,MAAM;IAgBjD;;OAEG;sBACe,MAAM,UAAU,MAAM,KAAG,MAAM;IAcjD;;OAEG;;qBAEY,MAAM,KAAK,MAAM,KAAG,MAAM;2BAEpB,MAAM,KAAK,MAAM,KAAG,MAAM;sBAI/B,MAAM,KAAK,MAAM,KAAG,MAAM;sBAK1B,MAAM,KAAK,MAAM,KAAG,MAAM;QAIxC,wCAAwC;uBACzB,MAAM,KAAK,MAAM,KAAG,MAAM;;CAK5C,CAAC"}
@@ -7,6 +7,7 @@ export declare class DiamondNode extends Node {
7
7
  constructor(options: NodeOptions);
8
8
  get typeName(): string;
9
9
  hitTest(point: Point): boolean;
10
+ getOutlineDirection(param: number): 'top' | 'right' | 'bottom' | 'left';
10
11
  getConnectionPointAtOutlineParam(param: number): Point;
11
12
  getClosestPointOnOutline(target: Point): {
12
13
  point: Point;
@@ -1 +1 @@
1
- {"version":3,"file":"DiamondNode.d.ts","sourceRoot":"","sources":["../../../src/elements/nodes/DiamondNode.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,KAAK,WAAW,EAAE,MAAM,SAAS,CAAC;AAEjD,OAAO,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,SAAS,CAAC;AAE7C;;GAEG;AACH,qBAAa,WAAY,SAAQ,IAAI;gBACvB,OAAO,EAAE,WAAW;IAIhC,IAAI,QAAQ,IAAI,MAAM,CAErB;IAEQ,OAAO,CAAC,KAAK,EAAE,KAAK,GAAG,OAAO;IAe9B,gCAAgC,CAAC,KAAK,EAAE,MAAM,GAAG,KAAK;IA6BtD,wBAAwB,CAAC,MAAM,EAAE,KAAK,GAAG;QAAE,KAAK,EAAE,KAAK,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAE;cAuC9D,qBAAqB,CAAC,MAAM,EAAE,KAAK,GAAG,KAAK;cAkB3C,uBAAuB,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM;IAWlE,MAAM,CAAC,GAAG,EAAE,wBAAwB,GAAG,IAAI;CA0B5C"}
1
+ {"version":3,"file":"DiamondNode.d.ts","sourceRoot":"","sources":["../../../src/elements/nodes/DiamondNode.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,KAAK,WAAW,EAAE,MAAM,SAAS,CAAC;AAEjD,OAAO,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,SAAS,CAAC;AAE7C;;GAEG;AACH,qBAAa,WAAY,SAAQ,IAAI;gBACvB,OAAO,EAAE,WAAW;IAIhC,IAAI,QAAQ,IAAI,MAAM,CAErB;IAEQ,OAAO,CAAC,KAAK,EAAE,KAAK,GAAG,OAAO;IAe9B,mBAAmB,CAAC,KAAK,EAAE,MAAM,GAAG,KAAK,GAAG,OAAO,GAAG,QAAQ,GAAG,MAAM;IAIvE,gCAAgC,CAAC,KAAK,EAAE,MAAM,GAAG,KAAK;IA6BtD,wBAAwB,CAAC,MAAM,EAAE,KAAK,GAAG;QAAE,KAAK,EAAE,KAAK,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAE;cAuC9D,qBAAqB,CAAC,MAAM,EAAE,KAAK,GAAG,KAAK;cAkB3C,uBAAuB,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM;IAWlE,MAAM,CAAC,GAAG,EAAE,wBAAwB,GAAG,IAAI;CA0B5C"}
package/dist/papirus.js CHANGED
@@ -1698,6 +1698,11 @@ function getDirectionFromOutlineParam(param, bounds) {
1698
1698
  if (p < .75) return "bottom";
1699
1699
  return "left";
1700
1700
  }
1701
+ /** Snap a vector to a cardinal side (Y-down canvas). */
1702
+ function directionFromDelta(dx, dy) {
1703
+ if (Math.abs(dx) > Math.abs(dy)) return dx >= 0 ? "right" : "left";
1704
+ return dy >= 0 ? "bottom" : "top";
1705
+ }
1701
1706
  function isHorizontal(dir) {
1702
1707
  return dir === "left" || dir === "right";
1703
1708
  }
@@ -2067,14 +2072,14 @@ var ConnectionManager = class extends EventEmitter {
2067
2072
  snappedPoint = bestResult.point;
2068
2073
  this.reconnectingOutlineParam = bestResult.param;
2069
2074
  this.reconnectingTargetNodeId = bestResult.node.id;
2070
- snappedDir = getDirectionFromOutlineParam(bestResult.param, bestResult.node.getBounds());
2075
+ snappedDir = bestResult.node.getOutlineDirection(bestResult.param);
2071
2076
  if (this.reconnectingEndpoint === "start" ? toNode : fromNode) {
2072
2077
  const alignRef = edge.isEditablePolyline() ? this.getNearestBendPointForAxisAlignment(edge, this.reconnectingEndpoint) : this.reconnectingEndpoint === "start" ? this.getTargetPointForReconnect(edge, toNode, "to", snappedPoint) : this.getTargetPointForReconnect(edge, fromNode, "from", snappedPoint);
2073
2078
  snappedPoint = this.applyAxisAlignmentToPoint(snappedPoint, alignRef);
2074
2079
  const reprojected = targetNode.getClosestPointOnOutline(snappedPoint);
2075
2080
  snappedPoint = reprojected.point;
2076
2081
  this.reconnectingOutlineParam = reprojected.param;
2077
- snappedDir = getDirectionFromOutlineParam(reprojected.param, targetNode.getBounds());
2082
+ snappedDir = targetNode.getOutlineDirection(reprojected.param);
2078
2083
  }
2079
2084
  } else {
2080
2085
  this.reconnectingOutlineParam = null;
@@ -2140,7 +2145,7 @@ var ConnectionManager = class extends EventEmitter {
2140
2145
  const ep = endpoint === "from" ? edge.from : edge.to;
2141
2146
  if (this.attachToOutline && ep.outlineParam !== void 0) {
2142
2147
  const node = ep.nodeId ? this.renderer.getNode(ep.nodeId) : void 0;
2143
- return getDirectionFromOutlineParam(ep.outlineParam, node?.getBounds());
2148
+ return node ? node.getOutlineDirection(ep.outlineParam) : getDirectionFromOutlineParam(ep.outlineParam);
2144
2149
  }
2145
2150
  return (ep.portId?.replace(ANCHOR_PORT_PREFIX, ""))?.split(":")[0];
2146
2151
  }
@@ -2457,8 +2462,8 @@ var ConnectionManager = class extends EventEmitter {
2457
2462
  ctx.stroke();
2458
2463
  } else {
2459
2464
  const previewTarget = this.previewTargetNodeId != null ? this.renderer.getNode(this.previewTargetNodeId) : void 0;
2460
- const fromDir = this.sourceOutlineParam !== null ? getDirectionFromOutlineParam(this.sourceOutlineParam, this.sourceNode?.getBounds()) : this.sourceAnchorId?.split(":")[0];
2461
- const toDir = this.previewTargetOutlineParam !== null ? getDirectionFromOutlineParam(this.previewTargetOutlineParam, previewTarget?.getBounds()) : this.previewTargetAnchorId?.split(":")[0];
2465
+ const fromDir = this.sourceOutlineParam !== null ? this.sourceNode ? this.sourceNode.getOutlineDirection(this.sourceOutlineParam) : getDirectionFromOutlineParam(this.sourceOutlineParam) : this.sourceAnchorId?.split(":")[0];
2466
+ const toDir = this.previewTargetOutlineParam !== null ? previewTarget ? previewTarget.getOutlineDirection(this.previewTargetOutlineParam) : getDirectionFromOutlineParam(this.previewTargetOutlineParam) : this.previewTargetAnchorId?.split(":")[0];
2462
2467
  this.drawBezierPreview(ctx, start, end, fromDir, toDir);
2463
2468
  }
2464
2469
  ctx.setLineDash([]);
@@ -8740,7 +8745,7 @@ var EdgeEndpointUpdater = class {
8740
8745
  const fromPort = this.portSide(endpoint.portId);
8741
8746
  if (fromPort) return fromPort;
8742
8747
  if (endpoint.outlineParam === void 0) return void 0;
8743
- return getDirectionFromOutlineParam(endpoint.outlineParam, node.getBounds());
8748
+ return node.getOutlineDirection(endpoint.outlineParam);
8744
8749
  }
8745
8750
  nearestAnchorOnSide(node, side, toward) {
8746
8751
  const anchors = node.getAnchors().filter((a) => a.id.startsWith(`${side}:`));
@@ -8782,13 +8787,10 @@ var EdgeEndpointUpdater = class {
8782
8787
  direction: anchorId.split(":")[0]
8783
8788
  };
8784
8789
  }
8785
- if (isNodeEdgeEndpoint(endpoint) && endpoint.outlineParam !== void 0) {
8786
- const bounds = node.getBounds();
8787
- return {
8788
- point: node.getConnectionPointAtOutlineParam(endpoint.outlineParam),
8789
- direction: getDirectionFromOutlineParam(endpoint.outlineParam, bounds)
8790
- };
8791
- }
8790
+ if (isNodeEdgeEndpoint(endpoint) && endpoint.outlineParam !== void 0) return {
8791
+ point: node.getConnectionPointAtOutlineParam(endpoint.outlineParam),
8792
+ direction: node.getOutlineDirection(endpoint.outlineParam)
8793
+ };
8792
8794
  if (toward) return this.resolveFloatingEndpoint(node, toward);
8793
8795
  return { point: node.getCenter() };
8794
8796
  }
@@ -11258,6 +11260,21 @@ var Node = class extends Element {
11258
11260
  * Get point on outline at normalized param (0-1 along perimeter).
11259
11261
  * Base implementation uses rectangular outline. Override for non-rectangular shapes.
11260
11262
  */
11263
+ /**
11264
+ * Outward cardinal side at an outline param. Rectangles use AABB perimeter
11265
+ * fractions; non-rectangular shapes override from the real outline point.
11266
+ */
11267
+ getOutlineDirection(param) {
11268
+ return getDirectionFromOutlineParam(param, this.getBounds());
11269
+ }
11270
+ /**
11271
+ * Outward side from node center toward a point on the outline.
11272
+ */
11273
+ outlineDirectionFromCenter(param) {
11274
+ const point = this.getConnectionPointAtOutlineParam(param);
11275
+ const center = this.getCenter();
11276
+ return directionFromDelta(point.x - center.x, point.y - center.y);
11277
+ }
11261
11278
  getConnectionPointAtOutlineParam(param) {
11262
11279
  const { x, y, width: w, height: h } = this.getBounds();
11263
11280
  const perimeter = 2 * (w + h);
@@ -11781,6 +11798,9 @@ var CircleNode = class extends Node {
11781
11798
  const dy = point.y - center.y;
11782
11799
  return dx * dx / (rx * rx) + dy * dy / (ry * ry) <= 1;
11783
11800
  }
11801
+ getOutlineDirection(param) {
11802
+ return this.outlineDirectionFromCenter(param);
11803
+ }
11784
11804
  getConnectionPointAtOutlineParam(param) {
11785
11805
  const center = this.getCenter();
11786
11806
  const rx = this._width / 2;
@@ -11867,6 +11887,9 @@ var DiamondNode = class extends Node {
11867
11887
  const dy = Math.abs(point.y - center.y);
11868
11888
  return dx / hw + dy / hh <= 1;
11869
11889
  }
11890
+ getOutlineDirection(param) {
11891
+ return this.outlineDirectionFromCenter(param);
11892
+ }
11870
11893
  getConnectionPointAtOutlineParam(param) {
11871
11894
  const center = this.getCenter();
11872
11895
  const hw = this._width / 2;
@@ -12140,6 +12163,10 @@ var CustomShapeNode = class extends Node {
12140
12163
  y: p.y + this._y
12141
12164
  };
12142
12165
  }
12166
+ getOutlineDirection(param) {
12167
+ if (!this.getOutlineSample()) return super.getOutlineDirection(param);
12168
+ return this.outlineDirectionFromCenter(param);
12169
+ }
12143
12170
  getConnectionPointAtOutlineParam(param) {
12144
12171
  const sample = this.getOutlineSample();
12145
12172
  if (!sample) return super.getConnectionPointAtOutlineParam(param);