// Main app const { useState, useEffect, useRef, useMemo } = React; // SVG logo (matches uploaded wordmark — original re-tracing of the OMNIYAT mark would be needed for production; here we render the brand-supplied SVG inline) function Logo({ height = 14 }) { return ( OMNIYAT ); } function Nav({ active, project, locale, setLocale, onCta, scrolled, sections }) { const t = STRINGS[locale]; return ( ); } function Hero({ project, onCta }) { const [idx, setIdx] = useState(0); useEffect(()=>{ const t = setInterval(()=> setIdx(i => (i+1) % project.heroImages.length), 6000); return ()=> clearInterval(t); }, [project.id]); // Reset when project changes useEffect(()=> setIdx(0), [project.id]); return (
{project.heroImages.map((src,i)=>( ))}
{project.eyebrow.split(" · ").map((p,i)=>( {i>0 && } {p} ))}

{project.name} — {project.sub.split(".")[0]}.

{project.sub}

{String(idx+1).padStart(2,"0")} / {String(project.heroImages.length).padStart(2,"0")}
Architect {project.architect.replace("OMNIYAT in collaboration with ","").replace(" — interior architecture","")}
Completion {project.completion}
); } function BrandStrip() { return (
2005 Founded Mahdi Amjad, Chairman
~$10bn Portfolio Eighteen masterpieces
37% $10M+ residential share, Dubai Property Monitor · 2024
$900M Sukuk raised, 2025 Press attributed
); } function Vision({ project }) { return (
Vision 01

A discreet
architectural
composition.

{project.vision.map((p, i) => (

{p}

))}
); } function Architecture({ project }) { return (
Architecture & Design 02

Drawn for
the long horizon.

{project.architectureCopy}

Architecture
{project.architect}
Interiors
{project.interiors}
{project.hospitality && project.hospitality !== "Confirm with developer" && ( <>
Operator
{project.hospitality}
)}
Developer
OMNIYAT
); } function Hospitality({ project }) { if (project.hospitality !== "Dorchester Collection") { // For Vela & non-Dorchester projects, use a neutral block return (
Service 03

Hospitality-grade
residential service.

{project.hospitalityCopy.map((p,i)=>

{p}

)}
Operator confirmation pending — by enquiry.
); } return (
Hospitality 03

Operated by
Dorchester Collection.

{project.hospitalityCopy.map((p,i)=>

{p}

)}
The Dorchester 45 Park Lane Le Meurice The Beverly Hills Hotel
Dorchester Collection marks shown for editorial reference. Logo rights to be cleared prior to publishing on any production microsite.
); } // Stylised, abstract location plot — not a literal Google embed (which is a separate component to wire pre-launch). function LocationMapSvg({ project }) { return ( {/* gradient water */} {/* Stylised Palm Jumeirah / Marasi shape, depending on project */} {project.location.includes("Palm") ? ( {Array.from({length:16}).map((_,i)=>{ const a = (i / 16) * Math.PI * 2; const x1 = 200 + Math.cos(a) * 90; const y1 = 200 + Math.sin(a) * 90; const x2 = 200 + Math.cos(a) * 140; const y2 = 200 + Math.sin(a) * 140; return ; })} ) : ( {/* canal shape */} {Array.from({length:8}).map((_,i)=>( ))} )} {/* project pin */} {project.location.toUpperCase()} DUBAI · UAE ); } function LocationBlock({ project }) { return (
Location 04

{project.location.split(" (")[0]}.

Dubai, United Arab Emirates
Latitude
{project.coords.lat}
Longitude
{project.coords.lng}
{project.coords.note}
Proximity
{project.pois.map((p,i)=>(
{p.name} {p.d}
))}
Drive-times indicative · subject to traffic.
); } function Residences({ project }) { return (
Residences 05

{project.residences ? `${project.residences} private residences.` : "A reserved release."}

Every residence is delivered to the same architectural standard. Specifications are confirmed at private viewing — no published prices, no public availability list.
{project.residences ?? "—"}{project.residences ? "" : ""}
Private residences
{project.resortResidences ?? (project.storeys ?? "—")}
{project.resortResidences ? "Resort residences" : (project.storeys ? "Storeys" : "By enquiry")}
{project.floorRatio ? "1:1" : "—"}
{project.floorRatio || "Residence ratio"}
{project.completion.split(" ")[0]}
Completion · {project.completion.includes("(") ? "official" : "confirmed"}
{project.residenceTypes.map((t,i)=>(
{t.label}
{t.name}
{t.meta}
{t.price}
))}

Residence sizes, configurations, layouts and pricing are confirmed only at private viewing and remain subject to RERA / Dubai Land Department registration. No price list is published; no availability is implied.

); } function Amenities({ project }) { return (
Amenities 06

A private
residential club.

{project.amenities.map((a,i)=>(
{String(i+1).padStart(2,"0")} {a}
))}

Selected amenities are reserved for residence owners and named guests; access is allocated by the building's residential director. Programming subject to refinement at handover.

); } function Gallery({ project, onOpen }) { const tiles = project.gallery.slice(0,8); return ( ); } function Lightbox({ project, idx, setIdx, onClose }) { if (idx == null) return null; const g = project.gallery[idx]; useEffect(()=>{ const h = (e)=>{ if (e.key === "Escape") onClose(); if (e.key === "ArrowRight") setIdx((idx+1) % project.gallery.length); if (e.key === "ArrowLeft") setIdx((idx-1+project.gallery.length) % project.gallery.length); }; window.addEventListener("keydown", h); return ()=> window.removeEventListener("keydown", h); }, [idx]); return (
e.stopPropagation()}> {g.caption}
{String(idx+1).padStart(2,"0")} / {String(project.gallery.length).padStart(2,"0")} · {g.caption}
); } function Register({ project, locale }) { const t = STRINGS[locale]; return (
Register Interest 08

{t.register_title} {t.register_em}

{t.register_blurb}

{t.perks.map((p,i)=>(
{String(i+1).padStart(2,"0")} {p}
))}
Or call · +971 4 511 5504
Toll-free · 800 666
Media · media@omniyat.com
); } function NextProjects({ activeId, onSwitch }) { const others = Object.values(PROJECTS); return (
Other masterpieces 09

Explore the portfolio.

Eighteen masterpieces · three destinations
{others.map(p => (
onSwitch(p.id)}>
{p.name}
{p.id === activeId ? "Now viewing" : "View"}
{p.name}
{p.location.split(" (")[0]}
))}
); } function Footer() { return ( ); } // === MAIN APP ===================================================== function App() { const defaults = window.__TWEAK_DEFAULTS__ || { project:"alba", locale:"en", accent:"bronze" }; const [tweaks, setTweak] = window.useTweaks(defaults); const project = PROJECTS[tweaks.project] || PROJECTS.alba; const locale = tweaks.locale || "en"; const [activeSection, setActiveSection] = useState("top"); const [scrolled, setScrolled] = useState(false); const [lightboxIdx, setLightboxIdx] = useState(null); // Apply locale to useEffect(()=>{ document.documentElement.lang = locale; document.documentElement.dir = (locale === "ar") ? "rtl" : "ltr"; document.documentElement.dataset.accent = tweaks.accent || "bronze"; document.title = `${project.fullName} — OMNIYAT`; }, [locale, tweaks.accent, project.fullName]); // Scroll detection useEffect(()=>{ const onScroll = ()=>{ setScrolled(window.scrollY > 80); const sections = ["top","vision","architecture","hospitality","location","residences","amenities","gallery","register"]; let cur = "top"; for (const id of sections) { const el = document.getElementById(id); if (el && el.getBoundingClientRect().top < 200) cur = id; } setActiveSection(cur); }; window.addEventListener("scroll", onScroll, { passive:true }); return ()=> window.removeEventListener("scroll", onScroll); }, []); const sections = [ { id:"vision", label:"Vision" }, { id:"architecture", label:"Architecture" }, { id:"hospitality", label:"Hospitality" }, { id:"location", label:"Location" }, { id:"residences", label:"Residences" }, { id:"amenities", label:"Amenities" }, { id:"register", label:"Register" }, ]; const scrollToRegister = (mode) => { const el = document.getElementById("register"); if (el) { const top = el.getBoundingClientRect().top + window.scrollY - 20; window.scrollTo({ top, behavior:"smooth" }); } }; // Tweaks panel const TweaksPanel = window.TweaksPanel; const TweakSection = window.TweakSection; const TweakRadio = window.TweakRadio; const TweakSelect = window.TweakSelect; const TweakColor = window.TweakColor; return (