@sensiblestats/widget-react 0.44.0 → 0.46.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/styles.css CHANGED
@@ -102,6 +102,11 @@
102
102
  /* .ss-w-mon-list (Matches/Odds tab scrollers) shares .ss-w-list's box/scroll rules by design --
103
103
  same visual rhythm as the chat message list -- but gets its own class so it isn't the same DOM
104
104
  landmark as the chat list when both exist in the panel at once (Task 16 fix round, M4). */
105
+ /* Children of this scrolling column flex container must NOT shrink. The default flex-shrink:1
106
+ compresses every child to fit the panel instead of letting the container scroll, and
107
+ .ss-w-grp's own overflow:hidden then clips the compressed content away entirely — 27
108
+ competition groups rendered as blank bars on a phone. Applies to the pinned cards too. */
109
+ .ss-w-mon-list > * { flex: none; }
105
110
  .ss-w-list, .ss-w-mon-list { flex: 1; overflow-y: auto; overscroll-behavior: contain; padding: 14px; display: flex; flex-direction: column; gap: 12px; scroll-padding-top: 14px; }
106
111
  /* Transient bottom spacer: reserves a viewport of room below a new turn so its
107
112
  top can be scrolled into view while the reply is still streaming in. Height is
@@ -730,8 +735,9 @@
730
735
  .ss-w-fandash-live-legend-swatch--away { background: var(--ss-w-away); }
731
736
 
732
737
  /* live monitor tab bar: underline pattern mirrors .ss-w-ecard-scope; the unread dot uses --ss-w-neg */
733
- .ss-w-tabs { display: flex; align-items: stretch; gap: 2px; border-bottom: 1px solid var(--ss-w-line); }
734
- .ss-w-tab { display: inline-flex; align-items: center; gap: 6px; font-size: 12.5px; font-weight: 620; color: var(--ss-w-faint); background: none; border: none; cursor: pointer; padding: 9px 12px; margin-bottom: -1px; border-bottom: 2px solid transparent; }
738
+ .ss-w-tabs { display: flex; align-items: stretch; gap: 2px; border-bottom: 1px solid var(--ss-w-line); overflow-x: auto; scrollbar-width: none; }
739
+ .ss-w-tabs::-webkit-scrollbar { display: none; }
740
+ .ss-w-tab { display: inline-flex; align-items: center; gap: 6px; font-size: 12.5px; font-weight: 620; color: var(--ss-w-faint); background: none; border: none; cursor: pointer; padding: 9px 12px; margin-bottom: -1px; border-bottom: 2px solid transparent; flex: none; white-space: nowrap; }
735
741
  .ss-w-tab[data-on] { color: var(--ss-w-ink); border-bottom-color: var(--ss-w-accent); }
736
742
  .ss-w-tab-count { font-size: 10.5px; font-weight: 700; color: var(--ss-w-faint); background: var(--ss-w-bubble); border-radius: 999px; padding: 1px 6px; }
737
743
  .ss-w-tab[data-on] .ss-w-tab-count { color: var(--ss-w-accent); }
@@ -820,3 +826,35 @@
820
826
  .ss-w-acc-panel { padding: 0 11px 10px; display: flex; flex-direction: column; gap: 8px; }
821
827
  .ss-w-acc-insight { font-size: 12px; color: var(--ss-w-ink); background: color-mix(in srgb, var(--ss-w-accent) 9%, var(--ss-w-panel)); border-radius: 8px; padding: 7px 9px; }
822
828
  .ss-w-acc-retry { font-size: 12px; color: var(--ss-w-neg); cursor: pointer; padding: 6px 0; }
829
+
830
+ /* ---- Today tab (u355) ---- */
831
+ .ss-w-sec-head { display: flex; align-items: center; gap: 7px; padding: 2px 2px 0; font-size: 10px; font-weight: 800; letter-spacing: .09em; text-transform: uppercase; color: var(--ss-w-faint); }
832
+ .ss-w-sec-head::after { content: ""; flex: 1; height: 1px; background: var(--ss-w-line); }
833
+ .ss-w-sec-dot { width: 6px; height: 6px; border-radius: 50%; background: var(--ss-w-neg); flex: none; }
834
+ .ss-w-today-live { display: flex; flex-direction: column; gap: 2px; }
835
+
836
+ .ss-w-grp { border: 1px solid var(--ss-w-line); border-radius: 12px; overflow: hidden; }
837
+ .ss-w-grp-head { display: flex; align-items: center; gap: 8px; width: 100%; padding: 8px 11px; background: var(--ss-w-bubble); border: none; font: inherit; color: var(--ss-w-ink); cursor: pointer; text-align: left; }
838
+ .ss-w-grp-head:focus-visible { outline: 2px solid var(--ss-w-accent); outline-offset: -2px; }
839
+ .ss-w-grp-chev { color: var(--ss-w-faint); font-size: 10px; flex: none; }
840
+ .ss-w-grp-name { font-size: 12px; font-weight: 700; min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
841
+ .ss-w-grp-country { font-weight: 600; color: var(--ss-w-faint); }
842
+ .ss-w-grp-count { margin-left: auto; flex: none; font-size: 10.5px; font-weight: 700; color: var(--ss-w-faint); background: var(--ss-w-panel); border: 1px solid var(--ss-w-line); border-radius: 999px; padding: 1px 7px; font-variant-numeric: tabular-nums; }
843
+ .ss-w-grp-body { display: flex; flex-direction: column; padding: 2px 11px 6px; }
844
+
845
+ .ss-w-drow { display: grid; grid-template-columns: 42px minmax(0,1fr) auto 22px; align-items: center; gap: 9px; padding: 7px 0; border-bottom: 1px solid var(--ss-w-line); }
846
+ .ss-w-drow:last-child { border-bottom: none; }
847
+ .ss-w-drow-when { font-size: 11px; font-weight: 700; color: var(--ss-w-faint); font-variant-numeric: tabular-nums; }
848
+ .ss-w-drow-when--live { color: var(--ss-w-neg); }
849
+ /* Each side ellipsises independently: a single joined string truncates the away team off the end,
850
+ which is the u350 betting-card truncation one layer down. */
851
+ .ss-w-drow-fx { display: flex; align-items: center; gap: 6px; min-width: 0; }
852
+ .ss-w-drow-side { display: flex; align-items: center; gap: 5px; min-width: 0; flex: 1 1 0; }
853
+ .ss-w-drow-nm { font-size: 12.5px; font-weight: 600; min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
854
+ .ss-w-drow-dash { flex: none; color: var(--ss-w-faint); font-size: 11px; }
855
+ .ss-w-drow-sc { font-size: 12.5px; font-weight: 800; font-variant-numeric: tabular-nums; color: var(--ss-w-ink); }
856
+ .ss-w-drow-sc--idle { color: var(--ss-w-faint); font-weight: 600; }
857
+ .ss-w-drow--live { background: color-mix(in srgb, var(--ss-w-neg) 5%, transparent); border-radius: 8px; padding: 7px 6px; margin: 0 -6px; border-bottom: none; }
858
+ .ss-w-drow-crest { width: 16px; height: 16px; flex: none; border-radius: 50%; object-fit: contain; background: var(--ss-w-bubble); }
859
+
860
+ .ss-w-stale { font-size: 11px; font-weight: 600; color: var(--ss-w-cta); background: color-mix(in srgb, var(--ss-w-cta) 12%, var(--ss-w-panel)); border-radius: 8px; padding: 6px 9px; }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@sensiblestats/widget-react",
3
- "version": "0.44.0",
3
+ "version": "0.46.0",
4
4
  "description": "Embeddable SensibleStats chat widget for React.",
5
5
  "type": "module",
6
6
  "main": "./dist/index.cjs",
@@ -37,7 +37,7 @@
37
37
  "prepublishOnly": "yarn build"
38
38
  },
39
39
  "dependencies": {
40
- "@sensiblestats/widget-sdk": "^0.32.0",
40
+ "@sensiblestats/widget-sdk": "^0.34.0",
41
41
  "react-markdown": "^9.0.1",
42
42
  "remark-gfm": "^4.0.0"
43
43
  },