@zombie-mermaid/core 3.0.0 → 3.2.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/index.d.cts CHANGED
@@ -119,6 +119,14 @@ export declare function describeIgnored(config: InitConfig): string[];
119
119
  */
120
120
  export declare function detectDiagramType(text: string): DiagramType;
121
121
 
122
+ /**
123
+ * Every diagram type this library can detect and route to a renderer — the
124
+ * runtime source of truth `DiagramType` is derived from, so consumers that
125
+ * need to enumerate the types (e.g. the MCP `list_diagram_types` tool) never
126
+ * keep a duplicate list that could drift.
127
+ */
128
+ export declare const DIAGRAM_TYPES: readonly ["flowchart", "sequence", "class", "er", "xychart", "architecture", "c4"];
129
+
122
130
  /**
123
131
  * Diagram color configuration.
124
132
  *
@@ -145,7 +153,7 @@ export declare interface DiagramColors {
145
153
  }
146
154
 
147
155
  /** The diagram types this library can detect and route to a renderer. */
148
- export declare type DiagramType = 'flowchart' | 'sequence' | 'class' | 'er' | 'xychart';
156
+ export declare type DiagramType = (typeof DIAGRAM_TYPES)[number];
149
157
 
150
158
  export declare type Direction = 'TD' | 'TB' | 'LR' | 'BT' | 'RL';
151
159
 
@@ -185,6 +193,17 @@ export declare function escapeXml(text: string): string;
185
193
  */
186
194
  export declare function extractInitConfig(lines: string[]): InitConfig;
187
195
 
196
+ /**
197
+ * Tagged template literal: stringifies interpolated values, rounding any
198
+ * `number` to at most 2 decimal places first. Non-number values (strings,
199
+ * booleans, etc.) pass through `String()` unchanged, same as an untagged
200
+ * template literal would.
201
+ *
202
+ * @example
203
+ * f`<rect x="${3.14159}" y="${-0.001}" />` // '<rect x="3.14" y="0" />'
204
+ */
205
+ export declare function f(strings: TemplateStringsArray, ...values: unknown[]): string;
206
+
188
207
  /**
189
208
  * Options applicable to flowchart (`graph` / `flowchart`) and state
190
209
  * (`stateDiagram-v2`) diagrams — both share `DiagramType: 'flowchart'` and
@@ -1164,6 +1183,9 @@ export declare function toDirection(raw: string | undefined): Direction;
1164
1183
  /**
1165
1184
  * `class A,B className` — attach a style class to one or more nodes.
1166
1185
  *
1186
+ * Whitespace around commas is allowed (`class A, B foo`) — the state-diagram
1187
+ * docs show that form (`class Moving, Crash movement`).
1188
+ *
1167
1189
  * Allows an optional trailing semicolon (`class A,B foo;`) — Mermaid treats
1168
1190
  * it as valid/optional, and `classDef`/`style` already tolerate it via their
1169
1191
  * `(.+)$` capture. Without this, the semicolon form fails to match here and
package/dist/index.d.ts CHANGED
@@ -119,6 +119,14 @@ export declare function describeIgnored(config: InitConfig): string[];
119
119
  */
120
120
  export declare function detectDiagramType(text: string): DiagramType;
121
121
 
122
+ /**
123
+ * Every diagram type this library can detect and route to a renderer — the
124
+ * runtime source of truth `DiagramType` is derived from, so consumers that
125
+ * need to enumerate the types (e.g. the MCP `list_diagram_types` tool) never
126
+ * keep a duplicate list that could drift.
127
+ */
128
+ export declare const DIAGRAM_TYPES: readonly ["flowchart", "sequence", "class", "er", "xychart", "architecture", "c4"];
129
+
122
130
  /**
123
131
  * Diagram color configuration.
124
132
  *
@@ -145,7 +153,7 @@ export declare interface DiagramColors {
145
153
  }
146
154
 
147
155
  /** The diagram types this library can detect and route to a renderer. */
148
- export declare type DiagramType = 'flowchart' | 'sequence' | 'class' | 'er' | 'xychart';
156
+ export declare type DiagramType = (typeof DIAGRAM_TYPES)[number];
149
157
 
150
158
  export declare type Direction = 'TD' | 'TB' | 'LR' | 'BT' | 'RL';
151
159
 
@@ -185,6 +193,17 @@ export declare function escapeXml(text: string): string;
185
193
  */
