Skip to content

Sorting: assume standard sort is stable, try out the new toSorted method - #52213

Merged
jsnajdr merged 3 commits into
trunkfrom
update/sort-is-stable
Oct 9, 2026
Merged

jsnajdr merged 3 commits into
trunkfrom
update/sort-is-stable

Conversation

@jsnajdr

@jsnajdr jsnajdr commented Jul 2, 2023

Copy link
Copy Markdown
Member

Array sort is specified as stable since 2019: https://stackoverflow.com/questions/3026281/what-is-the-stability-of-the-array-sort-method-in-different-browsers

This PR removes additional stabilizing code from orderBy -- all our supported browsers should be compliant by now. I'm not sure myself whether this change is really safe. Let's experiment and discuss.

Also I'm trying out the new .toSorted() method that doesn't mutate the original array. To use it, I had to upgrade core-js, browserslist and caniuse-lite to latest versions.

@jsnajdr
jsnajdr requested a review from tyxla July 2, 2023 08:29
@jsnajdr jsnajdr self-assigned this Jul 2, 2023
@github-actions

github-actions Bot commented Jul 2, 2023 •

Copy link
Copy Markdown

Size Change: -60 B (0%)

Total Size: 1.77 MB

Filename Size Change
build/block-editor/index.min.js 257 kB -35 B (-0.01%)
build/block-library/index.min.js 217 kB -1 B (0%)
build/blocks/index.min.js 52.4 kB -24 B (-0.05%)
ℹ️ View Unchanged
Filename Size
build/a11y/index.min.js 951 B
build/annotations/index.min.js 2.26 kB
build/api-fetch/index.min.js 2.32 kB
build/autop/index.min.js 2.12 kB
build/blob/index.min.js 579 B
build/block-directory/index.min.js 7.31 kB
build/block-directory/style-rtl.css 1.01 kB
build/block-directory/style.css 1.01 kB
build/block-editor/content-rtl.css 4.57 kB
build/block-editor/content.css 4.56 kB
build/block-editor/default-editor-styles-rtl.css 394 B
build/block-editor/default-editor-styles.css 394 B
build/block-editor/style-rtl.css 16.3 kB
build/block-editor/style.css 16.3 kB
build/block-library/blocks/archives/editor-rtl.css 61 B
build/block-library/blocks/archives/editor.css 60 B
build/block-library/blocks/archives/style-rtl.css 90 B
build/block-library/blocks/archives/style.css 90 B
build/block-library/blocks/audio/editor-rtl.css 149 B
build/block-library/blocks/audio/editor.css 151 B
build/block-library/blocks/audio/style-rtl.css 132 B
build/block-library/blocks/audio/style.css 132 B
build/block-library/blocks/audio/theme-rtl.css 134 B
build/block-library/blocks/audio/theme.css 134 B
build/block-library/blocks/avatar/editor-rtl.css 115 B
build/block-library/blocks/avatar/editor.css 115 B
build/block-library/blocks/avatar/style-rtl.css 104 B
build/block-library/blocks/avatar/style.css 104 B
build/block-library/blocks/button/editor-rtl.css 265 B
build/block-library/blocks/button/editor.css 265 B
build/block-library/blocks/button/style-rtl.css 538 B
build/block-library/blocks/button/style.css 538 B
build/block-library/blocks/buttons/editor-rtl.css 291 B
build/block-library/blocks/buttons/editor.css 291 B
build/block-library/blocks/buttons/style-rtl.css 328 B
build/block-library/blocks/buttons/style.css 328 B
build/block-library/blocks/calendar/style-rtl.css 240 B
build/block-library/blocks/calendar/style.css 240 B
build/block-library/blocks/categories/editor-rtl.css 132 B
build/block-library/blocks/categories/editor.css 131 B
build/block-library/blocks/categories/style-rtl.css 152 B
build/block-library/blocks/categories/style.css 152 B
build/block-library/blocks/code/editor-rtl.css 53 B
build/block-library/blocks/code/editor.css 53 B
build/block-library/blocks/code/style-rtl.css 121 B
build/block-library/blocks/code/style.css 121 B
build/block-library/blocks/code/theme-rtl.css 122 B
build/block-library/blocks/code/theme.css 122 B
build/block-library/blocks/columns/editor-rtl.css 108 B
build/block-library/blocks/columns/editor.css 108 B
build/block-library/blocks/columns/style-rtl.css 420 B
build/block-library/blocks/columns/style.css 420 B
build/block-library/blocks/comment-author-avatar/editor-rtl.css 124 B
build/block-library/blocks/comment-author-avatar/editor.css 124 B
build/block-library/blocks/comment-author-name/style-rtl.css 72 B
build/block-library/blocks/comment-author-name/style.css 72 B
build/block-library/blocks/comment-content/style-rtl.css 120 B
build/block-library/blocks/comment-content/style.css 120 B
build/block-library/blocks/comment-date/style-rtl.css 65 B
build/block-library/blocks/comment-date/style.css 65 B
build/block-library/blocks/comment-template/style-rtl.css 200 B
build/block-library/blocks/comment-template/style.css 199 B
build/block-library/blocks/comments-pagination-numbers/editor-rtl.css 122 B
build/block-library/blocks/comments-pagination-numbers/editor.css 121 B
build/block-library/blocks/comments-pagination/editor-rtl.css 228 B
build/block-library/blocks/comments-pagination/editor.css 217 B
build/block-library/blocks/comments-pagination/style-rtl.css 234 B
build/block-library/blocks/comments-pagination/style.css 231 B
build/block-library/blocks/comments-title/editor-rtl.css 75 B
build/block-library/blocks/comments-title/editor.css 75 B
build/block-library/blocks/comments/editor-rtl.css 832 B
build/block-library/blocks/comments/editor.css 832 B
build/block-library/blocks/comments/style-rtl.css 632 B
build/block-library/blocks/comments/style.css 631 B
build/block-library/blocks/cover/editor-rtl.css 641 B
build/block-library/blocks/cover/editor.css 642 B
build/block-library/blocks/cover/style-rtl.css 1.62 kB
build/block-library/blocks/cover/style.css 1.6 kB
build/block-library/blocks/details/editor-rtl.css 65 B
build/block-library/blocks/details/editor.css 65 B
build/block-library/blocks/details/style-rtl.css 86 B
build/block-library/blocks/details/style.css 86 B
build/block-library/blocks/embed/editor-rtl.css 331 B
build/block-library/blocks/embed/editor.css 331 B
build/block-library/blocks/embed/style-rtl.css 419 B
build/block-library/blocks/embed/style.css 419 B
build/block-library/blocks/embed/theme-rtl.css 133 B
build/block-library/blocks/embed/theme.css 133 B
build/block-library/blocks/file/editor-rtl.css 326 B
build/block-library/blocks/file/editor.css 326 B
build/block-library/blocks/file/style-rtl.css 278 B
build/block-library/blocks/file/style.css 279 B
build/block-library/blocks/file/view.min.js 324 B
build/block-library/blocks/footnotes/style-rtl.css 198 B
build/block-library/blocks/footnotes/style.css 197 B
build/block-library/blocks/form-input/editor-rtl.css 229 B
build/block-library/blocks/form-input/editor.css 229 B
build/block-library/blocks/form-input/style-rtl.css 342 B
build/block-library/blocks/form-input/style.css 342 B
build/block-library/blocks/form-submission-notification/editor-rtl.css 344 B
build/block-library/blocks/form-submission-notification/editor.css 341 B
build/block-library/blocks/form-submit-button/style-rtl.css 69 B
build/block-library/blocks/form-submit-button/style.css 69 B
build/block-library/blocks/form/view.min.js 470 B
build/block-library/blocks/freeform/editor-rtl.css 2.6 kB
build/block-library/blocks/freeform/editor.css 2.6 kB
build/block-library/blocks/gallery/editor-rtl.css 955 B
build/block-library/blocks/gallery/editor.css 958 B
build/block-library/blocks/gallery/style-rtl.css 1.83 kB
build/block-library/blocks/gallery/style.css 1.82 kB
build/block-library/blocks/gallery/theme-rtl.css 108 B
build/block-library/blocks/gallery/theme.css 108 B
build/block-library/blocks/group/editor-rtl.css 344 B
build/block-library/blocks/group/editor.css 344 B
build/block-library/blocks/group/style-rtl.css 103 B
build/block-library/blocks/group/style.css 103 B
build/block-library/blocks/group/theme-rtl.css 79 B
build/block-library/blocks/group/theme.css 79 B
build/block-library/blocks/heading/style-rtl.css 188 B
build/block-library/blocks/heading/style.css 188 B
build/block-library/blocks/html/editor-rtl.css 346 B
build/block-library/blocks/html/editor.css 347 B
build/block-library/blocks/image/editor-rtl.css 894 B
build/block-library/blocks/image/editor.css 892 B
build/block-library/blocks/image/style-rtl.css 1.59 kB
build/block-library/blocks/image/style.css 1.59 kB
build/block-library/blocks/image/theme-rtl.css 137 B
build/block-library/blocks/image/theme.css 137 B
build/block-library/blocks/image/view.min.js 1.65 kB
build/block-library/blocks/latest-comments/style-rtl.css 355 B
build/block-library/blocks/latest-comments/style.css 354 B
build/block-library/blocks/latest-posts/editor-rtl.css 179 B
build/block-library/blocks/latest-posts/editor.css 179 B
build/block-library/blocks/latest-posts/style-rtl.css 509 B
build/block-library/blocks/latest-posts/style.css 510 B
build/block-library/blocks/list/style-rtl.css 107 B
build/block-library/blocks/list/style.css 107 B
build/block-library/blocks/loginout/style-rtl.css 61 B
build/block-library/blocks/loginout/style.css 61 B
build/block-library/blocks/media-text/editor-rtl.css 304 B
build/block-library/blocks/media-text/editor.css 303 B
build/block-library/blocks/media-text/style-rtl.css 516 B
build/block-library/blocks/media-text/style.css 515 B
build/block-library/blocks/more/editor-rtl.css 427 B
build/block-library/blocks/more/editor.css 427 B
build/block-library/blocks/navigation-link/editor-rtl.css 644 B
build/block-library/blocks/navigation-link/editor.css 645 B
build/block-library/blocks/navigation-link/style-rtl.css 192 B
build/block-library/blocks/navigation-link/style.css 191 B
build/block-library/blocks/navigation-submenu/editor-rtl.css 295 B
build/block-library/blocks/navigation-submenu/editor.css 294 B
build/block-library/blocks/navigation/editor-rtl.css 2.2 kB
build/block-library/blocks/navigation/editor.css 2.2 kB
build/block-library/blocks/navigation/style-rtl.css 2.25 kB
build/block-library/blocks/navigation/style.css 2.23 kB
build/block-library/blocks/navigation/view.min.js 1.03 kB
build/block-library/blocks/nextpage/editor-rtl.css 392 B
build/block-library/blocks/nextpage/editor.css 392 B
build/block-library/blocks/page-list/editor-rtl.css 378 B
build/block-library/blocks/page-list/editor.css 378 B
build/block-library/blocks/page-list/style-rtl.css 175 B
build/block-library/blocks/page-list/style.css 175 B
build/block-library/blocks/paragraph/editor-rtl.css 236 B
build/block-library/blocks/paragraph/editor.css 236 B
build/block-library/blocks/paragraph/style-rtl.css 341 B
build/block-library/blocks/paragraph/style.css 340 B
build/block-library/blocks/post-author-biography/style-rtl.css 74 B
build/block-library/blocks/post-author-biography/style.css 74 B
build/block-library/blocks/post-author-name/style-rtl.css 69 B
build/block-library/blocks/post-author-name/style.css 69 B
build/block-library/blocks/post-author/editor-rtl.css 107 B
build/block-library/blocks/post-author/editor.css 107 B
build/block-library/blocks/post-author/style-rtl.css 188 B
build/block-library/blocks/post-author/style.css 189 B
build/block-library/blocks/post-comments-form/editor-rtl.css 96 B
build/block-library/blocks/post-comments-form/editor.css 96 B
build/block-library/blocks/post-comments-form/style-rtl.css 527 B
build/block-library/blocks/post-comments-form/style.css 528 B
build/block-library/blocks/post-content/editor-rtl.css 74 B
build/block-library/blocks/post-content/editor.css 74 B
build/block-library/blocks/post-content/style-rtl.css 79 B
build/block-library/blocks/post-content/style.css 79 B
build/block-library/blocks/post-date/style-rtl.css 62 B
build/block-library/blocks/post-date/style.css 62 B
build/block-library/blocks/post-excerpt/editor-rtl.css 71 B
build/block-library/blocks/post-excerpt/editor.css 71 B
build/block-library/blocks/post-excerpt/style-rtl.css 155 B
build/block-library/blocks/post-excerpt/style.css 155 B
build/block-library/blocks/post-featured-image/editor-rtl.css 729 B
build/block-library/blocks/post-featured-image/editor.css 726 B
build/block-library/blocks/post-featured-image/style-rtl.css 347 B
build/block-library/blocks/post-featured-image/style.css 347 B
build/block-library/blocks/post-navigation-link/style-rtl.css 215 B
build/block-library/blocks/post-navigation-link/style.css 214 B
build/block-library/blocks/post-template/editor-rtl.css 99 B
build/block-library/blocks/post-template/editor.css 98 B
build/block-library/blocks/post-template/style-rtl.css 399 B
build/block-library/blocks/post-template/style.css 398 B
build/block-library/blocks/post-terms/style-rtl.css 96 B
build/block-library/blocks/post-terms/style.css 96 B
build/block-library/blocks/post-time-to-read/style-rtl.css 70 B
build/block-library/blocks/post-time-to-read/style.css 70 B
build/block-library/blocks/post-title/style-rtl.css 100 B
build/block-library/blocks/post-title/style.css 100 B
build/block-library/blocks/preformatted/style-rtl.css 125 B
build/block-library/blocks/preformatted/style.css 125 B
build/block-library/blocks/pullquote/editor-rtl.css 134 B
build/block-library/blocks/pullquote/editor.css 134 B
build/block-library/blocks/pullquote/style-rtl.css 342 B
build/block-library/blocks/pullquote/style.css 342 B
build/block-library/blocks/pullquote/theme-rtl.css 167 B
build/block-library/blocks/pullquote/theme.css 167 B
build/block-library/blocks/query-pagination-numbers/editor-rtl.css 121 B
build/block-library/blocks/query-pagination-numbers/editor.css 118 B
build/block-library/blocks/query-pagination/editor-rtl.css 225 B
build/block-library/blocks/query-pagination/editor.css 215 B
build/block-library/blocks/query-pagination/style-rtl.css 287 B
build/block-library/blocks/query-pagination/style.css 283 B
build/block-library/blocks/query-title/style-rtl.css 64 B
build/block-library/blocks/query-title/style.css 64 B
build/block-library/blocks/query/editor-rtl.css 452 B
build/block-library/blocks/query/editor.css 451 B
build/block-library/blocks/query/view.min.js 958 B
build/block-library/blocks/quote/style-rtl.css 238 B
build/block-library/blocks/quote/style.css 238 B
build/block-library/blocks/quote/theme-rtl.css 233 B
build/block-library/blocks/quote/theme.css 236 B
build/block-library/blocks/read-more/style-rtl.css 138 B
build/block-library/blocks/read-more/style.css 138 B
build/block-library/blocks/rss/editor-rtl.css 101 B
build/block-library/blocks/rss/editor.css 101 B
build/block-library/blocks/rss/style-rtl.css 288 B
build/block-library/blocks/rss/style.css 287 B
build/block-library/blocks/search/editor-rtl.css 199 B
build/block-library/blocks/search/editor.css 199 B
build/block-library/blocks/search/style-rtl.css 672 B
build/block-library/blocks/search/style.css 671 B
build/block-library/blocks/search/theme-rtl.css 113 B
build/block-library/blocks/search/theme.css 113 B
build/block-library/blocks/search/view.min.js 475 B
build/block-library/blocks/separator/editor-rtl.css 100 B
build/block-library/blocks/separator/editor.css 100 B
build/block-library/blocks/separator/style-rtl.css 248 B
build/block-library/blocks/separator/style.css 248 B
build/block-library/blocks/separator/theme-rtl.css 195 B
build/block-library/blocks/separator/theme.css 195 B
build/block-library/blocks/shortcode/editor-rtl.css 286 B
build/block-library/blocks/shortcode/editor.css 286 B
build/block-library/blocks/site-logo/editor-rtl.css 806 B
build/block-library/blocks/site-logo/editor.css 803 B
build/block-library/blocks/site-logo/style-rtl.css 218 B
build/block-library/blocks/site-logo/style.css 218 B
build/block-library/blocks/site-tagline/editor-rtl.css 87 B
build/block-library/blocks/site-tagline/editor.css 87 B
build/block-library/blocks/site-tagline/style-rtl.css 65 B
build/block-library/blocks/site-tagline/style.css 65 B
build/block-library/blocks/site-title/editor-rtl.css 85 B
build/block-library/blocks/site-title/editor.css 85 B
build/block-library/blocks/site-title/style-rtl.css 90 B
build/block-library/blocks/site-title/style.css 90 B
build/block-library/blocks/social-link/editor-rtl.css 338 B
build/block-library/blocks/social-link/editor.css 338 B
build/block-library/blocks/social-links/editor-rtl.css 676 B
build/block-library/blocks/social-links/editor.css 675 B
build/block-library/blocks/social-links/style-rtl.css 1.51 kB
build/block-library/blocks/social-links/style.css 1.5 kB
build/block-library/blocks/spacer/editor-rtl.css 346 B
build/block-library/blocks/spacer/editor.css 346 B
build/block-library/blocks/spacer/style-rtl.css 48 B
build/block-library/blocks/spacer/style.css 48 B
build/block-library/blocks/table-of-contents/style-rtl.css 83 B
build/block-library/blocks/table-of-contents/style.css 83 B
build/block-library/blocks/table/editor-rtl.css 394 B
build/block-library/blocks/table/editor.css 394 B
build/block-library/blocks/table/style-rtl.css 640 B
build/block-library/blocks/table/style.css 639 B
build/block-library/blocks/table/theme-rtl.css 152 B
build/block-library/blocks/table/theme.css 152 B
build/block-library/blocks/tag-cloud/editor-rtl.css 144 B
build/block-library/blocks/tag-cloud/editor.css 144 B
build/block-library/blocks/tag-cloud/style-rtl.css 266 B
build/block-library/blocks/tag-cloud/style.css 265 B
build/block-library/blocks/template-part/editor-rtl.css 368 B
build/block-library/blocks/template-part/editor.css 368 B
build/block-library/blocks/template-part/theme-rtl.css 113 B
build/block-library/blocks/template-part/theme.css 113 B
build/block-library/blocks/term-description/style-rtl.css 126 B
build/block-library/blocks/term-description/style.css 126 B
build/block-library/blocks/text-columns/editor-rtl.css 95 B
build/block-library/blocks/text-columns/editor.css 95 B
build/block-library/blocks/text-columns/style-rtl.css 165 B
build/block-library/blocks/text-columns/style.css 165 B
build/block-library/blocks/verse/style-rtl.css 98 B
build/block-library/blocks/verse/style.css 98 B
build/block-library/blocks/video/editor-rtl.css 396 B
build/block-library/blocks/video/editor.css 397 B
build/block-library/blocks/video/style-rtl.css 192 B
build/block-library/blocks/video/style.css 192 B
build/block-library/blocks/video/theme-rtl.css 134 B
build/block-library/blocks/video/theme.css 134 B
build/block-library/classic-rtl.css 179 B
build/block-library/classic.css 179 B
build/block-library/common-rtl.css 1.1 kB
build/block-library/common.css 1.1 kB
build/block-library/editor-elements-rtl.css 75 B
build/block-library/editor-elements.css 75 B
build/block-library/editor-rtl.css 11.8 kB
build/block-library/editor.css 11.8 kB
build/block-library/elements-rtl.css 54 B
build/block-library/elements.css 54 B
build/block-library/reset-rtl.css 472 B
build/block-library/reset.css 472 B
build/block-library/style-rtl.css 14.8 kB
build/block-library/style.css 14.8 kB
build/block-library/theme-rtl.css 708 B
build/block-library/theme.css 712 B
build/block-serialization-default-parser/index.min.js 1.12 kB
build/block-serialization-spec-parser/index.min.js 2.87 kB
build/commands/index.min.js 16.1 kB
build/commands/style-rtl.css 955 B
build/commands/style.css 952 B
build/components/index.min.js 224 kB
build/components/style-rtl.css 12.1 kB
build/components/style.css 12.1 kB
build/compose/index.min.js 12.9 kB
build/core-commands/index.min.js 2.82 kB
build/core-data/index.min.js 73.2 kB
build/customize-widgets/index.min.js 11 kB
build/customize-widgets/style-rtl.css 1.35 kB
build/customize-widgets/style.css 1.35 kB
build/data-controls/index.min.js 641 B
build/data/index.min.js 8.98 kB
build/date/index.min.js 18 kB
build/deprecated/index.min.js 458 B
build/dom-ready/index.min.js 325 B
build/dom/index.min.js 4.65 kB
build/edit-post/classic-rtl.css 578 B
build/edit-post/classic.css 580 B
build/edit-post/index.min.js 12.7 kB
build/edit-post/style-rtl.css 2.31 kB
build/edit-post/style.css 2.31 kB
build/edit-site/index.min.js 216 kB
build/edit-site/posts-rtl.css 7.22 kB
build/edit-site/posts.css 7.22 kB
build/edit-site/style-rtl.css 12.5 kB
build/edit-site/style.css 12.5 kB
build/edit-widgets/index.min.js 17.7 kB
build/edit-widgets/style-rtl.css 4.2 kB
build/edit-widgets/style.css 4.2 kB
build/editor/index.min.js 101 kB
build/editor/style-rtl.css 9.28 kB
build/editor/style.css 9.29 kB
build/element/index.min.js 4.83 kB
build/escape-html/index.min.js 537 B
build/format-library/index.min.js 8.09 kB
build/format-library/style-rtl.css 476 B
build/format-library/style.css 476 B
build/hooks/index.min.js 1.54 kB
build/html-entities/index.min.js 445 B
build/i18n/index.min.js 3.58 kB
build/interactivity/debug.min.js 16.3 kB
build/interactivity/file.min.js 447 B
build/interactivity/image.min.js 1.78 kB
build/interactivity/index.min.js 13.2 kB
build/interactivity/navigation.min.js 1.16 kB
build/interactivity/query.min.js 742 B
build/interactivity/router.min.js 2.8 kB
build/interactivity/search.min.js 615 B
build/is-shallow-equal/index.min.js 526 B
build/keyboard-shortcuts/index.min.js 1.31 kB
build/keycodes/index.min.js 1.46 kB
build/list-reusable-blocks/index.min.js 2.18 kB
build/list-reusable-blocks/style-rtl.css 846 B
build/list-reusable-blocks/style.css 846 B
build/media-utils/index.min.js 2.92 kB
build/modules/importmap-polyfill.min.js 12.3 kB
build/notices/index.min.js 946 B
build/nux/index.min.js 1.61 kB
build/nux/style-rtl.css 749 B
build/nux/style.css 745 B
build/patterns/index.min.js 7.34 kB
build/patterns/style-rtl.css 687 B
build/patterns/style.css 685 B
build/plugins/index.min.js 1.81 kB
build/preferences-persistence/index.min.js 2.06 kB
build/preferences/index.min.js 2.9 kB
build/preferences/style-rtl.css 554 B
build/preferences/style.css 554 B
build/primitives/index.min.js 829 B
build/priority-queue/index.min.js 1.54 kB
build/private-apis/index.min.js 1.01 kB
build/react-i18n/index.min.js 630 B
build/react-refresh-entry/index.min.js 9.47 kB
build/react-refresh-runtime/index.min.js 6.76 kB
build/redux-routine/index.min.js 2.69 kB
build/reusable-blocks/index.min.js 2.55 kB
build/reusable-blocks/style-rtl.css 256 B
build/reusable-blocks/style.css 256 B
build/rich-text/index.min.js 10.1 kB
build/router/index.min.js 1.96 kB
build/server-side-render/index.min.js 1.94 kB
build/shortcode/index.min.js 1.4 kB
build/style-engine/index.min.js 2.04 kB
build/token-list/index.min.js 581 B
build/url/index.min.js 3.85 kB
build/vendors/react-dom.min.js 41.7 kB
build/vendors/react-jsx-runtime.min.js 560 B
build/vendors/react.min.js 4.02 kB
build/viewport/index.min.js 965 B
build/warning/index.min.js 250 B
build/widgets/index.min.js 7.2 kB
build/widgets/style-rtl.css 1.16 kB
build/widgets/style.css 1.16 kB
build/wordcount/index.min.js 1.03 kB

