Merge version_3 into main #5

Merged
bender merged 4 commits from version_3 into main 2026-03-09 04:01:19 +00:00
4 changed files with 192 additions and 56 deletions

View File

@@ -0,0 +1,17 @@
"use client";
import { useLanguage } from "@/app/context/LanguageContext";
export function LanguageToggle() {
const { language, setLanguage, t } = useLanguage();
return (
<button
onClick={() => setLanguage(language === "en" ? "fr" : "en")}
className="flex items-center gap-1 px-3 py-2 rounded-md text-sm font-medium transition-all hover:opacity-80"
aria-label={`Switch language to ${language === "en" ? "French" : "English"}`}
>
{language === "en" ? t("lang.fr") : t("lang.en")}
</button>
);
}

File diff suppressed because one or more lines are too long

View File

@@ -20,7 +20,7 @@ export default function RootLayout({
}) {
return (
<html lang="en">
<body className={`${geist.variable} ${geistMono.variable} antialiased`}>
<body className={`${geist.variable} ${geistMono.variable} antialiased`} suppressHydrationWarning>
{children}
<script

View File

@@ -1,4 +1,4 @@
"use client"
"use client";
import { ThemeProvider } from "@/providers/themeProvider/ThemeProvider";
import NavbarStyleApple from '@/components/navbar/NavbarStyleApple/NavbarStyleApple';
@@ -11,8 +11,13 @@ import MetricCardSeven from '@/components/sections/metrics/MetricCardSeven';
import ContactCenter from '@/components/sections/contact/ContactCenter';
import FooterCard from '@/components/sections/footer/FooterCard';
import { Sparkles } from 'lucide-react';
import { LanguageProvider } from "@/app/context/LanguageContext";
import { LanguageToggle } from "@/app/components/LanguageToggle";
import { useLanguage } from "@/app/context/LanguageContext";
function LandingPageContent() {
const { t } = useLanguage();
export default function LandingPage() {
return (
<ThemeProvider
defaultButtonVariant="directional-hover"
@@ -30,23 +35,24 @@ export default function LandingPage() {
<NavbarStyleApple
brandName="Aménagements Tropiks"
navItems={[
{ name: "About", id: "about" },
{ name: "Portfolio", id: "portfolio" },
{ name: "Services", id: "services" },
{ name: "Testimonials", id: "testimonials" },
{ name: "Contact", id: "contact" }
{ name: t("nav.about"), id: "about" },
{ name: t("nav.portfolio"), id: "portfolio" },
{ name: t("nav.services"), id: "services" },
{ name: t("nav.testimonials"), id: "testimonials" },
{ name: t("nav.contact"), id: "contact" },
{ name: "", id: "lang-toggle", component: <LanguageToggle /> }
]}
/>
</div>
<div id="hero" data-section="hero">
<HeroLogoBillboardSplit
logoText="AMÉNAGEMENTS TROPIKS"
description="Transform your outdoor space into a premium sanctuary. Luxury landscape design and installation for discerning homeowners across the region."
logoText={t("hero.logo")}
description={t("hero.description")}
background={{ variant: "radial-gradient" }}
buttons={[
{ text: "Request Your Custom Quote", href: "#contact" },
{ text: "View Our Portfolio", href: "#portfolio" }
{ text: t("hero.button1"), href: "#contact" },
{ text: t("hero.button2"), href: "#portfolio" }
]}
layoutOrder="default"
imageSrc="http://img.b2bpic.net/free-photo/umbrella-chair-around-swimming-pool-neary-sea-ocean-beach-with-blue-sky-white-cloud_74190-8487.jpg"
@@ -59,40 +65,60 @@ export default function LandingPage() {
<div id="about" data-section="about">
<TextAbout
tag="About Us"
title="Crafting Bespoke Tropical Landscapes for Luxury Homes"
tag={t("about.tag")}
title={t("about.title")}
useInvertedBackground={true}
buttons={[
{ text: "Learn More", href: "#services" }
{ text: t("about.button"), href: "#services" }
]}
/>
</div>
<div id="portfolio" data-section="portfolio">
<ProductCardTwo
title="Our Portfolio"
description="Curated selection of completed luxury landscape transformations showcasing our craftsmanship and design expertise."
tag="Featured Projects"
title={t("portfolio.title")}
description={t("portfolio.description")}
tag={t("portfolio.tag")}
products={[
{
id: "project-1", brand: "Residence Portfolio", name: "Estate Garden Transformation", price: "Design + Install", rating: 5,
reviewCount: "Completed 2024", imageSrc: "http://img.b2bpic.net/free-photo/business-district-with-green_1359-59.jpg", imageAlt: "Before and after luxury garden transformation"
id: "project-1", brand: t("portfolio.project1.brand"),
name: t("portfolio.project1.name"),
price: t("portfolio.project1.price"),
rating: 5,
reviewCount: t("portfolio.project1.review"),
imageSrc: "http://img.b2bpic.net/free-photo/business-district-with-green_1359-59.jpg", imageAlt: "Before and after luxury garden transformation"
},
{
id: "project-2", brand: "Residence Portfolio", name: "Tropical Paradise Installation", price: "Water Features", rating: 5,
reviewCount: "Completed 2024", imageSrc: "http://img.b2bpic.net/free-photo/aerial-shot-beautiful-skatepark-daytime_181624-21255.jpg?_wi=1", imageAlt: "Finished luxury tropical garden with water features"
id: "project-2", brand: t("portfolio.project2.brand"),
name: t("portfolio.project2.name"),
price: t("portfolio.project2.price"),
rating: 5,
reviewCount: t("portfolio.project2.review"),
imageSrc: "http://img.b2bpic.net/free-photo/aerial-shot-beautiful-skatepark-daytime_181624-21255.jpg?_wi=1", imageAlt: "Finished luxury tropical garden with water features"
},
{
id: "project-3", brand: "Residence Portfolio", name: "Exotic Garden Design", price: "Planting + Design", rating: 5,
reviewCount: "Completed 2023", imageSrc: "http://img.b2bpic.net/free-photo/close-up-male-female-worker-working-together-garden_23-2148165265.jpg?_wi=1", imageAlt: "High-end tropical landscape with exotic plants"
id: "project-3", brand: t("portfolio.project3.brand"),
name: t("portfolio.project3.name"),
price: t("portfolio.project3.price"),
rating: 5,
reviewCount: t("portfolio.project3.review"),
imageSrc: "http://img.b2bpic.net/free-photo/close-up-male-female-worker-working-together-garden_23-2148165265.jpg?_wi=1", imageAlt: "High-end tropical landscape with exotic plants"
},
{
id: "project-4", brand: "Residence Portfolio", name: "Hardscape & Planting", price: "Hardscaping", rating: 5,
reviewCount: "Completed 2023", imageSrc: "http://img.b2bpic.net/free-photo/beautiful-luxury-swimming-pool-with-palm-tree_1339-4858.jpg?_wi=1", imageAlt: "Luxury landscape with hardscape elements"
id: "project-4", brand: t("portfolio.project4.brand"),
name: t("portfolio.project4.name"),
price: t("portfolio.project4.price"),
rating: 5,
reviewCount: t("portfolio.project4.review"),
imageSrc: "http://img.b2bpic.net/free-photo/beautiful-luxury-swimming-pool-with-palm-tree_1339-4858.jpg?_wi=1", imageAlt: "Luxury landscape with hardscape elements"
},
{
id: "project-5", brand: "Residence Portfolio", name: "Premium Installation Detail", price: "Stonework + Design", rating: 5,
reviewCount: "Completed 2024", imageSrc: "http://img.b2bpic.net/free-photo/chinese-garden-n-zurich_1112-1146.jpg?_wi=1", imageAlt: "Upscale tropical landscape with stonework"
id: "project-5", brand: t("portfolio.project5.brand"),
name: t("portfolio.project5.name"),
price: t("portfolio.project5.price"),
rating: 5,
reviewCount: t("portfolio.project5.review"),
imageSrc: "http://img.b2bpic.net/free-photo/chinese-garden-n-zurich_1112-1146.jpg?_wi=1", imageAlt: "Upscale tropical landscape with stonework"
}
]}
gridVariant="three-columns-all-equal-width"
@@ -104,18 +130,22 @@ export default function LandingPage() {
<div id="services" data-section="services">
<FeatureCardNine
title="Our Services"
description="Comprehensive landscape solutions tailored to your vision and outdoor space."
tag="Premium Services"
title={t("services.title")}
description={t("services.description")}
tag={t("services.tag")}
features={[
{
id: 1,
title: "Custom Design Consultation", description: "Personalized landscape design planning with detailed renderings and project timeline. We work closely with you to understand your vision, lifestyle, and aesthetic preferences.", phoneOne: { imageSrc: "http://img.b2bpic.net/free-photo/aerial-shot-beautiful-skatepark-daytime_181624-21255.jpg?_wi=2" },
title: t("services.service1.title"),
description: t("services.service1.description"),
phoneOne: { imageSrc: "http://img.b2bpic.net/free-photo/aerial-shot-beautiful-skatepark-daytime_181624-21255.jpg?_wi=2" },
phoneTwo: { imageSrc: "http://img.b2bpic.net/free-photo/close-up-male-female-worker-working-together-garden_23-2148165265.jpg?_wi=2" }
},
{
id: 2,
title: "Installation & Hardscaping", description: "Expert installation of custom hardscape elements including patios, water features, stonework, and tropical plant installations. Our craftsmen deliver precision and durability.", phoneOne: { imageSrc: "http://img.b2bpic.net/free-photo/beautiful-luxury-swimming-pool-with-palm-tree_1339-4858.jpg?_wi=2" },
title: t("services.service2.title"),
description: t("services.service2.description"),
phoneOne: { imageSrc: "http://img.b2bpic.net/free-photo/beautiful-luxury-swimming-pool-with-palm-tree_1339-4858.jpg?_wi=2" },
phoneTwo: { imageSrc: "http://img.b2bpic.net/free-photo/chinese-garden-n-zurich_1112-1146.jpg?_wi=2" }
}
]}
@@ -128,27 +158,45 @@ export default function LandingPage() {
<div id="testimonials" data-section="testimonials">
<TestimonialCardTwo
title="Client Testimonials"
description="Hear from our satisfied clients about their landscape transformation experience and results."
tag="Reviews"
title={t("testimonials.title")}
description={t("testimonials.description")}
tag={t("testimonials.tag")}
testimonials={[
{
id: "1", name: "Catherine Mitchell", role: "Homeowner", testimonial: "Aménagements Tropiks completely transformed our backyard into the tropical sanctuary we'd always dreamed of. Their attention to detail and commitment to excellence was outstanding throughout the entire project.", imageSrc: "http://img.b2bpic.net/free-photo/closeup-happy-middle-aged-business-leader_1262-4823.jpg", imageAlt: "Catherine Mitchell"
id: "1", name: t("testimonials.client1.name"),
role: t("testimonials.client1.role"),
testimonial: t("testimonials.client1.text"),
imageSrc: "http://img.b2bpic.net/free-photo/closeup-happy-middle-aged-business-leader_1262-4823.jpg", imageAlt: t("testimonials.client1.name")
},
{
id: "2", name: "Robert Chen", role: "Property Developer", testimonial: "Working with their team on multiple residential developments has been exceptional. They deliver premium landscape solutions on time and exceed every expectation. Highly recommended.", imageSrc: "http://img.b2bpic.net/free-photo/serious-executive-with-short-hair-crossed-arms_1149-89.jpg", imageAlt: "Robert Chen"
id: "2", name: t("testimonials.client2.name"),
role: t("testimonials.client2.role"),
testimonial: t("testimonials.client2.text"),
imageSrc: "http://img.b2bpic.net/free-photo/serious-executive-with-short-hair-crossed-arms_1149-89.jpg", imageAlt: t("testimonials.client2.name")
},
{
id: "3", name: "Stephanie Laurent", role: "Real Estate Executive", testimonial: "The landscapes they create for our luxury properties significantly increase property value and buyer appeal. They understand premium design and execution perfectly.", imageSrc: "http://img.b2bpic.net/free-photo/portrait-happy-mature-businessman-using-digital-tablet-restaurant_23-2147955278.jpg", imageAlt: "Stephanie Laurent"
id: "3", name: t("testimonials.client3.name"),
role: t("testimonials.client3.role"),
testimonial: t("testimonials.client3.text"),
imageSrc: "http://img.b2bpic.net/free-photo/portrait-happy-mature-businessman-using-digital-tablet-restaurant_23-2147955278.jpg", imageAlt: t("testimonials.client3.name")
},
{
id: "4", name: "Michael Richardson", role: "Homeowner", testimonial: "From concept to completion, their team was professional, creative, and detail-oriented. Our new landscape is even more beautiful than the renderings they provided.", imageSrc: "http://img.b2bpic.net/free-photo/skeptical-senior-businesswoman-looking-camera_1262-5592.jpg", imageAlt: "Michael Richardson"
id: "4", name: t("testimonials.client4.name"),
role: t("testimonials.client4.role"),
testimonial: t("testimonials.client4.text"),
imageSrc: "http://img.b2bpic.net/free-photo/skeptical-senior-businesswoman-looking-camera_1262-5592.jpg", imageAlt: t("testimonials.client4.name")
},
{
id: "5", name: "Victoria Moreno", role: "Estate Owner", testimonial: "The quality of their craftsmanship, plant selection, and landscape design is unmatched in the region. They truly are artists in their field.", imageSrc: "http://img.b2bpic.net/free-photo/man-portrait-posing-loft-modern-space_158595-5365.jpg", imageAlt: "Victoria Moreno"
id: "5", name: t("testimonials.client5.name"),
role: t("testimonials.client5.role"),
testimonial: t("testimonials.client5.text"),
imageSrc: "http://img.b2bpic.net/free-photo/man-portrait-posing-loft-modern-space_158595-5365.jpg", imageAlt: t("testimonials.client5.name")
},
{
id: "6", name: "James Sullivan", role: "Commercial Property Manager", testimonial: "Their expertise in tropical landscape design transformed our commercial properties into stunning outdoor environments that guests absolutely love.", imageSrc: "http://img.b2bpic.net/free-photo/woman-headphones-looking-camera_23-2147762341.jpg", imageAlt: "James Sullivan"
id: "6", name: t("testimonials.client6.name"),
role: t("testimonials.client6.role"),
testimonial: t("testimonials.client6.text"),
imageSrc: "http://img.b2bpic.net/free-photo/woman-headphones-looking-camera_23-2147762341.jpg", imageAlt: t("testimonials.client6.name")
}
]}
animationType="slide-up"
@@ -159,18 +207,39 @@ export default function LandingPage() {
<div id="metrics" data-section="metrics">
<MetricCardSeven
title="Our Impact"
description="Proven results delivering luxury landscape solutions across the region."
tag="By The Numbers"
title={t("metrics.title")}
description={t("metrics.description")}
tag={t("metrics.tag")}
metrics={[
{
id: "1", value: "250+", title: "Premium Projects Completed", items: ["Luxury residential estates", "Commercial properties", "Developer partnerships", "Award-winning designs"]
id: "1", value: t("metrics.metric1.value"),
title: t("metrics.metric1.title"),
items: [
t("metrics.metric1.item1"),
t("metrics.metric1.item2"),
t("metrics.metric1.item3"),
t("metrics.metric1.item4")
]
},
{
id: "2", value: "98%", title: "Client Satisfaction Rate", items: ["Repeat client base", "Referral driven growth", "Premium positioning", "Industry recognition"]
id: "2", value: t("metrics.metric2.value"),
title: t("metrics.metric2.title"),
items: [
t("metrics.metric2.item1"),
t("metrics.metric2.item2"),
t("metrics.metric2.item3"),
t("metrics.metric2.item4")
]
},
{
id: "3", value: "15+", title: "Years Industry Experience", items: ["Expert team leadership", "Proven craftsmanship", "Design innovation", "Trusted expertise"]
id: "3", value: t("metrics.metric3.value"),
title: t("metrics.metric3.title"),
items: [
t("metrics.metric3.item1"),
t("metrics.metric3.item2"),
t("metrics.metric3.item3"),
t("metrics.metric3.item4")
]
}
]}
animationType="slide-up"
@@ -181,25 +250,33 @@ export default function LandingPage() {
<div id="contact" data-section="contact">
<ContactCenter
tag="Get Started"
title="Request Your Custom Quote"
description="Let's discuss your vision and create a personalized landscape design plan. Contact our team for a consultation."
tag={t("contact.tag")}
title={t("contact.title")}
description={t("contact.description")}
tagIcon={Sparkles}
background={{ variant: "radial-gradient" }}
useInvertedBackground={false}
inputPlaceholder="your@email.com"
buttonText="Request Quote"
termsText="We respect your privacy. We'll contact you within 24 hours to discuss your landscape project."
inputPlaceholder={t("contact.placeholder")}
buttonText={t("contact.button")}
termsText={t("contact.terms")}
/>
</div>
<div id="footer" data-section="footer">
<FooterCard
logoText="Aménagements Tropiks"
copyrightText="© 2025 Aménagements Tropiks Inc. | Luxury Landscape Design & Installation"
logoText={t("footer.logo")}
copyrightText={t("footer.copyright")}
socialLinks={[]}
/>
</div>
</ThemeProvider>
);
}
export default function LandingPage() {
return (
<LanguageProvider>
<LandingPageContent />
</LanguageProvider>
);
}