/* eslint-disable no-undef */ /* ────────────────────────────────────────────────────────────────────── Shell: Logo, Navbar, Footer, ConsultModal, WhatsAppFab, MobileCTA. All RTL-aware. EN/AR toggle handled here. ────────────────────────────────────────────────────────────────────── */ const { useState, useEffect, useRef } = React; const { Ic } = window.VZ_DATA; /* ── Logo: a minimal, ORIGINAL wordmark for the concept site. Uses a stylised "V" notch on the right (a nod to the brand monogram in the supplied logo SVG) — not a redraw of the production logo. */ function Logo({ light = false, size = 26 }) { const c = light ? "white" : "var(--ink)"; return ( { e.preventDefault(); window.__vzNav?.("home"); }} style={{ display: "flex", alignItems: "center", gap: 10 }}> Virtuzone ); } window.Logo = Logo; /* ── Locale Toggle ───────────────────────────────────────────────────── */ function LocaleToggle({ locale, setLocale, dark = false }) { return (
{["en", "ar", "ru", "zh"].map((l) => ( ))}
); } window.LocaleToggle = LocaleToggle; /* ── Navbar ──────────────────────────────────────────────────────────── */ function Navbar({ route, nav, locale, setLocale, openConsult, dark = false }) { const { T } = window.VZ_DATA; const t = T[locale] || T.en; const [open, setOpen] = useState(false); const items = [ { id: "services", label: t.nav.services }, { id: "jurisdictions", label: t.nav.jurisdictions }, { id: "calculator", label: t.nav.calc }, { id: "golden-visa", label: t.nav.goldenVisa }, { id: "resources", label: t.nav.resources }, { id: "about", label: t.nav.about }, ]; return (
); } window.Navbar = Navbar; /* ── Footer ──────────────────────────────────────────────────────────── */ function Footer({ locale, nav }) { const { T, services } = window.VZ_DATA; const t = T[locale] || T.en; return ( ); } window.Footer = Footer; /* ── Consultation Modal ──────────────────────────────────────────────── */ function ConsultModal({ open, onClose, prefill = {} }) { const [step, setStep] = useState(0); const [form, setForm] = useState({ name: "", email: "", phone: "", nationality: "", intent: prefill.intent || "Start a new UAE business", service: prefill.service || "Company Formation", jurisdiction: prefill.jurisdiction || "Free Zone", timeline: "Within 3 months", msg: "", }); const [done, setDone] = useState(false); useEffect(() => { if (open) { setStep(0); setDone(false); } }, [open]); if (!open) return null; const upd = (k, v) => setForm((f) => ({ ...f, [k]: v })); const stepDone = step === 0 ? form.intent && form.service && form.jurisdiction : form.name && form.email && form.phone; return (
e.stopPropagation()}>
{done ? "Confirmed" : (step === 0 ? "Step 1 of 2" : "Step 2 of 2")} Free consultation
{done ? (
{Ic.check({ width: 22, height: 22 })}

Thanks, {form.name.split(" ")[0] || "founder"}.

A senior advisor will be in touch within one business day to walk through your {form.service.toLowerCase()} options.

{Ic.wa()} Continue on WhatsApp
) : ( <>

Tell us what you're building.

A free 30-min call with a senior advisor — no obligation, indicative ranges only.

{step === 0 && (
upd("intent",v)} options={["Start a new UAE business","Expand an existing business to UAE","Move my company / re-domicile","Apply for the Golden Visa","Just exploring"]} /> upd("service",v)} options={["Company Formation","Visa & PRO","Golden Visa","Bank Account","Accounting & Tax","Other"]} /> upd("jurisdiction",v)} options={["Mainland","Free Zone","Offshore","Not sure yet"]} />
)} {step === 1 && (
upd("name", e.target.value)} placeholder="Sara Almenhali" />
upd("email", e.target.value)} placeholder="you@email.com" />
upd("phone", e.target.value)} placeholder="+971 50 000 0000" />
upd("nationality", e.target.value)} placeholder="e.g. United Kingdom" />