Merge version_1_1781348553141 into main #2
@@ -11,270 +11,143 @@ import SectionErrorBoundary from "@/components/ui/SectionErrorBoundary";
|
||||
export default function HomePage() {
|
||||
return (
|
||||
<>
|
||||
<div id="hero" data-section="hero">
|
||||
<SectionErrorBoundary name="hero">
|
||||
<div id="hero" data-section="hero">
|
||||
<SectionErrorBoundary name="hero">
|
||||
<HeroSplitMediaGrid
|
||||
tag="Since 1984"
|
||||
title="Where Bergamo Finds Its Heart"
|
||||
description="Like a silk tablecloth in grandmother's dining room, we serve warmth, memory, and hand-rolled pasta."
|
||||
primaryButton={{
|
||||
text: "Reserve a Table",
|
||||
href: "#contact",
|
||||
}}
|
||||
secondaryButton={{
|
||||
text: "Our Story",
|
||||
href: "#about",
|
||||
}}
|
||||
items={[
|
||||
{
|
||||
imageSrc: "https://images.pexels.com/photos/19965097/pexels-photo-19965097.jpeg?auto=compress&cs=tinysrgb&h=650&w=940&_wi=1",
|
||||
},
|
||||
{
|
||||
imageSrc: "https://images.pexels.com/photos/14861070/pexels-photo-14861070.jpeg?auto=compress&cs=tinysrgb&h=650&w=940&_wi=1",
|
||||
},
|
||||
]}
|
||||
/>
|
||||
</SectionErrorBoundary>
|
||||
</div>
|
||||
tag="Since 1984"
|
||||
title="Where Bergamo Finds Its Heart"
|
||||
description="Like a silk tablecloth in grandmother's dining room, we serve warmth, memory, and hand-rolled pasta."
|
||||
primaryButton={{ text: "Reserve a Table", href: "#contact" }}
|
||||
secondaryButton={{ text: "Our Story", href: "#about" }}
|
||||
items={[
|
||||
{ imageSrc: "https://images.pexels.com/photos/19965097/pexels-photo-19965097.jpeg?auto=compress&cs=tinysrgb&h=650&w=940" },
|
||||
{ imageSrc: "https://images.pexels.com/photos/14861070/pexels-photo-14861070.jpeg?auto=compress&cs=tinysrgb&h=650&w=940" }
|
||||
]}
|
||||
/>
|
||||
</SectionErrorBoundary>
|
||||
</div>
|
||||
|
||||
<div id="about" data-section="about">
|
||||
<SectionErrorBoundary name="about">
|
||||
<div id="about" data-section="about">
|
||||
<SectionErrorBoundary name="about">
|
||||
<AboutTestimonial
|
||||
tag="Meet Barbara"
|
||||
quote="Cooking is not a performance. It is an act of love, a daily conversation with my ancestors in the quiet corners of Bergamo."
|
||||
author="Barbara Rossi"
|
||||
role="Founder & Soul of the Trattoria"
|
||||
imageSrc="https://images.pexels.com/photos/8477058/pexels-photo-8477058.jpeg?auto=compress&cs=tinysrgb&h=650&w=940&_wi=1"
|
||||
/>
|
||||
</SectionErrorBoundary>
|
||||
</div>
|
||||
tag="Meet Barbara"
|
||||
quote="Cooking is not a performance. It is an act of love, a daily conversation with my ancestors in the quiet corners of Bergamo."
|
||||
author="Barbara Rossi"
|
||||
role="Founder & Soul of the Trattoria"
|
||||
imageSrc="https://images.pexels.com/photos/8477058/pexels-photo-8477058.jpeg?auto=compress&cs=tinysrgb&h=650&w=940"
|
||||
/>
|
||||
</SectionErrorBoundary>
|
||||
</div>
|
||||
|
||||
<div id="features" data-section="features">
|
||||
<SectionErrorBoundary name="features">
|
||||
<div id="features" data-section="features">
|
||||
<SectionErrorBoundary name="features">
|
||||
<FeaturesBento
|
||||
tag="Our Craft"
|
||||
title="The Ingredients of Memory"
|
||||
description="Every plate tells a story of the mountains, the fields, and the hands that worked them."
|
||||
features={[
|
||||
{
|
||||
title: "Handmade Pasta",
|
||||
description: "Rollled daily before dawn.",
|
||||
bentoComponent: "media-stack",
|
||||
mediaItems: [
|
||||
{
|
||||
imageSrc: "https://images.pexels.com/photos/8092492/pexels-photo-8092492.jpeg?auto=compress&cs=tinysrgb&h=650&w=940",
|
||||
},
|
||||
{
|
||||
imageSrc: "https://images.pexels.com/photos/4113886/pexels-photo-4113886.jpeg?auto=compress&cs=tinysrgb&h=650&w=940",
|
||||
},
|
||||
{
|
||||
imageSrc: "https://images.pexels.com/photos/5908170/pexels-photo-5908170.jpeg?auto=compress&cs=tinysrgb&h=650&w=940",
|
||||
},
|
||||
],
|
||||
imageSrc: "https://images.pexels.com/photos/19965097/pexels-photo-19965097.jpeg?auto=compress&cs=tinysrgb&h=650&w=940&_wi=2",
|
||||
imageAlt: "homemade pasta dough texture",
|
||||
},
|
||||
{
|
||||
title: "Regional Wines",
|
||||
description: "Curated cellar from Lombardy.",
|
||||
bentoComponent: "media-stack",
|
||||
mediaItems: [
|
||||
{
|
||||
imageSrc: "https://images.pexels.com/photos/17527498/pexels-photo-17527498.jpeg?auto=compress&cs=tinysrgb&h=650&w=940",
|
||||
},
|
||||
{
|
||||
imageSrc: "https://images.pexels.com/photos/31665647/pexels-photo-31665647.jpeg?auto=compress&cs=tinysrgb&h=650&w=940",
|
||||
},
|
||||
{
|
||||
imageSrc: "https://images.pexels.com/photos/13257037/pexels-photo-13257037.jpeg?auto=compress&cs=tinysrgb&h=650&w=940",
|
||||
},
|
||||
],
|
||||
imageSrc: "https://images.pexels.com/photos/14861070/pexels-photo-14861070.jpeg?auto=compress&cs=tinysrgb&h=650&w=940&_wi=2",
|
||||
imageAlt: "homemade pasta dough texture",
|
||||
},
|
||||
{
|
||||
title: "Dolce Vita",
|
||||
description: "Traditional sweet finishes.",
|
||||
bentoComponent: "media-stack",
|
||||
mediaItems: [
|
||||
{
|
||||
imageSrc: "https://images.pexels.com/photos/5964615/pexels-photo-5964615.jpeg?auto=compress&cs=tinysrgb&h=650&w=940",
|
||||
},
|
||||
{
|
||||
imageSrc: "https://images.pexels.com/photos/29647508/pexels-photo-29647508.jpeg?auto=compress&cs=tinysrgb&h=650&w=940",
|
||||
},
|
||||
{
|
||||
imageSrc: "https://images.pexels.com/photos/30372664/pexels-photo-30372664.jpeg?auto=compress&cs=tinysrgb&h=650&w=940",
|
||||
},
|
||||
],
|
||||
imageSrc: "https://images.pexels.com/photos/8477058/pexels-photo-8477058.jpeg?auto=compress&cs=tinysrgb&h=650&w=940&_wi=2",
|
||||
imageAlt: "homemade pasta dough texture",
|
||||
},
|
||||
]}
|
||||
/>
|
||||
</SectionErrorBoundary>
|
||||
</div>
|
||||
tag="Our Craft"
|
||||
title="The Ingredients of Memory"
|
||||
description="Every plate tells a story of the mountains, the fields, and the hands that worked them."
|
||||
features={[
|
||||
{
|
||||
title: "Handmade Pasta", description: "Rollled daily before dawn.", bentoComponent: "media-stack", mediaItems: [
|
||||
{ imageSrc: "https://images.pexels.com/photos/8092492/pexels-photo-8092492.jpeg?auto=compress&cs=tinysrgb&h=650&w=940" },
|
||||
{ imageSrc: "https://images.pexels.com/photos/4113886/pexels-photo-4113886.jpeg?auto=compress&cs=tinysrgb&h=650&w=940" },
|
||||
{ imageSrc: "https://images.pexels.com/photos/5908170/pexels-photo-5908170.jpeg?auto=compress&cs=tinysrgb&h=650&w=940" }
|
||||
]
|
||||
},
|
||||
{
|
||||
title: "Regional Wines", description: "Curated cellar from Lombardy.", bentoComponent: "media-stack", mediaItems: [
|
||||
{ imageSrc: "https://images.pexels.com/photos/17527498/pexels-photo-17527498.jpeg?auto=compress&cs=tinysrgb&h=650&w=940" },
|
||||
{ imageSrc: "https://images.pexels.com/photos/31665647/pexels-photo-31665647.jpeg?auto=compress&cs=tinysrgb&h=650&w=940" },
|
||||
{ imageSrc: "https://images.pexels.com/photos/13257037/pexels-photo-13257037.jpeg?auto=compress&cs=tinysrgb&h=650&w=940" }
|
||||
]
|
||||
},
|
||||
{
|
||||
title: "Dolce Vita", description: "Traditional sweet finishes.", bentoComponent: "media-stack", mediaItems: [
|
||||
{ imageSrc: "https://images.pexels.com/photos/5964615/pexels-photo-5964615.jpeg?auto=compress&cs=tinysrgb&h=650&w=940" },
|
||||
{ imageSrc: "https://images.pexels.com/photos/29647508/pexels-photo-29647508.jpeg?auto=compress&cs=tinysrgb&h=650&w=940" },
|
||||
{ imageSrc: "https://images.pexels.com/photos/30372664/pexels-photo-30372664.jpeg?auto=compress&cs=tinysrgb&h=650&w=940" }
|
||||
]
|
||||
}
|
||||
]}
|
||||
/>
|
||||
</SectionErrorBoundary>
|
||||
</div>
|
||||
|
||||
<div id="menu" data-section="menu">
|
||||
<SectionErrorBoundary name="menu">
|
||||
<div id="menu" data-section="menu">
|
||||
<SectionErrorBoundary name="menu">
|
||||
<FeaturesRevealCardsBento
|
||||
tag="The Daily Menu"
|
||||
title="Generous Portions"
|
||||
description="Simple, honest Italian classics."
|
||||
items={[
|
||||
{
|
||||
title: "Casoncelli",
|
||||
description: "Bergamasque stuffed pasta.",
|
||||
href: "#",
|
||||
imageSrc: "https://images.pexels.com/photos/36903806/pexels-photo-36903806.jpeg?auto=compress&cs=tinysrgb&h=650&w=940",
|
||||
},
|
||||
{
|
||||
title: "Polenta e Osei",
|
||||
description: "Traditional local heritage.",
|
||||
href: "#",
|
||||
imageSrc: "https://images.pexels.com/photos/12991635/pexels-photo-12991635.jpeg?auto=compress&cs=tinysrgb&h=650&w=940",
|
||||
},
|
||||
{
|
||||
title: "Risotto ai Funghi",
|
||||
description: "Forest-fresh flavors.",
|
||||
href: "#",
|
||||
imageSrc: "https://images.pexels.com/photos/31372378/pexels-photo-31372378.jpeg?auto=compress&cs=tinysrgb&h=650&w=940",
|
||||
},
|
||||
{
|
||||
title: "Bollito Misto",
|
||||
description: "Slow-cooked perfection.",
|
||||
href: "#",
|
||||
imageSrc: "https://images.pexels.com/photos/11385964/pexels-photo-11385964.jpeg?auto=compress&cs=tinysrgb&h=650&w=940",
|
||||
},
|
||||
{
|
||||
title: "Torta di Mele",
|
||||
description: "Warm apple comfort.",
|
||||
href: "#",
|
||||
imageSrc: "https://images.pexels.com/photos/27672875/pexels-photo-27672875.jpeg?auto=compress&cs=tinysrgb&h=650&w=940",
|
||||
},
|
||||
{
|
||||
title: "Tagliata",
|
||||
description: "Seared beef, simple herbs.",
|
||||
href: "#",
|
||||
imageSrc: "https://images.pexels.com/photos/5667605/pexels-photo-5667605.jpeg?auto=compress&cs=tinysrgb&h=650&w=940",
|
||||
},
|
||||
{
|
||||
title: "Panna Cotta",
|
||||
description: "Silky, delicate, light.",
|
||||
href: "#",
|
||||
imageSrc: "https://images.pexels.com/photos/32066589/pexels-photo-32066589.jpeg?auto=compress&cs=tinysrgb&h=650&w=940",
|
||||
},
|
||||
]}
|
||||
/>
|
||||
</SectionErrorBoundary>
|
||||
</div>
|
||||
tag="The Daily Menu"
|
||||
title="Generous Portions"
|
||||
description="Simple, honest Italian classics."
|
||||
items={[
|
||||
{ title: "Casoncelli", description: "Bergamasque stuffed pasta.", href: "#", imageSrc: "https://images.pexels.com/photos/36903806/pexels-photo-36903806.jpeg?auto=compress&cs=tinysrgb&h=650&w=940" },
|
||||
{ title: "Polenta e Osei", description: "Traditional local heritage.", href: "#", imageSrc: "https://images.pexels.com/photos/12991635/pexels-photo-12991635.jpeg?auto=compress&cs=tinysrgb&h=650&w=940" },
|
||||
{ title: "Risotto ai Funghi", description: "Forest-fresh flavors.", href: "#", imageSrc: "https://images.pexels.com/photos/31372378/pexels-photo-31372378.jpeg?auto=compress&cs=tinysrgb&h=650&w=940" },
|
||||
{ title: "Bollito Misto", description: "Slow-cooked perfection.", href: "#", imageSrc: "https://images.pexels.com/photos/11385964/pexels-photo-11385964.jpeg?auto=compress&cs=tinysrgb&h=650&w=940" },
|
||||
{ title: "Torta di Mele", description: "Warm apple comfort.", href: "#", imageSrc: "https://images.pexels.com/photos/27672875/pexels-photo-27672875.jpeg?auto=compress&cs=tinysrgb&h=650&w=940" },
|
||||
{ title: "Tagliata", description: "Seared beef, simple herbs.", href: "#", imageSrc: "https://images.pexels.com/photos/5667605/pexels-photo-5667605.jpeg?auto=compress&cs=tinysrgb&h=650&w=940" },
|
||||
{ title: "Panna Cotta", description: "Silky, delicate, light.", href: "#", imageSrc: "https://images.pexels.com/photos/32066589/pexels-photo-32066589.jpeg?auto=compress&cs=tinysrgb&h=650&w=940" }
|
||||
]}
|
||||
/>
|
||||
</SectionErrorBoundary>
|
||||
</div>
|
||||
|
||||
<div id="testimonials" data-section="testimonials">
|
||||
<SectionErrorBoundary name="testimonials">
|
||||
<div id="testimonials" data-section="testimonials">
|
||||
<SectionErrorBoundary name="testimonials">
|
||||
<TestimonialColumnMarqueeCards
|
||||
tag="Kind Words"
|
||||
title="A Shared Table"
|
||||
description="What our patrons say about the atmosphere."
|
||||
testimonials={[
|
||||
{
|
||||
name: "Giulia",
|
||||
role: "Food Critic",
|
||||
quote: "Barbara's kitchen feels like a warm embrace.",
|
||||
imageSrc: "https://images.pexels.com/photos/19213399/pexels-photo-19213399.jpeg?auto=compress&cs=tinysrgb&h=650&w=940",
|
||||
},
|
||||
{
|
||||
name: "Marco",
|
||||
role: "Local Patron",
|
||||
quote: "The Casoncelli are exactly like my grandmother's.",
|
||||
imageSrc: "https://images.pexels.com/photos/20369503/pexels-photo-20369503.jpeg?auto=compress&cs=tinysrgb&h=650&w=940",
|
||||
},
|
||||
{
|
||||
name: "Elena",
|
||||
role: "Visitor",
|
||||
quote: "Hidden gem. I will come back every year.",
|
||||
imageSrc: "https://images.pexels.com/photos/19237175/pexels-photo-19237175.jpeg?auto=compress&cs=tinysrgb&h=650&w=940",
|
||||
},
|
||||
{
|
||||
name: "Paolo",
|
||||
role: "Chef",
|
||||
quote: "Generosity defined. Beautiful hospitality.",
|
||||
imageSrc: "https://images.pexels.com/photos/16711344/pexels-photo-16711344.jpeg?auto=compress&cs=tinysrgb&h=650&w=940",
|
||||
},
|
||||
{
|
||||
name: "Sofia",
|
||||
role: "Neighbor",
|
||||
quote: "Simply the heart of Bergamo.",
|
||||
imageSrc: "https://images.pexels.com/photos/14934088/pexels-photo-14934088.jpeg?auto=compress&cs=tinysrgb&h=650&w=940",
|
||||
},
|
||||
]}
|
||||
/>
|
||||
</SectionErrorBoundary>
|
||||
</div>
|
||||
tag="Kind Words"
|
||||
title="A Shared Table"
|
||||
description="What our patrons say about the atmosphere."
|
||||
testimonials={[
|
||||
{ name: "Giulia", role: "Food Critic", quote: "Barbara's kitchen feels like a warm embrace.", imageSrc: "https://images.pexels.com/photos/19213399/pexels-photo-19213399.jpeg?auto=compress&cs=tinysrgb&h=650&w=940" },
|
||||
{ name: "Marco", role: "Local Patron", quote: "The Casoncelli are exactly like my grandmother's.", imageSrc: "https://images.pexels.com/photos/20369503/pexels-photo-20369503.jpeg?auto=compress&cs=tinysrgb&h=650&w=940" },
|
||||
{ name: "Elena", role: "Visitor", quote: "Hidden gem. I will come back every year.", imageSrc: "https://images.pexels.com/photos/19237175/pexels-photo-19237175.jpeg?auto=compress&cs=tinysrgb&h=650&w=940" },
|
||||
{ name: "Paolo", role: "Chef", quote: "Generosity defined. Beautiful hospitality.", imageSrc: "https://images.pexels.com/photos/16711344/pexels-photo-16711344.jpeg?auto=compress&cs=tinysrgb&h=650&w=940" },
|
||||
{ name: "Sofia", role: "Neighbor", quote: "Simply the heart of Bergamo.", imageSrc: "https://images.pexels.com/photos/14934088/pexels-photo-14934088.jpeg?auto=compress&cs=tinysrgb&h=650&w=940" }
|
||||
]}
|
||||
/>
|
||||
</SectionErrorBoundary>
|
||||
</div>
|
||||
|
||||
<div id="metrics" data-section="metrics">
|
||||
<SectionErrorBoundary name="metrics">
|
||||
<div id="metrics" data-section="metrics">
|
||||
<SectionErrorBoundary name="metrics">
|
||||
<MetricsSimpleCards
|
||||
tag="Our Story in Numbers"
|
||||
title="Decades of Devotion"
|
||||
description="Building tradition one meal at a time."
|
||||
metrics={[
|
||||
{
|
||||
value: "40+",
|
||||
description: "Years of Tradition",
|
||||
},
|
||||
{
|
||||
value: "500+",
|
||||
description: "Recipes Mastered",
|
||||
},
|
||||
{
|
||||
value: "100%",
|
||||
description: "Handmade Passion",
|
||||
},
|
||||
]}
|
||||
/>
|
||||
</SectionErrorBoundary>
|
||||
</div>
|
||||
tag="Our Story in Numbers"
|
||||
title="Decades of Devotion"
|
||||
description="Building tradition one meal at a time."
|
||||
metrics={[
|
||||
{ value: "40+", description: "Years of Tradition" },
|
||||
{ value: "500+", description: "Recipes Mastered" },
|
||||
{ value: "100%", description: "Handmade Passion" }
|
||||
]}
|
||||
/>
|
||||
</SectionErrorBoundary>
|
||||
</div>
|
||||
|
||||
<div id="faq" data-section="faq">
|
||||
<SectionErrorBoundary name="faq">
|
||||
<div id="faq" data-section="faq">
|
||||
<SectionErrorBoundary name="faq">
|
||||
<FaqSimple
|
||||
tag="Information"
|
||||
title="The Common Questions"
|
||||
description="Everything you need to know about your dining visit."
|
||||
items={[
|
||||
{
|
||||
question: "Do I need a reservation?",
|
||||
answer: "Highly recommended, especially on weekends.",
|
||||
},
|
||||
{
|
||||
question: "Are vegetarian options available?",
|
||||
answer: "Yes, we always have fresh seasonal dishes.",
|
||||
},
|
||||
{
|
||||
question: "Is the restaurant wheelchair accessible?",
|
||||
answer: "Yes, we strive to make everyone comfortable.",
|
||||
},
|
||||
]}
|
||||
/>
|
||||
</SectionErrorBoundary>
|
||||
</div>
|
||||
tag="Information"
|
||||
title="The Common Questions"
|
||||
description="Everything you need to know about your dining visit."
|
||||
items={[
|
||||
{ question: "Do I need a reservation?", answer: "Highly recommended, especially on weekends." },
|
||||
{ question: "Are vegetarian options available?", answer: "Yes, we always have fresh seasonal dishes." },
|
||||
{ question: "Is the restaurant wheelchair accessible?", answer: "Yes, we strive to make everyone comfortable." }
|
||||
]}
|
||||
/>
|
||||
</SectionErrorBoundary>
|
||||
</div>
|
||||
|
||||
<div id="contact" data-section="contact">
|
||||
<SectionErrorBoundary name="contact">
|
||||
<div id="contact" data-section="contact">
|
||||
<SectionErrorBoundary name="contact">
|
||||
<ContactCta
|
||||
tag="Visit Us"
|
||||
text="Join Barbara at the table tonight. Reservations recommended."
|
||||
primaryButton={{
|
||||
text: "Book Now",
|
||||
href: "#contact-form",
|
||||
}}
|
||||
secondaryButton={{
|
||||
text: "Get Directions",
|
||||
href: "#map",
|
||||
}}
|
||||
/>
|
||||
</SectionErrorBoundary>
|
||||
</div>
|
||||
tag="Visit Us"
|
||||
text="Join Barbara at the table tonight. Reservations recommended."
|
||||
primaryButton={{ text: "Book Now", href: "#contact-form" }}
|
||||
secondaryButton={{ text: "Get Directions", href: "#map" }}
|
||||
/>
|
||||
</SectionErrorBoundary>
|
||||
</div>
|
||||
</>
|
||||
);
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user