--- // Usage example: // --- interface Tier { name: string; priceMonthly: number | null; features: string[]; highlighted?: boolean; ctaLabel: string; ctaHref: string; } interface Props { heading: string; subheading?: string; tiers: Tier[]; } const { heading = "Choose Your Procurement Plan", subheading = "Transparent pricing for agencies of every size", tiers = [ { name: "Starter", priceMonthly: 299, features: [ "Up to 50 solicitations per year", "Basic FAR compliance checks", "Email support", "Standard reporting" ], ctaLabel: "Start free trial", ctaHref: "/signup?plan=starter" }, { name: "Professional", priceMonthly: 799, features: [ "Unlimited solicitations", "Advanced FAR compliance engine", "Dedicated account manager", "API access", "Custom workflow automation" ], highlighted: true, ctaLabel: "Start free trial", ctaHref: "/signup?plan=professional" }, { name: "Enterprise", priceMonthly: null, features: [ "Custom integrations", "On-premise deployment option", "24/7 priority phone support", "Guaranteed SLA", "FedRAMP authorization support" ], ctaLabel: "Contact sales", ctaHref: "/contact" } ] }: Props = Astro.props; const currencyFormatter = new Intl.NumberFormat('en-US', { style: 'currency', currency: 'USD', minimumFractionDigits: 0, maximumFractionDigits: 0 }); const formatPrice = (price: number | null): string => { if (price === null) return 'Contact us'; return currencyFormatter.format(price); }; ---

{heading}

{subheading &&

{subheading}

}
{tiers.map((tier) => (
{tier.highlighted && ( )}

{tier.name} {tier.highlighted && Most popular}

{formatPrice(tier.priceMonthly)} {tier.priceMonthly !== null && ( /month )}
    {tier.features.map((feature) => (
  • {feature}
  • ))}
{tier.ctaLabel}
))}