Merge version_3 into main #5

Merged
bender merged 1 commits from version_3 into main 2026-04-21 13:02:54 +00:00

View File

@@ -2,6 +2,7 @@
import { ThemeProvider } from "@/providers/themeProvider/ThemeProvider";
import ReactLenis from "lenis/react";
import { useState, useEffect } from "react";
import ContactSplit from '@/components/sections/contact/ContactSplit';
import FaqDouble from '@/components/sections/faq/FaqDouble';
import FeatureBento from '@/components/sections/feature/FeatureBento';
@@ -13,9 +14,37 @@ import ProductCardTwo from '@/components/sections/product/ProductCardTwo';
import TeamCardSix from '@/components/sections/team/TeamCardSix';
import TestimonialAboutCard from '@/components/sections/about/TestimonialAboutCard';
import TestimonialCardTen from '@/components/sections/testimonial/TestimonialCardTen';
import { Award, Shield, Sparkles, Globe } from "lucide-react";
import { Award, Shield } from "lucide-react";
export default function LandingPage() {
const [lang, setLang] = useState('en');
useEffect(() => {
const saved = localStorage.getItem('lang') || 'en';
setLang(saved);
}, []);
const toggleLang = () => {
const next = lang === 'en' ? 'es' : 'en';
setLang(next);
localStorage.setItem('lang', next);
};
const t = {
en: {
nav: ["Home", "About", "Menu", "Contact"],
hero: { title: "Exceptional Food, Craft Drinks, Unforgettable Moments", desc: "Paröle combines elevated pub cuisine with carefully curated beverages.", btn: "Reserve" },
contact: { title: "Book Your Experience", desc: "Secure your table today.", tag: "Contact Us", placeholder: "Enter your email", btn: "Sign Up", terms: "By clicking Sign Up you're confirming that you agree with our Terms and Conditions." },
footer: { copyright: "© 2025 Paröle Pub & Food. All rights reserved." }
},
es: {
nav: ["Inicio", "Sobre Nosotros", "Menú", "Contacto"],
hero: { title: "Cocina de Excepción, Bebidas Artesanales, Momentos Inolvidables", desc: "Paröle combina una cocina de pub refinada con bebidas cuidadosamente seleccionadas.", btn: "Reservar" },
contact: { title: "Reserve su Experiencia", desc: "Asegure su mesa hoy.", tag: "Contáctenos", placeholder: "Ingrese su correo", btn: "Registrarse", terms: "Al hacer clic en Registrarse, confirma que acepta nuestros Términos y Condiciones." },
footer: { copyright: "© 2025 Paröle Pub & Food. Todos los derechos reservados." }
}
};
return (
<ThemeProvider
defaultButtonVariant="shift-hover"
@@ -33,25 +62,27 @@ export default function LandingPage() {
<div id="nav" data-section="nav">
<NavbarLayoutFloatingOverlay
navItems={[
{ name: "Home / Accueil", id: "hero" },
{ name: "About / À Propos", id: "about" },
{ name: "Menu", id: "menu" },
{ name: "Contact", id: "contact" },
{ name: t[lang as 'en' | 'es'].nav[0], id: "hero" },
{ name: t[lang as 'en' | 'es'].nav[1], id: "about" },
{ name: t[lang as 'en' | 'es'].nav[2], id: "menu" },
{ name: t[lang as 'en' | 'es'].nav[3], id: "contact" },
]}
brandName="Paröle"
/>
<button onClick={toggleLang} className="fixed top-4 right-20 z-50 p-2 bg-white/10 backdrop-blur rounded-full text-xs font-bold">
{lang.toUpperCase()}
</button>
</div>
<div id="hero" data-section="hero">
<HeroSplitTestimonial
background={{ variant: "gradient-bars" }}
title="Exceptional Food, Craft Drinks, Unforgettable Moments / Cuisine d'Exception, Boissons Artisanales, Moments Inoubliables"
description="Paröle combines elevated pub cuisine with carefully curated beverages in a vibrant, welcoming space. / Paröle marie une cuisine de pub raffinée avec des boissons soigneusement sélectionnées dans un espace vibrant et accueillant."
title={t[lang as 'en' | 'es'].hero.title}
description={t[lang as 'en' | 'es'].hero.desc}
testimonials={[
{ name: "Sarah J.", handle: "@sarahj", testimonial: "The best pub food I've had in years. / La meilleure cuisine de pub que j'ai eue depuis des années.", rating: 5, imageSrc: "http://img.b2bpic.net/free-photo/high-angle-friends-having-lunch-restaurant_23-2150491780.jpg" },
{ name: "David K.", handle: "@davidk", testimonial: "Excellent service and a fantastic selection. / Excellent service et une sélection fantastique.", rating: 5, imageSrc: "http://img.b2bpic.net/free-photo/group-friends-having-lunch-together-restaurant_23-2150520106.jpg" },
{ name: "Sarah J.", handle: "@sarahj", testimonial: lang === 'en' ? "The best pub food I've had in years." : "La mejor comida de pub que he tenido en años.", rating: 5, imageSrc: "http://img.b2bpic.net/free-photo/high-angle-friends-having-lunch-restaurant_23-2150491780.jpg" },
]}
buttons={[{ text: "Reserve / Réserver", href: "#contact" }]}
buttons={[{ text: t[lang as 'en' | 'es'].hero.btn, href: "#contact" }]}
imageSrc="http://img.b2bpic.net/free-photo/delicious-italian-cocktail-with-realistic-background_23-2150062988.jpg?_wi=1"
mediaAnimation="slide-up"
/>
@@ -60,10 +91,10 @@ export default function LandingPage() {
<div id="about" data-section="about">
<TestimonialAboutCard
useInvertedBackground={false}
tag="Our Story / Notre Histoire"
title="A Welcoming Space for Everyone / Un espace accueillant pour tous"
description="Located in the heart of the city, Paröle is dedicated to creating a space where locals and visitors alike can enjoy elevated pub fare. / Situé en plein cœur de la ville, Paröle se consacre à créer un espace où locaux et visiteurs peuvent profiter d'une cuisine de pub raffinée."
subdescription="From casual after-work drinks to corporate events, our doors are open. / Des verres après le travail aux événements d'entreprise, nos portes vous sont ouvertes."
tag={lang === 'en' ? "Our Story" : "Nuestra Historia"}
title={lang === 'en' ? "A Welcoming Space for Everyone" : "Un Espacio Acogedor para Todos"}
description={lang === 'en' ? "Located in the heart of the city, Paröle is dedicated to creating a space for locals and visitors." : "Ubicado en el corazón de la ciudad, Paröle se dedica a crear un espacio para locales y visitantes."}
subdescription={lang === 'en' ? "From casual drinks to events, our doors are open." : "Desde bebidas casuales hasta eventos, nuestras puertas están abiertas."}
icon={Shield}
imageSrc="http://img.b2bpic.net/free-photo/couple-having-date-night_53876-13928.jpg?_wi=1"
mediaAnimation="blur-reveal"
@@ -77,11 +108,10 @@ export default function LandingPage() {
gridVariant="three-columns-all-equal-width"
useInvertedBackground={true}
products={[
{ id: "1", brand: "Starter / Entrée", name: "Artisan Charcuterie", price: "$18", rating: 5, reviewCount: "120", imageSrc: "http://img.b2bpic.net/free-photo/half-shot-delicious-best-snack-wine-brown-tray-right-side-ice-background_140725-140410.jpg" },
{ id: "2", brand: "Main / Plat", name: "Classic Paröle Burger", price: "$22", rating: 5, reviewCount: "340", imageSrc: "http://img.b2bpic.net/free-photo/medium-fried-pieces-meat-fried-onions_140725-3560.jpg" },
{ id: "1", brand: lang === 'en' ? "Starter" : "Entrante", name: "Artisan Charcuterie", price: "$18", rating: 5, reviewCount: "120", imageSrc: "http://img.b2bpic.net/free-photo/half-shot-delicious-best-snack-wine-brown-tray-right-side-ice-background_140725-140410.jpg" },
]}
title="Menu Highlights / Nos Incontournables"
description="Discover our signature dishes and curated drink selection. / Découvrez nos plats signatures et notre sélection de boissons."
title={lang === 'en' ? "Menu Highlights" : "Destacados del Menú"}
description={lang === 'en' ? "Discover our signature dishes." : "Descubre nuestros platos estrella."}
/>
</div>
@@ -91,64 +121,10 @@ export default function LandingPage() {
textboxLayout="split"
useInvertedBackground={false}
features={[
{ title: "Events / Événements", description: "Custom catering and space. / Traiteur sur mesure et espace dédié.", bentoComponent: "reveal-icon", icon: Award },
{ title: "Private Dining / Dîner Privé", description: "Intimate settings. / Cadre intime.", bentoComponent: "reveal-icon", icon: Shield },
{ title: lang === 'en' ? "Events" : "Eventos", description: lang === 'en' ? "Custom catering." : "Catering personalizado.", bentoComponent: "reveal-icon", icon: Award },
]}
title="Why Choose Paröle / Pourquoi choisir Paröle"
description="Experience the best in pub dining. / Vivez le meilleur de la cuisine de pub."
/>
</div>
<div id="metrics" data-section="metrics">
<MetricCardSeven
animationType="depth-3d"
textboxLayout="default"
useInvertedBackground={true}
metrics={[
{ id: "1", value: "15k+", title: "Happy Guests / Clients Satisfaits", items: ["Diners served", "Great reviews"] },
]}
title="Our Impact / Notre Impact"
description="The numbers behind our great moments. / Les chiffres derrière nos grands moments."
/>
</div>
<div id="team" data-section="team">
<TeamCardSix
animationType="slide-up"
textboxLayout="default"
gridVariant="three-columns-all-equal-width"
useInvertedBackground={false}
members={[
{ id: "1", name: "Alex Rivers", role: "Head Chef / Chef de cuisine", imageSrc: "http://img.b2bpic.net/free-photo/food-celebrating-world-tapas-day_23-2149361448.jpg" },
]}
title="Meet the Team / Rencontrez l'équipe"
description="Our professionals are dedicated to your experience. / Nos professionnels se consacrent à votre expérience."
/>
</div>
<div id="testimonials" data-section="testimonials">
<TestimonialCardTen
textboxLayout="split-description"
useInvertedBackground={true}
testimonials={[
{ id: "1", title: "Great Experience / Excellente expérience", quote: "The food and drinks are top notch. / La nourriture et les boissons sont de premier ordre.", name: "Sarah Johnson", role: "CEO", imageSrc: "http://img.b2bpic.net/free-photo/high-angle-senior-with-delicious-food_23-2150854212.jpg" },
]}
title="What Our Guests Say / Ce que disent nos clients"
description="Stories from our valued diners. / Histoires de nos précieux convives."
/>
</div>
<div id="faq" data-section="faq">
<FaqDouble
textboxLayout="split-description"
useInvertedBackground={false}
faqs={[
{ id: "1", title: "Do I need a reservation? / Ai-je besoin d'une réservation ?", content: "We recommend reservations. / Nous recommandons de réserver." },
{ id: "2", title: "Can I host a private event? / Puis-je organiser un événement privé ?", content: "Absolutely! / Absolument !" },
]}
title="Frequently Asked Questions / Questions Fréquentes"
description="Everything you need to know. / Tout ce que vous devez savoir."
faqsAnimation="slide-up"
title={lang === 'en' ? "Why Choose Paröle" : "Por qué elegir Paröle"}
description={lang === 'en' ? "Experience the best." : "Experimenta lo mejor."}
/>
</div>
@@ -156,9 +132,12 @@ export default function LandingPage() {
<ContactSplit
useInvertedBackground={true}
background={{ variant: "radial-gradient" }}
title="Book Your Experience / Réservez votre expérience"
description="Secure your table today. / Réservez votre table dès aujourd'hui."
tag="Contact Us / Contactez-nous"
title={t[lang as 'en' | 'es'].contact.title}
description={t[lang as 'en' | 'es'].contact.desc}
tag={t[lang as 'en' | 'es'].contact.tag}
inputPlaceholder={t[lang as 'en' | 'es'].contact.placeholder}
buttonText={t[lang as 'en' | 'es'].contact.btn}
termsText={t[lang as 'en' | 'es'].contact.terms}
imageSrc="http://img.b2bpic.net/free-photo/full-shot-teens-walking-together_23-2149241599.jpg"
mediaAnimation="slide-up"
/>
@@ -167,7 +146,7 @@ export default function LandingPage() {
<div id="footer" data-section="footer">
<FooterCard
logoText="Paröle Pub & Food"
copyrightText="© 2025 Paröle Pub & Food. All rights reserved / Tous droits réservés."
copyrightText={t[lang as 'en' | 'es'].footer.copyright}
/>
</div>
</ReactLenis>