zeekayandHanzo Dev e12be26871 Name the builder this repo needs
hanzoai/ci delegates by default now, and the door mounts no KMS, so a delegated
build of this image would bake an empty PUBLISHABLE_KEY.

Co-authored-by: Hanzo Dev <[email protected]>
2026-09-10 21:50:07 -07:00
2026-09-10 21:50:07 -07:00
2026-08-29 13:46:59 -07:00
2026-08-29 13:46:59 -07:00
2026-08-29 13:46:59 -07:00
2026-08-29 13:46:59 -07:00
2026-08-21 12:47:37 -07:00
2025-11-02 12:16:10 -08:00
2026-08-29 13:46:59 -07:00
2026-08-29 22:02:18 -07:00
2026-08-21 12:51:11 -07:00

shadcn

Everything shadcn-lineage at Hanzo, in one repo: the CLI, the component registry it serves, the docs sites that publish that registry, and the project templates it scaffolds.

npx shadcn@latest add button       # the CLI
pnpm add @hanzo/shadcn             # the components, as a package

What is here

Path
pkg/cli the shadcn CLI — add, init, build, create, mcp
pkg/components @hanzo/shadcn — the same components as a published package
pkg/tests integration tests that drive the built CLI against fixture projects
app ui.hanzo.ai — the docs site, and app/registry/**, the component SOURCE
apps/v4 the upstream shadcn v4 docs and registry
templates the projects shadcn create scaffolds
tests Playwright e2e of the docs site
skills/shadcn the agent skill for the CLI

Two ways to consume the same components, on purpose. The CLI copies source into your project so you own and edit it; @hanzo/shadcn installs them as a dependency you upgrade. Same Radix behaviour, same standard shadcn tokens.

Registry

app/registry/** is the source of truth. pnpm registry:build compiles it to the JSON the CLI reads, and the docs site serves it at https://ui.hanzo.ai/r/{name}.json.

The index is Index[style][name], not Index[name] — reading it the flat way renders nothing and reports no error.

Tailwind here is the deliverable, not a defect: these files are what the CLI hands to customers. Do not "clean up" a registry.

Develop

pnpm install
pnpm --filter shadcn build          # the CLI
pnpm --filter @hanzo/shadcn build   # the package
pnpm app:dev                        # the docs site, :3333
pnpm v4:dev                         # the upstream v4 app, :4000

Relationship to @hanzo/ui

@hanzo/ui@8 is a different library with a different substrate — it renders on @hanzo/gui so one import serves web, native and desktop, and it carries no Radix and no Tailwind. It lives in hanzoai/ui. The shadcn line lives here.

Licensed MIT OR Apache-2.0. Component patterns from shadcn/ui under MIT — see NOTICE.

S
Description
The shadcn-compatible React surface extracted from @hanzo/ui. Radix behaviour, Tailwind styling, standard shadcn tokens. @hanzo/ui renders on @hanzo/gui now; this is where its shadcn components went.
Readme
45 MiB
Languages
TypeScript 86.1%
MDX 8.5%
HTML 2.9%
CSS 2%
JavaScript 0.4%