@sensiblestats/widget-react 0.29.2 → 0.29.4
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/CHANGELOG.md +14 -0
- package/dist/index.cjs +246 -108
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.cts +1 -1
- package/dist/index.d.ts +1 -1
- package/dist/index.js +227 -89
- package/dist/index.js.map +1 -1
- package/dist/styles.css +74 -29
- package/package.json +2 -2
package/dist/styles.css
CHANGED
|
@@ -396,10 +396,9 @@
|
|
|
396
396
|
.ss-w-fandash-fixture-team--away .ss-w-fandash-fixture-name { text-align: right; }
|
|
397
397
|
.ss-w-fandash-fixture-vs { flex: none; font-size: 10.5px; font-weight: 700; text-transform: uppercase; letter-spacing: .04em; color: var(--ss-w-faint); }
|
|
398
398
|
/* date + venue as labelled rows, so a long stadium name gets its own line to ellipsis in */
|
|
399
|
-
.ss-w-fandash-fixture-meta {
|
|
400
|
-
.ss-w-fandash-fixture-
|
|
401
|
-
.ss-w-fandash-fixture-
|
|
402
|
-
.ss-w-fandash-fixture-metaval { min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; font-size: 12.5px; font-weight: 600; color: var(--ss-w-ink); }
|
|
399
|
+
.ss-w-fandash-fixture-meta { border-top: 1px solid var(--ss-w-line); padding-top: 10px; text-align: center; font-size: 12.5px; color: var(--ss-w-faint); }
|
|
400
|
+
.ss-w-fandash-fixture-kickoff { font-weight: 700; color: var(--ss-w-ink); }
|
|
401
|
+
.ss-w-fandash-fixture-venue { font-weight: 600; }
|
|
403
402
|
.ss-w-fandash-fact { font-size: 12px; color: var(--ss-w-ink); background: var(--ss-w-bubble); border-radius: 8px; padding: 6px 8px; }
|
|
404
403
|
/* each head-to-head figure sits on its own shaded tile, so the grid gap separates wins/draws/losses */
|
|
405
404
|
.ss-w-fandash-h2h .ss-w-fandash-split-cell { background: var(--ss-w-bubble); border-radius: 10px; padding: 12px 6px; }
|
|
@@ -409,7 +408,12 @@
|
|
|
409
408
|
/* last-five: one row per side, team name left, form pills right */
|
|
410
409
|
.ss-w-fandash-fixture-form { display: flex; flex-direction: column; gap: 5px; }
|
|
411
410
|
.ss-w-fandash-formrow { display: flex; align-items: center; justify-content: space-between; gap: 10px; }
|
|
411
|
+
.ss-w-fandash-formrow-team { display: flex; align-items: center; gap: 8px; min-width: 0; }
|
|
412
|
+
.ss-w-fandash-formrow-team .ss-w-bi-crest { width: 20px; height: 20px; }
|
|
413
|
+
.ss-w-fandash-formrow-team .ss-w-bi-crest-mono { font-size: 9px; }
|
|
412
414
|
.ss-w-fandash-formrow-name { min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; font-size: 12px; font-weight: 600; }
|
|
415
|
+
.ss-w-fandash-injuries-more { margin-top: 10px; width: 100%; background: var(--ss-w-bubble); border: 1px solid var(--ss-w-line); border-radius: 9px; padding: 7px; font: inherit; font-size: 11.5px; font-weight: 700; color: var(--ss-w-accent); cursor: pointer; }
|
|
416
|
+
.ss-w-fandash-injuries-more:focus-visible { outline: 2px solid var(--ss-w-accent); outline-offset: 2px; }
|
|
413
417
|
.ss-w-fandash-form { display: inline-flex; gap: 3px; flex: none; }
|
|
414
418
|
.ss-w-fandash-form-pill {
|
|
415
419
|
display: inline-grid; place-items: center; width: 16px; height: 16px;
|
|
@@ -473,35 +477,76 @@
|
|
|
473
477
|
.ss-w-fandash-link-label { font-size: 12.5px; font-weight: 650; overflow-wrap: anywhere; }
|
|
474
478
|
.ss-w-fandash-link-chevron { flex: none; width: 12px; height: 12px; color: var(--ss-w-accent); }
|
|
475
479
|
|
|
476
|
-
/* post-match result: full-time scoreboard
|
|
477
|
-
|
|
478
|
-
|
|
479
|
-
|
|
480
|
-
.ss-w-fandash-postmatch-
|
|
481
|
-
.ss-w-fandash-postmatch-
|
|
482
|
-
.ss-w-fandash-postmatch-
|
|
483
|
-
|
|
484
|
-
|
|
485
|
-
.ss-w-fandash-postmatch-
|
|
486
|
-
.ss-w-fandash-postmatch-
|
|
480
|
+
/* post-match result: full-time scoreboard, mirroring the live card's crest + big-score treatment.
|
|
481
|
+
A neutral "Full time" pill sits left of a coloured Win/Draw/Loss tag; the 3-column main row
|
|
482
|
+
(home crest+name | score | away crest+name, away reversed) puts the winner's score in full ink
|
|
483
|
+
and the loser's dimmed; a centered meta line sits under a divider. */
|
|
484
|
+
.ss-w-fandash-postmatch-top { display: flex; align-items: center; gap: 8px; margin-bottom: 15px; }
|
|
485
|
+
.ss-w-fandash-postmatch-pill { display: inline-flex; align-items: center; gap: 5px; font-size: 10.5px; font-weight: 800; letter-spacing: .05em; text-transform: uppercase; color: var(--ss-w-faint); background: var(--ss-w-bubble); border: 1px solid var(--ss-w-line); border-radius: 6px; padding: 3px 8px; }
|
|
486
|
+
.ss-w-fandash-postmatch-tag { margin-left: auto; flex: none; font-size: 11.5px; font-weight: 800; text-transform: uppercase; letter-spacing: .04em; }
|
|
487
|
+
.ss-w-fandash-postmatch-tag--win { color: var(--ss-w-pos); }
|
|
488
|
+
.ss-w-fandash-postmatch-tag--loss { color: var(--ss-w-neg); }
|
|
489
|
+
.ss-w-fandash-postmatch-tag--draw { color: var(--ss-w-faint); }
|
|
490
|
+
.ss-w-fandash-postmatch-main { display: grid; grid-template-columns: 1fr auto 1fr; align-items: center; gap: 10px; }
|
|
491
|
+
.ss-w-fandash-postmatch-side { display: flex; align-items: center; gap: 10px; min-width: 0; }
|
|
492
|
+
.ss-w-fandash-postmatch-side--away { flex-direction: row-reverse; text-align: right; }
|
|
493
|
+
.ss-w-fandash-postmatch-crest { width: 38px; height: 38px; border-radius: 10px; flex: none; display: grid; place-items: center; color: #fff; font-weight: 800; font-size: 12.5px; object-fit: cover; box-shadow: 0 2px 6px rgba(0, 0, 0, .18); }
|
|
494
|
+
.ss-w-fandash-postmatch-crest--fallback.ss-w-fandash-postmatch-crest--home { background: var(--ss-w-home); }
|
|
495
|
+
.ss-w-fandash-postmatch-crest--fallback.ss-w-fandash-postmatch-crest--away { background: var(--ss-w-away); }
|
|
496
|
+
.ss-w-fandash-postmatch-team-name { min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; font-size: 15px; font-weight: 700; line-height: 1.15; color: var(--ss-w-ink); }
|
|
497
|
+
.ss-w-fandash-postmatch-score-main { display: flex; align-items: baseline; justify-content: center; font-size: 36px; font-weight: 850; font-variant-numeric: tabular-nums; line-height: 1; white-space: nowrap; }
|
|
498
|
+
.ss-w-fandash-postmatch-score-value--win { color: var(--ss-w-ink); }
|
|
499
|
+
.ss-w-fandash-postmatch-score-value--lose { color: var(--ss-w-faint); }
|
|
500
|
+
.ss-w-fandash-postmatch-score-sep { color: var(--ss-w-faint); font-weight: 500; margin: 0 5px; }
|
|
501
|
+
.ss-w-fandash-postmatch-meta { margin-top: 13px; padding-top: 12px; border-top: 1px solid var(--ss-w-line); font-size: 12px; color: var(--ss-w-faint); text-align: center; }
|
|
502
|
+
|
|
503
|
+
/* post-match goals: a football-ball icon per goal (mirrors the live timeline ball, duplicated here
|
|
504
|
+
under the postmatch prefix), text dimmed for opponent goals and picked out in full ink + bold
|
|
505
|
+
for the club's own goals */
|
|
506
|
+
.ss-w-fandash-postmatch-goal-list { list-style: none; display: flex; flex-direction: column; gap: 6px; }
|
|
507
|
+
.ss-w-fandash-postmatch-goal { display: flex; align-items: center; gap: 8px; font-size: 12.5px; color: var(--ss-w-faint); }
|
|
508
|
+
.ss-w-fandash-postmatch-goal-ball { width: 11px; height: 11px; flex: none; border-radius: 50%; background: radial-gradient(circle at 50% 42%, #fff 0 34%, transparent 36%), var(--ss-w-ink); border: 1px solid var(--ss-w-ink); }
|
|
487
509
|
.ss-w-fandash-postmatch-goal--club { color: var(--ss-w-ink); font-weight: 650; }
|
|
488
510
|
|
|
489
|
-
/* post-match stats:
|
|
490
|
-
|
|
491
|
-
|
|
511
|
+
/* post-match stats: home value / stat label / away value, oriented by venue (u316), each row now
|
|
512
|
+
backed by a home/away split bar -- the big upgrade from plain text -- plus a legend. Mirrors
|
|
513
|
+
LiveStatsCard's split-bar treatment under the postmatch-prefixed classes; the shared
|
|
514
|
+
--ss-w-home/--ss-w-away/--ss-w-track tokens are defined above. */
|
|
515
|
+
.ss-w-fandash-postmatch-stat-rows { display: flex; flex-direction: column; gap: 15px; }
|
|
516
|
+
.ss-w-fandash-postmatch-stat { display: flex; flex-direction: column; gap: 7px; }
|
|
517
|
+
.ss-w-fandash-postmatch-stat-row { display: grid; grid-template-columns: 1fr auto 1fr; align-items: baseline; gap: 8px; }
|
|
492
518
|
.ss-w-fandash-postmatch-stat-value { font-size: 13px; font-weight: 700; font-variant-numeric: tabular-nums; color: var(--ss-w-ink); }
|
|
493
|
-
.ss-w-fandash-postmatch-stat-
|
|
519
|
+
.ss-w-fandash-postmatch-stat-value--home { color: var(--ss-w-home); }
|
|
520
|
+
.ss-w-fandash-postmatch-stat-value--away { color: var(--ss-w-away); text-align: right; }
|
|
494
521
|
.ss-w-fandash-postmatch-stat-label { font-size: 10.5px; text-align: center; color: var(--ss-w-faint); text-transform: uppercase; letter-spacing: .03em; }
|
|
495
|
-
|
|
496
|
-
|
|
497
|
-
.ss-w-fandash-postmatch-
|
|
498
|
-
.ss-w-fandash-postmatch-
|
|
499
|
-
.ss-w-fandash-postmatch-
|
|
500
|
-
|
|
501
|
-
|
|
502
|
-
.ss-w-fandash-postmatch-
|
|
503
|
-
|
|
504
|
-
|
|
522
|
+
.ss-w-fandash-postmatch-stat-bar { position: relative; height: 8px; border-radius: 999px; background: var(--ss-w-track); overflow: hidden; display: flex; }
|
|
523
|
+
.ss-w-fandash-postmatch-stat-bar-home { height: 100%; background: var(--ss-w-home); }
|
|
524
|
+
.ss-w-fandash-postmatch-stat-bar-away { height: 100%; background: var(--ss-w-away); margin-left: auto; }
|
|
525
|
+
.ss-w-fandash-postmatch-legend { display: flex; gap: 14px; margin-top: 13px; padding-top: 13px; border-top: 1px solid var(--ss-w-line); font-size: 11px; color: var(--ss-w-faint); }
|
|
526
|
+
.ss-w-fandash-postmatch-legend-item { display: inline-flex; align-items: center; gap: 6px; }
|
|
527
|
+
.ss-w-fandash-postmatch-legend-swatch { width: 10px; height: 10px; border-radius: 3px; flex: none; }
|
|
528
|
+
.ss-w-fandash-postmatch-legend-swatch--home { background: var(--ss-w-home); }
|
|
529
|
+
.ss-w-fandash-postmatch-legend-swatch--away { background: var(--ss-w-away); }
|
|
530
|
+
|
|
531
|
+
/* post-match top performer (full mockup treatment): gradient initials avatar + name + a
|
|
532
|
+
prominent rating chip. Avatar gradient reuses the --ss-w-away token, same pairing as the live
|
|
533
|
+
crest fallback; "?" renders through the same avatar span when the name is blank. */
|
|
534
|
+
.ss-w-fandash-postmatch-perf-row { display: flex; align-items: center; gap: 12px; }
|
|
535
|
+
.ss-w-fandash-postmatch-perf-avatar {
|
|
536
|
+
flex: none; width: 42px; height: 42px; border-radius: 50%;
|
|
537
|
+
display: grid; place-items: center;
|
|
538
|
+
font-size: 14px; font-weight: 800; color: #fff;
|
|
539
|
+
background: linear-gradient(135deg, var(--ss-w-away), color-mix(in srgb, var(--ss-w-away) 55%, #000));
|
|
540
|
+
}
|
|
541
|
+
.ss-w-fandash-postmatch-perf-name { min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; font-size: 15px; font-weight: 700; }
|
|
542
|
+
.ss-w-fandash-postmatch-perf-rating { margin-left: auto; flex: none; font-size: 13px; font-weight: 800; font-variant-numeric: tabular-nums; color: var(--ss-w-accent); background: color-mix(in srgb, var(--ss-w-accent) 14%, var(--ss-w-panel)); border-radius: 999px; padding: 3px 11px; }
|
|
543
|
+
|
|
544
|
+
/* post-match next (v1, modest): whenLabel is already a complete localized phrase (opponent +
|
|
545
|
+
venue + kickoff) composed server-side, so this card renders just that one line -- dressed up
|
|
546
|
+
with an accent rule rather than a duplicated opponent line. The richer opponent-headline/venue-
|
|
547
|
+
chip/crest layout from the mockup needs a server field split and is deferred. */
|
|
548
|
+
.ss-w-fandash-postmatch-next-row { display: flex; align-items: center; gap: 10px; border-left: 3px solid var(--ss-w-accent); padding-left: 10px; }
|
|
549
|
+
.ss-w-fandash-postmatch-next-when { font-size: 13.5px; font-weight: 650; color: var(--ss-w-ink); line-height: 1.3; }
|
|
505
550
|
|
|
506
551
|
/* resting next: the between-matches fixture teaser -- when-label left, competition badge right */
|
|
507
552
|
.ss-w-fandash-resting-next-row { display: flex; align-items: center; justify-content: space-between; gap: 10px; }
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@sensiblestats/widget-react",
|
|
3
|
-
"version": "0.29.
|
|
3
|
+
"version": "0.29.4",
|
|
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.25.
|
|
40
|
+
"@sensiblestats/widget-sdk": "^0.25.2",
|
|
41
41
|
"react-markdown": "^9.0.1",
|
|
42
42
|
"remark-gfm": "^4.0.0"
|
|
43
43
|
},
|