The decision is about ownership
An installed library keeps implementation behind a dependency boundary. A source-distributed registry places selected component files inside the application. Both can be composable; the practical difference is who owns adaptation and how updates arrive.
- Prefer a package when coordinated version upgrades and consistent APIs are the priority.
- Prefer source distribution when product-specific changes are expected and the team is prepared to maintain the resulting code.
- In either model, keep each piece of shared state under one explicit owner rather than duplicating it between components.
Check the handoff, not only the demo
Before selecting a component, inspect its dependencies, interaction states, accessibility behavior, responsive limits, and the amount of code the project will own after adoption.