Compare commits

...

12 Commits

Author SHA1 Message Date
2fcc670745 Update src/app/page.tsx 2026-05-15 06:15:01 +00:00
6a06e71bd3 Merge version_27 into main
Merge version_27 into main
2026-05-15 06:13:13 +00:00
4eb11b0f39 Update src/app/page.tsx 2026-05-15 06:13:07 +00:00
2e376006db Merge version_26 into main
Merge version_26 into main
2026-05-15 06:11:15 +00:00
949c284f12 Update src/app/page.tsx 2026-05-15 06:11:12 +00:00
86a9234b08 Merge version_25 into main
Merge version_25 into main
2026-05-15 06:10:04 +00:00
814c75c3ad Update src/app/page.tsx 2026-05-15 06:10:01 +00:00
b8180b2000 Merge version_24 into main
Merge version_24 into main
2026-05-15 06:09:01 +00:00
4ef8f319ee Update src/app/page.tsx 2026-05-15 06:08:58 +00:00
c91a75d372 Merge version_23 into main
Merge version_23 into main
2026-05-15 06:08:03 +00:00
ea978abc34 Update src/app/page.tsx 2026-05-15 06:07:57 +00:00
29187cd4e7 Merge version_22 into main
Merge version_22 into main
2026-05-15 06:06:50 +00:00

View File

