feat(billing): page tarifaire /plan + uniformisation CTA "Voir les plans" (Sprint 5b)

- features/billing/{api,components/PlanCard,pages/PricingPage} + 5 tests
- 3 colonnes Free/Standard/Premium avec gating dynamique selon usePlan()
- POST /stripe/checkout avec redirect full-page Stripe Checkout
- env: VITE_STRIPE_PRICE_STANDARD/_PREMIUM (optionnels)
- router: /plan → PricingPage (sous PrivateLayout)
- CTA renommés "Voir les plans" : SimulationsList, RapportPage, TaskSelector,
  DashboardFreeView, PaywallBanner — au lieu de CTA orientés un seul plan
- Tests: 198 → 203 verts (+5)

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
This commit is contained in:
Hermann_Kitio 2026-04-26 04:52:13 +03:00
parent 04019f8348
commit 9edfbb3c95
13 changed files with 551 additions and 8 deletions

View file

@ -54,7 +54,7 @@ export function DashboardFreeView({
</div>
<div className="flex flex-wrap items-center gap-2">
<Button variant="secondary" size="sm" onClick={() => navigate('/plan')}>
Passer en Premium
Voir les plans
</Button>
<Button
variant="primary"

View file

@ -35,7 +35,7 @@ export function PaywallBanner() {
to="/plan"
className="inline-flex h-9 shrink-0 items-center justify-center rounded-md border border-border bg-surface px-4 text-sm font-semibold text-ink-primary transition-colors hover:bg-surface-hover focus-visible:outline-none focus-visible:shadow-focus"
>
Voir les offres
Voir les plans
</Link>
</section>
)