/* Chrome: Navbar, Footer, EnquiryDrawer, MailingList, Closure bar, shared atoms */ const { useState, useEffect, useRef, useMemo } = React; function Wordmark({ size = 22, className = "" }) { return ( Taymour Grahne · Projects ); } function FootWordmark() { return (
Taymour Grahne·Projects
); } function ClosureBar() { return (
Gallery closed for Eid Al Adha · 25 — 31 May 2026 · Reopening Mon 1 June, 11am — Dubai
); } function Nav({ route, onRoute, onEnquire, locale, onLocale }) { const links = [ ["exhibitions", "Exhibitions"], ["artists", "Artists"], ["online", "Online"], ["fairs", "Art Fairs"], ["press", "Press"], ["about", "About"], ["contact", "Visit"] ]; return (
{["EN", "AR", "RU", "ZH"].map((l) => ( ))}
); } function MailingList() { const [val, setVal] = useState(""); const [sent, setSent] = useState(false); return (
Mailing list · For collectors, curators & press

Quiet dispatch from Dubai
& London — five times a year.

{ e.preventDefault(); setSent(true); }} > setVal(e.target.value)} aria-label="Email" />
Exhibition openings, online presentations, press releases and select viewing-room access. No prices, no marketing — written by the gallery, read in five minutes.
); } function Footer({ onRoute }) { return ( ); } function EnquiryDrawer({ open, context, onClose }) { const [sent, setSent] = useState(false); useEffect(() => { if (open) setSent(false); }, [open, context]); const ctx = context || {}; return (
); } function SectionHead({ num, kicker, title, end }) { return (
{num}
{kicker}

{title}

{end}
); } function CreditLine({ name, title, year, medium, dims, courtesy, sold }) { return (
{name}
{title}{year ? ", " + year : ""}
{medium} {dims ? " · " + dims : ""}
© {name}. {courtesy || "Courtesy the artist and Taymour Grahne Projects."}
{sold ? "On loan / Sold" : "Enquire · POA"}
); } Object.assign(window, { Wordmark, FootWordmark, Nav, MailingList, Footer, EnquiryDrawer, SectionHead, CreditLine, ClosureBar });