186
194
  export declare function extractInitConfig(lines: string[]): InitConfig;
187
195
 
196
+ /**
197
+ * Tagged template literal: stringifies interpolated values, rounding any
198
+ * `number` to at most 2 decimal places first. Non-number values (strings,
199
+ * booleans, etc.) pass through `String()` unchanged, same as an untagged
200
+ * template literal would.
201
+ *
202
+ * @example
203
+ * f`<rect x="${3.14159}" y="${-0.001}" />` // '<rect x="3.14" y="0" />'
204
+ */
205
+ export declare function f(strings: TemplateStringsArray, ...values: unknown[]): string;
206
+
188
207
  /**
189
208
  * Options applicable to flowchart (`graph` / `flowchart`) and state
190
209
  * (`stateDiagram-v2`) diagrams — both share `DiagramType: 'flowchart'` and
@@ -1164,6 +1183,9 @@ export declare function toDirection(raw: string | undefined): Direction;
1164
1183
  /**
1165
1184
  * `class A,B className` — attach a style class to one or more nodes.
1166
1185
  *
1186
+ * Whitespace around commas is allowed (`class A, B foo`) — the state-diagram
1187
+ * docs show that form (`class Moving, Crash movement`).
1188
+ *
1167
1189
  * Allows an optional trailing semicolon (`class A,B foo;`) — Mermaid treats
1168
1190
  * it as valid/optional, and `classDef`/`style` already tolerate it via their
1169
1191
  * `(.+)$` capture. Without this, the semicolon form fails to match here and
package/dist/index.js CHANGED
@@ -113,7 +113,7 @@ function f(e) {
113
113
  //#endregion
114
114
  //#region packages/core/src/statements.ts
115
115
  var p = /^[&#](?:#?[0-9]+|#?[xX][0-9a-fA-F]+|[a-zA-Z][a-zA-Z0-9]*);/, m = /* @__PURE__ */ new Set(["&", "#"]);
