openpencil/tests/engine/figma/api
Danila Poyarkov bb69735d27
feat(lint): suggest group-to-frame and hidden-layer fixes; keep canvas edits in code previews (#870)
* feat(lint): suggest converting groups to frames and deleting hidden layers

no-groups and no-hidden-layers now carry suggestions the Lint panel, the
lint_fix tool and editor.applyLintFixes can apply. A group becomes a frame
in place, keeping its id, children, bounds and look; a hidden layer is
deleted with its children. Neither is offered for locked layers or inside
components and instances, and both are checked again when applied.

The editor gains convertGroupToFrame and deleteNodes, which deleteSelected
now uses, and applies lint fixes through a bridge so structure changes and
property updates share one undo step. lint_fix becomes a document mutation
because atomic tools cannot remove layers.

* fix(code): keep canvas edits made while replaced code waits to render

Replacing all the code drops its layer links until the preview links it
again, so a canvas edit in the preview delay could not be patched into the
code and the preview drew over it. Edits made while code waits to render
are now applied again once the preview has linked the code, in the same
undo step, and reach the code like any other canvas change.

* fix(figma-api): default paint opacity and visibility like Figma

Plugin scripts may leave out a paint's opacity and visible; Figma reads
them back as 1 and true. The fills and strokes setters stored the paint
as given, so the Design panel received an undefined opacity.

* build(dev): forward only errors from the browser console

Vite forwards browser logs when an agent starts the dev server. Serializing
a Vue warning's component props walks the editor state and freezes the
tab, so warnings stay in the browser console.

* fix(code): follow values while they are dragged or scrubbed

Live previews change layers without a new scene version, so the code kept
the old value until the gesture ended. The Code tab now follows preview
updates once per frame, as the Design panel does, and goes back when the
gesture is cancelled.

* fix(code): keep canvas edits when the replaced code fails to preview

A failed preview took the canvas edits waiting for it and dropped them,
and stopped recording new ones, so correcting the code drew over them.
The edits now wait for the next preview.
2026-10-04 12:46:06 +00:00
..
absolute fix(figma-api): expose node transforms 2026-08-03 20:17:32 +03:00
auto-layout test: move prefixed splits into domain folders 2026-05-06 14:27:21 +03:00
corner test: move prefixed splits into domain folders 2026-05-06 14:27:21 +03:00
create Merge master into fix/create-component-drops-bound-variables 2026-09-02 01:09:01 +03:00
document test: move prefixed splits into domain folders 2026-05-06 14:27:21 +03:00
find test: move prefixed splits into domain folders 2026-05-06 14:27:21 +03:00
frozen test: move prefixed splits into domain folders 2026-05-06 14:27:21 +03:00
internals test: move prefixed splits into domain folders 2026-05-06 14:27:21 +03:00
layout feat(scene-graph)!: make a stroke a paint (#864) 2026-10-04 13:38:05 +04:00
min-max test: move prefixed splits into domain folders 2026-05-06 14:27:21 +03:00
node test: move prefixed splits into domain folders 2026-05-06 14:27:21 +03:00
property feat(lint): suggest group-to-frame and hidden-layer fixes; keep canvas edits in code previews (#870) 2026-10-04 12:46:06 +00:00
stroke feat(scene-graph)!: make a stroke a paint (#864) 2026-10-04 13:38:05 +04:00
text test: move prefixed splits into domain folders 2026-05-06 14:27:21 +03:00
tree test: move prefixed splits into domain folders 2026-05-06 14:27:21 +03:00
vector fix(figma-api): match Figma vector editing (#444) 2026-08-02 22:32:16 +03:00
clone.test.ts test(figma): split API coverage 2026-05-06 13:37:15 +03:00
components.test.ts feat(fig): occurrence-scoped instance interpretation as the single .fig reader 2026-10-01 11:20:27 +04:00
expanded.test.ts test(figma): split API coverage 2026-05-06 13:37:15 +03:00
flatten-renderer.test.ts feat(text): wrap styled outline text 2026-05-17 20:23:55 +03:00
grouping-compat.test.ts fix(figma-api): size groups and boolean operations to their contents (#775) 2026-09-30 05:23:59 +04:00
grouping.test.ts test(figma): split API coverage 2026-05-06 13:37:15 +03:00
helpers.ts test(figma): split API coverage 2026-05-06 13:37:15 +03:00
images.test.ts chore: format codebase 2026-05-24 12:15:29 +03:00
mask.test.ts test(figma): split API coverage 2026-05-06 13:37:15 +03:00
selection.test.ts test(figma): split API coverage 2026-05-06 13:37:15 +03:00
serialization.test.ts chore(lint): reject broad unknown type assertions 2026-05-25 00:26:02 +03:00
stubs.test.ts test(figma): split API coverage 2026-05-06 13:37:15 +03:00
traversal.test.ts test(figma): split API coverage 2026-05-06 13:37:15 +03:00
variable-binding-extended.test.ts test: migrate Scene Graph tests into the package and gate new tests/engine files (#790) 2026-09-30 04:53:28 +04:00
variables.test.ts feat(figma-api): expose vector paths and modes 2026-07-22 15:07:20 +03:00