@coral-viz/viz 0.2.5 → 0.2.7

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 (92) hide show
  1. package/README.md +8 -2
  2. package/dist/compatibility/CompatibilityEdge.d.ts +52 -1
  3. package/dist/compatibility/CompatibilityEdge.d.ts.map +1 -1
  4. package/dist/compatibility/CompatibilityEdge.js +107 -7
  5. package/dist/compatibility/CompatibilityEdge.js.map +1 -1
  6. package/dist/compatibility/EndpointMarkerDefinitions.d.ts +10 -0
  7. package/dist/compatibility/EndpointMarkerDefinitions.d.ts.map +1 -0
  8. package/dist/compatibility/EndpointMarkerDefinitions.js +25 -0
  9. package/dist/compatibility/EndpointMarkerDefinitions.js.map +1 -0
  10. package/dist/compatibility/effectivePorts.d.ts +17 -0
  11. package/dist/compatibility/effectivePorts.d.ts.map +1 -0
  12. package/dist/compatibility/effectivePorts.js +31 -0
  13. package/dist/compatibility/effectivePorts.js.map +1 -0
  14. package/dist/compatibility/index.d.ts +2 -1
  15. package/dist/compatibility/index.d.ts.map +1 -1
  16. package/dist/compatibility/index.js +2 -1
  17. package/dist/compatibility/index.js.map +1 -1
  18. package/dist/compatibility/useEdgeCompatibility.d.ts.map +1 -1
  19. package/dist/compatibility/useEdgeCompatibility.js +10 -2
  20. package/dist/compatibility/useEdgeCompatibility.js.map +1 -1
  21. package/dist/compatibility/validateConnection.d.ts.map +1 -1
  22. package/dist/compatibility/validateConnection.js +25 -37
  23. package/dist/compatibility/validateConnection.js.map +1 -1
  24. package/dist/components/SequenceDiagram.d.ts +26 -0
  25. package/dist/components/SequenceDiagram.d.ts.map +1 -0
  26. package/dist/components/SequenceDiagram.js +68 -0
  27. package/dist/components/SequenceDiagram.js.map +1 -0
  28. package/dist/components/ShapeRenderer.d.ts +3 -1
  29. package/dist/components/ShapeRenderer.d.ts.map +1 -1
  30. package/dist/components/ShapeRenderer.js +12 -32
  31. package/dist/components/ShapeRenderer.js.map +1 -1
  32. package/dist/components/SymbolNode.d.ts +3 -0
  33. package/dist/components/SymbolNode.d.ts.map +1 -1
  34. package/dist/components/SymbolNode.js +52 -87
  35. package/dist/components/SymbolNode.js.map +1 -1
  36. package/dist/components/index.d.ts +1 -0
  37. package/dist/components/index.d.ts.map +1 -1
  38. package/dist/components/index.js +1 -0
  39. package/dist/components/index.js.map +1 -1
  40. package/dist/editor/CoralEditor.d.ts +1 -1
  41. package/dist/editor/CoralEditor.d.ts.map +1 -1
  42. package/dist/editor/CoralEditor.js +13 -4
  43. package/dist/editor/CoralEditor.js.map +1 -1
  44. package/dist/editor/FileControls.d.ts +16 -1
  45. package/dist/editor/FileControls.d.ts.map +1 -1
  46. package/dist/editor/FileControls.js +21 -6
  47. package/dist/editor/FileControls.js.map +1 -1
  48. package/dist/editor/converter.d.ts +7 -2
  49. package/dist/editor/converter.d.ts.map +1 -1
  50. package/dist/editor/converter.js +16 -17
  51. package/dist/editor/converter.js.map +1 -1
  52. package/dist/file/deserialize.d.ts +2 -1
  53. package/dist/file/deserialize.d.ts.map +1 -1
  54. package/dist/file/deserialize.js +2 -2
  55. package/dist/file/deserialize.js.map +1 -1
  56. package/dist/file/index.d.ts +2 -1
  57. package/dist/file/index.d.ts.map +1 -1
  58. package/dist/file/index.js +2 -1
  59. package/dist/file/index.js.map +1 -1
  60. package/dist/file/migrate.d.ts +18 -1
  61. package/dist/file/migrate.d.ts.map +1 -1
  62. package/dist/file/migrate.js +105 -16
  63. package/dist/file/migrate.js.map +1 -1
  64. package/dist/file/portMaterialization.d.ts +19 -0
  65. package/dist/file/portMaterialization.d.ts.map +1 -0
  66. package/dist/file/portMaterialization.js +105 -0
  67. package/dist/file/portMaterialization.js.map +1 -0
  68. package/dist/file/serialize.d.ts.map +1 -1
  69. package/dist/file/serialize.js +6 -2
  70. package/dist/file/serialize.js.map +1 -1
  71. package/dist/index.d.ts +5 -5
  72. package/dist/index.d.ts.map +1 -1
  73. package/dist/index.js +5 -5
  74. package/dist/index.js.map +1 -1
  75. package/dist/layout/elk.d.ts +8 -0
  76. package/dist/layout/elk.d.ts.map +1 -1
  77. package/dist/layout/elk.js +8 -1
  78. package/dist/layout/elk.js.map +1 -1
  79. package/dist/properties/NodePropertiesPanel.d.ts +1 -1
  80. package/dist/properties/NodePropertiesPanel.d.ts.map +1 -1
  81. package/dist/properties/NodePropertiesPanel.js +154 -3
  82. package/dist/properties/NodePropertiesPanel.js.map +1 -1
  83. package/dist/text-editor/TextEditor.d.ts +11 -0
  84. package/dist/text-editor/TextEditor.d.ts.map +1 -1
  85. package/dist/text-editor/TextEditor.js +45 -21
  86. package/dist/text-editor/TextEditor.js.map +1 -1
  87. package/dist/text-editor/hooks/useBidirectionalSync.d.ts +3 -2
  88. package/dist/text-editor/hooks/useBidirectionalSync.d.ts.map +1 -1
  89. package/dist/text-editor/hooks/useBidirectionalSync.js.map +1 -1
  90. package/dist/types.d.ts +30 -0
  91. package/dist/types.d.ts.map +1 -1
  92. package/package.json +8 -7
@@ -4,6 +4,22 @@
4
4
  * Handles schema version upgrades for backward compatibility.
5
5
  */
6
6
  import type { CoralDocument } from './schema.js';
7
+ import { type GraphIR2To3MigrationChange, type GraphIR2To3MigrationLoss, type MigrationDiagnostic } from '@graph-ir/core';
8
+ import { type PortResolver } from './portMaterialization.js';
9
+ export interface DocumentGraphIRMigrationEvidence {
10
+ fromVersion: string;
11
+ toVersion: '3.0.0';
12
+ changes: GraphIR2To3MigrationChange[];
13
+ losses: GraphIR2To3MigrationLoss[];
14
+ diagnostics: MigrationDiagnostic[];
15
+ }
16
+ export interface DocumentMigrationOptions {
17
+ resolvePorts?: PortResolver;
18
+ }
19
+ export interface DocumentMigrationResult {
20
+ document: CoralDocument;
21
+ graphIR?: DocumentGraphIRMigrationEvidence;
22
+ }
7
23
  /**
8
24
  * Migrate a document to the current schema version
9
25
  *
@@ -11,7 +27,8 @@ import type { CoralDocument } from './schema.js';
11
27
  * @returns Migrated document at current version
12
28
  * @throws Error if document has unknown schema version
13
29
  */
14
- export declare function migrateDocument(doc: CoralDocument): CoralDocument;
30
+ export declare function migrateDocument(doc: CoralDocument, options?: DocumentMigrationOptions): CoralDocument;
31
+ export declare function migrateDocumentWithDiagnostics(doc: CoralDocument, options?: DocumentMigrationOptions): DocumentMigrationResult;
15
32
  /**
16
33
  * Check if a document needs migration
17
34
  *
@@ -1 +1 @@
1
- {"version":3,"file":"migrate.d.ts","sourceRoot":"","sources":["../../src/file/migrate.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAyEjD;;;;;;GAMG;AACH,wBAAgB,eAAe,CAAC,GAAG,EAAE,aAAa,GAAG,aAAa,CAkCjE;AAED;;;;;GAKG;AACH,wBAAgB,cAAc,CAAC,GAAG,EAAE,aAAa,GAAG,OAAO,CAE1D;AAED;;;;;GAKG;AACH,wBAAgB,iBAAiB,CAAC,GAAG,EAAE,aAAa,GAAG,MAAM,EAAE,CAE9D"}
1
+ {"version":3,"file":"migrate.d.ts","sourceRoot":"","sources":["../../src/file/migrate.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAGjD,OAAO,EAIL,KAAK,0BAA0B,EAC/B,KAAK,wBAAwB,EAC7B,KAAK,mBAAmB,EACzB,MAAM,gBAAgB,CAAC;AACxB,OAAO,EAGL,KAAK,YAAY,EAClB,MAAM,0BAA0B,CAAC;AAElC,MAAM,WAAW,gCAAgC;IAC/C,WAAW,EAAE,MAAM,CAAC;IACpB,SAAS,EAAE,OAAO,CAAC;IACnB,OAAO,EAAE,0BAA0B,EAAE,CAAC;IACtC,MAAM,EAAE,wBAAwB,EAAE,CAAC;IACnC,WAAW,EAAE,mBAAmB,EAAE,CAAC;CACpC;AAED,MAAM,WAAW,wBAAwB;IACvC,YAAY,CAAC,EAAE,YAAY,CAAC;CAC7B;AAED,MAAM,WAAW,uBAAuB;IACtC,QAAQ,EAAE,aAAa,CAAC;IACxB,OAAO,CAAC,EAAE,gCAAgC,CAAC;CAC5C;AAiJD;;;;;;GAMG;AACH,wBAAgB,eAAe,CAAC,GAAG,EAAE,aAAa,EAAE,OAAO,GAAE,wBAA6B,GAAG,aAAa,CAEzG;AAED,wBAAgB,8BAA8B,CAC5C,GAAG,EAAE,aAAa,EAClB,OAAO,GAAE,wBAA6B,GACrC,uBAAuB,CAkCzB;AAED;;;;;GAKG;AACH,wBAAgB,cAAc,CAAC,GAAG,EAAE,aAAa,GAAG,OAAO,CAI1D;AAED;;;;;GAKG;AACH,wBAAgB,iBAAiB,CAAC,GAAG,EAAE,aAAa,GAAG,MAAM,EAAE,CAS9D"}
@@ -4,17 +4,92 @@
4
4
  * Handles schema version upgrades for backward compatibility.
5
5
  */
6
6
  import { CURRENT_SCHEMA_VERSION, SUPPORTED_SCHEMA_VERSIONS } from './schema.js';
