Skip to content

Media Editor Route: Try adding undo/redo and save/cancel actions to the header - #81563

Merged
andrewserong merged 6 commits into
trunkfrom
add/media-editor-route-actions
Aug 19, 2026
Merged

andrewserong merged 6 commits into
trunkfrom
add/media-editor-route-actions

Conversation

@andrewserong

@andrewserong andrewserong commented Aug 13, 2026 •

Copy link
Copy Markdown
Contributor

Part of:

What?

In the Media Editor (Route) experiment, add undo/redo/save/cancel actions to the header, and ensure cropping controls are available on mobile.

Note: this isn't the final place for these things! The goal right now is to get them in there so that we can save and update media items in the experiment. We can explore further polishing in follow-ups.

Why?

The Media Editor (Route) has been a fairly minimal scaffold but now that 7.1 is nearly out, I'm doing a few of these PRs to build out parity with the media editor modal and so that we can start to test out this interface as a potential replacement (one day) for the core editor screen. Or at the very least, to verify how this interface is going to feel.

As part of that, I'm also exploring how we can make the media editor a bit more composable for different kinds of layouts/usages. I'm a bit tentative about these changes, so happy to rollback / go in a different direction if this feels off.

How?

This might be too much! But it's a proposal:

  • In the route-based version of the editor, flesh out the rest of the UI so that we have undo/redo/reset in the header, alongside save and cancel buttons. And in mobile layout we have image controls in a footer toolbar.
  • Split the footerActions out into a dedicated ModalFooter component
  • Reduce the reliance on renderFrame props for rendering components in the frame, and instead use sub-components off MediaEditor (following a similar pattern used by DataViews). In this way, the route-based version can compose via MediaEditor.HistoryActions, MediaEditor.HeaderActions, MediaEditor.SaveActions, and MediaEditor.ImageControls.

Testing Instructions

Enable the Media Editor (Route) experiment:

image

Go to the Media library screen in wp-admin and click on an image or its "Edit" link.

Test out undo/redo/reset and saving / cancelling edits.

❗ Then, smoke test the existing media editor modal in the post editor and make sure I haven't accidentally introduced any regressions!

Screenshots or screencast

Desktop Mobile
image image

Use of AI Tools

Claude Code (Opus 5), reviewed, guided and nudged by me.

@andrewserong andrewserong self-assigned this Aug 13, 2026
@andrewserong andrewserong added [Feature] Media Anything that impacts the experience of managing media [Type] Experimental Experimental feature or API. labels Aug 13, 2026
@github-actions

github-actions Bot commented Aug 13, 2026 •

Copy link
Copy Markdown

Size Change: +150 B (0%)

Total Size: 7.73 MB

📦 View Changed
Filename Size Change
build/scripts/editor/index.min.js 531 kB +151 B (+0.03%)
build/styles/editor/style-rtl.min.css 27.2 kB -2 B (-0.01%)
build/styles/editor/style.css 32 kB +1 B (0%)

compressed-size-action

@github-actions

github-actions Bot commented Aug 13, 2026 •

Copy link
Copy Markdown

Flaky tests detected in 2394067.
Some tests passed with failed attempts. The failures may not be related to this commit but are still reported for visibility. See the documentation for more information.

🔍 Workflow run URL: https://github.com/WordPress/gutenberg/actions/runs/32106613492
📝 Reported tests:

pre-publish panel does not dirty the default category record in /test/e2e/specs/editor/collaboration/http-only/collaboration-taxonomy-record-dirty.spec.ts, passed after 1 failed attempt.
Error: expect(received).toBe(expected) // Object.is equality

Expected: false
Received: true
    at /home/runner/work/gutenberg/gutenberg/test/e2e/specs/editor/collaboration/http-only/collaboration-taxonomy-record-dirty.spec.ts:111:25

@andrewserong
andrewserong force-pushed the add/media-editor-route-actions branch from 3243a6d to e29c59d Compare August 18, 2026 04:42
Comment on lines +94 to 96
.media-editor-modal .media-editor__history-actions .components-button.has-icon:not([aria-disabled="true"]) {
color: var(--wp-admin-theme-color);
}

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This is so that the header undo/redo buttons use the default colors, but the modal footer retains the admin theme color.

So, modal footer:

Image

route-based editor header:

Image

@andrewserong
andrewserong marked this pull request as ready for review August 18, 2026 07:37
@andrewserong
andrewserong requested a review from ramonjd August 18, 2026 07:37
@github-actions

github-actions Bot commented Aug 18, 2026 •

Copy link
Copy Markdown

The following accounts have interacted with this PR and/or linked issues. I will continue to update these lists as activity occurs. You can also manually ask me to refresh this list by adding the props-bot label.

If you're merging code through a pull request on GitHub, copy and paste the following into the bottom of the merge commit message.

Co-authored-by: andrewserong <andrewserong@git.wordpress.org>
Co-authored-by: ramonjd <ramonopoly@git.wordpress.org>

To understand the WordPress project's expectations around crediting contributors, please review the Contributor Attribution page in the Core Handbook.

@andrewserong

andrewserong commented Aug 18, 2026 •

Copy link
Copy Markdown
Contributor Author

@ramonjd I'm a little hesitant about this one, as I'm not too sure if this is the right direction API-wise (i.e. are we now exposing too much of the internals of the media editor?), but it's an attempt at making the media editor composable for different layouts, with the explicit goal of getting it working for the route-based approach.

Very happy to go in a different direction or scale it right back if this refactor feels too much.

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Adds composable media editor actions to the route header and responsive mobile toolbar while preserving modal behavior.

Changes:

  • Exposes history, header, save, and image-control subcomponents.
  • Adds route-level save/cancel and responsive editing controls.
  • Extracts modal footer composition.

Reviewed changes

Copilot reviewed 6 out of 6 changed files in this pull request and generated no comments.

Show a summary per file
File Description
routes/media-editor/style.scss Styles shortcut scope and mobile toolbar.
routes/media-editor/stage.tsx Composes route header and responsive actions.
packages/media-editor/src/components/media-editor/index.tsx Adds contextual action subcomponents.
packages/media-editor/src/components/media-editor-modal/style.scss Updates modal action styling.
packages/media-editor/src/components/media-editor-modal/index.tsx Extracts and composes the modal footer.
packages/media-editor/CHANGELOG.md Documents the API changes.

💡 Add a code-review agent skill or configure MCP servers for context-aware, tailored reviews. Learn more in the docs.

@ramonjd ramonjd left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thanks for getting this PR up so we can test things.

Overall I think the buttons work better in the header, and it's an experiment. Let's just try things out.

scale it right back if this refactor feels too much.

What were you thinking?

In the beginning I had in mind a scenario in which we'd expose generic components so the library (or whatever) could compose its own layout.

That way we wouldn't end up in a situation where a component, e.g., the modal's footer layout, is half-owned by two implementations.

This is still important, but I don't think we should worry about it too much yet. We don't know what the final modal layout will be, let alone the media library 😄

