openpencil/packages
Danila Poyarkov 2cecdff876 Fix component property override resolution through clone chains
Three changes to correctly resolve component property values:

1. Resolve empty symbolOverride values to component defaults.
   In kiwi binary, an empty ComponentPropValue {} (all fields absent)
   in a symbolOverride's componentPropAssignments means 'reset to
   the component's initialValue default'. This is distinct from
   {boolValue: false} which is an explicit false (field present).
   Build a propDefaults map from componentPropDefs and resolve empty
   values in symbolOverride context.

2. Remove componentId chain walk from applyInstanceDirectAssignments.
   Walking the chain applied base-component assignments to clones
   that should have different values from higher-level symbolOverrides.
   Only apply assignments from the instance's own kiwi data — clones
   inherit correct values via transitive sync.

3. Run a second transitive sync after componentProperties.
   The first sync propagates symbolOverride changes. Component
   property changes (visibility toggles, instance swaps) happen after
   and need their own propagation pass to reach visible-page clones.

Fixes Badge Avatar and Close-Icon visibility in gold-preview.fig
(was false, now correctly true). All 914 tests pass.
2026-03-14 10:21:30 +03:00
..
acp Lint all packages: fix 193 errors across core, mcp, acp 2026-03-09 13:18:08 +03:00
cli Fix lint warnings: non-null assertions, useless spreads, unused code, type safety 2026-03-11 13:33:54 +03:00
core Fix component property override resolution through clone chains 2026-03-14 10:21:30 +03:00
demos feat: mobile layout, PWA support (#27) (#27) 2026-03-05 19:51:51 +03:00
docs Release v0.9.0 2026-03-09 17:43:11 +03:00
mcp Merge pull request #94 from open-pencil/feat/mcp-codegen 2026-03-13 22:56:23 +03:00