@sensiblestats/widget-react 0.60.6 → 0.61.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
@@ -199,7 +199,8 @@ var STRINGS = {
199
199
  optionsLabel: "Clubs",
200
200
  solved: "Solved!",
201
201
  failed: "Out of guesses",
202
- detail: (n) => `${n} ${n === 1 ? "guess" : "guesses"} \xB7 back tomorrow`
202
+ detail: (n) => `${n} ${n === 1 ? "guess" : "guesses"} \xB7 back tomorrow`,
203
+ theAnswer: "The answer"
203
204
  },
204
205
  dailyQuiz: {
205
206
  questionOf: (i, n) => `Question ${i} of ${n}`,
@@ -494,7 +495,8 @@ var STRINGS = {
494
495
  optionsLabel: "Kul\xFCpler",
495
496
  solved: "Bildin!",
496
497
  failed: "Tahmin hakk\u0131n bitti",
497
- detail: (n) => `${n} tahmin \xB7 yar\u0131n yine gel`
498
+ detail: (n) => `${n} tahmin \xB7 yar\u0131n yine gel`,
499
+ theAnswer: "Do\u011Fru cevap"
498
500
  },
499
501
  dailyQuiz: {
500
502
  questionOf: (i, n) => `Soru ${i} / ${n}`,
@@ -4732,6 +4734,7 @@ import { useState as useState25, useId as useId2 } from "react";
4732
4734
 
4733
4735
  // src/components/games/nationFlags.ts
4734
4736
  var FLAGS = {
4737
+ // UK home nations (subdivision flags)
4735
4738
  england: "\u{1F3F4}\u{E0067}\u{E0062}\u{E0065}\u{E006E}\u{E0067}\u{E007F}",
4736
4739
  scotland: "\u{1F3F4}\u{E0067}\u{E0062}\u{E0073}\u{E0063}\u{E0074}\u{E007F}",
4737
4740
  wales: "\u{1F3F4}\u{E0067}\u{E0062}\u{E0077}\u{E006C}\u{E0073}\u{E007F}",
@@ -4739,6 +4742,7 @@ var FLAGS = {
4739
4742
  "republic of ireland": "\u{1F1EE}\u{1F1EA}",
4740
4743
  ireland: "\u{1F1EE}\u{1F1EA}",
4741
4744
  "united kingdom": "\u{1F1EC}\u{1F1E7}",
4745
+ // Western & Southern Europe
4742
4746
  france: "\u{1F1EB}\u{1F1F7}",
4743
4747
  spain: "\u{1F1EA}\u{1F1F8}",
4744
4748
  portugal: "\u{1F1F5}\u{1F1F9}",
@@ -4748,17 +4752,27 @@ var FLAGS = {
4748
4752
  belgium: "\u{1F1E7}\u{1F1EA}",
4749
4753
  switzerland: "\u{1F1E8}\u{1F1ED}",
4750
4754
  austria: "\u{1F1E6}\u{1F1F9}",
4755
+ luxembourg: "\u{1F1F1}\u{1F1FA}",
4756
+ malta: "\u{1F1F2}\u{1F1F9}",
4757
+ cyprus: "\u{1F1E8}\u{1F1FE}",
4758
+ andorra: "\u{1F1E6}\u{1F1E9}",
4759
+ liechtenstein: "\u{1F1F1}\u{1F1EE}",
4760
+ "san marino": "\u{1F1F8}\u{1F1F2}",
4761
+ monaco: "\u{1F1F2}\u{1F1E8}",
4762
+ // Northern Europe
4751
4763
  denmark: "\u{1F1E9}\u{1F1F0}",
4752
4764
  sweden: "\u{1F1F8}\u{1F1EA}",
4753
4765
  norway: "\u{1F1F3}\u{1F1F4}",
4754
4766
  finland: "\u{1F1EB}\u{1F1EE}",
4755
4767
  iceland: "\u{1F1EE}\u{1F1F8}",
4768
+ // Central & Eastern Europe
4756
4769
  poland: "\u{1F1F5}\u{1F1F1}",
4757
4770
  czechia: "\u{1F1E8}\u{1F1FF}",
4758
4771
  "czech republic": "\u{1F1E8}\u{1F1FF}",
4759
4772
  croatia: "\u{1F1ED}\u{1F1F7}",
4760
4773
  serbia: "\u{1F1F7}\u{1F1F8}",
4761
4774
  "bosnia and herzegovina": "\u{1F1E7}\u{1F1E6}",
4775
+ bosnia: "\u{1F1E7}\u{1F1E6}",
4762
4776
  greece: "\u{1F1EC}\u{1F1F7}",
4763
4777
  romania: "\u{1F1F7}\u{1F1F4}",
4764
4778
  ukraine: "\u{1F1FA}\u{1F1E6}",
@@ -4766,10 +4780,29 @@ var FLAGS = {
4766
4780
  hungary: "\u{1F1ED}\u{1F1FA}",
4767
4781
  slovakia: "\u{1F1F8}\u{1F1F0}",
4768
4782
  slovenia: "\u{1F1F8}\u{1F1EE}",
4783
+ bulgaria: "\u{1F1E7}\u{1F1EC}",
4784
+ lithuania: "\u{1F1F1}\u{1F1F9}",
4785
+ latvia: "\u{1F1F1}\u{1F1FB}",
4786
+ estonia: "\u{1F1EA}\u{1F1EA}",
4787
+ moldova: "\u{1F1F2}\u{1F1E9}",
4788
+ belarus: "\u{1F1E7}\u{1F1FE}",
4789
+ // South-East Europe / Balkans
4769
4790
  turkey: "\u{1F1F9}\u{1F1F7}",
4770
4791
  t\u00FCrkiye: "\u{1F1F9}\u{1F1F7}",
4771
4792
  albania: "\u{1F1E6}\u{1F1F1}",
4772
4793
  "north macedonia": "\u{1F1F2}\u{1F1F0}",
4794
+ kosovo: "\u{1F1FD}\u{1F1F0}",
4795
+ montenegro: "\u{1F1F2}\u{1F1EA}",
4796
+ // Caucasus & Central Asia
4797
+ armenia: "\u{1F1E6}\u{1F1F2}",
4798
+ georgia: "\u{1F1EC}\u{1F1EA}",
4799
+ azerbaijan: "\u{1F1E6}\u{1F1FF}",
4800
+ kazakhstan: "\u{1F1F0}\u{1F1FF}",
4801
+ uzbekistan: "\u{1F1FA}\u{1F1FF}",
4802
+ kyrgyzstan: "\u{1F1F0}\u{1F1EC}",
4803
+ tajikistan: "\u{1F1F9}\u{1F1EF}",
4804
+ turkmenistan: "\u{1F1F9}\u{1F1F2}",
4805
+ // South America
4773
4806
  brazil: "\u{1F1E7}\u{1F1F7}",
4774
4807
  argentina: "\u{1F1E6}\u{1F1F7}",
4775
4808
  uruguay: "\u{1F1FA}\u{1F1FE}",
@@ -4778,32 +4811,125 @@ var FLAGS = {
4778
4811
  peru: "\u{1F1F5}\u{1F1EA}",
4779
4812
  ecuador: "\u{1F1EA}\u{1F1E8}",
4780
4813
  paraguay: "\u{1F1F5}\u{1F1FE}",
4814
+ venezuela: "\u{1F1FB}\u{1F1EA}",
4815
+ bolivia: "\u{1F1E7}\u{1F1F4}",
4816
+ guyana: "\u{1F1EC}\u{1F1FE}",
4817
+ suriname: "\u{1F1F8}\u{1F1F7}",
4818
+ // North & Central America
4781
4819
  mexico: "\u{1F1F2}\u{1F1FD}",
4782
4820
  "united states": "\u{1F1FA}\u{1F1F8}",
4783
4821
  usa: "\u{1F1FA}\u{1F1F8}",
4784
4822
  canada: "\u{1F1E8}\u{1F1E6}",
4823
+ "costa rica": "\u{1F1E8}\u{1F1F7}",
4824
+ panama: "\u{1F1F5}\u{1F1E6}",
4825
+ honduras: "\u{1F1ED}\u{1F1F3}",
4826
+ "el salvador": "\u{1F1F8}\u{1F1FB}",
4827
+ guatemala: "\u{1F1EC}\u{1F1F9}",
4828
+ nicaragua: "\u{1F1F3}\u{1F1EE}",
4829
+ // Caribbean
4785
4830
  jamaica: "\u{1F1EF}\u{1F1F2}",
4831
+ cuba: "\u{1F1E8}\u{1F1FA}",
4832
+ haiti: "\u{1F1ED}\u{1F1F9}",
4833
+ "dominican republic": "\u{1F1E9}\u{1F1F4}",
4834
+ "trinidad and tobago": "\u{1F1F9}\u{1F1F9}",
4835
+ trinidad: "\u{1F1F9}\u{1F1F9}",
4836
+ "cura\xE7ao": "\u{1F1E8}\u{1F1FC}",
4837
+ curacao: "\u{1F1E8}\u{1F1FC}",
4838
+ barbados: "\u{1F1E7}\u{1F1E7}",
4839
+ // West Africa
4786
4840
  nigeria: "\u{1F1F3}\u{1F1EC}",
4787
4841
  ghana: "\u{1F1EC}\u{1F1ED}",
4788
4842
  senegal: "\u{1F1F8}\u{1F1F3}",
4789
4843
  ivorycoast: "\u{1F1E8}\u{1F1EE}",
4790
4844
  "cote d'ivoire": "\u{1F1E8}\u{1F1EE}",
4845
+ "c\xF4te d'ivoire": "\u{1F1E8}\u{1F1EE}",
4791
4846
  "ivory coast": "\u{1F1E8}\u{1F1EE}",
4792
4847
  cameroon: "\u{1F1E8}\u{1F1F2}",
4848
+ mali: "\u{1F1F2}\u{1F1F1}",
4849
+ guinea: "\u{1F1EC}\u{1F1F3}",
4850
+ "guinea-bissau": "\u{1F1EC}\u{1F1FC}",
4851
+ "sierra leone": "\u{1F1F8}\u{1F1F1}",
4852
+ liberia: "\u{1F1F1}\u{1F1F7}",
4853
+ "cape verde": "\u{1F1E8}\u{1F1FB}",
4854
+ "gambia": "\u{1F1EC}\u{1F1F2}",
4855
+ mauritania: "\u{1F1F2}\u{1F1F7}",
4856
+ togo: "\u{1F1F9}\u{1F1EC}",
4857
+ benin: "\u{1F1E7}\u{1F1EF}",
4858
+ "burkina faso": "\u{1F1E7}\u{1F1EB}",
4859
+ niger: "\u{1F1F3}\u{1F1EA}",
4860
+ // Central & East Africa
4861
+ "dr congo": "\u{1F1E8}\u{1F1E9}",
4862
+ "democratic republic of the congo": "\u{1F1E8}\u{1F1E9}",
4863
+ "congo dr": "\u{1F1E8}\u{1F1E9}",
4864
+ "republic of the congo": "\u{1F1E8}\u{1F1EC}",
4865
+ congo: "\u{1F1E8}\u{1F1EC}",
4866
+ "congo republic": "\u{1F1E8}\u{1F1EC}",
4867
+ "congo-brazzaville": "\u{1F1E8}\u{1F1EC}",
4868
+ "central african republic": "\u{1F1E8}\u{1F1EB}",
4869
+ gabon: "\u{1F1EC}\u{1F1E6}",
4870
+ "equatorial guinea": "\u{1F1EC}\u{1F1F6}",
4871
+ "south africa": "\u{1F1FF}\u{1F1E6}",
4872
+ angola: "\u{1F1E6}\u{1F1F4}",
4873
+ namibia: "\u{1F1F3}\u{1F1E6}",
4874
+ botswana: "\u{1F1E7}\u{1F1FC}",
4875
+ zimbabwe: "\u{1F1FF}\u{1F1FC}",
4876
+ zambia: "\u{1F1FF}\u{1F1F2}",
4877
+ malawi: "\u{1F1F2}\u{1F1FC}",
4878
+ mozambique: "\u{1F1F2}\u{1F1FF}",
4879
+ tanzania: "\u{1F1F9}\u{1F1FF}",
4880
+ kenya: "\u{1F1F0}\u{1F1EA}",
4881
+ uganda: "\u{1F1FA}\u{1F1EC}",
4882
+ rwanda: "\u{1F1F7}\u{1F1FC}",
4883
+ ethiopia: "\u{1F1EA}\u{1F1F9}",
4884
+ eritrea: "\u{1F1EA}\u{1F1F7}",
4885
+ djibouti: "\u{1F1E9}\u{1F1EF}",
4886
+ somalia: "\u{1F1F8}\u{1F1F4}",
4887
+ sudan: "\u{1F1F8}\u{1F1E9}",
4888
+ "south sudan": "\u{1F1F8}\u{1F1F8}",
4889
+ chad: "\u{1F1F9}\u{1F1E9}",
4890
+ lesotho: "\u{1F1F1}\u{1F1F8}",
4891
+ eswatini: "\u{1F1F8}\u{1F1FF}",
4892
+ swaziland: "\u{1F1F8}\u{1F1FF}",
4893
+ madagascar: "\u{1F1F2}\u{1F1EC}",
4894
+ mauritius: "\u{1F1F2}\u{1F1FA}",
4895
+ comoros: "\u{1F1F0}\u{1F1F2}",
4896
+ seychelles: "\u{1F1F8}\u{1F1E8}",
4897
+ // North Africa
4793
4898
  egypt: "\u{1F1EA}\u{1F1EC}",
4794
4899
  morocco: "\u{1F1F2}\u{1F1E6}",
4795
4900
  algeria: "\u{1F1E9}\u{1F1FF}",
4796
4901
  tunisia: "\u{1F1F9}\u{1F1F3}",
4797
- mali: "\u{1F1F2}\u{1F1F1}",
4798
- "south africa": "\u{1F1FF}\u{1F1E6}",
4799
- "dr congo": "\u{1F1E8}\u{1F1E9}",
4902
+ // Middle East
4903
+ "saudi arabia": "\u{1F1F8}\u{1F1E6}",
4904
+ iran: "\u{1F1EE}\u{1F1F7}",
4905
+ iraq: "\u{1F1EE}\u{1F1F6}",
4906
+ lebanon: "\u{1F1F1}\u{1F1E7}",
4907
+ syria: "\u{1F1F8}\u{1F1FE}",
4908
+ jordan: "\u{1F1EF}\u{1F1F4}",
4909
+ qatar: "\u{1F1F6}\u{1F1E6}",
4910
+ "united arab emirates": "\u{1F1E6}\u{1F1EA}",
4911
+ uae: "\u{1F1E6}\u{1F1EA}",
4912
+ kuwait: "\u{1F1F0}\u{1F1FC}",
4913
+ bahrain: "\u{1F1E7}\u{1F1ED}",
4914
+ oman: "\u{1F1F4}\u{1F1F2}",
4915
+ yemen: "\u{1F1FE}\u{1F1EA}",
4916
+ israel: "\u{1F1EE}\u{1F1F1}",
4917
+ palestine: "\u{1F1F5}\u{1F1F8}",
4918
+ // East & South-East Asia
4800
4919
  japan: "\u{1F1EF}\u{1F1F5}",
4801
4920
  "south korea": "\u{1F1F0}\u{1F1F7}",
4802
4921
  korea: "\u{1F1F0}\u{1F1F7}",
4922
+ china: "\u{1F1E8}\u{1F1F3}",
4923
+ india: "\u{1F1EE}\u{1F1F3}",
4924
+ thailand: "\u{1F1F9}\u{1F1ED}",
4925
+ indonesia: "\u{1F1EE}\u{1F1E9}",
4926
+ malaysia: "\u{1F1F2}\u{1F1FE}",
4927
+ philippines: "\u{1F1F5}\u{1F1ED}",
4928
+ vietnam: "\u{1F1FB}\u{1F1F3}",
4929
+ // Oceania
4803
4930
  australia: "\u{1F1E6}\u{1F1FA}",
4804
- "saudi arabia": "\u{1F1F8}\u{1F1E6}",
4805
- iran: "\u{1F1EE}\u{1F1F7}",
4806
- "new zealand": "\u{1F1F3}\u{1F1FF}"
4931
+ "new zealand": "\u{1F1F3}\u{1F1FF}",
4932
+ fiji: "\u{1F1EB}\u{1F1EF}"
4807
4933
  };
4808
4934
  function nationalityFlag(nationality) {
4809
4935
  if (!nationality) return "\u{1F3F3}\uFE0F";
@@ -5511,6 +5637,23 @@ function CriterionIcon({ kind }) {
5511
5637
  return /* @__PURE__ */ jsx71(IconFlag, {});
5512
5638
  }
5513
5639
  }
5640
+ function HeaderVisual({ label, key: iKey, meta }) {
5641
+ if (!meta) {
5642
+ return /* @__PURE__ */ jsx71(CriterionIcon, { kind: criterionIconKind(label, iKey) });
5643
+ }
5644
+ switch (meta.kind) {
5645
+ case "club":
5646
+ return /* @__PURE__ */ jsx71(CrestShield, { src: meta.imageUrl, name: label, size: 24 });
5647
+ case "coach":
5648
+ return /* @__PURE__ */ jsx71(PlayerAvatar, { name: label, imagePath: meta.imageUrl, className: "ss-g-btg-coach-av" });
5649
+ case "country":
5650
+ return /* @__PURE__ */ jsx71("span", { className: "ss-g-btg-hdr-flag", "aria-hidden": "true", children: nationalityFlag(meta.country ?? label) });
5651
+ case "position":
5652
+ return /* @__PURE__ */ jsx71(Fragment14, {});
5653
+ default:
5654
+ return /* @__PURE__ */ jsx71(CriterionIcon, { kind: criterionIconKind(label, iKey) });
5655
+ }
5656
+ }
5514
5657
  function parseClientState4(json) {
5515
5658
  if (!json) return null;
5516
5659
  try {
@@ -5589,7 +5732,7 @@ function SearchSheet({
5589
5732
  options: filtered.map((p) => ({
5590
5733
  key: p.id,
5591
5734
  content: /* @__PURE__ */ jsxs59(Fragment14, { children: [
5592
- /* @__PURE__ */ jsx71(PlayerAvatar, { name: p.name, className: "ss-g-opt-av" }),
5735
+ /* @__PURE__ */ jsx71(PlayerAvatar, { name: p.name, imagePath: p.imagePath, className: "ss-g-opt-av" }),
5593
5736
  /* @__PURE__ */ jsx71("span", { className: "ss-g-btg-result-name", children: p.name }),
5594
5737
  /* @__PURE__ */ jsx71("span", { className: "ss-g-btg-result-plus", "aria-hidden": "true", children: /* @__PURE__ */ jsx71(IconPlus, { size: 18 }) })
5595
5738
  ] })
@@ -5668,17 +5811,25 @@ function BeatTheGridGame({
5668
5811
  role: "grid",
5669
5812
  children: [
5670
5813
  /* @__PURE__ */ jsx71("div", { className: "ss-g-btg-corner" }),
5671
- cols.map((col, colIdx) => /* @__PURE__ */ jsxs59("div", { className: "ss-g-btg-colhdr", children: [
5672
- /* @__PURE__ */ jsx71(CriterionIcon, { kind: criterionIconKind(col, config.colsI18n?.[colIdx]?.key) }),
5673
- /* @__PURE__ */ jsx71("span", { children: col })
5674
- ] }, col)),
5814
+ cols.map((col, colIdx) => {
5815
+ const colMeta = config.colsMeta?.[colIdx];
5816
+ return /* @__PURE__ */ jsxs59("div", { className: "ss-g-btg-colhdr", "data-meta": colMeta ? "true" : void 0, children: [
5817
+ /* @__PURE__ */ jsx71(HeaderVisual, { label: col, meta: colMeta }, config.colsI18n?.[colIdx]?.key),
5818
+ /* @__PURE__ */ jsx71("span", { children: col })
5819
+ ] }, col);
5820
+ }),
5675
5821
  rows.map((rowLabel, rowIdx) => {
5822
+ const rowMeta = config.rowsMeta?.[rowIdx];
5676
5823
  const abbr = rowAbbrev(rowLabel, s.rowAbbrev, config.rowsI18n?.[rowIdx]?.key);
5824
+ const rowHeaderContent = rowMeta ? /* @__PURE__ */ jsxs59(Fragment14, { children: [
5825
+ /* @__PURE__ */ jsx71(HeaderVisual, { label: rowLabel, meta: rowMeta }, config.rowsI18n?.[rowIdx]?.key),
5826
+ /* @__PURE__ */ jsx71("span", { children: rowLabel })
5827
+ ] }) : abbr === rowLabel ? /* @__PURE__ */ jsx71("span", { children: rowLabel }) : /* @__PURE__ */ jsxs59(Fragment14, { children: [
5828
+ /* @__PURE__ */ jsx71("span", { "aria-hidden": "true", children: abbr }),
5829
+ /* @__PURE__ */ jsx71("span", { className: "ss-g-sr", children: rowLabel })
5830
+ ] });
5677
5831
  return /* @__PURE__ */ jsxs59(React.Fragment, { children: [
5678
- /* @__PURE__ */ jsx71("div", { className: "ss-g-btg-rowhdr", children: abbr === rowLabel ? /* @__PURE__ */ jsx71("span", { children: rowLabel }) : /* @__PURE__ */ jsxs59(Fragment14, { children: [
5679
- /* @__PURE__ */ jsx71("span", { "aria-hidden": "true", children: abbr }),
5680
- /* @__PURE__ */ jsx71("span", { className: "ss-g-sr", children: rowLabel })
5681
- ] }) }),
5832
+ /* @__PURE__ */ jsx71("div", { className: "ss-g-btg-rowhdr", "data-meta": rowMeta ? "true" : void 0, children: rowHeaderContent }),
5682
5833
  cols.map((colLabel, colIdx) => {
5683
5834
  const filled = findCellResult(filledCells, rowIdx, colIdx);
5684
5835
  const isActive = activeCell?.row === rowIdx && activeCell?.col === colIdx;
@@ -5705,7 +5856,17 @@ function BeatTheGridGame({
5705
5856
  }
5706
5857
  ),
5707
5858
  /* @__PURE__ */ jsx71("span", { className: "ss-g-btg-rarity", children: filled.rarityScore }),
5708
- /* @__PURE__ */ jsx71(Silhouette, { size: 40 }),
5859
+ (() => {
5860
+ const entry = playerPool.find((p) => p.id === filled.playerId);
5861
+ return /* @__PURE__ */ jsx71(
5862
+ PlayerAvatar,
5863
+ {
5864
+ name: entry?.name ?? "",
5865
+ imagePath: entry?.imagePath,
5866
+ className: "ss-g-btg-av"
5867
+ }
5868
+ );
5869
+ })(),
5709
5870
  /* @__PURE__ */ jsx71("span", { className: "ss-g-btg-name", children: shortName(playerPool.find((p) => p.id === filled.playerId)?.name) })
5710
5871
  ] }) : /* @__PURE__ */ jsx71("span", { className: "ss-g-btg-plus", "aria-hidden": "true", children: /* @__PURE__ */ jsx71(IconPlus, { size: 22 }) })
5711
5872
  },
@@ -5850,6 +6011,10 @@ function GuessTheXiGame({
5850
6011
  (clientState?.earnedReveals ?? []).forEach((r) => {
5851
6012
  if (r.slot && r.type !== "position") nameBySlot.set(r.slot, r.value);
5852
6013
  });
6014
+ const lineupBySlot = /* @__PURE__ */ new Map();
6015
+ (clientState?.lineup ?? []).forEach((e) => {
6016
+ lineupBySlot.set(e.slot, { name: e.name, imagePath: e.imagePath });
6017
+ });
5853
6018
  const filtered = config && !isOver ? config.teamPool.filter(
5854
6019
  (tm) => !guessedTeamIds.has(tm.teamId) && tm.teamName.toLowerCase().includes(query.toLowerCase())
5855
6020
  ) : [];
@@ -5882,7 +6047,21 @@ function GuessTheXiGame({
5882
6047
  /* @__PURE__ */ jsx73("div", { className: "ss-g-gxi-rows", children: rows.map((row, r) => /* @__PURE__ */ jsx73("div", { className: "ss-g-gxi-row", children: row.map((pos, c) => {
5883
6048
  const posLabel = pos.slot ? posBySlot.get(pos.slot) ?? "" : "";
5884
6049
  const name = pos.slot ? nameBySlot.get(pos.slot) : void 0;
6050
+ const lineupEntry = pos.slot ? lineupBySlot.get(pos.slot) : void 0;
5885
6051
  const flag = nationalityFlag(pos.nationality);
6052
+ if (lineupEntry) {
6053
+ return /* @__PURE__ */ jsxs61("div", { className: "ss-g-gxi-node", "data-revealed": "true", children: [
6054
+ /* @__PURE__ */ jsx73(
6055
+ PlayerAvatar,
6056
+ {
6057
+ name: lineupEntry.name,
6058
+ imagePath: lineupEntry.imagePath,
6059
+ className: "ss-g-gxi-disc ss-g-gxi-disc--photo"
6060
+ }
6061
+ ),
6062
+ /* @__PURE__ */ jsx73("span", { className: "ss-g-gxi-pos ss-g-gxi-pos--name", children: splitName(lineupEntry.name).last })
6063
+ ] }, `${pos.slot}-${c}`);
6064
+ }
5886
6065
  return /* @__PURE__ */ jsxs61("div", { className: "ss-g-gxi-node", "data-revealed": name ? "true" : void 0, children: [
5887
6066
  /* @__PURE__ */ jsx73(
5888
6067
  "span",
@@ -5901,22 +6080,32 @@ function GuessTheXiGame({
5901
6080
  ] }),
5902
6081
  !isOver && wrongGuesses.length > 0 && /* @__PURE__ */ jsxs61("div", { className: "ss-g-gxi-wrong", children: [
5903
6082
  /* @__PURE__ */ jsx73("span", { className: "ss-g-gxi-wrong-l", children: t.notThem }),
5904
- wrongGuesses.map((g) => /* @__PURE__ */ jsxs61("span", { className: "ss-g-gxi-wrong-chip", children: [
5905
- /* @__PURE__ */ jsx73(CrestShield, { name: teamName(g.teamId), size: 18 }),
5906
- /* @__PURE__ */ jsx73("s", { children: teamName(g.teamId) })
5907
- ] }, g.teamId))
6083
+ wrongGuesses.map((g) => {
6084
+ const crestUrl = config?.teamPool.find((tm) => tm.teamId === g.teamId)?.crestUrl;
6085
+ return /* @__PURE__ */ jsxs61("span", { className: "ss-g-gxi-wrong-chip", children: [
6086
+ /* @__PURE__ */ jsx73(CrestShield, { src: crestUrl, name: teamName(g.teamId), size: 18 }),
6087
+ /* @__PURE__ */ jsx73("s", { children: teamName(g.teamId) })
6088
+ ] }, g.teamId);
6089
+ })
5908
6090
  ] }),
5909
- isOver && /* @__PURE__ */ jsx73(
5910
- ResultCard,
5911
- {
5912
- tone: solved ? "win" : failed ? "lose" : "neutral",
5913
- title: solved ? t.solved : failed ? t.failed : ui.games.alreadyPlayedTitle,
5914
- score: clientState?.score ?? result?.score ?? 0,
5915
- detail: clientState ? t.detail(clientState.guessesUsed) : void 0,
5916
- onBack,
5917
- ui
5918
- }
5919
- )
6091
+ isOver && /* @__PURE__ */ jsxs61(Fragment16, { children: [
6092
+ /* @__PURE__ */ jsx73(
6093
+ ResultCard,
6094
+ {
6095
+ tone: solved ? "win" : failed ? "lose" : "neutral",
6096
+ title: solved ? t.solved : failed ? t.failed : ui.games.alreadyPlayedTitle,
6097
+ score: clientState?.score ?? result?.score ?? 0,
6098
+ detail: clientState ? t.detail(clientState.guessesUsed) : void 0,
6099
+ onBack,
6100
+ ui
6101
+ }
6102
+ ),
6103
+ (solved || failed) && clientState?.answer && /* @__PURE__ */ jsxs61("div", { className: "ss-g-gxi-answer", "data-testid": "gxi-answer-reveal", children: [
6104
+ /* @__PURE__ */ jsx73("span", { className: "ss-g-gxi-answer-label", children: t.theAnswer }),
6105
+ /* @__PURE__ */ jsx73(CrestShield, { src: clientState.answer.crestUrl, name: clientState.answer.teamName, size: 32 }),
6106
+ /* @__PURE__ */ jsx73("span", { className: "ss-g-gxi-answer-name", children: clientState.answer.teamName })
6107
+ ] })
6108
+ ] })
5920
6109
  ] }),
5921
6110
  !isOver && /* @__PURE__ */ jsxs61(FooterBar, { children: [
5922
6111
  query.length > 0 && filtered.length > 0 && /* @__PURE__ */ jsx73(
@@ -5926,7 +6115,7 @@ function GuessTheXiGame({
5926
6115
  options: filtered.map((tm) => ({
5927
6116
  key: tm.teamId,
5928
6117
  content: /* @__PURE__ */ jsxs61(Fragment16, { children: [
5929
- /* @__PURE__ */ jsx73(CrestShield, { name: tm.teamName, size: 28 }),
6118
+ /* @__PURE__ */ jsx73(CrestShield, { src: tm.crestUrl, name: tm.teamName, size: 28 }),
5930
6119
  /* @__PURE__ */ jsx73("span", { children: tm.teamName })
5931
6120
  ] })
5932
6121
  })),
@@ -6074,6 +6263,8 @@ function DailyQuizGame({
6074
6263
  /* @__PURE__ */ jsx74("h3", { className: "ss-g-dq-stem", children: current.stem }),
6075
6264
  /* @__PURE__ */ jsx74("div", { className: "ss-g-dq-opts", children: current.options.map((opt, optIdx) => {
6076
6265
  const selected = optIdx === selectedIdx;
6266
+ const imagePath = current.optionImagePaths?.[optIdx] ?? void 0;
6267
+ const playerName = opt;
6077
6268
  return /* @__PURE__ */ jsxs62(
6078
6269
  "button",
6079
6270
  {
@@ -6083,6 +6274,7 @@ function DailyQuizGame({
6083
6274
  disabled: submitting,
6084
6275
  onClick: () => handleSelect(current.index, optIdx),
6085
6276
  children: [
6277
+ current.optionImagePaths && /* @__PURE__ */ jsx74(PlayerAvatar, { name: playerName, imagePath, className: "ss-g-dq-opt-av" }),
6086
6278
  /* @__PURE__ */ jsx74("span", { className: "ss-g-dq-badge", "aria-hidden": "true", children: selected ? /* @__PURE__ */ jsx74(IconCheck, {}) : String.fromCharCode(65 + optIdx) }),
6087
6279
  /* @__PURE__ */ jsx74(OptionName, { text: opt })
6088
6280
  ]
@@ -8406,6 +8598,14 @@ var WIDGET_CSS = `.ss-w-root { all: revert; }
8406
8598
  .ss-g-gxi-wrong { display: flex; flex-wrap: wrap; align-items: center; gap: 8px; }
8407
8599
  .ss-g-gxi-wrong-l { font-size: 12px; color: var(--ss-g-muted); }
8408
8600
  .ss-g-gxi-wrong-chip { display: inline-flex; align-items: center; gap: 6px; padding: 4px 10px 4px 6px; border-radius: 999px; background: var(--ss-g-surface); border: 1px solid var(--ss-g-line); font-size: 13px; color: var(--ss-g-muted); }
8601
+ /* u407: lineup photo \u2014 fills the 44px disc like the flag does */
8602
+ .ss-g-gxi-disc--photo { overflow: hidden; border: 2px solid var(--ss-w-accent); }
8603
+ .ss-g-gxi-disc--photo img { width: 100%; height: 100%; object-fit: cover; }
8604
+ .ss-g-gxi-disc--photo .ss-w-av-initials { font-family: var(--ss-g-font-body); font-size: 11px; font-weight: 800; color: var(--ss-g-pitch-ink); }
8605
+ /* u407: answer reveal \u2014 prominent row using theme tokens, works on dark/navy/light surfaces */
8606
+ .ss-g-gxi-answer { display: flex; align-items: center; gap: 10px; margin-top: 10px; padding: 12px 16px; border-radius: 14px; background: var(--ss-g-warm); border: 1.5px solid var(--ss-g-line-warm); }
8607
+ .ss-g-gxi-answer-label { font-size: 11px; font-weight: 700; letter-spacing: .1em; text-transform: uppercase; color: var(--ss-g-muted); flex: none; }
8608
+ .ss-g-gxi-answer-name { font-family: var(--ss-g-font-display); font-weight: 800; font-size: 20px; text-transform: uppercase; color: var(--ss-g-ink); min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
8409
8609
 
8410
8610
  /* ---- Daily Quiz (u393) ---- */
8411
8611
  .ss-g-dq-stem { font-family: var(--ss-g-font-display); font-weight: 700; font-size: 30px; line-height: 1.05; overflow-wrap: anywhere; }
@@ -8430,6 +8630,10 @@ var WIDGET_CSS = `.ss-w-root { all: revert; }
8430
8630
  .ss-g-dq-rq-opt--correct { background: var(--ss-g-correct); color: var(--ss-g-on-correct); }
8431
8631
  .ss-g-dq-rq-opt--wrong { background: var(--ss-g-wrong); color: var(--ss-g-on-correct); }
8432
8632
  .ss-g-dq-why { font-size: 13px; color: var(--ss-g-ink-2); }
8633
+ /* u407: player avatar in quiz option \u2014 centered in top half, badge at top-left unaffected */
8634
+ .ss-g-dq-opt-av { position: absolute; top: 7px; right: 10px; width: 40px; height: 40px; border-radius: 50%; overflow: hidden; background: var(--ss-g-raised); display: grid; place-items: center; color: var(--ss-g-muted); font-size: 13px; font-weight: 700; flex: none; }
8635
+ .ss-g-dq-opt-av img { width: 100%; height: 100%; object-fit: cover; }
8636
+ .ss-g-dq-opt-av .ss-w-av-initials { font-size: 11px; }
8433
8637
 
8434
8638
  /* ---- Career Path (u393) ---- */
8435
8639
  .ss-g-cp-card { display: flex; align-items: center; gap: 12px; padding: 12px; border-radius: 16px; background: var(--ss-g-warm); border: 1px solid var(--ss-g-line-warm); }
@@ -8506,9 +8710,11 @@ var WIDGET_CSS = `.ss-w-root { all: revert; }
8506
8710
  /* While the search sheet is pinned below, the grid shrinks its rows to share the body with it
8507
8711
  instead of pushing the bottom row under the sheet. */
8508
8712
  .ss-g-btg-grid--fit { flex: 0 1 auto; min-height: 0; }
8509
- .ss-g-btg-colhdr { min-height: 0; border-radius: 12px; background: var(--ss-g-surface); border: 1px solid var(--ss-g-line); display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 4px; text-align: center; padding: 0 4px; font-size: 12px; font-weight: 700; line-height: 1.1; min-width: 0; overflow-wrap: anywhere; }
8713
+ .ss-g-btg-colhdr { min-height: 0; border-radius: 12px; background: var(--ss-g-surface); border: 1px solid var(--ss-g-line); display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 4px; text-align: center; padding: 0 4px; font-size: 12px; font-weight: 700; line-height: 1.1; min-width: 0; overflow-wrap: anywhere; overflow: hidden; }
8714
+ .ss-g-btg-colhdr[data-meta] { overflow-wrap: normal; word-break: normal; hyphens: none; font-size: 11px; letter-spacing: 0; }
8510
8715
  .ss-g-btg-colhdr svg { color: var(--ss-w-accent); flex: none; }
8511
- .ss-g-btg-rowhdr { border-radius: 12px; background: var(--ss-g-surface); border: 1px solid var(--ss-g-line); display: grid; place-items: center; font-family: var(--ss-g-font-display); font-weight: 800; font-size: 18px; letter-spacing: .04em; text-transform: uppercase; overflow-wrap: anywhere; text-align: center; }
8716
+ .ss-g-btg-rowhdr { border-radius: 12px; background: var(--ss-g-surface); border: 1px solid var(--ss-g-line); display: grid; place-items: center; font-family: var(--ss-g-font-display); font-weight: 800; font-size: 18px; letter-spacing: .04em; text-transform: uppercase; overflow-wrap: anywhere; text-align: center; overflow: hidden; }
8717
+ .ss-g-btg-rowhdr[data-meta] { font-size: 10px; font-family: var(--ss-g-font-body); font-weight: 700; letter-spacing: -0.01em; text-transform: none; word-break: normal; overflow-wrap: normal; hyphens: none; line-height: 1.25; padding: 0 2px; }
8512
8718
  .ss-g-btg-cell { position: relative; min-height: 0; min-width: 0; border-radius: 12px; border: 1.5px dashed var(--ss-g-strong-line); background: transparent; color: var(--ss-g-muted); display: flex; flex-direction: column; align-items: center; justify-content: center; overflow: hidden; cursor: pointer; font: inherit; padding: 0; }
8513
8719
  .ss-g-btg-cell:disabled { cursor: default; }
8514
8720
  .ss-g-btg-cell[data-state="active"] { border: 2px solid var(--ss-w-accent); background: var(--ss-g-warm); color: var(--ss-w-accent); }
@@ -8536,6 +8742,17 @@ var WIDGET_CSS = `.ss-w-root { all: revert; }
8536
8742
  .ss-g-btg-sheet .ss-g-opts { max-height: 160px; }
8537
8743
  .ss-g-btg-result-name { flex: 1; min-width: 0; font-weight: 700; font-size: 15px; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
8538
8744
  .ss-g-btg-result-plus { color: var(--ss-w-accent); display: flex; }
8745
+ /* u407: cell avatar replaces Silhouette */
8746
+ .ss-g-btg-av { width: 38px; height: 38px; flex: none; border-radius: 50%; overflow: hidden; background: var(--ss-g-raised); display: grid; place-items: center; color: var(--ss-g-muted); font-size: 12px; font-weight: 700; }
8747
+ .ss-g-btg-av img { width: 100%; height: 100%; object-fit: cover; }
8748
+ .ss-g-btg-av .ss-w-av-initials { font-size: 12px; }
8749
+ /* u407: coach photo in row/col header */
8750
+ .ss-g-btg-coach-av { width: 28px; height: 28px; flex: none; border-radius: 50%; overflow: hidden; background: var(--ss-g-raised); display: grid; place-items: center; color: var(--ss-g-muted); font-size: 10px; font-weight: 700; }
8751
+ .ss-g-btg-coach-av img { width: 100%; height: 100%; object-fit: cover; }
8752
+ /* u407: country flag emoji in header \u2014 sized to match other header icons */
8753
+ .ss-g-btg-hdr-flag { font-size: 20px; line-height: 1; flex: none; }
8754
+ /* u407: club crest in col/row header */
8755
+ .ss-g-btg-colhdr .ss-g-crest, .ss-g-btg-rowhdr .ss-g-crest { width: 28px; height: 28px; flex: none; }
8539
8756
 
8540
8757
  /* \u2500\u2500 Starting XI (u393) \u2500\u2500 */
8541
8758
  .ss-g-xi-pitch { position: relative; flex: none; height: 400px; border-radius: 18px; overflow: hidden; background: repeating-linear-gradient(180deg, var(--ss-g-pitch) 0 40px, color-mix(in srgb, var(--ss-g-pitch) 88%, var(--ss-g-pitch-mark)) 40px 80px); border: 1px solid var(--ss-g-pitch-line); }