@zombie-mermaid/core 3.2.0 → 4.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
@@ -22,36 +22,71 @@ function t(e) {
22
22
  return n === void 0 || /^(https?|mailto)$/i.test(n) ? t : void 0;
23
23
  }
24
24
  //#endregion
25
+ //#region packages/core/src/cluster-edges.ts
26
+ function n(e, t) {
27
+ t.set(e.id, e);
28
+ for (let r of e.children) n(r, t);
29
+ }
30
+ function r(e, t) {
31
+ let n = (e, n) => {
32
+ let r = t.get(e);
33
+ if (!r) return !1;
34
+ let a = /* @__PURE__ */ new Set();
35
+ return i(r, a), a.has(n);
36
+ };
37
+ return n(e.target, e.source) || n(e.source, e.target);
38
+ }
39
+ function i(e, t) {
40
+ for (let n of e.nodeIds) t.add(n);
41
+ for (let n of e.children) t.add(n.id), i(n, t);
42
+ }
43
+ function a(e) {
44
+ if (e.subgraphs.length === 0) return e;
45
+ let t = /* @__PURE__ */ new Map();
46
+ for (let r of e.subgraphs) n(r, t);
47
+ let i = e.edges.filter((e) => !r(e, t));
48
+ if (i.length === e.edges.length) return e;
49
+ let a = /* @__PURE__ */ new Set();
50
+ for (let e of i) a.add(e.source), a.add(e.target);
51
+ let o = new Map(e.nodes);
52
+ for (let e of t.keys()) a.has(e) || o.delete(e);
53
+ return {
54
+ ...e,
55
+ nodes: o,
56
+ edges: i
57
+ };
58
+ }
59
+ //#endregion
25
60
  //#region packages/core/src/color-utils.ts
26
- var n = /^#([0-9a-fA-F]{3}|[0-9a-fA-F]{4}|[0-9a-fA-F]{6}|[0-9a-fA-F]{8})$/, r = /^rgba?\(\s*([\d.]+%?)\s*[, ]\s*([\d.]+%?)\s*[, ]\s*([\d.]+%?)\s*(?:[,/]\s*([\d.]+%?)\s*)?\)$/i;
27
- function i(e) {
28
- let t = a(e);
61
+ var o = /^#([0-9a-fA-F]{3}|[0-9a-fA-F]{4}|[0-9a-fA-F]{6}|[0-9a-fA-F]{8})$/, s = /^rgba?\(\s*([\d.]+%?)\s*[, ]\s*([\d.]+%?)\s*[, ]\s*([\d.]+%?)\s*(?:[,/]\s*([\d.]+%?)\s*)?\)$/i;
62
+ function c(e) {
63
+ let t = l(e);
29
64
  return t ? [
30
65
  t.r,
31
66
  t.g,
32
67
  t.b
33
68
  ] : null;
34
69
  }
35
- function a(e) {
36
- let t = n.exec(e.trim());
70
+ function l(e) {
71
+ let t = o.exec(e.trim());
37
72
  if (!t) return null;
38
- let r = t[1];
39
- if (r === void 0) return null;
40
- let i = r;
41
- return (i.length === 3 || i.length === 4) && (i = i.split("").map((e) => e + e).join("")), {
42
- r: parseInt(i.slice(0, 2), 16),
43
- g: parseInt(i.slice(2, 4), 16),
44
- b: parseInt(i.slice(4, 6), 16),
45
- a: i.length === 8 ? parseInt(i.slice(6, 8), 16) / 255 : 1
73
+ let n = t[1];
74
+ if (n === void 0) return null;
75
+ let r = n;
76
+ return (r.length === 3 || r.length === 4) && (r = r.split("").map((e) => e + e).join("")), {
77
+ r: parseInt(r.slice(0, 2), 16),
78
+ g: parseInt(r.slice(2, 4), 16),
79
+ b: parseInt(r.slice(4, 6), 16),
80
+ a: r.length === 8 ? parseInt(r.slice(6, 8), 16) / 255 : 1
46
81
  };
47
82
  }
48
- function o(e) {
83
+ function u(e) {
49
84
  return e.endsWith("%") ? Number(e.slice(0, -1)) / 100 * 255 : Number(e);
50
85
  }
51
- function s(e) {
86
+ function ee(e) {
52
87
  return e === void 0 ? 1 : e.endsWith("%") ? Number(e.slice(0, -1)) / 100 : Number(e);
53
88
  }
54
- function c(e) {
89
+ function d(e) {
55
90
  let t = e.trim();
56
91
  if (t.toLowerCase() === "transparent") return {
57
92
  r: 0,
@@ -59,17 +94,17 @@ function c(e) {
59
94
  b: 0,
60
95
  a: 0
61
96
  };
62
- let n = a(t);
97
+ let n = l(t);
63
98
  if (n) return n;
64
- let i = r.exec(t);
65
- if (i) {
66
- let [, e, t, n, r] = i;
99
+ let r = s.exec(t);
100
+ if (r) {
101
+ let [, e, t, n, i] = r;
67
102
  if (e === void 0 || t === void 0 || n === void 0) return null;
68
103
  let a = {
69
- r: o(e),
70
- g: o(t),
71
- b: o(n),
72
- a: s(r)
104
+ r: u(e),
105
+ g: u(t),
106
+ b: u(n),
107
+ a: ee(i)
73
108
  };
74
109
  return [
75
110
  a.r,
@@ -80,7 +115,7 @@ function c(e) {
80
115
  }
81
116
  return null;
82
117
  }
83
- function l(e, t, n, r) {
118
+ function f(e, t, n, r) {
84
119
  let i, a;
85
120
  n === void 0 && r === void 0 ? (i = 50, a = 50) : n === void 0 ? (a = r ?? 50, i = 100 - a) : r === void 0 ? (i = n, a = 100 - i) : (i = n, a = r);
86
121
  let o = i + a;
@@ -95,15 +130,15 @@ function l(e, t, n, r) {
95
130
  a: c * s
96
131
  };
97
132
  }
98
- function u(e, t, n) {
99
- let r = c(e), i = c(t);
133
+ function te(e, t, n) {
134
+ let r = d(e), i = d(t);
100
135
  if (!r || !i) return e;
101
- let a = l(r, i, n, 100 - n);
102
- return a ? f(a) : e;
136
+ let a = f(r, i, n, 100 - n);
137
+ return a ? m(a) : e;
103
138
  }
104
- var d = (e) => Math.min(255, Math.max(0, Math.round(e)));
105
- function f(e) {
106
- let t = d(e.r), n = d(e.g), r = d(e.b), i = Math.min(1, Math.max(0, e.a));
139
+ var p = (e) => Math.min(255, Math.max(0, Math.round(e)));
140
+ function m(e) {
141
+ let t = p(e.r), n = p(e.g), r = p(e.b), i = Math.min(1, Math.max(0, e.a));
107
142
  return i >= 1 ? "#" + [
108
143
  t,
109
144
  n,
@@ -112,8 +147,8 @@ function f(e) {
112
147
  }
113
148
  //#endregion
114
149
  //#region packages/core/src/statements.ts
115
- var p = /^[&#](?:#?[0-9]+|#?[xX][0-9a-fA-F]+|[a-zA-Z][a-zA-Z0-9]*);/, m = /* @__PURE__ */ new Set(["&", "#"]);
116
- function ee(e) {
150
+ var h = /^[&#](?:#?[0-9]+|#?[xX][0-9a-fA-F]+|[a-zA-Z][a-zA-Z0-9]*);/, g = /* @__PURE__ */ new Set(["&", "#"]);
151
+ function _(e) {
117
152
  let t = null;
118
153
  for (let n = 0; n < e.length; n++) {
119
154
  let r = e[n];
@@ -125,8 +160,8 @@ function ee(e) {
125
160
  t = r;
126
161
  continue;
127
162
  }
128
- if (m.has(r)) {
129
- let t = p.exec(e.slice(n));
163
+ if (g.has(r)) {
164
+ let t = h.exec(e.slice(n));
130
165
  if (t) {
131
166
  n += t[0].length - 1;
132
167
  continue;
@@ -136,7 +171,7 @@ function ee(e) {
136
171
  }
137
172
  return -1;
138
173
  }
139
- function h(e) {
174
+ function ne(e) {
140
175
  let t = [], n = "", r = null;
141
176
  for (let i = 0; i < e.length; i++) {
142
177
  let a = e[i];
@@ -148,8 +183,8 @@ function h(e) {
148
183
  r = a, n += a;
149
184
  continue;
150
185
  }
151
- if (m.has(a)) {
152
- let t = p.exec(e.slice(i));
186
+ if (g.has(a)) {
187
+ let t = h.exec(e.slice(i));
153
188
  if (t) {
154
189
  n += t[0], i += t[0].length - 1;
155
190
  continue;
@@ -163,13 +198,13 @@ function h(e) {
163
198
  }
164
199
  return t.push(n), t;
165
200
  }
166
- function g(e) {
201
+ function v(e) {
167
202
  let t = [], n = e.split("\n");
168
203
  for (let e = 0; e < n.length; e++) {
169
- let r = n[e].trim(), i = e + 1, a = ee(r);
204
+ let r = n[e].trim(), i = e + 1, a = _(r);
170
205
  if (a !== -1 && (r = r.slice(0, a).trim()), r.length === 0) continue;
171
206
  let o = [];
172
- for (let e of h(r)) {
207
+ for (let e of ne(r)) {
173
208
  let t = e.trim();
174
209
  t.length !== 0 && o.push({
175
210
  text: t,
@@ -180,12 +215,12 @@ function g(e) {
180
215
  }
181
216
  return t;
182
217
  }
183
- function _(e) {
184
- return g(e).flat();
218
+ function y(e) {
219
+ return v(e).flat();
185
220
  }
186
221
  //#endregion
187
222
  //#region packages/core/src/diagram-type.ts
188
- var v = [
223
+ var re = [
189
224
  "flowchart",
190
225
  "sequence",
191
226
  "class",
@@ -194,38 +229,38 @@ var v = [
194
229
  "architecture",
195
230
  "c4"
196
231
  ];
197
- function te(e) {
198
- let t = _(e)[0]?.text.toLowerCase() ?? "";
232
+ function b(e) {
233
+ let t = y(e)[0]?.text.toLowerCase() ?? "";
199
234
  return /^xychart(?:-beta)?(?:\s|$)/.test(t) ? "xychart" : /^architecture(?:-beta)?\s*$/.test(t) ? "architecture" : /^c4(?:context|container|component|dynamic|deployment)\s*$/.test(t) ? "c4" : /^sequencediagram\s*$/.test(t) ? "sequence" : /^classdiagram\s*$/.test(t) ? "class" : /^erdiagram\s*$/.test(t) ? "er" : "flowchart";
200
235
  }
201
236
  //#endregion
202
237
  //#region packages/core/src/direction.ts
203
- function y(e) {
238
+ function x(e) {
204
239
  return e === "TD" || e === "TB" || e === "LR" || e === "BT" || e === "RL";
205
240
  }
206
- function ne(e) {
241
+ function S(e) {
207
242
  let t = e?.toUpperCase();
208
- if (t === void 0 || !y(t)) throw Error(`Invalid direction: "${e}"`);
243
+ if (t === void 0 || !x(t)) throw Error(`Invalid direction: "${e}"`);
209
244
  return t;
210
245
  }
211
246
  //#endregion
212
247
  //#region packages/core/src/direction-override.ts
213
- function b(e, t) {
214
- return t === void 0 || !y(t) ? e : {
248
+ function C(e, t) {
249
+ return t === void 0 || !x(t) ? e : {
215
250
  ...e,
216
251
  direction: t
217
252
  };
218
253
  }
219
254
  //#endregion
220
255
  //#region packages/core/src/init-directive.ts
221
- var x = /* @__PURE__ */ new Set([
256
+ var ie = /* @__PURE__ */ new Set([
222
257
  "linear",
223
258
  "basis",
224
259
  "natural",
225
260
  "step",
226
261
  "stepBefore",
227
262
  "stepAfter"
228
- ]), S = {
263
+ ]), w = {
229
264
  theme: "colors come from the caller's bg/fg render options, which are usually CSS variables so a diagram inherits the host page's light/dark. A diagram-supplied theme would hard-code colors that fight it. Mermaid's theme names (default/dark/forest/neutral) also have no equivalent in this renderer's palettes — pass `bg`/`fg`, or a THEMES entry, instead",
230
265
  securitylevel: "this renderer emits static SVG and never executes diagram-supplied script, so there is no sandbox to configure",
231
266
  defaultrenderer: "ELK is the only layout engine; dagre/elk selection has no effect",
@@ -233,11 +268,11 @@ var x = /* @__PURE__ */ new Set([
233
268
  htmllabels: "labels are always rendered as SVG text; there is no HTML label mode",
234
269
  maxtextsize: "no text-size limit is enforced",
235
270
  startonload: "not a browser auto-render integration"
236
- }, C = /^\s*%%\{\s*(?:init|initialize)\s*:\s*([\s\S]*?)\}%%/i;
237
- function w(e) {
238
- return C.test(e);
271
+ }, T = /^\s*%%\{\s*(?:init|initialize)\s*:\s*([\s\S]*?)\}%%/i;
272
+ function ae(e) {
273
+ return T.test(e);
239
274
  }
240
- function re(e) {
275
+ function oe(e) {
241
276
  let t = "", n = null;
242
277
  for (let r = 0; r < e.length; r++) {
243
278
  let i = e[r];
@@ -268,12 +303,12 @@ function re(e) {
268
303
  }
269
304
  return t;
270
305
  }
271
- function T(e) {
272
- let t = e.match(C);
306
+ function E(e) {
307
+ let t = e.match(T);
273
308
  if (!t) return;
274
309
  let n;
275
310
  try {
276
- n = JSON.parse(re(t[1]));
311
+ n = JSON.parse(oe(t[1]));
277
312
  } catch {
278
313
  return;
279
314
  }
@@ -289,37 +324,37 @@ function T(e) {
289
324
  let e = { ...t };
290
325
  for (let [t, n] of Object.entries(e)) {
291
326
  if (t.toLowerCase() === "curve" && typeof n == "string") {
292
- x.has(n) && (r.curve = n);
327
+ ie.has(n) && (r.curve = n);
293
328
  continue;
294
329
  }
295
- t.toLowerCase() in S && r.ignored.push(t);
330
+ t.toLowerCase() in w && r.ignored.push(t);
296
331
  }
297
332
  continue;
298
333
  }
299
- n in S && r.ignored.push(e);
334
+ n in w && r.ignored.push(e);
300
335
  }
301
336
  return r;
302
337
  }
303
- function ie(e) {
338
+ function se(e) {
304
339
  let t = { ignored: [] };
305
340
  for (let n of e) {
306
- let e = T(n);
341
+ let e = E(n);
307
342
  e && (e.theme !== void 0 && (t.theme = e.theme), e.curve !== void 0 && (t.curve = e.curve), t.ignored.push(...e.ignored));
308
343
  }
309
344
  return t;
310
345
  }
311
- function ae(e, t) {
346
+ function ce(e, t) {
312
347
  return t.curve === void 0 || e.curve !== void 0 ? e : {
313
348
  ...e,
314
349
  curve: t.curve
315
350
  };
316
351
  }
317
- function oe(e) {
318
- return [...new Set(e.ignored)].map((e) => `${e}: ${S[e.toLowerCase()] ?? "not supported"}`);
352
+ function le(e) {
353
+ return [...new Set(e.ignored)].map((e) => `${e}: ${w[e.toLowerCase()] ?? "not supported"}`);
319
354
  }
320
355
  //#endregion
321
356
  //#region packages/core/src/text-metrics.ts
322
- var E = {
357
+ var D = {
323
358
  " ": .521,
324
359
  "!": .533,
325
360
  "\"": .863,
@@ -416,10 +451,10 @@ var E = {
416
451
  "}": .789,
417
452
  "~": 1.225
418
453
  };
419
- function se(e) {
420
- return Object.hasOwn(E, e);
454
+ function ue(e) {
455
+ return Object.hasOwn(D, e);
421
456
  }
422
- var ce = /* @__PURE__ */ new Set([
457
+ var de = /* @__PURE__ */ new Set([
423
458
  "i",
424
459
  "l",
425
460
  "t",
@@ -434,14 +469,14 @@ var ce = /* @__PURE__ */ new Set([
434
469
  ":",
435
470
  ";",
436
471
  "'"
437
- ]), le = /* @__PURE__ */ new Set([
472
+ ]), fe = /* @__PURE__ */ new Set([
438
473
  "W",
439
474
  "M",
440
475
  "w",
441
476
  "m",
442
477
  "@",
443
478
  "%"
444
- ]), ue = /* @__PURE__ */ new Set(["W", "M"]), de = /* @__PURE__ */ new Set([
479
+ ]), pe = /* @__PURE__ */ new Set(["W", "M"]), me = /* @__PURE__ */ new Set([
445
480
  "(",
446
481
  ")",
447
482
  "[",
@@ -454,68 +489,68 @@ var ce = /* @__PURE__ */ new Set([
454
489
  "\"",
455
490
  "`"
456
491
  ]);
457
- function fe(e) {
492
+ function he(e) {
458
493
  return e >= 768 && e <= 879 || e >= 6832 && e <= 6911 || e >= 7616 && e <= 7679 || e >= 8400 && e <= 8447 || e >= 65056 && e <= 65071;
459
494
  }
460
- function D(e) {
495
+ function O(e) {
461
496
  return e >= 4352 && e <= 4447 || e >= 11904 && e <= 12031 || e >= 12032 && e <= 12255 || e >= 12288 && e <= 12351 || e >= 12352 && e <= 12447 || e >= 12448 && e <= 12543 || e >= 12544 && e <= 12591 || e >= 12592 && e <= 12687 || e >= 12688 && e <= 12799 || e >= 12800 && e <= 13311 || e >= 13312 && e <= 19903 || e >= 19968 && e <= 40959 || e >= 44032 && e <= 55215 || e >= 63744 && e <= 64255 || e >= 65280 && e <= 65376 || e >= 65504 && e <= 65510 || e >= 131072;
462
497
  }
463
- var pe = /\p{Emoji_Presentation}/u, O = /\p{Extended_Pictographic}/u;
464
- function k(e) {
498
+ var k = /\p{Emoji_Presentation}/u, A = /\p{Extended_Pictographic}/u;
499
+ function j(e) {
465
500
  return e >= 9632 && e <= 9727;
466
501
  }
467
- function A(e) {
502
+ function M(e) {
468
503
  return e >= 8596 && e <= 8601 || e === 8617 || e === 8618;
469
504
  }
470
- function j(e) {
471
- if (pe.test(e)) return !0;
505
+ function N(e) {
506
+ if (k.test(e)) return !0;
472
507
  let t = e.codePointAt(0);
473
- return t !== void 0 && k(t) || t !== void 0 && A(t) ? !1 : O.test(e);
508
+ return t !== void 0 && j(t) || t !== void 0 && M(t) ? !1 : A.test(e);
474
509
  }
475
- function M(e) {
510
+ function P(e) {
476
511
  let t = e.codePointAt(0);
477
- return t === void 0 ? !1 : D(t) || j(e);
512
+ return t === void 0 ? !1 : O(t) || N(e);
478
513
  }
479
- function N(e) {
514
+ function F(e) {
480
515
  let t = e.codePointAt(0);
481
516
  if (t === void 0) return 0;
482
- if (Object.hasOwn(E, e)) {
483
- let t = E[e];
517
+ if (Object.hasOwn(D, e)) {
518
+ let t = D[e];
484
519
  /* v8 ignore else */
485
520
  if (t !== void 0) return t;
486
521
  }
487
- if (fe(t)) return 0;
488
- if (D(t) || j(e)) return 2;
522
+ if (he(t)) return 0;
523
+ if (O(t) || N(e)) return 2;
489
524
  let n = e.normalize("NFD")[0];
490
525
  if (n !== void 0 && n !== e) {
491
- let e = E[n];
526
+ let e = D[n];
492
527
  if (e !== void 0) return e;
493
528
  }
494
- return e === " " ? .3 : ue.has(e) ? 1.5 : le.has(e) ? 1.2 : ce.has(e) ? .4 : de.has(e) ? .5 : e === "r" ? .8 : t >= 65 && t <= 90 ? 1.2 : 1;
529
+ return e === " " ? .3 : pe.has(e) ? 1.5 : fe.has(e) ? 1.2 : de.has(e) ? .4 : me.has(e) ? .5 : e === "r" ? .8 : t >= 65 && t <= 90 ? 1.2 : 1;
495
530
  }
496
- var P = .6, F = !1;
497
- function I(e) {
531
+ var I = .6, L = !1;
532
+ function R(e) {
498
533
  return /mono|consol|menlo|courier|\bcode\b/i.test(e);
499
534
  }
500
- function L(e) {
501
- F = e;
535
+ function ge(e) {
536
+ L = e;
502
537
  }
503
- function R(e, t, n) {
538
+ function z(e, t, n) {
504
539
  let r = t * .15;
505
- if (F) {
540
+ if (L) {
506
541
  let n = 0;
507
542
  for (let t of e) n += 1;
508
- return n * t * P + r;
543
+ return n * t * I + r;
509
544
  }
510
545
  let i = n >= 600 ? .6 : n >= 500 ? .57 : .54, a = 0;
511
- for (let t of e) a += N(t);
546
+ for (let t of e) a += F(t);
512
547
  return a * t * i + r;
513
548
  }
514
- var z = 1.3;
515
- function B(e, t, n) {
516
- let r = e.split("\n"), i = t * z, a = 0;
549
+ var B = 1.3;
550
+ function _e(e, t, n) {
551
+ let r = e.split("\n"), i = t * B, a = 0;
517
552
  for (let e of r) {
518
- let r = R(e.replace(/<\/?(?:b|strong|i|em|u|s|del)\s*>/gi, ""), t, n);
553
+ let r = z(e.replace(/<\/?(?:b|strong|i|em|u|s|del)\s*>/gi, ""), t, n);
519
554
  r > a && (a = r);
520
555
  }
521
556
  return {
@@ -527,24 +562,24 @@ function B(e, t, n) {
527
562
  }
528
563
  //#endregion
529
564
  //#region packages/core/src/render-utils.ts
530
- function me(e) {
565
+ function ve(e) {
531
566
  return Number.isFinite(e) ? Number(e.toFixed(2)) : 0;
532
567
  }
533
568
  function V(e, ...t) {
534
569
  let n = e[0] ?? "";
535
570
  for (let r = 0; r < t.length; r++) {
536
571
  let i = t[r];
537
- n += String(typeof i == "number" ? me(i) : i), n += e[r + 1] ?? "";
572
+ n += String(typeof i == "number" ? ve(i) : i), n += e[r + 1] ?? "";
538
573
  }
539
574
  return n;
540
575
  }
541
576
  //#endregion
542
577
  //#region packages/core/src/multiline-utils.ts
543
- function he(e) {
578
+ function ye(e) {
544
579
  let t = e.startsWith("\"") && e.endsWith("\"") ? e.slice(1, -1) : e;
545
580
  return (t.length >= 2 && t.startsWith("`") && t.endsWith("`") ? t.slice(1, -1) : t).replace(/<br\s*\/?>/gi, "\n").replace(/\\n/g, "\n").replace(/<\/?(?:sub|sup|small|mark)\s*>/gi, "").replace(/\*\*(.+?)\*\*/g, "<b>$1</b>").replace(/(?<!\*)\*([^\s*](?:[^*]*[^\s*])?)\*(?!\*)/g, "<i>$1</i>").replace(/~~(.+?)~~/g, "<s>$1</s>");
546
581
  }
547
- function ge(e) {
582
+ function be(e) {
548
583
  return e.replace(/<\/?(?:b|strong|i|em|u|s|del)\s*>/gi, "");
549
584
  }
550
585
  function H(e) {
@@ -554,7 +589,7 @@ function U(e) {
554
589
  return e.replace(/&/g, "&amp;").replace(/"/g, "&quot;").replace(/</g, "&lt;").replace(/>/g, "&gt;");
555
590
  }
556
591
  var W = /<(\/)?(?:(b|strong)|(i|em)|(u)|(s|del))\s*>/gi;
557
- function _e(e) {
592
+ function xe(e) {
558
593
  let t = [], n = !1, r = !1, i = !1, a = !1, o = 0;
559
594
  W.lastIndex = 0;
560
595
  let s;
@@ -577,10 +612,10 @@ function _e(e) {
577
612
  strikethrough: a
578
613
  }), t;
579
614
  }
580
- var ve = /<\/?(?:b|strong|i|em|u|s|del)\s*>/i;
615
+ var Se = /<\/?(?:b|strong|i|em|u|s|del)\s*>/i;
581
616
  function G(e) {
582
- if (!ve.test(e)) return H(e);
583
- let t = _e(e);
617
+ if (!Se.test(e)) return H(e);
618
+ let t = xe(e);
584
619
  return t.length === 0 ? "" : t.every((e) => !e.bold && !e.italic && !e.underline && !e.strikethrough) ? t.map((e) => H(e.text)).join("") : t.map((e) => {
585
620
  let t = H(e.text);
586
621
  if (!e.bold && !e.italic && !e.underline && !e.strikethrough) return t;
@@ -593,10 +628,10 @@ function G(e) {
593
628
  function K(e, t, n, r, i, a = .35) {
594
629
  let o = e.split("\n");
595
630
  if (o.length === 1) return V`<text x="${t}" y="${n}" ${i} dy="${r * a}">${G(e)}</text>`;
596
- let s = r * z, c = -((o.length - 1) / 2) * s + r * a;
631
+ let s = r * B, c = -((o.length - 1) / 2) * s + r * a;
597
632
  return V`<text x="${t}" y="${n}" ${i}>${o.map((e, n) => V`<tspan x="${t}" dy="${n === 0 ? c : s}">${G(e)}</tspan>`).join("")}</text>`;
598
633
  }
599
- function ye(e, t, n, r, i, a, o, s, c) {
634
+ function Ce(e, t, n, r, i, a, o, s, c) {
600
635
  let l = r + o * 2, u = i + o * 2;
601
636
  return `${V`<rect x="${t - l / 2}" y="${n - u / 2}" ` + V`width="${l}" height="${u}" ${c} />`}\n${K(e, t, n, a, s)}`;
602
637
  }
@@ -613,7 +648,7 @@ function q(e) {
613
648
  }
614
649
  return n;
615
650
  }
616
- function be(e, t) {
651
+ function we(e, t) {
617
652
  let n = e.match(/^classDef\s+([\w,-]+)\s+(.+)$/);
618
653
  if (!n) return !1;
619
654
  let r = q(n[2]);
@@ -623,14 +658,14 @@ function be(e, t) {
623
658
  }
624
659
  return !0;
625
660
  }
626
- function xe(e, t) {
661
+ function Te(e, t) {
627
662
  let n = e.match(/^class\s+([\w-]+(?:\s*,\s*[\w-]+)*)\s+([\w-]+)\s*;?\s*$/);
628
663
  if (!n) return !1;
629
664
  let r = n[2];
630
665
  for (let e of n[1].split(",")) t.classAssignments.set(e.trim(), r);
631
666
  return !0;
632
667
  }
633
- function Se(e, t) {
668
+ function Ee(e, t) {
634
669
  let n = e.match(/^cssClass\s+"([^"]*)"\s+([\w-]+)\s*;?\s*$/);
635
670
  if (!n) return !1;
636
671
  let r = n[2];
@@ -640,7 +675,7 @@ function Se(e, t) {
640
675
  }
641
676
  return !0;
642
677
  }
643
- function Ce(e, t) {
678
+ function De(e, t) {
644
679
  let n = e.match(/^style\s+([\w,-]+)\s+(.+)$/);
645
680
  if (!n) return !1;
646
681
  let r = q(n[2]);
@@ -650,14 +685,14 @@ function Ce(e, t) {
650
685
  });
651
686
  return !0;
652
687
  }
653
- function we(e) {
688
+ function Oe(e) {
654
689
  let t = e.match(/^(.+?):::([\w][\w-]*)$/);
655
690
  return t ? {
656
691
  id: t[1],
657
692
  className: t[2]
658
693
  } : { id: e };
659
694
  }
660
- function Te(e, t) {
695
+ function ke(e, t) {
661
696
  let n, r = t.classDefs.get("default");
662
697
  r && (n = { ...r });
663
698
  let i = t.classAssignments.get(e);
@@ -674,12 +709,12 @@ function Te(e, t) {
674
709
  ...a
675
710
  } : { ...a }), n;
676
711
  }
677
- function Ee(e) {
712
+ function Ae(e) {
678
713
  if (e) return /^-?[a-zA-Z_][a-zA-Z0-9_-]*$/.test(e) ? e : void 0;
679
714
  }
680
715
  //#endregion
681
- //#region packages/core/src/generated/mono-font-subset.ts
682
- var De = "JetBrains Mono NL", Oe = "@font-face {\n font-family: 'JetBrains Mono NL';\n font-style: normal;\n font-weight: 400;\n font-display: swap;\n src: url(data:font/woff2;base64,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) format('woff2');\n unicode-range: U+0020-007E, U+00A0-00FF;\n}", ke = {
716
+ //#region packages/core/src/theme.ts
717
+ var je = {
683
718
  bg: "#FFFFFF",
684
719
  fg: "#27272A"
685
720
  }, J = {
@@ -694,7 +729,7 @@ var De = "JetBrains Mono NL", Oe = "@font-face {\n font-family: 'JetBrains Mono
694
729
  groupHeader: 5,
695
730
  innerStroke: 12,
696
731
  keyBadge: 10
697
- }, Ae = {
732
+ }, Me = {
698
733
  "zinc-light": {
699
734
  bg: "#FFFFFF",
700
735
  fg: "#27272A"
@@ -795,7 +830,7 @@ var De = "JetBrains Mono NL", Oe = "@font-face {\n font-family: 'JetBrains Mono
795
830
  muted: "#5c6370"
796
831
  }
797
832
  };
798
- function je(e) {
833
+ function Ne(e) {
799
834
  let t = e.colors ?? {}, n = e.type === "dark", r = (t) => e.tokenColors?.find((e) => Array.isArray(e.scope) ? e.scope.includes(t) : e.scope === t)?.settings?.foreground;
800
835
  return {
801
836
  bg: t["editor.background"] ?? (n ? "#1e1e1e" : "#ffffff"),
@@ -807,16 +842,16 @@ function je(e) {
807
842
  border: t["editorWidget.border"] ?? void 0
808
843
  };
809
844
  }
810
- var Y = /[<>{};]/;
811
- function Me(e) {
845
+ var Pe = /[<>{};]/;
846
+ function Fe(e) {
812
847
  let t = e.trim();
813
- if (!t.startsWith("var(") || !t.endsWith(")") || Y.test(t)) return !1;
848
+ if (!t.startsWith("var(") || !t.endsWith(")") || Pe.test(t)) return !1;
814
849
  let n = 0;
815
850
  for (let e of t) if (e === "(") n++;
816
851
  else if (e === ")" && (n--, n < 0)) return !1;
817
852
  return n === 0;
818
853
  }
819
- var Ne = /* @__PURE__ */ new Set([
854
+ var Ie = /* @__PURE__ */ new Set([
820
855
  "sans-serif",
821
856
  "serif",
822
857
  "monospace",
@@ -831,15 +866,15 @@ var Ne = /* @__PURE__ */ new Set([
831
866
  "emoji",
832
867
  "fangsong"
833
868
  ]);
834
- function Pe(e) {
869
+ function Le(e) {
835
870
  let t = e.trim();
836
- return t.includes(",") ? !0 : Ne.has(t.toLowerCase());
871
+ return t.includes(",") ? !0 : Ie.has(t.toLowerCase());
837
872
  }
838
- function X(e) {
873
+ function Y(e) {
839
874
  return e === void 0 || e.trim() === "" ? "<style>" : `<style nonce="${U(e)}">`;
840
875
  }
841
- function Fe(e, t, n) {
842
- let r = Me(e), i = r ? e.trim() : e.replace(/[<>{};'"]/g, ""), a = r || Pe(e) ? [] : [`@import url('https://fonts.googleapis.com/css2?family=${encodeURIComponent(i)}:wght@400;500;600;700&amp;display=swap');`], o = `
876
+ function X(e, t, n) {
877
+ let r = Fe(e), i = r ? e.trim() : e.replace(/[<>{};'"]/g, ""), a = r || Le(e) ? [] : [`@import url('https://fonts.googleapis.com/css2?family=${encodeURIComponent(i)}:wght@400;500;600;700&amp;display=swap');`], o = `
843
878
  /* Derived from --bg and --fg (overridable via --line, --accent, etc.) */
844
879
  --_text: var(--fg);
845
880
  --_text-sec: var(--muted, color-mix(in srgb, var(--fg) ${J.textSec}%, var(--bg)));
@@ -854,29 +889,29 @@ function Fe(e, t, n) {
854
889
  --_inner-stroke: color-mix(in srgb, var(--fg) ${J.innerStroke}%, var(--bg));
855
890
  --_key-badge: color-mix(in srgb, var(--fg) ${J.keyBadge}%, var(--bg));`;
856
891
  return [
857
- X(n),
892
+ Y(n),
858
893
  ...a.length > 0 ? [` ${a.join("\n ")}`] : [],
859
- ...t ? [` ${Oe}`] : [],
894
+ ...t ? [` ${t.faceCss}`] : [],
860
895
  ` text { font-family: ${r ? i : `'${i}'`}, system-ui, sans-serif; }`,
861
- ...t ? [` .mono { font-family: '${De}', 'SF Mono', 'Fira Code', ui-monospace, monospace; }`] : [],
896
+ ...t ? [` .mono { font-family: '${t.family}', 'SF Mono', 'Fira Code', ui-monospace, monospace; }`] : [],
862
897
  ` svg {${o}`,
863
898
  " }",
864
899
  "</style>"
865
900
  ].join("\n");
866
901
  }
867
- function Ie(e, t, n) {
902
+ function Re(e, t, n) {
868
903
  return (.299 * e + .587 * t + .114 * n) / 255;
869
904
  }
870
- function Le(e, t) {
905
+ function ze(e, t) {
871
906
  if (!e) return t;
872
- let n = i(e);
873
- return n ? Ie(...n) > .5 ? "#000000" : "#FFFFFF" : t;
907
+ let n = c(e);
908
+ return n ? Re(...n) > .5 ? "#000000" : "#FFFFFF" : t;
874
909
  }
875
910
  var Z = 0;
876
911
  function Q() {
877
912
  return Z += 1, `zm-title-${Z}`;
878
913
  }
879
- function Re() {
914
+ function Be() {
880
915
  Z = 0;
881
916
  }
882
917
  function $(e, t) {
@@ -890,7 +925,7 @@ function $(e, t) {
890
925
  e.border ? `--border:${e.border}` : ""
891
926
  ].filter(Boolean).join(";")}${t ? "" : ";background:var(--bg)"}`;
892
927
  }
893
- function ze(e, t, n, r, i, a, o, s = !0) {
928
+ function Ve(e, t, n, r, i, a, o, s = !0) {
894
929
  let c = s ? ` style="${$(n, r)}"` : "", l = "", u = "";
895
930
  if (o) {
896
931
  if (i) {
@@ -905,6 +940,6 @@ function ze(e, t, n, r, i, a, o, s = !0) {
905
940
  return V`<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 ${e} ${t}" ` + V`width="${e}" height="${t}"${l}${c}>` + u;
906
941
  }
907
942
  //#endregion
908
- export { ke as DEFAULTS, v as DIAGRAM_TYPES, z as LINE_HEIGHT_RATIO, J as MIX, Ae as THEMES, Re as __resetSvgTitleIdCounterForTests, e as applyClickStatement, ae as applyInitConfig, Fe as buildStyleBlock, oe as describeIgnored, te as detectDiagramType, U as escapeAttr, H as escapeXml, ie as extractInitConfig, V as f, f as formatCssColor, je as fromShikiTheme, N as getCharWidth, Le as getReadableTextColor, se as hasMeasuredAdvance, y as isDirection, w as isInitDirective, I as isMonospaceFont, M as isWideChar, B as measureMultilineText, R as measureTextWidth, u as mixHexColors, l as mixSrgb, he as normalizeBrTags, c as parseCssColor, i as parseHexColor, a as parseHexRgba, T as parseInitDirective, q as parseStyleProps, K as renderMultilineText, ye as renderMultilineTextWithBackground, Te as resolveNodeStyle, t as safeHref, Ee as sanitizeClassName, L as setMonospaceMetrics, we as splitClassShorthand, _ as splitStatements, g as splitStatementsByLine, ge as stripFormattingTags, X as styleOpenTag, ze as svgOpenTag, $ as themeStyleDeclarations, ne as toDirection, xe as tryApplyClassAssignment, be as tryApplyClassDef, Se as tryApplyCssClass, Ce as tryApplyStyleStatement, b as withDirectionOverride };
943
+ export { je as DEFAULTS, re as DIAGRAM_TYPES, B as LINE_HEIGHT_RATIO, J as MIX, Me as THEMES, Be as __resetSvgTitleIdCounterForTests, e as applyClickStatement, ce as applyInitConfig, X as buildStyleBlock, le as describeIgnored, b as detectDiagramType, U as escapeAttr, H as escapeXml, se as extractInitConfig, V as f, m as formatCssColor, Ne as fromShikiTheme, F as getCharWidth, ze as getReadableTextColor, ue as hasMeasuredAdvance, x as isDirection, r as isEdgeWithinOwnCluster, ae as isInitDirective, R as isMonospaceFont, P as isWideChar, _e as measureMultilineText, z as measureTextWidth, te as mixHexColors, f as mixSrgb, ye as normalizeBrTags, d as parseCssColor, c as parseHexColor, l as parseHexRgba, E as parseInitDirective, q as parseStyleProps, K as renderMultilineText, Ce as renderMultilineTextWithBackground, ke as resolveNodeStyle, t as safeHref, Ae as sanitizeClassName, ge as setMonospaceMetrics, Oe as splitClassShorthand, y as splitStatements, v as splitStatementsByLine, be as stripFormattingTags, Y as styleOpenTag, Ve as svgOpenTag, $ as themeStyleDeclarations, S as toDirection, Te as tryApplyClassAssignment, we as tryApplyClassDef, Ee as tryApplyCssClass, De as tryApplyStyleStatement, C as withDirectionOverride, a as withoutOwnClusterEdges };
909
944
 
910
945
  //# sourceMappingURL=index.js.map