@sensiblestats/widget-react 0.24.0 → 0.25.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
@@ -1591,77 +1591,144 @@ function PostMatchNextCard({ card }) {
1591
1591
  ] });
1592
1592
  }
1593
1593
 
1594
- // src/components/dashboard/ClubFanDashboard.tsx
1594
+ // src/components/dashboard/RestingNextCard.tsx
1595
1595
  import { jsx as jsx30, jsxs as jsxs26 } from "react/jsx-runtime";
1596
+ function RestingNextCard({ card, onTap }) {
1597
+ const { data } = card;
1598
+ return /* @__PURE__ */ jsxs26("button", { type: "button", className: "ss-w-fandash-card ss-w-fandash-card--tap ss-w-fandash-resting-next", onClick: () => onTap(card), children: [
1599
+ card.title ? /* @__PURE__ */ jsx30("span", { className: "ss-w-fandash-eyebrow", children: card.title }) : null,
1600
+ /* @__PURE__ */ jsxs26("div", { className: "ss-w-fandash-resting-next-row", children: [
1601
+ /* @__PURE__ */ jsx30("span", { className: "ss-w-fandash-resting-next-when", children: data.whenLabel }),
1602
+ data.competition ? /* @__PURE__ */ jsx30("span", { className: "ss-w-fandash-resting-next-competition", children: data.competition }) : null
1603
+ ] }),
1604
+ /* @__PURE__ */ jsx30("span", { className: "ss-w-fandash-card-cta", children: card.actionLabel })
1605
+ ] });
1606
+ }
1607
+
1608
+ // src/components/dashboard/RestingStandingsCard.tsx
1609
+ import { jsx as jsx31, jsxs as jsxs27 } from "react/jsx-runtime";
1610
+ function RestingStandingsCard({ card, onTap }) {
1611
+ const { data } = card;
1612
+ return /* @__PURE__ */ jsxs27("button", { type: "button", className: "ss-w-fandash-card ss-w-fandash-card--tap ss-w-fandash-resting-standings", onClick: () => onTap(card), children: [
1613
+ card.title ? /* @__PURE__ */ jsx31("span", { className: "ss-w-fandash-eyebrow", children: card.title }) : null,
1614
+ /* @__PURE__ */ jsxs27("div", { className: "ss-w-fandash-resting-standings-row", children: [
1615
+ /* @__PURE__ */ jsx31("span", { className: "ss-w-fandash-resting-standings-position", children: data.positionLabel }),
1616
+ /* @__PURE__ */ jsx31("span", { className: "ss-w-fandash-resting-standings-record", children: data.recordLabel })
1617
+ ] }),
1618
+ /* @__PURE__ */ jsx31("span", { className: "ss-w-fandash-card-cta", children: card.actionLabel })
1619
+ ] });
1620
+ }
1621
+
1622
+ // src/components/dashboard/RestingSeasonCard.tsx
1623
+ import { jsx as jsx32, jsxs as jsxs28 } from "react/jsx-runtime";
1624
+ function RestingSeasonCard({ card, onTap }) {
1625
+ const { data } = card;
1626
+ return /* @__PURE__ */ jsxs28("button", { type: "button", className: "ss-w-fandash-card ss-w-fandash-card--tap ss-w-fandash-resting-season", onClick: () => onTap(card), children: [
1627
+ card.title ? /* @__PURE__ */ jsx32("span", { className: "ss-w-fandash-eyebrow", children: card.title }) : null,
1628
+ /* @__PURE__ */ jsxs28("div", { className: "ss-w-fandash-resting-season-rows", children: [
1629
+ data.scorerLabel ? /* @__PURE__ */ jsx32("span", { className: "ss-w-fandash-resting-season-row", children: data.scorerLabel }) : null,
1630
+ data.playerLabel ? /* @__PURE__ */ jsx32("span", { className: "ss-w-fandash-resting-season-row", children: data.playerLabel }) : null,
1631
+ /* @__PURE__ */ jsx32("span", { className: "ss-w-fandash-resting-season-row", children: data.tallyLabel })
1632
+ ] }),
1633
+ /* @__PURE__ */ jsx32("span", { className: "ss-w-fandash-card-cta", children: card.actionLabel })
1634
+ ] });
1635
+ }
1636
+
1637
+ // src/components/dashboard/RestingFormCard.tsx
1638
+ import { jsx as jsx33, jsxs as jsxs29 } from "react/jsx-runtime";
1639
+ function resultClass2(result) {
1640
+ const upper = result.toUpperCase();
1641
+ if (upper === "W") return "ss-w-fandash-form-pill--win";
1642
+ if (upper === "L") return "ss-w-fandash-form-pill--loss";
1643
+ return "ss-w-fandash-form-pill--draw";
1644
+ }
1645
+ function RestingFormCard({ card }) {
1646
+ const { data } = card;
1647
+ return /* @__PURE__ */ jsxs29("div", { className: "ss-w-fandash-card ss-w-fandash-resting-form", children: [
1648
+ card.title ? /* @__PURE__ */ jsx33("span", { className: "ss-w-fandash-eyebrow", children: card.title }) : null,
1649
+ /* @__PURE__ */ jsx33("span", { className: "ss-w-fandash-form", children: data.letters.map((r, i) => /* @__PURE__ */ jsx33("span", { className: `ss-w-fandash-form-pill ${resultClass2(r)}`, children: r }, `${r}-${i}`)) })
1650
+ ] });
1651
+ }
1652
+
1653
+ // src/components/dashboard/ClubFanDashboard.tsx
1654
+ import { jsx as jsx34, jsxs as jsxs30 } from "react/jsx-runtime";
1596
1655
  function ClubFanDashboard({ dashboard, onTap, ui }) {
1597
1656
  const orderedCards = [
1598
1657
  ...dashboard.cards.filter((c) => c.cardType === "countdown"),
1599
1658
  ...dashboard.cards.filter((c) => c.cardType !== "countdown")
1600
1659
  ];
1601
- return /* @__PURE__ */ jsxs26("div", { className: "ss-w-fandash", children: [
1602
- dashboard.greeting ? /* @__PURE__ */ jsx30("span", { className: "ss-w-fandash-greeting", children: dashboard.greeting }) : null,
1603
- /* @__PURE__ */ jsx30("div", { className: "ss-w-fandash-cards", children: orderedCards.map((card, i) => /* @__PURE__ */ jsx30(FanDashboardCard, { card, onTap, ui }, `${card.cardType}-${i}`)) })
1660
+ return /* @__PURE__ */ jsxs30("div", { className: "ss-w-fandash", children: [
1661
+ dashboard.greeting ? /* @__PURE__ */ jsx34("span", { className: "ss-w-fandash-greeting", children: dashboard.greeting }) : null,
1662
+ /* @__PURE__ */ jsx34("div", { className: "ss-w-fandash-cards", children: orderedCards.map((card, i) => /* @__PURE__ */ jsx34(FanDashboardCard, { card, onTap, ui }, `${card.cardType}-${i}`)) })
1604
1663
  ] });
1605
1664
  }
1606
1665
  function FanDashboardCard({ card, onTap, ui }) {
1607
1666
  switch (card.cardType) {
1608
1667
  case "fixture":
1609
- return /* @__PURE__ */ jsx30(FixtureCard, { card, onTap });
1668
+ return /* @__PURE__ */ jsx34(FixtureCard, { card, onTap });
1610
1669
  case "countdown":
1611
- return /* @__PURE__ */ jsx30(CountdownCard, { card });
1670
+ return /* @__PURE__ */ jsx34(CountdownCard, { card });
1612
1671
  case "injuries":
1613
- return /* @__PURE__ */ jsx30(InjuriesCard, { card });
1672
+ return /* @__PURE__ */ jsx34(InjuriesCard, { card });
1614
1673
  case "reasonToBet":
1615
- return /* @__PURE__ */ jsx30(ReasonToBetCard, { card });
1674
+ return /* @__PURE__ */ jsx34(ReasonToBetCard, { card });
1616
1675
  case "whereToWatch":
1617
- return /* @__PURE__ */ jsx30(WhereToWatchCard, { card });
1676
+ return /* @__PURE__ */ jsx34(WhereToWatchCard, { card });
1618
1677
  case "congestedWeek":
1619
- return /* @__PURE__ */ jsx30(CongestedWeekCard, { card, onTap });
1678
+ return /* @__PURE__ */ jsx34(CongestedWeekCard, { card, onTap });
1620
1679
  case "transfers":
1621
- return /* @__PURE__ */ jsx30(TransfersCard, { card });
1680
+ return /* @__PURE__ */ jsx34(TransfersCard, { card });
1622
1681
  case "links":
1623
- return /* @__PURE__ */ jsx30(LinksCard, { card });
1682
+ return /* @__PURE__ */ jsx34(LinksCard, { card });
1624
1683
  case "postMatchResult":
1625
- return /* @__PURE__ */ jsx30(PostMatchResultCard, { card });
1684
+ return /* @__PURE__ */ jsx34(PostMatchResultCard, { card });
1626
1685
  case "postMatchGoals":
1627
- return /* @__PURE__ */ jsx30(PostMatchGoalsCard, { card, onTap });
1686
+ return /* @__PURE__ */ jsx34(PostMatchGoalsCard, { card, onTap });
1628
1687
  case "postMatchStats":
1629
- return /* @__PURE__ */ jsx30(PostMatchStatsCard, { card, onTap });
1688
+ return /* @__PURE__ */ jsx34(PostMatchStatsCard, { card, onTap });
1630
1689
  case "postMatchTopPerformer":
1631
- return /* @__PURE__ */ jsx30(PostMatchTopPerformerCard, { card, onTap });
1690
+ return /* @__PURE__ */ jsx34(PostMatchTopPerformerCard, { card, onTap });
1632
1691
  case "postMatchNext":
1633
- return /* @__PURE__ */ jsx30(PostMatchNextCard, { card });
1692
+ return /* @__PURE__ */ jsx34(PostMatchNextCard, { card });
1693
+ case "restingNext":
1694
+ return /* @__PURE__ */ jsx34(RestingNextCard, { card, onTap });
1695
+ case "restingStandings":
1696
+ return /* @__PURE__ */ jsx34(RestingStandingsCard, { card, onTap });
1697
+ case "restingSeason":
1698
+ return /* @__PURE__ */ jsx34(RestingSeasonCard, { card, onTap });
1699
+ case "restingForm":
1700
+ return /* @__PURE__ */ jsx34(RestingFormCard, { card });
1634
1701
  default:
1635
1702
  return null;
1636
1703
  }
1637
1704
  }
1638
1705
 
1639
1706
  // src/components/ChatMessage.tsx
1640
- import { jsx as jsx31, jsxs as jsxs27 } from "react/jsx-runtime";
1707
+ import { jsx as jsx35, jsxs as jsxs31 } from "react/jsx-runtime";
1641
1708
  function ChatMessage({ message, disabled, onAct, onTap, ui, slip }) {
1642
1709
  if (message.role === "user") {
1643
- return /* @__PURE__ */ jsx31("div", { className: "ss-w-msg ss-w-user", children: /* @__PURE__ */ jsx31("div", { className: "ss-w-bubble", children: message.text }) });
1710
+ return /* @__PURE__ */ jsx35("div", { className: "ss-w-msg ss-w-user", children: /* @__PURE__ */ jsx35("div", { className: "ss-w-bubble", children: message.text }) });
1644
1711
  }
1645
1712
  const onFanDashboardTap = (card) => {
1646
1713
  onAct({ message: card.actionLabel, actionRef: card.actionRef, label: card.actionLabel || card.title || "" });
1647
1714
  };
1648
- return /* @__PURE__ */ jsxs27("div", { className: "ss-w-msg ss-w-bot", children: [
1649
- message.text && !message.greetingDashboard && !message.clubFanDashboard ? /* @__PURE__ */ jsx31(Markdown, { text: message.text }) : null,
1650
- message.greetingDashboard && !message.clubFanDashboard ? /* @__PURE__ */ jsx31(GreetingDashboard, { dashboard: message.greetingDashboard, onTap }) : null,
1651
- message.clubFanDashboard ? /* @__PURE__ */ jsx31(ClubFanDashboard, { dashboard: message.clubFanDashboard, onTap: onFanDashboardTap, ui }) : null,
1652
- /* @__PURE__ */ jsx31(EntityCardList, { cards: message.cards, disabled, showLessLabel: ui?.showLess, showMoreLabel: ui?.showMore }),
1653
- /* @__PURE__ */ jsx31(BettingInsightList, { insights: message.insights, ui, slip }),
1654
- /* @__PURE__ */ jsx31(MarketOddsCardList, { cards: message.marketOdds, ui, slip }),
1655
- /* @__PURE__ */ jsx31(OddsMovementCardList, { cards: message.oddsMovement, ui }),
1656
- /* @__PURE__ */ jsx31(ActionButtons, { actions: message.actions, loading: false, disabled, onAct })
1715
+ return /* @__PURE__ */ jsxs31("div", { className: "ss-w-msg ss-w-bot", children: [
1716
+ message.text && !message.greetingDashboard && !message.clubFanDashboard ? /* @__PURE__ */ jsx35(Markdown, { text: message.text }) : null,
1717
+ message.greetingDashboard && !message.clubFanDashboard ? /* @__PURE__ */ jsx35(GreetingDashboard, { dashboard: message.greetingDashboard, onTap }) : null,
1718
+ message.clubFanDashboard ? /* @__PURE__ */ jsx35(ClubFanDashboard, { dashboard: message.clubFanDashboard, onTap: onFanDashboardTap, ui }) : null,
1719
+ /* @__PURE__ */ jsx35(EntityCardList, { cards: message.cards, disabled, showLessLabel: ui?.showLess, showMoreLabel: ui?.showMore }),
1720
+ /* @__PURE__ */ jsx35(BettingInsightList, { insights: message.insights, ui, slip }),
1721
+ /* @__PURE__ */ jsx35(MarketOddsCardList, { cards: message.marketOdds, ui, slip }),
1722
+ /* @__PURE__ */ jsx35(OddsMovementCardList, { cards: message.oddsMovement, ui }),
1723
+ /* @__PURE__ */ jsx35(ActionButtons, { actions: message.actions, loading: false, disabled, onAct })
1657
1724
  ] });
1658
1725
  }
1659
1726
 
1660
1727
  // src/components/IntentChips.tsx
1661
- import { jsx as jsx32 } from "react/jsx-runtime";
1728
+ import { jsx as jsx36 } from "react/jsx-runtime";
1662
1729
  function IntentChips({ chips, onPick }) {
1663
1730
  if (chips.length === 0) return null;
1664
- return /* @__PURE__ */ jsx32("div", { className: "ss-w-chips", children: chips.map((c, i) => /* @__PURE__ */ jsx32("button", { type: "button", className: "ss-w-chip", onClick: () => onPick(c.text), children: c.text }, `${c.text}-${i}`)) });
1731
+ return /* @__PURE__ */ jsx36("div", { className: "ss-w-chips", children: chips.map((c, i) => /* @__PURE__ */ jsx36("button", { type: "button", className: "ss-w-chip", onClick: () => onPick(c.text), children: c.text }, `${c.text}-${i}`)) });
1665
1732
  }
1666
1733
 
1667
1734
  // src/scroll.ts
@@ -1671,7 +1738,7 @@ function isPinnedToBottom(el, threshold = PIN_THRESHOLD) {
1671
1738
  }
1672
1739
 
1673
1740
  // src/components/MessageList.tsx
1674
- import { jsx as jsx33, jsxs as jsxs28 } from "react/jsx-runtime";
1741
+ import { jsx as jsx37, jsxs as jsxs32 } from "react/jsx-runtime";
1675
1742
  function MessageList({ controller, ui, slip, onDashboardTap }) {
1676
1743
  const { state, send } = controller;
1677
1744
  const listRef = useRef2(null);
@@ -1682,7 +1749,7 @@ function MessageList({ controller, ui, slip, onDashboardTap }) {
1682
1749
  }, [state.messages, state.status]);
1683
1750
  const hasUserMessage = state.messages.some((m) => m.role === "user");
1684
1751
  const hasDashboard = state.messages.some((m) => m.role === "assistant" && (m.greetingDashboard || m.clubFanDashboard));
1685
- return /* @__PURE__ */ jsxs28(
1752
+ return /* @__PURE__ */ jsxs32(
1686
1753
  "div",
1687
1754
  {
1688
1755
  className: "ss-w-list",
@@ -1692,7 +1759,7 @@ function MessageList({ controller, ui, slip, onDashboardTap }) {
1692
1759
  if (listRef.current) pinnedRef.current = isPinnedToBottom(listRef.current);
1693
1760
  },
1694
1761
  children: [
1695
- state.messages.map((m) => /* @__PURE__ */ jsx33(
1762
+ state.messages.map((m) => /* @__PURE__ */ jsx37(
1696
1763
  ChatMessage,
1697
1764
  {
1698
1765
  message: m,
@@ -1707,15 +1774,15 @@ function MessageList({ controller, ui, slip, onDashboardTap }) {
1707
1774
  },
1708
1775
  m.id
1709
1776
  )),
1710
- state.isStreaming && state.actionsLoading ? /* @__PURE__ */ jsx33(ActionButtons, { actions: [], loading: true, onAct: () => {
1777
+ state.isStreaming && state.actionsLoading ? /* @__PURE__ */ jsx37(ActionButtons, { actions: [], loading: true, onAct: () => {
1711
1778
  } }) : null,
1712
- state.status ? /* @__PURE__ */ jsx33("div", { className: "ss-w-status", children: state.status }) : null,
1713
- state.error ? /* @__PURE__ */ jsxs28("div", { className: "ss-w-error", role: "alert", children: [
1714
- /* @__PURE__ */ jsx33("span", { children: "message" in state.error ? state.error.message : ui.somethingWentWrong }),
1715
- /* @__PURE__ */ jsx33("button", { type: "button", className: "ss-w-retry", onClick: () => controller.retry(), children: ui.retry })
1779
+ state.status ? /* @__PURE__ */ jsx37("div", { className: "ss-w-status", children: state.status }) : null,
1780
+ state.error ? /* @__PURE__ */ jsxs32("div", { className: "ss-w-error", role: "alert", children: [
1781
+ /* @__PURE__ */ jsx37("span", { children: "message" in state.error ? state.error.message : ui.somethingWentWrong }),
1782
+ /* @__PURE__ */ jsx37("button", { type: "button", className: "ss-w-retry", onClick: () => controller.retry(), children: ui.retry })
1716
1783
  ] }) : null,
1717
- !hasUserMessage && !hasDashboard ? /* @__PURE__ */ jsx33(IntentChips, { chips: state.starters, onPick: (t) => send(t) }) : null,
1718
- /* @__PURE__ */ jsx33("div", { ref: endRef })
1784
+ !hasUserMessage && !hasDashboard ? /* @__PURE__ */ jsx37(IntentChips, { chips: state.starters, onPick: (t) => send(t) }) : null,
1785
+ /* @__PURE__ */ jsx37("div", { ref: endRef })
1719
1786
  ]
1720
1787
  }
1721
1788
  );
@@ -1723,7 +1790,7 @@ function MessageList({ controller, ui, slip, onDashboardTap }) {
1723
1790
 
1724
1791
  // src/components/ChatInput.tsx
1725
1792
  import { useState as useState7 } from "react";
1726
- import { jsx as jsx34, jsxs as jsxs29 } from "react/jsx-runtime";
1793
+ import { jsx as jsx38, jsxs as jsxs33 } from "react/jsx-runtime";
1727
1794
  function ChatInput({ placeholder, streaming, onSend, onStop, stopLabel = "Stop response", sendLabel = "Send message" }) {
1728
1795
  const [value, setValue] = useState7("");
1729
1796
  const submit = () => {
@@ -1738,14 +1805,14 @@ function ChatInput({ placeholder, streaming, onSend, onStop, stopLabel = "Stop r
1738
1805
  submit();
1739
1806
  }
1740
1807
  };
1741
- return /* @__PURE__ */ jsxs29("div", { className: "ss-w-input", children: [
1742
- /* @__PURE__ */ jsx34("textarea", { className: "ss-w-textarea", rows: 1, placeholder, value, disabled: streaming, onChange: (e) => setValue(e.target.value), onKeyDown }),
1743
- streaming ? /* @__PURE__ */ jsx34("button", { type: "button", className: "ss-w-send ss-w-stop", "aria-label": stopLabel, onClick: onStop, children: /* @__PURE__ */ jsx34("span", { className: "ss-w-stop-glyph" }) }) : /* @__PURE__ */ jsx34("button", { type: "button", className: "ss-w-send", "aria-label": sendLabel, onClick: submit, children: /* @__PURE__ */ jsx34(SendIcon, {}) })
1808
+ return /* @__PURE__ */ jsxs33("div", { className: "ss-w-input", children: [
1809
+ /* @__PURE__ */ jsx38("textarea", { className: "ss-w-textarea", rows: 1, placeholder, value, disabled: streaming, onChange: (e) => setValue(e.target.value), onKeyDown }),
1810
+ streaming ? /* @__PURE__ */ jsx38("button", { type: "button", className: "ss-w-send ss-w-stop", "aria-label": stopLabel, onClick: onStop, children: /* @__PURE__ */ jsx38("span", { className: "ss-w-stop-glyph" }) }) : /* @__PURE__ */ jsx38("button", { type: "button", className: "ss-w-send", "aria-label": sendLabel, onClick: submit, children: /* @__PURE__ */ jsx38(SendIcon, {}) })
1744
1811
  ] });
1745
1812
  }
1746
1813
 
1747
1814
  // src/components/ChatPanel.tsx
1748
- import { jsx as jsx35, jsxs as jsxs30 } from "react/jsx-runtime";
1815
+ import { jsx as jsx39, jsxs as jsxs34 } from "react/jsx-runtime";
1749
1816
  var FULLSCREEN_QUERY = "(max-width: 639px)";
1750
1817
  function useIsModal() {
1751
1818
  const [modal, setModal] = useState8(false);
@@ -1769,10 +1836,10 @@ function ChatPanel({ controller, ui, slip, onDashboardTap }) {
1769
1836
  window.addEventListener("keydown", onKey);
1770
1837
  return () => window.removeEventListener("keydown", onKey);
1771
1838
  }, [close]);
1772
- return /* @__PURE__ */ jsxs30("div", { className: "ss-w-panel", role: "dialog", "aria-modal": isModal, "aria-label": ui.chatDialogLabel, children: [
1773
- /* @__PURE__ */ jsx35(ChatHeader, { onClose: close, closeLabel: ui.closeChat }),
1774
- /* @__PURE__ */ jsx35(MessageList, { controller, ui, slip, onDashboardTap }),
1775
- /* @__PURE__ */ jsx35(ChatInput, { placeholder: ui.placeholder, streaming: state.isStreaming, onSend: (t) => send(t), onStop: stop, stopLabel: ui.stopResponse, sendLabel: ui.sendMessage })
1839
+ return /* @__PURE__ */ jsxs34("div", { className: "ss-w-panel", role: "dialog", "aria-modal": isModal, "aria-label": ui.chatDialogLabel, children: [
1840
+ /* @__PURE__ */ jsx39(ChatHeader, { onClose: close, closeLabel: ui.closeChat }),
1841
+ /* @__PURE__ */ jsx39(MessageList, { controller, ui, slip, onDashboardTap }),
1842
+ /* @__PURE__ */ jsx39(ChatInput, { placeholder: ui.placeholder, streaming: state.isStreaming, onSend: (t) => send(t), onStop: stop, stopLabel: ui.stopResponse, sendLabel: ui.sendMessage })
1776
1843
  ] });
1777
1844
  }
1778
1845
 
@@ -2267,10 +2334,27 @@ var WIDGET_CSS = `.ss-w-root { all: revert; }
2267
2334
  .ss-w-fandash-postmatch-next-row { display: flex; align-items: center; justify-content: space-between; gap: 10px; }
2268
2335
  .ss-w-fandash-postmatch-next-opponent { font-size: 13px; font-weight: 650; overflow-wrap: anywhere; }
2269
2336
  .ss-w-fandash-postmatch-next-when { flex: none; font-size: 11.5px; color: var(--ss-w-faint); }
2337
+
2338
+ /* resting next: the between-matches fixture teaser -- when-label left, competition badge right */
2339
+ .ss-w-fandash-resting-next-row { display: flex; align-items: center; justify-content: space-between; gap: 10px; }
2340
+ .ss-w-fandash-resting-next-when { min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; font-size: 13px; font-weight: 650; }
2341
+ .ss-w-fandash-resting-next-competition { flex: none; font-size: 10.5px; font-weight: 700; text-transform: uppercase; letter-spacing: .03em; color: var(--ss-w-faint); }
2342
+
2343
+ /* resting standings: position figure left, W-D-L/points record right */
2344
+ .ss-w-fandash-resting-standings-row { display: flex; align-items: baseline; justify-content: space-between; gap: 10px; }
2345
+ .ss-w-fandash-resting-standings-position { font-size: 15px; font-weight: 750; color: var(--ss-w-ink); }
2346
+ .ss-w-fandash-resting-standings-record { font-size: 11.5px; color: var(--ss-w-faint); text-align: right; }
2347
+
2348
+ /* resting season: top scorer / key player / season tally as stacked rows */
2349
+ .ss-w-fandash-resting-season-rows { display: flex; flex-direction: column; gap: 4px; }
2350
+ .ss-w-fandash-resting-season-row { font-size: 12.5px; color: var(--ss-w-ink); }
2351
+
2352
+ /* resting form: reuses the fixture last-five pill classes (ss-w-fandash-form / -form-pill) */
2353
+ .ss-w-fandash-resting-form .ss-w-fandash-form { margin-top: 2px; }
2270
2354
  `;
2271
2355
 
2272
2356
  // src/StatsWidget.tsx
2273
- import { jsx as jsx36 } from "react/jsx-runtime";
2357
+ import { jsx as jsx40 } from "react/jsx-runtime";
2274
2358
  function buildClient(props) {
2275
2359
  try {
2276
2360
  if ("client" in props && props.client) {
@@ -2323,7 +2407,7 @@ function StatsWidget(props) {
2323
2407
  }, [built, ui.injectStyles]);
2324
2408
  if (!built) return null;
2325
2409
  const attrs = themeAttrs(ui);
2326
- return /* @__PURE__ */ jsx36("div", { ref: rootRef, className: "ss-w-root", "data-ss-w-theme": attrs["data-ss-w-theme"], "data-ss-w-pos": attrs["data-ss-w-pos"], style: attrs.style, children: controller.state.isOpen ? /* @__PURE__ */ jsx36(ChatPanel, { controller, ui, slip, onDashboardTap }) : /* @__PURE__ */ jsx36(
2410
+ return /* @__PURE__ */ jsx40("div", { ref: rootRef, className: "ss-w-root", "data-ss-w-theme": attrs["data-ss-w-theme"], "data-ss-w-pos": attrs["data-ss-w-pos"], style: attrs.style, children: controller.state.isOpen ? /* @__PURE__ */ jsx40(ChatPanel, { controller, ui, slip, onDashboardTap }) : /* @__PURE__ */ jsx40(
2327
2411
  ChatFab,
2328
2412
  {
2329
2413
  label: ui.launcherLabel,