@sorayasm/vietri-ds 0.0.0-stage → 0.2.0

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