@sensiblestats/widget-react 0.33.3 → 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.js CHANGED
@@ -165,6 +165,12 @@ function normalizeUi(cfg) {
165
165
  return {
166
166
  theme: cfg.theme ?? "auto",
167
167
  accent: cfg.accent,
168
+ logoUrl: cfg.logoUrl,
169
+ headerTitle: cfg.headerTitle,
170
+ cta: cfg.cta,
171
+ surface: cfg.surface,
172
+ ink: cfg.ink,
173
+ attribution: cfg.attribution ?? true,
168
174
  position: cfg.position ?? "right",
169
175
  offset: { x: cfg.offset?.x ?? 20, y: cfg.offset?.y ?? 20 },
170
176
  radius: cfg.radius ?? 16,
@@ -303,6 +309,14 @@ function themeAttrs(ui) {
303
309
  "--ss-w-radius": `${ui.radius}px`
304
310
  };
305
311
  if (ui.accent) style["--ss-w-accent"] = ui.accent;
312
+ if (ui.cta) style["--ss-w-cta"] = ui.cta;
313
+ if (ui.surface) style["--ss-w-panel"] = ui.surface;
314
+ if (ui.ink) style["--ss-w-ink"] = ui.ink;
315
+ if (ui.surface && ui.ink) {
316
+ style["--ss-w-bubble"] = "color-mix(in srgb, var(--ss-w-ink) 5%, var(--ss-w-panel))";
317
+ style["--ss-w-line"] = "color-mix(in srgb, var(--ss-w-ink) 12%, var(--ss-w-panel))";
318
+ style["--ss-w-faint"] = "color-mix(in srgb, var(--ss-w-ink) 55%, var(--ss-w-panel))";
319
+ }
306
320
  return { "data-ss-w-theme": ui.theme, "data-ss-w-pos": ui.position, style };
307
321
  }
308
322
 
@@ -1144,6 +1158,9 @@ function useLiveMonitor(opts) {
1144
1158
  };
1145
1159
  }
1146
1160
 
1161
+ // src/components/BrandMark.tsx
1162
+ import { useState as useState2 } from "react";
1163
+
1147
1164
  // src/assets/logo.ts
1148
1165
  var SS_LOGO_DATA_URI = "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAjoAAAI6CAYAAAAuSOLAAAAAAXNSR0IArs4c6QAAAJplWElmTU0AKgAAAAgAAwESAAMAAAABAAEAAAExAAIAAAA9AAAAModpAAQAAAABAAAAcAAAAABBZG9iZSBQaG90b3Nob3AgMjYuMTAgKDIwMjUwNzMwLm0uMzE2NiAwN2IxMjM0KSAgKE1hY2ludG9zaCkAAAADoAEAAwAAAAEAAQAAoAIABAAAAAEAAAI6oAMABAAAAAEAAAI6AAAAACwGtVwAAAQwaVRYdFhNTDpjb20uYWRvYmUueG1wAAAAAAA8eDp4bXBtZXRhIHhtbG5zOng9ImFkb2JlOm5zOm1ldGEvIiB4OnhtcHRrPSJYTVAgQ29yZSA2LjAuMCI+CiAgIDxyZGY6UkRGIHhtbG5zOnJkZj0iaHR0cDovL3d3dy53My5vcmcvMTk5OS8wMi8yMi1yZGYtc3ludGF4LW5zIyI+CiAgICAgIDxyZGY6RGVzY3JpcHRpb24gcmRmOmFib3V0PSIiCiAgICAgICAgICAgIHhtbG5zOnhtcE1NPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvbW0vIgogICAgICAgICAgICB4bWxuczpzdFJlZj0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL3NUeXBlL1Jlc291cmNlUmVmIyIKICAgICAgICAgICAgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIgogICAgICAgICAgICB4bWxuczp0aWZmPSJodHRwOi8vbnMuYWRvYmUuY29tL3RpZmYvMS4wLyI+CiAgICAgICAgIDx4bXBNTTpEb2N1bWVudElEPnhtcC5kaWQ6QzBGRTM5NjM5NEJEMTFGMEJGNjZEMjUyN0U0MzU5RUM8L3htcE1NOkRvY3VtZW50SUQ+CiAgICAgICAgIDx4bXBNTTpJbnN0YW5jZUlEPnhtcC5paWQ6QzBGRTM5NjI5NEJEMTFGMEJGNjZEMjUyN0U0MzU5RUM8L3htcE1NOkluc3RhbmNlSUQ+CiAgICAgICAgIDx4bXBNTTpEZXJpdmVkRnJvbSByZGY6cGFyc2VUeXBlPSJSZXNvdXJjZSI+CiAgICAgICAgICAgIDxzdFJlZjppbnN0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";
1149
1166
 
@@ -1181,35 +1198,43 @@ function DashboardIcon({ name }) {
1181
1198
  return /* @__PURE__ */ jsx("span", { className: "ss-w-dash-emoji", "aria-hidden": "true", children: glyph });
1182
1199
  }
1183
1200
 
1201
+ // src/components/BrandMark.tsx
1202
+ import { jsx as jsx2 } from "react/jsx-runtime";
1203
+ function BrandMark({ logoUrl, className }) {
1204
+ const [failed, setFailed] = useState2(false);
1205
+ if (!logoUrl || failed) return /* @__PURE__ */ jsx2(SsMark, { className });
1206
+ return /* @__PURE__ */ jsx2("img", { className, src: logoUrl, alt: "", "aria-hidden": "true", onError: () => setFailed(true) });
1207
+ }
1208
+
1184
1209
  // src/components/GreetingBubble.tsx
1185
- import { jsx as jsx2, jsxs } from "react/jsx-runtime";
1210
+ import { jsx as jsx3, jsxs } from "react/jsx-runtime";
1186
1211
  function GreetingBubble({ text, onOpen, onDismiss, dismissLabel = "Dismiss" }) {
1187
1212
  return /* @__PURE__ */ jsxs("div", { className: "ss-w-greeting", role: "note", children: [
1188
- /* @__PURE__ */ jsx2("button", { type: "button", className: "ss-w-greeting-body", onClick: onOpen, children: text }),
1189
- onDismiss ? /* @__PURE__ */ jsx2("button", { type: "button", className: "ss-w-greeting-x", "aria-label": dismissLabel, onClick: onDismiss, children: "\xD7" }) : null
1213
+ /* @__PURE__ */ jsx3("button", { type: "button", className: "ss-w-greeting-body", onClick: onOpen, children: text }),
1214
+ onDismiss ? /* @__PURE__ */ jsx3("button", { type: "button", className: "ss-w-greeting-x", "aria-label": dismissLabel, onClick: onDismiss, children: "\xD7" }) : null
1190
1215
  ] });
1191
1216
  }
1192
1217
 
1193
1218
  // src/components/ChatFab.tsx
