const { useState, useEffect, useRef, useMemo, useCallback } = React; /* ========================= LOGO (MDF wordmark) ========================= */ function MDFWordmark({ height = 22, color }) { // Original SVG recreation of the gold-gradient wordmark // Use a single linearGradient with the brand's exact stops. const gid = "mdf-grad-" + height; return ( {/* MAISON */} {/* DES (small caps band) */} {/* FLEURS */} ); } function MDFMonogram({ size = 28, dark }) { const gid = "mono-grad-" + size + (dark ? "-d" : ""); return ( ); } /* ========================= ICONS ========================= */ function Icon({ name, size = 18, stroke = 1.5 }) { const c = { width: size, height: size, viewBox: "0 0 24 24", fill: "none", stroke: "currentColor", strokeWidth: stroke, strokeLinecap: "round", strokeLinejoin: "round", "aria-hidden": "true", }; switch (name) { case "search": return ( ); case "bag": return ( ); case "user": return ( ); case "menu": return ( ); case "close": return ( ); case "arrow": return ( ); case "arrow-left": return ( ); case "plus": return ( ); case "minus": return ( ); case "whatsapp": return ( ); case "phone": return ( ); case "mail": return ( ); case "pin": return ( ); case "ig": return ( ); case "fb": return ( ); case "pin-pt": return ( ); case "linkedin": return ( ); case "check": return ( ); case "globe": return ( ); case "star": return ( ); case "heart": return ( ); case "leaf": return ( ); default: return null; } } /* ========================= NAVBAR ========================= */ function Navbar({ go, page, cartCount, openCart, lang, setLang, dir }) { const [scrolled, setScrolled] = useState(false); const [openShop, setOpenShop] = useState(false); const [openLang, setOpenLang] = useState(false); const [mobileOpen, setMobileOpen] = useState(false); useEffect(() => { const onScroll = () => setScrolled(window.scrollY > 12); onScroll(); window.addEventListener("scroll", onScroll); return () => window.removeEventListener("scroll", onScroll); }, []); const NavLink = ({ to, children, onClick, sub }) => ( ); return (
{ setOpenShop(false); setOpenLang(false); }} style={{ position: "sticky", top: 0, zIndex: 50, background: scrolled ? "rgba(251,246,240,0.96)" : "rgba(251,246,240,0.88)", backdropFilter: "blur(10px)", borderBottom: scrolled ? "1px solid var(--line)" : "1px solid transparent", transition: "all 0.3s ease", }} > {/* Announcement bar */}
Same-day luxury delivery across the UAE · 7 days a week · Order by 4 pm
{/* Left — primary nav (desktop) */} {/* Center — logo */} {/* Right — utilities */}
Enquire
{openLang && (
{LANGS.map((l) => ( ))}
)}
{/* Mega menu for SHOP */} {openShop && (
setOpenShop(false)} style={{ position: "absolute", top: "100%", left: 0, right: 0, background: "var(--ivory)", borderTop: "1px solid var(--line)", borderBottom: "1px solid var(--line)", boxShadow: "0 18px 30px -25px rgba(42,35,32,0.25)", }} >
Shop by occasion
    {OCCASIONS.map((o) => (
  • ))}
Shop by type
    {TYPES.filter((t) => t.id !== "all").map((t) => (
  • ))}
)} {/* Mobile drawer */} {mobileOpen && (
{[ ["home", "Home"], ["shop", "Shop"], ["weddings", "Weddings & Events"], ["about", "The House"], ["boutiques", "Boutiques"], ["contact", "Enquire"], ].map(([k, l]) => ( ))}
)}
); } /* ========================= FOOTER ========================= */ function Footer({ go }) { return ( ); } /* ========================= PRODUCT CARD ========================= */ function ProductCard({ product, onOpen, onAdd }) { return (
{product.sub}
{AED(product.price)}
); } /* ========================= CART DRAWER ========================= */ function CartDrawer({ open, onClose, items, setItems }) { const subtotal = items.reduce((s, i) => s + i.price * i.qty, 0); const updateQty = (id, delta) => setItems((arr) => arr .map((i) => (i.id === id ? { ...i, qty: Math.max(0, i.qty + delta) } : i)) .filter((i) => i.qty > 0) ); return ( <> {open && (
)} ); } /* ========================= ADD-TO-BAG TOAST ========================= */ function Toast({ message, show }) { return (
{message}
); } /* ========================= WHATSAPP FAB ========================= */ function WhatsAppFab() { return ( ); } /* ========================= MAP EMBED (lazy iframe) ========================= */ function MapEmbed({ q, height = 220 }) { const src = `https://www.google.com/maps?q=${encodeURIComponent(q)}&output=embed`; return (