KaUI

A personal shadcn/ui registry. Components and hooks I develop , use, packaged so they drop into any shadcn app.

Docs:


This started as a place to stop copy-pasting the same async button between projects. It's grown from there. Every piece comes from real work: problems I kept solving the same way, patterns I wanted to own rather than depend on a library for.

Because this is personal, the coverage is uneven. The async core has been through a lot. The newer stuff hasn't. If you use something and it breaks on a case I haven't hit, , that's would be very appreciate and how the collection will be improves.

Components

NameDescription
async-buttonButton with loading/success/error states and no layout shift
async-scopeDecouple what fires an action from what reacts to it
confirm-actionRequire confirmation before an async action fires
comboboxSingle-select with inline search and async loading
multi-selectMulti-pick combobox with toggle-based selection
password-inputPassword field with show/hide, zxcvbn strength scoring, and rule checklist
input-groupPrefix, suffix, and icon slots for text inputs

Hooks

NameDescription
use-asyncAsync lifecycle : race-safe, typed, fresh callbacks
use-debounceStable { execute, cancel } without stale-closure risk
use-controlled-stateControlled/uncontrolled bridge for building composable inputs
use-filtered-optionsClient-side filtering with async override for combobox-style components

More get added when I pull something reusable out of a project.

Development

bash
pnpm installpnpm dev    # starts the docs site at localhost:4321pnpm build  # type-check + build + regenerates r/*.json from registry.json

Registry source lives under src/registry/base/. The r/*.json files served by the shadcn CLI are generated at build time — don't edit them by hand.

License

MIT