Bob AI: Populate src/pages/ProductsPage.tsx (snippet builder, 3 sections)
This commit is contained in:
@@ -1,99 +1,33 @@
|
||||
import React from "react";
|
||||
import { routes } from "@/routes";
|
||||
import NavbarCentered from "@/components/ui/NavbarCentered";
|
||||
import HeroSplit from "@/components/sections/hero/HeroSplit";
|
||||
import ProductMediaCards from "@/components/sections/product/ProductMediaCards";
|
||||
import FeaturesBentoGrid from "@/components/sections/features/FeaturesBentoGrid";
|
||||
import FooterSimple from "@/components/sections/footer/FooterSimple";
|
||||
import Button from "@/components/ui/Button";
|
||||
import HeroBackgroundSlot from "@/components/ui/HeroBackgroundSlot";
|
||||
import TextAnimation from "@/components/ui/TextAnimation";
|
||||
import ImageOrVideo from "@/components/ui/ImageOrVideo";
|
||||
import ScrollReveal from "@/components/ui/ScrollReveal";
|
||||
import AvatarGroup from "@/components/ui/AvatarGroup";
|
||||
import { ArrowUpRight, Loader2 } from "lucide-react";
|
||||
import GridOrCarousel from "@/components/ui/GridOrCarousel";
|
||||
import useProducts from "@/hooks/useProducts";
|
||||
import { Check } from "lucide-react";
|
||||
|
||||
export default function ProductsPage() {
|
||||
return (
|
||||
<div className="min-h-screen bg-background text-foreground">
|
||||
<NavbarCentered
|
||||
logo="AcmeStore"
|
||||
navItems={routes.map((r) => ({ name: r.label, href: r.path }))}
|
||||
ctaButton={{ text: "Get Started", href: "/contact" }}
|
||||
/>
|
||||
|
||||
<main>
|
||||
<HeroSplit
|
||||
tag="Our Products"
|
||||
title="Tools to build your next big idea"
|
||||
description="Discover our suite of premium products designed to help you scale faster and work smarter."
|
||||
primaryButton={{ text: "Browse All", href: "#products" }}
|
||||
secondaryButton={{ text: "Read Docs", href: "/docs" }}
|
||||
imageSrc="https://images.unsplash.com/photo-1498050108023-c5249f4df085?auto=format&fit=crop&q=80"
|
||||
/>
|
||||
|
||||
<div id="products">
|
||||
<ProductMediaCards
|
||||
tag="Collection"
|
||||
title="Featured Software"
|
||||
description="Choose the right tool for your specific needs."
|
||||
products={[
|
||||
{
|
||||
name: "Analytics Pro",
|
||||
price: "$49/mo",
|
||||
imageSrc: "https://images.unsplash.com/photo-1551288049-bebda4e38f71?auto=format&fit=crop&q=80",
|
||||
onClick: () => console.log("Analytics clicked")
|
||||
},
|
||||
{
|
||||
name: "Cloud Storage",
|
||||
price: "$19/mo",
|
||||
imageSrc: "https://images.unsplash.com/photo-1544197150-b99a580bb7a8?auto=format&fit=crop&q=80",
|
||||
onClick: () => console.log("Storage clicked")
|
||||
},
|
||||
{
|
||||
name: "Team Chat",
|
||||
price: "$29/mo",
|
||||
imageSrc: "https://images.unsplash.com/photo-1611162617474-5b21e879e113?auto=format&fit=crop&q=80",
|
||||
onClick: () => console.log("Chat clicked")
|
||||
}
|
||||
]}
|
||||
/>
|
||||
</div>
|
||||
|
||||
<FeaturesBentoGrid
|
||||
tag="Benefits"
|
||||
title="Why choose our ecosystem"
|
||||
description="Everything works seamlessly together to give you the best experience possible."
|
||||
features={[
|
||||
{
|
||||
title: "Lightning Fast",
|
||||
description: "Optimized for speed and reliability across all devices.",
|
||||
imageSrc: "https://images.unsplash.com/photo-1518770660439-4636190af475?auto=format&fit=crop&q=80"
|
||||
},
|
||||
{
|
||||
title: "Secure by Default",
|
||||
description: "Enterprise-grade security built into every product.",
|
||||
imageSrc: "https://images.unsplash.com/photo-1555949963-ff9fe0c870eb?auto=format&fit=crop&q=80"
|
||||
},
|
||||
{
|
||||
title: "24/7 Support",
|
||||
description: "Our dedicated team is always here to help you succeed.",
|
||||
imageSrc: "https://images.unsplash.com/photo-1522071820081-009f0129c71c?auto=format&fit=crop&q=80"
|
||||
}
|
||||
]}
|
||||
/>
|
||||
</main>
|
||||
|
||||
<FooterSimple
|
||||
brand="AcmeStore"
|
||||
columns={[
|
||||
{
|
||||
title: "Products",
|
||||
items: [
|
||||
{ label: "Analytics", href: "#" },
|
||||
{ label: "Storage", href: "#" }
|
||||
]
|
||||
}
|
||||
]}
|
||||
copyright="© 2024 AcmeStore. All rights reserved."
|
||||
links={[
|
||||
{ label: "Privacy Policy", href: "#" },
|
||||
{ label: "Terms of Service", href: "#" }
|
||||
]}
|
||||
/>
|
||||
</div>
|
||||
<>
|
||||
<div data-webild-section="HeroBillboard"><section aria-label="Hero section" className="relative pt-25 pb-20 md:pt-30"><HeroBackgroundSlot /><div className="flex flex-col gap-12 md:gap-15 w-content-width mx-auto"><div className="flex flex-col items-center gap-3 text-center"><AvatarGroup avatarsSrc={["https://img.freepik.com/free-photo/portrait-successful-man-having-stubble-posing-with-broad-smile-keeping-arms-folded_171337-1267.jpg","https://img.freepik.com/free-photo/young-beautiful-woman-pink-warm-sweater-natural-look-smiling-portrait-isolated-long-hair_285396-896.jpg","https://img.freepik.com/free-photo/handsome-confident-smiling-man-with-hands-crossed-chest_176420-18743.jpg"]} label="Trusted by top studios" className="mb-1" /><TextAnimation text="Advanced Box Office Forecasting Tools" variant="fade" gradientText={true} tag="h1" className="md:max-w-8/10 text-7xl 2xl:text-8xl leading-[1.15] font-semibold text-center text-balance" /><TextAnimation text="Equip your studio with predictive analytics, real-time sentiment tracking, and audience engagement metrics to maximize your film's success." variant="fade" gradientText={false} tag="p" className="md:max-w-7/10 text-lg md:text-xl leading-snug text-balance" /><div className="flex flex-wrap justify-center gap-3 mt-2 md:mt-3"><Button text="Explore Suite" href="#products" variant="primary" /><Button text="Request Demo" href="/demo" variant="secondary" animationDelay={0.1} /></div></div><ScrollReveal variant="fade" delay={0.2} className="w-full p-2 xl:p-3 2xl:p-4 card rounded overflow-hidden"><ImageOrVideo imageSrc="https://img.freepik.com/premium-photo/business-data-analytics-dashboard-with-charts-graphs_31965-115201.jpg" className="aspect-4/5 md:aspect-video" /></ScrollReveal></div></section></div>
|
||||
<div data-webild-section="ProductMediaCards"><section aria-label="Products section" className="py-20"><div className="w-content-width mx-auto flex justify-center"><Loader2 className="size-8 animate-spin text-foreground" strokeWidth={1.5} /></div></section></div>
|
||||
<div data-webild-section="PricingSimpleCards"><section aria-label="Pricing section" className="py-20"><div className="flex flex-col gap-8 md:gap-10"><div className="flex flex-col items-center w-content-width mx-auto gap-2"><div className="px-3 py-1 mb-1 text-sm card rounded w-fit"><p>Pricing Plans</p></div><TextAnimation text="Predictive Power for Every Studio" variant="fade" gradientText={true} tag="h2" className="md:max-w-8/10 text-6xl 2xl:text-7xl leading-[1.15] font-semibold text-center text-balance" /><TextAnimation text="Choose the analytics tier that fits your production scale. From indie films to global blockbusters, we have you covered." variant="fade" gradientText={false} tag="p" className="md:max-w-7/10 text-lg md:text-xl leading-snug text-center text-balance" /><div className="flex flex-wrap justify-center gap-3 mt-2 md:mt-3"><Button text="Start Free Trial" href="/signup" variant="primary" /><Button text="Contact Sales" href="/contact" variant="secondary" animationDelay={0.1} /></div></div><ScrollReveal variant="slide-up"><GridOrCarousel><div key="Indie" className="flex flex-col gap-4 xl:gap-5 2xl:gap-6 p-6 xl:p-7 2xl:p-8 h-full card rounded"><div className="px-3 py-1 text-sm card rounded w-fit"><p>Indie</p></div><div className="flex flex-col gap-1"><span className="text-5xl md:text-6xl font-semibold">$499/mo</span><span className="text-base font-medium">Essential sentiment tracking for independent filmmakers.</span></div><div className="w-full h-px bg-foreground/20" /><div className="flex flex-col gap-3"><div key="Real-time social sentiment" className="flex items-start gap-3"><div className="flex items-center justify-center shrink-0 size-6 primary-button rounded"><Check className="size-3 text-primary-cta-text" strokeWidth={2} /></div><span className="text-base">Real-time social sentiment</span></div>
|
||||
<div key="Basic trailer engagement metrics" className="flex items-start gap-3"><div className="flex items-center justify-center shrink-0 size-6 primary-button rounded"><Check className="size-3 text-primary-cta-text" strokeWidth={2} /></div><span className="text-base">Basic trailer engagement metrics</span></div>
|
||||
<div key="Weekly trend reports" className="flex items-start gap-3"><div className="flex items-center justify-center shrink-0 size-6 primary-button rounded"><Check className="size-3 text-primary-cta-text" strokeWidth={2} /></div><span className="text-base">Weekly trend reports</span></div>
|
||||
<div key="Up to 3 active projects" className="flex items-start gap-3"><div className="flex items-center justify-center shrink-0 size-6 primary-button rounded"><Check className="size-3 text-primary-cta-text" strokeWidth={2} /></div><span className="text-base">Up to 3 active projects</span></div></div></div>
|
||||
<div key="Studio" className="flex flex-col gap-4 xl:gap-5 2xl:gap-6 p-6 xl:p-7 2xl:p-8 h-full card rounded"><div className="px-3 py-1 text-sm card rounded w-fit"><p>Studio</p></div><div className="flex flex-col gap-1"><span className="text-5xl md:text-6xl font-semibold">$2,499/mo</span><span className="text-base font-medium">Advanced predictive modeling for mid-sized production companies.</span></div><div className="w-full h-px bg-foreground/20" /><div className="flex flex-col gap-3"><div key="Everything in Indie" className="flex items-start gap-3"><div className="flex items-center justify-center shrink-0 size-6 primary-button rounded"><Check className="size-3 text-primary-cta-text" strokeWidth={2} /></div><span className="text-base">Everything in Indie</span></div>
|
||||
<div key="Predictive box office modeling" className="flex items-start gap-3"><div className="flex items-center justify-center shrink-0 size-6 primary-button rounded"><Check className="size-3 text-primary-cta-text" strokeWidth={2} /></div><span className="text-base">Predictive box office modeling</span></div>
|
||||
<div key="Competitor analysis dashboard" className="flex items-start gap-3"><div className="flex items-center justify-center shrink-0 size-6 primary-button rounded"><Check className="size-3 text-primary-cta-text" strokeWidth={2} /></div><span className="text-base">Competitor analysis dashboard</span></div>
|
||||
<div key="Daily trend alerts" className="flex items-start gap-3"><div className="flex items-center justify-center shrink-0 size-6 primary-button rounded"><Check className="size-3 text-primary-cta-text" strokeWidth={2} /></div><span className="text-base">Daily trend alerts</span></div>
|
||||
<div key="Up to 10 active projects" className="flex items-start gap-3"><div className="flex items-center justify-center shrink-0 size-6 primary-button rounded"><Check className="size-3 text-primary-cta-text" strokeWidth={2} /></div><span className="text-base">Up to 10 active projects</span></div></div></div>
|
||||
<div key="Enterprise" className="flex flex-col gap-4 xl:gap-5 2xl:gap-6 p-6 xl:p-7 2xl:p-8 h-full card rounded"><div className="px-3 py-1 text-sm card rounded w-fit"><p>Enterprise</p></div><div className="flex flex-col gap-1"><span className="text-5xl md:text-6xl font-semibold">Custom</span><span className="text-base font-medium">Full-scale analytics and forecasting for major global studios.</span></div><div className="w-full h-px bg-foreground/20" /><div className="flex flex-col gap-3"><div key="Everything in Studio" className="flex items-start gap-3"><div className="flex items-center justify-center shrink-0 size-6 primary-button rounded"><Check className="size-3 text-primary-cta-text" strokeWidth={2} /></div><span className="text-base">Everything in Studio</span></div>
|
||||
<div key="Custom predictive algorithms" className="flex items-start gap-3"><div className="flex items-center justify-center shrink-0 size-6 primary-button rounded"><Check className="size-3 text-primary-cta-text" strokeWidth={2} /></div><span className="text-base">Custom predictive algorithms</span></div>
|
||||
<div key="Dedicated account manager" className="flex items-start gap-3"><div className="flex items-center justify-center shrink-0 size-6 primary-button rounded"><Check className="size-3 text-primary-cta-text" strokeWidth={2} /></div><span className="text-base">Dedicated account manager</span></div>
|
||||
<div key="API access for internal tools" className="flex items-start gap-3"><div className="flex items-center justify-center shrink-0 size-6 primary-button rounded"><Check className="size-3 text-primary-cta-text" strokeWidth={2} /></div><span className="text-base">API access for internal tools</span></div>
|
||||
<div key="Unlimited active projects" className="flex items-start gap-3"><div className="flex items-center justify-center shrink-0 size-6 primary-button rounded"><Check className="size-3 text-primary-cta-text" strokeWidth={2} /></div><span className="text-base">Unlimited active projects</span></div></div></div></GridOrCarousel></ScrollReveal></div></section></div>
|
||||
</>
|
||||
);
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user