Merge version_5_1783337117792 into main #6
@@ -1,189 +1,37 @@
|
||||
import AboutMediaOverlay from '@/components/sections/about/AboutMediaOverlay';
|
||||
import ContactCta from '@/components/sections/contact/ContactCta';
|
||||
import FaqTwoColumn from '@/components/sections/faq/FaqTwoColumn';
|
||||
import FeaturesRevealCardsBento from '@/components/sections/features/FeaturesRevealCardsBento';
|
||||
import HeroTiltedCards from '@/components/sections/hero/HeroTiltedCards';
|
||||
import MetricsFeatureCards from '@/components/sections/metrics/MetricsFeatureCards';
|
||||
import TeamListCards from '@/components/sections/team/TeamListCards';
|
||||
import TestimonialOverlayCards from '@/components/sections/testimonial/TestimonialOverlayCards';
|
||||
import SectionErrorBoundary from "@/components/ui/SectionErrorBoundary";
|
||||
// AUTO-GENERATED shell by per-section-migrate.
|
||||
// Section bodies live in the sibling sections/ folder (one file per section).
|
||||
// Edit those section files directly. Non-block content (wrappers,
|
||||
// non-inlinable sections) is preserved inline; extracted section blocks
|
||||
// become component refs.
|
||||
|
||||
export default function HomePage() {
|
||||
import React from 'react';
|
||||
import HeroSection from './HomePage/sections/Hero';
|
||||
import AboutSection from './HomePage/sections/About';
|
||||
import ProductsSection from './HomePage/sections/Products';
|
||||
import TeamSection from './HomePage/sections/Team';
|
||||
import TestimonialsSection from './HomePage/sections/Testimonials';
|
||||
import MetricsSection from './HomePage/sections/Metrics';
|
||||
import FaqSection from './HomePage/sections/Faq';
|
||||
import ContactSection from './HomePage/sections/Contact';
|
||||
|
||||
export default function HomePage(): React.JSX.Element {
|
||||
return (
|
||||
<>
|
||||
<div id="hero" data-section="hero">
|
||||
<SectionErrorBoundary name="hero">
|
||||
<HeroTiltedCards
|
||||
tag="Sinceasdfasdfasdfasdf 1985"
|
||||
title="Baking warmth iasdfasdfasdfnto every loaf."
|
||||
description="Authentic, handcrafted breads and pastrieasdfasdfasdfasds made with organic ingredients daily in our kitchen."
|
||||
primaryButton={{
|
||||
text: "asdfasdfasdfasdfasdfasdfasdfasdfSee Menu", href: "#products"}}
|
||||
secondaryButton={{
|
||||
text: "asdfasdfasdfasdasdfasdfasdfasdOur Story", href: "#about"}}
|
||||
items={[
|
||||
{ imageSrc: "https://storage.googleapis.com/webild/users/user_39wSE8YJoGda03bkKGOyyo2rjk4/uploaded-1781466517590-kavaf4h5.png" },
|
||||
{ imageSrc: "https://storage.googleapis.com/webild/users/user_39wSE8YJoGda03bkKGOyyo2rjk4/uploaded-1781466517590-kavaf4h5.png" },
|
||||
{ imageSrc: "https://storage.googleapis.com/webild/users/user_39wSE8YJoGda03bkKGOyyo2rjk4/uploaded-1781466517590-kavaf4h5.png" },
|
||||
{ imageSrc: "https://storage.googleapis.com/webild/users/user_39wSE8YJoGda03bkKGOyyo2rjk4/uploaded-1781466517590-kavaf4h5.png" },
|
||||
{ imageSrc: "https://storage.googleapis.com/webild/users/user_39wSE8YJoGda03bkKGOyyo2rjk4/uploaded-1781466517590-kavaf4h5.png" },
|
||||
]}
|
||||
textAnimation="fade-blur"
|
||||
/>
|
||||
</SectionErrorBoundary>
|
||||
</div>
|
||||
<>
|
||||
<HeroSection />
|
||||
|
||||
<div id="about" data-section="about">
|
||||
<SectionErrorBoundary name="about">
|
||||
<AboutMediaOverlay
|
||||
tag="Our Heritsdfasdfasdfasdfasdfage"
|
||||
title="Handmasdfasdfasdfasdfade with love."
|
||||
description="From our heritage starters to local flour, we honor traditional techniques to bring you the best qasdfasdfasdfasdfasdfuality baked goods every morning."
|
||||
primaryButton={{
|
||||
text: "sdfasdfasdfasdfasdfsdfasdfasdfasdfasdfVisit Us", href: "#contact"}}
|
||||
imageSrc="https://storage.googleapis.com/webild/users/user_39wSE8YJoGda03bkKGOyyo2rjk4/uploaded-1781466517590-kavaf4h5.png"
|
||||
textAnimation="slide-up"
|
||||
/>
|
||||
</SectionErrorBoundary>
|
||||
</div>
|
||||
<AboutSection />
|
||||
|
||||
<div id="products" data-section="products">
|
||||
<SectionErrorBoundary name="products">
|
||||
<FeaturesRevealCardsBento
|
||||
tag="Daily Fresasdfasdfasdfasdfasdhness"
|
||||
title="From Ouasdfasdfasdfasdfasdr Oven"
|
||||
description="Discover our signature range of artisaasdfasdfasdfasdfasdfasdfnal products crafted to perfection."
|
||||
items={[
|
||||
{
|
||||
title: "Sourdough", description: "Classic 24-hour fermented rustic loaf.", href: "#", imageSrc: "https://storage.googleapis.com/webild/users/user_39wSE8YJoGda03bkKGOyyo2rjk4/uploaded-1781466517590-kavaf4h5.png"},
|
||||
{
|
||||
title: "Croissants", description: "Buttery, flaky, and golden perfection.", href: "#", imageSrc: "https://storage.googleapis.com/webild/users/user_39wSE8YJoGda03bkKGOyyo2rjk4/uploaded-1781466517590-kavaf4h5.png"},
|
||||
{
|
||||
title: "Muffins", description: "Fresh berries and organic flour mix.", href: "#", imageSrc: "https://storage.googleapis.com/webild/users/user_39wSE8YJoGda03bkKGOyyo2rjk4/uploaded-1781466517590-kavaf4h5.png"},
|
||||
{
|
||||
title: "Cookies", description: "Loaded with Belgian dark chocolate.", href: "#", imageSrc: "https://storage.googleapis.com/webild/users/user_39wSE8YJoGda03bkKGOyyo2rjk4/uploaded-1781466517590-kavaf4h5.png"},
|
||||
{
|
||||
title: "Cinnamon Rolls", description: "Warm, glazed, and decadently spiced.", href: "#", imageSrc: "https://storage.googleapis.com/webild/users/user_39wSE8YJoGda03bkKGOyyo2rjk4/uploaded-1781466517590-kavaf4h5.png"},
|
||||
{
|
||||
title: "Danishes", description: "Seasonal fruit and custard delight.", href: "#", imageSrc: "https://storage.googleapis.com/webild/users/user_39wSE8YJoGda03bkKGOyyo2rjk4/uploaded-1781466517590-kavaf4h5.png"},
|
||||
{
|
||||
title: "Baguettes", description: "Crispy crust with airy light crumb.", href: "#", imageSrc: "https://storage.googleapis.com/webild/users/user_39wSE8YJoGda03bkKGOyyo2rjk4/uploaded-1781466517590-kavaf4h5.png"},
|
||||
]}
|
||||
textAnimation="fade"
|
||||
/>
|
||||
</SectionErrorBoundary>
|
||||
</div>
|
||||
<ProductsSection />
|
||||
|
||||
<div id="team" data-section="team">
|
||||
<SectionErrorBoundary name="team">
|
||||
<TeamListCards
|
||||
tag="Meet the asdfasfasdfasdfasdArtists"
|
||||
title="The Handasdfasdfasdfasdfas Behind"
|
||||
description="Our team of dedicated bakers and pastry asdfasdfasdfasdfasdfaschefs ensuring every morning starts fresh."
|
||||
groups={[
|
||||
{
|
||||
title: "Bakery Leads", members: [
|
||||
{
|
||||
name: "Elena Rossi", role: "Head Baker", detail: "Master of heritage sourdough techniques.", imageSrc: "https://storage.googleapis.com/webild/users/user_39wSE8YJoGda03bkKGOyyo2rjk4/uploaded-1781466517590-kavaf4h5.png"},
|
||||
{
|
||||
name: "Marcello V.", role: "Pastry Chef", detail: "Specializing in refined French patisserie.", imageSrc: "https://storage.googleapis.com/webild/users/user_39wSE8YJoGda03bkKGOyyo2rjk4/uploaded-1781466517590-kavaf4h5.png"},
|
||||
{
|
||||
name: "Sarah Jenkins", role: "Operations Manager", detail: "Ensuring the heart of the shop runs smooth.", imageSrc: "https://storage.googleapis.com/webild/users/user_39wSE8YJoGda03bkKGOyyo2rjk4/uploaded-1781466517590-kavaf4h5.png"},
|
||||
],
|
||||
},
|
||||
]}
|
||||
textAnimation="slide-up"
|
||||
/>
|
||||
</SectionErrorBoundary>
|
||||
</div>
|
||||
<TeamSection />
|
||||
|
||||
<div id="testimonials" data-section="testimonials">
|
||||
<SectionErrorBoundary name="testimonials">
|
||||
<TestimonialOverlayCards
|
||||
tag="Customer Joy"
|
||||
title="Loved by locals"
|
||||
description="Hear what our regulars say about their morning favorites."
|
||||
testimonials={[
|
||||
{
|
||||
name: "Maria C.", role: "Local Teacher", company: "St. Paul School", rating: 5,
|
||||
imageSrc: "https://storage.googleapis.com/webild/users/user_39wSE8YJoGda03bkKGOyyo2rjk4/uploaded-1781466517590-kavaf4h5.png"},
|
||||
{
|
||||
name: "James B.", role: "Artist", company: "Independent", rating: 5,
|
||||
imageSrc: "https://storage.googleapis.com/webild/users/user_39wSE8YJoGda03bkKGOyyo2rjk4/uploaded-1781466517590-kavaf4h5.png"},
|
||||
{
|
||||
name: "Anna K.", role: "Customer", company: "Neighborhood", rating: 5,
|
||||
imageSrc: "https://storage.googleapis.com/webild/users/user_39wSE8YJoGda03bkKGOyyo2rjk4/uploaded-1781466517590-kavaf4h5.png"},
|
||||
{
|
||||
name: "David W.", role: "Professional", company: "TechDesk", rating: 5,
|
||||
imageSrc: "https://storage.googleapis.com/webild/users/user_39wSE8YJoGda03bkKGOyyo2rjk4/uploaded-1781466517590-kavaf4h5.png"},
|
||||
{
|
||||
name: "Lisa M.", role: "Regular", company: "Creative Hub", rating: 5,
|
||||
imageSrc: "https://storage.googleapis.com/webild/users/user_39wSE8YJoGda03bkKGOyyo2rjk4/uploaded-1781466517590-kavaf4h5.png"},
|
||||
]}
|
||||
textAnimation="fade-blur"
|
||||
/>
|
||||
</SectionErrorBoundary>
|
||||
</div>
|
||||
<TestimonialsSection />
|
||||
|
||||
<div id="metrics" data-section="metrics">
|
||||
<SectionErrorBoundary name="metrics">
|
||||
<MetricsFeatureCards
|
||||
tag="Our Impact"
|
||||
title="Bakery in Numbers"
|
||||
description="Dedication to tradition leads to these daily results."
|
||||
metrics={[
|
||||
{
|
||||
value: "120+", title: "Loaves Baked Daily", features: [
|
||||
"Organic Flour", "Zero Preservatives"],
|
||||
},
|
||||
{
|
||||
value: "15+", title: "Unique Pastries", features: [
|
||||
"Seasonal Fruits", "Local Dairy"],
|
||||
},
|
||||
{
|
||||
value: "500+", title: "Happy Neighbors", features: [
|
||||
"Early Bird Special", "Daily Smiles"],
|
||||
},
|
||||
]}
|
||||
textAnimation="slide-up"
|
||||
/>
|
||||
</SectionErrorBoundary>
|
||||
</div>
|
||||
<MetricsSection />
|
||||
|
||||
<div id="faq" data-section="faq">
|
||||
<SectionErrorBoundary name="faq">
|
||||
<FaqTwoColumn
|
||||
tag="Common Queries"
|
||||
title="Need Information?"
|
||||
description="Answers to our most common bakery inquiries."
|
||||
items={[
|
||||
{
|
||||
question: "Are your goods organic?", answer: "Yes, we prioritize organic flour and seasonal fruits."},
|
||||
{
|
||||
question: "Can I pre-order?", answer: "Absolutely! Reach out via phone or email for large orders."},
|
||||
{
|
||||
question: "Do you offer wholesale?", answer: "Yes, we work with local cafes and restaurants."},
|
||||
{
|
||||
question: "What are your hours?", answer: "We are open 6AM to 6PM daily."},
|
||||
]}
|
||||
textAnimation="fade"
|
||||
/>
|
||||
</SectionErrorBoundary>
|
||||
</div>
|
||||
<FaqSection />
|
||||
|
||||
<div id="contact" data-section="contact">
|
||||
<SectionErrorBoundary name="contact">
|
||||
<ContactCta
|
||||
tag="Get in Touch"
|
||||
text="Have a large catering request or just want to pre-order? Let's connect."
|
||||
primaryButton={{
|
||||
text: "Contact Us", href: "mailto:orders@artisana.com"}}
|
||||
secondaryButton={{
|
||||
text: "Call Now", href: "tel:5550102030"}}
|
||||
textAnimation="fade-blur"
|
||||
/>
|
||||
</SectionErrorBoundary>
|
||||
</div>
|
||||
<ContactSection />
|
||||
</>
|
||||
);
|
||||
}
|
||||
|
||||
24
src/pages/HomePage/sections/About.tsx
Normal file
24
src/pages/HomePage/sections/About.tsx
Normal file
@@ -0,0 +1,24 @@
|
||||
// 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 AboutMediaOverlay from '@/components/sections/about/AboutMediaOverlay';
|
||||
import SectionErrorBoundary from "@/components/ui/SectionErrorBoundary";
|
||||
|
||||
export default function AboutSection(): React.JSX.Element {
|
||||
return (
|
||||
<div id="about" data-section="about">
|
||||
<SectionErrorBoundary name="about">
|
||||
<AboutMediaOverlay
|
||||
tag="Our Heritsdfasdfasdfasdfasdfage"
|
||||
title="Handmasdfasdfasdfasdfade with love."
|
||||
description="From our heritage starters to local flour, we honor traditional techniques to bring you the best qasdfasdfasdfasdfasdfuality baked goods every morning."
|
||||
primaryButton={{
|
||||
text: "sdfasdfasdfasdfasdfsdfasdfasdfasdfasdfVisit Us", href: "#contact"}}
|
||||
imageSrc="https://storage.googleapis.com/webild/users/user_39wSE8YJoGda03bkKGOyyo2rjk4/uploaded-1781466517590-kavaf4h5.png"
|
||||
textAnimation="slide-up"
|
||||
/>
|
||||
</SectionErrorBoundary>
|
||||
</div>
|
||||
);
|
||||
}
|
||||
71
src/pages/HomePage/sections/Contact.tsx
Normal file
71
src/pages/HomePage/sections/Contact.tsx
Normal file
@@ -0,0 +1,71 @@
|
||||
/* eslint-disable */
|
||||
// @ts-nocheck — generated by catalog-eject; runtime-correct but TS strict-mode false-positives on inlined catalog body
|
||||
import ScrollReveal from "@/components/ui/ScrollReveal";
|
||||
import TextAnimation from "@/components/ui/TextAnimation";
|
||||
import Button from "@/components/ui/Button";
|
||||
|
||||
const primaryButton = {
|
||||
text: "Contact Us",
|
||||
href: "mailto:orders@artisana.com"
|
||||
};
|
||||
const secondaryButton = {
|
||||
text: "Call Now",
|
||||
href: "tel:5550102030"
|
||||
};
|
||||
|
||||
const ContactInline = () => {
|
||||
return (
|
||||
<section aria-label="Contact section" className="py-20">
|
||||
<div className="w-content-width mx-auto">
|
||||
<ScrollReveal variant="fade-blur">
|
||||
<div className="grid grid-cols-1 lg:grid-cols-2 gap-8 lg:gap-12 items-stretch">
|
||||
<div className="flex flex-col items-start gap-6 py-12 px-8 rounded card justify-center">
|
||||
<div className="px-3 py-1 mb-1 text-sm bg-background rounded w-fit">
|
||||
<p>{"Visit Us"}</p>
|
||||
</div>
|
||||
|
||||
<TextAnimation
|
||||
text={"Come say hi and smell the fresh bread."}
|
||||
variant={"fade-blur"}
|
||||
gradientText={true}
|
||||
tag="h2"
|
||||
className="text-4xl md:text-5xl leading-[1.15] font-semibold text-left text-balance"
|
||||
/>
|
||||
|
||||
<div className="flex flex-col gap-4 text-accent text-lg mt-4">
|
||||
<p><strong className="text-foreground">Address:</strong> 123 Baker Street, Artisan District, NY 10001</p>
|
||||
<p><strong className="text-foreground">Hours:</strong> Tue - Sun: 7:00 AM - 4:00 PM</p>
|
||||
</div>
|
||||
|
||||
<div className="flex flex-wrap justify-start gap-3 mt-4">
|
||||
<Button text={primaryButton.text} href={primaryButton.href} variant="primary" />
|
||||
<Button text={secondaryButton.text} href={secondaryButton.href} variant="secondary" animationDelay={0.1} />
|
||||
</div>
|
||||
</div>
|
||||
<div className="h-[400px] lg:h-auto min-h-[400px] rounded card overflow-hidden relative">
|
||||
<iframe
|
||||
src="https://www.google.com/maps/embed?pb=!1m18!1m12!1m3!1d3022.617548294529!2d-73.9878239234699!3d40.7484404713875!2m3!1f0!2f0!3f0!3m2!1i1024!2i768!4f13.1!3m3!1m2!1s0x89c259a9b3117469%3A0xd134e199a405a163!2sEmpire%20State%20Building!5e0!3m2!1sen!2sus!4v1709664531123!5m2!1sen!2sus"
|
||||
width="100%"
|
||||
height="100%"
|
||||
style={{ border: 0 }}
|
||||
allowFullScreen={true}
|
||||
loading="lazy"
|
||||
referrerPolicy="no-referrer-when-downgrade"
|
||||
className="absolute inset-0 w-full h-full grayscale opacity-80 hover:grayscale-0 hover:opacity-100 transition-all duration-500"
|
||||
title="Bakery Location"
|
||||
></iframe>
|
||||
</div>
|
||||
</div>
|
||||
</ScrollReveal>
|
||||
</div>
|
||||
</section>
|
||||
);
|
||||
};
|
||||
|
||||
export default function ContactSection() {
|
||||
return (
|
||||
<div data-webild-section="contact" data-section="contact" id="contact">
|
||||
<ContactInline />
|
||||
</div>
|
||||
);
|
||||
}
|
||||
31
src/pages/HomePage/sections/Faq.tsx
Normal file
31
src/pages/HomePage/sections/Faq.tsx
Normal file
@@ -0,0 +1,31 @@
|
||||
// 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 FaqTwoColumn from '@/components/sections/faq/FaqTwoColumn';
|
||||
import SectionErrorBoundary from "@/components/ui/SectionErrorBoundary";
|
||||
|
||||
export default function FaqSection(): React.JSX.Element {
|
||||
return (
|
||||
<div id="faq" data-section="faq">
|
||||
<SectionErrorBoundary name="faq">
|
||||
<FaqTwoColumn
|
||||
tag="Common Queries"
|
||||
title="Need Information?"
|
||||
description="Answers to our most common bakery inquiries."
|
||||
items={[
|
||||
{
|
||||
question: "Are your goods organic?", answer: "Yes, we prioritize organic flour and seasonal fruits."},
|
||||
{
|
||||
question: "Can I pre-order?", answer: "Absolutely! Reach out via phone or email for large orders."},
|
||||
{
|
||||
question: "Do you offer wholesale?", answer: "Yes, we work with local cafes and restaurants."},
|
||||
{
|
||||
question: "What are your hours?", answer: "We are open 6AM to 6PM daily."},
|
||||
]}
|
||||
textAnimation="fade"
|
||||
/>
|
||||
</SectionErrorBoundary>
|
||||
</div>
|
||||
);
|
||||
}
|
||||
32
src/pages/HomePage/sections/Hero.tsx
Normal file
32
src/pages/HomePage/sections/Hero.tsx
Normal file
@@ -0,0 +1,32 @@
|
||||
// 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 HeroTiltedCards from '@/components/sections/hero/HeroTiltedCards';
|
||||
import SectionErrorBoundary from "@/components/ui/SectionErrorBoundary";
|
||||
|
||||
export default function HeroSection(): React.JSX.Element {
|
||||
return (
|
||||
<div id="hero" data-section="hero">
|
||||
<SectionErrorBoundary name="hero">
|
||||
<HeroTiltedCards
|
||||
tag="Sinceasdfasdfasdfasdf 1985"
|
||||
title="Baking warmth iasdfasdfasdfnto every loaf."
|
||||
description="Authentic, handcrafted breads and pastrieasdfasdfasdfasds made with organic ingredients daily in our kitchen."
|
||||
primaryButton={{
|
||||
text: "asdfasdfasdfasdfasdfasdfasdfasdfSee Menu", href: "#products"}}
|
||||
secondaryButton={{
|
||||
text: "asdfasdfasdfasdasdfasdfasdfasdOur Story", href: "#about"}}
|
||||
items={[
|
||||
{ imageSrc: "https://storage.googleapis.com/webild/users/user_39wSE8YJoGda03bkKGOyyo2rjk4/uploaded-1781466517590-kavaf4h5.png" },
|
||||
{ imageSrc: "https://storage.googleapis.com/webild/users/user_39wSE8YJoGda03bkKGOyyo2rjk4/uploaded-1781466517590-kavaf4h5.png" },
|
||||
{ imageSrc: "https://storage.googleapis.com/webild/users/user_39wSE8YJoGda03bkKGOyyo2rjk4/uploaded-1781466517590-kavaf4h5.png" },
|
||||
{ imageSrc: "https://storage.googleapis.com/webild/users/user_39wSE8YJoGda03bkKGOyyo2rjk4/uploaded-1781466517590-kavaf4h5.png" },
|
||||
{ imageSrc: "https://storage.googleapis.com/webild/users/user_39wSE8YJoGda03bkKGOyyo2rjk4/uploaded-1781466517590-kavaf4h5.png" },
|
||||
]}
|
||||
textAnimation="fade-blur"
|
||||
/>
|
||||
</SectionErrorBoundary>
|
||||
</div>
|
||||
);
|
||||
}
|
||||
35
src/pages/HomePage/sections/Metrics.tsx
Normal file
35
src/pages/HomePage/sections/Metrics.tsx
Normal file
@@ -0,0 +1,35 @@
|
||||
// AUTO-GENERATED by per-section-migrate. Edit freely — Bob will treat this
|
||||
// file as the canonical source for the "metrics" section.
|
||||
|
||||
import React from 'react';
|
||||
import MetricsFeatureCards from '@/components/sections/metrics/MetricsFeatureCards';
|
||||
import SectionErrorBoundary from "@/components/ui/SectionErrorBoundary";
|
||||
|
||||
export default function MetricsSection(): React.JSX.Element {
|
||||
return (
|
||||
<div id="metrics" data-section="metrics">
|
||||
<SectionErrorBoundary name="metrics">
|
||||
<MetricsFeatureCards
|
||||
tag="Our Impact"
|
||||
title="Bakery in Numbers"
|
||||
description="Dedication to tradition leads to these daily results."
|
||||
metrics={[
|
||||
{
|
||||
value: "120+", title: "Loaves Baked Daily", features: [
|
||||
"Organic Flour", "Zero Preservatives"],
|
||||
},
|
||||
{
|
||||
value: "15+", title: "Unique Pastries", features: [
|
||||
"Seasonal Fruits", "Local Dairy"],
|
||||
},
|
||||
{
|
||||
value: "500+", title: "Happy Neighbors", features: [
|
||||
"Early Bird Special", "Daily Smiles"],
|
||||
},
|
||||
]}
|
||||
textAnimation="slide-up"
|
||||
/>
|
||||
</SectionErrorBoundary>
|
||||
</div>
|
||||
);
|
||||
}
|
||||
37
src/pages/HomePage/sections/Products.tsx
Normal file
37
src/pages/HomePage/sections/Products.tsx
Normal file
@@ -0,0 +1,37 @@
|
||||
// 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 FeaturesRevealCardsBento from '@/components/sections/features/FeaturesRevealCardsBento';
|
||||
import SectionErrorBoundary from "@/components/ui/SectionErrorBoundary";
|
||||
|
||||
export default function ProductsSection(): React.JSX.Element {
|
||||
return (
|
||||
<div id="products" data-section="products">
|
||||
<SectionErrorBoundary name="products">
|
||||
<FeaturesRevealCardsBento
|
||||
tag="Daily Fresasdfasdfasdfasdfasdhness"
|
||||
title="From Ouasdfasdfasdfasdfasdr Oven"
|
||||
description="Discover our signature range of artisaasdfasdfasdfasdfasdfasdfnal products crafted to perfection."
|
||||
items={[
|
||||
{
|
||||
title: "Sourdough", description: "Classic 24-hour fermented rustic loaf.", href: "#", imageSrc: "https://storage.googleapis.com/webild/users/user_39wSE8YJoGda03bkKGOyyo2rjk4/uploaded-1781466517590-kavaf4h5.png"},
|
||||
{
|
||||
title: "Croissants", description: "Buttery, flaky, and golden perfection.", href: "#", imageSrc: "https://storage.googleapis.com/webild/users/user_39wSE8YJoGda03bkKGOyyo2rjk4/uploaded-1781466517590-kavaf4h5.png"},
|
||||
{
|
||||
title: "Muffins", description: "Fresh berries and organic flour mix.", href: "#", imageSrc: "https://storage.googleapis.com/webild/users/user_39wSE8YJoGda03bkKGOyyo2rjk4/uploaded-1781466517590-kavaf4h5.png"},
|
||||
{
|
||||
title: "Cookies", description: "Loaded with Belgian dark chocolate.", href: "#", imageSrc: "https://storage.googleapis.com/webild/users/user_39wSE8YJoGda03bkKGOyyo2rjk4/uploaded-1781466517590-kavaf4h5.png"},
|
||||
{
|
||||
title: "Cinnamon Rolls", description: "Warm, glazed, and decadently spiced.", href: "#", imageSrc: "https://storage.googleapis.com/webild/users/user_39wSE8YJoGda03bkKGOyyo2rjk4/uploaded-1781466517590-kavaf4h5.png"},
|
||||
{
|
||||
title: "Danishes", description: "Seasonal fruit and custard delight.", href: "#", imageSrc: "https://storage.googleapis.com/webild/users/user_39wSE8YJoGda03bkKGOyyo2rjk4/uploaded-1781466517590-kavaf4h5.png"},
|
||||
{
|
||||
title: "Baguettes", description: "Crispy crust with airy light crumb.", href: "#", imageSrc: "https://storage.googleapis.com/webild/users/user_39wSE8YJoGda03bkKGOyyo2rjk4/uploaded-1781466517590-kavaf4h5.png"},
|
||||
]}
|
||||
textAnimation="fade"
|
||||
/>
|
||||
</SectionErrorBoundary>
|
||||
</div>
|
||||
);
|
||||
}
|
||||
33
src/pages/HomePage/sections/Team.tsx
Normal file
33
src/pages/HomePage/sections/Team.tsx
Normal file
@@ -0,0 +1,33 @@
|
||||
// AUTO-GENERATED by per-section-migrate. Edit freely — Bob will treat this
|
||||
// file as the canonical source for the "team" section.
|
||||
|
||||
import React from 'react';
|
||||
import TeamListCards from '@/components/sections/team/TeamListCards';
|
||||
import SectionErrorBoundary from "@/components/ui/SectionErrorBoundary";
|
||||
|
||||
export default function TeamSection(): React.JSX.Element {
|
||||
return (
|
||||
<div id="team" data-section="team">
|
||||
<SectionErrorBoundary name="team">
|
||||
<TeamListCards
|
||||
tag="Meet the asdfasfasdfasdfasdArtists"
|
||||
title="The Handasdfasdfasdfasdfas Behind"
|
||||
description="Our team of dedicated bakers and pastry asdfasdfasdfasdfasdfaschefs ensuring every morning starts fresh."
|
||||
groups={[
|
||||
{
|
||||
title: "Bakery Leads", members: [
|
||||
{
|
||||
name: "Elena Rossi", role: "Head Baker", detail: "Master of heritage sourdough techniques.", imageSrc: "https://storage.googleapis.com/webild/users/user_39wSE8YJoGda03bkKGOyyo2rjk4/uploaded-1781466517590-kavaf4h5.png"},
|
||||
{
|
||||
name: "Marcello V.", role: "Pastry Chef", detail: "Specializing in refined French patisserie.", imageSrc: "https://storage.googleapis.com/webild/users/user_39wSE8YJoGda03bkKGOyyo2rjk4/uploaded-1781466517590-kavaf4h5.png"},
|
||||
{
|
||||
name: "Sarah Jenkins", role: "Operations Manager", detail: "Ensuring the heart of the shop runs smooth.", imageSrc: "https://storage.googleapis.com/webild/users/user_39wSE8YJoGda03bkKGOyyo2rjk4/uploaded-1781466517590-kavaf4h5.png"},
|
||||
],
|
||||
},
|
||||
]}
|
||||
textAnimation="slide-up"
|
||||
/>
|
||||
</SectionErrorBoundary>
|
||||
</div>
|
||||
);
|
||||
}
|
||||
38
src/pages/HomePage/sections/Testimonials.tsx
Normal file
38
src/pages/HomePage/sections/Testimonials.tsx
Normal file
@@ -0,0 +1,38 @@
|
||||
// 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 TestimonialOverlayCards from '@/components/sections/testimonial/TestimonialOverlayCards';
|
||||
import SectionErrorBoundary from "@/components/ui/SectionErrorBoundary";
|
||||
|
||||
export default function TestimonialsSection(): React.JSX.Element {
|
||||
return (
|
||||
<div id="testimonials" data-section="testimonials">
|
||||
<SectionErrorBoundary name="testimonials">
|
||||
<TestimonialOverlayCards
|
||||
tag="Customer Joy"
|
||||
title="Loved by locals"
|
||||
description="Hear what our regulars say about their morning favorites."
|
||||
testimonials={[
|
||||
{
|
||||
name: "Maria C.", role: "Local Teacher", company: "St. Paul School", rating: 5,
|
||||
imageSrc: "https://storage.googleapis.com/webild/users/user_39wSE8YJoGda03bkKGOyyo2rjk4/uploaded-1781466517590-kavaf4h5.png"},
|
||||
{
|
||||
name: "James B.", role: "Artist", company: "Independent", rating: 5,
|
||||
imageSrc: "https://storage.googleapis.com/webild/users/user_39wSE8YJoGda03bkKGOyyo2rjk4/uploaded-1781466517590-kavaf4h5.png"},
|
||||
{
|
||||
name: "Anna K.", role: "Customer", company: "Neighborhood", rating: 5,
|
||||
imageSrc: "https://storage.googleapis.com/webild/users/user_39wSE8YJoGda03bkKGOyyo2rjk4/uploaded-1781466517590-kavaf4h5.png"},
|
||||
{
|
||||
name: "David W.", role: "Professional", company: "TechDesk", rating: 5,
|
||||
imageSrc: "https://storage.googleapis.com/webild/users/user_39wSE8YJoGda03bkKGOyyo2rjk4/uploaded-1781466517590-kavaf4h5.png"},
|
||||
{
|
||||
name: "Lisa M.", role: "Regular", company: "Creative Hub", rating: 5,
|
||||
imageSrc: "https://storage.googleapis.com/webild/users/user_39wSE8YJoGda03bkKGOyyo2rjk4/uploaded-1781466517590-kavaf4h5.png"},
|
||||
]}
|
||||
textAnimation="fade-blur"
|
||||
/>
|
||||
</SectionErrorBoundary>
|
||||
</div>
|
||||
);
|
||||
}
|
||||
Reference in New Issue
Block a user