Skip to content

Implement WebAssembly support detection and fallbacks#74827

Merged
adamsilverstein merged 2 commits intotrunkfrom
74365-wasm-detection
Feb 17, 2026
Merged

Implement WebAssembly support detection and fallbacks#74827
adamsilverstein merged 2 commits intotrunkfrom
74365-wasm-detection

Conversation

@adamsilverstein
Copy link
Copy Markdown
Member

@adamsilverstein adamsilverstein commented Jan 21, 2026

Summary

Closes #74365

Depends on #74566

This PR implements WebAssembly and SharedArrayBuffer support detection with automatic fallback to server-side processing when unavailable.

  • Add feature detection utility in @wordpress/upload-media that checks for WebAssembly and SharedArrayBuffer support
  • Integrate WASM detection into the block-editor provider to automatically determine client-side processing availability
  • Export detection functions (isWasmSupported, isSharedArrayBufferSupported, hasClientSideFallback) for use by other packages
  • Add comprehensive unit tests for the feature detection utility
  • Add browser compatibility documentation

Test plan

  • Verify feature detection correctly identifies browser capabilities
  • Test fallback behavior when WASM or SharedArrayBuffer is unavailable
  • Run unit tests: npm run test:unit packages/upload-media/src/test/feature-detection.ts
  • Check browser compatibility documentation in /docs/client-side-media-docs.md

Testing Instructions

  1. Use the feature branch for testing.
  2. Test image uploads with Chrome, note no console errors
  3. Test with credentialless headers disabled. Comment out lines that add them in lib/experimental/media/load.php or use:
remove_action( 'load-post.php', 'gutenberg_set_up_cross_origin_isolation' );
remove_action( 'load-post-new.php', 'gutenberg_set_up_cross_origin_isolation' );
remove_action( 'load-site-editor.php', 'gutenberg_set_up_cross_origin_isolation' );
remove_action( 'load-widgets.php', 'gutenberg_set_up_cross_origin_isolation' );
  1. Note console error indicating lack of support.
  2. Note image processing works as expected (using existing server mechanism fallback).

Note

This PR is against the feature/client-side-media-dev branch because changes this PR adjusts haven't been merged yet to trunk. Once the related PRs are merged, I will rebase these changes on trunk.

🤖 Generated in collaboration with Claude Code

@github-actions
Copy link
Copy Markdown

github-actions bot commented Jan 21, 2026

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: adamsilverstein <adamsilverstein@git.wordpress.org>
Co-authored-by: andrewserong <andrewserong@git.wordpress.org>
Co-authored-by: swissspidy <swissspidy@git.wordpress.org>
Co-authored-by: nickchomey <nickchomey@git.wordpress.org>

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

@adamsilverstein adamsilverstein changed the base branch from trunk to feature/client-side-media-dev January 21, 2026 22:41
@adamsilverstein adamsilverstein added [Type] Enhancement A suggestion for improvement. [Feature] Client Side Media Media processing in the browser with WASM labels Jan 21, 2026
@github-project-automation github-project-automation bot moved this to 🔎 Needs Review in WordPress 7.0 Editor Tasks Jan 21, 2026
@adamsilverstein adamsilverstein removed [Package] Core data /packages/core-data [Package] Editor /packages/editor [Package] Block editor /packages/block-editor labels Jan 21, 2026
@github-actions github-actions bot added the [Package] Block editor /packages/block-editor label Jan 21, 2026
Copy link
Copy Markdown
Member Author

@adamsilverstein adamsilverstein left a comment

Choose a reason for hiding this comment

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

Looks good!

@github-actions
Copy link
Copy Markdown

github-actions bot commented Jan 21, 2026

Size Change: +513 B (+0.01%)

Total Size: 6.84 MB

Filename Size Change
build/scripts/block-editor/index.min.js 327 kB +152 B (+0.05%)
build/scripts/upload-media/index.min.js 7.4 kB +361 B (+5.13%) 🔍
ℹ️ 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 779 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.12 kB
build/modules/block-library/playlist/view.min.js 418 B
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 14.7 kB
build/modules/core-abilities/index.min.js 892 B
build/modules/edit-site-init/index.min.js 2.13 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 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.2 kB
build/modules/route/index.min.js 24.6 kB
build/modules/vips/loader.min.js 127 B
build/modules/vips/worker.min.js 3.81 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 306 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.7 kB
build/scripts/commands/index.min.js 19.9 kB
build/scripts/components/index.min.js 266 kB
build/scripts/compose/index.min.js 13.9 kB
build/scripts/core-commands/index.min.js 4.29 kB
build/scripts/core-data/index.min.js 27.9 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.64 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 4.98 kB
build/scripts/edit-post/index.min.js 16.2 kB
build/scripts/edit-site/index.min.js 244 kB
build/scripts/edit-widgets/index.min.js 20 kB
build/scripts/editor/index.min.js 346 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 73.6 kB
build/scripts/notices/index.min.js 1.12 kB
build/scripts/nux/index.min.js 1.89 kB
build/scripts/patterns/index.min.js 7.75 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.08 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 2.92 kB
build/scripts/rich-text/index.min.js 13.9 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.37 kB
build/scripts/sync/index.min.js 42.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/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.47 kB
build/styles/block-editor/content-rtl.min.css 4.04 kB
build/styles/block-editor/content.css 5.46 kB
build/styles/block-editor/content.min.css 4.03 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.3 kB
build/styles/block-editor/style-rtl.min.css 15.7 kB
build/styles/block-editor/style.css 18.3 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 609 B
build/styles/block-library/button/style-rtl.min.css 554 B
build/styles/block-library/button/style.css 622 B
build/styles/block-library/button/style.min.css 554 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.11 kB
build/styles/block-library/common.css 2.49 kB
build/styles/block-library/common.min.css 1.11 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.3 kB
build/styles/block-library/editor-rtl.min.css 10 kB
build/styles/block-library/editor.css 12.3 kB
build/styles/block-library/editor.min.css 10.1 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.24 kB
build/styles/block-library/html/editor-rtl.min.css 419 B
build/styles/block-library/html/editor.css 1.25 kB
build/styles/block-library/html/editor.min.css 419 B
build/styles/block-library/icon/editor-rtl.css 768 B
build/styles/block-library/icon/editor-rtl.min.css 370 B
build/styles/block-library/icon/editor.css 768 B
build/styles/block-library/icon/editor.min.css 370 B
build/styles/block-library/icon/style-rtl.css 152 B
build/styles/block-library/icon/style-rtl.min.css 89 B
build/styles/block-library/icon/style.css 152 B
build/styles/block-library/icon/style.min.css 89 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.21 kB
build/styles/block-library/navigation-link/editor-rtl.min.css 645 B
build/styles/block-library/navigation-link/editor.css 1.21 kB
build/styles/block-library/navigation-link/editor.min.css 647 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 257 B
build/styles/block-library/navigation-overlay-close/style-rtl.min.css 236 B
build/styles/block-library/navigation-overlay-close/style.css 257 B
build/styles/block-library/navigation-overlay-close/style.min.css 236 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.55 kB
build/styles/block-library/navigation/style-rtl.min.css 2.49 kB
build/styles/block-library/navigation/style.css 3.54 kB
build/styles/block-library/navigation/style.min.css 2.48 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 84 B
build/styles/block-library/playlist/editor-rtl.min.css 73 B
build/styles/block-library/playlist/editor.css 84 B
build/styles/block-library/playlist/editor.min.css 73 B
build/styles/block-library/playlist/style-rtl.css 385 B
build/styles/block-library/playlist/style-rtl.min.css 363 B
build/styles/block-library/playlist/style.css 382 B
build/styles/block-library/playlist/style.min.css 363 B
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 20.6 kB
build/styles/block-library/style-rtl.min.css 17.1 kB
build/styles/block-library/style.css 20.7 kB
build/styles/block-library/style.min.css 17.1 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 254 B
build/styles/block-library/tabs-menu-item/editor-rtl.min.css 239 B
build/styles/block-library/tabs-menu-item/editor.css 254 B
build/styles/block-library/tabs-menu-item/editor.min.css 239 B
build/styles/block-library/tabs-menu-item/style-rtl.css 452 B
build/styles/block-library/tabs-menu-item/style-rtl.min.css 420 B
build/styles/block-library/tabs-menu-item/style.css 452 B
build/styles/block-library/tabs-menu-item/style.min.css 420 B
build/styles/block-library/tabs-menu/editor-rtl.css 102 B
build/styles/block-library/tabs-menu/editor-rtl.min.css 93 B
build/styles/block-library/tabs-menu/editor.css 102 B
build/styles/block-library/tabs-menu/editor.min.css 93 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 1.86 kB
build/styles/commands/style-rtl.min.css 1 kB
build/styles/commands/style.css 1.86 kB
build/styles/commands/style.min.css 1 kB
build/styles/components/style-rtl.css 16.9 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.07 kB
build/styles/edit-post/style-rtl.min.css 2.63 kB
build/styles/edit-post/style.css 4.07 kB
build/styles/edit-post/style.min.css 2.63 kB
build/styles/edit-site/style-rtl.css 20.4 kB
build/styles/edit-site/style-rtl.min.css 16.5 kB
build/styles/edit-site/style.css 20.4 kB
build/styles/edit-site/style.min.css 16.5 kB
build/styles/edit-widgets/style-rtl.css 5.25 kB
build/styles/edit-widgets/style-rtl.min.css 3.85 kB
build/styles/edit-widgets/style.css 5.24 kB
build/styles/edit-widgets/style.min.css 3.85 kB
build/styles/editor/style-rtl.css 23.2 kB
build/styles/editor/style-rtl.min.css 19.7 kB
build/styles/editor/style.css 23.2 kB
build/styles/editor/style.min.css 19.7 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 1.61 kB
build/styles/media-utils/style-rtl.min.css 745 B
build/styles/media-utils/style.css 1.61 kB
build/styles/media-utils/style.min.css 742 B
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/theme/style-rtl.css 2.7 kB
build/styles/theme/style-rtl.min.css 1.39 kB
build/styles/theme/style.css 2.7 kB
build/styles/theme/style.min.css 1.39 kB
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

