openpencil/packages/core/src
Danila Poyarkov abe108c473
Add event emitter to SceneGraph, refactor collab sync
- Add nanoevents to @open-pencil/core, emit typed events from
  SceneGraph mutation methods: node:created, node:updated,
  node:deleted, node:reparented, node:reordered
- Subscribe to node:updated in editor store for renderer
  invalidation (vector path + node picture cache) instead of
  inlining it in updateNode()
- Re-subscribe to graph events after file open/reload (graph
  instance is replaced)
- Replace monkey-patching of graph.updateNode in use-collab with
  event subscriptions for node:created, node:updated, node:deleted,
  node:reparented — fixes sync gaps for create/delete/reparent that
  the monkey-patch missed
- Clean up event subscriptions on collab disconnect
2026-03-09 16:02:54 +03:00
..
kiwi Code review: svg-export/ folder, restore comments, cleanup 2026-03-09 15:22:14 +03:00
profiler Lint all packages: fix 193 errors across core, mcp, acp 2026-03-09 13:18:08 +03:00
render AI chat rendering, undo, visual verification, and provider compatibility 2026-03-09 15:49:29 +03:00
renderer Reduce cyclomatic complexity below 20 in all core functions 2026-03-09 13:40:57 +03:00
rpc XPath query for node selection (#82) 2026-03-09 15:32:27 +03:00
svg-export Code review: svg-export/ folder, restore comments, cleanup 2026-03-09 15:22:14 +03:00
tools AI chat rendering, undo, visual verification, and provider compatibility 2026-03-09 15:49:29 +03:00
canvaskit.ts Lint all packages: fix 193 errors across core, mcp, acp 2026-03-09 13:18:08 +03:00
clipboard.ts Reduce cyclomatic complexity below 20 in all core functions 2026-03-09 13:40:57 +03:00
color.ts Lint all packages: fix 193 errors across core, mcp, acp 2026-03-09 13:18:08 +03:00
constants.ts AI chat rendering, undo, visual verification, and provider compatibility 2026-03-09 15:49:29 +03:00
copy.ts Fix copyFill missing gradientTransform/imageTransform, add copy tests 2026-03-09 08:50:28 +03:00
fig-export.ts Lint all packages: fix 193 errors across core, mcp, acp 2026-03-09 13:18:08 +03:00
figma-api.ts Lint all packages: fix 193 errors across core, mcp, acp 2026-03-09 13:18:08 +03:00
fonts.ts Lint all packages: fix 193 errors across core, mcp, acp 2026-03-09 13:18:08 +03:00
geometry.ts Clean up tools/schema, add geometry.ts, isMixed helper, fix imports, add tests 2026-03-06 22:33:10 +03:00
global.d.ts Add @open-pencil/cli with headless .fig file operations 2026-03-01 01:19:24 +03:00
index.ts Add event emitter to SceneGraph, refactor collab sync 2026-03-09 16:02:54 +03:00
kiwi-serialize.ts Reduce cyclomatic complexity below 20 in all core functions 2026-03-09 13:40:57 +03:00
layout.ts AI chat rendering, undo, visual verification, and provider compatibility 2026-03-09 15:49:29 +03:00
render-image.ts Lint all packages: fix 193 errors across core, mcp, acp 2026-03-09 13:18:08 +03:00
scene-graph.ts Add event emitter to SceneGraph, refactor collab sync 2026-03-09 16:02:54 +03:00
snap.ts Extract @open-pencil/core package 2026-03-01 01:03:07 +03:00
style-runs.ts Revert lint plugin to .js (oxlint uses Node.js internally), add new rules 2026-03-09 10:05:18 +03:00
svg-node.ts SVG export (#52) 2026-03-05 10:31:02 +03:00
text-editor.ts P2P collaboration: cursors, follow mode, cleanup 2026-03-01 18:11:07 +03:00
types.ts Extract @open-pencil/core package 2026-03-01 01:03:07 +03:00
undo.ts Eliminate as Record<string, unknown> casts 2026-03-06 21:43:32 +03:00
vector.ts Lint all packages: fix 193 errors across core, mcp, acp 2026-03-09 13:18:08 +03:00
xpath.ts XPath query for node selection (#82) 2026-03-09 15:32:27 +03:00