parseGuidOrNull requires the strict Figma GUID shape (sessionID:localID), but every OpenPencil code path that creates a component property definition uses `prop:<hex>` IDs, which never match. applyComponentMetadata silently dropped componentPropDefs/componentPropRefs/componentPropAssignments/ variantPropSpecs whenever any entry failed that check, so any component property created by the app (as opposed to imported straight from a real Figma file) vanished on the very next save. Mint a stable synthetic GUID for non-Figma-shaped property IDs instead of dropping them, memoized per export so defs/refs/assignments/variantPropSpecs pointing at the same property stay consistent. Also fix INSTANCE_SWAP default/preferred/assignment values, which reference target node IDs and had the same GUID-shape assumption, and were never being resolved back to real node IDs on import in the first place (remapComponentIds only handled instance.componentId, not these fields). Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com> |
||
|---|---|---|
| .. | ||
| fig | ||
| pptx/export | ||
| svg | ||
| subgraph.test.ts | ||