@adamsilverstein
Copy link
Copy Markdown
Member Author

@copilot fix the linting errors and ensure the unit tests and end to end tests all pass on the PR.

Copy link
Copy Markdown
Contributor

Copilot AI commented Jan 22, 2026

@adamsilverstein I've opened a new pull request, #74834, to work on those changes. Once the pull request is ready, I'll request review from you.

Add runtime feature detection for client-side media processing capabilities
including WebAssembly, SharedArrayBuffer, cross-origin isolation, and CSP
blob worker support. Replace the experimental window flag with automatic
detection and graceful fallbacks.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
@adamsilverstein adamsilverstein changed the base branch from feature/client-side-media-dev to trunk February 15, 2026 09:48
@adamsilverstein
Copy link
Copy Markdown
Member Author

Rebased on trunk.

Comment on lines +55 to +65
// Check cross-origin isolation (required for SharedArrayBuffer in modern browsers).
if (
typeof window !== 'undefined' &&
window.crossOriginIsolated === false
) {
cachedResult = {
supported: false,
reason: 'Cross-origin isolation is not enabled. Required headers: Cross-Origin-Opener-Policy: same-origin, Cross-Origin-Embedder-Policy: credentialless',
};
return cachedResult;
}
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.

I don't think this will ever run. SharedArrayBuffer requires cross-origin isolation, so if it's missing, it will be caught by the check above.

The guidance is not accurate for Chrome anyway as it supports Document-Isolation-Policy. So I'd probably just remove this check here.

Copy link
Copy Markdown
Member Author

@adamsilverstein adamsilverstein Feb 15, 2026

Choose a reason for hiding this comment

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

Will remove, thanks.

Comment on lines +37 to +44
// Check WebAssembly support.
if ( typeof WebAssembly === 'undefined' ) {
cachedResult = {
supported: false,
reason: 'WebAssembly is not supported in this browser',
};
return cachedResult;
}
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.

I guess it can't hurt, but I don't think there is any modern browser that doesn't support it. It's been around for 9 years.

Copy link
Copy Markdown
Member Author

Choose a reason for hiding this comment

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

Trying to be thorough but yeah, we can probably remove this.

@nickchomey
Copy link
Copy Markdown

nickchomey commented Feb 15, 2026

I very much look forward to this and related functionality being implemented.

However, my impression from #74333 was that this effort would implement the feature without requiring users to change headers or CSP. The current PR’s documentation, however, indicates that doing so is necessary, providing only very vague guidance on how to accomplish it.

How does this reconcile with the Wordpress Philosophy of decisions over options, and the guideline of only implementing things that 80% of users would use? This was explicitly cited as the reason for not wanting to support server-side VIPS in Core (a trivial task, both for wp core and server support) - yet in practice, the majority of users will fall back to server-side processing anyway due to missing headers or hosting limitations.

Perhaps the server-side VIPS proposal should be reconsidered, allowing VIPS - the highest-performing image processor - to be used reliably on both client and server sides.

Additionally, I think this feature should be opt-in rather than on by default, since there are many situations where client-side processing is undesirable. Low-end devices - representing a large portion of global users - may struggle with it, and even faster devices still have to wait for processing before leaving the page. Or, at the very least, a benchmarking effort with a variety of image types and sizes on representative sample of end-user devices, should be undertaken before enabling by default.

If this is not the appropriate place to be raising these concerns, please let me know where I should bring them.

@swissspidy
Copy link
Copy Markdown
Member

Thanks for raising your concerns.

However, my impression from #74333 was that this effort would implement the feature without requiring users to change headers or CSP. The current PR’s documentation, however, indicates that doing so is necessary, providing only very vague guidance on how to accomplish it.
How does this reconcile with the Wordpress Philosophy of decisions over options, and the guideline of only implementing things that 80% of users would use?

Users don't have to make any configuration changes. WordPress will set the necessary headers automatically.

The checks in this PR are just fallbacks for when there is some server misconfiguration or plugin interference.

Perhaps the server-side VIPS proposal should be reconsidered, allowing VIPS - the highest-performing image processor - to be used reliably on both client and server sides.

That's simply not possible. WordPress typically runs on shared hosting where you can't install any additional software like that. And existing server-side solutions are limited and outdated, which is exactly why we're moving to client-side.

Additionally, I think this feature should be opt-in rather than on by default, since there are many situations where client-side processing is undesirable. Low-end devices - representing a large portion of global users - may struggle with it, and even faster devices still have to wait for processing before leaving the page. Or, at the very least, a benchmarking effort with a variety of image types and sizes on representative sample of end-user devices, should be undertaken before enabling by default.

There are ways to detect lower-end devices and UI options to disable client-side processing, so I wouldn't be worried about that. This can be gracefully handled.

@nickchomey
Copy link
Copy Markdown

nickchomey commented Feb 15, 2026

Users don't have to make any configuration changes. WordPress will set the necessary headers automatically.
The checks in this PR are just fallbacks for when there is some server misconfiguration or plugin interference.

Great to hear!

There are ways to detect lower-end devices and UI options to disable client-side processing, so I wouldn't be worried about that. This can be gracefully handled.

Good to hear that low-end device detection is on the radar. Perhaps something like this can be added to the roadmap in #74333?

Though, I don't know how you could know if users (or site owners on their behalf) would prefer to not use the feature - for bandwidth, ux, or any other reason. So, again, this seems like something that could be exposed as an option in one way or another. It could even be an opt-out in the media uploader, or even a hook that can be used by plugins/custom code to disable it.

That's simply not possible. WordPress typically runs on shared hosting where you can't install any additional software like that. And existing server-side solutions are limited and outdated, which is exactly why we're moving to client-side.

The point evidently has not been conveyed properly. Let me try again

Clearly some media will still fall back to the server - be it from a config issue or if the ability is given to turn it off. Given that, it can only be a positive thing to be able to use libvips, which is substantially more efficient than imagick and gd.

However, no one is saying that users should have to install libvips on their servers. Instead, we're saying that if WP Core supports VIPS and lets hosts know about it, the hosts can, should, and (hopefully) will install it, such that it just works without users having any knowledge (as is currently the case for imagick and gd).

Or, conversely, hosts that do implement it could advertise it as one of their differentiating factors (or it would simply just be noticed through lower server loads, faster response times/more concurrency, possible lower costs, etc...), and users would gravitate towards those hosts.

