openpencil/packages/core/tests/editor
Danila Poyarkov cb7018a2d7
perf: stop repeating glyph coverage and component sync during layout (#957)
* perf(text): keep glyph coverage when layout resizes a text box

Every layout write invalidated a text node's coverage record by id, and the record compared its width and height, so each measurement shaped the text twice. Coverage now ignores the box size unless the text is truncated, and an update that changes only fields coverage compares keeps the record. A demo load went from about 38,000 coverage checks with 228 hits to one shaping per text node.

* perf(editor): skip component sync for layout's own writes

Layout lays out instances itself, and the edit that made it run has already scheduled its sync. Its size and position writes scheduled about 56,000 more, so each yield of an async build re-synchronised components and re-laid out whole pages.
2026-10-07 18:46:56 +00:00
..
clipboard test: typecheck the test suites and fix what that found (#896) 2026-10-05 12:42:38 +00:00
components perf: stop repeating glyph coverage and component sync during layout (#957) 2026-10-07 18:46:56 +00:00
graph test(core): move the fig round-trip suite home, and stop test imports drilling 2026-10-01 14:11:53 +04:00
history feat(ai): show what each AI edit changed in its tool call (#812) 2026-10-03 23:32:37 +04:00
layout feat(fig): occurrence-scoped instance interpretation as the single .fig reader 2026-10-01 11:20:27 +04:00
pages fix: export layers and pages that are not on screen in app mode (#877) 2026-10-04 13:55:23 +00:00
play feat: behaviours and preview mode (#893) 2026-10-06 13:23:05 +00:00
selection test(core): move the fig round-trip suite home, and stop test imports drilling 2026-10-01 14:11:53 +04:00
structure fix: keep stored page backgrounds and number layers by their own page (#949) 2026-10-07 13:35:59 +00:00
undo feat: let a collection name the attribute its modes switch by (#913) 2026-10-06 12:35:41 +00:00
variables fix: keep bound text and visibility in step with their variables (#954) 2026-10-07 18:37:15 +00:00
effects-and-resize.test.ts test(core): move the editor suite into the package (#792) 2026-09-30 10:22:42 +04:00
frame-presets.test.ts fix(layout): size each axis on its own and lay out before geometry reads (#942) 2026-10-07 11:52:08 +00:00
guides.test.ts test(core): move the editor suite into the package (#792) 2026-09-30 10:22:42 +04:00
navigation-lifecycle.test.ts test(core): move the editor suite into the package (#792) 2026-09-30 10:22:42 +04:00
node-preview.test.ts test(core): move the editor suite into the package (#792) 2026-09-30 10:22:42 +04:00
nudge.test.ts test(core): move the editor suite into the package (#792) 2026-09-30 10:22:42 +04:00
opacity.test.ts test(core): move the editor suite into the package (#792) 2026-09-30 10:22:42 +04:00
page-backgrounds.test.ts fix: keep stored page backgrounds and number layers by their own page (#949) 2026-10-07 13:35:59 +00:00
preview-events.test.ts test(core): move the editor suite into the package (#792) 2026-09-30 10:22:42 +04:00
reveal.test.ts feat(code): link the Code tab to canvas layers and sync both ways (#805) 2026-10-04 10:08:40 +00:00
text-auto-resize.test.ts test(core): move the editor suite into the package (#792) 2026-09-30 10:22:42 +04:00
vectorize.test.ts test(core): move the editor suite into the package (#792) 2026-09-30 10:22:42 +04:00
view-state.test.ts test(core): move the editor suite into the package (#792) 2026-09-30 10:22:42 +04:00
viewport.test.ts feat(app): follow people and agents from the toolbar avatars (#807) 2026-10-04 00:09:40 +04:00