import { Badge } from '@/components/ui/Badge'; import { Button } from '@/components/ui/Button'; import { BorderGlow } from '@/components/effects/BorderGlow'; import { cn } from '@/lib/cn'; import { formatPrice, formatQuota } from '@/lib/billing-format'; import { RECOMMENDED_PLAN, SUBSCRIPTION_PLANS } from '@/lib/constants'; import { MODULE_COLOR } from '@/lib/module-colors'; import type { PlanPublic, SubscriptionPlan } from '@/types'; const mc = MODULE_COLOR.billing; interface PlanGridProps { plans: PlanPublic[]; currentPlan: SubscriptionPlan | undefined; selectedPlan: SubscriptionPlan | undefined; onSelect: (plan: SubscriptionPlan) => void; } export function PlanGrid({ plans, currentPlan, selectedPlan, onSelect }: PlanGridProps) { const priced = new Map(plans.map((p) => [p.plan, p])); return (
{copy.name}
{isCurrent &&{formatPrice(pricing.price_cents, pricing.currency)}
/ mo{formatQuota(pricing.quota_tokens)}
{copy.tagline}