Problem
When a composed spec is generated, content filling a non-default slot on a nested instance is dropped. Figma holds the fill; the generated spec has no record of it, and nothing warns.
Observed on a host whose default-slot fill contains an instance with a second, non-default slot filled two levels below the host root. The fetched payload carries it:
INSTANCE 'twoSlots'
SLOT 'children' → TEXT 'aChild' ← captured
SLOT 'aside' → TEXT 'Aside' ← dropped
The generated spec contains no aside entry, no $slotContent reference, and no $nested path. Only the default slot survives, so a composition loses any content a designer placed in a sibling slot.
ADR-099 narrowed only the single-default-slot case and left the explicit reference mechanism in place for every other slot — so the reference should still be emitted here, anchored on the instance that holds the fill.
Potential solution(s)
- Capture a nested instance's non-default slot fills and emit the explicit slot-content reference for each, anchored on the instance now holding it rather than as a path on the level above
- Where a fill genuinely cannot be represented, warn rather than drop it silently
Acceptance criteria
Case data
- Fixture: Slot Non Default Nested (
1660:441)
- Workspace: specs-testing —
TEST New Layout Test Cases page
- Territory: specs-from-figma
- Size: m
Notes
Found while verifying the #656 fixtures. Render has a matching gap on the write side — PropConfigurations.apply skips every object-valued config, including $slotContent — so a round trip currently loses the fill in both directions.
Implementation details are tracked internally.
Problem
When a composed spec is generated, content filling a non-default slot on a nested instance is dropped. Figma holds the fill; the generated spec has no record of it, and nothing warns.
Observed on a host whose default-slot fill contains an instance with a second, non-default slot filled two levels below the host root. The fetched payload carries it:
The generated spec contains no
asideentry, no$slotContentreference, and no$nestedpath. Only the default slot survives, so a composition loses any content a designer placed in a sibling slot.ADR-099 narrowed only the single-default-slot case and left the explicit reference mechanism in place for every other slot — so the reference should still be emitted here, anchored on the instance that holds the fill.
Potential solution(s)
Acceptance criteria
$nestedpath on the level aboveCase data
1660:441)TEST New Layout Test CasespageNotes
Found while verifying the #656 fixtures. Render has a matching gap on the write side —
PropConfigurations.applyskips every object-valued config, including$slotContent— so a round trip currently loses the fill in both directions.