jsonresume-theme-cjean 1.0.2

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