36 Commits

Author SHA1 Message Date
6f70a4fe56 Update src/app/page.tsx 2026-02-19 05:25:49 +00:00
20828a3bc1 Update src/app/page.tsx 2026-02-19 05:18:21 +00:00
2446421201 Merge version_10 into main
Merge version_10 into main
2026-02-19 05:16:24 +00:00
70773f62c7 Update src/app/page.tsx 2026-02-19 05:16:20 +00:00
2cd823c3b4 Update src/app/layout.tsx 2026-02-19 05:16:19 +00:00
e4966fcd76 Merge version_9 into main
Merge version_9 into main
2026-02-19 05:12:15 +00:00
29ada469f1 Update src/app/page.tsx 2026-02-19 05:12:11 +00:00
35974ef697 Update src/app/layout.tsx 2026-02-19 05:12:10 +00:00
9edc509176 Update src/app/page.tsx 2026-02-19 05:07:40 +00:00
3ecf5cd576 Merge version_8 into main
Merge version_8 into main
2026-02-19 05:07:15 +00:00
9aa099ba6e Update src/app/page.tsx 2026-02-19 05:07:11 +00:00
ffb8a12e46 Merge version_8 into main
Merge version_8 into main
2026-02-19 05:04:58 +00:00
5e55889445 Update src/app/page.tsx 2026-02-19 05:04:54 +00:00
0a5feda129 Merge version_7 into main
Merge version_7 into main
2026-02-19 05:00:07 +00:00
5324217092 Update src/app/page.tsx 2026-02-19 05:00:03 +00:00
27a39cf14f Merge version_6 into main
Merge version_6 into main
2026-02-19 04:51:06 +00:00
40958aa0e5 Update src/app/page.tsx 2026-02-19 04:51:02 +00:00
140e36ec20 Update src/app/layout.tsx 2026-02-19 04:51:01 +00:00
4327d13904 Merge version_5 into main
Merge version_5 into main
2026-02-17 09:08:27 +00:00
4e9d918588 Update theme fonts 2026-02-17 09:08:23 +00:00
aed8958e46 Update theme fonts 2026-02-17 09:08:22 +00:00
e8689d05e8 Merge version_5 into main
Merge version_5 into main
2026-02-17 09:06:01 +00:00
73d3007e13 Update src/app/page.tsx 2026-02-17 09:05:57 +00:00
faa72fb8fb Merge version_4 into main
Merge version_4 into main
2026-02-17 09:00:19 +00:00
64c24e4ae9 Update src/app/page.tsx 2026-02-17 09:00:15 +00:00
7323266c35 Merge version_4 into main
Merge version_4 into main
2026-02-17 08:58:29 +00:00
f181d263d4 Update src/app/page.tsx 2026-02-17 08:58:25 +00:00
1fc0f54e6c Update src/app/layout.tsx 2026-02-17 08:58:24 +00:00
85ad5085c4 Merge version_3 into main
Merge version_3 into main
2026-02-17 08:55:56 +00:00
fb09b11965 Update src/app/page.tsx 2026-02-17 08:55:52 +00:00
b710200545 Merge version_2 into main
Merge version_2 into main
2026-02-17 08:54:07 +00:00
afcdd7b8d7 Update src/app/page.tsx 2026-02-17 08:54:02 +00:00
9be83ee93a Merge version_2 into main
Merge version_2 into main
2026-02-17 08:51:26 +00:00
f595d5bb54 Update src/app/shop/page.tsx 2026-02-17 08:51:22 +00:00
1ecfe6cdb7 Update src/app/shop/[id]/page.tsx 2026-02-17 08:51:21 +00:00
824cd1e21e Update src/app/page.tsx 2026-02-17 08:51:21 +00:00
5 changed files with 147 additions and 81 deletions

View File

@@ -1,50 +1,21 @@
import type { Metadata } from "next";
import { Ubuntu } from "next/font/google";
import { Inter } from "next/font/google";
import "./globals.css";
import { ServiceWrapper } from "@/components/ServiceWrapper";
import Tag from "@/tag/Tag";
const ubuntu = Ubuntu({
variable: "--font-ubuntu", subsets: ["latin"],
weight: ["300", "400", "500", "700"],
});
const inter = Inter({
variable: "--font-inter", subsets: ["latin"],
});
import type { Metadata } from 'next';
import './globals.css';
export const metadata: Metadata = {
title: "Luxury Real Estate Dubai | Premium Properties & Villas", description: "Discover exclusive luxury properties in Dubai. Award-winning boutique real estate agency specializing in premium villas, penthouses, and investment opportunities.", keywords: "luxury real estate Dubai, villas Dubai, penthouses, property investment, exclusive listings, Dubai real estate agent", robots: {
index: true,
follow: true
},
openGraph: {
title: "Luxury Real Estate Dubai | Premium Properties & Villas", description: "Discover exclusive luxury properties in Dubai. Award-winning boutique real estate agency specializing in premium villas, penthouses, and investment opportunities.", type: "website", siteName: "Luxe Properties", images: [
{
url: "https://img.b2bpic.net/free-photo/modern-spacious-room-with-large-panoramic-window_7502-7289.jpg", alt: "Luxury penthouse in Dubai Marina"
}
]
},
twitter: {
card: "summary_large_image", title: "Luxury Real Estate Dubai | Premium Properties", description: "Discover exclusive luxury properties and villas in Dubai's most prestigious locations.", images: ["https://img.b2bpic.net/free-photo/modern-spacious-room-with-large-panoramic-window_7502-7289.jpg"]
}
title: 'Luxe Properties Dubai | Luxury Real Estate',
description: 'Discover exclusive luxury properties in Dubai curated for discerning buyers and investors.',
};
export default function RootLayout({
children,
}: Readonly<{
}: {
children: React.ReactNode;
}>) {
}) {
return (
<html lang="en" suppressHydrationWarning>
<ServiceWrapper>
<body
className={`${ubuntu.variable} ${inter.variable} antialiased`}
>
<Tag />
{children}
<html lang="en">
<body>
{children}
<script
dangerouslySetInnerHTML={{
__html: `
@@ -438,6 +409,20 @@ export default function RootLayout({
originalContent = element.textContent;
element.contentEditable = 'true';
if (!element.dataset.webildOriginalWhiteSpace) {
const computedStyle = window.getComputedStyle(element);
element.dataset.webildOriginalWhiteSpace = computedStyle.whiteSpace;
element.dataset.webildOriginalWordWrap = computedStyle.wordWrap;
element.dataset.webildOriginalOverflowWrap = computedStyle.overflowWrap;
element.dataset.webildOriginalOverflow = computedStyle.overflow;
}
element.style.whiteSpace = 'pre-wrap';
element.style.wordWrap = 'break-word';
element.style.overflowWrap = 'break-word';
element.style.overflow = 'visible';
element.focus();
isEditing = true;
@@ -547,6 +532,23 @@ export default function RootLayout({
element.contentEditable = 'false';
isEditing = false;
if (element.dataset.webildOriginalWhiteSpace) {
element.style.whiteSpace = element.dataset.webildOriginalWhiteSpace === 'normal' ? '' : element.dataset.webildOriginalWhiteSpace;
delete element.dataset.webildOriginalWhiteSpace;
}
if (element.dataset.webildOriginalWordWrap) {
element.style.wordWrap = element.dataset.webildOriginalWordWrap === 'normal' ? '' : element.dataset.webildOriginalWordWrap;
delete element.dataset.webildOriginalWordWrap;
}
if (element.dataset.webildOriginalOverflowWrap) {
element.style.overflowWrap = element.dataset.webildOriginalOverflowWrap === 'normal' ? '' : element.dataset.webildOriginalOverflowWrap;
delete element.dataset.webildOriginalOverflowWrap;
}
if (element.dataset.webildOriginalOverflow) {
element.style.overflow = element.dataset.webildOriginalOverflow === 'visible' ? '' : element.dataset.webildOriginalOverflow;
delete element.dataset.webildOriginalOverflow;
}
if (element.dataset.beforeInputHandler === 'true') {
element.removeEventListener('beforeinput', () => {});
delete element.dataset.beforeInputHandler;
@@ -852,6 +854,9 @@ export default function RootLayout({
const handleScroll = () => {
if (!isActive) return;
if (isEditing) return;
if (selectedElement) {
makeUneditable(selectedElement, false);
selectedElement.classList.remove(selectedClass);
@@ -1225,6 +1230,31 @@ export default function RootLayout({
window.addEventListener('scroll', handleScroll, true);
window.addEventListener('message', handleMessage, true);
let lastPathname = window.location.pathname;
const notifyPageChange = () => {
window.parent.postMessage({
type: 'webild-page-changed',
data: { pathname: window.location.pathname }
}, '*');
};
window.addEventListener('popstate', () => {
if (lastPathname !== window.location.pathname) {
lastPathname = window.location.pathname;
notifyPageChange();
}
}, true);
const urlCheckInterval = setInterval(() => {
if (lastPathname !== window.location.pathname) {
lastPathname = window.location.pathname;
notifyPageChange();
}
}, 500);
notifyPageChange();
window.webildCleanup = () => {
isActive = false;
@@ -1235,6 +1265,10 @@ export default function RootLayout({
removeHoverOverlay();
removeElementTypeLabel();
if (urlCheckInterval) {
clearInterval(urlCheckInterval);
}
document.removeEventListener('mouseover', handleMouseOver, true);
document.removeEventListener('mouseout', handleMouseOut, true);
document.removeEventListener('click', handleClick, true);
@@ -1263,7 +1297,6 @@ export default function RootLayout({
}}
/>
</body>
</ServiceWrapper>
</html>
);
}

View File

@@ -1,16 +1,17 @@
"use client"
"use client";
import { ThemeProvider } from "@/providers/themeProvider/ThemeProvider";
import NavbarStyleCentered from '@/components/navbar/NavbarStyleCentered/NavbarStyleCentered';
import HeroBillboard from '@/components/sections/hero/HeroBillboard';
import HeroBillboardGallery from '@/components/sections/hero/HeroBillboardGallery';
import ProductCardFour from '@/components/sections/product/ProductCardFour';
import TextSplitAbout from '@/components/sections/about/TextSplitAbout';
import FeatureHoverPattern from '@/components/sections/feature/featureHoverPattern/FeatureHoverPattern';
import MediaAbout from '@/components/sections/about/MediaAbout';
import FeatureCardThree from '@/components/sections/feature/featureCardThree/FeatureCardThree';
import TeamCardOne from '@/components/sections/team/TeamCardOne';
import MetricCardThree from '@/components/sections/metrics/MetricCardThree';
import TestimonialCardFive from '@/components/sections/testimonial/TestimonialCardFive';
import ContactCTA from '@/components/sections/contact/ContactCTA';
import FooterSimple from '@/components/sections/footer/FooterSimple';
import { Sparkles, Home, Shield, Award, Star, Mail, TrendingUp, DollarSign, FileCheck, Building2, Users } from "lucide-react";
import { Sparkles, Home, Shield, Award, Star, Mail, TrendingUp, DollarSign, Users } from "lucide-react";
export default function LandingPage() {
return (
@@ -21,7 +22,7 @@ export default function LandingPage() {
contentWidth="mediumSmall"
sizing="mediumLarge"
background="none"
cardStyle="elevated"
cardStyle="glass-elevated"
primaryButtonStyle="inset-glow"
secondaryButtonStyle="radial-glow"
headingFontWeight="medium"
@@ -33,6 +34,7 @@ export default function LandingPage() {
{ name: "Properties", id: "properties" },
{ name: "About", id: "about" },
{ name: "Services", id: "services" },
{ name: "Team", id: "team" },
{ name: "Testimonials", id: "testimonials" },
{ name: "Contact", id: "contact" }
]}
@@ -41,18 +43,34 @@ export default function LandingPage() {
</div>
<div id="hero" data-section="hero">
<HeroBillboard
<HeroBillboardGallery
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."
background={{ variant: "plain" }}
background={{ variant: "gradient-bars" }}
tag="Premium Collections"
tagIcon={Sparkles}
buttons={[
{ text: "Explore Properties", href: "properties" },
{ text: "Contact Agent", href: "contact" }
]}
imageSrc="https://img.b2bpic.net/free-photo/modern-spacious-room-with-large-panoramic-window_7502-7289.jpg"
imageAlt="Luxury penthouse in Dubai Marina"
mediaItems={[
{
imageSrc: "https://img.b2bpic.net/free-photo/modern-spacious-room-with-large-panoramic-window_7502-7289.jpg", imageAlt: "Luxury penthouse in Dubai Marina"
},
{
imageSrc: "https://img.b2bpic.net/free-photo/shanghai-night-china_1127-3170.jpg", imageAlt: "Dubai skyline at night"
},
{
imageSrc: "https://img.b2bpic.net/free-photo/luxury-architecture-exterior-design_23-2151920926.jpg", imageAlt: "Modern luxury exterior design"
},
{
imageSrc: "https://img.b2bpic.net/free-photo/luxury-architecture-exterior-design_23-2151920931.jpg", imageAlt: "Contemporary luxury architecture"
},
{
imageSrc: "https://img.b2bpic.net/free-photo/modern-spacious-room-with-large-panoramic-window_7502-7289.jpg", imageAlt: "Spacious modern interior with panoramic view"
}
]}
mediaAnimation="slide-up"
/>
</div>
@@ -82,12 +100,12 @@ export default function LandingPage() {
</div>
<div id="about" data-section="about">
<TextSplitAbout
<MediaAbout
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. We combine market mastery with personalized service, ensuring every transaction is seamless and satisfying.", "Transparency, integrity, and results define our commitment to every client partnership."
]}
showBorder={true}
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. We combine market mastery with personalized service, ensuring every transaction is seamless and satisfying."
tag="About Us"
imageSrc="https://img.b2bpic.net/free-photo/luxury-architecture-exterior-design_23-2151920926.jpg"
imageAlt="Luxe Properties Dubai team"
useInvertedBackground={false}
buttons={[
{ text: "Learn Our Story", href: "#" }
@@ -96,7 +114,7 @@ export default function LandingPage() {
</div>
<div id="services" data-section="services">
<FeatureHoverPattern
<FeatureCardThree
title="Our Services & Expertise"
description="Comprehensive real estate solutions tailored to meet your unique needs and aspirations."
tag="Professional Services"
@@ -104,30 +122,49 @@ export default function LandingPage() {
textboxLayout="default"
animationType="slide-up"
useInvertedBackground={true}
gridVariant="uniform-all-items-equal"
carouselMode="buttons"
features={[
{
icon: Home,
title: "Property Selection", description: "Exclusive access to off-market and hand-selected luxury properties from our extensive portfolio."
id: "01", title: "Property Selection", description: "Exclusive access to off-market and hand-selected luxury properties", imageSrc: "https://img.b2bpic.net/free-photo/modern-spacious-room-with-large-panoramic-window_7502-7289.jpg", imageAlt: "Property selection"
},
{
icon: TrendingUp,
title: "Investment Advisory", description: "Expert insights into market trends and investment opportunities to maximize your real estate portfolio."
id: "02", title: "Investment Advisory", description: "Expert insights into market trends and investment opportunities", imageSrc: "https://img.b2bpic.net/free-photo/shanghai-night-china_1127-3170.jpg", imageAlt: "Investment advisory"
},
{
icon: DollarSign,
title: "Negotiation & Closing", description: "Strategic negotiation and seamless transaction management from offer to key delivery."
id: "03", title: "Negotiation & Closing", description: "Strategic negotiation and seamless transaction management", imageSrc: "https://img.b2bpic.net/free-photo/luxury-architecture-exterior-design_23-2151920926.jpg", imageAlt: "Negotiation and closing"
},
{
icon: FileCheck,
title: "Legal Compliance", description: "Full support with documentation, permits, and regulatory compliance throughout your purchase."
id: "04", title: "Legal Compliance", description: "Full support with documentation, permits, and regulatory compliance", imageSrc: "https://img.b2bpic.net/free-photo/luxury-architecture-exterior-design_23-2151920931.jpg", imageAlt: "Legal compliance"
},
{
icon: Building2,
title: "Property Management", description: "Professional management services for rental income and property maintenance optimization."
id: "05", title: "Property Management", description: "Professional management services for rental income optimization", imageSrc: "https://img.b2bpic.net/free-photo/modern-spacious-room-with-large-panoramic-window_7502-7289.jpg", imageAlt: "Property management"
},
{
icon: Users,
title: "Concierge Services", description: "White-glove concierge support for renovations, furnishings, and lifestyle services."
id: "06", title: "Concierge Services", description: "White-glove concierge support for renovations and lifestyle services", imageSrc: "https://img.b2bpic.net/free-photo/shanghai-night-china_1127-3170.jpg", imageAlt: "Concierge services"
}
]}
/>
</div>
<div id="team" data-section="team">
<TeamCardOne
title="Executive Team"
description="Meet the visionary leaders guiding Luxe Properties with expertise and dedication."
tag="Our Leadership"
textboxLayout="default"
animationType="slide-up"
useInvertedBackground={false}
gridVariant="uniform-all-items-equal"
members={[
{
id: "1", name: "Hassan Al-Maktoum", role: "Chief Executive Officer", imageSrc: "https://img.b2bpic.net/free-photo/business-people-using-digital-tablet-airport_107420-95868.jpg", imageAlt: "Hassan Al-Maktoum"
},
{
id: "2", name: "Layla Al-Mansoori", role: "Chief Operating Officer", imageSrc: "https://img.b2bpic.net/free-photo/attractive-satisfied-young-female-entrepreneur-standing-proud-smiling-with-crossed-hands-confident_197531-23012.jpg?id=13871705", imageAlt: "Layla Al-Mansoori"
},
{
id: "3", name: "Marcus Wellington", role: "Chief Investment Officer", imageSrc: "https://img.b2bpic.net/free-photo/young-businessman-with-clipboard_1098-602.jpg", imageAlt: "Marcus Wellington"
}
]}
/>
@@ -176,7 +213,7 @@ export default function LandingPage() {
id: "1", name: "Ahmed Al Mansouri, Real Estate Investor", date: "Date: September 2024", 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.", tag: "Premium Portfolio", avatarSrc: "https://img.b2bpic.net/free-photo/business-people-using-digital-tablet-airport_107420-95868.jpg", imageSrc: "https://img.b2bpic.net/free-photo/shanghai-night-china_1127-3170.jpg"
},
{
id: "2", name: "Sarah Johnson, CEO - Tech Corp", date: "Date: August 2024", 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.", tag: "Penthouse Collection", avatarSrc: "https://img.b2bpic.net/free-photo/businessman-discussing-document-with-colleague_107420-84875.jpg", imageSrc: "https://img.b2bpic.net/free-photo/luxury-architecture-exterior-design_23-2151920926.jpg"
id: "2", name: "Sarah Johnson, CEO - Tech Corp", date: "Date: August 2024", 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.", tag: "Penthouse Collection", avatarSrc: "https://img.b2bpic.net/free-photo/attractive-satisfied-young-female-entrepreneur-standing-proud-smiling-with-crossed-hands-confident_197531-23012.jpg?id=13871705", imageSrc: "https://img.b2bpic.net/free-photo/luxury-architecture-exterior-design_23-2151920926.jpg"
},
{
id: "3", name: "Michael Chen, International Investor", date: "Date: July 2024", 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.", tag: "Investment Advisory", avatarSrc: "https://img.b2bpic.net/free-photo/young-businessman-with-clipboard_1098-602.jpg", imageSrc: "https://img.b2bpic.net/free-photo/luxury-architecture-exterior-design_23-2151920931.jpg"
@@ -216,6 +253,7 @@ export default function LandingPage() {
title: "Company", items: [
{ label: "About Us", href: "#about" },
{ label: "Our Services", href: "#services" },
{ label: "Executive Team", href: "#team" },
{ label: "Properties", href: "#properties" },
{ label: "Contact", href: "#contact" }
]

View File

@@ -90,8 +90,7 @@ export default function ProductPage({ params }: ProductPageProps) {
{"name":"About","id":"about"},
{"name":"Services","id":"services"},
{"name":"Testimonials","id":"testimonials"},
{"name":"Contact","id":"contact"},
{"name":"Shop","id":"/shop"}
{"name":"Contact","id":"contact"}
]}
button={{ text: "Cart", onClick: () => setCartOpen(true) }}
/>
@@ -140,8 +139,7 @@ export default function ProductPage({ params }: ProductPageProps) {
{"name":"About","id":"about"},
{"name":"Services","id":"services"},
{"name":"Testimonials","id":"testimonials"},
{"name":"Contact","id":"contact"},
{"name":"Shop","id":"/shop"}
{"name":"Contact","id":"contact"}
]}
button={{ text: "Cart", onClick: () => setCartOpen(true) }}
/>
@@ -197,8 +195,7 @@ export default function ProductPage({ params }: ProductPageProps) {
{"name":"About","id":"about"},
{"name":"Services","id":"services"},
{"name":"Testimonials","id":"testimonials"},
{"name":"Contact","id":"contact"},
{"name":"Shop","id":"/shop"}
{"name":"Contact","id":"contact"}
]}
button={{ text: "Cart", onClick: () => setCartOpen(true) }}
/>

View File

@@ -40,8 +40,7 @@ export default function ShopPage() {
{"name":"About","id":"about"},
{"name":"Services","id":"services"},
{"name":"Testimonials","id":"testimonials"},
{"name":"Contact","id":"contact"},
{"name":"Shop","id":"/shop"}
{"name":"Contact","id":"contact"}
]}
button={{ text: "Cart", onClick: () => console.log("cart") }}
/>
@@ -89,8 +88,7 @@ export default function ShopPage() {
{"name":"About","id":"about"},
{"name":"Services","id":"services"},
{"name":"Testimonials","id":"testimonials"},
{"name":"Contact","id":"contact"},
{"name":"Shop","id":"/shop"}
{"name":"Contact","id":"contact"}
]}
button={{ text: "Cart", onClick: () => console.log("cart") }}
/>

View File

@@ -11,7 +11,7 @@ html {
body {
background-color: var(--background);
color: var(--foreground);
font-family: var(--font-inter), sans-serif;
font-family: var(font-family: --font-cormorant-garamond, serif;), sans-serif;
position: relative;
min-height: 100vh;
overscroll-behavior: none;
@@ -24,5 +24,5 @@ h3,
h4,
h5,
h6 {
font-family: var(--font-ubuntu), sans-serif;
font-family: var(font-family: --font-cormorant-garamond, serif;), sans-serif;
}