compressed-size-action

@github-actions

github-actions Bot commented Jul 2, 2023 •

Copy link
Copy Markdown

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

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

@tyxla tyxla left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

Neat idea to revisit the that sorting stability again 👍 There's definitely opportunities for cleanup.

We added it because it was not stable in React Native and we needed to upgrade, but my understanding is that it's stable now. See #45146 (comment) for more context.

There seem to be some tests failing - I havent' thoroughly looked at them, but could it be that Array.prototype.toSorted() isn't that well supported?

Also, I'm concerned about Array.prototype.toSorted() and its support in RN - we'll need to get a confirmation that it's safe to use.

cc @geriux for confirmation that Array.prototype.sort() is now stable in the Hermes version we're using and Array.prototype.toSorted() is fully supported.

@tyxla tyxla left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

I'm also a bit concerned about the browser support of Array.prototype.toSorted(). For example, it's not supported in Chrome 109, but Chrome 109 is still used on over 2% of the devices, which according to the WordPress browser support policy means it's not supported:

Browsers with > 1% usage based on can I use browser usage table

@jsnajdr

jsnajdr commented Jul 4, 2023

Copy link
Copy Markdown
Member Author

could it be that Array.prototype.toSorted() isn't that well supported?

I expected that it gets polyfilled by core-js, that's why I upgraded core-js to the latest version as part of the PR. But something is apparently missing, maybe we need to configure core-js or @babel/preset-env to support ES2023 features.

@geriux

geriux commented Jul 10, 2023

Copy link
Copy Markdown
Member

cc @geriux for confirmation that Array.prototype.sort() is now stable in the Hermes version we're using and Array.prototype.toSorted() is fully supported.

Hey there! It looks like it is not 😞 I confirmed this by checking the supported page and also by maually testing the app, the editor freezes until it ends up crashing.

@tyxla

tyxla commented Jul 10, 2023

Copy link
Copy Markdown
Member

cc @geriux for confirmation that Array.prototype.sort() is now stable in the Hermes version we're using and Array.prototype.toSorted() is fully supported.

Hey there! It looks like it is not 😞 I confirmed this by checking the supported page and also by maually testing the app, the editor freezes until it ends up crashing.

Ah, that's a bummer. Thanks for double-checking @geriux 🙌

@aduth

aduth commented Sep 14, 2026 •

Copy link
Copy Markdown
Member

Do we still want to pursue this? I note that some of the discussion from 2023 revolved around browser support, which I imagine has changed by now.

I also stumbled my way here by looking at open pull requests with the mobile app label "Mobile App - Automation". This doesn't appear to be mobile-app-related, so I updated accordingly.

@aduth aduth added [Package] Block library /packages/block-library [Status] Stale Gives the original author opportunity to update before closing. Can be reopened as needed. and removed Mobile App - Automation Label used to initiate Mobile App PR Automation labels Sep 14, 2026
@github-actions

github-actions Bot commented Sep 14, 2026 •

Copy link
Copy Markdown

🤖 PR meta 🤖

🎉 Props

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: jsnajdr <jsnajdr@git.wordpress.org>
Co-authored-by: tyxla <tyxla@git.wordpress.org>
Co-authored-by: aduth <aduth@git.wordpress.org>
Co-authored-by: manzoorwanijk <manzoorwanijk@git.wordpress.org>
Co-authored-by: geriux <geriux@git.wordpress.org>
Co-authored-by: Mamaduka <mamaduka@git.wordpress.org>

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

Updated as activity occurs, without notifying anyone named here. Add the props-bot label to refresh.

📦 Bundle size

Size Change: -15 B (0%)

Total Size: 8.38 MB

📦 View Changed
Filename Size Change
build/scripts/block-library/index.min.js 440 kB -1 B (0%)
build/scripts/blocks/index.min.js 46.4 kB -21 B (-0.05%)
build/scripts/edit-site/index.min.js 386 kB -3 B (0%)
build/scripts/editor/index.min.js 623 kB +9 B (0%)
build/scripts/media-utils/index.min.js 228 kB +1 B (0%)

c34028a Run

⚡ Performance

Show the results

Client side metrics exclude the server response time.

front-end-block-theme

Metric a9fe3a6 trunk % Change
timeToFirstByte 53 ms +8.77% -5.19% 52.1 ms +9.4% -3.26% 1.73%
largestContentfulPaint 90 ms +4.44% -2.22% 92 ms +4.35% -6.52% -2.17%
lcpMinusTtfb 35.25 ms +18.3% -4.68% 35.3 ms +20.54% -5.38% -0.14%
wpBeforeTemplate 24.14 ms +11.18% -2.24% 24.12 ms +10.82% -1.37% 0.08%
wpTemplate 24.26 ms +3.63% -6.6% 23.94 ms +5.22% -4.64% 1.34%
wpTotal 49.12 ms +8.39% -5.9% 48.26 ms +8.95% -3.38% 1.78%
wpMemoryUsage 7.68 MB +0% -0% 7.64 MB +0% -0% 0.46%
wpDbQueries 17 +0% -0% 17 +0% -0% 0%

front-end-classic-theme

Metric a9fe3a6 trunk % Change
timeToFirstByte 38.6 ms +2.07% -1.81% 42.45 ms +3.77% -2.24% -9.07%
largestContentfulPaint 88 ms +0% -2.27% 96 ms +0% -0% -8.33%
lcpMinusTtfb 49.3 ms +1.22% -4.16% 53.35 ms +2.16% -2.62% -7.59%
wpBeforeTemplate 21.59 ms +4.63% -0.46% 21.39 ms +2.1% -1.45% 0.94%
wpTemplate 13.7 ms +2.26% -2.12% 17.81 ms +3.2% -4.83% -23.08%
wpTotal 35.59 ms +2.53% -1.18% 39.26 ms +4.08% -2.01% -9.35%
wpMemoryUsage 6.16 MB +0% -0% 6.26 MB +0% -0% -1.55%
wpDbQueries 10 +0% -0% 14 +0% -0% -28.57%

media-processing

Metric a9fe3a6 trunk % Change
mediaProcessingJpeg 415.18 ms +1.51% -0.79% 414.83 ms +1.02% -0.45% 0.08%
mediaProcessingAvif 6246.36 ms +0.27% -0.08% 6276.57 ms +0.13% -0.27% -0.48%
mediaProcessingJpegToAvif 4288.88 ms +0.12% -0.2% 4308.58 ms +0.16% -0.11% -0.46%

media-upload

Metric a9fe3a6 trunk % Change
jpegUploadProcessing 1487.06 ms +32.59% -3.92% 1456.69 ms +0.57% -1.35% 2.08%
pngUploadProcessing 220.69 ms +1.9% -3.08% 229.68 ms +4.84% -4.62% -3.91%
largeJpegUploadProcessing 1441.65 ms +1.29% -1.18% 1439.55 ms +0.34% -0.47% 0.15%
multipleImageUploadProcessing 2043.11 ms +2.16% -21.61% 2082.43 ms +2.5% -1.94% -1.89%

post-editor

Metric a9fe3a6 trunk % Change
serverResponse 550.79 ms +3.37% -8.63% 517.4 ms +5.8% -2.59% 6.45%
firstPaint 262.87 ms +6.9% -6.01% 255.06 ms +36.14% -22.97% 3.06%
domContentLoaded 1175.4 ms +1.72% -2.04% 1155.13 ms +2.07% -1.15% 1.75%
loaded 1176.93 ms +1.75% -2.06% 1156.46 ms +2.07% -1.14% 1.77%
firstContentfulPaint 500.01 ms +2.06% -3.49% 484.05 ms +3.17% -2.25% 3.3%
firstBlock 3532.61 ms +0.61% -1.32% 3507.4 ms +0.66% -1.23% 0.72%
type 19.05 ms +2.15% -2.2% 18.24 ms +9.59% -0.71% 4.44%
typeWithoutInspector 20.35 ms +5.5% -4.03% 18.44 ms +1.79% -4.66% 10.36%
typeWithTopToolbar 25.84 ms +5.46% -7.78% 24.94 ms +6.05% -8.18% 3.61%
typeContainer 9.2 ms +1.2% -2.93% 9.35 ms +3.85% -10.59% -1.6%
focus 121.22 ms +3.46% -5.56% 119.62 ms +3.1% -4.31% 1.34%
firstFocus 235.48 ms +0% -0% 262.83 ms +0% -0% -10.41%
selectAll 603.06 ms +0.32% -0.39% 584.76 ms +0.87% -3.9% 3.13%
listViewOpen 81.64 ms +7.61% -3.44% 80.86 ms +2.41% -3.57% 0.96%
inserterOpen 42.17 ms +6.47% -5.05% 41.14 ms +5.81% -11.59% 2.5%
inserterHover 12.62 ms +9.59% -10.54% 12.37 ms +11.64% -2.26% 2.02%
inserterSearch 8.7 ms +3.45% -5.98% 8.91 ms +17.85% -8.87% -2.36%
loadPatterns 642.51 ms +2.08% -1.39% 644.9 ms +8.42% -6.1% -0.37%
wpTotal 540.77 ms +3.39% -8.79% 507.12 ms +5.98% -2.62% 6.64%
wpMemoryUsage 13.24 MB +0% -0% 13.20 MB +0% -0% 0.28%
wpDbQueries 54 +0% -1.85% 54 +0% -1.85% 0%

