import { type CatalogTier, catalogTiers, formatPlanPrice, formatTierPrice, type Plan, plans, } from '@shared/pricing'; import { IconArrowRight as ArrowRight, IconCheck as Check, IconX as X } from '@tabler/icons-react'; import { Link } from 'react-router'; import { Nav } from '@/components/Nav'; import { SEO } from '@/components/SEO'; import FooterSection from '@/components/sections/footer'; import { Badge } from '@/components/ui/badge'; import { Button } from '@/components/ui/button'; import { cn } from '@/lib/utils'; interface PricingCardProps { name: string; description: string | null; price: string; /** Feature rows. Catalog tiers are all included; demo plans mark exclusions. */ features: { text: string; included: boolean }[]; ctaLabel: string; popular?: boolean; } function PricingCard({ name, description, price, features, ctaLabel, popular = false, }: PricingCardProps) { return (
{description}
}Start free. Upgrade when you outgrow it. Change or cancel your plan yourself, without talking to anyone.