Skip to content

RTC: Fix cursor index sync with rich text formatting#76418

Merged
alecgeatches merged 22 commits into
trunkfrom
fix/rtc-cursor-formatting
Mar 17, 2026
Merged

RTC: Fix cursor index sync with rich text formatting#76418
alecgeatches merged 22 commits into
trunkfrom
fix/rtc-cursor-formatting

Conversation

@alecgeatches

@alecgeatches alecgeatches commented Mar 11, 2026

Copy link
Copy Markdown
Contributor

What?

Closes #76057

Currently when two users are editing in the same rich text area, adding formatting causes the other user's cursor to jump:

cursor-jumps-with-formatting.mov

This is because we retrieve a user's selection from getSelectionStart(), which returns their logical selection within text, not including formatting. However this selection offset is incorrectly anchored to the HTML Y.Text used by rich text attributes. That means there's a disconnect when formatting is applied. When text is bolded, <strong>/</strong> tags are added within the HTML, causing cursors later in text to jump 17 characters, and italics <em>/</em> cause a 9-character jump due to the mismatch in indexes.

In this branch we correctly translate between selection (rich text) offsets and actual HTML offsets:

cursor-formatting-fixed.mov

Why?

The CRDT layer stores block content as raw HTML in Y.Text, where a relative position index counts every character including HTML. The block editor uses rich-text offsets that count only visible text characters. These two coordinate systems were being used interchangeably, which worked by accident when no formatting changes occurred. However, when a remote user added or removed formatting, the indexes went out of sync and caused weird jumping behavior. Combined with typing in the same rich text field, this can break interaction within text if any users start to use HTML formatting.

How?

The two main functions added to switch between text index and HTML indexes are htmlIndexToRichTextOffset() and richTextOffsetToHtmlIndex(). These go through Gutenberg's @wordpress/rich-text parser and avoids hand-rolling HTML tag counting. A marker character is inserted at the target position and its location is found after parsing/serializing, which gives us the index in the other coordinate system.

These conversions are applied at four boundary points where the mismatch occurs: two write paths (block-selection-history.ts and crdt-user-selections.ts) where rich-text offsets are stored into Y.Text positions, and two read paths (crdt-selection.ts and post-editor-awareness.ts) where Y.Text positions are resolved back into rich-text offsets. The field was also renamed from textIndex to richTextOffset for clarity on what "index" refers to.

I also added a periodic cursor redraw to deal with cases where formatting changes the width of previous characters but doesn't actually affect another user's relative position:

cursor-redraw.mov

Above, the visible user bolds a line of text, which causes another user's cursor to briefly appear in the incorrect location. Rather than listen for every formatting change and attempting a redraw, this solution allows cursors to catch-up without much performance overhead. This will also handle cases where editor content changes in other unexpected ways and allow RTC cursors and selections to automatically catch-up after a short time.

Testing Instructions

  1. Ensure RTC is enabled via Settings -> Writing -> " Enable real-time collaboration" checkbox.
  2. Open a post in two tabs.
  3. User 1 types a paragraph of text, e.g. Vivamus diam purus, volutpat id auctor nec, vehicula nec eros.
  4. User 1 places their cursor somewhere in the middle of the paragraph (e.g. after "nec,").
  5. Confirm that User 2 sees User 1's awareness cursor at the correct position.
  6. User 2 selects a word earlier in the paragraph (e.g. "purus") and applies formatting.
  7. Verify that User 1's cursor does not jump forward and remains after "nec,".
  8. Verify that User 1's awareness cursor on User 2's screen also stays in the correct position and does not shift.
  9. Repeat steps 5-7 with italic, strikethrough, and other inline formatting to confirm the fix is general.
  10. Test with text containing HTML entities (e.g. Tom & Jerry or <>) and verify cursors behave correctly when formatting is applied near the entity.

@alecgeatches
alecgeatches requested a review from dmsnell March 11, 2026 22:02
@alecgeatches alecgeatches self-assigned this Mar 11, 2026
@alecgeatches
alecgeatches requested a review from nerrad as a code owner March 11, 2026 22:02
@alecgeatches alecgeatches added [Type] Bug An existing feature does not function as intended [Feature] Real-time Collaboration Phase 3 of the Gutenberg roadmap around real-time collaboration labels Mar 11, 2026
@github-actions github-actions Bot added [Package] Core data /packages/core-data [Package] Editor /packages/editor labels Mar 11, 2026
@alecgeatches

Copy link
Copy Markdown
Contributor Author

@dmsnell I'd love your review on this approach! It's not exactly what you described in #76058 (comment), but it uses marker characters in a similar way. Thanks!

@github-actions

github-actions Bot commented Mar 11, 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: alecgeatches <alecgeatches@git.wordpress.org>
Co-authored-by: dmsnell <dmsnell@git.wordpress.org>
Co-authored-by: chriszarate <czarate@git.wordpress.org>
Co-authored-by: ingeniumed <ingeniumed@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 commented Mar 11, 2026

Copy link
Copy Markdown

Size Change: +337 B (0%)

Total Size: 8.75 MB

Filename Size Change
build/scripts/block-editor/index.min.js 330 kB +7 B (0%)
build/scripts/core-data/index.min.js 29.9 kB +228 B (+0.77%)
build/scripts/editor/index.min.js 355 kB +102 B (+0.03%)
ℹ️ View Unchanged
Filename Size
build/modules/a11y/index.min.js 355 B
build/modules/abilities/index.min.js 42.3 kB
build/modules/block-editor/utils/fit-text-frontend.min.js 617 B
build/modules/block-library/accordion/view.min.js 595 B
build/modules/block-library/file/view.min.js 346 B
build/modules/block-library/form/view.min.js 528 B
build/modules/block-library/image/view.min.js 2.64 kB
build/modules/block-library/navigation/view.min.js 1.14 kB
build/modules/block-library/playlist/view.min.js 10.9 kB
build/modules/block-library/query/view.min.js 518 B
build/modules/block-library/search/view.min.js 498 B
build/modules/block-library/tabs/view.min.js 946 B
build/modules/boot/index.min.js 16.9 kB
build/modules/connectors/index.min.js 2.05 kB
build/modules/core-abilities/index.min.js 892 B
build/modules/edit-site-init/index.min.js 1.4 kB
build/modules/interactivity-router/full-page.min.js 451 B
build/modules/interactivity-router/index.min.js 11.6 kB
build/modules/interactivity/index.min.js 15.1 kB
build/modules/latex-to-mathml/index.min.js 56.5 kB
build/modules/latex-to-mathml/loader.min.js 131 B
build/modules/lazy-editor/index.min.js 13.7 kB
build/modules/route/index.min.js 25.2 kB
build/modules/vips/loader.min.js 127 B
build/modules/vips/worker.min.js 5.66 MB
build/modules/workflow/index.min.js 19.9 kB
build/scripts/a11y/index.min.js 1.06 kB
build/scripts/annotations/index.min.js 2.39 kB
build/scripts/api-fetch/index.min.js 2.83 kB
build/scripts/autop/index.min.js 2.18 kB
build/scripts/base-styles/index.min.js 98 B
build/scripts/blob/index.min.js 631 B
build/scripts/block-directory/index.min.js 8.03 kB
build/scripts/block-library/index.min.js 317 kB
build/scripts/block-serialization-default-parser/index.min.js 1.16 kB
build/scripts/block-serialization-spec-parser/index.min.js 3.08 kB
build/scripts/blocks/index.min.js 56.8 kB
build/scripts/commands/index.min.js 20.2 kB
build/scripts/components/index.min.js 265 kB
build/scripts/compose/index.min.js 11 kB
build/scripts/core-commands/index.min.js 4.31 kB
build/scripts/customize-widgets/index.min.js 12.3 kB
build/scripts/data-controls/index.min.js 795 B
build/scripts/data/index.min.js 9.65 kB
build/scripts/date/index.min.js 23.6 kB
build/scripts/deprecated/index.min.js 756 B
build/scripts/dom-ready/index.min.js 476 B
build/scripts/dom/index.min.js 5 kB
build/scripts/edit-post/index.min.js 16.4 kB
build/scripts/edit-site/index.min.js 250 kB
build/scripts/edit-widgets/index.min.js 19.9 kB
build/scripts/element/index.min.js 5.2 kB
build/scripts/escape-html/index.min.js 587 B
build/scripts/format-library/index.min.js 10.7 kB
build/scripts/hooks/index.min.js 1.83 kB
build/scripts/html-entities/index.min.js 494 B
build/scripts/i18n/index.min.js 2.46 kB
build/scripts/is-shallow-equal/index.min.js 572 B
build/scripts/keyboard-shortcuts/index.min.js 1.57 kB
build/scripts/keycodes/index.min.js 1.56 kB
build/scripts/list-reusable-blocks/index.min.js 2.44 kB
build/scripts/media-utils/index.min.js 75.1 kB
build/scripts/notices/index.min.js 1.9 kB
build/scripts/nux/index.min.js 1.89 kB
build/scripts/patterns/index.min.js 7.98 kB
build/scripts/plugins/index.min.js 2.15 kB
build/scripts/preferences-persistence/index.min.js 2.15 kB
build/scripts/preferences/index.min.js 3.3 kB
build/scripts/primitives/index.min.js 1.01 kB
build/scripts/priority-queue/index.min.js 1.62 kB
build/scripts/private-apis/index.min.js 1.09 kB
build/scripts/react-i18n/index.min.js 833 B
build/scripts/redux-routine/index.min.js 3.37 kB
build/scripts/reusable-blocks/index.min.js 3.1 kB
build/scripts/rich-text/index.min.js 14 kB
build/scripts/router/index.min.js 5.96 kB
build/scripts/server-side-render/index.min.js 1.91 kB
build/scripts/shortcode/index.min.js 1.59 kB
build/scripts/style-engine/index.min.js 2.36 kB
build/scripts/sync/index.min.js 37.5 kB
build/scripts/theme/index.min.js 21.9 kB
build/scripts/token-list/index.min.js 739 B
build/scripts/undo-manager/index.min.js 918 B
build/scripts/upload-media/index.min.js 7.87 kB
build/scripts/url/index.min.js 3.98 kB
build/scripts/vendors/react-dom.min.js 43.2 kB
build/scripts/vendors/react-jsx-runtime.min.js 667 B
build/scripts/vendors/react.min.js 2.77 kB
build/scripts/viewport/index.min.js 1.21 kB
build/scripts/warning/index.min.js 454 B
build/scripts/widgets/index.min.js 7.8 kB
build/scripts/wordcount/index.min.js 1.04 kB
build/styles/base-styles/admin-schemes-rtl.css 1.71 kB
build/styles/base-styles/admin-schemes-rtl.min.css 775 B
build/styles/base-styles/admin-schemes.css 1.71 kB
build/styles/base-styles/admin-schemes.min.css 775 B
build/styles/block-directory/style-rtl.css 1.96 kB
build/styles/block-directory/style-rtl.min.css 1.05 kB
build/styles/block-directory/style.css 1.97 kB
build/styles/block-directory/style.min.css 1.05 kB
build/styles/block-editor/content-rtl.css 5.49 kB
build/styles/block-editor/content-rtl.min.css 4.05 kB
build/styles/block-editor/content.css 5.49 kB
build/styles/block-editor/content.min.css 4.05 kB
build/styles/block-editor/default-editor-styles-rtl.css 697 B
build/styles/block-editor/default-editor-styles-rtl.min.css 224 B
build/styles/block-editor/default-editor-styles.css 697 B
build/styles/block-editor/default-editor-styles.min.css 224 B
build/styles/block-editor/style-rtl.css 18.4 kB
build/styles/block-editor/style-rtl.min.css 15.8 kB
build/styles/block-editor/style.css 18.4 kB
build/styles/block-editor/style.min.css 15.7 kB
build/styles/block-library/accordion-heading/style-rtl.css 346 B
build/styles/block-library/accordion-heading/style-rtl.min.css 325 B
build/styles/block-library/accordion-heading/style.css 346 B
build/styles/block-library/accordion-heading/style.min.css 325 B
build/styles/block-library/accordion-item/style-rtl.css 239 B
build/styles/block-library/accordion-item/style-rtl.min.css 180 B
build/styles/block-library/accordion-item/style.css 238 B
build/styles/block-library/accordion-item/style.min.css 180 B
build/styles/block-library/accordion-panel/style-rtl.css 110 B
build/styles/block-library/accordion-panel/style-rtl.min.css 99 B
build/styles/block-library/accordion-panel/style.css 110 B
build/styles/block-library/accordion-panel/style.min.css 99 B
build/styles/block-library/accordion/style-rtl.css 69 B
build/styles/block-library/accordion/style-rtl.min.css 62 B
build/styles/block-library/accordion/style.css 69 B
build/styles/block-library/accordion/style.min.css 62 B
build/styles/block-library/archives/style-rtl.css 101 B
build/styles/block-library/archives/style-rtl.min.css 90 B
build/styles/block-library/archives/style.css 101 B
build/styles/block-library/archives/style.min.css 90 B
build/styles/block-library/audio/editor-rtl.css 166 B
build/styles/block-library/audio/editor-rtl.min.css 149 B
build/styles/block-library/audio/editor.css 166 B
build/styles/block-library/audio/editor.min.css 151 B
build/styles/block-library/audio/style-rtl.css 945 B
build/styles/block-library/audio/style-rtl.min.css 132 B
build/styles/block-library/audio/style.css 945 B
build/styles/block-library/audio/style.min.css 132 B
build/styles/block-library/audio/theme-rtl.css 967 B
build/styles/block-library/audio/theme-rtl.min.css 134 B
build/styles/block-library/audio/theme.css 967 B
build/styles/block-library/audio/theme.min.css 134 B
build/styles/block-library/avatar/editor-rtl.css 127 B
build/styles/block-library/avatar/editor-rtl.min.css 115 B
build/styles/block-library/avatar/editor.css 127 B
build/styles/block-library/avatar/editor.min.css 115 B
build/styles/block-library/avatar/style-rtl.css 117 B
build/styles/block-library/avatar/style-rtl.min.css 104 B
build/styles/block-library/avatar/style.css 117 B
build/styles/block-library/avatar/style.min.css 104 B
build/styles/block-library/breadcrumbs/style-rtl.css 233 B
build/styles/block-library/breadcrumbs/style-rtl.min.css 203 B
build/styles/block-library/breadcrumbs/style.css 233 B
build/styles/block-library/breadcrumbs/style.min.css 203 B
build/styles/block-library/button/editor-rtl.css 306 B
build/styles/block-library/button/editor-rtl.min.css 265 B
build/styles/block-library/button/editor.css 317 B
build/styles/block-library/button/editor.min.css 265 B
build/styles/block-library/button/style-rtl.css 651 B
build/styles/block-library/button/style-rtl.min.css 596 B
build/styles/block-library/button/style.css 662 B
build/styles/block-library/button/style.min.css 596 B
build/styles/block-library/buttons/editor-rtl.css 391 B
build/styles/block-library/buttons/editor-rtl.min.css 291 B
build/styles/block-library/buttons/editor.css 391 B
build/styles/block-library/buttons/editor.min.css 291 B
build/styles/block-library/buttons/style-rtl.css 452 B
build/styles/block-library/buttons/style-rtl.min.css 349 B
build/styles/block-library/buttons/style.css 453 B
build/styles/block-library/buttons/style.min.css 349 B
build/styles/block-library/calendar/style-rtl.css 271 B
build/styles/block-library/calendar/style-rtl.min.css 239 B
build/styles/block-library/calendar/style.css 271 B
build/styles/block-library/calendar/style.min.css 239 B
build/styles/block-library/categories/editor-rtl.css 171 B
build/styles/block-library/categories/editor-rtl.min.css 132 B
build/styles/block-library/categories/editor.css 170 B
build/styles/block-library/categories/editor.min.css 131 B
build/styles/block-library/categories/style-rtl.css 226 B
build/styles/block-library/categories/style-rtl.min.css 169 B
build/styles/block-library/categories/style.css 235 B
build/styles/block-library/categories/style.min.css 169 B
build/styles/block-library/classic-rtl.css 363 B
build/styles/block-library/classic-rtl.min.css 321 B
build/styles/block-library/classic.css 363 B
build/styles/block-library/classic.min.css 321 B
build/styles/block-library/code/editor-rtl.css 59 B
build/styles/block-library/code/editor-rtl.min.css 53 B
build/styles/block-library/code/editor.css 59 B
build/styles/block-library/code/editor.min.css 53 B
build/styles/block-library/code/style-rtl.css 158 B
build/styles/block-library/code/style-rtl.min.css 139 B
build/styles/block-library/code/style.css 179 B
build/styles/block-library/code/style.min.css 139 B
build/styles/block-library/code/theme-rtl.css 135 B
build/styles/block-library/code/theme-rtl.min.css 122 B
build/styles/block-library/code/theme.css 135 B
build/styles/block-library/code/theme.min.css 122 B
build/styles/block-library/columns/editor-rtl.css 119 B
build/styles/block-library/columns/editor-rtl.min.css 108 B
build/styles/block-library/columns/editor.css 119 B
build/styles/block-library/columns/editor.min.css 108 B
build/styles/block-library/columns/style-rtl.css 1.3 kB
build/styles/block-library/columns/style-rtl.min.css 421 B
build/styles/block-library/columns/style.css 1.3 kB
build/styles/block-library/columns/style.min.css 421 B
build/styles/block-library/comment-author-avatar/editor-rtl.css 136 B
build/styles/block-library/comment-author-avatar/editor-rtl.min.css 124 B
build/styles/block-library/comment-author-avatar/editor.css 136 B
build/styles/block-library/comment-author-avatar/editor.min.css 124 B
build/styles/block-library/comment-author-name/style-rtl.css 79 B
build/styles/block-library/comment-author-name/style-rtl.min.css 72 B
build/styles/block-library/comment-author-name/style.css 79 B
build/styles/block-library/comment-author-name/style.min.css 72 B
build/styles/block-library/comment-content/style-rtl.css 137 B
build/styles/block-library/comment-content/style-rtl.min.css 120 B
build/styles/block-library/comment-content/style.css 137 B
build/styles/block-library/comment-content/style.min.css 120 B
build/styles/block-library/comment-date/style-rtl.css 72 B
build/styles/block-library/comment-date/style-rtl.min.css 65 B
build/styles/block-library/comment-date/style.css 72 B
build/styles/block-library/comment-date/style.min.css 65 B
build/styles/block-library/comment-edit-link/style-rtl.css 77 B
build/styles/block-library/comment-edit-link/style-rtl.min.css 70 B
build/styles/block-library/comment-edit-link/style.css 77 B
build/styles/block-library/comment-edit-link/style.min.css 70 B
build/styles/block-library/comment-reply-link/style-rtl.css 78 B
build/styles/block-library/comment-reply-link/style-rtl.min.css 71 B
build/styles/block-library/comment-reply-link/style.css 78 B
build/styles/block-library/comment-reply-link/style.min.css 71 B
build/styles/block-library/comment-template/style-rtl.css 213 B
build/styles/block-library/comment-template/style-rtl.min.css 191 B
build/styles/block-library/comment-template/style.css 213 B
build/styles/block-library/comment-template/style.min.css 191 B
build/styles/block-library/comments-pagination-numbers/editor-rtl.css 135 B
build/styles/block-library/comments-pagination-numbers/editor-rtl.min.css 122 B
build/styles/block-library/comments-pagination-numbers/editor.css 144 B
build/styles/block-library/comments-pagination-numbers/editor.min.css 121 B
build/styles/block-library/comments-pagination/editor-rtl.css 184 B
build/styles/block-library/comments-pagination/editor-rtl.min.css 168 B
build/styles/block-library/comments-pagination/editor.css 184 B
build/styles/block-library/comments-pagination/editor.min.css 168 B
build/styles/block-library/comments-pagination/style-rtl.css 224 B
build/styles/block-library/comments-pagination/style-rtl.min.css 201 B
build/styles/block-library/comments-pagination/style.css 236 B
build/styles/block-library/comments-pagination/style.min.css 201 B
build/styles/block-library/comments-title/editor-rtl.css 83 B
build/styles/block-library/comments-title/editor-rtl.min.css 75 B
build/styles/block-library/comments-title/editor.css 83 B
build/styles/block-library/comments-title/editor.min.css 75 B
build/styles/block-library/comments/editor-rtl.css 968 B
build/styles/block-library/comments/editor-rtl.min.css 842 B
build/styles/block-library/comments/editor.css 968 B
build/styles/block-library/comments/editor.min.css 842 B
build/styles/block-library/comments/style-rtl.css 754 B
build/styles/block-library/comments/style-rtl.min.css 637 B
build/styles/block-library/comments/style.css 752 B
build/styles/block-library/comments/style.min.css 637 B
build/styles/block-library/common-rtl.css 2.48 kB
build/styles/block-library/common-rtl.min.css 1.12 kB
build/styles/block-library/common.css 2.5 kB
build/styles/block-library/common.min.css 1.12 kB
build/styles/block-library/cover/editor-rtl.css 1.05 kB
build/styles/block-library/cover/editor-rtl.min.css 631 B
build/styles/block-library/cover/editor.css 1.05 kB
build/styles/block-library/cover/editor.min.css 631 B
build/styles/block-library/cover/style-rtl.css 2.5 kB
build/styles/block-library/cover/style-rtl.min.css 1.82 kB
build/styles/block-library/cover/style.css 2.51 kB
build/styles/block-library/cover/style.min.css 1.81 kB
build/styles/block-library/details/editor-rtl.css 72 B
build/styles/block-library/details/editor-rtl.min.css 65 B
build/styles/block-library/details/editor.css 72 B
build/styles/block-library/details/editor.min.css 65 B
build/styles/block-library/details/style-rtl.css 97 B
build/styles/block-library/details/style-rtl.min.css 86 B
build/styles/block-library/details/style.css 97 B
build/styles/block-library/details/style.min.css 86 B
build/styles/block-library/editor-elements-rtl.css 117 B
build/styles/block-library/editor-elements-rtl.min.css 75 B
build/styles/block-library/editor-elements.css 117 B
build/styles/block-library/editor-elements.min.css 75 B
build/styles/block-library/editor-rtl.css 12.5 kB
build/styles/block-library/editor-rtl.min.css 10.3 kB
build/styles/block-library/editor.css 12.5 kB
build/styles/block-library/editor.min.css 10.3 kB
build/styles/block-library/elements-rtl.css 84 B
build/styles/block-library/elements-rtl.min.css 54 B
build/styles/block-library/elements.css 84 B
build/styles/block-library/elements.min.css 54 B
build/styles/block-library/embed/editor-rtl.css 391 B
build/styles/block-library/embed/editor-rtl.min.css 331 B
build/styles/block-library/embed/editor.css 390 B
build/styles/block-library/embed/editor.min.css 331 B
build/styles/block-library/embed/style-rtl.css 1.29 kB
build/styles/block-library/embed/style-rtl.min.css 448 B
build/styles/block-library/embed/style.css 1.29 kB
build/styles/block-library/embed/style.min.css 448 B
build/styles/block-library/embed/theme-rtl.css 967 B
build/styles/block-library/embed/theme-rtl.min.css 133 B
build/styles/block-library/embed/theme.css 967 B
build/styles/block-library/embed/theme.min.css 133 B
build/styles/block-library/file/editor-rtl.css 352 B
build/styles/block-library/file/editor-rtl.min.css 324 B
build/styles/block-library/file/editor.css 353 B
build/styles/block-library/file/editor.min.css 324 B
build/styles/block-library/file/style-rtl.css 318 B
build/styles/block-library/file/style-rtl.min.css 278 B
build/styles/block-library/file/style.css 331 B
build/styles/block-library/file/style.min.css 278 B
build/styles/block-library/footnotes/style-rtl.css 220 B
build/styles/block-library/footnotes/style-rtl.min.css 198 B
build/styles/block-library/footnotes/style.css 219 B
build/styles/block-library/footnotes/style.min.css 197 B
build/styles/block-library/form-input/editor-rtl.css 247 B
build/styles/block-library/form-input/editor-rtl.min.css 229 B
build/styles/block-library/form-input/editor.css 246 B
build/styles/block-library/form-input/editor.min.css 229 B
build/styles/block-library/form-input/style-rtl.css 467 B
build/styles/block-library/form-input/style-rtl.min.css 366 B
build/styles/block-library/form-input/style.css 467 B
build/styles/block-library/form-input/style.min.css 366 B
build/styles/block-library/form-submission-notification/editor-rtl.css 368 B
build/styles/block-library/form-submission-notification/editor-rtl.min.css 344 B
build/styles/block-library/form-submission-notification/editor.css 368 B
build/styles/block-library/form-submission-notification/editor.min.css 341 B
build/styles/block-library/form-submit-button/style-rtl.css 77 B
build/styles/block-library/form-submit-button/style-rtl.min.css 69 B
build/styles/block-library/form-submit-button/style.css 77 B
build/styles/block-library/form-submit-button/style.min.css 69 B
build/styles/block-library/freeform/editor-rtl.css 1.12 kB
build/styles/block-library/freeform/editor-rtl.min.css 288 B
build/styles/block-library/freeform/editor.css 1.12 kB
build/styles/block-library/freeform/editor.min.css 288 B
build/styles/block-library/gallery/editor-rtl.css 1.52 kB
build/styles/block-library/gallery/editor-rtl.min.css 615 B
build/styles/block-library/gallery/editor.css 1.52 kB
build/styles/block-library/gallery/editor.min.css 616 B
build/styles/block-library/gallery/style-rtl.css 2.84 kB
build/styles/block-library/gallery/style-rtl.min.css 1.84 kB
build/styles/block-library/gallery/style.css 2.84 kB
build/styles/block-library/gallery/style.min.css 1.84 kB
build/styles/block-library/gallery/theme-rtl.css 941 B
build/styles/block-library/gallery/theme-rtl.min.css 108 B
build/styles/block-library/gallery/theme.css 941 B
build/styles/block-library/gallery/theme.min.css 108 B
build/styles/block-library/group/editor-rtl.css 772 B
build/styles/block-library/group/editor-rtl.min.css 335 B
build/styles/block-library/group/editor.css 772 B
build/styles/block-library/group/editor.min.css 335 B
build/styles/block-library/group/style-rtl.css 120 B
build/styles/block-library/group/style-rtl.min.css 103 B
build/styles/block-library/group/style.css 120 B
build/styles/block-library/group/style.min.css 103 B
build/styles/block-library/group/theme-rtl.css 468 B
build/styles/block-library/group/theme-rtl.min.css 79 B
build/styles/block-library/group/theme.css 468 B
build/styles/block-library/group/theme.min.css 79 B
build/styles/block-library/heading/style-rtl.css 604 B
build/styles/block-library/heading/style-rtl.min.css 205 B
build/styles/block-library/heading/style.css 604 B
build/styles/block-library/heading/style.min.css 205 B
build/styles/block-library/html/editor-rtl.css 1.29 kB
build/styles/block-library/html/editor-rtl.min.css 464 B
build/styles/block-library/html/editor.css 1.3 kB
build/styles/block-library/html/editor.min.css 464 B
build/styles/block-library/icon/editor-rtl.css 753 B
build/styles/block-library/icon/editor-rtl.min.css 353 B
build/styles/block-library/icon/editor.css 753 B
build/styles/block-library/icon/editor.min.css 353 B
build/styles/block-library/icon/style-rtl.css 218 B
build/styles/block-library/icon/style-rtl.min.css 154 B
build/styles/block-library/icon/style.css 218 B
build/styles/block-library/icon/style.min.css 154 B
build/styles/block-library/image/editor-rtl.css 1.63 kB
build/styles/block-library/image/editor-rtl.min.css 763 B
build/styles/block-library/image/editor.css 1.62 kB
build/styles/block-library/image/editor.min.css 763 B
build/styles/block-library/image/style-rtl.css 2.92 kB
build/styles/block-library/image/style-rtl.min.css 1.86 kB
build/styles/block-library/image/style.css 2.92 kB
build/styles/block-library/image/style.min.css 1.85 kB
build/styles/block-library/image/theme-rtl.css 971 B
build/styles/block-library/image/theme-rtl.min.css 137 B
build/styles/block-library/image/theme.css 971 B
build/styles/block-library/image/theme.min.css 137 B
build/styles/block-library/latest-comments/style-rtl.css 394 B
build/styles/block-library/latest-comments/style-rtl.min.css 355 B
build/styles/block-library/latest-comments/style.css 394 B
build/styles/block-library/latest-comments/style.min.css 354 B
build/styles/block-library/latest-posts/editor-rtl.css 154 B
build/styles/block-library/latest-posts/editor-rtl.min.css 139 B
build/styles/block-library/latest-posts/editor.css 153 B
build/styles/block-library/latest-posts/editor.min.css 138 B
build/styles/block-library/latest-posts/style-rtl.css 1.36 kB
build/styles/block-library/latest-posts/style-rtl.min.css 520 B
build/styles/block-library/latest-posts/style.css 1.37 kB
build/styles/block-library/latest-posts/style.min.css 520 B
build/styles/block-library/list/style-rtl.css 498 B
build/styles/block-library/list/style-rtl.min.css 107 B
build/styles/block-library/list/style.css 498 B
build/styles/block-library/list/style.min.css 107 B
build/styles/block-library/loginout/style-rtl.css 68 B
build/styles/block-library/loginout/style-rtl.min.css 61 B
build/styles/block-library/loginout/style.css 68 B
build/styles/block-library/loginout/style.min.css 61 B
build/styles/block-library/math/editor-rtl.css 491 B
build/styles/block-library/math/editor-rtl.min.css 105 B
build/styles/block-library/math/editor.css 502 B
build/styles/block-library/math/editor.min.css 105 B
build/styles/block-library/math/style-rtl.css 70 B
build/styles/block-library/math/style-rtl.min.css 61 B
build/styles/block-library/math/style.css 70 B
build/styles/block-library/math/style.min.css 61 B
build/styles/block-library/media-text/editor-rtl.css 389 B
build/styles/block-library/media-text/editor-rtl.min.css 321 B
build/styles/block-library/media-text/editor.css 389 B
build/styles/block-library/media-text/editor.min.css 320 B
build/styles/block-library/media-text/style-rtl.css 873 B
build/styles/block-library/media-text/style-rtl.min.css 552 B
build/styles/block-library/media-text/style.css 901 B
build/styles/block-library/media-text/style.min.css 550 B
build/styles/block-library/more/editor-rtl.css 796 B
build/styles/block-library/more/editor-rtl.min.css 393 B
build/styles/block-library/more/editor.css 798 B
build/styles/block-library/more/editor.min.css 393 B
build/styles/block-library/navigation-link/editor-rtl.css 1.28 kB
build/styles/block-library/navigation-link/editor-rtl.min.css 710 B
build/styles/block-library/navigation-link/editor.css 1.27 kB
build/styles/block-library/navigation-link/editor.min.css 713 B
build/styles/block-library/navigation-link/style-rtl.css 579 B
build/styles/block-library/navigation-link/style-rtl.min.css 190 B
build/styles/block-library/navigation-link/style.css 579 B
build/styles/block-library/navigation-link/style.min.css 188 B
build/styles/block-library/navigation-overlay-close/style-rtl.css 260 B
build/styles/block-library/navigation-overlay-close/style-rtl.min.css 237 B
build/styles/block-library/navigation-overlay-close/style.css 260 B
build/styles/block-library/navigation-overlay-close/style.min.css 237 B
build/styles/block-library/navigation-submenu/editor-rtl.css 1.12 kB
build/styles/block-library/navigation-submenu/editor-rtl.min.css 295 B
build/styles/block-library/navigation-submenu/editor.css 1.12 kB
build/styles/block-library/navigation-submenu/editor.min.css 294 B
build/styles/block-library/navigation/editor-rtl.css 3.28 kB
build/styles/block-library/navigation/editor-rtl.min.css 2.28 kB
build/styles/block-library/navigation/editor.css 3.29 kB
build/styles/block-library/navigation/editor.min.css 2.28 kB
build/styles/block-library/navigation/style-rtl.css 3.58 kB
build/styles/block-library/navigation/style-rtl.min.css 2.51 kB
build/styles/block-library/navigation/style.css 3.58 kB
build/styles/block-library/navigation/style.min.css 2.5 kB
build/styles/block-library/nextpage/editor-rtl.css 799 B
build/styles/block-library/nextpage/editor-rtl.min.css 392 B
build/styles/block-library/nextpage/editor.css 800 B
build/styles/block-library/nextpage/editor.min.css 392 B
build/styles/block-library/page-list/editor-rtl.css 1.18 kB
build/styles/block-library/page-list/editor-rtl.min.css 356 B
build/styles/block-library/page-list/editor.css 1.18 kB
build/styles/block-library/page-list/editor.min.css 356 B
build/styles/block-library/page-list/style-rtl.css 207 B
build/styles/block-library/page-list/style-rtl.min.css 192 B
build/styles/block-library/page-list/style.css 207 B
build/styles/block-library/page-list/style.min.css 192 B
build/styles/block-library/paragraph/editor-rtl.css 315 B
build/styles/block-library/paragraph/editor-rtl.min.css 292 B
build/styles/block-library/paragraph/editor.css 314 B
build/styles/block-library/paragraph/editor.min.css 292 B
build/styles/block-library/paragraph/style-rtl.css 746 B
build/styles/block-library/paragraph/style-rtl.min.css 341 B
build/styles/block-library/paragraph/style.css 752 B
build/styles/block-library/paragraph/style.min.css 340 B
build/styles/block-library/playlist-track/style-rtl.css 453 B
build/styles/block-library/playlist-track/style-rtl.min.css 420 B
build/styles/block-library/playlist-track/style.css 453 B
build/styles/block-library/playlist-track/style.min.css 420 B
build/styles/block-library/playlist/editor-rtl.css 120 B
build/styles/block-library/playlist/editor-rtl.min.css 112 B
build/styles/block-library/playlist/editor.css 120 B
build/styles/block-library/playlist/editor.min.css 112 B
build/styles/block-library/playlist/style-rtl.css 1.52 kB
build/styles/block-library/playlist/style-rtl.min.css 1.42 kB
build/styles/block-library/playlist/style.css 1.52 kB
build/styles/block-library/playlist/style.min.css 1.42 kB
build/styles/block-library/post-author-biography/style-rtl.css 81 B
build/styles/block-library/post-author-biography/style-rtl.min.css 74 B
build/styles/block-library/post-author-biography/style.css 81 B
build/styles/block-library/post-author-biography/style.min.css 74 B
build/styles/block-library/post-author-name/style-rtl.css 76 B
build/styles/block-library/post-author-name/style-rtl.min.css 69 B
build/styles/block-library/post-author-name/style.css 76 B
build/styles/block-library/post-author-name/style.min.css 69 B
build/styles/block-library/post-author/editor-rtl.css 490 B
build/styles/block-library/post-author/editor-rtl.min.css 104 B
build/styles/block-library/post-author/editor.css 490 B
build/styles/block-library/post-author/editor.min.css 104 B
build/styles/block-library/post-author/style-rtl.css 213 B
build/styles/block-library/post-author/style-rtl.min.css 188 B
build/styles/block-library/post-author/style.css 214 B
build/styles/block-library/post-author/style.min.css 189 B
build/styles/block-library/post-comments-count/style-rtl.css 79 B
build/styles/block-library/post-comments-count/style-rtl.min.css 72 B
build/styles/block-library/post-comments-count/style.css 79 B
build/styles/block-library/post-comments-count/style.min.css 72 B
build/styles/block-library/post-comments-form/editor-rtl.css 104 B
build/styles/block-library/post-comments-form/editor-rtl.min.css 96 B
build/styles/block-library/post-comments-form/editor.css 104 B
build/styles/block-library/post-comments-form/editor.min.css 96 B
build/styles/block-library/post-comments-form/style-rtl.css 585 B
build/styles/block-library/post-comments-form/style-rtl.min.css 525 B
build/styles/block-library/post-comments-form/style.css 584 B
build/styles/block-library/post-comments-form/style.min.css 525 B
build/styles/block-library/post-comments-link/style-rtl.css 78 B
build/styles/block-library/post-comments-link/style-rtl.min.css 71 B
build/styles/block-library/post-comments-link/style.css 78 B
build/styles/block-library/post-comments-link/style.min.css 71 B
build/styles/block-library/post-content/style-rtl.css 68 B
build/styles/block-library/post-content/style-rtl.min.css 61 B
build/styles/block-library/post-content/style.css 68 B
build/styles/block-library/post-content/style.min.css 61 B
build/styles/block-library/post-date/style-rtl.css 69 B
build/styles/block-library/post-date/style-rtl.min.css 62 B
build/styles/block-library/post-date/style.css 69 B
build/styles/block-library/post-date/style.min.css 62 B
build/styles/block-library/post-excerpt/editor-rtl.css 78 B
build/styles/block-library/post-excerpt/editor-rtl.min.css 71 B
build/styles/block-library/post-excerpt/editor.css 78 B
build/styles/block-library/post-excerpt/editor.min.css 71 B
build/styles/block-library/post-excerpt/style-rtl.css 171 B
build/styles/block-library/post-excerpt/style-rtl.min.css 155 B
build/styles/block-library/post-excerpt/style.css 171 B
build/styles/block-library/post-excerpt/style.min.css 155 B
build/styles/block-library/post-featured-image/editor-rtl.css 1.14 kB
build/styles/block-library/post-featured-image/editor-rtl.min.css 719 B
build/styles/block-library/post-featured-image/editor.css 1.14 kB
build/styles/block-library/post-featured-image/editor.min.css 717 B
build/styles/block-library/post-featured-image/style-rtl.css 392 B
build/styles/block-library/post-featured-image/style-rtl.min.css 347 B
build/styles/block-library/post-featured-image/style.css 392 B
build/styles/block-library/post-featured-image/style.min.css 347 B
build/styles/block-library/post-navigation-link/style-rtl.css 234 B
build/styles/block-library/post-navigation-link/style-rtl.min.css 215 B
build/styles/block-library/post-navigation-link/style.css 245 B
build/styles/block-library/post-navigation-link/style.min.css 214 B
build/styles/block-library/post-template/style-rtl.css 1.25 kB
build/styles/block-library/post-template/style-rtl.min.css 414 B
build/styles/block-library/post-template/style.css 1.25 kB
build/styles/block-library/post-template/style.min.css 414 B
build/styles/block-library/post-terms/style-rtl.css 108 B
build/styles/block-library/post-terms/style-rtl.min.css 96 B
build/styles/block-library/post-terms/style.css 108 B
build/styles/block-library/post-terms/style.min.css 96 B
build/styles/block-library/post-time-to-read/style-rtl.css 77 B
build/styles/block-library/post-time-to-read/style-rtl.min.css 70 B
build/styles/block-library/post-time-to-read/style.css 77 B
build/styles/block-library/post-time-to-read/style.min.css 70 B
build/styles/block-library/post-title/style-rtl.css 175 B
build/styles/block-library/post-title/style-rtl.min.css 162 B
build/styles/block-library/post-title/style.css 175 B
build/styles/block-library/post-title/style.min.css 162 B
build/styles/block-library/preformatted/style-rtl.css 511 B
build/styles/block-library/preformatted/style-rtl.min.css 125 B
build/styles/block-library/preformatted/style.css 511 B
build/styles/block-library/preformatted/style.min.css 125 B
build/styles/block-library/pullquote/editor-rtl.css 146 B
build/styles/block-library/pullquote/editor-rtl.min.css 133 B
build/styles/block-library/pullquote/editor.css 146 B
build/styles/block-library/pullquote/editor.min.css 133 B
build/styles/block-library/pullquote/style-rtl.css 765 B
build/styles/block-library/pullquote/style-rtl.min.css 365 B
build/styles/block-library/pullquote/style.css 764 B
build/styles/block-library/pullquote/style.min.css 365 B
build/styles/block-library/pullquote/theme-rtl.css 195 B
build/styles/block-library/pullquote/theme-rtl.min.css 176 B
build/styles/block-library/pullquote/theme.css 195 B
build/styles/block-library/pullquote/theme.min.css 176 B
build/styles/block-library/query-pagination-numbers/editor-rtl.css 134 B
build/styles/block-library/query-pagination-numbers/editor-rtl.min.css 121 B
build/styles/block-library/query-pagination-numbers/editor.css 144 B
build/styles/block-library/query-pagination-numbers/editor.min.css 118 B
build/styles/block-library/query-pagination/editor-rtl.css 168 B
build/styles/block-library/query-pagination/editor-rtl.min.css 154 B
build/styles/block-library/query-pagination/editor.css 168 B
build/styles/block-library/query-pagination/editor.min.css 154 B
build/styles/block-library/query-pagination/style-rtl.css 254 B
build/styles/block-library/query-pagination/style-rtl.min.css 237 B
build/styles/block-library/query-pagination/style.css 265 B
build/styles/block-library/query-pagination/style.min.css 237 B
build/styles/block-library/query-title/style-rtl.css 71 B
build/styles/block-library/query-title/style-rtl.min.css 64 B
build/styles/block-library/query-title/style.css 71 B
build/styles/block-library/query-title/style.min.css 64 B
build/styles/block-library/query-total/style-rtl.css 71 B
build/styles/block-library/query-total/style-rtl.min.css 64 B
build/styles/block-library/query-total/style.css 71 B
build/styles/block-library/query-total/style.min.css 64 B
build/styles/block-library/query/editor-rtl.css 1.28 kB
build/styles/block-library/query/editor-rtl.min.css 438 B
build/styles/block-library/query/editor.css 1.28 kB
build/styles/block-library/query/editor.min.css 438 B
build/styles/block-library/quote/style-rtl.css 255 B
build/styles/block-library/quote/style-rtl.min.css 238 B
build/styles/block-library/quote/style.css 256 B
build/styles/block-library/quote/style.min.css 238 B
build/styles/block-library/quote/theme-rtl.css 253 B
build/styles/block-library/quote/theme-rtl.min.css 233 B
build/styles/block-library/quote/theme.css 254 B
build/styles/block-library/quote/theme.min.css 236 B
build/styles/block-library/read-more/style-rtl.css 146 B
build/styles/block-library/read-more/style-rtl.min.css 131 B
build/styles/block-library/read-more/style.css 146 B
build/styles/block-library/read-more/style.min.css 131 B
build/styles/block-library/reset-rtl.css 936 B
build/styles/block-library/reset-rtl.min.css 467 B
build/styles/block-library/reset.css 936 B
build/styles/block-library/reset.min.css 467 B
build/styles/block-library/rss/editor-rtl.css 144 B
build/styles/block-library/rss/editor-rtl.min.css 126 B
build/styles/block-library/rss/editor.css 144 B
build/styles/block-library/rss/editor.min.css 126 B
build/styles/block-library/rss/style-rtl.css 1.11 kB
build/styles/block-library/rss/style-rtl.min.css 284 B
build/styles/block-library/rss/style.css 1.12 kB
build/styles/block-library/rss/style.min.css 283 B
build/styles/block-library/search/editor-rtl.css 217 B
build/styles/block-library/search/editor-rtl.min.css 199 B
build/styles/block-library/search/editor.css 217 B
build/styles/block-library/search/editor.min.css 199 B
build/styles/block-library/search/style-rtl.css 1.1 kB
build/styles/block-library/search/style-rtl.min.css 665 B
build/styles/block-library/search/style.css 1.1 kB
build/styles/block-library/search/style.min.css 666 B
build/styles/block-library/search/theme-rtl.css 130 B
build/styles/block-library/search/theme-rtl.min.css 113 B
build/styles/block-library/search/theme.css 130 B
build/styles/block-library/search/theme.min.css 113 B
build/styles/block-library/separator/editor-rtl.css 106 B
build/styles/block-library/separator/editor-rtl.min.css 100 B
build/styles/block-library/separator/editor.css 106 B
build/styles/block-library/separator/editor.min.css 100 B
build/styles/block-library/separator/style-rtl.css 284 B
build/styles/block-library/separator/style-rtl.min.css 248 B
build/styles/block-library/separator/style.css 297 B
build/styles/block-library/separator/style.min.css 248 B
build/styles/block-library/separator/theme-rtl.css 226 B
build/styles/block-library/separator/theme-rtl.min.css 195 B
build/styles/block-library/separator/theme.css 226 B
build/styles/block-library/separator/theme.min.css 195 B
build/styles/block-library/shortcode/editor-rtl.css 1.1 kB
build/styles/block-library/shortcode/editor-rtl.min.css 286 B
build/styles/block-library/shortcode/editor.css 1.1 kB
build/styles/block-library/shortcode/editor.min.css 286 B
build/styles/block-library/site-logo/editor-rtl.css 1.12 kB
build/styles/block-library/site-logo/editor-rtl.min.css 696 B
build/styles/block-library/site-logo/editor.css 1.12 kB
build/styles/block-library/site-logo/editor.min.css 692 B
build/styles/block-library/site-logo/style-rtl.css 239 B
build/styles/block-library/site-logo/style-rtl.min.css 218 B
build/styles/block-library/site-logo/style.css 238 B
build/styles/block-library/site-logo/style.min.css 218 B
build/styles/block-library/site-tagline/editor-rtl.css 94 B
build/styles/block-library/site-tagline/editor-rtl.min.css 87 B
build/styles/block-library/site-tagline/editor.css 94 B
build/styles/block-library/site-tagline/editor.min.css 87 B
build/styles/block-library/site-tagline/style-rtl.css 72 B
build/styles/block-library/site-tagline/style-rtl.min.css 65 B
build/styles/block-library/site-tagline/style.css 72 B
build/styles/block-library/site-tagline/style.min.css 65 B
build/styles/block-library/site-title/editor-rtl.css 93 B
build/styles/block-library/site-title/editor-rtl.min.css 85 B
build/styles/block-library/site-title/editor.css 93 B
build/styles/block-library/site-title/editor.min.css 85 B
build/styles/block-library/site-title/style-rtl.css 153 B
build/styles/block-library/site-title/style-rtl.min.css 143 B
build/styles/block-library/site-title/style.css 153 B
build/styles/block-library/site-title/style.min.css 143 B
build/styles/block-library/social-link/editor-rtl.css 346 B
build/styles/block-library/social-link/editor-rtl.min.css 314 B
build/styles/block-library/social-link/editor.css 348 B
build/styles/block-library/social-link/editor.min.css 314 B
build/styles/block-library/social-links/editor-rtl.css 737 B
build/styles/block-library/social-links/editor-rtl.min.css 339 B
build/styles/block-library/social-links/editor.css 738 B
build/styles/block-library/social-links/editor.min.css 338 B
build/styles/block-library/social-links/style-rtl.css 1.57 kB
build/styles/block-library/social-links/style-rtl.min.css 1.51 kB
build/styles/block-library/social-links/style.css 1.57 kB
build/styles/block-library/social-links/style.min.css 1.51 kB
build/styles/block-library/spacer/editor-rtl.css 774 B
build/styles/block-library/spacer/editor-rtl.min.css 346 B
build/styles/block-library/spacer/editor.css 774 B
build/styles/block-library/spacer/editor.min.css 346 B
build/styles/block-library/spacer/style-rtl.css 55 B
build/styles/block-library/spacer/style-rtl.min.css 48 B
build/styles/block-library/spacer/style.css 55 B
build/styles/block-library/spacer/style.min.css 48 B
build/styles/block-library/style-rtl.css 21.5 kB
build/styles/block-library/style-rtl.min.css 18 kB
build/styles/block-library/style.css 21.7 kB
build/styles/block-library/style.min.css 18 kB
build/styles/block-library/tab-panel/style-rtl.css 75 B
build/styles/block-library/tab-panel/style-rtl.min.css 64 B
build/styles/block-library/tab-panel/style.css 75 B
build/styles/block-library/tab-panel/style.min.css 64 B
build/styles/block-library/tab/style-rtl.css 233 B
build/styles/block-library/tab/style-rtl.min.css 210 B
build/styles/block-library/tab/style.css 233 B
build/styles/block-library/tab/style.min.css 210 B
build/styles/block-library/table-of-contents/style-rtl.css 89 B
build/styles/block-library/table-of-contents/style-rtl.min.css 83 B
build/styles/block-library/table-of-contents/style.css 89 B
build/styles/block-library/table-of-contents/style.min.css 83 B
build/styles/block-library/table/editor-rtl.css 1.25 kB
build/styles/block-library/table/editor-rtl.min.css 394 B
build/styles/block-library/table/editor.css 1.25 kB
build/styles/block-library/table/editor.min.css 394 B
build/styles/block-library/table/style-rtl.css 1.06 kB
build/styles/block-library/table/style-rtl.min.css 641 B
build/styles/block-library/table/style.css 1.06 kB
build/styles/block-library/table/style.min.css 640 B
build/styles/block-library/table/theme-rtl.css 985 B
build/styles/block-library/table/theme-rtl.min.css 152 B
build/styles/block-library/table/theme.css 985 B
build/styles/block-library/table/theme.min.css 152 B
build/styles/block-library/tabs-menu-item/editor-rtl.css 168 B
build/styles/block-library/tabs-menu-item/editor-rtl.min.css 155 B
build/styles/block-library/tabs-menu-item/editor.css 168 B
build/styles/block-library/tabs-menu-item/editor.min.css 155 B
build/styles/block-library/tabs-menu-item/style-rtl.css 367 B
build/styles/block-library/tabs-menu-item/style-rtl.min.css 337 B
build/styles/block-library/tabs-menu-item/style.css 367 B
build/styles/block-library/tabs-menu-item/style.min.css 337 B
build/styles/block-library/tabs-menu/editor-rtl.css 116 B
build/styles/block-library/tabs-menu/editor-rtl.min.css 104 B
build/styles/block-library/tabs-menu/editor.css 116 B
build/styles/block-library/tabs-menu/editor.min.css 104 B
build/styles/block-library/tabs-menu/style-rtl.css 135 B
build/styles/block-library/tabs-menu/style-rtl.min.css 111 B
build/styles/block-library/tabs-menu/style.css 135 B
build/styles/block-library/tabs-menu/style.min.css 111 B
build/styles/block-library/tabs/style-rtl.css 95 B
build/styles/block-library/tabs/style-rtl.min.css 84 B
build/styles/block-library/tabs/style.css 95 B
build/styles/block-library/tabs/style.min.css 84 B
build/styles/block-library/tag-cloud/style-rtl.css 283 B
build/styles/block-library/tag-cloud/style-rtl.min.css 248 B
build/styles/block-library/tag-cloud/style.css 283 B
build/styles/block-library/tag-cloud/style.min.css 248 B
build/styles/block-library/template-part/editor-rtl.css 1.2 kB
build/styles/block-library/template-part/editor-rtl.min.css 368 B
build/styles/block-library/template-part/editor.css 1.2 kB
build/styles/block-library/template-part/editor.min.css 368 B
build/styles/block-library/template-part/theme-rtl.css 492 B
build/styles/block-library/template-part/theme-rtl.min.css 113 B
build/styles/block-library/template-part/theme.css 492 B
build/styles/block-library/template-part/theme.min.css 113 B
build/styles/block-library/term-count/style-rtl.css 70 B
build/styles/block-library/term-count/style-rtl.min.css 63 B
build/styles/block-library/term-count/style.css 70 B
build/styles/block-library/term-count/style.min.css 63 B
build/styles/block-library/term-description/style-rtl.css 138 B
build/styles/block-library/term-description/style-rtl.min.css 126 B
build/styles/block-library/term-description/style.css 138 B
build/styles/block-library/term-description/style.min.css 126 B
build/styles/block-library/term-name/style-rtl.css 69 B
build/styles/block-library/term-name/style-rtl.min.css 62 B
build/styles/block-library/term-name/style.css 69 B
build/styles/block-library/term-name/style.min.css 62 B
build/styles/block-library/term-template/editor-rtl.css 267 B
build/styles/block-library/term-template/editor-rtl.min.css 225 B
build/styles/block-library/term-template/editor.css 267 B
build/styles/block-library/term-template/editor.min.css 225 B
build/styles/block-library/term-template/style-rtl.css 124 B
build/styles/block-library/term-template/style-rtl.min.css 114 B
build/styles/block-library/term-template/style.css 124 B
build/styles/block-library/term-template/style.min.css 114 B
build/styles/block-library/text-columns/editor-rtl.css 481 B
build/styles/block-library/text-columns/editor-rtl.min.css 95 B
build/styles/block-library/text-columns/editor.css 481 B
build/styles/block-library/text-columns/editor.min.css 95 B
build/styles/block-library/text-columns/style-rtl.css 177 B
build/styles/block-library/text-columns/style-rtl.min.css 165 B
build/styles/block-library/text-columns/style.css 177 B
build/styles/block-library/text-columns/style.min.css 165 B
build/styles/block-library/theme-rtl.css 1.59 kB
build/styles/block-library/theme-rtl.min.css 715 B
build/styles/block-library/theme.css 1.6 kB
build/styles/block-library/theme.min.css 719 B
build/styles/block-library/verse/style-rtl.css 155 B
build/styles/block-library/verse/style-rtl.min.css 137 B
build/styles/block-library/verse/style.css 155 B
build/styles/block-library/verse/style.min.css 137 B
build/styles/block-library/video/editor-rtl.css 825 B
build/styles/block-library/video/editor-rtl.min.css 415 B
build/styles/block-library/video/editor.css 826 B
build/styles/block-library/video/editor.min.css 416 B
build/styles/block-library/video/style-rtl.css 1.02 kB
build/styles/block-library/video/style-rtl.min.css 202 B
build/styles/block-library/video/style.css 1.02 kB
build/styles/block-library/video/style.min.css 202 B
build/styles/block-library/video/theme-rtl.css 967 B
build/styles/block-library/video/theme-rtl.min.css 134 B
build/styles/block-library/video/theme.css 967 B
build/styles/block-library/video/theme.min.css 134 B
build/styles/commands/style-rtl.css 2.01 kB
build/styles/commands/style-rtl.min.css 1.12 kB
build/styles/commands/style.css 2.01 kB
build/styles/commands/style.min.css 1.12 kB
build/styles/components/style-rtl.css 17 kB
build/styles/components/style-rtl.min.css 13.8 kB
build/styles/components/style.css 17 kB
build/styles/components/style.min.css 13.8 kB
build/styles/customize-widgets/style-rtl.css 2.35 kB
build/styles/customize-widgets/style-rtl.min.css 1.44 kB
build/styles/customize-widgets/style.css 2.35 kB
build/styles/customize-widgets/style.min.css 1.44 kB
build/styles/edit-post/classic-rtl.css 1.29 kB
build/styles/edit-post/classic-rtl.min.css 426 B
build/styles/edit-post/classic.css 1.31 kB
build/styles/edit-post/classic.min.css 427 B
build/styles/edit-post/style-rtl.css 4.1 kB
build/styles/edit-post/style-rtl.min.css 2.77 kB
build/styles/edit-post/style.css 4.1 kB
build/styles/edit-post/style.min.css 2.77 kB
build/styles/edit-site/style-rtl.css 20.8 kB
build/styles/edit-site/style-rtl.min.css 16.9 kB
build/styles/edit-site/style.css 20.8 kB
build/styles/edit-site/style.min.css 16.9 kB
build/styles/edit-widgets/style-rtl.css 5.35 kB
build/styles/edit-widgets/style-rtl.min.css 3.99 kB
build/styles/edit-widgets/style.css 5.35 kB
build/styles/edit-widgets/style.min.css 4 kB
build/styles/editor/style-rtl.css 26.3 kB
build/styles/editor/style-rtl.min.css 22.1 kB
build/styles/editor/style.css 26.3 kB
build/styles/editor/style.min.css 22.1 kB
build/styles/format-library/style-rtl.css 735 B
build/styles/format-library/style-rtl.min.css 326 B
build/styles/format-library/style.css 746 B
build/styles/format-library/style.min.css 326 B
build/styles/list-reusable-blocks/style-rtl.css 1.07 kB
build/styles/list-reusable-blocks/style-rtl.min.css 250 B
build/styles/list-reusable-blocks/style.css 1.07 kB
build/styles/list-reusable-blocks/style.min.css 249 B
build/styles/media-utils/style-rtl.css 2.08 kB
build/styles/media-utils/style-rtl.min.css 1.17 kB
build/styles/media-utils/style.css 2.08 kB
build/styles/media-utils/style.min.css 1.17 kB
build/styles/nux/style-rtl.css 1.48 kB
build/styles/nux/style-rtl.min.css 622 B
build/styles/nux/style.css 1.5 kB
build/styles/nux/style.min.css 618 B
build/styles/patterns/style-rtl.css 1.46 kB
build/styles/patterns/style-rtl.min.css 611 B
build/styles/patterns/style.css 1.46 kB
build/styles/patterns/style.min.css 611 B
build/styles/preferences/style-rtl.css 1.26 kB
build/styles/preferences/style-rtl.min.css 415 B
build/styles/preferences/style.css 1.26 kB
build/styles/preferences/style.min.css 415 B
build/styles/reusable-blocks/style-rtl.css 1.11 kB
build/styles/reusable-blocks/style-rtl.min.css 275 B
build/styles/reusable-blocks/style.css 1.11 kB
build/styles/reusable-blocks/style.min.css 275 B
build/styles/widgets/style-rtl.css 2.04 kB
build/styles/widgets/style-rtl.min.css 1.15 kB
build/styles/widgets/style.css 2.04 kB
build/styles/widgets/style.min.css 1.15 kB

compressed-size-action

@github-actions

github-actions Bot commented Mar 12, 2026

Copy link
Copy Markdown

Flaky tests detected in 9fefe8c.
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/23207323696
📝 Reported issues:

) {
safeIndex = lastAmp;
}
}

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

this function is a bit confusing to me, so I think I might be misunderstanding. it looks like it’s recreating the same kind of string-based HTML parsing we had before; with the assumption that < opens a tag and > closes a tag.

it also appears to traverse backwards through the HTML which is even more fraught because some text genuinely represents HTML non-text nodes in some context while not in others, something that cannot be revealed when walking backwards.

@alecgeatches alecgeatches Mar 12, 2026

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

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

Thank you for reviewing, I'd love to improve this. This is intended to correct when the given htmlIndex is within a tag. Given:

some <strong>words</strong> test

If we receive htmlIndex = 9, then our marker would fall within the <strong> tag:

some <str\uFFFDong>words</strong> test

When we parse HTML later with create(), a marker in the HTML content itself could break parsing if it's mid-tag. The goal is to avoid inserting our marker character in a place that would break either the HTML tag or entities e.g. &am\uFFFDp;.


But you're right, this edge-case workaround still bakes in the assumption that we can per-character parse HTML without context. Ideally htmlIndex is never within a tag though. Maybe we can just ignore that case, since we're getting htmlIndex from another user's richTextOffsetToHtmlIndex() that should be correctly anchored in HTML. We also might be able to return some default value if create() returns invalid markup.

Open to any ideas if you have them!

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

if we’re using the marker-based approach, how are we ending up inside a tag?

the problem with using < and > like this is that is gives hardly any guarantee that it will slide in front of or behind a tag. it’s also incredibly likely that it will move markers that were already in a text node into a tag.

many definitely try to parse HTML this way. we have forty years of prior art…

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

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

if we’re using the marker-based approach, how are we ending up inside a tag?

We're receiving these markers from other peers with possibly different CRDTs, so this was an attempt to add some edge-case detection. You're correct though, this doesn't catch "edge cases" as much as it will probably make problems with regular content to a greater degree.

Thank you for the wisdom here, it's really helpful. I'm going to modify htmlIndexToRichTextOffset() not to use this method for tag detection. At very least we can remove manual parsing and just fall back to some default, or maybe we can look at the output of create() to determine if something unexpected happened.

// Candidate markers for insertion. We try each in order and pick the first
// one that does not already appear in the text, so existing content cannot
// collide with the marker we search for after parsing.
const MARKER_CANDIDATES = [ '\uFFFD', '\uFFFE', '\uFFFF' ] as const;

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

this approach should work, but this is a curious set of characters to use, particularly U+FFFD which serves in so many common roles.

as non-characters, U+FFFE and U+FFFF should work, but also we can try any of the private-use area characters, the easiest being those starting at U+E000

for what reasons did you choose these characters?

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

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

\uFFFD is just the classic replacement character, but I wanted to add some backups in the unlikely case real content contained it. Happy to do whatever here though, would you recommend U+E000-U+E002?

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

the private-use characters are for special purposes like this, contained within a system. they intentionally have no meaning and should never have meaning between systems.

U+FFFD has a very specific universal meaning and a lot of texts will contain it, oftentimes by accident (because, while it should be reserved for display-only, many tools end up replacing invalid byte sequences with it anyway)

@alecgeatches

alecgeatches commented Mar 13, 2026

Copy link
Copy Markdown
Contributor Author

@dmsnell I pushed up some changes to use private-use entities and remove the unhelpful manual HTML parsing. Currently htmlIndexToRichTextOffset() doesn't really care if the htmlIndex is invalid and I added some pinning tests for the current behavior.

