47536843be
hotfix: update README
2026-06-23 12:22:37 +02:00
0952b372b4
hotfix: update default language
2026-06-23 12:16:38 +02:00
9a41bd50a6
Merge: FR/EN internationalization (i18n) with language selector
2026-06-23 12:13:51 +02:00
a2a7ffd79f
feat(i18n): add FR/EN internationalization with in-app language selector
...
- gen-l10n setup (flutter_localizations, intl, l10n.yaml, ARB en/fr)
- localeProvider (persisted) wired into MaterialApp
- language selector in the System page (alongside the color palette)
- all user-facing strings across screens moved to AppLocalizations
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-23 12:13:51 +02:00
409ab9c1dd
Merge: update README for current project state
2026-06-23 12:00:50 +02:00
d13f8d8834
docs: rewrite README to reflect Pokéguess (game, architecture, stack)
...
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-23 12:00:50 +02:00
afacacaa10
Merge: document all public classes (code documentation)
2026-06-23 11:58:29 +02:00
7fd122fd91
docs(code): add doc comments to all public widgets and providers
...
Document MyApp, MainPage, PokemonImage/Tile/TypeWidget, and the gen-filter
and theme providers/notifiers. Every public class/enum now has a /// doc.
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-23 11:58:29 +02:00
9d49cef271
Merge: split pokemon_list into sub-widgets (<150 lines)
2026-06-23 11:53:27 +02:00
e93384bf71
refactor(list): split pokemon_list into sub-widgets (<150 lines)
...
Extract PokedexListHeader, PokedexCountBar; reuse shared ScanlineOverlay.
pokemon_list.dart 169 -> 128 lines.
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-23 11:53:27 +02:00
b12739af09
Merge: split system_page into sub-widgets (<150 lines)
2026-06-23 11:51:15 +02:00
749314d312
refactor(system): extract system_page sub-widgets into separate files (<150 lines)
...
Move SystemHeader, SectionTitle, StatsGrid/StatItem and PalettePicker into
widgets/system/. system_page.dart 260 -> 80 lines.
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-23 11:51:15 +02:00
dd33885bda
Merge: split pokemon_detail into sub-widgets (<150 lines)
2026-06-23 11:49:19 +02:00
41a80f03f0
refactor(detail): split pokemon_detail into sub-widgets (<150 lines)
...
Extract PokemonDetailTop and PokemonStatsPanel (+ reusable _StatBar).
pokemon_detail.dart 286 -> 97 lines.
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-23 11:49:19 +02:00
93e3fa76c8
Merge: split game_over_page into sub-widgets (<150 lines)
2026-06-23 11:47:08 +02:00
bdbd2fcc6a
refactor(game-over): split game_over_page into sub-widgets (<150 lines)
...
Extract GameOverHeader, GameOverStats (+ reusable _StatBox), HingeDivider,
GameOverActions. game_over_page.dart 338 -> 100 lines.
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-23 11:47:08 +02:00
2f0d7e1e36
Merge: split guess_page into sub-widgets (<150 lines)
2026-06-23 11:44:55 +02:00
cb9e214aa2
refactor(guess): split guess_page into focused sub-widgets (<150 lines)
...
Extract GuessSilhouette, GenFilterSection, LivesRow, GuessInputSection,
ScoreBoard and a shared ScanlineOverlay. guess_page.dart 440 -> 149 lines.
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-23 11:44:55 +02:00
d12b01b4ab
chore: add documents
2026-06-23 11:36:13 +02:00
1b9618de84
Merge branch 'pokeguess-preview'
2026-06-23 11:34:23 +02:00
71f5122e74
setings and gen filter
2026-06-23 10:54:16 +02:00
d54e517ca6
chore(core): remove unused Result type (dead code)
...
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-09 15:33:51 +02:00
43b68d1352
docs: update architecture documentation for new layered design
...
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-09 15:24:33 +02:00
5c9cef99a7
test: fix default widget smoke test for new architecture
...
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-09 15:24:05 +02:00
ca77317a20
chore: remove legacy models/utils/api/database layers
...
Also moves stray lib/pages/quel-est-ce-pokemon.code-workspace to repo
root, and fixes two trivial test lint infos (curly_braces_in_flow_
control_structures, constant_identifier_names) to reach clean analyze.
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-09 15:20:54 +02:00
dc7e681508
fix(presentation): recover from game-over back gesture, show final score, guard hint, constants
...
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-09 15:15:27 +02:00
e62c8a9034
refactor: wire main.dart to presentation layer
...
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-09 11:45:59 +02:00
2c21b80a03
refactor(presentation): guess page consumes gameProvider
...
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-09 11:45:20 +02:00
4ac13bd233
refactor(presentation): game over page uses repository + constant
...
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-09 11:43:48 +02:00
7fd6d16020
refactor(presentation): pokemon list consumes pokedexProvider
...
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-09 11:43:02 +02:00
d4c8936c80
refactor(presentation): main page as ConsumerWidget with nav provider
...
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-09 11:42:13 +02:00
439c0101f4
refactor: move UI into presentation/widgets and presentation/pages
...
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-09 11:41:41 +02:00
29d2c92b37
fix(presentation): resilient pokemon loading, web-safe invalidate, correct best-score persist
...
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-09 11:38:40 +02:00
4bca4b1ed5
feat(presentation): add game state Notifier
...
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-09 11:31:42 +02:00
2d87879af8
feat(presentation): add selected-tab navigation provider
...
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-09 11:31:16 +02:00
d531fcb2c8
feat(presentation): add pokedex AsyncNotifier provider
...
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-09 11:30:55 +02:00
f6a6ba2cd1
feat(presentation): add repository DI provider
...
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-09 11:30:30 +02:00
e2e310cae5
test(domain): cover skip bonus and invalid-guess paths in GameEngine
...
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-09 11:29:03 +02:00
e3a9831ce1
feat(domain): add pure GameEngine with TDD (removes pikachu cheat)
...
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-09 11:22:03 +02:00
0d977e5cca
feat(domain): add immutable GameState
...
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-09 11:20:46 +02:00
4bc3948fed
feat(gitignore): add .claude/ to ignore list
2026-06-09 11:19:20 +02:00
6885771081
fix(data): race-safe DB open, graceful unknown types, explicit id error + fallback tests
...
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-09 11:18:56 +02:00
51c6ef904d
feat(data): add PokemonRepository implementation + tests
...
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-09 11:13:06 +02:00
42bd9f7c20
feat(domain): add PokemonRepository interface
...
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-09 11:12:05 +02:00
cbc742b25a
feat(data): add HTTP remote datasource
...
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-09 11:11:31 +02:00
96758f1b6b
feat(data): add instance-based SQLite local datasource
...
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-09 11:10:25 +02:00
f2dcba0fe2
feat(data): add PokemonDto with single-source JSON parsing + tests
...
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-09 11:09:51 +02:00
2f051c8da6
refactor: point leaf components at domain Pokemon entity
...
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-09 10:57:51 +02:00
b1f67d3daa
feat(presentation): add type colors helper
...
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-09 10:57:23 +02:00
8ca6405bc0
feat(domain): add pure Pokemon entity and PokemonType enum
...
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-09 10:56:59 +02:00