/** * Feature Upgrade Tab — Reusable "Upgrade to Pro" marketing tab * * Use this component inside any feature's settings page to give Free users * a single, brand-consistent place to learn what Pro unlocks for that feature. * * Usage: * */ import { Card, CardContent } from "@/components/ui/card" import { SettingsGrid } from "@/components/settings-layout" import { Crown, Check, ExternalLink, type LucideIcon, } from "lucide-react" import { usePro } from "@/contexts/pro-context" /** Brand color — single source of truth */ const BRAND = "#002269" export interface ProFeatureItem { icon: LucideIcon title: string description: string } export interface FeatureUpgradeTabProps { /** Headline displayed below the Crown hero icon */ headline: string /** Sub-headline paragraph */ description: string /** Grid of highlighted Pro features with icons */ features: ProFeatureItem[] /** "Everything in Free, plus:" checklist items */ checklist: string[] /** Override the CTA button label (defaults to "Upgrade to Pro") */ ctaLabel?: string /** Override the sub-CTA guarantee text */ guaranteeText?: string } export function FeatureUpgradeTab({ headline, description, features, checklist, ctaLabel = "Upgrade to Pro", guaranteeText = "30-day money-back guarantee · Cancel anytime", }: FeatureUpgradeTabProps) { const { upgradeUrl } = usePro() return ( {/* Hero Section */} {headline} {description} {/* Features Grid */} {features.map((feature) => ( {feature.title} {feature.description} ))} {/* What's included */} Everything in Free, plus: {checklist.map((item) => ( {item} ))} {/* CTA */} {upgradeUrl && ( {ctaLabel} )} {guaranteeText} ) }
{description}
{feature.title}
{feature.description}
{guaranteeText}