Skip to content

wordpress/date: Recover WP timezone after third-party reload#75831

Merged
jsnajdr merged 1 commit into
WordPress:trunkfrom
epeicher:epeicher/fix-wp-timezone-loss
Mar 26, 2026
Merged

wordpress/date: Recover WP timezone after third-party reload#75831
jsnajdr merged 1 commit into
WordPress:trunkfrom
epeicher:epeicher/fix-wp-timezone-loss

Conversation

@epeicher

@epeicher epeicher commented Feb 23, 2026

Copy link
Copy Markdown
Contributor

What?

Makes the @wordpress/date package resilient to third-party plugins that reload moment-timezone and destroy the custom 'WP' timezone zone.

Why?

On sites with non-UTC timezones, post times in the block editor can be offset by 2x the site's UTC difference (e.g., a post published at 10 AM on a UTC+4 site shows as 2 AM). This occurs because plugins like WooCommerce load their own copy of moment-timezone, which reinitializes the internal zone storage and destroys Gutenberg's custom 'WP' timezone zone. When the zone is lost, moment.tz(date, 'WP') falls back incorrectly, causing the UTC offset to be applied twice.

How?

The fix adds resilience to moment-timezone reloads by:

  1. Caching the packed WP timezone zone string after first creation
  2. Adding an ensureWPTimezone() guard that checks if the 'WP' zone still exists before using it
  3. Re-adding the zone from cache when needed (which only requires momentLib.tz.add(), not the utils that get destroyed)
  4. Calling the guard in isInTheFuture(), getDate(), and humanTimeDiff() before accessing WP_ZONE

The cached approach avoids calling pack() on recovery since the utils are also destroyed by third-party reloads.

Testing Instructions

  1. Install a plugin that loads moment-timezone after wp-date (e.g., enqueue moment-timezone-with-data-10-year-range.min.js from cdnjs with wp-date as a dependency), for example, the following testing plugin
    telex-timezone-converter.zip
  2. Set the site timezone to something other than UTC (e.g., UTC+4)
  3. Create/edit a post in the block editor
  4. If you installed the timezone-converter plugin, add the Timezone Date Converter block to the pot
  5. Publish the post and observe the publish time is correct (not offset by 2x the UTC difference)

Testing Instructions for Keyboard

N/A — no UI changes.

Fixes issue where plugins (e.g. WooCommerce) that load their own copy of moment-timezone destroy the custom 'WP' zone and cause post times to be offset by 2x the UTC difference.

The fix adds ensureWPTimezone() guards to isInTheFuture(), getDate(), and humanTimeDiff(). The custom WP timezone zone is now cached in packed form on first creation, so it can be re-added without requiring moment-timezone-utils after a third-party reload. Includes tests that verify recovery after the zone is destroyed.
@github-actions

github-actions Bot commented Feb 23, 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: epeicher <epeicher@git.wordpress.org>
Co-authored-by: jsnajdr <jsnajdr@git.wordpress.org>

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

@github-actions github-actions Bot added the [Package] Date /packages/date label Feb 23, 2026
@epeicher

Copy link
Copy Markdown
Contributor Author

Hey @jsnajdr @aduth, would love your eyes on this one when you get a chance! You've both worked on moment-timezone and @wordpress/date recently, so you'd be great reviewers. Feel free to ping someone else if you think they'd be a better fit.

TL;DR: Adds resilience against third-party plugins that reload moment-timezone and destroy the custom 'WP' timezone zone. Thanks! 🙏

@jsnajdr

jsnajdr commented Mar 18, 2026

Copy link
Copy Markdown
Member

I'd like to better understand the mechanism how WooCommerce overwrites the moment library. Core loads the moment.js file (from /wp-includes/js/dist/vendor) as a script which assigns to the window.moment global. The imports of the moment library, like these in wp-date, are externalized to reference this window.moment.

How does WooCommerce load the second copy of moment? Does it ship its own moment.js, loaded as a different script (with different WP handle), but assigning to the same window.moment global?

If WooCommerce merely bundled moment as part of another script, then moment.js would be treated as a CommonJS module and the assignment to window.moment wouldn't happen. It uses the UMD convention.

@epeicher

Copy link
Copy Markdown
Contributor Author

Thanks @jsnajdr for your reply! Please let me provide some more context, I was not able to reproduce the issue using WooCommerce so I created a plugin that mimics the incorrect behaviour. This is a snippet of the plugin, you can find it here telex-timezone-converter.zip

function telex_timezone_converter_simulate_moment_overwrite() {
	// Log state BEFORE the CDN script loads
	wp_add_inline_script(
		'wp-date',
		'console.log("[TZ Debug] BEFORE CDN - WP zone:", window.moment.tz.zone("WP"));
		 console.log("[TZ Debug] BEFORE CDN - tz.names count:", window.moment.tz.names().length);',
		'after'
	);

	wp_enqueue_script(
		'moment-timezone-override',
		'https://cdnjs.cloudflare.com/ajax/libs/moment-timezone/0.5.46/moment-timezone-with-data-10-year-range.min.js',
		array( 'wp-date' ),
		null,
		false
	);

	// Log state AFTER the CDN script loads
	wp_add_inline_script(
		'moment-timezone-override',
		'console.log("[TZ Debug] AFTER CDN - WP zone:", window.moment.tz.zone("WP"));
		 console.log("[TZ Debug] AFTER CDN - tz.names count:", window.moment.tz.names().length);',
		'after'
	);
}
add_action( 'admin_enqueue_scripts', 'telex_timezone_converter_simulate_moment_overwrite' );

When I load the block, the timezone is not correctly applied.

But after giving this some more thought, if the issue isn't reproducible with popular plugins or doesn't represent a standard use case, it might make sense to close this PR. What do you think?

@jsnajdr

jsnajdr commented Mar 23, 2026

Copy link
Copy Markdown
Member

if the issue isn't reproducible with popular plugins or doesn't represent a standard use case, it might make sense to close this PR.

The telex reproduction case makes sense: if any plugin registers its own copy of moment with wp_enqueue_script, even if the handle of the script is different, it will overwrite the window.moment global.

It would be nice to know where did the issue come from. What motivated you to fix it, did it happen to you personally on some site.

If someone overwrites moment with their own copy, the date formatting can break in other, more subtle ways. Maybe the moment version number is different than we expect. Or the set of supported timezones is different. This PR fixes only one of possible symptoms.

I quite like the PR, but would like to see a stronger case why it needs to be done. Such a change will last for many years, and folks in the future will be asking what is this special code doing and whether it's still needed.

@epeicher

Copy link
Copy Markdown
Contributor Author

It would be nice to know where did the issue come from. What motivated you to fix it, did it happen to you personally on some site.

This originates from a Calypso issue: Automattic/wp-calypso#71529. The latest occurrences are from more than a year ago, so they may already have been resolved.

I quite like the PR, but would like to see a stronger case why it needs to be done. Such a change will last for many years, and folks in the future will be asking what is this special code doing and whether it's still needed.

That’s very reasonable, and it makes total sense. I think the change is self-explanatory, but it may also be considered unnecessary, so I understand that if we don’t have a strong case, this can be closed. I will update the issue with these comments, and it can be reopened if further occurrences appear and can be reproduced without a plugin created just for that purpose

@jsnajdr

jsnajdr commented Mar 26, 2026

Copy link
Copy Markdown
Member

This originates from a Calypso issue: Automattic/wp-calypso#71529. The latest occurrences are from more than a year ago, so they may already have been resolved.

There are indeed many reports there, but most seem to have been resolved after a moment-timezone upgrade in #47879.

Still, this PR is pretty good, let's merge it 🙂

