export const PaymentsConcepts = () => { const badge = (text, color) => { const colors = { zinc: "bg-zinc-200 text-zinc-700 dark:bg-zinc-700 dark:text-zinc-200", violet: "bg-violet-100 text-violet-700 dark:bg-violet-900/40 dark:text-violet-400", amber: "bg-amber-100 text-amber-700 dark:bg-amber-900/40 dark:text-amber-400", emerald: "bg-emerald-100 text-emerald-700 dark:bg-emerald-900/40 dark:text-emerald-400", sky: "bg-sky-100 text-sky-700 dark:bg-sky-900/40 dark:text-sky-400", }; return ( {text} ); }; const itemPill = (qty, name) => (
{qty} {name}
); const priceTag = (amount, interval) => (
{amount} {interval ? / {interval} : null}
); const productCard = (name, price, interval, items, isHighlight, badgeText, badgeColor) => (
{name} {badgeText ? badge(badgeText, badgeColor) : null}
{priceTag(price, interval)} {items.length > 0 ? (
{items.map((item, i) => {itemPill(item[0], item[1])})}
) : null}
); const customerRow = (type, label, items, productName) => (
{type === "user" ? "U" : "T"}
{label}
{items.map((item, i) => ( {item[0]}: {item[1]} ))}
{badge(productName, "violet")}
); return (
Product Line {badge("mutually exclusive", "zinc")}
"Plan"
{productCard("Free", "$0", null, [["10", "credits"]], false, null, null)} {productCard("Pro", "$20", "mo", [["500", "credits"], ["5", "seats"]], true, "popular", "violet")} {productCard("Enterprise", "$99", "mo", [["5,000", "credits"], ["50", "seats"]], false, null, null)}
Standalone Product {badge("stackable", "amber")}
{productCard("Credit Pack", "$5", null, [["100", "credits"]], false, "one-time", "amber")}
Add-on {badge("requires Pro", "sky")}
{productCard("Priority Support", "$10", "mo", [], false, "subscription", "sky")}
Customers item balances after purchase
{customerRow("user", "alice@example.com", [["credits", "487"], ["seats", "5"]], "Pro")} {customerRow("team", "Acme Corp", [["credits", "4,832"], ["seats", "50"]], "Enterprise")}
); };