ReleaseScalewayScalewaypublished Oct 28, 2026seen 5h

scaleway/ultraviolet @ultraviolet/ui@3.29.0

scaleway/ultraviolet

Open original ↗

Captured source

source ↗
published Oct 28, 2026seen 5hcaptured 5hhttp 200method plain

@ultraviolet/ui@3.29.0

Repository: scaleway/ultraviolet

Tag: @ultraviolet/ui@3.29.0

Published: 2026-10-28T11:36:52Z

Prerelease: no

Release notes:

Minor Changes

  • #7053 `6163a49` Thanks @jsulpis! - Popover: rebuild on the new Popup and fix its accessibility. Some changes might break tests that look for aria-attributes, focus handling or DOM snapshots.
  • the popover always flips automatically when there is not enough space, so the auto / auto-* placements are deprecated (the auto prefix is ignored)
  • align is deprecated and ignored: the popover is always centered on its reference element
  • dynamicDomRendering is deprecated and ignored: the popup is always rendered dynamically
  • maxWidth is deprecated and ignored: the Popover has a fixed width derived from the size prop
  • maxHeight is deprecated and ignored: the Popover should not have so much content that it needs to scroll
  • accessibility fixes: the dialog is named by its visible title, the trigger exposes relevant aria attributes, focus moves into the dialog on open, is trapped while open and returns to the trigger on close
  • #7024 `b6564cc` Thanks @lisalupi! - Chip fix accessibility issues: complete refactor of the component, deprecate Chip.Icon and add new prop onClose. No visual change expected, except close button style

Patch Changes

  • #7043 `17950b2` Thanks @philibea! - Button: forward ARIA attributes, role, tabIndex, onClick and the accessible label / loader content to custom elements passed via the render prop, matching what the native ` and elements receive. The aria-current prop now accepts the full ARIA value list (page, step`, …) instead of only booleans.
  • #7074 `53aa20b` Thanks @jsulpis! - Plans: style updates
  • remove the primary border on a highlighted Plan
  • remove the blue borders when clicking on the top badge
  • #7043 `17950b2` Thanks @philibea! - Pagination: add hrefBuilder prop to render pagination items as links instead of buttons, and an optional renderLink prop to render a custom link element (e.g. a routing Link) per page. The current page item now uses aria-current="page".
  • #7044 `e75c0f1` Thanks @philibea! - Fix Tooltip accessibility: the closed tooltip's content wrapper created a scrollable region without keyboard access (scrollable-region-focusable), because of dead overflow: auto / maxHeight: 100% styles. They are removed.
  • #7040 `60c1263` Thanks @jsulpis! - SelectInput: search every group (not only the first one) when using type-ahead on a non-searchable grouped dropdown.
  • #7045 `1d00749` Thanks @philibea! - Fix ContentCardGroup.Card accessibility: children of the card link inherited the browser default link color instead of the theme text color, making custom content unreadable on dark themes.
  • #7052 `a8e413c` Thanks @jsulpis! - Popup (v2): Escape only closes the top-level overlay. An open Popup doesn't close its parent Modal/Drawer, and a Modal opened inside a Popup doesn't close the Popup.