openpencil/packages/core
Danila Poyarkov 46e93a1b70 Phase 2: Canvas primitives, renderer renderFromEditorState
New headless components:
- CanvasRoot — provides canvas context, initializes surface + render loop
- CanvasSurface — bare <canvas> element, receives ref from CanvasRoot

SkiaRenderer.renderFromEditorState() — single method replaces 30-line
state sync in use-canvas.ts. Takes EditorState + graph + textEditor
directly, sets all renderer properties and calls render().

Example app updated to use CanvasRoot/CanvasSurface, ToolbarRoot/
ToolbarItem, PageListRoot instead of old monolithic components.
2026-03-17 09:29:38 +03:00
..
assets Refactor font loading: DRY up local font lookup, fix headless fallback 2026-03-16 13:38:16 +03:00
src Phase 2: Canvas primitives, renderer renderFromEditorState 2026-03-17 09:29:38 +03:00
package.json Extract createEditor() to packages/core/src/editor/ folder 2026-03-16 15:14:50 +03:00
tsconfig.json Fix core tsconfig: add ESNext and DOM libs for npm publish 2026-03-04 01:58:37 +03:00