EasyUI Logoeasyui
HomeComponentsDocs
EasyUI Logoeasyui
ComponentsDocsGitHubLLMs
© 2026 EasyUI. Built by Suraj Maurya.
React · TypeScript · Motion
//Registry Architecture
Documentation

Getting Started

Architecture & Engine

Architecture & Engine · 01

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

01 · Inputs

Source Code & Meta

Author writes ComponentName.tsx and .meta.ts

  • • Component JSX logic
  • • Props interface & docs
  • • Optional companion CSS
02 · Engine

generate-registry.ts

Automated AST scanner inspects imports and types

  • • AST dependency resolver
  • • Package.json validation
  • • Utility file bundler
03 · Outputs

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:

External NPM Packages

Imports like framer-motion or lucide-react are verified and mapped to the registry dependencies array.

Internal Utilities Linking

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:

Multi-File Component Layout
src/components/ui/custom-dock/
├── CustomDock.tsx          # Primary component
├── dock-item.tsx           # Sub-component
├── dock-physics.ts         # Math/physics helper
└── meta.ts                 # Metadata descriptor

Strict Validation Guarantees

Automated CI verification checks ensure zero broken installations before any release:

All registry JSON files conform to official shadcn schema
Every component has a verified .meta.ts descriptor
Zero missing or unresolvable npm dependencies
Physical file paths on disk match registry targets
Props documentation tables match TypeScript types
Usage examples and code snippets are syntax-checked

One-Command Sync & Validate

Run the sync script anytime a component or metadata changes:

Terminal
npm run component:sync