site-editor

Metric a9fe3a6 trunk % Change
serverResponse 388.89 ms +4.01% -4.75% 392.48 ms +2.64% -5.77% -0.91%
firstPaint 288.53 ms +47.64% -15.46% 216.86 ms +12.85% -2.25% 33.05%
domContentLoaded 1040.08 ms +1.4% -3.66% 1019.66 ms +2.24% -0.11% 2%
loaded 1041.14 ms +1.39% -3.66% 1020.64 ms +2.23% -0.11% 2.01%
firstContentfulPaint 427.22 ms +1.93% -0.55% 420.94 ms +1.85% -0.9% 1.49%
firstBlock 3870.57 ms +0.43% -1.91% 3843.46 ms +1.12% -0.96% 0.71%
type 17.47 ms +0.86% -1.37% 16.99 ms +2.83% -3.88% 2.83%
navigate 103.88 ms +14.27% -0.9% 106.15 ms +5.89% -8.72% -2.14%
loadPatterns 1122.85 ms +1.47% -3.44% 1127.13 ms +1.78% -4.59% -0.38%
loadPages 1053.79 ms +1.45% -4.83% 1051.59 ms +1.21% -1.9% 0.21%
wpTotal 379.42 ms +4.07% -4.87% 382.71 ms +2.65% -5.92% -0.86%
wpMemoryUsage 12.27 MB +0% -0% 12.23 MB +0% -0% 0.3%
wpDbQueries 43 +2.33% -0% 43 +2.33% -0% 0%

c34028a Run

🏁 Flaky tests

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

refuses the drop and uploads nothing in /test/e2e/specs/editor/various/single-file-placeholder-drop.spec.js, passed after 1 failed attempt.
Error: expect(received).toHaveLength(expected)

