Start · Distribution
Package vs registry
Choose between managed upgrades and editable source. Both channels come from the same canonical implementation.
Choose packages for managed upgrades
- Use
@lenso/uifor managed JavaScript, declarations, and precompiled CSS. - Import components from named subpaths such as
@lenso/ui/dialog. - Upgrade through package versions and Changesets.
Choose registry source for structural changes
- Use the shadcn-compatible registry when structural ownership matters more than managed updates.
- Install TypeScript and styling source directly into your application.
- Review future upgrades as source diffs; local edits are not overwritten automatically.
| Concern | Package channel | Registry channel |
| --- | --- | --- |
| Source ownership | Lenso UI | Your application |
| Styling | Precompiled @lenso/ui/styles.css | Your application compiles StyleX source |
| Upgrade model | Upgrade the package version | Review and apply source changes |
| Best for | Stable component composition | Structural customization and Recipes |
| Address | npm package subpath | /r/{name}.json or immutable /r/v/{version}/{name}.json |
The channels are not separate implementations. Registry items are built from the canonical
component, primitive, and Recipe source, with parity recorded in registry/parity-manifest.json.