Debugging
Type errors right after install
shadcn add finished, but tsc or next build fails inside the files it just
wrote, with errors like these:
src/components/data-table/data-table-toolbar.tsx
Type '{ children: Element[]; delayDuration: number; }' is not assignable to type 'IntrinsicAttributes & Props<unknown>'.
Property 'delayDuration' does not exist on type 'TooltipProviderProps'.
src/components/data-table/data-table-sheet/data-table-sheet-details.tsx
Property 'render' does not exist on type 'DialogCloseProps'.
src/components/data-table/data-table-filter-controls.tsx
Property 'type' does not exist on type 'AccordionProps'.
src/components/data-table/data-table-infinite/hover-card-timestamp.tsx
Property 'openDelay' does not exist on type 'HoverCardProps'.
src/lib/table-schema/generators/columns.tsx
Type 'boolean | "indeterminate"' is not assignable to type 'boolean | undefined'.With npm, it can fail one step earlier — shadcn add itself exits during
"Installing dependencies":
npm error ERESOLVE could not resolve
npm error While resolving: @base-ui/react@1.8.0
npm error Found: date-fns@3.6.0
npm error Could not resolve dependency:
npm error peerOptional date-fns@"^4.0.0" from @base-ui/react@1.8.0Cause. The project is on Base UI. Since shadcn v4, npx shadcn@latest init -d
defaults to the base-nova preset, which installs Base UI primitives
(@base-ui/react). Their props differ from Radix — delay instead of
delayDuration, render instead of asChild, no type on Accordion — and the
blocks are written against Radix. The data-table block ships no ui/ files of
its own, so the CLI resolves tooltip, accordion, dialog, and the rest from
whatever library your components.json names. (The npm variant is the same
mismatch one layer down: the blocks pin date-fns v3, and @base-ui/react
asks for v4 as a peer.) Check components.json: a "style" starting with
base- is Base UI.
Fix. Switch the project to Radix, then reinstall the blocks so they pick up the Radix primitives:
npx shadcn@latest init -b radix -p nova --force --reinstall
npx shadcn@latest add https://data-table.openstatus.dev/r/data-table.json https://data-table.openstatus.dev/r/data-table-schema.json --overwriteThe CLI asks once whether to continue — answer y. --reinstall rewrites every
file in components/ui/; if you customized any of them, re-apply your changes
afterwards. Verified on a broken Base UI project: the switch plus the re-add
takes about 20 seconds and leaves tsc and next build green. Starting fresh? Initialize with
npx shadcn@latest init -b radix -p nova and the errors never appear — see the
Quick Start.
Base UI support is tracked; until it lands, Radix is the prerequisite on every
install surface (README, llms.txt, the skill, and the MCP get_install_plan).
Performance
We use react-scan for performance debugging:
# .env.local
NEXT_PUBLIC_REACT_SCAN=trueTanStack Query devtools appear automatically in development. For table debug logs:
NEXT_PUBLIC_TABLE_DEBUG=trueTry the debugging tools on the /infinite demo — it has all three enabled in development.
