@zombie-mermaid/svg-renderer 3.1.0 → 3.2.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.
package/dist/index.js CHANGED
@@ -1,24 +1,24 @@
1
1
  import { DEFAULTS as e, applyClickStatement as t, buildStyleBlock as n, detectDiagramType as r, escapeAttr as i, escapeXml as a, extractInitConfig as o, f as s, formatCssColor as c, getReadableTextColor as l, isMonospaceFont as u, measureMultilineText as d, measureTextWidth as f, mixSrgb as p, normalizeBrTags as m, parseCssColor as h, parseStyleProps as g, renderMultilineText as _, renderMultilineTextWithBackground as v, resolveNodeStyle as y, safeHref as b, sanitizeClassName as x, setMonospaceMetrics as S, splitStatements as C, splitStatementsByLine as w, styleOpenTag as T, svgOpenTag as E, themeStyleDeclarations as D, toDirection as O, tryApplyClassAssignment as k, tryApplyClassDef as A, tryApplyStyleStatement as j, withDirectionOverride as ee } from "@zombie-mermaid/core";
2
2
  import te from "elkjs/lib/elk.bundled.js";
3
- import { CHART_ACCENT_FALLBACK as ne, formatClassMember as re, getSeriesColor as ie, matchExpandedBlock as ae, parseClassDiagram as oe, parseErDiagram as se, parseExpandedMeta as ce, parseSequenceDiagram as le, parseXYChart as ue, resolveShapeName as de } from "@zombie-mermaid/mermaid-parser";
4
- import { decodeXML as fe } from "entities";
3
+ import { CHART_ACCENT_FALLBACK as ne, architectureToGraph as re, c4BoundaryTypeLine as ie, c4RelLabelLines as ae, c4TypeLine as oe, formatClassMember as se, getSeriesColor as ce, matchExpandedBlock as le, parseArchitecture as ue, parseC4Diagram as de, parseClassDiagram as fe, parseErDiagram as pe, parseExpandedMeta as me, parseSequenceDiagram as he, parseXYChart as ge, resolveShapeName as _e } from "@zombie-mermaid/mermaid-parser";
4
+ import { decodeXML as ve } from "entities";
5
5
  //#region packages/svg-renderer/src/edge-curves.ts
