import { Check, ChevronRight } from "lucide-react"; import { type SVGProps, useId } from "react"; import { Button } from "@/components/ui/button"; import { cn } from "@/lib/utils"; const formatPrice = (value: string | number) => `${(typeof value === "string" ? Number(value) : value).toLocaleString("fa-IR")} ریال`; type PricingTier = { id: string; name: string; price: string; description: string; features: string[]; cta: { text: string; href: string; }; }; const ITEMS: PricingTier[] = [ { id: "starter", name: "شروع", price: formatPrice(0), description: "رایگان برای همه", features: ["اعضای نامحدود", "۲۵۰ تراکنش", "بدون پشتیبانی"], cta: { text: "رایگان شروع رایگان", href: "/signup", }, }, { id: "basic", name: "پایه", price: formatPrice(299900), description: "به ازای هر کاربر در ماه", features: [ "همه‌چیز در طرح رایگان، به‌علاوه:", "هوش مصنوعی نوافروش", "تیم‌های نامحدود", ], cta: { text: "۷ روز رایگان", href: "/signup", }, }, { id: "enterprise", name: "سازمانی", price: "سفارشی", description: "قیمت‌گذاری سفارشی", features: [ "همه‌چیز در طرح پایه، به‌علاوه:", "کنترل‌های امنیتی پیشرفته", "پشتیبانی مهاجرت", ], cta: { text: "رزرو دمو", href: "/", }, }, ]; export const Pricing29 = () => { return (

تعرفه‌ها

نوافروش را رایگان با کل تیم خود استفاده کنید. با ارتقای طرح، امکانات پیشرفته‌تر را فعال کنید.

{ITEMS.map((tier, index) => ( ))}
); }; function PricingCard({ tier, isHighlighted, }: { tier: PricingTier; isHighlighted: boolean; }) { const styles = { card: cn( "flex flex-col gap-6 rounded-xl p-6 sm:rounded-2xl md:rounded-none lg:p-8", isHighlighted ? "max-md:from-primary max-md:to-primary/80 max-md:bg-linear-to-r" : "bg-background max-md:border", "md:bg-transparent", ), title: cn( "font-mono text-sm tracking-widest", isHighlighted ? "text-background/70" : "text-foreground/70", "md:text-background/70", ), price: cn( "text-2xll font-semibold tracking-tight", isHighlighted ? "text-background" : "text-foreground", "md:text-background", ), description: cn( "mt-2 text-xl font-medium", isHighlighted ? "text-background/70" : "text-foreground/70", "md:text-background/70", ), features: cn( "space-y-3 text-sm", isHighlighted ? "text-background/70" : "text-foreground/70", "md:text-background/70", ), button: cn( "group border-foreground/20 relative w-full", "after:from-border after:via-border after:absolute after:inset-0 after:bg-linear-to-t after:to-transparent after:content-[''] after:group-hover:opacity-100 isolate after:z-[-1]", "md:border-background/40 md:text-background md:bg-transparent md:after:opacity-0", isHighlighted && "md:bg-background md:text-primary hover:md:bg-background/90", ), }; return (

{tier.name}

{tier.price}

{tier.description}

); } interface PlusSignsProps extends SVGProps { className?: string; } const PlusSigns = ({ className, ...props }: PlusSignsProps) => { const GAP = 16; const STROKE_WIDTH = 1; const PLUS_SIZE = 6; const id = useId(); const patternId = `plus-pattern-${id}`; return ( ); };