Commit graph

157 commits

Author SHA1 Message Date
682d4021e0 data: update 24/06/2026 08:22 COLxCOD 0x1 2026-06-24 08:22:13 -03:00
a9df4ca5eb data: update 23/06/2026 22:00 PANxCRO 0x1 2026-06-23 22:00:25 -03:00
f226558d7f data: update 23/06/2026 19:09 ENGxGHN 0x0 2026-06-23 19:09:52 -03:00
bff7b0312d data: update 23/06/2026 16:50 JORxUZB 1x2 PORxUZB 5x0 2026-06-23 16:50:24 -03:00
3307d86372 data: update 22/06/2026 23:05 FRAxIRQ 3x0 NORxSEN 3x2 2026-06-22 23:05:15 -03:00
c33fc44e7b data: update 22/06/2026 16:07 ARGxAUT 2x0 2026-06-22 16:07:12 -03:00
274a12f1aa data: update 22/06/2026 00:28 BELxIRN 0x0 URUxCPV 2x2 NZLxEGY 1x3 2026-06-22 00:28:20 -03:00
17dca96755 data: update 21/06/2026 17:00 ESPxKSA 4x0 2026-06-21 17:00:52 -03:00
900e3b0b51 data: update 21/06/2026 11:40 TUNxJPN 0x4 ECUxCUW 0x0 2026-06-21 11:40:37 -03:00
70f872c5b6 data: update 20/06/2026 19:31 GERxCIV 2x1 2026-06-20 19:30:19 -03:00
c5f8c68031 data: update 20/06/2026 19:26 NEDxSWE 5x1 2026-06-20 19:27:05 -03:00
459c183823 data: update 20/06/2026 12:05 TURxPAR 0x1 2026-06-20 12:06:03 -03:00
26265b0975 data: update 19/06/2026 23:40 BRAxHAI 3x0 2026-06-19 23:40:59 -03:00
14f98a6f9c docs: log daily refresh 19/06/2026 2026-06-19 21:12:02 -03:00
f92e384431 data: update 19/06/2026 — 2 jogos
19:00 USAxAUS 2x0
22:00 SCOxMAR 0x1
2026-06-19 21:11:57 -03:00
e4d7a13301 docs: sync project memory with leader-card carousel 2026-06-19 10:04:02 -03:00
71f7490e0f feat(stats): rotate tied teams in leader cards + new metric cards
Leader cards (Best attack/defense, Most clean sheets) now rotate through every
team tied on the headline metric instead of showing only the top one, and three
new cards are added: Most wins, Most goals conceded, Best goal difference.

- group by the metric value alone; order within the group by existing tiebreakers
- auto-advance (3.5s), pause on hover/focus, off under prefers-reduced-motion
- discrete edge arrows with a full-height side click strip; wrap-around
- dots indicator up to 8 tied teams, else an i/n counter; single team = plain card
- bump APP_VERSION to v1.0.2
2026-06-19 10:03:51 -03:00
35b55a4c78 docs: log daily refresh 19/06/2026 2026-06-19 00:01:00 -03:00
8e82b764ce data: update 19/06/2026 01:00 MEXxKOR 1x0 2026-06-19 00:01:00 -03:00
6e77fa6a57 data: update 18/06/2026 21:05 CANxCAT 6x0 2026-06-18 21:05:37 -03:00
e7c92eacef docs: drop DATA_VERSION from workflow and project memory 2026-06-18 18:25:50 -03:00
fd7d644a66 fix(data): replace DATA_VERSION cache-buster with minute-rounded timestamp 2026-06-18 18:25:49 -03:00
c90e7ba42b docs: log daily refresh 18/06/2026 2026-06-18 18:06:04 -03:00
412cca8a59 data: update 18/06/2026 19:00 SUIxBIH 4x1 2026-06-18 18:06:04 -03:00
62d0f7a99d docs: log daily refresh 18/06/2026 2026-06-18 15:08:06 -03:00
7747a1c562 data: update 18/06/2026 16:00 CZExRSA 1x1 2026-06-18 15:08:06 -03:00
ca06816bc9 fix: decressed pool interval 90 to 60 seconds 2026-06-18 14:25:59 -03:00
d8e7959bcc docs: refactor project memory and documentation structure 2026-06-18 12:28:11 -03:00
51778431cf data: update 18/06/2026 11:56 UZBxCOL 1x3 2026-06-18 11:56:46 -03:00
6a4fae8283 data: update 17/06/2026 22:05 GANxPAN 1x0 2026-06-17 22:05:39 -03:00
18004fb970 data: update 17/06/2026 19:07 ENGxCRO 4x2 2026-06-17 19:08:06 -03:00
f349df0057 Merge branch 'master' of https://github.com/LucasKalil-Programador/world-2026-hub 2026-06-17 17:06:24 -03:00
592f14504e data: update 17/06/2026 17:02 AUSxJOR 3x1 & PORxCON 1x1 2026-06-17 17:06:11 -03:00
5f10ebeea7 data: update 17/06/2026 17:02 AUSxJOR 3x1 & PORxCON 1x1 2026-06-17 17:03:18 -03:00
d3edfce2f2 docs: document APP_VERSION management pattern
- Single source of truth: assets/js/i18n.js line 9
- Document when to bump (after notable changes/deploys)
- Document how to bump (one-liner, semantic commit)
- Explain rationale (explicit versioning, audit trail)
2026-06-17 11:45:44 -03:00
6f67acb43f refactor(footer): version-managed app display
- Add APP_VERSION constant for easy version bumping
- Update EN/PT footer to show version instead of JSON reference
- Simplifies footer maintenance: bump one line in i18n.js
2026-06-17 11:41:15 -03:00
e0eef678b3 docs: log stats sub-nav polish (edge fades + spy-suppress)
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-17 11:26:05 -03:00
9c62cbd7c1 fix(stats): sub-nav edge fades + scrollspy jump on chip click
- Edge fades like the header tabs: chips moved into an inner scroll track so
  the fade mask only affects the chips, leaving the pill background/rounded
  ends crisp. updateSubnavFades toggles fade-left/right from the track's
  overflow (on track scroll, resize, setActiveChip, init).
