"use client";
import React from "react";
import {
IconCircleCheckFilled,
IconMessageCircleQuestion,
} from "@tabler/icons-react";
import { cn } from "@/lib/utils";
import { useState } from "react";
import { motion } from "motion/react";
export function PricingWithSwitchAndAddOn() {
return (
Choose the plan that suits your needs
Pick a plan that suits your needs and get started instantly.
);
}
export function Pricing() {
const [active, setActive] = useState("monthly");
const tabs = [
{ name: "Monthly", value: "monthly" },
{ name: "Yearly", value: "yearly" },
];
return (
{tabs.map((tab) => (
))}
{tiers.map((tier, tierIdx) => (
{tier.name}
{active === "monthly" ? tier.priceMonthly : tier.priceYearly}
{tier.description}
{tier.features.map((feature) => (
-
{feature}
))}
))}
);
}
const AddOn = () => {
return (
Buy for your team of{" "}
10 people{" "}
and get
{" "}
pro upgrade absolutely free
.
"This is the best product ever when it comes to shipping. Ten on
ten recommended. I just can't wait to see what happens with this
product."
Michael Scarn
Side projects builder
);
};
const GridLineHorizontal = ({
className,
offset,
}: {
className?: string;
offset?: string;
}) => {
return (
);
};
const GridLineVertical = ({
className,
offset,
}: {
className?: string;
offset?: string;
}) => {
return (
);
};
export type Tier = {
name: string;
id: string;
href: string;
priceMonthly: string;
priceYearly: string;
description: string;
features: string[];
featured: boolean;
cta: string;
onClick: () => void;
};
export const tiers: Tier[] = [
{
name: "Hobby",
id: "tier-hobby",
href: "#",
priceMonthly: "$4/mo",
priceYearly: "$30/yr",
description: "Best for occasional listeners",
features: [
"Stream music on 1 device",
"Access to basic music library",
"Standard audio quality",
"Ad-supported listening",
"Create and share playlists",
],
featured: false,
cta: "Get Started",
onClick: () => {},
},
{
name: "Professional",
id: "tier-professional",
href: "#",
priceMonthly: "$8/mo",
priceYearly: "$60/yr",
description: "Best for regular listeners",
features: [
"Stream music on up to 3 devices simultaneously",
"Access to premium music library",
"High-definition audio quality",
"Ad-free listening experience",
"Download music for offline listening",
"Create and share unlimited playlists",
"Access to exclusive content and early releases",
],
featured: true,
cta: "Get Started",
onClick: () => {},
},
{
name: "Enterprise",
id: "tier-enterprise",
href: "#",
priceMonthly: "Contact Us",
priceYearly: "Contact Us",
description: "Best for big artists",
features: [
"Stream music on unlimited devices",
"Access to entire music library",
"Ultra high-definition audio quality",
"Ad-free listening experience",
"Download unlimited music for offline listening",
"Create and share unlimited playlists",
"Access to exclusive content and early releases",
"Priority customer support",
],
featured: false,
cta: "Contact Us",
onClick: () => {},
},
];
export const Icon = ({ className, ...rest }: React.SVGProps) => {
return (
);
};