Developer documentation
Install components from the ilinxa registry.
ilinxa pro-ui ships as a shadcn-registry: source files copy into your repo on install, you own the code. No npm package, no version pinning, no abstraction tax — re-run the install with --overwrite to pull upstream changes.
Prerequisites
Your project must already have shadcn initialized. This seeds the cn helper at lib/utils.ts and the components.json config that the CLI reads.
pnpm dlx shadcn@latest initSkip this step if you’ve already used any shadcn component in the project.
One-time setup
Add the @ilinxa namespace to your project’s components.json (merge with your existing config):
"registries": {
"@ilinxa": "https://ui.ilinxa.com/r/{name}.json"
}The {name} placeholder is mandatory — the CLI rejects registries without it.
Install your first component
# Lean install — component source only
pnpm dlx shadcn@latest add @ilinxa/properties-form
# Or with dummy-data fixtures
pnpm dlx shadcn@latest add @ilinxa/properties-form-fixturesThe CLI auto-installs shadcn primitives the component depends on (e.g. button, input, tooltip) and npm peer deps (lucide-react, @codemirror/*, @dnd-kit/*, etc.). Files land at components/<slug>/<sub-path> with the sealed folder intact — under src/ if your project uses a src/ directory. A custom aliases.components doesn't relocate them; imports are rewritten to your aliases either way, so the install compiles as-is.
Use it in your code:
import { PropertiesForm } from "@/components/properties-form";
export function TaskEditor() {
return (
<PropertiesForm
schema={taskSchema}
values={task}
onSubmit={async (next) => { /* persist */ }}
/>
);
}Available components
64 components across 9 categories, each with an optional -fixtures sibling for example data. This list renders from the live registry manifest, so it never goes stale.
Data Display · 27
Forms · 8
Navigation · 4
Feedback · 2
Layout · 2
Media · 9
Code · 1
See per-component docs: browse the full catalog →
Update an installed component
shadcn-registry copies source verbatim — you own the code. To pull upstream changes:
pnpm dlx shadcn@latest add @ilinxa/<slug> --overwriteUse --dry-run first to preview what would change, then merge any local modifications and ship.
Compatibility
- Next.js14 / 15 / 16 — App Router & Pages Router
- React 19 (or 18 with graceful primitive variants)
- Tailwind CSS v4 — CSS variables only, no
tailwind.config.* - Package managers pnpm / bun / yarn — npm + React 19 needs
--legacy-peer-deps
Troubleshooting
Cannot find module "@/lib/utils"
Run `pnpm dlx shadcn@latest init` in the consumer project. `shadcn add` doesn't seed the `cn` helper — `init` does.
Re-running add didn't pull upstream changes
Without --overwrite, locally-modified files are skipped — non-interactive runs auto-answer the overwrite prompt with 'no' and exit 0, so exit-code checks can't detect it. Add --overwrite to update; the CLI diffs per file, so unchanged files are left alone.
npm ERESOLVE on React 19 peer deps
Use `--legacy-peer-deps`, or switch to pnpm/bun which resolve cleanly.
Stale install after upstream registry update
The CLI doesn't cache; the CDN does. Wait out the 5-minute TTL or append ?v=<hash> to the registry URL once.
AI / LLM access
A concise, structured reference for AI agents (Claude Code, Cursor, GitHub Copilot, etc.) is available at:
https://ui.ilinxa.com/llms.txtPoint your AI assistant at this URL when working on a project that consumes the registry. It contains install steps, the full component list, common gotchas, and the namespace setup snippet — everything an AI needs to install components correctly without guessing.
Contributing
Building or modifying components? Two reads:
- README → project setup, registry-build pipeline, scripts, design system
- Component guide → anatomy, rules, lifecycle, worked end-to-end example