@@ -8,12 +8,19 @@ import FeatureCardOne from '@/components/sections/feature/FeatureCardOne';
import FooterLogoEmphasis from '@/components/sections/footer/FooterLogoEmphasis'; import FooterLogoEmphasis from '@/components/sections/footer/FooterLogoEmphasis';
import HeroBillboard from '@/components/sections/hero/HeroBillboard'; import HeroBillboard from '@/components/sections/hero/HeroBillboard';
import MetricCardTwo from '@/components/sections/metrics/MetricCardTwo'; import MetricCardTwo from '@/components/sections/metrics/MetricCardTwo';
import NavbarStyleCentered from '@/components/navbar/NavbarStyleCentered/NavbarStyleCentered'; import NavbarStyleApple from '@/components/navbar/NavbarStyleApple/NavbarStyleApple';
import ProductCardOne from '@/components/sections/product/ProductCardOne'; import ProductCardOne from '@/components/sections/product/ProductCardOne';
import TestimonialCardTwelve from '@/components/sections/testimonial/TestimonialCardTwelve'; import TestimonialCardTwelve from '@/components/sections/testimonial/TestimonialCardTwelve';
import { Award, ShieldCheck, Users } from "lucide-react"; import { Award, ShieldCheck, Users, Search, ShoppingCart } from "lucide-react";
export default function LandingPage() { export default function LandingPage() {
const handleProductClick = () => {
const contactSection = document.getElementById('contact');
if (contactSection) {
contactSection.scrollIntoView({ behavior: 'smooth' });
}
};
return ( return (
<ThemeProvider <ThemeProvider
defaultButtonVariant="hover-bubble" defaultButtonVariant="hover-bubble"
@@ -29,15 +36,25 @@ export default function LandingPage() {
> >
<ReactLenis root> <ReactLenis root>
<div id="nav" data-section="nav"> <div id="nav" data-section="nav">
<NavbarStyleCentered <div className="w-full flex items-center justify-between p-4 bg-white/80 backdrop-blur-md sticky top-0 z-50 border-b">
navItems={[ <div className="flex items-center gap-4 border rounded-full px-4 py-2 bg-gray-50">
{ name: "Accueil", id: "#hero" }, <Search className="w-5 h-5 text-gray-500" />
{ name: "Produits", id: "#products" }, <input type="text" placeholder="Rechercher des produits..." className="bg-transparent outline-none" />
{ name: "À Propos", id: "#about" }, </div>
{ name: "Contact", id: "#contact" }, <NavbarStyleApple
]} navItems={[
brandName="SAE Réunion" { name: "Accueil", id: "#hero" },
/> { name: "Produits", id: "#products" },
{ name: "À Propos", id: "#about" },
{ name: "Contact", id: "#contact" },
]}
brandName="SAE Réunion"
/>
<button className="flex items-center gap-2 px-6 py-2 bg-primary text-white rounded-full font-semibold">
<ShoppingCart className="w-5 h-5" />
Mon Panier
</button>
</div>
</div> </div>
<div id="hero" data-section="hero"> <div id="hero" data-section="hero">
@@ -55,7 +72,7 @@ Nos solutions d'EPI certifiées protègent vos collaborateurs et assurent la con
<div id="about" data-section="about"> <div id="about" data-section="about">
<AboutMetric <AboutMetric
useInvertedBackground={true} useInvertedBackground={true}
title="Le spécialiste de l'EPI depuis 1996" title="30 ans au service de votre sécurité à La Réunion"
metrics={[ metrics={[
{ icon: Award, label: "Années d'expertise", value: "30+" }, { icon: Award, label: "Années d'expertise", value: "30+" },
{ icon: ShieldCheck, label: "Produits certifiés", value: "1000+" }, { icon: ShieldCheck, label: "Produits certifiés", value: "1000+" },
@@ -73,16 +90,16 @@ Nos solutions d'EPI certifiées protègent vos collaborateurs et assurent la con
useInvertedBackground={false} useInvertedBackground={false}
tag="Certifié & Conforme" tag="Certifié & Conforme"
products={[ products={[
{ id: "p1", name: "Gants de Manutention", price: "12€", imageSrc: "http://img.b2bpic.net/free-photo/top-view-safety-gloves-vest_23-2148784084.jpg", onProductClick: () => window.location.href = '#contact' }, { id: "p1", name: "Gants de Manutention", price: "12€", imageSrc: "http://img.b2bpic.net/free-photo/top-view-safety-gloves-vest_23-2148784084.jpg", onProductClick: handleProductClick },
{ id: "p2", name: "Chaussures de Sécurité", price: "89€", imageSrc: "http://img.b2bpic.net/free-photo/unrecognizable-manual-worker-typing-shoelace-construction-site_637285-8190.jpg", onProductClick: () => window.location.href = '#contact' }, { id: "p2", name: "Chaussures de Sécurité", price: "89€", imageSrc: "http://img.b2bpic.net/free-photo/unrecognizable-manual-worker-typing-shoelace-construction-site_637285-8190.jpg", onProductClick: handleProductClick },
{ id: "p3", name: "Lunettes de Protection", price: "15€", imageSrc: "http://img.b2bpic.net/free-photo/man-wearing-protection-equipment-close-up_23-2148921397.jpg" }, { id: "p3", name: "Lunettes de Protection", price: "15€", imageSrc: "http://img.b2bpic.net/free-photo/man-wearing-protection-equipment-close-up_23-2148921397.jpg", onProductClick: handleProductClick },
{ id: "p4", name: "Vêtements Haute Visibilité", price: "45€", imageSrc: "http://img.b2bpic.net/free-photo/engineer-oversees-assembly-tools-tablet-industry-plant-surrounded-by-metal-steel-machinery_482257-135546.jpg" }, { id: "p4", name: "Vêtements Haute Visibilité", price: "45€", imageSrc: "http://img.b2bpic.net/free-photo/engineer-oversees-assembly-tools-tablet-industry-plant-surrounded-by-metal-steel-machinery_482257-135546.jpg", onProductClick: handleProductClick },
{ id: "p5", name: "Protection Respiratoire", price: "29€", imageSrc: "http://img.b2bpic.net/free-photo/man-with-gas-mask_1122-1288.jpg" }, { id: "p5", name: "Protection Respiratoire", price: "29€", imageSrc: "http://img.b2bpic.net/free-photo/man-with-gas-mask_1122-1288.jpg", onProductClick: handleProductClick },
{ id: "p6", name: "Casque Anti-bruit", price: "35€", imageSrc: "http://img.b2bpic.net/free-photo/man-builder-carpenter-polishes-wooden-board-with-random-orbit-sander_23-2147944854.jpg" }, { id: "p6", name: "Casque Anti-bruit", price: "35€", imageSrc: "http://img.b2bpic.net/free-photo/man-builder-carpenter-polishes-wooden-board-with-random-orbit-sander_23-2147944854.jpg", onProductClick: handleProductClick },
]} ]}
title="Gamme complète d'EPI" title="Gamme complète d'EPI"
description="" description="Nos équipements sont rigoureusement sélectionnés pour offrir une protection maximale aux professionnels du bâtiment, résistant aux conditions les plus exigeantes sur le terrain pour garantir une sécurité sans compromis."
buttons={[{ text: "Voir le catalogue complet", href: "#catalog" }]} buttons={[{ text: "Demander un devis personnalisé", href: "#contact" }]}
/> />
</div> </div>
@@ -137,8 +154,8 @@ Nos solutions d'EPI certifiées protègent vos collaborateurs et assurent la con
<div id="contact" data-section="contact"> <div id="contact" data-section="contact">
<ContactCenter <ContactCenter
tag="Contact" tag="Contact"
title="Besoin d'un devis ?" title="Obtenez votre devis personnalisé en 24h"
description="Obtenez une réponse sous 24h pour vos besoins en sécurité." description="Nous nous engageons à traiter vos demandes rapidement pour assurer votre sécurité."
background={{ variant: "gradient-bars" }} background={{ variant: "gradient-bars" }}
useInvertedBackground={true} useInvertedBackground={true}
/> />