@sorayasm/vietri-ds 0.2.2 → 0.3.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 CHANGED
@@ -1,87 +1,95 @@
1
- import { jsxs as d, jsx as e, Fragment as W } from "react/jsx-runtime";
2
- import s from "@mui/material/Box";
3
- import g from "@mui/material/Stack";
1
+ import { jsxs as d, jsx as e, Fragment as $ } from "react/jsx-runtime";
2
+ import p from "@mui/material/Box";
3
+ import b from "@mui/material/Stack";
4
4
  import h from "@mui/material/Typography";
5
- import { default as xr } from "@mui/material/Typography";
6
- import z from "@mui/material/Button";
7
- import { default as Fr } from "@mui/material/Button";
8
- import B from "@mui/material/Card";
9
- import { default as Cr } from "@mui/material/Card";
10
- import { default as wr } from "@mui/material/CardActionArea";
11
- import { default as kr } from "@mui/material/CardActions";
12
- import k from "@mui/material/CardContent";
13
- import { default as Er } from "@mui/material/CardContent";
14
- import { default as Ir } from "@mui/material/CardMedia";
15
- import U from "@mui/material/Chip";
16
- import { default as Mr } from "@mui/material/Chip";
17
- import { useState as I, useMemo as oe, useId as D, useRef as E, useEffect as X, Children as ie } from "react";
18
- import w from "@mui/material/IconButton";
19
- import { ArrowRight as ne, Check as Y, ChevronDown as ae, ChevronLeft as q, ChevronRight as Q, Clock as le, Copy as J, Database as ce, ExternalLink as $, Globe as de, Info as se, LayoutGrid as pe, MapPin as ue, Menu as he, Music as K, Network as me, Play as H, Search as fe, Share2 as ge, ShieldCheck as be, Sparkles as xe, TrendingUp as ve, Users as Fe, X as L } from "lucide-react";
20
- import ye from "@mui/material/Table";
21
- import Ce from "@mui/material/TableBody";
22
- import M from "@mui/material/TableCell";
23
- import Se from "@mui/material/TableContainer";
24
- import we from "@mui/material/TableHead";
25
- import T from "@mui/material/TableRow";
26
- import Be from "@mui/material/TableSortLabel";
27
- import ke from "@mui/material/DialogActions";
28
- import De from "@mui/material/DialogContent";
29
- import Ee from "@mui/material/DialogContentText";
30
- import Ae from "@mui/material/DialogTitle";
31
- import Ie from "@mui/material/Dialog";
32
- import Z from "@mui/material/Drawer";
33
- import C from "@mui/material/Link";
34
- import P from "@mui/material/Container";
35
- import We from "@mui/material/Divider";
36
- import { useTheme as ee, alpha as O, createTheme as Me } from "@mui/material/styles";
5
+ import { default as vt } from "@mui/material/Typography";
6
+ import R from "@mui/material/Button";
7
+ import { default as yt } from "@mui/material/Button";
8
+ import D from "@mui/material/Card";
9
+ import { default as St } from "@mui/material/Card";
10
+ import { default as Bt } from "@mui/material/CardActionArea";
11
+ import { default as Dt } from "@mui/material/CardActions";
12
+ import A from "@mui/material/CardContent";
13
+ import { default as It } from "@mui/material/CardContent";
14
+ import { default as Wt } from "@mui/material/CardMedia";
15
+ import Y from "@mui/material/Chip";
16
+ import { default as $t } from "@mui/material/Chip";
17
+ import { useState as M, useMemo as ie, useId as I, useRef as E, useEffect as q, Children as ne } from "react";
18
+ import k from "@mui/material/IconButton";
19
+ import { ArrowRight as ae, Check as J, ChevronDown as le, ChevronLeft as Q, ChevronRight as K, Clock as ce, Copy as Z, Database as de, ExternalLink as H, Globe as se, Info as pe, LayoutGrid as ue, MapPin as he, Menu as me, Music as ee, Network as fe, Play as P, Search as ge, Share2 as be, ShieldCheck as xe, Sparkles as ve, TrendingUp as Fe, Users as ye, X as L } from "lucide-react";
20
+ import Ce from "@mui/material/Table";
21
+ import Se from "@mui/material/TableBody";
22
+ import T from "@mui/material/TableCell";
23
+ import we from "@mui/material/TableContainer";
24
+ import Be from "@mui/material/TableHead";
25
+ import O from "@mui/material/TableRow";
26
+ import ke from "@mui/material/TableSortLabel";
27
+ import De from "@mui/material/DialogActions";
28
+ import Ae from "@mui/material/DialogContent";
29
+ import Ie from "@mui/material/DialogContentText";
30
+ import Ee from "@mui/material/DialogTitle";
31
+ import We from "@mui/material/Dialog";
32
+ import re from "@mui/material/Drawer";
33
+ import S from "@mui/material/Link";
34
+ import j from "@mui/material/Container";
35
+ import Me from "@mui/material/Divider";
36
+ import { useTheme as te, alpha as w, createTheme as $e } from "@mui/material/styles";
37
37
  import Te from "@mui/material/TextField";
38
- import { default as Or } from "@mui/material/TextField";
38
+ import { default as Ot } from "@mui/material/TextField";
39
39
  import Oe from "@mui/material/ToggleButton";
40
- import Re from "@mui/material/ToggleButtonGroup";
41
- import ze from "@mui/material/AppBar";
42
- import $e from "@mui/material/SvgIcon";
43
- import He from "@mui/material/Toolbar";
40
+ import ze from "@mui/material/ToggleButtonGroup";
41
+ import Re from "@mui/material/AppBar";
42
+ import He from "@mui/material/SvgIcon";
43
+ import Pe from "@mui/material/Toolbar";
44
44
  import Le from "@mui/material/useMediaQuery";
45
- import Pe from "@mui/material/MenuItem";
46
- import { default as zr } from "@mui/material/Tab";
47
- import { default as Hr } from "@mui/material/Tabs";
48
- import je from "@mui/material/ButtonBase";
45
+ import je from "@mui/material/MenuItem";
46
+ import { default as Rt } from "@mui/material/Tab";
47
+ import { default as Pt } from "@mui/material/Tabs";
48
+ import Ne from "@mui/material/ButtonBase";
49
49
  function Ge() {
50
- return /* @__PURE__ */ e($e, { children: /* @__PURE__ */ e("path", { d: "M3 18h18v-2H3v2zm0-5h18v-2H3v2zm0-7v2h18V6H3z" }) });
50
+ return /* @__PURE__ */ e(He, { children: /* @__PURE__ */ e("path", { d: "M3 18h18v-2H3v2zm0-5h18v-2H3v2zm0-7v2h18V6H3z" }) });
51
51
  }
