7 Commits

Author SHA1 Message Date
91ec265fe2 Merge version_4 into main
Merge version_4 into main
2026-04-29 21:48:45 +00:00
116dc6594b Update src/app/page.tsx 2026-04-29 21:48:39 +00:00
434508e263 Merge version_3 into main
Merge version_3 into main
2026-04-29 21:45:52 +00:00
0d84d56187 Update src/app/page.tsx 2026-04-29 21:45:48 +00:00
bf77a17529 Merge version_3 into main
Merge version_3 into main
2026-04-29 21:45:20 +00:00
36e1144811 Update src/app/page.tsx 2026-04-29 21:45:17 +00:00
54d3191295 Merge version_2 into main
Merge version_2 into main
2026-04-29 21:32:51 +00:00

View File

@@ -2,8 +2,9 @@
import { ThemeProvider } from "@/providers/themeProvider/ThemeProvider"; import { ThemeProvider } from "@/providers/themeProvider/ThemeProvider";
import ReactLenis from "lenis/react"; import ReactLenis from "lenis/react";
import { useState } from "react";
import BlogCardOne from '@/components/sections/blog/BlogCardOne'; import BlogCardOne from '@/components/sections/blog/BlogCardOne';
import ContactSplit from '@/components/sections/contact/ContactSplit'; import ContactSplitForm from '@/components/sections/contact/ContactSplitForm';
import FooterLogoReveal from '@/components/sections/footer/FooterLogoReveal'; import FooterLogoReveal from '@/components/sections/footer/FooterLogoReveal';
import HeroBillboardRotatedCarousel from '@/components/sections/hero/HeroBillboardRotatedCarousel'; import HeroBillboardRotatedCarousel from '@/components/sections/hero/HeroBillboardRotatedCarousel';
import MetricCardOne from '@/components/sections/metrics/MetricCardOne'; import MetricCardOne from '@/components/sections/metrics/MetricCardOne';
@@ -14,6 +15,8 @@ import TextSplitAbout from '@/components/sections/about/TextSplitAbout';
import { Award, Star, Users } from "lucide-react"; import { Award, Star, Users } from "lucide-react";
export default function LandingPage() { export default function LandingPage() {
const [isReservationModalOpen, setIsReservationModalOpen] = useState(false);
return ( return (
<ThemeProvider <ThemeProvider
defaultButtonVariant="text-stagger" defaultButtonVariant="text-stagger"
@@ -28,139 +31,164 @@ export default function LandingPage() {
headingFontWeight="normal" headingFontWeight="normal"
> >
<ReactLenis root> <ReactLenis root>
<div id="nav" data-section="nav"> <div id="nav" data-section="nav">
<NavbarLayoutFloatingOverlay <NavbarLayoutFloatingOverlay
navItems={[ navItems={[
{ name: "Home", id: "hero" }, { name: "Home", id: "hero" },
{ name: "About", id: "about" }, { name: "About", id: "about" },
{ name: "Menu", id: "menu" }, { name: "Menu", id: "menu" },
{ name: "Reservations", id: "contact" }, { name: "Reservations", id: "contact" },
]} ]}
brandName="Más Italian Taste" brandName="Más Italian Taste"
/> />
</div> </div>
<div id="hero" data-section="hero"> <div id="hero" data-section="hero">
<HeroBillboardRotatedCarousel <HeroBillboardRotatedCarousel
background={{ variant: "plain" }} background={{ variant: "plain" }}
title="A True Taste of Italy" title="A True Taste of Italy"
description="Experience authentic Roman culinary tradition in an immersive dining setting." description="Experience authentic Roman culinary tradition in an immersive dining setting."
buttons={[ buttons={[
{ text: "View Menu", href: "#menu" }, { text: "View Menu", href: "#menu" },
{ text: "Book a Table", href: "#contact" }, { text: "Book a Table", onClick: () => setIsReservationModalOpen(true) },
]} ]}
carouselItems={[ carouselItems={[
{ id: "1", imageSrc: "http://img.b2bpic.net/free-photo/tasty-boiled-spaghetti-with-sausages-orange-plate_114579-68478.jpg", imageAlt: "Carbonara" }, { id: "1", imageSrc: "http://img.b2bpic.net/free-photo/tasty-boiled-spaghetti-with-sausages-orange-plate_114579-68478.jpg", imageAlt: "Carbonara" },
{ id: "2", imageSrc: "http://img.b2bpic.net/free-photo/view-delicious-anime-style-pizza_23-2151061952.jpg", imageAlt: "Pizza" }, { id: "2", imageSrc: "http://img.b2bpic.net/free-photo/view-delicious-anime-style-pizza_23-2151061952.jpg", imageAlt: "Pizza" },
{ id: "3", imageSrc: "http://img.b2bpic.net/free-photo/pieces-pizza-table_23-2147772070.jpg", imageAlt: "Risotto" }, { id: "3", imageSrc: "http://img.b2bpic.net/free-photo/pieces-pizza-table_23-2147772070.jpg", imageAlt: "Risotto" },
{ id: "4", imageSrc: "http://img.b2bpic.net/free-photo/top-view-delicious-cheesecake-with-strawberry-chocolate-plate-red-shawl-dark-isolated-background_140725-136688.jpg", imageAlt: "Tiramisu" }, { id: "4", imageSrc: "http://img.b2bpic.net/free-photo/top-view-delicious-cheesecake-with-strawberry-chocolate-plate-red-shawl-dark-isolated-background_140725-136688.jpg", imageAlt: "Tiramisu" },
{ id: "5", imageSrc: "http://img.b2bpic.net/free-photo/horizontal-shot-plate-with-canapes-with-ham-cherry-tomatoes-black-olives-decorated-with-rucola-rucoli-plant-edible-vegetables-bacon-jamon-appetizers-menu-restaurant_7502-5815.jpg", imageAlt: "Bruschetta" }, { id: "5", imageSrc: "http://img.b2bpic.net/free-photo/horizontal-shot-plate-with-canapes-with-ham-cherry-tomatoes-black-olives-decorated-with-rucola-rucoli-plant-edible-vegetables-bacon-jamon-appetizers-menu-restaurant_7502-5815.jpg", imageAlt: "Bruschetta" },
{ id: "6", imageSrc: "http://img.b2bpic.net/free-photo/delicious-high-quality-wine-still-life_23-2149710957.jpg", imageAlt: "Wine" }, { id: "6", imageSrc: "http://img.b2bpic.net/free-photo/delicious-high-quality-wine-still-life_23-2149710957.jpg", imageAlt: "Wine" },
]} ]}
/> />
</div> </div>
<div id="about" data-section="about"> <div id="about" data-section="about">
<TextSplitAbout <TextSplitAbout
useInvertedBackground={true} useInvertedBackground={true}
title="Our Story" title="Our Story"
description={[ description={[
"Más Italian Taste was born from a passion for authentic Roman traditions. Every dish we serve is a tribute to the craftsmanship of our ancestors, brought to life by master chefs in the heart of Rome.", "We believe that fine dining is not just about the meal, but the journey of flavors and the warmth of the hospitality that surrounds it."]} "Más Italian Taste was born from a passion for authentic Roman traditions. Every dish we serve is a tribute to the craftsmanship of our ancestors, brought to life by master chefs in the heart of Rome.",
/> "We believe that fine dining is not just about the meal, but the journey of flavors and the warmth of the hospitality that surrounds it."]}
</div> />
</div>
<div id="menu" data-section="menu"> <div id="menu" data-section="menu">
<ProductCardTwo <ProductCardTwo
animationType="scale-rotate" animationType="scale-rotate"
textboxLayout="split" textboxLayout="split-actions"
gridVariant="uniform-all-items-equal" gridVariant="uniform-all-items-equal"
useInvertedBackground={false} useInvertedBackground={false}
products={[ buttons={[{ text: "Reserve Now", onClick: () => setIsReservationModalOpen(true) }]}
{ id: "1", brand: "Signature", name: "Roman Carbonara", price: "€22", rating: 5, reviewCount: "1.2k", imageSrc: "http://img.b2bpic.net/free-photo/pasta-salad-with-tuna-corn-olives-bowl_123827-37213.jpg" }, products={[
{ id: "2", brand: "Authentic", name: "Truffle Pizza", price: "€28", rating: 5, reviewCount: "890", imageSrc: "http://img.b2bpic.net/free-photo/close-up-melted-cheese-pizza_23-2149286881.jpg" }, { id: "1", brand: "Signature", name: "Roman Carbonara", price: "€22", rating: 5, reviewCount: "1.2k", imageSrc: "http://img.b2bpic.net/free-photo/pasta-salad-with-tuna-corn-olives-bowl_123827-37213.jpg" },
{ id: "3", brand: "Classic", name: "Wild Mushroom Risotto", price: "€25", rating: 4, reviewCount: "750", imageSrc: "http://img.b2bpic.net/free-photo/sideview-pasta-with-tomato-sauce-parmesan-cheese-white-bowl_140725-11824.jpg" }, { id: "2", brand: "Authentic", name: "Truffle Pizza", price: "€28", rating: 5, reviewCount: "890", imageSrc: "http://img.b2bpic.net/free-photo/close-up-melted-cheese-pizza_23-2149286881.jpg" },
{ id: "4", brand: "Dolce", name: "Artisan Tiramisu", price: "€20", rating: 5, reviewCount: "2.1k", imageSrc: "http://img.b2bpic.net/free-photo/cake-cake-with-berries-powdered-sugar-chocolate-waffles-green-sauce_140725-73660.jpg" }, { id: "3", brand: "Classic", name: "Wild Mushroom Risotto", price: "€25", rating: 4, reviewCount: "750", imageSrc: "http://img.b2bpic.net/free-photo/sideview-pasta-with-tomato-sauce-parmesan-cheese-white-bowl_140725-11824.jpg" },
{ id: "5", brand: "Antipasti", name: "Tuscan Bruschetta", price: "€20", rating: 4, reviewCount: "500", imageSrc: "http://img.b2bpic.net/free-photo/two-tasty-toast-with-fried-vegetables-wooden-plate_114579-86082.jpg" }, { id: "4", brand: "Dolce", name: "Artisan Tiramisu", price: "€20", rating: 5, reviewCount: "2.1k", imageSrc: "http://img.b2bpic.net/free-photo/cake-cake-with-berries-powdered-sugar-chocolate-waffles-green-sauce_140725-73660.jpg" },
{ id: "6", brand: "Primi", name: "Handmade Lasagna", price: "€26", rating: 5, reviewCount: "1.5k", imageSrc: "http://img.b2bpic.net/free-photo/tasty-spaghetti-with-sliced-sausages-black-bowl_114579-68535.jpg" }, { id: "5", brand: "Antipasti", name: "Tuscan Bruschetta", price: "€20", rating: 4, reviewCount: "500", imageSrc: "http://img.b2bpic.net/free-photo/two-tasty-toast-with-fried-vegetables-wooden-plate_114579-86082.jpg" },
]} { id: "6", brand: "Primi", name: "Handmade Lasagna", price: "€26", rating: 5, reviewCount: "1.5k", imageSrc: "http://img.b2bpic.net/free-photo/tasty-spaghetti-with-sliced-sausages-black-bowl_114579-68535.jpg" },
title="Interactive Menu" ]}
description="Explore our curated selection of signature Italian dishes." title="Interactive Menu"
/> description="Explore our curated selection of signature Italian dishes."
</div> />
</div>
<div id="metrics" data-section="metrics"> <div id="metrics" data-section="metrics">
<MetricCardOne <MetricCardOne
animationType="depth-3d" animationType="depth-3d"
textboxLayout="split" textboxLayout="split"
gridVariant="uniform-all-items-equal" gridVariant="uniform-all-items-equal"
useInvertedBackground={true} useInvertedBackground={true}
metrics={[ metrics={[
{ id: "1", value: "4.8", title: "Guest Rating", description: "Across 5,000+ reviews", icon: Star }, { id: "1", value: "4.8", title: "Guest Rating", description: "Across 5,000+ reviews", icon: Star },
{ id: "2", value: "20", title: "Years Tradition", description: "Of Roman heritage", icon: Award }, { id: "2", value: "20", title: "Years Tradition", description: "Of Roman heritage", icon: Award },
{ id: "3", value: "150", title: "Daily Guests", description: "Creating memories", icon: Users }, { id: "3", value: "150", title: "Daily Guests", description: "Creating memories", icon: Users },
]} ]}
title="Dine With Excellence" title="Dine With Excellence"
description="Consistently recognized as a premier destination for authentic Roman dining." description="Consistently recognized as a premier destination for authentic Roman dining."
/> />
</div> </div>
<div id="testimonials" data-section="testimonials"> <div id="testimonials" data-section="testimonials">
<TestimonialCardSixteen <TestimonialCardSixteen
animationType="depth-3d" animationType="depth-3d"
textboxLayout="split" textboxLayout="split"
useInvertedBackground={false} useInvertedBackground={false}
testimonials={[ testimonials={[
{ id: "1", name: "Elena Rossi", role: "Food Critic", company: "La Cucina", rating: 5, imageSrc: "http://img.b2bpic.net/free-photo/boiled-spaghetti-with-sliced-sausages-blue-plate_114579-68443.jpg" }, { id: "1", name: "Elena Rossi", role: "Food Critic", company: "La Cucina", rating: 5, imageSrc: "http://img.b2bpic.net/free-photo/boiled-spaghetti-with-sliced-sausages-blue-plate_114579-68443.jpg" },
{ id: "2", name: "Markus Weber", role: "Traveler", company: "Globetrotter", rating: 5, imageSrc: "http://img.b2bpic.net/free-photo/bacon-arugula-leaves-pizza-with-slices-yellow-bell-pepper-tomato_23-2148076089.jpg" }, { id: "2", name: "Markus Weber", role: "Traveler", company: "Globetrotter", rating: 5, imageSrc: "http://img.b2bpic.net/free-photo/bacon-arugula-leaves-pizza-with-slices-yellow-bell-pepper-tomato_23-2148076089.jpg" },
{ id: "3", name: "Sarah Miller", role: "Food Blogger", company: "Tasteful", rating: 5, imageSrc: "http://img.b2bpic.net/free-photo/side-view-mushroom-pasta-dark-round_176474-3153.jpg" }, { id: "3", name: "Sarah Miller", role: "Food Blogger", company: "Tasteful", rating: 5, imageSrc: "http://img.b2bpic.net/free-photo/side-view-mushroom-pasta-dark-round_176474-3153.jpg" },
{ id: "4", name: "Luca Moretti", role: "Local Resident", company: "Roman Life", rating: 5, imageSrc: "http://img.b2bpic.net/free-photo/front-view-delicious-cheesecake-with-strawberry-chocolate-plate-bowls_140725-105618.jpg" }, { id: "4", name: "Luca Moretti", role: "Local Resident", company: "Roman Life", rating: 5, imageSrc: "http://img.b2bpic.net/free-photo/front-view-delicious-cheesecake-with-strawberry-chocolate-plate-bowls_140725-105618.jpg" },
{ id: "5", name: "Sofia Conti", role: "Chef", company: "Culinary Lab", rating: 5, imageSrc: "http://img.b2bpic.net/free-photo/top-view-cherry-cake-slices-with-cream-fresh-cherries-inside-round-plate-pink-desk-cake-biscuit-sugar_140725-28437.jpg" }, { id: "5", name: "Sofia Conti", role: "Chef", company: "Culinary Lab", rating: 5, imageSrc: "http://img.b2bpic.net/free-photo/top-view-cherry-cake-slices-with-cream-fresh-cherries-inside-round-plate-pink-desk-cake-biscuit-sugar_140725-28437.jpg" },
]} ]}
kpiItems={[ kpiItems={[
{ value: "4.8/5", label: "Avg Rating" }, { value: "4.8/5", label: "Avg Rating" },
{ value: "5000+", label: "Happy Guests" }, { value: "5000+", label: "Happy Guests" },
{ value: "Top 10", label: "Rome Dining" }, { value: "Top 10", label: "Rome Dining" },
]} ]}
title="Guest Experiences" title="Guest Experiences"
description="Discover why our guests return to our tables in Rome." description="Discover why our guests return to our tables in Rome."
/> />
</div> </div>
<div id="gallery" data-section="gallery"> <div id="gallery" data-section="gallery">
<BlogCardOne <BlogCardOne
animationType="scale-rotate" animationType="scale-rotate"
textboxLayout="split" textboxLayout="split"
useInvertedBackground={true} useInvertedBackground={true}
title="Atmosphere & Vibe" title="Atmosphere & Vibe"
description="Step into our world of elegance and tradition." description="Step into our world of elegance and tradition."
blogs={[ blogs={[
{ id: "g1", category: "Gallery", title: "The Dining Room", excerpt: "Elegant modern setting.", imageSrc: "http://img.b2bpic.net/free-photo/classic-luxury-style-restaurant-with-tables-chairs_140725-9389.jpg", authorName: "Más", authorAvatar: "http://img.b2bpic.net/free-photo/wide-restaurant-hall-with-wooden-table-chairs-6-persons_140725-8910.jpg", date: "2024" }, { id: "g1", category: "Gallery", title: "The Dining Room", excerpt: "Elegant modern setting.", imageSrc: "http://img.b2bpic.net/free-photo/classic-luxury-style-restaurant-with-tables-chairs_140725-9389.jpg", authorName: "Más", authorAvatar: "http://img.b2bpic.net/free-photo/wide-restaurant-hall-with-wooden-table-chairs-6-persons_140725-8910.jpg", date: "2024" },
{ id: "g2", category: "Gallery", title: "Our Garden Terrace", excerpt: "Relaxing outdoor dining.", imageSrc: "http://img.b2bpic.net/free-photo/there-are-glasses-wine-water-table-with-white-cloth-are-ready-dining_613910-3426.jpg", authorName: "Más", authorAvatar: "http://img.b2bpic.net/free-photo/wine-splashes-glass-standing-black-background_1304-2873.jpg", date: "2024" }, { id: "g2", category: "Gallery", title: "Our Garden Terrace", excerpt: "Relaxing outdoor dining.", imageSrc: "http://img.b2bpic.net/free-photo/there-are-glasses-wine-water-table-with-white-cloth-are-ready-dining_613910-3426.jpg", authorName: "Más", authorAvatar: "http://img.b2bpic.net/free-photo/wine-splashes-glass-standing-black-background_1304-2873.jpg", date: "2024" },
{ id: "g3", category: "Gallery", title: "The Chef's Corner", excerpt: "Craftsmanship at work.", imageSrc: "http://img.b2bpic.net/free-photo/various-dessert-glass-white-wine_140725-4306.jpg", authorName: "Más", authorAvatar: "http://img.b2bpic.net/free-photo/side-view-table-with-cheese-plate-pate-it_140725-12866.jpg", date: "2024" }, { id: "g3", category: "Gallery", title: "The Chef's Corner", excerpt: "Craftsmanship at work.", imageSrc: "http://img.b2bpic.net/free-photo/various-dessert-glass-white-wine_140725-4306.jpg", authorName: "Más", authorAvatar: "http://img.b2bpic.net/free-photo/side-view-table-with-cheese-plate-pate-it_140725-12866.jpg", date: "2024" },
]} ]}
/> />
</div> </div>
<div id="contact" data-section="contact"> <div id="contact" data-section="contact">
<ContactSplit <ContactSplitForm
useInvertedBackground={false} useInvertedBackground={true}
background={{ variant: "plain" }} title="Reserve Your Table"
tag="Visit Us" description="Open until 1 AM daily. Let us know when you'd like to visit."
title="Reserve Your Table" inputs={[
description="Open until 1 AM daily. Located in the heart of Rome. Book your reservation today." { name: "name", type: "text", placeholder: "Full Name", required: true },
imageSrc="http://img.b2bpic.net/free-photo/luxurious-wedding-banquet-elegant-crockery-silverware-glassware-generated-by-ai_188544-17315.jpg" { name: "date", type: "date", placeholder: "Date", required: true },
buttonText="Reserve Now" { name: "time", type: "time", placeholder: "Time", required: true }
mediaAnimation="slide-up" ]}
/> imageSrc="http://img.b2bpic.net/free-photo/luxurious-wedding-banquet-elegant-crockery-silverware-glassware-generated-by-ai_188544-17315.jpg"
</div> buttonText="Submit Request"
onSubmit={(data) => { console.log("Reservation requested:", data); setIsReservationModalOpen(false); }}
/>
</div>
<div id="footer" data-section="footer"> <div id="footer" data-section="footer">
<FooterLogoReveal <FooterLogoReveal
logoText="Más Italian Taste" logoText="Más Italian Taste"
leftLink={{ text: "Privacy Policy", href: "#" }} leftLink={{ text: "Privacy Policy", href: "#" }}
rightLink={{ text: "Contact Us", href: "#contact" }} rightLink={{ text: "Contact Us", href: "#contact" }}
/> />
</div> </div>
{isReservationModalOpen && (
<div className="fixed inset-0 z-50 flex items-center justify-center p-4 bg-black/50">
<div className="bg-white p-6 rounded-lg max-w-md w-full">
<ContactSplitForm
useInvertedBackground={false}
title="Book Your Table"
description="Fill out the form below to confirm your reservation."
inputs={[
{ name: "name", type: "text", placeholder: "Full Name", required: true },
{ name: "guests", type: "number", placeholder: "Number of Guests", required: true },
{ name: "date", type: "date", placeholder: "Date", required: true },
{ name: "time", type: "time", placeholder: "Time", required: true }
]}
buttonText="Confirm Reservation"
onSubmit={(data) => { console.log("Reservation confirmed:", data); setIsReservationModalOpen(false); }}
/>
<button onClick={() => setIsReservationModalOpen(false)} className="mt-4 w-full">Close</button>
</div>
</div>
)}
</ReactLenis> </ReactLenis>
</ThemeProvider> </ThemeProvider>
); );