Or is it being suggested that there are supposedly-professional hosting companies who are not interested in meaningfully improving the efficiency of their servers? Or are otherwise incapable of running, essentially, `sudo apt install libvips42", yet deserve to continue having customers and also hold back the entire ecosystem?

I have spent the past couple hours working on a patch for adding VIPS support to WP Core, with tests etc... I'll try to add some sort of benchmarking (eg time, cpu usage, mem usage) as well, to compare the 3 methods. I'll share it when ready and look forward to any feedback about it.

@andrewserong
Copy link
Copy Markdown
Contributor

Though, I don't know how you could know if users (or site owners on their behalf) would prefer to not use the feature - for bandwidth, ux, or any other reason. So, again, this seems like something that could be exposed as an option in one way or another. It could even be an opt-out in the media uploader, or even a hook that can be used by plugins/custom code to disable it.

These are all good points. For WP 7.0, I think it'd be great if we can have in place (at the very least):

  • A hook to disable client-side media processing
  • Detection for bandwidth or low powered devices to automatically disable client-side media processing

This PR creates a natural place for that to happen in subsequent PRs, though, so this seems like a good direction forward to me. I could imagine these checks being added within the shouldEnableClientSideMediaProcessing function, so the structure here seems pretty solid to me 👍

export {
detectClientSideMediaSupport,
isClientSideMediaSupported,
clearFeatureDetectionCache,
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.

Tiny nit: do we need to export clearFeatureDetectionCache? It feels like an internal feature to me, and it's only used in the tests, so I wondered how necessary it is for consumers.

That said, if consumers need to clear the cache, it makes sense to include it, so not a blocker to me.

Copy link
Copy Markdown
Contributor

@andrewserong andrewserong left a comment

Choose a reason for hiding this comment

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

This is testing great for me! Just left a question about where to place the main shouldEnableClientSideMediaProcessing function, as from looking at #75112, we'll have lots of places where we want to determine whether client side media processing should happen, so bundling within upload-media might make sense.

Also, not sure it helps, but I asked Claude re: how we might determine low power / low network capability devices, and it suggested inspecting navigator.hardwareConcurrency, navigator.deviceMemory and navigator.connection and so on, so looks like there'll be some options there for follow-ups 👍

Comment on lines +28 to +50
/**
* Flag to track if we've already logged the fallback message.
*/
let hasLoggedFallback = false;

/**
* Cached result of whether client-side media processing should be enabled.
* This is computed once per session for efficiency and stability.
*/
let isClientSideMediaEnabledCache = null;

/**
* Checks if client-side media processing should be enabled.
*
* Returns true only if:
* 1. The experimental media processing flag is enabled
* 2. The browser supports WebAssembly, SharedArrayBuffer, cross-origin isolation, and CSP allows blob workers
*
* The result is cached for the session to ensure stability during React renders.
*
* @return {boolean} Whether client-side media processing should be enabled.
*/
function shouldEnableClientSideMediaProcessing() {
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 had a thought: should all this live in the upload-media package, or will we need anything that only exists in the block-editor package?

The reason I ask, is that we've also got conditional logic in the editor package for post locking, so I imagine we'll want to use this check over there, too, in place of the experiment check once we stabilise client-side media processing (i.e. what you're doing in #75112).

This might kind of be feedback for that PR, but the overall question is: should we have one place that incorporates all the different kinds of checks (e.g. window.__clientSideMediaProcessing + device capability, etc, etc) and use that function check elsewhere?

So far, it seem this function is such a utility for this. And if so, then maybe upload-media is a good place for it.

What do you think?

Copy link
Copy Markdown
Member Author

Choose a reason for hiding this comment

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

So far, it seem this function is such a utility for this. And if so, then maybe upload-media is a good place for it.

That makes sense to me, I'll give that a try here or in a follow up pr.

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.

That makes sense to me, I'll give that a try here or in a follow up pr.

All good. Feel free to land this PR first if it winds up being a bit rabbit-holey.

Copy link
Copy Markdown
Member Author

Choose a reason for hiding this comment

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

I'm going to merge this, then loop back to the final feedback in a follow up

Copy link
Copy Markdown
Member Author

Choose a reason for hiding this comment

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

See #75605

if ( typeof SharedArrayBuffer === 'undefined' ) {
cachedResult = {
supported: false,
reason: 'SharedArrayBuffer is not available. This may be due to missing cross-origin isolation headers.',
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.

This is such a minor thing, but I noticed inconsistent use of . at the end of the reason. This can result in the console log sometimes having a double ..:

Image

SharedArrayBuffer already requires cross-origin isolation,
so the explicit crossOriginIsolated check never runs. The
header guidance was also inaccurate for Chrome which supports
Document-Isolation-Policy.
@adamsilverstein adamsilverstein merged commit 34d82c6 into trunk Feb 17, 2026
41 checks passed
@adamsilverstein adamsilverstein deleted the 74365-wasm-detection branch February 17, 2026 06:41
@github-project-automation github-project-automation bot moved this from 🔎 Needs Review to ✅ Done in WordPress 7.0 Editor Tasks Feb 17, 2026
@github-actions github-actions bot added this to the Gutenberg 22.6 milestone Feb 17, 2026
@adamsilverstein
Copy link
Copy Markdown
Member Author

I created this follow up Issue to address remaining feedback that didn't make it into the merged PR: #75605

pento pushed a commit to WordPress/wordpress-develop that referenced this pull request Feb 18, 2026
Developed in #10968.

Props ellatrix, adamsilverstein, youknowriad.
See #64595.

---

I've included a log of the Gutenberg changes with the following command:

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

- Remove unnecessary block deprecation from experimental tabs (WordPress/gutenberg#75208)
- Block Editor: The insertBlock(s) actions should receive the same arguments (WordPress/gutenberg#75197)
- Storybook: Always load design tokens in Design System section (WordPress/gutenberg#74899)
- Default all initial suggested results to 20 for navigation link ui (WordPress/gutenberg#75186)
- Navigation overlay: remove experiment (WordPress/gutenberg#74968)
- Move AwarenessState to @wordpress/core-data (WordPress/gutenberg#75216)
- RichText: Avoid stale active formats when deleting the text (WordPress/gutenberg#75227)
- Fix <CollaboratorsPresence> type imports (WordPress/gutenberg#75232)
- Block Editor: Add l10n context to 'Manage allowed blocks' string (WordPress/gutenberg#75239)
- Fixed: Custom colors are now reflected in the editor for heading blocks (WordPress/gutenberg#75234)
- Real-time Collaboration: Fix revision restore bug (WordPress/gutenberg#75233)
- Real-time collaboration: Update 'sync.providers' filter inline comments (WordPress/gutenberg#75248)
- Real-time collaboration: Make the collaborators presense button translatable (WordPress/gutenberg#75252)
- Fix: Navigation Overlay Close Block: Add missing @SInCE tag WordPress/gutenberg#75247 (WordPress/gutenberg#75250)
- Cover: Add new "fullheight" icon, and use for Cover (WordPress/gutenberg#75240)
- Real-time collaboration: Remove @wordpress/sync from bundled packages and add private APIs (WordPress/gutenberg#74671)
- Navigation Link: Clarify Link To invalid and draft state messages (WordPress/gutenberg#74054)
- Docs: Simplifying Gutenberg versions table (WordPress/gutenberg#75209)
- UI: Remove Box component abstraction (WordPress/gutenberg#74986)
- Docs: Remove private GitHub team links in repository management (WordPress/gutenberg#75255)
- UI: Add `Textarea` primitive (WordPress/gutenberg#74707)
- Components: Add usage guidance for agents and Storybook (WordPress/gutenberg#74815)
- Theme: Update elevation tokens to use abbreviated size names (WordPress/gutenberg#75103)
- Navigation link: fix resetting link from the tools panel (WordPress/gutenberg#75228)
- List View Support: Only render list view on top level block with support (WordPress/gutenberg#75166)
- Gallery: Add lightbox support (WordPress/gutenberg#62906)
- Workflows: Ignore icons manifest for manual backports (WordPress/gutenberg#75245)
- Add new `adaptiveSelect` DataForm control (WordPress/gutenberg#74937)
- Site Editor Pages: QuickEdit as a modal (WordPress/gutenberg#75173)
- Add block rename keyboard shortcut (WordPress/gutenberg#74454)
- Playlist block: Remove border (WordPress/gutenberg#75202)
- Widget Area: Disable renaming and visibility support (WordPress/gutenberg#75279)
- @wordpress/theme: add missing CHANGELOG entries (WordPress/gutenberg#75281)
- Storybook: Add Stories for LetterSpacingControl component (WordPress/gutenberg#73480)
- Remove the client from the awareness state when they disconnect (WordPress/gutenberg#75253)
- Fix awareness timeout documentation unit (WordPress/gutenberg#75284)
- Add global setting to enable real-time collaboration (WordPress/gutenberg#75286)
- Notes: Pressing Escape should cancel adding a note (WordPress/gutenberg#75288)
- Real-time Collaboration: Change users to collaborators (WordPress/gutenberg#75237)
- Add timestamp when publishing next versions (WordPress/gutenberg#75293)
- Storybook: Preserve export order for stories (WordPress/gutenberg#75295)
- ToggleControl: Prevent console warning for `__nextHasNoMarginBottom` (WordPress/gutenberg#75296)
- Quick edit: Make footer sticky (WordPress/gutenberg#75297)
- DataForm Regular layout: label always uppercase (WordPress/gutenberg#75292)
- @wordpress/ui: add Dialog component (WordPress/gutenberg#75183)
- Navigation Link: Go to page link and edit page for inspector sidebar (WordPress/gutenberg#75262)
- SiteEditor Pages: prevent QuickEdit modal from being triggered in list layout via URL param (WordPress/gutenberg#75300)
- Link Control: Fix validation timing (WordPress/gutenberg#75267)
- Publishing packages: fix next timestamp (WordPress/gutenberg#75301)
- Add storybook for ColorPaletteControl (WordPress/gutenberg#74425)
- Post Comments Form: Migrate to text-align block support (WordPress/gutenberg#75322)
- Post Comments Count: Migrate to text-align block support (WordPress/gutenberg#75321)
- Optimize tabsList computation with useRef for comparison (WordPress/gutenberg#75219)
- Accordion block: Add list view support (WordPress/gutenberg#75271)
- Media Fields: Filter author field to only show users with authoring capabilities (WordPress/gutenberg#75328)
- Fields: Fix `authorField` query (WordPress/gutenberg#75298)
- Slot: fix ref forwarding (WordPress/gutenberg#75274)
- wp-env: Add --config option for custom config files (WordPress/gutenberg#75087)
- Update Emotion for React 19 compat (WordPress/gutenberg#75324)
- Block Visibility: Show keyboard shortcut hint in context menu (WordPress/gutenberg#75334)
- Updated Typo in template-activate file (WordPress/gutenberg#75333)
- wp-env: fix status command (WordPress/gutenberg#75325)
- Playlist block:Inherit more CSS (WordPress/gutenberg#75256)
- DataViews: Add onReset prop for view persistence reset (WordPress/gutenberg#75093)
- Notes: Add a keyboard shortcut for creating a new note (WordPress/gutenberg#75287)
- Storybook: Fix missing props on certain components (WordPress/gutenberg#75316)
- Pattern Editing: Allow click through to List View (WordPress/gutenberg#75246)
- Block Bindings: Have block fields panel reflects bound attribute value (WordPress/gutenberg#72096)
- Fix: ISO 8601 compliant year formatting in TimePicker (WordPress/gutenberg#75343)
- Prevent fatal error when the inline CSS duotone variable is an array (WordPress/gutenberg#75283)
- Bugfix: Set the removed users to empty for awareness (WordPress/gutenberg#75337)
- Button: prevent outline flicker when focused and active at the same time (WordPress/gutenberg#75346)
- Real-time collaboration: Always target autosave revision (WordPress/gutenberg#75105)
- In-editor revisions: add visual diffing (WordPress/gutenberg#75049)
- iAPI Router: Update cached styles for re-fetched pages (WordPress/gutenberg#75097)
- Add tests for the awareness code in core-data (WordPress/gutenberg#75074)
- Add tests for the awareness code in sync (WordPress/gutenberg#75077)
- Lock save button during Client Side Media processing and uploading (WordPress/gutenberg#74951)
- Real-time Collaboration: Fix broken unit tests for awareness (WordPress/gutenberg#75362)
- Boot: Fix mobile admin bar covering single-page mode headers (WordPress/gutenberg#75339)
- Design System: Add guidelines for save and submit UX (WordPress/gutenberg#74811)
- Featured Image: fix select-default-value (WordPress/gutenberg#75358)
- Breadcrumbs: Improve loading state rendering (WordPress/gutenberg#75383)
- Block Editor: Remove formatting controls restriction private API (WordPress/gutenberg#75382)
- Link Control: Validate on submit (WordPress/gutenberg#75310)
- Rich Text: Remove min-width inline style causing flex layout issues (WordPress/gutenberg#75370)
- Tabs: Tidy up UI for controls (WordPress/gutenberg#75309)
- Core Block Reference: Fix object empty inner key processing (WordPress/gutenberg#75391)
- Improve sync performance metrics (WordPress/gutenberg#75029)
- DataForm: update panel trigger (WordPress/gutenberg#75290)
- Block Editor: Fix Columns block horizontal spacing when setting vertical gap (WordPress/gutenberg#75355)
- DataViews Filters: Fix styling of long values in filter dropdown (WordPress/gutenberg#75369)
- Try swapping tabs (WordPress/gutenberg#75194)
- RichText: move useFormatTypes to rich-text package (WordPress/gutenberg#75387)
- Make all navigation overlay close buttons work (WordPress/gutenberg#75384)
- Block Editor: Improve Background panel UI in Global Styles (WordPress/gutenberg#75230)
- Tabs: Update Tabs block icons (WordPress/gutenberg#75376)
- Accordion: Move Accordion icons to Icon library (WordPress/gutenberg#75380)
- Fix: Changing URL in link after changing text outside the popover resets it (WordPress/gutenberg#75342)
- Update icon manifest acronyms. (WordPress/gutenberg#75418)
- Code Modernization: Use null coalescing operator in additional `isset() ternaries. (WordPress/gutenberg#75419)
- Pattern Editing: Move List View selectors to private-selectors (WordPress/gutenberg#75414)
- DataViews: Use public ColorPicker instead of internal Picker export (WordPress/gutenberg#75394)
- Abilities: Allow nested namespace ability names (2-4 segments) (WordPress/gutenberg#75393)
- Fix: Remove backport changelog committed by mistake (WordPress/gutenberg#75441)
- Block Visibility: Simplify toolbar for hidden blocks (WordPress/gutenberg#75335)
- Block Visibility: Centralize modal state in block-editor store (WordPress/gutenberg#75367)
- Allow grid to use style variation blockGap values for columns calculation (WordPress/gutenberg#75360)
- Langauge Format: Add missing attribute definiton (WordPress/gutenberg#75422)
- Block transform command: pass the block icon src rather than a BlockIcon component (WordPress/gutenberg#75365)
- Note: Remove block highlight when deleting parent note (WordPress/gutenberg#75453)
- Core Data: Improve blocks cache in useEntityBlockEditor (WordPress/gutenberg#75400)
- MediaEdit: Support ordered values and reordering of items (WordPress/gutenberg#75207)
- Writing flow: fix select all with full formatting (WordPress/gutenberg#64934)
- Filter navigation category patterns to only show in navigation-overlay template part context (WordPress/gutenberg#75276)
- Update Testing Library for React 19 compat (WordPress/gutenberg#75340)
- Writing Flow: Fix block selection from partially selected RichText (WordPress/gutenberg#75449)
- Notes: Fix sidebar display logic for small screens (WordPress/gutenberg#75454)
- Post editor: iframe: check inserted rather than registered block versions (WordPress/gutenberg#75187)
- Block Visibility: Disable visibility toggle for children of sections (WordPress/gutenberg#75447)
- Notes: Update shortcut category (WordPress/gutenberg#75461)
- Add dedicated navigation-overlay icon (WordPress/gutenberg#75249) (WordPress/gutenberg#75426)
- Docs: Rename Interactivity API's 'API Reference' to 'Directives and Store' (WordPress/gutenberg#74974)
- DataForm: Fix color picker styles (WordPress/gutenberg#75427)
- Post Excerpt Block: Remove REST API filter for excerpt length in post excerpt block (WordPress/gutenberg#75299)
- Move experimental PR out of backport log (WordPress/gutenberg#75465)
- Add paste logging to writing flow (WordPress/gutenberg#73885)
- Real-time collaboration: Sync post content and undefined `blocks` value (WordPress/gutenberg#75437)
- Gutenberg plugin: always enforce the iframe in the post editor (WordPress/gutenberg#75475)
- New Block: Icon Block (WordPress/gutenberg#71227)
- Tabs: Improve tab keyboard nav (WordPress/gutenberg#75471)
- Pre-populate Navigation Page Creator with Search Text  (WordPress/gutenberg#75154)
- Block Library: Hide navigation-overlay template parts from inserter (WordPress/gutenberg#75478)
- Tabs: Add text and background color support (WordPress/gutenberg#75482)
- Preserve existing URLInput defaults (WordPress/gutenberg#75392)
- UI: Remove unnecessary jest.setTimeout from Select test (WordPress/gutenberg#75444)
- Fix missed dimension token migration in UI package (WordPress/gutenberg#75446)
- Render default density selector last in design tokens CSS (WordPress/gutenberg#75474)
- Navigation: Improved help text in create a page flow (WordPress/gutenberg#75349)
- Fix gap token migration guide in changelog (WordPress/gutenberg#75492)
- Block Visibility: Disable Apply button on non-dirty state (WordPress/gutenberg#75494)
- Real-time Collaboration: Use Y.text for title, content and excerpt (WordPress/gutenberg#75448)
- DataForm: Style SummaryButton in panel layout with `is-disabled` classname (WordPress/gutenberg#75470)
- Gallery: Add list view block support (WordPress/gutenberg#75407)
- Types: consistently use the React namespace (WordPress/gutenberg#75499)
- Enhance block appender labels to reflect default block type (WordPress/gutenberg#71502)
- Import Yjs correctly (WordPress/gutenberg#75500)
- Add testsEnvironment option and split Gutenberg wp-env configs (WordPress/gutenberg#75341)
- Add `clearEntityRecordEdits` action to core-data (WordPress/gutenberg#75397)
- Tabs: Stabilize Tabs blocks (WordPress/gutenberg#75424)
- Simplify Tabs Menu Item editing (WordPress/gutenberg#75416)
- Fix LinkControl URL Normalization (WordPress/gutenberg#75488)
- Navigation Submenu: Restore openSubmenusOnClick to usesContext for backward compatibility. (WordPress/gutenberg#75435)
- Tabs: Add `@since 7.0.0` annotations (WordPress/gutenberg#75521)
- Story types: fix StoryFns used as React components (WordPress/gutenberg#75472)
- Tabs: fix incorrect fixtures (WordPress/gutenberg#75523)
- AGENTS.md: Add CLAUDE.md symlinks, architecture decisions, and common pitfalls (WordPress/gutenberg#75507)
- Use contextual snackbar text when activating a theme from preview (WordPress/gutenberg#75385)
- Pick user fields instead of spreading the entire object (WordPress/gutenberg#75528)
- Real-time collaboration: Move PHP code to compat / backports directory (WordPress/gutenberg#75366)
- Icons: Fix incorrect attributes for SVG (WordPress/gutenberg#75273)
- Icons: Make full height icon label title case (WordPress/gutenberg#75524)
- Respect deprecated openSubmenusOnClick value on frontend rendering (WordPress/gutenberg#75439)
- useRef: always supply initial value (WordPress/gutenberg#75513)
- Code Modernization: Replace isset() checks with null coalescing operator (WordPress/gutenberg#75425)
- Prefix usages of JSX namespaces with React.JSX (WordPress/gutenberg#75508)
- Cleanup: Remove unnecessary array check in `WP_Theme_JSON_Gutenberg` (WordPress/gutenberg#75515)
- Real-time collaboration: Add collaborators cursor awareness (WordPress/gutenberg#75398)
- Post Comments Link: Migrate to Text-Align Block Support (WordPress/gutenberg#75332)
- Post time to read: Migrate to Text-Align Block Support (WordPress/gutenberg#75541)
- ExternalLink: Prevent Twemoji from replacing arrow (WordPress/gutenberg#75538)
- Duotone: add sgomes as owner (WordPress/gutenberg#75519)
- Use null coalescing operator for common isset patterns (WordPress/gutenberg#75487)
- Term Description: Migrate to Text-Align Block Support (WordPress/gutenberg#75542)
- Create sub-sized images (WordPress/gutenberg#74566)
- Add EXIF metadata tests for Client Side Media (WordPress/gutenberg#74909)
- Add AVIF, WebP and MozJPEG output encoding support (WordPress/gutenberg#75081)
- Post Terms: Migrate to Text-Align Block Support (WordPress/gutenberg#75545)
- Tabs: Make Example preview translatable (WordPress/gutenberg#75555)
- List View tab: Ensure it's populated when first selecting a container block (WordPress/gutenberg#75558)
- Fix auto draft bug for Y.text titles (WordPress/gutenberg#75560)
- Border Support: Fix editor split border style fallback (WordPress/gutenberg#75546)
- Block Editor: Avoid unnecessary state churn in controlled inner blocks reducers (WordPress/gutenberg#75458)
- Block Lock: Disable Apply button on non-dirty state (WordPress/gutenberg#75495)
- Post Terms: Avoid unbound queries when the post context isn't available (WordPress/gutenberg#75536)
- wp-env Playground: improve mapping and core source handling (WordPress/gutenberg#75527)
- DataForm: add edit variant (WordPress/gutenberg#75462)
- Tabs: Improve Tab Panel accessibility (WordPress/gutenberg#75484)
- Tabs: Remove name editing UI (WordPress/gutenberg#75554)
- useBlockSync: stop reconstructing controlled inner blocks (WordPress/gutenberg#75562)
- Notes: Fix new note creation from the List View (WordPress/gutenberg#75566)
- Navigation: Update overlay template part naming to "Navigation Overlay" (WordPress/gutenberg#75564)
- Update usage of RefObject types (React 19 compat) (WordPress/gutenberg#75567)
- useMergeRefs: migrate to TypeScript (WordPress/gutenberg#75569)
- Improve link preview badges (WordPress/gutenberg#75318)
- Add getDimensionsClassesAndStyles function and related tests (WordPress/gutenberg#74524)
- Informational Parity between Inspector Link Preview and on Canvas Link Preview (WordPress/gutenberg#75399)
- Icons Registry: Don't expose "internal" icons (WordPress/gutenberg#75526)
- ui/Button: fix disabled styles and variable composition (WordPress/gutenberg#75568)
- Tabs: Set explicit font-family on tab buttons (WordPress/gutenberg#75537)
- Interactivity API: Export `watch` from `@preact/signals`'s `effect` (WordPress/gutenberg#75563)
- iAPI router: Move internal properties to a private store (WordPress/gutenberg#70882)
- Post Excerpt: Add text columns support (WordPress/gutenberg#75587)
- Update gutenberg to match core after WordPress/gutenberg#75360 sync (WordPress/gutenberg#75594)
- Block Visibility: Show viewport icons and tooltip in list view for hidden blocks (WordPress/gutenberg#75404)
- [Real-time collaboration] Refine collaborator overlay with Avatar component integration (WordPress/gutenberg#75595)
- Media Utils: Auto-select uploaded files in media modal experiment (WordPress/gutenberg#75597)
- Try enabling paragraphs to be added to contentOnly patterns (WordPress/gutenberg#73222)
- Implement WebAssembly support detection and fallbacks (WordPress/gutenberg#74827)
- Icon block: Skip serialization and increase default size (WordPress/gutenberg#75553)
- In-editor Revisions: Update success notice message (WordPress/gutenberg#75411)
- Stabilize PHP-Only Block Registration (WordPress/gutenberg#75543)
- Add comments around expandRevision functionality (WordPress/gutenberg#75573)
- Tab Block: Ensure label formatting works correctly (WordPress/gutenberg#75548)
- Tabs: Fix saved HTML (WordPress/gutenberg#75580)
- [Real-time collaboration] Fix <CollaboratorsPresence> layout issue (WordPress/gutenberg#75599)
- Notes: Fix block toolbar click action (WordPress/gutenberg#75614)
- Commands: Add category property to command registration (WordPress/gutenberg#75612)
- fix tab color-reset-all-filter (WordPress/gutenberg#75606)
- Fix selection restoration after entity navigation (WordPress/gutenberg#75371)
- Tabs: Sanitize tab_id (WordPress/gutenberg#75615)
- Inherit text color for tabs-menu-item blocks (WordPress/gutenberg#75621)
- Auto-switch viewport based on Overlay Visibility setting when entering overlay editor (WordPress/gutenberg#75386)
- Fix: Show and hook up submenu visibility for Page Lists within Navigation Blocks (WordPress/gutenberg#75531)
- Remove useEffect guard rail to enforce minimum width. (WordPress/gutenberg#75624)
- Navigation: select list view tab on contentOnly. Alternative with explicit solution (WordPress/gutenberg#75578)
- Navigation overlay: added basic e2e tests (WordPress/gutenberg#75581)
- Revert Tabs block to experimental block (WordPress/gutenberg#75572)
- List Block: Prevent content loss when merging into a fresh empty list item (WordPress/gutenberg#74382)
- Fix Overlay core patterns not showing on design tab (WordPress/gutenberg#75618)
- Rename Verse block to Poetry (WordPress/gutenberg#74121)
- Fix Navigation block button showing "View custom" instead of "View link" for external URLs (WordPress/gutenberg#75571)
- Removed Unused Global Documentation (WordPress/gutenberg#75631)
- Real-time collaboration: Add sync connection status handling (WordPress/gutenberg#75066)
- Add e2e test for selection restoration after pattern entity navigation (WordPress/gutenberg#75575)
- Remove the Icon Block and Icon SVG API from experiments (WordPress/gutenberg#75576)
- Block editor cross origin isolation: attempt to gracefully deal with race conditions (WordPress/gutenberg#75600)
- Update diff package (WordPress/gutenberg#75644)
- Upload Media: rebase of 75547 (WordPress/gutenberg#75646)
- Block Editor: Allow disabling content-only editing for unsynced patterns (WordPress/gutenberg#75457)
- Real-Time Collaboration: Add e2e tests for RTC (WordPress/gutenberg#75598)
- Update the y-protocols versin and remove the unncessary types (WordPress/gutenberg#75657)
- Pattern Editing: Add "Edit section" button to unsynced pattern toolbar (WordPress/gutenberg#75602)
- PHP-Only Block Registration: Remove client-side schema validation (WordPress/gutenberg#75623)
- Navigation: Add 'expectedDeprecated' annotations (WordPress/gutenberg#75659)
- Site Editor: make QuickEdit stable + change template to select (WordPress/gutenberg#75565)
- Icon Block: Move default width rule to theme.json instead of block.json (WordPress/gutenberg#75653)
- Add e2e test for loading settings in site editor preload spec (WordPress/gutenberg#75661)
- Update Ariakit packages (WordPress/gutenberg#75620)
- Upgrade Playwright to v1.58 (WordPress/gutenberg#75632)
- GitHub actions: Exclude lib/theme.json from backport changelog check (WordPress/gutenberg#75666)
- theme.json: Enable width support for icon block by default (WordPress/gutenberg#75665)
- Icons: Trim list of public icons further (WordPress/gutenberg#75630)
- Update Navigation block tests to use non-deprecated API (WordPress/gutenberg#75660)
- Update navigation block tests to use gutenberg version of block_core_navigation_block_tree_has_block_type - works on old wp versions (WordPress/gutenberg#75673)
- Update copy (WordPress/gutenberg#75663)
- Commands: Display category labels and enforce category icons (WordPress/gutenberg#75669)
- Heading Block: Fix preview display (WordPress/gutenberg#75675)
- Iframe: memoize src URL globally keyed by resolvedAssets (WordPress/gutenberg#75619)
- ContrastChecker: Fix check for button block colors (WordPress/gutenberg#71959)
- Writing flow: skip non-empty blocks on arrow key nav (WordPress/gutenberg#75141)
- Comments Link: fix transforms textAlign (WordPress/gutenberg#75676)
- Add initialSearchState to avoid console warnings from LinkControl inputValue change (WordPress/gutenberg#75643)
- Migrate `EditorSnackbar` and `EditorNotices` components to the `@wordpress/notices` package (WordPress/gutenberg#74384)
- Add minimum cap check to sync endpoint (WordPress/gutenberg#75681)
- Fix: Hide link controls in sidebar when submenus open on click (WordPress/gutenberg#75637)
- Set snackbar position to center  (WordPress/gutenberg#75294)
- Gallery: Fix PHP warning in random order image reordering (WordPress/gutenberg#75678)
- DateCalendar, DateRangeCalendar: use lighter gray for disabled dates (WordPress/gutenberg#75683)
- Pass unsupported formats directly to the server (WordPress/gutenberg#74910)
- RTC: Compact on request with encodeStateAsUpdate (WordPress/gutenberg#75682)
- Icons: Generate manifest PHP file based on JSON file (WordPress/gutenberg#75684)
- ui/IconButton: make icon always 24px regardless of `size` prop (WordPress/gutenberg#75677)
- Gallery: Skip interactivity directives when no images have lightbox enabled (WordPress/gutenberg#75680)
- DataForm: Fix focus loss and refactor Card layout (WordPress/gutenberg#75689)
- Remove IS_GUTENBERG_PLUGIN checks for collaborative editing (WordPress/gutenberg#75699)


git-svn-id: https://develop.svn.wordpress.org/trunk@61680 602fd350-edb4-49c9-b593-d223f7449a82
markjaquith pushed a commit to markjaquith/WordPress that referenced this pull request Feb 18, 2026
Developed in WordPress/wordpress-develop#10968.

Props ellatrix, adamsilverstein, youknowriad.
See #64595.

---

I've included a log of the Gutenberg changes with the following command:

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

- Remove unnecessary block deprecation from experimental tabs (WordPress/gutenberg#75208)
- Block Editor: The insertBlock(s) actions should receive the same arguments (WordPress/gutenberg#75197)
- Storybook: Always load design tokens in Design System section (WordPress/gutenberg#74899)
- Default all initial suggested results to 20 for navigation link ui (WordPress/gutenberg#75186)
- Navigation overlay: remove experiment (WordPress/gutenberg#74968)
- Move AwarenessState to @wordpress/core-data (WordPress/gutenberg#75216)
- RichText: Avoid stale active formats when deleting the text (WordPress/gutenberg#75227)
- Fix <CollaboratorsPresence> type imports (WordPress/gutenberg#75232)
- Block Editor: Add l10n context to 'Manage allowed blocks' string (WordPress/gutenberg#75239)
- Fixed: Custom colors are now reflected in the editor for heading blocks (WordPress/gutenberg#75234)
- Real-time Collaboration: Fix revision restore bug (WordPress/gutenberg#75233)
- Real-time collaboration: Update 'sync.providers' filter inline comments (WordPress/gutenberg#75248)
- Real-time collaboration: Make the collaborators presense button translatable (WordPress/gutenberg#75252)
- Fix: Navigation Overlay Close Block: Add missing @SInCE tag WordPress/gutenberg#75247 (WordPress/gutenberg#75250)
- Cover: Add new "fullheight" icon, and use for Cover (WordPress/gutenberg#75240)
- Real-time collaboration: Remove @wordpress/sync from bundled packages and add private APIs (WordPress/gutenberg#74671)
- Navigation Link: Clarify Link To invalid and draft state messages (WordPress/gutenberg#74054)
- Docs: Simplifying Gutenberg versions table (WordPress/gutenberg#75209)
- UI: Remove Box component abstraction (WordPress/gutenberg#74986)
- Docs: Remove private GitHub team links in repository management (WordPress/gutenberg#75255)
- UI: Add `Textarea` primitive (WordPress/gutenberg#74707)
- Components: Add usage guidance for agents and Storybook (WordPress/gutenberg#74815)
- Theme: Update elevation tokens to use abbreviated size names (WordPress/gutenberg#75103)
- Navigation link: fix resetting link from the tools panel (WordPress/gutenberg#75228)
- List View Support: Only render list view on top level block with support (WordPress/gutenberg#75166)
- Gallery: Add lightbox support (WordPress/gutenberg#62906)
- Workflows: Ignore icons manifest for manual backports (WordPress/gutenberg#75245)
- Add new `adaptiveSelect` DataForm control (WordPress/gutenberg#74937)
- Site Editor Pages: QuickEdit as a modal (WordPress/gutenberg#75173)
- Add block rename keyboard shortcut (WordPress/gutenberg#74454)
- Playlist block: Remove border (WordPress/gutenberg#75202)
- Widget Area: Disable renaming and visibility support (WordPress/gutenberg#75279)
- @wordpress/theme: add missing CHANGELOG entries (WordPress/gutenberg#75281)
- Storybook: Add Stories for LetterSpacingControl component (WordPress/gutenberg#73480)
- Remove the client from the awareness state when they disconnect (WordPress/gutenberg#75253)
- Fix awareness timeout documentation unit (WordPress/gutenberg#75284)
- Add global setting to enable real-time collaboration (WordPress/gutenberg#75286)
- Notes: Pressing Escape should cancel adding a note (WordPress/gutenberg#75288)
- Real-time Collaboration: Change users to collaborators (WordPress/gutenberg#75237)
- Add timestamp when publishing next versions (WordPress/gutenberg#75293)
- Storybook: Preserve export order for stories (WordPress/gutenberg#75295)
- ToggleControl: Prevent console warning for `__nextHasNoMarginBottom` (WordPress/gutenberg#75296)
- Quick edit: Make footer sticky (WordPress/gutenberg#75297)
- DataForm Regular layout: label always uppercase (WordPress/gutenberg#75292)
- @wordpress/ui: add Dialog component (WordPress/gutenberg#75183)
- Navigation Link: Go to page link and edit page for inspector sidebar (WordPress/gutenberg#75262)
- SiteEditor Pages: prevent QuickEdit modal from being triggered in list layout via URL param (WordPress/gutenberg#75300)
- Link Control: Fix validation timing (WordPress/gutenberg#75267)
- Publishing packages: fix next timestamp (WordPress/gutenberg#75301)
- Add storybook for ColorPaletteControl (WordPress/gutenberg#74425)
- Post Comments Form: Migrate to text-align block support (WordPress/gutenberg#75322)
- Post Comments Count: Migrate to text-align block support (WordPress/gutenberg#75321)
- Optimize tabsList computation with useRef for comparison (WordPress/gutenberg#75219)
- Accordion block: Add list view support (WordPress/gutenberg#75271)
- Media Fields: Filter author field to only show users with authoring capabilities (WordPress/gutenberg#75328)
- Fields: Fix `authorField` query (WordPress/gutenberg#75298)
- Slot: fix ref forwarding (WordPress/gutenberg#75274)
- wp-env: Add --config option for custom config files (WordPress/gutenberg#75087)
- Update Emotion for React 19 compat (WordPress/gutenberg#75324)
- Block Visibility: Show keyboard shortcut hint in context menu (WordPress/gutenberg#75334)
- Updated Typo in template-activate file (WordPress/gutenberg#75333)
- wp-env: fix status command (WordPress/gutenberg#75325)
- Playlist block:Inherit more CSS (WordPress/gutenberg#75256)
- DataViews: Add onReset prop for view persistence reset (WordPress/gutenberg#75093)
- Notes: Add a keyboard shortcut for creating a new note (WordPress/gutenberg#75287)
- Storybook: Fix missing props on certain components (WordPress/gutenberg#75316)
- Pattern Editing: Allow click through to List View (WordPress/gutenberg#75246)
- Block Bindings: Have block fields panel reflects bound attribute value (WordPress/gutenberg#72096)
- Fix: ISO 8601 compliant year formatting in TimePicker (WordPress/gutenberg#75343)
- Prevent fatal error when the inline CSS duotone variable is an array (WordPress/gutenberg#75283)
- Bugfix: Set the removed users to empty for awareness (WordPress/gutenberg#75337)
- Button: prevent outline flicker when focused and active at the same time (WordPress/gutenberg#75346)
- Real-time collaboration: Always target autosave revision (WordPress/gutenberg#75105)
- In-editor revisions: add visual diffing (WordPress/gutenberg#75049)
- iAPI Router: Update cached styles for re-fetched pages (WordPress/gutenberg#75097)
- Add tests for the awareness code in core-data (WordPress/gutenberg#75074)
- Add tests for the awareness code in sync (WordPress/gutenberg#75077)
- Lock save button during Client Side Media processing and uploading (WordPress/gutenberg#74951)
- Real-time Collaboration: Fix broken unit tests for awareness (WordPress/gutenberg#75362)
- Boot: Fix mobile admin bar covering single-page mode headers (WordPress/gutenberg#75339)
- Design System: Add guidelines for save and submit UX (WordPress/gutenberg#74811)
- Featured Image: fix select-default-value (WordPress/gutenberg#75358)
- Breadcrumbs: Improve loading state rendering (WordPress/gutenberg#75383)
- Block Editor: Remove formatting controls restriction private API (WordPress/gutenberg#75382)
- Link Control: Validate on submit (WordPress/gutenberg#75310)
- Rich Text: Remove min-width inline style causing flex layout issues (WordPress/gutenberg#75370)
- Tabs: Tidy up UI for controls (WordPress/gutenberg#75309)
- Core Block Reference: Fix object empty inner key processing (WordPress/gutenberg#75391)
- Improve sync performance metrics (WordPress/gutenberg#75029)
- DataForm: update panel trigger (WordPress/gutenberg#75290)
- Block Editor: Fix Columns block horizontal spacing when setting vertical gap (WordPress/gutenberg#75355)
- DataViews Filters: Fix styling of long values in filter dropdown (WordPress/gutenberg#75369)
- Try swapping tabs (WordPress/gutenberg#75194)
- RichText: move useFormatTypes to rich-text package (WordPress/gutenberg#75387)
- Make all navigation overlay close buttons work (WordPress/gutenberg#75384)
- Block Editor: Improve Background panel UI in Global Styles (WordPress/gutenberg#75230)
- Tabs: Update Tabs block icons (WordPress/gutenberg#75376)
- Accordion: Move Accordion icons to Icon library (WordPress/gutenberg#75380)
- Fix: Changing URL in link after changing text outside the popover resets it (WordPress/gutenberg#75342)
- Update icon manifest acronyms. (WordPress/gutenberg#75418)
- Code Modernization: Use null coalescing operator in additional `isset() ternaries. (WordPress/gutenberg#75419)
- Pattern Editing: Move List View selectors to private-selectors (WordPress/gutenberg#75414)
- DataViews: Use public ColorPicker instead of internal Picker export (WordPress/gutenberg#75394)
- Abilities: Allow nested namespace ability names (2-4 segments) (WordPress/gutenberg#75393)
- Fix: Remove backport changelog committed by mistake (WordPress/gutenberg#75441)
- Block Visibility: Simplify toolbar for hidden blocks (WordPress/gutenberg#75335)
- Block Visibility: Centralize modal state in block-editor store (WordPress/gutenberg#75367)
- Allow grid to use style variation blockGap values for columns calculation (WordPress/gutenberg#75360)
- Langauge Format: Add missing attribute definiton (WordPress/gutenberg#75422)
- Block transform command: pass the block icon src rather than a BlockIcon component (WordPress/gutenberg#75365)
- Note: Remove block highlight when deleting parent note (WordPress/gutenberg#75453)
- Core Data: Improve blocks cache in useEntityBlockEditor (WordPress/gutenberg#75400)
- MediaEdit: Support ordered values and reordering of items (WordPress/gutenberg#75207)
- Writing flow: fix select all with full formatting (WordPress/gutenberg#64934)
- Filter navigation category patterns to only show in navigation-overlay template part context (WordPress/gutenberg#75276)
- Update Testing Library for React 19 compat (WordPress/gutenberg#75340)
- Writing Flow: Fix block selection from partially selected RichText (WordPress/gutenberg#75449)
- Notes: Fix sidebar display logic for small screens (WordPress/gutenberg#75454)
- Post editor: iframe: check inserted rather than registered block versions (WordPress/gutenberg#75187)
- Block Visibility: Disable visibility toggle for children of sections (WordPress/gutenberg#75447)
- Notes: Update shortcut category (WordPress/gutenberg#75461)
- Add dedicated navigation-overlay icon (WordPress/gutenberg#75249) (WordPress/gutenberg#75426)
- Docs: Rename Interactivity API's 'API Reference' to 'Directives and Store' (WordPress/gutenberg#74974)
- DataForm: Fix color picker styles (WordPress/gutenberg#75427)
- Post Excerpt Block: Remove REST API filter for excerpt length in post excerpt block (WordPress/gutenberg#75299)
- Move experimental PR out of backport log (WordPress/gutenberg#75465)
- Add paste logging to writing flow (WordPress/gutenberg#73885)
- Real-time collaboration: Sync post content and undefined `blocks` value (WordPress/gutenberg#75437)
- Gutenberg plugin: always enforce the iframe in the post editor (WordPress/gutenberg#75475)
- New Block: Icon Block (WordPress/gutenberg#71227)
- Tabs: Improve tab keyboard nav (WordPress/gutenberg#75471)
- Pre-populate Navigation Page Creator with Search Text  (WordPress/gutenberg#75154)
- Block Library: Hide navigation-overlay template parts from inserter (WordPress/gutenberg#75478)
- Tabs: Add text and background color support (WordPress/gutenberg#75482)
- Preserve existing URLInput defaults (WordPress/gutenberg#75392)
- UI: Remove unnecessary jest.setTimeout from Select test (WordPress/gutenberg#75444)
- Fix missed dimension token migration in UI package (WordPress/gutenberg#75446)
- Render default density selector last in design tokens CSS (WordPress/gutenberg#75474)
- Navigation: Improved help text in create a page flow (WordPress/gutenberg#75349)
- Fix gap token migration guide in changelog (WordPress/gutenberg#75492)
- Block Visibility: Disable Apply button on non-dirty state (WordPress/gutenberg#75494)
- Real-time Collaboration: Use Y.text for title, content and excerpt (WordPress/gutenberg#75448)
- DataForm: Style SummaryButton in panel layout with `is-disabled` classname (WordPress/gutenberg#75470)
- Gallery: Add list view block support (WordPress/gutenberg#75407)
- Types: consistently use the React namespace (WordPress/gutenberg#75499)
- Enhance block appender labels to reflect default block type (WordPress/gutenberg#71502)
- Import Yjs correctly (WordPress/gutenberg#75500)
- Add testsEnvironment option and split Gutenberg wp-env configs (WordPress/gutenberg#75341)
- Add `clearEntityRecordEdits` action to core-data (WordPress/gutenberg#75397)
- Tabs: Stabilize Tabs blocks (WordPress/gutenberg#75424)
- Simplify Tabs Menu Item editing (WordPress/gutenberg#75416)
- Fix LinkControl URL Normalization (WordPress/gutenberg#75488)
- Navigation Submenu: Restore openSubmenusOnClick to usesContext for backward compatibility. (WordPress/gutenberg#75435)
- Tabs: Add `@since 7.0.0` annotations (WordPress/gutenberg#75521)
- Story types: fix StoryFns used as React components (WordPress/gutenberg#75472)
- Tabs: fix incorrect fixtures (WordPress/gutenberg#75523)
- AGENTS.md: Add CLAUDE.md symlinks, architecture decisions, and common pitfalls (WordPress/gutenberg#75507)
- Use contextual snackbar text when activating a theme from preview (WordPress/gutenberg#75385)
- Pick user fields instead of spreading the entire object (WordPress/gutenberg#75528)
- Real-time collaboration: Move PHP code to compat / backports directory (WordPress/gutenberg#75366)
- Icons: Fix incorrect attributes for SVG (WordPress/gutenberg#75273)
- Icons: Make full height icon label title case (WordPress/gutenberg#75524)
- Respect deprecated openSubmenusOnClick value on frontend rendering (WordPress/gutenberg#75439)
- useRef: always supply initial value (WordPress/gutenberg#75513)
- Code Modernization: Replace isset() checks with null coalescing operator (WordPress/gutenberg#75425)
- Prefix usages of JSX namespaces with React.JSX (WordPress/gutenberg#75508)
- Cleanup: Remove unnecessary array check in `WP_Theme_JSON_Gutenberg` (WordPress/gutenberg#75515)
- Real-time collaboration: Add collaborators cursor awareness (WordPress/gutenberg#75398)
- Post Comments Link: Migrate to Text-Align Block Support (WordPress/gutenberg#75332)
- Post time to read: Migrate to Text-Align Block Support (WordPress/gutenberg#75541)
- ExternalLink: Prevent Twemoji from replacing arrow (WordPress/gutenberg#75538)
- Duotone: add sgomes as owner (WordPress/gutenberg#75519)
- Use null coalescing operator for common isset patterns (WordPress/gutenberg#75487)
- Term Description: Migrate to Text-Align Block Support (WordPress/gutenberg#75542)
- Create sub-sized images (WordPress/gutenberg#74566)
- Add EXIF metadata tests for Client Side Media (WordPress/gutenberg#74909)
- Add AVIF, WebP and MozJPEG output encoding support (WordPress/gutenberg#75081)
- Post Terms: Migrate to Text-Align Block Support (WordPress/gutenberg#75545)
- Tabs: Make Example preview translatable (WordPress/gutenberg#75555)
- List View tab: Ensure it's populated when first selecting a container block (WordPress/gutenberg#75558)
- Fix auto draft bug for Y.text titles (WordPress/gutenberg#75560)
- Border Support: Fix editor split border style fallback (WordPress/gutenberg#75546)
- Block Editor: Avoid unnecessary state churn in controlled inner blocks reducers (WordPress/gutenberg#75458)
- Block Lock: Disable Apply button on non-dirty state (WordPress/gutenberg#75495)
- Post Terms: Avoid unbound queries when the post context isn't available (WordPress/gutenberg#75536)
- wp-env Playground: improve mapping and core source handling (WordPress/gutenberg#75527)
- DataForm: add edit variant (WordPress/gutenberg#75462)
- Tabs: Improve Tab Panel accessibility (WordPress/gutenberg#75484)
- Tabs: Remove name editing UI (WordPress/gutenberg#75554)
- useBlockSync: stop reconstructing controlled inner blocks (WordPress/gutenberg#75562)
- Notes: Fix new note creation from the List View (WordPress/gutenberg#75566)
- Navigation: Update overlay template part naming to "Navigation Overlay" (WordPress/gutenberg#75564)
- Update usage of RefObject types (React 19 compat) (WordPress/gutenberg#75567)
- useMergeRefs: migrate to TypeScript (WordPress/gutenberg#75569)
- Improve link preview badges (WordPress/gutenberg#75318)
- Add getDimensionsClassesAndStyles function and related tests (WordPress/gutenberg#74524)
- Informational Parity between Inspector Link Preview and on Canvas Link Preview (WordPress/gutenberg#75399)
- Icons Registry: Don't expose "internal" icons (WordPress/gutenberg#75526)
- ui/Button: fix disabled styles and variable composition (WordPress/gutenberg#75568)
- Tabs: Set explicit font-family on tab buttons (WordPress/gutenberg#75537)
- Interactivity API: Export `watch` from `@preact/signals`'s `effect` (WordPress/gutenberg#75563)
- iAPI router: Move internal properties to a private store (WordPress/gutenberg#70882)
- Post Excerpt: Add text columns support (WordPress/gutenberg#75587)
- Update gutenberg to match core after WordPress/gutenberg#75360 sync (WordPress/gutenberg#75594)
- Block Visibility: Show viewport icons and tooltip in list view for hidden blocks (WordPress/gutenberg#75404)
- [Real-time collaboration] Refine collaborator overlay with Avatar component integration (WordPress/gutenberg#75595)
- Media Utils: Auto-select uploaded files in media modal experiment (WordPress/gutenberg#75597)
- Try enabling paragraphs to be added to contentOnly patterns (WordPress/gutenberg#73222)
- Implement WebAssembly support detection and fallbacks (WordPress/gutenberg#74827)
- Icon block: Skip serialization and increase default size (WordPress/gutenberg#75553)
- In-editor Revisions: Update success notice message (WordPress/gutenberg#75411)
- Stabilize PHP-Only Block Registration (WordPress/gutenberg#75543)
- Add comments around expandRevision functionality (WordPress/gutenberg#75573)
- Tab Block: Ensure label formatting works correctly (WordPress/gutenberg#75548)
- Tabs: Fix saved HTML (WordPress/gutenberg#75580)
- [Real-time collaboration] Fix <CollaboratorsPresence> layout issue (WordPress/gutenberg#75599)
- Notes: Fix block toolbar click action (WordPress/gutenberg#75614)
- Commands: Add category property to command registration (WordPress/gutenberg#75612)
- fix tab color-reset-all-filter (WordPress/gutenberg#75606)
- Fix selection restoration after entity navigation (WordPress/gutenberg#75371)
- Tabs: Sanitize tab_id (WordPress/gutenberg#75615)
- Inherit text color for tabs-menu-item blocks (WordPress/gutenberg#75621)
- Auto-switch viewport based on Overlay Visibility setting when entering overlay editor (WordPress/gutenberg#75386)
- Fix: Show and hook up submenu visibility for Page Lists within Navigation Blocks (WordPress/gutenberg#75531)
- Remove useEffect guard rail to enforce minimum width. (WordPress/gutenberg#75624)
- Navigation: select list view tab on contentOnly. Alternative with explicit solution (WordPress/gutenberg#75578)
- Navigation overlay: added basic e2e tests (WordPress/gutenberg#75581)
- Revert Tabs block to experimental block (WordPress/gutenberg#75572)
- List Block: Prevent content loss when merging into a fresh empty list item (WordPress/gutenberg#74382)
- Fix Overlay core patterns not showing on design tab (WordPress/gutenberg#75618)
- Rename Verse block to Poetry (WordPress/gutenberg#74121)
- Fix Navigation block button showing "View custom" instead of "View link" for external URLs (WordPress/gutenberg#75571)
- Removed Unused Global Documentation (WordPress/gutenberg#75631)
- Real-time collaboration: Add sync connection status handling (WordPress/gutenberg#75066)
- Add e2e test for selection restoration after pattern entity navigation (WordPress/gutenberg#75575)
- Remove the Icon Block and Icon SVG API from experiments (WordPress/gutenberg#75576)
- Block editor cross origin isolation: attempt to gracefully deal with race conditions (WordPress/gutenberg#75600)
- Update diff package (WordPress/gutenberg#75644)
- Upload Media: rebase of 75547 (WordPress/gutenberg#75646)
- Block Editor: Allow disabling content-only editing for unsynced patterns (WordPress/gutenberg#75457)
- Real-Time Collaboration: Add e2e tests for RTC (WordPress/gutenberg#75598)
- Update the y-protocols versin and remove the unncessary types (WordPress/gutenberg#75657)
- Pattern Editing: Add "Edit section" button to unsynced pattern toolbar (WordPress/gutenberg#75602)
- PHP-Only Block Registration: Remove client-side schema validation (WordPress/gutenberg#75623)
- Navigation: Add 'expectedDeprecated' annotations (WordPress/gutenberg#75659)
- Site Editor: make QuickEdit stable + change template to select (WordPress/gutenberg#75565)
- Icon Block: Move default width rule to theme.json instead of block.json (WordPress/gutenberg#75653)
- Add e2e test for loading settings in site editor preload spec (WordPress/gutenberg#75661)
- Update Ariakit packages (WordPress/gutenberg#75620)
- Upgrade Playwright to v1.58 (WordPress/gutenberg#75632)
- GitHub actions: Exclude lib/theme.json from backport changelog check (WordPress/gutenberg#75666)
- theme.json: Enable width support for icon block by default (WordPress/gutenberg#75665)
- Icons: Trim list of public icons further (WordPress/gutenberg#75630)
- Update Navigation block tests to use non-deprecated API (WordPress/gutenberg#75660)
- Update navigation block tests to use gutenberg version of block_core_navigation_block_tree_has_block_type - works on old wp versions (WordPress/gutenberg#75673)
- Update copy (WordPress/gutenberg#75663)
- Commands: Display category labels and enforce category icons (WordPress/gutenberg#75669)
- Heading Block: Fix preview display (WordPress/gutenberg#75675)
- Iframe: memoize src URL globally keyed by resolvedAssets (WordPress/gutenberg#75619)
- ContrastChecker: Fix check for button block colors (WordPress/gutenberg#71959)
- Writing flow: skip non-empty blocks on arrow key nav (WordPress/gutenberg#75141)
- Comments Link: fix transforms textAlign (WordPress/gutenberg#75676)
- Add initialSearchState to avoid console warnings from LinkControl inputValue change (WordPress/gutenberg#75643)
- Migrate `EditorSnackbar` and `EditorNotices` components to the `@wordpress/notices` package (WordPress/gutenberg#74384)
- Add minimum cap check to sync endpoint (WordPress/gutenberg#75681)
- Fix: Hide link controls in sidebar when submenus open on click (WordPress/gutenberg#75637)
- Set snackbar position to center  (WordPress/gutenberg#75294)
- Gallery: Fix PHP warning in random order image reordering (WordPress/gutenberg#75678)
- DateCalendar, DateRangeCalendar: use lighter gray for disabled dates (WordPress/gutenberg#75683)
- Pass unsupported formats directly to the server (WordPress/gutenberg#74910)
- RTC: Compact on request with encodeStateAsUpdate (WordPress/gutenberg#75682)
- Icons: Generate manifest PHP file based on JSON file (WordPress/gutenberg#75684)
- ui/IconButton: make icon always 24px regardless of `size` prop (WordPress/gutenberg#75677)
- Gallery: Skip interactivity directives when no images have lightbox enabled (WordPress/gutenberg#75680)
- DataForm: Fix focus loss and refactor Card layout (WordPress/gutenberg#75689)
- Remove IS_GUTENBERG_PLUGIN checks for collaborative editing (WordPress/gutenberg#75699)

Built from https://develop.svn.wordpress.org/trunk@61680


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

Labels

[Feature] Client Side Media Media processing in the browser with WASM [Package] Block editor /packages/block-editor [Type] Enhancement A suggestion for improvement.

Projects

Development

Successfully merging this pull request may close these issues.

WebAssembly support detection and fallbacks

6 participants