/* === Shared components: Nav, Footer, TrustStrip, WhatsApp FAB, Bottom CTA === */ const { useState, useEffect, useRef, useMemo } = React; // ---------- Icons (lightweight inline) ---------- function Icon({ name, size = 18, ...props }) { const s = size; const stroke = "currentColor"; switch (name) { case "arrow": return ( ); case "phone": return ( ); case "wa": return ( ); case "search": return ( ); case "pin": return ( ); case "star": return ( ); case "diamond": return ( ); case "check": return ( ); case "calendar": return ( ); case "menu": return ( ); case "close": return ( ); case "mail": return ( ); default: return null; } } // ---------- Brand mark ---------- function BrandMark({ size = 28, white = false }) { // Original mark: stacked diamond rosette in a circle, with wordmark in serif caps const stroke = white ? "var(--ivory)" : "var(--onyx)"; return (
Monili Jewellers · Dubai
); } // ---------- Top Nav ---------- function Nav({ page, setPage, openConsult, openWA }) { const links = [ ["home", "Home"], ["collections", "Collections"], ["bespoke", "Bespoke"], ["showrooms", "Showrooms"], ["heritage", "Heritage"], ["visit", "Visit"], ]; return (
setPage("home")} style={{ cursor: "pointer" }}>
); } // ---------- Trust strip ---------- function TrustStrip() { return (
{[0,1,2,3,4].map(i => )}
5.0 on Tripadvisor · 107 reviews
GIA · IGI
Certified diamonds
with every purchase
20yrs
In Dubai's Gold & Diamond Park · since 2005
3
Private showrooms
across Dubai
); } // ---------- WhatsApp FAB ---------- function WhatsAppFAB({ onClick }) { return ( ); } // ---------- Sticky bottom bar (mobile/CTA) ---------- function BottomBar({ visible, openConsult, openWA }) { return (
Book a Private Consultation · No obligation, no pressure.
); } // ---------- Footer ---------- function Footer({ setPage, openConsult }) { const D = window.MONILI; return ( ); } // ---------- Consultation Modal ---------- function ConsultModal({ open, onClose }) { const D = window.MONILI; const [step, setStep] = useState(0); const [form, setForm] = useState({ name: "", email: "", phone: "", showroom: "gold-diamond-park", interest: "engagement", date: "", notes: "", advisor: "", }); const interests = [ ["engagement", "Engagement Ring"], ["bespoke", "Bespoke / Custom Design"], ["remodel", "Remodel My Gold"], ["gift", "Gift / Milestone"], ["browse", "Just Browsing"], ]; useEffect(() => { if (open) setStep(0); }, [open]); if (!open) return null; const upd = (k, v) => setForm(f => ({ ...f, [k]: v })); const canSubmit = form.name && (form.email || form.phone); return (
e.stopPropagation()}>
Step {step + 1} of 2
{step === 0 ? "Book a Private Consultation" : step === 1 ? "Tell us about your visit" : "We'll be in touch within one day."}
{step === 0 && (
{D.showrooms.map(s => ( ))}
{interests.map(([id, label]) => ( ))}
upd("date", e.target.value)} />
)} {step === 1 && (
upd("name", e.target.value)} placeholder="Full name"/>
upd("phone", e.target.value)} placeholder="+971 …"/>
upd("email", e.target.value)} placeholder="you@email.com" type="email"/>