1194
- import { jsx as jsx3, jsxs as jsxs2 } from "react/jsx-runtime";
1195
- function ChatFab({ label, greeting, popupText, onOpen, onDismissPopup, dismissLabel = "Dismiss" }) {
1219
+ import { jsx as jsx4, jsxs as jsxs2 } from "react/jsx-runtime";
1220
+ function ChatFab({ label, greeting, popupText, logoUrl, onOpen, onDismissPopup, dismissLabel = "Dismiss" }) {
1196
1221
  const bubble = popupText ?? greeting;
1197
1222
  return /* @__PURE__ */ jsxs2("div", { className: "ss-w-fab-wrap", children: [
1198
- bubble ? /* @__PURE__ */ jsx3(GreetingBubble, { text: bubble, onOpen, onDismiss: popupText ? onDismissPopup : void 0, dismissLabel }) : null,
1199
- /* @__PURE__ */ jsx3("button", { type: "button", className: "ss-w-fab", "aria-label": label, onClick: onOpen, children: /* @__PURE__ */ jsx3(SsMark, { className: "ss-w-fab-mark" }) })
1223
+ bubble ? /* @__PURE__ */ jsx4(GreetingBubble, { text: bubble, onOpen, onDismiss: popupText ? onDismissPopup : void 0, dismissLabel }) : null,
1224
+ /* @__PURE__ */ jsx4("button", { type: "button", className: "ss-w-fab", "aria-label": label, onClick: onOpen, children: /* @__PURE__ */ jsx4(BrandMark, { logoUrl, className: "ss-w-fab-mark" }) })
1200
1225
  ] });
1201
1226
  }
1202
1227
 
1203
1228
  // src/components/ChatPanel.tsx
1204
- import { useEffect as useEffect8, useState as useState15 } from "react";
1229
+ import { useEffect as useEffect8, useState as useState16 } from "react";
1205
1230
 
1206
1231
  // src/components/ChatHeader.tsx
1207
- import { jsx as jsx4, jsxs as jsxs3 } from "react/jsx-runtime";
1208
- function ChatHeader({ onClose, closeLabel = "Close chat" }) {
1232
+ import { jsx as jsx5, jsxs as jsxs3 } from "react/jsx-runtime";
1233
+ function ChatHeader({ onClose, closeLabel = "Close chat", logoUrl, headerTitle }) {
1209
1234
  return /* @__PURE__ */ jsxs3("header", { className: "ss-w-header", children: [
1210
- /* @__PURE__ */ jsx4(SsMark, { className: "ss-w-header-mark" }),
1211
- /* @__PURE__ */ jsx4("span", { className: "ss-w-header-title", children: "SensibleStats" }),
1212
- /* @__PURE__ */ jsx4("button", { type: "button", className: "ss-w-close", "aria-label": closeLabel, onClick: onClose, children: /* @__PURE__ */ jsx4(CloseIcon, {}) })
1235
+ /* @__PURE__ */ jsx5(BrandMark, { logoUrl, className: "ss-w-header-mark" }),
1236
+ /* @__PURE__ */ jsx5("span", { className: "ss-w-header-title", children: headerTitle ?? "SensibleStats" }),
1237
+ /* @__PURE__ */ jsx5("button", { type: "button", className: "ss-w-close", "aria-label": closeLabel, onClick: onClose, children: /* @__PURE__ */ jsx5(CloseIcon, {}) })
1213
1238
  ] });
1214
1239
  }
1215
1240
 
@@ -1219,21 +1244,21 @@ import { useEffect as useEffect7, useRef as useRef5 } from "react";
1219
1244
  // src/components/Markdown.tsx
1220
1245
  import ReactMarkdown from "react-markdown";
1221
1246
  import remarkGfm from "remark-gfm";
1222
- import { jsx as jsx5 } from "react/jsx-runtime";
1247
+ import { jsx as jsx6 } from "react/jsx-runtime";
1223
1248
  var components = {
1224
- a: ({ children, href }) => /* @__PURE__ */ jsx5("a", { href, target: "_blank", rel: "noopener noreferrer", className: "ss-w-md-link", children }),
1225
- table: ({ children }) => /* @__PURE__ */ jsx5("div", { className: "ss-w-table-wrap", children: /* @__PURE__ */ jsx5("table", { className: "ss-w-md-table", children }) }),
1226
- ul: ({ children }) => /* @__PURE__ */ jsx5("ul", { className: "ss-w-md-ul", children }),
1227
- ol: ({ children }) => /* @__PURE__ */ jsx5("ol", { className: "ss-w-md-ol", children }),
1228
- code: ({ children }) => /* @__PURE__ */ jsx5("code", { className: "ss-w-md-code", children })
1249
+ a: ({ children, href }) => /* @__PURE__ */ jsx6("a", { href, target: "_blank", rel: "noopener noreferrer", className: "ss-w-md-link", children }),
1250
+ table: ({ children }) => /* @__PURE__ */ jsx6("div", { className: "ss-w-table-wrap", children: /* @__PURE__ */ jsx6("table", { className: "ss-w-md-table", children }) }),
1251
+ ul: ({ children }) => /* @__PURE__ */ jsx6("ul", { className: "ss-w-md-ul", children }),
1252
+ ol: ({ children }) => /* @__PURE__ */ jsx6("ol", { className: "ss-w-md-ol", children }),
1253
+ code: ({ children }) => /* @__PURE__ */ jsx6("code", { className: "ss-w-md-code", children })
1229
1254
  };
1230
1255
  function Markdown({ text }) {
1231
- return /* @__PURE__ */ jsx5("div", { className: "ss-w-md", children: /* @__PURE__ */ jsx5(ReactMarkdown, { remarkPlugins: [remarkGfm], components, children: text }) });
1256
+ return /* @__PURE__ */ jsx6("div", { className: "ss-w-md", children: /* @__PURE__ */ jsx6(ReactMarkdown, { remarkPlugins: [remarkGfm], components, children: text }) });
1232
1257
  }
1233
1258
 
1234
1259
  // src/components/EntityCardList.tsx
1235
- import { useState as useState2 } from "react";
1236
- import { jsx as jsx6, jsxs as jsxs4 } from "react/jsx-runtime";
1260
+ import { useState as useState3 } from "react";
1261
+ import { jsx as jsx7, jsxs as jsxs4 } from "react/jsx-runtime";
1237
1262
  var MAX_VISIBLE = 3;
1238
1263
  var RECORD_RE = /^(\d+)-(\d+)-(\d+)$/;
1239
1264
  function initials(name) {
@@ -1243,7 +1268,7 @@ function shortSeason(season) {
1243
1268
  return season.replace(/\d{4}/g, (year) => year.slice(2));
1244
1269
  }
1245
1270
  function Crest({ image, label }) {
1246
- return /* @__PURE__ */ jsx6(
1271
+ return /* @__PURE__ */ jsx7(
1247
1272
  "span",
1248
1273
  {
1249
1274
  className: "ss-w-ecard-crest",
@@ -1255,33 +1280,33 @@ function Crest({ image, label }) {
1255
1280
  function FormBar({ w, d, l }) {
1256
1281
  if (w + d + l === 0) return null;
1257
1282
  return /* @__PURE__ */ jsxs4("span", { className: "ss-w-form", "aria-hidden": "true", children: [
1258
- w > 0 ? /* @__PURE__ */ jsx6("span", { className: "ss-w-form-w", style: { flexGrow: w } }) : null,
1259
- d > 0 ? /* @__PURE__ */ jsx6("span", { className: "ss-w-form-d", style: { flexGrow: d } }) : null,
1260
- l > 0 ? /* @__PURE__ */ jsx6("span", { className: "ss-w-form-l", style: { flexGrow: l } }) : null
1283
+ w > 0 ? /* @__PURE__ */ jsx7("span", { className: "ss-w-form-w", style: { flexGrow: w } }) : null,
1284
+ d > 0 ? /* @__PURE__ */ jsx7("span", { className: "ss-w-form-d", style: { flexGrow: d } }) : null,
1285
+ l > 0 ? /* @__PURE__ */ jsx7("span", { className: "ss-w-form-l", style: { flexGrow: l } }) : null
1261
1286
  ] });
1262
1287
  }
1263
1288
  function StatCellView({ s }) {
1264
1289
  const m = RECORD_RE.exec(s.value);
1265
1290
  if (m) {
1266
1291
  return /* @__PURE__ */ jsxs4("div", { className: "ss-w-ecard-cell", children: [
1267
- /* @__PURE__ */ jsx6("span", { className: "ss-w-ecard-cval", children: /* @__PURE__ */ jsx6(FormBar, { w: Number(m[1]), d: Number(m[2]), l: Number(m[3]) }) }),
1268
- /* @__PURE__ */ jsx6("span", { className: "ss-w-ecard-clabel", children: s.value })
1292
+ /* @__PURE__ */ jsx7("span", { className: "ss-w-ecard-cval", children: /* @__PURE__ */ jsx7(FormBar, { w: Number(m[1]), d: Number(m[2]), l: Number(m[3]) }) }),
1293
+ /* @__PURE__ */ jsx7("span", { className: "ss-w-ecard-clabel", children: s.value })
1269
1294
  ] });
1270
1295
  }
1271
1296
  return /* @__PURE__ */ jsxs4("div", { className: "ss-w-ecard-cell", children: [
1272
- /* @__PURE__ */ jsx6("span", { className: "ss-w-ecard-cval", children: s.value }),
1273
- /* @__PURE__ */ jsx6("span", { className: "ss-w-ecard-clabel", children: s.label })
1297
+ /* @__PURE__ */ jsx7("span", { className: "ss-w-ecard-cval", children: s.value }),
1298
+ /* @__PURE__ */ jsx7("span", { className: "ss-w-ecard-clabel", children: s.label })
1274
1299
  ] });
1275
1300
  }
1276
1301
  function StatStrip({ stats }) {
1277
1302
  if (stats.length === 0) return null;
1278
1303
  const cols = Math.min(stats.length, 4);
1279
- return /* @__PURE__ */ jsx6("div", { className: "ss-w-ecard-strip", style: { gridTemplateColumns: `repeat(${cols}, 1fr)` }, children: stats.map((s) => /* @__PURE__ */ jsx6(StatCellView, { s }, s.label + s.value)) });
1304
+ return /* @__PURE__ */ jsx7("div", { className: "ss-w-ecard-strip", style: { gridTemplateColumns: `repeat(${cols}, 1fr)` }, children: stats.map((s) => /* @__PURE__ */ jsx7(StatCellView, { s }, s.label + s.value)) });
1280
1305
  }
1281
1306
  function CardHeader({ c, showScopeCrest }) {
1282
1307
  const onlyScope = c.scopes.length === 1 ? c.scopes[0] : null;
1283
1308
  return /* @__PURE__ */ jsxs4("div", { className: "ss-w-ecard-hd", children: [
1284
- /* @__PURE__ */ jsx6(
1309
+ /* @__PURE__ */ jsx7(
1285
1310
  "span",
1286
1311
  {
1287
1312
  className: c.kind === "team" ? "ss-w-thumb ss-w-team" : "ss-w-thumb",
@@ -1290,17 +1315,17 @@ function CardHeader({ c, showScopeCrest }) {
1290
1315
  }
1291
1316
  ),
1292
1317
  /* @__PURE__ */ jsxs4("span", { className: "ss-w-ecard-idtext", children: [
1293
- /* @__PURE__ */ jsx6("span", { className: "ss-w-nm", children: c.name }),
1294
- c.sub ? /* @__PURE__ */ jsx6("span", { className: "ss-w-sub", children: c.sub }) : null
1318
+ /* @__PURE__ */ jsx7("span", { className: "ss-w-nm", children: c.name }),
1319
+ c.sub ? /* @__PURE__ */ jsx7("span", { className: "ss-w-sub", children: c.sub }) : null
1295
1320
  ] }),
1296
1321
  /* @__PURE__ */ jsxs4("span", { className: "ss-w-ecard-meta", children: [
1297
- showScopeCrest && onlyScope?.image ? /* @__PURE__ */ jsx6(Crest, { image: onlyScope.image, label: onlyScope.label }) : null,
1298
- c.season ? /* @__PURE__ */ jsx6("span", { className: "ss-w-ecard-season", children: shortSeason(c.season) }) : null
1322
+ showScopeCrest && onlyScope?.image ? /* @__PURE__ */ jsx7(Crest, { image: onlyScope.image, label: onlyScope.label }) : null,
1323
+ c.season ? /* @__PURE__ */ jsx7("span", { className: "ss-w-ecard-season", children: shortSeason(c.season) }) : null
1299
1324
  ] })
1300
1325
  ] });
1301
1326
  }
1302
1327
  function ScopeTabs({ scopes, active, onSelect }) {
1303
- return /* @__PURE__ */ jsx6("div", { className: "ss-w-ecard-scopes", role: "tablist", children: scopes.map((s, i) => /* @__PURE__ */ jsx6(
1328
+ return /* @__PURE__ */ jsx7("div", { className: "ss-w-ecard-scopes", role: "tablist", children: scopes.map((s, i) => /* @__PURE__ */ jsx7(
1304
1329
  "button",
1305
1330
  {
1306
1331
  type: "button",
@@ -1310,46 +1335,46 @@ function ScopeTabs({ scopes, active, onSelect }) {
1310
1335
  "aria-label": s.label,
1311
1336
  title: s.label,
1312
1337
  onClick: () => onSelect(i),
1313
- children: s.image ? /* @__PURE__ */ jsx6(Crest, { image: s.image }) : s.label
1338
+ children: s.image ? /* @__PURE__ */ jsx7(Crest, { image: s.image }) : s.label
1314
1339
  },
1315
1340
  String(s.competitionId ?? "all")
1316
1341
  )) });
1317
1342
  }
1318
1343
  function EntityCardItem({ c }) {
1319
- const [active, setActive] = useState2(0);
1344
+ const [active, setActive] = useState3(0);
1320
1345
  const hasBody = c.scopes.length > 0;
1321
1346
  if (!hasBody) {
1322
- return /* @__PURE__ */ jsx6("div", { className: "ss-w-ecard ss-w-ecard-bare", "data-kind": c.kind, children: /* @__PURE__ */ jsx6(CardHeader, { c, showScopeCrest: false }) });
1347
+ return /* @__PURE__ */ jsx7("div", { className: "ss-w-ecard ss-w-ecard-bare", "data-kind": c.kind, children: /* @__PURE__ */ jsx7(CardHeader, { c, showScopeCrest: false }) });
1323
1348
  }
1324
1349
  const multi = c.scopes.length > 1;
1325
1350
  const scope = c.scopes[multi ? c.scopes[active] ? active : 0 : 0];
1326
1351
  return /* @__PURE__ */ jsxs4("div", { className: "ss-w-ecard", "data-kind": c.kind, children: [
1327
- /* @__PURE__ */ jsx6(CardHeader, { c, showScopeCrest: !multi }),
1328
- multi ? /* @__PURE__ */ jsx6(ScopeTabs, { scopes: c.scopes, active, onSelect: setActive }) : null,
1329
- /* @__PURE__ */ jsx6(StatStrip, { stats: scope.stats })
1352
+ /* @__PURE__ */ jsx7(CardHeader, { c, showScopeCrest: !multi }),
1353
+ multi ? /* @__PURE__ */ jsx7(ScopeTabs, { scopes: c.scopes, active, onSelect: setActive }) : null,
1354
+ /* @__PURE__ */ jsx7(StatStrip, { stats: scope.stats })
1330
1355
  ] });
1331
1356
  }
1332
1357
  function EntityCardList({ cards, disabled, showLessLabel = "Show less", showMoreLabel = (n) => `Show ${n} more` }) {
1333
- const [expanded, setExpanded] = useState2(false);
1358
+ const [expanded, setExpanded] = useState3(false);
1334
1359
  if (cards.length === 0) return null;
1335
1360
  const visible = expanded ? cards : cards.slice(0, MAX_VISIBLE);
1336
1361
  const overflow = cards.length - MAX_VISIBLE;
1337
1362
  return /* @__PURE__ */ jsxs4("div", { className: "ss-w-cards", children: [
1338
- visible.map((c) => /* @__PURE__ */ jsx6(EntityCardItem, { c }, c.id)),
1339
- overflow > 0 ? /* @__PURE__ */ jsx6("button", { type: "button", className: "ss-w-cards-more", disabled, onClick: () => setExpanded((v) => !v), children: expanded ? showLessLabel : showMoreLabel(overflow) }) : null
1363
+ visible.map((c) => /* @__PURE__ */ jsx7(EntityCardItem, { c }, c.id)),
1364
+ overflow > 0 ? /* @__PURE__ */ jsx7("button", { type: "button", className: "ss-w-cards-more", disabled, onClick: () => setExpanded((v) => !v), children: expanded ? showLessLabel : showMoreLabel(overflow) }) : null
1340
1365
  ] });
1341
1366
  }
1342
1367
 
1343
1368
  // src/components/BettingInsightList.tsx
1344
- import { useState as useState6 } from "react";
1369
+ import { useState as useState7 } from "react";
1345
1370
 
1346
1371
  // src/components/AddToSlipButton.tsx
1347
- import { useCallback as useCallback3, useState as useState3 } from "react";
1372
+ import { useCallback as useCallback3, useState as useState4 } from "react";
1348
1373
  import { isAddToSlipResult } from "@sensiblestats/widget-sdk";
1349
1374
 
1350
1375
  // src/components/Toast.tsx
1351
1376
  import { useEffect as useEffect4 } from "react";
1352
- import { jsx as jsx7 } from "react/jsx-runtime";
1377
+ import { jsx as jsx8 } from "react/jsx-runtime";
1353
1378
  var DISMISS_MS = 4e3;
1354
1379
  function Toast({ toast, onDismiss }) {
1355
1380
  useEffect4(() => {
@@ -1358,11 +1383,11 @@ function Toast({ toast, onDismiss }) {
1358
1383
  return () => clearTimeout(timer);
1359
1384
  }, [toast, onDismiss]);
1360
1385
  if (!toast) return null;
1361
- return /* @__PURE__ */ jsx7("div", { className: `ss-w-toast ss-w-toast-${toast.kind}`, role: "status", "aria-live": "polite", children: toast.text });
1386
+ return /* @__PURE__ */ jsx8("div", { className: `ss-w-toast ss-w-toast-${toast.kind}`, role: "status", "aria-live": "polite", children: toast.text });
1362
1387
  }
1363
1388
 
1364
1389
  // src/components/AddToSlipButton.tsx
1365
- import { jsx as jsx8, jsxs as jsxs5 } from "react/jsx-runtime";
1390
+ import { jsx as jsx9, jsxs as jsxs5 } from "react/jsx-runtime";
1366
1391
  function withTimeout(value) {
1367
1392
  return Promise.race([
1368
1393
  value,
@@ -1370,9 +1395,9 @@ function withTimeout(value) {
1370
1395
  ]);
1371
1396
  }
1372
1397
  function SlipButton({ selection, shownOdds, marketName, slip, ui }) {
1373
- const [pending, setPending] = useState3(false);
1374
- const [settled, setSettled] = useState3(false);
1375
- const [toast, setToast] = useState3(null);
1398
+ const [pending, setPending] = useState4(false);
1399
+ const [settled, setSettled] = useState4(false);
1400
+ const [toast, setToast] = useState4(null);
1376
1401
  const dismiss = useCallback3(() => setToast(null), []);
1377
1402
  const handler = slip.onAddToSlip;
1378
1403
  if (!ui || !handler || !selection) return null;
@@ -1397,7 +1422,7 @@ function SlipButton({ selection, shownOdds, marketName, slip, ui }) {
1397
1422
  }
1398
1423
  };
1399
1424
  return /* @__PURE__ */ jsxs5("div", { className: "ss-w-slip", children: [
1400
- /* @__PURE__ */ jsx8(
1425
+ /* @__PURE__ */ jsx9(
1401
1426
  "button",
1402
1427
  {
1403
1428
  type: "button",
@@ -1407,16 +1432,16 @@ function SlipButton({ selection, shownOdds, marketName, slip, ui }) {
1407
1432
  children: settled ? ui.inSlip : ui.addToSlip
1408
1433
  }
1409
1434
  ),
1410
- /* @__PURE__ */ jsx8(Toast, { toast, onDismiss: dismiss })
1435
+ /* @__PURE__ */ jsx9(Toast, { toast, onDismiss: dismiss })
1411
1436
  ] });
1412
1437
  }
1413
1438
  function AddToSlipButton({ it, slip, ui }) {
1414
1439
  const selection = it.addToSlipEnabled ? toSlipSelection(it, slip.conversationId) : null;
1415
- return /* @__PURE__ */ jsx8(SlipButton, { selection, shownOdds: it.odds ?? "", marketName: it.market, slip, ui });
1440
+ return /* @__PURE__ */ jsx9(SlipButton, { selection, shownOdds: it.odds ?? "", marketName: it.market, slip, ui });
1416
1441
  }
1417
1442
 
1418
1443
  // src/components/OddsMovementBadge.tsx
1419
- import { jsx as jsx9, jsxs as jsxs6 } from "react/jsx-runtime";
1444
+ import { jsx as jsx10, jsxs as jsxs6 } from "react/jsx-runtime";
1420
1445
  function OddsMovementBadge({
1421
1446
  previous,
1422
1447
  current,
@@ -1430,32 +1455,32 @@ function OddsMovementBadge({
1430
1455
  // Strikethrough is invisible to screen readers, so the whole was/now/direction sentence rides
1431
1456
  // on one aria-label and the visual glyphs are hidden from the accessibility tree.
1432
1457
  /* @__PURE__ */ jsxs6("span", { className: "ss-w-move", role: "img", "aria-label": label, children: [
1433
- /* @__PURE__ */ jsx9("span", { className: "ss-w-move-prev", "aria-hidden": "true", children: previous }),
1434
- /* @__PURE__ */ jsx9("span", { className: "ss-w-move-arrow", "aria-hidden": "true", children: direction === "shortened" ? "\u25BC" : "\u25B2" })
1458
+ /* @__PURE__ */ jsx10("span", { className: "ss-w-move-prev", "aria-hidden": "true", children: previous }),
1459
+ /* @__PURE__ */ jsx10("span", { className: "ss-w-move-arrow", "aria-hidden": "true", children: direction === "shortened" ? "\u25BC" : "\u25B2" })
1435
1460
  ] })
1436
1461
  );
1437
1462
  }
1438
1463
 
1439
1464
  // src/components/Crest.tsx
1440
- import { useState as useState4 } from "react";
1441
- import { jsx as jsx10 } from "react/jsx-runtime";
1465
+ import { useState as useState5 } from "react";
1466
+ import { jsx as jsx11 } from "react/jsx-runtime";
1442
1467
  function initials2(name) {
1443
1468
  return (name ?? "").trim().slice(0, 1).toUpperCase() || "?";
1444
1469
  }
1445
1470
  function Crest2({ url, name, kind }) {
1446
1471
  const cls = kind === "comp" ? "ss-w-bi-comp-logo" : "ss-w-bi-crest";
1447
- const [failed, setFailed] = useState4(false);
1472
+ const [failed, setFailed] = useState5(false);
1448
1473
  if (url && !failed) {
1449
- return /* @__PURE__ */ jsx10("img", { className: cls, src: url, alt: "", "aria-hidden": "true", onError: () => setFailed(true) });
1474
+ return /* @__PURE__ */ jsx11("img", { className: cls, src: url, alt: "", "aria-hidden": "true", onError: () => setFailed(true) });
1450
1475
  }
1451
- return /* @__PURE__ */ jsx10("span", { className: `${cls} ss-w-bi-crest-mono`, "aria-hidden": "true", children: initials2(name) });
1476
+ return /* @__PURE__ */ jsx11("span", { className: `${cls} ss-w-bi-crest-mono`, "aria-hidden": "true", children: initials2(name) });
1452
1477
  }
1453
1478
 
1454
1479
  // src/components/PinToggle.tsx
1455
- import { useCallback as useCallback4, useState as useState5 } from "react";
1456
- import { jsx as jsx11, jsxs as jsxs7 } from "react/jsx-runtime";
1480
+ import { useCallback as useCallback4, useState as useState6 } from "react";
1481
+ import { jsx as jsx12, jsxs as jsxs7 } from "react/jsx-runtime";
1457
1482
  function PinToggle({ pin, monitor, ui }) {
1458
- const [toast, setToast] = useState5(null);
1483
+ const [toast, setToast] = useState6(null);
1459
1484
  const dismiss = useCallback4(() => setToast(null), []);
1460
1485
  if (!monitor || !monitor.enabled) return null;
1461
1486
  const key = pinKey(pin);
@@ -1470,7 +1495,7 @@ function PinToggle({ pin, monitor, ui }) {
1470
1495
  }
1471
1496
  };
1472
1497
  return /* @__PURE__ */ jsxs7("div", { className: "ss-w-pin-wrap", children: [
1473
- /* @__PURE__ */ jsx11(
1498
+ /* @__PURE__ */ jsx12(
1474
1499
  "button",
1475
1500
  {
1476
1501
  type: "button",
@@ -1479,46 +1504,46 @@ function PinToggle({ pin, monitor, ui }) {
1479
1504
  "aria-pressed": pinned,
1480
1505
  "aria-label": pinned ? labels.unpin : labels.pin,
1481
1506
  onClick,
1482
- children: /* @__PURE__ */ jsx11("svg", { viewBox: "0 0 16 16", "aria-hidden": "true", children: /* @__PURE__ */ jsx11("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" }) })
1507
+ children: /* @__PURE__ */ jsx12("svg", { viewBox: "0 0 16 16", "aria-hidden": "true", children: /* @__PURE__ */ jsx12("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" }) })
1483
1508
  }
1484
1509
  ),
1485
- /* @__PURE__ */ jsx11(Toast, { toast, onDismiss: dismiss })
1510
+ /* @__PURE__ */ jsx12(Toast, { toast, onDismiss: dismiss })
1486
1511
  ] });
1487
1512
  }
1488
1513
 
1489
1514
  // src/components/BettingInsightList.tsx
1490
- import { Fragment, jsx as jsx12, jsxs as jsxs8 } from "react/jsx-runtime";
1515
+ import { Fragment, jsx as jsx13, jsxs as jsxs8 } from "react/jsx-runtime";
1491
1516
  function StatRows({ stats }) {
1492
- return /* @__PURE__ */ jsx12("div", { className: "ss-w-bi-rows", children: stats.map((s) => /* @__PURE__ */ jsxs8("div", { className: "ss-w-bi-row", children: [
1493
- /* @__PURE__ */ jsx12("span", { className: "ss-w-bi-row-lbl", children: s.label }),
1494
- /* @__PURE__ */ jsx12("span", { className: "ss-w-bi-row-num", children: s.value })
1517
+ return /* @__PURE__ */ jsx13("div", { className: "ss-w-bi-rows", children: stats.map((s) => /* @__PURE__ */ jsxs8("div", { className: "ss-w-bi-row", children: [
1518
+ /* @__PURE__ */ jsx13("span", { className: "ss-w-bi-row-lbl", children: s.label }),
1519
+ /* @__PURE__ */ jsx13("span", { className: "ss-w-bi-row-num", children: s.value })
1495
1520
  ] }, `${s.label}:${s.value}`)) });
1496
1521
  }
1497
1522
  function ScopedStats({ scopes }) {
1498
- const [active, setActive] = useState6(0);
1523
+ const [active, setActive] = useState7(0);
1499
1524
  const current = scopes[active] ?? scopes[0] ?? { key: "", label: "", stats: [] };
1500
1525
  return /* @__PURE__ */ jsxs8("div", { className: "ss-w-bi-scoped", children: [
1501
- /* @__PURE__ */ jsx12("div", { className: "ss-w-bi-scopes", role: "group", children: scopes.map((s, i) => /* @__PURE__ */ jsx12("button", { type: "button", className: "ss-w-bi-chip", "aria-pressed": i === active, onClick: () => setActive(i), children: s.label }, s.key)) }),
1502
- /* @__PURE__ */ jsx12(StatRows, { stats: current.stats }, current.key)
1526
+ /* @__PURE__ */ jsx13("div", { className: "ss-w-bi-scopes", role: "group", children: scopes.map((s, i) => /* @__PURE__ */ jsx13("button", { type: "button", className: "ss-w-bi-chip", "aria-pressed": i === active, onClick: () => setActive(i), children: s.label }, s.key)) }),
1527
+ /* @__PURE__ */ jsx13(StatRows, { stats: current.stats }, current.key)
1503
1528
  ] });
1504
1529
  }
1505
1530
  function hasStatsContent(it) {
1506
1531
  return !!it.scopes && it.scopes.length >= 2 || it.stats.length > 0;
1507
1532
  }
1508
1533
  function ReasonStrip({ it, ui }) {
1509
- const [open, setOpen] = useState6(false);
1534
+ const [open, setOpen] = useState7(false);
1510
1535
  const hasScopes = !!it.scopes && it.scopes.length >= 2;
1511
1536
  const hasStats = hasStatsContent(it);
1512
1537
  const hasText = !!it.text;
1513
1538
  if (!hasText && !hasStats) return null;
1514
1539
  const expandable = hasStats || (it.text?.length ?? 0) > 90;
1515
1540
  return /* @__PURE__ */ jsxs8("div", { className: "ss-w-bi-reason", children: [
1516
- /* @__PURE__ */ jsx12("span", { className: "ss-w-bi-chart", "aria-hidden": "true" }),
1541
+ /* @__PURE__ */ jsx13("span", { className: "ss-w-bi-chart", "aria-hidden": "true" }),
1517
1542
  /* @__PURE__ */ jsxs8("div", { className: "ss-w-bi-reason-body", children: [
1518
- hasText ? /* @__PURE__ */ jsx12("p", { className: `ss-w-bi-text${open ? "" : " ss-w-bi-text-clamp"}`, children: it.text }) : null,
1519
- open && hasStats ? hasScopes ? /* @__PURE__ */ jsx12(ScopedStats, { scopes: it.scopes }) : /* @__PURE__ */ jsx12(StatRows, { stats: it.stats }) : null
1543
+ hasText ? /* @__PURE__ */ jsx13("p", { className: `ss-w-bi-text${open ? "" : " ss-w-bi-text-clamp"}`, children: it.text }) : null,
1544
+ open && hasStats ? hasScopes ? /* @__PURE__ */ jsx13(ScopedStats, { scopes: it.scopes }) : /* @__PURE__ */ jsx13(StatRows, { stats: it.stats }) : null
1520
1545
  ] }),
1521
- expandable ? /* @__PURE__ */ jsx12(
1546
+ expandable ? /* @__PURE__ */ jsx13(
1522
1547
  "button",
1523
1548
  {
1524
1549
  type: "button",
@@ -1526,7 +1551,7 @@ function ReasonStrip({ it, ui }) {
1526
1551
  "aria-expanded": open,
1527
1552
  "aria-label": open ? ui?.hideStats ?? "Hide stats" : ui?.showStats ?? "Show stats",
1528
1553
  onClick: () => setOpen((v) => !v),
1529
- children: /* @__PURE__ */ jsx12("span", { className: `ss-w-bi-arrow${open ? " ss-w-bi-arrow-open" : ""}`, "aria-hidden": "true" })
1554
+ children: /* @__PURE__ */ jsx13("span", { className: `ss-w-bi-arrow${open ? " ss-w-bi-arrow-open" : ""}`, "aria-hidden": "true" })
1530
1555
  }
1531
1556
  ) : null
1532
1557
  ] });
@@ -1534,18 +1559,18 @@ function ReasonStrip({ it, ui }) {
1534
1559
  function CardFixture({ it }) {
1535
1560
  if (it.homeTeamName && it.awayTeamName) {
1536
1561
  return /* @__PURE__ */ jsxs8(Fragment, { children: [
1537
- /* @__PURE__ */ jsx12(Crest2, { kind: "team", url: it.homeCrest, name: it.homeTeamName }),
1538
- /* @__PURE__ */ jsx12("span", { className: "ss-w-bi-team", children: it.homeTeamName }),
1539
- /* @__PURE__ */ jsx12("span", { className: "ss-w-bi-vs", "aria-hidden": "true", children: "vs" }),
1540
- /* @__PURE__ */ jsx12("span", { className: "ss-w-bi-team", children: it.awayTeamName }),
1541
- /* @__PURE__ */ jsx12(Crest2, { kind: "team", url: it.awayCrest, name: it.awayTeamName })
1562
+ /* @__PURE__ */ jsx13(Crest2, { kind: "team", url: it.homeCrest, name: it.homeTeamName }),
1563
+ /* @__PURE__ */ jsx13("span", { className: "ss-w-bi-team", children: it.homeTeamName }),
1564
+ /* @__PURE__ */ jsx13("span", { className: "ss-w-bi-vs", "aria-hidden": "true", children: "vs" }),
1565
+ /* @__PURE__ */ jsx13("span", { className: "ss-w-bi-team", children: it.awayTeamName }),
1566
+ /* @__PURE__ */ jsx13(Crest2, { kind: "team", url: it.awayCrest, name: it.awayTeamName })
1542
1567
  ] });
1543
1568
  }
1544
- if (it.fixture) return /* @__PURE__ */ jsx12("span", { className: "ss-w-bi-fixture-txt", children: it.fixture });
1569
+ if (it.fixture) return /* @__PURE__ */ jsx13("span", { className: "ss-w-bi-fixture-txt", children: it.fixture });
1545
1570
  if (it.competition) {
1546
1571
  return /* @__PURE__ */ jsxs8(Fragment, { children: [
1547
- /* @__PURE__ */ jsx12(Crest2, { kind: "comp", url: it.competitionCrest, name: it.competition }),
1548
- /* @__PURE__ */ jsx12("span", { className: "ss-w-bi-comp", children: it.competition })
1572
+ /* @__PURE__ */ jsx13(Crest2, { kind: "comp", url: it.competitionCrest, name: it.competition }),
1573
+ /* @__PURE__ */ jsx13("span", { className: "ss-w-bi-comp", children: it.competition })
1549
1574
  ] });
1550
1575
  }
1551
1576
  return null;
@@ -1560,36 +1585,36 @@ function InsightCard({ it, ui, slip, monitor }) {
1560
1585
  const showHeader = leftIsFixture || !!it.competition || live || !!kickoff || showPin;
1561
1586
  return /* @__PURE__ */ jsxs8("div", { className: "ss-w-binsight", children: [
1562
1587
  showHeader ? /* @__PURE__ */ jsxs8("div", { className: "ss-w-bi-header", children: [
1563
- /* @__PURE__ */ jsx12("span", { className: "ss-w-bi-header-left", children: /* @__PURE__ */ jsx12(CardFixture, { it }) }),
1588
+ /* @__PURE__ */ jsx13("span", { className: "ss-w-bi-header-left", children: /* @__PURE__ */ jsx13(CardFixture, { it }) }),
1564
1589
  /* @__PURE__ */ jsxs8("span", { className: "ss-w-bi-header-right", children: [
1565
1590
  live ? /* @__PURE__ */ jsxs8("span", { className: "ss-w-bi-live", children: [
1566
- /* @__PURE__ */ jsx12("span", { className: "ss-w-bi-live-dot", "aria-hidden": "true" }),
1591
+ /* @__PURE__ */ jsx13("span", { className: "ss-w-bi-live-dot", "aria-hidden": "true" }),
1567
1592
  ui?.liveLabel ?? "Live"
1568
1593
  ] }) : null,
1569
- compInMeta ? /* @__PURE__ */ jsx12("span", { className: "ss-w-bi-comp-meta", title: it.competition, children: /* @__PURE__ */ jsx12(Crest2, { kind: "comp", url: it.competitionCrest, name: it.competition }) }) : null,
1594
+ compInMeta ? /* @__PURE__ */ jsx13("span", { className: "ss-w-bi-comp-meta", title: it.competition, children: /* @__PURE__ */ jsx13(Crest2, { kind: "comp", url: it.competitionCrest, name: it.competition }) }) : null,
1570
1595
  kickoff ? /* @__PURE__ */ jsxs8("span", { className: "ss-w-bi-kick", children: [
1571
1596
  kickoff.dayLabel,
1572
1597
  " ",
1573
1598
  kickoff.time
1574
1599
  ] }) : null,
1575
- showPin && ui ? /* @__PURE__ */ jsx12(PinToggle, { ui, monitor, pin: { kind: "match", matchId: it.matchId } }) : null
1600
+ showPin && ui ? /* @__PURE__ */ jsx13(PinToggle, { ui, monitor, pin: { kind: "match", matchId: it.matchId } }) : null
1576
1601
  ] })
1577
1602
  ] }) : null,
1578
1603
  /* @__PURE__ */ jsxs8("div", { className: "ss-w-bi-action-row", children: [
1579
1604
  /* @__PURE__ */ jsxs8("span", { className: "ss-w-bi-pick", children: [
1580
- /* @__PURE__ */ jsx12("span", { className: "ss-w-bi-market", children: it.market }),
1605
+ /* @__PURE__ */ jsx13("span", { className: "ss-w-bi-market", children: it.market }),
1581
1606
  it.selection ? /* @__PURE__ */ jsxs8(Fragment, { children: [
1582
- /* @__PURE__ */ jsx12("span", { className: "ss-w-bi-pick-dot", "aria-hidden": "true", children: "\xB7" }),
1583
- /* @__PURE__ */ jsx12("span", { className: "ss-w-bi-sel", children: it.selection })
1607
+ /* @__PURE__ */ jsx13("span", { className: "ss-w-bi-pick-dot", "aria-hidden": "true", children: "\xB7" }),
1608
+ /* @__PURE__ */ jsx13("span", { className: "ss-w-bi-sel", children: it.selection })
1584
1609
  ] }) : null
1585
1610
  ] }),
1586
1611
  it.odds ? /* @__PURE__ */ jsxs8("span", { className: "ss-w-bi-odds", children: [
1587
- /* @__PURE__ */ jsx12("b", { children: it.odds }),
1588
- /* @__PURE__ */ jsx12(OddsMovementBadge, { previous: it.previousOdds, current: it.odds, direction: it.movementDirection, ui }),
1589
- it.bookmaker ? /* @__PURE__ */ jsx12("span", { className: "ss-w-bi-book", children: it.bookmaker }) : null
1612
+ /* @__PURE__ */ jsx13("b", { children: it.odds }),
1613
+ /* @__PURE__ */ jsx13(OddsMovementBadge, { previous: it.previousOdds, current: it.odds, direction: it.movementDirection, ui }),
1614
+ it.bookmaker ? /* @__PURE__ */ jsx13("span", { className: "ss-w-bi-book", children: it.bookmaker }) : null
1590
1615
  ] }) : null,
1591
- /* @__PURE__ */ jsx12(AddToSlipButton, { it, slip, ui }),
1592
- showPin && ui ? /* @__PURE__ */ jsx12(
1616
+ /* @__PURE__ */ jsx13(AddToSlipButton, { it, slip, ui }),
1617
+ showPin && ui ? /* @__PURE__ */ jsx13(
1593
1618
  PinToggle,
1594
1619
  {
1595
1620
  ui,
@@ -1605,48 +1630,48 @@ function InsightCard({ it, ui, slip, monitor }) {
1605
1630
  }
1606
1631
  ) : null
1607
1632
  ] }),
1608
- it.isMarketFloor ? /* @__PURE__ */ jsx12("span", { className: "ss-w-bi-floor", children: ui?.marketFloorLabel ?? "Market price \xB7 not a value pick" }) : null,
1609
- /* @__PURE__ */ jsx12(ReasonStrip, { it, ui }),
1610
- it.disclaimer ? /* @__PURE__ */ jsx12("p", { className: "ss-w-bi-disc", children: it.disclaimer }) : null
1633
+ it.isMarketFloor ? /* @__PURE__ */ jsx13("span", { className: "ss-w-bi-floor", children: ui?.marketFloorLabel ?? "Market price \xB7 not a value pick" }) : null,
1634
+ /* @__PURE__ */ jsx13(ReasonStrip, { it, ui }),
1635
+ it.disclaimer ? /* @__PURE__ */ jsx13("p", { className: "ss-w-bi-disc", children: it.disclaimer }) : null
1611
1636
  ] });
1612
1637
  }
1613
1638
  function BettingInsightList({ insights, ui, slip, monitor }) {
1614
1639
  if (!insights || insights.length === 0) return null;
1615
- return /* @__PURE__ */ jsx12("div", { className: "ss-w-binsights", children: insights.map((it) => /* @__PURE__ */ jsx12(InsightCard, { it, ui, slip, monitor }, it.id)) });
1640
+ return /* @__PURE__ */ jsx13("div", { className: "ss-w-binsights", children: insights.map((it) => /* @__PURE__ */ jsx13(InsightCard, { it, ui, slip, monitor }, it.id)) });
1616
1641
  }
1617
1642
 
1618
1643
  // src/components/MarketOddsCardList.tsx
1619
- import { useState as useState7 } from "react";
1620
- import { Fragment as Fragment2, jsx as jsx13, jsxs as jsxs9 } from "react/jsx-runtime";
1644
+ import { useState as useState8 } from "react";
1645
+ import { Fragment as Fragment2, jsx as jsx14, jsxs as jsxs9 } from "react/jsx-runtime";
1621
1646
  function OddsRow({ vm, row, ui, slip, inSlipIds }) {
1622
1647
  const selection = vm.addToSlipEnabled ? marketOddsRowToSlipSelection(vm, row, slip.conversationId) : null;
1623
1648
  const inSlip = !!inSlipIds && row.matchOddsId != null && !!inSlipIds[row.matchOddsId];
1624
1649
  return /* @__PURE__ */ jsxs9("div", { className: "ss-w-mo-row", children: [
1625
- /* @__PURE__ */ jsx13("span", { className: "ss-w-mo-sel", children: row.selection }),
1626
- /* @__PURE__ */ jsx13(OddsMovementBadge, { previous: row.previousOdds, current: row.odds, direction: row.movementDirection, ui }),
1627
- /* @__PURE__ */ jsx13("span", { className: "ss-w-mo-price", children: row.odds }),
1650
+ /* @__PURE__ */ jsx14("span", { className: "ss-w-mo-sel", children: row.selection }),
1651
+ /* @__PURE__ */ jsx14(OddsMovementBadge, { previous: row.previousOdds, current: row.odds, direction: row.movementDirection, ui }),
1652
+ /* @__PURE__ */ jsx14("span", { className: "ss-w-mo-price", children: row.odds }),
1628
1653
  inSlip && ui ? /* @__PURE__ */ jsxs9("span", { className: "ss-w-mon-inslip", children: [
1629
1654
  "\u2713 ",
1630
1655
  ui.inSlipLabel
1631
1656
  ] }) : null,
1632
- /* @__PURE__ */ jsx13(SlipButton, { selection, shownOdds: row.odds, marketName: vm.market, slip, ui })
1657
+ /* @__PURE__ */ jsx14(SlipButton, { selection, shownOdds: row.odds, marketName: vm.market, slip, ui })
1633
1658
  ] });
1634
1659
  }
1635
1660
  function MarketOddsCard({ vm, ui, slip, monitor, inSlipIds }) {
1636
- const [open, setOpen] = useState7(false);
1661
+ const [open, setOpen] = useState8(false);
1637
1662
  const kickoff = vm.kickoffUtc && ui?.bettingKickoff ? ui.bettingKickoff(vm.kickoffUtc) : void 0;
1638
1663
  const hasNamedTeams = !!vm.homeTeamName && !!vm.awayTeamName;
1639
1664
  const showPin = !!monitor && vm.pinEnabled;
1640
1665
  const showHeader = !!vm.competition || vm.isLive || !!kickoff || showPin;
1641
1666
  return /* @__PURE__ */ jsxs9("div", { className: "ss-w-mocard", children: [
1642
1667
  showHeader ? /* @__PURE__ */ jsxs9("div", { className: "ss-w-bi-header", children: [
1643
- /* @__PURE__ */ jsx13("span", { className: "ss-w-bi-header-left", children: vm.competition ? /* @__PURE__ */ jsxs9(Fragment2, { children: [
1644
- /* @__PURE__ */ jsx13(Crest2, { kind: "comp", url: vm.competitionCrest, name: vm.competition }),
1645
- /* @__PURE__ */ jsx13("span", { className: "ss-w-bi-comp", children: vm.competition })
1668
+ /* @__PURE__ */ jsx14("span", { className: "ss-w-bi-header-left", children: vm.competition ? /* @__PURE__ */ jsxs9(Fragment2, { children: [
1669
+ /* @__PURE__ */ jsx14(Crest2, { kind: "comp", url: vm.competitionCrest, name: vm.competition }),
1670
+ /* @__PURE__ */ jsx14("span", { className: "ss-w-bi-comp", children: vm.competition })
1646
1671
  ] }) : null }),
1647
1672
  /* @__PURE__ */ jsxs9("span", { className: "ss-w-bi-header-right", children: [
1648
1673
  vm.isLive ? /* @__PURE__ */ jsxs9("span", { className: "ss-w-bi-live", children: [
1649
- /* @__PURE__ */ jsx13("span", { className: "ss-w-bi-live-dot", "aria-hidden": "true" }),
1674
+ /* @__PURE__ */ jsx14("span", { className: "ss-w-bi-live-dot", "aria-hidden": "true" }),
1650
1675
  ui?.liveLabel ?? "Live"
1651
1676
  ] }) : null,
1652
1677
  kickoff ? /* @__PURE__ */ jsxs9("span", { className: "ss-w-bi-kick", children: [
@@ -1654,7 +1679,7 @@ function MarketOddsCard({ vm, ui, slip, monitor, inSlipIds }) {
1654
1679
  " ",
1655
1680
  kickoff.time
1656
1681
  ] }) : null,
1657
- showPin && ui ? /* @__PURE__ */ jsx13(
1682
+ showPin && ui ? /* @__PURE__ */ jsx14(
1658
1683
  PinToggle,
1659
1684
  {
1660
1685
  ui,
@@ -1666,33 +1691,33 @@ function MarketOddsCard({ vm, ui, slip, monitor, inSlipIds }) {
1666
1691
  ] }) : null,
1667
1692
  hasNamedTeams || vm.fixture || vm.market ? /* @__PURE__ */ jsxs9("div", { className: "ss-w-mo-sub", children: [
1668
1693
  hasNamedTeams ? /* @__PURE__ */ jsxs9("div", { className: "ss-w-bi-fixture", children: [
1669
- /* @__PURE__ */ jsx13(Crest2, { kind: "team", url: vm.homeCrest, name: vm.homeTeamName }),
1670
- /* @__PURE__ */ jsx13("span", { className: "ss-w-bi-team", children: vm.homeTeamName }),
1671
- /* @__PURE__ */ jsx13("span", { className: "ss-w-bi-vs", "aria-hidden": "true", children: "vs" }),
1672
- /* @__PURE__ */ jsx13("span", { className: "ss-w-bi-team", children: vm.awayTeamName }),
1673
- /* @__PURE__ */ jsx13(Crest2, { kind: "team", url: vm.awayCrest, name: vm.awayTeamName })
1674
- ] }) : vm.fixture ? /* @__PURE__ */ jsx13("span", { className: "ss-w-mo-teams", children: vm.fixture }) : null,
1675
- vm.market ? /* @__PURE__ */ jsx13("span", { className: "ss-w-mo-market", children: vm.market }) : null
1694
+ /* @__PURE__ */ jsx14(Crest2, { kind: "team", url: vm.homeCrest, name: vm.homeTeamName }),
1695
+ /* @__PURE__ */ jsx14("span", { className: "ss-w-bi-team", children: vm.homeTeamName }),
1696
+ /* @__PURE__ */ jsx14("span", { className: "ss-w-bi-vs", "aria-hidden": "true", children: "vs" }),
1697
+ /* @__PURE__ */ jsx14("span", { className: "ss-w-bi-team", children: vm.awayTeamName }),
1698
+ /* @__PURE__ */ jsx14(Crest2, { kind: "team", url: vm.awayCrest, name: vm.awayTeamName })
1699
+ ] }) : vm.fixture ? /* @__PURE__ */ jsx14("span", { className: "ss-w-mo-teams", children: vm.fixture }) : null,
1700
+ vm.market ? /* @__PURE__ */ jsx14("span", { className: "ss-w-mo-market", children: vm.market }) : null
1676
1701
  ] }) : null,
1677
1702
  /* @__PURE__ */ jsxs9("div", { className: "ss-w-mo-rows", children: [
1678
- vm.mainRows.map((row) => /* @__PURE__ */ jsx13(OddsRow, { vm, row, ui, slip, inSlipIds }, row.key)),
1679
- open ? vm.moreRows.map((row) => /* @__PURE__ */ jsx13(OddsRow, { vm, row, ui, slip, inSlipIds }, row.key)) : null
1703
+ vm.mainRows.map((row) => /* @__PURE__ */ jsx14(OddsRow, { vm, row, ui, slip, inSlipIds }, row.key)),
1704
+ open ? vm.moreRows.map((row) => /* @__PURE__ */ jsx14(OddsRow, { vm, row, ui, slip, inSlipIds }, row.key)) : null
1680
1705
  ] }),
1681
1706
  vm.moreRows.length > 0 ? /* @__PURE__ */ jsxs9("button", { type: "button", className: "ss-w-mo-more", "aria-expanded": open, onClick: () => setOpen((v) => !v), children: [
1682
- /* @__PURE__ */ jsx13("span", { children: open ? ui?.hideLines ?? "Hide lines" : `${ui?.moreLines ?? "More lines"} (${vm.moreRows.length})` }),
1683
- /* @__PURE__ */ jsx13("span", { className: `ss-w-mo-more-chev${open ? " ss-w-mo-more-chev-up" : ""}`, "aria-hidden": "true" })
1707
+ /* @__PURE__ */ jsx14("span", { children: open ? ui?.hideLines ?? "Hide lines" : `${ui?.moreLines ?? "More lines"} (${vm.moreRows.length})` }),
1708
+ /* @__PURE__ */ jsx14("span", { className: `ss-w-mo-more-chev${open ? " ss-w-mo-more-chev-up" : ""}`, "aria-hidden": "true" })
1684
1709
  ] }) : null,
1685
- vm.bookmaker ? /* @__PURE__ */ jsx13("div", { className: "ss-w-mo-foot", children: /* @__PURE__ */ jsx13("span", { children: vm.bookmaker }) }) : null,
1686
- vm.disclaimer ? /* @__PURE__ */ jsx13("p", { className: "ss-w-bi-disc", children: vm.disclaimer }) : null
1710
+ vm.bookmaker ? /* @__PURE__ */ jsx14("div", { className: "ss-w-mo-foot", children: /* @__PURE__ */ jsx14("span", { children: vm.bookmaker }) }) : null,
1711
+ vm.disclaimer ? /* @__PURE__ */ jsx14("p", { className: "ss-w-bi-disc", children: vm.disclaimer }) : null
1687
1712
  ] });
1688
1713
  }
1689
1714
  function MarketOddsCardList({ cards, ui, slip, monitor, inSlipIds }) {
1690
1715
  if (!cards || cards.length === 0) return null;
1691
- return /* @__PURE__ */ jsx13("div", { className: "ss-w-mocards", children: cards.map((vm) => /* @__PURE__ */ jsx13(MarketOddsCard, { vm, ui, slip, monitor, inSlipIds }, vm.id)) });
1716
+ return /* @__PURE__ */ jsx14("div", { className: "ss-w-mocards", children: cards.map((vm) => /* @__PURE__ */ jsx14(MarketOddsCard, { vm, ui, slip, monitor, inSlipIds }, vm.id)) });
1692
1717
  }
1693
1718
 
1694
1719
  // src/components/OddsMovementCard.tsx
1695
- import { Fragment as Fragment3, jsx as jsx14, jsxs as jsxs10 } from "react/jsx-runtime";
1720
+ import { Fragment as Fragment3, jsx as jsx15, jsxs as jsxs10 } from "react/jsx-runtime";
1696
1721
  function directionWord(vm, ui) {
1697
1722
  if (vm.direction === "shortened") return ui?.oddsShortened ?? "shortened";
1698
1723
  if (vm.direction === "drifted") return ui?.oddsDrifted ?? "drifted";
@@ -1705,9 +1730,9 @@ function OddsMovementCard({ vm, ui, monitor }) {
1705
1730
  const showPin = !!monitor && vm.pinEnabled;
1706
1731
  return /* @__PURE__ */ jsxs10("div", { className: "ss-w-omcard", children: [
1707
1732
  /* @__PURE__ */ jsxs10("div", { className: "ss-w-om-head", children: [
1708
- /* @__PURE__ */ jsx14("span", { className: "ss-w-om-market", children: vm.market }),
1709
- /* @__PURE__ */ jsx14("span", { className: "ss-w-om-tag", children: ui?.priceMovement ?? "Price movement" }),
1710
- showPin && ui ? /* @__PURE__ */ jsx14(
1733
+ /* @__PURE__ */ jsx15("span", { className: "ss-w-om-market", children: vm.market }),
1734
+ /* @__PURE__ */ jsx15("span", { className: "ss-w-om-tag", children: ui?.priceMovement ?? "Price movement" }),
1735
+ showPin && ui ? /* @__PURE__ */ jsx15(
1711
1736
  PinToggle,
1712
1737
  {
1713
1738
  ui,
@@ -1725,12 +1750,12 @@ function OddsMovementCard({ vm, ui, monitor }) {
1725
1750
  ) : null
1726
1751
  ] }),
1727
1752
  vm.fixture ? /* @__PURE__ */ jsxs10("div", { className: "ss-w-om-fixture", children: [
1728
- /* @__PURE__ */ jsx14("span", { children: vm.fixture }),
1729
- vm.competition ? /* @__PURE__ */ jsx14("span", { className: "ss-w-om-comp", children: vm.competition }) : null
1753
+ /* @__PURE__ */ jsx15("span", { children: vm.fixture }),
1754
+ vm.competition ? /* @__PURE__ */ jsx15("span", { className: "ss-w-om-comp", children: vm.competition }) : null
1730
1755
  ] }) : null,
1731
- /* @__PURE__ */ jsx14("div", { className: "ss-w-om-sel", children: vm.selection }),
1732
- /* @__PURE__ */ jsx14(OddsMovementBadge, { previous: vm.opening, current: vm.current, direction: vm.direction, ui }),
1733
- vm.geometry === null ? /* @__PURE__ */ jsx14("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__ */ jsxs10(
1756
+ /* @__PURE__ */ jsx15("div", { className: "ss-w-om-sel", children: vm.selection }),
1757
+ /* @__PURE__ */ jsx15(OddsMovementBadge, { previous: vm.opening, current: vm.current, direction: vm.direction, ui }),
1758
+ vm.geometry === null ? /* @__PURE__ */ jsx15("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__ */ jsxs10(
1734
1759
  "svg",
1735
1760
  {
1736
1761
  className: "ss-w-om-chart",
@@ -1740,15 +1765,15 @@ function OddsMovementCard({ vm, ui, monitor }) {
1740
1765
  "aria-label": aria,
1741
1766
  children: [
1742
1767
  vm.geometry.gridlines.map((g) => /* @__PURE__ */ jsxs10("g", { children: [
1743
- /* @__PURE__ */ jsx14("line", { className: "ss-w-om-grid", x1: 40, y1: g.y, x2: CHART_VIEW_W - 8, y2: g.y }),
1744
- /* @__PURE__ */ jsx14("text", { className: "ss-w-om-ylab", x: 34, y: g.y + 3, textAnchor: "end", children: g.price.toFixed(2) })
1768
+ /* @__PURE__ */ jsx15("line", { className: "ss-w-om-grid", x1: 40, y1: g.y, x2: CHART_VIEW_W - 8, y2: g.y }),
1769
+ /* @__PURE__ */ jsx15("text", { className: "ss-w-om-ylab", x: 34, y: g.y + 3, textAnchor: "end", children: g.price.toFixed(2) })
1745
1770
  ] }, g.price)),
1746
- /* @__PURE__ */ jsx14("path", { className: "ss-w-om-line", d: vm.geometry.path, fill: "none" }),
1747
- vm.geometry.markers.map((m, i) => /* @__PURE__ */ jsx14("circle", { className: "ss-w-om-dot", cx: m.x, cy: m.y, r: 2.5 }, i)),
1771
+ /* @__PURE__ */ jsx15("path", { className: "ss-w-om-line", d: vm.geometry.path, fill: "none" }),
1772
+ vm.geometry.markers.map((m, i) => /* @__PURE__ */ jsx15("circle", { className: "ss-w-om-dot", cx: m.x, cy: m.y, r: 2.5 }, i)),
1748
1773
  ui?.chartTimeLabel ? /* @__PURE__ */ jsxs10(Fragment3, { children: [
1749
- /* @__PURE__ */ jsx14("text", { className: "ss-w-om-xlab", x: 40, y: CHART_VIEW_H - 8, textAnchor: "start", children: ui.chartTimeLabel(vm.geometry.startMs) }),
1750
- /* @__PURE__ */ jsx14("text", { className: "ss-w-om-xlab", x: CHART_VIEW_W - 8, y: CHART_VIEW_H - 8, textAnchor: "end", children: ui.chartTimeLabel(vm.geometry.endMs) })
1751
- ] }) : /* @__PURE__ */ jsx14("text", { className: "ss-w-om-xlab", x: 40, y: CHART_VIEW_H - 8, children: ui?.movementWindow ? ui.movementWindow(vm.windowHours) : `Last ${vm.windowHours}h` })
1774
+ /* @__PURE__ */ jsx15("text", { className: "ss-w-om-xlab", x: 40, y: CHART_VIEW_H - 8, textAnchor: "start", children: ui.chartTimeLabel(vm.geometry.startMs) }),
1775
+ /* @__PURE__ */ jsx15("text", { className: "ss-w-om-xlab", x: CHART_VIEW_W - 8, y: CHART_VIEW_H - 8, textAnchor: "end", children: ui.chartTimeLabel(vm.geometry.endMs) })
1776
+ ] }) : /* @__PURE__ */ jsx15("text", { className: "ss-w-om-xlab", x: 40, y: CHART_VIEW_H - 8, children: ui?.movementWindow ? ui.movementWindow(vm.windowHours) : `Last ${vm.windowHours}h` })
1752
1777
  ]
1753
1778
  }
1754
1779
  ),
@@ -1756,66 +1781,66 @@ function OddsMovementCard({ vm, ui, monitor }) {
1756
1781
  /* @__PURE__ */ jsxs10("span", { children: [
1757
1782
  ui?.openingLabel ?? "Opening",
1758
1783
  " ",
1759
- /* @__PURE__ */ jsx14("b", { children: vm.opening })
1784
+ /* @__PURE__ */ jsx15("b", { children: vm.opening })
1760
1785
  ] }),
1761
1786
  /* @__PURE__ */ jsxs10("span", { children: [
1762
1787
  ui?.currentLabel ?? "Current",
1763
1788
  " ",
1764
- /* @__PURE__ */ jsx14("b", { children: vm.current })
1789
+ /* @__PURE__ */ jsx15("b", { children: vm.current })
1765
1790
  ] })
1766
1791
  ] }),
1767
- vm.bookmaker ? /* @__PURE__ */ jsx14("div", { className: "ss-w-om-foot", children: /* @__PURE__ */ jsx14("span", { children: vm.bookmaker }) }) : null,
1768
- vm.excludedCount > 0 ? /* @__PURE__ */ jsx14("div", { className: "ss-w-om-excl", children: ui?.excludedSuspended ? ui.excludedSuspended(vm.excludedCount) : `${vm.excludedCount} suspended price(s) excluded from this chart.` }) : null,
1769
- vm.isSuspended ? /* @__PURE__ */ jsx14("div", { className: "ss-w-om-susp", children: ui?.selectionSuspended ?? "This selection is not currently available to bet." }) : null,
1770
- vm.disclaimer ? /* @__PURE__ */ jsx14("div", { className: "ss-w-om-disc", children: vm.disclaimer }) : null
1792
+ vm.bookmaker ? /* @__PURE__ */ jsx15("div", { className: "ss-w-om-foot", children: /* @__PURE__ */ jsx15("span", { children: vm.bookmaker }) }) : null,
1793
+ vm.excludedCount > 0 ? /* @__PURE__ */ jsx15("div", { className: "ss-w-om-excl", children: ui?.excludedSuspended ? ui.excludedSuspended(vm.excludedCount) : `${vm.excludedCount} suspended price(s) excluded from this chart.` }) : null,
1794
+ vm.isSuspended ? /* @__PURE__ */ jsx15("div", { className: "ss-w-om-susp", children: ui?.selectionSuspended ?? "This selection is not currently available to bet." }) : null,
1795
+ vm.disclaimer ? /* @__PURE__ */ jsx15("div", { className: "ss-w-om-disc", children: vm.disclaimer }) : null
1771
1796
  ] });
1772
1797
  }
1773
1798
  function OddsMovementCardList({ cards, ui, monitor }) {
1774
1799
  if (!cards || cards.length === 0) return null;
1775
- return /* @__PURE__ */ jsx14("div", { className: "ss-w-omcards", children: cards.map((vm) => /* @__PURE__ */ jsx14(OddsMovementCard, { vm, ui, monitor }, vm.id)) });
1800
+ return /* @__PURE__ */ jsx15("div", { className: "ss-w-omcards", children: cards.map((vm) => /* @__PURE__ */ jsx15(OddsMovementCard, { vm, ui, monitor }, vm.id)) });
1776
1801
  }
1777
1802
 
1778
1803
  // src/components/ActionButtons.tsx
1779
- import { Fragment as Fragment4, jsx as jsx15, jsxs as jsxs11 } from "react/jsx-runtime";
1804
+ import { Fragment as Fragment4, jsx as jsx16, jsxs as jsxs11 } from "react/jsx-runtime";
1780
1805
  function ActionButtons({ actions, loading, disabled, onAct }) {
1781
1806
  if (actions.length === 0 && !loading) return null;
1782
1807
  return /* @__PURE__ */ jsxs11("div", { className: "ss-w-actions", children: [
1783
- actions.map((a, i) => /* @__PURE__ */ jsx15("button", { type: "button", className: "ss-w-abtn", disabled, onClick: () => onAct(a), children: a.label }, `${a.label}-${i}`)),
1808
+ actions.map((a, i) => /* @__PURE__ */ jsx16("button", { type: "button", className: "ss-w-abtn", disabled, onClick: () => onAct(a), children: a.label }, `${a.label}-${i}`)),
1784
1809
  actions.length === 0 && loading ? /* @__PURE__ */ jsxs11(Fragment4, { children: [
1785
- /* @__PURE__ */ jsx15("span", { className: "ss-w-abtn-shimmer" }),
1786
- /* @__PURE__ */ jsx15("span", { className: "ss-w-abtn-shimmer" })
1810
+ /* @__PURE__ */ jsx16("span", { className: "ss-w-abtn-shimmer" }),
1811
+ /* @__PURE__ */ jsx16("span", { className: "ss-w-abtn-shimmer" })
1787
1812
  ] }) : null
1788
1813
  ] });
1789
1814
  }
1790
1815
 
1791
1816
  // src/components/dashboard/DashboardTile.tsx
1792
- import { jsx as jsx16, jsxs as jsxs12 } from "react/jsx-runtime";
1817
+ import { jsx as jsx17, jsxs as jsxs12 } from "react/jsx-runtime";
1793
1818
  var MAX_CRESTS = 3;
1794
1819
  function DashboardTile({ tile, onTap }) {
1795
1820
  const spanClass = tile.span === "full" ? "ss-w-dash-tile--full" : "ss-w-dash-tile--half";
1796
1821
  const crests = (tile.imageUrls ?? []).slice(0, MAX_CRESTS);
1797
1822
  const hasMeta = Boolean(tile.badgeText) || crests.length > 0;
1798
1823
  return /* @__PURE__ */ jsxs12("button", { type: "button", className: `ss-w-dash-tile ${spanClass}`, onClick: onTap, children: [
1799
- /* @__PURE__ */ jsx16("span", { className: "ss-w-dash-tile-icon", children: /* @__PURE__ */ jsx16(DashboardIcon, { name: tile.icon }) }),
1824
+ /* @__PURE__ */ jsx17("span", { className: "ss-w-dash-tile-icon", children: /* @__PURE__ */ jsx17(DashboardIcon, { name: tile.icon }) }),
1800
1825
  /* @__PURE__ */ jsxs12("span", { className: "ss-w-dash-tile-body", children: [
1801
- /* @__PURE__ */ jsx16("span", { className: "ss-w-dash-tile-title", children: tile.title }),
1802
- tile.subtitle ? /* @__PURE__ */ jsx16("span", { className: "ss-w-dash-tile-subtitle", children: tile.subtitle }) : null,
1826
+ /* @__PURE__ */ jsx17("span", { className: "ss-w-dash-tile-title", children: tile.title }),
1827
+ tile.subtitle ? /* @__PURE__ */ jsx17("span", { className: "ss-w-dash-tile-subtitle", children: tile.subtitle }) : null,
1803
1828
  hasMeta ? (
1804
1829
  // Badge + crests sit on their own row, below the title, instead of sharing the
1805
1830
  // icon/chevron row -- at the half-span tile's ~180px width a nowrap badge alone
1806
1831
  // (~70px) left the title column at ~22px and forced character-by-character wrapping.
1807
1832
  /* @__PURE__ */ jsxs12("span", { className: "ss-w-dash-tile-meta", children: [
1808
- tile.badgeText ? /* @__PURE__ */ jsx16("span", { className: "ss-w-dash-tile-badge", children: tile.badgeText }) : null,
1809
- crests.length > 0 ? /* @__PURE__ */ jsx16("span", { className: "ss-w-dash-tile-crests", children: crests.map((url, i) => /* @__PURE__ */ jsx16("span", { className: "ss-w-dash-tile-crest", style: { backgroundImage: `url(${url})` }, "aria-hidden": "true" }, `${url}-${i}`)) }) : null
1833
+ tile.badgeText ? /* @__PURE__ */ jsx17("span", { className: "ss-w-dash-tile-badge", children: tile.badgeText }) : null,
1834
+ crests.length > 0 ? /* @__PURE__ */ jsx17("span", { className: "ss-w-dash-tile-crests", children: crests.map((url, i) => /* @__PURE__ */ jsx17("span", { className: "ss-w-dash-tile-crest", style: { backgroundImage: `url(${url})` }, "aria-hidden": "true" }, `${url}-${i}`)) }) : null
1810
1835
  ] })
1811
1836
  ) : null
1812
1837
  ] }),
1813
- /* @__PURE__ */ jsx16("span", { className: "ss-w-dash-tile-chevron", children: /* @__PURE__ */ jsx16(ChevronIcon, {}) })
1838
+ /* @__PURE__ */ jsx17("span", { className: "ss-w-dash-tile-chevron", children: /* @__PURE__ */ jsx17(ChevronIcon, {}) })
1814
1839
  ] });
1815
1840
  }
1816
1841
 
1817
1842
  // src/components/dashboard/GreetingDashboard.tsx
1818
- import { jsx as jsx17, jsxs as jsxs13 } from "react/jsx-runtime";
1843
+ import { jsx as jsx18, jsxs as jsxs13 } from "react/jsx-runtime";
1819
1844
  var LAYOUT_CLASSES = {
1820
1845
  market: "ss-w-dash--market",
1821
1846
  goal: "ss-w-dash--goal",
@@ -1827,36 +1852,36 @@ function layoutClass(layout) {
1827
1852
  function GreetingDashboard({ dashboard, onTap }) {
1828
1853
  return /* @__PURE__ */ jsxs13("div", { className: `ss-w-dash ${layoutClass(dashboard.layout)}`, children: [
1829
1854
  /* @__PURE__ */ jsxs13("div", { className: "ss-w-dash-head", children: [
1830
- /* @__PURE__ */ jsx17("span", { className: "ss-w-dash-title", children: dashboard.title }),
1831
- dashboard.subtitle ? /* @__PURE__ */ jsx17("span", { className: "ss-w-dash-subtitle", children: dashboard.subtitle }) : null
1855
+ /* @__PURE__ */ jsx18("span", { className: "ss-w-dash-title", children: dashboard.title }),
1856
+ dashboard.subtitle ? /* @__PURE__ */ jsx18("span", { className: "ss-w-dash-subtitle", children: dashboard.subtitle }) : null
1832
1857
  ] }),
1833
- /* @__PURE__ */ jsx17("div", { className: "ss-w-dash-grid", children: dashboard.tiles.map((t, i) => /* @__PURE__ */ jsx17(DashboardTile, { tile: t, onTap: () => onTap(t, i) }, `${t.title}-${i}`)) }),
1834
- dashboard.footerTip ? /* @__PURE__ */ jsx17("span", { className: "ss-w-dash-foot", children: dashboard.footerTip }) : null
1858
+ /* @__PURE__ */ jsx18("div", { className: "ss-w-dash-grid", children: dashboard.tiles.map((t, i) => /* @__PURE__ */ jsx18(DashboardTile, { tile: t, onTap: () => onTap(t, i) }, `${t.title}-${i}`)) }),
1859
+ dashboard.footerTip ? /* @__PURE__ */ jsx18("span", { className: "ss-w-dash-foot", children: dashboard.footerTip }) : null
1835
1860
  ] });
1836
1861
  }
1837
1862
 
1838
1863
  // src/components/dashboard/FixtureCard.tsx
1839
- import { Fragment as Fragment5, jsx as jsx18, jsxs as jsxs14 } from "react/jsx-runtime";
1864
+ import { Fragment as Fragment5, jsx as jsx19, jsxs as jsxs14 } from "react/jsx-runtime";
1840
1865
  function teamFormResultClass(result) {
1841
1866
  if (result === "W") return "ss-w-fandash-teamform-cell--win";
1842
1867
  if (result === "L") return "ss-w-fandash-teamform-cell--loss";
1843
1868
  return "ss-w-fandash-teamform-cell--draw";
1844
1869
  }
1845
1870
  function TeamFormCell({ m, subjectCrestUrl, subjectName }) {
1846
- const subjectCrest = /* @__PURE__ */ jsx18(Crest2, { url: subjectCrestUrl ?? void 0, name: subjectName, kind: "team" });
1847
- const opponentCrest = /* @__PURE__ */ jsx18(Crest2, { url: m.opponentCrestUrl ?? void 0, kind: "team" });
1871
+ const subjectCrest = /* @__PURE__ */ jsx19(Crest2, { url: subjectCrestUrl ?? void 0, name: subjectName, kind: "team" });
1872
+ const opponentCrest = /* @__PURE__ */ jsx19(Crest2, { url: m.opponentCrestUrl ?? void 0, kind: "team" });
1848
1873
  const score = m.teamIsHome ? `${m.teamScore} - ${m.oppScore}` : `${m.oppScore} - ${m.teamScore}`;
1849
1874
  return /* @__PURE__ */ jsxs14("div", { className: `ss-w-fandash-teamform-cell ${teamFormResultClass(m.result)}`, children: [
1850
1875
  m.teamIsHome ? subjectCrest : opponentCrest,
1851
- /* @__PURE__ */ jsx18("span", { className: "ss-w-fandash-teamform-score", children: score }),
1876
+ /* @__PURE__ */ jsx19("span", { className: "ss-w-fandash-teamform-score", children: score }),
1852
1877
  m.teamIsHome ? opponentCrest : subjectCrest
1853
1878
  ] });
1854
1879
  }
1855
1880
  var TEAM_FORM_ROWS = 5;
1856
1881
  function teamFormRows(data) {
1857
1882
  return Array.from({ length: TEAM_FORM_ROWS }, (_, i) => i).flatMap((i) => [
1858
- /* @__PURE__ */ jsx18("span", { className: "ss-w-fandash-teamform-slot", children: data.homeForm[i] ? /* @__PURE__ */ jsx18(TeamFormCell, { m: data.homeForm[i], subjectCrestUrl: data.homeCrestUrl, subjectName: data.homeName }) : null }, `h-${i}`),
1859
- /* @__PURE__ */ jsx18("span", { className: "ss-w-fandash-teamform-slot", children: data.awayForm[i] ? /* @__PURE__ */ jsx18(TeamFormCell, { m: data.awayForm[i], subjectCrestUrl: data.awayCrestUrl, subjectName: data.awayName }) : null }, `a-${i}`)
1883
+ /* @__PURE__ */ jsx19("span", { className: "ss-w-fandash-teamform-slot", children: data.homeForm[i] ? /* @__PURE__ */ jsx19(TeamFormCell, { m: data.homeForm[i], subjectCrestUrl: data.homeCrestUrl, subjectName: data.homeName }) : null }, `h-${i}`),
1884
+ /* @__PURE__ */ jsx19("span", { className: "ss-w-fandash-teamform-slot", children: data.awayForm[i] ? /* @__PURE__ */ jsx19(TeamFormCell, { m: data.awayForm[i], subjectCrestUrl: data.awayCrestUrl, subjectName: data.awayName }) : null }, `a-${i}`)
1860
1885
  ]);
1861
1886
  }
1862
1887
  function FixtureCard({ card }) {
@@ -1871,17 +1896,17 @@ function FixtureCard({ card }) {
1871
1896
  ] }),
1872
1897
  /* @__PURE__ */ jsxs14("div", { className: "ss-w-fandash-fixture-teams", children: [
1873
1898
  /* @__PURE__ */ jsxs14("span", { className: "ss-w-fandash-fixture-team", children: [
1874
- /* @__PURE__ */ jsx18(Crest2, { url: data.homeCrestUrl ?? void 0, name: data.homeName, kind: "team" }),
1875
- /* @__PURE__ */ jsx18("span", { className: "ss-w-fandash-fixture-name", children: data.homeName })
1899
+ /* @__PURE__ */ jsx19(Crest2, { url: data.homeCrestUrl ?? void 0, name: data.homeName, kind: "team" }),
1900
+ /* @__PURE__ */ jsx19("span", { className: "ss-w-fandash-fixture-name", children: data.homeName })
1876
1901
  ] }),
1877
- /* @__PURE__ */ jsx18("span", { className: "ss-w-fandash-fixture-vs", children: "v" }),
1902
+ /* @__PURE__ */ jsx19("span", { className: "ss-w-fandash-fixture-vs", children: "v" }),
1878
1903
  /* @__PURE__ */ jsxs14("span", { className: "ss-w-fandash-fixture-team ss-w-fandash-fixture-team--away", children: [
1879
- /* @__PURE__ */ jsx18("span", { className: "ss-w-fandash-fixture-name", children: data.awayName }),
1880
- /* @__PURE__ */ jsx18(Crest2, { url: data.awayCrestUrl ?? void 0, name: data.awayName, kind: "team" })
1904
+ /* @__PURE__ */ jsx19("span", { className: "ss-w-fandash-fixture-name", children: data.awayName }),
1905
+ /* @__PURE__ */ jsx19(Crest2, { url: data.awayCrestUrl ?? void 0, name: data.awayName, kind: "team" })
1881
1906
  ] })
1882
1907
  ] }),
1883
1908
  /* @__PURE__ */ jsxs14("div", { className: "ss-w-fandash-fixture-meta", children: [
1884
- /* @__PURE__ */ jsx18("span", { className: "ss-w-fandash-fixture-kickoff", children: data.kickoffLabel }),
1909
+ /* @__PURE__ */ jsx19("span", { className: "ss-w-fandash-fixture-kickoff", children: data.kickoffLabel }),
1885
1910
  data.venue ? /* @__PURE__ */ jsxs14("span", { className: "ss-w-fandash-fixture-venue", children: [
1886
1911
  " \xB7 ",
1887
1912
  data.venue
@@ -1889,45 +1914,45 @@ function FixtureCard({ card }) {
1889
1914
  ] })
1890
1915
  ] }),
1891
1916
  /* @__PURE__ */ jsxs14("div", { className: "ss-w-fandash-card ss-w-fandash-lastfive", children: [
1892
- /* @__PURE__ */ jsx18("span", { className: "ss-w-fandash-eyebrow", children: data.formLabel }),
1917
+ /* @__PURE__ */ jsx19("span", { className: "ss-w-fandash-eyebrow", children: data.formLabel }),
1893
1918
  /* @__PURE__ */ jsxs14("div", { className: "ss-w-fandash-teamform-head", children: [
1894
1919
  /* @__PURE__ */ jsxs14("span", { className: "ss-w-fandash-teamform-head-team", children: [
1895
- /* @__PURE__ */ jsx18(Crest2, { url: data.homeCrestUrl ?? void 0, name: data.homeName, kind: "team" }),
1896
- /* @__PURE__ */ jsx18("span", { className: "ss-w-fandash-teamform-head-name", children: data.homeName })
1920
+ /* @__PURE__ */ jsx19(Crest2, { url: data.homeCrestUrl ?? void 0, name: data.homeName, kind: "team" }),
1921
+ /* @__PURE__ */ jsx19("span", { className: "ss-w-fandash-teamform-head-name", children: data.homeName })
1897
1922
  ] }),
1898
1923
  /* @__PURE__ */ jsxs14("span", { className: "ss-w-fandash-teamform-head-team", children: [
1899
- /* @__PURE__ */ jsx18(Crest2, { url: data.awayCrestUrl ?? void 0, name: data.awayName, kind: "team" }),
1900
- /* @__PURE__ */ jsx18("span", { className: "ss-w-fandash-teamform-head-name", children: data.awayName })
1924
+ /* @__PURE__ */ jsx19(Crest2, { url: data.awayCrestUrl ?? void 0, name: data.awayName, kind: "team" }),
1925
+ /* @__PURE__ */ jsx19("span", { className: "ss-w-fandash-teamform-head-name", children: data.awayName })
1901
1926
  ] })
1902
1927
  ] }),
1903
- /* @__PURE__ */ jsx18("div", { className: "ss-w-fandash-teamform-rows", children: teamFormRows(data) })
1928
+ /* @__PURE__ */ jsx19("div", { className: "ss-w-fandash-teamform-rows", children: teamFormRows(data) })
1904
1929
  ] }),
1905
1930
  h2h || data.fact ? /* @__PURE__ */ jsxs14("div", { className: "ss-w-fandash-card ss-w-fandash-h2h", children: [
1906
1931
  h2h ? /* @__PURE__ */ jsxs14(Fragment5, { children: [
1907
- /* @__PURE__ */ jsx18("span", { className: "ss-w-fandash-eyebrow", children: h2h.label }),
1932
+ /* @__PURE__ */ jsx19("span", { className: "ss-w-fandash-eyebrow", children: h2h.label }),
1908
1933
  /* @__PURE__ */ jsxs14("div", { className: "ss-w-fandash-split", children: [
1909
1934
  /* @__PURE__ */ jsxs14("span", { className: "ss-w-fandash-split-cell", children: [
1910
- /* @__PURE__ */ jsx18("span", { className: "ss-w-fandash-split-value", children: h2h.wins }),
1911
- /* @__PURE__ */ jsx18("span", { className: "ss-w-fandash-split-label", children: h2h.homeWinsLabel })
1935
+ /* @__PURE__ */ jsx19("span", { className: "ss-w-fandash-split-value", children: h2h.wins }),
1936
+ /* @__PURE__ */ jsx19("span", { className: "ss-w-fandash-split-label", children: h2h.homeWinsLabel })
1912
1937
  ] }),
1913
1938
  /* @__PURE__ */ jsxs14("span", { className: "ss-w-fandash-split-cell", children: [
1914
- /* @__PURE__ */ jsx18("span", { className: "ss-w-fandash-split-value", children: h2h.draws }),
1915
- /* @__PURE__ */ jsx18("span", { className: "ss-w-fandash-split-label", children: h2h.drawsLabel })
1939
+ /* @__PURE__ */ jsx19("span", { className: "ss-w-fandash-split-value", children: h2h.draws }),
1940
+ /* @__PURE__ */ jsx19("span", { className: "ss-w-fandash-split-label", children: h2h.drawsLabel })
1916
1941
  ] }),
1917
1942
  /* @__PURE__ */ jsxs14("span", { className: "ss-w-fandash-split-cell", children: [
1918
- /* @__PURE__ */ jsx18("span", { className: "ss-w-fandash-split-value", children: h2h.losses }),
1919
- /* @__PURE__ */ jsx18("span", { className: "ss-w-fandash-split-label", children: h2h.awayWinsLabel })
1943
+ /* @__PURE__ */ jsx19("span", { className: "ss-w-fandash-split-value", children: h2h.losses }),
1944
+ /* @__PURE__ */ jsx19("span", { className: "ss-w-fandash-split-label", children: h2h.awayWinsLabel })
1920
1945
  ] })
1921
1946
  ] })
1922
1947
  ] }) : null,
1923
- data.fact ? /* @__PURE__ */ jsx18("span", { className: "ss-w-fandash-fact", children: data.fact }) : null
1948
+ data.fact ? /* @__PURE__ */ jsx19("span", { className: "ss-w-fandash-fact", children: data.fact }) : null
1924
1949
  ] }) : null
1925
1950
  ] });
1926
1951
  }
1927
1952
 
1928
1953
  // src/components/dashboard/CountdownCard.tsx
1929
- import { Fragment as Fragment6, useEffect as useEffect5, useState as useState8 } from "react";
1930
- import { jsx as jsx19, jsxs as jsxs15 } from "react/jsx-runtime";
1954
+ import { Fragment as Fragment6, useEffect as useEffect5, useState as useState9 } from "react";
1955
+ import { jsx as jsx20, jsxs as jsxs15 } from "react/jsx-runtime";
1931
1956
  var DAY_MS = 864e5;
1932
1957
  function remainingSegments(kickoffUnix, nowMs, withSeconds) {
1933
1958
  const totalSeconds = Math.floor((kickoffUnix * 1e3 - nowMs) / 1e3);
@@ -1945,8 +1970,8 @@ function remainingSegments(kickoffUnix, nowMs, withSeconds) {
1945
1970
  function CountdownCard({ card }) {
1946
1971
  const { data } = card;
1947
1972
  const unitLabel = { d: data.daysUnit, h: data.hoursUnit, m: data.minutesUnit, s: data.secondsUnit };
1948
- const [nowMs, setNowMs] = useState8(() => Date.now());
1949
- const [reduced] = useState8(
1973
+ const [nowMs, setNowMs] = useState9(() => Date.now());
1974
+ const [reduced] = useState9(
1950
1975
  () => typeof window !== "undefined" && window.matchMedia("(prefers-reduced-motion: reduce)").matches
1951
1976
  );
1952
1977
  const withinDay = data.kickoffUnix * 1e3 - nowMs < DAY_MS;
@@ -1956,61 +1981,61 @@ function CountdownCard({ card }) {
1956
1981
  return () => window.clearInterval(id);
1957
1982
  }, [reduced, withinDay]);
1958
1983
  const segments = remainingSegments(data.kickoffUnix, nowMs, withinDay && !reduced);
1959
- return /* @__PURE__ */ jsx19("div", { className: "ss-w-fandash-card ss-w-fandash-countdown", children: /* @__PURE__ */ jsxs15("div", { className: "ss-w-fandash-countdown-top", children: [
1960
- /* @__PURE__ */ jsx19("span", { className: "ss-w-fandash-eyebrow", children: card.title ?? "Kick-off in" }),
1961
- segments ? /* @__PURE__ */ jsx19("span", { className: "ss-w-fandash-countdown-clock", children: segments.map((s, i) => /* @__PURE__ */ jsxs15(Fragment6, { children: [
1962
- i > 0 ? /* @__PURE__ */ jsx19("span", { className: "ss-w-fandash-countdown-colon", children: ":" }) : null,
1984
+ return /* @__PURE__ */ jsx20("div", { className: "ss-w-fandash-card ss-w-fandash-countdown", children: /* @__PURE__ */ jsxs15("div", { className: "ss-w-fandash-countdown-top", children: [
1985
+ /* @__PURE__ */ jsx20("span", { className: "ss-w-fandash-eyebrow", children: card.title ?? "Kick-off in" }),
1986
+ segments ? /* @__PURE__ */ jsx20("span", { className: "ss-w-fandash-countdown-clock", children: segments.map((s, i) => /* @__PURE__ */ jsxs15(Fragment6, { children: [
1987
+ i > 0 ? /* @__PURE__ */ jsx20("span", { className: "ss-w-fandash-countdown-colon", children: ":" }) : null,
1963
1988
  /* @__PURE__ */ jsxs15("span", { className: "ss-w-fandash-countdown-seg", children: [
1964
- /* @__PURE__ */ jsx19("span", { className: "ss-w-fandash-countdown-value", children: s.value }),
1965
- /* @__PURE__ */ jsx19("span", { className: "ss-w-fandash-countdown-unit", children: unitLabel[s.unit] })
1989
+ /* @__PURE__ */ jsx20("span", { className: "ss-w-fandash-countdown-value", children: s.value }),
1990
+ /* @__PURE__ */ jsx20("span", { className: "ss-w-fandash-countdown-unit", children: unitLabel[s.unit] })
1966
1991
  ] })
1967
1992
  ] }, s.unit)) }) : null
1968
1993
  ] }) });
1969
1994
  }
1970
1995
 
1971
1996
  // src/components/dashboard/InjuriesCard.tsx
1972
- import { useState as useState9 } from "react";
1973
- import { jsx as jsx20, jsxs as jsxs16 } from "react/jsx-runtime";
1997
+ import { useState as useState10 } from "react";
1998
+ import { jsx as jsx21, jsxs as jsxs16 } from "react/jsx-runtime";
1974
1999
  var SHOWN = 3;
1975
2000
  function ColHead({ name, crestUrl }) {
1976
2001
  return /* @__PURE__ */ jsxs16("span", { className: "ss-w-fandash-injuries-col-head", children: [
1977
- /* @__PURE__ */ jsx20(Crest2, { url: crestUrl ?? void 0, name, kind: "team" }),
1978
- /* @__PURE__ */ jsx20("span", { className: "ss-w-fandash-injuries-col-head-name", children: name })
2002
+ /* @__PURE__ */ jsx21(Crest2, { url: crestUrl ?? void 0, name, kind: "team" }),
2003
+ /* @__PURE__ */ jsx21("span", { className: "ss-w-fandash-injuries-col-head-name", children: name })
1979
2004
  ] });
1980
2005
  }
1981
2006
  function InjuryList({ rows, emptyLabel, limit }) {
1982
- if (rows.length === 0) return /* @__PURE__ */ jsx20("span", { className: "ss-w-fandash-injuries-empty", children: emptyLabel });
2007
+ if (rows.length === 0) return /* @__PURE__ */ jsx21("span", { className: "ss-w-fandash-injuries-empty", children: emptyLabel });
1983
2008
  const shown = limit === void 0 ? rows : rows.slice(0, limit);
1984
- return /* @__PURE__ */ jsx20("ul", { className: "ss-w-fandash-injury-list", children: shown.map((r, i) => /* @__PURE__ */ jsxs16("li", { className: "ss-w-fandash-injury-row", children: [
1985
- /* @__PURE__ */ jsx20("span", { className: "ss-w-fandash-injury-name", children: r.playerName }),
2009
+ return /* @__PURE__ */ jsx21("ul", { className: "ss-w-fandash-injury-list", children: shown.map((r, i) => /* @__PURE__ */ jsxs16("li", { className: "ss-w-fandash-injury-row", children: [
2010
+ /* @__PURE__ */ jsx21("span", { className: "ss-w-fandash-injury-name", children: r.playerName }),
1986
2011
  /* @__PURE__ */ jsxs16("span", { className: "ss-w-fandash-injury-meta", children: [
1987
- /* @__PURE__ */ jsx20("span", { className: "ss-w-fandash-injury-status", children: r.status }),
1988
- r.injuryType ? /* @__PURE__ */ jsx20("span", { className: "ss-w-fandash-injury-type", children: r.injuryType }) : null,
1989
- r.expectedReturnLabel ? /* @__PURE__ */ jsx20("span", { className: "ss-w-fandash-injury-return", children: r.expectedReturnLabel }) : null
2012
+ /* @__PURE__ */ jsx21("span", { className: "ss-w-fandash-injury-status", children: r.status }),
2013
+ r.injuryType ? /* @__PURE__ */ jsx21("span", { className: "ss-w-fandash-injury-type", children: r.injuryType }) : null,
2014
+ r.expectedReturnLabel ? /* @__PURE__ */ jsx21("span", { className: "ss-w-fandash-injury-return", children: r.expectedReturnLabel }) : null
1990
2015
  ] })
1991
2016
  ] }, `${r.playerName}-${i}`)) });
1992
2017
  }
1993
2018
  function InjuriesCard({ card, ui }) {
1994
2019
  const { data } = card;
1995
- const [expanded, setExpanded] = useState9(false);
2020
+ const [expanded, setExpanded] = useState10(false);
1996
2021
  const hidden = Math.max(0, data.ours.length - SHOWN) + Math.max(0, data.theirs.length - SHOWN);
1997
2022
  const limit = expanded ? void 0 : SHOWN;
1998
2023
  const showMore = ui?.showMore ?? ((n) => `Show ${n} more`);
1999
2024
  const showLess = ui?.showLess ?? "Show less";
2000
2025
  return /* @__PURE__ */ jsxs16("div", { className: "ss-w-fandash-card ss-w-fandash-injuries", children: [
2001
- card.title ? /* @__PURE__ */ jsx20("span", { className: "ss-w-fandash-eyebrow", children: card.title }) : null,
2026
+ card.title ? /* @__PURE__ */ jsx21("span", { className: "ss-w-fandash-eyebrow", children: card.title }) : null,
2002
2027
  /* @__PURE__ */ jsxs16("div", { className: "ss-w-fandash-injuries-cols", children: [
2003
2028
  /* @__PURE__ */ jsxs16("div", { className: "ss-w-fandash-injuries-col", children: [
2004
- /* @__PURE__ */ jsx20(ColHead, { name: data.oursName, crestUrl: data.oursCrestUrl }),
2005
- /* @__PURE__ */ jsx20(InjuryList, { rows: data.ours, emptyLabel: data.emptyLabel, limit })
2029
+ /* @__PURE__ */ jsx21(ColHead, { name: data.oursName, crestUrl: data.oursCrestUrl }),
2030
+ /* @__PURE__ */ jsx21(InjuryList, { rows: data.ours, emptyLabel: data.emptyLabel, limit })
2006
2031
  ] }),
2007
- /* @__PURE__ */ jsx20("div", { className: "ss-w-fandash-injuries-divider" }),
2032
+ /* @__PURE__ */ jsx21("div", { className: "ss-w-fandash-injuries-divider" }),
2008
2033
  /* @__PURE__ */ jsxs16("div", { className: "ss-w-fandash-injuries-col", children: [
2009
- /* @__PURE__ */ jsx20(ColHead, { name: data.theirsName, crestUrl: data.theirsCrestUrl }),
2010
- /* @__PURE__ */ jsx20(InjuryList, { rows: data.theirs, emptyLabel: data.emptyLabel, limit })
2034
+ /* @__PURE__ */ jsx21(ColHead, { name: data.theirsName, crestUrl: data.theirsCrestUrl }),
2035
+ /* @__PURE__ */ jsx21(InjuryList, { rows: data.theirs, emptyLabel: data.emptyLabel, limit })
2011
2036
  ] })
2012
2037
  ] }),
2013
- hidden > 0 ? /* @__PURE__ */ jsx20(
2038
+ hidden > 0 ? /* @__PURE__ */ jsx21(
2014
2039
  "button",
2015
2040
  {
2016
2041
  type: "button",
@@ -2024,80 +2049,80 @@ function InjuriesCard({ card, ui }) {
2024
2049
  }
2025
2050
 
2026
2051
  // src/components/dashboard/ReasonToBetCard.tsx
2027
- import { jsx as jsx21, jsxs as jsxs17 } from "react/jsx-runtime";
2052
+ import { jsx as jsx22, jsxs as jsxs17 } from "react/jsx-runtime";
2028
2053
  function ReasonToBetCard({ card }) {
2029
2054
  return /* @__PURE__ */ jsxs17("div", { className: "ss-w-fandash-card ss-w-fandash-reasons", children: [
2030
- card.title ? /* @__PURE__ */ jsx21("span", { className: "ss-w-fandash-eyebrow", children: card.title }) : null,
2031
- /* @__PURE__ */ jsx21("ul", { className: "ss-w-fandash-reason-list", children: card.data.angles.map((angle, i) => /* @__PURE__ */ jsx21("li", { className: "ss-w-fandash-reason-item", children: angle }, `${angle}-${i}`)) })
2055
+ card.title ? /* @__PURE__ */ jsx22("span", { className: "ss-w-fandash-eyebrow", children: card.title }) : null,
2056
+ /* @__PURE__ */ jsx22("ul", { className: "ss-w-fandash-reason-list", children: card.data.angles.map((angle, i) => /* @__PURE__ */ jsx22("li", { className: "ss-w-fandash-reason-item", children: angle }, `${angle}-${i}`)) })
2032
2057
  ] });
2033
2058
  }
2034
2059
 
2035
2060
  // src/components/dashboard/WhereToWatchCard.tsx
2036
- import { jsx as jsx22, jsxs as jsxs18 } from "react/jsx-runtime";
2061
+ import { jsx as jsx23, jsxs as jsxs18 } from "react/jsx-runtime";
2037
2062
  function WhereToWatchCard({ card }) {
2038
2063
  return /* @__PURE__ */ jsxs18("div", { className: "ss-w-fandash-card ss-w-fandash-watch", children: [
2039
- card.title ? /* @__PURE__ */ jsx22("span", { className: "ss-w-fandash-eyebrow", children: card.title }) : null,
2040
- /* @__PURE__ */ jsx22("span", { className: "ss-w-fandash-stations", children: card.data.stations.map((station, i) => /* @__PURE__ */ jsx22("span", { className: "ss-w-fandash-station-chip", children: station }, `${station}-${i}`)) })
2064
+ card.title ? /* @__PURE__ */ jsx23("span", { className: "ss-w-fandash-eyebrow", children: card.title }) : null,
2065
+ /* @__PURE__ */ jsx23("span", { className: "ss-w-fandash-stations", children: card.data.stations.map((station, i) => /* @__PURE__ */ jsx23("span", { className: "ss-w-fandash-station-chip", children: station }, `${station}-${i}`)) })
2041
2066
  ] });
2042
2067
  }
2043
2068
 
2044
2069
  // src/components/dashboard/CongestedWeekCard.tsx
2045
- import { jsx as jsx23, jsxs as jsxs19 } from "react/jsx-runtime";
2070
+ import { jsx as jsx24, jsxs as jsxs19 } from "react/jsx-runtime";
2046
2071
  function CongestedWeekCard({ card, onTap }) {
2047
2072
  return /* @__PURE__ */ jsxs19("button", { type: "button", className: "ss-w-fandash-card ss-w-fandash-card--tap ss-w-fandash-congested", onClick: () => onTap(card), children: [
2048
- card.title ? /* @__PURE__ */ jsx23("span", { className: "ss-w-fandash-eyebrow", children: card.title }) : null,
2049
- /* @__PURE__ */ jsx23("div", { className: "ss-w-fandash-congested-grid", children: card.data.entries.map((entry, i) => /* @__PURE__ */ jsxs19("span", { className: "ss-w-fandash-congested-cell", children: [
2050
- /* @__PURE__ */ jsx23("span", { className: "ss-w-fandash-congested-day", children: entry.dayLabel }),
2051
- /* @__PURE__ */ jsx23("span", { className: "ss-w-fandash-congested-opponent", children: entry.opponent }),
2052
- /* @__PURE__ */ jsx23("span", { className: "ss-w-fandash-congested-comp", children: entry.competition }),
2053
- /* @__PURE__ */ jsx23("span", { className: "ss-w-fandash-congested-time", children: entry.timeLabel })
2073
+ card.title ? /* @__PURE__ */ jsx24("span", { className: "ss-w-fandash-eyebrow", children: card.title }) : null,
2074
+ /* @__PURE__ */ jsx24("div", { className: "ss-w-fandash-congested-grid", children: card.data.entries.map((entry, i) => /* @__PURE__ */ jsxs19("span", { className: "ss-w-fandash-congested-cell", children: [
2075
+ /* @__PURE__ */ jsx24("span", { className: "ss-w-fandash-congested-day", children: entry.dayLabel }),
2076
+ /* @__PURE__ */ jsx24("span", { className: "ss-w-fandash-congested-opponent", children: entry.opponent }),
2077
+ /* @__PURE__ */ jsx24("span", { className: "ss-w-fandash-congested-comp", children: entry.competition }),
2078
+ /* @__PURE__ */ jsx24("span", { className: "ss-w-fandash-congested-time", children: entry.timeLabel })
2054
2079
  ] }, `${entry.opponent}-${i}`)) }),
2055
- /* @__PURE__ */ jsx23("span", { className: "ss-w-fandash-card-cta", children: card.actionLabel })
2080
+ /* @__PURE__ */ jsx24("span", { className: "ss-w-fandash-card-cta", children: card.actionLabel })
2056
2081
  ] });
2057
2082
  }
2058
2083
 
2059
2084
  // src/components/dashboard/TransfersCard.tsx
2060
- import { jsx as jsx24, jsxs as jsxs20 } from "react/jsx-runtime";
2085
+ import { jsx as jsx25, jsxs as jsxs20 } from "react/jsx-runtime";
2061
2086
  function TransferList({ rows }) {
2062
- if (rows.length === 0) return /* @__PURE__ */ jsx24("span", { className: "ss-w-fandash-transfers-empty", children: "None" });
2063
- return /* @__PURE__ */ jsx24("ul", { className: "ss-w-fandash-transfer-list", children: rows.map((r, i) => /* @__PURE__ */ jsxs20("li", { className: "ss-w-fandash-transfer-row", children: [
2064
- /* @__PURE__ */ jsx24("span", { className: "ss-w-fandash-transfer-name", children: r.playerName }),
2065
- /* @__PURE__ */ jsx24("span", { className: "ss-w-fandash-transfer-club", children: r.otherClub }),
2066
- r.type ? /* @__PURE__ */ jsx24("span", { className: "ss-w-fandash-transfer-type", children: r.type }) : null
2087
+ if (rows.length === 0) return /* @__PURE__ */ jsx25("span", { className: "ss-w-fandash-transfers-empty", children: "None" });
2088
+ return /* @__PURE__ */ jsx25("ul", { className: "ss-w-fandash-transfer-list", children: rows.map((r, i) => /* @__PURE__ */ jsxs20("li", { className: "ss-w-fandash-transfer-row", children: [
2089
+ /* @__PURE__ */ jsx25("span", { className: "ss-w-fandash-transfer-name", children: r.playerName }),
2090
+ /* @__PURE__ */ jsx25("span", { className: "ss-w-fandash-transfer-club", children: r.otherClub }),
2091
+ r.type ? /* @__PURE__ */ jsx25("span", { className: "ss-w-fandash-transfer-type", children: r.type }) : null
2067
2092
  ] }, `${r.playerName}-${i}`)) });
2068
2093
  }
2069
2094
  function TransfersCard({ card }) {
2070
2095
  const { data } = card;
2071
2096
  return /* @__PURE__ */ jsxs20("div", { className: "ss-w-fandash-card ss-w-fandash-transfers", children: [
2072
- card.title ? /* @__PURE__ */ jsx24("span", { className: "ss-w-fandash-eyebrow", children: card.title }) : null,
2097
+ card.title ? /* @__PURE__ */ jsx25("span", { className: "ss-w-fandash-eyebrow", children: card.title }) : null,
2073
2098
  /* @__PURE__ */ jsxs20("div", { className: "ss-w-fandash-transfers-cols", children: [
2074
2099
  /* @__PURE__ */ jsxs20("div", { className: "ss-w-fandash-transfers-col", children: [
2075
- /* @__PURE__ */ jsx24("span", { className: "ss-w-fandash-transfers-col-head", children: "In" }),
2076
- /* @__PURE__ */ jsx24(TransferList, { rows: data.in })
2100
+ /* @__PURE__ */ jsx25("span", { className: "ss-w-fandash-transfers-col-head", children: "In" }),
2101
+ /* @__PURE__ */ jsx25(TransferList, { rows: data.in })
2077
2102
  ] }),
2078
2103
  /* @__PURE__ */ jsxs20("div", { className: "ss-w-fandash-transfers-col", children: [
2079
- /* @__PURE__ */ jsx24("span", { className: "ss-w-fandash-transfers-col-head", children: "Out" }),
2080
- /* @__PURE__ */ jsx24(TransferList, { rows: data.out })
2104
+ /* @__PURE__ */ jsx25("span", { className: "ss-w-fandash-transfers-col-head", children: "Out" }),
2105
+ /* @__PURE__ */ jsx25(TransferList, { rows: data.out })
2081
2106
  ] })
2082
2107
  ] })
2083
2108
  ] });
2084
2109
  }
2085
2110
 
2086
2111
  // src/components/dashboard/LinksCard.tsx
2087
- import { jsx as jsx25, jsxs as jsxs21 } from "react/jsx-runtime";
2112
+ import { jsx as jsx26, jsxs as jsxs21 } from "react/jsx-runtime";
2088
2113
  function LinksCard({ card }) {
2089
2114
  return /* @__PURE__ */ jsxs21("div", { className: "ss-w-fandash-card ss-w-fandash-links", children: [
2090
- card.title ? /* @__PURE__ */ jsx25("span", { className: "ss-w-fandash-eyebrow", children: card.title }) : null,
2091
- /* @__PURE__ */ jsx25("div", { className: "ss-w-fandash-link-grid", children: card.data.links.map((link, i) => /* @__PURE__ */ jsxs21("a", { className: "ss-w-fandash-link-tile", href: link.url, target: "_blank", rel: "noopener noreferrer", children: [
2092
- /* @__PURE__ */ jsx25("span", { className: "ss-w-fandash-link-label", children: link.label }),
2093
- /* @__PURE__ */ jsx25("span", { className: "ss-w-fandash-link-chevron", children: /* @__PURE__ */ jsx25(ChevronIcon, {}) })
2115
+ card.title ? /* @__PURE__ */ jsx26("span", { className: "ss-w-fandash-eyebrow", children: card.title }) : null,
2116
+ /* @__PURE__ */ jsx26("div", { className: "ss-w-fandash-link-grid", children: card.data.links.map((link, i) => /* @__PURE__ */ jsxs21("a", { className: "ss-w-fandash-link-tile", href: link.url, target: "_blank", rel: "noopener noreferrer", children: [
2117
+ /* @__PURE__ */ jsx26("span", { className: "ss-w-fandash-link-label", children: link.label }),
2118
+ /* @__PURE__ */ jsx26("span", { className: "ss-w-fandash-link-chevron", children: /* @__PURE__ */ jsx26(ChevronIcon, {}) })
2094
2119
  ] }, `${link.url}-${i}`)) })
2095
2120
  ] });
2096
2121
  }
2097
2122
 
2098
2123
  // src/components/dashboard/PostMatchResultCard.tsx
2099
- import { useState as useState10 } from "react";
2100
- import { jsx as jsx26, jsxs as jsxs22 } from "react/jsx-runtime";
2124
+ import { useState as useState11 } from "react";
2125
+ import { jsx as jsx27, jsxs as jsxs22 } from "react/jsx-runtime";
2101
2126
  function initials3(name) {
2102
2127
  return name.trim().slice(0, 3).toUpperCase();
2103
2128
  }
@@ -2106,12 +2131,12 @@ function PostMatchCrest({
2106
2131
  name,
2107
2132
  side
2108
2133
  }) {
2109
- const [failed, setFailed] = useState10(false);
2134
+ const [failed, setFailed] = useState11(false);
2110
2135
  const cls = `ss-w-fandash-postmatch-crest ss-w-fandash-postmatch-crest--${side}`;
2111
2136
  if (url && !failed) {
2112
- return /* @__PURE__ */ jsx26("img", { className: cls, src: url, alt: "", "aria-hidden": "true", onError: () => setFailed(true) });
2137
+ return /* @__PURE__ */ jsx27("img", { className: cls, src: url, alt: "", "aria-hidden": "true", onError: () => setFailed(true) });
2113
2138
  }
2114
- return /* @__PURE__ */ jsx26("span", { className: `${cls} ss-w-fandash-postmatch-crest--fallback`, "aria-hidden": "true", children: initials3(name) });
2139
+ return /* @__PURE__ */ jsx27("span", { className: `${cls} ss-w-fandash-postmatch-crest--fallback`, "aria-hidden": "true", children: initials3(name) });
2115
2140
  }
2116
2141
  function PostMatchResultCard({ card }) {
2117
2142
  const { data } = card;
@@ -2119,24 +2144,24 @@ function PostMatchResultCard({ card }) {
2119
2144
  const awayWon = data.awayScore >= data.homeScore;
2120
2145
  return /* @__PURE__ */ jsxs22("div", { className: "ss-w-fandash-card ss-w-fandash-postmatch-result", children: [
2121
2146
  /* @__PURE__ */ jsxs22("div", { className: "ss-w-fandash-postmatch-top", children: [
2122
- card.title ? /* @__PURE__ */ jsx26("span", { className: "ss-w-fandash-postmatch-pill", children: card.title }) : null,
2123
- /* @__PURE__ */ jsx26("span", { className: `ss-w-fandash-postmatch-tag ss-w-fandash-postmatch-tag--${data.outcome}`, children: data.resultLabel })
2147
+ card.title ? /* @__PURE__ */ jsx27("span", { className: "ss-w-fandash-postmatch-pill", children: card.title }) : null,
2148
+ /* @__PURE__ */ jsx27("span", { className: `ss-w-fandash-postmatch-tag ss-w-fandash-postmatch-tag--${data.outcome}`, children: data.resultLabel })
2124
2149
  ] }),
2125
2150
  /* @__PURE__ */ jsxs22("div", { className: "ss-w-fandash-postmatch-main", children: [
2126
2151
  /* @__PURE__ */ jsxs22("div", { className: "ss-w-fandash-postmatch-side ss-w-fandash-postmatch-side--home", children: [
2127
- /* @__PURE__ */ jsx26(PostMatchCrest, { url: data.homeCrestUrl, name: data.homeName, side: "home" }),
2128
- /* @__PURE__ */ jsx26("span", { className: "ss-w-fandash-postmatch-team-name", children: data.homeName })
2152
+ /* @__PURE__ */ jsx27(PostMatchCrest, { url: data.homeCrestUrl, name: data.homeName, side: "home" }),
2153
+ /* @__PURE__ */ jsx27("span", { className: "ss-w-fandash-postmatch-team-name", children: data.homeName })
2129
2154
  ] }),
2130
2155
  /* @__PURE__ */ jsxs22("div", { className: "ss-w-fandash-postmatch-score-main", children: [
2131
- /* @__PURE__ */ jsx26(
2156
+ /* @__PURE__ */ jsx27(
2132
2157
  "span",
2133
2158
  {
2134
2159
  className: `ss-w-fandash-postmatch-score-value ss-w-fandash-postmatch-score-value--${homeWon ? "win" : "lose"}`,
2135
2160
  children: data.homeScore
2136
2161
  }
2137
2162
  ),
2138
- /* @__PURE__ */ jsx26("span", { className: "ss-w-fandash-postmatch-score-sep", children: "\u2013" }),
2139
- /* @__PURE__ */ jsx26(
2163
+ /* @__PURE__ */ jsx27("span", { className: "ss-w-fandash-postmatch-score-sep", children: "\u2013" }),
2164
+ /* @__PURE__ */ jsx27(
2140
2165
  "span",
2141
2166
  {
2142
2167
  className: `ss-w-fandash-postmatch-score-value ss-w-fandash-postmatch-score-value--${awayWon ? "win" : "lose"}`,
@@ -2145,8 +2170,8 @@ function PostMatchResultCard({ card }) {
2145
2170
  )
2146
2171
  ] }),
2147
2172
  /* @__PURE__ */ jsxs22("div", { className: "ss-w-fandash-postmatch-side ss-w-fandash-postmatch-side--away", children: [
2148
- /* @__PURE__ */ jsx26(PostMatchCrest, { url: data.awayCrestUrl, name: data.awayName, side: "away" }),
2149
- /* @__PURE__ */ jsx26("span", { className: "ss-w-fandash-postmatch-team-name", children: data.awayName })
2173
+ /* @__PURE__ */ jsx27(PostMatchCrest, { url: data.awayCrestUrl, name: data.awayName, side: "away" }),
2174
+ /* @__PURE__ */ jsx27("span", { className: "ss-w-fandash-postmatch-team-name", children: data.awayName })
2150
2175
  ] })
2151
2176
  ] }),
2152
2177
  /* @__PURE__ */ jsxs22("div", { className: "ss-w-fandash-postmatch-meta", children: [
@@ -2157,20 +2182,20 @@ function PostMatchResultCard({ card }) {
2157
2182
  }
2158
2183
 
2159
2184
  // src/components/dashboard/PostMatchGoalsCard.tsx
2160
- import { jsx as jsx27, jsxs as jsxs23 } from "react/jsx-runtime";
2185
+ import { jsx as jsx28, jsxs as jsxs23 } from "react/jsx-runtime";
2161
2186
  function PostMatchGoalsCard({ card, onTap }) {
2162
2187
  return /* @__PURE__ */ jsxs23("button", { type: "button", className: "ss-w-fandash-card ss-w-fandash-card--tap ss-w-fandash-postmatch-goals", onClick: () => onTap(card), children: [
2163
- card.title ? /* @__PURE__ */ jsx27("span", { className: "ss-w-fandash-eyebrow", children: card.title }) : null,
2164
- /* @__PURE__ */ jsx27("ul", { className: "ss-w-fandash-postmatch-goal-list", children: card.data.goals.map((g, i) => /* @__PURE__ */ jsxs23("li", { className: g.scoredByClub ? "ss-w-fandash-postmatch-goal ss-w-fandash-postmatch-goal--club" : "ss-w-fandash-postmatch-goal", children: [
2165
- /* @__PURE__ */ jsx27("span", { className: "ss-w-fandash-postmatch-goal-ball" }),
2166
- /* @__PURE__ */ jsx27("span", { children: g.text })
2188
+ card.title ? /* @__PURE__ */ jsx28("span", { className: "ss-w-fandash-eyebrow", children: card.title }) : null,
2189
+ /* @__PURE__ */ jsx28("ul", { className: "ss-w-fandash-postmatch-goal-list", children: card.data.goals.map((g, i) => /* @__PURE__ */ jsxs23("li", { className: g.scoredByClub ? "ss-w-fandash-postmatch-goal ss-w-fandash-postmatch-goal--club" : "ss-w-fandash-postmatch-goal", children: [
2190
+ /* @__PURE__ */ jsx28("span", { className: "ss-w-fandash-postmatch-goal-ball" }),
2191
+ /* @__PURE__ */ jsx28("span", { children: g.text })
2167
2192
  ] }, `${g.text}-${i}`)) }),
2168
- /* @__PURE__ */ jsx27("span", { className: "ss-w-fandash-card-cta", children: card.actionLabel })
2193
+ /* @__PURE__ */ jsx28("span", { className: "ss-w-fandash-card-cta", children: card.actionLabel })
2169
2194
  ] });
2170
2195
  }
2171
2196
 
2172
2197
  // src/components/dashboard/PostMatchStatsCard.tsx
2173
- import { jsx as jsx28, jsxs as jsxs24 } from "react/jsx-runtime";
2198
+ import { jsx as jsx29, jsxs as jsxs24 } from "react/jsx-runtime";
2174
2199
  function splitWidths(homeNum, awayNum) {
2175
2200
  const total = homeNum + awayNum;
2176
2201
  if (total <= 0) return { home: "50%", away: "50%" };
@@ -2180,8 +2205,8 @@ function splitWidths(homeNum, awayNum) {
2180
2205
  function PostMatchStatsCard({ card, onTap }) {
2181
2206
  const { data } = card;
2182
2207
  return /* @__PURE__ */ jsxs24("button", { type: "button", className: "ss-w-fandash-card ss-w-fandash-card--tap ss-w-fandash-postmatch-stats", onClick: () => onTap(card), children: [
2183
- card.title ? /* @__PURE__ */ jsx28("span", { className: "ss-w-fandash-eyebrow", children: card.title }) : null,
2184
- /* @__PURE__ */ jsx28("div", { className: "ss-w-fandash-postmatch-stat-rows", children: data.rows.map((r, i) => {
2208
+ card.title ? /* @__PURE__ */ jsx29("span", { className: "ss-w-fandash-eyebrow", children: card.title }) : null,
2209
+ /* @__PURE__ */ jsx29("div", { className: "ss-w-fandash-postmatch-stat-rows", children: data.rows.map((r, i) => {
2185
2210
  const leftValue = data.clubIsHome ? r.clubValue : r.oppValue;
2186
2211
  const rightValue = data.clubIsHome ? r.oppValue : r.clubValue;
2187
2212
  const homeNum = data.clubIsHome ? r.clubNum : r.oppNum;
@@ -2189,32 +2214,32 @@ function PostMatchStatsCard({ card, onTap }) {
2189
2214
  const { home, away } = splitWidths(homeNum, awayNum);
2190
2215
  return /* @__PURE__ */ jsxs24("div", { className: "ss-w-fandash-postmatch-stat", children: [
2191
2216
  /* @__PURE__ */ jsxs24("div", { className: "ss-w-fandash-postmatch-stat-row", children: [
2192
- /* @__PURE__ */ jsx28("span", { className: "ss-w-fandash-postmatch-stat-value ss-w-fandash-postmatch-stat-value--home", children: leftValue }),
2193
- /* @__PURE__ */ jsx28("span", { className: "ss-w-fandash-postmatch-stat-label", children: r.label }),
2194
- /* @__PURE__ */ jsx28("span", { className: "ss-w-fandash-postmatch-stat-value ss-w-fandash-postmatch-stat-value--away", children: rightValue })
2217
+ /* @__PURE__ */ jsx29("span", { className: "ss-w-fandash-postmatch-stat-value ss-w-fandash-postmatch-stat-value--home", children: leftValue }),
2218
+ /* @__PURE__ */ jsx29("span", { className: "ss-w-fandash-postmatch-stat-label", children: r.label }),
2219
+ /* @__PURE__ */ jsx29("span", { className: "ss-w-fandash-postmatch-stat-value ss-w-fandash-postmatch-stat-value--away", children: rightValue })
2195
2220
  ] }),
2196
2221
  /* @__PURE__ */ jsxs24("div", { className: "ss-w-fandash-postmatch-stat-bar", children: [
2197
- /* @__PURE__ */ jsx28("span", { className: "ss-w-fandash-postmatch-stat-bar-home", style: { width: home } }),
2198
- /* @__PURE__ */ jsx28("span", { className: "ss-w-fandash-postmatch-stat-bar-away", style: { width: away } })
2222
+ /* @__PURE__ */ jsx29("span", { className: "ss-w-fandash-postmatch-stat-bar-home", style: { width: home } }),
2223
+ /* @__PURE__ */ jsx29("span", { className: "ss-w-fandash-postmatch-stat-bar-away", style: { width: away } })
2199
2224
  ] })
2200
2225
  ] }, `${r.label}-${i}`);
2201
2226
  }) }),
2202
2227
  data.rows.length > 0 ? /* @__PURE__ */ jsxs24("div", { className: "ss-w-fandash-postmatch-legend", children: [
2203
2228
  /* @__PURE__ */ jsxs24("span", { className: "ss-w-fandash-postmatch-legend-item", children: [
2204
- /* @__PURE__ */ jsx28("i", { className: "ss-w-fandash-postmatch-legend-swatch ss-w-fandash-postmatch-legend-swatch--home" }),
2229
+ /* @__PURE__ */ jsx29("i", { className: "ss-w-fandash-postmatch-legend-swatch ss-w-fandash-postmatch-legend-swatch--home" }),
2205
2230
  data.homeName
2206
2231
  ] }),
2207
2232
  /* @__PURE__ */ jsxs24("span", { className: "ss-w-fandash-postmatch-legend-item", children: [
2208
- /* @__PURE__ */ jsx28("i", { className: "ss-w-fandash-postmatch-legend-swatch ss-w-fandash-postmatch-legend-swatch--away" }),
2233
+ /* @__PURE__ */ jsx29("i", { className: "ss-w-fandash-postmatch-legend-swatch ss-w-fandash-postmatch-legend-swatch--away" }),
2209
2234
  data.awayName
2210
2235
  ] })
2211
2236
  ] }) : null,
2212
- /* @__PURE__ */ jsx28("span", { className: "ss-w-fandash-card-cta", children: card.actionLabel })
2237
+ /* @__PURE__ */ jsx29("span", { className: "ss-w-fandash-card-cta", children: card.actionLabel })
2213
2238
  ] });
2214
2239
  }
2215
2240
 
2216
2241
  // src/components/dashboard/PostMatchTopPerformerCard.tsx
2217
- import { jsx as jsx29, jsxs as jsxs25 } from "react/jsx-runtime";
2242
+ import { jsx as jsx30, jsxs as jsxs25 } from "react/jsx-runtime";
2218
2243
  function initials4(playerName) {
2219
2244
  const words = playerName.trim().split(/\s+/).filter(Boolean);
2220
2245
  if (words.length === 0) return "?";
@@ -2225,71 +2250,71 @@ function initials4(playerName) {
2225
2250
  function PostMatchTopPerformerCard({ card, onTap }) {
2226
2251
  const { data } = card;
2227
2252
  return /* @__PURE__ */ jsxs25("button", { type: "button", className: "ss-w-fandash-card ss-w-fandash-card--tap ss-w-fandash-postmatch-performer", onClick: () => onTap(card), children: [
2228
- card.title ? /* @__PURE__ */ jsx29("span", { className: "ss-w-fandash-eyebrow", children: card.title }) : null,
2253
+ card.title ? /* @__PURE__ */ jsx30("span", { className: "ss-w-fandash-eyebrow", children: card.title }) : null,
2229
2254
  /* @__PURE__ */ jsxs25("div", { className: "ss-w-fandash-postmatch-perf-row", children: [
2230
- /* @__PURE__ */ jsx29("span", { className: "ss-w-fandash-postmatch-perf-avatar", "aria-hidden": "true", children: initials4(data.playerName) }),
2231
- /* @__PURE__ */ jsx29("span", { className: "ss-w-fandash-postmatch-perf-name", children: data.playerName }),
2232
- /* @__PURE__ */ jsx29("span", { className: "ss-w-fandash-postmatch-perf-rating", children: data.ratingLabel })
2255
+ /* @__PURE__ */ jsx30("span", { className: "ss-w-fandash-postmatch-perf-avatar", "aria-hidden": "true", children: initials4(data.playerName) }),
2256
+ /* @__PURE__ */ jsx30("span", { className: "ss-w-fandash-postmatch-perf-name", children: data.playerName }),
2257
+ /* @__PURE__ */ jsx30("span", { className: "ss-w-fandash-postmatch-perf-rating", children: data.ratingLabel })
2233
2258
  ] }),
2234
- /* @__PURE__ */ jsx29("span", { className: "ss-w-fandash-card-cta", children: card.actionLabel })
2259
+ /* @__PURE__ */ jsx30("span", { className: "ss-w-fandash-card-cta", children: card.actionLabel })
2235
2260
  ] });
2236
2261
  }
2237
2262
 
2238
2263
  // src/components/dashboard/PostMatchNextCard.tsx
2239
- import { jsx as jsx30, jsxs as jsxs26 } from "react/jsx-runtime";
2264
+ import { jsx as jsx31, jsxs as jsxs26 } from "react/jsx-runtime";
2240
2265
  function PostMatchNextCard({ card }) {
2241
2266
  const { data } = card;
2242
2267
  return /* @__PURE__ */ jsxs26("div", { className: "ss-w-fandash-card ss-w-fandash-postmatch-next", children: [
2243
- card.title ? /* @__PURE__ */ jsx30("span", { className: "ss-w-fandash-eyebrow", children: card.title }) : null,
2244
- /* @__PURE__ */ jsx30("div", { className: "ss-w-fandash-postmatch-next-row", children: /* @__PURE__ */ jsx30("span", { className: "ss-w-fandash-postmatch-next-when", children: data.whenLabel }) })
2268
+ card.title ? /* @__PURE__ */ jsx31("span", { className: "ss-w-fandash-eyebrow", children: card.title }) : null,
2269
+ /* @__PURE__ */ jsx31("div", { className: "ss-w-fandash-postmatch-next-row", children: /* @__PURE__ */ jsx31("span", { className: "ss-w-fandash-postmatch-next-when", children: data.whenLabel }) })
2245
2270
  ] });
2246
2271
  }
2247
2272
 
2248
2273
  // src/components/dashboard/RestingNextCard.tsx
2249
- import { jsx as jsx31, jsxs as jsxs27 } from "react/jsx-runtime";
2274
+ import { jsx as jsx32, jsxs as jsxs27 } from "react/jsx-runtime";
2250
2275
  function RestingNextCard({ card, onTap }) {
2251
2276
  const { data } = card;
2252
2277
  return /* @__PURE__ */ jsxs27("button", { type: "button", className: "ss-w-fandash-card ss-w-fandash-card--tap ss-w-fandash-resting-next", onClick: () => onTap(card), children: [
2253
- card.title ? /* @__PURE__ */ jsx31("span", { className: "ss-w-fandash-eyebrow", children: card.title }) : null,
2278
+ card.title ? /* @__PURE__ */ jsx32("span", { className: "ss-w-fandash-eyebrow", children: card.title }) : null,
2254
2279
  /* @__PURE__ */ jsxs27("div", { className: "ss-w-fandash-resting-next-row", children: [
2255
- /* @__PURE__ */ jsx31("span", { className: "ss-w-fandash-resting-next-when", children: data.whenLabel }),
2256
- data.competition ? /* @__PURE__ */ jsx31("span", { className: "ss-w-fandash-resting-next-competition", children: data.competition }) : null
2280
+ /* @__PURE__ */ jsx32("span", { className: "ss-w-fandash-resting-next-when", children: data.whenLabel }),
2281
+ data.competition ? /* @__PURE__ */ jsx32("span", { className: "ss-w-fandash-resting-next-competition", children: data.competition }) : null
2257
2282
  ] }),
2258
- /* @__PURE__ */ jsx31("span", { className: "ss-w-fandash-card-cta", children: card.actionLabel })
2283
+ /* @__PURE__ */ jsx32("span", { className: "ss-w-fandash-card-cta", children: card.actionLabel })
2259
2284
  ] });
2260
2285
  }
2261
2286
 
2262
2287
  // src/components/dashboard/RestingStandingsCard.tsx
2263
- import { jsx as jsx32, jsxs as jsxs28 } from "react/jsx-runtime";
2288
+ import { jsx as jsx33, jsxs as jsxs28 } from "react/jsx-runtime";
2264
2289
  function RestingStandingsCard({ card, onTap }) {
2265
2290
  const { data } = card;
2266
2291
  return /* @__PURE__ */ jsxs28("button", { type: "button", className: "ss-w-fandash-card ss-w-fandash-card--tap ss-w-fandash-resting-standings", onClick: () => onTap(card), children: [
2267
- card.title ? /* @__PURE__ */ jsx32("span", { className: "ss-w-fandash-eyebrow", children: card.title }) : null,
2292
+ card.title ? /* @__PURE__ */ jsx33("span", { className: "ss-w-fandash-eyebrow", children: card.title }) : null,
2268
2293
  /* @__PURE__ */ jsxs28("div", { className: "ss-w-fandash-resting-standings-row", children: [
2269
- /* @__PURE__ */ jsx32("span", { className: "ss-w-fandash-resting-standings-position", children: data.positionLabel }),
2270
- /* @__PURE__ */ jsx32("span", { className: "ss-w-fandash-resting-standings-record", children: data.recordLabel })
2294
+ /* @__PURE__ */ jsx33("span", { className: "ss-w-fandash-resting-standings-position", children: data.positionLabel }),
2295
+ /* @__PURE__ */ jsx33("span", { className: "ss-w-fandash-resting-standings-record", children: data.recordLabel })
2271
2296
  ] }),
2272
- /* @__PURE__ */ jsx32("span", { className: "ss-w-fandash-card-cta", children: card.actionLabel })
2297
+ /* @__PURE__ */ jsx33("span", { className: "ss-w-fandash-card-cta", children: card.actionLabel })
2273
2298
  ] });
2274
2299
  }
2275
2300
 
2276
2301
  // src/components/dashboard/RestingSeasonCard.tsx
2277
- import { jsx as jsx33, jsxs as jsxs29 } from "react/jsx-runtime";
2302
+ import { jsx as jsx34, jsxs as jsxs29 } from "react/jsx-runtime";
2278
2303
  function RestingSeasonCard({ card, onTap }) {
2279
2304
  const { data } = card;
2280
2305
  return /* @__PURE__ */ jsxs29("button", { type: "button", className: "ss-w-fandash-card ss-w-fandash-card--tap ss-w-fandash-resting-season", onClick: () => onTap(card), children: [
2281
- card.title ? /* @__PURE__ */ jsx33("span", { className: "ss-w-fandash-eyebrow", children: card.title }) : null,
2306
+ card.title ? /* @__PURE__ */ jsx34("span", { className: "ss-w-fandash-eyebrow", children: card.title }) : null,
2282
2307
  /* @__PURE__ */ jsxs29("div", { className: "ss-w-fandash-resting-season-rows", children: [
2283
- data.scorerLabel ? /* @__PURE__ */ jsx33("span", { className: "ss-w-fandash-resting-season-row", children: data.scorerLabel }) : null,
2284
- data.playerLabel ? /* @__PURE__ */ jsx33("span", { className: "ss-w-fandash-resting-season-row", children: data.playerLabel }) : null,
2285
- /* @__PURE__ */ jsx33("span", { className: "ss-w-fandash-resting-season-row", children: data.tallyLabel })
2308
+ data.scorerLabel ? /* @__PURE__ */ jsx34("span", { className: "ss-w-fandash-resting-season-row", children: data.scorerLabel }) : null,
2309
+ data.playerLabel ? /* @__PURE__ */ jsx34("span", { className: "ss-w-fandash-resting-season-row", children: data.playerLabel }) : null,
2310
+ /* @__PURE__ */ jsx34("span", { className: "ss-w-fandash-resting-season-row", children: data.tallyLabel })
2286
2311
  ] }),
2287
- /* @__PURE__ */ jsx33("span", { className: "ss-w-fandash-card-cta", children: card.actionLabel })
2312
+ /* @__PURE__ */ jsx34("span", { className: "ss-w-fandash-card-cta", children: card.actionLabel })
2288
2313
  ] });
2289
2314
  }
2290
2315
 
2291
2316
  // src/components/dashboard/RestingFormCard.tsx
2292
- import { jsx as jsx34, jsxs as jsxs30 } from "react/jsx-runtime";
2317
+ import { jsx as jsx35, jsxs as jsxs30 } from "react/jsx-runtime";
2293
2318
  function resultClass(result) {
2294
2319
  const upper = result.toUpperCase();
2295
2320
  if (upper === "W") return "ss-w-fandash-form-pill--win";
@@ -2299,16 +2324,16 @@ function resultClass(result) {
2299
2324
  function RestingFormCard({ card }) {
2300
2325
  const { data } = card;
2301
2326
  return /* @__PURE__ */ jsxs30("div", { className: "ss-w-fandash-card ss-w-fandash-resting-form", children: [
2302
- card.title ? /* @__PURE__ */ jsx34("span", { className: "ss-w-fandash-eyebrow", children: card.title }) : null,
2303
- /* @__PURE__ */ jsx34("span", { className: "ss-w-fandash-form", children: data.letters.map((r, i) => /* @__PURE__ */ jsx34("span", { className: `ss-w-fandash-form-pill ${resultClass(r)}`, children: r }, `${r}-${i}`)) })
2327
+ card.title ? /* @__PURE__ */ jsx35("span", { className: "ss-w-fandash-eyebrow", children: card.title }) : null,
2328
+ /* @__PURE__ */ jsx35("span", { className: "ss-w-fandash-form", children: data.letters.map((r, i) => /* @__PURE__ */ jsx35("span", { className: `ss-w-fandash-form-pill ${resultClass(r)}`, children: r }, `${r}-${i}`)) })
2304
2329
  ] });
2305
2330
  }
2306
2331
 
2307
2332
  // src/components/dashboard/LiveScoreCard.tsx
2308
- import { useRef as useRef4, useState as useState12 } from "react";
2333
+ import { useRef as useRef4, useState as useState13 } from "react";
2309
2334
 
2310
2335
  // src/useLiveClock.ts
2311
- import { useEffect as useEffect6, useState as useState11 } from "react";
2336
+ import { useEffect as useEffect6, useState as useState12 } from "react";
2312
2337
  var TICK_MS = 6e4;
2313
2338
  var MAX_LIVE_TICK_MINUTES = 15;
2314
2339
  function computeDisplayMinute(minute, clockRunning, receivedAtMs) {
@@ -2317,7 +2342,7 @@ function computeDisplayMinute(minute, clockRunning, receivedAtMs) {
2317
2342
  return minute + Math.min(Math.max(0, elapsedMinutes), MAX_LIVE_TICK_MINUTES);
2318
2343
  }
2319
2344
  function useLiveClock(minute, clockRunning, receivedAtMs) {
2320
- const [displayMinute, setDisplayMinute] = useState11(
2345
+ const [displayMinute, setDisplayMinute] = useState12(
2321
2346
  () => computeDisplayMinute(minute, clockRunning, receivedAtMs)
2322
2347
  );
2323
2348
  useEffect6(() => {
@@ -2332,17 +2357,17 @@ function useLiveClock(minute, clockRunning, receivedAtMs) {
2332
2357
  }
2333
2358
 
2334
2359
  // src/components/dashboard/LiveScoreCard.tsx
2335
- import { jsx as jsx35, jsxs as jsxs31 } from "react/jsx-runtime";
2360
+ import { jsx as jsx36, jsxs as jsxs31 } from "react/jsx-runtime";
2336
2361
  function initials5(name) {
2337
2362
  return name.trim().slice(0, 3).toUpperCase();
2338
2363
  }
2339
2364
  function LiveCrest({ url, name, side }) {
2340
- const [failed, setFailed] = useState12(false);
2365
+ const [failed, setFailed] = useState13(false);
2341
2366
  const cls = `ss-w-fandash-live-crest ss-w-fandash-live-crest--${side}`;
2342
2367
  if (url && !failed) {
2343
- return /* @__PURE__ */ jsx35("img", { className: cls, src: url, alt: "", "aria-hidden": "true", onError: () => setFailed(true) });
2368
+ return /* @__PURE__ */ jsx36("img", { className: cls, src: url, alt: "", "aria-hidden": "true", onError: () => setFailed(true) });
2344
2369
  }
2345
- return /* @__PURE__ */ jsx35("span", { className: `${cls} ss-w-fandash-live-crest--fallback`, "aria-hidden": "true", children: initials5(name) });
2370
+ return /* @__PURE__ */ jsx36("span", { className: `${cls} ss-w-fandash-live-crest--fallback`, "aria-hidden": "true", children: initials5(name) });
2346
2371
  }
2347
2372
  function scorersLine(goalEvents) {
2348
2373
  if (!goalEvents || goalEvents.length === 0) return null;
@@ -2364,52 +2389,52 @@ function LiveScoreCard({
2364
2389
  const minuteSuffix = data.minuteLabel.replace(/^\d+/, "");
2365
2390
  const scorers = scorersLine(goalEvents);
2366
2391
  return /* @__PURE__ */ jsxs31("div", { className: "ss-w-fandash-card ss-w-fandash-live-score", children: [
2367
- card.title ? /* @__PURE__ */ jsx35("span", { className: "ss-w-fandash-eyebrow", children: card.title }) : null,
2392
+ card.title ? /* @__PURE__ */ jsx36("span", { className: "ss-w-fandash-eyebrow", children: card.title }) : null,
2368
2393
  /* @__PURE__ */ jsxs31("div", { className: "ss-w-fandash-live-top", children: [
2369
2394
  /* @__PURE__ */ jsxs31("span", { className: "ss-w-fandash-live-pill", children: [
2370
- /* @__PURE__ */ jsx35("span", { className: "ss-w-fandash-live-dot", "aria-hidden": "true" }),
2395
+ /* @__PURE__ */ jsx36("span", { className: "ss-w-fandash-live-dot", "aria-hidden": "true" }),
2371
2396
  data.statusLabel
2372
2397
  ] }),
2373
- /* @__PURE__ */ jsx35("span", { className: "ss-w-fandash-live-minute", children: `${displayMinute}${minuteSuffix}` }),
2374
- data.competition ? /* @__PURE__ */ jsx35("span", { className: "ss-w-fandash-live-competition", children: data.competition }) : null
2398
+ /* @__PURE__ */ jsx36("span", { className: "ss-w-fandash-live-minute", children: `${displayMinute}${minuteSuffix}` }),
2399
+ data.competition ? /* @__PURE__ */ jsx36("span", { className: "ss-w-fandash-live-competition", children: data.competition }) : null
2375
2400
  ] }),
2376
2401
  /* @__PURE__ */ jsxs31("div", { className: "ss-w-fandash-live-main", children: [
2377
2402
  /* @__PURE__ */ jsxs31("div", { className: "ss-w-fandash-live-side ss-w-fandash-live-side--home", children: [
2378
- /* @__PURE__ */ jsx35(LiveCrest, { url: data.homeCrestUrl, name: data.homeName, side: "home" }),
2379
- /* @__PURE__ */ jsx35("span", { className: "ss-w-fandash-live-team-name", children: data.homeName })
2403
+ /* @__PURE__ */ jsx36(LiveCrest, { url: data.homeCrestUrl, name: data.homeName, side: "home" }),
2404
+ /* @__PURE__ */ jsx36("span", { className: "ss-w-fandash-live-team-name", children: data.homeName })
2380
2405
  ] }),
2381
2406
  /* @__PURE__ */ jsxs31("div", { className: "ss-w-fandash-live-score-main", children: [
2382
- /* @__PURE__ */ jsx35("span", { className: "ss-w-fandash-live-score-value", children: data.homeScore }),
2383
- /* @__PURE__ */ jsx35("span", { className: "ss-w-fandash-live-score-sep", children: "\u2013" }),
2384
- /* @__PURE__ */ jsx35("span", { className: "ss-w-fandash-live-score-value", children: data.awayScore })
2407
+ /* @__PURE__ */ jsx36("span", { className: "ss-w-fandash-live-score-value", children: data.homeScore }),
2408
+ /* @__PURE__ */ jsx36("span", { className: "ss-w-fandash-live-score-sep", children: "\u2013" }),
2409
+ /* @__PURE__ */ jsx36("span", { className: "ss-w-fandash-live-score-value", children: data.awayScore })
2385
2410
  ] }),
2386
2411
  /* @__PURE__ */ jsxs31("div", { className: "ss-w-fandash-live-side ss-w-fandash-live-side--away", children: [
2387
- /* @__PURE__ */ jsx35(LiveCrest, { url: data.awayCrestUrl, name: data.awayName, side: "away" }),
2388
- /* @__PURE__ */ jsx35("span", { className: "ss-w-fandash-live-team-name", children: data.awayName })
2412
+ /* @__PURE__ */ jsx36(LiveCrest, { url: data.awayCrestUrl, name: data.awayName, side: "away" }),
2413
+ /* @__PURE__ */ jsx36("span", { className: "ss-w-fandash-live-team-name", children: data.awayName })
2389
2414
  ] })
2390
2415
  ] }),
2391
2416
  scorers ? /* @__PURE__ */ jsxs31("div", { className: "ss-w-fandash-live-scorers", children: [
2392
- /* @__PURE__ */ jsx35("span", { className: "ss-w-fandash-live-scorers-icon", "aria-hidden": "true", children: "\u26BD" }),
2417
+ /* @__PURE__ */ jsx36("span", { className: "ss-w-fandash-live-scorers-icon", "aria-hidden": "true", children: "\u26BD" }),
2393
2418
  scorers
2394
2419
  ] }) : null
2395
2420
  ] });
2396
2421
  }
2397
2422
 
2398
2423
  // src/components/dashboard/LiveTimelineCard.tsx
2399
- import { useState as useState13 } from "react";
2400
- import { jsx as jsx36, jsxs as jsxs32 } from "react/jsx-runtime";
2424
+ import { useState as useState14 } from "react";
2425
+ import { jsx as jsx37, jsxs as jsxs32 } from "react/jsx-runtime";
2401
2426
  var SHOWN2 = 3;
2402
2427
  function EventIcon({ type }) {
2403
2428
  if (type === "goal") {
2404
- return /* @__PURE__ */ jsx36("span", { className: "ss-w-fandash-live-tl-ico ss-w-fandash-live-tl-ico--goal", "aria-hidden": "true", children: /* @__PURE__ */ jsx36("span", { className: "ss-w-fandash-live-tl-ball" }) });
2429
+ return /* @__PURE__ */ jsx37("span", { className: "ss-w-fandash-live-tl-ico ss-w-fandash-live-tl-ico--goal", "aria-hidden": "true", children: /* @__PURE__ */ jsx37("span", { className: "ss-w-fandash-live-tl-ball" }) });
2405
2430
  }
2406
2431
  if (type === "yellow" || type === "red") {
2407
- return /* @__PURE__ */ jsx36("span", { className: "ss-w-fandash-live-tl-ico", "aria-hidden": "true", children: /* @__PURE__ */ jsx36("span", { className: `ss-w-fandash-live-tl-card ss-w-fandash-live-tl-card--${type}` }) });
2432
+ return /* @__PURE__ */ jsx37("span", { className: "ss-w-fandash-live-tl-ico", "aria-hidden": "true", children: /* @__PURE__ */ jsx37("span", { className: `ss-w-fandash-live-tl-card ss-w-fandash-live-tl-card--${type}` }) });
2408
2433
  }
2409
2434
  if (type === "sub") {
2410
- return /* @__PURE__ */ jsx36("span", { className: "ss-w-fandash-live-tl-ico", "aria-hidden": "true", children: /* @__PURE__ */ jsx36("span", { className: "ss-w-fandash-live-tl-subarrows", children: "\u21C5" }) });
2435
+ return /* @__PURE__ */ jsx37("span", { className: "ss-w-fandash-live-tl-ico", "aria-hidden": "true", children: /* @__PURE__ */ jsx37("span", { className: "ss-w-fandash-live-tl-subarrows", children: "\u21C5" }) });
2411
2436
  }
2412
- return /* @__PURE__ */ jsx36("span", { className: "ss-w-fandash-live-tl-ico", "aria-hidden": "true", children: /* @__PURE__ */ jsx36("span", { className: "ss-w-fandash-live-tl-dot" }) });
2437
+ return /* @__PURE__ */ jsx37("span", { className: "ss-w-fandash-live-tl-ico", "aria-hidden": "true", children: /* @__PURE__ */ jsx37("span", { className: "ss-w-fandash-live-tl-dot" }) });
2413
2438
  }
2414
2439
  function EventLabel({ e }) {
2415
2440
  if (e.type === "sub") {
@@ -2421,7 +2446,7 @@ function EventLabel({ e }) {
2421
2446
  ] }) : null
2422
2447
  ] });
2423
2448
  }
2424
- return /* @__PURE__ */ jsx36("span", { className: "ss-w-fandash-live-tl-who", children: e.player ?? e.text });
2449
+ return /* @__PURE__ */ jsx37("span", { className: "ss-w-fandash-live-tl-who", children: e.player ?? e.text });
2425
2450
  }
2426
2451
  function EventRow({ e }) {
2427
2452
  const cls = [
@@ -2431,14 +2456,14 @@ function EventRow({ e }) {
2431
2456
  ].filter(Boolean).join(" ");
2432
2457
  return /* @__PURE__ */ jsxs32("div", { className: cls, children: [
2433
2458
  /* @__PURE__ */ jsxs32("span", { className: "ss-w-fandash-live-tl-txt", children: [
2434
- /* @__PURE__ */ jsx36(EventLabel, { e }),
2435
- /* @__PURE__ */ jsx36(EventIcon, { type: e.type })
2459
+ /* @__PURE__ */ jsx37(EventLabel, { e }),
2460
+ /* @__PURE__ */ jsx37(EventIcon, { type: e.type })
2436
2461
  ] }),
2437
- /* @__PURE__ */ jsx36("span", { className: "ss-w-fandash-live-tl-badge", children: e.minuteLabel })
2462
+ /* @__PURE__ */ jsx37("span", { className: "ss-w-fandash-live-tl-badge", children: e.minuteLabel })
2438
2463
  ] });
2439
2464
  }
2440
2465
  function LiveTimelineCard({ card, ui }) {
2441
- const [expanded, setExpanded] = useState13(false);
2466
+ const [expanded, setExpanded] = useState14(false);
2442
2467
  const events = card.data.events;
2443
2468
  if (!events || events.length === 0) return null;
2444
2469
  const sorted = [...events].sort((a, b) => b.minute - a.minute);
@@ -2447,9 +2472,9 @@ function LiveTimelineCard({ card, ui }) {
2447
2472
  const showMore = ui?.showMore ?? ((n) => `Show ${n} more`);
2448
2473
  const showLess = ui?.showLess ?? "Show less";
2449
2474
  return /* @__PURE__ */ jsxs32("div", { className: "ss-w-fandash-card ss-w-fandash-live-timeline", children: [
2450
- card.title ? /* @__PURE__ */ jsx36("span", { className: "ss-w-fandash-eyebrow", children: card.title }) : null,
2451
- /* @__PURE__ */ jsx36("div", { className: "ss-w-fandash-live-tl", children: shown.map((e, i) => /* @__PURE__ */ jsx36(EventRow, { e }, `${e.minute}-${e.side}-${e.type}-${i}`)) }),
2452
- rest > 0 ? /* @__PURE__ */ jsx36(
2475
+ card.title ? /* @__PURE__ */ jsx37("span", { className: "ss-w-fandash-eyebrow", children: card.title }) : null,
2476
+ /* @__PURE__ */ jsx37("div", { className: "ss-w-fandash-live-tl", children: shown.map((e, i) => /* @__PURE__ */ jsx37(EventRow, { e }, `${e.minute}-${e.side}-${e.type}-${i}`)) }),
2477
+ rest > 0 ? /* @__PURE__ */ jsx37(
2453
2478
  "button",
2454
2479
  {
2455
2480
  type: "button",
@@ -2464,7 +2489,7 @@ function LiveTimelineCard({ card, ui }) {
2464
2489
 
2465
2490
  // src/components/dashboard/MomentumWave.tsx
2466
2491
  import { useId } from "react";
2467
- import { jsx as jsx37, jsxs as jsxs33 } from "react/jsx-runtime";
2492
+ import { jsx as jsx38, jsxs as jsxs33 } from "react/jsx-runtime";
2468
2493
  var WIDTH = 270;
2469
2494
  var HEIGHT = 56;
2470
2495
  var BASELINE = HEIGHT / 2;
@@ -2493,7 +2518,7 @@ function MomentumWave({
2493
2518
  const topClass = clubIsHome ? "ss-w-fandash-live-mom-home" : "ss-w-fandash-live-mom-away";
2494
2519
  const bottomClass = clubIsHome ? "ss-w-fandash-live-mom-away" : "ss-w-fandash-live-mom-home";
2495
2520
  return /* @__PURE__ */ jsxs33("div", { className: "ss-w-fandash-live-mom", children: [
2496
- caption ? /* @__PURE__ */ jsx37("span", { className: "ss-w-fandash-live-mom-caption", children: caption }) : null,
2521
+ caption ? /* @__PURE__ */ jsx38("span", { className: "ss-w-fandash-live-mom-caption", children: caption }) : null,
2497
2522
  /* @__PURE__ */ jsxs33("div", { className: "ss-w-fandash-live-mom-plot", children: [
2498
2523
  /* @__PURE__ */ jsxs33(
2499
2524
  "svg",
@@ -2505,17 +2530,17 @@ function MomentumWave({
2505
2530
  "aria-label": caption ?? "Momentum",
2506
2531
  children: [
2507
2532
  /* @__PURE__ */ jsxs33("defs", { children: [
2508
- /* @__PURE__ */ jsx37("clipPath", { id: topClipId, children: /* @__PURE__ */ jsx37("rect", { x: 0, y: 0, width: WIDTH, height: BASELINE }) }),
2509
- /* @__PURE__ */ jsx37("clipPath", { id: bottomClipId, children: /* @__PURE__ */ jsx37("rect", { x: 0, y: BASELINE, width: WIDTH, height: HEIGHT - BASELINE }) })
2533
+ /* @__PURE__ */ jsx38("clipPath", { id: topClipId, children: /* @__PURE__ */ jsx38("rect", { x: 0, y: 0, width: WIDTH, height: BASELINE }) }),
2534
+ /* @__PURE__ */ jsx38("clipPath", { id: bottomClipId, children: /* @__PURE__ */ jsx38("rect", { x: 0, y: BASELINE, width: WIDTH, height: HEIGHT - BASELINE }) })
2510
2535
  ] }),
2511
- /* @__PURE__ */ jsx37("path", { d: area, className: topClass, clipPath: `url(#${topClipId})` }),
2512
- /* @__PURE__ */ jsx37("path", { d: area, className: bottomClass, clipPath: `url(#${bottomClipId})` }),
2513
- /* @__PURE__ */ jsx37("line", { x1: 0, y1: BASELINE, x2: WIDTH, y2: BASELINE, className: "ss-w-fandash-live-mom-base" }),
2514
- /* @__PURE__ */ jsx37("path", { d: line, className: "ss-w-fandash-live-mom-line", vectorEffect: "non-scaling-stroke" })
2536
+ /* @__PURE__ */ jsx38("path", { d: area, className: topClass, clipPath: `url(#${topClipId})` }),
2537
+ /* @__PURE__ */ jsx38("path", { d: area, className: bottomClass, clipPath: `url(#${bottomClipId})` }),
2538
+ /* @__PURE__ */ jsx38("line", { x1: 0, y1: BASELINE, x2: WIDTH, y2: BASELINE, className: "ss-w-fandash-live-mom-base" }),
2539
+ /* @__PURE__ */ jsx38("path", { d: line, className: "ss-w-fandash-live-mom-line", vectorEffect: "non-scaling-stroke" })
2515
2540
  ]
2516
2541
  }
2517
2542
  ),
2518
- /* @__PURE__ */ jsx37(
2543
+ /* @__PURE__ */ jsx38(
2519
2544
  "span",
2520
2545
  {
2521
2546
  className: "ss-w-fandash-live-mom-now",
@@ -2528,7 +2553,7 @@ function MomentumWave({
2528
2553
  }
2529
2554
 
2530
2555
  // src/components/dashboard/LiveStatsCard.tsx
2531
- import { jsx as jsx38, jsxs as jsxs34 } from "react/jsx-runtime";
2556
+ import { jsx as jsx39, jsxs as jsxs34 } from "react/jsx-runtime";
2532
2557
  function splitWidths2(homeNum, awayNum) {
2533
2558
  const total = homeNum + awayNum;
2534
2559
  if (total <= 0) return { home: "50%", away: "50%" };
@@ -2538,8 +2563,8 @@ function splitWidths2(homeNum, awayNum) {
2538
2563
  function LiveStatsCard({ card }) {
2539
2564
  const { data } = card;
2540
2565
  return /* @__PURE__ */ jsxs34("div", { className: "ss-w-fandash-card ss-w-fandash-live-stats", children: [
2541
- card.title ? /* @__PURE__ */ jsx38("span", { className: "ss-w-fandash-eyebrow", children: card.title }) : null,
2542
- /* @__PURE__ */ jsx38("div", { className: "ss-w-fandash-live-stat-rows", children: data.rows.map((r, i) => {
2566
+ card.title ? /* @__PURE__ */ jsx39("span", { className: "ss-w-fandash-eyebrow", children: card.title }) : null,
2567
+ /* @__PURE__ */ jsx39("div", { className: "ss-w-fandash-live-stat-rows", children: data.rows.map((r, i) => {
2543
2568
  const homeValue = data.clubIsHome ? r.clubValue : r.oppValue;
2544
2569
  const awayValue = data.clubIsHome ? r.oppValue : r.clubValue;
2545
2570
  const homeNum = data.clubIsHome ? r.clubNum : r.oppNum;
@@ -2547,24 +2572,24 @@ function LiveStatsCard({ card }) {
2547
2572
  const { home, away } = splitWidths2(homeNum, awayNum);
2548
2573
  return /* @__PURE__ */ jsxs34("div", { className: "ss-w-fandash-live-stat", children: [
2549
2574
  /* @__PURE__ */ jsxs34("div", { className: "ss-w-fandash-live-stat-row", children: [
2550
- /* @__PURE__ */ jsx38("span", { className: "ss-w-fandash-live-stat-value ss-w-fandash-live-stat-value--home", children: homeValue }),
2551
- /* @__PURE__ */ jsx38("span", { className: "ss-w-fandash-live-stat-label", children: r.label }),
2552
- /* @__PURE__ */ jsx38("span", { className: "ss-w-fandash-live-stat-value ss-w-fandash-live-stat-value--away", children: awayValue })
2575
+ /* @__PURE__ */ jsx39("span", { className: "ss-w-fandash-live-stat-value ss-w-fandash-live-stat-value--home", children: homeValue }),
2576
+ /* @__PURE__ */ jsx39("span", { className: "ss-w-fandash-live-stat-label", children: r.label }),
2577
+ /* @__PURE__ */ jsx39("span", { className: "ss-w-fandash-live-stat-value ss-w-fandash-live-stat-value--away", children: awayValue })
2553
2578
  ] }),
2554
2579
  /* @__PURE__ */ jsxs34("div", { className: "ss-w-fandash-live-bar", children: [
2555
- /* @__PURE__ */ jsx38("span", { className: "ss-w-fandash-live-bar-home", style: { width: home } }),
2556
- /* @__PURE__ */ jsx38("span", { className: "ss-w-fandash-live-bar-away", style: { width: away } })
2580
+ /* @__PURE__ */ jsx39("span", { className: "ss-w-fandash-live-bar-home", style: { width: home } }),
2581
+ /* @__PURE__ */ jsx39("span", { className: "ss-w-fandash-live-bar-away", style: { width: away } })
2557
2582
  ] })
2558
2583
  ] }, `${r.label}-${i}`);
2559
2584
  }) }),
2560
- data.momentum.length > 0 ? /* @__PURE__ */ jsx38(MomentumWave, { points: data.momentum, caption: data.momentumLabel, clubIsHome: data.clubIsHome }) : data.momentumLabel ? /* @__PURE__ */ jsx38("span", { className: "ss-w-fandash-live-momentum", children: data.momentumLabel }) : null,
2585
+ data.momentum.length > 0 ? /* @__PURE__ */ jsx39(MomentumWave, { points: data.momentum, caption: data.momentumLabel, clubIsHome: data.clubIsHome }) : data.momentumLabel ? /* @__PURE__ */ jsx39("span", { className: "ss-w-fandash-live-momentum", children: data.momentumLabel }) : null,
2561
2586
  data.rows.length > 0 ? /* @__PURE__ */ jsxs34("div", { className: "ss-w-fandash-live-legend", children: [
2562
2587
  /* @__PURE__ */ jsxs34("span", { className: "ss-w-fandash-live-legend-item", children: [
2563
- /* @__PURE__ */ jsx38("i", { className: "ss-w-fandash-live-legend-swatch ss-w-fandash-live-legend-swatch--home" }),
2588
+ /* @__PURE__ */ jsx39("i", { className: "ss-w-fandash-live-legend-swatch ss-w-fandash-live-legend-swatch--home" }),
2564
2589
  data.homeName
2565
2590
  ] }),
2566
2591
  /* @__PURE__ */ jsxs34("span", { className: "ss-w-fandash-live-legend-item", children: [
2567
- /* @__PURE__ */ jsx38("i", { className: "ss-w-fandash-live-legend-swatch ss-w-fandash-live-legend-swatch--away" }),
2592
+ /* @__PURE__ */ jsx39("i", { className: "ss-w-fandash-live-legend-swatch ss-w-fandash-live-legend-swatch--away" }),
2568
2593
  data.awayName
2569
2594
  ] })
2570
2595
  ] }) : null
@@ -2572,7 +2597,7 @@ function LiveStatsCard({ card }) {
2572
2597
  }
2573
2598
 
2574
2599
  // src/components/dashboard/ClubFanDashboard.tsx
2575
- import { jsx as jsx39, jsxs as jsxs35 } from "react/jsx-runtime";
2600
+ import { jsx as jsx40, jsxs as jsxs35 } from "react/jsx-runtime";
2576
2601
  function ClubFanDashboard({ dashboard, onTap, ui }) {
2577
2602
  const orderedCards = [
2578
2603
  ...dashboard.cards.filter((c) => c.cardType === "countdown"),
@@ -2583,83 +2608,83 @@ function ClubFanDashboard({ dashboard, onTap, ui }) {
2583
2608
  );
2584
2609
  const goalEvents = timelineCard?.data.events.filter((e) => e.type === "goal");
2585
2610
  return /* @__PURE__ */ jsxs35("div", { className: "ss-w-fandash", children: [
2586
- dashboard.greeting ? /* @__PURE__ */ jsx39("span", { className: dashboard.greetingIsLead ? "ss-w-fandash-greeting ss-w-fandash-greeting--lead" : "ss-w-fandash-greeting", children: dashboard.greeting }) : null,
2587
- /* @__PURE__ */ jsx39("div", { className: "ss-w-fandash-cards", children: orderedCards.map((card, i) => /* @__PURE__ */ jsx39(FanDashboardCard, { card, onTap, ui, goalEvents }, `${card.cardType}-${i}`)) })
2611
+ dashboard.greeting ? /* @__PURE__ */ jsx40("span", { className: dashboard.greetingIsLead ? "ss-w-fandash-greeting ss-w-fandash-greeting--lead" : "ss-w-fandash-greeting", children: dashboard.greeting }) : null,
2612
+ /* @__PURE__ */ jsx40("div", { className: "ss-w-fandash-cards", children: orderedCards.map((card, i) => /* @__PURE__ */ jsx40(FanDashboardCard, { card, onTap, ui, goalEvents }, `${card.cardType}-${i}`)) })
2588
2613
  ] });
2589
2614
  }
2590
2615
  function FanDashboardCard({ card, onTap, ui, goalEvents }) {
2591
2616
  switch (card.cardType) {
2592
2617
  case "fixture":
2593
- return /* @__PURE__ */ jsx39(FixtureCard, { card });
2618
+ return /* @__PURE__ */ jsx40(FixtureCard, { card });
2594
2619
  case "countdown":
2595
- return /* @__PURE__ */ jsx39(CountdownCard, { card });
2620
+ return /* @__PURE__ */ jsx40(CountdownCard, { card });
2596
2621
  case "injuries":
2597
- return /* @__PURE__ */ jsx39(InjuriesCard, { card, ui });
2622
+ return /* @__PURE__ */ jsx40(InjuriesCard, { card, ui });
2598
2623
  case "reasonToBet":
2599
- return /* @__PURE__ */ jsx39(ReasonToBetCard, { card });
2624
+ return /* @__PURE__ */ jsx40(ReasonToBetCard, { card });
2600
2625
  case "whereToWatch":
2601
- return /* @__PURE__ */ jsx39(WhereToWatchCard, { card });
2626
+ return /* @__PURE__ */ jsx40(WhereToWatchCard, { card });
2602
2627
  case "congestedWeek":
2603
- return /* @__PURE__ */ jsx39(CongestedWeekCard, { card, onTap });
2628
+ return /* @__PURE__ */ jsx40(CongestedWeekCard, { card, onTap });
2604
2629
  case "transfers":
2605
- return /* @__PURE__ */ jsx39(TransfersCard, { card });
2630
+ return /* @__PURE__ */ jsx40(TransfersCard, { card });
2606
2631
  case "links":
2607
- return /* @__PURE__ */ jsx39(LinksCard, { card });
2632
+ return /* @__PURE__ */ jsx40(LinksCard, { card });
2608
2633
  case "postMatchResult":
2609
- return /* @__PURE__ */ jsx39(PostMatchResultCard, { card });
2634
+ return /* @__PURE__ */ jsx40(PostMatchResultCard, { card });
2610
2635
  case "postMatchGoals":
2611
- return /* @__PURE__ */ jsx39(PostMatchGoalsCard, { card, onTap });
2636
+ return /* @__PURE__ */ jsx40(PostMatchGoalsCard, { card, onTap });
2612
2637
  case "postMatchStats":
2613
- return /* @__PURE__ */ jsx39(PostMatchStatsCard, { card, onTap });
2638
+ return /* @__PURE__ */ jsx40(PostMatchStatsCard, { card, onTap });
2614
2639
  case "postMatchTopPerformer":
2615
- return /* @__PURE__ */ jsx39(PostMatchTopPerformerCard, { card, onTap });
2640
+ return /* @__PURE__ */ jsx40(PostMatchTopPerformerCard, { card, onTap });
2616
2641
  case "postMatchNext":
2617
- return /* @__PURE__ */ jsx39(PostMatchNextCard, { card });
2642
+ return /* @__PURE__ */ jsx40(PostMatchNextCard, { card });
2618
2643
  case "restingNext":
2619
- return /* @__PURE__ */ jsx39(RestingNextCard, { card, onTap });
2644
+ return /* @__PURE__ */ jsx40(RestingNextCard, { card, onTap });
2620
2645
  case "restingStandings":
2621
- return /* @__PURE__ */ jsx39(RestingStandingsCard, { card, onTap });
2646
+ return /* @__PURE__ */ jsx40(RestingStandingsCard, { card, onTap });
2622
2647
  case "restingSeason":
2623
- return /* @__PURE__ */ jsx39(RestingSeasonCard, { card, onTap });
2648
+ return /* @__PURE__ */ jsx40(RestingSeasonCard, { card, onTap });
2624
2649
  case "restingForm":
2625
- return /* @__PURE__ */ jsx39(RestingFormCard, { card });
2650
+ return /* @__PURE__ */ jsx40(RestingFormCard, { card });
2626
2651
  case "liveScore":
2627
- return /* @__PURE__ */ jsx39(LiveScoreCard, { card, goalEvents });
2652
+ return /* @__PURE__ */ jsx40(LiveScoreCard, { card, goalEvents });
2628
2653
  case "liveTimeline":
2629
- return /* @__PURE__ */ jsx39(LiveTimelineCard, { card, ui });
2654
+ return /* @__PURE__ */ jsx40(LiveTimelineCard, { card, ui });
2630
2655
  case "liveStats":
2631
- return /* @__PURE__ */ jsx39(LiveStatsCard, { card });
2656
+ return /* @__PURE__ */ jsx40(LiveStatsCard, { card });
2632
2657
  default:
2633
2658
  return null;
2634
2659
  }
2635
2660
  }
2636
2661
 
2637
2662
  // src/components/ChatMessage.tsx
2638
- import { jsx as jsx40, jsxs as jsxs36 } from "react/jsx-runtime";
2663
+ import { jsx as jsx41, jsxs as jsxs36 } from "react/jsx-runtime";
2639
2664
  function ChatMessage({ message, disabled, onAct, onTap, ui, slip, monitor }) {
2640
2665
  if (message.role === "user") {
2641
- return /* @__PURE__ */ jsx40("div", { className: "ss-w-msg ss-w-user", "data-msg-id": message.id, children: /* @__PURE__ */ jsx40("div", { className: "ss-w-bubble", children: message.text }) });
2666
+ return /* @__PURE__ */ jsx41("div", { className: "ss-w-msg ss-w-user", "data-msg-id": message.id, children: /* @__PURE__ */ jsx41("div", { className: "ss-w-bubble", children: message.text }) });
2642
2667
  }
2643
2668
  const onFanDashboardTap = (card) => {
2644
2669
  onAct({ message: card.actionLabel, actionRef: card.actionRef, label: card.actionLabel || card.title || "" });
2645
2670
  };
2646
2671
  return /* @__PURE__ */ jsxs36("div", { className: "ss-w-msg ss-w-bot", "data-msg-id": message.id, children: [
2647
- message.text && !message.greetingDashboard && !message.clubFanDashboard ? /* @__PURE__ */ jsx40(Markdown, { text: message.text }) : null,
2648
- message.greetingDashboard && !message.clubFanDashboard ? /* @__PURE__ */ jsx40(GreetingDashboard, { dashboard: message.greetingDashboard, onTap }) : null,
2649
- message.clubFanDashboard ? /* @__PURE__ */ jsx40(ClubFanDashboard, { dashboard: message.clubFanDashboard, onTap: onFanDashboardTap, ui }) : null,
2650
- /* @__PURE__ */ jsx40(EntityCardList, { cards: message.cards, disabled, showLessLabel: ui?.showLess, showMoreLabel: ui?.showMore }),
2651
- /* @__PURE__ */ jsx40(BettingInsightList, { insights: message.insights, ui, slip, monitor }),
2652
- /* @__PURE__ */ jsx40(MarketOddsCardList, { cards: message.marketOdds, ui, slip, monitor }),
2653
- /* @__PURE__ */ jsx40(OddsMovementCardList, { cards: message.oddsMovement, ui, monitor }),
2654
- /* @__PURE__ */ jsx40(ActionButtons, { actions: message.actions, loading: false, disabled, onAct })
2672
+ message.text && !message.greetingDashboard && !message.clubFanDashboard ? /* @__PURE__ */ jsx41(Markdown, { text: message.text }) : null,
2673
+ message.greetingDashboard && !message.clubFanDashboard ? /* @__PURE__ */ jsx41(GreetingDashboard, { dashboard: message.greetingDashboard, onTap }) : null,
2674
+ message.clubFanDashboard ? /* @__PURE__ */ jsx41(ClubFanDashboard, { dashboard: message.clubFanDashboard, onTap: onFanDashboardTap, ui }) : null,
2675
+ /* @__PURE__ */ jsx41(EntityCardList, { cards: message.cards, disabled, showLessLabel: ui?.showLess, showMoreLabel: ui?.showMore }),
2676
+ /* @__PURE__ */ jsx41(BettingInsightList, { insights: message.insights, ui, slip, monitor }),
2677
+ /* @__PURE__ */ jsx41(MarketOddsCardList, { cards: message.marketOdds, ui, slip, monitor }),
2678
+ /* @__PURE__ */ jsx41(OddsMovementCardList, { cards: message.oddsMovement, ui, monitor }),
2679
+ /* @__PURE__ */ jsx41(ActionButtons, { actions: message.actions, loading: false, disabled, onAct })
2655
2680
  ] });
2656
2681
  }
2657
2682
 
2658
2683
  // src/components/IntentChips.tsx
2659
- import { jsx as jsx41 } from "react/jsx-runtime";
2684
+ import { jsx as jsx42 } from "react/jsx-runtime";
2660
2685
  function IntentChips({ chips, onPick }) {
2661
2686
  if (chips.length === 0) return null;
2662
- return /* @__PURE__ */ jsx41("div", { className: "ss-w-chips", children: chips.map((c, i) => /* @__PURE__ */ jsx41("button", { type: "button", className: "ss-w-chip", onClick: () => onPick(c.text), children: c.text }, `${c.text}-${i}`)) });
2687
+ return /* @__PURE__ */ jsx42("div", { className: "ss-w-chips", children: chips.map((c, i) => /* @__PURE__ */ jsx42("button", { type: "button", className: "ss-w-chip", onClick: () => onPick(c.text), children: c.text }, `${c.text}-${i}`)) });
2663
2688
  }
2664
2689
 
2665
2690
  // src/scroll.ts
@@ -2669,7 +2694,7 @@ function isPinnedToBottom(el, threshold = PIN_THRESHOLD) {
2669
2694
  }
2670
2695
 
2671
2696
  // src/components/MessageList.tsx
2672
- import { jsx as jsx42, jsxs as jsxs37 } from "react/jsx-runtime";
2697
+ import { jsx as jsx43, jsxs as jsxs37 } from "react/jsx-runtime";
2673
2698
  function turnAnchor(messages) {
2674
2699
  const last = messages[messages.length - 1];
2675
2700
  if (!last || last.role !== "assistant") return null;
@@ -2707,7 +2732,7 @@ function MessageList({ controller, ui, slip, onDashboardTap, monitor }) {
2707
2732
  if (listRef.current) pinnedRef.current = isPinnedToBottom(listRef.current);
2708
2733
  },
2709
2734
  children: [
2710
- state.messages.map((m) => /* @__PURE__ */ jsx42(
2735
+ state.messages.map((m) => /* @__PURE__ */ jsx43(
2711
2736
  ChatMessage,
2712
2737
  {
2713
2738
  message: m,
@@ -2723,25 +2748,25 @@ function MessageList({ controller, ui, slip, onDashboardTap, monitor }) {
2723
2748
  },
2724
2749
  m.id
2725
2750
  )),
2726
- state.isStreaming && state.actionsLoading ? /* @__PURE__ */ jsx42(ActionButtons, { actions: [], loading: true, onAct: () => {
2751
+ state.isStreaming && state.actionsLoading ? /* @__PURE__ */ jsx43(ActionButtons, { actions: [], loading: true, onAct: () => {
2727
2752
  } }) : null,
2728
- state.status ? /* @__PURE__ */ jsx42("div", { className: "ss-w-status", children: state.status }) : null,
2753
+ state.status ? /* @__PURE__ */ jsx43("div", { className: "ss-w-status", children: state.status }) : null,
2729
2754
  state.error ? /* @__PURE__ */ jsxs37("div", { className: "ss-w-error", role: "alert", children: [
2730
- /* @__PURE__ */ jsx42("span", { children: "message" in state.error ? state.error.message : ui.somethingWentWrong }),
2731
- /* @__PURE__ */ jsx42("button", { type: "button", className: "ss-w-retry", onClick: () => controller.retry(), children: ui.retry })
2755
+ /* @__PURE__ */ jsx43("span", { children: "message" in state.error ? state.error.message : ui.somethingWentWrong }),
2756
+ /* @__PURE__ */ jsx43("button", { type: "button", className: "ss-w-retry", onClick: () => controller.retry(), children: ui.retry })
2732
2757
  ] }) : null,
2733
- !hasUserMessage && !hasDashboard ? /* @__PURE__ */ jsx42(IntentChips, { chips: state.starters, onPick: (t) => send(t) }) : null,
2734
- /* @__PURE__ */ jsx42("div", { ref: endRef, className: "ss-w-turn-spacer", "aria-hidden": "true" })
2758
+ !hasUserMessage && !hasDashboard ? /* @__PURE__ */ jsx43(IntentChips, { chips: state.starters, onPick: (t) => send(t) }) : null,
2759
+ /* @__PURE__ */ jsx43("div", { ref: endRef, className: "ss-w-turn-spacer", "aria-hidden": "true" })
2735
2760
  ]
2736
2761
  }
2737
2762
  );
2738
2763
  }
2739
2764
 
2740
2765
  // src/components/ChatInput.tsx
2741
- import { useState as useState14 } from "react";
2742
- import { jsx as jsx43, jsxs as jsxs38 } from "react/jsx-runtime";
2766
+ import { useState as useState15 } from "react";
2767
+ import { jsx as jsx44, jsxs as jsxs38 } from "react/jsx-runtime";
2743
2768
  function ChatInput({ placeholder, streaming, onSend, onStop, stopLabel = "Stop response", sendLabel = "Send message" }) {
2744
- const [value, setValue] = useState14("");
2769
+ const [value, setValue] = useState15("");
2745
2770
  const submit = () => {
2746
2771
  const t = value.trim();
2747
2772
  if (!t) return;
@@ -2755,13 +2780,13 @@ function ChatInput({ placeholder, streaming, onSend, onStop, stopLabel = "Stop r
2755
2780
  }
2756
2781
  };
2757
2782
  return /* @__PURE__ */ jsxs38("div", { className: "ss-w-input", children: [
2758
- /* @__PURE__ */ jsx43("textarea", { className: "ss-w-textarea", rows: 1, placeholder, value, disabled: streaming, onChange: (e) => setValue(e.target.value), onKeyDown }),
2759
- streaming ? /* @__PURE__ */ jsx43("button", { type: "button", className: "ss-w-send ss-w-stop", "aria-label": stopLabel, onClick: onStop, children: /* @__PURE__ */ jsx43("span", { className: "ss-w-stop-glyph" }) }) : /* @__PURE__ */ jsx43("button", { type: "button", className: "ss-w-send", "aria-label": sendLabel, onClick: submit, children: /* @__PURE__ */ jsx43(SendIcon, {}) })
2783
+ /* @__PURE__ */ jsx44("textarea", { className: "ss-w-textarea", rows: 1, placeholder, value, disabled: streaming, onChange: (e) => setValue(e.target.value), onKeyDown }),
2784
+ streaming ? /* @__PURE__ */ jsx44("button", { type: "button", className: "ss-w-send ss-w-stop", "aria-label": stopLabel, onClick: onStop, children: /* @__PURE__ */ jsx44("span", { className: "ss-w-stop-glyph" }) }) : /* @__PURE__ */ jsx44("button", { type: "button", className: "ss-w-send", "aria-label": sendLabel, onClick: submit, children: /* @__PURE__ */ jsx44(SendIcon, {}) })
2760
2785
  ] });
2761
2786
  }
2762
2787
 
2763
2788
  // src/components/TabBar.tsx
2764
- import { jsx as jsx44, jsxs as jsxs39 } from "react/jsx-runtime";
2789
+ import { jsx as jsx45, jsxs as jsxs39 } from "react/jsx-runtime";
2765
2790
  var TABS = [
2766
2791
  { tab: "chat", labelKey: "tabChat" },
2767
2792
  { tab: "matches", labelKey: "tabMatches" },
@@ -2775,7 +2800,7 @@ function TabBar({ monitor, ui, matchCount, oddsCount }) {
2775
2800
  matches: monitor.matchesDot && monitor.activeTab !== "matches",
2776
2801
  odds: monitor.oddsDot && monitor.activeTab !== "odds"
2777
2802
  };
2778
- return /* @__PURE__ */ jsx44("div", { className: "ss-w-tabs", role: "tablist", children: TABS.map(({ tab, labelKey }) => {
2803
+ return /* @__PURE__ */ jsx45("div", { className: "ss-w-tabs", role: "tablist", children: TABS.map(({ tab, labelKey }) => {
2779
2804
  const active = monitor.activeTab === tab;
2780
2805
  const count = counts[tab];
2781
2806
  return /* @__PURE__ */ jsxs39(
@@ -2789,8 +2814,8 @@ function TabBar({ monitor, ui, matchCount, oddsCount }) {
2789
2814
  onClick: () => monitor.setActiveTab(tab),
2790
2815
  children: [
2791
2816
  ui[labelKey],
2792
- count > 0 && /* @__PURE__ */ jsx44("span", { className: "ss-w-tab-count", children: count }),
2793
- dots[tab] && /* @__PURE__ */ jsx44("span", { className: "ss-w-tab-dot", "aria-hidden": "true" })
2817
+ count > 0 && /* @__PURE__ */ jsx45("span", { className: "ss-w-tab-count", children: count }),
2818
+ dots[tab] && /* @__PURE__ */ jsx45("span", { className: "ss-w-tab-dot", "aria-hidden": "true" })
2794
2819
  ]
2795
2820
  },
2796
2821
  tab
@@ -2799,7 +2824,7 @@ function TabBar({ monitor, ui, matchCount, oddsCount }) {
2799
2824
  }
2800
2825
 
2801
2826
  // src/components/MonitorMatchCard.tsx
2802
- import { jsx as jsx45, jsxs as jsxs40 } from "react/jsx-runtime";
2827
+ import { jsx as jsx46, jsxs as jsxs40 } from "react/jsx-runtime";
2803
2828
  function chipSelection(row, matchId, conversationId) {
2804
2829
  const chip = row.market;
2805
2830
  if (!chip || !chip.addToSlipEnabled || typeof chip.matchOddsId !== "number" || typeof chip.price !== "number") return null;
@@ -2825,36 +2850,36 @@ function MonitorMatchCard({ match, promotedPins, monitor, ui, slip }) {
2825
2850
  return /* @__PURE__ */ jsxs40("div", { className: "ss-w-mon", children: [
2826
2851
  /* @__PURE__ */ jsxs40("div", { className: "ss-w-mon-top", children: [
2827
2852
  live && /* @__PURE__ */ jsxs40("span", { className: "ss-w-fandash-live-pill", children: [
2828
- /* @__PURE__ */ jsx45("span", { className: "ss-w-fandash-live-dot", "aria-hidden": "true" }),
2853
+ /* @__PURE__ */ jsx46("span", { className: "ss-w-fandash-live-dot", "aria-hidden": "true" }),
2829
2854
  ui.liveLabel
2830
2855
  ] }),
2831
- match.phase === "fullTime" && /* @__PURE__ */ jsx45("span", { className: "ss-w-mon-pill", children: ui.fullTimeLabel }),
2856
+ match.phase === "fullTime" && /* @__PURE__ */ jsx46("span", { className: "ss-w-mon-pill", children: ui.fullTimeLabel }),
2832
2857
  kickoff && /* @__PURE__ */ jsxs40("span", { className: "ss-w-mon-pill", children: [
2833
2858
  kickoff.dayLabel,
2834
2859
  " \xB7 ",
2835
2860
  kickoff.time
2836
2861
  ] }),
2837
- live && match.minuteLabel && /* @__PURE__ */ jsx45("span", { className: "ss-w-mon-min", children: match.minuteLabel }),
2838
- match.competitionName && /* @__PURE__ */ jsx45("span", { className: "ss-w-mon-comp", children: match.competitionName }),
2839
- /* @__PURE__ */ jsx45(PinToggle, { ui, monitor, pin: { kind: "match", matchId: match.matchId } })
2862
+ live && match.minuteLabel && /* @__PURE__ */ jsx46("span", { className: "ss-w-mon-min", children: match.minuteLabel }),
2863
+ match.competitionName && /* @__PURE__ */ jsx46("span", { className: "ss-w-mon-comp", children: match.competitionName }),
2864
+ /* @__PURE__ */ jsx46(PinToggle, { ui, monitor, pin: { kind: "match", matchId: match.matchId } })
2840
2865
  ] }),
2841
2866
  /* @__PURE__ */ jsxs40("div", { className: "ss-w-mon-main", children: [
2842
2867
  /* @__PURE__ */ jsxs40("span", { className: "ss-w-mon-side", children: [
2843
- /* @__PURE__ */ jsx45(Crest2, { kind: "team", url: match.homeCrestUrl ?? void 0, name: match.homeTeamName ?? void 0 }),
2844
- /* @__PURE__ */ jsx45("span", { className: "ss-w-mon-name", children: match.homeTeamName })
2868
+ /* @__PURE__ */ jsx46(Crest2, { kind: "team", url: match.homeCrestUrl ?? void 0, name: match.homeTeamName ?? void 0 }),
2869
+ /* @__PURE__ */ jsx46("span", { className: "ss-w-mon-name", children: match.homeTeamName })
2845
2870
  ] }),
2846
- match.phase === "preMatch" ? /* @__PURE__ */ jsx45("span", { className: "ss-w-mon-vs", children: "vs" }) : /* @__PURE__ */ jsxs40("span", { className: "ss-w-mon-score", children: [
2871
+ match.phase === "preMatch" ? /* @__PURE__ */ jsx46("span", { className: "ss-w-mon-vs", children: "vs" }) : /* @__PURE__ */ jsxs40("span", { className: "ss-w-mon-score", children: [
2847
2872
  match.homeScore,
2848
- /* @__PURE__ */ jsx45("i", { children: "\u2013" }),
2873
+ /* @__PURE__ */ jsx46("i", { children: "\u2013" }),
2849
2874
  match.awayScore
2850
2875
  ] }),
2851
2876
  /* @__PURE__ */ jsxs40("span", { className: "ss-w-mon-side ss-w-mon-side--away", children: [
2852
- /* @__PURE__ */ jsx45(Crest2, { kind: "team", url: match.awayCrestUrl ?? void 0, name: match.awayTeamName ?? void 0 }),
2853
- /* @__PURE__ */ jsx45("span", { className: "ss-w-mon-name", children: match.awayTeamName })
2877
+ /* @__PURE__ */ jsx46(Crest2, { kind: "team", url: match.awayCrestUrl ?? void 0, name: match.awayTeamName ?? void 0 }),
2878
+ /* @__PURE__ */ jsx46("span", { className: "ss-w-mon-name", children: match.awayTeamName })
2854
2879
  ] })
2855
2880
  ] }),
2856
- scorers.length > 0 && /* @__PURE__ */ jsx45("div", { className: "ss-w-mon-scorers", children: scorers.map((e) => `${e.player ?? ""} ${e.minuteLabel}`).join(", ") }),
2857
- /* @__PURE__ */ jsx45("div", { className: "ss-w-mon-stats", children: orderedRows.map((row) => {
2881
+ scorers.length > 0 && /* @__PURE__ */ jsx46("div", { className: "ss-w-mon-scorers", children: scorers.map((e) => `${e.player ?? ""} ${e.minuteLabel}`).join(", ") }),
2882
+ /* @__PURE__ */ jsx46("div", { className: "ss-w-mon-stats", children: orderedRows.map((row) => {
2858
2883
  const total = row.homeNum + row.awayNum;
2859
2884
  const homePct = total > 0 ? row.homeNum / total * 75 : 0;
2860
2885
  const awayPct = total > 0 ? row.awayNum / total * 75 : 0;
@@ -2862,13 +2887,13 @@ function MonitorMatchCard({ match, promotedPins, monitor, ui, slip }) {
2862
2887
  const selection = chipSelection(row, match.matchId, slip.conversationId);
2863
2888
  return /* @__PURE__ */ jsxs40("div", { className: promoted ? "ss-w-mon-stat ss-w-mon-pstrip" : "ss-w-mon-stat", children: [
2864
2889
  /* @__PURE__ */ jsxs40("div", { className: "ss-w-mon-stat-row", children: [
2865
- /* @__PURE__ */ jsx45("span", { className: "ss-w-mon-stat-v ss-w-mon-stat-v--home", children: row.homeValue }),
2866
- /* @__PURE__ */ jsx45("span", { className: "ss-w-mon-stat-l", children: row.label }),
2867
- /* @__PURE__ */ jsx45("span", { className: "ss-w-mon-stat-v ss-w-mon-stat-v--away", children: row.awayValue })
2890
+ /* @__PURE__ */ jsx46("span", { className: "ss-w-mon-stat-v ss-w-mon-stat-v--home", children: row.homeValue }),
2891
+ /* @__PURE__ */ jsx46("span", { className: "ss-w-mon-stat-l", children: row.label }),
2892
+ /* @__PURE__ */ jsx46("span", { className: "ss-w-mon-stat-v ss-w-mon-stat-v--away", children: row.awayValue })
2868
2893
  ] }),
2869
2894
  /* @__PURE__ */ jsxs40("div", { className: "ss-w-mon-bar", children: [
2870
- /* @__PURE__ */ jsx45("b", { className: "ss-w-mon-bar-home", style: { width: `${homePct}%` } }),
2871
- /* @__PURE__ */ jsx45("i", { className: "ss-w-mon-bar-away", style: { width: `${awayPct}%` } })
2895
+ /* @__PURE__ */ jsx46("b", { className: "ss-w-mon-bar-home", style: { width: `${homePct}%` } }),
2896
+ /* @__PURE__ */ jsx46("i", { className: "ss-w-mon-bar-away", style: { width: `${awayPct}%` } })
2872
2897
  ] }),
2873
2898
  row.market && /* @__PURE__ */ jsxs40("div", { className: promoted ? "ss-w-mon-stat-mkt ss-w-mon-mkt" : "ss-w-mon-stat-mkt", children: [
2874
2899
  /* @__PURE__ */ jsxs40("span", { children: [
@@ -2877,8 +2902,8 @@ function MonitorMatchCard({ match, promotedPins, monitor, ui, slip }) {
2877
2902
  row.market.selectionLabel
2878
2903
  ] }),
2879
2904
  /* @__PURE__ */ jsxs40("span", { className: "ss-w-mon-stat-mkt-right", children: [
2880
- row.market.isSuspended ? /* @__PURE__ */ jsx45("span", { className: "ss-w-mon-susp", children: ui.suspendedLabel }) : typeof row.market.price === "number" && /* @__PURE__ */ jsx45("span", { className: "ss-w-mon-price", children: row.market.price.toFixed(2) }),
2881
- /* @__PURE__ */ jsx45(
2905
+ row.market.isSuspended ? /* @__PURE__ */ jsx46("span", { className: "ss-w-mon-susp", children: ui.suspendedLabel }) : typeof row.market.price === "number" && /* @__PURE__ */ jsx46("span", { className: "ss-w-mon-price", children: row.market.price.toFixed(2) }),
2906
+ /* @__PURE__ */ jsx46(
2882
2907
  SlipButton,
2883
2908
  {
2884
2909
  selection,
@@ -2892,28 +2917,28 @@ function MonitorMatchCard({ match, promotedPins, monitor, ui, slip }) {
2892
2917
  ] })
2893
2918
  ] }, row.label);
2894
2919
  }) }),
2895
- match.status === "stale" && /* @__PURE__ */ jsx45("span", { className: "ss-w-mon-asof", children: ui.asOf(formatTime(match.asOfUtc)) }),
2920
+ match.status === "stale" && /* @__PURE__ */ jsx46("span", { className: "ss-w-mon-asof", children: ui.asOf(formatTime(match.asOfUtc)) }),
2896
2921
  match.momentum.length > 0 && /* @__PURE__ */ jsxs40("div", { className: "ss-w-mon-mom", children: [
2897
2922
  /* @__PURE__ */ jsxs40("div", { className: "ss-w-mon-stat-row", children: [
2898
- /* @__PURE__ */ jsx45("span", { className: "ss-w-mon-stat-v ss-w-mon-stat-v--home", children: typeof match.momentumHomePct === "number" ? `${match.momentumHomePct}%` : "" }),
2899
- /* @__PURE__ */ jsx45("span", { className: "ss-w-mon-stat-l", children: ui.momentumLabel }),
2900
- /* @__PURE__ */ jsx45("span", { className: "ss-w-mon-stat-v ss-w-mon-stat-v--away", children: typeof match.momentumHomePct === "number" ? `${100 - match.momentumHomePct}%` : "" })
2923
+ /* @__PURE__ */ jsx46("span", { className: "ss-w-mon-stat-v ss-w-mon-stat-v--home", children: typeof match.momentumHomePct === "number" ? `${match.momentumHomePct}%` : "" }),
2924
+ /* @__PURE__ */ jsx46("span", { className: "ss-w-mon-stat-l", children: ui.momentumLabel }),
2925
+ /* @__PURE__ */ jsx46("span", { className: "ss-w-mon-stat-v ss-w-mon-stat-v--away", children: typeof match.momentumHomePct === "number" ? `${100 - match.momentumHomePct}%` : "" })
2901
2926
  ] }),
2902
- /* @__PURE__ */ jsx45(MomentumWave, { points: match.momentum, clubIsHome: true })
2927
+ /* @__PURE__ */ jsx46(MomentumWave, { points: match.momentum, clubIsHome: true })
2903
2928
  ] }),
2904
- match.mainMarket && match.phase !== "fullTime" && /* @__PURE__ */ jsx45(MarketOddsCardList, { cards: [toMarketOddsVM(match.mainMarket)], ui, slip }),
2905
- match.phase === "fullTime" && /* @__PURE__ */ jsx45("div", { className: "ss-w-mon-grace", children: ui.graceNote })
2929
+ match.mainMarket && match.phase !== "fullTime" && /* @__PURE__ */ jsx46(MarketOddsCardList, { cards: [toMarketOddsVM(match.mainMarket)], ui, slip }),
2930
+ match.phase === "fullTime" && /* @__PURE__ */ jsx46("div", { className: "ss-w-mon-grace", children: ui.graceNote })
2906
2931
  ] });
2907
2932
  }
2908
2933
 
2909
2934
  // src/components/MonitorTabs.tsx
2910
- import { jsx as jsx46, jsxs as jsxs41 } from "react/jsx-runtime";
2935
+ import { jsx as jsx47, jsxs as jsxs41 } from "react/jsx-runtime";
2911
2936
  function ContextLine({ m, monitor, ui }) {
2912
2937
  const kick = m.kickoffUtc ? ui.bettingKickoff(m.kickoffUtc) : void 0;
2913
2938
  return /* @__PURE__ */ jsxs41("div", { className: "ss-w-mk-ctx", children: [
2914
2939
  /* @__PURE__ */ jsxs41("span", { className: "ss-w-mk-ctx-side", children: [
2915
- /* @__PURE__ */ jsx46(Crest2, { kind: "team", url: m.homeCrestUrl ?? void 0, name: m.homeTeamName ?? void 0 }),
2916
- /* @__PURE__ */ jsx46("span", { className: "ss-w-mon-name", children: m.homeTeamName })
2940
+ /* @__PURE__ */ jsx47(Crest2, { kind: "team", url: m.homeCrestUrl ?? void 0, name: m.homeTeamName ?? void 0 }),
2941
+ /* @__PURE__ */ jsx47("span", { className: "ss-w-mon-name", children: m.homeTeamName })
2917
2942
  ] }),
2918
2943
  m.phase === "preMatch" ? kick && /* @__PURE__ */ jsxs41("span", { className: "ss-w-mon-pill", children: [
2919
2944
  kick.dayLabel,
@@ -2925,25 +2950,25 @@ function ContextLine({ m, monitor, ui }) {
2925
2950
  m.awayScore
2926
2951
  ] }),
2927
2952
  /* @__PURE__ */ jsxs41("span", { className: "ss-w-mk-ctx-side", children: [
2928
- /* @__PURE__ */ jsx46("span", { className: "ss-w-mon-name", children: m.awayTeamName }),
2929
- /* @__PURE__ */ jsx46(Crest2, { kind: "team", url: m.awayCrestUrl ?? void 0, name: m.awayTeamName ?? void 0 })
2953
+ /* @__PURE__ */ jsx47("span", { className: "ss-w-mon-name", children: m.awayTeamName }),
2954
+ /* @__PURE__ */ jsx47(Crest2, { kind: "team", url: m.awayCrestUrl ?? void 0, name: m.awayTeamName ?? void 0 })
2930
2955
  ] }),
2931
- m.minuteLabel && /* @__PURE__ */ jsx46("span", { className: "ss-w-mon-min", children: m.minuteLabel }),
2956
+ m.minuteLabel && /* @__PURE__ */ jsx47("span", { className: "ss-w-mon-min", children: m.minuteLabel }),
2932
2957
  /* @__PURE__ */ jsxs41("span", { className: "ss-w-mk-ctx-right", children: [
2933
- m.isSuspended && !m.isSettled && /* @__PURE__ */ jsx46("span", { className: "ss-w-mon-susp", children: ui.suspendedLabel }),
2934
- m.isSettled && /* @__PURE__ */ jsx46("span", { className: "ss-w-mon-pill", children: ui.fullTimeLabel }),
2935
- m.status === "stale" && /* @__PURE__ */ jsx46("span", { className: "ss-w-mon-asof", children: ui.asOf(new Date(m.asOfUtc).toLocaleTimeString([], { hour: "2-digit", minute: "2-digit" })) }),
2958
+ m.isSuspended && !m.isSettled && /* @__PURE__ */ jsx47("span", { className: "ss-w-mon-susp", children: ui.suspendedLabel }),
2959
+ m.isSettled && /* @__PURE__ */ jsx47("span", { className: "ss-w-mon-pill", children: ui.fullTimeLabel }),
2960
+ m.status === "stale" && /* @__PURE__ */ jsx47("span", { className: "ss-w-mon-asof", children: ui.asOf(new Date(m.asOfUtc).toLocaleTimeString([], { hour: "2-digit", minute: "2-digit" })) }),
2936
2961
  (() => {
2937
2962
  const pin = monitor.pins.find((p) => p.key === m.key);
2938
- return pin ? /* @__PURE__ */ jsx46(PinToggle, { ui, monitor, pin }) : null;
2963
+ return pin ? /* @__PURE__ */ jsx47(PinToggle, { ui, monitor, pin }) : null;
2939
2964
  })()
2940
2965
  ] })
2941
2966
  ] });
2942
2967
  }
2943
2968
  function MatchesPanel({ monitor, ui, slip }) {
2944
2969
  const matches = (monitor.snapshot?.matches ?? []).filter((m) => monitor.pins.some((p) => p.kind === "match" && p.matchId === m.matchId));
2945
- if (matches.length === 0) return /* @__PURE__ */ jsx46("div", { className: "ss-w-mon-empty", children: ui.emptyMatchesTab });
2946
- return /* @__PURE__ */ jsx46("div", { className: "ss-w-mon-list", children: matches.map((m) => /* @__PURE__ */ jsx46(
2970
+ if (matches.length === 0) return /* @__PURE__ */ jsx47("div", { className: "ss-w-mon-empty", children: ui.emptyMatchesTab });
2971
+ return /* @__PURE__ */ jsx47("div", { className: "ss-w-mon-list", children: matches.map((m) => /* @__PURE__ */ jsx47(
2947
2972
  MonitorMatchCard,
2948
2973
  {
2949
2974
  match: m,
@@ -2967,10 +2992,10 @@ function withSinceViewMovement(vm, prev) {
2967
2992
  }
2968
2993
  function OddsPanel({ monitor, ui, slip }) {
2969
2994
  const markets = (monitor.snapshot?.markets ?? []).filter((m) => monitor.pins.some((p) => p.key === m.key));
2970
- if (markets.length === 0) return /* @__PURE__ */ jsx46("div", { className: "ss-w-mon-empty", children: ui.emptyOddsTab });
2971
- return /* @__PURE__ */ jsx46("div", { className: "ss-w-mon-list", children: markets.map((m) => /* @__PURE__ */ jsxs41("div", { className: "ss-w-mon-oddspin", "data-settled": m.isSettled || void 0, children: [
2972
- /* @__PURE__ */ jsx46(ContextLine, { m, monitor, ui }),
2973
- m.card && /* @__PURE__ */ jsx46(
2995
+ if (markets.length === 0) return /* @__PURE__ */ jsx47("div", { className: "ss-w-mon-empty", children: ui.emptyOddsTab });
2996
+ return /* @__PURE__ */ jsx47("div", { className: "ss-w-mon-list", children: markets.map((m) => /* @__PURE__ */ jsxs41("div", { className: "ss-w-mon-oddspin", "data-settled": m.isSettled || void 0, children: [
2997
+ /* @__PURE__ */ jsx47(ContextLine, { m, monitor, ui }),
2998
+ m.card && /* @__PURE__ */ jsx47(
2974
2999
  MarketOddsCardList,
2975
3000
  {
2976
3001
  cards: [withSinceViewMovement(toMarketOddsVM(m.card), monitor.lastViewedPrices[m.key])],
@@ -2979,16 +3004,16 @@ function OddsPanel({ monitor, ui, slip }) {
2979
3004
  inSlipIds: monitor.inSlip
2980
3005
  }
2981
3006
  ),
2982
- m.history && /* @__PURE__ */ jsx46(OddsMovementCardList, { cards: [toOddsMovementVM(m.history)], ui }),
2983
- !m.card && !m.history && /* @__PURE__ */ jsx46("div", { className: "ss-w-mon-empty-card", children: ui.oddsUnavailable })
3007
+ m.history && /* @__PURE__ */ jsx47(OddsMovementCardList, { cards: [toOddsMovementVM(m.history)], ui }),
3008
+ !m.card && !m.history && /* @__PURE__ */ jsx47("div", { className: "ss-w-mon-empty-card", children: ui.oddsUnavailable })
2984
3009
  ] }, m.key)) });
2985
3010
  }
2986
3011
 
2987
3012
  // src/components/ChatPanel.tsx
2988
- import { jsx as jsx47, jsxs as jsxs42 } from "react/jsx-runtime";
3013
+ import { jsx as jsx48, jsxs as jsxs42 } from "react/jsx-runtime";
2989
3014
  var FULLSCREEN_QUERY = "(max-width: 639px)";
2990
3015
  function useIsModal() {
2991
- const [modal, setModal] = useState15(false);
3016
+ const [modal, setModal] = useState16(false);
2992
3017
  useEffect8(() => {
2993
3018
  if (typeof window === "undefined" || typeof window.matchMedia !== "function") return;
2994
3019
  const mql = window.matchMedia(FULLSCREEN_QUERY);
@@ -3017,8 +3042,8 @@ function ChatPanel({ controller, ui, slip, onDashboardTap, monitor }) {
3017
3042
  if (monitor && monitor.activeTab !== "chat" && state.isStreaming) monitor.markChatActivity();
3018
3043
  }, [monitor, state.isStreaming, state.messages.length]);
3019
3044
  return /* @__PURE__ */ jsxs42("div", { className: "ss-w-panel", role: "dialog", "aria-modal": isModal, "aria-label": ui.chatDialogLabel, children: [
3020
- /* @__PURE__ */ jsx47(ChatHeader, { onClose: close, closeLabel: ui.closeChat }),
3021
- monitor && /* @__PURE__ */ jsx47(
3045
+ /* @__PURE__ */ jsx48(ChatHeader, { onClose: close, closeLabel: ui.closeChat, logoUrl: ui.logoUrl, headerTitle: ui.headerTitle }),
3046
+ monitor && /* @__PURE__ */ jsx48(
3022
3047
  TabBar,
3023
3048
  {
3024
3049
  monitor,
@@ -3027,16 +3052,17 @@ function ChatPanel({ controller, ui, slip, onDashboardTap, monitor }) {
3027
3052
  oddsCount: monitor.pins.filter((p) => p.kind !== "match").length
3028
3053
  }
3029
3054
  ),
3030
- /* @__PURE__ */ jsx47(
3055
+ /* @__PURE__ */ jsx48(
3031
3056
  "div",
3032
3057
  {
3033
3058
  style: !monitor || monitor.activeTab === "chat" ? { display: "contents" } : { position: "absolute", inset: 0, visibility: "hidden", display: "flex", flexDirection: "column" },
3034
- children: /* @__PURE__ */ jsx47(MessageList, { controller, ui, slip, onDashboardTap, monitor })
3059
+ children: /* @__PURE__ */ jsx48(MessageList, { controller, ui, slip, onDashboardTap, monitor })
3035
3060
  }
3036
3061
  ),
3037
- monitor && monitor.activeTab === "matches" && /* @__PURE__ */ jsx47(MatchesPanel, { monitor, ui, slip }),
3038
- monitor && monitor.activeTab === "odds" && /* @__PURE__ */ jsx47(OddsPanel, { monitor, ui, slip }),
3039
- /* @__PURE__ */ jsx47(ChatInput, { placeholder: ui.placeholder, streaming: state.isStreaming, onSend: handleSend, onStop: stop, stopLabel: ui.stopResponse, sendLabel: ui.sendMessage })
3062
+ monitor && monitor.activeTab === "matches" && /* @__PURE__ */ jsx48(MatchesPanel, { monitor, ui, slip }),
3063
+ monitor && monitor.activeTab === "odds" && /* @__PURE__ */ jsx48(OddsPanel, { monitor, ui, slip }),
3064
+ /* @__PURE__ */ jsx48(ChatInput, { placeholder: ui.placeholder, streaming: state.isStreaming, onSend: handleSend, onStop: stop, stopLabel: ui.stopResponse, sendLabel: ui.sendMessage }),
3065
+ ui.attribution !== false ? /* @__PURE__ */ jsx48("div", { className: "ss-w-attribution", children: "Powered by SensibleStats" }) : null
3040
3066
  ] });
3041
3067
  }
3042
3068
 
@@ -3082,7 +3108,7 @@ var WIDGET_CSS = `.ss-w-root { all: revert; }
3082
3108
  .ss-w-root[data-ss-w-pos="right"] .ss-w-fab-wrap { right: var(--ss-w-offset-x); }
3083
3109
  .ss-w-root[data-ss-w-pos="left"] .ss-w-fab-wrap { left: var(--ss-w-offset-x); align-items: flex-start; }
3084
3110
  .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); }
3085
- .ss-w-fab-mark { width: 30px; height: 30px; display: block; }
3111
+ .ss-w-fab-mark { width: 30px; height: 30px; display: block; object-fit: contain; }
3086
3112
  .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); }
3087
3113
  .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; }
3088
3114
  .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; }
@@ -3099,7 +3125,7 @@ var WIDGET_CSS = `.ss-w-root { all: revert; }
3099
3125
  .ss-w-root[data-ss-w-pos="left"] .ss-w-panel { inset: 0; width: auto; height: auto; border: none; border-radius: 0; }
3100
3126
  }
3101
3127
  .ss-w-header { display: flex; align-items: center; gap: 8px; padding: 12px 14px; border-bottom: 1px solid var(--ss-w-line); }
3102
- .ss-w-header-mark { width: 18px; height: 18px; display: block; }
3128
+ .ss-w-header-mark { width: 18px; height: 18px; display: block; object-fit: contain; }
3103
3129
  .ss-w-header-title { font-weight: 660; }
3104
3130
  .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; }
3105
3131
 
@@ -3324,6 +3350,7 @@ var WIDGET_CSS = `.ss-w-root { all: revert; }
3324
3350
  }
3325
3351
  .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; }
3326
3352
  .ss-w-stop-glyph { width: 11px; height: 11px; background: currentColor; border-radius: 2px; }
3353
+ .ss-w-attribution { flex: 0 0 auto; padding: 6px 12px 8px; text-align: center; font-size: 11px; color: var(--ss-w-faint); }
3327
3354
 
3328
3355
  /* add to slip */
3329
3356
  .ss-w-slip { position: relative; display: flex; }
@@ -3792,7 +3819,7 @@ var WIDGET_CSS = `.ss-w-root { all: revert; }
3792
3819
  `;
3793
3820
 
3794
3821
  // src/StatsWidget.tsx
3795
- import { jsx as jsx48 } from "react/jsx-runtime";
3822
+ import { jsx as jsx49 } from "react/jsx-runtime";
3796
3823
  function buildClient(props) {
3797
3824
  try {
3798
3825
  if ("client" in props && props.client) {
@@ -3860,12 +3887,13 @@ function StatsWidget(props) {
3860
3887
  }, [built, ui.injectStyles]);
3861
3888
  if (!built) return null;
3862
3889
  const attrs = themeAttrs(ui);
3863
- return /* @__PURE__ */ jsx48("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__ */ jsx48(ChatPanel, { controller, ui, slip, onDashboardTap, monitor: monitor.enabled ? monitor : void 0 }) : /* @__PURE__ */ jsx48(
3890
+ return /* @__PURE__ */ jsx49("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__ */ jsx49(ChatPanel, { controller, ui, slip, onDashboardTap, monitor: monitor.enabled ? monitor : void 0 }) : /* @__PURE__ */ jsx49(
3864
3891
  ChatFab,
3865
3892
  {
3866
3893
  label: ui.launcherLabel,
3867
3894
  greeting: ui.greeting,
3868
3895
  popupText: controller.state.popupText,
3896
+ logoUrl: ui.logoUrl,
3869
3897
  onOpen: controller.open,
3870
3898
  onDismissPopup: controller.dismissPopup,
3871
3899
  dismissLabel: ui.dismissGreeting