Merge version_6_1780873764037 into main #3

Merged
bender merged 2 commits from version_6_1780873764037 into main 2026-06-07 23:13:56 +00:00
9 changed files with 443 additions and 241 deletions

View File

@@ -1,246 +1,38 @@
import AboutTextSplit from '@/components/sections/about/AboutTextSplit';
import ContactCta from '@/components/sections/contact/ContactCta';
import FaqTabbedAccordion from '@/components/sections/faq/FaqTabbedAccordion';
import FeaturesGridSplit from '@/components/sections/features/FeaturesGridSplit';
import FeaturesImageBento from '@/components/sections/features/FeaturesImageBento';
import HeroBillboard from '@/components/sections/hero/HeroBillboard';
import SocialProofMarquee from '@/components/sections/social-proof/SocialProofMarquee';
import TestimonialMarqueeCards from '@/components/sections/testimonial/TestimonialMarqueeCards';
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; this shell only fixes render order.
export default function HomePage() {
import React from 'react';
import HomeSection from './HomePage/sections/Home';
import AboutSection from './HomePage/sections/About';
import * as ProductsModule from './HomePage/sections/Products';
import ServicesSection from './HomePage/sections/Services';
import TestimonialsSection from './HomePage/sections/Testimonials';
import PartnersSection from './HomePage/sections/Partners';
import FaqSection from './HomePage/sections/Faq';
import ContactSection from './HomePage/sections/Contact';
const ProductsSection = () => {
const Component =
(ProductsModule as any).default ||
(ProductsModule as any).ProductsSection ||
(ProductsModule as any).Products ||
(Object.keys(ProductsModule).length > 0 ? (ProductsModule as any)[Object.keys(ProductsModule)[0]] : null);
return Component ? <Component /> : null;
};
export default function HomePage(): React.JSX.Element {
return (
<>
<div id="home" data-section="home">
<SectionErrorBoundary name="home">
<HeroBillboard
title="Your Daily Dose of Artisan Freshness"
description="Artisan breads, pastries, and custom cakes crafted with premium ingredients. Order online or visit us today."
primaryButton={{
text: "Order Now",
href: "#contact",
}}
secondaryButton={{
text: "Our Menu",
href: "#products",
}}
imageSrc="http://img.b2bpic.net/free-photo/top-view-mix-breads-cookies-with-brown-sugar-cubes_23-2148695485.jpg"
/>
</SectionErrorBoundary>
</div>
<div id="about" data-section="about">
<SectionErrorBoundary name="about">
<AboutTextSplit
title="Our Passion for Baking"
descriptions={[
"At The Daily Crumb, every loaf of bread, every delicate pastry, and every celebration cake is baked with love and the finest ingredients. We are a family-owned bakery, dedicated to bringing joy and delicious moments to our community.",
"For over a decade, we've perfected our recipes, combining traditional techniques with innovative flavors. From early morning deliveries to bespoke wedding cakes, our commitment to quality and freshness shines through in every bite. Come taste the difference!",
]}
/>
</SectionErrorBoundary>
</div>
<div id="products" data-section="products">
<SectionErrorBoundary name="products">
<FeaturesImageBento
tag="Our Delights"
title="Explore Our Freshly Baked Selection"
description="From classic croissants to signature sourdoughs, our ovens are always busy crafting the perfect treat for you."
items={[
{
imageSrc: "http://img.b2bpic.net/free-photo/flat-lay-hands-holding-bread-cloth_23-2148288069.jpg",
href: "#",
},
{
imageSrc: "http://img.b2bpic.net/free-photo/fresh-french-croissants-with-golden-crust-blue-wooden-board_114579-58902.jpg",
href: "#",
},
{
imageSrc: "http://img.b2bpic.net/free-photo/birthday-party-composition_23-2147654681.jpg",
href: "#",
},
{
imageSrc: "http://img.b2bpic.net/free-photo/glass-cup-milk-with-chocolate-cookies-wooden-cutting-board_114579-62928.jpg",
href: "#",
},
{
imageSrc: "http://img.b2bpic.net/free-photo/delicious-plum-pie-with-chemex-coffee-ingredients-with-fabric-wooden-table-with-fabric_181624-18679.jpg",
href: "#",
},
{
imageSrc: "http://img.b2bpic.net/free-photo/assortment-pieces-cake_114579-30703.jpg",
href: "#",
},
{
imageSrc: "http://img.b2bpic.net/free-photo/three-piece-fresh-baguette-flour_114579-48928.jpg",
href: "#",
},
]}
/>
</SectionErrorBoundary>
</div>
<div id="services" data-section="services">
<SectionErrorBoundary name="services">
<FeaturesGridSplit
tag="Beyond the Counter"
title="Custom Orders & Catering"
description="Planning a special event or need a personalized cake? We offer bespoke solutions to make your moments extra sweet."
topItems={[
{
title: "Custom Celebration Cakes",
description: "From elegant wedding cakes to fun birthday creations, we design custom cakes that are as unique as your celebration.",
imageSrc: "http://img.b2bpic.net/free-photo/sweet-candy-bar-wedding-celebration-party_482257-31517.jpg",
},
{
title: "Event & Corporate Catering",
description: "Impress your guests or clients with a delightful selection of our finest pastries, mini desserts, and savory treats.",
imageSrc: "http://img.b2bpic.net/free-photo/candy-bar-with-mousse-desserts-eclairs-patisserie-violet-table_8353-9830.jpg",
},
]}
bottomItem={{
title: "Wholesale Partnerships",
description: "Looking to offer quality baked goods at your café or restaurant? Partner with The Daily Crumb for fresh, reliable supply.",
primaryButton: {
text: "Learn More",
href: "#contact",
},
imageSrc: "http://img.b2bpic.net/free-photo/close-up-people-clinking-glasses_23-2149295545.jpg",
}}
/>
</SectionErrorBoundary>
</div>
<div id="testimonials" data-section="testimonials">
<SectionErrorBoundary name="testimonials">
<TestimonialMarqueeCards
tag="Loved by Many"
title="What Our Customers Say"
description="Hear from our happy customers who enjoy the freshness and quality of The Daily Crumb."
testimonials={[
{
name: "Sarah J.",
role: "Local Resident",
quote: "The sourdough bread from The Daily Crumb is simply the best in town. It's a staple in our household!",
imageSrc: "http://img.b2bpic.net/free-photo/close-up-woman-holding-cupcake_23-2148263228.jpg",
},
{
name: "Michael C.",
role: "Event Planner",
quote: "Their custom cakes are true works of art. The attention to detail and flavor are unmatched for our corporate events.",
imageSrc: "http://img.b2bpic.net/free-photo/family-routine-concept-mixed-race-male-reads-attentively-news-tablet-computer-sits-kitchen_273609-8912.jpg",
},
{
name: "Emily R.",
role: "Community Member",
quote: "I love stopping by for my morning coffee and a croissant. The staff are always so friendly, and everything is so fresh.",
imageSrc: "http://img.b2bpic.net/free-photo/family-cooks-dough-cookies-kitchen_1157-25225.jpg",
},
{
name: "David K.",
role: "Restaurant Owner",
quote: "Partnering with The Daily Crumb for our daily bread supply has been fantastic. Our customers rave about the quality.",
imageSrc: "http://img.b2bpic.net/free-photo/businessmen-laughing_23-2147704583.jpg",
},
{
name: "Jessica L.",
role: "Student",
quote: "The muffins are my go-to study snack. Always delicious and gives me the perfect energy boost!",
imageSrc: "http://img.b2bpic.net/free-photo/father-s-day-composition-with-delicious-croissant_23-2147632064.jpg",
},
{
name: "Robert B.",
role: "Retiree",
quote: "This bakery reminds me of my grandmother's kitchen. The classic recipes are just perfect, pure comfort.",
imageSrc: "http://img.b2bpic.net/free-photo/excited-elegant-middle-aged-businesswoman-using-laptop-work-clenching-fists-happy-win-tender_343059-3753.jpg",
},
]}
/>
</SectionErrorBoundary>
</div>
<div id="partners" data-section="partners">
<SectionErrorBoundary name="partners">
<SocialProofMarquee
tag="Trusted Partners"
title="Proudly Serving Our Community"
description="We partner with local businesses and events to bring our delicious baked goods further."
names={[
"Cafe Delight",
"Sweet Escapes Catering",
"Golden Oven Bistro",
"Morning Muffin Co.",
"Flourish Foods Market",
"Dough & Co. Eatery",
"Sugar & Spice Event Planners",
]}
/>
</SectionErrorBoundary>
</div>
<div id="faq" data-section="faq">
<SectionErrorBoundary name="faq">
<FaqTabbedAccordion
tag="Got Questions?"
title="Frequently Asked Questions"
description="Find quick answers to common inquiries about our products, ordering, and services."
categories={[
{
name: "General",
items: [
{
question: "What are your bakery's operating hours?",
answer: "We are open Monday to Saturday from 7 AM to 6 PM, and Sunday from 8 AM to 3 PM. Please check our Google Maps listing for any holiday hours.",
},
{
question: "Do you offer gluten-free or vegan options?",
answer: "Yes, we have a selection of delicious gluten-free and vegan pastries available daily. Please ask our staff for today's special selection as it varies.",
},
{
question: "Where are your ingredients sourced from?",
answer: "We pride ourselves on using locally sourced, premium ingredients whenever possible. Our flour comes from local mills, and seasonal fruits are from nearby farms.",
},
],
},
{
name: "Ordering",
items: [
{
question: "How can I place an online order?",
answer: "You can place online orders directly through our website by navigating to the 'Order Now' section. Select your items, choose pick-up or delivery, and complete the checkout process.",
},
{
question: "What is the lead time for custom cake orders?",
answer: "For custom cakes, we require a minimum of 7 days' notice. For intricate designs or large orders, we recommend booking 2-3 weeks in advance to ensure availability.",
},
{
question: "Do you offer delivery services?",
answer: "Yes, we offer local delivery within a 10-mile radius for online orders over $25. Delivery fees apply based on distance. You can check availability at checkout.",
},
],
},
]}
/>
</SectionErrorBoundary>
</div>
<div id="contact" data-section="contact">
<SectionErrorBoundary name="contact">
<ContactCta
tag="Visit Us or Order Today"
text="Ready to indulge? Stop by our bakery, or place your order online for pick-up or delivery. We can't wait to serve you!"
primaryButton={{
text: "Order Now",
href: "mailto:orders@thedailycrumb.com",
}}
secondaryButton={{
text: "Get Directions",
href: "https://maps.google.com/maps?q=The+Daily+Crumb",
}}
/>
</SectionErrorBoundary>
</div>
<HomeSection />
<AboutSection />
<ProductsSection />
<ServicesSection />
<TestimonialsSection />
<PartnersSection />
<FaqSection />
<ContactSection />
</>
);
}
}

