Skip to content

@primer/react@38.19.0

Latest

Choose a tag to compare

@primer primer released this 09 Apr 10:59
· 5 commits to main since this release
5cc0bbc

Minor Changes

  • #7677 c1a81b1 Thanks @TylerJDev! - AnchoredOverlay: Add Popover API to AnchoredOverlay (behind primer_react_css_anchor_positioning feature flag)

  • #7697 990ce7b Thanks @hectahertz! - Stack: Add tight (4px) and cozy (12px) spacing values to gap and padding props. Add paddingBlock and paddingInline props for directional padding control.

Patch Changes

  • #7652 5d19e2b Thanks @owenniblock! - useAnchoredPosition: recalculate overlay position when any scrollable ancestor (or the window) is scrolled.

  • #7707 6431bfe Thanks @liuliu-dev! - Fix anchor-name not being set on the anchor element when SelectPanel is opened in Copilot code agent.

  • #7633 a107d39 Thanks @copilot-swe-agent! - Graduate primer_react_css_has_selector_perf feature flag: the CSS :has() performance optimization (body[data-dialog-scroll-disabled]) is now the default behavior for Dialog scroll disabling

  • #7695 780fc3d Thanks @mattcosta7! - perf(ThemeProvider): Reduce unnecessary renders and effect cascades

    • Replace useState + useEffect SSR hydration handoff with useSyncExternalStore — eliminates post-hydration re-render
    • Replace useState + useEffect in useSystemColorMode with useSyncExternalStore — eliminates effect gap and stale-then-update flicker
    • Cache getServerHandoff DOM read + JSON.parse per ID (runs once, not on every call)
    • Memoize context value object to prevent unnecessary re-renders of all consumers
  • #7706 fd8910a Thanks @liuliu-dev! - ActionList.Item: fix inline descriptions being referenced via aria-labelledby instead of aria-describedby