7
- import { migrateIR } from '@graph-ir/core';
8
- function migrateGraphIR(doc) {
9
- const graph = doc.content.graphIR;
10
- if (!graph || (graph.version !== '1.0' && graph.version !== '1.0.0'))
11
- return doc;
12
- const result = migrateIR(graph);
13
- if (!result.success || !result.migrated) {
14
- const detail = [...result.errors, ...result.losses.map((loss) => `${loss.path}: ${loss.reason}`)].join('; ');
15
- throw new Error(`GraphIR 1.x document requires an explicit ambiguous-geometry migration decision: ${detail}`);
7
+ import { migrateGraphIR2To3, migrateIR, validateIR, } from '@graph-ir/core';
8
+ import { materializeReferencedPorts, stripResolvedPorts, } from './portMaterialization.js';
9
+ /**
10
+ * Move a legacy flat edge `lineStyle` into `style.lineStyle`. Coral 0.2.5 and
11
+ * early 0.2.6 saves spread the editor's flat field into files, although
12
+ * neither GraphIR 2 nor 3 allows it on an edge. An existing `style.lineStyle`
13
+ * wins. The input is never mutated.
14
+ */
15
+ function moveLegacyEdgeLineStyles(graph) {
16
+ const edges = graph.edges;
17
+ if (!Array.isArray(edges))
18
+ return { graph, changes: [] };
19
+ const changes = [];
20
+ const moved = edges.map((edge, index) => {
21
+ if (!edge || typeof edge !== 'object' || !('lineStyle' in edge))
22
+ return edge;
23
+ const { lineStyle, ...rest } = edge;
24
+ const style = (rest.style ?? {});
25
+ changes.push({
26
+ code: 'MOVE_EDGE_LINE_STYLE', path: `/edges/${index}/lineStyle`,
27
+ message: style.lineStyle !== undefined && style.lineStyle !== lineStyle
28
+ ? `Removed legacy flat lineStyle "${String(lineStyle)}"; style.lineStyle "${String(style.lineStyle)}" is kept`
29
+ : 'Moved legacy flat lineStyle into style.lineStyle',
30
+ });
31
+ return lineStyle === undefined && style.lineStyle === undefined
32
+ ? rest
33
+ : { ...rest, style: { ...style, lineStyle: style.lineStyle ?? lineStyle } };
34
+ });
35
+ return changes.length ? { graph: { ...graph, edges: moved }, changes } : { graph, changes };
36
+ }
37
+ function migrateGraphIR(doc, options = {}) {
38
+ const original = doc.content.graphIR;
39
+ if (!original)
40
+ return { document: doc };
41
+ const { graph, changes: legacyChanges } = moveLegacyEdgeLineStyles(original);
42
+ if (graph.version === '3.0.0') {
43
+ const materialized = materializeReferencedPorts(graph, options.resolvePorts);
44
+ const validation = validateIR(materialized.graph);
45
+ if (validation.errors.length > 0) {
46
+ throw new Error(`Invalid GraphIR 3 document: ${validation.errors.map((error) => `${error.code} ${error.path || '/'}: ${error.message}`).join('; ')}`);
47
+ }
48
+ const stripped = stripResolvedPorts(materialized.graph, options.resolvePorts);
49
+ const changes = [...legacyChanges, ...materialized.changes, ...stripped.changes];
50
+ if (changes.length === 0)
51
+ return { document: doc };
52
+ return {
53
+ document: { ...doc, content: { ...doc.content, graphIR: stripped.graph } },
54
+ graphIR: { fromVersion: '3.0.0', toVersion: '3.0.0', changes, losses: [], diagnostics: [] },
55
+ };
56
+ }
57
+ let graph2 = graph;
58
+ const originalVersion = String(graph.version ?? 'unknown');
59
+ if (graph.version === '1.0' || graph.version === '1.0.0') {
60
+ const normalized = graph.version === '1.0'
61
+ ? { ...graph, version: '1.0.0' }
62
+ : graph;
63
+ const first = migrateIR(normalized);
64
+ if (!first.success || !first.migrated) {
65
+ const detail = [...first.errors, ...first.losses.map((loss) => `${loss.path}: ${loss.reason}`)].join('; ');
66
+ throw new Error(`GraphIR 1.x document requires an explicit ambiguous-geometry migration decision: ${detail}`);
67
+ }
68
+ graph2 = first.migrated;
16
69
  }
17
- return { ...doc, content: { ...doc.content, graphIR: result.migrated } };
70
+ else if (graph.version !== '2.0.0') {
71
+ throw new Error(`Unsupported GraphIR document version: ${originalVersion}`);
72
+ }
73
+ const materialized = materializeReferencedPorts(graph2, options.resolvePorts);
74
+ const second = migrateGraphIR2To3(materialized.graph);
75
+ if (!second.success || !second.migrated) {
76
+ const detail = [
77
+ ...second.errors,
78
+ ...second.losses.map((loss) => `${loss.code} ${loss.path || '/'}: ${loss.message}`),
79
+ ].join('; ');
80
+ throw new Error(`GraphIR ${originalVersion} document could not migrate to 3.0.0: ${detail}`);
81
+ }
82
+ const stripped = stripResolvedPorts(second.migrated, options.resolvePorts);
83
+ return {
84
+ document: { ...doc, content: { ...doc.content, graphIR: stripped.graph } },
85
+ graphIR: {
86
+ fromVersion: originalVersion,
87
+ toVersion: '3.0.0',
88
+ changes: [...legacyChanges, ...materialized.changes, ...second.changes, ...stripped.changes],
89
+ losses: second.losses,
90
+ diagnostics: second.diagnostics,
91
+ },
92
+ };
18
93
  }
19
94
  /**
20
95
  * Migration registry: maps "fromVersion→toVersion" to migration function
@@ -67,15 +142,18 @@ function isKnownVersion(version) {
67
142
  * @returns Migrated document at current version
68
143
  * @throws Error if document has unknown schema version
69
144
  */
70
- export function migrateDocument(doc) {
145
+ export function migrateDocument(doc, options = {}) {
146
+ return migrateDocumentWithDiagnostics(doc, options).document;
147
+ }
148
+ export function migrateDocumentWithDiagnostics(doc, options = {}) {
71
149
  const currentVersion = doc.schemaVersion;
72
150
  // Already at current version
73
151
  if (currentVersion === CURRENT_SCHEMA_VERSION) {
74
- return migrateGraphIR(doc);
152
+ return migrateGraphIR(doc, options);
75
153
  }
76
154
  // 1.0 was emitted briefly before semantic-version normalization.
77
155
  if (currentVersion === '1.0') {
78
- return migrateGraphIR({ ...doc, schemaVersion: CURRENT_SCHEMA_VERSION });
156
+ return migrateGraphIR({ ...doc, schemaVersion: CURRENT_SCHEMA_VERSION }, options);
79
157
  }
80
158
  // Check if version is known
81
159
  if (!isKnownVersion(currentVersion)) {
@@ -92,7 +170,7 @@ export function migrateDocument(doc) {
92
170
  result = migrateFn(result);
93
171
  }
94
172
  }
95
- return migrateGraphIR(result);
173
+ return migrateGraphIR(result, options);
96
174
  }
97
175
  /**
98
176
  * Check if a document needs migration
@@ -101,7 +179,10 @@ export function migrateDocument(doc) {
101
179
  * @returns true if document needs migration
102
180
  */
103
181
  export function needsMigration(doc) {
104
- return doc.schemaVersion !== CURRENT_SCHEMA_VERSION;
182
+ if (doc.schemaVersion !== CURRENT_SCHEMA_VERSION)
183
+ return true;
184
+ const graph = doc.content.graphIR;
185
+ return graph !== undefined && graph.version !== '3.0.0';
105
186
  }
106
187
  /**
107
188
  * Get the migration path for a document
@@ -110,6 +191,14 @@ export function needsMigration(doc) {
110
191
  * @returns Array of migration steps, empty if no migration needed
111
192
  */
112
193
  export function getMigrationSteps(doc) {
113
- return getMigrationPath(doc.schemaVersion, CURRENT_SCHEMA_VERSION);
194
+ const path = getMigrationPath(doc.schemaVersion, CURRENT_SCHEMA_VERSION);
195
+ const graph = doc.content.graphIR;
196
+ if (graph?.version === '1.0' || graph?.version === '1.0.0') {
197
+ path.push('GraphIR 1.0.0→2.0.0', 'GraphIR 2.0.0→3.0.0');
198
+ }
199
+ else if (graph?.version === '2.0.0') {
200
+ path.push('GraphIR 2.0.0→3.0.0');
201
+ }
202
+ return path;
114
203
  }
115
204
  //# sourceMappingURL=migrate.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"migrate.js","sourceRoot":"","sources":["../../src/file/migrate.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"migrate.js","sourceRoot":"","sources":["../../src/file/migrate.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,19 @@
1
+ import type { GraphIR, GraphNode } from '../types.js';
2
+ import type { GraphIR2To3MigrationChange } from '@graph-ir/core';
3
+ export type GraphPort = NonNullable<GraphNode['ports']>[number];
4
+ /** Resolve the complete implicit port set supplied for a node by its notation symbol. */
5
+ export type PortResolver = (node: GraphNode, graph: GraphIR) => readonly GraphPort[] | undefined;
6
+ export interface PortMaterializationResult {
7
+ graph: GraphIR;
8
+ changes: GraphIR2To3MigrationChange[];
9
+ }
10
+ /**
11
+ * Make implicit symbol ports portable at validation/persistence boundaries.
12
+ * A node with authored `ports` remains authoritative. When any referenced
13
+ * implicit port resolves, the symbol's complete port set is written so the
14
+ * node keeps every handle when a GraphIR consumer reads it.
15
+ */
16
+ export declare function materializeReferencedPorts(graph: GraphIR, resolvePorts?: PortResolver): PortMaterializationResult;
17
+ /** Remove a persisted symbol-port set from the editor's source projection. */
18
+ export declare function stripResolvedPorts(graph: GraphIR, resolvePorts?: PortResolver): PortMaterializationResult;
19
+ //# sourceMappingURL=portMaterialization.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"portMaterialization.d.ts","sourceRoot":"","sources":["../../src/file/portMaterialization.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AACtD,OAAO,KAAK,EAAE,0BAA0B,EAAE,MAAM,gBAAgB,CAAC;AAEjE,MAAM,MAAM,SAAS,GAAG,WAAW,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC;AAEhE,yFAAyF;AACzF,MAAM,MAAM,YAAY,GAAG,CAAC,IAAI,EAAE,SAAS,EAAE,KAAK,EAAE,OAAO,KAAK,SAAS,SAAS,EAAE,GAAG,SAAS,CAAC;AAEjG,MAAM,WAAW,yBAAyB;IACxC,KAAK,EAAE,OAAO,CAAC;IACf,OAAO,EAAE,0BAA0B,EAAE,CAAC;CACvC;AAiDD;;;;;GAKG;AACH,wBAAgB,0BAA0B,CAAC,KAAK,EAAE,OAAO,EAAE,YAAY,CAAC,EAAE,YAAY,GAAG,yBAAyB,CAyBjH;AAED,8EAA8E;AAC9E,wBAAgB,kBAAkB,CAAC,KAAK,EAAE,OAAO,EAAE,YAAY,CAAC,EAAE,YAAY,GAAG,yBAAyB,CAuBzG"}
@@ -0,0 +1,105 @@
1
+ function clonePort(port) {
2
+ return {
3
+ ...port,
4
+ ...(port.properties ? { properties: { ...port.properties } } : {}),
5
+ };
6
+ }
7
+ function deepEqual(left, right) {
8
+ if (Object.is(left, right))
9
+ return true;
10
+ if (Array.isArray(left) || Array.isArray(right)) {
11
+ return Array.isArray(left) && Array.isArray(right) && left.length === right.length
12
+ && left.every((value, index) => deepEqual(value, right[index]));
13
+ }
14
+ if (!left || !right || typeof left !== 'object' || typeof right !== 'object')
15
+ return false;
16
+ const leftRecord = left;
17
+ const rightRecord = right;
18
+ const leftKeys = Object.keys(leftRecord).sort();
19
+ const rightKeys = Object.keys(rightRecord).sort();
20
+ return leftKeys.length === rightKeys.length
21
+ && leftKeys.every((key, index) => key === rightKeys[index] && deepEqual(leftRecord[key], rightRecord[key]));
22
+ }
23
+ function samePortSet(left, right) {
24
+ if (left.length !== right.length)
25
+ return false;
26
+ const rightById = new Map(right.map((port) => [port.id, port]));
27
+ return rightById.size === right.length
28
+ && left.every((port) => {
29
+ const candidate = rightById.get(port.id);
30
+ return candidate !== undefined && deepEqual(port, candidate);
31
+ });
32
+ }
33
+ function referencedPorts(graph) {
34
+ const result = new Map();
35
+ const add = (nodeId, portId) => {
36
+ if (!portId)
37
+ return;
38
+ const ports = result.get(nodeId) ?? new Set();
39
+ ports.add(portId);
40
+ result.set(nodeId, ports);
41
+ };
42
+ for (const edge of graph.edges) {
43
+ add(edge.source, edge.sourcePort);
44
+ add(edge.target, edge.targetPort);
45
+ }
46
+ return result;
47
+ }
48
+ /**
49
+ * Make implicit symbol ports portable at validation/persistence boundaries.
50
+ * A node with authored `ports` remains authoritative. When any referenced
51
+ * implicit port resolves, the symbol's complete port set is written so the
52
+ * node keeps every handle when a GraphIR consumer reads it.
53
+ */
54
+ export function materializeReferencedPorts(graph, resolvePorts) {
55
+ if (!resolvePorts)
56
+ return { graph, changes: [] };
57
+ const referenced = referencedPorts(graph);
58
+ const changes = [];
59
+ const visit = (nodes, path) => nodes.map((node, index) => {
60
+ const nodePath = `${path}/${index}`;
61
+ const children = node.children ? visit(node.children, `${nodePath}/children`) : node.children;
62
+ if (node.ports !== undefined)
63
+ return children === node.children ? node : { ...node, children };
64
+ const required = referenced.get(node.id);
65
+ if (!required?.size)
66
+ return children === node.children ? node : { ...node, children };
67
+ const resolved = resolvePorts(node, graph);
68
+ if (!resolved?.length || ![...required].some((portId) => resolved.some((port) => port.id === portId))) {
69
+ return children === node.children ? node : { ...node, children };
70
+ }
71
+ changes.push({
72
+ code: 'MATERIALIZE_SYMBOL_PORTS',
73
+ path: `${nodePath}/ports`,
74
+ message: `Materialized ${resolved.length} notation-symbol ports for node "${node.id}"`,
75
+ });
76
+ return { ...node, ...(children ? { children } : {}), ports: resolved.map(clonePort) };
77
+ });
78
+ const nodes = visit(graph.nodes, '/nodes');
79
+ return changes.length > 0 ? { graph: { ...graph, nodes }, changes } : { graph, changes };
80
+ }
81
+ /** Remove a persisted symbol-port set from the editor's source projection. */
82
+ export function stripResolvedPorts(graph, resolvePorts) {
83
+ if (!resolvePorts)
84
+ return { graph, changes: [] };
85
+ const changes = [];
86
+ const visit = (nodes, path) => nodes.map((node, index) => {
87
+ const nodePath = `${path}/${index}`;
88
+ const children = node.children ? visit(node.children, `${nodePath}/children`) : node.children;
89
+ const resolved = node.ports === undefined ? undefined : resolvePorts(node, graph);
90
+ if (node.ports === undefined || !resolved || !samePortSet(node.ports, resolved)) {
91
+ return children === node.children ? node : { ...node, children };
92
+ }
93
+ const withoutPorts = { ...node };
94
+ delete withoutPorts.ports;
95
+ changes.push({
96
+ code: 'STRIP_SYMBOL_PORTS',
97
+ path: `${nodePath}/ports`,
98
+ message: `Restored ${resolved.length} notation-symbol ports for node "${node.id}" to implicit form`,
99
+ });
100
+ return { ...withoutPorts, ...(children ? { children } : {}) };
101
+ });
102
+ const nodes = visit(graph.nodes, '/nodes');
103
+ return changes.length > 0 ? { graph: { ...graph, nodes }, changes } : { graph, changes };
104
+ }
105
+ //# sourceMappingURL=portMaterialization.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"portMaterialization.js","sourceRoot":"","sources":["../../src/file/portMaterialization.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"serialize.d.ts","sourceRoot":"","sources":["../../src/file/serialize.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,KAAK,EAAE,SAAS,EAAE,SAAS,EAAiC,MAAM,aAAa,CAAC;AACvF,OAAO,KAAK,EACV,aAAa,EACb,qBAAqB,EACrB,gBAAgB,EAKjB,MAAM,aAAa,CAAC;AAwBrB;;;;;GAKG;AACH,wBAAgB,cAAc,CAAC,OAAO,EAAE,qBAAqB,GAAG,aAAa,CAyC5E;AAyED;;;;;;;;GAQG;AACH,wBAAgB,SAAS,CACvB,KAAK,EAAE,SAAS,EAAE,EAClB,KAAK,EAAE,SAAS,EAAE,EAClB,OAAO,EAAE,gBAAgB,EACzB,WAAW,CAAC,EAAE,GAAG,CAAC,MAAM,EAAE,KAAK,CAAC;IAAE,EAAE,EAAE,MAAM,CAAC;IAAC,CAAC,EAAE,MAAM,CAAC;IAAC,CAAC,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,CAAA;CAAE,CAAC,CAAC,GACnF,aAAa,CAkHf"}
1
+ {"version":3,"file":"serialize.d.ts","sourceRoot":"","sources":["../../src/file/serialize.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,KAAK,EAAE,SAAS,EAAE,SAAS,EAAiC,MAAM,aAAa,CAAC;AACvF,OAAO,KAAK,EACV,aAAa,EACb,qBAAqB,EACrB,gBAAgB,EAKjB,MAAM,aAAa,CAAC;AAwBrB;;;;;GAKG;AACH,wBAAgB,cAAc,CAAC,OAAO,EAAE,qBAAqB,GAAG,aAAa,CAyC5E;AAyED;;;;;;;;GAQG;AACH,wBAAgB,SAAS,CACvB,KAAK,EAAE,SAAS,EAAE,EAClB,KAAK,EAAE,SAAS,EAAE,EAClB,OAAO,EAAE,gBAAgB,EACzB,WAAW,CAAC,EAAE,GAAG,CAAC,MAAM,EAAE,KAAK,CAAC;IAAE,EAAE,EAAE,MAAM,CAAC;IAAC,CAAC,EAAE,MAAM,CAAC;IAAC,CAAC,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,CAAA;CAAE,CAAC,CAAC,GACnF,aAAa,CAwHf"}
@@ -58,7 +58,7 @@ export function createDocument(options) {
58
58
  dslType: options.content?.dslType,
59
59
  text: options.content?.text,
60
60
  graphIR: options.content?.graphIR ?? {
61
- version: '2.0.0',
61
+ version: '3.0.0',
62
62
  id: 'untitled',
63
63
  nodes: [],
64
64
  edges: [],
@@ -147,6 +147,10 @@ function extractNodePositions(nodes) {
147
147
  * @returns CoralDocument
148
148
  */
149
149
  export function serialize(nodes, edges, options, waypointMap) {
150
+ if (options.graphIR && options.graphIR.version !== '3.0.0') {
151
+ throw new Error(`Coral serialization requires GraphIR 3.0.0; migrate GraphIR ${String(options.graphIR.version)} ` +
152
+ 'through the named migration APIs before saving.');
153
+ }
150
154
  const now = new Date().toISOString();
151
155
  const flatNodes = nodes.map(nodeToGraphNode);
152
156
  const nodeIds = new Set(flatNodes.map((node) => node.id));
@@ -170,7 +174,7 @@ export function serialize(nodes, edges, options, waypointMap) {
170
174
  };
171
175
  const graphIR = {
172
176
  ...options.graphIR,
173
- version: '2.0.0',
177
+ version: options.graphIR?.version ?? '3.0.0',
174
178
  id: options.graphIR?.id ?? options.name.toLowerCase().replace(/\s+/g, '-'),
175
179
  name: options.graphIR?.name ?? options.name,
176
180
  // A supplied canonical graph owns authored Exact positions. React Flow
@@ -1 +1 @@
1
- {"version":3,"file":"serialize.js","sourceRoot":"","sources":["../../src/file/serialize.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"serialize.js","sourceRoot":"","sources":["../../src/file/serialize.ts"],"names":[],"mappings":"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"}
package/dist/index.d.ts CHANGED
@@ -6,18 +6,18 @@ export { LayoutControls, type LayoutControlsProps } from './editor/index.js';
6
6
  export { FileControls, type FileControlsProps } from './editor/index.js';
7
7
  export { TextEditor, SplitEditor, useBidirectionalSync, type TextEditorProps, type SplitEditorProps, type SyntaxLanguage, type EditorTheme, type EditorSourcePosition, type EditorSourceRange, type EditorDiagnostic, type EditorDecoration, type EditorAnalysisOwner, type SplitLayout, type PrimaryPane, type SyncState, type SyncActions, type SyncOptions, type ParseFunction, type PrintFunction, type SyncParseResult, type SyncParseError, type ParseResult, type ParseError, type ChangeSource, } from './text-editor/index.js';
8
8
  export { convertGraphToFlow, convertNode, convertEdge, flattenNodes, convertFlowToGraphNodes, convertFlowToGraphEdges, } from './editor/index.js';
9
- export { ServiceNode, DatabaseNode, ExternalApiNode, ActorNode, ModuleNode, GroupNode, nodeTypes, ShapeRenderer, SymbolNode, type ShapeRendererProps, type SymbolNodeData, DiagramFontFaces, type DiagramFontFacesProps, EditProvider, useEditContext, useIsEditing, type EditProviderProps, type OnLabelEditCallback, } from './components/index.js';
9
+ export { ServiceNode, DatabaseNode, ExternalApiNode, ActorNode, ModuleNode, GroupNode, nodeTypes, ShapeRenderer, SymbolNode, type ShapeRendererProps, type SymbolNodeData, SequenceDiagram, type SequenceDiagramProps, type SequenceSelection, type SequenceSelectionKind, DiagramFontFaces, type DiagramFontFacesProps, EditProvider, useEditContext, useIsEditing, type EditProviderProps, type OnLabelEditCallback, } from './components/index.js';
10
10
  export { layoutGraph, layoutFlowNodes, layoutFlowNodesWithEdges, extractEdgeSections, getElk, type LayoutFlowResult, type ElkEdgeRouting, } from './layout/index.js';
11
11
  export { useLayoutHistory, type PositionSnapshot, type UndoRedoResult, type UseLayoutHistoryOptions, type UseLayoutHistoryResult, } from './layout/index.js';
12
12
  export { useAxisConstrain, type UseAxisConstrainResult, } from './layout/index.js';
13
13
  export { diffGraphs, resolvePositions, incrementalLayout, } from './layout/index.js';
14
14
  export { useDiagramState, type ParsedGraph, type DiagramNode, type DiagramEdge, type UseDiagramStateOptions, type UseDiagramStateResult, } from './layout/index.js';
15
15
  export { shapeRegistry, getShape, getAllShapes, } from '@coral-viz/render';
16
- export { symbolRegistry, getSymbol, getSymbolsByTag, getSymbolsForNotation, getAllSymbols, getAllLibraries, flowchartSymbols, bpmnSymbols, erdSymbols, codeSymbols, architectureSymbols, aimlSymbols, dataEngineeringSymbols, sketchSymbols, } from '@coral-viz/render';
17
- export { notationRegistry, getNotation, getAllNotations, validateDiagram, flowchartNotation, bpmnNotation, erdNotation, codeNotation, architectureNotation, aimlNotation, dataEngineeringNotation, sketchNotation, } from '@coral-viz/render';
18
- export { CURRENT_SCHEMA_VERSION, SUPPORTED_SCHEMA_VERSIONS, createDocument, serialize, deserialize, validateDocument, migrateDocument, needsMigration, getMigrationSteps, type CoralDocument, type DocumentMetadata, type DocumentContent, type DocumentSettings, type LayoutDirection, type LayoutSettings, type LayoutSpacing, type ViewState, type NodePosition, type DslType, type CreateDocumentOptions, type SerializeOptions, type DeserializeResult, type ValidationResult as FileValidationResult, type FontSettings, type DiagramFontSettings, type FontFamilyPreset, type FontSizePreset, DEFAULT_FONT_SETTINGS, DEFAULT_DIAGRAM_FONT_SETTINGS, FONT_FAMILY_PRESETS, FONT_SIZE_PRESETS, getFontFamilyPreset, getFontSizePreset, normalizeDiagramFontSettings, type EdgeRouting, type LayoutAlgorithm, type LayoutPresetId, type LayoutPreset, type UserPreferences, type LLMProviderPreference, type SpeechRecognitionMode, type SettingsPanelState, DEFAULT_USER_PREFERENCES, normalizeLlmMaxRetries, DEFAULT_LAYOUT_SETTINGS, LAYOUT_PRESETS, getLayoutPreset, resolveNotationLayout, type LayoutProfileOverrides, type LayoutProfileDiagnostic, type ResolvedLayoutProfile, } from './file/index.js';
16
+ export { symbolRegistry, getSymbol, getSymbolsByTag, getSymbolsForNotation, getAllSymbols, getAllLibraries, flowchartSymbols, bpmnSymbols, erdSymbols, codeSymbols, architectureSymbols, aimlSymbols, dataEngineeringSymbols, sketchSymbols, umlSymbols, } from '@coral-viz/render';
17
+ export { notationRegistry, getNotation, getAllNotations, validateDiagram, flowchartNotation, bpmnNotation, erdNotation, codeNotation, architectureNotation, aimlNotation, dataEngineeringNotation, sketchNotation, umlClassNotation, } from '@coral-viz/render';
18
+ export { CURRENT_SCHEMA_VERSION, SUPPORTED_SCHEMA_VERSIONS, createDocument, serialize, deserialize, validateDocument, migrateDocument, migrateDocumentWithDiagnostics, type DocumentMigrationResult, type DocumentMigrationOptions, materializeReferencedPorts, stripResolvedPorts, type GraphPort, type PortResolver, type PortMaterializationResult, needsMigration, getMigrationSteps, type CoralDocument, type DocumentMetadata, type DocumentContent, type DocumentSettings, type LayoutDirection, type LayoutSettings, type LayoutSpacing, type ViewState, type NodePosition, type DslType, type CreateDocumentOptions, type SerializeOptions, type DeserializeResult, type ValidationResult as FileValidationResult, type FontSettings, type DiagramFontSettings, type FontFamilyPreset, type FontSizePreset, DEFAULT_FONT_SETTINGS, DEFAULT_DIAGRAM_FONT_SETTINGS, FONT_FAMILY_PRESETS, FONT_SIZE_PRESETS, getFontFamilyPreset, getFontSizePreset, normalizeDiagramFontSettings, type EdgeRouting, type LayoutAlgorithm, type LayoutPresetId, type LayoutPreset, type UserPreferences, type LLMProviderPreference, type SpeechRecognitionMode, type SettingsPanelState, DEFAULT_USER_PREFERENCES, normalizeLlmMaxRetries, DEFAULT_LAYOUT_SETTINGS, LAYOUT_PRESETS, getLayoutPreset, resolveNotationLayout, type LayoutProfileOverrides, type LayoutProfileDiagnostic, type ResolvedLayoutProfile, } from './file/index.js';
19
19
  export { useSettings, type UseSettingsOptions, type UseSettingsResult, LayoutSettingsForm, type LayoutSettingsFormProps, SettingsPanel, type SettingsPanelProps, type SettingsPanelTheme, FontSettingsForm, type FontSettingsFormProps, } from './settings/index.js';
20
- export { validateConnection, checkPortDirection, checkMaxConnections, getEdgeCompatibility, useEdgeCompatibility, IncompatibilityTooltip, CompatibilityEdge, getEdgeStyleForStatus, buildRoutedPath, type UseEdgeCompatibilityOptions, type UseEdgeCompatibilityResult, type IncompatibilityTooltipProps, type CompatibilityEdgeProps, type CompatibilityEdgeData, } from './compatibility/index.js';
20
+ export { validateConnection, checkPortDirection, checkMaxConnections, getEdgeCompatibility, useEdgeCompatibility, IncompatibilityTooltip, CompatibilityEdge, canvasSelfLoop, resolveNodeSelfLoops, getEdgeStyleForStatus, buildRoutedPath, EndpointMarkerDefinitions, type EndpointMarkerDefinitionsProps, type UseEdgeCompatibilityOptions, type UseEdgeCompatibilityResult, type IncompatibilityTooltipProps, type CompatibilityEdgeProps, type CompatibilityEdgeData, } from './compatibility/index.js';
21
21
  export { NodePropertiesPanel, type NodePropertiesPanelProps, type PropertyChange, detectPropertyType, isEditableProperty, parsePropertyValue, extractPropertyFields, type PropertyType, type PropertyValue, type PropertyFieldMeta, } from './properties/index.js';
22
22
  export { createWaypoint, addWaypointToEdge, removeWaypointFromEdge, moveWaypoint, insertWaypointAtPosition, routeWithWaypoints, useWaypointManager, type EdgeWaypoint, type RoutedPath, type UseWaypointManagerOptions, type UseWaypointManagerResult, } from './waypoints/index.js';
23
23
  export type { GraphIR, GraphNode, GraphEdge, Position, Dimensions, EdgeStyle, LayoutOptions, CoralNode, CoralEdge, CoralNodeData, CoralEdgeData, FontAwareCoralNodeData, FontAwareCoralEdgeData, CoralNodeViewMetadata, CoralEdgeViewMetadata, DimensionSource, CoralNodeProps, EditorState, EditorCallbacks, EditorConfig, PortAnchor, ShapeParameter, ShapeDefinition, SymbolPort, SymbolVariant, SymbolDefinition, SymbolLibrary, NotationEdgeStyle, ConnectionConstraints, ConnectionRule, ValidationRule, FlowPoint, NotationValidation, NotationDefinition, ShapeRegistry, SymbolRegistry, NotationRegistry, ValidationResult, PositionSource, PositionedNode, GraphDiff, PositionResolution, DiffableNode, DiffableGraph, IncompatibilityReason, ConnectionValidation, ConnectionInfo, NodeConnectionInfo, EdgeCompatibilityStatus, EdgeCompatibility, HandleDragState, ConnectionValidationContext, } from './types.js';
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
package/dist/index.js CHANGED
@@ -12,7 +12,7 @@ export { convertGraphToFlow, convertNode, convertEdge, flattenNodes, convertFlow
12
12
  // Components
13
13
  export { ServiceNode, DatabaseNode, ExternalApiNode, ActorNode, ModuleNode, GroupNode, nodeTypes,
14
14
  // New symbol-aware components
15
- ShapeRenderer, SymbolNode, DiagramFontFaces,
15
+ ShapeRenderer, SymbolNode, SequenceDiagram, DiagramFontFaces,
16
16
  // Edit context for inline label editing
17
17
  EditProvider, useEditContext, useIsEditing, } from './components/index.js';
18
18
  // Layout
@@ -25,14 +25,14 @@ export { diffGraphs, resolvePositions, incrementalLayout, } from './layout/index
25
25
  export { useDiagramState, } from './layout/index.js';
26
26
  // Shapes, Symbols, Notations (Three-Layer Architecture)
27
27
  export { shapeRegistry, getShape, getAllShapes, } from '@coral-viz/render';
28
- export { symbolRegistry, getSymbol, getSymbolsByTag, getSymbolsForNotation, getAllSymbols, getAllLibraries, flowchartSymbols, bpmnSymbols, erdSymbols, codeSymbols, architectureSymbols, aimlSymbols, dataEngineeringSymbols, sketchSymbols, } from '@coral-viz/render';
29
- export { notationRegistry, getNotation, getAllNotations, validateDiagram, flowchartNotation, bpmnNotation, erdNotation, codeNotation, architectureNotation, aimlNotation, dataEngineeringNotation, sketchNotation, } from '@coral-viz/render';
28
+ export { symbolRegistry, getSymbol, getSymbolsByTag, getSymbolsForNotation, getAllSymbols, getAllLibraries, flowchartSymbols, bpmnSymbols, erdSymbols, codeSymbols, architectureSymbols, aimlSymbols, dataEngineeringSymbols, sketchSymbols, umlSymbols, } from '@coral-viz/render';
29
+ export { notationRegistry, getNotation, getAllNotations, validateDiagram, flowchartNotation, bpmnNotation, erdNotation, codeNotation, architectureNotation, aimlNotation, dataEngineeringNotation, sketchNotation, umlClassNotation, } from '@coral-viz/render';
30
30
  // File Format (CORAL-REQ-008)
31
- export { CURRENT_SCHEMA_VERSION, SUPPORTED_SCHEMA_VERSIONS, createDocument, serialize, deserialize, validateDocument, migrateDocument, needsMigration, getMigrationSteps, DEFAULT_FONT_SETTINGS, DEFAULT_DIAGRAM_FONT_SETTINGS, FONT_FAMILY_PRESETS, FONT_SIZE_PRESETS, getFontFamilyPreset, getFontSizePreset, normalizeDiagramFontSettings, DEFAULT_USER_PREFERENCES, normalizeLlmMaxRetries, DEFAULT_LAYOUT_SETTINGS, LAYOUT_PRESETS, getLayoutPreset, resolveNotationLayout, } from './file/index.js';
31
+ export { CURRENT_SCHEMA_VERSION, SUPPORTED_SCHEMA_VERSIONS, createDocument, serialize, deserialize, validateDocument, migrateDocument, migrateDocumentWithDiagnostics, materializeReferencedPorts, stripResolvedPorts, needsMigration, getMigrationSteps, DEFAULT_FONT_SETTINGS, DEFAULT_DIAGRAM_FONT_SETTINGS, FONT_FAMILY_PRESETS, FONT_SIZE_PRESETS, getFontFamilyPreset, getFontSizePreset, normalizeDiagramFontSettings, DEFAULT_USER_PREFERENCES, normalizeLlmMaxRetries, DEFAULT_LAYOUT_SETTINGS, LAYOUT_PRESETS, getLayoutPreset, resolveNotationLayout, } from './file/index.js';
32
32
  // Settings (CORAL-REQ-009)
33
33
  export { useSettings, LayoutSettingsForm, SettingsPanel, FontSettingsForm, } from './settings/index.js';
34
34
  // Compatibility (CORAL-REQ-010)
35
- export { validateConnection, checkPortDirection, checkMaxConnections, getEdgeCompatibility, useEdgeCompatibility, IncompatibilityTooltip, CompatibilityEdge, getEdgeStyleForStatus, buildRoutedPath, } from './compatibility/index.js';
35
+ export { validateConnection, checkPortDirection, checkMaxConnections, getEdgeCompatibility, useEdgeCompatibility, IncompatibilityTooltip, CompatibilityEdge, canvasSelfLoop, resolveNodeSelfLoops, getEdgeStyleForStatus, buildRoutedPath, EndpointMarkerDefinitions, } from './compatibility/index.js';
36
36
  // Properties Panel
37
37
  export { NodePropertiesPanel,
38
38
  // Utilities
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
@@ -1,5 +1,7 @@
1
1
  /** Compatibility adapters over the shared headless ELK owner. */
2
2
  import type { ElkExtendedEdge } from 'elkjs';
3
+ import { type LayoutEdgeLabel, type LayoutLabelBox } from '@coral-viz/render/layout';
4
+ import { type SelfLoopSlot } from '@coral-viz/render';
3
5
  import type { CoralEdge, CoralNode, GraphIR, LayoutOptions, Position, SizingMode } from '../types.js';
4
6
  declare const elk: import("elkjs").ELK;
5
7
  export declare function layoutGraph(graph: GraphIR): Promise<GraphIR>;
@@ -7,6 +9,8 @@ export interface LayoutFlowOptions extends LayoutOptions {
7
9
  sizingMode?: SizingMode;
8
10
  fontSize?: number;
9
11
  fontFamily?: string;
12
+ /** Edge-label sizes by edge id, from `measureEdgeLabel`; the layout reserves their space. */
13
+ edgeLabels?: Readonly<Record<string, readonly LayoutEdgeLabel[]>>;
10
14
  }
11
15
  export declare function layoutFlowNodes(nodes: CoralNode[], edges: CoralEdge[], options?: LayoutFlowOptions): Promise<CoralNode[]>;
12
16
  export interface ElkEdgeRouting {
@@ -16,6 +20,10 @@ export interface ElkEdgeRouting {
16
20
  bendPoints: Position[];
17
21
  sourceId: string;
18
22
  targetId: string;
23
+ /** Reserved edge-label boxes, valid only while this route is. */
24
+ labels?: LayoutLabelBox[];
25
+ /** A self-loop's slot relative to its node, valid wherever the node moves (027-R10). */
26
+ selfLoopSlot?: SelfLoopSlot;
19
27
  }
20
28
  export interface LayoutFlowResult {
21
29
  nodes: CoralNode[];
@@ -1 +1 @@
1
- {"version":3,"file":"elk.d.ts","sourceRoot":"","sources":["../../src/layout/elk.ts"],"names":[],"mappings":"AAAA,iEAAiE;AACjE,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,OAAO,CAAC;AAU7C,OAAO,KAAK,EACV,SAAS,EAAE,SAAS,EAAE,OAAO,EAAa,aAAa,EACvD,QAAQ,EAAE,UAAU,EACrB,MAAM,aAAa,CAAC;AAGrB,QAAA,MAAM,GAAG,EAAsC,OAAO,OAAO,EAAE,GAAG,CAAC;AA6BnE,wBAAsB,WAAW,CAAC,KAAK,EAAE,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC,CASlE;AAED,MAAM,WAAW,iBAAkB,SAAQ,aAAa;IACtD,UAAU,CAAC,EAAE,UAAU,CAAC;IACxB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AA6DD,wBAAsB,eAAe,CACnC,KAAK,EAAE,SAAS,EAAE,EAAE,KAAK,EAAE,SAAS,EAAE,EAAE,OAAO,CAAC,EAAE,iBAAiB,GAClE,OAAO,CAAC,SAAS,EAAE,CAAC,CAItB;AAED,MAAM,WAAW,cAAc;IAC7B,EAAE,EAAE,MAAM,CAAC;IACX,UAAU,EAAE,QAAQ,CAAC;IACrB,QAAQ,EAAE,QAAQ,CAAC;IACnB,UAAU,EAAE,QAAQ,EAAE,CAAC;IACvB,QAAQ,EAAE,MAAM,CAAC;IACjB,QAAQ,EAAE,MAAM,CAAC;CAClB;AAED,MAAM,WAAW,gBAAgB;IAC/B,KAAK,EAAE,SAAS,EAAE,CAAC;IACnB,WAAW,EAAE,GAAG,CAAC,MAAM,EAAE,cAAc,CAAC,CAAC;CAC1C;AAED,wBAAgB,mBAAmB,CACjC,QAAQ,EAAE,eAAe,EAAE,GAAG,SAAS,GACtC,GAAG,CAAC,MAAM,EAAE,cAAc,CAAC,CAe7B;AAqBD,wBAAsB,wBAAwB,CAC5C,KAAK,EAAE,SAAS,EAAE,EAAE,KAAK,EAAE,SAAS,EAAE,EAAE,OAAO,CAAC,EAAE,iBAAiB,GAClE,OAAO,CAAC,gBAAgB,CAAC,CAO3B;AAED,wBAAgB,MAAM,IAAI,OAAO,GAAG,CAEnC"}
1
+ {"version":3,"file":"elk.d.ts","sourceRoot":"","sources":["../../src/layout/elk.ts"],"names":[],"mappings":"AAAA,iEAAiE;AACjE,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,OAAO,CAAC;AAC7C,OAAO,EAIL,KAAK,eAAe,EACpB,KAAK,cAAc,EAIpB,MAAM,0BAA0B,CAAC;AAClC,OAAO,EAAkB,KAAK,YAAY,EAAE,MAAM,mBAAmB,CAAC;AACtE,OAAO,KAAK,EACV,SAAS,EAAE,SAAS,EAAE,OAAO,EAAa,aAAa,EACvD,QAAQ,EAAE,UAAU,EACrB,MAAM,aAAa,CAAC;AAGrB,QAAA,MAAM,GAAG,EAAsC,OAAO,OAAO,EAAE,GAAG,CAAC;AA6BnE,wBAAsB,WAAW,CAAC,KAAK,EAAE,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC,CASlE;AAED,MAAM,WAAW,iBAAkB,SAAQ,aAAa;IACtD,UAAU,CAAC,EAAE,UAAU,CAAC;IACxB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,6FAA6F;IAC7F,UAAU,CAAC,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,SAAS,eAAe,EAAE,CAAC,CAAC,CAAC;CACnE;AAmED,wBAAsB,eAAe,CACnC,KAAK,EAAE,SAAS,EAAE,EAAE,KAAK,EAAE,SAAS,EAAE,EAAE,OAAO,CAAC,EAAE,iBAAiB,GAClE,OAAO,CAAC,SAAS,EAAE,CAAC,CAItB;AAED,MAAM,WAAW,cAAc;IAC7B,EAAE,EAAE,MAAM,CAAC;IACX,UAAU,EAAE,QAAQ,CAAC;IACrB,QAAQ,EAAE,QAAQ,CAAC;IACnB,UAAU,EAAE,QAAQ,EAAE,CAAC;IACvB,QAAQ,EAAE,MAAM,CAAC;IACjB,QAAQ,EAAE,MAAM,CAAC;IACjB,iEAAiE;IACjE,MAAM,CAAC,EAAE,cAAc,EAAE,CAAC;IAC1B,wFAAwF;IACxF,YAAY,CAAC,EAAE,YAAY,CAAC;CAC7B;AAED,MAAM,WAAW,gBAAgB;IAC/B,KAAK,EAAE,SAAS,EAAE,CAAC;IACnB,WAAW,EAAE,GAAG,CAAC,MAAM,EAAE,cAAc,CAAC,CAAC;CAC1C;AAED,wBAAgB,mBAAmB,CACjC,QAAQ,EAAE,eAAe,EAAE,GAAG,SAAS,GACtC,GAAG,CAAC,MAAM,EAAE,cAAc,CAAC,CAe7B;AAsBD,wBAAsB,wBAAwB,CAC5C,KAAK,EAAE,SAAS,EAAE,EAAE,KAAK,EAAE,SAAS,EAAE,EAAE,OAAO,CAAC,EAAE,iBAAiB,GAClE,OAAO,CAAC,gBAAgB,CAAC,CAO3B;AAED,wBAAgB,MAAM,IAAI,OAAO,GAAG,CAEnC"}
@@ -90,7 +90,13 @@ async function layoutFlow(nodes, edges, options) {
90
90
  defaults: { algorithm: 'layered', direction: 'DOWN' },
91
91
  options: graphOptions(options),
92
92
  nodes: flowHierarchy(sizedNodes),
93
- edges: edges.map((edge) => ({ id: edge.id, source: edge.source, target: edge.target })),
93
+ edges: edges.map((edge) => {
94
+ const labels = options?.edgeLabels?.[edge.id];
95
+ return {
96
+ id: edge.id, source: edge.source, target: edge.target,
97
+ ...(labels?.length ? { labels: labels.map((label) => ({ width: label.width, height: label.height })) } : {}),
98
+ };
99
+ }),
94
100
  });
95
101
  return { sizedNodes, result };
96
102
  }
@@ -131,6 +137,7 @@ function routingMap(result, edges) {
131
137
  bendPoints: section.bendPoints,
132
138
  sourceId: original.source,
133
139
  targetId: original.target,
140
+ ...(edge.labels ? { labels: edge.labels.map((box) => ({ ...box })) } : {}),
134
141
  });
135
142
  }
136
143
  return routing;