@sensiblestats/widget-react 0.33.2 → 0.34.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.
package/dist/index.cjs CHANGED
@@ -36,7 +36,7 @@ __export(index_exports, {
36
36
  module.exports = __toCommonJS(index_exports);
37
37
 
38
38
  // src/StatsWidget.tsx
39
- var import_react21 = require("react");
39
+ var import_react22 = require("react");
40
40
  var import_widget_sdk5 = require("@sensiblestats/widget-sdk");
41
41
 
42
42
  // src/kickoff.ts
@@ -202,6 +202,12 @@ function normalizeUi(cfg) {
202
202
  return {
203
203
  theme: cfg.theme ?? "auto",
204
204
  accent: cfg.accent,
205
+ logoUrl: cfg.logoUrl,
206
+ headerTitle: cfg.headerTitle,
207
+ cta: cfg.cta,
208
+ surface: cfg.surface,
209
+ ink: cfg.ink,
210
+ attribution: cfg.attribution ?? true,
205
211
  position: cfg.position ?? "right",
206
212
  offset: { x: cfg.offset?.x ?? 20, y: cfg.offset?.y ?? 20 },
207
213
  radius: cfg.radius ?? 16,
@@ -340,6 +346,14 @@ function themeAttrs(ui) {
340
346
  "--ss-w-radius": `${ui.radius}px`
341
347
  };
342
348
  if (ui.accent) style["--ss-w-accent"] = ui.accent;
349
+ if (ui.cta) style["--ss-w-cta"] = ui.cta;
350
+ if (ui.surface) style["--ss-w-panel"] = ui.surface;
351
+ if (ui.ink) style["--ss-w-ink"] = ui.ink;
352
+ if (ui.surface && ui.ink) {
353
+ style["--ss-w-bubble"] = "color-mix(in srgb, var(--ss-w-ink) 5%, var(--ss-w-panel))";
354
+ style["--ss-w-line"] = "color-mix(in srgb, var(--ss-w-ink) 12%, var(--ss-w-panel))";
355
+ style["--ss-w-faint"] = "color-mix(in srgb, var(--ss-w-ink) 55%, var(--ss-w-panel))";
356
+ }
343
357
  return { "data-ss-w-theme": ui.theme, "data-ss-w-pos": ui.position, style };
344
358
  }
345
359
 
@@ -1181,6 +1195,9 @@ function useLiveMonitor(opts) {
1181
1195
  };
1182
1196
  }
1183
1197
 
1198
+ // src/components/BrandMark.tsx
1199
+ var import_react4 = require("react");
1200
+
1184
1201
  // src/assets/logo.ts
1185
1202
  var SS_LOGO_DATA_URI = "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAjoAAAI6CAYAAAAuSOLAAAAAAXNSR0IArs4c6QAAAJplWElmTU0AKgAAAAgAAwESAAMAAAABAAEAAAExAAIAAAA9AAAAModpAAQAAAABAAAAcAAAAABBZG9iZSBQaG90b3Nob3AgMjYuMTAgKDIwMjUwNzMwLm0uMzE2NiAwN2IxMjM0KSAgKE1hY2ludG9zaCkAAAADoAEAAwAAAAEAAQAAoAIABAAAAAEAAAI6oAMABAAAAAEAAAI6AAAAACwGtVwAAAQwaVRYdFhNTDpjb20uYWRvYmUueG1wAAAAAAA8eDp4bXBtZXRhIHhtbG5zOng9ImFkb2JlOm5zOm1ldGEvIiB4OnhtcHRrPSJYTVAgQ29yZSA2LjAuMCI+CiAgIDxyZGY6UkRGIHhtbG5zOnJkZj0iaHR0cDovL3d3dy53My5vcmcvMTk5OS8wMi8yMi1yZGYtc3ludGF4LW5zIyI+CiAgICAgIDxyZGY6RGVzY3JpcHRpb24gcmRmOmFib3V0PSIiCiAgICAgICAgICAgIHhtbG5zOnhtcE1NPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvbW0vIgogICAgICAgICAgICB4bWxuczpzdFJlZj0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL3NUeXBlL1Jlc291cmNlUmVmIyIKICAgICAgICAgICAgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIgogICAgICAgICAgICB4bWxuczp0aWZmPSJodHRwOi8vbnMuYWRvYmUuY29tL3RpZmYvMS4wLyI+CiAgICAgICAgIDx4bXBNTTpEb2N1bWVudElEPnhtcC5kaWQ6QzBGRTM5NjM5NEJEMTFGMEJGNjZEMjUyN0U0MzU5RUM8L3htcE1NOkRvY3VtZW50SUQ+CiAgICAgICAgIDx4bXBNTTpJbnN0YW5jZUlEPnhtcC5paWQ6QzBGRTM5NjI5NEJEMTFGMEJGNjZEMjUyN0U0MzU5RUM8L3htcE1NOkluc3RhbmNlSUQ+CiAgICAgICAgIDx4bXBNTTpEZXJpdmVkRnJvbSByZGY6cGFyc2VUeXBlPSJSZXNvdXJjZSI+CiAgICAgICAgICAgIDxzdFJlZjppbnN0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";
1186
1203
 
@@ -1218,59 +1235,67 @@ function DashboardIcon({ name }) {
1218
1235
  return /* @__PURE__ */ (0, import_jsx_runtime.jsx)("span", { className: "ss-w-dash-emoji", "aria-hidden": "true", children: glyph });
1219
1236
  }
1220
1237
 
1221
- // src/components/GreetingBubble.tsx
1238
+ // src/components/BrandMark.tsx
1222
1239
  var import_jsx_runtime2 = require("react/jsx-runtime");
1240
+ function BrandMark({ logoUrl, className }) {
1241
+ const [failed, setFailed] = (0, import_react4.useState)(false);
1242
+ if (!logoUrl || failed) return /* @__PURE__ */ (0, import_jsx_runtime2.jsx)(SsMark, { className });
1243
+ return /* @__PURE__ */ (0, import_jsx_runtime2.jsx)("img", { className, src: logoUrl, alt: "", "aria-hidden": "true", onError: () => setFailed(true) });
1244
+ }
1245
+
1246
+ // src/components/GreetingBubble.tsx
1247
+ var import_jsx_runtime3 = require("react/jsx-runtime");
1223
1248
  function GreetingBubble({ text, onOpen, onDismiss, dismissLabel = "Dismiss" }) {
1224
- return /* @__PURE__ */ (0, import_jsx_runtime2.jsxs)("div", { className: "ss-w-greeting", role: "note", children: [
1225
- /* @__PURE__ */ (0, import_jsx_runtime2.jsx)("button", { type: "button", className: "ss-w-greeting-body", onClick: onOpen, children: text }),
1226
- onDismiss ? /* @__PURE__ */ (0, import_jsx_runtime2.jsx)("button", { type: "button", className: "ss-w-greeting-x", "aria-label": dismissLabel, onClick: onDismiss, children: "\xD7" }) : null
1249
+ return /* @__PURE__ */ (0, import_jsx_runtime3.jsxs)("div", { className: "ss-w-greeting", role: "note", children: [
1250
+ /* @__PURE__ */ (0, import_jsx_runtime3.jsx)("button", { type: "button", className: "ss-w-greeting-body", onClick: onOpen, children: text }),
1251
+ onDismiss ? /* @__PURE__ */ (0, import_jsx_runtime3.jsx)("button", { type: "button", className: "ss-w-greeting-x", "aria-label": dismissLabel, onClick: onDismiss, children: "\xD7" }) : null
1227
1252
  ] });
1228
1253
  }
1229
1254
 
1230
1255
  // src/components/ChatFab.tsx
1231
- var import_jsx_runtime3 = require("react/jsx-runtime");
1232
- function ChatFab({ label, greeting, popupText, onOpen, onDismissPopup, dismissLabel = "Dismiss" }) {
1256
+ var import_jsx_runtime4 = require("react/jsx-runtime");
1257
+ function ChatFab({ label, greeting, popupText, logoUrl, onOpen, onDismissPopup, dismissLabel = "Dismiss" }) {
1233
1258
  const bubble = popupText ?? greeting;
1234
- return /* @__PURE__ */ (0, import_jsx_runtime3.jsxs)("div", { className: "ss-w-fab-wrap", children: [
1235
- bubble ? /* @__PURE__ */ (0, import_jsx_runtime3.jsx)(GreetingBubble, { text: bubble, onOpen, onDismiss: popupText ? onDismissPopup : void 0, dismissLabel }) : null,
1236
- /* @__PURE__ */ (0, import_jsx_runtime3.jsx)("button", { type: "button", className: "ss-w-fab", "aria-label": label, onClick: onOpen, children: /* @__PURE__ */ (0, import_jsx_runtime3.jsx)(SsMark, { className: "ss-w-fab-mark" }) })
1259
+ return /* @__PURE__ */ (0, import_jsx_runtime4.jsxs)("div", { className: "ss-w-fab-wrap", children: [
1260
+ bubble ? /* @__PURE__ */ (0, import_jsx_runtime4.jsx)(GreetingBubble, { text: bubble, onOpen, onDismiss: popupText ? onDismissPopup : void 0, dismissLabel }) : null,
1261
+ /* @__PURE__ */ (0, import_jsx_runtime4.jsx)("button", { type: "button", className: "ss-w-fab", "aria-label": label, onClick: onOpen, children: /* @__PURE__ */ (0, import_jsx_runtime4.jsx)(BrandMark, { logoUrl, className: "ss-w-fab-mark" }) })
1237
1262
  ] });
1238
1263
  }
1239
1264
 
1240
1265
  // src/components/ChatPanel.tsx
1241
- var import_react20 = require("react");
1266
+ var import_react21 = require("react");
1242
1267
 
1243
1268
  // src/components/ChatHeader.tsx
1244
- var import_jsx_runtime4 = require("react/jsx-runtime");
1245
- function ChatHeader({ onClose, closeLabel = "Close chat" }) {
1246
- return /* @__PURE__ */ (0, import_jsx_runtime4.jsxs)("header", { className: "ss-w-header", children: [
1247
- /* @__PURE__ */ (0, import_jsx_runtime4.jsx)(SsMark, { className: "ss-w-header-mark" }),
1248
- /* @__PURE__ */ (0, import_jsx_runtime4.jsx)("span", { className: "ss-w-header-title", children: "SensibleStats" }),
1249
- /* @__PURE__ */ (0, import_jsx_runtime4.jsx)("button", { type: "button", className: "ss-w-close", "aria-label": closeLabel, onClick: onClose, children: /* @__PURE__ */ (0, import_jsx_runtime4.jsx)(CloseIcon, {}) })
1269
+ var import_jsx_runtime5 = require("react/jsx-runtime");
1270
+ function ChatHeader({ onClose, closeLabel = "Close chat", logoUrl, headerTitle }) {
1271
+ return /* @__PURE__ */ (0, import_jsx_runtime5.jsxs)("header", { className: "ss-w-header", children: [
1272
+ /* @__PURE__ */ (0, import_jsx_runtime5.jsx)(BrandMark, { logoUrl, className: "ss-w-header-mark" }),
1273
+ /* @__PURE__ */ (0, import_jsx_runtime5.jsx)("span", { className: "ss-w-header-title", children: headerTitle ?? "SensibleStats" }),
1274
+ /* @__PURE__ */ (0, import_jsx_runtime5.jsx)("button", { type: "button", className: "ss-w-close", "aria-label": closeLabel, onClick: onClose, children: /* @__PURE__ */ (0, import_jsx_runtime5.jsx)(CloseIcon, {}) })
1250
1275
  ] });
1251
1276
  }
1252
1277
 
1253
1278
  // src/components/MessageList.tsx
1254
- var import_react18 = require("react");
1279
+ var import_react19 = require("react");
1255
1280
 
1256
1281
  // src/components/Markdown.tsx
1257
1282
  var import_react_markdown = __toESM(require("react-markdown"), 1);
1258
1283
  var import_remark_gfm = __toESM(require("remark-gfm"), 1);
1259
- var import_jsx_runtime5 = require("react/jsx-runtime");
1284
+ var import_jsx_runtime6 = require("react/jsx-runtime");
1260
1285
  var components = {
1261
- a: ({ children, href }) => /* @__PURE__ */ (0, import_jsx_runtime5.jsx)("a", { href, target: "_blank", rel: "noopener noreferrer", className: "ss-w-md-link", children }),
1262
- table: ({ children }) => /* @__PURE__ */ (0, import_jsx_runtime5.jsx)("div", { className: "ss-w-table-wrap", children: /* @__PURE__ */ (0, import_jsx_runtime5.jsx)("table", { className: "ss-w-md-table", children }) }),
1263
- ul: ({ children }) => /* @__PURE__ */ (0, import_jsx_runtime5.jsx)("ul", { className: "ss-w-md-ul", children }),
1264
- ol: ({ children }) => /* @__PURE__ */ (0, import_jsx_runtime5.jsx)("ol", { className: "ss-w-md-ol", children }),
1265
- code: ({ children }) => /* @__PURE__ */ (0, import_jsx_runtime5.jsx)("code", { className: "ss-w-md-code", children })
1286
+ a: ({ children, href }) => /* @__PURE__ */ (0, import_jsx_runtime6.jsx)("a", { href, target: "_blank", rel: "noopener noreferrer", className: "ss-w-md-link", children }),
1287
+ table: ({ children }) => /* @__PURE__ */ (0, import_jsx_runtime6.jsx)("div", { className: "ss-w-table-wrap", children: /* @__PURE__ */ (0, import_jsx_runtime6.jsx)("table", { className: "ss-w-md-table", children }) }),
1288
+ ul: ({ children }) => /* @__PURE__ */ (0, import_jsx_runtime6.jsx)("ul", { className: "ss-w-md-ul", children }),
1289
+ ol: ({ children }) => /* @__PURE__ */ (0, import_jsx_runtime6.jsx)("ol", { className: "ss-w-md-ol", children }),
1290
+ code: ({ children }) => /* @__PURE__ */ (0, import_jsx_runtime6.jsx)("code", { className: "ss-w-md-code", children })
1266
1291
  };
1267
1292
  function Markdown({ text }) {
1268
- return /* @__PURE__ */ (0, import_jsx_runtime5.jsx)("div", { className: "ss-w-md", children: /* @__PURE__ */ (0, import_jsx_runtime5.jsx)(import_react_markdown.default, { remarkPlugins: [import_remark_gfm.default], components, children: text }) });
1293
+ return /* @__PURE__ */ (0, import_jsx_runtime6.jsx)("div", { className: "ss-w-md", children: /* @__PURE__ */ (0, import_jsx_runtime6.jsx)(import_react_markdown.default, { remarkPlugins: [import_remark_gfm.default], components, children: text }) });
1269
1294
  }
1270
1295
 
1271
1296
  // src/components/EntityCardList.tsx
1272
- var import_react4 = require("react");
1273
- var import_jsx_runtime6 = require("react/jsx-runtime");
1297
+ var import_react5 = require("react");
1298
+ var import_jsx_runtime7 = require("react/jsx-runtime");
1274
1299
  var MAX_VISIBLE = 3;
1275
1300
  var RECORD_RE = /^(\d+)-(\d+)-(\d+)$/;
1276
1301
  function initials(name) {
@@ -1280,7 +1305,7 @@ function shortSeason(season) {
1280
1305
  return season.replace(/\d{4}/g, (year) => year.slice(2));
1281
1306
  }
1282
1307
  function Crest({ image, label }) {
1283
- return /* @__PURE__ */ (0, import_jsx_runtime6.jsx)(
1308
+ return /* @__PURE__ */ (0, import_jsx_runtime7.jsx)(
1284
1309
  "span",
1285
1310
  {
1286
1311
  className: "ss-w-ecard-crest",
@@ -1291,34 +1316,34 @@ function Crest({ image, label }) {
1291
1316
  }
1292
1317
  function FormBar({ w, d, l }) {
1293
1318
  if (w + d + l === 0) return null;
1294
- return /* @__PURE__ */ (0, import_jsx_runtime6.jsxs)("span", { className: "ss-w-form", "aria-hidden": "true", children: [
1295
- w > 0 ? /* @__PURE__ */ (0, import_jsx_runtime6.jsx)("span", { className: "ss-w-form-w", style: { flexGrow: w } }) : null,
1296
- d > 0 ? /* @__PURE__ */ (0, import_jsx_runtime6.jsx)("span", { className: "ss-w-form-d", style: { flexGrow: d } }) : null,
1297
- l > 0 ? /* @__PURE__ */ (0, import_jsx_runtime6.jsx)("span", { className: "ss-w-form-l", style: { flexGrow: l } }) : null
1319
+ return /* @__PURE__ */ (0, import_jsx_runtime7.jsxs)("span", { className: "ss-w-form", "aria-hidden": "true", children: [
1320
+ w > 0 ? /* @__PURE__ */ (0, import_jsx_runtime7.jsx)("span", { className: "ss-w-form-w", style: { flexGrow: w } }) : null,
1321
+ d > 0 ? /* @__PURE__ */ (0, import_jsx_runtime7.jsx)("span", { className: "ss-w-form-d", style: { flexGrow: d } }) : null,
1322
+ l > 0 ? /* @__PURE__ */ (0, import_jsx_runtime7.jsx)("span", { className: "ss-w-form-l", style: { flexGrow: l } }) : null
1298
1323
  ] });
1299
1324
  }
1300
1325
  function StatCellView({ s }) {
1301
1326
  const m = RECORD_RE.exec(s.value);
1302
1327
  if (m) {
1303
- return /* @__PURE__ */ (0, import_jsx_runtime6.jsxs)("div", { className: "ss-w-ecard-cell", children: [
1304
- /* @__PURE__ */ (0, import_jsx_runtime6.jsx)("span", { className: "ss-w-ecard-cval", children: /* @__PURE__ */ (0, import_jsx_runtime6.jsx)(FormBar, { w: Number(m[1]), d: Number(m[2]), l: Number(m[3]) }) }),
1305
- /* @__PURE__ */ (0, import_jsx_runtime6.jsx)("span", { className: "ss-w-ecard-clabel", children: s.value })
1328
+ return /* @__PURE__ */ (0, import_jsx_runtime7.jsxs)("div", { className: "ss-w-ecard-cell", children: [
1329
+ /* @__PURE__ */ (0, import_jsx_runtime7.jsx)("span", { className: "ss-w-ecard-cval", children: /* @__PURE__ */ (0, import_jsx_runtime7.jsx)(FormBar, { w: Number(m[1]), d: Number(m[2]), l: Number(m[3]) }) }),
1330
+ /* @__PURE__ */ (0, import_jsx_runtime7.jsx)("span", { className: "ss-w-ecard-clabel", children: s.value })
1306
1331
  ] });
1307
1332
  }
1308
- return /* @__PURE__ */ (0, import_jsx_runtime6.jsxs)("div", { className: "ss-w-ecard-cell", children: [
1309
- /* @__PURE__ */ (0, import_jsx_runtime6.jsx)("span", { className: "ss-w-ecard-cval", children: s.value }),
1310
- /* @__PURE__ */ (0, import_jsx_runtime6.jsx)("span", { className: "ss-w-ecard-clabel", children: s.label })
1333
+ return /* @__PURE__ */ (0, import_jsx_runtime7.jsxs)("div", { className: "ss-w-ecard-cell", children: [
1334
+ /* @__PURE__ */ (0, import_jsx_runtime7.jsx)("span", { className: "ss-w-ecard-cval", children: s.value }),
1335
+ /* @__PURE__ */ (0, import_jsx_runtime7.jsx)("span", { className: "ss-w-ecard-clabel", children: s.label })
1311
1336
  ] });
1312
1337
  }
1313
1338
  function StatStrip({ stats }) {
1314
1339
  if (stats.length === 0) return null;
1315
1340
  const cols = Math.min(stats.length, 4);
1316
- return /* @__PURE__ */ (0, import_jsx_runtime6.jsx)("div", { className: "ss-w-ecard-strip", style: { gridTemplateColumns: `repeat(${cols}, 1fr)` }, children: stats.map((s) => /* @__PURE__ */ (0, import_jsx_runtime6.jsx)(StatCellView, { s }, s.label + s.value)) });
1341
+ return /* @__PURE__ */ (0, import_jsx_runtime7.jsx)("div", { className: "ss-w-ecard-strip", style: { gridTemplateColumns: `repeat(${cols}, 1fr)` }, children: stats.map((s) => /* @__PURE__ */ (0, import_jsx_runtime7.jsx)(StatCellView, { s }, s.label + s.value)) });
1317
1342
  }
1318
1343
  function CardHeader({ c, showScopeCrest }) {
1319
1344
  const onlyScope = c.scopes.length === 1 ? c.scopes[0] : null;
1320
- return /* @__PURE__ */ (0, import_jsx_runtime6.jsxs)("div", { className: "ss-w-ecard-hd", children: [
1321
- /* @__PURE__ */ (0, import_jsx_runtime6.jsx)(
1345
+ return /* @__PURE__ */ (0, import_jsx_runtime7.jsxs)("div", { className: "ss-w-ecard-hd", children: [
1346
+ /* @__PURE__ */ (0, import_jsx_runtime7.jsx)(
1322
1347
  "span",
1323
1348
  {
1324
1349
  className: c.kind === "team" ? "ss-w-thumb ss-w-team" : "ss-w-thumb",
@@ -1326,18 +1351,18 @@ function CardHeader({ c, showScopeCrest }) {
1326
1351
  children: c.image ? "" : initials(c.name)
1327
1352
  }
1328
1353
  ),
1329
- /* @__PURE__ */ (0, import_jsx_runtime6.jsxs)("span", { className: "ss-w-ecard-idtext", children: [
1330
- /* @__PURE__ */ (0, import_jsx_runtime6.jsx)("span", { className: "ss-w-nm", children: c.name }),
1331
- c.sub ? /* @__PURE__ */ (0, import_jsx_runtime6.jsx)("span", { className: "ss-w-sub", children: c.sub }) : null
1354
+ /* @__PURE__ */ (0, import_jsx_runtime7.jsxs)("span", { className: "ss-w-ecard-idtext", children: [
1355
+ /* @__PURE__ */ (0, import_jsx_runtime7.jsx)("span", { className: "ss-w-nm", children: c.name }),
1356
+ c.sub ? /* @__PURE__ */ (0, import_jsx_runtime7.jsx)("span", { className: "ss-w-sub", children: c.sub }) : null
1332
1357
  ] }),
1333
- /* @__PURE__ */ (0, import_jsx_runtime6.jsxs)("span", { className: "ss-w-ecard-meta", children: [
1334
- showScopeCrest && onlyScope?.image ? /* @__PURE__ */ (0, import_jsx_runtime6.jsx)(Crest, { image: onlyScope.image, label: onlyScope.label }) : null,
1335
- c.season ? /* @__PURE__ */ (0, import_jsx_runtime6.jsx)("span", { className: "ss-w-ecard-season", children: shortSeason(c.season) }) : null
1358
+ /* @__PURE__ */ (0, import_jsx_runtime7.jsxs)("span", { className: "ss-w-ecard-meta", children: [
1359
+ showScopeCrest && onlyScope?.image ? /* @__PURE__ */ (0, import_jsx_runtime7.jsx)(Crest, { image: onlyScope.image, label: onlyScope.label }) : null,
1360
+ c.season ? /* @__PURE__ */ (0, import_jsx_runtime7.jsx)("span", { className: "ss-w-ecard-season", children: shortSeason(c.season) }) : null
1336
1361
  ] })
1337
1362
  ] });
1338
1363
  }
1339
1364
  function ScopeTabs({ scopes, active, onSelect }) {
1340
- return /* @__PURE__ */ (0, import_jsx_runtime6.jsx)("div", { className: "ss-w-ecard-scopes", role: "tablist", children: scopes.map((s, i) => /* @__PURE__ */ (0, import_jsx_runtime6.jsx)(
1365
+ return /* @__PURE__ */ (0, import_jsx_runtime7.jsx)("div", { className: "ss-w-ecard-scopes", role: "tablist", children: scopes.map((s, i) => /* @__PURE__ */ (0, import_jsx_runtime7.jsx)(
1341
1366
  "button",
1342
1367
  {
1343
1368
  type: "button",
@@ -1347,59 +1372,59 @@ function ScopeTabs({ scopes, active, onSelect }) {
1347
1372
  "aria-label": s.label,
1348
1373
  title: s.label,
1349
1374
  onClick: () => onSelect(i),
1350
- children: s.image ? /* @__PURE__ */ (0, import_jsx_runtime6.jsx)(Crest, { image: s.image }) : s.label
1375
+ children: s.image ? /* @__PURE__ */ (0, import_jsx_runtime7.jsx)(Crest, { image: s.image }) : s.label
1351
1376
  },
1352
1377
  String(s.competitionId ?? "all")
1353
1378
  )) });
1354
1379
  }
1355
1380
  function EntityCardItem({ c }) {
1356
- const [active, setActive] = (0, import_react4.useState)(0);
1381
+ const [active, setActive] = (0, import_react5.useState)(0);
1357
1382
  const hasBody = c.scopes.length > 0;
1358
1383
  if (!hasBody) {
1359
- return /* @__PURE__ */ (0, import_jsx_runtime6.jsx)("div", { className: "ss-w-ecard ss-w-ecard-bare", "data-kind": c.kind, children: /* @__PURE__ */ (0, import_jsx_runtime6.jsx)(CardHeader, { c, showScopeCrest: false }) });
1384
+ return /* @__PURE__ */ (0, import_jsx_runtime7.jsx)("div", { className: "ss-w-ecard ss-w-ecard-bare", "data-kind": c.kind, children: /* @__PURE__ */ (0, import_jsx_runtime7.jsx)(CardHeader, { c, showScopeCrest: false }) });
1360
1385
  }
1361
1386
  const multi = c.scopes.length > 1;
1362
1387
  const scope = c.scopes[multi ? c.scopes[active] ? active : 0 : 0];
1363
- return /* @__PURE__ */ (0, import_jsx_runtime6.jsxs)("div", { className: "ss-w-ecard", "data-kind": c.kind, children: [
1364
- /* @__PURE__ */ (0, import_jsx_runtime6.jsx)(CardHeader, { c, showScopeCrest: !multi }),
1365
- multi ? /* @__PURE__ */ (0, import_jsx_runtime6.jsx)(ScopeTabs, { scopes: c.scopes, active, onSelect: setActive }) : null,
1366
- /* @__PURE__ */ (0, import_jsx_runtime6.jsx)(StatStrip, { stats: scope.stats })
1388
+ return /* @__PURE__ */ (0, import_jsx_runtime7.jsxs)("div", { className: "ss-w-ecard", "data-kind": c.kind, children: [
1389
+ /* @__PURE__ */ (0, import_jsx_runtime7.jsx)(CardHeader, { c, showScopeCrest: !multi }),
1390
+ multi ? /* @__PURE__ */ (0, import_jsx_runtime7.jsx)(ScopeTabs, { scopes: c.scopes, active, onSelect: setActive }) : null,
1391
+ /* @__PURE__ */ (0, import_jsx_runtime7.jsx)(StatStrip, { stats: scope.stats })
1367
1392
  ] });
1368
1393
  }
1369
1394
  function EntityCardList({ cards, disabled, showLessLabel = "Show less", showMoreLabel = (n) => `Show ${n} more` }) {
1370
- const [expanded, setExpanded] = (0, import_react4.useState)(false);
1395
+ const [expanded, setExpanded] = (0, import_react5.useState)(false);
1371
1396
  if (cards.length === 0) return null;
1372
1397
  const visible = expanded ? cards : cards.slice(0, MAX_VISIBLE);
1373
1398
  const overflow = cards.length - MAX_VISIBLE;
1374
- return /* @__PURE__ */ (0, import_jsx_runtime6.jsxs)("div", { className: "ss-w-cards", children: [
1375
- visible.map((c) => /* @__PURE__ */ (0, import_jsx_runtime6.jsx)(EntityCardItem, { c }, c.id)),
1376
- overflow > 0 ? /* @__PURE__ */ (0, import_jsx_runtime6.jsx)("button", { type: "button", className: "ss-w-cards-more", disabled, onClick: () => setExpanded((v) => !v), children: expanded ? showLessLabel : showMoreLabel(overflow) }) : null
1399
+ return /* @__PURE__ */ (0, import_jsx_runtime7.jsxs)("div", { className: "ss-w-cards", children: [
1400
+ visible.map((c) => /* @__PURE__ */ (0, import_jsx_runtime7.jsx)(EntityCardItem, { c }, c.id)),
1401
+ overflow > 0 ? /* @__PURE__ */ (0, import_jsx_runtime7.jsx)("button", { type: "button", className: "ss-w-cards-more", disabled, onClick: () => setExpanded((v) => !v), children: expanded ? showLessLabel : showMoreLabel(overflow) }) : null
1377
1402
  ] });
1378
1403
  }
1379
1404
 
1380
1405
  // src/components/BettingInsightList.tsx
1381
- var import_react9 = require("react");
1406
+ var import_react10 = require("react");
1382
1407
 
1383
1408
  // src/components/AddToSlipButton.tsx
1384
- var import_react6 = require("react");
1409
+ var import_react7 = require("react");
1385
1410
  var import_widget_sdk4 = require("@sensiblestats/widget-sdk");
1386
1411
 
1387
1412
  // src/components/Toast.tsx
1388
- var import_react5 = require("react");
1389
- var import_jsx_runtime7 = require("react/jsx-runtime");
1413
+ var import_react6 = require("react");
1414
+ var import_jsx_runtime8 = require("react/jsx-runtime");
1390
1415
  var DISMISS_MS = 4e3;
1391
1416
  function Toast({ toast, onDismiss }) {
1392
- (0, import_react5.useEffect)(() => {
1417
+ (0, import_react6.useEffect)(() => {
1393
1418
  if (!toast) return;
1394
1419
  const timer = setTimeout(onDismiss, DISMISS_MS);
1395
1420
  return () => clearTimeout(timer);
1396
1421
  }, [toast, onDismiss]);
1397
1422
  if (!toast) return null;
1398
- return /* @__PURE__ */ (0, import_jsx_runtime7.jsx)("div", { className: `ss-w-toast ss-w-toast-${toast.kind}`, role: "status", "aria-live": "polite", children: toast.text });
1423
+ return /* @__PURE__ */ (0, import_jsx_runtime8.jsx)("div", { className: `ss-w-toast ss-w-toast-${toast.kind}`, role: "status", "aria-live": "polite", children: toast.text });
1399
1424
  }
1400
1425
 
1401
1426
  // src/components/AddToSlipButton.tsx
1402
- var import_jsx_runtime8 = require("react/jsx-runtime");
1427
+ var import_jsx_runtime9 = require("react/jsx-runtime");
1403
1428
  function withTimeout(value) {
1404
1429
  return Promise.race([
1405
1430
  value,
@@ -1407,10 +1432,10 @@ function withTimeout(value) {
1407
1432
  ]);
1408
1433
  }
1409
1434
  function SlipButton({ selection, shownOdds, marketName, slip, ui }) {
1410
- const [pending, setPending] = (0, import_react6.useState)(false);
1411
- const [settled, setSettled] = (0, import_react6.useState)(false);
1412
- const [toast, setToast] = (0, import_react6.useState)(null);
1413
- const dismiss = (0, import_react6.useCallback)(() => setToast(null), []);
1435
+ const [pending, setPending] = (0, import_react7.useState)(false);
1436
+ const [settled, setSettled] = (0, import_react7.useState)(false);
1437
+ const [toast, setToast] = (0, import_react7.useState)(null);
1438
+ const dismiss = (0, import_react7.useCallback)(() => setToast(null), []);
1414
1439
  const handler = slip.onAddToSlip;
1415
1440
  if (!ui || !handler || !selection) return null;
1416
1441
  const onClick = async () => {
@@ -1433,8 +1458,8 @@ function SlipButton({ selection, shownOdds, marketName, slip, ui }) {
1433
1458
  setPending(false);
1434
1459
  }
1435
1460
  };
1436
- return /* @__PURE__ */ (0, import_jsx_runtime8.jsxs)("div", { className: "ss-w-slip", children: [
1437
- /* @__PURE__ */ (0, import_jsx_runtime8.jsx)(
1461
+ return /* @__PURE__ */ (0, import_jsx_runtime9.jsxs)("div", { className: "ss-w-slip", children: [
1462
+ /* @__PURE__ */ (0, import_jsx_runtime9.jsx)(
1438
1463
  "button",
1439
1464
  {
1440
1465
  type: "button",
@@ -1444,16 +1469,16 @@ function SlipButton({ selection, shownOdds, marketName, slip, ui }) {
1444
1469
  children: settled ? ui.inSlip : ui.addToSlip
1445
1470
  }
1446
1471
  ),
1447
- /* @__PURE__ */ (0, import_jsx_runtime8.jsx)(Toast, { toast, onDismiss: dismiss })
1472
+ /* @__PURE__ */ (0, import_jsx_runtime9.jsx)(Toast, { toast, onDismiss: dismiss })
1448
1473
  ] });
1449
1474
  }
1450
1475
  function AddToSlipButton({ it, slip, ui }) {
1451
1476
  const selection = it.addToSlipEnabled ? toSlipSelection(it, slip.conversationId) : null;
1452
- return /* @__PURE__ */ (0, import_jsx_runtime8.jsx)(SlipButton, { selection, shownOdds: it.odds ?? "", marketName: it.market, slip, ui });
1477
+ return /* @__PURE__ */ (0, import_jsx_runtime9.jsx)(SlipButton, { selection, shownOdds: it.odds ?? "", marketName: it.market, slip, ui });
1453
1478
  }
1454
1479
 
1455
1480
  // src/components/OddsMovementBadge.tsx
1456
- var import_jsx_runtime9 = (
1481
+ var import_jsx_runtime10 = (
1457
1482
  // Strikethrough is invisible to screen readers, so the whole was/now/direction sentence rides
1458
1483
  // on one aria-label and the visual glyphs are hidden from the accessibility tree.
1459
1484
  require("react/jsx-runtime")
@@ -1467,33 +1492,33 @@ function OddsMovementBadge({
1467
1492
  if (previous === void 0 || direction === void 0) return null;
1468
1493
  const directionWord2 = direction === "shortened" ? ui?.oddsShortened ?? "shortened" : ui?.oddsDrifted ?? "drifted";
1469
1494
  const label = ui?.oddsMoved?.(previous, current, directionWord2) ?? `was ${previous}, now ${current}, ${directionWord2}`;
1470
- return /* @__PURE__ */ (0, import_jsx_runtime9.jsxs)("span", { className: "ss-w-move", role: "img", "aria-label": label, children: [
1471
- /* @__PURE__ */ (0, import_jsx_runtime9.jsx)("span", { className: "ss-w-move-prev", "aria-hidden": "true", children: previous }),
1472
- /* @__PURE__ */ (0, import_jsx_runtime9.jsx)("span", { className: "ss-w-move-arrow", "aria-hidden": "true", children: direction === "shortened" ? "\u25BC" : "\u25B2" })
1495
+ return /* @__PURE__ */ (0, import_jsx_runtime10.jsxs)("span", { className: "ss-w-move", role: "img", "aria-label": label, children: [
1496
+ /* @__PURE__ */ (0, import_jsx_runtime10.jsx)("span", { className: "ss-w-move-prev", "aria-hidden": "true", children: previous }),
1497
+ /* @__PURE__ */ (0, import_jsx_runtime10.jsx)("span", { className: "ss-w-move-arrow", "aria-hidden": "true", children: direction === "shortened" ? "\u25BC" : "\u25B2" })
1473
1498
  ] });
1474
1499
  }
1475
1500
 
1476
1501
  // src/components/Crest.tsx
1477
- var import_react7 = require("react");
1478
- var import_jsx_runtime10 = require("react/jsx-runtime");
1502
+ var import_react8 = require("react");
1503
+ var import_jsx_runtime11 = require("react/jsx-runtime");
1479
1504
  function initials2(name) {
1480
1505
  return (name ?? "").trim().slice(0, 1).toUpperCase() || "?";
1481
1506
  }
1482
1507
  function Crest2({ url, name, kind }) {
1483
1508
  const cls = kind === "comp" ? "ss-w-bi-comp-logo" : "ss-w-bi-crest";
1484
- const [failed, setFailed] = (0, import_react7.useState)(false);
1509
+ const [failed, setFailed] = (0, import_react8.useState)(false);
1485
1510
  if (url && !failed) {
1486
- return /* @__PURE__ */ (0, import_jsx_runtime10.jsx)("img", { className: cls, src: url, alt: "", "aria-hidden": "true", onError: () => setFailed(true) });
1511
+ return /* @__PURE__ */ (0, import_jsx_runtime11.jsx)("img", { className: cls, src: url, alt: "", "aria-hidden": "true", onError: () => setFailed(true) });
1487
1512
  }
1488
- return /* @__PURE__ */ (0, import_jsx_runtime10.jsx)("span", { className: `${cls} ss-w-bi-crest-mono`, "aria-hidden": "true", children: initials2(name) });
1513
+ return /* @__PURE__ */ (0, import_jsx_runtime11.jsx)("span", { className: `${cls} ss-w-bi-crest-mono`, "aria-hidden": "true", children: initials2(name) });
1489
1514
  }
1490
1515
 
1491
1516
  // src/components/PinToggle.tsx
1492
- var import_react8 = require("react");
1493
- var import_jsx_runtime11 = require("react/jsx-runtime");
1517
+ var import_react9 = require("react");
1518
+ var import_jsx_runtime12 = require("react/jsx-runtime");
1494
1519
  function PinToggle({ pin, monitor, ui }) {
1495
- const [toast, setToast] = (0, import_react8.useState)(null);
1496
- const dismiss = (0, import_react8.useCallback)(() => setToast(null), []);
1520
+ const [toast, setToast] = (0, import_react9.useState)(null);
1521
+ const dismiss = (0, import_react9.useCallback)(() => setToast(null), []);
1497
1522
  if (!monitor || !monitor.enabled) return null;
1498
1523
  const key = pinKey(pin);
1499
1524
  const pinned = monitor.isPinned(key);
@@ -1506,8 +1531,8 @@ function PinToggle({ pin, monitor, ui }) {
1506
1531
  setToast({ kind: "error", text: ui.marketLimitToast });
1507
1532
  }
1508
1533
  };
1509
- return /* @__PURE__ */ (0, import_jsx_runtime11.jsxs)("div", { className: "ss-w-pin-wrap", children: [
1510
- /* @__PURE__ */ (0, import_jsx_runtime11.jsx)(
1534
+ return /* @__PURE__ */ (0, import_jsx_runtime12.jsxs)("div", { className: "ss-w-pin-wrap", children: [
1535
+ /* @__PURE__ */ (0, import_jsx_runtime12.jsx)(
1511
1536
  "button",
1512
1537
  {
1513
1538
  type: "button",
@@ -1516,46 +1541,46 @@ function PinToggle({ pin, monitor, ui }) {
1516
1541
  "aria-pressed": pinned,
1517
1542
  "aria-label": pinned ? labels.unpin : labels.pin,
1518
1543
  onClick,
1519
- children: /* @__PURE__ */ (0, import_jsx_runtime11.jsx)("svg", { viewBox: "0 0 16 16", "aria-hidden": "true", children: /* @__PURE__ */ (0, import_jsx_runtime11.jsx)("path", { fill: "currentColor", d: "M9.5 1.5 14.5 6.5 13 8l-.5-.5-3 3 .3 2.2-1.4 1.4L5.6 11.3l-3.3 3.3-1-1 3.3-3.3L1.9 7.5l1.4-1.4 2.2.3 3-3L8 2.9z" }) })
1544
+ children: /* @__PURE__ */ (0, import_jsx_runtime12.jsx)("svg", { viewBox: "0 0 16 16", "aria-hidden": "true", children: /* @__PURE__ */ (0, import_jsx_runtime12.jsx)("path", { fill: "currentColor", d: "M9.5 1.5 14.5 6.5 13 8l-.5-.5-3 3 .3 2.2-1.4 1.4L5.6 11.3l-3.3 3.3-1-1 3.3-3.3L1.9 7.5l1.4-1.4 2.2.3 3-3L8 2.9z" }) })
1520
1545
  }
1521
1546
  ),
1522
- /* @__PURE__ */ (0, import_jsx_runtime11.jsx)(Toast, { toast, onDismiss: dismiss })
1547
+ /* @__PURE__ */ (0, import_jsx_runtime12.jsx)(Toast, { toast, onDismiss: dismiss })
1523
1548
  ] });
1524
1549
  }
1525
1550
 
1526
1551
  // src/components/BettingInsightList.tsx
1527
- var import_jsx_runtime12 = require("react/jsx-runtime");
1552
+ var import_jsx_runtime13 = require("react/jsx-runtime");
1528
1553
  function StatRows({ stats }) {
1529
- return /* @__PURE__ */ (0, import_jsx_runtime12.jsx)("div", { className: "ss-w-bi-rows", children: stats.map((s) => /* @__PURE__ */ (0, import_jsx_runtime12.jsxs)("div", { className: "ss-w-bi-row", children: [
1530
- /* @__PURE__ */ (0, import_jsx_runtime12.jsx)("span", { className: "ss-w-bi-row-lbl", children: s.label }),
1531
- /* @__PURE__ */ (0, import_jsx_runtime12.jsx)("span", { className: "ss-w-bi-row-num", children: s.value })
1554
+ return /* @__PURE__ */ (0, import_jsx_runtime13.jsx)("div", { className: "ss-w-bi-rows", children: stats.map((s) => /* @__PURE__ */ (0, import_jsx_runtime13.jsxs)("div", { className: "ss-w-bi-row", children: [
1555
+ /* @__PURE__ */ (0, import_jsx_runtime13.jsx)("span", { className: "ss-w-bi-row-lbl", children: s.label }),
1556
+ /* @__PURE__ */ (0, import_jsx_runtime13.jsx)("span", { className: "ss-w-bi-row-num", children: s.value })
1532
1557
  ] }, `${s.label}:${s.value}`)) });
1533
1558
  }
1534
1559
  function ScopedStats({ scopes }) {
1535
- const [active, setActive] = (0, import_react9.useState)(0);
1560
+ const [active, setActive] = (0, import_react10.useState)(0);
1536
1561
  const current = scopes[active] ?? scopes[0] ?? { key: "", label: "", stats: [] };
1537
- return /* @__PURE__ */ (0, import_jsx_runtime12.jsxs)("div", { className: "ss-w-bi-scoped", children: [
1538
- /* @__PURE__ */ (0, import_jsx_runtime12.jsx)("div", { className: "ss-w-bi-scopes", role: "group", children: scopes.map((s, i) => /* @__PURE__ */ (0, import_jsx_runtime12.jsx)("button", { type: "button", className: "ss-w-bi-chip", "aria-pressed": i === active, onClick: () => setActive(i), children: s.label }, s.key)) }),
1539
- /* @__PURE__ */ (0, import_jsx_runtime12.jsx)(StatRows, { stats: current.stats }, current.key)
1562
+ return /* @__PURE__ */ (0, import_jsx_runtime13.jsxs)("div", { className: "ss-w-bi-scoped", children: [
1563
+ /* @__PURE__ */ (0, import_jsx_runtime13.jsx)("div", { className: "ss-w-bi-scopes", role: "group", children: scopes.map((s, i) => /* @__PURE__ */ (0, import_jsx_runtime13.jsx)("button", { type: "button", className: "ss-w-bi-chip", "aria-pressed": i === active, onClick: () => setActive(i), children: s.label }, s.key)) }),
1564
+ /* @__PURE__ */ (0, import_jsx_runtime13.jsx)(StatRows, { stats: current.stats }, current.key)
1540
1565
  ] });
1541
1566
  }
1542
1567
  function hasStatsContent(it) {
1543
1568
  return !!it.scopes && it.scopes.length >= 2 || it.stats.length > 0;
1544
1569
  }
1545
1570
  function ReasonStrip({ it, ui }) {
1546
- const [open, setOpen] = (0, import_react9.useState)(false);
1571
+ const [open, setOpen] = (0, import_react10.useState)(false);
1547
1572
  const hasScopes = !!it.scopes && it.scopes.length >= 2;
1548
1573
  const hasStats = hasStatsContent(it);
1549
1574
  const hasText = !!it.text;
1550
1575
  if (!hasText && !hasStats) return null;
1551
1576
  const expandable = hasStats || (it.text?.length ?? 0) > 90;
1552
- return /* @__PURE__ */ (0, import_jsx_runtime12.jsxs)("div", { className: "ss-w-bi-reason", children: [
1553
- /* @__PURE__ */ (0, import_jsx_runtime12.jsx)("span", { className: "ss-w-bi-chart", "aria-hidden": "true" }),
1554
- /* @__PURE__ */ (0, import_jsx_runtime12.jsxs)("div", { className: "ss-w-bi-reason-body", children: [
1555
- hasText ? /* @__PURE__ */ (0, import_jsx_runtime12.jsx)("p", { className: `ss-w-bi-text${open ? "" : " ss-w-bi-text-clamp"}`, children: it.text }) : null,
1556
- open && hasStats ? hasScopes ? /* @__PURE__ */ (0, import_jsx_runtime12.jsx)(ScopedStats, { scopes: it.scopes }) : /* @__PURE__ */ (0, import_jsx_runtime12.jsx)(StatRows, { stats: it.stats }) : null
1577
+ return /* @__PURE__ */ (0, import_jsx_runtime13.jsxs)("div", { className: "ss-w-bi-reason", children: [
1578
+ /* @__PURE__ */ (0, import_jsx_runtime13.jsx)("span", { className: "ss-w-bi-chart", "aria-hidden": "true" }),
1579
+ /* @__PURE__ */ (0, import_jsx_runtime13.jsxs)("div", { className: "ss-w-bi-reason-body", children: [
1580
+ hasText ? /* @__PURE__ */ (0, import_jsx_runtime13.jsx)("p", { className: `ss-w-bi-text${open ? "" : " ss-w-bi-text-clamp"}`, children: it.text }) : null,
1581
+ open && hasStats ? hasScopes ? /* @__PURE__ */ (0, import_jsx_runtime13.jsx)(ScopedStats, { scopes: it.scopes }) : /* @__PURE__ */ (0, import_jsx_runtime13.jsx)(StatRows, { stats: it.stats }) : null
1557
1582
  ] }),
1558
- expandable ? /* @__PURE__ */ (0, import_jsx_runtime12.jsx)(
1583
+ expandable ? /* @__PURE__ */ (0, import_jsx_runtime13.jsx)(
1559
1584
  "button",
1560
1585
  {
1561
1586
  type: "button",
@@ -1563,26 +1588,26 @@ function ReasonStrip({ it, ui }) {
1563
1588
  "aria-expanded": open,
1564
1589
  "aria-label": open ? ui?.hideStats ?? "Hide stats" : ui?.showStats ?? "Show stats",
1565
1590
  onClick: () => setOpen((v) => !v),
1566
- children: /* @__PURE__ */ (0, import_jsx_runtime12.jsx)("span", { className: `ss-w-bi-arrow${open ? " ss-w-bi-arrow-open" : ""}`, "aria-hidden": "true" })
1591
+ children: /* @__PURE__ */ (0, import_jsx_runtime13.jsx)("span", { className: `ss-w-bi-arrow${open ? " ss-w-bi-arrow-open" : ""}`, "aria-hidden": "true" })
1567
1592
  }
1568
1593
  ) : null
1569
1594
  ] });
1570
1595
  }
1571
1596
  function CardFixture({ it }) {
1572
1597
  if (it.homeTeamName && it.awayTeamName) {
1573
- return /* @__PURE__ */ (0, import_jsx_runtime12.jsxs)(import_jsx_runtime12.Fragment, { children: [
1574
- /* @__PURE__ */ (0, import_jsx_runtime12.jsx)(Crest2, { kind: "team", url: it.homeCrest, name: it.homeTeamName }),
1575
- /* @__PURE__ */ (0, import_jsx_runtime12.jsx)("span", { className: "ss-w-bi-team", children: it.homeTeamName }),
1576
- /* @__PURE__ */ (0, import_jsx_runtime12.jsx)("span", { className: "ss-w-bi-vs", "aria-hidden": "true", children: "vs" }),
1577
- /* @__PURE__ */ (0, import_jsx_runtime12.jsx)("span", { className: "ss-w-bi-team", children: it.awayTeamName }),
1578
- /* @__PURE__ */ (0, import_jsx_runtime12.jsx)(Crest2, { kind: "team", url: it.awayCrest, name: it.awayTeamName })
1598
+ return /* @__PURE__ */ (0, import_jsx_runtime13.jsxs)(import_jsx_runtime13.Fragment, { children: [
1599
+ /* @__PURE__ */ (0, import_jsx_runtime13.jsx)(Crest2, { kind: "team", url: it.homeCrest, name: it.homeTeamName }),
1600
+ /* @__PURE__ */ (0, import_jsx_runtime13.jsx)("span", { className: "ss-w-bi-team", children: it.homeTeamName }),
1601
+ /* @__PURE__ */ (0, import_jsx_runtime13.jsx)("span", { className: "ss-w-bi-vs", "aria-hidden": "true", children: "vs" }),
1602
+ /* @__PURE__ */ (0, import_jsx_runtime13.jsx)("span", { className: "ss-w-bi-team", children: it.awayTeamName }),
1603
+ /* @__PURE__ */ (0, import_jsx_runtime13.jsx)(Crest2, { kind: "team", url: it.awayCrest, name: it.awayTeamName })
1579
1604
  ] });
1580
1605
  }
1581
- if (it.fixture) return /* @__PURE__ */ (0, import_jsx_runtime12.jsx)("span", { className: "ss-w-bi-fixture-txt", children: it.fixture });
1606
+ if (it.fixture) return /* @__PURE__ */ (0, import_jsx_runtime13.jsx)("span", { className: "ss-w-bi-fixture-txt", children: it.fixture });
1582
1607
  if (it.competition) {
1583
- return /* @__PURE__ */ (0, import_jsx_runtime12.jsxs)(import_jsx_runtime12.Fragment, { children: [
1584
- /* @__PURE__ */ (0, import_jsx_runtime12.jsx)(Crest2, { kind: "comp", url: it.competitionCrest, name: it.competition }),
1585
- /* @__PURE__ */ (0, import_jsx_runtime12.jsx)("span", { className: "ss-w-bi-comp", children: it.competition })
1608
+ return /* @__PURE__ */ (0, import_jsx_runtime13.jsxs)(import_jsx_runtime13.Fragment, { children: [
1609
+ /* @__PURE__ */ (0, import_jsx_runtime13.jsx)(Crest2, { kind: "comp", url: it.competitionCrest, name: it.competition }),
1610
+ /* @__PURE__ */ (0, import_jsx_runtime13.jsx)("span", { className: "ss-w-bi-comp", children: it.competition })
1586
1611
  ] });
1587
1612
  }
1588
1613
  return null;
@@ -1595,38 +1620,38 @@ function InsightCard({ it, ui, slip, monitor }) {
1595
1620
  const compInMeta = leftIsFixture && !!it.competition;
1596
1621
  const showPin = !!monitor && it.pinEnabled;
1597
1622
  const showHeader = leftIsFixture || !!it.competition || live || !!kickoff || showPin;
1598
- return /* @__PURE__ */ (0, import_jsx_runtime12.jsxs)("div", { className: "ss-w-binsight", children: [
1599
- showHeader ? /* @__PURE__ */ (0, import_jsx_runtime12.jsxs)("div", { className: "ss-w-bi-header", children: [
1600
- /* @__PURE__ */ (0, import_jsx_runtime12.jsx)("span", { className: "ss-w-bi-header-left", children: /* @__PURE__ */ (0, import_jsx_runtime12.jsx)(CardFixture, { it }) }),
1601
- /* @__PURE__ */ (0, import_jsx_runtime12.jsxs)("span", { className: "ss-w-bi-header-right", children: [
1602
- live ? /* @__PURE__ */ (0, import_jsx_runtime12.jsxs)("span", { className: "ss-w-bi-live", children: [
1603
- /* @__PURE__ */ (0, import_jsx_runtime12.jsx)("span", { className: "ss-w-bi-live-dot", "aria-hidden": "true" }),
1623
+ return /* @__PURE__ */ (0, import_jsx_runtime13.jsxs)("div", { className: "ss-w-binsight", children: [
1624
+ showHeader ? /* @__PURE__ */ (0, import_jsx_runtime13.jsxs)("div", { className: "ss-w-bi-header", children: [
1625
+ /* @__PURE__ */ (0, import_jsx_runtime13.jsx)("span", { className: "ss-w-bi-header-left", children: /* @__PURE__ */ (0, import_jsx_runtime13.jsx)(CardFixture, { it }) }),
1626
+ /* @__PURE__ */ (0, import_jsx_runtime13.jsxs)("span", { className: "ss-w-bi-header-right", children: [
1627
+ live ? /* @__PURE__ */ (0, import_jsx_runtime13.jsxs)("span", { className: "ss-w-bi-live", children: [
1628
+ /* @__PURE__ */ (0, import_jsx_runtime13.jsx)("span", { className: "ss-w-bi-live-dot", "aria-hidden": "true" }),
1604
1629
  ui?.liveLabel ?? "Live"
1605
1630
  ] }) : null,
1606
- compInMeta ? /* @__PURE__ */ (0, import_jsx_runtime12.jsx)("span", { className: "ss-w-bi-comp-meta", title: it.competition, children: /* @__PURE__ */ (0, import_jsx_runtime12.jsx)(Crest2, { kind: "comp", url: it.competitionCrest, name: it.competition }) }) : null,
1607
- kickoff ? /* @__PURE__ */ (0, import_jsx_runtime12.jsxs)("span", { className: "ss-w-bi-kick", children: [
1631
+ compInMeta ? /* @__PURE__ */ (0, import_jsx_runtime13.jsx)("span", { className: "ss-w-bi-comp-meta", title: it.competition, children: /* @__PURE__ */ (0, import_jsx_runtime13.jsx)(Crest2, { kind: "comp", url: it.competitionCrest, name: it.competition }) }) : null,
1632
+ kickoff ? /* @__PURE__ */ (0, import_jsx_runtime13.jsxs)("span", { className: "ss-w-bi-kick", children: [
1608
1633
  kickoff.dayLabel,
1609
1634
  " ",
1610
1635
  kickoff.time
1611
1636
  ] }) : null,
1612
- showPin && ui ? /* @__PURE__ */ (0, import_jsx_runtime12.jsx)(PinToggle, { ui, monitor, pin: { kind: "match", matchId: it.matchId } }) : null
1637
+ showPin && ui ? /* @__PURE__ */ (0, import_jsx_runtime13.jsx)(PinToggle, { ui, monitor, pin: { kind: "match", matchId: it.matchId } }) : null
1613
1638
  ] })
1614
1639
  ] }) : null,
1615
- /* @__PURE__ */ (0, import_jsx_runtime12.jsxs)("div", { className: "ss-w-bi-action-row", children: [
1616
- /* @__PURE__ */ (0, import_jsx_runtime12.jsxs)("span", { className: "ss-w-bi-pick", children: [
1617
- /* @__PURE__ */ (0, import_jsx_runtime12.jsx)("span", { className: "ss-w-bi-market", children: it.market }),
1618
- it.selection ? /* @__PURE__ */ (0, import_jsx_runtime12.jsxs)(import_jsx_runtime12.Fragment, { children: [
1619
- /* @__PURE__ */ (0, import_jsx_runtime12.jsx)("span", { className: "ss-w-bi-pick-dot", "aria-hidden": "true", children: "\xB7" }),
1620
- /* @__PURE__ */ (0, import_jsx_runtime12.jsx)("span", { className: "ss-w-bi-sel", children: it.selection })
1640
+ /* @__PURE__ */ (0, import_jsx_runtime13.jsxs)("div", { className: "ss-w-bi-action-row", children: [
1641
+ /* @__PURE__ */ (0, import_jsx_runtime13.jsxs)("span", { className: "ss-w-bi-pick", children: [
1642
+ /* @__PURE__ */ (0, import_jsx_runtime13.jsx)("span", { className: "ss-w-bi-market", children: it.market }),
1643
+ it.selection ? /* @__PURE__ */ (0, import_jsx_runtime13.jsxs)(import_jsx_runtime13.Fragment, { children: [
1644
+ /* @__PURE__ */ (0, import_jsx_runtime13.jsx)("span", { className: "ss-w-bi-pick-dot", "aria-hidden": "true", children: "\xB7" }),
1645
+ /* @__PURE__ */ (0, import_jsx_runtime13.jsx)("span", { className: "ss-w-bi-sel", children: it.selection })
1621
1646
  ] }) : null
1622
1647
  ] }),
1623
- it.odds ? /* @__PURE__ */ (0, import_jsx_runtime12.jsxs)("span", { className: "ss-w-bi-odds", children: [
1624
- /* @__PURE__ */ (0, import_jsx_runtime12.jsx)("b", { children: it.odds }),
1625
- /* @__PURE__ */ (0, import_jsx_runtime12.jsx)(OddsMovementBadge, { previous: it.previousOdds, current: it.odds, direction: it.movementDirection, ui }),
1626
- it.bookmaker ? /* @__PURE__ */ (0, import_jsx_runtime12.jsx)("span", { className: "ss-w-bi-book", children: it.bookmaker }) : null
1648
+ it.odds ? /* @__PURE__ */ (0, import_jsx_runtime13.jsxs)("span", { className: "ss-w-bi-odds", children: [
1649
+ /* @__PURE__ */ (0, import_jsx_runtime13.jsx)("b", { children: it.odds }),
1650
+ /* @__PURE__ */ (0, import_jsx_runtime13.jsx)(OddsMovementBadge, { previous: it.previousOdds, current: it.odds, direction: it.movementDirection, ui }),
1651
+ it.bookmaker ? /* @__PURE__ */ (0, import_jsx_runtime13.jsx)("span", { className: "ss-w-bi-book", children: it.bookmaker }) : null
1627
1652
  ] }) : null,
1628
- /* @__PURE__ */ (0, import_jsx_runtime12.jsx)(AddToSlipButton, { it, slip, ui }),
1629
- showPin && ui ? /* @__PURE__ */ (0, import_jsx_runtime12.jsx)(
1653
+ /* @__PURE__ */ (0, import_jsx_runtime13.jsx)(AddToSlipButton, { it, slip, ui }),
1654
+ showPin && ui ? /* @__PURE__ */ (0, import_jsx_runtime13.jsx)(
1630
1655
  PinToggle,
1631
1656
  {
1632
1657
  ui,
@@ -1642,56 +1667,56 @@ function InsightCard({ it, ui, slip, monitor }) {
1642
1667
  }
1643
1668
  ) : null
1644
1669
  ] }),
1645
- it.isMarketFloor ? /* @__PURE__ */ (0, import_jsx_runtime12.jsx)("span", { className: "ss-w-bi-floor", children: ui?.marketFloorLabel ?? "Market price \xB7 not a value pick" }) : null,
1646
- /* @__PURE__ */ (0, import_jsx_runtime12.jsx)(ReasonStrip, { it, ui }),
1647
- it.disclaimer ? /* @__PURE__ */ (0, import_jsx_runtime12.jsx)("p", { className: "ss-w-bi-disc", children: it.disclaimer }) : null
1670
+ it.isMarketFloor ? /* @__PURE__ */ (0, import_jsx_runtime13.jsx)("span", { className: "ss-w-bi-floor", children: ui?.marketFloorLabel ?? "Market price \xB7 not a value pick" }) : null,
1671
+ /* @__PURE__ */ (0, import_jsx_runtime13.jsx)(ReasonStrip, { it, ui }),
1672
+ it.disclaimer ? /* @__PURE__ */ (0, import_jsx_runtime13.jsx)("p", { className: "ss-w-bi-disc", children: it.disclaimer }) : null
1648
1673
  ] });
1649
1674
  }
1650
1675
  function BettingInsightList({ insights, ui, slip, monitor }) {
1651
1676
  if (!insights || insights.length === 0) return null;
1652
- return /* @__PURE__ */ (0, import_jsx_runtime12.jsx)("div", { className: "ss-w-binsights", children: insights.map((it) => /* @__PURE__ */ (0, import_jsx_runtime12.jsx)(InsightCard, { it, ui, slip, monitor }, it.id)) });
1677
+ return /* @__PURE__ */ (0, import_jsx_runtime13.jsx)("div", { className: "ss-w-binsights", children: insights.map((it) => /* @__PURE__ */ (0, import_jsx_runtime13.jsx)(InsightCard, { it, ui, slip, monitor }, it.id)) });
1653
1678
  }
1654
1679
 
1655
1680
  // src/components/MarketOddsCardList.tsx
1656
- var import_react10 = require("react");
1657
- var import_jsx_runtime13 = require("react/jsx-runtime");
1681
+ var import_react11 = require("react");
1682
+ var import_jsx_runtime14 = require("react/jsx-runtime");
1658
1683
  function OddsRow({ vm, row, ui, slip, inSlipIds }) {
1659
1684
  const selection = vm.addToSlipEnabled ? marketOddsRowToSlipSelection(vm, row, slip.conversationId) : null;
1660
1685
  const inSlip = !!inSlipIds && row.matchOddsId != null && !!inSlipIds[row.matchOddsId];
1661
- return /* @__PURE__ */ (0, import_jsx_runtime13.jsxs)("div", { className: "ss-w-mo-row", children: [
1662
- /* @__PURE__ */ (0, import_jsx_runtime13.jsx)("span", { className: "ss-w-mo-sel", children: row.selection }),
1663
- /* @__PURE__ */ (0, import_jsx_runtime13.jsx)(OddsMovementBadge, { previous: row.previousOdds, current: row.odds, direction: row.movementDirection, ui }),
1664
- /* @__PURE__ */ (0, import_jsx_runtime13.jsx)("span", { className: "ss-w-mo-price", children: row.odds }),
1665
- inSlip && ui ? /* @__PURE__ */ (0, import_jsx_runtime13.jsxs)("span", { className: "ss-w-mon-inslip", children: [
1686
+ return /* @__PURE__ */ (0, import_jsx_runtime14.jsxs)("div", { className: "ss-w-mo-row", children: [
1687
+ /* @__PURE__ */ (0, import_jsx_runtime14.jsx)("span", { className: "ss-w-mo-sel", children: row.selection }),
1688
+ /* @__PURE__ */ (0, import_jsx_runtime14.jsx)(OddsMovementBadge, { previous: row.previousOdds, current: row.odds, direction: row.movementDirection, ui }),
1689
+ /* @__PURE__ */ (0, import_jsx_runtime14.jsx)("span", { className: "ss-w-mo-price", children: row.odds }),
1690
+ inSlip && ui ? /* @__PURE__ */ (0, import_jsx_runtime14.jsxs)("span", { className: "ss-w-mon-inslip", children: [
1666
1691
  "\u2713 ",
1667
1692
  ui.inSlipLabel
1668
1693
  ] }) : null,
1669
- /* @__PURE__ */ (0, import_jsx_runtime13.jsx)(SlipButton, { selection, shownOdds: row.odds, marketName: vm.market, slip, ui })
1694
+ /* @__PURE__ */ (0, import_jsx_runtime14.jsx)(SlipButton, { selection, shownOdds: row.odds, marketName: vm.market, slip, ui })
1670
1695
  ] });
1671
1696
  }
1672
1697
  function MarketOddsCard({ vm, ui, slip, monitor, inSlipIds }) {
1673
- const [open, setOpen] = (0, import_react10.useState)(false);
1698
+ const [open, setOpen] = (0, import_react11.useState)(false);
1674
1699
  const kickoff = vm.kickoffUtc && ui?.bettingKickoff ? ui.bettingKickoff(vm.kickoffUtc) : void 0;
1675
1700
  const hasNamedTeams = !!vm.homeTeamName && !!vm.awayTeamName;
1676
1701
  const showPin = !!monitor && vm.pinEnabled;
1677
1702
  const showHeader = !!vm.competition || vm.isLive || !!kickoff || showPin;
1678
- return /* @__PURE__ */ (0, import_jsx_runtime13.jsxs)("div", { className: "ss-w-mocard", children: [
1679
- showHeader ? /* @__PURE__ */ (0, import_jsx_runtime13.jsxs)("div", { className: "ss-w-bi-header", children: [
1680
- /* @__PURE__ */ (0, import_jsx_runtime13.jsx)("span", { className: "ss-w-bi-header-left", children: vm.competition ? /* @__PURE__ */ (0, import_jsx_runtime13.jsxs)(import_jsx_runtime13.Fragment, { children: [
1681
- /* @__PURE__ */ (0, import_jsx_runtime13.jsx)(Crest2, { kind: "comp", url: vm.competitionCrest, name: vm.competition }),
1682
- /* @__PURE__ */ (0, import_jsx_runtime13.jsx)("span", { className: "ss-w-bi-comp", children: vm.competition })
1703
+ return /* @__PURE__ */ (0, import_jsx_runtime14.jsxs)("div", { className: "ss-w-mocard", children: [
1704
+ showHeader ? /* @__PURE__ */ (0, import_jsx_runtime14.jsxs)("div", { className: "ss-w-bi-header", children: [
1705
+ /* @__PURE__ */ (0, import_jsx_runtime14.jsx)("span", { className: "ss-w-bi-header-left", children: vm.competition ? /* @__PURE__ */ (0, import_jsx_runtime14.jsxs)(import_jsx_runtime14.Fragment, { children: [
1706
+ /* @__PURE__ */ (0, import_jsx_runtime14.jsx)(Crest2, { kind: "comp", url: vm.competitionCrest, name: vm.competition }),
1707
+ /* @__PURE__ */ (0, import_jsx_runtime14.jsx)("span", { className: "ss-w-bi-comp", children: vm.competition })
1683
1708
  ] }) : null }),
1684
- /* @__PURE__ */ (0, import_jsx_runtime13.jsxs)("span", { className: "ss-w-bi-header-right", children: [
1685
- vm.isLive ? /* @__PURE__ */ (0, import_jsx_runtime13.jsxs)("span", { className: "ss-w-bi-live", children: [
1686
- /* @__PURE__ */ (0, import_jsx_runtime13.jsx)("span", { className: "ss-w-bi-live-dot", "aria-hidden": "true" }),
1709
+ /* @__PURE__ */ (0, import_jsx_runtime14.jsxs)("span", { className: "ss-w-bi-header-right", children: [
1710
+ vm.isLive ? /* @__PURE__ */ (0, import_jsx_runtime14.jsxs)("span", { className: "ss-w-bi-live", children: [
1711
+ /* @__PURE__ */ (0, import_jsx_runtime14.jsx)("span", { className: "ss-w-bi-live-dot", "aria-hidden": "true" }),
1687
1712
  ui?.liveLabel ?? "Live"
1688
1713
  ] }) : null,
1689
- kickoff ? /* @__PURE__ */ (0, import_jsx_runtime13.jsxs)("span", { className: "ss-w-bi-kick", children: [
1714
+ kickoff ? /* @__PURE__ */ (0, import_jsx_runtime14.jsxs)("span", { className: "ss-w-bi-kick", children: [
1690
1715
  kickoff.dayLabel,
1691
1716
  " ",
1692
1717
  kickoff.time
1693
1718
  ] }) : null,
1694
- showPin && ui ? /* @__PURE__ */ (0, import_jsx_runtime13.jsx)(
1719
+ showPin && ui ? /* @__PURE__ */ (0, import_jsx_runtime14.jsx)(
1695
1720
  PinToggle,
1696
1721
  {
1697
1722
  ui,
@@ -1701,35 +1726,35 @@ function MarketOddsCard({ vm, ui, slip, monitor, inSlipIds }) {
1701
1726
  ) : null
1702
1727
  ] })
1703
1728
  ] }) : null,
1704
- hasNamedTeams || vm.fixture || vm.market ? /* @__PURE__ */ (0, import_jsx_runtime13.jsxs)("div", { className: "ss-w-mo-sub", children: [
1705
- hasNamedTeams ? /* @__PURE__ */ (0, import_jsx_runtime13.jsxs)("div", { className: "ss-w-bi-fixture", children: [
1706
- /* @__PURE__ */ (0, import_jsx_runtime13.jsx)(Crest2, { kind: "team", url: vm.homeCrest, name: vm.homeTeamName }),
1707
- /* @__PURE__ */ (0, import_jsx_runtime13.jsx)("span", { className: "ss-w-bi-team", children: vm.homeTeamName }),
1708
- /* @__PURE__ */ (0, import_jsx_runtime13.jsx)("span", { className: "ss-w-bi-vs", "aria-hidden": "true", children: "vs" }),
1709
- /* @__PURE__ */ (0, import_jsx_runtime13.jsx)("span", { className: "ss-w-bi-team", children: vm.awayTeamName }),
1710
- /* @__PURE__ */ (0, import_jsx_runtime13.jsx)(Crest2, { kind: "team", url: vm.awayCrest, name: vm.awayTeamName })
1711
- ] }) : vm.fixture ? /* @__PURE__ */ (0, import_jsx_runtime13.jsx)("span", { className: "ss-w-mo-teams", children: vm.fixture }) : null,
1712
- vm.market ? /* @__PURE__ */ (0, import_jsx_runtime13.jsx)("span", { className: "ss-w-mo-market", children: vm.market }) : null
1729
+ hasNamedTeams || vm.fixture || vm.market ? /* @__PURE__ */ (0, import_jsx_runtime14.jsxs)("div", { className: "ss-w-mo-sub", children: [
1730
+ hasNamedTeams ? /* @__PURE__ */ (0, import_jsx_runtime14.jsxs)("div", { className: "ss-w-bi-fixture", children: [
1731
+ /* @__PURE__ */ (0, import_jsx_runtime14.jsx)(Crest2, { kind: "team", url: vm.homeCrest, name: vm.homeTeamName }),
1732
+ /* @__PURE__ */ (0, import_jsx_runtime14.jsx)("span", { className: "ss-w-bi-team", children: vm.homeTeamName }),
1733
+ /* @__PURE__ */ (0, import_jsx_runtime14.jsx)("span", { className: "ss-w-bi-vs", "aria-hidden": "true", children: "vs" }),
1734
+ /* @__PURE__ */ (0, import_jsx_runtime14.jsx)("span", { className: "ss-w-bi-team", children: vm.awayTeamName }),
1735
+ /* @__PURE__ */ (0, import_jsx_runtime14.jsx)(Crest2, { kind: "team", url: vm.awayCrest, name: vm.awayTeamName })
1736
+ ] }) : vm.fixture ? /* @__PURE__ */ (0, import_jsx_runtime14.jsx)("span", { className: "ss-w-mo-teams", children: vm.fixture }) : null,
1737
+ vm.market ? /* @__PURE__ */ (0, import_jsx_runtime14.jsx)("span", { className: "ss-w-mo-market", children: vm.market }) : null
1713
1738
  ] }) : null,
1714
- /* @__PURE__ */ (0, import_jsx_runtime13.jsxs)("div", { className: "ss-w-mo-rows", children: [
1715
- vm.mainRows.map((row) => /* @__PURE__ */ (0, import_jsx_runtime13.jsx)(OddsRow, { vm, row, ui, slip, inSlipIds }, row.key)),
1716
- open ? vm.moreRows.map((row) => /* @__PURE__ */ (0, import_jsx_runtime13.jsx)(OddsRow, { vm, row, ui, slip, inSlipIds }, row.key)) : null
1739
+ /* @__PURE__ */ (0, import_jsx_runtime14.jsxs)("div", { className: "ss-w-mo-rows", children: [
1740
+ vm.mainRows.map((row) => /* @__PURE__ */ (0, import_jsx_runtime14.jsx)(OddsRow, { vm, row, ui, slip, inSlipIds }, row.key)),
1741
+ open ? vm.moreRows.map((row) => /* @__PURE__ */ (0, import_jsx_runtime14.jsx)(OddsRow, { vm, row, ui, slip, inSlipIds }, row.key)) : null
1717
1742
  ] }),
1718
- vm.moreRows.length > 0 ? /* @__PURE__ */ (0, import_jsx_runtime13.jsxs)("button", { type: "button", className: "ss-w-mo-more", "aria-expanded": open, onClick: () => setOpen((v) => !v), children: [
1719
- /* @__PURE__ */ (0, import_jsx_runtime13.jsx)("span", { children: open ? ui?.hideLines ?? "Hide lines" : `${ui?.moreLines ?? "More lines"} (${vm.moreRows.length})` }),
1720
- /* @__PURE__ */ (0, import_jsx_runtime13.jsx)("span", { className: `ss-w-mo-more-chev${open ? " ss-w-mo-more-chev-up" : ""}`, "aria-hidden": "true" })
1743
+ vm.moreRows.length > 0 ? /* @__PURE__ */ (0, import_jsx_runtime14.jsxs)("button", { type: "button", className: "ss-w-mo-more", "aria-expanded": open, onClick: () => setOpen((v) => !v), children: [
1744
+ /* @__PURE__ */ (0, import_jsx_runtime14.jsx)("span", { children: open ? ui?.hideLines ?? "Hide lines" : `${ui?.moreLines ?? "More lines"} (${vm.moreRows.length})` }),
1745
+ /* @__PURE__ */ (0, import_jsx_runtime14.jsx)("span", { className: `ss-w-mo-more-chev${open ? " ss-w-mo-more-chev-up" : ""}`, "aria-hidden": "true" })
1721
1746
  ] }) : null,
1722
- vm.bookmaker ? /* @__PURE__ */ (0, import_jsx_runtime13.jsx)("div", { className: "ss-w-mo-foot", children: /* @__PURE__ */ (0, import_jsx_runtime13.jsx)("span", { children: vm.bookmaker }) }) : null,
1723
- vm.disclaimer ? /* @__PURE__ */ (0, import_jsx_runtime13.jsx)("p", { className: "ss-w-bi-disc", children: vm.disclaimer }) : null
1747
+ vm.bookmaker ? /* @__PURE__ */ (0, import_jsx_runtime14.jsx)("div", { className: "ss-w-mo-foot", children: /* @__PURE__ */ (0, import_jsx_runtime14.jsx)("span", { children: vm.bookmaker }) }) : null,
1748
+ vm.disclaimer ? /* @__PURE__ */ (0, import_jsx_runtime14.jsx)("p", { className: "ss-w-bi-disc", children: vm.disclaimer }) : null
1724
1749
  ] });
1725
1750
  }
1726
1751
  function MarketOddsCardList({ cards, ui, slip, monitor, inSlipIds }) {
1727
1752
  if (!cards || cards.length === 0) return null;
1728
- return /* @__PURE__ */ (0, import_jsx_runtime13.jsx)("div", { className: "ss-w-mocards", children: cards.map((vm) => /* @__PURE__ */ (0, import_jsx_runtime13.jsx)(MarketOddsCard, { vm, ui, slip, monitor, inSlipIds }, vm.id)) });
1753
+ return /* @__PURE__ */ (0, import_jsx_runtime14.jsx)("div", { className: "ss-w-mocards", children: cards.map((vm) => /* @__PURE__ */ (0, import_jsx_runtime14.jsx)(MarketOddsCard, { vm, ui, slip, monitor, inSlipIds }, vm.id)) });
1729
1754
  }
1730
1755
 
1731
1756
  // src/components/OddsMovementCard.tsx
1732
- var import_jsx_runtime14 = require("react/jsx-runtime");
1757
+ var import_jsx_runtime15 = require("react/jsx-runtime");
1733
1758
  function directionWord(vm, ui) {
1734
1759
  if (vm.direction === "shortened") return ui?.oddsShortened ?? "shortened";
1735
1760
  if (vm.direction === "drifted") return ui?.oddsDrifted ?? "drifted";
@@ -1740,11 +1765,11 @@ function OddsMovementCard({ vm, ui, monitor }) {
1740
1765
  const drift = word ? `, ${word}` : "";
1741
1766
  const aria = ui?.chartAria ? ui.chartAria(vm.opening, vm.current, word, vm.windowHours) : `Price movement over the last ${vm.windowHours} hours: opened at ${vm.opening}, currently ${vm.current}${drift}.`;
1742
1767
  const showPin = !!monitor && vm.pinEnabled;
1743
- return /* @__PURE__ */ (0, import_jsx_runtime14.jsxs)("div", { className: "ss-w-omcard", children: [
1744
- /* @__PURE__ */ (0, import_jsx_runtime14.jsxs)("div", { className: "ss-w-om-head", children: [
1745
- /* @__PURE__ */ (0, import_jsx_runtime14.jsx)("span", { className: "ss-w-om-market", children: vm.market }),
1746
- /* @__PURE__ */ (0, import_jsx_runtime14.jsx)("span", { className: "ss-w-om-tag", children: ui?.priceMovement ?? "Price movement" }),
1747
- showPin && ui ? /* @__PURE__ */ (0, import_jsx_runtime14.jsx)(
1768
+ return /* @__PURE__ */ (0, import_jsx_runtime15.jsxs)("div", { className: "ss-w-omcard", children: [
1769
+ /* @__PURE__ */ (0, import_jsx_runtime15.jsxs)("div", { className: "ss-w-om-head", children: [
1770
+ /* @__PURE__ */ (0, import_jsx_runtime15.jsx)("span", { className: "ss-w-om-market", children: vm.market }),
1771
+ /* @__PURE__ */ (0, import_jsx_runtime15.jsx)("span", { className: "ss-w-om-tag", children: ui?.priceMovement ?? "Price movement" }),
1772
+ showPin && ui ? /* @__PURE__ */ (0, import_jsx_runtime15.jsx)(
1748
1773
  PinToggle,
1749
1774
  {
1750
1775
  ui,
@@ -1761,13 +1786,13 @@ function OddsMovementCard({ vm, ui, monitor }) {
1761
1786
  }
1762
1787
  ) : null
1763
1788
  ] }),
1764
- vm.fixture ? /* @__PURE__ */ (0, import_jsx_runtime14.jsxs)("div", { className: "ss-w-om-fixture", children: [
1765
- /* @__PURE__ */ (0, import_jsx_runtime14.jsx)("span", { children: vm.fixture }),
1766
- vm.competition ? /* @__PURE__ */ (0, import_jsx_runtime14.jsx)("span", { className: "ss-w-om-comp", children: vm.competition }) : null
1789
+ vm.fixture ? /* @__PURE__ */ (0, import_jsx_runtime15.jsxs)("div", { className: "ss-w-om-fixture", children: [
1790
+ /* @__PURE__ */ (0, import_jsx_runtime15.jsx)("span", { children: vm.fixture }),
1791
+ vm.competition ? /* @__PURE__ */ (0, import_jsx_runtime15.jsx)("span", { className: "ss-w-om-comp", children: vm.competition }) : null
1767
1792
  ] }) : null,
1768
- /* @__PURE__ */ (0, import_jsx_runtime14.jsx)("div", { className: "ss-w-om-sel", children: vm.selection }),
1769
- /* @__PURE__ */ (0, import_jsx_runtime14.jsx)(OddsMovementBadge, { previous: vm.opening, current: vm.current, direction: vm.direction, ui }),
1770
- vm.geometry === null ? /* @__PURE__ */ (0, import_jsx_runtime14.jsx)("div", { className: "ss-w-om-empty", children: vm.observationCount === 1 ? ui?.singlePricePoint ?? "Only one price recorded so far for this selection." : ui?.notEnoughHistory ?? "No price history recorded yet for this selection." }) : /* @__PURE__ */ (0, import_jsx_runtime14.jsxs)(
1793
+ /* @__PURE__ */ (0, import_jsx_runtime15.jsx)("div", { className: "ss-w-om-sel", children: vm.selection }),
1794
+ /* @__PURE__ */ (0, import_jsx_runtime15.jsx)(OddsMovementBadge, { previous: vm.opening, current: vm.current, direction: vm.direction, ui }),
1795
+ vm.geometry === null ? /* @__PURE__ */ (0, import_jsx_runtime15.jsx)("div", { className: "ss-w-om-empty", children: vm.observationCount === 1 ? ui?.singlePricePoint ?? "Only one price recorded so far for this selection." : ui?.notEnoughHistory ?? "No price history recorded yet for this selection." }) : /* @__PURE__ */ (0, import_jsx_runtime15.jsxs)(
1771
1796
  "svg",
1772
1797
  {
1773
1798
  className: "ss-w-om-chart",
@@ -1776,83 +1801,83 @@ function OddsMovementCard({ vm, ui, monitor }) {
1776
1801
  role: "img",
1777
1802
  "aria-label": aria,
1778
1803
  children: [
1779
- vm.geometry.gridlines.map((g) => /* @__PURE__ */ (0, import_jsx_runtime14.jsxs)("g", { children: [
1780
- /* @__PURE__ */ (0, import_jsx_runtime14.jsx)("line", { className: "ss-w-om-grid", x1: 40, y1: g.y, x2: CHART_VIEW_W - 8, y2: g.y }),
1781
- /* @__PURE__ */ (0, import_jsx_runtime14.jsx)("text", { className: "ss-w-om-ylab", x: 34, y: g.y + 3, textAnchor: "end", children: g.price.toFixed(2) })
1804
+ vm.geometry.gridlines.map((g) => /* @__PURE__ */ (0, import_jsx_runtime15.jsxs)("g", { children: [
1805
+ /* @__PURE__ */ (0, import_jsx_runtime15.jsx)("line", { className: "ss-w-om-grid", x1: 40, y1: g.y, x2: CHART_VIEW_W - 8, y2: g.y }),
1806
+ /* @__PURE__ */ (0, import_jsx_runtime15.jsx)("text", { className: "ss-w-om-ylab", x: 34, y: g.y + 3, textAnchor: "end", children: g.price.toFixed(2) })
1782
1807
  ] }, g.price)),
1783
- /* @__PURE__ */ (0, import_jsx_runtime14.jsx)("path", { className: "ss-w-om-line", d: vm.geometry.path, fill: "none" }),
1784
- vm.geometry.markers.map((m, i) => /* @__PURE__ */ (0, import_jsx_runtime14.jsx)("circle", { className: "ss-w-om-dot", cx: m.x, cy: m.y, r: 2.5 }, i)),
1785
- ui?.chartTimeLabel ? /* @__PURE__ */ (0, import_jsx_runtime14.jsxs)(import_jsx_runtime14.Fragment, { children: [
1786
- /* @__PURE__ */ (0, import_jsx_runtime14.jsx)("text", { className: "ss-w-om-xlab", x: 40, y: CHART_VIEW_H - 8, textAnchor: "start", children: ui.chartTimeLabel(vm.geometry.startMs) }),
1787
- /* @__PURE__ */ (0, import_jsx_runtime14.jsx)("text", { className: "ss-w-om-xlab", x: CHART_VIEW_W - 8, y: CHART_VIEW_H - 8, textAnchor: "end", children: ui.chartTimeLabel(vm.geometry.endMs) })
1788
- ] }) : /* @__PURE__ */ (0, import_jsx_runtime14.jsx)("text", { className: "ss-w-om-xlab", x: 40, y: CHART_VIEW_H - 8, children: ui?.movementWindow ? ui.movementWindow(vm.windowHours) : `Last ${vm.windowHours}h` })
1808
+ /* @__PURE__ */ (0, import_jsx_runtime15.jsx)("path", { className: "ss-w-om-line", d: vm.geometry.path, fill: "none" }),
1809
+ vm.geometry.markers.map((m, i) => /* @__PURE__ */ (0, import_jsx_runtime15.jsx)("circle", { className: "ss-w-om-dot", cx: m.x, cy: m.y, r: 2.5 }, i)),
1810
+ ui?.chartTimeLabel ? /* @__PURE__ */ (0, import_jsx_runtime15.jsxs)(import_jsx_runtime15.Fragment, { children: [
1811
+ /* @__PURE__ */ (0, import_jsx_runtime15.jsx)("text", { className: "ss-w-om-xlab", x: 40, y: CHART_VIEW_H - 8, textAnchor: "start", children: ui.chartTimeLabel(vm.geometry.startMs) }),
1812
+ /* @__PURE__ */ (0, import_jsx_runtime15.jsx)("text", { className: "ss-w-om-xlab", x: CHART_VIEW_W - 8, y: CHART_VIEW_H - 8, textAnchor: "end", children: ui.chartTimeLabel(vm.geometry.endMs) })
1813
+ ] }) : /* @__PURE__ */ (0, import_jsx_runtime15.jsx)("text", { className: "ss-w-om-xlab", x: 40, y: CHART_VIEW_H - 8, children: ui?.movementWindow ? ui.movementWindow(vm.windowHours) : `Last ${vm.windowHours}h` })
1789
1814
  ]
1790
1815
  }
1791
1816
  ),
1792
- /* @__PURE__ */ (0, import_jsx_runtime14.jsxs)("div", { className: "ss-w-om-foot", children: [
1793
- /* @__PURE__ */ (0, import_jsx_runtime14.jsxs)("span", { children: [
1817
+ /* @__PURE__ */ (0, import_jsx_runtime15.jsxs)("div", { className: "ss-w-om-foot", children: [
1818
+ /* @__PURE__ */ (0, import_jsx_runtime15.jsxs)("span", { children: [
1794
1819
  ui?.openingLabel ?? "Opening",
1795
1820
  " ",
1796
- /* @__PURE__ */ (0, import_jsx_runtime14.jsx)("b", { children: vm.opening })
1821
+ /* @__PURE__ */ (0, import_jsx_runtime15.jsx)("b", { children: vm.opening })
1797
1822
  ] }),
1798
- /* @__PURE__ */ (0, import_jsx_runtime14.jsxs)("span", { children: [
1823
+ /* @__PURE__ */ (0, import_jsx_runtime15.jsxs)("span", { children: [
1799
1824
  ui?.currentLabel ?? "Current",
1800
1825
  " ",
1801
- /* @__PURE__ */ (0, import_jsx_runtime14.jsx)("b", { children: vm.current })
1826
+ /* @__PURE__ */ (0, import_jsx_runtime15.jsx)("b", { children: vm.current })
1802
1827
  ] })
1803
1828
  ] }),
1804
- vm.bookmaker ? /* @__PURE__ */ (0, import_jsx_runtime14.jsx)("div", { className: "ss-w-om-foot", children: /* @__PURE__ */ (0, import_jsx_runtime14.jsx)("span", { children: vm.bookmaker }) }) : null,
1805
- vm.excludedCount > 0 ? /* @__PURE__ */ (0, import_jsx_runtime14.jsx)("div", { className: "ss-w-om-excl", children: ui?.excludedSuspended ? ui.excludedSuspended(vm.excludedCount) : `${vm.excludedCount} suspended price(s) excluded from this chart.` }) : null,
1806
- vm.isSuspended ? /* @__PURE__ */ (0, import_jsx_runtime14.jsx)("div", { className: "ss-w-om-susp", children: ui?.selectionSuspended ?? "This selection is not currently available to bet." }) : null,
1807
- vm.disclaimer ? /* @__PURE__ */ (0, import_jsx_runtime14.jsx)("div", { className: "ss-w-om-disc", children: vm.disclaimer }) : null
1829
+ vm.bookmaker ? /* @__PURE__ */ (0, import_jsx_runtime15.jsx)("div", { className: "ss-w-om-foot", children: /* @__PURE__ */ (0, import_jsx_runtime15.jsx)("span", { children: vm.bookmaker }) }) : null,
1830
+ vm.excludedCount > 0 ? /* @__PURE__ */ (0, import_jsx_runtime15.jsx)("div", { className: "ss-w-om-excl", children: ui?.excludedSuspended ? ui.excludedSuspended(vm.excludedCount) : `${vm.excludedCount} suspended price(s) excluded from this chart.` }) : null,
1831
+ vm.isSuspended ? /* @__PURE__ */ (0, import_jsx_runtime15.jsx)("div", { className: "ss-w-om-susp", children: ui?.selectionSuspended ?? "This selection is not currently available to bet." }) : null,
1832
+ vm.disclaimer ? /* @__PURE__ */ (0, import_jsx_runtime15.jsx)("div", { className: "ss-w-om-disc", children: vm.disclaimer }) : null
1808
1833
  ] });
1809
1834
  }
1810
1835
  function OddsMovementCardList({ cards, ui, monitor }) {
1811
1836
  if (!cards || cards.length === 0) return null;
1812
- return /* @__PURE__ */ (0, import_jsx_runtime14.jsx)("div", { className: "ss-w-omcards", children: cards.map((vm) => /* @__PURE__ */ (0, import_jsx_runtime14.jsx)(OddsMovementCard, { vm, ui, monitor }, vm.id)) });
1837
+ return /* @__PURE__ */ (0, import_jsx_runtime15.jsx)("div", { className: "ss-w-omcards", children: cards.map((vm) => /* @__PURE__ */ (0, import_jsx_runtime15.jsx)(OddsMovementCard, { vm, ui, monitor }, vm.id)) });
1813
1838
  }
1814
1839
 
1815
1840
  // src/components/ActionButtons.tsx
1816
- var import_jsx_runtime15 = require("react/jsx-runtime");
1841
+ var import_jsx_runtime16 = require("react/jsx-runtime");
1817
1842
  function ActionButtons({ actions, loading, disabled, onAct }) {
1818
1843
  if (actions.length === 0 && !loading) return null;
1819
- return /* @__PURE__ */ (0, import_jsx_runtime15.jsxs)("div", { className: "ss-w-actions", children: [
1820
- actions.map((a, i) => /* @__PURE__ */ (0, import_jsx_runtime15.jsx)("button", { type: "button", className: "ss-w-abtn", disabled, onClick: () => onAct(a), children: a.label }, `${a.label}-${i}`)),
1821
- actions.length === 0 && loading ? /* @__PURE__ */ (0, import_jsx_runtime15.jsxs)(import_jsx_runtime15.Fragment, { children: [
1822
- /* @__PURE__ */ (0, import_jsx_runtime15.jsx)("span", { className: "ss-w-abtn-shimmer" }),
1823
- /* @__PURE__ */ (0, import_jsx_runtime15.jsx)("span", { className: "ss-w-abtn-shimmer" })
1844
+ return /* @__PURE__ */ (0, import_jsx_runtime16.jsxs)("div", { className: "ss-w-actions", children: [
1845
+ actions.map((a, i) => /* @__PURE__ */ (0, import_jsx_runtime16.jsx)("button", { type: "button", className: "ss-w-abtn", disabled, onClick: () => onAct(a), children: a.label }, `${a.label}-${i}`)),
1846
+ actions.length === 0 && loading ? /* @__PURE__ */ (0, import_jsx_runtime16.jsxs)(import_jsx_runtime16.Fragment, { children: [
1847
+ /* @__PURE__ */ (0, import_jsx_runtime16.jsx)("span", { className: "ss-w-abtn-shimmer" }),
1848
+ /* @__PURE__ */ (0, import_jsx_runtime16.jsx)("span", { className: "ss-w-abtn-shimmer" })
1824
1849
  ] }) : null
1825
1850
  ] });
1826
1851
  }
1827
1852
 
1828
1853
  // src/components/dashboard/DashboardTile.tsx
1829
- var import_jsx_runtime16 = require("react/jsx-runtime");
1854
+ var import_jsx_runtime17 = require("react/jsx-runtime");
1830
1855
  var MAX_CRESTS = 3;
1831
1856
  function DashboardTile({ tile, onTap }) {
1832
1857
  const spanClass = tile.span === "full" ? "ss-w-dash-tile--full" : "ss-w-dash-tile--half";
1833
1858
  const crests = (tile.imageUrls ?? []).slice(0, MAX_CRESTS);
1834
1859
  const hasMeta = Boolean(tile.badgeText) || crests.length > 0;
1835
- return /* @__PURE__ */ (0, import_jsx_runtime16.jsxs)("button", { type: "button", className: `ss-w-dash-tile ${spanClass}`, onClick: onTap, children: [
1836
- /* @__PURE__ */ (0, import_jsx_runtime16.jsx)("span", { className: "ss-w-dash-tile-icon", children: /* @__PURE__ */ (0, import_jsx_runtime16.jsx)(DashboardIcon, { name: tile.icon }) }),
1837
- /* @__PURE__ */ (0, import_jsx_runtime16.jsxs)("span", { className: "ss-w-dash-tile-body", children: [
1838
- /* @__PURE__ */ (0, import_jsx_runtime16.jsx)("span", { className: "ss-w-dash-tile-title", children: tile.title }),
1839
- tile.subtitle ? /* @__PURE__ */ (0, import_jsx_runtime16.jsx)("span", { className: "ss-w-dash-tile-subtitle", children: tile.subtitle }) : null,
1860
+ return /* @__PURE__ */ (0, import_jsx_runtime17.jsxs)("button", { type: "button", className: `ss-w-dash-tile ${spanClass}`, onClick: onTap, children: [
1861
+ /* @__PURE__ */ (0, import_jsx_runtime17.jsx)("span", { className: "ss-w-dash-tile-icon", children: /* @__PURE__ */ (0, import_jsx_runtime17.jsx)(DashboardIcon, { name: tile.icon }) }),
1862
+ /* @__PURE__ */ (0, import_jsx_runtime17.jsxs)("span", { className: "ss-w-dash-tile-body", children: [
1863
+ /* @__PURE__ */ (0, import_jsx_runtime17.jsx)("span", { className: "ss-w-dash-tile-title", children: tile.title }),
1864
+ tile.subtitle ? /* @__PURE__ */ (0, import_jsx_runtime17.jsx)("span", { className: "ss-w-dash-tile-subtitle", children: tile.subtitle }) : null,
1840
1865
  hasMeta ? (
1841
1866
  // Badge + crests sit on their own row, below the title, instead of sharing the
1842
1867
  // icon/chevron row -- at the half-span tile's ~180px width a nowrap badge alone
1843
1868
  // (~70px) left the title column at ~22px and forced character-by-character wrapping.
1844
- /* @__PURE__ */ (0, import_jsx_runtime16.jsxs)("span", { className: "ss-w-dash-tile-meta", children: [
1845
- tile.badgeText ? /* @__PURE__ */ (0, import_jsx_runtime16.jsx)("span", { className: "ss-w-dash-tile-badge", children: tile.badgeText }) : null,
1846
- crests.length > 0 ? /* @__PURE__ */ (0, import_jsx_runtime16.jsx)("span", { className: "ss-w-dash-tile-crests", children: crests.map((url, i) => /* @__PURE__ */ (0, import_jsx_runtime16.jsx)("span", { className: "ss-w-dash-tile-crest", style: { backgroundImage: `url(${url})` }, "aria-hidden": "true" }, `${url}-${i}`)) }) : null
1869
+ /* @__PURE__ */ (0, import_jsx_runtime17.jsxs)("span", { className: "ss-w-dash-tile-meta", children: [
1870
+ tile.badgeText ? /* @__PURE__ */ (0, import_jsx_runtime17.jsx)("span", { className: "ss-w-dash-tile-badge", children: tile.badgeText }) : null,
1871
+ crests.length > 0 ? /* @__PURE__ */ (0, import_jsx_runtime17.jsx)("span", { className: "ss-w-dash-tile-crests", children: crests.map((url, i) => /* @__PURE__ */ (0, import_jsx_runtime17.jsx)("span", { className: "ss-w-dash-tile-crest", style: { backgroundImage: `url(${url})` }, "aria-hidden": "true" }, `${url}-${i}`)) }) : null
1847
1872
  ] })
1848
1873
  ) : null
1849
1874
  ] }),
1850
- /* @__PURE__ */ (0, import_jsx_runtime16.jsx)("span", { className: "ss-w-dash-tile-chevron", children: /* @__PURE__ */ (0, import_jsx_runtime16.jsx)(ChevronIcon, {}) })
1875
+ /* @__PURE__ */ (0, import_jsx_runtime17.jsx)("span", { className: "ss-w-dash-tile-chevron", children: /* @__PURE__ */ (0, import_jsx_runtime17.jsx)(ChevronIcon, {}) })
1851
1876
  ] });
1852
1877
  }
1853
1878
 
1854
1879
  // src/components/dashboard/GreetingDashboard.tsx
1855
- var import_jsx_runtime17 = require("react/jsx-runtime");
1880
+ var import_jsx_runtime18 = require("react/jsx-runtime");
1856
1881
  var LAYOUT_CLASSES = {
1857
1882
  market: "ss-w-dash--market",
1858
1883
  goal: "ss-w-dash--goal",
@@ -1862,109 +1887,109 @@ function layoutClass(layout) {
1862
1887
  return Object.prototype.hasOwnProperty.call(LAYOUT_CLASSES, layout) ? LAYOUT_CLASSES[layout] : LAYOUT_CLASSES.goal;
1863
1888
  }
1864
1889
  function GreetingDashboard({ dashboard, onTap }) {
1865
- return /* @__PURE__ */ (0, import_jsx_runtime17.jsxs)("div", { className: `ss-w-dash ${layoutClass(dashboard.layout)}`, children: [
1866
- /* @__PURE__ */ (0, import_jsx_runtime17.jsxs)("div", { className: "ss-w-dash-head", children: [
1867
- /* @__PURE__ */ (0, import_jsx_runtime17.jsx)("span", { className: "ss-w-dash-title", children: dashboard.title }),
1868
- dashboard.subtitle ? /* @__PURE__ */ (0, import_jsx_runtime17.jsx)("span", { className: "ss-w-dash-subtitle", children: dashboard.subtitle }) : null
1890
+ return /* @__PURE__ */ (0, import_jsx_runtime18.jsxs)("div", { className: `ss-w-dash ${layoutClass(dashboard.layout)}`, children: [
1891
+ /* @__PURE__ */ (0, import_jsx_runtime18.jsxs)("div", { className: "ss-w-dash-head", children: [
1892
+ /* @__PURE__ */ (0, import_jsx_runtime18.jsx)("span", { className: "ss-w-dash-title", children: dashboard.title }),
1893
+ dashboard.subtitle ? /* @__PURE__ */ (0, import_jsx_runtime18.jsx)("span", { className: "ss-w-dash-subtitle", children: dashboard.subtitle }) : null
1869
1894
  ] }),
1870
- /* @__PURE__ */ (0, import_jsx_runtime17.jsx)("div", { className: "ss-w-dash-grid", children: dashboard.tiles.map((t, i) => /* @__PURE__ */ (0, import_jsx_runtime17.jsx)(DashboardTile, { tile: t, onTap: () => onTap(t, i) }, `${t.title}-${i}`)) }),
1871
- dashboard.footerTip ? /* @__PURE__ */ (0, import_jsx_runtime17.jsx)("span", { className: "ss-w-dash-foot", children: dashboard.footerTip }) : null
1895
+ /* @__PURE__ */ (0, import_jsx_runtime18.jsx)("div", { className: "ss-w-dash-grid", children: dashboard.tiles.map((t, i) => /* @__PURE__ */ (0, import_jsx_runtime18.jsx)(DashboardTile, { tile: t, onTap: () => onTap(t, i) }, `${t.title}-${i}`)) }),
1896
+ dashboard.footerTip ? /* @__PURE__ */ (0, import_jsx_runtime18.jsx)("span", { className: "ss-w-dash-foot", children: dashboard.footerTip }) : null
1872
1897
  ] });
1873
1898
  }
1874
1899
 
1875
1900
  // src/components/dashboard/FixtureCard.tsx
1876
- var import_jsx_runtime18 = require("react/jsx-runtime");
1901
+ var import_jsx_runtime19 = require("react/jsx-runtime");
1877
1902
  function teamFormResultClass(result) {
1878
1903
  if (result === "W") return "ss-w-fandash-teamform-cell--win";
1879
1904
  if (result === "L") return "ss-w-fandash-teamform-cell--loss";
1880
1905
  return "ss-w-fandash-teamform-cell--draw";
1881
1906
  }
1882
1907
  function TeamFormCell({ m, subjectCrestUrl, subjectName }) {
1883
- const subjectCrest = /* @__PURE__ */ (0, import_jsx_runtime18.jsx)(Crest2, { url: subjectCrestUrl ?? void 0, name: subjectName, kind: "team" });
1884
- const opponentCrest = /* @__PURE__ */ (0, import_jsx_runtime18.jsx)(Crest2, { url: m.opponentCrestUrl ?? void 0, kind: "team" });
1908
+ const subjectCrest = /* @__PURE__ */ (0, import_jsx_runtime19.jsx)(Crest2, { url: subjectCrestUrl ?? void 0, name: subjectName, kind: "team" });
1909
+ const opponentCrest = /* @__PURE__ */ (0, import_jsx_runtime19.jsx)(Crest2, { url: m.opponentCrestUrl ?? void 0, kind: "team" });
1885
1910
  const score = m.teamIsHome ? `${m.teamScore} - ${m.oppScore}` : `${m.oppScore} - ${m.teamScore}`;
1886
- return /* @__PURE__ */ (0, import_jsx_runtime18.jsxs)("div", { className: `ss-w-fandash-teamform-cell ${teamFormResultClass(m.result)}`, children: [
1911
+ return /* @__PURE__ */ (0, import_jsx_runtime19.jsxs)("div", { className: `ss-w-fandash-teamform-cell ${teamFormResultClass(m.result)}`, children: [
1887
1912
  m.teamIsHome ? subjectCrest : opponentCrest,
1888
- /* @__PURE__ */ (0, import_jsx_runtime18.jsx)("span", { className: "ss-w-fandash-teamform-score", children: score }),
1913
+ /* @__PURE__ */ (0, import_jsx_runtime19.jsx)("span", { className: "ss-w-fandash-teamform-score", children: score }),
1889
1914
  m.teamIsHome ? opponentCrest : subjectCrest
1890
1915
  ] });
1891
1916
  }
1892
1917
  var TEAM_FORM_ROWS = 5;
1893
1918
  function teamFormRows(data) {
1894
1919
  return Array.from({ length: TEAM_FORM_ROWS }, (_, i) => i).flatMap((i) => [
1895
- /* @__PURE__ */ (0, import_jsx_runtime18.jsx)("span", { className: "ss-w-fandash-teamform-slot", children: data.homeForm[i] ? /* @__PURE__ */ (0, import_jsx_runtime18.jsx)(TeamFormCell, { m: data.homeForm[i], subjectCrestUrl: data.homeCrestUrl, subjectName: data.homeName }) : null }, `h-${i}`),
1896
- /* @__PURE__ */ (0, import_jsx_runtime18.jsx)("span", { className: "ss-w-fandash-teamform-slot", children: data.awayForm[i] ? /* @__PURE__ */ (0, import_jsx_runtime18.jsx)(TeamFormCell, { m: data.awayForm[i], subjectCrestUrl: data.awayCrestUrl, subjectName: data.awayName }) : null }, `a-${i}`)
1920
+ /* @__PURE__ */ (0, import_jsx_runtime19.jsx)("span", { className: "ss-w-fandash-teamform-slot", children: data.homeForm[i] ? /* @__PURE__ */ (0, import_jsx_runtime19.jsx)(TeamFormCell, { m: data.homeForm[i], subjectCrestUrl: data.homeCrestUrl, subjectName: data.homeName }) : null }, `h-${i}`),
1921
+ /* @__PURE__ */ (0, import_jsx_runtime19.jsx)("span", { className: "ss-w-fandash-teamform-slot", children: data.awayForm[i] ? /* @__PURE__ */ (0, import_jsx_runtime19.jsx)(TeamFormCell, { m: data.awayForm[i], subjectCrestUrl: data.awayCrestUrl, subjectName: data.awayName }) : null }, `a-${i}`)
1897
1922
  ]);
1898
1923
  }
1899
1924
  function FixtureCard({ card }) {
1900
1925
  const { data } = card;
1901
1926
  const h2h = data.h2H;
1902
- return /* @__PURE__ */ (0, import_jsx_runtime18.jsxs)(import_jsx_runtime18.Fragment, { children: [
1903
- /* @__PURE__ */ (0, import_jsx_runtime18.jsxs)("div", { className: "ss-w-fandash-card ss-w-fandash-fixture", children: [
1904
- /* @__PURE__ */ (0, import_jsx_runtime18.jsxs)("span", { className: "ss-w-fandash-eyebrow", children: [
1927
+ return /* @__PURE__ */ (0, import_jsx_runtime19.jsxs)(import_jsx_runtime19.Fragment, { children: [
1928
+ /* @__PURE__ */ (0, import_jsx_runtime19.jsxs)("div", { className: "ss-w-fandash-card ss-w-fandash-fixture", children: [
1929
+ /* @__PURE__ */ (0, import_jsx_runtime19.jsxs)("span", { className: "ss-w-fandash-eyebrow", children: [
1905
1930
  card.title,
1906
1931
  " \xB7 ",
1907
1932
  data.competition
1908
1933
  ] }),
1909
- /* @__PURE__ */ (0, import_jsx_runtime18.jsxs)("div", { className: "ss-w-fandash-fixture-teams", children: [
1910
- /* @__PURE__ */ (0, import_jsx_runtime18.jsxs)("span", { className: "ss-w-fandash-fixture-team", children: [
1911
- /* @__PURE__ */ (0, import_jsx_runtime18.jsx)(Crest2, { url: data.homeCrestUrl ?? void 0, name: data.homeName, kind: "team" }),
1912
- /* @__PURE__ */ (0, import_jsx_runtime18.jsx)("span", { className: "ss-w-fandash-fixture-name", children: data.homeName })
1934
+ /* @__PURE__ */ (0, import_jsx_runtime19.jsxs)("div", { className: "ss-w-fandash-fixture-teams", children: [
1935
+ /* @__PURE__ */ (0, import_jsx_runtime19.jsxs)("span", { className: "ss-w-fandash-fixture-team", children: [
1936
+ /* @__PURE__ */ (0, import_jsx_runtime19.jsx)(Crest2, { url: data.homeCrestUrl ?? void 0, name: data.homeName, kind: "team" }),
1937
+ /* @__PURE__ */ (0, import_jsx_runtime19.jsx)("span", { className: "ss-w-fandash-fixture-name", children: data.homeName })
1913
1938
  ] }),
1914
- /* @__PURE__ */ (0, import_jsx_runtime18.jsx)("span", { className: "ss-w-fandash-fixture-vs", children: "v" }),
1915
- /* @__PURE__ */ (0, import_jsx_runtime18.jsxs)("span", { className: "ss-w-fandash-fixture-team ss-w-fandash-fixture-team--away", children: [
1916
- /* @__PURE__ */ (0, import_jsx_runtime18.jsx)("span", { className: "ss-w-fandash-fixture-name", children: data.awayName }),
1917
- /* @__PURE__ */ (0, import_jsx_runtime18.jsx)(Crest2, { url: data.awayCrestUrl ?? void 0, name: data.awayName, kind: "team" })
1939
+ /* @__PURE__ */ (0, import_jsx_runtime19.jsx)("span", { className: "ss-w-fandash-fixture-vs", children: "v" }),
1940
+ /* @__PURE__ */ (0, import_jsx_runtime19.jsxs)("span", { className: "ss-w-fandash-fixture-team ss-w-fandash-fixture-team--away", children: [
1941
+ /* @__PURE__ */ (0, import_jsx_runtime19.jsx)("span", { className: "ss-w-fandash-fixture-name", children: data.awayName }),
1942
+ /* @__PURE__ */ (0, import_jsx_runtime19.jsx)(Crest2, { url: data.awayCrestUrl ?? void 0, name: data.awayName, kind: "team" })
1918
1943
  ] })
1919
1944
  ] }),
1920
- /* @__PURE__ */ (0, import_jsx_runtime18.jsxs)("div", { className: "ss-w-fandash-fixture-meta", children: [
1921
- /* @__PURE__ */ (0, import_jsx_runtime18.jsx)("span", { className: "ss-w-fandash-fixture-kickoff", children: data.kickoffLabel }),
1922
- data.venue ? /* @__PURE__ */ (0, import_jsx_runtime18.jsxs)("span", { className: "ss-w-fandash-fixture-venue", children: [
1945
+ /* @__PURE__ */ (0, import_jsx_runtime19.jsxs)("div", { className: "ss-w-fandash-fixture-meta", children: [
1946
+ /* @__PURE__ */ (0, import_jsx_runtime19.jsx)("span", { className: "ss-w-fandash-fixture-kickoff", children: data.kickoffLabel }),
1947
+ data.venue ? /* @__PURE__ */ (0, import_jsx_runtime19.jsxs)("span", { className: "ss-w-fandash-fixture-venue", children: [
1923
1948
  " \xB7 ",
1924
1949
  data.venue
1925
1950
  ] }) : null
1926
1951
  ] })
1927
1952
  ] }),
1928
- /* @__PURE__ */ (0, import_jsx_runtime18.jsxs)("div", { className: "ss-w-fandash-card ss-w-fandash-lastfive", children: [
1929
- /* @__PURE__ */ (0, import_jsx_runtime18.jsx)("span", { className: "ss-w-fandash-eyebrow", children: data.formLabel }),
1930
- /* @__PURE__ */ (0, import_jsx_runtime18.jsxs)("div", { className: "ss-w-fandash-teamform-head", children: [
1931
- /* @__PURE__ */ (0, import_jsx_runtime18.jsxs)("span", { className: "ss-w-fandash-teamform-head-team", children: [
1932
- /* @__PURE__ */ (0, import_jsx_runtime18.jsx)(Crest2, { url: data.homeCrestUrl ?? void 0, name: data.homeName, kind: "team" }),
1933
- /* @__PURE__ */ (0, import_jsx_runtime18.jsx)("span", { className: "ss-w-fandash-teamform-head-name", children: data.homeName })
1953
+ /* @__PURE__ */ (0, import_jsx_runtime19.jsxs)("div", { className: "ss-w-fandash-card ss-w-fandash-lastfive", children: [
1954
+ /* @__PURE__ */ (0, import_jsx_runtime19.jsx)("span", { className: "ss-w-fandash-eyebrow", children: data.formLabel }),
1955
+ /* @__PURE__ */ (0, import_jsx_runtime19.jsxs)("div", { className: "ss-w-fandash-teamform-head", children: [
1956
+ /* @__PURE__ */ (0, import_jsx_runtime19.jsxs)("span", { className: "ss-w-fandash-teamform-head-team", children: [
1957
+ /* @__PURE__ */ (0, import_jsx_runtime19.jsx)(Crest2, { url: data.homeCrestUrl ?? void 0, name: data.homeName, kind: "team" }),
1958
+ /* @__PURE__ */ (0, import_jsx_runtime19.jsx)("span", { className: "ss-w-fandash-teamform-head-name", children: data.homeName })
1934
1959
  ] }),
1935
- /* @__PURE__ */ (0, import_jsx_runtime18.jsxs)("span", { className: "ss-w-fandash-teamform-head-team", children: [
1936
- /* @__PURE__ */ (0, import_jsx_runtime18.jsx)(Crest2, { url: data.awayCrestUrl ?? void 0, name: data.awayName, kind: "team" }),
1937
- /* @__PURE__ */ (0, import_jsx_runtime18.jsx)("span", { className: "ss-w-fandash-teamform-head-name", children: data.awayName })
1960
+ /* @__PURE__ */ (0, import_jsx_runtime19.jsxs)("span", { className: "ss-w-fandash-teamform-head-team", children: [
1961
+ /* @__PURE__ */ (0, import_jsx_runtime19.jsx)(Crest2, { url: data.awayCrestUrl ?? void 0, name: data.awayName, kind: "team" }),
1962
+ /* @__PURE__ */ (0, import_jsx_runtime19.jsx)("span", { className: "ss-w-fandash-teamform-head-name", children: data.awayName })
1938
1963
  ] })
1939
1964
  ] }),
1940
- /* @__PURE__ */ (0, import_jsx_runtime18.jsx)("div", { className: "ss-w-fandash-teamform-rows", children: teamFormRows(data) })
1965
+ /* @__PURE__ */ (0, import_jsx_runtime19.jsx)("div", { className: "ss-w-fandash-teamform-rows", children: teamFormRows(data) })
1941
1966
  ] }),
1942
- h2h || data.fact ? /* @__PURE__ */ (0, import_jsx_runtime18.jsxs)("div", { className: "ss-w-fandash-card ss-w-fandash-h2h", children: [
1943
- h2h ? /* @__PURE__ */ (0, import_jsx_runtime18.jsxs)(import_jsx_runtime18.Fragment, { children: [
1944
- /* @__PURE__ */ (0, import_jsx_runtime18.jsx)("span", { className: "ss-w-fandash-eyebrow", children: h2h.label }),
1945
- /* @__PURE__ */ (0, import_jsx_runtime18.jsxs)("div", { className: "ss-w-fandash-split", children: [
1946
- /* @__PURE__ */ (0, import_jsx_runtime18.jsxs)("span", { className: "ss-w-fandash-split-cell", children: [
1947
- /* @__PURE__ */ (0, import_jsx_runtime18.jsx)("span", { className: "ss-w-fandash-split-value", children: h2h.wins }),
1948
- /* @__PURE__ */ (0, import_jsx_runtime18.jsx)("span", { className: "ss-w-fandash-split-label", children: h2h.homeWinsLabel })
1967
+ h2h || data.fact ? /* @__PURE__ */ (0, import_jsx_runtime19.jsxs)("div", { className: "ss-w-fandash-card ss-w-fandash-h2h", children: [
1968
+ h2h ? /* @__PURE__ */ (0, import_jsx_runtime19.jsxs)(import_jsx_runtime19.Fragment, { children: [
1969
+ /* @__PURE__ */ (0, import_jsx_runtime19.jsx)("span", { className: "ss-w-fandash-eyebrow", children: h2h.label }),
1970
+ /* @__PURE__ */ (0, import_jsx_runtime19.jsxs)("div", { className: "ss-w-fandash-split", children: [
1971
+ /* @__PURE__ */ (0, import_jsx_runtime19.jsxs)("span", { className: "ss-w-fandash-split-cell", children: [
1972
+ /* @__PURE__ */ (0, import_jsx_runtime19.jsx)("span", { className: "ss-w-fandash-split-value", children: h2h.wins }),
1973
+ /* @__PURE__ */ (0, import_jsx_runtime19.jsx)("span", { className: "ss-w-fandash-split-label", children: h2h.homeWinsLabel })
1949
1974
  ] }),
1950
- /* @__PURE__ */ (0, import_jsx_runtime18.jsxs)("span", { className: "ss-w-fandash-split-cell", children: [
1951
- /* @__PURE__ */ (0, import_jsx_runtime18.jsx)("span", { className: "ss-w-fandash-split-value", children: h2h.draws }),
1952
- /* @__PURE__ */ (0, import_jsx_runtime18.jsx)("span", { className: "ss-w-fandash-split-label", children: h2h.drawsLabel })
1975
+ /* @__PURE__ */ (0, import_jsx_runtime19.jsxs)("span", { className: "ss-w-fandash-split-cell", children: [
1976
+ /* @__PURE__ */ (0, import_jsx_runtime19.jsx)("span", { className: "ss-w-fandash-split-value", children: h2h.draws }),
1977
+ /* @__PURE__ */ (0, import_jsx_runtime19.jsx)("span", { className: "ss-w-fandash-split-label", children: h2h.drawsLabel })
1953
1978
  ] }),
1954
- /* @__PURE__ */ (0, import_jsx_runtime18.jsxs)("span", { className: "ss-w-fandash-split-cell", children: [
1955
- /* @__PURE__ */ (0, import_jsx_runtime18.jsx)("span", { className: "ss-w-fandash-split-value", children: h2h.losses }),
1956
- /* @__PURE__ */ (0, import_jsx_runtime18.jsx)("span", { className: "ss-w-fandash-split-label", children: h2h.awayWinsLabel })
1979
+ /* @__PURE__ */ (0, import_jsx_runtime19.jsxs)("span", { className: "ss-w-fandash-split-cell", children: [
1980
+ /* @__PURE__ */ (0, import_jsx_runtime19.jsx)("span", { className: "ss-w-fandash-split-value", children: h2h.losses }),
1981
+ /* @__PURE__ */ (0, import_jsx_runtime19.jsx)("span", { className: "ss-w-fandash-split-label", children: h2h.awayWinsLabel })
1957
1982
  ] })
1958
1983
  ] })
1959
1984
  ] }) : null,
1960
- data.fact ? /* @__PURE__ */ (0, import_jsx_runtime18.jsx)("span", { className: "ss-w-fandash-fact", children: data.fact }) : null
1985
+ data.fact ? /* @__PURE__ */ (0, import_jsx_runtime19.jsx)("span", { className: "ss-w-fandash-fact", children: data.fact }) : null
1961
1986
  ] }) : null
1962
1987
  ] });
1963
1988
  }
1964
1989
 
1965
1990
  // src/components/dashboard/CountdownCard.tsx
1966
- var import_react11 = require("react");
1967
- var import_jsx_runtime19 = require("react/jsx-runtime");
1991
+ var import_react12 = require("react");
1992
+ var import_jsx_runtime20 = require("react/jsx-runtime");
1968
1993
  var DAY_MS = 864e5;
1969
1994
  function remainingSegments(kickoffUnix, nowMs, withSeconds) {
1970
1995
  const totalSeconds = Math.floor((kickoffUnix * 1e3 - nowMs) / 1e3);
@@ -1982,72 +2007,72 @@ function remainingSegments(kickoffUnix, nowMs, withSeconds) {
1982
2007
  function CountdownCard({ card }) {
1983
2008
  const { data } = card;
1984
2009
  const unitLabel = { d: data.daysUnit, h: data.hoursUnit, m: data.minutesUnit, s: data.secondsUnit };
1985
- const [nowMs, setNowMs] = (0, import_react11.useState)(() => Date.now());
1986
- const [reduced] = (0, import_react11.useState)(
2010
+ const [nowMs, setNowMs] = (0, import_react12.useState)(() => Date.now());
2011
+ const [reduced] = (0, import_react12.useState)(
1987
2012
  () => typeof window !== "undefined" && window.matchMedia("(prefers-reduced-motion: reduce)").matches
1988
2013
  );
1989
2014
  const withinDay = data.kickoffUnix * 1e3 - nowMs < DAY_MS;
1990
- (0, import_react11.useEffect)(() => {
2015
+ (0, import_react12.useEffect)(() => {
1991
2016
  if (reduced) return;
1992
2017
  const id = window.setInterval(() => setNowMs(Date.now()), withinDay ? 1e3 : 6e4);
1993
2018
  return () => window.clearInterval(id);
1994
2019
  }, [reduced, withinDay]);
1995
2020
  const segments = remainingSegments(data.kickoffUnix, nowMs, withinDay && !reduced);
1996
- return /* @__PURE__ */ (0, import_jsx_runtime19.jsx)("div", { className: "ss-w-fandash-card ss-w-fandash-countdown", children: /* @__PURE__ */ (0, import_jsx_runtime19.jsxs)("div", { className: "ss-w-fandash-countdown-top", children: [
1997
- /* @__PURE__ */ (0, import_jsx_runtime19.jsx)("span", { className: "ss-w-fandash-eyebrow", children: card.title ?? "Kick-off in" }),
1998
- segments ? /* @__PURE__ */ (0, import_jsx_runtime19.jsx)("span", { className: "ss-w-fandash-countdown-clock", children: segments.map((s, i) => /* @__PURE__ */ (0, import_jsx_runtime19.jsxs)(import_react11.Fragment, { children: [
1999
- i > 0 ? /* @__PURE__ */ (0, import_jsx_runtime19.jsx)("span", { className: "ss-w-fandash-countdown-colon", children: ":" }) : null,
2000
- /* @__PURE__ */ (0, import_jsx_runtime19.jsxs)("span", { className: "ss-w-fandash-countdown-seg", children: [
2001
- /* @__PURE__ */ (0, import_jsx_runtime19.jsx)("span", { className: "ss-w-fandash-countdown-value", children: s.value }),
2002
- /* @__PURE__ */ (0, import_jsx_runtime19.jsx)("span", { className: "ss-w-fandash-countdown-unit", children: unitLabel[s.unit] })
2021
+ return /* @__PURE__ */ (0, import_jsx_runtime20.jsx)("div", { className: "ss-w-fandash-card ss-w-fandash-countdown", children: /* @__PURE__ */ (0, import_jsx_runtime20.jsxs)("div", { className: "ss-w-fandash-countdown-top", children: [
2022
+ /* @__PURE__ */ (0, import_jsx_runtime20.jsx)("span", { className: "ss-w-fandash-eyebrow", children: card.title ?? "Kick-off in" }),
2023
+ segments ? /* @__PURE__ */ (0, import_jsx_runtime20.jsx)("span", { className: "ss-w-fandash-countdown-clock", children: segments.map((s, i) => /* @__PURE__ */ (0, import_jsx_runtime20.jsxs)(import_react12.Fragment, { children: [
2024
+ i > 0 ? /* @__PURE__ */ (0, import_jsx_runtime20.jsx)("span", { className: "ss-w-fandash-countdown-colon", children: ":" }) : null,
2025
+ /* @__PURE__ */ (0, import_jsx_runtime20.jsxs)("span", { className: "ss-w-fandash-countdown-seg", children: [
2026
+ /* @__PURE__ */ (0, import_jsx_runtime20.jsx)("span", { className: "ss-w-fandash-countdown-value", children: s.value }),
2027
+ /* @__PURE__ */ (0, import_jsx_runtime20.jsx)("span", { className: "ss-w-fandash-countdown-unit", children: unitLabel[s.unit] })
2003
2028
  ] })
2004
2029
  ] }, s.unit)) }) : null
2005
2030
  ] }) });
2006
2031
  }
2007
2032
 
2008
2033
  // src/components/dashboard/InjuriesCard.tsx
2009
- var import_react12 = require("react");
2010
- var import_jsx_runtime20 = require("react/jsx-runtime");
2034
+ var import_react13 = require("react");
2035
+ var import_jsx_runtime21 = require("react/jsx-runtime");
2011
2036
  var SHOWN = 3;
2012
2037
  function ColHead({ name, crestUrl }) {
2013
- return /* @__PURE__ */ (0, import_jsx_runtime20.jsxs)("span", { className: "ss-w-fandash-injuries-col-head", children: [
2014
- /* @__PURE__ */ (0, import_jsx_runtime20.jsx)(Crest2, { url: crestUrl ?? void 0, name, kind: "team" }),
2015
- /* @__PURE__ */ (0, import_jsx_runtime20.jsx)("span", { className: "ss-w-fandash-injuries-col-head-name", children: name })
2038
+ return /* @__PURE__ */ (0, import_jsx_runtime21.jsxs)("span", { className: "ss-w-fandash-injuries-col-head", children: [
2039
+ /* @__PURE__ */ (0, import_jsx_runtime21.jsx)(Crest2, { url: crestUrl ?? void 0, name, kind: "team" }),
2040
+ /* @__PURE__ */ (0, import_jsx_runtime21.jsx)("span", { className: "ss-w-fandash-injuries-col-head-name", children: name })
2016
2041
  ] });
2017
2042
  }
2018
2043
  function InjuryList({ rows, emptyLabel, limit }) {
2019
- if (rows.length === 0) return /* @__PURE__ */ (0, import_jsx_runtime20.jsx)("span", { className: "ss-w-fandash-injuries-empty", children: emptyLabel });
2044
+ if (rows.length === 0) return /* @__PURE__ */ (0, import_jsx_runtime21.jsx)("span", { className: "ss-w-fandash-injuries-empty", children: emptyLabel });
2020
2045
  const shown = limit === void 0 ? rows : rows.slice(0, limit);
2021
- return /* @__PURE__ */ (0, import_jsx_runtime20.jsx)("ul", { className: "ss-w-fandash-injury-list", children: shown.map((r, i) => /* @__PURE__ */ (0, import_jsx_runtime20.jsxs)("li", { className: "ss-w-fandash-injury-row", children: [
2022
- /* @__PURE__ */ (0, import_jsx_runtime20.jsx)("span", { className: "ss-w-fandash-injury-name", children: r.playerName }),
2023
- /* @__PURE__ */ (0, import_jsx_runtime20.jsxs)("span", { className: "ss-w-fandash-injury-meta", children: [
2024
- /* @__PURE__ */ (0, import_jsx_runtime20.jsx)("span", { className: "ss-w-fandash-injury-status", children: r.status }),
2025
- r.injuryType ? /* @__PURE__ */ (0, import_jsx_runtime20.jsx)("span", { className: "ss-w-fandash-injury-type", children: r.injuryType }) : null,
2026
- r.expectedReturnLabel ? /* @__PURE__ */ (0, import_jsx_runtime20.jsx)("span", { className: "ss-w-fandash-injury-return", children: r.expectedReturnLabel }) : null
2046
+ return /* @__PURE__ */ (0, import_jsx_runtime21.jsx)("ul", { className: "ss-w-fandash-injury-list", children: shown.map((r, i) => /* @__PURE__ */ (0, import_jsx_runtime21.jsxs)("li", { className: "ss-w-fandash-injury-row", children: [
2047
+ /* @__PURE__ */ (0, import_jsx_runtime21.jsx)("span", { className: "ss-w-fandash-injury-name", children: r.playerName }),
2048
+ /* @__PURE__ */ (0, import_jsx_runtime21.jsxs)("span", { className: "ss-w-fandash-injury-meta", children: [
2049
+ /* @__PURE__ */ (0, import_jsx_runtime21.jsx)("span", { className: "ss-w-fandash-injury-status", children: r.status }),
2050
+ r.injuryType ? /* @__PURE__ */ (0, import_jsx_runtime21.jsx)("span", { className: "ss-w-fandash-injury-type", children: r.injuryType }) : null,
2051
+ r.expectedReturnLabel ? /* @__PURE__ */ (0, import_jsx_runtime21.jsx)("span", { className: "ss-w-fandash-injury-return", children: r.expectedReturnLabel }) : null
2027
2052
  ] })
2028
2053
  ] }, `${r.playerName}-${i}`)) });
2029
2054
  }
2030
2055
  function InjuriesCard({ card, ui }) {
2031
2056
  const { data } = card;
2032
- const [expanded, setExpanded] = (0, import_react12.useState)(false);
2057
+ const [expanded, setExpanded] = (0, import_react13.useState)(false);
2033
2058
  const hidden = Math.max(0, data.ours.length - SHOWN) + Math.max(0, data.theirs.length - SHOWN);
2034
2059
  const limit = expanded ? void 0 : SHOWN;
2035
2060
  const showMore = ui?.showMore ?? ((n) => `Show ${n} more`);
2036
2061
  const showLess = ui?.showLess ?? "Show less";
2037
- return /* @__PURE__ */ (0, import_jsx_runtime20.jsxs)("div", { className: "ss-w-fandash-card ss-w-fandash-injuries", children: [
2038
- card.title ? /* @__PURE__ */ (0, import_jsx_runtime20.jsx)("span", { className: "ss-w-fandash-eyebrow", children: card.title }) : null,
2039
- /* @__PURE__ */ (0, import_jsx_runtime20.jsxs)("div", { className: "ss-w-fandash-injuries-cols", children: [
2040
- /* @__PURE__ */ (0, import_jsx_runtime20.jsxs)("div", { className: "ss-w-fandash-injuries-col", children: [
2041
- /* @__PURE__ */ (0, import_jsx_runtime20.jsx)(ColHead, { name: data.oursName, crestUrl: data.oursCrestUrl }),
2042
- /* @__PURE__ */ (0, import_jsx_runtime20.jsx)(InjuryList, { rows: data.ours, emptyLabel: data.emptyLabel, limit })
2062
+ return /* @__PURE__ */ (0, import_jsx_runtime21.jsxs)("div", { className: "ss-w-fandash-card ss-w-fandash-injuries", children: [
2063
+ card.title ? /* @__PURE__ */ (0, import_jsx_runtime21.jsx)("span", { className: "ss-w-fandash-eyebrow", children: card.title }) : null,
2064
+ /* @__PURE__ */ (0, import_jsx_runtime21.jsxs)("div", { className: "ss-w-fandash-injuries-cols", children: [
2065
+ /* @__PURE__ */ (0, import_jsx_runtime21.jsxs)("div", { className: "ss-w-fandash-injuries-col", children: [
2066
+ /* @__PURE__ */ (0, import_jsx_runtime21.jsx)(ColHead, { name: data.oursName, crestUrl: data.oursCrestUrl }),
2067
+ /* @__PURE__ */ (0, import_jsx_runtime21.jsx)(InjuryList, { rows: data.ours, emptyLabel: data.emptyLabel, limit })
2043
2068
  ] }),
2044
- /* @__PURE__ */ (0, import_jsx_runtime20.jsx)("div", { className: "ss-w-fandash-injuries-divider" }),
2045
- /* @__PURE__ */ (0, import_jsx_runtime20.jsxs)("div", { className: "ss-w-fandash-injuries-col", children: [
2046
- /* @__PURE__ */ (0, import_jsx_runtime20.jsx)(ColHead, { name: data.theirsName, crestUrl: data.theirsCrestUrl }),
2047
- /* @__PURE__ */ (0, import_jsx_runtime20.jsx)(InjuryList, { rows: data.theirs, emptyLabel: data.emptyLabel, limit })
2069
+ /* @__PURE__ */ (0, import_jsx_runtime21.jsx)("div", { className: "ss-w-fandash-injuries-divider" }),
2070
+ /* @__PURE__ */ (0, import_jsx_runtime21.jsxs)("div", { className: "ss-w-fandash-injuries-col", children: [
2071
+ /* @__PURE__ */ (0, import_jsx_runtime21.jsx)(ColHead, { name: data.theirsName, crestUrl: data.theirsCrestUrl }),
2072
+ /* @__PURE__ */ (0, import_jsx_runtime21.jsx)(InjuryList, { rows: data.theirs, emptyLabel: data.emptyLabel, limit })
2048
2073
  ] })
2049
2074
  ] }),
2050
- hidden > 0 ? /* @__PURE__ */ (0, import_jsx_runtime20.jsx)(
2075
+ hidden > 0 ? /* @__PURE__ */ (0, import_jsx_runtime21.jsx)(
2051
2076
  "button",
2052
2077
  {
2053
2078
  type: "button",
@@ -2061,80 +2086,80 @@ function InjuriesCard({ card, ui }) {
2061
2086
  }
2062
2087
 
2063
2088
  // src/components/dashboard/ReasonToBetCard.tsx
2064
- var import_jsx_runtime21 = require("react/jsx-runtime");
2089
+ var import_jsx_runtime22 = require("react/jsx-runtime");
2065
2090
  function ReasonToBetCard({ card }) {
2066
- return /* @__PURE__ */ (0, import_jsx_runtime21.jsxs)("div", { className: "ss-w-fandash-card ss-w-fandash-reasons", children: [
2067
- card.title ? /* @__PURE__ */ (0, import_jsx_runtime21.jsx)("span", { className: "ss-w-fandash-eyebrow", children: card.title }) : null,
2068
- /* @__PURE__ */ (0, import_jsx_runtime21.jsx)("ul", { className: "ss-w-fandash-reason-list", children: card.data.angles.map((angle, i) => /* @__PURE__ */ (0, import_jsx_runtime21.jsx)("li", { className: "ss-w-fandash-reason-item", children: angle }, `${angle}-${i}`)) })
2091
+ return /* @__PURE__ */ (0, import_jsx_runtime22.jsxs)("div", { className: "ss-w-fandash-card ss-w-fandash-reasons", children: [
2092
+ card.title ? /* @__PURE__ */ (0, import_jsx_runtime22.jsx)("span", { className: "ss-w-fandash-eyebrow", children: card.title }) : null,
2093
+ /* @__PURE__ */ (0, import_jsx_runtime22.jsx)("ul", { className: "ss-w-fandash-reason-list", children: card.data.angles.map((angle, i) => /* @__PURE__ */ (0, import_jsx_runtime22.jsx)("li", { className: "ss-w-fandash-reason-item", children: angle }, `${angle}-${i}`)) })
2069
2094
  ] });
2070
2095
  }
2071
2096
 
2072
2097
  // src/components/dashboard/WhereToWatchCard.tsx
2073
- var import_jsx_runtime22 = require("react/jsx-runtime");
2098
+ var import_jsx_runtime23 = require("react/jsx-runtime");
2074
2099
  function WhereToWatchCard({ card }) {
2075
- return /* @__PURE__ */ (0, import_jsx_runtime22.jsxs)("div", { className: "ss-w-fandash-card ss-w-fandash-watch", children: [
2076
- card.title ? /* @__PURE__ */ (0, import_jsx_runtime22.jsx)("span", { className: "ss-w-fandash-eyebrow", children: card.title }) : null,
2077
- /* @__PURE__ */ (0, import_jsx_runtime22.jsx)("span", { className: "ss-w-fandash-stations", children: card.data.stations.map((station, i) => /* @__PURE__ */ (0, import_jsx_runtime22.jsx)("span", { className: "ss-w-fandash-station-chip", children: station }, `${station}-${i}`)) })
2100
+ return /* @__PURE__ */ (0, import_jsx_runtime23.jsxs)("div", { className: "ss-w-fandash-card ss-w-fandash-watch", children: [
2101
+ card.title ? /* @__PURE__ */ (0, import_jsx_runtime23.jsx)("span", { className: "ss-w-fandash-eyebrow", children: card.title }) : null,
2102
+ /* @__PURE__ */ (0, import_jsx_runtime23.jsx)("span", { className: "ss-w-fandash-stations", children: card.data.stations.map((station, i) => /* @__PURE__ */ (0, import_jsx_runtime23.jsx)("span", { className: "ss-w-fandash-station-chip", children: station }, `${station}-${i}`)) })
2078
2103
  ] });
2079
2104
  }
2080
2105
 
2081
2106
  // src/components/dashboard/CongestedWeekCard.tsx
2082
- var import_jsx_runtime23 = require("react/jsx-runtime");
2107
+ var import_jsx_runtime24 = require("react/jsx-runtime");
2083
2108
  function CongestedWeekCard({ card, onTap }) {
2084
- return /* @__PURE__ */ (0, import_jsx_runtime23.jsxs)("button", { type: "button", className: "ss-w-fandash-card ss-w-fandash-card--tap ss-w-fandash-congested", onClick: () => onTap(card), children: [
2085
- card.title ? /* @__PURE__ */ (0, import_jsx_runtime23.jsx)("span", { className: "ss-w-fandash-eyebrow", children: card.title }) : null,
2086
- /* @__PURE__ */ (0, import_jsx_runtime23.jsx)("div", { className: "ss-w-fandash-congested-grid", children: card.data.entries.map((entry, i) => /* @__PURE__ */ (0, import_jsx_runtime23.jsxs)("span", { className: "ss-w-fandash-congested-cell", children: [
2087
- /* @__PURE__ */ (0, import_jsx_runtime23.jsx)("span", { className: "ss-w-fandash-congested-day", children: entry.dayLabel }),
2088
- /* @__PURE__ */ (0, import_jsx_runtime23.jsx)("span", { className: "ss-w-fandash-congested-opponent", children: entry.opponent }),
2089
- /* @__PURE__ */ (0, import_jsx_runtime23.jsx)("span", { className: "ss-w-fandash-congested-comp", children: entry.competition }),
2090
- /* @__PURE__ */ (0, import_jsx_runtime23.jsx)("span", { className: "ss-w-fandash-congested-time", children: entry.timeLabel })
2109
+ return /* @__PURE__ */ (0, import_jsx_runtime24.jsxs)("button", { type: "button", className: "ss-w-fandash-card ss-w-fandash-card--tap ss-w-fandash-congested", onClick: () => onTap(card), children: [
2110
+ card.title ? /* @__PURE__ */ (0, import_jsx_runtime24.jsx)("span", { className: "ss-w-fandash-eyebrow", children: card.title }) : null,
2111
+ /* @__PURE__ */ (0, import_jsx_runtime24.jsx)("div", { className: "ss-w-fandash-congested-grid", children: card.data.entries.map((entry, i) => /* @__PURE__ */ (0, import_jsx_runtime24.jsxs)("span", { className: "ss-w-fandash-congested-cell", children: [
2112
+ /* @__PURE__ */ (0, import_jsx_runtime24.jsx)("span", { className: "ss-w-fandash-congested-day", children: entry.dayLabel }),
2113
+ /* @__PURE__ */ (0, import_jsx_runtime24.jsx)("span", { className: "ss-w-fandash-congested-opponent", children: entry.opponent }),
2114
+ /* @__PURE__ */ (0, import_jsx_runtime24.jsx)("span", { className: "ss-w-fandash-congested-comp", children: entry.competition }),
2115
+ /* @__PURE__ */ (0, import_jsx_runtime24.jsx)("span", { className: "ss-w-fandash-congested-time", children: entry.timeLabel })
2091
2116
  ] }, `${entry.opponent}-${i}`)) }),
2092
- /* @__PURE__ */ (0, import_jsx_runtime23.jsx)("span", { className: "ss-w-fandash-card-cta", children: card.actionLabel })
2117
+ /* @__PURE__ */ (0, import_jsx_runtime24.jsx)("span", { className: "ss-w-fandash-card-cta", children: card.actionLabel })
2093
2118
  ] });
2094
2119
  }
2095
2120
 
2096
2121
  // src/components/dashboard/TransfersCard.tsx
2097
- var import_jsx_runtime24 = require("react/jsx-runtime");
2122
+ var import_jsx_runtime25 = require("react/jsx-runtime");
2098
2123
  function TransferList({ rows }) {
2099
- if (rows.length === 0) return /* @__PURE__ */ (0, import_jsx_runtime24.jsx)("span", { className: "ss-w-fandash-transfers-empty", children: "None" });
2100
- return /* @__PURE__ */ (0, import_jsx_runtime24.jsx)("ul", { className: "ss-w-fandash-transfer-list", children: rows.map((r, i) => /* @__PURE__ */ (0, import_jsx_runtime24.jsxs)("li", { className: "ss-w-fandash-transfer-row", children: [
2101
- /* @__PURE__ */ (0, import_jsx_runtime24.jsx)("span", { className: "ss-w-fandash-transfer-name", children: r.playerName }),
2102
- /* @__PURE__ */ (0, import_jsx_runtime24.jsx)("span", { className: "ss-w-fandash-transfer-club", children: r.otherClub }),
2103
- r.type ? /* @__PURE__ */ (0, import_jsx_runtime24.jsx)("span", { className: "ss-w-fandash-transfer-type", children: r.type }) : null
2124
+ if (rows.length === 0) return /* @__PURE__ */ (0, import_jsx_runtime25.jsx)("span", { className: "ss-w-fandash-transfers-empty", children: "None" });
2125
+ return /* @__PURE__ */ (0, import_jsx_runtime25.jsx)("ul", { className: "ss-w-fandash-transfer-list", children: rows.map((r, i) => /* @__PURE__ */ (0, import_jsx_runtime25.jsxs)("li", { className: "ss-w-fandash-transfer-row", children: [
2126
+ /* @__PURE__ */ (0, import_jsx_runtime25.jsx)("span", { className: "ss-w-fandash-transfer-name", children: r.playerName }),
2127
+ /* @__PURE__ */ (0, import_jsx_runtime25.jsx)("span", { className: "ss-w-fandash-transfer-club", children: r.otherClub }),
2128
+ r.type ? /* @__PURE__ */ (0, import_jsx_runtime25.jsx)("span", { className: "ss-w-fandash-transfer-type", children: r.type }) : null
2104
2129
  ] }, `${r.playerName}-${i}`)) });
2105
2130
  }
2106
2131
  function TransfersCard({ card }) {
2107
2132
  const { data } = card;
2108
- return /* @__PURE__ */ (0, import_jsx_runtime24.jsxs)("div", { className: "ss-w-fandash-card ss-w-fandash-transfers", children: [
2109
- card.title ? /* @__PURE__ */ (0, import_jsx_runtime24.jsx)("span", { className: "ss-w-fandash-eyebrow", children: card.title }) : null,
2110
- /* @__PURE__ */ (0, import_jsx_runtime24.jsxs)("div", { className: "ss-w-fandash-transfers-cols", children: [
2111
- /* @__PURE__ */ (0, import_jsx_runtime24.jsxs)("div", { className: "ss-w-fandash-transfers-col", children: [
2112
- /* @__PURE__ */ (0, import_jsx_runtime24.jsx)("span", { className: "ss-w-fandash-transfers-col-head", children: "In" }),
2113
- /* @__PURE__ */ (0, import_jsx_runtime24.jsx)(TransferList, { rows: data.in })
2133
+ return /* @__PURE__ */ (0, import_jsx_runtime25.jsxs)("div", { className: "ss-w-fandash-card ss-w-fandash-transfers", children: [
2134
+ card.title ? /* @__PURE__ */ (0, import_jsx_runtime25.jsx)("span", { className: "ss-w-fandash-eyebrow", children: card.title }) : null,
2135
+ /* @__PURE__ */ (0, import_jsx_runtime25.jsxs)("div", { className: "ss-w-fandash-transfers-cols", children: [
2136
+ /* @__PURE__ */ (0, import_jsx_runtime25.jsxs)("div", { className: "ss-w-fandash-transfers-col", children: [
2137
+ /* @__PURE__ */ (0, import_jsx_runtime25.jsx)("span", { className: "ss-w-fandash-transfers-col-head", children: "In" }),
2138
+ /* @__PURE__ */ (0, import_jsx_runtime25.jsx)(TransferList, { rows: data.in })
2114
2139
  ] }),
2115
- /* @__PURE__ */ (0, import_jsx_runtime24.jsxs)("div", { className: "ss-w-fandash-transfers-col", children: [
2116
- /* @__PURE__ */ (0, import_jsx_runtime24.jsx)("span", { className: "ss-w-fandash-transfers-col-head", children: "Out" }),
2117
- /* @__PURE__ */ (0, import_jsx_runtime24.jsx)(TransferList, { rows: data.out })
2140
+ /* @__PURE__ */ (0, import_jsx_runtime25.jsxs)("div", { className: "ss-w-fandash-transfers-col", children: [
2141
+ /* @__PURE__ */ (0, import_jsx_runtime25.jsx)("span", { className: "ss-w-fandash-transfers-col-head", children: "Out" }),
2142
+ /* @__PURE__ */ (0, import_jsx_runtime25.jsx)(TransferList, { rows: data.out })
2118
2143
  ] })
2119
2144
  ] })
2120
2145
  ] });
2121
2146
  }
2122
2147
 
2123
2148
  // src/components/dashboard/LinksCard.tsx
2124
- var import_jsx_runtime25 = require("react/jsx-runtime");
2149
+ var import_jsx_runtime26 = require("react/jsx-runtime");
2125
2150
  function LinksCard({ card }) {
2126
- return /* @__PURE__ */ (0, import_jsx_runtime25.jsxs)("div", { className: "ss-w-fandash-card ss-w-fandash-links", children: [
2127
- card.title ? /* @__PURE__ */ (0, import_jsx_runtime25.jsx)("span", { className: "ss-w-fandash-eyebrow", children: card.title }) : null,
2128
- /* @__PURE__ */ (0, import_jsx_runtime25.jsx)("div", { className: "ss-w-fandash-link-grid", children: card.data.links.map((link, i) => /* @__PURE__ */ (0, import_jsx_runtime25.jsxs)("a", { className: "ss-w-fandash-link-tile", href: link.url, target: "_blank", rel: "noopener noreferrer", children: [
2129
- /* @__PURE__ */ (0, import_jsx_runtime25.jsx)("span", { className: "ss-w-fandash-link-label", children: link.label }),
2130
- /* @__PURE__ */ (0, import_jsx_runtime25.jsx)("span", { className: "ss-w-fandash-link-chevron", children: /* @__PURE__ */ (0, import_jsx_runtime25.jsx)(ChevronIcon, {}) })
2151
+ return /* @__PURE__ */ (0, import_jsx_runtime26.jsxs)("div", { className: "ss-w-fandash-card ss-w-fandash-links", children: [
2152
+ card.title ? /* @__PURE__ */ (0, import_jsx_runtime26.jsx)("span", { className: "ss-w-fandash-eyebrow", children: card.title }) : null,
2153
+ /* @__PURE__ */ (0, import_jsx_runtime26.jsx)("div", { className: "ss-w-fandash-link-grid", children: card.data.links.map((link, i) => /* @__PURE__ */ (0, import_jsx_runtime26.jsxs)("a", { className: "ss-w-fandash-link-tile", href: link.url, target: "_blank", rel: "noopener noreferrer", children: [
2154
+ /* @__PURE__ */ (0, import_jsx_runtime26.jsx)("span", { className: "ss-w-fandash-link-label", children: link.label }),
2155
+ /* @__PURE__ */ (0, import_jsx_runtime26.jsx)("span", { className: "ss-w-fandash-link-chevron", children: /* @__PURE__ */ (0, import_jsx_runtime26.jsx)(ChevronIcon, {}) })
2131
2156
  ] }, `${link.url}-${i}`)) })
2132
2157
  ] });
2133
2158
  }
2134
2159
 
2135
2160
  // src/components/dashboard/PostMatchResultCard.tsx
2136
- var import_react13 = require("react");
2137
- var import_jsx_runtime26 = require("react/jsx-runtime");
2161
+ var import_react14 = require("react");
2162
+ var import_jsx_runtime27 = require("react/jsx-runtime");
2138
2163
  function initials3(name) {
2139
2164
  return name.trim().slice(0, 3).toUpperCase();
2140
2165
  }
@@ -2143,37 +2168,37 @@ function PostMatchCrest({
2143
2168
  name,
2144
2169
  side
2145
2170
  }) {
2146
- const [failed, setFailed] = (0, import_react13.useState)(false);
2171
+ const [failed, setFailed] = (0, import_react14.useState)(false);
2147
2172
  const cls = `ss-w-fandash-postmatch-crest ss-w-fandash-postmatch-crest--${side}`;
2148
2173
  if (url && !failed) {
2149
- return /* @__PURE__ */ (0, import_jsx_runtime26.jsx)("img", { className: cls, src: url, alt: "", "aria-hidden": "true", onError: () => setFailed(true) });
2174
+ return /* @__PURE__ */ (0, import_jsx_runtime27.jsx)("img", { className: cls, src: url, alt: "", "aria-hidden": "true", onError: () => setFailed(true) });
2150
2175
  }
2151
- return /* @__PURE__ */ (0, import_jsx_runtime26.jsx)("span", { className: `${cls} ss-w-fandash-postmatch-crest--fallback`, "aria-hidden": "true", children: initials3(name) });
2176
+ return /* @__PURE__ */ (0, import_jsx_runtime27.jsx)("span", { className: `${cls} ss-w-fandash-postmatch-crest--fallback`, "aria-hidden": "true", children: initials3(name) });
2152
2177
  }
2153
2178
  function PostMatchResultCard({ card }) {
2154
2179
  const { data } = card;
2155
2180
  const homeWon = data.homeScore >= data.awayScore;
2156
2181
  const awayWon = data.awayScore >= data.homeScore;
2157
- return /* @__PURE__ */ (0, import_jsx_runtime26.jsxs)("div", { className: "ss-w-fandash-card ss-w-fandash-postmatch-result", children: [
2158
- /* @__PURE__ */ (0, import_jsx_runtime26.jsxs)("div", { className: "ss-w-fandash-postmatch-top", children: [
2159
- card.title ? /* @__PURE__ */ (0, import_jsx_runtime26.jsx)("span", { className: "ss-w-fandash-postmatch-pill", children: card.title }) : null,
2160
- /* @__PURE__ */ (0, import_jsx_runtime26.jsx)("span", { className: `ss-w-fandash-postmatch-tag ss-w-fandash-postmatch-tag--${data.outcome}`, children: data.resultLabel })
2182
+ return /* @__PURE__ */ (0, import_jsx_runtime27.jsxs)("div", { className: "ss-w-fandash-card ss-w-fandash-postmatch-result", children: [
2183
+ /* @__PURE__ */ (0, import_jsx_runtime27.jsxs)("div", { className: "ss-w-fandash-postmatch-top", children: [
2184
+ card.title ? /* @__PURE__ */ (0, import_jsx_runtime27.jsx)("span", { className: "ss-w-fandash-postmatch-pill", children: card.title }) : null,
2185
+ /* @__PURE__ */ (0, import_jsx_runtime27.jsx)("span", { className: `ss-w-fandash-postmatch-tag ss-w-fandash-postmatch-tag--${data.outcome}`, children: data.resultLabel })
2161
2186
  ] }),
2162
- /* @__PURE__ */ (0, import_jsx_runtime26.jsxs)("div", { className: "ss-w-fandash-postmatch-main", children: [
2163
- /* @__PURE__ */ (0, import_jsx_runtime26.jsxs)("div", { className: "ss-w-fandash-postmatch-side ss-w-fandash-postmatch-side--home", children: [
2164
- /* @__PURE__ */ (0, import_jsx_runtime26.jsx)(PostMatchCrest, { url: data.homeCrestUrl, name: data.homeName, side: "home" }),
2165
- /* @__PURE__ */ (0, import_jsx_runtime26.jsx)("span", { className: "ss-w-fandash-postmatch-team-name", children: data.homeName })
2187
+ /* @__PURE__ */ (0, import_jsx_runtime27.jsxs)("div", { className: "ss-w-fandash-postmatch-main", children: [
2188
+ /* @__PURE__ */ (0, import_jsx_runtime27.jsxs)("div", { className: "ss-w-fandash-postmatch-side ss-w-fandash-postmatch-side--home", children: [
2189
+ /* @__PURE__ */ (0, import_jsx_runtime27.jsx)(PostMatchCrest, { url: data.homeCrestUrl, name: data.homeName, side: "home" }),
2190
+ /* @__PURE__ */ (0, import_jsx_runtime27.jsx)("span", { className: "ss-w-fandash-postmatch-team-name", children: data.homeName })
2166
2191
  ] }),
2167
- /* @__PURE__ */ (0, import_jsx_runtime26.jsxs)("div", { className: "ss-w-fandash-postmatch-score-main", children: [
2168
- /* @__PURE__ */ (0, import_jsx_runtime26.jsx)(
2192
+ /* @__PURE__ */ (0, import_jsx_runtime27.jsxs)("div", { className: "ss-w-fandash-postmatch-score-main", children: [
2193
+ /* @__PURE__ */ (0, import_jsx_runtime27.jsx)(
2169
2194
  "span",
2170
2195
  {
2171
2196
  className: `ss-w-fandash-postmatch-score-value ss-w-fandash-postmatch-score-value--${homeWon ? "win" : "lose"}`,
2172
2197
  children: data.homeScore
2173
2198
  }
2174
2199
  ),
2175
- /* @__PURE__ */ (0, import_jsx_runtime26.jsx)("span", { className: "ss-w-fandash-postmatch-score-sep", children: "\u2013" }),
2176
- /* @__PURE__ */ (0, import_jsx_runtime26.jsx)(
2200
+ /* @__PURE__ */ (0, import_jsx_runtime27.jsx)("span", { className: "ss-w-fandash-postmatch-score-sep", children: "\u2013" }),
2201
+ /* @__PURE__ */ (0, import_jsx_runtime27.jsx)(
2177
2202
  "span",
2178
2203
  {
2179
2204
  className: `ss-w-fandash-postmatch-score-value ss-w-fandash-postmatch-score-value--${awayWon ? "win" : "lose"}`,
@@ -2181,12 +2206,12 @@ function PostMatchResultCard({ card }) {
2181
2206
  }
2182
2207
  )
2183
2208
  ] }),
2184
- /* @__PURE__ */ (0, import_jsx_runtime26.jsxs)("div", { className: "ss-w-fandash-postmatch-side ss-w-fandash-postmatch-side--away", children: [
2185
- /* @__PURE__ */ (0, import_jsx_runtime26.jsx)(PostMatchCrest, { url: data.awayCrestUrl, name: data.awayName, side: "away" }),
2186
- /* @__PURE__ */ (0, import_jsx_runtime26.jsx)("span", { className: "ss-w-fandash-postmatch-team-name", children: data.awayName })
2209
+ /* @__PURE__ */ (0, import_jsx_runtime27.jsxs)("div", { className: "ss-w-fandash-postmatch-side ss-w-fandash-postmatch-side--away", children: [
2210
+ /* @__PURE__ */ (0, import_jsx_runtime27.jsx)(PostMatchCrest, { url: data.awayCrestUrl, name: data.awayName, side: "away" }),
2211
+ /* @__PURE__ */ (0, import_jsx_runtime27.jsx)("span", { className: "ss-w-fandash-postmatch-team-name", children: data.awayName })
2187
2212
  ] })
2188
2213
  ] }),
2189
- /* @__PURE__ */ (0, import_jsx_runtime26.jsxs)("div", { className: "ss-w-fandash-postmatch-meta", children: [
2214
+ /* @__PURE__ */ (0, import_jsx_runtime27.jsxs)("div", { className: "ss-w-fandash-postmatch-meta", children: [
2190
2215
  data.kickoffLabel,
2191
2216
  data.competition ? ` \xB7 ${data.competition}` : ""
2192
2217
  ] })
@@ -2194,20 +2219,20 @@ function PostMatchResultCard({ card }) {
2194
2219
  }
2195
2220
 
2196
2221
  // src/components/dashboard/PostMatchGoalsCard.tsx
2197
- var import_jsx_runtime27 = require("react/jsx-runtime");
2222
+ var import_jsx_runtime28 = require("react/jsx-runtime");
2198
2223
  function PostMatchGoalsCard({ card, onTap }) {
2199
- return /* @__PURE__ */ (0, import_jsx_runtime27.jsxs)("button", { type: "button", className: "ss-w-fandash-card ss-w-fandash-card--tap ss-w-fandash-postmatch-goals", onClick: () => onTap(card), children: [
2200
- card.title ? /* @__PURE__ */ (0, import_jsx_runtime27.jsx)("span", { className: "ss-w-fandash-eyebrow", children: card.title }) : null,
2201
- /* @__PURE__ */ (0, import_jsx_runtime27.jsx)("ul", { className: "ss-w-fandash-postmatch-goal-list", children: card.data.goals.map((g, i) => /* @__PURE__ */ (0, import_jsx_runtime27.jsxs)("li", { className: g.scoredByClub ? "ss-w-fandash-postmatch-goal ss-w-fandash-postmatch-goal--club" : "ss-w-fandash-postmatch-goal", children: [
2202
- /* @__PURE__ */ (0, import_jsx_runtime27.jsx)("span", { className: "ss-w-fandash-postmatch-goal-ball" }),
2203
- /* @__PURE__ */ (0, import_jsx_runtime27.jsx)("span", { children: g.text })
2224
+ return /* @__PURE__ */ (0, import_jsx_runtime28.jsxs)("button", { type: "button", className: "ss-w-fandash-card ss-w-fandash-card--tap ss-w-fandash-postmatch-goals", onClick: () => onTap(card), children: [
2225
+ card.title ? /* @__PURE__ */ (0, import_jsx_runtime28.jsx)("span", { className: "ss-w-fandash-eyebrow", children: card.title }) : null,
2226
+ /* @__PURE__ */ (0, import_jsx_runtime28.jsx)("ul", { className: "ss-w-fandash-postmatch-goal-list", children: card.data.goals.map((g, i) => /* @__PURE__ */ (0, import_jsx_runtime28.jsxs)("li", { className: g.scoredByClub ? "ss-w-fandash-postmatch-goal ss-w-fandash-postmatch-goal--club" : "ss-w-fandash-postmatch-goal", children: [
2227
+ /* @__PURE__ */ (0, import_jsx_runtime28.jsx)("span", { className: "ss-w-fandash-postmatch-goal-ball" }),
2228
+ /* @__PURE__ */ (0, import_jsx_runtime28.jsx)("span", { children: g.text })
2204
2229
  ] }, `${g.text}-${i}`)) }),
2205
- /* @__PURE__ */ (0, import_jsx_runtime27.jsx)("span", { className: "ss-w-fandash-card-cta", children: card.actionLabel })
2230
+ /* @__PURE__ */ (0, import_jsx_runtime28.jsx)("span", { className: "ss-w-fandash-card-cta", children: card.actionLabel })
2206
2231
  ] });
2207
2232
  }
2208
2233
 
2209
2234
  // src/components/dashboard/PostMatchStatsCard.tsx
2210
- var import_jsx_runtime28 = require("react/jsx-runtime");
2235
+ var import_jsx_runtime29 = require("react/jsx-runtime");
2211
2236
  function splitWidths(homeNum, awayNum) {
2212
2237
  const total = homeNum + awayNum;
2213
2238
  if (total <= 0) return { home: "50%", away: "50%" };
@@ -2216,42 +2241,42 @@ function splitWidths(homeNum, awayNum) {
2216
2241
  }
2217
2242
  function PostMatchStatsCard({ card, onTap }) {
2218
2243
  const { data } = card;
2219
- return /* @__PURE__ */ (0, import_jsx_runtime28.jsxs)("button", { type: "button", className: "ss-w-fandash-card ss-w-fandash-card--tap ss-w-fandash-postmatch-stats", onClick: () => onTap(card), children: [
2220
- card.title ? /* @__PURE__ */ (0, import_jsx_runtime28.jsx)("span", { className: "ss-w-fandash-eyebrow", children: card.title }) : null,
2221
- /* @__PURE__ */ (0, import_jsx_runtime28.jsx)("div", { className: "ss-w-fandash-postmatch-stat-rows", children: data.rows.map((r, i) => {
2244
+ return /* @__PURE__ */ (0, import_jsx_runtime29.jsxs)("button", { type: "button", className: "ss-w-fandash-card ss-w-fandash-card--tap ss-w-fandash-postmatch-stats", onClick: () => onTap(card), children: [
2245
+ card.title ? /* @__PURE__ */ (0, import_jsx_runtime29.jsx)("span", { className: "ss-w-fandash-eyebrow", children: card.title }) : null,
2246
+ /* @__PURE__ */ (0, import_jsx_runtime29.jsx)("div", { className: "ss-w-fandash-postmatch-stat-rows", children: data.rows.map((r, i) => {
2222
2247
  const leftValue = data.clubIsHome ? r.clubValue : r.oppValue;
2223
2248
  const rightValue = data.clubIsHome ? r.oppValue : r.clubValue;
2224
2249
  const homeNum = data.clubIsHome ? r.clubNum : r.oppNum;
2225
2250
  const awayNum = data.clubIsHome ? r.oppNum : r.clubNum;
2226
2251
  const { home, away } = splitWidths(homeNum, awayNum);
2227
- return /* @__PURE__ */ (0, import_jsx_runtime28.jsxs)("div", { className: "ss-w-fandash-postmatch-stat", children: [
2228
- /* @__PURE__ */ (0, import_jsx_runtime28.jsxs)("div", { className: "ss-w-fandash-postmatch-stat-row", children: [
2229
- /* @__PURE__ */ (0, import_jsx_runtime28.jsx)("span", { className: "ss-w-fandash-postmatch-stat-value ss-w-fandash-postmatch-stat-value--home", children: leftValue }),
2230
- /* @__PURE__ */ (0, import_jsx_runtime28.jsx)("span", { className: "ss-w-fandash-postmatch-stat-label", children: r.label }),
2231
- /* @__PURE__ */ (0, import_jsx_runtime28.jsx)("span", { className: "ss-w-fandash-postmatch-stat-value ss-w-fandash-postmatch-stat-value--away", children: rightValue })
2252
+ return /* @__PURE__ */ (0, import_jsx_runtime29.jsxs)("div", { className: "ss-w-fandash-postmatch-stat", children: [
2253
+ /* @__PURE__ */ (0, import_jsx_runtime29.jsxs)("div", { className: "ss-w-fandash-postmatch-stat-row", children: [
2254
+ /* @__PURE__ */ (0, import_jsx_runtime29.jsx)("span", { className: "ss-w-fandash-postmatch-stat-value ss-w-fandash-postmatch-stat-value--home", children: leftValue }),
2255
+ /* @__PURE__ */ (0, import_jsx_runtime29.jsx)("span", { className: "ss-w-fandash-postmatch-stat-label", children: r.label }),
2256
+ /* @__PURE__ */ (0, import_jsx_runtime29.jsx)("span", { className: "ss-w-fandash-postmatch-stat-value ss-w-fandash-postmatch-stat-value--away", children: rightValue })
2232
2257
  ] }),
2233
- /* @__PURE__ */ (0, import_jsx_runtime28.jsxs)("div", { className: "ss-w-fandash-postmatch-stat-bar", children: [
2234
- /* @__PURE__ */ (0, import_jsx_runtime28.jsx)("span", { className: "ss-w-fandash-postmatch-stat-bar-home", style: { width: home } }),
2235
- /* @__PURE__ */ (0, import_jsx_runtime28.jsx)("span", { className: "ss-w-fandash-postmatch-stat-bar-away", style: { width: away } })
2258
+ /* @__PURE__ */ (0, import_jsx_runtime29.jsxs)("div", { className: "ss-w-fandash-postmatch-stat-bar", children: [
2259
+ /* @__PURE__ */ (0, import_jsx_runtime29.jsx)("span", { className: "ss-w-fandash-postmatch-stat-bar-home", style: { width: home } }),
2260
+ /* @__PURE__ */ (0, import_jsx_runtime29.jsx)("span", { className: "ss-w-fandash-postmatch-stat-bar-away", style: { width: away } })
2236
2261
  ] })
2237
2262
  ] }, `${r.label}-${i}`);
2238
2263
  }) }),
2239
- data.rows.length > 0 ? /* @__PURE__ */ (0, import_jsx_runtime28.jsxs)("div", { className: "ss-w-fandash-postmatch-legend", children: [
2240
- /* @__PURE__ */ (0, import_jsx_runtime28.jsxs)("span", { className: "ss-w-fandash-postmatch-legend-item", children: [
2241
- /* @__PURE__ */ (0, import_jsx_runtime28.jsx)("i", { className: "ss-w-fandash-postmatch-legend-swatch ss-w-fandash-postmatch-legend-swatch--home" }),
2264
+ data.rows.length > 0 ? /* @__PURE__ */ (0, import_jsx_runtime29.jsxs)("div", { className: "ss-w-fandash-postmatch-legend", children: [
2265
+ /* @__PURE__ */ (0, import_jsx_runtime29.jsxs)("span", { className: "ss-w-fandash-postmatch-legend-item", children: [
2266
+ /* @__PURE__ */ (0, import_jsx_runtime29.jsx)("i", { className: "ss-w-fandash-postmatch-legend-swatch ss-w-fandash-postmatch-legend-swatch--home" }),
2242
2267
  data.homeName
2243
2268
  ] }),
2244
- /* @__PURE__ */ (0, import_jsx_runtime28.jsxs)("span", { className: "ss-w-fandash-postmatch-legend-item", children: [
2245
- /* @__PURE__ */ (0, import_jsx_runtime28.jsx)("i", { className: "ss-w-fandash-postmatch-legend-swatch ss-w-fandash-postmatch-legend-swatch--away" }),
2269
+ /* @__PURE__ */ (0, import_jsx_runtime29.jsxs)("span", { className: "ss-w-fandash-postmatch-legend-item", children: [
2270
+ /* @__PURE__ */ (0, import_jsx_runtime29.jsx)("i", { className: "ss-w-fandash-postmatch-legend-swatch ss-w-fandash-postmatch-legend-swatch--away" }),
2246
2271
  data.awayName
2247
2272
  ] })
2248
2273
  ] }) : null,
2249
- /* @__PURE__ */ (0, import_jsx_runtime28.jsx)("span", { className: "ss-w-fandash-card-cta", children: card.actionLabel })
2274
+ /* @__PURE__ */ (0, import_jsx_runtime29.jsx)("span", { className: "ss-w-fandash-card-cta", children: card.actionLabel })
2250
2275
  ] });
2251
2276
  }
2252
2277
 
2253
2278
  // src/components/dashboard/PostMatchTopPerformerCard.tsx
2254
- var import_jsx_runtime29 = require("react/jsx-runtime");
2279
+ var import_jsx_runtime30 = require("react/jsx-runtime");
2255
2280
  function initials4(playerName) {
2256
2281
  const words = playerName.trim().split(/\s+/).filter(Boolean);
2257
2282
  if (words.length === 0) return "?";
@@ -2261,72 +2286,72 @@ function initials4(playerName) {
2261
2286
  }
2262
2287
  function PostMatchTopPerformerCard({ card, onTap }) {
2263
2288
  const { data } = card;
2264
- return /* @__PURE__ */ (0, import_jsx_runtime29.jsxs)("button", { type: "button", className: "ss-w-fandash-card ss-w-fandash-card--tap ss-w-fandash-postmatch-performer", onClick: () => onTap(card), children: [
2265
- card.title ? /* @__PURE__ */ (0, import_jsx_runtime29.jsx)("span", { className: "ss-w-fandash-eyebrow", children: card.title }) : null,
2266
- /* @__PURE__ */ (0, import_jsx_runtime29.jsxs)("div", { className: "ss-w-fandash-postmatch-perf-row", children: [
2267
- /* @__PURE__ */ (0, import_jsx_runtime29.jsx)("span", { className: "ss-w-fandash-postmatch-perf-avatar", "aria-hidden": "true", children: initials4(data.playerName) }),
2268
- /* @__PURE__ */ (0, import_jsx_runtime29.jsx)("span", { className: "ss-w-fandash-postmatch-perf-name", children: data.playerName }),
2269
- /* @__PURE__ */ (0, import_jsx_runtime29.jsx)("span", { className: "ss-w-fandash-postmatch-perf-rating", children: data.ratingLabel })
2289
+ return /* @__PURE__ */ (0, import_jsx_runtime30.jsxs)("button", { type: "button", className: "ss-w-fandash-card ss-w-fandash-card--tap ss-w-fandash-postmatch-performer", onClick: () => onTap(card), children: [
2290
+ card.title ? /* @__PURE__ */ (0, import_jsx_runtime30.jsx)("span", { className: "ss-w-fandash-eyebrow", children: card.title }) : null,
2291
+ /* @__PURE__ */ (0, import_jsx_runtime30.jsxs)("div", { className: "ss-w-fandash-postmatch-perf-row", children: [
2292
+ /* @__PURE__ */ (0, import_jsx_runtime30.jsx)("span", { className: "ss-w-fandash-postmatch-perf-avatar", "aria-hidden": "true", children: initials4(data.playerName) }),
2293
+ /* @__PURE__ */ (0, import_jsx_runtime30.jsx)("span", { className: "ss-w-fandash-postmatch-perf-name", children: data.playerName }),
2294
+ /* @__PURE__ */ (0, import_jsx_runtime30.jsx)("span", { className: "ss-w-fandash-postmatch-perf-rating", children: data.ratingLabel })
2270
2295
  ] }),
2271
- /* @__PURE__ */ (0, import_jsx_runtime29.jsx)("span", { className: "ss-w-fandash-card-cta", children: card.actionLabel })
2296
+ /* @__PURE__ */ (0, import_jsx_runtime30.jsx)("span", { className: "ss-w-fandash-card-cta", children: card.actionLabel })
2272
2297
  ] });
2273
2298
  }
2274
2299
 
2275
2300
  // src/components/dashboard/PostMatchNextCard.tsx
2276
- var import_jsx_runtime30 = require("react/jsx-runtime");
2301
+ var import_jsx_runtime31 = require("react/jsx-runtime");
2277
2302
  function PostMatchNextCard({ card }) {
2278
2303
  const { data } = card;
2279
- return /* @__PURE__ */ (0, import_jsx_runtime30.jsxs)("div", { className: "ss-w-fandash-card ss-w-fandash-postmatch-next", children: [
2280
- card.title ? /* @__PURE__ */ (0, import_jsx_runtime30.jsx)("span", { className: "ss-w-fandash-eyebrow", children: card.title }) : null,
2281
- /* @__PURE__ */ (0, import_jsx_runtime30.jsx)("div", { className: "ss-w-fandash-postmatch-next-row", children: /* @__PURE__ */ (0, import_jsx_runtime30.jsx)("span", { className: "ss-w-fandash-postmatch-next-when", children: data.whenLabel }) })
2304
+ return /* @__PURE__ */ (0, import_jsx_runtime31.jsxs)("div", { className: "ss-w-fandash-card ss-w-fandash-postmatch-next", children: [
2305
+ card.title ? /* @__PURE__ */ (0, import_jsx_runtime31.jsx)("span", { className: "ss-w-fandash-eyebrow", children: card.title }) : null,
2306
+ /* @__PURE__ */ (0, import_jsx_runtime31.jsx)("div", { className: "ss-w-fandash-postmatch-next-row", children: /* @__PURE__ */ (0, import_jsx_runtime31.jsx)("span", { className: "ss-w-fandash-postmatch-next-when", children: data.whenLabel }) })
2282
2307
  ] });
2283
2308
  }
2284
2309
 
2285
2310
  // src/components/dashboard/RestingNextCard.tsx
2286
- var import_jsx_runtime31 = require("react/jsx-runtime");
2311
+ var import_jsx_runtime32 = require("react/jsx-runtime");
2287
2312
  function RestingNextCard({ card, onTap }) {
2288
2313
  const { data } = card;
2289
- return /* @__PURE__ */ (0, import_jsx_runtime31.jsxs)("button", { type: "button", className: "ss-w-fandash-card ss-w-fandash-card--tap ss-w-fandash-resting-next", onClick: () => onTap(card), children: [
2290
- card.title ? /* @__PURE__ */ (0, import_jsx_runtime31.jsx)("span", { className: "ss-w-fandash-eyebrow", children: card.title }) : null,
2291
- /* @__PURE__ */ (0, import_jsx_runtime31.jsxs)("div", { className: "ss-w-fandash-resting-next-row", children: [
2292
- /* @__PURE__ */ (0, import_jsx_runtime31.jsx)("span", { className: "ss-w-fandash-resting-next-when", children: data.whenLabel }),
2293
- data.competition ? /* @__PURE__ */ (0, import_jsx_runtime31.jsx)("span", { className: "ss-w-fandash-resting-next-competition", children: data.competition }) : null
2314
+ return /* @__PURE__ */ (0, import_jsx_runtime32.jsxs)("button", { type: "button", className: "ss-w-fandash-card ss-w-fandash-card--tap ss-w-fandash-resting-next", onClick: () => onTap(card), children: [
2315
+ card.title ? /* @__PURE__ */ (0, import_jsx_runtime32.jsx)("span", { className: "ss-w-fandash-eyebrow", children: card.title }) : null,
2316
+ /* @__PURE__ */ (0, import_jsx_runtime32.jsxs)("div", { className: "ss-w-fandash-resting-next-row", children: [
2317
+ /* @__PURE__ */ (0, import_jsx_runtime32.jsx)("span", { className: "ss-w-fandash-resting-next-when", children: data.whenLabel }),
2318
+ data.competition ? /* @__PURE__ */ (0, import_jsx_runtime32.jsx)("span", { className: "ss-w-fandash-resting-next-competition", children: data.competition }) : null
2294
2319
  ] }),
2295
- /* @__PURE__ */ (0, import_jsx_runtime31.jsx)("span", { className: "ss-w-fandash-card-cta", children: card.actionLabel })
2320
+ /* @__PURE__ */ (0, import_jsx_runtime32.jsx)("span", { className: "ss-w-fandash-card-cta", children: card.actionLabel })
2296
2321
  ] });
2297
2322
  }
2298
2323
 
2299
2324
  // src/components/dashboard/RestingStandingsCard.tsx
2300
- var import_jsx_runtime32 = require("react/jsx-runtime");
2325
+ var import_jsx_runtime33 = require("react/jsx-runtime");
2301
2326
  function RestingStandingsCard({ card, onTap }) {
2302
2327
  const { data } = card;
2303
- return /* @__PURE__ */ (0, import_jsx_runtime32.jsxs)("button", { type: "button", className: "ss-w-fandash-card ss-w-fandash-card--tap ss-w-fandash-resting-standings", onClick: () => onTap(card), children: [
2304
- card.title ? /* @__PURE__ */ (0, import_jsx_runtime32.jsx)("span", { className: "ss-w-fandash-eyebrow", children: card.title }) : null,
2305
- /* @__PURE__ */ (0, import_jsx_runtime32.jsxs)("div", { className: "ss-w-fandash-resting-standings-row", children: [
2306
- /* @__PURE__ */ (0, import_jsx_runtime32.jsx)("span", { className: "ss-w-fandash-resting-standings-position", children: data.positionLabel }),
2307
- /* @__PURE__ */ (0, import_jsx_runtime32.jsx)("span", { className: "ss-w-fandash-resting-standings-record", children: data.recordLabel })
2328
+ return /* @__PURE__ */ (0, import_jsx_runtime33.jsxs)("button", { type: "button", className: "ss-w-fandash-card ss-w-fandash-card--tap ss-w-fandash-resting-standings", onClick: () => onTap(card), children: [
2329
+ card.title ? /* @__PURE__ */ (0, import_jsx_runtime33.jsx)("span", { className: "ss-w-fandash-eyebrow", children: card.title }) : null,
2330
+ /* @__PURE__ */ (0, import_jsx_runtime33.jsxs)("div", { className: "ss-w-fandash-resting-standings-row", children: [
2331
+ /* @__PURE__ */ (0, import_jsx_runtime33.jsx)("span", { className: "ss-w-fandash-resting-standings-position", children: data.positionLabel }),
2332
+ /* @__PURE__ */ (0, import_jsx_runtime33.jsx)("span", { className: "ss-w-fandash-resting-standings-record", children: data.recordLabel })
2308
2333
  ] }),
2309
- /* @__PURE__ */ (0, import_jsx_runtime32.jsx)("span", { className: "ss-w-fandash-card-cta", children: card.actionLabel })
2334
+ /* @__PURE__ */ (0, import_jsx_runtime33.jsx)("span", { className: "ss-w-fandash-card-cta", children: card.actionLabel })
2310
2335
  ] });
2311
2336
  }
2312
2337
 
2313
2338
  // src/components/dashboard/RestingSeasonCard.tsx
2314
- var import_jsx_runtime33 = require("react/jsx-runtime");
2339
+ var import_jsx_runtime34 = require("react/jsx-runtime");
2315
2340
  function RestingSeasonCard({ card, onTap }) {
2316
2341
  const { data } = card;
2317
- return /* @__PURE__ */ (0, import_jsx_runtime33.jsxs)("button", { type: "button", className: "ss-w-fandash-card ss-w-fandash-card--tap ss-w-fandash-resting-season", onClick: () => onTap(card), children: [
2318
- card.title ? /* @__PURE__ */ (0, import_jsx_runtime33.jsx)("span", { className: "ss-w-fandash-eyebrow", children: card.title }) : null,
2319
- /* @__PURE__ */ (0, import_jsx_runtime33.jsxs)("div", { className: "ss-w-fandash-resting-season-rows", children: [
2320
- data.scorerLabel ? /* @__PURE__ */ (0, import_jsx_runtime33.jsx)("span", { className: "ss-w-fandash-resting-season-row", children: data.scorerLabel }) : null,
2321
- data.playerLabel ? /* @__PURE__ */ (0, import_jsx_runtime33.jsx)("span", { className: "ss-w-fandash-resting-season-row", children: data.playerLabel }) : null,
2322
- /* @__PURE__ */ (0, import_jsx_runtime33.jsx)("span", { className: "ss-w-fandash-resting-season-row", children: data.tallyLabel })
2342
+ return /* @__PURE__ */ (0, import_jsx_runtime34.jsxs)("button", { type: "button", className: "ss-w-fandash-card ss-w-fandash-card--tap ss-w-fandash-resting-season", onClick: () => onTap(card), children: [
2343
+ card.title ? /* @__PURE__ */ (0, import_jsx_runtime34.jsx)("span", { className: "ss-w-fandash-eyebrow", children: card.title }) : null,
2344
+ /* @__PURE__ */ (0, import_jsx_runtime34.jsxs)("div", { className: "ss-w-fandash-resting-season-rows", children: [
2345
+ data.scorerLabel ? /* @__PURE__ */ (0, import_jsx_runtime34.jsx)("span", { className: "ss-w-fandash-resting-season-row", children: data.scorerLabel }) : null,
2346
+ data.playerLabel ? /* @__PURE__ */ (0, import_jsx_runtime34.jsx)("span", { className: "ss-w-fandash-resting-season-row", children: data.playerLabel }) : null,
2347
+ /* @__PURE__ */ (0, import_jsx_runtime34.jsx)("span", { className: "ss-w-fandash-resting-season-row", children: data.tallyLabel })
2323
2348
  ] }),
2324
- /* @__PURE__ */ (0, import_jsx_runtime33.jsx)("span", { className: "ss-w-fandash-card-cta", children: card.actionLabel })
2349
+ /* @__PURE__ */ (0, import_jsx_runtime34.jsx)("span", { className: "ss-w-fandash-card-cta", children: card.actionLabel })
2325
2350
  ] });
2326
2351
  }
2327
2352
 
2328
2353
  // src/components/dashboard/RestingFormCard.tsx
2329
- var import_jsx_runtime34 = require("react/jsx-runtime");
2354
+ var import_jsx_runtime35 = require("react/jsx-runtime");
2330
2355
  function resultClass(result) {
2331
2356
  const upper = result.toUpperCase();
2332
2357
  if (upper === "W") return "ss-w-fandash-form-pill--win";
@@ -2335,17 +2360,17 @@ function resultClass(result) {
2335
2360
  }
2336
2361
  function RestingFormCard({ card }) {
2337
2362
  const { data } = card;
2338
- return /* @__PURE__ */ (0, import_jsx_runtime34.jsxs)("div", { className: "ss-w-fandash-card ss-w-fandash-resting-form", children: [
2339
- card.title ? /* @__PURE__ */ (0, import_jsx_runtime34.jsx)("span", { className: "ss-w-fandash-eyebrow", children: card.title }) : null,
2340
- /* @__PURE__ */ (0, import_jsx_runtime34.jsx)("span", { className: "ss-w-fandash-form", children: data.letters.map((r, i) => /* @__PURE__ */ (0, import_jsx_runtime34.jsx)("span", { className: `ss-w-fandash-form-pill ${resultClass(r)}`, children: r }, `${r}-${i}`)) })
2363
+ return /* @__PURE__ */ (0, import_jsx_runtime35.jsxs)("div", { className: "ss-w-fandash-card ss-w-fandash-resting-form", children: [
2364
+ card.title ? /* @__PURE__ */ (0, import_jsx_runtime35.jsx)("span", { className: "ss-w-fandash-eyebrow", children: card.title }) : null,
2365
+ /* @__PURE__ */ (0, import_jsx_runtime35.jsx)("span", { className: "ss-w-fandash-form", children: data.letters.map((r, i) => /* @__PURE__ */ (0, import_jsx_runtime35.jsx)("span", { className: `ss-w-fandash-form-pill ${resultClass(r)}`, children: r }, `${r}-${i}`)) })
2341
2366
  ] });
2342
2367
  }
2343
2368
 
2344
2369
  // src/components/dashboard/LiveScoreCard.tsx
2345
- var import_react15 = require("react");
2370
+ var import_react16 = require("react");
2346
2371
 
2347
2372
  // src/useLiveClock.ts
2348
- var import_react14 = require("react");
2373
+ var import_react15 = require("react");
2349
2374
  var TICK_MS = 6e4;
2350
2375
  var MAX_LIVE_TICK_MINUTES = 15;
2351
2376
  function computeDisplayMinute(minute, clockRunning, receivedAtMs) {
@@ -2354,10 +2379,10 @@ function computeDisplayMinute(minute, clockRunning, receivedAtMs) {
2354
2379
  return minute + Math.min(Math.max(0, elapsedMinutes), MAX_LIVE_TICK_MINUTES);
2355
2380
  }
2356
2381
  function useLiveClock(minute, clockRunning, receivedAtMs) {
2357
- const [displayMinute, setDisplayMinute] = (0, import_react14.useState)(
2382
+ const [displayMinute, setDisplayMinute] = (0, import_react15.useState)(
2358
2383
  () => computeDisplayMinute(minute, clockRunning, receivedAtMs)
2359
2384
  );
2360
- (0, import_react14.useEffect)(() => {
2385
+ (0, import_react15.useEffect)(() => {
2361
2386
  setDisplayMinute(computeDisplayMinute(minute, clockRunning, receivedAtMs));
2362
2387
  if (!clockRunning) return;
2363
2388
  const id = window.setInterval(() => {
@@ -2369,17 +2394,17 @@ function useLiveClock(minute, clockRunning, receivedAtMs) {
2369
2394
  }
2370
2395
 
2371
2396
  // src/components/dashboard/LiveScoreCard.tsx
2372
- var import_jsx_runtime35 = require("react/jsx-runtime");
2397
+ var import_jsx_runtime36 = require("react/jsx-runtime");
2373
2398
  function initials5(name) {
2374
2399
  return name.trim().slice(0, 3).toUpperCase();
2375
2400
  }
2376
2401
  function LiveCrest({ url, name, side }) {
2377
- const [failed, setFailed] = (0, import_react15.useState)(false);
2402
+ const [failed, setFailed] = (0, import_react16.useState)(false);
2378
2403
  const cls = `ss-w-fandash-live-crest ss-w-fandash-live-crest--${side}`;
2379
2404
  if (url && !failed) {
2380
- return /* @__PURE__ */ (0, import_jsx_runtime35.jsx)("img", { className: cls, src: url, alt: "", "aria-hidden": "true", onError: () => setFailed(true) });
2405
+ return /* @__PURE__ */ (0, import_jsx_runtime36.jsx)("img", { className: cls, src: url, alt: "", "aria-hidden": "true", onError: () => setFailed(true) });
2381
2406
  }
2382
- return /* @__PURE__ */ (0, import_jsx_runtime35.jsx)("span", { className: `${cls} ss-w-fandash-live-crest--fallback`, "aria-hidden": "true", children: initials5(name) });
2407
+ return /* @__PURE__ */ (0, import_jsx_runtime36.jsx)("span", { className: `${cls} ss-w-fandash-live-crest--fallback`, "aria-hidden": "true", children: initials5(name) });
2383
2408
  }
2384
2409
  function scorersLine(goalEvents) {
2385
2410
  if (!goalEvents || goalEvents.length === 0) return null;
@@ -2393,72 +2418,72 @@ function LiveScoreCard({
2393
2418
  }) {
2394
2419
  const { data } = card;
2395
2420
  const seedKey = `${data.minute}:${data.homeScore}:${data.awayScore}`;
2396
- const seedRef = (0, import_react15.useRef)(null);
2421
+ const seedRef = (0, import_react16.useRef)(null);
2397
2422
  if (!seedRef.current || seedRef.current.key !== seedKey) {
2398
2423
  seedRef.current = { key: seedKey, receivedAtMs: Date.now() };
2399
2424
  }
2400
2425
  const displayMinute = useLiveClock(data.minute, data.clockRunning, seedRef.current.receivedAtMs);
2401
2426
  const minuteSuffix = data.minuteLabel.replace(/^\d+/, "");
2402
2427
  const scorers = scorersLine(goalEvents);
2403
- return /* @__PURE__ */ (0, import_jsx_runtime35.jsxs)("div", { className: "ss-w-fandash-card ss-w-fandash-live-score", children: [
2404
- card.title ? /* @__PURE__ */ (0, import_jsx_runtime35.jsx)("span", { className: "ss-w-fandash-eyebrow", children: card.title }) : null,
2405
- /* @__PURE__ */ (0, import_jsx_runtime35.jsxs)("div", { className: "ss-w-fandash-live-top", children: [
2406
- /* @__PURE__ */ (0, import_jsx_runtime35.jsxs)("span", { className: "ss-w-fandash-live-pill", children: [
2407
- /* @__PURE__ */ (0, import_jsx_runtime35.jsx)("span", { className: "ss-w-fandash-live-dot", "aria-hidden": "true" }),
2428
+ return /* @__PURE__ */ (0, import_jsx_runtime36.jsxs)("div", { className: "ss-w-fandash-card ss-w-fandash-live-score", children: [
2429
+ card.title ? /* @__PURE__ */ (0, import_jsx_runtime36.jsx)("span", { className: "ss-w-fandash-eyebrow", children: card.title }) : null,
2430
+ /* @__PURE__ */ (0, import_jsx_runtime36.jsxs)("div", { className: "ss-w-fandash-live-top", children: [
2431
+ /* @__PURE__ */ (0, import_jsx_runtime36.jsxs)("span", { className: "ss-w-fandash-live-pill", children: [
2432
+ /* @__PURE__ */ (0, import_jsx_runtime36.jsx)("span", { className: "ss-w-fandash-live-dot", "aria-hidden": "true" }),
2408
2433
  data.statusLabel
2409
2434
  ] }),
2410
- /* @__PURE__ */ (0, import_jsx_runtime35.jsx)("span", { className: "ss-w-fandash-live-minute", children: `${displayMinute}${minuteSuffix}` }),
2411
- data.competition ? /* @__PURE__ */ (0, import_jsx_runtime35.jsx)("span", { className: "ss-w-fandash-live-competition", children: data.competition }) : null
2435
+ /* @__PURE__ */ (0, import_jsx_runtime36.jsx)("span", { className: "ss-w-fandash-live-minute", children: `${displayMinute}${minuteSuffix}` }),
2436
+ data.competition ? /* @__PURE__ */ (0, import_jsx_runtime36.jsx)("span", { className: "ss-w-fandash-live-competition", children: data.competition }) : null
2412
2437
  ] }),
2413
- /* @__PURE__ */ (0, import_jsx_runtime35.jsxs)("div", { className: "ss-w-fandash-live-main", children: [
2414
- /* @__PURE__ */ (0, import_jsx_runtime35.jsxs)("div", { className: "ss-w-fandash-live-side ss-w-fandash-live-side--home", children: [
2415
- /* @__PURE__ */ (0, import_jsx_runtime35.jsx)(LiveCrest, { url: data.homeCrestUrl, name: data.homeName, side: "home" }),
2416
- /* @__PURE__ */ (0, import_jsx_runtime35.jsx)("span", { className: "ss-w-fandash-live-team-name", children: data.homeName })
2438
+ /* @__PURE__ */ (0, import_jsx_runtime36.jsxs)("div", { className: "ss-w-fandash-live-main", children: [
2439
+ /* @__PURE__ */ (0, import_jsx_runtime36.jsxs)("div", { className: "ss-w-fandash-live-side ss-w-fandash-live-side--home", children: [
2440
+ /* @__PURE__ */ (0, import_jsx_runtime36.jsx)(LiveCrest, { url: data.homeCrestUrl, name: data.homeName, side: "home" }),
2441
+ /* @__PURE__ */ (0, import_jsx_runtime36.jsx)("span", { className: "ss-w-fandash-live-team-name", children: data.homeName })
2417
2442
  ] }),
2418
- /* @__PURE__ */ (0, import_jsx_runtime35.jsxs)("div", { className: "ss-w-fandash-live-score-main", children: [
2419
- /* @__PURE__ */ (0, import_jsx_runtime35.jsx)("span", { className: "ss-w-fandash-live-score-value", children: data.homeScore }),
2420
- /* @__PURE__ */ (0, import_jsx_runtime35.jsx)("span", { className: "ss-w-fandash-live-score-sep", children: "\u2013" }),
2421
- /* @__PURE__ */ (0, import_jsx_runtime35.jsx)("span", { className: "ss-w-fandash-live-score-value", children: data.awayScore })
2443
+ /* @__PURE__ */ (0, import_jsx_runtime36.jsxs)("div", { className: "ss-w-fandash-live-score-main", children: [
2444
+ /* @__PURE__ */ (0, import_jsx_runtime36.jsx)("span", { className: "ss-w-fandash-live-score-value", children: data.homeScore }),
2445
+ /* @__PURE__ */ (0, import_jsx_runtime36.jsx)("span", { className: "ss-w-fandash-live-score-sep", children: "\u2013" }),
2446
+ /* @__PURE__ */ (0, import_jsx_runtime36.jsx)("span", { className: "ss-w-fandash-live-score-value", children: data.awayScore })
2422
2447
  ] }),
2423
- /* @__PURE__ */ (0, import_jsx_runtime35.jsxs)("div", { className: "ss-w-fandash-live-side ss-w-fandash-live-side--away", children: [
2424
- /* @__PURE__ */ (0, import_jsx_runtime35.jsx)(LiveCrest, { url: data.awayCrestUrl, name: data.awayName, side: "away" }),
2425
- /* @__PURE__ */ (0, import_jsx_runtime35.jsx)("span", { className: "ss-w-fandash-live-team-name", children: data.awayName })
2448
+ /* @__PURE__ */ (0, import_jsx_runtime36.jsxs)("div", { className: "ss-w-fandash-live-side ss-w-fandash-live-side--away", children: [
2449
+ /* @__PURE__ */ (0, import_jsx_runtime36.jsx)(LiveCrest, { url: data.awayCrestUrl, name: data.awayName, side: "away" }),
2450
+ /* @__PURE__ */ (0, import_jsx_runtime36.jsx)("span", { className: "ss-w-fandash-live-team-name", children: data.awayName })
2426
2451
  ] })
2427
2452
  ] }),
2428
- scorers ? /* @__PURE__ */ (0, import_jsx_runtime35.jsxs)("div", { className: "ss-w-fandash-live-scorers", children: [
2429
- /* @__PURE__ */ (0, import_jsx_runtime35.jsx)("span", { className: "ss-w-fandash-live-scorers-icon", "aria-hidden": "true", children: "\u26BD" }),
2453
+ scorers ? /* @__PURE__ */ (0, import_jsx_runtime36.jsxs)("div", { className: "ss-w-fandash-live-scorers", children: [
2454
+ /* @__PURE__ */ (0, import_jsx_runtime36.jsx)("span", { className: "ss-w-fandash-live-scorers-icon", "aria-hidden": "true", children: "\u26BD" }),
2430
2455
  scorers
2431
2456
  ] }) : null
2432
2457
  ] });
2433
2458
  }
2434
2459
 
2435
2460
  // src/components/dashboard/LiveTimelineCard.tsx
2436
- var import_react16 = require("react");
2437
- var import_jsx_runtime36 = require("react/jsx-runtime");
2461
+ var import_react17 = require("react");
2462
+ var import_jsx_runtime37 = require("react/jsx-runtime");
2438
2463
  var SHOWN2 = 3;
2439
2464
  function EventIcon({ type }) {
2440
2465
  if (type === "goal") {
2441
- return /* @__PURE__ */ (0, import_jsx_runtime36.jsx)("span", { className: "ss-w-fandash-live-tl-ico ss-w-fandash-live-tl-ico--goal", "aria-hidden": "true", children: /* @__PURE__ */ (0, import_jsx_runtime36.jsx)("span", { className: "ss-w-fandash-live-tl-ball" }) });
2466
+ return /* @__PURE__ */ (0, import_jsx_runtime37.jsx)("span", { className: "ss-w-fandash-live-tl-ico ss-w-fandash-live-tl-ico--goal", "aria-hidden": "true", children: /* @__PURE__ */ (0, import_jsx_runtime37.jsx)("span", { className: "ss-w-fandash-live-tl-ball" }) });
2442
2467
  }
2443
2468
  if (type === "yellow" || type === "red") {
2444
- return /* @__PURE__ */ (0, import_jsx_runtime36.jsx)("span", { className: "ss-w-fandash-live-tl-ico", "aria-hidden": "true", children: /* @__PURE__ */ (0, import_jsx_runtime36.jsx)("span", { className: `ss-w-fandash-live-tl-card ss-w-fandash-live-tl-card--${type}` }) });
2469
+ return /* @__PURE__ */ (0, import_jsx_runtime37.jsx)("span", { className: "ss-w-fandash-live-tl-ico", "aria-hidden": "true", children: /* @__PURE__ */ (0, import_jsx_runtime37.jsx)("span", { className: `ss-w-fandash-live-tl-card ss-w-fandash-live-tl-card--${type}` }) });
2445
2470
  }
2446
2471
  if (type === "sub") {
2447
- return /* @__PURE__ */ (0, import_jsx_runtime36.jsx)("span", { className: "ss-w-fandash-live-tl-ico", "aria-hidden": "true", children: /* @__PURE__ */ (0, import_jsx_runtime36.jsx)("span", { className: "ss-w-fandash-live-tl-subarrows", children: "\u21C5" }) });
2472
+ return /* @__PURE__ */ (0, import_jsx_runtime37.jsx)("span", { className: "ss-w-fandash-live-tl-ico", "aria-hidden": "true", children: /* @__PURE__ */ (0, import_jsx_runtime37.jsx)("span", { className: "ss-w-fandash-live-tl-subarrows", children: "\u21C5" }) });
2448
2473
  }
2449
- return /* @__PURE__ */ (0, import_jsx_runtime36.jsx)("span", { className: "ss-w-fandash-live-tl-ico", "aria-hidden": "true", children: /* @__PURE__ */ (0, import_jsx_runtime36.jsx)("span", { className: "ss-w-fandash-live-tl-dot" }) });
2474
+ return /* @__PURE__ */ (0, import_jsx_runtime37.jsx)("span", { className: "ss-w-fandash-live-tl-ico", "aria-hidden": "true", children: /* @__PURE__ */ (0, import_jsx_runtime37.jsx)("span", { className: "ss-w-fandash-live-tl-dot" }) });
2450
2475
  }
2451
2476
  function EventLabel({ e }) {
2452
2477
  if (e.type === "sub") {
2453
- return /* @__PURE__ */ (0, import_jsx_runtime36.jsxs)("span", { className: "ss-w-fandash-live-tl-who", children: [
2478
+ return /* @__PURE__ */ (0, import_jsx_runtime37.jsxs)("span", { className: "ss-w-fandash-live-tl-who", children: [
2454
2479
  e.player ?? e.text,
2455
- e.playerOff ? /* @__PURE__ */ (0, import_jsx_runtime36.jsxs)("span", { className: "ss-w-fandash-live-tl-off", children: [
2480
+ e.playerOff ? /* @__PURE__ */ (0, import_jsx_runtime37.jsxs)("span", { className: "ss-w-fandash-live-tl-off", children: [
2456
2481
  " for ",
2457
2482
  e.playerOff
2458
2483
  ] }) : null
2459
2484
  ] });
2460
2485
  }
2461
- return /* @__PURE__ */ (0, import_jsx_runtime36.jsx)("span", { className: "ss-w-fandash-live-tl-who", children: e.player ?? e.text });
2486
+ return /* @__PURE__ */ (0, import_jsx_runtime37.jsx)("span", { className: "ss-w-fandash-live-tl-who", children: e.player ?? e.text });
2462
2487
  }
2463
2488
  function EventRow({ e }) {
2464
2489
  const cls = [
@@ -2466,16 +2491,16 @@ function EventRow({ e }) {
2466
2491
  e.side === "home" ? "ss-w-fandash-live-tl-ev--home" : "ss-w-fandash-live-tl-ev--away",
2467
2492
  e.type === "goal" ? "ss-w-fandash-live-tl-ev--goal" : ""
2468
2493
  ].filter(Boolean).join(" ");
2469
- return /* @__PURE__ */ (0, import_jsx_runtime36.jsxs)("div", { className: cls, children: [
2470
- /* @__PURE__ */ (0, import_jsx_runtime36.jsxs)("span", { className: "ss-w-fandash-live-tl-txt", children: [
2471
- /* @__PURE__ */ (0, import_jsx_runtime36.jsx)(EventLabel, { e }),
2472
- /* @__PURE__ */ (0, import_jsx_runtime36.jsx)(EventIcon, { type: e.type })
2494
+ return /* @__PURE__ */ (0, import_jsx_runtime37.jsxs)("div", { className: cls, children: [
2495
+ /* @__PURE__ */ (0, import_jsx_runtime37.jsxs)("span", { className: "ss-w-fandash-live-tl-txt", children: [
2496
+ /* @__PURE__ */ (0, import_jsx_runtime37.jsx)(EventLabel, { e }),
2497
+ /* @__PURE__ */ (0, import_jsx_runtime37.jsx)(EventIcon, { type: e.type })
2473
2498
  ] }),
2474
- /* @__PURE__ */ (0, import_jsx_runtime36.jsx)("span", { className: "ss-w-fandash-live-tl-badge", children: e.minuteLabel })
2499
+ /* @__PURE__ */ (0, import_jsx_runtime37.jsx)("span", { className: "ss-w-fandash-live-tl-badge", children: e.minuteLabel })
2475
2500
  ] });
2476
2501
  }
2477
2502
  function LiveTimelineCard({ card, ui }) {
2478
- const [expanded, setExpanded] = (0, import_react16.useState)(false);
2503
+ const [expanded, setExpanded] = (0, import_react17.useState)(false);
2479
2504
  const events = card.data.events;
2480
2505
  if (!events || events.length === 0) return null;
2481
2506
  const sorted = [...events].sort((a, b) => b.minute - a.minute);
@@ -2483,10 +2508,10 @@ function LiveTimelineCard({ card, ui }) {
2483
2508
  const shown = expanded ? sorted : sorted.slice(0, SHOWN2);
2484
2509
  const showMore = ui?.showMore ?? ((n) => `Show ${n} more`);
2485
2510
  const showLess = ui?.showLess ?? "Show less";
2486
- return /* @__PURE__ */ (0, import_jsx_runtime36.jsxs)("div", { className: "ss-w-fandash-card ss-w-fandash-live-timeline", children: [
2487
- card.title ? /* @__PURE__ */ (0, import_jsx_runtime36.jsx)("span", { className: "ss-w-fandash-eyebrow", children: card.title }) : null,
2488
- /* @__PURE__ */ (0, import_jsx_runtime36.jsx)("div", { className: "ss-w-fandash-live-tl", children: shown.map((e, i) => /* @__PURE__ */ (0, import_jsx_runtime36.jsx)(EventRow, { e }, `${e.minute}-${e.side}-${e.type}-${i}`)) }),
2489
- rest > 0 ? /* @__PURE__ */ (0, import_jsx_runtime36.jsx)(
2511
+ return /* @__PURE__ */ (0, import_jsx_runtime37.jsxs)("div", { className: "ss-w-fandash-card ss-w-fandash-live-timeline", children: [
2512
+ card.title ? /* @__PURE__ */ (0, import_jsx_runtime37.jsx)("span", { className: "ss-w-fandash-eyebrow", children: card.title }) : null,
2513
+ /* @__PURE__ */ (0, import_jsx_runtime37.jsx)("div", { className: "ss-w-fandash-live-tl", children: shown.map((e, i) => /* @__PURE__ */ (0, import_jsx_runtime37.jsx)(EventRow, { e }, `${e.minute}-${e.side}-${e.type}-${i}`)) }),
2514
+ rest > 0 ? /* @__PURE__ */ (0, import_jsx_runtime37.jsx)(
2490
2515
  "button",
2491
2516
  {
2492
2517
  type: "button",
@@ -2500,8 +2525,8 @@ function LiveTimelineCard({ card, ui }) {
2500
2525
  }
2501
2526
 
2502
2527
  // src/components/dashboard/MomentumWave.tsx
2503
- var import_react17 = require("react");
2504
- var import_jsx_runtime37 = require("react/jsx-runtime");
2528
+ var import_react18 = require("react");
2529
+ var import_jsx_runtime38 = require("react/jsx-runtime");
2505
2530
  var WIDTH = 270;
2506
2531
  var HEIGHT = 56;
2507
2532
  var BASELINE = HEIGHT / 2;
@@ -2524,15 +2549,15 @@ function MomentumWave({
2524
2549
  }) {
2525
2550
  if (points.length === 0) return null;
2526
2551
  const { area, line, lastLeftPct, lastTopPx } = buildPaths(points);
2527
- const clipId = (0, import_react17.useId)();
2552
+ const clipId = (0, import_react18.useId)();
2528
2553
  const topClipId = `${clipId}-top`;
2529
2554
  const bottomClipId = `${clipId}-bottom`;
2530
2555
  const topClass = clubIsHome ? "ss-w-fandash-live-mom-home" : "ss-w-fandash-live-mom-away";
2531
2556
  const bottomClass = clubIsHome ? "ss-w-fandash-live-mom-away" : "ss-w-fandash-live-mom-home";
2532
- return /* @__PURE__ */ (0, import_jsx_runtime37.jsxs)("div", { className: "ss-w-fandash-live-mom", children: [
2533
- caption ? /* @__PURE__ */ (0, import_jsx_runtime37.jsx)("span", { className: "ss-w-fandash-live-mom-caption", children: caption }) : null,
2534
- /* @__PURE__ */ (0, import_jsx_runtime37.jsxs)("div", { className: "ss-w-fandash-live-mom-plot", children: [
2535
- /* @__PURE__ */ (0, import_jsx_runtime37.jsxs)(
2557
+ return /* @__PURE__ */ (0, import_jsx_runtime38.jsxs)("div", { className: "ss-w-fandash-live-mom", children: [
2558
+ caption ? /* @__PURE__ */ (0, import_jsx_runtime38.jsx)("span", { className: "ss-w-fandash-live-mom-caption", children: caption }) : null,
2559
+ /* @__PURE__ */ (0, import_jsx_runtime38.jsxs)("div", { className: "ss-w-fandash-live-mom-plot", children: [
2560
+ /* @__PURE__ */ (0, import_jsx_runtime38.jsxs)(
2536
2561
  "svg",
2537
2562
  {
2538
2563
  className: "ss-w-fandash-live-mom-svg",
@@ -2541,18 +2566,18 @@ function MomentumWave({
2541
2566
  role: "img",
2542
2567
  "aria-label": caption ?? "Momentum",
2543
2568
  children: [
2544
- /* @__PURE__ */ (0, import_jsx_runtime37.jsxs)("defs", { children: [
2545
- /* @__PURE__ */ (0, import_jsx_runtime37.jsx)("clipPath", { id: topClipId, children: /* @__PURE__ */ (0, import_jsx_runtime37.jsx)("rect", { x: 0, y: 0, width: WIDTH, height: BASELINE }) }),
2546
- /* @__PURE__ */ (0, import_jsx_runtime37.jsx)("clipPath", { id: bottomClipId, children: /* @__PURE__ */ (0, import_jsx_runtime37.jsx)("rect", { x: 0, y: BASELINE, width: WIDTH, height: HEIGHT - BASELINE }) })
2569
+ /* @__PURE__ */ (0, import_jsx_runtime38.jsxs)("defs", { children: [
2570
+ /* @__PURE__ */ (0, import_jsx_runtime38.jsx)("clipPath", { id: topClipId, children: /* @__PURE__ */ (0, import_jsx_runtime38.jsx)("rect", { x: 0, y: 0, width: WIDTH, height: BASELINE }) }),
2571
+ /* @__PURE__ */ (0, import_jsx_runtime38.jsx)("clipPath", { id: bottomClipId, children: /* @__PURE__ */ (0, import_jsx_runtime38.jsx)("rect", { x: 0, y: BASELINE, width: WIDTH, height: HEIGHT - BASELINE }) })
2547
2572
  ] }),
2548
- /* @__PURE__ */ (0, import_jsx_runtime37.jsx)("path", { d: area, className: topClass, clipPath: `url(#${topClipId})` }),
2549
- /* @__PURE__ */ (0, import_jsx_runtime37.jsx)("path", { d: area, className: bottomClass, clipPath: `url(#${bottomClipId})` }),
2550
- /* @__PURE__ */ (0, import_jsx_runtime37.jsx)("line", { x1: 0, y1: BASELINE, x2: WIDTH, y2: BASELINE, className: "ss-w-fandash-live-mom-base" }),
2551
- /* @__PURE__ */ (0, import_jsx_runtime37.jsx)("path", { d: line, className: "ss-w-fandash-live-mom-line", vectorEffect: "non-scaling-stroke" })
2573
+ /* @__PURE__ */ (0, import_jsx_runtime38.jsx)("path", { d: area, className: topClass, clipPath: `url(#${topClipId})` }),
2574
+ /* @__PURE__ */ (0, import_jsx_runtime38.jsx)("path", { d: area, className: bottomClass, clipPath: `url(#${bottomClipId})` }),
2575
+ /* @__PURE__ */ (0, import_jsx_runtime38.jsx)("line", { x1: 0, y1: BASELINE, x2: WIDTH, y2: BASELINE, className: "ss-w-fandash-live-mom-base" }),
2576
+ /* @__PURE__ */ (0, import_jsx_runtime38.jsx)("path", { d: line, className: "ss-w-fandash-live-mom-line", vectorEffect: "non-scaling-stroke" })
2552
2577
  ]
2553
2578
  }
2554
2579
  ),
2555
- /* @__PURE__ */ (0, import_jsx_runtime37.jsx)(
2580
+ /* @__PURE__ */ (0, import_jsx_runtime38.jsx)(
2556
2581
  "span",
2557
2582
  {
2558
2583
  className: "ss-w-fandash-live-mom-now",
@@ -2565,7 +2590,7 @@ function MomentumWave({
2565
2590
  }
2566
2591
 
2567
2592
  // src/components/dashboard/LiveStatsCard.tsx
2568
- var import_jsx_runtime38 = require("react/jsx-runtime");
2593
+ var import_jsx_runtime39 = require("react/jsx-runtime");
2569
2594
  function splitWidths2(homeNum, awayNum) {
2570
2595
  const total = homeNum + awayNum;
2571
2596
  if (total <= 0) return { home: "50%", away: "50%" };
@@ -2574,34 +2599,34 @@ function splitWidths2(homeNum, awayNum) {
2574
2599
  }
2575
2600
  function LiveStatsCard({ card }) {
2576
2601
  const { data } = card;
2577
- return /* @__PURE__ */ (0, import_jsx_runtime38.jsxs)("div", { className: "ss-w-fandash-card ss-w-fandash-live-stats", children: [
2578
- card.title ? /* @__PURE__ */ (0, import_jsx_runtime38.jsx)("span", { className: "ss-w-fandash-eyebrow", children: card.title }) : null,
2579
- /* @__PURE__ */ (0, import_jsx_runtime38.jsx)("div", { className: "ss-w-fandash-live-stat-rows", children: data.rows.map((r, i) => {
2602
+ return /* @__PURE__ */ (0, import_jsx_runtime39.jsxs)("div", { className: "ss-w-fandash-card ss-w-fandash-live-stats", children: [
2603
+ card.title ? /* @__PURE__ */ (0, import_jsx_runtime39.jsx)("span", { className: "ss-w-fandash-eyebrow", children: card.title }) : null,
2604
+ /* @__PURE__ */ (0, import_jsx_runtime39.jsx)("div", { className: "ss-w-fandash-live-stat-rows", children: data.rows.map((r, i) => {
2580
2605
  const homeValue = data.clubIsHome ? r.clubValue : r.oppValue;
2581
2606
  const awayValue = data.clubIsHome ? r.oppValue : r.clubValue;
2582
2607
  const homeNum = data.clubIsHome ? r.clubNum : r.oppNum;
2583
2608
  const awayNum = data.clubIsHome ? r.oppNum : r.clubNum;
2584
2609
  const { home, away } = splitWidths2(homeNum, awayNum);
2585
- return /* @__PURE__ */ (0, import_jsx_runtime38.jsxs)("div", { className: "ss-w-fandash-live-stat", children: [
2586
- /* @__PURE__ */ (0, import_jsx_runtime38.jsxs)("div", { className: "ss-w-fandash-live-stat-row", children: [
2587
- /* @__PURE__ */ (0, import_jsx_runtime38.jsx)("span", { className: "ss-w-fandash-live-stat-value ss-w-fandash-live-stat-value--home", children: homeValue }),
2588
- /* @__PURE__ */ (0, import_jsx_runtime38.jsx)("span", { className: "ss-w-fandash-live-stat-label", children: r.label }),
2589
- /* @__PURE__ */ (0, import_jsx_runtime38.jsx)("span", { className: "ss-w-fandash-live-stat-value ss-w-fandash-live-stat-value--away", children: awayValue })
2610
+ return /* @__PURE__ */ (0, import_jsx_runtime39.jsxs)("div", { className: "ss-w-fandash-live-stat", children: [
2611
+ /* @__PURE__ */ (0, import_jsx_runtime39.jsxs)("div", { className: "ss-w-fandash-live-stat-row", children: [
2612
+ /* @__PURE__ */ (0, import_jsx_runtime39.jsx)("span", { className: "ss-w-fandash-live-stat-value ss-w-fandash-live-stat-value--home", children: homeValue }),
2613
+ /* @__PURE__ */ (0, import_jsx_runtime39.jsx)("span", { className: "ss-w-fandash-live-stat-label", children: r.label }),
2614
+ /* @__PURE__ */ (0, import_jsx_runtime39.jsx)("span", { className: "ss-w-fandash-live-stat-value ss-w-fandash-live-stat-value--away", children: awayValue })
2590
2615
  ] }),
2591
- /* @__PURE__ */ (0, import_jsx_runtime38.jsxs)("div", { className: "ss-w-fandash-live-bar", children: [
2592
- /* @__PURE__ */ (0, import_jsx_runtime38.jsx)("span", { className: "ss-w-fandash-live-bar-home", style: { width: home } }),
2593
- /* @__PURE__ */ (0, import_jsx_runtime38.jsx)("span", { className: "ss-w-fandash-live-bar-away", style: { width: away } })
2616
+ /* @__PURE__ */ (0, import_jsx_runtime39.jsxs)("div", { className: "ss-w-fandash-live-bar", children: [
2617
+ /* @__PURE__ */ (0, import_jsx_runtime39.jsx)("span", { className: "ss-w-fandash-live-bar-home", style: { width: home } }),
2618
+ /* @__PURE__ */ (0, import_jsx_runtime39.jsx)("span", { className: "ss-w-fandash-live-bar-away", style: { width: away } })
2594
2619
  ] })
2595
2620
  ] }, `${r.label}-${i}`);
2596
2621
  }) }),
2597
- data.momentum.length > 0 ? /* @__PURE__ */ (0, import_jsx_runtime38.jsx)(MomentumWave, { points: data.momentum, caption: data.momentumLabel, clubIsHome: data.clubIsHome }) : data.momentumLabel ? /* @__PURE__ */ (0, import_jsx_runtime38.jsx)("span", { className: "ss-w-fandash-live-momentum", children: data.momentumLabel }) : null,
2598
- data.rows.length > 0 ? /* @__PURE__ */ (0, import_jsx_runtime38.jsxs)("div", { className: "ss-w-fandash-live-legend", children: [
2599
- /* @__PURE__ */ (0, import_jsx_runtime38.jsxs)("span", { className: "ss-w-fandash-live-legend-item", children: [
2600
- /* @__PURE__ */ (0, import_jsx_runtime38.jsx)("i", { className: "ss-w-fandash-live-legend-swatch ss-w-fandash-live-legend-swatch--home" }),
2622
+ data.momentum.length > 0 ? /* @__PURE__ */ (0, import_jsx_runtime39.jsx)(MomentumWave, { points: data.momentum, caption: data.momentumLabel, clubIsHome: data.clubIsHome }) : data.momentumLabel ? /* @__PURE__ */ (0, import_jsx_runtime39.jsx)("span", { className: "ss-w-fandash-live-momentum", children: data.momentumLabel }) : null,
2623
+ data.rows.length > 0 ? /* @__PURE__ */ (0, import_jsx_runtime39.jsxs)("div", { className: "ss-w-fandash-live-legend", children: [
2624
+ /* @__PURE__ */ (0, import_jsx_runtime39.jsxs)("span", { className: "ss-w-fandash-live-legend-item", children: [
2625
+ /* @__PURE__ */ (0, import_jsx_runtime39.jsx)("i", { className: "ss-w-fandash-live-legend-swatch ss-w-fandash-live-legend-swatch--home" }),
2601
2626
  data.homeName
2602
2627
  ] }),
2603
- /* @__PURE__ */ (0, import_jsx_runtime38.jsxs)("span", { className: "ss-w-fandash-live-legend-item", children: [
2604
- /* @__PURE__ */ (0, import_jsx_runtime38.jsx)("i", { className: "ss-w-fandash-live-legend-swatch ss-w-fandash-live-legend-swatch--away" }),
2628
+ /* @__PURE__ */ (0, import_jsx_runtime39.jsxs)("span", { className: "ss-w-fandash-live-legend-item", children: [
2629
+ /* @__PURE__ */ (0, import_jsx_runtime39.jsx)("i", { className: "ss-w-fandash-live-legend-swatch ss-w-fandash-live-legend-swatch--away" }),
2605
2630
  data.awayName
2606
2631
  ] })
2607
2632
  ] }) : null
@@ -2609,7 +2634,7 @@ function LiveStatsCard({ card }) {
2609
2634
  }
2610
2635
 
2611
2636
  // src/components/dashboard/ClubFanDashboard.tsx
2612
- var import_jsx_runtime39 = require("react/jsx-runtime");
2637
+ var import_jsx_runtime40 = require("react/jsx-runtime");
2613
2638
  function ClubFanDashboard({ dashboard, onTap, ui }) {
2614
2639
  const orderedCards = [
2615
2640
  ...dashboard.cards.filter((c) => c.cardType === "countdown"),
@@ -2619,84 +2644,84 @@ function ClubFanDashboard({ dashboard, onTap, ui }) {
2619
2644
  (c) => c.cardType === "liveTimeline"
2620
2645
  );
2621
2646
  const goalEvents = timelineCard?.data.events.filter((e) => e.type === "goal");
2622
- return /* @__PURE__ */ (0, import_jsx_runtime39.jsxs)("div", { className: "ss-w-fandash", children: [
2623
- dashboard.greeting ? /* @__PURE__ */ (0, import_jsx_runtime39.jsx)("span", { className: "ss-w-fandash-greeting", children: dashboard.greeting }) : null,
2624
- /* @__PURE__ */ (0, import_jsx_runtime39.jsx)("div", { className: "ss-w-fandash-cards", children: orderedCards.map((card, i) => /* @__PURE__ */ (0, import_jsx_runtime39.jsx)(FanDashboardCard, { card, onTap, ui, goalEvents }, `${card.cardType}-${i}`)) })
2647
+ return /* @__PURE__ */ (0, import_jsx_runtime40.jsxs)("div", { className: "ss-w-fandash", children: [
2648
+ dashboard.greeting ? /* @__PURE__ */ (0, import_jsx_runtime40.jsx)("span", { className: dashboard.greetingIsLead ? "ss-w-fandash-greeting ss-w-fandash-greeting--lead" : "ss-w-fandash-greeting", children: dashboard.greeting }) : null,
2649
+ /* @__PURE__ */ (0, import_jsx_runtime40.jsx)("div", { className: "ss-w-fandash-cards", children: orderedCards.map((card, i) => /* @__PURE__ */ (0, import_jsx_runtime40.jsx)(FanDashboardCard, { card, onTap, ui, goalEvents }, `${card.cardType}-${i}`)) })
2625
2650
  ] });
2626
2651
  }
2627
2652
  function FanDashboardCard({ card, onTap, ui, goalEvents }) {
2628
2653
  switch (card.cardType) {
2629
2654
  case "fixture":
2630
- return /* @__PURE__ */ (0, import_jsx_runtime39.jsx)(FixtureCard, { card });
2655
+ return /* @__PURE__ */ (0, import_jsx_runtime40.jsx)(FixtureCard, { card });
2631
2656
  case "countdown":
2632
- return /* @__PURE__ */ (0, import_jsx_runtime39.jsx)(CountdownCard, { card });
2657
+ return /* @__PURE__ */ (0, import_jsx_runtime40.jsx)(CountdownCard, { card });
2633
2658
  case "injuries":
2634
- return /* @__PURE__ */ (0, import_jsx_runtime39.jsx)(InjuriesCard, { card, ui });
2659
+ return /* @__PURE__ */ (0, import_jsx_runtime40.jsx)(InjuriesCard, { card, ui });
2635
2660
  case "reasonToBet":
2636
- return /* @__PURE__ */ (0, import_jsx_runtime39.jsx)(ReasonToBetCard, { card });
2661
+ return /* @__PURE__ */ (0, import_jsx_runtime40.jsx)(ReasonToBetCard, { card });
2637
2662
  case "whereToWatch":
2638
- return /* @__PURE__ */ (0, import_jsx_runtime39.jsx)(WhereToWatchCard, { card });
2663
+ return /* @__PURE__ */ (0, import_jsx_runtime40.jsx)(WhereToWatchCard, { card });
2639
2664
  case "congestedWeek":
2640
- return /* @__PURE__ */ (0, import_jsx_runtime39.jsx)(CongestedWeekCard, { card, onTap });
2665
+ return /* @__PURE__ */ (0, import_jsx_runtime40.jsx)(CongestedWeekCard, { card, onTap });
2641
2666
  case "transfers":
2642
- return /* @__PURE__ */ (0, import_jsx_runtime39.jsx)(TransfersCard, { card });
2667
+ return /* @__PURE__ */ (0, import_jsx_runtime40.jsx)(TransfersCard, { card });
2643
2668
  case "links":
2644
- return /* @__PURE__ */ (0, import_jsx_runtime39.jsx)(LinksCard, { card });
2669
+ return /* @__PURE__ */ (0, import_jsx_runtime40.jsx)(LinksCard, { card });
2645
2670
  case "postMatchResult":
2646
- return /* @__PURE__ */ (0, import_jsx_runtime39.jsx)(PostMatchResultCard, { card });
2671
+ return /* @__PURE__ */ (0, import_jsx_runtime40.jsx)(PostMatchResultCard, { card });
2647
2672
  case "postMatchGoals":
2648
- return /* @__PURE__ */ (0, import_jsx_runtime39.jsx)(PostMatchGoalsCard, { card, onTap });
2673
+ return /* @__PURE__ */ (0, import_jsx_runtime40.jsx)(PostMatchGoalsCard, { card, onTap });
2649
2674
  case "postMatchStats":
2650
- return /* @__PURE__ */ (0, import_jsx_runtime39.jsx)(PostMatchStatsCard, { card, onTap });
2675
+ return /* @__PURE__ */ (0, import_jsx_runtime40.jsx)(PostMatchStatsCard, { card, onTap });
2651
2676
  case "postMatchTopPerformer":
2652
- return /* @__PURE__ */ (0, import_jsx_runtime39.jsx)(PostMatchTopPerformerCard, { card, onTap });
2677
+ return /* @__PURE__ */ (0, import_jsx_runtime40.jsx)(PostMatchTopPerformerCard, { card, onTap });
2653
2678
  case "postMatchNext":
2654
- return /* @__PURE__ */ (0, import_jsx_runtime39.jsx)(PostMatchNextCard, { card });
2679
+ return /* @__PURE__ */ (0, import_jsx_runtime40.jsx)(PostMatchNextCard, { card });
2655
2680
  case "restingNext":
2656
- return /* @__PURE__ */ (0, import_jsx_runtime39.jsx)(RestingNextCard, { card, onTap });
2681
+ return /* @__PURE__ */ (0, import_jsx_runtime40.jsx)(RestingNextCard, { card, onTap });
2657
2682
  case "restingStandings":
2658
- return /* @__PURE__ */ (0, import_jsx_runtime39.jsx)(RestingStandingsCard, { card, onTap });
2683
+ return /* @__PURE__ */ (0, import_jsx_runtime40.jsx)(RestingStandingsCard, { card, onTap });
2659
2684
  case "restingSeason":
2660
- return /* @__PURE__ */ (0, import_jsx_runtime39.jsx)(RestingSeasonCard, { card, onTap });
2685
+ return /* @__PURE__ */ (0, import_jsx_runtime40.jsx)(RestingSeasonCard, { card, onTap });
2661
2686
  case "restingForm":
2662
- return /* @__PURE__ */ (0, import_jsx_runtime39.jsx)(RestingFormCard, { card });
2687
+ return /* @__PURE__ */ (0, import_jsx_runtime40.jsx)(RestingFormCard, { card });
2663
2688
  case "liveScore":
2664
- return /* @__PURE__ */ (0, import_jsx_runtime39.jsx)(LiveScoreCard, { card, goalEvents });
2689
+ return /* @__PURE__ */ (0, import_jsx_runtime40.jsx)(LiveScoreCard, { card, goalEvents });
2665
2690
  case "liveTimeline":
2666
- return /* @__PURE__ */ (0, import_jsx_runtime39.jsx)(LiveTimelineCard, { card, ui });
2691
+ return /* @__PURE__ */ (0, import_jsx_runtime40.jsx)(LiveTimelineCard, { card, ui });
2667
2692
  case "liveStats":
2668
- return /* @__PURE__ */ (0, import_jsx_runtime39.jsx)(LiveStatsCard, { card });
2693
+ return /* @__PURE__ */ (0, import_jsx_runtime40.jsx)(LiveStatsCard, { card });
2669
2694
  default:
2670
2695
  return null;
2671
2696
  }
2672
2697
  }
2673
2698
 
2674
2699
  // src/components/ChatMessage.tsx
2675
- var import_jsx_runtime40 = require("react/jsx-runtime");
2700
+ var import_jsx_runtime41 = require("react/jsx-runtime");
2676
2701
  function ChatMessage({ message, disabled, onAct, onTap, ui, slip, monitor }) {
2677
2702
  if (message.role === "user") {
2678
- return /* @__PURE__ */ (0, import_jsx_runtime40.jsx)("div", { className: "ss-w-msg ss-w-user", "data-msg-id": message.id, children: /* @__PURE__ */ (0, import_jsx_runtime40.jsx)("div", { className: "ss-w-bubble", children: message.text }) });
2703
+ return /* @__PURE__ */ (0, import_jsx_runtime41.jsx)("div", { className: "ss-w-msg ss-w-user", "data-msg-id": message.id, children: /* @__PURE__ */ (0, import_jsx_runtime41.jsx)("div", { className: "ss-w-bubble", children: message.text }) });
2679
2704
  }
2680
2705
  const onFanDashboardTap = (card) => {
2681
2706
  onAct({ message: card.actionLabel, actionRef: card.actionRef, label: card.actionLabel || card.title || "" });
2682
2707
  };
2683
- return /* @__PURE__ */ (0, import_jsx_runtime40.jsxs)("div", { className: "ss-w-msg ss-w-bot", "data-msg-id": message.id, children: [
2684
- message.text && !message.greetingDashboard && !message.clubFanDashboard ? /* @__PURE__ */ (0, import_jsx_runtime40.jsx)(Markdown, { text: message.text }) : null,
2685
- message.greetingDashboard && !message.clubFanDashboard ? /* @__PURE__ */ (0, import_jsx_runtime40.jsx)(GreetingDashboard, { dashboard: message.greetingDashboard, onTap }) : null,
2686
- message.clubFanDashboard ? /* @__PURE__ */ (0, import_jsx_runtime40.jsx)(ClubFanDashboard, { dashboard: message.clubFanDashboard, onTap: onFanDashboardTap, ui }) : null,
2687
- /* @__PURE__ */ (0, import_jsx_runtime40.jsx)(EntityCardList, { cards: message.cards, disabled, showLessLabel: ui?.showLess, showMoreLabel: ui?.showMore }),
2688
- /* @__PURE__ */ (0, import_jsx_runtime40.jsx)(BettingInsightList, { insights: message.insights, ui, slip, monitor }),
2689
- /* @__PURE__ */ (0, import_jsx_runtime40.jsx)(MarketOddsCardList, { cards: message.marketOdds, ui, slip, monitor }),
2690
- /* @__PURE__ */ (0, import_jsx_runtime40.jsx)(OddsMovementCardList, { cards: message.oddsMovement, ui, monitor }),
2691
- /* @__PURE__ */ (0, import_jsx_runtime40.jsx)(ActionButtons, { actions: message.actions, loading: false, disabled, onAct })
2708
+ return /* @__PURE__ */ (0, import_jsx_runtime41.jsxs)("div", { className: "ss-w-msg ss-w-bot", "data-msg-id": message.id, children: [
2709
+ message.text && !message.greetingDashboard && !message.clubFanDashboard ? /* @__PURE__ */ (0, import_jsx_runtime41.jsx)(Markdown, { text: message.text }) : null,
2710
+ message.greetingDashboard && !message.clubFanDashboard ? /* @__PURE__ */ (0, import_jsx_runtime41.jsx)(GreetingDashboard, { dashboard: message.greetingDashboard, onTap }) : null,
2711
+ message.clubFanDashboard ? /* @__PURE__ */ (0, import_jsx_runtime41.jsx)(ClubFanDashboard, { dashboard: message.clubFanDashboard, onTap: onFanDashboardTap, ui }) : null,
2712
+ /* @__PURE__ */ (0, import_jsx_runtime41.jsx)(EntityCardList, { cards: message.cards, disabled, showLessLabel: ui?.showLess, showMoreLabel: ui?.showMore }),
2713
+ /* @__PURE__ */ (0, import_jsx_runtime41.jsx)(BettingInsightList, { insights: message.insights, ui, slip, monitor }),
2714
+ /* @__PURE__ */ (0, import_jsx_runtime41.jsx)(MarketOddsCardList, { cards: message.marketOdds, ui, slip, monitor }),
2715
+ /* @__PURE__ */ (0, import_jsx_runtime41.jsx)(OddsMovementCardList, { cards: message.oddsMovement, ui, monitor }),
2716
+ /* @__PURE__ */ (0, import_jsx_runtime41.jsx)(ActionButtons, { actions: message.actions, loading: false, disabled, onAct })
2692
2717
  ] });
2693
2718
  }
2694
2719
 
2695
2720
  // src/components/IntentChips.tsx
2696
- var import_jsx_runtime41 = require("react/jsx-runtime");
2721
+ var import_jsx_runtime42 = require("react/jsx-runtime");
2697
2722
  function IntentChips({ chips, onPick }) {
2698
2723
  if (chips.length === 0) return null;
2699
- return /* @__PURE__ */ (0, import_jsx_runtime41.jsx)("div", { className: "ss-w-chips", children: chips.map((c, i) => /* @__PURE__ */ (0, import_jsx_runtime41.jsx)("button", { type: "button", className: "ss-w-chip", onClick: () => onPick(c.text), children: c.text }, `${c.text}-${i}`)) });
2724
+ return /* @__PURE__ */ (0, import_jsx_runtime42.jsx)("div", { className: "ss-w-chips", children: chips.map((c, i) => /* @__PURE__ */ (0, import_jsx_runtime42.jsx)("button", { type: "button", className: "ss-w-chip", onClick: () => onPick(c.text), children: c.text }, `${c.text}-${i}`)) });
2700
2725
  }
2701
2726
 
2702
2727
  // src/scroll.ts
@@ -2706,7 +2731,7 @@ function isPinnedToBottom(el, threshold = PIN_THRESHOLD) {
2706
2731
  }
2707
2732
 
2708
2733
  // src/components/MessageList.tsx
2709
- var import_jsx_runtime42 = require("react/jsx-runtime");
2734
+ var import_jsx_runtime43 = require("react/jsx-runtime");
2710
2735
  function turnAnchor(messages) {
2711
2736
  const last = messages[messages.length - 1];
2712
2737
  if (!last || last.role !== "assistant") return null;
@@ -2715,11 +2740,11 @@ function turnAnchor(messages) {
2715
2740
  }
2716
2741
  function MessageList({ controller, ui, slip, onDashboardTap, monitor }) {
2717
2742
  const { state, send } = controller;
2718
- const listRef = (0, import_react18.useRef)(null);
2719
- const endRef = (0, import_react18.useRef)(null);
2720
- const pinnedRef = (0, import_react18.useRef)(true);
2721
- const anchoredTurnRef = (0, import_react18.useRef)(null);
2722
- (0, import_react18.useEffect)(() => {
2743
+ const listRef = (0, import_react19.useRef)(null);
2744
+ const endRef = (0, import_react19.useRef)(null);
2745
+ const pinnedRef = (0, import_react19.useRef)(true);
2746
+ const anchoredTurnRef = (0, import_react19.useRef)(null);
2747
+ (0, import_react19.useEffect)(() => {
2723
2748
  const anchor = turnAnchor(state.messages);
2724
2749
  const list = listRef.current;
2725
2750
  if (anchor && anchor.turnId !== anchoredTurnRef.current) {
@@ -2734,7 +2759,7 @@ function MessageList({ controller, ui, slip, onDashboardTap, monitor }) {
2734
2759
  }, [state.messages, state.status, state.isStreaming]);
2735
2760
  const hasUserMessage = state.messages.some((m) => m.role === "user");
2736
2761
  const hasDashboard = state.messages.some((m) => m.role === "assistant" && (m.greetingDashboard || m.clubFanDashboard));
2737
- return /* @__PURE__ */ (0, import_jsx_runtime42.jsxs)(
2762
+ return /* @__PURE__ */ (0, import_jsx_runtime43.jsxs)(
2738
2763
  "div",
2739
2764
  {
2740
2765
  className: "ss-w-list",
@@ -2744,7 +2769,7 @@ function MessageList({ controller, ui, slip, onDashboardTap, monitor }) {
2744
2769
  if (listRef.current) pinnedRef.current = isPinnedToBottom(listRef.current);
2745
2770
  },
2746
2771
  children: [
2747
- state.messages.map((m) => /* @__PURE__ */ (0, import_jsx_runtime42.jsx)(
2772
+ state.messages.map((m) => /* @__PURE__ */ (0, import_jsx_runtime43.jsx)(
2748
2773
  ChatMessage,
2749
2774
  {
2750
2775
  message: m,
@@ -2760,25 +2785,25 @@ function MessageList({ controller, ui, slip, onDashboardTap, monitor }) {
2760
2785
  },
2761
2786
  m.id
2762
2787
  )),
2763
- state.isStreaming && state.actionsLoading ? /* @__PURE__ */ (0, import_jsx_runtime42.jsx)(ActionButtons, { actions: [], loading: true, onAct: () => {
2788
+ state.isStreaming && state.actionsLoading ? /* @__PURE__ */ (0, import_jsx_runtime43.jsx)(ActionButtons, { actions: [], loading: true, onAct: () => {
2764
2789
  } }) : null,
2765
- state.status ? /* @__PURE__ */ (0, import_jsx_runtime42.jsx)("div", { className: "ss-w-status", children: state.status }) : null,
2766
- state.error ? /* @__PURE__ */ (0, import_jsx_runtime42.jsxs)("div", { className: "ss-w-error", role: "alert", children: [
2767
- /* @__PURE__ */ (0, import_jsx_runtime42.jsx)("span", { children: "message" in state.error ? state.error.message : ui.somethingWentWrong }),
2768
- /* @__PURE__ */ (0, import_jsx_runtime42.jsx)("button", { type: "button", className: "ss-w-retry", onClick: () => controller.retry(), children: ui.retry })
2790
+ state.status ? /* @__PURE__ */ (0, import_jsx_runtime43.jsx)("div", { className: "ss-w-status", children: state.status }) : null,
2791
+ state.error ? /* @__PURE__ */ (0, import_jsx_runtime43.jsxs)("div", { className: "ss-w-error", role: "alert", children: [
2792
+ /* @__PURE__ */ (0, import_jsx_runtime43.jsx)("span", { children: "message" in state.error ? state.error.message : ui.somethingWentWrong }),
2793
+ /* @__PURE__ */ (0, import_jsx_runtime43.jsx)("button", { type: "button", className: "ss-w-retry", onClick: () => controller.retry(), children: ui.retry })
2769
2794
  ] }) : null,
2770
- !hasUserMessage && !hasDashboard ? /* @__PURE__ */ (0, import_jsx_runtime42.jsx)(IntentChips, { chips: state.starters, onPick: (t) => send(t) }) : null,
2771
- /* @__PURE__ */ (0, import_jsx_runtime42.jsx)("div", { ref: endRef, className: "ss-w-turn-spacer", "aria-hidden": "true" })
2795
+ !hasUserMessage && !hasDashboard ? /* @__PURE__ */ (0, import_jsx_runtime43.jsx)(IntentChips, { chips: state.starters, onPick: (t) => send(t) }) : null,
2796
+ /* @__PURE__ */ (0, import_jsx_runtime43.jsx)("div", { ref: endRef, className: "ss-w-turn-spacer", "aria-hidden": "true" })
2772
2797
  ]
2773
2798
  }
2774
2799
  );
2775
2800
  }
2776
2801
 
2777
2802
  // src/components/ChatInput.tsx
2778
- var import_react19 = require("react");
2779
- var import_jsx_runtime43 = require("react/jsx-runtime");
2803
+ var import_react20 = require("react");
2804
+ var import_jsx_runtime44 = require("react/jsx-runtime");
2780
2805
  function ChatInput({ placeholder, streaming, onSend, onStop, stopLabel = "Stop response", sendLabel = "Send message" }) {
2781
- const [value, setValue] = (0, import_react19.useState)("");
2806
+ const [value, setValue] = (0, import_react20.useState)("");
2782
2807
  const submit = () => {
2783
2808
  const t = value.trim();
2784
2809
  if (!t) return;
@@ -2791,14 +2816,14 @@ function ChatInput({ placeholder, streaming, onSend, onStop, stopLabel = "Stop r
2791
2816
  submit();
2792
2817
  }
2793
2818
  };
2794
- return /* @__PURE__ */ (0, import_jsx_runtime43.jsxs)("div", { className: "ss-w-input", children: [
2795
- /* @__PURE__ */ (0, import_jsx_runtime43.jsx)("textarea", { className: "ss-w-textarea", rows: 1, placeholder, value, disabled: streaming, onChange: (e) => setValue(e.target.value), onKeyDown }),
2796
- streaming ? /* @__PURE__ */ (0, import_jsx_runtime43.jsx)("button", { type: "button", className: "ss-w-send ss-w-stop", "aria-label": stopLabel, onClick: onStop, children: /* @__PURE__ */ (0, import_jsx_runtime43.jsx)("span", { className: "ss-w-stop-glyph" }) }) : /* @__PURE__ */ (0, import_jsx_runtime43.jsx)("button", { type: "button", className: "ss-w-send", "aria-label": sendLabel, onClick: submit, children: /* @__PURE__ */ (0, import_jsx_runtime43.jsx)(SendIcon, {}) })
2819
+ return /* @__PURE__ */ (0, import_jsx_runtime44.jsxs)("div", { className: "ss-w-input", children: [
2820
+ /* @__PURE__ */ (0, import_jsx_runtime44.jsx)("textarea", { className: "ss-w-textarea", rows: 1, placeholder, value, disabled: streaming, onChange: (e) => setValue(e.target.value), onKeyDown }),
2821
+ streaming ? /* @__PURE__ */ (0, import_jsx_runtime44.jsx)("button", { type: "button", className: "ss-w-send ss-w-stop", "aria-label": stopLabel, onClick: onStop, children: /* @__PURE__ */ (0, import_jsx_runtime44.jsx)("span", { className: "ss-w-stop-glyph" }) }) : /* @__PURE__ */ (0, import_jsx_runtime44.jsx)("button", { type: "button", className: "ss-w-send", "aria-label": sendLabel, onClick: submit, children: /* @__PURE__ */ (0, import_jsx_runtime44.jsx)(SendIcon, {}) })
2797
2822
  ] });
2798
2823
  }
2799
2824
 
2800
2825
  // src/components/TabBar.tsx
2801
- var import_jsx_runtime44 = require("react/jsx-runtime");
2826
+ var import_jsx_runtime45 = require("react/jsx-runtime");
2802
2827
  var TABS = [
2803
2828
  { tab: "chat", labelKey: "tabChat" },
2804
2829
  { tab: "matches", labelKey: "tabMatches" },
@@ -2812,10 +2837,10 @@ function TabBar({ monitor, ui, matchCount, oddsCount }) {
2812
2837
  matches: monitor.matchesDot && monitor.activeTab !== "matches",
2813
2838
  odds: monitor.oddsDot && monitor.activeTab !== "odds"
2814
2839
  };
2815
- return /* @__PURE__ */ (0, import_jsx_runtime44.jsx)("div", { className: "ss-w-tabs", role: "tablist", children: TABS.map(({ tab, labelKey }) => {
2840
+ return /* @__PURE__ */ (0, import_jsx_runtime45.jsx)("div", { className: "ss-w-tabs", role: "tablist", children: TABS.map(({ tab, labelKey }) => {
2816
2841
  const active = monitor.activeTab === tab;
2817
2842
  const count = counts[tab];
2818
- return /* @__PURE__ */ (0, import_jsx_runtime44.jsxs)(
2843
+ return /* @__PURE__ */ (0, import_jsx_runtime45.jsxs)(
2819
2844
  "button",
2820
2845
  {
2821
2846
  type: "button",
@@ -2826,8 +2851,8 @@ function TabBar({ monitor, ui, matchCount, oddsCount }) {
2826
2851
  onClick: () => monitor.setActiveTab(tab),
2827
2852
  children: [
2828
2853
  ui[labelKey],
2829
- count > 0 && /* @__PURE__ */ (0, import_jsx_runtime44.jsx)("span", { className: "ss-w-tab-count", children: count }),
2830
- dots[tab] && /* @__PURE__ */ (0, import_jsx_runtime44.jsx)("span", { className: "ss-w-tab-dot", "aria-hidden": "true" })
2854
+ count > 0 && /* @__PURE__ */ (0, import_jsx_runtime45.jsx)("span", { className: "ss-w-tab-count", children: count }),
2855
+ dots[tab] && /* @__PURE__ */ (0, import_jsx_runtime45.jsx)("span", { className: "ss-w-tab-dot", "aria-hidden": "true" })
2831
2856
  ]
2832
2857
  },
2833
2858
  tab
@@ -2836,7 +2861,7 @@ function TabBar({ monitor, ui, matchCount, oddsCount }) {
2836
2861
  }
2837
2862
 
2838
2863
  // src/components/MonitorMatchCard.tsx
2839
- var import_jsx_runtime45 = require("react/jsx-runtime");
2864
+ var import_jsx_runtime46 = require("react/jsx-runtime");
2840
2865
  function chipSelection(row, matchId, conversationId) {
2841
2866
  const chip = row.market;
2842
2867
  if (!chip || !chip.addToSlipEnabled || typeof chip.matchOddsId !== "number" || typeof chip.price !== "number") return null;
@@ -2859,63 +2884,63 @@ function MonitorMatchCard({ match, promotedPins, monitor, ui, slip }) {
2859
2884
  const otherRows = match.statRows.filter((row) => !isPromoted(row, promotedPins));
2860
2885
  const orderedRows = [...promotedRows, ...otherRows];
2861
2886
  const kickoff = match.phase === "preMatch" && match.kickoffUtc ? ui.bettingKickoff(match.kickoffUtc) : void 0;
2862
- return /* @__PURE__ */ (0, import_jsx_runtime45.jsxs)("div", { className: "ss-w-mon", children: [
2863
- /* @__PURE__ */ (0, import_jsx_runtime45.jsxs)("div", { className: "ss-w-mon-top", children: [
2864
- live && /* @__PURE__ */ (0, import_jsx_runtime45.jsxs)("span", { className: "ss-w-fandash-live-pill", children: [
2865
- /* @__PURE__ */ (0, import_jsx_runtime45.jsx)("span", { className: "ss-w-fandash-live-dot", "aria-hidden": "true" }),
2887
+ return /* @__PURE__ */ (0, import_jsx_runtime46.jsxs)("div", { className: "ss-w-mon", children: [
2888
+ /* @__PURE__ */ (0, import_jsx_runtime46.jsxs)("div", { className: "ss-w-mon-top", children: [
2889
+ live && /* @__PURE__ */ (0, import_jsx_runtime46.jsxs)("span", { className: "ss-w-fandash-live-pill", children: [
2890
+ /* @__PURE__ */ (0, import_jsx_runtime46.jsx)("span", { className: "ss-w-fandash-live-dot", "aria-hidden": "true" }),
2866
2891
  ui.liveLabel
2867
2892
  ] }),
2868
- match.phase === "fullTime" && /* @__PURE__ */ (0, import_jsx_runtime45.jsx)("span", { className: "ss-w-mon-pill", children: ui.fullTimeLabel }),
2869
- kickoff && /* @__PURE__ */ (0, import_jsx_runtime45.jsxs)("span", { className: "ss-w-mon-pill", children: [
2893
+ match.phase === "fullTime" && /* @__PURE__ */ (0, import_jsx_runtime46.jsx)("span", { className: "ss-w-mon-pill", children: ui.fullTimeLabel }),
2894
+ kickoff && /* @__PURE__ */ (0, import_jsx_runtime46.jsxs)("span", { className: "ss-w-mon-pill", children: [
2870
2895
  kickoff.dayLabel,
2871
2896
  " \xB7 ",
2872
2897
  kickoff.time
2873
2898
  ] }),
2874
- live && match.minuteLabel && /* @__PURE__ */ (0, import_jsx_runtime45.jsx)("span", { className: "ss-w-mon-min", children: match.minuteLabel }),
2875
- match.competitionName && /* @__PURE__ */ (0, import_jsx_runtime45.jsx)("span", { className: "ss-w-mon-comp", children: match.competitionName }),
2876
- /* @__PURE__ */ (0, import_jsx_runtime45.jsx)(PinToggle, { ui, monitor, pin: { kind: "match", matchId: match.matchId } })
2899
+ live && match.minuteLabel && /* @__PURE__ */ (0, import_jsx_runtime46.jsx)("span", { className: "ss-w-mon-min", children: match.minuteLabel }),
2900
+ match.competitionName && /* @__PURE__ */ (0, import_jsx_runtime46.jsx)("span", { className: "ss-w-mon-comp", children: match.competitionName }),
2901
+ /* @__PURE__ */ (0, import_jsx_runtime46.jsx)(PinToggle, { ui, monitor, pin: { kind: "match", matchId: match.matchId } })
2877
2902
  ] }),
2878
- /* @__PURE__ */ (0, import_jsx_runtime45.jsxs)("div", { className: "ss-w-mon-main", children: [
2879
- /* @__PURE__ */ (0, import_jsx_runtime45.jsxs)("span", { className: "ss-w-mon-side", children: [
2880
- /* @__PURE__ */ (0, import_jsx_runtime45.jsx)(Crest2, { kind: "team", url: match.homeCrestUrl ?? void 0, name: match.homeTeamName ?? void 0 }),
2881
- /* @__PURE__ */ (0, import_jsx_runtime45.jsx)("span", { className: "ss-w-mon-name", children: match.homeTeamName })
2903
+ /* @__PURE__ */ (0, import_jsx_runtime46.jsxs)("div", { className: "ss-w-mon-main", children: [
2904
+ /* @__PURE__ */ (0, import_jsx_runtime46.jsxs)("span", { className: "ss-w-mon-side", children: [
2905
+ /* @__PURE__ */ (0, import_jsx_runtime46.jsx)(Crest2, { kind: "team", url: match.homeCrestUrl ?? void 0, name: match.homeTeamName ?? void 0 }),
2906
+ /* @__PURE__ */ (0, import_jsx_runtime46.jsx)("span", { className: "ss-w-mon-name", children: match.homeTeamName })
2882
2907
  ] }),
2883
- match.phase === "preMatch" ? /* @__PURE__ */ (0, import_jsx_runtime45.jsx)("span", { className: "ss-w-mon-vs", children: "vs" }) : /* @__PURE__ */ (0, import_jsx_runtime45.jsxs)("span", { className: "ss-w-mon-score", children: [
2908
+ match.phase === "preMatch" ? /* @__PURE__ */ (0, import_jsx_runtime46.jsx)("span", { className: "ss-w-mon-vs", children: "vs" }) : /* @__PURE__ */ (0, import_jsx_runtime46.jsxs)("span", { className: "ss-w-mon-score", children: [
2884
2909
  match.homeScore,
2885
- /* @__PURE__ */ (0, import_jsx_runtime45.jsx)("i", { children: "\u2013" }),
2910
+ /* @__PURE__ */ (0, import_jsx_runtime46.jsx)("i", { children: "\u2013" }),
2886
2911
  match.awayScore
2887
2912
  ] }),
2888
- /* @__PURE__ */ (0, import_jsx_runtime45.jsxs)("span", { className: "ss-w-mon-side ss-w-mon-side--away", children: [
2889
- /* @__PURE__ */ (0, import_jsx_runtime45.jsx)(Crest2, { kind: "team", url: match.awayCrestUrl ?? void 0, name: match.awayTeamName ?? void 0 }),
2890
- /* @__PURE__ */ (0, import_jsx_runtime45.jsx)("span", { className: "ss-w-mon-name", children: match.awayTeamName })
2913
+ /* @__PURE__ */ (0, import_jsx_runtime46.jsxs)("span", { className: "ss-w-mon-side ss-w-mon-side--away", children: [
2914
+ /* @__PURE__ */ (0, import_jsx_runtime46.jsx)(Crest2, { kind: "team", url: match.awayCrestUrl ?? void 0, name: match.awayTeamName ?? void 0 }),
2915
+ /* @__PURE__ */ (0, import_jsx_runtime46.jsx)("span", { className: "ss-w-mon-name", children: match.awayTeamName })
2891
2916
  ] })
2892
2917
  ] }),
2893
- scorers.length > 0 && /* @__PURE__ */ (0, import_jsx_runtime45.jsx)("div", { className: "ss-w-mon-scorers", children: scorers.map((e) => `${e.player ?? ""} ${e.minuteLabel}`).join(", ") }),
2894
- /* @__PURE__ */ (0, import_jsx_runtime45.jsx)("div", { className: "ss-w-mon-stats", children: orderedRows.map((row) => {
2918
+ scorers.length > 0 && /* @__PURE__ */ (0, import_jsx_runtime46.jsx)("div", { className: "ss-w-mon-scorers", children: scorers.map((e) => `${e.player ?? ""} ${e.minuteLabel}`).join(", ") }),
2919
+ /* @__PURE__ */ (0, import_jsx_runtime46.jsx)("div", { className: "ss-w-mon-stats", children: orderedRows.map((row) => {
2895
2920
  const total = row.homeNum + row.awayNum;
2896
2921
  const homePct = total > 0 ? row.homeNum / total * 75 : 0;
2897
2922
  const awayPct = total > 0 ? row.awayNum / total * 75 : 0;
2898
2923
  const promoted = isPromoted(row, promotedPins);
2899
2924
  const selection = chipSelection(row, match.matchId, slip.conversationId);
2900
- return /* @__PURE__ */ (0, import_jsx_runtime45.jsxs)("div", { className: promoted ? "ss-w-mon-stat ss-w-mon-pstrip" : "ss-w-mon-stat", children: [
2901
- /* @__PURE__ */ (0, import_jsx_runtime45.jsxs)("div", { className: "ss-w-mon-stat-row", children: [
2902
- /* @__PURE__ */ (0, import_jsx_runtime45.jsx)("span", { className: "ss-w-mon-stat-v ss-w-mon-stat-v--home", children: row.homeValue }),
2903
- /* @__PURE__ */ (0, import_jsx_runtime45.jsx)("span", { className: "ss-w-mon-stat-l", children: row.label }),
2904
- /* @__PURE__ */ (0, import_jsx_runtime45.jsx)("span", { className: "ss-w-mon-stat-v ss-w-mon-stat-v--away", children: row.awayValue })
2925
+ return /* @__PURE__ */ (0, import_jsx_runtime46.jsxs)("div", { className: promoted ? "ss-w-mon-stat ss-w-mon-pstrip" : "ss-w-mon-stat", children: [
2926
+ /* @__PURE__ */ (0, import_jsx_runtime46.jsxs)("div", { className: "ss-w-mon-stat-row", children: [
2927
+ /* @__PURE__ */ (0, import_jsx_runtime46.jsx)("span", { className: "ss-w-mon-stat-v ss-w-mon-stat-v--home", children: row.homeValue }),
2928
+ /* @__PURE__ */ (0, import_jsx_runtime46.jsx)("span", { className: "ss-w-mon-stat-l", children: row.label }),
2929
+ /* @__PURE__ */ (0, import_jsx_runtime46.jsx)("span", { className: "ss-w-mon-stat-v ss-w-mon-stat-v--away", children: row.awayValue })
2905
2930
  ] }),
2906
- /* @__PURE__ */ (0, import_jsx_runtime45.jsxs)("div", { className: "ss-w-mon-bar", children: [
2907
- /* @__PURE__ */ (0, import_jsx_runtime45.jsx)("b", { className: "ss-w-mon-bar-home", style: { width: `${homePct}%` } }),
2908
- /* @__PURE__ */ (0, import_jsx_runtime45.jsx)("i", { className: "ss-w-mon-bar-away", style: { width: `${awayPct}%` } })
2931
+ /* @__PURE__ */ (0, import_jsx_runtime46.jsxs)("div", { className: "ss-w-mon-bar", children: [
2932
+ /* @__PURE__ */ (0, import_jsx_runtime46.jsx)("b", { className: "ss-w-mon-bar-home", style: { width: `${homePct}%` } }),
2933
+ /* @__PURE__ */ (0, import_jsx_runtime46.jsx)("i", { className: "ss-w-mon-bar-away", style: { width: `${awayPct}%` } })
2909
2934
  ] }),
2910
- row.market && /* @__PURE__ */ (0, import_jsx_runtime45.jsxs)("div", { className: promoted ? "ss-w-mon-stat-mkt ss-w-mon-mkt" : "ss-w-mon-stat-mkt", children: [
2911
- /* @__PURE__ */ (0, import_jsx_runtime45.jsxs)("span", { children: [
2935
+ row.market && /* @__PURE__ */ (0, import_jsx_runtime46.jsxs)("div", { className: promoted ? "ss-w-mon-stat-mkt ss-w-mon-mkt" : "ss-w-mon-stat-mkt", children: [
2936
+ /* @__PURE__ */ (0, import_jsx_runtime46.jsxs)("span", { children: [
2912
2937
  row.market.marketLabel,
2913
2938
  " \xB7 ",
2914
2939
  row.market.selectionLabel
2915
2940
  ] }),
2916
- /* @__PURE__ */ (0, import_jsx_runtime45.jsxs)("span", { className: "ss-w-mon-stat-mkt-right", children: [
2917
- row.market.isSuspended ? /* @__PURE__ */ (0, import_jsx_runtime45.jsx)("span", { className: "ss-w-mon-susp", children: ui.suspendedLabel }) : typeof row.market.price === "number" && /* @__PURE__ */ (0, import_jsx_runtime45.jsx)("span", { className: "ss-w-mon-price", children: row.market.price.toFixed(2) }),
2918
- /* @__PURE__ */ (0, import_jsx_runtime45.jsx)(
2941
+ /* @__PURE__ */ (0, import_jsx_runtime46.jsxs)("span", { className: "ss-w-mon-stat-mkt-right", children: [
2942
+ row.market.isSuspended ? /* @__PURE__ */ (0, import_jsx_runtime46.jsx)("span", { className: "ss-w-mon-susp", children: ui.suspendedLabel }) : typeof row.market.price === "number" && /* @__PURE__ */ (0, import_jsx_runtime46.jsx)("span", { className: "ss-w-mon-price", children: row.market.price.toFixed(2) }),
2943
+ /* @__PURE__ */ (0, import_jsx_runtime46.jsx)(
2919
2944
  SlipButton,
2920
2945
  {
2921
2946
  selection,
@@ -2929,58 +2954,58 @@ function MonitorMatchCard({ match, promotedPins, monitor, ui, slip }) {
2929
2954
  ] })
2930
2955
  ] }, row.label);
2931
2956
  }) }),
2932
- match.status === "stale" && /* @__PURE__ */ (0, import_jsx_runtime45.jsx)("span", { className: "ss-w-mon-asof", children: ui.asOf(formatTime(match.asOfUtc)) }),
2933
- match.momentum.length > 0 && /* @__PURE__ */ (0, import_jsx_runtime45.jsxs)("div", { className: "ss-w-mon-mom", children: [
2934
- /* @__PURE__ */ (0, import_jsx_runtime45.jsxs)("div", { className: "ss-w-mon-stat-row", children: [
2935
- /* @__PURE__ */ (0, import_jsx_runtime45.jsx)("span", { className: "ss-w-mon-stat-v ss-w-mon-stat-v--home", children: typeof match.momentumHomePct === "number" ? `${match.momentumHomePct}%` : "" }),
2936
- /* @__PURE__ */ (0, import_jsx_runtime45.jsx)("span", { className: "ss-w-mon-stat-l", children: ui.momentumLabel }),
2937
- /* @__PURE__ */ (0, import_jsx_runtime45.jsx)("span", { className: "ss-w-mon-stat-v ss-w-mon-stat-v--away", children: typeof match.momentumHomePct === "number" ? `${100 - match.momentumHomePct}%` : "" })
2957
+ match.status === "stale" && /* @__PURE__ */ (0, import_jsx_runtime46.jsx)("span", { className: "ss-w-mon-asof", children: ui.asOf(formatTime(match.asOfUtc)) }),
2958
+ match.momentum.length > 0 && /* @__PURE__ */ (0, import_jsx_runtime46.jsxs)("div", { className: "ss-w-mon-mom", children: [
2959
+ /* @__PURE__ */ (0, import_jsx_runtime46.jsxs)("div", { className: "ss-w-mon-stat-row", children: [
2960
+ /* @__PURE__ */ (0, import_jsx_runtime46.jsx)("span", { className: "ss-w-mon-stat-v ss-w-mon-stat-v--home", children: typeof match.momentumHomePct === "number" ? `${match.momentumHomePct}%` : "" }),
2961
+ /* @__PURE__ */ (0, import_jsx_runtime46.jsx)("span", { className: "ss-w-mon-stat-l", children: ui.momentumLabel }),
2962
+ /* @__PURE__ */ (0, import_jsx_runtime46.jsx)("span", { className: "ss-w-mon-stat-v ss-w-mon-stat-v--away", children: typeof match.momentumHomePct === "number" ? `${100 - match.momentumHomePct}%` : "" })
2938
2963
  ] }),
2939
- /* @__PURE__ */ (0, import_jsx_runtime45.jsx)(MomentumWave, { points: match.momentum, clubIsHome: true })
2964
+ /* @__PURE__ */ (0, import_jsx_runtime46.jsx)(MomentumWave, { points: match.momentum, clubIsHome: true })
2940
2965
  ] }),
2941
- match.mainMarket && match.phase !== "fullTime" && /* @__PURE__ */ (0, import_jsx_runtime45.jsx)(MarketOddsCardList, { cards: [toMarketOddsVM(match.mainMarket)], ui, slip }),
2942
- match.phase === "fullTime" && /* @__PURE__ */ (0, import_jsx_runtime45.jsx)("div", { className: "ss-w-mon-grace", children: ui.graceNote })
2966
+ match.mainMarket && match.phase !== "fullTime" && /* @__PURE__ */ (0, import_jsx_runtime46.jsx)(MarketOddsCardList, { cards: [toMarketOddsVM(match.mainMarket)], ui, slip }),
2967
+ match.phase === "fullTime" && /* @__PURE__ */ (0, import_jsx_runtime46.jsx)("div", { className: "ss-w-mon-grace", children: ui.graceNote })
2943
2968
  ] });
2944
2969
  }
2945
2970
 
2946
2971
  // src/components/MonitorTabs.tsx
2947
- var import_jsx_runtime46 = require("react/jsx-runtime");
2972
+ var import_jsx_runtime47 = require("react/jsx-runtime");
2948
2973
  function ContextLine({ m, monitor, ui }) {
2949
2974
  const kick = m.kickoffUtc ? ui.bettingKickoff(m.kickoffUtc) : void 0;
2950
- return /* @__PURE__ */ (0, import_jsx_runtime46.jsxs)("div", { className: "ss-w-mk-ctx", children: [
2951
- /* @__PURE__ */ (0, import_jsx_runtime46.jsxs)("span", { className: "ss-w-mk-ctx-side", children: [
2952
- /* @__PURE__ */ (0, import_jsx_runtime46.jsx)(Crest2, { kind: "team", url: m.homeCrestUrl ?? void 0, name: m.homeTeamName ?? void 0 }),
2953
- /* @__PURE__ */ (0, import_jsx_runtime46.jsx)("span", { className: "ss-w-mon-name", children: m.homeTeamName })
2975
+ return /* @__PURE__ */ (0, import_jsx_runtime47.jsxs)("div", { className: "ss-w-mk-ctx", children: [
2976
+ /* @__PURE__ */ (0, import_jsx_runtime47.jsxs)("span", { className: "ss-w-mk-ctx-side", children: [
2977
+ /* @__PURE__ */ (0, import_jsx_runtime47.jsx)(Crest2, { kind: "team", url: m.homeCrestUrl ?? void 0, name: m.homeTeamName ?? void 0 }),
2978
+ /* @__PURE__ */ (0, import_jsx_runtime47.jsx)("span", { className: "ss-w-mon-name", children: m.homeTeamName })
2954
2979
  ] }),
2955
- m.phase === "preMatch" ? kick && /* @__PURE__ */ (0, import_jsx_runtime46.jsxs)("span", { className: "ss-w-mon-pill", children: [
2980
+ m.phase === "preMatch" ? kick && /* @__PURE__ */ (0, import_jsx_runtime47.jsxs)("span", { className: "ss-w-mon-pill", children: [
2956
2981
  kick.dayLabel,
2957
2982
  " ",
2958
2983
  kick.time
2959
- ] }) : typeof m.homeScore === "number" && /* @__PURE__ */ (0, import_jsx_runtime46.jsxs)("b", { children: [
2984
+ ] }) : typeof m.homeScore === "number" && /* @__PURE__ */ (0, import_jsx_runtime47.jsxs)("b", { children: [
2960
2985
  m.homeScore,
2961
2986
  "\u2013",
2962
2987
  m.awayScore
2963
2988
  ] }),
2964
- /* @__PURE__ */ (0, import_jsx_runtime46.jsxs)("span", { className: "ss-w-mk-ctx-side", children: [
2965
- /* @__PURE__ */ (0, import_jsx_runtime46.jsx)("span", { className: "ss-w-mon-name", children: m.awayTeamName }),
2966
- /* @__PURE__ */ (0, import_jsx_runtime46.jsx)(Crest2, { kind: "team", url: m.awayCrestUrl ?? void 0, name: m.awayTeamName ?? void 0 })
2989
+ /* @__PURE__ */ (0, import_jsx_runtime47.jsxs)("span", { className: "ss-w-mk-ctx-side", children: [
2990
+ /* @__PURE__ */ (0, import_jsx_runtime47.jsx)("span", { className: "ss-w-mon-name", children: m.awayTeamName }),
2991
+ /* @__PURE__ */ (0, import_jsx_runtime47.jsx)(Crest2, { kind: "team", url: m.awayCrestUrl ?? void 0, name: m.awayTeamName ?? void 0 })
2967
2992
  ] }),
2968
- m.minuteLabel && /* @__PURE__ */ (0, import_jsx_runtime46.jsx)("span", { className: "ss-w-mon-min", children: m.minuteLabel }),
2969
- /* @__PURE__ */ (0, import_jsx_runtime46.jsxs)("span", { className: "ss-w-mk-ctx-right", children: [
2970
- m.isSuspended && !m.isSettled && /* @__PURE__ */ (0, import_jsx_runtime46.jsx)("span", { className: "ss-w-mon-susp", children: ui.suspendedLabel }),
2971
- m.isSettled && /* @__PURE__ */ (0, import_jsx_runtime46.jsx)("span", { className: "ss-w-mon-pill", children: ui.fullTimeLabel }),
2972
- m.status === "stale" && /* @__PURE__ */ (0, import_jsx_runtime46.jsx)("span", { className: "ss-w-mon-asof", children: ui.asOf(new Date(m.asOfUtc).toLocaleTimeString([], { hour: "2-digit", minute: "2-digit" })) }),
2993
+ m.minuteLabel && /* @__PURE__ */ (0, import_jsx_runtime47.jsx)("span", { className: "ss-w-mon-min", children: m.minuteLabel }),
2994
+ /* @__PURE__ */ (0, import_jsx_runtime47.jsxs)("span", { className: "ss-w-mk-ctx-right", children: [
2995
+ m.isSuspended && !m.isSettled && /* @__PURE__ */ (0, import_jsx_runtime47.jsx)("span", { className: "ss-w-mon-susp", children: ui.suspendedLabel }),
2996
+ m.isSettled && /* @__PURE__ */ (0, import_jsx_runtime47.jsx)("span", { className: "ss-w-mon-pill", children: ui.fullTimeLabel }),
2997
+ m.status === "stale" && /* @__PURE__ */ (0, import_jsx_runtime47.jsx)("span", { className: "ss-w-mon-asof", children: ui.asOf(new Date(m.asOfUtc).toLocaleTimeString([], { hour: "2-digit", minute: "2-digit" })) }),
2973
2998
  (() => {
2974
2999
  const pin = monitor.pins.find((p) => p.key === m.key);
2975
- return pin ? /* @__PURE__ */ (0, import_jsx_runtime46.jsx)(PinToggle, { ui, monitor, pin }) : null;
3000
+ return pin ? /* @__PURE__ */ (0, import_jsx_runtime47.jsx)(PinToggle, { ui, monitor, pin }) : null;
2976
3001
  })()
2977
3002
  ] })
2978
3003
  ] });
2979
3004
  }
2980
3005
  function MatchesPanel({ monitor, ui, slip }) {
2981
3006
  const matches = (monitor.snapshot?.matches ?? []).filter((m) => monitor.pins.some((p) => p.kind === "match" && p.matchId === m.matchId));
2982
- if (matches.length === 0) return /* @__PURE__ */ (0, import_jsx_runtime46.jsx)("div", { className: "ss-w-mon-empty", children: ui.emptyMatchesTab });
2983
- return /* @__PURE__ */ (0, import_jsx_runtime46.jsx)("div", { className: "ss-w-mon-list", children: matches.map((m) => /* @__PURE__ */ (0, import_jsx_runtime46.jsx)(
3007
+ if (matches.length === 0) return /* @__PURE__ */ (0, import_jsx_runtime47.jsx)("div", { className: "ss-w-mon-empty", children: ui.emptyMatchesTab });
3008
+ return /* @__PURE__ */ (0, import_jsx_runtime47.jsx)("div", { className: "ss-w-mon-list", children: matches.map((m) => /* @__PURE__ */ (0, import_jsx_runtime47.jsx)(
2984
3009
  MonitorMatchCard,
2985
3010
  {
2986
3011
  match: m,
@@ -3004,10 +3029,10 @@ function withSinceViewMovement(vm, prev) {
3004
3029
  }
3005
3030
  function OddsPanel({ monitor, ui, slip }) {
3006
3031
  const markets = (monitor.snapshot?.markets ?? []).filter((m) => monitor.pins.some((p) => p.key === m.key));
3007
- if (markets.length === 0) return /* @__PURE__ */ (0, import_jsx_runtime46.jsx)("div", { className: "ss-w-mon-empty", children: ui.emptyOddsTab });
3008
- return /* @__PURE__ */ (0, import_jsx_runtime46.jsx)("div", { className: "ss-w-mon-list", children: markets.map((m) => /* @__PURE__ */ (0, import_jsx_runtime46.jsxs)("div", { className: "ss-w-mon-oddspin", "data-settled": m.isSettled || void 0, children: [
3009
- /* @__PURE__ */ (0, import_jsx_runtime46.jsx)(ContextLine, { m, monitor, ui }),
3010
- m.card && /* @__PURE__ */ (0, import_jsx_runtime46.jsx)(
3032
+ if (markets.length === 0) return /* @__PURE__ */ (0, import_jsx_runtime47.jsx)("div", { className: "ss-w-mon-empty", children: ui.emptyOddsTab });
3033
+ return /* @__PURE__ */ (0, import_jsx_runtime47.jsx)("div", { className: "ss-w-mon-list", children: markets.map((m) => /* @__PURE__ */ (0, import_jsx_runtime47.jsxs)("div", { className: "ss-w-mon-oddspin", "data-settled": m.isSettled || void 0, children: [
3034
+ /* @__PURE__ */ (0, import_jsx_runtime47.jsx)(ContextLine, { m, monitor, ui }),
3035
+ m.card && /* @__PURE__ */ (0, import_jsx_runtime47.jsx)(
3011
3036
  MarketOddsCardList,
3012
3037
  {
3013
3038
  cards: [withSinceViewMovement(toMarketOddsVM(m.card), monitor.lastViewedPrices[m.key])],
@@ -3016,17 +3041,17 @@ function OddsPanel({ monitor, ui, slip }) {
3016
3041
  inSlipIds: monitor.inSlip
3017
3042
  }
3018
3043
  ),
3019
- m.history && /* @__PURE__ */ (0, import_jsx_runtime46.jsx)(OddsMovementCardList, { cards: [toOddsMovementVM(m.history)], ui }),
3020
- !m.card && !m.history && /* @__PURE__ */ (0, import_jsx_runtime46.jsx)("div", { className: "ss-w-mon-empty-card", children: ui.oddsUnavailable })
3044
+ m.history && /* @__PURE__ */ (0, import_jsx_runtime47.jsx)(OddsMovementCardList, { cards: [toOddsMovementVM(m.history)], ui }),
3045
+ !m.card && !m.history && /* @__PURE__ */ (0, import_jsx_runtime47.jsx)("div", { className: "ss-w-mon-empty-card", children: ui.oddsUnavailable })
3021
3046
  ] }, m.key)) });
3022
3047
  }
3023
3048
 
3024
3049
  // src/components/ChatPanel.tsx
3025
- var import_jsx_runtime47 = require("react/jsx-runtime");
3050
+ var import_jsx_runtime48 = require("react/jsx-runtime");
3026
3051
  var FULLSCREEN_QUERY = "(max-width: 639px)";
3027
3052
  function useIsModal() {
3028
- const [modal, setModal] = (0, import_react20.useState)(false);
3029
- (0, import_react20.useEffect)(() => {
3053
+ const [modal, setModal] = (0, import_react21.useState)(false);
3054
+ (0, import_react21.useEffect)(() => {
3030
3055
  if (typeof window === "undefined" || typeof window.matchMedia !== "function") return;
3031
3056
  const mql = window.matchMedia(FULLSCREEN_QUERY);
3032
3057
  const sync = () => setModal(mql.matches);
@@ -3039,7 +3064,7 @@ function useIsModal() {
3039
3064
  function ChatPanel({ controller, ui, slip, onDashboardTap, monitor }) {
3040
3065
  const { state, close, stop, send } = controller;
3041
3066
  const isModal = useIsModal();
3042
- (0, import_react20.useEffect)(() => {
3067
+ (0, import_react21.useEffect)(() => {
3043
3068
  const onKey = (e) => {
3044
3069
  if (e.key === "Escape") close();
3045
3070
  };
@@ -3050,12 +3075,12 @@ function ChatPanel({ controller, ui, slip, onDashboardTap, monitor }) {
3050
3075
  monitor?.setActiveTab("chat");
3051
3076
  send(text);
3052
3077
  };
3053
- (0, import_react20.useEffect)(() => {
3078
+ (0, import_react21.useEffect)(() => {
3054
3079
  if (monitor && monitor.activeTab !== "chat" && state.isStreaming) monitor.markChatActivity();
3055
3080
  }, [monitor, state.isStreaming, state.messages.length]);
3056
- return /* @__PURE__ */ (0, import_jsx_runtime47.jsxs)("div", { className: "ss-w-panel", role: "dialog", "aria-modal": isModal, "aria-label": ui.chatDialogLabel, children: [
3057
- /* @__PURE__ */ (0, import_jsx_runtime47.jsx)(ChatHeader, { onClose: close, closeLabel: ui.closeChat }),
3058
- monitor && /* @__PURE__ */ (0, import_jsx_runtime47.jsx)(
3081
+ return /* @__PURE__ */ (0, import_jsx_runtime48.jsxs)("div", { className: "ss-w-panel", role: "dialog", "aria-modal": isModal, "aria-label": ui.chatDialogLabel, children: [
3082
+ /* @__PURE__ */ (0, import_jsx_runtime48.jsx)(ChatHeader, { onClose: close, closeLabel: ui.closeChat, logoUrl: ui.logoUrl, headerTitle: ui.headerTitle }),
3083
+ monitor && /* @__PURE__ */ (0, import_jsx_runtime48.jsx)(
3059
3084
  TabBar,
3060
3085
  {
3061
3086
  monitor,
@@ -3064,16 +3089,17 @@ function ChatPanel({ controller, ui, slip, onDashboardTap, monitor }) {
3064
3089
  oddsCount: monitor.pins.filter((p) => p.kind !== "match").length
3065
3090
  }
3066
3091
  ),
3067
- /* @__PURE__ */ (0, import_jsx_runtime47.jsx)(
3092
+ /* @__PURE__ */ (0, import_jsx_runtime48.jsx)(
3068
3093
  "div",
3069
3094
  {
3070
3095
  style: !monitor || monitor.activeTab === "chat" ? { display: "contents" } : { position: "absolute", inset: 0, visibility: "hidden", display: "flex", flexDirection: "column" },
3071
- children: /* @__PURE__ */ (0, import_jsx_runtime47.jsx)(MessageList, { controller, ui, slip, onDashboardTap, monitor })
3096
+ children: /* @__PURE__ */ (0, import_jsx_runtime48.jsx)(MessageList, { controller, ui, slip, onDashboardTap, monitor })
3072
3097
  }
3073
3098
  ),
3074
- monitor && monitor.activeTab === "matches" && /* @__PURE__ */ (0, import_jsx_runtime47.jsx)(MatchesPanel, { monitor, ui, slip }),
3075
- monitor && monitor.activeTab === "odds" && /* @__PURE__ */ (0, import_jsx_runtime47.jsx)(OddsPanel, { monitor, ui, slip }),
3076
- /* @__PURE__ */ (0, import_jsx_runtime47.jsx)(ChatInput, { placeholder: ui.placeholder, streaming: state.isStreaming, onSend: handleSend, onStop: stop, stopLabel: ui.stopResponse, sendLabel: ui.sendMessage })
3099
+ monitor && monitor.activeTab === "matches" && /* @__PURE__ */ (0, import_jsx_runtime48.jsx)(MatchesPanel, { monitor, ui, slip }),
3100
+ monitor && monitor.activeTab === "odds" && /* @__PURE__ */ (0, import_jsx_runtime48.jsx)(OddsPanel, { monitor, ui, slip }),
3101
+ /* @__PURE__ */ (0, import_jsx_runtime48.jsx)(ChatInput, { placeholder: ui.placeholder, streaming: state.isStreaming, onSend: handleSend, onStop: stop, stopLabel: ui.stopResponse, sendLabel: ui.sendMessage }),
3102
+ ui.attribution !== false ? /* @__PURE__ */ (0, import_jsx_runtime48.jsx)("div", { className: "ss-w-attribution", children: "Powered by SensibleStats" }) : null
3077
3103
  ] });
3078
3104
  }
3079
3105
 
@@ -3119,7 +3145,7 @@ var WIDGET_CSS = `.ss-w-root { all: revert; }
3119
3145
  .ss-w-root[data-ss-w-pos="right"] .ss-w-fab-wrap { right: var(--ss-w-offset-x); }
3120
3146
  .ss-w-root[data-ss-w-pos="left"] .ss-w-fab-wrap { left: var(--ss-w-offset-x); align-items: flex-start; }
3121
3147
  .ss-w-fab { width: 56px; height: 56px; border: none; border-radius: 50%; background: var(--ss-w-nav); color: #fff; cursor: pointer; display: grid; place-items: center; box-shadow: 0 6px 20px rgba(0,0,0,.28); }
3122
- .ss-w-fab-mark { width: 30px; height: 30px; display: block; }
3148
+ .ss-w-fab-mark { width: 30px; height: 30px; display: block; object-fit: contain; }
3123
3149
  .ss-w-greeting { max-width: 240px; display: flex; align-items: flex-start; background: var(--ss-w-panel); color: var(--ss-w-ink); border: 1px solid var(--ss-w-line); border-radius: 12px; box-shadow: 0 4px 14px rgba(0,0,0,.14); }
3124
3150
  .ss-w-greeting-body { flex: 1; min-width: 0; text-align: left; background: none; border: none; color: inherit; font: inherit; cursor: pointer; padding: 9px 4px 9px 12px; }
3125
3151
  .ss-w-greeting-x { flex: none; background: none; border: none; color: var(--ss-w-faint); cursor: pointer; font-size: 17px; line-height: 1; padding: 7px 9px 0 2px; }
@@ -3136,7 +3162,7 @@ var WIDGET_CSS = `.ss-w-root { all: revert; }
3136
3162
  .ss-w-root[data-ss-w-pos="left"] .ss-w-panel { inset: 0; width: auto; height: auto; border: none; border-radius: 0; }
3137
3163
  }
3138
3164
  .ss-w-header { display: flex; align-items: center; gap: 8px; padding: 12px 14px; border-bottom: 1px solid var(--ss-w-line); }
3139
- .ss-w-header-mark { width: 18px; height: 18px; display: block; }
3165
+ .ss-w-header-mark { width: 18px; height: 18px; display: block; object-fit: contain; }
3140
3166
  .ss-w-header-title { font-weight: 660; }
3141
3167
  .ss-w-close { margin-left: auto; background: none; border: none; color: var(--ss-w-faint); cursor: pointer; font-size: 16px; display: grid; place-items: center; }
3142
3168
 
@@ -3361,6 +3387,7 @@ var WIDGET_CSS = `.ss-w-root { all: revert; }
3361
3387
  }
3362
3388
  .ss-w-send { width: 36px; height: 36px; flex: none; border: none; border-radius: 50%; background: var(--ss-w-accent); color: #fff; cursor: pointer; display: grid; place-items: center; font-size: 16px; }
3363
3389
  .ss-w-stop-glyph { width: 11px; height: 11px; background: currentColor; border-radius: 2px; }
3390
+ .ss-w-attribution { flex: 0 0 auto; padding: 6px 12px 8px; text-align: center; font-size: 11px; color: var(--ss-w-faint); }
3364
3391
 
3365
3392
  /* add to slip */
3366
3393
  .ss-w-slip { position: relative; display: flex; }
@@ -3456,6 +3483,7 @@ var WIDGET_CSS = `.ss-w-root { all: revert; }
3456
3483
  /* club fan pre-match dashboard */
3457
3484
  .ss-w-fandash { display: flex; flex-direction: column; gap: 10px; padding: 4px 0; }
3458
3485
  .ss-w-fandash-greeting { font-size: 14px; font-weight: 600; line-height: 1.3; color: var(--ss-w-ink); }
3486
+ .ss-w-fandash-greeting--lead { font-weight: 400; }
3459
3487
  .ss-w-fandash-cards { display: flex; flex-direction: column; gap: 8px; }
3460
3488
 
3461
3489
  /* Shared card chrome -- a plain <div> for [data] cards, a <button> for [prefill] cards. Both
@@ -3828,7 +3856,7 @@ var WIDGET_CSS = `.ss-w-root { all: revert; }
3828
3856
  `;
3829
3857
 
3830
3858
  // src/StatsWidget.tsx
3831
- var import_jsx_runtime48 = require("react/jsx-runtime");
3859
+ var import_jsx_runtime49 = require("react/jsx-runtime");
3832
3860
  function buildClient(props) {
3833
3861
  try {
3834
3862
  if ("client" in props && props.client) {
@@ -3853,16 +3881,16 @@ function injectStyles(root) {
3853
3881
  function StatsWidget(props) {
3854
3882
  const injectedClient = "client" in props ? props.client : void 0;
3855
3883
  const cfg = props.config;
3856
- const built = (0, import_react21.useMemo)(() => buildClient(props), [injectedClient, cfg?.operatorId, cfg?.publicKey, cfg?.baseUrl]);
3857
- const ui = (0, import_react21.useMemo)(() => normalizeUi(props.config ?? { operatorId: "", publicKey: "" }), [props.config]);
3858
- const rootRef = (0, import_react21.useRef)(null);
3884
+ const built = (0, import_react22.useMemo)(() => buildClient(props), [injectedClient, cfg?.operatorId, cfg?.publicKey, cfg?.baseUrl]);
3885
+ const ui = (0, import_react22.useMemo)(() => normalizeUi(props.config ?? { operatorId: "", publicKey: "" }), [props.config]);
3886
+ const rootRef = (0, import_react22.useRef)(null);
3859
3887
  const controller = useChatStream(built?.conversation ?? emptyConversation(), ui.starters, built ? ui.greetingMessage : void 0);
3860
3888
  const monitor = useLiveMonitor({
3861
3889
  getLiveMonitor: (pins) => built ? built.conversation.getLiveMonitor(pins) : Promise.resolve(null),
3862
3890
  storageKey: `ss-w-pins:${cfg?.operatorId ?? ""}:${cfg?.userContext?.operatorUserId ?? "anon"}`,
3863
3891
  isOpen: controller.state.isOpen
3864
3892
  });
3865
- const slip = (0, import_react21.useMemo)(
3893
+ const slip = (0, import_react22.useMemo)(
3866
3894
  () => {
3867
3895
  const handler = props.config?.onAddToSlip;
3868
3896
  return {
@@ -3885,23 +3913,24 @@ function StatsWidget(props) {
3885
3913
  },
3886
3914
  [props.config?.onAddToSlip, controller.state.conversationId, built, monitor.markInSlip]
3887
3915
  );
3888
- const onDashboardTap = (0, import_react21.useMemo)(
3916
+ const onDashboardTap = (0, import_react22.useMemo)(
3889
3917
  () => built ? createDashboardTapSignal((input) => built.conversation.sendSignal(input)) : void 0,
3890
3918
  [built]
3891
3919
  );
3892
- (0, import_react21.useEffect)(() => {
3920
+ (0, import_react22.useEffect)(() => {
3893
3921
  if (!built || !ui.injectStyles) return;
3894
3922
  const node = rootRef.current?.getRootNode();
3895
3923
  if (node) injectStyles(node);
3896
3924
  }, [built, ui.injectStyles]);
3897
3925
  if (!built) return null;
3898
3926
  const attrs = themeAttrs(ui);
3899
- return /* @__PURE__ */ (0, import_jsx_runtime48.jsx)("div", { ref: rootRef, className: "ss-w-root", "data-ss-w-theme": attrs["data-ss-w-theme"], "data-ss-w-pos": attrs["data-ss-w-pos"], style: attrs.style, children: controller.state.isOpen ? /* @__PURE__ */ (0, import_jsx_runtime48.jsx)(ChatPanel, { controller, ui, slip, onDashboardTap, monitor: monitor.enabled ? monitor : void 0 }) : /* @__PURE__ */ (0, import_jsx_runtime48.jsx)(
3927
+ return /* @__PURE__ */ (0, import_jsx_runtime49.jsx)("div", { ref: rootRef, className: "ss-w-root", "data-ss-w-theme": attrs["data-ss-w-theme"], "data-ss-w-pos": attrs["data-ss-w-pos"], style: attrs.style, children: controller.state.isOpen ? /* @__PURE__ */ (0, import_jsx_runtime49.jsx)(ChatPanel, { controller, ui, slip, onDashboardTap, monitor: monitor.enabled ? monitor : void 0 }) : /* @__PURE__ */ (0, import_jsx_runtime49.jsx)(
3900
3928
  ChatFab,
3901
3929
  {
3902
3930
  label: ui.launcherLabel,
3903
3931
  greeting: ui.greeting,
3904
3932
  popupText: controller.state.popupText,
3933
+ logoUrl: ui.logoUrl,
3905
3934
  onOpen: controller.open,
3906
3935
  onDismissPopup: controller.dismissPopup,
3907
3936
  dismissLabel: ui.dismissGreeting