@sensiblestats/widget-react 0.55.0 → 0.56.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
@@ -914,7 +914,24 @@
914
914
  .ss-w-tile-chip--fun { color: var(--ss-w-faint); background: var(--ss-w-bubble); border: 1px solid var(--ss-w-line); }
915
915
 
916
916
  /* Game screen host: back-row + placeholder body */
917
- .ss-w-gscreen { display: flex; flex-direction: column; gap: 0; }
917
+ /* Game screen fills the panel; the board scrolls internally and the search/input bar stays
918
+ pinned at the bottom so the fan never has to scroll to reach it. */
919
+ .ss-w-gscreen-wrap { flex: 1; min-height: 0; display: flex; flex-direction: column; padding: 14px; overflow: hidden; }
920
+ .ss-w-gscreen { flex: 1; min-height: 0; display: flex; flex-direction: column; gap: 0; }
921
+ .ss-w-gscreen > .ss-w-gxi, .ss-w-gscreen > .ss-w-gt, .ss-w-gscreen > .ss-w-cpath,
922
+ .ss-w-gscreen > .ss-w-btg, .ss-w-gscreen > .ss-w-hl { flex: 1; min-height: 0; }
923
+ /* Scrollable board + guess-history region. */
924
+ .ss-w-gscroll { flex: 1; min-height: 0; overflow-y: auto; overscroll-behavior: contain; display: flex; flex-direction: column; gap: 10px; padding-bottom: 2px; }
925
+ /* Bottom-pinned bar (search input / action). */
926
+ .ss-w-gpin { flex-shrink: 0; padding-top: 10px; }
927
+ /* Heads stay put above the scroll region. */
928
+ .ss-w-gxi-head, .ss-w-gt-head, .ss-w-cpath-head, .ss-w-btg-head { flex-shrink: 0; }
929
+ /* Mystery Tiger explainer key (✓ / ▲ / ▼). */
930
+ .ss-w-gt-key { white-space: nowrap; }
931
+ .ss-w-gt-key b { font-weight: 800; color: var(--ss-w-ink); }
932
+ .ss-w-gt-key-ok { color: var(--ss-w-correct) !important; }
933
+ /* Higher or Lower terminal score unit. */
934
+ .ss-w-hl-over-unit { font-size: 14px; font-weight: 700; color: var(--ss-w-faint); }
918
935
  .ss-w-gscreen-back { display: inline-flex; align-items: center; gap: 5px; background: none; border: none; color: var(--ss-w-accent); font: inherit; font-size: 13px; font-weight: 600; cursor: pointer; padding: 6px 0 10px; align-self: flex-start; }
919
936
  .ss-w-gscreen-back-arrow { font-size: 11px; font-weight: 700; }
920
937
  .ss-w-gscreen-body { flex: 1; display: flex; align-items: center; justify-content: center; padding: 40px 16px; color: var(--ss-w-faint); font-size: 13px; text-align: center; }
@@ -968,7 +985,9 @@
968
985
  .ss-w-gtta-i { width: 100%; box-sizing: border-box; padding: 9px 12px; border-radius: 10px; border: 1.5px solid var(--ss-w-line); background: var(--ss-w-panel); color: var(--ss-w-ink); font: inherit; font-size: 13px; outline: none; transition: border-color .12s; }
969
986
  .ss-w-gtta-i:focus { border-color: var(--ss-w-accent); }
970
987
  .ss-w-gtta-i:disabled { opacity: .5; cursor: not-allowed; }
971
- .ss-w-gtta-drop { position: absolute; left: 0; right: 0; top: calc(100% + 4px); z-index: 10; background: var(--ss-w-panel); border: 1px solid var(--ss-w-line); border-radius: 10px; max-height: 180px; overflow-y: auto; box-shadow: 0 4px 16px rgba(0,0,0,.12); }
988
+ /* Opens UPWARD (bottom-anchored) because the input is pinned to the panel's bottom edge — a
989
+ downward menu would be clipped off-screen. */
990
+ .ss-w-gtta-drop { position: absolute; left: 0; right: 0; bottom: calc(100% + 4px); top: auto; z-index: 10; background: var(--ss-w-panel); border: 1px solid var(--ss-w-line); border-radius: 10px; max-height: 200px; overflow-y: auto; box-shadow: 0 -4px 16px rgba(0,0,0,.16); }
972
991
  .ss-w-gtta-opt { padding: 9px 12px; font-size: 13px; cursor: pointer; color: var(--ss-w-ink); border-bottom: 1px solid var(--ss-w-line); }
973
992
  .ss-w-gtta-opt:last-child { border-bottom: none; }
974
993
  .ss-w-gtta-opt:hover { background: var(--ss-w-bubble); }
@@ -1127,13 +1146,18 @@
1127
1146
  /* A football pitch is grass-green regardless of the operator accent, so the field uses fixed
1128
1147
  green values (not --ss-w-correct, which is a muted per-operator token that vanished on dark
1129
1148
  themes) plus visible horizontal yard-lines and a brighter halfway line. */
1130
- .ss-w-gxi-pitch { position: relative; display: flex; flex-direction: column; justify-content: space-between; gap: 8px; min-height: 300px; padding: 18px 10px; border-radius: 14px; border: 1px solid rgba(46, 160, 86, .38);
1149
+ .ss-w-gxi-pitch { position: relative; display: flex; flex-direction: column; justify-content: space-between; gap: 6px; min-height: 210px; padding: 14px 10px; border-radius: 14px; border: 1px solid rgba(46, 160, 86, .38);
1131
1150
  background:
1132
1151
  linear-gradient(180deg, rgba(46, 160, 86, .015) 0, rgba(46, 160, 86, .015) 49.5%, rgba(255,255,255,.14) 49.5%, rgba(255,255,255,.14) 50.5%, rgba(46, 160, 86, .015) 50.5%),
1133
1152
  repeating-linear-gradient(180deg, transparent 0 31px, rgba(255,255,255,.045) 31px 32px),
1134
1153
  linear-gradient(180deg, rgba(46, 160, 86, .28), rgba(38, 132, 71, .16)); }
1135
- .ss-w-gxi-prow { display: flex; justify-content: center; align-items: center; gap: 12px; }
1154
+ .ss-w-gxi-prow { display: flex; justify-content: center; align-items: flex-start; gap: 12px; }
1155
+ .ss-w-gxi-slot { display: flex; flex-direction: column; align-items: center; gap: 2px; width: 46px; }
1136
1156
  .ss-w-gxi-flag { width: 32px; height: 32px; flex: none; border-radius: 50%; display: grid; place-items: center; font-size: 17px; line-height: 1; background: rgba(9, 12, 10, .55); border: 1px solid rgba(255,255,255,.16); box-shadow: 0 1px 3px rgba(0,0,0,.3); overflow: hidden; }
1157
+ /* A slot whose player has been revealed by a wrong guess. */
1158
+ .ss-w-gxi-flag--revealed { border-color: var(--ss-w-accent); box-shadow: 0 0 0 2px color-mix(in srgb, var(--ss-w-accent) 45%, transparent); }
1159
+ .ss-w-gxi-flag-lab { font-size: 8px; line-height: 1.05; font-weight: 700; text-align: center; color: var(--ss-w-accent); max-width: 46px; word-break: break-word; }
1160
+ .ss-w-gxi-revnote { font-size: 11px; color: var(--ss-w-faint); }
1137
1161
  /* Wrong-guess trail */
1138
1162
  .ss-w-gxi-wrong { display: flex; flex-wrap: wrap; gap: 6px; }
1139
1163
  .ss-w-gxi-wrong-pill { font-size: 11px; font-weight: 600; padding: 3px 9px; border-radius: 999px; background: color-mix(in srgb, var(--ss-w-wrong) 10%, var(--ss-w-panel)); border: 1px solid var(--ss-w-line); color: var(--ss-w-faint); text-decoration: line-through; }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@sensiblestats/widget-react",
3
- "version": "0.55.0",
3
+ "version": "0.56.0",
4
4
  "description": "Embeddable SensibleStats chat widget for React.",
5
5
  "type": "module",
6
6
  "main": "./dist/index.cjs",