@zombie-mermaid/svg-renderer 2.2.6 → 3.1.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,97 +1,98 @@
1
- import e from "elkjs/lib/elk.bundled.js";
2
- import { buildStyleBlock as t, escapeAttr as n, escapeXml as r, formatCssColor as i, getReadableTextColor as a, measureMultilineText as o, measureTextWidth as s, mixSrgb as c, parseCssColor as l, renderMultilineText as u, renderMultilineTextWithBackground as d, resolveNodeStyle as f, safeHref as p, sanitizeClassName as m, styleOpenTag as h, svgOpenTag as g } from "@zombie-mermaid/core";
3
- import { CHART_ACCENT_FALLBACK as _, formatClassMember as v, getSeriesColor as y } from "@zombie-mermaid/mermaid-parser";
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
+ 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";
4
5
  //#region packages/svg-renderer/src/edge-curves.ts
5
- function b(e) {
6
- return `M ${e.x} ${e.y}`;
6
+ function pe(e) {
7
+ return s`M ${e.x} ${e.y}`;
7
8
  }
8
- function x(e) {
9
- return b(e[0]) + e.slice(1).map((e) => ` L ${e.x} ${e.y}`).join("");
9
+ function me(e) {
10
+ return pe(e[0]) + e.slice(1).map((e) => s` L ${e.x} ${e.y}`).join("");
10
11
  }
11
- function S(e) {
12
- if (e.length < 3) return x(e);
13
- let t = e[e.length - 1], n = [b(e[0])], r = (e, t, n) => ` C ${(2 * e.x + t.x) / 3} ${(2 * e.y + t.y) / 3}, ${(e.x + 2 * t.x) / 3} ${(e.y + 2 * t.y) / 3}, ${(e.x + 4 * t.x + n.x) / 6} ${(e.y + 4 * t.y + n.y) / 6}`;
14
- n.push(` L ${(5 * e[0].x + e[1].x) / 6} ${(5 * e[0].y + e[1].y) / 6}`);
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}`;
15
+ n.push(s` L ${(5 * e[0].x + e[1].x) / 6}` + s` ${(5 * e[0].y + e[1].y) / 6}`);
15
16
  for (let t = 2; t < e.length; t++) n.push(r(e[t - 2], e[t - 1], e[t]));
16
- return n.push(r(e[e.length - 2], t, t)), n.push(` L ${t.x} ${t.y}`), n.join("");
17
+ return n.push(r(e[e.length - 2], t, t)), n.push(s` L ${t.x} ${t.y}`), n.join("");
17
18
  }
18
- function C(e) {
19
- if (e.length < 3) return x(e);
20
- let t = [b(e[0])];
19
+ function ge(e) {
20
+ if (e.length < 3) return me(e);
21
+ let t = [pe(e[0])];
21
22
  for (let n = 1; n < e.length - 1; n++) {
22
- let r = e[n - 1], i = e[n], a = e[n + 1], o = Math.hypot(i.x - r.x, i.y - r.y), s = Math.hypot(a.x - i.x, a.y - i.y);
23
- if (o === 0 || s === 0) {
24
- t.push(` L ${i.x} ${i.y}`);
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
+ if (o === 0 || c === 0) {
25
+ t.push(s` L ${i.x} ${i.y}`);
25
26
  continue;
26
27
  }
27
- let c = Math.min(12, o / 2, s / 2), l = i.x - (i.x - r.x) / o * c, u = i.y - (i.y - r.y) / o * c, d = i.x + (a.x - i.x) / s * c, f = i.y + (a.y - i.y) / s * c;
28
- t.push(` L ${l} ${u}`), t.push(` Q ${i.x} ${i.y}, ${d} ${f}`);
28
+ let l = Math.min(12, o / 2, c / 2), u = i.x - (i.x - r.x) / o * l, d = i.y - (i.y - r.y) / o * l, f = i.x + (a.x - i.x) / c * l, p = i.y + (a.y - i.y) / c * l;
29
+ t.push(s` L ${u} ${d}`), t.push(s` Q ${i.x} ${i.y}, ${f} ${p}`);
29
30
  }
30
31
  let n = e[e.length - 1];
31
- return t.push(` L ${n.x} ${n.y}`), t.join("");
32
+ return t.push(s` L ${n.x} ${n.y}`), t.join("");
32
33
  }
33
- function w(e, t) {
34
- let n = [b(e[0])], r = e.length - 1;
34
+ function _e(e, t) {
35
+ let n = [pe(e[0])], r = e.length - 1;
35
36
  for (let i = 0; i < r; i++) {
36
37
  let a = e[i], o = e[i + 1];
37
38
  if (i === r - 1) {
38
- n.push(` L ${o.x} ${o.y}`);
39
+ n.push(s` L ${o.x} ${o.y}`);
39
40
  break;
40
41
  }
41
- if (t === "before") n.push(` L ${a.x} ${o.y} L ${o.x} ${o.y}`);
42
- else if (t === "after") n.push(` L ${o.x} ${a.y} L ${o.x} ${o.y}`);
42
+ if (t === "before") n.push(s` L ${a.x} ${o.y} L ${o.x} ${o.y}`);
43
+ else if (t === "after") n.push(s` L ${o.x} ${a.y} L ${o.x} ${o.y}`);
43
44
  else {
44
45
  let e = (a.y + o.y) / 2;
45
- n.push(` L ${a.x} ${e} L ${o.x} ${e} L ${o.x} ${o.y}`);
46
+ n.push(s` L ${a.x} ${e} L ${o.x} ${e} L ${o.x} ${o.y}`);
46
47
  }
47
48
  }
48
49
  return n.join("");
49
50
  }
50
- function T(e, t = "linear") {
51
+ function ve(e, t = "linear") {
51
52
  if (e.length === 0) return "";
52
- if (e.length === 1) return b(e[0]);
53
+ if (e.length === 1) return pe(e[0]);
53
54
  switch (t) {
54
- case "basis": return S(e);
55
- case "natural": return C(e);
56
- case "step": return w(e, "mid");
57
- case "stepBefore": return w(e, "before");
58
- case "stepAfter": return w(e, "after");
59
- default: return x(e);
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);
60
61
  }
61
62
  }
62
63
  //#endregion
63
64
  //#region packages/svg-renderer/src/elk-instance.ts
64
- var E = null, D = null, O = 20;
65
- function k(e = O) {
65
+ var ye = null, be = null, xe = 20;
66
+ function Se(e = xe) {
66
67
  if (!Number.isInteger(e) || e < 1) throw Error(`createLayoutCache: maxSize must be a positive integer, got ${e}`);
67
68
  return {
68
69
  map: /* @__PURE__ */ new Map(),
69
70
  maxSize: e
70
71
  };
71
72
  }
72
- function A(e) {
73
- if (Array.isArray(e)) return `[${e.map(A).join(",")}]`;
73
+ function Ce(e) {
74
+ if (Array.isArray(e)) return `[${e.map(Ce).join(",")}]`;
74
75
  if (typeof e == "object" && e) {
75
76
  let t = e;
76
- return `{${Object.keys(t).sort().map((e) => `${JSON.stringify(e)}:${A(t[e])}`).join(",")}}`;
77
+ return `{${Object.keys(t).sort().map((e) => `${JSON.stringify(e)}:${Ce(t[e])}`).join(",")}}`;
77
78
  }
78
79
  return JSON.stringify(e);
79
80
  }
80
- function j() {
81
- if (E && D) return D;
82
- let t = [], n = globalThis.setTimeout;
83
- globalThis.setTimeout = (e, r) => r === 0 ? (t.push(e), 0) : n(e, r);
84
- let r = globalThis, i = "self" in r, a = r.self;
85
- if (i && r.document === void 0 && delete r.self, E = new e(), !E) throw Error("ELKBundled construction unexpectedly produced no instance");
86
- return i && (r.self = a), globalThis.setTimeout = n, t.forEach((e) => e()), D = E.worker.worker, D;
81
+ function we() {
82
+ if (ye && be) return be;
83
+ let e = [], t = globalThis.setTimeout;
84
+ globalThis.setTimeout = (n, r) => r === 0 ? (e.push(n), 0) : t(n, r);
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;
87
88
  }
88
- function M(e, t) {
89
- let n = t, r = n ? A(e) : void 0;
89
+ function Te(e, t) {
90
+ let n = t, r = n ? Ce(e) : void 0;
90
91
  if (n && r !== void 0) {
91
92
  let e = n.map.get(r);
92
93
  if (e) return n.map.delete(r), n.map.set(r, e), e;
93
94
  }
94
- let i = j(), a, o, s = i.onmessage;
95
+ let i = we(), a, o, s = i.onmessage;
95
96
  if (i.onmessage = (e) => {
96
97
  e.data.error ? o = e.data.error : a = e.data.data;
97
98
  }, i.dispatcher.saveDispatch({ data: {
@@ -108,54 +109,54 @@ function M(e, t) {
108
109
  }
109
110
  //#endregion
110
111
  //#region packages/svg-renderer/src/styles.ts
111
- function N(e, t, n) {
112
- return s(e, t, n);
112
+ function M(e, t, n) {
113
+ return f(e, t, n);
113
114
  }
114
- function P(e, t) {
115
+ function Ee(e, t) {
115
116
  return e.length * t * .6;
116
117
  }
117
- var ee = "'JetBrains Mono'", te = `${ee}, 'SF Mono', 'Fira Code', ui-monospace, monospace`, F = {
118
+ var De = "'JetBrains Mono'", Oe = `${De}, 'SF Mono', 'Fira Code', ui-monospace, monospace`, N = {
118
119
  nodeLabel: 13,
119
120
  edgeLabel: 11,
120
121
  groupHeader: 12
121
122
  };
122
- function I(e) {
123
+ function P(e) {
123
124
  return {
124
- nodeLabel: e?.nodeLabel ?? F.nodeLabel,
125
- edgeLabel: e?.edgeLabel ?? F.edgeLabel,
126
- groupHeader: e?.groupHeader ?? F.groupHeader
125
+ nodeLabel: e?.nodeLabel ?? N.nodeLabel,
126
+ edgeLabel: e?.edgeLabel ?? N.edgeLabel,
127
+ groupHeader: e?.groupHeader ?? N.groupHeader
127
128
  };
128
129
  }
129
- var L = {
130
+ var F = {
130
131
  nodeLabel: 500,
131
132
  edgeLabel: 400,
132
133
  groupHeader: 600
133
- }, ne = 12, R = {
134
+ }, ke = 12, I = {
134
135
  horizontal: 20,
135
136
  vertical: 10,
136
137
  diamondExtra: 24
137
- }, z = {
138
+ }, L = {
138
139
  outerBox: 1,
139
140
  innerBox: .75,
140
141
  connector: 1
141
- }, B = "0.35em", V = {
142
+ }, R = "0.35em", z = {
142
143
  width: 8,
143
144
  height: 5
144
- }, re = {
145
+ }, Ae = {
145
146
  font: "Inter",
146
147
  padding: 40,
147
148
  nodeSpacing: 28,
148
149
  layerSpacing: 48,
149
150
  mergeEdges: !0,
150
151
  thoroughness: 3,
151
- fontSizes: F
152
- }, ie = {
152
+ fontSizes: N
153
+ }, je = {
153
154
  flowchart: "DOWN",
154
155
  state: "DOWN",
155
156
  class: "DOWN",
156
157
  er: "RIGHT"
157
158
  };
158
- function ae(e, t) {
159
+ function Me(e, t) {
159
160
  switch (e) {
160
161
  case "LR": return "RIGHT";
161
162
  case "RL": return "LEFT";
@@ -165,7 +166,7 @@ function ae(e, t) {
165
166
  default: return t;
166
167
  }
167
168
  }
168
- function oe(e) {
169
+ function Ne(e) {
169
170
  let t = typeof e == "number" ? {
170
171
  top: e,
171
172
  left: e,
@@ -174,17 +175,17 @@ function oe(e) {
174
175
  } : e;
175
176
  return `[top=${t.top},left=${t.left},bottom=${t.bottom},right=${t.right}]`;
176
177
  }
177
- function se(e) {
178
+ function Pe(e) {
178
179
  return {
179
180
  "elk.algorithm": "layered",
180
181
  "elk.direction": e.direction,
181
182
  "elk.spacing.nodeNode": String(e.nodeSpacing),
182
183
  "elk.layered.spacing.nodeNodeBetweenLayers": String(e.layerSpacing),
183
- "elk.padding": oe(e.padding),
184
+ "elk.padding": Ne(e.padding),
184
185
  "elk.edgeRouting": "ORTHOGONAL"
185
186
  };
186
187
  }
187
- function H(e, t, n) {
188
+ function B(e, t, n) {
188
189
  let r = {
189
190
  id: e,
190
191
  width: t.width,
@@ -192,34 +193,34 @@ function H(e, t, n) {
192
193
  };
193
194
  return n !== void 0 && (r.labels = [{ text: n }]), r;
194
195
  }
195
- var ce = {
196
+ var Fe = {
196
197
  "elk.edgeLabels.inline": "true",
197
198
  "elk.edgeLabels.placement": "CENTER"
198
199
  };
199
- function le(e, t) {
200
- let n = o(e, t.fontSize, L.edgeLabel), r = {
200
+ function Ie(e, t) {
201
+ let n = d(e, t.fontSize, F.edgeLabel), r = {
201
202
  text: e,
202
203
  width: n.width + 8,
203
204
  height: n.height + 6
204
205
  };
205
206
  return t.layoutOptions && (r.layoutOptions = { ...t.layoutOptions }), r;
206
207
  }
207
- function U(e) {
208
+ function V(e) {
208
209
  let t = {
209
210
  id: e.id,
210
211
  sources: [e.source],
211
212
  targets: [e.target]
212
213
  };
213
- return e.label && (t.labels = [le(e.label, e.labelStyle)]), t;
214
+ return e.label && (t.labels = [Ie(e.label, e.labelStyle)]), t;
214
215
  }
215
216
  //#endregion
216
217
  //#region packages/svg-renderer/src/layout-engine/to-elk.ts
217
- function ue(e) {
218
- return ae(e, ie.flowchart);
218
+ function Le(e) {
219
+ return Me(e, je.flowchart);
219
220
  }
220
- function de(e) {
221
+ function Re(e) {
221
222
  return {
222
- ...se(e),
223
+ ...Pe(e),
223
224
  "elk.spacing.edgeEdge": "12",
224
225
  "elk.layered.spacing.edgeEdgeBetweenLayers": "12",
225
226
  "elk.layered.spacing.edgeNodeBetweenLayers": "12",
@@ -227,46 +228,46 @@ function de(e) {
227
228
  "elk.contentAlignment": "H_CENTER V_CENTER"
228
229
  };
229
230
  }
230
- function fe(e) {
231
+ function ze(e) {
231
232
  return {
232
233
  fontSize: e.fontSizes.edgeLabel,
233
- layoutOptions: ce
234
+ layoutOptions: Fe
234
235
  };
235
236
  }
236
- function pe(e, t, n, r) {
237
- let i = o(t, r, L.nodeLabel), a = i.width + R.horizontal * 2, s = i.height + R.vertical * 2;
237
+ function Be(e, t, n, r) {
238
+ let i = d(t, r, F.nodeLabel), a = i.width + I.horizontal * 2, o = i.height + I.vertical * 2;
238
239
  if (n === "diamond") {
239
- let e = Math.max(a, s) + R.diamondExtra;
240
- a = e, s = e;
240
+ let e = Math.max(a, o) + I.diamondExtra;
241
+ a = e, o = e;
241
242
  }
242
243
  if (n === "circle" || n === "doublecircle") {
243
- let e = Math.ceil(Math.sqrt(a * a + s * s)) + 8;
244
- a = n === "doublecircle" ? e + 12 : e, s = a;
244
+ let e = Math.ceil(Math.sqrt(a * a + o * o)) + 8;
245
+ a = n === "doublecircle" ? e + 12 : e, o = a;
245
246
  }
246
- return n === "hexagon" && (a += R.horizontal), (n === "trapezoid" || n === "trapezoid-alt" || n === "parallelogram" || n === "parallelogram-alt") && (a += R.horizontal), n === "asymmetric" && (a += 12), n === "cylinder" && (s += 14), n === "state-start" || n === "state-end" ? {
247
+ return n === "hexagon" && (a += I.horizontal), (n === "trapezoid" || n === "trapezoid-alt" || n === "parallelogram" || n === "parallelogram-alt") && (a += I.horizontal), n === "asymmetric" && (a += 12), n === "cylinder" && (o += 14), n === "state-start" || n === "state-end" ? {
247
248
  width: 28,
248
249
  height: 28
249
- } : (a = Math.max(a, 60), s = Math.max(s, 36), {
250
+ } : (a = Math.max(a, 60), o = Math.max(o, 36), {
250
251
  width: a,
251
- height: s
252
+ height: o
252
253
  });
253
254
  }
254
- var me = " root";
255
- function he(e) {
256
- for (let t of e) if (t.direction !== void 0 || he(t.children)) return !0;
255
+ var Ve = " root";
256
+ function He(e) {
257
+ for (let t of e) if (t.direction !== void 0 || He(t.children)) return !0;
257
258
  return !1;
258
259
  }
259
- function ge(e, t) {
260
+ function Ue(e, t) {
260
261
  for (let n of e.nodeIds) t.add(n);
261
- for (let n of e.children) ge(n, t);
262
+ for (let n of e.children) Ue(n, t);
262
263
  }
263
- function _e(e, t) {
264
+ function We(e, t) {
264
265
  let n = /* @__PURE__ */ new Set();
265
- if (ge(e, n), n.size === 0) return !0;
266
+ if (Ue(e, n), n.size === 0) return !0;
266
267
  let r = (t) => n.has(t) || t === e.id;
267
268
  return !t.edges.some((e) => r(e.source) !== r(e.target));
268
269
  }
269
- function ve(e) {
270
+ function Ge(e) {
270
271
  let t = /* @__PURE__ */ new Map();
271
272
  function n(e, r) {
272
273
  let i = [...r, e.id];
@@ -276,15 +277,15 @@ function ve(e) {
276
277
  for (let t of e) n(t, []);
277
278
  return t;
278
279
  }
279
- function ye(e, t) {
280
+ function Ke(e, t) {
280
281
  let n = 0;
281
282
  for (; n < e.length && n < t.length && e[n] === t[n];) n++;
282
283
  return n;
283
284
  }
284
- function be(e, t) {
285
+ function qe(e, t) {
285
286
  let n = /* @__PURE__ */ new Set(), r = /* @__PURE__ */ new Set();
286
- for (let t of e.subgraphs) r.add(t.id), Se(t, n, r);
287
- let i = Ce(e.subgraphs), a = ve(e.subgraphs), o = (e) => e ? a.get(e) ?? [] : [], s = /* @__PURE__ */ new Map();
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
289
  s.set(null, []);
289
290
  let c = [];
290
291
  for (let t = 0; t < e.edges.length; t++) {
@@ -305,14 +306,14 @@ function be(e, t) {
305
306
  tgtChain: o(a)
306
307
  });
307
308
  }
308
- let l = he(e.subgraphs), u = [], d = [], f = {
309
- ...de({
310
- direction: ue(e.direction),
309
+ let l = He(e.subgraphs), u = [], d = [], f = {
310
+ ...Re({
311
+ direction: Le(e.direction),
311
312
  nodeSpacing: t.nodeSpacing,
312
313
  layerSpacing: t.layerSpacing,
313
314
  padding: t.padding
314
315
  }),
315
- "elk.layered.thoroughness": String(re.thoroughness),
316
+ "elk.layered.thoroughness": String(Ae.thoroughness),
316
317
  "elk.layered.highDegreeNodes.treatment": "true",
317
318
  "elk.layered.highDegreeNodes.threshold": "8",
318
319
  "elk.layered.compaction.postCompaction.strategy": "LEFT_RIGHT_CONSTRAINT_LOCKING",
@@ -329,7 +330,7 @@ function be(e, t) {
329
330
  m.set(e, n), n.push(t);
330
331
  }
331
332
  if (l) for (let { index: e, edge: n, srcChain: r, tgtChain: i } of c) {
332
- let a = ye(r, i), o = n.source;
333
+ let a = Ke(r, i), o = n.source;
333
334
  if (r.length > a) {
334
335
  for (let t = r.length - 1; t >= a; t--) {
335
336
  let i = r[t], a = `${i}_out_${e}`;
@@ -357,33 +358,33 @@ function be(e, t) {
357
358
  }
358
359
  s = `${i[a]}_in_${e}`;
359
360
  }
360
- g(a > 0 ? r[a - 1] : me, U({
361
+ g(a > 0 ? r[a - 1] : Ve, V({
361
362
  id: `e${e}`,
362
363
  source: o,
363
364
  target: s,
364
365
  label: n.label,
365
- labelStyle: fe(t)
366
+ labelStyle: ze(t)
366
367
  }));
367
368
  }
368
369
  for (let [i, a] of e.nodes) if (!n.has(i) && !r.has(i)) {
369
- let e = pe(i, a.label, a.shape, t.fontSizes.nodeLabel);
370
- u.push(H(i, e, a.label));
370
+ let e = Be(i, a.label, a.shape, t.fontSizes.nodeLabel);
371
+ u.push(B(i, e, a.label));
371
372
  }
372
- for (let n of [...e.subgraphs].reverse()) u.push(xe(n, e, t, s, p, m, e.direction));
373
- for (let { index: e, edge: n } of s.get(null)) n.source !== n.target && d.push(U({
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
375
  id: `e${e}`,
375
376
  source: n.source,
376
377
  target: n.target,
377
378
  label: n.label,
378
- labelStyle: fe(t)
379
+ labelStyle: ze(t)
379
380
  }));
380
- if (l) for (let e of m.get(me) ?? []) d.push(e);
381
- else for (let { index: e, edge: n } of c) d.push(U({
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
383
  id: `e${e}`,
383
384
  source: n.source,
384
385
  target: n.target,
385
386
  label: n.label,
386
- labelStyle: fe(t)
387
+ labelStyle: ze(t)
387
388
  }));
388
389
  return {
389
390
  id: "root",
@@ -392,9 +393,9 @@ function be(e, t) {
392
393
  edges: d
393
394
  };
394
395
  }
395
- function xe(e, t, n, r, i, a, o) {
396
- let s = e.direction !== void 0 && _e(e, t) ? e.direction : o, c = de({
397
- direction: ue(s),
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),
398
399
  nodeSpacing: n.nodeSpacing,
399
400
  layerSpacing: n.layerSpacing,
400
401
  padding: {
@@ -409,18 +410,18 @@ function xe(e, t, n, r, i, a, o) {
409
410
  for (let r of e.nodeIds) {
410
411
  let e = t.nodes.get(r);
411
412
  if (e) {
412
- let t = pe(r, e.label, e.shape, n.fontSizes.nodeLabel);
413
- d.push(H(r, t, e.label));
413
+ let t = Be(r, e.label, e.shape, n.fontSizes.nodeLabel);
414
+ d.push(B(r, t, e.label));
414
415
  }
415
416
  }
416
- for (let o of [...e.children].reverse()) d.push(xe(o, t, n, r, i, a, s));
417
+ for (let o of [...e.children].reverse()) d.push(Je(o, t, n, r, i, a, s));
417
418
  let f = [], p = r.get(e.id) ?? [];
418
- for (let { index: e, edge: t } of p) t.source !== t.target && f.push(U({
419
+ for (let { index: e, edge: t } of p) t.source !== t.target && f.push(V({
419
420
  id: `e${e}`,
420
421
  source: t.source,
421
422
  target: t.target,
422
423
  label: t.label,
423
- labelStyle: fe(n)
424
+ labelStyle: ze(n)
424
425
  }));
425
426
  for (let t of a.get(e.id) ?? []) f.push(t);
426
427
  return {
@@ -432,11 +433,11 @@ function xe(e, t, n, r, i, a, o) {
432
433
  edges: f
433
434
  };
434
435
  }
435
- function Se(e, t, n) {
436
+ function Ye(e, t, n) {
436
437
  for (let n of e.nodeIds) t.add(n);
437
- for (let r of e.children) n.add(r.id), Se(r, t, n);
438
+ for (let r of e.children) n.add(r.id), Ye(r, t, n);
438
439
  }
439
- function Ce(e) {
440
+ function Xe(e) {
440
441
  let t = /* @__PURE__ */ new Map();
441
442
  function n(e) {
442
443
  for (let n of e.nodeIds) t.set(n, e.id);
@@ -447,19 +448,19 @@ function Ce(e) {
447
448
  }
448
449
  //#endregion
449
450
  //#region packages/svg-renderer/src/shape-clipping.ts
450
- function we(e, t, n) {
451
+ function Ze(e, t, n) {
451
452
  if (e.length < 2 || t.shape === "rectangle" || t.shape === "rounded" || t.shape === "stadium") return e;
452
453
  let r = [...e];
453
454
  if (t.shape === "diamond") {
454
- if (n) r[0] = Te(e[0], e[1], t);
455
+ if (n) r[0] = Qe(e[0], e[1], t);
455
456
  else {
456
457
  let n = e.length - 1;
457
- r[n] = Te(e[n], e[n - 1], t);
458
+ r[n] = Qe(e[n], e[n - 1], t);
458
459
  }
459
460
  }
460
461
  return r;
461
462
  }
462
- function Te(e, t, n) {
463
+ function Qe(e, t, n) {
463
464
  let r = n.x + n.width / 2, i = n.y + n.height / 2, a = {
464
465
  x: r,
465
466
  y: n.y
@@ -475,14 +476,14 @@ function Te(e, t, n) {
475
476
  }, l = e.x - t.x, u = e.y - t.y;
476
477
  if (Math.abs(l) < Math.abs(u)) {
477
478
  let t = e.x;
478
- return u > 0 ? t <= r ? De(t, c, a) ?? a : De(t, a, o) ?? a : t <= r ? De(t, s, c) ?? s : De(t, o, s) ?? s;
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;
479
480
  }
480
481
  {
481
482
  let t = e.y;
482
- return l > 0 ? t <= i ? Ee(t, a, c) ?? c : Ee(t, c, s) ?? c : t <= i ? Ee(t, a, o) ?? o : Ee(t, o, s) ?? o;
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;
483
484
  }
484
485
  }
485
- function Ee(e, t, n) {
486
+ function $e(e, t, n) {
486
487
  let r = n.y - t.y;
487
488
  if (Math.abs(r) < .001) return null;
488
489
  let i = (e - t.y) / r;
@@ -491,7 +492,7 @@ function Ee(e, t, n) {
491
492
  y: e
492
493
  };
493
494
  }
494
- function De(e, t, n) {
495
+ function et(e, t, n) {
495
496
  let r = n.x - t.x;
496
497
  if (Math.abs(r) < .001) return null;
497
498
  let i = (e - t.x) / r;
@@ -502,11 +503,11 @@ function De(e, t, n) {
502
503
  }
503
504
  //#endregion
504
505
  //#region packages/svg-renderer/src/layout-engine/layer-alignment.ts
505
- function Oe(e, t, n) {
506
+ function tt(e, t, n) {
506
507
  if (e.length === 0) return;
507
508
  let r = n === "LR" || n === "RL", i = /* @__PURE__ */ new Set();
508
509
  for (let e of t) i.add(`${e.source}:${e.target}`), i.add(`${e.target}:${e.source}`);
509
- let a = re.layerSpacing * .6, o = [...e].sort((e, t) => r ? e.x - t.x : e.y - t.y), s = [], c = [o[0]];
510
+ let a = Ae.layerSpacing * .6, o = [...e].sort((e, t) => r ? e.x - t.x : e.y - t.y), s = [], c = [o[0]];
510
511
  for (let e = 1; e < o.length; e++) {
511
512
  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}`));
