Compare commits
17 Commits
version_5
...
version_10
| Author | SHA1 | Date | |
|---|---|---|---|
| 70773f62c7 | |||
| 2cd823c3b4 | |||
| e4966fcd76 | |||
| 29ada469f1 | |||
| 35974ef697 | |||
| 9edc509176 | |||
| 3ecf5cd576 | |||
| 9aa099ba6e | |||
| ffb8a12e46 | |||
| 5e55889445 | |||
| 0a5feda129 | |||
| 5324217092 | |||
| 27a39cf14f | |||
| 40958aa0e5 | |||
| 140e36ec20 | |||
| 4327d13904 | |||
| e8689d05e8 |
@@ -1,5 +1,4 @@
|
||||
import type { Metadata } from 'next';
|
||||
import { Cormorant_Garamond } from "next/font/google";
|
||||
import './globals.css';
|
||||
|
||||
export const metadata: Metadata = {
|
||||
@@ -7,12 +6,6 @@ export const metadata: Metadata = {
|
||||
description: 'Discover exclusive luxury properties in Dubai curated for discerning buyers and investors.',
|
||||
};
|
||||
|
||||
const cormorantGaramond = Cormorant_Garamond({
|
||||
variable: "--font-cormorant-garamond",
|
||||
subsets: ["latin"],
|
||||
weight: ["300", "400", "500", "600", "700"],
|
||||
});
|
||||
|
||||
export default function RootLayout({
|
||||
children,
|
||||
}: {
|
||||
@@ -20,7 +13,7 @@ export default function RootLayout({
|
||||
}) {
|
||||
return (
|
||||
<html lang="en">
|
||||
<body className={`${cormorantGaramond.variable} antialiased`}>
|
||||
<body>
|
||||
{children}
|
||||
|
||||
<script
|
||||
@@ -416,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;
|
||||
|
||||
@@ -525,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;
|
||||
@@ -830,6 +854,9 @@ export default function RootLayout({
|
||||
|
||||
const handleScroll = () => {
|
||||
if (!isActive) return;
|
||||
|
||||
if (isEditing) return;
|
||||
|
||||
if (selectedElement) {
|
||||
makeUneditable(selectedElement, false);
|
||||
selectedElement.classList.remove(selectedClass);
|
||||
@@ -1203,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;
|
||||
|
||||
@@ -1213,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);
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
"use client"
|
||||
"use client";
|
||||
|
||||
import { ThemeProvider } from "@/providers/themeProvider/ThemeProvider";
|
||||
import NavbarStyleCentered from '@/components/navbar/NavbarStyleCentered/NavbarStyleCentered';
|
||||
@@ -6,11 +6,12 @@ import HeroBillboardGallery from '@/components/sections/hero/HeroBillboardGaller
|
||||
import ProductCardFour from '@/components/sections/product/ProductCardFour';
|
||||
import MediaAbout from '@/components/sections/about/MediaAbout';
|
||||
import FeatureCardTwentyTwo from '@/components/sections/feature/FeatureCardTwentyTwo';
|
||||
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" }
|
||||
]}
|
||||
@@ -44,7 +46,7 @@ export default function LandingPage() {
|
||||
<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={[
|
||||
@@ -149,6 +151,29 @@ export default function LandingPage() {
|
||||
/>
|
||||
</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/businessman-discussing-document-with-colleague_107420-84875.jpg", 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"
|
||||
}
|
||||
]}
|
||||
/>
|
||||
</div>
|
||||
|
||||
<div id="metrics" data-section="metrics">
|
||||
<MetricCardThree
|
||||
title="By The Numbers"
|
||||
@@ -232,6 +257,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" }
|
||||
]
|
||||
|
||||
Reference in New Issue
Block a user