Skip to content

Extract entity view config into a filterable API#78977

Merged
oandregal merged 8 commits into
trunkfrom
add/view-config-api
Jun 9, 2026
Merged

Extract entity view config into a filterable API#78977
oandregal merged 8 commits into
trunkfrom
add/view-config-api

Conversation

@oandregal

@oandregal oandregal commented Jun 5, 2026

Copy link
Copy Markdown
Member

Part of #76544
Follows-up on #76573 (comment)

What?

Extracts the per-entity view configuration logic out of Gutenberg_REST_View_Config_Controller_7_1 into a standalone, filterable API.

No change to the REST response shape (default_view, default_layouts, view_list, form).

Why?

Previously, the view configuration for every entity was hardcoded inside the REST controller and was not filterable.

Moving the logic behind a dynamic filter:

  • Makes the view config extensible per kind/name (e.g. custom post types, custom entity kinds).
  • Decouples the data model from the REST transport, so the same config can be reused outside the endpoint.
  • Keeps the controller focused on REST concerns (schema, permissions, serialization).

How?

  • New file lib/compat/wordpress-7.1/view-config-api.php with a public gutenberg_get_entity_view_config( $kind, $name ) function.
  • The function builds the default config shared by all entities, then exposes it through a dynamic get_entity_view_config_{$kind}_{$name} filter so core and third parties can provide entity-specific configuration.
  • The existing per-entity configs (postType × page, post, wp_block, wp_template_part, wp_template) are moved out of private controller methods and re-registered as filter callbacks.
  • The REST controller (/wp/v2/view-config) now keeps only the routing, permission, and schema plumbing and delegates data building to gutenberg_get_entity_view_config().

Testing Instructions

These screens are powered by the /wp/v2/view-config endpoint via getViewConfig / useViewConfig (@wordpress/views). Confirm the refactor produces identical behavior.

  1. Build Gutenberg (npm run build or npm run dev) and activate the plugin.
  2. Open the Site Editor and verify each DataViews screen renders with its expected columns, default layout, and saved-view list (these come from default_view, default_layouts, view_list):
    • Pages — list layout with hierarchy levels, featured-media field, and the view list (All, Published, Drafts, Scheduled, Trash, etc.).
    • Posts — list with the post DataForm fields in the sidebar.
    • Patterns (wp_block) — grid layout and its view list.
    • Template Parts — its layout and view list.
    • Templates — table layout and the author-based view list (verify author filters appear).
  3. Open a Page and a Post in the editor and confirm the post summary / DataForm sidebar fields render correctly (form config: featured image, excerpt, status/scheduled date/password/sticky, slug, author, template, discussion, parent, format).
  4. Hit the endpoint directly and confirm the response is unchanged from trunk for each entity:
    • wp.apiFetch( { path: '/wp/v2/view-config?kind=postType&name=page' } ).then( console.log ) — repeat for post, wp_block, wp_template, wp_template_part.
    • Compare the JSON against trunkdefault_view, default_layouts, view_list, and form should be byte-for-byte equivalent.
  5. Verify the new extensibility point works — temporarily add a filter and confirm it's applied:
    add_filter( 'get_entity_view_config_postType_page', function ( $config, $entity ) {
        $config['default_view']['perPage'] = 5;
        return $config;
    }, 20, 2 );
    Reload the Pages screen / re-fetch the endpoint and confirm perPage is now 5.
  6. Confirm a kind/name with no registered filter (e.g. kind=postType&name=attachment) still returns the generic default config without errors.
  7. Confirm the permission gate is intact: an unauthenticated request (or a user without edit_posts) returns rest_cannot_read / 401.

Use of AI Tools

This pull request was prepared with the assistance of AI tooling (Claude Code). All changes were reviewed by the author, who takes responsibility for them.

Copilot AI review requested due to automatic review settings June 5, 2026 10:45
@oandregal
oandregal requested a review from spacedmonkey as a code owner June 5, 2026 10:45
@github-actions

github-actions Bot commented Jun 5, 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: oandregal <oandregal@git.wordpress.org>
Co-authored-by: ntsekouras <ntsekouras@git.wordpress.org>

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

@oandregal oandregal self-assigned this Jun 5, 2026
@oandregal oandregal added [Feature] Extensibility The ability to extend blocks or the editing experience [Feature] DataViews Work surrounding upgrading and evolving views in the site editor and beyond [Type] New API New API to be used by plugin developers or package users. labels Jun 5, 2026
$kind = $request->get_param( 'kind' );
$name = $request->get_param( 'name' );

// TODO: this data will come from a registry of view configs per entity.

Copy link
Copy Markdown
Member Author

Choose a reason for hiding this comment

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

This code has been moved (and restructured) verbatim into the view-config-api.php file.

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

This pull request extracts entity “view config” construction out of the WordPress 7.1 REST controller into a standalone API function, so entity-specific configs can be provided/overridden via dynamic filters while keeping the /wp/v2/view-config response shape unchanged.

Changes:

  • Added gutenberg_get_entity_view_config( $kind, $name ) as the central builder for view config defaults and a dynamic per-entity filter hook.
  • Moved the previously hardcoded per-entity configurations (page/post/patterns/template parts/templates) into filter callbacks registered in the new API file.
  • Simplified Gutenberg_REST_View_Config_Controller_7_1::get_items() to delegate config building to the new API.

Reviewed changes

Copilot reviewed 4 out of 4 changed files in this pull request and generated 1 comment.

File Description
lib/load.php Loads the new view-config API alongside existing WP 7.1 REST compat code.
lib/compat/wordpress-7.1/view-config-api.php Introduces the filterable view-config API and registers per-entity default configs via filters.
lib/compat/wordpress-7.1/class-gutenberg-rest-view-config-controller-7-1.php Removes embedded config-building logic and uses gutenberg_get_entity_view_config() instead.

Comment thread lib/compat/wordpress-7.1/view-config-api.php Outdated
Comment on lines +90 to +98
return apply_filters(
"get_entity_view_config_{$kind}_{$name}",
$config,
array(
'kind' => $kind,
'name' => $name,
'all_items_title' => $all_items_title,
)
);

Copy link
Copy Markdown
Member Author

Choose a reason for hiding this comment

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

