The shadcn/ui builder that shadcn add installs, live on this page. Edit a rule and watch the exports.
Install it
One command copies the shadcn/ui builder and the kit-agnostic core it shares with the other kits into components/qnot, and installs @qnot/core and @qnot/react. MIT licensed.
pnpm dlx shadcn@latest add https://coss.com/qnot/r/query-builder-shadcn.jsonFor a Radix-based shadcn/ui project (npx shadcn@latest init --base radix). Adds these shadcn/ui components in your project's style to components/ui if they're missing: badge, button, command, dropdown-menu, input, popover, select, slider, switch, textarea, toggle, toggle-group, tooltip.
Source
4 files, exactly what installsUse it.
The builder is a Radix-based shadcn/ui Select, Command comboboxes in a Popover, ToggleGroup segments and Tooltips on top of @qnot/react's hooks. The hooks own the state; the file owns the markup, so restyling is editing JSX.
It works from any store: pass one you create with useQueryStore or createQueryStore, and read the query with the store's onChange, useQuery() or store.getQuery(). To keep saved queries from react-querybuilder, add format: rqb (migration guide).
What you get.
- Source you ownshadcn add
The builder lands in components/qnot as plain TSX. Change any control; nothing is hidden in a package.
- Typed schemadefineFields
Fields declare their editors: text, number, enum, multi-select, dates, booleans, lists and objects.
- Export anywhereSQL · Mongo · JsonLogic
The store holds plain JSON. Encode it to parameterized SQL, MongoDB, JsonLogic, Elasticsearch or SpEL.
- Undo, drag and drophistory · dnd
Every edit is a step. Drag rules and groups by the handle; locks and limits are respected.
Questions people ask
- Is it free? Do I need an API key or an account?
- It is free and MIT licensed, and there is no API key and no account. The registry is a set of static JSON files on this site; shadcn add downloads them and copies the source into your project. Nothing calls home at runtime.
- Which shadcn/ui setups does it support?
- Radix-based shadcn/ui projects (shadcn init --base radix). Projects using a Base UI style (base-* in components.json) get type errors with this item; use the coss ui builder there, which is built on Base UI.coss ui builder
- What does the command install?
- The builder (components/qnot/kits/shadcn.tsx), the kit-agnostic core it shares with the other kits (components/qnot/kits/shared), the npm packages @qnot/core, @qnot/react and lucide-react, and any of the shadcn/ui components it uses that you do not have yet, in your project's style.
- Can I change how it looks?
- Yes. It is your code, built from your own shadcn/ui components, so it follows your theme tokens and you can edit any control. Running shadcn add again asks before overwriting files you've changed.
- Does it work with the Next.js App Router?
- Yes. The builder file is a client component ('use client'). Render it from a client component of your own that creates the store, as in the example above.
- Can I use it in the same project as coss ui?
- Pick one. The coss ui builder and this one both install their components into components/ui, and the components share names (select, button, tooltip), so mixing them overwrites one with the other.