openpencil/packages/scene-graph
Danila Poyarkov 83cf621a91
fix(scene-graph): apply an instance's assignment to a late child (#884)
* fix(scene-graph): apply an instance's assignment to a late child

A component can gain a property-driven layer after an instance of it
exists. Cloning that layer copied the component's default and nothing
resolved the assignment the instance already made, so the layer showed
the default while the rest of the instance showed the assigned value.

Closes #849.

* fix(scene-graph): scope a property lookup to the component that defines it

An instance of a component that defines the id owns that reference even
when it assigns nothing, so the walk stops there instead of reaching an
outer instance's unrelated property of the same id.

Reported in review of #884.

* test(scene-graph): group the component property tests in a folder

Three siblings sharing the property- prefix is the domain-folder rule's
trigger; check:arch flags it.

* fix(scene-graph): resolve a property's owner through the instance chain

Only a component set's definitions reach its variants, so a component
nested in an ordinary component no longer claims the outer component's
property. An instance's link can point at another instance, so the
owner is resolved by following that chain to the component.

Reported in review of #884.
2026-10-05 09:10:44 +00:00
..
scripts feat: split SceneGraph and Pen packages 2026-06-30 10:54:32 +03:00
src fix(scene-graph): apply an instance's assignment to a late child (#884) 2026-10-05 09:10:44 +00:00
tests fix(scene-graph): apply an instance's assignment to a late child (#884) 2026-10-05 09:10:44 +00:00
AGENTS.md refactor: define OpenPencil plugin data in one typed registry (#878) 2026-10-04 17:32:18 +00:00
package.json feat(scene-graph)!: let a SceneGraph take its ID generator (#887) 2026-10-05 08:21:22 +00:00
README.md feat: split SceneGraph and Pen packages 2026-06-30 10:54:32 +03:00
tsconfig.json feat: split SceneGraph and Pen packages 2026-06-30 10:54:32 +03:00
tsconfig.test.json test: migrate Scene Graph tests into the package and gate new tests/engine files (#790) 2026-09-30 04:53:28 +04:00
tsdown.config.ts feat(scene-graph)!: let a SceneGraph take its ID generator (#887) 2026-10-05 08:21:22 +00:00

@open-pencil/scene-graph

Shared OpenPencil design document model.

This package owns SceneGraph, SceneNode, paint/effect/layout/variable types, graph mutation helpers, source metadata, and model-level utilities. It does not own editor state, UI, file format policy, rendering, or app document I/O.