This API is inspired by how the existing table list / admin screen works, that allows 3rd parties to filter it (e.g., WP_Posts_List_Table, screen's get_hidden_columns, or WP_List_Table.

A few alternate designs that were considered:

  • Use of multiple filters (e.g., one per top-level config) vs. a single one (existing approach). While it sounds sensible to use multiple filters at first, consumers will run into issues quickly: some of these configs may depend on each other (e.g., see how default_layouts is used to build the view_list), and so having multiple filters will require us passing the whole config anyway.
  • Filter callback arguments. One could argue that a dynamic filter would not need to pass $kind and $name as arguments because the filter is bound to that entity. Take a couple of filters such as get_entity_view_config_postType_wp_template and get_entity_view_config_postType_page as examples. If a consumer binds the same filter callback to multiple filters, how would it extract the $kind and $name from those filters? It becomes a bit tricky given both $kind and $name can have underscores.
  • Filter callback arity. While it's useful to provide $kind, $name, and even $all_items_title to filter callbacks that want to use them, the majority of them won't need them. Instead of incrementing the filter callback arity with 3 arguments, I thought we'd bundle everyone of these into a single $entity array. This approach is also more future proof: if we want to add new items in the future, it won't be a breaking change.

@github-actions

github-actions Bot commented Jun 5, 2026

Copy link
Copy Markdown

Flaky tests detected in b28a21e.
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/27196606793
📝 Reported issues:

Comment thread lib/compat/wordpress-7.1/view-config-api.php Outdated
Comment thread lib/compat/wordpress-7.1/view-config-api.php Outdated
Comment thread lib/compat/wordpress-7.1/view-config-api.php
Comment thread lib/compat/wordpress-7.1/view-config-api.php Outdated
oandregal and others added 8 commits June 9, 2026 11:22
- Rename per-entity callbacks to snake_case (PHPCS WordPress.NamingConventions)
- Remove blank line before class closing brace
- Add PR to existing wordpress-develop #11272 backport changelog

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
PHPCS flags the unused parameter; callbacks that don't read entity
context now accept only $config and register with one accepted arg.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
@oandregal
oandregal force-pushed the add/view-config-api branch from 8cbd047 to b28a21e Compare June 9, 2026 09:22

@ntsekouras ntsekouras 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.

Let's get this in!

@oandregal
oandregal merged commit 84ccee8 into trunk Jun 9, 2026
49 of 54 checks passed
@oandregal
oandregal deleted the add/view-config-api branch June 9, 2026 15:49
@github-actions github-actions Bot added this to the Gutenberg 23.4 milestone Jun 9, 2026
oandregal added a commit to oandregal/wordpress-develop that referenced this pull request Jun 22, 2026
Backports the Gutenberg refactor that moves the entity view configuration
out of the REST controller and into a standalone, filterable API:

- New `wp_get_entity_view_config( $kind, $name )` builds the default config
  and exposes it through the dynamic `get_entity_view_config_{$kind}_{$name}`
  filter (src/wp-includes/view-config.php). Per-post-type defaults (page,
  post, wp_block, wp_template_part, wp_template) are registered as
  `_wp_get_entity_view_config_post_type_*` filter callbacks on `init`.
- `WP_REST_View_Config_Controller::get_items()` now delegates to
  `wp_get_entity_view_config()` and only handles REST/JSON concerns, so the
  per-entity builder methods are removed from the controller.
- Adds PHPUnit coverage for both the API and the REST controller.

Backports:
* WordPress/gutenberg#78977
* WordPress/gutenberg#79195
* WordPress/gutenberg#76934
* WordPress/gutenberg#79347

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
oandregal added a commit to oandregal/wordpress-develop that referenced this pull request Jun 22, 2026
Introduces a server-side, filterable API for the default DataViews view
configuration of an entity, plus a REST endpoint that exposes it.

- `wp_get_entity_view_config( $kind, $name )` (new src/wp-includes/view-config.php)
  builds the shared defaults (default view, layouts, view list, form) and
  runs them through a dynamic `get_entity_view_config_{$kind}_{$name}` filter
  so core and plugins can provide per-entity configuration.
- Core registers default providers for the `page`, `post`, `wp_block`,
  `wp_template_part`, and `wp_template` post types as filter callbacks on
  `init` (`_wp_get_entity_view_config_post_type_*`).
- `WP_REST_View_Config_Controller` exposes the config at
  `GET /wp/v2/view-config?kind=…&name=…`, delegating to the API and handling
  REST concerns (schema, `edit_posts` permission, empty-object serialization).
- Adds PHPUnit coverage for both the API and the controller.

Backports the following Gutenberg pull requests:
* WordPress/gutenberg#76573
* WordPress/gutenberg#76734
* WordPress/gutenberg#76622
* WordPress/gutenberg#76823
* WordPress/gutenberg#76953
* WordPress/gutenberg#76903
* WordPress/gutenberg#77290
* WordPress/gutenberg#78977
* WordPress/gutenberg#79195
* WordPress/gutenberg#76934
* WordPress/gutenberg#79347

AI assistance: Yes
Tool(s): Claude Code
Model(s): Claude Opus 4.8
Used for: Porting the code and tests from Gutenberg and adapting them to
core conventions; all changes reviewed and tested by me.
oandregal added a commit to oandregal/wordpress-develop that referenced this pull request Jun 23, 2026
Introduces a server-side, filterable API for the default DataViews view
configuration of an entity, plus a REST endpoint that exposes it.

- `wp_get_entity_view_config( $kind, $name )` (new src/wp-includes/view-config.php)
  builds the shared defaults (default view, layouts, view list, form) and
  runs them through a dynamic `get_entity_view_config_{$kind}_{$name}` filter
  so core and plugins can provide per-entity configuration.
- Core registers default providers for the `page`, `post`, `wp_block`,
  `wp_template_part`, and `wp_template` post types as filter callbacks on
  `init` (`_wp_get_entity_view_config_post_type_*`).
- `WP_REST_View_Config_Controller` exposes the config at
  `GET /wp/v2/view-config?kind=…&name=…`, delegating to the API and handling
  REST concerns (schema, `edit_posts` permission, empty-object serialization).
- Adds PHPUnit coverage for both the API and the controller.

Backports the following Gutenberg pull requests:
* WordPress/gutenberg#76573
* WordPress/gutenberg#76734
* WordPress/gutenberg#76622
* WordPress/gutenberg#76823
* WordPress/gutenberg#76953
* WordPress/gutenberg#76903
* WordPress/gutenberg#77290
* WordPress/gutenberg#78977
* WordPress/gutenberg#79195
* WordPress/gutenberg#76934
* WordPress/gutenberg#79347

AI assistance: Yes
Tool(s): Claude Code
Model(s): Claude Opus 4.8
Used for: Porting the code and tests from Gutenberg and adapting them to
core conventions; all changes reviewed and tested by me.
pento pushed a commit to WordPress/wordpress-develop that referenced this pull request Jun 30, 2026
This updates the pinned commit hash of the Gutenberg repository from `14db4ab9395a9e96430eed678e4288a59eecbd15 ` (version `23.3.0`) to `14db4ab9395a9e96430eed678e4288a59eecbd15` (version `23.4.0`).

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

The following commits are included:
- Hide image dimension tools when a state is selected (WordPress/gutenberg#78670)
- Changed labels to consistently use Patterns in favor of Block patterns (WordPress/gutenberg#56880)
- Fix: Restrict parent page API search to post titles only (WordPress/gutenberg#78683)
- Update AGENTS.md to mention additional pitfalls: (WordPress/gutenberg#78718)
- Docs: Fix big_image_size_threshold xref typo (WordPress/gutenberg#76299)
- Compose: Fully deprecate the 'pure' HoC (WordPress/gutenberg#78674)
- Common CSS: avoid false-positive border-style on custom properties (WordPress/gutenberg#77476)
- Compose: Fix SSR crash in useMediaQuery and useViewportMatch (WordPress/gutenberg#78725)
- CI: Skip plugin repo release when SVN tag already exists (WordPress/gutenberg#78476)
- Dashboard: Hello Dolly (WordPress/gutenberg#78648)
- UI: `Tooltip.Provider` — forward upstream `closeDelay` and `timeout` props (WordPress/gutenberg#78642)
- Compose: Support React 19 ref callback cleanups in `useMergeRefs` (WordPress/gutenberg#78685)
- Add copilot-instructions.md file (WordPress/gutenberg#78584)
- Dashboard: show ghost widgets visually & allow easy removal (WordPress/gutenberg#78502)
- Bump fast-xml-builder from 1.0.0 to 1.2.0 (WordPress/gutenberg#78272)
- Bump actions/stale (WordPress/gutenberg#78745)
- Bump fast-xml-parser from 4.5.0 to 4.5.6 (WordPress/gutenberg#77167)
- Bump actions/github-script from 8.0.0 to 9.0.0 in /.github/workflows (WordPress/gutenberg#78591)
- @wordpress/theme: deduplicate addFallbackToVar helper (WordPress/gutenberg#78666)
- Add Combobox primitives (WordPress/gutenberg#78399)
- Editor: Fix keyboard activation of the template actions preview (WordPress/gutenberg#78641)
- Theme: drop `density` support from `@wordpress/theme` (WordPress/gutenberg#78741)
- Tooltip migration: fields + media-editor + media-fields + global-styles-ui (4/5) (WordPress/gutenberg#78691)
- List View: Expose block visibility label to assistive technology (WordPress/gutenberg#78640)
- Hide paragraph Drop cap control when a state is selected (WordPress/gutenberg#78672)
- Image cropper: round zoom control values and display as percentages (WordPress/gutenberg#78757)
- Media Editor Modal: Try placing the save and cancel buttons in the footer (WordPress/gutenberg#78708)
- Unset grid span defaults with viewport states enabled (WordPress/gutenberg#78709)
- Media Editor: Remove resize handles toggle from crop panel (WordPress/gutenberg#78758)
- Image Editor: focus return after closing image crop modal (WordPress/gutenberg#78711)
- Add dashboard Events widget (WordPress/gutenberg#78553)
- Writing flow: Delete at end of nested list item should merge into next block (WordPress/gutenberg#78742)
- RTC: Re-render collaborators overlay when the block tree changes (WordPress/gutenberg#78636)
- Dashboard: rename `widget-types` to `widget-primitives` and consolidate the widget contract (WordPress/gutenberg#78749)
- Fix Gutenberg plugin assuming its directory is named "gutenberg" (WordPress/gutenberg#78705)
- Codemods: Remove one-shot Tooltip migration codemod (WordPress/gutenberg#78669)
- Dashboard: rename `WidgetChrome` to `DashboardWidgetChrome` (WordPress/gutenberg#78751)
- Paragraph: Strip stale block-support classes from className during align attribute migration (WordPress/gutenberg#78731)
- Global Styles: Fix CSS not applying to Custom CSS textarea in Advanced panel (WordPress/gutenberg#78773)
- scripts: Use require.resolve for SVG loaders to fix pnpm compat (WordPress/gutenberg#78777)
- Post list: Remove close button from Quick Edit drawer (WordPress/gutenberg#78730)
- Revert "Gate client-side media processing as plugin-only (WordPress/gutenberg#76700)" (WordPress/gutenberg#76751)
- Tooltip migration: boot consumers + shell-level Tooltip.Provider (5/5) (WordPress/gutenberg#78692)
- Dashboard: replace `surface` with `host` in widget contract docs (WordPress/gutenberg#78778)
- Shortcode block: Fix editor crash when selecting transform menu (WordPress/gutenberg#78770)
- Make `@wordpress/nux` a no-op compatibility package (WordPress/gutenberg#77773)
- Tests: Temporarily disable REST index output-format assertions (WordPress/gutenberg#78788)
- Hide Cover overlay controls for viewport states (WordPress/gutenberg#78763)
- Fix type of `$block_instance` parameter in `block_core_image_render_lightbox()` (WordPress/gutenberg#78790)
- TypeScript: Migrate server-side-render package to TS (WordPress/gutenberg#71383)
- feat: Migrate performance results to tools release (WordPress/gutenberg#78761)
- wp-build: Fix black flash on wp-admin pages before hydration (WordPress/gutenberg#78493)
- Icons: maintain absolute stroke-width regardless of icon-size (WordPress/gutenberg#78774)
- Dashboard: Use Howdy greeting for page title (WordPress/gutenberg#78740)
- Block Editor: Refactor Inserter to a function component (WordPress/gutenberg#78766)
- Dashboard: Move layout settings to customize toolbar (WordPress/gutenberg#78738)
- Build: update changelog (WordPress/gutenberg#78807)
- Icons: rename timeToRead to time (WordPress/gutenberg#78804)
- RTC: Prevent slower polling filters (WordPress/gutenberg#78811)
- Button.Icon: Fix clipped icons (WordPress/gutenberg#78614)
- Bump docker/login-action (WordPress/gutenberg#78819)
- RTC: Return forbidden rooms together (WordPress/gutenberg#78748)
- Update browserslist (WordPress/gutenberg#78840)
- Try allowing transforms to a variation of another block (WordPress/gutenberg#78713)
- Elements: Guard against non-string className in render filter (WordPress/gutenberg#78841)
- e2e-test-utils-playwright: add src to published NPM files (WordPress/gutenberg#78847)
- Editor: Refactor 'PostPublishButton' into function component (WordPress/gutenberg#78737)
- Dashboard: Promote WidgetRender into widget-primitives (WordPress/gutenberg#78821)
- Notes: Show default avatar in the indicator when user avatars are disabled (WordPress/gutenberg#78849)
- Revert "Icons: maintain absolute stroke-width regardless of icon-size (WordPress/gutenberg#78774)" (WordPress/gutenberg#78854)
- Media: Send Document-Isolation-Policy header on the site preview frame (WordPress/gutenberg#78404)
- Revert navigation morph & playlist commits pushed directly to trunk (WordPress/gutenberg#78857)
- Fix Update button staying active when changes are reverted. (WordPress/gutenberg#78567)
- Docs: Fix and improve documentation (WordPress/gutenberg#78686)
- Abilities: Add validation tests pinning behavior for WP-specific schema keywords (WordPress/gutenberg#78783)
- Tools: migrate docs/tool into tools/docs workspace (WordPress/gutenberg#78870)
- Dashboard: Fix Add widget error on non-secure HTTP origins (WordPress/gutenberg#78850)
- Docs: Fix @wordpress/data README fragment links (WordPress/gutenberg#78866)
- bin: Remove obsolete bin/setup-local-env.sh (WordPress/gutenberg#78871)
- Boot navigation: wrap items in a list role for valid listitem semantics (WordPress/gutenberg#78829)
- wp-build: Document generated page hooks per WordPress standards. (WordPress/gutenberg#78826)
- Update CODEOWNERS for tooling directories (WordPress/gutenberg#78874)
- Block Visibility: Keep hide-everywhere working after a block opts out of visibility support (WordPress/gutenberg#78780)
- Dashboard: Replace grid row height controls with size presets. (WordPress/gutenberg#78735)
- Prevent font-size propagation in Navigation items causing `em` compounding (WordPress/gutenberg#77419)
- Media Editor Modal: Reorder details fields so the editable regular layout fields appear at the top (WordPress/gutenberg#78792)
- Fix media editor sidebar close button label (WordPress/gutenberg#78895)
- Dashboard: event widget iteration (WordPress/gutenberg#78815)
- Playlist Block: Add visualization style selector (WordPress/gutenberg#76147)
- [Content Types]: Fix extra Page padding causing vertical scrollbar (WordPress/gutenberg#78661)
- Remove migrated dependencies from root package.json (WordPress/gutenberg#78813)
- Packages: Declare missing `@types/react` dependency (WordPress/gutenberg#78882)
- Fix collapsed experiment cards not stretching to full width (WordPress/gutenberg#78910)
- Element: add polyfills for render, hydrate, unmountComponentAtNode (WordPress/gutenberg#78899)
- Revert "wp-build: Replace getter-based exports with data properties" (WordPress/gutenberg#78917)
- React: add ReactCurrentOwner polyfill (WordPress/gutenberg#78923)
- Fix playlist metadata edits recreating player (WordPress/gutenberg#78876)
- Media Editor: Fix sidebar overflowing the modal between the small and medium breakpoints (WordPress/gutenberg#78931)
- Media: Move client-side media compat file to wordpress-7.1 directory (WordPress/gutenberg#78852)
- env: Replace extract-zip with adm-zip to fix hang on Node 24.16 (WordPress/gutenberg#78828)
- Media Editor: refactor modal layout (WordPress/gutenberg#78896)
- Optimize wp-env source downloads with Git partial clones (WordPress/gutenberg#78918)
- Fix: Escape URLs in block render functions using `esc_url()` (WordPress/gutenberg#78912)
- Blocks: Allow the Login/out block as an inner block in the Navigation Submenu block (WordPress/gutenberg#75497)
- Fix sprintf format specifiers in post-date and read-more blocks (WordPress/gutenberg#78933)
- Refactor: Remove jest/test deps from root package.json (WordPress/gutenberg#78801)
- Upload Media: Add retry with exponential backoff and network resilience (WordPress/gutenberg#76765)
- Build Scripts: Fix Windows path handling in dev script (WordPress/gutenberg#78939)
- Revert React 19 upgrade (WordPress/gutenberg#78940)
- Fix: block auto-complete for AI API Keys in Connectors (WordPress/gutenberg#78946)
- Dashboard: Opinionated grid columns with container breakpoints (WordPress/gutenberg#78732)
- Skip including inactive or experimental routes when building for WordPress Core (WordPress/gutenberg#76715)
- RTC: Fix Yjs undo manager to update UI state when undo stack changes (WordPress/gutenberg#78864)
- Storybook: Enhance Theme Provider example with admin-ui Page. (WordPress/gutenberg#78814)
- RTC: Fix CRDT deferred updates resulting in jumbled typing (WordPress/gutenberg#78756)
- Add playlist track length setting (WordPress/gutenberg#78954)
- Add aspect ratio control to media editor mobile toolbar (WordPress/gutenberg#78935)
- Media Editor: Replace the zoom slider with +/- buttons (WordPress/gutenberg#78928)
- Use omit-unchanged for compressed-size-action (WordPress/gutenberg#78976)
- DataViewsPicker: Add a new `pickerActivity` layout (WordPress/gutenberg#78941)
- refactor: move babel dependencies to workspace configuration (WordPress/gutenberg#78974)
- feat: Migrate the browserlintrc file to `packages/postcss-plugins-preset` (WordPress/gutenberg#78764)
- Storybook: Declare workspace dependencies for theme example story. (WordPress/gutenberg#78979)
- Refactor: Move React dependencies from root to workspaces (WordPress/gutenberg#78981)
- UI: Update `@base-ui/react` to `1.5.0` (WordPress/gutenberg#78448)
- ui/AlertDialog: Fix footer layout style override (WordPress/gutenberg#78953)
- Font Library: Fix focus issue when navigating (WordPress/gutenberg#78671)
- Docs: Auto-generate per-block API reference pages from block.json (WordPress/gutenberg#77612)
- Patterns: fix focus loss when dismissing Create pattern dialog (WordPress/gutenberg#78957)
- Show media upload progress in a snackbar (WordPress/gutenberg#77249)
- Upload Media: Gate very large images out of client-side processing (WordPress/gutenberg#78949)
- Media: Add UltraHDR (ISO 21496-1) gain map support (WordPress/gutenberg#74873)
- Site Editor: Apply the user's admin color scheme (WordPress/gutenberg#78397)
- Navigation Link: fix duplicate block html attributes in editor (WordPress/gutenberg#78973)
- Added Missing Global Documentation (WordPress/gutenberg#78997)
- Post Revisions: Upgrade `diff` from v4 to v8 (WordPress/gutenberg#77992)
- Theme: Increase stroke1 contrast target to 2.9 (WordPress/gutenberg#77599)
- Tooltip: Use md border radius for portaled popups. (WordPress/gutenberg#78983)
- Framework: Remove invalid stale nested npm package references (WordPress/gutenberg#79014)
- Theme package: Add element size design tokens (WordPress/gutenberg#76545)
- Inserter: use forwardRef for refs (WordPress/gutenberg#79006)
- RTC: Add separate doc persistence endpoint (WordPress/gutenberg#78891)
- DataViews: Add DataViews components to components manifest (WordPress/gutenberg#78960)
- Media Editor: Keep crop handles operable on large images (WordPress/gutenberg#79011)
- Media editor: tweak paddings and margins (WordPress/gutenberg#79009)
- Media Editor: Remove lag when toggling the sidebar (WordPress/gutenberg#79024)
- Elements: Align class name parsing with custom CSS implementation (WordPress/gutenberg#79023)
- CI: Suppress lint:js warnings on static checks (WordPress/gutenberg#79025)
- Remove React Native implementation, framework, and dependencies (WordPress/gutenberg#78747)
- e2e-test-utils-playwright: start transpiling again, but faster (WordPress/gutenberg#79026)
- CI: Remove Validate Gradle Wrapper workflow (WordPress/gutenberg#79030)
- Remove dead native code branches from Platform usages (WordPress/gutenberg#79031)
- Remove orphaned README files for deleted native-only components (WordPress/gutenberg#79035)
- Remove orphaned mobile bug report issue template (WordPress/gutenberg#79038)
- Inserter: Fix error being thrown for spoken message when inserting default/direct block (WordPress/gutenberg#79004)
- Editor: Remove dead native guard in block removal warnings (WordPress/gutenberg#79039)
- Preserve nested list when deleting a selection across sibling list items (WordPress/gutenberg#78776)
- Remove platform-docs Docusaurus site (WordPress/gutenberg#79034)
- Align dependency versions across workspaces (WordPress/gutenberg#77954)
- RichText: Remove dead native-only prop filtering (WordPress/gutenberg#79037)
- Navigable Container: Hoist getFocusableContext out of the component (WordPress/gutenberg#79029)
- Tools: Lint dependency version consistency with Syncpack (WordPress/gutenberg#77950)
- Extract entity view config into a filterable API (WordPress/gutenberg#78977)
- Rich text: use subscribeDelegatedListener for element event listeners (WordPress/gutenberg#79047)
- theme/ThemeProvider: rename `color.bg` prop to `color.background` (WordPress/gutenberg#79007)
- Format Library: Migrate to recommended `@wordpress/ui` components (WordPress/gutenberg#79059)
- Syncpack: ban `classnames` from being reintroduced (WordPress/gutenberg#79061)
- UI: Update CSS cascade layers to use nesting (WordPress/gutenberg#78959)
- Docs: Remove stale mobile references from tooling and primitives docs (WordPress/gutenberg#79041)
- Release: Drop mobile-specific changelog omit rules (WordPress/gutenberg#79042)
- Bump actions/checkout (WordPress/gutenberg#79033)
- `ColorPalette`: don't render when custom colors disabled and no colors passed (WordPress/gutenberg#72402)
- Bump minimatch and lerna (WordPress/gutenberg#76750)
- Image block: don't show crop icon while image is uploading (WordPress/gutenberg#79103)
- Add React 19 as an experimental flag (WordPress/gutenberg#79077)
- Media modal: small tweak to gutters (WordPress/gutenberg#79168)
- Add more React internals polyfills (WordPress/gutenberg#79142)
- Media editor modal: Fix keyboard resizing for locked aspect-ratio crops (WordPress/gutenberg#79207)
- Fix responsive element styles front end output (WordPress/gutenberg#79135) (WordPress/gutenberg#79215)

Props adamsilverstein, jorbin, westonruter, wildworks.
Fixes #65368.

git-svn-id: https://develop.svn.wordpress.org/trunk@62584 602fd350-edb4-49c9-b593-d223f7449a82
markjaquith pushed a commit to markjaquith/WordPress that referenced this pull request Jun 30, 2026
This updates the pinned commit hash of the Gutenberg repository from `14db4ab9395a9e96430eed678e4288a59eecbd15 ` (version `23.3.0`) to `14db4ab9395a9e96430eed678e4288a59eecbd15` (version `23.4.0`).

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

The following commits are included:
- Hide image dimension tools when a state is selected (WordPress/gutenberg#78670)
- Changed labels to consistently use Patterns in favor of Block patterns (WordPress/gutenberg#56880)
- Fix: Restrict parent page API search to post titles only (WordPress/gutenberg#78683)
- Update AGENTS.md to mention additional pitfalls: (WordPress/gutenberg#78718)
- Docs: Fix big_image_size_threshold xref typo (WordPress/gutenberg#76299)
- Compose: Fully deprecate the 'pure' HoC (WordPress/gutenberg#78674)
- Common CSS: avoid false-positive border-style on custom properties (WordPress/gutenberg#77476)
- Compose: Fix SSR crash in useMediaQuery and useViewportMatch (WordPress/gutenberg#78725)
- CI: Skip plugin repo release when SVN tag already exists (WordPress/gutenberg#78476)
- Dashboard: Hello Dolly (WordPress/gutenberg#78648)
- UI: `Tooltip.Provider` — forward upstream `closeDelay` and `timeout` props (WordPress/gutenberg#78642)
- Compose: Support React 19 ref callback cleanups in `useMergeRefs` (WordPress/gutenberg#78685)
- Add copilot-instructions.md file (WordPress/gutenberg#78584)
- Dashboard: show ghost widgets visually & allow easy removal (WordPress/gutenberg#78502)
- Bump fast-xml-builder from 1.0.0 to 1.2.0 (WordPress/gutenberg#78272)
- Bump actions/stale (WordPress/gutenberg#78745)
- Bump fast-xml-parser from 4.5.0 to 4.5.6 (WordPress/gutenberg#77167)
- Bump actions/github-script from 8.0.0 to 9.0.0 in /.github/workflows (WordPress/gutenberg#78591)
- @wordpress/theme: deduplicate addFallbackToVar helper (WordPress/gutenberg#78666)
- Add Combobox primitives (WordPress/gutenberg#78399)
- Editor: Fix keyboard activation of the template actions preview (WordPress/gutenberg#78641)
- Theme: drop `density` support from `@wordpress/theme` (WordPress/gutenberg#78741)
- Tooltip migration: fields + media-editor + media-fields + global-styles-ui (4/5) (WordPress/gutenberg#78691)
- List View: Expose block visibility label to assistive technology (WordPress/gutenberg#78640)
- Hide paragraph Drop cap control when a state is selected (WordPress/gutenberg#78672)
- Image cropper: round zoom control values and display as percentages (WordPress/gutenberg#78757)
- Media Editor Modal: Try placing the save and cancel buttons in the footer (WordPress/gutenberg#78708)
- Unset grid span defaults with viewport states enabled (WordPress/gutenberg#78709)
- Media Editor: Remove resize handles toggle from crop panel (WordPress/gutenberg#78758)
- Image Editor: focus return after closing image crop modal (WordPress/gutenberg#78711)
- Add dashboard Events widget (WordPress/gutenberg#78553)
- Writing flow: Delete at end of nested list item should merge into next block (WordPress/gutenberg#78742)
- RTC: Re-render collaborators overlay when the block tree changes (WordPress/gutenberg#78636)
- Dashboard: rename `widget-types` to `widget-primitives` and consolidate the widget contract (WordPress/gutenberg#78749)
- Fix Gutenberg plugin assuming its directory is named "gutenberg" (WordPress/gutenberg#78705)
- Codemods: Remove one-shot Tooltip migration codemod (WordPress/gutenberg#78669)
- Dashboard: rename `WidgetChrome` to `DashboardWidgetChrome` (WordPress/gutenberg#78751)
- Paragraph: Strip stale block-support classes from className during align attribute migration (WordPress/gutenberg#78731)
- Global Styles: Fix CSS not applying to Custom CSS textarea in Advanced panel (WordPress/gutenberg#78773)
- scripts: Use require.resolve for SVG loaders to fix pnpm compat (WordPress/gutenberg#78777)
- Post list: Remove close button from Quick Edit drawer (WordPress/gutenberg#78730)
- Revert "Gate client-side media processing as plugin-only (WordPress/gutenberg#76700)" (WordPress/gutenberg#76751)
- Tooltip migration: boot consumers + shell-level Tooltip.Provider (5/5) (WordPress/gutenberg#78692)
- Dashboard: replace `surface` with `host` in widget contract docs (WordPress/gutenberg#78778)
- Shortcode block: Fix editor crash when selecting transform menu (WordPress/gutenberg#78770)
- Make `@wordpress/nux` a no-op compatibility package (WordPress/gutenberg#77773)
- Tests: Temporarily disable REST index output-format assertions (WordPress/gutenberg#78788)
- Hide Cover overlay controls for viewport states (WordPress/gutenberg#78763)
- Fix type of `$block_instance` parameter in `block_core_image_render_lightbox()` (WordPress/gutenberg#78790)
- TypeScript: Migrate server-side-render package to TS (WordPress/gutenberg#71383)
- feat: Migrate performance results to tools release (WordPress/gutenberg#78761)
- wp-build: Fix black flash on wp-admin pages before hydration (WordPress/gutenberg#78493)
- Icons: maintain absolute stroke-width regardless of icon-size (WordPress/gutenberg#78774)
- Dashboard: Use Howdy greeting for page title (WordPress/gutenberg#78740)
- Block Editor: Refactor Inserter to a function component (WordPress/gutenberg#78766)
- Dashboard: Move layout settings to customize toolbar (WordPress/gutenberg#78738)
- Build: update changelog (WordPress/gutenberg#78807)
- Icons: rename timeToRead to time (WordPress/gutenberg#78804)
- RTC: Prevent slower polling filters (WordPress/gutenberg#78811)
- Button.Icon: Fix clipped icons (WordPress/gutenberg#78614)
- Bump docker/login-action (WordPress/gutenberg#78819)
- RTC: Return forbidden rooms together (WordPress/gutenberg#78748)
- Update browserslist (WordPress/gutenberg#78840)
- Try allowing transforms to a variation of another block (WordPress/gutenberg#78713)
- Elements: Guard against non-string className in render filter (WordPress/gutenberg#78841)
- e2e-test-utils-playwright: add src to published NPM files (WordPress/gutenberg#78847)
- Editor: Refactor 'PostPublishButton' into function component (WordPress/gutenberg#78737)
- Dashboard: Promote WidgetRender into widget-primitives (WordPress/gutenberg#78821)
- Notes: Show default avatar in the indicator when user avatars are disabled (WordPress/gutenberg#78849)
- Revert "Icons: maintain absolute stroke-width regardless of icon-size (WordPress/gutenberg#78774)" (WordPress/gutenberg#78854)
- Media: Send Document-Isolation-Policy header on the site preview frame (WordPress/gutenberg#78404)
- Revert navigation morph & playlist commits pushed directly to trunk (WordPress/gutenberg#78857)
- Fix Update button staying active when changes are reverted. (WordPress/gutenberg#78567)
- Docs: Fix and improve documentation (WordPress/gutenberg#78686)
- Abilities: Add validation tests pinning behavior for WP-specific schema keywords (WordPress/gutenberg#78783)
- Tools: migrate docs/tool into tools/docs workspace (WordPress/gutenberg#78870)
- Dashboard: Fix Add widget error on non-secure HTTP origins (WordPress/gutenberg#78850)
- Docs: Fix @wordpress/data README fragment links (WordPress/gutenberg#78866)
- bin: Remove obsolete bin/setup-local-env.sh (WordPress/gutenberg#78871)
- Boot navigation: wrap items in a list role for valid listitem semantics (WordPress/gutenberg#78829)
- wp-build: Document generated page hooks per WordPress standards. (WordPress/gutenberg#78826)
- Update CODEOWNERS for tooling directories (WordPress/gutenberg#78874)
- Block Visibility: Keep hide-everywhere working after a block opts out of visibility support (WordPress/gutenberg#78780)
- Dashboard: Replace grid row height controls with size presets. (WordPress/gutenberg#78735)
- Prevent font-size propagation in Navigation items causing `em` compounding (WordPress/gutenberg#77419)
- Media Editor Modal: Reorder details fields so the editable regular layout fields appear at the top (WordPress/gutenberg#78792)
- Fix media editor sidebar close button label (WordPress/gutenberg#78895)
- Dashboard: event widget iteration (WordPress/gutenberg#78815)
- Playlist Block: Add visualization style selector (WordPress/gutenberg#76147)
- [Content Types]: Fix extra Page padding causing vertical scrollbar (WordPress/gutenberg#78661)
- Remove migrated dependencies from root package.json (WordPress/gutenberg#78813)
- Packages: Declare missing `@types/react` dependency (WordPress/gutenberg#78882)
- Fix collapsed experiment cards not stretching to full width (WordPress/gutenberg#78910)
- Element: add polyfills for render, hydrate, unmountComponentAtNode (WordPress/gutenberg#78899)
- Revert "wp-build: Replace getter-based exports with data properties" (WordPress/gutenberg#78917)
- React: add ReactCurrentOwner polyfill (WordPress/gutenberg#78923)
- Fix playlist metadata edits recreating player (WordPress/gutenberg#78876)
- Media Editor: Fix sidebar overflowing the modal between the small and medium breakpoints (WordPress/gutenberg#78931)
- Media: Move client-side media compat file to wordpress-7.1 directory (WordPress/gutenberg#78852)
- env: Replace extract-zip with adm-zip to fix hang on Node 24.16 (WordPress/gutenberg#78828)
- Media Editor: refactor modal layout (WordPress/gutenberg#78896)
- Optimize wp-env source downloads with Git partial clones (WordPress/gutenberg#78918)
- Fix: Escape URLs in block render functions using `esc_url()` (WordPress/gutenberg#78912)
- Blocks: Allow the Login/out block as an inner block in the Navigation Submenu block (WordPress/gutenberg#75497)
- Fix sprintf format specifiers in post-date and read-more blocks (WordPress/gutenberg#78933)
- Refactor: Remove jest/test deps from root package.json (WordPress/gutenberg#78801)
- Upload Media: Add retry with exponential backoff and network resilience (WordPress/gutenberg#76765)
- Build Scripts: Fix Windows path handling in dev script (WordPress/gutenberg#78939)
- Revert React 19 upgrade (WordPress/gutenberg#78940)
- Fix: block auto-complete for AI API Keys in Connectors (WordPress/gutenberg#78946)
- Dashboard: Opinionated grid columns with container breakpoints (WordPress/gutenberg#78732)
- Skip including inactive or experimental routes when building for WordPress Core (WordPress/gutenberg#76715)
- RTC: Fix Yjs undo manager to update UI state when undo stack changes (WordPress/gutenberg#78864)
- Storybook: Enhance Theme Provider example with admin-ui Page. (WordPress/gutenberg#78814)
- RTC: Fix CRDT deferred updates resulting in jumbled typing (WordPress/gutenberg#78756)
- Add playlist track length setting (WordPress/gutenberg#78954)
- Add aspect ratio control to media editor mobile toolbar (WordPress/gutenberg#78935)
- Media Editor: Replace the zoom slider with +/- buttons (WordPress/gutenberg#78928)
- Use omit-unchanged for compressed-size-action (WordPress/gutenberg#78976)
- DataViewsPicker: Add a new `pickerActivity` layout (WordPress/gutenberg#78941)
- refactor: move babel dependencies to workspace configuration (WordPress/gutenberg#78974)
- feat: Migrate the browserlintrc file to `packages/postcss-plugins-preset` (WordPress/gutenberg#78764)
- Storybook: Declare workspace dependencies for theme example story. (WordPress/gutenberg#78979)
- Refactor: Move React dependencies from root to workspaces (WordPress/gutenberg#78981)
- UI: Update `@base-ui/react` to `1.5.0` (WordPress/gutenberg#78448)
- ui/AlertDialog: Fix footer layout style override (WordPress/gutenberg#78953)
- Font Library: Fix focus issue when navigating (WordPress/gutenberg#78671)
- Docs: Auto-generate per-block API reference pages from block.json (WordPress/gutenberg#77612)
- Patterns: fix focus loss when dismissing Create pattern dialog (WordPress/gutenberg#78957)
- Show media upload progress in a snackbar (WordPress/gutenberg#77249)
- Upload Media: Gate very large images out of client-side processing (WordPress/gutenberg#78949)
- Media: Add UltraHDR (ISO 21496-1) gain map support (WordPress/gutenberg#74873)
- Site Editor: Apply the user's admin color scheme (WordPress/gutenberg#78397)
- Navigation Link: fix duplicate block html attributes in editor (WordPress/gutenberg#78973)
- Added Missing Global Documentation (WordPress/gutenberg#78997)
- Post Revisions: Upgrade `diff` from v4 to v8 (WordPress/gutenberg#77992)
- Theme: Increase stroke1 contrast target to 2.9 (WordPress/gutenberg#77599)
- Tooltip: Use md border radius for portaled popups. (WordPress/gutenberg#78983)
- Framework: Remove invalid stale nested npm package references (WordPress/gutenberg#79014)
- Theme package: Add element size design tokens (WordPress/gutenberg#76545)
- Inserter: use forwardRef for refs (WordPress/gutenberg#79006)
- RTC: Add separate doc persistence endpoint (WordPress/gutenberg#78891)
- DataViews: Add DataViews components to components manifest (WordPress/gutenberg#78960)
- Media Editor: Keep crop handles operable on large images (WordPress/gutenberg#79011)
- Media editor: tweak paddings and margins (WordPress/gutenberg#79009)
- Media Editor: Remove lag when toggling the sidebar (WordPress/gutenberg#79024)
- Elements: Align class name parsing with custom CSS implementation (WordPress/gutenberg#79023)
- CI: Suppress lint:js warnings on static checks (WordPress/gutenberg#79025)
- Remove React Native implementation, framework, and dependencies (WordPress/gutenberg#78747)
- e2e-test-utils-playwright: start transpiling again, but faster (WordPress/gutenberg#79026)
- CI: Remove Validate Gradle Wrapper workflow (WordPress/gutenberg#79030)
- Remove dead native code branches from Platform usages (WordPress/gutenberg#79031)
- Remove orphaned README files for deleted native-only components (WordPress/gutenberg#79035)
- Remove orphaned mobile bug report issue template (WordPress/gutenberg#79038)
- Inserter: Fix error being thrown for spoken message when inserting default/direct block (WordPress/gutenberg#79004)
- Editor: Remove dead native guard in block removal warnings (WordPress/gutenberg#79039)
- Preserve nested list when deleting a selection across sibling list items (WordPress/gutenberg#78776)
- Remove platform-docs Docusaurus site (WordPress/gutenberg#79034)
- Align dependency versions across workspaces (WordPress/gutenberg#77954)
- RichText: Remove dead native-only prop filtering (WordPress/gutenberg#79037)
- Navigable Container: Hoist getFocusableContext out of the component (WordPress/gutenberg#79029)
- Tools: Lint dependency version consistency with Syncpack (WordPress/gutenberg#77950)
- Extract entity view config into a filterable API (WordPress/gutenberg#78977)
- Rich text: use subscribeDelegatedListener for element event listeners (WordPress/gutenberg#79047)
- theme/ThemeProvider: rename `color.bg` prop to `color.background` (WordPress/gutenberg#79007)
- Format Library: Migrate to recommended `@wordpress/ui` components (WordPress/gutenberg#79059)
- Syncpack: ban `classnames` from being reintroduced (WordPress/gutenberg#79061)
- UI: Update CSS cascade layers to use nesting (WordPress/gutenberg#78959)
- Docs: Remove stale mobile references from tooling and primitives docs (WordPress/gutenberg#79041)
- Release: Drop mobile-specific changelog omit rules (WordPress/gutenberg#79042)
- Bump actions/checkout (WordPress/gutenberg#79033)
- `ColorPalette`: don't render when custom colors disabled and no colors passed (WordPress/gutenberg#72402)
- Bump minimatch and lerna (WordPress/gutenberg#76750)
- Image block: don't show crop icon while image is uploading (WordPress/gutenberg#79103)
- Add React 19 as an experimental flag (WordPress/gutenberg#79077)
- Media modal: small tweak to gutters (WordPress/gutenberg#79168)
- Add more React internals polyfills (WordPress/gutenberg#79142)
- Media editor modal: Fix keyboard resizing for locked aspect-ratio crops (WordPress/gutenberg#79207)
- Fix responsive element styles front end output (WordPress/gutenberg#79135) (WordPress/gutenberg#79215)

Props adamsilverstein, jorbin, westonruter, wildworks.
Fixes #65368.
Built from https://develop.svn.wordpress.org/trunk@62584


git-svn-id: http://core.svn.wordpress.org/trunk@61864 1a063a9b-81f0-0310-95a4-ce76da25c4cd
KhushalSainS pushed a commit to KhushalSainS/wordpress-develop that referenced this pull request Jul 1, 2026
This updates the pinned commit hash of the Gutenberg repository from `14db4ab9395a9e96430eed678e4288a59eecbd15 ` (version `23.3.0`) to `14db4ab9395a9e96430eed678e4288a59eecbd15` (version `23.4.0`).

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

The following commits are included:
- Hide image dimension tools when a state is selected (WordPress/gutenberg#78670)
- Changed labels to consistently use Patterns in favor of Block patterns (WordPress/gutenberg#56880)
- Fix: Restrict parent page API search to post titles only (WordPress/gutenberg#78683)
- Update AGENTS.md to mention additional pitfalls: (WordPress/gutenberg#78718)
- Docs: Fix big_image_size_threshold xref typo (WordPress/gutenberg#76299)
- Compose: Fully deprecate the 'pure' HoC (WordPress/gutenberg#78674)
- Common CSS: avoid false-positive border-style on custom properties (WordPress/gutenberg#77476)
- Compose: Fix SSR crash in useMediaQuery and useViewportMatch (WordPress/gutenberg#78725)
- CI: Skip plugin repo release when SVN tag already exists (WordPress/gutenberg#78476)
- Dashboard: Hello Dolly (WordPress/gutenberg#78648)
- UI: `Tooltip.Provider` — forward upstream `closeDelay` and `timeout` props (WordPress/gutenberg#78642)
- Compose: Support React 19 ref callback cleanups in `useMergeRefs` (WordPress/gutenberg#78685)
- Add copilot-instructions.md file (WordPress/gutenberg#78584)
- Dashboard: show ghost widgets visually & allow easy removal (WordPress/gutenberg#78502)
- Bump fast-xml-builder from 1.0.0 to 1.2.0 (WordPress/gutenberg#78272)
- Bump actions/stale (WordPress/gutenberg#78745)
- Bump fast-xml-parser from 4.5.0 to 4.5.6 (WordPress/gutenberg#77167)
- Bump actions/github-script from 8.0.0 to 9.0.0 in /.github/workflows (WordPress/gutenberg#78591)
- @wordpress/theme: deduplicate addFallbackToVar helper (WordPress/gutenberg#78666)
- Add Combobox primitives (WordPress/gutenberg#78399)
- Editor: Fix keyboard activation of the template actions preview (WordPress/gutenberg#78641)
- Theme: drop `density` support from `@wordpress/theme` (WordPress/gutenberg#78741)
- Tooltip migration: fields + media-editor + media-fields + global-styles-ui (4/5) (WordPress/gutenberg#78691)
- List View: Expose block visibility label to assistive technology (WordPress/gutenberg#78640)
- Hide paragraph Drop cap control when a state is selected (WordPress/gutenberg#78672)
- Image cropper: round zoom control values and display as percentages (WordPress/gutenberg#78757)
- Media Editor Modal: Try placing the save and cancel buttons in the footer (WordPress/gutenberg#78708)
- Unset grid span defaults with viewport states enabled (WordPress/gutenberg#78709)
- Media Editor: Remove resize handles toggle from crop panel (WordPress/gutenberg#78758)
- Image Editor: focus return after closing image crop modal (WordPress/gutenberg#78711)
- Add dashboard Events widget (WordPress/gutenberg#78553)
- Writing flow: Delete at end of nested list item should merge into next block (WordPress/gutenberg#78742)
- RTC: Re-render collaborators overlay when the block tree changes (WordPress/gutenberg#78636)
- Dashboard: rename `widget-types` to `widget-primitives` and consolidate the widget contract (WordPress/gutenberg#78749)
- Fix Gutenberg plugin assuming its directory is named "gutenberg" (WordPress/gutenberg#78705)
- Codemods: Remove one-shot Tooltip migration codemod (WordPress/gutenberg#78669)
- Dashboard: rename `WidgetChrome` to `DashboardWidgetChrome` (WordPress/gutenberg#78751)
- Paragraph: Strip stale block-support classes from className during align attribute migration (WordPress/gutenberg#78731)
- Global Styles: Fix CSS not applying to Custom CSS textarea in Advanced panel (WordPress/gutenberg#78773)
- scripts: Use require.resolve for SVG loaders to fix pnpm compat (WordPress/gutenberg#78777)
- Post list: Remove close button from Quick Edit drawer (WordPress/gutenberg#78730)
- Revert "Gate client-side media processing as plugin-only (WordPress/gutenberg#76700)" (WordPress/gutenberg#76751)
- Tooltip migration: boot consumers + shell-level Tooltip.Provider (5/5) (WordPress/gutenberg#78692)
- Dashboard: replace `surface` with `host` in widget contract docs (WordPress/gutenberg#78778)
- Shortcode block: Fix editor crash when selecting transform menu (WordPress/gutenberg#78770)
- Make `@wordpress/nux` a no-op compatibility package (WordPress/gutenberg#77773)
- Tests: Temporarily disable REST index output-format assertions (WordPress/gutenberg#78788)
- Hide Cover overlay controls for viewport states (WordPress/gutenberg#78763)
- Fix type of `$block_instance` parameter in `block_core_image_render_lightbox()` (WordPress/gutenberg#78790)
- TypeScript: Migrate server-side-render package to TS (WordPress/gutenberg#71383)
- feat: Migrate performance results to tools release (WordPress/gutenberg#78761)
- wp-build: Fix black flash on wp-admin pages before hydration (WordPress/gutenberg#78493)
- Icons: maintain absolute stroke-width regardless of icon-size (WordPress/gutenberg#78774)
- Dashboard: Use Howdy greeting for page title (WordPress/gutenberg#78740)
- Block Editor: Refactor Inserter to a function component (WordPress/gutenberg#78766)
- Dashboard: Move layout settings to customize toolbar (WordPress/gutenberg#78738)
- Build: update changelog (WordPress/gutenberg#78807)
- Icons: rename timeToRead to time (WordPress/gutenberg#78804)
- RTC: Prevent slower polling filters (WordPress/gutenberg#78811)
- Button.Icon: Fix clipped icons (WordPress/gutenberg#78614)
- Bump docker/login-action (WordPress/gutenberg#78819)
- RTC: Return forbidden rooms together (WordPress/gutenberg#78748)
- Update browserslist (WordPress/gutenberg#78840)
- Try allowing transforms to a variation of another block (WordPress/gutenberg#78713)
- Elements: Guard against non-string className in render filter (WordPress/gutenberg#78841)
- e2e-test-utils-playwright: add src to published NPM files (WordPress/gutenberg#78847)
- Editor: Refactor 'PostPublishButton' into function component (WordPress/gutenberg#78737)
- Dashboard: Promote WidgetRender into widget-primitives (WordPress/gutenberg#78821)
- Notes: Show default avatar in the indicator when user avatars are disabled (WordPress/gutenberg#78849)
- Revert "Icons: maintain absolute stroke-width regardless of icon-size (WordPress/gutenberg#78774)" (WordPress/gutenberg#78854)
- Media: Send Document-Isolation-Policy header on the site preview frame (WordPress/gutenberg#78404)
- Revert navigation morph & playlist commits pushed directly to trunk (WordPress/gutenberg#78857)
- Fix Update button staying active when changes are reverted. (WordPress/gutenberg#78567)
- Docs: Fix and improve documentation (WordPress/gutenberg#78686)
- Abilities: Add validation tests pinning behavior for WP-specific schema keywords (WordPress/gutenberg#78783)
- Tools: migrate docs/tool into tools/docs workspace (WordPress/gutenberg#78870)
- Dashboard: Fix Add widget error on non-secure HTTP origins (WordPress/gutenberg#78850)
- Docs: Fix @wordpress/data README fragment links (WordPress/gutenberg#78866)
- bin: Remove obsolete bin/setup-local-env.sh (WordPress/gutenberg#78871)
- Boot navigation: wrap items in a list role for valid listitem semantics (WordPress/gutenberg#78829)
- wp-build: Document generated page hooks per WordPress standards. (WordPress/gutenberg#78826)
- Update CODEOWNERS for tooling directories (WordPress/gutenberg#78874)
- Block Visibility: Keep hide-everywhere working after a block opts out of visibility support (WordPress/gutenberg#78780)
- Dashboard: Replace grid row height controls with size presets. (WordPress/gutenberg#78735)
- Prevent font-size propagation in Navigation items causing `em` compounding (WordPress/gutenberg#77419)
- Media Editor Modal: Reorder details fields so the editable regular layout fields appear at the top (WordPress/gutenberg#78792)
- Fix media editor sidebar close button label (WordPress/gutenberg#78895)
- Dashboard: event widget iteration (WordPress/gutenberg#78815)
- Playlist Block: Add visualization style selector (WordPress/gutenberg#76147)
- [Content Types]: Fix extra Page padding causing vertical scrollbar (WordPress/gutenberg#78661)
- Remove migrated dependencies from root package.json (WordPress/gutenberg#78813)
- Packages: Declare missing `@types/react` dependency (WordPress/gutenberg#78882)
- Fix collapsed experiment cards not stretching to full width (WordPress/gutenberg#78910)
- Element: add polyfills for render, hydrate, unmountComponentAtNode (WordPress/gutenberg#78899)
- Revert "wp-build: Replace getter-based exports with data properties" (WordPress/gutenberg#78917)
- React: add ReactCurrentOwner polyfill (WordPress/gutenberg#78923)
- Fix playlist metadata edits recreating player (WordPress/gutenberg#78876)
- Media Editor: Fix sidebar overflowing the modal between the small and medium breakpoints (WordPress/gutenberg#78931)
- Media: Move client-side media compat file to wordpress-7.1 directory (WordPress/gutenberg#78852)
- env: Replace extract-zip with adm-zip to fix hang on Node 24.16 (WordPress/gutenberg#78828)
- Media Editor: refactor modal layout (WordPress/gutenberg#78896)
- Optimize wp-env source downloads with Git partial clones (WordPress/gutenberg#78918)
- Fix: Escape URLs in block render functions using `esc_url()` (WordPress/gutenberg#78912)
- Blocks: Allow the Login/out block as an inner block in the Navigation Submenu block (WordPress/gutenberg#75497)
- Fix sprintf format specifiers in post-date and read-more blocks (WordPress/gutenberg#78933)
- Refactor: Remove jest/test deps from root package.json (WordPress/gutenberg#78801)
- Upload Media: Add retry with exponential backoff and network resilience (WordPress/gutenberg#76765)
- Build Scripts: Fix Windows path handling in dev script (WordPress/gutenberg#78939)
- Revert React 19 upgrade (WordPress/gutenberg#78940)
- Fix: block auto-complete for AI API Keys in Connectors (WordPress/gutenberg#78946)
- Dashboard: Opinionated grid columns with container breakpoints (WordPress/gutenberg#78732)
- Skip including inactive or experimental routes when building for WordPress Core (WordPress/gutenberg#76715)
- RTC: Fix Yjs undo manager to update UI state when undo stack changes (WordPress/gutenberg#78864)
- Storybook: Enhance Theme Provider example with admin-ui Page. (WordPress/gutenberg#78814)
- RTC: Fix CRDT deferred updates resulting in jumbled typing (WordPress/gutenberg#78756)
- Add playlist track length setting (WordPress/gutenberg#78954)
- Add aspect ratio control to media editor mobile toolbar (WordPress/gutenberg#78935)
- Media Editor: Replace the zoom slider with +/- buttons (WordPress/gutenberg#78928)
- Use omit-unchanged for compressed-size-action (WordPress/gutenberg#78976)
- DataViewsPicker: Add a new `pickerActivity` layout (WordPress/gutenberg#78941)
- refactor: move babel dependencies to workspace configuration (WordPress/gutenberg#78974)
- feat: Migrate the browserlintrc file to `packages/postcss-plugins-preset` (WordPress/gutenberg#78764)
- Storybook: Declare workspace dependencies for theme example story. (WordPress/gutenberg#78979)
- Refactor: Move React dependencies from root to workspaces (WordPress/gutenberg#78981)
- UI: Update `@base-ui/react` to `1.5.0` (WordPress/gutenberg#78448)
- ui/AlertDialog: Fix footer layout style override (WordPress/gutenberg#78953)
- Font Library: Fix focus issue when navigating (WordPress/gutenberg#78671)
- Docs: Auto-generate per-block API reference pages from block.json (WordPress/gutenberg#77612)
- Patterns: fix focus loss when dismissing Create pattern dialog (WordPress/gutenberg#78957)
- Show media upload progress in a snackbar (WordPress/gutenberg#77249)
- Upload Media: Gate very large images out of client-side processing (WordPress/gutenberg#78949)
- Media: Add UltraHDR (ISO 21496-1) gain map support (WordPress/gutenberg#74873)
- Site Editor: Apply the user's admin color scheme (WordPress/gutenberg#78397)
- Navigation Link: fix duplicate block html attributes in editor (WordPress/gutenberg#78973)
- Added Missing Global Documentation (WordPress/gutenberg#78997)
- Post Revisions: Upgrade `diff` from v4 to v8 (WordPress/gutenberg#77992)
- Theme: Increase stroke1 contrast target to 2.9 (WordPress/gutenberg#77599)
- Tooltip: Use md border radius for portaled popups. (WordPress/gutenberg#78983)
- Framework: Remove invalid stale nested npm package references (WordPress/gutenberg#79014)
- Theme package: Add element size design tokens (WordPress/gutenberg#76545)
- Inserter: use forwardRef for refs (WordPress/gutenberg#79006)
- RTC: Add separate doc persistence endpoint (WordPress/gutenberg#78891)
- DataViews: Add DataViews components to components manifest (WordPress/gutenberg#78960)
- Media Editor: Keep crop handles operable on large images (WordPress/gutenberg#79011)
- Media editor: tweak paddings and margins (WordPress/gutenberg#79009)
- Media Editor: Remove lag when toggling the sidebar (WordPress/gutenberg#79024)
- Elements: Align class name parsing with custom CSS implementation (WordPress/gutenberg#79023)
- CI: Suppress lint:js warnings on static checks (WordPress/gutenberg#79025)
- Remove React Native implementation, framework, and dependencies (WordPress/gutenberg#78747)
- e2e-test-utils-playwright: start transpiling again, but faster (WordPress/gutenberg#79026)
- CI: Remove Validate Gradle Wrapper workflow (WordPress/gutenberg#79030)
- Remove dead native code branches from Platform usages (WordPress/gutenberg#79031)
- Remove orphaned README files for deleted native-only components (WordPress/gutenberg#79035)
- Remove orphaned mobile bug report issue template (WordPress/gutenberg#79038)
- Inserter: Fix error being thrown for spoken message when inserting default/direct block (WordPress/gutenberg#79004)
- Editor: Remove dead native guard in block removal warnings (WordPress/gutenberg#79039)
- Preserve nested list when deleting a selection across sibling list items (WordPress/gutenberg#78776)
- Remove platform-docs Docusaurus site (WordPress/gutenberg#79034)
- Align dependency versions across workspaces (WordPress/gutenberg#77954)
- RichText: Remove dead native-only prop filtering (WordPress/gutenberg#79037)
- Navigable Container: Hoist getFocusableContext out of the component (WordPress/gutenberg#79029)
- Tools: Lint dependency version consistency with Syncpack (WordPress/gutenberg#77950)
- Extract entity view config into a filterable API (WordPress/gutenberg#78977)
- Rich text: use subscribeDelegatedListener for element event listeners (WordPress/gutenberg#79047)
- theme/ThemeProvider: rename `color.bg` prop to `color.background` (WordPress/gutenberg#79007)
- Format Library: Migrate to recommended `@wordpress/ui` components (WordPress/gutenberg#79059)
- Syncpack: ban `classnames` from being reintroduced (WordPress/gutenberg#79061)
- UI: Update CSS cascade layers to use nesting (WordPress/gutenberg#78959)
- Docs: Remove stale mobile references from tooling and primitives docs (WordPress/gutenberg#79041)
- Release: Drop mobile-specific changelog omit rules (WordPress/gutenberg#79042)
- Bump actions/checkout (WordPress/gutenberg#79033)
- `ColorPalette`: don't render when custom colors disabled and no colors passed (WordPress/gutenberg#72402)
- Bump minimatch and lerna (WordPress/gutenberg#76750)
- Image block: don't show crop icon while image is uploading (WordPress/gutenberg#79103)
- Add React 19 as an experimental flag (WordPress/gutenberg#79077)
- Media modal: small tweak to gutters (WordPress/gutenberg#79168)
- Add more React internals polyfills (WordPress/gutenberg#79142)
- Media editor modal: Fix keyboard resizing for locked aspect-ratio crops (WordPress/gutenberg#79207)
- Fix responsive element styles front end output (WordPress/gutenberg#79135) (WordPress/gutenberg#79215)

Props adamsilverstein, jorbin, westonruter, wildworks.
Fixes #65368.

git-svn-id: https://develop.svn.wordpress.org/trunk@62584 602fd350-edb4-49c9-b593-d223f7449a82
SteelWagstaff pushed a commit to SteelWagstaff/wordpress-develop that referenced this pull request Jul 2, 2026
This updates the pinned commit hash of the Gutenberg repository from `14db4ab9395a9e96430eed678e4288a59eecbd15 ` (version `23.3.0`) to `14db4ab9395a9e96430eed678e4288a59eecbd15` (version `23.4.0`).

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

The following commits are included:
- Hide image dimension tools when a state is selected (WordPress/gutenberg#78670)
- Changed labels to consistently use Patterns in favor of Block patterns (WordPress/gutenberg#56880)
- Fix: Restrict parent page API search to post titles only (WordPress/gutenberg#78683)
- Update AGENTS.md to mention additional pitfalls: (WordPress/gutenberg#78718)
- Docs: Fix big_image_size_threshold xref typo (WordPress/gutenberg#76299)
- Compose: Fully deprecate the 'pure' HoC (WordPress/gutenberg#78674)
- Common CSS: avoid false-positive border-style on custom properties (WordPress/gutenberg#77476)
- Compose: Fix SSR crash in useMediaQuery and useViewportMatch (WordPress/gutenberg#78725)
- CI: Skip plugin repo release when SVN tag already exists (WordPress/gutenberg#78476)
- Dashboard: Hello Dolly (WordPress/gutenberg#78648)
- UI: `Tooltip.Provider` — forward upstream `closeDelay` and `timeout` props (WordPress/gutenberg#78642)
- Compose: Support React 19 ref callback cleanups in `useMergeRefs` (WordPress/gutenberg#78685)
- Add copilot-instructions.md file (WordPress/gutenberg#78584)
- Dashboard: show ghost widgets visually & allow easy removal (WordPress/gutenberg#78502)
- Bump fast-xml-builder from 1.0.0 to 1.2.0 (WordPress/gutenberg#78272)
- Bump actions/stale (WordPress/gutenberg#78745)
- Bump fast-xml-parser from 4.5.0 to 4.5.6 (WordPress/gutenberg#77167)
- Bump actions/github-script from 8.0.0 to 9.0.0 in /.github/workflows (WordPress/gutenberg#78591)
- @wordpress/theme: deduplicate addFallbackToVar helper (WordPress/gutenberg#78666)
- Add Combobox primitives (WordPress/gutenberg#78399)
- Editor: Fix keyboard activation of the template actions preview (WordPress/gutenberg#78641)
- Theme: drop `density` support from `@wordpress/theme` (WordPress/gutenberg#78741)
- Tooltip migration: fields + media-editor + media-fields + global-styles-ui (4/5) (WordPress/gutenberg#78691)
- List View: Expose block visibility label to assistive technology (WordPress/gutenberg#78640)
- Hide paragraph Drop cap control when a state is selected (WordPress/gutenberg#78672)
- Image cropper: round zoom control values and display as percentages (WordPress/gutenberg#78757)
- Media Editor Modal: Try placing the save and cancel buttons in the footer (WordPress/gutenberg#78708)
- Unset grid span defaults with viewport states enabled (WordPress/gutenberg#78709)
- Media Editor: Remove resize handles toggle from crop panel (WordPress/gutenberg#78758)
- Image Editor: focus return after closing image crop modal (WordPress/gutenberg#78711)
- Add dashboard Events widget (WordPress/gutenberg#78553)
- Writing flow: Delete at end of nested list item should merge into next block (WordPress/gutenberg#78742)
- RTC: Re-render collaborators overlay when the block tree changes (WordPress/gutenberg#78636)
- Dashboard: rename `widget-types` to `widget-primitives` and consolidate the widget contract (WordPress/gutenberg#78749)
- Fix Gutenberg plugin assuming its directory is named "gutenberg" (WordPress/gutenberg#78705)
- Codemods: Remove one-shot Tooltip migration codemod (WordPress/gutenberg#78669)
- Dashboard: rename `WidgetChrome` to `DashboardWidgetChrome` (WordPress/gutenberg#78751)
- Paragraph: Strip stale block-support classes from className during align attribute migration (WordPress/gutenberg#78731)
- Global Styles: Fix CSS not applying to Custom CSS textarea in Advanced panel (WordPress/gutenberg#78773)
- scripts: Use require.resolve for SVG loaders to fix pnpm compat (WordPress/gutenberg#78777)
- Post list: Remove close button from Quick Edit drawer (WordPress/gutenberg#78730)
- Revert "Gate client-side media processing as plugin-only (WordPress/gutenberg#76700)" (WordPress/gutenberg#76751)
- Tooltip migration: boot consumers + shell-level Tooltip.Provider (5/5) (WordPress/gutenberg#78692)
- Dashboard: replace `surface` with `host` in widget contract docs (WordPress/gutenberg#78778)
- Shortcode block: Fix editor crash when selecting transform menu (WordPress/gutenberg#78770)
- Make `@wordpress/nux` a no-op compatibility package (WordPress/gutenberg#77773)
- Tests: Temporarily disable REST index output-format assertions (WordPress/gutenberg#78788)
- Hide Cover overlay controls for viewport states (WordPress/gutenberg#78763)
- Fix type of `$block_instance` parameter in `block_core_image_render_lightbox()` (WordPress/gutenberg#78790)
- TypeScript: Migrate server-side-render package to TS (WordPress/gutenberg#71383)
- feat: Migrate performance results to tools release (WordPress/gutenberg#78761)
- wp-build: Fix black flash on wp-admin pages before hydration (WordPress/gutenberg#78493)
- Icons: maintain absolute stroke-width regardless of icon-size (WordPress/gutenberg#78774)
- Dashboard: Use Howdy greeting for page title (WordPress/gutenberg#78740)
- Block Editor: Refactor Inserter to a function component (WordPress/gutenberg#78766)
- Dashboard: Move layout settings to customize toolbar (WordPress/gutenberg#78738)
- Build: update changelog (WordPress/gutenberg#78807)
- Icons: rename timeToRead to time (WordPress/gutenberg#78804)
- RTC: Prevent slower polling filters (WordPress/gutenberg#78811)
- Button.Icon: Fix clipped icons (WordPress/gutenberg#78614)
- Bump docker/login-action (WordPress/gutenberg#78819)
- RTC: Return forbidden rooms together (WordPress/gutenberg#78748)
- Update browserslist (WordPress/gutenberg#78840)
- Try allowing transforms to a variation of another block (WordPress/gutenberg#78713)
- Elements: Guard against non-string className in render filter (WordPress/gutenberg#78841)
- e2e-test-utils-playwright: add src to published NPM files (WordPress/gutenberg#78847)
- Editor: Refactor 'PostPublishButton' into function component (WordPress/gutenberg#78737)
- Dashboard: Promote WidgetRender into widget-primitives (WordPress/gutenberg#78821)
- Notes: Show default avatar in the indicator when user avatars are disabled (WordPress/gutenberg#78849)
- Revert "Icons: maintain absolute stroke-width regardless of icon-size (WordPress/gutenberg#78774)" (WordPress/gutenberg#78854)
- Media: Send Document-Isolation-Policy header on the site preview frame (WordPress/gutenberg#78404)
- Revert navigation morph & playlist commits pushed directly to trunk (WordPress/gutenberg#78857)
- Fix Update button staying active when changes are reverted. (WordPress/gutenberg#78567)
- Docs: Fix and improve documentation (WordPress/gutenberg#78686)
- Abilities: Add validation tests pinning behavior for WP-specific schema keywords (WordPress/gutenberg#78783)
- Tools: migrate docs/tool into tools/docs workspace (WordPress/gutenberg#78870)
- Dashboard: Fix Add widget error on non-secure HTTP origins (WordPress/gutenberg#78850)
- Docs: Fix @wordpress/data README fragment links (WordPress/gutenberg#78866)
- bin: Remove obsolete bin/setup-local-env.sh (WordPress/gutenberg#78871)
- Boot navigation: wrap items in a list role for valid listitem semantics (WordPress/gutenberg#78829)
- wp-build: Document generated page hooks per WordPress standards. (WordPress/gutenberg#78826)
- Update CODEOWNERS for tooling directories (WordPress/gutenberg#78874)
- Block Visibility: Keep hide-everywhere working after a block opts out of visibility support (WordPress/gutenberg#78780)
- Dashboard: Replace grid row height controls with size presets. (WordPress/gutenberg#78735)
- Prevent font-size propagation in Navigation items causing `em` compounding (WordPress/gutenberg#77419)
- Media Editor Modal: Reorder details fields so the editable regular layout fields appear at the top (WordPress/gutenberg#78792)
- Fix media editor sidebar close button label (WordPress/gutenberg#78895)
- Dashboard: event widget iteration (WordPress/gutenberg#78815)
- Playlist Block: Add visualization style selector (WordPress/gutenberg#76147)
- [Content Types]: Fix extra Page padding causing vertical scrollbar (WordPress/gutenberg#78661)
- Remove migrated dependencies from root package.json (WordPress/gutenberg#78813)
- Packages: Declare missing `@types/react` dependency (WordPress/gutenberg#78882)
- Fix collapsed experiment cards not stretching to full width (WordPress/gutenberg#78910)
- Element: add polyfills for render, hydrate, unmountComponentAtNode (WordPress/gutenberg#78899)
- Revert "wp-build: Replace getter-based exports with data properties" (WordPress/gutenberg#78917)
- React: add ReactCurrentOwner polyfill (WordPress/gutenberg#78923)
- Fix playlist metadata edits recreating player (WordPress/gutenberg#78876)
- Media Editor: Fix sidebar overflowing the modal between the small and medium breakpoints (WordPress/gutenberg#78931)
- Media: Move client-side media compat file to wordpress-7.1 directory (WordPress/gutenberg#78852)
- env: Replace extract-zip with adm-zip to fix hang on Node 24.16 (WordPress/gutenberg#78828)
- Media Editor: refactor modal layout (WordPress/gutenberg#78896)
- Optimize wp-env source downloads with Git partial clones (WordPress/gutenberg#78918)
- Fix: Escape URLs in block render functions using `esc_url()` (WordPress/gutenberg#78912)
- Blocks: Allow the Login/out block as an inner block in the Navigation Submenu block (WordPress/gutenberg#75497)
- Fix sprintf format specifiers in post-date and read-more blocks (WordPress/gutenberg#78933)
- Refactor: Remove jest/test deps from root package.json (WordPress/gutenberg#78801)
- Upload Media: Add retry with exponential backoff and network resilience (WordPress/gutenberg#76765)
- Build Scripts: Fix Windows path handling in dev script (WordPress/gutenberg#78939)
- Revert React 19 upgrade (WordPress/gutenberg#78940)
- Fix: block auto-complete for AI API Keys in Connectors (WordPress/gutenberg#78946)
- Dashboard: Opinionated grid columns with container breakpoints (WordPress/gutenberg#78732)
- Skip including inactive or experimental routes when building for WordPress Core (WordPress/gutenberg#76715)
- RTC: Fix Yjs undo manager to update UI state when undo stack changes (WordPress/gutenberg#78864)
- Storybook: Enhance Theme Provider example with admin-ui Page. (WordPress/gutenberg#78814)
- RTC: Fix CRDT deferred updates resulting in jumbled typing (WordPress/gutenberg#78756)
- Add playlist track length setting (WordPress/gutenberg#78954)
- Add aspect ratio control to media editor mobile toolbar (WordPress/gutenberg#78935)
- Media Editor: Replace the zoom slider with +/- buttons (WordPress/gutenberg#78928)
- Use omit-unchanged for compressed-size-action (WordPress/gutenberg#78976)
- DataViewsPicker: Add a new `pickerActivity` layout (WordPress/gutenberg#78941)
- refactor: move babel dependencies to workspace configuration (WordPress/gutenberg#78974)
- feat: Migrate the browserlintrc file to `packages/postcss-plugins-preset` (WordPress/gutenberg#78764)
- Storybook: Declare workspace dependencies for theme example story. (WordPress/gutenberg#78979)
- Refactor: Move React dependencies from root to workspaces (WordPress/gutenberg#78981)
- UI: Update `@base-ui/react` to `1.5.0` (WordPress/gutenberg#78448)
- ui/AlertDialog: Fix footer layout style override (WordPress/gutenberg#78953)
- Font Library: Fix focus issue when navigating (WordPress/gutenberg#78671)
- Docs: Auto-generate per-block API reference pages from block.json (WordPress/gutenberg#77612)
- Patterns: fix focus loss when dismissing Create pattern dialog (WordPress/gutenberg#78957)
- Show media upload progress in a snackbar (WordPress/gutenberg#77249)
- Upload Media: Gate very large images out of client-side processing (WordPress/gutenberg#78949)
- Media: Add UltraHDR (ISO 21496-1) gain map support (WordPress/gutenberg#74873)
- Site Editor: Apply the user's admin color scheme (WordPress/gutenberg#78397)
- Navigation Link: fix duplicate block html attributes in editor (WordPress/gutenberg#78973)
- Added Missing Global Documentation (WordPress/gutenberg#78997)
- Post Revisions: Upgrade `diff` from v4 to v8 (WordPress/gutenberg#77992)
- Theme: Increase stroke1 contrast target to 2.9 (WordPress/gutenberg#77599)
- Tooltip: Use md border radius for portaled popups. (WordPress/gutenberg#78983)
- Framework: Remove invalid stale nested npm package references (WordPress/gutenberg#79014)
- Theme package: Add element size design tokens (WordPress/gutenberg#76545)
- Inserter: use forwardRef for refs (WordPress/gutenberg#79006)
- RTC: Add separate doc persistence endpoint (WordPress/gutenberg#78891)
- DataViews: Add DataViews components to components manifest (WordPress/gutenberg#78960)
- Media Editor: Keep crop handles operable on large images (WordPress/gutenberg#79011)
- Media editor: tweak paddings and margins (WordPress/gutenberg#79009)
- Media Editor: Remove lag when toggling the sidebar (WordPress/gutenberg#79024)
- Elements: Align class name parsing with custom CSS implementation (WordPress/gutenberg#79023)
- CI: Suppress lint:js warnings on static checks (WordPress/gutenberg#79025)
- Remove React Native implementation, framework, and dependencies (WordPress/gutenberg#78747)
- e2e-test-utils-playwright: start transpiling again, but faster (WordPress/gutenberg#79026)
- CI: Remove Validate Gradle Wrapper workflow (WordPress/gutenberg#79030)
- Remove dead native code branches from Platform usages (WordPress/gutenberg#79031)
- Remove orphaned README files for deleted native-only components (WordPress/gutenberg#79035)
- Remove orphaned mobile bug report issue template (WordPress/gutenberg#79038)
- Inserter: Fix error being thrown for spoken message when inserting default/direct block (WordPress/gutenberg#79004)
- Editor: Remove dead native guard in block removal warnings (WordPress/gutenberg#79039)
- Preserve nested list when deleting a selection across sibling list items (WordPress/gutenberg#78776)
- Remove platform-docs Docusaurus site (WordPress/gutenberg#79034)
- Align dependency versions across workspaces (WordPress/gutenberg#77954)
- RichText: Remove dead native-only prop filtering (WordPress/gutenberg#79037)
- Navigable Container: Hoist getFocusableContext out of the component (WordPress/gutenberg#79029)
- Tools: Lint dependency version consistency with Syncpack (WordPress/gutenberg#77950)
- Extract entity view config into a filterable API (WordPress/gutenberg#78977)
- Rich text: use subscribeDelegatedListener for element event listeners (WordPress/gutenberg#79047)
- theme/ThemeProvider: rename `color.bg` prop to `color.background` (WordPress/gutenberg#79007)
- Format Library: Migrate to recommended `@wordpress/ui` components (WordPress/gutenberg#79059)
- Syncpack: ban `classnames` from being reintroduced (WordPress/gutenberg#79061)
- UI: Update CSS cascade layers to use nesting (WordPress/gutenberg#78959)
- Docs: Remove stale mobile references from tooling and primitives docs (WordPress/gutenberg#79041)
- Release: Drop mobile-specific changelog omit rules (WordPress/gutenberg#79042)
- Bump actions/checkout (WordPress/gutenberg#79033)
- `ColorPalette`: don't render when custom colors disabled and no colors passed (WordPress/gutenberg#72402)
- Bump minimatch and lerna (WordPress/gutenberg#76750)
- Image block: don't show crop icon while image is uploading (WordPress/gutenberg#79103)
- Add React 19 as an experimental flag (WordPress/gutenberg#79077)
- Media modal: small tweak to gutters (WordPress/gutenberg#79168)
- Add more React internals polyfills (WordPress/gutenberg#79142)
- Media editor modal: Fix keyboard resizing for locked aspect-ratio crops (WordPress/gutenberg#79207)
- Fix responsive element styles front end output (WordPress/gutenberg#79135) (WordPress/gutenberg#79215)

Props adamsilverstein, jorbin, westonruter, wildworks.
Fixes #65368.

git-svn-id: https://develop.svn.wordpress.org/trunk@62584 602fd350-edb4-49c9-b593-d223f7449a82
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

[Feature] DataViews Work surrounding upgrading and evolving views in the site editor and beyond [Feature] Extensibility The ability to extend blocks or the editing experience [Type] New API New API to be used by plugin developers or package users.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants