Compare commits
39 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
| 1367f5c2cc | |||
| cc67b78475 | |||
| c42c4624a7 | |||
| 6d2693909f | |||
| 223d0bdc2d | |||
| 0104f9ac89 | |||
| 1be31dd95f | |||
| 3e5706a333 | |||
| 0ee95983cf | |||
| 70fa5a1a6b | |||
| d524a135e5 | |||
| e16551f014 | |||
| 8370888508 | |||
| 7d7978e1a3 | |||
| a6a149ad65 | |||
| 3a77807667 | |||
| dd52304e66 | |||
| 2c54a3c158 | |||
| 9209095113 | |||
| 2daa34b2f7 | |||
| 70bd366d19 | |||
| 60025afbab | |||
| eeaad8f1c7 | |||
| 87e6d0182f | |||
| 886e912344 | |||
| f977e55b42 | |||
| f09debbe24 | |||
| a3f52dbafe | |||
| 9ac389c115 | |||
| 8931ceae4f | |||
| 70c31300bc | |||
| 012b3f10e4 | |||
| 5170b267f4 | |||
| 76e15ece34 | |||
| 40a7a162d5 | |||
| 9014c7d385 | |||
| eb3a7ac5e9 | |||
| c4e7ace9c6 | |||
| f9c26298da |
47
src/app/careers/page.tsx
Normal file
47
src/app/careers/page.tsx
Normal file
@@ -0,0 +1,47 @@
|
|||||||
|
"use client";
|
||||||
|
|
||||||
|
import ReactLenis from "lenis/react";
|
||||||
|
import { ThemeProvider } from "@/providers/themeProvider/ThemeProvider";
|
||||||
|
import NavbarLayoutFloatingOverlay from "@/components/navbar/NavbarLayoutFloatingOverlay/NavbarLayoutFloatingOverlay";
|
||||||
|
import FooterBase from "@/components/sections/footer/FooterBase";
|
||||||
|
|
||||||
|
export default function CareersPage() {
|
||||||
|
return (
|
||||||
|
<ThemeProvider defaultButtonVariant="text-stagger" defaultTextAnimation="entrance-slide" borderRadius="rounded" contentWidth="medium" sizing="medium" background="circleGradient" cardStyle="glass-elevated" primaryButtonStyle="gradient" secondaryButtonStyle="glass" headingFontWeight="normal">
|
||||||
|
<ReactLenis root>
|
||||||
|
<div id="nav" data-section="nav">
|
||||||
|
<NavbarLayoutFloatingOverlay
|
||||||
|
brandName="Epicure Buffet"
|
||||||
|
navItems={[
|
||||||
|
{ name: "Menu", id: "/ #menu" },
|
||||||
|
{ name: "Pricing", id: "/ #pricing" },
|
||||||
|
{ name: "Our Story", id: "/our-story" },
|
||||||
|
{ name: "Careers", id: "/careers" },
|
||||||
|
{ name: "Contact Us", id: "/contact-us" },
|
||||||
|
]}
|
||||||
|
button={{ text: "Book Now", href: "/ #contact" }}
|
||||||
|
/>
|
||||||
|
</div>
|
||||||
|
<div className="pt-32 pb-20 px-6 max-w-4xl mx-auto min-h-screen">
|
||||||
|
<h1 className="text-5xl font-bold mb-8">Careers</h1>
|
||||||
|
<p className="text-lg mb-6">Join our team of passionate culinary enthusiasts. We're always looking for talented individuals who value fresh, quality ingredients and exceptional customer service.</p>
|
||||||
|
<h2 className="text-2xl font-semibold mt-10 mb-4">Open Positions</h2>
|
||||||
|
<ul className="list-disc pl-6 space-y-2">
|
||||||
|
<li>Line Cook</li>
|
||||||
|
<li>Front of House Manager</li>
|
||||||
|
<li>Server Assistant</li>
|
||||||
|
</ul>
|
||||||
|
</div>
|
||||||
|
<FooterBase
|
||||||
|
logoText="Epicure Buffet"
|
||||||
|
copyrightText="© 2026 | Epicure Buffet"
|
||||||
|
columns={[
|
||||||
|
{ title: "Dining", items: [{ label: "Lunch Menu", href: "/ #menu" }, { label: "Dinner Menu", href: "/ #menu" }] },
|
||||||
|
{ title: "Company", items: [{ label: "Our Story", href: "/our-story" }, { label: "Careers", href: "/careers" }] },
|
||||||
|
{ title: "Support", items: [{ label: "Reservations", href: "/ #contact" }, { label: "Contact Us", href: "/contact-us" }] },
|
||||||
|
]}
|
||||||
|
/>
|
||||||
|
</ReactLenis>
|
||||||
|
</ThemeProvider>
|
||||||
|
);
|
||||||
|
}
|
||||||
47
src/app/contact-us/page.tsx
Normal file
47
src/app/contact-us/page.tsx
Normal file
@@ -0,0 +1,47 @@
|
|||||||
|
"use client";
|
||||||
|
|
||||||
|
import ReactLenis from "lenis/react";
|
||||||
|
import { ThemeProvider } from "@/providers/themeProvider/ThemeProvider";
|
||||||
|
import NavbarLayoutFloatingOverlay from "@/components/navbar/NavbarLayoutFloatingOverlay/NavbarLayoutFloatingOverlay";
|
||||||
|
import ContactSplitForm from "@/components/sections/contact/ContactSplitForm";
|
||||||
|
import FooterBase from "@/components/sections/footer/FooterBase";
|
||||||
|
|
||||||
|
export default function ContactUsPage() {
|
||||||
|
return (
|
||||||
|
<ThemeProvider defaultButtonVariant="text-stagger" defaultTextAnimation="entrance-slide" borderRadius="rounded" contentWidth="medium" sizing="medium" background="circleGradient" cardStyle="glass-elevated" primaryButtonStyle="gradient" secondaryButtonStyle="glass" headingFontWeight="normal">
|
||||||
|
<ReactLenis root>
|
||||||
|
<div id="nav" data-section="nav">
|
||||||
|
<NavbarLayoutFloatingOverlay
|
||||||
|
brandName="Epicure Buffet"
|
||||||
|
navItems={[
|
||||||
|
{ name: "Menu", id: "/ #menu" },
|
||||||
|
{ name: "Pricing", id: "/ #pricing" },
|
||||||
|
{ name: "Our Story", id: "/our-story" },
|
||||||
|
{ name: "Careers", id: "/careers" },
|
||||||
|
{ name: "Contact Us", id: "/contact-us" },
|
||||||
|
]}
|
||||||
|
button={{ text: "Book Now", href: "/ #contact" }}
|
||||||
|
/>
|
||||||
|
</div>
|
||||||
|
<div className="pt-32 pb-20" id="contact" data-section="contact">
|
||||||
|
<ContactSplitForm
|
||||||
|
title="Get in Touch"
|
||||||
|
description="Have a special request or a question about your upcoming reservation? Let us know."
|
||||||
|
inputs={[{ name: "name", type: "text", placeholder: "Your Name", required: true }, { name: "email", type: "email", placeholder: "Your Email", required: true }]}
|
||||||
|
textarea={{ name: "message", placeholder: "How can we help?", rows: 4 }}
|
||||||
|
useInvertedBackground={false}
|
||||||
|
/>
|
||||||
|
</div>
|
||||||
|
<FooterBase
|
||||||
|
logoText="Epicure Buffet"
|
||||||
|
copyrightText="© 2026 | Epicure Buffet"
|
||||||
|
columns={[
|
||||||
|
{ title: "Dining", items: [{ label: "Lunch Menu", href: "/ #menu" }, { label: "Dinner Menu", href: "/ #menu" }] },
|
||||||
|
{ title: "Company", items: [{ label: "Our Story", href: "/our-story" }, { label: "Careers", href: "/careers" }] },
|
||||||
|
{ title: "Support", items: [{ label: "Reservations", href: "/ #contact" }, { label: "Contact Us", href: "/contact-us" }] },
|
||||||
|
]}
|
||||||
|
/>
|
||||||
|
</ReactLenis>
|
||||||
|
</ThemeProvider>
|
||||||
|
);
|
||||||
|
}
|
||||||
42
src/app/our-story/page.tsx
Normal file
42
src/app/our-story/page.tsx
Normal file
@@ -0,0 +1,42 @@
|
|||||||
|
"use client";
|
||||||
|
|
||||||
|
import ReactLenis from "lenis/react";
|
||||||
|
import { ThemeProvider } from "@/providers/themeProvider/ThemeProvider";
|
||||||
|
import NavbarLayoutFloatingOverlay from "@/components/navbar/NavbarLayoutFloatingOverlay/NavbarLayoutFloatingOverlay";
|
||||||
|
import FooterBase from "@/components/sections/footer/FooterBase";
|
||||||
|
|
||||||
|
export default function OurStoryPage() {
|
||||||
|
return (
|
||||||
|
<ThemeProvider defaultButtonVariant="text-stagger" defaultTextAnimation="entrance-slide" borderRadius="rounded" contentWidth="medium" sizing="medium" background="circleGradient" cardStyle="glass-elevated" primaryButtonStyle="gradient" secondaryButtonStyle="glass" headingFontWeight="normal">
|
||||||
|
<ReactLenis root>
|
||||||
|
<div id="nav" data-section="nav">
|
||||||
|
<NavbarLayoutFloatingOverlay
|
||||||
|
brandName="Epicure Buffet"
|
||||||
|
navItems={[
|
||||||
|
{ name: "Menu", id: "/ #menu" },
|
||||||
|
{ name: "Pricing", id: "/ #pricing" },
|
||||||
|
{ name: "Our Story", id: "/our-story" },
|
||||||
|
{ name: "Careers", id: "/careers" },
|
||||||
|
{ name: "Contact Us", id: "/contact-us" },
|
||||||
|
]}
|
||||||
|
button={{ text: "Book Now", href: "/ #contact" }}
|
||||||
|
/>
|
||||||
|
</div>
|
||||||
|
<div className="pt-32 pb-20 px-6 max-w-4xl mx-auto min-h-screen">
|
||||||
|
<h1 className="text-5xl font-bold mb-8">Our Story</h1>
|
||||||
|
<p className="text-lg mb-6 leading-relaxed">Founded in 2015, Epicure Buffet began with a single vision: to transform the way people experience all-you-can-eat dining. We believed that quality shouldn't be sacrificed for variety.</p>
|
||||||
|
<p className="text-lg leading-relaxed">Today, we source our ingredients from local farmers and premium global suppliers to bring you a dining experience that feels both indulgent and fresh.</p>
|
||||||
|
</div>
|
||||||
|
<FooterBase
|
||||||
|
logoText="Epicure Buffet"
|
||||||
|
copyrightText="© 2026 | Epicure Buffet"
|
||||||
|
columns={[
|
||||||
|
{ title: "Dining", items: [{ label: "Lunch Menu", href: "/ #menu" }, { label: "Dinner Menu", href: "/ #menu" }] },
|
||||||
|
{ title: "Company", items: [{ label: "Our Story", href: "/our-story" }, { label: "Careers", href: "/careers" }] },
|
||||||
|
{ title: "Support", items: [{ label: "Reservations", href: "/ #contact" }, { label: "Contact Us", href: "/contact-us" }] },
|
||||||
|
]}
|
||||||
|
/>
|
||||||
|
</ReactLenis>
|
||||||
|
</ThemeProvider>
|
||||||
|
);
|
||||||
|
}
|
||||||
189
src/app/page.tsx
189
src/app/page.tsx
@@ -7,14 +7,12 @@ import HeroSplitDoubleCarousel from "@/components/sections/hero/HeroSplitDoubleC
|
|||||||
import FeatureBento from "@/components/sections/feature/FeatureBento";
|
import FeatureBento from "@/components/sections/feature/FeatureBento";
|
||||||
import FeatureCardTwentySix from "@/components/sections/feature/FeatureCardTwentySix";
|
import FeatureCardTwentySix from "@/components/sections/feature/FeatureCardTwentySix";
|
||||||
import FeatureCardSixteen from "@/components/sections/feature/FeatureCardSixteen";
|
import FeatureCardSixteen from "@/components/sections/feature/FeatureCardSixteen";
|
||||||
import MetricCardEleven from "@/components/sections/metrics/MetricCardEleven";
|
|
||||||
import PricingCardFive from "@/components/sections/pricing/PricingCardFive";
|
import PricingCardFive from "@/components/sections/pricing/PricingCardFive";
|
||||||
import TeamCardFive from "@/components/sections/team/TeamCardFive";
|
import TestimonialCardTwelve from "@/components/sections/testimonial/TestimonialCardTwelve";
|
||||||
import FaqBase from "@/components/sections/faq/FaqBase";
|
import FaqBase from "@/components/sections/faq/FaqBase";
|
||||||
import ContactCTA from "@/components/sections/contact/ContactCTA";
|
import ContactCTA from "@/components/sections/contact/ContactCTA";
|
||||||
import FooterBase from "@/components/sections/footer/FooterBase";
|
import FooterBase from "@/components/sections/footer/FooterBase";
|
||||||
import TestimonialCardTwelve from "@/components/sections/testimonial/TestimonialCardTwelve";
|
import { Sparkles, Utensils, Award, Star, Smile } from "lucide-react";
|
||||||
import { Sparkles, Utensils, Award, Users, TrendingUp, Shield, Clock, Smile, CheckCircle, XCircle, Star, Calendar } from "lucide-react";
|
|
||||||
|
|
||||||
export default function BuffetPage() {
|
export default function BuffetPage() {
|
||||||
return (
|
return (
|
||||||
@@ -34,82 +32,89 @@ export default function BuffetPage() {
|
|||||||
<NavbarLayoutFloatingOverlay
|
<NavbarLayoutFloatingOverlay
|
||||||
brandName="Epicure Buffet"
|
brandName="Epicure Buffet"
|
||||||
navItems={[
|
navItems={[
|
||||||
{ name: "Menu", id: "menu" },
|
{ name: "Menu", id: "#menu" },
|
||||||
{ name: "Pricing", id: "pricing" },
|
{ name: "Pricing", id: "#pricing" },
|
||||||
{ name: "Experience", id: "about" },
|
{ name: "Our Story", id: "/our-story" },
|
||||||
{ name: "Reserve", id: "contact" },
|
{ name: "Careers", id: "/careers" },
|
||||||
|
{ name: "Contact Us", id: "/contact-us" },
|
||||||
]}
|
]}
|
||||||
button={{ text: "Book Now", href: "#contact" }}
|
button={{ text: "Book Now", href: "#contact" }}
|
||||||
/>
|
/>
|
||||||
<HeroSplitDoubleCarousel
|
<div id="hero">
|
||||||
title="A Global Feast, Fresh Daily"
|
<HeroSplitDoubleCarousel
|
||||||
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."
|
title="A Global Feast, Fresh Daily"
|
||||||
tag="🔥 87 people dining right now"
|
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."
|
||||||
tagIcon={Sparkles}
|
tag="🔥 87 people dining right now"
|
||||||
tagAnimation="slide-up"
|
tagIcon={Sparkles}
|
||||||
background={{ variant: "canvas-reveal" }}
|
tagAnimation="slide-up"
|
||||||
buttons={[
|
background={{ variant: "canvas-reveal" }}
|
||||||
{ text: "Reserve Your Table", href: "#contact" },
|
buttons={[
|
||||||
{ text: "View Menu", href: "#menu" },
|
{ text: "Reserve Your Table", href: "#contact" },
|
||||||
]}
|
{ text: "View Menu", href: "#menu" },
|
||||||
buttonAnimation="slide-up"
|
]}
|
||||||
carouselPosition="right"
|
buttonAnimation="slide-up"
|
||||||
leftCarouselItems={[
|
carouselPosition="right"
|
||||||
{ imageSrc: "http://img.b2bpic.net/free-photo/sushi-with-variety-fish-delivery-sushi-package-different-types-rolls_132075-14235.jpg", imageAlt: "Freshly prepared sushi rolls" },
|
leftCarouselItems={[
|
||||||
{ imageSrc: "http://img.b2bpic.net/free-photo/crawfish-plate_23-2150346588.jpg", imageAlt: "Premium crab and shrimp" },
|
{ imageSrc: "http://img.b2bpic.net/free-photo/sushi-with-variety-fish-delivery-sushi-package-different-types-rolls_132075-14235.jpg", imageAlt: "Freshly prepared sushi rolls" },
|
||||||
{ imageSrc: "http://img.b2bpic.net/free-photo/square-slice-chocolate-cheesecake_114579-16589.jpg", imageAlt: "Decadent dessert selection" },
|
{ imageSrc: "http://img.b2bpic.net/free-photo/crawfish-plate_23-2150346588.jpg", imageAlt: "Premium crab and shrimp" },
|
||||||
]}
|
{ imageSrc: "http://img.b2bpic.net/free-photo/square-slice-chocolate-cheesecake_114579-16589.jpg", imageAlt: "Decadent dessert selection" },
|
||||||
rightCarouselItems={[
|
]}
|
||||||
{ imageSrc: "http://img.b2bpic.net/free-photo/life-style_1122-1851.jpg", imageAlt: "Family dining atmosphere" },
|
rightCarouselItems={[
|
||||||
{ imageSrc: "http://img.b2bpic.net/free-photo/waiter-carries-dish-with-snacks-walking-backyard_8353-9017.jpg", imageAlt: "Live refill stations" },
|
{ imageSrc: "http://img.b2bpic.net/free-photo/life-style_1122-1851.jpg", imageAlt: "Family dining atmosphere" },
|
||||||
{ imageSrc: "http://img.b2bpic.net/free-photo/male-chef-kitchen-cooking_23-2148934672.jpg", imageAlt: "Chef at work" },
|
{ imageSrc: "http://img.b2bpic.net/free-photo/waiter-carries-dish-with-snacks-walking-backyard_8353-9017.jpg", imageAlt: "Live refill stations" },
|
||||||
]}
|
{ imageSrc: "http://img.b2bpic.net/free-photo/male-chef-kitchen-cooking_23-2148934672.jpg", imageAlt: "Chef at work" },
|
||||||
carouselItemClassName="!aspect-[4/5]"
|
]}
|
||||||
/>
|
carouselItemClassName="!aspect-[4/5]"
|
||||||
<FeatureBento
|
/>
|
||||||
title="The Epicure Experience"
|
</div>
|
||||||
description="We combine culinary variety with premium service to redefine the buffet concept."
|
<div id="menu">
|
||||||
textboxLayout="default"
|
<FeatureBento
|
||||||
useInvertedBackground={false}
|
title="The Epicure Experience"
|
||||||
animationType="slide-up"
|
description="We combine culinary variety with premium service to redefine the buffet concept."
|
||||||
features={[
|
textboxLayout="default"
|
||||||
{
|
useInvertedBackground={false}
|
||||||
title: "Live Refill Stations",
|
animationType="slide-up"
|
||||||
description: "Our chefs monitor every tray, ensuring hot food is served at the perfect temperature.", bentoComponent: "reveal-icon", icon: Utensils
|
features={[
|
||||||
},
|
{
|
||||||
{
|
title: "Live Refill Stations",
|
||||||
title: "Always Fresh",
|
description: "Our chefs monitor every tray, ensuring hot food is served at the perfect temperature.", bentoComponent: "reveal-icon", icon: Utensils
|
||||||
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" },
|
title: "Always Fresh",
|
||||||
{ imageSrc: "http://img.b2bpic.net/free-photo/culinary-expert-commercial-kitchen-prepares-dish-with-fresh-basil-parsley_482257-124314.jpg", imageAlt: "Chef station" }
|
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: "Improved Desserts",
|
||||||
/>
|
description: "Discover our expanded dessert bar with artisan pastries and seasonal fruits.", bentoComponent: "reveal-icon", icon: Smile
|
||||||
<PricingCardFive
|
}
|
||||||
title="Transparent Value"
|
]}
|
||||||
description="Choose the perfect dining time for you and your family."
|
/>
|
||||||
textboxLayout="split-actions"
|
</div>
|
||||||
animationType="slide-up"
|
<div id="pricing">
|
||||||
useInvertedBackground={false}
|
<PricingCardFive
|
||||||
plans={[
|
title="Transparent Value"
|
||||||
{
|
description="Choose the perfect dining time for you and your family."
|
||||||
id: "lunch", tag: "Most Popular", tagIcon: Star,
|
textboxLayout="split-actions"
|
||||||
price: "$15.99", period: "per person", description: "Full access to our lunch selection until 4:00 PM.", button: { text: "Reserve Lunch", href: "#contact" },
|
animationType="slide-up"
|
||||||
featuresTitle: "Includes:", features: ["All Lunch Stations", "Soft Drinks", "Fresh Sushi Bar"]
|
useInvertedBackground={false}
|
||||||
},
|
plans={[
|
||||||
{
|
{
|
||||||
id: "dinner", tag: "Premium Choice", tagIcon: Award,
|
id: "lunch", tag: "Most Popular", tagIcon: Star,
|
||||||
price: "$29.99", period: "per person", description: "Complete dinner experience with full seafood bar.", button: { text: "Reserve Dinner", href: "#contact" },
|
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 Features", "Premium Crab Legs", "Chef Specials"]
|
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"]
|
||||||
|
}
|
||||||
|
]}
|
||||||
|
/>
|
||||||
|
</div>
|
||||||
<TestimonialCardTwelve
|
<TestimonialCardTwelve
|
||||||
cardTitle="Join 10,000+ Happy Guests"
|
cardTitle="Join 10,000+ Happy Guests"
|
||||||
cardTag="Testimonials"
|
cardTag="Testimonials"
|
||||||
@@ -144,24 +149,26 @@ export default function BuffetPage() {
|
|||||||
{ 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: "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." }
|
||||||
]}
|
]}
|
||||||
/>
|
/>
|
||||||
<ContactCTA
|
<div id="contact">
|
||||||
tag="Hurry, Seats Filling Fast"
|
<ContactCTA
|
||||||
title="Join Us Tonight"
|
tag="Hurry, Seats Filling Fast"
|
||||||
description="Urgency Alert: Peak hours filling up. Book now to guarantee your spot for an exceptional evening."
|
title="Join Us Tonight"
|
||||||
background={{ variant: "rotated-rays-animated" }}
|
description="Urgency Alert: Peak hours filling up. Book now to guarantee your spot for an exceptional evening."
|
||||||
buttons={[
|
background={{ variant: "rotated-rays-animated" }}
|
||||||
{ text: "Reserve Now", href: "#contact" }
|
buttons={[
|
||||||
]}
|
{ text: "Reserve Now", href: "/contact-us" }
|
||||||
buttonAnimation="slide-up"
|
]}
|
||||||
useInvertedBackground={false}
|
buttonAnimation="slide-up"
|
||||||
/>
|
useInvertedBackground={false}
|
||||||
|
/>
|
||||||
|
</div>
|
||||||
<FooterBase
|
<FooterBase
|
||||||
logoText="Epicure Buffet"
|
logoText="Epicure Buffet"
|
||||||
copyrightText="© 2026 | Epicure Buffet"
|
copyrightText="© 2026 | Epicure Buffet"
|
||||||
columns={[
|
columns={[
|
||||||
{ title: "Dining", items: [{ label: "Lunch Menu", href: "#" }, { label: "Dinner Menu", href: "#" }] },
|
{ title: "Dining", items: [{ label: "Lunch Menu", href: "#menu" }, { label: "Dinner Menu", href: "#menu" }] },
|
||||||
{ title: "Company", items: [{ label: "Our Story", href: "#" }, { label: "Careers", href: "#" }] },
|
{ title: "Company", items: [{ label: "Our Story", href: "/our-story" }, { label: "Careers", href: "/careers" }] },
|
||||||
{ title: "Support", items: [{ label: "Reservations", href: "#" }, { label: "Contact Us", href: "#" }] },
|
{ title: "Support", items: [{ label: "Reservations", href: "#contact" }, { label: "Contact Us", href: "/contact-us" }] },
|
||||||
]}
|
]}
|
||||||
/>
|
/>
|
||||||
</ReactLenis>
|
</ReactLenis>
|
||||||
|
|||||||
68
src/app/reservations/page.tsx
Normal file
68
src/app/reservations/page.tsx
Normal file
@@ -0,0 +1,68 @@
|
|||||||
|
"use client";
|
||||||
|
|
||||||
|
import { useState } from "react";
|
||||||
|
import { ThemeProvider } from "@/providers/themeProvider/ThemeProvider";
|
||||||
|
import NavbarLayoutFloatingOverlay from "@/components/navbar/NavbarLayoutFloatingOverlay/NavbarLayoutFloatingOverlay";
|
||||||
|
import ReactLenis from "lenis/react";
|
||||||
|
|
||||||
|
export default function ReservationsPage() {
|
||||||
|
const [formData, setFormData] = useState({ name: "", date: "", guests: "" });
|
||||||
|
const [status, setStatus] = useState<"idle" | "success" | "error">("idle");
|
||||||
|
|
||||||
|
const handleSubmit = (e: React.FormEvent) => {
|
||||||
|
e.preventDefault();
|
||||||
|
if (!formData.name || !formData.date || !formData.guests) {
|
||||||
|
setStatus("error");
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
localStorage.setItem("booking", JSON.stringify(formData));
|
||||||
|
setStatus("success");
|
||||||
|
};
|
||||||
|
|
||||||
|
return (
|
||||||
|
<ThemeProvider
|
||||||
|
defaultButtonVariant="text-stagger"
|
||||||
|
defaultTextAnimation="entrance-slide"
|
||||||
|
borderRadius="rounded"
|
||||||
|
contentWidth="medium"
|
||||||
|
sizing="medium"
|
||||||
|
background="circleGradient"
|
||||||
|
cardStyle="glass-elevated"
|
||||||
|
primaryButtonStyle="gradient"
|
||||||
|
secondaryButtonStyle="glass"
|
||||||
|
headingFontWeight="normal"
|
||||||
|
>
|
||||||
|
<ReactLenis root>
|
||||||
|
<div id="nav" data-section="nav">
|
||||||
|
<NavbarLayoutFloatingOverlay
|
||||||
|
brandName="Epicure Buffet"
|
||||||
|
navItems={[{ name: "Home", id: "/" }, { name: "Reservations", id: "/reservations" }]}
|
||||||
|
/>
|
||||||
|
</div>
|
||||||
|
<main className="min-h-screen pt-32 flex flex-col items-center justify-center p-6">
|
||||||
|
<h1 className="text-4xl font-bold mb-8">Book Your Table</h1>
|
||||||
|
<form onSubmit={handleSubmit} className="bg-card p-8 rounded-xl shadow-lg w-full max-w-md space-y-4">
|
||||||
|
<input
|
||||||
|
type="text" placeholder="Name"
|
||||||
|
className="w-full p-2 border rounded"
|
||||||
|
onChange={(e) => setFormData({...formData, name: e.target.value})}
|
||||||
|
/>
|
||||||
|
<input
|
||||||
|
type="date"
|
||||||
|
className="w-full p-2 border rounded"
|
||||||
|
onChange={(e) => setFormData({...formData, date: e.target.value})}
|
||||||
|
/>
|
||||||
|
<input
|
||||||
|
type="number" placeholder="Guests"
|
||||||
|
className="w-full p-2 border rounded"
|
||||||
|
onChange={(e) => setFormData({...formData, guests: e.target.value})}
|
||||||
|
/>
|
||||||
|
<button type="submit" className="w-full bg-primary-cta text-white py-2 rounded">Confirm Booking</button>
|
||||||
|
</form>
|
||||||
|
{status === "success" && <p className="mt-4 text-green-600">Booking successful!</p>}
|
||||||
|
{status === "error" && <p className="mt-4 text-red-600">Please fill in all fields.</p>}
|
||||||
|
</main>
|
||||||
|
</ReactLenis>
|
||||||
|
</ThemeProvider>
|
||||||
|
);
|
||||||
|
}
|
||||||
Reference in New Issue
Block a user