116
- function h(e) {
116
+ function ee(e) {
117
117
  let t = null;
118
118
  for (let n = 0; n < e.length; n++) {
119
119
  let r = e[n];
@@ -136,7 +136,7 @@ function h(e) {
136
136
  }
137
137
  return -1;
138
138
  }
139
- function g(e) {
139
+ function h(e) {
140
140
  let t = [], n = "", r = null;
141
141
  for (let i = 0; i < e.length; i++) {
142
142
  let a = e[i];
@@ -163,13 +163,13 @@ function g(e) {
163
163
  }
164
164
  return t.push(n), t;
165
165
  }
166
- function _(e) {
166
+ function g(e) {
167
167
  let t = [], n = e.split("\n");
168
168
  for (let e = 0; e < n.length; e++) {
169
- let r = n[e].trim(), i = e + 1, a = h(r);
169
+ let r = n[e].trim(), i = e + 1, a = ee(r);
170
170
  if (a !== -1 && (r = r.slice(0, a).trim()), r.length === 0) continue;
171
171
  let o = [];
172
- for (let e of g(r)) {
172
+ for (let e of h(r)) {
173
173
  let t = e.trim();
174
174
  t.length !== 0 && o.push({
175
175
  text: t,
@@ -180,28 +180,37 @@ function _(e) {
180
180
  }
181
181
  return t;
182
182
  }
183
- function v(e) {
184
- return _(e).flat();
183
+ function _(e) {
184
+ return g(e).flat();
185
185
  }
186
186
  //#endregion
187
187
  //#region packages/core/src/diagram-type.ts
188
- function ee(e) {
189
- let t = v(e)[0]?.text.toLowerCase() ?? "";
190
- return /^xychart(?:-beta)?(?:\s|$)/.test(t) ? "xychart" : /^sequencediagram\s*$/.test(t) ? "sequence" : /^classdiagram\s*$/.test(t) ? "class" : /^erdiagram\s*$/.test(t) ? "er" : "flowchart";
188
+ var v = [
189
+ "flowchart",
190
+ "sequence",
191
+ "class",
192
+ "er",
193
+ "xychart",
194
+ "architecture",
195
+ "c4"
196
+ ];
197
+ function te(e) {
198
+ let t = _(e)[0]?.text.toLowerCase() ?? "";
199
+ 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";
191
200
  }
192
201
  //#endregion
193
202
  //#region packages/core/src/direction.ts
194
203
  function y(e) {
195
204
  return e === "TD" || e === "TB" || e === "LR" || e === "BT" || e === "RL";
196
205
  }
197
- function te(e) {
206
+ function ne(e) {
198
207
  let t = e?.toUpperCase();
199
208
  if (t === void 0 || !y(t)) throw Error(`Invalid direction: "${e}"`);
200
209
  return t;
201
210
  }
202
211
  //#endregion
203
212
  //#region packages/core/src/direction-override.ts
204
- function ne(e, t) {
213
+ function b(e, t) {
205
214
  return t === void 0 || !y(t) ? e : {
206
215
  ...e,
207
216
  direction: t
@@ -209,14 +218,14 @@ function ne(e, t) {
209
218
  }
210
219
  //#endregion
211
220
  //#region packages/core/src/init-directive.ts
212
- var b = /* @__PURE__ */ new Set([
221
+ var x = /* @__PURE__ */ new Set([
213
222
  "linear",
214
223
  "basis",
215
224
  "natural",
216
225
  "step",
217
226
  "stepBefore",
218
227
  "stepAfter"
219
- ]), x = {
228
+ ]), S = {
220
229
  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",
221
230
  securitylevel: "this renderer emits static SVG and never executes diagram-supplied script, so there is no sandbox to configure",
222
231
  defaultrenderer: "ELK is the only layout engine; dagre/elk selection has no effect",
@@ -224,11 +233,11 @@ var b = /* @__PURE__ */ new Set([
224
233
  htmllabels: "labels are always rendered as SVG text; there is no HTML label mode",
225
234
  maxtextsize: "no text-size limit is enforced",
226
235
  startonload: "not a browser auto-render integration"
227
- }, S = /^\s*%%\{\s*(?:init|initialize)\s*:\s*([\s\S]*?)\}%%/i;
228
- function re(e) {
229
- return S.test(e);
236
+ }, C = /^\s*%%\{\s*(?:init|initialize)\s*:\s*([\s\S]*?)\}%%/i;
237
+ function w(e) {
238
+ return C.test(e);
230
239
  }
231
- function ie(e) {
240
+ function re(e) {
232
241
  let t = "", n = null;
233
242
  for (let r = 0; r < e.length; r++) {
234
243
  let i = e[r];
@@ -259,12 +268,12 @@ function ie(e) {
259
268
  }
260
269
  return t;
261
270
  }
262
- function C(e) {
263
- let t = e.match(S);
271
+ function T(e) {
272
+ let t = e.match(C);
264
273
  if (!t) return;
265
274
  let n;
266
275
  try {
267
- n = JSON.parse(ie(t[1]));
276
+ n = JSON.parse(re(t[1]));
268
277
  } catch {
269
278
  return;
270
279
  }
@@ -280,33 +289,33 @@ function C(e) {
280
289
  let e = { ...t };
281
290
  for (let [t, n] of Object.entries(e)) {
282
291
  if (t.toLowerCase() === "curve" && typeof n == "string") {
283
- b.has(n) && (r.curve = n);
292
+ x.has(n) && (r.curve = n);
284
293
  continue;
285
294
  }
286
- t.toLowerCase() in x && r.ignored.push(t);
295
+ t.toLowerCase() in S && r.ignored.push(t);
287
296
  }
288
297
  continue;
289
298
  }
290
- n in x && r.ignored.push(e);
299
+ n in S && r.ignored.push(e);
291
300
  }
292
301
  return r;
293
302
  }
294
- function w(e) {
303
+ function ie(e) {
295
304
  let t = { ignored: [] };
296
305
  for (let n of e) {
297
- let e = C(n);
306
+ let e = T(n);
298
307
  e && (e.theme !== void 0 && (t.theme = e.theme), e.curve !== void 0 && (t.curve = e.curve), t.ignored.push(...e.ignored));
299
308
  }
300
309
  return t;
301
310
  }
302
- function T(e, t) {
311
+ function ae(e, t) {
303
312
  return t.curve === void 0 || e.curve !== void 0 ? e : {
304
313
  ...e,
305
314
  curve: t.curve
306
315
  };
307
316
  }
308
- function ae(e) {
309
- return [...new Set(e.ignored)].map((e) => `${e}: ${x[e.toLowerCase()] ?? "not supported"}`);
317
+ function oe(e) {
318
+ return [...new Set(e.ignored)].map((e) => `${e}: ${S[e.toLowerCase()] ?? "not supported"}`);
310
319
  }
311
320
  //#endregion
312
321
  //#region packages/core/src/text-metrics.ts
@@ -407,10 +416,10 @@ var E = {
407
416
  "}": .789,
408
417
  "~": 1.225
409
418
  };
410
- function oe(e) {
419
+ function se(e) {
411
420
  return Object.hasOwn(E, e);
412
421
  }
413
- var se = /* @__PURE__ */ new Set([
422
+ var ce = /* @__PURE__ */ new Set([
414
423
  "i",
415
424
  "l",
416
425
  "t",
@@ -425,14 +434,14 @@ var se = /* @__PURE__ */ new Set([
425
434
  ":",
426
435
  ";",
427
436
  "'"
428
- ]), ce = /* @__PURE__ */ new Set([
437
+ ]), le = /* @__PURE__ */ new Set([
429
438
  "W",
430
439
  "M",
431
440
  "w",
432
441
  "m",
433
442
  "@",
434
443
  "%"
435
- ]), le = /* @__PURE__ */ new Set(["W", "M"]), ue = /* @__PURE__ */ new Set([
444
+ ]), ue = /* @__PURE__ */ new Set(["W", "M"]), de = /* @__PURE__ */ new Set([
436
445
  "(",
437
446
  ")",
438
447
  "[",
@@ -445,13 +454,13 @@ var se = /* @__PURE__ */ new Set([
445
454
  "\"",
446
455
  "`"
447
456
  ]);
448
- function de(e) {
457
+ function fe(e) {
449
458
  return e >= 768 && e <= 879 || e >= 6832 && e <= 6911 || e >= 7616 && e <= 7679 || e >= 8400 && e <= 8447 || e >= 65056 && e <= 65071;
450
459
  }
451
460
  function D(e) {
452
461
  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;
453
462
  }
454
- var fe = /\p{Emoji_Presentation}/u, O = /\p{Extended_Pictographic}/u;
463
+ var pe = /\p{Emoji_Presentation}/u, O = /\p{Extended_Pictographic}/u;
455
464
  function k(e) {
456
465
  return e >= 9632 && e <= 9727;
457
466
  }
@@ -459,7 +468,7 @@ function A(e) {
459
468
  return e >= 8596 && e <= 8601 || e === 8617 || e === 8618;
460
469
  }
461
470
  function j(e) {
462
- if (fe.test(e)) return !0;
471
+ if (pe.test(e)) return !0;
463
472
  let t = e.codePointAt(0);
464
473
  return t !== void 0 && k(t) || t !== void 0 && A(t) ? !1 : O.test(e);
465
474
  }
@@ -475,14 +484,14 @@ function N(e) {
475
484
  /* v8 ignore else */
476
485
  if (t !== void 0) return t;
477
486
  }
478
- if (de(t)) return 0;
487
+ if (fe(t)) return 0;
479
488
  if (D(t) || j(e)) return 2;
480
489
  let n = e.normalize("NFD")[0];
481
490
  if (n !== void 0 && n !== e) {
482
491
  let e = E[n];
483
492
  if (e !== void 0) return e;
484
493
  }
485
- return e === " " ? .3 : le.has(e) ? 1.5 : ce.has(e) ? 1.2 : se.has(e) ? .4 : ue.has(e) ? .5 : e === "r" ? .8 : t >= 65 && t <= 90 ? 1.2 : 1;
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;
486
495
  }
487
496
  var P = .6, F = !1;
488
497
  function I(e) {
@@ -517,12 +526,25 @@ function B(e, t, n) {
517
526
  };
518
527
  }
519
528
  //#endregion
529
+ //#region packages/core/src/render-utils.ts
530
+ function me(e) {
531
+ return Number.isFinite(e) ? Number(e.toFixed(2)) : 0;
532
+ }
533
+ function V(e, ...t) {
534
+ let n = e[0] ?? "";
535
+ for (let r = 0; r < t.length; r++) {
536
+ let i = t[r];
537
+ n += String(typeof i == "number" ? me(i) : i), n += e[r + 1] ?? "";
538
+ }
539
+ return n;
540
+ }
541
+ //#endregion
520
542
  //#region packages/core/src/multiline-utils.ts
521
- function V(e) {
543
+ function he(e) {
522
544
  let t = e.startsWith("\"") && e.endsWith("\"") ? e.slice(1, -1) : e;
523
545
  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>");
524
546
  }
525
- function pe(e) {
547
+ function ge(e) {
526
548
  return e.replace(/<\/?(?:b|strong|i|em|u|s|del)\s*>/gi, "");
527
549
  }
528
550
  function H(e) {
@@ -532,7 +554,7 @@ function U(e) {
532
554
  return e.replace(/&/g, "&amp;").replace(/"/g, "&quot;").replace(/</g, "&lt;").replace(/>/g, "&gt;");
533
555
  }
534
556
  var W = /<(\/)?(?:(b|strong)|(i|em)|(u)|(s|del))\s*>/gi;
535
- function me(e) {
557
+ function _e(e) {
536
558
  let t = [], n = !1, r = !1, i = !1, a = !1, o = 0;
537
559
  W.lastIndex = 0;
538
560
  let s;
@@ -555,10 +577,10 @@ function me(e) {
555
577
  strikethrough: a
556
578
  }), t;
557
579
  }
558
- var he = /<\/?(?:b|strong|i|em|u|s|del)\s*>/i;
580
+ var ve = /<\/?(?:b|strong|i|em|u|s|del)\s*>/i;
559
581
  function G(e) {
560
- if (!he.test(e)) return H(e);
561
- let t = me(e);
582
+ if (!ve.test(e)) return H(e);
583
+ let t = _e(e);
562
584
  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) => {
563
585
  let t = H(e.text);
564
586
  if (!e.bold && !e.italic && !e.underline && !e.strikethrough) return t;
@@ -570,13 +592,13 @@ function G(e) {
570
592
  }
571
593
  function K(e, t, n, r, i, a = .35) {
572
594
  let o = e.split("\n");
573
- if (o.length === 1) return `<text x="${t}" y="${n}" ${i} dy="${r * a}">${G(e)}</text>`;
595
+ if (o.length === 1) return V`<text x="${t}" y="${n}" ${i} dy="${r * a}">${G(e)}</text>`;
574
596
  let s = r * z, c = -((o.length - 1) / 2) * s + r * a;
575
- return `<text x="${t}" y="${n}" ${i}>${o.map((e, n) => `<tspan x="${t}" dy="${n === 0 ? c : s}">${G(e)}</tspan>`).join("")}</text>`;
597
+ 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>`;
576
598
  }
577
- function ge(e, t, n, r, i, a, o, s, c) {
599
+ function ye(e, t, n, r, i, a, o, s, c) {
578
600
  let l = r + o * 2, u = i + o * 2;
579
- return `${`<rect x="${t - l / 2}" y="${n - u / 2}" width="${l}" height="${u}" ${c} />`}\n${K(e, t, n, a, s)}`;
601
+ return `${V`<rect x="${t - l / 2}" y="${n - u / 2}" ` + V`width="${l}" height="${u}" ${c} />`}\n${K(e, t, n, a, s)}`;
580
602
  }
581
603
  //#endregion
582
604
  //#region packages/core/src/style-directives.ts
@@ -591,7 +613,7 @@ function q(e) {
591
613
  }
592
614
  return n;
593
615
  }
594
- function _e(e, t) {
616
+ function be(e, t) {
595
617
  let n = e.match(/^classDef\s+([\w,-]+)\s+(.+)$/);
596
618
  if (!n) return !1;
597
619
  let r = q(n[2]);
@@ -601,14 +623,14 @@ function _e(e, t) {
601
623
  }
602
624
  return !0;
603
625
  }
604
- function ve(e, t) {
605
- let n = e.match(/^class\s+([\w,-]+)\s+([\w-]+)\s*;?\s*$/);
626
+ function xe(e, t) {
627
+ let n = e.match(/^class\s+([\w-]+(?:\s*,\s*[\w-]+)*)\s+([\w-]+)\s*;?\s*$/);
606
628
  if (!n) return !1;
607
629
  let r = n[2];
608
630
  for (let e of n[1].split(",")) t.classAssignments.set(e.trim(), r);
609
631
  return !0;
610
632
  }
611
- function ye(e, t) {
633
+ function Se(e, t) {
612
634
  let n = e.match(/^cssClass\s+"([^"]*)"\s+([\w-]+)\s*;?\s*$/);
613
635
  if (!n) return !1;
614
636
  let r = n[2];
@@ -618,7 +640,7 @@ function ye(e, t) {
618
640
  }
619
641
  return !0;
620
642
  }
621
- function be(e, t) {
643
+ function Ce(e, t) {
622
644
  let n = e.match(/^style\s+([\w,-]+)\s+(.+)$/);
623
645
  if (!n) return !1;
624
646
  let r = q(n[2]);
@@ -628,14 +650,14 @@ function be(e, t) {
628
650
  });
629
651
  return !0;
630
652
  }
631
- function xe(e) {
653
+ function we(e) {
632
654
  let t = e.match(/^(.+?):::([\w][\w-]*)$/);
633
655
  return t ? {
634
656
  id: t[1],
635
657
  className: t[2]
636
658
  } : { id: e };
637
659
  }
638
- function Se(e, t) {
660
+ function Te(e, t) {
639
661
  let n, r = t.classDefs.get("default");
640
662
  r && (n = { ...r });
641
663
  let i = t.classAssignments.get(e);
@@ -652,12 +674,12 @@ function Se(e, t) {
652
674
  ...a
653
675
  } : { ...a }), n;
654
676
  }
655
- function Ce(e) {
677
+ function Ee(e) {
656
678
  if (e) return /^-?[a-zA-Z_][a-zA-Z0-9_-]*$/.test(e) ? e : void 0;
657
679
  }
658
680
  //#endregion
659
681
  //#region packages/core/src/generated/mono-font-subset.ts
660
- var we = "JetBrains Mono NL", Te = "@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}", Ee = {
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 = {
661
683
  bg: "#FFFFFF",
662
684
  fg: "#27272A"
663
685
  }, J = {
@@ -672,7 +694,7 @@ var we = "JetBrains Mono NL", Te = "@font-face {\n font-family: 'JetBrains Mono
672
694
  groupHeader: 5,
673
695
  innerStroke: 12,
674
696
  keyBadge: 10
675
- }, De = {
697
+ }, Ae = {
676
698
  "zinc-light": {
677
699
  bg: "#FFFFFF",
678
700
  fg: "#27272A"
@@ -773,7 +795,7 @@ var we = "JetBrains Mono NL", Te = "@font-face {\n font-family: 'JetBrains Mono
773
795
  muted: "#5c6370"
774
796
  }
775
797
  };
776
- function Oe(e) {
798
+ function je(e) {
777
799
  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;
778
800
  return {
779
801
  bg: t["editor.background"] ?? (n ? "#1e1e1e" : "#ffffff"),
@@ -785,16 +807,16 @@ function Oe(e) {
785
807
  border: t["editorWidget.border"] ?? void 0
786
808
  };
787
809
  }
788
- var ke = /[<>{};]/;
789
- function Ae(e) {
810
+ var Y = /[<>{};]/;
811
+ function Me(e) {
790
812
  let t = e.trim();
791
- if (!t.startsWith("var(") || !t.endsWith(")") || ke.test(t)) return !1;
813
+ if (!t.startsWith("var(") || !t.endsWith(")") || Y.test(t)) return !1;
792
814
  let n = 0;
793
815
  for (let e of t) if (e === "(") n++;
794
816
  else if (e === ")" && (n--, n < 0)) return !1;
795
817
  return n === 0;
796
818
  }
797
- var je = /* @__PURE__ */ new Set([
819
+ var Ne = /* @__PURE__ */ new Set([
798
820
  "sans-serif",
799
821
  "serif",
800
822
  "monospace",
@@ -809,15 +831,15 @@ var je = /* @__PURE__ */ new Set([
809
831
  "emoji",
810
832
  "fangsong"
811
833
  ]);
812
- function Y(e) {
834
+ function Pe(e) {
813
835
  let t = e.trim();
814
- return t.includes(",") ? !0 : je.has(t.toLowerCase());
836
+ return t.includes(",") ? !0 : Ne.has(t.toLowerCase());
815
837
  }
816
838
  function X(e) {
817
839
  return e === void 0 || e.trim() === "" ? "<style>" : `<style nonce="${U(e)}">`;
818
840
  }
819
- function Me(e, t, n) {
820
- let r = Ae(e), i = r ? e.trim() : e.replace(/[<>{};'"]/g, ""), a = r || Y(e) ? [] : [`@import url('https://fonts.googleapis.com/css2?family=${encodeURIComponent(i)}:wght@400;500;600;700&amp;display=swap');`], o = `
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 = `
821
843
  /* Derived from --bg and --fg (overridable via --line, --accent, etc.) */
822
844
  --_text: var(--fg);
823
845
  --_text-sec: var(--muted, color-mix(in srgb, var(--fg) ${J.textSec}%, var(--bg)));
@@ -834,27 +856,27 @@ function Me(e, t, n) {
834
856
  return [
835
857
  X(n),
836
858
  ...a.length > 0 ? [` ${a.join("\n ")}`] : [],
837
- ...t ? [` ${Te}`] : [],
859
+ ...t ? [` ${Oe}`] : [],
838
860
  ` text { font-family: ${r ? i : `'${i}'`}, system-ui, sans-serif; }`,
839
- ...t ? [` .mono { font-family: '${we}', 'SF Mono', 'Fira Code', ui-monospace, monospace; }`] : [],
861
+ ...t ? [` .mono { font-family: '${De}', 'SF Mono', 'Fira Code', ui-monospace, monospace; }`] : [],
840
862
  ` svg {${o}`,
841
863
  " }",
842
864
  "</style>"
843
865
  ].join("\n");
844
866
  }
845
- function Ne(e, t, n) {
867
+ function Ie(e, t, n) {
846
868
  return (.299 * e + .587 * t + .114 * n) / 255;
847
869
  }
848
- function Pe(e, t) {
870
+ function Le(e, t) {
849
871
  if (!e) return t;
850
872
  let n = i(e);
851
- return n ? Ne(...n) > .5 ? "#000000" : "#FFFFFF" : t;
873
+ return n ? Ie(...n) > .5 ? "#000000" : "#FFFFFF" : t;
852
874
  }
853
875
  var Z = 0;
854
876
  function Q() {
855
877
  return Z += 1, `zm-title-${Z}`;
856
878
  }
857
- function Fe() {
879
+ function Re() {
858
880
  Z = 0;
859
881
  }
860
882
  function $(e, t) {
@@ -868,7 +890,7 @@ function $(e, t) {
868
890
  e.border ? `--border:${e.border}` : ""
869
891
  ].filter(Boolean).join(";")}${t ? "" : ";background:var(--bg)"}`;
870
892
  }
871
- function Ie(e, t, n, r, i, a, o, s = !0) {
893
+ function ze(e, t, n, r, i, a, o, s = !0) {
872
894
  let c = s ? ` style="${$(n, r)}"` : "", l = "", u = "";
873
895
  if (o) {
874
896
  if (i) {
@@ -880,9 +902,9 @@ function Ie(e, t, n, r, i, a, o, s = !0) {
880
902
  let e = Q();
881
903
  l += ` aria-labelledby="${e}"`, u = `\n <title id="${e}">${H(i)}</title>`;
882
904
  }
883
- return `<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 ${e} ${t}" width="${e}" height="${t}"${l}${c}>` + u;
905
+ return V`<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 ${e} ${t}" ` + V`width="${e}" height="${t}"${l}${c}>` + u;
884
906
  }
885
907
  //#endregion
886
- export { Ee as DEFAULTS, z as LINE_HEIGHT_RATIO, J as MIX, De as THEMES, Fe as __resetSvgTitleIdCounterForTests, e as applyClickStatement, T as applyInitConfig, Me as buildStyleBlock, ae as describeIgnored, ee as detectDiagramType, U as escapeAttr, H as escapeXml, w as extractInitConfig, f as formatCssColor, Oe as fromShikiTheme, N as getCharWidth, Pe as getReadableTextColor, oe as hasMeasuredAdvance, y as isDirection, re as isInitDirective, I as isMonospaceFont, M as isWideChar, B as measureMultilineText, R as measureTextWidth, u as mixHexColors, l as mixSrgb, V as normalizeBrTags, c as parseCssColor, i as parseHexColor, a as parseHexRgba, C as parseInitDirective, q as parseStyleProps, K as renderMultilineText, ge as renderMultilineTextWithBackground, Se as resolveNodeStyle, t as safeHref, Ce as sanitizeClassName, L as setMonospaceMetrics, xe as splitClassShorthand, v as splitStatements, _ as splitStatementsByLine, pe as stripFormattingTags, X as styleOpenTag, Ie as svgOpenTag, $ as themeStyleDeclarations, te as toDirection, ve as tryApplyClassAssignment, _e as tryApplyClassDef, ye as tryApplyCssClass, be as tryApplyStyleStatement, ne as withDirectionOverride };
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 };
887
909
 
888
910
  //# sourceMappingURL=index.js.map