Changelog
Enhancements
Block Library
- Add Crowdsignal Embed Variation for a new oEmbed endpoint. (47382)
- Add anchor support for dynamic blocks. (44771)
- Add box shadow support to blocks (using code editor for now). (46896)
- Cover block: Add HTML element selection. (46969)
- Decode entities in page list item title. (47571)
- Enable image size for featured images in templates. (46848)
- Gallery Block: Add toolbar button to add a caption. (47325)
- Make the off-canvas navigation editor the default experience. (46995)
- Move copy and pasting styles menu items to a separate menu group. (47430)
- Navigation: Add a manage menus button to the menu selector dropdown. (47005)
- Navigation: Allow multiple navigations with the same ref. (47453)
- Navigation: Remove filters disabling tabs for link and submenu. (47593)
- Navigation: Remove the manage menus button from the selector. (47441)
- Page List: Swap the positions of the parent page selector and customize button. (47547)
- Page List: Update the edit/customize copy. (47549)
- Post excerpt: Add text alignment to the placeholder. (45003)
- Query Loop Block: Use BlockPatternsList component for Query block patterns modal. (47366)
- Remove endless spinned for removed navigations. (47578)
- Remove the list view button from the navigation block. (47032)
- Table Block: Support rowspan attribute in table HTML, including when pasting. (46629)
- Update icons for off-canvas navigation. (47337)
- Migrate from TextControl to InputControl to remove margin overrides. (47161)
- Multiple blocks: Add missing has-link-color class to the front. (47357)
- [Navigation]: Update example with no mobile view. (47508)
- Navigation Block List View: Improve the accessible Name of the Tree Grid inside the component. (47031)
Global Styles
- Add "Learn more about CSS" help text to Custom CSS control. (47091)
- Add padding when no tabs in the background panel. (44044)
- Add validation message to custom CSS input. (47132)
- Change "Custom" CSS navigation label to "Additional CSS". (47093)
- Make css input fill remainder of screen by default. (47437)
- Move custom CSS to ellipsis menu if no custom CSS present yet. (47371)
- Move custom css to its own inline style generation method and combine with customizer CSS. (47396)
- ToggleGroupControl: Add new opt-in prop. (47269)
- Add check for edit CSS capability to overflow menu. (47714)
- Reselect blocks after pasting styles. (47590)
Site Editor
- Global Styles: Try per block custom CSS. (46571)
- Restore the navigation menus in the site editor. (47485)
- Update resize handle. (47138)
- Update the site editor for better initialization. (47182)
- Updates some spacing + dimensions in the Site Hub. (47120)
- Add: Navigation menus to the browse mode sidebar. (46436)
- Shadow: Add shadow presets and UI tools in global styles. (46502)
- TextControl: Remove margin overrides and add new opt-in prop (pt 1/2). (47157)
- [Webfonts] Rename to Fonts API. (46749)
- Add layout child sizing to Navigation block. (47584)
- Add missing controls to flex layouts. (47134)
- Always pass layout to inner blocks. (47477)
- Site Hub: Remove the aria-label from the Edit button. (47343)
- Add ability to open the editor on the selected post on navigation. (47387)
- Allow clicking the site editor frame to enter edit mode. (47676)
- Pattern Explorer Modal: Select the first category as the initial category. (47661)
- [Patterns]: Support the
blockTypes
prop for patterns fetched from Pattern Directory. (47677) - Sticky Position: Fix top position while logged in on mobile. (47665)
Testing
- Clean up sidebar tab end-to-end test utils. (47097)
- Components: Refactor more tests to use real timers. (47318)
- Components: Use real timers where possible. (47056)
- Migrate Classic block tests to Playwright. (46689)
Block Editor
- Add custom label to nav block list view appender. (47033)
- Move Link Control action buttons into lower settings area. (47309)
- Pattern Inserter: Show insertion indicator when hovering on patterns. (47316)
- Add clear Apply and Cancel buttons to Link Control. (46933)
- [Inserter]: Openverse integration. (46251)
- TextControl: Remove margin overrides and add new opt-in prop (pt 2/2). (47158)
- [Block editor]: Add setting to disable Openverse integration. (47404)
- Block Inspector: Make Settings tab the default. (47592)
- Sticky Position: Hide controls if the block is non-root (has parents). (47334)
- Block Inspector: Avoid advanced panel only settings tab. (47474)
- Stabilize the experimental control groups. (47105)
- Table: Display fixed width table cells option by default. (47536)
Components
- AligmentMatrixControl: Update center cell label to 'Center'. (46852)
- Button: Try improving padding for icon + text buttons. (46764)
- Fix HStack documentation to show code sample. (47162)
Accessibility
- Announce when block inserted in Navigation list view. (47034)
- Navigation block: Fix some off canvas appender accessibility issues. (47047)
- [Block Editor]: Update text align toolbar control label. (47119)
Themes
- Make child themes inherit parent's style variations. (46554)
- Shadow: Rename shadow palette to presets. (47272)
Bug Fixes
Block Library
- Ensure appropriate fallback menu title in Nav block menu selector. (47073)
- Fix duplicate template parts logic overriding existing template part. (47128)
- Fix post featured image scaling on the front. (46838)
- Nav offcanvas restore click to edit. (47608)
- Navigation Block: Avoid showing the contrast checker warning twice. (47205)
- Navigation Block: Fix warning error when no ref. (47479)
- Page List: Add extra safety around warnings. (47603)
- Refactor convert links. (46930)
- Search Block: Apply border color correctly when button is outside or absent. (47067)
- Template Parts: Avoid duplicate names on conversion from group of blocks. (47082)
- [Block Editor - Post Template]: Fix layout styles. (47221)
- Add an alt attribute to the linked featured image if there is no post title. (46830)
- Post Template: Add default value for
offset
. (47308) - Parse (area-specific) context in template-part block. (47203)
- Don't use methods with the 'gutenberg_' prefix. (47649)
- Navigation: Only show the deleted menu warning if a ref is specified. (47699)
- [Query Loop]: Guard term addtion when the request hasn't resolved. (47688)
Block Editor
- Fix Link Control action button visuals. (47306)
- Fix Link UI incorrect text replacement in Rich Text. (45710)
- In-between inserter: Fix console error when moving mouse in Firefox. (47168)
- Remove double edit button in LinkUI. (47454)
- Template parts and Reusable block: Fix multiple selection overlay styles. (47342)
- Use tertiary variant on Link Control cancel button. (47313)
- Add back block editor settings filter. (47558)
- Backport WP_REST_Pattern_Directory_Controller changes from core. (47409)
- Block Editor: Move component styles needed for iframes to content styles. (47103)
- Block Inserter: Correctly apply style to the default inserter. (47166)
- Block editor: iframe: Fix placeholder colors. (47416)
- Fix react key error with position controls. (47367)
- Revert "Navigation List View: Remove empty cell when there is no edit button". (47061)
- [Block Editor]: Fix
onHover
errors at BlockPattern. (47466) - [Block Editor]: Register the store through
registerStore
. (47488) - Avoid erroring when getQueryArgs processes a malformed URL. (45561)
MediaUtils
: Movewindow
access to function bodies. (46970)- Fix and simplify the Modal dialog close button label. (47540)
- Fix misaligned layout control icons. (47089)
- Fix/flex controls bugs. (47533)
- E2E: Improve multiple block moving test stability. (47423)
- Fix Post Visibility end-to-end tests. (47520)
- Fix padding and margin visualizer positioning. (47483)
- Fix padding and margin visualizer styles. (47139)
- Pattern Inserter: Fix unintended preview panel display when hovering mouse over pattern. (47693)
Site Editor
- Allow resizing the sidebar in the site editor using keyboard. (47176)
- Block Editor: Add inert polyfill to iframe. (47398)
- Browse mode: Add an H2 inside the sidebar navigation screen title. (47241)
- Force visual editor in browse mode. (47329)
- Template Sidebar: Fix list of current template part areas to show nested template parts. (47232)
useDisabled
hook: Fix problem with not working in iframe. (47459)
Global Styles
- Don't remove Custom CSS for users with the correct caps. (47062)
- Fix inline block declaration anti-pattern in global styles UI. (47374)
- Fix param type in Theme_JSON_Resolver DocBlock. (47385)
- Hide Custom CSS setting for users without 'edit_css' cap. (46815)
Webfonts
- Add registered fonts to theme JSON AFTER the child and parent data has been merged. (47290)
- [Fonts API] Remove local() from @font-face styles. (47254)
- [Webfonts] Use Core's
_deprecated_argument()
for deprecating data structures. (47125)
Components
- Fix tab panel initial tab selection. (47100)
- InputControl: Avoid uncontrolled to controlled warning. (47250)
ColorPalette
: Use computed color when css variable is passed toColorPicker
. (47181)- Tabs focus: Followup for Windows high contrast. (46647)
- Support private selectors and actions for stores registered via registry.registerStore() and for sub registries. (47421)
Performance
Block Editor
- Block Editor: Improve
getBlockInsertionPoint
memoization. (47489) - Block Editor: Improve
getPatternsByBlockTypes()
selector performance. (47450) - Block Editor: Memoize
getBlockInsertionPoint
selector. (47448) - Block Editor: Optimize selected blocks in
BlockSettingsMenuControls
. (47462) - Color Palette: Don't use unstable array reference for fallbacks. (47577)
- Element: Enable concurrent mode by implementing mount/unmount with createRoot. (46467)
- Lodash: Refactor away from
_.setWith()
. (47017) - Lodash: Refactor block editor away from
_.map()
. (47214) - Lodash: Deprecate
_.map()
. (47216) - Lodash: Refactor core data away from
_.map()
. (47189) - Log frontend perf results in codehealth. (47442)
- Perf: Rely on more efficient Map for Priority Queue internal state. (47156)
- Block Editor: Add a new hook for getting a stable block context object. (47028)
- Fix crash when the first template-parts is deleted width del key. (47227)
Post Editor
- Lodash: Refactor
HierarchicalTermSelector
away from_.unescape()
. (47567) - Lodash: Refactor
PageAttributesParent
away from_.unescape()
. (47565) - Lodash: Refactor away from
_.clone()
. (47315) - Lodash: Refactor editor away from
_.map()
. (47191) - Lodash: Refactor flat term selection away from
_.unescape()
. (47572) - Lodash: Refactor post editor away from
_.map()
. (47193)
Block Library
- Lodash: Refactor Categories List block away from
_.unescape()
. (47561) - Lodash: Refactor Tag Cloud block away from
_.unescape()
. (47562) - Lodash: Refactor
NavigationLinkEdit
away from_.unescape()
. (47570) - Lodash: Refactor block library away from
_.map()
. (47215) - Lodash: Refactor some
_.isEmpty()
instances. (47353) - Lodash: Refactor blocks away from
_.map()
. (47188) - Lodash: Refactor away from
_.unescape()
. (47613) - Lodash: Refactor components away from
_.map()
. (47192)
Experiments
- Introduce ExperimentalBlockEditorProvider. (47319)
- Sharing private APIs with lock() and unlock(). (46131)
- Use experiment locking/unlocking system for block interface selector and actions. (47375)
- WP_HTML_Tag_Processor: Rename attribute_updates to lexical_updates. (47053)
- Fully remove Navigation Editor screen and associated
edit-navigation
package. (47055) - Tag Processor: Only define classes if they don't already exist. (47434)
Documentation
- Improve gutenberg release documentation to explain the plugin backporting process. (47372)
- Quick update to the Gutenberg plugin description. (47432)
- Fix typo in
InspectorControls
documentation. (47154) - QueryControls: Improve onCategoryChange prop documentation in README. (47452)
- Refactor
Button
component to TypeScript. (46997) - Release docs: Add some extra clarification that no action is required by the coordinator when publishing packages. (47480)
- Remove extra locking from Block Editor store. (47550)
- Theme: Exclude readme from public documentation. (47220
- Toolbar: Unify Storybook examples under one file, migrate from knobs to controls. (47117)
Code Quality
Components
- ColorListPicker: Refactor to TypeScript. (46358)
- ColorPalette, BorderControl, GradientPicker: Refine types and logic around single vs multiple palettes. (47384)
- DropdownMenu: Convert Storybook examples from knobs to controls. (47149)
- KeyboardShortcuts: Convert to TypeScript. (47429)
- Notice: Refactor to TypeScript. (47118)
- NumberControl: Clarify deprecation message about
hideHTMLArrows
prop. (47370) - Refactor
QueryControls
component to TypeScript. (46721) - Remove @storybook/addon-knobs from the repository. (47152)
Dropdown
: Deprecateposition
prop, usepopoverProps
instead. (46865)- Fix missing hook deps in distraction free mode. (47611)
- Sync settings from editor store to block-editor store. (47287)
Site Editor
- Site Hub: Remove the aria-label from the Edit button. (47343)
- Use variation as a prop instead of variationProp in the global styles UI. (47455)
- Update theme.json. (47620)
- Template Parts: Add unit tests for template part creation functions. (47224)
- Lock browse mode selectors and actions. (47678)
Block Library
- Export off canvas editor via experiments package. (47465)
- Image Editor: Merge context provider into editor component. (47171)
- Mark "post author name" as stable / no longer experimental. (45008)
- Navigation: Remove the Gutenberg plugin check. (47579)
Global Styles
- Change 'get_legacy_theme_supports_for_theme_json' compat dir. (47456)
- GlobalStyles hooks: Do not smart merge presets in useGlobalSetting. (47415)
- Move Global Styles APIs to @wordpress/block-editor. (47098)
- Update Global Styles Controller PHPUnit tests. (47502)
Patterns
- Update Block Patterns Controller PHPUnit tests. (47569)
- [Patterns]: Remove bundled patterns. (46450)
- Move Pattern Directory categories endpoint to
compat/6.3
. (47486)
Plugin
- No need to remove the 'gutenberg_enqueue_global_styles_assets' action. (47557)
- Replace 'should_skip_block_supports_serialization' with the core utility method. (47195)
Block Editor
- HeightControl: Stabilise the height control component in the block editor package. (47475)
- Replace registerStore() call with register() in the block-editor store. (47447)
- Stabilise BlockPreview props. (47231)
- Update
eslint-plugin-jsdoc
to support Node 18 and 19. (47490) - Fix: Avoid using index as JSX key on offsite navigation editor LinkControlTransforms. (47083)
- Refactores __ExperimentalOffCanvasEditor to OffCanvasEditor. (47553)
- Rename
__unstableInserterMediaCategories
toinserterMediaCategories
. (47492) - Stabilize the clearBlockSelection editor setting. (47627)
- [Block Editor]: Stabilize __experimentalGetAllowedBlocks. (47210)
- [Block Editor]: Stabilize
__experimentalGetPatternsByBlockTypes
. (47183) - URLInput test: Use valid URL value to pass through validation. (47444)
Testing
- Multi-block selection and rich text test: Wait for expected UI to appear. (47173)
- ESLint: Enable
jest/recommended
for tests. (47065) - Remove old test now migrated to Playwright. (47247)
- RichText tests: Don't use JSDOM explicitly, it's set up by environment. (47445)
- Position Block Support: Add PHP tests. (47626)
Tools
Testing
- Run PHPUnit jobs across multiple PHP versions. (46510)
- Add codeowners for Playwright tests. (47136)
- Add end-to-end tests for 'Import widget area' button. (47131)
- ESLint: Disable jest rules for storybook playwright. (47141)
- ESLint: Fix
jest/expect-expect
violations. (47219) - Reset default_comment_status to previous value after post comments form end-to-end test. (47481)
- Tests: Use real timers where fake timers are unnecessary. (47144)
- WP_HTML_Tag_Processor: Make
get_attribute
reflect attribute set viaset_attribute
, even without updating. (46680) - core-data: Refactor tests to use real timers. (47218)
- test: Add separate mobile experiments file. (47513)
- Migrate a11y end-to-end tests to Playwright. (46038)
- Copy failing WP_HTML_Tag_Processor_Bookmark_Test tests from Core. (47720)
Build Tooling
- Add test for experimental/block-editor-settings-mobile endpoint. (46816)
- Fix GH action warning by upgrading actions/checkout. (47494)
- Performance suite: Track Time To First Byte in the front-end. (47037)
- React Native: Remove duplicate metro packages. (47377)
- Simplify
editor.canvas
by removinghasIframe
. (46986) - Storybook: Update
storybook-source-link
dep. (47425) - The
prelint:Php
script doesn't work as expected when new dev dependencies get added tocomposer.json
. (45468) - end-to-end (cover.test.js): Wait for the height input element. (47294)
- end-to-end (multi-entity-saving.test.js): Wait for the font size picker controls to appear. (47242)
First time contributors
The following PRs were merged by first time contributors:
- @kozer: Avoid erroring when getQueryArgs processes a malformed URL. (45561)
- @renatoagds: (47472)
- @Rodage: Update theme.json. (47620)
Contributors
The following contributors merged PRs in this release:
@aaronrobertshaw @adamziel @afercia @ajlende @andrewserong @annezazu @anton-vlasenko @apeatling @audrasjb @brookewp @carolinan @chad1008 @ciampo @dcalhoun @dmsnell @draganescu @ellatrix @fabiankaegy @felixarntz @flootr @fluiddot @geriux @getdave @glendaviesnz @hellofromtonya @jameskoster @jasmussen @jffng @jorgefilipecosta @jsnajdr @kevin940726 @kienstra @kozer @madhusudhand @Mamaduka @mirka @noisysocks @ntsekouras @ntwb @oandregal @ockham @pbking @renatoagds @richtabor @Rodage @scruffian @SiobhyB @Soean @t-hamano @talldan @tellthemachines @tyxla @welenofsky @WunderBart @youknowriad