@statelyai/layout 0.4.2 → 0.5.0

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.
Files changed (56) hide show
  1. package/README.md +40 -3
  2. package/dist/elkjs/index.cjs +2 -2
  3. package/dist/elkjs/index.d.cts +1 -1
  4. package/dist/elkjs/index.d.mts +1 -1
  5. package/dist/elkjs/index.mjs +2 -2
  6. package/dist/elkjs/main.cjs +1 -1
  7. package/dist/elkjs/main.mjs +1 -1
  8. package/dist/elkjs/worker.cjs +2 -2
  9. package/dist/elkjs/worker.mjs +2 -2
  10. package/dist/{elkjs-CSi7oB5J.mjs → elkjs-DBkalvt1.mjs} +25 -3
  11. package/dist/{elkjs-CnBvdyBu.cjs → elkjs-DonMqGjf.cjs} +25 -3
  12. package/dist/{index-B6cWNrMw.d.cts → index-0YVSvMvA.d.mts} +13 -3
  13. package/dist/{index-CJQLUKD9.d.mts → index-C0J4ttZe.d.cts} +13 -3
  14. package/dist/{index-DT6lPMfS.d.cts → index-Xc4R6y3z.d.cts} +9 -2
  15. package/dist/{index-F1U-fCTu.d.mts → index-lSp0oCJC.d.mts} +9 -2
  16. package/dist/index.cjs +7 -4
  17. package/dist/index.d.cts +4 -4
  18. package/dist/index.d.mts +4 -4
  19. package/dist/index.mjs +4 -4
  20. package/dist/layered/index.cjs +1 -1
  21. package/dist/layered/index.d.cts +2 -2
  22. package/dist/layered/index.d.mts +2 -2
  23. package/dist/layered/index.mjs +1 -1
  24. package/dist/{layered-BsAdm_u8.mjs → layered-CmL7oynw.mjs} +245 -69
  25. package/dist/{layered-BJu8A21s.cjs → layered-SB2mlAqt.cjs} +245 -69
  26. package/dist/{layout-engine-DnlmGxHL.mjs → layout-engine-BXoIpYL4.mjs} +1 -1
  27. package/dist/{layout-engine-BFP1TZbF.cjs → layout-engine-CAyJ-I-u.cjs} +1 -1
  28. package/dist/routing/index.cjs +5 -2
  29. package/dist/routing/index.d.cts +3 -3
  30. package/dist/routing/index.d.mts +3 -3
  31. package/dist/routing/index.mjs +2 -2
  32. package/dist/routing-D-LfMXOF.mjs +5189 -0
  33. package/dist/routing-Phxu1R0x.cjs +5423 -0
  34. package/dist/{types-CT2akdK0.d.mts → types-D8pYSn8I.d.cts} +112 -2
  35. package/dist/{types-uxPlGRof.d.cts → types-MAUtJfKQ.d.mts} +112 -2
  36. package/package.json +4 -1
  37. package/src/authoring/partial.ts +1 -7
  38. package/src/authoring/routing.ts +64 -19
  39. package/src/elkjs/index.ts +26 -0
  40. package/src/layered/feedback-chains.ts +22 -4
  41. package/src/layered/index.ts +173 -41
  42. package/src/layered/north-south-ports.ts +17 -4
  43. package/src/layered/strategies.ts +143 -15
  44. package/src/routing/algorithms.ts +1436 -148
  45. package/src/routing/bezier-fit.ts +605 -0
  46. package/src/routing/bezier-visibility.ts +107 -0
  47. package/src/routing/bezier.ts +596 -0
  48. package/src/routing/engine.ts +65 -13
  49. package/src/routing/index.ts +14 -0
  50. package/src/routing/model.ts +185 -1
  51. package/src/routing/path.ts +1 -1
  52. package/src/routing/policy-geometry.ts +536 -0
  53. package/src/routing/search.ts +10 -2
  54. package/src/routing/types.ts +77 -1
  55. package/dist/routing-CR8flv8b.mjs +0 -2780
  56. package/dist/routing-QIdGGFBe.cjs +0 -2996
package/README.md CHANGED
@@ -151,11 +151,25 @@ const route = snapshot.routes.get("ab");
151
151
  const paths = route?.sections.map((section) => toSvgPath(section.path));
152
152
  ```
153
153
 
154
- Incremental results match fresh routing for the same graph and settings. Previous
155
- paths are cached outputs, never constraints on new routes.
154
+ `bezierRouting` also accepts center-tangent fitting, floating or orthogonal
155
+ attachments, fixed ports, and explicit label-source chains through
156
+ `settings.bezier` and `settings.edges`. It routes each chain together and
157
+ updates child attachments when parent labels move. See the
158
+ [Bézier options and label-chain example](docs/routing.md#center-tangent-bézier-routing-and-label-chains).
159
+
160
+ `settings.policy` independently controls curve families, endpoint and label
161
+ tangents, passive or fixed labels, collisions, monotonicity, and route stability.
162
+ `routingPolicies.smooth`, `.diagram`, and `.authored` provide Bézier, rounded
163
+ orthogonal, and centripetal Catmull–Rom presets. Following labels use half the
164
+ final path length and return their placement in `Route.label`. See the
165
+ [routing policy reference](docs/routing-policies.md).
166
+
167
+ Canonical incremental results match fresh routing for the same graph and
168
+ settings. Opt-in `stability: { kind: "preserve-valid" }` keeps valid prior paths
169
+ to reduce changes during editing and deliberately depends on edit history.
156
170
 
157
171
  Every strategy supports incremental updates with immutable snapshots and shared
158
- indexes. Nodes, ports, and labels stay fixed. Every edge receives a route;
172
+ indexes. Input nodes, ports, and labels remain unchanged. Every edge receives a route;
159
173
  fallbacks expose status and diagnostics. Deterministic soft crossing/overlap costs
160
174
  coordinate unrelated groups; residual conflicts stay visible and reported. Native TypeScript strategies cover
161
175
  straight, Bézier, orthogonal, polyline, octilinear, curved, organic, parallel,
@@ -276,6 +290,14 @@ and Box SIMPLE geometry, including provider bounds and whether edge sections
276
290
  are routed or left authored. Rectangle Packing has an exact default baseline;
277
291
  its full Java packing strategy remains in progress.
278
292
 
293
+ <!-- size snapping from src/elkjs/index.ts snapSizes -->
294
+
295
+ Node, port and label sizes are snapped to the browser's 1/64px layout unit
296
+ before layout, and the result reports the snapped sizes. Measured sizes carry
297
+ float noise, such as a rect divided by a zoom factor, and exact ties in layered
298
+ layout would otherwise let that noise move nodes. Sizes already on that grid,
299
+ including all integer sizes, are unchanged.
300
+
279
301
  The compatibility entry's named graph, edge, option, and result types are
280
302
  mutually assignable with the declarations shipped by `elkjs@0.11.1`. Its
281
303
  default class also accepts the library's broader internal graph inputs.
@@ -368,6 +390,9 @@ pnpm verify
368
390
  pnpm bench
369
391
  pnpm demo
370
392
  pnpm storybook
393
+ pnpm verify:routing-policies
394
+ pnpm routing:gallery .scratch/routing-policies/after --after
395
+ pnpm routing:quality .scratch/routing-quality-pass/after
371
396
  pnpm changeset
372
397
  pnpm release
373
398
  ```
@@ -390,6 +415,18 @@ diagnostics, nested coordinates, and unsupported incremental layout. Controls
390
415
  rerun the real API; each story shows matched before/after geometry, patches, and
391
416
  current limitations. `pnpm storybook:build` writes a static build to `dist-storybook`.
392
417
 
418
+ The **Routing / Policies / Playground** story covers midpoint labels, endpoint
419
+ and label tangents, obstacle avoidance, Catmull–Rom, rounded routes, crossing
420
+ preferences, monotonicity, and shared trunks. Select an example, compare its
421
+ original settings, and drag nodes to exercise incremental updates.
422
+
423
+ The **Routing / Quality** stories include direct examples for all twelve
424
+ strategies, four curve families, label modes, fixed and automatic attachments,
425
+ shared branches, self loops, and constrained corridors. Comparisons use a common
426
+ view box so detours remain visible. Individual stories support dragging, reset,
427
+ obstacle moves, and policy controls. The [visual quality review](docs/routing/quality/README.md)
428
+ retains matching before and after examples.
429
+
393
430
  <!-- exported source compatibility derived from tsconfig.json -->
394
431
 
395
432
  The source project checks indexed reads with `noUncheckedIndexedAccess` so
@@ -1,6 +1,6 @@
1
1
  Object.defineProperty(exports, '__esModule', { value: true });
2
- require('../layered-BJu8A21s.cjs');
3
- const require_elkjs = require('../elkjs-CnBvdyBu.cjs');
2
+ require('../layered-SB2mlAqt.cjs');
3
+ const require_elkjs = require('../elkjs-DonMqGjf.cjs');
4
4
 
5
5
  exports.compileStatechartLayout = require_elkjs.compileStatechartLayout;
6
6
  exports.default = require_elkjs.ELK;
@@ -1,5 +1,5 @@
1
1
  import { _ as ElkShape, a as ElkEdgeSection, c as ElkLabel, d as ElkLayoutCategoryDescription, f as ElkLayoutOptionDescription, g as ElkPrimitiveEdge, h as ElkPort, i as ElkEdge, l as ElkLayoutAlgorithmDescription, m as ElkPoint, n as ELKConstructorArguments, o as ElkExtendedEdge, p as ElkNode, r as ElkCommonDescription, s as ElkGraphElement, t as ELK, u as ElkLayoutArguments, v as LaidOutElkNode, y as LayoutOptions } from "../public-types-BcRZoJE3.cjs";
2
- import { r as Route } from "../types-uxPlGRof.cjs";
2
+ import { a as Route } from "../types-D8pYSn8I.cjs";
3
3
 
4
4
  //#region src/elkjs/types.d.ts
5
5
  type ElkId = string | number;
@@ -1,5 +1,5 @@
1
1
  import { _ as ElkShape, a as ElkEdgeSection, c as ElkLabel, d as ElkLayoutCategoryDescription, f as ElkLayoutOptionDescription, g as ElkPrimitiveEdge, h as ElkPort, i as ElkEdge, l as ElkLayoutAlgorithmDescription, m as ElkPoint, n as ELKConstructorArguments, o as ElkExtendedEdge, p as ElkNode, r as ElkCommonDescription, s as ElkGraphElement, t as ELK, u as ElkLayoutArguments, v as LaidOutElkNode, y as LayoutOptions } from "../public-types-9NCPoqbp.mjs";
2
- import { r as Route } from "../types-CT2akdK0.mjs";
2
+ import { a as Route } from "../types-MAUtJfKQ.mjs";
3
3
 
4
4
  //#region src/elkjs/types.d.ts
5
5
  type ElkId = string | number;
@@ -1,4 +1,4 @@
1
- import "../layered-BsAdm_u8.mjs";
2
- import { a as scoreStatechartLayout, i as layoutStatechart, n as getElkRoutes, r as compileStatechartLayout, t as ELK } from "../elkjs-CSi7oB5J.mjs";
1
+ import "../layered-CmL7oynw.mjs";
2
+ import { a as scoreStatechartLayout, i as layoutStatechart, n as getElkRoutes, r as compileStatechartLayout, t as ELK } from "../elkjs-DBkalvt1.mjs";
3
3
 
4
4
  export { compileStatechartLayout, ELK as default, getElkRoutes, layoutStatechart, scoreStatechartLayout };
@@ -1,4 +1,4 @@
1
- require('../layered-BJu8A21s.cjs');
1
+ require('../layered-SB2mlAqt.cjs');
2
2
  const require_elkjs_worker = require('./worker.cjs');
3
3
  const require_worker_client = require('../worker-client-D4oEvhAl.cjs');
4
4
 
@@ -1,4 +1,4 @@
1
- import "../layered-BsAdm_u8.mjs";
1
+ import "../layered-CmL7oynw.mjs";
2
2
  import { Worker } from "./worker.mjs";
3
3
  import { t as WorkerELK } from "../worker-client-BNjwT1AJ.mjs";
4
4
 
@@ -1,5 +1,5 @@
1
- require('../layered-BJu8A21s.cjs');
2
- const require_elkjs = require('../elkjs-CnBvdyBu.cjs');
1
+ require('../layered-SB2mlAqt.cjs');
2
+ const require_elkjs = require('../elkjs-DonMqGjf.cjs');
3
3
 
4
4
  //#region src/elkjs/worker.ts
5
5
  /*******************************************************************************
@@ -1,5 +1,5 @@
1
- import "../layered-BsAdm_u8.mjs";
2
- import { t as ELK } from "../elkjs-CSi7oB5J.mjs";
1
+ import "../layered-CmL7oynw.mjs";
2
+ import { t as ELK } from "../elkjs-DBkalvt1.mjs";
3
3
 
4
4
  //#region src/elkjs/worker.ts
5
5
  /*******************************************************************************
@@ -1,6 +1,6 @@
1
- import { T as pathFromPoints, g as pathFromSplinePoints, j as freeze } from "./routing-CR8flv8b.mjs";
2
- import { $ as attachExternalPortDummy, R as createLayerSweepSession, S as CROSSING_MODEL, Z as minimizeHierarchyCrossings, b as elkjs0111ResultPolicy, c as elkLayeredOptionDefinitions, et as createExternalPortDummy, h as separateOpposingTracks, nt as createOrthogonalHypersegments, t as createLayeredScopePipeline, tt as externalPortDummyOf, v as isPerpendicularPortRestored, y as hierarchicalPortSides } from "./layered-BsAdm_u8.mjs";
3
- import { n as executeElkjs0111Layout } from "./layout-engine-DnlmGxHL.mjs";
1
+ import { E as pathFromPoints, N as freeze, _ as pathFromSplinePoints } from "./routing-D-LfMXOF.mjs";
2
+ import { $ as attachExternalPortDummy, R as createLayerSweepSession, S as CROSSING_MODEL, Z as minimizeHierarchyCrossings, b as elkjs0111ResultPolicy, c as elkLayeredOptionDefinitions, et as createExternalPortDummy, h as separateOpposingTracks, nt as createOrthogonalHypersegments, t as createLayeredScopePipeline, tt as externalPortDummyOf, v as isPerpendicularPortRestored, y as hierarchicalPortSides } from "./layered-CmL7oynw.mjs";
3
+ import { n as executeElkjs0111Layout } from "./layout-engine-BXoIpYL4.mjs";
4
4
  import { createGraph } from "@statelyai/graph";
5
5
 
6
6
  //#region src/layered/hierarchy-sweepiness.ts
@@ -1049,6 +1049,27 @@ function isLayoutEdgeLabel(label) {
1049
1049
  }
1050
1050
  /** The crossing-model setting a layout passes to crossing minimization. */
1051
1051
  const crossingModel = Symbol("crossingModel");
1052
+ const LAYOUT_UNITS_PER_PX = 64;
1053
+ /**
1054
+ * Measured sizes carry float noise (a browser rect divided by zoom), and a
1055
+ * layered layout is full of exact ties that noise decides. Snap sizes to the
1056
+ * browser's 1/64px layout unit so the same graph always lays out the same way;
1057
+ * sizes already on that grid are unchanged.
1058
+ */
1059
+ function snapSizes(node) {
1060
+ const snap = (shape) => {
1061
+ if (typeof shape.width === "number") shape.width = Math.round(shape.width * LAYOUT_UNITS_PER_PX) / LAYOUT_UNITS_PER_PX;
1062
+ if (typeof shape.height === "number") shape.height = Math.round(shape.height * LAYOUT_UNITS_PER_PX) / LAYOUT_UNITS_PER_PX;
1063
+ };
1064
+ snap(node);
1065
+ for (const label of node.labels ?? []) snap(label);
1066
+ for (const port of node.ports ?? []) {
1067
+ snap(port);
1068
+ for (const label of port.labels ?? []) snap(label);
1069
+ }
1070
+ for (const edge of node.edges ?? []) for (const label of edge.labels ?? []) snap(label);
1071
+ for (const child of node.children ?? []) snapSizes(child);
1072
+ }
1052
1073
  var ELK = class {
1053
1074
  #options;
1054
1075
  #algorithmIds;
@@ -1119,6 +1140,7 @@ var ELK = class {
1119
1140
  }
1120
1141
  terminateWorker() {}
1121
1142
  async layout(graph, arguments_ = {}) {
1143
+ snapSizes(graph);
1122
1144
  const options = {
1123
1145
  ...this.#options.defaultLayoutOptions,
1124
1146
  ...arguments_.layoutOptions
@@ -1,6 +1,6 @@
1
- const require_routing = require('./routing-QIdGGFBe.cjs');
2
- const require_layered = require('./layered-BJu8A21s.cjs');
3
- const require_layout_engine = require('./layout-engine-BFP1TZbF.cjs');
1
+ const require_routing = require('./routing-Phxu1R0x.cjs');
2
+ const require_layered = require('./layered-SB2mlAqt.cjs');
3
+ const require_layout_engine = require('./layout-engine-CAyJ-I-u.cjs');
4
4
  let _statelyai_graph = require("@statelyai/graph");
5
5
 
6
6
  //#region src/layered/hierarchy-sweepiness.ts
@@ -1049,6 +1049,27 @@ function isLayoutEdgeLabel(label) {
1049
1049
  }
1050
1050
  /** The crossing-model setting a layout passes to crossing minimization. */
1051
1051
  const crossingModel = Symbol("crossingModel");
1052
+ const LAYOUT_UNITS_PER_PX = 64;
1053
+ /**
1054
+ * Measured sizes carry float noise (a browser rect divided by zoom), and a
1055
+ * layered layout is full of exact ties that noise decides. Snap sizes to the
1056
+ * browser's 1/64px layout unit so the same graph always lays out the same way;
1057
+ * sizes already on that grid are unchanged.
1058
+ */
1059
+ function snapSizes(node) {
1060
+ const snap = (shape) => {
1061
+ if (typeof shape.width === "number") shape.width = Math.round(shape.width * LAYOUT_UNITS_PER_PX) / LAYOUT_UNITS_PER_PX;
1062
+ if (typeof shape.height === "number") shape.height = Math.round(shape.height * LAYOUT_UNITS_PER_PX) / LAYOUT_UNITS_PER_PX;
1063
+ };
1064
+ snap(node);
1065
+ for (const label of node.labels ?? []) snap(label);
1066
+ for (const port of node.ports ?? []) {
1067
+ snap(port);
1068
+ for (const label of port.labels ?? []) snap(label);
1069
+ }
1070
+ for (const edge of node.edges ?? []) for (const label of edge.labels ?? []) snap(label);
1071
+ for (const child of node.children ?? []) snapSizes(child);
1072
+ }
1052
1073
  var ELK = class {
1053
1074
  #options;
1054
1075
  #algorithmIds;
@@ -1119,6 +1140,7 @@ var ELK = class {
1119
1140
  }
1120
1141
  terminateWorker() {}
1121
1142
  async layout(graph, arguments_ = {}) {
1143
+ snapSizes(graph);
1122
1144
  const options = {
1123
1145
  ...this.#options.defaultLayoutOptions,
1124
1146
  ...arguments_.layoutOptions
@@ -1,5 +1,5 @@
1
- import { a as RouteBounds, c as RoutePath, l as RoutePoint, n as NativeRoutingStrategy, r as Route, s as RoutePatch } from "./types-uxPlGRof.cjs";
2
- import { GraphPatch, VisualGraph } from "@statelyai/graph";
1
+ import { C as RoutingPolicy, a as Route, d as RoutePath, f as RoutePoint, i as NativeRoutingStrategy, m as RouteSegment, s as RouteBounds, u as RoutePatch } from "./types-MAUtJfKQ.mjs";
2
+ import { GraphEdge, GraphPatch, VisualGraph } from "@statelyai/graph";
3
3
 
4
4
  //#region src/routing/engine.d.ts
5
5
  declare function applyRoutePatches(routes: ReadonlyMap<string, Route>, patches: readonly RoutePatch[]): ReadonlyMap<string, Route>;
@@ -25,6 +25,8 @@ declare function toSvgPath(path: RoutePath, options?: {
25
25
  readonly radius?: number;
26
26
  readonly precision?: number;
27
27
  }): string;
28
+ /** Test curve geometry, subdividing conservative bounds only where they overlap. */
29
+ declare function segmentCrossesRect(start: RoutePoint, segment: RouteSegment, rect: RouteBounds): boolean;
28
30
  //#endregion
29
31
  //#region src/routing/adapters.d.ts
30
32
  /** ELK/native spline output: start, then repeating control1/control2/end triples. */
@@ -49,6 +51,14 @@ declare function routeToGraphPatch(route: Route, options?: {
49
51
  readonly offset?: RoutePoint;
50
52
  }): GraphPatch;
51
53
  //#endregion
54
+ //#region src/routing/model.d.ts
55
+
56
+ declare const routingPolicies: Readonly<{
57
+ smooth: RoutingPolicy;
58
+ diagram: RoutingPolicy;
59
+ authored: RoutingPolicy;
60
+ }>;
61
+ //#endregion
52
62
  //#region src/routing/index.d.ts
53
63
  declare const straightRouting: NativeRoutingStrategy;
54
64
  declare const bezierRouting: NativeRoutingStrategy;
@@ -77,4 +87,4 @@ declare const routingStrategies: Readonly<{
77
87
  bundle: NativeRoutingStrategy;
78
88
  }>;
79
89
  //#endregion
80
- export { getPointAtLength as C, toSvgPath as D, roundCorners as E, applyRoutePatches as O, getPathLength as S, pathFromPoints as T, routeToPoints as _, fanRouting as a, flattenPath as b, orthogonalRouting as c, routingStrategies as d, selfLoopRouting as f, routeToGraphPatch as g, pathFromSplinePoints as h, curvedRouting as i, parallelRouting as l, getLayoutRoutes as m, bundleRouting as n, octilinearRouting as o, straightRouting as p, busRouting as r, organicRouting as s, bezierRouting as t, polylineRouting as u, routeToPolylines as v, getTangentAtLength as w, getPathBounds as x, FlattenPathOptions as y };
90
+ export { applyRoutePatches as A, getPathLength as C, roundCorners as D, pathFromPoints as E, segmentCrossesRect as O, getPathBounds as S, getTangentAtLength as T, routeToGraphPatch as _, fanRouting as a, FlattenPathOptions as b, orthogonalRouting as c, routingStrategies as d, selfLoopRouting as f, pathFromSplinePoints as g, getLayoutRoutes as h, curvedRouting as i, toSvgPath as k, parallelRouting as l, routingPolicies as m, bundleRouting as n, octilinearRouting as o, straightRouting as p, busRouting as r, organicRouting as s, bezierRouting as t, polylineRouting as u, routeToPoints as v, getPointAtLength as w, flattenPath as x, routeToPolylines as y };
@@ -1,5 +1,5 @@
1
- import { a as RouteBounds, c as RoutePath, l as RoutePoint, n as NativeRoutingStrategy, r as Route, s as RoutePatch } from "./types-CT2akdK0.mjs";
2
- import { GraphPatch, VisualGraph } from "@statelyai/graph";
1
+ import { C as RoutingPolicy, a as Route, d as RoutePath, f as RoutePoint, i as NativeRoutingStrategy, m as RouteSegment, s as RouteBounds, u as RoutePatch } from "./types-D8pYSn8I.cjs";
2
+ import { GraphEdge, GraphPatch, VisualGraph } from "@statelyai/graph";
3
3
 
4
4
  //#region src/routing/engine.d.ts
5
5
  declare function applyRoutePatches(routes: ReadonlyMap<string, Route>, patches: readonly RoutePatch[]): ReadonlyMap<string, Route>;
@@ -25,6 +25,8 @@ declare function toSvgPath(path: RoutePath, options?: {
25
25
  readonly radius?: number;
26
26
  readonly precision?: number;
27
27
  }): string;
28
+ /** Test curve geometry, subdividing conservative bounds only where they overlap. */
29
+ declare function segmentCrossesRect(start: RoutePoint, segment: RouteSegment, rect: RouteBounds): boolean;
28
30
  //#endregion
29
31
  //#region src/routing/adapters.d.ts
30
32
  /** ELK/native spline output: start, then repeating control1/control2/end triples. */
@@ -49,6 +51,14 @@ declare function routeToGraphPatch(route: Route, options?: {
49
51
  readonly offset?: RoutePoint;
50
52
  }): GraphPatch;
51
53
  //#endregion
54
+ //#region src/routing/model.d.ts
55
+
56
+ declare const routingPolicies: Readonly<{
57
+ smooth: RoutingPolicy;
58
+ diagram: RoutingPolicy;
59
+ authored: RoutingPolicy;
60
+ }>;
61
+ //#endregion
52
62
  //#region src/routing/index.d.ts
53
63
  declare const straightRouting: NativeRoutingStrategy;
54
64
  declare const bezierRouting: NativeRoutingStrategy;
@@ -77,4 +87,4 @@ declare const routingStrategies: Readonly<{
77
87
  bundle: NativeRoutingStrategy;
78
88
  }>;
79
89
  //#endregion
80
- export { getPointAtLength as C, toSvgPath as D, roundCorners as E, applyRoutePatches as O, getPathLength as S, pathFromPoints as T, routeToPoints as _, fanRouting as a, flattenPath as b, orthogonalRouting as c, routingStrategies as d, selfLoopRouting as f, routeToGraphPatch as g, pathFromSplinePoints as h, curvedRouting as i, parallelRouting as l, getLayoutRoutes as m, bundleRouting as n, octilinearRouting as o, straightRouting as p, busRouting as r, organicRouting as s, bezierRouting as t, polylineRouting as u, routeToPolylines as v, getTangentAtLength as w, getPathBounds as x, FlattenPathOptions as y };
90
+ export { applyRoutePatches as A, getPathLength as C, roundCorners as D, pathFromPoints as E, segmentCrossesRect as O, getPathBounds as S, getTangentAtLength as T, routeToGraphPatch as _, fanRouting as a, FlattenPathOptions as b, orthogonalRouting as c, routingStrategies as d, selfLoopRouting as f, pathFromSplinePoints as g, getLayoutRoutes as h, curvedRouting as i, toSvgPath as k, parallelRouting as l, routingPolicies as m, bundleRouting as n, octilinearRouting as o, straightRouting as p, busRouting as r, organicRouting as s, bezierRouting as t, polylineRouting as u, routeToPoints as v, getPointAtLength as w, flattenPath as x, routeToPolylines as y };
@@ -1,4 +1,4 @@
1
- import { n as NativeRoutingStrategy, r as Route, v as RoutingSettings } from "./types-uxPlGRof.cjs";
1
+ import { a as Route, i as NativeRoutingStrategy, w as RoutingSettings } from "./types-D8pYSn8I.cjs";
2
2
  import { EntityRect, Graph, GraphEdge, GraphNode, GraphPatch, GraphPort, Point, VisualGraph } from "@statelyai/graph";
3
3
  import { LayoutConstraints } from "@statelyai/graph/layout";
4
4
 
@@ -1383,7 +1383,14 @@ interface LayeredCrossingPhase {
1383
1383
  * coordinator can prepare every scope, share sweep state, then resume each
1384
1384
  * scope with its final order. The ordinary entry point drains this same pipeline.
1385
1385
  */
1386
- declare function createLayeredScopePipeline<N, E, G, P>(graph: Graph<N, E, G, P> | VisualGraph<N, E, G, P>, options: LayeredLayoutOptions, context?: LayoutExecutionContext): Generator<LayeredCrossingPhase, VisualGraph<N, E, G, P>, LayerOrder>;
1386
+ declare function createLayeredScopePipeline<N, E, G, P>(graph: Graph<N, E, G, P> | VisualGraph<N, E, G, P>, options: LayeredLayoutOptions, context?: LayoutExecutionContext, /** Pairs and segments that keep their former routing because the new one bent them diagonally. */
1387
+ fallbacks?: OrthogonalFallbacks): Generator<LayeredCrossingPhase, VisualGraph<N, E, G, P>, LayerOrder>;
1388
+ interface OrthogonalFallbacks {
1389
+ /** Antiparallel pair keys that keep coordinate order instead of flow order. */
1390
+ antiparallelPairs: ReadonlySet<string>;
1391
+ /** Feedback segments that keep the plain detour instead of label-dummy port sides. */
1392
+ feedbackSegments: ReadonlySet<string>;
1393
+ }
1387
1394
  /**
1388
1395
  * Deterministic native layered layout for an `@statelyai/graph` graph.
1389
1396
  *
@@ -1,4 +1,4 @@
1
- import { n as NativeRoutingStrategy, r as Route, v as RoutingSettings } from "./types-CT2akdK0.mjs";
1
+ import { a as Route, i as NativeRoutingStrategy, w as RoutingSettings } from "./types-MAUtJfKQ.mjs";
2
2
  import { LayoutConstraints } from "@statelyai/graph/layout";
3
3
  import { EntityRect, Graph, GraphEdge, GraphNode, GraphPatch, GraphPort, Point, VisualGraph } from "@statelyai/graph";
4
4
 
@@ -1383,7 +1383,14 @@ interface LayeredCrossingPhase {
1383
1383
  * coordinator can prepare every scope, share sweep state, then resume each
1384
1384
  * scope with its final order. The ordinary entry point drains this same pipeline.
1385
1385
  */
1386
- declare function createLayeredScopePipeline<N, E, G, P>(graph: Graph<N, E, G, P> | VisualGraph<N, E, G, P>, options: LayeredLayoutOptions, context?: LayoutExecutionContext): Generator<LayeredCrossingPhase, VisualGraph<N, E, G, P>, LayerOrder>;
1386
+ declare function createLayeredScopePipeline<N, E, G, P>(graph: Graph<N, E, G, P> | VisualGraph<N, E, G, P>, options: LayeredLayoutOptions, context?: LayoutExecutionContext, /** Pairs and segments that keep their former routing because the new one bent them diagonally. */
1387
+ fallbacks?: OrthogonalFallbacks): Generator<LayeredCrossingPhase, VisualGraph<N, E, G, P>, LayerOrder>;
1388
+ interface OrthogonalFallbacks {
1389
+ /** Antiparallel pair keys that keep coordinate order instead of flow order. */
1390
+ antiparallelPairs: ReadonlySet<string>;
1391
+ /** Feedback segments that keep the plain detour instead of label-dummy port sides. */
1392
+ feedbackSegments: ReadonlySet<string>;
1393
+ }
1387
1394
  /**
1388
1395
  * Deterministic native layered layout for an `@statelyai/graph` graph.
1389
1396
  *
package/dist/index.cjs CHANGED
@@ -1,6 +1,6 @@
1
- const require_routing = require('./routing-QIdGGFBe.cjs');
2
- const require_layered = require('./layered-BJu8A21s.cjs');
3
- const require_layout_engine = require('./layout-engine-BFP1TZbF.cjs');
1
+ const require_routing = require('./routing-Phxu1R0x.cjs');
2
+ const require_layered = require('./layered-SB2mlAqt.cjs');
3
+ const require_layout_engine = require('./layout-engine-CAyJ-I-u.cjs');
4
4
  let _statelyai_graph = require("@statelyai/graph");
5
5
 
6
6
  //#region src/layout.ts
@@ -208,11 +208,14 @@ exports.routeEdgesWithSplines = require_layered.routeEdgesWithSplines;
208
208
  exports.routeToGraphPatch = require_routing.routeToGraphPatch;
209
209
  exports.routeToPoints = require_routing.routeToPoints;
210
210
  exports.routeToPolylines = require_routing.routeToPolylines;
211
+ exports.routingPolicies = require_routing.routingPolicies;
211
212
  exports.routingStrategies = require_routing.routingStrategies;
213
+ exports.segmentCrossesRect = require_routing.segmentCrossesRect;
212
214
  exports.selfLoopRouting = require_routing.selfLoopRouting;
213
215
  exports.sporeCompactionAlgorithm = require_layout_engine.sporeCompactionAlgorithm;
214
216
  exports.sporeOverlapRemovalAlgorithm = require_layout_engine.sporeOverlapRemovalAlgorithm;
215
217
  exports.statechartHints = require_layered.statechartHints;
216
218
  exports.straightRouting = require_routing.straightRouting;
217
219
  exports.toElkLayeredOptions = require_layered.toElkLayeredOptions;
218
- exports.toSvgPath = require_routing.toSvgPath;
220
+ exports.toSvgPath = require_routing.toSvgPath;
221
+ exports.trimBezierPathStart = require_routing.trimBezierPathStart;
package/dist/index.d.cts CHANGED
@@ -1,6 +1,6 @@
1
- import { _ as RoutingMetrics, a as RouteBounds, b as RoutingStrategy, c as RoutePath, d as RouteSegment, f as RouteSide, g as RoutingGraph, h as RoutingDiagnosticCode, i as RouteAttachment, l as RoutePoint, m as RoutingDiagnostic, n as NativeRoutingStrategy, o as RouteEndpoint, p as RouteStyle, r as Route, s as RoutePatch, t as EdgeRoutingSettings, u as RouteSection, v as RoutingSettings, x as RoutingUpdate, y as RoutingSnapshot } from "./types-uxPlGRof.cjs";
2
- import { $ as NodePlacement, A as minimizeCrossingsWithModelOrder, At as LayoutResult, B as CompoundLayoutOptions, Bt as WaypointConstraint, C as breakCyclesInteractively, Ct as LayoutCapabilities, D as minimizeCrossingsInteractively, Dt as LayoutMetrics, E as breakCyclesWithModelOrderDepthFirstSearch, Et as LayoutExecutionContext, F as routeEdgesWithSplines, Ft as GeometryAttribute, G as LayerAssigner, H as CycleBreaker, I as CompoundVisualGraph, It as GeometryReference, J as LayeredLayoutOptions, K as LayerAssignment, L as AcyclicOrientation, Lt as LayoutConstraint, M as placeNodesInteractively, Mt as AlignConstraint, N as routeEdgesOrthogonally, Nt as ConstraintStrength, O as minimizeCrossingsWithBarycenter, Ot as LayoutPhaseMetrics, P as routeEdgesWithPolylines, Pt as DistributeConstraint, Q as LayoutPadding, R as CompoundEdgeAttachment, Rt as LinearConstraint, S as breakCyclesGreedilyByModelOrder, St as LayoutAlgorithm, T as breakCyclesWithModelOrderBreadthFirstSearch, Tt as LayoutDirection, U as EdgeRouter, V as CrossingMinimizer, Vt as c, W as EdgeRoutes, X as LayeredSpacing, Y as LayeredPhaseInput, Z as LayeredStrategies, _ as assignLayersWithCoffmanGraham, _t as HintStrength, a as layeredAlgorithm, at as LayeredAdvancedOptions, b as breakCyclesByStronglyConnectedNodeType, bt as statechartHints, ct as fromElkLayeredOptionId, d as assignLayersWithNetworkSimplex, dt as ElkLayeredOptionId, et as NodePlacer, f as assignLayersByBreadthFirstModelOrder, ft as ElkLayeredOptionName, g as assignLayersInteractively, gt as ChainHint, h as assignLayersByLongestPathToSink, ht as AnchorHint, i as getLayeredLayout, it as EdgeRoutingStyle, j as placeNodesInLayers, jt as LayoutScope, k as minimizeCrossingsWithMedian, kt as LayoutRequest, l as assignLayersWithStretchWidth, lt as toElkLayeredOptions, m as assignLayersByLongestPath, mt as elkLayeredOptionDefinitions, nt as CrossingMinimizationStrategy, ot as LayeringStrategy, p as assignLayersByDepthFirstModelOrder, pt as ElkLayeredOptionValueByName, q as LayerOrder, rt as CycleBreakingStrategy, st as NodePlacementStrategy, tt as NodeSize, u as assignLayersWithMinWidth, ut as elkLayeredEnumValues, v as breakCyclesByModelOrder, vt as LayoutHint, w as breakCyclesWithDepthFirstSearch, wt as LayoutDiagnostic, x as breakCyclesGreedily, xt as AnyGraph, y as breakCyclesByStronglyConnectedConnectivity, yt as hint, z as CompoundLayoutGeometry, zt as PinConstraint } from "./index-DT6lPMfS.cjs";
3
- import { C as getPointAtLength, D as toSvgPath, E as roundCorners, O as applyRoutePatches, S as getPathLength, T as pathFromPoints, _ as routeToPoints, a as fanRouting, b as flattenPath, c as orthogonalRouting, d as routingStrategies, f as selfLoopRouting, g as routeToGraphPatch, h as pathFromSplinePoints, i as curvedRouting, l as parallelRouting, m as getLayoutRoutes, n as bundleRouting, o as octilinearRouting, p as straightRouting, r as busRouting, s as organicRouting, t as bezierRouting, u as polylineRouting, v as routeToPolylines, w as getTangentAtLength, x as getPathBounds, y as FlattenPathOptions } from "./index-B6cWNrMw.cjs";
1
+ import { A as BezierGuide, C as RoutingPolicy, D as RoutingTangent, E as RoutingStrategy, O as RoutingUpdate, S as RoutingMetrics, T as RoutingSnapshot, _ as RoutingCurve, a as Route, b as RoutingGraph, c as RouteEndpoint, d as RoutePath, f as RoutePoint, g as RouteStyle, h as RouteSide, i as NativeRoutingStrategy, j as trimBezierPathStart, k as BezierEndpoint, l as RouteLabelPlacement, m as RouteSegment, n as BezierRoutingOptions, o as RouteAttachment, p as RouteSection, r as EdgeRoutingSettings, s as RouteBounds, t as BezierEdgeSettings, u as RoutePatch, v as RoutingDiagnostic, w as RoutingSettings, x as RoutingLabel, y as RoutingDiagnosticCode } from "./types-D8pYSn8I.cjs";
2
+ import { $ as NodePlacement, A as minimizeCrossingsWithModelOrder, At as LayoutResult, B as CompoundLayoutOptions, Bt as WaypointConstraint, C as breakCyclesInteractively, Ct as LayoutCapabilities, D as minimizeCrossingsInteractively, Dt as LayoutMetrics, E as breakCyclesWithModelOrderDepthFirstSearch, Et as LayoutExecutionContext, F as routeEdgesWithSplines, Ft as GeometryAttribute, G as LayerAssigner, H as CycleBreaker, I as CompoundVisualGraph, It as GeometryReference, J as LayeredLayoutOptions, K as LayerAssignment, L as AcyclicOrientation, Lt as LayoutConstraint, M as placeNodesInteractively, Mt as AlignConstraint, N as routeEdgesOrthogonally, Nt as ConstraintStrength, O as minimizeCrossingsWithBarycenter, Ot as LayoutPhaseMetrics, P as routeEdgesWithPolylines, Pt as DistributeConstraint, Q as LayoutPadding, R as CompoundEdgeAttachment, Rt as LinearConstraint, S as breakCyclesGreedilyByModelOrder, St as LayoutAlgorithm, T as breakCyclesWithModelOrderBreadthFirstSearch, Tt as LayoutDirection, U as EdgeRouter, V as CrossingMinimizer, Vt as c, W as EdgeRoutes, X as LayeredSpacing, Y as LayeredPhaseInput, Z as LayeredStrategies, _ as assignLayersWithCoffmanGraham, _t as HintStrength, a as layeredAlgorithm, at as LayeredAdvancedOptions, b as breakCyclesByStronglyConnectedNodeType, bt as statechartHints, ct as fromElkLayeredOptionId, d as assignLayersWithNetworkSimplex, dt as ElkLayeredOptionId, et as NodePlacer, f as assignLayersByBreadthFirstModelOrder, ft as ElkLayeredOptionName, g as assignLayersInteractively, gt as ChainHint, h as assignLayersByLongestPathToSink, ht as AnchorHint, i as getLayeredLayout, it as EdgeRoutingStyle, j as placeNodesInLayers, jt as LayoutScope, k as minimizeCrossingsWithMedian, kt as LayoutRequest, l as assignLayersWithStretchWidth, lt as toElkLayeredOptions, m as assignLayersByLongestPath, mt as elkLayeredOptionDefinitions, nt as CrossingMinimizationStrategy, ot as LayeringStrategy, p as assignLayersByDepthFirstModelOrder, pt as ElkLayeredOptionValueByName, q as LayerOrder, rt as CycleBreakingStrategy, st as NodePlacementStrategy, tt as NodeSize, u as assignLayersWithMinWidth, ut as elkLayeredEnumValues, v as breakCyclesByModelOrder, vt as LayoutHint, w as breakCyclesWithDepthFirstSearch, wt as LayoutDiagnostic, x as breakCyclesGreedily, xt as AnyGraph, y as breakCyclesByStronglyConnectedConnectivity, yt as hint, z as CompoundLayoutGeometry, zt as PinConstraint } from "./index-Xc4R6y3z.cjs";
3
+ import { A as applyRoutePatches, C as getPathLength, D as roundCorners, E as pathFromPoints, O as segmentCrossesRect, S as getPathBounds, T as getTangentAtLength, _ as routeToGraphPatch, a as fanRouting, b as FlattenPathOptions, c as orthogonalRouting, d as routingStrategies, f as selfLoopRouting, g as pathFromSplinePoints, h as getLayoutRoutes, i as curvedRouting, k as toSvgPath, l as parallelRouting, m as routingPolicies, n as bundleRouting, o as octilinearRouting, p as straightRouting, r as busRouting, s as organicRouting, t as bezierRouting, u as polylineRouting, v as routeToPoints, w as getPointAtLength, x as flattenPath, y as routeToPolylines } from "./index-C0J4ttZe.cjs";
4
4
  import { Graph, GraphNode, VisualGraph } from "@statelyai/graph";
5
5
  import { LayoutOptions } from "@statelyai/graph/layout";
6
6
 
@@ -75,4 +75,4 @@ declare function getLayoutAlgorithm(id: string): LayoutAlgorithm<unknown> | unde
75
75
  */
76
76
  declare function getLayout<N, E, G, P, O = unknown>(request: LayoutRequest<N, E, G, P, O>): Promise<LayoutResult<N, E, G, P>>;
77
77
  //#endregion
78
- export { type AcyclicOrientation, type AlignConstraint, type AnchorHint, type AnyGraph, type BoxLayoutOptions, type ChainHint, type CompoundEdgeAttachment, type CompoundLayoutGeometry, type CompoundLayoutOptions, type CompoundVisualGraph, type ConstraintStrength, type CrossingMinimizationStrategy, type CrossingMinimizer, type CycleBreaker, type CycleBreakingStrategy, type DistributeConstraint, type EdgeRouter, type EdgeRoutes, EdgeRoutingSettings, type EdgeRoutingStyle, type ElkLayeredOptionId, type ElkLayeredOptionName, type ElkLayeredOptionValueByName, type FixedLayoutOptions, FlattenPathOptions, type GeometryAttribute, type GeometryReference, type HintStrength, type LayerAssigner, type LayerAssignment, type LayerOrder, type LayeredAdvancedOptions, type LayeredLayoutOptions, type LayeredPhaseInput, type LayeredSpacing, type LayeredStrategies, type LayeringStrategy, type LayoutAlgorithm, type LayoutCapabilities, type LayoutConstraint, type LayoutDiagnostic, type LayoutDirection, LayoutError, type LayoutExecutionContext, type LayoutHint, type LayoutMetrics, type LayoutPadding, type LayoutPhaseMetrics, type LayoutRequest, type LayoutResult, type LayoutScope, type LinearConstraint, NativeRoutingStrategy, type NodePlacement, type NodePlacementStrategy, type NodePlacer, type NodeSize, type PinConstraint, type RandomLayoutOptions, type RectanglePackingLayoutOptions, Route, RouteAttachment, RouteBounds, RouteEndpoint, RoutePatch, RoutePath, RoutePoint, RouteSection, RouteSegment, RouteSide, RouteStyle, RoutingDiagnostic, RoutingDiagnosticCode, RoutingGraph, RoutingMetrics, RoutingSettings, RoutingSnapshot, RoutingStrategy, RoutingUpdate, type SporeLayoutOptions, UnsupportedLayoutError, type WaypointConstraint, applyRoutePatches, assignLayersByBreadthFirstModelOrder, assignLayersByDepthFirstModelOrder, assignLayersByLongestPath, assignLayersByLongestPathToSink, assignLayersInteractively, assignLayersWithCoffmanGraham, assignLayersWithMinWidth, assignLayersWithNetworkSimplex, assignLayersWithStretchWidth, bezierRouting, boxAlgorithm, breakCyclesByModelOrder, breakCyclesByStronglyConnectedConnectivity, breakCyclesByStronglyConnectedNodeType, breakCyclesGreedily, breakCyclesGreedilyByModelOrder, breakCyclesInteractively, breakCyclesWithDepthFirstSearch, breakCyclesWithModelOrderBreadthFirstSearch, breakCyclesWithModelOrderDepthFirstSearch, bundleRouting, busRouting, c, curvedRouting, elkLayeredEnumValues, elkLayeredOptionDefinitions, fanRouting, fixedAlgorithm, flattenPath, fromElkLayeredOptionId, getBoxLayout, getFixedLayout, getLayeredLayout, getLayout, getLayoutAlgorithm, getLayoutRoutes, getPathBounds, getPathLength, getPointAtLength, getRandomLayout, getRectanglePackingLayout, getSporeCompactionLayout, getSporeOverlapRemovalLayout, getTangentAtLength, hint, layeredAlgorithm, minimizeCrossingsInteractively, minimizeCrossingsWithBarycenter, minimizeCrossingsWithMedian, minimizeCrossingsWithModelOrder, octilinearRouting, organicRouting, orthogonalRouting, parallelRouting, pathFromPoints, pathFromSplinePoints, placeNodesInLayers, placeNodesInteractively, polylineRouting, randomAlgorithm, rectanglePackingAlgorithm, registerLayoutAlgorithm, roundCorners, routeEdgesOrthogonally, routeEdgesWithPolylines, routeEdgesWithSplines, routeToGraphPatch, routeToPoints, routeToPolylines, routingStrategies, selfLoopRouting, sporeCompactionAlgorithm, sporeOverlapRemovalAlgorithm, statechartHints, straightRouting, toElkLayeredOptions, toSvgPath };
78
+ export { type AcyclicOrientation, type AlignConstraint, type AnchorHint, type AnyGraph, BezierEdgeSettings, BezierEndpoint, BezierGuide, BezierRoutingOptions, type BoxLayoutOptions, type ChainHint, type CompoundEdgeAttachment, type CompoundLayoutGeometry, type CompoundLayoutOptions, type CompoundVisualGraph, type ConstraintStrength, type CrossingMinimizationStrategy, type CrossingMinimizer, type CycleBreaker, type CycleBreakingStrategy, type DistributeConstraint, type EdgeRouter, type EdgeRoutes, EdgeRoutingSettings, type EdgeRoutingStyle, type ElkLayeredOptionId, type ElkLayeredOptionName, type ElkLayeredOptionValueByName, type FixedLayoutOptions, FlattenPathOptions, type GeometryAttribute, type GeometryReference, type HintStrength, type LayerAssigner, type LayerAssignment, type LayerOrder, type LayeredAdvancedOptions, type LayeredLayoutOptions, type LayeredPhaseInput, type LayeredSpacing, type LayeredStrategies, type LayeringStrategy, type LayoutAlgorithm, type LayoutCapabilities, type LayoutConstraint, type LayoutDiagnostic, type LayoutDirection, LayoutError, type LayoutExecutionContext, type LayoutHint, type LayoutMetrics, type LayoutPadding, type LayoutPhaseMetrics, type LayoutRequest, type LayoutResult, type LayoutScope, type LinearConstraint, NativeRoutingStrategy, type NodePlacement, type NodePlacementStrategy, type NodePlacer, type NodeSize, type PinConstraint, type RandomLayoutOptions, type RectanglePackingLayoutOptions, Route, RouteAttachment, RouteBounds, RouteEndpoint, RouteLabelPlacement, RoutePatch, RoutePath, RoutePoint, RouteSection, RouteSegment, RouteSide, RouteStyle, RoutingCurve, RoutingDiagnostic, RoutingDiagnosticCode, RoutingGraph, RoutingLabel, RoutingMetrics, RoutingPolicy, RoutingSettings, RoutingSnapshot, RoutingStrategy, RoutingTangent, RoutingUpdate, type SporeLayoutOptions, UnsupportedLayoutError, type WaypointConstraint, applyRoutePatches, assignLayersByBreadthFirstModelOrder, assignLayersByDepthFirstModelOrder, assignLayersByLongestPath, assignLayersByLongestPathToSink, assignLayersInteractively, assignLayersWithCoffmanGraham, assignLayersWithMinWidth, assignLayersWithNetworkSimplex, assignLayersWithStretchWidth, bezierRouting, boxAlgorithm, breakCyclesByModelOrder, breakCyclesByStronglyConnectedConnectivity, breakCyclesByStronglyConnectedNodeType, breakCyclesGreedily, breakCyclesGreedilyByModelOrder, breakCyclesInteractively, breakCyclesWithDepthFirstSearch, breakCyclesWithModelOrderBreadthFirstSearch, breakCyclesWithModelOrderDepthFirstSearch, bundleRouting, busRouting, c, curvedRouting, elkLayeredEnumValues, elkLayeredOptionDefinitions, fanRouting, fixedAlgorithm, flattenPath, fromElkLayeredOptionId, getBoxLayout, getFixedLayout, getLayeredLayout, getLayout, getLayoutAlgorithm, getLayoutRoutes, getPathBounds, getPathLength, getPointAtLength, getRandomLayout, getRectanglePackingLayout, getSporeCompactionLayout, getSporeOverlapRemovalLayout, getTangentAtLength, hint, layeredAlgorithm, minimizeCrossingsInteractively, minimizeCrossingsWithBarycenter, minimizeCrossingsWithMedian, minimizeCrossingsWithModelOrder, octilinearRouting, organicRouting, orthogonalRouting, parallelRouting, pathFromPoints, pathFromSplinePoints, placeNodesInLayers, placeNodesInteractively, polylineRouting, randomAlgorithm, rectanglePackingAlgorithm, registerLayoutAlgorithm, roundCorners, routeEdgesOrthogonally, routeEdgesWithPolylines, routeEdgesWithSplines, routeToGraphPatch, routeToPoints, routeToPolylines, routingPolicies, routingStrategies, segmentCrossesRect, selfLoopRouting, sporeCompactionAlgorithm, sporeOverlapRemovalAlgorithm, statechartHints, straightRouting, toElkLayeredOptions, toSvgPath, trimBezierPathStart };
package/dist/index.d.mts CHANGED
@@ -1,6 +1,6 @@
1
- import { _ as RoutingMetrics, a as RouteBounds, b as RoutingStrategy, c as RoutePath, d as RouteSegment, f as RouteSide, g as RoutingGraph, h as RoutingDiagnosticCode, i as RouteAttachment, l as RoutePoint, m as RoutingDiagnostic, n as NativeRoutingStrategy, o as RouteEndpoint, p as RouteStyle, r as Route, s as RoutePatch, t as EdgeRoutingSettings, u as RouteSection, v as RoutingSettings, x as RoutingUpdate, y as RoutingSnapshot } from "./types-CT2akdK0.mjs";
2
- import { $ as NodePlacement, A as minimizeCrossingsWithModelOrder, At as LayoutResult, B as CompoundLayoutOptions, Bt as WaypointConstraint, C as breakCyclesInteractively, Ct as LayoutCapabilities, D as minimizeCrossingsInteractively, Dt as LayoutMetrics, E as breakCyclesWithModelOrderDepthFirstSearch, Et as LayoutExecutionContext, F as routeEdgesWithSplines, Ft as GeometryAttribute, G as LayerAssigner, H as CycleBreaker, I as CompoundVisualGraph, It as GeometryReference, J as LayeredLayoutOptions, K as LayerAssignment, L as AcyclicOrientation, Lt as LayoutConstraint, M as placeNodesInteractively, Mt as AlignConstraint, N as routeEdgesOrthogonally, Nt as ConstraintStrength, O as minimizeCrossingsWithBarycenter, Ot as LayoutPhaseMetrics, P as routeEdgesWithPolylines, Pt as DistributeConstraint, Q as LayoutPadding, R as CompoundEdgeAttachment, Rt as LinearConstraint, S as breakCyclesGreedilyByModelOrder, St as LayoutAlgorithm, T as breakCyclesWithModelOrderBreadthFirstSearch, Tt as LayoutDirection, U as EdgeRouter, V as CrossingMinimizer, Vt as c, W as EdgeRoutes, X as LayeredSpacing, Y as LayeredPhaseInput, Z as LayeredStrategies, _ as assignLayersWithCoffmanGraham, _t as HintStrength, a as layeredAlgorithm, at as LayeredAdvancedOptions, b as breakCyclesByStronglyConnectedNodeType, bt as statechartHints, ct as fromElkLayeredOptionId, d as assignLayersWithNetworkSimplex, dt as ElkLayeredOptionId, et as NodePlacer, f as assignLayersByBreadthFirstModelOrder, ft as ElkLayeredOptionName, g as assignLayersInteractively, gt as ChainHint, h as assignLayersByLongestPathToSink, ht as AnchorHint, i as getLayeredLayout, it as EdgeRoutingStyle, j as placeNodesInLayers, jt as LayoutScope, k as minimizeCrossingsWithMedian, kt as LayoutRequest, l as assignLayersWithStretchWidth, lt as toElkLayeredOptions, m as assignLayersByLongestPath, mt as elkLayeredOptionDefinitions, nt as CrossingMinimizationStrategy, ot as LayeringStrategy, p as assignLayersByDepthFirstModelOrder, pt as ElkLayeredOptionValueByName, q as LayerOrder, rt as CycleBreakingStrategy, st as NodePlacementStrategy, tt as NodeSize, u as assignLayersWithMinWidth, ut as elkLayeredEnumValues, v as breakCyclesByModelOrder, vt as LayoutHint, w as breakCyclesWithDepthFirstSearch, wt as LayoutDiagnostic, x as breakCyclesGreedily, xt as AnyGraph, y as breakCyclesByStronglyConnectedConnectivity, yt as hint, z as CompoundLayoutGeometry, zt as PinConstraint } from "./index-F1U-fCTu.mjs";
3
- import { C as getPointAtLength, D as toSvgPath, E as roundCorners, O as applyRoutePatches, S as getPathLength, T as pathFromPoints, _ as routeToPoints, a as fanRouting, b as flattenPath, c as orthogonalRouting, d as routingStrategies, f as selfLoopRouting, g as routeToGraphPatch, h as pathFromSplinePoints, i as curvedRouting, l as parallelRouting, m as getLayoutRoutes, n as bundleRouting, o as octilinearRouting, p as straightRouting, r as busRouting, s as organicRouting, t as bezierRouting, u as polylineRouting, v as routeToPolylines, w as getTangentAtLength, x as getPathBounds, y as FlattenPathOptions } from "./index-CJQLUKD9.mjs";
1
+ import { A as BezierGuide, C as RoutingPolicy, D as RoutingTangent, E as RoutingStrategy, O as RoutingUpdate, S as RoutingMetrics, T as RoutingSnapshot, _ as RoutingCurve, a as Route, b as RoutingGraph, c as RouteEndpoint, d as RoutePath, f as RoutePoint, g as RouteStyle, h as RouteSide, i as NativeRoutingStrategy, j as trimBezierPathStart, k as BezierEndpoint, l as RouteLabelPlacement, m as RouteSegment, n as BezierRoutingOptions, o as RouteAttachment, p as RouteSection, r as EdgeRoutingSettings, s as RouteBounds, t as BezierEdgeSettings, u as RoutePatch, v as RoutingDiagnostic, w as RoutingSettings, x as RoutingLabel, y as RoutingDiagnosticCode } from "./types-MAUtJfKQ.mjs";
2
+ import { $ as NodePlacement, A as minimizeCrossingsWithModelOrder, At as LayoutResult, B as CompoundLayoutOptions, Bt as WaypointConstraint, C as breakCyclesInteractively, Ct as LayoutCapabilities, D as minimizeCrossingsInteractively, Dt as LayoutMetrics, E as breakCyclesWithModelOrderDepthFirstSearch, Et as LayoutExecutionContext, F as routeEdgesWithSplines, Ft as GeometryAttribute, G as LayerAssigner, H as CycleBreaker, I as CompoundVisualGraph, It as GeometryReference, J as LayeredLayoutOptions, K as LayerAssignment, L as AcyclicOrientation, Lt as LayoutConstraint, M as placeNodesInteractively, Mt as AlignConstraint, N as routeEdgesOrthogonally, Nt as ConstraintStrength, O as minimizeCrossingsWithBarycenter, Ot as LayoutPhaseMetrics, P as routeEdgesWithPolylines, Pt as DistributeConstraint, Q as LayoutPadding, R as CompoundEdgeAttachment, Rt as LinearConstraint, S as breakCyclesGreedilyByModelOrder, St as LayoutAlgorithm, T as breakCyclesWithModelOrderBreadthFirstSearch, Tt as LayoutDirection, U as EdgeRouter, V as CrossingMinimizer, Vt as c, W as EdgeRoutes, X as LayeredSpacing, Y as LayeredPhaseInput, Z as LayeredStrategies, _ as assignLayersWithCoffmanGraham, _t as HintStrength, a as layeredAlgorithm, at as LayeredAdvancedOptions, b as breakCyclesByStronglyConnectedNodeType, bt as statechartHints, ct as fromElkLayeredOptionId, d as assignLayersWithNetworkSimplex, dt as ElkLayeredOptionId, et as NodePlacer, f as assignLayersByBreadthFirstModelOrder, ft as ElkLayeredOptionName, g as assignLayersInteractively, gt as ChainHint, h as assignLayersByLongestPathToSink, ht as AnchorHint, i as getLayeredLayout, it as EdgeRoutingStyle, j as placeNodesInLayers, jt as LayoutScope, k as minimizeCrossingsWithMedian, kt as LayoutRequest, l as assignLayersWithStretchWidth, lt as toElkLayeredOptions, m as assignLayersByLongestPath, mt as elkLayeredOptionDefinitions, nt as CrossingMinimizationStrategy, ot as LayeringStrategy, p as assignLayersByDepthFirstModelOrder, pt as ElkLayeredOptionValueByName, q as LayerOrder, rt as CycleBreakingStrategy, st as NodePlacementStrategy, tt as NodeSize, u as assignLayersWithMinWidth, ut as elkLayeredEnumValues, v as breakCyclesByModelOrder, vt as LayoutHint, w as breakCyclesWithDepthFirstSearch, wt as LayoutDiagnostic, x as breakCyclesGreedily, xt as AnyGraph, y as breakCyclesByStronglyConnectedConnectivity, yt as hint, z as CompoundLayoutGeometry, zt as PinConstraint } from "./index-lSp0oCJC.mjs";
3
+ import { A as applyRoutePatches, C as getPathLength, D as roundCorners, E as pathFromPoints, O as segmentCrossesRect, S as getPathBounds, T as getTangentAtLength, _ as routeToGraphPatch, a as fanRouting, b as FlattenPathOptions, c as orthogonalRouting, d as routingStrategies, f as selfLoopRouting, g as pathFromSplinePoints, h as getLayoutRoutes, i as curvedRouting, k as toSvgPath, l as parallelRouting, m as routingPolicies, n as bundleRouting, o as octilinearRouting, p as straightRouting, r as busRouting, s as organicRouting, t as bezierRouting, u as polylineRouting, v as routeToPoints, w as getPointAtLength, x as flattenPath, y as routeToPolylines } from "./index-0YVSvMvA.mjs";
4
4
  import { LayoutOptions } from "@statelyai/graph/layout";
5
5
  import { Graph, GraphNode, VisualGraph } from "@statelyai/graph";
6
6
 
@@ -75,4 +75,4 @@ declare function getLayoutAlgorithm(id: string): LayoutAlgorithm<unknown> | unde
75
75
  */
76
76
  declare function getLayout<N, E, G, P, O = unknown>(request: LayoutRequest<N, E, G, P, O>): Promise<LayoutResult<N, E, G, P>>;
77
77
  //#endregion
78
- export { type AcyclicOrientation, type AlignConstraint, type AnchorHint, type AnyGraph, type BoxLayoutOptions, type ChainHint, type CompoundEdgeAttachment, type CompoundLayoutGeometry, type CompoundLayoutOptions, type CompoundVisualGraph, type ConstraintStrength, type CrossingMinimizationStrategy, type CrossingMinimizer, type CycleBreaker, type CycleBreakingStrategy, type DistributeConstraint, type EdgeRouter, type EdgeRoutes, EdgeRoutingSettings, type EdgeRoutingStyle, type ElkLayeredOptionId, type ElkLayeredOptionName, type ElkLayeredOptionValueByName, type FixedLayoutOptions, FlattenPathOptions, type GeometryAttribute, type GeometryReference, type HintStrength, type LayerAssigner, type LayerAssignment, type LayerOrder, type LayeredAdvancedOptions, type LayeredLayoutOptions, type LayeredPhaseInput, type LayeredSpacing, type LayeredStrategies, type LayeringStrategy, type LayoutAlgorithm, type LayoutCapabilities, type LayoutConstraint, type LayoutDiagnostic, type LayoutDirection, LayoutError, type LayoutExecutionContext, type LayoutHint, type LayoutMetrics, type LayoutPadding, type LayoutPhaseMetrics, type LayoutRequest, type LayoutResult, type LayoutScope, type LinearConstraint, NativeRoutingStrategy, type NodePlacement, type NodePlacementStrategy, type NodePlacer, type NodeSize, type PinConstraint, type RandomLayoutOptions, type RectanglePackingLayoutOptions, Route, RouteAttachment, RouteBounds, RouteEndpoint, RoutePatch, RoutePath, RoutePoint, RouteSection, RouteSegment, RouteSide, RouteStyle, RoutingDiagnostic, RoutingDiagnosticCode, RoutingGraph, RoutingMetrics, RoutingSettings, RoutingSnapshot, RoutingStrategy, RoutingUpdate, type SporeLayoutOptions, UnsupportedLayoutError, type WaypointConstraint, applyRoutePatches, assignLayersByBreadthFirstModelOrder, assignLayersByDepthFirstModelOrder, assignLayersByLongestPath, assignLayersByLongestPathToSink, assignLayersInteractively, assignLayersWithCoffmanGraham, assignLayersWithMinWidth, assignLayersWithNetworkSimplex, assignLayersWithStretchWidth, bezierRouting, boxAlgorithm, breakCyclesByModelOrder, breakCyclesByStronglyConnectedConnectivity, breakCyclesByStronglyConnectedNodeType, breakCyclesGreedily, breakCyclesGreedilyByModelOrder, breakCyclesInteractively, breakCyclesWithDepthFirstSearch, breakCyclesWithModelOrderBreadthFirstSearch, breakCyclesWithModelOrderDepthFirstSearch, bundleRouting, busRouting, c, curvedRouting, elkLayeredEnumValues, elkLayeredOptionDefinitions, fanRouting, fixedAlgorithm, flattenPath, fromElkLayeredOptionId, getBoxLayout, getFixedLayout, getLayeredLayout, getLayout, getLayoutAlgorithm, getLayoutRoutes, getPathBounds, getPathLength, getPointAtLength, getRandomLayout, getRectanglePackingLayout, getSporeCompactionLayout, getSporeOverlapRemovalLayout, getTangentAtLength, hint, layeredAlgorithm, minimizeCrossingsInteractively, minimizeCrossingsWithBarycenter, minimizeCrossingsWithMedian, minimizeCrossingsWithModelOrder, octilinearRouting, organicRouting, orthogonalRouting, parallelRouting, pathFromPoints, pathFromSplinePoints, placeNodesInLayers, placeNodesInteractively, polylineRouting, randomAlgorithm, rectanglePackingAlgorithm, registerLayoutAlgorithm, roundCorners, routeEdgesOrthogonally, routeEdgesWithPolylines, routeEdgesWithSplines, routeToGraphPatch, routeToPoints, routeToPolylines, routingStrategies, selfLoopRouting, sporeCompactionAlgorithm, sporeOverlapRemovalAlgorithm, statechartHints, straightRouting, toElkLayeredOptions, toSvgPath };
78
+ export { type AcyclicOrientation, type AlignConstraint, type AnchorHint, type AnyGraph, BezierEdgeSettings, BezierEndpoint, BezierGuide, BezierRoutingOptions, type BoxLayoutOptions, type ChainHint, type CompoundEdgeAttachment, type CompoundLayoutGeometry, type CompoundLayoutOptions, type CompoundVisualGraph, type ConstraintStrength, type CrossingMinimizationStrategy, type CrossingMinimizer, type CycleBreaker, type CycleBreakingStrategy, type DistributeConstraint, type EdgeRouter, type EdgeRoutes, EdgeRoutingSettings, type EdgeRoutingStyle, type ElkLayeredOptionId, type ElkLayeredOptionName, type ElkLayeredOptionValueByName, type FixedLayoutOptions, FlattenPathOptions, type GeometryAttribute, type GeometryReference, type HintStrength, type LayerAssigner, type LayerAssignment, type LayerOrder, type LayeredAdvancedOptions, type LayeredLayoutOptions, type LayeredPhaseInput, type LayeredSpacing, type LayeredStrategies, type LayeringStrategy, type LayoutAlgorithm, type LayoutCapabilities, type LayoutConstraint, type LayoutDiagnostic, type LayoutDirection, LayoutError, type LayoutExecutionContext, type LayoutHint, type LayoutMetrics, type LayoutPadding, type LayoutPhaseMetrics, type LayoutRequest, type LayoutResult, type LayoutScope, type LinearConstraint, NativeRoutingStrategy, type NodePlacement, type NodePlacementStrategy, type NodePlacer, type NodeSize, type PinConstraint, type RandomLayoutOptions, type RectanglePackingLayoutOptions, Route, RouteAttachment, RouteBounds, RouteEndpoint, RouteLabelPlacement, RoutePatch, RoutePath, RoutePoint, RouteSection, RouteSegment, RouteSide, RouteStyle, RoutingCurve, RoutingDiagnostic, RoutingDiagnosticCode, RoutingGraph, RoutingLabel, RoutingMetrics, RoutingPolicy, RoutingSettings, RoutingSnapshot, RoutingStrategy, RoutingTangent, RoutingUpdate, type SporeLayoutOptions, UnsupportedLayoutError, type WaypointConstraint, applyRoutePatches, assignLayersByBreadthFirstModelOrder, assignLayersByDepthFirstModelOrder, assignLayersByLongestPath, assignLayersByLongestPathToSink, assignLayersInteractively, assignLayersWithCoffmanGraham, assignLayersWithMinWidth, assignLayersWithNetworkSimplex, assignLayersWithStretchWidth, bezierRouting, boxAlgorithm, breakCyclesByModelOrder, breakCyclesByStronglyConnectedConnectivity, breakCyclesByStronglyConnectedNodeType, breakCyclesGreedily, breakCyclesGreedilyByModelOrder, breakCyclesInteractively, breakCyclesWithDepthFirstSearch, breakCyclesWithModelOrderBreadthFirstSearch, breakCyclesWithModelOrderDepthFirstSearch, bundleRouting, busRouting, c, curvedRouting, elkLayeredEnumValues, elkLayeredOptionDefinitions, fanRouting, fixedAlgorithm, flattenPath, fromElkLayeredOptionId, getBoxLayout, getFixedLayout, getLayeredLayout, getLayout, getLayoutAlgorithm, getLayoutRoutes, getPathBounds, getPathLength, getPointAtLength, getRandomLayout, getRectanglePackingLayout, getSporeCompactionLayout, getSporeOverlapRemovalLayout, getTangentAtLength, hint, layeredAlgorithm, minimizeCrossingsInteractively, minimizeCrossingsWithBarycenter, minimizeCrossingsWithMedian, minimizeCrossingsWithModelOrder, octilinearRouting, organicRouting, orthogonalRouting, parallelRouting, pathFromPoints, pathFromSplinePoints, placeNodesInLayers, placeNodesInteractively, polylineRouting, randomAlgorithm, rectanglePackingAlgorithm, registerLayoutAlgorithm, roundCorners, routeEdgesOrthogonally, routeEdgesWithPolylines, routeEdgesWithSplines, routeToGraphPatch, routeToPoints, routeToPolylines, routingPolicies, routingStrategies, segmentCrossesRect, selfLoopRouting, sporeCompactionAlgorithm, sporeOverlapRemovalAlgorithm, statechartHints, straightRouting, toElkLayeredOptions, toSvgPath, trimBezierPathStart };
package/dist/index.mjs CHANGED
@@ -1,6 +1,6 @@
1
- import { C as getPointAtLength, D as toSvgPath, E as roundCorners, F as LayoutError, I as UnsupportedLayoutError, S as getPathLength, T as pathFromPoints, _ as routeToGraphPatch, a as fanRouting, b as flattenPath, c as orthogonalRouting, d as routingStrategies, f as selfLoopRouting, g as pathFromSplinePoints, h as getLayoutRoutes, i as curvedRouting, l as parallelRouting, m as applyRoutePatches, n as bundleRouting, o as octilinearRouting, p as straightRouting, r as busRouting, s as organicRouting, t as bezierRouting, u as polylineRouting, v as routeToPoints, w as getTangentAtLength, x as getPathBounds, y as routeToPolylines } from "./routing-CR8flv8b.mjs";
2
- import { A as breakCyclesByStronglyConnectedConnectivity, B as minimizeCrossingsInteractively, C as assignLayersByBreadthFirstModelOrder, D as assignLayersInteractively, E as assignLayersByLongestPathToSink, F as breakCyclesWithDepthFirstSearch, G as placeNodesInteractively, H as minimizeCrossingsWithMedian, I as breakCyclesWithModelOrderBreadthFirstSearch, J as routeEdgesWithPolylines, L as breakCyclesWithModelOrderDepthFirstSearch, M as breakCyclesGreedily, N as breakCyclesGreedilyByModelOrder, O as assignLayersWithCoffmanGraham, P as breakCyclesInteractively, Q as assignLayersWithNetworkSimplex, T as assignLayersByLongestPath, U as minimizeCrossingsWithModelOrder, V as minimizeCrossingsWithBarycenter, W as placeNodesInLayers, Y as routeEdgesWithSplines, _ as statechartHints, a as fromElkLayeredOptionId, c as elkLayeredOptionDefinitions, f as assignLayersWithStretchWidth, g as hint, i as layeredAlgorithm, j as breakCyclesByStronglyConnectedNodeType, k as breakCyclesByModelOrder, m as c, o as toElkLayeredOptions, p as assignLayersWithMinWidth, q as routeEdgesOrthogonally, r as getLayeredLayout, s as elkLayeredEnumValues, w as assignLayersByDepthFirstModelOrder } from "./layered-BsAdm_u8.mjs";
3
- import { a as getSporeCompactionLayout, c as sporeOverlapRemovalAlgorithm, d as getRectanglePackingLayout, f as rectanglePackingAlgorithm, g as getFixedLayout, h as fixedAlgorithm, i as getBuiltInLayoutAlgorithm, l as getRandomLayout, m as getBoxLayout, o as getSporeOverlapRemovalLayout, p as boxAlgorithm, r as executeLayoutAlgorithm, s as sporeCompactionAlgorithm, t as builtInLayoutAlgorithms, u as randomAlgorithm } from "./layout-engine-DnlmGxHL.mjs";
1
+ import { C as getPathLength, D as roundCorners, E as pathFromPoints, O as segmentCrossesRect, P as routingPolicies, R as LayoutError, S as getPathBounds, T as getTangentAtLength, _ as pathFromSplinePoints, a as fanRouting, b as routeToPolylines, c as orthogonalRouting, d as routingStrategies, f as selfLoopRouting, g as getLayoutRoutes, h as trimBezierPathStart, i as curvedRouting, k as toSvgPath, l as parallelRouting, m as applyRoutePatches, n as bundleRouting, o as octilinearRouting, p as straightRouting, r as busRouting, s as organicRouting, t as bezierRouting, u as polylineRouting, v as routeToGraphPatch, w as getPointAtLength, x as flattenPath, y as routeToPoints, z as UnsupportedLayoutError } from "./routing-D-LfMXOF.mjs";
2
+ import { A as breakCyclesByStronglyConnectedConnectivity, B as minimizeCrossingsInteractively, C as assignLayersByBreadthFirstModelOrder, D as assignLayersInteractively, E as assignLayersByLongestPathToSink, F as breakCyclesWithDepthFirstSearch, G as placeNodesInteractively, H as minimizeCrossingsWithMedian, I as breakCyclesWithModelOrderBreadthFirstSearch, J as routeEdgesWithPolylines, L as breakCyclesWithModelOrderDepthFirstSearch, M as breakCyclesGreedily, N as breakCyclesGreedilyByModelOrder, O as assignLayersWithCoffmanGraham, P as breakCyclesInteractively, Q as assignLayersWithNetworkSimplex, T as assignLayersByLongestPath, U as minimizeCrossingsWithModelOrder, V as minimizeCrossingsWithBarycenter, W as placeNodesInLayers, Y as routeEdgesWithSplines, _ as statechartHints, a as fromElkLayeredOptionId, c as elkLayeredOptionDefinitions, f as assignLayersWithStretchWidth, g as hint, i as layeredAlgorithm, j as breakCyclesByStronglyConnectedNodeType, k as breakCyclesByModelOrder, m as c, o as toElkLayeredOptions, p as assignLayersWithMinWidth, q as routeEdgesOrthogonally, r as getLayeredLayout, s as elkLayeredEnumValues, w as assignLayersByDepthFirstModelOrder } from "./layered-CmL7oynw.mjs";
3
+ import { a as getSporeCompactionLayout, c as sporeOverlapRemovalAlgorithm, d as getRectanglePackingLayout, f as rectanglePackingAlgorithm, g as getFixedLayout, h as fixedAlgorithm, i as getBuiltInLayoutAlgorithm, l as getRandomLayout, m as getBoxLayout, o as getSporeOverlapRemovalLayout, p as boxAlgorithm, r as executeLayoutAlgorithm, s as sporeCompactionAlgorithm, t as builtInLayoutAlgorithms, u as randomAlgorithm } from "./layout-engine-BXoIpYL4.mjs";
4
4
  import { getGraphIssues } from "@statelyai/graph";
5
5
 
6
6
  //#region src/layout.ts
@@ -136,4 +136,4 @@ async function getLayout(request) {
136
136
  }
137
137
 
138
138
  //#endregion
139
- export { LayoutError, UnsupportedLayoutError, applyRoutePatches, assignLayersByBreadthFirstModelOrder, assignLayersByDepthFirstModelOrder, assignLayersByLongestPath, assignLayersByLongestPathToSink, assignLayersInteractively, assignLayersWithCoffmanGraham, assignLayersWithMinWidth, assignLayersWithNetworkSimplex, assignLayersWithStretchWidth, bezierRouting, boxAlgorithm, breakCyclesByModelOrder, breakCyclesByStronglyConnectedConnectivity, breakCyclesByStronglyConnectedNodeType, breakCyclesGreedily, breakCyclesGreedilyByModelOrder, breakCyclesInteractively, breakCyclesWithDepthFirstSearch, breakCyclesWithModelOrderBreadthFirstSearch, breakCyclesWithModelOrderDepthFirstSearch, bundleRouting, busRouting, c, curvedRouting, elkLayeredEnumValues, elkLayeredOptionDefinitions, fanRouting, fixedAlgorithm, flattenPath, fromElkLayeredOptionId, getBoxLayout, getFixedLayout, getLayeredLayout, getLayout, getLayoutAlgorithm, getLayoutRoutes, getPathBounds, getPathLength, getPointAtLength, getRandomLayout, getRectanglePackingLayout, getSporeCompactionLayout, getSporeOverlapRemovalLayout, getTangentAtLength, hint, layeredAlgorithm, minimizeCrossingsInteractively, minimizeCrossingsWithBarycenter, minimizeCrossingsWithMedian, minimizeCrossingsWithModelOrder, octilinearRouting, organicRouting, orthogonalRouting, parallelRouting, pathFromPoints, pathFromSplinePoints, placeNodesInLayers, placeNodesInteractively, polylineRouting, randomAlgorithm, rectanglePackingAlgorithm, registerLayoutAlgorithm, roundCorners, routeEdgesOrthogonally, routeEdgesWithPolylines, routeEdgesWithSplines, routeToGraphPatch, routeToPoints, routeToPolylines, routingStrategies, selfLoopRouting, sporeCompactionAlgorithm, sporeOverlapRemovalAlgorithm, statechartHints, straightRouting, toElkLayeredOptions, toSvgPath };
139
+ export { LayoutError, UnsupportedLayoutError, applyRoutePatches, assignLayersByBreadthFirstModelOrder, assignLayersByDepthFirstModelOrder, assignLayersByLongestPath, assignLayersByLongestPathToSink, assignLayersInteractively, assignLayersWithCoffmanGraham, assignLayersWithMinWidth, assignLayersWithNetworkSimplex, assignLayersWithStretchWidth, bezierRouting, boxAlgorithm, breakCyclesByModelOrder, breakCyclesByStronglyConnectedConnectivity, breakCyclesByStronglyConnectedNodeType, breakCyclesGreedily, breakCyclesGreedilyByModelOrder, breakCyclesInteractively, breakCyclesWithDepthFirstSearch, breakCyclesWithModelOrderBreadthFirstSearch, breakCyclesWithModelOrderDepthFirstSearch, bundleRouting, busRouting, c, curvedRouting, elkLayeredEnumValues, elkLayeredOptionDefinitions, fanRouting, fixedAlgorithm, flattenPath, fromElkLayeredOptionId, getBoxLayout, getFixedLayout, getLayeredLayout, getLayout, getLayoutAlgorithm, getLayoutRoutes, getPathBounds, getPathLength, getPointAtLength, getRandomLayout, getRectanglePackingLayout, getSporeCompactionLayout, getSporeOverlapRemovalLayout, getTangentAtLength, hint, layeredAlgorithm, minimizeCrossingsInteractively, minimizeCrossingsWithBarycenter, minimizeCrossingsWithMedian, minimizeCrossingsWithModelOrder, octilinearRouting, organicRouting, orthogonalRouting, parallelRouting, pathFromPoints, pathFromSplinePoints, placeNodesInLayers, placeNodesInteractively, polylineRouting, randomAlgorithm, rectanglePackingAlgorithm, registerLayoutAlgorithm, roundCorners, routeEdgesOrthogonally, routeEdgesWithPolylines, routeEdgesWithSplines, routeToGraphPatch, routeToPoints, routeToPolylines, routingPolicies, routingStrategies, segmentCrossesRect, selfLoopRouting, sporeCompactionAlgorithm, sporeOverlapRemovalAlgorithm, statechartHints, straightRouting, toElkLayeredOptions, toSvgPath, trimBezierPathStart };
@@ -1,4 +1,4 @@
1
- const require_layered = require('../layered-BJu8A21s.cjs');
1
+ const require_layered = require('../layered-SB2mlAqt.cjs');
2
2
 
3
3
  exports.assignLayersByBreadthFirstModelOrder = require_layered.assignLayersByBreadthFirstModelOrder;
4
4
  exports.assignLayersByDepthFirstModelOrder = require_layered.assignLayersByDepthFirstModelOrder;
@@ -1,3 +1,3 @@
1
- import "../types-uxPlGRof.cjs";
2
- import { $ as NodePlacement, A as minimizeCrossingsWithModelOrder, B as CompoundLayoutOptions, C as breakCyclesInteractively, D as minimizeCrossingsInteractively, E as breakCyclesWithModelOrderDepthFirstSearch, F as routeEdgesWithSplines, G as LayerAssigner, H as CycleBreaker, I as CompoundVisualGraph, J as LayeredLayoutOptions, K as LayerAssignment, L as AcyclicOrientation, M as placeNodesInteractively, N as routeEdgesOrthogonally, O as minimizeCrossingsWithBarycenter, P as routeEdgesWithPolylines, Q as LayoutPadding, R as CompoundEdgeAttachment, S as breakCyclesGreedilyByModelOrder, T as breakCyclesWithModelOrderBreadthFirstSearch, U as EdgeRouter, V as CrossingMinimizer, W as EdgeRoutes, X as LayeredSpacing, Y as LayeredPhaseInput, Z as LayeredStrategies, _ as assignLayersWithCoffmanGraham, a as layeredAlgorithm, at as LayeredAdvancedOptions, b as breakCyclesByStronglyConnectedNodeType, c as placeNodesWithBrandesKoepf, ct as fromElkLayeredOptionId, d as assignLayersWithNetworkSimplex, dt as ElkLayeredOptionId, et as NodePlacer, f as assignLayersByBreadthFirstModelOrder, ft as ElkLayeredOptionName, g as assignLayersInteractively, h as assignLayersByLongestPathToSink, i as getLayeredLayout, it as EdgeRoutingStyle, j as placeNodesInLayers, k as minimizeCrossingsWithMedian, l as assignLayersWithStretchWidth, lt as toElkLayeredOptions, m as assignLayersByLongestPath, mt as elkLayeredOptionDefinitions, n as createLayeredScopePipeline, nt as CrossingMinimizationStrategy, o as placeNodesWithNetworkSimplex, ot as LayeringStrategy, p as assignLayersByDepthFirstModelOrder, pt as ElkLayeredOptionValueByName, q as LayerOrder, r as elkjs0111LayeredAlgorithm, rt as CycleBreakingStrategy, s as placeNodesWithLinearSegments, st as NodePlacementStrategy, t as LayeredCrossingPhase, tt as NodeSize, u as assignLayersWithMinWidth, ut as elkLayeredEnumValues, v as breakCyclesByModelOrder, w as breakCyclesWithDepthFirstSearch, x as breakCyclesGreedily, y as breakCyclesByStronglyConnectedConnectivity, z as CompoundLayoutGeometry } from "../index-DT6lPMfS.cjs";
1
+ import "../types-D8pYSn8I.cjs";
2
+ import { $ as NodePlacement, A as minimizeCrossingsWithModelOrder, B as CompoundLayoutOptions, C as breakCyclesInteractively, D as minimizeCrossingsInteractively, E as breakCyclesWithModelOrderDepthFirstSearch, F as routeEdgesWithSplines, G as LayerAssigner, H as CycleBreaker, I as CompoundVisualGraph, J as LayeredLayoutOptions, K as LayerAssignment, L as AcyclicOrientation, M as placeNodesInteractively, N as routeEdgesOrthogonally, O as minimizeCrossingsWithBarycenter, P as routeEdgesWithPolylines, Q as LayoutPadding, R as CompoundEdgeAttachment, S as breakCyclesGreedilyByModelOrder, T as breakCyclesWithModelOrderBreadthFirstSearch, U as EdgeRouter, V as CrossingMinimizer, W as EdgeRoutes, X as LayeredSpacing, Y as LayeredPhaseInput, Z as LayeredStrategies, _ as assignLayersWithCoffmanGraham, a as layeredAlgorithm, at as LayeredAdvancedOptions, b as breakCyclesByStronglyConnectedNodeType, c as placeNodesWithBrandesKoepf, ct as fromElkLayeredOptionId, d as assignLayersWithNetworkSimplex, dt as ElkLayeredOptionId, et as NodePlacer, f as assignLayersByBreadthFirstModelOrder, ft as ElkLayeredOptionName, g as assignLayersInteractively, h as assignLayersByLongestPathToSink, i as getLayeredLayout, it as EdgeRoutingStyle, j as placeNodesInLayers, k as minimizeCrossingsWithMedian, l as assignLayersWithStretchWidth, lt as toElkLayeredOptions, m as assignLayersByLongestPath, mt as elkLayeredOptionDefinitions, n as createLayeredScopePipeline, nt as CrossingMinimizationStrategy, o as placeNodesWithNetworkSimplex, ot as LayeringStrategy, p as assignLayersByDepthFirstModelOrder, pt as ElkLayeredOptionValueByName, q as LayerOrder, r as elkjs0111LayeredAlgorithm, rt as CycleBreakingStrategy, s as placeNodesWithLinearSegments, st as NodePlacementStrategy, t as LayeredCrossingPhase, tt as NodeSize, u as assignLayersWithMinWidth, ut as elkLayeredEnumValues, v as breakCyclesByModelOrder, w as breakCyclesWithDepthFirstSearch, x as breakCyclesGreedily, y as breakCyclesByStronglyConnectedConnectivity, z as CompoundLayoutGeometry } from "../index-Xc4R6y3z.cjs";
3
3
  export { AcyclicOrientation, CompoundEdgeAttachment, CompoundLayoutGeometry, CompoundLayoutOptions, CompoundVisualGraph, CrossingMinimizationStrategy, CrossingMinimizer, CycleBreaker, CycleBreakingStrategy, EdgeRouter, EdgeRoutes, EdgeRoutingStyle, ElkLayeredOptionId, ElkLayeredOptionName, ElkLayeredOptionValueByName, LayerAssigner, LayerAssignment, LayerOrder, LayeredAdvancedOptions, LayeredCrossingPhase, LayeredLayoutOptions, LayeredPhaseInput, LayeredSpacing, LayeredStrategies, LayeringStrategy, LayoutPadding, NodePlacement, NodePlacementStrategy, NodePlacer, NodeSize, assignLayersByBreadthFirstModelOrder, assignLayersByDepthFirstModelOrder, assignLayersByLongestPath, assignLayersByLongestPathToSink, assignLayersInteractively, assignLayersWithCoffmanGraham, assignLayersWithMinWidth, assignLayersWithNetworkSimplex, assignLayersWithStretchWidth, breakCyclesByModelOrder, breakCyclesByStronglyConnectedConnectivity, breakCyclesByStronglyConnectedNodeType, breakCyclesGreedily, breakCyclesGreedilyByModelOrder, breakCyclesInteractively, breakCyclesWithDepthFirstSearch, breakCyclesWithModelOrderBreadthFirstSearch, breakCyclesWithModelOrderDepthFirstSearch, createLayeredScopePipeline, elkLayeredEnumValues, elkLayeredOptionDefinitions, elkjs0111LayeredAlgorithm, fromElkLayeredOptionId, getLayeredLayout, layeredAlgorithm, minimizeCrossingsInteractively, minimizeCrossingsWithBarycenter, minimizeCrossingsWithMedian, minimizeCrossingsWithModelOrder, placeNodesInLayers, placeNodesInteractively, placeNodesWithBrandesKoepf, placeNodesWithLinearSegments, placeNodesWithNetworkSimplex, routeEdgesOrthogonally, routeEdgesWithPolylines, routeEdgesWithSplines, toElkLayeredOptions };
@@ -1,3 +1,3 @@
1
- import "../types-CT2akdK0.mjs";
2
- import { $ as NodePlacement, A as minimizeCrossingsWithModelOrder, B as CompoundLayoutOptions, C as breakCyclesInteractively, D as minimizeCrossingsInteractively, E as breakCyclesWithModelOrderDepthFirstSearch, F as routeEdgesWithSplines, G as LayerAssigner, H as CycleBreaker, I as CompoundVisualGraph, J as LayeredLayoutOptions, K as LayerAssignment, L as AcyclicOrientation, M as placeNodesInteractively, N as routeEdgesOrthogonally, O as minimizeCrossingsWithBarycenter, P as routeEdgesWithPolylines, Q as LayoutPadding, R as CompoundEdgeAttachment, S as breakCyclesGreedilyByModelOrder, T as breakCyclesWithModelOrderBreadthFirstSearch, U as EdgeRouter, V as CrossingMinimizer, W as EdgeRoutes, X as LayeredSpacing, Y as LayeredPhaseInput, Z as LayeredStrategies, _ as assignLayersWithCoffmanGraham, a as layeredAlgorithm, at as LayeredAdvancedOptions, b as breakCyclesByStronglyConnectedNodeType, c as placeNodesWithBrandesKoepf, ct as fromElkLayeredOptionId, d as assignLayersWithNetworkSimplex, dt as ElkLayeredOptionId, et as NodePlacer, f as assignLayersByBreadthFirstModelOrder, ft as ElkLayeredOptionName, g as assignLayersInteractively, h as assignLayersByLongestPathToSink, i as getLayeredLayout, it as EdgeRoutingStyle, j as placeNodesInLayers, k as minimizeCrossingsWithMedian, l as assignLayersWithStretchWidth, lt as toElkLayeredOptions, m as assignLayersByLongestPath, mt as elkLayeredOptionDefinitions, n as createLayeredScopePipeline, nt as CrossingMinimizationStrategy, o as placeNodesWithNetworkSimplex, ot as LayeringStrategy, p as assignLayersByDepthFirstModelOrder, pt as ElkLayeredOptionValueByName, q as LayerOrder, r as elkjs0111LayeredAlgorithm, rt as CycleBreakingStrategy, s as placeNodesWithLinearSegments, st as NodePlacementStrategy, t as LayeredCrossingPhase, tt as NodeSize, u as assignLayersWithMinWidth, ut as elkLayeredEnumValues, v as breakCyclesByModelOrder, w as breakCyclesWithDepthFirstSearch, x as breakCyclesGreedily, y as breakCyclesByStronglyConnectedConnectivity, z as CompoundLayoutGeometry } from "../index-F1U-fCTu.mjs";
1
+ import "../types-MAUtJfKQ.mjs";
2
+ import { $ as NodePlacement, A as minimizeCrossingsWithModelOrder, B as CompoundLayoutOptions, C as breakCyclesInteractively, D as minimizeCrossingsInteractively, E as breakCyclesWithModelOrderDepthFirstSearch, F as routeEdgesWithSplines, G as LayerAssigner, H as CycleBreaker, I as CompoundVisualGraph, J as LayeredLayoutOptions, K as LayerAssignment, L as AcyclicOrientation, M as placeNodesInteractively, N as routeEdgesOrthogonally, O as minimizeCrossingsWithBarycenter, P as routeEdgesWithPolylines, Q as LayoutPadding, R as CompoundEdgeAttachment, S as breakCyclesGreedilyByModelOrder, T as breakCyclesWithModelOrderBreadthFirstSearch, U as EdgeRouter, V as CrossingMinimizer, W as EdgeRoutes, X as LayeredSpacing, Y as LayeredPhaseInput, Z as LayeredStrategies, _ as assignLayersWithCoffmanGraham, a as layeredAlgorithm, at as LayeredAdvancedOptions, b as breakCyclesByStronglyConnectedNodeType, c as placeNodesWithBrandesKoepf, ct as fromElkLayeredOptionId, d as assignLayersWithNetworkSimplex, dt as ElkLayeredOptionId, et as NodePlacer, f as assignLayersByBreadthFirstModelOrder, ft as ElkLayeredOptionName, g as assignLayersInteractively, h as assignLayersByLongestPathToSink, i as getLayeredLayout, it as EdgeRoutingStyle, j as placeNodesInLayers, k as minimizeCrossingsWithMedian, l as assignLayersWithStretchWidth, lt as toElkLayeredOptions, m as assignLayersByLongestPath, mt as elkLayeredOptionDefinitions, n as createLayeredScopePipeline, nt as CrossingMinimizationStrategy, o as placeNodesWithNetworkSimplex, ot as LayeringStrategy, p as assignLayersByDepthFirstModelOrder, pt as ElkLayeredOptionValueByName, q as LayerOrder, r as elkjs0111LayeredAlgorithm, rt as CycleBreakingStrategy, s as placeNodesWithLinearSegments, st as NodePlacementStrategy, t as LayeredCrossingPhase, tt as NodeSize, u as assignLayersWithMinWidth, ut as elkLayeredEnumValues, v as breakCyclesByModelOrder, w as breakCyclesWithDepthFirstSearch, x as breakCyclesGreedily, y as breakCyclesByStronglyConnectedConnectivity, z as CompoundLayoutGeometry } from "../index-lSp0oCJC.mjs";
3
3
  export { AcyclicOrientation, CompoundEdgeAttachment, CompoundLayoutGeometry, CompoundLayoutOptions, CompoundVisualGraph, CrossingMinimizationStrategy, CrossingMinimizer, CycleBreaker, CycleBreakingStrategy, EdgeRouter, EdgeRoutes, EdgeRoutingStyle, ElkLayeredOptionId, ElkLayeredOptionName, ElkLayeredOptionValueByName, LayerAssigner, LayerAssignment, LayerOrder, LayeredAdvancedOptions, LayeredCrossingPhase, LayeredLayoutOptions, LayeredPhaseInput, LayeredSpacing, LayeredStrategies, LayeringStrategy, LayoutPadding, NodePlacement, NodePlacementStrategy, NodePlacer, NodeSize, assignLayersByBreadthFirstModelOrder, assignLayersByDepthFirstModelOrder, assignLayersByLongestPath, assignLayersByLongestPathToSink, assignLayersInteractively, assignLayersWithCoffmanGraham, assignLayersWithMinWidth, assignLayersWithNetworkSimplex, assignLayersWithStretchWidth, breakCyclesByModelOrder, breakCyclesByStronglyConnectedConnectivity, breakCyclesByStronglyConnectedNodeType, breakCyclesGreedily, breakCyclesGreedilyByModelOrder, breakCyclesInteractively, breakCyclesWithDepthFirstSearch, breakCyclesWithModelOrderBreadthFirstSearch, breakCyclesWithModelOrderDepthFirstSearch, createLayeredScopePipeline, elkLayeredEnumValues, elkLayeredOptionDefinitions, elkjs0111LayeredAlgorithm, fromElkLayeredOptionId, getLayeredLayout, layeredAlgorithm, minimizeCrossingsInteractively, minimizeCrossingsWithBarycenter, minimizeCrossingsWithMedian, minimizeCrossingsWithModelOrder, placeNodesInLayers, placeNodesInteractively, placeNodesWithBrandesKoepf, placeNodesWithLinearSegments, placeNodesWithNetworkSimplex, routeEdgesOrthogonally, routeEdgesWithPolylines, routeEdgesWithSplines, toElkLayeredOptions };
@@ -1,3 +1,3 @@
1
- import { A as breakCyclesByStronglyConnectedConnectivity, B as minimizeCrossingsInteractively, C as assignLayersByBreadthFirstModelOrder, D as assignLayersInteractively, E as assignLayersByLongestPathToSink, F as breakCyclesWithDepthFirstSearch, G as placeNodesInteractively, H as minimizeCrossingsWithMedian, I as breakCyclesWithModelOrderBreadthFirstSearch, J as routeEdgesWithPolylines, L as breakCyclesWithModelOrderDepthFirstSearch, M as breakCyclesGreedily, N as breakCyclesGreedilyByModelOrder, O as assignLayersWithCoffmanGraham, P as breakCyclesInteractively, Q as assignLayersWithNetworkSimplex, T as assignLayersByLongestPath, U as minimizeCrossingsWithModelOrder, V as minimizeCrossingsWithBarycenter, W as placeNodesInLayers, Y as routeEdgesWithSplines, a as fromElkLayeredOptionId, c as elkLayeredOptionDefinitions, d as placeNodesWithBrandesKoepf, f as assignLayersWithStretchWidth, i as layeredAlgorithm, j as breakCyclesByStronglyConnectedNodeType, k as breakCyclesByModelOrder, l as placeNodesWithNetworkSimplex, n as elkjs0111LayeredAlgorithm, o as toElkLayeredOptions, p as assignLayersWithMinWidth, q as routeEdgesOrthogonally, r as getLayeredLayout, s as elkLayeredEnumValues, t as createLayeredScopePipeline, u as placeNodesWithLinearSegments, w as assignLayersByDepthFirstModelOrder } from "../layered-BsAdm_u8.mjs";
1
+ import { A as breakCyclesByStronglyConnectedConnectivity, B as minimizeCrossingsInteractively, C as assignLayersByBreadthFirstModelOrder, D as assignLayersInteractively, E as assignLayersByLongestPathToSink, F as breakCyclesWithDepthFirstSearch, G as placeNodesInteractively, H as minimizeCrossingsWithMedian, I as breakCyclesWithModelOrderBreadthFirstSearch, J as routeEdgesWithPolylines, L as breakCyclesWithModelOrderDepthFirstSearch, M as breakCyclesGreedily, N as breakCyclesGreedilyByModelOrder, O as assignLayersWithCoffmanGraham, P as breakCyclesInteractively, Q as assignLayersWithNetworkSimplex, T as assignLayersByLongestPath, U as minimizeCrossingsWithModelOrder, V as minimizeCrossingsWithBarycenter, W as placeNodesInLayers, Y as routeEdgesWithSplines, a as fromElkLayeredOptionId, c as elkLayeredOptionDefinitions, d as placeNodesWithBrandesKoepf, f as assignLayersWithStretchWidth, i as layeredAlgorithm, j as breakCyclesByStronglyConnectedNodeType, k as breakCyclesByModelOrder, l as placeNodesWithNetworkSimplex, n as elkjs0111LayeredAlgorithm, o as toElkLayeredOptions, p as assignLayersWithMinWidth, q as routeEdgesOrthogonally, r as getLayeredLayout, s as elkLayeredEnumValues, t as createLayeredScopePipeline, u as placeNodesWithLinearSegments, w as assignLayersByDepthFirstModelOrder } from "../layered-CmL7oynw.mjs";
2
2
 
3
3
  export { assignLayersByBreadthFirstModelOrder, assignLayersByDepthFirstModelOrder, assignLayersByLongestPath, assignLayersByLongestPathToSink, assignLayersInteractively, assignLayersWithCoffmanGraham, assignLayersWithMinWidth, assignLayersWithNetworkSimplex, assignLayersWithStretchWidth, breakCyclesByModelOrder, breakCyclesByStronglyConnectedConnectivity, breakCyclesByStronglyConnectedNodeType, breakCyclesGreedily, breakCyclesGreedilyByModelOrder, breakCyclesInteractively, breakCyclesWithDepthFirstSearch, breakCyclesWithModelOrderBreadthFirstSearch, breakCyclesWithModelOrderDepthFirstSearch, createLayeredScopePipeline, elkLayeredEnumValues, elkLayeredOptionDefinitions, elkjs0111LayeredAlgorithm, fromElkLayeredOptionId, getLayeredLayout, layeredAlgorithm, minimizeCrossingsInteractively, minimizeCrossingsWithBarycenter, minimizeCrossingsWithMedian, minimizeCrossingsWithModelOrder, placeNodesInLayers, placeNodesInteractively, placeNodesWithBrandesKoepf, placeNodesWithLinearSegments, placeNodesWithNetworkSimplex, routeEdgesOrthogonally, routeEdgesWithPolylines, routeEdgesWithSplines, toElkLayeredOptions };