Card entry with brand-aware grouping and maxLength, a Luhn check, MM/YY with a real expiry rule, blur-time errors, auto-advance and correct cc-* autocomplete — UI only, real payments belong in a PCI-compliant hosted field set.
npx shadcn@latest add @zyeon/credit-card-formZyeon UI limits how often it can be asked, and Credit Card Form hasn't had its turn. Its source will show here once it has.