- Shipped
- 30 Mei 2026, 01:38 UTC
- Author
- kamo
- Commit
- 28edb13
LoanProductForm was a single narrow column (maxWidth: 880) with hardcoded English everywhere. Now uses the same enterprise pattern as the offer page: Layout: - Full-width gradient header with breadcrumbs, back arrow, kind badge - Two-column grid (6fr/6fr) on lg+, single-column below - Form on the left, live "Product Preview" on the right Form side: - Kind selector as ToggleButtonGroup with descriptions (Installment vs LOC), not buried in a dropdown — this is the structural choice that reshapes the rest of the form, so it deserves prominence - Section blocks with icons (Basics · Pricing · Limits & Terms · Compliance) - Rates entered as %, converted to bps on the wire (no more "3600 = 36%") - All field labels via next-intl t() - Day-count tooltip explaining ACT_365 vs ACT_360 Preview side: - Hero card: kind chip, product code chip, name, headline, description - 4-tile stats grid: rate, origination, late fee, NSF fee - Limits & terms grid (kind-aware: range + frequency for installment, **************** for LOC) - Sample offer card (installment): monthly payment, total interest, total cost, sample origination at the midpoint of the principal range - Compliance chips: allowed states (cap 24 + overflow chip), autopay required + discount, promissory-note template binding - Footer note explaining how this product flows to the offer page LoanProductForm now wraps both the new and edit pages. Page wrappers pass marketTitle so the breadcrumb resolves cleanly.