@stocksharp/diagram 0.3.0 → 0.4.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1,4 +1,4 @@
1
- import type { DiagramDocument, DiagramParameterSchema, JsonObject, PortDynamicMode } from './core/model.js';
1
+ import type { DiagramLinkStyle, DiagramDocument, DiagramParameterSchema, JsonObject, PortDynamicMode } from './core/model.js';
2
2
  import type { DiagramGlobalErrorKind, DiagramInteractionPermissions, DiagramPortRuntimeState, DiagramRuntimeState, DiagramSelection, DiagramViewState } from './core/state.js';
3
3
  export type PortDirection = 'in' | 'out';
4
4
  export type PortClickAction = 'leftClick' | 'rightClick';
@@ -47,6 +47,8 @@ export interface LinkInit {
47
47
  fromPort: string;
48
48
  to: string;
49
49
  toPort: string;
50
+ /** Solid unless the link is one that may not be there - see DiagramLinkStyle. */
51
+ style?: DiagramLinkStyle;
50
52
  metadata?: JsonObject;
51
53
  }
52
54
  export type DiagramNodeSnapshot = DiagramNodeInit & Required<Pick<DiagramNodeInit, 'id' | 'typeId' | 'name' | 'color' | 'border' | 'x' | 'y'>> & {
@@ -63,6 +65,8 @@ export interface DiagramOptions {
63
65
  gridColor?: string;
64
66
  /** Snap dragged nodes to a world-space grid. Defaults to false for the low-level renderer. */
65
67
  gridSnap?: boolean;
68
+ /** Tint for a zone that names no colour of its own. */
69
+ zoneColor?: string;
66
70
  /** Positive world-space grid step. Defaults to 28. */
67
71
  gridSize?: number;
68
72
  /** Optional explicit socket-type → colour map; unknown types hash to a hue. */
@@ -271,9 +275,10 @@ export declare class LinkModel {
271
275
  fromPort: string;
272
276
  to: string;
273
277
  toPort: string;
278
+ style: DiagramLinkStyle;
274
279
  readonly id: string;
275
280
  readonly metadata: JsonObject;
276
- constructor(from: string, fromPort: string, to: string, toPort: string, id?: string, metadata?: JsonObject);
281
+ constructor(from: string, fromPort: string, to: string, toPort: string, id?: string, metadata?: JsonObject, style?: DiagramLinkStyle);
277
282
  key(): string;
278
283
  toInit(): LinkInit & {
279
284
  id: string;
@@ -286,6 +291,7 @@ export declare class Diagram {
286
291
  private readonly opts;
287
292
  private nodes;
288
293
  private links;
294
+ private zones;
289
295
  private idSeq;
290
296
  private linkSeq;
291
297
  private documentMetadata;
@@ -495,6 +501,7 @@ export declare class Diagram {
495
501
  private drawGlobalError;
496
502
  private drawTooltip;
497
503
  private wrapTooltip;
504
+ private drawZones;
498
505
  private drawGrid;
499
506
  private getIcon;
500
507
  private drawNode;
@@ -1 +1 @@
1
- {"version":3,"file":"canvas-renderer.d.ts","sourceRoot":"","sources":["../../src/canvas-renderer.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"canvas-renderer.d.ts","sourceRoot":"","sources":["../../src/canvas-renderer.ts"],"names":[],"mappings":"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"}
@@ -1,6 +1,6 @@
1
1
  import { type DiagramDocument, type DiagramDocumentInput } from './model.js';
2
2
  export { DIAGRAM_DOCUMENT_VERSION } from './model.js';
3
- export type { DiagramDocument, DiagramDocumentEndpoint, DiagramDocumentInput, DiagramDocumentLink, DiagramDocumentLinkInput, DiagramDocumentNode, DiagramDocumentNodeInput, DiagramDocumentPort, DiagramDocumentPortInput, DiagramDocumentVersion, DiagramParameterSchema, JsonObject, JsonPrimitive, JsonValue, } from './model.js';
3
+ export type { DiagramDocument, DiagramDocumentEndpoint, DiagramDocumentInput, DiagramDocumentLink, DiagramDocumentLinkInput, DiagramLinkStyle, DiagramDocumentNode, DiagramDocumentNodeInput, DiagramDocumentPort, DiagramDocumentPortInput, DiagramDocumentZone, DiagramDocumentZoneInput, DiagramDocumentVersion, DiagramParameterSchema, JsonObject, JsonPrimitive, JsonValue, } from './model.js';
4
4
  export declare class DiagramDocumentError extends Error {
5
5
  readonly path: string;
6
6
  constructor(message: string, path?: string);
@@ -1 +1 @@
1
- {"version":3,"file":"document.d.ts","sourceRoot":"","sources":["../../../src/core/document.ts"],"names":[],"mappings":"AAEA,OAAO,EAEH,KAAK,eAAe,EAEpB,KAAK,oBAAoB,EAQ5B,MAAM,YAAY,CAAC;AAEpB,OAAO,EAAE,wBAAwB,EAAE,MAAM,YAAY,CAAC;AACtD,YAAY,EACR,eAAe,EACf,uBAAuB,EACvB,oBAAoB,EACpB,mBAAmB,EACnB,wBAAwB,EACxB,mBAAmB,EACnB,wBAAwB,EACxB,mBAAmB,EACnB,wBAAwB,EACxB,sBAAsB,EACtB,sBAAsB,EACtB,UAAU,EACV,aAAa,EACb,SAAS,GACZ,MAAM,YAAY,CAAC;AAEpB,qBAAa,oBAAqB,SAAQ,KAAK;IACd,QAAQ,CAAC,IAAI,EAAE,MAAM;gBAAtC,OAAO,EAAE,MAAM,EAAW,IAAI,GAAE,MAAY;CAI3D;AAED,wBAAgB,qBAAqB,CAAC,KAAK,GAAE,oBAAyB,GAAG,eAAe,CAuCvF;AAED,wBAAgB,oBAAoB,CAAC,QAAQ,EAAE,eAAe,GAAG,eAAe,CAE/E;AAED,wBAAgB,wBAAwB,CAAC,QAAQ,EAAE,eAAe,EAAE,KAAK,CAAC,EAAE,MAAM,GAAG,MAAM,CAE1F;AAED,wBAAgB,oBAAoB,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,GAAG,eAAe,CAwB9E"}
1
+ {"version":3,"file":"document.d.ts","sourceRoot":"","sources":["../../../src/core/document.ts"],"names":[],"mappings":"AAEA,OAAO,EAEH,KAAK,eAAe,EAEpB,KAAK,oBAAoB,EAU5B,MAAM,YAAY,CAAC;AAEpB,OAAO,EAAE,wBAAwB,EAAE,MAAM,YAAY,CAAC;AACtD,YAAY,EACR,eAAe,EACf,uBAAuB,EACvB,oBAAoB,EACpB,mBAAmB,EACnB,wBAAwB,EACxB,gBAAgB,EAChB,mBAAmB,EACnB,wBAAwB,EACxB,mBAAmB,EACnB,wBAAwB,EACxB,mBAAmB,EACnB,wBAAwB,EACxB,sBAAsB,EACtB,sBAAsB,EACtB,UAAU,EACV,aAAa,EACb,SAAS,GACZ,MAAM,YAAY,CAAC;AAEpB,qBAAa,oBAAqB,SAAQ,KAAK;IACd,QAAQ,CAAC,IAAI,EAAE,MAAM;gBAAtC,OAAO,EAAE,MAAM,EAAW,IAAI,GAAE,MAAY;CAI3D;AAED,wBAAgB,qBAAqB,CAAC,KAAK,GAAE,oBAAyB,GAAG,eAAe,CAmDvF;AAED,wBAAgB,oBAAoB,CAAC,QAAQ,EAAE,eAAe,GAAG,eAAe,CAE/E;AAED,wBAAgB,wBAAwB,CAAC,QAAQ,EAAE,eAAe,EAAE,KAAK,CAAC,EAAE,MAAM,GAAG,MAAM,CAE1F;AAED,wBAAgB,oBAAoB,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,GAAG,eAAe,CA6B9E"}
@@ -62,11 +62,38 @@ export interface DiagramDocumentEndpoint {
62
62
  nodeId: string;
63
63
  portId: string;
64
64
  }
65
+ /**
66
+ * How a link is drawn. A dashed link reads as one that may or may not be there -
67
+ * an optional hop, a path taken only in some deployments - which a solid line
68
+ * cannot say. The renderer compares this with ===, so a value outside the set
69
+ * would silently fall through to solid; hence a union rather than a string.
70
+ */
71
+ export type DiagramLinkStyle = 'solid' | 'dashed';
72
+ /** Narrows an untyped value to the closed set, defaulting to a plain line. */
73
+ export declare function toDiagramLinkStyle(value: unknown): DiagramLinkStyle;
65
74
  export interface DiagramDocumentLink {
66
75
  /** Stable identity used by selection, relinking and history. */
67
76
  id: string;
68
77
  from: DiagramDocumentEndpoint;
69
78
  to: DiagramDocumentEndpoint;
79
+ style: DiagramLinkStyle;
80
+ metadata: JsonObject;
81
+ }
82
+ /**
83
+ * A labelled rectangle drawn behind the nodes. It says where things are rather
84
+ * than what they do - a colocation cage, a tenant boundary, a process - which no
85
+ * arrangement of nodes and links can state on its own. A zone owns nothing: the
86
+ * nodes that sit on it are not its children, so moving one changes no membership.
87
+ */
88
+ export interface DiagramDocumentZone {
89
+ id: string;
90
+ name: string;
91
+ x: number;
92
+ y: number;
93
+ width: number;
94
+ height: number;
95
+ /** Empty means the renderer picks its own neutral tint. */
96
+ color: string;
70
97
  metadata: JsonObject;
71
98
  }
72
99
  export declare const DIAGRAM_DOCUMENT_VERSION: 1;
@@ -75,6 +102,7 @@ export interface DiagramDocument {
75
102
  version: DiagramDocumentVersion;
76
103
  nodes: DiagramDocumentNode[];
77
104
  links: DiagramDocumentLink[];
105
+ zones: DiagramDocumentZone[];
78
106
  metadata: JsonObject;
79
107
  }
80
108
  export type DiagramDocumentPortInput = Pick<DiagramDocumentPort, 'id' | 'name'> & Partial<Omit<DiagramDocumentPort, 'id' | 'name'>>;
@@ -82,13 +110,19 @@ export type DiagramDocumentNodeInput = Pick<DiagramDocumentNode, 'id' | 'name'>
82
110
  inPorts?: readonly DiagramDocumentPortInput[];
83
111
  outPorts?: readonly DiagramDocumentPortInput[];
84
112
  };
85
- export type DiagramDocumentLinkInput = Omit<DiagramDocumentLink, 'id' | 'metadata'> & {
113
+ export type DiagramDocumentLinkInput = Omit<DiagramDocumentLink, 'id' | 'style' | 'metadata'> & {
86
114
  id?: string;
115
+ style?: DiagramLinkStyle;
116
+ metadata?: JsonObject;
117
+ };
118
+ export type DiagramDocumentZoneInput = Omit<DiagramDocumentZone, 'color' | 'metadata'> & {
119
+ color?: string;
87
120
  metadata?: JsonObject;
88
121
  };
89
122
  export interface DiagramDocumentInput {
90
123
  nodes?: readonly DiagramDocumentNodeInput[];
91
124
  links?: readonly DiagramDocumentLinkInput[];
125
+ zones?: readonly DiagramDocumentZoneInput[];
92
126
  metadata?: JsonObject;
93
127
  }
94
128
  //# sourceMappingURL=model.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"model.d.ts","sourceRoot":"","sources":["../../../src/core/model.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"model.d.ts","sourceRoot":"","sources":["../../../src/core/model.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,aAAa,GAAG,MAAM,GAAG,MAAM,GAAG,OAAO,GAAG,IAAI,CAAC;AAC7D,MAAM,MAAM,SAAS,GAAG,aAAa,GAAG,UAAU,GAAG,SAAS,EAAE,CAAC;AAEjE,MAAM,WAAW,UAAU;IACvB,CAAC,GAAG,EAAE,MAAM,GAAG,SAAS,CAAC;CAC5B;AAED,MAAM,WAAW,sBAAsB;IACnC,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;IACpB,WAAW,EAAE,MAAM,CAAC;IACpB,IAAI,EAAE,MAAM,CAAC;IACb,YAAY,EAAE,MAAM,CAAC;IACrB,OAAO,EAAE,MAAM,EAAE,CAAC;IAClB,GAAG,EAAE,MAAM,GAAG,IAAI,CAAC;IACnB,GAAG,EAAE,MAAM,GAAG,IAAI,CAAC;IACnB,YAAY,EAAE,MAAM,CAAC;IACrB,QAAQ,EAAE,MAAM,CAAC;IACjB,OAAO,EAAE,OAAO,CAAC;IACjB,UAAU,EAAE,MAAM,CAAC;CACtB;AAED;;;;;GAKG;AACH,MAAM,MAAM,eAAe,GAAG,EAAE,GAAG,QAAQ,GAAG,WAAW,CAAC;AAE1D,gFAAgF;AAChF,wBAAgB,iBAAiB,CAAC,KAAK,EAAE,OAAO,GAAG,eAAe,CAEjE;AAED,MAAM,WAAW,mBAAmB;IAChC,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;IACpB,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE,MAAM,CAAC;IACjB,cAAc,EAAE,MAAM,EAAE,CAAC;IACzB,SAAS,EAAE,OAAO,CAAC;IACnB,WAAW,EAAE,eAAe,CAAC;IAC7B,SAAS,EAAE,OAAO,CAAC;IACnB,QAAQ,EAAE,UAAU,CAAC;CACxB;AAED,MAAM,WAAW,mBAAmB;IAChC,EAAE,EAAE,MAAM,CAAC;IACX,MAAM,EAAE,MAAM,CAAC;IACf,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;IACpB,SAAS,EAAE,MAAM,CAAC;IAClB,CAAC,EAAE,MAAM,CAAC;IACV,CAAC,EAAE,MAAM,CAAC;IACV,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;IACf,IAAI,EAAE,MAAM,CAAC;IACb,mFAAmF;IACnF,OAAO,EAAE,MAAM,CAAC;IAChB,UAAU,EAAE,MAAM,CAAC;IACnB,OAAO,EAAE,mBAAmB,EAAE,CAAC;IAC/B,QAAQ,EAAE,mBAAmB,EAAE,CAAC;IAChC,UAAU,EAAE,sBAAsB,EAAE,CAAC;IACrC,WAAW,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACpC,QAAQ,EAAE,UAAU,CAAC;CACxB;AAED,MAAM,WAAW,uBAAuB;IACpC,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,MAAM,CAAC;CAClB;AAED;;;;;GAKG;AACH,MAAM,MAAM,gBAAgB,GAAG,OAAO,GAAG,QAAQ,CAAC;AAElD,8EAA8E;AAC9E,wBAAgB,kBAAkB,CAAC,KAAK,EAAE,OAAO,GAAG,gBAAgB,CAEnE;AAED,MAAM,WAAW,mBAAmB;IAChC,gEAAgE;IAChE,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,uBAAuB,CAAC;IAC9B,EAAE,EAAE,uBAAuB,CAAC;IAC5B,KAAK,EAAE,gBAAgB,CAAC;IACxB,QAAQ,EAAE,UAAU,CAAC;CACxB;AAED;;;;;GAKG;AACH,MAAM,WAAW,mBAAmB;IAChC,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,CAAC,EAAE,MAAM,CAAC;IACV,CAAC,EAAE,MAAM,CAAC;IACV,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;IACf,2DAA2D;IAC3D,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,EAAE,UAAU,CAAC;CACxB;AAED,eAAO,MAAM,wBAAwB,EAAG,CAAU,CAAC;AACnD,MAAM,MAAM,sBAAsB,GAAG,OAAO,wBAAwB,CAAC;AAErE,MAAM,WAAW,eAAe;IAC5B,OAAO,EAAE,sBAAsB,CAAC;IAChC,KAAK,EAAE,mBAAmB,EAAE,CAAC;IAC7B,KAAK,EAAE,mBAAmB,EAAE,CAAC;IAC7B,KAAK,EAAE,mBAAmB,EAAE,CAAC;IAC7B,QAAQ,EAAE,UAAU,CAAC;CACxB;AAED,MAAM,MAAM,wBAAwB,GAAG,IAAI,CAAC,mBAAmB,EAAE,IAAI,GAAG,MAAM,CAAC,GACzE,OAAO,CAAC,IAAI,CAAC,mBAAmB,EAAE,IAAI,GAAG,MAAM,CAAC,CAAC,CAAC;AAExD,MAAM,MAAM,wBAAwB,GAAG,IAAI,CAAC,mBAAmB,EAAE,IAAI,GAAG,MAAM,CAAC,GACzE,OAAO,CAAC,IAAI,CAAC,mBAAmB,EAAE,IAAI,GAAG,MAAM,GAAG,SAAS,GAAG,UAAU,CAAC,CAAC,GAC1E;IACE,OAAO,CAAC,EAAE,SAAS,wBAAwB,EAAE,CAAC;IAC9C,QAAQ,CAAC,EAAE,SAAS,wBAAwB,EAAE,CAAC;CAClD,CAAC;AAEN,MAAM,MAAM,wBAAwB,GAAG,IAAI,CAAC,mBAAmB,EAAE,IAAI,GAAG,OAAO,GAAG,UAAU,CAAC,GAAG;IAC5F,EAAE,CAAC,EAAE,MAAM,CAAC;IACZ,KAAK,CAAC,EAAE,gBAAgB,CAAC;IACzB,QAAQ,CAAC,EAAE,UAAU,CAAC;CACzB,CAAC;AAEF,MAAM,MAAM,wBAAwB,GAAG,IAAI,CAAC,mBAAmB,EAAE,OAAO,GAAG,UAAU,CAAC,GAAG;IACrF,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,QAAQ,CAAC,EAAE,UAAU,CAAC;CACzB,CAAC;AAEF,MAAM,WAAW,oBAAoB;IACjC,KAAK,CAAC,EAAE,SAAS,wBAAwB,EAAE,CAAC;IAC5C,KAAK,CAAC,EAAE,SAAS,wBAAwB,EAAE,CAAC;IAC5C,KAAK,CAAC,EAAE,SAAS,wBAAwB,EAAE,CAAC;IAC5C,QAAQ,CAAC,EAAE,UAAU,CAAC;CACzB"}
@@ -4,7 +4,7 @@ export type { DiagramAction, DiagramActionState, } from './core/action-registry.
4
4
  export { DiagramCommandHistory } from './core/history.js';
5
5
  export type { DiagramCommand, DiagramHistoryListener, DiagramHistoryState, } from './core/history.js';
6
6
  export { DIAGRAM_DOCUMENT_VERSION } from './core/model.js';
7
- export type { DiagramDocument, DiagramDocumentEndpoint, DiagramDocumentInput, DiagramDocumentLink, DiagramDocumentLinkInput, DiagramDocumentNode, DiagramDocumentNodeInput, DiagramDocumentPort, DiagramDocumentPortInput, DiagramDocumentVersion, DiagramParameterSchema, JsonObject, JsonPrimitive, JsonValue, PortDynamicMode, } from './core/model.js';
7
+ export type { DiagramDocument, DiagramDocumentEndpoint, DiagramDocumentInput, DiagramDocumentLink, DiagramDocumentLinkInput, DiagramDocumentNode, DiagramDocumentNodeInput, DiagramDocumentPort, DiagramDocumentPortInput, DiagramDocumentVersion, DiagramDocumentZone, DiagramDocumentZoneInput, DiagramLinkStyle, DiagramParameterSchema, JsonObject, JsonPrimitive, JsonValue, PortDynamicMode, } from './core/model.js';
8
8
  export { createEditableDiagramPermissions, createDiagramNodeRuntimeState, createDiagramPortRuntimeState, createDiagramRuntimeState, cloneDiagramNodeErrors, cloneDiagramRuntimeState, createDiagramSelection, createDiagramViewState, createReadOnlyDiagramPermissions, } from './core/state.js';
9
9
  export { DIAGRAM_VIEW_STATE_VERSION, DiagramViewStateError, createDiagramViewStateDocument, parseDiagramViewState, serializeDiagramViewState, } from './core/view-state.js';
10
10
  export type { DiagramViewStateDocument } from './core/view-state.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/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@stocksharp/diagram",
3
- "version": "0.3.0",
3
+ "version": "0.4.1",
4
4
  "description": "Browser strategy-diagram editor for StockSharp with typed ports, palette, canvas rendering, persistence, and a TypeScript API.",
5
5
  "license": "SEE LICENSE IN LICENSE",
6
6
  "author": {
@@ -9,6 +9,8 @@ import { DiagramCommandHistory } from './core/history.js';
9
9
  import { setJsonKey } from './core/json.js';
10
10
  import { toPortDynamicMode } from './core/model.js';
11
11
  import type {
12
+ DiagramDocumentZone,
13
+ DiagramLinkStyle,
12
14
  DiagramDocument,
13
15
  DiagramParameterSchema,
14
16
  JsonObject,
@@ -83,6 +85,8 @@ export interface LinkInit {
83
85
  fromPort: string;
84
86
  to: string;
85
87
  toPort: string;
88
+ /** Solid unless the link is one that may not be there - see DiagramLinkStyle. */
89
+ style?: DiagramLinkStyle;
86
90
  metadata?: JsonObject;
87
91
  }
88
92
 
@@ -101,6 +105,8 @@ export interface DiagramOptions {
101
105
  gridColor?: string;
102
106
  /** Snap dragged nodes to a world-space grid. Defaults to false for the low-level renderer. */
103
107
  gridSnap?: boolean;
108
+ /** Tint for a zone that names no colour of its own. */
109
+ zoneColor?: string;
104
110
  /** Positive world-space grid step. Defaults to 28. */
105
111
  gridSize?: number;
106
112
  /** Optional explicit socket-type → colour map; unknown types hash to a hue. */
@@ -424,6 +430,7 @@ export class LinkModel {
424
430
  public toPort: string,
425
431
  id: string = '',
426
432
  metadata?: JsonObject,
433
+ public style: DiagramLinkStyle = 'solid',
427
434
  ) {
428
435
  this.id = id;
429
436
  this.metadata = copyJsonObject(metadata);
@@ -437,6 +444,7 @@ export class LinkModel {
437
444
  fromPort: this.fromPort,
438
445
  to: this.to,
439
446
  toPort: this.toPort,
447
+ style: this.style,
440
448
  metadata: copyJsonObject(this.metadata),
441
449
  };
442
450
  }
@@ -504,6 +512,7 @@ export class Diagram {
504
512
 
505
513
  private nodes: NodeModel[] = [];
506
514
  private links: LinkModel[] = [];
515
+ private zones: DiagramDocumentZone[] = [];
507
516
  private idSeq = 1;
508
517
  private linkSeq = 1;
509
518
  private documentMetadata: JsonObject = {};
@@ -827,7 +836,7 @@ export class Diagram {
827
836
  this.emit('linkValidation', { fromNode: fn, from: fp, toNode: tn, to: tp, ...validation });
828
837
  if (!validation.allowed) return false;
829
838
  }
830
- const link = new LinkModel(init.from, init.fromPort, init.to, init.toPort, init.id ?? this.nextLinkId(), init.metadata);
839
+ const link = new LinkModel(init.from, init.fromPort, init.to, init.toPort, init.id ?? this.nextLinkId(), init.metadata, init.style ?? 'solid');
831
840
  if (this.links.some((l) => l.id === link.id)) return false;
832
841
  this.links.splice(clamp(Math.trunc(index), 0, this.links.length), 0, link);
833
842
  this.emit('linkAdded', { link });
@@ -1200,7 +1209,7 @@ export class Diagram {
1200
1209
  if (this.links.some((existing) => existing.id === id)) {
1201
1210
  throw new Error(`ssdiagram: duplicate link id "${id}"`);
1202
1211
  }
1203
- const model = new LinkModel(link.from, link.fromPort, link.to, link.toPort, id, link.metadata);
1212
+ const model = new LinkModel(link.from, link.fromPort, link.to, link.toPort, id, link.metadata, link.style ?? 'solid');
1204
1213
  if (!this.links.some((existing) => existing.key() === model.key())) this.links.push(model);
1205
1214
  }
1206
1215
  for (const node of this.nodes) {
@@ -1232,9 +1241,11 @@ export class Diagram {
1232
1241
  fromPort: link.from.portId,
1233
1242
  to: link.to.nodeId,
1234
1243
  toPort: link.to.portId,
1244
+ style: link.style,
1235
1245
  metadata: link.metadata,
1236
1246
  })),
1237
1247
  );
1248
+ this.zones = document.zones.map((zone) => ({ ...zone, metadata: copyJsonObject(zone.metadata) }));
1238
1249
  this.documentMetadata = copyJsonObject(document.metadata);
1239
1250
  }
1240
1251
 
@@ -1245,8 +1256,10 @@ export class Diagram {
1245
1256
  id: link.id,
1246
1257
  from: { nodeId: link.from, portId: link.fromPort },
1247
1258
  to: { nodeId: link.to, portId: link.toPort },
1259
+ style: link.style,
1248
1260
  metadata: link.metadata,
1249
1261
  })),
1262
+ zones: this.zones.map((zone) => ({ ...zone, metadata: copyJsonObject(zone.metadata) })),
1250
1263
  metadata: this.documentMetadata,
1251
1264
  });
1252
1265
  }
@@ -2507,7 +2520,10 @@ export class Diagram {
2507
2520
  if (options.grid) this.drawGrid();
2508
2521
  ctx.setTransform(this.dpr * this.scale, 0, 0, this.dpr * this.scale,
2509
2522
  this.dpr * this.offX, this.dpr * (this.offY + introDy));
2510
- // Links first. Each link jumps over the verticals of the links
2523
+ // Zones sit under everything: they say where things are, and a place that painted over
2524
+ // its occupants would be worse than no place at all.
2525
+ this.drawZones();
2526
+ // Links next. Each link jumps over the verticals of the links
2511
2527
  // drawn before it (deterministic bridge — Link.JumpOver parity).
2512
2528
  const prior: Seg[] = []; // segments of links already drawn
2513
2529
  const hoveredNode = this.hoverPort?.node ?? this.hoverNode;
@@ -2528,7 +2544,7 @@ export class Diagram {
2528
2544
  const color = state === 'sel' ? this.selectionColor() : state === 'hov' ? this.linkHoverColor() : baseColor;
2529
2545
  const width = state === 'sel' ? 3 : state === 'hov' ? 2.6 : 2;
2530
2546
  const pts = this.routeLink(a, b, new Set([l.from, l.to]));
2531
- this.strokeRoute(pts, color, width, prior);
2547
+ this.strokeRoute(pts, color, width, prior, l.style);
2532
2548
  this.drawArrow(pts, color);
2533
2549
  for (let k = 1; k < pts.length; k += 1) {
2534
2550
  const [x1, y1] = pts[k - 1];
@@ -2671,6 +2687,40 @@ export class Diagram {
2671
2687
  }
2672
2688
  return lines.length > 0 ? lines : [''];
2673
2689
  }
2690
+ private drawZones(): void {
2691
+ if (this.zones.length === 0) return;
2692
+
2693
+ const ctx = this.ctx;
2694
+
2695
+ for (const zone of this.zones) {
2696
+ const tint = zone.color.length > 0 ? zone.color : (this.opts.zoneColor ?? '#8a8f98');
2697
+ ctx.save();
2698
+ roundRect(ctx, zone.x, zone.y, zone.width, zone.height, 10);
2699
+ ctx.globalAlpha = 0.12;
2700
+ ctx.fillStyle = tint;
2701
+ ctx.fill();
2702
+ ctx.globalAlpha = 0.5;
2703
+ ctx.setLineDash([10, 6]);
2704
+ ctx.lineWidth = 1.5;
2705
+ ctx.strokeStyle = tint;
2706
+ ctx.stroke();
2707
+ ctx.restore();
2708
+
2709
+ if (zone.name.length === 0) continue;
2710
+
2711
+ ctx.save();
2712
+ ctx.globalAlpha = 0.75;
2713
+ ctx.fillStyle = tint;
2714
+ ctx.font = '600 12px Segoe UI, Tahoma, sans-serif';
2715
+ ctx.textAlign = 'left';
2716
+ ctx.textBaseline = 'top';
2717
+ // Inside the top-left corner: a caption outside the box would collide with whatever
2718
+ // sits above it, and the corner is the one spot a rectangle always has to spare.
2719
+ ctx.fillText(zone.name, zone.x + 12, zone.y + 9, Math.max(0, zone.width - 24));
2720
+ ctx.restore();
2721
+ }
2722
+ }
2723
+
2674
2724
  private drawGrid(): void {
2675
2725
  const ctx = this.ctx;
2676
2726
  const step = this.gridSize * this.scale;
@@ -2796,10 +2846,12 @@ export class Diagram {
2796
2846
  // Symmetric jump-over: any segment of THIS link hops the perpendicular
2797
2847
  // segments of links drawn before it (H over earlier V, V over earlier
2798
2848
  // H). Exactly one bridge per real crossing, consistent everywhere.
2799
- private strokeRoute(pts: number[][], color: string, width: number, prior: Seg[]): void {
2849
+ private strokeRoute(pts: number[][], color: string, width: number, prior: Seg[], style: DiagramLinkStyle = 'solid'): void {
2800
2850
  const ctx = this.ctx;
2801
2851
  ctx.strokeStyle = color;
2802
2852
  ctx.lineWidth = width;
2853
+ // The dash is measured in world units, so it keeps its rhythm as the canvas is zoomed.
2854
+ if (style === 'dashed') ctx.setLineDash([9, 6]);
2803
2855
  ctx.lineJoin = 'miter';
2804
2856
  ctx.lineCap = 'butt';
2805
2857
  ctx.beginPath();
@@ -2852,6 +2904,7 @@ export class Diagram {
2852
2904
  }
2853
2905
  }
2854
2906
  ctx.stroke();
2907
+ ctx.setLineDash([]);
2855
2908
  }
2856
2909
  private drawArrow(pts: number[][], color: string): void {
2857
2910
  const n = pts.length;
@@ -6,8 +6,10 @@ import {
6
6
  type DiagramDocumentEndpoint,
7
7
  type DiagramDocumentInput,
8
8
  type DiagramDocumentLink,
9
+ type DiagramLinkStyle,
9
10
  type DiagramDocumentNode,
10
11
  type DiagramDocumentPort,
12
+ type DiagramDocumentZone,
11
13
  type DiagramParameterSchema,
12
14
  type PortDynamicMode,
13
15
  type JsonObject,
@@ -21,10 +23,13 @@ export type {
21
23
  DiagramDocumentInput,
22
24
  DiagramDocumentLink,
23
25
  DiagramDocumentLinkInput,
26
+ DiagramLinkStyle,
24
27
  DiagramDocumentNode,
25
28
  DiagramDocumentNodeInput,
26
29
  DiagramDocumentPort,
27
30
  DiagramDocumentPortInput,
31
+ DiagramDocumentZone,
32
+ DiagramDocumentZoneInput,
28
33
  DiagramDocumentVersion,
29
34
  DiagramParameterSchema,
30
35
  JsonObject,
@@ -70,10 +75,22 @@ export function createDiagramDocument(input: DiagramDocumentInput = {}): Diagram
70
75
  }
71
76
  return normalizeLink({ ...link, id }, `$.links[${index}]`);
72
77
  });
78
+ const rawZones = mapElements(input.zones, '$.zones');
79
+ const usedZoneIds = new Set<string>();
80
+ const zones = rawZones.map((zone, index) => {
81
+ const normalized = normalizeZone(zone, `$.zones[${index}]`);
82
+ if (usedZoneIds.has(normalized.id)) {
83
+ throw new DiagramDocumentError(`duplicate zone id "${normalized.id}"`, `$.zones[${index}].id`);
84
+ }
85
+ usedZoneIds.add(normalized.id);
86
+ return normalized;
87
+ });
88
+
73
89
  const document: DiagramDocument = {
74
90
  version: DIAGRAM_DOCUMENT_VERSION,
75
91
  nodes,
76
92
  links,
93
+ zones,
77
94
  metadata: cloneJsonObject(input.metadata ?? {}, '$.metadata'),
78
95
  };
79
96
  validateDocument(document);
@@ -108,6 +125,11 @@ export function parseDiagramDocument(source: string | unknown): DiagramDocument
108
125
  version: DIAGRAM_DOCUMENT_VERSION,
109
126
  nodes: requireArray(root.nodes, '$.nodes').map((node, index) => parseNode(node, `$.nodes[${index}]`)),
110
127
  links: requireArray(root.links, '$.links').map((link, index) => parseLink(link, `$.links[${index}]`)),
128
+ // Zones arrived after the first documents were written, so their absence is not a fault:
129
+ // an older file simply has none, and reading it must not need a migration step.
130
+ zones: root.zones === undefined || root.zones === null
131
+ ? []
132
+ : requireArray(root.zones, '$.zones').map((zone, index) => normalizeZone(zone, `$.zones[${index}]`)),
111
133
  metadata: cloneJsonObject(root.metadata, '$.metadata'),
112
134
  };
113
135
  validateDocument(document);
@@ -182,10 +204,43 @@ function normalizeLink(value: unknown, path: string): DiagramDocumentLink {
182
204
  id: requireIdentifier(input.id, `${path}.id`),
183
205
  from: normalizeEndpoint(input.from, `${path}.from`),
184
206
  to: normalizeEndpoint(input.to, `${path}.to`),
207
+ style: requireLinkStyle(input.style, `${path}.style`),
185
208
  metadata: cloneJsonObject(input.metadata ?? {}, `${path}.metadata`),
186
209
  };
187
210
  }
188
211
 
212
+ // A style the caller misspelled is a drawing that quietly loses its meaning, so it is refused
213
+ // rather than defaulted - unlike an absent one, which simply means a plain line.
214
+ function requireLinkStyle(value: unknown, path: string): DiagramLinkStyle {
215
+ if (value === undefined || value === null) return 'solid';
216
+ if (value !== 'solid' && value !== 'dashed') {
217
+ throw new DiagramDocumentError(`unknown link style "${String(value)}"`, path);
218
+ }
219
+ return value;
220
+ }
221
+
222
+ function normalizeZone(value: unknown, path: string): DiagramDocumentZone {
223
+ const input = requireStructure(value, path);
224
+ return {
225
+ id: requireIdentifier(input.id, `${path}.id`),
226
+ name: requireString(input.name, `${path}.name`),
227
+ x: requireNumber(input.x, `${path}.x`),
228
+ y: requireNumber(input.y, `${path}.y`),
229
+ width: requirePositiveSize(input.width, `${path}.width`),
230
+ height: requirePositiveSize(input.height, `${path}.height`),
231
+ color: input.color === undefined || input.color === null ? '' : requireString(input.color, `${path}.color`),
232
+ metadata: cloneJsonObject(input.metadata ?? {}, `${path}.metadata`),
233
+ };
234
+ }
235
+
236
+ // A zone with no area cannot be pointed at, and a negative one paints outside itself, so the
237
+ // size is refused rather than clamped - a caller that computed it wrong wants to hear about it.
238
+ function requirePositiveSize(value: unknown, path: string): number {
239
+ const size = requireNumber(value, path);
240
+ if (!(size > 0)) throw new DiagramDocumentError('size must be greater than zero', path);
241
+ return size;
242
+ }
243
+
189
244
  function normalizeEndpoint(value: unknown, path: string): DiagramDocumentEndpoint {
190
245
  const input = requireStructure(value, path);
191
246
  return {
@@ -257,6 +312,7 @@ function parseLink(value: unknown, path: string): DiagramDocumentLink {
257
312
  id: requireString(link.id, `${path}.id`),
258
313
  from: parseEndpoint(link.from, `${path}.from`),
259
314
  to: parseEndpoint(link.to, `${path}.to`),
315
+ style: link.style === undefined ? undefined : requireLinkStyle(link.style, `${path}.style`),
260
316
  metadata: cloneJsonObject(link.metadata, `${path}.metadata`),
261
317
  }, path);
262
318
  }
package/src/core/model.ts CHANGED
@@ -72,11 +72,43 @@ export interface DiagramDocumentEndpoint {
72
72
  portId: string;
73
73
  }
74
74
 
75
+ /**
76
+ * How a link is drawn. A dashed link reads as one that may or may not be there -
77
+ * an optional hop, a path taken only in some deployments - which a solid line
78
+ * cannot say. The renderer compares this with ===, so a value outside the set
79
+ * would silently fall through to solid; hence a union rather than a string.
80
+ */
81
+ export type DiagramLinkStyle = 'solid' | 'dashed';
82
+
83
+ /** Narrows an untyped value to the closed set, defaulting to a plain line. */
84
+ export function toDiagramLinkStyle(value: unknown): DiagramLinkStyle {
85
+ return value === 'dashed' ? 'dashed' : 'solid';
86
+ }
87
+
75
88
  export interface DiagramDocumentLink {
76
89
  /** Stable identity used by selection, relinking and history. */
77
90
  id: string;
78
91
  from: DiagramDocumentEndpoint;
79
92
  to: DiagramDocumentEndpoint;
93
+ style: DiagramLinkStyle;
94
+ metadata: JsonObject;
95
+ }
96
+
97
+ /**
98
+ * A labelled rectangle drawn behind the nodes. It says where things are rather
99
+ * than what they do - a colocation cage, a tenant boundary, a process - which no
100
+ * arrangement of nodes and links can state on its own. A zone owns nothing: the
101
+ * nodes that sit on it are not its children, so moving one changes no membership.
102
+ */
103
+ export interface DiagramDocumentZone {
104
+ id: string;
105
+ name: string;
106
+ x: number;
107
+ y: number;
108
+ width: number;
109
+ height: number;
110
+ /** Empty means the renderer picks its own neutral tint. */
111
+ color: string;
80
112
  metadata: JsonObject;
81
113
  }
82
114
 
@@ -87,6 +119,7 @@ export interface DiagramDocument {
87
119
  version: DiagramDocumentVersion;
88
120
  nodes: DiagramDocumentNode[];
89
121
  links: DiagramDocumentLink[];
122
+ zones: DiagramDocumentZone[];
90
123
  metadata: JsonObject;
91
124
  }
92
125
 
@@ -100,13 +133,20 @@ export type DiagramDocumentNodeInput = Pick<DiagramDocumentNode, 'id' | 'name'>
100
133
  outPorts?: readonly DiagramDocumentPortInput[];
101
134
  };
102
135
 
103
- export type DiagramDocumentLinkInput = Omit<DiagramDocumentLink, 'id' | 'metadata'> & {
136
+ export type DiagramDocumentLinkInput = Omit<DiagramDocumentLink, 'id' | 'style' | 'metadata'> & {
104
137
  id?: string;
138
+ style?: DiagramLinkStyle;
139
+ metadata?: JsonObject;
140
+ };
141
+
142
+ export type DiagramDocumentZoneInput = Omit<DiagramDocumentZone, 'color' | 'metadata'> & {
143
+ color?: string;
105
144
  metadata?: JsonObject;
106
145
  };
107
146
 
108
147
  export interface DiagramDocumentInput {
109
148
  nodes?: readonly DiagramDocumentNodeInput[];
110
149
  links?: readonly DiagramDocumentLinkInput[];
150
+ zones?: readonly DiagramDocumentZoneInput[];
111
151
  metadata?: JsonObject;
112
152
  }
package/src/index.ts CHANGED
@@ -32,6 +32,9 @@ export type {
32
32
  DiagramDocumentPort,
33
33
  DiagramDocumentPortInput,
34
34
  DiagramDocumentVersion,
35
+ DiagramDocumentZone,
36
+ DiagramDocumentZoneInput,
37
+ DiagramLinkStyle,
35
38
  DiagramParameterSchema,
36
39
  JsonObject,
37
40
  JsonPrimitive,