PhoenixKitOG.Web.EditorLive (PhoenixKitOG v0.3.1)

Copy Markdown View Source

The OG template editor — OpenFresco's server-authoritative editor stage on the left, this module's chrome around it: toolbar + insert menu, slots panel, property panel, and the always-on preview pane.

Division of labor (since the OpenFresco switch)

  • OpenFresco.Editor (LiveComponent) owns the stage: it renders the scene via OpenFresco.render_svg/3 (measured text — the same layout the PNG render uses, so WYSIWYG holds by construction) and applies pointer gestures (select/drag/resize/front/delete) through OpenFresco.Editor.Ops, notifying us with {:open_fresco_editor, id, {:scene_changed | :selected, _}}.
  • This LV owns the scene document (loads/saves it on the template row via SceneStore, lazily migrating legacy canvases), the property panel (SceneEdit mutations), the insert menu, keyboard nudges, the media picker, autosave, and the preview pane.

Save semantics

Changes are autosaved on a 800ms debounce. Manual save via Ctrl+S or the "Save" button flushes immediately. A header pill shows saved / saving / unsaved state.