@jsnajdr
jsnajdr merged commit fff5f25 into WordPress:trunk Mar 26, 2026
39 of 40 checks passed
@github-actions github-actions Bot added this to the Gutenberg 22.9 milestone Mar 26, 2026
@epeicher
epeicher deleted the epeicher/fix-wp-timezone-loss branch March 26, 2026 15:07
adamsilverstein pushed a commit that referenced this pull request Mar 26, 2026
…ad (#75831)

Fixes issue where plugins (e.g. WooCommerce) that load their own copy of moment-timezone destroy the custom 'WP' zone and cause post times to be offset by 2x the UTC difference.

The fix adds ensureWPTimezone() guards to isInTheFuture(), getDate(), and humanTimeDiff(). The custom WP timezone zone is now cached in packed form on first creation, so it can be re-added without requiring moment-timezone-utils after a third-party reload. Includes tests that verify recovery after the zone is destroyed.

Co-authored-by: epeicher <epeicher@git.wordpress.org>
Co-authored-by: jsnajdr <jsnajdr@git.wordpress.org>
adamsilverstein pushed a commit that referenced this pull request Mar 31, 2026
…ad (#75831)

Fixes issue where plugins (e.g. WooCommerce) that load their own copy of moment-timezone destroy the custom 'WP' zone and cause post times to be offset by 2x the UTC difference.

The fix adds ensureWPTimezone() guards to isInTheFuture(), getDate(), and humanTimeDiff(). The custom WP timezone zone is now cached in packed form on first creation, so it can be re-added without requiring moment-timezone-utils after a third-party reload. Includes tests that verify recovery after the zone is destroyed.

Co-authored-by: epeicher <epeicher@git.wordpress.org>
Co-authored-by: jsnajdr <jsnajdr@git.wordpress.org>
@oandregal oandregal changed the title fix(date): Recover WP timezone after third-party reload wordpress/date: Recover WP timezone after third-party reload Apr 1, 2026
@oandregal oandregal added the [Type] Bug An existing feature does not function as intended label Apr 1, 2026
adamsilverstein pushed a commit that referenced this pull request Apr 7, 2026
…ad (#75831)

Fixes issue where plugins (e.g. WooCommerce) that load their own copy of moment-timezone destroy the custom 'WP' zone and cause post times to be offset by 2x the UTC difference.

The fix adds ensureWPTimezone() guards to isInTheFuture(), getDate(), and humanTimeDiff(). The custom WP timezone zone is now cached in packed form on first creation, so it can be re-added without requiring moment-timezone-utils after a third-party reload. Includes tests that verify recovery after the zone is destroyed.

Co-authored-by: epeicher <epeicher@git.wordpress.org>
Co-authored-by: jsnajdr <jsnajdr@git.wordpress.org>
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 `3166ad3c587b4091f77b0e16affeed5762e193f1` (version `22.8.0`) to `5426109cdaf45828ef28ff8527d7d38e7e75fe74` (version `22.9.0`).

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

The following commits are included:
- Real Time Collaboration: Introduce filters for the polling intervals. (WordPress/gutenberg#76518)
- UI: Update @base-ui/react from 1.2.0 to 1.3.0 (WordPress/gutenberg#76603)
- Card: Use Text component for Title typography (WordPress/gutenberg#76642)
- Add TypeScript parser tests for shouldSkipReference (WordPress/gutenberg#76611)
- Update changelog link for pull request 11276 (WordPress/gutenberg#76638)
- ThemeProvider: Add `cursor` prop (WordPress/gutenberg#76410)
- RTC: Fix RichTextData deserialization (WordPress/gutenberg#76607)
- Cross Origin Isolation: Remove `img` from the list of elements that get mutated (WordPress/gutenberg#76618)
- RTC: Scroll to collaborator on click (WordPress/gutenberg#76561)
- Fix backport changelog filename (WordPress/gutenberg#76651)
- Build: Skip non-minified build for WASM-inlined workers (WordPress/gutenberg#76615)
- Improvements to dataviews infinite scroll (WordPress/gutenberg#74378)
- Image/Site Logo: hide crop toolbar when editMediaEntity is unavailable (WordPress/gutenberg#76626)
- Bump lodash from 4.17.21 to 4.17.23 in /platform-docs (WordPress/gutenberg#74829)
- RTC: Change RTC option name (WordPress/gutenberg#76643)
- Change from PR WordPress/gutenberg#11276 to WordPress/gutenberg#11234 with with different approach (WordPress/gutenberg#76661)
- Build: Fix vips worker 404 when SCRIPT_DEBUG is true (WordPress/gutenberg#76657)
- Build: Remove unused JXL WASM module from vips worker (WordPress/gutenberg#76639)
- Storybook: disabled autodocs for Icon library (WordPress/gutenberg#76620)
- Connectors: fix button size (WordPress/gutenberg#76582)
- Revisions: Add Meta fields diff panel to document sidebar (WordPress/gutenberg#76341)
- Reduce the added halo for selected block. (WordPress/gutenberg#76619)
- Site Editor > Pages: move view config to the server (WordPress/gutenberg#76573)
- ui/Tabs: add runtime validation for tab/panel mismatches (WordPress/gutenberg#75170)
- Fix Color Picker Angle Reset on Gradient Type Change (WordPress/gutenberg#76595)
- ESLint: Add `no-unmerged-classname` rule (WordPress/gutenberg#76458)
- RTC: Backport race condition fix (WordPress/gutenberg#76649)
- ui/Card: Add overflow: clip to root container (WordPress/gutenberg#76678)
- Storybook: Make "introduction" top level (WordPress/gutenberg#76671)
- Fix navigation block rendering unit test (WordPress/gutenberg#76685)
- Hide Additional CSS controls when block is inside contentOnly editing mode (WordPress/gutenberg#76512)
- RTC: Increase polling intervals, increase polling on primary room only (WordPress/gutenberg#76704)
- Navigation: Avoid List View changing position when navigation block saves (WordPress/gutenberg#76659)
- Fix navigation block unit test and e2e test (WordPress/gutenberg#76692)
- Stretchy Text: Fix focus loss (WordPress/gutenberg#75092)
- Fix locked content when switching to a different template without exiting 'Edit pattern' (WordPress/gutenberg#76710)
- Guidelines: Improvements to the UX (WordPress/gutenberg#76383)
- Fix: Create custom template modal content width (WordPress/gutenberg#76713)
- Core Data: Optimize getRawEntityRecord selector (WordPress/gutenberg#76632)
- Metabox: Fix checkbox style in sidebar (WordPress/gutenberg#76718)
- Stop keeping stale controlled blocks after reset (WordPress/gutenberg#76591)
- Gate client-side media processing as plugin-only (WordPress/gutenberg#76700)
- Storybook: Add redirect for moved introduction page (WordPress/gutenberg#76701)
- InputControl: Add to @wordpress/ui (WordPress/gutenberg#76653)
- UI Tooltip: Improve documentation to cover intended accessibility practices (WordPress/gutenberg#76705)
- Add EmptyState component to @wordpress/ui (WordPress/gutenberg#74719)
- RTC: Use activation hook to enable RTC by default (WordPress/gutenberg#76736)
- Forms Block: Add hidden input field variation (WordPress/gutenberg#74131)
- Guidelines: Refactor components and improve TypeScript typing (WordPress/gutenberg#76394)
- Connectors: Align client-side registration API with server-side (WordPress/gutenberg#76737)
- Properly resolve `getTemplateId` for hybrid themes (WordPress/gutenberg#76532)
- Changelog: Add missing label-to-feature mappings (WordPress/gutenberg#76646)
- Connectors: Support non-AI provider types and add JS extensibility e2e test (WordPress/gutenberg#76722)
- Experimental: Add `template` panel to include the existing template actions (WordPress/gutenberg#76539)
- RadioControl: Add `role="radiogroup"` to fieldset (WordPress/gutenberg#76745)
- wp-build: Hash transformed CSS for `data-wp-hash` dedupe key (WordPress/gutenberg#76743)
- Button: restore specificity of high-contrast mode focus ring (WordPress/gutenberg#76719)
- Updating versions in WordPress ahead of 7.0 (WordPress/gutenberg#76723)
- Bump the github-actions group across 2 directories with 1 update (WordPress/gutenberg#76681)
- Admin UI: Add CSS files to sideEffects array (WordPress/gutenberg#76609)
- RTC: Add E2E "stress test" with complex interactions (WordPress/gutenberg#76055)
- Connectors: Improve AI plugin button (WordPress/gutenberg#76759)
- Login/out block: Add button block class names to the submit button (WordPress/gutenberg#76746)
- Commands: Add sections to command palette and introduce Recently used functionality (WordPress/gutenberg#75691)
- RTC: Use prepared queries instead of `*_post_meta` functions (WordPress/gutenberg#76779)
- Core Abilities: fix sideEffects flag (WordPress/gutenberg#76763)
- Site Editor > Patterns: move config to the server (WordPress/gutenberg#76734)
- Docs: Remove Puppeteer references and update to Playwright (WordPress/gutenberg#76766)
- Site Editor > Templates: move config to the server (WordPress/gutenberg#76622)
- Core Data: Remove 'isRawAttribute' internal util (WordPress/gutenberg#76806)
- Reset blockEditingModes on RESET_BLOCKS (WordPress/gutenberg#76529)
- Refactor: Use null coalescing operator for improved readability (WordPress/gutenberg#76777)
- ui/CollapsibleCard: do not animate focus ring (WordPress/gutenberg#76682)
- admin-ui / Breadcrumbs: stricter `items[].to` prop types (WordPress/gutenberg#76493)
- RTC: Remove stale wp_enable_real_time_collaboration option check (WordPress/gutenberg#76810)
- Storybook: Try changing to collapsed folders (WordPress/gutenberg#76361)
- @wordpress/dataviews: migrate card layout to @wordpress/ui (WordPress/gutenberg#76282)
- RTC: Fix editor freeze when replacing code editor content (WordPress/gutenberg#76815)
- Preferences: Hide collaboration options when RTC is not enabled (WordPress/gutenberg#76819)
- Cherry-pick: Set milestone on PRs after cherry-picking to release branch (WordPress/gutenberg#76652)
- Site Tagline: Fix block error when migrating deprecated textAlign attribute (WordPress/gutenberg#76821)
- Commands: Fix unstable `useSelect` return value for `recentlyUsedNames` (WordPress/gutenberg#76822)
- `ControlWithError`: Connect validation messages to controls via `aria-describedby` (WordPress/gutenberg#76742)
- Block Editor: Deprecate '__unstableSaveReusableBlock' action (WordPress/gutenberg#76807)
- Editor: Fix template revisions using 'modified' date field instead of 'date' (WordPress/gutenberg#76760)
- UI: Clarify public APIs and component naming, remove NoticeIntent typings (WordPress/gutenberg#76791)
- fix(date): Recover WP timezone after third-party moment-timezone reload (WordPress/gutenberg#75831)
- Admin UI: Update Page background color (WordPress/gutenberg#76548)
- Snackbar: Use surface-width design token for max-width (WordPress/gutenberg#76592)
- iAPI Docs: Add client-side navigation compatibility guide (WordPress/gutenberg#76242)
- Enhance block registration by using blocks-manifest for improved performance (WordPress/gutenberg#76317)
- docs(create-block-interactive-template): document available variants in README (WordPress/gutenberg#76831)
- Build: detect version and generate asset.php for vendor scripts (WordPress/gutenberg#76811)
- Site Editor > Patterns & Parts: generate sidebar from view config (WordPress/gutenberg#76823)
- Interactivity API: mention `client-side-navigation` scaffold variant in getting-started guide (WordPress/gutenberg#76543)
- Fields: Add `excerpt` field (WordPress/gutenberg#76829)
- Update PHP_CodeSniffer repository link and schema URL (WordPress/gutenberg#76816)
- docs: Fix markdown links and PHP code block in client-side navigation compatibility guide (WordPress/gutenberg#76856)
- Experimental: Add `revisions` panel (WordPress/gutenberg#76735)
- WordPress/gutenberg#76478 Boot: Fix black area below content when sidebar is taller than page c… (WordPress/gutenberg#76764)
- Style Book: Fix missing styles for classic themes in stylebook route (WordPress/gutenberg#76843)
- UI/Dialog: Expose initialFocus and finalFocus on Dialog.Popup (WordPress/gutenberg#76860)
- compose/useDialog: add `stopPropagation()` to Escape handler (WordPress/gutenberg#76861)
- RTC: Add e2e block gauntlet (WordPress/gutenberg#76849)
- UI: Add AlertDialog primitive (WordPress/gutenberg#76847)
- RTC: Fix stuck "Join" link in post list when lock expires (WordPress/gutenberg#76795)
- Site Editor: simplify sidebar for Pages & Templates (WordPress/gutenberg#76868)
- Site Editor v2: Add missing menu items to navigation leaf more menu (WordPress/gutenberg#76804)
- Navigation: Add a shared helper for font sizes in Navigation Link and Navigation Submenu blocks (WordPress/gutenberg#74855)
- Reduce specificity of nav link default padding so global styles are applied (WordPress/gutenberg#76876)
- Icon: Fix center alignment in the editor for classic themes (WordPress/gutenberg#76878)
- RTC: Fix notes not syncing between collaborative editors (WordPress/gutenberg#76873)
- List Item: Disable edit as HTML support (WordPress/gutenberg#76897)
- Block Library: Show fallback label in MediaControl when filename is empty (WordPress/gutenberg#76888)
- Image block media placeholder: remove duotone (WordPress/gutenberg#76721)
- Latest Comments: Fix v1 deprecated block missing supports (WordPress/gutenberg#76877)
- VIPS: ensure single instance (WordPress/gutenberg#76780)
- React vendor script: avoid warning on createRoot (WordPress/gutenberg#76825)
- Connectors: Add Akismet as a default connector (WordPress/gutenberg#76828)
- Core Data: remove offset param from stableKey, use pagination logic (WordPress/gutenberg#76808)
- Button: hide focus outline on :active for click feedback in forced-colors mode (WordPress/gutenberg#76833)
- Restore with compaction update (WordPress/gutenberg#76872)
- Theme: Change default control cursor to `pointer` (WordPress/gutenberg#76762)
- E2E Tests: Enable client-side media processing for site editor image test (WordPress/gutenberg#76648)
- ComboboxControl: Fix accessible association of `help` text (WordPress/gutenberg#76761)
- Add backport for WP_ALLOW_COLLABORATION (WordPress/gutenberg#76716)
- DataForm: Add `compact` configuration option to the `datetime` control (WordPress/gutenberg#76905)
- Admin UI: Fix Page Header not rendering with only actions and add stories (WordPress/gutenberg#76695)
- Improve JSDoc for abilities API (WordPress/gutenberg#76824)
- DOM: Document class wildcard matcher for 'cleanNodeList' (WordPress/gutenberg#76920)
- e2e: Add e2e tests for template and template part revisions (WordPress/gutenberg#76923)
- react-dom vendor script: remove __esModule flag (WordPress/gutenberg#76925)
- Site Editor: Fix unsupported theme flash on direct URL navigation (WordPress/gutenberg#76465)
- Icons: Enforce strict name validation in `register` method (WordPress/gutenberg#76079)
- ToggleGroupControl: Fix accessible association of `help` text (WordPress/gutenberg#76740)
- Connectors: Replace plugin.slug with plugin.file (WordPress/gutenberg#76909)
- UI/Dialog: deprioritize close icon for initial focus (WordPress/gutenberg#76910)
- Block visibility badge: use canvas iframe for viewport detection (WordPress/gutenberg#76889)
- Fields: Add `sticky` field (WordPress/gutenberg#76922)
- DOM: Prefer standard `caretPositionFromPoint` over deprecated `caretRangeFromPoint` (WordPress/gutenberg#76921)
- Block Supports: Add background gradient support that can combine with background images (WordPress/gutenberg#75859)
- Tab Block: Remove anchor from save function (WordPress/gutenberg#76511)
- CollapsibleCard: Add HeaderDescription subcomponent (WordPress/gutenberg#76867)
- element: Make createInterpolateElement TS/type smart (WordPress/gutenberg#71513)
- admin-ui: Update README to clarify purpose and distinguish from ui package (WordPress/gutenberg#76943)
- Site Editor > Quick Edit: add form config to endpoint (WordPress/gutenberg#76953)
- Fields: Tweak `excerpt` field (WordPress/gutenberg#76903)
- Fix: Flaky RichText format e2e test (WordPress/gutenberg#76958)

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

git-svn-id: https://develop.svn.wordpress.org/trunk@62578 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 `3166ad3c587b4091f77b0e16affeed5762e193f1` (version `22.8.0`) to `5426109cdaf45828ef28ff8527d7d38e7e75fe74` (version `22.9.0`).

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

The following commits are included:
- Real Time Collaboration: Introduce filters for the polling intervals. (WordPress/gutenberg#76518)
- UI: Update @base-ui/react from 1.2.0 to 1.3.0 (WordPress/gutenberg#76603)
- Card: Use Text component for Title typography (WordPress/gutenberg#76642)
- Add TypeScript parser tests for shouldSkipReference (WordPress/gutenberg#76611)
- Update changelog link for pull request 11276 (WordPress/gutenberg#76638)
- ThemeProvider: Add `cursor` prop (WordPress/gutenberg#76410)
- RTC: Fix RichTextData deserialization (WordPress/gutenberg#76607)
- Cross Origin Isolation: Remove `img` from the list of elements that get mutated (WordPress/gutenberg#76618)
- RTC: Scroll to collaborator on click (WordPress/gutenberg#76561)
- Fix backport changelog filename (WordPress/gutenberg#76651)
- Build: Skip non-minified build for WASM-inlined workers (WordPress/gutenberg#76615)
- Improvements to dataviews infinite scroll (WordPress/gutenberg#74378)
- Image/Site Logo: hide crop toolbar when editMediaEntity is unavailable (WordPress/gutenberg#76626)
- Bump lodash from 4.17.21 to 4.17.23 in /platform-docs (WordPress/gutenberg#74829)
- RTC: Change RTC option name (WordPress/gutenberg#76643)
- Change from PR WordPress/gutenberg#11276 to WordPress/gutenberg#11234 with with different approach (WordPress/gutenberg#76661)
- Build: Fix vips worker 404 when SCRIPT_DEBUG is true (WordPress/gutenberg#76657)
- Build: Remove unused JXL WASM module from vips worker (WordPress/gutenberg#76639)
- Storybook: disabled autodocs for Icon library (WordPress/gutenberg#76620)
- Connectors: fix button size (WordPress/gutenberg#76582)
- Revisions: Add Meta fields diff panel to document sidebar (WordPress/gutenberg#76341)
- Reduce the added halo for selected block. (WordPress/gutenberg#76619)
- Site Editor > Pages: move view config to the server (WordPress/gutenberg#76573)
- ui/Tabs: add runtime validation for tab/panel mismatches (WordPress/gutenberg#75170)
- Fix Color Picker Angle Reset on Gradient Type Change (WordPress/gutenberg#76595)
- ESLint: Add `no-unmerged-classname` rule (WordPress/gutenberg#76458)
- RTC: Backport race condition fix (WordPress/gutenberg#76649)
- ui/Card: Add overflow: clip to root container (WordPress/gutenberg#76678)
- Storybook: Make "introduction" top level (WordPress/gutenberg#76671)
- Fix navigation block rendering unit test (WordPress/gutenberg#76685)
- Hide Additional CSS controls when block is inside contentOnly editing mode (WordPress/gutenberg#76512)
- RTC: Increase polling intervals, increase polling on primary room only (WordPress/gutenberg#76704)
- Navigation: Avoid List View changing position when navigation block saves (WordPress/gutenberg#76659)
- Fix navigation block unit test and e2e test (WordPress/gutenberg#76692)
- Stretchy Text: Fix focus loss (WordPress/gutenberg#75092)
- Fix locked content when switching to a different template without exiting 'Edit pattern' (WordPress/gutenberg#76710)
- Guidelines: Improvements to the UX (WordPress/gutenberg#76383)
- Fix: Create custom template modal content width (WordPress/gutenberg#76713)
- Core Data: Optimize getRawEntityRecord selector (WordPress/gutenberg#76632)
- Metabox: Fix checkbox style in sidebar (WordPress/gutenberg#76718)
- Stop keeping stale controlled blocks after reset (WordPress/gutenberg#76591)
- Gate client-side media processing as plugin-only (WordPress/gutenberg#76700)
- Storybook: Add redirect for moved introduction page (WordPress/gutenberg#76701)
- InputControl: Add to @wordpress/ui (WordPress/gutenberg#76653)
- UI Tooltip: Improve documentation to cover intended accessibility practices (WordPress/gutenberg#76705)
- Add EmptyState component to @wordpress/ui (WordPress/gutenberg#74719)
- RTC: Use activation hook to enable RTC by default (WordPress/gutenberg#76736)
- Forms Block: Add hidden input field variation (WordPress/gutenberg#74131)
- Guidelines: Refactor components and improve TypeScript typing (WordPress/gutenberg#76394)
- Connectors: Align client-side registration API with server-side (WordPress/gutenberg#76737)
- Properly resolve `getTemplateId` for hybrid themes (WordPress/gutenberg#76532)
- Changelog: Add missing label-to-feature mappings (WordPress/gutenberg#76646)
- Connectors: Support non-AI provider types and add JS extensibility e2e test (WordPress/gutenberg#76722)
- Experimental: Add `template` panel to include the existing template actions (WordPress/gutenberg#76539)
- RadioControl: Add `role="radiogroup"` to fieldset (WordPress/gutenberg#76745)
- wp-build: Hash transformed CSS for `data-wp-hash` dedupe key (WordPress/gutenberg#76743)
- Button: restore specificity of high-contrast mode focus ring (WordPress/gutenberg#76719)
- Updating versions in WordPress ahead of 7.0 (WordPress/gutenberg#76723)
- Bump the github-actions group across 2 directories with 1 update (WordPress/gutenberg#76681)
- Admin UI: Add CSS files to sideEffects array (WordPress/gutenberg#76609)
- RTC: Add E2E "stress test" with complex interactions (WordPress/gutenberg#76055)
- Connectors: Improve AI plugin button (WordPress/gutenberg#76759)
- Login/out block: Add button block class names to the submit button (WordPress/gutenberg#76746)
- Commands: Add sections to command palette and introduce Recently used functionality (WordPress/gutenberg#75691)
- RTC: Use prepared queries instead of `*_post_meta` functions (WordPress/gutenberg#76779)
- Core Abilities: fix sideEffects flag (WordPress/gutenberg#76763)
- Site Editor > Patterns: move config to the server (WordPress/gutenberg#76734)
- Docs: Remove Puppeteer references and update to Playwright (WordPress/gutenberg#76766)
- Site Editor > Templates: move config to the server (WordPress/gutenberg#76622)
- Core Data: Remove 'isRawAttribute' internal util (WordPress/gutenberg#76806)
- Reset blockEditingModes on RESET_BLOCKS (WordPress/gutenberg#76529)
- Refactor: Use null coalescing operator for improved readability (WordPress/gutenberg#76777)
- ui/CollapsibleCard: do not animate focus ring (WordPress/gutenberg#76682)
- admin-ui / Breadcrumbs: stricter `items[].to` prop types (WordPress/gutenberg#76493)
- RTC: Remove stale wp_enable_real_time_collaboration option check (WordPress/gutenberg#76810)
- Storybook: Try changing to collapsed folders (WordPress/gutenberg#76361)
- @wordpress/dataviews: migrate card layout to @wordpress/ui (WordPress/gutenberg#76282)
- RTC: Fix editor freeze when replacing code editor content (WordPress/gutenberg#76815)
- Preferences: Hide collaboration options when RTC is not enabled (WordPress/gutenberg#76819)
- Cherry-pick: Set milestone on PRs after cherry-picking to release branch (WordPress/gutenberg#76652)
- Site Tagline: Fix block error when migrating deprecated textAlign attribute (WordPress/gutenberg#76821)
- Commands: Fix unstable `useSelect` return value for `recentlyUsedNames` (WordPress/gutenberg#76822)
- `ControlWithError`: Connect validation messages to controls via `aria-describedby` (WordPress/gutenberg#76742)
- Block Editor: Deprecate '__unstableSaveReusableBlock' action (WordPress/gutenberg#76807)
- Editor: Fix template revisions using 'modified' date field instead of 'date' (WordPress/gutenberg#76760)
- UI: Clarify public APIs and component naming, remove NoticeIntent typings (WordPress/gutenberg#76791)
- fix(date): Recover WP timezone after third-party moment-timezone reload (WordPress/gutenberg#75831)
- Admin UI: Update Page background color (WordPress/gutenberg#76548)
- Snackbar: Use surface-width design token for max-width (WordPress/gutenberg#76592)
- iAPI Docs: Add client-side navigation compatibility guide (WordPress/gutenberg#76242)
- Enhance block registration by using blocks-manifest for improved performance (WordPress/gutenberg#76317)
- docs(create-block-interactive-template): document available variants in README (WordPress/gutenberg#76831)
- Build: detect version and generate asset.php for vendor scripts (WordPress/gutenberg#76811)
- Site Editor > Patterns & Parts: generate sidebar from view config (WordPress/gutenberg#76823)
- Interactivity API: mention `client-side-navigation` scaffold variant in getting-started guide (WordPress/gutenberg#76543)
- Fields: Add `excerpt` field (WordPress/gutenberg#76829)
- Update PHP_CodeSniffer repository link and schema URL (WordPress/gutenberg#76816)
- docs: Fix markdown links and PHP code block in client-side navigation compatibility guide (WordPress/gutenberg#76856)
- Experimental: Add `revisions` panel (WordPress/gutenberg#76735)
- WordPress/gutenberg#76478 Boot: Fix black area below content when sidebar is taller than page c… (WordPress/gutenberg#76764)
- Style Book: Fix missing styles for classic themes in stylebook route (WordPress/gutenberg#76843)
- UI/Dialog: Expose initialFocus and finalFocus on Dialog.Popup (WordPress/gutenberg#76860)
- compose/useDialog: add `stopPropagation()` to Escape handler (WordPress/gutenberg#76861)
- RTC: Add e2e block gauntlet (WordPress/gutenberg#76849)
- UI: Add AlertDialog primitive (WordPress/gutenberg#76847)
- RTC: Fix stuck "Join" link in post list when lock expires (WordPress/gutenberg#76795)
- Site Editor: simplify sidebar for Pages & Templates (WordPress/gutenberg#76868)
- Site Editor v2: Add missing menu items to navigation leaf more menu (WordPress/gutenberg#76804)
- Navigation: Add a shared helper for font sizes in Navigation Link and Navigation Submenu blocks (WordPress/gutenberg#74855)
- Reduce specificity of nav link default padding so global styles are applied (WordPress/gutenberg#76876)
- Icon: Fix center alignment in the editor for classic themes (WordPress/gutenberg#76878)
- RTC: Fix notes not syncing between collaborative editors (WordPress/gutenberg#76873)
- List Item: Disable edit as HTML support (WordPress/gutenberg#76897)
- Block Library: Show fallback label in MediaControl when filename is empty (WordPress/gutenberg#76888)
- Image block media placeholder: remove duotone (WordPress/gutenberg#76721)
- Latest Comments: Fix v1 deprecated block missing supports (WordPress/gutenberg#76877)
- VIPS: ensure single instance (WordPress/gutenberg#76780)
- React vendor script: avoid warning on createRoot (WordPress/gutenberg#76825)
- Connectors: Add Akismet as a default connector (WordPress/gutenberg#76828)
- Core Data: remove offset param from stableKey, use pagination logic (WordPress/gutenberg#76808)
- Button: hide focus outline on :active for click feedback in forced-colors mode (WordPress/gutenberg#76833)
- Restore with compaction update (WordPress/gutenberg#76872)
- Theme: Change default control cursor to `pointer` (WordPress/gutenberg#76762)
- E2E Tests: Enable client-side media processing for site editor image test (WordPress/gutenberg#76648)
- ComboboxControl: Fix accessible association of `help` text (WordPress/gutenberg#76761)
- Add backport for WP_ALLOW_COLLABORATION (WordPress/gutenberg#76716)
- DataForm: Add `compact` configuration option to the `datetime` control (WordPress/gutenberg#76905)
- Admin UI: Fix Page Header not rendering with only actions and add stories (WordPress/gutenberg#76695)
- Improve JSDoc for abilities API (WordPress/gutenberg#76824)
- DOM: Document class wildcard matcher for 'cleanNodeList' (WordPress/gutenberg#76920)
- e2e: Add e2e tests for template and template part revisions (WordPress/gutenberg#76923)
- react-dom vendor script: remove __esModule flag (WordPress/gutenberg#76925)
- Site Editor: Fix unsupported theme flash on direct URL navigation (WordPress/gutenberg#76465)
- Icons: Enforce strict name validation in `register` method (WordPress/gutenberg#76079)
- ToggleGroupControl: Fix accessible association of `help` text (WordPress/gutenberg#76740)
- Connectors: Replace plugin.slug with plugin.file (WordPress/gutenberg#76909)
- UI/Dialog: deprioritize close icon for initial focus (WordPress/gutenberg#76910)
- Block visibility badge: use canvas iframe for viewport detection (WordPress/gutenberg#76889)
- Fields: Add `sticky` field (WordPress/gutenberg#76922)
- DOM: Prefer standard `caretPositionFromPoint` over deprecated `caretRangeFromPoint` (WordPress/gutenberg#76921)
- Block Supports: Add background gradient support that can combine with background images (WordPress/gutenberg#75859)
- Tab Block: Remove anchor from save function (WordPress/gutenberg#76511)
- CollapsibleCard: Add HeaderDescription subcomponent (WordPress/gutenberg#76867)
- element: Make createInterpolateElement TS/type smart (WordPress/gutenberg#71513)
- admin-ui: Update README to clarify purpose and distinguish from ui package (WordPress/gutenberg#76943)
- Site Editor > Quick Edit: add form config to endpoint (WordPress/gutenberg#76953)
- Fields: Tweak `excerpt` field (WordPress/gutenberg#76903)
- Fix: Flaky RichText format e2e test (WordPress/gutenberg#76958)

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


git-svn-id: http://core.svn.wordpress.org/trunk@61858 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 `3166ad3c587b4091f77b0e16affeed5762e193f1` (version `22.8.0`) to `5426109cdaf45828ef28ff8527d7d38e7e75fe74` (version `22.9.0`).

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

The following commits are included:
- Real Time Collaboration: Introduce filters for the polling intervals. (WordPress/gutenberg#76518)
- UI: Update @base-ui/react from 1.2.0 to 1.3.0 (WordPress/gutenberg#76603)
- Card: Use Text component for Title typography (WordPress/gutenberg#76642)
- Add TypeScript parser tests for shouldSkipReference (WordPress/gutenberg#76611)
- Update changelog link for pull request 11276 (WordPress/gutenberg#76638)
- ThemeProvider: Add `cursor` prop (WordPress/gutenberg#76410)
- RTC: Fix RichTextData deserialization (WordPress/gutenberg#76607)
- Cross Origin Isolation: Remove `img` from the list of elements that get mutated (WordPress/gutenberg#76618)
- RTC: Scroll to collaborator on click (WordPress/gutenberg#76561)
- Fix backport changelog filename (WordPress/gutenberg#76651)
- Build: Skip non-minified build for WASM-inlined workers (WordPress/gutenberg#76615)
- Improvements to dataviews infinite scroll (WordPress/gutenberg#74378)
- Image/Site Logo: hide crop toolbar when editMediaEntity is unavailable (WordPress/gutenberg#76626)
- Bump lodash from 4.17.21 to 4.17.23 in /platform-docs (WordPress/gutenberg#74829)
- RTC: Change RTC option name (WordPress/gutenberg#76643)
- Change from PR WordPress/gutenberg#11276 to WordPress/gutenberg#11234 with with different approach (WordPress/gutenberg#76661)
- Build: Fix vips worker 404 when SCRIPT_DEBUG is true (WordPress/gutenberg#76657)
- Build: Remove unused JXL WASM module from vips worker (WordPress/gutenberg#76639)
- Storybook: disabled autodocs for Icon library (WordPress/gutenberg#76620)
- Connectors: fix button size (WordPress/gutenberg#76582)
- Revisions: Add Meta fields diff panel to document sidebar (WordPress/gutenberg#76341)
- Reduce the added halo for selected block. (WordPress/gutenberg#76619)
- Site Editor > Pages: move view config to the server (WordPress/gutenberg#76573)
- ui/Tabs: add runtime validation for tab/panel mismatches (WordPress/gutenberg#75170)
- Fix Color Picker Angle Reset on Gradient Type Change (WordPress/gutenberg#76595)
- ESLint: Add `no-unmerged-classname` rule (WordPress/gutenberg#76458)
- RTC: Backport race condition fix (WordPress/gutenberg#76649)
- ui/Card: Add overflow: clip to root container (WordPress/gutenberg#76678)
- Storybook: Make "introduction" top level (WordPress/gutenberg#76671)
- Fix navigation block rendering unit test (WordPress/gutenberg#76685)
- Hide Additional CSS controls when block is inside contentOnly editing mode (WordPress/gutenberg#76512)
- RTC: Increase polling intervals, increase polling on primary room only (WordPress/gutenberg#76704)
- Navigation: Avoid List View changing position when navigation block saves (WordPress/gutenberg#76659)
- Fix navigation block unit test and e2e test (WordPress/gutenberg#76692)
- Stretchy Text: Fix focus loss (WordPress/gutenberg#75092)
- Fix locked content when switching to a different template without exiting 'Edit pattern' (WordPress/gutenberg#76710)
- Guidelines: Improvements to the UX (WordPress/gutenberg#76383)
- Fix: Create custom template modal content width (WordPress/gutenberg#76713)
- Core Data: Optimize getRawEntityRecord selector (WordPress/gutenberg#76632)
- Metabox: Fix checkbox style in sidebar (WordPress/gutenberg#76718)
- Stop keeping stale controlled blocks after reset (WordPress/gutenberg#76591)
- Gate client-side media processing as plugin-only (WordPress/gutenberg#76700)
- Storybook: Add redirect for moved introduction page (WordPress/gutenberg#76701)
- InputControl: Add to @wordpress/ui (WordPress/gutenberg#76653)
- UI Tooltip: Improve documentation to cover intended accessibility practices (WordPress/gutenberg#76705)
- Add EmptyState component to @wordpress/ui (WordPress/gutenberg#74719)
- RTC: Use activation hook to enable RTC by default (WordPress/gutenberg#76736)
- Forms Block: Add hidden input field variation (WordPress/gutenberg#74131)
- Guidelines: Refactor components and improve TypeScript typing (WordPress/gutenberg#76394)
- Connectors: Align client-side registration API with server-side (WordPress/gutenberg#76737)
- Properly resolve `getTemplateId` for hybrid themes (WordPress/gutenberg#76532)
- Changelog: Add missing label-to-feature mappings (WordPress/gutenberg#76646)
- Connectors: Support non-AI provider types and add JS extensibility e2e test (WordPress/gutenberg#76722)
- Experimental: Add `template` panel to include the existing template actions (WordPress/gutenberg#76539)
- RadioControl: Add `role="radiogroup"` to fieldset (WordPress/gutenberg#76745)
- wp-build: Hash transformed CSS for `data-wp-hash` dedupe key (WordPress/gutenberg#76743)
- Button: restore specificity of high-contrast mode focus ring (WordPress/gutenberg#76719)
- Updating versions in WordPress ahead of 7.0 (WordPress/gutenberg#76723)
- Bump the github-actions group across 2 directories with 1 update (WordPress/gutenberg#76681)
- Admin UI: Add CSS files to sideEffects array (WordPress/gutenberg#76609)
- RTC: Add E2E "stress test" with complex interactions (WordPress/gutenberg#76055)
- Connectors: Improve AI plugin button (WordPress/gutenberg#76759)
- Login/out block: Add button block class names to the submit button (WordPress/gutenberg#76746)
- Commands: Add sections to command palette and introduce Recently used functionality (WordPress/gutenberg#75691)
- RTC: Use prepared queries instead of `*_post_meta` functions (WordPress/gutenberg#76779)
- Core Abilities: fix sideEffects flag (WordPress/gutenberg#76763)
- Site Editor > Patterns: move config to the server (WordPress/gutenberg#76734)
- Docs: Remove Puppeteer references and update to Playwright (WordPress/gutenberg#76766)
- Site Editor > Templates: move config to the server (WordPress/gutenberg#76622)
- Core Data: Remove 'isRawAttribute' internal util (WordPress/gutenberg#76806)
- Reset blockEditingModes on RESET_BLOCKS (WordPress/gutenberg#76529)
- Refactor: Use null coalescing operator for improved readability (WordPress/gutenberg#76777)
- ui/CollapsibleCard: do not animate focus ring (WordPress/gutenberg#76682)
- admin-ui / Breadcrumbs: stricter `items[].to` prop types (WordPress/gutenberg#76493)
- RTC: Remove stale wp_enable_real_time_collaboration option check (WordPress/gutenberg#76810)
- Storybook: Try changing to collapsed folders (WordPress/gutenberg#76361)
- @wordpress/dataviews: migrate card layout to @wordpress/ui (WordPress/gutenberg#76282)
- RTC: Fix editor freeze when replacing code editor content (WordPress/gutenberg#76815)
- Preferences: Hide collaboration options when RTC is not enabled (WordPress/gutenberg#76819)
- Cherry-pick: Set milestone on PRs after cherry-picking to release branch (WordPress/gutenberg#76652)
- Site Tagline: Fix block error when migrating deprecated textAlign attribute (WordPress/gutenberg#76821)
- Commands: Fix unstable `useSelect` return value for `recentlyUsedNames` (WordPress/gutenberg#76822)
- `ControlWithError`: Connect validation messages to controls via `aria-describedby` (WordPress/gutenberg#76742)
- Block Editor: Deprecate '__unstableSaveReusableBlock' action (WordPress/gutenberg#76807)
- Editor: Fix template revisions using 'modified' date field instead of 'date' (WordPress/gutenberg#76760)
- UI: Clarify public APIs and component naming, remove NoticeIntent typings (WordPress/gutenberg#76791)
- fix(date): Recover WP timezone after third-party moment-timezone reload (WordPress/gutenberg#75831)
- Admin UI: Update Page background color (WordPress/gutenberg#76548)
- Snackbar: Use surface-width design token for max-width (WordPress/gutenberg#76592)
- iAPI Docs: Add client-side navigation compatibility guide (WordPress/gutenberg#76242)
- Enhance block registration by using blocks-manifest for improved performance (WordPress/gutenberg#76317)
- docs(create-block-interactive-template): document available variants in README (WordPress/gutenberg#76831)
- Build: detect version and generate asset.php for vendor scripts (WordPress/gutenberg#76811)
- Site Editor > Patterns & Parts: generate sidebar from view config (WordPress/gutenberg#76823)
- Interactivity API: mention `client-side-navigation` scaffold variant in getting-started guide (WordPress/gutenberg#76543)
- Fields: Add `excerpt` field (WordPress/gutenberg#76829)
- Update PHP_CodeSniffer repository link and schema URL (WordPress/gutenberg#76816)
- docs: Fix markdown links and PHP code block in client-side navigation compatibility guide (WordPress/gutenberg#76856)
- Experimental: Add `revisions` panel (WordPress/gutenberg#76735)
- WordPress/gutenberg#76478 Boot: Fix black area below content when sidebar is taller than page c… (WordPress/gutenberg#76764)
- Style Book: Fix missing styles for classic themes in stylebook route (WordPress/gutenberg#76843)
- UI/Dialog: Expose initialFocus and finalFocus on Dialog.Popup (WordPress/gutenberg#76860)
- compose/useDialog: add `stopPropagation()` to Escape handler (WordPress/gutenberg#76861)
- RTC: Add e2e block gauntlet (WordPress/gutenberg#76849)
- UI: Add AlertDialog primitive (WordPress/gutenberg#76847)
- RTC: Fix stuck "Join" link in post list when lock expires (WordPress/gutenberg#76795)
- Site Editor: simplify sidebar for Pages & Templates (WordPress/gutenberg#76868)
- Site Editor v2: Add missing menu items to navigation leaf more menu (WordPress/gutenberg#76804)
- Navigation: Add a shared helper for font sizes in Navigation Link and Navigation Submenu blocks (WordPress/gutenberg#74855)
- Reduce specificity of nav link default padding so global styles are applied (WordPress/gutenberg#76876)
- Icon: Fix center alignment in the editor for classic themes (WordPress/gutenberg#76878)
- RTC: Fix notes not syncing between collaborative editors (WordPress/gutenberg#76873)
- List Item: Disable edit as HTML support (WordPress/gutenberg#76897)
- Block Library: Show fallback label in MediaControl when filename is empty (WordPress/gutenberg#76888)
- Image block media placeholder: remove duotone (WordPress/gutenberg#76721)
- Latest Comments: Fix v1 deprecated block missing supports (WordPress/gutenberg#76877)
- VIPS: ensure single instance (WordPress/gutenberg#76780)
- React vendor script: avoid warning on createRoot (WordPress/gutenberg#76825)
- Connectors: Add Akismet as a default connector (WordPress/gutenberg#76828)
- Core Data: remove offset param from stableKey, use pagination logic (WordPress/gutenberg#76808)
- Button: hide focus outline on :active for click feedback in forced-colors mode (WordPress/gutenberg#76833)
- Restore with compaction update (WordPress/gutenberg#76872)
- Theme: Change default control cursor to `pointer` (WordPress/gutenberg#76762)
- E2E Tests: Enable client-side media processing for site editor image test (WordPress/gutenberg#76648)
- ComboboxControl: Fix accessible association of `help` text (WordPress/gutenberg#76761)
- Add backport for WP_ALLOW_COLLABORATION (WordPress/gutenberg#76716)
- DataForm: Add `compact` configuration option to the `datetime` control (WordPress/gutenberg#76905)
- Admin UI: Fix Page Header not rendering with only actions and add stories (WordPress/gutenberg#76695)
- Improve JSDoc for abilities API (WordPress/gutenberg#76824)
- DOM: Document class wildcard matcher for 'cleanNodeList' (WordPress/gutenberg#76920)
- e2e: Add e2e tests for template and template part revisions (WordPress/gutenberg#76923)
- react-dom vendor script: remove __esModule flag (WordPress/gutenberg#76925)
- Site Editor: Fix unsupported theme flash on direct URL navigation (WordPress/gutenberg#76465)
- Icons: Enforce strict name validation in `register` method (WordPress/gutenberg#76079)
- ToggleGroupControl: Fix accessible association of `help` text (WordPress/gutenberg#76740)
- Connectors: Replace plugin.slug with plugin.file (WordPress/gutenberg#76909)
- UI/Dialog: deprioritize close icon for initial focus (WordPress/gutenberg#76910)
- Block visibility badge: use canvas iframe for viewport detection (WordPress/gutenberg#76889)
- Fields: Add `sticky` field (WordPress/gutenberg#76922)
- DOM: Prefer standard `caretPositionFromPoint` over deprecated `caretRangeFromPoint` (WordPress/gutenberg#76921)
- Block Supports: Add background gradient support that can combine with background images (WordPress/gutenberg#75859)
- Tab Block: Remove anchor from save function (WordPress/gutenberg#76511)
- CollapsibleCard: Add HeaderDescription subcomponent (WordPress/gutenberg#76867)
- element: Make createInterpolateElement TS/type smart (WordPress/gutenberg#71513)
- admin-ui: Update README to clarify purpose and distinguish from ui package (WordPress/gutenberg#76943)
- Site Editor > Quick Edit: add form config to endpoint (WordPress/gutenberg#76953)
- Fields: Tweak `excerpt` field (WordPress/gutenberg#76903)
- Fix: Flaky RichText format e2e test (WordPress/gutenberg#76958)

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

git-svn-id: https://develop.svn.wordpress.org/trunk@62578 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 `3166ad3c587b4091f77b0e16affeed5762e193f1` (version `22.8.0`) to `5426109cdaf45828ef28ff8527d7d38e7e75fe74` (version `22.9.0`).

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

The following commits are included:
- Real Time Collaboration: Introduce filters for the polling intervals. (WordPress/gutenberg#76518)
- UI: Update @base-ui/react from 1.2.0 to 1.3.0 (WordPress/gutenberg#76603)
- Card: Use Text component for Title typography (WordPress/gutenberg#76642)
- Add TypeScript parser tests for shouldSkipReference (WordPress/gutenberg#76611)
- Update changelog link for pull request 11276 (WordPress/gutenberg#76638)
- ThemeProvider: Add `cursor` prop (WordPress/gutenberg#76410)
- RTC: Fix RichTextData deserialization (WordPress/gutenberg#76607)
- Cross Origin Isolation: Remove `img` from the list of elements that get mutated (WordPress/gutenberg#76618)
- RTC: Scroll to collaborator on click (WordPress/gutenberg#76561)
- Fix backport changelog filename (WordPress/gutenberg#76651)
- Build: Skip non-minified build for WASM-inlined workers (WordPress/gutenberg#76615)
- Improvements to dataviews infinite scroll (WordPress/gutenberg#74378)
- Image/Site Logo: hide crop toolbar when editMediaEntity is unavailable (WordPress/gutenberg#76626)
- Bump lodash from 4.17.21 to 4.17.23 in /platform-docs (WordPress/gutenberg#74829)
- RTC: Change RTC option name (WordPress/gutenberg#76643)
- Change from PR WordPress/gutenberg#11276 to WordPress/gutenberg#11234 with with different approach (WordPress/gutenberg#76661)
- Build: Fix vips worker 404 when SCRIPT_DEBUG is true (WordPress/gutenberg#76657)
- Build: Remove unused JXL WASM module from vips worker (WordPress/gutenberg#76639)
- Storybook: disabled autodocs for Icon library (WordPress/gutenberg#76620)
- Connectors: fix button size (WordPress/gutenberg#76582)
- Revisions: Add Meta fields diff panel to document sidebar (WordPress/gutenberg#76341)
- Reduce the added halo for selected block. (WordPress/gutenberg#76619)
- Site Editor > Pages: move view config to the server (WordPress/gutenberg#76573)
- ui/Tabs: add runtime validation for tab/panel mismatches (WordPress/gutenberg#75170)
- Fix Color Picker Angle Reset on Gradient Type Change (WordPress/gutenberg#76595)
- ESLint: Add `no-unmerged-classname` rule (WordPress/gutenberg#76458)
- RTC: Backport race condition fix (WordPress/gutenberg#76649)
- ui/Card: Add overflow: clip to root container (WordPress/gutenberg#76678)
- Storybook: Make "introduction" top level (WordPress/gutenberg#76671)
- Fix navigation block rendering unit test (WordPress/gutenberg#76685)
- Hide Additional CSS controls when block is inside contentOnly editing mode (WordPress/gutenberg#76512)
- RTC: Increase polling intervals, increase polling on primary room only (WordPress/gutenberg#76704)
- Navigation: Avoid List View changing position when navigation block saves (WordPress/gutenberg#76659)
- Fix navigation block unit test and e2e test (WordPress/gutenberg#76692)
- Stretchy Text: Fix focus loss (WordPress/gutenberg#75092)
- Fix locked content when switching to a different template without exiting 'Edit pattern' (WordPress/gutenberg#76710)
- Guidelines: Improvements to the UX (WordPress/gutenberg#76383)
- Fix: Create custom template modal content width (WordPress/gutenberg#76713)
- Core Data: Optimize getRawEntityRecord selector (WordPress/gutenberg#76632)
- Metabox: Fix checkbox style in sidebar (WordPress/gutenberg#76718)
- Stop keeping stale controlled blocks after reset (WordPress/gutenberg#76591)
- Gate client-side media processing as plugin-only (WordPress/gutenberg#76700)
- Storybook: Add redirect for moved introduction page (WordPress/gutenberg#76701)
- InputControl: Add to @wordpress/ui (WordPress/gutenberg#76653)
- UI Tooltip: Improve documentation to cover intended accessibility practices (WordPress/gutenberg#76705)
- Add EmptyState component to @wordpress/ui (WordPress/gutenberg#74719)
- RTC: Use activation hook to enable RTC by default (WordPress/gutenberg#76736)
- Forms Block: Add hidden input field variation (WordPress/gutenberg#74131)
- Guidelines: Refactor components and improve TypeScript typing (WordPress/gutenberg#76394)
- Connectors: Align client-side registration API with server-side (WordPress/gutenberg#76737)
- Properly resolve `getTemplateId` for hybrid themes (WordPress/gutenberg#76532)
- Changelog: Add missing label-to-feature mappings (WordPress/gutenberg#76646)
- Connectors: Support non-AI provider types and add JS extensibility e2e test (WordPress/gutenberg#76722)
- Experimental: Add `template` panel to include the existing template actions (WordPress/gutenberg#76539)
- RadioControl: Add `role="radiogroup"` to fieldset (WordPress/gutenberg#76745)
- wp-build: Hash transformed CSS for `data-wp-hash` dedupe key (WordPress/gutenberg#76743)
- Button: restore specificity of high-contrast mode focus ring (WordPress/gutenberg#76719)
- Updating versions in WordPress ahead of 7.0 (WordPress/gutenberg#76723)
- Bump the github-actions group across 2 directories with 1 update (WordPress/gutenberg#76681)
- Admin UI: Add CSS files to sideEffects array (WordPress/gutenberg#76609)
- RTC: Add E2E "stress test" with complex interactions (WordPress/gutenberg#76055)
- Connectors: Improve AI plugin button (WordPress/gutenberg#76759)
- Login/out block: Add button block class names to the submit button (WordPress/gutenberg#76746)
- Commands: Add sections to command palette and introduce Recently used functionality (WordPress/gutenberg#75691)
- RTC: Use prepared queries instead of `*_post_meta` functions (WordPress/gutenberg#76779)
- Core Abilities: fix sideEffects flag (WordPress/gutenberg#76763)
- Site Editor > Patterns: move config to the server (WordPress/gutenberg#76734)
- Docs: Remove Puppeteer references and update to Playwright (WordPress/gutenberg#76766)
- Site Editor > Templates: move config to the server (WordPress/gutenberg#76622)
- Core Data: Remove 'isRawAttribute' internal util (WordPress/gutenberg#76806)
- Reset blockEditingModes on RESET_BLOCKS (WordPress/gutenberg#76529)
- Refactor: Use null coalescing operator for improved readability (WordPress/gutenberg#76777)
- ui/CollapsibleCard: do not animate focus ring (WordPress/gutenberg#76682)
- admin-ui / Breadcrumbs: stricter `items[].to` prop types (WordPress/gutenberg#76493)
- RTC: Remove stale wp_enable_real_time_collaboration option check (WordPress/gutenberg#76810)
- Storybook: Try changing to collapsed folders (WordPress/gutenberg#76361)
- @wordpress/dataviews: migrate card layout to @wordpress/ui (WordPress/gutenberg#76282)
- RTC: Fix editor freeze when replacing code editor content (WordPress/gutenberg#76815)
- Preferences: Hide collaboration options when RTC is not enabled (WordPress/gutenberg#76819)
- Cherry-pick: Set milestone on PRs after cherry-picking to release branch (WordPress/gutenberg#76652)
- Site Tagline: Fix block error when migrating deprecated textAlign attribute (WordPress/gutenberg#76821)
- Commands: Fix unstable `useSelect` return value for `recentlyUsedNames` (WordPress/gutenberg#76822)
- `ControlWithError`: Connect validation messages to controls via `aria-describedby` (WordPress/gutenberg#76742)
- Block Editor: Deprecate '__unstableSaveReusableBlock' action (WordPress/gutenberg#76807)
- Editor: Fix template revisions using 'modified' date field instead of 'date' (WordPress/gutenberg#76760)
- UI: Clarify public APIs and component naming, remove NoticeIntent typings (WordPress/gutenberg#76791)
- fix(date): Recover WP timezone after third-party moment-timezone reload (WordPress/gutenberg#75831)
- Admin UI: Update Page background color (WordPress/gutenberg#76548)
- Snackbar: Use surface-width design token for max-width (WordPress/gutenberg#76592)
- iAPI Docs: Add client-side navigation compatibility guide (WordPress/gutenberg#76242)
- Enhance block registration by using blocks-manifest for improved performance (WordPress/gutenberg#76317)
- docs(create-block-interactive-template): document available variants in README (WordPress/gutenberg#76831)
- Build: detect version and generate asset.php for vendor scripts (WordPress/gutenberg#76811)
- Site Editor > Patterns & Parts: generate sidebar from view config (WordPress/gutenberg#76823)
- Interactivity API: mention `client-side-navigation` scaffold variant in getting-started guide (WordPress/gutenberg#76543)
- Fields: Add `excerpt` field (WordPress/gutenberg#76829)
- Update PHP_CodeSniffer repository link and schema URL (WordPress/gutenberg#76816)
- docs: Fix markdown links and PHP code block in client-side navigation compatibility guide (WordPress/gutenberg#76856)
- Experimental: Add `revisions` panel (WordPress/gutenberg#76735)
- WordPress/gutenberg#76478 Boot: Fix black area below content when sidebar is taller than page c… (WordPress/gutenberg#76764)
- Style Book: Fix missing styles for classic themes in stylebook route (WordPress/gutenberg#76843)
- UI/Dialog: Expose initialFocus and finalFocus on Dialog.Popup (WordPress/gutenberg#76860)
- compose/useDialog: add `stopPropagation()` to Escape handler (WordPress/gutenberg#76861)
- RTC: Add e2e block gauntlet (WordPress/gutenberg#76849)
- UI: Add AlertDialog primitive (WordPress/gutenberg#76847)
- RTC: Fix stuck "Join" link in post list when lock expires (WordPress/gutenberg#76795)
- Site Editor: simplify sidebar for Pages & Templates (WordPress/gutenberg#76868)
- Site Editor v2: Add missing menu items to navigation leaf more menu (WordPress/gutenberg#76804)
- Navigation: Add a shared helper for font sizes in Navigation Link and Navigation Submenu blocks (WordPress/gutenberg#74855)
- Reduce specificity of nav link default padding so global styles are applied (WordPress/gutenberg#76876)
- Icon: Fix center alignment in the editor for classic themes (WordPress/gutenberg#76878)
- RTC: Fix notes not syncing between collaborative editors (WordPress/gutenberg#76873)
- List Item: Disable edit as HTML support (WordPress/gutenberg#76897)
- Block Library: Show fallback label in MediaControl when filename is empty (WordPress/gutenberg#76888)
- Image block media placeholder: remove duotone (WordPress/gutenberg#76721)
- Latest Comments: Fix v1 deprecated block missing supports (WordPress/gutenberg#76877)
- VIPS: ensure single instance (WordPress/gutenberg#76780)
- React vendor script: avoid warning on createRoot (WordPress/gutenberg#76825)
- Connectors: Add Akismet as a default connector (WordPress/gutenberg#76828)
- Core Data: remove offset param from stableKey, use pagination logic (WordPress/gutenberg#76808)
- Button: hide focus outline on :active for click feedback in forced-colors mode (WordPress/gutenberg#76833)
- Restore with compaction update (WordPress/gutenberg#76872)
- Theme: Change default control cursor to `pointer` (WordPress/gutenberg#76762)
- E2E Tests: Enable client-side media processing for site editor image test (WordPress/gutenberg#76648)
- ComboboxControl: Fix accessible association of `help` text (WordPress/gutenberg#76761)
- Add backport for WP_ALLOW_COLLABORATION (WordPress/gutenberg#76716)
- DataForm: Add `compact` configuration option to the `datetime` control (WordPress/gutenberg#76905)
- Admin UI: Fix Page Header not rendering with only actions and add stories (WordPress/gutenberg#76695)
- Improve JSDoc for abilities API (WordPress/gutenberg#76824)
- DOM: Document class wildcard matcher for 'cleanNodeList' (WordPress/gutenberg#76920)
- e2e: Add e2e tests for template and template part revisions (WordPress/gutenberg#76923)
- react-dom vendor script: remove __esModule flag (WordPress/gutenberg#76925)
- Site Editor: Fix unsupported theme flash on direct URL navigation (WordPress/gutenberg#76465)
- Icons: Enforce strict name validation in `register` method (WordPress/gutenberg#76079)
- ToggleGroupControl: Fix accessible association of `help` text (WordPress/gutenberg#76740)
- Connectors: Replace plugin.slug with plugin.file (WordPress/gutenberg#76909)
- UI/Dialog: deprioritize close icon for initial focus (WordPress/gutenberg#76910)
- Block visibility badge: use canvas iframe for viewport detection (WordPress/gutenberg#76889)
- Fields: Add `sticky` field (WordPress/gutenberg#76922)
- DOM: Prefer standard `caretPositionFromPoint` over deprecated `caretRangeFromPoint` (WordPress/gutenberg#76921)
- Block Supports: Add background gradient support that can combine with background images (WordPress/gutenberg#75859)
- Tab Block: Remove anchor from save function (WordPress/gutenberg#76511)
- CollapsibleCard: Add HeaderDescription subcomponent (WordPress/gutenberg#76867)
- element: Make createInterpolateElement TS/type smart (WordPress/gutenberg#71513)
- admin-ui: Update README to clarify purpose and distinguish from ui package (WordPress/gutenberg#76943)
- Site Editor > Quick Edit: add form config to endpoint (WordPress/gutenberg#76953)
- Fields: Tweak `excerpt` field (WordPress/gutenberg#76903)
- Fix: Flaky RichText format e2e test (WordPress/gutenberg#76958)

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

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

Labels

[Package] Date /packages/date [Type] Bug An existing feature does not function as intended

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants