Changelog
Release history of @plaud/design, organized by published version (newest first). Within each version, changes are grouped under ✨ Feature and 🐛 Bug Fix sub-sections, and listed per component. Version numbers come from the package's changeset changelog. Changes that predate the first published release are grouped under Pre-release.
v0.5.0
✨ Feature
- ImageViewer — add drag-to-pan when zoom > 1; mouse drag pans the image when zoomed in; cursor switches to grab / grabbing; boundary-clamped so image never fully leaves the viewport; auto-resets on image switch, zoom-out to default, or viewer close (WEB-1062)
🐛 Bug Fix
- Toast — correct Message form alignment for top-center position; fix left-offset of
w-fitMessage toasts by usingtranslateX(calc(210px - 50%))instead ofleft: 50%which shrank available width (WEB-1105)
v0.4.6
🐛 Bug Fix
- ui — migrate CSS variable class syntax from bracket to parenthesis for Tailwind v4 compatibility; all
xxx-[--radix-yyy]patterns replaced withxxx-(--radix-yyy)acrosspopover,hover-card,tooltip,navigation-menu,dropdown-menu,context-menu,menubar,select; fixes silent failures in v4 consumers (WEB-1108) - ui / Popover / DropdownMenu / ContextMenu / Select — fix wheel scroll blocked inside Dialog by react-remove-scroll;
useStopWheelPropagationhook attaches a nativewheellistener withstopPropagationto portaled overlay content nodes (WEB-1109) - Dialog — content area uses
flex-1to fill space between header and footer; footer stays pinned at bottom when content overflows
v0.4.5
🐛 Bug Fix
v0.4.4
🐛 Bug Fix
- Breadcrumb — Ellipsis menu now passes through
itemRender; newplacementfield added to distinguish dropdown rendering from inline (WEB-1044). Collapsed items previously bypasseditemRenderand fell back to a hardcoded<a href>, causing full-page navigation. They now correctly callitemRenderwithplacement: 'dropdown'. - Calendar — Selected date text invisible in dark mode fixed (WEB-1041). Text color changed from
--Foregrounds-White(always white) to--Labels-Reverse(white in light, black in dark), which always contrasts against the--Labels-Primaryselected background.
v0.4.3
🐛 Bug Fix
- Dialog — DialogTitle now reserves right-side spacing (
--Spacing_40) when close button is visible. WhenshowCloseistrue(the default), long titles are no longer obscured by the absolutely-positioned close button.
v0.4.2
🐛 Bug Fix
- Tooltip / HoverCard — Focus-open tightened to
:focus-visibleonly (DES-134). Mouse focus and programmatic focus restoration (e.g. after a nested DropdownMenu closes) no longer reopen the overlay. Keyboard-visible focus continues to open as before.
v0.4.1
🐛 Bug Fix
- ImageViewer — Default export downloads cross-origin images via blob (DES-133). The default export now fetches the image as a blob and uses a same-origin objectURL for downloads. This ensures cross-origin CDN images are properly downloaded instead of opening in a new tab. It falls back to the original URL if fetch fails or returns a non-2xx status, with delayed objectURL revocation.
v0.4.0
✨ Feature
- Tree — Tree title overflow detection switched to on-demand measurement (DES-132).
useTitleOverflowmeasures lazily on pointer-enter / focus instead of at mount, eliminating large-list layout thrashing. Contract change: long titles are wrapped as a Tooltip trigger only after first hover/focus, and theResizeObserveris removed. ... (rest of the file)
v0.3.1
🐛 Bug Fix
- ImageViewer — Toolbar optimizations for single image + accessibility fixes (DES-130). Hide prev/next navigation for a single image, restore
not-allowedcursor on disabled icons, addrole="status"/aria-live="polite"zoom announcements, and support keyboard zoom (+/=/-).
v0.3.0
✨ Feature
- Overlay — Composable triggers for Tooltip / DropdownMenu / Popover / HoverCard (DES-128). The four children-as-trigger overlays become
forwardRefand forward events / aria relationships / conditional id to the inner Trigger viaextractForwardableTriggerProps, enabling nesting like<Tooltip><DropdownMenu>…</DropdownMenu></Tooltip>.
v0.2.2
🐛 Bug Fix
- Input — Input family PR-review findings, documented in Input allowClear + visual cases.
useClearableInputnow clears via the native value setter + a realinputevent (completeSyntheticEvent);InputSearchclear button gains thefocus-visiblering; focus state is only managed whenallowClearis set; adds a localizableclearButtonAriaLabelprop.
v0.2.1
🐛 Bug Fix
- Input — Clear button (
allowClear) gains afocus-visiblekeyboard focus ring (ring-1+Labels/Primary, WCAG 2.4.7). See Input allowClear + visual cases.
v0.2.0
✨ Feature
- Input — new
allowClearone-click clear capability. - Skeleton — refactored to support multi-block rendering via
items, plus radius/color tokens and card-levelSkeletonGroupshimmer. - useFilePicker — new primitive, wired into ChatInput. (No design-site detail page.)
- Accessibility — a11y automation: vitest-axe unit layer + Playwright integration layer + 49-component audit.
- Button — icon-only interaction states aligned.
- Dialog — scrollable content with flex layout.
- Toast — per-item
closeButtonprop.
🐛 Bug Fix
- Button / Checkbox — disabled label color fixed via
:has(). - Typography — tokens aligned to the Figma design system.
v0.1.0
Skeleton overhaul and assorted component refinements (largely superseded by the more detailed v0.2.0 entries above).
✨ Feature
- Skeleton — refactored for multi-block rendering via
items, addedSkeletonGroupcard-level shimmer. - Button — aligned icon-only states.
- Dialog — support scrollable content.
- Checkbox / RadioGroup / Menu / Slider — style and behavior refinements.
- utils — added the
merge-refshelper, exported from the package entry.
🐛 Bug Fix
- Button — fixed disabled label styling.
v0.0.1
Initial release — publish design packages to the private registry. @plaud/design-tokens
and @plaud/design shipped as built dist artifacts (0.0.1).
Pre-release
Changes made before the changeset-based release flow — not individually versioned.
✨ Feature
- 2026-06-12 — Radio & Checkbox hit area expanded to 20×20 + visual cases (DES-96 / DES-97)
- 2026-06-12 — Breadcrumb title truncation for long text (DES-93)
- 2026-06-12 — Tree drag-and-drop visuals & row layout aligned to new Figma (DES-89)
- 2026-06-08 — Tree item spacing 4px + title/action layout refactor + gradient mask
- 2026-06-03 — RadioGroup & Checkbox add
labelprop to expand click area (DES-68) - 2026-06-03 — Dialog
okButtonProps/cancelButtonProps+ content-only mode + AlertDialog removed - 2026-06-02 — Sync 2026/06/01 component updates (DES-40)
- 2026-06-02 — Dialog adds Size=Emphasized variant (DES-37)
🐛 Bug Fix
- 2026-06-10 — Toast title font weight changed to Emphasized (Semibold)
- 2026-06-03 — Switch Toggle-On color updated to blue #1573D1 (light mode) (DES-69)
- 2026-06-03 — Typography font-size & line-height tokens updated (DES-67)
- 2026-06-03 — Typography Font-Weight-Emphasized token updated (DES-66)
- 2026-06-03 — PageControls Dot color tokens updated (DES-65)
- 2026-05-06 — Second round of fixes (designer feedback) (WEB-377)
- 2026-04-28 — First round of batch style fixes (WEB-377)
Related
- Linear project: Plaud Design