View File

@@ -0,0 +1,22 @@
// AUTO-GENERATED by per-section-migrate. Edit freely — Bob will treat this
// file as the canonical source for the "about" section.
import React from 'react';
import AboutTextSplit from '@/components/sections/about/AboutTextSplit';
import SectionErrorBoundary from "@/components/ui/SectionErrorBoundary";
export default function AboutSection(): React.JSX.Element {
return (
<div id="about" data-section="about">
<SectionErrorBoundary name="about">
<AboutTextSplit
title="Our Passion for Baking"
descriptions={[
"At The Daily Crumb, every loaf of bread, every delicate pastry, and every celebration cake is baked with love and the finest ingredients. We are a family-owned bakery, dedicated to bringing joy and delicious moments to our community.",
"For over a decade, we've perfected our recipes, combining traditional techniques with innovative flavors. From early morning deliveries to bespoke wedding cakes, our commitment to quality and freshness shines through in every bite. Come taste the difference!",
]}
/>
</SectionErrorBoundary>
</div>
);
}

View File

@@ -0,0 +1,27 @@
// 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="Visit Us or Order Today"
text="Ready to indulge? Stop by our bakery, or place your order online for pick-up or delivery. We can't wait to serve you!"
primaryButton={{
text: "Order Now",
href: "mailto:orders@thedailycrumb.com",
}}
secondaryButton={{
text: "Get Directions",
href: "https://maps.google.com/maps?q=The+Daily+Crumb",
}}
/>
</SectionErrorBoundary>
</div>
);
}

View File

@@ -0,0 +1,56 @@
// 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 FaqTabbedAccordion from '@/components/sections/faq/FaqTabbedAccordion';
import SectionErrorBoundary from "@/components/ui/SectionErrorBoundary";
export default function FaqSection(): React.JSX.Element {
return (
<div id="faq" data-section="faq">
<SectionErrorBoundary name="faq">
<FaqTabbedAccordion
tag="Got Questions?"
title="Frequently Asked Questions"
description="Find quick answers to common inquiries about our products, ordering, and services."
categories={[
{
name: "General",
items: [
{
question: "What are your bakery's operating hours?",
answer: "We are open Monday to Saturday from 7 AM to 6 PM, and Sunday from 8 AM to 3 PM. Please check our Google Maps listing for any holiday hours.",
},
{
question: "Do you offer gluten-free or vegan options?",
answer: "Yes, we have a selection of delicious gluten-free and vegan pastries available daily. Please ask our staff for today's special selection as it varies.",
},
{
question: "Where are your ingredients sourced from?",
answer: "We pride ourselves on using locally sourced, premium ingredients whenever possible. Our flour comes from local mills, and seasonal fruits are from nearby farms.",
},
],
},
{
name: "Ordering",
items: [
{
question: "How can I place an online order?",
answer: "You can place online orders directly through our website by navigating to the 'Order Now' section. Select your items, choose pick-up or delivery, and complete the checkout process.",
},
{
question: "What is the lead time for custom cake orders?",
answer: "For custom cakes, we require a minimum of 7 days' notice. For intricate designs or large orders, we recommend booking 2-3 weeks in advance to ensure availability.",
},
{
question: "Do you offer delivery services?",
answer: "Yes, we offer local delivery within a 10-mile radius for online orders over $25. Delivery fees apply based on distance. You can check availability at checkout.",
},
],
},
]}
/>
</SectionErrorBoundary>
</div>
);
}

