Compare commits
28 Commits
version_1_
...
main
| Author | SHA1 | Date | |
|---|---|---|---|
| 3e30d96568 | |||
|
|
f92c053d9a | ||
| 8bf9127975 | |||
|
|
e706c96446 | ||
| 56a01645f1 | |||
|
|
532ed40610 | ||
| c2646d5c11 | |||
|
|
548163a783 | ||
| 58750c9da9 | |||
|
|
10de60098f | ||
| ea8d03e0ec | |||
|
|
6beb29ee23 | ||
| 7b8ba995cd | |||
|
|
a11568b7c7 | ||
| 0194a09ddb | |||
|
|
014fb1ff2b | ||
| b7103e9b8b | |||
|
|
cf066a66a8 | ||
| 5b56576767 | |||
|
|
8876fb18b1 | ||
| 5a65e07558 | |||
|
|
092d712508 | ||
|
|
7883b32660 | ||
| d166f7f52b | |||
|
|
884cfded40 | ||
|
|
feb3ec0d67 | ||
| d9678c8a75 | |||
|
|
9eeb8a9c16 |
@@ -2,11 +2,13 @@ import { Routes, Route } from 'react-router-dom';
|
||||
import Layout from './components/Layout';
|
||||
import HomePage from './pages/HomePage';
|
||||
|
||||
import BookNowPage from "@/pages/BookNowPage";
|
||||
export default function App() {
|
||||
return (
|
||||
<Routes>
|
||||
<Route element={<Layout />}>
|
||||
<Route path="/" element={<HomePage />} />
|
||||
<Route path="/book-now" element={<BookNowPage />} />
|
||||
</Route>
|
||||
</Routes>
|
||||
);
|
||||
|
||||
@@ -9,32 +9,34 @@ export default function Layout() {
|
||||
const navItems = [
|
||||
{
|
||||
"name": "Home",
|
||||
"href": "#home"
|
||||
"href": "/#home"
|
||||
},
|
||||
{
|
||||
"name": "About Us",
|
||||
"href": "#about"
|
||||
"href": "/#about"
|
||||
},
|
||||
{
|
||||
"name": "Products",
|
||||
"href": "#products"
|
||||
"href": "/#products"
|
||||
},
|
||||
{
|
||||
"name": "Why Us",
|
||||
"href": "#why-us"
|
||||
"href": "/#why-us"
|
||||
},
|
||||
{
|
||||
"name": "Testimonials",
|
||||
"href": "#testimonials"
|
||||
"href": "/#testimonials"
|
||||
},
|
||||
{
|
||||
"name": "FAQ",
|
||||
"href": "#faq"
|
||||
"href": "/#faq"
|
||||
},
|
||||
{
|
||||
"name": "Social Proof",
|
||||
"href": "#social-proof"
|
||||
}
|
||||
"href": "/#social-proof"
|
||||
},
|
||||
{ name: "Book Now", href: "/book-now" },
|
||||
|
||||
];
|
||||
|
||||
return (
|
||||
@@ -44,7 +46,7 @@ export default function Layout() {
|
||||
<NavbarCentered
|
||||
ctaButton={{
|
||||
text: "Order Now",
|
||||
href: "#contact",
|
||||
href: "/#contact",
|
||||
}}
|
||||
logo="Brand"
|
||||
navItems={navItems} />
|
||||
@@ -60,11 +62,11 @@ export default function Layout() {
|
||||
items: [
|
||||
{
|
||||
label: "About Us",
|
||||
href: "#about",
|
||||
href: "/#about",
|
||||
},
|
||||
{
|
||||
label: "Our Menu",
|
||||
href: "#products",
|
||||
href: "/#products",
|
||||
},
|
||||
{
|
||||
label: "Custom Orders",
|
||||
@@ -81,11 +83,11 @@ export default function Layout() {
|
||||
items: [
|
||||
{
|
||||
label: "FAQ",
|
||||
href: "#faq",
|
||||
href: "/#faq",
|
||||
},
|
||||
{
|
||||
label: "Contact Us",
|
||||
href: "#contact",
|
||||
href: "/#contact",
|
||||
},
|
||||
{
|
||||
label: "Shipping & Delivery",
|
||||
|
||||
23
src/pages/BookNowPage.tsx
Normal file
23
src/pages/BookNowPage.tsx
Normal file
@@ -0,0 +1,23 @@
|
||||
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 ContactSplitForm from "@/components/sections/contact/ContactSplitForm";
|
||||
|
||||
export default function BookNowPage() {
|
||||
return (
|
||||
<>
|
||||
<div data-webild-section="HeroSplit"><section aria-label="Hero section" className="relative flex items-center h-fit md:h-svh pt-25 pb-20 md:py-0"><HeroBackgroundSlot /><div className="flex flex-col md:flex-row items-center gap-12 md:gap-20 w-content-width mx-auto"><div className="w-full md:w-1/2"><div className="flex flex-col items-center md:items-start gap-3"><div className="px-3 py-1 mb-1 text-sm card rounded w-fit"><p>Book Now</p></div><TextAnimation text="Schedule Your Service with Brand Today" variant="fade-blur" gradientText={true} tag="h1" className="text-7xl 2xl:text-8xl leading-[1.15] font-semibold text-center md:text-left text-balance" /><TextAnimation text="Experience the convenience of booking your next appointment online. Our straightforward process ensures you can secure your preferred time quickly and efficiently, getting you closer to the service you need. Start now and take the first step." variant="fade-blur" gradientText={false} tag="p" className="md:max-w-8/10 text-lg md:text-xl leading-snug text-center md:text-left text-balance" /><div className="flex flex-wrap max-md:justify-center gap-3 mt-2 md:mt-3"><Button text="Book Now" href="#booking-form" variant="primary" /><Button text="View Services" href="/services" variant="secondary" animationDelay={0.1} /></div></div></div><ScrollReveal variant="fade-blur" delay={0.2} className="w-full md:w-1/2 h-100 md:h-[65vh] md:max-h-[75svh] p-2 xl:p-3 2xl:p-4 card rounded overflow-hidden"><ImageOrVideo imageSrc="https://img.freepik.com/premium-photo/young-woman-using-laptop-booking-online-appointment-clinic-modern-office_236854-47007.jpg" /></ScrollReveal></div></section></div>
|
||||
<div data-webild-section="ContactSplitForm"><ContactSplitForm
|
||||
tag="Book Now"
|
||||
title="Schedule Your Service Today"
|
||||
description="Ready to experience our services? Use the form below to book your appointment quickly and conveniently. We look forward to serving you."
|
||||
inputs={[{"name":"fullName","type":"text","placeholder":"Your Full Name","required":true},{"name":"email","type":"email","placeholder":"Your Email Address","required":true},{"name":"phone","type":"tel","placeholder":"Your Phone Number","required":true},{"name":"service","type":"text","placeholder":"Preferred Service (e.g., Consultation)","required":true}]}
|
||||
textarea={{"name":"message","placeholder":"Any specific requests or questions?","rows":4,"required":false}}
|
||||
buttonText="Confirm Booking"
|
||||
imageSrc="https://img.freepik.com/premium-photo/businesswoman-using-laptop-making-online-appointment-booking-calendar-schedule-management-concept_31965-10336.jpg"
|
||||
/></div>
|
||||
</>
|
||||
);
|
||||
}
|
||||
@@ -1,268 +1,38 @@
|
||||
import AboutTextSplit from '@/components/sections/about/AboutTextSplit';
|
||||
import ContactCta from '@/components/sections/contact/ContactCta';
|
||||
import FaqSimple from '@/components/sections/faq/FaqSimple';
|
||||
import FeaturesBentoGrid from '@/components/sections/features/FeaturesBentoGrid';
|
||||
import FeaturesRevealCardsBentoSharp from '@/components/sections/features/FeaturesRevealCardsBentoSharp';
|
||||
import HeroTiltedCards from '@/components/sections/hero/HeroTiltedCards';
|
||||
import SocialProofMarquee from '@/components/sections/social-proof/SocialProofMarquee';
|
||||
import TestimonialRatingCards from '@/components/sections/testimonial/TestimonialRatingCards';
|
||||
import SectionErrorBoundary from "@/components/ui/SectionErrorBoundary";
|
||||
import React from 'react';
|
||||
import HomeSection from './HomePage/sections/Home';
|
||||
import AboutSection from './HomePage/sections/About';
|
||||
import ProductsSection from './HomePage/sections/Products';
|
||||
import HowItWorksSection from './HomePage/sections/HowItWorks';
|
||||
import WhyUsSection from './HomePage/sections/WhyUs';
|
||||
import TestimonialsSection from './HomePage/sections/Testimonials';
|
||||
import SocialProofSection from './HomePage/sections/SocialProof';
|
||||
import PricingSection from './HomePage/sections/Pricing';
|
||||
import FaqSection from './HomePage/sections/Faq';
|
||||
import NewsletterSection from './HomePage/sections/Newsletter';
|
||||
import CaseStudiesCardsSection from './HomePage/sections/CaseStudiesCards';
|
||||
import ContactSection from './HomePage/sections/Contact';
|
||||
|
||||
export default function HomePage() {
|
||||
|
||||
|
||||
{/* webild-stub @2026-06-04T15:44:44.030Z: remove all sections except hero and contact form */}
|
||||
|
||||
{/* webild-stub @2026-06-04T15:43:28.905Z: remove all sections except hero and contact form */}
|
||||
|
||||
export default function HomePage(): React.JSX.Element {
|
||||
return (
|
||||
<>
|
||||
<div id="home" data-section="home">
|
||||
<SectionErrorBoundary name="home">
|
||||
<HeroTiltedCards
|
||||
tag="Welcome to Our Bakery"
|
||||
title="Freshly Baked, Made Daily, Just for You"
|
||||
description="Handcrafted pastries, custom cakes, and artisan breads using premium ingredients. Order online or visit us today."
|
||||
primaryButton={{
|
||||
text: "Order Now",
|
||||
href: "#contact",
|
||||
}}
|
||||
secondaryButton={{
|
||||
text: "Our Menu",
|
||||
href: "#products",
|
||||
}}
|
||||
items={[
|
||||
{
|
||||
imageSrc: "http://img.b2bpic.net/free-photo/top-view-challah-dish-hanukkah_23-2151129284.jpg",
|
||||
},
|
||||
{
|
||||
imageSrc: "http://img.b2bpic.net/free-photo/high-angle-people-wearing-linen-clothing_23-2151030585.jpg",
|
||||
},
|
||||
{
|
||||
imageSrc: "http://img.b2bpic.net/free-photo/delicious-freshly-bakery-products-wooden-background-close-up-photo-freshly-baked-bread-products_613910-6800.jpg",
|
||||
},
|
||||
]}
|
||||
/>
|
||||
</SectionErrorBoundary>
|
||||
</div>
|
||||
|
||||
<div id="about" data-section="about">
|
||||
<SectionErrorBoundary name="about">
|
||||
<AboutTextSplit
|
||||
title="Our Story & Philosophy"
|
||||
descriptions={[
|
||||
"At The Daily Crumb Bakery, our passion is bringing joy through exceptional baked goods. Every morning, our skilled bakers rise before dawn to craft an array of pastries, cakes, and breads from scratch. We believe in using only the finest, freshest ingredients, often sourced locally, to ensure every bite is a delightful experience.",
|
||||
"Our philosophy centers around tradition, quality, and community. We combine time-honored baking techniques with creative flair, resulting in unique flavors and textures that captivate the senses. Beyond the delicious treats, we strive to be a warm, welcoming hub where neighbors can gather, share moments, and create cherished memories over a cup of coffee and a perfect pastry.",
|
||||
]}
|
||||
/>
|
||||
</SectionErrorBoundary>
|
||||
</div>
|
||||
|
||||
<div id="products" data-section="products">
|
||||
<SectionErrorBoundary name="products">
|
||||
<FeaturesRevealCardsBentoSharp
|
||||
tag="Our Delicious Offerings"
|
||||
title="Handcrafted Goodness for Every Craving"
|
||||
description="Explore our wide range of freshly baked delights, from everyday treats to special occasion masterpieces."
|
||||
primaryButton={{
|
||||
text: "View Full Menu",
|
||||
href: "#",
|
||||
}}
|
||||
items={[
|
||||
{
|
||||
title: "Gourmet Cupcakes",
|
||||
description: "Indulge in our exquisite cupcakes, baked fresh daily with rich flavors and artful frosting.",
|
||||
href: "#",
|
||||
imageSrc: "http://img.b2bpic.net/free-photo/selective-focus-shot-delicious-chocolate-cupcakes-with-white-cream-topping_181624-40986.jpg",
|
||||
},
|
||||
{
|
||||
title: "Classic Cookies",
|
||||
description: "Discover our irresistible collection of cookies, from chewy chocolate chip to delicate shortbread.",
|
||||
href: "#",
|
||||
imageSrc: "http://img.b2bpic.net/free-photo/cup-milk-book-with-biscuits_114579-6086.jpg",
|
||||
},
|
||||
{
|
||||
title: "Artisan Breads",
|
||||
description: "Savor the crusty perfection of our artisan breads, crafted with traditional methods and natural starters.",
|
||||
href: "#",
|
||||
imageSrc: "http://img.b2bpic.net/free-photo/various-baking-supermarket-shelves-sale_627829-7384.jpg",
|
||||
},
|
||||
{
|
||||
title: "Fruit Tarts",
|
||||
description: "Enjoy the seasonal freshness of our fruit tarts, bursting with flavor and elegantly prepared.",
|
||||
href: "#",
|
||||
imageSrc: "http://img.b2bpic.net/free-photo/homemade-delicious-rustic-summer-berry-tartles_114579-10242.jpg",
|
||||
},
|
||||
{
|
||||
title: "Decadent Donuts",
|
||||
description: "Treat yourself to our fluffy, flavorful donuts, available in a variety of glazes and toppings.",
|
||||
href: "#",
|
||||
imageSrc: "http://img.b2bpic.net/free-photo/delicious-homemade-blood-orange-glaze-donuts_114579-19453.jpg",
|
||||
},
|
||||
{
|
||||
title: "Celebration Cakes",
|
||||
description: "Order a custom cake for your special occasion, designed to impress and delight every guest.",
|
||||
href: "#",
|
||||
imageSrc: "http://img.b2bpic.net/free-photo/top-view-little-creamy-cake-with-chocolate-cookies-dark-surface-biscuit-cake-sweet-pie-sugar-cookie_140725-118183.jpg",
|
||||
},
|
||||
{
|
||||
title: "Pastries & More",
|
||||
description: "From flaky croissants to sweet Danish, our pastry selection offers something for everyone.",
|
||||
href: "#",
|
||||
imageSrc: "http://img.b2bpic.net/free-photo/bakery-plate-near-cup-drink-jam_23-2148031625.jpg",
|
||||
},
|
||||
]}
|
||||
/>
|
||||
</SectionErrorBoundary>
|
||||
</div>
|
||||
|
||||
<div id="why-us" data-section="why-us">
|
||||
<SectionErrorBoundary name="why-us">
|
||||
<FeaturesBentoGrid
|
||||
tag="Why Choose The Daily Crumb?"
|
||||
title="The Heart of Our Bakery"
|
||||
description="Experience the difference that passion, quality ingredients, and artisanal techniques make in every bite."
|
||||
features={[
|
||||
{
|
||||
title: "Fresh, Local Ingredients",
|
||||
description: "We partner with local farms and suppliers to bring you the freshest, highest quality ingredients.",
|
||||
imageSrc: "http://img.b2bpic.net/free-photo/bowl-flour-eggs-kitchen-tool-marble-table_114579-31391.jpg",
|
||||
},
|
||||
{
|
||||
title: "Artisanal Craftsmanship",
|
||||
description: "Our bakers combine time-honored techniques with creative flair, perfecting every recipe.",
|
||||
imageSrc: "http://img.b2bpic.net/free-photo/close-up-baker-hands-kneading-dough_23-2148302953.jpg",
|
||||
},
|
||||
{
|
||||
title: "Custom Creations",
|
||||
description: "From bespoke wedding cakes to corporate catering, we bring your unique vision to life.",
|
||||
imageSrc: "http://img.b2bpic.net/free-photo/beautiful-elegant-cake-topper_23-2149232352.jpg",
|
||||
},
|
||||
{
|
||||
title: "Community Focused",
|
||||
description: "More than just a bakery, we're a beloved local hub where friends and family gather.",
|
||||
imageSrc: "http://img.b2bpic.net/free-photo/influencers-taking-photo-sweets-market_23-2149284359.jpg",
|
||||
},
|
||||
]}
|
||||
/>
|
||||
</SectionErrorBoundary>
|
||||
</div>
|
||||
|
||||
<div id="testimonials" data-section="testimonials">
|
||||
<SectionErrorBoundary name="testimonials">
|
||||
<TestimonialRatingCards
|
||||
tag="What Our Customers Say"
|
||||
title="Loved by Our Community"
|
||||
description="Hear from our happy customers who enjoy our fresh baked goods and exceptional service."
|
||||
testimonials={[
|
||||
{
|
||||
name: "Sarah J.",
|
||||
role: "Local Entrepreneur",
|
||||
quote: "The Daily Crumb is my go-to for morning pastries! Their croissants are simply divine, and the coffee is always perfect. A true neighborhood gem!",
|
||||
rating: 5,
|
||||
imageSrc: "http://img.b2bpic.net/free-photo/portrait-cheerful-woman-eating-piece-cake_171337-4080.jpg",
|
||||
},
|
||||
{
|
||||
name: "Michael Chen",
|
||||
role: "Event Planner",
|
||||
quote: "We've used The Daily Crumb for several corporate events, and they always exceed expectations. Their custom cakes are not only beautiful but incredibly delicious.",
|
||||
rating: 5,
|
||||
imageSrc: "http://img.b2bpic.net/free-photo/happy-businessman-eating-croissant-while-listening-music-earphones-outdoor-cafe_637285-3443.jpg",
|
||||
},
|
||||
{
|
||||
name: "Emily R.",
|
||||
role: "Busy Mom",
|
||||
quote: "Finding quality, fresh bread for my family used to be a challenge until I discovered this bakery. Their sourdough is a weekly staple in our home!",
|
||||
rating: 5,
|
||||
imageSrc: "http://img.b2bpic.net/free-photo/celebration-party-lifestyle-concept-dreamy-cute-silly-blond-girl-thinking-what-wish-bitin_1258-115839.jpg",
|
||||
},
|
||||
{
|
||||
name: "David K.",
|
||||
role: "Retired Teacher",
|
||||
quote: "The warm, inviting atmosphere makes The Daily Crumb a joy to visit. Their friendly staff and delicious treats make my afternoons brighter.",
|
||||
rating: 5,
|
||||
imageSrc: "http://img.b2bpic.net/free-photo/tea-cafe_1098-15634.jpg",
|
||||
},
|
||||
{
|
||||
name: "Jessica L.",
|
||||
role: "Food Blogger",
|
||||
quote: "As a food enthusiast, I can attest to the exceptional quality and innovative flavors at The Daily Crumb. A must-visit for any bakery lover!",
|
||||
rating: 5,
|
||||
imageSrc: "http://img.b2bpic.net/free-photo/young-happy-lady-baker-standing-holding-bread_171337-16136.jpg",
|
||||
},
|
||||
{
|
||||
name: "Alex B.",
|
||||
role: "Student",
|
||||
quote: "Their cookies are seriously the best I've ever had! Perfect study snack. Always a warm welcome when I drop by.",
|
||||
rating: 5,
|
||||
imageSrc: "http://img.b2bpic.net/free-photo/portrait-food-truck-owners_329181-20751.jpg",
|
||||
},
|
||||
]}
|
||||
/>
|
||||
</SectionErrorBoundary>
|
||||
</div>
|
||||
|
||||
<div id="social-proof" data-section="social-proof">
|
||||
<SectionErrorBoundary name="social-proof">
|
||||
<SocialProofMarquee
|
||||
tag="As Seen In"
|
||||
title="Trusted & Featured in Local Publications"
|
||||
description="We are proud to be recognized by our community for our commitment to quality and delicious baked goods."
|
||||
names={[
|
||||
"City Eats Magazine",
|
||||
"Local Flavor Blog",
|
||||
"Foodie Favorites Weekly",
|
||||
"Neighborhood News",
|
||||
"Gourmet Guide",
|
||||
"Sweet Treats Review",
|
||||
"Bake & Brew Chronicle",
|
||||
]}
|
||||
/>
|
||||
</SectionErrorBoundary>
|
||||
</div>
|
||||
|
||||
<div id="faq" data-section="faq">
|
||||
<SectionErrorBoundary name="faq">
|
||||
<FaqSimple
|
||||
tag="Got Questions?"
|
||||
title="Frequently Asked Questions"
|
||||
description="Find answers to common questions about our products, ordering, and services."
|
||||
items={[
|
||||
{
|
||||
question: "What are your bakery's operating hours?",
|
||||
answer: "Our bakery is open from 7:00 AM to 5:00 PM, Tuesday through Sunday. We are closed on Mondays.",
|
||||
},
|
||||
{
|
||||
question: "Do you offer gluten-free or vegan options?",
|
||||
answer: "Yes, we offer a selection of delicious gluten-free and vegan baked goods. Please check our in-store display or online menu for daily availability.",
|
||||
},
|
||||
{
|
||||
question: "How can I place a custom cake order?",
|
||||
answer: "For custom cake orders, please visit our 'Custom Orders' page or call us directly. We recommend placing orders at least 1-2 weeks in advance to ensure availability and perfect execution.",
|
||||
},
|
||||
{
|
||||
question: "Do you offer delivery or catering services?",
|
||||
answer: "Yes, we provide local delivery for online orders and offer catering services for events of all sizes. Contact us for more details and to discuss your specific needs.",
|
||||
},
|
||||
{
|
||||
question: "Where are your ingredients sourced from?",
|
||||
answer: "We prioritize sourcing fresh, high-quality ingredients from local farms and trusted suppliers within our region whenever possible, supporting our community and ensuring premium taste.",
|
||||
},
|
||||
]}
|
||||
/>
|
||||
</SectionErrorBoundary>
|
||||
</div>
|
||||
|
||||
<div id="contact" data-section="contact">
|
||||
<SectionErrorBoundary name="contact">
|
||||
<ContactCta
|
||||
tag="Ready to Indulge?"
|
||||
text="Order online for convenient pickup or delivery, or visit us in-store to experience the irresistible aroma of fresh baking."
|
||||
primaryButton={{
|
||||
text: "Place an Order",
|
||||
href: "#",
|
||||
}}
|
||||
secondaryButton={{
|
||||
text: "Find Our Location",
|
||||
href: "#",
|
||||
}}
|
||||
/>
|
||||
</SectionErrorBoundary>
|
||||
</div>
|
||||
<HomeSection />
|
||||
<AboutSection />
|
||||
<ProductsSection />
|
||||
<HowItWorksSection />
|
||||
<WhyUsSection />
|
||||
<TestimonialsSection />
|
||||
<SocialProofSection />
|
||||
<PricingSection />
|
||||
<FaqSection />
|
||||
<NewsletterSection />
|
||||
<CaseStudiesCardsSection />
|
||||
<ContactSection />
|
||||
</>
|
||||
);
|
||||
}
|
||||
}
|
||||
22
src/pages/HomePage/sections/About.tsx
Normal file
22
src/pages/HomePage/sections/About.tsx
Normal 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 Story & Philosophy"
|
||||
descriptions={[
|
||||
"At The Daily Crumb Bakery, our passion is bringing joy through exceptional baked goods. Every morning, our skilled bakers rise before dawn to craft an array of pastries, cakes, and breads from scratch. We believe in using only the finest, freshest ingredients, often sourced locally, to ensure every bite is a delightful experience.",
|
||||
"Our philosophy centers around tradition, quality, and community. We combine time-honored baking techniques with creative flair, resulting in unique flavors and textures that captivate the senses. Beyond the delicious treats, we strive to be a warm, welcoming hub where neighbors can gather, share moments, and create cherished memories over a cup of coffee and a perfect pastry.",
|
||||
]}
|
||||
/>
|
||||
</SectionErrorBoundary>
|
||||
</div>
|
||||
);
|
||||
}
|
||||
17
src/pages/HomePage/sections/CaseStudiesCards.tsx
Normal file
17
src/pages/HomePage/sections/CaseStudiesCards.tsx
Normal file
@@ -0,0 +1,17 @@
|
||||
// Created by add_section_from_catalog (BlogSimpleCards).
|
||||
|
||||
import React from 'react';
|
||||
import BlogSimpleCards from '@/components/sections/blog/BlogSimpleCards';
|
||||
|
||||
export default function CaseStudiesCardsSection(): React.JSX.Element {
|
||||
return (
|
||||
<div data-webild-section="case-studies-cards" id="case-studies-cards">
|
||||
<BlogSimpleCards
|
||||
tag="Case Studies"
|
||||
items={[{"imageSrc":"https://images.unsplash.com/photo-1460925895917-afdab827c52f?auto=format&fit=crop&q=80&w=800&h=600","title":"Scaling Revenue by 300% in 6 Months","category":"E-commerce","date":"Oct 12, 2023","authorImageSrc":"https://images.unsplash.com/photo-1494790108377-be9c29b29330?auto=format&fit=crop&q=80&w=150&h=150","authorName":"Sarah Jenkins","excerpt":"Learn how we helped a boutique fashion brand optimize their conversion funnel and scale their ad spend profitably."},{"authorName":"David Chen","excerpt":"Discover the strategies we implemented to help a B2B SaaS company reduce their churn rate by 40%.","authorImageSrc":"https://images.unsplash.com/photo-1507003211169-0a1dd7228f2d?auto=format&fit=crop&q=80&w=150&h=150","date":"Nov 05, 2023","imageSrc":"https://images.unsplash.com/photo-1551288049-bebda4e38f71?auto=format&fit=crop&q=80&w=800&h=600","category":"SaaS","title":"Reducing Churn and Boosting Retention"},{"authorImageSrc":"https://images.unsplash.com/photo-1438761681033-6461ffad8d80?auto=format&fit=crop&q=80&w=150&h=150","excerpt":"See how our custom software solution reduced patient onboarding time by 60% for a regional clinic network.","authorName":"Emily Rodriguez","date":"Dec 18, 2023","title":"Streamlining Patient Onboarding","category":"Healthcare","imageSrc":"https://images.unsplash.com/photo-1576091160399-112ba8d25d1d?auto=format&fit=crop&q=80&w=800&h=600"}]}
|
||||
title="Real Results from Real Clients"
|
||||
description="Dive deep into how we've helped businesses achieve their goals and overcome their biggest challenges."
|
||||
/>
|
||||
</div>
|
||||
);
|
||||
}
|
||||
27
src/pages/HomePage/sections/Contact.tsx
Normal file
27
src/pages/HomePage/sections/Contact.tsx
Normal 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="Ready to Indulge?"
|
||||
text="Order online for convenient pickup or delivery, or visit us in-store to experience the irresistible aroma of fresh baking."
|
||||
primaryButton={{
|
||||
text: "Place an Order",
|
||||
href: "#",
|
||||
}}
|
||||
secondaryButton={{
|
||||
text: "Find Our Location",
|
||||
href: "#",
|
||||
}}
|
||||
/>
|
||||
</SectionErrorBoundary>
|
||||
</div>
|
||||
);
|
||||
}
|
||||
42
src/pages/HomePage/sections/Faq.tsx
Normal file
42
src/pages/HomePage/sections/Faq.tsx
Normal file
@@ -0,0 +1,42 @@
|
||||
// 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 FaqSimple from '@/components/sections/faq/FaqSimple';
|
||||
import SectionErrorBoundary from "@/components/ui/SectionErrorBoundary";
|
||||
|
||||
export default function FaqSection(): React.JSX.Element {
|
||||
return (
|
||||
<div id="faq" data-section="faq">
|
||||
<SectionErrorBoundary name="faq">
|
||||
<FaqSimple
|
||||
tag="Got Questions?"
|
||||
title="Frequently Asked Questions"
|
||||
description="Find answers to common questions about our products, ordering, and services."
|
||||
items={[
|
||||
{
|
||||
question: "What are your bakery's operating hours?",
|
||||
answer: "Our bakery is open from 7:00 AM to 5:00 PM, Tuesday through Sunday. We are closed on Mondays.",
|
||||
},
|
||||
{
|
||||
question: "Do you offer gluten-free or vegan options?",
|
||||
answer: "Yes, we offer a selection of delicious gluten-free and vegan baked goods. Please check our in-store display or online menu for daily availability.",
|
||||
},
|
||||
{
|
||||
question: "How can I place a custom cake order?",
|
||||
answer: "For custom cake orders, please visit our 'Custom Orders' page or call us directly. We recommend placing orders at least 1-2 weeks in advance to ensure availability and perfect execution.",
|
||||
},
|
||||
{
|
||||
question: "Do you offer delivery or catering services?",
|
||||
answer: "Yes, we provide local delivery for online orders and offer catering services for events of all sizes. Contact us for more details and to discuss your specific needs.",
|
||||
},
|
||||
{
|
||||
question: "Where are your ingredients sourced from?",
|
||||
answer: "We prioritize sourcing fresh, high-quality ingredients from local farms and trusted suppliers within our region whenever possible, supporting our community and ensuring premium taste.",
|
||||
},
|
||||
]}
|
||||
/>
|
||||
</SectionErrorBoundary>
|
||||
</div>
|
||||
);
|
||||
}
|
||||
61
src/pages/HomePage/sections/Home.tsx
Normal file
61
src/pages/HomePage/sections/Home.tsx
Normal file
@@ -0,0 +1,61 @@
|
||||
import React from "react";
|
||||
import Button from "@/components/ui/Button";
|
||||
import ScrollReveal from "@/components/ui/ScrollReveal";
|
||||
import TextAnimation from "@/components/ui/TextAnimation";
|
||||
|
||||
export default function HomeSection() {
|
||||
return (
|
||||
<div data-webild-section="home">
|
||||
<section id="home" className="relative w-full overflow-hidden flex flex-col items-center justify-center text-center py-20 md:py-32">
|
||||
<div className="container px-4 md:px-6 z-10">
|
||||
<ScrollReveal variant="slide-up">
|
||||
<span className="text-sm uppercase tracking-widest text-muted-foreground mb-4 block">
|
||||
Welcome to Our Bakery
|
||||
</span>
|
||||
</ScrollReveal>
|
||||
|
||||
<TextAnimation
|
||||
text="Start Your Day Right with Oven-Fresh Artisan Breads & Pastries"
|
||||
variant="slide-up"
|
||||
gradientText={false}
|
||||
tag="h1"
|
||||
className="text-5xl md:text-6xl lg:text-7xl font-bold tracking-tight text-foreground mb-6 max-w-content-width mx-auto"
|
||||
/>
|
||||
|
||||
<ScrollReveal variant="slide-up" delay={0.2}>
|
||||
<p className="text-lg md:text-xl text-muted-foreground mb-8 max-w-content-width mx-auto">
|
||||
Handcrafted pastries, custom cakes, and artisan breads using premium ingredients. Order online or visit us today.
|
||||
</p>
|
||||
</ScrollReveal>
|
||||
|
||||
<ScrollReveal variant="slide-up" delay={0.3}>
|
||||
<div className="flex flex-col sm:flex-row items-center justify-center gap-4">
|
||||
<Button text="Order Now" variant="primary" href="/#contact" />
|
||||
<Button text="Our Menu" variant="secondary" href="/#products" />
|
||||
</div>
|
||||
</ScrollReveal>
|
||||
|
||||
<ScrollReveal variant="slide-up" delay={0.4}>
|
||||
<div className="flex w-full max-w-content-width mx-auto h-[300px] md:h-[400px] gap-2 md:gap-4 mt-12">
|
||||
<div className="group relative flex-1 hover:flex-[3] transition-all duration-500 ease-in-out overflow-hidden rounded-theme shadow-md cursor-pointer">
|
||||
<img src="https://images.unsplash.com/photo-1509440159596-0249088772ff?w=800&q=80" alt="Freshly baked pastry" className="w-full h-full object-cover" />
|
||||
</div>
|
||||
<div className="group relative flex-1 hover:flex-[3] transition-all duration-500 ease-in-out overflow-hidden rounded-theme shadow-md cursor-pointer">
|
||||
<img src="https://images.unsplash.com/photo-1483695028939-5bb13f8648b0?w=800&q=80" alt="Artisan bread loaf" className="w-full h-full object-cover" />
|
||||
</div>
|
||||
<div className="group relative flex-1 hover:flex-[3] transition-all duration-500 ease-in-out overflow-hidden rounded-theme shadow-md cursor-pointer">
|
||||
<img src="https://images.unsplash.com/photo-1549931319-a545dcf3bc73?w=800&q=80" alt="Sourdough bread" className="w-full h-full object-cover" />
|
||||
</div>
|
||||
<div className="group relative flex-1 hover:flex-[3] transition-all duration-500 ease-in-out overflow-hidden rounded-theme shadow-md cursor-pointer">
|
||||
<img src="https://images.unsplash.com/photo-1550617931-e17a7b70dce2?w=800&q=80" alt="Custom cake" className="w-full h-full object-cover" />
|
||||
</div>
|
||||
<div className="group relative flex-1 hover:flex-[3] transition-all duration-500 ease-in-out overflow-hidden rounded-theme shadow-md cursor-pointer">
|
||||
<img src="https://images.unsplash.com/photo-1608198093002-ad4e005484ec?w=800&q=80" alt="Chocolate chip cookies" className="w-full h-full object-cover" />
|
||||
</div>
|
||||
</div>
|
||||
</ScrollReveal>
|
||||
</div>
|
||||
</section>
|
||||
</div>
|
||||
);
|
||||
}
|
||||
17
src/pages/HomePage/sections/HowItWorks.tsx
Normal file
17
src/pages/HomePage/sections/HowItWorks.tsx
Normal file
@@ -0,0 +1,17 @@
|
||||
// Created by add_section_from_catalog (FeaturesDetailedSteps).
|
||||
|
||||
import React from 'react';
|
||||
import FeaturesDetailedSteps from '@/components/sections/features/FeaturesDetailedSteps';
|
||||
|
||||
export default function HowItWorksSection(): React.JSX.Element {
|
||||
return (
|
||||
<div data-webild-section="how-it-works" id="how-it-works">
|
||||
<FeaturesDetailedSteps
|
||||
title="Get started in 3 simple steps"
|
||||
steps={[{"tag":"Step 1","imageSrc":"https://images.unsplash.com/photo-1551288049-bebda4e38f71?q=80&w=2070&auto=format&fit=crop","description":"Enter your details and verify your email to get instant access to our platform.","title":"Create your account","subtitle":"Sign up in seconds"},{"subtitle":"Tailor it to your needs","imageSrc":"https://images.unsplash.com/photo-1460925895917-afdab827c52f?q=80&w=2015&auto=format&fit=crop","tag":"Step 2","title":"Configure your workspace","description":"Set up your preferences, invite team members, and connect your favorite tools."},{"subtitle":"See results immediately","imageSrc":"https://images.unsplash.com/photo-1551434678-e076c223a692?q=80&w=2070&auto=format&fit=crop","tag":"Step 3","title":"Start achieving goals","description":"Launch your first project and track your progress with our intuitive dashboard."}]}
|
||||
description="Our onboarding process is designed to be quick and painless so you can start seeing value immediately."
|
||||
tag="How It Works"
|
||||
/>
|
||||
</div>
|
||||
);
|
||||
}
|
||||
18
src/pages/HomePage/sections/Newsletter.tsx
Normal file
18
src/pages/HomePage/sections/Newsletter.tsx
Normal file
@@ -0,0 +1,18 @@
|
||||
// Created by add_section_from_catalog (ContactCenter).
|
||||
|
||||
import React from 'react';
|
||||
import ContactCenter from '@/components/sections/contact/ContactCenter';
|
||||
|
||||
export default function NewsletterSection(): React.JSX.Element {
|
||||
return (
|
||||
<div data-webild-section="newsletter" id="newsletter">
|
||||
<ContactCenter
|
||||
inputPlaceholder="Enter your email address"
|
||||
title="Stay in the Loop"
|
||||
description="Join our newsletter to get the latest news, updates, and special offers delivered directly to your inbox."
|
||||
tag="Newsletter"
|
||||
buttonText="Subscribe"
|
||||
/>
|
||||
</div>
|
||||
);
|
||||
}
|
||||
17
src/pages/HomePage/sections/Pricing.tsx
Normal file
17
src/pages/HomePage/sections/Pricing.tsx
Normal file
@@ -0,0 +1,17 @@
|
||||
// Created by add_section_from_catalog (PricingHighlightedCards).
|
||||
|
||||
import React from 'react';
|
||||
import PricingHighlightedCards from '@/components/sections/pricing/PricingHighlightedCards';
|
||||
|
||||
export default function PricingSection(): React.JSX.Element {
|
||||
return (
|
||||
<div data-webild-section="pricing" id="pricing">
|
||||
<PricingHighlightedCards
|
||||
title="Simple, Transparent Pricing"
|
||||
plans={[{"features":["1 Artisan Loaf per week","Choice of Sourdough or Rye","Free in-store pickup"],"tag":"Basic","primaryButton":{"href":"#","text":"Subscribe Now"},"price":"$15/wk","description":"Perfect for individuals who want fresh bread weekly."},{"highlight":"Most Popular","tag":"Family","description":"Ideal for families who love fresh baked goods.","price":"$35/wk","primaryButton":{"href":"#","text":"Subscribe Now"},"features":["3 Artisan Loaves per week","Assorted Pastries box (4 pcs)","Free local delivery"]},{"features":["Custom cake orders","Large pastry platters","Dedicated catering manager"],"description":"For parties, corporate events, and special occasions.","primaryButton":{"href":"#","text":"Contact Us"},"price":"Custom","tag":"Event"}]}
|
||||
tag="Pricing"
|
||||
description="Choose the perfect plan for your daily bread and pastry needs."
|
||||
/>
|
||||
</div>
|
||||
);
|
||||
}
|
||||
68
src/pages/HomePage/sections/Products.tsx
Normal file
68
src/pages/HomePage/sections/Products.tsx
Normal file
@@ -0,0 +1,68 @@
|
||||
// AUTO-GENERATED by per-section-migrate. Edit freely — Bob will treat this
|
||||
// file as the canonical source for the "products" section.
|
||||
|
||||
import React from 'react';
|
||||
import FeaturesRevealCardsBentoSharp from '@/components/sections/features/FeaturesRevealCardsBentoSharp';
|
||||
import SectionErrorBoundary from "@/components/ui/SectionErrorBoundary";
|
||||
|
||||
export default function ProductsSection(): React.JSX.Element {
|
||||
return (
|
||||
<div id="products" data-section="products">
|
||||
<SectionErrorBoundary name="products">
|
||||
<FeaturesRevealCardsBentoSharp
|
||||
tag="Our Delicious Offerings"
|
||||
title="Handcrafted Goodness for Every Craving"
|
||||
description="Explore our wide range of freshly baked delights, from everyday treats to special occasion masterpieces."
|
||||
primaryButton={{
|
||||
text: "View Full Menu",
|
||||
href: "#",
|
||||
}}
|
||||
items={[
|
||||
{
|
||||
title: "Gourmet Cupcakes",
|
||||
description: "Indulge in our exquisite cupcakes, baked fresh daily with rich flavors and artful frosting.",
|
||||
href: "#",
|
||||
imageSrc: "http://img.b2bpic.net/free-photo/selective-focus-shot-delicious-chocolate-cupcakes-with-white-cream-topping_181624-40986.jpg",
|
||||
},
|
||||
{
|
||||
title: "Classic Cookies",
|
||||
description: "Discover our irresistible collection of cookies, from chewy chocolate chip to delicate shortbread.",
|
||||
href: "#",
|
||||
imageSrc: "http://img.b2bpic.net/free-photo/cup-milk-book-with-biscuits_114579-6086.jpg",
|
||||
},
|
||||
{
|
||||
title: "Artisan Breads",
|
||||
description: "Savor the crusty perfection of our artisan breads, crafted with traditional methods and natural starters.",
|
||||
href: "#",
|
||||
imageSrc: "http://img.b2bpic.net/free-photo/various-baking-supermarket-shelves-sale_627829-7384.jpg",
|
||||
},
|
||||
{
|
||||
title: "Fruit Tarts",
|
||||
description: "Enjoy the seasonal freshness of our fruit tarts, bursting with flavor and elegantly prepared.",
|
||||
href: "#",
|
||||
imageSrc: "http://img.b2bpic.net/free-photo/homemade-delicious-rustic-summer-berry-tartles_114579-10242.jpg",
|
||||
},
|
||||
{
|
||||
title: "Decadent Donuts",
|
||||
description: "Treat yourself to our fluffy, flavorful donuts, available in a variety of glazes and toppings.",
|
||||
href: "#",
|
||||
imageSrc: "http://img.b2bpic.net/free-photo/delicious-homemade-blood-orange-glaze-donuts_114579-19453.jpg",
|
||||
},
|
||||
{
|
||||
title: "Celebration Cakes",
|
||||
description: "Order a custom cake for your special occasion, designed to impress and delight every guest.",
|
||||
href: "#",
|
||||
imageSrc: "http://img.b2bpic.net/free-photo/top-view-little-creamy-cake-with-chocolate-cookies-dark-surface-biscuit-cake-sweet-pie-sugar-cookie_140725-118183.jpg",
|
||||
},
|
||||
{
|
||||
title: "Pastries & More",
|
||||
description: "From flaky croissants to sweet Danish, our pastry selection offers something for everyone.",
|
||||
href: "#",
|
||||
imageSrc: "http://img.b2bpic.net/free-photo/bakery-plate-near-cup-drink-jam_23-2148031625.jpg",
|
||||
},
|
||||
]}
|
||||
/>
|
||||
</SectionErrorBoundary>
|
||||
</div>
|
||||
);
|
||||
}
|
||||
29
src/pages/HomePage/sections/SocialProof.tsx
Normal file
29
src/pages/HomePage/sections/SocialProof.tsx
Normal file
@@ -0,0 +1,29 @@
|
||||
// AUTO-GENERATED by per-section-migrate. Edit freely — Bob will treat this
|
||||
// file as the canonical source for the "social-proof" section.
|
||||
|
||||
import React from 'react';
|
||||
import SocialProofMarquee from '@/components/sections/social-proof/SocialProofMarquee';
|
||||
import SectionErrorBoundary from "@/components/ui/SectionErrorBoundary";
|
||||
|
||||
export default function SocialProofSection(): React.JSX.Element {
|
||||
return (
|
||||
<div id="social-proof" data-section="social-proof">
|
||||
<SectionErrorBoundary name="social-proof">
|
||||
<SocialProofMarquee
|
||||
tag="As Seen In"
|
||||
title="Trusted & Featured in Local Publications"
|
||||
description="We are proud to be recognized by our community for our commitment to quality and delicious baked goods."
|
||||
names={[
|
||||
"City Eats Magazine",
|
||||
"Local Flavor Blog",
|
||||
"Foodie Favorites Weekly",
|
||||
"Neighborhood News",
|
||||
"Gourmet Guide",
|
||||
"Sweet Treats Review",
|
||||
"Bake & Brew Chronicle",
|
||||
]}
|
||||
/>
|
||||
</SectionErrorBoundary>
|
||||
</div>
|
||||
);
|
||||
}
|
||||
64
src/pages/HomePage/sections/Testimonials.tsx
Normal file
64
src/pages/HomePage/sections/Testimonials.tsx
Normal file
@@ -0,0 +1,64 @@
|
||||
// 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 TestimonialRatingCards from '@/components/sections/testimonial/TestimonialRatingCards';
|
||||
import SectionErrorBoundary from "@/components/ui/SectionErrorBoundary";
|
||||
|
||||
export default function TestimonialsSection(): React.JSX.Element {
|
||||
return (
|
||||
<div id="testimonials" data-section="testimonials">
|
||||
<SectionErrorBoundary name="testimonials">
|
||||
<TestimonialRatingCards
|
||||
tag="What Our Customers Say"
|
||||
title="Loved by Our Community"
|
||||
description="Hear from our happy customers who enjoy our fresh baked goods and exceptional service."
|
||||
testimonials={[
|
||||
{
|
||||
name: "Sarah J.",
|
||||
role: "Local Entrepreneur",
|
||||
quote: "The Daily Crumb is my go-to for morning pastries! Their croissants are simply divine, and the coffee is always perfect. A true neighborhood gem!",
|
||||
rating: 5,
|
||||
imageSrc: "http://img.b2bpic.net/free-photo/portrait-cheerful-woman-eating-piece-cake_171337-4080.jpg",
|
||||
},
|
||||
{
|
||||
name: "Michael Chen",
|
||||
role: "Event Planner",
|
||||
quote: "We've used The Daily Crumb for several corporate events, and they always exceed expectations. Their custom cakes are not only beautiful but incredibly delicious.",
|
||||
rating: 5,
|
||||
imageSrc: "http://img.b2bpic.net/free-photo/happy-businessman-eating-croissant-while-listening-music-earphones-outdoor-cafe_637285-3443.jpg",
|
||||
},
|
||||
{
|
||||
name: "Emily R.",
|
||||
role: "Busy Mom",
|
||||
quote: "Finding quality, fresh bread for my family used to be a challenge until I discovered this bakery. Their sourdough is a weekly staple in our home!",
|
||||
rating: 5,
|
||||
imageSrc: "http://img.b2bpic.net/free-photo/celebration-party-lifestyle-concept-dreamy-cute-silly-blond-girl-thinking-what-wish-bitin_1258-115839.jpg",
|
||||
},
|
||||
{
|
||||
name: "David K.",
|
||||
role: "Retired Teacher",
|
||||
quote: "The warm, inviting atmosphere makes The Daily Crumb a joy to visit. Their friendly staff and delicious treats make my afternoons brighter.",
|
||||
rating: 5,
|
||||
imageSrc: "http://img.b2bpic.net/free-photo/tea-cafe_1098-15634.jpg",
|
||||
},
|
||||
{
|
||||
name: "Jessica L.",
|
||||
role: "Food Blogger",
|
||||
quote: "As a food enthusiast, I can attest to the exceptional quality and innovative flavors at The Daily Crumb. A must-visit for any bakery lover!",
|
||||
rating: 5,
|
||||
imageSrc: "http://img.b2bpic.net/free-photo/young-happy-lady-baker-standing-holding-bread_171337-16136.jpg",
|
||||
},
|
||||
{
|
||||
name: "Alex B.",
|
||||
role: "Student",
|
||||
quote: "Their cookies are seriously the best I've ever had! Perfect study snack. Always a warm welcome when I drop by.",
|
||||
rating: 5,
|
||||
imageSrc: "http://img.b2bpic.net/free-photo/portrait-food-truck-owners_329181-20751.jpg",
|
||||
},
|
||||
]}
|
||||
/>
|
||||
</SectionErrorBoundary>
|
||||
</div>
|
||||
);
|
||||
}
|
||||
42
src/pages/HomePage/sections/WhyUs.tsx
Normal file
42
src/pages/HomePage/sections/WhyUs.tsx
Normal file
@@ -0,0 +1,42 @@
|
||||
// AUTO-GENERATED by per-section-migrate. Edit freely — Bob will treat this
|
||||
// file as the canonical source for the "why-us" section.
|
||||
|
||||
import React from 'react';
|
||||
import FeaturesBentoGrid from '@/components/sections/features/FeaturesBentoGrid';
|
||||
import SectionErrorBoundary from "@/components/ui/SectionErrorBoundary";
|
||||
|
||||
export default function WhyUsSection(): React.JSX.Element {
|
||||
return (
|
||||
<div id="why-us" data-section="why-us">
|
||||
<SectionErrorBoundary name="why-us">
|
||||
<FeaturesBentoGrid
|
||||
tag="Why Choose The Daily Crumb?"
|
||||
title="The Heart of Our Bakery"
|
||||
description="Experience the difference that passion, quality ingredients, and artisanal techniques make in every bite."
|
||||
features={[
|
||||
{
|
||||
title: "Fresh, Local Ingredients",
|
||||
description: "We partner with local farms and suppliers to bring you the freshest, highest quality ingredients.",
|
||||
imageSrc: "http://img.b2bpic.net/free-photo/bowl-flour-eggs-kitchen-tool-marble-table_114579-31391.jpg",
|
||||
},
|
||||
{
|
||||
title: "Artisanal Craftsmanship",
|
||||
description: "Our bakers combine time-honored techniques with creative flair, perfecting every recipe.",
|
||||
imageSrc: "http://img.b2bpic.net/free-photo/close-up-baker-hands-kneading-dough_23-2148302953.jpg",
|
||||
},
|
||||
{
|
||||
title: "Custom Creations",
|
||||
description: "From bespoke wedding cakes to corporate catering, we bring your unique vision to life.",
|
||||
imageSrc: "http://img.b2bpic.net/free-photo/beautiful-elegant-cake-topper_23-2149232352.jpg",
|
||||
},
|
||||
{
|
||||
title: "Community Focused",
|
||||
description: "More than just a bakery, we're a beloved local hub where friends and family gather.",
|
||||
imageSrc: "http://img.b2bpic.net/free-photo/influencers-taking-photo-sweets-market_23-2149284359.jpg",
|
||||
},
|
||||
]}
|
||||
/>
|
||||
</SectionErrorBoundary>
|
||||
</div>
|
||||
);
|
||||
}
|
||||
@@ -6,4 +6,5 @@ export interface Route {
|
||||
|
||||
export const routes: Route[] = [
|
||||
{ path: '/', label: 'Home', pageFile: 'HomePage' },
|
||||
{ path: '/book-now', label: 'Book Now', pageFile: 'BookNowPage' },
|
||||
];
|
||||
|
||||
Reference in New Issue
Block a user