Extract createEditor() to packages/core/src/editor/ folder
Split the 2505-line god store into 13 domain modules sharing an
EditorContext interface:
editor/types.ts — EditorState, EditorOptions, Tool, EditorToolDef
editor/create.ts — createEditor() assembler
editor/viewport.ts — screenToCanvas, applyZoom, pan, zoom*
editor/selection.ts — select, clearSelection, marquee, snap, hover
editor/pages.ts — switchPage, addPage, deletePage, renamePage
editor/shapes.ts — createShape, pen tool, adoptNodesIntoSection
editor/structure.ts — group, ungroup, reorder, reparent, z-order
editor/components.ts — component/instance/detach/componentSet
editor/clipboard.ts — duplicate, copy, paste, delete
editor/undo.ts — commitMove/Resize/Rotation, snapshot
editor/text.ts — startTextEditing, commitTextEdit
editor/nodes.ts — updateNode, setLayoutMode
Move design constants (fills, strokes, zoom) from app to core.
Largest file is structure.ts at 394 lines (was 2505).
App store is now a thin Vue wrapper (747 lines) delegating to
the core Editor — ready for @open-pencil/vue SDK consumption.
All 955 tests pass, 0 lint errors, 1.41% duplication.