DeckEditor
fancy-slidesFull editor — rail + canvas + inspector + toolbar.
Why
Presentation editors are notoriously complicated — slide thumbnails, canvas, toolbars, inspectors, speaker notes, undo/redo, element positioning, theme switching all live in separate state machines. Each one drifts independently, breaks on user interactions, and resists agent automation. Building a deck editor from scratch means rebuilding all of these surfaces from the ground up every time you need to embed presentations into an app.
What
DeckEditor is a full-featured presentation editor that pairs a controlled value (a JSON-friendly Deck object) with onChange to let the host manage state. Every mutation — slide add, element move, text edit, theme apply — flows through a typed DeckOp enum, broadcast via the optional onOp callback so agents and audit logs can observe every change identically. The component bundles toolbar + slide rail + canvas + inspector + speaker notes; each panel is independently hideable. Its renderElement prop lets you swap in custom renderers for charts, code, and tables (peer deps that load on-demand).How
Import
DeckEditor from @particle-academy/fancy-slides, wire it to your deck state with <DeckEditor value={deck} onChange={setDeck} onOp={handleOp} />, and feed onOp into your agent panel or audit log. Agents can then emit DeckOp mutations directly and see them reflected in the canvas — no Playwright, no DOM scraping, just stable JSON-shaped operations.