// ====== DIMORA — page components ====== // All sections + page-level components live here. const Logo = ({ className = 'nav-logo' }) => ( DIMORA ); // ---------- Hero (Home) ---------- function Hero({ t, dir, heroIdx, setHeroIdx, openEnquire, goto }) { const heroImgs = [4, 1, 2, 6, 10]; React.useEffect(() => { const id = setInterval(() => setHeroIdx((i) => (i + 1) % heroImgs.length), 6500); return () => clearInterval(id); }, [setHeroIdx]); return (
  {t.hero.eyebrow}

{t.hero.title1}
{t.hero.title2}

{t.hero.sub}

Art of Living Mall · Dubai
{heroImgs.map((_, i) => (
0{heroIdx + 1} / 0{heroImgs.length}
); } // ---------- Promise band ---------- function Promise({ t }) { return (
{t.promise.eyebrow}

{t.promise.title1} {t.promise.title_em}
{t.promise.title2}

{t.promise.body}

); } // ---------- Collections teaser ---------- function CollectionsTeaser({ t, lang, goto, openEnquire }) { return (
{t.collections.eyebrow}

{t.collections.title} {t.collections.title_em}

{COLLECTIONS.map((c, i) => (
goto('collections')}>
{c.name}
{lang === 'ar' ? c.ar : c.name} {c.ref} · {c.count}
))}
); } // ---------- Room Looks (home) ---------- function RoomLooksHome({ t, lang, goto, openEnquire }) { // show first 3 const show = ROOMLOOKS.slice(0, 3); return (
{t.rooms.eyebrow}

{t.rooms.title} {t.rooms.title_em}

{show.map((r) => (
{r.name}
Look № {r.n}
— Look № {r.n}

{r.name}

{r.body}

{r.spec.map((s, i) => ({s.l}{s.v}))}
))}
); } // ---------- Bespoke / Story ---------- function Bespoke({ t }) { return (
{t.bespoke.eyebrow}

{t.bespoke.title}

{t.bespoke.body1}

{t.bespoke.body2}

    {t.bespoke.steps.map((s) => (
  • {s.n}

    {s.t}

    {s.d}

  • ))}
); } // ---------- Showroom (home) ---------- function ShowroomBlock({ t, openEnquire }) { return (
{t.showroom.eyebrow}

{t.showroom.title1} {t.showroom.title_em}

{t.showroom.body}

{t.showroom.info.map((row, i) => (
{row.l}
{row.v}{row.s && {row.s}}
))}
); } // Stylised map — coords TBC so don't embed a real iframe pin. (per brief) function FauxMap({ t }) { return (
{/* roads */} {/* labels (street names — stylized) */} UMM SUQEIM ST AL BARSHA 2 HADAEQ M. BIN RASHID {/* mall block */} ART OF LIVING
{t.showroom.where}{t.showroom.where_sub}
Dubai
); } // ---------- Enquire band ---------- function EnquireBand({ t, openEnquire }) { return (
— {t.enquireBand.eyebrow} —

{t.enquireBand.title1} {t.enquireBand.title_em}

{t.enquireBand.body}

); } // ---------- Footer ---------- function Footer({ t }) { return ( ); } // ---------- Collections page ---------- function CollectionsPage({ t, lang, openEnquire }) { const [active, setActive] = React.useState('all'); const filtered = active === 'all' ? PIECES : PIECES.filter(p => p.cat === active); return (
— {t.nav.collections} —

{lang === 'ar' ? 'مجموعاتٌ مصمّمة' : 'Composed'} {lang === 'ar' ? 'حول الغرف.' : 'by room.'}

{lang === 'ar' ? 'مجموعاتنا منظّمة حول الغرف لا حول الفئات. اطلب الكتالوج الكامل للأقمشة والمقاسات وأوقات التسليم — أو زر الصالة لمشاهدتها في الحجم الكامل.' : 'Collections are organised by room, not category. Ask for the full catalogue — fabric options, sizing, lead time — or visit the showroom to see each piece in full volume.'}

{lang === 'ar' ? 'تصفية' : 'Filter'}
{FILTERS.map(f => ( ))}
{filtered.length} {lang === 'ar' ? 'قطعة' : 'pieces'}
{filtered.map((p) => (
{p.name} {lang === 'ar' ? 'استفسار' : 'Enquire'}
{p.name}{p.sub} {p.ref}
))}
{lang === 'ar' ? 'الأسعار عند الاستفسار · الكتالوج الكامل يُرسل عند الطلب' : 'Prices on enquiry · Full catalogue sent on request'}
); } // ---------- Room Looks gallery page ---------- function RoomLooksPage({ t, lang, openEnquire }) { // expand the gallery using all 10 images const items = [ { id: 1, span: 'span-4', shape: 'lg', name: 'The Quiet Lounge', ar: 'الصالون الهادئ', tag: '01' }, { id: 4, span: 'span-2', shape: '', name: 'The Green Salon', ar: 'صالون الأخضر', tag: '02' }, { id: 2, span: 'span-3', shape: '', name: 'The Skyline Room', ar: 'غرفة الأفق', tag: '03' }, { id: 3, span: 'span-3', shape: 'wd', name: 'The Lotus Bedroom',ar: 'غرفة اللوتس', tag: '04' }, { id: 5, span: 'span-2', shape: '', name: 'The Atelier', ar: 'الورشة', tag: '05' }, { id: 6, span: 'span-4', shape: 'wd', name: 'The Light Lounge', ar: 'الصالون المضيء', tag: '06' }, { id: 7, span: 'span-3', shape: '', name: 'The Gold Triptych',ar: 'الثلاثي الذهبي', tag: '07' }, { id: 8, span: 'span-3', shape: '', name: 'The Marble Dining',ar: 'طاولة الرخام', tag: '08' }, { id: 9, span: 'span-3', shape: '', name: 'The Ivory Lounge', ar: 'صالون العاج', tag: '09' }, { id:10, span: 'span-3', shape: 'lg', name: 'The Marbled Suite',ar: 'الجناح الرخامي', tag: '10' }, ]; return (
— {t.nav.looks} —