512
513
  t <= a && !n ? c.push(o[e]) : (s.push(c), c = [o[e]]);
@@ -546,28 +547,28 @@ function Oe(e, t, n) {
546
547
  }
547
548
  //#endregion
548
549
  //#region packages/svg-renderer/src/layout-engine/edge-bundling.ts
549
- var ke = .5;
550
- function Ae(e, t, n) {
550
+ var nt = .5;
551
+ function rt(e, t, n) {
551
552
  for (let r = 0; r < e.length - 1; r++) {
552
553
  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);
553
554
  for (let e of t) {
554
555
  if (n.has(e.id)) continue;
555
- let t = e.x + ke, r = e.x + e.width - ke, i = e.y + ke, a = e.y + e.height - ke;
556
+ let t = e.x + nt, r = e.x + e.width - nt, i = e.y + nt, a = e.y + e.height - nt;
556
557
  if (!(t >= r || i >= a) && o < r && s > t && c < a && l > i) return !1;
557
558
  }
558
559
  }
559
560
  return !0;
560
561
  }
561
- function je(e, t, n) {
562
+ function it(e, t, n) {
562
563
  let r = [];
563
- 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(...je(e, t, i.children)));
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)));
564
565
  return r;
565
566
  }
566
- function Me(e, t, n, r, i) {
567
- let a = i === "LR", o = i === "RL", s = i === "BT", c = a || o, l = new Set(je(t, n, r).map((e) => e.id)), u = je(c ? e : t, c ? n : e, r).find((e) => !l.has(e.id));
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
569
  return u ? a ? u.x - 12 : o ? u.x + u.width + 12 : s ? u.y + u.height + 12 : u.y - 12 : e;
569
570
  }