I thought of a potential way to detect invalid HTML. We could parse the HTML once before adding the character and once after, and if the length isn't +1, that means a tag or something broke and it's invalid. We could potentially increment the insertion position in a loop until the result is the input length plus 1. I think this is a reasonable strategy, but it does add a lot of overhead create() calls and complexity to solve a problem we might not actually encounter. For now my plan is to see how this works without any correction and maybe simplicity is good enough.

Please let me know if you have any more feedback here, it's been appreciated.

CURSOR_REDRAW_INTERVAL_MS
);
return () => clearInterval( interval );
}, [ cursors.length, rerenderCursorsAfterDelay ] );

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

we should be careful with interval functions, especially if there’s any potential for long compute time. the problem is that they can stack up in the even queue and if the system experiences high load, it may not be able to run them fast enough to clear it out.

another available approach is to set a mean time between runs instead of schedulings

let timerHandle;
const runner = () => {
	rerenderCursorsAfterDelay();
	timerHandle = setTimeout( runner, CURSOR_REDRAW_INTERVAL_MS );
};
return () => clearTimeout( timerHandle );

the benefit here is natural deferral of these updates when the editor is laggy and decreased pressure on the main thread. the risk is that if there’s an exception in that execution context then the timer won’t be reset. this is easy to fix by creating a light-weight scheduler on setInterval() whose only purpose is to ensure that the timer is set if it hasn’t been reset.

let timerHandle;
setInterval( () => {
	if ( timerHandle ) {
		return;
	}

	timerHandler = setTimeout( () => {
		timerHandle = null;
		runner();
	}, 0 );
}, CURSOR_REDRAW_INTERVAL_MS );

and should anyone find this intermingling ugly, there are ways to separate the recursion.

const setDelayedInterval( runner, CURSOR_REDRAW_INTERVAL_MS );

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

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

Cool pattern, and makes sense to me. Implemented in 648b72a.

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.

just noting that this function is already debounced (currently by 500ms)

Comment on lines +2 to +3
* Like setInterval but measures the delay between the end of one run and the
* start of the next, so callbacks never stack up when the main thread is busy.

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.

it does not appear to do this

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.

but i understand it as written, maybe just update this docblock for clarity

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

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

I can see how "measures the delay" might not convey what I intended. I tried another go in 7ddd2fc!

timerHandle = setTimeout( runner, delayMs );
};

// Restart the runner if an exception killed it

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.

if we're worried about an exception in the callback, why not try / catch?

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

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

This appears to work the same, with a bit less code: 0dd859f. Good idea.

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

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

Also removed the console.log in 9fefe8c.

// changes that don't trigger awareness state updates (e.g. a collaborator
// applying formatting shifts text but the cursor's logical position is
// unchanged). Only active when remote cursors are visible.
const CURSOR_REDRAW_INTERVAL_MS = 10_000;

@ingeniumed ingeniumed Mar 17, 2026

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.

Minor: Worth pulling this outside the component to line 12?

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

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

Done in 26631e8!

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

Tested, working very well

@alecgeatches
alecgeatches merged commit 848188b into trunk Mar 17, 2026
48 of 49 checks passed
@alecgeatches
alecgeatches deleted the fix/rtc-cursor-formatting branch March 17, 2026 22:42
@github-actions github-actions Bot added this to the Gutenberg 22.8 milestone Mar 17, 2026
gutenbergplugin pushed a commit that referenced this pull request Mar 17, 2026
* Add failing e2e test for user cursor position after formatting

* Use htmlIndexToRichTextOffset() & richTextOffsetToHtmlIndex() for conversions between text indexes

* Update tests with new API

* Add unit and e2e tests for index conversions

* Add occassional cursor redraw

* Fix tests failing due to missing redux mocks

* Remove explicit page timeout

* Pass a bool instead of a DOM element to avoid serialization error in test

* Poll until cursor position changes in awareness test

* Use private-use characters for markers

* Remove within-tag detection in htmlIndexToRichTextOffset()

* Add pinning tests for incorrect htmlIndex behavior

* Use setTimeout wrapper instead of setInterval to avoid running heavy drawing operations if the main thread is busy

* Move setDelayedInterval() to separate file

* Use a loop to find an unused character instead of 3 hardcoded values

* Update setDelayedInterval() docblock

* Use try/catch instead of a guard interval

* Move CURSOR_REDRAW_INTERVAL_MS constant to top of file, minor formatting changes

* Remove console log on failure

Co-authored-by: alecgeatches <alecgeatches@git.wordpress.org>
Co-authored-by: dmsnell <dmsnell@git.wordpress.org>
Co-authored-by: chriszarate <czarate@git.wordpress.org>
Co-authored-by: ingeniumed <ingeniumed@git.wordpress.org>
@github-actions github-actions Bot added the Backported to WP Core Pull request that has been successfully merged into WP Core label Mar 17, 2026
@github-actions

Copy link
Copy Markdown

I just cherry-picked this PR to the wp/7.0 branch to get it included in the next release: d5570fd

pento pushed a commit to WordPress/wordpress-develop that referenced this pull request Mar 19, 2026
This updates the pinned hash from the `gutenberg` from `8c78d87453509661a9f28f978ba2c242d515563b` to `487a096a9782ba6110a7686d7b4b2d0c55ed1b06`.

The following changes are included:

- Disables anchor support for the Page Break block. (WordPress/gutenberg#76434)
- WP Admin: Update Connectors screen footer text for consistency. (WordPress/gutenberg#76382)
- E2E Tests: Add coverage for AI plugin callout banner on Connectors page (WordPress/gutenberg#76432)
- Update sync docs (WordPress/gutenberg#75972)
- RTC: Add preference for collaborator notifications (WordPress/gutenberg#76460)
- Fix "should undo bold" flaky test (WordPress/gutenberg#76464)
- TimePicker: Clamp month day to valid day for month (WordPress/gutenberg#76400)
- RTC: Fix error when entity record doesn't have 'meta' property (WordPress/gutenberg#76311)
- Navigation: Update close button size. (WordPress/gutenberg#76482)
- TemplateContentPanel: fix useSelect warning (WordPress/gutenberg#76421)
- DataViews: Add spinner in `DataViewsLayout` in initial load of data (WordPress/gutenberg#76486) (WordPress/gutenberg#76490)
- RTC: Fix TypeError in areEditorStatesEqual when selection is undefined (WordPress/gutenberg#76163)
- Page/Post Content Focus Mode: Fix insertion into Post Content block (WordPress/gutenberg#76477)
- Revisions: use useSubRegistry={false} to fix global store selectors (WordPress/gutenberg#76152) (WordPress/gutenberg#76522)
- Fix RTL styling on Connectors, Font Library, and boot-based admin pages (WordPress/gutenberg#76496)
- RTC: Auto-register custom taxonomy rest_base values for CRDT sync (WordPress/gutenberg#75983)
- RTC: Add a limit for the default provider (WordPress/gutenberg#76437)
- Fix RTL styling on AI plugin callout banner (WordPress/gutenberg#76497)
- Add command palette trigger button to admin bar (WordPress/gutenberg#75757)
- Block Bindings: Remove source items constrained by enums (WordPress/gutenberg#76200)
- HTML Block: Remove "unsaved changes" check (WordPress/gutenberg#76086)
- CI: Don't build release notes during plugin build workflow for WP Core sync (WordPress/gutenberg#76398) (WordPress/gutenberg#76578)
- CI: Simplify strategy matrix in Build Gutenberg Plugin Zip workflow (WordPress/gutenberg#76435) (WordPress/gutenberg#76538)
- Media: Add hooks and extension points for client-side media processing (WordPress/gutenberg#74913)
- RTC: Fix list sidebar reset during real-time collaboration (WordPress/gutenberg#76025)
- RTC: Fix CRDT serialization of nested RichText attributes (WordPress/gutenberg#76597)
- RTC: Remove post list lock icon and replace user-specific lock text (WordPress/gutenberg#76322)
- Fix HEIC upload error handling and sub-size format (WordPress/gutenberg#76514)
- RTC: Fix cursor index sync with rich text formatting (WordPress/gutenberg#76418)
- RTC: Allow filtering of `SyncConnectionModal` (WordPress/gutenberg#76554)
- RTC: Implement front-end peer limits (WordPress/gutenberg#76565)
- Navigation overlay close button may be displayed twice (WordPress/gutenberg#76585)
- Site Editor > Templates: fix author filter (WordPress/gutenberg#76625)
- Revisions: Show changed block attributes in inspector sidebar (WordPress/gutenberg#76550)
- Fix IS_GUTENBERG_PLUGIN env var override in build config  (WordPress/gutenberg#76605)
- Real Time Collaboration: Introduce filters for the polling intervals. (WordPress/gutenberg#76518)
- 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)
- Update changelog link for pull request 11276 (WordPress/gutenberg#76638)
- Fix backport changelog filename (WordPress/gutenberg#76651)
- Build: Skip non-minified build for WASM-inlined workers (WordPress/gutenberg#76615)
- RTC: Change RTC option name (WordPress/gutenberg#76643)
- BlockListBlock: fix crash when selectedProps are null (WordPress/gutenberg#75826)
- Build: Fix vips worker 404 when SCRIPT_DEBUG is true (WordPress/gutenberg#76657)
- useMediaQuery: support in-iframe queries via new `WindowContext` (WordPress/gutenberg#76446) (WordPress/gutenberg#76660)
- Refactor admin-ui Page component to use @wordpress/theme tokens and @wordpress/ui layout primitive (WordPress/gutenberg#75963)
- Connectors: Improve accessibility (WordPress/gutenberg#76456)
- Build: Remove unused JXL WASM module from vips worker (WordPress/gutenberg#76639)
- Connectors: fix button size (WordPress/gutenberg#76582)
- Compose: Implement useCopyToClipboard and useCopyOnClick with native clipboard API (WordPress/gutenberg#75723) (WordPress/gutenberg#76663)
- Connectors: Fetch specific plugin instead of all plugins (WordPress/gutenberg#76594)
- Revisions: Add Meta fields diff panel to document sidebar (WordPress/gutenberg#76341)
- Loosen client-side media processing requirements (WordPress/gutenberg#76616)
- Reduce the added halo for selected block. (WordPress/gutenberg#76619)
- Connectors: Add unregisterConnector and upsert support (WordPress/gutenberg#76541)

A full list of changes can be found on GitHub: https://github.com/WordPress/gutenberg/compare/8c78d87453509661a9f28f978ba2c242d515563b…487a096a9782ba6110a7686d7b4b2d0c55ed1b06.

Log created with:

git log --reverse --format="- %s" 8c78d87453509661a9f28f978ba2c242d515563b..487a096a9782ba6110a7686d7b4b2d0c55ed1b06 | sed 's|#\([0-9][0-9]*\)|https://github.com/WordPress/gutenberg/pull/\1|g; /github\.com\/WordPress\/gutenberg\/pull/!d' | pbcopy

See #64595.

git-svn-id: https://develop.svn.wordpress.org/trunk@62063 602fd350-edb4-49c9-b593-d223f7449a82
markjaquith pushed a commit to markjaquith/WordPress that referenced this pull request Mar 19, 2026
This updates the pinned hash from the `gutenberg` from `8c78d87453509661a9f28f978ba2c242d515563b` to `487a096a9782ba6110a7686d7b4b2d0c55ed1b06`.

The following changes are included:

- Disables anchor support for the Page Break block. (WordPress/gutenberg#76434)
- WP Admin: Update Connectors screen footer text for consistency. (WordPress/gutenberg#76382)
- E2E Tests: Add coverage for AI plugin callout banner on Connectors page (WordPress/gutenberg#76432)
- Update sync docs (WordPress/gutenberg#75972)
- RTC: Add preference for collaborator notifications (WordPress/gutenberg#76460)
- Fix "should undo bold" flaky test (WordPress/gutenberg#76464)
- TimePicker: Clamp month day to valid day for month (WordPress/gutenberg#76400)
- RTC: Fix error when entity record doesn't have 'meta' property (WordPress/gutenberg#76311)
- Navigation: Update close button size. (WordPress/gutenberg#76482)
- TemplateContentPanel: fix useSelect warning (WordPress/gutenberg#76421)
- DataViews: Add spinner in `DataViewsLayout` in initial load of data (WordPress/gutenberg#76486) (WordPress/gutenberg#76490)
- RTC: Fix TypeError in areEditorStatesEqual when selection is undefined (WordPress/gutenberg#76163)
- Page/Post Content Focus Mode: Fix insertion into Post Content block (WordPress/gutenberg#76477)
- Revisions: use useSubRegistry={false} to fix global store selectors (WordPress/gutenberg#76152) (WordPress/gutenberg#76522)
- Fix RTL styling on Connectors, Font Library, and boot-based admin pages (WordPress/gutenberg#76496)
- RTC: Auto-register custom taxonomy rest_base values for CRDT sync (WordPress/gutenberg#75983)
- RTC: Add a limit for the default provider (WordPress/gutenberg#76437)
- Fix RTL styling on AI plugin callout banner (WordPress/gutenberg#76497)
- Add command palette trigger button to admin bar (WordPress/gutenberg#75757)
- Block Bindings: Remove source items constrained by enums (WordPress/gutenberg#76200)
- HTML Block: Remove "unsaved changes" check (WordPress/gutenberg#76086)
- CI: Don't build release notes during plugin build workflow for WP Core sync (WordPress/gutenberg#76398) (WordPress/gutenberg#76578)
- CI: Simplify strategy matrix in Build Gutenberg Plugin Zip workflow (WordPress/gutenberg#76435) (WordPress/gutenberg#76538)
- Media: Add hooks and extension points for client-side media processing (WordPress/gutenberg#74913)
- RTC: Fix list sidebar reset during real-time collaboration (WordPress/gutenberg#76025)
- RTC: Fix CRDT serialization of nested RichText attributes (WordPress/gutenberg#76597)
- RTC: Remove post list lock icon and replace user-specific lock text (WordPress/gutenberg#76322)
- Fix HEIC upload error handling and sub-size format (WordPress/gutenberg#76514)
- RTC: Fix cursor index sync with rich text formatting (WordPress/gutenberg#76418)
- RTC: Allow filtering of `SyncConnectionModal` (WordPress/gutenberg#76554)
- RTC: Implement front-end peer limits (WordPress/gutenberg#76565)
- Navigation overlay close button may be displayed twice (WordPress/gutenberg#76585)
- Site Editor > Templates: fix author filter (WordPress/gutenberg#76625)
- Revisions: Show changed block attributes in inspector sidebar (WordPress/gutenberg#76550)
- Fix IS_GUTENBERG_PLUGIN env var override in build config  (WordPress/gutenberg#76605)
- Real Time Collaboration: Introduce filters for the polling intervals. (WordPress/gutenberg#76518)
- 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)
- Update changelog link for pull request 11276 (WordPress/gutenberg#76638)
- Fix backport changelog filename (WordPress/gutenberg#76651)
- Build: Skip non-minified build for WASM-inlined workers (WordPress/gutenberg#76615)
- RTC: Change RTC option name (WordPress/gutenberg#76643)
- BlockListBlock: fix crash when selectedProps are null (WordPress/gutenberg#75826)
- Build: Fix vips worker 404 when SCRIPT_DEBUG is true (WordPress/gutenberg#76657)
- useMediaQuery: support in-iframe queries via new `WindowContext` (WordPress/gutenberg#76446) (WordPress/gutenberg#76660)
- Refactor admin-ui Page component to use @wordpress/theme tokens and @wordpress/ui layout primitive (WordPress/gutenberg#75963)
- Connectors: Improve accessibility (WordPress/gutenberg#76456)
- Build: Remove unused JXL WASM module from vips worker (WordPress/gutenberg#76639)
- Connectors: fix button size (WordPress/gutenberg#76582)
- Compose: Implement useCopyToClipboard and useCopyOnClick with native clipboard API (WordPress/gutenberg#75723) (WordPress/gutenberg#76663)
- Connectors: Fetch specific plugin instead of all plugins (WordPress/gutenberg#76594)
- Revisions: Add Meta fields diff panel to document sidebar (WordPress/gutenberg#76341)
- Loosen client-side media processing requirements (WordPress/gutenberg#76616)
- Reduce the added halo for selected block. (WordPress/gutenberg#76619)
- Connectors: Add unregisterConnector and upsert support (WordPress/gutenberg#76541)

A full list of changes can be found on GitHub: https://github.com/WordPress/gutenberg/compare/8c78d87453509661a9f28f978ba2c242d515563b…487a096a9782ba6110a7686d7b4b2d0c55ed1b06.

Log created with:

git log --reverse --format="- %s" 8c78d87453509661a9f28f978ba2c242d515563b..487a096a9782ba6110a7686d7b4b2d0c55ed1b06 | sed 's|#\([0-9][0-9]*\)|https://github.com/WordPress/gutenberg/pull/\1|g; /github\.com\/WordPress\/gutenberg\/pull/!d' | pbcopy

See #64595.
Built from https://develop.svn.wordpress.org/trunk@62063


git-svn-id: http://core.svn.wordpress.org/trunk@61345 1a063a9b-81f0-0310-95a4-ce76da25c4cd
adamsilverstein pushed a commit that referenced this pull request Mar 31, 2026
* Add failing e2e test for user cursor position after formatting

* Use htmlIndexToRichTextOffset() & richTextOffsetToHtmlIndex() for conversions between text indexes

* Update tests with new API

* Add unit and e2e tests for index conversions

* Add occassional cursor redraw

* Fix tests failing due to missing redux mocks

* Remove explicit page timeout

* Pass a bool instead of a DOM element to avoid serialization error in test

* Poll until cursor position changes in awareness test

* Use private-use characters for markers

* Remove within-tag detection in htmlIndexToRichTextOffset()

* Add pinning tests for incorrect htmlIndex behavior

* Use setTimeout wrapper instead of setInterval to avoid running heavy drawing operations if the main thread is busy

* Move setDelayedInterval() to separate file

* Use a loop to find an unused character instead of 3 hardcoded values

* Update setDelayedInterval() docblock

* Use try/catch instead of a guard interval

* Move CURSOR_REDRAW_INTERVAL_MS constant to top of file, minor formatting changes

* Remove console log on failure

Co-authored-by: alecgeatches <alecgeatches@git.wordpress.org>
Co-authored-by: dmsnell <dmsnell@git.wordpress.org>
Co-authored-by: chriszarate <czarate@git.wordpress.org>
Co-authored-by: ingeniumed <ingeniumed@git.wordpress.org>
adamsilverstein pushed a commit that referenced this pull request Apr 7, 2026
* Add failing e2e test for user cursor position after formatting

* Use htmlIndexToRichTextOffset() & richTextOffsetToHtmlIndex() for conversions between text indexes

* Update tests with new API

* Add unit and e2e tests for index conversions

* Add occassional cursor redraw

* Fix tests failing due to missing redux mocks

* Remove explicit page timeout

* Pass a bool instead of a DOM element to avoid serialization error in test

* Poll until cursor position changes in awareness test

* Use private-use characters for markers

* Remove within-tag detection in htmlIndexToRichTextOffset()

* Add pinning tests for incorrect htmlIndex behavior

* Use setTimeout wrapper instead of setInterval to avoid running heavy drawing operations if the main thread is busy

* Move setDelayedInterval() to separate file

* Use a loop to find an unused character instead of 3 hardcoded values

* Update setDelayedInterval() docblock

* Use try/catch instead of a guard interval

* Move CURSOR_REDRAW_INTERVAL_MS constant to top of file, minor formatting changes

* Remove console log on failure

Co-authored-by: alecgeatches <alecgeatches@git.wordpress.org>
Co-authored-by: dmsnell <dmsnell@git.wordpress.org>
Co-authored-by: chriszarate <czarate@git.wordpress.org>
Co-authored-by: ingeniumed <ingeniumed@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 `a2a354cf35e5b69c3330d6c1cfd42d8dc2efb9fd` to `3166ad3c587b4091f77b0e16affeed5762e193f1` (version `22.8.0`).

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

The following commits are included:
- Add useBlocker to private APIs for enhanced routing control (WordPress/gutenberg#75687)
- Add components team as codeowners for components package (WordPress/gutenberg#75641)
- DataForm: Fix focus loss and refactor Card layout (WordPress/gutenberg#75689)
- Remove IS_GUTENBERG_PLUGIN checks for collaborative editing (WordPress/gutenberg#75699)
- RTC: Add cap check for single taxonomy term entities (WordPress/gutenberg#75708)
- Only show dot divider for parent selector in top toolbar (WordPress/gutenberg#75710)
- Re-enable Font Library e2e tests (WordPress/gutenberg#75712)
- Fix flaky Quick Edit e2e test (WordPress/gutenberg#75714)
- Post Navigation Link : Migrate to Text-Align Block Support (WordPress/gutenberg#75557)
- Add phpMyAdmin support to wp-env Playground runtime (WordPress/gutenberg#75532)
- wp-env: Enable pretty permalinks by default in Docker runtime (WordPress/gutenberg#75688)
- DataViews: fix spacing for title in patterns page (WordPress/gutenberg#75693)
- MediaEdit: Auto-fill columns based on minimum item width (WordPress/gutenberg#75509)
- Add Field and Fieldset details tests (WordPress/gutenberg#75696)
- UI: Update `@base-ui/react` from 1.0.0 to 1.2.0 (WordPress/gutenberg#75698)
- Theme: Add design token for interactive non-link elements (WordPress/gutenberg#75697)
- Media: Graduate client-side media processing from experimental (WordPress/gutenberg#75112)
- Remove experimental property from Icon block (WordPress/gutenberg#75742)
- Real-time collab editing: Fix undo E2E test (WordPress/gutenberg#75740)
- Snackbar: Fix scaling issue with snackbars that update their content via a common id (WordPress/gutenberg#75709)
- Vips and worker-threads packages: remove private flag so that packages can be published to npm (WordPress/gutenberg#75752)
- Update wordpress/vips in root package.json to use a relative path (WordPress/gutenberg#75758)
- Fix change-detection and new-post E2E tests after RTC enabled by default (WordPress/gutenberg#75751)
- Try fix failing patterns e2e test (WordPress/gutenberg#75759)
- Client-side media processing: Disable in Gutenberg just for now (WordPress/gutenberg#75756)
- Skip cross origin isolation e2e tests (WordPress/gutenberg#75764)
- Post featured image: Simplify background class assignment. (WordPress/gutenberg#75745)
- Block Editor: Avoid block removal when calling 'moveBlockToPosition' (WordPress/gutenberg#75728)
- Icon: Improve parameter documentation (WordPress/gutenberg#75768)
- Query: Remove content role from block (WordPress/gutenberg#75760)
- DataViews: Adjust column spacing in `table` layout when no titleField is provided (WordPress/gutenberg#75410)
- IconButton: Hide tooltip when truly disabled (WordPress/gutenberg#75754)
- `ToggleGroupControl`: Make unselected item color consistent across all variants (WordPress/gutenberg#75737)
- Center navigation preview content in preview pane (WordPress/gutenberg#75741)
- Real-time collaboration: Fix comment syncing on site editor (WordPress/gutenberg#75746)
- Navigation Overlay Close: Set Close as default text, rather than using a placeholder (WordPress/gutenberg#75692)
- Components: Refactor ColorPicker to preserve hue/saturation at achromatic colors (WordPress/gutenberg#75493)
- Icon-block: fix global-styles selectors (WordPress/gutenberg#75724)
- Revert "Try fix failing patterns e2e test (WordPress/gutenberg#75759)" (WordPress/gutenberg#75771)
- Theme: Add design token fallback generation (WordPress/gutenberg#75586)
- Core Data: Create icons entity (WordPress/gutenberg#75773)
- Workflows: Use pull_request_target for cherry-pick workflow (WordPress/gutenberg#75775)
- Revert "CI: Use http-get in Storybook check wait-on" (WordPress/gutenberg#75781)
- REST API: Make filter_wp_unique_filename() static to match core, plus avoid duplicate routes (WordPress/gutenberg#75782)
- Tabs: Remove custom state styling (WordPress/gutenberg#75731)
- Sort registry files by handle/ID. (WordPress/gutenberg#75755)
- Real-time Collaboration: Bug fix for CRDT user selection and add tests (WordPress/gutenberg#75075)
- Post Title : Migrate to Text-Align Block Support (WordPress/gutenberg#75629)
- Query Title: Migrate to Text-Align Block Support (WordPress/gutenberg#75802)
- Pattern Editing: Fix nested patterns/sections (WordPress/gutenberg#75772)
- Add core/icon block to theme.json schema (WordPress/gutenberg#75813)
- Changelog: Curate entries for GB 22.6.0 RC1 (WordPress/gutenberg#75738)
- QuickEdit: rename status label and remove extra labels in popup (WordPress/gutenberg#75824)
- BlockListBlock: fix crash when selectedProps are null (WordPress/gutenberg#75826)
- RTC: Updates from backport PR (WordPress/gutenberg#75711)
- Merge document meta into state map (WordPress/gutenberg#75830)
- NumberControl: merge two state reducers into one (WordPress/gutenberg#75822)
- Real-time collaboration: Remove block client IDs from Awareness, fix "Show Template" view (WordPress/gutenberg#75590)
- RTC: Fix entity save call / initial persistence. (WordPress/gutenberg#75841)
- Fix block editing modes not recomputing when isolated editor value changes (WordPress/gutenberg#75821)
- DataViews: Fix search input losing characters during debounce when externally synced (WordPress/gutenberg#75810)
- Synced patterns: Fix block editing mode of synced pattern content when nested in an unsynced pattern (WordPress/gutenberg#75818)
- Add wp_ prefix to real time collaberation option. (WordPress/gutenberg#75837)
- Block Support: Fix custom CSS not saved when style schema is not defined (WordPress/gutenberg#75797)
- Site Tagline : Migrate to Text-Align Block Support (WordPress/gutenberg#75690)
- Site Title : Migrate to Text-Align Block Support (WordPress/gutenberg#75551)
- Try enabling style variation transforms for blocks in contentOnly mode (WordPress/gutenberg#75761)
- Fix error when undoing newly added pattern (WordPress/gutenberg#75850)
- Block Editor: Invalid block selected style (WordPress/gutenberg#75796)
- Add e2e test for sorting patterns (WordPress/gutenberg#75823)
- Gallery: Fixes keyboard focus escaping the lightbox overlay when navigating a gallery with Tab/Shift+Tab. (WordPress/gutenberg#75852)
- wp-build: Do not remove Core's default script modules registration (WordPress/gutenberg#75705)
- Fix: Suppress spinner output when using --json flag in wp-env (WordPress/gutenberg#75743)
- Docs: Fix incorrect use of wp_interactivity_state in getServerState example (WordPress/gutenberg#75857)
- Env: Improve help screen (WordPress/gutenberg#75783)
- iAPI Docs: Introduce reactive vs non-reactive distinction early in the state/context guide (WordPress/gutenberg#75357)
- Fix client-side media file naming (WordPress/gutenberg#75817)
- Plugin: Include Icons assets in ZIP (WordPress/gutenberg#75866)
- Prevent CSS modules in build from breaking Jest tests (WordPress/gutenberg#75792)
- Bump the github-actions group across 2 directories with 7 updates (WordPress/gutenberg#75725)
- Re-enable client-side media processing (WordPress/gutenberg#75848)
- RTC: Fix undefined array_first() call in sync storage (WordPress/gutenberg#75869)
- Real-time collaboration: Improve collaboration within the same rich text (WordPress/gutenberg#75703)
- Media Thumbnail Field: Optimise image loading (WordPress/gutenberg#75811)
- Grid block: Improve Visualizer responsiveness (WordPress/gutenberg#75820)
- Custom CSS: Allow defining custom selector for this global styles feature (WordPress/gutenberg#75799)
- Fix DataForm card summary vertical alignment (WordPress/gutenberg#75864)
- Update README for DataViews, DataForm, Field API (WordPress/gutenberg#75881)
- Client Side Media: Add device/browser capability detection (WordPress/gutenberg#75863)
- Navigation editing: simplify edit/view buttons (WordPress/gutenberg#75819)
- DataViews: Remove menu divider again. (WordPress/gutenberg#75893)
- Page List Item: Replace RawHTML with dangerouslySetInnerHTML for label and title (WordPress/gutenberg#75890)
- Theme: Add build plugins to inject design token fallbacks (WordPress/gutenberg#75589)
- Cover block: Add e2e test coverage for bugfixes (WordPress/gutenberg#75483)
- Fix flaky template-revert e2e tests (WordPress/gutenberg#75894)
- Accordion: Remove Down Arrow, Up Arrow, Home, End naviagtion (WordPress/gutenberg#75891)
- Dialog: Add legacy z-index compatibility (WordPress/gutenberg#75874)
- Cover: Replace strpos() with str_contains() for improved readability (WordPress/gutenberg#75907)
- Block editor: Force LTR direction in block HTML editing mode (WordPress/gutenberg#75904)
- Navigation overlay: Prevent duplicate area registration (WordPress/gutenberg#75906)
- RichText: useAnchor: Fix TypeError in virtual element (WordPress/gutenberg#75900)
- Navigation: Extract NavigationLinkUI and NavigationListViewHeader into separate files (WordPress/gutenberg#75865)
- DataViews: minimize padding for primary action buttons (WordPress/gutenberg#75721)
- DataForm: fix label colors (WordPress/gutenberg#75730)
- ESLint: Add `no-ds-tokens` rule (WordPress/gutenberg#75872)
- Theme: Remove global stylesheet (WordPress/gutenberg#75879)
- Automated Testing: Merge reports into HTML artifact (WordPress/gutenberg#75633)
- wp-build: Deregister script modules before re-registering (WordPress/gutenberg#75909)
- Move WordPress meta key from sync package to core-data (WordPress/gutenberg#75846)
- Real-time collaboration: Remove ghost awareness state explicitly when refreshing (WordPress/gutenberg#75883)
- Bugfix: Fix casing of getPersistedCRDTDoc (WordPress/gutenberg#75922)
- Add: Connectors screen (WordPress/gutenberg#75833)
- Real-time collaboration: Expand mergeCrdtBlocks() automated testing (WordPress/gutenberg#75923)
- Add previews for style variation transforms (WordPress/gutenberg#75889)
- Convert focus on mount hook to TypeScript (WordPress/gutenberg#75442)
- Add debug logging to SyncManager (WordPress/gutenberg#75924)
- Show transform dropdown previews on focus as well as hover (WordPress/gutenberg#75940)
- Custom CSS: Prevent duplicate custom css styles (WordPress/gutenberg#75892)
- Docs: Correct parameter name `$content` for query title render function. (WordPress/gutenberg#75945)
- DataViews: Avoid flickering while refreshing (WordPress/gutenberg#74572)
- Connectors: Add `_ai_` prefix to connector setting names and fix naming inconsistencies (WordPress/gutenberg#75948)
- Connectors: Unhook Core callbacks in Gutenberg coexistence (WordPress/gutenberg#75935)
- Editor: Remove View dropdown and pinned items from revisions header (WordPress/gutenberg#75951)
- Unsynced patterns: Rename 'Disconnect pattern' to 'Detach pattern' in context menu (WordPress/gutenberg#75807)
- ui guidelines: add custom properties and disabled state guidance (WordPress/gutenberg#75912)
- Fix: Template revisions infinite spinner (WordPress/gutenberg#75953)
- Docs: Fix broken link to `autoRegister` block-supports (WordPress/gutenberg#75956)
- Add documentation for contentRole and listView block supports (WordPress/gutenberg#75903)
- Build: Clean top-level build/ directory during clean:packages (WordPress/gutenberg#75961)
- Interactivity Router: fix back and forward navigation after refresh (WordPress/gutenberg#75927)
- ESLint: Add no-i18n-in-save rule (WordPress/gutenberg#75617)
- Components: Specify line-height to avoid inheriting default values (WordPress/gutenberg#75880)
- Real-time collaboration: Fix disconnect dialog on navigate (WordPress/gutenberg#75886)
- Navigation: Remove internal 'useNavigationEntities' hook (WordPress/gutenberg#75943)
- Directly inject styles in overlay to make styles stay consistently mounted (WordPress/gutenberg#75700)
- Real Time Collab: Throttle syncing for inactive tabs. (WordPress/gutenberg#75843)
- Content Guidelines: Add experimental REST API and custom post type (WordPress/gutenberg#75164)
- Core Data: Simplify actions dispatched by 'canUser' resolver (WordPress/gutenberg#75974)
- Pattern Editing: Fix sibling blocks to edited pattern not being disabled (WordPress/gutenberg#75994)
- Sync connector PHP behavior with Core backport changes (WordPress/gutenberg#75968)
- Use the same context for font library tabs translations (WordPress/gutenberg#75930)
- Connectors: Avoid manual string concatenation (WordPress/gutenberg#75997)
- DataForm: fix field label for panel (should not be uppercase) (WordPress/gutenberg#75944)
- Unify block settings dropdown menu items across list views (WordPress/gutenberg#75979)
- Views: add support for more overrides (all developer-defined config) (WordPress/gutenberg#75971)
- Preserve note selection on browser tab switch (WordPress/gutenberg#75955)
- ESLint: Broaden `no-unknown-ds-tokens` to all strings and catch dynamic construction (WordPress/gutenberg#75905)
- Use homeUrl instead of siteUrl for link badge evaluations (WordPress/gutenberg#75978)
- Block Editor: Display custom block labels in Block Inspector and List View (WordPress/gutenberg#75607)
- DataViews: Fix focus transfer while searching in `list` layout (WordPress/gutenberg#75999)
- UI: Add Notice component (WordPress/gutenberg#75981)
- Playlist Block: Add WaveformPlayer visualization (WordPress/gutenberg#75203)
- DataViews: Right-align `integer` and `number` fields (WordPress/gutenberg#75917)
- Navigation Link: Compare internal links by host instead of origin (WordPress/gutenberg#76015)
- Bump the github-actions group across 2 directories with 3 updates (WordPress/gutenberg#76006)
- Block Supports: Define CSS vars for blocks based on feature selectors (WordPress/gutenberg#75226)
- Button: Migrate to width block support (WordPress/gutenberg#74242)
- Fix: Skip scaled image sideload for images below big image threshold (WordPress/gutenberg#75990)
- ToolsPanel: Remove unnecessary label prop from dropdownMenuProps type (WordPress/gutenberg#76027)
- Make inspector style transform previews consistent with toolbar transforms (WordPress/gutenberg#75989)
- Fix: Set quality and strip metadata in client-side image resize (WordPress/gutenberg#76029)
- Search block: double-encodes apostrophes in the input value (WordPress/gutenberg#76023)
- Post Title: Add placeholder attribute (WordPress/gutenberg#76016)
- wp-env: Add opt-in --auto-port flag for automatic port selection (WordPress/gutenberg#74472)
- RichText: useAnchor: Enable type checking, fix errors (WordPress/gutenberg#75910)
- DataForm: Fix `card` layout's toggle button screen reader text (WordPress/gutenberg#76039)
- [Real-time Collaboration] Fix sync issue on refresh (WordPress/gutenberg#76017)
- RTC: Fix syncing of emoji / surrogate pairs (WordPress/gutenberg#76049)
- InputLayout: Replace slot context with data attributes (WordPress/gutenberg#76011)
- RTC: Fix stale CRDT document persisted on save (WordPress/gutenberg#75975)
- Real-time collaboration: Improve disconnect dialog (WordPress/gutenberg#75970)
- Media Notices: Bump global snackbar z-index, re-use global notices for media modal (WordPress/gutenberg#76063)
- RTC: Prevent duplicate poll cycles (WordPress/gutenberg#76059)
- RTC: Disable multiple collaborators if meta boxes are present (WordPress/gutenberg#75939)
- DataViews: Fix filter toggle flickering when there are locked or primary filters (WordPress/gutenberg#75913)
- Revert global snackbar z-index bump, implement alternative fix for Media Upload Modal notices (WordPress/gutenberg#76067)
- DataViews: Improve UI in `list` layout when we render only title and/or media fields (WordPress/gutenberg#76042)
- `Button`: Add `word-break: break-word` (WordPress/gutenberg#76071)
- DataForm: Fix text overflow for long unhyphenated text in panel layout (WordPress/gutenberg#76073)
- Interactivity: Fix incomplete Window.scheduler type causing TS2430 (WordPress/gutenberg#76070)
- Connectors: Dynamically register providers from WP AI Client registry (WordPress/gutenberg#76014)
- Remove Core's full-page render interceptors for boot-based pages (WordPress/gutenberg#76036)
- PHP-only Blocks: Reflect bound attribute values in inspector controls (WordPress/gutenberg#76040)
- Admin UI: Fix type mismatch between Page title and NavigableRegion ariaLabel (WordPress/gutenberg#75899)
- Remove unused deps: wordpress/dom, wordpress/theme, wordpress/url (WordPress/gutenberg#76075)
- RTC: Fix fallthrough for sync update switch statement (WordPress/gutenberg#76060)
- Extract inserter-toggle mixin from duplicated button styles (WordPress/gutenberg#76087)
- RTC: Add session activity notifications (WordPress/gutenberg#76065)
- DateTimePicker: Fix day text wrapping (WordPress/gutenberg#76084)
- iAPI Docs: Add client-side navigation guide under "Core Concepts" (WordPress/gutenberg#75263)
- Move block css vars selectors backport changelog to correct WP version (WordPress/gutenberg#76102)
- Fix writing flow navigation for annotation style, or any other block with border radius (WordPress/gutenberg#76072)
- Block toolbar and context menu: hide pattern actions in Revisions UI (WordPress/gutenberg#76066)
- Prevent non-reproducible Sass/CSS builds. (WordPress/gutenberg#76098)
- Block toolbar: hide styles dropdown in Revisions UI (WordPress/gutenberg#76119)
- Image: Hide 'Set as featured image' for in-editor revisions (WordPress/gutenberg#76123)
- Image block: fix lightbox srcset size (WordPress/gutenberg#76092)
- DataViews: Fix last column classname in `table` layout (WordPress/gutenberg#76133)
- Data: Update documentation for global 'dispatch' and 'select' methods (WordPress/gutenberg#76134)
- Connectors: Gate unavailable install actions behind install capability (WordPress/gutenberg#75980)
- Auto Cherry-Pick: Fix race condition by using pull_request_target closed event (WordPress/gutenberg#76083)
- build: Exclude experimental pages from Core builds (WordPress/gutenberg#76038)
- Playlist: Move getTrackAttributes to utils (WordPress/gutenberg#76096)
- HTML & Shortcode: Disable viewport visibility support (WordPress/gutenberg#76138)
- Navigation: Allow creating new links in site editor sidebar List View (WordPress/gutenberg#75918)
- DataForm: Consolidate `date` and `datetime` input placement (WordPress/gutenberg#76136)
- Remove `! function_exists()` checks from PHP templates (WordPress/gutenberg#76062)
- Playlist: Clip content to respect border-radius (WordPress/gutenberg#76146)
- Connectors: Update page identifier to options-connectors (WordPress/gutenberg#76142)
- RTC: Verify client ID to avoid awareness mutation (WordPress/gutenberg#76056)
- Move backport changelog PR for Gutenberg WordPress/gutenberg#75746 to correct matching backport PR (WordPress/gutenberg#76154)
- Connectors: Align init hook priorities with Core overrides (WordPress/gutenberg#76161)
- Icons: Fix incorrect icon slug (WordPress/gutenberg#76074)
- Icon Block: Clean up selectors config (WordPress/gutenberg#75786)
- Add support for linting annotations and other static analysis workflow improvements (WordPress/gutenberg#76120)
- Bump the github-actions group across 2 directories with 1 update (WordPress/gutenberg#76144)
- Image: Replace 'getEntityRecordPermissions` with 'canUser' (WordPress/gutenberg#76125)
- RTC: Enable RTC by default (WordPress/gutenberg#75739)
- Fix backport changelog for WordPress/gutenberg#76060 (WordPress/gutenberg#76174)
- Rename and visibility modals: gate shortcuts behind canEditBlock to prevent triggering in revisions UI (WordPress/gutenberg#76168)
- Hide template part replace button when viewing revisions (WordPress/gutenberg#76169)
- Fix: Block style variations not rendering in Site Editor Patterns page (WordPress/gutenberg#76122)
- Content Guidelines: Add UX for site, copy, image, and internal guidelines (WordPress/gutenberg#75420)
- Client-side media processing: only use media upload provider when not in preview mode (WordPress/gutenberg#76124)
- Notes: Disable for in-editor revisions (WordPress/gutenberg#76180)
- Core Data: Support reading revision data in useEntityProp (fixes footnotes in revisions UI) (WordPress/gutenberg#76106)
- Client-side media processing: Try plumbing invalidation to the block-editor's mediaUpload onSuccess callback (WordPress/gutenberg#76173)
- Interactivity API: Fix router initialization race condition on Safari/Firefox (WordPress/gutenberg#76053)
- Connectors: Improve responsive layout on small screens (WordPress/gutenberg#76186)
- Interactivity: Fix crypto.randomUUID crash in non-secure contexts (WordPress/gutenberg#76151)
- Duotone: lazily load settings (WordPress/gutenberg#74748)
- Media: Use Document-Isolation-Policy for cross-origin isolation on Chromium 137+ (WordPress/gutenberg#75991)
- DataForm `datetime` control: fix date handling (WordPress/gutenberg#76193)
- Field.Label, Fieldset.Legend: Add `visuallyHidden` prop (WordPress/gutenberg#76052)
- Extensible Site Editor: Make canvas previews full height (WordPress/gutenberg#76201)
- Storybook: Deduplicate injected package stylesheets (WordPress/gutenberg#76158)
- Temp: Disable RTC in the site editor (WordPress/gutenberg#76223)
- Obey undoIgnore flag in editEntityRecord (WordPress/gutenberg#76206)
- RTC: Fix `post-editor-template-mode` E2E test (WordPress/gutenberg#76209)
- Pattern Editing and Block Fields: Highlight selected block (WordPress/gutenberg#74841)
- Menu: Fix `RadioItem` controlled checked state (WordPress/gutenberg#76041)
- Revert `word-break: break-word` addition (WordPress/gutenberg#76230)
- Fix: QuickEdit: consolidate how "Status > Scheduled" works  (WordPress/gutenberg#76129)
- Add experiment: render the editor inspector with DataForm (WordPress/gutenberg#76244)
- Fields: Hide `scheduledDateField` from the list and filters (WordPress/gutenberg#76247)
- DataForm: Add customizable button text to panel modal (WordPress/gutenberg#76099)
- Components: Add styles for outside days in Calendar components (WordPress/gutenberg#76199)
- Add Site Logo & Icon screen to Design panel (WordPress/gutenberg#76116)
- Tooltip: Change default placement from bottom to top (WordPress/gutenberg#76131)
- `@wordpress/ui`: add `Card` and `CollapsibleCard` components (WordPress/gutenberg#76252)
- Refactor admin-ui Page component to use @wordpress/theme tokens and @wordpress/ui layout primitive (WordPress/gutenberg#75963)
- RTC: Fix 'networkidle' and other e2e tests that are flaky (WordPress/gutenberg#76214)
- Move site editor preview CSS to boot package (WordPress/gutenberg#76211)
- Publish built Gutenberg plugin to the GitHub Container Registry (WordPress/gutenberg#75844)
- Scripts: Relax @wordpress/env peer dependency to allow newer versions (WordPress/gutenberg#76192)
- Connectors: Improve placeholder text and make it translatable (WordPress/gutenberg#75996)
- Block context menu: context menu not closing for disconnecting unsynced pattern menu items (WordPress/gutenberg#75405)
- UI Notice: let description and actions span icon column at narrow widths (WordPress/gutenberg#76202)
- Convert data package fully to TS (WordPress/gutenberg#76149)
- RTC updates: use apiFetch capabilities, allow nonce refresh (WordPress/gutenberg#76283)
- Interactivity: Make Window.scheduler required to match DOM lib (WordPress/gutenberg#76271)
- fix(block-library): use add_filter for filter hook (WordPress/gutenberg#76297)
- Add word-break property, update CHANGELOG, and update snapshots (WordPress/gutenberg#75539)
- Storybook: Redesign Icon library page (WordPress/gutenberg#76034)
- Connectors: Improve responsive layout for small viewports (WordPress/gutenberg#76231)
- Compose: Implement useCopyToClipboard and useCopyOnClick with native clipboard API (WordPress/gutenberg#75723)
- theme.json schema: fix pseudo-class definition for button block (WordPress/gutenberg#76272)
- Sync some post list changes with Extensible Site Editor (WordPress/gutenberg#76243)
- Only run label enforcement workflow on open PRs. (WordPress/gutenberg#76274)
- API Fetch: Respect caller-provided Content-Type in httpV1 middleware (WordPress/gutenberg#76285)
- Raw handling: fix shortcode conversion when separated by <br /> tags (WordPress/gutenberg#76213)
- Navigation block: fix submenu chevron toggle on touch devices (WordPress/gutenberg#76197)
- Core Data: Fix 'canUser' returning 'undefined' when the allow header is missing (WordPress/gutenberg#76307)
- Connectors: Show API key source for env vars and wp-config constants (WordPress/gutenberg#76266)
- Update block registration methods in documentation for WordPress 6.8+ (WordPress/gutenberg#76324)
- Theme: Document build plugins in README (WordPress/gutenberg#76003)
- Block Visibility: Add `fetchpriority=auto` to `IMG` tags in blocks with conditional viewport visibility to prevent potential erroneous high loading priority (WordPress/gutenberg#76302)
- Add primitive Text component to @wordpress/ui (WordPress/gutenberg#75870)
- Editor: Polish real-time collaboration presence UI and move Avatar to editor package (WordPress/gutenberg#75652)
- Navigation: Disable Mobile Menu in Isolated Editor or Site Editor Preview (WordPress/gutenberg#76203)
- Connectors: Show API key source for env vars and wp-config constants (WordPress/gutenberg#76266)
- Use V2 Yjs methods for HTTP Polling (WordPress/gutenberg#76304)
- Ensure consistent, repeatable build results when inlining WASM files via `wasmInlinePlugin`  (WordPress/gutenberg#76113)
- Account `IS_WORDPRESS_CORE` is set. (WordPress/gutenberg#76334)
- Navigation Editor: Allow any blocks to be inserted by gating contentOnly insertion rules to section blocks (WordPress/gutenberg#76189)
- Add `fetchpriority=low` to `IMG` tags in collapsed Details blocks (WordPress/gutenberg#76269)
- Content Guidelines: Add block guidelines management (WordPress/gutenberg#76187)
- Connectors: Add logo URL support for custom AI providers (WordPress/gutenberg#76190)
- Fields: Add `format` field (WordPress/gutenberg#76308)
- Cover Block: Add a playlist parameter to loop YouTube background videos. (WordPress/gutenberg#76004)
- Connectors: Memoize getConnectors selector (WordPress/gutenberg#76339)
- HTML Block: Fix broken layout (WordPress/gutenberg#76278)
- Tests: Skip connector logo URL tests when AI Client is unavailable (WordPress/gutenberg#76343)
- Navigation Overlay: Explicitly set fetchpriority for images (WordPress/gutenberg#76208)
- Fields: Add post content information field (WordPress/gutenberg#76309)
- Core Data: Treat single-item responses specially (WordPress/gutenberg#76318)
- Editor canvas iframe: use load event and default body element (WordPress/gutenberg#76314)
- Set placeholder to featured image field (WordPress/gutenberg#76342)
- Post Excerpt: Migrate to textAlign block support (WordPress/gutenberg#75860)
- Add Client-Side Navigation documentation to manifest and table of contents (WordPress/gutenberg#76351)
- Connectors: Move API key validation and masking to REST dispatch level (WordPress/gutenberg#76327)
- Connectors: Replace apiFetch with core-data store selectors (WordPress/gutenberg#76333)
- DataForm: Reduce `panel`'s dialog `min-width` (WordPress/gutenberg#76345)
- Do not sync local attributes (WordPress/gutenberg#76267)
- Storybook: Add basic accent color guidance. (WordPress/gutenberg#76340)
- Navigation link: add support to style current menu item via theme.json (WordPress/gutenberg#75736)
- Add `fetchpriority=low` to `IMG` tags in collapsed Accordion Item blocks (WordPress/gutenberg#76336)
- Add `Link` primitive to `@wordpress/ui` (WordPress/gutenberg#76013)
- wp-build: Stop bundling Core packages, generate prerequisites asset instead (WordPress/gutenberg#75987)
- Implement disconnection debounce after initial connection (WordPress/gutenberg#76114)
- DataViews Grid and Picker Grid: Add density option for gap between items (WordPress/gutenberg#75887)
- Guidelines: Add actions for Import, Export and Revisions of guidelines (WordPress/gutenberg#76155)
- Allow Post Content to be edited when 'Show template' is active and Post content is nested in a Template Part (WordPress/gutenberg#76305)
- Correct input of setIsLoading (WordPress/gutenberg#76381)
- Fix: Document Bar: Back button flickers (WordPress/gutenberg#76320)
- RTC: Move event hooks from editor to core-data (WordPress/gutenberg#76358)
- Page Parent: Change the default value of 'fieldValue' state (WordPress/gutenberg#76354)
- Core Data: Avoid stale values when in autosave payloads (WordPress/gutenberg#76337)
- fix(navigation): prevent right-justified submenu overflow in custom overlays (WordPress/gutenberg#76360)
- Core Data: Optimize revision selectors (WordPress/gutenberg#76043)
- Fix: Block pseudo-state styles incorrectly applied to default state (WordPress/gutenberg#76326)
- Add client-side navigation block with interactive features (WordPress/gutenberg#76331)
- Connectors: Add empty state when no connectors are registered (WordPress/gutenberg#76375)
- Storybook: Change the default font. (WordPress/gutenberg#76366)
- CI: Don't build release notes during plugin build workflow for WP Core sync (WordPress/gutenberg#76398)
- Add Router type export to @wordpress/route (WordPress/gutenberg#76139)
- Implement state UI for pseudo selectors on Global styles (WordPress/gutenberg#75627)
- Storybook: Rename "Components (Deprecated)" to "Deprecated" (WordPress/gutenberg#76362)
- Connectors: Add connectors registry for extensibility (WordPress/gutenberg#76364)
- Icons API: Support searching in labels; extend classes post-7.0 work (WordPress/gutenberg#75878)
- RTC: Add collaborator selection highlighting in rich text (WordPress/gutenberg#76107)
- Connectors: Add AI Experiments plugin callout with install/activate functionality (WordPress/gutenberg#76379)
- Add [Package] UI label to PR labeler config (WordPress/gutenberg#76411)
- Sync changes from `wp_enqueue_global_styles()` to Gutenberg override (WordPress/gutenberg#76127)
- [RTC] Fix performance regression on post save (WordPress/gutenberg#76370)
- Core Data: Add 'supportsPagination' flag for Font Collection entity (WordPress/gutenberg#76404)
- E2E Tests: Fix flaky autocomplete and mentions test (WordPress/gutenberg#76407)
- Media: Enable AVIF support for client-side uploads (WordPress/gutenberg#76371)
- Add backport changelog entry for WordPress/gutenberg#75878 (WordPress/gutenberg#76426)
- Editor: Show own presence in collaborative editing sessions (WordPress/gutenberg#76413)
- Connectors: Move plugin status computation to script module data (WordPress/gutenberg#76409)
- Navigation: Use the shared icon rendering functions for all navigation blocks (WordPress/gutenberg#76372)
- Simplify require statements for navigation files (WordPress/gutenberg#76373)
- Revisions: Skip rendered fields in REST API responses (WordPress/gutenberg#76347)
- E2E Tests: Add connector setup flow tests with test AI provider (WordPress/gutenberg#76433)
- Tabs: Restructure Tabs Menu and inner blocks (WordPress/gutenberg#75954)
- RTC: Place sync connection modal in front of popover (WordPress/gutenberg#76431)
- DataViews: Add border to sticky table headers (WordPress/gutenberg#76396)
- Connectors: Sync PHP code with WordPress Core (WordPress/gutenberg#76443)
- Disables anchor support for the Page Break block. (WordPress/gutenberg#76434)
- WP Admin: Update Connectors screen footer text for consistency. (WordPress/gutenberg#76382)
- Show spinner when replacing media via drag-and-drop in image, cover, and media-text blocks (WordPress/gutenberg#76245)
- E2E Tests: Add coverage for AI plugin callout banner on Connectors page (WordPress/gutenberg#76432)
- Update sync docs (WordPress/gutenberg#75972)
- RTC: Add preference for collaborator notifications (WordPress/gutenberg#76460)
- Fix "should undo bold" flaky test (WordPress/gutenberg#76464)
- Include AI tools disclosure in PR template (WordPress/gutenberg#76425)
- TimePicker: Clamp month day to valid day for month (WordPress/gutenberg#76400)
- Add isNavigationPostEditorKey symbol to fix menu display context (WordPress/gutenberg#76461)
- Fix: update the playlist-track file permissions from 755 to 644 (WordPress/gutenberg#76315)
- Theme_JSON: Prevent implicit coercion in `to_ruleset` (WordPress/gutenberg#76392)
- CI: Simplify strategy matrix in Build Gutenberg Plugin Zip workflow (WordPress/gutenberg#76435)
- Core Data: Fix selectors returning stale results for different 'per_page' queries (WordPress/gutenberg#76422)
- Fields: Add support for classic themes (WordPress/gutenberg#76441)
- TemplateContentPanel: fix useSelect warning (WordPress/gutenberg#76421)
- Tabs: Disable anchor support on Tab Menu Item (WordPress/gutenberg#76442)
- Core Data: Fix the list of properties persisted in autosaves (WordPress/gutenberg#76451)
- RTC: Fix error when entity record doesn't have 'meta' property (WordPress/gutenberg#76311)
- Navigation: Update close button size. (WordPress/gutenberg#76482)
- UI/Badge: Add border and neutral-strong background to `none` intent (WordPress/gutenberg#76356)
- Theme package: Add surface width design tokens (WordPress/gutenberg#76047)
- DataViews: Add spinner in `DataViewsLayout` in initial load of data (WordPress/gutenberg#76486)
- Fix: Rewrite the license check scripts to use Node's native module resolution (WordPress/gutenberg#75039)
- ESLint: Add `use-recommended-components` rule (WordPress/gutenberg#76222)
- Update Node version to v24 for flaky test reporter (WordPress/gutenberg#76492)
- ui/Card: increase padding, align with legacy Card (WordPress/gutenberg#76368)
- Docs: document controlled/uncontrolled prop naming conventions for `@wordpress/ui` (WordPress/gutenberg#76281)
- @wordpress/ui: add Collapsible component (WordPress/gutenberg#76280)
- CollapsibleCard: move trigger to the whole header (WordPress/gutenberg#76265)
- Link Picker: Use Homepage badge instead of Page if Homepage (WordPress/gutenberg#75929)
- RTC: Fix TypeError in areEditorStatesEqual when selection is undefined (WordPress/gutenberg#76163)
- Upgrade actionlint and run linting when composite actions are modified (WordPress/gutenberg#76503)
- Revisions: use useSubRegistry={false} to fix global store selectors (WordPress/gutenberg#76152)
- wp-env: Update JSON Schema with missing properties and add README docs (WordPress/gutenberg#76115)
- Patterns: add confirmation dialog before disconnecting/detaching (WordPress/gutenberg#75713)
- Page/Post Content Focus Mode: Fix insertion into Post Content block (WordPress/gutenberg#76477)
- Remove redundant onNavigateToEntityRecord filter and assignment (WordPress/gutenberg#76523)
- Feat: Block Library: Improve the design of MediaControlPreview and MediaControl (WordPress/gutenberg#76430)
- Add e2e test for date field in QuickEdit (WordPress/gutenberg#76528)
- Fix RTL styling on Connectors, Font Library, and boot-based admin pages (WordPress/gutenberg#76496)
- DataViews: Fix layout scrolling in constrained-height containers (WordPress/gutenberg#76453)
- Bump the github-actions group across 1 directory with 5 updates (WordPress/gutenberg#76530)
- RTC: Auto-register custom taxonomy rest_base values for CRDT sync (WordPress/gutenberg#75983)
- Modernize eslint-plugin rule APIs for ESLint v10 compatibility (WordPress/gutenberg#76507)
- Remove alexstine from codeowners (WordPress/gutenberg#76551)
- RTC: Add a limit for the default provider (WordPress/gutenberg#76437)
- Media Upload Modal: Try an uploading state with popover in the footer (WordPress/gutenberg#76228)
- Fix RTL styling on AI plugin callout banner (WordPress/gutenberg#76497)
- Add command palette trigger button to admin bar (WordPress/gutenberg#75757)
- Block Bindings: Remove source items constrained by enums (WordPress/gutenberg#76200)
- Connectors: Improve accessibility (WordPress/gutenberg#76456)
- Post Date: Migrate to textAlign block support (WordPress/gutenberg#75856)
- Dataviews: improve storybook infinite loading (WordPress/gutenberg#76566)
- HTML Block: Remove "unsaved changes" check (WordPress/gutenberg#76086)
- `CollapsibleCard`: add animations (WordPress/gutenberg#76378)
- Theme: Fix tags in Storybook (WordPress/gutenberg#76500)
- InputLayout.Slot: Forward className prop (WordPress/gutenberg#76459)
- Storybook: Upgrade to 10.2 (WordPress/gutenberg#76403)
- UI: Use `--wpds-cursor-control` design token (WordPress/gutenberg#76218)
- Media: Add hooks and extension points for client-side media processing (WordPress/gutenberg#74913)
- ESLint: Broaden `no-setting-ds-tokens` to all object property keys (WordPress/gutenberg#76212)
- Remove manual fallbacks from --wpds-* token usages in boot package (WordPress/gutenberg#76414)
- Fix token fallback plugins breaking JS strings with quoted font names (WordPress/gutenberg#76254)
- Connectors: Add unregisterConnector and upsert support (WordPress/gutenberg#76541)
- Add ExampleApplication story for ThemeProvider to better demonstrate component theme-ability (WordPress/gutenberg#76463)
- Admin UI: Add Storybook stories for Breadcrumbs and Page components (WordPress/gutenberg#76467)
- RTC: Fix list sidebar reset during real-time collaboration (WordPress/gutenberg#76025)
- Collapsible.Card: make contents hidden until found (WordPress/gutenberg#76498)
- Adopt surface-width design tokens for Dialog, Notice, and Modal widths (WordPress/gutenberg#76494)
- RTC: Fix CRDT serialization of nested RichText attributes (WordPress/gutenberg#76597)
- ESLint: Replace eslint-plugin-ssr-friendly with custom rules (WordPress/gutenberg#76508)
- Theme: Add `no-token-fallback-values` stylelint rule (WordPress/gutenberg#76415)
- ESLint: Add bare token check to `no-unknown-ds-tokens` (WordPress/gutenberg#76210)
- RTC: Remove post list lock icon and replace user-specific lock text (WordPress/gutenberg#76322)
- Fix HEIC upload error handling and sub-size format (WordPress/gutenberg#76514)
- RTC: Fix cursor index sync with rich text formatting (WordPress/gutenberg#76418)
- RTC: Allow filtering of `SyncConnectionModal` (WordPress/gutenberg#76554)
- RTC: Implement front-end peer limits (WordPress/gutenberg#76565)
- Content Guidelines: Rename route and use the right `Notice` component (WordPress/gutenberg#76427)
- Core Data: Fix per_page query logic for when offset is present in the query (WordPress/gutenberg#76613)
- useMediaQuery: support in-iframe queries via new `WindowContext` (WordPress/gutenberg#76446)
- Navigation overlay close button may be displayed twice (WordPress/gutenberg#76585)
- Fix script module dequeue race condition (WordPress/gutenberg#76170)
- Template field: match exactly the behavior of post template panel (WordPress/gutenberg#76596)
- Connectors: Fetch specific plugin instead of all plugins (WordPress/gutenberg#76594)
- Admin UI: update font size for title and breadcrumbs to match (WordPress/gutenberg#76452)
- Admin UI: Use hasPadding prop in Page stories instead of inline styles (WordPress/gutenberg#76601)
- Site Editor > Templates: fix author filter (WordPress/gutenberg#76625)
- Site Title Block: Fix preview display (WordPress/gutenberg#76614)
- Editor: Fix autosaves for draft and auto-draft posts (WordPress/gutenberg#76624)
- Revisions: Show changed block attributes in inspector sidebar (WordPress/gutenberg#76550)
- Fix IS_GUTENBERG_PLUGIN env var override in build config  (WordPress/gutenberg#76605)
- Loosen client-side media processing requirements (WordPress/gutenberg#76616)

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

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

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

The following commits are included:
- Add useBlocker to private APIs for enhanced routing control (WordPress/gutenberg#75687)
- Add components team as codeowners for components package (WordPress/gutenberg#75641)
- DataForm: Fix focus loss and refactor Card layout (WordPress/gutenberg#75689)
- Remove IS_GUTENBERG_PLUGIN checks for collaborative editing (WordPress/gutenberg#75699)
- RTC: Add cap check for single taxonomy term entities (WordPress/gutenberg#75708)
- Only show dot divider for parent selector in top toolbar (WordPress/gutenberg#75710)
- Re-enable Font Library e2e tests (WordPress/gutenberg#75712)
- Fix flaky Quick Edit e2e test (WordPress/gutenberg#75714)
- Post Navigation Link : Migrate to Text-Align Block Support (WordPress/gutenberg#75557)
- Add phpMyAdmin support to wp-env Playground runtime (WordPress/gutenberg#75532)
- wp-env: Enable pretty permalinks by default in Docker runtime (WordPress/gutenberg#75688)
- DataViews: fix spacing for title in patterns page (WordPress/gutenberg#75693)
- MediaEdit: Auto-fill columns based on minimum item width (WordPress/gutenberg#75509)
- Add Field and Fieldset details tests (WordPress/gutenberg#75696)
- UI: Update `@base-ui/react` from 1.0.0 to 1.2.0 (WordPress/gutenberg#75698)
- Theme: Add design token for interactive non-link elements (WordPress/gutenberg#75697)
- Media: Graduate client-side media processing from experimental (WordPress/gutenberg#75112)
- Remove experimental property from Icon block (WordPress/gutenberg#75742)
- Real-time collab editing: Fix undo E2E test (WordPress/gutenberg#75740)
- Snackbar: Fix scaling issue with snackbars that update their content via a common id (WordPress/gutenberg#75709)
- Vips and worker-threads packages: remove private flag so that packages can be published to npm (WordPress/gutenberg#75752)
- Update wordpress/vips in root package.json to use a relative path (WordPress/gutenberg#75758)
- Fix change-detection and new-post E2E tests after RTC enabled by default (WordPress/gutenberg#75751)
- Try fix failing patterns e2e test (WordPress/gutenberg#75759)
- Client-side media processing: Disable in Gutenberg just for now (WordPress/gutenberg#75756)
- Skip cross origin isolation e2e tests (WordPress/gutenberg#75764)
- Post featured image: Simplify background class assignment. (WordPress/gutenberg#75745)
- Block Editor: Avoid block removal when calling 'moveBlockToPosition' (WordPress/gutenberg#75728)
- Icon: Improve parameter documentation (WordPress/gutenberg#75768)
- Query: Remove content role from block (WordPress/gutenberg#75760)
- DataViews: Adjust column spacing in `table` layout when no titleField is provided (WordPress/gutenberg#75410)
- IconButton: Hide tooltip when truly disabled (WordPress/gutenberg#75754)
- `ToggleGroupControl`: Make unselected item color consistent across all variants (WordPress/gutenberg#75737)
- Center navigation preview content in preview pane (WordPress/gutenberg#75741)
- Real-time collaboration: Fix comment syncing on site editor (WordPress/gutenberg#75746)
- Navigation Overlay Close: Set Close as default text, rather than using a placeholder (WordPress/gutenberg#75692)
- Components: Refactor ColorPicker to preserve hue/saturation at achromatic colors (WordPress/gutenberg#75493)
- Icon-block: fix global-styles selectors (WordPress/gutenberg#75724)
- Revert "Try fix failing patterns e2e test (WordPress/gutenberg#75759)" (WordPress/gutenberg#75771)
- Theme: Add design token fallback generation (WordPress/gutenberg#75586)
- Core Data: Create icons entity (WordPress/gutenberg#75773)
- Workflows: Use pull_request_target for cherry-pick workflow (WordPress/gutenberg#75775)
- Revert "CI: Use http-get in Storybook check wait-on" (WordPress/gutenberg#75781)
- REST API: Make filter_wp_unique_filename() static to match core, plus avoid duplicate routes (WordPress/gutenberg#75782)
- Tabs: Remove custom state styling (WordPress/gutenberg#75731)
- Sort registry files by handle/ID. (WordPress/gutenberg#75755)
- Real-time Collaboration: Bug fix for CRDT user selection and add tests (WordPress/gutenberg#75075)
- Post Title : Migrate to Text-Align Block Support (WordPress/gutenberg#75629)
- Query Title: Migrate to Text-Align Block Support (WordPress/gutenberg#75802)
- Pattern Editing: Fix nested patterns/sections (WordPress/gutenberg#75772)
- Add core/icon block to theme.json schema (WordPress/gutenberg#75813)
- Changelog: Curate entries for GB 22.6.0 RC1 (WordPress/gutenberg#75738)
- QuickEdit: rename status label and remove extra labels in popup (WordPress/gutenberg#75824)
- BlockListBlock: fix crash when selectedProps are null (WordPress/gutenberg#75826)
- RTC: Updates from backport PR (WordPress/gutenberg#75711)
- Merge document meta into state map (WordPress/gutenberg#75830)
- NumberControl: merge two state reducers into one (WordPress/gutenberg#75822)
- Real-time collaboration: Remove block client IDs from Awareness, fix "Show Template" view (WordPress/gutenberg#75590)
- RTC: Fix entity save call / initial persistence. (WordPress/gutenberg#75841)
- Fix block editing modes not recomputing when isolated editor value changes (WordPress/gutenberg#75821)
- DataViews: Fix search input losing characters during debounce when externally synced (WordPress/gutenberg#75810)
- Synced patterns: Fix block editing mode of synced pattern content when nested in an unsynced pattern (WordPress/gutenberg#75818)
- Add wp_ prefix to real time collaberation option. (WordPress/gutenberg#75837)
- Block Support: Fix custom CSS not saved when style schema is not defined (WordPress/gutenberg#75797)
- Site Tagline : Migrate to Text-Align Block Support (WordPress/gutenberg#75690)
- Site Title : Migrate to Text-Align Block Support (WordPress/gutenberg#75551)
- Try enabling style variation transforms for blocks in contentOnly mode (WordPress/gutenberg#75761)
- Fix error when undoing newly added pattern (WordPress/gutenberg#75850)
- Block Editor: Invalid block selected style (WordPress/gutenberg#75796)
- Add e2e test for sorting patterns (WordPress/gutenberg#75823)
- Gallery: Fixes keyboard focus escaping the lightbox overlay when navigating a gallery with Tab/Shift+Tab. (WordPress/gutenberg#75852)
- wp-build: Do not remove Core's default script modules registration (WordPress/gutenberg#75705)
- Fix: Suppress spinner output when using --json flag in wp-env (WordPress/gutenberg#75743)
- Docs: Fix incorrect use of wp_interactivity_state in getServerState example (WordPress/gutenberg#75857)
- Env: Improve help screen (WordPress/gutenberg#75783)
- iAPI Docs: Introduce reactive vs non-reactive distinction early in the state/context guide (WordPress/gutenberg#75357)
- Fix client-side media file naming (WordPress/gutenberg#75817)
- Plugin: Include Icons assets in ZIP (WordPress/gutenberg#75866)
- Prevent CSS modules in build from breaking Jest tests (WordPress/gutenberg#75792)
- Bump the github-actions group across 2 directories with 7 updates (WordPress/gutenberg#75725)
- Re-enable client-side media processing (WordPress/gutenberg#75848)
- RTC: Fix undefined array_first() call in sync storage (WordPress/gutenberg#75869)
- Real-time collaboration: Improve collaboration within the same rich text (WordPress/gutenberg#75703)
- Media Thumbnail Field: Optimise image loading (WordPress/gutenberg#75811)
- Grid block: Improve Visualizer responsiveness (WordPress/gutenberg#75820)
- Custom CSS: Allow defining custom selector for this global styles feature (WordPress/gutenberg#75799)
- Fix DataForm card summary vertical alignment (WordPress/gutenberg#75864)
- Update README for DataViews, DataForm, Field API (WordPress/gutenberg#75881)
- Client Side Media: Add device/browser capability detection (WordPress/gutenberg#75863)
- Navigation editing: simplify edit/view buttons (WordPress/gutenberg#75819)
- DataViews: Remove menu divider again. (WordPress/gutenberg#75893)
- Page List Item: Replace RawHTML with dangerouslySetInnerHTML for label and title (WordPress/gutenberg#75890)
- Theme: Add build plugins to inject design token fallbacks (WordPress/gutenberg#75589)
- Cover block: Add e2e test coverage for bugfixes (WordPress/gutenberg#75483)
- Fix flaky template-revert e2e tests (WordPress/gutenberg#75894)
- Accordion: Remove Down Arrow, Up Arrow, Home, End naviagtion (WordPress/gutenberg#75891)
- Dialog: Add legacy z-index compatibility (WordPress/gutenberg#75874)
- Cover: Replace strpos() with str_contains() for improved readability (WordPress/gutenberg#75907)
- Block editor: Force LTR direction in block HTML editing mode (WordPress/gutenberg#75904)
- Navigation overlay: Prevent duplicate area registration (WordPress/gutenberg#75906)
- RichText: useAnchor: Fix TypeError in virtual element (WordPress/gutenberg#75900)
- Navigation: Extract NavigationLinkUI and NavigationListViewHeader into separate files (WordPress/gutenberg#75865)
- DataViews: minimize padding for primary action buttons (WordPress/gutenberg#75721)
- DataForm: fix label colors (WordPress/gutenberg#75730)
- ESLint: Add `no-ds-tokens` rule (WordPress/gutenberg#75872)
- Theme: Remove global stylesheet (WordPress/gutenberg#75879)
- Automated Testing: Merge reports into HTML artifact (WordPress/gutenberg#75633)
- wp-build: Deregister script modules before re-registering (WordPress/gutenberg#75909)
- Move WordPress meta key from sync package to core-data (WordPress/gutenberg#75846)
- Real-time collaboration: Remove ghost awareness state explicitly when refreshing (WordPress/gutenberg#75883)
- Bugfix: Fix casing of getPersistedCRDTDoc (WordPress/gutenberg#75922)
- Add: Connectors screen (WordPress/gutenberg#75833)
- Real-time collaboration: Expand mergeCrdtBlocks() automated testing (WordPress/gutenberg#75923)
- Add previews for style variation transforms (WordPress/gutenberg#75889)
- Convert focus on mount hook to TypeScript (WordPress/gutenberg#75442)
- Add debug logging to SyncManager (WordPress/gutenberg#75924)
- Show transform dropdown previews on focus as well as hover (WordPress/gutenberg#75940)
- Custom CSS: Prevent duplicate custom css styles (WordPress/gutenberg#75892)
- Docs: Correct parameter name `$content` for query title render function. (WordPress/gutenberg#75945)
- DataViews: Avoid flickering while refreshing (WordPress/gutenberg#74572)
- Connectors: Add `_ai_` prefix to connector setting names and fix naming inconsistencies (WordPress/gutenberg#75948)
- Connectors: Unhook Core callbacks in Gutenberg coexistence (WordPress/gutenberg#75935)
- Editor: Remove View dropdown and pinned items from revisions header (WordPress/gutenberg#75951)
- Unsynced patterns: Rename 'Disconnect pattern' to 'Detach pattern' in context menu (WordPress/gutenberg#75807)
- ui guidelines: add custom properties and disabled state guidance (WordPress/gutenberg#75912)
- Fix: Template revisions infinite spinner (WordPress/gutenberg#75953)
- Docs: Fix broken link to `autoRegister` block-supports (WordPress/gutenberg#75956)
- Add documentation for contentRole and listView block supports (WordPress/gutenberg#75903)
- Build: Clean top-level build/ directory during clean:packages (WordPress/gutenberg#75961)
- Interactivity Router: fix back and forward navigation after refresh (WordPress/gutenberg#75927)
- ESLint: Add no-i18n-in-save rule (WordPress/gutenberg#75617)
- Components: Specify line-height to avoid inheriting default values (WordPress/gutenberg#75880)
- Real-time collaboration: Fix disconnect dialog on navigate (WordPress/gutenberg#75886)
- Navigation: Remove internal 'useNavigationEntities' hook (WordPress/gutenberg#75943)
- Directly inject styles in overlay to make styles stay consistently mounted (WordPress/gutenberg#75700)
- Real Time Collab: Throttle syncing for inactive tabs. (WordPress/gutenberg#75843)
- Content Guidelines: Add experimental REST API and custom post type (WordPress/gutenberg#75164)
- Core Data: Simplify actions dispatched by 'canUser' resolver (WordPress/gutenberg#75974)
- Pattern Editing: Fix sibling blocks to edited pattern not being disabled (WordPress/gutenberg#75994)
- Sync connector PHP behavior with Core backport changes (WordPress/gutenberg#75968)
- Use the same context for font library tabs translations (WordPress/gutenberg#75930)
- Connectors: Avoid manual string concatenation (WordPress/gutenberg#75997)
- DataForm: fix field label for panel (should not be uppercase) (WordPress/gutenberg#75944)
- Unify block settings dropdown menu items across list views (WordPress/gutenberg#75979)
- Views: add support for more overrides (all developer-defined config) (WordPress/gutenberg#75971)
- Preserve note selection on browser tab switch (WordPress/gutenberg#75955)
- ESLint: Broaden `no-unknown-ds-tokens` to all strings and catch dynamic construction (WordPress/gutenberg#75905)
- Use homeUrl instead of siteUrl for link badge evaluations (WordPress/gutenberg#75978)
- Block Editor: Display custom block labels in Block Inspector and List View (WordPress/gutenberg#75607)
- DataViews: Fix focus transfer while searching in `list` layout (WordPress/gutenberg#75999)
- UI: Add Notice component (WordPress/gutenberg#75981)
- Playlist Block: Add WaveformPlayer visualization (WordPress/gutenberg#75203)
- DataViews: Right-align `integer` and `number` fields (WordPress/gutenberg#75917)
- Navigation Link: Compare internal links by host instead of origin (WordPress/gutenberg#76015)
- Bump the github-actions group across 2 directories with 3 updates (WordPress/gutenberg#76006)
- Block Supports: Define CSS vars for blocks based on feature selectors (WordPress/gutenberg#75226)
- Button: Migrate to width block support (WordPress/gutenberg#74242)
- Fix: Skip scaled image sideload for images below big image threshold (WordPress/gutenberg#75990)
- ToolsPanel: Remove unnecessary label prop from dropdownMenuProps type (WordPress/gutenberg#76027)
- Make inspector style transform previews consistent with toolbar transforms (WordPress/gutenberg#75989)
- Fix: Set quality and strip metadata in client-side image resize (WordPress/gutenberg#76029)
- Search block: double-encodes apostrophes in the input value (WordPress/gutenberg#76023)
- Post Title: Add placeholder attribute (WordPress/gutenberg#76016)
- wp-env: Add opt-in --auto-port flag for automatic port selection (WordPress/gutenberg#74472)
- RichText: useAnchor: Enable type checking, fix errors (WordPress/gutenberg#75910)
- DataForm: Fix `card` layout's toggle button screen reader text (WordPress/gutenberg#76039)
- [Real-time Collaboration] Fix sync issue on refresh (WordPress/gutenberg#76017)
- RTC: Fix syncing of emoji / surrogate pairs (WordPress/gutenberg#76049)
- InputLayout: Replace slot context with data attributes (WordPress/gutenberg#76011)
- RTC: Fix stale CRDT document persisted on save (WordPress/gutenberg#75975)
- Real-time collaboration: Improve disconnect dialog (WordPress/gutenberg#75970)
- Media Notices: Bump global snackbar z-index, re-use global notices for media modal (WordPress/gutenberg#76063)
- RTC: Prevent duplicate poll cycles (WordPress/gutenberg#76059)
- RTC: Disable multiple collaborators if meta boxes are present (WordPress/gutenberg#75939)
- DataViews: Fix filter toggle flickering when there are locked or primary filters (WordPress/gutenberg#75913)
- Revert global snackbar z-index bump, implement alternative fix for Media Upload Modal notices (WordPress/gutenberg#76067)
- DataViews: Improve UI in `list` layout when we render only title and/or media fields (WordPress/gutenberg#76042)
- `Button`: Add `word-break: break-word` (WordPress/gutenberg#76071)
- DataForm: Fix text overflow for long unhyphenated text in panel layout (WordPress/gutenberg#76073)
- Interactivity: Fix incomplete Window.scheduler type causing TS2430 (WordPress/gutenberg#76070)
- Connectors: Dynamically register providers from WP AI Client registry (WordPress/gutenberg#76014)
- Remove Core's full-page render interceptors for boot-based pages (WordPress/gutenberg#76036)
- PHP-only Blocks: Reflect bound attribute values in inspector controls (WordPress/gutenberg#76040)
- Admin UI: Fix type mismatch between Page title and NavigableRegion ariaLabel (WordPress/gutenberg#75899)
- Remove unused deps: wordpress/dom, wordpress/theme, wordpress/url (WordPress/gutenberg#76075)
- RTC: Fix fallthrough for sync update switch statement (WordPress/gutenberg#76060)
- Extract inserter-toggle mixin from duplicated button styles (WordPress/gutenberg#76087)
- RTC: Add session activity notifications (WordPress/gutenberg#76065)
- DateTimePicker: Fix day text wrapping (WordPress/gutenberg#76084)
- iAPI Docs: Add client-side navigation guide under "Core Concepts" (WordPress/gutenberg#75263)
- Move block css vars selectors backport changelog to correct WP version (WordPress/gutenberg#76102)
- Fix writing flow navigation for annotation style, or any other block with border radius (WordPress/gutenberg#76072)
- Block toolbar and context menu: hide pattern actions in Revisions UI (WordPress/gutenberg#76066)
- Prevent non-reproducible Sass/CSS builds. (WordPress/gutenberg#76098)
- Block toolbar: hide styles dropdown in Revisions UI (WordPress/gutenberg#76119)
- Image: Hide 'Set as featured image' for in-editor revisions (WordPress/gutenberg#76123)
- Image block: fix lightbox srcset size (WordPress/gutenberg#76092)
- DataViews: Fix last column classname in `table` layout (WordPress/gutenberg#76133)
- Data: Update documentation for global 'dispatch' and 'select' methods (WordPress/gutenberg#76134)
- Connectors: Gate unavailable install actions behind install capability (WordPress/gutenberg#75980)
- Auto Cherry-Pick: Fix race condition by using pull_request_target closed event (WordPress/gutenberg#76083)
- build: Exclude experimental pages from Core builds (WordPress/gutenberg#76038)
- Playlist: Move getTrackAttributes to utils (WordPress/gutenberg#76096)
- HTML & Shortcode: Disable viewport visibility support (WordPress/gutenberg#76138)
- Navigation: Allow creating new links in site editor sidebar List View (WordPress/gutenberg#75918)
- DataForm: Consolidate `date` and `datetime` input placement (WordPress/gutenberg#76136)
- Remove `! function_exists()` checks from PHP templates (WordPress/gutenberg#76062)
- Playlist: Clip content to respect border-radius (WordPress/gutenberg#76146)
- Connectors: Update page identifier to options-connectors (WordPress/gutenberg#76142)
- RTC: Verify client ID to avoid awareness mutation (WordPress/gutenberg#76056)
- Move backport changelog PR for Gutenberg WordPress/gutenberg#75746 to correct matching backport PR (WordPress/gutenberg#76154)
- Connectors: Align init hook priorities with Core overrides (WordPress/gutenberg#76161)
- Icons: Fix incorrect icon slug (WordPress/gutenberg#76074)
- Icon Block: Clean up selectors config (WordPress/gutenberg#75786)
- Add support for linting annotations and other static analysis workflow improvements (WordPress/gutenberg#76120)
- Bump the github-actions group across 2 directories with 1 update (WordPress/gutenberg#76144)
- Image: Replace 'getEntityRecordPermissions` with 'canUser' (WordPress/gutenberg#76125)
- RTC: Enable RTC by default (WordPress/gutenberg#75739)
- Fix backport changelog for WordPress/gutenberg#76060 (WordPress/gutenberg#76174)
- Rename and visibility modals: gate shortcuts behind canEditBlock to prevent triggering in revisions UI (WordPress/gutenberg#76168)
- Hide template part replace button when viewing revisions (WordPress/gutenberg#76169)
- Fix: Block style variations not rendering in Site Editor Patterns page (WordPress/gutenberg#76122)
- Content Guidelines: Add UX for site, copy, image, and internal guidelines (WordPress/gutenberg#75420)
- Client-side media processing: only use media upload provider when not in preview mode (WordPress/gutenberg#76124)
- Notes: Disable for in-editor revisions (WordPress/gutenberg#76180)
- Core Data: Support reading revision data in useEntityProp (fixes footnotes in revisions UI) (WordPress/gutenberg#76106)
- Client-side media processing: Try plumbing invalidation to the block-editor's mediaUpload onSuccess callback (WordPress/gutenberg#76173)
- Interactivity API: Fix router initialization race condition on Safari/Firefox (WordPress/gutenberg#76053)
- Connectors: Improve responsive layout on small screens (WordPress/gutenberg#76186)
- Interactivity: Fix crypto.randomUUID crash in non-secure contexts (WordPress/gutenberg#76151)
- Duotone: lazily load settings (WordPress/gutenberg#74748)
- Media: Use Document-Isolation-Policy for cross-origin isolation on Chromium 137+ (WordPress/gutenberg#75991)
- DataForm `datetime` control: fix date handling (WordPress/gutenberg#76193)
- Field.Label, Fieldset.Legend: Add `visuallyHidden` prop (WordPress/gutenberg#76052)
- Extensible Site Editor: Make canvas previews full height (WordPress/gutenberg#76201)
- Storybook: Deduplicate injected package stylesheets (WordPress/gutenberg#76158)
- Temp: Disable RTC in the site editor (WordPress/gutenberg#76223)
- Obey undoIgnore flag in editEntityRecord (WordPress/gutenberg#76206)
- RTC: Fix `post-editor-template-mode` E2E test (WordPress/gutenberg#76209)
- Pattern Editing and Block Fields: Highlight selected block (WordPress/gutenberg#74841)
- Menu: Fix `RadioItem` controlled checked state (WordPress/gutenberg#76041)
- Revert `word-break: break-word` addition (WordPress/gutenberg#76230)
- Fix: QuickEdit: consolidate how "Status > Scheduled" works  (WordPress/gutenberg#76129)
- Add experiment: render the editor inspector with DataForm (WordPress/gutenberg#76244)
- Fields: Hide `scheduledDateField` from the list and filters (WordPress/gutenberg#76247)
- DataForm: Add customizable button text to panel modal (WordPress/gutenberg#76099)
- Components: Add styles for outside days in Calendar components (WordPress/gutenberg#76199)
- Add Site Logo & Icon screen to Design panel (WordPress/gutenberg#76116)
- Tooltip: Change default placement from bottom to top (WordPress/gutenberg#76131)
- `@wordpress/ui`: add `Card` and `CollapsibleCard` components (WordPress/gutenberg#76252)
- Refactor admin-ui Page component to use @wordpress/theme tokens and @wordpress/ui layout primitive (WordPress/gutenberg#75963)
- RTC: Fix 'networkidle' and other e2e tests that are flaky (WordPress/gutenberg#76214)
- Move site editor preview CSS to boot package (WordPress/gutenberg#76211)
- Publish built Gutenberg plugin to the GitHub Container Registry (WordPress/gutenberg#75844)
- Scripts: Relax @wordpress/env peer dependency to allow newer versions (WordPress/gutenberg#76192)
- Connectors: Improve placeholder text and make it translatable (WordPress/gutenberg#75996)
- Block context menu: context menu not closing for disconnecting unsynced pattern menu items (WordPress/gutenberg#75405)
- UI Notice: let description and actions span icon column at narrow widths (WordPress/gutenberg#76202)
- Convert data package fully to TS (WordPress/gutenberg#76149)
- RTC updates: use apiFetch capabilities, allow nonce refresh (WordPress/gutenberg#76283)
- Interactivity: Make Window.scheduler required to match DOM lib (WordPress/gutenberg#76271)
- fix(block-library): use add_filter for filter hook (WordPress/gutenberg#76297)
- Add word-break property, update CHANGELOG, and update snapshots (WordPress/gutenberg#75539)
- Storybook: Redesign Icon library page (WordPress/gutenberg#76034)
- Connectors: Improve responsive layout for small viewports (WordPress/gutenberg#76231)
- Compose: Implement useCopyToClipboard and useCopyOnClick with native clipboard API (WordPress/gutenberg#75723)
- theme.json schema: fix pseudo-class definition for button block (WordPress/gutenberg#76272)
- Sync some post list changes with Extensible Site Editor (WordPress/gutenberg#76243)
- Only run label enforcement workflow on open PRs. (WordPress/gutenberg#76274)
- API Fetch: Respect caller-provided Content-Type in httpV1 middleware (WordPress/gutenberg#76285)
- Raw handling: fix shortcode conversion when separated by <br /> tags (WordPress/gutenberg#76213)
- Navigation block: fix submenu chevron toggle on touch devices (WordPress/gutenberg#76197)
- Core Data: Fix 'canUser' returning 'undefined' when the allow header is missing (WordPress/gutenberg#76307)
- Connectors: Show API key source for env vars and wp-config constants (WordPress/gutenberg#76266)
- Update block registration methods in documentation for WordPress 6.8+ (WordPress/gutenberg#76324)
- Theme: Document build plugins in README (WordPress/gutenberg#76003)
- Block Visibility: Add `fetchpriority=auto` to `IMG` tags in blocks with conditional viewport visibility to prevent potential erroneous high loading priority (WordPress/gutenberg#76302)
- Add primitive Text component to @wordpress/ui (WordPress/gutenberg#75870)
- Editor: Polish real-time collaboration presence UI and move Avatar to editor package (WordPress/gutenberg#75652)
- Navigation: Disable Mobile Menu in Isolated Editor or Site Editor Preview (WordPress/gutenberg#76203)
- Connectors: Show API key source for env vars and wp-config constants (WordPress/gutenberg#76266)
- Use V2 Yjs methods for HTTP Polling (WordPress/gutenberg#76304)
- Ensure consistent, repeatable build results when inlining WASM files via `wasmInlinePlugin`  (WordPress/gutenberg#76113)
- Account `IS_WORDPRESS_CORE` is set. (WordPress/gutenberg#76334)
- Navigation Editor: Allow any blocks to be inserted by gating contentOnly insertion rules to section blocks (WordPress/gutenberg#76189)
- Add `fetchpriority=low` to `IMG` tags in collapsed Details blocks (WordPress/gutenberg#76269)
- Content Guidelines: Add block guidelines management (WordPress/gutenberg#76187)
- Connectors: Add logo URL support for custom AI providers (WordPress/gutenberg#76190)
- Fields: Add `format` field (WordPress/gutenberg#76308)
- Cover Block: Add a playlist parameter to loop YouTube background videos. (WordPress/gutenberg#76004)
- Connectors: Memoize getConnectors selector (WordPress/gutenberg#76339)
- HTML Block: Fix broken layout (WordPress/gutenberg#76278)
- Tests: Skip connector logo URL tests when AI Client is unavailable (WordPress/gutenberg#76343)
- Navigation Overlay: Explicitly set fetchpriority for images (WordPress/gutenberg#76208)
- Fields: Add post content information field (WordPress/gutenberg#76309)
- Core Data: Treat single-item responses specially (WordPress/gutenberg#76318)
- Editor canvas iframe: use load event and default body element (WordPress/gutenberg#76314)
- Set placeholder to featured image field (WordPress/gutenberg#76342)
- Post Excerpt: Migrate to textAlign block support (WordPress/gutenberg#75860)
- Add Client-Side Navigation documentation to manifest and table of contents (WordPress/gutenberg#76351)
- Connectors: Move API key validation and masking to REST dispatch level (WordPress/gutenberg#76327)
- Connectors: Replace apiFetch with core-data store selectors (WordPress/gutenberg#76333)
- DataForm: Reduce `panel`'s dialog `min-width` (WordPress/gutenberg#76345)
- Do not sync local attributes (WordPress/gutenberg#76267)
- Storybook: Add basic accent color guidance. (WordPress/gutenberg#76340)
- Navigation link: add support to style current menu item via theme.json (WordPress/gutenberg#75736)
- Add `fetchpriority=low` to `IMG` tags in collapsed Accordion Item blocks (WordPress/gutenberg#76336)
- Add `Link` primitive to `@wordpress/ui` (WordPress/gutenberg#76013)
- wp-build: Stop bundling Core packages, generate prerequisites asset instead (WordPress/gutenberg#75987)
- Implement disconnection debounce after initial connection (WordPress/gutenberg#76114)
- DataViews Grid and Picker Grid: Add density option for gap between items (WordPress/gutenberg#75887)
- Guidelines: Add actions for Import, Export and Revisions of guidelines (WordPress/gutenberg#76155)
- Allow Post Content to be edited when 'Show template' is active and Post content is nested in a Template Part (WordPress/gutenberg#76305)
- Correct input of setIsLoading (WordPress/gutenberg#76381)
- Fix: Document Bar: Back button flickers (WordPress/gutenberg#76320)
- RTC: Move event hooks from editor to core-data (WordPress/gutenberg#76358)
- Page Parent: Change the default value of 'fieldValue' state (WordPress/gutenberg#76354)
- Core Data: Avoid stale values when in autosave payloads (WordPress/gutenberg#76337)
- fix(navigation): prevent right-justified submenu overflow in custom overlays (WordPress/gutenberg#76360)
- Core Data: Optimize revision selectors (WordPress/gutenberg#76043)
- Fix: Block pseudo-state styles incorrectly applied to default state (WordPress/gutenberg#76326)
- Add client-side navigation block with interactive features (WordPress/gutenberg#76331)
- Connectors: Add empty state when no connectors are registered (WordPress/gutenberg#76375)
- Storybook: Change the default font. (WordPress/gutenberg#76366)
- CI: Don't build release notes during plugin build workflow for WP Core sync (WordPress/gutenberg#76398)
- Add Router type export to @wordpress/route (WordPress/gutenberg#76139)
- Implement state UI for pseudo selectors on Global styles (WordPress/gutenberg#75627)
- Storybook: Rename "Components (Deprecated)" to "Deprecated" (WordPress/gutenberg#76362)
- Connectors: Add connectors registry for extensibility (WordPress/gutenberg#76364)
- Icons API: Support searching in labels; extend classes post-7.0 work (WordPress/gutenberg#75878)
- RTC: Add collaborator selection highlighting in rich text (WordPress/gutenberg#76107)
- Connectors: Add AI Experiments plugin callout with install/activate functionality (WordPress/gutenberg#76379)
- Add [Package] UI label to PR labeler config (WordPress/gutenberg#76411)
- Sync changes from `wp_enqueue_global_styles()` to Gutenberg override (WordPress/gutenberg#76127)
- [RTC] Fix performance regression on post save (WordPress/gutenberg#76370)
- Core Data: Add 'supportsPagination' flag for Font Collection entity (WordPress/gutenberg#76404)
- E2E Tests: Fix flaky autocomplete and mentions test (WordPress/gutenberg#76407)
- Media: Enable AVIF support for client-side uploads (WordPress/gutenberg#76371)
- Add backport changelog entry for WordPress/gutenberg#75878 (WordPress/gutenberg#76426)
- Editor: Show own presence in collaborative editing sessions (WordPress/gutenberg#76413)
- Connectors: Move plugin status computation to script module data (WordPress/gutenberg#76409)
- Navigation: Use the shared icon rendering functions for all navigation blocks (WordPress/gutenberg#76372)
- Simplify require statements for navigation files (WordPress/gutenberg#76373)
- Revisions: Skip rendered fields in REST API responses (WordPress/gutenberg#76347)
- E2E Tests: Add connector setup flow tests with test AI provider (WordPress/gutenberg#76433)
- Tabs: Restructure Tabs Menu and inner blocks (WordPress/gutenberg#75954)
- RTC: Place sync connection modal in front of popover (WordPress/gutenberg#76431)
- DataViews: Add border to sticky table headers (WordPress/gutenberg#76396)
- Connectors: Sync PHP code with WordPress Core (WordPress/gutenberg#76443)
- Disables anchor support for the Page Break block. (WordPress/gutenberg#76434)
- WP Admin: Update Connectors screen footer text for consistency. (WordPress/gutenberg#76382)
- Show spinner when replacing media via drag-and-drop in image, cover, and media-text blocks (WordPress/gutenberg#76245)
- E2E Tests: Add coverage for AI plugin callout banner on Connectors page (WordPress/gutenberg#76432)
- Update sync docs (WordPress/gutenberg#75972)
- RTC: Add preference for collaborator notifications (WordPress/gutenberg#76460)
- Fix "should undo bold" flaky test (WordPress/gutenberg#76464)
- Include AI tools disclosure in PR template (WordPress/gutenberg#76425)
- TimePicker: Clamp month day to valid day for month (WordPress/gutenberg#76400)
- Add isNavigationPostEditorKey symbol to fix menu display context (WordPress/gutenberg#76461)
- Fix: update the playlist-track file permissions from 755 to 644 (WordPress/gutenberg#76315)
- Theme_JSON: Prevent implicit coercion in `to_ruleset` (WordPress/gutenberg#76392)
- CI: Simplify strategy matrix in Build Gutenberg Plugin Zip workflow (WordPress/gutenberg#76435)
- Core Data: Fix selectors returning stale results for different 'per_page' queries (WordPress/gutenberg#76422)
- Fields: Add support for classic themes (WordPress/gutenberg#76441)
- TemplateContentPanel: fix useSelect warning (WordPress/gutenberg#76421)
- Tabs: Disable anchor support on Tab Menu Item (WordPress/gutenberg#76442)
- Core Data: Fix the list of properties persisted in autosaves (WordPress/gutenberg#76451)
- RTC: Fix error when entity record doesn't have 'meta' property (WordPress/gutenberg#76311)
- Navigation: Update close button size. (WordPress/gutenberg#76482)
- UI/Badge: Add border and neutral-strong background to `none` intent (WordPress/gutenberg#76356)
- Theme package: Add surface width design tokens (WordPress/gutenberg#76047)
- DataViews: Add spinner in `DataViewsLayout` in initial load of data (WordPress/gutenberg#76486)
- Fix: Rewrite the license check scripts to use Node's native module resolution (WordPress/gutenberg#75039)
- ESLint: Add `use-recommended-components` rule (WordPress/gutenberg#76222)
- Update Node version to v24 for flaky test reporter (WordPress/gutenberg#76492)
- ui/Card: increase padding, align with legacy Card (WordPress/gutenberg#76368)
- Docs: document controlled/uncontrolled prop naming conventions for `@wordpress/ui` (WordPress/gutenberg#76281)
- @wordpress/ui: add Collapsible component (WordPress/gutenberg#76280)
- CollapsibleCard: move trigger to the whole header (WordPress/gutenberg#76265)
- Link Picker: Use Homepage badge instead of Page if Homepage (WordPress/gutenberg#75929)
- RTC: Fix TypeError in areEditorStatesEqual when selection is undefined (WordPress/gutenberg#76163)
- Upgrade actionlint and run linting when composite actions are modified (WordPress/gutenberg#76503)
- Revisions: use useSubRegistry={false} to fix global store selectors (WordPress/gutenberg#76152)
- wp-env: Update JSON Schema with missing properties and add README docs (WordPress/gutenberg#76115)
- Patterns: add confirmation dialog before disconnecting/detaching (WordPress/gutenberg#75713)
- Page/Post Content Focus Mode: Fix insertion into Post Content block (WordPress/gutenberg#76477)
- Remove redundant onNavigateToEntityRecord filter and assignment (WordPress/gutenberg#76523)
- Feat: Block Library: Improve the design of MediaControlPreview and MediaControl (WordPress/gutenberg#76430)
- Add e2e test for date field in QuickEdit (WordPress/gutenberg#76528)
- Fix RTL styling on Connectors, Font Library, and boot-based admin pages (WordPress/gutenberg#76496)
- DataViews: Fix layout scrolling in constrained-height containers (WordPress/gutenberg#76453)
- Bump the github-actions group across 1 directory with 5 updates (WordPress/gutenberg#76530)
- RTC: Auto-register custom taxonomy rest_base values for CRDT sync (WordPress/gutenberg#75983)
- Modernize eslint-plugin rule APIs for ESLint v10 compatibility (WordPress/gutenberg#76507)
- Remove alexstine from codeowners (WordPress/gutenberg#76551)
- RTC: Add a limit for the default provider (WordPress/gutenberg#76437)
- Media Upload Modal: Try an uploading state with popover in the footer (WordPress/gutenberg#76228)
- Fix RTL styling on AI plugin callout banner (WordPress/gutenberg#76497)
- Add command palette trigger button to admin bar (WordPress/gutenberg#75757)
- Block Bindings: Remove source items constrained by enums (WordPress/gutenberg#76200)
- Connectors: Improve accessibility (WordPress/gutenberg#76456)
- Post Date: Migrate to textAlign block support (WordPress/gutenberg#75856)
- Dataviews: improve storybook infinite loading (WordPress/gutenberg#76566)
- HTML Block: Remove "unsaved changes" check (WordPress/gutenberg#76086)
- `CollapsibleCard`: add animations (WordPress/gutenberg#76378)
- Theme: Fix tags in Storybook (WordPress/gutenberg#76500)
- InputLayout.Slot: Forward className prop (WordPress/gutenberg#76459)
- Storybook: Upgrade to 10.2 (WordPress/gutenberg#76403)
- UI: Use `--wpds-cursor-control` design token (WordPress/gutenberg#76218)
- Media: Add hooks and extension points for client-side media processing (WordPress/gutenberg#74913)
- ESLint: Broaden `no-setting-ds-tokens` to all object property keys (WordPress/gutenberg#76212)
- Remove manual fallbacks from --wpds-* token usages in boot package (WordPress/gutenberg#76414)
- Fix token fallback plugins breaking JS strings with quoted font names (WordPress/gutenberg#76254)
- Connectors: Add unregisterConnector and upsert support (WordPress/gutenberg#76541)
- Add ExampleApplication story for ThemeProvider to better demonstrate component theme-ability (WordPress/gutenberg#76463)
- Admin UI: Add Storybook stories for Breadcrumbs and Page components (WordPress/gutenberg#76467)
- RTC: Fix list sidebar reset during real-time collaboration (WordPress/gutenberg#76025)
- Collapsible.Card: make contents hidden until found (WordPress/gutenberg#76498)
- Adopt surface-width design tokens for Dialog, Notice, and Modal widths (WordPress/gutenberg#76494)
- RTC: Fix CRDT serialization of nested RichText attributes (WordPress/gutenberg#76597)
- ESLint: Replace eslint-plugin-ssr-friendly with custom rules (WordPress/gutenberg#76508)
- Theme: Add `no-token-fallback-values` stylelint rule (WordPress/gutenberg#76415)
- ESLint: Add bare token check to `no-unknown-ds-tokens` (WordPress/gutenberg#76210)
- RTC: Remove post list lock icon and replace user-specific lock text (WordPress/gutenberg#76322)
- Fix HEIC upload error handling and sub-size format (WordPress/gutenberg#76514)
- RTC: Fix cursor index sync with rich text formatting (WordPress/gutenberg#76418)
- RTC: Allow filtering of `SyncConnectionModal` (WordPress/gutenberg#76554)
- RTC: Implement front-end peer limits (WordPress/gutenberg#76565)
- Content Guidelines: Rename route and use the right `Notice` component (WordPress/gutenberg#76427)
- Core Data: Fix per_page query logic for when offset is present in the query (WordPress/gutenberg#76613)
- useMediaQuery: support in-iframe queries via new `WindowContext` (WordPress/gutenberg#76446)
- Navigation overlay close button may be displayed twice (WordPress/gutenberg#76585)
- Fix script module dequeue race condition (WordPress/gutenberg#76170)
- Template field: match exactly the behavior of post template panel (WordPress/gutenberg#76596)
- Connectors: Fetch specific plugin instead of all plugins (WordPress/gutenberg#76594)
- Admin UI: update font size for title and breadcrumbs to match (WordPress/gutenberg#76452)
- Admin UI: Use hasPadding prop in Page stories instead of inline styles (WordPress/gutenberg#76601)
- Site Editor > Templates: fix author filter (WordPress/gutenberg#76625)
- Site Title Block: Fix preview display (WordPress/gutenberg#76614)
- Editor: Fix autosaves for draft and auto-draft posts (WordPress/gutenberg#76624)
- Revisions: Show changed block attributes in inspector sidebar (WordPress/gutenberg#76550)
- Fix IS_GUTENBERG_PLUGIN env var override in build config  (WordPress/gutenberg#76605)
- Loosen client-side media processing requirements (WordPress/gutenberg#76616)

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


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

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

The following commits are included:
- Add useBlocker to private APIs for enhanced routing control (WordPress/gutenberg#75687)
- Add components team as codeowners for components package (WordPress/gutenberg#75641)
- DataForm: Fix focus loss and refactor Card layout (WordPress/gutenberg#75689)
- Remove IS_GUTENBERG_PLUGIN checks for collaborative editing (WordPress/gutenberg#75699)
- RTC: Add cap check for single taxonomy term entities (WordPress/gutenberg#75708)
- Only show dot divider for parent selector in top toolbar (WordPress/gutenberg#75710)
- Re-enable Font Library e2e tests (WordPress/gutenberg#75712)
- Fix flaky Quick Edit e2e test (WordPress/gutenberg#75714)
- Post Navigation Link : Migrate to Text-Align Block Support (WordPress/gutenberg#75557)
- Add phpMyAdmin support to wp-env Playground runtime (WordPress/gutenberg#75532)
- wp-env: Enable pretty permalinks by default in Docker runtime (WordPress/gutenberg#75688)
- DataViews: fix spacing for title in patterns page (WordPress/gutenberg#75693)
- MediaEdit: Auto-fill columns based on minimum item width (WordPress/gutenberg#75509)
- Add Field and Fieldset details tests (WordPress/gutenberg#75696)
- UI: Update `@base-ui/react` from 1.0.0 to 1.2.0 (WordPress/gutenberg#75698)
- Theme: Add design token for interactive non-link elements (WordPress/gutenberg#75697)
- Media: Graduate client-side media processing from experimental (WordPress/gutenberg#75112)
- Remove experimental property from Icon block (WordPress/gutenberg#75742)
- Real-time collab editing: Fix undo E2E test (WordPress/gutenberg#75740)
- Snackbar: Fix scaling issue with snackbars that update their content via a common id (WordPress/gutenberg#75709)
- Vips and worker-threads packages: remove private flag so that packages can be published to npm (WordPress/gutenberg#75752)
- Update wordpress/vips in root package.json to use a relative path (WordPress/gutenberg#75758)
- Fix change-detection and new-post E2E tests after RTC enabled by default (WordPress/gutenberg#75751)
- Try fix failing patterns e2e test (WordPress/gutenberg#75759)
- Client-side media processing: Disable in Gutenberg just for now (WordPress/gutenberg#75756)
- Skip cross origin isolation e2e tests (WordPress/gutenberg#75764)
- Post featured image: Simplify background class assignment. (WordPress/gutenberg#75745)
- Block Editor: Avoid block removal when calling 'moveBlockToPosition' (WordPress/gutenberg#75728)
- Icon: Improve parameter documentation (WordPress/gutenberg#75768)
- Query: Remove content role from block (WordPress/gutenberg#75760)
- DataViews: Adjust column spacing in `table` layout when no titleField is provided (WordPress/gutenberg#75410)
- IconButton: Hide tooltip when truly disabled (WordPress/gutenberg#75754)
- `ToggleGroupControl`: Make unselected item color consistent across all variants (WordPress/gutenberg#75737)
- Center navigation preview content in preview pane (WordPress/gutenberg#75741)
- Real-time collaboration: Fix comment syncing on site editor (WordPress/gutenberg#75746)
- Navigation Overlay Close: Set Close as default text, rather than using a placeholder (WordPress/gutenberg#75692)
- Components: Refactor ColorPicker to preserve hue/saturation at achromatic colors (WordPress/gutenberg#75493)
- Icon-block: fix global-styles selectors (WordPress/gutenberg#75724)
- Revert "Try fix failing patterns e2e test (WordPress/gutenberg#75759)" (WordPress/gutenberg#75771)
- Theme: Add design token fallback generation (WordPress/gutenberg#75586)
- Core Data: Create icons entity (WordPress/gutenberg#75773)
- Workflows: Use pull_request_target for cherry-pick workflow (WordPress/gutenberg#75775)
- Revert "CI: Use http-get in Storybook check wait-on" (WordPress/gutenberg#75781)
- REST API: Make filter_wp_unique_filename() static to match core, plus avoid duplicate routes (WordPress/gutenberg#75782)
- Tabs: Remove custom state styling (WordPress/gutenberg#75731)
- Sort registry files by handle/ID. (WordPress/gutenberg#75755)
- Real-time Collaboration: Bug fix for CRDT user selection and add tests (WordPress/gutenberg#75075)
- Post Title : Migrate to Text-Align Block Support (WordPress/gutenberg#75629)
- Query Title: Migrate to Text-Align Block Support (WordPress/gutenberg#75802)
- Pattern Editing: Fix nested patterns/sections (WordPress/gutenberg#75772)
- Add core/icon block to theme.json schema (WordPress/gutenberg#75813)
- Changelog: Curate entries for GB 22.6.0 RC1 (WordPress/gutenberg#75738)
- QuickEdit: rename status label and remove extra labels in popup (WordPress/gutenberg#75824)
- BlockListBlock: fix crash when selectedProps are null (WordPress/gutenberg#75826)
- RTC: Updates from backport PR (WordPress/gutenberg#75711)
- Merge document meta into state map (WordPress/gutenberg#75830)
- NumberControl: merge two state reducers into one (WordPress/gutenberg#75822)
- Real-time collaboration: Remove block client IDs from Awareness, fix "Show Template" view (WordPress/gutenberg#75590)
- RTC: Fix entity save call / initial persistence. (WordPress/gutenberg#75841)
- Fix block editing modes not recomputing when isolated editor value changes (WordPress/gutenberg#75821)
- DataViews: Fix search input losing characters during debounce when externally synced (WordPress/gutenberg#75810)
- Synced patterns: Fix block editing mode of synced pattern content when nested in an unsynced pattern (WordPress/gutenberg#75818)
- Add wp_ prefix to real time collaberation option. (WordPress/gutenberg#75837)
- Block Support: Fix custom CSS not saved when style schema is not defined (WordPress/gutenberg#75797)
- Site Tagline : Migrate to Text-Align Block Support (WordPress/gutenberg#75690)
- Site Title : Migrate to Text-Align Block Support (WordPress/gutenberg#75551)
- Try enabling style variation transforms for blocks in contentOnly mode (WordPress/gutenberg#75761)
- Fix error when undoing newly added pattern (WordPress/gutenberg#75850)
- Block Editor: Invalid block selected style (WordPress/gutenberg#75796)
- Add e2e test for sorting patterns (WordPress/gutenberg#75823)
- Gallery: Fixes keyboard focus escaping the lightbox overlay when navigating a gallery with Tab/Shift+Tab. (WordPress/gutenberg#75852)
- wp-build: Do not remove Core's default script modules registration (WordPress/gutenberg#75705)
- Fix: Suppress spinner output when using --json flag in wp-env (WordPress/gutenberg#75743)
- Docs: Fix incorrect use of wp_interactivity_state in getServerState example (WordPress/gutenberg#75857)
- Env: Improve help screen (WordPress/gutenberg#75783)
- iAPI Docs: Introduce reactive vs non-reactive distinction early in the state/context guide (WordPress/gutenberg#75357)
- Fix client-side media file naming (WordPress/gutenberg#75817)
- Plugin: Include Icons assets in ZIP (WordPress/gutenberg#75866)
- Prevent CSS modules in build from breaking Jest tests (WordPress/gutenberg#75792)
- Bump the github-actions group across 2 directories with 7 updates (WordPress/gutenberg#75725)
- Re-enable client-side media processing (WordPress/gutenberg#75848)
- RTC: Fix undefined array_first() call in sync storage (WordPress/gutenberg#75869)
- Real-time collaboration: Improve collaboration within the same rich text (WordPress/gutenberg#75703)
- Media Thumbnail Field: Optimise image loading (WordPress/gutenberg#75811)
- Grid block: Improve Visualizer responsiveness (WordPress/gutenberg#75820)
- Custom CSS: Allow defining custom selector for this global styles feature (WordPress/gutenberg#75799)
- Fix DataForm card summary vertical alignment (WordPress/gutenberg#75864)
- Update README for DataViews, DataForm, Field API (WordPress/gutenberg#75881)
- Client Side Media: Add device/browser capability detection (WordPress/gutenberg#75863)
- Navigation editing: simplify edit/view buttons (WordPress/gutenberg#75819)
- DataViews: Remove menu divider again. (WordPress/gutenberg#75893)
- Page List Item: Replace RawHTML with dangerouslySetInnerHTML for label and title (WordPress/gutenberg#75890)
- Theme: Add build plugins to inject design token fallbacks (WordPress/gutenberg#75589)
- Cover block: Add e2e test coverage for bugfixes (WordPress/gutenberg#75483)
- Fix flaky template-revert e2e tests (WordPress/gutenberg#75894)
- Accordion: Remove Down Arrow, Up Arrow, Home, End naviagtion (WordPress/gutenberg#75891)
- Dialog: Add legacy z-index compatibility (WordPress/gutenberg#75874)
- Cover: Replace strpos() with str_contains() for improved readability (WordPress/gutenberg#75907)
- Block editor: Force LTR direction in block HTML editing mode (WordPress/gutenberg#75904)
- Navigation overlay: Prevent duplicate area registration (WordPress/gutenberg#75906)
- RichText: useAnchor: Fix TypeError in virtual element (WordPress/gutenberg#75900)
- Navigation: Extract NavigationLinkUI and NavigationListViewHeader into separate files (WordPress/gutenberg#75865)
- DataViews: minimize padding for primary action buttons (WordPress/gutenberg#75721)
- DataForm: fix label colors (WordPress/gutenberg#75730)
- ESLint: Add `no-ds-tokens` rule (WordPress/gutenberg#75872)
- Theme: Remove global stylesheet (WordPress/gutenberg#75879)
- Automated Testing: Merge reports into HTML artifact (WordPress/gutenberg#75633)
- wp-build: Deregister script modules before re-registering (WordPress/gutenberg#75909)
- Move WordPress meta key from sync package to core-data (WordPress/gutenberg#75846)
- Real-time collaboration: Remove ghost awareness state explicitly when refreshing (WordPress/gutenberg#75883)
- Bugfix: Fix casing of getPersistedCRDTDoc (WordPress/gutenberg#75922)
- Add: Connectors screen (WordPress/gutenberg#75833)
- Real-time collaboration: Expand mergeCrdtBlocks() automated testing (WordPress/gutenberg#75923)
- Add previews for style variation transforms (WordPress/gutenberg#75889)
- Convert focus on mount hook to TypeScript (WordPress/gutenberg#75442)
- Add debug logging to SyncManager (WordPress/gutenberg#75924)
- Show transform dropdown previews on focus as well as hover (WordPress/gutenberg#75940)
- Custom CSS: Prevent duplicate custom css styles (WordPress/gutenberg#75892)
- Docs: Correct parameter name `$content` for query title render function. (WordPress/gutenberg#75945)
- DataViews: Avoid flickering while refreshing (WordPress/gutenberg#74572)
- Connectors: Add `_ai_` prefix to connector setting names and fix naming inconsistencies (WordPress/gutenberg#75948)
- Connectors: Unhook Core callbacks in Gutenberg coexistence (WordPress/gutenberg#75935)
- Editor: Remove View dropdown and pinned items from revisions header (WordPress/gutenberg#75951)
- Unsynced patterns: Rename 'Disconnect pattern' to 'Detach pattern' in context menu (WordPress/gutenberg#75807)
- ui guidelines: add custom properties and disabled state guidance (WordPress/gutenberg#75912)
- Fix: Template revisions infinite spinner (WordPress/gutenberg#75953)
- Docs: Fix broken link to `autoRegister` block-supports (WordPress/gutenberg#75956)
- Add documentation for contentRole and listView block supports (WordPress/gutenberg#75903)
- Build: Clean top-level build/ directory during clean:packages (WordPress/gutenberg#75961)
- Interactivity Router: fix back and forward navigation after refresh (WordPress/gutenberg#75927)
- ESLint: Add no-i18n-in-save rule (WordPress/gutenberg#75617)
- Components: Specify line-height to avoid inheriting default values (WordPress/gutenberg#75880)
- Real-time collaboration: Fix disconnect dialog on navigate (WordPress/gutenberg#75886)
- Navigation: Remove internal 'useNavigationEntities' hook (WordPress/gutenberg#75943)
- Directly inject styles in overlay to make styles stay consistently mounted (WordPress/gutenberg#75700)
- Real Time Collab: Throttle syncing for inactive tabs. (WordPress/gutenberg#75843)
- Content Guidelines: Add experimental REST API and custom post type (WordPress/gutenberg#75164)
- Core Data: Simplify actions dispatched by 'canUser' resolver (WordPress/gutenberg#75974)
- Pattern Editing: Fix sibling blocks to edited pattern not being disabled (WordPress/gutenberg#75994)
- Sync connector PHP behavior with Core backport changes (WordPress/gutenberg#75968)
- Use the same context for font library tabs translations (WordPress/gutenberg#75930)
- Connectors: Avoid manual string concatenation (WordPress/gutenberg#75997)
- DataForm: fix field label for panel (should not be uppercase) (WordPress/gutenberg#75944)
- Unify block settings dropdown menu items across list views (WordPress/gutenberg#75979)
- Views: add support for more overrides (all developer-defined config) (WordPress/gutenberg#75971)
- Preserve note selection on browser tab switch (WordPress/gutenberg#75955)
- ESLint: Broaden `no-unknown-ds-tokens` to all strings and catch dynamic construction (WordPress/gutenberg#75905)
- Use homeUrl instead of siteUrl for link badge evaluations (WordPress/gutenberg#75978)
- Block Editor: Display custom block labels in Block Inspector and List View (WordPress/gutenberg#75607)
- DataViews: Fix focus transfer while searching in `list` layout (WordPress/gutenberg#75999)
- UI: Add Notice component (WordPress/gutenberg#75981)
- Playlist Block: Add WaveformPlayer visualization (WordPress/gutenberg#75203)
- DataViews: Right-align `integer` and `number` fields (WordPress/gutenberg#75917)
- Navigation Link: Compare internal links by host instead of origin (WordPress/gutenberg#76015)
- Bump the github-actions group across 2 directories with 3 updates (WordPress/gutenberg#76006)
- Block Supports: Define CSS vars for blocks based on feature selectors (WordPress/gutenberg#75226)
- Button: Migrate to width block support (WordPress/gutenberg#74242)
- Fix: Skip scaled image sideload for images below big image threshold (WordPress/gutenberg#75990)
- ToolsPanel: Remove unnecessary label prop from dropdownMenuProps type (WordPress/gutenberg#76027)
- Make inspector style transform previews consistent with toolbar transforms (WordPress/gutenberg#75989)
- Fix: Set quality and strip metadata in client-side image resize (WordPress/gutenberg#76029)
- Search block: double-encodes apostrophes in the input value (WordPress/gutenberg#76023)
- Post Title: Add placeholder attribute (WordPress/gutenberg#76016)
- wp-env: Add opt-in --auto-port flag for automatic port selection (WordPress/gutenberg#74472)
- RichText: useAnchor: Enable type checking, fix errors (WordPress/gutenberg#75910)
- DataForm: Fix `card` layout's toggle button screen reader text (WordPress/gutenberg#76039)
- [Real-time Collaboration] Fix sync issue on refresh (WordPress/gutenberg#76017)
- RTC: Fix syncing of emoji / surrogate pairs (WordPress/gutenberg#76049)
- InputLayout: Replace slot context with data attributes (WordPress/gutenberg#76011)
- RTC: Fix stale CRDT document persisted on save (WordPress/gutenberg#75975)
- Real-time collaboration: Improve disconnect dialog (WordPress/gutenberg#75970)
- Media Notices: Bump global snackbar z-index, re-use global notices for media modal (WordPress/gutenberg#76063)
- RTC: Prevent duplicate poll cycles (WordPress/gutenberg#76059)
- RTC: Disable multiple collaborators if meta boxes are present (WordPress/gutenberg#75939)
- DataViews: Fix filter toggle flickering when there are locked or primary filters (WordPress/gutenberg#75913)
- Revert global snackbar z-index bump, implement alternative fix for Media Upload Modal notices (WordPress/gutenberg#76067)
- DataViews: Improve UI in `list` layout when we render only title and/or media fields (WordPress/gutenberg#76042)
- `Button`: Add `word-break: break-word` (WordPress/gutenberg#76071)
- DataForm: Fix text overflow for long unhyphenated text in panel layout (WordPress/gutenberg#76073)
- Interactivity: Fix incomplete Window.scheduler type causing TS2430 (WordPress/gutenberg#76070)
- Connectors: Dynamically register providers from WP AI Client registry (WordPress/gutenberg#76014)
- Remove Core's full-page render interceptors for boot-based pages (WordPress/gutenberg#76036)
- PHP-only Blocks: Reflect bound attribute values in inspector controls (WordPress/gutenberg#76040)
- Admin UI: Fix type mismatch between Page title and NavigableRegion ariaLabel (WordPress/gutenberg#75899)
- Remove unused deps: wordpress/dom, wordpress/theme, wordpress/url (WordPress/gutenberg#76075)
- RTC: Fix fallthrough for sync update switch statement (WordPress/gutenberg#76060)
- Extract inserter-toggle mixin from duplicated button styles (WordPress/gutenberg#76087)
- RTC: Add session activity notifications (WordPress/gutenberg#76065)
- DateTimePicker: Fix day text wrapping (WordPress/gutenberg#76084)
- iAPI Docs: Add client-side navigation guide under "Core Concepts" (WordPress/gutenberg#75263)
- Move block css vars selectors backport changelog to correct WP version (WordPress/gutenberg#76102)
- Fix writing flow navigation for annotation style, or any other block with border radius (WordPress/gutenberg#76072)
- Block toolbar and context menu: hide pattern actions in Revisions UI (WordPress/gutenberg#76066)
- Prevent non-reproducible Sass/CSS builds. (WordPress/gutenberg#76098)
- Block toolbar: hide styles dropdown in Revisions UI (WordPress/gutenberg#76119)
- Image: Hide 'Set as featured image' for in-editor revisions (WordPress/gutenberg#76123)
- Image block: fix lightbox srcset size (WordPress/gutenberg#76092)
- DataViews: Fix last column classname in `table` layout (WordPress/gutenberg#76133)
- Data: Update documentation for global 'dispatch' and 'select' methods (WordPress/gutenberg#76134)
- Connectors: Gate unavailable install actions behind install capability (WordPress/gutenberg#75980)
- Auto Cherry-Pick: Fix race condition by using pull_request_target closed event (WordPress/gutenberg#76083)
- build: Exclude experimental pages from Core builds (WordPress/gutenberg#76038)
- Playlist: Move getTrackAttributes to utils (WordPress/gutenberg#76096)
- HTML & Shortcode: Disable viewport visibility support (WordPress/gutenberg#76138)
- Navigation: Allow creating new links in site editor sidebar List View (WordPress/gutenberg#75918)
- DataForm: Consolidate `date` and `datetime` input placement (WordPress/gutenberg#76136)
- Remove `! function_exists()` checks from PHP templates (WordPress/gutenberg#76062)
- Playlist: Clip content to respect border-radius (WordPress/gutenberg#76146)
- Connectors: Update page identifier to options-connectors (WordPress/gutenberg#76142)
- RTC: Verify client ID to avoid awareness mutation (WordPress/gutenberg#76056)
- Move backport changelog PR for Gutenberg WordPress/gutenberg#75746 to correct matching backport PR (WordPress/gutenberg#76154)
- Connectors: Align init hook priorities with Core overrides (WordPress/gutenberg#76161)
- Icons: Fix incorrect icon slug (WordPress/gutenberg#76074)
- Icon Block: Clean up selectors config (WordPress/gutenberg#75786)
- Add support for linting annotations and other static analysis workflow improvements (WordPress/gutenberg#76120)
- Bump the github-actions group across 2 directories with 1 update (WordPress/gutenberg#76144)
- Image: Replace 'getEntityRecordPermissions` with 'canUser' (WordPress/gutenberg#76125)
- RTC: Enable RTC by default (WordPress/gutenberg#75739)
- Fix backport changelog for WordPress/gutenberg#76060 (WordPress/gutenberg#76174)
- Rename and visibility modals: gate shortcuts behind canEditBlock to prevent triggering in revisions UI (WordPress/gutenberg#76168)
- Hide template part replace button when viewing revisions (WordPress/gutenberg#76169)
- Fix: Block style variations not rendering in Site Editor Patterns page (WordPress/gutenberg#76122)
- Content Guidelines: Add UX for site, copy, image, and internal guidelines (WordPress/gutenberg#75420)
- Client-side media processing: only use media upload provider when not in preview mode (WordPress/gutenberg#76124)
- Notes: Disable for in-editor revisions (WordPress/gutenberg#76180)
- Core Data: Support reading revision data in useEntityProp (fixes footnotes in revisions UI) (WordPress/gutenberg#76106)
- Client-side media processing: Try plumbing invalidation to the block-editor's mediaUpload onSuccess callback (WordPress/gutenberg#76173)
- Interactivity API: Fix router initialization race condition on Safari/Firefox (WordPress/gutenberg#76053)
- Connectors: Improve responsive layout on small screens (WordPress/gutenberg#76186)
- Interactivity: Fix crypto.randomUUID crash in non-secure contexts (WordPress/gutenberg#76151)
- Duotone: lazily load settings (WordPress/gutenberg#74748)
- Media: Use Document-Isolation-Policy for cross-origin isolation on Chromium 137+ (WordPress/gutenberg#75991)
- DataForm `datetime` control: fix date handling (WordPress/gutenberg#76193)
- Field.Label, Fieldset.Legend: Add `visuallyHidden` prop (WordPress/gutenberg#76052)
- Extensible Site Editor: Make canvas previews full height (WordPress/gutenberg#76201)
- Storybook: Deduplicate injected package stylesheets (WordPress/gutenberg#76158)
- Temp: Disable RTC in the site editor (WordPress/gutenberg#76223)
- Obey undoIgnore flag in editEntityRecord (WordPress/gutenberg#76206)
- RTC: Fix `post-editor-template-mode` E2E test (WordPress/gutenberg#76209)
- Pattern Editing and Block Fields: Highlight selected block (WordPress/gutenberg#74841)
- Menu: Fix `RadioItem` controlled checked state (WordPress/gutenberg#76041)
- Revert `word-break: break-word` addition (WordPress/gutenberg#76230)
- Fix: QuickEdit: consolidate how "Status > Scheduled" works  (WordPress/gutenberg#76129)
- Add experiment: render the editor inspector with DataForm (WordPress/gutenberg#76244)
- Fields: Hide `scheduledDateField` from the list and filters (WordPress/gutenberg#76247)
- DataForm: Add customizable button text to panel modal (WordPress/gutenberg#76099)
- Components: Add styles for outside days in Calendar components (WordPress/gutenberg#76199)
- Add Site Logo & Icon screen to Design panel (WordPress/gutenberg#76116)
- Tooltip: Change default placement from bottom to top (WordPress/gutenberg#76131)
- `@wordpress/ui`: add `Card` and `CollapsibleCard` components (WordPress/gutenberg#76252)
- Refactor admin-ui Page component to use @wordpress/theme tokens and @wordpress/ui layout primitive (WordPress/gutenberg#75963)
- RTC: Fix 'networkidle' and other e2e tests that are flaky (WordPress/gutenberg#76214)
- Move site editor preview CSS to boot package (WordPress/gutenberg#76211)
- Publish built Gutenberg plugin to the GitHub Container Registry (WordPress/gutenberg#75844)
- Scripts: Relax @wordpress/env peer dependency to allow newer versions (WordPress/gutenberg#76192)
- Connectors: Improve placeholder text and make it translatable (WordPress/gutenberg#75996)
- Block context menu: context menu not closing for disconnecting unsynced pattern menu items (WordPress/gutenberg#75405)
- UI Notice: let description and actions span icon column at narrow widths (WordPress/gutenberg#76202)
- Convert data package fully to TS (WordPress/gutenberg#76149)
- RTC updates: use apiFetch capabilities, allow nonce refresh (WordPress/gutenberg#76283)
- Interactivity: Make Window.scheduler required to match DOM lib (WordPress/gutenberg#76271)
- fix(block-library): use add_filter for filter hook (WordPress/gutenberg#76297)
- Add word-break property, update CHANGELOG, and update snapshots (WordPress/gutenberg#75539)
- Storybook: Redesign Icon library page (WordPress/gutenberg#76034)
- Connectors: Improve responsive layout for small viewports (WordPress/gutenberg#76231)
- Compose: Implement useCopyToClipboard and useCopyOnClick with native clipboard API (WordPress/gutenberg#75723)
- theme.json schema: fix pseudo-class definition for button block (WordPress/gutenberg#76272)
- Sync some post list changes with Extensible Site Editor (WordPress/gutenberg#76243)
- Only run label enforcement workflow on open PRs. (WordPress/gutenberg#76274)
- API Fetch: Respect caller-provided Content-Type in httpV1 middleware (WordPress/gutenberg#76285)
- Raw handling: fix shortcode conversion when separated by <br /> tags (WordPress/gutenberg#76213)
- Navigation block: fix submenu chevron toggle on touch devices (WordPress/gutenberg#76197)
- Core Data: Fix 'canUser' returning 'undefined' when the allow header is missing (WordPress/gutenberg#76307)
- Connectors: Show API key source for env vars and wp-config constants (WordPress/gutenberg#76266)
- Update block registration methods in documentation for WordPress 6.8+ (WordPress/gutenberg#76324)
- Theme: Document build plugins in README (WordPress/gutenberg#76003)
- Block Visibility: Add `fetchpriority=auto` to `IMG` tags in blocks with conditional viewport visibility to prevent potential erroneous high loading priority (WordPress/gutenberg#76302)
- Add primitive Text component to @wordpress/ui (WordPress/gutenberg#75870)
- Editor: Polish real-time collaboration presence UI and move Avatar to editor package (WordPress/gutenberg#75652)
- Navigation: Disable Mobile Menu in Isolated Editor or Site Editor Preview (WordPress/gutenberg#76203)
- Connectors: Show API key source for env vars and wp-config constants (WordPress/gutenberg#76266)
- Use V2 Yjs methods for HTTP Polling (WordPress/gutenberg#76304)
- Ensure consistent, repeatable build results when inlining WASM files via `wasmInlinePlugin`  (WordPress/gutenberg#76113)
- Account `IS_WORDPRESS_CORE` is set. (WordPress/gutenberg#76334)
- Navigation Editor: Allow any blocks to be inserted by gating contentOnly insertion rules to section blocks (WordPress/gutenberg#76189)
- Add `fetchpriority=low` to `IMG` tags in collapsed Details blocks (WordPress/gutenberg#76269)
- Content Guidelines: Add block guidelines management (WordPress/gutenberg#76187)
- Connectors: Add logo URL support for custom AI providers (WordPress/gutenberg#76190)
- Fields: Add `format` field (WordPress/gutenberg#76308)
- Cover Block: Add a playlist parameter to loop YouTube background videos. (WordPress/gutenberg#76004)
- Connectors: Memoize getConnectors selector (WordPress/gutenberg#76339)
- HTML Block: Fix broken layout (WordPress/gutenberg#76278)
- Tests: Skip connector logo URL tests when AI Client is unavailable (WordPress/gutenberg#76343)
- Navigation Overlay: Explicitly set fetchpriority for images (WordPress/gutenberg#76208)
- Fields: Add post content information field (WordPress/gutenberg#76309)
- Core Data: Treat single-item responses specially (WordPress/gutenberg#76318)
- Editor canvas iframe: use load event and default body element (WordPress/gutenberg#76314)
- Set placeholder to featured image field (WordPress/gutenberg#76342)
- Post Excerpt: Migrate to textAlign block support (WordPress/gutenberg#75860)
- Add Client-Side Navigation documentation to manifest and table of contents (WordPress/gutenberg#76351)
- Connectors: Move API key validation and masking to REST dispatch level (WordPress/gutenberg#76327)
- Connectors: Replace apiFetch with core-data store selectors (WordPress/gutenberg#76333)
- DataForm: Reduce `panel`'s dialog `min-width` (WordPress/gutenberg#76345)
- Do not sync local attributes (WordPress/gutenberg#76267)
- Storybook: Add basic accent color guidance. (WordPress/gutenberg#76340)
- Navigation link: add support to style current menu item via theme.json (WordPress/gutenberg#75736)
- Add `fetchpriority=low` to `IMG` tags in collapsed Accordion Item blocks (WordPress/gutenberg#76336)
- Add `Link` primitive to `@wordpress/ui` (WordPress/gutenberg#76013)
- wp-build: Stop bundling Core packages, generate prerequisites asset instead (WordPress/gutenberg#75987)
- Implement disconnection debounce after initial connection (WordPress/gutenberg#76114)
- DataViews Grid and Picker Grid: Add density option for gap between items (WordPress/gutenberg#75887)
- Guidelines: Add actions for Import, Export and Revisions of guidelines (WordPress/gutenberg#76155)
- Allow Post Content to be edited when 'Show template' is active and Post content is nested in a Template Part (WordPress/gutenberg#76305)
- Correct input of setIsLoading (WordPress/gutenberg#76381)
- Fix: Document Bar: Back button flickers (WordPress/gutenberg#76320)
- RTC: Move event hooks from editor to core-data (WordPress/gutenberg#76358)
- Page Parent: Change the default value of 'fieldValue' state (WordPress/gutenberg#76354)
- Core Data: Avoid stale values when in autosave payloads (WordPress/gutenberg#76337)
- fix(navigation): prevent right-justified submenu overflow in custom overlays (WordPress/gutenberg#76360)
- Core Data: Optimize revision selectors (WordPress/gutenberg#76043)
- Fix: Block pseudo-state styles incorrectly applied to default state (WordPress/gutenberg#76326)
- Add client-side navigation block with interactive features (WordPress/gutenberg#76331)
- Connectors: Add empty state when no connectors are registered (WordPress/gutenberg#76375)
- Storybook: Change the default font. (WordPress/gutenberg#76366)
- CI: Don't build release notes during plugin build workflow for WP Core sync (WordPress/gutenberg#76398)
- Add Router type export to @wordpress/route (WordPress/gutenberg#76139)
- Implement state UI for pseudo selectors on Global styles (WordPress/gutenberg#75627)
- Storybook: Rename "Components (Deprecated)" to "Deprecated" (WordPress/gutenberg#76362)
- Connectors: Add connectors registry for extensibility (WordPress/gutenberg#76364)
- Icons API: Support searching in labels; extend classes post-7.0 work (WordPress/gutenberg#75878)
- RTC: Add collaborator selection highlighting in rich text (WordPress/gutenberg#76107)
- Connectors: Add AI Experiments plugin callout with install/activate functionality (WordPress/gutenberg#76379)
- Add [Package] UI label to PR labeler config (WordPress/gutenberg#76411)
- Sync changes from `wp_enqueue_global_styles()` to Gutenberg override (WordPress/gutenberg#76127)
- [RTC] Fix performance regression on post save (WordPress/gutenberg#76370)
- Core Data: Add 'supportsPagination' flag for Font Collection entity (WordPress/gutenberg#76404)
- E2E Tests: Fix flaky autocomplete and mentions test (WordPress/gutenberg#76407)
- Media: Enable AVIF support for client-side uploads (WordPress/gutenberg#76371)
- Add backport changelog entry for WordPress/gutenberg#75878 (WordPress/gutenberg#76426)
- Editor: Show own presence in collaborative editing sessions (WordPress/gutenberg#76413)
- Connectors: Move plugin status computation to script module data (WordPress/gutenberg#76409)
- Navigation: Use the shared icon rendering functions for all navigation blocks (WordPress/gutenberg#76372)
- Simplify require statements for navigation files (WordPress/gutenberg#76373)
- Revisions: Skip rendered fields in REST API responses (WordPress/gutenberg#76347)
- E2E Tests: Add connector setup flow tests with test AI provider (WordPress/gutenberg#76433)
- Tabs: Restructure Tabs Menu and inner blocks (WordPress/gutenberg#75954)
- RTC: Place sync connection modal in front of popover (WordPress/gutenberg#76431)
- DataViews: Add border to sticky table headers (WordPress/gutenberg#76396)
- Connectors: Sync PHP code with WordPress Core (WordPress/gutenberg#76443)
- Disables anchor support for the Page Break block. (WordPress/gutenberg#76434)
- WP Admin: Update Connectors screen footer text for consistency. (WordPress/gutenberg#76382)
- Show spinner when replacing media via drag-and-drop in image, cover, and media-text blocks (WordPress/gutenberg#76245)
- E2E Tests: Add coverage for AI plugin callout banner on Connectors page (WordPress/gutenberg#76432)
- Update sync docs (WordPress/gutenberg#75972)
- RTC: Add preference for collaborator notifications (WordPress/gutenberg#76460)
- Fix "should undo bold" flaky test (WordPress/gutenberg#76464)
- Include AI tools disclosure in PR template (WordPress/gutenberg#76425)
- TimePicker: Clamp month day to valid day for month (WordPress/gutenberg#76400)
- Add isNavigationPostEditorKey symbol to fix menu display context (WordPress/gutenberg#76461)
- Fix: update the playlist-track file permissions from 755 to 644 (WordPress/gutenberg#76315)
- Theme_JSON: Prevent implicit coercion in `to_ruleset` (WordPress/gutenberg#76392)
- CI: Simplify strategy matrix in Build Gutenberg Plugin Zip workflow (WordPress/gutenberg#76435)
- Core Data: Fix selectors returning stale results for different 'per_page' queries (WordPress/gutenberg#76422)
- Fields: Add support for classic themes (WordPress/gutenberg#76441)
- TemplateContentPanel: fix useSelect warning (WordPress/gutenberg#76421)
- Tabs: Disable anchor support on Tab Menu Item (WordPress/gutenberg#76442)
- Core Data: Fix the list of properties persisted in autosaves (WordPress/gutenberg#76451)
- RTC: Fix error when entity record doesn't have 'meta' property (WordPress/gutenberg#76311)
- Navigation: Update close button size. (WordPress/gutenberg#76482)
- UI/Badge: Add border and neutral-strong background to `none` intent (WordPress/gutenberg#76356)
- Theme package: Add surface width design tokens (WordPress/gutenberg#76047)
- DataViews: Add spinner in `DataViewsLayout` in initial load of data (WordPress/gutenberg#76486)
- Fix: Rewrite the license check scripts to use Node's native module resolution (WordPress/gutenberg#75039)
- ESLint: Add `use-recommended-components` rule (WordPress/gutenberg#76222)
- Update Node version to v24 for flaky test reporter (WordPress/gutenberg#76492)
- ui/Card: increase padding, align with legacy Card (WordPress/gutenberg#76368)
- Docs: document controlled/uncontrolled prop naming conventions for `@wordpress/ui` (WordPress/gutenberg#76281)
- @wordpress/ui: add Collapsible component (WordPress/gutenberg#76280)
- CollapsibleCard: move trigger to the whole header (WordPress/gutenberg#76265)
- Link Picker: Use Homepage badge instead of Page if Homepage (WordPress/gutenberg#75929)
- RTC: Fix TypeError in areEditorStatesEqual when selection is undefined (WordPress/gutenberg#76163)
- Upgrade actionlint and run linting when composite actions are modified (WordPress/gutenberg#76503)
- Revisions: use useSubRegistry={false} to fix global store selectors (WordPress/gutenberg#76152)
- wp-env: Update JSON Schema with missing properties and add README docs (WordPress/gutenberg#76115)
- Patterns: add confirmation dialog before disconnecting/detaching (WordPress/gutenberg#75713)
- Page/Post Content Focus Mode: Fix insertion into Post Content block (WordPress/gutenberg#76477)
- Remove redundant onNavigateToEntityRecord filter and assignment (WordPress/gutenberg#76523)
- Feat: Block Library: Improve the design of MediaControlPreview and MediaControl (WordPress/gutenberg#76430)
- Add e2e test for date field in QuickEdit (WordPress/gutenberg#76528)
- Fix RTL styling on Connectors, Font Library, and boot-based admin pages (WordPress/gutenberg#76496)
- DataViews: Fix layout scrolling in constrained-height containers (WordPress/gutenberg#76453)
- Bump the github-actions group across 1 directory with 5 updates (WordPress/gutenberg#76530)
- RTC: Auto-register custom taxonomy rest_base values for CRDT sync (WordPress/gutenberg#75983)
- Modernize eslint-plugin rule APIs for ESLint v10 compatibility (WordPress/gutenberg#76507)
- Remove alexstine from codeowners (WordPress/gutenberg#76551)
- RTC: Add a limit for the default provider (WordPress/gutenberg#76437)
- Media Upload Modal: Try an uploading state with popover in the footer (WordPress/gutenberg#76228)
- Fix RTL styling on AI plugin callout banner (WordPress/gutenberg#76497)
- Add command palette trigger button to admin bar (WordPress/gutenberg#75757)
- Block Bindings: Remove source items constrained by enums (WordPress/gutenberg#76200)
- Connectors: Improve accessibility (WordPress/gutenberg#76456)
- Post Date: Migrate to textAlign block support (WordPress/gutenberg#75856)
- Dataviews: improve storybook infinite loading (WordPress/gutenberg#76566)
- HTML Block: Remove "unsaved changes" check (WordPress/gutenberg#76086)
- `CollapsibleCard`: add animations (WordPress/gutenberg#76378)
- Theme: Fix tags in Storybook (WordPress/gutenberg#76500)
- InputLayout.Slot: Forward className prop (WordPress/gutenberg#76459)
- Storybook: Upgrade to 10.2 (WordPress/gutenberg#76403)
- UI: Use `--wpds-cursor-control` design token (WordPress/gutenberg#76218)
- Media: Add hooks and extension points for client-side media processing (WordPress/gutenberg#74913)
- ESLint: Broaden `no-setting-ds-tokens` to all object property keys (WordPress/gutenberg#76212)
- Remove manual fallbacks from --wpds-* token usages in boot package (WordPress/gutenberg#76414)
- Fix token fallback plugins breaking JS strings with quoted font names (WordPress/gutenberg#76254)
- Connectors: Add unregisterConnector and upsert support (WordPress/gutenberg#76541)
- Add ExampleApplication story for ThemeProvider to better demonstrate component theme-ability (WordPress/gutenberg#76463)
- Admin UI: Add Storybook stories for Breadcrumbs and Page components (WordPress/gutenberg#76467)
- RTC: Fix list sidebar reset during real-time collaboration (WordPress/gutenberg#76025)
- Collapsible.Card: make contents hidden until found (WordPress/gutenberg#76498)
- Adopt surface-width design tokens for Dialog, Notice, and Modal widths (WordPress/gutenberg#76494)
- RTC: Fix CRDT serialization of nested RichText attributes (WordPress/gutenberg#76597)
- ESLint: Replace eslint-plugin-ssr-friendly with custom rules (WordPress/gutenberg#76508)
- Theme: Add `no-token-fallback-values` stylelint rule (WordPress/gutenberg#76415)
- ESLint: Add bare token check to `no-unknown-ds-tokens` (WordPress/gutenberg#76210)
- RTC: Remove post list lock icon and replace user-specific lock text (WordPress/gutenberg#76322)
- Fix HEIC upload error handling and sub-size format (WordPress/gutenberg#76514)
- RTC: Fix cursor index sync with rich text formatting (WordPress/gutenberg#76418)
- RTC: Allow filtering of `SyncConnectionModal` (WordPress/gutenberg#76554)
- RTC: Implement front-end peer limits (WordPress/gutenberg#76565)
- Content Guidelines: Rename route and use the right `Notice` component (WordPress/gutenberg#76427)
- Core Data: Fix per_page query logic for when offset is present in the query (WordPress/gutenberg#76613)
- useMediaQuery: support in-iframe queries via new `WindowContext` (WordPress/gutenberg#76446)
- Navigation overlay close button may be displayed twice (WordPress/gutenberg#76585)
- Fix script module dequeue race condition (WordPress/gutenberg#76170)
- Template field: match exactly the behavior of post template panel (WordPress/gutenberg#76596)
- Connectors: Fetch specific plugin instead of all plugins (WordPress/gutenberg#76594)
- Admin UI: update font size for title and breadcrumbs to match (WordPress/gutenberg#76452)
- Admin UI: Use hasPadding prop in Page stories instead of inline styles (WordPress/gutenberg#76601)
- Site Editor > Templates: fix author filter (WordPress/gutenberg#76625)
- Site Title Block: Fix preview display (WordPress/gutenberg#76614)
- Editor: Fix autosaves for draft and auto-draft posts (WordPress/gutenberg#76624)
- Revisions: Show changed block attributes in inspector sidebar (WordPress/gutenberg#76550)
- Fix IS_GUTENBERG_PLUGIN env var override in build config  (WordPress/gutenberg#76605)
- Loosen client-side media processing requirements (WordPress/gutenberg#76616)

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

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

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

The following commits are included:
- Add useBlocker to private APIs for enhanced routing control (WordPress/gutenberg#75687)
- Add components team as codeowners for components package (WordPress/gutenberg#75641)
- DataForm: Fix focus loss and refactor Card layout (WordPress/gutenberg#75689)
- Remove IS_GUTENBERG_PLUGIN checks for collaborative editing (WordPress/gutenberg#75699)
- RTC: Add cap check for single taxonomy term entities (WordPress/gutenberg#75708)
- Only show dot divider for parent selector in top toolbar (WordPress/gutenberg#75710)
- Re-enable Font Library e2e tests (WordPress/gutenberg#75712)
- Fix flaky Quick Edit e2e test (WordPress/gutenberg#75714)
- Post Navigation Link : Migrate to Text-Align Block Support (WordPress/gutenberg#75557)
- Add phpMyAdmin support to wp-env Playground runtime (WordPress/gutenberg#75532)
- wp-env: Enable pretty permalinks by default in Docker runtime (WordPress/gutenberg#75688)
- DataViews: fix spacing for title in patterns page (WordPress/gutenberg#75693)
- MediaEdit: Auto-fill columns based on minimum item width (WordPress/gutenberg#75509)
- Add Field and Fieldset details tests (WordPress/gutenberg#75696)
- UI: Update `@base-ui/react` from 1.0.0 to 1.2.0 (WordPress/gutenberg#75698)
- Theme: Add design token for interactive non-link elements (WordPress/gutenberg#75697)
- Media: Graduate client-side media processing from experimental (WordPress/gutenberg#75112)
- Remove experimental property from Icon block (WordPress/gutenberg#75742)
- Real-time collab editing: Fix undo E2E test (WordPress/gutenberg#75740)
- Snackbar: Fix scaling issue with snackbars that update their content via a common id (WordPress/gutenberg#75709)
- Vips and worker-threads packages: remove private flag so that packages can be published to npm (WordPress/gutenberg#75752)
- Update wordpress/vips in root package.json to use a relative path (WordPress/gutenberg#75758)
- Fix change-detection and new-post E2E tests after RTC enabled by default (WordPress/gutenberg#75751)
- Try fix failing patterns e2e test (WordPress/gutenberg#75759)
- Client-side media processing: Disable in Gutenberg just for now (WordPress/gutenberg#75756)
- Skip cross origin isolation e2e tests (WordPress/gutenberg#75764)
- Post featured image: Simplify background class assignment. (WordPress/gutenberg#75745)
- Block Editor: Avoid block removal when calling 'moveBlockToPosition' (WordPress/gutenberg#75728)
- Icon: Improve parameter documentation (WordPress/gutenberg#75768)
- Query: Remove content role from block (WordPress/gutenberg#75760)
- DataViews: Adjust column spacing in `table` layout when no titleField is provided (WordPress/gutenberg#75410)
- IconButton: Hide tooltip when truly disabled (WordPress/gutenberg#75754)
- `ToggleGroupControl`: Make unselected item color consistent across all variants (WordPress/gutenberg#75737)
- Center navigation preview content in preview pane (WordPress/gutenberg#75741)
- Real-time collaboration: Fix comment syncing on site editor (WordPress/gutenberg#75746)
- Navigation Overlay Close: Set Close as default text, rather than using a placeholder (WordPress/gutenberg#75692)
- Components: Refactor ColorPicker to preserve hue/saturation at achromatic colors (WordPress/gutenberg#75493)
- Icon-block: fix global-styles selectors (WordPress/gutenberg#75724)
- Revert "Try fix failing patterns e2e test (WordPress/gutenberg#75759)" (WordPress/gutenberg#75771)
- Theme: Add design token fallback generation (WordPress/gutenberg#75586)
- Core Data: Create icons entity (WordPress/gutenberg#75773)
- Workflows: Use pull_request_target for cherry-pick workflow (WordPress/gutenberg#75775)
- Revert "CI: Use http-get in Storybook check wait-on" (WordPress/gutenberg#75781)
- REST API: Make filter_wp_unique_filename() static to match core, plus avoid duplicate routes (WordPress/gutenberg#75782)
- Tabs: Remove custom state styling (WordPress/gutenberg#75731)
- Sort registry files by handle/ID. (WordPress/gutenberg#75755)
- Real-time Collaboration: Bug fix for CRDT user selection and add tests (WordPress/gutenberg#75075)
- Post Title : Migrate to Text-Align Block Support (WordPress/gutenberg#75629)
- Query Title: Migrate to Text-Align Block Support (WordPress/gutenberg#75802)
- Pattern Editing: Fix nested patterns/sections (WordPress/gutenberg#75772)
- Add core/icon block to theme.json schema (WordPress/gutenberg#75813)
- Changelog: Curate entries for GB 22.6.0 RC1 (WordPress/gutenberg#75738)
- QuickEdit: rename status label and remove extra labels in popup (WordPress/gutenberg#75824)
- BlockListBlock: fix crash when selectedProps are null (WordPress/gutenberg#75826)
- RTC: Updates from backport PR (WordPress/gutenberg#75711)
- Merge document meta into state map (WordPress/gutenberg#75830)
- NumberControl: merge two state reducers into one (WordPress/gutenberg#75822)
- Real-time collaboration: Remove block client IDs from Awareness, fix "Show Template" view (WordPress/gutenberg#75590)
- RTC: Fix entity save call / initial persistence. (WordPress/gutenberg#75841)
- Fix block editing modes not recomputing when isolated editor value changes (WordPress/gutenberg#75821)
- DataViews: Fix search input losing characters during debounce when externally synced (WordPress/gutenberg#75810)
- Synced patterns: Fix block editing mode of synced pattern content when nested in an unsynced pattern (WordPress/gutenberg#75818)
- Add wp_ prefix to real time collaberation option. (WordPress/gutenberg#75837)
- Block Support: Fix custom CSS not saved when style schema is not defined (WordPress/gutenberg#75797)
- Site Tagline : Migrate to Text-Align Block Support (WordPress/gutenberg#75690)
- Site Title : Migrate to Text-Align Block Support (WordPress/gutenberg#75551)
- Try enabling style variation transforms for blocks in contentOnly mode (WordPress/gutenberg#75761)
- Fix error when undoing newly added pattern (WordPress/gutenberg#75850)
- Block Editor: Invalid block selected style (WordPress/gutenberg#75796)
- Add e2e test for sorting patterns (WordPress/gutenberg#75823)
- Gallery: Fixes keyboard focus escaping the lightbox overlay when navigating a gallery with Tab/Shift+Tab. (WordPress/gutenberg#75852)
- wp-build: Do not remove Core's default script modules registration (WordPress/gutenberg#75705)
- Fix: Suppress spinner output when using --json flag in wp-env (WordPress/gutenberg#75743)
- Docs: Fix incorrect use of wp_interactivity_state in getServerState example (WordPress/gutenberg#75857)
- Env: Improve help screen (WordPress/gutenberg#75783)
- iAPI Docs: Introduce reactive vs non-reactive distinction early in the state/context guide (WordPress/gutenberg#75357)
- Fix client-side media file naming (WordPress/gutenberg#75817)
- Plugin: Include Icons assets in ZIP (WordPress/gutenberg#75866)
- Prevent CSS modules in build from breaking Jest tests (WordPress/gutenberg#75792)
- Bump the github-actions group across 2 directories with 7 updates (WordPress/gutenberg#75725)
- Re-enable client-side media processing (WordPress/gutenberg#75848)
- RTC: Fix undefined array_first() call in sync storage (WordPress/gutenberg#75869)
- Real-time collaboration: Improve collaboration within the same rich text (WordPress/gutenberg#75703)
- Media Thumbnail Field: Optimise image loading (WordPress/gutenberg#75811)
- Grid block: Improve Visualizer responsiveness (WordPress/gutenberg#75820)
- Custom CSS: Allow defining custom selector for this global styles feature (WordPress/gutenberg#75799)
- Fix DataForm card summary vertical alignment (WordPress/gutenberg#75864)
- Update README for DataViews, DataForm, Field API (WordPress/gutenberg#75881)
- Client Side Media: Add device/browser capability detection (WordPress/gutenberg#75863)
- Navigation editing: simplify edit/view buttons (WordPress/gutenberg#75819)
- DataViews: Remove menu divider again. (WordPress/gutenberg#75893)
- Page List Item: Replace RawHTML with dangerouslySetInnerHTML for label and title (WordPress/gutenberg#75890)
- Theme: Add build plugins to inject design token fallbacks (WordPress/gutenberg#75589)
- Cover block: Add e2e test coverage for bugfixes (WordPress/gutenberg#75483)
- Fix flaky template-revert e2e tests (WordPress/gutenberg#75894)
- Accordion: Remove Down Arrow, Up Arrow, Home, End naviagtion (WordPress/gutenberg#75891)
- Dialog: Add legacy z-index compatibility (WordPress/gutenberg#75874)
- Cover: Replace strpos() with str_contains() for improved readability (WordPress/gutenberg#75907)
- Block editor: Force LTR direction in block HTML editing mode (WordPress/gutenberg#75904)
- Navigation overlay: Prevent duplicate area registration (WordPress/gutenberg#75906)
- RichText: useAnchor: Fix TypeError in virtual element (WordPress/gutenberg#75900)
- Navigation: Extract NavigationLinkUI and NavigationListViewHeader into separate files (WordPress/gutenberg#75865)
- DataViews: minimize padding for primary action buttons (WordPress/gutenberg#75721)
- DataForm: fix label colors (WordPress/gutenberg#75730)
- ESLint: Add `no-ds-tokens` rule (WordPress/gutenberg#75872)
- Theme: Remove global stylesheet (WordPress/gutenberg#75879)
- Automated Testing: Merge reports into HTML artifact (WordPress/gutenberg#75633)
- wp-build: Deregister script modules before re-registering (WordPress/gutenberg#75909)
- Move WordPress meta key from sync package to core-data (WordPress/gutenberg#75846)
- Real-time collaboration: Remove ghost awareness state explicitly when refreshing (WordPress/gutenberg#75883)
- Bugfix: Fix casing of getPersistedCRDTDoc (WordPress/gutenberg#75922)
- Add: Connectors screen (WordPress/gutenberg#75833)
- Real-time collaboration: Expand mergeCrdtBlocks() automated testing (WordPress/gutenberg#75923)
- Add previews for style variation transforms (WordPress/gutenberg#75889)
- Convert focus on mount hook to TypeScript (WordPress/gutenberg#75442)
- Add debug logging to SyncManager (WordPress/gutenberg#75924)
- Show transform dropdown previews on focus as well as hover (WordPress/gutenberg#75940)
- Custom CSS: Prevent duplicate custom css styles (WordPress/gutenberg#75892)
- Docs: Correct parameter name `$content` for query title render function. (WordPress/gutenberg#75945)
- DataViews: Avoid flickering while refreshing (WordPress/gutenberg#74572)
- Connectors: Add `_ai_` prefix to connector setting names and fix naming inconsistencies (WordPress/gutenberg#75948)
- Connectors: Unhook Core callbacks in Gutenberg coexistence (WordPress/gutenberg#75935)
- Editor: Remove View dropdown and pinned items from revisions header (WordPress/gutenberg#75951)
- Unsynced patterns: Rename 'Disconnect pattern' to 'Detach pattern' in context menu (WordPress/gutenberg#75807)
- ui guidelines: add custom properties and disabled state guidance (WordPress/gutenberg#75912)
- Fix: Template revisions infinite spinner (WordPress/gutenberg#75953)
- Docs: Fix broken link to `autoRegister` block-supports (WordPress/gutenberg#75956)
- Add documentation for contentRole and listView block supports (WordPress/gutenberg#75903)
- Build: Clean top-level build/ directory during clean:packages (WordPress/gutenberg#75961)
- Interactivity Router: fix back and forward navigation after refresh (WordPress/gutenberg#75927)
- ESLint: Add no-i18n-in-save rule (WordPress/gutenberg#75617)
- Components: Specify line-height to avoid inheriting default values (WordPress/gutenberg#75880)
- Real-time collaboration: Fix disconnect dialog on navigate (WordPress/gutenberg#75886)
- Navigation: Remove internal 'useNavigationEntities' hook (WordPress/gutenberg#75943)
- Directly inject styles in overlay to make styles stay consistently mounted (WordPress/gutenberg#75700)
- Real Time Collab: Throttle syncing for inactive tabs. (WordPress/gutenberg#75843)
- Content Guidelines: Add experimental REST API and custom post type (WordPress/gutenberg#75164)
- Core Data: Simplify actions dispatched by 'canUser' resolver (WordPress/gutenberg#75974)
- Pattern Editing: Fix sibling blocks to edited pattern not being disabled (WordPress/gutenberg#75994)
- Sync connector PHP behavior with Core backport changes (WordPress/gutenberg#75968)
- Use the same context for font library tabs translations (WordPress/gutenberg#75930)
- Connectors: Avoid manual string concatenation (WordPress/gutenberg#75997)
- DataForm: fix field label for panel (should not be uppercase) (WordPress/gutenberg#75944)
- Unify block settings dropdown menu items across list views (WordPress/gutenberg#75979)
- Views: add support for more overrides (all developer-defined config) (WordPress/gutenberg#75971)
- Preserve note selection on browser tab switch (WordPress/gutenberg#75955)
- ESLint: Broaden `no-unknown-ds-tokens` to all strings and catch dynamic construction (WordPress/gutenberg#75905)
- Use homeUrl instead of siteUrl for link badge evaluations (WordPress/gutenberg#75978)
- Block Editor: Display custom block labels in Block Inspector and List View (WordPress/gutenberg#75607)
- DataViews: Fix focus transfer while searching in `list` layout (WordPress/gutenberg#75999)
- UI: Add Notice component (WordPress/gutenberg#75981)
- Playlist Block: Add WaveformPlayer visualization (WordPress/gutenberg#75203)
- DataViews: Right-align `integer` and `number` fields (WordPress/gutenberg#75917)
- Navigation Link: Compare internal links by host instead of origin (WordPress/gutenberg#76015)
- Bump the github-actions group across 2 directories with 3 updates (WordPress/gutenberg#76006)
- Block Supports: Define CSS vars for blocks based on feature selectors (WordPress/gutenberg#75226)
- Button: Migrate to width block support (WordPress/gutenberg#74242)
- Fix: Skip scaled image sideload for images below big image threshold (WordPress/gutenberg#75990)
- ToolsPanel: Remove unnecessary label prop from dropdownMenuProps type (WordPress/gutenberg#76027)
- Make inspector style transform previews consistent with toolbar transforms (WordPress/gutenberg#75989)
- Fix: Set quality and strip metadata in client-side image resize (WordPress/gutenberg#76029)
- Search block: double-encodes apostrophes in the input value (WordPress/gutenberg#76023)
- Post Title: Add placeholder attribute (WordPress/gutenberg#76016)
- wp-env: Add opt-in --auto-port flag for automatic port selection (WordPress/gutenberg#74472)
- RichText: useAnchor: Enable type checking, fix errors (WordPress/gutenberg#75910)
- DataForm: Fix `card` layout's toggle button screen reader text (WordPress/gutenberg#76039)
- [Real-time Collaboration] Fix sync issue on refresh (WordPress/gutenberg#76017)
- RTC: Fix syncing of emoji / surrogate pairs (WordPress/gutenberg#76049)
- InputLayout: Replace slot context with data attributes (WordPress/gutenberg#76011)
- RTC: Fix stale CRDT document persisted on save (WordPress/gutenberg#75975)
- Real-time collaboration: Improve disconnect dialog (WordPress/gutenberg#75970)
- Media Notices: Bump global snackbar z-index, re-use global notices for media modal (WordPress/gutenberg#76063)
- RTC: Prevent duplicate poll cycles (WordPress/gutenberg#76059)
- RTC: Disable multiple collaborators if meta boxes are present (WordPress/gutenberg#75939)
- DataViews: Fix filter toggle flickering when there are locked or primary filters (WordPress/gutenberg#75913)
- Revert global snackbar z-index bump, implement alternative fix for Media Upload Modal notices (WordPress/gutenberg#76067)
- DataViews: Improve UI in `list` layout when we render only title and/or media fields (WordPress/gutenberg#76042)
- `Button`: Add `word-break: break-word` (WordPress/gutenberg#76071)
- DataForm: Fix text overflow for long unhyphenated text in panel layout (WordPress/gutenberg#76073)
- Interactivity: Fix incomplete Window.scheduler type causing TS2430 (WordPress/gutenberg#76070)
- Connectors: Dynamically register providers from WP AI Client registry (WordPress/gutenberg#76014)
- Remove Core's full-page render interceptors for boot-based pages (WordPress/gutenberg#76036)
- PHP-only Blocks: Reflect bound attribute values in inspector controls (WordPress/gutenberg#76040)
- Admin UI: Fix type mismatch between Page title and NavigableRegion ariaLabel (WordPress/gutenberg#75899)
- Remove unused deps: wordpress/dom, wordpress/theme, wordpress/url (WordPress/gutenberg#76075)
- RTC: Fix fallthrough for sync update switch statement (WordPress/gutenberg#76060)
- Extract inserter-toggle mixin from duplicated button styles (WordPress/gutenberg#76087)
- RTC: Add session activity notifications (WordPress/gutenberg#76065)
- DateTimePicker: Fix day text wrapping (WordPress/gutenberg#76084)
- iAPI Docs: Add client-side navigation guide under "Core Concepts" (WordPress/gutenberg#75263)
- Move block css vars selectors backport changelog to correct WP version (WordPress/gutenberg#76102)
- Fix writing flow navigation for annotation style, or any other block with border radius (WordPress/gutenberg#76072)
- Block toolbar and context menu: hide pattern actions in Revisions UI (WordPress/gutenberg#76066)
- Prevent non-reproducible Sass/CSS builds. (WordPress/gutenberg#76098)
- Block toolbar: hide styles dropdown in Revisions UI (WordPress/gutenberg#76119)
- Image: Hide 'Set as featured image' for in-editor revisions (WordPress/gutenberg#76123)
- Image block: fix lightbox srcset size (WordPress/gutenberg#76092)
- DataViews: Fix last column classname in `table` layout (WordPress/gutenberg#76133)
- Data: Update documentation for global 'dispatch' and 'select' methods (WordPress/gutenberg#76134)
- Connectors: Gate unavailable install actions behind install capability (WordPress/gutenberg#75980)
- Auto Cherry-Pick: Fix race condition by using pull_request_target closed event (WordPress/gutenberg#76083)
- build: Exclude experimental pages from Core builds (WordPress/gutenberg#76038)
- Playlist: Move getTrackAttributes to utils (WordPress/gutenberg#76096)
- HTML & Shortcode: Disable viewport visibility support (WordPress/gutenberg#76138)
- Navigation: Allow creating new links in site editor sidebar List View (WordPress/gutenberg#75918)
- DataForm: Consolidate `date` and `datetime` input placement (WordPress/gutenberg#76136)
- Remove `! function_exists()` checks from PHP templates (WordPress/gutenberg#76062)
- Playlist: Clip content to respect border-radius (WordPress/gutenberg#76146)
- Connectors: Update page identifier to options-connectors (WordPress/gutenberg#76142)
- RTC: Verify client ID to avoid awareness mutation (WordPress/gutenberg#76056)
- Move backport changelog PR for Gutenberg WordPress/gutenberg#75746 to correct matching backport PR (WordPress/gutenberg#76154)
- Connectors: Align init hook priorities with Core overrides (WordPress/gutenberg#76161)
- Icons: Fix incorrect icon slug (WordPress/gutenberg#76074)
- Icon Block: Clean up selectors config (WordPress/gutenberg#75786)
- Add support for linting annotations and other static analysis workflow improvements (WordPress/gutenberg#76120)
- Bump the github-actions group across 2 directories with 1 update (WordPress/gutenberg#76144)
- Image: Replace 'getEntityRecordPermissions` with 'canUser' (WordPress/gutenberg#76125)
- RTC: Enable RTC by default (WordPress/gutenberg#75739)
- Fix backport changelog for WordPress/gutenberg#76060 (WordPress/gutenberg#76174)
- Rename and visibility modals: gate shortcuts behind canEditBlock to prevent triggering in revisions UI (WordPress/gutenberg#76168)
- Hide template part replace button when viewing revisions (WordPress/gutenberg#76169)
- Fix: Block style variations not rendering in Site Editor Patterns page (WordPress/gutenberg#76122)
- Content Guidelines: Add UX for site, copy, image, and internal guidelines (WordPress/gutenberg#75420)
- Client-side media processing: only use media upload provider when not in preview mode (WordPress/gutenberg#76124)
- Notes: Disable for in-editor revisions (WordPress/gutenberg#76180)
- Core Data: Support reading revision data in useEntityProp (fixes footnotes in revisions UI) (WordPress/gutenberg#76106)
- Client-side media processing: Try plumbing invalidation to the block-editor's mediaUpload onSuccess callback (WordPress/gutenberg#76173)
- Interactivity API: Fix router initialization race condition on Safari/Firefox (WordPress/gutenberg#76053)
- Connectors: Improve responsive layout on small screens (WordPress/gutenberg#76186)
- Interactivity: Fix crypto.randomUUID crash in non-secure contexts (WordPress/gutenberg#76151)
- Duotone: lazily load settings (WordPress/gutenberg#74748)
- Media: Use Document-Isolation-Policy for cross-origin isolation on Chromium 137+ (WordPress/gutenberg#75991)
- DataForm `datetime` control: fix date handling (WordPress/gutenberg#76193)
- Field.Label, Fieldset.Legend: Add `visuallyHidden` prop (WordPress/gutenberg#76052)
- Extensible Site Editor: Make canvas previews full height (WordPress/gutenberg#76201)
- Storybook: Deduplicate injected package stylesheets (WordPress/gutenberg#76158)
- Temp: Disable RTC in the site editor (WordPress/gutenberg#76223)
- Obey undoIgnore flag in editEntityRecord (WordPress/gutenberg#76206)
- RTC: Fix `post-editor-template-mode` E2E test (WordPress/gutenberg#76209)
- Pattern Editing and Block Fields: Highlight selected block (WordPress/gutenberg#74841)
- Menu: Fix `RadioItem` controlled checked state (WordPress/gutenberg#76041)
- Revert `word-break: break-word` addition (WordPress/gutenberg#76230)
- Fix: QuickEdit: consolidate how "Status > Scheduled" works  (WordPress/gutenberg#76129)
- Add experiment: render the editor inspector with DataForm (WordPress/gutenberg#76244)
- Fields: Hide `scheduledDateField` from the list and filters (WordPress/gutenberg#76247)
- DataForm: Add customizable button text to panel modal (WordPress/gutenberg#76099)
- Components: Add styles for outside days in Calendar components (WordPress/gutenberg#76199)
- Add Site Logo & Icon screen to Design panel (WordPress/gutenberg#76116)
- Tooltip: Change default placement from bottom to top (WordPress/gutenberg#76131)
- `@wordpress/ui`: add `Card` and `CollapsibleCard` components (WordPress/gutenberg#76252)
- Refactor admin-ui Page component to use @wordpress/theme tokens and @wordpress/ui layout primitive (WordPress/gutenberg#75963)
- RTC: Fix 'networkidle' and other e2e tests that are flaky (WordPress/gutenberg#76214)
- Move site editor preview CSS to boot package (WordPress/gutenberg#76211)
- Publish built Gutenberg plugin to the GitHub Container Registry (WordPress/gutenberg#75844)
- Scripts: Relax @wordpress/env peer dependency to allow newer versions (WordPress/gutenberg#76192)
- Connectors: Improve placeholder text and make it translatable (WordPress/gutenberg#75996)
- Block context menu: context menu not closing for disconnecting unsynced pattern menu items (WordPress/gutenberg#75405)
- UI Notice: let description and actions span icon column at narrow widths (WordPress/gutenberg#76202)
- Convert data package fully to TS (WordPress/gutenberg#76149)
- RTC updates: use apiFetch capabilities, allow nonce refresh (WordPress/gutenberg#76283)
- Interactivity: Make Window.scheduler required to match DOM lib (WordPress/gutenberg#76271)
- fix(block-library): use add_filter for filter hook (WordPress/gutenberg#76297)
- Add word-break property, update CHANGELOG, and update snapshots (WordPress/gutenberg#75539)
- Storybook: Redesign Icon library page (WordPress/gutenberg#76034)
- Connectors: Improve responsive layout for small viewports (WordPress/gutenberg#76231)
- Compose: Implement useCopyToClipboard and useCopyOnClick with native clipboard API (WordPress/gutenberg#75723)
- theme.json schema: fix pseudo-class definition for button block (WordPress/gutenberg#76272)
- Sync some post list changes with Extensible Site Editor (WordPress/gutenberg#76243)
- Only run label enforcement workflow on open PRs. (WordPress/gutenberg#76274)
- API Fetch: Respect caller-provided Content-Type in httpV1 middleware (WordPress/gutenberg#76285)
- Raw handling: fix shortcode conversion when separated by <br /> tags (WordPress/gutenberg#76213)
- Navigation block: fix submenu chevron toggle on touch devices (WordPress/gutenberg#76197)
- Core Data: Fix 'canUser' returning 'undefined' when the allow header is missing (WordPress/gutenberg#76307)
- Connectors: Show API key source for env vars and wp-config constants (WordPress/gutenberg#76266)
- Update block registration methods in documentation for WordPress 6.8+ (WordPress/gutenberg#76324)
- Theme: Document build plugins in README (WordPress/gutenberg#76003)
- Block Visibility: Add `fetchpriority=auto` to `IMG` tags in blocks with conditional viewport visibility to prevent potential erroneous high loading priority (WordPress/gutenberg#76302)
- Add primitive Text component to @wordpress/ui (WordPress/gutenberg#75870)
- Editor: Polish real-time collaboration presence UI and move Avatar to editor package (WordPress/gutenberg#75652)
- Navigation: Disable Mobile Menu in Isolated Editor or Site Editor Preview (WordPress/gutenberg#76203)
- Connectors: Show API key source for env vars and wp-config constants (WordPress/gutenberg#76266)
- Use V2 Yjs methods for HTTP Polling (WordPress/gutenberg#76304)
- Ensure consistent, repeatable build results when inlining WASM files via `wasmInlinePlugin`  (WordPress/gutenberg#76113)
- Account `IS_WORDPRESS_CORE` is set. (WordPress/gutenberg#76334)
- Navigation Editor: Allow any blocks to be inserted by gating contentOnly insertion rules to section blocks (WordPress/gutenberg#76189)
- Add `fetchpriority=low` to `IMG` tags in collapsed Details blocks (WordPress/gutenberg#76269)
- Content Guidelines: Add block guidelines management (WordPress/gutenberg#76187)
- Connectors: Add logo URL support for custom AI providers (WordPress/gutenberg#76190)
- Fields: Add `format` field (WordPress/gutenberg#76308)
- Cover Block: Add a playlist parameter to loop YouTube background videos. (WordPress/gutenberg#76004)
- Connectors: Memoize getConnectors selector (WordPress/gutenberg#76339)
- HTML Block: Fix broken layout (WordPress/gutenberg#76278)
- Tests: Skip connector logo URL tests when AI Client is unavailable (WordPress/gutenberg#76343)
- Navigation Overlay: Explicitly set fetchpriority for images (WordPress/gutenberg#76208)
- Fields: Add post content information field (WordPress/gutenberg#76309)
- Core Data: Treat single-item responses specially (WordPress/gutenberg#76318)
- Editor canvas iframe: use load event and default body element (WordPress/gutenberg#76314)
- Set placeholder to featured image field (WordPress/gutenberg#76342)
- Post Excerpt: Migrate to textAlign block support (WordPress/gutenberg#75860)
- Add Client-Side Navigation documentation to manifest and table of contents (WordPress/gutenberg#76351)
- Connectors: Move API key validation and masking to REST dispatch level (WordPress/gutenberg#76327)
- Connectors: Replace apiFetch with core-data store selectors (WordPress/gutenberg#76333)
- DataForm: Reduce `panel`'s dialog `min-width` (WordPress/gutenberg#76345)
- Do not sync local attributes (WordPress/gutenberg#76267)
- Storybook: Add basic accent color guidance. (WordPress/gutenberg#76340)
- Navigation link: add support to style current menu item via theme.json (WordPress/gutenberg#75736)
- Add `fetchpriority=low` to `IMG` tags in collapsed Accordion Item blocks (WordPress/gutenberg#76336)
- Add `Link` primitive to `@wordpress/ui` (WordPress/gutenberg#76013)
- wp-build: Stop bundling Core packages, generate prerequisites asset instead (WordPress/gutenberg#75987)
- Implement disconnection debounce after initial connection (WordPress/gutenberg#76114)
- DataViews Grid and Picker Grid: Add density option for gap between items (WordPress/gutenberg#75887)
- Guidelines: Add actions for Import, Export and Revisions of guidelines (WordPress/gutenberg#76155)
- Allow Post Content to be edited when 'Show template' is active and Post content is nested in a Template Part (WordPress/gutenberg#76305)
- Correct input of setIsLoading (WordPress/gutenberg#76381)
- Fix: Document Bar: Back button flickers (WordPress/gutenberg#76320)
- RTC: Move event hooks from editor to core-data (WordPress/gutenberg#76358)
- Page Parent: Change the default value of 'fieldValue' state (WordPress/gutenberg#76354)
- Core Data: Avoid stale values when in autosave payloads (WordPress/gutenberg#76337)
- fix(navigation): prevent right-justified submenu overflow in custom overlays (WordPress/gutenberg#76360)
- Core Data: Optimize revision selectors (WordPress/gutenberg#76043)
- Fix: Block pseudo-state styles incorrectly applied to default state (WordPress/gutenberg#76326)
- Add client-side navigation block with interactive features (WordPress/gutenberg#76331)
- Connectors: Add empty state when no connectors are registered (WordPress/gutenberg#76375)
- Storybook: Change the default font. (WordPress/gutenberg#76366)
- CI: Don't build release notes during plugin build workflow for WP Core sync (WordPress/gutenberg#76398)
- Add Router type export to @wordpress/route (WordPress/gutenberg#76139)
- Implement state UI for pseudo selectors on Global styles (WordPress/gutenberg#75627)
- Storybook: Rename "Components (Deprecated)" to "Deprecated" (WordPress/gutenberg#76362)
- Connectors: Add connectors registry for extensibility (WordPress/gutenberg#76364)
- Icons API: Support searching in labels; extend classes post-7.0 work (WordPress/gutenberg#75878)
- RTC: Add collaborator selection highlighting in rich text (WordPress/gutenberg#76107)
- Connectors: Add AI Experiments plugin callout with install/activate functionality (WordPress/gutenberg#76379)
- Add [Package] UI label to PR labeler config (WordPress/gutenberg#76411)
- Sync changes from `wp_enqueue_global_styles()` to Gutenberg override (WordPress/gutenberg#76127)
- [RTC] Fix performance regression on post save (WordPress/gutenberg#76370)
- Core Data: Add 'supportsPagination' flag for Font Collection entity (WordPress/gutenberg#76404)
- E2E Tests: Fix flaky autocomplete and mentions test (WordPress/gutenberg#76407)
- Media: Enable AVIF support for client-side uploads (WordPress/gutenberg#76371)
- Add backport changelog entry for WordPress/gutenberg#75878 (WordPress/gutenberg#76426)
- Editor: Show own presence in collaborative editing sessions (WordPress/gutenberg#76413)
- Connectors: Move plugin status computation to script module data (WordPress/gutenberg#76409)
- Navigation: Use the shared icon rendering functions for all navigation blocks (WordPress/gutenberg#76372)
- Simplify require statements for navigation files (WordPress/gutenberg#76373)
- Revisions: Skip rendered fields in REST API responses (WordPress/gutenberg#76347)
- E2E Tests: Add connector setup flow tests with test AI provider (WordPress/gutenberg#76433)
- Tabs: Restructure Tabs Menu and inner blocks (WordPress/gutenberg#75954)
- RTC: Place sync connection modal in front of popover (WordPress/gutenberg#76431)
- DataViews: Add border to sticky table headers (WordPress/gutenberg#76396)
- Connectors: Sync PHP code with WordPress Core (WordPress/gutenberg#76443)
- Disables anchor support for the Page Break block. (WordPress/gutenberg#76434)
- WP Admin: Update Connectors screen footer text for consistency. (WordPress/gutenberg#76382)
- Show spinner when replacing media via drag-and-drop in image, cover, and media-text blocks (WordPress/gutenberg#76245)
- E2E Tests: Add coverage for AI plugin callout banner on Connectors page (WordPress/gutenberg#76432)
- Update sync docs (WordPress/gutenberg#75972)
- RTC: Add preference for collaborator notifications (WordPress/gutenberg#76460)
- Fix "should undo bold" flaky test (WordPress/gutenberg#76464)
- Include AI tools disclosure in PR template (WordPress/gutenberg#76425)
- TimePicker: Clamp month day to valid day for month (WordPress/gutenberg#76400)
- Add isNavigationPostEditorKey symbol to fix menu display context (WordPress/gutenberg#76461)
- Fix: update the playlist-track file permissions from 755 to 644 (WordPress/gutenberg#76315)
- Theme_JSON: Prevent implicit coercion in `to_ruleset` (WordPress/gutenberg#76392)
- CI: Simplify strategy matrix in Build Gutenberg Plugin Zip workflow (WordPress/gutenberg#76435)
- Core Data: Fix selectors returning stale results for different 'per_page' queries (WordPress/gutenberg#76422)
- Fields: Add support for classic themes (WordPress/gutenberg#76441)
- TemplateContentPanel: fix useSelect warning (WordPress/gutenberg#76421)
- Tabs: Disable anchor support on Tab Menu Item (WordPress/gutenberg#76442)
- Core Data: Fix the list of properties persisted in autosaves (WordPress/gutenberg#76451)
- RTC: Fix error when entity record doesn't have 'meta' property (WordPress/gutenberg#76311)
- Navigation: Update close button size. (WordPress/gutenberg#76482)
- UI/Badge: Add border and neutral-strong background to `none` intent (WordPress/gutenberg#76356)
- Theme package: Add surface width design tokens (WordPress/gutenberg#76047)
- DataViews: Add spinner in `DataViewsLayout` in initial load of data (WordPress/gutenberg#76486)
- Fix: Rewrite the license check scripts to use Node's native module resolution (WordPress/gutenberg#75039)
- ESLint: Add `use-recommended-components` rule (WordPress/gutenberg#76222)
- Update Node version to v24 for flaky test reporter (WordPress/gutenberg#76492)
- ui/Card: increase padding, align with legacy Card (WordPress/gutenberg#76368)
- Docs: document controlled/uncontrolled prop naming conventions for `@wordpress/ui` (WordPress/gutenberg#76281)
- @wordpress/ui: add Collapsible component (WordPress/gutenberg#76280)
- CollapsibleCard: move trigger to the whole header (WordPress/gutenberg#76265)
- Link Picker: Use Homepage badge instead of Page if Homepage (WordPress/gutenberg#75929)
- RTC: Fix TypeError in areEditorStatesEqual when selection is undefined (WordPress/gutenberg#76163)
- Upgrade actionlint and run linting when composite actions are modified (WordPress/gutenberg#76503)
- Revisions: use useSubRegistry={false} to fix global store selectors (WordPress/gutenberg#76152)
- wp-env: Update JSON Schema with missing properties and add README docs (WordPress/gutenberg#76115)
- Patterns: add confirmation dialog before disconnecting/detaching (WordPress/gutenberg#75713)
- Page/Post Content Focus Mode: Fix insertion into Post Content block (WordPress/gutenberg#76477)
- Remove redundant onNavigateToEntityRecord filter and assignment (WordPress/gutenberg#76523)
- Feat: Block Library: Improve the design of MediaControlPreview and MediaControl (WordPress/gutenberg#76430)
- Add e2e test for date field in QuickEdit (WordPress/gutenberg#76528)
- Fix RTL styling on Connectors, Font Library, and boot-based admin pages (WordPress/gutenberg#76496)
- DataViews: Fix layout scrolling in constrained-height containers (WordPress/gutenberg#76453)
- Bump the github-actions group across 1 directory with 5 updates (WordPress/gutenberg#76530)
- RTC: Auto-register custom taxonomy rest_base values for CRDT sync (WordPress/gutenberg#75983)
- Modernize eslint-plugin rule APIs for ESLint v10 compatibility (WordPress/gutenberg#76507)
- Remove alexstine from codeowners (WordPress/gutenberg#76551)
- RTC: Add a limit for the default provider (WordPress/gutenberg#76437)
- Media Upload Modal: Try an uploading state with popover in the footer (WordPress/gutenberg#76228)
- Fix RTL styling on AI plugin callout banner (WordPress/gutenberg#76497)
- Add command palette trigger button to admin bar (WordPress/gutenberg#75757)
- Block Bindings: Remove source items constrained by enums (WordPress/gutenberg#76200)
- Connectors: Improve accessibility (WordPress/gutenberg#76456)
- Post Date: Migrate to textAlign block support (WordPress/gutenberg#75856)
- Dataviews: improve storybook infinite loading (WordPress/gutenberg#76566)
- HTML Block: Remove "unsaved changes" check (WordPress/gutenberg#76086)
- `CollapsibleCard`: add animations (WordPress/gutenberg#76378)
- Theme: Fix tags in Storybook (WordPress/gutenberg#76500)
- InputLayout.Slot: Forward className prop (WordPress/gutenberg#76459)
- Storybook: Upgrade to 10.2 (WordPress/gutenberg#76403)
- UI: Use `--wpds-cursor-control` design token (WordPress/gutenberg#76218)
- Media: Add hooks and extension points for client-side media processing (WordPress/gutenberg#74913)
- ESLint: Broaden `no-setting-ds-tokens` to all object property keys (WordPress/gutenberg#76212)
- Remove manual fallbacks from --wpds-* token usages in boot package (WordPress/gutenberg#76414)
- Fix token fallback plugins breaking JS strings with quoted font names (WordPress/gutenberg#76254)
- Connectors: Add unregisterConnector and upsert support (WordPress/gutenberg#76541)
- Add ExampleApplication story for ThemeProvider to better demonstrate component theme-ability (WordPress/gutenberg#76463)
- Admin UI: Add Storybook stories for Breadcrumbs and Page components (WordPress/gutenberg#76467)
- RTC: Fix list sidebar reset during real-time collaboration (WordPress/gutenberg#76025)
- Collapsible.Card: make contents hidden until found (WordPress/gutenberg#76498)
- Adopt surface-width design tokens for Dialog, Notice, and Modal widths (WordPress/gutenberg#76494)
- RTC: Fix CRDT serialization of nested RichText attributes (WordPress/gutenberg#76597)
- ESLint: Replace eslint-plugin-ssr-friendly with custom rules (WordPress/gutenberg#76508)
- Theme: Add `no-token-fallback-values` stylelint rule (WordPress/gutenberg#76415)
- ESLint: Add bare token check to `no-unknown-ds-tokens` (WordPress/gutenberg#76210)
- RTC: Remove post list lock icon and replace user-specific lock text (WordPress/gutenberg#76322)
- Fix HEIC upload error handling and sub-size format (WordPress/gutenberg#76514)
- RTC: Fix cursor index sync with rich text formatting (WordPress/gutenberg#76418)
- RTC: Allow filtering of `SyncConnectionModal` (WordPress/gutenberg#76554)
- RTC: Implement front-end peer limits (WordPress/gutenberg#76565)
- Content Guidelines: Rename route and use the right `Notice` component (WordPress/gutenberg#76427)
- Core Data: Fix per_page query logic for when offset is present in the query (WordPress/gutenberg#76613)
- useMediaQuery: support in-iframe queries via new `WindowContext` (WordPress/gutenberg#76446)
- Navigation overlay close button may be displayed twice (WordPress/gutenberg#76585)
- Fix script module dequeue race condition (WordPress/gutenberg#76170)
- Template field: match exactly the behavior of post template panel (WordPress/gutenberg#76596)
- Connectors: Fetch specific plugin instead of all plugins (WordPress/gutenberg#76594)
- Admin UI: update font size for title and breadcrumbs to match (WordPress/gutenberg#76452)
- Admin UI: Use hasPadding prop in Page stories instead of inline styles (WordPress/gutenberg#76601)
- Site Editor > Templates: fix author filter (WordPress/gutenberg#76625)
- Site Title Block: Fix preview display (WordPress/gutenberg#76614)
- Editor: Fix autosaves for draft and auto-draft posts (WordPress/gutenberg#76624)
- Revisions: Show changed block attributes in inspector sidebar (WordPress/gutenberg#76550)
- Fix IS_GUTENBERG_PLUGIN env var override in build config  (WordPress/gutenberg#76605)
- Loosen client-side media processing requirements (WordPress/gutenberg#76616)

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

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

Labels

Backported to WP Core Pull request that has been successfully merged into WP Core [Feature] Real-time Collaboration Phase 3 of the Gutenberg roadmap around real-time collaboration [Package] Core data /packages/core-data [Package] Editor /packages/editor [Type] Bug An existing feature does not function as intended

Projects

None yet

Development

Successfully merging this pull request may close these issues.

RTC: [Engine] Cursor position mismatch with inline HTML formatting in diffWithCursor

4 participants