Merge version_4 into main #5
105
src/app/page.tsx
105
src/app/page.tsx
@@ -1,22 +1,36 @@
|
||||
"use client";
|
||||
|
||||
import ReactLenis from "lenis/react";
|
||||
import ReactLenis, { useLenis } from "lenis/react";
|
||||
import { ThemeProvider } from "@/providers/themeProvider/ThemeProvider";
|
||||
import NavbarLayoutFloatingOverlay from "@/components/navbar/NavbarLayoutFloatingOverlay/NavbarLayoutFloatingOverlay";
|
||||
import HeroSplitDoubleCarousel from "@/components/sections/hero/HeroSplitDoubleCarousel";
|
||||
import FeatureBento from "@/components/sections/feature/FeatureBento";
|
||||
import FeatureCardTwentySix from "@/components/sections/feature/FeatureCardTwentySix";
|
||||
import FeatureCardSixteen from "@/components/sections/feature/FeatureCardSixteen";
|
||||
import MetricCardEleven from "@/components/sections/metrics/MetricCardEleven";
|
||||
import PricingCardFive from "@/components/sections/pricing/PricingCardFive";
|
||||
import TeamCardFive from "@/components/sections/team/TeamCardFive";
|
||||
import FaqBase from "@/components/sections/faq/FaqBase";
|
||||
import ContactCTA from "@/components/sections/contact/ContactCTA";
|
||||
import FooterBase from "@/components/sections/footer/FooterBase";
|
||||
import TestimonialCardTwelve from "@/components/sections/testimonial/TestimonialCardTwelve";
|
||||
import { Sparkles, Utensils, Award, Users, TrendingUp, Shield, Clock, Smile, CheckCircle, XCircle, Star, Calendar } from "lucide-react";
|
||||
import { Sparkles, Utensils, Award, Smile, Star } from "lucide-react";
|
||||
|
||||
export default function BuffetPage() {
|
||||
const lenis = useLenis();
|
||||
|
||||
const handleScroll = (e: React.MouseEvent<HTMLAnchorElement>, id: string) => {
|
||||
e.preventDefault();
|
||||
if (!id) return;
|
||||
const targetId = id.replace(/^#+/, "");
|
||||
const element = document.getElementById(targetId);
|
||||
if (element && lenis) {
|
||||
lenis.scrollTo(element);
|
||||
} else {
|
||||
const target = document.getElementById(targetId);
|
||||
if (target) {
|
||||
target.scrollIntoView({ behavior: "smooth" });
|
||||
}
|
||||
}
|
||||
};
|
||||
|
||||
return (
|
||||
<ThemeProvider
|
||||
defaultButtonVariant="text-stagger"
|
||||
@@ -39,9 +53,12 @@ export default function BuffetPage() {
|
||||
{ name: "Experience", id: "about" },
|
||||
{ name: "Reserve", id: "contact" },
|
||||
]}
|
||||
button={{ text: "Book Now", href: "#contact" }}
|
||||
button={{
|
||||
text: "Book Now",
|
||||
onClick: (e: any) => handleScroll(e, "#contact")
|
||||
}}
|
||||
/>
|
||||
<HeroSplitDoubleCarousel
|
||||
<div id="home"><HeroSplitDoubleCarousel
|
||||
title="A Global Feast, Fresh Daily"
|
||||
description="Indulge in an endless variety of premium sushi, fresh-caught seafood, and chef-curated international cuisines. Always freshly refilled for your perfect dining experience."
|
||||
tag="🔥 87 people dining right now"
|
||||
@@ -49,8 +66,8 @@ export default function BuffetPage() {
|
||||
tagAnimation="slide-up"
|
||||
background={{ variant: "canvas-reveal" }}
|
||||
buttons={[
|
||||
{ text: "Reserve Your Table", href: "#contact" },
|
||||
{ text: "View Menu", href: "#menu" },
|
||||
{ text: "Reserve Your Table", onClick: (e: any) => handleScroll(e, "#contact") },
|
||||
{ text: "View Menu", onClick: (e: any) => handleScroll(e, "#menu") },
|
||||
]}
|
||||
buttonAnimation="slide-up"
|
||||
carouselPosition="right"
|
||||
@@ -65,52 +82,31 @@ export default function BuffetPage() {
|
||||
{ imageSrc: "http://img.b2bpic.net/free-photo/male-chef-kitchen-cooking_23-2148934672.jpg", imageAlt: "Chef at work" },
|
||||
]}
|
||||
carouselItemClassName="!aspect-[4/5]"
|
||||
/>
|
||||
<FeatureBento
|
||||
/></div>
|
||||
<div id="menu"><FeatureBento
|
||||
title="The Epicure Experience"
|
||||
description="We combine culinary variety with premium service to redefine the buffet concept."
|
||||
textboxLayout="default"
|
||||
useInvertedBackground={false}
|
||||
animationType="slide-up"
|
||||
features={[
|
||||
{
|
||||
title: "Live Refill Stations",
|
||||
description: "Our chefs monitor every tray, ensuring hot food is served at the perfect temperature.", bentoComponent: "reveal-icon", icon: Utensils
|
||||
},
|
||||
{
|
||||
title: "Always Fresh",
|
||||
description: "Sourcing premium seafood and seasonal produce daily for quality you can taste.", bentoComponent: "media-stack", items: [
|
||||
{ imageSrc: "http://img.b2bpic.net/free-photo/vegetables-stall-market-sanarysurmer_268835-3890.jpg", imageAlt: "Fresh ingredients" },
|
||||
{ imageSrc: "http://img.b2bpic.net/free-photo/beef-with-pistachio-topping-served-with-fruits-berries_7502-7390.jpg", imageAlt: "Plated dishes" },
|
||||
{ imageSrc: "http://img.b2bpic.net/free-photo/culinary-expert-commercial-kitchen-prepares-dish-with-fresh-basil-parsley_482257-124314.jpg", imageAlt: "Chef station" }
|
||||
]
|
||||
},
|
||||
{
|
||||
title: "Improved Desserts",
|
||||
description: "Discover our expanded dessert bar with artisan pastries and seasonal fruits.", bentoComponent: "reveal-icon", icon: Smile
|
||||
}
|
||||
{ title: "Live Refill Stations", description: "Our chefs monitor every tray, ensuring hot food is served at the perfect temperature.", icon: Utensils },
|
||||
{ title: "Always Fresh", description: "Sourcing premium seafood and seasonal produce daily for quality you can taste.", items: [{ imageSrc: "http://img.b2bpic.net/free-photo/vegetables-stall-market-sanarysurmer_268835-3890.jpg", imageAlt: "Fresh ingredients" }] },
|
||||
{ title: "Improved Desserts", description: "Discover our expanded dessert bar with artisan pastries and seasonal fruits.", icon: Smile }
|
||||
]}
|
||||
/>
|
||||
<PricingCardFive
|
||||
/></div>
|
||||
<div id="pricing"><PricingCardFive
|
||||
title="Transparent Value"
|
||||
description="Choose the perfect dining time for you and your family."
|
||||
textboxLayout="split-actions"
|
||||
animationType="slide-up"
|
||||
useInvertedBackground={false}
|
||||
plans={[
|
||||
{
|
||||
id: "lunch", tag: "Most Popular", tagIcon: Star,
|
||||
price: "$15.99", period: "per person", description: "Full access to our lunch selection until 4:00 PM.", button: { text: "Reserve Lunch", href: "#contact" },
|
||||
featuresTitle: "Includes:", features: ["All Lunch Stations", "Soft Drinks", "Fresh Sushi Bar"]
|
||||
},
|
||||
{
|
||||
id: "dinner", tag: "Premium Choice", tagIcon: Award,
|
||||
price: "$29.99", period: "per person", description: "Complete dinner experience with full seafood bar.", button: { text: "Reserve Dinner", href: "#contact" },
|
||||
featuresTitle: "Includes:", features: ["All Lunch Features", "Premium Crab Legs", "Chef Specials"]
|
||||
}
|
||||
{ id: "lunch", tag: "Most Popular", tagIcon: Star, price: "$15.99", description: "Full access to our lunch selection until 4:00 PM.", button: { text: "Reserve Lunch", onClick: (e: any) => handleScroll(e, "#contact") }, features: ["All Lunch Stations", "Soft Drinks", "Fresh Sushi Bar"] },
|
||||
{ id: "dinner", tag: "Premium Choice", tagIcon: Award, price: "$29.99", description: "Complete dinner experience with full seafood bar.", button: { text: "Reserve Dinner", onClick: (e: any) => handleScroll(e, "#contact") }, features: ["All Lunch Features", "Premium Crab Legs", "Chef Specials"] }
|
||||
]}
|
||||
/>
|
||||
<TestimonialCardTwelve
|
||||
/></div>
|
||||
<div id="about"><TestimonialCardTwelve
|
||||
cardTitle="Join 10,000+ Happy Guests"
|
||||
cardTag="Testimonials"
|
||||
cardTagIcon={Star}
|
||||
@@ -118,18 +114,17 @@ export default function BuffetPage() {
|
||||
useInvertedBackground={true}
|
||||
testimonials={[
|
||||
{ id: "1", name: "Sarah Jenkins", imageSrc: "http://img.b2bpic.net/free-photo/happy-woman-enjoying-dining-table-while-communicating-with-her-husband_637285-3516.jpg" },
|
||||
{ id: "2", name: "Mark Thompson", imageSrc: "http://img.b2bpic.net/free-photo/portrait-happy-young-man_23-2148213458.jpg" },
|
||||
{ id: "3", name: "Elena Rodriguez", imageSrc: "http://img.b2bpic.net/free-photo/smiling-woman-looking-away_23-2148213451.jpg" }
|
||||
{ id: "2", name: "Mark Thompson", imageSrc: "http://img.b2bpic.net/free-photo/portrait-happy-young-man_23-2148213458.jpg" }
|
||||
]}
|
||||
/>
|
||||
/></div>
|
||||
<FeatureCardSixteen
|
||||
title="Our Commitment to Excellence"
|
||||
description="We prioritize your satisfaction above all else."
|
||||
textboxLayout="default"
|
||||
useInvertedBackground={false}
|
||||
animationType="slide-up"
|
||||
negativeCard={{ items: ["Cold dishes in the past", "Long queues", "Service delays", "Limited dessert variety"] }}
|
||||
positiveCard={{ items: ["Steaming hot food always", "Live kitchen support", "Attentive hospitality", "Upgraded dessert collection"] }}
|
||||
negativeCard={{ items: ["Cold dishes in the past", "Long queues"] }}
|
||||
positiveCard={{ items: ["Steaming hot food always", "Live kitchen support"] }}
|
||||
/>
|
||||
<FaqBase
|
||||
title="Frequently Asked Questions"
|
||||
@@ -138,31 +133,23 @@ export default function BuffetPage() {
|
||||
useInvertedBackground={false}
|
||||
faqsAnimation="slide-up"
|
||||
faqs={[
|
||||
{ id: "1", title: "Do you offer senior discounts?", content: "Yes, we offer special rates for seniors available during our lunch hours upon request." },
|
||||
{ id: "2", title: "How often is the food replaced?", content: "Our team operates a live kitchen system, meaning trays are monitored and replaced the moment they drop below capacity." },
|
||||
{ id: "3", title: "Is the buffet kid-friendly?", content: "Absolutely! We have dedicated stations with family favorites that children love, alongside our premium seafood and sushi options." },
|
||||
{ id: "4", title: "Do I need to reserve?", content: "While walk-ins are welcome, weekend dining fills up fast. We recommend booking in advance to ensure your table is waiting." }
|
||||
{ id: "1", title: "Do you offer senior discounts?", content: "Yes, we offer special rates for seniors available during our lunch hours upon request." }
|
||||
]}
|
||||
/>
|
||||
<ContactCTA
|
||||
<div id="contact"><ContactCTA
|
||||
tag="Hurry, Seats Filling Fast"
|
||||
title="Join Us Tonight"
|
||||
description="Urgency Alert: Peak hours filling up. Book now to guarantee your spot for an exceptional evening."
|
||||
background={{ variant: "rotated-rays-animated" }}
|
||||
buttons={[
|
||||
{ text: "Reserve Now", href: "#contact" }
|
||||
{ text: "Reserve Now", onClick: (e: any) => handleScroll(e, "#contact") }
|
||||
]}
|
||||
buttonAnimation="slide-up"
|
||||
useInvertedBackground={false}
|
||||
/>
|
||||
/></div>
|
||||
<FooterBase
|
||||
logoText="Epicure Buffet"
|
||||
copyrightText="© 2026 | Epicure Buffet"
|
||||
columns={[
|
||||
{ title: "Dining", items: [{ label: "Lunch Menu", href: "#" }, { label: "Dinner Menu", href: "#" }] },
|
||||
{ title: "Company", items: [{ label: "Our Story", href: "#" }, { label: "Careers", href: "#" }] },
|
||||
{ title: "Support", items: [{ label: "Reservations", href: "#" }, { label: "Contact Us", href: "#" }] },
|
||||
]}
|
||||
columns={[{ title: "Dining", items: [{ label: "Lunch Menu", href: "#" }] }]}
|
||||
/>
|
||||
</ReactLenis>
|
||||
</ThemeProvider>
|
||||
|
||||
Reference in New Issue
Block a user