@zombie-mermaid/core 2.2.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE +22 -0
- package/dist/index.cjs +29 -0
- package/dist/index.cjs.map +1 -0
- package/dist/index.d.cts +1236 -0
- package/dist/index.d.ts +1236 -0
- package/dist/index.js +888 -0
- package/dist/index.js.map +1 -0
- package/package.json +35 -0
- package/src/__tests__/click-directive.test.ts +63 -0
- package/src/__tests__/color-utils.test.ts +186 -0
- package/src/__tests__/diagram-type.test.ts +28 -0
- package/src/__tests__/text-metrics.test.ts +486 -0
- package/src/__tests__/theme-palette-contrast.test.ts +84 -0
- package/src/__tests__/theme.test.ts +162 -0
- package/src/click-directive.ts +106 -0
- package/src/color-utils.ts +205 -0
- package/src/diagram-type.ts +35 -0
- package/src/direction-override.ts +46 -0
- package/src/direction.ts +56 -0
- package/src/generated/mono-font-subset.ts +32 -0
- package/src/index.ts +34 -0
- package/src/init-directive.ts +248 -0
- package/src/multiline-utils.ts +275 -0
- package/src/statements.ts +197 -0
- package/src/style-directives.ts +214 -0
- package/src/text-metrics.ts +520 -0
- package/src/theme.ts +712 -0
- package/src/types.ts +670 -0
package/dist/index.js
ADDED
|
@@ -0,0 +1,888 @@
|
|
|
1
|
+
//#region packages/core/src/click-directive.ts
|
|
2
|
+
function e(e, t) {
|
|
3
|
+
let n = e.match(/^click\s+([\w\p{L}-]+)\s+(.*)$/iu);
|
|
4
|
+
if (!n) return;
|
|
5
|
+
let r = n[1], i = n[2].trim(), a = { ...t.get(r) }, o = i.match(/^(?:call|callback)\s+(.+?)\s*$/i);
|
|
6
|
+
if (o) {
|
|
7
|
+
let e = o[1].match(/^(.*?\))\s+"([^"]*)"\s*$/);
|
|
8
|
+
e ? (a.callback = e[1].trim(), a.tooltip = e[2]) : a.callback = o[1].trim(), t.set(r, a);
|
|
9
|
+
return;
|
|
10
|
+
}
|
|
11
|
+
i = i.replace(/^href\s+/i, "");
|
|
12
|
+
let s = [...i.matchAll(/"([^"]*)"/g)].map((e) => e[1]);
|
|
13
|
+
s.length > 0 && (a.href = s[0]), s.length > 1 && (a.tooltip = s[1]);
|
|
14
|
+
let c = i.match(/(_blank|_self|_parent|_top)\s*$/i);
|
|
15
|
+
c && (a.target = c[1].toLowerCase()), (a.href !== void 0 || a.tooltip !== void 0) && t.set(r, a);
|
|
16
|
+
}
|
|
17
|
+
function t(e) {
|
|
18
|
+
if (!e || /[\x00-\x1F\x7F]/.test(e)) return;
|
|
19
|
+
let t = e.trim();
|
|
20
|
+
if (/^[./#?]/.test(t)) return t;
|
|
21
|
+
let n = t.match(/^([a-zA-Z][a-zA-Z0-9+.-]*):/)?.[1];
|
|
22
|
+
return n === void 0 || /^(https?|mailto)$/i.test(n) ? t : void 0;
|
|
23
|
+
}
|
|
24
|
+
//#endregion
|
|
25
|
+
//#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);
|
|
29
|
+
return t ? [
|
|
30
|
+
t.r,
|
|
31
|
+
t.g,
|
|
32
|
+
t.b
|
|
33
|
+
] : null;
|
|
34
|
+
}
|
|
35
|
+
function a(e) {
|
|
36
|
+
let t = n.exec(e.trim());
|
|
37
|
+
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
|
|
46
|
+
};
|
|
47
|
+
}
|
|
48
|
+
function o(e) {
|
|
49
|
+
return e.endsWith("%") ? Number(e.slice(0, -1)) / 100 * 255 : Number(e);
|
|
50
|
+
}
|
|
51
|
+
function s(e) {
|
|
52
|
+
return e === void 0 ? 1 : e.endsWith("%") ? Number(e.slice(0, -1)) / 100 : Number(e);
|
|
53
|
+
}
|
|
54
|
+
function c(e) {
|
|
55
|
+
let t = e.trim();
|
|
56
|
+
if (t.toLowerCase() === "transparent") return {
|
|
57
|
+
r: 0,
|
|
58
|
+
g: 0,
|
|
59
|
+
b: 0,
|
|
60
|
+
a: 0
|
|
61
|
+
};
|
|
62
|
+
let n = a(t);
|
|
63
|
+
if (n) return n;
|
|
64
|
+
let i = r.exec(t);
|
|
65
|
+
if (i) {
|
|
66
|
+
let [, e, t, n, r] = i;
|
|
67
|
+
if (e === void 0 || t === void 0 || n === void 0) return null;
|
|
68
|
+
let a = {
|
|
69
|
+
r: o(e),
|
|
70
|
+
g: o(t),
|
|
71
|
+
b: o(n),
|
|
72
|
+
a: s(r)
|
|
73
|
+
};
|
|
74
|
+
return [
|
|
75
|
+
a.r,
|
|
76
|
+
a.g,
|
|
77
|
+
a.b,
|
|
78
|
+
a.a
|
|
79
|
+
].some((e) => Number.isNaN(e)) ? null : a;
|
|
80
|
+
}
|
|
81
|
+
return null;
|
|
82
|
+
}
|
|
83
|
+
function l(e, t, n, r) {
|
|
84
|
+
let i, a;
|
|
85
|
+
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
|
+
let o = i + a;
|
|
87
|
+
if (o === 0) return null;
|
|
88
|
+
let s = o < 100 ? o / 100 : 1;
|
|
89
|
+
i /= o, a /= o;
|
|
90
|
+
let c = e.a * i + t.a * a, l = (n, r) => c === 0 ? 0 : (n * e.a * i + r * t.a * a) / c;
|
|
91
|
+
return {
|
|
92
|
+
r: l(e.r, t.r),
|
|
93
|
+
g: l(e.g, t.g),
|
|
94
|
+
b: l(e.b, t.b),
|
|
95
|
+
a: c * s
|
|
96
|
+
};
|
|
97
|
+
}
|
|
98
|
+
function u(e, t, n) {
|
|
99
|
+
let r = c(e), i = c(t);
|
|
100
|
+
if (!r || !i) return e;
|
|
101
|
+
let a = l(r, i, n, 100 - n);
|
|
102
|
+
return a ? f(a) : e;
|
|
103
|
+
}
|
|
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));
|
|
107
|
+
return i >= 1 ? "#" + [
|
|
108
|
+
t,
|
|
109
|
+
n,
|
|
110
|
+
r
|
|
111
|
+
].map((e) => e.toString(16).padStart(2, "0")).join("") : `rgba(${t}, ${n}, ${r}, ${Number(i.toFixed(3))})`;
|
|
112
|
+
}
|
|
113
|
+
//#endregion
|
|
114
|
+
//#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 h(e) {
|
|
117
|
+
let t = null;
|
|
118
|
+
for (let n = 0; n < e.length; n++) {
|
|
119
|
+
let r = e[n];
|
|
120
|
+
if (t !== null) {
|
|
121
|
+
r === t && (t = null);
|
|
122
|
+
continue;
|
|
123
|
+
}
|
|
124
|
+
if (r === "\"" || r === "'") {
|
|
125
|
+
t = r;
|
|
126
|
+
continue;
|
|
127
|
+
}
|
|
128
|
+
if (m.has(r)) {
|
|
129
|
+
let t = p.exec(e.slice(n));
|
|
130
|
+
if (t) {
|
|
131
|
+
n += t[0].length - 1;
|
|
132
|
+
continue;
|
|
133
|
+
}
|
|
134
|
+
}
|
|
135
|
+
if (r === "%" && e[n + 1] === "%") return n;
|
|
136
|
+
}
|
|
137
|
+
return -1;
|
|
138
|
+
}
|
|
139
|
+
function g(e) {
|
|
140
|
+
let t = [], n = "", r = null;
|
|
141
|
+
for (let i = 0; i < e.length; i++) {
|
|
142
|
+
let a = e[i];
|
|
143
|
+
if (r !== null) {
|
|
144
|
+
n += a, a === r && (r = null);
|
|
145
|
+
continue;
|
|
146
|
+
}
|
|
147
|
+
if (a === "\"" || a === "'") {
|
|
148
|
+
r = a, n += a;
|
|
149
|
+
continue;
|
|
150
|
+
}
|
|
151
|
+
if (m.has(a)) {
|
|
152
|
+
let t = p.exec(e.slice(i));
|
|
153
|
+
if (t) {
|
|
154
|
+
n += t[0], i += t[0].length - 1;
|
|
155
|
+
continue;
|
|
156
|
+
}
|
|
157
|
+
}
|
|
158
|
+
if (a === ";") {
|
|
159
|
+
t.push(n), n = "";
|
|
160
|
+
continue;
|
|
161
|
+
}
|
|
162
|
+
n += a;
|
|
163
|
+
}
|
|
164
|
+
return t.push(n), t;
|
|
165
|
+
}
|
|
166
|
+
function _(e) {
|
|
167
|
+
let t = [], n = e.split("\n");
|
|
168
|
+
for (let e = 0; e < n.length; e++) {
|
|
169
|
+
let r = n[e].trim(), i = e + 1, a = h(r);
|
|
170
|
+
if (a !== -1 && (r = r.slice(0, a).trim()), r.length === 0) continue;
|
|
171
|
+
let o = [];
|
|
172
|
+
for (let e of g(r)) {
|
|
173
|
+
let t = e.trim();
|
|
174
|
+
t.length !== 0 && o.push({
|
|
175
|
+
text: t,
|
|
176
|
+
line: i
|
|
177
|
+
});
|
|
178
|
+
}
|
|
179
|
+
o.length > 0 && t.push(o);
|
|
180
|
+
}
|
|
181
|
+
return t;
|
|
182
|
+
}
|
|
183
|
+
function v(e) {
|
|
184
|
+
return _(e).flat();
|
|
185
|
+
}
|
|
186
|
+
//#endregion
|
|
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";
|
|
191
|
+
}
|
|
192
|
+
//#endregion
|
|
193
|
+
//#region packages/core/src/direction.ts
|
|
194
|
+
function y(e) {
|
|
195
|
+
return e === "TD" || e === "TB" || e === "LR" || e === "BT" || e === "RL";
|
|
196
|
+
}
|
|
197
|
+
function te(e) {
|
|
198
|
+
let t = e?.toUpperCase();
|
|
199
|
+
if (t === void 0 || !y(t)) throw Error(`Invalid direction: "${e}"`);
|
|
200
|
+
return t;
|
|
201
|
+
}
|
|
202
|
+
//#endregion
|
|
203
|
+
//#region packages/core/src/direction-override.ts
|
|
204
|
+
function ne(e, t) {
|
|
205
|
+
return t === void 0 || !y(t) ? e : {
|
|
206
|
+
...e,
|
|
207
|
+
direction: t
|
|
208
|
+
};
|
|
209
|
+
}
|
|
210
|
+
//#endregion
|
|
211
|
+
//#region packages/core/src/init-directive.ts
|
|
212
|
+
var b = /* @__PURE__ */ new Set([
|
|
213
|
+
"linear",
|
|
214
|
+
"basis",
|
|
215
|
+
"natural",
|
|
216
|
+
"step",
|
|
217
|
+
"stepBefore",
|
|
218
|
+
"stepAfter"
|
|
219
|
+
]), x = {
|
|
220
|
+
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
|
+
securitylevel: "this renderer emits static SVG and never executes diagram-supplied script, so there is no sandbox to configure",
|
|
222
|
+
defaultrenderer: "ELK is the only layout engine; dagre/elk selection has no effect",
|
|
223
|
+
fontfamily: "use the `font` render option instead",
|
|
224
|
+
htmllabels: "labels are always rendered as SVG text; there is no HTML label mode",
|
|
225
|
+
maxtextsize: "no text-size limit is enforced",
|
|
226
|
+
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);
|
|
230
|
+
}
|
|
231
|
+
function ie(e) {
|
|
232
|
+
let t = "", n = null;
|
|
233
|
+
for (let r = 0; r < e.length; r++) {
|
|
234
|
+
let i = e[r];
|
|
235
|
+
if (n !== null) {
|
|
236
|
+
if (i === "\\" && r + 1 < e.length) {
|
|
237
|
+
let n = e[r + 1];
|
|
238
|
+
t += n === "'" ? "'" : `\\${n}`, r++;
|
|
239
|
+
} else i === n ? (n = null, t += "\"") : t += i === "\"" ? "\\\"" : i;
|
|
240
|
+
continue;
|
|
241
|
+
}
|
|
242
|
+
if (i === "\"" || i === "'") {
|
|
243
|
+
n = i, t += "\"";
|
|
244
|
+
continue;
|
|
245
|
+
}
|
|
246
|
+
if (/[A-Za-z_$]/.test(i)) {
|
|
247
|
+
let n = r;
|
|
248
|
+
for (; n < e.length && /[\w$-]/.test(e[n]);) n++;
|
|
249
|
+
let i = e.slice(r, n), a = n;
|
|
250
|
+
for (; a < e.length && /\s/.test(e[a]);) a++;
|
|
251
|
+
if (e[a] === ":") {
|
|
252
|
+
t += `"${i}"`, r = n - 1;
|
|
253
|
+
continue;
|
|
254
|
+
}
|
|
255
|
+
t += /^(true|false|null)$/i.test(i) ? i.toLowerCase() : `"${i}"`, r = n - 1;
|
|
256
|
+
continue;
|
|
257
|
+
}
|
|
258
|
+
t += i;
|
|
259
|
+
}
|
|
260
|
+
return t;
|
|
261
|
+
}
|
|
262
|
+
function C(e) {
|
|
263
|
+
let t = e.match(S);
|
|
264
|
+
if (!t) return;
|
|
265
|
+
let n;
|
|
266
|
+
try {
|
|
267
|
+
n = JSON.parse(ie(t[1]));
|
|
268
|
+
} catch {
|
|
269
|
+
return;
|
|
270
|
+
}
|
|
271
|
+
if (typeof n != "object" || !n) return;
|
|
272
|
+
let r = { ignored: [] }, i = { ...n };
|
|
273
|
+
for (let [e, t] of Object.entries(i)) {
|
|
274
|
+
let n = e.toLowerCase();
|
|
275
|
+
if (n === "theme" && typeof t == "string") {
|
|
276
|
+
r.theme = t, r.ignored.push(e);
|
|
277
|
+
continue;
|
|
278
|
+
}
|
|
279
|
+
if (n === "flowchart" && typeof t == "object" && t) {
|
|
280
|
+
let e = { ...t };
|
|
281
|
+
for (let [t, n] of Object.entries(e)) {
|
|
282
|
+
if (t.toLowerCase() === "curve" && typeof n == "string") {
|
|
283
|
+
b.has(n) && (r.curve = n);
|
|
284
|
+
continue;
|
|
285
|
+
}
|
|
286
|
+
t.toLowerCase() in x && r.ignored.push(t);
|
|
287
|
+
}
|
|
288
|
+
continue;
|
|
289
|
+
}
|
|
290
|
+
n in x && r.ignored.push(e);
|
|
291
|
+
}
|
|
292
|
+
return r;
|
|
293
|
+
}
|
|
294
|
+
function w(e) {
|
|
295
|
+
let t = { ignored: [] };
|
|
296
|
+
for (let n of e) {
|
|
297
|
+
let e = C(n);
|
|
298
|
+
e && (e.theme !== void 0 && (t.theme = e.theme), e.curve !== void 0 && (t.curve = e.curve), t.ignored.push(...e.ignored));
|
|
299
|
+
}
|
|
300
|
+
return t;
|
|
301
|
+
}
|
|
302
|
+
function T(e, t) {
|
|
303
|
+
return t.curve === void 0 || e.curve !== void 0 ? e : {
|
|
304
|
+
...e,
|
|
305
|
+
curve: t.curve
|
|
306
|
+
};
|
|
307
|
+
}
|
|
308
|
+
function ae(e) {
|
|
309
|
+
return [...new Set(e.ignored)].map((e) => `${e}: ${x[e.toLowerCase()] ?? "not supported"}`);
|
|
310
|
+
}
|
|
311
|
+
//#endregion
|
|
312
|
+
//#region packages/core/src/text-metrics.ts
|
|
313
|
+
var E = {
|
|
314
|
+
" ": .521,
|
|
315
|
+
"!": .533,
|
|
316
|
+
"\"": .863,
|
|
317
|
+
"#": 1.173,
|
|
318
|
+
$: 1.188,
|
|
319
|
+
"%": 1.818,
|
|
320
|
+
"&": 1.193,
|
|
321
|
+
"'": .555,
|
|
322
|
+
"(": .675,
|
|
323
|
+
")": .675,
|
|
324
|
+
"*": .928,
|
|
325
|
+
"+": 1.225,
|
|
326
|
+
",": .534,
|
|
327
|
+
"-": .852,
|
|
328
|
+
".": .534,
|
|
329
|
+
"/": .667,
|
|
330
|
+
0: 1.168,
|
|
331
|
+
1: .753,
|
|
332
|
+
2: 1.129,
|
|
333
|
+
3: 1.144,
|
|
334
|
+
4: 1.196,
|
|
335
|
+
5: 1.099,
|
|
336
|
+
6: 1.148,
|
|
337
|
+
7: 1.048,
|
|
338
|
+
8: 1.146,
|
|
339
|
+
9: 1.148,
|
|
340
|
+
":": .534,
|
|
341
|
+
";": .559,
|
|
342
|
+
"<": 1.225,
|
|
343
|
+
"=": 1.225,
|
|
344
|
+
">": 1.225,
|
|
345
|
+
"?": .947,
|
|
346
|
+
"@": 1.789,
|
|
347
|
+
A: 1.278,
|
|
348
|
+
B: 1.212,
|
|
349
|
+
C: 1.353,
|
|
350
|
+
D: 1.336,
|
|
351
|
+
E: 1.113,
|
|
352
|
+
F: 1.093,
|
|
353
|
+
G: 1.382,
|
|
354
|
+
H: 1.376,
|
|
355
|
+
I: .497,
|
|
356
|
+
J: 1.057,
|
|
357
|
+
K: 1.244,
|
|
358
|
+
L: 1.047,
|
|
359
|
+
M: 1.673,
|
|
360
|
+
N: 1.395,
|
|
361
|
+
O: 1.416,
|
|
362
|
+
P: 1.183,
|
|
363
|
+
Q: 1.416,
|
|
364
|
+
R: 1.192,
|
|
365
|
+
S: 1.188,
|
|
366
|
+
T: 1.195,
|
|
367
|
+
U: 1.378,
|
|
368
|
+
V: 1.278,
|
|
369
|
+
W: 1.825,
|
|
370
|
+
X: 1.263,
|
|
371
|
+
Y: 1.257,
|
|
372
|
+
Z: 1.165,
|
|
373
|
+
"[": .675,
|
|
374
|
+
"\\": .667,
|
|
375
|
+
"]": .675,
|
|
376
|
+
"^": .873,
|
|
377
|
+
_: .845,
|
|
378
|
+
"`": .598,
|
|
379
|
+
a: 1.04,
|
|
380
|
+
b: 1.134,
|
|
381
|
+
c: 1.058,
|
|
382
|
+
d: 1.134,
|
|
383
|
+
e: 1.08,
|
|
384
|
+
f: .685,
|
|
385
|
+
g: 1.136,
|
|
386
|
+
h: 1.095,
|
|
387
|
+
i: .448,
|
|
388
|
+
j: .448,
|
|
389
|
+
k: 1.016,
|
|
390
|
+
l: .448,
|
|
391
|
+
m: 1.622,
|
|
392
|
+
n: 1.094,
|
|
393
|
+
o: 1.11,
|
|
394
|
+
p: 1.134,
|
|
395
|
+
q: 1.134,
|
|
396
|
+
r: .697,
|
|
397
|
+
s: .977,
|
|
398
|
+
t: .606,
|
|
399
|
+
u: 1.095,
|
|
400
|
+
v: 1.041,
|
|
401
|
+
w: 1.515,
|
|
402
|
+
x: 1.011,
|
|
403
|
+
y: 1.041,
|
|
404
|
+
z: 1.023,
|
|
405
|
+
"{": .789,
|
|
406
|
+
"|": .616,
|
|
407
|
+
"}": .789,
|
|
408
|
+
"~": 1.225
|
|
409
|
+
};
|
|
410
|
+
function oe(e) {
|
|
411
|
+
return Object.hasOwn(E, e);
|
|
412
|
+
}
|
|
413
|
+
var se = /* @__PURE__ */ new Set([
|
|
414
|
+
"i",
|
|
415
|
+
"l",
|
|
416
|
+
"t",
|
|
417
|
+
"f",
|
|
418
|
+
"j",
|
|
419
|
+
"I",
|
|
420
|
+
"1",
|
|
421
|
+
"!",
|
|
422
|
+
"|",
|
|
423
|
+
".",
|
|
424
|
+
",",
|
|
425
|
+
":",
|
|
426
|
+
";",
|
|
427
|
+
"'"
|
|
428
|
+
]), ce = /* @__PURE__ */ new Set([
|
|
429
|
+
"W",
|
|
430
|
+
"M",
|
|
431
|
+
"w",
|
|
432
|
+
"m",
|
|
433
|
+
"@",
|
|
434
|
+
"%"
|
|
435
|
+
]), le = /* @__PURE__ */ new Set(["W", "M"]), ue = /* @__PURE__ */ new Set([
|
|
436
|
+
"(",
|
|
437
|
+
")",
|
|
438
|
+
"[",
|
|
439
|
+
"]",
|
|
440
|
+
"{",
|
|
441
|
+
"}",
|
|
442
|
+
"/",
|
|
443
|
+
"\\",
|
|
444
|
+
"-",
|
|
445
|
+
"\"",
|
|
446
|
+
"`"
|
|
447
|
+
]);
|
|
448
|
+
function de(e) {
|
|
449
|
+
return e >= 768 && e <= 879 || e >= 6832 && e <= 6911 || e >= 7616 && e <= 7679 || e >= 8400 && e <= 8447 || e >= 65056 && e <= 65071;
|
|
450
|
+
}
|
|
451
|
+
function D(e) {
|
|
452
|
+
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
|
+
}
|
|
454
|
+
var fe = /\p{Emoji_Presentation}/u, O = /\p{Extended_Pictographic}/u;
|
|
455
|
+
function k(e) {
|
|
456
|
+
return e >= 9632 && e <= 9727;
|
|
457
|
+
}
|
|
458
|
+
function A(e) {
|
|
459
|
+
return e >= 8596 && e <= 8601 || e === 8617 || e === 8618;
|
|
460
|
+
}
|
|
461
|
+
function j(e) {
|
|
462
|
+
if (fe.test(e)) return !0;
|
|
463
|
+
let t = e.codePointAt(0);
|
|
464
|
+
return t !== void 0 && k(t) || t !== void 0 && A(t) ? !1 : O.test(e);
|
|
465
|
+
}
|
|
466
|
+
function M(e) {
|
|
467
|
+
let t = e.codePointAt(0);
|
|
468
|
+
return t === void 0 ? !1 : D(t) || j(e);
|
|
469
|
+
}
|
|
470
|
+
function N(e) {
|
|
471
|
+
let t = e.codePointAt(0);
|
|
472
|
+
if (t === void 0) return 0;
|
|
473
|
+
if (Object.hasOwn(E, e)) {
|
|
474
|
+
let t = E[e];
|
|
475
|
+
/* v8 ignore else */
|
|
476
|
+
if (t !== void 0) return t;
|
|
477
|
+
}
|
|
478
|
+
if (de(t)) return 0;
|
|
479
|
+
if (D(t) || j(e)) return 2;
|
|
480
|
+
let n = e.normalize("NFD")[0];
|
|
481
|
+
if (n !== void 0 && n !== e) {
|
|
482
|
+
let e = E[n];
|
|
483
|
+
if (e !== void 0) return e;
|
|
484
|
+
}
|
|
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;
|
|
486
|
+
}
|
|
487
|
+
var P = .6, F = !1;
|
|
488
|
+
function I(e) {
|
|
489
|
+
return /mono|consol|menlo|courier|\bcode\b/i.test(e);
|
|
490
|
+
}
|
|
491
|
+
function L(e) {
|
|
492
|
+
F = e;
|
|
493
|
+
}
|
|
494
|
+
function R(e, t, n) {
|
|
495
|
+
let r = t * .15;
|
|
496
|
+
if (F) {
|
|
497
|
+
let n = 0;
|
|
498
|
+
for (let t of e) n += 1;
|
|
499
|
+
return n * t * P + r;
|
|
500
|
+
}
|
|
501
|
+
let i = n >= 600 ? .6 : n >= 500 ? .57 : .54, a = 0;
|
|
502
|
+
for (let t of e) a += N(t);
|
|
503
|
+
return a * t * i + r;
|
|
504
|
+
}
|
|
505
|
+
var z = 1.3;
|
|
506
|
+
function B(e, t, n) {
|
|
507
|
+
let r = e.split("\n"), i = t * z, a = 0;
|
|
508
|
+
for (let e of r) {
|
|
509
|
+
let r = R(e.replace(/<\/?(?:b|strong|i|em|u|s|del)\s*>/gi, ""), t, n);
|
|
510
|
+
r > a && (a = r);
|
|
511
|
+
}
|
|
512
|
+
return {
|
|
513
|
+
width: a,
|
|
514
|
+
height: r.length * i,
|
|
515
|
+
lines: r,
|
|
516
|
+
lineHeight: i
|
|
517
|
+
};
|
|
518
|
+
}
|
|
519
|
+
//#endregion
|
|
520
|
+
//#region packages/core/src/multiline-utils.ts
|
|
521
|
+
function V(e) {
|
|
522
|
+
let t = e.startsWith("\"") && e.endsWith("\"") ? e.slice(1, -1) : e;
|
|
523
|
+
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
|
+
}
|
|
525
|
+
function pe(e) {
|
|
526
|
+
return e.replace(/<\/?(?:b|strong|i|em|u|s|del)\s*>/gi, "");
|
|
527
|
+
}
|
|
528
|
+
function H(e) {
|
|
529
|
+
return e.replace(/&/g, "&").replace(/</g, "<").replace(/>/g, ">").replace(/"/g, """).replace(/'/g, "'");
|
|
530
|
+
}
|
|
531
|
+
function U(e) {
|
|
532
|
+
return e.replace(/&/g, "&").replace(/"/g, """).replace(/</g, "<").replace(/>/g, ">");
|
|
533
|
+
}
|
|
534
|
+
var W = /<(\/)?(?:(b|strong)|(i|em)|(u)|(s|del))\s*>/gi;
|
|
535
|
+
function me(e) {
|
|
536
|
+
let t = [], n = !1, r = !1, i = !1, a = !1, o = 0;
|
|
537
|
+
W.lastIndex = 0;
|
|
538
|
+
let s;
|
|
539
|
+
for (; (s = W.exec(e)) !== null;) {
|
|
540
|
+
s.index > o && t.push({
|
|
541
|
+
text: e.slice(o, s.index),
|
|
542
|
+
bold: n,
|
|
543
|
+
italic: r,
|
|
544
|
+
underline: i,
|
|
545
|
+
strikethrough: a
|
|
546
|
+
}), o = s.index + s[0].length;
|
|
547
|
+
let c = !!s[1];
|
|
548
|
+
s[2] ? n = !c : s[3] ? r = !c : s[4] ? i = !c : s[5] && (a = !c);
|
|
549
|
+
}
|
|
550
|
+
return o < e.length && t.push({
|
|
551
|
+
text: e.slice(o),
|
|
552
|
+
bold: n,
|
|
553
|
+
italic: r,
|
|
554
|
+
underline: i,
|
|
555
|
+
strikethrough: a
|
|
556
|
+
}), t;
|
|
557
|
+
}
|
|
558
|
+
var he = /<\/?(?:b|strong|i|em|u|s|del)\s*>/i;
|
|
559
|
+
function G(e) {
|
|
560
|
+
if (!he.test(e)) return H(e);
|
|
561
|
+
let t = me(e);
|
|
562
|
+
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
|
+
let t = H(e.text);
|
|
564
|
+
if (!e.bold && !e.italic && !e.underline && !e.strikethrough) return t;
|
|
565
|
+
let n = [];
|
|
566
|
+
e.bold && n.push("font-weight=\"bold\""), e.italic && n.push("font-style=\"italic\"");
|
|
567
|
+
let r = [];
|
|
568
|
+
return e.underline && r.push("underline"), e.strikethrough && r.push("line-through"), r.length && n.push(`text-decoration="${r.join(" ")}"`), `<tspan ${n.join(" ")}>${t}</tspan>`;
|
|
569
|
+
}).join("");
|
|
570
|
+
}
|
|
571
|
+
function K(e, t, n, r, i, a = .35) {
|
|
572
|
+
let o = e.split("\n");
|
|
573
|
+
if (o.length === 1) return `<text x="${t}" y="${n}" ${i} dy="${r * a}">${G(e)}</text>`;
|
|
574
|
+
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>`;
|
|
576
|
+
}
|
|
577
|
+
function ge(e, t, n, r, i, a, o, s, c) {
|
|
578
|
+
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)}`;
|
|
580
|
+
}
|
|
581
|
+
//#endregion
|
|
582
|
+
//#region packages/core/src/style-directives.ts
|
|
583
|
+
function q(e) {
|
|
584
|
+
let t = e.replace(/;\s*$/, ""), n = {};
|
|
585
|
+
for (let e of t.split(",")) {
|
|
586
|
+
let t = e.indexOf(":");
|
|
587
|
+
if (t > 0) {
|
|
588
|
+
let r = e.slice(0, t).trim(), i = e.slice(t + 1).trim();
|
|
589
|
+
r && i && (n[r] = i);
|
|
590
|
+
}
|
|
591
|
+
}
|
|
592
|
+
return n;
|
|
593
|
+
}
|
|
594
|
+
function _e(e, t) {
|
|
595
|
+
let n = e.match(/^classDef\s+([\w,-]+)\s+(.+)$/);
|
|
596
|
+
if (!n) return !1;
|
|
597
|
+
let r = q(n[2]);
|
|
598
|
+
for (let e of n[1].split(",")) {
|
|
599
|
+
let n = e.trim();
|
|
600
|
+
n && t.classDefs.set(n, r);
|
|
601
|
+
}
|
|
602
|
+
return !0;
|
|
603
|
+
}
|
|
604
|
+
function ve(e, t) {
|
|
605
|
+
let n = e.match(/^class\s+([\w,-]+)\s+([\w-]+)\s*;?\s*$/);
|
|
606
|
+
if (!n) return !1;
|
|
607
|
+
let r = n[2];
|
|
608
|
+
for (let e of n[1].split(",")) t.classAssignments.set(e.trim(), r);
|
|
609
|
+
return !0;
|
|
610
|
+
}
|
|
611
|
+
function ye(e, t) {
|
|
612
|
+
let n = e.match(/^cssClass\s+"([^"]*)"\s+([\w-]+)\s*;?\s*$/);
|
|
613
|
+
if (!n) return !1;
|
|
614
|
+
let r = n[2];
|
|
615
|
+
for (let e of n[1].split(",")) {
|
|
616
|
+
let n = e.trim();
|
|
617
|
+
n && t.classAssignments.set(n, r);
|
|
618
|
+
}
|
|
619
|
+
return !0;
|
|
620
|
+
}
|
|
621
|
+
function be(e, t) {
|
|
622
|
+
let n = e.match(/^style\s+([\w,-]+)\s+(.+)$/);
|
|
623
|
+
if (!n) return !1;
|
|
624
|
+
let r = q(n[2]);
|
|
625
|
+
for (let e of n[1].split(",").map((e) => e.trim())) t.nodeStyles.set(e, {
|
|
626
|
+
...t.nodeStyles.get(e),
|
|
627
|
+
...r
|
|
628
|
+
});
|
|
629
|
+
return !0;
|
|
630
|
+
}
|
|
631
|
+
function xe(e) {
|
|
632
|
+
let t = e.match(/^(.+?):::([\w][\w-]*)$/);
|
|
633
|
+
return t ? {
|
|
634
|
+
id: t[1],
|
|
635
|
+
className: t[2]
|
|
636
|
+
} : { id: e };
|
|
637
|
+
}
|
|
638
|
+
function Se(e, t) {
|
|
639
|
+
let n, r = t.classDefs.get("default");
|
|
640
|
+
r && (n = { ...r });
|
|
641
|
+
let i = t.classAssignments.get(e);
|
|
642
|
+
if (i) {
|
|
643
|
+
let e = t.classDefs.get(i);
|
|
644
|
+
e && (n = n ? {
|
|
645
|
+
...n,
|
|
646
|
+
...e
|
|
647
|
+
} : { ...e });
|
|
648
|
+
}
|
|
649
|
+
let a = t.nodeStyles.get(e);
|
|
650
|
+
return a && (n = n ? {
|
|
651
|
+
...n,
|
|
652
|
+
...a
|
|
653
|
+
} : { ...a }), n;
|
|
654
|
+
}
|
|
655
|
+
function Ce(e) {
|
|
656
|
+
if (e) return /^-?[a-zA-Z_][a-zA-Z0-9_-]*$/.test(e) ? e : void 0;
|
|
657
|
+
}
|
|
658
|
+
//#endregion
|
|
659
|
+
//#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 = {
|
|
661
|
+
bg: "#FFFFFF",
|
|
662
|
+
fg: "#27272A"
|
|
663
|
+
}, J = {
|
|
664
|
+
text: 100,
|
|
665
|
+
textSec: 60,
|
|
666
|
+
textMuted: 40,
|
|
667
|
+
textFaint: 25,
|
|
668
|
+
line: 50,
|
|
669
|
+
arrow: 85,
|
|
670
|
+
nodeFill: 3,
|
|
671
|
+
nodeStroke: 20,
|
|
672
|
+
groupHeader: 5,
|
|
673
|
+
innerStroke: 12,
|
|
674
|
+
keyBadge: 10
|
|
675
|
+
}, De = {
|
|
676
|
+
"zinc-light": {
|
|
677
|
+
bg: "#FFFFFF",
|
|
678
|
+
fg: "#27272A"
|
|
679
|
+
},
|
|
680
|
+
"zinc-dark": {
|
|
681
|
+
bg: "#18181B",
|
|
682
|
+
fg: "#FAFAFA"
|
|
683
|
+
},
|
|
684
|
+
"tokyo-night": {
|
|
685
|
+
bg: "#1a1b26",
|
|
686
|
+
fg: "#a9b1d6",
|
|
687
|
+
line: "#3d59a1",
|
|
688
|
+
accent: "#7aa2f7",
|
|
689
|
+
muted: "#565f89"
|
|
690
|
+
},
|
|
691
|
+
"tokyo-night-storm": {
|
|
692
|
+
bg: "#24283b",
|
|
693
|
+
fg: "#a9b1d6",
|
|
694
|
+
line: "#3d59a1",
|
|
695
|
+
accent: "#7aa2f7",
|
|
696
|
+
muted: "#565f89"
|
|
697
|
+
},
|
|
698
|
+
"tokyo-night-light": {
|
|
699
|
+
bg: "#d5d6db",
|
|
700
|
+
fg: "#343b58",
|
|
701
|
+
line: "#34548a",
|
|
702
|
+
accent: "#34548a",
|
|
703
|
+
muted: "#9699a3"
|
|
704
|
+
},
|
|
705
|
+
"catppuccin-mocha": {
|
|
706
|
+
bg: "#1e1e2e",
|
|
707
|
+
fg: "#cdd6f4",
|
|
708
|
+
line: "#585b70",
|
|
709
|
+
accent: "#cba6f7",
|
|
710
|
+
muted: "#6c7086"
|
|
711
|
+
},
|
|
712
|
+
"catppuccin-latte": {
|
|
713
|
+
bg: "#eff1f5",
|
|
714
|
+
fg: "#4c4f69",
|
|
715
|
+
line: "#9ca0b0",
|
|
716
|
+
accent: "#8839ef",
|
|
717
|
+
muted: "#9ca0b0"
|
|
718
|
+
},
|
|
719
|
+
nord: {
|
|
720
|
+
bg: "#2e3440",
|
|
721
|
+
fg: "#d8dee9",
|
|
722
|
+
line: "#4c566a",
|
|
723
|
+
accent: "#88c0d0",
|
|
724
|
+
muted: "#616e88"
|
|
725
|
+
},
|
|
726
|
+
"nord-light": {
|
|
727
|
+
bg: "#eceff4",
|
|
728
|
+
fg: "#2e3440",
|
|
729
|
+
line: "#aab1c0",
|
|
730
|
+
accent: "#5e81ac",
|
|
731
|
+
muted: "#7b88a1"
|
|
732
|
+
},
|
|
733
|
+
dracula: {
|
|
734
|
+
bg: "#282a36",
|
|
735
|
+
fg: "#f8f8f2",
|
|
736
|
+
line: "#6272a4",
|
|
737
|
+
accent: "#bd93f9",
|
|
738
|
+
muted: "#6272a4"
|
|
739
|
+
},
|
|
740
|
+
"github-light": {
|
|
741
|
+
bg: "#ffffff",
|
|
742
|
+
fg: "#1f2328",
|
|
743
|
+
line: "#d1d9e0",
|
|
744
|
+
accent: "#0969da",
|
|
745
|
+
muted: "#59636e"
|
|
746
|
+
},
|
|
747
|
+
"github-dark": {
|
|
748
|
+
bg: "#0d1117",
|
|
749
|
+
fg: "#e6edf3",
|
|
750
|
+
line: "#3d444d",
|
|
751
|
+
accent: "#4493f8",
|
|
752
|
+
muted: "#9198a1"
|
|
753
|
+
},
|
|
754
|
+
"solarized-light": {
|
|
755
|
+
bg: "#fdf6e3",
|
|
756
|
+
fg: "#657b83",
|
|
757
|
+
line: "#93a1a1",
|
|
758
|
+
accent: "#268bd2",
|
|
759
|
+
muted: "#93a1a1"
|
|
760
|
+
},
|
|
761
|
+
"solarized-dark": {
|
|
762
|
+
bg: "#002b36",
|
|
763
|
+
fg: "#839496",
|
|
764
|
+
line: "#586e75",
|
|
765
|
+
accent: "#268bd2",
|
|
766
|
+
muted: "#586e75"
|
|
767
|
+
},
|
|
768
|
+
"one-dark": {
|
|
769
|
+
bg: "#282c34",
|
|
770
|
+
fg: "#abb2bf",
|
|
771
|
+
line: "#4b5263",
|
|
772
|
+
accent: "#c678dd",
|
|
773
|
+
muted: "#5c6370"
|
|
774
|
+
}
|
|
775
|
+
};
|
|
776
|
+
function Oe(e) {
|
|
777
|
+
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
|
+
return {
|
|
779
|
+
bg: t["editor.background"] ?? (n ? "#1e1e1e" : "#ffffff"),
|
|
780
|
+
fg: t["editor.foreground"] ?? (n ? "#d4d4d4" : "#333333"),
|
|
781
|
+
line: t["editorLineNumber.foreground"] ?? void 0,
|
|
782
|
+
accent: t.focusBorder ?? r("keyword") ?? void 0,
|
|
783
|
+
muted: r("comment") ?? t["editorLineNumber.foreground"] ?? void 0,
|
|
784
|
+
surface: t["editor.selectionBackground"] ?? void 0,
|
|
785
|
+
border: t["editorWidget.border"] ?? void 0
|
|
786
|
+
};
|
|
787
|
+
}
|
|
788
|
+
var ke = /[<>{};]/;
|
|
789
|
+
function Ae(e) {
|
|
790
|
+
let t = e.trim();
|
|
791
|
+
if (!t.startsWith("var(") || !t.endsWith(")") || ke.test(t)) return !1;
|
|
792
|
+
let n = 0;
|
|
793
|
+
for (let e of t) if (e === "(") n++;
|
|
794
|
+
else if (e === ")" && (n--, n < 0)) return !1;
|
|
795
|
+
return n === 0;
|
|
796
|
+
}
|
|
797
|
+
var je = /* @__PURE__ */ new Set([
|
|
798
|
+
"sans-serif",
|
|
799
|
+
"serif",
|
|
800
|
+
"monospace",
|
|
801
|
+
"system-ui",
|
|
802
|
+
"ui-sans-serif",
|
|
803
|
+
"ui-serif",
|
|
804
|
+
"ui-monospace",
|
|
805
|
+
"ui-rounded",
|
|
806
|
+
"cursive",
|
|
807
|
+
"fantasy",
|
|
808
|
+
"math",
|
|
809
|
+
"emoji",
|
|
810
|
+
"fangsong"
|
|
811
|
+
]);
|
|
812
|
+
function Y(e) {
|
|
813
|
+
let t = e.trim();
|
|
814
|
+
return t.includes(",") ? !0 : je.has(t.toLowerCase());
|
|
815
|
+
}
|
|
816
|
+
function X(e) {
|
|
817
|
+
return e === void 0 || e.trim() === "" ? "<style>" : `<style nonce="${U(e)}">`;
|
|
818
|
+
}
|
|
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&display=swap');`], o = `
|
|
821
|
+
/* Derived from --bg and --fg (overridable via --line, --accent, etc.) */
|
|
822
|
+
--_text: var(--fg);
|
|
823
|
+
--_text-sec: var(--muted, color-mix(in srgb, var(--fg) ${J.textSec}%, var(--bg)));
|
|
824
|
+
--_text-muted: var(--muted, color-mix(in srgb, var(--fg) ${J.textMuted}%, var(--bg)));
|
|
825
|
+
--_text-faint: color-mix(in srgb, var(--fg) ${J.textFaint}%, var(--bg));
|
|
826
|
+
--_line: var(--line, color-mix(in srgb, var(--fg) ${J.line}%, var(--bg)));
|
|
827
|
+
--_arrow: var(--accent, color-mix(in srgb, var(--fg) ${J.arrow}%, var(--bg)));
|
|
828
|
+
--_node-fill: var(--surface, color-mix(in srgb, var(--fg) ${J.nodeFill}%, var(--bg)));
|
|
829
|
+
--_node-stroke: var(--border, color-mix(in srgb, var(--fg) ${J.nodeStroke}%, var(--bg)));
|
|
830
|
+
--_group-fill: var(--bg);
|
|
831
|
+
--_group-hdr: color-mix(in srgb, var(--fg) ${J.groupHeader}%, var(--bg));
|
|
832
|
+
--_inner-stroke: color-mix(in srgb, var(--fg) ${J.innerStroke}%, var(--bg));
|
|
833
|
+
--_key-badge: color-mix(in srgb, var(--fg) ${J.keyBadge}%, var(--bg));`;
|
|
834
|
+
return [
|
|
835
|
+
X(n),
|
|
836
|
+
...a.length > 0 ? [` ${a.join("\n ")}`] : [],
|
|
837
|
+
...t ? [` ${Te}`] : [],
|
|
838
|
+
` text { font-family: ${r ? i : `'${i}'`}, system-ui, sans-serif; }`,
|
|
839
|
+
...t ? [` .mono { font-family: '${we}', 'SF Mono', 'Fira Code', ui-monospace, monospace; }`] : [],
|
|
840
|
+
` svg {${o}`,
|
|
841
|
+
" }",
|
|
842
|
+
"</style>"
|
|
843
|
+
].join("\n");
|
|
844
|
+
}
|
|
845
|
+
function Ne(e, t, n) {
|
|
846
|
+
return (.299 * e + .587 * t + .114 * n) / 255;
|
|
847
|
+
}
|
|
848
|
+
function Pe(e, t) {
|
|
849
|
+
if (!e) return t;
|
|
850
|
+
let n = i(e);
|
|
851
|
+
return n ? Ne(...n) > .5 ? "#000000" : "#FFFFFF" : t;
|
|
852
|
+
}
|
|
853
|
+
var Z = 0;
|
|
854
|
+
function Q() {
|
|
855
|
+
return Z += 1, `zm-title-${Z}`;
|
|
856
|
+
}
|
|
857
|
+
function Fe() {
|
|
858
|
+
Z = 0;
|
|
859
|
+
}
|
|
860
|
+
function $(e, t) {
|
|
861
|
+
return `${[
|
|
862
|
+
`--bg:${e.bg}`,
|
|
863
|
+
`--fg:${e.fg}`,
|
|
864
|
+
e.line ? `--line:${e.line}` : "",
|
|
865
|
+
e.accent ? `--accent:${e.accent}` : "",
|
|
866
|
+
e.muted ? `--muted:${e.muted}` : "",
|
|
867
|
+
e.surface ? `--surface:${e.surface}` : "",
|
|
868
|
+
e.border ? `--border:${e.border}` : ""
|
|
869
|
+
].filter(Boolean).join(";")}${t ? "" : ";background:var(--bg)"}`;
|
|
870
|
+
}
|
|
871
|
+
function Ie(e, t, n, r, i, a, o, s = !0) {
|
|
872
|
+
let c = s ? ` style="${$(n, r)}"` : "", l = "", u = "";
|
|
873
|
+
if (o) {
|
|
874
|
+
if (i) {
|
|
875
|
+
let e = Q();
|
|
876
|
+
l = ` aria-labelledby="${e}"`, u = `\n <title id="${e}">${H(i)}</title>`;
|
|
877
|
+
}
|
|
878
|
+
} else if (a) l = " aria-hidden=\"true\"";
|
|
879
|
+
else if (l = " role=\"img\"", i) {
|
|
880
|
+
let e = Q();
|
|
881
|
+
l += ` aria-labelledby="${e}"`, u = `\n <title id="${e}">${H(i)}</title>`;
|
|
882
|
+
}
|
|
883
|
+
return `<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 ${e} ${t}" width="${e}" height="${t}"${l}${c}>` + u;
|
|
884
|
+
}
|
|
885
|
+
//#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 };
|
|
887
|
+
|
|
888
|
+
//# sourceMappingURL=index.js.map
|