6
- function pe(e) {
6
+ function ye(e) {
7
7
  return s`M ${e.x} ${e.y}`;
8
8
  }
9
- function me(e) {
10
- return pe(e[0]) + e.slice(1).map((e) => s` L ${e.x} ${e.y}`).join("");
9
+ function be(e) {
10
+ return ye(e[0]) + e.slice(1).map((e) => s` L ${e.x} ${e.y}`).join("");
11
11
  }
12
- function he(e) {
13
- if (e.length < 3) return me(e);
14
- let t = e[e.length - 1], n = [pe(e[0])], r = (e, t, n) => s` C ${(2 * e.x + t.x) / 3} ${(2 * e.y + t.y) / 3},` + s` ${(e.x + 2 * t.x) / 3} ${(e.y + 2 * t.y) / 3},` + s` ${(e.x + 4 * t.x + n.x) / 6} ${(e.y + 4 * t.y + n.y) / 6}`;
12
+ function xe(e) {
13
+ if (e.length < 3) return be(e);
14
+ let t = e[e.length - 1], n = [ye(e[0])], r = (e, t, n) => s` C ${(2 * e.x + t.x) / 3} ${(2 * e.y + t.y) / 3},` + s` ${(e.x + 2 * t.x) / 3} ${(e.y + 2 * t.y) / 3},` + s` ${(e.x + 4 * t.x + n.x) / 6} ${(e.y + 4 * t.y + n.y) / 6}`;
15
15
  n.push(s` L ${(5 * e[0].x + e[1].x) / 6}` + s` ${(5 * e[0].y + e[1].y) / 6}`);
16
16
  for (let t = 2; t < e.length; t++) n.push(r(e[t - 2], e[t - 1], e[t]));
17
17
  return n.push(r(e[e.length - 2], t, t)), n.push(s` L ${t.x} ${t.y}`), n.join("");
18
18
  }
19
- function ge(e) {
20
- if (e.length < 3) return me(e);
21
- let t = [pe(e[0])];
19
+ function Se(e) {
20
+ if (e.length < 3) return be(e);
21
+ let t = [ye(e[0])];
22
22
  for (let n = 1; n < e.length - 1; n++) {
23
23
  let r = e[n - 1], i = e[n], a = e[n + 1], o = Math.hypot(i.x - r.x, i.y - r.y), c = Math.hypot(a.x - i.x, a.y - i.y);
24
24
  if (o === 0 || c === 0) {
@@ -31,8 +31,8 @@ function ge(e) {
31
31
  let n = e[e.length - 1];
32
32
  return t.push(s` L ${n.x} ${n.y}`), t.join("");
33
33
  }
34
- function _e(e, t) {
35
- let n = [pe(e[0])], r = e.length - 1;
34
+ function Ce(e, t) {
35
+ let n = [ye(e[0])], r = e.length - 1;
36
36
  for (let i = 0; i < r; i++) {
37
37
  let a = e[i], o = e[i + 1];
38
38
  if (i === r - 1) {
@@ -48,51 +48,51 @@ function _e(e, t) {
48
48
  }
49
49
  return n.join("");
50
50
  }
51
- function ve(e, t = "linear") {
51
+ function we(e, t = "linear") {
52
52
  if (e.length === 0) return "";
53
- if (e.length === 1) return pe(e[0]);
53
+ if (e.length === 1) return ye(e[0]);
54
54
  switch (t) {
55
- case "basis": return he(e);
56
- case "natural": return ge(e);
57
- case "step": return _e(e, "mid");
58
- case "stepBefore": return _e(e, "before");
59
- case "stepAfter": return _e(e, "after");
60
- default: return me(e);
55
+ case "basis": return xe(e);
56
+ case "natural": return Se(e);
57
+ case "step": return Ce(e, "mid");
58
+ case "stepBefore": return Ce(e, "before");
59
+ case "stepAfter": return Ce(e, "after");
60
+ default: return be(e);
61
61
  }
62
62
  }
63
63
  //#endregion
64
64
  //#region packages/svg-renderer/src/elk-instance.ts
65
- var ye = null, be = null, xe = 20;
66
- function Se(e = xe) {
65
+ var Te = null, Ee = null, De = 20;
66
+ function Oe(e = De) {
67
67
  if (!Number.isInteger(e) || e < 1) throw Error(`createLayoutCache: maxSize must be a positive integer, got ${e}`);
68
68
  return {
69
69
  map: /* @__PURE__ */ new Map(),
70
70
  maxSize: e
71
71
  };
72
72
  }
73
- function Ce(e) {
74
- if (Array.isArray(e)) return `[${e.map(Ce).join(",")}]`;
73
+ function ke(e) {
74
+ if (Array.isArray(e)) return `[${e.map(ke).join(",")}]`;
75
75
  if (typeof e == "object" && e) {
76
76
  let t = e;
77
- return `{${Object.keys(t).sort().map((e) => `${JSON.stringify(e)}:${Ce(t[e])}`).join(",")}}`;
77
+ return `{${Object.keys(t).sort().map((e) => `${JSON.stringify(e)}:${ke(t[e])}`).join(",")}}`;
78
78
  }
79
79
  return JSON.stringify(e);
80
80
  }
81
- function we() {
82
- if (ye && be) return be;
81
+ function Ae() {
82
+ if (Te && Ee) return Ee;
83
83
  let e = [], t = globalThis.setTimeout;
84
84
  globalThis.setTimeout = (n, r) => r === 0 ? (e.push(n), 0) : t(n, r);
85
85
  let n = globalThis, r = "self" in n, i = n.self;
86
- if (r && n.document === void 0 && delete n.self, ye = new te(), !ye) throw Error("ELKBundled construction unexpectedly produced no instance");
87
- return r && (n.self = i), globalThis.setTimeout = t, e.forEach((e) => e()), be = ye.worker.worker, be;
86
+ if (r && n.document === void 0 && delete n.self, Te = new te(), !Te) throw Error("ELKBundled construction unexpectedly produced no instance");
87
+ return r && (n.self = i), globalThis.setTimeout = t, e.forEach((e) => e()), Ee = Te.worker.worker, Ee;
88
88
  }
89
- function Te(e, t) {
90
- let n = t, r = n ? Ce(e) : void 0;
89
+ function je(e, t) {
90
+ let n = t, r = n ? ke(e) : void 0;
91
91
  if (n && r !== void 0) {
92
92
  let e = n.map.get(r);
93
93
  if (e) return n.map.delete(r), n.map.set(r, e), e;
94
94
  }
95
- let i = we(), a, o, s = i.onmessage;
95
+ let i = Ae(), a, o, s = i.onmessage;
96
96
  if (i.onmessage = (e) => {
97
97
  e.data.error ? o = e.data.error : a = e.data.data;
98
98
  }, i.dispatcher.saveDispatch({ data: {
@@ -112,10 +112,10 @@ function Te(e, t) {
112
112
  function M(e, t, n) {
113
113
  return f(e, t, n);
114
114
  }
115
- function Ee(e, t) {
115
+ function Me(e, t) {
116
116
  return e.length * t * .6;
117
117
  }
118
- var De = "'JetBrains Mono'", Oe = `${De}, 'SF Mono', 'Fira Code', ui-monospace, monospace`, N = {
118
+ var Ne = "'JetBrains Mono'", Pe = `${Ne}, 'SF Mono', 'Fira Code', ui-monospace, monospace`, N = {
119
119
  nodeLabel: 13,
120
120
  edgeLabel: 11,
121
121
  groupHeader: 12
@@ -131,7 +131,7 @@ var F = {
131
131
  nodeLabel: 500,
132
132
  edgeLabel: 400,
133
133
  groupHeader: 600
134
- }, ke = 12, I = {
134
+ }, Fe = 12, I = {
135
135
  horizontal: 20,
136
136
  vertical: 10,
137
137
  diamondExtra: 24
@@ -142,7 +142,7 @@ var F = {
142
142
  }, R = "0.35em", z = {
143
143
  width: 8,
144
144
  height: 5
145
- }, Ae = {
145
+ }, Ie = {
146
146
  font: "Inter",
147
147
  padding: 40,
148
148
  nodeSpacing: 28,
@@ -150,13 +150,14 @@ var F = {
150
150
  mergeEdges: !0,
151
151
  thoroughness: 3,
152
152
  fontSizes: N
153
- }, je = {
153
+ }, Le = {
154
154
  flowchart: "DOWN",
155
155
  state: "DOWN",
156
156
  class: "DOWN",
157
- er: "RIGHT"
157
+ er: "RIGHT",
158
+ c4: "DOWN"
158
159
  };
159
- function Me(e, t) {
160
+ function Re(e, t) {
160
161
  switch (e) {
161
162
  case "LR": return "RIGHT";
162
163
  case "RL": return "LEFT";
@@ -166,7 +167,7 @@ function Me(e, t) {
166
167
  default: return t;
167
168
  }
168
169
  }
169
- function Ne(e) {
170
+ function ze(e) {
170
171
  let t = typeof e == "number" ? {
171
172
  top: e,
172
173
  left: e,
@@ -175,17 +176,17 @@ function Ne(e) {
175
176
  } : e;
176
177
  return `[top=${t.top},left=${t.left},bottom=${t.bottom},right=${t.right}]`;
177
178
  }
178
- function Pe(e) {
179
+ function Be(e) {
179
180
  return {
180
181
  "elk.algorithm": "layered",
181
182
  "elk.direction": e.direction,
182
183
  "elk.spacing.nodeNode": String(e.nodeSpacing),
183
184
  "elk.layered.spacing.nodeNodeBetweenLayers": String(e.layerSpacing),
184
- "elk.padding": Ne(e.padding),
185
+ "elk.padding": ze(e.padding),
185
186
  "elk.edgeRouting": "ORTHOGONAL"
186
187
  };
187
188
  }
188
- function B(e, t, n) {
189
+ function Ve(e, t, n) {
189
190
  let r = {
190
191
  id: e,
191
192
  width: t.width,
@@ -193,11 +194,11 @@ function B(e, t, n) {
193
194
  };
194
195
  return n !== void 0 && (r.labels = [{ text: n }]), r;
195
196
  }
196
- var Fe = {
197
+ var He = {
197
198
  "elk.edgeLabels.inline": "true",
198
199
  "elk.edgeLabels.placement": "CENTER"
199
200
  };
200
- function Ie(e, t) {
201
+ function Ue(e, t) {
201
202
  let n = d(e, t.fontSize, F.edgeLabel), r = {
202
203
  text: e,
203
204
  width: n.width + 8,
@@ -205,22 +206,22 @@ function Ie(e, t) {
205
206
  };
206
207
  return t.layoutOptions && (r.layoutOptions = { ...t.layoutOptions }), r;
207
208
  }
208
- function V(e) {
209
+ function B(e) {
209
210
  let t = {
210
211
  id: e.id,
211
212
  sources: [e.source],
212
213
  targets: [e.target]
213
214
  };
214
- return e.label && (t.labels = [Ie(e.label, e.labelStyle)]), t;
215
+ return e.label && (t.labels = [Ue(e.label, e.labelStyle)]), t;
215
216
  }
216
217
  //#endregion
217
218
  //#region packages/svg-renderer/src/layout-engine/to-elk.ts
218
- function Le(e) {
219
- return Me(e, je.flowchart);
219
+ function We(e) {
220
+ return Re(e, Le.flowchart);
220
221
  }
221
- function Re(e) {
222
+ function Ge(e) {
222
223
  return {
223
- ...Pe(e),
224
+ ...Be(e),
224
225
  "elk.spacing.edgeEdge": "12",
225
226
  "elk.layered.spacing.edgeEdgeBetweenLayers": "12",
226
227
  "elk.layered.spacing.edgeNodeBetweenLayers": "12",
@@ -228,13 +229,13 @@ function Re(e) {
228
229
  "elk.contentAlignment": "H_CENTER V_CENTER"
229
230
  };
230
231
  }
231
- function ze(e) {
232
+ function Ke(e) {
232
233
  return {
233
234
  fontSize: e.fontSizes.edgeLabel,
234
- layoutOptions: Fe
235
+ layoutOptions: He
235
236
  };
236
237
  }
237
- function Be(e, t, n, r) {
238
+ function qe(e, t, n, r) {
238
239
  let i = d(t, r, F.nodeLabel), a = i.width + I.horizontal * 2, o = i.height + I.vertical * 2;
239
240
  if (n === "diamond") {
240
241
  let e = Math.max(a, o) + I.diamondExtra;
@@ -252,22 +253,22 @@ function Be(e, t, n, r) {
252
253
  height: o
253
254
  });
254
255
  }
255
- var Ve = " root";
256
- function He(e) {
257
- for (let t of e) if (t.direction !== void 0 || He(t.children)) return !0;
256
+ var Je = " root";
257
+ function Ye(e) {
258
+ for (let t of e) if (t.direction !== void 0 || Ye(t.children)) return !0;
258
259
  return !1;
259
260
  }
260
- function Ue(e, t) {
261
+ function Xe(e, t) {
261
262
  for (let n of e.nodeIds) t.add(n);
262
- for (let n of e.children) Ue(n, t);
263
+ for (let n of e.children) Xe(n, t);
263
264
  }
264
- function We(e, t) {
265
+ function Ze(e, t) {
265
266
  let n = /* @__PURE__ */ new Set();
266
- if (Ue(e, n), n.size === 0) return !0;
267
+ if (Xe(e, n), n.size === 0) return !0;
267
268
  let r = (t) => n.has(t) || t === e.id;
268
269
  return !t.edges.some((e) => r(e.source) !== r(e.target));
269
270
  }
270
- function Ge(e) {
271
+ function Qe(e) {
271
272
  let t = /* @__PURE__ */ new Map();
272
273
  function n(e, r) {
273
274
  let i = [...r, e.id];
@@ -277,15 +278,15 @@ function Ge(e) {
277
278
  for (let t of e) n(t, []);
278
279
  return t;
279
280
  }
280
- function Ke(e, t) {
281
+ function $e(e, t) {
281
282
  let n = 0;
282
283
  for (; n < e.length && n < t.length && e[n] === t[n];) n++;
283
284
  return n;
284
285
  }
285
- function qe(e, t) {
286
+ function et(e, t) {
286
287
  let n = /* @__PURE__ */ new Set(), r = /* @__PURE__ */ new Set();
287
- for (let t of e.subgraphs) r.add(t.id), Ye(t, n, r);
288
- let i = Xe(e.subgraphs), a = Ge(e.subgraphs), o = (e) => e ? a.get(e) ?? [] : [], s = /* @__PURE__ */ new Map();
288
+ for (let t of e.subgraphs) r.add(t.id), nt(t, n, r);
289
+ let i = rt(e.subgraphs), a = Qe(e.subgraphs), o = (e) => e ? a.get(e) ?? [] : [], s = /* @__PURE__ */ new Map();
289
290
  s.set(null, []);
290
291
  let c = [];
291
292
  for (let t = 0; t < e.edges.length; t++) {
@@ -306,14 +307,14 @@ function qe(e, t) {
306
307
  tgtChain: o(a)
307
308
  });
308
309
  }
309
- let l = He(e.subgraphs), u = [], d = [], f = {
310
- ...Re({
311
- direction: Le(e.direction),
310
+ let l = Ye(e.subgraphs), u = [], d = [], f = {
311
+ ...Ge({
312
+ direction: We(e.direction),
312
313
  nodeSpacing: t.nodeSpacing,
313
314
  layerSpacing: t.layerSpacing,
314
315
  padding: t.padding
315
316
  }),
316
- "elk.layered.thoroughness": String(Ae.thoroughness),
317
+ "elk.layered.thoroughness": String(Ie.thoroughness),
317
318
  "elk.layered.highDegreeNodes.treatment": "true",
318
319
  "elk.layered.highDegreeNodes.threshold": "8",
319
320
  "elk.layered.compaction.postCompaction.strategy": "LEFT_RIGHT_CONSTRAINT_LOCKING",
@@ -330,7 +331,7 @@ function qe(e, t) {
330
331
  m.set(e, n), n.push(t);
331
332
  }
332
333
  if (l) for (let { index: e, edge: n, srcChain: r, tgtChain: i } of c) {
333
- let a = Ke(r, i), o = n.source;
334
+ let a = $e(r, i), o = n.source;
334
335
  if (r.length > a) {
335
336
  for (let t = r.length - 1; t >= a; t--) {
336
337
  let i = r[t], a = `${i}_out_${e}`;
@@ -358,33 +359,33 @@ function qe(e, t) {
358
359
  }
359
360
  s = `${i[a]}_in_${e}`;
360
361
  }
361
- g(a > 0 ? r[a - 1] : Ve, V({
362
+ g(a > 0 ? r[a - 1] : Je, B({
362
363
  id: `e${e}`,
363
364
  source: o,
364
365
  target: s,
365
366
  label: n.label,
366
- labelStyle: ze(t)
367
+ labelStyle: Ke(t)
367
368
  }));
368
369
  }
369
370
  for (let [i, a] of e.nodes) if (!n.has(i) && !r.has(i)) {
370
- let e = Be(i, a.label, a.shape, t.fontSizes.nodeLabel);
371
- u.push(B(i, e, a.label));
371
+ let e = qe(i, a.label, a.shape, t.fontSizes.nodeLabel);
372
+ u.push(Ve(i, e, a.label));
372
373
  }
373
- for (let n of [...e.subgraphs].reverse()) u.push(Je(n, e, t, s, p, m, e.direction));
374
- for (let { index: e, edge: n } of s.get(null)) n.source !== n.target && d.push(V({
374
+ for (let n of [...e.subgraphs].reverse()) u.push(tt(n, e, t, s, p, m, e.direction));
375
+ for (let { index: e, edge: n } of s.get(null)) n.source !== n.target && d.push(B({
375
376
  id: `e${e}`,
376
377
  source: n.source,
377
378
  target: n.target,
378
379
  label: n.label,
379
- labelStyle: ze(t)
380
+ labelStyle: Ke(t)
380
381
  }));
381
- if (l) for (let e of m.get(Ve) ?? []) d.push(e);
382
- else for (let { index: e, edge: n } of c) d.push(V({
382
+ if (l) for (let e of m.get(Je) ?? []) d.push(e);
383
+ else for (let { index: e, edge: n } of c) d.push(B({
383
384
  id: `e${e}`,
384
385
  source: n.source,
385
386
  target: n.target,
386
387
  label: n.label,
387
- labelStyle: ze(t)
388
+ labelStyle: Ke(t)
388
389
  }));
389
390
  return {
390
391
  id: "root",
@@ -393,9 +394,9 @@ function qe(e, t) {
393
394
  edges: d
394
395
  };
395
396
  }
396
- function Je(e, t, n, r, i, a, o) {
397
- let s = e.direction !== void 0 && We(e, t) ? e.direction : o, c = Re({
398
- direction: Le(s),
397
+ function tt(e, t, n, r, i, a, o) {
398
+ let s = e.direction !== void 0 && Ze(e, t) ? e.direction : o, c = Ge({
399
+ direction: We(s),
399
400
  nodeSpacing: n.nodeSpacing,
400
401
  layerSpacing: n.layerSpacing,
401
402
  padding: {
@@ -410,18 +411,18 @@ function Je(e, t, n, r, i, a, o) {
410
411
  for (let r of e.nodeIds) {
411
412
  let e = t.nodes.get(r);
412
413
  if (e) {
413
- let t = Be(r, e.label, e.shape, n.fontSizes.nodeLabel);
414
- d.push(B(r, t, e.label));
414
+ let t = qe(r, e.label, e.shape, n.fontSizes.nodeLabel);
415
+ d.push(Ve(r, t, e.label));
415
416
  }
416
417
  }
417
- for (let o of [...e.children].reverse()) d.push(Je(o, t, n, r, i, a, s));
418
+ for (let o of [...e.children].reverse()) d.push(tt(o, t, n, r, i, a, s));
418
419
  let f = [], p = r.get(e.id) ?? [];
419
- for (let { index: e, edge: t } of p) t.source !== t.target && f.push(V({
420
+ for (let { index: e, edge: t } of p) t.source !== t.target && f.push(B({
420
421
  id: `e${e}`,
421
422
  source: t.source,
422
423
  target: t.target,
423
424
  label: t.label,
424
- labelStyle: ze(n)
425
+ labelStyle: Ke(n)
425
426
  }));
426
427
  for (let t of a.get(e.id) ?? []) f.push(t);
427
428
  return {
@@ -433,11 +434,11 @@ function Je(e, t, n, r, i, a, o) {
433
434
  edges: f
434
435
  };
435
436
  }
436
- function Ye(e, t, n) {
437
+ function nt(e, t, n) {
437
438
  for (let n of e.nodeIds) t.add(n);
438
- for (let r of e.children) n.add(r.id), Ye(r, t, n);
439
+ for (let r of e.children) n.add(r.id), nt(r, t, n);
439
440
  }
440
- function Xe(e) {
441
+ function rt(e) {
441
442
  let t = /* @__PURE__ */ new Map();
442
443
  function n(e) {
443
444
  for (let n of e.nodeIds) t.set(n, e.id);
@@ -448,19 +449,19 @@ function Xe(e) {
448
449
  }
449
450
  //#endregion
450
451
  //#region packages/svg-renderer/src/shape-clipping.ts
451
- function Ze(e, t, n) {
452
+ function it(e, t, n) {
452
453
  if (e.length < 2 || t.shape === "rectangle" || t.shape === "rounded" || t.shape === "stadium") return e;
453
454
  let r = [...e];
454
455
  if (t.shape === "diamond") {
455
- if (n) r[0] = Qe(e[0], e[1], t);
456
+ if (n) r[0] = at(e[0], e[1], t);
456
457
  else {
457
458
  let n = e.length - 1;
458
- r[n] = Qe(e[n], e[n - 1], t);
459
+ r[n] = at(e[n], e[n - 1], t);
459
460
  }
460
461
  }
461
462
  return r;
462
463
  }
463
- function Qe(e, t, n) {
464
+ function at(e, t, n) {
464
465
  let r = n.x + n.width / 2, i = n.y + n.height / 2, a = {
465
466
  x: r,
466
467
  y: n.y
@@ -476,14 +477,14 @@ function Qe(e, t, n) {
476
477
  }, l = e.x - t.x, u = e.y - t.y;
477
478
  if (Math.abs(l) < Math.abs(u)) {
478
479
  let t = e.x;
479
- return u > 0 ? t <= r ? et(t, c, a) ?? a : et(t, a, o) ?? a : t <= r ? et(t, s, c) ?? s : et(t, o, s) ?? s;
480
+ return u > 0 ? t <= r ? st(t, c, a) ?? a : st(t, a, o) ?? a : t <= r ? st(t, s, c) ?? s : st(t, o, s) ?? s;
480
481
  }
481
482
  {
482
483
  let t = e.y;
483
- return l > 0 ? t <= i ? $e(t, a, c) ?? c : $e(t, c, s) ?? c : t <= i ? $e(t, a, o) ?? o : $e(t, o, s) ?? o;
484
+ return l > 0 ? t <= i ? ot(t, a, c) ?? c : ot(t, c, s) ?? c : t <= i ? ot(t, a, o) ?? o : ot(t, o, s) ?? o;
484
485
  }
485
486
  }
486
- function $e(e, t, n) {
487
+ function ot(e, t, n) {
487
488
  let r = n.y - t.y;
488
489
  if (Math.abs(r) < .001) return null;
489
490
  let i = (e - t.y) / r;
@@ -492,7 +493,7 @@ function $e(e, t, n) {
492
493
  y: e
493
494
  };
494
495
  }
495
- function et(e, t, n) {
496
+ function st(e, t, n) {
496
497
  let r = n.x - t.x;
497
498
  if (Math.abs(r) < .001) return null;
498
499
  let i = (e - t.x) / r;
@@ -503,11 +504,11 @@ function et(e, t, n) {
503
504
  }
504
505
  //#endregion
505
506
  //#region packages/svg-renderer/src/layout-engine/layer-alignment.ts
506
- function tt(e, t, n) {
507
+ function ct(e, t, n) {
507
508
  if (e.length === 0) return;
508
509
  let r = n === "LR" || n === "RL", i = /* @__PURE__ */ new Set();
509
510
  for (let e of t) i.add(`${e.source}:${e.target}`), i.add(`${e.target}:${e.source}`);
510
- let a = Ae.layerSpacing * .6, o = [...e].sort((e, t) => r ? e.x - t.x : e.y - t.y), s = [], c = [o[0]];
511
+ let a = Ie.layerSpacing * .6, o = [...e].sort((e, t) => r ? e.x - t.x : e.y - t.y), s = [], c = [o[0]];
511
512
  for (let e = 1; e < o.length; e++) {
512
513
  let t = (r ? o[e].x : o[e].y) - (r ? o[e - 1].x : o[e - 1].y), n = c.some((t) => i.has(`${t.id}:${o[e].id}`));
513
514
  t <= a && !n ? c.push(o[e]) : (s.push(c), c = [o[e]]);
@@ -547,28 +548,28 @@ function tt(e, t, n) {
547
548
  }
548
549
  //#endregion
549
550
  //#region packages/svg-renderer/src/layout-engine/edge-bundling.ts
550
- var nt = .5;
551
- function rt(e, t, n) {
551
+ var lt = .5;
552
+ function ut(e, t, n) {
552
553
  for (let r = 0; r < e.length - 1; r++) {
553
554
  let i = e[r], a = e[r + 1], o = Math.min(i.x, a.x), s = Math.max(i.x, a.x), c = Math.min(i.y, a.y), l = Math.max(i.y, a.y);
554
555
  for (let e of t) {
555
556
  if (n.has(e.id)) continue;
556
- let t = e.x + nt, r = e.x + e.width - nt, i = e.y + nt, a = e.y + e.height - nt;
557
+ let t = e.x + lt, r = e.x + e.width - lt, i = e.y + lt, a = e.y + e.height - lt;
557
558
  if (!(t >= r || i >= a) && o < r && s > t && c < a && l > i) return !1;
558
559
  }
559
560
  }
560
561
  return !0;
561
562
  }
562
- function it(e, t, n) {
563
+ function dt(e, t, n) {
563
564
  let r = [];
564
- for (let i of n) e >= i.x && e <= i.x + i.width && t >= i.y && t <= i.y + i.height && (r.push(i), r.push(...it(e, t, i.children)));
565
+ for (let i of n) e >= i.x && e <= i.x + i.width && t >= i.y && t <= i.y + i.height && (r.push(i), r.push(...dt(e, t, i.children)));
565
566
  return r;
566
567
  }
567
- function at(e, t, n, r, i) {
568
- let a = i === "LR", o = i === "RL", s = i === "BT", c = a || o, l = new Set(it(t, n, r).map((e) => e.id)), u = it(c ? e : t, c ? n : e, r).find((e) => !l.has(e.id));
568
+ function ft(e, t, n, r, i) {
569
+ let a = i === "LR", o = i === "RL", s = i === "BT", c = a || o, l = new Set(dt(t, n, r).map((e) => e.id)), u = dt(c ? e : t, c ? n : e, r).find((e) => !l.has(e.id));
569
570
  return u ? a ? u.x - 12 : o ? u.x + u.width + 12 : s ? u.y + u.height + 12 : u.y - 12 : e;
570
571
  }
571
- function ot(e, t, n, r) {
572
+ function pt(e, t, n, r) {
572
573
  let i = new Map(t.map((e) => [e.id, e])), a = /* @__PURE__ */ new Set(), o = r === "LR", s = r === "RL", c = r === "BT", l = o || s, u = /* @__PURE__ */ new Map();
573
574
  for (let t of e) {
574
575
  if (t.source === t.target) continue;
@@ -593,7 +594,7 @@ function ot(e, t, n, r) {
593
594
  let m = f.x + f.width / 2, h = f.y + f.height / 2;
594
595
  if (l) {
595
596
  let i = o ? f.x + f.width : f.x, s = h, c = i + ((o ? Math.min(...p.map((e) => e.node.x)) : Math.max(...p.map((e) => e.node.x + e.node.width))) - i) / 2;
596
- c = at(c, m, h, n, r);
597
+ c = ft(c, m, h, n, r);
597
598
  let l = [];
598
599
  for (let { edge: n, node: r } of p) {
599
600
  let a = o ? r.x : r.x + r.width, u = r.y + r.height / 2, d = [
@@ -614,7 +615,7 @@ function ot(e, t, n, r) {
614
615
  y: u
615
616
  }
616
617
  ];
617
- rt(d, t, /* @__PURE__ */ new Set([e, r.id])) && l.push({
618
+ ut(d, t, /* @__PURE__ */ new Set([e, r.id])) && l.push({
618
619
  edge: n,
619
620
  points: d
620
621
  });
@@ -623,7 +624,7 @@ function ot(e, t, n, r) {
623
624
  for (let { edge: e, points: t } of l) e.points = t, a.add(e);
624
625
  } else {
625
626
  let i = m, o = c ? f.y : f.y + f.height, s = o + ((c ? Math.max(...p.map((e) => e.node.y + e.node.height)) : Math.min(...p.map((e) => e.node.y))) - o) / 2;
626
- s = at(s, m, h, n, r);
627
+ s = ft(s, m, h, n, r);
627
628
  let l = [];
628
629
  for (let { edge: n, node: r } of p) {
629
630
  let a = r.x + r.width / 2, u = c ? r.y + r.height : r.y, d = [
@@ -644,7 +645,7 @@ function ot(e, t, n, r) {
644
645
  y: u
645
646
  }
646
647
  ];
647
- rt(d, t, /* @__PURE__ */ new Set([e, r.id])) && l.push({
648
+ ut(d, t, /* @__PURE__ */ new Set([e, r.id])) && l.push({
648
649
  edge: n,
649
650
  points: d
650
651
  });
@@ -677,7 +678,7 @@ function ot(e, t, n, r) {
677
678
  let p = d.x + d.width / 2, m = d.y + d.height / 2;
678
679
  if (l) {
679
680
  let i = o ? d.x : d.x + d.width, a = m, s = o ? Math.max(...f.map((e) => e.node.x + e.node.width)) : Math.min(...f.map((e) => e.node.x)), c = s + (i - s) / 2;
680
- c = at(c, p, m, n, r);
681
+ c = ft(c, p, m, n, r);
681
682
  let l = [];
682
683
  for (let { edge: n, node: r } of f) {
683
684
  let s = o ? r.x + r.width : r.x, u = r.y + r.height / 2, d = [
@@ -698,7 +699,7 @@ function ot(e, t, n, r) {
698
699
  y: a
699
700
  }
700
701
  ];
701
- rt(d, t, /* @__PURE__ */ new Set([r.id, e])) && l.push({
702
+ ut(d, t, /* @__PURE__ */ new Set([r.id, e])) && l.push({
702
703
  edge: n,
703
704
  points: d
704
705
  });
@@ -707,7 +708,7 @@ function ot(e, t, n, r) {
707
708
  for (let { edge: e, points: t } of l) e.points = t;
708
709
  } else {
709
710
  let i = p, a = c ? d.y + d.height : d.y, o = c ? Math.min(...f.map((e) => e.node.y)) : Math.max(...f.map((e) => e.node.y + e.node.height)), s = o + (a - o) / 2;
710
- s = at(s, p, m, n, r);
711
+ s = ft(s, p, m, n, r);
711
712
  let l = [];
712
713
  for (let { edge: n, node: r } of f) {
713
714
  let o = r.x + r.width / 2, u = [
@@ -728,7 +729,7 @@ function ot(e, t, n, r) {
728
729
  y: a
729
730
  }
730
731
  ];
731
- rt(u, t, /* @__PURE__ */ new Set([r.id, e])) && l.push({
732
+ ut(u, t, /* @__PURE__ */ new Set([r.id, e])) && l.push({
732
733
  edge: n,
733
734
  points: u
734
735
  });
@@ -740,7 +741,7 @@ function ot(e, t, n, r) {
740
741
  }
741
742
  //#endregion
742
743
  //#region packages/svg-renderer/src/layout-engine/elk-adapter-utils.ts
743
- function st(e, t = 0, n = 0) {
744
+ function mt(e, t = 0, n = 0) {
744
745
  let r = [];
745
746
  if (!e.sections || e.sections.length === 0) return r;
746
747
  let i = e.sections[0];
@@ -756,7 +757,7 @@ function st(e, t = 0, n = 0) {
756
757
  y: i.endPoint.y + n
757
758
  }), r;
758
759
  }
759
- function ct(e, t = 0, n = 0) {
760
+ function ht(e, t = 0, n = 0) {
760
761
  if (!e.labels || e.labels.length === 0) return;
761
762
  let r = e.labels[0];
762
763
  if (r.x != null && r.y != null) return {
@@ -766,11 +767,11 @@ function ct(e, t = 0, n = 0) {
766
767
  }
767
768
  //#endregion
768
769
  //#region packages/svg-renderer/src/layout-engine/from-elk.ts
769
- var lt = 16, ut = 28, dt = 18, ft = 28, pt = 10;
770
- function mt(e, t) {
771
- let n = e.x + e.width, r = e.y + e.height / 2, i = Math.min(ft, e.height * .6) / 2, a = ut + t * dt, o = [];
772
- for (let e = 0; e <= lt; e++) {
773
- let t = Math.PI * e / lt;
770
+ var gt = 16, _t = 28, vt = 18, yt = 28, bt = 10;
771
+ function xt(e, t) {
772
+ let n = e.x + e.width, r = e.y + e.height / 2, i = Math.min(yt, e.height * .6) / 2, a = _t + t * vt, o = [];
773
+ for (let e = 0; e <= gt; e++) {
774
+ let t = Math.PI * e / gt;
774
775
  o.push({
775
776
  x: n + a * Math.sin(t),
776
777
  y: r - i * Math.cos(t)
@@ -779,12 +780,12 @@ function mt(e, t) {
779
780
  return {
780
781
  points: o,
781
782
  labelPosition: {
782
- x: n + a + pt,
783
+ x: n + a + bt,
783
784
  y: r
784
785
  }
785
786
  };
786
787
  }
787
- function ht(e, t, n) {
788
+ function St(e, t, n) {
788
789
  let r = /* @__PURE__ */ new Map();
789
790
  for (let i = 0; i < e.edges.length; i++) {
790
791
  let a = e.edges[i];
@@ -793,7 +794,7 @@ function ht(e, t, n) {
793
794
  if (!o) continue;
794
795
  let s = r.get(o.id) ?? 0;
795
796
  r.set(o.id, s + 1);
796
- let { points: c, labelPosition: l } = mt(o, s);
797
+ let { points: c, labelPosition: l } = xt(o, s);
797
798
  n.push({
798
799
  source: a.source,
799
800
  target: a.target,
@@ -803,38 +804,38 @@ function ht(e, t, n) {
803
804
  hasArrowEnd: a.hasArrowEnd,
804
805
  points: c,
805
806
  labelPosition: a.label ? l : void 0,
806
- inlineStyle: Dt(i, e),
807
+ inlineStyle: Pt(i, e),
807
808
  id: a.id,
808
809
  animate: a.animate
809
810
  });
810
811
  }
811
812
  }
812
- function gt(e) {
813
+ function Ct(e) {
813
814
  let t = [];
814
815
  for (let n of e) t.push({
815
816
  x: n.x,
816
817
  y: n.y,
817
818
  right: n.x + n.width,
818
819
  bottom: n.y + n.height
819
- }), t.push(...gt(n.children));
820
+ }), t.push(...Ct(n.children));
820
821
  return t;
821
822
  }
822
- function _t(e, t, n = !1) {
823
+ function wt(e, t, n = !1) {
823
824
  let r = [], i = [], a = [], o = /* @__PURE__ */ new Set();
824
- for (let e of t.subgraphs) Et(e, o);
825
- vt(e, t, o, r, a, 0, 0);
826
- let s = gt(a);
827
- xt(e, t, i, 0, 0, s.length > 0 ? {
825
+ for (let e of t.subgraphs) Nt(e, o);
826
+ Tt(e, t, o, r, a, 0, 0);
827
+ let s = Ct(a);
828
+ Ot(e, t, i, 0, 0, s.length > 0 ? {
828
829
  leftX: Math.min(...s.map((e) => e.x)) - 20,
829
830
  rightX: Math.max(...s.map((e) => e.right)) + 20
830
- } : void 0), tt(r, i, t.direction);
831
+ } : void 0), ct(r, i, t.direction);
831
832
  let c = new Map(r.map((e) => [e.id, e]));
832
- ht(t, c, i), n && ot(i, r, a, t.direction);
833
+ St(t, c, i), n && pt(i, r, a, t.direction);
833
834
  for (let e of i) {
834
835
  let t = c.get(e.source), n = c.get(e.target);
835
- t && (e.points = Ze(e.points, t, !0)), n && (e.points = Ze(e.points, n, !1));
836
+ t && (e.points = it(e.points, t, !0)), n && (e.points = it(e.points, n, !1));
836
837
  }
837
- let l = e.width ?? 800, u = e.height ?? 600, d = z.width, f = Ae.padding;
838
+ let l = e.width ?? 800, u = e.height ?? 600, d = z.width, f = Ie.padding;
838
839
  for (let e of i) {
839
840
  for (let t of e.points) l = Math.max(l, t.x + d + f), u = Math.max(u, t.y + d + f);
840
841
  e.labelPosition && (l = Math.max(l, e.labelPosition.x + 60 + f), u = Math.max(u, e.labelPosition.y + 20 + f));
@@ -847,13 +848,13 @@ function _t(e, t, n = !1) {
847
848
  groups: a
848
849
  };
849
850
  }
850
- function vt(e, t, n, r, i, a, o) {
851
+ function Tt(e, t, n, r, i, a, o) {
851
852
  if (e.children) for (let s of e.children) {
852
853
  let e = (s.x ?? 0) + a, c = (s.y ?? 0) + o, l = s.width ?? 0, u = s.height ?? 0;
853
854
  if (n.has(s.id)) {
854
855
  let a = [];
855
- vt(s, t, n, r, a, e, c);
856
- let o = Tt(t.subgraphs, s.id);
856
+ Tt(s, t, n, r, a, e, c);
857
+ let o = Mt(t.subgraphs, s.id);
857
858
  i.push({
858
859
  id: s.id,
859
860
  label: o?.label ?? "",
@@ -880,11 +881,11 @@ function vt(e, t, n, r, i, a, o) {
880
881
  interaction: t.interactions.get(s.id)
881
882
  });
882
883
  }
883
- s.children && s.children.length > 0 && vt(s, t, n, r, i, e, c);
884
+ s.children && s.children.length > 0 && Tt(s, t, n, r, i, e, c);
884
885
  }
885
886
  }
886
887
  }
887
- function yt(e) {
888
+ function Et(e) {
888
889
  let t = /^e(\d+)$/.exec(e);
889
890
  if (t) return {
890
891
  edgeIndex: parseInt(t[1], 10),
@@ -897,7 +898,7 @@ function yt(e) {
897
898
  level: parseInt(n[3], 10)
898
899
  };
899
900
  }
900
- function bt(e) {
901
+ function Dt(e) {
901
902
  if (e.length === 0) return {
902
903
  x: 0,
903
904
  y: 0
@@ -922,11 +923,11 @@ function bt(e) {
922
923
  }
923
924
  return e[e.length - 1];
924
925
  }
925
- function xt(e, t, n, r, i, a) {
926
+ function Ot(e, t, n, r, i, a) {
926
927
  let o = /* @__PURE__ */ new Map();
927
- St(e, o, 0, 0);
928
+ kt(e, o, 0, 0);
928
929
  let s = /* @__PURE__ */ new Map();
929
- wt(e, s, 0, 0, o);
930
+ jt(e, s, 0, 0, o);
930
931
  let c = 0;
931
932
  for (let [e, r] of s) {
932
933
  let i = t.edges[e];
@@ -939,9 +940,9 @@ function xt(e, t, n, r, i, a) {
939
940
  let u = [...r.targetHops.keys()].sort((e, t) => e - t);
940
941
  for (let e of u) s(r.targetHops.get(e));
941
942
  let d;
942
- i.label && o.length >= 2 && (d = r.bridge?.labelPosition ?? bt(o));
943
- let f = Ct(o, a, c);
944
- f !== o && c++, i.label && f !== o && f.length >= 2 && (d = bt(f)), n.push({
943
+ i.label && o.length >= 2 && (d = r.bridge?.labelPosition ?? Dt(o));
944
+ let f = At(o, a, c);
945
+ f !== o && c++, i.label && f !== o && f.length >= 2 && (d = Dt(f)), n.push({
945
946
  source: i.source,
946
947
  target: i.target,
947
948
  label: i.label,
@@ -950,13 +951,13 @@ function xt(e, t, n, r, i, a) {
950
951
  hasArrowEnd: i.hasArrowEnd,
951
952
  points: f,
952
953
  labelPosition: d,
953
- inlineStyle: Dt(e, t),
954
+ inlineStyle: Pt(e, t),
954
955
  id: i.id,
955
956
  animate: i.animate
956
957
  });
957
958
  }
958
959
  }
959
- function St(e, t, n, r) {
960
+ function kt(e, t, n, r) {
960
961
  t.set(e.id, {
961
962
  x: n,
962
963
  y: r
@@ -964,10 +965,10 @@ function St(e, t, n, r) {
964
965
  for (let i of e.children ?? []) {
965
966
  /* v8 ignore next */
966
967
  let e = i.x ?? 0, a = i.y ?? 0;
967
- St(i, t, n + e, r + a);
968
+ kt(i, t, n + e, r + a);
968
969
  }
969
970
  }
970
- function Ct(e, t, n = 0) {
971
+ function At(e, t, n = 0) {
971
972
  if (e.length < 2) return e;
972
973
  let r = !1;
973
974
  for (let t = 1; t < e.length; t++) {
@@ -1006,11 +1007,11 @@ function Ct(e, t, n = 0) {
1006
1007
  }
1007
1008
  return i;
1008
1009
  }
1009
- function wt(e, t, n, r, i) {
1010
+ function jt(e, t, n, r, i) {
1010
1011
  if (e.edges) for (let a of e.edges) {
1011
- let e = yt(a.id);
1012
+ let e = Et(a.id);
1012
1013
  if (!e) continue;
1013
- let { edgeIndex: o } = e, s = a.container, c = s ? i.get(s) : void 0, l = c?.x ?? n, u = c?.y ?? r, d = st(a, l, u), f = ct(a, l, u), p = t.get(o) ?? {
1014
+ let { edgeIndex: o } = e, s = a.container, c = s ? i.get(s) : void 0, l = c?.x ?? n, u = c?.y ?? r, d = mt(a, l, u), f = ht(a, l, u), p = t.get(o) ?? {
1014
1015
  sourceHops: /* @__PURE__ */ new Map(),
1015
1016
  targetHops: /* @__PURE__ */ new Map()
1016
1017
  };
@@ -1022,20 +1023,20 @@ function wt(e, t, n, r, i) {
1022
1023
  };
1023
1024
  e.role === "bridge" ? p.bridge = m : e.role === "source" ? p.sourceHops.set(e.level, m) : p.targetHops.set(e.level, m);
1024
1025
  }
1025
- if (e.children) for (let a of e.children) wt(a, t, n + (a.x ?? 0), r + (a.y ?? 0), i);
1026
+ if (e.children) for (let a of e.children) jt(a, t, n + (a.x ?? 0), r + (a.y ?? 0), i);
1026
1027
  }
1027
- function Tt(e, t) {
1028
+ function Mt(e, t) {
1028
1029
  for (let n of e) {
1029
1030
  if (n.id === t) return n;
1030
- let e = Tt(n.children, t);
1031
+ let e = Mt(n.children, t);
1031
1032
  if (e) return e;
1032
1033
  }
1033
1034
  }
1034
- function Et(e, t) {
1035
+ function Nt(e, t) {
1035
1036
  t.add(e.id);
1036
- for (let n of e.children) Et(n, t);
1037
+ for (let n of e.children) Nt(n, t);
1037
1038
  }
1038
- function Dt(e, t) {
1039
+ function Pt(e, t) {
1039
1040
  let n, r = t.linkStyles.get("default");
1040
1041
  r && (n = { ...r });
1041
1042
  let i = t.linkStyles.get(e);
@@ -1046,37 +1047,37 @@ function Dt(e, t) {
1046
1047
  }
1047
1048
  //#endregion
1048
1049
  //#region packages/svg-renderer/src/layout-engine.ts
1049
- function Ot(e, t = {}) {
1050
+ function Ft(e, t = {}) {
1050
1051
  let n = {
1051
- ...Ae,
1052
+ ...Ie,
1052
1053
  ...t,
1053
1054
  fontSizes: P(t.fontSizes)
1054
1055
  };
1055
- return _t(Te(qe(e, n), t.layoutCache), e, n.mergeEdges);
1056
+ return wt(je(et(e, n), t.layoutCache), e, n.mergeEdges);
1056
1057
  }
1057
- function kt(e, t = {}) {
1058
- return qe(e, {
1059
- ...Ae,
1058
+ function It(e, t = {}) {
1059
+ return et(e, {
1060
+ ...Ie,
1060
1061
  ...t,
1061
1062
  fontSizes: P(t.fontSizes)
1062
1063
  });
1063
1064
  }
1064
1065
  //#endregion
1065
1066
  //#region packages/svg-renderer/src/renderer.ts
1066
- function At(e, t, r = "Inter", i = !1, a = N, o = "linear", s, c = !0, l = !0, u, d, f = {}) {
1067
+ function Lt(e, t, r = "Inter", i = !1, a = N, o = "linear", s, c = !0, l = !0, u, d, f = {}) {
1067
1068
  let p = [], m = l && e.nodes.some((e) => !!b(e.interaction?.href));
1068
- p.push(U(E(e.width, e.height, t, i, u, d, m, f.styleAttribute), s)), p.push(n(r, !1, f.nonce)), c && e.edges.some((e) => e.animate) && p.push(jt(f.nonce)), p.push("<defs>"), p.push(Mt());
1069
+ p.push(H(E(e.width, e.height, t, i, u, d, m, f.styleAttribute), s)), p.push(n(r, !1, f.nonce)), c && e.edges.some((e) => e.animate) && p.push(Rt(f.nonce)), p.push("<defs>"), p.push(zt());
1069
1070
  let h = /* @__PURE__ */ new Set();
1070
1071
  for (let t of e.edges) t.inlineStyle?.stroke && h.add(t.inlineStyle.stroke);
1071
- for (let e of h) p.push(Nt(e));
1072
+ for (let e of h) p.push(Bt(e));
1072
1073
  p.push("</defs>");
1073
- for (let t of e.groups) p.push(It(t, r, a));
1074
- for (let t of e.edges) p.push(Lt(t, o, c));
1075
- for (let t of e.edges) t.label && p.push(zt(t, r, a));
1076
- for (let t of e.nodes) p.push(Ut(t, r, a, l));
1074
+ for (let t of e.groups) p.push(Ut(t, r, a));
1075
+ for (let t of e.edges) p.push(Wt(t, o, c));
1076
+ for (let t of e.edges) t.label && p.push(Kt(t, r, a));
1077
+ for (let t of e.nodes) p.push(Xt(t, r, a, l));
1077
1078
  return p.push("</svg>"), p.join("\n");
1078
1079
  }
1079
- function jt(e) {
1080
+ function Rt(e) {
1080
1081
  return [
1081
1082
  T(e),
1082
1083
  " @keyframes zm-edge-dash { to { stroke-dashoffset: -28; } }",
@@ -1087,28 +1088,28 @@ function jt(e) {
1087
1088
  "</style>"
1088
1089
  ].join("\n");
1089
1090
  }
1090
- function Mt() {
1091
- return Pt("var(--_arrow)", "");
1091
+ function zt() {
1092
+ return Vt("var(--_arrow)", "");
1092
1093
  }
1093
- function Nt(e) {
1094
- return Pt(i(e), s`-${Ft(e)}`);
1094
+ function Bt(e) {
1095
+ return Vt(i(e), s`-${Ht(e)}`);
1095
1096
  }
1096
- function Pt(e, t) {
1097
+ function Vt(e, t) {
1097
1098
  let n = z.width, r = z.height, i = n - 1, a = s`fill="${e}" stroke="${e}" stroke-width="0.75" stroke-linejoin="round"`, o = s`<polygon points="0 0, ${n} ${r / 2}, 0 ${r}" ${a} />`, c = (e, t) => s` <marker id="${e}" markerWidth="${n}" markerHeight="${r}" refX="${i}" refY="${r / 2}" orient="${t}">` + s`\n ${o}` + "\n </marker>";
1098
1099
  return c(s`arrowhead${t}`, "auto") + "\n" + c(s`arrowhead-start${t}`, "auto-start-reverse");
1099
1100
  }
1100
- function Ft(e) {
1101
+ function Ht(e) {
1101
1102
  return e.replace(/[^a-zA-Z0-9]/g, (e) => e.charCodeAt(0).toString(16));
1102
1103
  }
1103
- function It(e, t, n) {
1104
+ function Ut(e, t, n) {
1104
1105
  let r = n.groupHeader + 16, a = [];
1105
1106
  a.push(s`<g class="subgraph" data-id="${i(e.id)}" data-label="${i(e.label)}">`), a.push(s` <rect x="${e.x}" y="${e.y}" width="${e.width}" height="${e.height}" ` + s`rx="0" ry="0" fill="var(--_group-fill)" stroke="var(--_node-stroke)" stroke-width="${L.outerBox}" />`), a.push(s` <rect x="${e.x}" y="${e.y}" width="${e.width}" height="${r}" ` + s`rx="0" ry="0" fill="var(--_group-hdr)" stroke="var(--_node-stroke)" stroke-width="${L.outerBox}" />`), a.push(" " + _(e.label, e.x + 12, e.y + r / 2, n.groupHeader, s`font-size="${n.groupHeader}" font-weight="${F.groupHeader}" fill="var(--_text-sec)"`));
1106
- for (let r of e.children) a.push(It(r, t, n));
1107
+ for (let r of e.children) a.push(Ut(r, t, n));
1107
1108
  return a.push("</g>"), a.join("\n");
1108
1109
  }
1109
- function Lt(e, t, n = !0) {
1110
+ function Wt(e, t, n = !0) {
1110
1111
  if (e.points.length < 2) return "";
1111
- let r = n && (e.animate ?? !1), a = t !== "linear", o = e.style === "invisible", c = e.style === "dotted" ? " stroke-dasharray=\"4 4\"" : "", l = e.style === "thick" ? L.connector * 2 : L.connector, u = o ? "none" : i(e.inlineStyle?.stroke ?? "var(--_line)"), d = i(e.inlineStyle?.["stroke-width"] ?? String(l)), f = e.inlineStyle?.stroke ? s`-${Ft(e.inlineStyle.stroke)}` : "", p = "";
1112
+ let r = n && (e.animate ?? !1), a = t !== "linear", o = e.style === "invisible", c = e.style === "dotted" ? " stroke-dasharray=\"4 4\"" : "", l = e.style === "thick" ? L.connector * 2 : L.connector, u = o ? "none" : i(e.inlineStyle?.stroke ?? "var(--_line)"), d = i(e.inlineStyle?.["stroke-width"] ?? String(l)), f = e.inlineStyle?.stroke ? s`-${Ht(e.inlineStyle.stroke)}` : "", p = "";
1112
1113
  o || (e.hasArrowEnd && (p += s` marker-end="url(#arrowhead${f})"`), e.hasArrowStart && (p += s` marker-start="url(#arrowhead-start${f})"`));
1113
1114
  let m = [
1114
1115
  s`class="edge${r ? " edge-animated" : ""}"`,
@@ -1119,35 +1120,35 @@ function Lt(e, t, n = !0) {
1119
1120
  s`data-arrow-end="${e.hasArrowEnd}"`
1120
1121
  ];
1121
1122
  e.label && m.push(s`data-label="${i(e.label)}"`), e.id && m.push(s`data-id="${i(e.id)}"`);
1122
- let h = r && !c ? " stroke-dasharray=\"8 6\"" : "", g = a ? s`d="${ve(e.points, t)}"` : s`points="${Rt(e.points)}"`;
1123
+ let h = r && !c ? " stroke-dasharray=\"8 6\"" : "", g = a ? s`d="${we(e.points, t)}"` : s`points="${Gt(e.points)}"`;
1123
1124
  return s`<${a ? "path" : "polyline"} ${m.join(" ")} ${g} ` + s`fill="none" stroke="${u}" ` + s`stroke-width="${d}"${c}${h}${p} />`;
1124
1125
  }
1125
- function Rt(e) {
1126
+ function Gt(e) {
1126
1127
  return e.map((e) => s`${e.x},${e.y}`).join(" ");
1127
1128
  }
1128
- function zt(e, t, n) {
1129
+ function Kt(e, t, n) {
1129
1130
  if (!e.label) return "";
1130
- let r = e.label, a = e.labelPosition ?? Vt(e.points), o = d(r, n.edgeLabel, F.edgeLabel), c = v(r, a.x, a.y, o.width, o.height, n.edgeLabel, 8, s`text-anchor="middle" font-size="${n.edgeLabel}" font-weight="${F.edgeLabel}" fill="var(--_text-sec)"`, "rx=\"2\" ry=\"2\" fill=\"var(--bg)\" stroke=\"var(--_inner-stroke)\" stroke-width=\"1\"");
1131
+ let r = e.label, a = e.labelPosition ?? Jt(e.points), o = d(r, n.edgeLabel, F.edgeLabel), c = v(r, a.x, a.y, o.width, o.height, n.edgeLabel, 8, s`text-anchor="middle" font-size="${n.edgeLabel}" font-weight="${F.edgeLabel}" fill="var(--_text-sec)"`, "rx=\"2\" ry=\"2\" fill=\"var(--bg)\" stroke=\"var(--_inner-stroke)\" stroke-width=\"1\"");
1131
1132
  return s`<g class="edge-label" data-from="${i(e.source)}" data-to="${i(e.target)}" data-label="${i(r)}">\n` + s` ${c.replace(/\n/g, "\n ")}\n` + "</g>";
1132
1133
  }
1133
- function Bt(e, t) {
1134
+ function qt(e, t) {
1134
1135
  let n = e[t];
1135
1136
  if (!n)
1136
1137
  /* v8 ignore next */
1137
1138
  throw Error(s`edgeMidpoint: missing point at index ${t}`);
1138
1139
  return n;
1139
1140
  }
1140
- function Vt(e) {
1141
+ function Jt(e) {
1141
1142
  if (e.length === 0) return {
1142
1143
  x: 0,
1143
1144
  y: 0
1144
1145
  };
1145
1146
  if (e.length === 1) return e[0];
1146
1147
  let t = 0;
1147
- for (let n = 1; n < e.length; n++) t += Ht(Bt(e, n - 1), Bt(e, n));
1148
+ for (let n = 1; n < e.length; n++) t += Yt(qt(e, n - 1), qt(e, n));
1148
1149
  let n = t / 2;
1149
1150
  for (let t = 1; t < e.length; t++) {
1150
- let r = Bt(e, t - 1), i = Bt(e, t), a = Ht(r, i);
1151
+ let r = qt(e, t - 1), i = qt(e, t), a = Yt(r, i);
1151
1152
  if (n <= a) {
1152
1153
  let e = n / a;
1153
1154
  return {
@@ -1159,11 +1160,11 @@ function Vt(e) {
1159
1160
  }
1160
1161
  return e[e.length - 1];
1161
1162
  }
1162
- function Ht(e, t) {
1163
+ function Yt(e, t) {
1163
1164
  return Math.sqrt((t.x - e.x) ** 2 + (t.y - e.y) ** 2);
1164
1165
  }
1165
- function Ut(e, t, n, r = !0) {
1166
- let o = Wt(e), c = Tn(e, t, n), l = [], u = x(e.className), d = u ? s`node ${u}` : "node", f = e.interaction, p = [
1166
+ function Xt(e, t, n, r = !0) {
1167
+ let o = Zt(e), c = Mn(e, t, n), l = [], u = x(e.className), d = u ? s`node ${u}` : "node", f = e.interaction, p = [
1167
1168
  s`class="${d}"`,
1168
1169
  s`data-id="${i(e.id)}"`,
1169
1170
  s`data-label="${i(e.label)}"`,
@@ -1177,65 +1178,65 @@ function Ut(e, t, n, r = !0) {
1177
1178
  }
1178
1179
  return r && f?.tooltip && l.push(s`${h}<title>${a(f.tooltip)}</title>`), l.push(s`${h}${o.replace(/\n/g, s`\n${h}`)}`), c && l.push(s`${h}${c.replace(/\n/g, s`\n${h}`)}`), m && l.push(" </a>"), l.push("</g>"), l.join("\n");
1179
1180
  }
1180
- function Wt(e) {
1181
+ function Zt(e) {
1181
1182
  let { x: t, y: n, width: r, height: a, shape: o, inlineStyle: s } = e, c = i(s?.fill ?? "var(--_node-fill)"), l = i(s?.stroke ?? "var(--_node-stroke)"), u = i(s?.["stroke-width"] ?? String(L.innerBox));
1182
1183
  switch (o) {
1183
- case "diamond": return Yt(t, n, r, a, c, l, u);
1184
- case "rounded": return Kt(t, n, r, a, c, l, u);
1185
- case "stadium": return qt(t, n, r, a, c, l, u);
1186
- case "circle": return Jt(t, n, r, a, c, l, u);
1187
- case "subroutine": return Xt(t, n, r, a, c, l, u);
1188
- case "doublecircle": return Zt(t, n, r, a, c, l, u);
1189
- case "hexagon": return Qt(t, n, r, a, c, l, u);
1190
- case "cylinder": return $t(t, n, r, a, c, l, u);
1191
- case "asymmetric": return en(t, n, r, a, c, l, u);
1192
- case "trapezoid": return tn(t, n, r, a, c, l, u);
1193
- case "trapezoid-alt": return nn(t, n, r, a, c, l, u);
1194
- case "parallelogram": return rn(t, n, r, a, c, l, u);
1195
- case "parallelogram-alt": return an(t, n, r, a, c, l, u);
1196
- case "state-start": return Cn(t, n, r, a);
1197
- case "state-end": return wn(t, n, r, a);
1198
- case "document": return on(t, n, r, a, c, l, u);
1199
- case "stacked-document": return sn(t, n, r, a, c, l, u, !0);
1200
- case "stacked-process": return sn(t, n, r, a, c, l, u, !1);
1201
- case "card": return cn(t, n, r, a, c, l, u);
1202
- case "lined-process": return ln(t, n, r, a, c, l, u);
1203
- case "divided-process": return un(t, n, r, a, c, l, u);
1204
- case "window-pane": return dn(t, n, r, a, c, l, u);
1205
- case "triangle": return fn(t, n, r, a, c, l, u, !1);
1206
- case "flipped-triangle": return fn(t, n, r, a, c, l, u, !0);
1207
- case "filled-circle": return pn(t, n, r, a, l);
1208
- case "crossed-circle": return mn(t, n, r, a, c, l, u);
1209
- case "fork-join": return hn(t, n, r, a, l);
1210
- case "notched-pentagon": return gn(t, n, r, a, c, l, u);
1211
- case "sloped-rectangle": return _n(t, n, r, a, c, l, u);
1212
- case "flag": return vn(t, n, r, a, c, l, u);
1213
- case "bow-tie-rectangle": return yn(t, n, r, a, c, l, u);
1214
- case "half-rounded-rectangle": return bn(t, n, r, a, c, l, u);
1215
- case "brace": return xn(t, n, r, a, c, l, u, "left");
1216
- case "brace-right": return xn(t, n, r, a, c, l, u, "right");
1217
- case "braces": return xn(t, n, r, a, c, l, u, "both");
1218
- case "bolt": return Sn(t, n, r, a, c, l, u);
1184
+ case "diamond": return nn(t, n, r, a, c, l, u);
1185
+ case "rounded": return $t(t, n, r, a, c, l, u);
1186
+ case "stadium": return en(t, n, r, a, c, l, u);
1187
+ case "circle": return tn(t, n, r, a, c, l, u);
1188
+ case "subroutine": return rn(t, n, r, a, c, l, u);
1189
+ case "doublecircle": return an(t, n, r, a, c, l, u);
1190
+ case "hexagon": return on(t, n, r, a, c, l, u);
1191
+ case "cylinder": return sn(t, n, r, a, c, l, u);
1192
+ case "asymmetric": return cn(t, n, r, a, c, l, u);
1193
+ case "trapezoid": return ln(t, n, r, a, c, l, u);
1194
+ case "trapezoid-alt": return un(t, n, r, a, c, l, u);
1195
+ case "parallelogram": return dn(t, n, r, a, c, l, u);
1196
+ case "parallelogram-alt": return fn(t, n, r, a, c, l, u);
1197
+ case "state-start": return An(t, n, r, a);
1198
+ case "state-end": return jn(t, n, r, a);
1199
+ case "document": return pn(t, n, r, a, c, l, u);
1200
+ case "stacked-document": return mn(t, n, r, a, c, l, u, !0);
1201
+ case "stacked-process": return mn(t, n, r, a, c, l, u, !1);
1202
+ case "card": return hn(t, n, r, a, c, l, u);
1203
+ case "lined-process": return gn(t, n, r, a, c, l, u);
1204
+ case "divided-process": return _n(t, n, r, a, c, l, u);
1205
+ case "window-pane": return vn(t, n, r, a, c, l, u);
1206
+ case "triangle": return yn(t, n, r, a, c, l, u, !1);
1207
+ case "flipped-triangle": return yn(t, n, r, a, c, l, u, !0);
1208
+ case "filled-circle": return bn(t, n, r, a, l);
1209
+ case "crossed-circle": return xn(t, n, r, a, c, l, u);
1210
+ case "fork-join": return Sn(t, n, r, a, l);
1211
+ case "notched-pentagon": return Cn(t, n, r, a, c, l, u);
1212
+ case "sloped-rectangle": return wn(t, n, r, a, c, l, u);
1213
+ case "flag": return Tn(t, n, r, a, c, l, u);
1214
+ case "bow-tie-rectangle": return En(t, n, r, a, c, l, u);
1215
+ case "half-rounded-rectangle": return Dn(t, n, r, a, c, l, u);
1216
+ case "brace": return On(t, n, r, a, c, l, u, "left");
1217
+ case "brace-right": return On(t, n, r, a, c, l, u, "right");
1218
+ case "braces": return On(t, n, r, a, c, l, u, "both");
1219
+ case "bolt": return kn(t, n, r, a, c, l, u);
1219
1220
  case "text":
1220
1221
  case "anchor": return "";
1221
- default: return Gt(t, n, r, a, c, l, u);
1222
+ default: return Qt(t, n, r, a, c, l, u);
1222
1223
  }
1223
1224
  }
1224
- function Gt(e, t, n, r, i, a, o) {
1225
+ function Qt(e, t, n, r, i, a, o) {
1225
1226
  return s`<rect x="${e}" y="${t}" width="${n}" height="${r}" ` + s`rx="0" ry="0" fill="${i}" stroke="${a}" stroke-width="${o}" />`;
1226
1227
  }
1227
- function Kt(e, t, n, r, i, a, o) {
1228
+ function $t(e, t, n, r, i, a, o) {
1228
1229
  return s`<rect x="${e}" y="${t}" width="${n}" height="${r}" ` + s`rx="6" ry="6" fill="${i}" stroke="${a}" stroke-width="${o}" />`;
1229
1230
  }
1230
- function qt(e, t, n, r, i, a, o) {
1231
+ function en(e, t, n, r, i, a, o) {
1231
1232
  let c = r / 2;
1232
1233
  return s`<rect x="${e}" y="${t}" width="${n}" height="${r}" ` + s`rx="${c}" ry="${c}" fill="${i}" stroke="${a}" stroke-width="${o}" />`;
1233
1234
  }
1234
- function Jt(e, t, n, r, i, a, o) {
1235
+ function tn(e, t, n, r, i, a, o) {
1235
1236
  let c = e + n / 2, l = t + r / 2, u = Math.min(n, r) / 2;
1236
1237
  return s`<circle cx="${c}" cy="${l}" r="${u}" ` + s`fill="${i}" stroke="${a}" stroke-width="${o}" />`;
1237
1238
  }
1238
- function Yt(e, t, n, r, i, a, o) {
1239
+ function nn(e, t, n, r, i, a, o) {
1239
1240
  let c = e + n / 2, l = t + r / 2, u = n / 2, d = r / 2, f = [
1240
1241
  s`${c},${l - d}`,
1241
1242
  s`${c + u},${l}`,
@@ -1244,14 +1245,14 @@ function Yt(e, t, n, r, i, a, o) {
1244
1245
  ].join(" ");
1245
1246
  return s`<polygon points="${f}" fill="${i}" stroke="${a}" stroke-width="${o}" />`;
1246
1247
  }
1247
- function Xt(e, t, n, r, i, a, o) {
1248
+ function rn(e, t, n, r, i, a, o) {
1248
1249
  return s`<rect x="${e}" y="${t}" width="${n}" height="${r}" ` + s`rx="0" ry="0" fill="${i}" stroke="${a}" stroke-width="${o}" />` + s`\n<line x1="${e + 8}" y1="${t}" x2="${e + 8}" y2="${t + r}" ` + s`stroke="${a}" stroke-width="${o}" />` + s`\n<line x1="${e + n - 8}" y1="${t}" x2="${e + n - 8}" y2="${t + r}" ` + s`stroke="${a}" stroke-width="${o}" />`;
1249
1250
  }
1250
- function Zt(e, t, n, r, i, a, o) {
1251
+ function an(e, t, n, r, i, a, o) {
1251
1252
  let c = e + n / 2, l = t + r / 2, u = Math.min(n, r) / 2, d = u - 5;
1252
1253
  return s`<circle cx="${c}" cy="${l}" r="${u}" ` + s`fill="${i}" stroke="${a}" stroke-width="${o}" />` + s`\n<circle cx="${c}" cy="${l}" r="${d}" ` + s`fill="${i}" stroke="${a}" stroke-width="${o}" />`;
1253
1254
  }
1254
- function Qt(e, t, n, r, i, a, o) {
1255
+ function on(e, t, n, r, i, a, o) {
1255
1256
  let c = r / 4, l = [
1256
1257
  s`${e + c},${t}`,
1257
1258
  s`${e + n - c},${t}`,
@@ -1262,11 +1263,11 @@ function Qt(e, t, n, r, i, a, o) {
1262
1263
  ].join(" ");
1263
1264
  return s`<polygon points="${l}" fill="${i}" stroke="${a}" stroke-width="${o}" />`;
1264
1265
  }
1265
- function $t(e, t, n, r, i, a, o) {
1266
+ function sn(e, t, n, r, i, a, o) {
1266
1267
  let c = e + n / 2, l = t + 7, u = r - 14;
1267
1268
  return s`<rect x="${e}" y="${l}" width="${n}" height="${u}" ` + s`fill="${i}" stroke="none" />` + s`\n<line x1="${e}" y1="${l}" x2="${e}" y2="${l + u}" stroke="${a}" stroke-width="${o}" />` + s`\n<line x1="${e + n}" y1="${l}" x2="${e + n}" y2="${l + u}" stroke="${a}" stroke-width="${o}" />` + s`\n<ellipse cx="${c}" cy="${t + r - 7}" rx="${n / 2}" ry="${7}" ` + s`fill="${i}" stroke="${a}" stroke-width="${o}" />` + s`\n<ellipse cx="${c}" cy="${l}" rx="${n / 2}" ry="${7}" ` + s`fill="${i}" stroke="${a}" stroke-width="${o}" />`;
1268
1269
  }
1269
- function en(e, t, n, r, i, a, o) {
1270
+ function cn(e, t, n, r, i, a, o) {
1270
1271
  let c = [
1271
1272
  s`${e + 12},${t}`,
1272
1273
  s`${e + n},${t}`,
@@ -1276,7 +1277,7 @@ function en(e, t, n, r, i, a, o) {
1276
1277
  ].join(" ");
1277
1278
  return s`<polygon points="${c}" fill="${i}" stroke="${a}" stroke-width="${o}" />`;
1278
1279
  }
1279
- function tn(e, t, n, r, i, a, o) {
1280
+ function ln(e, t, n, r, i, a, o) {
1280
1281
  let c = n * .15, l = [
1281
1282
  s`${e + c},${t}`,
1282
1283
  s`${e + n - c},${t}`,
@@ -1285,7 +1286,7 @@ function tn(e, t, n, r, i, a, o) {
1285
1286
  ].join(" ");
1286
1287
  return s`<polygon points="${l}" fill="${i}" stroke="${a}" stroke-width="${o}" />`;
1287
1288
  }
1288
- function nn(e, t, n, r, i, a, o) {
1289
+ function un(e, t, n, r, i, a, o) {
1289
1290
  let c = n * .15, l = [
1290
1291
  s`${e},${t}`,
1291
1292
  s`${e + n},${t}`,
@@ -1294,7 +1295,7 @@ function nn(e, t, n, r, i, a, o) {
1294
1295
  ].join(" ");
1295
1296
  return s`<polygon points="${l}" fill="${i}" stroke="${a}" stroke-width="${o}" />`;
1296
1297
  }
1297
- function rn(e, t, n, r, i, a, o) {
1298
+ function dn(e, t, n, r, i, a, o) {
1298
1299
  let c = n * .15, l = [
1299
1300
  s`${e + c},${t}`,
1300
1301
  s`${e + n},${t}`,
@@ -1303,7 +1304,7 @@ function rn(e, t, n, r, i, a, o) {
1303
1304
  ].join(" ");
1304
1305
  return s`<polygon points="${l}" fill="${i}" stroke="${a}" stroke-width="${o}" />`;
1305
1306
  }
1306
- function an(e, t, n, r, i, a, o) {
1307
+ function fn(e, t, n, r, i, a, o) {
1307
1308
  let c = n * .15, l = [
1308
1309
  s`${e},${t}`,
1309
1310
  s`${e + n - c},${t}`,
@@ -1312,19 +1313,19 @@ function an(e, t, n, r, i, a, o) {
1312
1313
  ].join(" ");
1313
1314
  return s`<polygon points="${l}" fill="${i}" stroke="${a}" stroke-width="${o}" />`;
1314
1315
  }
1315
- function H(e, t, n) {
1316
+ function V(e, t, n) {
1316
1317
  return s`fill="${e}" stroke="${t}" stroke-width="${n}"`;
1317
1318
  }
1318
- function on(e, t, n, r, i, a, o) {
1319
+ function pn(e, t, n, r, i, a, o) {
1319
1320
  let c = Math.min(10, r * .16), l = t + r - c, u = s`M ${e} ${t} L ${e + n} ${t} L ${e + n} ${l} ` + s`C ${e + n * .75} ${l + c * 1.8} ${e + n * .25} ${l - c * .8} ${e} ${l} Z`;
1320
- return s`<path d="${u}" ${H(i, a, o)} />`;
1321
+ return s`<path d="${u}" ${V(i, a, o)} />`;
1321
1322
  }
1322
- function sn(e, t, n, r, i, a, o, c) {
1323
+ function mn(e, t, n, r, i, a, o, c) {
1323
1324
  let l = n - 10, u = r - 10, d = [];
1324
- for (let n = 2; n >= 1; n--) d.push(s`<rect x="${e + 5 * n}" y="${t + 5 * (2 - n)}" width="${l}" height="${u}" ` + s`${H(i, a, o)} />`);
1325
- return d.push(c ? on(e, t + 10, l, u, i, a, o) : s`<rect x="${e}" y="${t + 10}" width="${l}" height="${u}" ${H(i, a, o)} />`), d.join("\n");
1325
+ for (let n = 2; n >= 1; n--) d.push(s`<rect x="${e + 5 * n}" y="${t + 5 * (2 - n)}" width="${l}" height="${u}" ` + s`${V(i, a, o)} />`);
1326
+ return d.push(c ? pn(e, t + 10, l, u, i, a, o) : s`<rect x="${e}" y="${t + 10}" width="${l}" height="${u}" ${V(i, a, o)} />`), d.join("\n");
1326
1327
  }
1327
- function cn(e, t, n, r, i, a, o) {
1328
+ function hn(e, t, n, r, i, a, o) {
1328
1329
  let c = Math.min(14, n * .12, r * .3), l = [
1329
1330
  s`${e + c},${t}`,
1330
1331
  s`${e + n},${t}`,
@@ -1332,21 +1333,21 @@ function cn(e, t, n, r, i, a, o) {
1332
1333
  s`${e},${t + r}`,
1333
1334
  s`${e},${t + c}`
1334
1335
  ].join(" ");
1335
- return s`<polygon points="${l}" ${H(i, a, o)} />`;
1336
+ return s`<polygon points="${l}" ${V(i, a, o)} />`;
1336
1337
  }
1337
- function ln(e, t, n, r, i, a, o) {
1338
+ function gn(e, t, n, r, i, a, o) {
1338
1339
  let c = Math.min(12, n * .12);
1339
- return s`<rect x="${e}" y="${t}" width="${n}" height="${r}" ${H(i, a, o)} />\n` + s`<line x1="${e + c}" y1="${t}" x2="${e + c}" y2="${t + r}" stroke="${a}" stroke-width="${o}" />`;
1340
+ return s`<rect x="${e}" y="${t}" width="${n}" height="${r}" ${V(i, a, o)} />\n` + s`<line x1="${e + c}" y1="${t}" x2="${e + c}" y2="${t + r}" stroke="${a}" stroke-width="${o}" />`;
1340
1341
  }
1341
- function un(e, t, n, r, i, a, o) {
1342
+ function _n(e, t, n, r, i, a, o) {
1342
1343
  let c = t + Math.min(16, r * .3);
1343
- return s`<rect x="${e}" y="${t}" width="${n}" height="${r}" ${H(i, a, o)} />\n` + s`<line x1="${e}" y1="${c}" x2="${e + n}" y2="${c}" stroke="${a}" stroke-width="${o}" />`;
1344
+ return s`<rect x="${e}" y="${t}" width="${n}" height="${r}" ${V(i, a, o)} />\n` + s`<line x1="${e}" y1="${c}" x2="${e + n}" y2="${c}" stroke="${a}" stroke-width="${o}" />`;
1344
1345
  }
1345
- function dn(e, t, n, r, i, a, o) {
1346
+ function vn(e, t, n, r, i, a, o) {
1346
1347
  let c = e + Math.min(16, n * .16), l = t + Math.min(14, r * .28);
1347
- return s`<rect x="${e}" y="${t}" width="${n}" height="${r}" ${H(i, a, o)} />\n` + s`<line x1="${c}" y1="${t}" x2="${c}" y2="${t + r}" stroke="${a}" stroke-width="${o}" />\n` + s`<line x1="${e}" y1="${l}" x2="${e + n}" y2="${l}" stroke="${a}" stroke-width="${o}" />`;
1348
+ return s`<rect x="${e}" y="${t}" width="${n}" height="${r}" ${V(i, a, o)} />\n` + s`<line x1="${c}" y1="${t}" x2="${c}" y2="${t + r}" stroke="${a}" stroke-width="${o}" />\n` + s`<line x1="${e}" y1="${l}" x2="${e + n}" y2="${l}" stroke="${a}" stroke-width="${o}" />`;
1348
1349
  }
1349
- function fn(e, t, n, r, i, a, o, c) {
1350
+ function yn(e, t, n, r, i, a, o, c) {
1350
1351
  let l = c ? [
1351
1352
  s`${e},${t}`,
1352
1353
  s`${e + n},${t}`,
@@ -1356,21 +1357,21 @@ function fn(e, t, n, r, i, a, o, c) {
1356
1357
  s`${e + n},${t + r}`,
1357
1358
  s`${e},${t + r}`
1358
1359
  ];
1359
- return s`<polygon points="${l.join(" ")}" ${H(i, a, o)} />`;
1360
+ return s`<polygon points="${l.join(" ")}" ${V(i, a, o)} />`;
1360
1361
  }
1361
- function pn(e, t, n, r, i) {
1362
+ function bn(e, t, n, r, i) {
1362
1363
  let a = Math.min(n, r) / 2 - 2;
1363
1364
  return s`<circle cx="${e + n / 2}" cy="${t + r / 2}" r="${a}" fill="${i}" stroke="${i}" />`;
1364
1365
  }
1365
- function mn(e, t, n, r, i, a, o) {
1366
+ function xn(e, t, n, r, i, a, o) {
1366
1367
  let c = e + n / 2, l = t + r / 2, u = Math.min(n, r) / 2 - 2, d = u / Math.SQRT2;
1367
- return s`<circle cx="${c}" cy="${l}" r="${u}" ${H(i, a, o)} />\n` + s`<line x1="${c - d}" y1="${l - d}" x2="${c + d}" y2="${l + d}" stroke="${a}" stroke-width="${o}" />\n` + s`<line x1="${c + d}" y1="${l - d}" x2="${c - d}" y2="${l + d}" stroke="${a}" stroke-width="${o}" />`;
1368
+ return s`<circle cx="${c}" cy="${l}" r="${u}" ${V(i, a, o)} />\n` + s`<line x1="${c - d}" y1="${l - d}" x2="${c + d}" y2="${l + d}" stroke="${a}" stroke-width="${o}" />\n` + s`<line x1="${c + d}" y1="${l - d}" x2="${c - d}" y2="${l + d}" stroke="${a}" stroke-width="${o}" />`;
1368
1369
  }
1369
- function hn(e, t, n, r, i) {
1370
+ function Sn(e, t, n, r, i) {
1370
1371
  let a = Math.min(8, r);
1371
1372
  return s`<rect x="${e}" y="${t + (r - a) / 2}" width="${n}" height="${a}" fill="${i}" stroke="${i}" />`;
1372
1373
  }
1373
- function gn(e, t, n, r, i, a, o) {
1374
+ function Cn(e, t, n, r, i, a, o) {
1374
1375
  let c = Math.min(14, n * .12, r * .3), l = [
1375
1376
  s`${e + c},${t}`,
1376
1377
  s`${e + n - c},${t}`,
@@ -1379,34 +1380,34 @@ function gn(e, t, n, r, i, a, o) {
1379
1380
  s`${e},${t + r}`,
1380
1381
  s`${e},${t + c}`
1381
1382
  ].join(" ");
1382
- return s`<polygon points="${l}" ${H(i, a, o)} />`;
1383
+ return s`<polygon points="${l}" ${V(i, a, o)} />`;
1383
1384
  }
1384
- function _n(e, t, n, r, i, a, o) {
1385
+ function wn(e, t, n, r, i, a, o) {
1385
1386
  let c = Math.min(12, r * .3), l = [
1386
1387
  s`${e},${t + c}`,
1387
1388
  s`${e + n},${t}`,
1388
1389
  s`${e + n},${t + r}`,
1389
1390
  s`${e},${t + r}`
1390
1391
  ].join(" ");
1391
- return s`<polygon points="${l}" ${H(i, a, o)} />`;
1392
+ return s`<polygon points="${l}" ${V(i, a, o)} />`;
1392
1393
  }
1393
- function vn(e, t, n, r, i, a, o) {
1394
+ function Tn(e, t, n, r, i, a, o) {
1394
1395
  let c = Math.min(8, r * .14), l = s`M ${e} ${t + c} ` + s`C ${e + n * .25} ${t - c} ${e + n * .75} ${t + c * 2} ${e + n} ${t + c} ` + s`L ${e + n} ${t + r - c} ` + s`C ${e + n * .75} ${t + r + c} ${e + n * .25} ${t + r - c * 2} ${e} ${t + r - c} Z`;
1395
- return s`<path d="${l}" ${H(i, a, o)} />`;
1396
+ return s`<path d="${l}" ${V(i, a, o)} />`;
1396
1397
  }
1397
- function yn(e, t, n, r, i, a, o) {
1398
+ function En(e, t, n, r, i, a, o) {
1398
1399
  let c = Math.min(14, n * .12), l = s`M ${e + c} ${t} L ${e + n} ${t} ` + s`Q ${e + n - c * 1.4} ${t + r / 2} ${e + n} ${t + r} ` + s`L ${e + c} ${t + r} ` + s`Q ${e + c * 1.4} ${t + r / 2} ${e + c} ${t} Z`;
1399
- return s`<path d="${l}" ${H(i, a, o)} />`;
1400
+ return s`<path d="${l}" ${V(i, a, o)} />`;
1400
1401
  }
1401
- function bn(e, t, n, r, i, a, o) {
1402
+ function Dn(e, t, n, r, i, a, o) {
1402
1403
  let c = r / 2, l = Math.max(0, n - c), u = s`M ${e} ${t} L ${e + l} ${t} ` + s`A ${c} ${c} 0 0 1 ${e + l} ${t + r} ` + s`L ${e} ${t + r} Z`;
1403
- return s`<path d="${u}" ${H(i, a, o)} />`;
1404
+ return s`<path d="${u}" ${V(i, a, o)} />`;
1404
1405
  }
1405
- function xn(e, t, n, r, i, a, o, c) {
1406
+ function On(e, t, n, r, i, a, o, c) {
1406
1407
  let l = Math.min(10, n * .12), u = [s`<rect x="${e}" y="${t}" width="${n}" height="${r}" fill="none" stroke="none" />`], d = s`M ${e + l} ${t} Q ${e} ${t} ${e} ${t + r * .25} ` + s`Q ${e} ${t + r / 2} ${e - l * .4} ${t + r / 2} ` + s`Q ${e} ${t + r / 2} ${e} ${t + r * .75} ` + s`Q ${e} ${t + r} ${e + l} ${t + r}`, f = s`M ${e + n - l} ${t} Q ${e + n} ${t} ${e + n} ${t + r * .25} ` + s`Q ${e + n} ${t + r / 2} ${e + n + l * .4} ${t + r / 2} ` + s`Q ${e + n} ${t + r / 2} ${e + n} ${t + r * .75} ` + s`Q ${e + n} ${t + r} ${e + n - l} ${t + r}`;
1407
1408
  return (c === "left" || c === "both") && u.push(s`<path d="${d}" fill="none" stroke="${a}" stroke-width="${o}" />`), (c === "right" || c === "both") && u.push(s`<path d="${f}" fill="none" stroke="${a}" stroke-width="${o}" />`), u.join("\n");
1408
1409
  }
1409
- function Sn(e, t, n, r, i, a, o) {
1410
+ function kn(e, t, n, r, i, a, o) {
1410
1411
  let c = [
1411
1412
  s`${e + n * .42},${t}`,
1412
1413
  s`${e + n},${t}`,
@@ -1416,30 +1417,30 @@ function Sn(e, t, n, r, i, a, o) {
1416
1417
  s`${e + n * .5},${t + r * .55}`,
1417
1418
  s`${e},${t + r * .55}`
1418
1419
  ].join(" ");
1419
- return s`<polygon points="${c}" ${H(i, a, o)} />`;
1420
+ return s`<polygon points="${c}" ${V(i, a, o)} />`;
1420
1421
  }
1421
- function Cn(e, t, n, r) {
1422
+ function An(e, t, n, r) {
1422
1423
  let i = e + n / 2, a = t + r / 2, o = Math.min(n, r) / 2 - 2;
1423
1424
  return s`<circle cx="${i}" cy="${a}" r="${o}" fill="var(--_text)" stroke="none" />`;
1424
1425
  }
1425
- function wn(e, t, n, r) {
1426
+ function jn(e, t, n, r) {
1426
1427
  let i = e + n / 2, a = t + r / 2, o = Math.min(n, r) / 2 - 2, c = o - 4;
1427
1428
  return s`<circle cx="${i}" cy="${a}" r="${o}" ` + s`fill="none" stroke="var(--_text)" stroke-width="${L.innerBox * 2}" />` + s`\n<circle cx="${i}" cy="${a}" r="${c}" fill="var(--_text)" stroke="none" />`;
1428
1429
  }
1429
- function Tn(e, t, n) {
1430
+ function Mn(e, t, n) {
1430
1431
  if ((e.shape === "state-start" || e.shape === "state-end") && !e.label) return "";
1431
1432
  let r = e.x + e.width / 2, a = e.y + e.height / 2, o = i(e.inlineStyle?.color ?? l(e.inlineStyle?.fill, "var(--_text)")), c = s`text-anchor="middle" font-size="${n.nodeLabel}" font-weight="${F.nodeLabel}" fill="${o}"`, u = e.inlineStyle?.["font-family"];
1432
1433
  return u && (c += s` style="font-family: ${i(u)};"`), _(e.label, r, a, n.nodeLabel, c);
1433
1434
  }
1434
- function En(e) {
1435
+ function Nn(e) {
1435
1436
  return i(e).replace(/\r/g, "&#13;").replace(/\n/g, "&#10;").replace(/\t/g, "&#9;");
1436
1437
  }
1437
- function U(e, t) {
1438
- return t === void 0 ? e : e.replace("<svg ", s`<svg data-src="${En(t)}" `);
1438
+ function H(e, t) {
1439
+ return t === void 0 ? e : e.replace("<svg ", s`<svg data-src="${Nn(t)}" `);
1439
1440
  }
1440
1441
  //#endregion
1441
1442
  //#region packages/svg-renderer/src/resolve-colors.ts
1442
- var Dn = class {
1443
+ var Pn = class {
1443
1444
  raw = /* @__PURE__ */ new Map();
1444
1445
  resolved = /* @__PURE__ */ new Map();
1445
1446
  inProgress = /* @__PURE__ */ new Set();
@@ -1451,13 +1452,13 @@ var Dn = class {
1451
1452
  let t = this.raw.get(e);
1452
1453
  if (t === void 0 || this.inProgress.has(e)) return;
1453
1454
  this.inProgress.add(e);
1454
- let n = Pn(t, this).trim();
1455
+ let n = Vn(t, this).trim();
1455
1456
  this.inProgress.delete(e);
1456
1457
  let r = !/\bvar\(|\bcolor-mix\(/.test(n);
1457
1458
  return this.resolved.set(e, r ? n : void 0), r ? n : void 0;
1458
1459
  }
1459
1460
  };
1460
- function On(e, t) {
1461
+ function Fn(e, t) {
1461
1462
  let n = 0;
1462
1463
  for (let r = t; r < e.length; r++) {
1463
1464
  let t = e[r];
@@ -1466,7 +1467,7 @@ function On(e, t) {
1466
1467
  }
1467
1468
  return -1;
1468
1469
  }
1469
- function kn(e) {
1470
+ function In(e) {
1470
1471
  let t = [], n = 0, r = 0;
1471
1472
  for (let i = 0; i < e.length; i++) {
1472
1473
  let a = e[i];
@@ -1474,12 +1475,12 @@ function kn(e) {
1474
1475
  }
1475
1476
  return t.push(e.slice(r)), t;
1476
1477
  }
1477
- var An = "(?<![\\w-])(var|color-mix)\\(";
1478
- function jn(e, t) {
1479
- let [n, ...r] = kn(e), i = (n ?? "").trim(), a = t.lookup(i);
1478
+ var Ln = "(?<![\\w-])(var|color-mix)\\(";
1479
+ function Rn(e, t) {
1480
+ let [n, ...r] = In(e), i = (n ?? "").trim(), a = t.lookup(i);
1480
1481
  return a === void 0 ? r.length > 0 ? r.join(",").trim() : null : a;
1481
1482
  }
1482
- function Mn(e) {
1483
+ function zn(e) {
1483
1484
  let t = e.trim().split(/\s+/), n, r;
1484
1485
  for (let e of t) if (/^[\d.]+%$/.test(e)) {
1485
1486
  if (r !== void 0) return null;
@@ -1493,61 +1494,61 @@ function Mn(e) {
1493
1494
  pct: r
1494
1495
  };
1495
1496
  }
1496
- function Nn(e) {
1497
- let t = kn(e);
1497
+ function Bn(e) {
1498
+ let t = In(e);
1498
1499
  if (t.length !== 3) return null;
1499
1500
  let [n, r, i] = t;
1500
1501
  if (n === void 0 || r === void 0 || i === void 0 || !/^\s*in\s+srgb\s*$/i.test(n)) return null;
1501
- let a = Mn(r), o = Mn(i);
1502
+ let a = zn(r), o = zn(i);
1502
1503
  if (!a || !o) return null;
1503
1504
  let s = h(a.color), l = h(o.color);
1504
1505
  if (!s || !l) return null;
1505
1506
  let u = p(s, l, a.pct, o.pct);
1506
1507
  return u ? c(u) : null;
1507
1508
  }
1508
- function Pn(e, t) {
1509
- let n = "", r = 0, i = new RegExp(An, "g"), a;
1509
+ function Vn(e, t) {
1510
+ let n = "", r = 0, i = new RegExp(Ln, "g"), a;
1510
1511
  for (; (a = i.exec(e)) !== null;) {
1511
1512
  let o = a[1];
1512
1513
  if (o === void 0) continue;
1513
- let s = a.index, c = s + o.length, l = On(e, c);
1514
+ let s = a.index, c = s + o.length, l = Fn(e, c);
1514
1515
  if (l === -1) break;
1515
- let u = Pn(e.slice(c + 1, l), t), d = o === "var" ? jn(u, t) : Nn(u);
1516
+ let u = Vn(e.slice(c + 1, l), t), d = o === "var" ? Rn(u, t) : Bn(u);
1516
1517
  n += e.slice(r, s), n += d ?? `${o}(${u})`, r = l + 1, i.lastIndex = r;
1517
1518
  }
1518
1519
  return n + e.slice(r);
1519
1520
  }
1520
- function Fn(e, t) {
1521
- let n = new Dn();
1521
+ function Hn(e, t) {
1522
+ let n = new Pn();
1522
1523
  for (let [e, r] of Object.entries(t)) n.declare(e, r);
1523
- return Pn(e, n);
1524
+ return Vn(e, n);
1524
1525
  }
1525
- var In = /(--[\w-]+)\s*:\s*([^;{}]+)/g, Ln = /(\s)([\w:.-]+)(=)("[^"]*"|'[^']*')/g, Rn = /* @__PURE__ */ new Set(["data-src"]);
1526
- function zn(e, t) {
1527
- In.lastIndex = 0;
1526
+ var Un = /(--[\w-]+)\s*:\s*([^;{}]+)/g, Wn = /(\s)([\w:.-]+)(=)("[^"]*"|'[^']*')/g, Gn = /* @__PURE__ */ new Set(["data-src"]);
1527
+ function Kn(e, t) {
1528
+ Un.lastIndex = 0;
1528
1529
  let n;
1529
- for (; (n = In.exec(e)) !== null;) {
1530
+ for (; (n = Un.exec(e)) !== null;) {
1530
1531
  let [, e, r] = n;
1531
1532
  e !== void 0 && r !== void 0 && t.declare(e, r.trim());
1532
1533
  }
1533
1534
  }
1534
- function Bn(e, t) {
1535
- return e.replace(Ln, (e, n, r, i, a) => {
1536
- if (Rn.has(r)) return e;
1535
+ function qn(e, t) {
1536
+ return e.replace(Wn, (e, n, r, i, a) => {
1537
+ if (Gn.has(r)) return e;
1537
1538
  let o = a[0] ?? "\"";
1538
- return `${n}${r}${i}${o}${Pn(a.slice(1, -1), t)}${o}`;
1539
+ return `${n}${r}${i}${o}${Vn(a.slice(1, -1), t)}${o}`;
1539
1540
  });
1540
1541
  }
1541
- function Vn(e, t) {
1542
- let n = new Dn();
1542
+ function Jn(e, t) {
1543
+ let n = new Pn();
1543
1544
  n.declare("--bg", t.bg), n.declare("--fg", t.fg), t.line && n.declare("--line", t.line), t.accent && n.declare("--accent", t.accent), t.muted && n.declare("--muted", t.muted), t.surface && n.declare("--surface", t.surface), t.border && n.declare("--border", t.border);
1544
1545
  for (let t of e.matchAll(/<style[^>]*>([\s\S]*?)<\/style>/g)) {
1545
1546
  let e = t[1];
1546
- e !== void 0 && zn(e, n);
1547
+ e !== void 0 && Kn(e, n);
1547
1548
  }
1548
1549
  for (let t of e.matchAll(/\sstyle=("[^"]*"|'[^']*')/g)) {
1549
1550
  let e = t[1];
1550
- e !== void 0 && zn(e.slice(1, -1), n);
1551
+ e !== void 0 && Kn(e.slice(1, -1), n);
1551
1552
  }
1552
1553
  let r = "", i = 0;
1553
1554
  for (; i < e.length;) {
@@ -1556,7 +1557,7 @@ function Vn(e, t) {
1556
1557
  if (r += e.slice(i, t), e.startsWith("<style", t)) {
1557
1558
  let a = e.indexOf(">", t), o = e.indexOf("</style>", t);
1558
1559
  if (a === -1 || o === -1) break;
1559
- r += e.slice(t, a + 1), r += Pn(e.slice(a + 1, o), n), r += "</style>", i = o + 8;
1560
+ r += e.slice(t, a + 1), r += Vn(e.slice(a + 1, o), n), r += "</style>", i = o + 8;
1560
1561
  continue;
1561
1562
  }
1562
1563
  let a = -1, o = null;
@@ -1571,13 +1572,13 @@ function Vn(e, t) {
1571
1572
  }
1572
1573
  if (a === -1) break;
1573
1574
  let s = e.slice(t, a + 1);
1574
- r += s.startsWith("<!") || s.startsWith("<?") || s.startsWith("</") ? s : Bn(s, n), i = a + 1;
1575
+ r += s.startsWith("<!") || s.startsWith("<?") || s.startsWith("</") ? s : qn(s, n), i = a + 1;
1575
1576
  }
1576
1577
  return r + e.slice(i);
1577
1578
  }
1578
1579
  //#endregion
1579
1580
  //#region packages/svg-renderer/src/class/layout.ts
1580
- var W = {
1581
+ var U = {
1581
1582
  padding: 40,
1582
1583
  boxPadX: 8,
1583
1584
  headerBaseHeight: 32,
@@ -1593,16 +1594,16 @@ var W = {
1593
1594
  notePadX: 10,
1594
1595
  notePadY: 6
1595
1596
  };
1596
- function Hn(e) {
1597
+ function Yn(e) {
1597
1598
  return `note ${e}`;
1598
1599
  }
1599
- function Un(e) {
1600
+ function Xn(e) {
1600
1601
  return `${e} link`;
1601
1602
  }
1602
- function Wn(e, t) {
1603
+ function Zn(e, t) {
1603
1604
  let n = /* @__PURE__ */ new Map(), r = /* @__PURE__ */ new Map(), i = P(t.fontSizes);
1604
1605
  for (let t of e.classes) {
1605
- let e = t.annotation ? W.headerBaseHeight + W.annotationHeight : W.headerBaseHeight, r = t.attributes.length > 0 ? t.attributes.length * W.memberRowHeight + W.sectionPadY : W.emptySectionHeight, a = t.methods.length > 0 ? t.methods.length * W.memberRowHeight + W.sectionPadY : W.emptySectionHeight, o = M(t.label, i.nodeLabel, F.nodeLabel), s = qn(t.attributes), c = qn(t.methods), l = Math.max(W.minWidth, o + W.boxPadX * 2, s + W.boxPadX * 2, c + W.boxPadX * 2), u = e + r + a;
1606
+ let e = t.annotation ? U.headerBaseHeight + U.annotationHeight : U.headerBaseHeight, r = t.attributes.length > 0 ? t.attributes.length * U.memberRowHeight + U.sectionPadY : U.emptySectionHeight, a = t.methods.length > 0 ? t.methods.length * U.memberRowHeight + U.sectionPadY : U.emptySectionHeight, o = M(t.label, i.nodeLabel, F.nodeLabel), s = er(t.attributes), c = er(t.methods), l = Math.max(U.minWidth, o + U.boxPadX * 2, s + U.boxPadX * 2, c + U.boxPadX * 2), u = e + r + a;
1606
1607
  n.set(t.id, {
1607
1608
  width: l,
1608
1609
  height: u,
@@ -1612,9 +1613,9 @@ function Wn(e, t) {
1612
1613
  });
1613
1614
  }
1614
1615
  let a = [];
1615
- for (let [e, t] of n) a.push(B(e, t));
1616
+ for (let [e, t] of n) a.push(Ve(e, t));
1616
1617
  let o = { fontSize: i.edgeLabel }, s = [];
1617
- for (let [t, n] of e.relationships.entries()) s.push(V({
1618
+ for (let [t, n] of e.relationships.entries()) s.push(B({
1618
1619
  id: `e${t}`,
1619
1620
  source: n.from,
1620
1621
  target: n.to,
@@ -1623,12 +1624,12 @@ function Wn(e, t) {
1623
1624
  }));
1624
1625
  let c = new Set(n.keys());
1625
1626
  for (let [t, n] of e.notes.entries()) {
1626
- let e = Hn(t), l = d(n.text, i.edgeLabel, F.edgeLabel), u = {
1627
- width: l.width + W.notePadX * 2,
1628
- height: l.height + W.notePadY * 2
1627
+ let e = Yn(t), l = d(n.text, i.edgeLabel, F.edgeLabel), u = {
1628
+ width: l.width + U.notePadX * 2,
1629
+ height: l.height + U.notePadY * 2
1629
1630
  };
1630
- r.set(e, u), a.push(B(e, u)), n.forClass !== void 0 && c.has(n.forClass) && s.push(V({
1631
- id: Un(e),
1631
+ r.set(e, u), a.push(Ve(e, u)), n.forClass !== void 0 && c.has(n.forClass) && s.push(B({
1632
+ id: Xn(e),
1632
1633
  source: e,
1633
1634
  target: n.forClass,
1634
1635
  labelStyle: o
@@ -1638,11 +1639,11 @@ function Wn(e, t) {
1638
1639
  elkGraph: {
1639
1640
  id: "root",
1640
1641
  layoutOptions: {
1641
- ...Pe({
1642
- direction: Me(void 0, je.class),
1643
- nodeSpacing: W.nodeSpacing,
1644
- layerSpacing: W.layerSpacing,
1645
- padding: W.padding
1642
+ ...Be({
1643
+ direction: Re(void 0, Le.class),
1644
+ nodeSpacing: U.nodeSpacing,
1645
+ layerSpacing: U.layerSpacing,
1646
+ padding: U.padding
1646
1647
  }),
1647
1648
  "elk.edgeLabels.placement": "CENTER"
1648
1649
  },
@@ -1653,7 +1654,7 @@ function Wn(e, t) {
1653
1654
  noteSizes: r
1654
1655
  };
1655
1656
  }
1656
- function Gn(e, t, n, r) {
1657
+ function Qn(e, t, n, r) {
1657
1658
  let i = /* @__PURE__ */ new Map();
1658
1659
  for (let e of t.classes) i.set(e.id, e);
1659
1660
  let a = [];
@@ -1689,7 +1690,7 @@ function Gn(e, t, n, r) {
1689
1690
  if (!t)
1690
1691
  /* v8 ignore next */
1691
1692
  throw Error(`Missing ELK edge for relationship ${e}`);
1692
- let r = st(t), i = ct(t);
1693
+ let r = mt(t), i = ht(t);
1693
1694
  o.push({
1694
1695
  from: n.from,
1695
1696
  to: n.to,
@@ -1708,11 +1709,11 @@ function Gn(e, t, n, r) {
1708
1709
  for (let t of e.children ?? []) l.set(t.id, t);
1709
1710
  let u = [];
1710
1711
  for (let [e, n] of t.notes.entries()) {
1711
- let t = Hn(e), i = l.get(t), a = r.get(t);
1712
+ let t = Yn(e), i = l.get(t), a = r.get(t);
1712
1713
  if (!i || !a)
1713
1714
  /* v8 ignore next */
1714
1715
  throw Error(`Missing layout for note ${e}`);
1715
- let o = c.get(Un(t));
1716
+ let o = c.get(Xn(t));
1716
1717
  u.push({
1717
1718
  id: t,
1718
1719
  text: n.text,
@@ -1721,7 +1722,7 @@ function Gn(e, t, n, r) {
1721
1722
  y: i.y ?? 0,
1722
1723
  width: i.width ?? a.width,
1723
1724
  height: i.height ?? a.height,
1724
- ...o ? { linkPoints: st(o) } : {}
1725
+ ...o ? { linkPoints: mt(o) } : {}
1725
1726
  });
1726
1727
  }
1727
1728
  return {
@@ -1732,7 +1733,7 @@ function Gn(e, t, n, r) {
1732
1733
  notes: u
1733
1734
  };
1734
1735
  }
1735
- function Kn(e, t = {}) {
1736
+ function $n(e, t = {}) {
1736
1737
  if (e.classes.length === 0 && e.notes.length === 0) return {
1737
1738
  width: 0,
1738
1739
  height: 0,
@@ -1740,40 +1741,40 @@ function Kn(e, t = {}) {
1740
1741
  relationships: [],
1741
1742
  notes: []
1742
1743
  };
1743
- let { elkGraph: n, classSizes: r, noteSizes: i } = Wn(e, t);
1744
- return Gn(Te(n, t.layoutCache), e, r, i);
1744
+ let { elkGraph: n, classSizes: r, noteSizes: i } = Zn(e, t);
1745
+ return Qn(je(n, t.layoutCache), e, r, i);
1745
1746
  }
1746
- function qn(e) {
1747
+ function er(e) {
1747
1748
  if (e.length === 0) return 0;
1748
1749
  let t = 0;
1749
1750
  for (let n of e) {
1750
- let e = Ee(re(n), W.memberFontSize);
1751
+ let e = Me(se(n), U.memberFontSize);
1751
1752
  e > t && (t = e);
1752
1753
  }
1753
1754
  return t;
1754
1755
  }
1755
1756
  //#endregion
1756
1757
  //#region packages/svg-renderer/src/class/renderer.ts
1757
- var Jn = {
1758
+ var tr = {
1758
1759
  memberSize: 11,
1759
1760
  memberWeight: 400,
1760
1761
  annotationSize: 10,
1761
1762
  annotationWeight: 500
1762
1763
  };
1763
- function Yn(e, t, r = "Inter", i = !1, a = N, o, s, c, l = !0, u = {}) {
1764
+ function nr(e, t, r = "Inter", i = !1, a = N, o, s, c, l = !0, u = {}) {
1764
1765
  let d = [], f = l && e.classes.some((e) => !!b(e.interaction?.href));
1765
- d.push(U(E(e.width, e.height, t, i, s, c, f, u.styleAttribute), o)), d.push(n(r, !0, u.nonce)), d.push("<defs>"), d.push(Xn()), d.push("</defs>");
1766
- for (let t of e.relationships) d.push(tr(t));
1767
- for (let t of e.notes) d.push(er(t));
1768
- for (let t of e.classes) d.push(Zn(t, a, l));
1769
- for (let t of e.notes) d.push($n(t, a));
1770
- for (let t of e.relationships) d.push(ir(t, a));
1766
+ d.push(H(E(e.width, e.height, t, i, s, c, f, u.styleAttribute), o)), d.push(n(r, !0, u.nonce)), d.push("<defs>"), d.push(rr()), d.push("</defs>");
1767
+ for (let t of e.relationships) d.push(lr(t));
1768
+ for (let t of e.notes) d.push(cr(t));
1769
+ for (let t of e.classes) d.push(ir(t, a, l));
1770
+ for (let t of e.notes) d.push(sr(t, a));
1771
+ for (let t of e.relationships) d.push(fr(t, a));
1771
1772
  return d.push("</svg>"), d.join("\n");
1772
1773
  }
1773
- function Xn() {
1774
- return " <marker id=\"cls-inherit\" markerWidth=\"12\" markerHeight=\"10\" refX=\"12\" refY=\"5\" orient=\"auto-start-reverse\">\n <polygon points=\"0 0, 12 5, 0 10\" fill=\"var(--bg)\" stroke=\"var(--_arrow)\" stroke-width=\"1.5\" />\n </marker>\n <marker id=\"cls-composition\" markerWidth=\"12\" markerHeight=\"10\" refX=\"0\" refY=\"5\" orient=\"auto-start-reverse\">\n <polygon points=\"6 0, 12 5, 6 10, 0 5\" fill=\"var(--_arrow)\" stroke=\"var(--_arrow)\" stroke-width=\"1\" />\n </marker>\n <marker id=\"cls-aggregation\" markerWidth=\"12\" markerHeight=\"10\" refX=\"0\" refY=\"5\" orient=\"auto-start-reverse\">\n <polygon points=\"6 0, 12 5, 6 10, 0 5\" fill=\"var(--bg)\" stroke=\"var(--_arrow)\" stroke-width=\"1.5\" />\n </marker>\n <marker id=\"cls-arrow\" markerWidth=\"8\" markerHeight=\"6\" refX=\"8\" refY=\"3\" orient=\"auto-start-reverse\">\n <polyline points=\"0 0, 8 3, 0 6\" fill=\"none\" stroke=\"var(--_arrow)\" stroke-width=\"1.5\" />\n </marker>";
1774
+ function rr() {
1775
+ return " <marker id=\"cls-inherit\" markerWidth=\"12\" markerHeight=\"10\" refX=\"12\" refY=\"5\" orient=\"auto-start-reverse\">\n <polygon points=\"0 0, 12 5, 0 10\" fill=\"var(--bg)\" stroke=\"var(--_arrow)\" stroke-width=\"1.5\" />\n </marker>\n <marker id=\"cls-composition\" markerWidth=\"18\" markerHeight=\"14\" refX=\"16.5\" refY=\"7\" orient=\"auto-start-reverse\">\n <polygon points=\"9 1.5, 16.5 7, 9 12.5, 1.5 7\" fill=\"var(--_arrow)\" stroke=\"var(--_arrow)\" stroke-width=\"1\" />\n </marker>\n <marker id=\"cls-aggregation\" markerWidth=\"18\" markerHeight=\"14\" refX=\"16.5\" refY=\"7\" orient=\"auto-start-reverse\">\n <polygon points=\"9 1.5, 16.5 7, 9 12.5, 1.5 7\" fill=\"var(--bg)\" stroke=\"var(--_arrow)\" stroke-width=\"1.5\" />\n </marker>\n <marker id=\"cls-arrow\" markerWidth=\"8\" markerHeight=\"6\" refX=\"8\" refY=\"3\" orient=\"auto-start-reverse\">\n <polyline points=\"0 0, 8 3, 0 6\" fill=\"none\" stroke=\"var(--_arrow)\" stroke-width=\"1.5\" />\n </marker>";
1775
1776
  }
1776
- function Zn(e, t, n = !0) {
1777
+ function ir(e, t, n = !0) {
1777
1778
  let { x: r, y: a, width: o, height: c, headerHeight: u, attrHeight: d, inlineStyle: f } = e, p = [], m = e.interaction, h = i(f?.fill ?? "var(--_node-fill)"), g = i(f?.stroke ?? "var(--_node-stroke)"), v = i(f?.["stroke-width"] ?? String(L.outerBox)), y = f?.fill ? h : "var(--_group-hdr)", S = f?.color ? i(f.color) : f?.fill ? i(l(f.fill, "var(--_text)")) : void 0, C = e.annotation ? s` data-annotation="${i(e.annotation)}"` : "", w = x(e.className), T = [
1778
1779
  s`class="${w ? s`class-node ${w}` : "class-node"}"`,
1779
1780
  s`data-id="${i(e.id)}"`,
@@ -1785,52 +1786,52 @@ function Zn(e, t, n = !0) {
1785
1786
  let e = m?.target ? s` target="${i(m.target)}"` : "";
1786
1787
  p.push(s` <a href="${i(E)}"${e}>`);
1787
1788
  }
1788
- n && m?.tooltip && p.push(s` <title>${sr(m.tooltip)}</title>`), p.push(s` <rect x="${r}" y="${a}" width="${o}" height="${c}" ` + s`rx="0" ry="0" fill="${h}" stroke="${g}" stroke-width="${v}" />`), p.push(s` <rect x="${r}" y="${a}" width="${o}" height="${u}" ` + s`rx="0" ry="0" fill="${y}" stroke="${g}" stroke-width="${v}" />`);
1789
+ n && m?.tooltip && p.push(s` <title>${hr(m.tooltip)}</title>`), p.push(s` <rect x="${r}" y="${a}" width="${o}" height="${c}" ` + s`rx="0" ry="0" fill="${h}" stroke="${g}" stroke-width="${v}" />`), p.push(s` <rect x="${r}" y="${a}" width="${o}" height="${u}" ` + s`rx="0" ry="0" fill="${y}" stroke="${g}" stroke-width="${v}" />`);
1789
1790
  let D = a + u / 2;
1790
1791
  if (e.annotation) {
1791
1792
  let t = a + 12;
1792
- p.push(s` <text x="${r + o / 2}" y="${t}" text-anchor="middle" dy="${R}" ` + s`font-size="${Jn.annotationSize}" font-weight="${Jn.annotationWeight}" ` + s`font-style="italic" fill="${S ?? "var(--_text-muted)"}">&lt;&lt;${sr(e.annotation)}&gt;&gt;</text>`), D = a + u / 2 + 6;
1793
+ p.push(s` <text x="${r + o / 2}" y="${t}" text-anchor="middle" dy="${R}" ` + s`font-size="${tr.annotationSize}" font-weight="${tr.annotationWeight}" ` + s`font-style="italic" fill="${S ?? "var(--_text-muted)"}">&lt;&lt;${hr(e.annotation)}&gt;&gt;</text>`), D = a + u / 2 + 6;
1793
1794
  }
1794
1795
  p.push(" " + _(e.label, r + o / 2, D, t.nodeLabel, s`text-anchor="middle" font-size="${t.nodeLabel}" font-weight="700" fill="${S ?? "var(--_text)"}"`));
1795
1796
  let O = a + u;
1796
1797
  p.push(s` <line x1="${r}" y1="${O}" x2="${r + o}" y2="${O}" ` + s`stroke="${g}" stroke-width="${L.innerBox}" />`);
1797
1798
  for (let t = 0; t < e.attributes.length; t++) {
1798
1799
  let n = e.attributes[t], i = O + 4 + t * 20 + 10;
1799
- p.push(" " + Qn(n, r + W.boxPadX, i, S));
1800
+ p.push(" " + ar(n, r + U.boxPadX, i, S));
1800
1801
  }
1801
1802
  let k = O + d;
1802
1803
  p.push(s` <line x1="${r}" y1="${k}" x2="${r + o}" y2="${k}" ` + s`stroke="${g}" stroke-width="${L.innerBox}" />`);
1803
1804
  for (let t = 0; t < e.methods.length; t++) {
1804
1805
  let n = e.methods[t], i = k + 4 + t * 20 + 10;
1805
- p.push(" " + Qn(n, r + W.boxPadX, i, S));
1806
+ p.push(" " + ar(n, r + U.boxPadX, i, S));
1806
1807
  }
1807
1808
  return E && p.push(" </a>"), p.push("</g>"), p.join("\n");
1808
1809
  }
1809
- function Qn(e, t, n, r) {
1810
+ function ar(e, t, n, r) {
1810
1811
  let i = e.isAbstract ? " font-style=\"italic\"" : "", a = e.isStatic ? " text-decoration=\"underline\"" : "", o = r ?? "var(--_text-faint)", c = r ?? "var(--_text-sec)", l = r ?? "var(--_text-muted)", u = [];
1811
- e.visibility && u.push(s`<tspan fill="${o}">${sr(e.visibility)} </tspan>`);
1812
+ e.visibility && u.push(s`<tspan fill="${o}">${hr(e.visibility)} </tspan>`);
1812
1813
  let d = e.isMethod ? s`${e.name}(${e.params || ""})` : e.name;
1813
- return u.push(s`<tspan fill="${c}">${sr(d)}</tspan>`), e.type && (u.push(s`<tspan fill="${o}">: </tspan>`), u.push(s`<tspan fill="${l}">${sr(e.type)}</tspan>`)), s`<text x="${t}" y="${n}" class="mono" dy="${R}" ` + s`font-size="${Jn.memberSize}" font-weight="${Jn.memberWeight}"${i}${a}>` + s`${u.join("")}</text>`;
1814
+ return u.push(s`<tspan fill="${c}">${hr(d)}</tspan>`), e.type && (u.push(s`<tspan fill="${o}">: </tspan>`), u.push(s`<tspan fill="${l}">${hr(e.type)}</tspan>`)), s`<text x="${t}" y="${n}" class="mono" dy="${R}" ` + s`font-size="${tr.memberSize}" font-weight="${tr.memberWeight}"${i}${a}>` + s`${u.join("")}</text>`;
1814
1815
  }
1815
- var G = 6;
1816
- function $n(e, t) {
1816
+ var or = 6;
1817
+ function sr(e, t) {
1817
1818
  let { x: n, y: r, width: a, height: o } = e, c = e.forClass === void 0 ? "" : s` data-for="${i(e.forClass)}"`, l = [
1818
1819
  s`${n},${r}`,
1819
- s`${n + a - G},${r}`,
1820
- s`${n + a},${r + G}`,
1820
+ s`${n + a - or},${r}`,
1821
+ s`${n + a},${r + or}`,
1821
1822
  s`${n + a},${r + o}`,
1822
1823
  s`${n},${r + o}`
1823
- ].join(" "), u = s`${n + a - G},${r} ${n + a},${r + G} ` + s`${n + a - G},${r + G}`;
1824
+ ].join(" "), u = s`${n + a - or},${r} ${n + a},${r + or} ` + s`${n + a - or},${r + or}`;
1824
1825
  return s`<g class="class-note"${c}>` + s`\n <polygon points="${l}" ` + s`fill="var(--bg)" stroke="var(--_node-stroke)" stroke-width="${L.innerBox}" />` + s`\n <polygon points="${u}" ` + s`fill="var(--_inner-stroke)" stroke="var(--_node-stroke)" stroke-width="${L.innerBox}" />` + s`\n ${_(e.text, n + a / 2, r + o / 2, t.edgeLabel, s`font-size="${t.edgeLabel}" text-anchor="middle" font-weight="${F.edgeLabel}" fill="var(--_text-muted)"`)}` + "\n</g>";
1825
1826
  }
1826
- function er(e) {
1827
+ function cr(e) {
1827
1828
  if (!e.linkPoints || e.linkPoints.length < 2) return "";
1828
1829
  let t = e.linkPoints.map((e) => s`${e.x},${e.y}`).join(" "), n = e.forClass === void 0 ? "" : s` data-for="${i(e.forClass)}"`;
1829
1830
  return s`<polyline class="class-note-link"${n} points="${t}" ` + s`fill="none" stroke="var(--_line)" stroke-width="${L.connector}" stroke-dasharray="2 3" />`;
1830
1831
  }
1831
- function tr(e) {
1832
+ function lr(e) {
1832
1833
  if (e.points.length < 2) return "";
1833
- let t = e.points.map((e) => s`${e.x},${e.y}`).join(" "), n = e.type === "dependency" || e.type === "realization" ? " stroke-dasharray=\"6 4\"" : "", r = nr(e.type, e.markerAt), a = [
1834
+ let t = e.points.map((e) => s`${e.x},${e.y}`).join(" "), n = e.type === "dependency" || e.type === "realization" ? " stroke-dasharray=\"6 4\"" : "", r = ur(e.type, e.markerAt), a = [
1834
1835
  "class=\"class-relationship\"",
1835
1836
  s`data-from="${i(e.from)}"`,
1836
1837
  s`data-to="${i(e.to)}"`,
@@ -1839,11 +1840,11 @@ function tr(e) {
1839
1840
  ];
1840
1841
  return e.label && a.push(s`data-label="${i(e.label)}"`), e.fromCardinality && a.push(s`data-from-cardinality="${i(e.fromCardinality)}"`), e.toCardinality && a.push(s`data-to-cardinality="${i(e.toCardinality)}"`), s`<polyline ${a.join(" ")} points="${t}" fill="none" stroke="var(--_line)" ` + s`stroke-width="${L.connector}"${n}${r} />`;
1841
1842
  }
1842
- function nr(e, t) {
1843
- let n = rr(e);
1843
+ function ur(e, t) {
1844
+ let n = dr(e);
1844
1845
  return n ? t === "from" ? s` marker-start="url(#${n})"` : s` marker-end="url(#${n})"` : "";
1845
1846
  }
1846
- function rr(e) {
1847
+ function dr(e) {
1847
1848
  switch (e) {
1848
1849
  case "inheritance":
1849
1850
  case "realization": return "cls-inherit";
@@ -1854,30 +1855,30 @@ function rr(e) {
1854
1855
  default: return null;
1855
1856
  }
1856
1857
  }
1857
- function ir(e, t) {
1858
+ function fr(e, t) {
1858
1859
  if (!e.label && !e.fromCardinality && !e.toCardinality || e.points.length < 2) return "";
1859
1860
  let n = [];
1860
1861
  if (e.label) {
1861
- let r = e.labelPosition ?? ar(e.points);
1862
+ let r = e.labelPosition ?? pr(e.points);
1862
1863
  n.push(_(e.label, r.x, r.y - 8, t.edgeLabel, s`font-size="${t.edgeLabel}" text-anchor="middle" font-weight="${F.edgeLabel}" fill="var(--_text-muted)"`));
1863
1864
  }
1864
1865
  if (e.fromCardinality && e.points.length >= 2) {
1865
- let r = e.points[0], i = e.points[1], a = or(r, i);
1866
+ let r = e.points[0], i = e.points[1], a = mr(r, i);
1866
1867
  n.push(_(e.fromCardinality, r.x + a.x, r.y + a.y, t.edgeLabel, s`font-size="${t.edgeLabel}" text-anchor="middle" font-weight="${F.edgeLabel}" fill="var(--_text-muted)"`));
1867
1868
  }
1868
1869
  if (e.toCardinality && e.points.length >= 2) {
1869
- let r = e.points[e.points.length - 1], i = e.points[e.points.length - 2], a = or(r, i);
1870
+ let r = e.points[e.points.length - 1], i = e.points[e.points.length - 2], a = mr(r, i);
1870
1871
  n.push(_(e.toCardinality, r.x + a.x, r.y + a.y, t.edgeLabel, s`font-size="${t.edgeLabel}" text-anchor="middle" font-weight="${F.edgeLabel}" fill="var(--_text-muted)"`));
1871
1872
  }
1872
1873
  return n.join("\n");
1873
1874
  }
1874
- function ar(e) {
1875
+ function pr(e) {
1875
1876
  return e.length === 0 ? {
1876
1877
  x: 0,
1877
1878
  y: 0
1878
1879
  } : e[Math.floor(e.length / 2)];
1879
1880
  }
1880
- function or(e, t) {
1881
+ function mr(e, t) {
1881
1882
  let n = t.x - e.x, r = t.y - e.y;
1882
1883
  return Math.abs(n) > Math.abs(r) ? {
1883
1884
  x: n > 0 ? 14 : -14,
@@ -1887,7 +1888,7 @@ function or(e, t) {
1887
1888
  y: r > 0 ? 14 : -14
1888
1889
  };
1889
1890
  }
1890
- var sr = a, K = {
1891
+ var hr = a, W = {
1891
1892
  padding: 40,
1892
1893
  boxPadX: 14,
1893
1894
  headerHeight: 34,
@@ -1898,24 +1899,24 @@ var sr = a, K = {
1898
1899
  nodeSpacing: 70,
1899
1900
  layerSpacing: 90
1900
1901
  };
1901
- function cr(e, t) {
1902
+ function gr(e, t) {
1902
1903
  let n = /* @__PURE__ */ new Map(), r = P(t.fontSizes);
1903
1904
  for (let t of e.entities) {
1904
1905
  let e = M(t.label, r.nodeLabel, F.nodeLabel), i = 0;
1905
1906
  for (let e of t.attributes) {
1906
- let t = Ee(`${e.type} ${e.name}${e.keys.length > 0 ? " " + e.keys.join(",") : ""}`, K.attrFontSize);
1907
+ let t = Me(`${e.type} ${e.name}${e.keys.length > 0 ? " " + e.keys.join(",") : ""}`, W.attrFontSize);
1907
1908
  t > i && (i = t);
1908
1909
  }
1909
- let a = Math.max(K.minWidth, e + K.boxPadX * 2, i + K.boxPadX * 2), o = K.headerHeight + Math.max(t.attributes.length, 1) * K.rowHeight;
1910
+ let a = Math.max(W.minWidth, e + W.boxPadX * 2, i + W.boxPadX * 2), o = W.headerHeight + Math.max(t.attributes.length, 1) * W.rowHeight;
1910
1911
  n.set(t.id, {
1911
1912
  width: a,
1912
1913
  height: o
1913
1914
  });
1914
1915
  }
1915
1916
  let i = [];
1916
- for (let [e, t] of n) i.push(B(e, t));
1917
+ for (let [e, t] of n) i.push(Ve(e, t));
1917
1918
  let a = { fontSize: r.edgeLabel }, o = [];
1918
- for (let [t, n] of e.relationships.entries()) o.push(V({
1919
+ for (let [t, n] of e.relationships.entries()) o.push(B({
1919
1920
  id: `e${t}`,
1920
1921
  source: n.entity1,
1921
1922
  target: n.entity2,
@@ -1926,11 +1927,11 @@ function cr(e, t) {
1926
1927
  elkGraph: {
1927
1928
  id: "root",
1928
1929
  layoutOptions: {
1929
- ...Pe({
1930
- direction: Me(e.direction, je.er),
1931
- nodeSpacing: K.nodeSpacing,
1932
- layerSpacing: K.layerSpacing,
1933
- padding: K.padding
1930
+ ...Be({
1931
+ direction: Re(e.direction, Le.er),
1932
+ nodeSpacing: W.nodeSpacing,
1933
+ layerSpacing: W.layerSpacing,
1934
+ padding: W.padding
1934
1935
  }),
1935
1936
  "elk.edgeLabels.placement": "CENTER"
1936
1937
  },
@@ -1940,7 +1941,7 @@ function cr(e, t) {
1940
1941
  entitySizes: n
1941
1942
  };
1942
1943
  }
1943
- function lr(e, t, n) {
1944
+ function _r(e, t, n) {
1944
1945
  let r = /* @__PURE__ */ new Map();
1945
1946
  for (let e of t.entities) r.set(e.id, e);
1946
1947
  let i = [];
@@ -1959,14 +1960,14 @@ function lr(e, t, n) {
1959
1960
  y: t.y ?? 0,
1960
1961
  width: t.width ?? r.width,
1961
1962
  height: t.height ?? r.height,
1962
- headerHeight: K.headerHeight,
1963
- rowHeight: K.rowHeight
1963
+ headerHeight: W.headerHeight,
1964
+ rowHeight: W.rowHeight
1964
1965
  });
1965
1966
  }
1966
1967
  }
1967
1968
  let a = [];
1968
1969
  for (let [n, r] of (e.edges ?? []).entries()) {
1969
- let e = t.relationships[n], i = st(r);
1970
+ let e = t.relationships[n], i = mt(r);
1970
1971
  a.push({
1971
1972
  entity1: e.entity1,
1972
1973
  entity2: e.entity2,
@@ -1984,58 +1985,58 @@ function lr(e, t, n) {
1984
1985
  relationships: a
1985
1986
  };
1986
1987
  }
1987
- function ur(e, t = {}) {
1988
+ function vr(e, t = {}) {
1988
1989
  if (e.entities.length === 0) return {
1989
1990
  width: 0,
1990
1991
  height: 0,
1991
1992
  entities: [],
1992
1993
  relationships: []
1993
1994
  };
1994
- let { elkGraph: n, entitySizes: r } = cr(e, t);
1995
- return lr(Te(n, t.layoutCache), e, r);
1995
+ let { elkGraph: n, entitySizes: r } = gr(e, t);
1996
+ return _r(je(n, t.layoutCache), e, r);
1996
1997
  }
1997
1998
  //#endregion
1998
1999
  //#region packages/svg-renderer/src/er/renderer.ts
1999
- var q = {
2000
+ var G = {
2000
2001
  attrSize: 11,
2001
2002
  attrWeight: 400,
2002
2003
  keySize: 9,
2003
2004
  keyWeight: 600
2004
2005
  };
2005
- function dr(e, t, r = "Inter", i = !1, a = N, o, s, c, l = {}) {
2006
+ function yr(e, t, r = "Inter", i = !1, a = N, o, s, c, l = {}) {
2006
2007
  let u = [];
2007
- u.push(U(E(e.width, e.height, t, i, s, c, void 0, l.styleAttribute), o)), u.push(n(r, !0, l.nonce)), u.push("<defs>"), u.push("</defs>");
2008
- for (let t of e.relationships) u.push(mr(t));
2009
- for (let t of e.entities) u.push(fr(t, a));
2010
- for (let t of e.relationships) u.push(gr(t));
2011
- for (let t of e.relationships) u.push(hr(t, a));
2008
+ u.push(H(E(e.width, e.height, t, i, s, c, void 0, l.styleAttribute), o)), u.push(n(r, !0, l.nonce)), u.push("<defs>"), u.push("</defs>");
2009
+ for (let t of e.relationships) u.push(Sr(t));
2010
+ for (let t of e.entities) u.push(br(t, a));
2011
+ for (let t of e.relationships) u.push(wr(t));
2012
+ for (let t of e.relationships) u.push(Cr(t, a));
2012
2013
  return u.push("</svg>"), u.join("\n");
2013
2014
  }
2014
- function fr(e, t) {
2015
+ function br(e, t) {
2015
2016
  let { id: n, x: r, y: a, width: o, height: c, headerHeight: l, rowHeight: u, label: d, attributes: f } = e, p = [];
2016
2017
  p.push(s`<g class="entity" data-id="${i(n)}" data-label="${i(d)}">`), p.push(s` <rect x="${r}" y="${a}" width="${o}" height="${c}" ` + s`rx="0" ry="0" fill="var(--_node-fill)" stroke="var(--_node-stroke)" stroke-width="${L.outerBox}" />`), p.push(s` <rect x="${r}" y="${a}" width="${o}" height="${l}" ` + s`rx="0" ry="0" fill="var(--_group-hdr)" stroke="var(--_node-stroke)" stroke-width="${L.outerBox}" />`), p.push(" " + _(d, r + o / 2, a + l / 2, t.nodeLabel, s`text-anchor="middle" font-size="${t.nodeLabel}" font-weight="700" fill="var(--_text)"`));
2017
2018
  let m = a + l;
2018
2019
  p.push(s` <line x1="${r}" y1="${m}" x2="${r + o}" y2="${m}" ` + s`stroke="var(--_node-stroke)" stroke-width="${L.innerBox}" />`);
2019
2020
  for (let e = 0; e < f.length; e++) {
2020
2021
  let t = f[e], n = m + e * u + u / 2;
2021
- p.push(" " + pr(t, r, n, o).replace(/\n/g, "\n "));
2022
+ p.push(" " + xr(t, r, n, o).replace(/\n/g, "\n "));
2022
2023
  }
2023
- return f.length === 0 && p.push(s` <text x="${r + o / 2}" y="${m + u / 2}" text-anchor="middle" dy="${R}" ` + s`font-size="${q.attrSize}" fill="var(--_text-faint)" font-style="italic">(no attributes)</text>`), p.push("</g>"), p.join("\n");
2024
+ return f.length === 0 && p.push(s` <text x="${r + o / 2}" y="${m + u / 2}" text-anchor="middle" dy="${R}" ` + s`font-size="${G.attrSize}" fill="var(--_text-faint)" font-style="italic">(no attributes)</text>`), p.push("</g>"), p.join("\n");
2024
2025
  }
2025
- function pr(e, t, n, r) {
2026
+ function xr(e, t, n, r) {
2026
2027
  let i = [], a = e.comment && e.comment.length > 0;
2027
2028
  if (e.comment && e.comment.length > 0) {
2028
2029
  let t = e.comment.replace(/<br\s*\/?>/gi, "\n");
2029
- i.push(s`<g><title>${yr(t)}</title>`);
2030
+ i.push(s`<g><title>${Dr(t)}</title>`);
2030
2031
  }
2031
2032
  let o = 0;
2032
- e.keys.length > 0 && (o = M(e.keys.join(","), q.keySize, q.keyWeight) + 8, i.push(s`<rect x="${t + 6}" y="${n - 7}" width="${o}" height="14" rx="2" ry="2" ` + "fill=\"var(--_key-badge)\" />"), i.push(s`<text x="${t + 6 + o / 2}" y="${n}" text-anchor="middle" dy="${R}" ` + s`font-size="${q.keySize}" font-weight="${q.keyWeight}" fill="var(--_text-sec)">${e.keys.join(",")}</text>`));
2033
+ e.keys.length > 0 && (o = M(e.keys.join(","), G.keySize, G.keyWeight) + 8, i.push(s`<rect x="${t + 6}" y="${n - 7}" width="${o}" height="14" rx="2" ry="2" ` + "fill=\"var(--_key-badge)\" />"), i.push(s`<text x="${t + 6 + o / 2}" y="${n}" text-anchor="middle" dy="${R}" ` + s`font-size="${G.keySize}" font-weight="${G.keyWeight}" fill="var(--_text-sec)">${e.keys.join(",")}</text>`));
2033
2034
  let c = t + 8 + (o > 0 ? o + 6 : 0);
2034
- i.push(s`<text x="${c}" y="${n}" class="mono" dy="${R}" ` + s`font-size="${q.attrSize}" font-weight="${q.attrWeight}">` + s`<tspan fill="var(--_text-muted)">${yr(e.type)}</tspan></text>`);
2035
+ i.push(s`<text x="${c}" y="${n}" class="mono" dy="${R}" ` + s`font-size="${G.attrSize}" font-weight="${G.attrWeight}">` + s`<tspan fill="var(--_text-muted)">${Dr(e.type)}</tspan></text>`);
2035
2036
  let l = t + r - 8;
2036
- return i.push(s`<text x="${l}" y="${n}" class="mono" text-anchor="end" dy="${R}" ` + s`font-size="${q.attrSize}" font-weight="${q.attrWeight}">` + s`<tspan fill="var(--_text-sec)">${yr(e.name)}</tspan></text>`), a && i.push("</g>"), i.join("\n");
2037
+ return i.push(s`<text x="${l}" y="${n}" class="mono" text-anchor="end" dy="${R}" ` + s`font-size="${G.attrSize}" font-weight="${G.attrWeight}">` + s`<tspan fill="var(--_text-sec)">${Dr(e.name)}</tspan></text>`), a && i.push("</g>"), i.join("\n");
2037
2038
  }
2038
- function mr(e) {
2039
+ function Sr(e) {
2039
2040
  if (e.points.length < 2) return "";
2040
2041
  let t = e.points.map((e) => s`${e.x},${e.y}`).join(" "), n = e.identifying ? "" : " stroke-dasharray=\"6 4\"", r = e.label ? s` data-label="${i(e.label)}"` : "", a = [
2041
2042
  "class=\"er-relationship\"",
@@ -2047,19 +2048,19 @@ function mr(e) {
2047
2048
  ];
2048
2049
  return s`<polyline ${a.join(" ")}${r} points="${t}" fill="none" stroke="var(--_line)" ` + s`stroke-width="${L.connector}"${n} />`;
2049
2050
  }
2050
- function hr(e, t) {
2051
+ function Cr(e, t) {
2051
2052
  if (!e.label || e.points.length < 2) return "";
2052
- let n = vr(e.points), r = d(e.label, t.edgeLabel, F.edgeLabel), i = r.width + 8, a = r.height + 6;
2053
+ let n = Er(e.points), r = d(e.label, t.edgeLabel, F.edgeLabel), i = r.width + 8, a = r.height + 6;
2053
2054
  return s`<rect x="${n.x - i / 2}" y="${n.y - a / 2}" width="${i}" height="${a}" rx="2" ry="2" ` + "fill=\"var(--bg)\" stroke=\"var(--_inner-stroke)\" stroke-width=\"0.5\" />" + s`\n${_(e.label, n.x, n.y, t.edgeLabel, s`text-anchor="middle" font-size="${t.edgeLabel}" font-weight="${F.edgeLabel}" fill="var(--_text-muted)"`)}`;
2054
2055
  }
2055
- function gr(e) {
2056
+ function wr(e) {
2056
2057
  if (e.points.length < 2) return "";
2057
2058
  let t = [], n = e.points[0], r = e.points[1];
2058
- t.push(_r(n, r, e.cardinality1));
2059
+ t.push(Tr(n, r, e.cardinality1));
2059
2060
  let i = e.points[e.points.length - 1], a = e.points[e.points.length - 2];
2060
- return t.push(_r(i, a, e.cardinality2)), t.join("\n");
2061
+ return t.push(Tr(i, a, e.cardinality2)), t.join("\n");
2061
2062
  }
2062
- function _r(e, t, n) {
2063
+ function Tr(e, t, n) {
2063
2064
  let r = [], i = L.connector + .25, a = e.x - t.x, o = e.y - t.y, c = Math.sqrt(a * a + o * o);
2064
2065
  if (c === 0) return "";
2065
2066
  let l = a / c, u = o / c, d = -u, f = l, p = e.x - l * 4, m = e.y - u * 4, h = e.x - l * 16, g = e.y - u * 16, _ = n === "one" || n === "zero-one", v = n === "many" || n === "zero-many", y = n === "zero-one" || n === "zero-many";
@@ -2072,13 +2073,17 @@ function _r(e, t, n) {
2072
2073
  let e = p, t = m;
2073
2074
  r.push(s`<line x1="${e + d * 7}" y1="${t + f * 7}" ` + s`x2="${h}" y2="${g}" ` + s`stroke="var(--_line)" stroke-width="${i}" />`), r.push(s`<line x1="${e}" y1="${t}" ` + s`x2="${h}" y2="${g}" ` + s`stroke="var(--_line)" stroke-width="${i}" />`), r.push(s`<line x1="${e - d * 7}" y1="${t - f * 7}" ` + s`x2="${h}" y2="${g}" ` + s`stroke="var(--_line)" stroke-width="${i}" />`);
2074
2075
  }
2076
+ if (n === "many") {
2077
+ let t = e.x - l * 20, n = e.y - u * 20;
2078
+ r.push(s`<line x1="${t + d * 6}" y1="${n + f * 6}" ` + s`x2="${t - d * 6}" y2="${n - f * 6}" ` + s`stroke="var(--_line)" stroke-width="${i}" />`);
2079
+ }
2075
2080
  if (y) {
2076
2081
  let t = v ? 20 : 12, n = e.x - l * t, a = e.y - u * t;
2077
2082
  r.push(s`<circle cx="${n}" cy="${a}" r="4" ` + s`fill="var(--bg)" stroke="var(--_line)" stroke-width="${i}" />`);
2078
2083
  }
2079
2084
  return r.join("\n");
2080
2085
  }
2081
- function vr(e) {
2086
+ function Er(e) {
2082
2087
  if (e.length === 0) return {
2083
2088
  x: 0,
2084
2089
  y: 0
@@ -2104,7 +2109,7 @@ function vr(e) {
2104
2109
  }
2105
2110
  return e[e.length - 1];
2106
2111
  }
2107
- var yr = a, J = {
2112
+ var Dr = a, Or = {
2108
2113
  padding: 30,
2109
2114
  actorGap: 140,
2110
2115
  actorHeight: 40,
@@ -2126,20 +2131,20 @@ var yr = a, J = {
2126
2131
  noteStackGap: 4,
2127
2132
  boxPad: 10
2128
2133
  };
2129
- function br(e) {
2134
+ function kr(e) {
2130
2135
  return e + 8;
2131
2136
  }
2132
- function xr(e) {
2137
+ function Ar(e) {
2133
2138
  return {
2134
- ...J,
2135
- actorHeight: e?.actorHeight ?? J.actorHeight,
2136
- headerGap: e?.headerGap ?? J.headerGap,
2137
- messageRowHeight: e?.messageRowHeight ?? J.messageRowHeight,
2138
- noteOffsetAfterMessage: e?.noteOffsetAfterMessage ?? J.noteOffsetAfterMessage,
2139
- noteStackGap: e?.noteStackGap ?? J.noteStackGap
2139
+ ...Or,
2140
+ actorHeight: e?.actorHeight ?? Or.actorHeight,
2141
+ headerGap: e?.headerGap ?? Or.headerGap,
2142
+ messageRowHeight: e?.messageRowHeight ?? Or.messageRowHeight,
2143
+ noteOffsetAfterMessage: e?.noteOffsetAfterMessage ?? Or.noteOffsetAfterMessage,
2144
+ noteStackGap: e?.noteStackGap ?? Or.noteStackGap
2140
2145
  };
2141
2146
  }
2142
- function Sr(e, t = {}) {
2147
+ function jr(e, t = {}) {
2143
2148
  if (e.actors.length === 0) return {
2144
2149
  width: 0,
2145
2150
  height: 0,
@@ -2151,7 +2156,7 @@ function Sr(e, t = {}) {
2151
2156
  notes: [],
2152
2157
  boxes: []
2153
2158
  };
2154
- let n = xr(t.sequence), r = P(t.fontSizes), i = e.actors.map((e) => {
2159
+ let n = Ar(t.sequence), r = P(t.fontSizes), i = e.actors.map((e) => {
2155
2160
  let t = M(e.label, r.nodeLabel, F.nodeLabel);
2156
2161
  return Math.max(t + n.actorPadX * 2, 80);
2157
2162
  }), a = [], o = n.padding + i[0] / 2;
@@ -2164,7 +2169,7 @@ function Sr(e, t = {}) {
2164
2169
  }
2165
2170
  let s = /* @__PURE__ */ new Map();
2166
2171
  for (let t = 0; t < e.actors.length; t++) s.set(e.actors[t].id, t);
2167
- let c = e.boxes.filter((e) => e.actorIds.length > 0), l = c.some((e) => e.label !== ""), u = c.length === 0 ? 0 : n.boxPad + (l ? br(r.edgeLabel) : 0), d = n.padding + u, f = e.actors.map((e, t) => ({
2172
+ let c = e.boxes.filter((e) => e.actorIds.length > 0), l = c.some((e) => e.label !== ""), u = c.length === 0 ? 0 : n.boxPad + (l ? kr(r.edgeLabel) : 0), d = n.padding + u, f = e.actors.map((e, t) => ({
2168
2173
  id: e.id,
2169
2174
  label: e.label,
2170
2175
  type: e.type,
@@ -2379,23 +2384,23 @@ function Sr(e, t = {}) {
2379
2384
  }
2380
2385
  //#endregion
2381
2386
  //#region packages/svg-renderer/src/sequence/renderer.ts
2382
- function Cr(e, t, r = "Inter", i = !1, a = N, o, s, c, l = {}) {
2387
+ function Mr(e, t, r = "Inter", i = !1, a = N, o, s, c, l = {}) {
2383
2388
  let u = [];
2384
- u.push(U(E(e.width, e.height, t, i, s, c, void 0, l.styleAttribute), o)), u.push(n(r, !1, l.nonce)), u.push("<defs>"), u.push(wr()), u.push("</defs>");
2385
- for (let t of e.boxes) u.push(Mr(t, a));
2386
- for (let t of e.blocks) u.push(Nr(t, a));
2387
- for (let t of e.lifelines) u.push(Er(t));
2388
- for (let t of e.activations) u.push(Or(t));
2389
- for (let t of e.messages) u.push(kr(t, a));
2390
- for (let t of e.notes) u.push(Pr(t, a));
2391
- for (let t of e.actors) u.push(Tr(t, a));
2389
+ u.push(H(E(e.width, e.height, t, i, s, c, void 0, l.styleAttribute), o)), u.push(n(r, !1, l.nonce)), u.push("<defs>"), u.push(Nr()), u.push("</defs>");
2390
+ for (let t of e.boxes) u.push(Vr(t, a));
2391
+ for (let t of e.blocks) u.push(Hr(t, a));
2392
+ for (let t of e.lifelines) u.push(Fr(t));
2393
+ for (let t of e.activations) u.push(Lr(t));
2394
+ for (let t of e.messages) u.push(Rr(t, a));
2395
+ for (let t of e.notes) u.push(Ur(t, a));
2396
+ for (let t of e.actors) u.push(Pr(t, a));
2392
2397
  return u.push("</svg>"), u.join("\n");
2393
2398
  }
2394
- function wr() {
2399
+ function Nr() {
2395
2400
  let e = z.width, t = z.height;
2396
2401
  return s` <marker id="seq-arrow" markerWidth="${e}" markerHeight="${t}" refX="${e}" refY="${t / 2}" orient="auto-start-reverse">` + s`\n <polygon points="0 0, ${e} ${t / 2}, 0 ${t}" fill="var(--_arrow)" />` + "\n </marker>" + s`\n <marker id="seq-arrow-open" markerWidth="${e}" markerHeight="${t}" refX="${e}" refY="${t / 2}" orient="auto-start-reverse">` + s`\n <polyline points="0 0, ${e} ${t / 2}, 0 ${t}" fill="none" stroke="var(--_arrow)" stroke-width="1" />` + "\n </marker>";
2397
2402
  }
2398
- function Tr(e, t) {
2403
+ function Pr(e, t) {
2399
2404
  let { id: n, x: r, y: a, width: o, height: c, label: l, type: u } = e, d = [];
2400
2405
  if (d.push(s`<g class="actor" data-id="${i(n)}" data-label="${i(l)}" data-type="${u}">`), u === "actor") {
2401
2406
  let e = c / 24 * .9, n = r - 12 * e, i = a + (c - 24 * e) / 2, o = L.outerBox / e, u = "var(--_line)";
@@ -2406,17 +2411,17 @@ function Tr(e, t) {
2406
2411
  }
2407
2412
  return d.push("</g>"), d.join("\n");
2408
2413
  }
2409
- function Er(e) {
2414
+ function Fr(e) {
2410
2415
  let t = s`<line class="lifeline" data-actor="${i(e.actorId)}" ` + s`x1="${e.x}" y1="${e.topY}" x2="${e.x}" y2="${e.bottomY}" ` + "stroke=\"var(--_line)\" stroke-width=\"0.75\" stroke-dasharray=\"6 4\" />";
2411
2416
  if (!e.destroyed) return t;
2412
- let { x: n, bottomY: r } = e, a = Dr;
2417
+ let { x: n, bottomY: r } = e, a = Ir;
2413
2418
  return t + s`\n<path class="destroy" data-actor="${i(e.actorId)}" ` + s`d="M${n - a} ${r - a} L${n + a} ${r + a} M${n + a} ${r - a} L${n - a} ${r + a}" ` + s`fill="none" stroke="var(--_line)" stroke-width="${L.outerBox}" stroke-linecap="round" />`;
2414
2419
  }
2415
- var Dr = 8;
2416
- function Or(e) {
2420
+ var Ir = 8;
2421
+ function Lr(e) {
2417
2422
  return s`<rect class="activation" data-actor="${i(e.actorId)}" ` + s`x="${e.x}" y="${e.topY}" width="${e.width}" height="${e.bottomY - e.topY}" ` + s`fill="var(--_node-fill)" stroke="var(--_node-stroke)" stroke-width="${L.innerBox}" />`;
2418
2423
  }
2419
- function kr(e, t) {
2424
+ function Rr(e, t) {
2420
2425
  let n = [], r = e.lineStyle === "dashed" ? " stroke-dasharray=\"6 4\"" : "", a = e.arrowHead === "filled" ? "seq-arrow" : "seq-arrow-open", o = e.bidirectional ? s` marker-start="url(#${a})"` : "";
2421
2426
  if (n.push(s`<g class="message" data-from="${i(e.from)}" data-to="${i(e.to)}" ` + s`data-label="${i(e.label)}" data-line-style="${e.lineStyle}" ` + s`data-arrow-head="${e.arrowHead}" data-self="${e.isSelf}" data-bidirectional="${e.bidirectional}">`), e.isSelf) n.push(s` <polyline points="${e.x1},${e.y} ${e.x1 + 30},${e.y} ${e.x1 + 30},${e.y + 20} ${e.x2},${e.y + 20}" ` + s`fill="none" stroke="var(--_line)" stroke-width="${L.connector}"${r} marker-end="url(#${a})"${o} />`), n.push(" " + _(e.label, e.x1 + 30 + 8, e.y + 10, t.edgeLabel, s`font-size="${t.edgeLabel}" text-anchor="start" font-weight="${F.edgeLabel}" fill="var(--_text-muted)"`));
2422
2427
  else {
@@ -2424,18 +2429,18 @@ function kr(e, t) {
2424
2429
  let i = (e.x1 + e.x2) / 2;
2425
2430
  n.push(" " + _(e.label, i, e.y - 10, t.edgeLabel, s`font-size="${t.edgeLabel}" text-anchor="middle" font-weight="${F.edgeLabel}" fill="var(--_text-muted)"`));
2426
2431
  }
2427
- return e.seqNumber !== void 0 && n.push(" " + Ar(e, t)), n.push("</g>"), n.join("\n");
2432
+ return e.seqNumber !== void 0 && n.push(" " + zr(e, t)), n.push("</g>"), n.join("\n");
2428
2433
  }
2429
- function Ar(e, t) {
2434
+ function zr(e, t) {
2430
2435
  let n = Math.max(t.edgeLabel - 2, 8), r = e.bidirectional ? e.x1 + Math.sign(e.x2 - e.x1) * (8 + z.width) : e.x1;
2431
2436
  return "<g class=\"seq-number\">" + s`<circle cx="${r}" cy="${e.y}" r="${8}" fill="var(--bg)" stroke="var(--_arrow)" stroke-width="${L.innerBox}" />` + _(String(e.seqNumber), r, e.y, n, s`font-size="${n}" text-anchor="middle" font-weight="${F.edgeLabel}" fill="var(--_arrow)"`) + "</g>";
2432
2437
  }
2433
- var jr = 35;
2434
- function Mr(e, t) {
2435
- let n = e.label ? s` data-label="${i(e.label)}"` : "", r = e.color === void 0 ? "" : s` data-color="${i(e.color)}"`, a = e.color === void 0 ? "none" : s`color-mix(in srgb, ${i(e.color)} ${jr}%, var(--bg))`, o = [s`<g class="participant-box"${n}${r}>`, s` <rect x="${e.x}" y="${e.y}" width="${e.width}" height="${e.height}" rx="4" ry="4" ` + s`fill="${a}" stroke="var(--_node-stroke)" stroke-width="${L.innerBox}" />`];
2436
- return e.label && o.push(" " + _(e.label, e.x + e.width / 2, e.y + br(t.edgeLabel) / 2, t.edgeLabel, s`font-size="${t.edgeLabel}" text-anchor="middle" font-weight="${F.groupHeader}" fill="var(--_text-sec)"`)), o.push("</g>"), o.join("\n");
2438
+ var Br = 35;
2439
+ function Vr(e, t) {
2440
+ let n = e.label ? s` data-label="${i(e.label)}"` : "", r = e.color === void 0 ? "" : s` data-color="${i(e.color)}"`, a = e.color === void 0 ? "none" : s`color-mix(in srgb, ${i(e.color)} ${Br}%, var(--bg))`, o = [s`<g class="participant-box"${n}${r}>`, s` <rect x="${e.x}" y="${e.y}" width="${e.width}" height="${e.height}" rx="4" ry="4" ` + s`fill="${a}" stroke="var(--_node-stroke)" stroke-width="${L.innerBox}" />`];
2441
+ return e.label && o.push(" " + _(e.label, e.x + e.width / 2, e.y + kr(t.edgeLabel) / 2, t.edgeLabel, s`font-size="${t.edgeLabel}" text-anchor="middle" font-weight="${F.groupHeader}" fill="var(--_text-sec)"`)), o.push("</g>"), o.join("\n");
2437
2442
  }
2438
- function Nr(e, t) {
2443
+ function Hr(e, t) {
2439
2444
  let n = [], r = e.label ? s` data-label="${i(e.label)}"` : "";
2440
2445
  n.push(s`<g class="block" data-type="${i(e.type)}"${r}>`), n.push(s` <rect x="${e.x}" y="${e.y}" width="${e.width}" height="${e.height}" ` + s`rx="0" ry="0" fill="none" stroke="var(--_node-stroke)" stroke-width="${L.outerBox}" />`);
2441
2446
  let a = s`${e.type}${e.label ? s` [${e.label}]` : ""}`, o = a.split("\n")[0], c = M(o, t.edgeLabel, F.groupHeader) + 16;
@@ -2443,7 +2448,7 @@ function Nr(e, t) {
2443
2448
  for (let r of e.dividers) n.push(s` <line x1="${e.x}" y1="${r.y}" x2="${e.x + e.width}" y2="${r.y}" ` + "stroke=\"var(--_line)\" stroke-width=\"0.75\" stroke-dasharray=\"6 4\" />"), r.label && n.push(" " + _(s`[${r.label}]`, e.x + 8, r.y + 14, t.edgeLabel, s`font-size="${t.edgeLabel}" text-anchor="start" font-weight="${F.edgeLabel}" fill="var(--_text-muted)"`));
2444
2449
  return n.push("</g>"), n.join("\n");
2445
2450
  }
2446
- function Pr(e, t) {
2451
+ function Ur(e, t) {
2447
2452
  let { x: n, y: r, width: a, height: o } = e, c = e.actors && e.actors.length > 0 ? s` data-actors="${e.actors.map(i).join(",")}"` : "", l = e.position ? s` data-position="${i(e.position)}"` : "", u = [
2448
2453
  s`${n},${r}`,
2449
2454
  s`${n + a - 6},${r}`,
@@ -2455,7 +2460,7 @@ function Pr(e, t) {
2455
2460
  }
2456
2461
  //#endregion
2457
2462
  //#region packages/svg-renderer/src/xychart/layout.ts
2458
- var Y = {
2463
+ var K = {
2459
2464
  plotWidth: 600,
2460
2465
  plotHeight: 340,
2461
2466
  padding: 22,
@@ -2482,241 +2487,241 @@ var Y = {
2482
2487
  legendGap: 6,
2483
2488
  legendItemGap: 16
2484
2489
  };
2485
- function Fr(e, t = {}) {
2486
- return e.horizontal ? Lr(e) : Ir(e);
2490
+ function Wr(e, t = {}) {
2491
+ return e.horizontal ? Kr(e) : Gr(e);
2487
2492
  }
2488
- function Ir(e) {
2493
+ function Gr(e) {
2489
2494
  let t = !!e.title, n = !!e.xAxis.title, r = !!e.yAxis.title, i = e.series.length > 1, a = e.yAxis.range;
2490
2495
  if (!a)
2491
2496
  /* v8 ignore next */
2492
2497
  throw Error("XY chart: y-axis range was not set by the parser");
2493
- let o = Ur(a.min, a.max), s = Math.max(...o.map((e) => M(Wr(e), Y.axisLabelFontSize, Y.axisLabelFontWeight)), Y.yLabelWidth), c = Y.padding + (t ? Y.titleHeight : 0) + (i ? Y.legendHeight : 0), l = Y.padding + Y.xLabelHeight + (n ? Y.axisTitlePad : 0), u = Y.padding + s + Y.yLabelGap + (r ? Y.axisTitlePad : 0), d = Y.padding, f = Y.plotWidth, p = Y.plotHeight, m = u + f + d, h = c + p + l, g = {
2494
- x: u,
2495
- y: c,
2496
- width: f,
2497
- height: p
2498
- }, _ = Rr(e), v = (e) => u + (e + .5) * (f / _), y = f / _, b = (e) => {
2498
+ let o = Qr(a.min, a.max), s = $r(o), c = Math.max(...s.map((e) => M(e, K.axisLabelFontSize, K.axisLabelFontWeight)), K.yLabelWidth), l = K.padding + (t ? K.titleHeight : 0) + (i ? K.legendHeight : 0), u = K.padding + K.xLabelHeight + (n ? K.axisTitlePad : 0), d = K.padding + c + K.yLabelGap + (r ? K.axisTitlePad : 0), f = K.padding, p = K.plotWidth, m = K.plotHeight, h = d + p + f, g = l + m + u, _ = {
2499
+ x: d,
2500
+ y: l,
2501
+ width: p,
2502
+ height: m
2503
+ }, v = qr(e), y = (e) => d + (e + .5) * (p / v), b = p / v, x = (e) => {
2499
2504
  let t = (e - a.min) / (a.max - a.min || 1);
2500
- return c + p - t * p;
2501
- }, x = Br(e, v, c + p, y), S = o.map((e) => ({
2502
- label: Wr(e),
2503
- x: u,
2504
- y: b(e),
2505
- tx: u - Y.tickLength,
2506
- ty: b(e),
2507
- labelX: u - Y.yLabelGap,
2508
- labelY: b(e),
2505
+ return l + m - t * m;
2506
+ }, S = Yr(e, y, l + m, b), C = o.map((e, t) => ({
2507
+ label: s[t],
2508
+ x: d,
2509
+ y: x(e),
2510
+ tx: d - K.tickLength,
2511
+ ty: x(e),
2512
+ labelX: d - K.yLabelGap,
2513
+ labelY: x(e),
2509
2514
  textAnchor: "end"
2510
- })), C = o.map((e) => ({
2511
- x1: u,
2512
- y1: b(e),
2513
- x2: u + f,
2514
- y2: b(e)
2515
- })), w = zr(e, _), T = e.series.map((e, t) => t), E = Vr(e, v, b, y, a.min, w, T), D = Hr(e, v, b, w, T), O = Y.padding + (t ? Y.titleHeight : 0) + Y.legendHeight / 2, k = i ? Gr(e, m / 2, O, T) : [], A = {
2516
- x1: u,
2517
- y1: c + p,
2518
- x2: u + f,
2519
- y2: c + p
2520
- }, j = {
2521
- x1: u,
2522
- y1: c,
2523
- x2: u,
2524
- y2: c + p
2515
+ })), w = o.map((e) => ({
2516
+ x1: d,
2517
+ y1: x(e),
2518
+ x2: d + p,
2519
+ y2: x(e)
2520
+ })), T = Jr(e, v), E = e.series.map((e, t) => t), D = Xr(e, y, x, b, a.min, T, E), O = Zr(e, y, x, T, E), k = K.padding + (t ? K.titleHeight : 0) + K.legendHeight / 2, A = i ? ti(e, h / 2, k, E) : [], j = {
2521
+ x1: d,
2522
+ y1: l + m,
2523
+ x2: d + p,
2524
+ y2: l + m
2525
2525
  }, ee = {
2526
- ticks: x,
2527
- line: A,
2528
- ...e.xAxis.title ? { title: {
2529
- text: e.xAxis.title,
2530
- x: u + f / 2,
2531
- y: h - Y.padding
2532
- } } : {}
2526
+ x1: d,
2527
+ y1: l,
2528
+ x2: d,
2529
+ y2: l + m
2533
2530
  }, te = {
2534
2531
  ticks: S,
2535
2532
  line: j,
2533
+ ...e.xAxis.title ? { title: {
2534
+ text: e.xAxis.title,
2535
+ x: d + p / 2,
2536
+ y: g - K.padding
2537
+ } } : {}
2538
+ }, ne = {
2539
+ ticks: C,
2540
+ line: ee,
2536
2541
  ...e.yAxis.title ? { title: {
2537
2542
  text: e.yAxis.title,
2538
- x: Y.padding + 4,
2539
- y: c + p / 2,
2543
+ x: K.padding + 4,
2544
+ y: l + m / 2,
2540
2545
  rotate: -90
2541
2546
  } } : {}
2542
2547
  };
2543
2548
  return {
2544
- width: m,
2545
- height: h,
2549
+ width: h,
2550
+ height: g,
2546
2551
  title: e.title ? {
2547
2552
  text: e.title,
2548
- x: m / 2,
2549
- y: Y.padding + Y.titleFontSize
2553
+ x: h / 2,
2554
+ y: K.padding + K.titleFontSize
2550
2555
  } : void 0,
2551
- xAxis: ee,
2552
- yAxis: te,
2553
- plotArea: g,
2554
- bars: E,
2555
- lines: D,
2556
- gridLines: C,
2557
- legend: k
2556
+ xAxis: te,
2557
+ yAxis: ne,
2558
+ plotArea: _,
2559
+ bars: D,
2560
+ lines: O,
2561
+ gridLines: w,
2562
+ legend: A
2558
2563
  };
2559
2564
  }
2560
- function Lr(e) {
2565
+ function Kr(e) {
2561
2566
  let t = !!e.title, n = !!e.xAxis.title, r = !!e.yAxis.title, i = e.series.length > 1, a = e.yAxis.range;
2562
2567
  if (!a)
2563
2568
  /* v8 ignore next */
2564
2569
  throw Error("XY chart: y-axis range was not set by the parser");
2565
- let o = Ur(a.min, a.max), s = Rr(e), c = zr(e, s), l = Math.max(...c.map((e) => M(e, Y.axisLabelFontSize, Y.axisLabelFontWeight)), 40), u = Y.padding + (t ? Y.titleHeight : 0) + (i ? Y.legendHeight : 0), d = Y.padding + Y.xLabelHeight + (r ? Y.axisTitlePad : 0), f = Y.padding + l + Y.yLabelGap + (n ? Y.axisTitlePad : 0), p = Y.padding, m = Y.plotWidth, h = Y.plotHeight, g = f + m + p, _ = u + h + d, v = {
2566
- x: f,
2567
- y: u,
2568
- width: m,
2569
- height: h
2570
- }, y = (e) => {
2570
+ let o = Qr(a.min, a.max), s = $r(o), c = qr(e), l = Jr(e, c), u = Math.max(...l.map((e) => M(e, K.axisLabelFontSize, K.axisLabelFontWeight)), 40), d = K.padding + (t ? K.titleHeight : 0) + (i ? K.legendHeight : 0), f = K.padding + K.xLabelHeight + (r ? K.axisTitlePad : 0), p = K.padding + u + K.yLabelGap + (n ? K.axisTitlePad : 0), m = K.padding, h = K.plotWidth, g = K.plotHeight, _ = p + h + m, v = d + g + f, y = {
2571
+ x: p,
2572
+ y: d,
2573
+ width: h,
2574
+ height: g
2575
+ }, b = (e) => {
2571
2576
  let t = (e - a.min) / (a.max - a.min || 1);
2572
- return f + t * m;
2573
- }, b = h / s, x = (e) => u + (e + .5) * b, S = o.map((e) => ({
2574
- label: Wr(e),
2575
- x: y(e),
2576
- y: u + h,
2577
- tx: y(e),
2578
- ty: u + h + Y.tickLength,
2579
- labelX: y(e),
2580
- labelY: u + h + 18,
2577
+ return p + t * h;
2578
+ }, x = g / c, S = (e) => d + (e + .5) * x, C = o.map((e, t) => ({
2579
+ label: s[t],
2580
+ x: b(e),
2581
+ y: d + g,
2582
+ tx: b(e),
2583
+ ty: d + g + K.tickLength,
2584
+ labelX: b(e),
2585
+ labelY: d + g + 18,
2581
2586
  textAnchor: "middle"
2582
- })), C = c.map((e, t) => ({
2587
+ })), w = l.map((e, t) => ({
2583
2588
  label: e,
2584
- x: f,
2585
- y: x(t),
2586
- tx: f - Y.tickLength,
2587
- ty: x(t),
2588
- labelX: f - Y.yLabelGap,
2589
- labelY: x(t),
2589
+ x: p,
2590
+ y: S(t),
2591
+ tx: p - K.tickLength,
2592
+ ty: S(t),
2593
+ labelX: p - K.yLabelGap,
2594
+ labelY: S(t),
2590
2595
  textAnchor: "end"
2591
- })), w = o.map((e) => ({
2592
- x1: y(e),
2593
- y1: u,
2594
- x2: y(e),
2595
- y2: u + h
2596
- })), T = e.series.map((e, t) => t), E = e.series.filter((e) => e.type === "bar").length, D = [];
2597
- if (E > 0) {
2598
- let t = b * (1 - Y.barPadRatio), n = E > 1 ? (t - (E - 1) * Y.barGroupGap) / E : t, r = Math.min(n, Y.maxBarWidth), i = E > 1 ? r * E + Y.barGroupGap * (E - 1) : r, o = 0, s = 0;
2596
+ })), T = o.map((e) => ({
2597
+ x1: b(e),
2598
+ y1: d,
2599
+ x2: b(e),
2600
+ y2: d + g
2601
+ })), E = e.series.map((e, t) => t), D = e.series.filter((e) => e.type === "bar").length, O = [];
2602
+ if (D > 0) {
2603
+ let t = x * (1 - K.barPadRatio), n = D > 1 ? (t - (D - 1) * K.barGroupGap) / D : t, r = Math.min(n, K.maxBarWidth), i = D > 1 ? r * D + K.barGroupGap * (D - 1) : r, o = 0, s = 0;
2599
2604
  for (let t of e.series) {
2600
2605
  if (t.type !== "bar") {
2601
2606
  s++;
2602
2607
  continue;
2603
2608
  }
2604
2609
  for (let e = 0; e < t.data.length; e++) {
2605
- let n = x(e) - i / 2 + o * (r + Y.barGroupGap), l = y(Math.max(t.data[e], a.min)), u = y(Math.max(0, a.min));
2606
- D.push({
2607
- x: Math.min(u, l),
2610
+ let n = S(e) - i / 2 + o * (r + K.barGroupGap), c = b(Math.max(t.data[e], a.min)), u = b(Math.max(0, a.min));
2611
+ O.push({
2612
+ x: Math.min(u, c),
2608
2613
  y: n,
2609
- width: Math.abs(l - u),
2614
+ width: Math.abs(c - u),
2610
2615
  height: r,
2611
2616
  value: t.data[e],
2612
- label: c[e],
2617
+ label: l[e],
2613
2618
  seriesIndex: o,
2614
- colorIndex: T[s]
2619
+ colorIndex: E[s]
2615
2620
  });
2616
2621
  }
2617
2622
  o++, s++;
2618
2623
  }
2619
2624
  }
2620
- let O = [], k = 0, A = 0;
2625
+ let k = [], A = 0, j = 0;
2621
2626
  for (let t of e.series) {
2622
2627
  if (t.type !== "line") {
2623
- A++;
2628
+ j++;
2624
2629
  continue;
2625
2630
  }
2626
2631
  let e = t.data.map((e, t) => ({
2627
- x: y(e),
2628
- y: x(t),
2632
+ x: b(e),
2633
+ y: S(t),
2629
2634
  value: e,
2630
- label: c[t]
2635
+ label: l[t]
2631
2636
  }));
2632
- O.push({
2637
+ k.push({
2633
2638
  points: e,
2634
- seriesIndex: k,
2635
- colorIndex: T[A]
2636
- }), k++, A++;
2637
- }
2638
- let j = {
2639
- x1: f,
2640
- y1: u + h,
2641
- x2: f + m,
2642
- y2: u + h
2643
- }, ee = {
2644
- x1: f,
2645
- y1: u,
2646
- x2: f,
2647
- y2: u + h
2639
+ seriesIndex: A,
2640
+ colorIndex: E[j]
2641
+ }), A++, j++;
2642
+ }
2643
+ let ee = {
2644
+ x1: p,
2645
+ y1: d + g,
2646
+ x2: p + h,
2647
+ y2: d + g
2648
2648
  }, te = {
2649
- ticks: S,
2650
- line: j,
2651
- ...e.yAxis.title ? { title: {
2652
- text: e.yAxis.title,
2653
- x: f + m / 2,
2654
- y: _ - Y.padding
2655
- } } : {}
2649
+ x1: p,
2650
+ y1: d,
2651
+ x2: p,
2652
+ y2: d + g
2656
2653
  }, ne = {
2657
2654
  ticks: C,
2658
2655
  line: ee,
2656
+ ...e.yAxis.title ? { title: {
2657
+ text: e.yAxis.title,
2658
+ x: p + h / 2,
2659
+ y: v - K.padding
2660
+ } } : {}
2661
+ }, re = {
2662
+ ticks: w,
2663
+ line: te,
2659
2664
  ...e.xAxis.title ? { title: {
2660
2665
  text: e.xAxis.title,
2661
- x: Y.padding + 4,
2662
- y: u + h / 2,
2666
+ x: K.padding + 4,
2667
+ y: d + g / 2,
2663
2668
  rotate: -90
2664
2669
  } } : {}
2665
- }, re = e.title ? {
2670
+ }, ie = e.title ? {
2666
2671
  text: e.title,
2667
- x: g / 2,
2668
- y: Y.padding + Y.titleFontSize
2669
- } : void 0, ie = Y.padding + (t ? Y.titleHeight : 0) + Y.legendHeight / 2;
2672
+ x: _ / 2,
2673
+ y: K.padding + K.titleFontSize
2674
+ } : void 0, ae = K.padding + (t ? K.titleHeight : 0) + K.legendHeight / 2;
2670
2675
  return {
2671
- width: g,
2672
- height: _,
2676
+ width: _,
2677
+ height: v,
2673
2678
  horizontal: !0,
2674
- title: re,
2675
- xAxis: te,
2676
- yAxis: ne,
2677
- plotArea: v,
2678
- bars: D,
2679
- lines: O,
2680
- gridLines: w,
2681
- legend: i ? Gr(e, g / 2, ie, T) : []
2679
+ title: ie,
2680
+ xAxis: ne,
2681
+ yAxis: re,
2682
+ plotArea: y,
2683
+ bars: O,
2684
+ lines: k,
2685
+ gridLines: T,
2686
+ legend: i ? ti(e, _ / 2, ae, E) : []
2682
2687
  };
2683
2688
  }
2684
- function Rr(e) {
2689
+ function qr(e) {
2685
2690
  if (e.xAxis.categories) return e.xAxis.categories.length;
2686
2691
  for (let t of e.series) if (t.data.length > 0) return t.data.length;
2687
2692
  return 1;
2688
2693
  }
2689
- function zr(e, t) {
2694
+ function Jr(e, t) {
2690
2695
  if (e.xAxis.categories) return e.xAxis.categories;
2691
2696
  if (e.xAxis.range) {
2692
2697
  let { min: n, max: r } = e.xAxis.range, i = t > 1 ? (r - n) / (t - 1) : 0;
2693
- return Array.from({ length: t }, (e, t) => Wr(n + i * t));
2698
+ return Array.from({ length: t }, (e, t) => ei(n + i * t));
2694
2699
  }
2695
2700
  return Array.from({ length: t }, (e, t) => String(t + 1));
2696
2701
  }
2697
- function Br(e, t, n, r) {
2698
- return zr(e, Rr(e)).map((e, r) => ({
2702
+ function Yr(e, t, n, r) {
2703
+ return Jr(e, qr(e)).map((e, r) => ({
2699
2704
  label: e,
2700
2705
  x: t(r),
2701
2706
  y: n,
2702
2707
  tx: t(r),
2703
- ty: n + Y.tickLength,
2708
+ ty: n + K.tickLength,
2704
2709
  labelX: t(r),
2705
2710
  labelY: n + 18,
2706
2711
  textAnchor: "middle"
2707
2712
  }));
2708
2713
  }
2709
- function Vr(e, t, n, r, i, a, o) {
2714
+ function Xr(e, t, n, r, i, a, o) {
2710
2715
  let s = e.series.filter((e) => e.type === "bar").length;
2711
2716
  if (s === 0) return [];
2712
- let c = r * (1 - Y.barPadRatio), l = s > 1 ? (c - (s - 1) * Y.barGroupGap) / s : c, u = Math.min(l, Y.maxBarWidth), d = s > 1 ? u * s + Y.barGroupGap * (s - 1) : u, f = [], p = 0, m = 0;
2717
+ let c = r * (1 - K.barPadRatio), l = s > 1 ? (c - (s - 1) * K.barGroupGap) / s : c, u = Math.min(l, K.maxBarWidth), d = s > 1 ? u * s + K.barGroupGap * (s - 1) : u, f = [], p = 0, m = 0;
2713
2718
  for (let r of e.series) {
2714
2719
  if (r.type !== "bar") {
2715
2720
  m++;
2716
2721
  continue;
2717
2722
  }
2718
2723
  for (let e = 0; e < r.data.length; e++) {
2719
- let s = t(e) - d / 2 + p * (u + Y.barGroupGap), c = n(r.data[e]), l = n(Math.max(0, i));
2724
+ let s = t(e) - d / 2 + p * (u + K.barGroupGap), c = n(r.data[e]), l = n(Math.max(0, i));
2720
2725
  f.push({
2721
2726
  x: s,
2722
2727
  y: Math.min(c, l),
@@ -2732,7 +2737,7 @@ function Vr(e, t, n, r, i, a, o) {
2732
2737
  }
2733
2738
  return f;
2734
2739
  }
2735
- function Hr(e, t, n, r, i) {
2740
+ function Zr(e, t, n, r, i) {
2736
2741
  let a = [], o = 0, s = 0;
2737
2742
  for (let c of e.series) {
2738
2743
  if (c.type !== "line") {
@@ -2753,7 +2758,7 @@ function Hr(e, t, n, r, i) {
2753
2758
  }
2754
2759
  return a;
2755
2760
  }
2756
- function Ur(e, t) {
2761
+ function Qr(e, t) {
2757
2762
  let n = t - e;
2758
2763
  if (n <= 0) return [e];
2759
2764
  let r = n / 6, i = 10 ** Math.floor(Math.log10(r)), a = r / i, o;
@@ -2762,10 +2767,14 @@ function Ur(e, t) {
2762
2767
  for (let e = s; e <= t + o * .001; e += o) c.push(Math.round(e * 1e10) / 1e10);
2763
2768
  return c;
2764
2769
  }
2765
- function Wr(e) {
2770
+ function $r(e) {
2771
+ let t = e.length > 1 ? Math.abs(e[1] - e[0]) : 0, n = t > 0 && t < 1 ? Math.ceil(-Math.log10(t) - 1e-9) : 0;
2772
+ return e.map((e) => String(Number.isInteger(e) && n === 0 ? e : Number(e.toFixed(n))));
2773
+ }
2774
+ function ei(e) {
2766
2775
  return Number.isInteger(e) ? String(e) : e.toFixed(+(Math.abs(e) < 10));
2767
2776
  }
2768
- function Gr(e, t, n, r) {
2777
+ function ti(e, t, n, r) {
2769
2778
  let i = [], a = 0, o = 0;
2770
2779
  for (let t = 0; t < e.series.length; t++) {
2771
2780
  let s = e.series[t], c = s.type === "bar" ? `Bar ${a + 1}` : `Line ${o + 1}`;
@@ -2779,15 +2788,15 @@ function Gr(e, t, n, r) {
2779
2788
  }), s.type === "bar" ? a++ : o++;
2780
2789
  }
2781
2790
  let s = i.map((e) => {
2782
- let t = M(e.label, Y.legendFontSize, Y.legendFontWeight);
2783
- return Y.legendSwatchW + Y.legendGap + t;
2784
- }), c = t - (s.reduce((e, t) => e + t, 0) + (i.length - 1) * Y.legendItemGap) / 2;
2785
- for (let e = 0; e < i.length; e++) i[e].x = c, c += s[e] + Y.legendItemGap;
2791
+ let t = M(e.label, K.legendFontSize, K.legendFontWeight);
2792
+ return K.legendSwatchW + K.legendGap + t;
2793
+ }), c = t - (s.reduce((e, t) => e + t, 0) + (i.length - 1) * K.legendItemGap) / 2;
2794
+ for (let e = 0; e < i.length; e++) i[e].x = c, c += s[e] + K.legendItemGap;
2786
2795
  return i;
2787
2796
  }
2788
2797
  //#endregion
2789
2798
  //#region packages/svg-renderer/src/xychart/renderer.ts
2790
- var X = {
2799
+ var q = {
2791
2800
  titleSize: 18,
2792
2801
  titleWeight: 600,
2793
2802
  axisTitleSize: 15,
@@ -2799,7 +2808,7 @@ var X = {
2799
2808
  dotRadius: 5,
2800
2809
  lineWidth: 2.5,
2801
2810
  barRadius: 8
2802
- }, Z = {
2811
+ }, J = {
2803
2812
  fontSize: 15,
2804
2813
  fontWeight: 500,
2805
2814
  height: 32,
@@ -2809,24 +2818,24 @@ var X = {
2809
2818
  minY: 4,
2810
2819
  pointerSize: 6
2811
2820
  };
2812
- function Kr(e, t, r = "Inter", i = !1, a = !1, o, s, c, l = {}) {
2813
- let u = [], d = Math.max(0, ...e.bars.map((e) => e.colorIndex), ...e.lines.map((e) => e.colorIndex)), f = U(E(e.width, e.height, t, i, s, c, void 0, l.styleAttribute).replace("<svg ", `<svg data-xychart-colors="${d}" `), o);
2821
+ function ni(e, t, r = "Inter", i = !1, a = !1, o, s, c, l = {}) {
2822
+ let u = [], d = Math.max(0, ...e.bars.map((e) => e.colorIndex), ...e.lines.map((e) => e.colorIndex)), f = H(E(e.width, e.height, t, i, s, c, void 0, l.styleAttribute).replace("<svg ", `<svg data-xychart-colors="${d}" `), o);
2814
2823
  u.push(f), u.push(n(r, !1, l.nonce));
2815
- let p = Math.max(...e.lines.map((e) => e.points.length), 0), m = p > 0 && p <= 12, { style: h, defs: g } = qr(e, a, m, t.accent, t.bg, l.nonce);
2824
+ let p = Math.max(...e.lines.map((e) => e.points.length), 0), m = p > 0 && p <= 12, { style: h, defs: g } = ri(e, a, m, t.accent, t.bg, l.nonce);
2816
2825
  u.push(h), g && u.push(g);
2817
2826
  let { plotArea: _ } = e, v = e.xAxis.ticks.map((e) => e.x), y = e.horizontal ? e.yAxis.ticks.map((e) => e.y) : e.gridLines.map((e) => e.y1), b = v.length > 1 ? Math.abs(v[1] - v[0]) : _.width / 6, x = y.length > 1 ? Math.abs(y[1] - y[0]) : _.height / 6, S = b / Math.max(1, Math.round(b / 20)), C = x / Math.max(1, Math.round(x / 20)), w = v[0] ?? _.x, T = y[0] ?? _.y, D = w - Math.ceil((w - _.x) / S) * S, O = T - Math.ceil((T - _.y) / C) * C;
2818
- for (let e = O; e <= _.y + _.height + .5; e += C) for (let t = D; t <= _.x + _.width + .5; t += S) u.push(`<circle cx="${Q(t)}" cy="${Q(e)}" r="1.5" class="xychart-grid"/>`);
2827
+ for (let e = O; e <= _.y + _.height + .5; e += C) for (let t = D; t <= _.x + _.width + .5; t += S) u.push(`<circle cx="${Y(t)}" cy="${Y(e)}" r="1.5" class="xychart-grid"/>`);
2819
2828
  let k = [];
2820
2829
  for (let t of e.bars) {
2821
- let n = ` data-value="${t.value}"${t.label ? ` data-label="${$(t.label)}"` : ""}`, r = e.horizontal ? Yr(t.x, t.y, t.width, t.height, X.barRadius) : Jr(t.x, t.y, t.width, t.height, X.barRadius);
2830
+ let n = ` data-value="${t.value}"${t.label ? ` data-label="${X(t.label)}"` : ""}`, r = e.horizontal ? ai(t.x, t.y, t.width, t.height, q.barRadius) : ii(t.x, t.y, t.width, t.height, q.barRadius);
2822
2831
  if (u.push(`<path d="${r}" class="xychart-bar xychart-color-${t.colorIndex}"${n}/>`), a) {
2823
- let e = $r(t.value), n = t.label ? `${t.label}: ${e}` : e, r = Qr(t.x + t.width / 2, t.y, e);
2824
- k.push(`<g class="xychart-bar-group"><rect x="${Q(t.x)}" y="${Q(t.y)}" width="${Q(t.width)}" height="${Q(t.height)}" fill="transparent"/><title>${$(n)}</title>` + r + "</g>");
2832
+ let e = li(t.value), n = t.label ? `${t.label}: ${e}` : e, r = ci(t.x + t.width / 2, t.y, e);
2833
+ k.push(`<g class="xychart-bar-group"><rect x="${Y(t.x)}" y="${Y(t.y)}" width="${Y(t.width)}" height="${Y(t.height)}" fill="transparent"/><title>${X(n)}</title>` + r + "</g>");
2825
2834
  }
2826
2835
  }
2827
2836
  for (let t of e.lines) {
2828
2837
  if (t.points.length === 0) continue;
2829
- let e = Xr(t.points);
2838
+ let e = oi(t.points);
2830
2839
  u.push(`<path d="${e}" class="xychart-line-shadow xychart-color-${t.colorIndex}" transform="translate(0,2)"/>`), u.push(`<path d="${e}" class="xychart-line xychart-color-${t.colorIndex}"/>`);
2831
2840
  }
2832
2841
  let A = [];
@@ -2835,7 +2844,7 @@ function Kr(e, t, r = "Inter", i = !1, a = !1, o, s, c, l = {}) {
2835
2844
  for (let n of e.legend) n.type === "line" && t.set(n.seriesIndex, n.label);
2836
2845
  let n = /* @__PURE__ */ new Map();
2837
2846
  for (let t of e.lines) for (let e of t.points) {
2838
- let r = Q(e.x), i = n.get(r) ?? [];
2847
+ let r = Y(e.x), i = n.get(r) ?? [];
2839
2848
  n.set(r, i), i.push({
2840
2849
  x: e.x,
2841
2850
  y: e.y,
@@ -2848,54 +2857,54 @@ function Kr(e, t, r = "Inter", i = !1, a = !1, o, s, c, l = {}) {
2848
2857
  for (let e of n.values()) {
2849
2858
  let n = e[0].x, r = e[0].label || "";
2850
2859
  if (a && e.length > 1) {
2851
- let i = Math.min(...e.map((e) => e.y)), a = Math.max(...e.map((e) => e.y)), o = X.dotRadius * 3, s = `<rect x="${Q(n - o)}" y="${Q(i - o)}" width="${Q(o * 2)}" height="${Q(a - i + o * 2)}" fill="transparent" class="xychart-hit"/>`, c = e.map((e) => ({
2852
- text: $r(e.value),
2860
+ let i = Math.min(...e.map((e) => e.y)), a = Math.max(...e.map((e) => e.y)), o = q.dotRadius * 3, s = `<rect x="${Y(n - o)}" y="${Y(i - o)}" width="${Y(o * 2)}" height="${Y(a - i + o * 2)}" fill="transparent" class="xychart-hit"/>`, c = e.map((e) => ({
2861
+ text: li(e.value),
2853
2862
  legendLabel: t.get(e.seriesIndex) || `Line ${e.seriesIndex + 1}`
2854
- })), l = Zr(n, i - X.dotRadius, r, c), u = c.map((e) => e.text), d = r ? `${r}: ${u.join(" · ")}` : u.join(" · "), f = `<g class="xychart-dot-group">${s}`;
2863
+ })), l = si(n, i - q.dotRadius, r, c), u = c.map((e) => e.text), d = r ? `${r}: ${u.join(" · ")}` : u.join(" · "), f = `<g class="xychart-dot-group">${s}`;
2855
2864
  for (let t of e) {
2856
- let e = ` data-value="${t.value}"${t.label ? ` data-label="${$(t.label)}"` : ""}`;
2857
- f += `<circle cx="${Q(t.x)}" cy="${Q(t.y)}" r="${X.dotRadius}" class="xychart-dot xychart-color-${t.colorIndex}"${e}/>`;
2865
+ let e = ` data-value="${t.value}"${t.label ? ` data-label="${X(t.label)}"` : ""}`;
2866
+ f += `<circle cx="${Y(t.x)}" cy="${Y(t.y)}" r="${q.dotRadius}" class="xychart-dot xychart-color-${t.colorIndex}"${e}/>`;
2858
2867
  }
2859
- f += `<title>${$(d)}</title>${l}</g>`, A.push(f);
2868
+ f += `<title>${X(d)}</title>${l}</g>`, A.push(f);
2860
2869
  } else if (a) {
2861
- let t = e[0], r = ` data-value="${t.value}"${t.label ? ` data-label="${$(t.label)}"` : ""}`, i = $r(t.value), a = t.label ? `${t.label}: ${i}` : i, o = Qr(n, t.y - X.dotRadius, i), s = m ? `<circle cx="${Q(n)}" cy="${Q(t.y)}" r="${X.dotRadius * 3}" fill="transparent" class="xychart-hit"/>` : "";
2862
- A.push(`<g class="xychart-dot-group">${s}<circle cx="${Q(t.x)}" cy="${Q(t.y)}" r="${X.dotRadius}" class="xychart-dot xychart-color-${t.colorIndex}"${r}/><title>${$(a)}</title>${o}</g>`);
2870
+ let t = e[0], r = ` data-value="${t.value}"${t.label ? ` data-label="${X(t.label)}"` : ""}`, i = li(t.value), a = t.label ? `${t.label}: ${i}` : i, o = ci(n, t.y - q.dotRadius, i), s = m ? `<circle cx="${Y(n)}" cy="${Y(t.y)}" r="${q.dotRadius * 3}" fill="transparent" class="xychart-hit"/>` : "";
2871
+ A.push(`<g class="xychart-dot-group">${s}<circle cx="${Y(t.x)}" cy="${Y(t.y)}" r="${q.dotRadius}" class="xychart-dot xychart-color-${t.colorIndex}"${r}/><title>${X(a)}</title>${o}</g>`);
2863
2872
  } else for (let t of e) {
2864
- let e = ` data-value="${t.value}"${t.label ? ` data-label="${$(t.label)}"` : ""}`;
2865
- u.push(`<circle cx="${Q(t.x)}" cy="${Q(t.y)}" r="${X.dotRadius}" class="xychart-dot xychart-color-${t.colorIndex}"${e}/>`);
2873
+ let e = ` data-value="${t.value}"${t.label ? ` data-label="${X(t.label)}"` : ""}`;
2874
+ u.push(`<circle cx="${Y(t.x)}" cy="${Y(t.y)}" r="${q.dotRadius}" class="xychart-dot xychart-color-${t.colorIndex}"${e}/>`);
2866
2875
  }
2867
2876
  }
2868
2877
  }
2869
- for (let t of e.xAxis.ticks) u.push(`<text x="${t.labelX}" y="${t.labelY}" text-anchor="${t.textAnchor}" font-size="${X.labelSize}" font-weight="${X.labelWeight}" dy="${R}" class="xychart-label">${$(t.label)}</text>`);
2870
- for (let t of e.yAxis.ticks) u.push(`<text x="${t.labelX}" y="${t.labelY}" text-anchor="${t.textAnchor}" font-size="${X.labelSize}" font-weight="${X.labelWeight}" dy="${R}" class="xychart-label">${$(t.label)}</text>`);
2878
+ for (let t of e.xAxis.ticks) u.push(`<text x="${t.labelX}" y="${t.labelY}" text-anchor="${t.textAnchor}" font-size="${q.labelSize}" font-weight="${q.labelWeight}" dy="${R}" class="xychart-label">${X(t.label)}</text>`);
2879
+ for (let t of e.yAxis.ticks) u.push(`<text x="${t.labelX}" y="${t.labelY}" text-anchor="${t.textAnchor}" font-size="${q.labelSize}" font-weight="${q.labelWeight}" dy="${R}" class="xychart-label">${X(t.label)}</text>`);
2871
2880
  if (e.xAxis.title) {
2872
2881
  let t = e.xAxis.title, n = t.rotate ? ` transform="rotate(${t.rotate},${t.x},${t.y})"` : "";
2873
- u.push(`<text x="${t.x}" y="${t.y}" text-anchor="middle"${n} font-size="${X.axisTitleSize}" font-weight="${X.axisTitleWeight}" dy="${R}" class="xychart-axis-title">${$(t.text)}</text>`);
2882
+ u.push(`<text x="${t.x}" y="${t.y}" text-anchor="middle"${n} font-size="${q.axisTitleSize}" font-weight="${q.axisTitleWeight}" dy="${R}" class="xychart-axis-title">${X(t.text)}</text>`);
2874
2883
  }
2875
2884
  if (e.yAxis.title) {
2876
2885
  let t = e.yAxis.title, n = t.rotate ? ` transform="rotate(${t.rotate},${t.x},${t.y})"` : "";
2877
- u.push(`<text x="${t.x}" y="${t.y}" text-anchor="middle"${n} font-size="${X.axisTitleSize}" font-weight="${X.axisTitleWeight}" dy="${R}" class="xychart-axis-title">${$(t.text)}</text>`);
2886
+ u.push(`<text x="${t.x}" y="${t.y}" text-anchor="middle"${n} font-size="${q.axisTitleSize}" font-weight="${q.axisTitleWeight}" dy="${R}" class="xychart-axis-title">${X(t.text)}</text>`);
2878
2887
  }
2879
- e.title && u.push(`<text x="${e.title.x}" y="${e.title.y}" text-anchor="middle" font-size="${X.titleSize}" font-weight="${X.titleWeight}" dy="${R}" class="xychart-title">${$(e.title.text)}</text>`);
2888
+ e.title && u.push(`<text x="${e.title.x}" y="${e.title.y}" text-anchor="middle" font-size="${q.titleSize}" font-weight="${q.titleWeight}" dy="${R}" class="xychart-title">${X(e.title.text)}</text>`);
2880
2889
  for (let t of e.legend) {
2881
2890
  if (t.type === "bar") u.push(`<rect x="${t.x}" y="${t.y - 7}" width="14" height="14" rx="3" class="xychart-bar xychart-color-${t.colorIndex}"/>`);
2882
2891
  else {
2883
2892
  let e = t.y;
2884
- u.push(`<line x1="${t.x}" y1="${e}" x2="${t.x + 14}" y2="${e}" stroke-width="${X.lineWidth}" stroke-linecap="round" class="xychart-legend-line xychart-color-${t.colorIndex}"/>`);
2893
+ u.push(`<line x1="${t.x}" y1="${e}" x2="${t.x + 14}" y2="${e}" stroke-width="${q.lineWidth}" stroke-linecap="round" class="xychart-legend-line xychart-color-${t.colorIndex}"/>`);
2885
2894
  }
2886
- u.push(`<text x="${t.x + 14 + 6}" y="${t.y}" text-anchor="start" font-size="${X.legendSize}" font-weight="${X.legendWeight}" dy="${R}" class="xychart-label">${$(t.label)}</text>`);
2895
+ u.push(`<text x="${t.x + 14 + 6}" y="${t.y}" text-anchor="start" font-size="${q.legendSize}" font-weight="${q.legendWeight}" dy="${R}" class="xychart-label">${X(t.label)}</text>`);
2887
2896
  }
2888
2897
  for (let e of k) u.push(e);
2889
2898
  for (let e of A) u.push(e);
2890
2899
  return u.push("</svg>"), u.join("\n");
2891
2900
  }
2892
- function qr(e, t, n, r, i, a) {
2901
+ function ri(e, t, n, r, i, a) {
2893
2902
  let o = r ?? ne, s = /* @__PURE__ */ new Set();
2894
2903
  for (let t of e.bars) s.add(t.colorIndex);
2895
2904
  for (let t of e.lines) s.add(t.colorIndex);
2896
2905
  let c = [];
2897
2906
  for (let e of [...s].sort((e, t) => e - t)) {
2898
- let t = e === 0 ? `var(--accent, ${ne})` : ie(e, o, i);
2907
+ let t = e === 0 ? `var(--accent, ${ne})` : ce(e, o, i);
2899
2908
  c.push(` --xychart-color-${e}: ${t};`), c.push(` --xychart-bar-fill-${e}: color-mix(in srgb, var(--bg) 75%, var(--xychart-color-${e}) 25%);`);
2900
2909
  }
2901
2910
  let l = [];
@@ -2906,7 +2915,7 @@ function qr(e, t, n, r, i, a) {
2906
2915
  let u = t ? `
2907
2916
  .xychart-tip { opacity: 0; pointer-events: none; }
2908
2917
  .xychart-tip-bg { fill: var(--_text); filter: drop-shadow(0 1px 3px color-mix(in srgb, var(--fg) 20%, transparent)); }
2909
- .xychart-tip-text { fill: var(--bg); font-size: ${Z.fontSize}px; font-weight: ${Z.fontWeight}; }
2918
+ .xychart-tip-text { fill: var(--bg); font-size: ${J.fontSize}px; font-weight: ${J.fontWeight}; }
2910
2919
  .xychart-tip-ptr { fill: var(--_text); }
2911
2920
  .xychart-bar-group:hover .xychart-tip,
2912
2921
  .xychart-dot-group:hover .xychart-tip { opacity: 1; }` : "", d = c.length > 0 ? `\n svg {\n${c.join("\n")}\n }` : "";
@@ -2914,7 +2923,7 @@ function qr(e, t, n, r, i, a) {
2914
2923
  style: `${T(a)}
2915
2924
  .xychart-grid { fill: var(--_inner-stroke); stroke: none; opacity: 0.65; }
2916
2925
  .xychart-bar { stroke-width: 1.5; }
2917
- .xychart-line { fill: none; stroke-width: ${X.lineWidth}; stroke-linecap: round; stroke-linejoin: round; }
2926
+ .xychart-line { fill: none; stroke-width: ${q.lineWidth}; stroke-linecap: round; stroke-linejoin: round; }
2918
2927
  .xychart-line-shadow { fill: none; stroke-width: 5; stroke-linecap: round; stroke-linejoin: round; opacity: 0.12; }
2919
2928
  .xychart-dot { stroke: var(--bg); stroke-width: 2; }
2920
2929
  .xychart-label { fill: var(--_text-muted); }
@@ -2925,97 +2934,545 @@ ${l.join("\n")}${u}
2925
2934
  defs: ""
2926
2935
  };
2927
2936
  }
2928
- function Jr(e, t, n, r, i) {
2937
+ function ii(e, t, n, r, i) {
2929
2938
  let a = Math.min(i, n / 2, r / 2);
2930
- return a <= 0 ? `M${Q(e)},${Q(t)} h${Q(n)} v${Q(r)} h${Q(-n)} Z` : [
2931
- `M${Q(e)},${Q(t + a)}`,
2932
- `Q${Q(e)},${Q(t)} ${Q(e + a)},${Q(t)}`,
2933
- `L${Q(e + n - a)},${Q(t)}`,
2934
- `Q${Q(e + n)},${Q(t)} ${Q(e + n)},${Q(t + a)}`,
2935
- `L${Q(e + n)},${Q(t + r - a)}`,
2936
- `Q${Q(e + n)},${Q(t + r)} ${Q(e + n - a)},${Q(t + r)}`,
2937
- `L${Q(e + a)},${Q(t + r)}`,
2938
- `Q${Q(e)},${Q(t + r)} ${Q(e)},${Q(t + r - a)}`,
2939
+ return a <= 0 ? `M${Y(e)},${Y(t)} h${Y(n)} v${Y(r)} h${Y(-n)} Z` : [
2940
+ `M${Y(e)},${Y(t + a)}`,
2941
+ `Q${Y(e)},${Y(t)} ${Y(e + a)},${Y(t)}`,
2942
+ `L${Y(e + n - a)},${Y(t)}`,
2943
+ `Q${Y(e + n)},${Y(t)} ${Y(e + n)},${Y(t + a)}`,
2944
+ `L${Y(e + n)},${Y(t + r - a)}`,
2945
+ `Q${Y(e + n)},${Y(t + r)} ${Y(e + n - a)},${Y(t + r)}`,
2946
+ `L${Y(e + a)},${Y(t + r)}`,
2947
+ `Q${Y(e)},${Y(t + r)} ${Y(e)},${Y(t + r - a)}`,
2939
2948
  "Z"
2940
2949
  ].join(" ");
2941
2950
  }
2942
- function Yr(e, t, n, r, i) {
2951
+ function ai(e, t, n, r, i) {
2943
2952
  let a = Math.min(i, n / 2, r / 2);
2944
- return a <= 0 ? `M${Q(e)},${Q(t)} h${Q(n)} v${Q(r)} h${Q(-n)} Z` : [
2945
- `M${Q(e + a)},${Q(t)}`,
2946
- `L${Q(e + n - a)},${Q(t)}`,
2947
- `Q${Q(e + n)},${Q(t)} ${Q(e + n)},${Q(t + a)}`,
2948
- `L${Q(e + n)},${Q(t + r - a)}`,
2949
- `Q${Q(e + n)},${Q(t + r)} ${Q(e + n - a)},${Q(t + r)}`,
2950
- `L${Q(e + a)},${Q(t + r)}`,
2951
- `Q${Q(e)},${Q(t + r)} ${Q(e)},${Q(t + r - a)}`,
2952
- `L${Q(e)},${Q(t + a)}`,
2953
- `Q${Q(e)},${Q(t)} ${Q(e + a)},${Q(t)}`,
2953
+ return a <= 0 ? `M${Y(e)},${Y(t)} h${Y(n)} v${Y(r)} h${Y(-n)} Z` : [
2954
+ `M${Y(e + a)},${Y(t)}`,
2955
+ `L${Y(e + n - a)},${Y(t)}`,
2956
+ `Q${Y(e + n)},${Y(t)} ${Y(e + n)},${Y(t + a)}`,
2957
+ `L${Y(e + n)},${Y(t + r - a)}`,
2958
+ `Q${Y(e + n)},${Y(t + r)} ${Y(e + n - a)},${Y(t + r)}`,
2959
+ `L${Y(e + a)},${Y(t + r)}`,
2960
+ `Q${Y(e)},${Y(t + r)} ${Y(e)},${Y(t + r - a)}`,
2961
+ `L${Y(e)},${Y(t + a)}`,
2962
+ `Q${Y(e)},${Y(t)} ${Y(e + a)},${Y(t)}`,
2954
2963
  "Z"
2955
2964
  ].join(" ");
2956
2965
  }
2957
- function Xr(e) {
2966
+ function oi(e) {
2958
2967
  if (e.length === 0) return "";
2959
- if (e.length === 1) return `M${Q(e[0].x)},${Q(e[0].y)}`;
2960
- if (e.length === 2) return `M${Q(e[0].x)},${Q(e[0].y)} L${Q(e[1].x)},${Q(e[1].y)}`;
2968
+ if (e.length === 1) return `M${Y(e[0].x)},${Y(e[0].y)}`;
2969
+ if (e.length === 2) return `M${Y(e[0].x)},${Y(e[0].y)} L${Y(e[1].x)},${Y(e[1].y)}`;
2961
2970
  let t = e.length, n = [], r = [];
2962
2971
  for (let i = 0; i < t - 1; i++) n.push(e[i + 1].x - e[i].x), r.push(n[i] === 0 ? 0 : (e[i + 1].y - e[i].y) / n[i]);
2963
2972
  let i = Array(t).fill(0);
2964
- if (t > 2) {
2965
- let e = Array(t).fill(0), a = Array(t).fill(0);
2966
- for (let i = 1; i < t - 1; i++) {
2967
- let t = 2 * (n[i - 1] + n[i]), o = 3 * (r[i] - r[i - 1]);
2968
- if (i === 1) e[i] = n[i] / t, a[i] = o / t;
2969
- else {
2970
- let r = t - n[i - 1] * e[i - 1];
2971
- e[i] = n[i] / r, a[i] = (o - n[i - 1] * a[i - 1]) / r;
2972
- }
2973
- }
2974
- for (let n = t - 2; n >= 1; n--) i[n] = a[n] - e[n] * i[n + 1];
2975
- }
2976
- let a = Array(t).fill(0);
2977
- for (let e = 0; e < t - 1; e++) a[e] = r[e] - n[e] * (2 * i[e] + i[e + 1]) / 3;
2978
- a[t - 1] = r[t - 2] + n[t - 2] * i[t - 2] / 3;
2979
- let o = `M${Q(e[0].x)},${Q(e[0].y)}`;
2973
+ for (let e = 1; e < t - 1; e++) {
2974
+ let t = r[e - 1], a = r[e];
2975
+ if (t * a <= 0) continue;
2976
+ let o = 2 * n[e] + n[e - 1], s = n[e] + 2 * n[e - 1];
2977
+ i[e] = (o + s) / (o / t + s / a);
2978
+ }
2979
+ let a = (e, t, n, r) => {
2980
+ let i = ((2 * e + t) * n - e * r) / (e + t);
2981
+ return i * n <= 0 ? i = 0 : n * r <= 0 && Math.abs(i) > 3 * Math.abs(n) && (i = 3 * n), i;
2982
+ };
2983
+ i[0] = a(n[0], n[1], r[0], r[1]), i[t - 1] = a(n[t - 2], n[t - 3], r[t - 2], r[t - 3]);
2984
+ let o = `M${Y(e[0].x)},${Y(e[0].y)}`;
2980
2985
  for (let r = 0; r < t - 1; r++) {
2981
- let t = n[r] / 3, i = e[r].x + t, s = e[r].y + a[r] * t, c = e[r + 1].x - t, l = e[r + 1].y - a[r + 1] * t;
2982
- o += ` C${Q(i)},${Q(s)} ${Q(c)},${Q(l)} ${Q(e[r + 1].x)},${Q(e[r + 1].y)}`;
2986
+ let t = n[r] / 3, a = e[r].x + t, s = e[r].y + i[r] * t, c = e[r + 1].x - t, l = e[r + 1].y - i[r + 1] * t;
2987
+ o += ` C${Y(a)},${Y(s)} ${Y(c)},${Y(l)} ${Y(e[r + 1].x)},${Y(e[r + 1].y)}`;
2983
2988
  }
2984
2989
  return o;
2985
2990
  }
2986
- function Zr(e, t, n, r) {
2987
- let i = M(n, Z.fontSize, 600), a = Math.max(...r.map((e) => {
2988
- let t = M(e.legendLabel, Z.fontSize, Z.fontWeight), n = M(e.text, Z.fontSize, Z.fontWeight);
2991
+ function si(e, t, n, r) {
2992
+ let i = M(n, J.fontSize, 600), a = Math.max(...r.map((e) => {
2993
+ let t = M(e.legendLabel, J.fontSize, J.fontWeight), n = M(e.text, J.fontSize, J.fontWeight);
2989
2994
  return t + 10 + n;
2990
- })), o = Math.max(i, a) + Z.padX * 2, s = 26 + r.length * 20 + 6, c = Math.max(Z.minY, t - Z.offsetY - s - Z.pointerSize), l = e - o / 2, u = e, d = c + s, f = Z.pointerSize, p = `<polygon points="${Q(u - f)},${Q(d)} ${Q(u + f)},${Q(d)} ${Q(u)},${Q(d + f)}" class="xychart-tip xychart-tip-ptr"/>`, m = `<rect x="${Q(l)}" y="${Q(c)}" width="${Q(o)}" height="${s}" rx="${Z.rx}" class="xychart-tip xychart-tip-bg"/>`;
2995
+ })), o = Math.max(i, a) + J.padX * 2, s = 26 + r.length * 20 + 6, c = Math.max(J.minY, t - J.offsetY - s - J.pointerSize), l = e - o / 2, u = e, d = c + s, f = J.pointerSize, p = `<polygon points="${Y(u - f)},${Y(d)} ${Y(u + f)},${Y(d)} ${Y(u)},${Y(d + f)}" class="xychart-tip xychart-tip-ptr"/>`, m = `<rect x="${Y(l)}" y="${Y(c)}" width="${Y(o)}" height="${s}" rx="${J.rx}" class="xychart-tip xychart-tip-bg"/>`;
2991
2996
  m += p;
2992
2997
  let h = c + 6 + 10;
2993
- m += `<text x="${Q(e)}" y="${Q(h)}" text-anchor="middle" font-weight="600" font-size="${Z.fontSize}" dy="${R}" class="xychart-tip xychart-tip-text">${$(n)}</text>`;
2994
- let g = l + Z.padX, _ = l + o - Z.padX;
2995
- for (let e of r) h += 20, m += `<text x="${Q(g)}" y="${Q(h)}" text-anchor="start" font-size="${Z.fontSize}" font-weight="${Z.fontWeight}" dy="${R}" class="xychart-tip xychart-tip-text">${$(e.legendLabel)}</text>`, m += `<text x="${Q(_)}" y="${Q(h)}" text-anchor="end" font-size="${Z.fontSize}" font-weight="${Z.fontWeight}" dy="${R}" class="xychart-tip xychart-tip-text">${$(e.text)}</text>`;
2998
+ m += `<text x="${Y(e)}" y="${Y(h)}" text-anchor="middle" font-weight="600" font-size="${J.fontSize}" dy="${R}" class="xychart-tip xychart-tip-text">${X(n)}</text>`;
2999
+ let g = l + J.padX, _ = l + o - J.padX;
3000
+ for (let e of r) h += 20, m += `<text x="${Y(g)}" y="${Y(h)}" text-anchor="start" font-size="${J.fontSize}" font-weight="${J.fontWeight}" dy="${R}" class="xychart-tip xychart-tip-text">${X(e.legendLabel)}</text>`, m += `<text x="${Y(_)}" y="${Y(h)}" text-anchor="end" font-size="${J.fontSize}" font-weight="${J.fontWeight}" dy="${R}" class="xychart-tip xychart-tip-text">${X(e.text)}</text>`;
2996
3001
  return m;
2997
3002
  }
2998
- function Qr(e, t, n) {
2999
- let r = M(n, Z.fontSize, Z.fontWeight) + Z.padX * 2, i = Z.height, a = Math.max(Z.minY, t - Z.offsetY - i - Z.pointerSize), o = e - r / 2, s = e, c = a + i / 2, l = e, u = a + i, d = Z.pointerSize, f = `<polygon points="${Q(l - d)},${Q(u)} ${Q(l + d)},${Q(u)} ${Q(l)},${Q(u + d)}" class="xychart-tip xychart-tip-ptr"/>`;
3000
- return `<rect x="${Q(o)}" y="${Q(a)}" width="${Q(r)}" height="${i}" rx="${Z.rx}" class="xychart-tip xychart-tip-bg"/>` + f + `<text x="${Q(s)}" y="${Q(c)}" text-anchor="middle" dy="${R}" class="xychart-tip xychart-tip-text">${$(n)}</text>`;
3003
+ function ci(e, t, n) {
3004
+ let r = M(n, J.fontSize, J.fontWeight) + J.padX * 2, i = J.height, a = Math.max(J.minY, t - J.offsetY - i - J.pointerSize), o = e - r / 2, s = e, c = a + i / 2, l = e, u = a + i, d = J.pointerSize, f = `<polygon points="${Y(l - d)},${Y(u)} ${Y(l + d)},${Y(u)} ${Y(l)},${Y(u + d)}" class="xychart-tip xychart-tip-ptr"/>`;
3005
+ return `<rect x="${Y(o)}" y="${Y(a)}" width="${Y(r)}" height="${i}" rx="${J.rx}" class="xychart-tip xychart-tip-bg"/>` + f + `<text x="${Y(s)}" y="${Y(c)}" text-anchor="middle" dy="${R}" class="xychart-tip xychart-tip-text">${X(n)}</text>`;
3001
3006
  }
3002
- function $r(e) {
3007
+ function li(e) {
3003
3008
  return Number.isInteger(e) ? e.toLocaleString("en-US") : e.toFixed(+(Math.abs(e) < 10));
3004
3009
  }
3005
- function Q(e) {
3010
+ function Y(e) {
3006
3011
  return String(Math.round(e * 10) / 10);
3007
3012
  }
3008
- function $(e) {
3013
+ function X(e) {
3009
3014
  return e.replace(/&/g, "&amp;").replace(/</g, "&lt;").replace(/>/g, "&gt;").replace(/"/g, "&quot;");
3010
3015
  }
3011
3016
  //#endregion
3017
+ //#region packages/svg-renderer/src/c4/metrics.ts
3018
+ var Z = {
3019
+ width: 216,
3020
+ diagramMarginX: 50,
3021
+ diagramMarginY: 10,
3022
+ shapeMargin: 50,
3023
+ shapePadding: 20,
3024
+ shapeInRow: 4,
3025
+ boundaryInRow: 2,
3026
+ nextLinePaddingX: 0,
3027
+ screenWidth: 1440,
3028
+ nameSize: 14,
3029
+ typeSize: 10.5,
3030
+ descrSize: 11.5,
3031
+ messageSize: 12,
3032
+ boundarySize: 14,
3033
+ nameLine: 15.35,
3034
+ typeLine: 15.72,
3035
+ descrLine: 17.1,
3036
+ descrExtraLine: 12.48,
3037
+ textScale: .922,
3038
+ boundaryLabelHeight: 18,
3039
+ boundaryTypeHeight: 16.1,
3040
+ boundaryDescrHeight: 14.4,
3041
+ rootHeadingHeight: 47,
3042
+ titleExtra: 60,
3043
+ cornerRadius: 12,
3044
+ strokeWidth: 2,
3045
+ personRx: 38.232,
3046
+ personHeadRadius: 49.68,
3047
+ personPillTop: 85.946,
3048
+ personPillTopPerExtraWidth: .4,
3049
+ dbTrim: 3.91,
3050
+ queueExtra: 10
3051
+ }, ui = Z.width - Z.shapePadding;
3052
+ function di(e, t, n, r) {
3053
+ let i = [];
3054
+ for (let a of e.split("\n")) {
3055
+ let e = "";
3056
+ for (let o of a.split(/\s+/).filter(Boolean)) {
3057
+ let a = e ? `${e} ${o}` : o;
3058
+ e && M(a, n, r) * Z.textScale > t ? (i.push(e), e = o) : e = a;
3059
+ }
3060
+ i.push(e);
3061
+ }
3062
+ return i;
3063
+ }
3064
+ function fi(e) {
3065
+ let t = e / Z.width;
3066
+ return {
3067
+ rx: Z.personRx * t,
3068
+ headRadius: Z.personHeadRadius * t,
3069
+ pillTop: Z.personPillTop + Z.personPillTopPerExtraWidth * (e - Z.width)
3070
+ };
3071
+ }
3072
+ function pi(e, t) {
3073
+ return e * Z.nameLine + Z.typeLine + mi(t);
3074
+ }
3075
+ function mi(e) {
3076
+ return e === 0 ? 0 : Z.descrLine + (e - 1) * Z.descrExtraLine;
3077
+ }
3078
+ function hi(e) {
3079
+ let t = e / 2;
3080
+ return {
3081
+ rx: t,
3082
+ ry: t / (2.5 + e / 50)
3083
+ };
3084
+ }
3085
+ function gi(e) {
3086
+ let t = e / 2;
3087
+ return {
3088
+ rx: t / (2.5 + e / 50),
3089
+ ry: t
3090
+ };
3091
+ }
3092
+ function _i(e, t, n) {
3093
+ return M(e, t, n) * Z.textScale;
3094
+ }
3095
+ function vi(e, t, n, r) {
3096
+ let i = pi(t, n), a = i + 2 * Z.shapePadding, o = Math.max(Z.width, r + 2 * Z.shapePadding);
3097
+ if (e.kind === "person") return {
3098
+ width: o,
3099
+ height: fi(o).pillTop + a,
3100
+ textHeight: i
3101
+ };
3102
+ if (e.shape === "db") {
3103
+ let { ry: e } = hi(o);
3104
+ return {
3105
+ width: o,
3106
+ height: a + 2 * e - Z.dbTrim,
3107
+ textHeight: i
3108
+ };
3109
+ }
3110
+ if (e.shape === "queue") {
3111
+ let e = i + Z.queueExtra, { rx: t } = gi(e);
3112
+ return {
3113
+ width: o + 3 * t,
3114
+ height: e,
3115
+ textHeight: i
3116
+ };
3117
+ }
3118
+ return {
3119
+ width: o,
3120
+ height: a,
3121
+ textHeight: i
3122
+ };
3123
+ }
3124
+ function yi(e) {
3125
+ let t = "#ffffff";
3126
+ if (e.external) switch (e.kind) {
3127
+ case "person": return {
3128
+ fill: "#686868",
3129
+ stroke: "#8a8a8a",
3130
+ text: t
3131
+ };
3132
+ case "system": return {
3133
+ fill: "#999999",
3134
+ stroke: "#8a8a8a",
3135
+ text: t
3136
+ };
3137
+ case "container": return {
3138
+ fill: "#b3b3b3",
3139
+ stroke: "#a6a6a6",
3140
+ text: t
3141
+ };
3142
+ case "component": return {
3143
+ fill: "#cccccc",
3144
+ stroke: "#bfbfbf",
3145
+ text: t
3146
+ };
3147
+ }
3148
+ switch (e.kind) {
3149
+ case "person": return {
3150
+ fill: "#08427b",
3151
+ stroke: "#073b6f",
3152
+ text: t
3153
+ };
3154
+ case "system": return {
3155
+ fill: "#1168bd",
3156
+ stroke: "#3c7fc0",
3157
+ text: t
3158
+ };
3159
+ case "container": return {
3160
+ fill: "#438dd5",
3161
+ stroke: "#3c7fc0",
3162
+ text: t
3163
+ };
3164
+ case "component": return {
3165
+ fill: "#85bbf0",
3166
+ stroke: "#78a8d8",
3167
+ text: t
3168
+ };
3169
+ }
3170
+ }
3171
+ //#endregion
3172
+ //#region packages/svg-renderer/src/c4/layout.ts
3173
+ function bi() {
3174
+ return { next: { cnt: 0 } };
3175
+ }
3176
+ function xi(e, t, n, r, i) {
3177
+ e.next.startx = e.startx = t, e.next.stopx = e.stopx = n, e.next.starty = e.starty = r, e.next.stopy = e.stopy = i;
3178
+ }
3179
+ function Q(e, t, n, r) {
3180
+ let i = e[t];
3181
+ e[t] = i === void 0 ? n : r(n, i);
3182
+ }
3183
+ function Si(e, t) {
3184
+ e.next.cnt += 1;
3185
+ let n = Z.shapeMargin, r = e.next.startx === e.next.stopx ? e.next.stopx + n : e.next.stopx + n * 2, i = r + t.width, a = e.next.starty + n * 2, o = a + t.height;
3186
+ (r >= e.widthLimit || i >= e.widthLimit || e.next.cnt > Z.shapeInRow) && (r = e.next.startx + n + Z.nextLinePaddingX, a = e.next.stopy + n * 2, e.next.stopx = i = r + t.width, e.next.starty = e.next.stopy, e.next.stopy = o = a + t.height, e.next.cnt = 1), t.x = r, t.y = a, Q(e, "startx", r, Math.min), Q(e, "starty", a, Math.min), Q(e, "stopx", i, Math.max), Q(e, "stopy", o, Math.max), Q(e.next, "startx", r, Math.min), Q(e.next, "starty", a, Math.min), Q(e.next, "stopx", i, Math.max), Q(e.next, "stopy", o, Math.max);
3187
+ }
3188
+ function Ci(e) {
3189
+ let t = di(e.label, ui, Z.nameSize, 700), n = e.description ? di(e.description, ui, Z.descrSize, 400) : [], r = Math.max(...t.map((e) => _i(e, Z.nameSize, 700)), _i(oe(e), Z.typeSize, 400), ...n.map((e) => _i(e, Z.descrSize, 400)));
3190
+ return {
3191
+ el: e,
3192
+ nameLines: t,
3193
+ descriptionLines: n,
3194
+ x: 0,
3195
+ y: 0,
3196
+ ...vi(e, t.length, n.length, r)
3197
+ };
3198
+ }
3199
+ function wi(e) {
3200
+ let t = /* @__PURE__ */ new Set(), n = new Map(e.elements.map((e) => [e.alias, e])), r = (e) => {
3201
+ let i = e.elementAliases.flatMap((e) => {
3202
+ t.add(e);
3203
+ let r = n.get(e);
3204
+ return r ? [r] : [];
3205
+ });
3206
+ return {
3207
+ alias: e.alias,
3208
+ boundary: e,
3209
+ elements: i,
3210
+ children: e.children.map(r)
3211
+ };
3212
+ }, i = e.boundaries.map(r);
3213
+ return {
3214
+ alias: "global",
3215
+ elements: e.elements.filter((e) => !t.has(e.alias)),
3216
+ children: i
3217
+ };
3218
+ }
3219
+ function Ti(e) {
3220
+ let t = /* @__PURE__ */ new Map(), n = [], r = Z.diagramMarginX, i = Z.diagramMarginY, a = (e, n) => {
3221
+ for (let r of n) {
3222
+ let n = Ci(r);
3223
+ t.set(r.alias, n), Si(e, n);
3224
+ }
3225
+ e.stopx += Z.shapeMargin, e.stopy += Z.shapeMargin;
3226
+ }, o = (e, t, s) => {
3227
+ let c = bi();
3228
+ c.widthLimit = e.widthLimit / Math.min(Z.boundaryInRow, t.length);
3229
+ for (let [l, u] of t.entries()) {
3230
+ let t = u.boundary, d = 0, f = d + 8;
3231
+ d = f + Z.boundaryLabelHeight;
3232
+ let p;
3233
+ t && ie(t) && (p = d + 5, d = p + Z.boundaryTypeHeight);
3234
+ let m;
3235
+ if (t?.description && (m = d + 20, d = m + Z.boundaryDescrHeight), t || (d = Z.rootHeadingHeight), l === 0 || l % Z.boundaryInRow === 0) {
3236
+ let t = e.startx + Z.diagramMarginX, n = e.stopy + Z.diagramMarginY + d;
3237
+ xi(c, t, t, n, n);
3238
+ } else {
3239
+ let e = c.stopx === c.startx ? c.startx : c.stopx + Z.diagramMarginX;
3240
+ xi(c, e, e, c.starty, c.starty);
3241
+ }
3242
+ if (u.elements.length > 0 && a(c, u.elements), u.children.length > 0 && o(c, u.children, s + 1), t) {
3243
+ let e = c.stopx - c.startx, r = c.stopy - c.starty;
3244
+ e === 0 && (e = Z.width), r === 0 && (r = d + Z.shapeMargin), n.push({
3245
+ alias: t.alias,
3246
+ label: t.label,
3247
+ ...t.type ? { type: t.type } : {},
3248
+ ...t.description ? { description: t.description } : {},
3249
+ x: c.startx,
3250
+ y: c.starty,
3251
+ width: e,
3252
+ height: r,
3253
+ depth: s,
3254
+ labelY: f,
3255
+ ...p === void 0 ? {} : { typeY: p },
3256
+ ...m === void 0 ? {} : { descrY: m }
3257
+ });
3258
+ }
3259
+ e.stopy = Math.max(c.stopy + Z.shapeMargin, e.stopy), e.stopx = Math.max(c.stopx + Z.shapeMargin, e.stopx), r = Math.max(r, e.stopx), i = Math.max(i, e.stopy);
3260
+ }
3261
+ }, s = bi();
3262
+ return xi(s, Z.diagramMarginX, Z.diagramMarginX, Z.diagramMarginY, Z.diagramMarginY), s.widthLimit = Z.screenWidth, o(s, [e], -1), {
3263
+ elements: t,
3264
+ boundaries: n,
3265
+ maxX: r,
3266
+ maxY: i
3267
+ };
3268
+ }
3269
+ function Ei(e, t) {
3270
+ let n = e.x + e.width / 2, r = e.y + e.height / 2, i = t.x - n, a = t.y - r, o = e.width / 2, s = e.height / 2;
3271
+ if (i === 0 && a === 0) return {
3272
+ x: n,
3273
+ y: r
3274
+ };
3275
+ let c, l;
3276
+ if (Math.abs(a) * o > Math.abs(i) * s) {
3277
+ let e = a < 0 ? -s : s;
3278
+ c = e * i / a, l = e;
3279
+ } else {
3280
+ let e = i < 0 ? -o : o;
3281
+ c = e, l = e * a / i;
3282
+ }
3283
+ return {
3284
+ x: n + c,
3285
+ y: r + l
3286
+ };
3287
+ }
3288
+ function Di(e, t) {
3289
+ let n = fi(e.width), r = e.x + e.width / 2, i = e.y + e.height / 2, a = e.y + n.headRadius, o = e.y + n.pillTop, s = e.y + e.height, c = (t, i) => {
3290
+ if (Math.hypot(t - r, i - a) <= n.headRadius) return !0;
3291
+ if (i < o || i > s) return !1;
3292
+ let c = Math.min(n.rx, (s - o) / 2), l = e.x + c, u = e.x + e.width - c, d = Math.min(Math.max(i, o + c), s - c), f = Math.min(Math.max(t, l), u);
3293
+ return t >= e.x && t <= e.x + e.width && Math.hypot(t - f, i - d) <= c;
3294
+ }, l = Math.hypot(t.x - r, t.y - i);
3295
+ if (l === 0 || !c(r, i)) return Ei(e, t);
3296
+ let u = (t.x - r) / l, d = (t.y - i) / l, f = (e) => c(r + u * e, i + d * e), p = 0, m = .5;
3297
+ for (; f(m) && m < e.width + e.height;) p = m, m += .5;
3298
+ for (let e = 0; e < 30; e++) {
3299
+ let e = (p + m) / 2;
3300
+ f(e) ? p = e : m = e;
3301
+ }
3302
+ return {
3303
+ x: r + u * p,
3304
+ y: i + d * p
3305
+ };
3306
+ }
3307
+ function Oi(e, t) {
3308
+ return e.el?.kind === "person" ? Di(e, t) : Ei(e, t);
3309
+ }
3310
+ var ki = (e) => ({
3311
+ x: e.x + e.width / 2,
3312
+ y: e.y + e.height / 2
3313
+ });
3314
+ function Ai(e, t, n, r) {
3315
+ let i = n.get(e.from), a = n.get(e.to), o = Oi(i, ki(a)), s = Oi(a, ki(i)), c = s.x - o.x, l = s.y - o.y, u = (e) => ({
3316
+ x: e.x,
3317
+ y: e.y + r
3318
+ }), d = {
3319
+ ...e,
3320
+ points: [u(o), u(s)]
3321
+ };
3322
+ if (t > 0 && (d.curve = u({
3323
+ x: o.x + c / 2 - c / 4,
3324
+ y: o.y + l / 2
3325
+ })), ae(e).length > 0) {
3326
+ let t = {
3327
+ x: Math.min(o.x, s.x) + Math.abs(c) / 2,
3328
+ y: Math.min(o.y, s.y) + Math.abs(l) / 2
3329
+ }, n = ae(e)[0], r = e.label !== "" || e.index !== void 0 ? _i(n ?? "", Z.messageSize, 400) : 0;
3330
+ if (d.labelPosition = u({
3331
+ x: t.x + r / 2,
3332
+ y: t.y
3333
+ }), e.technology) {
3334
+ let n = _i(`[${e.technology}]`, Z.messageSize, 400);
3335
+ d.technologyX = t.x + Math.max(r, n) / 2;
3336
+ }
3337
+ }
3338
+ return d;
3339
+ }
3340
+ function ji(e, t = {}) {
3341
+ if (e.elements.length === 0 && e.boundaries.length === 0) {
3342
+ let t = {
3343
+ variant: e.variant,
3344
+ width: 0,
3345
+ height: 0,
3346
+ elements: [],
3347
+ boundaries: [],
3348
+ relationships: []
3349
+ };
3350
+ return e.title && (t.title = e.title), t;
3351
+ }
3352
+ let n = Ti(wi(e)), r = e.title ? Z.titleExtra : 0, i = Z.diagramMarginY + r, a = e.elements.flatMap((e) => {
3353
+ let t = n.elements.get(e.alias);
3354
+ return t ? [{
3355
+ ...e,
3356
+ x: t.x,
3357
+ y: t.y + i,
3358
+ width: t.width,
3359
+ height: t.height,
3360
+ nameLines: t.nameLines,
3361
+ descriptionLines: t.descriptionLines
3362
+ }] : [];
3363
+ }), o = [...n.boundaries].sort((e, t) => e.depth - t.depth).map((e) => ({
3364
+ ...e,
3365
+ y: e.y + i
3366
+ })), s = /* @__PURE__ */ new Map();
3367
+ for (let e of n.elements.values()) s.set(e.el.alias, e);
3368
+ for (let e of n.boundaries) s.set(e.alias, e);
3369
+ let c = e.relationships.map((e, t) => Ai(e, t, s, i)), l = n.maxX + Z.diagramMarginX, u = n.maxY + Z.diagramMarginY + r, d = {
3370
+ variant: e.variant,
3371
+ width: l,
3372
+ height: u,
3373
+ elements: a,
3374
+ boundaries: o,
3375
+ relationships: c
3376
+ };
3377
+ return e.title && (d.title = e.title, d.titlePosition = {
3378
+ x: (n.maxX - Z.diagramMarginX) / 2 - 4 * Z.diagramMarginX,
3379
+ y: Z.diagramMarginY + Z.diagramMarginY + i
3380
+ }), d;
3381
+ }
3382
+ //#endregion
3383
+ //#region packages/svg-renderer/src/c4/renderer.ts
3384
+ function Mi(e, t, r = "Inter", i = !1, o = N, c, l, u, d = {}) {
3385
+ let f = [];
3386
+ f.push(H(E(e.width, e.height, t, i, l ?? e.title, u, void 0, d.styleAttribute), c)), f.push(n(r, !1, d.nonce)), e.title && e.titlePosition && f.push(s`<text class="c4-title" x="${e.titlePosition.x}" y="${e.titlePosition.y}" dy="${R}" ` + s`font-size="16" fill="var(--_text)">${a(e.title)}</text>`);
3387
+ for (let t of e.boundaries) f.push(Ni(t));
3388
+ for (let t of e.elements) f.push(Pi(t));
3389
+ for (let t of e.relationships) f.push(zi(t)), f.push(Bi(t));
3390
+ return f.push("</svg>"), f.filter(Boolean).join("\n");
3391
+ }
3392
+ function $(e, t, n, r, i) {
3393
+ return s` <text x="${t}" y="${n}" text-anchor="middle" dy="${R}" font-size="${r}" ` + s`${i}>${a(e)}</text>`;
3394
+ }
3395
+ function Ni(e) {
3396
+ let t = [];
3397
+ t.push(s`<g class="c4-boundary" data-id="${i(e.alias)}" data-label="${i(e.label)}" data-depth="${e.depth}">`), t.push(s` <rect x="${e.x}" y="${e.y}" width="${e.width}" height="${e.height}" rx="2.5" ry="2.5" ` + "fill=\"none\" stroke=\"var(--_text)\" stroke-width=\"1\" stroke-dasharray=\"7,7\" />");
3398
+ let n = e.x + e.width / 2;
3399
+ t.push($(e.label, n, e.y + (e.labelY ?? 8), Z.boundarySize + 2, "font-weight=\"700\" fill=\"var(--_text)\""));
3400
+ let r = ie({
3401
+ alias: e.alias,
3402
+ label: e.label,
3403
+ ...e.type ? { type: e.type } : {},
3404
+ elementAliases: [],
3405
+ children: []
3406
+ });
3407
+ return r && e.typeY !== void 0 && t.push($(r, n, e.y + e.typeY, Z.boundarySize, "fill=\"var(--_text)\"")), e.description && e.descrY !== void 0 && t.push($(e.description, n, e.y + e.descrY, Z.boundarySize - 2, "fill=\"var(--_text)\"")), t.push("</g>"), t.join("\n");
3408
+ }
3409
+ function Pi(e) {
3410
+ let t = yi(e), { x: n, y: r, width: a, height: o } = e, c = n + a / 2, l = pi(e.nameLines.length, e.descriptionLines.length), u = [];
3411
+ u.push(s`<g class="c4-element" data-id="${i(e.alias)}" data-kind="${e.kind}" data-shape="${e.shape}" ` + s`data-external="${e.external}" data-label="${i(e.label)}">`);
3412
+ let d, f = c;
3413
+ if (e.kind === "person") u.push(...Fi(e, t)), d = r + fi(a).pillTop + Z.shapePadding;
3414
+ else if (e.shape === "db") {
3415
+ u.push(...Ii(e, t));
3416
+ let { ry: n } = hi(a);
3417
+ d = r + (2 * n + o) / 2 - l / 2;
3418
+ } else if (e.shape === "queue") {
3419
+ u.push(...Li(e, t));
3420
+ let { rx: n } = gi(o);
3421
+ f = c - n, d = r + o / 2 - l / 2;
3422
+ } else u.push(s` <rect x="${n}" y="${r}" width="${a}" height="${o}" rx="${Z.cornerRadius}" ry="${Z.cornerRadius}" ` + s`fill="${t.fill}" stroke="${t.stroke}" stroke-width="${Z.strokeWidth}" />`), d = r + Z.shapePadding;
3423
+ let p = d;
3424
+ for (let n of e.nameLines) u.push($(n, f, p + Z.nameLine / 2, Z.nameSize, s`font-weight="700" fill="${t.text}"`)), p += Z.nameLine;
3425
+ return u.push($(oe(e), f, p + Z.typeLine / 2, Z.typeSize, s`fill="${t.text}"`)), p += Z.typeLine, e.descriptionLines.forEach((e, n) => {
3426
+ u.push($(e, f, p + Z.descrLine / 2 + n * Z.descrExtraLine, Z.descrSize, s`fill="${t.text}"`));
3427
+ }), p += mi(e.descriptionLines.length), u.push("</g>"), u.join("\n");
3428
+ }
3429
+ function Fi(e, t) {
3430
+ let { x: n, width: r } = e, { rx: i, headRadius: a, pillTop: o } = fi(r), c = e.y, l = n + r / 2, u = c + o, d = e.y + e.height - u, f = s`fill="${t.fill}" stroke="${t.stroke}" stroke-width="${Z.strokeWidth}"`;
3431
+ return [s` <rect x="${n}" y="${u}" width="${r}" height="${d}" rx="${i}" ry="${i}" ${f} />`, s` <circle cx="${l}" cy="${c + a}" r="${a}" ${f} />`];
3432
+ }
3433
+ function Ii(e, t) {
3434
+ let { x: n, y: r, width: i, height: a } = e, { rx: o, ry: c } = hi(i), l = s`fill="${t.fill}" stroke="${t.stroke}" stroke-width="${Z.strokeWidth}"`;
3435
+ return [s` <path d="M ${n} ${r + c} L ${n} ${r + a - c} A ${o} ${c} 0 0 0 ${n + i} ${r + a - c} L ${n + i} ${r + c} Z" ${l} />`, s` <ellipse cx="${n + o}" cy="${r + c}" rx="${o}" ry="${c}" ${l} />`];
3436
+ }
3437
+ function Li(e, t) {
3438
+ let { x: n, y: r, width: i, height: a } = e, { rx: o, ry: c } = gi(a), l = s`fill="${t.fill}" stroke="${t.stroke}" stroke-width="${Z.strokeWidth}"`;
3439
+ return [s` <path d="M ${n + i - o} ${r} H ${n + o} A ${o} ${c} 0 0 0 ${n + o} ${r + a} H ${n + i - o} Z" ${l} />`, s` <ellipse cx="${n + i - o}" cy="${r + c}" rx="${o}" ry="${c}" ${l} />`];
3440
+ }
3441
+ function Ri(e, t) {
3442
+ let n = e.x - t.x, r = e.y - t.y, i = Math.hypot(n, r);
3443
+ if (i === 0) return "";
3444
+ let a = n / i, o = r / i, c = e.x - a * 10, l = e.y - o * 10;
3445
+ return s`<polygon class="c4-arrowhead" points="${e.x},${e.y} ${c - o * 5},${l + a * 5} ${c + o * 5},${l - a * 5}" ` + "fill=\"var(--_text)\" />";
3446
+ }
3447
+ function zi(e) {
3448
+ let [t, n] = [e.points[0], e.points[e.points.length - 1]];
3449
+ if (!t || !n || t === n) return "";
3450
+ let r = [
3451
+ "class=\"c4-relationship\"",
3452
+ s`data-from="${i(e.from)}"`,
3453
+ s`data-to="${i(e.to)}"`
3454
+ ];
3455
+ e.label && r.push(s`data-label="${i(e.label)}"`), e.technology && r.push(s`data-technology="${i(e.technology)}"`);
3456
+ let a = e.curve ? s`M ${t.x},${t.y} Q ${e.curve.x},${e.curve.y} ${n.x},${n.y}` : s`M ${t.x},${t.y} L ${n.x},${n.y}`, o = s`<path ${r.join(" ")} d="${a}" fill="none" stroke="var(--_text)" stroke-width="1" />`, c = e.curve ?? t, l = e.curve ?? n, u = Ri(n, c), d = Ri(t, l);
3457
+ return [o, ...e.bidirectional ? [u, d] : [e.reversed ? d : u]].filter(Boolean).join("\n");
3458
+ }
3459
+ function Bi(e) {
3460
+ let t = ae(e);
3461
+ if (t.length === 0 || !e.labelPosition) return "";
3462
+ let { x: n, y: r } = e.labelPosition, a = [s`<g class="c4-relationship-label" data-from="${i(e.from)}" data-to="${i(e.to)}">`];
3463
+ return t.forEach((i, o) => {
3464
+ let s = e.technology !== void 0 && o === t.length - 1, c = r + (o === 0 ? 0 : Z.messageSize + 5);
3465
+ a.push($(i, s && e.technologyX !== void 0 ? e.technologyX : n, c, Z.messageSize, s ? "font-style=\"italic\" fill=\"var(--_text)\"" : "fill=\"var(--_text)\""));
3466
+ }), a.push("</g>"), a.join("\n");
3467
+ }
3468
+ //#endregion
3012
3469
  //#region src/parser.ts
3013
- function ei(e) {
3470
+ function Vi(e) {
3014
3471
  let t = e.trim();
3015
3472
  return t.length >= 2 && (t[0] === "\"" && t[t.length - 1] === "\"" || t[0] === "'" && t[t.length - 1] === "'") ? t.slice(1, -1) : t;
3016
3473
  }
3017
- var ti = "\"graph <dir>\"/\"flowchart <dir>\" (dir: TD, TB, LR, BT, RL), \"stateDiagram-v2\", \"sequenceDiagram\", \"classDiagram\", \"erDiagram\", \"xychart-beta\"";
3018
- function ni(e) {
3474
+ var Hi = "\"graph <dir>\"/\"flowchart <dir>\" (dir: TD, TB, LR, BT, RL), \"stateDiagram-v2\", \"sequenceDiagram\", \"classDiagram\", \"erDiagram\", \"xychart-beta\", \"C4Context\"/\"C4Container\"/\"C4Component\"/\"C4Dynamic\"/\"C4Deployment\", \"architecture-beta\"";
3475
+ function Ui(e) {
3019
3476
  let t = e.trim().toLowerCase();
3020
3477
  if (/^sequence/.test(t)) return "sequenceDiagram";
3021
3478
  if (/^class/.test(t)) return "classDiagram";
@@ -3023,11 +3480,11 @@ function ni(e) {
3023
3480
  if (/^xychart/.test(t)) return "xychart-beta";
3024
3481
  if (/^state/.test(t)) return "stateDiagram-v2";
3025
3482
  }
3026
- var ri = /^(?:[\w-]+@)?<?(?:-{2,}|={2,}|-\.+-?|~{3,})/;
3027
- function ii(e) {
3483
+ var Wi = /^(?:[\w-]+@)?<?(?:-{2,}|={2,}|-\.+-?|~{3,})/;
3484
+ function Gi(e) {
3028
3485
  let t = [];
3029
3486
  for (let n of e) n.forEach((e, n) => {
3030
- if (n === 0 && t.length > 0 && ri.test(e.text)) {
3487
+ if (n === 0 && t.length > 0 && Wi.test(e.text)) {
3031
3488
  let n = t[t.length - 1];
3032
3489
  t[t.length - 1] = {
3033
3490
  text: `${n.text} ${e.text}`,
@@ -3037,13 +3494,13 @@ function ii(e) {
3037
3494
  });
3038
3495
  return t;
3039
3496
  }
3040
- function ai(e) {
3041
- let t = o(e.split("\n").map((e) => e.trim())), n = ii(w(e));
3497
+ function Ki(e) {
3498
+ let t = o(e.split("\n").map((e) => e.trim())), n = Gi(w(e));
3042
3499
  if (n.length === 0) throw Error("Empty mermaid diagram");
3043
- let r = n[0], i = /^stateDiagram(-v2)?\s*$/i.test(r.text) ? si(n) : oi(n);
3500
+ let r = n[0], i = /^stateDiagram(-v2)?\s*$/i.test(r.text) ? Ji(n) : qi(n);
3044
3501
  return i.initConfig = t, i;
3045
3502
  }
3046
- function oi(e) {
3503
+ function qi(e) {
3047
3504
  let t = e[0];
3048
3505
  if (t === void 0)
3049
3506
  /* v8 ignore next */
@@ -3055,8 +3512,8 @@ function oi(e) {
3055
3512
  let r = e[1].trim();
3056
3513
  throw Error(r.length > 0 ? `Line ${t.line}: Invalid direction "${r}" in header "${n}". Expected one of: TD, TB, LR, BT, RL.` : `Line ${t.line}: Missing direction in header "${n}". Expected e.g. "graph TD" or "flowchart LR" — one of: TD, TB, LR, BT, RL.`);
3057
3514
  }
3058
- let r = ni(n), i = r && r.toLowerCase() !== n.trim().toLowerCase() ? ` Did you mean "${r}"?` : "";
3059
- throw Error(`Line ${t.line}: Invalid mermaid header: "${n}".${i} Supported headers: ${ti}.`);
3515
+ let r = Ui(n), i = r && r.toLowerCase() !== n.trim().toLowerCase() ? ` Did you mean "${r}"?` : "";
3516
+ throw Error(`Line ${t.line}: Invalid mermaid header: "${n}".${i} Supported headers: ${Hi}.`);
3060
3517
  }
3061
3518
  let i = {
3062
3519
  direction: O(r[1]),
@@ -3073,10 +3530,10 @@ function oi(e) {
3073
3530
  let n = e[t].text;
3074
3531
  if (A(n, i) || k(n, i) || j(n, i)) continue;
3075
3532
  if (/^click\s+/i.test(n)) {
3076
- yi(n, i);
3533
+ sa(n, i);
3077
3534
  continue;
3078
3535
  }
3079
- if (xi(n, i)) continue;
3536
+ if (la(n, i)) continue;
3080
3537
  let r = n.match(/^linkStyle\s+(default|[\d,\s]+)\s+(.+)$/);
3081
3538
  if (r) {
3082
3539
  let e = r[1].trim(), t = g(r[2]);
@@ -3101,7 +3558,7 @@ function oi(e) {
3101
3558
  let s = n.match(/^subgraph\s+(.+)$/);
3102
3559
  if (s) {
3103
3560
  let e = s[1].trim(), t = e.match(/^([^\s[]+)\s*\[(.+)\]$/), n, r;
3104
- t ? (n = t[1], r = m(ei(t[2]))) : (r = m(ei(e)), n = r.replace(/\s+/g, "_").replace(/[^\p{L}\p{N}_-]/gu, ""));
3561
+ t ? (n = t[1], r = m(Vi(t[2]))) : (r = m(Vi(e)), n = r.replace(/\s+/g, "_").replace(/[^\p{L}\p{N}_-]/gu, ""));
3105
3562
  let i = {
3106
3563
  id: n,
3107
3564
  label: r,
@@ -3116,11 +3573,11 @@ function oi(e) {
3116
3573
  e && (a.length > 0 ? a[a.length - 1].children.push(e) : i.subgraphs.push(e));
3117
3574
  continue;
3118
3575
  }
3119
- Ti(n, i, a);
3576
+ pa(n, i, a);
3120
3577
  }
3121
3578
  return i;
3122
3579
  }
3123
- function si(e) {
3580
+ function Ji(e) {
3124
3581
  let t = {
3125
3582
  direction: "TD",
3126
3583
  nodes: /* @__PURE__ */ new Map(),
@@ -3133,7 +3590,9 @@ function si(e) {
3133
3590
  interactions: /* @__PURE__ */ new Map()
3134
3591
  }, n = [], r = /* @__PURE__ */ new Set(), i = 0, a = 0;
3135
3592
  for (let o = 1; o < e.length; o++) {
3136
- let s = e[o].text, c = s.match(/^direction\s+(TD|TB|LR|BT|RL)\s*$/i);
3593
+ let s = e[o].text;
3594
+ if (A(s, t) || k(s, t) || j(s, t)) continue;
3595
+ let c = s.match(/^direction\s+(TD|TB|LR|BT|RL)\s*$/i);
3137
3596
  if (c) {
3138
3597
  n.length > 0 ? n[n.length - 1].direction = O(c[1]) : t.direction = O(c[1]);
3139
3598
  continue;
@@ -3154,7 +3613,7 @@ function si(e) {
3154
3613
  }
3155
3614
  continue;
3156
3615
  }
3157
- if (xi(s, t)) continue;
3616
+ if (la(s, t)) continue;
3158
3617
  let u = s.match(/^state\s+(?:"([^"]+)"\s+as\s+)?([\w\p{L}]+)\s*\{$/u);
3159
3618
  if (u) {
3160
3619
  let e = u[1] ?? u[2], i = u[2], a = {
@@ -3174,56 +3633,63 @@ function si(e) {
3174
3633
  let d = s.match(/^state\s+"([^"]+)"\s+as\s+([\w\p{L}]+)\s*$/u);
3175
3634
  if (d) {
3176
3635
  let e = m(d[1]), r = d[2];
3177
- ci(t, n, {
3178
- id: r,
3179
- label: e,
3180
- shape: "rounded"
3181
- });
3636
+ Yi(t, n, r, e);
3182
3637
  continue;
3183
3638
  }
3184
- let f = s.match(/^(\[\*\]|[\w\p{L}-]+)\s*(?:([\w-]+)@)?-->\s*(\[\*\]|[\w\p{L}-]+)(?:\s*:\s*(.+))?$/u);
3639
+ let f = s.match(/^(\[\*\]|[\w\p{L}-]+)(?::::([\w][\w-]*))?\s*(?:([\w-]+)@)?-->\s*(\[\*\]|[\w\p{L}-]+)(?::::([\w][\w-]*))?(?:\s*:\s*(.+))?$/u);
3185
3640
  if (f) {
3186
- let e = f[1], o = f[2], s = f[3], c = f[4]?.trim(), l = c ? m(c) : void 0;
3187
- e === "[*]" ? (i++, e = `_start${i > 1 ? i : ""}`, ci(t, n, {
3641
+ let e = f[1], o = f[2], s = f[3], c = f[4], l = f[5], u = f[6]?.trim(), d = u ? m(u) : void 0;
3642
+ e === "[*]" ? (i++, e = `_start${i > 1 ? i : ""}`, Xi(t, n, {
3188
3643
  id: e,
3189
3644
  label: "",
3190
3645
  shape: "state-start"
3191
- })) : r.has(e) || li(t, n, e), s === "[*]" ? (a++, s = `_end${a > 1 ? a : ""}`, ci(t, n, {
3192
- id: s,
3646
+ })) : r.has(e) || Zi(t, n, e), c === "[*]" ? (a++, c = `_end${a > 1 ? a : ""}`, Xi(t, n, {
3647
+ id: c,
3193
3648
  label: "",
3194
3649
  shape: "state-end"
3195
- })) : r.has(s) || li(t, n, s), t.edges.push({
3650
+ })) : r.has(c) || Zi(t, n, c), o !== void 0 && t.classAssignments.set(e, o), l !== void 0 && t.classAssignments.set(c, l), t.edges.push({
3196
3651
  source: e,
3197
- target: s,
3198
- label: l,
3652
+ target: c,
3653
+ label: d,
3199
3654
  style: "solid",
3200
3655
  hasArrowStart: !1,
3201
3656
  hasArrowEnd: !0,
3202
- ...o === void 0 ? {} : { id: o }
3657
+ ...s === void 0 ? {} : { id: s }
3203
3658
  });
3204
3659
  continue;
3205
3660
  }
3206
- let p = s.match(/^([\w\p{L}-]+)\s*:\s*(.+)$/u);
3661
+ let p = s.match(/^([\w\p{L}-]+):::([\w][\w-]*)\s*$/u);
3207
3662
  if (p) {
3208
3663
  let e = p[1];
3209
- ci(t, n, {
3210
- id: e,
3211
- label: m(p[2].trim()),
3212
- shape: "rounded"
3213
- });
3664
+ r.has(e) || Zi(t, n, e), t.classAssignments.set(e, p[2]);
3665
+ continue;
3666
+ }
3667
+ let h = s.match(/^([\w\p{L}-]+)\s*:\s*(.+)$/u);
3668
+ if (h) {
3669
+ let e = h[1];
3670
+ Yi(t, n, e, m(h[2].trim()));
3214
3671
  continue;
3215
3672
  }
3216
3673
  }
3674
+ for (let e of t.classAssignments.keys()) !t.nodes.has(e) && !r.has(e) && Zi(t, [], e);
3217
3675
  return t;
3218
3676
  }
3219
- function ci(e, t, n) {
3677
+ function Yi(e, t, n, r) {
3678
+ let i = e.nodes.get(n);
3679
+ i && (i.label = r), Xi(e, t, {
3680
+ id: n,
3681
+ label: r,
3682
+ shape: "rounded"
3683
+ });
3684
+ }
3685
+ function Xi(e, t, n) {
3220
3686
  if (e.nodes.has(n.id) || e.nodes.set(n.id, n), t.length > 0) {
3221
3687
  let e = t[t.length - 1];
3222
3688
  e.nodeIds.includes(n.id) || e.nodeIds.push(n.id);
3223
3689
  }
3224
3690
  }
3225
- function li(e, t, n) {
3226
- if (!e.nodes.has(n)) ci(e, t, {
3691
+ function Zi(e, t, n) {
3692
+ if (!e.nodes.has(n)) Xi(e, t, {
3227
3693
  id: n,
3228
3694
  label: n,
3229
3695
  shape: "rounded"
@@ -3233,12 +3699,12 @@ function li(e, t, n) {
3233
3699
  e.nodeIds.includes(n) || e.nodeIds.push(n);
3234
3700
  }
3235
3701
  }
3236
- var ui = /^(<|o|x)?(-{2,}|={2,}|-\.+-|~{3,})(>|o|x)?(?:\|([^|]*)\|)?/, di = /* @__PURE__ */ new Set(["--", "=="]);
3237
- function fi(e) {
3702
+ var Qi = /^(<|o|x)?(-{2,}|={2,}|-\.+-|~{3,})(>|o|x)?(?:\|([^|]*)\|)?/, $i = /* @__PURE__ */ new Set(["--", "=="]);
3703
+ function ea(e) {
3238
3704
  if (e === "o") return "circle";
3239
3705
  if (e === "x") return "cross";
3240
3706
  }
3241
- var pi = /^(<|o|x)?(--|-\.|==)\s+(.+?)\s+(-{2,}[>ox]|={2,}[>ox]|\.+-[>ox]|-{3,}|={3,}|-\.+-)/, mi = [
3707
+ var ta = /^(<|o|x)?(--|-\.|==)\s+(.+?)\s+(-{2,}[>ox]|={2,}[>ox]|\.+-[>ox]|-{3,}|={3,}|-\.+-)/, na = [
3242
3708
  {
3243
3709
  regex: /^([\w\p{L}-]+)\(\(\(((?:"[^"]*"|(?!\)\)\)).)+)\)\)\)/u,
3244
3710
  shape: "doublecircle"
@@ -3287,9 +3753,9 @@ var pi = /^(<|o|x)?(--|-\.|==)\s+(.+?)\s+(-{2,}[>ox]|={2,}[>ox]|\.+-[>ox]|-{3,}|
3287
3753
  regex: /^([\w\p{L}-]+)\{((?:"[^"]*"|(?!\}).)+)\}/u,
3288
3754
  shape: "diamond"
3289
3755
  }
3290
- ], hi = /^([\w\p{L}]+(?:-[\w\p{L}]+)*)/u, gi = /^([\w\p{L}-]+)(?=@\{)/u;
3291
- function _i(e) {
3292
- if (e.shape) return de(e.shape) ?? "rectangle";
3756
+ ], ra = /^([\w\p{L}]+(?:-[\w\p{L}]+)*)/u, ia = /^([\w\p{L}-]+)(?=@\{)/u;
3757
+ function aa(e) {
3758
+ if (e.shape) return _e(e.shape) ?? "rectangle";
3293
3759
  if (e.icon !== void 0 || e.img !== void 0) switch (e.form?.toLowerCase()) {
3294
3760
  case "circle": return "circle";
3295
3761
  case "rounded": return "rounded";
@@ -3297,46 +3763,46 @@ function _i(e) {
3297
3763
  }
3298
3764
  return "rectangle";
3299
3765
  }
3300
- function vi(e, t) {
3766
+ function oa(e, t) {
3301
3767
  return t.label !== void 0 && t.label.length > 0 ? t.label : t.icon ? t.icon : t.img ? t.img : e;
3302
3768
  }
3303
- function yi(e, n) {
3769
+ function sa(e, n) {
3304
3770
  t(e, n.interactions);
3305
3771
  }
3306
- var bi = /^([\w-]+)(?=@\{)/;
3307
- function xi(e, t) {
3308
- let n = e.match(bi);
3772
+ var ca = /^([\w-]+)(?=@\{)/;
3773
+ function la(e, t) {
3774
+ let n = e.match(ca);
3309
3775
  if (!n || !t.edges.some((e) => e.id === n[1])) return !1;
3310
- let r = ae(e.slice(n[1].length));
3311
- return r ? (Si(t, n[1], ce(r.body)), !0) : !1;
3776
+ let r = le(e.slice(n[1].length));
3777
+ return r ? (ua(t, n[1], me(r.body)), !0) : !1;
3312
3778
  }
3313
- function Si(e, t, n) {
3779
+ function ua(e, t, n) {
3314
3780
  for (let r of e.edges) r.id === t && (n.animate !== void 0 && (r.animate = n.animate.toLowerCase() !== "false"), n.animation !== void 0 && (r.animate = !0));
3315
3781
  }
3316
- var Ci = /^:::([\w][\w-]*)/, wi = /^([\w\p{L}-]+):::([\w][\w-]*)/u;
3317
- function Ti(e, t, n) {
3318
- let r = e.trim(), i = Ei(r, t, n);
3782
+ var da = /^:::([\w][\w-]*)/, fa = /^([\w\p{L}-]+):::([\w][\w-]*)/u;
3783
+ function pa(e, t, n) {
3784
+ let r = e.trim(), i = ma(r, t, n);
3319
3785
  if (!i || i.ids.length === 0) return;
3320
3786
  r = i.remaining.trim();
3321
3787
  let a = i.ids;
3322
3788
  for (; r.length > 0;) {
3323
3789
  let e, i, o, s, c, l, u, d = r.match(/^([\w-]+)@(?=[-=<~ox])/);
3324
3790
  d && (u = d[1], r = r.slice(d[0].length));
3325
- let f = r.match(ui), p = f?.[2], h = f?.[1], g = f?.[3];
3326
- if (f && p !== void 0 && !(h === void 0 && g === void 0 && di.has(p))) {
3327
- e = h !== void 0, c = fi(h);
3791
+ let f = r.match(Qi), p = f?.[2], h = f?.[1], g = f?.[3];
3792
+ if (f && p !== void 0 && !(h === void 0 && g === void 0 && $i.has(p))) {
3793
+ e = h !== void 0, c = ea(h);
3328
3794
  let t = f[4]?.trim();
3329
- s = t ? m(t) : void 0, r = r.slice(f[0].length).trim(), i = Ai(p), o = g !== void 0, l = fi(g);
3795
+ s = t ? m(t) : void 0, r = r.slice(f[0].length).trim(), i = va(p), o = g !== void 0, l = ea(g);
3330
3796
  } else {
3331
- let t = r.match(pi);
3797
+ let t = r.match(ta);
3332
3798
  if (!t) break;
3333
- e = !!t[1], c = fi(t[1]);
3799
+ e = !!t[1], c = ea(t[1]);
3334
3800
  let n = t[3].trim();
3335
3801
  s = n ? m(n) : void 0;
3336
3802
  let a = t[2], u = t[4];
3337
- r = r.slice(t[0].length).trim(), i = ji(a, u), l = fi(u.slice(-1)), o = u.endsWith(">") || l !== void 0;
3803
+ r = r.slice(t[0].length).trim(), i = ya(a, u), l = ea(u.slice(-1)), o = u.endsWith(">") || l !== void 0;
3338
3804
  }
3339
- let _ = Ei(r, t, n);
3805
+ let _ = ma(r, t, n);
3340
3806
  if (!_ || _.ids.length === 0) break;
3341
3807
  r = _.remaining.trim();
3342
3808
  for (let n of a) for (let r of _.ids) t.edges.push({
@@ -3353,13 +3819,13 @@ function Ti(e, t, n) {
3353
3819
  a = _.ids;
3354
3820
  }
3355
3821
  }
3356
- function Ei(e, t, n) {
3357
- let r = Di(e, t, n);
3822
+ function ma(e, t, n) {
3823
+ let r = ha(e, t, n);
3358
3824
  if (!r) return null;
3359
3825
  let i = [r.id], a = r.remaining.trim();
3360
3826
  for (; a.startsWith("&");) {
3361
3827
  a = a.slice(1).trim();
3362
- let e = Di(a, t, n);
3828
+ let e = ha(a, t, n);
3363
3829
  if (!e) break;
3364
3830
  i.push(e.id), a = e.remaining.trim();
3365
3831
  }
@@ -3368,27 +3834,27 @@ function Ei(e, t, n) {
3368
3834
  remaining: a
3369
3835
  };
3370
3836
  }
3371
- function Di(e, t, n) {
3372
- let r = null, i = e, a, o = i.match(wi);
3837
+ function ha(e, t, n) {
3838
+ let r = null, i = e, a, o = i.match(fa);
3373
3839
  o && (a = o[2], i = o[1] + i.slice(o[0].length));
3374
- let s = i.match(gi);
3840
+ let s = i.match(ia);
3375
3841
  if (s) {
3376
- let e = s[1], a = ae(i.slice(e.length));
3842
+ let e = s[1], a = le(i.slice(e.length));
3377
3843
  if (a) {
3378
- let o = ce(a.body);
3379
- Oi(t, n, {
3844
+ let o = me(a.body);
3845
+ ga(t, n, {
3380
3846
  id: e,
3381
- label: m(vi(e, o)),
3382
- shape: _i(o)
3847
+ label: m(oa(e, o)),
3848
+ shape: aa(o)
3383
3849
  }), r = e, i = i.slice(e.length + a.length);
3384
3850
  }
3385
3851
  }
3386
- if (r === null) for (let { regex: e, shape: a } of mi) {
3852
+ if (r === null) for (let { regex: e, shape: a } of na) {
3387
3853
  let o = i.match(e);
3388
3854
  if (o) {
3389
3855
  r = o[1];
3390
3856
  let e = m(o[2]), s = typeof a == "function" ? a(o[3] ?? "") : a;
3391
- Oi(t, n, {
3857
+ ga(t, n, {
3392
3858
  id: r,
3393
3859
  label: e,
3394
3860
  shape: s
@@ -3397,8 +3863,8 @@ function Di(e, t, n) {
3397
3863
  }
3398
3864
  }
3399
3865
  if (r === null) {
3400
- let e = i.match(hi);
3401
- e && (r = e[1], t.nodes.has(r) || Oi(t, n, {
3866
+ let e = i.match(ra);
3867
+ e && (r = e[1], t.nodes.has(r) || ga(t, n, {
3402
3868
  id: r,
3403
3869
  label: r,
3404
3870
  shape: "rectangle"
@@ -3406,89 +3872,110 @@ function Di(e, t, n) {
3406
3872
  }
3407
3873
  if (r === null) return null;
3408
3874
  a && t.classAssignments.set(r, a);
3409
- let c = i.match(Ci);
3875
+ let c = i.match(da);
3410
3876
  return c && (t.classAssignments.set(r, c[1]), i = i.slice(c[0].length)), {
3411
3877
  id: r,
3412
3878
  remaining: i
3413
3879
  };
3414
3880
  }
3415
- function Oi(e, t, n) {
3416
- e.nodes.has(n.id) || e.nodes.set(n.id, n), ki(t, n.id);
3881
+ function ga(e, t, n) {
3882
+ e.nodes.has(n.id) || e.nodes.set(n.id, n), _a(t, n.id);
3417
3883
  }
3418
- function ki(e, t) {
3884
+ function _a(e, t) {
3419
3885
  if (e.length > 0) {
3420
3886
  let n = e[e.length - 1];
3421
3887
  n.nodeIds.includes(t) || n.nodeIds.push(t);
3422
3888
  }
3423
3889
  }
3424
- function Ai(e) {
3890
+ function va(e) {
3425
3891
  return e.startsWith("~") ? "invisible" : e.includes(".") ? "dotted" : e.startsWith("=") ? "thick" : "solid";
3426
3892
  }
3427
- function ji(e, t) {
3893
+ function ya(e, t) {
3428
3894
  return e.includes(".") || t.includes(".") ? "dotted" : e.startsWith("=") || t.startsWith("=") ? "thick" : "solid";
3429
3895
  }
3430
3896
  //#endregion
3431
3897
  //#region packages/svg-renderer/src/registry.ts
3432
- var Mi = {
3898
+ var ba = {
3433
3899
  type: "xychart",
3434
- parse: ue,
3435
- layoutForSvg: Fr,
3900
+ parse: ge,
3901
+ layoutForSvg: Wr,
3436
3902
  renderSvg(e, t, n) {
3437
3903
  let r = n.interactivity === void 0 ? n.interactive ?? !1 : n.interactivity === "full";
3438
- return Kr(e, t.colors, t.font, t.transparent, r, t.embedSource, t.title, t.decorative, t.emit);
3904
+ return ni(e, t.colors, t.font, t.transparent, r, t.embedSource, t.title, t.decorative, t.emit);
3439
3905
  }
3440
- }, Ni = {
3906
+ }, xa = {
3441
3907
  type: "sequence",
3442
- parse: le,
3443
- layoutForSvg: Sr,
3908
+ parse: he,
3909
+ layoutForSvg: jr,
3444
3910
  renderSvg(e, t) {
3445
- return Cr(e, t.colors, t.font, t.transparent, t.fontSizes, t.embedSource, t.title, t.decorative, t.emit);
3911
+ return Mr(e, t.colors, t.font, t.transparent, t.fontSizes, t.embedSource, t.title, t.decorative, t.emit);
3446
3912
  }
3447
3913
  };
3448
- function Pi(e) {
3914
+ function Sa(e) {
3449
3915
  return (e.interactivity ?? "static") !== "none";
3450
3916
  }
3451
- function Fi(e) {
3917
+ function Ca(e) {
3452
3918
  return (e.interactivity ?? "static") === "full";
3453
3919
  }
3454
- var Ii = {
3455
- xychart: Mi,
3456
- er: {
3457
- type: "er",
3458
- parse: se,
3459
- layoutForSvg(e, t) {
3460
- return ur(ee(e, t.direction), t);
3461
- },
3462
- renderSvg(e, t) {
3463
- return dr(e, t.colors, t.font, t.transparent, t.fontSizes, t.embedSource, t.title, t.decorative, t.emit);
3464
- }
3920
+ var wa = {
3921
+ type: "class",
3922
+ parse: fe,
3923
+ layoutForSvg: $n,
3924
+ renderSvg(e, t, n) {
3925
+ return nr(e, t.colors, t.font, t.transparent, t.fontSizes, t.embedSource, t.title, t.decorative, Sa(n), t.emit);
3926
+ }
3927
+ }, Ta = {
3928
+ type: "er",
3929
+ parse: pe,
3930
+ layoutForSvg(e, t) {
3931
+ return vr(ee(e, t.direction), t);
3465
3932
  },
3466
- sequence: Ni,
3467
- class: {
3468
- type: "class",
3469
- parse: oe,
3470
- layoutForSvg: Kn,
3471
- renderSvg(e, t, n) {
3472
- return Yn(e, t.colors, t.font, t.transparent, t.fontSizes, t.embedSource, t.title, t.decorative, Pi(n), t.emit);
3473
- }
3933
+ renderSvg(e, t) {
3934
+ return yr(e, t.colors, t.font, t.transparent, t.fontSizes, t.embedSource, t.title, t.decorative, t.emit);
3935
+ }
3936
+ }, Ea = {
3937
+ type: "flowchart",
3938
+ parse: (e, t) => Ki(t),
3939
+ layoutForSvg(e, t) {
3940
+ return {
3941
+ graph: Ft(ee(e, t.direction), t),
3942
+ curve: t.curve ?? e.initConfig?.curve ?? "linear"
3943
+ };
3474
3944
  },
3475
- flowchart: {
3476
- type: "flowchart",
3477
- parse: (e, t) => ai(t),
3945
+ renderSvg(e, t, n) {
3946
+ return Lt(e.graph, t.colors, t.font, t.transparent, t.fontSizes, e.curve, t.embedSource, Ca(n), Sa(n), t.title, t.decorative, t.emit);
3947
+ }
3948
+ }, Da = {
3949
+ type: "c4",
3950
+ parse: de,
3951
+ layoutForSvg(e, t) {
3952
+ return ji(e, t);
3953
+ },
3954
+ renderSvg(e, t) {
3955
+ return Mi(e, t.colors, t.font, t.transparent, t.fontSizes, t.embedSource, t.title, t.decorative, t.emit);
3956
+ }
3957
+ }, Oa = {
3958
+ xychart: ba,
3959
+ er: Ta,
3960
+ sequence: xa,
3961
+ class: wa,
3962
+ flowchart: Ea,
3963
+ architecture: {
3964
+ type: "architecture",
3965
+ parse: ue,
3478
3966
  layoutForSvg(e, t) {
3479
3967
  return {
3480
- graph: Ot(ee(e, t.direction), t),
3481
- curve: t.curve ?? e.initConfig?.curve ?? "linear"
3968
+ graph: Ft(ee(re(e), t.direction), t),
3969
+ curve: t.curve ?? "linear"
3482
3970
  };
3483
3971
  },
3484
- renderSvg(e, t, n) {
3485
- return At(e.graph, t.colors, t.font, t.transparent, t.fontSizes, e.curve, t.embedSource, Fi(n), Pi(n), t.title, t.decorative, t.emit);
3486
- }
3487
- }
3972
+ renderSvg: Ea.renderSvg
3973
+ },
3974
+ c4: Da
3488
3975
  };
3489
3976
  //#endregion
3490
3977
  //#region packages/svg-renderer/src/index.ts
3491
- function Li(t) {
3978
+ function ka(t) {
3492
3979
  return {
3493
3980
  bg: t.bg ?? e.bg,
3494
3981
  fg: t.fg ?? e.fg,
@@ -3499,23 +3986,23 @@ function Li(t) {
3499
3986
  border: t.border
3500
3987
  };
3501
3988
  }
3502
- function Ri(e = {}) {
3503
- return D(Li(e), e.transparent);
3989
+ function Aa(e = {}) {
3990
+ return D(ka(e), e.transparent);
3504
3991
  }
3505
- function zi(e) {
3992
+ function ja(e) {
3506
3993
  return {
3507
3994
  nonce: e.nonce,
3508
3995
  styleAttribute: e.styleAttribute
3509
3996
  };
3510
3997
  }
3511
- function Bi(e, t = {}) {
3512
- let n = Vi(e, t);
3513
- return t.resolveColors ? Vn(n, Li(t)) : n;
3998
+ function Ma(e, t = {}) {
3999
+ let n = Na(e, t);
4000
+ return t.resolveColors ? Jn(n, ka(t)) : n;
3514
4001
  }
3515
- function Vi(e, t) {
3516
- let n = fe(e), i = Li(t), a = t.font ?? "Inter";
4002
+ function Na(e, t) {
4003
+ let n = ve(e), i = ka(t), a = t.font ?? "Inter";
3517
4004
  S(u(a));
3518
- let o = t.transparent ?? !1, s = P(t.fontSizes), c = r(n), l = t.embedSource ? e : void 0, d = t.title, f = t.decorative, p = zi(t), m = C(n), h = Ii[c], g = h.parse(m, n), _ = h.layoutForSvg(g, t), v = {
4005
+ let o = t.transparent ?? !1, s = P(t.fontSizes), c = r(n), l = t.embedSource ? e : void 0, d = t.title, f = t.decorative, p = ja(t), m = C(n), h = Oa[c], g = h.parse(m, n), _ = h.layoutForSvg(g, t), v = {
3519
4006
  colors: i,
3520
4007
  font: a,
3521
4008
  transparent: o,
@@ -3527,11 +4014,11 @@ function Vi(e, t) {
3527
4014
  };
3528
4015
  return h.renderSvg(_, v, t);
3529
4016
  }
3530
- async function Hi(e, t = {}) {
3531
- return Bi(e, t);
4017
+ async function Pa(e, t = {}) {
4018
+ return Ma(e, t);
3532
4019
  }
3533
- var Ui = Bi, Wi = Hi;
4020
+ var Fa = Ma, Ia = Pa;
3534
4021
  //#endregion
3535
- export { z as ARROW_HEAD, W as CLS, je as ELK_DIRECTION_FALLBACK, N as FONT_SIZES, F as FONT_WEIGHTS, ke as GROUP_HEADER_CONTENT_PAD, Fe as INLINE_CENTERED_EDGE_LABEL, De as MONO_FONT, Oe as MONO_FONT_STACK, I as NODE_PADDING, L as STROKE_WIDTHS, R as TEXT_BASELINE_SHIFT, Pe as baseElkLayoutOptions, br as boxLabelHeight, V as buildElkEdge, Ie as buildElkEdgeLabel, B as buildElkLeafNode, Hn as classNoteId, Ze as clipEdgeToShape, kt as convertToElkFormat, Se as createLayoutCache, Me as directionToElk, Te as elkLayoutSync, Ne as elkPadding, Ee as estimateMonoTextWidth, M as estimateTextWidth, Fn as evaluateCssColorValue, ct as extractEdgeLabelPosition, st as extractEdgePoints, Kn as layoutClassDiagramSync, ur as layoutErDiagramSync, Ot as layoutGraphSync, Sr as layoutSequenceDiagram, Fr as layoutXYChart, ve as pointsToPath, Yn as renderClassSvg, dr as renderErSvg, Wi as renderMermaid, Bi as renderMermaidSVG, Hi as renderMermaidSVGAsync, Ui as renderMermaidSync, Cr as renderSequenceSvg, At as renderSvg, Kr as renderXYChartSvg, Vn as resolveCssColors, P as resolveFontSizes, Ri as themeCssVariables, U as withDataSrc };
4022
+ export { z as ARROW_HEAD, U as CLS, Le as ELK_DIRECTION_FALLBACK, N as FONT_SIZES, F as FONT_WEIGHTS, Fe as GROUP_HEADER_CONTENT_PAD, He as INLINE_CENTERED_EDGE_LABEL, Ne as MONO_FONT, Pe as MONO_FONT_STACK, I as NODE_PADDING, L as STROKE_WIDTHS, R as TEXT_BASELINE_SHIFT, Be as baseElkLayoutOptions, kr as boxLabelHeight, B as buildElkEdge, Ue as buildElkEdgeLabel, Ve as buildElkLeafNode, Yn as classNoteId, it as clipEdgeToShape, It as convertToElkFormat, Oe as createLayoutCache, Re as directionToElk, je as elkLayoutSync, ze as elkPadding, Me as estimateMonoTextWidth, M as estimateTextWidth, Hn as evaluateCssColorValue, ht as extractEdgeLabelPosition, mt as extractEdgePoints, $r as formatTickLabels, $n as layoutClassDiagramSync, vr as layoutErDiagramSync, Ft as layoutGraphSync, jr as layoutSequenceDiagram, Wr as layoutXYChart, Qr as niceTickValues, we as pointsToPath, nr as renderClassSvg, yr as renderErSvg, Ia as renderMermaid, Ma as renderMermaidSVG, Pa as renderMermaidSVGAsync, Fa as renderMermaidSync, Mr as renderSequenceSvg, Lt as renderSvg, ni as renderXYChartSvg, Jn as resolveCssColors, P as resolveFontSizes, oi as smoothCurvePath, Aa as themeCssVariables, H as withDataSrc };
3536
4023
 
3537
4024
  //# sourceMappingURL=index.js.map