jsonresume-theme-cjean 1.0.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.

Potentially problematic release.


This version of jsonresume-theme-cjean might be problematic. Click here for more details.

package/dist/index.js ADDED
@@ -0,0 +1,1885 @@
1
+ var Ne = /* @__PURE__ */ new Map([["&", "&amp;"], ["<", "&lt;"], [">", "&gt;"], ['"', "&quot;"], ["'", "&#x27;"]]), Oe = /* @__PURE__ */ new Set(["href", "src", "action", "formaction", "cite", "poster", "icon", "data"]), Ce = /[&<>]/g, Te = /[&<>"]/g, Ee = new RegExp("\\p{C}", "gu"), Le = /^[^\s"'>/=]+$/u, Ie = /^(?:java|vb)script:/i, Ae = /^data:(?!image\/)/i, me = (e) => e.replace(Ee, ""), O = (e, t = "content") => {
2
+ let r = t === "attr" ? Te : Ce;
3
+ return e.replaceAll(r, (n) => Ne.get(n) ?? n);
4
+ }, Re = (e) => {
5
+ let t = me(e).trim();
6
+ return t ? !(Ie.test(t) || Ae.test(t)) : !0;
7
+ }, De = (e) => Le.test(e), Fe = /* @__PURE__ */ new Set(["area", "base", "br", "col", "embed", "hr", "img", "input", "link", "meta", "param", "source", "track", "wbr"]), Ue = /[A-Z]/g, Be = /* @__PURE__ */ new Set(["children", "dangerouslySetInnerHTML", "key", "ref"]), we = (e) => {
8
+ if (e instanceof Promise) return !0;
9
+ if (Array.isArray(e)) {
10
+ for (let t = 0; t < e.length; t++) if (we(e[t])) return !0;
11
+ }
12
+ return !1;
13
+ };
14
+ class z {
15
+ value;
16
+ constructor(t) {
17
+ this.value = t;
18
+ }
19
+ toString() {
20
+ return this.value;
21
+ }
22
+ }
23
+ function Ve(e) {
24
+ if (!e) return "";
25
+ let t = Object.keys(e);
26
+ for (let r = 0; r < t.length; r++) {
27
+ let n = t[r];
28
+ if (n && we(e[n])) return Promise.all(t.map(async (a) => [a, await e[a]])).then((a) => ae(Object.fromEntries(a)));
29
+ }
30
+ return ae(e);
31
+ }
32
+ function ae(e) {
33
+ let t = "", r = /* @__PURE__ */ new Set(), n = Object.keys(e);
34
+ for (let a = 0; a < n.length; a++) {
35
+ let o = n[a];
36
+ if (!o) continue;
37
+ let i = e[o];
38
+ if (Be.has(o) || i === !1 || i == null) continue;
39
+ if (o === "class" || o === "className") {
40
+ if (typeof i == "string")
41
+ for (let l of i.split(/\s+/)) l && r.add(l);
42
+ continue;
43
+ }
44
+ let s = o.length > 20 || !/^[a-z]+$/.test(o) ? me(o.toLowerCase()) : o;
45
+ if (De(s))
46
+ if (s === "style") {
47
+ let l = typeof i == "object" ? We(i) : String(i);
48
+ t += ` style="${O(l, "attr")}"`;
49
+ } else if (i === !0) t += ` ${s}`;
50
+ else {
51
+ let l = String(i);
52
+ Oe.has(s) && !Re(l) && (l = "#blocked"), t += ` ${s}="${O(l, "attr")}"`;
53
+ }
54
+ }
55
+ return r.size > 0 && (t = ` class="${O([...r].join(" "), "attr")}"` + t), t;
56
+ }
57
+ function We(e) {
58
+ let t = [];
59
+ for (let [r, n] of Object.entries(e)) {
60
+ if (n == null) continue;
61
+ let a = r.startsWith("--") ? r : r.replace(Ue, "-$&").toLowerCase();
62
+ t.push(`${a}:${n}`);
63
+ }
64
+ return t.join(";");
65
+ }
66
+ function X(e) {
67
+ if (e == null || e === !0 || e === !1) return "";
68
+ if (e instanceof z) return e;
69
+ if (e instanceof Promise) return e.then(X).then((t) => t instanceof z ? t : new z(O(String(t))));
70
+ if (Array.isArray(e)) {
71
+ let t = e.length, r = Array(t), n = !1;
72
+ for (let a = 0; a < t; a++) {
73
+ let o = X(e[a]);
74
+ r[a] = o, o instanceof Promise && (n = !0);
75
+ }
76
+ if (!n) {
77
+ let a = "";
78
+ for (let o = 0; o < t; o++) {
79
+ let i = r[o];
80
+ a += i instanceof z ? i.value : O(String(i));
81
+ }
82
+ return new z(a);
83
+ }
84
+ return Promise.all(r).then((a) => {
85
+ let o = "";
86
+ for (let i = 0; i < a.length; i++) {
87
+ let s = a[i];
88
+ o += s instanceof z ? s.value : O(String(s));
89
+ }
90
+ return new z(o);
91
+ });
92
+ }
93
+ return String(e);
94
+ }
95
+ function He(e, t, r) {
96
+ let n = Ve(t), a = t.dangerouslySetInnerHTML ? new z(t.dangerouslySetInnerHTML.__html) : X(r);
97
+ return n instanceof Promise || a instanceof Promise ? Promise.all([n, a]).then(([o, i]) => oe(e, o, i)) : oe(e, n, a);
98
+ }
99
+ function oe(e, t, r) {
100
+ if (Fe.has(e)) return new z(`<${e}${t}>`);
101
+ let n = r instanceof z ? r.value : O(String(r));
102
+ return new z(`<${e}${t}>${n}</${e}>`);
103
+ }
104
+ function c(e, t, r) {
105
+ let n = t || {}, a = n.children, o = Array.isArray(a) ? a : a !== void 0 ? [a] : [];
106
+ return typeof e == "function" ? e(n) : He(e, n, o);
107
+ }
108
+ var m = c;
109
+ function q({ children: e }) {
110
+ return e;
111
+ }
112
+ function Je(e, t = {}) {
113
+ return e.replace(/\{([\w-]+?)\}/g, (r, n) => {
114
+ let a = t[n];
115
+ return a !== void 0 ? String(a) : r;
116
+ });
117
+ }
118
+ function be(e, t) {
119
+ return (r, ...n) => {
120
+ let a = e[r] ?? r, o = n[0] || {};
121
+ return n.length === 0 ? a : Je(a, o);
122
+ };
123
+ }
124
+ function Ye() {
125
+ return (e) => e;
126
+ }
127
+ const qe = {
128
+ work_experience: "Work Experience",
129
+ education: "Education",
130
+ skills: "Skills",
131
+ present: "Present",
132
+ contact_info: "Contact Information",
133
+ phone_call: "Call mobile phone",
134
+ email_send: "Send email",
135
+ show_address: "Show address",
136
+ portrait_alt: "Portrait of {name}",
137
+ last_modified: "Last updated on {date}",
138
+ profile_page_name: "{name}'s resume - {label}",
139
+ theme_credit: "Theme made with love by {link}"
140
+ }, Ke = Ye()({
141
+ work_experience: "Expériences professionnelles",
142
+ education: "Formations",
143
+ skills: "Compétences",
144
+ present: "Présent",
145
+ contact_info: "Informations de contact",
146
+ phone_call: "Appeler sur le téléphone mobile",
147
+ email_send: "Envoyer un email",
148
+ show_address: "Afficher l'adresse",
149
+ portrait_alt: "Portrait de {name}",
150
+ last_modified: "Dernière mise à jour le {date}",
151
+ profile_page_name: "CV de {name} - {label}",
152
+ theme_credit: "Thème proposé avec amour par {link}"
153
+ }), ve = {
154
+ en: qe,
155
+ fr: Ke
156
+ };
157
+ let W, H = "en";
158
+ const Z = (e, ...t) => (W || (W = be(
159
+ ve[H]
160
+ )), W(e, ...t)), ie = (e, ...t) => new z(Z(e, ...t));
161
+ function Ge(e) {
162
+ H = e, W = be(ve[e]);
163
+ }
164
+ const C = {
165
+ normalize(e) {
166
+ const t = typeof e == "string" ? new Date(e) : e;
167
+ return isNaN(t.getTime()) ? null : t;
168
+ },
169
+ format(e, t) {
170
+ const r = this.normalize(e);
171
+ if (!r) return "";
172
+ const n = typeof H < "u" ? H : "fr-FR";
173
+ switch (t) {
174
+ case "month":
175
+ return new Intl.DateTimeFormat(n, {
176
+ month: "long",
177
+ year: "numeric"
178
+ }).format(r);
179
+ case "year":
180
+ return r.getFullYear().toString();
181
+ case "date":
182
+ return new Intl.DateTimeFormat(n, {
183
+ day: "numeric",
184
+ month: "numeric",
185
+ year: "numeric"
186
+ }).format(r);
187
+ case "iso":
188
+ return r.toISOString();
189
+ default:
190
+ throw new Error(`Unhandled date format: ${t}`);
191
+ }
192
+ },
193
+ toISO(e) {
194
+ return this.normalize(e)?.toISOString() ?? "";
195
+ }
196
+ };
197
+ class Qe {
198
+ seed;
199
+ constructor(t) {
200
+ this.seed = t;
201
+ }
202
+ next() {
203
+ return this.seed = this.seed * 16807 % 2147483647, (this.seed - 1) / 2147483646;
204
+ }
205
+ }
206
+ function Xe(e = {}) {
207
+ const {
208
+ width: t = 900,
209
+ height: r = 300,
210
+ cellSize: n = 50,
211
+ variance: a = 0.75,
212
+ seed: o = 1
213
+ } = e, i = new Qe(o), s = [], l = Math.ceil(t / n) + 2, d = Math.ceil(r / n) + 2;
214
+ for (let g = 0; g < d; g++) {
215
+ const b = [];
216
+ for (let y = 0; y < l; y++) {
217
+ const S = (y - 0.5) * n + (i.next() - 0.5) * n * a, M = (g - 0.5) * n + (i.next() - 0.5) * n * a;
218
+ b.push({ x: Math.round(S * 10) / 10, y: Math.round(M * 10) / 10 });
219
+ }
220
+ s.push(b);
221
+ }
222
+ let p = "";
223
+ for (let g = 0; g < d - 1; g++)
224
+ for (let b = 0; b < l - 1; b++) {
225
+ const y = s[g][b], S = s[g][b + 1], M = s[g + 1][b], Q = s[g + 1][b + 1];
226
+ p += se(y, S, M, i.next()), p += se(S, Q, M, i.next());
227
+ }
228
+ const w = `<svg xmlns="http://www.w3.org/2000/svg" width="${t}" height="${r}" viewBox="0 0 ${t} ${r}" preserveAspectRatio="xMidYMid slice">
229
+ <g fill-rule="evenodd">${p}</g>
230
+ </svg>`;
231
+ return `data:image/svg+xml;base64,${btoa(w)}`;
232
+ }
233
+ function se(e, t, r, n) {
234
+ const a = n > 0.5, o = (Math.round(n * 100) / 1e3).toFixed(3), i = a ? "0,0,0" : "255,255,255";
235
+ return `<path d="M${e.x},${e.y}L${t.x},${t.y}L${r.x},${r.y}Z" fill="rgba(${i},${o})"/>`;
236
+ }
237
+ function et({
238
+ name: e,
239
+ label: t,
240
+ children: r,
241
+ ...n
242
+ }) {
243
+ return /* @__PURE__ */ m("header", { className: "flex-1 grow pr-14 md:pr-0", ...n, children: [
244
+ /* @__PURE__ */ c("h1", { className: "text-primary kerning-none inline-block text-4xl font-bold tracking-widest uppercase", children: e }),
245
+ t && /* @__PURE__ */ c("p", { className: "text-3xl", children: t }),
246
+ r
247
+ ] });
248
+ }
249
+ const tt = async (e, t = {}) => {
250
+ const r = new URL(`https://api.iconify.design/${e}.svg`);
251
+ for (const [a, o] of Object.entries(t))
252
+ o && r.searchParams.set(a, o.toString());
253
+ const n = await fetch(r);
254
+ if (!n.ok)
255
+ throw new Error(`Failed to fetch icon ${e}`);
256
+ return n.text();
257
+ }, T = async (e, t = 24) => {
258
+ const r = await tt(e, {
259
+ height: t
260
+ });
261
+ return new z(r);
262
+ };
263
+ function rt(e) {
264
+ return `https://www.google.com/maps/search/?api=1&query=${encodeURIComponent(e)}`;
265
+ }
266
+ function ce(e) {
267
+ try {
268
+ return T(`tabler:brand-${e.toLowerCase()}`);
269
+ } catch {
270
+ return T("tabler:link");
271
+ }
272
+ }
273
+ const D = ({ children: e, ...t }) => /* @__PURE__ */ c("li", { className: "inline-flex items-center gap-x-1", ...t, children: e });
274
+ function nt({
275
+ basics: e,
276
+ themeConfig: t
277
+ }) {
278
+ const { phone: r, email: n, location: a, profiles: o = [] } = e, { contactLinks: i = ["phone", "email", "location", "profiles"] } = t.ui, s = /* @__PURE__ */ new Set(), l = (d) => {
279
+ const p = d.toLowerCase();
280
+ if (p === "phone" && r)
281
+ return /* @__PURE__ */ m(D, { children: [
282
+ T("tabler:phone"),
283
+ /* @__PURE__ */ c("a", { href: `tel:${encodeURIComponent(r)}`, title: Z("phone_call"), children: r })
284
+ ] });
285
+ if (p === "email" && n)
286
+ return /* @__PURE__ */ m(D, { children: [
287
+ T("tabler:mail"),
288
+ /* @__PURE__ */ c("a", { href: `mailto:${n}`, title: Z("email_send"), children: n })
289
+ ] });
290
+ if (p === "location" && a)
291
+ return /* @__PURE__ */ m(D, { children: [
292
+ T("tabler:map-pin"),
293
+ /* @__PURE__ */ m(
294
+ "a",
295
+ {
296
+ href: rt(
297
+ `${a.city}, ${a.region}, ${a.postalCode || ""}, ${a.countryCode}`
298
+ ),
299
+ title: Z("show_address"),
300
+ target: "_blank",
301
+ rel: "noopener noreferrer",
302
+ referrerPolicy: "no-referrer",
303
+ children: [
304
+ a.city,
305
+ ", ",
306
+ a.countryCode
307
+ ]
308
+ }
309
+ )
310
+ ] });
311
+ if (p === "profiles")
312
+ return o.filter((g) => !s.has(g.network.toLowerCase())).map((g) => (s.add(g.network.toLowerCase()), /* @__PURE__ */ m(D, { children: [
313
+ ce(g.network),
314
+ /* @__PURE__ */ c(
315
+ "a",
316
+ {
317
+ href: g.url,
318
+ rel: "me noopener noreferrer",
319
+ title: g.username,
320
+ target: "_blank",
321
+ referrerPolicy: "no-referrer",
322
+ children: g.network
323
+ }
324
+ )
325
+ ] }, g.network)));
326
+ const w = o.find((g) => g.network.toLowerCase() === p);
327
+ return w && !s.has(p) ? (s.add(p), /* @__PURE__ */ m(D, { children: [
328
+ ce(w.network),
329
+ /* @__PURE__ */ c(
330
+ "a",
331
+ {
332
+ href: w.url,
333
+ rel: "me noopener noreferrer",
334
+ title: w.username,
335
+ target: "_blank",
336
+ referrerPolicy: "no-referrer",
337
+ children: w.network
338
+ }
339
+ )
340
+ ] }, w.network)) : null;
341
+ };
342
+ return /* @__PURE__ */ c(
343
+ "ul",
344
+ {
345
+ className: "my-3 inline-flex flex-wrap gap-x-[2ch] gap-y-2",
346
+ "aria-label": Z("contact_info"),
347
+ children: i.map(l)
348
+ }
349
+ );
350
+ }
351
+ function f(e, t, r) {
352
+ function n(s, l) {
353
+ if (s._zod || Object.defineProperty(s, "_zod", {
354
+ value: {
355
+ def: l,
356
+ constr: i,
357
+ traits: /* @__PURE__ */ new Set()
358
+ },
359
+ enumerable: !1
360
+ }), s._zod.traits.has(e))
361
+ return;
362
+ s._zod.traits.add(e), t(s, l);
363
+ const d = i.prototype, p = Object.keys(d);
364
+ for (let w = 0; w < p.length; w++) {
365
+ const g = p[w];
366
+ g in s || (s[g] = d[g].bind(s));
367
+ }
368
+ }
369
+ const a = r?.Parent ?? Object;
370
+ class o extends a {
371
+ }
372
+ Object.defineProperty(o, "name", { value: e });
373
+ function i(s) {
374
+ var l;
375
+ const d = r?.Parent ? new o() : this;
376
+ n(d, s), (l = d._zod).deferred ?? (l.deferred = []);
377
+ for (const p of d._zod.deferred)
378
+ p();
379
+ return d;
380
+ }
381
+ return Object.defineProperty(i, "init", { value: n }), Object.defineProperty(i, Symbol.hasInstance, {
382
+ value: (s) => r?.Parent && s instanceof r.Parent ? !0 : s?._zod?.traits?.has(e)
383
+ }), Object.defineProperty(i, "name", { value: e }), i;
384
+ }
385
+ class E extends Error {
386
+ constructor() {
387
+ super("Encountered Promise during synchronous parse. Use .parseAsync() instead.");
388
+ }
389
+ }
390
+ class at extends Error {
391
+ constructor(t) {
392
+ super(`Encountered unidirectional transform during encode: ${t}`), this.name = "ZodEncodeError";
393
+ }
394
+ }
395
+ const ot = {};
396
+ function L(e) {
397
+ return ot;
398
+ }
399
+ function it(e) {
400
+ const t = Object.values(e).filter((n) => typeof n == "number");
401
+ return Object.entries(e).filter(([n, a]) => t.indexOf(+n) === -1).map(([n, a]) => a);
402
+ }
403
+ function st(e, t) {
404
+ return typeof t == "bigint" ? t.toString() : t;
405
+ }
406
+ function ct(e) {
407
+ return {
408
+ get value() {
409
+ {
410
+ const t = e();
411
+ return Object.defineProperty(this, "value", { value: t }), t;
412
+ }
413
+ }
414
+ };
415
+ }
416
+ function lt(e) {
417
+ return e == null;
418
+ }
419
+ function dt(e) {
420
+ const t = e.startsWith("^") ? 1 : 0, r = e.endsWith("$") ? e.length - 1 : e.length;
421
+ return e.slice(t, r);
422
+ }
423
+ const le = /* @__PURE__ */ Symbol("evaluating");
424
+ function k(e, t, r) {
425
+ let n;
426
+ Object.defineProperty(e, t, {
427
+ get() {
428
+ if (n !== le)
429
+ return n === void 0 && (n = le, n = r()), n;
430
+ },
431
+ set(a) {
432
+ Object.defineProperty(e, t, {
433
+ value: a
434
+ // configurable: true,
435
+ });
436
+ },
437
+ configurable: !0
438
+ });
439
+ }
440
+ const ye = "captureStackTrace" in Error ? Error.captureStackTrace : (...e) => {
441
+ };
442
+ function ee(e) {
443
+ return typeof e == "object" && e !== null && !Array.isArray(e);
444
+ }
445
+ function ut(e) {
446
+ if (ee(e) === !1)
447
+ return !1;
448
+ const t = e.constructor;
449
+ if (t === void 0 || typeof t != "function")
450
+ return !0;
451
+ const r = t.prototype;
452
+ return !(ee(r) === !1 || Object.prototype.hasOwnProperty.call(r, "isPrototypeOf") === !1);
453
+ }
454
+ function xe(e) {
455
+ return ut(e) ? { ...e } : Array.isArray(e) ? [...e] : e;
456
+ }
457
+ const pt = /* @__PURE__ */ new Set(["string", "number", "symbol"]);
458
+ function ht(e) {
459
+ return e.replace(/[.*+?^${}()|[\]\\]/g, "\\$&");
460
+ }
461
+ function ft(e, t, r) {
462
+ const n = new e._zod.constr(t ?? e._zod.def);
463
+ return (!t || r?.parent) && (n._zod.parent = e), n;
464
+ }
465
+ function $(e) {
466
+ const t = e;
467
+ if (!t)
468
+ return {};
469
+ if (typeof t == "string")
470
+ return { error: () => t };
471
+ if (t?.message !== void 0) {
472
+ if (t?.error !== void 0)
473
+ throw new Error("Cannot specify both `message` and `error` params");
474
+ t.error = t.message;
475
+ }
476
+ return delete t.message, typeof t.error == "string" ? { ...t, error: () => t.error } : t;
477
+ }
478
+ function gt(e) {
479
+ return Object.keys(e).filter((t) => e[t]._zod.optin === "optional" && e[t]._zod.optout === "optional");
480
+ }
481
+ function U(e, t = 0) {
482
+ if (e.aborted === !0)
483
+ return !0;
484
+ for (let r = t; r < e.issues.length; r++)
485
+ if (e.issues[r]?.continue !== !0)
486
+ return !0;
487
+ return !1;
488
+ }
489
+ function ke(e, t) {
490
+ return t.map((r) => {
491
+ var n;
492
+ return (n = r).path ?? (n.path = []), r.path.unshift(e), r;
493
+ });
494
+ }
495
+ function B(e) {
496
+ return typeof e == "string" ? e : e?.message;
497
+ }
498
+ function I(e, t, r) {
499
+ const n = { ...e, path: e.path ?? [] };
500
+ if (!e.message) {
501
+ const a = B(e.inst?._zod.def?.error?.(e)) ?? B(t?.error?.(e)) ?? B(r.customError?.(e)) ?? B(r.localeError?.(e)) ?? "Invalid input";
502
+ n.message = a;
503
+ }
504
+ return delete n.inst, delete n.continue, t?.reportInput || delete n.input, n;
505
+ }
506
+ function mt(e) {
507
+ return Array.isArray(e) ? "array" : typeof e == "string" ? "string" : "unknown";
508
+ }
509
+ function wt(...e) {
510
+ const [t, r, n] = e;
511
+ return typeof t == "string" ? {
512
+ message: t,
513
+ code: "custom",
514
+ input: r,
515
+ inst: n
516
+ } : { ...t };
517
+ }
518
+ const _e = (e, t) => {
519
+ e.name = "$ZodError", Object.defineProperty(e, "_zod", {
520
+ value: e._zod,
521
+ enumerable: !1
522
+ }), Object.defineProperty(e, "issues", {
523
+ value: t,
524
+ enumerable: !1
525
+ }), e.message = JSON.stringify(t, st, 2), Object.defineProperty(e, "toString", {
526
+ value: () => e.message,
527
+ enumerable: !1
528
+ });
529
+ }, bt = f("$ZodError", _e), K = f("$ZodError", _e, { Parent: Error }), vt = (e) => (t, r, n, a) => {
530
+ const o = n ? Object.assign(n, { async: !1 }) : { async: !1 }, i = t._zod.run({ value: r, issues: [] }, o);
531
+ if (i instanceof Promise)
532
+ throw new E();
533
+ if (i.issues.length) {
534
+ const s = new (a?.Err ?? e)(i.issues.map((l) => I(l, o, L())));
535
+ throw ye(s, a?.callee), s;
536
+ }
537
+ return i.value;
538
+ }, yt = /* @__PURE__ */ vt(K), xt = (e) => async (t, r, n, a) => {
539
+ const o = n ? Object.assign(n, { async: !0 }) : { async: !0 };
540
+ let i = t._zod.run({ value: r, issues: [] }, o);
541
+ if (i instanceof Promise && (i = await i), i.issues.length) {
542
+ const s = new (a?.Err ?? e)(i.issues.map((l) => I(l, o, L())));
543
+ throw ye(s, a?.callee), s;
544
+ }
545
+ return i.value;
546
+ }, kt = /* @__PURE__ */ xt(K), _t = (e) => (t, r, n) => {
547
+ const a = n ? { ...n, async: !1 } : { async: !1 }, o = t._zod.run({ value: r, issues: [] }, a);
548
+ if (o instanceof Promise)
549
+ throw new E();
550
+ return o.issues.length ? {
551
+ success: !1,
552
+ error: new (e ?? bt)(o.issues.map((i) => I(i, a, L())))
553
+ } : { success: !0, data: o.value };
554
+ }, ze = /* @__PURE__ */ _t(K), zt = (e) => async (t, r, n) => {
555
+ const a = n ? Object.assign(n, { async: !0 }) : { async: !0 };
556
+ let o = t._zod.run({ value: r, issues: [] }, a);
557
+ return o instanceof Promise && (o = await o), o.issues.length ? {
558
+ success: !1,
559
+ error: new e(o.issues.map((i) => I(i, a, L())))
560
+ } : { success: !0, data: o.value };
561
+ }, $e = /* @__PURE__ */ zt(K), $t = /^(?!\.)(?!.*\.\.)([A-Za-z0-9_'+\-\.]*)[A-Za-z0-9_+-]@([A-Za-z0-9][A-Za-z0-9\-]*\.)+[A-Za-z]{2,}$/, St = "(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))", Zt = /* @__PURE__ */ new RegExp(`^${St}$`), Pt = (e) => {
562
+ const t = e ? `[\\s\\S]{${e?.minimum ?? 0},${e?.maximum ?? ""}}` : "[\\s\\S]*";
563
+ return new RegExp(`^${t}$`);
564
+ }, jt = /^-?\d+(?:\.\d+)?$/, Mt = /^(?:true|false)$/i, te = /* @__PURE__ */ f("$ZodCheck", (e, t) => {
565
+ var r;
566
+ e._zod ?? (e._zod = {}), e._zod.def = t, (r = e._zod).onattach ?? (r.onattach = []);
567
+ }), Nt = /* @__PURE__ */ f("$ZodCheckLengthEquals", (e, t) => {
568
+ var r;
569
+ te.init(e, t), (r = e._zod.def).when ?? (r.when = (n) => {
570
+ const a = n.value;
571
+ return !lt(a) && a.length !== void 0;
572
+ }), e._zod.onattach.push((n) => {
573
+ const a = n._zod.bag;
574
+ a.minimum = t.length, a.maximum = t.length, a.length = t.length;
575
+ }), e._zod.check = (n) => {
576
+ const a = n.value, o = a.length;
577
+ if (o === t.length)
578
+ return;
579
+ const i = mt(a), s = o > t.length;
580
+ n.issues.push({
581
+ origin: i,
582
+ ...s ? { code: "too_big", maximum: t.length } : { code: "too_small", minimum: t.length },
583
+ inclusive: !0,
584
+ exact: !0,
585
+ input: n.value,
586
+ inst: e,
587
+ continue: !t.abort
588
+ });
589
+ };
590
+ }), Se = /* @__PURE__ */ f("$ZodCheckStringFormat", (e, t) => {
591
+ var r, n;
592
+ te.init(e, t), e._zod.onattach.push((a) => {
593
+ const o = a._zod.bag;
594
+ o.format = t.format, t.pattern && (o.patterns ?? (o.patterns = /* @__PURE__ */ new Set()), o.patterns.add(t.pattern));
595
+ }), t.pattern ? (r = e._zod).check ?? (r.check = (a) => {
596
+ t.pattern.lastIndex = 0, !t.pattern.test(a.value) && a.issues.push({
597
+ origin: "string",
598
+ code: "invalid_format",
599
+ format: t.format,
600
+ input: a.value,
601
+ ...t.pattern ? { pattern: t.pattern.toString() } : {},
602
+ inst: e,
603
+ continue: !t.abort
604
+ });
605
+ }) : (n = e._zod).check ?? (n.check = () => {
606
+ });
607
+ }), Ot = /* @__PURE__ */ f("$ZodCheckRegex", (e, t) => {
608
+ Se.init(e, t), e._zod.check = (r) => {
609
+ t.pattern.lastIndex = 0, !t.pattern.test(r.value) && r.issues.push({
610
+ origin: "string",
611
+ code: "invalid_format",
612
+ format: "regex",
613
+ input: r.value,
614
+ pattern: t.pattern.toString(),
615
+ inst: e,
616
+ continue: !t.abort
617
+ });
618
+ };
619
+ }), Ct = {
620
+ major: 4,
621
+ minor: 3,
622
+ patch: 6
623
+ }, x = /* @__PURE__ */ f("$ZodType", (e, t) => {
624
+ var r;
625
+ e ?? (e = {}), e._zod.def = t, e._zod.bag = e._zod.bag || {}, e._zod.version = Ct;
626
+ const n = [...e._zod.def.checks ?? []];
627
+ e._zod.traits.has("$ZodCheck") && n.unshift(e);
628
+ for (const a of n)
629
+ for (const o of a._zod.onattach)
630
+ o(e);
631
+ if (n.length === 0)
632
+ (r = e._zod).deferred ?? (r.deferred = []), e._zod.deferred?.push(() => {
633
+ e._zod.run = e._zod.parse;
634
+ });
635
+ else {
636
+ const a = (i, s, l) => {
637
+ let d = U(i), p;
638
+ for (const w of s) {
639
+ if (w._zod.def.when) {
640
+ if (!w._zod.def.when(i))
641
+ continue;
642
+ } else if (d)
643
+ continue;
644
+ const g = i.issues.length, b = w._zod.check(i);
645
+ if (b instanceof Promise && l?.async === !1)
646
+ throw new E();
647
+ if (p || b instanceof Promise)
648
+ p = (p ?? Promise.resolve()).then(async () => {
649
+ await b, i.issues.length !== g && (d || (d = U(i, g)));
650
+ });
651
+ else {
652
+ if (i.issues.length === g)
653
+ continue;
654
+ d || (d = U(i, g));
655
+ }
656
+ }
657
+ return p ? p.then(() => i) : i;
658
+ }, o = (i, s, l) => {
659
+ if (U(i))
660
+ return i.aborted = !0, i;
661
+ const d = a(s, n, l);
662
+ if (d instanceof Promise) {
663
+ if (l.async === !1)
664
+ throw new E();
665
+ return d.then((p) => e._zod.parse(p, l));
666
+ }
667
+ return e._zod.parse(d, l);
668
+ };
669
+ e._zod.run = (i, s) => {
670
+ if (s.skipChecks)
671
+ return e._zod.parse(i, s);
672
+ if (s.direction === "backward") {
673
+ const d = e._zod.parse({ value: i.value, issues: [] }, { ...s, skipChecks: !0 });
674
+ return d instanceof Promise ? d.then((p) => o(p, i, s)) : o(d, i, s);
675
+ }
676
+ const l = e._zod.parse(i, s);
677
+ if (l instanceof Promise) {
678
+ if (s.async === !1)
679
+ throw new E();
680
+ return l.then((d) => a(d, n, s));
681
+ }
682
+ return a(l, n, s);
683
+ };
684
+ }
685
+ k(e, "~standard", () => ({
686
+ validate: (a) => {
687
+ try {
688
+ const o = ze(e, a);
689
+ return o.success ? { value: o.data } : { issues: o.error?.issues };
690
+ } catch {
691
+ return $e(e, a).then((i) => i.success ? { value: i.data } : { issues: i.error?.issues });
692
+ }
693
+ },
694
+ vendor: "zod",
695
+ version: 1
696
+ }));
697
+ }), Ze = /* @__PURE__ */ f("$ZodString", (e, t) => {
698
+ x.init(e, t), e._zod.pattern = [...e?._zod.bag?.patterns ?? []].pop() ?? Pt(e._zod.bag), e._zod.parse = (r, n) => {
699
+ if (t.coerce)
700
+ try {
701
+ r.value = String(r.value);
702
+ } catch {
703
+ }
704
+ return typeof r.value == "string" || r.issues.push({
705
+ expected: "string",
706
+ code: "invalid_type",
707
+ input: r.value,
708
+ inst: e
709
+ }), r;
710
+ };
711
+ }), G = /* @__PURE__ */ f("$ZodStringFormat", (e, t) => {
712
+ Se.init(e, t), Ze.init(e, t);
713
+ }), Tt = /* @__PURE__ */ f("$ZodEmail", (e, t) => {
714
+ t.pattern ?? (t.pattern = $t), G.init(e, t);
715
+ }), Et = /* @__PURE__ */ f("$ZodURL", (e, t) => {
716
+ G.init(e, t), e._zod.check = (r) => {
717
+ try {
718
+ const n = r.value.trim(), a = new URL(n);
719
+ t.hostname && (t.hostname.lastIndex = 0, t.hostname.test(a.hostname) || r.issues.push({
720
+ code: "invalid_format",
721
+ format: "url",
722
+ note: "Invalid hostname",
723
+ pattern: t.hostname.source,
724
+ input: r.value,
725
+ inst: e,
726
+ continue: !t.abort
727
+ })), t.protocol && (t.protocol.lastIndex = 0, t.protocol.test(a.protocol.endsWith(":") ? a.protocol.slice(0, -1) : a.protocol) || r.issues.push({
728
+ code: "invalid_format",
729
+ format: "url",
730
+ note: "Invalid protocol",
731
+ pattern: t.protocol.source,
732
+ input: r.value,
733
+ inst: e,
734
+ continue: !t.abort
735
+ })), t.normalize ? r.value = a.href : r.value = n;
736
+ return;
737
+ } catch {
738
+ r.issues.push({
739
+ code: "invalid_format",
740
+ format: "url",
741
+ input: r.value,
742
+ inst: e,
743
+ continue: !t.abort
744
+ });
745
+ }
746
+ };
747
+ }), Lt = /* @__PURE__ */ f("$ZodISODate", (e, t) => {
748
+ t.pattern ?? (t.pattern = Zt), G.init(e, t);
749
+ }), It = /* @__PURE__ */ f("$ZodNumber", (e, t) => {
750
+ x.init(e, t), e._zod.pattern = e._zod.bag.pattern ?? jt, e._zod.parse = (r, n) => {
751
+ if (t.coerce)
752
+ try {
753
+ r.value = Number(r.value);
754
+ } catch {
755
+ }
756
+ const a = r.value;
757
+ if (typeof a == "number" && !Number.isNaN(a) && Number.isFinite(a))
758
+ return r;
759
+ const o = typeof a == "number" ? Number.isNaN(a) ? "NaN" : Number.isFinite(a) ? void 0 : "Infinity" : void 0;
760
+ return r.issues.push({
761
+ expected: "number",
762
+ code: "invalid_type",
763
+ input: a,
764
+ inst: e,
765
+ ...o ? { received: o } : {}
766
+ }), r;
767
+ };
768
+ }), At = /* @__PURE__ */ f("$ZodBoolean", (e, t) => {
769
+ x.init(e, t), e._zod.pattern = Mt, e._zod.parse = (r, n) => {
770
+ if (t.coerce)
771
+ try {
772
+ r.value = !!r.value;
773
+ } catch {
774
+ }
775
+ const a = r.value;
776
+ return typeof a == "boolean" || r.issues.push({
777
+ expected: "boolean",
778
+ code: "invalid_type",
779
+ input: a,
780
+ inst: e
781
+ }), r;
782
+ };
783
+ }), Rt = /* @__PURE__ */ f("$ZodUnknown", (e, t) => {
784
+ x.init(e, t), e._zod.parse = (r) => r;
785
+ });
786
+ function de(e, t, r) {
787
+ e.issues.length && t.issues.push(...ke(r, e.issues)), t.value[r] = e.value;
788
+ }
789
+ const Dt = /* @__PURE__ */ f("$ZodArray", (e, t) => {
790
+ x.init(e, t), e._zod.parse = (r, n) => {
791
+ const a = r.value;
792
+ if (!Array.isArray(a))
793
+ return r.issues.push({
794
+ expected: "array",
795
+ code: "invalid_type",
796
+ input: a,
797
+ inst: e
798
+ }), r;
799
+ r.value = Array(a.length);
800
+ const o = [];
801
+ for (let i = 0; i < a.length; i++) {
802
+ const s = a[i], l = t.element._zod.run({
803
+ value: s,
804
+ issues: []
805
+ }, n);
806
+ l instanceof Promise ? o.push(l.then((d) => de(d, r, i))) : de(l, r, i);
807
+ }
808
+ return o.length ? Promise.all(o).then(() => r) : r;
809
+ };
810
+ });
811
+ function J(e, t, r, n, a) {
812
+ if (e.issues.length) {
813
+ if (a && !(r in n))
814
+ return;
815
+ t.issues.push(...ke(r, e.issues));
816
+ }
817
+ e.value === void 0 ? r in n && (t.value[r] = void 0) : t.value[r] = e.value;
818
+ }
819
+ function Ft(e) {
820
+ const t = Object.keys(e.shape);
821
+ for (const n of t)
822
+ if (!e.shape?.[n]?._zod?.traits?.has("$ZodType"))
823
+ throw new Error(`Invalid element at key "${n}": expected a Zod schema`);
824
+ const r = gt(e.shape);
825
+ return {
826
+ ...e,
827
+ keys: t,
828
+ keySet: new Set(t),
829
+ numKeys: t.length,
830
+ optionalKeys: new Set(r)
831
+ };
832
+ }
833
+ function Ut(e, t, r, n, a, o) {
834
+ const i = [], s = a.keySet, l = a.catchall._zod, d = l.def.type, p = l.optout === "optional";
835
+ for (const w in t) {
836
+ if (s.has(w))
837
+ continue;
838
+ if (d === "never") {
839
+ i.push(w);
840
+ continue;
841
+ }
842
+ const g = l.run({ value: t[w], issues: [] }, n);
843
+ g instanceof Promise ? e.push(g.then((b) => J(b, r, w, t, p))) : J(g, r, w, t, p);
844
+ }
845
+ return i.length && r.issues.push({
846
+ code: "unrecognized_keys",
847
+ keys: i,
848
+ input: t,
849
+ inst: o
850
+ }), e.length ? Promise.all(e).then(() => r) : r;
851
+ }
852
+ const Bt = /* @__PURE__ */ f("$ZodObject", (e, t) => {
853
+ if (x.init(e, t), !Object.getOwnPropertyDescriptor(t, "shape")?.get) {
854
+ const s = t.shape;
855
+ Object.defineProperty(t, "shape", {
856
+ get: () => {
857
+ const l = { ...s };
858
+ return Object.defineProperty(t, "shape", {
859
+ value: l
860
+ }), l;
861
+ }
862
+ });
863
+ }
864
+ const n = ct(() => Ft(t));
865
+ k(e._zod, "propValues", () => {
866
+ const s = t.shape, l = {};
867
+ for (const d in s) {
868
+ const p = s[d]._zod;
869
+ if (p.values) {
870
+ l[d] ?? (l[d] = /* @__PURE__ */ new Set());
871
+ for (const w of p.values)
872
+ l[d].add(w);
873
+ }
874
+ }
875
+ return l;
876
+ });
877
+ const a = ee, o = t.catchall;
878
+ let i;
879
+ e._zod.parse = (s, l) => {
880
+ i ?? (i = n.value);
881
+ const d = s.value;
882
+ if (!a(d))
883
+ return s.issues.push({
884
+ expected: "object",
885
+ code: "invalid_type",
886
+ input: d,
887
+ inst: e
888
+ }), s;
889
+ s.value = {};
890
+ const p = [], w = i.shape;
891
+ for (const g of i.keys) {
892
+ const b = w[g], y = b._zod.optout === "optional", S = b._zod.run({ value: d[g], issues: [] }, l);
893
+ S instanceof Promise ? p.push(S.then((M) => J(M, s, g, d, y))) : J(S, s, g, d, y);
894
+ }
895
+ return o ? Ut(p, d, s, l, n.value, e) : p.length ? Promise.all(p).then(() => s) : s;
896
+ };
897
+ }), Vt = /* @__PURE__ */ f("$ZodEnum", (e, t) => {
898
+ x.init(e, t);
899
+ const r = it(t.entries), n = new Set(r);
900
+ e._zod.values = n, e._zod.pattern = new RegExp(`^(${r.filter((a) => pt.has(typeof a)).map((a) => typeof a == "string" ? ht(a) : a.toString()).join("|")})$`), e._zod.parse = (a, o) => {
901
+ const i = a.value;
902
+ return n.has(i) || a.issues.push({
903
+ code: "invalid_value",
904
+ values: r,
905
+ input: i,
906
+ inst: e
907
+ }), a;
908
+ };
909
+ }), Wt = /* @__PURE__ */ f("$ZodTransform", (e, t) => {
910
+ x.init(e, t), e._zod.parse = (r, n) => {
911
+ if (n.direction === "backward")
912
+ throw new at(e.constructor.name);
913
+ const a = t.transform(r.value, r);
914
+ if (n.async)
915
+ return (a instanceof Promise ? a : Promise.resolve(a)).then((i) => (r.value = i, r));
916
+ if (a instanceof Promise)
917
+ throw new E();
918
+ return r.value = a, r;
919
+ };
920
+ });
921
+ function ue(e, t) {
922
+ return e.issues.length && t === void 0 ? { issues: [], value: void 0 } : e;
923
+ }
924
+ const Ht = /* @__PURE__ */ f("$ZodOptional", (e, t) => {
925
+ x.init(e, t), e._zod.optin = "optional", e._zod.optout = "optional", k(e._zod, "values", () => t.innerType._zod.values ? /* @__PURE__ */ new Set([...t.innerType._zod.values, void 0]) : void 0), k(e._zod, "pattern", () => {
926
+ const r = t.innerType._zod.pattern;
927
+ return r ? new RegExp(`^(${dt(r.source)})?$`) : void 0;
928
+ }), e._zod.parse = (r, n) => {
929
+ if (t.innerType._zod.optin === "optional") {
930
+ const a = t.innerType._zod.run(r, n);
931
+ return a instanceof Promise ? a.then((o) => ue(o, r.value)) : ue(a, r.value);
932
+ }
933
+ return r.value === void 0 ? r : t.innerType._zod.run(r, n);
934
+ };
935
+ }), Jt = /* @__PURE__ */ f("$ZodDefault", (e, t) => {
936
+ x.init(e, t), e._zod.optin = "optional", k(e._zod, "values", () => t.innerType._zod.values), e._zod.parse = (r, n) => {
937
+ if (n.direction === "backward")
938
+ return t.innerType._zod.run(r, n);
939
+ if (r.value === void 0)
940
+ return r.value = t.defaultValue, r;
941
+ const a = t.innerType._zod.run(r, n);
942
+ return a instanceof Promise ? a.then((o) => pe(o, t)) : pe(a, t);
943
+ };
944
+ });
945
+ function pe(e, t) {
946
+ return e.value === void 0 && (e.value = t.defaultValue), e;
947
+ }
948
+ const Yt = /* @__PURE__ */ f("$ZodPrefault", (e, t) => {
949
+ x.init(e, t), e._zod.optin = "optional", k(e._zod, "values", () => t.innerType._zod.values), e._zod.parse = (r, n) => (n.direction === "backward" || r.value === void 0 && (r.value = t.defaultValue), t.innerType._zod.run(r, n));
950
+ }), qt = /* @__PURE__ */ f("$ZodCatch", (e, t) => {
951
+ x.init(e, t), k(e._zod, "optin", () => t.innerType._zod.optin), k(e._zod, "optout", () => t.innerType._zod.optout), k(e._zod, "values", () => t.innerType._zod.values), e._zod.parse = (r, n) => {
952
+ if (n.direction === "backward")
953
+ return t.innerType._zod.run(r, n);
954
+ const a = t.innerType._zod.run(r, n);
955
+ return a instanceof Promise ? a.then((o) => (r.value = o.value, o.issues.length && (r.value = t.catchValue({
956
+ ...r,
957
+ error: {
958
+ issues: o.issues.map((i) => I(i, n, L()))
959
+ },
960
+ input: r.value
961
+ }), r.issues = []), r)) : (r.value = a.value, a.issues.length && (r.value = t.catchValue({
962
+ ...r,
963
+ error: {
964
+ issues: a.issues.map((o) => I(o, n, L()))
965
+ },
966
+ input: r.value
967
+ }), r.issues = []), r);
968
+ };
969
+ }), Kt = /* @__PURE__ */ f("$ZodPipe", (e, t) => {
970
+ x.init(e, t), k(e._zod, "values", () => t.in._zod.values), k(e._zod, "optin", () => t.in._zod.optin), k(e._zod, "optout", () => t.out._zod.optout), k(e._zod, "propValues", () => t.in._zod.propValues), e._zod.parse = (r, n) => {
971
+ if (n.direction === "backward") {
972
+ const o = t.out._zod.run(r, n);
973
+ return o instanceof Promise ? o.then((i) => V(i, t.in, n)) : V(o, t.in, n);
974
+ }
975
+ const a = t.in._zod.run(r, n);
976
+ return a instanceof Promise ? a.then((o) => V(o, t.out, n)) : V(a, t.out, n);
977
+ };
978
+ });
979
+ function V(e, t, r) {
980
+ return e.issues.length ? (e.aborted = !0, e) : t._zod.run({ value: e.value, issues: e.issues }, r);
981
+ }
982
+ const Gt = /* @__PURE__ */ f("$ZodCustom", (e, t) => {
983
+ te.init(e, t), x.init(e, t), e._zod.parse = (r, n) => r, e._zod.check = (r) => {
984
+ const n = r.value, a = t.fn(n);
985
+ if (a instanceof Promise)
986
+ return a.then((o) => he(o, r, n, e));
987
+ he(a, r, n, e);
988
+ };
989
+ });
990
+ function he(e, t, r, n) {
991
+ if (!e) {
992
+ const a = {
993
+ code: "custom",
994
+ input: r,
995
+ inst: n,
996
+ // incorporates params.error into issue reporting
997
+ path: [...n._zod.def.path ?? []],
998
+ // incorporates params.error into issue reporting
999
+ continue: !n._zod.def.abort
1000
+ // params: inst._zod.def.params,
1001
+ };
1002
+ n._zod.def.params && (a.params = n._zod.def.params), t.issues.push(wt(a));
1003
+ }
1004
+ }
1005
+ var fe;
1006
+ class Qt {
1007
+ constructor() {
1008
+ this._map = /* @__PURE__ */ new WeakMap(), this._idmap = /* @__PURE__ */ new Map();
1009
+ }
1010
+ add(t, ...r) {
1011
+ const n = r[0];
1012
+ return this._map.set(t, n), n && typeof n == "object" && "id" in n && this._idmap.set(n.id, t), this;
1013
+ }
1014
+ clear() {
1015
+ return this._map = /* @__PURE__ */ new WeakMap(), this._idmap = /* @__PURE__ */ new Map(), this;
1016
+ }
1017
+ remove(t) {
1018
+ const r = this._map.get(t);
1019
+ return r && typeof r == "object" && "id" in r && this._idmap.delete(r.id), this._map.delete(t), this;
1020
+ }
1021
+ get(t) {
1022
+ const r = t._zod.parent;
1023
+ if (r) {
1024
+ const n = { ...this.get(r) ?? {} };
1025
+ delete n.id;
1026
+ const a = { ...n, ...this._map.get(t) };
1027
+ return Object.keys(a).length ? a : void 0;
1028
+ }
1029
+ return this._map.get(t);
1030
+ }
1031
+ has(t) {
1032
+ return this._map.has(t);
1033
+ }
1034
+ }
1035
+ function Xt() {
1036
+ return new Qt();
1037
+ }
1038
+ (fe = globalThis).__zod_globalRegistry ?? (fe.__zod_globalRegistry = Xt());
1039
+ // @__NO_SIDE_EFFECTS__
1040
+ function er(e, t) {
1041
+ return new e({
1042
+ type: "string",
1043
+ ...$(t)
1044
+ });
1045
+ }
1046
+ // @__NO_SIDE_EFFECTS__
1047
+ function tr(e, t) {
1048
+ return new e({
1049
+ type: "string",
1050
+ format: "email",
1051
+ check: "string_format",
1052
+ abort: !1,
1053
+ ...$(t)
1054
+ });
1055
+ }
1056
+ // @__NO_SIDE_EFFECTS__
1057
+ function rr(e, t) {
1058
+ return new e({
1059
+ type: "string",
1060
+ format: "url",
1061
+ check: "string_format",
1062
+ abort: !1,
1063
+ ...$(t)
1064
+ });
1065
+ }
1066
+ // @__NO_SIDE_EFFECTS__
1067
+ function nr(e, t) {
1068
+ return new e({
1069
+ type: "string",
1070
+ format: "date",
1071
+ check: "string_format",
1072
+ ...$(t)
1073
+ });
1074
+ }
1075
+ // @__NO_SIDE_EFFECTS__
1076
+ function ar(e, t) {
1077
+ return new e({
1078
+ type: "number",
1079
+ checks: [],
1080
+ ...$(t)
1081
+ });
1082
+ }
1083
+ // @__NO_SIDE_EFFECTS__
1084
+ function or(e, t) {
1085
+ return new e({
1086
+ type: "boolean",
1087
+ ...$(t)
1088
+ });
1089
+ }
1090
+ // @__NO_SIDE_EFFECTS__
1091
+ function ir(e) {
1092
+ return new e({
1093
+ type: "unknown"
1094
+ });
1095
+ }
1096
+ // @__NO_SIDE_EFFECTS__
1097
+ function sr(e, t) {
1098
+ return new Nt({
1099
+ check: "length_equals",
1100
+ ...$(t),
1101
+ length: e
1102
+ });
1103
+ }
1104
+ // @__NO_SIDE_EFFECTS__
1105
+ function cr(e, t) {
1106
+ return new Ot({
1107
+ check: "string_format",
1108
+ format: "regex",
1109
+ ...$(t),
1110
+ pattern: e
1111
+ });
1112
+ }
1113
+ // @__NO_SIDE_EFFECTS__
1114
+ function lr(e, t, r) {
1115
+ return new e({
1116
+ type: "custom",
1117
+ check: "custom",
1118
+ fn: t,
1119
+ ...$(r)
1120
+ });
1121
+ }
1122
+ const _ = /* @__PURE__ */ f("ZodMiniType", (e, t) => {
1123
+ if (!e._zod)
1124
+ throw new Error("Uninitialized schema in ZodMiniType.");
1125
+ x.init(e, t), e.def = t, e.type = t.type, e.parse = (r, n) => yt(e, r, n, { callee: e.parse }), e.safeParse = (r, n) => ze(e, r, n), e.parseAsync = async (r, n) => kt(e, r, n, { callee: e.parseAsync }), e.safeParseAsync = async (r, n) => $e(e, r, n), e.check = (...r) => e.clone({
1126
+ ...t,
1127
+ checks: [
1128
+ ...t.checks ?? [],
1129
+ ...r.map((n) => typeof n == "function" ? { _zod: { check: n, def: { check: "custom" }, onattach: [] } } : n)
1130
+ ]
1131
+ }, { parent: !0 }), e.with = e.check, e.clone = (r, n) => ft(e, r, n), e.brand = () => e, e.register = ((r, n) => (r.add(e, n), e)), e.apply = (r) => r(e);
1132
+ }), Pe = /* @__PURE__ */ f("ZodMiniString", (e, t) => {
1133
+ Ze.init(e, t), _.init(e, t);
1134
+ });
1135
+ // @__NO_SIDE_EFFECTS__
1136
+ function h(e) {
1137
+ return /* @__PURE__ */ er(Pe, e);
1138
+ }
1139
+ const re = /* @__PURE__ */ f("ZodMiniStringFormat", (e, t) => {
1140
+ G.init(e, t), Pe.init(e, t);
1141
+ }), dr = /* @__PURE__ */ f("ZodMiniEmail", (e, t) => {
1142
+ Tt.init(e, t), re.init(e, t);
1143
+ });
1144
+ // @__NO_SIDE_EFFECTS__
1145
+ function ur(e) {
1146
+ return /* @__PURE__ */ tr(dr, e);
1147
+ }
1148
+ const pr = /* @__PURE__ */ f("ZodMiniURL", (e, t) => {
1149
+ Et.init(e, t), re.init(e, t);
1150
+ });
1151
+ // @__NO_SIDE_EFFECTS__
1152
+ function j(e) {
1153
+ return /* @__PURE__ */ rr(pr, e);
1154
+ }
1155
+ const hr = /* @__PURE__ */ f("ZodMiniNumber", (e, t) => {
1156
+ It.init(e, t), _.init(e, t);
1157
+ });
1158
+ // @__NO_SIDE_EFFECTS__
1159
+ function fr(e) {
1160
+ return /* @__PURE__ */ ar(hr, e);
1161
+ }
1162
+ const gr = /* @__PURE__ */ f("ZodMiniBoolean", (e, t) => {
1163
+ At.init(e, t), _.init(e, t);
1164
+ });
1165
+ // @__NO_SIDE_EFFECTS__
1166
+ function ge(e) {
1167
+ return /* @__PURE__ */ or(gr, e);
1168
+ }
1169
+ const mr = /* @__PURE__ */ f("ZodMiniUnknown", (e, t) => {
1170
+ Rt.init(e, t), _.init(e, t);
1171
+ });
1172
+ // @__NO_SIDE_EFFECTS__
1173
+ function wr() {
1174
+ return /* @__PURE__ */ ir(mr);
1175
+ }
1176
+ const br = /* @__PURE__ */ f("ZodMiniArray", (e, t) => {
1177
+ Dt.init(e, t), _.init(e, t);
1178
+ });
1179
+ // @__NO_SIDE_EFFECTS__
1180
+ function P(e, t) {
1181
+ return new br({
1182
+ type: "array",
1183
+ element: e,
1184
+ ...$(t)
1185
+ });
1186
+ }
1187
+ const je = /* @__PURE__ */ f("ZodMiniObject", (e, t) => {
1188
+ Bt.init(e, t), _.init(e, t), k(e, "shape", () => t.shape);
1189
+ });
1190
+ // @__NO_SIDE_EFFECTS__
1191
+ function N(e, t) {
1192
+ const r = {
1193
+ type: "object",
1194
+ shape: e ?? {},
1195
+ ...$(t)
1196
+ };
1197
+ return new je(r);
1198
+ }
1199
+ // @__NO_SIDE_EFFECTS__
1200
+ function R(e, t) {
1201
+ return new je({
1202
+ type: "object",
1203
+ shape: e,
1204
+ catchall: /* @__PURE__ */ wr(),
1205
+ ...$(t)
1206
+ });
1207
+ }
1208
+ const vr = /* @__PURE__ */ f("ZodMiniEnum", (e, t) => {
1209
+ Vt.init(e, t), _.init(e, t), e.options = Object.values(t.entries);
1210
+ });
1211
+ // @__NO_SIDE_EFFECTS__
1212
+ function yr(e, t) {
1213
+ const r = Array.isArray(e) ? Object.fromEntries(e.map((n) => [n, n])) : e;
1214
+ return new vr({
1215
+ type: "enum",
1216
+ entries: r,
1217
+ ...$(t)
1218
+ });
1219
+ }
1220
+ const xr = /* @__PURE__ */ f("ZodMiniTransform", (e, t) => {
1221
+ Wt.init(e, t), _.init(e, t);
1222
+ });
1223
+ // @__NO_SIDE_EFFECTS__
1224
+ function kr(e) {
1225
+ return new xr({
1226
+ type: "transform",
1227
+ transform: e
1228
+ });
1229
+ }
1230
+ const _r = /* @__PURE__ */ f("ZodMiniOptional", (e, t) => {
1231
+ Ht.init(e, t), _.init(e, t);
1232
+ });
1233
+ // @__NO_SIDE_EFFECTS__
1234
+ function u(e) {
1235
+ return new _r({
1236
+ type: "optional",
1237
+ innerType: e
1238
+ });
1239
+ }
1240
+ const zr = /* @__PURE__ */ f("ZodMiniDefault", (e, t) => {
1241
+ Jt.init(e, t), _.init(e, t);
1242
+ });
1243
+ // @__NO_SIDE_EFFECTS__
1244
+ function v(e, t) {
1245
+ return new zr({
1246
+ type: "default",
1247
+ innerType: e,
1248
+ get defaultValue() {
1249
+ return typeof t == "function" ? t() : xe(t);
1250
+ }
1251
+ });
1252
+ }
1253
+ const $r = /* @__PURE__ */ f("ZodMiniPrefault", (e, t) => {
1254
+ Yt.init(e, t), _.init(e, t);
1255
+ });
1256
+ // @__NO_SIDE_EFFECTS__
1257
+ function Y(e, t) {
1258
+ return new $r({
1259
+ type: "prefault",
1260
+ innerType: e,
1261
+ get defaultValue() {
1262
+ return typeof t == "function" ? t() : xe(t);
1263
+ }
1264
+ });
1265
+ }
1266
+ const Sr = /* @__PURE__ */ f("ZodMiniCatch", (e, t) => {
1267
+ qt.init(e, t), _.init(e, t);
1268
+ });
1269
+ // @__NO_SIDE_EFFECTS__
1270
+ function Zr(e, t) {
1271
+ return new Sr({
1272
+ type: "catch",
1273
+ innerType: e,
1274
+ catchValue: (() => t)
1275
+ });
1276
+ }
1277
+ const Pr = /* @__PURE__ */ f("ZodMiniPipe", (e, t) => {
1278
+ Kt.init(e, t), _.init(e, t);
1279
+ });
1280
+ // @__NO_SIDE_EFFECTS__
1281
+ function jr(e, t) {
1282
+ return new Pr({
1283
+ type: "pipe",
1284
+ in: e,
1285
+ out: t
1286
+ });
1287
+ }
1288
+ const Mr = /* @__PURE__ */ f("ZodMiniCustom", (e, t) => {
1289
+ Gt.init(e, t), _.init(e, t);
1290
+ });
1291
+ // @__NO_SIDE_EFFECTS__
1292
+ function Me(e, t = {}) {
1293
+ return /* @__PURE__ */ lr(Mr, e, t);
1294
+ }
1295
+ const Nr = /* @__PURE__ */ f("ZodMiniISODate", (e, t) => {
1296
+ Lt.init(e, t), re.init(e, t);
1297
+ });
1298
+ // @__NO_SIDE_EFFECTS__
1299
+ function Or(e) {
1300
+ return /* @__PURE__ */ nr(Nr, e);
1301
+ }
1302
+ const Cr = /* @__PURE__ */ N({
1303
+ ui: /* @__PURE__ */ Y(
1304
+ /* @__PURE__ */ N({
1305
+ primary: /* @__PURE__ */ v(/* @__PURE__ */ h(), "#c80044"),
1306
+ headerFrom: /* @__PURE__ */ v(/* @__PURE__ */ h(), "#0271bf"),
1307
+ headerTo: /* @__PURE__ */ v(/* @__PURE__ */ h(), "#c80044"),
1308
+ footerFrom: /* @__PURE__ */ v(/* @__PURE__ */ h(), "#0271bf"),
1309
+ footerTo: /* @__PURE__ */ v(/* @__PURE__ */ h(), "#003d68"),
1310
+ backgroundTilesSeed: /* @__PURE__ */ v(/* @__PURE__ */ fr(), 1),
1311
+ showFavicons: /* @__PURE__ */ v(/* @__PURE__ */ ge(), !0),
1312
+ cta: /* @__PURE__ */ u(
1313
+ /* @__PURE__ */ N({
1314
+ text: /* @__PURE__ */ h(),
1315
+ url: /* @__PURE__ */ h(),
1316
+ icon: /* @__PURE__ */ v(
1317
+ /* @__PURE__ */ u((/* @__PURE__ */ h()).check(/* @__PURE__ */ cr(/^[a-z]+:[a-z-]+$/))),
1318
+ "tabler:message-circle"
1319
+ )
1320
+ })
1321
+ ),
1322
+ contactLinks: /* @__PURE__ */ v(/* @__PURE__ */ P(/* @__PURE__ */ h()), [
1323
+ "phone",
1324
+ "email",
1325
+ "location",
1326
+ "profiles"
1327
+ ])
1328
+ }),
1329
+ {}
1330
+ ),
1331
+ seo: /* @__PURE__ */ Y(
1332
+ /* @__PURE__ */ N({
1333
+ title: /* @__PURE__ */ u(/* @__PURE__ */ h()),
1334
+ description: /* @__PURE__ */ u(/* @__PURE__ */ h()),
1335
+ canonical: /* @__PURE__ */ u(/* @__PURE__ */ j()),
1336
+ ogImage: /* @__PURE__ */ u(/* @__PURE__ */ j()),
1337
+ twitterImage: /* @__PURE__ */ u(/* @__PURE__ */ j()),
1338
+ firstName: /* @__PURE__ */ u(/* @__PURE__ */ h()),
1339
+ lastName: /* @__PURE__ */ u(/* @__PURE__ */ h()),
1340
+ robots: /* @__PURE__ */ v(/* @__PURE__ */ u(/* @__PURE__ */ h()), "index, follow")
1341
+ }),
1342
+ {}
1343
+ ),
1344
+ modest: /* @__PURE__ */ v(/* @__PURE__ */ ge(), !1)
1345
+ }), A = (/* @__PURE__ */ h()).check(/* @__PURE__ */ Me((e) => !isNaN(new Date(e).getTime()))), Tr = /* @__PURE__ */ jr(
1346
+ (/* @__PURE__ */ R({
1347
+ name: /* @__PURE__ */ u(/* @__PURE__ */ h()),
1348
+ company: /* @__PURE__ */ u(/* @__PURE__ */ h()),
1349
+ location: /* @__PURE__ */ u(/* @__PURE__ */ h()),
1350
+ description: /* @__PURE__ */ u(/* @__PURE__ */ h()),
1351
+ position: /* @__PURE__ */ u(/* @__PURE__ */ h()),
1352
+ url: /* @__PURE__ */ u(/* @__PURE__ */ j()),
1353
+ startDate: A,
1354
+ endDate: /* @__PURE__ */ u(A),
1355
+ summary: /* @__PURE__ */ u(/* @__PURE__ */ h()),
1356
+ highlights: /* @__PURE__ */ u(/* @__PURE__ */ P(/* @__PURE__ */ h())),
1357
+ logo: /* @__PURE__ */ u(/* @__PURE__ */ j())
1358
+ })).check(
1359
+ /* @__PURE__ */ Me(({ name: e, company: t }) => !!(e || t), {
1360
+ path: ["name"],
1361
+ message: "Either 'name' or 'company' must be provided."
1362
+ })
1363
+ ),
1364
+ /* @__PURE__ */ kr(({ company: e, name: t, ...r }) => ({
1365
+ ...r,
1366
+ name: t ?? e
1367
+ }))
1368
+ ), Er = /* @__PURE__ */ R({
1369
+ network: /* @__PURE__ */ h(),
1370
+ username: /* @__PURE__ */ u(/* @__PURE__ */ h()),
1371
+ url: /* @__PURE__ */ u(/* @__PURE__ */ j())
1372
+ }), Lr = /* @__PURE__ */ R({
1373
+ address: /* @__PURE__ */ u(/* @__PURE__ */ h()),
1374
+ postalCode: /* @__PURE__ */ u(/* @__PURE__ */ h()),
1375
+ city: /* @__PURE__ */ u(/* @__PURE__ */ h()),
1376
+ countryCode: /* @__PURE__ */ u((/* @__PURE__ */ h()).check(/* @__PURE__ */ sr(2))),
1377
+ region: /* @__PURE__ */ u(/* @__PURE__ */ h())
1378
+ }), Ir = /* @__PURE__ */ R({
1379
+ name: /* @__PURE__ */ h(),
1380
+ label: /* @__PURE__ */ u(/* @__PURE__ */ h()),
1381
+ image: /* @__PURE__ */ u(/* @__PURE__ */ j()),
1382
+ email: /* @__PURE__ */ u(/* @__PURE__ */ ur()),
1383
+ phone: /* @__PURE__ */ u(/* @__PURE__ */ h()),
1384
+ birthDate: /* @__PURE__ */ u(A),
1385
+ url: /* @__PURE__ */ u(/* @__PURE__ */ j()),
1386
+ summary: /* @__PURE__ */ u(/* @__PURE__ */ h()),
1387
+ location: /* @__PURE__ */ u(Lr),
1388
+ profiles: /* @__PURE__ */ u(/* @__PURE__ */ P(Er))
1389
+ }), Ar = /* @__PURE__ */ N({
1390
+ institution: /* @__PURE__ */ h(),
1391
+ url: /* @__PURE__ */ u(/* @__PURE__ */ j()),
1392
+ area: /* @__PURE__ */ u(/* @__PURE__ */ h()),
1393
+ studyType: /* @__PURE__ */ u(/* @__PURE__ */ h()),
1394
+ startDate: A,
1395
+ endDate: /* @__PURE__ */ u(A),
1396
+ score: /* @__PURE__ */ u(/* @__PURE__ */ h()),
1397
+ courses: /* @__PURE__ */ u(/* @__PURE__ */ P(/* @__PURE__ */ h()))
1398
+ }), Rr = /* @__PURE__ */ N({
1399
+ name: /* @__PURE__ */ h(),
1400
+ date: /* @__PURE__ */ u(A),
1401
+ url: /* @__PURE__ */ u(/* @__PURE__ */ j()),
1402
+ issuer: /* @__PURE__ */ u(/* @__PURE__ */ h())
1403
+ }), Dr = /* @__PURE__ */ N({
1404
+ name: /* @__PURE__ */ h(),
1405
+ level: /* @__PURE__ */ u(/* @__PURE__ */ h()),
1406
+ keywords: /* @__PURE__ */ u(/* @__PURE__ */ P(/* @__PURE__ */ h()))
1407
+ }), Fr = /* @__PURE__ */ R({
1408
+ language: /* @__PURE__ */ h(),
1409
+ fluency: /* @__PURE__ */ u(/* @__PURE__ */ h())
1410
+ }), Ur = /* @__PURE__ */ N({
1411
+ meta: /* @__PURE__ */ Y(
1412
+ /* @__PURE__ */ R({
1413
+ lang: /* @__PURE__ */ v(/* @__PURE__ */ Zr(/* @__PURE__ */ yr(["en", "fr"]), "en"), "en"),
1414
+ lastModified: /* @__PURE__ */ v(/* @__PURE__ */ Or(), () => (/* @__PURE__ */ new Date()).toISOString()),
1415
+ themeConfig: /* @__PURE__ */ Y(Cr, {})
1416
+ }),
1417
+ {}
1418
+ ),
1419
+ work: /* @__PURE__ */ v(/* @__PURE__ */ u(/* @__PURE__ */ P(Tr)), []),
1420
+ basics: Ir,
1421
+ education: /* @__PURE__ */ v(/* @__PURE__ */ u(/* @__PURE__ */ P(Ar)), []),
1422
+ certificates: /* @__PURE__ */ v(/* @__PURE__ */ u(/* @__PURE__ */ P(Rr)), []),
1423
+ skills: /* @__PURE__ */ v(/* @__PURE__ */ u(/* @__PURE__ */ P(Dr)), []),
1424
+ languages: /* @__PURE__ */ v(/* @__PURE__ */ u(/* @__PURE__ */ P(Fr)), [])
1425
+ });
1426
+ function F({ date: e, children: t, ...r }) {
1427
+ const n = C.normalize(e);
1428
+ return n ? /* @__PURE__ */ c("time", { dateTime: C.toISO(n), ...r, children: t }) : /* @__PURE__ */ c("span", { ...r, children: t });
1429
+ }
1430
+ function ne({ name: e, children: t, ...r }) {
1431
+ return /* @__PURE__ */ m("section", { ...r, children: [
1432
+ e && /* @__PURE__ */ c("h2", { className: "before:bg-primary relative mt-4 mb-4 text-2xl before:absolute before:-bottom-1 before:left-0 before:h-1 before:w-[3ch] before:rounded-[0_0.25rem_0.25rem_0] before:print:[print-color-adjust:exact]", children: e }),
1433
+ t
1434
+ ] });
1435
+ }
1436
+ function Br({ education: e, certificates: t }) {
1437
+ const r = e && e.length > 0, n = t && t.length > 0;
1438
+ return !r && !n ? null : /* @__PURE__ */ m(ne, { name: Z("education"), className: "break-inside-avoid", children: [
1439
+ e?.map((a, o) => /* @__PURE__ */ m("article", { className: "mb-4 break-inside-avoid", children: [
1440
+ /* @__PURE__ */ m("h3", { className: "text-lg font-bold", children: [
1441
+ a.studyType,
1442
+ " : ",
1443
+ a.area
1444
+ ] }),
1445
+ /* @__PURE__ */ m("p", { children: [
1446
+ a.institution,
1447
+ " (",
1448
+ a.startDate && /* @__PURE__ */ c(F, { date: a.startDate, children: C.format(a.startDate, "year") }),
1449
+ ")"
1450
+ ] })
1451
+ ] }, `edu-${o}`)),
1452
+ r && n && /* @__PURE__ */ c("br", {}),
1453
+ t?.map((a, o) => /* @__PURE__ */ m("article", { className: "mb-4 break-inside-avoid", children: [
1454
+ /* @__PURE__ */ c("h3", { className: "text-lg font-bold", children: a.name }),
1455
+ /* @__PURE__ */ m("p", { children: [
1456
+ a.issuer,
1457
+ " (",
1458
+ a.date && /* @__PURE__ */ c(F, { date: a.date, children: C.format(a.date, "year") }),
1459
+ ")"
1460
+ ] })
1461
+ ] }, `cert-${o}`))
1462
+ ] });
1463
+ }
1464
+ const Vr = ({
1465
+ text: e,
1466
+ url: t,
1467
+ icon: r = "tabler:message-circle",
1468
+ ...n
1469
+ }) => /* @__PURE__ */ m(q, { children: [
1470
+ /* @__PURE__ */ m(
1471
+ "a",
1472
+ {
1473
+ href: t,
1474
+ target: "_blank",
1475
+ rel: "noopener noreferrer",
1476
+ id: "cta-fab",
1477
+ className: "fab--extended group fixed right-8 bottom-8 z-20 inline-flex items-center space-x-2 rounded-full bg-black/80 p-4 text-lg whitespace-nowrap text-white shadow-md backdrop-blur-sm transition-colors hover:bg-black dark:bg-gray-700 dark:text-white print:hidden",
1478
+ ...n,
1479
+ children: [
1480
+ /* @__PURE__ */ c("span", { className: "shrink-0", children: T(r) }),
1481
+ /* @__PURE__ */ c("span", { className: "-mr-2 max-w-0 overflow-hidden text-transparent transition-all duration-300 ease-in-out group-hover:mr-0 group-hover:max-w-96 group-hover:text-inherit group-focus:mr-0 group-focus:max-w-96 group-focus:text-inherit group-[.fab--extended]:mr-0 group-[.fab--extended]:max-w-96 group-[.fab--extended]:text-inherit", children: e })
1482
+ ]
1483
+ }
1484
+ ),
1485
+ /* @__PURE__ */ c(
1486
+ "script",
1487
+ {
1488
+ dangerouslySetInnerHTML: {
1489
+ __html: `(${Wr.toString()})();`
1490
+ }
1491
+ }
1492
+ )
1493
+ ] }), Wr = () => {
1494
+ const e = document.getElementById("cta-fab");
1495
+ if (!e || window.matchMedia(
1496
+ "(prefers-reduced-motion: reduce)"
1497
+ ).matches) return;
1498
+ let r = window.pageYOffset || document.documentElement.scrollTop;
1499
+ const n = 15, a = () => {
1500
+ const o = window.pageYOffset || document.documentElement.scrollTop, i = o - r;
1501
+ Math.abs(i) > n && (i > 0 ? e.classList.remove("fab--extended") : e.classList.add("fab--extended"), r = Math.max(o, 0));
1502
+ };
1503
+ window.addEventListener("scroll", a, { passive: !0 });
1504
+ };
1505
+ function Hr({ meta: e, ...t }) {
1506
+ const r = e.lastModified;
1507
+ return /* @__PURE__ */ m(
1508
+ "footer",
1509
+ {
1510
+ className: "bg-svg-tiles from-footer-from to-footer-to -z-10 -mt-10 h-32 content-center bg-cover bg-center pt-12 pb-2 text-center text-sm text-white dark:opacity-90 dark:contrast-125 dark:saturate-50 print:hidden",
1511
+ ...t,
1512
+ children: [
1513
+ /* @__PURE__ */ c("div", { children: ie("last_modified", {
1514
+ date: /* @__PURE__ */ c(F, { date: r, children: C.format(r, "date") })
1515
+ }) }),
1516
+ /* @__PURE__ */ c("div", { className: "mt-1 text-xs opacity-75", children: !e.themeConfig.modest && ie("theme_credit", {
1517
+ link: /* @__PURE__ */ c(
1518
+ "a",
1519
+ {
1520
+ href: "https://www.cjean.fr",
1521
+ target: "_blank",
1522
+ className: "underline decoration-white/30 underline-offset-2 transition-colors hover:decoration-white/80",
1523
+ children: "Christophe Jean"
1524
+ }
1525
+ )
1526
+ }) })
1527
+ ]
1528
+ }
1529
+ );
1530
+ }
1531
+ const Jr = () => /* @__PURE__ */ c(
1532
+ "header",
1533
+ {
1534
+ className: "bg-primary bg-svg-tiles from-header-from to-header-to h-2.5 bg-cover bg-center shadow-inner md:-mb-60 md:h-80 dark:opacity-90 dark:contrast-125 dark:saturate-50 print:hidden",
1535
+ "aria-hidden": "true"
1536
+ }
1537
+ );
1538
+ function Yr(e) {
1539
+ return {
1540
+ "@context": "https://schema.org",
1541
+ "@type": "ProfilePage",
1542
+ name: e.basics.label ? Z("profile_page_name", {
1543
+ name: e.basics.name,
1544
+ label: e.basics.label
1545
+ }) : e.basics.name,
1546
+ description: e.basics.summary,
1547
+ dateModified: e.meta.lastModified,
1548
+ mainEntity: {
1549
+ "@type": "Person",
1550
+ name: e.basics.name,
1551
+ birthDate: e.basics.birthDate,
1552
+ jobTitle: e.basics.label,
1553
+ url: e.basics.url,
1554
+ description: e.basics.summary,
1555
+ image: e.basics.image,
1556
+ email: e.basics.email,
1557
+ telephone: e.basics.phone,
1558
+ address: {
1559
+ "@type": "PostalAddress",
1560
+ addressLocality: e.basics.location?.city,
1561
+ addressRegion: e.basics.location?.region,
1562
+ postalCode: e.basics.location?.postalCode,
1563
+ addressCountry: e.basics.location?.countryCode
1564
+ },
1565
+ alumniOf: e.education.map((t) => ({
1566
+ "@type": "EducationalOrganization",
1567
+ name: t.institution,
1568
+ url: t.url
1569
+ })),
1570
+ worksFor: e.work.map((t) => ({
1571
+ "@type": "Organization",
1572
+ name: t.name,
1573
+ location: t.location,
1574
+ member: {
1575
+ "@type": "OrganizationRole",
1576
+ roleName: t.position
1577
+ },
1578
+ url: t.url
1579
+ })),
1580
+ sameAs: e.basics.profiles?.map((t) => t.url),
1581
+ knowsAbout: e.skills.flatMap((t) => t.keywords)
1582
+ }
1583
+ };
1584
+ }
1585
+ function qr({ resume: e }) {
1586
+ return /* @__PURE__ */ c(
1587
+ "script",
1588
+ {
1589
+ type: "application/ld+json",
1590
+ dangerouslySetInnerHTML: {
1591
+ __html: JSON.stringify(Yr(e))
1592
+ }
1593
+ }
1594
+ );
1595
+ }
1596
+ function Kr(e) {
1597
+ const [t, ...r] = e.split(" ");
1598
+ return {
1599
+ firstNameSlice: t,
1600
+ lastNameSlice: r.join(" ")
1601
+ };
1602
+ }
1603
+ function Gr({
1604
+ title: e,
1605
+ description: t,
1606
+ canonical: r,
1607
+ robots: n
1608
+ }) {
1609
+ return /* @__PURE__ */ m(q, { children: [
1610
+ /* @__PURE__ */ c("title", { children: e }),
1611
+ t && /* @__PURE__ */ c("meta", { name: "description", content: t }),
1612
+ /* @__PURE__ */ c("meta", { name: "robots", content: n || "index, follow" }),
1613
+ r && /* @__PURE__ */ c("link", { rel: "canonical", href: r })
1614
+ ] });
1615
+ }
1616
+ function Qr({
1617
+ title: e,
1618
+ description: t,
1619
+ url: r,
1620
+ image: n,
1621
+ firstName: a,
1622
+ lastName: o
1623
+ }) {
1624
+ return /* @__PURE__ */ m(q, { children: [
1625
+ /* @__PURE__ */ c("meta", { property: "og:type", content: "profile" }),
1626
+ /* @__PURE__ */ c("meta", { property: "og:title", content: e }),
1627
+ t && /* @__PURE__ */ c("meta", { property: "og:description", content: t }),
1628
+ a && /* @__PURE__ */ c("meta", { property: "profile:first_name", content: a }),
1629
+ o && /* @__PURE__ */ c("meta", { property: "profile:last_name", content: o }),
1630
+ n && /* @__PURE__ */ c("meta", { property: "og:image", content: n }),
1631
+ r && /* @__PURE__ */ c("meta", { property: "og:url", content: r })
1632
+ ] });
1633
+ }
1634
+ function Xr({
1635
+ title: e,
1636
+ description: t,
1637
+ url: r,
1638
+ image: n
1639
+ }) {
1640
+ return /* @__PURE__ */ m(q, { children: [
1641
+ /* @__PURE__ */ c("meta", { property: "twitter:card", content: "summary_large_image" }),
1642
+ /* @__PURE__ */ c("meta", { property: "twitter:title", content: e }),
1643
+ t && /* @__PURE__ */ c("meta", { property: "twitter:description", content: t }),
1644
+ n && /* @__PURE__ */ c("meta", { property: "twitter:image", content: n }),
1645
+ r && /* @__PURE__ */ c("meta", { property: "twitter:url", content: r })
1646
+ ] });
1647
+ }
1648
+ function en({ skills: e, ...t }) {
1649
+ return !e || e.length === 0 ? null : /* @__PURE__ */ c(ne, { name: Z("skills"), ...t, children: e.map((r) => /* @__PURE__ */ m("div", { className: "mb-4 break-inside-avoid", children: [
1650
+ /* @__PURE__ */ c("h3", { className: "text-lg font-bold", children: r.name }),
1651
+ /* @__PURE__ */ c("ul", { className: "my-3 flex flex-wrap gap-2 leading-8", children: r.keywords?.map((n) => /* @__PURE__ */ c(
1652
+ "li",
1653
+ {
1654
+ className: "inline-flex items-center rounded-md bg-gray-50 px-2 py-1 text-sm font-medium text-gray-600 inset-ring inset-ring-gray-500/10 dark:bg-slate-800 dark:text-slate-300 dark:inset-ring-white/10",
1655
+ children: n
1656
+ },
1657
+ n
1658
+ )) })
1659
+ ] }, r.name)) });
1660
+ }
1661
+ function tn({
1662
+ works: e,
1663
+ showFavicons: t
1664
+ }) {
1665
+ return !e || e.length === 0 ? null : /* @__PURE__ */ c(ne, { name: Z("work_experience"), children: /* @__PURE__ */ c(
1666
+ "ol",
1667
+ {
1668
+ className: "relative list-none border-gray-200 md:ml-4 md:border-l-[5px] md:pl-6 dark:border-slate-700/50",
1669
+ reversed: !0,
1670
+ children: e.map((r) => /* @__PURE__ */ m("li", { className: "break-inside-avoid", children: [
1671
+ /* @__PURE__ */ m("div", { className: "before:border-primary relative text-gray-500 before:absolute before:top-0 before:-left-[calc(1.5rem+2.5px)] before:hidden before:h-[19px] before:w-[19px] before:-translate-x-1/2 before:rounded-full before:border-4 before:bg-white md:before:block dark:text-slate-400 dark:before:bg-slate-900", children: [
1672
+ /* @__PURE__ */ c(F, { date: r.startDate, children: C.format(r.startDate, "month") }),
1673
+ " — ",
1674
+ r.endDate ? /* @__PURE__ */ c(F, { date: r.endDate, children: C.format(r.endDate, "month") }) : Z("present")
1675
+ ] }),
1676
+ /* @__PURE__ */ m("article", { children: [
1677
+ /* @__PURE__ */ m(
1678
+ "header",
1679
+ {
1680
+ className: `grid grid-cols-[auto_1fr] ${t && r.logo ? "gap-x-3" : ""}`,
1681
+ children: [
1682
+ t && r.logo ? /* @__PURE__ */ c(
1683
+ "img",
1684
+ {
1685
+ src: r.logo,
1686
+ alt: r.name,
1687
+ width: "64",
1688
+ height: "64",
1689
+ className: "row-span-2 h-12 w-12 object-contain",
1690
+ loading: "lazy"
1691
+ }
1692
+ ) : null,
1693
+ /* @__PURE__ */ c("h3", { className: "col-start-2 text-xl font-semibold", children: r.position }),
1694
+ /* @__PURE__ */ m("div", { className: "col-start-2", children: [
1695
+ r.url ? /* @__PURE__ */ c(
1696
+ "a",
1697
+ {
1698
+ href: r.url,
1699
+ target: "_blank",
1700
+ rel: "noopener noreferrer",
1701
+ translate: "no",
1702
+ children: r.name
1703
+ }
1704
+ ) : /* @__PURE__ */ c("span", { translate: "no", children: r.name }),
1705
+ " - ",
1706
+ /* @__PURE__ */ c("small", { children: r.description })
1707
+ ] })
1708
+ ]
1709
+ }
1710
+ ),
1711
+ /* @__PURE__ */ c("ul", { className: "m-2 mb-6 list-inside list-disc", children: r.highlights?.map((n) => /* @__PURE__ */ c("li", { children: n }, n)) })
1712
+ ] })
1713
+ ] }, r.name))
1714
+ }
1715
+ ) });
1716
+ }
1717
+ const rn = ({ resume: e, css: t, ...r }) => {
1718
+ const { basics: n, work: a, education: o, certificates: i, skills: s, meta: l } = e, { ui: d, seo: p, modest: w } = l.themeConfig, g = Xe({
1719
+ seed: d.backgroundTilesSeed,
1720
+ cellSize: 60,
1721
+ variance: 0.8
1722
+ }), b = p.title || (n.label ? `${n.name} - ${n.label}` : n.name), y = p.description || n.summary, S = p.canonical || n.url, { firstNameSlice: M, lastNameSlice: Q } = Kr(n.name);
1723
+ return /* @__PURE__ */ m("html", { lang: l.lang, children: [
1724
+ /* @__PURE__ */ m("head", { children: [
1725
+ /* @__PURE__ */ c("meta", { charSet: "UTF-8" }),
1726
+ /* @__PURE__ */ c("meta", { name: "viewport", content: "width=device-width, initial-scale=1.0" }),
1727
+ /* @__PURE__ */ c("meta", { name: "theme-color", content: d.primary }),
1728
+ !w && /* @__PURE__ */ c("meta", { name: "generator", content: "JSON Resume Theme CJEAN" }),
1729
+ /* @__PURE__ */ c(
1730
+ Gr,
1731
+ {
1732
+ title: b,
1733
+ description: y,
1734
+ canonical: S,
1735
+ robots: p.robots
1736
+ }
1737
+ ),
1738
+ /* @__PURE__ */ c(
1739
+ Qr,
1740
+ {
1741
+ title: b,
1742
+ description: y,
1743
+ url: S,
1744
+ image: p.ogImage || n.image,
1745
+ firstName: p.firstName || M,
1746
+ lastName: p.lastName || Q
1747
+ }
1748
+ ),
1749
+ /* @__PURE__ */ c(
1750
+ Xr,
1751
+ {
1752
+ title: b,
1753
+ description: y,
1754
+ url: S,
1755
+ image: p.twitterImage || n.image
1756
+ }
1757
+ ),
1758
+ /* @__PURE__ */ c(
1759
+ "script",
1760
+ {
1761
+ dangerouslySetInnerHTML: {
1762
+ __html: "if (window.matchMedia('(prefers-color-scheme: dark)').matches) document.documentElement.classList.add('dark');"
1763
+ }
1764
+ }
1765
+ ),
1766
+ /* @__PURE__ */ c(
1767
+ "style",
1768
+ {
1769
+ dangerouslySetInnerHTML: {
1770
+ __html: `
1771
+ :root {
1772
+ --theme-primary: ${d.primary};
1773
+ --theme-header-from: ${d.headerFrom};
1774
+ --theme-header-to: ${d.headerTo};
1775
+ --theme-footer-from: ${d.footerFrom};
1776
+ --theme-footer-to: ${d.footerTo};
1777
+ --theme-bg-tiles: url("${g}");
1778
+ }
1779
+ ${t}
1780
+ `
1781
+ }
1782
+ }
1783
+ )
1784
+ ] }),
1785
+ /* @__PURE__ */ m(
1786
+ "body",
1787
+ {
1788
+ className: "bg-gray-200 text-gray-800 dark:bg-slate-950 dark:text-slate-300 print:bg-transparent print:text-sm",
1789
+ ...r,
1790
+ children: [
1791
+ /* @__PURE__ */ c(Jr, {}),
1792
+ /* @__PURE__ */ c(
1793
+ "main",
1794
+ {
1795
+ className: "relative z-10 container mx-auto max-w-5xl rounded bg-white p-4 shadow-md backdrop-blur-3xl md:p-6 dark:bg-slate-900/95 dark:text-slate-200 dark:shadow-2xl dark:ring-1 dark:ring-white/10 print:rounded-none print:shadow-none [&_a]:underline",
1796
+ role: "main",
1797
+ children: /* @__PURE__ */ m("article", { children: [
1798
+ /* @__PURE__ */ c(et, { name: n.name, label: n.label }),
1799
+ /* @__PURE__ */ c(nt, { basics: n, themeConfig: l.themeConfig }),
1800
+ /* @__PURE__ */ m("div", { className: "flex break-inside-avoid flex-wrap justify-center gap-4 sm:flex-nowrap", children: [
1801
+ /* @__PURE__ */ c("div", { className: "relative inline-block", children: /* @__PURE__ */ c(
1802
+ "img",
1803
+ {
1804
+ src: n.image,
1805
+ alt: Z("portrait_alt", { name: n.name }),
1806
+ width: "200",
1807
+ height: "200",
1808
+ className: "relative aspect-square min-w-30 rounded-full object-cover"
1809
+ }
1810
+ ) }),
1811
+ /* @__PURE__ */ c("p", { className: "text-lg print:text-base", children: n.summary })
1812
+ ] }),
1813
+ /* @__PURE__ */ c(tn, { works: a, showFavicons: d.showFavicons }),
1814
+ /* @__PURE__ */ c(Br, { education: o, certificates: i }),
1815
+ /* @__PURE__ */ c(en, { skills: s })
1816
+ ] })
1817
+ }
1818
+ ),
1819
+ /* @__PURE__ */ c(Hr, { meta: l }),
1820
+ d.cta && /* @__PURE__ */ c(
1821
+ Vr,
1822
+ {
1823
+ text: d.cta.text,
1824
+ url: d.cta.url,
1825
+ icon: d.cta.icon
1826
+ }
1827
+ ),
1828
+ /* @__PURE__ */ c(qr, { resume: e }),
1829
+ /* @__PURE__ */ c(
1830
+ "script",
1831
+ {
1832
+ dangerouslySetInnerHTML: {
1833
+ __html: `
1834
+ document.addEventListener('click', (e) => {
1835
+ const card = e.target.closest('.portrait-card');
1836
+ if (card) {
1837
+ card.classList.toggle('rotate-y-180');
1838
+ }
1839
+ });
1840
+ `
1841
+ }
1842
+ }
1843
+ )
1844
+ ]
1845
+ }
1846
+ )
1847
+ ] });
1848
+ };
1849
+ function nn(e, t = 64) {
1850
+ return `https://www.google.com/s2/favicons?domain=${encodeURIComponent(e)}&sz=${t}`;
1851
+ }
1852
+ function an(e, t = {}) {
1853
+ const r = new URL("https://wsrv.nl/");
1854
+ return r.searchParams.set("url", e), t.w && r.searchParams.set("w", t.w.toString()), t.h && r.searchParams.set("h", t.h.toString()), t.output && r.searchParams.set("output", t.output), t.encoding && r.searchParams.set("encoding", t.encoding), t.fit && r.searchParams.set("fit", t.fit), t.a && r.searchParams.set("a", t.a), r.toString();
1855
+ }
1856
+ async function on(e, t = 64) {
1857
+ if (e)
1858
+ try {
1859
+ const r = nn(e, t), n = an(r, {
1860
+ w: t,
1861
+ h: t,
1862
+ output: "webp",
1863
+ encoding: "base64"
1864
+ }), a = await fetch(n);
1865
+ if (!a.ok) {
1866
+ console.warn(n, a);
1867
+ return;
1868
+ }
1869
+ return await a.text();
1870
+ } catch {
1871
+ return;
1872
+ }
1873
+ }
1874
+ const sn = '@layer properties{@supports (((-webkit-hyphens:none)) and (not (margin-trim:inline))) or ((-moz-orient:inline) and (not (color:rgb(from red r g b)))){*,:before,:after,::backdrop{--tw-rotate-x:initial;--tw-rotate-y:initial;--tw-rotate-z:initial;--tw-skew-x:initial;--tw-skew-y:initial;--tw-space-x-reverse:0;--tw-gradient-position:initial;--tw-gradient-from:#0000;--tw-gradient-via:#0000;--tw-gradient-to:#0000;--tw-gradient-stops:initial;--tw-gradient-via-stops:initial;--tw-gradient-from-position:0%;--tw-gradient-via-position:50%;--tw-gradient-to-position:100%;--tw-leading:initial;--tw-font-weight:initial;--tw-tracking:initial;--tw-shadow:0 0 #0000;--tw-shadow-color:initial;--tw-shadow-alpha:100%;--tw-inset-shadow:0 0 #0000;--tw-inset-shadow-color:initial;--tw-inset-shadow-alpha:100%;--tw-ring-color:initial;--tw-ring-shadow:0 0 #0000;--tw-inset-ring-color:initial;--tw-inset-ring-shadow:0 0 #0000;--tw-ring-inset:initial;--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-offset-shadow:0 0 #0000;--tw-backdrop-blur:initial;--tw-backdrop-brightness:initial;--tw-backdrop-contrast:initial;--tw-backdrop-grayscale:initial;--tw-backdrop-hue-rotate:initial;--tw-backdrop-invert:initial;--tw-backdrop-opacity:initial;--tw-backdrop-saturate:initial;--tw-backdrop-sepia:initial;--tw-duration:initial;--tw-ease:initial;--tw-content:"";--tw-translate-x:0;--tw-translate-y:0;--tw-translate-z:0;--tw-border-style:solid;--tw-blur:initial;--tw-brightness:initial;--tw-contrast:initial;--tw-grayscale:initial;--tw-hue-rotate:initial;--tw-invert:initial;--tw-opacity:initial;--tw-saturate:initial;--tw-sepia:initial;--tw-drop-shadow:initial;--tw-drop-shadow-color:initial;--tw-drop-shadow-alpha:100%;--tw-drop-shadow-size:initial;--tw-scale-x:1;--tw-scale-y:1;--tw-scale-z:1}}}@layer theme{:root,:host{--font-sans:ui-sans-serif, system-ui, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji";--font-mono:ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace;--color-slate-200:oklch(92.9% .013 255.508);--color-slate-300:oklch(86.9% .022 252.894);--color-slate-400:oklch(70.4% .04 256.788);--color-slate-700:oklch(37.2% .044 257.287);--color-slate-800:oklch(27.9% .041 260.031);--color-slate-900:oklch(20.8% .042 265.755);--color-slate-950:oklch(12.9% .042 264.695);--color-gray-50:oklch(98.5% .002 247.839);--color-gray-200:oklch(92.8% .006 264.531);--color-gray-500:oklch(55.1% .027 264.364);--color-gray-600:oklch(44.6% .03 256.802);--color-gray-700:oklch(37.3% .034 259.733);--color-gray-800:oklch(27.8% .033 256.848);--color-black:#000;--color-white:#fff;--spacing:.25rem;--container-5xl:64rem;--text-xs:.75rem;--text-xs--line-height:calc(1 / .75);--text-sm:.875rem;--text-sm--line-height:calc(1.25 / .875);--text-base:1rem;--text-base--line-height: 1.5 ;--text-lg:1.125rem;--text-lg--line-height:calc(1.75 / 1.125);--text-xl:1.25rem;--text-xl--line-height:calc(1.75 / 1.25);--text-2xl:1.5rem;--text-2xl--line-height:calc(2 / 1.5);--text-3xl:1.875rem;--text-3xl--line-height: 1.2 ;--text-4xl:2.25rem;--text-4xl--line-height:calc(2.5 / 2.25);--font-weight-medium:500;--font-weight-semibold:600;--font-weight-bold:700;--tracking-widest:.1em;--radius-md:.375rem;--radius-xl:.75rem;--ease-in-out:cubic-bezier(.4, 0, .2, 1);--blur-sm:8px;--blur-3xl:64px;--default-transition-duration:.15s;--default-transition-timing-function:cubic-bezier(.4, 0, .2, 1);--default-font-family:var(--font-sans);--default-mono-font-family:var(--font-mono);--color-primary:var(--theme-primary);--color-header-from:var(--theme-header-from);--color-header-to:var(--theme-header-to);--color-footer-from:var(--theme-footer-from);--color-footer-to:var(--theme-footer-to);--min-width-30:7.5rem}}@layer base{*,:after,:before,::backdrop{box-sizing:border-box;border:0 solid;margin:0;padding:0}::file-selector-button{box-sizing:border-box;border:0 solid;margin:0;padding:0}html,:host{-webkit-text-size-adjust:100%;tab-size:4;line-height:1.5;font-family:var(--default-font-family,ui-sans-serif, system-ui, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji");font-feature-settings:var(--default-font-feature-settings,normal);font-variation-settings:var(--default-font-variation-settings,normal);-webkit-tap-highlight-color:transparent}hr{height:0;color:inherit;border-top-width:1px}abbr:where([title]){-webkit-text-decoration:underline dotted;text-decoration:underline dotted}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;-webkit-text-decoration:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,samp,pre{font-family:var(--default-mono-font-family,ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace);font-feature-settings:var(--default-mono-font-feature-settings,normal);font-variation-settings:var(--default-mono-font-variation-settings,normal);font-size:1em}small{font-size:80%}sub,sup{vertical-align:baseline;font-size:75%;line-height:0;position:relative}sub{bottom:-.25em}sup{top:-.5em}table{text-indent:0;border-color:inherit;border-collapse:collapse}:-moz-focusring{outline:auto}progress{vertical-align:baseline}summary{display:list-item}ol,ul,menu{list-style:none}img,svg,video,canvas,audio,iframe,embed,object{vertical-align:middle;display:block}img,video{max-width:100%;height:auto}button,input,select,optgroup,textarea{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}::file-selector-button{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}:where(select:is([multiple],[size])) optgroup{font-weight:bolder}:where(select:is([multiple],[size])) optgroup option{padding-inline-start:20px}::file-selector-button{margin-inline-end:4px}::placeholder{opacity:1}@supports (not ((-webkit-appearance:-apple-pay-button))) or (contain-intrinsic-size:1px){::placeholder{color:currentColor}@supports (color:color-mix(in lab,red,red)){::placeholder{color:color-mix(in oklab,currentcolor 50%,transparent)}}}textarea{resize:vertical}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-date-and-time-value{min-height:1lh;text-align:inherit}::-webkit-datetime-edit{display:inline-flex}::-webkit-datetime-edit-fields-wrapper{padding:0}::-webkit-datetime-edit{padding-block:0}::-webkit-datetime-edit-year-field{padding-block:0}::-webkit-datetime-edit-month-field{padding-block:0}::-webkit-datetime-edit-day-field{padding-block:0}::-webkit-datetime-edit-hour-field{padding-block:0}::-webkit-datetime-edit-minute-field{padding-block:0}::-webkit-datetime-edit-second-field{padding-block:0}::-webkit-datetime-edit-millisecond-field{padding-block:0}::-webkit-datetime-edit-meridiem-field{padding-block:0}::-webkit-calendar-picker-indicator{line-height:1}:-moz-ui-invalid{box-shadow:none}button,input:where([type=button],[type=reset],[type=submit]){appearance:button}::file-selector-button{appearance:button}::-webkit-inner-spin-button{height:auto}::-webkit-outer-spin-button{height:auto}[hidden]:where(:not([hidden=until-found])){display:none!important}}@layer components{.portrait-card{width:calc(var(--spacing) * 48);height:calc(var(--spacing) * 48);cursor:pointer;transition-property:all;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration));--tw-duration:.2s;-webkit-user-select:none;user-select:none;transform-style:preserve-3d;flex-shrink:0;transition-duration:.2s;position:relative}@media(min-width:48rem){.portrait-card{width:calc(var(--spacing) * 32);height:calc(var(--spacing) * 32)}}@media(hover:hover){.portrait-card:hover{--tw-scale-x:105%;--tw-scale-y:105%;--tw-scale-z:105%;scale:var(--tw-scale-x) var(--tw-scale-y)}}.portrait-card:active{--tw-scale-x:95%;--tw-scale-y:95%;--tw-scale-z:95%;scale:var(--tw-scale-x) var(--tw-scale-y)}.portrait-card.rotate-y-180{--tw-scale-x:125%;--tw-scale-y:125%;--tw-scale-z:125%;scale:var(--tw-scale-x) var(--tw-scale-y)}.portrait-card__side{inset:calc(var(--spacing) * 0);border-style:var(--tw-border-style);border-width:4px;border-color:var(--color-white);--tw-shadow:0 10px 15px -3px var(--tw-shadow-color,#0000001a), 0 4px 6px -4px var(--tw-shadow-color,#0000001a);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow);transition-property:transform,translate,scale,rotate;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration));--tw-duration:.7s;backface-visibility:hidden;transition-duration:.7s;position:absolute}.portrait-card__side:where(.dark,.dark *){border-color:var(--color-slate-800)}.portrait-card__front{object-fit:cover;border-radius:3.40282e38px}.portrait-card__back{--tw-rotate-y:rotateY(180deg);transform:var(--tw-rotate-x,) var(--tw-rotate-y,) var(--tw-rotate-z,) var(--tw-skew-x,) var(--tw-skew-y,);border-radius:var(--radius-xl);background-color:var(--color-white);padding:calc(var(--spacing) * .5);justify-content:center;align-items:center;display:flex}@media print{.portrait-card__back{display:none}}.portrait-card__back img{object-fit:contain;width:100%;height:100%}}@layer utilities{.fixed{position:fixed}.relative{position:relative}.start{inset-inline-start:var(--spacing)}.end{inset-inline-end:var(--spacing)}.right-8{right:calc(var(--spacing) * 8)}.bottom-8{bottom:calc(var(--spacing) * 8)}.-z-10{z-index:-10}.z-10{z-index:10}.z-20{z-index:20}.col-start-2{grid-column-start:2}.row-span-2{grid-row:span 2/span 2}.container{width:100%}@media(min-width:40rem){.container{max-width:40rem}}@media(min-width:48rem){.container{max-width:48rem}}@media(min-width:64rem){.container{max-width:64rem}}@media(min-width:80rem){.container{max-width:80rem}}@media(min-width:96rem){.container{max-width:96rem}}.m-2{margin:calc(var(--spacing) * 2)}.mx-auto{margin-inline:auto}.my-3{margin-block:calc(var(--spacing) * 3)}.-mt-10{margin-top:calc(var(--spacing) * -10)}.mt-1{margin-top:calc(var(--spacing) * 1)}.mt-4{margin-top:calc(var(--spacing) * 4)}.-mr-2{margin-right:calc(var(--spacing) * -2)}.mb-4{margin-bottom:calc(var(--spacing) * 4)}.mb-6{margin-bottom:calc(var(--spacing) * 6)}.flex{display:flex}.grid{display:grid}.inline-block{display:inline-block}.inline-flex{display:inline-flex}.aspect-square{aspect-ratio:1}.h-2\\.5{height:calc(var(--spacing) * 2.5)}.h-12{height:calc(var(--spacing) * 12)}.h-32{height:calc(var(--spacing) * 32)}.w-12{width:calc(var(--spacing) * 12)}.max-w-0{max-width:calc(var(--spacing) * 0)}.max-w-5xl{max-width:var(--container-5xl)}.min-w-30{min-width:var(--min-width-30)}.flex-1{flex:1}.shrink-0{flex-shrink:0}.grow{flex-grow:1}.rotate-y-180{--tw-rotate-y:rotateY(180deg);transform:var(--tw-rotate-x,) var(--tw-rotate-y,) var(--tw-rotate-z,) var(--tw-skew-x,) var(--tw-skew-y,)}.list-inside{list-style-position:inside}.list-disc{list-style-type:disc}.list-none{list-style-type:none}.break-inside-avoid{break-inside:avoid}.grid-cols-\\[auto_1fr\\]{grid-template-columns:auto 1fr}.flex-wrap{flex-wrap:wrap}.content-center{align-content:center}.items-center{align-items:center}.justify-center{justify-content:center}.gap-2{gap:calc(var(--spacing) * 2)}.gap-4{gap:calc(var(--spacing) * 4)}.gap-x-1{column-gap:calc(var(--spacing) * 1)}.gap-x-3{column-gap:calc(var(--spacing) * 3)}.gap-x-\\[2ch\\]{column-gap:2ch}:where(.space-x-2>:not(:last-child)){--tw-space-x-reverse:0;margin-inline-start:calc(calc(var(--spacing) * 2) * var(--tw-space-x-reverse));margin-inline-end:calc(calc(var(--spacing) * 2) * calc(1 - var(--tw-space-x-reverse)))}.gap-y-2{row-gap:calc(var(--spacing) * 2)}.overflow-hidden{overflow:hidden}.rounded{border-radius:.25rem}.rounded-full{border-radius:3.40282e38px}.rounded-md{border-radius:var(--radius-md)}.border-gray-200{border-color:var(--color-gray-200)}.bg-black\\/80{background-color:#000c}@supports (color:color-mix(in lab,red,red)){.bg-black\\/80{background-color:color-mix(in oklab,var(--color-black) 80%,transparent)}}.bg-gray-50{background-color:var(--color-gray-50)}.bg-gray-200{background-color:var(--color-gray-200)}.bg-primary{background-color:var(--color-primary)}.bg-white{background-color:var(--color-white)}.bg-svg-tiles{--gradient-angle:16deg;background-image:var(--theme-bg-tiles),linear-gradient(var(--gradient-angle),var(--tw-gradient-from,transparent),var(--tw-gradient-to,transparent))}.from-footer-from{--tw-gradient-from:var(--color-footer-from);--tw-gradient-stops:var(--tw-gradient-via-stops,var(--tw-gradient-position), var(--tw-gradient-from) var(--tw-gradient-from-position), var(--tw-gradient-to) var(--tw-gradient-to-position))}.from-header-from{--tw-gradient-from:var(--color-header-from);--tw-gradient-stops:var(--tw-gradient-via-stops,var(--tw-gradient-position), var(--tw-gradient-from) var(--tw-gradient-from-position), var(--tw-gradient-to) var(--tw-gradient-to-position))}.to-footer-to{--tw-gradient-to:var(--color-footer-to);--tw-gradient-stops:var(--tw-gradient-via-stops,var(--tw-gradient-position), var(--tw-gradient-from) var(--tw-gradient-from-position), var(--tw-gradient-to) var(--tw-gradient-to-position))}.to-header-to{--tw-gradient-to:var(--color-header-to);--tw-gradient-stops:var(--tw-gradient-via-stops,var(--tw-gradient-position), var(--tw-gradient-from) var(--tw-gradient-from-position), var(--tw-gradient-to) var(--tw-gradient-to-position))}.bg-cover{background-size:cover}.bg-center{background-position:50%}.object-contain{object-fit:contain}.object-cover{object-fit:cover}.p-4{padding:calc(var(--spacing) * 4)}.px-2{padding-inline:calc(var(--spacing) * 2)}.py-1{padding-block:calc(var(--spacing) * 1)}.pt-12{padding-top:calc(var(--spacing) * 12)}.pr-14{padding-right:calc(var(--spacing) * 14)}.pb-2{padding-bottom:calc(var(--spacing) * 2)}.text-center{text-align:center}.text-2xl{font-size:var(--text-2xl);line-height:var(--tw-leading,var(--text-2xl--line-height))}.text-3xl{font-size:var(--text-3xl);line-height:var(--tw-leading,var(--text-3xl--line-height))}.text-4xl{font-size:var(--text-4xl);line-height:var(--tw-leading,var(--text-4xl--line-height))}.text-lg{font-size:var(--text-lg);line-height:var(--tw-leading,var(--text-lg--line-height))}.text-sm{font-size:var(--text-sm);line-height:var(--tw-leading,var(--text-sm--line-height))}.text-xl{font-size:var(--text-xl);line-height:var(--tw-leading,var(--text-xl--line-height))}.text-xs{font-size:var(--text-xs);line-height:var(--tw-leading,var(--text-xs--line-height))}.leading-8{--tw-leading:calc(var(--spacing) * 8);line-height:calc(var(--spacing) * 8)}.font-bold{--tw-font-weight:var(--font-weight-bold);font-weight:var(--font-weight-bold)}.font-medium{--tw-font-weight:var(--font-weight-medium);font-weight:var(--font-weight-medium)}.font-semibold{--tw-font-weight:var(--font-weight-semibold);font-weight:var(--font-weight-semibold)}.tracking-widest{--tw-tracking:var(--tracking-widest);letter-spacing:var(--tracking-widest)}.whitespace-nowrap{white-space:nowrap}.text-gray-500{color:var(--color-gray-500)}.text-gray-600{color:var(--color-gray-600)}.text-gray-800{color:var(--color-gray-800)}.text-primary{color:var(--color-primary)}.text-transparent{color:#0000}.text-white{color:var(--color-white)}.uppercase{text-transform:uppercase}.underline{text-decoration-line:underline}.decoration-white\\/30{text-decoration-color:#ffffff4d}@supports (color:color-mix(in lab,red,red)){.decoration-white\\/30{-webkit-text-decoration-color:color-mix(in oklab,var(--color-white) 30%,transparent);text-decoration-color:color-mix(in oklab,var(--color-white) 30%,transparent)}}.underline-offset-2{text-underline-offset:2px}.opacity-75{opacity:.75}.shadow-inner{--tw-shadow:inset 0 2px 4px 0 var(--tw-shadow-color,#0000000d);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.shadow-md{--tw-shadow:0 4px 6px -1px var(--tw-shadow-color,#0000001a), 0 2px 4px -2px var(--tw-shadow-color,#0000001a);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.inset-ring{--tw-inset-ring-shadow:inset 0 0 0 1px var(--tw-inset-ring-color,currentcolor);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.inset-ring-gray-500\\/10{--tw-inset-ring-color:#6a72821a}@supports (color:color-mix(in lab,red,red)){.inset-ring-gray-500\\/10{--tw-inset-ring-color:color-mix(in oklab, var(--color-gray-500) 10%, transparent)}}.backdrop-blur-3xl{--tw-backdrop-blur:blur(var(--blur-3xl));-webkit-backdrop-filter:var(--tw-backdrop-blur,) var(--tw-backdrop-brightness,) var(--tw-backdrop-contrast,) var(--tw-backdrop-grayscale,) var(--tw-backdrop-hue-rotate,) var(--tw-backdrop-invert,) var(--tw-backdrop-opacity,) var(--tw-backdrop-saturate,) var(--tw-backdrop-sepia,);backdrop-filter:var(--tw-backdrop-blur,) var(--tw-backdrop-brightness,) var(--tw-backdrop-contrast,) var(--tw-backdrop-grayscale,) var(--tw-backdrop-hue-rotate,) var(--tw-backdrop-invert,) var(--tw-backdrop-opacity,) var(--tw-backdrop-saturate,) var(--tw-backdrop-sepia,)}.backdrop-blur-sm{--tw-backdrop-blur:blur(var(--blur-sm));-webkit-backdrop-filter:var(--tw-backdrop-blur,) var(--tw-backdrop-brightness,) var(--tw-backdrop-contrast,) var(--tw-backdrop-grayscale,) var(--tw-backdrop-hue-rotate,) var(--tw-backdrop-invert,) var(--tw-backdrop-opacity,) var(--tw-backdrop-saturate,) var(--tw-backdrop-sepia,);backdrop-filter:var(--tw-backdrop-blur,) var(--tw-backdrop-brightness,) var(--tw-backdrop-contrast,) var(--tw-backdrop-grayscale,) var(--tw-backdrop-hue-rotate,) var(--tw-backdrop-invert,) var(--tw-backdrop-opacity,) var(--tw-backdrop-saturate,) var(--tw-backdrop-sepia,)}.transition-all{transition-property:all;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-colors{transition-property:color,background-color,border-color,outline-color,text-decoration-color,fill,stroke,--tw-gradient-from,--tw-gradient-via,--tw-gradient-to;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.duration-300{--tw-duration:.3s;transition-duration:.3s}.ease-in-out{--tw-ease:var(--ease-in-out);transition-timing-function:var(--ease-in-out)}.kerning-none{font-kerning:none}@media(hover:hover){.group-hover\\:mr-0:is(:where(.group):hover *){margin-right:calc(var(--spacing) * 0)}.group-hover\\:max-w-96:is(:where(.group):hover *){max-width:calc(var(--spacing) * 96)}.group-hover\\:text-inherit:is(:where(.group):hover *){color:inherit}}.group-focus\\:mr-0:is(:where(.group):focus *){margin-right:calc(var(--spacing) * 0)}.group-focus\\:max-w-96:is(:where(.group):focus *){max-width:calc(var(--spacing) * 96)}.group-focus\\:text-inherit:is(:where(.group):focus *){color:inherit}.group-\\[\\.fab--extended\\]\\:mr-0:is(:where(.group).fab--extended *){margin-right:calc(var(--spacing) * 0)}.group-\\[\\.fab--extended\\]\\:max-w-96:is(:where(.group).fab--extended *){max-width:calc(var(--spacing) * 96)}.group-\\[\\.fab--extended\\]\\:text-inherit:is(:where(.group).fab--extended *){color:inherit}.before\\:absolute:before{content:var(--tw-content);position:absolute}.before\\:top-0:before{content:var(--tw-content);top:calc(var(--spacing) * 0)}.before\\:-bottom-1:before{content:var(--tw-content);bottom:calc(var(--spacing) * -1)}.before\\:-left-\\[calc\\(1\\.5rem\\+2\\.5px\\)\\]:before{content:var(--tw-content);left:calc(-1.5rem - 2.5px)}.before\\:left-0:before{content:var(--tw-content);left:calc(var(--spacing) * 0)}.before\\:hidden:before{content:var(--tw-content);display:none}.before\\:h-1:before{content:var(--tw-content);height:calc(var(--spacing) * 1)}.before\\:h-\\[19px\\]:before{content:var(--tw-content);height:19px}.before\\:w-\\[3ch\\]:before{content:var(--tw-content);width:3ch}.before\\:w-\\[19px\\]:before{content:var(--tw-content);width:19px}.before\\:-translate-x-1\\/2:before{content:var(--tw-content);--tw-translate-x: -50% ;translate:var(--tw-translate-x) var(--tw-translate-y)}.before\\:rounded-\\[0_0\\.25rem_0\\.25rem_0\\]:before{content:var(--tw-content);border-radius:0 .25rem .25rem 0}.before\\:rounded-full:before{content:var(--tw-content);border-radius:3.40282e38px}.before\\:border-4:before{content:var(--tw-content);border-style:var(--tw-border-style);border-width:4px}.before\\:border-primary:before{content:var(--tw-content);border-color:var(--color-primary)}.before\\:bg-primary:before{content:var(--tw-content);background-color:var(--color-primary)}.before\\:bg-white:before{content:var(--tw-content);background-color:var(--color-white)}@media(hover:hover){.hover\\:bg-black:hover{background-color:var(--color-black)}.hover\\:decoration-white\\/80:hover{text-decoration-color:#fffc}@supports (color:color-mix(in lab,red,red)){.hover\\:decoration-white\\/80:hover{-webkit-text-decoration-color:color-mix(in oklab,var(--color-white) 80%,transparent);text-decoration-color:color-mix(in oklab,var(--color-white) 80%,transparent)}}}@media(min-width:40rem){.sm\\:flex-nowrap{flex-wrap:nowrap}}@media(min-width:48rem){.md\\:-mb-60{margin-bottom:calc(var(--spacing) * -60)}.md\\:ml-4{margin-left:calc(var(--spacing) * 4)}.md\\:h-80{height:calc(var(--spacing) * 80)}.md\\:border-l-\\[5px\\]{border-left-style:var(--tw-border-style);border-left-width:5px}.md\\:p-6{padding:calc(var(--spacing) * 6)}.md\\:pr-0{padding-right:calc(var(--spacing) * 0)}.md\\:pl-6{padding-left:calc(var(--spacing) * 6)}.md\\:before\\:block:before{content:var(--tw-content);display:block}}.dark\\:border-slate-700\\/50:where(.dark,.dark *){border-color:#31415880}@supports (color:color-mix(in lab,red,red)){.dark\\:border-slate-700\\/50:where(.dark,.dark *){border-color:color-mix(in oklab,var(--color-slate-700) 50%,transparent)}}.dark\\:bg-gray-700:where(.dark,.dark *){background-color:var(--color-gray-700)}.dark\\:bg-slate-800:where(.dark,.dark *){background-color:var(--color-slate-800)}.dark\\:bg-slate-900\\/95:where(.dark,.dark *){background-color:#0f172bf2}@supports (color:color-mix(in lab,red,red)){.dark\\:bg-slate-900\\/95:where(.dark,.dark *){background-color:color-mix(in oklab,var(--color-slate-900) 95%,transparent)}}.dark\\:bg-slate-950:where(.dark,.dark *){background-color:var(--color-slate-950)}.dark\\:text-slate-200:where(.dark,.dark *){color:var(--color-slate-200)}.dark\\:text-slate-300:where(.dark,.dark *){color:var(--color-slate-300)}.dark\\:text-slate-400:where(.dark,.dark *){color:var(--color-slate-400)}.dark\\:text-white:where(.dark,.dark *){color:var(--color-white)}.dark\\:opacity-90:where(.dark,.dark *){opacity:.9}.dark\\:shadow-2xl:where(.dark,.dark *){--tw-shadow:0 25px 50px -12px var(--tw-shadow-color,#00000040);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.dark\\:ring-1:where(.dark,.dark *){--tw-ring-shadow:var(--tw-ring-inset,) 0 0 0 calc(1px + var(--tw-ring-offset-width)) var(--tw-ring-color,currentcolor);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.dark\\:ring-white\\/10:where(.dark,.dark *){--tw-ring-color:#ffffff1a}@supports (color:color-mix(in lab,red,red)){.dark\\:ring-white\\/10:where(.dark,.dark *){--tw-ring-color:color-mix(in oklab, var(--color-white) 10%, transparent)}}.dark\\:inset-ring-white\\/10:where(.dark,.dark *){--tw-inset-ring-color:#ffffff1a}@supports (color:color-mix(in lab,red,red)){.dark\\:inset-ring-white\\/10:where(.dark,.dark *){--tw-inset-ring-color:color-mix(in oklab, var(--color-white) 10%, transparent)}}.dark\\:contrast-125:where(.dark,.dark *){--tw-contrast:contrast(125%);filter:var(--tw-blur,) var(--tw-brightness,) var(--tw-contrast,) var(--tw-grayscale,) var(--tw-hue-rotate,) var(--tw-invert,) var(--tw-saturate,) var(--tw-sepia,) var(--tw-drop-shadow,)}.dark\\:saturate-50:where(.dark,.dark *){--tw-saturate:saturate(50%);filter:var(--tw-blur,) var(--tw-brightness,) var(--tw-contrast,) var(--tw-grayscale,) var(--tw-hue-rotate,) var(--tw-invert,) var(--tw-saturate,) var(--tw-sepia,) var(--tw-drop-shadow,)}.dark\\:before\\:bg-slate-900:where(.dark,.dark *):before{content:var(--tw-content);background-color:var(--color-slate-900)}@media print{.print\\:hidden{display:none}.print\\:rounded-none{border-radius:0}.print\\:bg-transparent{background-color:#0000}.print\\:text-base{font-size:var(--text-base);line-height:var(--tw-leading,var(--text-base--line-height))}.print\\:text-sm{font-size:var(--text-sm);line-height:var(--tw-leading,var(--text-sm--line-height))}.print\\:shadow-none{--tw-shadow:0 0 #0000;box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}}.before\\:print\\:\\[print-color-adjust\\:exact\\]:before{content:var(--tw-content)}@media print{.before\\:print\\:\\[print-color-adjust\\:exact\\]:before{-webkit-print-color-adjust:exact;print-color-adjust:exact}}.\\[\\&_a\\]\\:underline a{text-decoration-line:underline}}:where(.dark){--color-primary:oklch(from var(--theme-primary) calc(l*.9) calc(c*.7) h)}@media print{.portrait-card{--tw-scale-x:100%;--tw-scale-y:100%;--tw-scale-z:100%;scale:var(--tw-scale-x) var(--tw-scale-y);transform:none}.portrait-card__side{--tw-shadow:0 0 #0000;box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow);transition-property:none}}@property --tw-rotate-x{syntax:"*";inherits:false}@property --tw-rotate-y{syntax:"*";inherits:false}@property --tw-rotate-z{syntax:"*";inherits:false}@property --tw-skew-x{syntax:"*";inherits:false}@property --tw-skew-y{syntax:"*";inherits:false}@property --tw-space-x-reverse{syntax:"*";inherits:false;initial-value:0}@property --tw-gradient-position{syntax:"*";inherits:false}@property --tw-gradient-from{syntax:"<color>";inherits:false;initial-value:#0000}@property --tw-gradient-via{syntax:"<color>";inherits:false;initial-value:#0000}@property --tw-gradient-to{syntax:"<color>";inherits:false;initial-value:#0000}@property --tw-gradient-stops{syntax:"*";inherits:false}@property --tw-gradient-via-stops{syntax:"*";inherits:false}@property --tw-gradient-from-position{syntax:"<length-percentage>";inherits:false;initial-value:0%}@property --tw-gradient-via-position{syntax:"<length-percentage>";inherits:false;initial-value:50%}@property --tw-gradient-to-position{syntax:"<length-percentage>";inherits:false;initial-value:100%}@property --tw-leading{syntax:"*";inherits:false}@property --tw-font-weight{syntax:"*";inherits:false}@property --tw-tracking{syntax:"*";inherits:false}@property --tw-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-shadow-color{syntax:"*";inherits:false}@property --tw-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-inset-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-inset-shadow-color{syntax:"*";inherits:false}@property --tw-inset-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-ring-color{syntax:"*";inherits:false}@property --tw-ring-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-inset-ring-color{syntax:"*";inherits:false}@property --tw-inset-ring-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-ring-inset{syntax:"*";inherits:false}@property --tw-ring-offset-width{syntax:"<length>";inherits:false;initial-value:0}@property --tw-ring-offset-color{syntax:"*";inherits:false;initial-value:#fff}@property --tw-ring-offset-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-backdrop-blur{syntax:"*";inherits:false}@property --tw-backdrop-brightness{syntax:"*";inherits:false}@property --tw-backdrop-contrast{syntax:"*";inherits:false}@property --tw-backdrop-grayscale{syntax:"*";inherits:false}@property --tw-backdrop-hue-rotate{syntax:"*";inherits:false}@property --tw-backdrop-invert{syntax:"*";inherits:false}@property --tw-backdrop-opacity{syntax:"*";inherits:false}@property --tw-backdrop-saturate{syntax:"*";inherits:false}@property --tw-backdrop-sepia{syntax:"*";inherits:false}@property --tw-duration{syntax:"*";inherits:false}@property --tw-ease{syntax:"*";inherits:false}@property --tw-content{syntax:"*";inherits:false;initial-value:""}@property --tw-translate-x{syntax:"*";inherits:false;initial-value:0}@property --tw-translate-y{syntax:"*";inherits:false;initial-value:0}@property --tw-translate-z{syntax:"*";inherits:false;initial-value:0}@property --tw-border-style{syntax:"*";inherits:false;initial-value:solid}@property --tw-blur{syntax:"*";inherits:false}@property --tw-brightness{syntax:"*";inherits:false}@property --tw-contrast{syntax:"*";inherits:false}@property --tw-grayscale{syntax:"*";inherits:false}@property --tw-hue-rotate{syntax:"*";inherits:false}@property --tw-invert{syntax:"*";inherits:false}@property --tw-opacity{syntax:"*";inherits:false}@property --tw-saturate{syntax:"*";inherits:false}@property --tw-sepia{syntax:"*";inherits:false}@property --tw-drop-shadow{syntax:"*";inherits:false}@property --tw-drop-shadow-color{syntax:"*";inherits:false}@property --tw-drop-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-drop-shadow-size{syntax:"*";inherits:false}@property --tw-scale-x{syntax:"*";inherits:false;initial-value:1}@property --tw-scale-y{syntax:"*";inherits:false;initial-value:1}@property --tw-scale-z{syntax:"*";inherits:false;initial-value:1}';
1875
+ async function cn(e) {
1876
+ const t = Ur.parse(e);
1877
+ return Ge(t.meta.lang), t.meta.themeConfig.ui.showFavicons && await Promise.all(
1878
+ t.work.map(async (r) => {
1879
+ r.logo = await on(r.url);
1880
+ })
1881
+ ), `<!doctype html>${await rn({ resume: t, css: sn })}`;
1882
+ }
1883
+ export {
1884
+ cn as render
1885
+ };