openpencil/packages/core/src/editor/components
Danila Poyarkov fee44ebdb7 feat(components): add variant property data model and core actions
Data model:
- Add ComponentPropertyDefinition and ComponentPropertyType to SceneNode
- Add componentPropertyValues for per-variant property values
- Populate from .fig import via componentPropDefs kiwi field
- Parse variant name=value syntax from component names on import

Core actions (packages/core/src/editor/components/variants.ts):
- Add/remove/rename variant property definitions with undo
- Collect variant options from component set children
- Find variant by property values
- Switch instance variant by changing a property value
- Parse and build variant name strings

Combine as variants:
- Parse slash-naming (Button/Primary/Large) into variant properties
- Auto-detect property columns from consistent slash counts
- Populate componentPropertyValues on each variant component

Ref #239
2026-05-07 16:12:46 +03:00
..
focus.ts feat(editor): add event bus for editor lifecycle events 2026-05-06 15:25:27 +03:00
instances.ts feat(editor): add event bus for editor lifecycle events 2026-05-06 15:25:27 +03:00
variants.ts feat(components): add variant property data model and core actions 2026-05-07 16:12:46 +03:00