feat(sf-fe-a12): Landing redesign + PilotCTA с real B3/B4 data (v2 rebased) #367

Merged
lekss361 merged 2 commits from feat/sf-fe-a12-landing-redesign-v2 into main 2026-05-18 05:16:58 +00:00

2 commits

Author SHA1 Message Date
lekss361
212f7109e6 fix(sf-fe-a12): review fixes — B3 UUID contract + B4 stale flag + Drawer a11y + tokens + HeadlineBar
- B3 type contract: PilotRequestResponse.id is string (UUID via CAST), drop tracking_id;
  derive display ID as GD-{first8hexUppercase} from UUID
- B4 stale flag: LandingStatsOut Pydantic schema adds stale:bool=False; fallback
  returns stale=True with zeroed fields (no fake numbers); frontend shows skeleton
  placeholders when stale=true
- PilotRequestModal: replaced manual backdrop+panel+ESC logic with <Drawer side="bottom">
  (focus trap, ESC, scroll-lock, focus restore for free); removed ~80 LoC
- Design tokens: all #hex literals in page.tsx and PilotRequestModal.tsx replaced
  with var(--token) from globals.css; h1 fontSize 32 -> 28 per display spec
- HeadlineBar: hand-rolled dark div in page.tsx replaced with <HeadlineBar> component
2026-05-18 08:11:33 +03:00
lekss361
014a98a79e feat(sf-fe-a12): Landing redesign + PilotCTA с real data B3/B4
Hero + 5 KPI cards из GET /api/v1/landing/stats (zk_total, deals_total,
price_coverage_pct, mapping_coverage_pct, last_data_update).
Парадокс портфеля из stats.paradox. Pricing card 30 000 руб/мес. FAQ accordion.
PilotRequestModal -> POST /api/v1/pilot/request, success state с trackingId.
Admin links убраны из public nav. lucide-react добавлен в deps.
2026-05-18 07:53:44 +03:00