Purpose
The web component library wraps Base UI primitives with the repository’s neutral shadcn tokens. It includes buttons, dialogs, sidebar, tables, command, code blocks and the shared runtime highlighter. Docs use build-time highlighting instead.
Shadcn trace and code-block components support execution details and code displays. The public ReUI registry adds free time-picker, color-picker, signature-pad, file-type, emoji-picker and cascader components. These are installed source files in this package. Pro blocks require a license and are not included. See the ReUI registry for access rules.
EmojiPicker fetches emojibase-data@17.0.0 from jsDelivr by default; pass local data when external loading is unwanted. Fumadocs is confined to /docs, with headless source/search and build-time MDX. It does not replace application components or install fumadocs-ui.
Public exports
| Subpath | Target |
|---|---|
./globals.css | ./src/styles/globals.css |
./lib/* | ./src/lib/*.ts |
./lib/highlighter | ./src/lib/highlighter.tsx |
./components/* | ./src/components/*.tsx |
./components/reui/* | ./src/components/reui/*.tsx |
./components/reui/time-picker | ./src/components/reui/time-picker.tsx |
./components/reui/color-picker | ./src/components/reui/color-picker.tsx |
./components/reui/signature-pad | ./src/components/reui/signature-pad.tsx |
./components/reui/file-type | ./src/components/reui/file-type.tsx |
./components/reui/emoji-picker | ./src/components/reui/emoji-picker.tsx |
./components/reui/cascader/cascader | ./src/components/reui/cascader/cascader.tsx |
./components/reui/cascader/cascader-async | ./src/components/reui/cascader/cascader-async.tsx |
./components/reui/cascader/cascader-columns | ./src/components/reui/cascader/cascader-columns.tsx |
./components/reui/cascader/cascader-context | ./src/components/reui/cascader/cascader-context.tsx |
./components/reui/cascader/cascader-footer | ./src/components/reui/cascader/cascader-footer.tsx |
./components/reui/cascader/cascader-i18n | ./src/components/reui/cascader/cascader-i18n.tsx |
./components/reui/cascader/cascader-item | ./src/components/reui/cascader/cascader-item.tsx |
./components/reui/cascader/cascader-lib | ./src/components/reui/cascader/cascader-lib.tsx |
./components/reui/cascader/cascader-nav | ./src/components/reui/cascader/cascader-nav.tsx |
./components/reui/cascader/cascader-types | ./src/components/reui/cascader/cascader-types.tsx |
./components/reui/cascader/cascader-virtual | ./src/components/reui/cascader/cascader-virtual.tsx |
./hooks/* | ./src/hooks/*.ts |
./postcss.config | ./postcss.config.mjs |
These paths come from packages/ui/package.json. A . entry is the package root. Conditional targets distinguish platform or type resolution; consumers should import the subpath, not its source file.
How to extend
Reuse an existing primitive before adding one. Put feature data, effects and navigation in application hooks. Preserve accessible labels, keyboard behavior and visible focus. Existing component/lib export patterns are local to this UI package; they do not permit server barrels.
Read the shared web primitives guide for the full flow.