- Scrollspy no longer jumps when a chip is clicked: the page-scroll spy is
  suppressed for the duration of the programmatic smooth-scroll (700ms; 0 under
  reduced-motion), so the clicked chip stays active instead of flipping back to
  the old section mid-animation and forward again.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-17 11:26:05 -03:00
941a519891 merge: stats final screen — A-F + release polish (Stage J round 1)
Brings the post-Cup Stats screen to master: degradation engine + fault-tolerant
loadData, sticky scrollspy sub-nav, verdict hero + goals-by-round chart, final
ranking 1-48, favorite-row highlight, team/match record cards, format-48 debuts
band, and the team comparator. Stage E (in-tab archive) skipped; data layers
G/H/I + a 2nd polish remain (see .agents/TODO.md).

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-17 11:10:51 -03:00
992d2d1c26 docs: stage J round 1 — release polish audit + README stats section
a11y/responsive/i18n audit over A-F passed clean (no code fixes); added a
Stats section to the README; restructured TODO so G/H/I + a second polish
(J round 2) are queued for the future.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-17 11:10:18 -03:00
95f9d48706 docs: log stats screen Stage F (team comparator)
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-17 10:58:25 -03:00
b12110b2a5 feat(stats): team comparator with diverging bars (Stage F)
- New Comparator sub-nav section (available once >=1 match played). Two team
  selects (all 48, alphabetical), defaulting to the top-2 ranked teams; the
  choice survives langchange (module-level cmpA/cmpB).
- Diverging mirrored bars: A grows left from the centre metric label, B right;
  each row scales to max(a,b) so the longer bar is the higher value, and the
  higher side's number is gold. Metrics P/W/GF/GA/CS/Pts (all non-negative).
  cmp-grow scaleX animation from the centre edge; off under reduced-motion.
- On select change only the bars panel re-renders (keeps focus, replays the
  animation).
- Players side intentionally NOT shipped: a disabled toggle would be a dead
  control (violates the graceful-degradation rule). The Teams/Players toggle
  arrives in Stage H with players.json.
- i18n comparatorTitle/cmpTeamA/cmpTeamB (EN/PT); CSS for the comparator.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-17 10:58:24 -03:00
489a44fc2d docs: record Stage E decision — skip in-tab archive (Option B)
User chose to keep the 'See all matches -> Matches' link instead of building
an in-tab results archive; the Matches tab already covers browsing. No code
change; the archive SECTIONS slot stays dormant (available: false).

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-17 01:00:17 -03:00
df0958d88a docs: log stats screen Stage D (Records + format-48 debuts)
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-17 00:34:00 -03:00
e69ea7bd4d feat(stats): Records section + format-48 debuts band (Stage D)
- New Records sub-nav section (always available): match-record cards plus the
  format-48 debuts band. Sub-nav now Overview / Teams / Records.
- Moved the biggest-win card out of Teams into Records (it is a match record);
  Teams keeps team-level cards (win streak, champion path). Records shows
  biggest win + highest-scoring match (both -> openMatchModal), with the
  high-score card deduped when it is the same match as the biggest win.
- computeRecords gains highestScoringMatch. New recordsSectionHTML /
  highScoreCardHTML / formatDebutsHTML.
- Format debuts band: 48 teams, 104 matches, 12 groups, Round of 32, 8 best
  thirds, and (post-final) first champion of the 48-team era. Counts derived
  from data, champion from the verdict.
- i18n recordsTitle/highScoreMatch/formatDebutsTitle/debut* (EN/PT); CSS for
  .stats-subhead and the .debut-band.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-17 00:33:59 -03:00
ddfc656f5d docs: log stats screen Stage C (ranking, favorites, records)
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-17 00:22:24 -03:00
8a521575aa feat(stats): final ranking 1-48, favorite highlight, team records (Stage C)
- Canonical final ranking: each team carries a .rank from the stage-reached
  chain (champion>runner-up>3rd>4th>QF>R16>R32>group, then pts>GD>GF>id),
  computed from REAL knockout results only (simulation never moves it). The #
  column shows this rank and is the default sort; it stays canonical when
  sorting other columns, and clicking # returns to it.
- Favorite-team row highlight (gold inset border + tint); re-renders on
  favchange. No stars in the table (highlight-only, like the bracket).
- Team record cards: biggest win (-> openMatchModal), longest win streak
  (>=2, else hidden), and champion's path (R32->Final route, gated on the
  verdict, rows -> openMatchModal). Each degrades away when its data is null.
- stats.js imports getFavorites (storage) + openMatchModal (modal). i18n
  tip.rank/stats.rankCol/biggestWin/winStreak/championPath (EN/PT); CSS for
  .row-fav, record cards, champion path.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-17 00:22:24 -03:00
beac60518f Merge branch 'master' into feature/stats-final-screen 2026-06-17 00:08:54 -03:00
1312d2327a data: update 16/06/2026 00:05 ARGxALG 3x0 2026-06-17 00:06:02 -03:00
12275b8bcb Merge branch 'master' of https://github.com/LucasKalil-Programador/world-2026-hub 2026-06-16 23:07:41 -03:00