Merge version_2_1781534189120 into main #2

Merged
bender merged 1 commits from version_2_1781534189120 into main 2026-06-15 14:38:53 +00:00
10 changed files with 255 additions and 155 deletions

View File

@@ -43,7 +43,7 @@ export default function Layout() {
<SiteBackgroundSlot />
<SectionErrorBoundary name="navbar">
<NavbarFloating
logo="Bakehouse"
logo="Cupcakery"
ctaButton={{
text: "Order Now",
href: "#contact",
@@ -55,8 +55,8 @@ export default function Layout() {
</main>
<SectionErrorBoundary name="footer">
<FooterMinimal
brand="Bakehouse"
copyright="© 2024 Bakehouse. All rights reserved."
brand="Cupcakery"
copyright="© 2024 Cupcakery. All rights reserved."
socialLinks={[
{
icon: Instagram,

View File

@@ -1,163 +1,35 @@
import ContactCta from '@/components/sections/contact/ContactCta';
import FaqSplitMedia from '@/components/sections/faq/FaqSplitMedia';
import FeaturesDetailedCards from '@/components/sections/features/FeaturesDetailedCards';
import FeaturesImageBento from '@/components/sections/features/FeaturesImageBento';
import HeroBillboard from '@/components/sections/hero/HeroBillboard';
import PricingCenteredCards from '@/components/sections/pricing/PricingCenteredCards';
import TestimonialColumnMarqueeCards from '@/components/sections/testimonial/TestimonialColumnMarqueeCards';
import SectionErrorBoundary from "@/components/ui/SectionErrorBoundary";
// AUTO-GENERATED shell by per-section-migrate.
// Section bodies live in ./<PageBase>/sections/<X>.tsx. Edit the section
// files directly. Non-block content (wrappers, non-inlinable sections) is
// preserved inline; extracted section blocks become <XSection/> refs.
export default function HomePage() {
import React from 'react';
import HeroSection from './HomePage/sections/Hero';
import MenuSection from './HomePage/sections/Menu';
import FeaturesSection from './HomePage/sections/Features';
import TestimonialsSection from './HomePage/sections/Testimonials';
import PricingSection from './HomePage/sections/Pricing';
import FaqSection from './HomePage/sections/Faq';
import ContactSection from './HomePage/sections/Contact';
import TrustLogosSection from './HomePage/sections/TrustLogos';export default function HomePage(): React.JSX.Element {
return (
<>
<div id="hero" data-section="hero">
<SectionErrorBoundary name="hero">
<HeroBillboard
tag="Since 2015"
title="Handcrafted cakes for every celebration"
description="Browse our curated selection of premium cupcakes and custom cakes, trusted by hundreds of happy customers."
primaryButton={{
text: "Order Now", href: "#contact"}}
secondaryButton={{
text: "View Menu", href: "#menu"}}
imageSrc="http://img.b2bpic.net/free-photo/front-view-delicious-cupcake-with-copy-space_23-2148769222.jpg"
/>
</SectionErrorBoundary>
</div>
<>
<HeroSection />
<TrustLogosSection />
<div id="menu" data-section="menu">
<SectionErrorBoundary name="menu">
<FeaturesImageBento
tag="Our Menu"
title="A delight for every occasion"
description="From custom wedding cakes to artisan cupcakes, explore our full range of handcrafted treats."
items={[
{
title: "Custom Wedding Cakes", description: "Tailored designs for your special day.", imageSrc: "http://img.b2bpic.net/free-photo/gourmet-dessert-table-with-homemade-cakes-cupcakes-generated-by-ai_188544-44693.jpg"},
{
title: "Signature Cupcakes", description: "Premium flavors, baked fresh daily.", imageSrc: "http://img.b2bpic.net/free-photo/recipe-bun-portion-freshness-cake-snack_1339-3253.jpg"},
{
title: "Artisan Pastries", description: "Handcrafted sweets in small batches.", imageSrc: "http://img.b2bpic.net/free-photo/top-view-yummy-sweet-pancakes-with-cup-tea-light-desk_140725-91396.jpg"},
{
title: "Celebration Boxes", description: "Curated boxes perfect for gifting.", imageSrc: "http://img.b2bpic.net/free-photo/black-wooden-board-azerbaijani-gohal-clay-bowl-flour_114579-51707.jpg"},
{
title: "Specialty Cookies", description: "Chewy, flavorful, and freshly made.", imageSrc: "http://img.b2bpic.net/free-photo/delicious-cake-indoors-still-life_23-2151172727.jpg"},
{
title: "Signature Donuts", description: "Gourmet flavors you'll fall for.", imageSrc: "http://img.b2bpic.net/free-photo/top-view-delicious-cupcakes-assortment_23-2149021980.jpg"},
{
title: "Seasonal Desserts", description: "Limited time flavors to enjoy now.", imageSrc: "http://img.b2bpic.net/free-photo/side-view-meat-with-greek-yogurt-sauce-plate_140725-11511.jpg"},
]}
/>
</SectionErrorBoundary>
</div>
<MenuSection />
<div id="features" data-section="features">
<SectionErrorBoundary name="features">
<FeaturesDetailedCards
tag="Why Us"
title="Crafted with passion, served with love"
description="Quality ingredients, local sourcing, and a dedication to the art of baking."
items={[
{
title: "Organic Ingredients", description: "We use locally sourced, organic flour, butter, and sugar for the best quality.", tags: [
"Quality", "Local"],
imageSrc: "http://img.b2bpic.net/free-photo/top-view-delicious-creamy-cake-inside-plate-with-fresh-raspberries-brown-background_140725-125117.jpg"},
{
title: "Customized to Perfection", description: "Our team works with you to design your perfect cake for any event.", tags: [
"Personalized", "Creative"],
imageSrc: "http://img.b2bpic.net/free-photo/delicious-cupcakes-with-roses_23-2151939177.jpg"},
{
title: "Reliable Delivery", description: "Your orders arrive fresh, safely, and right on time, guaranteed.", tags: [
"Fast", "Reliable"],
imageSrc: "http://img.b2bpic.net/free-photo/sweet-cake-with-powder-sugar_23-2148395147.jpg"},
]}
/>
</SectionErrorBoundary>
</div>
<FeaturesSection />
<div id="testimonials" data-section="testimonials">
<SectionErrorBoundary name="testimonials">
<TestimonialColumnMarqueeCards
tag="Testimonials"
title="Loved by our local community"
description="Read what our happy customers are saying about our bakeshop."
testimonials={[
{
name: "Sarah J.", role: "Wedding Planner", quote: "The most beautiful wedding cake I've seen in years! Absolutely delicious.", imageSrc: "http://img.b2bpic.net/free-photo/holidays-celebration-dreamy-birthday-girl-making-wish-looking-up-hopeful-holding-bday-cake_1258-117410.jpg"},
{
name: "Mark D.", role: "CEO", quote: "Reliable and incredibly tasty. Our team loves the weekly cupcake boxes.", imageSrc: "http://img.b2bpic.net/free-photo/father-son-drinking-coffee-together_23-2148351721.jpg"},
{
name: "Elena R.", role: "Artist", quote: "The artistry is unmatched. My birthday cake was exactly what I imagined.", imageSrc: "http://img.b2bpic.net/free-photo/beautiful-girls-buys-buns-bakery_1157-24671.jpg"},
{
name: "James T.", role: "Accountant", quote: "Consistent quality every single time. Definitely my go-to for events.", imageSrc: "http://img.b2bpic.net/free-photo/happy-amusing-young-woman-smiling-eating-cakes_171337-14496.jpg"},
{
name: "Lucy H.", role: "Teacher", quote: "Kids loved the custom cupcake design. Will order again next year!", imageSrc: "http://img.b2bpic.net/free-photo/young-woman-with-dalgona-cookie_23-2149234603.jpg"},
]}
/>
</SectionErrorBoundary>
</div>
<TestimonialsSection />
<div id="pricing" data-section="pricing">
<SectionErrorBoundary name="pricing">
<PricingCenteredCards
tag="Pricing"
title="Transparent pricing for custom treats"
description="Simple packages to help you get started."
plans={[
{
tag: "Essentials", price: "$45", description: "Perfect for small family birthdays.", features: [
"12 Cupcakes", "3 Cake Flavors", "Basic Design"],
primaryButton: {
text: "Book Now", href: "#contact"},
},
{
tag: "Celebration", price: "$85", description: "Best for moderate parties and events.", features: [
"24 Cupcakes", "6 Cake Flavors", "Detailed Design"],
primaryButton: {
text: "Book Now", href: "#contact"},
},
{
tag: "Grand Event", price: "$150+", description: "Tailored packages for big occasions.", features: [
"Custom Cake", "50+ Cupcakes", "Personalized Decor"],
primaryButton: {
text: "Book Now", href: "#contact"},
},
]}
/>
</SectionErrorBoundary>
</div>
<PricingSection />
<div id="faq" data-section="faq">
<SectionErrorBoundary name="faq">
<FaqSplitMedia
tag="FAQ"
title="Frequently Asked Questions"
description="Everything you need to know about placing your order."
items={[
{
question: "How far in advance should I order?", answer: "We recommend ordering at least 48 hours for small orders, and 2 weeks for custom event cakes."},
{
question: "Do you deliver?", answer: "Yes, we offer local delivery service within 15 miles of our bakeshop."},
{
question: "Are ingredients gluten-free?", answer: "We offer a specific selection of gluten-friendly products, but our facility is not 100% GF."},
]}
imageSrc="http://img.b2bpic.net/free-photo/chef-cooking-kitchen-while-wearing-professional-attire_23-2151208278.jpg"
/>
</SectionErrorBoundary>
</div>
<FaqSection />
<div id="contact" data-section="contact">
<SectionErrorBoundary name="contact">
<ContactCta
tag="Order Now"
text="Ready to bring sweetness to your next event? Let's get started today."
primaryButton={{
text: "Contact Us", href: "mailto:hello@bakehouse.com"}}
secondaryButton={{
text: "Call Us", href: "tel:555-0123"}}
/>
</SectionErrorBoundary>
</div>
<ContactSection />
</>
);
}

View File

@@ -0,0 +1,23 @@
// AUTO-GENERATED by per-section-migrate. Edit freely — Bob will treat this
// file as the canonical source for the "contact" section.
import React from 'react';
import ContactCta from '@/components/sections/contact/ContactCta';
import SectionErrorBoundary from "@/components/ui/SectionErrorBoundary";
export default function ContactSection(): React.JSX.Element {
return (
<div id="contact" data-section="contact">
<SectionErrorBoundary name="contact">
<ContactCta
tag="Order Now"
text="Ready to bring sweetness to your next event? Let's get started today."
primaryButton={{
text: "Contact Us", href: "mailto:hello@bakehouse.com"}}
secondaryButton={{
text: "Call Us", href: "tel:555-0123"}}
/>
</SectionErrorBoundary>
</div>
);
}

View File

@@ -0,0 +1,29 @@
// AUTO-GENERATED by per-section-migrate. Edit freely — Bob will treat this
// file as the canonical source for the "faq" section.
import React from 'react';
import FaqSplitMedia from '@/components/sections/faq/FaqSplitMedia';
import SectionErrorBoundary from "@/components/ui/SectionErrorBoundary";
export default function FaqSection(): React.JSX.Element {
return (
<div id="faq" data-section="faq">
<SectionErrorBoundary name="faq">
<FaqSplitMedia
tag="FAQ"
title="Frequently Asked Questions"
description="Everything you need to know about placing your order."
items={[
{
question: "How far in advance should I order?", answer: "We recommend ordering at least 48 hours for small orders, and 2 weeks for custom event cakes."},
{
question: "Do you deliver?", answer: "Yes, we offer local delivery service within 15 miles of our bakeshop."},
{
question: "Are ingredients gluten-free?", answer: "We offer a specific selection of gluten-friendly products, but our facility is not 100% GF."},
]}
imageSrc="http://img.b2bpic.net/free-photo/chef-cooking-kitchen-while-wearing-professional-attire_23-2151208278.jpg"
/>
</SectionErrorBoundary>
</div>
);
}

View File

@@ -0,0 +1,34 @@
// AUTO-GENERATED by per-section-migrate. Edit freely — Bob will treat this
// file as the canonical source for the "features" section.
import React from 'react';
import FeaturesDetailedCards from '@/components/sections/features/FeaturesDetailedCards';
import SectionErrorBoundary from "@/components/ui/SectionErrorBoundary";
export default function FeaturesSection(): React.JSX.Element {
return (
<div id="features" data-section="features">
<SectionErrorBoundary name="features">
<FeaturesDetailedCards
tag="Why Us"
title="Crafted with passion, served with love"
description="Quality ingredients, local sourcing, and a dedication to the art of baking."
items={[
{
title: "Organic Ingredients", description: "We use locally sourced, organic flour, butter, and sugar for the best quality.", tags: [
"Quality", "Local"],
imageSrc: "http://img.b2bpic.net/free-photo/top-view-delicious-creamy-cake-inside-plate-with-fresh-raspberries-brown-background_140725-125117.jpg"},
{
title: "Customized to Perfection", description: "Our team works with you to design your perfect cake for any event.", tags: [
"Personalized", "Creative"],
imageSrc: "http://img.b2bpic.net/free-photo/delicious-cupcakes-with-roses_23-2151939177.jpg"},
{
title: "Reliable Delivery", description: "Your orders arrive fresh, safely, and right on time, guaranteed.", tags: [
"Fast", "Reliable"],
imageSrc: "http://img.b2bpic.net/free-photo/sweet-cake-with-powder-sugar_23-2148395147.jpg"},
]}
/>
</SectionErrorBoundary>
</div>
);
}

View File

@@ -0,0 +1,25 @@
// AUTO-GENERATED by per-section-migrate. Edit freely — Bob will treat this
// file as the canonical source for the "hero" section.
import React from 'react';
import HeroBillboard from '@/components/sections/hero/HeroBillboard';
import SectionErrorBoundary from "@/components/ui/SectionErrorBoundary";
export default function HeroSection(): React.JSX.Element {
return (
<div id="hero" data-section="hero">
<SectionErrorBoundary name="hero">
<HeroBillboard
tag="Since 2015"
title="Handcrafted cakes for every celebration"
description="Browse our curated selection of premium cupcakes and custom cakes, trusted by hundreds of happy customers."
primaryButton={{
text: "Order Now", href: "#contact"}}
secondaryButton={{
text: "View Menu", href: "#menu"}}
imageSrc="http://img.b2bpic.net/free-photo/front-view-delicious-cupcake-with-copy-space_23-2148769222.jpg"
/>
</SectionErrorBoundary>
</div>
);
}

View File

@@ -0,0 +1,36 @@
// AUTO-GENERATED by per-section-migrate. Edit freely — Bob will treat this
// file as the canonical source for the "menu" section.
import React from 'react';
import FeaturesImageBento from '@/components/sections/features/FeaturesImageBento';
import SectionErrorBoundary from "@/components/ui/SectionErrorBoundary";
export default function MenuSection(): React.JSX.Element {
return (
<div id="menu" data-section="menu">
<SectionErrorBoundary name="menu">
<FeaturesImageBento
tag="Our Menu"
title="A delight for every occasion"
description="From custom wedding cakes to artisan cupcakes, explore our full range of handcrafted treats."
items={[
{
title: "Custom Wedding Cakes", description: "Tailored designs for your special day.", imageSrc: "http://img.b2bpic.net/free-photo/gourmet-dessert-table-with-homemade-cakes-cupcakes-generated-by-ai_188544-44693.jpg"},
{
title: "Signature Cupcakes", description: "Premium flavors, baked fresh daily.", imageSrc: "http://img.b2bpic.net/free-photo/recipe-bun-portion-freshness-cake-snack_1339-3253.jpg"},
{
title: "Artisan Pastries", description: "Handcrafted sweets in small batches.", imageSrc: "http://img.b2bpic.net/free-photo/top-view-yummy-sweet-pancakes-with-cup-tea-light-desk_140725-91396.jpg"},
{
title: "Celebration Boxes", description: "Curated boxes perfect for gifting.", imageSrc: "http://img.b2bpic.net/free-photo/black-wooden-board-azerbaijani-gohal-clay-bowl-flour_114579-51707.jpg"},
{
title: "Specialty Cookies", description: "Chewy, flavorful, and freshly made.", imageSrc: "http://img.b2bpic.net/free-photo/delicious-cake-indoors-still-life_23-2151172727.jpg"},
{
title: "Signature Donuts", description: "Gourmet flavors you'll fall for.", imageSrc: "http://img.b2bpic.net/free-photo/top-view-delicious-cupcakes-assortment_23-2149021980.jpg"},
{
title: "Seasonal Desserts", description: "Limited time flavors to enjoy now.", imageSrc: "http://img.b2bpic.net/free-photo/side-view-meat-with-greek-yogurt-sauce-plate_140725-11511.jpg"},
]}
/>
</SectionErrorBoundary>
</div>
);
}

View File

@@ -0,0 +1,21 @@
// AUTO-GENERATED by per-section-migrate. Edit freely — Bob will treat this
// file as the canonical source for the "pricing" section.
import React from 'react';
import PricingCenteredCards from '@/components/sections/pricing/PricingCenteredCards';
import SectionErrorBoundary from "@/components/ui/SectionErrorBoundary";
export default function PricingSection(): React.JSX.Element {
return (
<div id="pricing" data-section="pricing">
<SectionErrorBoundary name="pricing">
<PricingCenteredCards
tag="Pricing"
title="Transparent pricing for custom treats"
description="Simple packages to help you get started."
plans={[{"primaryButton":{"href":"#contact","text":"Book Now"},"description":"Perfect for small family birthdays.","price":"₹450","features":["12 Cupcakes","3 Cake Flavors","Basic Design"],"tag":"Essentials"},{"tag":"Celebration","features":["24 Cupcakes","6 Cake Flavors","Detailed Design"],"price":"₹800","description":"Best for moderate parties and events.","primaryButton":{"href":"#contact","text":"Book Now"}},{"price":"₹800+","features":["Custom Cake","50+ Cupcakes","Personalized Decor"],"description":"Tailored packages for big occasions.","primaryButton":{"text":"Book Now","href":"#contact"},"tag":"Grand Event"}]}
/>
</SectionErrorBoundary>
</div>
);
}

View File

@@ -0,0 +1,21 @@
// AUTO-GENERATED by per-section-migrate. Edit freely — Bob will treat this
// file as the canonical source for the "testimonials" section.
import React from 'react';
import TestimonialColumnMarqueeCards from '@/components/sections/testimonial/TestimonialColumnMarqueeCards';
import SectionErrorBoundary from "@/components/ui/SectionErrorBoundary";
export default function TestimonialsSection(): React.JSX.Element {
return (
<div id="testimonials" data-section="testimonials">
<SectionErrorBoundary name="testimonials">
<TestimonialColumnMarqueeCards
tag="Testimonials"
title="Loved by our local community"
description="Read what our happy customers are saying about our bakeshop."
testimonials={[{"imageSrc":"http://img.b2bpic.net/free-photo/holidays-celebration-dreamy-birthday-girl-making-wish-looking-up-hopeful-holding-bday-cake_1258-117410.jpg","quote":"The most beautiful wedding cake I've seen in years! Absolutely delicious.","name":"Priya S.","role":"Wedding Planner"},{"quote":"Reliable and incredibly tasty. Our team loves the weekly cupcake boxes.","imageSrc":"http://img.b2bpic.net/free-photo/father-son-drinking-coffee-together_23-2148351721.jpg","role":"CEO","name":"Rahul D."},{"name":"Anjali R.","role":"Artist","imageSrc":"http://img.b2bpic.net/free-photo/beautiful-girls-buys-buns-bakery_1157-24671.jpg","quote":"The artistry is unmatched. My birthday cake was exactly what I imagined."},{"quote":"Consistent quality every single time. Definitely my go-to for events.","imageSrc":"http://img.b2bpic.net/free-photo/happy-amusing-young-woman-smiling-eating-cakes_171337-14496.jpg","role":"Accountant","name":"Vikram T."},{"role":"Teacher","name":"Neha H.","quote":"Kids loved the custom cupcake design. Will order again next year!","imageSrc":"http://img.b2bpic.net/free-photo/young-woman-with-dalgona-cookie_23-2149234603.jpg"}]}
/>
</SectionErrorBoundary>
</div>
);
}

View File

@@ -0,0 +1,39 @@
import { motion } from "motion/react"
import ScrollReveal from "@/components/ui/ScrollReveal"
import TextAnimation from "@/components/ui/TextAnimation"
export default function TrustLogosSection() {
const logos = [
"FSSAI Certified",
"Times Food Award",
"Zomato Top Rated",
"Swiggy Super",
"Local Choice"
];
return (
<section id="trust-logos" data-webild-section="trust-logos" className="py-12 bg-card border-y border-border/50">
<div className="w-content-width mx-auto px-4 md:px-6">
<ScrollReveal variant="fade">
<div className="flex flex-col items-center justify-center space-y-6">
<TextAnimation
text="Recognized for Quality & Safety"
variant="fade"
className="text-sm font-medium text-muted-foreground uppercase tracking-wider"
gradientText={false}
/>
<div className="flex flex-wrap justify-center items-center gap-8 md:gap-16 opacity-70">
{logos.map((logo, index) => (
<div key={index} className="flex items-center justify-center">
<span className="text-lg md:text-xl font-bold text-foreground whitespace-nowrap">
{logo}
</span>
</div>
))}
</div>
</div>
</ScrollReveal>
</div>
</section>
);
}