const { Button, Card, Badge, Callout } = window.LittleTwigletsDesignSystem_f6a0f6; const { useState, useEffect, useRef } = React; /* ---- Icon: renders a Lucide glyph inside a span React fully owns ---- */ function Icon({ name, size = 24, color = "currentColor", style = {} }) { const ref = useRef(null); useEffect(() => { const el = ref.current; if (!el || !window.lucide) return; el.innerHTML = ``; window.lucide.createIcons({ attrs: { width: size, height: size, "stroke-width": 2 } }); }, [name, size]); return ; } const NAV = [ { label: "Home", href: "#home" }, { label: "About", href: "#about" }, { label: "Book", href: "#book" }, { label: "FAQs", href: "#faqs" }, { label: "Contact", href: "#contact" }, ]; function goTo(href) { const el = document.querySelector(href); if (el) el.scrollIntoView({ behavior: "smooth", block: "start" }); } /* ============================ HEADER ============================ */ function Header() { const [open, setOpen] = useState(false); const [scrolled, setScrolled] = useState(false); useEffect(() => { const onScroll = () => setScrolled(window.scrollY > 12); window.addEventListener("scroll", onScroll); return () => window.removeEventListener("scroll", onScroll); }, []); const link = (n) => ( setOpen(false)} style={{ fontFamily: "var(--font-ui)", fontWeight: 600, color: "var(--lt-cocoa)", fontSize: "1rem", padding: "0.4rem 0", letterSpacing: "0.01em" }}> {n.label} ); return (
Little Twiglets Little Twiglets
{open && (
{NAV.map(link)}
)}
); } /* ============================ HERO ============================ */ function Hero() { return (
Little Twiglets — big adventures for little learners

Easy to book, lovely to attend, hard to forget.

Warm, cosy Friday classes for little ones aged 1–5 and their grown-ups — right here in Lutterworth.

{/* image collage */}
); } /* ============================ INFO BAR ============================ */ const INFO = [ { icon: "calendar-days", h: "Term-time", s: "Fridays" }, { icon: "baby", h: "Age", s: "1–5 years" }, { icon: "map-pin", h: "Where", s: "The Pavilion, Lutterworth" }, { icon: "pound-sterling", h: "Drop-in", s: "£7.50 / session" }, ]; function InfoBar() { return (
{INFO.map((it, i) => (
{it.h}
{it.s}
))}
); } /* ============================ ABOUT ============================ */ function Person({ id, name, role }) { return (

{name}

{role}

Add {name.split(" ")[0]}'s short bio here — a warm sentence or two about who they are and what they love about Fridays with the Twiglets. [Placeholder — edit later.]

 Qualified primary school teacher DBS checked Paediatric first aid
); } function About() { return (
The grown-ups behind the giggles

Meet Hannah & Jessie

We're two qualified primary school teachers, parents ourselves, and firm believers that the early years should be full of play. We started Little Twiglets to fill a gap for families near Lutterworth — a warm, welcoming morning where your little one can explore and you can breathe out for a while, too.

}> Add a short paragraph on your passion for supporting local parents and giving little ones a brilliant start — the community you're building and the gap in local classes you set out to fill. [Placeholder — edit later.]
); } /* ============================ SESSIONS ============================ */ function SessionCard({ tag, title, time, accent, desc, icon }) { return (
 {time}
{tag}

{title}

{desc} [Placeholder — edit later.]

45 minutes
); } function Sessions() { return (
One Friday, two ways to play

Two classes, one cosy morning

Pick the session that suits your Twiglet — or make a morning of it and do both.

); } /* ============================ BOOK ============================ */ function Book() { return (
Booking

Grab a Friday, we'll do the rest

Check availability and book your spot below. Schedules, places and payment are handled securely by our booking partner, Happity.

{/* Happity widget placeholder — replace the inner content with the Happity embed code. */}

Happity booking widget goes here

This box is a placeholder for the live Happity bookings widget. When you're ready, paste the embed snippet from your Happity provider account into the #happity-embed container and it will show your real schedule, availability and checkout.

Places are limited each week — booking ahead is the surest way to secure your spot.

); } /* ============================ FAQ ============================ */ const FAQS = [ { q: "Do I need to book in advance?", a: "Booking ahead is best as spaces are limited, but drop-ins are welcome at £7.50 per session if there's room. You can reserve your place through our Happity booking page." }, { q: "What should we bring?", a: "Just comfy clothes that can get a little messy and a water bottle. We provide everything for the play — and we're not precious about mess!" }, { q: "Which session is right for my child?", a: "MOVE (9:30am) is all about music and movement; CREATE (10:30am) is hands-on sensory and craft play. Both suit ages 1–5, and you're very welcome to stay for both." }, { q: "Where exactly are you, and is there parking?", a: "We're at The Pavilion on the recreation ground in Lutterworth, LE17 4RB. [Add a note about parking here.]" }, { q: "Can siblings come along?", a: "Absolutely. Little Twiglets is a family space — add your own note here about sibling pricing or arrangements." }, { q: "What happens during school holidays?", a: "Classes run term-time on Fridays. [Confirm your holiday arrangements here.]" }, ]; function FaqItem({ q, a, open, onToggle }) { return (
{open &&

{a}

}
); } function Faqs() { const [open, setOpen] = useState(0); return (
Good to know

Things parents often ask before their first Friday

{FAQS.map((f, i) => ( setOpen(open === i ? -1 : i)} /> ))}

Still wondering something? { e.preventDefault(); goTo("#contact"); }}>Get in touch — we're happy to help.

); } /* ============================ CONTACT ============================ */ function Contact() { return (
Say hello

Where to find us

Address

The Pavilion

On the recreation ground, Lutterworth, LE17 4RB

Email Hannah & Jessie

hello@littletwiglets.com

Follow along
); } /* ============================ FOOTER ============================ */ function Footer() { return ( ); } /* ============================ APP ============================ */ function App() { return (