64 lines
1.8 KiB
TypeScript
64 lines
1.8 KiB
TypeScript
import { cn } from "@/lib/utils";
|
|
|
|
import { Button } from "@/components/ui/button";
|
|
|
|
interface Cta10Props {
|
|
heading: string;
|
|
description: string;
|
|
buttons?: {
|
|
primary?: {
|
|
text: string;
|
|
url: string;
|
|
};
|
|
secondary?: {
|
|
text: string;
|
|
url: string;
|
|
};
|
|
};
|
|
className?: string;
|
|
}
|
|
|
|
const Cta10 = ({
|
|
heading = "Call to Action",
|
|
description = "Build faster with our collection of pre-built blocks. Speed up your development and ship features in record time.",
|
|
buttons = {
|
|
primary: {
|
|
text: "Buy Now",
|
|
url: "https://www.shadcnblocks.com",
|
|
},
|
|
},
|
|
className,
|
|
}: Cta10Props) => {
|
|
return (
|
|
<section className={cn("pt-32 pb-40 md:pb-48 lg:pb-56", className)}>
|
|
<div className="container mx-auto px-4 md:px-6">
|
|
<div className="flex w-full flex-col gap-16 overflow-hidden rounded-lg bg-accent p-8 md:rounded-xl lg:flex-row lg:items-center lg:p-12">
|
|
<div className="flex-1">
|
|
<h2 className="text-heading-2 mb-3 font-semibold md:mb-4 lg:mb-6">
|
|
{heading}
|
|
</h2>
|
|
<p className="text-body max-w-xl leading-relaxed text-muted-foreground">
|
|
{description}
|
|
</p>
|
|
</div>
|
|
<div className="flex shrink-0 flex-col gap-2 sm:flex-row">
|
|
{buttons.secondary && (
|
|
<Button variant="secondary" asChild size="lg">
|
|
<a href={buttons.secondary.url}>{buttons.secondary.text}</a>
|
|
</Button>
|
|
)}
|
|
{buttons.primary && (
|
|
<Button asChild variant="primary" size="lg">
|
|
<a href={buttons.primary.url}>{buttons.primary.text}</a>
|
|
</Button>
|
|
)}
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</section>
|
|
);
|
|
};
|
|
|
|
export { Cta10 };
|
|
|