@sensiblestats/widget-react 0.38.0 → 0.39.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/index.js CHANGED
@@ -1,5 +1,5 @@
1
1
  // src/StatsWidget.tsx
2
- import { useCallback as useCallback5, useEffect as useEffect10, useMemo as useMemo2, useRef as useRef7 } from "react";
2
+ import { useCallback as useCallback5, useEffect as useEffect11, useMemo as useMemo2, useRef as useRef8 } from "react";
3
3
  import { StatsWidgetClient } from "@sensiblestats/widget-sdk";
4
4
 
5
5
  // src/kickoff.ts
@@ -21,6 +21,7 @@ var STRINGS = {
21
21
  placeholder: "Ask about a team, player or match\u2026",
22
22
  closeChat: "Close chat",
23
23
  newConversation: "New conversation",
24
+ moreOptions: "More options",
24
25
  chatDialogLabel: "SensibleStats chat",
25
26
  stopResponse: "Stop response",
26
27
  sendMessage: "Send message",
@@ -94,6 +95,7 @@ var STRINGS = {
94
95
  placeholder: "Bir tak\u0131m, oyuncu veya ma\xE7 hakk\u0131nda sor\u2026",
95
96
  closeChat: "Sohbeti kapat",
96
97
  newConversation: "Yeni sohbet",
98
+ moreOptions: "Di\u011Fer se\xE7enekler",
97
99
  chatDialogLabel: "SensibleStats sohbet",
98
100
  stopResponse: "Yan\u0131t\u0131 durdur",
99
101
  sendMessage: "Mesaj g\xF6nder",
@@ -190,6 +192,7 @@ function normalizeUi(cfg) {
190
192
  injectStyles: cfg.injectStyles ?? true,
191
193
  closeChat: strings.closeChat,
192
194
  newConversation: strings.newConversation,
195
+ moreOptions: strings.moreOptions,
193
196
  chatDialogLabel: strings.chatDialogLabel,
194
197
  stopResponse: strings.stopResponse,
195
198
  sendMessage: strings.sendMessage,
@@ -1378,7 +1381,7 @@ import { useState as useState2 } from "react";
1378
1381
  var SS_LOGO_DATA_URI = "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAjoAAAI6CAYAAAAuSOLAAAAAAXNSR0IArs4c6QAAAJplWElmTU0AKgAAAAgAAwESAAMAAAABAAEAAAExAAIAAAA9AAAAModpAAQAAAABAAAAcAAAAABBZG9iZSBQaG90b3Nob3AgMjYuMTAgKDIwMjUwNzMwLm0uMzE2NiAwN2IxMjM0KSAgKE1hY2ludG9zaCkAAAADoAEAAwAAAAEAAQAAoAIABAAAAAEAAAI6oAMABAAAAAEAAAI6AAAAACwGtVwAAAQwaVRYdFhNTDpjb20uYWRvYmUueG1wAAAAAAA8eDp4bXBtZXRhIHhtbG5zOng9ImFkb2JlOm5zOm1ldGEvIiB4OnhtcHRrPSJYTVAgQ29yZSA2LjAuMCI+CiAgIDxyZGY6UkRGIHhtbG5zOnJkZj0iaHR0cDovL3d3dy53My5vcmcvMTk5OS8wMi8yMi1yZGYtc3ludGF4LW5zIyI+CiAgICAgIDxyZGY6RGVzY3JpcHRpb24gcmRmOmFib3V0PSIiCiAgICAgICAgICAgIHhtbG5zOnhtcE1NPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvbW0vIgogICAgICAgICAgICB4bWxuczpzdFJlZj0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL3NUeXBlL1Jlc291cmNlUmVmIyIKICAgICAgICAgICAgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIgogICAgICAgICAgICB4bWxuczp0aWZmPSJodHRwOi8vbnMuYWRvYmUuY29tL3RpZmYvMS4wLyI+CiAgICAgICAgIDx4bXBNTTpEb2N1bWVudElEPnhtcC5kaWQ6QzBGRTM5NjM5NEJEMTFGMEJGNjZEMjUyN0U0MzU5RUM8L3htcE1NOkRvY3VtZW50SUQ+CiAgICAgICAgIDx4bXBNTTpJbnN0YW5jZUlEPnhtcC5paWQ6QzBGRTM5NjI5NEJEMTFGMEJGNjZEMjUyN0U0MzU5RUM8L3htcE1NOkluc3RhbmNlSUQ+CiAgICAgICAgIDx4bXBNTTpEZXJpdmVkRnJvbSByZGY6cGFyc2VUeXBlPSJSZXNvdXJjZSI+CiAgICAgICAgICAgIDxzdFJlZjppbnN0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";
1379
1382
 
1380
1383
  // src/components/Icons.tsx
1381
- import { jsx } from "react/jsx-runtime";
1384
+ import { jsx, jsxs } from "react/jsx-runtime";
1382
1385
  function SsMark({ className }) {
1383
1386
  return /* @__PURE__ */ jsx("img", { className, src: SS_LOGO_DATA_URI, alt: "", "aria-hidden": "true" });
1384
1387
  }
@@ -1394,6 +1397,13 @@ function ChevronIcon() {
1394
1397
  function NewChatIcon() {
1395
1398
  return /* @__PURE__ */ jsx("svg", { viewBox: "0 0 24 24", width: "1em", height: "1em", "aria-hidden": "true", children: /* @__PURE__ */ jsx("path", { fill: "none", d: "M12 5v14M5 12h14", stroke: "currentColor", strokeWidth: "2", strokeLinecap: "round" }) });
1396
1399
  }
1400
+ function KebabIcon() {
1401
+ return /* @__PURE__ */ jsx("svg", { viewBox: "0 0 24 24", width: "1em", height: "1em", "aria-hidden": "true", children: /* @__PURE__ */ jsxs("g", { fill: "currentColor", children: [
1402
+ /* @__PURE__ */ jsx("circle", { cx: "12", cy: "5", r: "1.6" }),
1403
+ /* @__PURE__ */ jsx("circle", { cx: "12", cy: "12", r: "1.6" }),
1404
+ /* @__PURE__ */ jsx("circle", { cx: "12", cy: "19", r: "1.6" })
1405
+ ] }) });
1406
+ }
1397
1407
  var DASHBOARD_EMOJI = {
1398
1408
  football: "\u26BD",
1399
1409
  "goal-net": "\u{1F945}",
@@ -1423,11 +1433,11 @@ function BrandMark({ logoUrl, className }) {
1423
1433
  }
1424
1434
 
1425
1435
  // src/components/GreetingBubble.tsx
1426
- import { jsx as jsx3, jsxs } from "react/jsx-runtime";
1436
+ import { jsx as jsx3, jsxs as jsxs2 } from "react/jsx-runtime";
1427
1437
  function GreetingBubble({ text, onOpen, onDismiss, dismissLabel = "Dismiss" }) {
1428
- return /* @__PURE__ */ jsxs("div", { className: "ss-w-greeting", role: "note", children: [
1429
- /* @__PURE__ */ jsxs("button", { type: "button", className: "ss-w-greeting-body", onClick: onOpen, children: [
1430
- /* @__PURE__ */ jsxs("span", { className: "ss-w-greeting-dots", "aria-hidden": "true", children: [
1438
+ return /* @__PURE__ */ jsxs2("div", { className: "ss-w-greeting", role: "note", children: [
1439
+ /* @__PURE__ */ jsxs2("button", { type: "button", className: "ss-w-greeting-body", onClick: onOpen, children: [
1440
+ /* @__PURE__ */ jsxs2("span", { className: "ss-w-greeting-dots", "aria-hidden": "true", children: [
1431
1441
  /* @__PURE__ */ jsx3("i", {}),
1432
1442
  /* @__PURE__ */ jsx3("i", {}),
1433
1443
  /* @__PURE__ */ jsx3("i", {})
@@ -1439,7 +1449,7 @@ function GreetingBubble({ text, onOpen, onDismiss, dismissLabel = "Dismiss" }) {
1439
1449
  }
1440
1450
 
1441
1451
  // src/components/ChatFab.tsx
1442
- import { jsx as jsx4, jsxs as jsxs2 } from "react/jsx-runtime";
1452
+ import { jsx as jsx4, jsxs as jsxs3 } from "react/jsx-runtime";
1443
1453
  function ChatFab({ label, greeting, popupText, logoUrl, onOpen, onDismissPopup, dismissLabel = "Dismiss", introAllowed = false, onIntroStart }) {
1444
1454
  const bubble = popupText ?? greeting;
1445
1455
  const [intro, setIntro] = useState3(false);
@@ -1451,28 +1461,96 @@ function ChatFab({ label, greeting, popupText, logoUrl, onOpen, onDismissPopup,
1451
1461
  onIntroStart?.();
1452
1462
  }
1453
1463
  }, [bubble, onIntroStart]);
1454
- return /* @__PURE__ */ jsxs2("div", { className: intro ? "ss-w-fab-wrap ss-w-intro" : "ss-w-fab-wrap", children: [
1464
+ return /* @__PURE__ */ jsxs3("div", { className: intro ? "ss-w-fab-wrap ss-w-intro" : "ss-w-fab-wrap", children: [
1455
1465
  bubble ? /* @__PURE__ */ jsx4(GreetingBubble, { text: bubble, onOpen, onDismiss: popupText ? onDismissPopup : void 0, dismissLabel }) : null,
1456
1466
  /* @__PURE__ */ jsx4("button", { type: "button", className: "ss-w-fab", "aria-label": label, onClick: onOpen, children: /* @__PURE__ */ jsx4(BrandMark, { logoUrl, className: "ss-w-fab-mark" }) })
1457
1467
  ] });
1458
1468
  }
1459
1469
 
1460
1470
  // src/components/ChatPanel.tsx
1461
- import { useEffect as useEffect9, useState as useState17 } from "react";
1471
+ import { useEffect as useEffect10, useState as useState18 } from "react";
1462
1472
 
1463
1473
  // src/components/ChatHeader.tsx
1464
- import { jsx as jsx5, jsxs as jsxs3 } from "react/jsx-runtime";
1465
- function ChatHeader({ onClose, closeLabel = "Close chat", logoUrl, headerTitle, onNewConversation, canReset, newConversationLabel = "New conversation" }) {
1466
- return /* @__PURE__ */ jsxs3("header", { className: "ss-w-header", children: [
1474
+ import { useEffect as useEffect5, useRef as useRef5, useState as useState4 } from "react";
1475
+ import { jsx as jsx5, jsxs as jsxs4 } from "react/jsx-runtime";
1476
+ function ChatHeader({
1477
+ onClose,
1478
+ closeLabel = "Close chat",
1479
+ logoUrl,
1480
+ headerTitle,
1481
+ onNewConversation,
1482
+ canReset,
1483
+ newConversationLabel = "New conversation",
1484
+ moreOptionsLabel = "More options"
1485
+ }) {
1486
+ const [menuOpen, setMenuOpen] = useState4(false);
1487
+ const wrapRef = useRef5(null);
1488
+ const kebabRef = useRef5(null);
1489
+ const firstItemRef = useRef5(null);
1490
+ const hasMenu = !!(canReset && onNewConversation);
1491
+ useEffect5(() => {
1492
+ if (menuOpen) firstItemRef.current?.focus();
1493
+ }, [menuOpen]);
1494
+ useEffect5(() => {
1495
+ if (!menuOpen) return;
1496
+ const onPointer = (e) => {
1497
+ if (!wrapRef.current?.contains(e.target)) setMenuOpen(false);
1498
+ };
1499
+ const onKey = (e) => {
1500
+ if (e.key === "Escape") {
1501
+ setMenuOpen(false);
1502
+ kebabRef.current?.focus();
1503
+ }
1504
+ };
1505
+ document.addEventListener("mousedown", onPointer);
1506
+ document.addEventListener("keydown", onKey);
1507
+ return () => {
1508
+ document.removeEventListener("mousedown", onPointer);
1509
+ document.removeEventListener("keydown", onKey);
1510
+ };
1511
+ }, [menuOpen]);
1512
+ const runNewConversation = () => {
1513
+ setMenuOpen(false);
1514
+ onNewConversation?.();
1515
+ };
1516
+ return /* @__PURE__ */ jsxs4("header", { className: "ss-w-header", children: [
1467
1517
  /* @__PURE__ */ jsx5(BrandMark, { logoUrl, className: "ss-w-header-mark" }),
1468
1518
  /* @__PURE__ */ jsx5("span", { className: "ss-w-header-title", children: headerTitle ?? "SensibleStats" }),
1469
- canReset && onNewConversation ? /* @__PURE__ */ jsx5("button", { type: "button", className: "ss-w-newconv", "aria-label": newConversationLabel, onClick: onNewConversation, children: /* @__PURE__ */ jsx5(NewChatIcon, {}) }) : null,
1519
+ hasMenu ? /* @__PURE__ */ jsxs4("div", { className: "ss-w-menu-wrap", ref: wrapRef, children: [
1520
+ /* @__PURE__ */ jsx5(
1521
+ "button",
1522
+ {
1523
+ type: "button",
1524
+ className: "ss-w-kebab",
1525
+ ref: kebabRef,
1526
+ "aria-haspopup": "menu",
1527
+ "aria-expanded": menuOpen,
1528
+ "aria-label": moreOptionsLabel,
1529
+ onClick: () => setMenuOpen((open) => !open),
1530
+ children: /* @__PURE__ */ jsx5(KebabIcon, {})
1531
+ }
1532
+ ),
1533
+ menuOpen ? /* @__PURE__ */ jsx5("div", { className: "ss-w-menu", role: "menu", "aria-label": moreOptionsLabel, children: /* @__PURE__ */ jsxs4(
1534
+ "button",
1535
+ {
1536
+ type: "button",
1537
+ className: "ss-w-menu-item",
1538
+ role: "menuitem",
1539
+ ref: firstItemRef,
1540
+ onClick: runNewConversation,
1541
+ children: [
1542
+ /* @__PURE__ */ jsx5(NewChatIcon, {}),
1543
+ /* @__PURE__ */ jsx5("span", { children: newConversationLabel })
1544
+ ]
1545
+ }
1546
+ ) }) : null
1547
+ ] }) : null,
1470
1548
  /* @__PURE__ */ jsx5("button", { type: "button", className: "ss-w-close", "aria-label": closeLabel, onClick: onClose, children: /* @__PURE__ */ jsx5(CloseIcon, {}) })
1471
1549
  ] });
1472
1550
  }
1473
1551
 
1474
1552
  // src/components/MessageList.tsx
1475
- import { useEffect as useEffect8, useRef as useRef6 } from "react";
1553
+ import { useEffect as useEffect9, useRef as useRef7 } from "react";
1476
1554
 
1477
1555
  // src/components/Markdown.tsx
1478
1556
  import ReactMarkdown from "react-markdown";
@@ -1490,8 +1568,8 @@ function Markdown({ text }) {
1490
1568
  }
1491
1569
 
1492
1570
  // src/components/EntityCardList.tsx
1493
- import { useState as useState4 } from "react";
1494
- import { jsx as jsx7, jsxs as jsxs4 } from "react/jsx-runtime";
1571
+ import { useState as useState5 } from "react";
1572
+ import { jsx as jsx7, jsxs as jsxs5 } from "react/jsx-runtime";
1495
1573
  var MAX_VISIBLE = 3;
1496
1574
  var RECORD_RE = /^(\d+)-(\d+)-(\d+)$/;
1497
1575
  function initials(name) {
@@ -1512,7 +1590,7 @@ function Crest({ image, label }) {
1512
1590
  }
1513
1591
  function FormBar({ w, d, l }) {
1514
1592
  if (w + d + l === 0) return null;
1515
- return /* @__PURE__ */ jsxs4("span", { className: "ss-w-form", "aria-hidden": "true", children: [
1593
+ return /* @__PURE__ */ jsxs5("span", { className: "ss-w-form", "aria-hidden": "true", children: [
1516
1594
  w > 0 ? /* @__PURE__ */ jsx7("span", { className: "ss-w-form-w", style: { flexGrow: w } }) : null,
1517
1595
  d > 0 ? /* @__PURE__ */ jsx7("span", { className: "ss-w-form-d", style: { flexGrow: d } }) : null,
1518
1596
  l > 0 ? /* @__PURE__ */ jsx7("span", { className: "ss-w-form-l", style: { flexGrow: l } }) : null
@@ -1521,12 +1599,12 @@ function FormBar({ w, d, l }) {
1521
1599
  function StatCellView({ s }) {
1522
1600
  const m = RECORD_RE.exec(s.value);
1523
1601
  if (m) {
1524
- return /* @__PURE__ */ jsxs4("div", { className: "ss-w-ecard-cell", children: [
1602
+ return /* @__PURE__ */ jsxs5("div", { className: "ss-w-ecard-cell", children: [
1525
1603
  /* @__PURE__ */ jsx7("span", { className: "ss-w-ecard-cval", children: /* @__PURE__ */ jsx7(FormBar, { w: Number(m[1]), d: Number(m[2]), l: Number(m[3]) }) }),
1526
1604
  /* @__PURE__ */ jsx7("span", { className: "ss-w-ecard-clabel", children: s.value })
1527
1605
  ] });
1528
1606
  }
1529
- return /* @__PURE__ */ jsxs4("div", { className: "ss-w-ecard-cell", children: [
1607
+ return /* @__PURE__ */ jsxs5("div", { className: "ss-w-ecard-cell", children: [
1530
1608
  /* @__PURE__ */ jsx7("span", { className: "ss-w-ecard-cval", children: s.value }),
1531
1609
  /* @__PURE__ */ jsx7("span", { className: "ss-w-ecard-clabel", children: s.label })
1532
1610
  ] });
@@ -1538,7 +1616,7 @@ function StatStrip({ stats }) {
1538
1616
  }
1539
1617
  function CardHeader({ c, showScopeCrest }) {
1540
1618
  const onlyScope = c.scopes.length === 1 ? c.scopes[0] : null;
1541
- return /* @__PURE__ */ jsxs4("div", { className: "ss-w-ecard-hd", children: [
1619
+ return /* @__PURE__ */ jsxs5("div", { className: "ss-w-ecard-hd", children: [
1542
1620
  /* @__PURE__ */ jsx7(
1543
1621
  "span",
1544
1622
  {
@@ -1547,11 +1625,11 @@ function CardHeader({ c, showScopeCrest }) {
1547
1625
  children: c.image ? "" : initials(c.name)
1548
1626
  }
1549
1627
  ),
1550
- /* @__PURE__ */ jsxs4("span", { className: "ss-w-ecard-idtext", children: [
1628
+ /* @__PURE__ */ jsxs5("span", { className: "ss-w-ecard-idtext", children: [
1551
1629
  /* @__PURE__ */ jsx7("span", { className: "ss-w-nm", children: c.name }),
1552
1630
  c.sub ? /* @__PURE__ */ jsx7("span", { className: "ss-w-sub", children: c.sub }) : null
1553
1631
  ] }),
1554
- /* @__PURE__ */ jsxs4("span", { className: "ss-w-ecard-meta", children: [
1632
+ /* @__PURE__ */ jsxs5("span", { className: "ss-w-ecard-meta", children: [
1555
1633
  showScopeCrest && onlyScope?.image ? /* @__PURE__ */ jsx7(Crest, { image: onlyScope.image, label: onlyScope.label }) : null,
1556
1634
  c.season ? /* @__PURE__ */ jsx7("span", { className: "ss-w-ecard-season", children: shortSeason(c.season) }) : null
1557
1635
  ] })
@@ -1574,43 +1652,43 @@ function ScopeTabs({ scopes, active, onSelect }) {
1574
1652
  )) });
1575
1653
  }
1576
1654
  function EntityCardItem({ c }) {
1577
- const [active, setActive] = useState4(0);
1655
+ const [active, setActive] = useState5(0);
1578
1656
  const hasBody = c.scopes.length > 0;
1579
1657
  if (!hasBody) {
1580
1658
  return /* @__PURE__ */ jsx7("div", { className: "ss-w-ecard ss-w-ecard-bare", "data-kind": c.kind, children: /* @__PURE__ */ jsx7(CardHeader, { c, showScopeCrest: false }) });
1581
1659
  }
1582
1660
  const multi = c.scopes.length > 1;
1583
1661
  const scope = c.scopes[multi ? c.scopes[active] ? active : 0 : 0];
1584
- return /* @__PURE__ */ jsxs4("div", { className: "ss-w-ecard", "data-kind": c.kind, children: [
1662
+ return /* @__PURE__ */ jsxs5("div", { className: "ss-w-ecard", "data-kind": c.kind, children: [
1585
1663
  /* @__PURE__ */ jsx7(CardHeader, { c, showScopeCrest: !multi }),
1586
1664
  multi ? /* @__PURE__ */ jsx7(ScopeTabs, { scopes: c.scopes, active, onSelect: setActive }) : null,
1587
1665
  /* @__PURE__ */ jsx7(StatStrip, { stats: scope.stats })
1588
1666
  ] });
1589
1667
  }
1590
1668
  function EntityCardList({ cards, disabled, showLessLabel = "Show less", showMoreLabel = (n) => `Show ${n} more` }) {
1591
- const [expanded, setExpanded] = useState4(false);
1669
+ const [expanded, setExpanded] = useState5(false);
1592
1670
  if (cards.length === 0) return null;
1593
1671
  const visible = expanded ? cards : cards.slice(0, MAX_VISIBLE);
1594
1672
  const overflow = cards.length - MAX_VISIBLE;
1595
- return /* @__PURE__ */ jsxs4("div", { className: "ss-w-cards", children: [
1673
+ return /* @__PURE__ */ jsxs5("div", { className: "ss-w-cards", children: [
1596
1674
  visible.map((c) => /* @__PURE__ */ jsx7(EntityCardItem, { c }, c.id)),
1597
1675
  overflow > 0 ? /* @__PURE__ */ jsx7("button", { type: "button", className: "ss-w-cards-more", disabled, onClick: () => setExpanded((v) => !v), children: expanded ? showLessLabel : showMoreLabel(overflow) }) : null
1598
1676
  ] });
1599
1677
  }
1600
1678
 
1601
1679
  // src/components/BettingInsightList.tsx
1602
- import { useState as useState8 } from "react";
1680
+ import { useState as useState9 } from "react";
1603
1681
 
1604
1682
  // src/components/AddToSlipButton.tsx
1605
- import { useCallback as useCallback3, useState as useState5 } from "react";
1683
+ import { useCallback as useCallback3, useState as useState6 } from "react";
1606
1684
  import { isAddToSlipResult } from "@sensiblestats/widget-sdk";
1607
1685
 
1608
1686
  // src/components/Toast.tsx
1609
- import { useEffect as useEffect5 } from "react";
1687
+ import { useEffect as useEffect6 } from "react";
1610
1688
  import { jsx as jsx8 } from "react/jsx-runtime";
1611
1689
  var DISMISS_MS = 4e3;
1612
1690
  function Toast({ toast, onDismiss }) {
1613
- useEffect5(() => {
1691
+ useEffect6(() => {
1614
1692
  if (!toast) return;
1615
1693
  const timer = setTimeout(onDismiss, DISMISS_MS);
1616
1694
  return () => clearTimeout(timer);
@@ -1620,7 +1698,7 @@ function Toast({ toast, onDismiss }) {
1620
1698
  }
1621
1699
 
1622
1700
  // src/components/AddToSlipButton.tsx
1623
- import { jsx as jsx9, jsxs as jsxs5 } from "react/jsx-runtime";
1701
+ import { jsx as jsx9, jsxs as jsxs6 } from "react/jsx-runtime";
1624
1702
  function withTimeout(value) {
1625
1703
  return Promise.race([
1626
1704
  value,
@@ -1628,9 +1706,9 @@ function withTimeout(value) {
1628
1706
  ]);
1629
1707
  }
1630
1708
  function SlipButton({ selection, shownOdds, marketName, slip, ui }) {
1631
- const [pending, setPending] = useState5(false);
1632
- const [settled, setSettled] = useState5(false);
1633
- const [toast, setToast] = useState5(null);
1709
+ const [pending, setPending] = useState6(false);
1710
+ const [settled, setSettled] = useState6(false);
1711
+ const [toast, setToast] = useState6(null);
1634
1712
  const dismiss = useCallback3(() => setToast(null), []);
1635
1713
  const handler = slip.onAddToSlip;
1636
1714
  if (!ui || !handler || !selection) return null;
@@ -1654,7 +1732,7 @@ function SlipButton({ selection, shownOdds, marketName, slip, ui }) {
1654
1732
  setPending(false);
1655
1733
  }
1656
1734
  };
1657
- return /* @__PURE__ */ jsxs5("div", { className: "ss-w-slip", children: [
1735
+ return /* @__PURE__ */ jsxs6("div", { className: "ss-w-slip", children: [
1658
1736
  /* @__PURE__ */ jsx9(
1659
1737
  "button",
1660
1738
  {
@@ -1674,7 +1752,7 @@ function AddToSlipButton({ it, slip, ui }) {
1674
1752
  }
1675
1753
 
1676
1754
  // src/components/OddsMovementBadge.tsx
1677
- import { jsx as jsx10, jsxs as jsxs6 } from "react/jsx-runtime";
1755
+ import { jsx as jsx10, jsxs as jsxs7 } from "react/jsx-runtime";
1678
1756
  function OddsMovementBadge({
1679
1757
  previous,
1680
1758
  current,
@@ -1687,7 +1765,7 @@ function OddsMovementBadge({
1687
1765
  return (
1688
1766
  // Strikethrough is invisible to screen readers, so the whole was/now/direction sentence rides
1689
1767
  // on one aria-label and the visual glyphs are hidden from the accessibility tree.
1690
- /* @__PURE__ */ jsxs6("span", { className: "ss-w-move", role: "img", "aria-label": label, children: [
1768
+ /* @__PURE__ */ jsxs7("span", { className: "ss-w-move", role: "img", "aria-label": label, children: [
1691
1769
  /* @__PURE__ */ jsx10("span", { className: "ss-w-move-prev", "aria-hidden": "true", children: previous }),
1692
1770
  /* @__PURE__ */ jsx10("span", { className: "ss-w-move-arrow", "aria-hidden": "true", children: direction === "shortened" ? "\u25BC" : "\u25B2" })
1693
1771
  ] })
@@ -1695,14 +1773,14 @@ function OddsMovementBadge({
1695
1773
  }
1696
1774
 
1697
1775
  // src/components/Crest.tsx
1698
- import { useState as useState6 } from "react";
1776
+ import { useState as useState7 } from "react";
1699
1777
  import { jsx as jsx11 } from "react/jsx-runtime";
1700
1778
  function initials2(name) {
1701
1779
  return (name ?? "").trim().slice(0, 1).toUpperCase() || "?";
1702
1780
  }
1703
1781
  function Crest2({ url, name, kind }) {
1704
1782
  const cls = kind === "comp" ? "ss-w-bi-comp-logo" : "ss-w-bi-crest";
1705
- const [failed, setFailed] = useState6(false);
1783
+ const [failed, setFailed] = useState7(false);
1706
1784
  if (url && !failed) {
1707
1785
  return /* @__PURE__ */ jsx11("img", { className: cls, src: url, alt: "", "aria-hidden": "true", onError: () => setFailed(true) });
1708
1786
  }
@@ -1710,15 +1788,15 @@ function Crest2({ url, name, kind }) {
1710
1788
  }
1711
1789
 
1712
1790
  // src/components/PinToggle.tsx
1713
- import { useCallback as useCallback4, useState as useState7 } from "react";
1714
- import { jsx as jsx12, jsxs as jsxs7 } from "react/jsx-runtime";
1791
+ import { useCallback as useCallback4, useState as useState8 } from "react";
1792
+ import { jsx as jsx12, jsxs as jsxs8 } from "react/jsx-runtime";
1715
1793
  var PIN_GLYPHS = {
1716
1794
  pin: { viewBox: "0 0 24 24", strokeWidth: 1.4, transform: "scale(1.5)", 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" },
1717
1795
  star: { viewBox: "0 0 24 24", strokeWidth: 2, d: "M12 2.5l2.9 5.9 6.5.95-4.7 4.58 1.1 6.47L12 17.35 6.1 20.4l1.1-6.47L2.5 9.35l6.5-.95z" },
1718
1796
  bookmark: { viewBox: "0 0 24 24", strokeWidth: 2, d: "M7 3h10a1.5 1.5 0 0 1 1.5 1.5V21l-6.5-3.6L5.5 21V4.5A1.5 1.5 0 0 1 7 3z" }
1719
1797
  };
1720
1798
  function PinToggle({ pin, monitor, ui }) {
1721
- const [toast, setToast] = useState7(null);
1799
+ const [toast, setToast] = useState8(null);
1722
1800
  const dismiss = useCallback4(() => setToast(null), []);
1723
1801
  if (!monitor || !monitor.enabled) return null;
1724
1802
  const key = pinKey(pin);
@@ -1733,7 +1811,7 @@ function PinToggle({ pin, monitor, ui }) {
1733
1811
  }
1734
1812
  };
1735
1813
  const glyph = PIN_GLYPHS[ui.pinIcon];
1736
- return /* @__PURE__ */ jsxs7("div", { className: "ss-w-pin-wrap", children: [
1814
+ return /* @__PURE__ */ jsxs8("div", { className: "ss-w-pin-wrap", children: [
1737
1815
  /* @__PURE__ */ jsx12(
1738
1816
  "button",
1739
1817
  {
@@ -1763,17 +1841,17 @@ function PinToggle({ pin, monitor, ui }) {
1763
1841
  }
1764
1842
 
1765
1843
  // src/components/BettingInsightList.tsx
1766
- import { Fragment, jsx as jsx13, jsxs as jsxs8 } from "react/jsx-runtime";
1844
+ import { Fragment, jsx as jsx13, jsxs as jsxs9 } from "react/jsx-runtime";
1767
1845
  function StatRows({ stats }) {
1768
- return /* @__PURE__ */ jsx13("div", { className: "ss-w-bi-rows", children: stats.map((s) => /* @__PURE__ */ jsxs8("div", { className: "ss-w-bi-row", children: [
1846
+ return /* @__PURE__ */ jsx13("div", { className: "ss-w-bi-rows", children: stats.map((s) => /* @__PURE__ */ jsxs9("div", { className: "ss-w-bi-row", children: [
1769
1847
  /* @__PURE__ */ jsx13("span", { className: "ss-w-bi-row-lbl", children: s.label }),
1770
1848
  /* @__PURE__ */ jsx13("span", { className: "ss-w-bi-row-num", children: s.value })
1771
1849
  ] }, `${s.label}:${s.value}`)) });
1772
1850
  }
1773
1851
  function ScopedStats({ scopes }) {
1774
- const [active, setActive] = useState8(0);
1852
+ const [active, setActive] = useState9(0);
1775
1853
  const current = scopes[active] ?? scopes[0] ?? { key: "", label: "", stats: [] };
1776
- return /* @__PURE__ */ jsxs8("div", { className: "ss-w-bi-scoped", children: [
1854
+ return /* @__PURE__ */ jsxs9("div", { className: "ss-w-bi-scoped", children: [
1777
1855
  /* @__PURE__ */ jsx13("div", { className: "ss-w-bi-scopes", role: "group", children: scopes.map((s, i) => /* @__PURE__ */ jsx13("button", { type: "button", className: "ss-w-bi-chip", "aria-pressed": i === active, onClick: () => setActive(i), children: s.label }, s.key)) }),
1778
1856
  /* @__PURE__ */ jsx13(StatRows, { stats: current.stats }, current.key)
1779
1857
  ] });
@@ -1782,15 +1860,15 @@ function hasStatsContent(it) {
1782
1860
  return !!it.scopes && it.scopes.length >= 2 || it.stats.length > 0;
1783
1861
  }
1784
1862
  function ReasonStrip({ it, ui }) {
1785
- const [open, setOpen] = useState8(false);
1863
+ const [open, setOpen] = useState9(false);
1786
1864
  const hasScopes = !!it.scopes && it.scopes.length >= 2;
1787
1865
  const hasStats = hasStatsContent(it);
1788
1866
  const hasText = !!it.text;
1789
1867
  if (!hasText && !hasStats) return null;
1790
1868
  const expandable = hasStats || (it.text?.length ?? 0) > 90;
1791
- return /* @__PURE__ */ jsxs8("div", { className: "ss-w-bi-reason", children: [
1869
+ return /* @__PURE__ */ jsxs9("div", { className: "ss-w-bi-reason", children: [
1792
1870
  /* @__PURE__ */ jsx13("span", { className: "ss-w-bi-chart", "aria-hidden": "true" }),
1793
- /* @__PURE__ */ jsxs8("div", { className: "ss-w-bi-reason-body", children: [
1871
+ /* @__PURE__ */ jsxs9("div", { className: "ss-w-bi-reason-body", children: [
1794
1872
  hasText ? /* @__PURE__ */ jsx13("p", { className: `ss-w-bi-text${open ? "" : " ss-w-bi-text-clamp"}`, children: it.text }) : null,
1795
1873
  open && hasStats ? hasScopes ? /* @__PURE__ */ jsx13(ScopedStats, { scopes: it.scopes }) : /* @__PURE__ */ jsx13(StatRows, { stats: it.stats }) : null
1796
1874
  ] }),
@@ -1809,7 +1887,7 @@ function ReasonStrip({ it, ui }) {
1809
1887
  }
1810
1888
  function CardFixture({ it }) {
1811
1889
  if (it.homeTeamName && it.awayTeamName) {
1812
- return /* @__PURE__ */ jsxs8(Fragment, { children: [
1890
+ return /* @__PURE__ */ jsxs9(Fragment, { children: [
1813
1891
  /* @__PURE__ */ jsx13(Crest2, { kind: "team", url: it.homeCrest, name: it.homeTeamName }),
1814
1892
  /* @__PURE__ */ jsx13("span", { className: "ss-w-bi-team", children: it.homeTeamName }),
1815
1893
  /* @__PURE__ */ jsx13("span", { className: "ss-w-bi-vs", "aria-hidden": "true", children: "vs" }),
@@ -1819,7 +1897,7 @@ function CardFixture({ it }) {
1819
1897
  }
1820
1898
  if (it.fixture) return /* @__PURE__ */ jsx13("span", { className: "ss-w-bi-fixture-txt", children: it.fixture });
1821
1899
  if (it.competition) {
1822
- return /* @__PURE__ */ jsxs8(Fragment, { children: [
1900
+ return /* @__PURE__ */ jsxs9(Fragment, { children: [
1823
1901
  /* @__PURE__ */ jsx13(Crest2, { kind: "comp", url: it.competitionCrest, name: it.competition }),
1824
1902
  /* @__PURE__ */ jsx13("span", { className: "ss-w-bi-comp", children: it.competition })
1825
1903
  ] });
@@ -1834,16 +1912,16 @@ function InsightCard({ it, ui, slip, monitor }) {
1834
1912
  const compInMeta = leftIsFixture && !!it.competition;
1835
1913
  const showPin = !!monitor && it.pinEnabled;
1836
1914
  const showHeader = leftIsFixture || !!it.competition || live || !!kickoff || showPin;
1837
- return /* @__PURE__ */ jsxs8("div", { className: "ss-w-binsight", children: [
1838
- showHeader ? /* @__PURE__ */ jsxs8("div", { className: "ss-w-bi-header", children: [
1915
+ return /* @__PURE__ */ jsxs9("div", { className: "ss-w-binsight", children: [
1916
+ showHeader ? /* @__PURE__ */ jsxs9("div", { className: "ss-w-bi-header", children: [
1839
1917
  /* @__PURE__ */ jsx13("span", { className: "ss-w-bi-header-left", children: /* @__PURE__ */ jsx13(CardFixture, { it }) }),
1840
- /* @__PURE__ */ jsxs8("span", { className: "ss-w-bi-header-right", children: [
1841
- live ? /* @__PURE__ */ jsxs8("span", { className: "ss-w-bi-live", children: [
1918
+ /* @__PURE__ */ jsxs9("span", { className: "ss-w-bi-header-right", children: [
1919
+ live ? /* @__PURE__ */ jsxs9("span", { className: "ss-w-bi-live", children: [
1842
1920
  /* @__PURE__ */ jsx13("span", { className: "ss-w-bi-live-dot", "aria-hidden": "true" }),
1843
1921
  ui?.liveLabel ?? "Live"
1844
1922
  ] }) : null,
1845
1923
  compInMeta ? /* @__PURE__ */ jsx13("span", { className: "ss-w-bi-comp-meta", title: it.competition, children: /* @__PURE__ */ jsx13(Crest2, { kind: "comp", url: it.competitionCrest, name: it.competition }) }) : null,
1846
- kickoff ? /* @__PURE__ */ jsxs8("span", { className: "ss-w-bi-kick", children: [
1924
+ kickoff ? /* @__PURE__ */ jsxs9("span", { className: "ss-w-bi-kick", children: [
1847
1925
  kickoff.dayLabel,
1848
1926
  " ",
1849
1927
  kickoff.time
@@ -1851,15 +1929,15 @@ function InsightCard({ it, ui, slip, monitor }) {
1851
1929
  showPin && ui ? /* @__PURE__ */ jsx13(PinToggle, { ui, monitor, pin: { kind: "match", matchId: it.matchId } }) : null
1852
1930
  ] })
1853
1931
  ] }) : null,
1854
- /* @__PURE__ */ jsxs8("div", { className: "ss-w-bi-action-row", children: [
1855
- /* @__PURE__ */ jsxs8("span", { className: "ss-w-bi-pick", children: [
1932
+ /* @__PURE__ */ jsxs9("div", { className: "ss-w-bi-action-row", children: [
1933
+ /* @__PURE__ */ jsxs9("span", { className: "ss-w-bi-pick", children: [
1856
1934
  /* @__PURE__ */ jsx13("span", { className: "ss-w-bi-market", children: it.market }),
1857
- it.selection ? /* @__PURE__ */ jsxs8(Fragment, { children: [
1935
+ it.selection ? /* @__PURE__ */ jsxs9(Fragment, { children: [
1858
1936
  /* @__PURE__ */ jsx13("span", { className: "ss-w-bi-pick-dot", "aria-hidden": "true", children: "\xB7" }),
1859
1937
  /* @__PURE__ */ jsx13("span", { className: "ss-w-bi-sel", children: it.selection })
1860
1938
  ] }) : null
1861
1939
  ] }),
1862
- it.odds ? /* @__PURE__ */ jsxs8("span", { className: "ss-w-bi-odds", children: [
1940
+ it.odds ? /* @__PURE__ */ jsxs9("span", { className: "ss-w-bi-odds", children: [
1863
1941
  /* @__PURE__ */ jsx13("b", { children: it.odds }),
1864
1942
  /* @__PURE__ */ jsx13(OddsMovementBadge, { previous: it.previousOdds, current: it.odds, direction: it.movementDirection, ui }),
1865
1943
  it.bookmaker ? /* @__PURE__ */ jsx13("span", { className: "ss-w-bi-book", children: it.bookmaker }) : null
@@ -1892,16 +1970,16 @@ function BettingInsightList({ insights, ui, slip, monitor }) {
1892
1970
  }
1893
1971
 
1894
1972
  // src/components/MarketOddsCardList.tsx
1895
- import { useState as useState9 } from "react";
1896
- import { Fragment as Fragment2, jsx as jsx14, jsxs as jsxs9 } from "react/jsx-runtime";
1973
+ import { useState as useState10 } from "react";
1974
+ import { Fragment as Fragment2, jsx as jsx14, jsxs as jsxs10 } from "react/jsx-runtime";
1897
1975
  function OddsRow({ vm, row, ui, slip, inSlipIds }) {
1898
1976
  const selection = vm.addToSlipEnabled ? marketOddsRowToSlipSelection(vm, row, slip.conversationId) : null;
1899
1977
  const inSlip = !!inSlipIds && row.matchOddsId != null && !!inSlipIds[row.matchOddsId];
1900
- return /* @__PURE__ */ jsxs9("div", { className: "ss-w-mo-row", children: [
1978
+ return /* @__PURE__ */ jsxs10("div", { className: "ss-w-mo-row", children: [
1901
1979
  /* @__PURE__ */ jsx14("span", { className: "ss-w-mo-sel", children: row.selection }),
1902
1980
  /* @__PURE__ */ jsx14(OddsMovementBadge, { previous: row.previousOdds, current: row.odds, direction: row.movementDirection, ui }),
1903
1981
  /* @__PURE__ */ jsx14("span", { className: "ss-w-mo-price", children: row.odds }),
1904
- inSlip && ui ? /* @__PURE__ */ jsxs9("span", { className: "ss-w-mon-inslip", children: [
1982
+ inSlip && ui ? /* @__PURE__ */ jsxs10("span", { className: "ss-w-mon-inslip", children: [
1905
1983
  "\u2713 ",
1906
1984
  ui.inSlipLabel
1907
1985
  ] }) : null,
@@ -1909,24 +1987,24 @@ function OddsRow({ vm, row, ui, slip, inSlipIds }) {
1909
1987
  ] });
1910
1988
  }
1911
1989
  function MarketOddsCard({ vm, ui, slip, monitor, inSlipIds, hideHeader, pinRef }) {
1912
- const [open, setOpen] = useState9(false);
1990
+ const [open, setOpen] = useState10(false);
1913
1991
  const kickoff = vm.kickoffUtc && ui?.bettingKickoff ? ui.bettingKickoff(vm.kickoffUtc) : void 0;
1914
1992
  const hasNamedTeams = !!vm.homeTeamName && !!vm.awayTeamName;
1915
1993
  const showPin = !!monitor && vm.pinEnabled;
1916
1994
  const showHeader = !!vm.competition || vm.isLive || !!kickoff || showPin;
1917
- return /* @__PURE__ */ jsxs9("div", { className: hideHeader ? "ss-w-mocard ss-w-mocard--bare" : "ss-w-mocard", children: [
1918
- !hideHeader && /* @__PURE__ */ jsxs9(Fragment2, { children: [
1919
- showHeader ? /* @__PURE__ */ jsxs9("div", { className: "ss-w-bi-header", children: [
1920
- /* @__PURE__ */ jsx14("span", { className: "ss-w-bi-header-left", children: vm.competition ? /* @__PURE__ */ jsxs9(Fragment2, { children: [
1995
+ return /* @__PURE__ */ jsxs10("div", { className: hideHeader ? "ss-w-mocard ss-w-mocard--bare" : "ss-w-mocard", children: [
1996
+ !hideHeader && /* @__PURE__ */ jsxs10(Fragment2, { children: [
1997
+ showHeader ? /* @__PURE__ */ jsxs10("div", { className: "ss-w-bi-header", children: [
1998
+ /* @__PURE__ */ jsx14("span", { className: "ss-w-bi-header-left", children: vm.competition ? /* @__PURE__ */ jsxs10(Fragment2, { children: [
1921
1999
  /* @__PURE__ */ jsx14(Crest2, { kind: "comp", url: vm.competitionCrest, name: vm.competition }),
1922
2000
  /* @__PURE__ */ jsx14("span", { className: "ss-w-bi-comp", children: vm.competition })
1923
2001
  ] }) : null }),
1924
- /* @__PURE__ */ jsxs9("span", { className: "ss-w-bi-header-right", children: [
1925
- vm.isLive ? /* @__PURE__ */ jsxs9("span", { className: "ss-w-bi-live", children: [
2002
+ /* @__PURE__ */ jsxs10("span", { className: "ss-w-bi-header-right", children: [
2003
+ vm.isLive ? /* @__PURE__ */ jsxs10("span", { className: "ss-w-bi-live", children: [
1926
2004
  /* @__PURE__ */ jsx14("span", { className: "ss-w-bi-live-dot", "aria-hidden": "true" }),
1927
2005
  ui?.liveLabel ?? "Live"
1928
2006
  ] }) : null,
1929
- kickoff ? /* @__PURE__ */ jsxs9("span", { className: "ss-w-bi-kick", children: [
2007
+ kickoff ? /* @__PURE__ */ jsxs10("span", { className: "ss-w-bi-kick", children: [
1930
2008
  kickoff.dayLabel,
1931
2009
  " ",
1932
2010
  kickoff.time
@@ -1941,8 +2019,8 @@ function MarketOddsCard({ vm, ui, slip, monitor, inSlipIds, hideHeader, pinRef }
1941
2019
  ) : null
1942
2020
  ] })
1943
2021
  ] }) : null,
1944
- hasNamedTeams || vm.fixture || vm.market ? /* @__PURE__ */ jsxs9("div", { className: "ss-w-mo-sub", children: [
1945
- hasNamedTeams ? /* @__PURE__ */ jsxs9("div", { className: "ss-w-bi-fixture", children: [
2022
+ hasNamedTeams || vm.fixture || vm.market ? /* @__PURE__ */ jsxs10("div", { className: "ss-w-mo-sub", children: [
2023
+ hasNamedTeams ? /* @__PURE__ */ jsxs10("div", { className: "ss-w-bi-fixture", children: [
1946
2024
  /* @__PURE__ */ jsx14(Crest2, { kind: "team", url: vm.homeCrest, name: vm.homeTeamName }),
1947
2025
  /* @__PURE__ */ jsx14("span", { className: "ss-w-bi-team", children: vm.homeTeamName }),
1948
2026
  /* @__PURE__ */ jsx14("span", { className: "ss-w-bi-vs", "aria-hidden": "true", children: "vs" }),
@@ -1952,11 +2030,11 @@ function MarketOddsCard({ vm, ui, slip, monitor, inSlipIds, hideHeader, pinRef }
1952
2030
  vm.market ? /* @__PURE__ */ jsx14("span", { className: "ss-w-mo-market", children: vm.market }) : null
1953
2031
  ] }) : null
1954
2032
  ] }),
1955
- /* @__PURE__ */ jsxs9("div", { className: "ss-w-mo-rows", children: [
2033
+ /* @__PURE__ */ jsxs10("div", { className: "ss-w-mo-rows", children: [
1956
2034
  vm.mainRows.map((row) => /* @__PURE__ */ jsx14(OddsRow, { vm, row, ui, slip, inSlipIds }, row.key)),
1957
2035
  open ? vm.moreRows.map((row) => /* @__PURE__ */ jsx14(OddsRow, { vm, row, ui, slip, inSlipIds }, row.key)) : null
1958
2036
  ] }),
1959
- vm.moreRows.length > 0 ? /* @__PURE__ */ jsxs9("button", { type: "button", className: "ss-w-mo-more", "aria-expanded": open, onClick: () => setOpen((v) => !v), children: [
2037
+ vm.moreRows.length > 0 ? /* @__PURE__ */ jsxs10("button", { type: "button", className: "ss-w-mo-more", "aria-expanded": open, onClick: () => setOpen((v) => !v), children: [
1960
2038
  /* @__PURE__ */ jsx14("span", { children: open ? ui?.hideLines ?? "Hide lines" : `${ui?.moreLines ?? "More lines"} (${vm.moreRows.length})` }),
1961
2039
  /* @__PURE__ */ jsx14("span", { className: `ss-w-mo-more-chev${open ? " ss-w-mo-more-chev-up" : ""}`, "aria-hidden": "true" })
1962
2040
  ] }) : null,
@@ -1970,7 +2048,7 @@ function MarketOddsCardList({ cards, ui, slip, monitor, inSlipIds, hideHeader, p
1970
2048
  }
1971
2049
 
1972
2050
  // src/components/OddsMovementCard.tsx
1973
- import { Fragment as Fragment3, jsx as jsx15, jsxs as jsxs10 } from "react/jsx-runtime";
2051
+ import { Fragment as Fragment3, jsx as jsx15, jsxs as jsxs11 } from "react/jsx-runtime";
1974
2052
  function directionWord(vm, ui) {
1975
2053
  if (vm.direction === "shortened") return ui?.oddsShortened ?? "shortened";
1976
2054
  if (vm.direction === "drifted") return ui?.oddsDrifted ?? "drifted";
@@ -1981,8 +2059,8 @@ function OddsMovementCard({ vm, ui, monitor }) {
1981
2059
  const drift = word ? `, ${word}` : "";
1982
2060
  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}.`;
1983
2061
  const showPin = !!monitor && vm.pinEnabled;
1984
- return /* @__PURE__ */ jsxs10("div", { className: "ss-w-omcard", children: [
1985
- /* @__PURE__ */ jsxs10("div", { className: "ss-w-om-head", children: [
2062
+ return /* @__PURE__ */ jsxs11("div", { className: "ss-w-omcard", children: [
2063
+ /* @__PURE__ */ jsxs11("div", { className: "ss-w-om-head", children: [
1986
2064
  /* @__PURE__ */ jsx15("span", { className: "ss-w-om-market", children: vm.market }),
1987
2065
  /* @__PURE__ */ jsx15("span", { className: "ss-w-om-tag", children: ui?.priceMovement ?? "Price movement" }),
1988
2066
  showPin && ui ? /* @__PURE__ */ jsx15(
@@ -2002,13 +2080,13 @@ function OddsMovementCard({ vm, ui, monitor }) {
2002
2080
  }
2003
2081
  ) : null
2004
2082
  ] }),
2005
- vm.fixture ? /* @__PURE__ */ jsxs10("div", { className: "ss-w-om-fixture", children: [
2083
+ vm.fixture ? /* @__PURE__ */ jsxs11("div", { className: "ss-w-om-fixture", children: [
2006
2084
  /* @__PURE__ */ jsx15("span", { children: vm.fixture }),
2007
2085
  vm.competition ? /* @__PURE__ */ jsx15("span", { className: "ss-w-om-comp", children: vm.competition }) : null
2008
2086
  ] }) : null,
2009
2087
  /* @__PURE__ */ jsx15("div", { className: "ss-w-om-sel", children: vm.selection }),
2010
2088
  /* @__PURE__ */ jsx15(OddsMovementBadge, { previous: vm.opening, current: vm.current, direction: vm.direction, ui }),
2011
- vm.geometry === null ? /* @__PURE__ */ jsx15("div", { className: "ss-w-om-empty", children: vm.observationCount === 1 ? ui?.singlePricePoint ?? "Only one price recorded so far for this selection." : ui?.notEnoughHistory ?? "No price history recorded yet for this selection." }) : /* @__PURE__ */ jsxs10(
2089
+ vm.geometry === null ? /* @__PURE__ */ jsx15("div", { className: "ss-w-om-empty", children: vm.observationCount === 1 ? ui?.singlePricePoint ?? "Only one price recorded so far for this selection." : ui?.notEnoughHistory ?? "No price history recorded yet for this selection." }) : /* @__PURE__ */ jsxs11(
2012
2090
  "svg",
2013
2091
  {
2014
2092
  className: "ss-w-om-chart",
@@ -2017,26 +2095,26 @@ function OddsMovementCard({ vm, ui, monitor }) {
2017
2095
  role: "img",
2018
2096
  "aria-label": aria,
2019
2097
  children: [
2020
- vm.geometry.gridlines.map((g) => /* @__PURE__ */ jsxs10("g", { children: [
2098
+ vm.geometry.gridlines.map((g) => /* @__PURE__ */ jsxs11("g", { children: [
2021
2099
  /* @__PURE__ */ jsx15("line", { className: "ss-w-om-grid", x1: 40, y1: g.y, x2: CHART_VIEW_W - 8, y2: g.y }),
2022
2100
  /* @__PURE__ */ jsx15("text", { className: "ss-w-om-ylab", x: 34, y: g.y + 3, textAnchor: "end", children: g.price.toFixed(2) })
2023
2101
  ] }, g.price)),
2024
2102
  /* @__PURE__ */ jsx15("path", { className: "ss-w-om-line", d: vm.geometry.path, fill: "none" }),
2025
2103
  vm.geometry.markers.map((m, i) => /* @__PURE__ */ jsx15("circle", { className: "ss-w-om-dot", cx: m.x, cy: m.y, r: 2.5 }, i)),
2026
- ui?.chartTimeLabel ? /* @__PURE__ */ jsxs10(Fragment3, { children: [
2104
+ ui?.chartTimeLabel ? /* @__PURE__ */ jsxs11(Fragment3, { children: [
2027
2105
  /* @__PURE__ */ jsx15("text", { className: "ss-w-om-xlab", x: 40, y: CHART_VIEW_H - 8, textAnchor: "start", children: ui.chartTimeLabel(vm.geometry.startMs) }),
2028
2106
  /* @__PURE__ */ jsx15("text", { className: "ss-w-om-xlab", x: CHART_VIEW_W - 8, y: CHART_VIEW_H - 8, textAnchor: "end", children: ui.chartTimeLabel(vm.geometry.endMs) })
2029
2107
  ] }) : /* @__PURE__ */ jsx15("text", { className: "ss-w-om-xlab", x: 40, y: CHART_VIEW_H - 8, children: ui?.movementWindow ? ui.movementWindow(vm.windowHours) : `Last ${vm.windowHours}h` })
2030
2108
  ]
2031
2109
  }
2032
2110
  ),
2033
- /* @__PURE__ */ jsxs10("div", { className: "ss-w-om-foot", children: [
2034
- /* @__PURE__ */ jsxs10("span", { children: [
2111
+ /* @__PURE__ */ jsxs11("div", { className: "ss-w-om-foot", children: [
2112
+ /* @__PURE__ */ jsxs11("span", { children: [
2035
2113
  ui?.openingLabel ?? "Opening",
2036
2114
  " ",
2037
2115
  /* @__PURE__ */ jsx15("b", { children: vm.opening })
2038
2116
  ] }),
2039
- /* @__PURE__ */ jsxs10("span", { children: [
2117
+ /* @__PURE__ */ jsxs11("span", { children: [
2040
2118
  ui?.currentLabel ?? "Current",
2041
2119
  " ",
2042
2120
  /* @__PURE__ */ jsx15("b", { children: vm.current })
@@ -2054,12 +2132,12 @@ function OddsMovementCardList({ cards, ui, monitor }) {
2054
2132
  }
2055
2133
 
2056
2134
  // src/components/ActionButtons.tsx
2057
- import { Fragment as Fragment4, jsx as jsx16, jsxs as jsxs11 } from "react/jsx-runtime";
2135
+ import { Fragment as Fragment4, jsx as jsx16, jsxs as jsxs12 } from "react/jsx-runtime";
2058
2136
  function ActionButtons({ actions, loading, disabled, onAct }) {
2059
2137
  if (actions.length === 0 && !loading) return null;
2060
- return /* @__PURE__ */ jsxs11("div", { className: "ss-w-actions", children: [
2138
+ return /* @__PURE__ */ jsxs12("div", { className: "ss-w-actions", children: [
2061
2139
  actions.map((a, i) => /* @__PURE__ */ jsx16("button", { type: "button", className: "ss-w-abtn", disabled, onClick: () => onAct(a), children: a.label }, `${a.label}-${i}`)),
2062
- actions.length === 0 && loading ? /* @__PURE__ */ jsxs11(Fragment4, { children: [
2140
+ actions.length === 0 && loading ? /* @__PURE__ */ jsxs12(Fragment4, { children: [
2063
2141
  /* @__PURE__ */ jsx16("span", { className: "ss-w-abtn-shimmer" }),
2064
2142
  /* @__PURE__ */ jsx16("span", { className: "ss-w-abtn-shimmer" })
2065
2143
  ] }) : null
@@ -2067,22 +2145,22 @@ function ActionButtons({ actions, loading, disabled, onAct }) {
2067
2145
  }
2068
2146
 
2069
2147
  // src/components/dashboard/DashboardTile.tsx
2070
- import { jsx as jsx17, jsxs as jsxs12 } from "react/jsx-runtime";
2148
+ import { jsx as jsx17, jsxs as jsxs13 } from "react/jsx-runtime";
2071
2149
  var MAX_CRESTS = 3;
2072
2150
  function DashboardTile({ tile, onTap }) {
2073
2151
  const spanClass = tile.span === "full" ? "ss-w-dash-tile--full" : "ss-w-dash-tile--half";
2074
2152
  const crests = (tile.imageUrls ?? []).slice(0, MAX_CRESTS);
2075
2153
  const hasMeta = Boolean(tile.badgeText) || crests.length > 0;
2076
- return /* @__PURE__ */ jsxs12("button", { type: "button", className: `ss-w-dash-tile ${spanClass}`, onClick: onTap, children: [
2154
+ return /* @__PURE__ */ jsxs13("button", { type: "button", className: `ss-w-dash-tile ${spanClass}`, onClick: onTap, children: [
2077
2155
  /* @__PURE__ */ jsx17("span", { className: "ss-w-dash-tile-icon", children: /* @__PURE__ */ jsx17(DashboardIcon, { name: tile.icon }) }),
2078
- /* @__PURE__ */ jsxs12("span", { className: "ss-w-dash-tile-body", children: [
2156
+ /* @__PURE__ */ jsxs13("span", { className: "ss-w-dash-tile-body", children: [
2079
2157
  /* @__PURE__ */ jsx17("span", { className: "ss-w-dash-tile-title", children: tile.title }),
2080
2158
  tile.subtitle ? /* @__PURE__ */ jsx17("span", { className: "ss-w-dash-tile-subtitle", children: tile.subtitle }) : null,
2081
2159
  hasMeta ? (
2082
2160
  // Badge + crests sit on their own row, below the title, instead of sharing the
2083
2161
  // icon/chevron row -- at the half-span tile's ~180px width a nowrap badge alone
2084
2162
  // (~70px) left the title column at ~22px and forced character-by-character wrapping.
2085
- /* @__PURE__ */ jsxs12("span", { className: "ss-w-dash-tile-meta", children: [
2163
+ /* @__PURE__ */ jsxs13("span", { className: "ss-w-dash-tile-meta", children: [
2086
2164
  tile.badgeText ? /* @__PURE__ */ jsx17("span", { className: "ss-w-dash-tile-badge", children: tile.badgeText }) : null,
2087
2165
  crests.length > 0 ? /* @__PURE__ */ jsx17("span", { className: "ss-w-dash-tile-crests", children: crests.map((url, i) => /* @__PURE__ */ jsx17("span", { className: "ss-w-dash-tile-crest", style: { backgroundImage: `url(${url})` }, "aria-hidden": "true" }, `${url}-${i}`)) }) : null
2088
2166
  ] })
@@ -2093,7 +2171,7 @@ function DashboardTile({ tile, onTap }) {
2093
2171
  }
2094
2172
 
2095
2173
  // src/components/dashboard/GreetingDashboard.tsx
2096
- import { jsx as jsx18, jsxs as jsxs13 } from "react/jsx-runtime";
2174
+ import { jsx as jsx18, jsxs as jsxs14 } from "react/jsx-runtime";
2097
2175
  var LAYOUT_CLASSES = {
2098
2176
  market: "ss-w-dash--market",
2099
2177
  goal: "ss-w-dash--goal",
@@ -2103,8 +2181,8 @@ function layoutClass(layout) {
2103
2181
  return Object.prototype.hasOwnProperty.call(LAYOUT_CLASSES, layout) ? LAYOUT_CLASSES[layout] : LAYOUT_CLASSES.goal;
2104
2182
  }
2105
2183
  function GreetingDashboard({ dashboard, onTap }) {
2106
- return /* @__PURE__ */ jsxs13("div", { className: `ss-w-dash ${layoutClass(dashboard.layout)}`, children: [
2107
- /* @__PURE__ */ jsxs13("div", { className: "ss-w-dash-head", children: [
2184
+ return /* @__PURE__ */ jsxs14("div", { className: `ss-w-dash ${layoutClass(dashboard.layout)}`, children: [
2185
+ /* @__PURE__ */ jsxs14("div", { className: "ss-w-dash-head", children: [
2108
2186
  /* @__PURE__ */ jsx18("span", { className: "ss-w-dash-title", children: dashboard.title }),
2109
2187
  dashboard.subtitle ? /* @__PURE__ */ jsx18("span", { className: "ss-w-dash-subtitle", children: dashboard.subtitle }) : null
2110
2188
  ] }),
@@ -2114,7 +2192,7 @@ function GreetingDashboard({ dashboard, onTap }) {
2114
2192
  }
2115
2193
 
2116
2194
  // src/components/dashboard/FixtureCard.tsx
2117
- import { Fragment as Fragment5, jsx as jsx19, jsxs as jsxs14 } from "react/jsx-runtime";
2195
+ import { Fragment as Fragment5, jsx as jsx19, jsxs as jsxs15 } from "react/jsx-runtime";
2118
2196
  function teamFormResultClass(result) {
2119
2197
  if (result === "W") return "ss-w-fandash-teamform-cell--win";
2120
2198
  if (result === "L") return "ss-w-fandash-teamform-cell--loss";
@@ -2124,7 +2202,7 @@ function TeamFormCell({ m, subjectCrestUrl, subjectName }) {
2124
2202
  const subjectCrest = /* @__PURE__ */ jsx19(Crest2, { url: subjectCrestUrl ?? void 0, name: subjectName, kind: "team" });
2125
2203
  const opponentCrest = /* @__PURE__ */ jsx19(Crest2, { url: m.opponentCrestUrl ?? void 0, kind: "team" });
2126
2204
  const score = m.teamIsHome ? `${m.teamScore} - ${m.oppScore}` : `${m.oppScore} - ${m.teamScore}`;
2127
- return /* @__PURE__ */ jsxs14("div", { className: `ss-w-fandash-teamform-cell ${teamFormResultClass(m.result)}`, children: [
2205
+ return /* @__PURE__ */ jsxs15("div", { className: `ss-w-fandash-teamform-cell ${teamFormResultClass(m.result)}`, children: [
2128
2206
  m.teamIsHome ? subjectCrest : opponentCrest,
2129
2207
  /* @__PURE__ */ jsx19("span", { className: "ss-w-fandash-teamform-score", children: score }),
2130
2208
  m.teamIsHome ? opponentCrest : subjectCrest
@@ -2140,59 +2218,59 @@ function teamFormRows(data) {
2140
2218
  function FixtureCard({ card }) {
2141
2219
  const { data } = card;
2142
2220
  const h2h = data.h2H;
2143
- return /* @__PURE__ */ jsxs14(Fragment5, { children: [
2144
- /* @__PURE__ */ jsxs14("div", { className: "ss-w-fandash-card ss-w-fandash-fixture", children: [
2145
- /* @__PURE__ */ jsxs14("span", { className: "ss-w-fandash-eyebrow", children: [
2221
+ return /* @__PURE__ */ jsxs15(Fragment5, { children: [
2222
+ /* @__PURE__ */ jsxs15("div", { className: "ss-w-fandash-card ss-w-fandash-fixture", children: [
2223
+ /* @__PURE__ */ jsxs15("span", { className: "ss-w-fandash-eyebrow", children: [
2146
2224
  card.title,
2147
2225
  " \xB7 ",
2148
2226
  data.competition
2149
2227
  ] }),
2150
- /* @__PURE__ */ jsxs14("div", { className: "ss-w-fandash-fixture-teams", children: [
2151
- /* @__PURE__ */ jsxs14("span", { className: "ss-w-fandash-fixture-team", children: [
2228
+ /* @__PURE__ */ jsxs15("div", { className: "ss-w-fandash-fixture-teams", children: [
2229
+ /* @__PURE__ */ jsxs15("span", { className: "ss-w-fandash-fixture-team", children: [
2152
2230
  /* @__PURE__ */ jsx19(Crest2, { url: data.homeCrestUrl ?? void 0, name: data.homeName, kind: "team" }),
2153
2231
  /* @__PURE__ */ jsx19("span", { className: "ss-w-fandash-fixture-name", children: data.homeName })
2154
2232
  ] }),
2155
2233
  /* @__PURE__ */ jsx19("span", { className: "ss-w-fandash-fixture-vs", children: "v" }),
2156
- /* @__PURE__ */ jsxs14("span", { className: "ss-w-fandash-fixture-team ss-w-fandash-fixture-team--away", children: [
2234
+ /* @__PURE__ */ jsxs15("span", { className: "ss-w-fandash-fixture-team ss-w-fandash-fixture-team--away", children: [
2157
2235
  /* @__PURE__ */ jsx19("span", { className: "ss-w-fandash-fixture-name", children: data.awayName }),
2158
2236
  /* @__PURE__ */ jsx19(Crest2, { url: data.awayCrestUrl ?? void 0, name: data.awayName, kind: "team" })
2159
2237
  ] })
2160
2238
  ] }),
2161
- /* @__PURE__ */ jsxs14("div", { className: "ss-w-fandash-fixture-meta", children: [
2239
+ /* @__PURE__ */ jsxs15("div", { className: "ss-w-fandash-fixture-meta", children: [
2162
2240
  /* @__PURE__ */ jsx19("span", { className: "ss-w-fandash-fixture-kickoff", children: data.kickoffLabel }),
2163
- data.venue ? /* @__PURE__ */ jsxs14("span", { className: "ss-w-fandash-fixture-venue", children: [
2241
+ data.venue ? /* @__PURE__ */ jsxs15("span", { className: "ss-w-fandash-fixture-venue", children: [
2164
2242
  " \xB7 ",
2165
2243
  data.venue
2166
2244
  ] }) : null
2167
2245
  ] })
2168
2246
  ] }),
2169
- /* @__PURE__ */ jsxs14("div", { className: "ss-w-fandash-card ss-w-fandash-lastfive", children: [
2247
+ /* @__PURE__ */ jsxs15("div", { className: "ss-w-fandash-card ss-w-fandash-lastfive", children: [
2170
2248
  /* @__PURE__ */ jsx19("span", { className: "ss-w-fandash-eyebrow", children: data.formLabel }),
2171
- /* @__PURE__ */ jsxs14("div", { className: "ss-w-fandash-teamform-head", children: [
2172
- /* @__PURE__ */ jsxs14("span", { className: "ss-w-fandash-teamform-head-team", children: [
2249
+ /* @__PURE__ */ jsxs15("div", { className: "ss-w-fandash-teamform-head", children: [
2250
+ /* @__PURE__ */ jsxs15("span", { className: "ss-w-fandash-teamform-head-team", children: [
2173
2251
  /* @__PURE__ */ jsx19(Crest2, { url: data.homeCrestUrl ?? void 0, name: data.homeName, kind: "team" }),
2174
2252
  /* @__PURE__ */ jsx19("span", { className: "ss-w-fandash-teamform-head-name", children: data.homeName })
2175
2253
  ] }),
2176
- /* @__PURE__ */ jsxs14("span", { className: "ss-w-fandash-teamform-head-team", children: [
2254
+ /* @__PURE__ */ jsxs15("span", { className: "ss-w-fandash-teamform-head-team", children: [
2177
2255
  /* @__PURE__ */ jsx19(Crest2, { url: data.awayCrestUrl ?? void 0, name: data.awayName, kind: "team" }),
2178
2256
  /* @__PURE__ */ jsx19("span", { className: "ss-w-fandash-teamform-head-name", children: data.awayName })
2179
2257
  ] })
2180
2258
  ] }),
2181
2259
  /* @__PURE__ */ jsx19("div", { className: "ss-w-fandash-teamform-rows", children: teamFormRows(data) })
2182
2260
  ] }),
2183
- h2h || data.fact ? /* @__PURE__ */ jsxs14("div", { className: "ss-w-fandash-card ss-w-fandash-h2h", children: [
2184
- h2h ? /* @__PURE__ */ jsxs14(Fragment5, { children: [
2261
+ h2h || data.fact ? /* @__PURE__ */ jsxs15("div", { className: "ss-w-fandash-card ss-w-fandash-h2h", children: [
2262
+ h2h ? /* @__PURE__ */ jsxs15(Fragment5, { children: [
2185
2263
  /* @__PURE__ */ jsx19("span", { className: "ss-w-fandash-eyebrow", children: h2h.label }),
2186
- /* @__PURE__ */ jsxs14("div", { className: "ss-w-fandash-split", children: [
2187
- /* @__PURE__ */ jsxs14("span", { className: "ss-w-fandash-split-cell", children: [
2264
+ /* @__PURE__ */ jsxs15("div", { className: "ss-w-fandash-split", children: [
2265
+ /* @__PURE__ */ jsxs15("span", { className: "ss-w-fandash-split-cell", children: [
2188
2266
  /* @__PURE__ */ jsx19("span", { className: "ss-w-fandash-split-value", children: h2h.wins }),
2189
2267
  /* @__PURE__ */ jsx19("span", { className: "ss-w-fandash-split-label", children: h2h.homeWinsLabel })
2190
2268
  ] }),
2191
- /* @__PURE__ */ jsxs14("span", { className: "ss-w-fandash-split-cell", children: [
2269
+ /* @__PURE__ */ jsxs15("span", { className: "ss-w-fandash-split-cell", children: [
2192
2270
  /* @__PURE__ */ jsx19("span", { className: "ss-w-fandash-split-value", children: h2h.draws }),
2193
2271
  /* @__PURE__ */ jsx19("span", { className: "ss-w-fandash-split-label", children: h2h.drawsLabel })
2194
2272
  ] }),
2195
- /* @__PURE__ */ jsxs14("span", { className: "ss-w-fandash-split-cell", children: [
2273
+ /* @__PURE__ */ jsxs15("span", { className: "ss-w-fandash-split-cell", children: [
2196
2274
  /* @__PURE__ */ jsx19("span", { className: "ss-w-fandash-split-value", children: h2h.losses }),
2197
2275
  /* @__PURE__ */ jsx19("span", { className: "ss-w-fandash-split-label", children: h2h.awayWinsLabel })
2198
2276
  ] })
@@ -2204,8 +2282,8 @@ function FixtureCard({ card }) {
2204
2282
  }
2205
2283
 
2206
2284
  // src/components/dashboard/CountdownCard.tsx
2207
- import { Fragment as Fragment6, useEffect as useEffect6, useState as useState10 } from "react";
2208
- import { jsx as jsx20, jsxs as jsxs15 } from "react/jsx-runtime";
2285
+ import { Fragment as Fragment6, useEffect as useEffect7, useState as useState11 } from "react";
2286
+ import { jsx as jsx20, jsxs as jsxs16 } from "react/jsx-runtime";
2209
2287
  var DAY_MS = 864e5;
2210
2288
  function remainingSegments(kickoffUnix, nowMs, withSeconds) {
2211
2289
  const totalSeconds = Math.floor((kickoffUnix * 1e3 - nowMs) / 1e3);
@@ -2223,22 +2301,22 @@ function remainingSegments(kickoffUnix, nowMs, withSeconds) {
2223
2301
  function CountdownCard({ card }) {
2224
2302
  const { data } = card;
2225
2303
  const unitLabel = { d: data.daysUnit, h: data.hoursUnit, m: data.minutesUnit, s: data.secondsUnit };
2226
- const [nowMs, setNowMs] = useState10(() => Date.now());
2227
- const [reduced] = useState10(
2304
+ const [nowMs, setNowMs] = useState11(() => Date.now());
2305
+ const [reduced] = useState11(
2228
2306
  () => typeof window !== "undefined" && window.matchMedia("(prefers-reduced-motion: reduce)").matches
2229
2307
  );
2230
2308
  const withinDay = data.kickoffUnix * 1e3 - nowMs < DAY_MS;
2231
- useEffect6(() => {
2309
+ useEffect7(() => {
2232
2310
  if (reduced) return;
2233
2311
  const id = window.setInterval(() => setNowMs(Date.now()), withinDay ? 1e3 : 6e4);
2234
2312
  return () => window.clearInterval(id);
2235
2313
  }, [reduced, withinDay]);
2236
2314
  const segments = remainingSegments(data.kickoffUnix, nowMs, withinDay && !reduced);
2237
- return /* @__PURE__ */ jsx20("div", { className: "ss-w-fandash-card ss-w-fandash-countdown", children: /* @__PURE__ */ jsxs15("div", { className: "ss-w-fandash-countdown-top", children: [
2315
+ return /* @__PURE__ */ jsx20("div", { className: "ss-w-fandash-card ss-w-fandash-countdown", children: /* @__PURE__ */ jsxs16("div", { className: "ss-w-fandash-countdown-top", children: [
2238
2316
  /* @__PURE__ */ jsx20("span", { className: "ss-w-fandash-eyebrow", children: card.title ?? "Kick-off in" }),
2239
- segments ? /* @__PURE__ */ jsx20("span", { className: "ss-w-fandash-countdown-clock", children: segments.map((s, i) => /* @__PURE__ */ jsxs15(Fragment6, { children: [
2317
+ segments ? /* @__PURE__ */ jsx20("span", { className: "ss-w-fandash-countdown-clock", children: segments.map((s, i) => /* @__PURE__ */ jsxs16(Fragment6, { children: [
2240
2318
  i > 0 ? /* @__PURE__ */ jsx20("span", { className: "ss-w-fandash-countdown-colon", children: ":" }) : null,
2241
- /* @__PURE__ */ jsxs15("span", { className: "ss-w-fandash-countdown-seg", children: [
2319
+ /* @__PURE__ */ jsxs16("span", { className: "ss-w-fandash-countdown-seg", children: [
2242
2320
  /* @__PURE__ */ jsx20("span", { className: "ss-w-fandash-countdown-value", children: s.value }),
2243
2321
  /* @__PURE__ */ jsx20("span", { className: "ss-w-fandash-countdown-unit", children: unitLabel[s.unit] })
2244
2322
  ] })
@@ -2247,11 +2325,11 @@ function CountdownCard({ card }) {
2247
2325
  }
2248
2326
 
2249
2327
  // src/components/dashboard/InjuriesCard.tsx
2250
- import { useState as useState11 } from "react";
2251
- import { jsx as jsx21, jsxs as jsxs16 } from "react/jsx-runtime";
2328
+ import { useState as useState12 } from "react";
2329
+ import { jsx as jsx21, jsxs as jsxs17 } from "react/jsx-runtime";
2252
2330
  var SHOWN = 3;
2253
2331
  function ColHead({ name, crestUrl }) {
2254
- return /* @__PURE__ */ jsxs16("span", { className: "ss-w-fandash-injuries-col-head", children: [
2332
+ return /* @__PURE__ */ jsxs17("span", { className: "ss-w-fandash-injuries-col-head", children: [
2255
2333
  /* @__PURE__ */ jsx21(Crest2, { url: crestUrl ?? void 0, name, kind: "team" }),
2256
2334
  /* @__PURE__ */ jsx21("span", { className: "ss-w-fandash-injuries-col-head-name", children: name })
2257
2335
  ] });
@@ -2259,9 +2337,9 @@ function ColHead({ name, crestUrl }) {
2259
2337
  function InjuryList({ rows, emptyLabel, limit }) {
2260
2338
  if (rows.length === 0) return /* @__PURE__ */ jsx21("span", { className: "ss-w-fandash-injuries-empty", children: emptyLabel });
2261
2339
  const shown = limit === void 0 ? rows : rows.slice(0, limit);
2262
- return /* @__PURE__ */ jsx21("ul", { className: "ss-w-fandash-injury-list", children: shown.map((r, i) => /* @__PURE__ */ jsxs16("li", { className: "ss-w-fandash-injury-row", children: [
2340
+ return /* @__PURE__ */ jsx21("ul", { className: "ss-w-fandash-injury-list", children: shown.map((r, i) => /* @__PURE__ */ jsxs17("li", { className: "ss-w-fandash-injury-row", children: [
2263
2341
  /* @__PURE__ */ jsx21("span", { className: "ss-w-fandash-injury-name", children: r.playerName }),
2264
- /* @__PURE__ */ jsxs16("span", { className: "ss-w-fandash-injury-meta", children: [
2342
+ /* @__PURE__ */ jsxs17("span", { className: "ss-w-fandash-injury-meta", children: [
2265
2343
  /* @__PURE__ */ jsx21("span", { className: "ss-w-fandash-injury-status", children: r.status }),
2266
2344
  r.injuryType ? /* @__PURE__ */ jsx21("span", { className: "ss-w-fandash-injury-type", children: r.injuryType }) : null,
2267
2345
  r.expectedReturnLabel ? /* @__PURE__ */ jsx21("span", { className: "ss-w-fandash-injury-return", children: r.expectedReturnLabel }) : null
@@ -2270,20 +2348,20 @@ function InjuryList({ rows, emptyLabel, limit }) {
2270
2348
  }
2271
2349
  function InjuriesCard({ card, ui }) {
2272
2350
  const { data } = card;
2273
- const [expanded, setExpanded] = useState11(false);
2351
+ const [expanded, setExpanded] = useState12(false);
2274
2352
  const hidden = Math.max(0, data.ours.length - SHOWN) + Math.max(0, data.theirs.length - SHOWN);
2275
2353
  const limit = expanded ? void 0 : SHOWN;
2276
2354
  const showMore = ui?.showMore ?? ((n) => `Show ${n} more`);
2277
2355
  const showLess = ui?.showLess ?? "Show less";
2278
- return /* @__PURE__ */ jsxs16("div", { className: "ss-w-fandash-card ss-w-fandash-injuries", children: [
2356
+ return /* @__PURE__ */ jsxs17("div", { className: "ss-w-fandash-card ss-w-fandash-injuries", children: [
2279
2357
  card.title ? /* @__PURE__ */ jsx21("span", { className: "ss-w-fandash-eyebrow", children: card.title }) : null,
2280
- /* @__PURE__ */ jsxs16("div", { className: "ss-w-fandash-injuries-cols", children: [
2281
- /* @__PURE__ */ jsxs16("div", { className: "ss-w-fandash-injuries-col", children: [
2358
+ /* @__PURE__ */ jsxs17("div", { className: "ss-w-fandash-injuries-cols", children: [
2359
+ /* @__PURE__ */ jsxs17("div", { className: "ss-w-fandash-injuries-col", children: [
2282
2360
  /* @__PURE__ */ jsx21(ColHead, { name: data.oursName, crestUrl: data.oursCrestUrl }),
2283
2361
  /* @__PURE__ */ jsx21(InjuryList, { rows: data.ours, emptyLabel: data.emptyLabel, limit })
2284
2362
  ] }),
2285
2363
  /* @__PURE__ */ jsx21("div", { className: "ss-w-fandash-injuries-divider" }),
2286
- /* @__PURE__ */ jsxs16("div", { className: "ss-w-fandash-injuries-col", children: [
2364
+ /* @__PURE__ */ jsxs17("div", { className: "ss-w-fandash-injuries-col", children: [
2287
2365
  /* @__PURE__ */ jsx21(ColHead, { name: data.theirsName, crestUrl: data.theirsCrestUrl }),
2288
2366
  /* @__PURE__ */ jsx21(InjuryList, { rows: data.theirs, emptyLabel: data.emptyLabel, limit })
2289
2367
  ] })
@@ -2302,29 +2380,29 @@ function InjuriesCard({ card, ui }) {
2302
2380
  }
2303
2381
 
2304
2382
  // src/components/dashboard/ReasonToBetCard.tsx
2305
- import { jsx as jsx22, jsxs as jsxs17 } from "react/jsx-runtime";
2383
+ import { jsx as jsx22, jsxs as jsxs18 } from "react/jsx-runtime";
2306
2384
  function ReasonToBetCard({ card }) {
2307
- return /* @__PURE__ */ jsxs17("div", { className: "ss-w-fandash-card ss-w-fandash-reasons", children: [
2385
+ return /* @__PURE__ */ jsxs18("div", { className: "ss-w-fandash-card ss-w-fandash-reasons", children: [
2308
2386
  card.title ? /* @__PURE__ */ jsx22("span", { className: "ss-w-fandash-eyebrow", children: card.title }) : null,
2309
2387
  /* @__PURE__ */ jsx22("ul", { className: "ss-w-fandash-reason-list", children: card.data.angles.map((angle, i) => /* @__PURE__ */ jsx22("li", { className: "ss-w-fandash-reason-item", children: angle }, `${angle}-${i}`)) })
2310
2388
  ] });
2311
2389
  }
2312
2390
 
2313
2391
  // src/components/dashboard/WhereToWatchCard.tsx
2314
- import { jsx as jsx23, jsxs as jsxs18 } from "react/jsx-runtime";
2392
+ import { jsx as jsx23, jsxs as jsxs19 } from "react/jsx-runtime";
2315
2393
  function WhereToWatchCard({ card }) {
2316
- return /* @__PURE__ */ jsxs18("div", { className: "ss-w-fandash-card ss-w-fandash-watch", children: [
2394
+ return /* @__PURE__ */ jsxs19("div", { className: "ss-w-fandash-card ss-w-fandash-watch", children: [
2317
2395
  card.title ? /* @__PURE__ */ jsx23("span", { className: "ss-w-fandash-eyebrow", children: card.title }) : null,
2318
2396
  /* @__PURE__ */ jsx23("span", { className: "ss-w-fandash-stations", children: card.data.stations.map((station, i) => /* @__PURE__ */ jsx23("span", { className: "ss-w-fandash-station-chip", children: station }, `${station}-${i}`)) })
2319
2397
  ] });
2320
2398
  }
2321
2399
 
2322
2400
  // src/components/dashboard/CongestedWeekCard.tsx
2323
- import { jsx as jsx24, jsxs as jsxs19 } from "react/jsx-runtime";
2401
+ import { jsx as jsx24, jsxs as jsxs20 } from "react/jsx-runtime";
2324
2402
  function CongestedWeekCard({ card, onTap }) {
2325
- return /* @__PURE__ */ jsxs19("button", { type: "button", className: "ss-w-fandash-card ss-w-fandash-card--tap ss-w-fandash-congested", onClick: () => onTap(card), children: [
2403
+ return /* @__PURE__ */ jsxs20("button", { type: "button", className: "ss-w-fandash-card ss-w-fandash-card--tap ss-w-fandash-congested", onClick: () => onTap(card), children: [
2326
2404
  card.title ? /* @__PURE__ */ jsx24("span", { className: "ss-w-fandash-eyebrow", children: card.title }) : null,
2327
- /* @__PURE__ */ jsx24("div", { className: "ss-w-fandash-congested-grid", children: card.data.entries.map((entry, i) => /* @__PURE__ */ jsxs19("span", { className: "ss-w-fandash-congested-cell", children: [
2405
+ /* @__PURE__ */ jsx24("div", { className: "ss-w-fandash-congested-grid", children: card.data.entries.map((entry, i) => /* @__PURE__ */ jsxs20("span", { className: "ss-w-fandash-congested-cell", children: [
2328
2406
  /* @__PURE__ */ jsx24("span", { className: "ss-w-fandash-congested-day", children: entry.dayLabel }),
2329
2407
  /* @__PURE__ */ jsx24("span", { className: "ss-w-fandash-congested-opponent", children: entry.opponent }),
2330
2408
  /* @__PURE__ */ jsx24("span", { className: "ss-w-fandash-congested-comp", children: entry.competition }),
@@ -2335,10 +2413,10 @@ function CongestedWeekCard({ card, onTap }) {
2335
2413
  }
2336
2414
 
2337
2415
  // src/components/dashboard/TransfersCard.tsx
2338
- import { jsx as jsx25, jsxs as jsxs20 } from "react/jsx-runtime";
2416
+ import { jsx as jsx25, jsxs as jsxs21 } from "react/jsx-runtime";
2339
2417
  function TransferList({ rows }) {
2340
2418
  if (rows.length === 0) return /* @__PURE__ */ jsx25("span", { className: "ss-w-fandash-transfers-empty", children: "None" });
2341
- return /* @__PURE__ */ jsx25("ul", { className: "ss-w-fandash-transfer-list", children: rows.map((r, i) => /* @__PURE__ */ jsxs20("li", { className: "ss-w-fandash-transfer-row", children: [
2419
+ return /* @__PURE__ */ jsx25("ul", { className: "ss-w-fandash-transfer-list", children: rows.map((r, i) => /* @__PURE__ */ jsxs21("li", { className: "ss-w-fandash-transfer-row", children: [
2342
2420
  /* @__PURE__ */ jsx25("span", { className: "ss-w-fandash-transfer-name", children: r.playerName }),
2343
2421
  /* @__PURE__ */ jsx25("span", { className: "ss-w-fandash-transfer-club", children: r.otherClub }),
2344
2422
  r.type ? /* @__PURE__ */ jsx25("span", { className: "ss-w-fandash-transfer-type", children: r.type }) : null
@@ -2346,14 +2424,14 @@ function TransferList({ rows }) {
2346
2424
  }
2347
2425
  function TransfersCard({ card }) {
2348
2426
  const { data } = card;
2349
- return /* @__PURE__ */ jsxs20("div", { className: "ss-w-fandash-card ss-w-fandash-transfers", children: [
2427
+ return /* @__PURE__ */ jsxs21("div", { className: "ss-w-fandash-card ss-w-fandash-transfers", children: [
2350
2428
  card.title ? /* @__PURE__ */ jsx25("span", { className: "ss-w-fandash-eyebrow", children: card.title }) : null,
2351
- /* @__PURE__ */ jsxs20("div", { className: "ss-w-fandash-transfers-cols", children: [
2352
- /* @__PURE__ */ jsxs20("div", { className: "ss-w-fandash-transfers-col", children: [
2429
+ /* @__PURE__ */ jsxs21("div", { className: "ss-w-fandash-transfers-cols", children: [
2430
+ /* @__PURE__ */ jsxs21("div", { className: "ss-w-fandash-transfers-col", children: [
2353
2431
  /* @__PURE__ */ jsx25("span", { className: "ss-w-fandash-transfers-col-head", children: "In" }),
2354
2432
  /* @__PURE__ */ jsx25(TransferList, { rows: data.in })
2355
2433
  ] }),
2356
- /* @__PURE__ */ jsxs20("div", { className: "ss-w-fandash-transfers-col", children: [
2434
+ /* @__PURE__ */ jsxs21("div", { className: "ss-w-fandash-transfers-col", children: [
2357
2435
  /* @__PURE__ */ jsx25("span", { className: "ss-w-fandash-transfers-col-head", children: "Out" }),
2358
2436
  /* @__PURE__ */ jsx25(TransferList, { rows: data.out })
2359
2437
  ] })
@@ -2362,11 +2440,11 @@ function TransfersCard({ card }) {
2362
2440
  }
2363
2441
 
2364
2442
  // src/components/dashboard/LinksCard.tsx
2365
- import { jsx as jsx26, jsxs as jsxs21 } from "react/jsx-runtime";
2443
+ import { jsx as jsx26, jsxs as jsxs22 } from "react/jsx-runtime";
2366
2444
  function LinksCard({ card }) {
2367
- return /* @__PURE__ */ jsxs21("div", { className: "ss-w-fandash-card ss-w-fandash-links", children: [
2445
+ return /* @__PURE__ */ jsxs22("div", { className: "ss-w-fandash-card ss-w-fandash-links", children: [
2368
2446
  card.title ? /* @__PURE__ */ jsx26("span", { className: "ss-w-fandash-eyebrow", children: card.title }) : null,
2369
- /* @__PURE__ */ jsx26("div", { className: "ss-w-fandash-link-grid", children: card.data.links.map((link, i) => /* @__PURE__ */ jsxs21("a", { className: "ss-w-fandash-link-tile", href: link.url, target: "_blank", rel: "noopener noreferrer", children: [
2447
+ /* @__PURE__ */ jsx26("div", { className: "ss-w-fandash-link-grid", children: card.data.links.map((link, i) => /* @__PURE__ */ jsxs22("a", { className: "ss-w-fandash-link-tile", href: link.url, target: "_blank", rel: "noopener noreferrer", children: [
2370
2448
  /* @__PURE__ */ jsx26("span", { className: "ss-w-fandash-link-label", children: link.label }),
2371
2449
  /* @__PURE__ */ jsx26("span", { className: "ss-w-fandash-link-chevron", children: /* @__PURE__ */ jsx26(ChevronIcon, {}) })
2372
2450
  ] }, `${link.url}-${i}`)) })
@@ -2374,8 +2452,8 @@ function LinksCard({ card }) {
2374
2452
  }
2375
2453
 
2376
2454
  // src/components/dashboard/PostMatchResultCard.tsx
2377
- import { useState as useState12 } from "react";
2378
- import { jsx as jsx27, jsxs as jsxs22 } from "react/jsx-runtime";
2455
+ import { useState as useState13 } from "react";
2456
+ import { jsx as jsx27, jsxs as jsxs23 } from "react/jsx-runtime";
2379
2457
  function initials3(name) {
2380
2458
  return name.trim().slice(0, 3).toUpperCase();
2381
2459
  }
@@ -2384,7 +2462,7 @@ function PostMatchCrest({
2384
2462
  name,
2385
2463
  side
2386
2464
  }) {
2387
- const [failed, setFailed] = useState12(false);
2465
+ const [failed, setFailed] = useState13(false);
2388
2466
  const cls = `ss-w-fandash-postmatch-crest ss-w-fandash-postmatch-crest--${side}`;
2389
2467
  if (url && !failed) {
2390
2468
  return /* @__PURE__ */ jsx27("img", { className: cls, src: url, alt: "", "aria-hidden": "true", onError: () => setFailed(true) });
@@ -2395,17 +2473,17 @@ function PostMatchResultCard({ card }) {
2395
2473
  const { data } = card;
2396
2474
  const homeWon = data.homeScore >= data.awayScore;
2397
2475
  const awayWon = data.awayScore >= data.homeScore;
2398
- return /* @__PURE__ */ jsxs22("div", { className: "ss-w-fandash-card ss-w-fandash-postmatch-result", children: [
2399
- /* @__PURE__ */ jsxs22("div", { className: "ss-w-fandash-postmatch-top", children: [
2476
+ return /* @__PURE__ */ jsxs23("div", { className: "ss-w-fandash-card ss-w-fandash-postmatch-result", children: [
2477
+ /* @__PURE__ */ jsxs23("div", { className: "ss-w-fandash-postmatch-top", children: [
2400
2478
  card.title ? /* @__PURE__ */ jsx27("span", { className: "ss-w-fandash-postmatch-pill", children: card.title }) : null,
2401
2479
  /* @__PURE__ */ jsx27("span", { className: `ss-w-fandash-postmatch-tag ss-w-fandash-postmatch-tag--${data.outcome}`, children: data.resultLabel })
2402
2480
  ] }),
2403
- /* @__PURE__ */ jsxs22("div", { className: "ss-w-fandash-postmatch-main", children: [
2404
- /* @__PURE__ */ jsxs22("div", { className: "ss-w-fandash-postmatch-side ss-w-fandash-postmatch-side--home", children: [
2481
+ /* @__PURE__ */ jsxs23("div", { className: "ss-w-fandash-postmatch-main", children: [
2482
+ /* @__PURE__ */ jsxs23("div", { className: "ss-w-fandash-postmatch-side ss-w-fandash-postmatch-side--home", children: [
2405
2483
  /* @__PURE__ */ jsx27(PostMatchCrest, { url: data.homeCrestUrl, name: data.homeName, side: "home" }),
2406
2484
  /* @__PURE__ */ jsx27("span", { className: "ss-w-fandash-postmatch-team-name", children: data.homeName })
2407
2485
  ] }),
2408
- /* @__PURE__ */ jsxs22("div", { className: "ss-w-fandash-postmatch-score-main", children: [
2486
+ /* @__PURE__ */ jsxs23("div", { className: "ss-w-fandash-postmatch-score-main", children: [
2409
2487
  /* @__PURE__ */ jsx27(
2410
2488
  "span",
2411
2489
  {
@@ -2422,12 +2500,12 @@ function PostMatchResultCard({ card }) {
2422
2500
  }
2423
2501
  )
2424
2502
  ] }),
2425
- /* @__PURE__ */ jsxs22("div", { className: "ss-w-fandash-postmatch-side ss-w-fandash-postmatch-side--away", children: [
2503
+ /* @__PURE__ */ jsxs23("div", { className: "ss-w-fandash-postmatch-side ss-w-fandash-postmatch-side--away", children: [
2426
2504
  /* @__PURE__ */ jsx27(PostMatchCrest, { url: data.awayCrestUrl, name: data.awayName, side: "away" }),
2427
2505
  /* @__PURE__ */ jsx27("span", { className: "ss-w-fandash-postmatch-team-name", children: data.awayName })
2428
2506
  ] })
2429
2507
  ] }),
2430
- /* @__PURE__ */ jsxs22("div", { className: "ss-w-fandash-postmatch-meta", children: [
2508
+ /* @__PURE__ */ jsxs23("div", { className: "ss-w-fandash-postmatch-meta", children: [
2431
2509
  data.kickoffLabel,
2432
2510
  data.competition ? ` \xB7 ${data.competition}` : ""
2433
2511
  ] })
@@ -2435,11 +2513,11 @@ function PostMatchResultCard({ card }) {
2435
2513
  }
2436
2514
 
2437
2515
  // src/components/dashboard/PostMatchGoalsCard.tsx
2438
- import { jsx as jsx28, jsxs as jsxs23 } from "react/jsx-runtime";
2516
+ import { jsx as jsx28, jsxs as jsxs24 } from "react/jsx-runtime";
2439
2517
  function PostMatchGoalsCard({ card, onTap }) {
2440
- return /* @__PURE__ */ jsxs23("button", { type: "button", className: "ss-w-fandash-card ss-w-fandash-card--tap ss-w-fandash-postmatch-goals", onClick: () => onTap(card), children: [
2518
+ return /* @__PURE__ */ jsxs24("button", { type: "button", className: "ss-w-fandash-card ss-w-fandash-card--tap ss-w-fandash-postmatch-goals", onClick: () => onTap(card), children: [
2441
2519
  card.title ? /* @__PURE__ */ jsx28("span", { className: "ss-w-fandash-eyebrow", children: card.title }) : null,
2442
- /* @__PURE__ */ jsx28("ul", { className: "ss-w-fandash-postmatch-goal-list", children: card.data.goals.map((g, i) => /* @__PURE__ */ jsxs23("li", { className: g.scoredByClub ? "ss-w-fandash-postmatch-goal ss-w-fandash-postmatch-goal--club" : "ss-w-fandash-postmatch-goal", children: [
2520
+ /* @__PURE__ */ jsx28("ul", { className: "ss-w-fandash-postmatch-goal-list", children: card.data.goals.map((g, i) => /* @__PURE__ */ jsxs24("li", { className: g.scoredByClub ? "ss-w-fandash-postmatch-goal ss-w-fandash-postmatch-goal--club" : "ss-w-fandash-postmatch-goal", children: [
2443
2521
  /* @__PURE__ */ jsx28("span", { className: "ss-w-fandash-postmatch-goal-ball" }),
2444
2522
  /* @__PURE__ */ jsx28("span", { children: g.text })
2445
2523
  ] }, `${g.text}-${i}`)) }),
@@ -2448,7 +2526,7 @@ function PostMatchGoalsCard({ card, onTap }) {
2448
2526
  }
2449
2527
 
2450
2528
  // src/components/dashboard/PostMatchStatsCard.tsx
2451
- import { jsx as jsx29, jsxs as jsxs24 } from "react/jsx-runtime";
2529
+ import { jsx as jsx29, jsxs as jsxs25 } from "react/jsx-runtime";
2452
2530
  function splitWidths(homeNum, awayNum) {
2453
2531
  const total = homeNum + awayNum;
2454
2532
  if (total <= 0) return { home: "50%", away: "50%" };
@@ -2457,7 +2535,7 @@ function splitWidths(homeNum, awayNum) {
2457
2535
  }
2458
2536
  function PostMatchStatsCard({ card, onTap }) {
2459
2537
  const { data } = card;
2460
- return /* @__PURE__ */ jsxs24("button", { type: "button", className: "ss-w-fandash-card ss-w-fandash-card--tap ss-w-fandash-postmatch-stats", onClick: () => onTap(card), children: [
2538
+ return /* @__PURE__ */ jsxs25("button", { type: "button", className: "ss-w-fandash-card ss-w-fandash-card--tap ss-w-fandash-postmatch-stats", onClick: () => onTap(card), children: [
2461
2539
  card.title ? /* @__PURE__ */ jsx29("span", { className: "ss-w-fandash-eyebrow", children: card.title }) : null,
2462
2540
  /* @__PURE__ */ jsx29("div", { className: "ss-w-fandash-postmatch-stat-rows", children: data.rows.map((r, i) => {
2463
2541
  const leftValue = data.clubIsHome ? r.clubValue : r.oppValue;
@@ -2465,24 +2543,24 @@ function PostMatchStatsCard({ card, onTap }) {
2465
2543
  const homeNum = data.clubIsHome ? r.clubNum : r.oppNum;
2466
2544
  const awayNum = data.clubIsHome ? r.oppNum : r.clubNum;
2467
2545
  const { home, away } = splitWidths(homeNum, awayNum);
2468
- return /* @__PURE__ */ jsxs24("div", { className: "ss-w-fandash-postmatch-stat", children: [
2469
- /* @__PURE__ */ jsxs24("div", { className: "ss-w-fandash-postmatch-stat-row", children: [
2546
+ return /* @__PURE__ */ jsxs25("div", { className: "ss-w-fandash-postmatch-stat", children: [
2547
+ /* @__PURE__ */ jsxs25("div", { className: "ss-w-fandash-postmatch-stat-row", children: [
2470
2548
  /* @__PURE__ */ jsx29("span", { className: "ss-w-fandash-postmatch-stat-value ss-w-fandash-postmatch-stat-value--home", children: leftValue }),
2471
2549
  /* @__PURE__ */ jsx29("span", { className: "ss-w-fandash-postmatch-stat-label", children: r.label }),
2472
2550
  /* @__PURE__ */ jsx29("span", { className: "ss-w-fandash-postmatch-stat-value ss-w-fandash-postmatch-stat-value--away", children: rightValue })
2473
2551
  ] }),
2474
- /* @__PURE__ */ jsxs24("div", { className: "ss-w-fandash-postmatch-stat-bar", children: [
2552
+ /* @__PURE__ */ jsxs25("div", { className: "ss-w-fandash-postmatch-stat-bar", children: [
2475
2553
  /* @__PURE__ */ jsx29("span", { className: "ss-w-fandash-postmatch-stat-bar-home", style: { width: home } }),
2476
2554
  /* @__PURE__ */ jsx29("span", { className: "ss-w-fandash-postmatch-stat-bar-away", style: { width: away } })
2477
2555
  ] })
2478
2556
  ] }, `${r.label}-${i}`);
2479
2557
  }) }),
2480
- data.rows.length > 0 ? /* @__PURE__ */ jsxs24("div", { className: "ss-w-fandash-postmatch-legend", children: [
2481
- /* @__PURE__ */ jsxs24("span", { className: "ss-w-fandash-postmatch-legend-item", children: [
2558
+ data.rows.length > 0 ? /* @__PURE__ */ jsxs25("div", { className: "ss-w-fandash-postmatch-legend", children: [
2559
+ /* @__PURE__ */ jsxs25("span", { className: "ss-w-fandash-postmatch-legend-item", children: [
2482
2560
  /* @__PURE__ */ jsx29("i", { className: "ss-w-fandash-postmatch-legend-swatch ss-w-fandash-postmatch-legend-swatch--home" }),
2483
2561
  data.homeName
2484
2562
  ] }),
2485
- /* @__PURE__ */ jsxs24("span", { className: "ss-w-fandash-postmatch-legend-item", children: [
2563
+ /* @__PURE__ */ jsxs25("span", { className: "ss-w-fandash-postmatch-legend-item", children: [
2486
2564
  /* @__PURE__ */ jsx29("i", { className: "ss-w-fandash-postmatch-legend-swatch ss-w-fandash-postmatch-legend-swatch--away" }),
2487
2565
  data.awayName
2488
2566
  ] })
@@ -2492,7 +2570,7 @@ function PostMatchStatsCard({ card, onTap }) {
2492
2570
  }
2493
2571
 
2494
2572
  // src/components/dashboard/PostMatchTopPerformerCard.tsx
2495
- import { jsx as jsx30, jsxs as jsxs25 } from "react/jsx-runtime";
2573
+ import { jsx as jsx30, jsxs as jsxs26 } from "react/jsx-runtime";
2496
2574
  function initials4(playerName) {
2497
2575
  const words = playerName.trim().split(/\s+/).filter(Boolean);
2498
2576
  if (words.length === 0) return "?";
@@ -2502,9 +2580,9 @@ function initials4(playerName) {
2502
2580
  }
2503
2581
  function PostMatchTopPerformerCard({ card, onTap }) {
2504
2582
  const { data } = card;
2505
- return /* @__PURE__ */ jsxs25("button", { type: "button", className: "ss-w-fandash-card ss-w-fandash-card--tap ss-w-fandash-postmatch-performer", onClick: () => onTap(card), children: [
2583
+ return /* @__PURE__ */ jsxs26("button", { type: "button", className: "ss-w-fandash-card ss-w-fandash-card--tap ss-w-fandash-postmatch-performer", onClick: () => onTap(card), children: [
2506
2584
  card.title ? /* @__PURE__ */ jsx30("span", { className: "ss-w-fandash-eyebrow", children: card.title }) : null,
2507
- /* @__PURE__ */ jsxs25("div", { className: "ss-w-fandash-postmatch-perf-row", children: [
2585
+ /* @__PURE__ */ jsxs26("div", { className: "ss-w-fandash-postmatch-perf-row", children: [
2508
2586
  /* @__PURE__ */ jsx30("span", { className: "ss-w-fandash-postmatch-perf-avatar", "aria-hidden": "true", children: initials4(data.playerName) }),
2509
2587
  /* @__PURE__ */ jsx30("span", { className: "ss-w-fandash-postmatch-perf-name", children: data.playerName }),
2510
2588
  /* @__PURE__ */ jsx30("span", { className: "ss-w-fandash-postmatch-perf-rating", children: data.ratingLabel })
@@ -2514,22 +2592,22 @@ function PostMatchTopPerformerCard({ card, onTap }) {
2514
2592
  }
2515
2593
 
2516
2594
  // src/components/dashboard/PostMatchNextCard.tsx
2517
- import { jsx as jsx31, jsxs as jsxs26 } from "react/jsx-runtime";
2595
+ import { jsx as jsx31, jsxs as jsxs27 } from "react/jsx-runtime";
2518
2596
  function PostMatchNextCard({ card }) {
2519
2597
  const { data } = card;
2520
- return /* @__PURE__ */ jsxs26("div", { className: "ss-w-fandash-card ss-w-fandash-postmatch-next", children: [
2598
+ return /* @__PURE__ */ jsxs27("div", { className: "ss-w-fandash-card ss-w-fandash-postmatch-next", children: [
2521
2599
  card.title ? /* @__PURE__ */ jsx31("span", { className: "ss-w-fandash-eyebrow", children: card.title }) : null,
2522
2600
  /* @__PURE__ */ jsx31("div", { className: "ss-w-fandash-postmatch-next-row", children: /* @__PURE__ */ jsx31("span", { className: "ss-w-fandash-postmatch-next-when", children: data.whenLabel }) })
2523
2601
  ] });
2524
2602
  }
2525
2603
 
2526
2604
  // src/components/dashboard/RestingNextCard.tsx
2527
- import { jsx as jsx32, jsxs as jsxs27 } from "react/jsx-runtime";
2605
+ import { jsx as jsx32, jsxs as jsxs28 } from "react/jsx-runtime";
2528
2606
  function RestingNextCard({ card, onTap }) {
2529
2607
  const { data } = card;
2530
- return /* @__PURE__ */ jsxs27("button", { type: "button", className: "ss-w-fandash-card ss-w-fandash-card--tap ss-w-fandash-resting-next", onClick: () => onTap(card), children: [
2608
+ return /* @__PURE__ */ jsxs28("button", { type: "button", className: "ss-w-fandash-card ss-w-fandash-card--tap ss-w-fandash-resting-next", onClick: () => onTap(card), children: [
2531
2609
  card.title ? /* @__PURE__ */ jsx32("span", { className: "ss-w-fandash-eyebrow", children: card.title }) : null,
2532
- /* @__PURE__ */ jsxs27("div", { className: "ss-w-fandash-resting-next-row", children: [
2610
+ /* @__PURE__ */ jsxs28("div", { className: "ss-w-fandash-resting-next-row", children: [
2533
2611
  /* @__PURE__ */ jsx32("span", { className: "ss-w-fandash-resting-next-when", children: data.whenLabel }),
2534
2612
  data.competition ? /* @__PURE__ */ jsx32("span", { className: "ss-w-fandash-resting-next-competition", children: data.competition }) : null
2535
2613
  ] }),
@@ -2538,12 +2616,12 @@ function RestingNextCard({ card, onTap }) {
2538
2616
  }
2539
2617
 
2540
2618
  // src/components/dashboard/RestingStandingsCard.tsx
2541
- import { jsx as jsx33, jsxs as jsxs28 } from "react/jsx-runtime";
2619
+ import { jsx as jsx33, jsxs as jsxs29 } from "react/jsx-runtime";
2542
2620
  function RestingStandingsCard({ card, onTap }) {
2543
2621
  const { data } = card;
2544
- return /* @__PURE__ */ jsxs28("button", { type: "button", className: "ss-w-fandash-card ss-w-fandash-card--tap ss-w-fandash-resting-standings", onClick: () => onTap(card), children: [
2622
+ return /* @__PURE__ */ jsxs29("button", { type: "button", className: "ss-w-fandash-card ss-w-fandash-card--tap ss-w-fandash-resting-standings", onClick: () => onTap(card), children: [
2545
2623
  card.title ? /* @__PURE__ */ jsx33("span", { className: "ss-w-fandash-eyebrow", children: card.title }) : null,
2546
- /* @__PURE__ */ jsxs28("div", { className: "ss-w-fandash-resting-standings-row", children: [
2624
+ /* @__PURE__ */ jsxs29("div", { className: "ss-w-fandash-resting-standings-row", children: [
2547
2625
  /* @__PURE__ */ jsx33("span", { className: "ss-w-fandash-resting-standings-position", children: data.positionLabel }),
2548
2626
  /* @__PURE__ */ jsx33("span", { className: "ss-w-fandash-resting-standings-record", children: data.recordLabel })
2549
2627
  ] }),
@@ -2552,12 +2630,12 @@ function RestingStandingsCard({ card, onTap }) {
2552
2630
  }
2553
2631
 
2554
2632
  // src/components/dashboard/RestingSeasonCard.tsx
2555
- import { jsx as jsx34, jsxs as jsxs29 } from "react/jsx-runtime";
2633
+ import { jsx as jsx34, jsxs as jsxs30 } from "react/jsx-runtime";
2556
2634
  function RestingSeasonCard({ card, onTap }) {
2557
2635
  const { data } = card;
2558
- return /* @__PURE__ */ jsxs29("button", { type: "button", className: "ss-w-fandash-card ss-w-fandash-card--tap ss-w-fandash-resting-season", onClick: () => onTap(card), children: [
2636
+ return /* @__PURE__ */ jsxs30("button", { type: "button", className: "ss-w-fandash-card ss-w-fandash-card--tap ss-w-fandash-resting-season", onClick: () => onTap(card), children: [
2559
2637
  card.title ? /* @__PURE__ */ jsx34("span", { className: "ss-w-fandash-eyebrow", children: card.title }) : null,
2560
- /* @__PURE__ */ jsxs29("div", { className: "ss-w-fandash-resting-season-rows", children: [
2638
+ /* @__PURE__ */ jsxs30("div", { className: "ss-w-fandash-resting-season-rows", children: [
2561
2639
  data.scorerLabel ? /* @__PURE__ */ jsx34("span", { className: "ss-w-fandash-resting-season-row", children: data.scorerLabel }) : null,
2562
2640
  data.playerLabel ? /* @__PURE__ */ jsx34("span", { className: "ss-w-fandash-resting-season-row", children: data.playerLabel }) : null,
2563
2641
  /* @__PURE__ */ jsx34("span", { className: "ss-w-fandash-resting-season-row", children: data.tallyLabel })
@@ -2567,7 +2645,7 @@ function RestingSeasonCard({ card, onTap }) {
2567
2645
  }
2568
2646
 
2569
2647
  // src/components/dashboard/RestingFormCard.tsx
2570
- import { jsx as jsx35, jsxs as jsxs30 } from "react/jsx-runtime";
2648
+ import { jsx as jsx35, jsxs as jsxs31 } from "react/jsx-runtime";
2571
2649
  function resultClass(result) {
2572
2650
  const upper = result.toUpperCase();
2573
2651
  if (upper === "W") return "ss-w-fandash-form-pill--win";
@@ -2576,17 +2654,17 @@ function resultClass(result) {
2576
2654
  }
2577
2655
  function RestingFormCard({ card }) {
2578
2656
  const { data } = card;
2579
- return /* @__PURE__ */ jsxs30("div", { className: "ss-w-fandash-card ss-w-fandash-resting-form", children: [
2657
+ return /* @__PURE__ */ jsxs31("div", { className: "ss-w-fandash-card ss-w-fandash-resting-form", children: [
2580
2658
  card.title ? /* @__PURE__ */ jsx35("span", { className: "ss-w-fandash-eyebrow", children: card.title }) : null,
2581
2659
  /* @__PURE__ */ jsx35("span", { className: "ss-w-fandash-form", children: data.letters.map((r, i) => /* @__PURE__ */ jsx35("span", { className: `ss-w-fandash-form-pill ${resultClass(r)}`, children: r }, `${r}-${i}`)) })
2582
2660
  ] });
2583
2661
  }
2584
2662
 
2585
2663
  // src/components/dashboard/LiveScoreCard.tsx
2586
- import { useRef as useRef5, useState as useState14 } from "react";
2664
+ import { useRef as useRef6, useState as useState15 } from "react";
2587
2665
 
2588
2666
  // src/useLiveClock.ts
2589
- import { useEffect as useEffect7, useState as useState13 } from "react";
2667
+ import { useEffect as useEffect8, useState as useState14 } from "react";
2590
2668
  var TICK_MS = 6e4;
2591
2669
  var MAX_LIVE_TICK_MINUTES = 15;
2592
2670
  function computeDisplayMinute(minute, clockRunning, receivedAtMs) {
@@ -2595,10 +2673,10 @@ function computeDisplayMinute(minute, clockRunning, receivedAtMs) {
2595
2673
  return minute + Math.min(Math.max(0, elapsedMinutes), MAX_LIVE_TICK_MINUTES);
2596
2674
  }
2597
2675
  function useLiveClock(minute, clockRunning, receivedAtMs) {
2598
- const [displayMinute, setDisplayMinute] = useState13(
2676
+ const [displayMinute, setDisplayMinute] = useState14(
2599
2677
  () => computeDisplayMinute(minute, clockRunning, receivedAtMs)
2600
2678
  );
2601
- useEffect7(() => {
2679
+ useEffect8(() => {
2602
2680
  setDisplayMinute(computeDisplayMinute(minute, clockRunning, receivedAtMs));
2603
2681
  if (!clockRunning) return;
2604
2682
  const id = window.setInterval(() => {
@@ -2610,12 +2688,12 @@ function useLiveClock(minute, clockRunning, receivedAtMs) {
2610
2688
  }
2611
2689
 
2612
2690
  // src/components/dashboard/LiveScoreCard.tsx
2613
- import { jsx as jsx36, jsxs as jsxs31 } from "react/jsx-runtime";
2691
+ import { jsx as jsx36, jsxs as jsxs32 } from "react/jsx-runtime";
2614
2692
  function initials5(name) {
2615
2693
  return name.trim().slice(0, 3).toUpperCase();
2616
2694
  }
2617
2695
  function LiveCrest({ url, name, side }) {
2618
- const [failed, setFailed] = useState14(false);
2696
+ const [failed, setFailed] = useState15(false);
2619
2697
  const cls = `ss-w-fandash-live-crest ss-w-fandash-live-crest--${side}`;
2620
2698
  if (url && !failed) {
2621
2699
  return /* @__PURE__ */ jsx36("img", { className: cls, src: url, alt: "", "aria-hidden": "true", onError: () => setFailed(true) });
@@ -2634,39 +2712,39 @@ function LiveScoreCard({
2634
2712
  }) {
2635
2713
  const { data } = card;
2636
2714
  const seedKey = `${data.minute}:${data.homeScore}:${data.awayScore}`;
2637
- const seedRef = useRef5(null);
2715
+ const seedRef = useRef6(null);
2638
2716
  if (!seedRef.current || seedRef.current.key !== seedKey) {
2639
2717
  seedRef.current = { key: seedKey, receivedAtMs: Date.now() };
2640
2718
  }
2641
2719
  const displayMinute = useLiveClock(data.minute, data.clockRunning, seedRef.current.receivedAtMs);
2642
2720
  const minuteSuffix = data.minuteLabel.replace(/^\d+/, "");
2643
2721
  const scorers = scorersLine(goalEvents);
2644
- return /* @__PURE__ */ jsxs31("div", { className: "ss-w-fandash-card ss-w-fandash-live-score", children: [
2722
+ return /* @__PURE__ */ jsxs32("div", { className: "ss-w-fandash-card ss-w-fandash-live-score", children: [
2645
2723
  card.title ? /* @__PURE__ */ jsx36("span", { className: "ss-w-fandash-eyebrow", children: card.title }) : null,
2646
- /* @__PURE__ */ jsxs31("div", { className: "ss-w-fandash-live-top", children: [
2647
- /* @__PURE__ */ jsxs31("span", { className: "ss-w-fandash-live-pill", children: [
2724
+ /* @__PURE__ */ jsxs32("div", { className: "ss-w-fandash-live-top", children: [
2725
+ /* @__PURE__ */ jsxs32("span", { className: "ss-w-fandash-live-pill", children: [
2648
2726
  /* @__PURE__ */ jsx36("span", { className: "ss-w-fandash-live-dot", "aria-hidden": "true" }),
2649
2727
  data.statusLabel
2650
2728
  ] }),
2651
2729
  /* @__PURE__ */ jsx36("span", { className: "ss-w-fandash-live-minute", children: `${displayMinute}${minuteSuffix}` }),
2652
2730
  data.competition ? /* @__PURE__ */ jsx36("span", { className: "ss-w-fandash-live-competition", children: data.competition }) : null
2653
2731
  ] }),
2654
- /* @__PURE__ */ jsxs31("div", { className: "ss-w-fandash-live-main", children: [
2655
- /* @__PURE__ */ jsxs31("div", { className: "ss-w-fandash-live-side ss-w-fandash-live-side--home", children: [
2732
+ /* @__PURE__ */ jsxs32("div", { className: "ss-w-fandash-live-main", children: [
2733
+ /* @__PURE__ */ jsxs32("div", { className: "ss-w-fandash-live-side ss-w-fandash-live-side--home", children: [
2656
2734
  /* @__PURE__ */ jsx36(LiveCrest, { url: data.homeCrestUrl, name: data.homeName, side: "home" }),
2657
2735
  /* @__PURE__ */ jsx36("span", { className: "ss-w-fandash-live-team-name", children: data.homeName })
2658
2736
  ] }),
2659
- /* @__PURE__ */ jsxs31("div", { className: "ss-w-fandash-live-score-main", children: [
2737
+ /* @__PURE__ */ jsxs32("div", { className: "ss-w-fandash-live-score-main", children: [
2660
2738
  /* @__PURE__ */ jsx36("span", { className: "ss-w-fandash-live-score-value", children: data.homeScore }),
2661
2739
  /* @__PURE__ */ jsx36("span", { className: "ss-w-fandash-live-score-sep", children: "\u2013" }),
2662
2740
  /* @__PURE__ */ jsx36("span", { className: "ss-w-fandash-live-score-value", children: data.awayScore })
2663
2741
  ] }),
2664
- /* @__PURE__ */ jsxs31("div", { className: "ss-w-fandash-live-side ss-w-fandash-live-side--away", children: [
2742
+ /* @__PURE__ */ jsxs32("div", { className: "ss-w-fandash-live-side ss-w-fandash-live-side--away", children: [
2665
2743
  /* @__PURE__ */ jsx36(LiveCrest, { url: data.awayCrestUrl, name: data.awayName, side: "away" }),
2666
2744
  /* @__PURE__ */ jsx36("span", { className: "ss-w-fandash-live-team-name", children: data.awayName })
2667
2745
  ] })
2668
2746
  ] }),
2669
- scorers ? /* @__PURE__ */ jsxs31("div", { className: "ss-w-fandash-live-scorers", children: [
2747
+ scorers ? /* @__PURE__ */ jsxs32("div", { className: "ss-w-fandash-live-scorers", children: [
2670
2748
  /* @__PURE__ */ jsx36("span", { className: "ss-w-fandash-live-scorers-icon", "aria-hidden": "true", children: "\u26BD" }),
2671
2749
  scorers
2672
2750
  ] }) : null
@@ -2674,8 +2752,8 @@ function LiveScoreCard({
2674
2752
  }
2675
2753
 
2676
2754
  // src/components/dashboard/LiveTimelineCard.tsx
2677
- import { useState as useState15 } from "react";
2678
- import { jsx as jsx37, jsxs as jsxs32 } from "react/jsx-runtime";
2755
+ import { useState as useState16 } from "react";
2756
+ import { jsx as jsx37, jsxs as jsxs33 } from "react/jsx-runtime";
2679
2757
  var SHOWN2 = 3;
2680
2758
  function EventIcon({ type }) {
2681
2759
  if (type === "goal") {
@@ -2691,9 +2769,9 @@ function EventIcon({ type }) {
2691
2769
  }
2692
2770
  function EventLabel({ e }) {
2693
2771
  if (e.type === "sub") {
2694
- return /* @__PURE__ */ jsxs32("span", { className: "ss-w-fandash-live-tl-who", children: [
2772
+ return /* @__PURE__ */ jsxs33("span", { className: "ss-w-fandash-live-tl-who", children: [
2695
2773
  e.player ?? e.text,
2696
- e.playerOff ? /* @__PURE__ */ jsxs32("span", { className: "ss-w-fandash-live-tl-off", children: [
2774
+ e.playerOff ? /* @__PURE__ */ jsxs33("span", { className: "ss-w-fandash-live-tl-off", children: [
2697
2775
  " for ",
2698
2776
  e.playerOff
2699
2777
  ] }) : null
@@ -2707,8 +2785,8 @@ function EventRow({ e }) {
2707
2785
  e.side === "home" ? "ss-w-fandash-live-tl-ev--home" : "ss-w-fandash-live-tl-ev--away",
2708
2786
  e.type === "goal" ? "ss-w-fandash-live-tl-ev--goal" : ""
2709
2787
  ].filter(Boolean).join(" ");
2710
- return /* @__PURE__ */ jsxs32("div", { className: cls, children: [
2711
- /* @__PURE__ */ jsxs32("span", { className: "ss-w-fandash-live-tl-txt", children: [
2788
+ return /* @__PURE__ */ jsxs33("div", { className: cls, children: [
2789
+ /* @__PURE__ */ jsxs33("span", { className: "ss-w-fandash-live-tl-txt", children: [
2712
2790
  /* @__PURE__ */ jsx37(EventLabel, { e }),
2713
2791
  /* @__PURE__ */ jsx37(EventIcon, { type: e.type })
2714
2792
  ] }),
@@ -2716,7 +2794,7 @@ function EventRow({ e }) {
2716
2794
  ] });
2717
2795
  }
2718
2796
  function LiveTimelineCard({ card, ui }) {
2719
- const [expanded, setExpanded] = useState15(false);
2797
+ const [expanded, setExpanded] = useState16(false);
2720
2798
  const events = card.data.events;
2721
2799
  if (!events || events.length === 0) return null;
2722
2800
  const sorted = [...events].sort((a, b) => b.minute - a.minute);
@@ -2724,7 +2802,7 @@ function LiveTimelineCard({ card, ui }) {
2724
2802
  const shown = expanded ? sorted : sorted.slice(0, SHOWN2);
2725
2803
  const showMore = ui?.showMore ?? ((n) => `Show ${n} more`);
2726
2804
  const showLess = ui?.showLess ?? "Show less";
2727
- return /* @__PURE__ */ jsxs32("div", { className: "ss-w-fandash-card ss-w-fandash-live-timeline", children: [
2805
+ return /* @__PURE__ */ jsxs33("div", { className: "ss-w-fandash-card ss-w-fandash-live-timeline", children: [
2728
2806
  card.title ? /* @__PURE__ */ jsx37("span", { className: "ss-w-fandash-eyebrow", children: card.title }) : null,
2729
2807
  /* @__PURE__ */ jsx37("div", { className: "ss-w-fandash-live-tl", children: shown.map((e, i) => /* @__PURE__ */ jsx37(EventRow, { e }, `${e.minute}-${e.side}-${e.type}-${i}`)) }),
2730
2808
  rest > 0 ? /* @__PURE__ */ jsx37(
@@ -2742,7 +2820,7 @@ function LiveTimelineCard({ card, ui }) {
2742
2820
 
2743
2821
  // src/components/dashboard/MomentumWave.tsx
2744
2822
  import { useId } from "react";
2745
- import { jsx as jsx38, jsxs as jsxs33 } from "react/jsx-runtime";
2823
+ import { jsx as jsx38, jsxs as jsxs34 } from "react/jsx-runtime";
2746
2824
  var WIDTH = 270;
2747
2825
  var HEIGHT = 56;
2748
2826
  var BASELINE = HEIGHT / 2;
@@ -2770,10 +2848,10 @@ function MomentumWave({
2770
2848
  const bottomClipId = `${clipId}-bottom`;
2771
2849
  const topClass = clubIsHome ? "ss-w-fandash-live-mom-home" : "ss-w-fandash-live-mom-away";
2772
2850
  const bottomClass = clubIsHome ? "ss-w-fandash-live-mom-away" : "ss-w-fandash-live-mom-home";
2773
- return /* @__PURE__ */ jsxs33("div", { className: "ss-w-fandash-live-mom", children: [
2851
+ return /* @__PURE__ */ jsxs34("div", { className: "ss-w-fandash-live-mom", children: [
2774
2852
  caption ? /* @__PURE__ */ jsx38("span", { className: "ss-w-fandash-live-mom-caption", children: caption }) : null,
2775
- /* @__PURE__ */ jsxs33("div", { className: "ss-w-fandash-live-mom-plot", children: [
2776
- /* @__PURE__ */ jsxs33(
2853
+ /* @__PURE__ */ jsxs34("div", { className: "ss-w-fandash-live-mom-plot", children: [
2854
+ /* @__PURE__ */ jsxs34(
2777
2855
  "svg",
2778
2856
  {
2779
2857
  className: "ss-w-fandash-live-mom-svg",
@@ -2782,7 +2860,7 @@ function MomentumWave({
2782
2860
  role: "img",
2783
2861
  "aria-label": caption ?? "Momentum",
2784
2862
  children: [
2785
- /* @__PURE__ */ jsxs33("defs", { children: [
2863
+ /* @__PURE__ */ jsxs34("defs", { children: [
2786
2864
  /* @__PURE__ */ jsx38("clipPath", { id: topClipId, children: /* @__PURE__ */ jsx38("rect", { x: 0, y: 0, width: WIDTH, height: BASELINE }) }),
2787
2865
  /* @__PURE__ */ jsx38("clipPath", { id: bottomClipId, children: /* @__PURE__ */ jsx38("rect", { x: 0, y: BASELINE, width: WIDTH, height: HEIGHT - BASELINE }) })
2788
2866
  ] }),
@@ -2806,7 +2884,7 @@ function MomentumWave({
2806
2884
  }
2807
2885
 
2808
2886
  // src/components/dashboard/LiveStatsCard.tsx
2809
- import { jsx as jsx39, jsxs as jsxs34 } from "react/jsx-runtime";
2887
+ import { jsx as jsx39, jsxs as jsxs35 } from "react/jsx-runtime";
2810
2888
  function splitWidths2(homeNum, awayNum) {
2811
2889
  const total = homeNum + awayNum;
2812
2890
  if (total <= 0) return { home: "50%", away: "50%" };
@@ -2815,7 +2893,7 @@ function splitWidths2(homeNum, awayNum) {
2815
2893
  }
2816
2894
  function LiveStatsCard({ card }) {
2817
2895
  const { data } = card;
2818
- return /* @__PURE__ */ jsxs34("div", { className: "ss-w-fandash-card ss-w-fandash-live-stats", children: [
2896
+ return /* @__PURE__ */ jsxs35("div", { className: "ss-w-fandash-card ss-w-fandash-live-stats", children: [
2819
2897
  card.title ? /* @__PURE__ */ jsx39("span", { className: "ss-w-fandash-eyebrow", children: card.title }) : null,
2820
2898
  /* @__PURE__ */ jsx39("div", { className: "ss-w-fandash-live-stat-rows", children: data.rows.map((r, i) => {
2821
2899
  const homeValue = data.clubIsHome ? r.clubValue : r.oppValue;
@@ -2823,25 +2901,25 @@ function LiveStatsCard({ card }) {
2823
2901
  const homeNum = data.clubIsHome ? r.clubNum : r.oppNum;
2824
2902
  const awayNum = data.clubIsHome ? r.oppNum : r.clubNum;
2825
2903
  const { home, away } = splitWidths2(homeNum, awayNum);
2826
- return /* @__PURE__ */ jsxs34("div", { className: "ss-w-fandash-live-stat", children: [
2827
- /* @__PURE__ */ jsxs34("div", { className: "ss-w-fandash-live-stat-row", children: [
2904
+ return /* @__PURE__ */ jsxs35("div", { className: "ss-w-fandash-live-stat", children: [
2905
+ /* @__PURE__ */ jsxs35("div", { className: "ss-w-fandash-live-stat-row", children: [
2828
2906
  /* @__PURE__ */ jsx39("span", { className: "ss-w-fandash-live-stat-value ss-w-fandash-live-stat-value--home", children: homeValue }),
2829
2907
  /* @__PURE__ */ jsx39("span", { className: "ss-w-fandash-live-stat-label", children: r.label }),
2830
2908
  /* @__PURE__ */ jsx39("span", { className: "ss-w-fandash-live-stat-value ss-w-fandash-live-stat-value--away", children: awayValue })
2831
2909
  ] }),
2832
- /* @__PURE__ */ jsxs34("div", { className: "ss-w-fandash-live-bar", children: [
2910
+ /* @__PURE__ */ jsxs35("div", { className: "ss-w-fandash-live-bar", children: [
2833
2911
  /* @__PURE__ */ jsx39("span", { className: "ss-w-fandash-live-bar-home", style: { width: home } }),
2834
2912
  /* @__PURE__ */ jsx39("span", { className: "ss-w-fandash-live-bar-away", style: { width: away } })
2835
2913
  ] })
2836
2914
  ] }, `${r.label}-${i}`);
2837
2915
  }) }),
2838
2916
  data.momentum.length > 0 ? /* @__PURE__ */ jsx39(MomentumWave, { points: data.momentum, caption: data.momentumLabel, clubIsHome: data.clubIsHome }) : data.momentumLabel ? /* @__PURE__ */ jsx39("span", { className: "ss-w-fandash-live-momentum", children: data.momentumLabel }) : null,
2839
- data.rows.length > 0 ? /* @__PURE__ */ jsxs34("div", { className: "ss-w-fandash-live-legend", children: [
2840
- /* @__PURE__ */ jsxs34("span", { className: "ss-w-fandash-live-legend-item", children: [
2917
+ data.rows.length > 0 ? /* @__PURE__ */ jsxs35("div", { className: "ss-w-fandash-live-legend", children: [
2918
+ /* @__PURE__ */ jsxs35("span", { className: "ss-w-fandash-live-legend-item", children: [
2841
2919
  /* @__PURE__ */ jsx39("i", { className: "ss-w-fandash-live-legend-swatch ss-w-fandash-live-legend-swatch--home" }),
2842
2920
  data.homeName
2843
2921
  ] }),
2844
- /* @__PURE__ */ jsxs34("span", { className: "ss-w-fandash-live-legend-item", children: [
2922
+ /* @__PURE__ */ jsxs35("span", { className: "ss-w-fandash-live-legend-item", children: [
2845
2923
  /* @__PURE__ */ jsx39("i", { className: "ss-w-fandash-live-legend-swatch ss-w-fandash-live-legend-swatch--away" }),
2846
2924
  data.awayName
2847
2925
  ] })
@@ -2850,7 +2928,7 @@ function LiveStatsCard({ card }) {
2850
2928
  }
2851
2929
 
2852
2930
  // src/components/dashboard/ClubFanDashboard.tsx
2853
- import { jsx as jsx40, jsxs as jsxs35 } from "react/jsx-runtime";
2931
+ import { jsx as jsx40, jsxs as jsxs36 } from "react/jsx-runtime";
2854
2932
  function ClubFanDashboard({ dashboard, onTap, ui }) {
2855
2933
  const orderedCards = [
2856
2934
  ...dashboard.cards.filter((c) => c.cardType === "countdown"),
@@ -2860,7 +2938,7 @@ function ClubFanDashboard({ dashboard, onTap, ui }) {
2860
2938
  (c) => c.cardType === "liveTimeline"
2861
2939
  );
2862
2940
  const goalEvents = timelineCard?.data.events.filter((e) => e.type === "goal");
2863
- return /* @__PURE__ */ jsxs35("div", { className: "ss-w-fandash", children: [
2941
+ return /* @__PURE__ */ jsxs36("div", { className: "ss-w-fandash", children: [
2864
2942
  dashboard.greeting ? /* @__PURE__ */ jsx40("span", { className: dashboard.greetingIsLead ? "ss-w-fandash-greeting ss-w-fandash-greeting--lead" : "ss-w-fandash-greeting", children: dashboard.greeting }) : null,
2865
2943
  /* @__PURE__ */ jsx40("div", { className: "ss-w-fandash-cards", children: orderedCards.map((card, i) => /* @__PURE__ */ jsx40(FanDashboardCard, { card, onTap, ui, goalEvents }, `${card.cardType}-${i}`)) })
2866
2944
  ] });
@@ -2913,7 +2991,7 @@ function FanDashboardCard({ card, onTap, ui, goalEvents }) {
2913
2991
  }
2914
2992
 
2915
2993
  // src/components/ChatMessage.tsx
2916
- import { jsx as jsx41, jsxs as jsxs36 } from "react/jsx-runtime";
2994
+ import { jsx as jsx41, jsxs as jsxs37 } from "react/jsx-runtime";
2917
2995
  function ChatMessage({ message, disabled, onAct, onTap, ui, slip, monitor }) {
2918
2996
  if (message.role === "user") {
2919
2997
  return /* @__PURE__ */ jsx41("div", { className: "ss-w-msg ss-w-user", "data-msg-id": message.id, children: /* @__PURE__ */ jsx41("div", { className: "ss-w-bubble", children: message.text }) });
@@ -2921,7 +2999,7 @@ function ChatMessage({ message, disabled, onAct, onTap, ui, slip, monitor }) {
2921
2999
  const onFanDashboardTap = (card) => {
2922
3000
  onAct({ message: card.actionLabel, actionRef: card.actionRef, label: card.actionLabel || card.title || "" });
2923
3001
  };
2924
- return /* @__PURE__ */ jsxs36("div", { className: "ss-w-msg ss-w-bot", "data-msg-id": message.id, children: [
3002
+ return /* @__PURE__ */ jsxs37("div", { className: "ss-w-msg ss-w-bot", "data-msg-id": message.id, children: [
2925
3003
  message.text && !message.greetingDashboard && !message.clubFanDashboard ? /* @__PURE__ */ jsx41(Markdown, { text: message.text }) : null,
2926
3004
  message.greetingDashboard && !message.clubFanDashboard ? /* @__PURE__ */ jsx41(GreetingDashboard, { dashboard: message.greetingDashboard, onTap }) : null,
2927
3005
  message.clubFanDashboard ? /* @__PURE__ */ jsx41(ClubFanDashboard, { dashboard: message.clubFanDashboard, onTap: onFanDashboardTap, ui }) : null,
@@ -2947,7 +3025,7 @@ function isPinnedToBottom(el, threshold = PIN_THRESHOLD) {
2947
3025
  }
2948
3026
 
2949
3027
  // src/components/MessageList.tsx
2950
- import { jsx as jsx43, jsxs as jsxs37 } from "react/jsx-runtime";
3028
+ import { jsx as jsx43, jsxs as jsxs38 } from "react/jsx-runtime";
2951
3029
  function turnAnchor(messages) {
2952
3030
  const last = messages[messages.length - 1];
2953
3031
  if (!last || last.role !== "assistant") return null;
@@ -2956,11 +3034,11 @@ function turnAnchor(messages) {
2956
3034
  }
2957
3035
  function MessageList({ controller, ui, slip, onDashboardTap, monitor }) {
2958
3036
  const { state, send } = controller;
2959
- const listRef = useRef6(null);
2960
- const endRef = useRef6(null);
2961
- const pinnedRef = useRef6(true);
2962
- const anchoredTurnRef = useRef6(null);
2963
- useEffect8(() => {
3037
+ const listRef = useRef7(null);
3038
+ const endRef = useRef7(null);
3039
+ const pinnedRef = useRef7(true);
3040
+ const anchoredTurnRef = useRef7(null);
3041
+ useEffect9(() => {
2964
3042
  const anchor = turnAnchor(state.messages);
2965
3043
  const list = listRef.current;
2966
3044
  if (anchor && anchor.turnId !== anchoredTurnRef.current) {
@@ -2975,7 +3053,7 @@ function MessageList({ controller, ui, slip, onDashboardTap, monitor }) {
2975
3053
  }, [state.messages, state.status, state.isStreaming]);
2976
3054
  const hasUserMessage = state.messages.some((m) => m.role === "user");
2977
3055
  const hasDashboard = state.messages.some((m) => m.role === "assistant" && (m.greetingDashboard || m.clubFanDashboard));
2978
- return /* @__PURE__ */ jsxs37(
3056
+ return /* @__PURE__ */ jsxs38(
2979
3057
  "div",
2980
3058
  {
2981
3059
  className: "ss-w-list",
@@ -3004,7 +3082,7 @@ function MessageList({ controller, ui, slip, onDashboardTap, monitor }) {
3004
3082
  state.isStreaming && state.actionsLoading ? /* @__PURE__ */ jsx43(ActionButtons, { actions: [], loading: true, onAct: () => {
3005
3083
  } }) : null,
3006
3084
  state.status ? /* @__PURE__ */ jsx43("div", { className: "ss-w-status", children: state.status }) : null,
3007
- state.error ? /* @__PURE__ */ jsxs37("div", { className: "ss-w-error", role: "alert", children: [
3085
+ state.error ? /* @__PURE__ */ jsxs38("div", { className: "ss-w-error", role: "alert", children: [
3008
3086
  /* @__PURE__ */ jsx43("span", { children: "message" in state.error ? state.error.message : ui.somethingWentWrong }),
3009
3087
  /* @__PURE__ */ jsx43("button", { type: "button", className: "ss-w-retry", onClick: () => controller.retry(), children: ui.retry })
3010
3088
  ] }) : null,
@@ -3016,10 +3094,10 @@ function MessageList({ controller, ui, slip, onDashboardTap, monitor }) {
3016
3094
  }
3017
3095
 
3018
3096
  // src/components/ChatInput.tsx
3019
- import { useState as useState16 } from "react";
3020
- import { jsx as jsx44, jsxs as jsxs38 } from "react/jsx-runtime";
3097
+ import { useState as useState17 } from "react";
3098
+ import { jsx as jsx44, jsxs as jsxs39 } from "react/jsx-runtime";
3021
3099
  function ChatInput({ placeholder, streaming, onSend, onStop, stopLabel = "Stop response", sendLabel = "Send message" }) {
3022
- const [value, setValue] = useState16("");
3100
+ const [value, setValue] = useState17("");
3023
3101
  const submit = () => {
3024
3102
  const t = value.trim();
3025
3103
  if (!t) return;
@@ -3032,14 +3110,14 @@ function ChatInput({ placeholder, streaming, onSend, onStop, stopLabel = "Stop r
3032
3110
  submit();
3033
3111
  }
3034
3112
  };
3035
- return /* @__PURE__ */ jsxs38("div", { className: "ss-w-input", children: [
3113
+ return /* @__PURE__ */ jsxs39("div", { className: "ss-w-input", children: [
3036
3114
  /* @__PURE__ */ jsx44("textarea", { className: "ss-w-textarea", rows: 1, placeholder, value, disabled: streaming, onChange: (e) => setValue(e.target.value), onKeyDown }),
3037
3115
  streaming ? /* @__PURE__ */ jsx44("button", { type: "button", className: "ss-w-send ss-w-stop", "aria-label": stopLabel, onClick: onStop, children: /* @__PURE__ */ jsx44("span", { className: "ss-w-stop-glyph" }) }) : /* @__PURE__ */ jsx44("button", { type: "button", className: "ss-w-send", "aria-label": sendLabel, onClick: submit, children: /* @__PURE__ */ jsx44(SendIcon, {}) })
3038
3116
  ] });
3039
3117
  }
3040
3118
 
3041
3119
  // src/components/TabBar.tsx
3042
- import { jsx as jsx45, jsxs as jsxs39 } from "react/jsx-runtime";
3120
+ import { jsx as jsx45, jsxs as jsxs40 } from "react/jsx-runtime";
3043
3121
  var TABS = [
3044
3122
  { tab: "chat", labelKey: "tabChat" },
3045
3123
  { tab: "matches", labelKey: "tabMatches" },
@@ -3056,7 +3134,7 @@ function TabBar({ monitor, ui, matchCount, oddsCount }) {
3056
3134
  return /* @__PURE__ */ jsx45("div", { className: "ss-w-tabs", role: "tablist", children: TABS.map(({ tab, labelKey }) => {
3057
3135
  const active = monitor.activeTab === tab;
3058
3136
  const count = counts[tab];
3059
- return /* @__PURE__ */ jsxs39(
3137
+ return /* @__PURE__ */ jsxs40(
3060
3138
  "button",
3061
3139
  {
3062
3140
  type: "button",
@@ -3077,7 +3155,7 @@ function TabBar({ monitor, ui, matchCount, oddsCount }) {
3077
3155
  }
3078
3156
 
3079
3157
  // src/components/MarketAccordion.tsx
3080
- import { jsx as jsx46, jsxs as jsxs40 } from "react/jsx-runtime";
3158
+ import { jsx as jsx46, jsxs as jsxs41 } from "react/jsx-runtime";
3081
3159
  function MarketAccordion({ match, monitor, ui, slip }) {
3082
3160
  const markets = match.availableMarkets ?? [];
3083
3161
  if (markets.length === 0) return null;
@@ -3086,9 +3164,9 @@ function MarketAccordion({ match, monitor, ui, slip }) {
3086
3164
  const isOpen = open === m.marketDeveloperName;
3087
3165
  const key = `${match.matchId}:${m.marketDeveloperName}`;
3088
3166
  const entry = monitor.marketOdds[key];
3089
- return /* @__PURE__ */ jsxs40("div", { className: isOpen ? "ss-w-acc-row ss-w-acc-row-open" : "ss-w-acc-row", children: [
3090
- /* @__PURE__ */ jsxs40("div", { className: "ss-w-acc-head", children: [
3091
- /* @__PURE__ */ jsxs40(
3167
+ return /* @__PURE__ */ jsxs41("div", { className: isOpen ? "ss-w-acc-row ss-w-acc-row-open" : "ss-w-acc-row", children: [
3168
+ /* @__PURE__ */ jsxs41("div", { className: "ss-w-acc-head", children: [
3169
+ /* @__PURE__ */ jsxs41(
3092
3170
  "button",
3093
3171
  {
3094
3172
  type: "button",
@@ -3112,7 +3190,7 @@ function MarketAccordion({ match, monitor, ui, slip }) {
3112
3190
  }
3113
3191
  )
3114
3192
  ] }),
3115
- isOpen && /* @__PURE__ */ jsxs40("div", { className: "ss-w-acc-panel", children: [
3193
+ isOpen && /* @__PURE__ */ jsxs41("div", { className: "ss-w-acc-panel", children: [
3116
3194
  entry?.error && /* @__PURE__ */ jsx46(
3117
3195
  "div",
3118
3196
  {
@@ -3121,7 +3199,7 @@ function MarketAccordion({ match, monitor, ui, slip }) {
3121
3199
  children: ui.accordionRetry
3122
3200
  }
3123
3201
  ),
3124
- entry?.block?.insight?.text && /* @__PURE__ */ jsxs40("div", { className: "ss-w-acc-insight", children: [
3202
+ entry?.block?.insight?.text && /* @__PURE__ */ jsxs41("div", { className: "ss-w-acc-insight", children: [
3125
3203
  /* @__PURE__ */ jsx46("span", { className: "ss-w-acc-badge", children: ui.accordionValueLabel }),
3126
3204
  " ",
3127
3205
  entry.block.insight.text
@@ -3143,7 +3221,7 @@ function MarketAccordion({ match, monitor, ui, slip }) {
3143
3221
  }
3144
3222
 
3145
3223
  // src/components/MonitorMatchCard.tsx
3146
- import { jsx as jsx47, jsxs as jsxs41 } from "react/jsx-runtime";
3224
+ import { jsx as jsx47, jsxs as jsxs42 } from "react/jsx-runtime";
3147
3225
  function chipSelection(row, matchId, conversationId) {
3148
3226
  const chip = row.market;
3149
3227
  if (!chip || !chip.addToSlipEnabled || typeof chip.matchOddsId !== "number" || typeof chip.price !== "number") return null;
@@ -3166,14 +3244,14 @@ function MonitorMatchCard({ match, promotedPins, monitor, ui, slip }) {
3166
3244
  const otherRows = match.statRows.filter((row) => !isPromoted(row, promotedPins));
3167
3245
  const orderedRows = [...promotedRows, ...otherRows];
3168
3246
  const kickoff = match.phase === "preMatch" && match.kickoffUtc ? ui.bettingKickoff(match.kickoffUtc) : void 0;
3169
- return /* @__PURE__ */ jsxs41("div", { className: "ss-w-mon", children: [
3170
- /* @__PURE__ */ jsxs41("div", { className: "ss-w-mon-top", children: [
3171
- live && /* @__PURE__ */ jsxs41("span", { className: "ss-w-fandash-live-pill", children: [
3247
+ return /* @__PURE__ */ jsxs42("div", { className: "ss-w-mon", children: [
3248
+ /* @__PURE__ */ jsxs42("div", { className: "ss-w-mon-top", children: [
3249
+ live && /* @__PURE__ */ jsxs42("span", { className: "ss-w-fandash-live-pill", children: [
3172
3250
  /* @__PURE__ */ jsx47("span", { className: "ss-w-fandash-live-dot", "aria-hidden": "true" }),
3173
3251
  ui.liveLabel
3174
3252
  ] }),
3175
3253
  match.phase === "fullTime" && /* @__PURE__ */ jsx47("span", { className: "ss-w-mon-pill", children: ui.fullTimeLabel }),
3176
- kickoff && /* @__PURE__ */ jsxs41("span", { className: "ss-w-mon-pill", children: [
3254
+ kickoff && /* @__PURE__ */ jsxs42("span", { className: "ss-w-mon-pill", children: [
3177
3255
  kickoff.dayLabel,
3178
3256
  " \xB7 ",
3179
3257
  kickoff.time
@@ -3182,17 +3260,17 @@ function MonitorMatchCard({ match, promotedPins, monitor, ui, slip }) {
3182
3260
  match.competitionName && /* @__PURE__ */ jsx47("span", { className: "ss-w-mon-comp", children: match.competitionName }),
3183
3261
  /* @__PURE__ */ jsx47(PinToggle, { ui, monitor, pin: { kind: "match", matchId: match.matchId } })
3184
3262
  ] }),
3185
- /* @__PURE__ */ jsxs41("div", { className: "ss-w-mon-main", children: [
3186
- /* @__PURE__ */ jsxs41("span", { className: "ss-w-mon-side", children: [
3263
+ /* @__PURE__ */ jsxs42("div", { className: "ss-w-mon-main", children: [
3264
+ /* @__PURE__ */ jsxs42("span", { className: "ss-w-mon-side", children: [
3187
3265
  /* @__PURE__ */ jsx47(Crest2, { kind: "team", url: match.homeCrestUrl ?? void 0, name: match.homeTeamName ?? void 0 }),
3188
3266
  /* @__PURE__ */ jsx47("span", { className: "ss-w-mon-name", children: match.homeTeamName })
3189
3267
  ] }),
3190
- match.phase === "preMatch" ? /* @__PURE__ */ jsx47("span", { className: "ss-w-mon-vs", children: "vs" }) : /* @__PURE__ */ jsxs41("span", { className: "ss-w-mon-score", children: [
3268
+ match.phase === "preMatch" ? /* @__PURE__ */ jsx47("span", { className: "ss-w-mon-vs", children: "vs" }) : /* @__PURE__ */ jsxs42("span", { className: "ss-w-mon-score", children: [
3191
3269
  match.homeScore,
3192
3270
  /* @__PURE__ */ jsx47("i", { children: "\u2013" }),
3193
3271
  match.awayScore
3194
3272
  ] }),
3195
- /* @__PURE__ */ jsxs41("span", { className: "ss-w-mon-side ss-w-mon-side--away", children: [
3273
+ /* @__PURE__ */ jsxs42("span", { className: "ss-w-mon-side ss-w-mon-side--away", children: [
3196
3274
  /* @__PURE__ */ jsx47(Crest2, { kind: "team", url: match.awayCrestUrl ?? void 0, name: match.awayTeamName ?? void 0 }),
3197
3275
  /* @__PURE__ */ jsx47("span", { className: "ss-w-mon-name", children: match.awayTeamName })
3198
3276
  ] })
@@ -3204,23 +3282,23 @@ function MonitorMatchCard({ match, promotedPins, monitor, ui, slip }) {
3204
3282
  const awayPct = total > 0 ? row.awayNum / total * 75 : 0;
3205
3283
  const promoted = isPromoted(row, promotedPins);
3206
3284
  const selection = chipSelection(row, match.matchId, slip.conversationId);
3207
- return /* @__PURE__ */ jsxs41("div", { className: promoted ? "ss-w-mon-stat ss-w-mon-pstrip" : "ss-w-mon-stat", children: [
3208
- /* @__PURE__ */ jsxs41("div", { className: "ss-w-mon-stat-row", children: [
3285
+ return /* @__PURE__ */ jsxs42("div", { className: promoted ? "ss-w-mon-stat ss-w-mon-pstrip" : "ss-w-mon-stat", children: [
3286
+ /* @__PURE__ */ jsxs42("div", { className: "ss-w-mon-stat-row", children: [
3209
3287
  /* @__PURE__ */ jsx47("span", { className: "ss-w-mon-stat-v ss-w-mon-stat-v--home", children: row.homeValue }),
3210
3288
  /* @__PURE__ */ jsx47("span", { className: "ss-w-mon-stat-l", children: row.label }),
3211
3289
  /* @__PURE__ */ jsx47("span", { className: "ss-w-mon-stat-v ss-w-mon-stat-v--away", children: row.awayValue })
3212
3290
  ] }),
3213
- /* @__PURE__ */ jsxs41("div", { className: "ss-w-mon-bar", children: [
3291
+ /* @__PURE__ */ jsxs42("div", { className: "ss-w-mon-bar", children: [
3214
3292
  /* @__PURE__ */ jsx47("b", { className: "ss-w-mon-bar-home", style: { width: `${homePct}%` } }),
3215
3293
  /* @__PURE__ */ jsx47("i", { className: "ss-w-mon-bar-away", style: { width: `${awayPct}%` } })
3216
3294
  ] }),
3217
- row.market && /* @__PURE__ */ jsxs41("div", { className: promoted ? "ss-w-mon-stat-mkt ss-w-mon-mkt" : "ss-w-mon-stat-mkt", children: [
3218
- /* @__PURE__ */ jsxs41("span", { children: [
3295
+ row.market && /* @__PURE__ */ jsxs42("div", { className: promoted ? "ss-w-mon-stat-mkt ss-w-mon-mkt" : "ss-w-mon-stat-mkt", children: [
3296
+ /* @__PURE__ */ jsxs42("span", { children: [
3219
3297
  row.market.marketLabel,
3220
3298
  " \xB7 ",
3221
3299
  row.market.selectionLabel
3222
3300
  ] }),
3223
- /* @__PURE__ */ jsxs41("span", { className: "ss-w-mon-stat-mkt-right", children: [
3301
+ /* @__PURE__ */ jsxs42("span", { className: "ss-w-mon-stat-mkt-right", children: [
3224
3302
  row.market.isSuspended ? /* @__PURE__ */ jsx47("span", { className: "ss-w-mon-susp", children: ui.suspendedLabel }) : typeof row.market.price === "number" && /* @__PURE__ */ jsx47("span", { className: "ss-w-mon-price", children: row.market.price.toFixed(2) }),
3225
3303
  /* @__PURE__ */ jsx47(
3226
3304
  SlipButton,
@@ -3237,8 +3315,8 @@ function MonitorMatchCard({ match, promotedPins, monitor, ui, slip }) {
3237
3315
  ] }, row.label);
3238
3316
  }) }),
3239
3317
  match.status === "stale" && /* @__PURE__ */ jsx47("span", { className: "ss-w-mon-asof", children: ui.asOf(formatTime(match.asOfUtc)) }),
3240
- match.momentum.length > 0 && /* @__PURE__ */ jsxs41("div", { className: "ss-w-mon-mom", children: [
3241
- /* @__PURE__ */ jsxs41("div", { className: "ss-w-mon-stat-row", children: [
3318
+ match.momentum.length > 0 && /* @__PURE__ */ jsxs42("div", { className: "ss-w-mon-mom", children: [
3319
+ /* @__PURE__ */ jsxs42("div", { className: "ss-w-mon-stat-row", children: [
3242
3320
  /* @__PURE__ */ jsx47("span", { className: "ss-w-mon-stat-v ss-w-mon-stat-v--home", children: typeof match.momentumHomePct === "number" ? `${match.momentumHomePct}%` : "" }),
3243
3321
  /* @__PURE__ */ jsx47("span", { className: "ss-w-mon-stat-l", children: ui.momentumLabel }),
3244
3322
  /* @__PURE__ */ jsx47("span", { className: "ss-w-mon-stat-v ss-w-mon-stat-v--away", children: typeof match.momentumHomePct === "number" ? `${100 - match.momentumHomePct}%` : "" })
@@ -3250,13 +3328,13 @@ function MonitorMatchCard({ match, promotedPins, monitor, ui, slip }) {
3250
3328
  }
3251
3329
 
3252
3330
  // src/components/MonitorTabs.tsx
3253
- import { jsx as jsx48, jsxs as jsxs42 } from "react/jsx-runtime";
3331
+ import { jsx as jsx48, jsxs as jsxs43 } from "react/jsx-runtime";
3254
3332
  function OddsLiveStrip({ m, ui }) {
3255
3333
  const showScore = m.phase !== "preMatch" && typeof m.homeScore === "number";
3256
3334
  const stale = m.status === "stale";
3257
3335
  if (!showScore && !m.minuteLabel && !(m.isSuspended && !m.isSettled) && !m.isSettled && !stale) return null;
3258
- return /* @__PURE__ */ jsxs42("div", { className: "ss-w-mk-live", children: [
3259
- showScore && /* @__PURE__ */ jsxs42("b", { className: "ss-w-mk-live-score", children: [
3336
+ return /* @__PURE__ */ jsxs43("div", { className: "ss-w-mk-live", children: [
3337
+ showScore && /* @__PURE__ */ jsxs43("b", { className: "ss-w-mk-live-score", children: [
3260
3338
  m.homeTeamName,
3261
3339
  " ",
3262
3340
  m.homeScore,
@@ -3274,7 +3352,7 @@ function OddsLiveStrip({ m, ui }) {
3274
3352
  function MatchesPanel({ monitor, ui, slip }) {
3275
3353
  const matches = (monitor.snapshot?.matches ?? []).filter((m) => monitor.pins.some((p) => p.kind === "match" && p.matchId === m.matchId));
3276
3354
  if (matches.length === 0) return /* @__PURE__ */ jsx48("div", { className: "ss-w-mon-empty", children: ui.emptyMatchesTab });
3277
- return /* @__PURE__ */ jsx48("div", { className: "ss-w-mon-list", children: matches.map((m) => /* @__PURE__ */ jsxs42("div", { className: "ss-w-mon-item", children: [
3355
+ return /* @__PURE__ */ jsx48("div", { className: "ss-w-mon-list", children: matches.map((m) => /* @__PURE__ */ jsxs43("div", { className: "ss-w-mon-item", children: [
3278
3356
  /* @__PURE__ */ jsx48(
3279
3357
  MonitorMatchCard,
3280
3358
  {
@@ -3303,7 +3381,7 @@ function OddsPanel({ monitor, ui, slip }) {
3303
3381
  if (markets.length === 0) return /* @__PURE__ */ jsx48("div", { className: "ss-w-mon-empty", children: ui.emptyOddsTab });
3304
3382
  return /* @__PURE__ */ jsx48("div", { className: "ss-w-mon-list", children: markets.map((m) => {
3305
3383
  const pin = monitor.pins.find((p) => p.key === m.key);
3306
- return /* @__PURE__ */ jsxs42("div", { className: "ss-w-mon-oddspin", "data-settled": m.isSettled || void 0, children: [
3384
+ return /* @__PURE__ */ jsxs43("div", { className: "ss-w-mon-oddspin", "data-settled": m.isSettled || void 0, children: [
3307
3385
  /* @__PURE__ */ jsx48(OddsLiveStrip, { m, ui }),
3308
3386
  m.card && /* @__PURE__ */ jsx48(
3309
3387
  MarketOddsCardList,
@@ -3323,11 +3401,11 @@ function OddsPanel({ monitor, ui, slip }) {
3323
3401
  }
3324
3402
 
3325
3403
  // src/components/ChatPanel.tsx
3326
- import { jsx as jsx49, jsxs as jsxs43 } from "react/jsx-runtime";
3404
+ import { jsx as jsx49, jsxs as jsxs44 } from "react/jsx-runtime";
3327
3405
  var FULLSCREEN_QUERY = "(max-width: 639px)";
3328
3406
  function useIsModal() {
3329
- const [modal, setModal] = useState17(false);
3330
- useEffect9(() => {
3407
+ const [modal, setModal] = useState18(false);
3408
+ useEffect10(() => {
3331
3409
  if (typeof window === "undefined" || typeof window.matchMedia !== "function") return;
3332
3410
  const mql = window.matchMedia(FULLSCREEN_QUERY);
3333
3411
  const sync = () => setModal(mql.matches);
@@ -3340,7 +3418,7 @@ function useIsModal() {
3340
3418
  function ChatPanel({ controller, ui, slip, onDashboardTap, monitor }) {
3341
3419
  const { state, close, stop, send, reset } = controller;
3342
3420
  const isModal = useIsModal();
3343
- useEffect9(() => {
3421
+ useEffect10(() => {
3344
3422
  const onKey = (e) => {
3345
3423
  if (e.key === "Escape") close();
3346
3424
  };
@@ -3351,10 +3429,10 @@ function ChatPanel({ controller, ui, slip, onDashboardTap, monitor }) {
3351
3429
  monitor?.setActiveTab("chat");
3352
3430
  send(text);
3353
3431
  };
3354
- useEffect9(() => {
3432
+ useEffect10(() => {
3355
3433
  if (monitor && monitor.activeTab !== "chat" && state.isStreaming) monitor.markChatActivity();
3356
3434
  }, [monitor, state.isStreaming, state.messages.length]);
3357
- return /* @__PURE__ */ jsxs43("div", { className: "ss-w-panel", role: "dialog", "aria-modal": isModal, "aria-label": ui.chatDialogLabel, children: [
3435
+ return /* @__PURE__ */ jsxs44("div", { className: "ss-w-panel", role: "dialog", "aria-modal": isModal, "aria-label": ui.chatDialogLabel, children: [
3358
3436
  /* @__PURE__ */ jsx49(
3359
3437
  ChatHeader,
3360
3438
  {
@@ -3364,7 +3442,8 @@ function ChatPanel({ controller, ui, slip, onDashboardTap, monitor }) {
3364
3442
  headerTitle: ui.headerTitle,
3365
3443
  onNewConversation: reset,
3366
3444
  canReset: state.messages.length > 0,
3367
- newConversationLabel: ui.newConversation
3445
+ newConversationLabel: ui.newConversation,
3446
+ moreOptionsLabel: ui.moreOptions
3368
3447
  }
3369
3448
  ),
3370
3449
  monitor && /* @__PURE__ */ jsx49(
@@ -3482,8 +3561,13 @@ var WIDGET_CSS = `.ss-w-root { all: revert; }
3482
3561
  .ss-w-header { display: flex; align-items: center; gap: 8px; padding: 12px 14px; border-bottom: 1px solid var(--ss-w-line); }
3483
3562
  .ss-w-header-mark { width: 18px; height: 18px; display: block; object-fit: contain; }
3484
3563
  .ss-w-header-title { font-weight: 660; flex: 1; }
3485
- .ss-w-newconv { background: none; border: none; color: var(--ss-w-faint); cursor: pointer; font-size: 16px; display: grid; place-items: center; }
3486
3564
  .ss-w-close { background: none; border: none; color: var(--ss-w-faint); cursor: pointer; font-size: 16px; display: grid; place-items: center; }
3565
+ .ss-w-menu-wrap { position: relative; display: grid; place-items: center; }
3566
+ .ss-w-kebab { background: none; border: none; color: var(--ss-w-faint); cursor: pointer; font-size: 16px; display: grid; place-items: center; }
3567
+ .ss-w-menu { position: absolute; top: calc(100% + 6px); right: 0; z-index: 5; min-width: 184px; padding: 6px; background: var(--ss-w-panel); border: 1px solid var(--ss-w-line); border-radius: 12px; box-shadow: 0 8px 24px rgba(0,0,0,.18); }
3568
+ .ss-w-menu-item { display: flex; align-items: center; gap: 10px; width: 100%; padding: 9px 10px; background: none; border: none; border-radius: 8px; color: var(--ss-w-ink); font: inherit; font-size: 13px; text-align: left; cursor: pointer; }
3569
+ .ss-w-menu-item:hover, .ss-w-menu-item:focus-visible { background: var(--ss-w-bubble); }
3570
+ .ss-w-menu-item svg { color: var(--ss-w-faint); font-size: 15px; flex: none; }
3487
3571
 
3488
3572
  /* messages */
3489
3573
  /* .ss-w-mon-list (Matches/Odds tab scrollers) shares .ss-w-list's box/scroll rules by design --
@@ -4225,8 +4309,8 @@ function StatsWidget(props) {
4225
4309
  const cfg = props.config;
4226
4310
  const built = useMemo2(() => buildClient(props), [injectedClient, cfg?.operatorId, cfg?.publicKey, cfg?.baseUrl]);
4227
4311
  const ui = useMemo2(() => normalizeUi(props.config ?? { operatorId: "", publicKey: "" }), [props.config]);
4228
- const rootRef = useRef7(null);
4229
- const introDoneRef = useRef7(false);
4312
+ const rootRef = useRef8(null);
4313
+ const introDoneRef = useRef8(false);
4230
4314
  const markIntroDone = useCallback5(() => {
4231
4315
  introDoneRef.current = true;
4232
4316
  }, []);
@@ -4265,7 +4349,7 @@ function StatsWidget(props) {
4265
4349
  () => built ? createDashboardTapSignal((input) => built.conversation.sendSignal(input)) : void 0,
4266
4350
  [built]
4267
4351
  );
4268
- useEffect10(() => {
4352
+ useEffect11(() => {
4269
4353
  if (!built || !ui.injectStyles) return;
4270
4354
  const node = rootRef.current?.getRootNode();
4271
4355
  if (node) injectStyles(node);