Merge version_2_1780855739770 into main #2
@@ -1,235 +1,31 @@
|
||||
import AboutMediaOverlay from '@/components/sections/about/AboutMediaOverlay';
|
||||
import ContactCta from '@/components/sections/contact/ContactCta';
|
||||
import FaqSplitMedia from '@/components/sections/faq/FaqSplitMedia';
|
||||
import FeaturesMediaCards from '@/components/sections/features/FeaturesMediaCards';
|
||||
import FeaturesRevealCardsBento from '@/components/sections/features/FeaturesRevealCardsBento';
|
||||
import HeroBrand from '@/components/sections/hero/HeroBrand';
|
||||
import MetricsSimpleCards from '@/components/sections/metrics/MetricsSimpleCards';
|
||||
import TestimonialTrustCard from '@/components/sections/testimonial/TestimonialTrustCard';
|
||||
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 HeroSection from './HomePage/sections/Hero';
|
||||
import AboutSection from './HomePage/sections/About';
|
||||
import MenuSection from './HomePage/sections/Menu';
|
||||
import FeaturesSection from './HomePage/sections/Features';
|
||||
import MetricsSection from './HomePage/sections/Metrics';
|
||||
import TestimonialsSection from './HomePage/sections/Testimonials';
|
||||
import FaqSection from './HomePage/sections/Faq';
|
||||
import ContactSection from './HomePage/sections/Contact';
|
||||
|
||||
|
||||
{/* webild-stub @2026-06-07T18:10:07.529Z: Add a buy button on each card of the menu section */}
|
||||
|
||||
export default function HomePage(): React.JSX.Element {
|
||||
return (
|
||||
<>
|
||||
<div id="hero" data-section="hero">
|
||||
<SectionErrorBoundary name="hero">
|
||||
<HeroBrand
|
||||
brand="Taco Haven"
|
||||
description="Experience gourmet tacos crafted with the freshest, locally sourced ingredients and authentic flavors. A culinary journey for your taste buds."
|
||||
primaryButton={{
|
||||
text: "View Our Menu",
|
||||
href: "#menu",
|
||||
}}
|
||||
secondaryButton={{
|
||||
text: "Order Online",
|
||||
href: "#contact",
|
||||
}}
|
||||
imageSrc="http://img.b2bpic.net/free-photo/tacos-with-vegetables-meat-view_23-2148750437.jpg"
|
||||
/>
|
||||
</SectionErrorBoundary>
|
||||
</div>
|
||||
|
||||
<div id="about" data-section="about">
|
||||
<SectionErrorBoundary name="about">
|
||||
<AboutMediaOverlay
|
||||
tag="Our Story"
|
||||
title="Passion for Authentic Flavor"
|
||||
description="At Taco Haven, we believe in the power of a perfect taco. Our journey began with a simple idea: to elevate the humble taco to a gourmet experience using traditional techniques and bold, innovative ingredients. Every taco is a testament to our dedication to quality and flavor."
|
||||
primaryButton={{
|
||||
text: "Learn More",
|
||||
href: "#about",
|
||||
}}
|
||||
imageSrc="http://img.b2bpic.net/free-photo/mexican-food-preparation-concept_23-2147812210.jpg"
|
||||
/>
|
||||
</SectionErrorBoundary>
|
||||
</div>
|
||||
|
||||
<div id="menu" data-section="menu">
|
||||
<SectionErrorBoundary name="menu">
|
||||
<FeaturesRevealCardsBento
|
||||
tag="Our Menu"
|
||||
title="Explore Our Gourmet Taco Selection"
|
||||
description="From classic favorites to adventurous new creations, each taco is a masterpiece of flavor and texture."
|
||||
items={[
|
||||
{
|
||||
title: "Carnitas Taco",
|
||||
description: "Slow-cooked pork, confit until tender, served with pickled onions, cilantro, and salsa verde.",
|
||||
href: "#",
|
||||
imageSrc: "http://img.b2bpic.net/free-photo/tasty-tacos-plate-with-lime_23-2148629344.jpg",
|
||||
},
|
||||
{
|
||||
title: "Spicy Shrimp Taco",
|
||||
description: "Grilled shrimp, fiery chili aioli, crisp cabbage slaw, and a squeeze of fresh lime.",
|
||||
href: "#",
|
||||
imageSrc: "http://img.b2bpic.net/free-photo/arrangement-with-tortilla-chips-bowl_23-2148329085.jpg",
|
||||
},
|
||||
{
|
||||
title: "Roasted Veggie Taco",
|
||||
description: "A vibrant mix of seasonal roasted vegetables, black bean puree, and avocado crema.",
|
||||
href: "#",
|
||||
imageSrc: "http://img.b2bpic.net/free-photo/flat-lay-salad-with-black-beans-tortilla_23-2148660380.jpg",
|
||||
},
|
||||
{
|
||||
title: "Carne Asada Taco",
|
||||
description: "Marinated skirt steak, grilled to perfection, with pico de gallo and a rich guajillo sauce.",
|
||||
href: "#",
|
||||
imageSrc: "http://img.b2bpic.net/free-photo/top-view-arrangement-with-unfolded-burrito-yellow-background_23-2148329130.jpg",
|
||||
},
|
||||
{
|
||||
title: "Baja Fish Taco",
|
||||
description: "Crispy battered cod, chipotle mayo, crunchy cabbage, and a fresh cilantro garnish.",
|
||||
href: "#",
|
||||
imageSrc: "http://img.b2bpic.net/free-photo/mexican-tacos-wih-shrimp-vegetables_123827-22454.jpg",
|
||||
},
|
||||
{
|
||||
title: "Chicken Tinga Taco",
|
||||
description: "Shredded chicken in a smoky chipotle tomato sauce, topped with crumbled cotija cheese.",
|
||||
href: "#",
|
||||
imageSrc: "http://img.b2bpic.net/free-photo/close-up-delicious-tacos-plate_23-2150831035.jpg",
|
||||
},
|
||||
{
|
||||
title: "Wild Mushroom Taco",
|
||||
description: "Sautéed wild mushrooms, caramelized onions, and a hint of truffle oil, finished with fresh herbs.",
|
||||
href: "#",
|
||||
imageSrc: "http://img.b2bpic.net/free-photo/mexican-meal_23-2148159763.jpg",
|
||||
},
|
||||
]}
|
||||
/>
|
||||
</SectionErrorBoundary>
|
||||
</div>
|
||||
|
||||
<div id="features" data-section="features">
|
||||
<SectionErrorBoundary name="features">
|
||||
<FeaturesMediaCards
|
||||
tag="Beyond Tacos"
|
||||
title="Perfect Pairings & More"
|
||||
description="Enhance your taco experience with our handcrafted drinks and delicious sides."
|
||||
items={[
|
||||
{
|
||||
title: "Craft Margaritas",
|
||||
description: "Our signature margaritas, made with fresh-squeezed juices and premium tequila.",
|
||||
imageSrc: "http://img.b2bpic.net/free-photo/view-alcoholic-cocktail-with-cbd-oil-infusion_23-2150762332.jpg",
|
||||
},
|
||||
{
|
||||
title: "Loaded Nachos",
|
||||
description: "A mountain of crispy tortilla chips smothered in cheese, salsa, jalapeños, and your choice of protein.",
|
||||
imageSrc: "http://img.b2bpic.net/free-photo/healthy-homemade-hummus-with-olive-oil-pita-chips_2829-16481.jpg",
|
||||
},
|
||||
{
|
||||
title: "Churros & Chocolate",
|
||||
description: "Warm, crispy churros dusted with cinnamon sugar, served with rich chocolate dipping sauce.",
|
||||
imageSrc: "http://img.b2bpic.net/free-photo/hot-chocolate-cinnamon-near-towel-spoon_23-2147943840.jpg",
|
||||
},
|
||||
]}
|
||||
/>
|
||||
</SectionErrorBoundary>
|
||||
</div>
|
||||
|
||||
<div id="metrics" data-section="metrics">
|
||||
<SectionErrorBoundary name="metrics">
|
||||
<MetricsSimpleCards
|
||||
tag="Our Impact"
|
||||
title="A Community Favorite"
|
||||
description="We're proud of the passion we put into every dish and the joy we bring to our customers."
|
||||
metrics={[
|
||||
{
|
||||
value: "10K+",
|
||||
description: "Tacos Served",
|
||||
},
|
||||
{
|
||||
value: "5 Stars",
|
||||
description: "Average Rating",
|
||||
},
|
||||
{
|
||||
value: "500+",
|
||||
description: "Happy Customers Daily",
|
||||
},
|
||||
]}
|
||||
/>
|
||||
</SectionErrorBoundary>
|
||||
</div>
|
||||
|
||||
<div id="testimonials" data-section="testimonials">
|
||||
<SectionErrorBoundary name="testimonials">
|
||||
<TestimonialTrustCard
|
||||
quote="The best tacos I've ever had! Every bite is a burst of fresh, authentic flavor. Taco Haven is my new go-to spot."
|
||||
rating={5}
|
||||
author="Maria S."
|
||||
avatars={[
|
||||
{
|
||||
name: "Maria S.",
|
||||
imageSrc: "http://img.b2bpic.net/free-photo/portrait-funny-young-afro-american-man_171337-7343.jpg",
|
||||
},
|
||||
{
|
||||
name: "John D.",
|
||||
imageSrc: "http://img.b2bpic.net/free-photo/happy-overjoyed-woman-rejoicing-her-success_74855-3513.jpg",
|
||||
},
|
||||
{
|
||||
name: "Emily R.",
|
||||
imageSrc: "http://img.b2bpic.net/free-photo/portrait-beautiful-redhead-lady_23-2148339146.jpg",
|
||||
},
|
||||
{
|
||||
name: "David K.",
|
||||
imageSrc: "http://img.b2bpic.net/free-photo/people-technology-leisure-concept_273609-6599.jpg",
|
||||
},
|
||||
{
|
||||
name: "Sarah L.",
|
||||
imageSrc: "http://img.b2bpic.net/free-photo/young-beautiful-woman-with-curly-hair-isolated_273609-48328.jpg",
|
||||
},
|
||||
]}
|
||||
/>
|
||||
</SectionErrorBoundary>
|
||||
</div>
|
||||
|
||||
<div id="faq" data-section="faq">
|
||||
<SectionErrorBoundary name="faq">
|
||||
<FaqSplitMedia
|
||||
tag="Got Questions?"
|
||||
title="Frequently Asked Questions"
|
||||
description="Find answers to common questions about our menu, hours, and services."
|
||||
items={[
|
||||
{
|
||||
question: "What are your opening hours?",
|
||||
answer: "We are open Tuesday to Sunday, from 11 AM to 9 PM. Closed on Mondays.",
|
||||
},
|
||||
{
|
||||
question: "Do you offer vegetarian or vegan options?",
|
||||
answer: "Yes, we have a delicious roasted veggie taco and can accommodate most dietary requests. Please ask our staff!",
|
||||
},
|
||||
{
|
||||
question: "Can I make a reservation?",
|
||||
answer: "We operate on a first-come, first-served basis for small groups. For parties of 8 or more, please call us in advance.",
|
||||
},
|
||||
{
|
||||
question: "Do you offer catering services?",
|
||||
answer: "Absolutely! We cater for events of all sizes. Contact us for our catering menu and custom options.",
|
||||
},
|
||||
{
|
||||
question: "Where are you located?",
|
||||
answer: "You can find us at 123 Main Street, Anytown, USA.",
|
||||
},
|
||||
]}
|
||||
imageSrc="http://img.b2bpic.net/free-photo/serious-young-redhead-curly-lady-sitting-cafe_171337-16952.jpg"
|
||||
/>
|
||||
</SectionErrorBoundary>
|
||||
</div>
|
||||
|
||||
<div id="contact" data-section="contact">
|
||||
<SectionErrorBoundary name="contact">
|
||||
<ContactCta
|
||||
tag="Taste the Difference"
|
||||
text="Your next favorite taco is waiting. Visit us or order online!"
|
||||
primaryButton={{
|
||||
text: "Find Us",
|
||||
href: "https://www.google.com/maps",
|
||||
}}
|
||||
secondaryButton={{
|
||||
text: "Order Pickup",
|
||||
href: "#",
|
||||
}}
|
||||
/>
|
||||
</SectionErrorBoundary>
|
||||
</div>
|
||||
<HeroSection />
|
||||
<AboutSection />
|
||||
<MenuSection />
|
||||
<FeaturesSection />
|
||||
<MetricsSection />
|
||||
<TestimonialsSection />
|
||||
<FaqSection />
|
||||
<ContactSection />
|
||||
</>
|
||||
);
|
||||
}
|
||||
|
||||
25
src/pages/HomePage/sections/About.tsx
Normal file
25
src/pages/HomePage/sections/About.tsx
Normal file
@@ -0,0 +1,25 @@
|
||||
// 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 Story"
|
||||
title="Passion for Authentic Flavor"
|
||||
description="At Taco Haven, we believe in the power of a perfect taco. Our journey began with a simple idea: to elevate the humble taco to a gourmet experience using traditional techniques and bold, innovative ingredients. Every taco is a testament to our dedication to quality and flavor."
|
||||
primaryButton={{
|
||||
text: "Learn More",
|
||||
href: "#about",
|
||||
}}
|
||||
imageSrc="http://img.b2bpic.net/free-photo/mexican-food-preparation-concept_23-2147812210.jpg"
|
||||
/>
|
||||
</SectionErrorBoundary>
|
||||
</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="Taste the Difference"
|
||||
text="Your next favorite taco is waiting. Visit us or order online!"
|
||||
primaryButton={{
|
||||
text: "Find Us",
|
||||
href: "https://www.google.com/maps",
|
||||
}}
|
||||
secondaryButton={{
|
||||
text: "Order Pickup",
|
||||
href: "#",
|
||||
}}
|
||||
/>
|
||||
</SectionErrorBoundary>
|
||||
</div>
|
||||
);
|
||||
}
|
||||
43
src/pages/HomePage/sections/Faq.tsx
Normal file
43
src/pages/HomePage/sections/Faq.tsx
Normal file
@@ -0,0 +1,43 @@
|
||||
// AUTO-GENERATED by per-section-migrate. Edit freely — Bob will treat this
|
||||
// file as the canonical source for the "faq" section.
|
||||
|
||||
import React from 'react';
|
||||
import FaqSplitMedia from '@/components/sections/faq/FaqSplitMedia';
|
||||
import SectionErrorBoundary from "@/components/ui/SectionErrorBoundary";
|
||||
|
||||
export default function FaqSection(): React.JSX.Element {
|
||||
return (
|
||||
<div id="faq" data-section="faq">
|
||||
<SectionErrorBoundary name="faq">
|
||||
<FaqSplitMedia
|
||||
tag="Got Questions?"
|
||||
title="Frequently Asked Questions"
|
||||
description="Find answers to common questions about our menu, hours, and services."
|
||||
items={[
|
||||
{
|
||||
question: "What are your opening hours?",
|
||||
answer: "We are open Tuesday to Sunday, from 11 AM to 9 PM. Closed on Mondays.",
|
||||
},
|
||||
{
|
||||
question: "Do you offer vegetarian or vegan options?",
|
||||
answer: "Yes, we have a delicious roasted veggie taco and can accommodate most dietary requests. Please ask our staff!",
|
||||
},
|
||||
{
|
||||
question: "Can I make a reservation?",
|
||||
answer: "We operate on a first-come, first-served basis for small groups. For parties of 8 or more, please call us in advance.",
|
||||
},
|
||||
{
|
||||
question: "Do you offer catering services?",
|
||||
answer: "Absolutely! We cater for events of all sizes. Contact us for our catering menu and custom options.",
|
||||
},
|
||||
{
|
||||
question: "Where are you located?",
|
||||
answer: "You can find us at 123 Main Street, Anytown, USA.",
|
||||
},
|
||||
]}
|
||||
imageSrc="http://img.b2bpic.net/free-photo/serious-young-redhead-curly-lady-sitting-cafe_171337-16952.jpg"
|
||||
/>
|
||||
</SectionErrorBoundary>
|
||||
</div>
|
||||
);
|
||||
}
|
||||
37
src/pages/HomePage/sections/Features.tsx
Normal file
37
src/pages/HomePage/sections/Features.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 "features" section.
|
||||
|
||||
import React from 'react';
|
||||
import FeaturesMediaCards from '@/components/sections/features/FeaturesMediaCards';
|
||||
import SectionErrorBoundary from "@/components/ui/SectionErrorBoundary";
|
||||
|
||||
export default function FeaturesSection(): React.JSX.Element {
|
||||
return (
|
||||
<div id="features" data-section="features">
|
||||
<SectionErrorBoundary name="features">
|
||||
<FeaturesMediaCards
|
||||
tag="Beyond Tacos"
|
||||
title="Perfect Pairings & More"
|
||||
description="Enhance your taco experience with our handcrafted drinks and delicious sides."
|
||||
items={[
|
||||
{
|
||||
title: "Craft Margaritas",
|
||||
description: "Our signature margaritas, made with fresh-squeezed juices and premium tequila.",
|
||||
imageSrc: "http://img.b2bpic.net/free-photo/view-alcoholic-cocktail-with-cbd-oil-infusion_23-2150762332.jpg",
|
||||
},
|
||||
{
|
||||
title: "Loaded Nachos",
|
||||
description: "A mountain of crispy tortilla chips smothered in cheese, salsa, jalapeños, and your choice of protein.",
|
||||
imageSrc: "http://img.b2bpic.net/free-photo/healthy-homemade-hummus-with-olive-oil-pita-chips_2829-16481.jpg",
|
||||
},
|
||||
{
|
||||
title: "Churros & Chocolate",
|
||||
description: "Warm, crispy churros dusted with cinnamon sugar, served with rich chocolate dipping sauce.",
|
||||
imageSrc: "http://img.b2bpic.net/free-photo/hot-chocolate-cinnamon-near-towel-spoon_23-2147943840.jpg",
|
||||
},
|
||||
]}
|
||||
/>
|
||||
</SectionErrorBoundary>
|
||||
</div>
|
||||
);
|
||||
}
|
||||
28
src/pages/HomePage/sections/Hero.tsx
Normal file
28
src/pages/HomePage/sections/Hero.tsx
Normal file
@@ -0,0 +1,28 @@
|
||||
// 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 HeroBrand from '@/components/sections/hero/HeroBrand';
|
||||
import SectionErrorBoundary from "@/components/ui/SectionErrorBoundary";
|
||||
|
||||
export default function HeroSection(): React.JSX.Element {
|
||||
return (
|
||||
<div id="hero" data-section="hero">
|
||||
<SectionErrorBoundary name="hero">
|
||||
<HeroBrand
|
||||
brand="Taco Haven"
|
||||
description="Experience gourmet tacos crafted with the freshest, locally sourced ingredients and authentic flavors. A culinary journey for your taste buds."
|
||||
primaryButton={{
|
||||
text: "View Our Menu",
|
||||
href: "#menu",
|
||||
}}
|
||||
secondaryButton={{
|
||||
text: "Order Online",
|
||||
href: "#contact",
|
||||
}}
|
||||
imageSrc="http://img.b2bpic.net/free-photo/tacos-with-vegetables-meat-view_23-2148750437.jpg"
|
||||
/>
|
||||
</SectionErrorBoundary>
|
||||
</div>
|
||||
);
|
||||
}
|
||||
64
src/pages/HomePage/sections/Menu.tsx
Normal file
64
src/pages/HomePage/sections/Menu.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 "menu" section.
|
||||
|
||||
import React from 'react';
|
||||
import FeaturesRevealCardsBento from '@/components/sections/features/FeaturesRevealCardsBento';
|
||||
import SectionErrorBoundary from "@/components/ui/SectionErrorBoundary";
|
||||
|
||||
export default function MenuSection(): React.JSX.Element {
|
||||
return (
|
||||
<div id="menu" data-section="menu">
|
||||
<SectionErrorBoundary name="menu">
|
||||
<FeaturesRevealCardsBento
|
||||
tag="Our Menu"
|
||||
title="Explore Our Gourmet Taco Selection"
|
||||
description="From classic favorites to adventurous new creations, each taco is a masterpiece of flavor and texture."
|
||||
items={[
|
||||
{
|
||||
title: "Carnitas Taco",
|
||||
description: "Slow-cooked pork, confit until tender, served with pickled onions, cilantro, and salsa verde.",
|
||||
href: "#",
|
||||
imageSrc: "http://img.b2bpic.net/free-photo/tasty-tacos-plate-with-lime_23-2148629344.jpg",
|
||||
},
|
||||
{
|
||||
title: "Spicy Shrimp Taco",
|
||||
description: "Grilled shrimp, fiery chili aioli, crisp cabbage slaw, and a squeeze of fresh lime.",
|
||||
href: "#",
|
||||
imageSrc: "http://img.b2bpic.net/free-photo/arrangement-with-tortilla-chips-bowl_23-2148329085.jpg",
|
||||
},
|
||||
{
|
||||
title: "Roasted Veggie Taco",
|
||||
description: "A vibrant mix of seasonal roasted vegetables, black bean puree, and avocado crema.",
|
||||
href: "#",
|
||||
imageSrc: "http://img.b2bpic.net/free-photo/flat-lay-salad-with-black-beans-tortilla_23-2148660380.jpg",
|
||||
},
|
||||
{
|
||||
title: "Carne Asada Taco",
|
||||
description: "Marinated skirt steak, grilled to perfection, with pico de gallo and a rich guajillo sauce.",
|
||||
href: "#",
|
||||
imageSrc: "http://img.b2bpic.net/free-photo/top-view-arrangement-with-unfolded-burrito-yellow-background_23-2148329130.jpg",
|
||||
},
|
||||
{
|
||||
title: "Baja Fish Taco",
|
||||
description: "Crispy battered cod, chipotle mayo, crunchy cabbage, and a fresh cilantro garnish.",
|
||||
href: "#",
|
||||
imageSrc: "http://img.b2bpic.net/free-photo/mexican-tacos-wih-shrimp-vegetables_123827-22454.jpg",
|
||||
},
|
||||
{
|
||||
title: "Chicken Tinga Taco",
|
||||
description: "Shredded chicken in a smoky chipotle tomato sauce, topped with crumbled cotija cheese.",
|
||||
href: "#",
|
||||
imageSrc: "http://img.b2bpic.net/free-photo/close-up-delicious-tacos-plate_23-2150831035.jpg",
|
||||
},
|
||||
{
|
||||
title: "Wild Mushroom Taco",
|
||||
description: "Sautéed wild mushrooms, caramelized onions, and a hint of truffle oil, finished with fresh herbs.",
|
||||
href: "#",
|
||||
imageSrc: "http://img.b2bpic.net/free-photo/mexican-meal_23-2148159763.jpg",
|
||||
},
|
||||
]}
|
||||
/>
|
||||
</SectionErrorBoundary>
|
||||
</div>
|
||||
);
|
||||
}
|
||||
34
src/pages/HomePage/sections/Metrics.tsx
Normal file
34
src/pages/HomePage/sections/Metrics.tsx
Normal file
@@ -0,0 +1,34 @@
|
||||
// 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 MetricsSimpleCards from '@/components/sections/metrics/MetricsSimpleCards';
|
||||
import SectionErrorBoundary from "@/components/ui/SectionErrorBoundary";
|
||||
|
||||
export default function MetricsSection(): React.JSX.Element {
|
||||
return (
|
||||
<div id="metrics" data-section="metrics">
|
||||
<SectionErrorBoundary name="metrics">
|
||||
<MetricsSimpleCards
|
||||
tag="Our Impact"
|
||||
title="A Community Favorite"
|
||||
description="We're proud of the passion we put into every dish and the joy we bring to our customers."
|
||||
metrics={[
|
||||
{
|
||||
value: "10K+",
|
||||
description: "Tacos Served",
|
||||
},
|
||||
{
|
||||
value: "5 Stars",
|
||||
description: "Average Rating",
|
||||
},
|
||||
{
|
||||
value: "500+",
|
||||
description: "Happy Customers Daily",
|
||||
},
|
||||
]}
|
||||
/>
|
||||
</SectionErrorBoundary>
|
||||
</div>
|
||||
);
|
||||
}
|
||||
42
src/pages/HomePage/sections/Testimonials.tsx
Normal file
42
src/pages/HomePage/sections/Testimonials.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 "testimonials" section.
|
||||
|
||||
import React from 'react';
|
||||
import TestimonialTrustCard from '@/components/sections/testimonial/TestimonialTrustCard';
|
||||
import SectionErrorBoundary from "@/components/ui/SectionErrorBoundary";
|
||||
|
||||
export default function TestimonialsSection(): React.JSX.Element {
|
||||
return (
|
||||
<div id="testimonials" data-section="testimonials">
|
||||
<SectionErrorBoundary name="testimonials">
|
||||
<TestimonialTrustCard
|
||||
quote="The best tacos I've ever had! Every bite is a burst of fresh, authentic flavor. Taco Haven is my new go-to spot."
|
||||
rating={5}
|
||||
author="Maria S."
|
||||
avatars={[
|
||||
{
|
||||
name: "Maria S.",
|
||||
imageSrc: "http://img.b2bpic.net/free-photo/portrait-funny-young-afro-american-man_171337-7343.jpg",
|
||||
},
|
||||
{
|
||||
name: "John D.",
|
||||
imageSrc: "http://img.b2bpic.net/free-photo/happy-overjoyed-woman-rejoicing-her-success_74855-3513.jpg",
|
||||
},
|
||||
{
|
||||
name: "Emily R.",
|
||||
imageSrc: "http://img.b2bpic.net/free-photo/portrait-beautiful-redhead-lady_23-2148339146.jpg",
|
||||
},
|
||||
{
|
||||
name: "David K.",
|
||||
imageSrc: "http://img.b2bpic.net/free-photo/people-technology-leisure-concept_273609-6599.jpg",
|
||||
},
|
||||
{
|
||||
name: "Sarah L.",
|
||||
imageSrc: "http://img.b2bpic.net/free-photo/young-beautiful-woman-with-curly-hair-isolated_273609-48328.jpg",
|
||||
},
|
||||
]}
|
||||
/>
|
||||
</SectionErrorBoundary>
|
||||
</div>
|
||||
);
|
||||
}
|
||||
Reference in New Issue
Block a user