/* ========================= HOME ========================= */ function HomePage({ go, addToBag }) { return (
{/* HERO */}
Couture florals · Dubai · since 2014

Flowers,
the French way.

Dubai’s house of couture florals — fresh blooms, long-life roses, and the Flower Box we made our signature. Designed by Priya Jelly, delivered the same day.

{[ ["Same-day", "delivery, 7 days"], ["8", "UAE boutiques"], ["EN · AR · RU · ZH", "Spoken at the bench"], ].map(([a, b]) => (
{a}
{b}
))}
Your Majesty — signature Flower Box
The Flower Box
House signature
Your Majesty
Pastel dome · {AED(7360)}
{/* Marquee */}
{Array.from({ length: 2 }).map((_, k) => ( {[ "Same-day across the UAE", "8 boutiques · Dubai & Abu Dhabi", "International · Beirut · Riyadh · Kuwait", "Couture weddings & events", "Bespoke gifting · VIP & corporate", "Flower Box, our signature", ].map((t) => ( {t} ))} ))}
{/* OCCASIONS */}
Begin with the occasion

Six reasons to send flowers.
One house for all of them.

{OCCASIONS.map((o, i) => ( ))}
{/* SIGNATURE FLOWER BOX */}
Our signature

The {" "}Flower Box.

In 2014, we built our first box. Hand-cut card, gold plate, fresh blooms domed and steady. The brand’s own claim is that we were first — what we know for certain is that we made it ours.

Fresh
Cut this morning.

Peony, garden rose, hydrangea, ranunculus — built dome-up, cared for, sent same day.

Long-life
A year of bloom.

Preserved roses, real flowers, sealed in the same gold-plated box. Zero water, twelve months.

Maison Rosée Flower Box
Since
’14
Built in Dubai, by Priya Jelly
{/* FEATURED PRODUCTS */}
This week, on the bench

New & loved.

{PRODUCTS.slice(0, 8).map((p) => ( go("product", { id })} onAdd={addToBag} /> ))}
{/* WEDDINGS TEASER */}
Weddings and events
Event · UAE, private
Weddings & Events

We build flowers around{" "} your story — not the other way around.

Ceremony aisles, reception installations, branded backdrops, tablescape floristry, after-parties. Our atelier handles concept, build and tear-down end-to-end.

    {[ "Concept & moodboards", "Full venue install", "Branded backdrops", "Tablescape florals", "Hand-tied bouquets", "Same-day tear-down", ].map((t) => (
  • {t}
  • ))}
{/* BRAND STORY STRIP */}
A house, not a shop

Priya Jelly built Maison des Fleurs the way she trained — in visual merchandising, in Singapore, in Dubai.

It began in 2014 with a single workshop, an idea about a box, and an instinct that a flower could be a couture object. A decade in, that idea sits in eight UAE boutiques and four other countries.

Founder
Priya Jelly
Visual merchandiser by training. Florist by instinct. UAE since 2006.
{/* BOUTIQUE TEASER */}
Visit

Eight boutiques in the UAE.

{BOUTIQUES.slice(0, 4).map((b) => (
{b.flag && (
{b.flag}
)}
{b.city}
{b.name}
{b.address}
{b.hours}
{b.phone}
))}
); } /* ========================= SHOP ========================= */ function ShopPage({ go, addToBag, initial }) { const [type, setType] = useState(initial?.type || "all"); const [sort, setSort] = useState("featured"); const [view, setView] = useState("grid"); // grid | editorial const filtered = useMemo(() => { let arr = type === "all" ? PRODUCTS.slice() : PRODUCTS.filter((p) => p.type === type); if (sort === "price-asc") arr.sort((a, b) => a.price - b.price); else if (sort === "price-desc") arr.sort((a, b) => b.price - a.price); else if (sort === "name") arr.sort((a, b) => a.name.localeCompare(b.name)); return arr; }, [type, sort]); const occasion = initial?.occasion ? OCCASIONS.find((o) => o.id === initial.occasion) : null; return (
{/* Header */}
{occasion ? "Shop · Occasion" : "Shop · Couture florals"}

{occasion ? occasion.label : "The collection."}

{occasion ? occasion.blurb : "Every piece designed in our Dubai atelier. AED prices, real photography, same-day delivery."}

{/* Filter rail */}
{TYPES.map((t) => ( ))}
{filtered.length} pieces
{filtered.map((p) => ( go("product", { id })} onAdd={addToBag} /> ))}
{filtered.length === 0 && (
Nothing here yet.

Try another category.

)}
); } /* ========================= PRODUCT DETAIL ========================= */ function ProductPage({ id, go, addToBag }) { const p = PRODUCTS.find((x) => x.id === id) || PRODUCTS[0]; const [qty, setQty] = useState(1); const [size, setSize] = useState("Standard"); const [note, setNote] = useState(""); const [tab, setTab] = useState("desc"); const related = PRODUCTS.filter((x) => x.id !== p.id && x.type === p.type).slice(0, 4); const fallback = PRODUCTS.filter((x) => x.id !== p.id).slice(0, 4); const recs = related.length >= 3 ? related : fallback; return (
·{" "} ·{" "} {" "} · {p.name}
{p.name}
{[p.image, "media/editorial-02.webp", "media/category-overview.webp"].map((src, i) => (
))}
{p.feature ? "House signature" : TYPES.find((t) => t.id === p.type)?.label}

{p.name}

{p.sub}
{AED(p.price)}
VAT included
Size
{[ ["Petite", -800], ["Standard", 0], ["Grand", 1200], ].map(([s, delta]) => ( ))}
Gift card · optional
setNote(e.target.value)} placeholder="A line for the card — we'll handwrite it." style={{ width: "100%", background: "transparent", border: "1px solid var(--line-strong)", padding: "14px 16px", fontSize: 14, outline: "none", borderRadius: 2, }} />
{qty}
{[ ["Same-day in UAE", "leaf"], ["Handwritten card", "heart"], ["Cared-for in transit", "check"], ].map(([t, icon]) => (
{t}
))}
{/* Tabs */}
{[ ["desc", "Description"], ["care", "Care"], ["delivery", "Delivery"], ].map(([k, l]) => ( ))}
{tab === "desc" &&

{p.desc}

} {tab === "care" &&

{p.care}

} {tab === "delivery" && ( <>

Same-day delivery across the UAE for orders placed before 4 pm. Fees vary by emirate; calculated at checkout.

For international gifting (Lebanon, Saudi, Kuwait), please contact our team — we’ll route via the closest atelier.

)}
{/* Related */}
You may also love

From the same hand.

{recs.map((rp) => ( go("product", { id: rid })} onAdd={addToBag} /> ))}
); } Object.assign(window, { HomePage, ShopPage, ProductPage });