Fixes #28 — Curated reflexive verb list on detail + practice filter

Bundles the 100 most common reflexive verbs from spanishwithdaniel.com as a
canonical list and wires it through the UI. Compound list entries (recibirse
/ graduarse, equivocarse / confundirse) are split. Trailing prepositions and
set-phrase completions are captured as usageHint (e.g. acordarse "de",
ponerse "de acuerdo").

ReflexiveVerbStore loads the JSON at launch and exposes lookups by base
infinitive, both via @Environment for SwiftUI and a static shared instance
for services. Verbs whose bare infinitive isn't in the list skip the UI
treatment silently.

VerbDetailView shows a new Reflexive section with the reflexive infinitive,
usage hint, and English meaning when there is a match. VerbListView gains a
"Reflexive verbs only" filter alongside the existing Level and Irregularity
filters. Settings adds the same flag so it also constrains the practice
pool; PracticeSessionService applies the reflexive filter in all six pick
paths.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
This commit is contained in:
Trey t
2026-04-22 10:56:04 -05:00
parent 4093b5a7f3
commit 98badc98ad
13 changed files with 360 additions and 23 deletions

View File

@@ -47,6 +47,8 @@ targets:
buildPhase: resources
- path: Conjuga/course_data.json
buildPhase: resources
- path: Conjuga/reflexive_verbs.json
buildPhase: resources
info:
path: Conjuga/Info.plist
properties: