Compare commits

...

39 Commits

Author SHA1 Message Date
0a4689c506 Merge version_40 into main
Merge version_40 into main
2026-05-18 06:13:54 +00:00
5e9c431139 Update src/app/page.tsx 2026-05-18 06:13:51 +00:00
a16a52ced1 Merge version_39 into main
Merge version_39 into main
2026-05-15 06:56:18 +00:00
3ec6f13d29 Update src/app/page.tsx 2026-05-15 06:56:15 +00:00
09cf1e926f Merge version_39 into main
Merge version_39 into main
2026-05-15 06:55:49 +00:00
15dd916c48 Update src/app/page.tsx 2026-05-15 06:55:42 +00:00
2f32097b62 Merge version_38 into main
Merge version_38 into main
2026-05-15 06:53:32 +00:00
464433b637 Update src/app/page.tsx 2026-05-15 06:53:26 +00:00
10a6dcbb8e Merge version_38 into main
Merge version_38 into main
2026-05-15 06:52:54 +00:00
013f1dab47 Update src/app/page.tsx 2026-05-15 06:52:48 +00:00
26b1b36ec1 Merge version_38 into main
Merge version_38 into main
2026-05-15 06:52:17 +00:00
131d29bfed Update src/app/page.tsx 2026-05-15 06:52:13 +00:00
5f6cf85b1d Merge version_37 into main
Merge version_37 into main
2026-05-15 06:50:10 +00:00
bb9182c46f Update src/app/page.tsx 2026-05-15 06:50:04 +00:00
048b16d850 Merge version_37 into main
Merge version_37 into main
2026-05-15 06:47:21 +00:00
04e87f1167 Update src/app/page.tsx 2026-05-15 06:47:17 +00:00
64d06ab409 Merge version_36 into main
Merge version_36 into main
2026-05-15 06:45:56 +00:00
d16ffe53b0 Update src/app/page.tsx 2026-05-15 06:45:53 +00:00
ec740a8ae1 Merge version_35 into main
Merge version_35 into main
2026-05-15 06:45:04 +00:00
ebb6c526ec Update src/app/page.tsx 2026-05-15 06:44:58 +00:00
d3139848a5 Merge version_35 into main
Merge version_35 into main
2026-05-15 06:44:32 +00:00
e7299a15c2 Update src/app/page.tsx 2026-05-15 06:44:25 +00:00
60d071ff7f Merge version_34 into main
Merge version_34 into main
2026-05-15 06:39:46 +00:00
7d9137c82a Update src/app/page.tsx 2026-05-15 06:39:43 +00:00
441b0a65ac Merge version_34 into main
Merge version_34 into main
2026-05-15 06:39:10 +00:00
e9c0f8b6ea Update src/app/page.tsx 2026-05-15 06:39:06 +00:00
ec04c8ee82 Merge version_34 into main
Merge version_34 into main
2026-05-15 06:38:30 +00:00
80a2dafc27 Update src/app/page.tsx 2026-05-15 06:38:23 +00:00
3f9b40cc02 Merge version_33 into main
Merge version_33 into main
2026-05-15 06:34:43 +00:00
eac80812ee Update src/app/page.tsx 2026-05-15 06:34:40 +00:00
242003ca3c Merge version_32 into main
Merge version_32 into main
2026-05-15 06:27:54 +00:00
761338fe06 Update src/app/page.tsx 2026-05-15 06:27:48 +00:00
1baf54d7b5 Merge version_31 into main
Merge version_31 into main
2026-05-15 06:19:02 +00:00
1a65c0cea4 Update src/app/page.tsx 2026-05-15 06:18:56 +00:00
c4766acd40 Merge version_30 into main
Merge version_30 into main
2026-05-15 06:17:24 +00:00
47e9767a50 Update src/app/page.tsx 2026-05-15 06:17:21 +00:00
ae62d885a7 Merge version_29 into main
Merge version_29 into main
2026-05-15 06:16:15 +00:00
ab161d983b Update src/app/page.tsx 2026-05-15 06:16:08 +00:00
8264fd3277 Merge version_28 into main
Merge version_28 into main
2026-05-15 06:15:04 +00:00

View File

@@ -3,15 +3,16 @@
import { ThemeProvider } from "@/providers/themeProvider/ThemeProvider"; import { ThemeProvider } from "@/providers/themeProvider/ThemeProvider";
import ReactLenis from "lenis/react"; import ReactLenis from "lenis/react";
import AboutMetric from '@/components/sections/about/AboutMetric'; import AboutMetric from '@/components/sections/about/AboutMetric';
import ContactCenter from '@/components/sections/contact/ContactCenter'; import ContactSplitForm from '@/components/sections/contact/ContactSplitForm';
import FeatureCardOne from '@/components/sections/feature/FeatureCardOne'; import FeatureCardOne from '@/components/sections/feature/FeatureCardOne';
import FooterLogoEmphasis from '@/components/sections/footer/FooterLogoEmphasis'; import FooterLogoReveal from '@/components/sections/footer/FooterLogoReveal';
import HeroBillboard from '@/components/sections/hero/HeroBillboard'; import HeroBillboardCarousel from '@/components/sections/hero/HeroBillboardCarousel';
import MetricCardTwo from '@/components/sections/metrics/MetricCardTwo'; import MetricCardTwo from '@/components/sections/metrics/MetricCardTwo';
import NavbarStyleApple from '@/components/navbar/NavbarStyleApple/NavbarStyleApple'; import NavbarStyleFullscreen from '@/components/navbar/NavbarStyleFullscreen/NavbarStyleFullscreen';
import ProductCardOne from '@/components/sections/product/ProductCardOne'; import ProductCardOne from '@/components/sections/product/ProductCardOne';
import TestimonialCardTwelve from '@/components/sections/testimonial/TestimonialCardTwelve'; import TestimonialCardOne from '@/components/sections/testimonial/TestimonialCardOne';
import { Award, ShieldCheck, Users, Search, ShoppingCart } from "lucide-react"; import SocialProofOne from '@/components/sections/socialProof/SocialProofOne';
import { Award, ShieldCheck, Users } from "lucide-react";
export default function LandingPage() { export default function LandingPage() {
const handleProductClick = () => { const handleProductClick = () => {
@@ -36,39 +37,43 @@ export default function LandingPage() {
> >
<ReactLenis root> <ReactLenis root>
<div id="nav" data-section="nav"> <div id="nav" data-section="nav">
<div className="w-full flex items-center justify-between p-4 bg-white/80 backdrop-blur-md sticky top-0 z-50 border-b"> <NavbarStyleFullscreen
<div className="flex items-center gap-4 border rounded-full px-4 py-2 bg-gray-50"> navItems={[
<Search className="w-5 h-5 text-gray-500" /> { name: "Accueil", id: "#hero" },
<input type="text" placeholder="Rechercher des produits..." className="bg-transparent outline-none" /> { name: "Produits", id: "#products" },
</div> { name: "À Propos", id: "#about" },
<NavbarStyleApple { name: "Contact", id: "#contact" },
navItems={[ { name: "Mon Panier", id: "#cart" },
{ name: "Accueil", id: "#hero" }, ]}
{ name: "Produits", id: "#products" }, brandName="SAE Réunion"
{ 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">
<HeroBillboard <HeroBillboardCarousel
title="Expertise en EPI pour les Professionnels de la Réunion" title="Expertise en EPI pour les Professionnels de la Réunion"
description="Assurez une sécurité immédiate pour les professionnels de l'île de La Réunion. description="Bénéficiez de notre expertise locale unique et de nos délais de livraison ultra-rapides. Contrairement aux fournisseurs généralistes, nous garantissons une disponibilité immédiate et un accompagnement technique de proximité pour sécuriser vos chantiers réunionnais sans attente."
Nos solutions d'EPI certifiées protègent vos collaborateurs et assurent la conformité totale de vos chantiers."
buttons={[{ text: "Obtenir un devis rapide", href: "#contact" }]} buttons={[{ text: "Obtenir un devis rapide", href: "#contact" }]}
imageSrc="https://webuild-dev.s3.eu-north-1.amazonaws.com/users/user_3Df1ETXUvuyYPxkhnyZJKVSXGQj/chantier-1778660616866-4fd2157e.png" mediaItems={[
imageAlt="Chantier de construction avec un professionnel en équipement de sécurité" { imageSrc: "https://webuild-dev.s3.eu-north-1.amazonaws.com/users/user_3Df1ETXUvuyYPxkhnyZJKVSXGQj/chantier-1778660616866-4fd2157e.png?_wi=1", imageAlt: "Chantier de construction" },
{ imageSrc: "http://img.b2bpic.net/free-photo/warehouse-worker-checking-inventory_23-2152001550.jpg?_wi=1", imageAlt: "Entrepôt logistique" },
{ imageSrc: "http://img.b2bpic.net/free-photo/industrial-safety-equipment_23-2148784084.jpg", imageAlt: "Équipements de protection" },
{ imageSrc: "http://img.b2bpic.net/free-photo/worker-wearing-protective-gear_23-2148921397.jpg", imageAlt: "Professionnel équipé" }
]}
background={{ variant: "plain" }} background={{ variant: "plain" }}
/> />
</div> </div>
<div id="socialProof" data-section="socialProof">
<SocialProofOne
title="Ils nous font confiance"
names={["BTP 974", "SecurPro", "BatirRéunion", "Réunion Construction", "EPI Pro Réunion", "SécuriChantier"]}
description="Nos partenaires de confiance"
textboxLayout="default"
useInvertedBackground={false}
/>
</div>
<div id="about" data-section="about"> <div id="about" data-section="about">
<AboutMetric <AboutMetric
useInvertedBackground={true} useInvertedBackground={true}
@@ -110,7 +115,7 @@ Nos solutions d'EPI certifiées protègent vos collaborateurs et assurent la con
gridVariant="three-columns-all-equal-width" gridVariant="three-columns-all-equal-width"
useInvertedBackground={true} useInvertedBackground={true}
features={[ features={[
{ title: "Expertise Locale", description: "Connaissance approfondie des contraintes du marché local réunionnais.", imageSrc: "http://img.b2bpic.net/free-photo/warehouse-worker-checking-inventory_23-2152001550.jpg" }, { title: "Expertise Locale", description: "Connaissance approfondie des contraintes du marché local réunionnais.", imageSrc: "http://img.b2bpic.net/free-photo/warehouse-worker-checking-inventory_23-2152001550.jpg?_wi=2" },
{ title: "Normes Strictes", description: "Tous nos EPI répondent aux dernières normes européennes de sécurité.", imageSrc: "http://img.b2bpic.net/free-photo/manual-worker-with-face-mask-working-carpentry-warehouse-coronavirus-pandemic_637285-11777.jpg" }, { title: "Normes Strictes", description: "Tous nos EPI répondent aux dernières normes européennes de sécurité.", imageSrc: "http://img.b2bpic.net/free-photo/manual-worker-with-face-mask-working-carpentry-warehouse-coronavirus-pandemic_637285-11777.jpg" },
{ title: "Stock Permanent", description: "Un large choix disponible immédiatement pour vos chantiers.", imageSrc: "http://img.b2bpic.net/free-photo/engineers-industry-40-industrial-plant-controlling-automated-machinery_482257-120564.jpg" }, { title: "Stock Permanent", description: "Un large choix disponible immédiatement pour vos chantiers.", imageSrc: "http://img.b2bpic.net/free-photo/engineers-industry-40-industrial-plant-controlling-automated-machinery_482257-120564.jpg" },
]} ]}
@@ -136,42 +141,43 @@ Nos solutions d'EPI certifiées protègent vos collaborateurs et assurent la con
</div> </div>
<div id="testimonials" data-section="testimonials"> <div id="testimonials" data-section="testimonials">
<TestimonialCardTwelve <TestimonialCardOne
useInvertedBackground={true} title="Ce que nos partenaires disent"
animationType="blur-reveal"
gridVariant="uniform-all-items-equal"
useInvertedBackground={false}
description="Retours d'expérience"
textboxLayout="default"
testimonials={[ testimonials={[
{ id: "t1", name: "Jean Dupont", imageSrc: "http://img.b2bpic.net/free-photo/medium-shot-plus-size-man-working-construction_23-2150772851.jpg" }, { id: "t1", name: "Jean Dupont", role: "Chef de chantier", company: "BTP 974", rating: 5, imageSrc: "http://img.b2bpic.net/free-photo/medium-shot-plus-size-man-working-construction_23-2150772851.jpg" },
{ id: "t2", name: "Marc Martin", imageSrc: "http://img.b2bpic.net/free-photo/woman-wearing-special-industrial-protective-equipment_23-2148991969.jpg" }, { id: "t2", name: "Marc Martin", role: "Responsable Sécurité", company: "SecurPro", rating: 5, imageSrc: "http://img.b2bpic.net/free-photo/woman-wearing-special-industrial-protective-equipment_23-2148991969.jpg" },
{ id: "t3", name: "Sophie Leroy", imageSrc: "http://img.b2bpic.net/free-photo/close-up-portrait-engineer-talking-phone_23-2148233674.jpg" }, { id: "t3", name: "Sophie Leroy", role: "Ingénieure", company: "BatirRéunion", rating: 5, imageSrc: "http://close-up-portrait-engineer-talking-phone_23-2148233674.jpg" },
{ id: "t4", name: "Lucie Bernard", imageSrc: "http://img.b2bpic.net/free-photo/male-worker-with-arms-crossed-standing-factory_107420-96042.jpg" },
{ id: "t5", name: "Pierre Vidal", imageSrc: "http://img.b2bpic.net/free-photo/front-view-smiley-young-man-with-helmet_23-2148269289.jpg" },
]} ]}
cardTitle="Ce que nos partenaires disent"
cardTag="Témoignages"
cardAnimation="slide-up"
/> />
</div> </div>
<div id="contact" data-section="contact"> <div id="contact" data-section="contact">
<ContactCenter <ContactSplitForm
tag="Contact" title="Nous contacter"
title="Obtenez votre devis personnalisé en 24h" description="Envoyez-nous vos besoins, nous y répondrons sous 24h."
description="Nous nous engageons à traiter vos demandes rapidement pour assurer votre sécurité." inputs={[
background={{ variant: "gradient-bars" }} { name: "name", type: "text", placeholder: "Votre Nom" },
useInvertedBackground={true} { name: "email", type: "email", placeholder: "Votre Email" },
{ name: "title", type: "text", placeholder: "Votre Job / Taille Entreprise" }
]}
imageSrc="https://webuild-dev.s3.eu-north-1.amazonaws.com/users/user_3Df1ETXUvuyYPxkhnyZJKVSXGQj/chantier-1778660616866-4fd2157e.png?_wi=2"
useInvertedBackground={false}
/> />
</div> </div>
<div id="footer" data-section="footer"> <div id="footer" data-section="footer">
<FooterLogoEmphasis <FooterLogoReveal
logoText="SAE Réunion" logoText="SAE Réunion"
columns={[ leftLink={{ text: "Mentions Légales" }}
{ items: [{ label: "Accueil", href: "#hero" }, { label: "Produits", href: "#products" }] }, rightLink={{ text: "Confidentialité" }}
{ items: [{ label: "À Propos", href: "#about" }, { label: "Contact", href: "#contact" }] },
{ items: [{ label: "Mentions Légales" }, { label: "Confidentialité" }] },
]}
/> />
</div> </div>
</ReactLenis> </ReactLenis>
</ThemeProvider> </ThemeProvider>
); );
} }