570
- function Ne(e, t, n, r) {
571
+ function ot(e, t, n, r) {
571
572
  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();
572
573
  for (let t of e) {
573
574
  if (t.source === t.target) continue;
@@ -592,7 +593,7 @@ function Ne(e, t, n, r) {
592
593
  let m = f.x + f.width / 2, h = f.y + f.height / 2;
593
594
  if (l) {
594
595
  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;
595
- c = Me(c, m, h, n, r);
596
+ c = at(c, m, h, n, r);
596
597
  let l = [];
597
598
  for (let { edge: n, node: r } of p) {
598
599
  let a = o ? r.x : r.x + r.width, u = r.y + r.height / 2, d = [
@@ -613,7 +614,7 @@ function Ne(e, t, n, r) {
613
614
  y: u
614
615
  }
615
616
  ];
616
- Ae(d, t, /* @__PURE__ */ new Set([e, r.id])) && l.push({
617
+ rt(d, t, /* @__PURE__ */ new Set([e, r.id])) && l.push({
617
618
  edge: n,
618
619
  points: d
619
620
  });
@@ -622,7 +623,7 @@ function Ne(e, t, n, r) {
622
623
  for (let { edge: e, points: t } of l) e.points = t, a.add(e);
623
624
  } else {
624
625
  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;
625
- s = Me(s, m, h, n, r);
626
+ s = at(s, m, h, n, r);
626
627
  let l = [];
627
628
  for (let { edge: n, node: r } of p) {
628
629
  let a = r.x + r.width / 2, u = c ? r.y + r.height : r.y, d = [
@@ -643,7 +644,7 @@ function Ne(e, t, n, r) {
643
644
  y: u
644
645
  }
645
646
  ];
646
- Ae(d, t, /* @__PURE__ */ new Set([e, r.id])) && l.push({
647
+ rt(d, t, /* @__PURE__ */ new Set([e, r.id])) && l.push({
647
648
  edge: n,
648
649
  points: d
649
650
  });
@@ -676,7 +677,7 @@ function Ne(e, t, n, r) {
676
677
  let p = d.x + d.width / 2, m = d.y + d.height / 2;
677
678
  if (l) {
678
679
  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;
679
- c = Me(c, p, m, n, r);
680
+ c = at(c, p, m, n, r);
680
681
  let l = [];
681
682
  for (let { edge: n, node: r } of f) {
682
683
  let s = o ? r.x + r.width : r.x, u = r.y + r.height / 2, d = [
@@ -697,7 +698,7 @@ function Ne(e, t, n, r) {
697
698
  y: a
698
699
  }
699
700
  ];
700
- Ae(d, t, /* @__PURE__ */ new Set([r.id, e])) && l.push({
701
+ rt(d, t, /* @__PURE__ */ new Set([r.id, e])) && l.push({
701
702
  edge: n,
702
703
  points: d
703
704
  });
@@ -706,7 +707,7 @@ function Ne(e, t, n, r) {
706
707
  for (let { edge: e, points: t } of l) e.points = t;
707
708
  } else {
708
709
  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;
709
- s = Me(s, p, m, n, r);
710
+ s = at(s, p, m, n, r);
710
711
  let l = [];
711
712
  for (let { edge: n, node: r } of f) {
712
713
  let o = r.x + r.width / 2, u = [
@@ -727,7 +728,7 @@ function Ne(e, t, n, r) {
727
728
  y: a
728
729
  }
729
730
  ];
730
- Ae(u, t, /* @__PURE__ */ new Set([r.id, e])) && l.push({
731
+ rt(u, t, /* @__PURE__ */ new Set([r.id, e])) && l.push({
731
732
  edge: n,
732
733
  points: u
733
734
  });
@@ -739,7 +740,7 @@ function Ne(e, t, n, r) {
739
740
  }
740
741
  //#endregion
741
742
  //#region packages/svg-renderer/src/layout-engine/elk-adapter-utils.ts
742
- function Pe(e, t = 0, n = 0) {
743
+ function st(e, t = 0, n = 0) {
743
744
  let r = [];
744
745
  if (!e.sections || e.sections.length === 0) return r;
745
746
  let i = e.sections[0];
@@ -755,7 +756,7 @@ function Pe(e, t = 0, n = 0) {
755
756
  y: i.endPoint.y + n
756
757
  }), r;
757
758
  }
758
- function Fe(e, t = 0, n = 0) {
759
+ function ct(e, t = 0, n = 0) {
759
760
  if (!e.labels || e.labels.length === 0) return;
760
761
  let r = e.labels[0];
761
762
  if (r.x != null && r.y != null) return {
@@ -765,11 +766,11 @@ function Fe(e, t = 0, n = 0) {
765
766
  }
766
767
  //#endregion
767
768
  //#region packages/svg-renderer/src/layout-engine/from-elk.ts
768
- var Ie = 16, Le = 28, Re = 18, ze = 28, Be = 10;
769
- function Ve(e, t) {
770
- let n = e.x + e.width, r = e.y + e.height / 2, i = Math.min(ze, e.height * .6) / 2, a = Le + t * Re, o = [];
771
- for (let e = 0; e <= Ie; e++) {
772
- let t = Math.PI * e / Ie;
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;
773
774
  o.push({
774
775
  x: n + a * Math.sin(t),
775
776
  y: r - i * Math.cos(t)
@@ -778,12 +779,12 @@ function Ve(e, t) {
778
779
  return {
779
780
  points: o,
780
781
  labelPosition: {
781
- x: n + a + Be,
782
+ x: n + a + pt,
782
783
  y: r
783
784
  }
784
785
  };
785
786
  }
786
- function He(e, t, n) {
787
+ function ht(e, t, n) {
787
788
  let r = /* @__PURE__ */ new Map();
788
789
  for (let i = 0; i < e.edges.length; i++) {
789
790
  let a = e.edges[i];
@@ -792,7 +793,7 @@ function He(e, t, n) {
792
793
  if (!o) continue;
793
794
  let s = r.get(o.id) ?? 0;
794
795
  r.set(o.id, s + 1);
795
- let { points: c, labelPosition: l } = Ve(o, s);
796
+ let { points: c, labelPosition: l } = mt(o, s);
796
797
  n.push({
797
798
  source: a.source,
798
799
  target: a.target,
@@ -802,38 +803,38 @@ function He(e, t, n) {
802
803
  hasArrowEnd: a.hasArrowEnd,
803
804
  points: c,
804
805
  labelPosition: a.label ? l : void 0,
805
- inlineStyle: $e(i, e),
806
+ inlineStyle: Dt(i, e),
806
807
  id: a.id,
807
808
  animate: a.animate
808
809
  });
809
810
  }
810
811
  }
811
- function Ue(e) {
812
+ function gt(e) {
812
813
  let t = [];
813
814
  for (let n of e) t.push({
814
815
  x: n.x,
815
816
  y: n.y,
816
817
  right: n.x + n.width,
817
818
  bottom: n.y + n.height
818
- }), t.push(...Ue(n.children));
819
+ }), t.push(...gt(n.children));
819
820
  return t;
820
821
  }
821
- function We(e, t, n = !1) {
822
+ function _t(e, t, n = !1) {
822
823
  let r = [], i = [], a = [], o = /* @__PURE__ */ new Set();
823
- for (let e of t.subgraphs) Qe(e, o);
824
- Ge(e, t, o, r, a, 0, 0);
825
- let s = Ue(a);
826
- Je(e, t, i, 0, 0, s.length > 0 ? {
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 ? {
827
828
  leftX: Math.min(...s.map((e) => e.x)) - 20,
828
829
  rightX: Math.max(...s.map((e) => e.right)) + 20
829
- } : void 0), Oe(r, i, t.direction);
830
+ } : void 0), tt(r, i, t.direction);
830
831
  let c = new Map(r.map((e) => [e.id, e]));
831
- He(t, c, i), n && Ne(i, r, a, t.direction);
832
+ ht(t, c, i), n && ot(i, r, a, t.direction);
832
833
  for (let e of i) {
833
834
  let t = c.get(e.source), n = c.get(e.target);
834
- t && (e.points = we(e.points, t, !0)), n && (e.points = we(e.points, n, !1));
835
+ t && (e.points = Ze(e.points, t, !0)), n && (e.points = Ze(e.points, n, !1));
835
836
  }
836
- let l = e.width ?? 800, u = e.height ?? 600, d = V.width, f = re.padding;
837
+ let l = e.width ?? 800, u = e.height ?? 600, d = z.width, f = Ae.padding;
837
838
  for (let e of i) {
838
839
  for (let t of e.points) l = Math.max(l, t.x + d + f), u = Math.max(u, t.y + d + f);
839
840
  e.labelPosition && (l = Math.max(l, e.labelPosition.x + 60 + f), u = Math.max(u, e.labelPosition.y + 20 + f));
@@ -846,13 +847,13 @@ function We(e, t, n = !1) {
846
847
  groups: a
847
848
  };
848
849
  }
849
- function Ge(e, t, n, r, i, a, o) {
850
+ function vt(e, t, n, r, i, a, o) {
850
851
  if (e.children) for (let s of e.children) {
851
852
  let e = (s.x ?? 0) + a, c = (s.y ?? 0) + o, l = s.width ?? 0, u = s.height ?? 0;
852
853
  if (n.has(s.id)) {
853
854
  let a = [];
854
- Ge(s, t, n, r, a, e, c);
855
- let o = Ze(t.subgraphs, s.id);
855
+ vt(s, t, n, r, a, e, c);
856
+ let o = Tt(t.subgraphs, s.id);
856
857
  i.push({
857
858
  id: s.id,
858
859
  label: o?.label ?? "",
@@ -865,7 +866,7 @@ function Ge(e, t, n, r, i, a, o) {
865
866
  } else {
866
867
  let a = t.nodes.get(s.id);
867
868
  if (a) {
868
- let n = f(s.id, t), i = t.classAssignments.get(s.id);
869
+ let n = y(s.id, t), i = t.classAssignments.get(s.id);
869
870
  r.push({
870
871
  id: s.id,
871
872
  label: a.label,
@@ -879,11 +880,11 @@ function Ge(e, t, n, r, i, a, o) {
879
880
  interaction: t.interactions.get(s.id)
880
881
  });
881
882
  }
882
- s.children && s.children.length > 0 && Ge(s, t, n, r, i, e, c);
883
+ s.children && s.children.length > 0 && vt(s, t, n, r, i, e, c);
883
884
  }
884
885
  }
885
886
  }
886
- function Ke(e) {
887
+ function yt(e) {
887
888
  let t = /^e(\d+)$/.exec(e);
888
889
  if (t) return {
889
890
  edgeIndex: parseInt(t[1], 10),
@@ -896,7 +897,7 @@ function Ke(e) {
896
897
  level: parseInt(n[3], 10)
897
898
  };
898
899
  }
899
- function qe(e) {
900
+ function bt(e) {
900
901
  if (e.length === 0) return {
901
902
  x: 0,
902
903
  y: 0
@@ -921,24 +922,26 @@ function qe(e) {
921
922
  }
922
923
  return e[e.length - 1];
923
924
  }
924
- function Je(e, t, n, r, i, a) {
925
+ function xt(e, t, n, r, i, a) {
925
926
  let o = /* @__PURE__ */ new Map();
926
- Xe(e, o, 0, 0);
927
- let s = 0;
928
- for (let [e, r] of o) {
927
+ St(e, o, 0, 0);
928
+ let s = /* @__PURE__ */ new Map();
929
+ wt(e, s, 0, 0, o);
930
+ let c = 0;
931
+ for (let [e, r] of s) {
929
932
  let i = t.edges[e];
930
933
  if (!i) continue;
931
- let o = [], c = (e) => {
934
+ let o = [], s = (e) => {
932
935
  !e || e.points.length === 0 || (o.length > 0 ? o.push(...e.points.slice(1)) : o.push(...e.points));
933
936
  }, l = [...r.sourceHops.keys()].sort((e, t) => t - e);
934
- for (let e of l) c(r.sourceHops.get(e));
935
- c(r.bridge);
937
+ for (let e of l) s(r.sourceHops.get(e));
938
+ s(r.bridge);
936
939
  let u = [...r.targetHops.keys()].sort((e, t) => e - t);
937
- for (let e of u) c(r.targetHops.get(e));
940
+ for (let e of u) s(r.targetHops.get(e));
938
941
  let d;
939
- i.label && o.length >= 2 && (d = r.bridge?.labelPosition ?? qe(o));
940
- let f = Ye(o, a, s);
941
- f !== o && s++, i.label && f !== o && f.length >= 2 && (d = qe(f)), n.push({
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({
942
945
  source: i.source,
943
946
  target: i.target,
944
947
  label: i.label,
@@ -947,13 +950,24 @@ function Je(e, t, n, r, i, a) {
947
950
  hasArrowEnd: i.hasArrowEnd,
948
951
  points: f,
949
952
  labelPosition: d,
950
- inlineStyle: $e(e, t),
953
+ inlineStyle: Dt(e, t),
951
954
  id: i.id,
952
955
  animate: i.animate
953
956
  });
954
957
  }
955
958
  }
956
- function Ye(e, t, n = 0) {
959
+ function St(e, t, n, r) {
960
+ t.set(e.id, {
961
+ x: n,
962
+ y: r
963
+ });
964
+ for (let i of e.children ?? []) {
965
+ /* v8 ignore next */
966
+ let e = i.x ?? 0, a = i.y ?? 0;
967
+ St(i, t, n + e, r + a);
968
+ }
969
+ }
970
+ function Ct(e, t, n = 0) {
957
971
  if (e.length < 2) return e;
958
972
  let r = !1;
959
973
  for (let t = 1; t < e.length; t++) {
@@ -992,36 +1006,36 @@ function Ye(e, t, n = 0) {
992
1006
  }
993
1007
  return i;
994
1008
  }
995
- function Xe(e, t, n, r) {
996
- if (e.edges) for (let i of e.edges) {
997
- let e = Ke(i.id);
1009
+ function wt(e, t, n, r, i) {
1010
+ if (e.edges) for (let a of e.edges) {
1011
+ let e = yt(a.id);
998
1012
  if (!e) continue;
999
- let { edgeIndex: a } = e, o = Pe(i, n, r), s = Fe(i, n, r), c = t.get(a) ?? {
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) ?? {
1000
1014
  sourceHops: /* @__PURE__ */ new Map(),
1001
1015
  targetHops: /* @__PURE__ */ new Map()
1002
1016
  };
1003
- t.set(a, c);
1004
- let l = {
1005
- edgeIndex: a,
1006
- points: o,
1007
- labelPosition: s
1017
+ t.set(o, p);
1018
+ let m = {
1019
+ edgeIndex: o,
1020
+ points: d,
1021
+ labelPosition: f
1008
1022
  };
1009
- e.role === "bridge" ? c.bridge = l : e.role === "source" ? c.sourceHops.set(e.level, l) : c.targetHops.set(e.level, l);
1023
+ e.role === "bridge" ? p.bridge = m : e.role === "source" ? p.sourceHops.set(e.level, m) : p.targetHops.set(e.level, m);
1010
1024
  }
1011
- if (e.children) for (let i of e.children) Xe(i, t, n + (i.x ?? 0), r + (i.y ?? 0));
1025
+ if (e.children) for (let a of e.children) wt(a, t, n + (a.x ?? 0), r + (a.y ?? 0), i);
1012
1026
  }
1013
- function Ze(e, t) {
1027
+ function Tt(e, t) {
1014
1028
  for (let n of e) {
1015
1029
  if (n.id === t) return n;
1016
- let e = Ze(n.children, t);
1030
+ let e = Tt(n.children, t);
1017
1031
  if (e) return e;
1018
1032
  }
1019
1033
  }
1020
- function Qe(e, t) {
1034
+ function Et(e, t) {
1021
1035
  t.add(e.id);
1022
- for (let n of e.children) Qe(n, t);
1036
+ for (let n of e.children) Et(n, t);
1023
1037
  }
1024
- function $e(e, t) {
1038
+ function Dt(e, t) {
1025
1039
  let n, r = t.linkStyles.get("default");
1026
1040
  r && (n = { ...r });
1027
1041
  let i = t.linkStyles.get(e);
@@ -1032,39 +1046,39 @@ function $e(e, t) {
1032
1046
  }
1033
1047
  //#endregion
1034
1048
  //#region packages/svg-renderer/src/layout-engine.ts
1035
- function et(e, t = {}) {
1049
+ function Ot(e, t = {}) {
1036
1050
  let n = {
1037
- ...re,
1051
+ ...Ae,
1038
1052
  ...t,
1039
- fontSizes: I(t.fontSizes)
1053
+ fontSizes: P(t.fontSizes)
1040
1054
  };
1041
- return We(M(be(e, n), t.layoutCache), e, n.mergeEdges);
1055
+ return _t(Te(qe(e, n), t.layoutCache), e, n.mergeEdges);
1042
1056
  }
1043
- function tt(e, t = {}) {
1044
- return be(e, {
1045
- ...re,
1057
+ function kt(e, t = {}) {
1058
+ return qe(e, {
1059
+ ...Ae,
1046
1060
  ...t,
1047
- fontSizes: I(t.fontSizes)
1061
+ fontSizes: P(t.fontSizes)
1048
1062
  });
1049
1063
  }
1050
1064
  //#endregion
1051
1065
  //#region packages/svg-renderer/src/renderer.ts
1052
- function nt(e, n, r = "Inter", i = !1, a = F, o = "linear", s, c = !0, l = !0, u, d, f = {}) {
1053
- let m = [], h = l && e.nodes.some((e) => !!p(e.interaction?.href));
1054
- m.push(G(g(e.width, e.height, n, i, u, d, h, f.styleAttribute), s)), m.push(t(r, !1, f.nonce)), c && e.edges.some((e) => e.animate) && m.push(rt(f.nonce)), m.push("<defs>"), m.push(it());
1055
- let _ = /* @__PURE__ */ new Set();
1056
- for (let t of e.edges) t.inlineStyle?.stroke && _.add(t.inlineStyle.stroke);
1057
- for (let e of _) m.push(at(e));
1058
- m.push("</defs>");
1059
- for (let t of e.groups) m.push(ct(t, r, a));
1060
- for (let t of e.edges) m.push(lt(t, o, c));
1061
- for (let t of e.edges) t.label && m.push(dt(t, r, a));
1062
- for (let t of e.nodes) m.push(ht(t, r, a, l));
1063
- return m.push("</svg>"), m.join("\n");
1064
- }
1065
- function rt(e) {
1066
+ function At(e, t, r = "Inter", i = !1, a = N, o = "linear", s, c = !0, l = !0, u, d, f = {}) {
1067
+ 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
+ let h = /* @__PURE__ */ new Set();
1070
+ 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
+ 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));
1077
+ return p.push("</svg>"), p.join("\n");
1078
+ }
1079
+ function jt(e) {
1066
1080
  return [
1067
- h(e),
1081
+ T(e),
1068
1082
  " @keyframes zm-edge-dash { to { stroke-dashoffset: -28; } }",
1069
1083
  " .edge-animated { animation: zm-edge-dash 1s linear infinite; }",
1070
1084
  " @media (prefers-reduced-motion: reduce) {",
@@ -1073,67 +1087,67 @@ function rt(e) {
1073
1087
  "</style>"
1074
1088
  ].join("\n");
1075
1089
  }
1076
- function it() {
1077
- return ot("var(--_arrow)", "");
1090
+ function Mt() {
1091
+ return Pt("var(--_arrow)", "");
1078
1092
  }
1079
- function at(e) {
1080
- return ot(n(e), `-${st(e)}`);
1093
+ function Nt(e) {
1094
+ return Pt(i(e), s`-${Ft(e)}`);
1081
1095
  }
1082
- function ot(e, t) {
1083
- let n = V.width, r = V.height, i = n - 1, a = `fill="${e}" stroke="${e}" stroke-width="0.75" stroke-linejoin="round"`, o = `<polygon points="0 0, ${n} ${r / 2}, 0 ${r}" ${a} />`, s = (e, t) => ` <marker id="${e}" markerWidth="${n}" markerHeight="${r}" refX="${i}" refY="${r / 2}" orient="${t}">\n ${o}\n </marker>`;
1084
- return s(`arrowhead${t}`, "auto") + "\n" + s(`arrowhead-start${t}`, "auto-start-reverse");
1096
+ function Pt(e, t) {
1097
+ 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
+ return c(s`arrowhead${t}`, "auto") + "\n" + c(s`arrowhead-start${t}`, "auto-start-reverse");
1085
1099
  }
1086
- function st(e) {
1100
+ function Ft(e) {
1087
1101
  return e.replace(/[^a-zA-Z0-9]/g, (e) => e.charCodeAt(0).toString(16));
1088
1102
  }
1089
- function ct(e, t, r) {
1090
- let i = r.groupHeader + 16, a = [];
1091
- a.push(`<g class="subgraph" data-id="${n(e.id)}" data-label="${n(e.label)}">`), a.push(` <rect x="${e.x}" y="${e.y}" width="${e.width}" height="${e.height}" rx="0" ry="0" fill="var(--_group-fill)" stroke="var(--_node-stroke)" stroke-width="${z.outerBox}" />`), a.push(` <rect x="${e.x}" y="${e.y}" width="${e.width}" height="${i}" rx="0" ry="0" fill="var(--_group-hdr)" stroke="var(--_node-stroke)" stroke-width="${z.outerBox}" />`), a.push(" " + u(e.label, e.x + 12, e.y + i / 2, r.groupHeader, `font-size="${r.groupHeader}" font-weight="${L.groupHeader}" fill="var(--_text-sec)"`));
1092
- for (let n of e.children) a.push(ct(n, t, r));
1103
+ function It(e, t, n) {
1104
+ let r = n.groupHeader + 16, a = [];
1105
+ 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));
1093
1107
  return a.push("</g>"), a.join("\n");
1094
1108
  }
1095
- function lt(e, t, r = !0) {
1109
+ function Lt(e, t, n = !0) {
1096
1110
  if (e.points.length < 2) return "";
1097
- let i = r && (e.animate ?? !1), a = t !== "linear", o = e.style === "invisible", s = e.style === "dotted" ? " stroke-dasharray=\"4 4\"" : "", c = e.style === "thick" ? z.connector * 2 : z.connector, l = o ? "none" : n(e.inlineStyle?.stroke ?? "var(--_line)"), u = n(e.inlineStyle?.["stroke-width"] ?? String(c)), d = e.inlineStyle?.stroke ? `-${st(e.inlineStyle.stroke)}` : "", f = "";
1098
- o || (e.hasArrowEnd && (f += ` marker-end="url(#arrowhead${d})"`), e.hasArrowStart && (f += ` marker-start="url(#arrowhead-start${d})"`));
1099
- let p = [
1100
- `class="edge${i ? " edge-animated" : ""}"`,
1101
- `data-from="${n(e.source)}"`,
1102
- `data-to="${n(e.target)}"`,
1103
- `data-style="${e.style}"`,
1104
- `data-arrow-start="${e.hasArrowStart}"`,
1105
- `data-arrow-end="${e.hasArrowEnd}"`
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
+ o || (e.hasArrowEnd && (p += s` marker-end="url(#arrowhead${f})"`), e.hasArrowStart && (p += s` marker-start="url(#arrowhead-start${f})"`));
1113
+ let m = [
1114
+ s`class="edge${r ? " edge-animated" : ""}"`,
1115
+ s`data-from="${i(e.source)}"`,
1116
+ s`data-to="${i(e.target)}"`,
1117
+ s`data-style="${e.style}"`,
1118
+ s`data-arrow-start="${e.hasArrowStart}"`,
1119
+ s`data-arrow-end="${e.hasArrowEnd}"`
1106
1120
  ];
1107
- e.label && p.push(`data-label="${n(e.label)}"`), e.id && p.push(`data-id="${n(e.id)}"`);
1108
- let m = i && !s ? " stroke-dasharray=\"8 6\"" : "", h = a ? `d="${T(e.points, t)}"` : `points="${ut(e.points)}"`;
1109
- return `<${a ? "path" : "polyline"} ${p.join(" ")} ${h} fill="none" stroke="${l}" stroke-width="${u}"${s}${m}${f} />`;
1121
+ 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
+ return s`<${a ? "path" : "polyline"} ${m.join(" ")} ${g} ` + s`fill="none" stroke="${u}" ` + s`stroke-width="${d}"${c}${h}${p} />`;
1110
1124
  }
1111
- function ut(e) {
1112
- return e.map((e) => `${e.x},${e.y}`).join(" ");
1125
+ function Rt(e) {
1126
+ return e.map((e) => s`${e.x},${e.y}`).join(" ");
1113
1127
  }
1114
- function dt(e, t, r) {
1128
+ function zt(e, t, n) {
1115
1129
  if (!e.label) return "";
1116
- let i = e.label, a = e.labelPosition ?? pt(e.points), s = o(i, r.edgeLabel, L.edgeLabel), c = d(i, a.x, a.y, s.width, s.height, r.edgeLabel, 8, `text-anchor="middle" font-size="${r.edgeLabel}" font-weight="${L.edgeLabel}" fill="var(--_text-sec)"`, "rx=\"2\" ry=\"2\" fill=\"var(--bg)\" stroke=\"var(--_inner-stroke)\" stroke-width=\"1\"");
1117
- return `<g class="edge-label" data-from="${n(e.source)}" data-to="${n(e.target)}" data-label="${n(i)}">\n ${c.replace(/\n/g, "\n ")}\n</g>`;
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
+ 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>";
1118
1132
  }
1119
- function ft(e, t) {
1133
+ function Bt(e, t) {
1120
1134
  let n = e[t];
1121
1135
  if (!n)
1122
1136
  /* v8 ignore next */
1123
- throw Error(`edgeMidpoint: missing point at index ${t}`);
1137
+ throw Error(s`edgeMidpoint: missing point at index ${t}`);
1124
1138
  return n;
1125
1139
  }
1126
- function pt(e) {
1140
+ function Vt(e) {
1127
1141
  if (e.length === 0) return {
1128
1142
  x: 0,
1129
1143
  y: 0
1130
1144
  };
1131
1145
  if (e.length === 1) return e[0];
1132
1146
  let t = 0;
1133
- for (let n = 1; n < e.length; n++) t += mt(ft(e, n - 1), ft(e, n));
1147
+ for (let n = 1; n < e.length; n++) t += Ht(Bt(e, n - 1), Bt(e, n));
1134
1148
  let n = t / 2;
1135
1149
  for (let t = 1; t < e.length; t++) {
1136
- let r = ft(e, t - 1), i = ft(e, t), a = mt(r, i);
1150
+ let r = Bt(e, t - 1), i = Bt(e, t), a = Ht(r, i);
1137
1151
  if (n <= a) {
1138
1152
  let e = n / a;
1139
1153
  return {
@@ -1145,281 +1159,287 @@ function pt(e) {
1145
1159
  }
1146
1160
  return e[e.length - 1];
1147
1161
  }
1148
- function mt(e, t) {
1162
+ function Ht(e, t) {
1149
1163
  return Math.sqrt((t.x - e.x) ** 2 + (t.y - e.y) ** 2);
1150
1164
  }
1151
- function ht(e, t, i, a = !0) {
1152
- let o = gt(e), s = Xt(e, t, i), c = [], l = m(e.className), u = l ? `node ${l}` : "node", d = e.interaction, f = [
1153
- `class="${u}"`,
1154
- `data-id="${n(e.id)}"`,
1155
- `data-label="${n(e.label)}"`,
1156
- `data-shape="${e.shape}"`
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 = [
1167
+ s`class="${d}"`,
1168
+ s`data-id="${i(e.id)}"`,
1169
+ s`data-label="${i(e.label)}"`,
1170
+ s`data-shape="${e.shape}"`
1157
1171
  ];
1158
- c.push(`<g ${f.join(" ")}>`);
1159
- let h = a ? p(d?.href) : void 0, g = h ? " " : " ";
1160
- if (h) {
1161
- let e = d?.target ? ` target="${n(d.target)}"` : "";
1162
- c.push(` <a href="${n(h)}"${e}>`);
1172
+ l.push(s`<g ${p.join(" ")}>`);
1173
+ let m = r ? b(f?.href) : void 0, h = m ? " " : " ";
1174
+ if (m) {
1175
+ let e = f?.target ? s` target="${i(f.target)}"` : "";
1176
+ l.push(s` <a href="${i(m)}"${e}>`);
1163
1177
  }
1164
- return a && d?.tooltip && c.push(`${g}<title>${r(d.tooltip)}</title>`), c.push(`${g}${o.replace(/\n/g, `\n${g}`)}`), s && c.push(`${g}${s.replace(/\n/g, `\n${g}`)}`), h && c.push(" </a>"), c.push("</g>"), c.join("\n");
1178
+ 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");
1165
1179
  }
1166
- function gt(e) {
1167
- let { x: t, y: r, width: i, height: a, shape: o, inlineStyle: s } = e, c = n(s?.fill ?? "var(--_node-fill)"), l = n(s?.stroke ?? "var(--_node-stroke)"), u = n(s?.["stroke-width"] ?? String(z.innerBox));
1180
+ function Wt(e) {
1181
+ 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));
1168
1182
  switch (o) {
1169
- case "diamond": return xt(t, r, i, a, c, l, u);
1170
- case "rounded": return vt(t, r, i, a, c, l, u);
1171
- case "stadium": return yt(t, r, i, a, c, l, u);
1172
- case "circle": return bt(t, r, i, a, c, l, u);
1173
- case "subroutine": return St(t, r, i, a, c, l, u);
1174
- case "doublecircle": return Ct(t, r, i, a, c, l, u);
1175
- case "hexagon": return wt(t, r, i, a, c, l, u);
1176
- case "cylinder": return Tt(t, r, i, a, c, l, u);
1177
- case "asymmetric": return Et(t, r, i, a, c, l, u);
1178
- case "trapezoid": return Dt(t, r, i, a, c, l, u);
1179
- case "trapezoid-alt": return Ot(t, r, i, a, c, l, u);
1180
- case "parallelogram": return kt(t, r, i, a, c, l, u);
1181
- case "parallelogram-alt": return At(t, r, i, a, c, l, u);
1182
- case "state-start": return Jt(t, r, i, a);
1183
- case "state-end": return Yt(t, r, i, a);
1184
- case "document": return jt(t, r, i, a, c, l, u);
1185
- case "stacked-document": return Mt(t, r, i, a, c, l, u, !0);
1186
- case "stacked-process": return Mt(t, r, i, a, c, l, u, !1);
1187
- case "card": return Nt(t, r, i, a, c, l, u);
1188
- case "lined-process": return Pt(t, r, i, a, c, l, u);
1189
- case "divided-process": return Ft(t, r, i, a, c, l, u);
1190
- case "window-pane": return It(t, r, i, a, c, l, u);
1191
- case "triangle": return Lt(t, r, i, a, c, l, u, !1);
1192
- case "flipped-triangle": return Lt(t, r, i, a, c, l, u, !0);
1193
- case "filled-circle": return Rt(t, r, i, a, l);
1194
- case "crossed-circle": return zt(t, r, i, a, c, l, u);
1195
- case "fork-join": return Bt(t, r, i, a, l);
1196
- case "notched-pentagon": return Vt(t, r, i, a, c, l, u);
1197
- case "sloped-rectangle": return Ht(t, r, i, a, c, l, u);
1198
- case "flag": return Ut(t, r, i, a, c, l, u);
1199
- case "bow-tie-rectangle": return Wt(t, r, i, a, c, l, u);
1200
- case "half-rounded-rectangle": return Gt(t, r, i, a, c, l, u);
1201
- case "brace": return Kt(t, r, i, a, c, l, u, "left");
1202
- case "brace-right": return Kt(t, r, i, a, c, l, u, "right");
1203
- case "braces": return Kt(t, r, i, a, c, l, u, "both");
1204
- case "bolt": return qt(t, r, i, a, c, l, u);
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);
1205
1219
  case "text":
1206
1220
  case "anchor": return "";
1207
- default: return _t(t, r, i, a, c, l, u);
1221
+ default: return Gt(t, n, r, a, c, l, u);
1208
1222
  }
1209
1223
  }
1210
- function _t(e, t, n, r, i, a, o) {
1211
- return `<rect x="${e}" y="${t}" width="${n}" height="${r}" rx="0" ry="0" fill="${i}" stroke="${a}" stroke-width="${o}" />`;
1224
+ function Gt(e, t, n, r, i, a, o) {
1225
+ return s`<rect x="${e}" y="${t}" width="${n}" height="${r}" ` + s`rx="0" ry="0" fill="${i}" stroke="${a}" stroke-width="${o}" />`;
1212
1226
  }
1213
- function vt(e, t, n, r, i, a, o) {
1214
- return `<rect x="${e}" y="${t}" width="${n}" height="${r}" rx="6" ry="6" fill="${i}" stroke="${a}" stroke-width="${o}" />`;
1215
- }
1216
- function yt(e, t, n, r, i, a, o) {
1217
- let s = r / 2;
1218
- return `<rect x="${e}" y="${t}" width="${n}" height="${r}" rx="${s}" ry="${s}" fill="${i}" stroke="${a}" stroke-width="${o}" />`;
1219
- }
1220
- function bt(e, t, n, r, i, a, o) {
1221
- return `<circle cx="${e + n / 2}" cy="${t + r / 2}" r="${Math.min(n, r) / 2}" fill="${i}" stroke="${a}" stroke-width="${o}" />`;
1222
- }
1223
- function xt(e, t, n, r, i, a, o) {
1224
- let s = e + n / 2, c = t + r / 2, l = n / 2, u = r / 2;
1225
- return `<polygon points="${[
1226
- `${s},${c - u}`,
1227
- `${s + l},${c}`,
1228
- `${s},${c + u}`,
1229
- `${s - l},${c}`
1230
- ].join(" ")}" fill="${i}" stroke="${a}" stroke-width="${o}" />`;
1231
- }
1232
- function St(e, t, n, r, i, a, o) {
1233
- return `<rect x="${e}" y="${t}" width="${n}" height="${r}" rx="0" ry="0" fill="${i}" stroke="${a}" stroke-width="${o}" />\n<line x1="${e + 8}" y1="${t}" x2="${e + 8}" y2="${t + r}" stroke="${a}" stroke-width="${o}" />\n<line x1="${e + n - 8}" y1="${t}" x2="${e + n - 8}" y2="${t + r}" stroke="${a}" stroke-width="${o}" />`;
1234
- }
1235
- function Ct(e, t, n, r, i, a, o) {
1236
- let s = e + n / 2, c = t + r / 2, l = Math.min(n, r) / 2;
1237
- return `<circle cx="${s}" cy="${c}" r="${l}" fill="${i}" stroke="${a}" stroke-width="${o}" />\n<circle cx="${s}" cy="${c}" r="${l - 5}" fill="${i}" stroke="${a}" stroke-width="${o}" />`;
1238
- }
1239
- function wt(e, t, n, r, i, a, o) {
1240
- let s = r / 4;
1241
- return `<polygon points="${[
1242
- `${e + s},${t}`,
1243
- `${e + n - s},${t}`,
1244
- `${e + n},${t + r / 2}`,
1245
- `${e + n - s},${t + r}`,
1246
- `${e + s},${t + r}`,
1247
- `${e},${t + r / 2}`
1248
- ].join(" ")}" fill="${i}" stroke="${a}" stroke-width="${o}" />`;
1249
- }
1250
- function Tt(e, t, n, r, i, a, o) {
1251
- let s = e + n / 2, c = t + 7, l = r - 14;
1252
- return `<rect x="${e}" y="${c}" width="${n}" height="${l}" fill="${i}" stroke="none" />\n<line x1="${e}" y1="${c}" x2="${e}" y2="${c + l}" stroke="${a}" stroke-width="${o}" />\n<line x1="${e + n}" y1="${c}" x2="${e + n}" y2="${c + l}" stroke="${a}" stroke-width="${o}" />\n<ellipse cx="${s}" cy="${t + r - 7}" rx="${n / 2}" ry="7" fill="${i}" stroke="${a}" stroke-width="${o}" />\n<ellipse cx="${s}" cy="${c}" rx="${n / 2}" ry="7" fill="${i}" stroke="${a}" stroke-width="${o}" />`;
1253
- }
1254
- function Et(e, t, n, r, i, a, o) {
1255
- return `<polygon points="${[
1256
- `${e + 12},${t}`,
1257
- `${e + n},${t}`,
1258
- `${e + n},${t + r}`,
1259
- `${e + 12},${t + r}`,
1260
- `${e},${t + r / 2}`
1261
- ].join(" ")}" fill="${i}" stroke="${a}" stroke-width="${o}" />`;
1262
- }
1263
- function Dt(e, t, n, r, i, a, o) {
1264
- let s = n * .15;
1265
- return `<polygon points="${[
1266
- `${e + s},${t}`,
1267
- `${e + n - s},${t}`,
1268
- `${e + n},${t + r}`,
1269
- `${e},${t + r}`
1270
- ].join(" ")}" fill="${i}" stroke="${a}" stroke-width="${o}" />`;
1271
- }
1272
- function Ot(e, t, n, r, i, a, o) {
1273
- let s = n * .15;
1274
- return `<polygon points="${[
1275
- `${e},${t}`,
1276
- `${e + n},${t}`,
1277
- `${e + n - s},${t + r}`,
1278
- `${e + s},${t + r}`
1279
- ].join(" ")}" fill="${i}" stroke="${a}" stroke-width="${o}" />`;
1280
- }
1281
- function kt(e, t, n, r, i, a, o) {
1282
- let s = n * .15;
1283
- return `<polygon points="${[
1284
- `${e + s},${t}`,
1285
- `${e + n},${t}`,
1286
- `${e + n - s},${t + r}`,
1287
- `${e},${t + r}`
1288
- ].join(" ")}" fill="${i}" stroke="${a}" stroke-width="${o}" />`;
1289
- }
1290
- function At(e, t, n, r, i, a, o) {
1291
- let s = n * .15;
1292
- return `<polygon points="${[
1293
- `${e},${t}`,
1294
- `${e + n - s},${t}`,
1295
- `${e + n},${t + r}`,
1296
- `${e + s},${t + r}`
1297
- ].join(" ")}" fill="${i}" stroke="${a}" stroke-width="${o}" />`;
1298
- }
1299
- function W(e, t, n) {
1300
- return `fill="${e}" stroke="${t}" stroke-width="${n}"`;
1301
- }
1302
- function jt(e, t, n, r, i, a, o) {
1303
- let s = Math.min(10, r * .16), c = t + r - s;
1304
- return `<path d="${`M ${e} ${t} L ${e + n} ${t} L ${e + n} ${c} C ${e + n * .75} ${c + s * 1.8} ${e + n * .25} ${c - s * .8} ${e} ${c} Z`}" ${W(i, a, o)} />`;
1305
- }
1306
- function Mt(e, t, n, r, i, a, o, s) {
1307
- let c = n - 10, l = r - 10, u = [];
1308
- for (let n = 2; n >= 1; n--) u.push(`<rect x="${e + 5 * n}" y="${t + 5 * (2 - n)}" width="${c}" height="${l}" ${W(i, a, o)} />`);
1309
- return u.push(s ? jt(e, t + 10, c, l, i, a, o) : `<rect x="${e}" y="${t + 10}" width="${c}" height="${l}" ${W(i, a, o)} />`), u.join("\n");
1310
- }
1311
- function Nt(e, t, n, r, i, a, o) {
1312
- let s = Math.min(14, n * .12, r * .3);
1313
- return `<polygon points="${[
1314
- `${e + s},${t}`,
1315
- `${e + n},${t}`,
1316
- `${e + n},${t + r}`,
1317
- `${e},${t + r}`,
1318
- `${e},${t + s}`
1319
- ].join(" ")}" ${W(i, a, o)} />`;
1320
- }
1321
- function Pt(e, t, n, r, i, a, o) {
1322
- let s = Math.min(12, n * .12);
1323
- return `<rect x="${e}" y="${t}" width="${n}" height="${r}" ${W(i, a, o)} />\n<line x1="${e + s}" y1="${t}" x2="${e + s}" y2="${t + r}" stroke="${a}" stroke-width="${o}" />`;
1324
- }
1325
- function Ft(e, t, n, r, i, a, o) {
1326
- let s = t + Math.min(16, r * .3);
1327
- return `<rect x="${e}" y="${t}" width="${n}" height="${r}" ${W(i, a, o)} />\n<line x1="${e}" y1="${s}" x2="${e + n}" y2="${s}" stroke="${a}" stroke-width="${o}" />`;
1328
- }
1329
- function It(e, t, n, r, i, a, o) {
1330
- let s = e + Math.min(16, n * .16), c = t + Math.min(14, r * .28);
1331
- return `<rect x="${e}" y="${t}" width="${n}" height="${r}" ${W(i, a, o)} />\n<line x1="${s}" y1="${t}" x2="${s}" y2="${t + r}" stroke="${a}" stroke-width="${o}" />\n<line x1="${e}" y1="${c}" x2="${e + n}" y2="${c}" stroke="${a}" stroke-width="${o}" />`;
1332
- }
1333
- function Lt(e, t, n, r, i, a, o, s) {
1334
- return `<polygon points="${(s ? [
1335
- `${e},${t}`,
1336
- `${e + n},${t}`,
1337
- `${e + n / 2},${t + r}`
1227
+ function Kt(e, t, n, r, i, a, o) {
1228
+ 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
+ function qt(e, t, n, r, i, a, o) {
1231
+ let c = r / 2;
1232
+ 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
+ function Jt(e, t, n, r, i, a, o) {
1235
+ let c = e + n / 2, l = t + r / 2, u = Math.min(n, r) / 2;
1236
+ return s`<circle cx="${c}" cy="${l}" r="${u}" ` + s`fill="${i}" stroke="${a}" stroke-width="${o}" />`;
1237
+ }
1238
+ function Yt(e, t, n, r, i, a, o) {
1239
+ let c = e + n / 2, l = t + r / 2, u = n / 2, d = r / 2, f = [
1240
+ s`${c},${l - d}`,
1241
+ s`${c + u},${l}`,
1242
+ s`${c},${l + d}`,
1243
+ s`${c - u},${l}`
1244
+ ].join(" ");
1245
+ return s`<polygon points="${f}" fill="${i}" stroke="${a}" stroke-width="${o}" />`;
1246
+ }
1247
+ function Xt(e, t, n, r, i, a, o) {
1248
+ 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
+ function Zt(e, t, n, r, i, a, o) {
1251
+ let c = e + n / 2, l = t + r / 2, u = Math.min(n, r) / 2, d = u - 5;
1252
+ 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
+ function Qt(e, t, n, r, i, a, o) {
1255
+ let c = r / 4, l = [
1256
+ s`${e + c},${t}`,
1257
+ s`${e + n - c},${t}`,
1258
+ s`${e + n},${t + r / 2}`,
1259
+ s`${e + n - c},${t + r}`,
1260
+ s`${e + c},${t + r}`,
1261
+ s`${e},${t + r / 2}`
1262
+ ].join(" ");
1263
+ return s`<polygon points="${l}" fill="${i}" stroke="${a}" stroke-width="${o}" />`;
1264
+ }
1265
+ function $t(e, t, n, r, i, a, o) {
1266
+ let c = e + n / 2, l = t + 7, u = r - 14;
1267
+ 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
+ function en(e, t, n, r, i, a, o) {
1270
+ let c = [
1271
+ s`${e + 12},${t}`,
1272
+ s`${e + n},${t}`,
1273
+ s`${e + n},${t + r}`,
1274
+ s`${e + 12},${t + r}`,
1275
+ s`${e},${t + r / 2}`
1276
+ ].join(" ");
1277
+ return s`<polygon points="${c}" fill="${i}" stroke="${a}" stroke-width="${o}" />`;
1278
+ }
1279
+ function tn(e, t, n, r, i, a, o) {
1280
+ let c = n * .15, l = [
1281
+ s`${e + c},${t}`,
1282
+ s`${e + n - c},${t}`,
1283
+ s`${e + n},${t + r}`,
1284
+ s`${e},${t + r}`
1285
+ ].join(" ");
1286
+ return s`<polygon points="${l}" fill="${i}" stroke="${a}" stroke-width="${o}" />`;
1287
+ }
1288
+ function nn(e, t, n, r, i, a, o) {
1289
+ let c = n * .15, l = [
1290
+ s`${e},${t}`,
1291
+ s`${e + n},${t}`,
1292
+ s`${e + n - c},${t + r}`,
1293
+ s`${e + c},${t + r}`
1294
+ ].join(" ");
1295
+ return s`<polygon points="${l}" fill="${i}" stroke="${a}" stroke-width="${o}" />`;
1296
+ }
1297
+ function rn(e, t, n, r, i, a, o) {
1298
+ let c = n * .15, l = [
1299
+ s`${e + c},${t}`,
1300
+ s`${e + n},${t}`,
1301
+ s`${e + n - c},${t + r}`,
1302
+ s`${e},${t + r}`
1303
+ ].join(" ");
1304
+ return s`<polygon points="${l}" fill="${i}" stroke="${a}" stroke-width="${o}" />`;
1305
+ }
1306
+ function an(e, t, n, r, i, a, o) {
1307
+ let c = n * .15, l = [
1308
+ s`${e},${t}`,
1309
+ s`${e + n - c},${t}`,
1310
+ s`${e + n},${t + r}`,
1311
+ s`${e + c},${t + r}`
1312
+ ].join(" ");
1313
+ return s`<polygon points="${l}" fill="${i}" stroke="${a}" stroke-width="${o}" />`;
1314
+ }
1315
+ function H(e, t, n) {
1316
+ return s`fill="${e}" stroke="${t}" stroke-width="${n}"`;
1317
+ }
1318
+ function on(e, t, n, r, i, a, o) {
1319
+ 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
+ }
1322
+ function sn(e, t, n, r, i, a, o, c) {
1323
+ 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");
1326
+ }
1327
+ function cn(e, t, n, r, i, a, o) {
1328
+ let c = Math.min(14, n * .12, r * .3), l = [
1329
+ s`${e + c},${t}`,
1330
+ s`${e + n},${t}`,
1331
+ s`${e + n},${t + r}`,
1332
+ s`${e},${t + r}`,
1333
+ s`${e},${t + c}`
1334
+ ].join(" ");
1335
+ return s`<polygon points="${l}" ${H(i, a, o)} />`;
1336
+ }
1337
+ function ln(e, t, n, r, i, a, o) {
1338
+ 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
+ }
1341
+ function un(e, t, n, r, i, a, o) {
1342
+ 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
+ }
1345
+ function dn(e, t, n, r, i, a, o) {
1346
+ 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
+ }
1349
+ function fn(e, t, n, r, i, a, o, c) {
1350
+ let l = c ? [
1351
+ s`${e},${t}`,
1352
+ s`${e + n},${t}`,
1353
+ s`${e + n / 2},${t + r}`
1338
1354
  ] : [
1339
- `${e + n / 2},${t}`,
1340
- `${e + n},${t + r}`,
1341
- `${e},${t + r}`
1342
- ]).join(" ")}" ${W(i, a, o)} />`;
1355
+ s`${e + n / 2},${t}`,
1356
+ s`${e + n},${t + r}`,
1357
+ s`${e},${t + r}`
1358
+ ];
1359
+ return s`<polygon points="${l.join(" ")}" ${H(i, a, o)} />`;
1343
1360
  }
1344
- function Rt(e, t, n, r, i) {
1361
+ function pn(e, t, n, r, i) {
1345
1362
  let a = Math.min(n, r) / 2 - 2;
1346
- return `<circle cx="${e + n / 2}" cy="${t + r / 2}" r="${a}" fill="${i}" stroke="${i}" />`;
1363
+ return s`<circle cx="${e + n / 2}" cy="${t + r / 2}" r="${a}" fill="${i}" stroke="${i}" />`;
1347
1364
  }
1348
- function zt(e, t, n, r, i, a, o) {
1349
- let s = e + n / 2, c = t + r / 2, l = Math.min(n, r) / 2 - 2, u = l / Math.SQRT2;
1350
- return `<circle cx="${s}" cy="${c}" r="${l}" ${W(i, a, o)} />\n<line x1="${s - u}" y1="${c - u}" x2="${s + u}" y2="${c + u}" stroke="${a}" stroke-width="${o}" />\n<line x1="${s + u}" y1="${c - u}" x2="${s - u}" y2="${c + u}" stroke="${a}" stroke-width="${o}" />`;
1365
+ function mn(e, t, n, r, i, a, o) {
1366
+ 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}" />`;
1351
1368
  }
1352
- function Bt(e, t, n, r, i) {
1369
+ function hn(e, t, n, r, i) {
1353
1370
  let a = Math.min(8, r);
1354
- return `<rect x="${e}" y="${t + (r - a) / 2}" width="${n}" height="${a}" fill="${i}" stroke="${i}" />`;
1355
- }
1356
- function Vt(e, t, n, r, i, a, o) {
1357
- let s = Math.min(14, n * .12, r * .3);
1358
- return `<polygon points="${[
1359
- `${e + s},${t}`,
1360
- `${e + n - s},${t}`,
1361
- `${e + n},${t + s}`,
1362
- `${e + n},${t + r}`,
1363
- `${e},${t + r}`,
1364
- `${e},${t + s}`
1365
- ].join(" ")}" ${W(i, a, o)} />`;
1366
- }
1367
- function Ht(e, t, n, r, i, a, o) {
1368
- return `<polygon points="${[
1369
- `${e},${t + Math.min(12, r * .3)}`,
1370
- `${e + n},${t}`,
1371
- `${e + n},${t + r}`,
1372
- `${e},${t + r}`
1373
- ].join(" ")}" ${W(i, a, o)} />`;
1374
- }
1375
- function Ut(e, t, n, r, i, a, o) {
1376
- let s = Math.min(8, r * .14);
1377
- return `<path d="${`M ${e} ${t + s} C ${e + n * .25} ${t - s} ${e + n * .75} ${t + s * 2} ${e + n} ${t + s} L ${e + n} ${t + r - s} C ${e + n * .75} ${t + r + s} ${e + n * .25} ${t + r - s * 2} ${e} ${t + r - s} Z`}" ${W(i, a, o)} />`;
1378
- }
1379
- function Wt(e, t, n, r, i, a, o) {
1380
- let s = Math.min(14, n * .12);
1381
- return `<path d="${`M ${e + s} ${t} L ${e + n} ${t} Q ${e + n - s * 1.4} ${t + r / 2} ${e + n} ${t + r} L ${e + s} ${t + r} Q ${e + s * 1.4} ${t + r / 2} ${e + s} ${t} Z`}" ${W(i, a, o)} />`;
1371
+ return s`<rect x="${e}" y="${t + (r - a) / 2}" width="${n}" height="${a}" fill="${i}" stroke="${i}" />`;
1372
+ }
1373
+ function gn(e, t, n, r, i, a, o) {
1374
+ let c = Math.min(14, n * .12, r * .3), l = [
1375
+ s`${e + c},${t}`,
1376
+ s`${e + n - c},${t}`,
1377
+ s`${e + n},${t + c}`,
1378
+ s`${e + n},${t + r}`,
1379
+ s`${e},${t + r}`,
1380
+ s`${e},${t + c}`
1381
+ ].join(" ");
1382
+ return s`<polygon points="${l}" ${H(i, a, o)} />`;
1383
+ }
1384
+ function _n(e, t, n, r, i, a, o) {
1385
+ let c = Math.min(12, r * .3), l = [
1386
+ s`${e},${t + c}`,
1387
+ s`${e + n},${t}`,
1388
+ s`${e + n},${t + r}`,
1389
+ s`${e},${t + r}`
1390
+ ].join(" ");
1391
+ return s`<polygon points="${l}" ${H(i, a, o)} />`;
1392
+ }
1393
+ function vn(e, t, n, r, i, a, o) {
1394
+ 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
+ }
1397
+ function yn(e, t, n, r, i, a, o) {
1398
+ 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
+ }
1401
+ function bn(e, t, n, r, i, a, o) {
1402
+ 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
+ }
1405
+ function xn(e, t, n, r, i, a, o, c) {
1406
+ 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
+ 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
+ function Sn(e, t, n, r, i, a, o) {
1410
+ let c = [
1411
+ s`${e + n * .42},${t}`,
1412
+ s`${e + n},${t}`,
1413
+ s`${e + n * .62},${t + r * .42}`,
1414
+ s`${e + n},${t + r * .42}`,
1415
+ s`${e + n * .3},${t + r}`,
1416
+ s`${e + n * .5},${t + r * .55}`,
1417
+ s`${e},${t + r * .55}`
1418
+ ].join(" ");
1419
+ return s`<polygon points="${c}" ${H(i, a, o)} />`;
1382
1420
  }
1383
- function Gt(e, t, n, r, i, a, o) {
1384
- let s = r / 2, c = Math.max(0, n - s);
1385
- return `<path d="${`M ${e} ${t} L ${e + c} ${t} A ${s} ${s} 0 0 1 ${e + c} ${t + r} L ${e} ${t + r} Z`}" ${W(i, a, o)} />`;
1421
+ function Cn(e, t, n, r) {
1422
+ let i = e + n / 2, a = t + r / 2, o = Math.min(n, r) / 2 - 2;
1423
+ return s`<circle cx="${i}" cy="${a}" r="${o}" fill="var(--_text)" stroke="none" />`;
1386
1424
  }
1387
- function Kt(e, t, n, r, i, a, o, s) {
1388
- let c = Math.min(10, n * .12), l = [`<rect x="${e}" y="${t}" width="${n}" height="${r}" fill="none" stroke="none" />`], u = `M ${e + c} ${t} Q ${e} ${t} ${e} ${t + r * .25} Q ${e} ${t + r / 2} ${e - c * .4} ${t + r / 2} Q ${e} ${t + r / 2} ${e} ${t + r * .75} Q ${e} ${t + r} ${e + c} ${t + r}`, d = `M ${e + n - c} ${t} Q ${e + n} ${t} ${e + n} ${t + r * .25} Q ${e + n} ${t + r / 2} ${e + n + c * .4} ${t + r / 2} Q ${e + n} ${t + r / 2} ${e + n} ${t + r * .75} Q ${e + n} ${t + r} ${e + n - c} ${t + r}`;
1389
- return (s === "left" || s === "both") && l.push(`<path d="${u}" fill="none" stroke="${a}" stroke-width="${o}" />`), (s === "right" || s === "both") && l.push(`<path d="${d}" fill="none" stroke="${a}" stroke-width="${o}" />`), l.join("\n");
1425
+ function wn(e, t, n, r) {
1426
+ let i = e + n / 2, a = t + r / 2, o = Math.min(n, r) / 2 - 2, c = o - 4;
1427
+ 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" />`;
1390
1428
  }
1391
- function qt(e, t, n, r, i, a, o) {
1392
- return `<polygon points="${[
1393
- `${e + n * .42},${t}`,
1394
- `${e + n},${t}`,
1395
- `${e + n * .62},${t + r * .42}`,
1396
- `${e + n},${t + r * .42}`,
1397
- `${e + n * .3},${t + r}`,
1398
- `${e + n * .5},${t + r * .55}`,
1399
- `${e},${t + r * .55}`
1400
- ].join(" ")}" ${W(i, a, o)} />`;
1401
- }
1402
- function Jt(e, t, n, r) {
1403
- return `<circle cx="${e + n / 2}" cy="${t + r / 2}" r="${Math.min(n, r) / 2 - 2}" fill="var(--_text)" stroke="none" />`;
1404
- }
1405
- function Yt(e, t, n, r) {
1406
- let i = e + n / 2, a = t + r / 2, o = Math.min(n, r) / 2 - 2, s = o - 4;
1407
- return `<circle cx="${i}" cy="${a}" r="${o}" fill="none" stroke="var(--_text)" stroke-width="${z.innerBox * 2}" />\n<circle cx="${i}" cy="${a}" r="${s}" fill="var(--_text)" stroke="none" />`;
1408
- }
1409
- function Xt(e, t, r) {
1429
+ function Tn(e, t, n) {
1410
1430
  if ((e.shape === "state-start" || e.shape === "state-end") && !e.label) return "";
1411
- let i = e.x + e.width / 2, o = e.y + e.height / 2, s = n(e.inlineStyle?.color ?? a(e.inlineStyle?.fill, "var(--_text)")), c = `text-anchor="middle" font-size="${r.nodeLabel}" font-weight="${L.nodeLabel}" fill="${s}"`, l = e.inlineStyle?.["font-family"];
1412
- return l && (c += ` style="font-family: ${n(l)};"`), u(e.label, i, o, r.nodeLabel, c);
1431
+ 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
+ return u && (c += s` style="font-family: ${i(u)};"`), _(e.label, r, a, n.nodeLabel, c);
1413
1433
  }
1414
- function Zt(e) {
1415
- return n(e).replace(/\r/g, "&#13;").replace(/\n/g, "&#10;").replace(/\t/g, "&#9;");
1434
+ function En(e) {
1435
+ return i(e).replace(/\r/g, "&#13;").replace(/\n/g, "&#10;").replace(/\t/g, "&#9;");
1416
1436
  }
1417
- function G(e, t) {
1418
- return t === void 0 ? e : e.replace("<svg ", `<svg data-src="${Zt(t)}" `);
1437
+ function U(e, t) {
1438
+ return t === void 0 ? e : e.replace("<svg ", s`<svg data-src="${En(t)}" `);
1419
1439
  }
1420
1440
  //#endregion
1421
1441
  //#region packages/svg-renderer/src/resolve-colors.ts
1422
- var Qt = class {
1442
+ var Dn = class {
1423
1443
  raw = /* @__PURE__ */ new Map();
1424
1444
  resolved = /* @__PURE__ */ new Map();
1425
1445
  inProgress = /* @__PURE__ */ new Set();
@@ -1431,13 +1451,13 @@ var Qt = class {
1431
1451
  let t = this.raw.get(e);
1432
1452
  if (t === void 0 || this.inProgress.has(e)) return;
1433
1453
  this.inProgress.add(e);
1434
- let n = on(t, this).trim();
1454
+ let n = Pn(t, this).trim();
1435
1455
  this.inProgress.delete(e);
1436
1456
  let r = !/\bvar\(|\bcolor-mix\(/.test(n);
1437
1457
  return this.resolved.set(e, r ? n : void 0), r ? n : void 0;
1438
1458
  }
1439
1459
  };
1440
- function $t(e, t) {
1460
+ function On(e, t) {
1441
1461
  let n = 0;
1442
1462
  for (let r = t; r < e.length; r++) {
1443
1463
  let t = e[r];
@@ -1446,7 +1466,7 @@ function $t(e, t) {
1446
1466
  }
1447
1467
  return -1;
1448
1468
  }
1449
- function en(e) {
1469
+ function kn(e) {
1450
1470
  let t = [], n = 0, r = 0;
1451
1471
  for (let i = 0; i < e.length; i++) {
1452
1472
  let a = e[i];
@@ -1454,12 +1474,12 @@ function en(e) {
1454
1474
  }
1455
1475
  return t.push(e.slice(r)), t;
1456
1476
  }
1457
- var tn = "(?<![\\w-])(var|color-mix)\\(";
1458
- function nn(e, t) {
1459
- let [n, ...r] = en(e), i = (n ?? "").trim(), a = t.lookup(i);
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);
1460
1480
  return a === void 0 ? r.length > 0 ? r.join(",").trim() : null : a;
1461
1481
  }
1462
- function rn(e) {
1482
+ function Mn(e) {
1463
1483
  let t = e.trim().split(/\s+/), n, r;
1464
1484
  for (let e of t) if (/^[\d.]+%$/.test(e)) {
1465
1485
  if (r !== void 0) return null;
@@ -1473,61 +1493,61 @@ function rn(e) {
1473
1493
  pct: r
1474
1494
  };
1475
1495
  }
1476
- function an(e) {
1477
- let t = en(e);
1496
+ function Nn(e) {
1497
+ let t = kn(e);
1478
1498
  if (t.length !== 3) return null;
1479
- let [n, r, a] = t;
1480
- if (n === void 0 || r === void 0 || a === void 0 || !/^\s*in\s+srgb\s*$/i.test(n)) return null;
1481
- let o = rn(r), s = rn(a);
1482
- if (!o || !s) return null;
1483
- let u = l(o.color), d = l(s.color);
1484
- if (!u || !d) return null;
1485
- let f = c(u, d, o.pct, s.pct);
1486
- return f ? i(f) : null;
1487
- }
1488
- function on(e, t) {
1489
- let n = "", r = 0, i = new RegExp(tn, "g"), a;
1499
+ let [n, r, i] = t;
1500
+ 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
+ if (!a || !o) return null;
1503
+ let s = h(a.color), l = h(o.color);
1504
+ if (!s || !l) return null;
1505
+ let u = p(s, l, a.pct, o.pct);
1506
+ return u ? c(u) : null;
1507
+ }
1508
+ function Pn(e, t) {
1509
+ let n = "", r = 0, i = new RegExp(An, "g"), a;
1490
1510
  for (; (a = i.exec(e)) !== null;) {
1491
1511
  let o = a[1];
1492
1512
  if (o === void 0) continue;
1493
- let s = a.index, c = s + o.length, l = $t(e, c);
1513
+ let s = a.index, c = s + o.length, l = On(e, c);
1494
1514
  if (l === -1) break;
1495
- let u = on(e.slice(c + 1, l), t), d = o === "var" ? nn(u, t) : an(u);
1515
+ let u = Pn(e.slice(c + 1, l), t), d = o === "var" ? jn(u, t) : Nn(u);
1496
1516
  n += e.slice(r, s), n += d ?? `${o}(${u})`, r = l + 1, i.lastIndex = r;
1497
1517
  }
1498
1518
  return n + e.slice(r);
1499
1519
  }
1500
- function sn(e, t) {
1501
- let n = new Qt();
1520
+ function Fn(e, t) {
1521
+ let n = new Dn();
1502
1522
  for (let [e, r] of Object.entries(t)) n.declare(e, r);
1503
- return on(e, n);
1523
+ return Pn(e, n);
1504
1524
  }
1505
- var cn = /(--[\w-]+)\s*:\s*([^;{}]+)/g, ln = /(\s)([\w:.-]+)(=)("[^"]*"|'[^']*')/g, un = /* @__PURE__ */ new Set(["data-src"]);
1506
- function dn(e, t) {
1507
- cn.lastIndex = 0;
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;
1508
1528
  let n;
1509
- for (; (n = cn.exec(e)) !== null;) {
1529
+ for (; (n = In.exec(e)) !== null;) {
1510
1530
  let [, e, r] = n;
1511
1531
  e !== void 0 && r !== void 0 && t.declare(e, r.trim());
1512
1532
  }
1513
1533
  }
1514
- function fn(e, t) {
1515
- return e.replace(ln, (e, n, r, i, a) => {
1516
- if (un.has(r)) return e;
1534
+ function Bn(e, t) {
1535
+ return e.replace(Ln, (e, n, r, i, a) => {
1536
+ if (Rn.has(r)) return e;
1517
1537
  let o = a[0] ?? "\"";
1518
- return `${n}${r}${i}${o}${on(a.slice(1, -1), t)}${o}`;
1538
+ return `${n}${r}${i}${o}${Pn(a.slice(1, -1), t)}${o}`;
1519
1539
  });
1520
1540
  }
1521
- function pn(e, t) {
1522
- let n = new Qt();
1541
+ function Vn(e, t) {
1542
+ let n = new Dn();
1523
1543
  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);
1524
1544
  for (let t of e.matchAll(/<style[^>]*>([\s\S]*?)<\/style>/g)) {
1525
1545
  let e = t[1];
1526
- e !== void 0 && dn(e, n);
1546
+ e !== void 0 && zn(e, n);
1527
1547
  }
1528
1548
  for (let t of e.matchAll(/\sstyle=("[^"]*"|'[^']*')/g)) {
1529
1549
  let e = t[1];
1530
- e !== void 0 && dn(e.slice(1, -1), n);
1550
+ e !== void 0 && zn(e.slice(1, -1), n);
1531
1551
  }
1532
1552
  let r = "", i = 0;
1533
1553
  for (; i < e.length;) {
@@ -1536,7 +1556,7 @@ function pn(e, t) {
1536
1556
  if (r += e.slice(i, t), e.startsWith("<style", t)) {
1537
1557
  let a = e.indexOf(">", t), o = e.indexOf("</style>", t);
1538
1558
  if (a === -1 || o === -1) break;
1539
- r += e.slice(t, a + 1), r += on(e.slice(a + 1, o), n), r += "</style>", i = o + 8;
1559
+ r += e.slice(t, a + 1), r += Pn(e.slice(a + 1, o), n), r += "</style>", i = o + 8;
1540
1560
  continue;
1541
1561
  }
1542
1562
  let a = -1, o = null;
@@ -1551,13 +1571,13 @@ function pn(e, t) {
1551
1571
  }
1552
1572
  if (a === -1) break;
1553
1573
  let s = e.slice(t, a + 1);
1554
- r += s.startsWith("<!") || s.startsWith("<?") || s.startsWith("</") ? s : fn(s, n), i = a + 1;
1574
+ r += s.startsWith("<!") || s.startsWith("<?") || s.startsWith("</") ? s : Bn(s, n), i = a + 1;
1555
1575
  }
1556
1576
  return r + e.slice(i);
1557
1577
  }
1558
1578
  //#endregion
1559
1579
  //#region packages/svg-renderer/src/class/layout.ts
1560
- var K = {
1580
+ var W = {
1561
1581
  padding: 40,
1562
1582
  boxPadX: 8,
1563
1583
  headerBaseHeight: 32,
@@ -1573,16 +1593,16 @@ var K = {
1573
1593
  notePadX: 10,
1574
1594
  notePadY: 6
1575
1595
  };
1576
- function mn(e) {
1596
+ function Hn(e) {
1577
1597
  return `note ${e}`;
1578
1598
  }
1579
- function hn(e) {
1599
+ function Un(e) {
1580
1600
  return `${e} link`;
1581
1601
  }
1582
- function gn(e, t) {
1583
- let n = /* @__PURE__ */ new Map(), r = /* @__PURE__ */ new Map(), i = I(t.fontSizes);
1602
+ function Wn(e, t) {
1603
+ let n = /* @__PURE__ */ new Map(), r = /* @__PURE__ */ new Map(), i = P(t.fontSizes);
1584
1604
  for (let t of e.classes) {
1585
- let e = t.annotation ? K.headerBaseHeight + K.annotationHeight : K.headerBaseHeight, r = t.attributes.length > 0 ? t.attributes.length * K.memberRowHeight + K.sectionPadY : K.emptySectionHeight, a = t.methods.length > 0 ? t.methods.length * K.memberRowHeight + K.sectionPadY : K.emptySectionHeight, o = N(t.label, i.nodeLabel, L.nodeLabel), s = yn(t.attributes), c = yn(t.methods), l = Math.max(K.minWidth, o + K.boxPadX * 2, s + K.boxPadX * 2, c + K.boxPadX * 2), u = e + r + a;
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;
1586
1606
  n.set(t.id, {
1587
1607
  width: l,
1588
1608
  height: u,
@@ -1592,48 +1612,48 @@ function gn(e, t) {
1592
1612
  });
1593
1613
  }
1594
1614
  let a = [];
1595
- for (let [e, t] of n) a.push(H(e, t));
1596
- let s = { fontSize: i.edgeLabel }, c = [];
1597
- for (let [t, n] of e.relationships.entries()) c.push(U({
1615
+ for (let [e, t] of n) a.push(B(e, t));
1616
+ let o = { fontSize: i.edgeLabel }, s = [];
1617
+ for (let [t, n] of e.relationships.entries()) s.push(V({
1598
1618
  id: `e${t}`,
1599
1619
  source: n.from,
1600
1620
  target: n.to,
1601
1621
  label: n.label,
1602
- labelStyle: s
1622
+ labelStyle: o
1603
1623
  }));
1604
- let l = new Set(n.keys());
1624
+ let c = new Set(n.keys());
1605
1625
  for (let [t, n] of e.notes.entries()) {
1606
- let e = mn(t), u = o(n.text, i.edgeLabel, L.edgeLabel), d = {
1607
- width: u.width + K.notePadX * 2,
1608
- height: u.height + K.notePadY * 2
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
1609
1629
  };
1610
- r.set(e, d), a.push(H(e, d)), n.forClass !== void 0 && l.has(n.forClass) && c.push(U({
1611
- id: hn(e),
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),
1612
1632
  source: e,
1613
1633
  target: n.forClass,
1614
- labelStyle: s
1634
+ labelStyle: o
1615
1635
  }));
1616
1636
  }
1617
1637
  return {
1618
1638
  elkGraph: {
1619
1639
  id: "root",
1620
1640
  layoutOptions: {
1621
- ...se({
1622
- direction: ae(void 0, ie.class),
1623
- nodeSpacing: K.nodeSpacing,
1624
- layerSpacing: K.layerSpacing,
1625
- padding: K.padding
1641
+ ...Pe({
1642
+ direction: Me(void 0, je.class),
1643
+ nodeSpacing: W.nodeSpacing,
1644
+ layerSpacing: W.layerSpacing,
1645
+ padding: W.padding
1626
1646
  }),
1627
1647
  "elk.edgeLabels.placement": "CENTER"
1628
1648
  },
1629
1649
  children: a,
1630
- edges: c
1650
+ edges: s
1631
1651
  },
1632
1652
  classSizes: n,
1633
1653
  noteSizes: r
1634
1654
  };
1635
1655
  }
1636
- function _n(e, t, n, r) {
1656
+ function Gn(e, t, n, r) {
1637
1657
  let i = /* @__PURE__ */ new Map();
1638
1658
  for (let e of t.classes) i.set(e.id, e);
1639
1659
  let a = [];
@@ -1658,7 +1678,7 @@ function _n(e, t, n, r) {
1658
1678
  attrHeight: i.attrHeight,
1659
1679
  methodHeight: i.methodHeight,
1660
1680
  interaction: t.interactions.get(e.id),
1661
- inlineStyle: f(e.id, t),
1681
+ inlineStyle: y(e.id, t),
1662
1682
  className: t.classAssignments.get(e.id)
1663
1683
  });
1664
1684
  }
@@ -1669,7 +1689,7 @@ function _n(e, t, n, r) {
1669
1689
  if (!t)
1670
1690
  /* v8 ignore next */
1671
1691
  throw Error(`Missing ELK edge for relationship ${e}`);
1672
- let r = Pe(t), i = Fe(t);
1692
+ let r = st(t), i = ct(t);
1673
1693
  o.push({
1674
1694
  from: n.from,
1675
1695
  to: n.to,
@@ -1688,11 +1708,11 @@ function _n(e, t, n, r) {
1688
1708
  for (let t of e.children ?? []) l.set(t.id, t);
1689
1709
  let u = [];
1690
1710
  for (let [e, n] of t.notes.entries()) {
1691
- let t = mn(e), i = l.get(t), a = r.get(t);
1711
+ let t = Hn(e), i = l.get(t), a = r.get(t);
1692
1712
  if (!i || !a)
1693
1713
  /* v8 ignore next */
1694
1714
  throw Error(`Missing layout for note ${e}`);
1695
- let o = c.get(hn(t));
1715
+ let o = c.get(Un(t));
1696
1716
  u.push({
1697
1717
  id: t,
1698
1718
  text: n.text,
@@ -1701,7 +1721,7 @@ function _n(e, t, n, r) {
1701
1721
  y: i.y ?? 0,
1702
1722
  width: i.width ?? a.width,
1703
1723
  height: i.height ?? a.height,
1704
- ...o ? { linkPoints: Pe(o) } : {}
1724
+ ...o ? { linkPoints: st(o) } : {}
1705
1725
  });
1706
1726
  }
1707
1727
  return {
@@ -1712,7 +1732,7 @@ function _n(e, t, n, r) {
1712
1732
  notes: u
1713
1733
  };
1714
1734
  }
1715
- function vn(e, t = {}) {
1735
+ function Kn(e, t = {}) {
1716
1736
  if (e.classes.length === 0 && e.notes.length === 0) return {
1717
1737
  width: 0,
1718
1738
  height: 0,
@@ -1720,110 +1740,110 @@ function vn(e, t = {}) {
1720
1740
  relationships: [],
1721
1741
  notes: []
1722
1742
  };
1723
- let { elkGraph: n, classSizes: r, noteSizes: i } = gn(e, t);
1724
- return _n(M(n, t.layoutCache), e, r, i);
1743
+ let { elkGraph: n, classSizes: r, noteSizes: i } = Wn(e, t);
1744
+ return Gn(Te(n, t.layoutCache), e, r, i);
1725
1745
  }
1726
- function yn(e) {
1746
+ function qn(e) {
1727
1747
  if (e.length === 0) return 0;
1728
1748
  let t = 0;
1729
1749
  for (let n of e) {
1730
- let e = P(v(n), K.memberFontSize);
1750
+ let e = Ee(re(n), W.memberFontSize);
1731
1751
  e > t && (t = e);
1732
1752
  }
1733
1753
  return t;
1734
1754
  }
1735
1755
  //#endregion
1736
1756
  //#region packages/svg-renderer/src/class/renderer.ts
1737
- var bn = {
1757
+ var Jn = {
1738
1758
  memberSize: 11,
1739
1759
  memberWeight: 400,
1740
1760
  annotationSize: 10,
1741
1761
  annotationWeight: 500
1742
1762
  };
1743
- function xn(e, n, r = "Inter", i = !1, a = F, o, s, c, l = !0, u = {}) {
1744
- let d = [], f = l && e.classes.some((e) => !!p(e.interaction?.href));
1745
- d.push(G(g(e.width, e.height, n, i, s, c, f, u.styleAttribute), o)), d.push(t(r, !0, u.nonce)), d.push("<defs>"), d.push(Sn()), d.push("</defs>");
1746
- for (let t of e.relationships) d.push(On(t));
1747
- for (let t of e.notes) d.push(Dn(t));
1748
- for (let t of e.classes) d.push(Cn(t, a, l));
1749
- for (let t of e.notes) d.push(En(t, a));
1750
- for (let t of e.relationships) d.push(jn(t, a));
1763
+ function Yn(e, t, r = "Inter", i = !1, a = N, o, s, c, l = !0, u = {}) {
1764
+ 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));
1751
1771
  return d.push("</svg>"), d.join("\n");
1752
1772
  }
1753
- function Sn() {
1773
+ function Xn() {
1754
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>";
1755
1775
  }
1756
- function Cn(e, t, r = !0) {
1757
- let { x: i, y: o, width: s, height: c, headerHeight: l, attrHeight: d, inlineStyle: f } = e, h = [], g = e.interaction, _ = n(f?.fill ?? "var(--_node-fill)"), v = n(f?.stroke ?? "var(--_node-stroke)"), y = n(f?.["stroke-width"] ?? String(z.outerBox)), b = f?.fill ? _ : "var(--_group-hdr)", x = f?.color ? n(f.color) : f?.fill ? n(a(f.fill, "var(--_text)")) : void 0, S = e.annotation ? ` data-annotation="${n(e.annotation)}"` : "", C = m(e.className), w = [
1758
- `class="${C ? `class-node ${C}` : "class-node"}"`,
1759
- `data-id="${n(e.id)}"`,
1760
- `data-label="${n(e.label)}"`
1776
+ function Zn(e, t, n = !0) {
1777
+ 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
+ s`class="${w ? s`class-node ${w}` : "class-node"}"`,
1779
+ s`data-id="${i(e.id)}"`,
1780
+ s`data-label="${i(e.label)}"`
1761
1781
  ];
1762
- h.push(`<g ${w.join(" ")}${S}>`);
1763
- let T = r ? p(g?.href) : void 0;
1764
- if (T) {
1765
- let e = g?.target ? ` target="${n(g.target)}"` : "";
1766
- h.push(` <a href="${n(T)}"${e}>`);
1767
- }
1768
- r && g?.tooltip && h.push(` <title>${Pn(g.tooltip)}</title>`), h.push(` <rect x="${i}" y="${o}" width="${s}" height="${c}" rx="0" ry="0" fill="${_}" stroke="${v}" stroke-width="${y}" />`), h.push(` <rect x="${i}" y="${o}" width="${s}" height="${l}" rx="0" ry="0" fill="${b}" stroke="${v}" stroke-width="${y}" />`);
1769
- let E = o + l / 2;
1782
+ p.push(s`<g ${T.join(" ")}${C}>`);
1783
+ let E = n ? b(m?.href) : void 0;
1784
+ if (E) {
1785
+ let e = m?.target ? s` target="${i(m.target)}"` : "";
1786
+ p.push(s` <a href="${i(E)}"${e}>`);
1787
+ }
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
+ let D = a + u / 2;
1770
1790
  if (e.annotation) {
1771
- let t = o + 12;
1772
- h.push(` <text x="${i + s / 2}" y="${t}" text-anchor="middle" dy="${B}" font-size="${bn.annotationSize}" font-weight="${bn.annotationWeight}" font-style="italic" fill="${x ?? "var(--_text-muted)"}">&lt;&lt;${Pn(e.annotation)}&gt;&gt;</text>`), E = o + l / 2 + 6;
1791
+ 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;
1773
1793
  }
1774
- h.push(" " + u(e.label, i + s / 2, E, t.nodeLabel, `text-anchor="middle" font-size="${t.nodeLabel}" font-weight="700" fill="${x ?? "var(--_text)"}"`));
1775
- let D = o + l;
1776
- h.push(` <line x1="${i}" y1="${D}" x2="${i + s}" y2="${D}" stroke="${v}" stroke-width="${z.innerBox}" />`);
1794
+ 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
+ let O = a + u;
1796
+ p.push(s` <line x1="${r}" y1="${O}" x2="${r + o}" y2="${O}" ` + s`stroke="${g}" stroke-width="${L.innerBox}" />`);
1777
1797
  for (let t = 0; t < e.attributes.length; t++) {
1778
- let n = e.attributes[t], r = D + 4 + t * 20 + 10;
1779
- h.push(" " + wn(n, i + K.boxPadX, r, x));
1798
+ let n = e.attributes[t], i = O + 4 + t * 20 + 10;
1799
+ p.push(" " + Qn(n, r + W.boxPadX, i, S));
1780
1800
  }
1781
- let O = D + d;
1782
- h.push(` <line x1="${i}" y1="${O}" x2="${i + s}" y2="${O}" stroke="${v}" stroke-width="${z.innerBox}" />`);
1801
+ let k = O + d;
1802
+ p.push(s` <line x1="${r}" y1="${k}" x2="${r + o}" y2="${k}" ` + s`stroke="${g}" stroke-width="${L.innerBox}" />`);
1783
1803
  for (let t = 0; t < e.methods.length; t++) {
1784
- let n = e.methods[t], r = O + 4 + t * 20 + 10;
1785
- h.push(" " + wn(n, i + K.boxPadX, r, x));
1804
+ let n = e.methods[t], i = k + 4 + t * 20 + 10;
1805
+ p.push(" " + Qn(n, r + W.boxPadX, i, S));
1786
1806
  }
1787
- return T && h.push(" </a>"), h.push("</g>"), h.join("\n");
1807
+ return E && p.push(" </a>"), p.push("</g>"), p.join("\n");
1788
1808
  }
1789
- function wn(e, t, n, r) {
1790
- let i = e.isAbstract ? " font-style=\"italic\"" : "", a = e.isStatic ? " text-decoration=\"underline\"" : "", o = r ?? "var(--_text-faint)", s = r ?? "var(--_text-sec)", c = r ?? "var(--_text-muted)", l = [];
1791
- e.visibility && l.push(`<tspan fill="${o}">${Pn(e.visibility)} </tspan>`);
1792
- let u = e.isMethod ? `${e.name}(${e.params || ""})` : e.name;
1793
- return l.push(`<tspan fill="${s}">${Pn(u)}</tspan>`), e.type && (l.push(`<tspan fill="${o}">: </tspan>`), l.push(`<tspan fill="${c}">${Pn(e.type)}</tspan>`)), `<text x="${t}" y="${n}" class="mono" dy="${B}" font-size="${bn.memberSize}" font-weight="${bn.memberWeight}"${i}${a}>${l.join("")}</text>`;
1794
- }
1795
- var Tn = 6;
1796
- function En(e, t) {
1797
- let { x: r, y: i, width: a, height: o } = e, s = e.forClass === void 0 ? "" : ` data-for="${n(e.forClass)}"`, c = [
1798
- `${r},${i}`,
1799
- `${r + a - Tn},${i}`,
1800
- `${r + a},${i + Tn}`,
1801
- `${r + a},${i + o}`,
1802
- `${r},${i + o}`
1803
- ].join(" "), l = `${r + a - Tn},${i} ${r + a},${i + Tn} ${r + a - Tn},${i + Tn}`;
1804
- return `<g class="class-note"${s}>\n <polygon points="${c}" fill="var(--bg)" stroke="var(--_node-stroke)" stroke-width="${z.innerBox}" />\n <polygon points="${l}" fill="var(--_inner-stroke)" stroke="var(--_node-stroke)" stroke-width="${z.innerBox}" />\n ${u(e.text, r + a / 2, i + o / 2, t.edgeLabel, `font-size="${t.edgeLabel}" text-anchor="middle" font-weight="${L.edgeLabel}" fill="var(--_text-muted)"`)}\n</g>`;
1805
- }
1806
- function Dn(e) {
1809
+ function Qn(e, t, n, r) {
1810
+ 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
+ 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
+ }
1815
+ var G = 6;
1816
+ function $n(e, t) {
1817
+ let { x: n, y: r, width: a, height: o } = e, c = e.forClass === void 0 ? "" : s` data-for="${i(e.forClass)}"`, l = [
1818
+ s`${n},${r}`,
1819
+ s`${n + a - G},${r}`,
1820
+ s`${n + a},${r + G}`,
1821
+ s`${n + a},${r + o}`,
1822
+ s`${n},${r + o}`
1823
+ ].join(" "), u = s`${n + a - G},${r} ${n + a},${r + G} ` + s`${n + a - G},${r + G}`;
1824
+ 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
+ function er(e) {
1807
1827
  if (!e.linkPoints || e.linkPoints.length < 2) return "";
1808
- let t = e.linkPoints.map((e) => `${e.x},${e.y}`).join(" ");
1809
- return `<polyline class="class-note-link"${e.forClass === void 0 ? "" : ` data-for="${n(e.forClass)}"`} points="${t}" fill="none" stroke="var(--_line)" stroke-width="${z.connector}" stroke-dasharray="2 3" />`;
1828
+ let t = e.linkPoints.map((e) => s`${e.x},${e.y}`).join(" "), n = e.forClass === void 0 ? "" : s` data-for="${i(e.forClass)}"`;
1829
+ return s`<polyline class="class-note-link"${n} points="${t}" ` + s`fill="none" stroke="var(--_line)" stroke-width="${L.connector}" stroke-dasharray="2 3" />`;
1810
1830
  }
1811
- function On(e) {
1831
+ function tr(e) {
1812
1832
  if (e.points.length < 2) return "";
1813
- let t = e.points.map((e) => `${e.x},${e.y}`).join(" "), r = e.type === "dependency" || e.type === "realization" ? " stroke-dasharray=\"6 4\"" : "", i = kn(e.type, e.markerAt), a = [
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 = [
1814
1834
  "class=\"class-relationship\"",
1815
- `data-from="${n(e.from)}"`,
1816
- `data-to="${n(e.to)}"`,
1817
- `data-type="${e.type}"`,
1818
- `data-marker-at="${e.markerAt}"`
1835
+ s`data-from="${i(e.from)}"`,
1836
+ s`data-to="${i(e.to)}"`,
1837
+ s`data-type="${e.type}"`,
1838
+ s`data-marker-at="${e.markerAt}"`
1819
1839
  ];
1820
- return e.label && a.push(`data-label="${n(e.label)}"`), e.fromCardinality && a.push(`data-from-cardinality="${n(e.fromCardinality)}"`), e.toCardinality && a.push(`data-to-cardinality="${n(e.toCardinality)}"`), `<polyline ${a.join(" ")} points="${t}" fill="none" stroke="var(--_line)" stroke-width="${z.connector}"${r}${i} />`;
1840
+ 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} />`;
1821
1841
  }
1822
- function kn(e, t) {
1823
- let n = An(e);
1824
- return n ? t === "from" ? ` marker-start="url(#${n})"` : ` marker-end="url(#${n})"` : "";
1842
+ function nr(e, t) {
1843
+ let n = rr(e);
1844
+ return n ? t === "from" ? s` marker-start="url(#${n})"` : s` marker-end="url(#${n})"` : "";
1825
1845
  }
1826
- function An(e) {
1846
+ function rr(e) {
1827
1847
  switch (e) {
1828
1848
  case "inheritance":
1829
1849
  case "realization": return "cls-inherit";
@@ -1834,30 +1854,30 @@ function An(e) {
1834
1854
  default: return null;
1835
1855
  }
1836
1856
  }
1837
- function jn(e, t) {
1857
+ function ir(e, t) {
1838
1858
  if (!e.label && !e.fromCardinality && !e.toCardinality || e.points.length < 2) return "";
1839
1859
  let n = [];
1840
1860
  if (e.label) {
1841
- let r = e.labelPosition ?? Mn(e.points);
1842
- n.push(u(e.label, r.x, r.y - 8, t.edgeLabel, `font-size="${t.edgeLabel}" text-anchor="middle" font-weight="${L.edgeLabel}" fill="var(--_text-muted)"`));
1861
+ let r = e.labelPosition ?? ar(e.points);
1862
+ 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)"`));
1843
1863
  }
1844
1864
  if (e.fromCardinality && e.points.length >= 2) {
1845
- let r = e.points[0], i = e.points[1], a = Nn(r, i);
1846
- n.push(u(e.fromCardinality, r.x + a.x, r.y + a.y, t.edgeLabel, `font-size="${t.edgeLabel}" text-anchor="middle" font-weight="${L.edgeLabel}" fill="var(--_text-muted)"`));
1865
+ let r = e.points[0], i = e.points[1], a = or(r, i);
1866
+ 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)"`));
1847
1867
  }
1848
1868
  if (e.toCardinality && e.points.length >= 2) {
1849
- let r = e.points[e.points.length - 1], i = e.points[e.points.length - 2], a = Nn(r, i);
1850
- n.push(u(e.toCardinality, r.x + a.x, r.y + a.y, t.edgeLabel, `font-size="${t.edgeLabel}" text-anchor="middle" font-weight="${L.edgeLabel}" fill="var(--_text-muted)"`));
1869
+ let r = e.points[e.points.length - 1], i = e.points[e.points.length - 2], a = or(r, i);
1870
+ 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)"`));
1851
1871
  }
1852
1872
  return n.join("\n");
1853
1873
  }
1854
- function Mn(e) {
1874
+ function ar(e) {
1855
1875
  return e.length === 0 ? {
1856
1876
  x: 0,
1857
1877
  y: 0
1858
1878
  } : e[Math.floor(e.length / 2)];
1859
1879
  }
1860
- function Nn(e, t) {
1880
+ function or(e, t) {
1861
1881
  let n = t.x - e.x, r = t.y - e.y;
1862
1882
  return Math.abs(n) > Math.abs(r) ? {
1863
1883
  x: n > 0 ? 14 : -14,
@@ -1867,7 +1887,7 @@ function Nn(e, t) {
1867
1887
  y: r > 0 ? 14 : -14
1868
1888
  };
1869
1889
  }
1870
- var Pn = r, q = {
1890
+ var sr = a, K = {
1871
1891
  padding: 40,
1872
1892
  boxPadX: 14,
1873
1893
  headerHeight: 34,
@@ -1878,24 +1898,24 @@ var Pn = r, q = {
1878
1898
  nodeSpacing: 70,
1879
1899
  layerSpacing: 90
1880
1900
  };
1881
- function Fn(e, t) {
1882
- let n = /* @__PURE__ */ new Map(), r = I(t.fontSizes);
1901
+ function cr(e, t) {
1902
+ let n = /* @__PURE__ */ new Map(), r = P(t.fontSizes);
1883
1903
  for (let t of e.entities) {
1884
- let e = N(t.label, r.nodeLabel, L.nodeLabel), i = 0;
1904
+ let e = M(t.label, r.nodeLabel, F.nodeLabel), i = 0;
1885
1905
  for (let e of t.attributes) {
1886
- let t = P(`${e.type} ${e.name}${e.keys.length > 0 ? " " + e.keys.join(",") : ""}`, q.attrFontSize);
1906
+ let t = Ee(`${e.type} ${e.name}${e.keys.length > 0 ? " " + e.keys.join(",") : ""}`, K.attrFontSize);
1887
1907
  t > i && (i = t);
1888
1908
  }
1889
- let a = Math.max(q.minWidth, e + q.boxPadX * 2, i + q.boxPadX * 2), o = q.headerHeight + Math.max(t.attributes.length, 1) * q.rowHeight;
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;
1890
1910
  n.set(t.id, {
1891
1911
  width: a,
1892
1912
  height: o
1893
1913
  });
1894
1914
  }
1895
1915
  let i = [];
1896
- for (let [e, t] of n) i.push(H(e, t));
1916
+ for (let [e, t] of n) i.push(B(e, t));
1897
1917
  let a = { fontSize: r.edgeLabel }, o = [];
1898
- for (let [t, n] of e.relationships.entries()) o.push(U({
1918
+ for (let [t, n] of e.relationships.entries()) o.push(V({
1899
1919
  id: `e${t}`,
1900
1920
  source: n.entity1,
1901
1921
  target: n.entity2,
@@ -1906,11 +1926,11 @@ function Fn(e, t) {
1906
1926
  elkGraph: {
1907
1927
  id: "root",
1908
1928
  layoutOptions: {
1909
- ...se({
1910
- direction: ae(e.direction, ie.er),
1911
- nodeSpacing: q.nodeSpacing,
1912
- layerSpacing: q.layerSpacing,
1913
- padding: q.padding
1929
+ ...Pe({
1930
+ direction: Me(e.direction, je.er),
1931
+ nodeSpacing: K.nodeSpacing,
1932
+ layerSpacing: K.layerSpacing,
1933
+ padding: K.padding
1914
1934
  }),
1915
1935
  "elk.edgeLabels.placement": "CENTER"
1916
1936
  },
@@ -1920,7 +1940,7 @@ function Fn(e, t) {
1920
1940
  entitySizes: n
1921
1941
  };
1922
1942
  }
1923
- function In(e, t, n) {
1943
+ function lr(e, t, n) {
1924
1944
  let r = /* @__PURE__ */ new Map();
1925
1945
  for (let e of t.entities) r.set(e.id, e);
1926
1946
  let i = [];
@@ -1939,14 +1959,14 @@ function In(e, t, n) {
1939
1959
  y: t.y ?? 0,
1940
1960
  width: t.width ?? r.width,
1941
1961
  height: t.height ?? r.height,
1942
- headerHeight: q.headerHeight,
1943
- rowHeight: q.rowHeight
1962
+ headerHeight: K.headerHeight,
1963
+ rowHeight: K.rowHeight
1944
1964
  });
1945
1965
  }
1946
1966
  }
1947
1967
  let a = [];
1948
1968
  for (let [n, r] of (e.edges ?? []).entries()) {
1949
- let e = t.relationships[n], i = Pe(r);
1969
+ let e = t.relationships[n], i = st(r);
1950
1970
  a.push({
1951
1971
  entity1: e.entity1,
1952
1972
  entity2: e.entity2,
@@ -1964,101 +1984,101 @@ function In(e, t, n) {
1964
1984
  relationships: a
1965
1985
  };
1966
1986
  }
1967
- function Ln(e, t = {}) {
1987
+ function ur(e, t = {}) {
1968
1988
  if (e.entities.length === 0) return {
1969
1989
  width: 0,
1970
1990
  height: 0,
1971
1991
  entities: [],
1972
1992
  relationships: []
1973
1993
  };
1974
- let { elkGraph: n, entitySizes: r } = Fn(e, t);
1975
- return In(M(n, t.layoutCache), e, r);
1994
+ let { elkGraph: n, entitySizes: r } = cr(e, t);
1995
+ return lr(Te(n, t.layoutCache), e, r);
1976
1996
  }
1977
1997
  //#endregion
1978
1998
  //#region packages/svg-renderer/src/er/renderer.ts
1979
- var J = {
1999
+ var q = {
1980
2000
  attrSize: 11,
1981
2001
  attrWeight: 400,
1982
2002
  keySize: 9,
1983
2003
  keyWeight: 600
1984
2004
  };
1985
- function Rn(e, n, r = "Inter", i = !1, a = F, o, s, c, l = {}) {
2005
+ function dr(e, t, r = "Inter", i = !1, a = N, o, s, c, l = {}) {
1986
2006
  let u = [];
1987
- u.push(G(g(e.width, e.height, n, i, s, c, void 0, l.styleAttribute), o)), u.push(t(r, !0, l.nonce)), u.push("<defs>"), u.push("</defs>");
1988
- for (let t of e.relationships) u.push(Vn(t));
1989
- for (let t of e.entities) u.push(zn(t, a));
1990
- for (let t of e.relationships) u.push(Un(t));
1991
- for (let t of e.relationships) u.push(Hn(t, a));
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));
1992
2012
  return u.push("</svg>"), u.join("\n");
1993
2013
  }
1994
- function zn(e, t) {
1995
- let { id: r, x: i, y: a, width: o, height: s, headerHeight: c, rowHeight: l, label: d, attributes: f } = e, p = [];
1996
- p.push(`<g class="entity" data-id="${n(r)}" data-label="${n(d)}">`), p.push(` <rect x="${i}" y="${a}" width="${o}" height="${s}" rx="0" ry="0" fill="var(--_node-fill)" stroke="var(--_node-stroke)" stroke-width="${z.outerBox}" />`), p.push(` <rect x="${i}" y="${a}" width="${o}" height="${c}" rx="0" ry="0" fill="var(--_group-hdr)" stroke="var(--_node-stroke)" stroke-width="${z.outerBox}" />`), p.push(" " + u(d, i + o / 2, a + c / 2, t.nodeLabel, `text-anchor="middle" font-size="${t.nodeLabel}" font-weight="700" fill="var(--_text)"`));
1997
- let m = a + c;
1998
- p.push(` <line x1="${i}" y1="${m}" x2="${i + o}" y2="${m}" stroke="var(--_node-stroke)" stroke-width="${z.innerBox}" />`);
2014
+ function fr(e, t) {
2015
+ let { id: n, x: r, y: a, width: o, height: c, headerHeight: l, rowHeight: u, label: d, attributes: f } = e, p = [];
2016
+ 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
+ let m = a + l;
2018
+ p.push(s` <line x1="${r}" y1="${m}" x2="${r + o}" y2="${m}" ` + s`stroke="var(--_node-stroke)" stroke-width="${L.innerBox}" />`);
1999
2019
  for (let e = 0; e < f.length; e++) {
2000
- let t = f[e], n = m + e * l + l / 2;
2001
- p.push(" " + Bn(t, i, n, o).replace(/\n/g, "\n "));
2020
+ let t = f[e], n = m + e * u + u / 2;
2021
+ p.push(" " + pr(t, r, n, o).replace(/\n/g, "\n "));
2002
2022
  }
2003
- return f.length === 0 && p.push(` <text x="${i + o / 2}" y="${m + l / 2}" text-anchor="middle" dy="${B}" font-size="${J.attrSize}" fill="var(--_text-faint)" font-style="italic">(no attributes)</text>`), p.push("</g>"), p.join("\n");
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");
2004
2024
  }
2005
- function Bn(e, t, n, r) {
2025
+ function pr(e, t, n, r) {
2006
2026
  let i = [], a = e.comment && e.comment.length > 0;
2007
2027
  if (e.comment && e.comment.length > 0) {
2008
2028
  let t = e.comment.replace(/<br\s*\/?>/gi, "\n");
2009
- i.push(`<g><title>${Kn(t)}</title>`);
2029
+ i.push(s`<g><title>${yr(t)}</title>`);
2010
2030
  }
2011
2031
  let o = 0;
2012
- e.keys.length > 0 && (o = N(e.keys.join(","), J.keySize, J.keyWeight) + 8, i.push(`<rect x="${t + 6}" y="${n - 7}" width="${o}" height="14" rx="2" ry="2" fill="var(--_key-badge)" />`), i.push(`<text x="${t + 6 + o / 2}" y="${n}" text-anchor="middle" dy="${B}" font-size="${J.keySize}" font-weight="${J.keyWeight}" fill="var(--_text-sec)">${e.keys.join(",")}</text>`));
2013
- let s = t + 8 + (o > 0 ? o + 6 : 0);
2014
- i.push(`<text x="${s}" y="${n}" class="mono" dy="${B}" font-size="${J.attrSize}" font-weight="${J.attrWeight}"><tspan fill="var(--_text-muted)">${Kn(e.type)}</tspan></text>`);
2015
- let c = t + r - 8;
2016
- return i.push(`<text x="${c}" y="${n}" class="mono" text-anchor="end" dy="${B}" font-size="${J.attrSize}" font-weight="${J.attrWeight}"><tspan fill="var(--_text-sec)">${Kn(e.name)}</tspan></text>`), a && i.push("</g>"), i.join("\n");
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
+ 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
+ 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");
2017
2037
  }
2018
- function Vn(e) {
2038
+ function mr(e) {
2019
2039
  if (e.points.length < 2) return "";
2020
- let t = e.points.map((e) => `${e.x},${e.y}`).join(" "), r = e.identifying ? "" : " stroke-dasharray=\"6 4\"", i = e.label ? ` data-label="${n(e.label)}"` : "";
2021
- return `<polyline ${[
2040
+ 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 = [
2022
2041
  "class=\"er-relationship\"",
2023
- `data-entity1="${n(e.entity1)}"`,
2024
- `data-entity2="${n(e.entity2)}"`,
2025
- `data-cardinality1="${e.cardinality1}"`,
2026
- `data-cardinality2="${e.cardinality2}"`,
2027
- `data-identifying="${e.identifying}"`
2028
- ].join(" ")}${i} points="${t}" fill="none" stroke="var(--_line)" stroke-width="${z.connector}"${r} />`;
2029
- }
2030
- function Hn(e, t) {
2042
+ s`data-entity1="${i(e.entity1)}"`,
2043
+ s`data-entity2="${i(e.entity2)}"`,
2044
+ s`data-cardinality1="${e.cardinality1}"`,
2045
+ s`data-cardinality2="${e.cardinality2}"`,
2046
+ s`data-identifying="${e.identifying}"`
2047
+ ];
2048
+ return s`<polyline ${a.join(" ")}${r} points="${t}" fill="none" stroke="var(--_line)" ` + s`stroke-width="${L.connector}"${n} />`;
2049
+ }
2050
+ function hr(e, t) {
2031
2051
  if (!e.label || e.points.length < 2) return "";
2032
- let n = Gn(e.points), r = o(e.label, t.edgeLabel, L.edgeLabel), i = r.width + 8, a = r.height + 6;
2033
- return `<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" />\n${u(e.label, n.x, n.y, t.edgeLabel, `text-anchor="middle" font-size="${t.edgeLabel}" font-weight="${L.edgeLabel}" fill="var(--_text-muted)"`)}`;
2052
+ let n = vr(e.points), r = d(e.label, t.edgeLabel, F.edgeLabel), i = r.width + 8, a = r.height + 6;
2053
+ 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)"`)}`;
2034
2054
  }
2035
- function Un(e) {
2055
+ function gr(e) {
2036
2056
  if (e.points.length < 2) return "";
2037
2057
  let t = [], n = e.points[0], r = e.points[1];
2038
- t.push(Wn(n, r, e.cardinality1));
2058
+ t.push(_r(n, r, e.cardinality1));
2039
2059
  let i = e.points[e.points.length - 1], a = e.points[e.points.length - 2];
2040
- return t.push(Wn(i, a, e.cardinality2)), t.join("\n");
2060
+ return t.push(_r(i, a, e.cardinality2)), t.join("\n");
2041
2061
  }
2042
- function Wn(e, t, n) {
2043
- let r = [], i = z.connector + .25, a = e.x - t.x, o = e.y - t.y, s = Math.sqrt(a * a + o * o);
2044
- if (s === 0) return "";
2045
- let c = a / s, l = o / s, u = -l, d = c, f = e.x - c * 4, p = e.y - l * 4, m = e.x - c * 16, h = e.y - l * 16, g = n === "one" || n === "zero-one", _ = n === "many" || n === "zero-many", v = n === "zero-one" || n === "zero-many";
2046
- if (g) {
2047
- r.push(`<line x1="${f + u * 6}" y1="${p + d * 6}" x2="${f - u * 6}" y2="${p - d * 6}" stroke="var(--_line)" stroke-width="${i}" />`);
2048
- let e = f - c * 4, t = p - l * 4;
2049
- r.push(`<line x1="${e + u * 6}" y1="${t + d * 6}" x2="${e - u * 6}" y2="${t - d * 6}" stroke="var(--_line)" stroke-width="${i}" />`);
2050
- }
2062
+ function _r(e, t, n) {
2063
+ let r = [], i = L.connector + .25, a = e.x - t.x, o = e.y - t.y, c = Math.sqrt(a * a + o * o);
2064
+ if (c === 0) return "";
2065
+ 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";
2051
2066
  if (_) {
2052
- let e = f, t = p;
2053
- r.push(`<line x1="${e + u * 7}" y1="${t + d * 7}" x2="${m}" y2="${h}" stroke="var(--_line)" stroke-width="${i}" />`), r.push(`<line x1="${e}" y1="${t}" x2="${m}" y2="${h}" stroke="var(--_line)" stroke-width="${i}" />`), r.push(`<line x1="${e - u * 7}" y1="${t - d * 7}" x2="${m}" y2="${h}" stroke="var(--_line)" stroke-width="${i}" />`);
2067
+ r.push(s`<line x1="${p + d * 6}" y1="${m + f * 6}" ` + s`x2="${p - d * 6}" y2="${m - f * 6}" ` + s`stroke="var(--_line)" stroke-width="${i}" />`);
2068
+ let e = p - l * 4, t = m - u * 4;
2069
+ r.push(s`<line x1="${e + d * 6}" y1="${t + f * 6}" ` + s`x2="${e - d * 6}" y2="${t - f * 6}" ` + s`stroke="var(--_line)" stroke-width="${i}" />`);
2054
2070
  }
2055
2071
  if (v) {
2056
- let t = _ ? 20 : 12, n = e.x - c * t, a = e.y - l * t;
2057
- r.push(`<circle cx="${n}" cy="${a}" r="4" fill="var(--bg)" stroke="var(--_line)" stroke-width="${i}" />`);
2072
+ let e = p, t = m;
2073
+ 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
+ if (y) {
2076
+ let t = v ? 20 : 12, n = e.x - l * t, a = e.y - u * t;
2077
+ r.push(s`<circle cx="${n}" cy="${a}" r="4" ` + s`fill="var(--bg)" stroke="var(--_line)" stroke-width="${i}" />`);
2058
2078
  }
2059
2079
  return r.join("\n");
2060
2080
  }
2061
- function Gn(e) {
2081
+ function vr(e) {
2062
2082
  if (e.length === 0) return {
2063
2083
  x: 0,
2064
2084
  y: 0
@@ -2084,7 +2104,7 @@ function Gn(e) {
2084
2104
  }
2085
2105
  return e[e.length - 1];
2086
2106
  }
2087
- var Kn = r, qn = {
2107
+ var yr = a, J = {
2088
2108
  padding: 30,
2089
2109
  actorGap: 140,
2090
2110
  actorHeight: 40,
@@ -2106,20 +2126,20 @@ var Kn = r, qn = {
2106
2126
  noteStackGap: 4,
2107
2127
  boxPad: 10
2108
2128
  };
2109
- function Jn(e) {
2129
+ function br(e) {
2110
2130
  return e + 8;
2111
2131
  }
2112
- function Yn(e) {
2132
+ function xr(e) {
2113
2133
  return {
2114
- ...qn,
2115
- actorHeight: e?.actorHeight ?? qn.actorHeight,
2116
- headerGap: e?.headerGap ?? qn.headerGap,
2117
- messageRowHeight: e?.messageRowHeight ?? qn.messageRowHeight,
2118
- noteOffsetAfterMessage: e?.noteOffsetAfterMessage ?? qn.noteOffsetAfterMessage,
2119
- noteStackGap: e?.noteStackGap ?? qn.noteStackGap
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
2120
2140
  };
2121
2141
  }
2122
- function Xn(e, t = {}) {
2142
+ function Sr(e, t = {}) {
2123
2143
  if (e.actors.length === 0) return {
2124
2144
  width: 0,
2125
2145
  height: 0,
@@ -2131,8 +2151,8 @@ function Xn(e, t = {}) {
2131
2151
  notes: [],
2132
2152
  boxes: []
2133
2153
  };
2134
- let n = Yn(t.sequence), r = I(t.fontSizes), i = e.actors.map((e) => {
2135
- let t = N(e.label, r.nodeLabel, L.nodeLabel);
2154
+ let n = xr(t.sequence), r = P(t.fontSizes), i = e.actors.map((e) => {
2155
+ let t = M(e.label, r.nodeLabel, F.nodeLabel);
2136
2156
  return Math.max(t + n.actorPadX * 2, 80);
2137
2157
  }), a = [], o = n.padding + i[0] / 2;
2138
2158
  for (let t = 0; t < e.actors.length; t++) {
@@ -2144,7 +2164,7 @@ function Xn(e, t = {}) {
2144
2164
  }
2145
2165
  let s = /* @__PURE__ */ new Map();
2146
2166
  for (let t = 0; t < e.actors.length; t++) s.set(e.actors[t].id, t);
2147
- let c = e.boxes.filter((e) => e.actorIds.length > 0), l = c.some((e) => e.label !== ""), u = c.length === 0 ? 0 : n.boxPad + (l ? Jn(r.edgeLabel) : 0), d = n.padding + u, f = e.actors.map((e, 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) => ({
2148
2168
  id: e.id,
2149
2169
  label: e.label,
2150
2170
  type: e.type,
@@ -2179,7 +2199,7 @@ function Xn(e, t = {}) {
2179
2199
  if (y && y.length > 0) {
2180
2200
  let e = m;
2181
2201
  for (let t of y) {
2182
- let o = Math.max(n.noteWidth, N(t.text, r.edgeLabel, L.edgeLabel) + n.notePadX * 2), c = r.edgeLabel + n.notePadY * 2, l = s.get(t.actorIds[0] ?? "") ?? 0, u;
2202
+ let o = Math.max(n.noteWidth, M(t.text, r.edgeLabel, F.edgeLabel) + n.notePadX * 2), c = r.edgeLabel + n.notePadY * 2, l = s.get(t.actorIds[0] ?? "") ?? 0, u;
2183
2203
  if (t.position === "left") u = a[l] - i[l] / 2 - o - n.noteGap;
2184
2204
  else if (t.position === "right") u = a[l] + i[l] / 2 + n.noteGap;
2185
2205
  else if (t.actorIds.length > 1) {
@@ -2254,7 +2274,7 @@ function Xn(e, t = {}) {
2254
2274
  if (b && b.length > 0) {
2255
2275
  let e = u ? n.selfMessageHeight : 0, o = h[t].y + e + n.noteOffsetAfterMessage;
2256
2276
  for (let e of b) {
2257
- let t = Math.max(n.noteWidth, N(e.text, r.edgeLabel, L.edgeLabel) + n.notePadX * 2), c = r.edgeLabel + n.notePadY * 2, l = s.get(e.actorIds[0] ?? "") ?? 0, u;
2277
+ let t = Math.max(n.noteWidth, M(e.text, r.edgeLabel, F.edgeLabel) + n.notePadX * 2), c = r.edgeLabel + n.notePadY * 2, l = s.get(e.actorIds[0] ?? "") ?? 0, u;
2258
2278
  if (e.position === "left") u = a[l] - i[l] / 2 - t - n.noteGap;
2259
2279
  else if (e.position === "right") u = a[l] + i[l] / 2 + n.noteGap;
2260
2280
  else if (e.actorIds.length > 1) {
@@ -2294,7 +2314,7 @@ function Xn(e, t = {}) {
2294
2314
  let f = Math.min(...d), p = Math.max(...d), g = a[f] - i[f] / 2 - n.blockPadX, _ = a[p] + i[p] / 2 + n.blockPadX, v = t.dividers.map((e) => {
2295
2315
  let t = h[e.index], n = t?.y ?? m, i = 28;
2296
2316
  if (e.label && t?.label) {
2297
- let n = N(`[${e.label}]`, r.edgeLabel, L.edgeLabel), a = g + 8, o = a + n, s = N(t.label, r.edgeLabel, L.edgeLabel), c = t.isSelf ? t.x1 + 36 : (t.x1 + t.x2) / 2 - s / 2, l = c + s;
2317
+ let n = M(`[${e.label}]`, r.edgeLabel, F.edgeLabel), a = g + 8, o = a + n, s = M(t.label, r.edgeLabel, F.edgeLabel), c = t.isSelf ? t.x1 + 36 : (t.x1 + t.x2) / 2 - s / 2, l = c + s;
2298
2318
  o > c && a < l && (i = 36);
2299
2319
  }
2300
2320
  return {
@@ -2317,7 +2337,7 @@ function Xn(e, t = {}) {
2317
2337
  for (let e of D) k = Math.min(k, e.x), A = Math.max(A, e.x + e.width);
2318
2338
  for (let e of p) k = Math.min(k, e.x), A = Math.max(A, e.x + e.width);
2319
2339
  for (let e of h) if (e.isSelf && e.label) {
2320
- let t = e.x1 + 30 + 8, n = N(e.label, r.edgeLabel, L.edgeLabel);
2340
+ let t = e.x1 + 30 + 8, n = M(e.label, r.edgeLabel, F.edgeLabel);
2321
2341
  A = Math.max(A, t + n + 8);
2322
2342
  }
2323
2343
  let j = k < n.padding ? n.padding - k : 0;
@@ -2334,7 +2354,7 @@ function Xn(e, t = {}) {
2334
2354
  let r = e.actors[t].createdAt;
2335
2355
  r !== void 0 && (f[t].y = (h[r]?.y ?? m) - n.actorHeight / 2);
2336
2356
  }
2337
- let M = e.actors.map((e, t) => {
2357
+ let ee = e.actors.map((e, t) => {
2338
2358
  let r = e.destroyedAt, i = {
2339
2359
  actorId: e.id,
2340
2360
  x: a[t],
@@ -2344,12 +2364,12 @@ function Xn(e, t = {}) {
2344
2364
  return r !== void 0 && (i.destroyed = !0), i;
2345
2365
  });
2346
2366
  for (let e of p) e.height = O - n.padding + n.boxPad - e.y;
2347
- let P = A + j + n.padding;
2367
+ let te = A + j + n.padding;
2348
2368
  return {
2349
- width: Math.max(P, 200),
2369
+ width: Math.max(te, 200),
2350
2370
  height: Math.max(O, 100),
2351
2371
  actors: f,
2352
- lifelines: M,
2372
+ lifelines: ee,
2353
2373
  messages: h,
2354
2374
  activations: x,
2355
2375
  blocks: E,
@@ -2359,79 +2379,79 @@ function Xn(e, t = {}) {
2359
2379
  }
2360
2380
  //#endregion
2361
2381
  //#region packages/svg-renderer/src/sequence/renderer.ts
2362
- function Zn(e, n, r = "Inter", i = !1, a = F, o, s, c, l = {}) {
2382
+ function Cr(e, t, r = "Inter", i = !1, a = N, o, s, c, l = {}) {
2363
2383
  let u = [];
2364
- u.push(G(g(e.width, e.height, n, i, s, c, void 0, l.styleAttribute), o)), u.push(t(r, !1, l.nonce)), u.push("<defs>"), u.push(Qn()), u.push("</defs>");
2365
- for (let t of e.boxes) u.push(or(t, a));
2366
- for (let t of e.blocks) u.push(sr(t, a));
2367
- for (let t of e.lifelines) u.push(er(t));
2368
- for (let t of e.activations) u.push(nr(t));
2369
- for (let t of e.messages) u.push(rr(t, a));
2370
- for (let t of e.notes) u.push(cr(t, a));
2371
- for (let t of e.actors) u.push($n(t, a));
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));
2372
2392
  return u.push("</svg>"), u.join("\n");
2373
2393
  }
2374
- function Qn() {
2375
- let e = V.width, t = V.height;
2376
- return ` <marker id="seq-arrow" markerWidth="${e}" markerHeight="${t}" refX="${e}" refY="${t / 2}" orient="auto-start-reverse">\n <polygon points="0 0, ${e} ${t / 2}, 0 ${t}" fill="var(--_arrow)" />\n </marker>\n <marker id="seq-arrow-open" markerWidth="${e}" markerHeight="${t}" refX="${e}" refY="${t / 2}" orient="auto-start-reverse">\n <polyline points="0 0, ${e} ${t / 2}, 0 ${t}" fill="none" stroke="var(--_arrow)" stroke-width="1" />\n </marker>`;
2394
+ function wr() {
2395
+ let e = z.width, t = z.height;
2396
+ 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>";
2377
2397
  }
2378
- function $n(e, t) {
2379
- let { id: r, x: i, y: a, width: o, height: s, label: c, type: l } = e, d = [];
2380
- if (d.push(`<g class="actor" data-id="${n(r)}" data-label="${n(c)}" data-type="${l}">`), l === "actor") {
2381
- let e = s / 24 * .9, n = i - 12 * e, r = a + (s - 24 * e) / 2, o = z.outerBox / e, l = "var(--_line)";
2382
- d.push(` <g transform="translate(${n},${r}) scale(${e})">\n <path d="M21 12C21 16.9706 16.9706 21 12 21C7.02944 21 3 16.9706 3 12C3 7.02944 7.02944 3 12 3C16.9706 3 21 7.02944 21 12Z" fill="none" stroke="${l}" stroke-width="${o}" />\n <path d="M15 10C15 11.6569 13.6569 13 12 13C10.3431 13 9 11.6569 9 10C9 8.34315 10.3431 7 12 7C13.6569 7 15 8.34315 15 10Z" fill="none" stroke="${l}" stroke-width="${o}" />\n <path d="M5.62842 18.3563C7.08963 17.0398 9.39997 16 12 16C14.6 16 16.9104 17.0398 18.3716 18.3563" fill="none" stroke="${l}" stroke-width="${o}" />\n </g>`), d.push(" " + u(c, i, a + s + 14, t.nodeLabel, `font-size="${t.nodeLabel}" text-anchor="middle" font-weight="${L.nodeLabel}" fill="var(--_text)"`));
2398
+ function Tr(e, t) {
2399
+ let { id: n, x: r, y: a, width: o, height: c, label: l, type: u } = e, d = [];
2400
+ if (d.push(s`<g class="actor" data-id="${i(n)}" data-label="${i(l)}" data-type="${u}">`), u === "actor") {
2401
+ let e = c / 24 * .9, n = r - 12 * e, i = a + (c - 24 * e) / 2, o = L.outerBox / e, u = "var(--_line)";
2402
+ d.push(s` <g transform="translate(${n},${i}) scale(${e})">` + s`\n <path d="M21 12C21 16.9706 16.9706 21 12 21C7.02944 21 3 16.9706 3 12C3 7.02944 7.02944 3 12 3C16.9706 3 21 7.02944 21 12Z" fill="none" stroke="${u}" stroke-width="${o}" />` + s`\n <path d="M15 10C15 11.6569 13.6569 13 12 13C10.3431 13 9 11.6569 9 10C9 8.34315 10.3431 7 12 7C13.6569 7 15 8.34315 15 10Z" fill="none" stroke="${u}" stroke-width="${o}" />` + s`\n <path d="M5.62842 18.3563C7.08963 17.0398 9.39997 16 12 16C14.6 16 16.9104 17.0398 18.3716 18.3563" fill="none" stroke="${u}" stroke-width="${o}" />` + "\n </g>"), d.push(" " + _(l, r, a + c + 14, t.nodeLabel, s`font-size="${t.nodeLabel}" text-anchor="middle" font-weight="${F.nodeLabel}" fill="var(--_text)"`));
2383
2403
  } else {
2384
- let e = i - o / 2;
2385
- d.push(` <rect x="${e}" y="${a}" width="${o}" height="${s}" rx="4" ry="4" fill="var(--_node-fill)" stroke="var(--_node-stroke)" stroke-width="${z.outerBox}" />`), d.push(" " + u(c, i, a + s / 2, t.nodeLabel, `font-size="${t.nodeLabel}" text-anchor="middle" font-weight="${L.nodeLabel}" fill="var(--_text)"`));
2404
+ let e = r - o / 2;
2405
+ d.push(s` <rect x="${e}" y="${a}" width="${o}" height="${c}" rx="4" ry="4" ` + s`fill="var(--_node-fill)" stroke="var(--_node-stroke)" stroke-width="${L.outerBox}" />`), d.push(" " + _(l, r, a + c / 2, t.nodeLabel, s`font-size="${t.nodeLabel}" text-anchor="middle" font-weight="${F.nodeLabel}" fill="var(--_text)"`));
2386
2406
  }
2387
2407
  return d.push("</g>"), d.join("\n");
2388
2408
  }
2389
- function er(e) {
2390
- let t = `<line class="lifeline" data-actor="${n(e.actorId)}" x1="${e.x}" y1="${e.topY}" x2="${e.x}" y2="${e.bottomY}" stroke="var(--_line)" stroke-width="0.75" stroke-dasharray="6 4" />`;
2409
+ function Er(e) {
2410
+ 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\" />";
2391
2411
  if (!e.destroyed) return t;
2392
- let { x: r, bottomY: i } = e, a = tr;
2393
- return t + `\n<path class="destroy" data-actor="${n(e.actorId)}" d="M${r - a} ${i - a} L${r + a} ${i + a} M${r + a} ${i - a} L${r - a} ${i + a}" fill="none" stroke="var(--_line)" stroke-width="${z.outerBox}" stroke-linecap="round" />`;
2412
+ let { x: n, bottomY: r } = e, a = Dr;
2413
+ 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" />`;
2394
2414
  }
2395
- var tr = 8;
2396
- function nr(e) {
2397
- return `<rect class="activation" data-actor="${n(e.actorId)}" x="${e.x}" y="${e.topY}" width="${e.width}" height="${e.bottomY - e.topY}" fill="var(--_node-fill)" stroke="var(--_node-stroke)" stroke-width="${z.innerBox}" />`;
2415
+ var Dr = 8;
2416
+ function Or(e) {
2417
+ 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}" />`;
2398
2418
  }
2399
- function rr(e, t) {
2400
- let r = [], i = e.lineStyle === "dashed" ? " stroke-dasharray=\"6 4\"" : "", a = e.arrowHead === "filled" ? "seq-arrow" : "seq-arrow-open", o = e.bidirectional ? ` marker-start="url(#${a})"` : "";
2401
- if (r.push(`<g class="message" data-from="${n(e.from)}" data-to="${n(e.to)}" data-label="${n(e.label)}" data-line-style="${e.lineStyle}" data-arrow-head="${e.arrowHead}" data-self="${e.isSelf}" data-bidirectional="${e.bidirectional}">`), e.isSelf) r.push(` <polyline points="${e.x1},${e.y} ${e.x1 + 30},${e.y} ${e.x1 + 30},${e.y + 20} ${e.x2},${e.y + 20}" fill="none" stroke="var(--_line)" stroke-width="${z.connector}"${i} marker-end="url(#${a})"${o} />`), r.push(" " + u(e.label, e.x1 + 30 + 8, e.y + 10, t.edgeLabel, `font-size="${t.edgeLabel}" text-anchor="start" font-weight="${L.edgeLabel}" fill="var(--_text-muted)"`));
2419
+ function kr(e, t) {
2420
+ 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
+ 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)"`));
2402
2422
  else {
2403
- r.push(` <line x1="${e.x1}" y1="${e.y}" x2="${e.x2}" y2="${e.y}" stroke="var(--_line)" stroke-width="${z.connector}"${i} marker-end="url(#${a})"${o} />`);
2404
- let n = (e.x1 + e.x2) / 2;
2405
- r.push(" " + u(e.label, n, e.y - 10, t.edgeLabel, `font-size="${t.edgeLabel}" text-anchor="middle" font-weight="${L.edgeLabel}" fill="var(--_text-muted)"`));
2406
- }
2407
- return e.seqNumber !== void 0 && r.push(" " + ir(e, t)), r.push("</g>"), r.join("\n");
2408
- }
2409
- function ir(e, t) {
2410
- let n = Math.max(t.edgeLabel - 2, 8), r = e.bidirectional ? e.x1 + Math.sign(e.x2 - e.x1) * (8 + V.width) : e.x1;
2411
- return `<g class="seq-number"><circle cx="${r}" cy="${e.y}" r="8" fill="var(--bg)" stroke="var(--_arrow)" stroke-width="${z.innerBox}" />` + u(String(e.seqNumber), r, e.y, n, `font-size="${n}" text-anchor="middle" font-weight="${L.edgeLabel}" fill="var(--_arrow)"`) + "</g>";
2412
- }
2413
- var ar = 35;
2414
- function or(e, t) {
2415
- let r = e.label ? ` data-label="${n(e.label)}"` : "", i = e.color === void 0 ? "" : ` data-color="${n(e.color)}"`, a = e.color === void 0 ? "none" : `color-mix(in srgb, ${n(e.color)} ${ar}%, var(--bg))`, o = [`<g class="participant-box"${r}${i}>`, ` <rect x="${e.x}" y="${e.y}" width="${e.width}" height="${e.height}" rx="4" ry="4" fill="${a}" stroke="var(--_node-stroke)" stroke-width="${z.innerBox}" />`];
2416
- return e.label && o.push(" " + u(e.label, e.x + e.width / 2, e.y + Jn(t.edgeLabel) / 2, t.edgeLabel, `font-size="${t.edgeLabel}" text-anchor="middle" font-weight="${L.groupHeader}" fill="var(--_text-sec)"`)), o.push("</g>"), o.join("\n");
2417
- }
2418
- function sr(e, t) {
2419
- let r = [], i = e.label ? ` data-label="${n(e.label)}"` : "";
2420
- r.push(`<g class="block" data-type="${n(e.type)}"${i}>`), r.push(` <rect x="${e.x}" y="${e.y}" width="${e.width}" height="${e.height}" rx="0" ry="0" fill="none" stroke="var(--_node-stroke)" stroke-width="${z.outerBox}" />`);
2421
- let a = `${e.type}${e.label ? ` [${e.label}]` : ""}`, o = a.split("\n")[0], s = N(o, t.edgeLabel, L.groupHeader) + 16;
2422
- r.push(` <rect x="${e.x}" y="${e.y}" width="${s}" height="18" fill="var(--_group-hdr)" stroke="var(--_node-stroke)" stroke-width="${z.outerBox}" />`), r.push(" " + u(a, e.x + 6, e.y + 9, t.edgeLabel, `font-size="${t.edgeLabel}" font-weight="${L.groupHeader}" fill="var(--_text-sec)"`));
2423
- for (let n of e.dividers) r.push(` <line x1="${e.x}" y1="${n.y}" x2="${e.x + e.width}" y2="${n.y}" stroke="var(--_line)" stroke-width="0.75" stroke-dasharray="6 4" />`), n.label && r.push(" " + u(`[${n.label}]`, e.x + 8, n.y + 14, t.edgeLabel, `font-size="${t.edgeLabel}" text-anchor="start" font-weight="${L.edgeLabel}" fill="var(--_text-muted)"`));
2424
- return r.push("</g>"), r.join("\n");
2425
- }
2426
- function cr(e, t) {
2427
- let { x: r, y: i, width: a, height: o } = e, s = e.actors && e.actors.length > 0 ? ` data-actors="${e.actors.map(n).join(",")}"` : "";
2428
- return `<g class="note"${e.position ? ` data-position="${n(e.position)}"` : ""}${s}>\n <polygon points="${[
2429
- `${r},${i}`,
2430
- `${r + a - 6},${i}`,
2431
- `${r + a},${i + 6}`,
2432
- `${r + a},${i + o}`,
2433
- `${r},${i + o}`
2434
- ].join(" ")}" fill="var(--bg)" stroke="var(--_node-stroke)" stroke-width="${z.innerBox}" />\n <polygon points="${r + a - 6},${i} ${r + a},${i + 6} ${r + a - 6},${i + 6}" fill="var(--_inner-stroke)" stroke="var(--_node-stroke)" stroke-width="${z.innerBox}" />\n ${u(e.text, r + a / 2, i + o / 2, t.edgeLabel, `font-size="${t.edgeLabel}" text-anchor="middle" font-weight="${L.edgeLabel}" fill="var(--_text-muted)"`)}\n</g>`;
2423
+ n.push(s` <line x1="${e.x1}" y1="${e.y}" x2="${e.x2}" y2="${e.y}" ` + s`stroke="var(--_line)" stroke-width="${L.connector}"${r} marker-end="url(#${a})"${o} />`);
2424
+ let i = (e.x1 + e.x2) / 2;
2425
+ 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
+ }
2427
+ return e.seqNumber !== void 0 && n.push(" " + Ar(e, t)), n.push("</g>"), n.join("\n");
2428
+ }
2429
+ function Ar(e, t) {
2430
+ 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
+ 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
+ }
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");
2437
+ }
2438
+ function Nr(e, t) {
2439
+ let n = [], r = e.label ? s` data-label="${i(e.label)}"` : "";
2440
+ 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
+ let a = s`${e.type}${e.label ? s` [${e.label}]` : ""}`, o = a.split("\n")[0], c = M(o, t.edgeLabel, F.groupHeader) + 16;
2442
+ n.push(s` <rect x="${e.x}" y="${e.y}" width="${c}" height="${18}" ` + s`fill="var(--_group-hdr)" stroke="var(--_node-stroke)" stroke-width="${L.outerBox}" />`), n.push(" " + _(a, e.x + 6, e.y + 9, t.edgeLabel, s`font-size="${t.edgeLabel}" font-weight="${F.groupHeader}" fill="var(--_text-sec)"`));
2443
+ 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
+ return n.push("</g>"), n.join("\n");
2445
+ }
2446
+ function Pr(e, t) {
2447
+ 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
+ s`${n},${r}`,
2449
+ s`${n + a - 6},${r}`,
2450
+ s`${n + a},${r + 6}`,
2451
+ s`${n + a},${r + o}`,
2452
+ s`${n},${r + o}`
2453
+ ].join(" ");
2454
+ return s`<g class="note"${l}${c}>` + s`\n <polygon points="${u}" ` + s`fill="var(--bg)" stroke="var(--_node-stroke)" stroke-width="${L.innerBox}" />` + s`\n <polygon points="${n + a - 6},${r} ${n + a},${r + 6} ${n + a - 6},${r + 6}" ` + 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>";
2435
2455
  }
2436
2456
  //#endregion
2437
2457
  //#region packages/svg-renderer/src/xychart/layout.ts
@@ -2462,24 +2482,24 @@ var Y = {
2462
2482
  legendGap: 6,
2463
2483
  legendItemGap: 16
2464
2484
  };
2465
- function lr(e, t = {}) {
2466
- return e.horizontal ? dr(e) : ur(e);
2485
+ function Fr(e, t = {}) {
2486
+ return e.horizontal ? Lr(e) : Ir(e);
2467
2487
  }
2468
- function ur(e) {
2488
+ function Ir(e) {
2469
2489
  let t = !!e.title, n = !!e.xAxis.title, r = !!e.yAxis.title, i = e.series.length > 1, a = e.yAxis.range;
2470
2490
  if (!a)
2471
2491
  /* v8 ignore next */
2472
2492
  throw Error("XY chart: y-axis range was not set by the parser");
2473
- let o = _r(a.min, a.max), s = Math.max(...o.map((e) => N(vr(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 = {
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 = {
2474
2494
  x: u,
2475
2495
  y: c,
2476
2496
  width: f,
2477
2497
  height: p
2478
- }, _ = fr(e), v = (e) => u + (e + .5) * (f / _), y = f / _, b = (e) => {
2498
+ }, _ = Rr(e), v = (e) => u + (e + .5) * (f / _), y = f / _, b = (e) => {
2479
2499
  let t = (e - a.min) / (a.max - a.min || 1);
2480
2500
  return c + p - t * p;
2481
- }, x = mr(e, v, c + p, y), S = o.map((e) => ({
2482
- label: vr(e),
2501
+ }, x = Br(e, v, c + p, y), S = o.map((e) => ({
2502
+ label: Wr(e),
2483
2503
  x: u,
2484
2504
  y: b(e),
2485
2505
  tx: u - Y.tickLength,
@@ -2492,7 +2512,7 @@ function ur(e) {
2492
2512
  y1: b(e),
2493
2513
  x2: u + f,
2494
2514
  y2: b(e)
2495
- })), w = pr(e, _), T = e.series.map((e, t) => t), E = hr(e, v, b, y, a.min, w, T), D = gr(e, v, b, w, T), O = Y.padding + (t ? Y.titleHeight : 0) + Y.legendHeight / 2, k = i ? yr(e, m / 2, O, T) : [], A = {
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 = {
2496
2516
  x1: u,
2497
2517
  y1: c + p,
2498
2518
  x2: u + f,
@@ -2502,7 +2522,7 @@ function ur(e) {
2502
2522
  y1: c,
2503
2523
  x2: u,
2504
2524
  y2: c + p
2505
- }, M = {
2525
+ }, ee = {
2506
2526
  ticks: x,
2507
2527
  line: A,
2508
2528
  ...e.xAxis.title ? { title: {
@@ -2510,7 +2530,7 @@ function ur(e) {
2510
2530
  x: u + f / 2,
2511
2531
  y: h - Y.padding
2512
2532
  } } : {}
2513
- }, P = {
2533
+ }, te = {
2514
2534
  ticks: S,
2515
2535
  line: j,
2516
2536
  ...e.yAxis.title ? { title: {
@@ -2528,8 +2548,8 @@ function ur(e) {
2528
2548
  x: m / 2,
2529
2549
  y: Y.padding + Y.titleFontSize
2530
2550
  } : void 0,
2531
- xAxis: M,
2532
- yAxis: P,
2551
+ xAxis: ee,
2552
+ yAxis: te,
2533
2553
  plotArea: g,
2534
2554
  bars: E,
2535
2555
  lines: D,
@@ -2537,12 +2557,12 @@ function ur(e) {
2537
2557
  legend: k
2538
2558
  };
2539
2559
  }
2540
- function dr(e) {
2560
+ function Lr(e) {
2541
2561
  let t = !!e.title, n = !!e.xAxis.title, r = !!e.yAxis.title, i = e.series.length > 1, a = e.yAxis.range;
2542
2562
  if (!a)
2543
2563
  /* v8 ignore next */
2544
2564
  throw Error("XY chart: y-axis range was not set by the parser");
2545
- let o = _r(a.min, a.max), s = fr(e), c = pr(e, s), l = Math.max(...c.map((e) => N(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 = {
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 = {
2546
2566
  x: f,
2547
2567
  y: u,
2548
2568
  width: m,
@@ -2551,7 +2571,7 @@ function dr(e) {
2551
2571
  let t = (e - a.min) / (a.max - a.min || 1);
2552
2572
  return f + t * m;
2553
2573
  }, b = h / s, x = (e) => u + (e + .5) * b, S = o.map((e) => ({
2554
- label: vr(e),
2574
+ label: Wr(e),
2555
2575
  x: y(e),
2556
2576
  y: u + h,
2557
2577
  tx: y(e),
@@ -2620,12 +2640,12 @@ function dr(e) {
2620
2640
  y1: u + h,
2621
2641
  x2: f + m,
2622
2642
  y2: u + h
2623
- }, M = {
2643
+ }, ee = {
2624
2644
  x1: f,
2625
2645
  y1: u,
2626
2646
  x2: f,
2627
2647
  y2: u + h
2628
- }, P = {
2648
+ }, te = {
2629
2649
  ticks: S,
2630
2650
  line: j,
2631
2651
  ...e.yAxis.title ? { title: {
@@ -2633,49 +2653,49 @@ function dr(e) {
2633
2653
  x: f + m / 2,
2634
2654
  y: _ - Y.padding
2635
2655
  } } : {}
2636
- }, ee = {
2656
+ }, ne = {
2637
2657
  ticks: C,
2638
- line: M,
2658
+ line: ee,
2639
2659
  ...e.xAxis.title ? { title: {
2640
2660
  text: e.xAxis.title,
2641
2661
  x: Y.padding + 4,
2642
2662
  y: u + h / 2,
2643
2663
  rotate: -90
2644
2664
  } } : {}
2645
- }, te = e.title ? {
2665
+ }, re = e.title ? {
2646
2666
  text: e.title,
2647
2667
  x: g / 2,
2648
2668
  y: Y.padding + Y.titleFontSize
2649
- } : void 0, F = Y.padding + (t ? Y.titleHeight : 0) + Y.legendHeight / 2;
2669
+ } : void 0, ie = Y.padding + (t ? Y.titleHeight : 0) + Y.legendHeight / 2;
2650
2670
  return {
2651
2671
  width: g,
2652
2672
  height: _,
2653
2673
  horizontal: !0,
2654
- title: te,
2655
- xAxis: P,
2656
- yAxis: ee,
2674
+ title: re,
2675
+ xAxis: te,
2676
+ yAxis: ne,
2657
2677
  plotArea: v,
2658
2678
  bars: D,
2659
2679
  lines: O,
2660
2680
  gridLines: w,
2661
- legend: i ? yr(e, g / 2, F, T) : []
2681
+ legend: i ? Gr(e, g / 2, ie, T) : []
2662
2682
  };
2663
2683
  }
2664
- function fr(e) {
2684
+ function Rr(e) {
2665
2685
  if (e.xAxis.categories) return e.xAxis.categories.length;
2666
2686
  for (let t of e.series) if (t.data.length > 0) return t.data.length;
2667
2687
  return 1;
2668
2688
  }
2669
- function pr(e, t) {
2689
+ function zr(e, t) {
2670
2690
  if (e.xAxis.categories) return e.xAxis.categories;
2671
2691
  if (e.xAxis.range) {
2672
2692
  let { min: n, max: r } = e.xAxis.range, i = t > 1 ? (r - n) / (t - 1) : 0;
2673
- return Array.from({ length: t }, (e, t) => vr(n + i * t));
2693
+ return Array.from({ length: t }, (e, t) => Wr(n + i * t));
2674
2694
  }
2675
2695
  return Array.from({ length: t }, (e, t) => String(t + 1));
2676
2696
  }
2677
- function mr(e, t, n, r) {
2678
- return pr(e, fr(e)).map((e, r) => ({
2697
+ function Br(e, t, n, r) {
2698
+ return zr(e, Rr(e)).map((e, r) => ({
2679
2699
  label: e,
2680
2700
  x: t(r),
2681
2701
  y: n,
@@ -2686,7 +2706,7 @@ function mr(e, t, n, r) {
2686
2706
  textAnchor: "middle"
2687
2707
  }));
2688
2708
  }
2689
- function hr(e, t, n, r, i, a, o) {
2709
+ function Vr(e, t, n, r, i, a, o) {
2690
2710
  let s = e.series.filter((e) => e.type === "bar").length;
2691
2711
  if (s === 0) return [];
2692
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;
@@ -2712,7 +2732,7 @@ function hr(e, t, n, r, i, a, o) {
2712
2732
  }
2713
2733
  return f;
2714
2734
  }
2715
- function gr(e, t, n, r, i) {
2735
+ function Hr(e, t, n, r, i) {
2716
2736
  let a = [], o = 0, s = 0;
2717
2737
  for (let c of e.series) {
2718
2738
  if (c.type !== "line") {
@@ -2733,7 +2753,7 @@ function gr(e, t, n, r, i) {
2733
2753
  }
2734
2754
  return a;
2735
2755
  }
2736
- function _r(e, t) {
2756
+ function Ur(e, t) {
2737
2757
  let n = t - e;
2738
2758
  if (n <= 0) return [e];
2739
2759
  let r = n / 6, i = 10 ** Math.floor(Math.log10(r)), a = r / i, o;
@@ -2742,10 +2762,10 @@ function _r(e, t) {
2742
2762
  for (let e = s; e <= t + o * .001; e += o) c.push(Math.round(e * 1e10) / 1e10);
2743
2763
  return c;
2744
2764
  }
2745
- function vr(e) {
2765
+ function Wr(e) {
2746
2766
  return Number.isInteger(e) ? String(e) : e.toFixed(+(Math.abs(e) < 10));
2747
2767
  }
2748
- function yr(e, t, n, r) {
2768
+ function Gr(e, t, n, r) {
2749
2769
  let i = [], a = 0, o = 0;
2750
2770
  for (let t = 0; t < e.series.length; t++) {
2751
2771
  let s = e.series[t], c = s.type === "bar" ? `Bar ${a + 1}` : `Line ${o + 1}`;
@@ -2759,7 +2779,7 @@ function yr(e, t, n, r) {
2759
2779
  }), s.type === "bar" ? a++ : o++;
2760
2780
  }
2761
2781
  let s = i.map((e) => {
2762
- let t = N(e.label, Y.legendFontSize, Y.legendFontWeight);
2782
+ let t = M(e.label, Y.legendFontSize, Y.legendFontWeight);
2763
2783
  return Y.legendSwatchW + Y.legendGap + t;
2764
2784
  }), c = t - (s.reduce((e, t) => e + t, 0) + (i.length - 1) * Y.legendItemGap) / 2;
2765
2785
  for (let e = 0; e < i.length; e++) i[e].x = c, c += s[e] + Y.legendItemGap;
@@ -2789,24 +2809,24 @@ var X = {
2789
2809
  minY: 4,
2790
2810
  pointerSize: 6
2791
2811
  };
2792
- function br(e, n, r = "Inter", i = !1, a = !1, o, s, c, l = {}) {
2793
- let u = [], d = Math.max(0, ...e.bars.map((e) => e.colorIndex), ...e.lines.map((e) => e.colorIndex)), f = G(g(e.width, e.height, n, i, s, c, void 0, l.styleAttribute).replace("<svg ", `<svg data-xychart-colors="${d}" `), o);
2794
- u.push(f), u.push(t(r, !1, l.nonce));
2795
- let p = Math.max(...e.lines.map((e) => e.points.length), 0), m = p > 0 && p <= 12, { style: h, defs: _ } = xr(e, a, m, n.accent, n.bg, l.nonce);
2796
- u.push(h), _ && u.push(_);
2797
- let { plotArea: v } = e, y = e.xAxis.ticks.map((e) => e.x), b = e.horizontal ? e.yAxis.ticks.map((e) => e.y) : e.gridLines.map((e) => e.y1), x = y.length > 1 ? Math.abs(y[1] - y[0]) : v.width / 6, S = b.length > 1 ? Math.abs(b[1] - b[0]) : v.height / 6, C = x / Math.max(1, Math.round(x / 20)), w = S / Math.max(1, Math.round(S / 20)), T = y[0] ?? v.x, E = b[0] ?? v.y, D = T - Math.ceil((T - v.x) / C) * C, O = E - Math.ceil((E - v.y) / w) * w;
2798
- for (let e = O; e <= v.y + v.height + .5; e += w) for (let t = D; t <= v.x + v.width + .5; t += C) u.push(`<circle cx="${Q(t)}" cy="${Q(e)}" r="1.5" class="xychart-grid"/>`);
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);
2814
+ 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);
2816
+ u.push(h), g && u.push(g);
2817
+ 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"/>`);
2799
2819
  let k = [];
2800
2820
  for (let t of e.bars) {
2801
- let n = ` data-value="${t.value}"${t.label ? ` data-label="${$(t.label)}"` : ""}`, r = e.horizontal ? Cr(t.x, t.y, t.width, t.height, X.barRadius) : Sr(t.x, t.y, t.width, t.height, X.barRadius);
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);
2802
2822
  if (u.push(`<path d="${r}" class="xychart-bar xychart-color-${t.colorIndex}"${n}/>`), a) {
2803
- let e = Dr(t.value), n = t.label ? `${t.label}: ${e}` : e, r = Er(t.x + t.width / 2, t.y, e);
2823
+ let e = $r(t.value), n = t.label ? `${t.label}: ${e}` : e, r = Qr(t.x + t.width / 2, t.y, e);
2804
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>");
2805
2825
  }
2806
2826
  }
2807
2827
  for (let t of e.lines) {
2808
2828
  if (t.points.length === 0) continue;
2809
- let e = wr(t.points);
2829
+ let e = Xr(t.points);
2810
2830
  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}"/>`);
2811
2831
  }
2812
2832
  let A = [];
@@ -2829,16 +2849,16 @@ function br(e, n, r = "Inter", i = !1, a = !1, o, s, c, l = {}) {
2829
2849
  let n = e[0].x, r = e[0].label || "";
2830
2850
  if (a && e.length > 1) {
2831
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) => ({
2832
- text: Dr(e.value),
2852
+ text: $r(e.value),
2833
2853
  legendLabel: t.get(e.seriesIndex) || `Line ${e.seriesIndex + 1}`
2834
- })), l = Tr(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}`;
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}`;
2835
2855
  for (let t of e) {
2836
2856
  let e = ` data-value="${t.value}"${t.label ? ` data-label="${$(t.label)}"` : ""}`;
2837
2857
  f += `<circle cx="${Q(t.x)}" cy="${Q(t.y)}" r="${X.dotRadius}" class="xychart-dot xychart-color-${t.colorIndex}"${e}/>`;
2838
2858
  }
2839
2859
  f += `<title>${$(d)}</title>${l}</g>`, A.push(f);
2840
2860
  } else if (a) {
2841
- let t = e[0], r = ` data-value="${t.value}"${t.label ? ` data-label="${$(t.label)}"` : ""}`, i = Dr(t.value), a = t.label ? `${t.label}: ${i}` : i, o = Er(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"/>` : "";
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"/>` : "";
2842
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>`);
2843
2863
  } else for (let t of e) {
2844
2864
  let e = ` data-value="${t.value}"${t.label ? ` data-label="${$(t.label)}"` : ""}`;
@@ -2846,36 +2866,36 @@ function br(e, n, r = "Inter", i = !1, a = !1, o, s, c, l = {}) {
2846
2866
  }
2847
2867
  }
2848
2868
  }
2849
- 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="${B}" class="xychart-label">${$(t.label)}</text>`);
2850
- 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="${B}" class="xychart-label">${$(t.label)}</text>`);
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>`);
2851
2871
  if (e.xAxis.title) {
2852
2872
  let t = e.xAxis.title, n = t.rotate ? ` transform="rotate(${t.rotate},${t.x},${t.y})"` : "";
2853
- u.push(`<text x="${t.x}" y="${t.y}" text-anchor="middle"${n} font-size="${X.axisTitleSize}" font-weight="${X.axisTitleWeight}" dy="${B}" class="xychart-axis-title">${$(t.text)}</text>`);
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>`);
2854
2874
  }
2855
2875
  if (e.yAxis.title) {
2856
2876
  let t = e.yAxis.title, n = t.rotate ? ` transform="rotate(${t.rotate},${t.x},${t.y})"` : "";
2857
- u.push(`<text x="${t.x}" y="${t.y}" text-anchor="middle"${n} font-size="${X.axisTitleSize}" font-weight="${X.axisTitleWeight}" dy="${B}" class="xychart-axis-title">${$(t.text)}</text>`);
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>`);
2858
2878
  }
2859
- 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="${B}" class="xychart-title">${$(e.title.text)}</text>`);
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>`);
2860
2880
  for (let t of e.legend) {
2861
2881
  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}"/>`);
2862
2882
  else {
2863
2883
  let e = t.y;
2864
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}"/>`);
2865
2885
  }
2866
- u.push(`<text x="${t.x + 14 + 6}" y="${t.y}" text-anchor="start" font-size="${X.legendSize}" font-weight="${X.legendWeight}" dy="${B}" class="xychart-label">${$(t.label)}</text>`);
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>`);
2867
2887
  }
2868
2888
  for (let e of k) u.push(e);
2869
2889
  for (let e of A) u.push(e);
2870
2890
  return u.push("</svg>"), u.join("\n");
2871
2891
  }
2872
- function xr(e, t, n, r, i, a) {
2873
- let o = r ?? _, s = /* @__PURE__ */ new Set();
2892
+ function qr(e, t, n, r, i, a) {
2893
+ let o = r ?? ne, s = /* @__PURE__ */ new Set();
2874
2894
  for (let t of e.bars) s.add(t.colorIndex);
2875
2895
  for (let t of e.lines) s.add(t.colorIndex);
2876
2896
  let c = [];
2877
2897
  for (let e of [...s].sort((e, t) => e - t)) {
2878
- let t = e === 0 ? `var(--accent, ${_})` : y(e, o, i);
2898
+ let t = e === 0 ? `var(--accent, ${ne})` : ie(e, o, i);
2879
2899
  c.push(` --xychart-color-${e}: ${t};`), c.push(` --xychart-bar-fill-${e}: color-mix(in srgb, var(--bg) 75%, var(--xychart-color-${e}) 25%);`);
2880
2900
  }
2881
2901
  let l = [];
@@ -2891,7 +2911,7 @@ function xr(e, t, n, r, i, a) {
2891
2911
  .xychart-bar-group:hover .xychart-tip,
2892
2912
  .xychart-dot-group:hover .xychart-tip { opacity: 1; }` : "", d = c.length > 0 ? `\n svg {\n${c.join("\n")}\n }` : "";
2893
2913
  return {
2894
- style: `${h(a)}
2914
+ style: `${T(a)}
2895
2915
  .xychart-grid { fill: var(--_inner-stroke); stroke: none; opacity: 0.65; }
2896
2916
  .xychart-bar { stroke-width: 1.5; }
2897
2917
  .xychart-line { fill: none; stroke-width: ${X.lineWidth}; stroke-linecap: round; stroke-linejoin: round; }
@@ -2905,7 +2925,7 @@ ${l.join("\n")}${u}
2905
2925
  defs: ""
2906
2926
  };
2907
2927
  }
2908
- function Sr(e, t, n, r, i) {
2928
+ function Jr(e, t, n, r, i) {
2909
2929
  let a = Math.min(i, n / 2, r / 2);
2910
2930
  return a <= 0 ? `M${Q(e)},${Q(t)} h${Q(n)} v${Q(r)} h${Q(-n)} Z` : [
2911
2931
  `M${Q(e)},${Q(t + a)}`,
@@ -2919,7 +2939,7 @@ function Sr(e, t, n, r, i) {
2919
2939
  "Z"
2920
2940
  ].join(" ");
2921
2941
  }
2922
- function Cr(e, t, n, r, i) {
2942
+ function Yr(e, t, n, r, i) {
2923
2943
  let a = Math.min(i, n / 2, r / 2);
2924
2944
  return a <= 0 ? `M${Q(e)},${Q(t)} h${Q(n)} v${Q(r)} h${Q(-n)} Z` : [
2925
2945
  `M${Q(e + a)},${Q(t)}`,
@@ -2934,7 +2954,7 @@ function Cr(e, t, n, r, i) {
2934
2954
  "Z"
2935
2955
  ].join(" ");
2936
2956
  }
2937
- function wr(e) {
2957
+ function Xr(e) {
2938
2958
  if (e.length === 0) return "";
2939
2959
  if (e.length === 1) return `M${Q(e[0].x)},${Q(e[0].y)}`;
2940
2960
  if (e.length === 2) return `M${Q(e[0].x)},${Q(e[0].y)} L${Q(e[1].x)},${Q(e[1].y)}`;
@@ -2963,23 +2983,23 @@ function wr(e) {
2963
2983
  }
2964
2984
  return o;
2965
2985
  }
2966
- function Tr(e, t, n, r) {
2967
- let i = N(n, Z.fontSize, 600), a = Math.max(...r.map((e) => {
2968
- let t = N(e.legendLabel, Z.fontSize, Z.fontWeight), n = N(e.text, Z.fontSize, Z.fontWeight);
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);
2969
2989
  return t + 10 + n;
2970
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"/>`;
2971
2991
  m += p;
2972
2992
  let h = c + 6 + 10;
2973
- m += `<text x="${Q(e)}" y="${Q(h)}" text-anchor="middle" font-weight="600" font-size="${Z.fontSize}" dy="${B}" class="xychart-tip xychart-tip-text">${$(n)}</text>`;
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>`;
2974
2994
  let g = l + Z.padX, _ = l + o - Z.padX;
2975
- 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="${B}" 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="${B}" class="xychart-tip xychart-tip-text">${$(e.text)}</text>`;
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>`;
2976
2996
  return m;
2977
2997
  }
2978
- function Er(e, t, n) {
2979
- let r = N(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"/>`;
2980
- 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="${B}" class="xychart-tip xychart-tip-text">${$(n)}</text>`;
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>`;
2981
3001
  }
2982
- function Dr(e) {
3002
+ function $r(e) {
2983
3003
  return Number.isInteger(e) ? e.toLocaleString("en-US") : e.toFixed(+(Math.abs(e) < 10));
2984
3004
  }
2985
3005
  function Q(e) {
@@ -2989,6 +3009,529 @@ function $(e) {
2989
3009
  return e.replace(/&/g, "&amp;").replace(/</g, "&lt;").replace(/>/g, "&gt;").replace(/"/g, "&quot;");
2990
3010
  }
2991
3011
  //#endregion
2992
- export { V as ARROW_HEAD, K as CLS, ie as ELK_DIRECTION_FALLBACK, F as FONT_SIZES, L as FONT_WEIGHTS, ne as GROUP_HEADER_CONTENT_PAD, ce as INLINE_CENTERED_EDGE_LABEL, ee as MONO_FONT, te as MONO_FONT_STACK, R as NODE_PADDING, z as STROKE_WIDTHS, B as TEXT_BASELINE_SHIFT, se as baseElkLayoutOptions, Jn as boxLabelHeight, U as buildElkEdge, le as buildElkEdgeLabel, H as buildElkLeafNode, mn as classNoteId, we as clipEdgeToShape, tt as convertToElkFormat, k as createLayoutCache, ae as directionToElk, M as elkLayoutSync, oe as elkPadding, P as estimateMonoTextWidth, N as estimateTextWidth, sn as evaluateCssColorValue, Fe as extractEdgeLabelPosition, Pe as extractEdgePoints, vn as layoutClassDiagramSync, Ln as layoutErDiagramSync, et as layoutGraphSync, Xn as layoutSequenceDiagram, lr as layoutXYChart, T as pointsToPath, xn as renderClassSvg, Rn as renderErSvg, Zn as renderSequenceSvg, nt as renderSvg, br as renderXYChartSvg, pn as resolveCssColors, I as resolveFontSizes, G as withDataSrc };
3012
+ //#region src/parser.ts
3013
+ function ei(e) {
3014
+ let t = e.trim();
3015
+ return t.length >= 2 && (t[0] === "\"" && t[t.length - 1] === "\"" || t[0] === "'" && t[t.length - 1] === "'") ? t.slice(1, -1) : t;
3016
+ }
3017
+ var ti = "\"graph <dir>\"/\"flowchart <dir>\" (dir: TD, TB, LR, BT, RL), \"stateDiagram-v2\", \"sequenceDiagram\", \"classDiagram\", \"erDiagram\", \"xychart-beta\"";
3018
+ function ni(e) {
3019
+ let t = e.trim().toLowerCase();
3020
+ if (/^sequence/.test(t)) return "sequenceDiagram";
3021
+ if (/^class/.test(t)) return "classDiagram";
3022
+ if (/^er/.test(t)) return "erDiagram";
3023
+ if (/^xychart/.test(t)) return "xychart-beta";
3024
+ if (/^state/.test(t)) return "stateDiagram-v2";
3025
+ }
3026
+ var ri = /^(?:[\w-]+@)?<?(?:-{2,}|={2,}|-\.+-?|~{3,})/;
3027
+ function ii(e) {
3028
+ let t = [];
3029
+ for (let n of e) n.forEach((e, n) => {
3030
+ if (n === 0 && t.length > 0 && ri.test(e.text)) {
3031
+ let n = t[t.length - 1];
3032
+ t[t.length - 1] = {
3033
+ text: `${n.text} ${e.text}`,
3034
+ line: n.line
3035
+ };
3036
+ } else t.push(e);
3037
+ });
3038
+ return t;
3039
+ }
3040
+ function ai(e) {
3041
+ let t = o(e.split("\n").map((e) => e.trim())), n = ii(w(e));
3042
+ 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);
3044
+ return i.initConfig = t, i;
3045
+ }
3046
+ function oi(e) {
3047
+ let t = e[0];
3048
+ if (t === void 0)
3049
+ /* v8 ignore next */
3050
+ throw Error("parseFlowchart called with no lines");
3051
+ let n = t.text, r = n.match(/^(?:graph|flowchart)\s+(TD|TB|LR|BT|RL)\s*$/i);
3052
+ if (!r) {
3053
+ let e = n.match(/^(?:graph|flowchart)\b\s*(.*)$/i);
3054
+ if (e) {
3055
+ let r = e[1].trim();
3056
+ 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
+ }
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}.`);
3060
+ }
3061
+ let i = {
3062
+ direction: O(r[1]),
3063
+ nodes: /* @__PURE__ */ new Map(),
3064
+ edges: [],
3065
+ subgraphs: [],
3066
+ classDefs: /* @__PURE__ */ new Map(),
3067
+ classAssignments: /* @__PURE__ */ new Map(),
3068
+ nodeStyles: /* @__PURE__ */ new Map(),
3069
+ linkStyles: /* @__PURE__ */ new Map(),
3070
+ interactions: /* @__PURE__ */ new Map()
3071
+ }, a = [];
3072
+ for (let t = 1; t < e.length; t++) {
3073
+ let n = e[t].text;
3074
+ if (A(n, i) || k(n, i) || j(n, i)) continue;
3075
+ if (/^click\s+/i.test(n)) {
3076
+ yi(n, i);
3077
+ continue;
3078
+ }
3079
+ if (xi(n, i)) continue;
3080
+ let r = n.match(/^linkStyle\s+(default|[\d,\s]+)\s+(.+)$/);
3081
+ if (r) {
3082
+ let e = r[1].trim(), t = g(r[2]);
3083
+ if (e === "default") i.linkStyles.set("default", {
3084
+ ...i.linkStyles.get("default"),
3085
+ ...t
3086
+ });
3087
+ else {
3088
+ let n = e.split(",").map((e) => parseInt(e.trim(), 10));
3089
+ for (let e of n) isNaN(e) || i.linkStyles.set(e, {
3090
+ ...i.linkStyles.get(e),
3091
+ ...t
3092
+ });
3093
+ }
3094
+ continue;
3095
+ }
3096
+ let o = n.match(/^direction\s+(TD|TB|LR|BT|RL)\s*$/i);
3097
+ if (o && a.length > 0) {
3098
+ a[a.length - 1].direction = O(o[1]);
3099
+ continue;
3100
+ }
3101
+ let s = n.match(/^subgraph\s+(.+)$/);
3102
+ if (s) {
3103
+ 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, ""));
3105
+ let i = {
3106
+ id: n,
3107
+ label: r,
3108
+ nodeIds: [],
3109
+ children: []
3110
+ };
3111
+ a.push(i);
3112
+ continue;
3113
+ }
3114
+ if (n === "end") {
3115
+ let e = a.pop();
3116
+ e && (a.length > 0 ? a[a.length - 1].children.push(e) : i.subgraphs.push(e));
3117
+ continue;
3118
+ }
3119
+ Ti(n, i, a);
3120
+ }
3121
+ return i;
3122
+ }
3123
+ function si(e) {
3124
+ let t = {
3125
+ direction: "TD",
3126
+ nodes: /* @__PURE__ */ new Map(),
3127
+ edges: [],
3128
+ subgraphs: [],
3129
+ classDefs: /* @__PURE__ */ new Map(),
3130
+ classAssignments: /* @__PURE__ */ new Map(),
3131
+ nodeStyles: /* @__PURE__ */ new Map(),
3132
+ linkStyles: /* @__PURE__ */ new Map(),
3133
+ interactions: /* @__PURE__ */ new Map()
3134
+ }, n = [], r = /* @__PURE__ */ new Set(), i = 0, a = 0;
3135
+ 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);
3137
+ if (c) {
3138
+ n.length > 0 ? n[n.length - 1].direction = O(c[1]) : t.direction = O(c[1]);
3139
+ continue;
3140
+ }
3141
+ let l = s.match(/^linkStyle\s+(default|[\d,\s]+)\s+(.+)$/);
3142
+ if (l) {
3143
+ let e = l[1].trim(), n = g(l[2]);
3144
+ if (e === "default") t.linkStyles.set("default", {
3145
+ ...t.linkStyles.get("default"),
3146
+ ...n
3147
+ });
3148
+ else {
3149
+ let r = e.split(",").map((e) => parseInt(e.trim(), 10));
3150
+ for (let e of r) isNaN(e) || t.linkStyles.set(e, {
3151
+ ...t.linkStyles.get(e),
3152
+ ...n
3153
+ });
3154
+ }
3155
+ continue;
3156
+ }
3157
+ if (xi(s, t)) continue;
3158
+ let u = s.match(/^state\s+(?:"([^"]+)"\s+as\s+)?([\w\p{L}]+)\s*\{$/u);
3159
+ if (u) {
3160
+ let e = u[1] ?? u[2], i = u[2], a = {
3161
+ id: i,
3162
+ label: e,
3163
+ nodeIds: [],
3164
+ children: []
3165
+ };
3166
+ n.push(a), r.add(i), t.nodes.delete(i);
3167
+ continue;
3168
+ }
3169
+ if (s === "}") {
3170
+ let e = n.pop();
3171
+ e && (n.length > 0 ? n[n.length - 1].children.push(e) : t.subgraphs.push(e));
3172
+ continue;
3173
+ }
3174
+ let d = s.match(/^state\s+"([^"]+)"\s+as\s+([\w\p{L}]+)\s*$/u);
3175
+ if (d) {
3176
+ let e = m(d[1]), r = d[2];
3177
+ ci(t, n, {
3178
+ id: r,
3179
+ label: e,
3180
+ shape: "rounded"
3181
+ });
3182
+ continue;
3183
+ }
3184
+ let f = s.match(/^(\[\*\]|[\w\p{L}-]+)\s*(?:([\w-]+)@)?-->\s*(\[\*\]|[\w\p{L}-]+)(?:\s*:\s*(.+))?$/u);
3185
+ 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, {
3188
+ id: e,
3189
+ label: "",
3190
+ shape: "state-start"
3191
+ })) : r.has(e) || li(t, n, e), s === "[*]" ? (a++, s = `_end${a > 1 ? a : ""}`, ci(t, n, {
3192
+ id: s,
3193
+ label: "",
3194
+ shape: "state-end"
3195
+ })) : r.has(s) || li(t, n, s), t.edges.push({
3196
+ source: e,
3197
+ target: s,
3198
+ label: l,
3199
+ style: "solid",
3200
+ hasArrowStart: !1,
3201
+ hasArrowEnd: !0,
3202
+ ...o === void 0 ? {} : { id: o }
3203
+ });
3204
+ continue;
3205
+ }
3206
+ let p = s.match(/^([\w\p{L}-]+)\s*:\s*(.+)$/u);
3207
+ if (p) {
3208
+ let e = p[1];
3209
+ ci(t, n, {
3210
+ id: e,
3211
+ label: m(p[2].trim()),
3212
+ shape: "rounded"
3213
+ });
3214
+ continue;
3215
+ }
3216
+ }
3217
+ return t;
3218
+ }
3219
+ function ci(e, t, n) {
3220
+ if (e.nodes.has(n.id) || e.nodes.set(n.id, n), t.length > 0) {
3221
+ let e = t[t.length - 1];
3222
+ e.nodeIds.includes(n.id) || e.nodeIds.push(n.id);
3223
+ }
3224
+ }
3225
+ function li(e, t, n) {
3226
+ if (!e.nodes.has(n)) ci(e, t, {
3227
+ id: n,
3228
+ label: n,
3229
+ shape: "rounded"
3230
+ });
3231
+ else if (t.length > 0) {
3232
+ let e = t[t.length - 1];
3233
+ e.nodeIds.includes(n) || e.nodeIds.push(n);
3234
+ }
3235
+ }
3236
+ var ui = /^(<|o|x)?(-{2,}|={2,}|-\.+-|~{3,})(>|o|x)?(?:\|([^|]*)\|)?/, di = /* @__PURE__ */ new Set(["--", "=="]);
3237
+ function fi(e) {
3238
+ if (e === "o") return "circle";
3239
+ if (e === "x") return "cross";
3240
+ }
3241
+ var pi = /^(<|o|x)?(--|-\.|==)\s+(.+?)\s+(-{2,}[>ox]|={2,}[>ox]|\.+-[>ox]|-{3,}|={3,}|-\.+-)/, mi = [
3242
+ {
3243
+ regex: /^([\w\p{L}-]+)\(\(\(((?:"[^"]*"|(?!\)\)\)).)+)\)\)\)/u,
3244
+ shape: "doublecircle"
3245
+ },
3246
+ {
3247
+ regex: /^([\w\p{L}-]+)\(\[((?:"[^"]*"|(?!\]\)).)+)\]\)/u,
3248
+ shape: "stadium"
3249
+ },
3250
+ {
3251
+ regex: /^([\w\p{L}-]+)\(\(((?:"[^"]*"|(?!\)\)).)+)\)\)/u,
3252
+ shape: "circle"
3253
+ },
3254
+ {
3255
+ regex: /^([\w\p{L}-]+)\[\[((?:"[^"]*"|(?!\]\]).)+)\]\]/u,
3256
+ shape: "subroutine"
3257
+ },
3258
+ {
3259
+ regex: /^([\w\p{L}-]+)\[\(((?:"[^"]*"|(?!\)\]).)+)\)\]/u,
3260
+ shape: "cylinder"
3261
+ },
3262
+ {
3263
+ regex: /^([\w\p{L}-]+)\[\/((?:"[^"]*"|(?![\\/]\]).)+)([\\/])\]/u,
3264
+ shape: (e) => e === "\\" ? "trapezoid" : "parallelogram"
3265
+ },
3266
+ {
3267
+ regex: /^([\w\p{L}-]+)\[\\((?:"[^"]*"|(?![\\/]\]).)+)([\\/])\]/u,
3268
+ shape: (e) => e === "/" ? "trapezoid-alt" : "parallelogram-alt"
3269
+ },
3270
+ {
3271
+ regex: /^([\w\p{L}-]+)>((?:"[^"]*"|(?!\]).)+)\]/u,
3272
+ shape: "asymmetric"
3273
+ },
3274
+ {
3275
+ regex: /^([\w\p{L}-]+)\{\{((?:"[^"]*"|(?!\}\}).)+)\}\}/u,
3276
+ shape: "hexagon"
3277
+ },
3278
+ {
3279
+ regex: /^([\w\p{L}-]+)\[((?:"[^"]*"|(?!\]).)+)\]/u,
3280
+ shape: "rectangle"
3281
+ },
3282
+ {
3283
+ regex: /^([\w\p{L}-]+)\(((?:"[^"]*"|(?!\)).)+)\)/u,
3284
+ shape: "rounded"
3285
+ },
3286
+ {
3287
+ regex: /^([\w\p{L}-]+)\{((?:"[^"]*"|(?!\}).)+)\}/u,
3288
+ shape: "diamond"
3289
+ }
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";
3293
+ if (e.icon !== void 0 || e.img !== void 0) switch (e.form?.toLowerCase()) {
3294
+ case "circle": return "circle";
3295
+ case "rounded": return "rounded";
3296
+ default: return "rectangle";
3297
+ }
3298
+ return "rectangle";
3299
+ }
3300
+ function vi(e, t) {
3301
+ return t.label !== void 0 && t.label.length > 0 ? t.label : t.icon ? t.icon : t.img ? t.img : e;
3302
+ }
3303
+ function yi(e, n) {
3304
+ t(e, n.interactions);
3305
+ }
3306
+ var bi = /^([\w-]+)(?=@\{)/;
3307
+ function xi(e, t) {
3308
+ let n = e.match(bi);
3309
+ 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;
3312
+ }
3313
+ function Si(e, t, n) {
3314
+ 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
+ }
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);
3319
+ if (!i || i.ids.length === 0) return;
3320
+ r = i.remaining.trim();
3321
+ let a = i.ids;
3322
+ for (; r.length > 0;) {
3323
+ let e, i, o, s, c, l, u, d = r.match(/^([\w-]+)@(?=[-=<~ox])/);
3324
+ 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);
3328
+ 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);
3330
+ } else {
3331
+ let t = r.match(pi);
3332
+ if (!t) break;
3333
+ e = !!t[1], c = fi(t[1]);
3334
+ let n = t[3].trim();
3335
+ s = n ? m(n) : void 0;
3336
+ 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;
3338
+ }
3339
+ let _ = Ei(r, t, n);
3340
+ if (!_ || _.ids.length === 0) break;
3341
+ r = _.remaining.trim();
3342
+ for (let n of a) for (let r of _.ids) t.edges.push({
3343
+ source: n,
3344
+ target: r,
3345
+ label: s,
3346
+ style: i,
3347
+ hasArrowStart: e,
3348
+ hasArrowEnd: o,
3349
+ ...c === void 0 ? {} : { startMarker: c },
3350
+ ...l === void 0 ? {} : { endMarker: l },
3351
+ ...u === void 0 ? {} : { id: u }
3352
+ });
3353
+ a = _.ids;
3354
+ }
3355
+ }
3356
+ function Ei(e, t, n) {
3357
+ let r = Di(e, t, n);
3358
+ if (!r) return null;
3359
+ let i = [r.id], a = r.remaining.trim();
3360
+ for (; a.startsWith("&");) {
3361
+ a = a.slice(1).trim();
3362
+ let e = Di(a, t, n);
3363
+ if (!e) break;
3364
+ i.push(e.id), a = e.remaining.trim();
3365
+ }
3366
+ return {
3367
+ ids: i,
3368
+ remaining: a
3369
+ };
3370
+ }
3371
+ function Di(e, t, n) {
3372
+ let r = null, i = e, a, o = i.match(wi);
3373
+ o && (a = o[2], i = o[1] + i.slice(o[0].length));
3374
+ let s = i.match(gi);
3375
+ if (s) {
3376
+ let e = s[1], a = ae(i.slice(e.length));
3377
+ if (a) {
3378
+ let o = ce(a.body);
3379
+ Oi(t, n, {
3380
+ id: e,
3381
+ label: m(vi(e, o)),
3382
+ shape: _i(o)
3383
+ }), r = e, i = i.slice(e.length + a.length);
3384
+ }
3385
+ }
3386
+ if (r === null) for (let { regex: e, shape: a } of mi) {
3387
+ let o = i.match(e);
3388
+ if (o) {
3389
+ r = o[1];
3390
+ let e = m(o[2]), s = typeof a == "function" ? a(o[3] ?? "") : a;
3391
+ Oi(t, n, {
3392
+ id: r,
3393
+ label: e,
3394
+ shape: s
3395
+ }), i = i.slice(o[0].length);
3396
+ break;
3397
+ }
3398
+ }
3399
+ if (r === null) {
3400
+ let e = i.match(hi);
3401
+ e && (r = e[1], t.nodes.has(r) || Oi(t, n, {
3402
+ id: r,
3403
+ label: r,
3404
+ shape: "rectangle"
3405
+ }), i = i.slice(e[0].length));
3406
+ }
3407
+ if (r === null) return null;
3408
+ a && t.classAssignments.set(r, a);
3409
+ let c = i.match(Ci);
3410
+ return c && (t.classAssignments.set(r, c[1]), i = i.slice(c[0].length)), {
3411
+ id: r,
3412
+ remaining: i
3413
+ };
3414
+ }
3415
+ function Oi(e, t, n) {
3416
+ e.nodes.has(n.id) || e.nodes.set(n.id, n), ki(t, n.id);
3417
+ }
3418
+ function ki(e, t) {
3419
+ if (e.length > 0) {
3420
+ let n = e[e.length - 1];
3421
+ n.nodeIds.includes(t) || n.nodeIds.push(t);
3422
+ }
3423
+ }
3424
+ function Ai(e) {
3425
+ return e.startsWith("~") ? "invisible" : e.includes(".") ? "dotted" : e.startsWith("=") ? "thick" : "solid";
3426
+ }
3427
+ function ji(e, t) {
3428
+ return e.includes(".") || t.includes(".") ? "dotted" : e.startsWith("=") || t.startsWith("=") ? "thick" : "solid";
3429
+ }
3430
+ //#endregion
3431
+ //#region packages/svg-renderer/src/registry.ts
3432
+ var Mi = {
3433
+ type: "xychart",
3434
+ parse: ue,
3435
+ layoutForSvg: Fr,
3436
+ renderSvg(e, t, n) {
3437
+ 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);
3439
+ }
3440
+ }, Ni = {
3441
+ type: "sequence",
3442
+ parse: le,
3443
+ layoutForSvg: Sr,
3444
+ renderSvg(e, t) {
3445
+ return Cr(e, t.colors, t.font, t.transparent, t.fontSizes, t.embedSource, t.title, t.decorative, t.emit);
3446
+ }
3447
+ };
3448
+ function Pi(e) {
3449
+ return (e.interactivity ?? "static") !== "none";
3450
+ }
3451
+ function Fi(e) {
3452
+ return (e.interactivity ?? "static") === "full";
3453
+ }
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
+ }
3465
+ },
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
+ }
3474
+ },
3475
+ flowchart: {
3476
+ type: "flowchart",
3477
+ parse: (e, t) => ai(t),
3478
+ layoutForSvg(e, t) {
3479
+ return {
3480
+ graph: Ot(ee(e, t.direction), t),
3481
+ curve: t.curve ?? e.initConfig?.curve ?? "linear"
3482
+ };
3483
+ },
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
+ }
3488
+ };
3489
+ //#endregion
3490
+ //#region packages/svg-renderer/src/index.ts
3491
+ function Li(t) {
3492
+ return {
3493
+ bg: t.bg ?? e.bg,
3494
+ fg: t.fg ?? e.fg,
3495
+ line: t.line,
3496
+ accent: t.accent,
3497
+ muted: t.muted,
3498
+ surface: t.surface,
3499
+ border: t.border
3500
+ };
3501
+ }
3502
+ function Ri(e = {}) {
3503
+ return D(Li(e), e.transparent);
3504
+ }
3505
+ function zi(e) {
3506
+ return {
3507
+ nonce: e.nonce,
3508
+ styleAttribute: e.styleAttribute
3509
+ };
3510
+ }
3511
+ function Bi(e, t = {}) {
3512
+ let n = Vi(e, t);
3513
+ return t.resolveColors ? Vn(n, Li(t)) : n;
3514
+ }
3515
+ function Vi(e, t) {
3516
+ let n = fe(e), i = Li(t), a = t.font ?? "Inter";
3517
+ 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 = {
3519
+ colors: i,
3520
+ font: a,
3521
+ transparent: o,
3522
+ fontSizes: s,
3523
+ embedSource: l,
3524
+ title: d,
3525
+ decorative: f,
3526
+ emit: p
3527
+ };
3528
+ return h.renderSvg(_, v, t);
3529
+ }
3530
+ async function Hi(e, t = {}) {
3531
+ return Bi(e, t);
3532
+ }
3533
+ var Ui = Bi, Wi = Hi;
3534
+ //#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 };
2993
3536
 
2994
3537
  //# sourceMappingURL=index.js.map