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. |
||
|---|---|---|
| .. | ||
| cli | ||
| core | ||
| demos | ||
| docs | ||
| mcp | ||
| vue | ||