Trang này chưa có bản tiếng Việt. Nội dung dưới đây là bản tiếng Anh.

Changelog

Every release of @comitor/ui, what changed in it, and what you have to change to move up. This is the canonical record — the package’s README points here rather than repeating it. The rest of this site documents the newest release.

Versioning changed at 1.0.0. From 1.0.0 on this is ordinary SemVer: breaking changes ship in a major bump, so an app pinning ^1.0.0 can update without reading this page first. The 0.x rule — breaking changes in a minor bump — explains only the entries below it.

Releases

Fixed

  • Switching from a workspace WITH a logo to one WITHOUT left the WorkspaceSwitcher avatar EMPTY — no image, no initials, until a reload. Radix Avatar keeps its loading status on the Root, and an AvatarImage that unmounts does not reset it, so {url ? <AvatarImage src={url} /> : null} on a reused avatar stayed "loaded" and AvatarFallback never rendered. Fixed in Avatar itself: the Root is rebuilt when a DIRECT-child AvatarImage appears or disappears — so UserAvatar (/shell, switching user) and every app avatar written that way are fixed too. Image A → image B does not rebuild (Radix goes back to "loading" on its own).

Nothing to do — upgrading is enough. Put a key on <Avatar> that follows whether there is an image only when AvatarImage is wrapped in a component of your own instead of sitting directly in <Avatar>, or when <Avatar> + AvatarImage are written directly in a Server Component (RSC turns the type into a lazy reference, so the package cannot see it).

Fixed

  • next dev --webpack returned a 500 on a page loading @comitor/ui/editor through next/dynamic: the exports map declared only types + import, and in webpack mode SWC adds a require.resolveWeak("…") next to dynamic(() => import("…")) — resolved under the require condition, which matched no branch. Turbopack (Next 16's default, for next dev and next build) does not take that path. All nine entries were affected; only /editor showed it, being the one apps load through next/dynamic. Each entry now ends with a "default" pointing at the same ESM file as import — the package is still ESM-only, no CJS is shipped.

Nothing to do.

Format follows Keep a Changelog; versions follow SemVer, strictly from 1.0.0 on and under the 0.x rule above before that.