@sensiblestats/widget-react 0.33.3 → 0.35.0

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