// Renders only where the frame is responsible for these: in the `wide`
// layout the Crop panel holds them, so a frame that places this
// unconditionally still won't show them twice.
if ( ! isImage || layout !== 'narrow' ) {

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This seems out of place. Does the layout check belong here or in renderFrame()? I see the isNarrow && isImage check already there.

Reason why, if someone tries to render <MediaEditor.ImageControls /> in a wide layout, nothing happens, right?

From what I can see, we could remove layout from MediaEditorFrameContextValue to shrink the shared context.

Might be missing something.

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

From what I can see, we could remove layout from MediaEditorFrameContextValue to shrink the shared context.
Might be missing something.

Nope you're not missing something! I think this is just an artifact of me moving things around a bit too much and I lost track of the logic and that I'd already added the layout checks in renderFrame for the route and ModalFooter for the conditional rendering of ImageControls.

I think we still want an internal check for these controls for isImage so that the consumer doesn't have to worry about too many conditions of their own, but let me know if it still feels smelly.

I've pushed an update in 4bea041 that removes layout from the MediaEditorFrameContextValue 👍

@ramonjd

ramonjd commented Aug 19, 2026

Copy link
Copy Markdown
Member

Oh I use really long image file names too for no reason at all...

Kapture.2026-08-19.at.11.22.25.mp4

@andrewserong

Copy link
Copy Markdown
Contributor Author

What were you thinking?
In the beginning I had in mind a scenario in which we'd expose generic components so the library (or whatever) could compose its own layout.

Earlier on in this PR I didn't refactor quite so much, but stuffed additional props into the renderFrame callback. It felt code-smelly so I pressed on and added the sub-components as we currently have in this PR (so MediaEditor.HistoryActions and so on). This latter approach is still a refactor, but it sort of goes half way to your idea of separately exported components.

So I guess my question was: does this in-between state feel okay for now? Having slept on it, I quite like it for now as it seems to work pretty well for our two examples of using the media editor so far, but as you say, it doesn't preclude us from further carving things up further down the track if we want dedicated/fully separate components.

This is still important, but I don't think we should worry about it too much yet. We don't know what the final modal layout will be, let alone the media library 😄

I was thinking the same, glad we're on the same page!

Oh I use really long image file names too for no reason at all...

Yep, the header will need some further polishing for sure! I'd like to play around with a back button there, too, to match the post editor (along with truncating the filename 😄)

…ectly to renderFrame for conditional rendering instead
@andrewserong
andrewserong enabled auto-merge (squash) August 19, 2026 03:28
@andrewserong
andrewserong merged commit feb072b into trunk Aug 19, 2026
52 of 59 checks passed
@andrewserong
andrewserong deleted the add/media-editor-route-actions branch August 19, 2026 05:27
@github-actions github-actions Bot added this to the Gutenberg 23.9 milestone Aug 19, 2026
@@ -1,8 +1,29 @@
@use "@wordpress/base-styles/variables" as *;

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Can we please declare @wordpress/base-styles as a dependency in routes/media-editor/package.json?

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Sure! I'll follow-up. Thanks for flagging @manzoorwanijk!

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Follow-up here: #81845

ramonjd added a commit that referenced this pull request Aug 20, 2026
Rebuilt on trunk after #81563 restructured the same file.

- Rotate, flip, zoom and aspect ratio move under the canvas at every
  width, so there is no longer a wide and a narrow control layout. The
  Crop sidebar panel is deleted with them, and the Crop/Details tab strip
  along with it, leaving Details the whole sidebar height.
- `ComplementaryArea` and `InterfaceSkeleton` are replaced by a flex
  layout the media editor owns. Both are built for the post and site
  editors and imposed breakpoints this component could not control; three
  blocks of CSS existed only to undo them. `ComplementaryArea` also
  force-closed the sidebar below `small` with no way to re-open it, which
  is #81487.
- The docked panel widens from 280px to 400px and docks above `large`
  (960px) rather than `medium` (782px), where a 400px column was clipped
  by the modal's edge. Below that it takes the whole body, switched by
  the Details toggle in the header.
- The keyboard-shortcuts icon drops below `small`; Shift+Alt+H is
  unaffected.
- Alt text sorts above title in the details form. The previous code
  filtered the caller's field array by membership, so it kept whatever
  order `usePostFields` supplied.

`MediaEditor.ImageControls` is kept but renders nothing, so the
full-screen route keeps compiling; `scope` is likewise accepted and
inert. Both are marked deprecated.

Checked in the modal at 1400/1000/782/390px: panel 400px and unclipped
where it docks, full-body below, keyboard icon absent at 390px, alt text
first at every width.

Fixes #81487
ramonjd added a commit that referenced this pull request Aug 21, 2026
Rebuilt on trunk after #81563 restructured the same file.

- Rotate, flip, zoom and aspect ratio move under the canvas at every
  width, so there is no longer a wide and a narrow control layout. The
  Crop sidebar panel is deleted with them, and the Crop/Details tab strip
  along with it, leaving Details the whole sidebar height.
- `ComplementaryArea` and `InterfaceSkeleton` are replaced by a flex
  layout the media editor owns. Both are built for the post and site
  editors and imposed breakpoints this component could not control; three
  blocks of CSS existed only to undo them. `ComplementaryArea` also
  force-closed the sidebar below `small` with no way to re-open it, which
  is #81487.
- The docked panel widens from 280px to 400px and docks above `large`
  (960px) rather than `medium` (782px), where a 400px column was clipped
  by the modal's edge. Below that it takes the whole body, switched by
  the Details toggle in the header.
- The keyboard-shortcuts icon drops below `small`; Shift+Alt+H is
  unaffected.
- Alt text sorts above title in the details form. The previous code
  filtered the caller's field array by membership, so it kept whatever
  order `usePostFields` supplied.

`MediaEditor.ImageControls` is kept but renders nothing, so the
full-screen route keeps compiling; `scope` is likewise accepted and
inert. Both are marked deprecated.

Checked in the modal at 1400/1000/782/390px: panel 400px and unclipped
where it docks, full-body below, keyboard icon absent at 390px, alt text
first at every width.

Fixes #81487
ramonjd added a commit that referenced this pull request Aug 21, 2026
None of the three entries were breaking. `scope` is still accepted and
still compiles; `HistoryActions` rendering nothing under a condition is
not an API change; and `MediaEditor.ImageControls` was added in #81563
and has never shipped, so no released caller can reference it.

The two that describe real API movement move to Enhancements. The
`scope` entry from #81559 goes: it described the same work the
`ComplementaryArea` line above it already covers.
ramonjd added a commit that referenced this pull request Aug 24, 2026
Rebuilt on trunk after #81563 restructured the same file.

- Rotate, flip, zoom and aspect ratio move under the canvas at every
  width, so there is no longer a wide and a narrow control layout. The
  Crop sidebar panel is deleted with them, and the Crop/Details tab strip
  along with it, leaving Details the whole sidebar height.
- `ComplementaryArea` and `InterfaceSkeleton` are replaced by a flex
  layout the media editor owns. Both are built for the post and site
  editors and imposed breakpoints this component could not control; three
  blocks of CSS existed only to undo them. `ComplementaryArea` also
  force-closed the sidebar below `small` with no way to re-open it, which
  is #81487.
- The docked panel widens from 280px to 400px and docks above `large`
  (960px) rather than `medium` (782px), where a 400px column was clipped
  by the modal's edge. Below that it takes the whole body, switched by
  the Details toggle in the header.
- The keyboard-shortcuts icon drops below `small`; Shift+Alt+H is
  unaffected.
- Alt text sorts above title in the details form. The previous code
  filtered the caller's field array by membership, so it kept whatever
  order `usePostFields` supplied.

`MediaEditor.ImageControls` is kept but renders nothing, so the
full-screen route keeps compiling; `scope` is likewise accepted and
inert. Both are marked deprecated.

Checked in the modal at 1400/1000/782/390px: panel 400px and unclipped
where it docks, full-body below, keyboard icon absent at 390px, alt text
first at every width.

Fixes #81487
ramonjd added a commit that referenced this pull request Aug 24, 2026
None of the three entries were breaking. `scope` is still accepted and
still compiles; `HistoryActions` rendering nothing under a condition is
not an API change; and `MediaEditor.ImageControls` was added in #81563
and has never shipped, so no released caller can reference it.

The two that describe real API movement move to Enhancements. The
`scope` entry from #81559 goes: it described the same work the
`ComplementaryArea` line above it already covers.
ramonjd added a commit that referenced this pull request Aug 24, 2026
Rebuilt on trunk after #81563 restructured the same file.

- Rotate, flip, zoom and aspect ratio move under the canvas at every
  width, so there is no longer a wide and a narrow control layout. The
  Crop sidebar panel is deleted with them, and the Crop/Details tab strip
  along with it, leaving Details the whole sidebar height.
- `ComplementaryArea` and `InterfaceSkeleton` are replaced by a flex
  layout the media editor owns. Both are built for the post and site
  editors and imposed breakpoints this component could not control; three
  blocks of CSS existed only to undo them. `ComplementaryArea` also
  force-closed the sidebar below `small` with no way to re-open it, which
  is #81487.
- The docked panel widens from 280px to 400px and docks above `large`
  (960px) rather than `medium` (782px), where a 400px column was clipped
  by the modal's edge. Below that it takes the whole body, switched by
  the Details toggle in the header.
- The keyboard-shortcuts icon drops below `small`; Shift+Alt+H is
  unaffected.
- Alt text sorts above title in the details form. The previous code
  filtered the caller's field array by membership, so it kept whatever
  order `usePostFields` supplied.

`MediaEditor.ImageControls` is kept but renders nothing, so the
full-screen route keeps compiling; `scope` is likewise accepted and
inert. Both are marked deprecated.

Checked in the modal at 1400/1000/782/390px: panel 400px and unclipped
where it docks, full-body below, keyboard icon absent at 390px, alt text
first at every width.

Fixes #81487
ramonjd added a commit that referenced this pull request Aug 24, 2026
None of the three entries were breaking. `scope` is still accepted and
still compiles; `HistoryActions` rendering nothing under a condition is
not an API change; and `MediaEditor.ImageControls` was added in #81563
and has never shipped, so no released caller can reference it.

The two that describe real API movement move to Enhancements. The
`scope` entry from #81559 goes: it described the same work the
`ComplementaryArea` line above it already covers.
ramonjd added a commit that referenced this pull request Aug 27, 2026
Rebuilt on trunk after #81563 restructured the same file.

- Rotate, flip, zoom and aspect ratio move under the canvas at every
  width, so there is no longer a wide and a narrow control layout. The
  Crop sidebar panel is deleted with them, and the Crop/Details tab strip
  along with it, leaving Details the whole sidebar height.
- `ComplementaryArea` and `InterfaceSkeleton` are replaced by a flex
  layout the media editor owns. Both are built for the post and site
  editors and imposed breakpoints this component could not control; three
  blocks of CSS existed only to undo them. `ComplementaryArea` also
  force-closed the sidebar below `small` with no way to re-open it, which
  is #81487.
- The docked panel widens from 280px to 400px and docks above `large`
  (960px) rather than `medium` (782px), where a 400px column was clipped
  by the modal's edge. Below that it takes the whole body, switched by
  the Details toggle in the header.
- The keyboard-shortcuts icon drops below `small`; Shift+Alt+H is
  unaffected.
- Alt text sorts above title in the details form. The previous code
  filtered the caller's field array by membership, so it kept whatever
  order `usePostFields` supplied.

`MediaEditor.ImageControls` is kept but renders nothing, so the
full-screen route keeps compiling; `scope` is likewise accepted and
inert. Both are marked deprecated.

Checked in the modal at 1400/1000/782/390px: panel 400px and unclipped
where it docks, full-body below, keyboard icon absent at 390px, alt text
first at every width.

Fixes #81487
ramonjd added a commit that referenced this pull request Aug 27, 2026
None of the three entries were breaking. `scope` is still accepted and
still compiles; `HistoryActions` rendering nothing under a condition is
not an API change; and `MediaEditor.ImageControls` was added in #81563
and has never shipped, so no released caller can reference it.

The two that describe real API movement move to Enhancements. The
`scope` entry from #81559 goes: it described the same work the
`ComplementaryArea` line above it already covers.
wporg-sync pushed a commit to WordPress/wordpress-develop that referenced this pull request Sep 8, 2026
This updates the pinned commit hash of the Gutenberg repository from `ae8b34d78e1abc6d1c866fdc00080a1452de82ad ` (version `23.8.0`) to `658c8cbe89db5d90279051d3bb816ca210fe4646` (version `23.9.0`).

A full list of changes included in this commit can be found on GitHub: https://github.com/WordPress/gutenberg/compare/v23.8.0..v23.9.0.

- Env: Update git to latest commit when `--update` passed (WordPress/gutenberg#81447)
- InputControl: Vertically center date and time input values in Safari (WordPress/gutenberg#81361)
- DataViews: vendor `ValidatedComboboxControl` (WordPress/gutenberg#81449)
- Icon: Fix margin being applied twice in the editor (WordPress/gutenberg#81292)
- Docs: Add Background image control Readme (WordPress/gutenberg#69409)
- Dimensions: Fix aspect ratio and scale controls not reflecting external updates (WordPress/gutenberg#80747)
- DataViews: vendor `ValidatedFormTokenField` (WordPress/gutenberg#81451)
- Docs: Fix dead link in the dynamic blocks tutorial (WordPress/gutenberg#81399)
- DataViews: vendor `ValidatedToggleGroupControl` (WordPress/gutenberg#81450)
- Update 23.8 release changes on trunk (WordPress/gutenberg#81485)
- Adds README for inspector-controls-tabs component (WordPress/gutenberg#69072)
- BlockEditVisuallyButton: Update Developer Documentation (WordPress/gutenberg#68987)
- Storybook: Upgrade Vite to 8 (WordPress/gutenberg#81494)
- Packages: Move unreleased changelog entries out of the 23.8 published versions (WordPress/gutenberg#81502)
- Theme: Avoid root-level relational selectors (WordPress/gutenberg#81457)
- Theme: Move changelog entry to unreleased (WordPress/gutenberg#81508)
- Admin UI: Add Navigation component and Page navigation slot (WordPress/gutenberg#79746)
- Editor: Correctly mark ToolsMoreMenuGroup as a private SlotFill (WordPress/gutenberg#81503)
- Fix: Term Description block skips display filters inside Terms Query. (WordPress/gutenberg#81290)
- DataForm: Fix the datetime control sending two updates per calendar interaction (WordPress/gutenberg#81440)
- Editor: Stop `:has()` selectors recalculating the whole document on every block selection (WordPress/gutenberg#81471)
- Fix: getQueryArgs discards everything after the second = in a query argument value (WordPress/gutenberg#81066)
- DOM: treat a caret at a soft line wrap as an ambiguous position in Firefox (WordPress/gutenberg#81003)
- In-between indicator: make symmetric (WordPress/gutenberg#68074)
- Fix: Delete key on empty heading transforms following paragraph into heading (WordPress/gutenberg#78779)
- Media editor: keep initial modal focus on the dialog frame (WordPress/gutenberg#81541)
- Writing flow: select next block on Enter key (WordPress/gutenberg#63484)
- Media Editor Route Experiment: Override media edit links to point to the new experimental media editor (WordPress/gutenberg#81559)
- DataViews: vendor `ValidatedToggleControl` (WordPress/gutenberg#81492)
- Release: Improve changelog categorization (WordPress/gutenberg#81475)
- Docs: Add Block Editing Mode Readme. (WordPress/gutenberg#69411)
- Editor: Use PluginSidebar in GlobalStylesSidebar (WordPress/gutenberg#81570)
- Docs: Fix broken links to the Block API reference guides. (WordPress/gutenberg#81571)
- Adds JSdoc for `column` and `columns` block's edit.js (WordPress/gutenberg#68873)
- Adds JSdoc for `audio` block's edit.js (WordPress/gutenberg#68865)
- Refactor: Convert `createColorHOC` to functional component (WordPress/gutenberg#70408)
- Adds JSdoc for `avatar` block's edit.js (WordPress/gutenberg#68867)
- Editor: Speed up the hierarchical term selector for large taxonomies (WordPress/gutenberg#81376)
- Extensible Site Editor: Preview the site on Home for classic themes (WordPress/gutenberg#81578)
- TypeScript: Add typecheck script and split root tsconfig into build and dev solutions (WordPress/gutenberg#81499)
- Packages: Split blob, grid, interactivity, and theme tsconfigs (WordPress/gutenberg#81509)
- Vitest: Resolve @flakiness/vitest reporter to an absolute path (WordPress/gutenberg#81582)
- Update waveform player dependency patch (WordPress/gutenberg#81454)
- Dashboard Widgets: promote high-relevance actions into a chrome footer (WordPress/gutenberg#81556)
- Extensible Site Editor: Gate theme screens on theme support (WordPress/gutenberg#81581)
- Editor: Register the editor keyboard shortcuts from the provider (WordPress/gutenberg#81580)
- Base styles: Streamline focus ring override (WordPress/gutenberg#81242)
- Components: Align legacy form control focus rings with WPDS (WordPress/gutenberg#80417)
- Base Styles: Align `input-control` mixin to design system (WordPress/gutenberg#81357)
- Add Gutenberg version details for WordPress 7.1 (WordPress/gutenberg#81600)
- Fix viewport state values set by grid resizer (WordPress/gutenberg#81601)
- Block editor: add an inserter to the parent selector (WordPress/gutenberg#81532)
- url: clamp the truncated file name slice in filterURLForDisplay (WordPress/gutenberg#81529)
- Fix parent inserter alignment with text labels enabled (WordPress/gutenberg#81608)
- URL: Stop normalizePath throwing on a malformed percent sequence (WordPress/gutenberg#81086)
- Extensible Site Editor: Add the Identity route (WordPress/gutenberg#81576)
- ComboboxControl: narrow `onChange` callback type to `string` | `null` (WordPress/gutenberg#81568)
- Storybook: Add Story for URLPopup component (WordPress/gutenberg#68449)
- Extensible Site Editor: Show only the style book on Styles for classic themes (WordPress/gutenberg#81579)
- Global Styles: Expose additional elements in Typography and Colors (WordPress/gutenberg#80852)
- Storybook: Add Story for BlockPopover (WordPress/gutenberg#68681)
- Block Editor: Never spotlight blocks in a preview (WordPress/gutenberg#81615)
- Boot: Let the editor canvas navigate between entity records (WordPress/gutenberg#81590)
- Block API: Declare block keyboard shortcuts on variations and transforms (WordPress/gutenberg#81588)
- Storybook: Add Story for  InnerBlocks (WordPress/gutenberg#68651)
- Boot: Translate the canvas click-to-edit label (WordPress/gutenberg#81620)
- Perf: Report the first block selection as its own metric (WordPress/gutenberg#81616)
- Boot: Contain a surface failure to that surface (WordPress/gutenberg#81622)
- Boot: Warn before leaving with unsaved changes (WordPress/gutenberg#81625)
- Env: Fall back to cached docker images when the registry is unreachable (WordPress/gutenberg#81631)
- Editor: Refactor 'ErrorBoundary' to use the new recommended components (WordPress/gutenberg#81638)
- Fix playlist track toolbar insertion (WordPress/gutenberg#81639)
- Playlist Track: Show upload spinner inline (WordPress/gutenberg#81445)
- Admin UI: Fix the primary color of the Fresh admin color scheme (WordPress/gutenberg#81618)
- Inner Blocks: Fix bug that caused alignment controls to show in Image blocks within a Gallery (WordPress/gutenberg#81606)
- Layout block supports: cast numeric grid attributes before use (WordPress/gutenberg#81560)
- Make Back button grid column flexible. (WordPress/gutenberg#81701)
- List View: Make focus on mount opt in (WordPress/gutenberg#81659)
- Lazy Editor: Render the editor preferences modal (WordPress/gutenberg#81630)
- Edit Site Init: Seed the editor preferences the editor expects (WordPress/gutenberg#81628)
- Boot: Do not offer to edit a trashed entity (WordPress/gutenberg#81632)
- Block API: Address review feedback on block keyboard shortcuts (WordPress/gutenberg#81621)
- Editor: Simplify List View sidebar shortcut handling (WordPress/gutenberg#81693)
- RichText: Use the current record when handling Enter (WordPress/gutenberg#81696)
- Boot: Sync the editor's device preview with the URL (WordPress/gutenberg#81617)
- Stop saving Table of Contents output (WordPress/gutenberg#80404)
- Lazy Editor: Keep the theme's editor styles on the canvas (WordPress/gutenberg#81747)
- List View: Fix flaky global shortcut test and re-enable it (WordPress/gutenberg#81690)
- Boot: Preview the site where the canvas has nothing to open (WordPress/gutenberg#81749)
- Docs: Require site editor features to land in the extensible site editor too (WordPress/gutenberg#81752)
- Build Tools: Stop watcher process trees on shutdown (WordPress/gutenberg#81504)
- Update Terrazzo packages to 2.5.0 (WordPress/gutenberg#81082)
- Site Editor: Use inverted ThemeProvider seed for portaled UI (WordPress/gutenberg#81653)
- Components: Migrate DropdownContentWrapper to SCSS module (WordPress/gutenberg#81522)
- Playlist: Add aria-label to prevent placeholder as label (WordPress/gutenberg#81654)
- UI: Collapse item-popup item sizing to default and small (WordPress/gutenberg#81354)
- Add `__unstable_wp_sync_storage` filter for pluggable storage backends (WordPress/gutenberg#81697)
- Bump github/codeql-action/upload-sarif (WordPress/gutenberg#81436)
- Feat: support block spacing (WordPress/gutenberg#79689)
- Enable axial gap for Group and restrict to flex and grid layouts. (WordPress/gutenberg#81476)
- Packages: Split tsconfigs for utility and mid-size packages (WordPress/gutenberg#81514)
- Media Editor Route: Make the route look like it's part of the media menu in the left-hand sidebar (WordPress/gutenberg#81565)
- Global Styles: filter and indicate blocks that have custom styles (WordPress/gutenberg#81373)
- Prevent white screen crash during undo operations when Media Modal is open (WordPress/gutenberg#79898)
- Fix clipped focus outlines in the media editor Details sidebar (WordPress/gutenberg#81703)
- Fix: URL: normalizePath drops the rest of the query after a second "?" (WordPress/gutenberg#81612)
- Block Editor: Add translator context to pseudo-state labels (WordPress/gutenberg#81770)
- Global styles: Register <label> as element (WordPress/gutenberg#81160)
- Site editor: update template section description. (WordPress/gutenberg#81613)
- Fix: Accordion: Anchored hash inside the accordion throws the malformed URL console error (WordPress/gutenberg#81780)
- BoxControl: update the opposite side when ALT is held on the left or right input (WordPress/gutenberg#81530)
- Tabs: Give tab IDs their own counter so numbering starts at 1 and never skips (WordPress/gutenberg#81781)
- Modal: Stop Escape key propagation on dismiss (WordPress/gutenberg#81785)
- RTC: Couple RTC and polling provider as an opt-in experiment (WordPress/gutenberg#80658)
- ui/Card: Use the default neutral border (WordPress/gutenberg#81746)
- Update playlist track placeholder to match aria label (WordPress/gutenberg#81762)
- Notes: keep the note actions menu in view for long display names (WordPress/gutenberg#81414)
- Fix DataViews list layout color token usage (WordPress/gutenberg#81074)
- UI: Add Spinner component (WordPress/gutenberg#81358)
- Fields: Export the package stylesheet (WordPress/gutenberg#81769)
- Fix the failing e2e test (WordPress/gutenberg#81739)
- RTC: Add fallback identities when user profiles are unavailable (WordPress/gutenberg#81408)
- Align collaboration migration version markers with the 23.8.0 release (WordPress/gutenberg#81789)
- Dashboard: add a Site Health detail page as the dashboard's second route (WordPress/gutenberg#81729)
- Dashboard Widgets: resolve widget types without a metadata module (WordPress/gutenberg#81738)
- Theme: Improve color ramp contrast safeguards (WordPress/gutenberg#81185)
- More block: clarify description about excerpt vs full content (WordPress/gutenberg#80619)
- Schemas: Document what the theme.json schema checks (WordPress/gutenberg#81773)
- Components, DataViews, Editor, UI: Split tsconfigs into build and dev projects (WordPress/gutenberg#81515)
- Command Palette: Allow commands to override the category icon (WordPress/gutenberg#81787)
- Fix Broken Links in Package file (WordPress/gutenberg#81700)
- Notes: Stop forcing capitalization of user names (WordPress/gutenberg#81788)
- Media Editor Route: Add undo/redo and save/cancel actions to the header (WordPress/gutenberg#81563)
- Fix: Post Editor: Canvas animates from the left when switching mobile/tablet preview to desktop (WordPress/gutenberg#81484)
- Build Package: Use Core's boot module when a plugin has none (WordPress/gutenberg#81761)
- Docs: Fix broken link to the Document-Isolation-Policy explainer. (WordPress/gutenberg#81790)
- Tests: Make PHPUnit tests independent of test config flags and theme root (WordPress/gutenberg#79159)
- Editor: Debounce term filtering and announce results once (WordPress/gutenberg#81422)
- Packages: Split story package tsconfigs into build and dev projects (WordPress/gutenberg#81516)
- Packages: Complete the tsconfig build and dev project split (WordPress/gutenberg#81517)
- TypeScript: Require the typecheck run for type checking in CI (WordPress/gutenberg#81518)
- Block Editor: Remove leftover files (WordPress/gutenberg#81793)
- Rename the media editor toolbar button to 'Edit image' (WordPress/gutenberg#81705)
- Playlist: Remove block toolbar sharing between parent and child blocks (WordPress/gutenberg#81432)
- Components: Fix Storybook accessibility issues in stories (WordPress/gutenberg#81777)
- Fields: migrate last remaining JS file to TS (WordPress/gutenberg#81808)
- Menu: Add UI component (WordPress/gutenberg#79560)
- Patterns explorer: Refactor the category sidebar to use Tabs (WordPress/gutenberg#81807)
- add context to change "revisions code diff" (WordPress/gutenberg#81820)
- Add command: View post (WordPress/gutenberg#66720)
- Fix: Post Editor: 403 on /wp/v2/settings at boot for users without manage_options cap (WordPress/gutenberg#81813)
- UI: Add initial agents guidance mapping to contributing guidelines (WordPress/gutenberg#81400)
- UI: Mark Input-related components as recommended (WordPress/gutenberg#81658)
- Post Template: Fix mover arrows and labels for blocks inside the grid view (WordPress/gutenberg#81120)
- Docs: Fix broken link to the getEntityRecords selector reference. (WordPress/gutenberg#81791)
- Quick Inserter: Standardize the design of the Browse all button (WordPress/gutenberg#81827)
- UI: Add TextareaControl component (WordPress/gutenberg#81359)
- Docs: Narrow the tsconfig split guidance to the standard layout (WordPress/gutenberg#81828)
- Storybook: Fix production build warnings (WordPress/gutenberg#81758)
- Components: migrate ResizableBox to SCSS module- WordPress/gutenberg#80720 (WordPress/gutenberg#81792)
- Bump astral-sh/setup-uv from 9.0.0 to 10.0.0 in /.github/workflows (WordPress/gutenberg#81823)
- Global Styles: Keep storing shadow presets as CSS variables when custom presets exist (WordPress/gutenberg#81346)
- Docs: Fix broken skip ahead anchor on the custom block editor guide. (WordPress/gutenberg#81835)
- Fix MediaPlaceholder drag eligibility (WordPress/gutenberg#81431)
- Updated Aria Landmark Example URL (WordPress/gutenberg#81832)
- TypeScript: Put route projects under the typecheck run (WordPress/gutenberg#81829)
- Add missing dependency to media-editor route (WordPress/gutenberg#81845)
- Add transform to Row for Columns block (WordPress/gutenberg#81802)
- Editor: Remove FlexItem usage from NoteCard (WordPress/gutenberg#81851)
- UI: Expose keyboard shortcut presentation utilities (WordPress/gutenberg#81826)
- Theme: Add color warning diagnostics workbench (WordPress/gutenberg#81817)
- Editor: Surface debugging details in the ErrorBoundary (WordPress/gutenberg#81642)
- Update save & submit docs (WordPress/gutenberg#81077)
- Boot: Migrate styles to CSS Modules (WordPress/gutenberg#81756)
- Build: Emit TypeScript declarations with --noCheck (WordPress/gutenberg#81839)
- Core Data: Validate the parsed-blocks cache against registered block types (WordPress/gutenberg#81809)
- Dependencies: Dedupe, update adm-zip, nx (WordPress/gutenberg#81870)
- Core Data: Allow keyless entities to be addressed without a record ID (WordPress/gutenberg#81857)
- UI: Mark Autocomplete, Field, and Fieldset as recommended (WordPress/gutenberg#80636)
- Editor: Announce publish date changes to screen readers (WordPress/gutenberg#81629)
- Storybook: Fix default background color for Example Application theme story (WordPress/gutenberg#81765)
- Fix/79641 rtc cursor hidden details block v2 (WordPress/gutenberg#81322)
- UI: add ControlWithError component (WordPress/gutenberg#81574)
- Global Styles: Group shadow editor rows as items (WordPress/gutenberg#81871)
- Storybook: Handle production module load failures (WordPress/gutenberg#81867)
- Pattern: Disable visibility support (WordPress/gutenberg#81866)
- Design System: Add portable agent skills (WordPress/gutenberg#80597)
- Global Styles: Allow editing duotone palettes (WordPress/gutenberg#81605)
- Color Palette panel: Remove empty whitespace when there are no theme colors (WordPress/gutenberg#81894)
- Try caching gutenberg_get_global_styles (WordPress/gutenberg#81889)
- Refactor parameter type hints and clean comments (WordPress/gutenberg#81898)
- Preserve layout and style attributes on Column transform (WordPress/gutenberg#81855)
- Global Styles: Close the revisions screen on the first back click (WordPress/gutenberg#81897)
- Editor: Set the width an entity opens at from the editor provider (WordPress/gutenberg#81750)
- Pre-publish panel: Remove the headings that repeat the panel title (WordPress/gutenberg#81806)
- Components: migrate ComboboxControl to SCSS module (WordPress/gutenberg#80471)
- UI: Update Base UI to 1.7.0 (WordPress/gutenberg#81390)
- Update Ariakit packages (0.4.35 => 0.4.37) (WordPress/gutenberg#81080)
- chore: Update the combobox SCSS to have a breaking changes log (WordPress/gutenberg#81923)
- Use `WCTextareaControl` alias for legacy TextareaControl imports (WordPress/gutenberg#81834)
- Components: Improve text detection for button icon-with-text (WordPress/gutenberg#81521)
- Font Library: Fix the preview weight for variable fonts (WordPress/gutenberg#81748)
- Editor: Migrate hierarchical term selector to @wordpress/ui (WordPress/gutenberg#81848)
- Validation: update dependency-audit to 0.4.6 and ignore dataviews ./wp bundle (WordPress/gutenberg#81928)
- SearchableChipSelect: Add grouped items support (WordPress/gutenberg#80989)
- Use `WCInputControl` alias for legacy InputControl imports (WordPress/gutenberg#81830)
- Storybook: Upgrade to 10.5 (WordPress/gutenberg#80692)
- Documentation: Update coding guidelines to recommend TypeScript (WordPress/gutenberg#81763)
- Font library: Add skeleton loader for the font preview images (WordPress/gutenberg#81047)
- Build Scripts: Force tsc --pretty so CI reports the project behind global diagnostics (WordPress/gutenberg#81937)
- Update is-plain-object to 5.1.0 (WordPress/gutenberg#81926)
- DataViews: Sync the displayed calendar month with external value changes (WordPress/gutenberg#81635)
- DataForm: Make the panel layout edit button the real field trigger (WordPress/gutenberg#80689)
- Dependency updates Aug 2026 (2) (WordPress/gutenberg#81906)
- Playlist: Add bulk track metadata editing (WordPress/gutenberg#81441)
- Automated Testing: Change Storybook default a11y test to error on failure (WordPress/gutenberg#81597)
- Playlist Track: Improve track upload error flows (WordPress/gutenberg#81878)
- Block Library: Fix failing test in playlist block (WordPress/gutenberg#81950)
- Block editor: Move isElementVisible changelog entry to Unreleased (WordPress/gutenberg#81953: shail-mehta <shailu25@git.wordpress.org> Co-authored-by: Mamaduka <mamaduka@git.wordpress.org>
- DataViews: Fix date and datetime controls selecting the adjacent day (WordPress/gutenberg#81498)
- UI: Accept locale codes in Calendar components (WordPress/gutenberg#81814)
- List: Add Align Support (WordPress/gutenberg#68002)
- TypeScript: Bring the remaining route projects under the typecheck run (WordPress/gutenberg#81847)
- Components: migrate GradientPicker, ColorPalette to SCSS module (WordPress/gutenberg#80473)
- Docs: Align @PARAM tag columns in test/ docblocks (WordPress/gutenberg#81905)
- Hide layout panel when no controls are available (WordPress/gutenberg#81968)
- UI: Add ValidatedInputControl component (WordPress/gutenberg#81627)
- Components: migrate StyledLabel to SCSS module (WordPress/gutenberg#80001)
- fix: Button rtl loader issue (WordPress/gutenberg#81901)
- Theme: Update Terrazzo packages to 2.7.1 (WordPress/gutenberg#81978)
- CollapsibleCard: Support multiple header descriptions (WordPress/gutenberg#81227)
- DataViews: use `Menu` from `@wordpress/ui` (WordPress/gutenberg#81783)
- DataViews: Localize the date/datetime calendars from the site locale and direction (WordPress/gutenberg#81592)
- Replace the Storybook test runner with the Vitest integration (WordPress/gutenberg#81918)
- Block Editor: Don't close inserter panel when inline quick inserter opens (WordPress/gutenberg#76241)
- Updated broken links in document files (WordPress/gutenberg#81961)
- Boot: Mount the registered plugins (WordPress/gutenberg#81754)
- Extensible Site Editor: Add a theme preview page with global styles editing (WordPress/gutenberg#81954)
- Block Styles: Refactor the variation UI to use ui/Button (WordPress/gutenberg#81833)
- Styles Route: Reference the api-fetch and html-entities projects (WordPress/gutenberg#81989)
- Fix: Line Break Tags Added to Scripts and Styles (WordPress/gutenberg#77542)
- Fix: skip empty block markup in navigation to prevent split UL elements (WordPress/gutenberg#78793)
- Pattern List: Import a pattern from JSON (WordPress/gutenberg#81919)
- UI: Add tooltips to Calendar and RangeCalendar navigation buttons (WordPress/gutenberg#81983)
- UI: Add `ValidatedTextArea` control (WordPress/gutenberg#81984)
- Fix: Responsive styles: When enabled and a font-size is setting, the corresponding CSS variable remains undefined (WordPress/gutenberg#81854)
- Components: Migrate `TextareaControl` to SCSS module (WordPress/gutenberg#81353)
- UI: Set Calendar text direction automatically (WordPress/gutenberg#81982)
- Theme: Rename ThemeProvider wrapper CSS class from root to wrapper (WordPress/gutenberg#81996)
- Editor: Offer the theme export from both site editors (WordPress/gutenberg#81992)
- Fix: Stop stripping spaces inside inline HTML elements on paste (WordPress/gutenberg#76696)
- DataViews: Add a lint rule preventing private API imports (WordPress/gutenberg#81478)
- Components: Migrate ProgressBar styles from Emotion to SCSS module (WordPress/gutenberg#80512)
- RTC: Disable syncing for unpersistable post types (WordPress/gutenberg#81946)
- Boot: Restore centered snackbar notices (WordPress/gutenberg#81995)
- BorderControl, BorderBoxControl: Migrate styles to CSS Modules (WordPress/gutenberg#80437)
- Duotone Picker: Stop the duotone bar offering to move its control points (WordPress/gutenberg#81850)
- DataViews: Add an aspect ratio toggle for grid layouts (WordPress/gutenberg#81604)
- Remove `fixable` on `i18n-no-flanking-whitespace` (WordPress/gutenberg#70279)
- Dynamic Gallery block: Skip transforms that expect inner blocks, e.g. Image and Grid transforms (WordPress/gutenberg#82009)
- Accordion Heading: Route theme.json spacing to the toggle button (WordPress/gutenberg#81976)
- Element: Serialize memo-wrapped components instead of an empty string (WordPress/gutenberg#81986)
- Style: Update color to use CSS variable in global-styles-ui (WordPress/gutenberg#79053)
- Dashboard Widgets: let the host decide which component renders an action link (WordPress/gutenberg#81740)
- Tabs: make inactive panel content findable in page (WordPress/gutenberg#81743)
- Border Panel: Fix incorrect panel label (WordPress/gutenberg#78830)
- Components: Migrate ZStack styles from Emotion to SCSS module (WordPress/gutenberg#80514)
- Storybook: Add missing @types/jest devDependency (WordPress/gutenberg#82017)
- TypeScript: Drop redundant undefined casts for keyless entity record IDs (WordPress/gutenberg#82018)
- Editor: Fix start page/template modal footer overflow (WordPress/gutenberg#82021)
- Storybook: Keep Vitest story scanning independent of the Vite root (WordPress/gutenberg#82020)
- Test: Port shared Vitest test environment (WordPress/gutenberg#81038)
- Query No Results: Add Border & Spacing Support (WordPress/gutenberg#64601)
- RadioControl: allow individual options to be disabled (WordPress/gutenberg#82026)
- Components: Migrate `BoxControl` to SCSS module (WordPress/gutenberg#80715)
- SearchableChipSelectControl: Add form control to @wordpress/ui (WordPress/gutenberg#80980)
- UI: Move controlled prop guidance to contributing docs (WordPress/gutenberg#82044)
- Components: Migrate Scrollable to SCSS module (WordPress/gutenberg#80694)
- UI: Fix accessibility issues in form primitives and their stories (WordPress/gutenberg#81853)
- UI: Align Calendar styling with WPDS tokens (WordPress/gutenberg#81438)
- Calendar: Support custom root roles (WordPress/gutenberg#81443)
- E2E Tests: Use str_starts_with()/str_contains() in hide-user-rest-routes plugin (WordPress/gutenberg#82030)
- Site editor v2: Fix block error with navigation-edit route (WordPress/gutenberg#82051)
- ActionItem: Move the more menu deduplication out of the Slot (WordPress/gutenberg#81507)
- DataViews: Fix invisible sticky Actions column divider (WordPress/gutenberg#82055)
- Quick draft: replace Button+Link with LinkButton (WordPress/gutenberg#82031)
- Lint: Prevent private API imports in all bundled packages (WordPress/gutenberg#82015)
- PaletteEdit: Expose palette swatches as command buttons (WordPress/gutenberg#82023)
- Test: Add Vitest React, Emotion compilation, console, and snapshot parity (WordPress/gutenberg#81039)
- remove dead class reference in quick-draft (WordPress/gutenberg#82064)
-  `InputControl`: Hide the value-like placeholder Safari renders in empty date and time inputs in `ui` and `components` packages (WordPress/gutenberg#81991)
- Site editor v2: Fix template part list pagination and sorting (WordPress/gutenberg#82054)
- Build: Fix ESM declaration resolution (WordPress/gutenberg#82022)
- Core Data: Stop storing NaN pagination totals for unpaginated endpoints (WordPress/gutenberg#82059)
- Dashboard widgets & Grid: use kebab-case for CSS selectors (WordPress/gutenberg#82053)
- CI: Skip the package CHANGELOG check when only the CHANGELOG changed (WordPress/gutenberg#82069)
- Menu: Close non-modal menus on iframe interaction (WordPress/gutenberg#81952)
- Packages: Recover August 26 npm release metadata (WordPress/gutenberg#82086)
- Private APIs: Add back '@wordpress/dataviews' to the allowed core modules (WordPress/gutenberg#82221)

Fixes #66067.

git-svn-id: https://develop.svn.wordpress.org/trunk@63535 602fd350-edb4-49c9-b593-d223f7449a82
wporg-sync pushed a commit to WordPress/WordPress that referenced this pull request Sep 8, 2026
This updates the pinned commit hash of the Gutenberg repository from `ae8b34d78e1abc6d1c866fdc00080a1452de82ad ` (version `23.8.0`) to `658c8cbe89db5d90279051d3bb816ca210fe4646` (version `23.9.0`).

A full list of changes included in this commit can be found on GitHub: https://github.com/WordPress/gutenberg/compare/v23.8.0..v23.9.0.

- Env: Update git to latest commit when `--update` passed (WordPress/gutenberg#81447)
- InputControl: Vertically center date and time input values in Safari (WordPress/gutenberg#81361)
- DataViews: vendor `ValidatedComboboxControl` (WordPress/gutenberg#81449)
- Icon: Fix margin being applied twice in the editor (WordPress/gutenberg#81292)
- Docs: Add Background image control Readme (WordPress/gutenberg#69409)
- Dimensions: Fix aspect ratio and scale controls not reflecting external updates (WordPress/gutenberg#80747)
- DataViews: vendor `ValidatedFormTokenField` (WordPress/gutenberg#81451)
- Docs: Fix dead link in the dynamic blocks tutorial (WordPress/gutenberg#81399)
- DataViews: vendor `ValidatedToggleGroupControl` (WordPress/gutenberg#81450)
- Update 23.8 release changes on trunk (WordPress/gutenberg#81485)
- Adds README for inspector-controls-tabs component (WordPress/gutenberg#69072)
- BlockEditVisuallyButton: Update Developer Documentation (WordPress/gutenberg#68987)
- Storybook: Upgrade Vite to 8 (WordPress/gutenberg#81494)
- Packages: Move unreleased changelog entries out of the 23.8 published versions (WordPress/gutenberg#81502)
- Theme: Avoid root-level relational selectors (WordPress/gutenberg#81457)
- Theme: Move changelog entry to unreleased (WordPress/gutenberg#81508)
- Admin UI: Add Navigation component and Page navigation slot (WordPress/gutenberg#79746)
- Editor: Correctly mark ToolsMoreMenuGroup as a private SlotFill (WordPress/gutenberg#81503)
- Fix: Term Description block skips display filters inside Terms Query. (WordPress/gutenberg#81290)
- DataForm: Fix the datetime control sending two updates per calendar interaction (WordPress/gutenberg#81440)
- Editor: Stop `:has()` selectors recalculating the whole document on every block selection (WordPress/gutenberg#81471)
- Fix: getQueryArgs discards everything after the second = in a query argument value (WordPress/gutenberg#81066)
- DOM: treat a caret at a soft line wrap as an ambiguous position in Firefox (WordPress/gutenberg#81003)
- In-between indicator: make symmetric (WordPress/gutenberg#68074)
- Fix: Delete key on empty heading transforms following paragraph into heading (WordPress/gutenberg#78779)
- Media editor: keep initial modal focus on the dialog frame (WordPress/gutenberg#81541)
- Writing flow: select next block on Enter key (WordPress/gutenberg#63484)
- Media Editor Route Experiment: Override media edit links to point to the new experimental media editor (WordPress/gutenberg#81559)
- DataViews: vendor `ValidatedToggleControl` (WordPress/gutenberg#81492)
- Release: Improve changelog categorization (WordPress/gutenberg#81475)
- Docs: Add Block Editing Mode Readme. (WordPress/gutenberg#69411)
- Editor: Use PluginSidebar in GlobalStylesSidebar (WordPress/gutenberg#81570)
- Docs: Fix broken links to the Block API reference guides. (WordPress/gutenberg#81571)
- Adds JSdoc for `column` and `columns` block's edit.js (WordPress/gutenberg#68873)
- Adds JSdoc for `audio` block's edit.js (WordPress/gutenberg#68865)
- Refactor: Convert `createColorHOC` to functional component (WordPress/gutenberg#70408)
- Adds JSdoc for `avatar` block's edit.js (WordPress/gutenberg#68867)
- Editor: Speed up the hierarchical term selector for large taxonomies (WordPress/gutenberg#81376)
- Extensible Site Editor: Preview the site on Home for classic themes (WordPress/gutenberg#81578)
- TypeScript: Add typecheck script and split root tsconfig into build and dev solutions (WordPress/gutenberg#81499)
- Packages: Split blob, grid, interactivity, and theme tsconfigs (WordPress/gutenberg#81509)
- Vitest: Resolve @flakiness/vitest reporter to an absolute path (WordPress/gutenberg#81582)
- Update waveform player dependency patch (WordPress/gutenberg#81454)
- Dashboard Widgets: promote high-relevance actions into a chrome footer (WordPress/gutenberg#81556)
- Extensible Site Editor: Gate theme screens on theme support (WordPress/gutenberg#81581)
- Editor: Register the editor keyboard shortcuts from the provider (WordPress/gutenberg#81580)
- Base styles: Streamline focus ring override (WordPress/gutenberg#81242)
- Components: Align legacy form control focus rings with WPDS (WordPress/gutenberg#80417)
- Base Styles: Align `input-control` mixin to design system (WordPress/gutenberg#81357)
- Add Gutenberg version details for WordPress 7.1 (WordPress/gutenberg#81600)
- Fix viewport state values set by grid resizer (WordPress/gutenberg#81601)
- Block editor: add an inserter to the parent selector (WordPress/gutenberg#81532)
- url: clamp the truncated file name slice in filterURLForDisplay (WordPress/gutenberg#81529)
- Fix parent inserter alignment with text labels enabled (WordPress/gutenberg#81608)
- URL: Stop normalizePath throwing on a malformed percent sequence (WordPress/gutenberg#81086)
- Extensible Site Editor: Add the Identity route (WordPress/gutenberg#81576)
- ComboboxControl: narrow `onChange` callback type to `string` | `null` (WordPress/gutenberg#81568)
- Storybook: Add Story for URLPopup component (WordPress/gutenberg#68449)
- Extensible Site Editor: Show only the style book on Styles for classic themes (WordPress/gutenberg#81579)
- Global Styles: Expose additional elements in Typography and Colors (WordPress/gutenberg#80852)
- Storybook: Add Story for BlockPopover (WordPress/gutenberg#68681)
- Block Editor: Never spotlight blocks in a preview (WordPress/gutenberg#81615)
- Boot: Let the editor canvas navigate between entity records (WordPress/gutenberg#81590)
- Block API: Declare block keyboard shortcuts on variations and transforms (WordPress/gutenberg#81588)
- Storybook: Add Story for  InnerBlocks (WordPress/gutenberg#68651)
- Boot: Translate the canvas click-to-edit label (WordPress/gutenberg#81620)
- Perf: Report the first block selection as its own metric (WordPress/gutenberg#81616)
- Boot: Contain a surface failure to that surface (WordPress/gutenberg#81622)
- Boot: Warn before leaving with unsaved changes (WordPress/gutenberg#81625)
- Env: Fall back to cached docker images when the registry is unreachable (WordPress/gutenberg#81631)
- Editor: Refactor 'ErrorBoundary' to use the new recommended components (WordPress/gutenberg#81638)
- Fix playlist track toolbar insertion (WordPress/gutenberg#81639)
- Playlist Track: Show upload spinner inline (WordPress/gutenberg#81445)
- Admin UI: Fix the primary color of the Fresh admin color scheme (WordPress/gutenberg#81618)
- Inner Blocks: Fix bug that caused alignment controls to show in Image blocks within a Gallery (WordPress/gutenberg#81606)
- Layout block supports: cast numeric grid attributes before use (WordPress/gutenberg#81560)
- Make Back button grid column flexible. (WordPress/gutenberg#81701)
- List View: Make focus on mount opt in (WordPress/gutenberg#81659)
- Lazy Editor: Render the editor preferences modal (WordPress/gutenberg#81630)
- Edit Site Init: Seed the editor preferences the editor expects (WordPress/gutenberg#81628)
- Boot: Do not offer to edit a trashed entity (WordPress/gutenberg#81632)
- Block API: Address review feedback on block keyboard shortcuts (WordPress/gutenberg#81621)
- Editor: Simplify List View sidebar shortcut handling (WordPress/gutenberg#81693)
- RichText: Use the current record when handling Enter (WordPress/gutenberg#81696)
- Boot: Sync the editor's device preview with the URL (WordPress/gutenberg#81617)
- Stop saving Table of Contents output (WordPress/gutenberg#80404)
- Lazy Editor: Keep the theme's editor styles on the canvas (WordPress/gutenberg#81747)
- List View: Fix flaky global shortcut test and re-enable it (WordPress/gutenberg#81690)
- Boot: Preview the site where the canvas has nothing to open (WordPress/gutenberg#81749)
- Docs: Require site editor features to land in the extensible site editor too (WordPress/gutenberg#81752)
- Build Tools: Stop watcher process trees on shutdown (WordPress/gutenberg#81504)
- Update Terrazzo packages to 2.5.0 (WordPress/gutenberg#81082)
- Site Editor: Use inverted ThemeProvider seed for portaled UI (WordPress/gutenberg#81653)
- Components: Migrate DropdownContentWrapper to SCSS module (WordPress/gutenberg#81522)
- Playlist: Add aria-label to prevent placeholder as label (WordPress/gutenberg#81654)
- UI: Collapse item-popup item sizing to default and small (WordPress/gutenberg#81354)
- Add `__unstable_wp_sync_storage` filter for pluggable storage backends (WordPress/gutenberg#81697)
- Bump github/codeql-action/upload-sarif (WordPress/gutenberg#81436)
- Feat: support block spacing (WordPress/gutenberg#79689)
- Enable axial gap for Group and restrict to flex and grid layouts. (WordPress/gutenberg#81476)
- Packages: Split tsconfigs for utility and mid-size packages (WordPress/gutenberg#81514)
- Media Editor Route: Make the route look like it's part of the media menu in the left-hand sidebar (WordPress/gutenberg#81565)
- Global Styles: filter and indicate blocks that have custom styles (WordPress/gutenberg#81373)
- Prevent white screen crash during undo operations when Media Modal is open (WordPress/gutenberg#79898)
- Fix clipped focus outlines in the media editor Details sidebar (WordPress/gutenberg#81703)
- Fix: URL: normalizePath drops the rest of the query after a second "?" (WordPress/gutenberg#81612)
- Block Editor: Add translator context to pseudo-state labels (WordPress/gutenberg#81770)
- Global styles: Register <label> as element (WordPress/gutenberg#81160)
- Site editor: update template section description. (WordPress/gutenberg#81613)
- Fix: Accordion: Anchored hash inside the accordion throws the malformed URL console error (WordPress/gutenberg#81780)
- BoxControl: update the opposite side when ALT is held on the left or right input (WordPress/gutenberg#81530)
- Tabs: Give tab IDs their own counter so numbering starts at 1 and never skips (WordPress/gutenberg#81781)
- Modal: Stop Escape key propagation on dismiss (WordPress/gutenberg#81785)
- RTC: Couple RTC and polling provider as an opt-in experiment (WordPress/gutenberg#80658)
- ui/Card: Use the default neutral border (WordPress/gutenberg#81746)
- Update playlist track placeholder to match aria label (WordPress/gutenberg#81762)
- Notes: keep the note actions menu in view for long display names (WordPress/gutenberg#81414)
- Fix DataViews list layout color token usage (WordPress/gutenberg#81074)
- UI: Add Spinner component (WordPress/gutenberg#81358)
- Fields: Export the package stylesheet (WordPress/gutenberg#81769)
- Fix the failing e2e test (WordPress/gutenberg#81739)
- RTC: Add fallback identities when user profiles are unavailable (WordPress/gutenberg#81408)
- Align collaboration migration version markers with the 23.8.0 release (WordPress/gutenberg#81789)
- Dashboard: add a Site Health detail page as the dashboard's second route (WordPress/gutenberg#81729)
- Dashboard Widgets: resolve widget types without a metadata module (WordPress/gutenberg#81738)
- Theme: Improve color ramp contrast safeguards (WordPress/gutenberg#81185)
- More block: clarify description about excerpt vs full content (WordPress/gutenberg#80619)
- Schemas: Document what the theme.json schema checks (WordPress/gutenberg#81773)
- Components, DataViews, Editor, UI: Split tsconfigs into build and dev projects (WordPress/gutenberg#81515)
- Command Palette: Allow commands to override the category icon (WordPress/gutenberg#81787)
- Fix Broken Links in Package file (WordPress/gutenberg#81700)
- Notes: Stop forcing capitalization of user names (WordPress/gutenberg#81788)
- Media Editor Route: Add undo/redo and save/cancel actions to the header (WordPress/gutenberg#81563)
- Fix: Post Editor: Canvas animates from the left when switching mobile/tablet preview to desktop (WordPress/gutenberg#81484)
- Build Package: Use Core's boot module when a plugin has none (WordPress/gutenberg#81761)
- Docs: Fix broken link to the Document-Isolation-Policy explainer. (WordPress/gutenberg#81790)
- Tests: Make PHPUnit tests independent of test config flags and theme root (WordPress/gutenberg#79159)
- Editor: Debounce term filtering and announce results once (WordPress/gutenberg#81422)
- Packages: Split story package tsconfigs into build and dev projects (WordPress/gutenberg#81516)
- Packages: Complete the tsconfig build and dev project split (WordPress/gutenberg#81517)
- TypeScript: Require the typecheck run for type checking in CI (WordPress/gutenberg#81518)
- Block Editor: Remove leftover files (WordPress/gutenberg#81793)
- Rename the media editor toolbar button to 'Edit image' (WordPress/gutenberg#81705)
- Playlist: Remove block toolbar sharing between parent and child blocks (WordPress/gutenberg#81432)
- Components: Fix Storybook accessibility issues in stories (WordPress/gutenberg#81777)
- Fields: migrate last remaining JS file to TS (WordPress/gutenberg#81808)
- Menu: Add UI component (WordPress/gutenberg#79560)
- Patterns explorer: Refactor the category sidebar to use Tabs (WordPress/gutenberg#81807)
- add context to change "revisions code diff" (WordPress/gutenberg#81820)
- Add command: View post (WordPress/gutenberg#66720)
- Fix: Post Editor: 403 on /wp/v2/settings at boot for users without manage_options cap (WordPress/gutenberg#81813)
- UI: Add initial agents guidance mapping to contributing guidelines (WordPress/gutenberg#81400)
- UI: Mark Input-related components as recommended (WordPress/gutenberg#81658)
- Post Template: Fix mover arrows and labels for blocks inside the grid view (WordPress/gutenberg#81120)
- Docs: Fix broken link to the getEntityRecords selector reference. (WordPress/gutenberg#81791)
- Quick Inserter: Standardize the design of the Browse all button (WordPress/gutenberg#81827)
- UI: Add TextareaControl component (WordPress/gutenberg#81359)
- Docs: Narrow the tsconfig split guidance to the standard layout (WordPress/gutenberg#81828)
- Storybook: Fix production build warnings (WordPress/gutenberg#81758)
- Components: migrate ResizableBox to SCSS module- WordPress/gutenberg#80720 (WordPress/gutenberg#81792)
- Bump astral-sh/setup-uv from 9.0.0 to 10.0.0 in /.github/workflows (WordPress/gutenberg#81823)
- Global Styles: Keep storing shadow presets as CSS variables when custom presets exist (WordPress/gutenberg#81346)
- Docs: Fix broken skip ahead anchor on the custom block editor guide. (WordPress/gutenberg#81835)
- Fix MediaPlaceholder drag eligibility (WordPress/gutenberg#81431)
- Updated Aria Landmark Example URL (WordPress/gutenberg#81832)
- TypeScript: Put route projects under the typecheck run (WordPress/gutenberg#81829)
- Add missing dependency to media-editor route (WordPress/gutenberg#81845)
- Add transform to Row for Columns block (WordPress/gutenberg#81802)
- Editor: Remove FlexItem usage from NoteCard (WordPress/gutenberg#81851)
- UI: Expose keyboard shortcut presentation utilities (WordPress/gutenberg#81826)
- Theme: Add color warning diagnostics workbench (WordPress/gutenberg#81817)
- Editor: Surface debugging details in the ErrorBoundary (WordPress/gutenberg#81642)
- Update save & submit docs (WordPress/gutenberg#81077)
- Boot: Migrate styles to CSS Modules (WordPress/gutenberg#81756)
- Build: Emit TypeScript declarations with --noCheck (WordPress/gutenberg#81839)
- Core Data: Validate the parsed-blocks cache against registered block types (WordPress/gutenberg#81809)
- Dependencies: Dedupe, update adm-zip, nx (WordPress/gutenberg#81870)
- Core Data: Allow keyless entities to be addressed without a record ID (WordPress/gutenberg#81857)
- UI: Mark Autocomplete, Field, and Fieldset as recommended (WordPress/gutenberg#80636)
- Editor: Announce publish date changes to screen readers (WordPress/gutenberg#81629)
- Storybook: Fix default background color for Example Application theme story (WordPress/gutenberg#81765)
- Fix/79641 rtc cursor hidden details block v2 (WordPress/gutenberg#81322)
- UI: add ControlWithError component (WordPress/gutenberg#81574)
- Global Styles: Group shadow editor rows as items (WordPress/gutenberg#81871)
- Storybook: Handle production module load failures (WordPress/gutenberg#81867)
- Pattern: Disable visibility support (WordPress/gutenberg#81866)
- Design System: Add portable agent skills (WordPress/gutenberg#80597)
- Global Styles: Allow editing duotone palettes (WordPress/gutenberg#81605)
- Color Palette panel: Remove empty whitespace when there are no theme colors (WordPress/gutenberg#81894)
- Try caching gutenberg_get_global_styles (WordPress/gutenberg#81889)
- Refactor parameter type hints and clean comments (WordPress/gutenberg#81898)
- Preserve layout and style attributes on Column transform (WordPress/gutenberg#81855)
- Global Styles: Close the revisions screen on the first back click (WordPress/gutenberg#81897)
- Editor: Set the width an entity opens at from the editor provider (WordPress/gutenberg#81750)
- Pre-publish panel: Remove the headings that repeat the panel title (WordPress/gutenberg#81806)
- Components: migrate ComboboxControl to SCSS module (WordPress/gutenberg#80471)
- UI: Update Base UI to 1.7.0 (WordPress/gutenberg#81390)
- Update Ariakit packages (0.4.35 => 0.4.37) (WordPress/gutenberg#81080)
- chore: Update the combobox SCSS to have a breaking changes log (WordPress/gutenberg#81923)
- Use `WCTextareaControl` alias for legacy TextareaControl imports (WordPress/gutenberg#81834)
- Components: Improve text detection for button icon-with-text (WordPress/gutenberg#81521)
- Font Library: Fix the preview weight for variable fonts (WordPress/gutenberg#81748)
- Editor: Migrate hierarchical term selector to @wordpress/ui (WordPress/gutenberg#81848)
- Validation: update dependency-audit to 0.4.6 and ignore dataviews ./wp bundle (WordPress/gutenberg#81928)
- SearchableChipSelect: Add grouped items support (WordPress/gutenberg#80989)
- Use `WCInputControl` alias for legacy InputControl imports (WordPress/gutenberg#81830)
- Storybook: Upgrade to 10.5 (WordPress/gutenberg#80692)
- Documentation: Update coding guidelines to recommend TypeScript (WordPress/gutenberg#81763)
- Font library: Add skeleton loader for the font preview images (WordPress/gutenberg#81047)
- Build Scripts: Force tsc --pretty so CI reports the project behind global diagnostics (WordPress/gutenberg#81937)
- Update is-plain-object to 5.1.0 (WordPress/gutenberg#81926)
- DataViews: Sync the displayed calendar month with external value changes (WordPress/gutenberg#81635)
- DataForm: Make the panel layout edit button the real field trigger (WordPress/gutenberg#80689)
- Dependency updates Aug 2026 (2) (WordPress/gutenberg#81906)
- Playlist: Add bulk track metadata editing (WordPress/gutenberg#81441)
- Automated Testing: Change Storybook default a11y test to error on failure (WordPress/gutenberg#81597)
- Playlist Track: Improve track upload error flows (WordPress/gutenberg#81878)
- Block Library: Fix failing test in playlist block (WordPress/gutenberg#81950)
- Block editor: Move isElementVisible changelog entry to Unreleased (WordPress/gutenberg#81953: shail-mehta <shailu25@git.wordpress.org> Co-authored-by: Mamaduka <mamaduka@git.wordpress.org>
- DataViews: Fix date and datetime controls selecting the adjacent day (WordPress/gutenberg#81498)
- UI: Accept locale codes in Calendar components (WordPress/gutenberg#81814)
- List: Add Align Support (WordPress/gutenberg#68002)
- TypeScript: Bring the remaining route projects under the typecheck run (WordPress/gutenberg#81847)
- Components: migrate GradientPicker, ColorPalette to SCSS module (WordPress/gutenberg#80473)
- Docs: Align @PARAM tag columns in test/ docblocks (WordPress/gutenberg#81905)
- Hide layout panel when no controls are available (WordPress/gutenberg#81968)
- UI: Add ValidatedInputControl component (WordPress/gutenberg#81627)
- Components: migrate StyledLabel to SCSS module (WordPress/gutenberg#80001)
- fix: Button rtl loader issue (WordPress/gutenberg#81901)
- Theme: Update Terrazzo packages to 2.7.1 (WordPress/gutenberg#81978)
- CollapsibleCard: Support multiple header descriptions (WordPress/gutenberg#81227)
- DataViews: use `Menu` from `@wordpress/ui` (WordPress/gutenberg#81783)
- DataViews: Localize the date/datetime calendars from the site locale and direction (WordPress/gutenberg#81592)
- Replace the Storybook test runner with the Vitest integration (WordPress/gutenberg#81918)
- Block Editor: Don't close inserter panel when inline quick inserter opens (WordPress/gutenberg#76241)
- Updated broken links in document files (WordPress/gutenberg#81961)
- Boot: Mount the registered plugins (WordPress/gutenberg#81754)
- Extensible Site Editor: Add a theme preview page with global styles editing (WordPress/gutenberg#81954)
- Block Styles: Refactor the variation UI to use ui/Button (WordPress/gutenberg#81833)
- Styles Route: Reference the api-fetch and html-entities projects (WordPress/gutenberg#81989)
- Fix: Line Break Tags Added to Scripts and Styles (WordPress/gutenberg#77542)
- Fix: skip empty block markup in navigation to prevent split UL elements (WordPress/gutenberg#78793)
- Pattern List: Import a pattern from JSON (WordPress/gutenberg#81919)
- UI: Add tooltips to Calendar and RangeCalendar navigation buttons (WordPress/gutenberg#81983)
- UI: Add `ValidatedTextArea` control (WordPress/gutenberg#81984)
- Fix: Responsive styles: When enabled and a font-size is setting, the corresponding CSS variable remains undefined (WordPress/gutenberg#81854)
- Components: Migrate `TextareaControl` to SCSS module (WordPress/gutenberg#81353)
- UI: Set Calendar text direction automatically (WordPress/gutenberg#81982)
- Theme: Rename ThemeProvider wrapper CSS class from root to wrapper (WordPress/gutenberg#81996)
- Editor: Offer the theme export from both site editors (WordPress/gutenberg#81992)
- Fix: Stop stripping spaces inside inline HTML elements on paste (WordPress/gutenberg#76696)
- DataViews: Add a lint rule preventing private API imports (WordPress/gutenberg#81478)
- Components: Migrate ProgressBar styles from Emotion to SCSS module (WordPress/gutenberg#80512)
- RTC: Disable syncing for unpersistable post types (WordPress/gutenberg#81946)
- Boot: Restore centered snackbar notices (WordPress/gutenberg#81995)
- BorderControl, BorderBoxControl: Migrate styles to CSS Modules (WordPress/gutenberg#80437)
- Duotone Picker: Stop the duotone bar offering to move its control points (WordPress/gutenberg#81850)
- DataViews: Add an aspect ratio toggle for grid layouts (WordPress/gutenberg#81604)
- Remove `fixable` on `i18n-no-flanking-whitespace` (WordPress/gutenberg#70279)
- Dynamic Gallery block: Skip transforms that expect inner blocks, e.g. Image and Grid transforms (WordPress/gutenberg#82009)
- Accordion Heading: Route theme.json spacing to the toggle button (WordPress/gutenberg#81976)
- Element: Serialize memo-wrapped components instead of an empty string (WordPress/gutenberg#81986)
- Style: Update color to use CSS variable in global-styles-ui (WordPress/gutenberg#79053)
- Dashboard Widgets: let the host decide which component renders an action link (WordPress/gutenberg#81740)
- Tabs: make inactive panel content findable in page (WordPress/gutenberg#81743)
- Border Panel: Fix incorrect panel label (WordPress/gutenberg#78830)
- Components: Migrate ZStack styles from Emotion to SCSS module (WordPress/gutenberg#80514)
- Storybook: Add missing @types/jest devDependency (WordPress/gutenberg#82017)
- TypeScript: Drop redundant undefined casts for keyless entity record IDs (WordPress/gutenberg#82018)
- Editor: Fix start page/template modal footer overflow (WordPress/gutenberg#82021)
- Storybook: Keep Vitest story scanning independent of the Vite root (WordPress/gutenberg#82020)
- Test: Port shared Vitest test environment (WordPress/gutenberg#81038)
- Query No Results: Add Border & Spacing Support (WordPress/gutenberg#64601)
- RadioControl: allow individual options to be disabled (WordPress/gutenberg#82026)
- Components: Migrate `BoxControl` to SCSS module (WordPress/gutenberg#80715)
- SearchableChipSelectControl: Add form control to @wordpress/ui (WordPress/gutenberg#80980)
- UI: Move controlled prop guidance to contributing docs (WordPress/gutenberg#82044)
- Components: Migrate Scrollable to SCSS module (WordPress/gutenberg#80694)
- UI: Fix accessibility issues in form primitives and their stories (WordPress/gutenberg#81853)
- UI: Align Calendar styling with WPDS tokens (WordPress/gutenberg#81438)
- Calendar: Support custom root roles (WordPress/gutenberg#81443)
- E2E Tests: Use str_starts_with()/str_contains() in hide-user-rest-routes plugin (WordPress/gutenberg#82030)
- Site editor v2: Fix block error with navigation-edit route (WordPress/gutenberg#82051)
- ActionItem: Move the more menu deduplication out of the Slot (WordPress/gutenberg#81507)
- DataViews: Fix invisible sticky Actions column divider (WordPress/gutenberg#82055)
- Quick draft: replace Button+Link with LinkButton (WordPress/gutenberg#82031)
- Lint: Prevent private API imports in all bundled packages (WordPress/gutenberg#82015)
- PaletteEdit: Expose palette swatches as command buttons (WordPress/gutenberg#82023)
- Test: Add Vitest React, Emotion compilation, console, and snapshot parity (WordPress/gutenberg#81039)
- remove dead class reference in quick-draft (WordPress/gutenberg#82064)
-  `InputControl`: Hide the value-like placeholder Safari renders in empty date and time inputs in `ui` and `components` packages (WordPress/gutenberg#81991)
- Site editor v2: Fix template part list pagination and sorting (WordPress/gutenberg#82054)
- Build: Fix ESM declaration resolution (WordPress/gutenberg#82022)
- Core Data: Stop storing NaN pagination totals for unpaginated endpoints (WordPress/gutenberg#82059)
- Dashboard widgets & Grid: use kebab-case for CSS selectors (WordPress/gutenberg#82053)
- CI: Skip the package CHANGELOG check when only the CHANGELOG changed (WordPress/gutenberg#82069)
- Menu: Close non-modal menus on iframe interaction (WordPress/gutenberg#81952)
- Packages: Recover August 26 npm release metadata (WordPress/gutenberg#82086)
- Private APIs: Add back '@wordpress/dataviews' to the allowed core modules (WordPress/gutenberg#82221)

Fixes #66067.
Built from https://develop.svn.wordpress.org/trunk@63535


git-svn-id: http://core.svn.wordpress.org/trunk@62711 1a063a9b-81f0-0310-95a4-ce76da25c4cd
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

[Feature] Media Anything that impacts the experience of managing media [Type] Experimental Experimental feature or API.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants