It’s a very common use case. First, you iterate and brainstorm, then you organize. First, you create a widget, and later when you a happy with it - you decide to break it into several sub-components (generalization process) While the widget is already a component - breaking it up into several components becomes a very tedious manual process. Here is an example:
- Crete play card component. It has 3 params(Health, Mana, Element), text, image and background.
- When you happy with a card design you decide to make each of its properties components since they will be used elsewhere. So you want to convert Health, Mana, Element, and Background into components.
- You select each of those elements and copy/paste them outside the Card master component.
- You convert each element into a new master component.
- You replace existing elements inside the Card master component with instances of HP, Mana, Element, and BG components (trying to match position and scale)
- Then you decide that BG should have 2 subcomponents as well! Frame and actual BG so you repeat the same tedious steps again and again.
The solution would be:
when the user tries to convert any element inside any master component(MC) into a new component - just create the new MC automatically in the first parent node which will allow that and place it near the edited area. If there is some issue with the team library and shared masters - place the newly created MC in the same scope/document/library as a currently edited MC.