Registry Architecture
EasyUI eliminates manual registry maintenance. Automated scripts scan TypeScript AST imports, parse prop definitions, package dependencies, and synchronize the shadcn registry and website catalog in real time.
Single Source of Truth Pipeline
Source Code & Meta
Author writes ComponentName.tsx and .meta.ts
- • Component JSX logic
- • Props interface & docs
- • Optional companion CSS
generate-registry.ts
Automated AST scanner inspects imports and types
- • AST dependency resolver
- • Package.json validation
- • Utility file bundler
Synced Endpoints
All registries and catalog endpoints updated
- •
public/r/*.json - • shadcn CLI install targets
- • ⌘K search index
Automated Dependency Discovery
When running npm run component:sync, the generator reads component source code to detect dependencies:
Imports like framer-motion or lucide-react are verified and mapped to the registry dependencies array.
Imports from lib/motion-tokens or lib/utils are automatically added as registry prerequisites so the CLI downloads them cleanly.
Multi-File Widget Support
Complex components split across multiple sub-files in a directory are fully supported:
src/components/ui/custom-dock/
├── CustomDock.tsx # Primary component
├── dock-item.tsx # Sub-component
├── dock-physics.ts # Math/physics helper
└── meta.ts # Metadata descriptorStrict Validation Guarantees
Automated CI verification checks ensure zero broken installations before any release:
One-Command Sync & Validate
Run the sync script anytime a component or metadata changes:
npm run component:sync