Understand the Template V2 Slide Editor Mental Model
mainTemplate V2 is a JSON-driven slide system where a slide's ui layout object defines its structure. The system uses two primary rendering paths:
- Editor Rendering: Uses
surface/TemplateV2KonvaSlide.tsxto render editable Konva nodes viasurface/nodes.tsx. - HTML Rendering/Export: Uses
TemplateV2LayoutPreview.tsxandlib/template-v2-json-to-html.tsto render slide data for previews or exports outside the Konva editor.
Editor Workflow:
- A slide layout is loaded into
TemplateV2KonvaSlide. - The slide is normalized and stored in a local
uiDraftstate. - Konva nodes render components/elements from
uiDraft. - Selection state determines which toolbar or editor is visible.
- Toolbars generate partial changes to elements or components.
commitUi()persists changes to local state, undo history, and Redux.- Redux maintains the current slide
uiwithin the presentation state.