Expected length: 0
Received length: 2
Received array:  [{"_links": {"about": [{"href": "http://localhost:8889/wp-json/wp/v2/types/attachment"}], "author": [{"embeddable": true, "href": "http://localhost:8889/wp-json/wp/v2/users/1"}], "collection": [{"href": "http://localhost:8889/wp-json/wp/v2/media"}], "curies": [{"href": "https://api.w.org/{rel}", "name": "wp", "templated": true}], "replies": [{"embeddable": true, "href": "http://localhost:8889/wp-json/wp/v2/comments?post=264"}], "self": [{"href": "http://localhost:8889/wp-json/wp/v2/media/264", "targetHints": {"allow": ["GET", "POST", "PUT", "PATCH", "DELETE"]}}], "wp:attached-to": [{"embeddable": true, "href": "http://localhost:8889/wp-json/wp/v2/posts/262", "id": 262, "post_type": "post"}]}, "alt_text": "", "author": 1, "caption": {"rendered": ""}, "class_list": ["post-264", "attachment", "type-attachment", "status-inherit", "hentry", "entry"], "comment_status": "open", "date": "2026-10-09T06:52:30", "date_gmt": "2026-10-09T06:52:30", "description": {"rendered": "<p class=\"attachment\"><a href='http://localhost:8889/wp-content/uploads/2026/10/10x10_e2e_test_image_z9T8jK-1.png'><img loading=\"lazy\" decoding=\"async\" width=\"10\" height=\"10\" src=\"http://localhost:8889/wp-content/uploads/2026/10/10x10_e2e_test_image_z9T8jK-1.png\" class=\"attachment-medium size-medium\" alt=\"\" style=\"width:100%;height:100%;max-width:10px;\" /></a></p>
"}, "featured_media": 0, "filename": "10x10_e2e_test_image_z9T8jK-1.png", "filesize": 80, "guid": {"rendered": "http://localhost:8889/wp-content/uploads/2026/10/10x10_e2e_test_image_z9T8jK-1.png"}, "id": 264, "link": "http://localhost:8889/?attachment_id=264", "media_details": {"file": "2026/10/10x10_e2e_test_image_z9T8jK-1.png", "filesize": 80, "height": 10, "image_meta": {"alt": "", "aperture": "0", "camera": "", "caption": "", "copyright": "", "created_timestamp": "0", "credit": "", "focal_length": "0", "iso": "0", "keywords": [], "orientation": "0", "shutter_speed": "0", "title": ""}, "sizes": {}, "width": 10}, "media_type": "image", "meta": [], "mime_type": "image/png", "modified": "2026-10-09T06:52:30", "modified_gmt": "2026-10-09T06:52:30", "ping_status": "closed", "post": 262, "slug": "10x10_e2e_test_image_z9t8jk-2", "source_url": "http://localhost:8889/wp-content/uploads/2026/10/10x10_e2e_test_image_z9T8jK-1.png", "status": "inherit", "template": "", "title": {"rendered": "10x10_e2e_test_image_z9T8jK"}, "type": "attachment"}, {"_links": {"about": [{"href": "http://localhost:8889/wp-json/wp/v2/types/attachment"}], "author": [{"embeddable": true, "href": "http://localhost:8889/wp-json/wp/v2/users/1"}], "collection": [{"href": "http://localhost:8889/wp-json/wp/v2/media"}], "curies": [{"href": "https://api.w.org/{rel}", "name": "wp", "templated": true}], "replies": [{"embeddable": true, "href": "http://localhost:8889/wp-json/wp/v2/comments?post=263"}], "self": [{"href": "http://localhost:8889/wp-json/wp/v2/media/263", "targetHints": {"allow": ["GET", "POST", "PUT", "PATCH", "DELETE"]}}], "wp:attached-to": [{"embeddable": true, "href": "http://localhost:8889/wp-json/wp/v2/posts/262", "id": 262, "post_type": "post"}]}, "alt_text": "", "author": 1, "caption": {"rendered": ""}, "class_list": ["post-263", "attachment", "type-attachment", "status-inherit", "hentry", "entry"], "comment_status": "open", "date": "2026-10-09T06:52:29", "date_gmt": "2026-10-09T06:52:29", "description": {"rendered": "<p class=\"attachment\"><a href='http://localhost:8889/wp-content/uploads/2026/10/10x10_e2e_test_image_z9T8jK.png'><img loading=\"lazy\" decoding=\"async\" width=\"10\" height=\"10\" src=\"http://localhost:8889/wp-content/uploads/2026/10/10x10_e2e_test_image_z9T8jK.png\" class=\"attachment-medium size-medium\" alt=\"\" style=\"width:100%;height:100%;max-width:10px;\" /></a></p>
"}, "featured_media": 0, "filename": "10x10_e2e_test_image_z9T8jK.png", "filesize": 80, "guid": {"rendered": "http://localhost:8889/wp-content/uploads/2026/10/10x10_e2e_test_image_z9T8jK.png"}, "id": 263, "link": "http://localhost:8889/?attachment_id=263", "media_details": {"file": "2026/10/10x10_e2e_test_image_z9T8jK.png", "filesize": 80, "height": 10, "image_meta": {"alt": "", "aperture": "0", "camera": "", "caption": "", "copyright": "", "created_timestamp": "0", "credit": "", "focal_length": "0", "iso": "0", "keywords": [], "orientation": "0", "shutter_speed": "0", "title": ""}, "sizes": {}, "width": 10}, "media_type": "image", "meta": [], "mime_type": "image/png", "modified": "2026-10-09T06:52:29", "modified_gmt": "2026-10-09T06:52:29", "ping_status": "closed", "post": 262, "slug": "10x10_e2e_test_image_z9t8jk", "source_url": "http://localhost:8889/wp-content/uploads/2026/10/10x10_e2e_test_image_z9T8jK.png", "status": "inherit", "template": "", "title": {"rendered": "10x10_e2e_test_image_z9T8jK"}, "type": "attachment"}]
    at /home/runner/work/gutenberg/gutenberg/test/e2e/specs/editor/various/single-file-placeholder-drop.spec.js:71:45
should cut and paste individual blocks with collapsed selection in /test/e2e/specs/editor/various/copy-cut-paste.spec.js, passed after 2 failed attempts.
Error: expect(string).toMatchSnapshot(expected) failed

  @@ -1,3 +1,3 @@
   <!-- wp:paragraph -->
  -<p>2Cut - collapsed selection</p>
  +<p>2</p>
   <!-- /wp:paragraph -->


    at /home/runner/work/gutenberg/gutenberg/test/e2e/specs/editor/various/copy-cut-paste.spec.js:45:49
Error: expect(string).toMatchSnapshot(expected) failed

  @@ -1,3 +1,3 @@
   <!-- wp:paragraph -->
  -<p>2Cut - collapsed selection</p>
  +<p>2</p>
   <!-- /wp:paragraph -->


    at /home/runner/work/gutenberg/gutenberg/test/e2e/specs/editor/various/copy-cut-paste.spec.js:45:49

c34028a Run

@jsnajdr

jsnajdr commented Sep 15, 2026

Copy link
Copy Markdown
Member Author

Do we still want to pursue this?

It would be nice to finish this. There were two blockers/objections:
The React Native platform we've been using and its JS engine (Hermes) didn't support Array.prototype.toSorted. That's irrelevant now, we abandoned RN.

Not all browsers specified in @wordpress/browserslist-config support toSorted. Was true in 2023, but is it still true in 2026? MDN says this about toSorted support:

Screenshot 2026-09-15 at 17 12 53

And our browsers list config expands to this list of browsers:

Screenshot 2026-09-15 at 17 17 16

That shows that we are very safely in compatible territory now. The only browser that the MDN page doesn't mention is "Android Browser 151". But maybe it's the same thing as "WebView Android 110". In that case this browser would be compatible, too.

@jsnajdr
jsnajdr force-pushed the update/sort-is-stable branch from a393ca2 to 8263d0a Compare October 7, 2026 14:49
@github-actions github-actions Bot added [Package] Blocks /packages/blocks [Package] Block editor /packages/block-editor labels Oct 7, 2026
@jsnajdr
jsnajdr force-pushed the update/sort-is-stable branch from 8263d0a to aaec894 Compare October 7, 2026 15:04
@github-actions github-actions Bot added [Tool] Babel plugin makepot /packages/babel-plugin-makepot [Package] Editor /packages/editor [Package] Views /packages/views labels Oct 7, 2026
@jsnajdr
jsnajdr marked this pull request as ready for review October 7, 2026 15:16
@jsnajdr
jsnajdr requested a review from ellatrix as a code owner October 7, 2026 15:16
@jsnajdr
jsnajdr requested a review from fabiankaegy as a code owner October 7, 2026 15:16
@jsnajdr

jsnajdr commented Oct 7, 2026

Copy link
Copy Markdown
Member Author

This old PR is now fully revived. One part (removing "stabilizing" code) was already done by @Mamaduka in #83443. What remains is to start using toSorted where appropriate (copy+sort semantics), and refactor findTransform from the very clever usage of hooks into something more plain.

@jsnajdr
jsnajdr requested review from Mamaduka and aduth October 7, 2026 15:17
@jsnajdr jsnajdr added [Type] Code Quality Issues or PRs that relate to code quality and removed [Status] Stale Gives the original author opportunity to update before closing. Can be reopened as needed. labels Oct 7, 2026

@aduth aduth left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

It'd be interesting if there's any performance benefit to this (the build failed to run). Conceptually we're doing less work by no longer creating a copy before sorting, so hopefully it's something the browsers could optimize.


// Filter name is arbitrarily chosen but consistent with above aggregation.
return hooks.applyFilters( 'transform', null ) as T | null;
const priority = ( t: T ) => t.priority ?? 10;

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.

Maybe past-Andrew's hope was to avoid piercing the abstraction of "10" as some magical priority baseline with this clever solution, but I suppose it's a not-unreasonable assumption to duplicate here. 🙂

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 added a comment that explains that the meaning of priority is that same as filters/actions: lower runs earlier, default is 10. It's an easy concept to grasp, we don't need the full hooks machinery to implement it 🙂

@Mamaduka

Mamaduka commented Oct 7, 2026

Copy link
Copy Markdown
Member

A great revival. Another rebase will probably sort out the PR meta-comment issues, and we can probably ignore changelog updates for these internal changes.

@jsnajdr
jsnajdr force-pushed the update/sort-is-stable branch 2 times, most recently from 81c84da to dd40f01 Compare October 8, 2026 07:50
@jsnajdr
jsnajdr requested a review from manzoorwanijk as a code owner October 8, 2026 07:50
*/
function sortByReference( translations = [] ) {
return [ ...translations ].sort( ( a, b ) =>
return translations.toSorted( ( a, b ) =>

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

This plugin runs in Node and its package.json still declares "node": ">=18.12.0", but Array.prototype.toSorted only exists from Node 20. On Node 18 this throws TypeError: translations.toSorted is not a function. Either keep [ ...translations ].sort() here, or bump engines.node with a breaking-change CHANGELOG entry (that would also fix the failing CHANGELOG check for this package).

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.

Good point, I'm doing this version bump in #84313, a separate PR. A "concerted effort to raise the engines requirement across the board" was already proposed by @aduth some time ago in #79755 (comment)

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

This is a good catch @manzoorwanijk . I wonder how we might have been able to catch this other than relying on human awareness. I'd be a bit reluctant to expand a matrix of jobs for a bunch of different Node.js versions, and I'm not sure that adding the oldest supported Node version to our existing matrix would even work, since some of our internal build tools (just to run the tests) rely on newer versions of Node.js. There might be some options with static analysis, like eslint-plugin-n/no-unsupported-features/es-builtins.

const priority = ( t: T ) => t.priority ?? 10;
const candidates = transforms
.filter( ( t ) => predicate( t ) )
.toSorted( ( t1, t2 ) => priority( t1 ) - priority( t2 ) );

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.

Nit: filter() already returns a fresh array, so toSorted makes a second copy. Plain .sort() is enough here, and .filter( predicate ) can drop the wrapper arrow.

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 think this is a very minor concern, for me it's more important that we use the immutable toSorted method in a situation where we're doing a chain of immutable changes.

The transforms array is typically very small, and one more array allocation is not likely to be detectable.

@jsnajdr

jsnajdr commented Oct 8, 2026

Copy link
Copy Markdown
Member Author

It'd be interesting if there's any performance benefit to this (the build failed to run). Conceptually we're doing less work by no longer creating a copy before sorting, so hopefully it's something the browsers could optimize.

The performance tests don't show any impact, and it was unlikely anyway. toSorted allocates an array copy internally. In theory the JS engine could optimize away the unreachable copies in calls like .filter().toSorted(), but even if it happened, we'd be saving nanoseconds, not detectable by regular perf suite.

I think the main benefit is a modernization of the code style.

@jsnajdr
jsnajdr force-pushed the update/sort-is-stable branch from dd40f01 to 71f3be8 Compare October 9, 2026 05:43
@jsnajdr
jsnajdr enabled auto-merge (squash) October 9, 2026 06:43
@jsnajdr
jsnajdr merged commit 7760bb7 into trunk Oct 9, 2026
115 checks passed
@jsnajdr
jsnajdr deleted the update/sort-is-stable branch October 9, 2026 07:00
@github-actions github-actions Bot added this to the Gutenberg 24.3 milestone Oct 9, 2026
wporg-sync pushed a commit to WordPress/wordpress-develop that referenced this pull request Oct 20, 2026
This updates the pinned commit hash of the Gutenberg repository from
7b95ee96b54de2e35886971ccf7eb449c324c830 (version 24.2.0) to
be6a50be6834e922b9db12c75c9a2cd817b2db59.

The new hash is the tip of the wp/7.2 branch rather than a release tag. It
covers the 24.3.0 RC1 release plus the changes cherry-picked to the branch
after it was tagged: Gutenberg PRs 85155, 82730, 71634, and 81644.

A full list of changes included in this commit can be found on GitHub:
WordPress/gutenberg@7b95ee9...be6a50b

- Icons: Experiment with proportional stroke scaling (WordPress/gutenberg#84081)
- PaletteEdit: Migrate Emotion styles to SCSS Modules (WordPress/gutenberg#84130)
- Editor: Validate parent container when converting blocks to template parts (WordPress/gutenberg#84155)
- Build: Keep absolute paths out of worker source maps (WordPress/gutenberg#84163)
- Chore: Update simple-git to v4 (WordPress/gutenberg#84137)
- SearchableChipSelect: Preserve selected chips on Escape (WordPress/gutenberg#84172)
- Props Bot: Queue runs instead of cancelling superseded ones (WordPress/gutenberg#84176)
- Custom HTML: Show a floating marker when the block renders nothing (WordPress/gutenberg#84150)
- DateTimePicker: Migrate Emotion wrapper to SCSS Modules (WordPress/gutenberg#84129)
- Bump simple-git and promptfoo in /test/ai-development (WordPress/gutenberg#84104)
- Bump the github-actions group across 1 directory with 4 updates (WordPress/gutenberg#84121)
- UI: Keep popups open for presses inside their iframes (WordPress/gutenberg#83870)
- Tests: Fix HTML comparison tests (WordPress/gutenberg#84294)
- Playlist: Add minimum width and height support (WordPress/gutenberg#83909)
- Navigation Overlay Close: Add minimum width and height support (WordPress/gutenberg#83907)
- Post Template: Add minimum width and height support (WordPress/gutenberg#83911)
- Bump proxy-addr from 2.0.7 to 2.0.8 in /test/ai-development (WordPress/gutenberg#84092)
- A11y: Move `prefersReducedMotion` into the block library's shared utils (WordPress/gutenberg#84297)
- Bump moment from 2.29.4 to 2.31.0 (WordPress/gutenberg#83828)
- Packages: Stop publishing tsconfig files, TypeScript build info and tests (WordPress/gutenberg#84164)
- Tests: Fix list item unsafe markup test on older WordPress versions (WordPress/gutenberg#84302)
- Bump joi from 18.2.5 to 18.2.9 (WordPress/gutenberg#84211)
- Bump ip-address from 10.5.0 to 10.7.3 (WordPress/gutenberg#83734)
- Bump proxy-addr from 2.0.7 to 2.0.8 (WordPress/gutenberg#84212)
- Bump seroval from 1.5.4 to 1.6.8 (WordPress/gutenberg#84151)
- Tab List: Add background image, size, and gradient support (WordPress/gutenberg#83953)
- Pullquote: Add writing mode and text indent support (WordPress/gutenberg#83964)
- CustomSelectControl: Migrate Emotion styles to SCSS Modules (WordPress/gutenberg#84131)
- ColorPicker: Migrate Emotion styles to SCSS Modules (WordPress/gutenberg#84128)
- Build: Guard SCRIPT_DEBUG with defined() in script and style registration (WordPress/gutenberg#83633)
- Notes: Mark the text an unsent note is about with a draft marker (WordPress/gutenberg#84125)
- Quote: Add writing mode support (WordPress/gutenberg#83965)
- Tip: Migrate inserter usages to Notice and deprecate the component (WordPress/gutenberg#84197)
- Query Loop: list taxonomy terms so they can be browsed, not recalled (WordPress/gutenberg#82583)
- Primitives: Refactor to TypeScript (WordPress/gutenberg#84309)
- Release Tooling: Publish wp/X.Y branches with their own npm config (WordPress/gutenberg#84160)
- Packages: Stop publishing Markdown files other than README.md (WordPress/gutenberg#84307)
- Raise the minimum required Node.js to 22 with CJS/ESM interop (WordPress/gutenberg#84313)
- Automated Testing: Fix Storybook manifest errors and validate in CI (WordPress/gutenberg#84198)
- Notes: Select the note under the caret (WordPress/gutenberg#84147)
- Table: Add text align support (WordPress/gutenberg#83966)
- Accordion Heading: Add background gradient support (WordPress/gutenberg#83938)
- Style Book: Fix crash when the Heading block is unregistered (WordPress/gutenberg#84359)
- Icon: Add shadow support (WordPress/gutenberg#83921)
- Playlist: Add background image, size, and gradient support (WordPress/gutenberg#83928)
- Cover: Add minimum width support (WordPress/gutenberg#83975)
- UI: Consolidate shared iframe dismissal tests (WordPress/gutenberg#84296)
- File: Add typography support (WordPress/gutenberg#83969)
- List: Add minimum width and height support (WordPress/gutenberg#83915)
- CI: Run the required trunk changes cron every 4 hours (WordPress/gutenberg#84301)
- Workflow: Refactor to TypeScript (WordPress/gutenberg#84311)
- Remove the lazy-import package (WordPress/gutenberg#84318)
- Terms Query: Add padding, margin, and block gap support (WordPress/gutenberg#83959)
- Notes: Read note markers from the rich-text record, not its HTML (WordPress/gutenberg#84310)
- Paragraph: Add background image, size, and gradient support (WordPress/gutenberg#83934)
- Paragraph: Add minimum width and height support (WordPress/gutenberg#83924)
- Sorting: assume standard sort is stable, try out the new toSorted method (WordPress/gutenberg#52213)
- DataForm: Center the text control's prefix and suffix (WordPress/gutenberg#84314)
- Cover: Add link and button colour support (WordPress/gutenberg#83972)
- Remove redundant checkJs: false from fully TypeScript packages (WordPress/gutenberg#84366)
- Fields: Fix the page title row jumping on hover when a page type badge is shown (WordPress/gutenberg#84368)
- Search: Add background gradient support (WordPress/gutenberg#83954)
- UI: Hook AlertDialog into compat overlay slot (WordPress/gutenberg#83878)
- ESLint: Align UI caution components with Storybook status (WordPress/gutenberg#84319)
- Comments Pagination Next: Add border and padding support (WordPress/gutenberg#64310)
- Comment Pagination Previous: Add Border and Padding Support (WordPress/gutenberg#64308)
- Preferences Persistence: Refactor to TypeScript (WordPress/gutenberg#84312)
- Rich Text: Refactor store and value creation to TypeScript (WordPress/gutenberg#84324)
- NumberControl: Migrate Emotion styles to SCSS Modules (WordPress/gutenberg#84330)
- navigateRegions: Only outline focused Publish and Save regions (WordPress/gutenberg#84343)
- Theme: Consolidate border mode overrides in the token resolver (WordPress/gutenberg#84108)
- DOM: Refactor to TypeScript (WordPress/gutenberg#84317)
- Fields: Lock the status and slug fields for users who can't publish (WordPress/gutenberg#84371)
- Commands: Refactor to TypeScript (WordPress/gutenberg#84315)
- Cache the theme.json data merged from all origins (WordPress/gutenberg#81979)
- Workflow: Address follow-ups from the TypeScript refactor (WordPress/gutenberg#84361)
- Fields API: Take over core's registry singleton like the icons API (WordPress/gutenberg#84168)
- DOM: Fix getOffsetParent infinite loop on a non-element parent (WordPress/gutenberg#84374)
- UI: Support button items in Breadcrumb (WordPress/gutenberg#84156)
- TimePicker: Migrate Emotion styles to SCSS Modules (WordPress/gutenberg#84331)
- Bump actions/setup-node from 6.4.0 to 7.0.0 in /.github/workflows (WordPress/gutenberg#80965)
- InputControl: ignore the drag gesture on touch devices (WordPress/gutenberg#81519)
- Tabs: Migrate Emotion styles to SCSS Modules (WordPress/gutenberg#84332)
- UI: Add Avatar component (WordPress/gutenberg#84145)
- SelectControl: Migrate smaller package consumers to @wordpress/ui (WordPress/gutenberg#84345)
- Editor: Keep the block toolbar row on phones while no block is selected (WordPress/gutenberg#84461)
- Tests: Use strict assertions for post time-to-read word counts (WordPress/gutenberg#84510)
- Tests: Use strict assertions in image block tests (WordPress/gutenberg#84513)
- Tests: Use a strict assertion in Heading block tests (WordPress/gutenberg#84514)
- Tests: Use a strict assertion in Paragraph block tests (WordPress/gutenberg#84515)
- Video: Add minimum width and height support (WordPress/gutenberg#83974)
- Icon: Add minimum width and height support (WordPress/gutenberg#83971)
- Table: Add background gradient support (WordPress/gutenberg#83949)
- Post Navigation Link: Add minimum width and height support (WordPress/gutenberg#83973)
- Tests: Scope Classic block media checkbox locator (WordPress/gutenberg#84524)
- Term Template: Add heading and button colour support (WordPress/gutenberg#83968)
- Tab List: Add line height, font weight, letter spacing, and text transform support (WordPress/gutenberg#83961)
- Navigation Overlay Close: Add margin support (WordPress/gutenberg#83970)
- Global Styles: Ignore theme.json values of unexpected types (WordPress/gutenberg#84523)
- Search: Add shadow support (WordPress/gutenberg#83937)
- Icon: Add background image, size, and gradient support (WordPress/gutenberg#83948)
- Enable style state-specific custom CSS (WordPress/gutenberg#83539)
- Media editor: Add an edits slice to the session (WordPress/gutenberg#83899)
- Bump compression from 1.8.1 to 1.8.2 (WordPress/gutenberg#84304)
- Bump nx from 23.2.0 to 23.3.0 (WordPress/gutenberg#84299)
- Enable Gallery columns to override legacy responsive styles (WordPress/gutenberg#84360)
- Global Styles: Ignore per-origin spacingScale values that are not objects (WordPress/gutenberg#84529)
- Icon block: Show collection name in the "All" tab of the icon library (WordPress/gutenberg#84055)
- Accordion Heading: Anchor inline notes to selected title text (WordPress/gutenberg#84497)
- Upgrade JSDOM to 30.1.2 with likely perf improvements (WordPress/gutenberg#84367)
- Icon block: Speed up rendering of the icon library (WordPress/gutenberg#84327)
- Build: Update Ariakit to 0.4.41 (WordPress/gutenberg#84539)
- ToolsPanel: Put setting names first in accessible action labels (WordPress/gutenberg#84341)
- Build: Update Vite to 8.3.4 (WordPress/gutenberg#84544)
- RichText: remove refs from event listeners contexts (WordPress/gutenberg#84545)
- Block Toolbar: Fix UI menus requiring two clicks to open (WordPress/gutenberg#84547)
- UI: Preserve explicit null portal containers (WordPress/gutenberg#84370)
- DataViews: Enable compatibility for mixed-library overlays (WordPress/gutenberg#84305)
- Theme: Enrich `design-tokens.js` export with more token data (WordPress/gutenberg#76604)
- UI: Add missing popup width stories (WordPress/gutenberg#84320)
- React 19 types: migrate away from MutableRefObject (WordPress/gutenberg#84550)
- Tests: Add unit test coverage for WP_REST_Icon_Collections_Controller (WordPress/gutenberg#83168)
- Button: Use Spinner for loading indicators (WordPress/gutenberg#84321)
- Select, Combobox, Autocomplete: Align popup list spacing (WordPress/gutenberg#84393)
- Block Editor: Remove unused subdirectory icon (WordPress/gutenberg#84575)
- Modal: Add focus fallback for firstContentElement (WordPress/gutenberg#84344)
- SelectControl: Migrate native block-editor consumers to @wordpress/ui (WordPress/gutenberg#84546)
- Menu: Clarify icon, label, and description usage guidelines (WordPress/gutenberg#84020)
- Add iOS e2e test harness + test selecting text across two paragraphs (WordPress/gutenberg#84463)
- Enable editableRoot for the heading block for multi-selection on mobile (WordPress/gutenberg#84358)
- iOS tests: serve WordPress with PHP and start Safari during setup (WordPress/gutenberg#84585)
- Ensure block style variations use correct selector for custom CSS on the front end (WordPress/gutenberg#84530)
- Search: Add border style support (WordPress/gutenberg#83960)
- Video: Don't autoplay on the front end when reduced motion is preferred (WordPress/gutenberg#84308)
- Allow rich text formatting across blocks (WordPress/gutenberg#58913)
- Cover: Don't autoplay an uploaded background video when reduced motion is preferred (WordPress/gutenberg#83853)
- Block breadcrumbs: Use `@wordpress/ui` package component (WordPress/gutenberg#84295)
- Docs: Note reduced-motion handling for autoplaying media (WordPress/gutenberg#84594)
- Media editor: Reset the whole session in one step (WordPress/gutenberg#84591)
- Block Supports: Add background-clip block support UI (WordPress/gutenberg#77142)
- Media & Text: replace deprecated word-break with overflow-wrap: anywhere (WordPress/gutenberg#82580)
- React 19 codemod: apply defaultProps when rendering a memo component (WordPress/gutenberg#84568)
- Style states: Add footer viewport and responsive styles status (WordPress/gutenberg#84146)
- Block Toolbar: Fix the unnamed placeholder button when the default block is unregistered (WordPress/gutenberg#84533)
- DropdownMenu: Keep a disabled toggle closed on ArrowDown (WordPress/gutenberg#84556)
- Navigation: Keep the flex layout on a block inserted into an overlay (WordPress/gutenberg#82232)
- UI: Document Combobox popup accessible names (WordPress/gutenberg#84551)
- Docs: Fix Breadcrumb usage guidelines sidebar structure (WordPress/gutenberg#84564)
- Rich Text: Refactor the remaining modules to TypeScript (WordPress/gutenberg#84365)
- E2E Tests: Open settings sidebar in constrained canvas test (WordPress/gutenberg#84606)
- Term Count: Reuse term data from Term Template (WordPress/gutenberg#84119)
- Rich Text: Convert the hook to TypeScript (WordPress/gutenberg#84378)
- Commands: Fix icon, loader state and recent command follow-ups (WordPress/gutenberg#84377)
- Preferences Persistence: Address TypeScript conversion follow-ups (WordPress/gutenberg#84375)
- React 19: add new incompatible plugins (WordPress/gutenberg#84607)
- Block Toolbar: Keep last item fills out of the placeholder toolbar (WordPress/gutenberg#84554)
- JSDoc: Escape wordpress package names in comments (WordPress/gutenberg#84369)
- rich-text: strip every object replacement character in getTextContent (WordPress/gutenberg#81526)
- Components: Convert the remaining files to TypeScript (WordPress/gutenberg#84611)
- Table Block: Adds link color support (WordPress/gutenberg#72229)
- Experiments: don't invalidate saved option with a legacy key (WordPress/gutenberg#84619)
- Interactivity API: Align directive name validation with WordPress Core (WordPress/gutenberg#81023)
- UI: Use the compatibility overlay slot for Drawer (WordPress/gutenberg#84380)
- Rich Text: Address TypeScript conversion follow-ups (WordPress/gutenberg#84610)
- DataViews: Format footer counts (WordPress/gutenberg#84622)
- Customize Widgets: Keep the block selected when using @wordpress/ui overlays (WordPress/gutenberg#84628)
- Tabs: Restore fit-content width for horizontal tab lists (WordPress/gutenberg#84626)
- Components: Improve accessibility, discoverability of `ColorPicker` inputs (WordPress/gutenberg#70214)
- UI: Use the compatibility overlay slot for Dialog (WordPress/gutenberg#84379)
- Post Taxonomies: Restore shortcuts to create terms (WordPress/gutenberg#84601)
- Snackbar: Restore focus when used outside SnackbarList (WordPress/gutenberg#84342)
- Fix icon display issues in icon block within block manager (WordPress/gutenberg#84107)
- Components: Generate JavaScript design token fallbacks (WordPress/gutenberg#84569)
- Build: Update Base UI to 1.9.0 (WordPress/gutenberg#84542)
- RangeControl: Migrate Emotion styles to SCSS Modules (WordPress/gutenberg#84562)
- Zed: Exclude node_modules from the file scan and turn off Tailwind CSS (WordPress/gutenberg#84604)
- Modal: keep an accessible name when the header is hidden (WordPress/gutenberg#82645)
- Grid: point bottomLeft alignment at the bottom left corner (WordPress/gutenberg#82641)
- UnitControl: Migrate Emotion styles to SCSS Modules (WordPress/gutenberg#84561)
- Switched to the official gradient-parser types (WordPress/gutenberg#84582)
- Navigator: Migrate Emotion styles to SCSS Modules (WordPress/gutenberg#84565)
- PaletteEdit: Name picker dialogs and add screen reader dismissal (WordPress/gutenberg#84333)
- Dialog: Add an `auto` popup size that fits content width (WordPress/gutenberg#84559)
- Add e2e tests for the autosave failure notice (WordPress/gutenberg#84644)
- iOS tests: launch Safari before opening the setup page (WordPress/gutenberg#84640)
- Media Inserter: Redesign using DataViews grid for displaying media items (WordPress/gutenberg#82749)
- Remove compat function for unsupported unprefixed style states (WordPress/gutenberg#84531)
- Global Styles: Remove the custom styles dot from the block list (WordPress/gutenberg#84657)
- InserterDraggableBlocks: Add JSDoc types, and tidy up media-tab inserter files (WordPress/gutenberg#84655)
- Storybook: Sort unlisted sidebar folders alphabetically (WordPress/gutenberg#84563)
- Tabs: Fix filled link icon in Storybook (WordPress/gutenberg#84618)
- ESLint: Require WCSpinner alias for legacy Spinner imports (WordPress/gutenberg#84390)
- Navigation: Fix error when inserting block via Browse all in list view (WordPress/gutenberg#84665)
- Patterns: Let users load synced patterns they can't edit, without "Edit original" (WordPress/gutenberg#84641)
- Notes: Focus the new note form once it's positioned (WordPress/gutenberg#84639)
- Block Editor: Keep multiline paste inside empty Preformatted and Poetry blocks (WordPress/gutenberg#83552)
- Popover: Use design-system tokens on the default surface. (WordPress/gutenberg#84574)
- Font Library: Load all installed font families (WordPress/gutenberg#84684)
- Patterns: Let users detach synced patterns they can't edit (WordPress/gutenberg#84681)
- Rename "fields" to "entity fields" (WordPress/gutenberg#84691)
- Font Library: Mark installed font variants in font collections (WordPress/gutenberg#84023)
- Automated Testing: Add AI review guidance for lint suppressions (WordPress/gutenberg#84638)
- SearchableSelectControl: Fix search icon orientation (WordPress/gutenberg#84690)
- PR meta: Add a Playground preview link (WordPress/gutenberg#84687)
- Block Editor: PR 1: Add every source file to the TypeScript build project (WordPress/gutenberg#84615)
- Build: Update pr-baseline-action to v0.3.0 (WordPress/gutenberg#84692)
- Gallery: Improve mobile lightbox with animated swiping (WordPress/gutenberg#79114)
- Tabs: Align interaction backgrounds and focus states (WordPress/gutenberg#84572)
- Block Editor: PR 5: Convert the remaining utils and the state style helpers to TypeScript (WordPress/gutenberg#84629)
- Remove some stale overrides (WordPress/gutenberg#84674)
- Actions API: Register the entity actions on the server (WordPress/gutenberg#84650)
- Compose: Convert the remaining files to TypeScript (WordPress/gutenberg#84382)
- Navigation Link: Check page create permission only when needed (WordPress/gutenberg#84663)
- Dialog: Check story and test sizes against popup prop types (WordPress/gutenberg#84705)
- Block Editor: PR 2: Convert the small store modules to TypeScript (WordPress/gutenberg#84616)
- Block Editor: PR 3: Convert the store reducer to TypeScript (WordPress/gutenberg#84624)
- Block Editor: PR 6: Convert the store selectors to TypeScript (WordPress/gutenberg#84631)
- Block Editor: PR 7: Convert the store private selectors to TypeScript (WordPress/gutenberg#84662)
- Block Editor: PR 8: Convert the store actions to TypeScript (WordPress/gutenberg#84672)
- Menu: Migrate Emotion styles to SCSS Modules (WordPress/gutenberg#84706)
- Blocks: Accept a feature path array in getBlockSupport and hasBlockSupport (WordPress/gutenberg#84708)
- Block Editor: PR 4: Convert the shared component modules to TypeScript (WordPress/gutenberg#84625)
- Blocks: Type the background clip, gradient, position and repeat supports (WordPress/gutenberg#84709)
- Block Editor: PR 9: Convert the store defaults, getBlockSettings and index to TypeScript (WordPress/gutenberg#84677)
- Link: Add a small radius for consistent focus rings (WordPress/gutenberg#84697)
- Remove the autosave failure notice once a later save succeeds (WordPress/gutenberg#84649)
- CI: Expire large workflow artifacts sooner (WordPress/gutenberg#84525)
- Changes to custom CSS from core review (WordPress/gutenberg#84757)
- Rename inspector and toolbar style-states slots for consistency (WordPress/gutenberg#84598)
- Patterns: List synced patterns the user can read but not edit in the inserter (WordPress/gutenberg#84661)
- PR meta: Write sections on stacked pull requests (WordPress/gutenberg#84703)
- Media Inserter: visually clear the grid and use a loading state spinner when switching categories (WordPress/gutenberg#84667)
- ESLint: Make jsdoc/escape-inline-tags an error (WordPress/gutenberg#84701)
- Block Editor: Type isValueSpacingPreset as returning a boolean (WordPress/gutenberg#84730)
- Cover: Decode the oEmbed iframe source before parsing its query string (WordPress/gutenberg#83770)
- Block Editor: Preserve rich text selection on Shift+click within the same block (WordPress/gutenberg#84579)
- Build: Remove Emotion compiler tooling (WordPress/gutenberg#84707)
- Pattern block: Load the view record, and the edit record only once it's loaded (WordPress/gutenberg#84799)
- PostURL: Remove double focus ring outline (WordPress/gutenberg#84694)
- LinkControl: Use design system focus ring for link preview (WordPress/gutenberg#84695)
- Notice: Match dismiss controls and titles to status colors (WordPress/gutenberg#84571)
- BaseControl: Remove unsupported `as` prop from types and docs (WordPress/gutenberg#70064)
- Avatar: Add shared initials and improve fallbacks (WordPress/gutenberg#84653)
- Search: Add minimum width and height support (WordPress/gutenberg#83977)
- Revisions: Meet AA contrast for the inline del diff without an opacity filter (WordPress/gutenberg#82258)
- CustomGradientPicker: Keep the color interpolation method when editing a gradient (WordPress/gutenberg#84383)
- Post Navigation Link: Add background image, size, and gradient support (WordPress/gutenberg#83940)
- Notes: Drop misleading aria-haspopup from Add note menu item (WordPress/gutenberg#84818)
- RichText: Derive active formats at the caret for input and paste (WordPress/gutenberg#84303)
- Editor: Fix long author name overflowing the Post sidebar panel (WordPress/gutenberg#84165)
- Interactivity API: Fix late `data-wp-html` values, throwing functions and directive conflicts (WordPress/gutenberg#84652)
- FontAppearanceControl: Migrate to @wordpress/ui (WordPress/gutenberg#84716)
- Kebab Case: Convert the tests to TypeScript (WordPress/gutenberg#84825)
- Date: Convert the tests to TypeScript (WordPress/gutenberg#84830)
- Block Editor: PR 10: Convert the hook utils, block style state and Global Styles hooks to TypeScript (WordPress/gutenberg#84720)
- Block Editor: PR 11: Convert the block support helpers to TypeScript (WordPress/gutenberg#84721)
- Block Editor: PR 12: Convert the layout helpers and block gap utils to TypeScript (WordPress/gutenberg#84722)
- Block Editor: PR 13: Convert the block attribute filter hooks to TypeScript (WordPress/gutenberg#84723)
- SelectControl: Migrate date format and preset input consumers to @wordpress/ui (WordPress/gutenberg#84584)
- Changelog validation: Reject blank lines between Unreleased entries (WordPress/gutenberg#84804)
- DataViews: Convert the filterSortAndPaginate tests to TypeScript (WordPress/gutenberg#84836)
- ESLint: Allow design token references in component JavaScript (WordPress/gutenberg#84827)
- babel-preset-default: Add polyfill list to generated bundle (WordPress/gutenberg#84835)
- Tests: Use a strict assertion in block template tests (WordPress/gutenberg#84683)
- Tests: Use a strict assertion in PHPUnit environment setup tests (WordPress/gutenberg#84686)
- Core Data: Keep read-only taxonomy fields out of collaborative edits (WordPress/gutenberg#84838)
- Select: Preserve scrolling when item alignment falls back (WordPress/gutenberg#84682)
- Search: Don't clip the button focus outline when the field is collapsed (WordPress/gutenberg#84685)
- List View: Show appender in contentOnly locked sections (WordPress/gutenberg#84713)
- Raise the PHP request time limit for the iOS tests (WordPress/gutenberg#84741)
- Env: Use the matching wordpress-develop branch for pre-release PHPUnit tests (WordPress/gutenberg#84758)
- Editor: Keep a preview canvas from adopting the entity's selection (WordPress/gutenberg#84832)
- Core fields: Register the default fields of WordPress on the server (WordPress/gutenberg#84696)
- Editor: Read the entity fields from the server (WordPress/gutenberg#84700)
- iOS tests: run the editor in a web view instead of Safari (WordPress/gutenberg#84859)
- BorderBoxControl: Unpack multi-value shorthand width when unlinking border sides (WordPress/gutenberg#84826)
- Actions API: Extract the core actions into the `@wordpress/core-actions` script modules (WordPress/gutenberg#84643)
- Global Styles: Remove preset items of unexpected types to avoid fatals (WordPress/gutenberg#84534)
- Media: Skip auto-attach on save when attachment pages are enabled (WordPress/gutenberg#84851)
- Block Editor: PR 14: Convert InspectorControls to TypeScript (WordPress/gutenberg#84725)
- Block Editor: PR 15: Convert the anchor and custom class name hooks to TypeScript (WordPress/gutenberg#84726)
- Block Editor: PR 16: Convert the auto-generated inspector controls to TypeScript (WordPress/gutenberg#84727)
- Block Editor: PR 17: Convert the zoom out and content only section hooks to TypeScript (WordPress/gutenberg#84731)
- Block Editor: PR 18: Convert BlockControls to TypeScript (WordPress/gutenberg#84733)
- Block Editor: PR 19: Convert the flow layout to TypeScript (WordPress/gutenberg#84734)
- Block Editor: PR 20: Convert BlockPopover, the color and gradient controls, BlockTitle, useBlockDisplayInformation and MediaUpload to TypeScript (WordPress/gutenberg#84813)
- Media Inserter: Add a FilePreview component for rendering audio or other non image/video files (WordPress/gutenberg#84882)
- Data Controls: Convert the tests to TypeScript (WordPress/gutenberg#84852)
- Undo Manager: Convert the tests to TypeScript (WordPress/gutenberg#84895)
- Build: Fix `npm run dev` failing on the patterns tsconfig comment (WordPress/gutenberg#84898)
- Snackbar: Keep snackbars with an action on screen longer (WordPress/gutenberg#84842)
- DatePicker: Migrate Emotion styles to SCSS Modules (WordPress/gutenberg#84724)
- Fields: Remove the fields that moved to @wordpress/core-fields (WordPress/gutenberg#84897)
- FocalPointPicker: Migrate Emotion styles to SCSS Modules (WordPress/gutenberg#84736)
- Notes: Remove divider between canvas and floating notes (WordPress/gutenberg#84850)
- SelectControl: Migrate Emotion styles to SCSS Modules (WordPress/gutenberg#84732)
- Core Actions: Register the core actions on the server (WordPress/gutenberg#84660)
- InputControl: Migrate Emotion styles to SCSS Modules (WordPress/gutenberg#84728)
- Tabs: Show design system focus ring on tab panels (WordPress/gutenberg#84914)
- PostURL: Use `@wordpress/ui` Link for post URL link (WordPress/gutenberg#84820)
- URL: Convert the tests to TypeScript (WordPress/gutenberg#84916)
- Framework: Improve AGENTS.md guidance around running package scripts (WordPress/gutenberg#84195)
- Components: Remove Emotion from the context system (WordPress/gutenberg#84925)
- Interactivity API: Keep server-rendered data-wp-html content for the server's token representation (WordPress/gutenberg#84889)
- Badge: Clarify that badges should not be interactive (WordPress/gutenberg#84920)
- SelectControl: Add a trigger slot for props and content (WordPress/gutenberg#84828)
- ESLint: Require TypeScript for new files (WordPress/gutenberg#84829)
- Private APIs: Convert the tests to TypeScript (WordPress/gutenberg#84901)
- Navigation: Edit links in a popover from the sidebar List View (WordPress/gutenberg#84005)
- Block Editor: PR 21: Convert LinkControl and URLInput to TypeScript (WordPress/gutenberg#84844)
- Block Editor: PR 22: Convert Warning, BlockEdit and PrivateBlockContext to TypeScript (WordPress/gutenberg#84846)
- Block Editor: PR 23: Convert the layouts and the alignment controls to TypeScript (WordPress/gutenberg#84847)
- Link: Keep the new-tab indicator with the link text (WordPress/gutenberg#84806)
- Interactivity API: Optimize toVdom walk() (WordPress/gutenberg#81699)
- Bump the github-actions group across 2 directories with 7 updates (WordPress/gutenberg#84937)
- Components: Remove unused Emotion styling utilities (WordPress/gutenberg#84929)
- List View: Allow nesting with top level items (WordPress/gutenberg#84856)
- Login/out: Mark the block as content (WordPress/gutenberg#84849)
- Block Editor: PR 24: Convert the typography controls to TypeScript (WordPress/gutenberg#84848)
- Block Editor: PR 25: Convert the color utilities and controls to TypeScript (WordPress/gutenberg#84875)
- Block Editor: PR 26: Convert the block visibility, lock and bindings components to TypeScript (WordPress/gutenberg#84876)
- Block Editor: PR 27: Convert the image dimension tools to TypeScript (WordPress/gutenberg#84877)
- Block Editor: PR 28: Convert PresetInputControl to TypeScript (WordPress/gutenberg#84878)
- Block Editor: PR 29: Convert URLPopover and LinkPicker to TypeScript (WordPress/gutenberg#84879)
- Block Editor: PR 30: Convert BorderRadiusControl and DimensionControl to TypeScript (WordPress/gutenberg#84880)
- Block Editor: PR 31: Convert the keyboard shortcuts, ObserveTyping and Typewriter to TypeScript (WordPress/gutenberg#84902)
- Block Editor: PR 32: Convert the block drop, paste styles and block command hooks to TypeScript (WordPress/gutenberg#84906)
- Block Editor: PR 33: Convert SpacingSizesControl, the line height hook and the spacing visualizer to TypeScript (WordPress/gutenberg#84907)
- Block Editor: PR 34: Convert the contrast checker, block bindings, block style variation and position hooks to TypeScript (WordPress/gutenberg#84908)
- Block Editor: PR 35: Convert the alignment, heading level, HTML element, unit and height controls to TypeScript (WordPress/gutenberg#84912)
- Block Editor: PR 36: Convert the inserter listbox, BlockCard, block variation and inspector leaves to TypeScript (WordPress/gutenberg#84913)
- Block Editor: PR 37: Convert BlockEditorProvider and useBlockSync to TypeScript (WordPress/gutenberg#84915)
- Block Editor: PR 38: Convert WritingFlow to TypeScript (WordPress/gutenberg#84918)
- Block Editor: PR 39: Convert Iframe, EditorStyles, NavigableToolbar, CopyHandler and BlockBreadcrumb to TypeScript (WordPress/gutenberg#84922)
- Block Editor: PR 40: Convert MediaPlaceholder and ImageEditor to TypeScript (WordPress/gutenberg#84923)
- Show the browser backup's date and compare it before restoring (WordPress/gutenberg#84735)
- Generate animated image sub-sizes for animated uploads (WordPress/gutenberg#80385)
- Avatar: Add an optional color ring (WordPress/gutenberg#84822)
- Tests: Use a strict assertion in background block support tests (WordPress/gutenberg#84883)
- Tests: Use strict assertions in layout block support tests (WordPress/gutenberg#84884)
- Tests: Use a strict assertion in typography block support tests (WordPress/gutenberg#84885)
- Tests: Use strict assertions in REST icons controller tests (WordPress/gutenberg#84886)
- Tests: Use strict assertions in hierarchical sort tests (WordPress/gutenberg#84887)
- Tests: Use strict assertions in navigation link variations tests (WordPress/gutenberg#84888)
- Components: Replace remaining Emotion test and story fixtures (WordPress/gutenberg#84926)
- Connectors: preload REST API responses on the Connectors screen (WordPress/gutenberg#77353)
- Add emoji reactions to notes! ❤️ 🎉 😄 👀 🚀 (WordPress/gutenberg#76767)
- Editor: add copy option for save failures & a "show/hide details" button (WordPress/gutenberg#82496)
- Upload Media: Convert the private actions tests to TypeScript (WordPress/gutenberg#84930)
- Format Library: Convert the tests to TypeScript (WordPress/gutenberg#85032)
- StyleProvider: Remove the Emotion cache (WordPress/gutenberg#85019)
- Scripts: Run e2e tests against the configured wp-env test environment (WordPress/gutenberg#84654)
- Notes: Skip the reaction summary pre-fetch when core already does it (WordPress/gutenberg#85047)
- Navigation Link: Apply "Open in new tab" from the link popover (WordPress/gutenberg#83506)
- Media auto-attach: For published posts, only attach newly added image ids (WordPress/gutenberg#84890)
- Drag a multi-selection by pressing anywhere inside it (WordPress/gutenberg#81602)
- Mark non-breaking spaces with a red dot and add a button to replace them (WordPress/gutenberg#84737)
- Duotone: Sync unsupported attribute type guard from Core (WordPress/gutenberg#84801)
- Post Title: Add fit text support. (WordPress/gutenberg#83036)
- Ensure "hide block tools" text isn't wider than button background. (WordPress/gutenberg#85051)
- Editor restoreRevisions: if there are unsaved changes, save these as a revision before restoring a revision (WordPress/gutenberg#84590)
- Allow block toolbar to wrap when text labels are enabled (WordPress/gutenberg#84802)
- Post slug: Derive the slug preview from the current title instead of `generated_slug` (WordPress/gutenberg#84893)
- DataViews and Storybook: Remove unused Emotion dependencies (WordPress/gutenberg#85021)
- Components: Update guidance after the Emotion migration (WordPress/gutenberg#85020)
- URL: Make `cleanForSlug` match WordPress core's `sanitize_title()` (WordPress/gutenberg#84896)
- Notes: Make the "Add note" toolbar button add-only and drop the avatars (WordPress/gutenberg#84635)
- Components: Finish Emotion dependency and test cleanup (WordPress/gutenberg#85022)
- feat: Add dry-run optional param in cherry-pick script (WordPress/gutenberg#78878)
- Build: Update Terrazzo token tools to 2.9.0 (WordPress/gutenberg#85067)
- Tabs: Expand vertical interaction backgrounds and focus rings (WordPress/gutenberg#84821)
- Build: Update Testing Library user-event to 14.6.8 (WordPress/gutenberg#85068)
- Components: Retire completed Emotion migration guidance (WordPress/gutenberg#85023)
- Use `Select` for remaining `SelectControl` `variant="minimal"` call sites (WordPress/gutenberg#83035)
- Patterns: Rename the inserter's "My patterns" to "Site patterns" and add an author filter (WordPress/gutenberg#84680)
- Storybook: present motion tokens as an MDX docs page (WordPress/gutenberg#85080)
- Avatar: Add colored fallbacks with foreground tinting (WordPress/gutenberg#84824)
- FontFamilyControl: Migrate to @wordpress/ui (WordPress/gutenberg#84715)
- Project management automation: Move to tools as an internal action (WordPress/gutenberg#85087)
- Build: Update Ariakit to 0.4.42 (WordPress/gutenberg#85066)
- Block editor: Remove unused internal helpers (WordPress/gutenberg#85092)
- Stylelint: Consolidate Lint rules for simplification  (WordPress/gutenberg#71235)
- Tools: Migrate project-management-automation to TS (WordPress/gutenberg#71193)
- Notes: Improve how anchor highlight and connect to content (WordPress/gutenberg#80578)
- Upload media: Remove unused filename helpers (WordPress/gutenberg#85094)
- Global Styles UI: Remove unused preview and wrappers (WordPress/gutenberg#85093)
- Components: Remove case-conversion dependencies (WordPress/gutenberg#85098)
- Components: Remove unused internal helpers (WordPress/gutenberg#85091)
- ESLint: Remove an unused comments-plugin dependency (WordPress/gutenberg#85102)
- Icons: Ship popular icons to `core-admin` collection (WordPress/gutenberg#85072)
- Storybook: add more visual pages for all tokens  (WordPress/gutenberg#84373)
- Warning: Convert the tests to TypeScript (WordPress/gutenberg#85085)
- Text: Simplify the internal highlighter (WordPress/gutenberg#85101)
- Site Editor: Show the inserter for an empty Navigation Menu in the sidebar (WordPress/gutenberg#84003)
- Components: Remove obsolete JavaScript style configuration (WordPress/gutenberg#85038)
- Editor: Stabilize the DataForm-based inspector (WordPress/gutenberg#85081)
- Entity Actions: Fix the taxonomy collision test against core trunk (WordPress/gutenberg#85146)
- Core Actions, Core Fields: Translate the labels with the default text domain (WordPress/gutenberg#85139)
- Global Styles: List elements alongside blocks (WordPress/gutenberg#81645)
- Global Styles: Preview the selected state on element screens (WordPress/gutenberg#83787)
- Block Toolbar: Only show the parent selector plus when no allowed block splits (WordPress/gutenberg#84645)
- Navigation: List only the blocks the sidebar supports in its link search (WordPress/gutenberg#85122)
- Show a countdown to the next autosave after an autosave fails (WordPress/gutenberg#84656)
- LinkControl: Use `@wordpress/ui` Link for preview link (WordPress/gutenberg#84819)
- PR meta: Log fallback bodies verbatim and keep query strings in run links (WordPress/gutenberg#85119)
- Don't promise a browser backup in save failure notices (WordPress/gutenberg#84948)
- Components: Simplify RangeControl, Tabs, and BorderBoxControl styles (WordPress/gutenberg#85086)
- Media Inserter: Dynamically change page size when categories are switched, based on window height (WordPress/gutenberg#85053)
- Block Editor: PR 41: Convert useBlockDropZone to TypeScript (WordPress/gutenberg#84946)
- Block Editor: PR 42: Convert BlockManager, PublishDateTimePicker and the fit text hook to TypeScript (WordPress/gutenberg#84949)
- Move a dragged text selection (WordPress/gutenberg#81603)
- Explain autosave failures with no response, and show the HTTP status (WordPress/gutenberg#85157)
- Block Supports: Share the state text clip helpers with theme.json (WordPress/gutenberg#85057)
- Icons: Mirror the tag icons to match the other angled icons (WordPress/gutenberg#84675)
- Block Editor: Include migration hint in useSetting deprecation warning (WordPress/gutenberg#85100)
- PresetInputControl: Use SelectControl for preset dropdowns (WordPress/gutenberg#84936)
- Table of Contents: Read headings from the post in block context (WordPress/gutenberg#85040)
- Template field: Show the default template instead of the `Select` placeholder (WordPress/gutenberg#85167)
- Components: Add size prop to `RangeControl` (WordPress/gutenberg#69844)
- Use the null coalescing assignment operator in singleton getters (WordPress/gutenberg#85174)
- SearchableSelect: Add trigger slots for props and content (WordPress/gutenberg#84934)
- Blocks: Clarify button background comment and template part error string (WordPress/gutenberg#85176)
- WP Build: Support importing SVG files as inlined data URIs (WordPress/gutenberg#85147)
- Tests: Add Component Tests for DuotonePicker Component (WordPress/gutenberg#69264)
- Custom CSS: Generate styles for blocks rendered by their parent block (WordPress/gutenberg#82590)
- Site Editor: Preload the entity actions of the screen (WordPress/gutenberg#85155)
- Dataviews bulk actions discoverability (WordPress/gutenberg#82730)
- Global Styles: Add pseudo-selector support for text inputs (WordPress/gutenberg#71634)
- Global Styles: Add pseudo-selector support for select elements (WordPress/gutenberg#81644)

Props mamaduka, jorgefilipecosta.
See #66340

git-svn-id: https://develop.svn.wordpress.org/trunk@64599 602fd350-edb4-49c9-b593-d223f7449a82
wporg-sync pushed a commit to WordPress/WordPress that referenced this pull request Oct 20, 2026
This updates the pinned commit hash of the Gutenberg repository from
7b95ee96b54de2e35886971ccf7eb449c324c830 (version 24.2.0) to
be6a50be6834e922b9db12c75c9a2cd817b2db59.

The new hash is the tip of the wp/7.2 branch rather than a release tag. It
covers the 24.3.0 RC1 release plus the changes cherry-picked to the branch
after it was tagged: Gutenberg PRs 85155, 82730, 71634, and 81644.

A full list of changes included in this commit can be found on GitHub:
WordPress/gutenberg@7b95ee9...be6a50b

- Icons: Experiment with proportional stroke scaling (WordPress/gutenberg#84081)
- PaletteEdit: Migrate Emotion styles to SCSS Modules (WordPress/gutenberg#84130)
- Editor: Validate parent container when converting blocks to template parts (WordPress/gutenberg#84155)
- Build: Keep absolute paths out of worker source maps (WordPress/gutenberg#84163)
- Chore: Update simple-git to v4 (WordPress/gutenberg#84137)
- SearchableChipSelect: Preserve selected chips on Escape (WordPress/gutenberg#84172)
- Props Bot: Queue runs instead of cancelling superseded ones (WordPress/gutenberg#84176)
- Custom HTML: Show a floating marker when the block renders nothing (WordPress/gutenberg#84150)
- DateTimePicker: Migrate Emotion wrapper to SCSS Modules (WordPress/gutenberg#84129)
- Bump simple-git and promptfoo in /test/ai-development (WordPress/gutenberg#84104)
- Bump the github-actions group across 1 directory with 4 updates (WordPress/gutenberg#84121)
- UI: Keep popups open for presses inside their iframes (WordPress/gutenberg#83870)
- Tests: Fix HTML comparison tests (WordPress/gutenberg#84294)
- Playlist: Add minimum width and height support (WordPress/gutenberg#83909)
- Navigation Overlay Close: Add minimum width and height support (WordPress/gutenberg#83907)
- Post Template: Add minimum width and height support (WordPress/gutenberg#83911)
- Bump proxy-addr from 2.0.7 to 2.0.8 in /test/ai-development (WordPress/gutenberg#84092)
- A11y: Move `prefersReducedMotion` into the block library's shared utils (WordPress/gutenberg#84297)
- Bump moment from 2.29.4 to 2.31.0 (WordPress/gutenberg#83828)
- Packages: Stop publishing tsconfig files, TypeScript build info and tests (WordPress/gutenberg#84164)
- Tests: Fix list item unsafe markup test on older WordPress versions (WordPress/gutenberg#84302)
- Bump joi from 18.2.5 to 18.2.9 (WordPress/gutenberg#84211)
- Bump ip-address from 10.5.0 to 10.7.3 (WordPress/gutenberg#83734)
- Bump proxy-addr from 2.0.7 to 2.0.8 (WordPress/gutenberg#84212)
- Bump seroval from 1.5.4 to 1.6.8 (WordPress/gutenberg#84151)
- Tab List: Add background image, size, and gradient support (WordPress/gutenberg#83953)
- Pullquote: Add writing mode and text indent support (WordPress/gutenberg#83964)
- CustomSelectControl: Migrate Emotion styles to SCSS Modules (WordPress/gutenberg#84131)
- ColorPicker: Migrate Emotion styles to SCSS Modules (WordPress/gutenberg#84128)
- Build: Guard SCRIPT_DEBUG with defined() in script and style registration (WordPress/gutenberg#83633)
- Notes: Mark the text an unsent note is about with a draft marker (WordPress/gutenberg#84125)
- Quote: Add writing mode support (WordPress/gutenberg#83965)
- Tip: Migrate inserter usages to Notice and deprecate the component (WordPress/gutenberg#84197)
- Query Loop: list taxonomy terms so they can be browsed, not recalled (WordPress/gutenberg#82583)
- Primitives: Refactor to TypeScript (WordPress/gutenberg#84309)
- Release Tooling: Publish wp/X.Y branches with their own npm config (WordPress/gutenberg#84160)
- Packages: Stop publishing Markdown files other than README.md (WordPress/gutenberg#84307)
- Raise the minimum required Node.js to 22 with CJS/ESM interop (WordPress/gutenberg#84313)
- Automated Testing: Fix Storybook manifest errors and validate in CI (WordPress/gutenberg#84198)
- Notes: Select the note under the caret (WordPress/gutenberg#84147)
- Table: Add text align support (WordPress/gutenberg#83966)
- Accordion Heading: Add background gradient support (WordPress/gutenberg#83938)
- Style Book: Fix crash when the Heading block is unregistered (WordPress/gutenberg#84359)
- Icon: Add shadow support (WordPress/gutenberg#83921)
- Playlist: Add background image, size, and gradient support (WordPress/gutenberg#83928)
- Cover: Add minimum width support (WordPress/gutenberg#83975)
- UI: Consolidate shared iframe dismissal tests (WordPress/gutenberg#84296)
- File: Add typography support (WordPress/gutenberg#83969)
- List: Add minimum width and height support (WordPress/gutenberg#83915)
- CI: Run the required trunk changes cron every 4 hours (WordPress/gutenberg#84301)
- Workflow: Refactor to TypeScript (WordPress/gutenberg#84311)
- Remove the lazy-import package (WordPress/gutenberg#84318)
- Terms Query: Add padding, margin, and block gap support (WordPress/gutenberg#83959)
- Notes: Read note markers from the rich-text record, not its HTML (WordPress/gutenberg#84310)
- Paragraph: Add background image, size, and gradient support (WordPress/gutenberg#83934)
- Paragraph: Add minimum width and height support (WordPress/gutenberg#83924)
- Sorting: assume standard sort is stable, try out the new toSorted method (WordPress/gutenberg#52213)
- DataForm: Center the text control's prefix and suffix (WordPress/gutenberg#84314)
- Cover: Add link and button colour support (WordPress/gutenberg#83972)
- Remove redundant checkJs: false from fully TypeScript packages (WordPress/gutenberg#84366)
- Fields: Fix the page title row jumping on hover when a page type badge is shown (WordPress/gutenberg#84368)
- Search: Add background gradient support (WordPress/gutenberg#83954)
- UI: Hook AlertDialog into compat overlay slot (WordPress/gutenberg#83878)
- ESLint: Align UI caution components with Storybook status (WordPress/gutenberg#84319)
- Comments Pagination Next: Add border and padding support (WordPress/gutenberg#64310)
- Comment Pagination Previous: Add Border and Padding Support (WordPress/gutenberg#64308)
- Preferences Persistence: Refactor to TypeScript (WordPress/gutenberg#84312)
- Rich Text: Refactor store and value creation to TypeScript (WordPress/gutenberg#84324)
- NumberControl: Migrate Emotion styles to SCSS Modules (WordPress/gutenberg#84330)
- navigateRegions: Only outline focused Publish and Save regions (WordPress/gutenberg#84343)
- Theme: Consolidate border mode overrides in the token resolver (WordPress/gutenberg#84108)
- DOM: Refactor to TypeScript (WordPress/gutenberg#84317)
- Fields: Lock the status and slug fields for users who can't publish (WordPress/gutenberg#84371)
- Commands: Refactor to TypeScript (WordPress/gutenberg#84315)
- Cache the theme.json data merged from all origins (WordPress/gutenberg#81979)
- Workflow: Address follow-ups from the TypeScript refactor (WordPress/gutenberg#84361)
- Fields API: Take over core's registry singleton like the icons API (WordPress/gutenberg#84168)
- DOM: Fix getOffsetParent infinite loop on a non-element parent (WordPress/gutenberg#84374)
- UI: Support button items in Breadcrumb (WordPress/gutenberg#84156)
- TimePicker: Migrate Emotion styles to SCSS Modules (WordPress/gutenberg#84331)
- Bump actions/setup-node from 6.4.0 to 7.0.0 in /.github/workflows (WordPress/gutenberg#80965)
- InputControl: ignore the drag gesture on touch devices (WordPress/gutenberg#81519)
- Tabs: Migrate Emotion styles to SCSS Modules (WordPress/gutenberg#84332)
- UI: Add Avatar component (WordPress/gutenberg#84145)
- SelectControl: Migrate smaller package consumers to @wordpress/ui (WordPress/gutenberg#84345)
- Editor: Keep the block toolbar row on phones while no block is selected (WordPress/gutenberg#84461)
- Tests: Use strict assertions for post time-to-read word counts (WordPress/gutenberg#84510)
- Tests: Use strict assertions in image block tests (WordPress/gutenberg#84513)
- Tests: Use a strict assertion in Heading block tests (WordPress/gutenberg#84514)
- Tests: Use a strict assertion in Paragraph block tests (WordPress/gutenberg#84515)
- Video: Add minimum width and height support (WordPress/gutenberg#83974)
- Icon: Add minimum width and height support (WordPress/gutenberg#83971)
- Table: Add background gradient support (WordPress/gutenberg#83949)
- Post Navigation Link: Add minimum width and height support (WordPress/gutenberg#83973)
- Tests: Scope Classic block media checkbox locator (WordPress/gutenberg#84524)
- Term Template: Add heading and button colour support (WordPress/gutenberg#83968)
- Tab List: Add line height, font weight, letter spacing, and text transform support (WordPress/gutenberg#83961)
- Navigation Overlay Close: Add margin support (WordPress/gutenberg#83970)
- Global Styles: Ignore theme.json values of unexpected types (WordPress/gutenberg#84523)
- Search: Add shadow support (WordPress/gutenberg#83937)
- Icon: Add background image, size, and gradient support (WordPress/gutenberg#83948)
- Enable style state-specific custom CSS (WordPress/gutenberg#83539)
- Media editor: Add an edits slice to the session (WordPress/gutenberg#83899)
- Bump compression from 1.8.1 to 1.8.2 (WordPress/gutenberg#84304)
- Bump nx from 23.2.0 to 23.3.0 (WordPress/gutenberg#84299)
- Enable Gallery columns to override legacy responsive styles (WordPress/gutenberg#84360)
- Global Styles: Ignore per-origin spacingScale values that are not objects (WordPress/gutenberg#84529)
- Icon block: Show collection name in the "All" tab of the icon library (WordPress/gutenberg#84055)
- Accordion Heading: Anchor inline notes to selected title text (WordPress/gutenberg#84497)
- Upgrade JSDOM to 30.1.2 with likely perf improvements (WordPress/gutenberg#84367)
- Icon block: Speed up rendering of the icon library (WordPress/gutenberg#84327)
- Build: Update Ariakit to 0.4.41 (WordPress/gutenberg#84539)
- ToolsPanel: Put setting names first in accessible action labels (WordPress/gutenberg#84341)
- Build: Update Vite to 8.3.4 (WordPress/gutenberg#84544)
- RichText: remove refs from event listeners contexts (WordPress/gutenberg#84545)
- Block Toolbar: Fix UI menus requiring two clicks to open (WordPress/gutenberg#84547)
- UI: Preserve explicit null portal containers (WordPress/gutenberg#84370)
- DataViews: Enable compatibility for mixed-library overlays (WordPress/gutenberg#84305)
- Theme: Enrich `design-tokens.js` export with more token data (WordPress/gutenberg#76604)
- UI: Add missing popup width stories (WordPress/gutenberg#84320)
- React 19 types: migrate away from MutableRefObject (WordPress/gutenberg#84550)
- Tests: Add unit test coverage for WP_REST_Icon_Collections_Controller (WordPress/gutenberg#83168)
- Button: Use Spinner for loading indicators (WordPress/gutenberg#84321)
- Select, Combobox, Autocomplete: Align popup list spacing (WordPress/gutenberg#84393)
- Block Editor: Remove unused subdirectory icon (WordPress/gutenberg#84575)
- Modal: Add focus fallback for firstContentElement (WordPress/gutenberg#84344)
- SelectControl: Migrate native block-editor consumers to @wordpress/ui (WordPress/gutenberg#84546)
- Menu: Clarify icon, label, and description usage guidelines (WordPress/gutenberg#84020)
- Add iOS e2e test harness + test selecting text across two paragraphs (WordPress/gutenberg#84463)
- Enable editableRoot for the heading block for multi-selection on mobile (WordPress/gutenberg#84358)
- iOS tests: serve WordPress with PHP and start Safari during setup (WordPress/gutenberg#84585)
- Ensure block style variations use correct selector for custom CSS on the front end (WordPress/gutenberg#84530)
- Search: Add border style support (WordPress/gutenberg#83960)
- Video: Don't autoplay on the front end when reduced motion is preferred (WordPress/gutenberg#84308)
- Allow rich text formatting across blocks (WordPress/gutenberg#58913)
- Cover: Don't autoplay an uploaded background video when reduced motion is preferred (WordPress/gutenberg#83853)
- Block breadcrumbs: Use `@wordpress/ui` package component (WordPress/gutenberg#84295)
- Docs: Note reduced-motion handling for autoplaying media (WordPress/gutenberg#84594)
- Media editor: Reset the whole session in one step (WordPress/gutenberg#84591)
- Block Supports: Add background-clip block support UI (WordPress/gutenberg#77142)
- Media & Text: replace deprecated word-break with overflow-wrap: anywhere (WordPress/gutenberg#82580)
- React 19 codemod: apply defaultProps when rendering a memo component (WordPress/gutenberg#84568)
- Style states: Add footer viewport and responsive styles status (WordPress/gutenberg#84146)
- Block Toolbar: Fix the unnamed placeholder button when the default block is unregistered (WordPress/gutenberg#84533)
- DropdownMenu: Keep a disabled toggle closed on ArrowDown (WordPress/gutenberg#84556)
- Navigation: Keep the flex layout on a block inserted into an overlay (WordPress/gutenberg#82232)
- UI: Document Combobox popup accessible names (WordPress/gutenberg#84551)
- Docs: Fix Breadcrumb usage guidelines sidebar structure (WordPress/gutenberg#84564)
- Rich Text: Refactor the remaining modules to TypeScript (WordPress/gutenberg#84365)
- E2E Tests: Open settings sidebar in constrained canvas test (WordPress/gutenberg#84606)
- Term Count: Reuse term data from Term Template (WordPress/gutenberg#84119)
- Rich Text: Convert the hook to TypeScript (WordPress/gutenberg#84378)
- Commands: Fix icon, loader state and recent command follow-ups (WordPress/gutenberg#84377)
- Preferences Persistence: Address TypeScript conversion follow-ups (WordPress/gutenberg#84375)
- React 19: add new incompatible plugins (WordPress/gutenberg#84607)
- Block Toolbar: Keep last item fills out of the placeholder toolbar (WordPress/gutenberg#84554)
- JSDoc: Escape wordpress package names in comments (WordPress/gutenberg#84369)
- rich-text: strip every object replacement character in getTextContent (WordPress/gutenberg#81526)
- Components: Convert the remaining files to TypeScript (WordPress/gutenberg#84611)
- Table Block: Adds link color support (WordPress/gutenberg#72229)
- Experiments: don't invalidate saved option with a legacy key (WordPress/gutenberg#84619)
- Interactivity API: Align directive name validation with WordPress Core (WordPress/gutenberg#81023)
- UI: Use the compatibility overlay slot for Drawer (WordPress/gutenberg#84380)
- Rich Text: Address TypeScript conversion follow-ups (WordPress/gutenberg#84610)
- DataViews: Format footer counts (WordPress/gutenberg#84622)
- Customize Widgets: Keep the block selected when using @wordpress/ui overlays (WordPress/gutenberg#84628)
- Tabs: Restore fit-content width for horizontal tab lists (WordPress/gutenberg#84626)
- Components: Improve accessibility, discoverability of `ColorPicker` inputs (WordPress/gutenberg#70214)
- UI: Use the compatibility overlay slot for Dialog (WordPress/gutenberg#84379)
- Post Taxonomies: Restore shortcuts to create terms (WordPress/gutenberg#84601)
- Snackbar: Restore focus when used outside SnackbarList (WordPress/gutenberg#84342)
- Fix icon display issues in icon block within block manager (WordPress/gutenberg#84107)
- Components: Generate JavaScript design token fallbacks (WordPress/gutenberg#84569)
- Build: Update Base UI to 1.9.0 (WordPress/gutenberg#84542)
- RangeControl: Migrate Emotion styles to SCSS Modules (WordPress/gutenberg#84562)
- Zed: Exclude node_modules from the file scan and turn off Tailwind CSS (WordPress/gutenberg#84604)
- Modal: keep an accessible name when the header is hidden (WordPress/gutenberg#82645)
- Grid: point bottomLeft alignment at the bottom left corner (WordPress/gutenberg#82641)
- UnitControl: Migrate Emotion styles to SCSS Modules (WordPress/gutenberg#84561)
- Switched to the official gradient-parser types (WordPress/gutenberg#84582)
- Navigator: Migrate Emotion styles to SCSS Modules (WordPress/gutenberg#84565)
- PaletteEdit: Name picker dialogs and add screen reader dismissal (WordPress/gutenberg#84333)
- Dialog: Add an `auto` popup size that fits content width (WordPress/gutenberg#84559)
- Add e2e tests for the autosave failure notice (WordPress/gutenberg#84644)
- iOS tests: launch Safari before opening the setup page (WordPress/gutenberg#84640)
- Media Inserter: Redesign using DataViews grid for displaying media items (WordPress/gutenberg#82749)
- Remove compat function for unsupported unprefixed style states (WordPress/gutenberg#84531)
- Global Styles: Remove the custom styles dot from the block list (WordPress/gutenberg#84657)
- InserterDraggableBlocks: Add JSDoc types, and tidy up media-tab inserter files (WordPress/gutenberg#84655)
- Storybook: Sort unlisted sidebar folders alphabetically (WordPress/gutenberg#84563)
- Tabs: Fix filled link icon in Storybook (WordPress/gutenberg#84618)
- ESLint: Require WCSpinner alias for legacy Spinner imports (WordPress/gutenberg#84390)
- Navigation: Fix error when inserting block via Browse all in list view (WordPress/gutenberg#84665)
- Patterns: Let users load synced patterns they can't edit, without "Edit original" (WordPress/gutenberg#84641)
- Notes: Focus the new note form once it's positioned (WordPress/gutenberg#84639)
- Block Editor: Keep multiline paste inside empty Preformatted and Poetry blocks (WordPress/gutenberg#83552)
- Popover: Use design-system tokens on the default surface. (WordPress/gutenberg#84574)
- Font Library: Load all installed font families (WordPress/gutenberg#84684)
- Patterns: Let users detach synced patterns they can't edit (WordPress/gutenberg#84681)
- Rename "fields" to "entity fields" (WordPress/gutenberg#84691)
- Font Library: Mark installed font variants in font collections (WordPress/gutenberg#84023)
- Automated Testing: Add AI review guidance for lint suppressions (WordPress/gutenberg#84638)
- SearchableSelectControl: Fix search icon orientation (WordPress/gutenberg#84690)
- PR meta: Add a Playground preview link (WordPress/gutenberg#84687)
- Block Editor: PR 1: Add every source file to the TypeScript build project (WordPress/gutenberg#84615)
- Build: Update pr-baseline-action to v0.3.0 (WordPress/gutenberg#84692)
- Gallery: Improve mobile lightbox with animated swiping (WordPress/gutenberg#79114)
- Tabs: Align interaction backgrounds and focus states (WordPress/gutenberg#84572)
- Block Editor: PR 5: Convert the remaining utils and the state style helpers to TypeScript (WordPress/gutenberg#84629)
- Remove some stale overrides (WordPress/gutenberg#84674)
- Actions API: Register the entity actions on the server (WordPress/gutenberg#84650)
- Compose: Convert the remaining files to TypeScript (WordPress/gutenberg#84382)
- Navigation Link: Check page create permission only when needed (WordPress/gutenberg#84663)
- Dialog: Check story and test sizes against popup prop types (WordPress/gutenberg#84705)
- Block Editor: PR 2: Convert the small store modules to TypeScript (WordPress/gutenberg#84616)
- Block Editor: PR 3: Convert the store reducer to TypeScript (WordPress/gutenberg#84624)
- Block Editor: PR 6: Convert the store selectors to TypeScript (WordPress/gutenberg#84631)
- Block Editor: PR 7: Convert the store private selectors to TypeScript (WordPress/gutenberg#84662)
- Block Editor: PR 8: Convert the store actions to TypeScript (WordPress/gutenberg#84672)
- Menu: Migrate Emotion styles to SCSS Modules (WordPress/gutenberg#84706)
- Blocks: Accept a feature path array in getBlockSupport and hasBlockSupport (WordPress/gutenberg#84708)
- Block Editor: PR 4: Convert the shared component modules to TypeScript (WordPress/gutenberg#84625)
- Blocks: Type the background clip, gradient, position and repeat supports (WordPress/gutenberg#84709)
- Block Editor: PR 9: Convert the store defaults, getBlockSettings and index to TypeScript (WordPress/gutenberg#84677)
- Link: Add a small radius for consistent focus rings (WordPress/gutenberg#84697)
- Remove the autosave failure notice once a later save succeeds (WordPress/gutenberg#84649)
- CI: Expire large workflow artifacts sooner (WordPress/gutenberg#84525)
- Changes to custom CSS from core review (WordPress/gutenberg#84757)
- Rename inspector and toolbar style-states slots for consistency (WordPress/gutenberg#84598)
- Patterns: List synced patterns the user can read but not edit in the inserter (WordPress/gutenberg#84661)
- PR meta: Write sections on stacked pull requests (WordPress/gutenberg#84703)
- Media Inserter: visually clear the grid and use a loading state spinner when switching categories (WordPress/gutenberg#84667)
- ESLint: Make jsdoc/escape-inline-tags an error (WordPress/gutenberg#84701)
- Block Editor: Type isValueSpacingPreset as returning a boolean (WordPress/gutenberg#84730)
- Cover: Decode the oEmbed iframe source before parsing its query string (WordPress/gutenberg#83770)
- Block Editor: Preserve rich text selection on Shift+click within the same block (WordPress/gutenberg#84579)
- Build: Remove Emotion compiler tooling (WordPress/gutenberg#84707)
- Pattern block: Load the view record, and the edit record only once it's loaded (WordPress/gutenberg#84799)
- PostURL: Remove double focus ring outline (WordPress/gutenberg#84694)
- LinkControl: Use design system focus ring for link preview (WordPress/gutenberg#84695)
- Notice: Match dismiss controls and titles to status colors (WordPress/gutenberg#84571)
- BaseControl: Remove unsupported `as` prop from types and docs (WordPress/gutenberg#70064)
- Avatar: Add shared initials and improve fallbacks (WordPress/gutenberg#84653)
- Search: Add minimum width and height support (WordPress/gutenberg#83977)
- Revisions: Meet AA contrast for the inline del diff without an opacity filter (WordPress/gutenberg#82258)
- CustomGradientPicker: Keep the color interpolation method when editing a gradient (WordPress/gutenberg#84383)
- Post Navigation Link: Add background image, size, and gradient support (WordPress/gutenberg#83940)
- Notes: Drop misleading aria-haspopup from Add note menu item (WordPress/gutenberg#84818)
- RichText: Derive active formats at the caret for input and paste (WordPress/gutenberg#84303)
- Editor: Fix long author name overflowing the Post sidebar panel (WordPress/gutenberg#84165)
- Interactivity API: Fix late `data-wp-html` values, throwing functions and directive conflicts (WordPress/gutenberg#84652)
- FontAppearanceControl: Migrate to @wordpress/ui (WordPress/gutenberg#84716)
- Kebab Case: Convert the tests to TypeScript (WordPress/gutenberg#84825)
- Date: Convert the tests to TypeScript (WordPress/gutenberg#84830)
- Block Editor: PR 10: Convert the hook utils, block style state and Global Styles hooks to TypeScript (WordPress/gutenberg#84720)
- Block Editor: PR 11: Convert the block support helpers to TypeScript (WordPress/gutenberg#84721)
- Block Editor: PR 12: Convert the layout helpers and block gap utils to TypeScript (WordPress/gutenberg#84722)
- Block Editor: PR 13: Convert the block attribute filter hooks to TypeScript (WordPress/gutenberg#84723)
- SelectControl: Migrate date format and preset input consumers to @wordpress/ui (WordPress/gutenberg#84584)
- Changelog validation: Reject blank lines between Unreleased entries (WordPress/gutenberg#84804)
- DataViews: Convert the filterSortAndPaginate tests to TypeScript (WordPress/gutenberg#84836)
- ESLint: Allow design token references in component JavaScript (WordPress/gutenberg#84827)
- babel-preset-default: Add polyfill list to generated bundle (WordPress/gutenberg#84835)
- Tests: Use a strict assertion in block template tests (WordPress/gutenberg#84683)
- Tests: Use a strict assertion in PHPUnit environment setup tests (WordPress/gutenberg#84686)
- Core Data: Keep read-only taxonomy fields out of collaborative edits (WordPress/gutenberg#84838)
- Select: Preserve scrolling when item alignment falls back (WordPress/gutenberg#84682)
- Search: Don't clip the button focus outline when the field is collapsed (WordPress/gutenberg#84685)
- List View: Show appender in contentOnly locked sections (WordPress/gutenberg#84713)
- Raise the PHP request time limit for the iOS tests (WordPress/gutenberg#84741)
- Env: Use the matching wordpress-develop branch for pre-release PHPUnit tests (WordPress/gutenberg#84758)
- Editor: Keep a preview canvas from adopting the entity's selection (WordPress/gutenberg#84832)
- Core fields: Register the default fields of WordPress on the server (WordPress/gutenberg#84696)
- Editor: Read the entity fields from the server (WordPress/gutenberg#84700)
- iOS tests: run the editor in a web view instead of Safari (WordPress/gutenberg#84859)
- BorderBoxControl: Unpack multi-value shorthand width when unlinking border sides (WordPress/gutenberg#84826)
- Actions API: Extract the core actions into the `@wordpress/core-actions` script modules (WordPress/gutenberg#84643)
- Global Styles: Remove preset items of unexpected types to avoid fatals (WordPress/gutenberg#84534)
- Media: Skip auto-attach on save when attachment pages are enabled (WordPress/gutenberg#84851)
- Block Editor: PR 14: Convert InspectorControls to TypeScript (WordPress/gutenberg#84725)
- Block Editor: PR 15: Convert the anchor and custom class name hooks to TypeScript (WordPress/gutenberg#84726)
- Block Editor: PR 16: Convert the auto-generated inspector controls to TypeScript (WordPress/gutenberg#84727)
- Block Editor: PR 17: Convert the zoom out and content only section hooks to TypeScript (WordPress/gutenberg#84731)
- Block Editor: PR 18: Convert BlockControls to TypeScript (WordPress/gutenberg#84733)
- Block Editor: PR 19: Convert the flow layout to TypeScript (WordPress/gutenberg#84734)
- Block Editor: PR 20: Convert BlockPopover, the color and gradient controls, BlockTitle, useBlockDisplayInformation and MediaUpload to TypeScript (WordPress/gutenberg#84813)
- Media Inserter: Add a FilePreview component for rendering audio or other non image/video files (WordPress/gutenberg#84882)
- Data Controls: Convert the tests to TypeScript (WordPress/gutenberg#84852)
- Undo Manager: Convert the tests to TypeScript (WordPress/gutenberg#84895)
- Build: Fix `npm run dev` failing on the patterns tsconfig comment (WordPress/gutenberg#84898)
- Snackbar: Keep snackbars with an action on screen longer (WordPress/gutenberg#84842)
- DatePicker: Migrate Emotion styles to SCSS Modules (WordPress/gutenberg#84724)
- Fields: Remove the fields that moved to @wordpress/core-fields (WordPress/gutenberg#84897)
- FocalPointPicker: Migrate Emotion styles to SCSS Modules (WordPress/gutenberg#84736)
- Notes: Remove divider between canvas and floating notes (WordPress/gutenberg#84850)
- SelectControl: Migrate Emotion styles to SCSS Modules (WordPress/gutenberg#84732)
- Core Actions: Register the core actions on the server (WordPress/gutenberg#84660)
- InputControl: Migrate Emotion styles to SCSS Modules (WordPress/gutenberg#84728)
- Tabs: Show design system focus ring on tab panels (WordPress/gutenberg#84914)
- PostURL: Use `@wordpress/ui` Link for post URL link (WordPress/gutenberg#84820)
- URL: Convert the tests to TypeScript (WordPress/gutenberg#84916)
- Framework: Improve AGENTS.md guidance around running package scripts (WordPress/gutenberg#84195)
- Components: Remove Emotion from the context system (WordPress/gutenberg#84925)
- Interactivity API: Keep server-rendered data-wp-html content for the server's token representation (WordPress/gutenberg#84889)
- Badge: Clarify that badges should not be interactive (WordPress/gutenberg#84920)
- SelectControl: Add a trigger slot for props and content (WordPress/gutenberg#84828)
- ESLint: Require TypeScript for new files (WordPress/gutenberg#84829)
- Private APIs: Convert the tests to TypeScript (WordPress/gutenberg#84901)
- Navigation: Edit links in a popover from the sidebar List View (WordPress/gutenberg#84005)
- Block Editor: PR 21: Convert LinkControl and URLInput to TypeScript (WordPress/gutenberg#84844)
- Block Editor: PR 22: Convert Warning, BlockEdit and PrivateBlockContext to TypeScript (WordPress/gutenberg#84846)
- Block Editor: PR 23: Convert the layouts and the alignment controls to TypeScript (WordPress/gutenberg#84847)
- Link: Keep the new-tab indicator with the link text (WordPress/gutenberg#84806)
- Interactivity API: Optimize toVdom walk() (WordPress/gutenberg#81699)
- Bump the github-actions group across 2 directories with 7 updates (WordPress/gutenberg#84937)
- Components: Remove unused Emotion styling utilities (WordPress/gutenberg#84929)
- List View: Allow nesting with top level items (WordPress/gutenberg#84856)
- Login/out: Mark the block as content (WordPress/gutenberg#84849)
- Block Editor: PR 24: Convert the typography controls to TypeScript (WordPress/gutenberg#84848)
- Block Editor: PR 25: Convert the color utilities and controls to TypeScript (WordPress/gutenberg#84875)
- Block Editor: PR 26: Convert the block visibility, lock and bindings components to TypeScript (WordPress/gutenberg#84876)
- Block Editor: PR 27: Convert the image dimension tools to TypeScript (WordPress/gutenberg#84877)
- Block Editor: PR 28: Convert PresetInputControl to TypeScript (WordPress/gutenberg#84878)
- Block Editor: PR 29: Convert URLPopover and LinkPicker to TypeScript (WordPress/gutenberg#84879)
- Block Editor: PR 30: Convert BorderRadiusControl and DimensionControl to TypeScript (WordPress/gutenberg#84880)
- Block Editor: PR 31: Convert the keyboard shortcuts, ObserveTyping and Typewriter to TypeScript (WordPress/gutenberg#84902)
- Block Editor: PR 32: Convert the block drop, paste styles and block command hooks to TypeScript (WordPress/gutenberg#84906)
- Block Editor: PR 33: Convert SpacingSizesControl, the line height hook and the spacing visualizer to TypeScript (WordPress/gutenberg#84907)
- Block Editor: PR 34: Convert the contrast checker, block bindings, block style variation and position hooks to TypeScript (WordPress/gutenberg#84908)
- Block Editor: PR 35: Convert the alignment, heading level, HTML element, unit and height controls to TypeScript (WordPress/gutenberg#84912)
- Block Editor: PR 36: Convert the inserter listbox, BlockCard, block variation and inspector leaves to TypeScript (WordPress/gutenberg#84913)
- Block Editor: PR 37: Convert BlockEditorProvider and useBlockSync to TypeScript (WordPress/gutenberg#84915)
- Block Editor: PR 38: Convert WritingFlow to TypeScript (WordPress/gutenberg#84918)
- Block Editor: PR 39: Convert Iframe, EditorStyles, NavigableToolbar, CopyHandler and BlockBreadcrumb to TypeScript (WordPress/gutenberg#84922)
- Block Editor: PR 40: Convert MediaPlaceholder and ImageEditor to TypeScript (WordPress/gutenberg#84923)
- Show the browser backup's date and compare it before restoring (WordPress/gutenberg#84735)
- Generate animated image sub-sizes for animated uploads (WordPress/gutenberg#80385)
- Avatar: Add an optional color ring (WordPress/gutenberg#84822)
- Tests: Use a strict assertion in background block support tests (WordPress/gutenberg#84883)
- Tests: Use strict assertions in layout block support tests (WordPress/gutenberg#84884)
- Tests: Use a strict assertion in typography block support tests (WordPress/gutenberg#84885)
- Tests: Use strict assertions in REST icons controller tests (WordPress/gutenberg#84886)
- Tests: Use strict assertions in hierarchical sort tests (WordPress/gutenberg#84887)
- Tests: Use strict assertions in navigation link variations tests (WordPress/gutenberg#84888)
- Components: Replace remaining Emotion test and story fixtures (WordPress/gutenberg#84926)
- Connectors: preload REST API responses on the Connectors screen (WordPress/gutenberg#77353)
- Add emoji reactions to notes! ❤️ 🎉 😄 👀 🚀 (WordPress/gutenberg#76767)
- Editor: add copy option for save failures & a "show/hide details" button (WordPress/gutenberg#82496)
- Upload Media: Convert the private actions tests to TypeScript (WordPress/gutenberg#84930)
- Format Library: Convert the tests to TypeScript (WordPress/gutenberg#85032)
- StyleProvider: Remove the Emotion cache (WordPress/gutenberg#85019)
- Scripts: Run e2e tests against the configured wp-env test environment (WordPress/gutenberg#84654)
- Notes: Skip the reaction summary pre-fetch when core already does it (WordPress/gutenberg#85047)
- Navigation Link: Apply "Open in new tab" from the link popover (WordPress/gutenberg#83506)
- Media auto-attach: For published posts, only attach newly added image ids (WordPress/gutenberg#84890)
- Drag a multi-selection by pressing anywhere inside it (WordPress/gutenberg#81602)
- Mark non-breaking spaces with a red dot and add a button to replace them (WordPress/gutenberg#84737)
- Duotone: Sync unsupported attribute type guard from Core (WordPress/gutenberg#84801)
- Post Title: Add fit text support. (WordPress/gutenberg#83036)
- Ensure "hide block tools" text isn't wider than button background. (WordPress/gutenberg#85051)
- Editor restoreRevisions: if there are unsaved changes, save these as a revision before restoring a revision (WordPress/gutenberg#84590)
- Allow block toolbar to wrap when text labels are enabled (WordPress/gutenberg#84802)
- Post slug: Derive the slug preview from the current title instead of `generated_slug` (WordPress/gutenberg#84893)
- DataViews and Storybook: Remove unused Emotion dependencies (WordPress/gutenberg#85021)
- Components: Update guidance after the Emotion migration (WordPress/gutenberg#85020)
- URL: Make `cleanForSlug` match WordPress core's `sanitize_title()` (WordPress/gutenberg#84896)
- Notes: Make the "Add note" toolbar button add-only and drop the avatars (WordPress/gutenberg#84635)
- Components: Finish Emotion dependency and test cleanup (WordPress/gutenberg#85022)
- feat: Add dry-run optional param in cherry-pick script (WordPress/gutenberg#78878)
- Build: Update Terrazzo token tools to 2.9.0 (WordPress/gutenberg#85067)
- Tabs: Expand vertical interaction backgrounds and focus rings (WordPress/gutenberg#84821)
- Build: Update Testing Library user-event to 14.6.8 (WordPress/gutenberg#85068)
- Components: Retire completed Emotion migration guidance (WordPress/gutenberg#85023)
- Use `Select` for remaining `SelectControl` `variant="minimal"` call sites (WordPress/gutenberg#83035)
- Patterns: Rename the inserter's "My patterns" to "Site patterns" and add an author filter (WordPress/gutenberg#84680)
- Storybook: present motion tokens as an MDX docs page (WordPress/gutenberg#85080)
- Avatar: Add colored fallbacks with foreground tinting (WordPress/gutenberg#84824)
- FontFamilyControl: Migrate to @wordpress/ui (WordPress/gutenberg#84715)
- Project management automation: Move to tools as an internal action (WordPress/gutenberg#85087)
- Build: Update Ariakit to 0.4.42 (WordPress/gutenberg#85066)
- Block editor: Remove unused internal helpers (WordPress/gutenberg#85092)
- Stylelint: Consolidate Lint rules for simplification  (WordPress/gutenberg#71235)
- Tools: Migrate project-management-automation to TS (WordPress/gutenberg#71193)
- Notes: Improve how anchor highlight and connect to content (WordPress/gutenberg#80578)
- Upload media: Remove unused filename helpers (WordPress/gutenberg#85094)
- Global Styles UI: Remove unused preview and wrappers (WordPress/gutenberg#85093)
- Components: Remove case-conversion dependencies (WordPress/gutenberg#85098)
- Components: Remove unused internal helpers (WordPress/gutenberg#85091)
- ESLint: Remove an unused comments-plugin dependency (WordPress/gutenberg#85102)
- Icons: Ship popular icons to `core-admin` collection (WordPress/gutenberg#85072)
- Storybook: add more visual pages for all tokens  (WordPress/gutenberg#84373)
- Warning: Convert the tests to TypeScript (WordPress/gutenberg#85085)
- Text: Simplify the internal highlighter (WordPress/gutenberg#85101)
- Site Editor: Show the inserter for an empty Navigation Menu in the sidebar (WordPress/gutenberg#84003)
- Components: Remove obsolete JavaScript style configuration (WordPress/gutenberg#85038)
- Editor: Stabilize the DataForm-based inspector (WordPress/gutenberg#85081)
- Entity Actions: Fix the taxonomy collision test against core trunk (WordPress/gutenberg#85146)
- Core Actions, Core Fields: Translate the labels with the default text domain (WordPress/gutenberg#85139)
- Global Styles: List elements alongside blocks (WordPress/gutenberg#81645)
- Global Styles: Preview the selected state on element screens (WordPress/gutenberg#83787)
- Block Toolbar: Only show the parent selector plus when no allowed block splits (WordPress/gutenberg#84645)
- Navigation: List only the blocks the sidebar supports in its link search (WordPress/gutenberg#85122)
- Show a countdown to the next autosave after an autosave fails (WordPress/gutenberg#84656)
- LinkControl: Use `@wordpress/ui` Link for preview link (WordPress/gutenberg#84819)
- PR meta: Log fallback bodies verbatim and keep query strings in run links (WordPress/gutenberg#85119)
- Don't promise a browser backup in save failure notices (WordPress/gutenberg#84948)
- Components: Simplify RangeControl, Tabs, and BorderBoxControl styles (WordPress/gutenberg#85086)
- Media Inserter: Dynamically change page size when categories are switched, based on window height (WordPress/gutenberg#85053)
- Block Editor: PR 41: Convert useBlockDropZone to TypeScript (WordPress/gutenberg#84946)
- Block Editor: PR 42: Convert BlockManager, PublishDateTimePicker and the fit text hook to TypeScript (WordPress/gutenberg#84949)
- Move a dragged text selection (WordPress/gutenberg#81603)
- Explain autosave failures with no response, and show the HTTP status (WordPress/gutenberg#85157)
- Block Supports: Share the state text clip helpers with theme.json (WordPress/gutenberg#85057)
- Icons: Mirror the tag icons to match the other angled icons (WordPress/gutenberg#84675)
- Block Editor: Include migration hint in useSetting deprecation warning (WordPress/gutenberg#85100)
- PresetInputControl: Use SelectControl for preset dropdowns (WordPress/gutenberg#84936)
- Table of Contents: Read headings from the post in block context (WordPress/gutenberg#85040)
- Template field: Show the default template instead of the `Select` placeholder (WordPress/gutenberg#85167)
- Components: Add size prop to `RangeControl` (WordPress/gutenberg#69844)
- Use the null coalescing assignment operator in singleton getters (WordPress/gutenberg#85174)
- SearchableSelect: Add trigger slots for props and content (WordPress/gutenberg#84934)
- Blocks: Clarify button background comment and template part error string (WordPress/gutenberg#85176)
- WP Build: Support importing SVG files as inlined data URIs (WordPress/gutenberg#85147)
- Tests: Add Component Tests for DuotonePicker Component (WordPress/gutenberg#69264)
- Custom CSS: Generate styles for blocks rendered by their parent block (WordPress/gutenberg#82590)
- Site Editor: Preload the entity actions of the screen (WordPress/gutenberg#85155)
- Dataviews bulk actions discoverability (WordPress/gutenberg#82730)
- Global Styles: Add pseudo-selector support for text inputs (WordPress/gutenberg#71634)
- Global Styles: Add pseudo-selector support for select elements (WordPress/gutenberg#81644)

Props mamaduka, jorgefilipecosta.
See #66340
Built from https://develop.svn.wordpress.org/trunk@64599


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

Labels

[Package] Block editor /packages/block-editor [Package] Block library /packages/block-library [Package] Blocks /packages/blocks [Package] Editor /packages/editor [Package] Views /packages/views [Tool] Babel plugin makepot /packages/babel-plugin-makepot [Type] Code Quality Issues or PRs that relate to code quality

Projects

None yet

Development

Successfully merging this pull request may close these issues.

6 participants