Repository navigation
v1.1.3
Repairs the published package, the shadcn registry, and a batch of component defects.
Fixed
The package was unusable in the Next.js App Router. Bundling stripped the per-file "use client" directives, so importing any component from a React Server Component crashed the build with useState is not a function. The directive is now emitted into both the ESM and CJS output, and the packaging smoke test asserts it so it cannot silently disappear again.
Installing via npm produced unstyled components. Tailwind does not scan node_modules, so none of the component classes were generated. The required step is now documented for Tailwind v4 (@source) and v3 (content).
Registry. Components were published as registry:component — the one type the shadcn CLI does not resolve against the consumer's ui alias — and utils was listed as a dependency of every component. Together those wrote cn into the lib directory while rewriting the import to the utils alias: an unresolvable import in any project that relocated utils, and a silent overwrite of the project's own cn in every other case. Components are now registry:ui and assume cn already exists, matching how shadcn publishes its own. Verified across both CLIs and default, custom-ui and custom-utils alias configurations.
Components, each covered by a regression test:
NavBar: picking a language on mobile did nothing — the outside-click handler only guarded the desktop container, closing the menu before the option's click landed.NavBar: the language menu mounted two listboxes into the accessibility tree at once.NavBar: the mobile menu toggle lackedtype="button"(submitting any enclosing form) andaria-expanded;Escapeclosed nothing;body.overflowwas cleared instead of restored; an uncontrolled bar defaulted to"en"even whenlocalesdid not contain it.PhoneInput: the country search box shared a ref with the phone field, so the forwarded ref pointed at the wrong element and selecting a country dropped focus onto an unmounting node.PhoneInput/LanguageSwitcher: the search boxes had no accessible name.
Also: the CJS types condition was missing, so dist/index.d.cts was unreachable; the interfaces page documented a deprecated prop as the real API; the site declared summary_large_image without ever supplying an Open Graph image.
Removed — breaking
Shipped in a patch release by maintainer decision. A ^1.1.0 range picks this up automatically, and the removed props fail silently rather than loudly — update call sites together.
NavBar:currentLocale,onLocaleChange→ usevalue,onValueChangePhoneInput:onChange,showFlag→ useonValueChange,showFlags
Added
@babelize/elements/utils— thecnhelper without the"use client"directive, callable from server components.