/* ======================================================================== director.jsx, right-rail Demo Director Defines the SCENES list and renders the rail. The state machine for "which scene am I on" lives in app.jsx. ======================================================================== */ const SCENES = [ { id: "intro", title: "Setup the moment", desc: "Frames the disruption + how Wonderful AI shows up across channels.", what: [], }, { id: "email", title: "Lukas gets the bad news", desc: "EK202 to JFK is cancelled. Lukas opens his inbox over coffee, wedding speech tomorrow morning.", what: [ { who: "sys", text: "Mass-issued cancellation email, auto-rebook on EK211 lands AFTER the ceremony" }, ], }, { id: "webchat", title: "Hala opens the chat", desc: "Lukas opens Manage Booking with questions. Hala greets him, hears the constraint (wedding tomorrow), presents ranked options, answers the policy questions.", what: [ { who: "ai", text: "Opens proactively: knows PNR, tier, meal pref, route history" }, { who: "usr", text: "Vents: 7-yr Silver, second cancellation this month, speech tomorrow at 11" }, { who: "ai", text: "Recommends EK203 ranked against the wedding · offers phone or callback" }, ], }, { id: "tap-call", title: "Emirates calls Lukas", desc: "He chose voice. No dialling, no IVR. Hala places the outbound call and the chat context rides with it.", what: [ { who: "sys", text: "Outbound call · verified business caller · chat session attached" }, ], }, { id: "voice", title: "Hala on voice, pressure stays on", desc: "Same agent, same context, now spoken. Lukas is still wound up; Hala holds the line through the cost + backup questions until he exhales.", what: [ { who: "usr", text: "Pushes: am I really booked? what if EK203 cancels too?" }, { who: "ai", text: "Grounded answers: on-time 28/30, free same-cabin rebook, duty of care" }, { who: "ai", text: "Holds seat 23A · queues case for specialist sign-off" }, ], }, { id: "assistant", title: "Marcus commits the rebook", desc: "Senior consultant reviews Hala's case in the approvals queue. Hala held the seat and queued the work, Marcus owns the booking write.", what: [ { who: "sys", text: "Hala's summary, policy quotes, held seat" }, { who: "ai", text: "Pre-flight checks: identity, eligibility, fare delta" }, { who: "usr", text: "One click commits rebook + confirms across email/SMS/WhatsApp" }, ], }, { id: "confirmation", title: "Confirmation lands", desc: "The booking is committed. Confirmation arrives on Lukas's phone: email with the new flight, seat, meal.", what: [ { who: "sys", text: "Email · push · WhatsApp all sent the moment Marcus commits" }, ], }, { id: "closing", title: "Outcome", desc: "What changed for Lukas, Marcus, and the operation.", what: [], }, ]; window.SCENES = SCENES; function Director({ sceneIdx, setSceneIdx, playing, setPlaying, collapsed, setCollapsed, autoplayHint }) { const total = SCENES.length; const pct = Math.round(((sceneIdx + 1) / total) * 100); return ( ); } window.Director = Director;