Repository navigation
Update Bundled @wordpress/* monorepo - #52187
Conversation
This comment was marked as resolved.
This comment was marked as resolved.
blocks 16 types findTransform's result as the union of every transform kind, and files.isMatch takes the file list alone
e2e-test-utils-playwright 2.0.0 looks for Gutenberg trunk's 'Preview (opens in a new tab)', while the WP 7.0/7.1 editor still says 'Preview in new tab', so Forms' openPreviewPage never found it
the substring match also resolved Document Overview in the editor top bar
|
Pushed the fold and a trunk sync. Board is green at Fold of #52188 ( The Trunk sync ( Compat fixes the bump surfaced, one commit each:
Every project with a Next: #52188 closes as superseded, and #52316 revives #50868 so both trains move as one group from now on. |
🎉
We could probably remove the |
jest-console 9.3.0 keeps its console spies across restoreAllMocks(), so afterEach can restore every spy the suite made again
Manual pass, round 2:
|
Done in |
|
Gave this a test run across a WP × Gutenberg matrix — everything looks good apart from one icon regression. Matrix: WP 7.0 (minimum supported) and WP 7.1.1, each with Gutenberg active and inactive, every cell run against both this branch and a trunk control, over 8 admin screens (Premium Analytics, Newsletter, Forms, Jetpack dashboard, Activity Log, Social, VideoPress, block editor). All four cells came back with no runtime differences from trunk — console errors, page errors and failed requests were identical in each one. The only visual difference was the Newsletter onboarding tooltip re-wrapping its text, which is The one thing worth a look: Two smaller instances of the same pattern: Caveat: I couldn't reach the AI image modal directly, so the image above is a reconstruction — the exact SVG markup from both installed icon versions with the exact CSS from the repo, rather than a live capture. Worth confirming against the real modal, and worth checking whether that carousel is still used as-is before anyone spends time on it. |
@wordpress/icons 16 draws 98 icons as strokes with an inline fill:none, so the CSS fill rules that tinted them stopped applying; the AI message keeps fill for its own filled SVG
|
Good catch, and it goes further than those four. icons 16 redraws 98 icons as strokes, so I checked every stylesheet next to a component that imports one of them. Wherever
All swapped to Left alone: rules that already had a matching Not verified live. The carousel and the logo generator still need a look from someone who can reach those modals. |
…rdpress-monorepo # Conflicts: # pnpm-lock.yaml
louwie17
left a comment
There was a problem hiding this comment.
Re-tested after the icon fix (655bbc18da8) and the trunk merge: WP 7.0.4 and 7.1, Gutenberg active and inactive, compared against trunk. No differences apart from the expected Newsletter tooltip re-wrap, and the AI image modal's arrows now match trunk. LGTM 👍
@kat3samsin a quick question since you worked on Image Studio: the legacy AI image modal (with the carousel in ai-client) still opens as a fallback when Image Studio isn't active, e.g. from Social's "Generate image" option or the featured image "Generate with AI" menu. Is that fallback meant to stay, or is it on the way out?
|
@louwie17 thanks for the tag! Yes the legacy AI Image Modal should be on its way out of Social pages. However, it should not show anymore in the Featured Image menu. |





















Closes MONOREP-1277
This PR contains the following updates:
4.54.0→4.55.02.9.0→2.10.0^0.21.0→^0.22.00.21.0→0.22.00.22.0→0.23.08.7.0→8.8.010.54.0→10.55.018.1.0→19.0.015.5.0→16.0.0^15.0.0→^16.0.010.0.0→10.1.05.54.0→5.55.01.54.0→1.55.07.54.0→7.55.00.20.0→0.21.0^0.20.0→^0.21.02.0.0→2.1.02.1.1-next.v.202608281122.0→2.1.1-next.v.202609031004.00.21.0→0.22.0^0.21.0→^0.22.0~1.21.0→~1.22.00.6.2-next.v.202609031004.0→0.7.0Release Notes
WordPress/gutenberg (@wordpress/a11y)
v4.55.0Compare Source
WordPress/gutenberg (@wordpress/admin-ui)
v2.10.0Compare Source
Internal
srcdirectory to npm. The package'sexportsfield only exposes the built artifacts, so the source files were unreachable by consumers and only inflated the package size (#77285).WordPress/gutenberg (@wordpress/boot)
v0.22.0Compare Source
Internal
@wordpress/commands(#82103).WordPress/gutenberg (@wordpress/build)
v0.23.0Compare Source
Breaking Changes
@wordpress/buildno longer parses JSX syntax in.jssource files. Rename these files to.jsxor.tsxbefore building (#82189).Enhancements
@wordpress/browserslist-configfor JavaScript and CSS when the project has no Browserslist config, instead of Browserslist's implicit defaults (#82179)..jsxpackage, route, and widget source files alongside the existing JavaScript and TypeScript extensions, and ignore JSX tests during watch rebuilds (#80990).Bug Fixes
capabilitypage setting, defaultmanage_options) before rendering generated standalone pages, soadmin_initentry points such asadmin-post.phpno longer serve them to logged-out visitors (#82254).@wordpress/themepeer dependency range to allow 2.x releases. (#82139)Internal
@types/nodedevelopment dependency to v24, matching the Node.js version the repository builds and tests against (#82616).WordPress/gutenberg (@wordpress/compose)
v8.8.0Compare Source
Bug Fixes
useResizeObserver: Disconnect the observer when the hook unmounts so queued callbacks cannot run after teardown (#82687).Internal
.jsxextension for JavaScript source files that contain JSX (#80990).WordPress/gutenberg (@wordpress/data)
v10.55.0Compare Source
Internal
use-memo-one(#82103).WordPress/gutenberg (@wordpress/dataviews)
v19.0.0Compare Source
Breaking Changes
Removed the rich text options (
className,clientId,allowedFormats,disableFormats,withoutInteractiveFormatting,preserveWhiteSpace,disableLineBreaks) from theconfigprop ofDataFormControlProps. They were added for the built-inrichtextcontrol (#78471), which has since moved to@wordpress/editor(#81430), so nothing in this package sets or reads them (#82330).DataForm: a combined form field (one with
children) is now treated purely as a layout container. Itsidis no longer resolved against the field definitions: a field sharing thatidno longer contributes validation rules to the group, and thepanellayout no longer uses it for the collapsed summary orreadOnlystate, falling back to the group's first leaf child instead (#82175).If a combined field relied on sharing its
idwith a field to pick the panel summary, declare it throughlayout.summaryinstead. For example, adiscussionfield whoserendersummarizescomment_statusandping_statustogether:If a combined field relied on a same-id field's
isValidrules being applied to the group, move those rules to the child fields.Enhancements
showPlaceholderIfEmptyoption to thepanellayout, which shows the field'splaceholderin the summary when the value is empty (#82527).--wpds-color-stroke-interactive-errorfor the invalid-state focus ring and border (#82410).datetimevalue is edited in. When the site timezone differs from the visitor's, the control renders help text under the input naming the site timezone: the zone name (e.g.(CEST) Europe/Madrid) or the UTC offset for sites pinned to one (#82291).DataViewsPropsandItemWithIdtypes (#82326).DataViewsPropsandItemWithIdtypes and document every type property (#82326).Bug Fixes
DataViewsandDataViewsPicker: thetableandpickerTablelayouts no longer render an empty column for an id inview.fieldsthat has no matching field definition, matching what the other layouts already did. The column header menu moves, inserts and hides columns relative to the rendered columns, so a skipped id no longer offsets those operations; such ids are dropped fromview.fieldsthe next time the menu changes the view (#82601).Field.sortTypeScript type definition to reflect thatsortreceives extracted field values rather thanItemobjects (#82162).isAnyandisNonefilter operators for numeric field values, which previously matched nothing (#77942).isAllfrom the valid operators of thenumber,integer,text,email,urlandtelephonetypes. Their values are scalars, so "includes all of" can never hold for more than one selected value (#82463).DataViewsandDataViewsPicker: move the view back to the last available page when it points past the end of the collection, for instance after deleting the only item of the last page (#82244).Documentation
layout.stylesof thetableandpickerTableviews applies to the columns listed infieldsand not to the primary column, which takes the width the other columns leave over. Fix the swappedmaxWidth/minWidthdescriptions ofColumnStyle(#82238).Internal
./wpbundle (build-wp/index.js) so they resolve without relying on hoisting. (#81843)Menu.PrefixIconfor table column menu icons. (#82346)ValidityIndicatorwithStacknow that the indicator has no outer margin. (#82267)HierarchicalLevelsstory that demonstratesgetItemLevelandview.showLevelsin the table layout (#82344).@wordpress/primitives(#82103)./wpbundle build script that its singleton externals list must stay in sync with the transitive private API usage check (#82027).@types/nodedevelopment dependency to v24, matching the Node.js version the repository builds and tests against (#82616).Bug Fix
colorrather thanfill, so they stay visible now that those icons are stroke-based. (#78812)WordPress/gutenberg (@wordpress/icons)
v16.0.0Compare Source
Breaking Changes
searchicon is now stroke-based. Use CSScolorrather thanfillto recolor it. (#82338)fill: nonevia inlinestyleon the outer<svg>instead of thefillattribute, so the source's intent survives ordinary third-party CSS overrides like.foo svg { fill: currentColor }without using!important. Consumers should use CSScolorto recolor icons. Afillprop or ordinary CSSfilldeclaration no longer overrides the intrinsicfill: none; passstyle={ { fill: value } }to deliberately replace it. (#78808)vector-effect="non-scaling-stroke", so their stroke width stays constant when rendered outside the Icon block at sizes other than 24px. The Icon block deliberately restores the previous proportional stroke scaling. When new bundled icon elements run with an older externalizedwp.components.Icon, supplying an unrelatedstyleprop can replace the icon's intrinsic style; update the paired packages together to retain merged styles. (#78808)Enhancements
vector-effect="non-scaling-stroke"convention so stroke weight stays consistent across icon sizes (originally landed in #78774, reverted in #78854 due to CSS-override regressions, re-introduced here with the resilience fix):addCard,addTemplate,cancelCircleFilled,caution,cautionFilled,code,commentAuthorAvatar,cover,currencyDollar,currencyEuro,currencyPound,drafts,help,helpFilled,image,info,lifesaver,link,linkOff,navigation,notAllowed,paragraph,pending,plusCircle,plusCircleFilled,published,scheduled,siteLogo,square,starEmpty,starFilled,starHalf,styles,time,tip. (#78808)alignCenter,alignJustify,alignLeft,alignNone,alignRight,arrowDownLeft,arrowDownRight,arrowDown,arrowLeft,arrowRight,arrowUpLeft,arrowUpRight,arrowUp,blockMeta,category,chartBar,check,chevronDownSmall,chevronDown,chevronLeftSmall,chevronLeft,chevronRightSmall,chevronRight,chevronUpDown,chevronUpSmall,chevronUp,closeSmall,close,create,download,handle,homeButton,justifyBottom,justifyCenterVertical,justifyCenter,justifyLeft,justifyRight,justifySpaceBetweenVertical,justifySpaceBetween,justifyStretchVertical,justifyStretch,justifyTop,lineDashed,lineDotted,lineSolid,listView,menu,next,plus,positionCenter,positionLeft,positionRight,previous,pullLeft,pullRight,pullquote,reset,resizeCornerNE,rss,separator,stretchFullWidth,stretchWide,upload. (#78812)Bug Fixes
Icon: Merge a consumer-suppliedstyleprop with the icon's intrinsic styles instead of replacing them, so styles likefill: noneon stroke-based icons survive unless the consumer overrides the same property explicitly. (#78808)WordPress/gutenberg (@wordpress/interface)
v10.1.0Compare Source
Internal
ComplementaryAreaMoreMenuItem: Stop passing aselectedIcon. The component the item renders as shows the selection (#81564).@wordpress/a11y(#82103)..jsxextension for JavaScript source files that contain JSX (#80990).WordPress/gutenberg (@wordpress/notices)
v5.55.0Compare Source
WordPress/gutenberg (@wordpress/private-apis)
v1.55.0Compare Source
Bug fixes
@wordpress/dataviewsin the list of core modules allowed to use private APIs. DataViews copies published to npm before the private API cleanup opt in at module load, so plugin bundles embedding them throw without the entry. #82221WordPress/gutenberg (@wordpress/rich-text)
v7.55.0Compare Source
New Features
RichTextFormattype, describing a single format applied to a range of characters within aRichTextValue(#79486).Bug Fixes
contenteditableattribute when a pointer interaction ends withpointercancel, so that swipe scrolling on touch devices no longer leaves text blocks uneditable (#82598).WordPress/gutenberg (@wordpress/route)
v0.21.0Compare Source
WordPress/gutenberg (@wordpress/theme)
v2.1.0Compare Source
New Features
Documentation
ThemeProvidercolor seeds (#82039).Enhancements
@wordpress/theme/lightningcss-plugins/lightningcss-ds-token-fallbacks, with an optional peer range of>=1.33.0 <2.0.0. (#80401)Bug Fixes
Internal
esbuild-esm-loaderdependency in favor of Node.js TypeScript native type-stripping (#82680).@types/nodedevelopment dependency to v24, matching the Node.js version the repository builds and tests against (#82616).@storybook/addon-docsdevelopment dependency used by the package's story documentation (#82676).WordPress/gutenberg (@wordpress/ui)
v0.22.0Compare Source
Breaking Changes
SearchableSelect,SearchableChipSelect, andSearchableChipSelectControl: Hide the creatable footer when the create action is not in the filtered results. It still renders in the footer (not the main list) when it remains initemsand matches the query. To keep a create action after an unmatched query, keep that item initemswith a label orfilterthat matches (#82566).RangeCalendar: Start a new range by default when selecting a date after the current range is complete. SetresetOnSelect={ false }to preserve the previous behavior. (#82612)Menu:--wp-ui-menu-selection-indicator-sizenow controls the selection indicator width only. Its height follows the item label line height. (#82346)Autocomplete.Popup,Combobox.Popup,Select.Popup,SearchableChipSelect, andSearchableChipSelectControl: The popup now defaults to a fixed anchor width. Usewidth="content"on Popups, orpopupWidth="content"on composites, to restore content-sized width between the anchor and available viewport bounds (#82087, #82193).AlertDialog,Autocomplete,Combobox,Dialog,Drawer,Menu,Popover, andSelect) now inherit the theme from their portal destination instead of re-emitting the trigger's nearest contextual theme. Default portals use the document root theme; custom portal containers use their DOM ancestry (#82038).New Features
CheckboxControlcomponent (#82213).Radioform primitive (#82214).Breadcrumbnavigation component. (#80425)SearchableSelectform primitive (#80961).Field.VisualLabelfor a purely visual label outsideField.Root(#82095).Menu: AddPrefixIconfor label-aligned prefix icons, with a default size of 24px. (#82346)Enhancements
Select.Popup: Put overflow onSelect.Listinstead of a nested wrapper, so the listbox is the scroll container. (#82470)AlertDialog,Dialog,Drawer,Popover, andTooltip: Derive Trigger props from the corresponding Base UI components. (#81824)Autocomplete.Status,Combobox.Status: Add aStatussubcomponent that announces async list status to screen readers. Item popups give Status its own collapsing grid row so a visible result count sits above the list without overlaying items (#82195).Autocomplete.Popup,Combobox.Popup,SearchableChipSelect,SearchableChipSelectControl,Select.Popup, andSelectControl: Addwidthon Popups andpopupWidthon composites, with preset width constraints (anchor,content,sm,md,lg, andavailable) for the item popup.SelectControldefaults tocontentto preserve prior popup sizing (#82087, #82193).Link,Menu.LinkItem: Accepttarget, apply the new-tab indicator and accessible notice for_blank, and preserve explicit targets whenopenInNewTabis set. (#82347)Menu: Support multiple item descriptions. (#81825)Menu: UseTextfor item labels and descriptions to share typography and applytext-wrap: pretty. (#82237)Text: Applytext-wrap: prettyby default to improve line wrapping. (#82133)Bug Fixes
Fieldset: Fix gap token to match spec (#75479).Field.Label: Resetvariant="plain"to the default font weight so it no longer inherits the uppercase label emphasis weight (#82213).Select(variant="minimal"): Keep the trigger borderless and unfilled when disabled. InputLayout no longer applies disabled field chrome to.is-borderless. (#82468)Link: Show the new-tab indicator and accessible notice whentargetis an ASCII case-insensitive match for"_blank". (#82447)AlertDialog,Dialog,Drawer: Keep descendant focus rings visible at pinned header and footer edges. (#82443)Menu.LinkItem: Show the new-tab indicator and accessible notice whentargetis an ASCII case-insensitive match for"_blank". (#82442)Input,Textarea,InputControl,TextareaControl: Use--wpds-color-foreground-interactive-neutral-weakfor enabled placeholder text so it meets the 4.5:1 contrast minimum (#82304).SearchableChipSelect,SearchableChipSelectControl: Fix the gray background on disabled search fields in WordPress admin (#82304).ValidityIndicator: Remove the built-in outer margin. Spacing belongs on the consumer.ControlWithErrornow usesStackwithgap="sm"so validated controls keep the same gap. (#82267)ControlWithError: Re-read the native validity after the control blurs, so a control that commits an adjusted value on blur (e.g. a number control clamping to itsmin) doesn't keep showing a stale error message (#82376).AlertDialog: Use a neutral tone for the cancel button. (#82261)Input: Hide the field focus ring when a prefix or suffix slot control is focused. (#82257)Icon: Merge a consumer-suppliedstyleprop with the icon's intrinsic styles instead of replacing them, so styles likefill: noneon stroke-based icons survive unless the consumer overrides the same property explicitly. (#78808)Menu: Align selection indicators and prefix icons with the first label line, including wrapped labels and items with descriptions, and improve checkbox checkmarks' optical alignment. (#82346)Documentation
Internal
AlertDialog: Move confirmation lifecycle state to a private external store so event handlers and React renders read the same synchronous snapshot. (#82131)react-hooks/refsESLint suppressions. (#82131)@types/nodedevelopment dependency to v24, matching the Node.js version the repository builds and tests against (#82616).WordPress/gutenberg (@wordpress/views)
v1.22.0Compare Source
Bug Fixes
useViewConfig: request the full configuration under the same cache key asgetViewConfig( kind, name ), so a route loader that preloads it no longer triggers a second request. (#82141)useView,loadView: ignore a persisted layouttypethatdefaultLayoutsdoes not offer, resolving the type out of the layers below instead. DataViews renders nothing for a layout it is not given, so a preference saved when a screen still offered that layout used to leave the screen empty, with no way to reset it. Such a type does not count as a modification and is written out of the preference on the next update. (#82457)WordPress/gutenberg (@wordpress/widget-primitives)
v0.7.0Compare Source
Documentation
WidgetHostLinks.match: the in-app route it returns carries theroute's query when the href has one; docblock, README, Storybook page
and seam diagram say so
(#82066).
WidgetAction.download: any value butfalsedownloads;trueor''keep the original filename
(#82073).
Configuration
📅 Schedule: Branch creation - Between 12:00 AM and 02:59 AM, on day 1 of the month ( * 0-2 1 * * ) in timezone UTC, Automerge - At any time (no schedule defined).
🚦 Automerge: Disabled by config. Please merge this manually once you are satisfied.
♻ Rebasing: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox.
👻 Immortal: This PR will be recreated if closed unmerged. Get config help if that's undesired.
This PR has been generated by Renovate Bot.