[feature] Modal as Composite