52
- function V({
53
- link: t,
54
- onClick: r
52
+ function U({
53
+ link: r,
54
+ onClick: t,
55
+ accent: o = !1
55
56
  }) {
57
+ const a = !!r.current;
56
58
  return /* @__PURE__ */ e(
57
- C,
59
+ S,
58
60
  {
59
- href: t.href,
60
- underline: "none",
61
- "aria-current": t.current ? "page" : void 0,
62
- onClick: r,
63
- sx: {
64
- color: t.current ? "text.primary" : "text.secondary",
65
- fontWeight: t.current ? 600 : 500,
66
- "&:hover": { color: "text.primary" }
67
- },
68
- children: t.label
61
+ href: r.href,
62
+ underline: o ? a ? "always" : "hover" : "none",
63
+ "aria-current": a ? "page" : void 0,
64
+ onClick: t,
65
+ sx: (n) => ({
66
+ color: o ? a ? n.palette.text.primary : n.palette.primary.main : a ? n.palette.text.primary : n.palette.text.secondary,
67
+ fontWeight: a ? 600 : 500,
68
+ ...o && a && {
69
+ textDecorationColor: n.palette.primary.main,
70
+ textDecorationThickness: 2,
71
+ textUnderlineOffset: 8
72
+ },
73
+ ...!o && { "&:hover": { color: n.palette.text.primary } }
74
+ }),
75
+ children: r.label
69
76
  }
70
77
  );
71
78
  }
72
- function Gt({
73
- brand: t,
74
- brandHref: r = "/",
79
+ function Gr({
80
+ brand: r,
81
+ brandHref: t = "/",
75
82
  links: o,
76
- actions: c,
83
+ actions: a,
77
84
  ariaLabel: n = "Main",
78
- menuLabel: a = "Menu",
79
- closeLabel: p = "Close menu",
80
- maxWidth: m = "lg"
85
+ menuLabel: l = "Menu",
86
+ closeLabel: u = "Close menu",
87
+ maxWidth: f = "lg",
88
+ accentLinks: c = !1
81
89
  }) {
82
- const l = ee(), i = Le(l.breakpoints.up("md"), { noSsr: !0 }), [u, f] = I(!1), x = () => f(!1);
90
+ const i = te(), s = Le(i.breakpoints.up("md"), { noSsr: !0 }), [m, g] = M(!1), v = () => g(!1);
83
91
  return /* @__PURE__ */ d(
84
- ze,
92
+ Re,
85
93
  {
86
94
  component: "header",
87
95
  position: "sticky",
@@ -94,8 +102,8 @@ function Gt({
94
102
  borderColor: "divider"
95
103
  },
96
104
  children: [
97
- /* @__PURE__ */ e(P, { maxWidth: m, children: /* @__PURE__ */ d(
98
- He,
105
+ /* @__PURE__ */ e(j, { maxWidth: f, children: /* @__PURE__ */ d(
106
+ Pe,
99
107
  {
100
108
  disableGutters: !0,
101
109
  sx: {
@@ -105,37 +113,37 @@ function Gt({
105
113
  },
106
114
  children: [
107
115
  /* @__PURE__ */ e(
108
- C,
116
+ S,
109
117
  {
110
- href: r,
118
+ href: t,
111
119
  underline: "none",
112
120
  color: "text.primary",
113
121
  sx: { fontWeight: 600, letterSpacing: "-0.03em", fontSize: "1.125rem" },
114
- children: t
122
+ children: r
115
123
  }
116
124
  ),
117
- i ? /* @__PURE__ */ d(g, { direction: "row", alignItems: "center", spacing: 4, children: [
118
- /* @__PURE__ */ e(s, { component: "nav", "aria-label": n, children: /* @__PURE__ */ e(
119
- g,
125
+ s ? /* @__PURE__ */ d(b, { direction: "row", alignItems: "center", spacing: 4, children: [
126
+ /* @__PURE__ */ e(p, { component: "nav", "aria-label": n, children: /* @__PURE__ */ e(
127
+ b,
120
128
  {
121
129
  component: "ul",
122
130
  direction: "row",
123
131
  spacing: 4,
124
132
  sx: { listStyle: "none", m: 0, p: 0 },
125
- children: o.map((b) => /* @__PURE__ */ e("li", { children: /* @__PURE__ */ e(V, { link: b }) }, b.href))
133
+ children: o.map((x) => /* @__PURE__ */ e("li", { children: /* @__PURE__ */ e(U, { link: x, accent: c }) }, x.href))
126
134
  }
127
135
  ) }),
128
- c
129
- ] }) : /* @__PURE__ */ d(g, { direction: "row", alignItems: "center", spacing: 1, children: [
130
- c,
136
+ a
137
+ ] }) : /* @__PURE__ */ d(b, { direction: "row", alignItems: "center", spacing: 1, children: [
138
+ a,
131
139
  /* @__PURE__ */ e(
132
- w,
140
+ k,
133
141
  {
134
142
  edge: "end",
135
- color: "inherit",
136
- "aria-label": a,
137
- "aria-expanded": u,
138
- onClick: () => f(!0),
143
+ color: c ? "primary" : "inherit",
144
+ "aria-label": l,
145
+ "aria-expanded": m,
146
+ onClick: () => g(!0),
139
147
  children: /* @__PURE__ */ e(Ge, {})
140
148
  }
141
149
  )
@@ -143,15 +151,15 @@ function Gt({
143
151
  ]
144
152
  }
145
153
  ) }),
146
- !i && /* @__PURE__ */ e(Z, { anchor: "right", open: u, onClose: x, children: /* @__PURE__ */ d(s, { sx: { width: 280, p: 3 }, children: [
147
- /* @__PURE__ */ e(g, { alignItems: "flex-end", sx: { mb: 3 }, children: /* @__PURE__ */ e(z, { variant: "text", color: "secondary", onClick: x, children: p }) }),
148
- /* @__PURE__ */ e(s, { component: "nav", "aria-label": n, children: /* @__PURE__ */ e(
149
- g,
154
+ !s && /* @__PURE__ */ e(re, { anchor: "right", open: m, onClose: v, children: /* @__PURE__ */ d(p, { sx: { width: 280, p: 3 }, children: [
155
+ /* @__PURE__ */ e(b, { alignItems: "flex-end", sx: { mb: 3 }, children: /* @__PURE__ */ e(R, { variant: "text", color: c ? "primary" : "secondary", onClick: v, children: u }) }),
156
+ /* @__PURE__ */ e(p, { component: "nav", "aria-label": n, children: /* @__PURE__ */ e(
157
+ b,
150
158
  {
151
159
  component: "ul",
152
160
  spacing: 3,
153
161
  sx: { listStyle: "none", m: 0, p: 0, fontSize: "1.25rem" },
154
- children: o.map((b) => /* @__PURE__ */ e("li", { children: /* @__PURE__ */ e(V, { link: b, onClick: x }) }, b.href))
162
+ children: o.map((x) => /* @__PURE__ */ e("li", { children: /* @__PURE__ */ e(U, { link: x, onClick: v, accent: c }) }, x.href))
155
163
  }
156
164
  ) })
157
165
  ] }) })
@@ -163,90 +171,90 @@ const Ve = [
163
171
  { value: "en", label: "EN" },
164
172
  { value: "es", label: "ES" }
165
173
  ];
166
- function Vt({
167
- value: t,
168
- onChange: r,
174
+ function Vr({
175
+ value: r,
176
+ onChange: t,
169
177
  options: o = Ve,
170
- ariaLabel: c = "Language"
178
+ ariaLabel: a = "Language"
171
179
  }) {
172
180
  return /* @__PURE__ */ e(
173
- Re,
181
+ ze,
174
182
  {
175
183
  exclusive: !0,
176
184
  size: "small",
177
- value: t,
178
- "aria-label": c,
179
- onChange: (n, a) => {
180
- a !== null && r(a);
185
+ value: r,
186
+ "aria-label": a,
187
+ onChange: (n, l) => {
188
+ l !== null && t(l);
181
189
  },
182
190
  children: o.map((n) => /* @__PURE__ */ e(Oe, { value: n.value, children: n.label }, n.value))
183
191
  }
184
192
  );
185
193
  }
186
- function Nt({ value: t, label: r, description: o }) {
187
- return /* @__PURE__ */ e(B, { children: /* @__PURE__ */ d(k, { children: [
188
- /* @__PURE__ */ e(h, { variant: "h3", component: "p", children: t }),
189
- /* @__PURE__ */ e(h, { variant: "body1", sx: { mt: 1 }, children: r }),
194
+ function Ur({ value: r, label: t, description: o }) {
195
+ return /* @__PURE__ */ e(D, { children: /* @__PURE__ */ d(A, { children: [
196
+ /* @__PURE__ */ e(h, { variant: "h3", component: "p", children: r }),
197
+ /* @__PURE__ */ e(h, { variant: "body1", sx: { mt: 1 }, children: t }),
190
198
  o && /* @__PURE__ */ e(h, { variant: "body2", color: "text.secondary", sx: { mt: 1 }, children: o })
191
199
  ] }) });
192
200
  }
193
- function te(t, r) {
194
- return t[r.key];
201
+ function oe(r, t) {
202
+ return r[t.key];
195
203
  }
196
- function N(t, r) {
197
- if (r.sortValue) return r.sortValue(t);
198
- const o = te(t, r);
204
+ function _(r, t) {
205
+ if (t.sortValue) return t.sortValue(r);
206
+ const o = oe(r, t);
199
207
  return typeof o == "number" ? o : String(o ?? "");
200
208
  }
201
- function Ne(t, r) {
202
- return typeof t == "number" && typeof r == "number" ? t - r : String(t).localeCompare(String(r), void 0, { numeric: !0 });
209
+ function Ue(r, t) {
210
+ return typeof r == "number" && typeof t == "number" ? r - t : String(r).localeCompare(String(t), void 0, { numeric: !0 });
203
211
  }
204
- function _t({
205
- columns: t,
206
- rows: r,
212
+ function _r({
213
+ columns: r,
214
+ rows: t,
207
215
  getRowKey: o,
208
- caption: c,
216
+ caption: a,
209
217
  emptyMessage: n = "No data"
210
218
  }) {
211
- const [a, p] = I(
219
+ const [l, u] = M(
212
220
  null
213
- ), m = oe(() => {
214
- if (!a) return r;
215
- const i = t.find((f) => f.key === a.key);
216
- if (!i) return r;
217
- const u = a.direction === "asc" ? 1 : -1;
218
- return [...r].sort(
219
- (f, x) => u * Ne(N(f, i), N(x, i))
221
+ ), f = ie(() => {
222
+ if (!l) return t;
223
+ const i = r.find((m) => m.key === l.key);
224
+ if (!i) return t;
225
+ const s = l.direction === "asc" ? 1 : -1;
226
+ return [...t].sort(
227
+ (m, g) => s * Ue(_(m, i), _(g, i))
220
228
  );
221
- }, [r, t, a]), l = (i) => {
222
- p(
223
- (u) => u?.key === i && u.direction === "asc" ? { key: i, direction: "desc" } : { key: i, direction: "asc" }
229
+ }, [t, r, l]), c = (i) => {
230
+ u(
231
+ (s) => s?.key === i && s.direction === "asc" ? { key: i, direction: "desc" } : { key: i, direction: "asc" }
224
232
  );
225
233
  };
226
- return /* @__PURE__ */ e(Se, { tabIndex: 0, sx: { overflowX: "auto" }, children: /* @__PURE__ */ d(ye, { children: [
227
- c && /* @__PURE__ */ e(
234
+ return /* @__PURE__ */ e(we, { tabIndex: 0, sx: { overflowX: "auto" }, children: /* @__PURE__ */ d(Ce, { children: [
235
+ a && /* @__PURE__ */ e(
228
236
  h,
229
237
  {
230
238
  component: "caption",
231
239
  variant: "body2",
232
240
  color: "text.secondary",
233
241
  sx: { captionSide: "top", textAlign: "left", pb: 2 },
234
- children: c
242
+ children: a
235
243
  }
236
244
  ),
237
- /* @__PURE__ */ e(we, { children: /* @__PURE__ */ e(T, { children: t.map((i) => {
238
- const u = a?.key === i.key ? a.direction : void 0;
245
+ /* @__PURE__ */ e(Be, { children: /* @__PURE__ */ e(O, { children: r.map((i) => {
246
+ const s = l?.key === i.key ? l.direction : void 0;
239
247
  return /* @__PURE__ */ e(
240
- M,
248
+ T,
241
249
  {
242
250
  align: i.align,
243
- sortDirection: u ?? !1,
251
+ sortDirection: s ?? !1,
244
252
  children: i.sortable ? /* @__PURE__ */ e(
245
- Be,
253
+ ke,
246
254
  {
247
- active: u !== void 0,
248
- direction: u ?? "asc",
249
- onClick: () => l(i.key),
255
+ active: s !== void 0,
256
+ direction: s ?? "asc",
257
+ onClick: () => c(i.key),
250
258
  children: i.header
251
259
  }
252
260
  ) : i.header
@@ -254,40 +262,40 @@ function _t({
254
262
  i.key
255
263
  );
256
264
  }) }) }),
257
- /* @__PURE__ */ e(Ce, { children: m.length === 0 ? /* @__PURE__ */ e(T, { children: /* @__PURE__ */ e(M, { colSpan: t.length, align: "center", children: n }) }) : m.map((i) => /* @__PURE__ */ e(T, { children: t.map((u, f) => /* @__PURE__ */ e(
258
- M,
265
+ /* @__PURE__ */ e(Se, { children: f.length === 0 ? /* @__PURE__ */ e(O, { children: /* @__PURE__ */ e(T, { colSpan: r.length, align: "center", children: n }) }) : f.map((i) => /* @__PURE__ */ e(O, { children: r.map((s, m) => /* @__PURE__ */ e(
266
+ T,
259
267
  {
260
- align: u.align,
261
- component: f === 0 ? "th" : "td",
262
- scope: f === 0 ? "row" : void 0,
263
- children: u.render ? u.render(i) : String(te(i, u) ?? "")
268
+ align: s.align,
269
+ component: m === 0 ? "th" : "td",
270
+ scope: m === 0 ? "row" : void 0,
271
+ children: s.render ? s.render(i) : String(oe(i, s) ?? "")
264
272
  },
265
- u.key
273
+ s.key
266
274
  )) }, o(i))) })
267
275
  ] }) });
268
276
  }
269
- function Ut({
270
- data: t,
271
- title: r,
277
+ function Xr({
278
+ data: r,
279
+ title: t,
272
280
  max: o,
273
- formatValue: c = String
281
+ formatValue: a = String
274
282
  }) {
275
- const n = o ?? Math.max(0, ...t.map((a) => a.value));
276
- return /* @__PURE__ */ d(s, { component: "figure", sx: { m: 0 }, children: [
277
- r && /* @__PURE__ */ e(
283
+ const n = o ?? Math.max(0, ...r.map((l) => l.value));
284
+ return /* @__PURE__ */ d(p, { component: "figure", sx: { m: 0 }, children: [
285
+ t && /* @__PURE__ */ e(
278
286
  h,
279
287
  {
280
288
  component: "figcaption",
281
289
  variant: "overline",
282
290
  color: "text.secondary",
283
291
  sx: { display: "block", mb: 2 },
284
- children: r
292
+ children: t
285
293
  }
286
294
  ),
287
- /* @__PURE__ */ e(g, { component: "ul", spacing: 1.5, sx: { listStyle: "none", m: 0, p: 0 }, children: t.map((a) => {
288
- const p = n > 0 ? Math.min(100, Math.max(0, a.value / n * 100)) : 0, m = c(a.value);
295
+ /* @__PURE__ */ e(b, { component: "ul", spacing: 1.5, sx: { listStyle: "none", m: 0, p: 0 }, children: r.map((l) => {
296
+ const u = n > 0 ? Math.min(100, Math.max(0, l.value / n * 100)) : 0, f = a(l.value);
289
297
  return /* @__PURE__ */ d(
290
- s,
298
+ p,
291
299
  {
292
300
  component: "li",
293
301
  sx: {
@@ -297,16 +305,16 @@ function Ut({
297
305
  columnGap: 2
298
306
  },
299
307
  children: [
300
- /* @__PURE__ */ e(h, { variant: "body2", "aria-hidden": "true", children: a.label }),
308
+ /* @__PURE__ */ e(h, { variant: "body2", "aria-hidden": "true", children: l.label }),
301
309
  /* @__PURE__ */ e(
302
- s,
310
+ p,
303
311
  {
304
312
  role: "meter",
305
- "aria-label": a.label,
313
+ "aria-label": l.label,
306
314
  "aria-valuemin": 0,
307
315
  "aria-valuemax": n,
308
- "aria-valuenow": a.value,
309
- "aria-valuetext": m,
316
+ "aria-valuenow": l.value,
317
+ "aria-valuetext": f,
310
318
  sx: {
311
319
  height: 12,
312
320
  borderRadius: 1,
@@ -314,9 +322,9 @@ function Ut({
314
322
  overflow: "hidden"
315
323
  },
316
324
  children: /* @__PURE__ */ e(
317
- s,
325
+ p,
318
326
  {
319
- style: { width: `${p}%` },
327
+ style: { width: `${u}%` },
320
328
  sx: { height: "100%", bgcolor: "primary.main" }
321
329
  }
322
330
  )
@@ -328,72 +336,72 @@ function Ut({
328
336
  variant: "body2",
329
337
  "aria-hidden": "true",
330
338
  sx: { minWidth: 40, textAlign: "right", fontWeight: 600 },
331
- children: m
339
+ children: f
332
340
  }
333
341
  )
334
342
  ]
335
343
  },
336
- a.label
344
+ l.label
337
345
  );
338
346
  }) })
339
347
  ] });
340
348
  }
341
- function y({ icon: t, label: r, size: o = 18, ...c }) {
342
- return r ? /* @__PURE__ */ e(t, { size: o, role: "img", "aria-label": r, ...c }) : /* @__PURE__ */ e(t, { size: o, "aria-hidden": "true", focusable: "false", ...c });
349
+ function C({ icon: r, label: t, size: o = 18, ...a }) {
350
+ return t ? /* @__PURE__ */ e(r, { size: o, role: "img", "aria-label": t, ...a }) : /* @__PURE__ */ e(r, { size: o, "aria-hidden": "true", focusable: "false", ...a });
343
351
  }
344
- const Xt = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({
352
+ const Yr = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({
345
353
  __proto__: null,
346
- ArrowRight: ne,
347
- Check: Y,
348
- ChevronDown: ae,
349
- ChevronLeft: q,
350
- ChevronRight: Q,
351
- Clock: le,
352
- Copy: J,
353
- Database: ce,
354
- ExternalLink: $,
355
- Globe: de,
356
- Info: se,
357
- LayoutGrid: pe,
358
- MapPin: ue,
359
- Menu: he,
360
- Music: K,
361
- Network: me,
362
- Play: H,
363
- Search: fe,
364
- Share2: ge,
365
- ShieldCheck: be,
366
- Sparkles: xe,
367
- TrendingUp: ve,
368
- Users: Fe,
354
+ ArrowRight: ae,
355
+ Check: J,
356
+ ChevronDown: le,
357
+ ChevronLeft: Q,
358
+ ChevronRight: K,
359
+ Clock: ce,
360
+ Copy: Z,
361
+ Database: de,
362
+ ExternalLink: H,
363
+ Globe: se,
364
+ Info: pe,
365
+ LayoutGrid: ue,
366
+ MapPin: he,
367
+ Menu: me,
368
+ Music: ee,
369
+ Network: fe,
370
+ Play: P,
371
+ Search: ge,
372
+ Share2: be,
373
+ ShieldCheck: xe,
374
+ Sparkles: ve,
375
+ TrendingUp: Fe,
376
+ Users: ye,
369
377
  X: L
370
378
  }, Symbol.toStringTag, { value: "Module" }));
371
- function _e({ color: t, dot: r = !1, ...o }) {
379
+ function _e({ color: r, dot: t = !1, ...o }) {
372
380
  return /* @__PURE__ */ e(
373
- U,
381
+ Y,
374
382
  {
375
383
  size: "small",
376
384
  ...o,
377
- icon: r ? /* @__PURE__ */ e(
378
- s,
385
+ icon: t ? /* @__PURE__ */ e(
386
+ p,
379
387
  {
380
388
  component: "span",
381
389
  "aria-hidden": "true",
382
- sx: { width: 8, height: 8, borderRadius: "50%", bgcolor: t.fg }
390
+ sx: { width: 8, height: 8, borderRadius: "50%", bgcolor: r.fg }
383
391
  }
384
392
  ) : void 0,
385
393
  sx: {
386
- bgcolor: t.bg,
387
- color: t.fg,
388
- "&.MuiChip-clickable:hover": { bgcolor: t.bg, filter: "brightness(0.95)" },
389
- "& .MuiChip-icon": { color: t.fg, ml: 1, mr: -0.25 }
394
+ bgcolor: r.bg,
395
+ color: r.fg,
396
+ "&.MuiChip-clickable:hover": { bgcolor: r.bg, filter: "brightness(0.95)" },
397
+ "& .MuiChip-icon": { color: r.fg, ml: 1, mr: -0.25 }
390
398
  }
391
399
  }
392
400
  );
393
401
  }
394
- function j(t) {
402
+ function N(r) {
395
403
  return /* @__PURE__ */ e(
396
- s,
404
+ p,
397
405
  {
398
406
  component: "span",
399
407
  sx: {
@@ -407,23 +415,23 @@ function j(t) {
407
415
  whiteSpace: "nowrap",
408
416
  width: "1px"
409
417
  },
410
- ...t
418
+ ...r
411
419
  }
412
420
  );
413
421
  }
414
- function Yt({
415
- title: t,
416
- description: r,
422
+ function qr({
423
+ title: r,
424
+ description: t,
417
425
  lines: o = [],
418
- links: c = [],
426
+ links: a = [],
419
427
  linksLabel: n = "Footer links",
420
- action: a,
421
- legal: p,
422
- externalLabel: m = "(opens in a new tab)"
428
+ action: l,
429
+ legal: u,
430
+ externalLabel: f = "(opens in a new tab)"
423
431
  }) {
424
- const { glow: l } = ee().vietri.color;
432
+ const { glow: c } = te().vietri.color;
425
433
  return /* @__PURE__ */ d(
426
- s,
434
+ p,
427
435
  {
428
436
  component: "footer",
429
437
  sx: (i) => ({
@@ -440,9 +448,9 @@ function Yt({
440
448
  }
441
449
  }),
442
450
  children: [
443
- l && /* @__PURE__ */ d(W, { children: [
451
+ c && /* @__PURE__ */ d($, { children: [
444
452
  /* @__PURE__ */ e(
445
- s,
453
+ p,
446
454
  {
447
455
  "aria-hidden": "true",
448
456
  sx: {
@@ -452,14 +460,14 @@ function Yt({
452
460
  width: 384,
453
461
  height: 384,
454
462
  borderRadius: "50%",
455
- bgcolor: O(l[0], 0.22),
463
+ bgcolor: w(c[0], 0.22),
456
464
  filter: "blur(64px)",
457
465
  pointerEvents: "none"
458
466
  }
459
467
  }
460
468
  ),
461
469
  /* @__PURE__ */ e(
462
- s,
470
+ p,
463
471
  {
464
472
  "aria-hidden": "true",
465
473
  sx: {
@@ -469,25 +477,25 @@ function Yt({
469
477
  width: 384,
470
478
  height: 384,
471
479
  borderRadius: "50%",
472
- bgcolor: O(l[1], 0.22),
480
+ bgcolor: w(c[1], 0.22),
473
481
  filter: "blur(64px)",
474
482
  pointerEvents: "none"
475
483
  }
476
484
  }
477
485
  )
478
486
  ] }),
479
- /* @__PURE__ */ d(P, { maxWidth: "lg", sx: { position: "relative", zIndex: 1 }, children: [
487
+ /* @__PURE__ */ d(j, { maxWidth: "lg", sx: { position: "relative", zIndex: 1 }, children: [
480
488
  /* @__PURE__ */ d(
481
- g,
489
+ b,
482
490
  {
483
491
  direction: { xs: "column", sm: "row" },
484
492
  justifyContent: "space-between",
485
493
  alignItems: { xs: "flex-start", sm: "center" },
486
494
  spacing: 4,
487
495
  children: [
488
- /* @__PURE__ */ d(g, { spacing: 1, children: [
489
- /* @__PURE__ */ e(h, { component: "p", variant: "h6", children: t }),
490
- r && /* @__PURE__ */ e(
496
+ /* @__PURE__ */ d(b, { spacing: 1, children: [
497
+ /* @__PURE__ */ e(h, { component: "p", variant: "h6", children: r }),
498
+ t && /* @__PURE__ */ e(
491
499
  h,
492
500
  {
493
501
  variant: "body2",
@@ -495,22 +503,22 @@ function Yt({
495
503
  maxWidth: 560,
496
504
  color: i.vietri.color.onSurfaceSoft
497
505
  }),
498
- children: r
506
+ children: t
499
507
  }
500
508
  ),
501
509
  o.map((i) => /* @__PURE__ */ e(
502
510
  h,
503
511
  {
504
512
  variant: "body2",
505
- sx: (u) => ({ color: u.vietri.color.onSurfaceSoft }),
513
+ sx: (s) => ({ color: s.vietri.color.onSurfaceSoft }),
506
514
  children: i
507
515
  },
508
516
  i
509
517
  ))
510
518
  ] }),
511
- /* @__PURE__ */ d(g, { spacing: 2, alignItems: { xs: "flex-start", sm: "flex-end" }, children: [
512
- c.length > 0 && /* @__PURE__ */ e(s, { component: "nav", "aria-label": n, children: /* @__PURE__ */ e(
513
- g,
519
+ /* @__PURE__ */ d(b, { spacing: 2, alignItems: { xs: "flex-start", sm: "flex-end" }, children: [
520
+ a.length > 0 && /* @__PURE__ */ e(p, { component: "nav", "aria-label": n, children: /* @__PURE__ */ e(
521
+ b,
514
522
  {
515
523
  component: "ul",
516
524
  direction: "row",
@@ -518,8 +526,8 @@ function Yt({
518
526
  useFlexGap: !0,
519
527
  flexWrap: "wrap",
520
528
  sx: { listStyle: "none", m: 0, p: 0 },
521
- children: c.map((i) => /* @__PURE__ */ e("li", { children: /* @__PURE__ */ d(
522
- C,
529
+ children: a.map((i) => /* @__PURE__ */ e("li", { children: /* @__PURE__ */ d(
530
+ S,
523
531
  {
524
532
  href: i.href,
525
533
  color: "inherit",
@@ -529,27 +537,27 @@ function Yt({
529
537
  sx: { display: "inline-flex", alignItems: "center", gap: 0.5 },
530
538
  children: [
531
539
  i.label,
532
- i.external && /* @__PURE__ */ d(W, { children: [
533
- /* @__PURE__ */ e(y, { icon: $, size: 14 }),
534
- /* @__PURE__ */ e(j, { children: m })
540
+ i.external && /* @__PURE__ */ d($, { children: [
541
+ /* @__PURE__ */ e(C, { icon: H, size: 14 }),
542
+ /* @__PURE__ */ e(N, { children: f })
535
543
  ] })
536
544
  ]
537
545
  }
538
546
  ) }, i.href))
539
547
  }
540
548
  ) }),
541
- a
549
+ l
542
550
  ] })
543
551
  ]
544
552
  }
545
553
  ),
546
- p && /* @__PURE__ */ d(W, { children: [
554
+ u && /* @__PURE__ */ d($, { children: [
547
555
  /* @__PURE__ */ e(
548
- We,
556
+ Me,
549
557
  {
550
558
  sx: (i) => ({
551
559
  my: 3,
552
- borderColor: O(i.vietri.color.onSurface, 0.25)
560
+ borderColor: w(i.vietri.color.onSurface, 0.25)
553
561
  })
554
562
  }
555
563
  ),
@@ -558,7 +566,7 @@ function Yt({
558
566
  {
559
567
  variant: "body2",
560
568
  sx: (i) => ({ color: i.vietri.color.onSurfaceSoft }),
561
- children: p
569
+ children: u
562
570
  }
563
571
  )
564
572
  ] })
@@ -567,132 +575,132 @@ function Yt({
567
575
  }
568
576
  );
569
577
  }
570
- function qt({
571
- title: t,
572
- eyebrow: r,
578
+ function Jr({
579
+ title: r,
580
+ eyebrow: t,
573
581
  description: o,
574
- level: c = 2,
582
+ level: a = 2,
575
583
  align: n = "left"
576
584
  }) {
577
- const a = `h${c}`;
578
- return /* @__PURE__ */ d(g, { spacing: 1, sx: { textAlign: n, alignItems: n === "center" ? "center" : "flex-start" }, children: [
579
- r && /* @__PURE__ */ e(
585
+ const l = `h${a}`;
586
+ return /* @__PURE__ */ d(b, { spacing: 1, sx: { textAlign: n, alignItems: n === "center" ? "center" : "flex-start" }, children: [
587
+ t && /* @__PURE__ */ e(
580
588
  h,
581
589
  {
582
590
  component: "p",
583
591
  variant: "overline",
584
592
  color: "primary.main",
585
593
  sx: { display: "inline-flex", alignItems: "center", gap: 0.75, lineHeight: 1.5 },
586
- children: r
594
+ children: t
587
595
  }
588
596
  ),
589
- /* @__PURE__ */ e(h, { component: a, variant: "h3", children: t }),
597
+ /* @__PURE__ */ e(h, { component: l, variant: "h3", children: r }),
590
598
  o && /* @__PURE__ */ e(h, { variant: "body1", color: "text.secondary", sx: { maxWidth: 680 }, children: o })
591
599
  ] });
592
600
  }
593
- function Qt({
594
- label: t,
595
- value: r,
601
+ function Qr({
602
+ label: r,
603
+ value: t,
596
604
  onChange: o,
597
- options: c,
605
+ options: a,
598
606
  helperText: n,
599
- disabled: a,
600
- fullWidth: p,
601
- size: m,
602
- id: l
607
+ disabled: l,
608
+ fullWidth: u,
609
+ size: f,
610
+ id: c
603
611
  }) {
604
- const i = new Map(c.map((u) => [u.value, u]));
612
+ const i = new Map(a.map((s) => [s.value, s]));
605
613
  return /* @__PURE__ */ e(
606
614
  Te,
607
615
  {
608
616
  select: !0,
609
- id: l,
610
- label: t,
611
- value: r,
612
- onChange: (u) => o(u.target.value),
617
+ id: c,
618
+ label: r,
619
+ value: t,
620
+ onChange: (s) => o(s.target.value),
613
621
  helperText: n,
614
- disabled: a,
615
- fullWidth: p,
616
- size: m,
622
+ disabled: l,
623
+ fullWidth: u,
624
+ size: f,
617
625
  slotProps: {
618
626
  select: {
619
- renderValue: (u) => {
620
- const f = i.get(String(u));
621
- return f ? /* @__PURE__ */ d(s, { component: "span", sx: { display: "inline-flex", alignItems: "center", gap: 1 }, children: [
622
- f.adornment,
623
- f.label
627
+ renderValue: (s) => {
628
+ const m = i.get(String(s));
629
+ return m ? /* @__PURE__ */ d(p, { component: "span", sx: { display: "inline-flex", alignItems: "center", gap: 1 }, children: [
630
+ m.adornment,
631
+ m.label
624
632
  ] }) : "";
625
633
  }
626
634
  }
627
635
  },
628
- children: c.map((u) => /* @__PURE__ */ d(Pe, { value: u.value, sx: { gap: 1 }, children: [
629
- u.adornment,
630
- u.label,
631
- u.count !== void 0 && /* @__PURE__ */ e(h, { component: "span", variant: "caption", color: "text.secondary", sx: { ml: "auto", pl: 2 }, children: u.count })
632
- ] }, u.value))
636
+ children: a.map((s) => /* @__PURE__ */ d(je, { value: s.value, sx: { gap: 1 }, children: [
637
+ s.adornment,
638
+ s.label,
639
+ s.count !== void 0 && /* @__PURE__ */ e(h, { component: "span", variant: "caption", color: "text.secondary", sx: { ml: "auto", pl: 2 }, children: s.count })
640
+ ] }, s.value))
633
641
  }
634
642
  );
635
643
  }
636
- function Jt({
637
- open: t,
638
- onClose: r,
644
+ function Kr({
645
+ open: r,
646
+ onClose: t,
639
647
  title: o,
640
- description: c,
648
+ description: a,
641
649
  children: n,
642
- actions: a,
643
- closeLabel: p = "Close",
644
- maxWidth: m = "sm"
650
+ actions: l,
651
+ closeLabel: u = "Close",
652
+ maxWidth: f = "sm"
645
653
  }) {
646
- const l = D(), i = D();
654
+ const c = I(), i = I();
647
655
  return /* @__PURE__ */ d(
648
- Ie,
656
+ We,
649
657
  {
650
- open: t,
651
- onClose: r,
658
+ open: r,
659
+ onClose: t,
652
660
  fullWidth: !0,
653
- maxWidth: m,
654
- "aria-labelledby": l,
655
- "aria-describedby": c ? i : void 0,
661
+ maxWidth: f,
662
+ "aria-labelledby": c,
663
+ "aria-describedby": a ? i : void 0,
656
664
  children: [
657
- /* @__PURE__ */ e(Ae, { id: l, sx: { pr: 7 }, children: o }),
665
+ /* @__PURE__ */ e(Ee, { id: c, sx: { pr: 7 }, children: o }),
658
666
  /* @__PURE__ */ e(
659
- w,
667
+ k,
660
668
  {
661
- "aria-label": p,
662
- onClick: r,
669
+ "aria-label": u,
670
+ onClick: t,
663
671
  sx: { position: "absolute", top: 8, right: 8 },
664
- children: /* @__PURE__ */ e(y, { icon: L })
672
+ children: /* @__PURE__ */ e(C, { icon: L })
665
673
  }
666
674
  ),
667
- /* @__PURE__ */ d(De, { children: [
668
- c && /* @__PURE__ */ e(Ee, { id: i, sx: { mb: n ? 2 : 0 }, children: c }),
675
+ /* @__PURE__ */ d(Ae, { children: [
676
+ a && /* @__PURE__ */ e(Ie, { id: i, sx: { mb: n ? 2 : 0 }, children: a }),
669
677
  n
670
678
  ] }),
671
- a && /* @__PURE__ */ e(ke, { sx: { px: 3, pb: 2 }, children: a })
679
+ l && /* @__PURE__ */ e(De, { sx: { px: 3, pb: 2 }, children: l })
672
680
  ]
673
681
  }
674
682
  );
675
683
  }
676
- function Kt({
677
- open: t,
678
- onClose: r,
684
+ function Zr({
685
+ open: r,
686
+ onClose: t,
679
687
  title: o,
680
- eyebrow: c,
688
+ eyebrow: a,
681
689
  children: n,
682
- footer: a,
683
- anchor: p = "right",
684
- width: m = 420,
685
- closeLabel: l = "Close"
690
+ footer: l,
691
+ anchor: u = "right",
692
+ width: f = 420,
693
+ closeLabel: c = "Close"
686
694
  }) {
687
- const i = D();
688
- return /* @__PURE__ */ e(Z, { anchor: p, open: t, onClose: r, children: /* @__PURE__ */ d(
689
- s,
695
+ const i = I();
696
+ return /* @__PURE__ */ e(re, { anchor: u, open: r, onClose: t, children: /* @__PURE__ */ d(
697
+ p,
690
698
  {
691
699
  role: "dialog",
692
700
  "aria-modal": "true",
693
701
  "aria-labelledby": i,
694
702
  sx: {
695
- width: { xs: "100vw", sm: m },
703
+ width: { xs: "100vw", sm: f },
696
704
  maxWidth: "100vw",
697
705
  height: "100%",
698
706
  display: "flex",
@@ -700,52 +708,52 @@ function Kt({
700
708
  },
701
709
  children: [
702
710
  /* @__PURE__ */ d(
703
- g,
711
+ b,
704
712
  {
705
713
  direction: "row",
706
714
  justifyContent: "space-between",
707
715
  alignItems: "center",
708
716
  sx: { p: 3, pb: 1 },
709
717
  children: [
710
- /* @__PURE__ */ e(h, { component: "p", variant: "overline", color: "primary.main", children: c }),
711
- /* @__PURE__ */ e(w, { "aria-label": l, onClick: r, edge: "end", children: /* @__PURE__ */ e(y, { icon: L }) })
718
+ /* @__PURE__ */ e(h, { component: "p", variant: "overline", color: "primary.main", children: a }),
719
+ /* @__PURE__ */ e(k, { "aria-label": c, onClick: t, edge: "end", children: /* @__PURE__ */ e(C, { icon: L }) })
712
720
  ]
713
721
  }
714
722
  ),
715
- /* @__PURE__ */ d(s, { sx: { px: 3, pb: 2, flex: 1, overflowY: "auto" }, tabIndex: 0, children: [
723
+ /* @__PURE__ */ d(p, { sx: { px: 3, pb: 2, flex: 1, overflowY: "auto" }, tabIndex: 0, children: [
716
724
  /* @__PURE__ */ e(h, { id: i, component: "h2", variant: "h4", sx: { mb: 2 }, children: o }),
717
725
  n
718
726
  ] }),
719
- a && /* @__PURE__ */ e(s, { sx: { p: 3, borderTop: 1, borderColor: "divider" }, children: a })
727
+ l && /* @__PURE__ */ e(p, { sx: { p: 3, borderTop: 1, borderColor: "divider" }, children: l })
720
728
  ]
721
729
  }
722
730
  ) });
723
731
  }
724
- function Zt({
725
- label: t,
726
- value: r,
732
+ function et({
733
+ label: r,
734
+ value: t,
727
735
  copyLabel: o = "Copy",
728
- copiedLabel: c = "Copied!",
736
+ copiedLabel: a = "Copied!",
729
737
  errorLabel: n = "Could not copy",
730
- copiedDuration: a = 2e3
738
+ copiedDuration: l = 2e3
731
739
  }) {
732
- const [p, m] = I("idle"), l = E(void 0);
733
- X(() => () => clearTimeout(l.current), []);
740
+ const [u, f] = M("idle"), c = E(void 0);
741
+ q(() => () => clearTimeout(c.current), []);
734
742
  async function i() {
735
743
  try {
736
- await navigator.clipboard.writeText(r), m("copied");
744
+ await navigator.clipboard.writeText(t), f("copied");
737
745
  } catch {
738
- m("error");
746
+ f("error");
739
747
  }
740
- clearTimeout(l.current), l.current = setTimeout(() => m("idle"), a);
748
+ clearTimeout(c.current), c.current = setTimeout(() => f("idle"), l);
741
749
  }
742
- return /* @__PURE__ */ d(g, { spacing: 1.5, children: [
743
- /* @__PURE__ */ e(h, { component: "p", variant: "overline", color: "text.secondary", children: t }),
750
+ return /* @__PURE__ */ d(b, { spacing: 1.5, children: [
751
+ /* @__PURE__ */ e(h, { component: "p", variant: "overline", color: "text.secondary", children: r }),
744
752
  /* @__PURE__ */ e(
745
- s,
753
+ p,
746
754
  {
747
755
  role: "region",
748
- "aria-label": t,
756
+ "aria-label": r,
749
757
  tabIndex: 0,
750
758
  sx: {
751
759
  overflowX: "auto",
@@ -758,26 +766,26 @@ function Zt({
758
766
  fontSize: "0.8125rem",
759
767
  whiteSpace: "pre"
760
768
  },
761
- children: /* @__PURE__ */ e("code", { children: r })
769
+ children: /* @__PURE__ */ e("code", { children: t })
762
770
  }
763
771
  ),
764
772
  /* @__PURE__ */ e(
765
- z,
773
+ R,
766
774
  {
767
775
  onClick: i,
768
- startIcon: /* @__PURE__ */ e(y, { icon: p === "copied" ? Y : J }),
776
+ startIcon: /* @__PURE__ */ e(C, { icon: u === "copied" ? J : Z }),
769
777
  fullWidth: !0,
770
- children: p === "copied" ? c : o
778
+ children: u === "copied" ? a : o
771
779
  }
772
780
  ),
773
- /* @__PURE__ */ e(j, { role: "status", "aria-live": "polite", children: p === "copied" ? c : p === "error" ? n : "" })
781
+ /* @__PURE__ */ e(N, { role: "status", "aria-live": "polite", children: u === "copied" ? a : u === "error" ? n : "" })
774
782
  ] });
775
783
  }
776
- function er({ href: t, children: r = "Skip to content" }) {
784
+ function rt({ href: r, children: t = "Skip to content" }) {
777
785
  return /* @__PURE__ */ e(
778
- C,
786
+ S,
779
787
  {
780
- href: t,
788
+ href: r,
781
789
  sx: (o) => ({
782
790
  position: "fixed",
783
791
  top: o.spacing(1),
@@ -794,74 +802,96 @@ function er({ href: t, children: r = "Skip to content" }) {
794
802
  transform: "translateY(-300%)",
795
803
  "&:focus": { transform: "translateY(0)" }
796
804
  }),
797
- children: r
805
+ children: t
798
806
  }
799
807
  );
800
808
  }
801
- function tr({
802
- title: t,
803
- eyebrow: r,
809
+ function tt({
810
+ title: r,
811
+ eyebrow: t,
804
812
  description: o,
805
- actions: c,
813
+ actions: a,
806
814
  level: n = 1,
807
- align: a = "left"
815
+ align: l = "left",
816
+ image: u,
817
+ imagePosition: f = "center"
808
818
  }) {
809
- const p = `h${n}`, m = a === "center";
819
+ const c = `h${n}`, i = l === "center", s = !!u;
810
820
  return /* @__PURE__ */ e(
811
- s,
821
+ p,
812
822
  {
813
823
  component: "section",
814
- sx: (l) => ({
815
- py: { xs: 6, md: 10 },
816
- color: l.vietri.color.onSurface,
817
- background: l.vietri.gradient.surface,
818
- // Focus ring and secondary buttons that stay visible on a dark surface.
819
- "& a:focus-visible, & button:focus-visible": {
820
- outline: "2px solid",
821
- outlineColor: l.vietri.color.onSurface,
822
- outlineOffset: 3
823
- },
824
- "& .MuiButton-outlined, & .MuiButton-text": {
825
- color: "inherit",
826
- borderColor: "currentColor"
827
- }
828
- }),
829
- children: /* @__PURE__ */ e(P, { maxWidth: "lg", children: /* @__PURE__ */ d(
830
- g,
824
+ sx: (m) => {
825
+ const g = m.vietri.color.scrim, v = m.vietri.gradient.surface, x = `linear-gradient(0deg, ${g} 0%, ${w(g, 0)} 18%)`, V = `url(${JSON.stringify(u ?? "")})`;
826
+ return {
827
+ display: "flex",
828
+ alignItems: "center",
829
+ py: { xs: 6, md: 10 },
830
+ ...s && { minHeight: { xs: 440, md: 600 } },
831
+ color: m.vietri.color.onSurface,
832
+ ...s ? {
833
+ // Layers, from top to bottom: dark layer, bottom fade, photo, surface.
834
+ backgroundImage: {
835
+ xs: `linear-gradient(${w(g, 0.8)}, ${w(g, 0.8)}), ${x}, ${V}, ${v}`,
836
+ md: `linear-gradient(90deg, ${w(g, 0.84)} 0%, ${w(g, 0.74)} 62%, ${w(g, 0.1)} 100%), ${x}, ${V}, ${v}`
837
+ },
838
+ backgroundSize: "cover",
839
+ backgroundPosition: f,
840
+ backgroundRepeat: "no-repeat"
841
+ } : { background: v },
842
+ // Focus ring and secondary buttons that stay visible on a dark surface.
843
+ "& a:focus-visible, & button:focus-visible": {
844
+ outline: "2px solid",
845
+ outlineColor: m.vietri.color.onSurface,
846
+ outlineOffset: 3
847
+ },
848
+ "& .MuiButton-outlined, & .MuiButton-text": {
849
+ color: "inherit",
850
+ borderColor: "currentColor"
851
+ }
852
+ };
853
+ },
854
+ children: /* @__PURE__ */ e(j, { maxWidth: "lg", sx: { width: "100%" }, children: /* @__PURE__ */ d(
855
+ b,
831
856
  {
832
857
  spacing: 2,
833
- sx: { alignItems: m ? "center" : "flex-start", textAlign: a },
858
+ sx: {
859
+ alignItems: i ? "center" : "flex-start",
860
+ textAlign: l,
861
+ // With an image the text stays in the left 60%, where the dark layer is at its strongest.
862
+ ...s && { maxWidth: { md: "60%" }, ...i && { mx: "auto" } }
863
+ },
834
864
  children: [
835
- r && /* @__PURE__ */ e(
865
+ t && /* @__PURE__ */ e(
836
866
  h,
837
867
  {
838
868
  component: "p",
839
869
  variant: "overline",
840
- sx: (l) => ({ color: l.vietri.color.onSurfaceSoft }),
841
- children: r
870
+ sx: (m) => ({ color: m.vietri.color.onSurfaceSoft }),
871
+ children: t
842
872
  }
843
873
  ),
844
- /* @__PURE__ */ e(h, { component: p, variant: "h2", sx: { maxWidth: 900 }, children: t }),
874
+ /* @__PURE__ */ e(h, { component: c, variant: "h2", sx: { maxWidth: 900 }, children: r }),
845
875
  o && /* @__PURE__ */ e(
846
876
  h,
847
877
  {
848
878
  variant: "body1",
849
- sx: (l) => ({
879
+ sx: (m) => ({
850
880
  maxWidth: 680,
851
- color: l.vietri.color.onSurfaceSoft
881
+ color: m.vietri.color.onSurfaceSoft
852
882
  }),
853
883
  children: o
854
884
  }
855
885
  ),
856
- c && /* @__PURE__ */ e(
857
- g,
886
+ a && /* @__PURE__ */ e(
887
+ b,
858
888
  {
859
889
  direction: "row",
860
890
  spacing: 2,
861
891
  useFlexGap: !0,
862
892
  flexWrap: "wrap",
863
- sx: { pt: 2, justifyContent: m ? "center" : "flex-start" },
864
- children: c
893
+ sx: { pt: 2, justifyContent: i ? "center" : "flex-start" },
894
+ children: a
865
895
  }
866
896
  )
867
897
  ]
@@ -870,40 +900,40 @@ function tr({
870
900
  }
871
901
  );
872
902
  }
873
- function rr({
874
- icon: t,
875
- title: r,
903
+ function ot({
904
+ icon: r,
905
+ title: t,
876
906
  description: o,
877
- level: c = 3,
907
+ level: a = 3,
878
908
  children: n
879
909
  }) {
880
- const a = `h${c}`;
881
- return /* @__PURE__ */ e(B, { sx: { height: "100%" }, children: /* @__PURE__ */ d(k, { children: [
910
+ const l = `h${a}`;
911
+ return /* @__PURE__ */ e(D, { sx: { height: "100%" }, children: /* @__PURE__ */ d(A, { children: [
882
912
  /* @__PURE__ */ e(
883
- s,
913
+ p,
884
914
  {
885
- sx: (p) => ({
915
+ sx: (u) => ({
886
916
  display: "grid",
887
917
  placeItems: "center",
888
918
  width: 44,
889
919
  height: 44,
890
920
  mb: 2,
891
921
  borderRadius: 2,
892
- bgcolor: p.vietri.color.chip,
893
- color: p.palette.primary.main
922
+ bgcolor: u.vietri.color.chip,
923
+ color: u.palette.primary.main
894
924
  }),
895
- children: /* @__PURE__ */ e(y, { icon: t, size: 22 })
925
+ children: /* @__PURE__ */ e(C, { icon: r, size: 22 })
896
926
  }
897
927
  ),
898
- /* @__PURE__ */ e(h, { component: a, variant: "h6", gutterBottom: !0, children: r }),
928
+ /* @__PURE__ */ e(h, { component: l, variant: "h6", gutterBottom: !0, children: t }),
899
929
  o && /* @__PURE__ */ e(h, { variant: "body2", color: "text.secondary", children: o }),
900
- n && /* @__PURE__ */ e(s, { sx: { mt: 2 }, children: n })
930
+ n && /* @__PURE__ */ e(p, { sx: { mt: 2 }, children: n })
901
931
  ] }) });
902
932
  }
903
- function or({ steps: t, level: r = 3, ariaLabel: o }) {
904
- const c = `h${r}`;
933
+ function it({ steps: r, level: t = 3, ariaLabel: o }) {
934
+ const a = `h${t}`;
905
935
  return /* @__PURE__ */ e(
906
- s,
936
+ p,
907
937
  {
908
938
  component: "ol",
909
939
  role: "list",
@@ -916,52 +946,52 @@ function or({ steps: t, level: r = 3, ariaLabel: o }) {
916
946
  gap: 3,
917
947
  gridTemplateColumns: {
918
948
  xs: "1fr",
919
- md: `repeat(${Math.max(t.length, 1)}, minmax(0, 1fr))`
949
+ md: `repeat(${Math.max(r.length, 1)}, minmax(0, 1fr))`
920
950
  }
921
951
  },
922
- children: t.map((n, a) => /* @__PURE__ */ e("li", { children: /* @__PURE__ */ d(g, { spacing: 1, children: [
952
+ children: r.map((n, l) => /* @__PURE__ */ e("li", { children: /* @__PURE__ */ d(b, { spacing: 1, children: [
923
953
  /* @__PURE__ */ e(
924
- s,
954
+ p,
925
955
  {
926
956
  "aria-hidden": "true",
927
- sx: (p) => ({
957
+ sx: (u) => ({
928
958
  display: "grid",
929
959
  placeItems: "center",
930
960
  width: 36,
931
961
  height: 36,
932
962
  borderRadius: "50%",
933
963
  fontWeight: 600,
934
- bgcolor: p.palette.primary.main,
935
- color: p.palette.primary.contrastText
964
+ bgcolor: u.palette.primary.main,
965
+ color: u.palette.primary.contrastText
936
966
  }),
937
- children: a + 1
967
+ children: l + 1
938
968
  }
939
969
  ),
940
- /* @__PURE__ */ e(h, { component: c, variant: "h6", children: n.title }),
970
+ /* @__PURE__ */ e(h, { component: a, variant: "h6", children: n.title }),
941
971
  n.description && /* @__PURE__ */ e(h, { variant: "body2", color: "text.secondary", children: n.description })
942
972
  ] }) }, n.title))
943
973
  }
944
974
  );
945
975
  }
946
- function ir({ entries: t, level: r = 3, ariaLabel: o }) {
947
- const c = `h${r}`;
976
+ function nt({ entries: r, level: t = 3, ariaLabel: o }) {
977
+ const a = `h${t}`;
948
978
  return /* @__PURE__ */ e(
949
- s,
979
+ p,
950
980
  {
951
981
  component: "ol",
952
982
  role: "list",
953
983
  "aria-label": o,
954
984
  sx: { listStyle: "none", m: 0, p: 0 },
955
- children: t.map((n) => /* @__PURE__ */ d(
956
- s,
985
+ children: r.map((n) => /* @__PURE__ */ d(
986
+ p,
957
987
  {
958
988
  component: "li",
959
989
  id: n.id,
960
- sx: (a) => ({
990
+ sx: (l) => ({
961
991
  position: "relative",
962
992
  pl: 4,
963
993
  pb: 5,
964
- scrollMarginTop: a.spacing(10),
994
+ scrollMarginTop: l.spacing(10),
965
995
  // Vertical line between dots.
966
996
  "&::before": {
967
997
  content: '""',
@@ -970,32 +1000,32 @@ function ir({ entries: t, level: r = 3, ariaLabel: o }) {
970
1000
  top: 14,
971
1001
  bottom: 0,
972
1002
  width: 2,
973
- bgcolor: a.palette.divider
1003
+ bgcolor: l.palette.divider
974
1004
  },
975
1005
  "&:last-of-type": { pb: 0 },
976
1006
  "&:last-of-type::before": { display: "none" }
977
1007
  }),
978
1008
  children: [
979
1009
  /* @__PURE__ */ e(
980
- s,
1010
+ p,
981
1011
  {
982
1012
  "aria-hidden": "true",
983
- sx: (a) => ({
1013
+ sx: (l) => ({
984
1014
  position: "absolute",
985
1015
  left: 0,
986
1016
  top: 6,
987
1017
  width: 16,
988
1018
  height: 16,
989
1019
  borderRadius: "50%",
990
- bgcolor: a.palette.primary.main,
991
- border: `3px solid ${a.palette.background.default}`,
1020
+ bgcolor: l.palette.primary.main,
1021
+ border: `3px solid ${l.palette.background.default}`,
992
1022
  boxSizing: "border-box"
993
1023
  })
994
1024
  }
995
1025
  ),
996
- /* @__PURE__ */ e(h, { component: c, variant: "h5", children: n.label }),
1026
+ /* @__PURE__ */ e(h, { component: a, variant: "h5", children: n.label }),
997
1027
  n.description && /* @__PURE__ */ e(h, { variant: "body2", color: "text.secondary", sx: { mt: 0.5 }, children: n.description }),
998
- n.content && /* @__PURE__ */ e(s, { sx: { mt: 2 }, children: n.content })
1028
+ n.content && /* @__PURE__ */ e(p, { sx: { mt: 2 }, children: n.content })
999
1029
  ]
1000
1030
  },
1001
1031
  n.id
@@ -1003,7 +1033,7 @@ function ir({ entries: t, level: r = 3, ariaLabel: o }) {
1003
1033
  }
1004
1034
  );
1005
1035
  }
1006
- const _ = {
1036
+ const X = {
1007
1037
  position: "static",
1008
1038
  color: "inherit",
1009
1039
  font: "inherit",
@@ -1015,34 +1045,34 @@ const _ = {
1015
1045
  inset: 0
1016
1046
  }
1017
1047
  };
1018
- function nr({
1019
- name: t,
1020
- subtitle: r,
1048
+ function at({
1049
+ name: r,
1050
+ subtitle: t,
1021
1051
  bio: o,
1022
- tags: c = [],
1052
+ tags: a = [],
1023
1053
  href: n,
1024
- onClick: a,
1025
- level: p = 3,
1026
- bioLines: m = 3
1054
+ onClick: l,
1055
+ level: u = 3,
1056
+ bioLines: f = 3
1027
1057
  }) {
1028
- const l = `h${p}`, i = !!(n || a);
1058
+ const c = `h${u}`, i = !!(n || l);
1029
1059
  return /* @__PURE__ */ e(
1030
- B,
1060
+ D,
1031
1061
  {
1032
- sx: (f) => ({
1062
+ sx: (m) => ({
1033
1063
  position: "relative",
1034
1064
  height: "100%",
1035
- ...i && { "&:hover": { borderColor: f.palette.primary.main } },
1065
+ ...i && { "&:hover": { borderColor: m.palette.primary.main } },
1036
1066
  // One focus ring for the whole card, instead of one around the name.
1037
1067
  "&:has(:focus-visible)": {
1038
- outline: `2px solid ${f.palette.primary.main}`,
1068
+ outline: `2px solid ${m.palette.primary.main}`,
1039
1069
  outlineOffset: 2
1040
1070
  },
1041
1071
  "& a:focus-visible, & button:focus-visible": { outline: "none" }
1042
1072
  }),
1043
- children: /* @__PURE__ */ d(k, { children: [
1044
- /* @__PURE__ */ e(h, { component: l, variant: "h6", children: n ? /* @__PURE__ */ e(C, { href: n, underline: "none", sx: _, children: t }) : a ? /* @__PURE__ */ e(C, { component: "button", type: "button", onClick: a, underline: "none", sx: _, children: t }) : t }),
1045
- r && /* @__PURE__ */ e(h, { variant: "body2", color: "text.secondary", children: r }),
1073
+ children: /* @__PURE__ */ d(A, { children: [
1074
+ /* @__PURE__ */ e(h, { component: c, variant: "h6", children: n ? /* @__PURE__ */ e(S, { href: n, underline: "none", sx: X, children: r }) : l ? /* @__PURE__ */ e(S, { component: "button", type: "button", onClick: l, underline: "none", sx: X, children: r }) : r }),
1075
+ t && /* @__PURE__ */ e(h, { variant: "body2", color: "text.secondary", children: t }),
1046
1076
  o && /* @__PURE__ */ e(
1047
1077
  h,
1048
1078
  {
@@ -1050,21 +1080,21 @@ function nr({
1050
1080
  sx: {
1051
1081
  mt: 1,
1052
1082
  display: "-webkit-box",
1053
- WebkitLineClamp: m,
1083
+ WebkitLineClamp: f,
1054
1084
  WebkitBoxOrient: "vertical",
1055
1085
  overflow: "hidden"
1056
1086
  },
1057
1087
  children: o
1058
1088
  }
1059
1089
  ),
1060
- c.length > 0 && /* @__PURE__ */ e(g, { direction: "row", spacing: 1, useFlexGap: !0, flexWrap: "wrap", sx: { mt: 2 }, children: c.map(
1061
- (f) => f.color ? /* @__PURE__ */ e(_e, { label: f.label, color: f.color }, f.label) : /* @__PURE__ */ e(U, { label: f.label, size: "small" }, f.label)
1090
+ a.length > 0 && /* @__PURE__ */ e(b, { direction: "row", spacing: 1, useFlexGap: !0, flexWrap: "wrap", sx: { mt: 2 }, children: a.map(
1091
+ (m) => m.color ? /* @__PURE__ */ e(_e, { label: m.label, color: m.color }, m.label) : /* @__PURE__ */ e(Y, { label: m.label, size: "small" }, m.label)
1062
1092
  ) })
1063
1093
  ] })
1064
1094
  }
1065
1095
  );
1066
1096
  }
1067
- const A = {
1097
+ const W = {
1068
1098
  position: "static",
1069
1099
  color: "inherit",
1070
1100
  font: "inherit",
@@ -1075,58 +1105,75 @@ const A = {
1075
1105
  position: "absolute",
1076
1106
  inset: 0
1077
1107
  }
1078
- }, Ue = (t) => ({
1108
+ }, Xe = (r) => ({
1079
1109
  "&:has(:focus-visible)": {
1080
- outline: `2px solid ${t.palette.primary.main}`,
1110
+ outline: `2px solid ${r.palette.primary.main}`,
1081
1111
  outlineOffset: 2
1082
1112
  },
1083
1113
  "& a:focus-visible, & button:focus-visible": { outline: "none" }
1084
1114
  });
1085
- function ar({
1086
- title: t,
1087
- subtitle: r,
1115
+ function lt({
1116
+ title: r,
1117
+ subtitle: t,
1088
1118
  meta: o,
1089
- imageUrl: c,
1119
+ imageUrl: a,
1090
1120
  duration: n,
1091
- badge: a,
1092
- href: p,
1093
- onClick: m,
1094
- level: l = 3,
1095
- playIcon: i = !0
1121
+ badge: l,
1122
+ href: u,
1123
+ onClick: f,
1124
+ level: c = 3,
1125
+ playIcon: i = !0,
1126
+ aspectRatio: s = "16 / 9"
1096
1127
  }) {
1097
- const u = `h${l}`, f = !!(p || m);
1128
+ const m = `h${c}`, g = !!(u || f);
1098
1129
  return /* @__PURE__ */ d(
1099
- B,
1130
+ D,
1100
1131
  {
1101
- sx: (b) => ({
1132
+ sx: (x) => ({
1102
1133
  position: "relative",
1103
1134
  height: "100%",
1104
1135
  overflow: "hidden",
1105
- ...f && { "&:hover": { borderColor: b.palette.primary.main } },
1106
- ...Ue(b)
1136
+ transition: "transform 250ms ease, box-shadow 250ms ease, border-color 250ms ease",
1137
+ ...g && {
1138
+ "&:hover": {
1139
+ transform: "scale(1.03)",
1140
+ boxShadow: x.vietri.shadow.lg,
1141
+ borderColor: x.palette.primary.main
1142
+ },
1143
+ "&:hover .media-card-image": { transform: "scale(1.06)" }
1144
+ },
1145
+ ...Xe(x)
1107
1146
  }),
1108
1147
  children: [
1109
1148
  /* @__PURE__ */ d(
1110
- s,
1149
+ p,
1111
1150
  {
1112
- sx: (b) => ({
1151
+ sx: (x) => ({
1113
1152
  position: "relative",
1114
- aspectRatio: "16 / 9",
1115
- bgcolor: b.vietri.color.chip
1153
+ aspectRatio: s,
1154
+ overflow: "hidden",
1155
+ bgcolor: x.vietri.color.chip
1116
1156
  }),
1117
1157
  children: [
1118
- c && /* @__PURE__ */ e(
1119
- s,
1158
+ a && /* @__PURE__ */ e(
1159
+ p,
1120
1160
  {
1121
1161
  component: "img",
1122
- src: c,
1162
+ className: "media-card-image",
1163
+ src: a,
1123
1164
  alt: "",
1124
1165
  loading: "lazy",
1125
- sx: { display: "block", width: "100%", height: "100%", objectFit: "cover" }
1166
+ sx: {
1167
+ display: "block",
1168
+ width: "100%",
1169
+ height: "100%",
1170
+ objectFit: "cover",
1171
+ transition: "transform 400ms ease"
1172
+ }
1126
1173
  }
1127
1174
  ),
1128
1175
  i && /* @__PURE__ */ e(
1129
- s,
1176
+ p,
1130
1177
  {
1131
1178
  "aria-hidden": "true",
1132
1179
  sx: {
@@ -1142,13 +1189,13 @@ function ar({
1142
1189
  bgcolor: "rgba(0, 0, 0, 0.8)",
1143
1190
  color: "#FFFFFF"
1144
1191
  },
1145
- children: /* @__PURE__ */ e(y, { icon: H, size: 22 })
1192
+ children: /* @__PURE__ */ e(C, { icon: P, size: 22 })
1146
1193
  }
1147
1194
  ),
1148
- a && /* @__PURE__ */ e(
1149
- s,
1195
+ l && /* @__PURE__ */ e(
1196
+ p,
1150
1197
  {
1151
- sx: (b) => ({
1198
+ sx: (x) => ({
1152
1199
  position: "absolute",
1153
1200
  top: 8,
1154
1201
  left: 8,
@@ -1157,14 +1204,14 @@ function ar({
1157
1204
  borderRadius: 1,
1158
1205
  fontSize: "0.75rem",
1159
1206
  fontWeight: 600,
1160
- bgcolor: b.vietri.color.action[0],
1161
- color: b.vietri.color.onAction
1207
+ bgcolor: x.vietri.color.action[0],
1208
+ color: x.vietri.color.onAction
1162
1209
  }),
1163
- children: a
1210
+ children: l
1164
1211
  }
1165
1212
  ),
1166
1213
  n && /* @__PURE__ */ e(
1167
- s,
1214
+ p,
1168
1215
  {
1169
1216
  sx: {
1170
1217
  position: "absolute",
@@ -1184,80 +1231,93 @@ function ar({
1184
1231
  ]
1185
1232
  }
1186
1233
  ),
1187
- /* @__PURE__ */ d(k, { children: [
1234
+ /* @__PURE__ */ d(A, { children: [
1188
1235
  o && /* @__PURE__ */ e(h, { component: "p", variant: "overline", color: "text.secondary", children: o }),
1189
- /* @__PURE__ */ e(h, { component: u, variant: "h6", children: p ? /* @__PURE__ */ e(C, { href: p, underline: "none", sx: A, children: t }) : m ? /* @__PURE__ */ e(C, { component: "button", type: "button", onClick: m, underline: "none", sx: A, children: t }) : t }),
1190
- r && /* @__PURE__ */ e(h, { variant: "body2", color: "text.secondary", children: r })
1236
+ /* @__PURE__ */ e(h, { component: m, variant: "h6", children: u ? /* @__PURE__ */ e(S, { href: u, underline: "none", sx: W, children: r }) : f ? /* @__PURE__ */ e(S, { component: "button", type: "button", onClick: f, underline: "none", sx: W, children: r }) : r }),
1237
+ t && /* @__PURE__ */ e(h, { variant: "body2", color: "text.secondary", children: t })
1191
1238
  ] })
1192
1239
  ]
1193
1240
  }
1194
1241
  );
1195
1242
  }
1196
- function lr({
1197
- title: t,
1198
- children: r,
1243
+ function ct({
1244
+ title: r,
1245
+ children: t,
1199
1246
  level: o = 2,
1200
- itemWidth: c = 280,
1247
+ itemWidth: a = 280,
1201
1248
  previousLabel: n = "Scroll left",
1202
- nextLabel: a = "Scroll right",
1203
- action: p
1249
+ nextLabel: l = "Scroll right",
1250
+ action: u
1204
1251
  }) {
1205
- const m = `h${o}`, l = D(), i = E(null), u = ie.toArray(r);
1206
- function f(x) {
1207
- const b = i.current;
1208
- if (!b) return;
1209
- const re = typeof window.matchMedia == "function" && window.matchMedia("(prefers-reduced-motion: reduce)").matches;
1210
- b.scrollBy?.({
1211
- left: x * b.clientWidth * 0.8,
1212
- behavior: re ? "auto" : "smooth"
1252
+ const f = `h${o}`, c = I(), i = E(null), s = ne.toArray(t);
1253
+ function m(g) {
1254
+ const v = i.current;
1255
+ if (!v) return;
1256
+ const x = typeof window.matchMedia == "function" && window.matchMedia("(prefers-reduced-motion: reduce)").matches;
1257
+ v.scrollBy?.({
1258
+ left: g * v.clientWidth * 0.8,
1259
+ behavior: x ? "auto" : "smooth"
1213
1260
  });
1214
1261
  }
1215
- return /* @__PURE__ */ d(s, { component: "section", "aria-labelledby": l, sx: { mb: 4 }, children: [
1262
+ return /* @__PURE__ */ d(p, { component: "section", "aria-labelledby": c, sx: { mb: 4 }, children: [
1216
1263
  /* @__PURE__ */ d(
1217
- g,
1264
+ b,
1218
1265
  {
1219
1266
  direction: "row",
1220
1267
  justifyContent: "space-between",
1221
1268
  alignItems: "center",
1222
1269
  sx: { mb: 2 },
1223
1270
  children: [
1224
- /* @__PURE__ */ e(h, { id: l, component: m, variant: "h5", children: t }),
1225
- /* @__PURE__ */ d(g, { direction: "row", spacing: 1, alignItems: "center", children: [
1226
- p,
1227
- /* @__PURE__ */ e(w, { "aria-label": n, onClick: () => f(-1), children: /* @__PURE__ */ e(y, { icon: q }) }),
1228
- /* @__PURE__ */ e(w, { "aria-label": a, onClick: () => f(1), children: /* @__PURE__ */ e(y, { icon: Q }) })
1271
+ /* @__PURE__ */ e(h, { id: c, component: f, variant: "h5", children: r }),
1272
+ /* @__PURE__ */ d(b, { direction: "row", spacing: 1, alignItems: "center", children: [
1273
+ u,
1274
+ /* @__PURE__ */ e(k, { color: "primary", "aria-label": n, onClick: () => m(-1), children: /* @__PURE__ */ e(C, { icon: Q }) }),
1275
+ /* @__PURE__ */ e(k, { color: "primary", "aria-label": l, onClick: () => m(1), children: /* @__PURE__ */ e(C, { icon: K }) })
1229
1276
  ] })
1230
1277
  ]
1231
1278
  }
1232
1279
  ),
1233
1280
  /* @__PURE__ */ e(
1234
- s,
1281
+ p,
1235
1282
  {
1236
1283
  ref: i,
1237
1284
  tabIndex: 0,
1238
- sx: (x) => ({
1285
+ sx: (g) => ({
1239
1286
  overflowX: "auto",
1240
- pb: 1,
1287
+ // Room for the cards that grow on hover, which the scroll area would clip.
1288
+ pt: 1.5,
1289
+ pb: 2,
1241
1290
  scrollSnapType: "x proximity",
1291
+ // A thin scrollbar in the theme's text color, instead of the heavy one of
1292
+ // the system. Still visible (it uses the secondary text color), so people
1293
+ // who scroll with a mouse can see there is more to the right.
1294
+ scrollbarWidth: "thin",
1295
+ scrollbarColor: `${g.palette.text.secondary} transparent`,
1296
+ "&::-webkit-scrollbar": { height: 8 },
1297
+ "&::-webkit-scrollbar-track": { backgroundColor: "transparent" },
1298
+ "&::-webkit-scrollbar-thumb": {
1299
+ backgroundColor: g.palette.text.secondary,
1300
+ borderRadius: 4
1301
+ },
1242
1302
  "&:focus-visible": {
1243
- outline: `2px solid ${x.palette.primary.main}`,
1303
+ outline: `2px solid ${g.palette.primary.main}`,
1244
1304
  outlineOffset: 2
1245
1305
  }
1246
1306
  }),
1247
1307
  children: /* @__PURE__ */ e(
1248
- s,
1308
+ p,
1249
1309
  {
1250
1310
  component: "ul",
1251
1311
  role: "list",
1252
1312
  sx: { listStyle: "none", m: 0, p: 0, display: "flex", gap: 2 },
1253
- children: u.map((x, b) => /* @__PURE__ */ e(
1254
- s,
1313
+ children: s.map((g, v) => /* @__PURE__ */ e(
1314
+ p,
1255
1315
  {
1256
1316
  component: "li",
1257
- sx: { flex: `0 0 ${c}px`, scrollSnapAlign: "start" },
1258
- children: x
1317
+ sx: { flex: `0 0 ${a}px`, scrollSnapAlign: "start" },
1318
+ children: g
1259
1319
  },
1260
- b
1320
+ v
1261
1321
  ))
1262
1322
  }
1263
1323
  )
@@ -1265,23 +1325,23 @@ function lr({
1265
1325
  )
1266
1326
  ] });
1267
1327
  }
1268
- function Xe(t, r, o) {
1269
- const c = new URLSearchParams({ rel: "0", modestbranding: "1" });
1270
- return r && c.set("start", String(Math.floor(r))), o && c.set("autoplay", "1"), `https://www.youtube-nocookie.com/embed/${encodeURIComponent(t)}?${c.toString()}`;
1328
+ function Ye(r, t, o) {
1329
+ const a = new URLSearchParams({ rel: "0", modestbranding: "1" });
1330
+ return t && a.set("start", String(Math.floor(t))), o && a.set("autoplay", "1"), `https://www.youtube-nocookie.com/embed/${encodeURIComponent(r)}?${a.toString()}`;
1271
1331
  }
1272
- function cr({
1273
- videoId: t,
1274
- title: r,
1332
+ function dt({
1333
+ videoId: r,
1334
+ title: t,
1275
1335
  poster: o,
1276
- start: c,
1336
+ start: a,
1277
1337
  lazy: n = !0,
1278
- playLabel: a
1338
+ playLabel: l
1279
1339
  }) {
1280
- const [p, m] = I(!n), l = E(!1), i = E(null);
1281
- return X(() => {
1282
- p && l.current && i.current?.focus();
1283
- }, [p]), /* @__PURE__ */ e(
1284
- s,
1340
+ const [u, f] = M(!n), c = E(!1), i = E(null);
1341
+ return q(() => {
1342
+ u && c.current && i.current?.focus();
1343
+ }, [u]), /* @__PURE__ */ e(
1344
+ p,
1285
1345
  {
1286
1346
  sx: {
1287
1347
  position: "relative",
@@ -1291,12 +1351,12 @@ function cr({
1291
1351
  borderRadius: 2,
1292
1352
  bgcolor: "#000000"
1293
1353
  },
1294
- children: p ? /* @__PURE__ */ e(
1354
+ children: u ? /* @__PURE__ */ e(
1295
1355
  "iframe",
1296
1356
  {
1297
1357
  ref: i,
1298
- src: Xe(t, c, l.current),
1299
- title: r,
1358
+ src: Ye(r, a, c.current),
1359
+ title: t,
1300
1360
  allow: "accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share",
1301
1361
  allowFullScreen: !0,
1302
1362
  referrerPolicy: "strict-origin-when-cross-origin",
@@ -1304,11 +1364,11 @@ function cr({
1304
1364
  style: { position: "absolute", inset: 0, width: "100%", height: "100%", border: 0 }
1305
1365
  }
1306
1366
  ) : /* @__PURE__ */ d(
1307
- je,
1367
+ Ne,
1308
1368
  {
1309
- "aria-label": a ?? `Play video: ${r}`,
1369
+ "aria-label": l ?? `Play video: ${t}`,
1310
1370
  onClick: () => {
1311
- l.current = !0, m(!0);
1371
+ c.current = !0, f(!0);
1312
1372
  },
1313
1373
  sx: {
1314
1374
  position: "absolute",
@@ -1322,7 +1382,7 @@ function cr({
1322
1382
  },
1323
1383
  children: [
1324
1384
  o && /* @__PURE__ */ e(
1325
- s,
1385
+ p,
1326
1386
  {
1327
1387
  component: "img",
1328
1388
  src: o,
@@ -1332,7 +1392,7 @@ function cr({
1332
1392
  }
1333
1393
  ),
1334
1394
  /* @__PURE__ */ e(
1335
- s,
1395
+ p,
1336
1396
  {
1337
1397
  "aria-hidden": "true",
1338
1398
  sx: {
@@ -1345,7 +1405,7 @@ function cr({
1345
1405
  bgcolor: "rgba(0, 0, 0, 0.8)",
1346
1406
  color: "#FFFFFF"
1347
1407
  },
1348
- children: /* @__PURE__ */ e(y, { icon: H, size: 32 })
1408
+ children: /* @__PURE__ */ e(C, { icon: P, size: 32 })
1349
1409
  }
1350
1410
  )
1351
1411
  ]
@@ -1354,57 +1414,57 @@ function cr({
1354
1414
  }
1355
1415
  );
1356
1416
  }
1357
- const Ye = (t) => ({
1417
+ const qe = (r) => ({
1358
1418
  "&:has(:focus-visible)": {
1359
- outline: `2px solid ${t.palette.primary.main}`,
1419
+ outline: `2px solid ${r.palette.primary.main}`,
1360
1420
  outlineOffset: -2
1361
1421
  },
1362
1422
  "& a:focus-visible, & button:focus-visible": { outline: "none" }
1363
1423
  });
1364
- function dr({
1365
- episodes: t,
1366
- currentId: r,
1424
+ function st({
1425
+ episodes: r,
1426
+ currentId: t,
1367
1427
  onSelect: o,
1368
- level: c = 3,
1428
+ level: a = 3,
1369
1429
  ariaLabel: n,
1370
- episodeLabel: a = (m) => `Episode ${m}`,
1371
- currentLabel: p = "Now playing"
1430
+ episodeLabel: l = (f) => `Episode ${f}`,
1431
+ currentLabel: u = "Now playing"
1372
1432
  }) {
1373
- const m = `h${c}`;
1433
+ const f = `h${a}`;
1374
1434
  return /* @__PURE__ */ e(
1375
- s,
1435
+ p,
1376
1436
  {
1377
1437
  component: "ol",
1378
1438
  role: "list",
1379
1439
  "aria-label": n,
1380
1440
  sx: { listStyle: "none", m: 0, p: 0 },
1381
- children: t.map((l) => {
1382
- const i = l.id === r, u = !!(o || l.href), f = o ? /* @__PURE__ */ e(
1383
- C,
1441
+ children: r.map((c) => {
1442
+ const i = c.id === t, s = !!(o || c.href), m = o ? /* @__PURE__ */ e(
1443
+ S,
1384
1444
  {
1385
1445
  component: "button",
1386
1446
  type: "button",
1387
- onClick: () => o(l.id),
1447
+ onClick: () => o(c.id),
1388
1448
  "aria-current": i ? "true" : void 0,
1389
1449
  underline: "none",
1390
- sx: A,
1391
- children: l.title
1450
+ sx: W,
1451
+ children: c.title
1392
1452
  }
1393
- ) : l.href ? /* @__PURE__ */ e(
1394
- C,
1453
+ ) : c.href ? /* @__PURE__ */ e(
1454
+ S,
1395
1455
  {
1396
- href: l.href,
1456
+ href: c.href,
1397
1457
  "aria-current": i ? "true" : void 0,
1398
1458
  underline: "none",
1399
- sx: A,
1400
- children: l.title
1459
+ sx: W,
1460
+ children: c.title
1401
1461
  }
1402
- ) : l.title;
1462
+ ) : c.title;
1403
1463
  return /* @__PURE__ */ d(
1404
- s,
1464
+ p,
1405
1465
  {
1406
1466
  component: "li",
1407
- sx: (x) => ({
1467
+ sx: (g) => ({
1408
1468
  position: "relative",
1409
1469
  display: "flex",
1410
1470
  gap: 2,
@@ -1412,35 +1472,35 @@ function dr({
1412
1472
  borderBottom: 1,
1413
1473
  borderColor: "divider",
1414
1474
  borderLeft: 4,
1415
- borderLeftColor: i ? x.palette.primary.main : "transparent",
1416
- ...u && { "&:hover": { bgcolor: x.palette.action.hover } },
1417
- ...Ye(x)
1475
+ borderLeftColor: i ? g.palette.primary.main : "transparent",
1476
+ ...s && { "&:hover": { bgcolor: g.palette.action.hover } },
1477
+ ...qe(g)
1418
1478
  }),
1419
1479
  children: [
1420
- l.imageUrl && /* @__PURE__ */ e(
1421
- s,
1480
+ c.imageUrl && /* @__PURE__ */ e(
1481
+ p,
1422
1482
  {
1423
1483
  component: "img",
1424
- src: l.imageUrl,
1484
+ src: c.imageUrl,
1425
1485
  alt: "",
1426
1486
  loading: "lazy",
1427
1487
  sx: {
1428
1488
  flex: "0 0 auto",
1429
1489
  width: { xs: 112, sm: 160 },
1430
- aspectRatio: "16 / 9",
1490
+ aspectRatio: c.imageAspectRatio ?? "16 / 9",
1431
1491
  objectFit: "cover",
1432
1492
  borderRadius: 1
1433
1493
  }
1434
1494
  }
1435
1495
  ),
1436
- /* @__PURE__ */ d(s, { sx: { minWidth: 0 }, children: [
1496
+ /* @__PURE__ */ d(p, { sx: { minWidth: 0 }, children: [
1437
1497
  /* @__PURE__ */ d(h, { component: "p", variant: "overline", color: "text.secondary", children: [
1438
- a(l.number),
1439
- i && ` · ${p}`
1498
+ l(c.number),
1499
+ i && ` · ${u}`
1440
1500
  ] }),
1441
- /* @__PURE__ */ e(h, { component: m, variant: "h6", children: f }),
1442
- l.meta && /* @__PURE__ */ e(h, { variant: "body2", color: "text.secondary", children: l.meta }),
1443
- l.description && /* @__PURE__ */ e(
1501
+ /* @__PURE__ */ e(h, { component: f, variant: "h6", children: m }),
1502
+ c.meta && /* @__PURE__ */ e(h, { variant: "body2", color: "text.secondary", children: c.meta }),
1503
+ c.description && /* @__PURE__ */ e(
1444
1504
  h,
1445
1505
  {
1446
1506
  variant: "body2",
@@ -1451,41 +1511,41 @@ function dr({
1451
1511
  WebkitBoxOrient: "vertical",
1452
1512
  overflow: "hidden"
1453
1513
  },
1454
- children: l.description
1514
+ children: c.description
1455
1515
  }
1456
1516
  )
1457
1517
  ] })
1458
1518
  ]
1459
1519
  },
1460
- l.id
1520
+ c.id
1461
1521
  );
1462
1522
  })
1463
1523
  }
1464
1524
  );
1465
1525
  }
1466
- function sr({
1467
- title: t,
1468
- description: r,
1526
+ function pt({
1527
+ title: r,
1528
+ description: t,
1469
1529
  imageUrl: o,
1470
- platforms: c,
1530
+ platforms: a,
1471
1531
  level: n = 3,
1472
- platformsLabel: a = "Listen on",
1473
- externalLabel: p = "(opens in a new tab)"
1532
+ platformsLabel: l = "Listen on",
1533
+ externalLabel: u = "(opens in a new tab)"
1474
1534
  }) {
1475
- const m = `h${n}`;
1476
- return /* @__PURE__ */ d(B, { sx: { height: "100%" }, children: [
1535
+ const f = `h${n}`;
1536
+ return /* @__PURE__ */ d(D, { sx: { height: "100%" }, children: [
1477
1537
  /* @__PURE__ */ e(
1478
- s,
1538
+ p,
1479
1539
  {
1480
- sx: (l) => ({
1540
+ sx: (c) => ({
1481
1541
  aspectRatio: "1 / 1",
1482
1542
  display: "grid",
1483
1543
  placeItems: "center",
1484
- bgcolor: l.vietri.color.chip,
1485
- color: l.palette.text.secondary
1544
+ bgcolor: c.vietri.color.chip,
1545
+ color: c.palette.text.secondary
1486
1546
  }),
1487
1547
  children: o ? /* @__PURE__ */ e(
1488
- s,
1548
+ p,
1489
1549
  {
1490
1550
  component: "img",
1491
1551
  src: o,
@@ -1493,60 +1553,60 @@ function sr({
1493
1553
  loading: "lazy",
1494
1554
  sx: { display: "block", width: "100%", height: "100%", objectFit: "cover" }
1495
1555
  }
1496
- ) : /* @__PURE__ */ e(y, { icon: K, size: 48 })
1556
+ ) : /* @__PURE__ */ e(C, { icon: ee, size: 48 })
1497
1557
  }
1498
1558
  ),
1499
- /* @__PURE__ */ d(k, { children: [
1500
- /* @__PURE__ */ e(h, { component: m, variant: "h6", gutterBottom: !0, children: t }),
1501
- r && /* @__PURE__ */ e(h, { variant: "body2", color: "text.secondary", children: r }),
1502
- c.length > 0 && /* @__PURE__ */ e(
1503
- g,
1559
+ /* @__PURE__ */ d(A, { children: [
1560
+ /* @__PURE__ */ e(h, { component: f, variant: "h6", gutterBottom: !0, children: r }),
1561
+ t && /* @__PURE__ */ e(h, { variant: "body2", color: "text.secondary", children: t }),
1562
+ a.length > 0 && /* @__PURE__ */ e(
1563
+ b,
1504
1564
  {
1505
1565
  component: "ul",
1506
1566
  role: "list",
1507
- "aria-label": a,
1567
+ "aria-label": l,
1508
1568
  direction: "row",
1509
1569
  spacing: 1,
1510
1570
  useFlexGap: !0,
1511
1571
  flexWrap: "wrap",
1512
1572
  sx: { listStyle: "none", m: 0, mt: 2, p: 0 },
1513
- children: c.map((l) => /* @__PURE__ */ e("li", { children: /* @__PURE__ */ d(
1514
- z,
1573
+ children: a.map((c) => /* @__PURE__ */ e("li", { children: /* @__PURE__ */ d(
1574
+ R,
1515
1575
  {
1516
1576
  variant: "outlined",
1517
1577
  size: "small",
1518
- href: l.href,
1578
+ href: c.href,
1519
1579
  target: "_blank",
1520
1580
  rel: "noopener noreferrer",
1521
- endIcon: /* @__PURE__ */ e(y, { icon: $, size: 14 }),
1581
+ endIcon: /* @__PURE__ */ e(C, { icon: H, size: 14 }),
1522
1582
  children: [
1523
- l.name,
1524
- /* @__PURE__ */ d(j, { children: [
1583
+ c.name,
1584
+ /* @__PURE__ */ d(N, { children: [
1525
1585
  " ",
1526
1586
  "– ",
1527
- t,
1587
+ r,
1528
1588
  " ",
1529
- p
1589
+ u
1530
1590
  ] })
1531
1591
  ]
1532
1592
  }
1533
- ) }, l.name))
1593
+ ) }, c.name))
1534
1594
  }
1535
1595
  )
1536
1596
  ] })
1537
1597
  ] });
1538
1598
  }
1539
- function R(t, r, o = 135) {
1540
- return `linear-gradient(${o}deg, ${t} 0%, ${r} 100%)`;
1599
+ function z(r, t, o = 135) {
1600
+ return `linear-gradient(${o}deg, ${r} 0%, ${t} 100%)`;
1541
1601
  }
1542
- function qe(t) {
1602
+ function Je(r) {
1543
1603
  return {
1544
- surface: R(...t.surface),
1545
- action: R(...t.action),
1546
- actionHover: R(...t.actionHover)
1604
+ surface: z(...r.surface),
1605
+ action: z(...r.action),
1606
+ actionHover: z(...r.actionHover)
1547
1607
  };
1548
1608
  }
1549
- const F = {
1609
+ const y = {
1550
1610
  spacing: 8,
1551
1611
  radius: {
1552
1612
  sm: 4,
@@ -1590,52 +1650,61 @@ const F = {
1590
1650
  MuiButton: {
1591
1651
  defaultProps: { disableElevation: !0 },
1592
1652
  styleOverrides: {
1593
- root: ({ theme: t }) => ({
1594
- borderRadius: F.radius.md,
1595
- "&:focus-visible": {
1596
- outline: `2px solid ${t.palette.primary.main}`,
1597
- outlineOffset: 2
1598
- }
1599
- }),
1653
+ root: ({ theme: r, ownerState: t }) => {
1654
+ const o = t.variant === "outlined" ? 1 : 0;
1655
+ return {
1656
+ borderRadius: y.radius.md,
1657
+ // A generous "large" button, for the main action of a banner.
1658
+ ...t.size === "large" && {
1659
+ minHeight: 52,
1660
+ padding: `${12 - o}px ${32 - o}px`,
1661
+ fontSize: "1rem"
1662
+ },
1663
+ "&:focus-visible": {
1664
+ outline: `2px solid ${r.palette.primary.main}`,
1665
+ outlineOffset: 2
1666
+ }
1667
+ };
1668
+ },
1600
1669
  // Primary action fill. Flat in most themes, a soft gradient in the
1601
1670
  // Observatory. The text color meets AA at both ends of the fill.
1602
- containedPrimary: ({ theme: t }) => ({
1603
- color: t.vietri.color.onAction,
1604
- backgroundImage: t.vietri.gradient.action,
1605
- "&:hover": { backgroundImage: t.vietri.gradient.actionHover },
1671
+ containedPrimary: ({ theme: r }) => ({
1672
+ color: r.vietri.color.onAction,
1673
+ backgroundImage: r.vietri.gradient.action,
1674
+ "&:hover": { backgroundImage: r.vietri.gradient.actionHover },
1606
1675
  "&.Mui-disabled": {
1607
1676
  backgroundImage: "none",
1608
- color: t.palette.action.disabled
1677
+ color: r.palette.action.disabled
1609
1678
  }
1610
1679
  })
1611
1680
  }
1612
1681
  },
1613
1682
  MuiLink: {
1614
1683
  styleOverrides: {
1615
- root: ({ theme: t }) => ({
1684
+ root: ({ theme: r }) => ({
1616
1685
  "&:focus-visible": {
1617
- outline: `2px solid ${t.palette.primary.main}`,
1686
+ outline: `2px solid ${r.palette.primary.main}`,
1618
1687
  outlineOffset: 3,
1619
- borderRadius: F.radius.sm
1688
+ borderRadius: y.radius.sm
1620
1689
  }
1621
1690
  })
1622
1691
  }
1623
1692
  },
1624
1693
  MuiChip: {
1625
1694
  styleOverrides: {
1626
- root: ({ ownerState: t, theme: r }) => {
1627
- const o = t.variant === "filled" && t.color === "default";
1695
+ root: ({ ownerState: r, theme: t }) => {
1696
+ const o = r.variant === "filled" && r.color === "default";
1628
1697
  return {
1629
- fontWeight: F.typography.fontWeight.semibold,
1698
+ fontWeight: y.typography.fontWeight.semibold,
1630
1699
  fontSize: "0.75rem",
1631
1700
  // MUI's default chip is translucent, so its text is only readable on
1632
1701
  // the surface it was designed for. Opaque colors keep it legible on
1633
1702
  // any surface (a dark chip on white, a light chip on purple…).
1634
1703
  ...o && {
1635
- color: r.vietri.color.onChip,
1636
- backgroundColor: r.vietri.color.chip,
1704
+ color: t.vietri.color.onChip,
1705
+ backgroundColor: t.vietri.color.chip,
1637
1706
  "&.MuiChip-clickable:hover": {
1638
- backgroundColor: r.vietri.color.chipHover
1707
+ backgroundColor: t.vietri.color.chipHover
1639
1708
  }
1640
1709
  }
1641
1710
  };
@@ -1646,16 +1715,16 @@ const F = {
1646
1715
  defaultProps: { variant: "outlined" },
1647
1716
  styleOverrides: {
1648
1717
  root: {
1649
- borderRadius: F.radius.lg,
1718
+ borderRadius: y.radius.lg,
1650
1719
  backgroundImage: "none"
1651
1720
  }
1652
1721
  }
1653
1722
  },
1654
1723
  MuiCardActionArea: {
1655
1724
  styleOverrides: {
1656
- root: ({ theme: t }) => ({
1725
+ root: ({ theme: r }) => ({
1657
1726
  "&:focus-visible": {
1658
- outline: `2px solid ${t.palette.primary.main}`,
1727
+ outline: `2px solid ${r.palette.primary.main}`,
1659
1728
  outlineOffset: -2
1660
1729
  }
1661
1730
  })
@@ -1663,7 +1732,7 @@ const F = {
1663
1732
  },
1664
1733
  MuiDialog: {
1665
1734
  styleOverrides: {
1666
- paper: { borderRadius: F.radius.lg, backgroundImage: "none" }
1735
+ paper: { borderRadius: y.radius.lg, backgroundImage: "none" }
1667
1736
  }
1668
1737
  },
1669
1738
  MuiDrawer: {
@@ -1675,119 +1744,119 @@ const F = {
1675
1744
  // contrast for interface components (WCAG 1.4.11).
1676
1745
  MuiOutlinedInput: {
1677
1746
  styleOverrides: {
1678
- root: ({ theme: t }) => ({
1679
- borderRadius: F.radius.md,
1747
+ root: ({ theme: r }) => ({
1748
+ borderRadius: y.radius.md,
1680
1749
  "& .MuiOutlinedInput-notchedOutline": {
1681
- borderColor: t.palette.text.secondary
1750
+ borderColor: r.palette.text.secondary
1682
1751
  },
1683
1752
  "&:hover .MuiOutlinedInput-notchedOutline": {
1684
- borderColor: t.palette.text.primary
1753
+ borderColor: r.palette.text.primary
1685
1754
  },
1686
1755
  "&.Mui-focused .MuiOutlinedInput-notchedOutline": {
1687
- borderColor: t.palette.primary.main
1756
+ borderColor: r.palette.primary.main
1688
1757
  },
1689
1758
  "&.Mui-error .MuiOutlinedInput-notchedOutline": {
1690
- borderColor: t.palette.error.main
1759
+ borderColor: r.palette.error.main
1691
1760
  },
1692
1761
  "&.Mui-disabled .MuiOutlinedInput-notchedOutline": {
1693
- borderColor: t.palette.divider
1762
+ borderColor: r.palette.divider
1694
1763
  }
1695
1764
  })
1696
1765
  }
1697
1766
  },
1698
1767
  MuiTableCell: {
1699
1768
  styleOverrides: {
1700
- root: ({ theme: t }) => ({
1701
- borderBottomColor: t.palette.divider
1769
+ root: ({ theme: r }) => ({
1770
+ borderBottomColor: r.palette.divider
1702
1771
  }),
1703
- head: ({ theme: t }) => ({
1704
- fontWeight: F.typography.fontWeight.semibold,
1705
- color: t.palette.text.primary,
1706
- borderBottom: `2px solid ${t.palette.text.primary}`
1772
+ head: ({ theme: r }) => ({
1773
+ fontWeight: y.typography.fontWeight.semibold,
1774
+ color: r.palette.text.primary,
1775
+ borderBottom: `2px solid ${r.palette.text.primary}`
1707
1776
  })
1708
1777
  }
1709
1778
  }
1710
- }, { typography: v, breakpoints: Je } = F;
1711
- function Ke(t) {
1779
+ }, { typography: F, breakpoints: Ke } = y;
1780
+ function Ze(r) {
1712
1781
  return {
1713
- color: t,
1714
- shadow: F.shadow,
1715
- gradient: qe(t)
1782
+ color: r,
1783
+ shadow: y.shadow,
1784
+ gradient: Je(r)
1716
1785
  };
1717
1786
  }
1718
- const Ze = {
1719
- spacing: F.spacing,
1720
- shape: { borderRadius: F.radius.md },
1721
- breakpoints: { values: { ...Je } },
1787
+ const er = {
1788
+ spacing: y.spacing,
1789
+ shape: { borderRadius: y.radius.md },
1790
+ breakpoints: { values: { ...Ke } },
1722
1791
  typography: {
1723
- fontFamily: v.fontFamily,
1724
- fontWeightRegular: v.fontWeight.regular,
1725
- fontWeightMedium: v.fontWeight.medium,
1726
- fontWeightBold: v.fontWeight.semibold,
1792
+ fontFamily: F.fontFamily,
1793
+ fontWeightRegular: F.fontWeight.regular,
1794
+ fontWeightMedium: F.fontWeight.medium,
1795
+ fontWeightBold: F.fontWeight.semibold,
1727
1796
  h1: {
1728
1797
  fontSize: "clamp(3rem, 8vw, 7rem)",
1729
- fontWeight: v.fontWeight.semibold,
1798
+ fontWeight: F.fontWeight.semibold,
1730
1799
  letterSpacing: "-0.055em",
1731
1800
  lineHeight: 0.95
1732
1801
  },
1733
1802
  h2: {
1734
1803
  fontSize: "clamp(2rem, 5vw, 4rem)",
1735
- fontWeight: v.fontWeight.semibold,
1804
+ fontWeight: F.fontWeight.semibold,
1736
1805
  letterSpacing: "-0.04em",
1737
1806
  lineHeight: 1.05
1738
1807
  },
1739
1808
  h3: {
1740
1809
  fontSize: "clamp(1.5rem, 3vw, 2.25rem)",
1741
- fontWeight: v.fontWeight.semibold,
1810
+ fontWeight: F.fontWeight.semibold,
1742
1811
  letterSpacing: "-0.03em",
1743
1812
  lineHeight: 1.15
1744
1813
  },
1745
1814
  h4: {
1746
1815
  fontSize: "1.5rem",
1747
- fontWeight: v.fontWeight.semibold,
1816
+ fontWeight: F.fontWeight.semibold,
1748
1817
  letterSpacing: "-0.02em",
1749
1818
  lineHeight: 1.25
1750
1819
  },
1751
- h5: { fontSize: "1.25rem", fontWeight: v.fontWeight.medium, lineHeight: 1.3 },
1752
- h6: { fontSize: "1.0625rem", fontWeight: v.fontWeight.medium, lineHeight: 1.4 },
1820
+ h5: { fontSize: "1.25rem", fontWeight: F.fontWeight.medium, lineHeight: 1.3 },
1821
+ h6: { fontSize: "1.0625rem", fontWeight: F.fontWeight.medium, lineHeight: 1.4 },
1753
1822
  body1: { fontSize: "1rem", lineHeight: 1.6 },
1754
1823
  body2: { fontSize: "0.875rem", lineHeight: 1.55 },
1755
1824
  button: {
1756
- fontWeight: v.fontWeight.medium,
1825
+ fontWeight: F.fontWeight.medium,
1757
1826
  textTransform: "none",
1758
1827
  letterSpacing: "-0.01em"
1759
1828
  },
1760
1829
  overline: {
1761
- fontWeight: v.fontWeight.medium,
1830
+ fontWeight: F.fontWeight.medium,
1762
1831
  letterSpacing: "0.12em"
1763
1832
  }
1764
1833
  },
1765
1834
  components: Qe
1766
1835
  };
1767
- function G(t) {
1768
- return Me({
1769
- ...Ze,
1770
- vietri: Ke(t),
1836
+ function G(r) {
1837
+ return $e({
1838
+ ...er,
1839
+ vietri: Ze(r),
1771
1840
  palette: {
1772
- mode: t.mode,
1773
- primary: { main: t.primary, contrastText: t.onPrimary },
1774
- secondary: { main: t.secondary, contrastText: t.onSecondary },
1775
- error: { main: t.status.error, contrastText: t.onStatus },
1776
- warning: { main: t.status.warning, contrastText: t.onStatus },
1777
- info: { main: t.status.info, contrastText: t.onStatus },
1778
- success: { main: t.status.success, contrastText: t.onStatus },
1779
- background: { default: t.bg, paper: t.paper },
1780
- text: { primary: t.ink, secondary: t.inkSoft },
1781
- divider: t.line
1841
+ mode: r.mode,
1842
+ primary: { main: r.primary, contrastText: r.onPrimary },
1843
+ secondary: { main: r.secondary, contrastText: r.onSecondary },
1844
+ error: { main: r.status.error, contrastText: r.onStatus },
1845
+ warning: { main: r.status.warning, contrastText: r.onStatus },
1846
+ info: { main: r.status.info, contrastText: r.onStatus },
1847
+ success: { main: r.status.success, contrastText: r.onStatus },
1848
+ background: { default: r.bg, paper: r.paper },
1849
+ text: { primary: r.ink, secondary: r.inkSoft },
1850
+ divider: r.line
1782
1851
  }
1783
1852
  });
1784
1853
  }
1785
- const S = (t) => [t, t], et = {
1854
+ const B = (r) => [r, r], rr = {
1786
1855
  error: "#B91C1C",
1787
1856
  warning: "#92400E",
1788
1857
  info: "#0369A1",
1789
1858
  success: "#166534"
1790
- }, tt = {
1859
+ }, tr = {
1791
1860
  mode: "light",
1792
1861
  bg: "#FFFFFF",
1793
1862
  paper: "#FFFFFF",
@@ -1798,17 +1867,18 @@ const S = (t) => [t, t], et = {
1798
1867
  onPrimary: "#FFFFFF",
1799
1868
  secondary: "#7A5718",
1800
1869
  onSecondary: "#FFFFFF",
1801
- action: S("#DBAC5B"),
1802
- actionHover: S("#FDD07A"),
1870
+ action: B("#DBAC5B"),
1871
+ actionHover: B("#FDD07A"),
1803
1872
  onAction: "#000000",
1804
- surface: S("#000000"),
1873
+ surface: B("#000000"),
1874
+ scrim: "#000000",
1805
1875
  onSurface: "#FFFFFF",
1806
1876
  onSurfaceSoft: "#D4D4D4",
1807
1877
  chip: "#F3EBDA",
1808
1878
  chipHover: "#E8DDC4",
1809
1879
  onChip: "#111111",
1810
1880
  glow: null,
1811
- status: et,
1881
+ status: rr,
1812
1882
  onStatus: "#FFFFFF",
1813
1883
  brand: {
1814
1884
  black: "#000000",
@@ -1822,23 +1892,30 @@ const S = (t) => [t, t], et = {
1822
1892
  ink: "#111111",
1823
1893
  inkSoft: "#555555"
1824
1894
  }
1825
- }, rt = {
1895
+ }, or = {
1826
1896
  mode: "dark",
1827
1897
  bg: "#20123A",
1828
1898
  paper: "#2D1B50",
1829
1899
  ink: "#FFFFFF",
1830
1900
  inkSoft: "#D5CAEB",
1831
1901
  line: "rgba(255, 255, 255, 0.14)",
1832
- primary: "#F35F1C",
1902
+ // Orange as text, outline and focus ring on dark backgrounds (6.3:1 on night, 5.5:1 on cards).
1903
+ primary: "#F4793F",
1833
1904
  onPrimary: "#20123A",
1834
1905
  secondary: "#B99BFF",
1835
1906
  onSecondary: "#20123A",
1836
- action: S("#F35F1C"),
1837
- actionHover: S("#FF7B3F"),
1838
- onAction: "#20123A",
1839
- surface: S("#693BCC"),
1907
+ // Button fill: a burnt orange that holds white text at 4.8:1 (the brand orange gives 3.2:1).
1908
+ action: B("#C8460B"),
1909
+ actionHover: B("#B63F0A"),
1910
+ onAction: "#FFFFFF",
1911
+ // Deep teal to the purple of the cards: dark and calm, with 7:1 or more for white text.
1912
+ // (The earlier violet-to-lavender gradient was bright and had the lowest contrast.)
1913
+ surface: ["#0F5C66", "#2D1B50"],
1914
+ // The layer over a hero photo: a deep lilac, the lightest one that still gives
1915
+ // AA contrast to white text over a pure white photo (a deep purple was too dark).
1916
+ scrim: "#3B2562",
1840
1917
  onSurface: "#FFFFFF",
1841
- onSurfaceSoft: "#EDE6FB",
1918
+ onSurfaceSoft: "#F7F3FF",
1842
1919
  chip: "#3C2866",
1843
1920
  chipHover: "#4A3478",
1844
1921
  onChip: "#FFFFFF",
@@ -1853,7 +1930,11 @@ const S = (t) => [t, t], et = {
1853
1930
  brand: {
1854
1931
  night: "#20123A",
1855
1932
  violet: "#693BCC",
1933
+ lavender: "#816CB2",
1934
+ /** The deep teal of the footer and banners. */
1935
+ teal: "#0F5C66",
1856
1936
  magenta: "#CB1F9C",
1937
+ /** The brand orange. Too light for white text: use it as a decoration, not under a label. */
1857
1938
  orange: "#F35F1C"
1858
1939
  },
1859
1940
  derived: {
@@ -1861,9 +1942,14 @@ const S = (t) => [t, t], et = {
1861
1942
  lilac: "#B99BFF",
1862
1943
  /** Raised surface over night. */
1863
1944
  nightRaised: "#2D1B50",
1864
- orangeHover: "#FF7B3F"
1945
+ /** Orange for text and outlines on dark backgrounds. */
1946
+ orangeText: "#F4793F",
1947
+ /** Burnt orange of the button fill (white text at 4.8:1). */
1948
+ orangeDeep: "#C8460B",
1949
+ /** Hovered button fill, darker (white text at 5.8:1). */
1950
+ orangeHover: "#B63F0A"
1865
1951
  }
1866
- }, ot = {
1952
+ }, ir = {
1867
1953
  mode: "light",
1868
1954
  bg: "#F7F4FA",
1869
1955
  paper: "#FFFFFF",
@@ -1876,10 +1962,11 @@ const S = (t) => [t, t], et = {
1876
1962
  onPrimary: "#FFFFFF",
1877
1963
  secondary: "#4A0875",
1878
1964
  onSecondary: "#FFFFFF",
1879
- action: S("#027381"),
1880
- actionHover: S("#015C68"),
1965
+ action: B("#027381"),
1966
+ actionHover: B("#015C68"),
1881
1967
  onAction: "#FFFFFF",
1882
- surface: S("#4A0875"),
1968
+ surface: B("#4A0875"),
1969
+ scrim: "#2B1B3D",
1883
1970
  onSurface: "#FFFFFF",
1884
1971
  onSurfaceSoft: "#E8DCF4",
1885
1972
  chip: "#EFE8F6",
@@ -1913,7 +2000,7 @@ const S = (t) => [t, t], et = {
1913
2000
  /** Teal for the hovered primary action (7.7:1 with white). */
1914
2001
  tealDark: "#015C68"
1915
2002
  }
1916
- }, pr = G(tt), ur = G(rt), hr = G(ot), it = [
2003
+ }, ut = G(tr), ht = G(or), mt = G(ir), nr = [
1917
2004
  { bg: "#E0F2FE", fg: "#0C4A6E", dot: "#0284C7" },
1918
2005
  // sky
1919
2006
  { bg: "#EDE9FE", fg: "#4C1D95", dot: "#7C3AED" },
@@ -1935,13 +2022,13 @@ const S = (t) => [t, t], et = {
1935
2022
  { bg: "#ECFCCB", fg: "#365314", dot: "#65A30D" }
1936
2023
  // lime
1937
2024
  ];
1938
- function mr(t, r = it) {
1939
- const o = Array.from(new Set(t));
2025
+ function ft(r, t = nr) {
2026
+ const o = Array.from(new Set(r));
1940
2027
  return Object.fromEntries(
1941
- o.map((c, n) => [c, r[n % r.length]])
2028
+ o.map((a, n) => [a, t[n % t.length]])
1942
2029
  );
1943
2030
  }
1944
- const fr = [
2031
+ const gt = [
1945
2032
  { bg: "#027381", fg: "#FFFFFF", dot: "#027381" },
1946
2033
  // teal
1947
2034
  { bg: "#FF7751", fg: "#2B1B3D", dot: "#C2410C" },
@@ -1958,55 +2045,55 @@ const fr = [
1958
2045
  // vermilion
1959
2046
  ];
1960
2047
  export {
1961
- Ut as BarChart,
1962
- Fr as Button,
1963
- Cr as Card,
1964
- wr as CardActionArea,
1965
- kr as CardActions,
1966
- Er as CardContent,
1967
- Ir as CardMedia,
2048
+ Xr as BarChart,
2049
+ yt as Button,
2050
+ St as Card,
2051
+ Bt as CardActionArea,
2052
+ Dt as CardActions,
2053
+ It as CardContent,
2054
+ Wt as CardMedia,
1968
2055
  _e as CategoryChip,
1969
- Mr as Chip,
1970
- lr as ContentRail,
1971
- Zt as CopyField,
1972
- _t as DataTable,
1973
- Jt as Dialog,
1974
- Kt as Drawer,
1975
- dr as EpisodeList,
1976
- rr as FeatureCard,
1977
- Yt as Footer,
1978
- tr as Hero,
1979
- y as Icon,
1980
- Or as Input,
1981
- Vt as LanguageSwitch,
1982
- ar as MediaCard,
1983
- Gt as NavBar,
1984
- sr as PlaylistCard,
1985
- nr as ProfileCard,
1986
- qt as SectionHeader,
1987
- Qt as Select,
1988
- er as SkipLink,
1989
- Nt as StatCard,
1990
- or as Steps,
1991
- zr as Tab,
1992
- Hr as Tabs,
1993
- ir as Timeline,
1994
- xr as Typography,
1995
- cr as VideoEmbed,
1996
- j as VisuallyHidden,
1997
- it as categoryPalette,
1998
- mr as createCategoryColors,
1999
- qe as createGradients,
2056
+ $t as Chip,
2057
+ ct as ContentRail,
2058
+ et as CopyField,
2059
+ _r as DataTable,
2060
+ Kr as Dialog,
2061
+ Zr as Drawer,
2062
+ st as EpisodeList,
2063
+ ot as FeatureCard,
2064
+ qr as Footer,
2065
+ tt as Hero,
2066
+ C as Icon,
2067
+ Ot as Input,
2068
+ Vr as LanguageSwitch,
2069
+ lt as MediaCard,
2070
+ Gr as NavBar,
2071
+ pt as PlaylistCard,
2072
+ at as ProfileCard,
2073
+ Jr as SectionHeader,
2074
+ Qr as Select,
2075
+ rt as SkipLink,
2076
+ Ur as StatCard,
2077
+ it as Steps,
2078
+ Rt as Tab,
2079
+ Pt as Tabs,
2080
+ nt as Timeline,
2081
+ vt as Typography,
2082
+ dt as VideoEmbed,
2083
+ N as VisuallyHidden,
2084
+ nr as categoryPalette,
2085
+ ft as createCategoryColors,
2086
+ Je as createGradients,
2000
2087
  G as createVietriTheme,
2001
- tt as editorialColors,
2002
- pr as editorialTheme,
2003
- Xt as icons,
2004
- R as linearGradient,
2005
- fr as observatoryCategoryPalette,
2006
- ot as observatoryColors,
2007
- hr as observatoryTheme,
2008
- rt as streamingColors,
2009
- ur as streamingTheme,
2010
- F as tokens
2088
+ tr as editorialColors,
2089
+ ut as editorialTheme,
2090
+ Yr as icons,
2091
+ z as linearGradient,
2092
+ gt as observatoryCategoryPalette,
2093
+ ir as observatoryColors,
2094
+ mt as observatoryTheme,
2095
+ or as streamingColors,
2096
+ ht as streamingTheme,
2097
+ y as tokens
2011
2098
  };
2012
2099
  //# sourceMappingURL=index.js.map