Merge version_2_1781549841937 into main #1

Merged
bender merged 1 commits from version_2_1781549841937 into main 2026-06-15 18:59:13 +00:00
10 changed files with 315 additions and 174 deletions

View File

@@ -1,190 +1,42 @@
import { StyleProvider } from "@/components/ui/StyleProvider";
import HeroTiltedCards from "@/components/sections/hero/HeroTiltedCards";
import AboutMediaOverlay from "@/components/sections/about/AboutMediaOverlay";
import ProductVariantCards from "@/components/sections/product/ProductVariantCards";
import FeaturesRevealCards from "@/components/sections/features/FeaturesRevealCards";
import TeamOverlayCards from "@/components/sections/team/TeamOverlayCards";
import MetricsIconCards from "@/components/sections/metrics/MetricsIconCards";
import TestimonialSplitCards from "@/components/sections/testimonial/TestimonialSplitCards";
import ContactCta from "@/components/sections/contact/ContactCta";
// AUTO-GENERATED shell by per-section-migrate.
// Section bodies live in ./<PageBase>/sections/<X>.tsx. Edit the section
// files directly. Non-block content (wrappers, non-inlinable sections) is
// preserved inline; extracted section blocks become <XSection/> refs.
export default function HomePage() {
import { StyleProvider } from "@/components/ui/StyleProvider";
import React from 'react';
import HeroSection from './HomePage/sections/Hero';
import AboutSection from './HomePage/sections/About';
import PropertiesSection from './HomePage/sections/Properties';
import ServicesSection from './HomePage/sections/Services';
import TeamSection from './HomePage/sections/Team';
import MetricsSection from './HomePage/sections/Metrics';
import TestimonialsSection from './HomePage/sections/Testimonials';
import ContactSection from './HomePage/sections/Contact';
import CredibilitySection from './HomePage/sections/Credibility';export default function HomePage(): React.JSX.Element {
return (
<StyleProvider siteBackground="none" heroBackground="gradientBars" buttonVariant="magnetic">
<div id="hero" data-section="hero">
<HeroTiltedCards
tag="Premium Collections"
title="Discover Luxury Living in Dubai"
description="Exclusive properties curated for discerning buyers. Experience the pinnacle of sophistication with our award-winning real estate portfolio."
primaryButton={{ text: "Explore Properties", href: "#properties" }}
secondaryButton={{ text: "Contact Agent", href: "#contact" }}
items={[
{ imageSrc: "https://storage.googleapis.com/webild/default/templates/real-estate/hero/hero1.webp" },
{ imageSrc: "https://storage.googleapis.com/webild/default/templates/real-estate/hero/hero2.webp" },
{ imageSrc: "https://storage.googleapis.com/webild/default/templates/real-estate/hero/hero3.webp" },
{ imageSrc: "https://storage.googleapis.com/webild/default/templates/real-estate/hero/hero4.webp" },
{ imageSrc: "https://storage.googleapis.com/webild/default/templates/real-estate/hero/hero5.webp" },
]}
/>
</div>
<HeroSection />
<CredibilitySection />
<div id="about" data-section="about">
<AboutMediaOverlay
tag="About Us"
title="Your Trusted Dubai Real Estate Partner"
description="With over 15 years of excellence in Dubai's luxury real estate market, we have established ourselves as the premier boutique agency for discerning international clientele. Our expert team specializes in sourcing and curating the finest properties across Dubai's most exclusive communities."
primaryButton={{ text: "Learn Our Story", href: "#services" }}
secondaryButton={{ text: "Contact Us", href: "#contact" }}
imageSrc="https://storage.googleapis.com/webild/default/templates/real-estate/about/about.webp"
/>
</div>
<AboutSection />
<div id="properties" data-section="properties">
<ProductVariantCards
tag="Exclusive Listings"
title="Featured Properties"
description="Handpicked luxury properties showcasing the finest real estate opportunities in Dubai's most prestigious locations."
primaryButton={{ text: "See all properties", href: "#properties" }}
products={[
{
name: "Palm Jumeirah Villa",
variant: "5 Bed Villa | Beachfront",
price: "AED 12,500,000",
imageSrc: "https://storage.googleapis.com/webild/default/templates/real-estate/properties/property1.webp",
},
{
name: "Downtown Dubai Penthouse",
variant: "4 Bed Penthouse | City View",
price: "AED 8,750,000",
imageSrc: "https://storage.googleapis.com/webild/default/templates/real-estate/properties/property2.webp",
},
{
name: "Emirates Hills Townhouse",
variant: "4 Bed Townhouse | Golf View",
price: "AED 6,200,000",
imageSrc: "https://storage.googleapis.com/webild/default/templates/real-estate/properties/property3.webp",
},
]}
/>
</div>
<PropertiesSection />
<div id="services" data-section="services">
<FeaturesRevealCards
tag="Professional Services"
title="Our Services & Expertise"
description="Comprehensive real estate solutions tailored to meet your unique needs and aspirations."
items={[
{
title: "Property Selection",
description: "Exclusive access to off-market and hand-selected luxury properties.",
imageSrc: "https://storage.googleapis.com/webild/default/templates/real-estate/services/service1.webp",
},
{
title: "Investment Advisory",
description: "Expert insights into market trends and investment opportunities.",
imageSrc: "https://storage.googleapis.com/webild/default/templates/real-estate/services/service2.webp",
},
{
title: "Negotiation & Closing",
description: "Strategic negotiation and seamless transaction management.",
imageSrc: "https://storage.googleapis.com/webild/default/templates/real-estate/services/service3.webp",
},
{
title: "Legal Compliance",
description: "Full support with documentation, permits, and regulatory compliance.",
imageSrc: "https://storage.googleapis.com/webild/default/templates/real-estate/services/service4.webp",
},
]}
/>
</div>
<ServicesSection />
<div id="team" data-section="team">
<TeamOverlayCards
tag="Our Leadership"
title="Executive Team"
description="Meet the visionary leaders guiding Luxe Properties with expertise and dedication."
members={[
{
name: "Hassan Al-Maktoum",
role: "CEO",
imageSrc: "https://storage.googleapis.com/webild/default/templates/real-estate/team/team1.webp",
},
{
name: "Layla Al-Mansoori",
role: "COO",
imageSrc: "https://storage.googleapis.com/webild/default/templates/real-estate/team/team2.webp",
},
{
name: "Marcus Wellington",
role: "CIO",
imageSrc: "https://storage.googleapis.com/webild/default/templates/real-estate/team/team3.webp",
},
]}
/>
</div>
<TeamSection />
<div id="metrics" data-section="metrics">
<MetricsIconCards
tag="Track Record"
title="By The Numbers"
description="Our proven track record speaks to our commitment and success in Dubai's luxury real estate market."
metrics={[
{ icon: "Home", title: "Properties Sold", value: "450+" },
{ icon: "Users", title: "Satisfied Clients", value: "650+" },
{ icon: "DollarSign", title: "Total Value", value: "$2.3B" },
{ icon: "TrendingUp", title: "Countries", value: "45" },
]}
/>
</div>
<MetricsSection />
<div id="testimonials" data-section="testimonials">
<TestimonialSplitCards
tag="Client Testimonials"
title="What Our Clients Say"
description="Experience through the words of satisfied buyers and investors who found their dream properties with us."
testimonials={[
{
tag: "Premium Portfolio",
title: "Exceptional Service & Market Expertise",
quote: "The team at Luxe Properties demonstrated outstanding knowledge of the Dubai market. Their negotiation skills saved me significant time and money. I would not hesitate to recommend them for any luxury property transaction.",
name: "Ahmed Al Mansouri",
date: "September 2024",
avatarImageSrc: "https://storage.googleapis.com/webild/default/templates/real-estate/testimonials/avatar1.webp",
imageSrc: "https://storage.googleapis.com/webild/default/templates/real-estate/testimonials/testimonial1.webp",
},
{
tag: "Penthouse Collection",
title: "A Smooth & Sophisticated Experience",
quote: "Finding a penthouse that matched my exacting standards seemed impossible, yet within weeks, the team presented three exceptional options. Their professionalism and attention to detail were impeccable throughout.",
name: "Sarah Johnson",
date: "August 2024",
avatarImageSrc: "https://storage.googleapis.com/webild/default/templates/real-estate/testimonials/avatar2.webp",
imageSrc: "https://storage.googleapis.com/webild/default/templates/real-estate/testimonials/testimonial2.webp",
},
{
tag: "Investment Advisory",
title: "Trusted Partner for International Clients",
quote: "As a foreign investor, I appreciated the comprehensive legal and financial guidance. The team navigated complex regulations effortlessly, allowing me to invest with complete confidence.",
name: "Michael Chen",
date: "July 2024",
avatarImageSrc: "https://storage.googleapis.com/webild/default/templates/real-estate/testimonials/avatar3.webp",
imageSrc: "https://storage.googleapis.com/webild/default/templates/real-estate/testimonials/testimonial3.webp",
},
]}
/>
</div>
<TestimonialsSection />
<div id="contact" data-section="contact">
<ContactCta
tag="Get In Touch"
text="Ready to Find Your Dream Property?"
primaryButton={{ text: "Schedule Consultation", href: "#contact" }}
secondaryButton={{ text: "Browse Listings", href: "#properties" }}
/>
</div>
<ContactSection />
</StyleProvider>

View File

@@ -0,0 +1,20 @@
// AUTO-GENERATED by per-section-migrate. Edit freely — Bob will treat this
// file as the canonical source for the "about" section.
import React from 'react';
import AboutMediaOverlay from "@/components/sections/about/AboutMediaOverlay";
export default function AboutSection(): React.JSX.Element {
return (
<div id="about" data-section="about">
<AboutMediaOverlay
tag="About Us"
title="Your Trusted Dubai Real Estate Partner"
description="With over 15 years of excellence in Dubai's luxury real estate market, we have established ourselves as the premier boutique agency for discerning international clientele. Our expert team specializes in sourcing and curating the finest properties across Dubai's most exclusive communities."
primaryButton={{ text: "Learn Our Story", href: "#services" }}
secondaryButton={{ text: "Contact Us", href: "#contact" }}
imageSrc="https://storage.googleapis.com/webild/default/templates/real-estate/about/about.webp"
/>
</div>
);
}

View File

@@ -0,0 +1,18 @@
// AUTO-GENERATED by per-section-migrate. Edit freely — Bob will treat this
// file as the canonical source for the "contact" section.
import React from 'react';
import ContactCta from "@/components/sections/contact/ContactCta";
export default function ContactSection(): React.JSX.Element {
return (
<div id="contact" data-section="contact">
<ContactCta
tag="Get In Touch"
text="Ready to Find Your Dream Property?"
primaryButton={{ text: "Schedule Consultation", href: "#contact" }}
secondaryButton={{ text: "Browse Listings", href: "#properties" }}
/>
</div>
);
}

View File

@@ -0,0 +1,45 @@
import TextAnimation from '@/components/ui/TextAnimation';
import ScrollReveal from '@/components/ui/ScrollReveal';
import LoopCarousel from '@/components/ui/LoopCarousel';
export default function CredibilitySection() {
const recognitions = [
"Forbes Global Properties",
"Christie's International Real Estate",
"The Wall Street Journal",
"Luxury Portfolio International",
"Best Luxury Brokerage 2023",
"Architectural Digest",
"Leading Real Estate Companies of the World"
];
return (
<section className="relative w-full py-16 bg-card border-y border-border/5 overflow-hidden" data-webild-section="credibility">
<div className="w-content-width mx-auto px-4 md:px-8 mb-10 text-center">
<ScrollReveal variant="fade">
<TextAnimation
text="Industry Recognition & Memberships"
variant="fade"
tag="h2"
className="text-sm font-semibold text-muted-foreground uppercase tracking-widest"
gradientText={false}
/>
</ScrollReveal>
</div>
<div className="w-full">
<LoopCarousel>
<div className="flex items-center gap-16 md:gap-24 px-8 md:px-12">
{recognitions.map((item, i) => (
<div key={i} className="flex-shrink-0 flex items-center justify-center">
<span className="text-xl md:text-2xl font-serif text-foreground/70 whitespace-nowrap">
{item}
</span>
</div>
))}
</div>
</LoopCarousel>
</div>
</section>
);
}

View File

@@ -0,0 +1,26 @@
// AUTO-GENERATED by per-section-migrate. Edit freely — Bob will treat this
// file as the canonical source for the "hero" section.
import React from 'react';
import HeroTiltedCards from "@/components/sections/hero/HeroTiltedCards";
export default function HeroSection(): React.JSX.Element {
return (
<div id="hero" data-section="hero">
<HeroTiltedCards
tag="Premium Collections"
title="Discover Luxury Living in Dubai"
description="Exclusive properties curated for discerning buyers. Experience the pinnacle of sophistication with our award-winning real estate portfolio."
primaryButton={{ text: "Explore Properties", href: "#properties" }}
secondaryButton={{ text: "Contact Agent", href: "#contact" }}
items={[
{ imageSrc: "https://storage.googleapis.com/webild/default/templates/real-estate/hero/hero1.webp" },
{ imageSrc: "https://storage.googleapis.com/webild/default/templates/real-estate/hero/hero2.webp" },
{ imageSrc: "https://storage.googleapis.com/webild/default/templates/real-estate/hero/hero3.webp" },
{ imageSrc: "https://storage.googleapis.com/webild/default/templates/real-estate/hero/hero4.webp" },
{ imageSrc: "https://storage.googleapis.com/webild/default/templates/real-estate/hero/hero5.webp" },
]}
/>
</div>
);
}

View File

@@ -0,0 +1,23 @@
// AUTO-GENERATED by per-section-migrate. Edit freely — Bob will treat this
// file as the canonical source for the "metrics" section.
import React from 'react';
import MetricsIconCards from "@/components/sections/metrics/MetricsIconCards";
export default function MetricsSection(): React.JSX.Element {
return (
<div id="metrics" data-section="metrics">
<MetricsIconCards
tag="Track Record"
title="By The Numbers"
description="Our proven track record speaks to our commitment and success in Dubai's luxury real estate market."
metrics={[
{ icon: "Home", title: "Properties Sold", value: "450+" },
{ icon: "Users", title: "Satisfied Clients", value: "650+" },
{ icon: "DollarSign", title: "Total Value", value: "$2.3B" },
{ icon: "TrendingUp", title: "Countries", value: "45" },
]}
/>
</div>
);
}

View File

@@ -0,0 +1,38 @@
// AUTO-GENERATED by per-section-migrate. Edit freely — Bob will treat this
// file as the canonical source for the "properties" section.
import React from 'react';
import ProductVariantCards from "@/components/sections/product/ProductVariantCards";
export default function PropertiesSection(): React.JSX.Element {
return (
<div id="properties" data-section="properties">
<ProductVariantCards
tag="Exclusive Listings"
title="Featured Properties"
description="Handpicked luxury properties showcasing the finest real estate opportunities in Dubai's most prestigious locations."
primaryButton={{ text: "See all properties", href: "#properties" }}
products={[
{
name: "Palm Jumeirah Villa",
variant: "5 Bed Villa | Beachfront",
price: "AED 12,500,000",
imageSrc: "https://storage.googleapis.com/webild/default/templates/real-estate/properties/property1.webp",
},
{
name: "Downtown Dubai Penthouse",
variant: "4 Bed Penthouse | City View",
price: "AED 8,750,000",
imageSrc: "https://storage.googleapis.com/webild/default/templates/real-estate/properties/property2.webp",
},
{
name: "Emirates Hills Townhouse",
variant: "4 Bed Townhouse | Golf View",
price: "AED 6,200,000",
imageSrc: "https://storage.googleapis.com/webild/default/templates/real-estate/properties/property3.webp",
},
]}
/>
</div>
);
}

View File

@@ -0,0 +1,39 @@
// AUTO-GENERATED by per-section-migrate. Edit freely — Bob will treat this
// file as the canonical source for the "services" section.
import React from 'react';
import FeaturesRevealCards from "@/components/sections/features/FeaturesRevealCards";
export default function ServicesSection(): React.JSX.Element {
return (
<div id="services" data-section="services">
<FeaturesRevealCards
tag="Professional Services"
title="Our Services & Expertise"
description="Comprehensive real estate solutions tailored to meet your unique needs and aspirations."
items={[
{
title: "Property Selection",
description: "Exclusive access to off-market and hand-selected luxury properties.",
imageSrc: "https://storage.googleapis.com/webild/default/templates/real-estate/services/service1.webp",
},
{
title: "Investment Advisory",
description: "Expert insights into market trends and investment opportunities.",
imageSrc: "https://storage.googleapis.com/webild/default/templates/real-estate/services/service2.webp",
},
{
title: "Negotiation & Closing",
description: "Strategic negotiation and seamless transaction management.",
imageSrc: "https://storage.googleapis.com/webild/default/templates/real-estate/services/service3.webp",
},
{
title: "Legal Compliance",
description: "Full support with documentation, permits, and regulatory compliance.",
imageSrc: "https://storage.googleapis.com/webild/default/templates/real-estate/services/service4.webp",
},
]}
/>
</div>
);
}

View File

@@ -0,0 +1,34 @@
// AUTO-GENERATED by per-section-migrate. Edit freely — Bob will treat this
// file as the canonical source for the "team" section.
import React from 'react';
import TeamOverlayCards from "@/components/sections/team/TeamOverlayCards";
export default function TeamSection(): React.JSX.Element {
return (
<div id="team" data-section="team">
<TeamOverlayCards
tag="Our Leadership"
title="Executive Team"
description="Meet the visionary leaders guiding Luxe Properties with expertise and dedication."
members={[
{
name: "Hassan Al-Maktoum",
role: "CEO",
imageSrc: "https://storage.googleapis.com/webild/default/templates/real-estate/team/team1.webp",
},
{
name: "Layla Al-Mansoori",
role: "COO",
imageSrc: "https://storage.googleapis.com/webild/default/templates/real-estate/team/team2.webp",
},
{
name: "Marcus Wellington",
role: "CIO",
imageSrc: "https://storage.googleapis.com/webild/default/templates/real-estate/team/team3.webp",
},
]}
/>
</div>
);
}

View File

@@ -0,0 +1,46 @@
// AUTO-GENERATED by per-section-migrate. Edit freely — Bob will treat this
// file as the canonical source for the "testimonials" section.
import React from 'react';
import TestimonialSplitCards from "@/components/sections/testimonial/TestimonialSplitCards";
export default function TestimonialsSection(): React.JSX.Element {
return (
<div id="testimonials" data-section="testimonials">
<TestimonialSplitCards
tag="Client Testimonials"
title="What Our Clients Say"
description="Experience through the words of satisfied buyers and investors who found their dream properties with us."
testimonials={[
{
tag: "Premium Portfolio",
title: "Exceptional Service & Market Expertise",
quote: "The team at Luxe Properties demonstrated outstanding knowledge of the Dubai market. Their negotiation skills saved me significant time and money. I would not hesitate to recommend them for any luxury property transaction.",
name: "Ahmed Al Mansouri",
date: "September 2024",
avatarImageSrc: "https://storage.googleapis.com/webild/default/templates/real-estate/testimonials/avatar1.webp",
imageSrc: "https://storage.googleapis.com/webild/default/templates/real-estate/testimonials/testimonial1.webp",
},
{
tag: "Penthouse Collection",
title: "A Smooth & Sophisticated Experience",
quote: "Finding a penthouse that matched my exacting standards seemed impossible, yet within weeks, the team presented three exceptional options. Their professionalism and attention to detail were impeccable throughout.",
name: "Sarah Johnson",
date: "August 2024",
avatarImageSrc: "https://storage.googleapis.com/webild/default/templates/real-estate/testimonials/avatar2.webp",
imageSrc: "https://storage.googleapis.com/webild/default/templates/real-estate/testimonials/testimonial2.webp",
},
{
tag: "Investment Advisory",
title: "Trusted Partner for International Clients",
quote: "As a foreign investor, I appreciated the comprehensive legal and financial guidance. The team navigated complex regulations effortlessly, allowing me to invest with complete confidence.",
name: "Michael Chen",
date: "July 2024",
avatarImageSrc: "https://storage.googleapis.com/webild/default/templates/real-estate/testimonials/avatar3.webp",
imageSrc: "https://storage.googleapis.com/webild/default/templates/real-estate/testimonials/testimonial3.webp",
},
]}
/>
</div>
);
}