{lang === 'ar' ? 'إطلالات' : 'Rooms,'} {lang === 'ar' ? 'لا قوائم.' : 'not lists.'}

{lang === 'ar' ? 'كل إطلالة كاملة قابلة للطلب — قطعة قطعة، أو الغرفة بأكملها. تواصل معنا لتنسيق إطلالة لمساحتك.' : 'Each look is fully orderable — piece by piece, or the room as one composition. Get in touch and we will compose the same scene around your space.'}

{items.map((it) => (
{it.name}
{lang === 'ar' ? it.ar : it.name} № {it.tag}
))}
); } // ---------- Showroom page ---------- function ShowroomPage({ t, lang, openEnquire }) { return (
— {t.nav.showroom} —

{t.showroom.title1} {t.showroom.title_em}

{t.showroom.body}

{t.showroom.info.map((row, i) => (
{row.l}
{row.v}{row.s && {row.s}}
))}
); } // ---------- About page ---------- function AboutPage({ t, lang, openEnquire }) { return (
— {t.nav.about} —

{lang === 'ar' ? ( ديمورا — دارُ أثاثٍ راقية، تصنع الفخامة قطعةً قطعة، ابتداءً من تصميمٍ مدروس، إلى تشطيبٍ يدوي، إلى تسليمٍ بقفّازٍ أبيض. ) : ( Dimora — a premier atelier of high-end furniture, composing luxury one piece at a time: from a considered silhouette, through a hand-finished surface, to a white-glove delivery in the room you've imagined. )}

{lang === 'ar' ? 'الفلسفة' : 'The Philosophy'}

{lang === 'ar' ? 'القطعة الواحدة قبل الكتالوج.' : 'The single piece before the catalogue.'}

{lang === 'ar' ? 'نُؤمنُ بأن الغرفة تتركّب حول قطعةٍ واحدة على حق — كنبة، طاولة، أو لوحة — ثم ينمو كل ما حولها استجابةً لها. لذلك نستثمر وقتنا في الصمتِ المتأنّي لكل قطعة، قبل أن تصل إلى منزلكم.' : 'A room composes itself around one right piece — a sofa, a table, a painting — and grows in response to it. So we spend our time on the considered silence of each piece, long before it reaches your home.'}

{lang === 'ar' ? 'بُنيت دارنا داخل آرت أوف ليفينغ مول لأن الفخامة تتطلّب الرؤية بحجمها الحقيقي — الأقمشة، اللمسات، الإضاءة، الوزن. نحن نُرحّب بكم لقضاء وقتٍ معها قبل أن تختاروا.' : "We chose the Art of Living Mall for our flagship because luxury must be seen in volume — fabric, finish, light, weight. You're welcome to spend time with the pieces before you choose."}

{lang === 'ar' ? 'تعالوا لزيارة الورشة.' : 'Come and see the atelier in person.'}
); } // ---------- Contact page ---------- function ContactPage({ t, lang, openEnquire }) { return (
— {t.nav.contact} —

{lang === 'ar' ? 'اكتبوا' : 'Write,'} {lang === 'ar' ? 'اتّصلوا، أو زوروا.' : 'call, or visit.'}

{lang === 'ar' ? 'نرد على كل استفسار خلال يوم عمل واحد. للزيارات العاجلة، الصالة مفتوحة يوميًا من 10 صباحًا حتى 10 مساءً.' : 'Every enquiry receives a reply within one working day. For urgent visits, the showroom is open daily, 10am to 10pm.'}

{lang === 'ar' ? 'الهاتف' : 'Telephone'}
+971 52 154 1499{lang === 'ar' ? 'يُؤكَّد دعم واتساب' : 'WhatsApp · subject to channel confirmation'}
{lang === 'ar' ? 'البريد' : 'Email'}
Dimoradubai@gmail.com{lang === 'ar' ? 'رد خلال يوم عمل' : 'Reply within one working day'}
{lang === 'ar' ? 'الصالة' : 'Showroom'}
Art of Living MallUnit 1c/1, Ground Floor · Umm Suqeim St, Al Barsha 2, Dubai
{lang === 'ar' ? 'الدوام' : 'Hours'}
10:00 — 22:00{lang === 'ar' ? 'يوميًا · حسب الدوام الرسمي للمول' : 'Daily · per mall-listed hours'}
{lang === 'ar' ? 'تابعونا' : 'Social'}
@dimora.furnitureInstagram · Facebook (Dimora.Dubai) · TikTok
{lang === 'ar' ? 'أرسل استفسارًا' : 'Send an Enquiry'}

{lang === 'ar' ? 'حدّثنا عن الغرفة.' : 'Tell us about the room.'}

{lang === 'ar' ? 'افتح نموذج الاستفسار وأخبرنا بما تبحث عنه. سنرد بتفاصيل القطعة، الأقمشة المتاحة، ومدة التسليم.' : 'Open the enquiry form and tell us what you are looking for. We will reply with piece details, fabric options, and lead times.'}

); } Object.assign(window, { Logo, Hero, Promise, CollectionsTeaser, RoomLooksHome, Bespoke, ShowroomBlock, EnquireBand, Footer, CollectionsPage, RoomLooksPage, ShowroomPage, AboutPage, ContactPage, FauxMap, });