View File

@@ -0,0 +1,28 @@
// AUTO-GENERATED by per-section-migrate. Edit freely — Bob will treat this
// file as the canonical source for the "home" section.
import React from 'react';
import HeroBillboard from '@/components/sections/hero/HeroBillboard';
import SectionErrorBoundary from "@/components/ui/SectionErrorBoundary";
export default function HomeSection(): React.JSX.Element {
return (
<div id="home" data-section="home">
<SectionErrorBoundary name="home">
<HeroBillboard
title="Your Daily Dose of Artisan Freshness"
description="Artisan breads, pastries, and custom cakes crafted with premium ingredients. Order online or visit us today."
primaryButton={{
text: "Order Now",
href: "#contact",
}}
secondaryButton={{
text: "Our Menu",
href: "#products",
}}
imageSrc="http://img.b2bpic.net/free-photo/top-view-mix-breads-cookies-with-brown-sugar-cubes_23-2148695485.jpg"
/>
</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 "partners" section.
import React from 'react';
import SocialProofMarquee from '@/components/sections/social-proof/SocialProofMarquee';
import SectionErrorBoundary from "@/components/ui/SectionErrorBoundary";
export default function PartnersSection(): React.JSX.Element {
return (
<div id="partners" data-section="partners">
<SectionErrorBoundary name="partners">
<SocialProofMarquee
tag="Trusted Partners"
title="Proudly Serving Our Community"
description="We partner with local businesses and events to bring our delicious baked goods further."
names={[
"Cafe Delight",
"Sweet Escapes Catering",
"Golden Oven Bistro",
"Morning Muffin Co.",
"Flourish Foods Market",
"Dough & Co. Eatery",
"Sugar & Spice Event Planners",
]}
/>
</SectionErrorBoundary>
</div>
);
}

View File

@@ -0,0 +1,149 @@
// @ts-nocheck — generated by catalog-eject; runtime-correct but TS strict-mode false-positives on inlined catalog body
import Button from "@/components/ui/Button";
import TextAnimation from "@/components/ui/TextAnimation";
import ImageOrVideo from "@/components/ui/ImageOrVideo";
import ScrollReveal from "@/components/ui/ScrollReveal";
import { cls } from "@/lib/utils";
import React from 'react';
import { Star } from 'lucide-react';
type FeatureItem = {
href?: string;
} & ({ imageSrc: string; videoSrc?: never } | { videoSrc: string; imageSrc?: never });
interface FeaturesImageBentoProps {
tag: string;
title: string;
description: string;
primaryButton?: { text: string; href: string };
secondaryButton?: { text: string; href: string };
items: [FeatureItem, FeatureItem, FeatureItem, FeatureItem, FeatureItem, FeatureItem, FeatureItem];
}
const ProductsInline = () => {
const gridClasses = [
"md:col-span-2",
"md:col-span-4",
"md:col-span-3",
"md:col-span-3",
"md:col-span-2",
"md:col-span-2",
"md:col-span-2",
];
const staggerDelays = [
0,
0.1,
0,
0.1,
0,
0.1,
0.2,
];
return (
<section aria-label="Features image bento section" className="py-20 bg-background" id="products" data-section="products">
<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>Our Delights</p>
</div>
<TextAnimation
text="Explore Our Freshly Baked Selection"
variant="fade-blur"
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="From classic croissants to signature sourdoughs, our ovens are always busy crafting the perfect treat for you."
variant="fade-blur"
gradientText={false}
tag="p"
className="md:max-w-7/10 text-lg md:text-xl leading-snug text-center text-balance"
/>
</div>
<div className="w-content-width mx-auto grid grid-cols-1 md:grid-cols-6 gap-3">
{items.map((item, index) => (
<ScrollReveal
key={index}
delay={staggerDelays[index]}
className={cls(
"card rounded-xl overflow-hidden",
gridClasses[index]
)}
>
{item.href ? (
<a href={item.href} className="block h-full">
<div className="h-80 xl:h-100 2xl:h-120 overflow-hidden relative group">
<ImageOrVideo
imageSrc={item.imageSrc}
videoSrc={item.videoSrc}
className="w-full h-full object-cover transition-transform duration-700 group-hover:scale-105"
/>
<div className="absolute inset-0 bg-gradient-to-t from-black/40 via-transparent to-transparent pointer-events-none" />
<div className="absolute bottom-4 left-4 flex gap-1 bg-background/90 backdrop-blur-md px-3 py-1.5 rounded-full shadow-sm z-10">
{Array.from({ length: 5 }).map((_, i) => (
<Star
key={i}
className={`w-4 h-4 ${i < (item.rating || 5) ? 'fill-yellow-500 text-yellow-500' : 'fill-transparent text-muted-foreground'}`}
/>
))}
</div>
</div>
</a>
) : (
<div className="h-80 xl:h-100 2xl:h-120 overflow-hidden relative group">
<ImageOrVideo
imageSrc={item.imageSrc}
videoSrc={item.videoSrc}
className="w-full h-full object-cover transition-transform duration-700 group-hover:scale-105"
/>
<div className="absolute inset-0 bg-gradient-to-t from-black/40 via-transparent to-transparent pointer-events-none" />
<div className="absolute bottom-4 left-4 flex gap-1 bg-background/90 backdrop-blur-md px-3 py-1.5 rounded-full shadow-sm z-10">
{Array.from({ length: 5 }).map((_, i) => (
<Star
key={i}
className={`w-4 h-4 ${i < (item.rating || 5) ? 'fill-yellow-500 text-yellow-500' : 'fill-transparent text-muted-foreground'}`}
/>
))}
</div>
</div>
)}
</ScrollReveal>
))}
</div>
</div>
</section>
);
}
type FeatureItem = {
href?: string;
rating?: number;
} & ({ imageSrc: string; videoSrc?: never } | { videoSrc: string; imageSrc?: never });
const items: FeatureItem[] = [
{ imageSrc: "http://img.b2bpic.net/free-photo/flat-lay-hands-holding-bread-cloth_23-2148288069.jpg", href: "#", rating: 5 },
{ imageSrc: "http://img.b2bpic.net/free-photo/fresh-french-croissants-with-golden-crust-blue-wooden-board_114579-58902.jpg", href: "#", rating: 4 },
{ imageSrc: "http://img.b2bpic.net/free-photo/birthday-party-composition_23-2147654681.jpg", href: "#", rating: 5 },
{ imageSrc: "http://img.b2bpic.net/free-photo/glass-cup-milk-with-chocolate-cookies-wooden-cutting-board_114579-62928.jpg", href: "#", rating: 4 },
{ imageSrc: "http://img.b2bpic.net/free-photo/delicious-plum-pie-with-chemex-coffee-ingredients-with-fabric-wooden-table-with-fabric_181624-18679.jpg", href: "#", rating: 5 },
{ imageSrc: "http://img.b2bpic.net/free-photo/assortment-pieces-cake_114579-30703.jpg", href: "#", rating: 3 },
{ imageSrc: "http://img.b2bpic.net/free-photo/three-piece-fresh-baguette-flour_114579-48928.jpg", href: "#", rating: 5 }
];
const gridClasses = [
"md:col-span-2",
"md:col-span-4",
"md:col-span-3",
"md:col-span-3",
"md:col-span-2",
"md:col-span-2",
"md:col-span-2",
];
const staggerDelays = [0, 0.1, 0, 0.1, 0, 0.1, 0.2];

View File

@@ -0,0 +1,41 @@
// AUTO-GENERATED by per-section-migrate. Edit freely — Bob will treat this
// file as the canonical source for the "services" section.
import React from 'react';
import FeaturesGridSplit from '@/components/sections/features/FeaturesGridSplit';
import SectionErrorBoundary from "@/components/ui/SectionErrorBoundary";
export default function ServicesSection(): React.JSX.Element {
return (
<div id="services" data-section="services">
<SectionErrorBoundary name="services">
<FeaturesGridSplit
tag="Beyond the Counter"
title="Custom Orders & Catering"
description="Planning a special event or need a personalized cake? We offer bespoke solutions to make your moments extra sweet."
topItems={[
{
title: "Custom Celebration Cakes",
description: "From elegant wedding cakes to fun birthday creations, we design custom cakes that are as unique as your celebration.",
imageSrc: "http://img.b2bpic.net/free-photo/sweet-candy-bar-wedding-celebration-party_482257-31517.jpg",
},
{
title: "Event & Corporate Catering",
description: "Impress your guests or clients with a delightful selection of our finest pastries, mini desserts, and savory treats.",
imageSrc: "http://img.b2bpic.net/free-photo/candy-bar-with-mousse-desserts-eclairs-patisserie-violet-table_8353-9830.jpg",
},
]}
bottomItem={{
title: "Wholesale Partnerships",
description: "Looking to offer quality baked goods at your café or restaurant? Partner with The Daily Crumb for fresh, reliable supply.",
primaryButton: {
text: "Learn More",
href: "#contact",
},
imageSrc: "http://img.b2bpic.net/free-photo/close-up-people-clinking-glasses_23-2149295545.jpg",
}}
/>
</SectionErrorBoundary>
</div>
);
}

View File

@@ -0,0 +1,58 @@
// 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 TestimonialMarqueeCards from '@/components/sections/testimonial/TestimonialMarqueeCards';
import SectionErrorBoundary from "@/components/ui/SectionErrorBoundary";
export default function TestimonialsSection(): React.JSX.Element {
return (
<div id="testimonials" data-section="testimonials">
<SectionErrorBoundary name="testimonials">
<TestimonialMarqueeCards
tag="Loved by Many"
title="What Our Customers Say"
description="Hear from our happy customers who enjoy the freshness and quality of The Daily Crumb."
testimonials={[
{
name: "Sarah J.",
role: "Local Resident",
quote: "The sourdough bread from The Daily Crumb is simply the best in town. It's a staple in our household!",
imageSrc: "http://img.b2bpic.net/free-photo/close-up-woman-holding-cupcake_23-2148263228.jpg",
},
{
name: "Michael C.",
role: "Event Planner",
quote: "Their custom cakes are true works of art. The attention to detail and flavor are unmatched for our corporate events.",
imageSrc: "http://img.b2bpic.net/free-photo/family-routine-concept-mixed-race-male-reads-attentively-news-tablet-computer-sits-kitchen_273609-8912.jpg",
},
{
name: "Emily R.",
role: "Community Member",
quote: "I love stopping by for my morning coffee and a croissant. The staff are always so friendly, and everything is so fresh.",
imageSrc: "http://img.b2bpic.net/free-photo/family-cooks-dough-cookies-kitchen_1157-25225.jpg",
},
{
name: "David K.",
role: "Restaurant Owner",
quote: "Partnering with The Daily Crumb for our daily bread supply has been fantastic. Our customers rave about the quality.",
imageSrc: "http://img.b2bpic.net/free-photo/businessmen-laughing_23-2147704583.jpg",
},
{
name: "Jessica L.",
role: "Student",
quote: "The muffins are my go-to study snack. Always delicious and gives me the perfect energy boost!",
imageSrc: "http://img.b2bpic.net/free-photo/father-s-day-composition-with-delicious-croissant_23-2147632064.jpg",
},
{
name: "Robert B.",
role: "Retiree",
quote: "This bakery reminds me of my grandmother's kitchen. The classic recipes are just perfect, pure comfort.",
imageSrc: "http://img.b2bpic.net/free-photo/excited-elegant-middle-aged-businesswoman-using-laptop-work-clenching-fists-happy-win-tender_343059-3753.jpg",
},
]}
/>
</SectionErrorBoundary>
</div>
);
}