// Programmes page \u2014 age bands + attendance patterns + camps. function Programmes({ navigate, openTour }) { return (
{/* Age bands */}
{AGE_BANDS.map((a, i) => (
{a.label}
0{i+1}
{a.range}

{a.desc}

Available at all six branches. Infant rooms with attached sleeping areas at Damac Hills and Pavilion.
))}
Aggregator sources have said “birth to 4 yrs” \u2014 we use the official “45 days to 6 yrs” on edu.dibber.com.
{/* Attendance */}
{PROGRAMMES.map((p, i) => (
{p.name}
{p.hours}
{p.note}
))}
{/* A day in the life timeline */}
{/* Vertical line */}
{[ ['07:00', 'Complimentary early drop-off', 'A calm welcome at the door. Coats go in the cubby, shoes off, hellos to the educator.', '#7FB069'], ['08:30', 'Morning circle', 'Heart Culture begins the day. Songs, the calendar, what we\u2019ll do today, who is here, who is missing.', '#E89B3C'], ['09:30', 'Project explorations', 'Small groups work with the seven characters \u2014 numbers, language, art, nature, music, movement.', '#1F6B3B'], ['12:00', 'The Dibber Meal', 'Lunch as curriculum. Pouring, serving, naming, thanking. Conversation is the lesson.', '#B23A48'], ['13:00', 'Rest and quiet', 'Bedrolls out for the youngest. Quiet stories and individual reading for older children.', '#8FCAE0'], ['15:00', 'Outdoor + open studio', 'Climbing, drawing, role play, sandbox. Movement is treated as learning.', '#9D6BAA'], ['18:00', 'Pick-up', 'Goodbyes, the day\u2019s drawing taken home, a small story for tomorrow.', '#13452A'], ].map(([time, title, desc, color]) => (
{time}
{title}

{desc}

))}
{/* Camps */}
Seasonal camps

Spring, Summer, Winter.

Half-term and holiday camps for ages from 2. Cooking, gardening, music, story \u2014 same Nordic principles, slightly louder soundtrack.

Ask on WhatsApp
Dates and ages confirmed per intake \u2014 client to supply schedule
{[ ['Spring', 'Mar / Apr', '#7FB069'], ['Summer', 'Jul / Aug', '#E89B3C'], ['Winter', 'Dec / Jan', '#8FCAE0'], ].map(([name, dates, color]) => (
{name}
{dates}
))}
); } Object.assign(window, { Programmes });