Files
20c338f4-df09-4bd3-91e6-69b…/src/app/page.tsx
2026-04-24 13:21:49 +00:00

244 lines
12 KiB
TypeScript

"use client";
import { ThemeProvider } from "@/providers/themeProvider/ThemeProvider";
import ReactLenis from "lenis/react";
import ContactSplitForm from '@/components/sections/contact/ContactSplitForm';
import FaqSplitMedia from '@/components/sections/faq/FaqSplitMedia';
import FeatureCardNine from '@/components/sections/feature/FeatureCardNine';
import FooterLogoReveal from '@/components/sections/footer/FooterLogoReveal';
import HeroBillboardTestimonial from '@/components/sections/hero/HeroBillboardTestimonial';
import NavbarStyleFullscreen from '@/components/navbar/NavbarStyleFullscreen/NavbarStyleFullscreen';
import ProductCardOne from '@/components/sections/product/ProductCardOne';
import TestimonialCardOne from '@/components/sections/testimonial/TestimonialCardOne';
import TextSplitAbout from '@/components/sections/about/TextSplitAbout';
export default function LandingPage() {
return (
<ThemeProvider
defaultButtonVariant="bounce-effect"
defaultTextAnimation="entrance-slide"
borderRadius="pill"
contentWidth="smallMedium"
sizing="largeSmallSizeLargeTitles"
background="aurora"
cardStyle="gradient-radial"
primaryButtonStyle="double-inset"
secondaryButtonStyle="solid"
headingFontWeight="semibold"
>
<ReactLenis root>
<div id="nav" data-section="nav">
<NavbarStyleFullscreen
navItems={[
{
name: "Home", id: "hero"},
{
name: "About", id: "about"},
{
name: "Menu", id: "products"},
{
name: "Contact", id: "contact"},
]}
brandName="Restaurant du Cygne"
/>
</div>
<div id="hero" data-section="hero">
<HeroBillboardTestimonial
background={{
variant: "plain"}}
title="Restaurant du Cygne"
description="Excellence in every dish. Experience refined culinary art in the heart of the city."
testimonials={[
{
name: "Jean Dupont", handle: "@jeand", testimonial: "Une expérience culinaire inoubliable.", rating: 5,
imageSrc: "http://img.b2bpic.net/free-photo/successful-young-man-stylish-hat-relaxing-alone-cozy-cafeteria-lunch-break-looking-with-happy-expression_273609-1935.jpg"},
{
name: "Marie Curie", handle: "@marie", testimonial: "Le service est impeccable, la cuisine divine.", rating: 5,
imageSrc: "http://img.b2bpic.net/free-photo/medium-shot-cute-woman_23-2148422458.jpg"},
{
name: "Paul Durand", handle: "@pauld", testimonial: "Cadre magnifique et repas délicieux.", rating: 5,
imageSrc: "http://img.b2bpic.net/free-photo/romantic-couple-christmas-dinner_23-2147716305.jpg"},
{
name: "Sophie Martin", handle: "@sophiem", testimonial: "Une adresse incontournable.", rating: 5,
imageSrc: "http://img.b2bpic.net/free-photo/young-passionate-woman-with-flower-table_23-2148001712.jpg"},
{
name: "Lucie Bernard", handle: "@lucieb", testimonial: "La finesse des plats est exceptionnelle.", rating: 5,
imageSrc: "http://img.b2bpic.net/free-photo/couple-having-date-together-luxurious-restaurant_23-2150517448.jpg"},
]}
buttons={[
{
text: "Réservations",
href: "#contact"
},
]}
imageSrc="http://img.b2bpic.net/free-photo/valentine-s-day-arrangement-with-roses_23-2151914738.jpg"
avatars={[
{
src: "http://img.b2bpic.net/free-photo/attractive-happy-young-bearded-man-trendy-hat-texting-messages-via-social-networks-browsing-internet-using-free-wifi-his-electronic-device-coffee-break-restaurant_273609-1934.jpg", alt: "Dîner 1"},
{
src: "http://img.b2bpic.net/free-photo/vertical-photo-beautiful-lady-sitting-restaurant-smiling-camera_114579-92383.jpg", alt: "Dîner 2"},
{
src: "http://img.b2bpic.net/free-photo/portrait-smiling-pretty-waitress_1098-15705.jpg", alt: "Dîner 3"},
{
src: "http://img.b2bpic.net/free-photo/girl-sitting-table-holding-mobile-phone-indoors_171337-17096.jpg", alt: "Dîner 4"},
{
src: "http://img.b2bpic.net/free-photo/smiling-woman-with-olives-beer_23-2147680964.jpg", alt: "Dîner 5"},
]}
marqueeItems={[
{
type: "text", text: "Gastronomie"},
{
type: "text", text: "Fraîcheur"},
{
type: "text", text: "Tradition"},
{
type: "text", text: "Art"},
{
type: "text", text: "Cuisine"},
]}
/>
</div>
<div id="about" data-section="about">
<TextSplitAbout
useInvertedBackground={false}
title="L'Art de Vivre"
description={[
"Fondé avec passion, le Restaurant du Cygne célèbre les saveurs traditionnelles sublimées par une touche de modernité.", "Chaque plat est une création originale conçue pour éveiller vos sens."]}
/>
</div>
<div id="features" data-section="features">
<FeatureCardNine
animationType="slide-up"
textboxLayout="default"
useInvertedBackground={true}
features={[
{
title: "Plats de Signature", description: "L'alliance parfaite entre tradition et créativité.", phoneOne: {
imageSrc: "http://img.b2bpic.net/free-photo/top-view-cooked-squashes-designed-meal-inside-plate-grey-surface_140725-89988.jpg"},
phoneTwo: {
imageSrc: "http://img.b2bpic.net/free-photo/flat-lay-lemon-tart-plate_23-2148519056.jpg"},
},
{
title: "Cave à Vins", description: "Une sélection rigoureuse des meilleurs cépages.", phoneOne: {
imageSrc: "http://img.b2bpic.net/free-photo/bartender-pouring-white-wine-into-glasses-bar_23-2152024843.jpg"},
phoneTwo: {
imageSrc: "http://img.b2bpic.net/free-photo/man-having-glass-red-wine_107420-65430.jpg"},
},
{
title: "Ingrédients Frais", description: "Des produits de saison issus de producteurs locaux.", phoneOne: {
imageSrc: "http://img.b2bpic.net/free-photo/front-view-female-chef-tearing-salad-kitchen_23-2148763183.jpg"},
phoneTwo: {
imageSrc: "http://img.b2bpic.net/free-photo/set-fresh-raw-vegetables-products-table-modern-kitchen-room-healthy-eating-organic-food_1157-41854.jpg"},
},
]}
showStepNumbers={false}
title="Notre Engagement"
description="Nous sélectionnons uniquement le meilleur pour votre table."
/>
</div>
<div id="products" data-section="products">
<ProductCardOne
animationType="slide-up"
textboxLayout="default"
gridVariant="uniform-all-items-equal"
useInvertedBackground={false}
products={[
{
id: "p1", name: "Amuse-bouche Signature", price: "18€", imageSrc: "http://img.b2bpic.net/free-photo/beef-with-pistachio-topping-served-with-fruits-berries_7502-7390.jpg"},
{
id: "p2", name: "Filet de Bœuf aux Morilles", price: "42€", imageSrc: "http://img.b2bpic.net/free-photo/close-up-view-italian-food-wooden-table_23-2148305652.jpg"},
{
id: "p3", name: "Dôme au Chocolat Noir", price: "14€", imageSrc: "http://img.b2bpic.net/free-photo/top-view-yummy-pie-slices-inside-designed-plate-grey_140725-53029.jpg"},
{
id: "p4", name: "Homard à la Nage", price: "48€", imageSrc: "http://img.b2bpic.net/free-photo/fried-shrimps-with-lemon-table_140725-9208.jpg"},
{
id: "p5", name: "Risotto aux Truffes", price: "32€", imageSrc: "http://img.b2bpic.net/free-photo/plate-with-boiled-egg-wild-garlic-flower_166373-664.jpg"},
{
id: "p6", name: "Velouté de Saison", price: "16€", imageSrc: "http://img.b2bpic.net/free-photo/traditional-azerbaijani-soup-garnished-with-dried-mint-leaves_140725-5217.jpg"},
]}
title="Notre Menu"
description="Découvrez une sélection de plats raffinés."
/>
</div>
<div id="testimonials" data-section="testimonials">
<TestimonialCardOne
animationType="slide-up"
textboxLayout="default"
gridVariant="uniform-all-items-equal"
useInvertedBackground={true}
testimonials={[
{
id: "1", name: "Jean Dupont", role: "Habitué", company: "Local", rating: 5,
imageSrc: "http://img.b2bpic.net/free-photo/medium-shot-couple-having-lunch-luxury-restaurant_23-2150598351.jpg"},
{
id: "2", name: "Marie Curie", role: "Critique", company: "Presse", rating: 5,
imageSrc: "http://img.b2bpic.net/free-photo/woman-sitting-with-shopping-bags-wine_23-2147784078.jpg"},
{
id: "3", name: "Paul Durand", role: "Client", company: "Voisin", rating: 5,
imageSrc: "http://img.b2bpic.net/free-photo/portrait-beautiful-young-woman-smiling_23-2148454153.jpg"},
{
id: "4", name: "Sophie Martin", role: "Connaisseuse", company: "Local", rating: 5,
imageSrc: "http://img.b2bpic.net/portrait-senior-man-luxurious-restaurant_23-2150517452.jpg"},
{
id: "5", name: "Lucie Bernard", role: "Dîner", company: "Amie", rating: 5,
imageSrc: "http://img.b2bpic.net/free-photo/high-angle-smiley-people-with-drinks_23-2150124809.jpg"},
]}
title="Ce que disent nos clients"
description="La satisfaction de nos convives est notre plus grande récompense."
/>
</div>
<div id="faq" data-section="faq">
<FaqSplitMedia
textboxLayout="split"
useInvertedBackground={false}
faqs={[
{
id: "q1", title: "Réservations", content: "Il est vivement conseillé de réserver à l'avance."},
{
id: "q2", title: "Horaires", content: "Nous sommes ouverts du mardi au dimanche, midi et soir."},
{
id: "q3", title: "Accessibilité", content: "Le restaurant est entièrement accessible aux personnes à mobilité réduite."},
]}
imageSrc="http://img.b2bpic.net/free-photo/reserved-table-restaurant_53876-88.jpg"
mediaAnimation="slide-up"
title="Questions Fréquentes"
description="Informations utiles pour votre visite."
faqsAnimation="slide-up"
/>
</div>
<div id="contact" data-section="contact">
<ContactSplitForm
title="Réservez votre table"
description="Laissez-nous vos coordonnées et nous vous rappellerons pour confirmer votre réservation."
inputs={[
{ name: "name", type: "text", placeholder: "Votre nom", required: true },
{ name: "email", type: "email", placeholder: "Votre email", required: true },
{ name: "phone", type: "tel", placeholder: "Votre téléphone", required: true },
]}
textarea={{ name: "message", placeholder: "Détails de la réservation (nombre de personnes, date)" }}
buttonText="Confirmer la demande"
useInvertedBackground={false}
onSubmit={(data) => console.log("Formulaire envoyé:", data)}
/>
</div>
<div id="footer" data-section="footer">
<FooterLogoReveal
logoText="Restaurant du Cygne"
leftLink={{
text: "Contact", href: "#contact"}}
rightLink={{
text: "Mentions Légales", href: "#"}}
/>
</div>
</ReactLenis>
</ThemeProvider>
);
}