Repository navigation
Media: Detect HEIC uploads from the file header rather than the file name - #81737
Conversation
…sion A HEIC photo whose name says .jpg is announced to the editor as a JPEG, so it never reaches the HEIC conversion: the upload sits at 'Uploading' without ever completing or failing in Chromium, and is quietly handed to the server-side path in Safari. Covers both halves with the same photo under two names - Chromium, which ships no HEVC codec, has to report the decode failure, and WebKit, which decodes HEIC through the OS, has to convert it exactly as it does the correctly named file.
…name A browser derives File.type from the file extension alone, and both upload routing decisions went by that type. A HEIC photo saved as .jpg therefore took the vips path, which cannot decode HEIC, in full client-side mode, and the server-side path, which cannot convert it either, in HEIC-only mode. Read the ISOBMFF File Type Box instead, through a new isHeicFile export, so a misnamed HEIC converts like any other. The file is re-labelled once detected, since the WebCodecs decoder is configured from File.type and the untouched original is sideloaded under its own name. Fixes #81707.
|
The following accounts have interacted with this PR and/or linked issues. I will continue to update these lists as activity occurs. You can also manually ask me to refresh this list by adding the If you're merging code through a pull request on GitHub, copy and paste the following into the bottom of the merge commit message. To understand the WordPress project's expectations around crediting contributors, please review the Contributor Attribution page in the Core Handbook. |
…-extension # Conflicts: # packages/block-editor/CHANGELOG.md
|
Size Change: +261 B (0%) Total Size: 7.91 MB 📦 View Changed
|
|
Flaky tests detected in 7d3b7a6. 🔍 Workflow run URL: https://github.com/WordPress/gutenberg/actions/runs/33113926971 refuses the drop and uploads nothing in
|
WebKit on Linux CI crashes the page rather than failing to decode HEIC, so the two WebKit tests failed there while passing on macOS, where the OS supplies the codec. Cover the HEIC-only routing in Chromium instead, with cross-origin isolation disabled so the editor falls into that mode. The file only has to reach the HEIC conversion for the test to mean something, and in Chromium reaching it always ends at the same decode error - no successful decode, and so no platform codec, required. Drop the .heic asset along with the WebKit tests that used it.
…-extension # Conflicts: # packages/block-editor/src/components/provider/index.jsx
…-extension # Conflicts: # packages/upload-media/CHANGELOG.md # packages/upload-media/src/store/test/actions.ts
🤖 PR meta 🤖📦 Bundle sizeSize Change: +321 B (0%) Total Size: 8.21 MB 📦 View Changed
⚡ PerformanceShow the resultsClient side metrics exclude the server response time. front-end-block-theme
front-end-classic-theme
media-processing
media-upload
post-editor
site-editor
🏁 Flaky testsShow the failuresSome 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
|
Vitest runs with `globals: false`, so `describe`, `it` and `expect` have to be imported rather than picked up from the environment as they were under Jest. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01RtZdDWdC33cNHfY4U238A5
These files run under Vitest, where `jest` is not defined. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01RtZdDWdC33cNHfY4U238A5
Trunk now reserves `HEIC_DECODE_ERROR` for the case where no decoding strategy is available at all, and reports a file that fails the container parse as a processing error instead (#81123). The fixture here is a bare File Type Box with no meta box, so it takes the latter path. The test's claim - that a HEIC named .jpg is routed to the HEIC path and reports the failure rather than uploading - is unchanged. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01RtZdDWdC33cNHfY4U238A5
`ImageDecoder.isTypeSupported()` can report HEIC support from the container format alone. When the platform codec is missing, `decode()` then never settles, and the upload hangs with no error. Race the decode against a timeout that closes the decoder, which rejects the pending call, and catch the rejection so the conversion falls through to the next strategy instead of stalling the upload. Folded in from #81211. Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_016wRcDnK65wbQKCjKoie65o
A decode that rejects on its own has read the file and found it damaged, and #81123 reports that as a processing error. Catching every rejection sent those to strategy 3 and blamed the codec instead, which also failed the existing test for it. Keep the catch to the timeout, move the canvas work out from under it, and raise the ceiling: it cuts off every decode, not only a stalled one, so a large photo on slow hardware needs room to finish. Cover the stalled decode and the canvas failure, and route a HEIC file the browser reports with no type at all through the conversion path, which is the #81043 case on Windows without the HEVC extension. Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_016wRcDnK65wbQKCjKoie65o
|
Following up on the question from @t-hamano over on #81211 about which PR to review: this one now covers both issues, so this is the one to review. I had Claude compare the two branches and fold them together, here is the summary:
@369work @pbiron whenever you have a chance, could you try the build from this PR on your Windows setups the same way you tested #81211? A drop onto an Image block is the path to check. |
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_016wRcDnK65wbQKCjKoie65o
|
== Test Report Patch tested: #81737 === Environment
Store extensions visible in the installed apps list:
HEIF Image Extensions did not appear in that list, but the Photos app opens HEIC files normally, so === Steps taken
Logged in the console as the file was dropped: Also checked in the console:
x. ✅ Patch is solving the problem === Expected result As I understand it, this patch identifies a HEIC file from its own header even when That is what happened:
=== Additional Notes 1. The empty The description says an empty The outcome matched the instructions: with the codecs present, the file converted. 2. The 15 second timeout did not come into play here. The browser reported that it cannot decode HEIC through the ImageDecoder API, so that step was skipped 3. Timing. It took somewhere between 30 seconds and a minute from the drop to the image appearing in the editor. Mentioning it only in case the overall duration is useful alongside the timeout discussion. === Screenshots/Screencast with results
=== Support Content The file used for this test is a photo straight off an iPhone, 1,316,390 bytes, with these brands in
|
t-hamano
left a comment
There was a problem hiding this comment.
Thanks for the PR! Everything works pretty well im my environment. I left a few suggestions, but they are insignificant.
| - Retain focus and caret position when undoing a prefix transform (e.g. `## `, `- `, `> `) with Backspace or Escape ([#82116](https://github.com/WordPress/gutenberg/pull/82116)). | ||
| - Hide the Layout panel when a block has layout editing enabled but all controls for its layout type are disabled ([#81968](https://github.com/WordPress/gutenberg/pull/81968)). | ||
| - `DuotoneControl`: Keep the picked preset's identity when applying a duotone to a block. Two presets can hold the same pair of colors, and the applied preset was resolved by matching colors, so the first of any duplicate pair was saved and both appeared selected ([#81605](https://github.com/WordPress/gutenberg/pull/81605)). | ||
| - In HEIC-only upload mode, route files to the HEIC conversion by what they contain rather than by the MIME type the browser infers from their name, so a HEIC photo saved as `.jpg` or `.png` is no longer handed to a server-side path that cannot convert it either ([#81707](https://github.com/WordPress/gutenberg/issues/81707)). |
There was a problem hiding this comment.
| - In HEIC-only upload mode, route files to the HEIC conversion by what they contain rather than by the MIME type the browser infers from their name, so a HEIC photo saved as `.jpg` or `.png` is no longer handed to a server-side path that cannot convert it either ([#81707](https://github.com/WordPress/gutenberg/issues/81707)). | |
| - In HEIC-only upload mode, route files to the HEIC conversion by what they contain rather than by the MIME type the browser infers from their name, so a HEIC photo saved as `.jpg` or `.png` is no longer handed to a server-side path that cannot convert it either ([#81737](https://github.com/WordPress/gutenberg/pull/81737)). |
It would be better to link the changelog to the PR rather than the issue, as it makes it clearer what changes were actually made. Additionally, this entry needs to be moved to the Unreleased section.
There was a problem hiding this comment.
Ah right, I see that in the guidelines now. Will update.
There was a problem hiding this comment.
Done, with one small deviation from the suggestion.
Claude made the changelog edits, its summary:
Fixed in 5b1a83ccab7: both entries now link the PR and sit under Unreleased. The new
isHeicFileexport is a new public API, which the changelog guide files under New Features, so it got its own entry there and the Bug Fixes entry keeps the rest.
| // The major brand, then every compatible brand after the minor version. | ||
| const brands = [ readBrand( 8 ) ]; | ||
| for ( let offset = 16; offset + 4 <= view.length; offset += 4 ) { | ||
| brands.push( readBrand( offset ) ); | ||
| } |
There was a problem hiding this comment.
| // The major brand, then every compatible brand after the minor version. | |
| const brands = [ readBrand( 8 ) ]; | |
| for ( let offset = 16; offset + 4 <= view.length; offset += 4 ) { | |
| brands.push( readBrand( offset ) ); | |
| } | |
| // Anything past the box size belongs to the next box, not to the brands. | |
| const boxEnd = Math.min( | |
| view.length, | |
| new DataView( view.buffer, view.byteOffset ).getUint32( 0 ) | |
| ); | |
| // The major brand, then every compatible brand after the minor version. | |
| const brands = [ readBrand( 8 ) ]; | |
| for ( let offset = 16; offset + 4 <= boxEnd; offset += 4 ) { | |
| brands.push( readBrand( offset ) ); | |
| } |
I'm not very familiar with this internal process, but Claude suggested this. Does this seem reasonable?
There was a problem hiding this comment.
Yes, that's a real fix - the 64-byte read can run past a short box into the next one. Landed it with a test.
Claude checked the suggestion and wrote the test, its notes:
In 6143369a4f1, with a unit test that puts an
avifword in the box afterftypand checks the file still reads as HEIC; it fails on the old scan and passes now. A box size of 0 or 1 (the extended-size forms, which a File Type Box never uses) collapses the compatible-brand scan, but the major brand is still checked, so those degenerate cases stay safe.
|
Hey 👋 I wanted to give you a heads-up since this pull request is affected by recent validation changes for changelog files. #83043 adds additional validation for changelog files. You'll note that this pull request is currently failing a "Required changes from trunk" check. What you'll need to do: You will need to either rebase or merge the latest code from |
Co-authored-by: Aki Hamano <54422211+t-hamano@users.noreply.github.com>
Co-authored-by: Aki Hamano <54422211+t-hamano@users.noreply.github.com>
Co-authored-by: Aki Hamano <54422211+t-hamano@users.noreply.github.com>
…Unreleased The block-editor entry sat in a released section and both entries linked the issue rather than the PR. The new isHeicFile export is a new public API, which the changelog guide files under New Features. Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01VCEHrF9CTU4qb12bHG1z55
The 64-byte read overshoots a short box into the next one, whose item types are also four ASCII characters, so a word there could pass for a brand. Bound the compatible-brand scan by the box's own size. Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01VCEHrF9CTU4qb12bHG1z55
…name (WordPress#81737) Co-authored-by: adamsilverstein <adamsilverstein@git.wordpress.org> Co-authored-by: singhakanshu00 <akanshusingh@git.wordpress.org> Co-authored-by: t-hamano <wildworks@git.wordpress.org> Co-authored-by: 369work <369work@git.wordpress.org> Co-authored-by: aduth <aduth@git.wordpress.org> Co-authored-by: pbiron <pbiron@git.wordpress.org> Co-authored-by: aaronjorbin <jorbin@git.wordpress.org>
This updates the pinned commit hash of the Gutenberg repository from `5715a61334c4d29f21b67cf34b46061dc1b62502` to `954fe7f9e04631c41aec4552acd627a7203a2aad` (version 24.1.0). A full list of changes included in this commit can be found on GitHub: https://github.com/WordPress/gutenberg/compare/50ad79ef7ebc5f1d2a75def068887e33a15f2634...954fe7f9e04631c41aec4552acd627a7203a2aad. - Tabs: remove core's duplicate render_block_context filter (https://github.com/WordPress/gutenberg/pull/82610) - Automated Testing: Fix unit test compatibility with Node.js v26 (https://github.com/WordPress/gutenberg/pull/82618) - Test: Drop the jest-dom Vitest entry point from test files (https://github.com/WordPress/gutenberg/pull/82606) - Packages: Replace stale jest types with the Vitest test environment (https://github.com/WordPress/gutenberg/pull/82605) - Editor: Store the finalize response as the attachment record (https://github.com/WordPress/gutenberg/pull/81947) - Update Style Engine block supports documentation (https://github.com/WordPress/gutenberg/pull/82585) - Fix the high-severity sharp audit failure in AI development tests (https://github.com/WordPress/gutenberg/pull/82627) - Bump vitest from 4.1.10 to 4.1.11 (https://github.com/WordPress/gutenberg/pull/82629) - Editor: Render change diffs in the post title in revisions (https://github.com/WordPress/gutenberg/pull/82586) - Editor: Derive post-only block list layout from the assigned template (https://github.com/WordPress/gutenberg/pull/82599) - Gallery: Shorten "Use images attached to the post" button, add description (https://github.com/WordPress/gutenberg/pull/82617) - Theme: Enforce active fill contrast (https://github.com/WordPress/gutenberg/pull/82542) - UI: Reset completed calendar ranges by default (https://github.com/WordPress/gutenberg/pull/82612) - Video block: switch to UI Badge (https://github.com/WordPress/gutenberg/pull/82441) - DataViews: Remove obsolete Node 20 timezone test gate (https://github.com/WordPress/gutenberg/pull/82644) - Disabled: keep the consumer className when isDisabled is false (https://github.com/WordPress/gutenberg/pull/82648) - Autocompleters: Consider email address context in user mention (https://github.com/WordPress/gutenberg/pull/47249) - Searchable selects: Hide creatable footer when it is filtered out (https://github.com/WordPress/gutenberg/pull/82566) - Popover storybook: add infotip with link example (https://github.com/WordPress/gutenberg/pull/82653) - Block editor, Components: Stop relying on Disabled class name (https://github.com/WordPress/gutenberg/pull/82651) - FormTokenField: wrap to the last suggestion on ArrowUp with nothing selected (https://github.com/WordPress/gutenberg/pull/82646) - Components: Match the @wordpress/ui disabled styles in form controls (https://github.com/WordPress/gutenberg/pull/82454) - Framework: Update @types/node to v24 (https://github.com/WordPress/gutenberg/pull/82616) - Bump vite from 8.2.1 to 8.2.2 (https://github.com/WordPress/gutenberg/pull/82668) - Site editor v2: Use the canonical fields in the templates list (https://github.com/WordPress/gutenberg/pull/82666) - api-fetch: Resolve to null for a 200 response with an empty body (https://github.com/WordPress/gutenberg/pull/79325) - Site editor v2: Use the canonical wp_block fields in the patterns list (https://github.com/WordPress/gutenberg/pull/82672) - Theme: Remove chroma capacity cache (https://github.com/WordPress/gutenberg/pull/82591) - Remove the content-only inspector fields (block fields) experiment (https://github.com/WordPress/gutenberg/pull/82531) - Site editor v2: templates take view config from endpoint (https://github.com/WordPress/gutenberg/pull/82456) - Post URL: translate the copy permalink button label (https://github.com/WordPress/gutenberg/pull/82642) - UI: Test Calendar raw-offset timezones (https://github.com/WordPress/gutenberg/pull/82658) - DOM: Exclude visibility-hidden elements from focusable results (https://github.com/WordPress/gutenberg/pull/82574) - Test: Update SWC dependencies (https://github.com/WordPress/gutenberg/pull/82660) - Theme, Widget dashboard: Declare the @storybook/addon-docs dependency (https://github.com/WordPress/gutenberg/pull/82676) - Update Playwright to 1.63.0 (https://github.com/WordPress/gutenberg/pull/82654) - Site editor v2: patterns take view config from endpoint (https://github.com/WordPress/gutenberg/pull/82458) - BlockPreview: Assert preview contents are inert (https://github.com/WordPress/gutenberg/pull/82682) - Theme: Add bin-specific tsconfig with nodenext module resolution (https://github.com/WordPress/gutenberg/pull/82622) - Block Editor: Remove the dead Write/Design editor tool plumbing (https://github.com/WordPress/gutenberg/pull/82677) - Create Block: Test package at supported Node.js versions (https://github.com/WordPress/gutenberg/pull/82657) - Update Actions and Octokit dependencies (https://github.com/WordPress/gutenberg/pull/82663) - Theme: Use Node.js native type-stripping for scripts (https://github.com/WordPress/gutenberg/pull/82680) - Build Scripts: Suggest --verbose when a type check fails (https://github.com/WordPress/gutenberg/pull/82604) - e2e-test-utils-playwright: Update Lighthouse and web-vitals (https://github.com/WordPress/gutenberg/pull/81916) - Test: Update Vitest to version 5 (https://github.com/WordPress/gutenberg/pull/82687) - Site editor v2: template parts take view config from endpoint (https://github.com/WordPress/gutenberg/pull/82457) - Theme: Reduce repeated color ramp search work (https://github.com/WordPress/gutenberg/pull/82545) - Media: Only blame the browser's codecs when HEIC really cannot be decoded (https://github.com/WordPress/gutenberg/pull/82265) - Site editor v2: Identity takes its form from the view config endpoint (https://github.com/WordPress/gutenberg/pull/82692) - Storybook: Include stories in docgen TypeScript project (https://github.com/WordPress/gutenberg/pull/82694) - Test: Root the Vitest browser project where its dependencies are declared (https://github.com/WordPress/gutenberg/pull/82699) - Build: Fix regular CSS injection in Vitest Browser Mode (https://github.com/WordPress/gutenberg/pull/82154) - Workflow: Replace cmdk with the @wordpress/ui Autocomplete primitive (https://github.com/WordPress/gutenberg/pull/82504) - Add textShadow typography support and UI (https://github.com/WordPress/gutenberg/pull/79584) - Block editor: migrate block-card Badge to UI Badge (https://github.com/WordPress/gutenberg/pull/82503) - Bump github/codeql-action/upload-sarif (https://github.com/WordPress/gutenberg/pull/82339) - Rich text: separate applying the selection from focusing the field (https://github.com/WordPress/gutenberg/pull/82581) - Bump svgo from 3.3.4 to 3.3.5 (https://github.com/WordPress/gutenberg/pull/82631) - Inner Blocks: Support legacy inherit-based layouts (https://github.com/WordPress/gutenberg/pull/82637) - Bump js-yaml from 3.15.1 to 3.15.2 (https://github.com/WordPress/gutenberg/pull/82628) - Bump colord from 2.9.3 to 2.9.4 (https://github.com/WordPress/gutenberg/pull/82625) - Bump @humanfs/node from 0.16.7 to 0.16.8 (https://github.com/WordPress/gutenberg/pull/82352) - Site Editor: Restore Global Styles access on the front page (https://github.com/WordPress/gutenberg/pull/82624) - Bump browserslist from 4.28.4 to 4.28.7 (https://github.com/WordPress/gutenberg/pull/82315) - Bump fast-uri from 3.1.5 to 3.1.7 (https://github.com/WordPress/gutenberg/pull/82351) - DataViews: Label clickable grid media by the item title when the title is hidden (https://github.com/WordPress/gutenberg/pull/82639) - Layout hooks: roll out usage of normalizeLegacyLayout to the block-editor layout hooks (https://github.com/WordPress/gutenberg/pull/82710) - Checkbox: Expand hit target without changing visual size (https://github.com/WordPress/gutenberg/pull/82597) - Components: Align CheckboxControl checkmark and disabled styles with UI (https://github.com/WordPress/gutenberg/pull/82555) - Improve Math Inline and Block UI (https://github.com/WordPress/gutenberg/pull/77743) - Widgets: carry declarative `attributes` through the widget pipeline (https://github.com/WordPress/gutenberg/pull/82485) - Editor: Coerce `multiple` to a boolean in the media modal wrapper (https://github.com/WordPress/gutenberg/pull/82715) - Packages: Backport the September 10 npm release metadata to trunk (https://github.com/WordPress/gutenberg/pull/82709) - Update lerna to 10 and markdownlint-cli to 0.49.1 (https://github.com/WordPress/gutenberg/pull/81917) - Navigation: don't force submenus open inside a custom overlay (https://github.com/WordPress/gutenberg/pull/82596) - TextareaAutosize: Replace with native textareas and `field-sizing` (https://github.com/WordPress/gutenberg/pull/64208) - Fields: Show a message in MediaEdit when the user can't upload media (https://github.com/WordPress/gutenberg/pull/82720) - Fix playlist track selector stability (https://github.com/WordPress/gutenberg/pull/81760) - Workflow: Remove deprecated word-wrapping (https://github.com/WordPress/gutenberg/pull/82562) - Post publish panel: replace deprecated word-break with overflow-wrap (https://github.com/WordPress/gutenberg/pull/82495) - CI: Run the required trunk changes check through the pr-baseline action (https://github.com/WordPress/gutenberg/pull/82725) - Stroke icons: 3rd batch, 142 icon updates (https://github.com/WordPress/gutenberg/pull/82540) - AI development tests: Use repository Node version (https://github.com/WordPress/gutenberg/pull/82662) - Components: Clean up legacy focus/button overrides in Snackbar and Notice (https://github.com/WordPress/gutenberg/pull/82640) - Command Palette: Only add the admin bar button when Core does not provide it (https://github.com/WordPress/gutenberg/pull/82733) - Release: Verify SVN deployment after publication (https://github.com/WordPress/gutenberg/pull/82513) - Test: Run rendered browser behavior in Vitest Browser Mode (https://github.com/WordPress/gutenberg/pull/80995) - DOM: Find focusable image map areas (https://github.com/WordPress/gutenberg/pull/82736) - Add backwards-compatible Y option to provider creator, do not use wp.sync directly in tests (https://github.com/WordPress/gutenberg/pull/82621) - Fields: replace word-break with `overflow-wrap: anywhere` on slug permalink (https://github.com/WordPress/gutenberg/pull/82693) - Env: Preserve complete lifecycle script error output (https://github.com/WordPress/gutenberg/pull/82735) - Remove deprecated word-wrapping Stylelint suppressions (https://github.com/WordPress/gutenberg/pull/82426) - Test: Stabilize Menu iframe listener lifecycle assertions (https://github.com/WordPress/gutenberg/pull/82575) - Media: Stop injecting crossorigin attributes under Document-Isolation-Policy (https://github.com/WordPress/gutenberg/pull/82614) - Global Styles: Retain responsive styles in block style variation partials (https://github.com/WordPress/gutenberg/pull/82403) - Editor: Add a fixedRenderingMode prop for contexts with one mode (https://github.com/WordPress/gutenberg/pull/82711) - Site Editor v2: Show the template on the routes that show the site (https://github.com/WordPress/gutenberg/pull/82712) - Fix: Navigation: block appender button is 26×24 instead of square (https://github.com/WordPress/gutenberg/pull/82718) - Add missing listitem role to ConnectorItem. (https://github.com/WordPress/gutenberg/pull/82664) - Block alignment: List unavailable wide and full alignments instead of hiding them (https://github.com/WordPress/gutenberg/pull/82600) - Test: Make browser tests independent of execution order (https://github.com/WordPress/gutenberg/pull/82743) - Project Management: Exclude private APIs config from CODEOWNERS (https://github.com/WordPress/gutenberg/pull/82750) - Unit Tests: Resolve @ariakit/utils through its dependents (https://github.com/WordPress/gutenberg/pull/82756) - Interface: Convert the package to TypeScript (https://github.com/WordPress/gutenberg/pull/82753) - Grid: Migrate Emotion styles to SCSS Modules (https://github.com/WordPress/gutenberg/pull/82571) - Test: Finish repository Vitest migration and expand Browser Mode coverage (https://github.com/WordPress/gutenberg/pull/82742) - Plugin: Bump minimum required WordPress version to 7.0 (https://github.com/WordPress/gutenberg/pull/82404) - Circular Option Picker: Show focus with button's outline ring (https://github.com/WordPress/gutenberg/pull/82521) - Interface: Fix the ActionItem click handler and selector types (https://github.com/WordPress/gutenberg/pull/82758) - Editor: Remove pass-through more menu Slot wrappers (https://github.com/WordPress/gutenberg/pull/82759) - Upgrade React 19 to 19.3.0 (https://github.com/WordPress/gutenberg/pull/82760) - Edit Post: Fix meta boxes unreachable in Code Editor split view (https://github.com/WordPress/gutenberg/pull/78644) - Docs: Add blank line between `@since` and `@param`/`@return` in block parser (https://github.com/WordPress/gutenberg/pull/82690) - UI: Add statusContent to searchable selects (https://github.com/WordPress/gutenberg/pull/82592) - UI: Add CheckboxGroup form primitive (https://github.com/WordPress/gutenberg/pull/82556) - Notice: add custom icon Storybook example (https://github.com/WordPress/gutenberg/pull/82762) - Test: Remove obsolete internal test setup and transforms (https://github.com/WordPress/gutenberg/pull/82761) - Code Modernization: Use null coalescing operator in `WP_Block_Parser` methods (https://github.com/WordPress/gutenberg/pull/82763) - Global Styles UI: Use UI Menu (https://github.com/WordPress/gutenberg/pull/81921) - Icons: Allow icons to ship to WordPress Core without exposing them in the Icon block (https://github.com/WordPress/gutenberg/pull/82634) - Fix doubly-zipped plugin artifacts in GitHub Actions (https://github.com/WordPress/gutenberg/pull/76857) - Icons: Ship the admin bar and admin menu icons to WordPress Core (https://github.com/WordPress/gutenberg/pull/79451) - Autocomplete: Show focus with design system's focus ring (https://github.com/WordPress/gutenberg/pull/82766) - Keycodes: Add a shared keyboard shortcut representation helper (https://github.com/WordPress/gutenberg/pull/82632) - CI: Scope the required trunk changes refresh to what a move can invalidate (https://github.com/WordPress/gutenberg/pull/82767) - Editor: Honor post types in `post-thumbnails` theme support when registering the featured image field (https://github.com/WordPress/gutenberg/pull/82773) - Docs: Clarify parent behavior during block registration (https://github.com/WordPress/gutenberg/pull/78967) - Cover: Prevent content cutoff when aspect ratio is set in Safari (https://github.com/WordPress/gutenberg/pull/70152) - Docs: Clarify dependency extraction asset filename (https://github.com/WordPress/gutenberg/pull/78968) - Re-enable editableRoot for multi-selection on mobile web (https://github.com/WordPress/gutenberg/pull/81542) - Post Taxonomies: Replace FormTokenField in the flat term selector (https://github.com/WordPress/gutenberg/pull/80967) - E2E: Reset preferences in the post editor preload spec (https://github.com/WordPress/gutenberg/pull/82818) - Fonts: Remove the deprecated Fonts API BC layer and leftovers (https://github.com/WordPress/gutenberg/pull/82813) - Commands: Avoid re-registering command loaders on every render (https://github.com/WordPress/gutenberg/pull/82819) - Data: Remove the unused AsyncModeConsumer export (https://github.com/WordPress/gutenberg/pull/82822) - Tooling: Extract shared TypeScript configs into a `@wordpress/config-tools` workspace (https://github.com/WordPress/gutenberg/pull/82334) - Style states: Improve block inspector UI (https://github.com/WordPress/gutenberg/pull/82649) - Tooling: Add @wordpress/monorepo-tools to root devDependencies (https://github.com/WordPress/gutenberg/pull/82824) - DataViews: replace `word-break` with `overflow-wrap: anywhere` on `DataForm` panel field control (https://github.com/WordPress/gutenberg/pull/82776) - CI: Stop actions/setup-node from invoking the bundled npm (https://github.com/WordPress/gutenberg/pull/82775) - CI: Keep the bundled npm when devEngines is absent (https://github.com/WordPress/gutenberg/pull/82823) - Icons: Move plugin icon registration out of the 7.1 compat directory (https://github.com/WordPress/gutenberg/pull/82832) - Image block: stop interpreting `$`/`\` in img attributes as regex backreferences (https://github.com/WordPress/gutenberg/pull/79369) - CI: Disable setup-node npm caching in the Create Block packed package job (https://github.com/WordPress/gutenberg/pull/82833) - Build: Deduplicate npm dependencies (https://github.com/WordPress/gutenberg/pull/82698) - PaletteEdit: Use @wordpress/ui Menu for palette options (https://github.com/WordPress/gutenberg/pull/82768) - Editor: Use UI Menu for post actions (https://github.com/WordPress/gutenberg/pull/81922) - Block Editor: Use UI Menu for bindings and variation transforms (https://github.com/WordPress/gutenberg/pull/81925) - Select.Positioner: Revert to Base UI alignItemWithTrigger default (https://github.com/WordPress/gutenberg/pull/82043) - API Fetch: Document that requests are meant for the current site's REST API. (https://github.com/WordPress/gutenberg/pull/82373) - UI: Add Select.ItemLabel and ItemDescription (https://github.com/WordPress/gutenberg/pull/82369) - Widgets: Fix the Welcome Guide menu item triggering a preference speak message (https://github.com/WordPress/gutenberg/pull/82395) - UI: Move interaction tests to Browser Mode (https://github.com/WordPress/gutenberg/pull/82838) - Packages: Update Ariakit to 0.4.39 (https://github.com/WordPress/gutenberg/pull/82831) - Block Editor: replace deprecated word-wrap with overflow-wrap in responsive block control (https://github.com/WordPress/gutenberg/pull/82855) - Button: replace deprecated `word-break` with `overflow-wrap: anywhere` (https://github.com/WordPress/gutenberg/pull/82854) - UI: Update Base UI to 1.8.0 (https://github.com/WordPress/gutenberg/pull/82835) - Docs: Document published dependency constraints (https://github.com/WordPress/gutenberg/pull/80631) - Docs: Document page stability convention (https://github.com/WordPress/gutenberg/pull/80632) - Cover Block: Fix resizable handle visibility on mobile when sidebar is opened (https://github.com/WordPress/gutenberg/pull/80355) - Block Inspector: Stabilize display of inherited global styles and keep UI changes behind experiment (https://github.com/WordPress/gutenberg/pull/82840) - Data: optimize store listeners and their execution (https://github.com/WordPress/gutenberg/pull/82842) - Core Data: Fix return types on generated save/delete entity actions (https://github.com/WordPress/gutenberg/pull/77162) - Notes: Use UI Menu for note actions (https://github.com/WordPress/gutenberg/pull/81930) - Widget Dashboard: Use UI Menu for dashboard controls (https://github.com/WordPress/gutenberg/pull/81929) - Media & Text Block: Add a Media section to the block inspector panel (https://github.com/WordPress/gutenberg/pull/82593) - Fields: Hide the date, author and password fields when the user can't publish or reassign (https://github.com/WordPress/gutenberg/pull/82844) - Docs: Guard against ESLint bulk suppression abuse (https://github.com/WordPress/gutenberg/pull/82944) - BorderBoxControl: Restore the split borders layout (https://github.com/WordPress/gutenberg/pull/82939) - Icons: Restore the dimmed box on the side and corner icons (https://github.com/WordPress/gutenberg/pull/82940) - Fields: Show the template field to users who can't create templates (https://github.com/WordPress/gutenberg/pull/82857) - Calendar Block: Use the args array signature of get_calendar() (https://github.com/WordPress/gutenberg/pull/82943) - DataViews README: clarify readOnly vs isDisabled (https://github.com/WordPress/gutenberg/pull/82956) - Template panel: Hide edit and create actions from users who can't create templates (https://github.com/WordPress/gutenberg/pull/82858) - Fix stray fill rule in SelectControl. (https://github.com/WordPress/gutenberg/pull/82949) - Stroke icons: final batch, 96 icons (https://github.com/WordPress/gutenberg/pull/82754) - Fix Stylelint config and coding standards for font weight numeric values and disallow relative weights (https://github.com/WordPress/gutenberg/pull/82778) - Widget Dashboard: Use UI Spinner and remove Components dependency (https://github.com/WordPress/gutenberg/pull/82837) - Fix: Inherit link color for image block anchor elements (https://github.com/WordPress/gutenberg/pull/79401) - Data: Fix the latest changelog entry and structure (https://github.com/WordPress/gutenberg/pull/82959) - Menu: Fix vertical alignment across item combinations (https://github.com/WordPress/gutenberg/pull/82847) - Docs: Fix the dead anchor in the block development environment list (https://github.com/WordPress/gutenberg/pull/82878) - Collaborators Presence: Update to use design system's focus ring in header avatar stack (https://github.com/WordPress/gutenberg/pull/82941) - UI: Fix highlighted item indicator in forced-colors mode (https://github.com/WordPress/gutenberg/pull/82772) - Docs: Fix the broken Query block link in the Interactivity API guide (https://github.com/WordPress/gutenberg/pull/82862) - Fix: Widgets customizer Undo and Redo buttons are disabled and the document tools focus style is not visible (https://github.com/WordPress/gutenberg/pull/82412) - DataForm: Hide the edit button of disabled fields in the panel layout (https://github.com/WordPress/gutenberg/pull/82957) - BoxControl: Migrate the side indicator to an SCSS module (https://github.com/WordPress/gutenberg/pull/82570) - Distraction Free: raise top bar above notices when revealed by hover or keyboard focus (https://github.com/WordPress/gutenberg/pull/80349) - Extensible Site Editor: Use the view config form for Quick Edit (https://github.com/WordPress/gutenberg/pull/82962) - Fix: Query Pagination block ignores the parent block gap in the editor (https://github.com/WordPress/gutenberg/pull/82399) - Customize Widgets: Await asynchronous toolbar updates in history test (https://github.com/WordPress/gutenberg/pull/82963) - Elevation: Migrate from Emotion to SCSS modules (https://github.com/WordPress/gutenberg/pull/82572) - Enable viewport state values for Gallery aspect ratio (https://github.com/WordPress/gutenberg/pull/82233) - Scripts: Switch unit tests to Vitest and deprecate Jest tooling (https://github.com/WordPress/gutenberg/pull/82843) - Speed up collaboration e2e by shortening poll interval (https://github.com/WordPress/gutenberg/pull/78746) - UI: replace deprecated word-wrap with overflow-wrap in `VisuallyHidden` (https://github.com/WordPress/gutenberg/pull/82970) - Block Library: replace deprecated word-wrap with overflow-wrap in screen-reader-text (https://github.com/WordPress/gutenberg/pull/82972) - CustomGradientPicker: Show the control point's focus ring with the design system's outline (https://github.com/WordPress/gutenberg/pull/82834) - Fix: Default block gap is ignored in the editor for themes without block gap support (https://github.com/WordPress/gutenberg/pull/82401) - Remove the zero width space hack from getRectangleFromRange (https://github.com/WordPress/gutenberg/pull/82977) - Block Toolbar: Show the parent selector for blocks inside patterns (https://github.com/WordPress/gutenberg/pull/82912) - Keep the iOS keyboard capitalized after Return inside the editing host (https://github.com/WordPress/gutenberg/pull/82911) - Docs: Say how long a notice can be, in the copy guide (https://github.com/WordPress/gutenberg/pull/81195) - Widget Primitives: add `HostLink` over the `links` capability (https://github.com/WordPress/gutenberg/pull/82952) - Pattern block: Run autoembed() before do_blocks() (https://github.com/WordPress/gutenberg/pull/82860) - Widget Dashboard: default tile padding to `padding-lg` (https://github.com/WordPress/gutenberg/pull/82961) - Upgrade wp-prettier to 3.9.6 (https://github.com/WordPress/gutenberg/pull/82731) - Fix prettier lint issues after prettier upgrade (https://github.com/WordPress/gutenberg/pull/83015) - Widget Dashboard: show a clipped widget title in the header infotip (https://github.com/WordPress/gutenberg/pull/82226) - Post Title: remove the inline-block from the title link (https://github.com/WordPress/gutenberg/pull/80231) - Collaborators Presence & Document Bar: Clean up styles by removing overrides (https://github.com/WordPress/gutenberg/pull/83013) - Docs: document the no-hard-wrap rule for Markdown (https://github.com/WordPress/gutenberg/pull/83017) - Icons: Allow `rect` and `circle` in the registry sanitizer (https://github.com/WordPress/gutenberg/pull/82846) - Upgrade wp-prettier to 3.9.6 final (https://github.com/WordPress/gutenberg/pull/83026) - Fix: Navigation submenu detection leaks between Navigation blocks. (https://github.com/WordPress/gutenberg/pull/82366) - Use `WCSelectControl` alias for legacy SelectControl imports (https://github.com/WordPress/gutenberg/pull/83027) - Upload media: guard processItem against re-entrant dispatch (https://github.com/WordPress/gutenberg/pull/83031) - Math: Source the LaTeX from the MathML annotation (https://github.com/WordPress/gutenberg/pull/82987) - Remove the interactivity-router script module data shim (https://github.com/WordPress/gutenberg/pull/83011) - Data: Add `getResolutionArgs` to share a resolution across selector calls (https://github.com/WordPress/gutenberg/pull/82638) - Code: Add shadow support (https://github.com/WordPress/gutenberg/pull/83014) - Footnotes: Add shadow support (https://github.com/WordPress/gutenberg/pull/83044) - Excerpt: Add shadow support (https://github.com/WordPress/gutenberg/pull/83018) - Content: Add shadow support (https://github.com/WordPress/gutenberg/pull/83016) - Icons: Test the registry sanitizer with a data provider (https://github.com/WordPress/gutenberg/pull/83024) - Heading: Add shadow support (https://github.com/WordPress/gutenberg/pull/83045) - Details: Add shadow support (https://github.com/WordPress/gutenberg/pull/83021) - Post template panel: Remove the dead template read capability check (https://github.com/WordPress/gutenberg/pull/82861) - Dependency Extraction Webpack Plugin: Add global-styles-engine and global-styles-ui as bundled packages (https://github.com/WordPress/gutenberg/pull/82589) - Verse: Add shadow support (https://github.com/WordPress/gutenberg/pull/83057) - Docs: Data: Fix typo in code example for __unstableNormalizeArgs (https://github.com/WordPress/gutenberg/pull/83070) - Icons: Test that the registry sanitizer preserves every library icon (https://github.com/WordPress/gutenberg/pull/83008) - Stylelint: add `custom-property-pattern` to disallow `--_gcd-*` custom properties (https://github.com/WordPress/gutenberg/pull/83025) - Tooling: Add .mts and .cts support (https://github.com/WordPress/gutenberg/pull/83071) - Block Mover: Cleanup focus ring override (https://github.com/WordPress/gutenberg/pull/83068) - Tests: Remove obsolete internal Jest infrastructure (https://github.com/WordPress/gutenberg/pull/82975) - Move the unit-test-date.sh script to workspace, rewrite to JS (https://github.com/WordPress/gutenberg/pull/83066) - Gallery: Skip gap style generation for themes opting out of layout styles (https://github.com/WordPress/gutenberg/pull/81633) - Monorepo tools: Move the experimental API audit out of bin/ (https://github.com/WordPress/gutenberg/pull/83081) - Add category filtering to the start page options patterns modal (https://github.com/WordPress/gutenberg/pull/81396) - UI: Mark Select and SelectControl as recommended (https://github.com/WordPress/gutenberg/pull/83030) - Updated Changelog Entry (https://github.com/WordPress/gutenberg/pull/83037) - Rich text: fix mobile selection hair pin grab at edge of block (https://github.com/WordPress/gutenberg/pull/83041) - Link Control: Only tag pages as the front page or blog home (https://github.com/WordPress/gutenberg/pull/83082) - Tooling: Name the shared tsconfig presets `tsconfig.*.json` (https://github.com/WordPress/gutenberg/pull/83077) - Multi-line text of menu items is not aligned (https://github.com/WordPress/gutenberg/pull/70917) - Fix Connectors and Fonts pages background color and contrast. (https://github.com/WordPress/gutenberg/pull/82827) - Post Template: Add shadow support (https://github.com/WordPress/gutenberg/pull/83059) - Page List: Add shadow support (https://github.com/WordPress/gutenberg/pull/83056) - Playlist: Add shadow support (https://github.com/WordPress/gutenberg/pull/83055) - Math: Add shadow support (https://github.com/WordPress/gutenberg/pull/83052) - Latest Posts: Add shadow support (https://github.com/WordPress/gutenberg/pull/83051) - Latest Comments: Add shadow support (https://github.com/WordPress/gutenberg/pull/83047) - Home Link: Add shadow support (https://github.com/WordPress/gutenberg/pull/83046) - Login/out: Add shadow support (https://github.com/WordPress/gutenberg/pull/83050) - Excerpt field: Render nothing when the excerpt is empty (https://github.com/WordPress/gutenberg/pull/82423) - No Results: Add shadow support (https://github.com/WordPress/gutenberg/pull/83054) - ESLint: Allow string literal IDs in tests and Storybook (https://github.com/WordPress/gutenberg/pull/83090) - UI: Add RadioGroup form primitive (https://github.com/WordPress/gutenberg/pull/83038) - Components: Deprecate Divider (https://github.com/WordPress/gutenberg/pull/83040) - Data: Stabilize `__unstableNormalizeArgs` as `normalizeArgs` (https://github.com/WordPress/gutenberg/pull/83067) - Stylelint: add `--_wp-*` to `custom-property-pattern` rule (https://github.com/WordPress/gutenberg/pull/83075) - Build: Declare `@wordpress/theme` as a dev dependency of `@wordpress/build` (https://github.com/WordPress/gutenberg/pull/83129) - UI: Tighten Fieldset legend and description gap (https://github.com/WordPress/gutenberg/pull/82729) - Core Data: Fix overwriting scored matches for duplicate ids (https://github.com/WordPress/gutenberg/pull/83113) - Block Editor: Update LinkControl and LinkPicker to use `Badge` from `@wordpress/ui` (https://github.com/WordPress/gutenberg/pull/82684) - Storybook: Remove obsolete manifest extractor render workaround (https://github.com/WordPress/gutenberg/pull/83124) - UI: Add Switch form primitive (https://github.com/WordPress/gutenberg/pull/83039) - Automated Testing: Document and validate expected changelog structure (https://github.com/WordPress/gutenberg/pull/83043) - ESLint: Disallow Storybook build-style side-effect imports (https://github.com/WordPress/gutenberg/pull/82960) - Global Styles: replace experimental ZStack in the palette preview (https://github.com/WordPress/gutenberg/pull/83060) - UI: Place Fieldset description after the legend in stories (https://github.com/WordPress/gutenberg/pull/83144) - Use WCCheckboxControl alias for legacy CheckboxControl imports. (https://github.com/WordPress/gutenberg/pull/83145) - The image dimensions have been removed from the name. (https://github.com/WordPress/gutenberg/pull/82828) - Fix the high-severity adm-zip audit failure in AI development tests (https://github.com/WordPress/gutenberg/pull/83170) - Bump adm-zip from 0.6.0 to 0.6.1 (https://github.com/WordPress/gutenberg/pull/83167) - Post Navigation Link: Add shadow support (https://github.com/WordPress/gutenberg/pull/83058) - Bump csv-parse from 7.0.1 to 7.0.2 in /test/ai-development (https://github.com/WordPress/gutenberg/pull/82619) - Video block: Remove GIF variation handling (https://github.com/WordPress/gutenberg/pull/82696) - PostLastRevisionPanel: Fix doubled focus ring on the revisions button (https://github.com/WordPress/gutenberg/pull/82955) - Navigation Overlay Close: Add shadow support (https://github.com/WordPress/gutenberg/pull/83053) - Fix typos in comments and test descriptions (https://github.com/WordPress/gutenberg/pull/83172) - Block Editor: Remove the deprecated `__experimentalGroup` prop (https://github.com/WordPress/gutenberg/pull/83171) - Site Tagline: Add fit text support (https://github.com/WordPress/gutenberg/pull/83034) - Block Editor: Highlight the block when its content list item is hovered (https://github.com/WordPress/gutenberg/pull/83049) - Navigation: Fix always-open submenus jumping in width on hover (https://github.com/WordPress/gutenberg/pull/83142) - Post Navigation Link: Add border and spacing support (https://github.com/WordPress/gutenberg/pull/83122) - Preformatted: Add shadow support (https://github.com/WordPress/gutenberg/pull/83174) - Pullquote: Add shadow support (https://github.com/WordPress/gutenberg/pull/83177) - Quote: Add shadow support (https://github.com/WordPress/gutenberg/pull/83178) - Site Title: Add shadow support (https://github.com/WordPress/gutenberg/pull/83182) - Post Title: Add shadow support (https://github.com/WordPress/gutenberg/pull/83195) - Video: Add shadow support (https://github.com/WordPress/gutenberg/pull/83196) - Read More: Add shadow support (https://github.com/WordPress/gutenberg/pull/83180) - Post Terms: Add shadow support (https://github.com/WordPress/gutenberg/pull/83175) - Query Total: Add shadow support (https://github.com/WordPress/gutenberg/pull/83176) - RSS: Add shadow support (https://github.com/WordPress/gutenberg/pull/83179) - Tab Panel: Add shadow support (https://github.com/WordPress/gutenberg/pull/83183) - Post Time to Read: Add shadow support (https://github.com/WordPress/gutenberg/pull/83194) - Tab Panels: Add shadow support (https://github.com/WordPress/gutenberg/pull/83184) - UI: Document that public --wp-ui-* CSS custom properties are frozen. (https://github.com/WordPress/gutenberg/pull/83147) - Tag Cloud: Add shadow support (https://github.com/WordPress/gutenberg/pull/83188) - Table of Contents: Add shadow support (https://github.com/WordPress/gutenberg/pull/83187) - Tabs: Add shadow support (https://github.com/WordPress/gutenberg/pull/83186) - Term Description: Add shadow support (https://github.com/WordPress/gutenberg/pull/83190) - Term Count: Add shadow support (https://github.com/WordPress/gutenberg/pull/83189) - Site Tagline: Add shadow support (https://github.com/WordPress/gutenberg/pull/83181) - Terms List: Add shadow support (https://github.com/WordPress/gutenberg/pull/83193) - Details: Add background image, size, and gradient support (https://github.com/WordPress/gutenberg/pull/83222) - Social Icons: Add background gradient support (https://github.com/WordPress/gutenberg/pull/83249) - Accordion Item: Add background gradient support (https://github.com/WordPress/gutenberg/pull/83197) - Post Author Name: Add background image, size, and gradient support (https://github.com/WordPress/gutenberg/pull/83200) - Code: Add background image, size, and gradient support (https://github.com/WordPress/gutenberg/pull/83204) - Comment Author Name: Add background gradient support (https://github.com/WordPress/gutenberg/pull/83207) - Comment Content: Add background gradient support (https://github.com/WordPress/gutenberg/pull/83208) - Comment Date: Add background gradient support (https://github.com/WordPress/gutenberg/pull/83209) - Term Template: Add shadow support (https://github.com/WordPress/gutenberg/pull/83192) - Footnotes: Add background image, size, and gradient support (https://github.com/WordPress/gutenberg/pull/83224) - Post Date: Add background gradient support (https://github.com/WordPress/gutenberg/pull/83218) - Comments Title: Add background gradient support (https://github.com/WordPress/gutenberg/pull/83217) - Gallery: Add background image, size, and gradient support (https://github.com/WordPress/gutenberg/pull/83225) - Heading: Add background image, size, and gradient support (https://github.com/WordPress/gutenberg/pull/83226) - Term Name: Add shadow support (https://github.com/WordPress/gutenberg/pull/83191) - Breadcrumbs: Add background gradient support (https://github.com/WordPress/gutenberg/pull/83202) - Comment Reply Link: Add background gradient support (https://github.com/WordPress/gutenberg/pull/83211) - File: Add background image, size, and gradient support (https://github.com/WordPress/gutenberg/pull/83223) - Post Author Biography: Add background gradient support (https://github.com/WordPress/gutenberg/pull/83199) - Next Page: Add background gradient support (https://github.com/WordPress/gutenberg/pull/83232) - Post Excerpt: Add background image, size, and gradient support (https://github.com/WordPress/gutenberg/pull/83221) - Previous Page: Add background gradient support (https://github.com/WordPress/gutenberg/pull/83240) - Accordion Panel: Add background image, size, and gradient support (https://github.com/WordPress/gutenberg/pull/83201) - Post Comments Count: Add background gradient support (https://github.com/WordPress/gutenberg/pull/83213) - RSS: Add background image, size, and gradient support (https://github.com/WordPress/gutenberg/pull/83244) - Columns: Add background image, size, and gradient support (https://github.com/WordPress/gutenberg/pull/83206) - Archives: Add background image, size, and gradient support (https://github.com/WordPress/gutenberg/pull/83198) - Latest Posts: Add background image, size, and gradient support (https://github.com/WordPress/gutenberg/pull/83228) - Preformatted: Add background image, size, and gradient support (https://github.com/WordPress/gutenberg/pull/83239) - Comments Previous Page: Add background gradient support (https://github.com/WordPress/gutenberg/pull/83220) - Read More: Add background image, size, and gradient support (https://github.com/WordPress/gutenberg/pull/83245) - Comments Pagination: Add background gradient support (https://github.com/WordPress/gutenberg/pull/83219) - Query Title: Add background gradient support (https://github.com/WordPress/gutenberg/pull/83242) - Post Title: Add background image, size, and gradient support (https://github.com/WordPress/gutenberg/pull/83260) - Tag Cloud: Add background and link colour support (https://github.com/WordPress/gutenberg/pull/83264) - Storybook: List every top-level folder in the sidebar order, design system first (https://github.com/WordPress/gutenberg/pull/82429) - Featured image field: support the `editor.PostFeaturedImage` filter in the post summary (https://github.com/WordPress/gutenberg/pull/83133) - Storybook: Fold Foundations, DataViews, Fields, Admin UI and Icons under Design System (https://github.com/WordPress/gutenberg/pull/82430) - Block Editor: replace denylisted layout components in the Duotone filter label (https://github.com/WordPress/gutenberg/pull/83061) - Storybook: Group Widget Primitives, Widget Dashboard and Grid under Widgets (https://github.com/WordPress/gutenberg/pull/82431) - Storybook: Group the editor UI under Editor (https://github.com/WordPress/gutenberg/pull/82432) - Components: Deprecate Elevation (https://github.com/WordPress/gutenberg/pull/83269) - Post Time to Read: Add background image, size, and gradient support (https://github.com/WordPress/gutenberg/pull/83258) - Buttons: Add background image, size, and gradient support (https://github.com/WordPress/gutenberg/pull/83203) - Storybook: Group component packages under Components (https://github.com/WordPress/gutenberg/pull/82433) - Terms List: Add background image, size, and gradient support (https://github.com/WordPress/gutenberg/pull/83257) - UI: Add SwitchControl component (https://github.com/WordPress/gutenberg/pull/83146) - Release tools: Move the plugin ZIP build out of bin/ (https://github.com/WordPress/gutenberg/pull/83087) - Storybook: Remove the legacy Tokens pages (https://github.com/WordPress/gutenberg/pull/82434) - Storybook: Show the component status in the sidebar as status-* tags (https://github.com/WordPress/gutenberg/pull/82435) - Storybook: Guard the set of top-level sidebar folders with a test (https://github.com/WordPress/gutenberg/pull/82436) - Storybook: Rewrite the introduction page as the front door of the design system (https://github.com/WordPress/gutenberg/pull/82437) - Workflows: Refine and complete the push and pull_request branch filters (https://github.com/WordPress/gutenberg/pull/82744) - Public API for supporting viewport states in custom controls (https://github.com/WordPress/gutenberg/pull/82741) - Fix: Term Name block skips the term name display filters. (https://github.com/WordPress/gutenberg/pull/82365) - Tag Cloud: Add background image, size, and gradient support (https://github.com/WordPress/gutenberg/pull/83259) - Comments Next Page: Add background gradient support (https://github.com/WordPress/gutenberg/pull/83215) - Comments Page Numbers: Add background gradient support (https://github.com/WordPress/gutenberg/pull/83216) - Pagination: Add background gradient support (https://github.com/WordPress/gutenberg/pull/83236) - Comment Edit Link: Add background gradient support (https://github.com/WordPress/gutenberg/pull/83210) - Page Numbers: Add background gradient support (https://github.com/WordPress/gutenberg/pull/83235) - Column: Add background image, size, and gradient support (https://github.com/WordPress/gutenberg/pull/83205) - Comments: Add background image, size, and gradient support (https://github.com/WordPress/gutenberg/pull/83212) - Post Comments Form: Add background image, size, and gradient support (https://github.com/WordPress/gutenberg/pull/83214) - Latest Comments: Add background image, size, and gradient support (https://github.com/WordPress/gutenberg/pull/83227) - Home Link: Add background image, size, and gradient support (https://github.com/WordPress/gutenberg/pull/83230) - Term Description: Add background image, size, and gradient support (https://github.com/WordPress/gutenberg/pull/83254) - Storybook: Load the media editor package styles in its stories (https://github.com/WordPress/gutenberg/pull/83303) - Site Tagline: Add background image, size, and gradient support (https://github.com/WordPress/gutenberg/pull/83246) - Media Editor: fix crop canvas handlers and rotation ruler in RTL (https://github.com/WordPress/gutenberg/pull/83304) - Site Title: Add background image, size, and gradient support (https://github.com/WordPress/gutenberg/pull/83247) - Query Total: Add background image, size, and gradient support (https://github.com/WordPress/gutenberg/pull/83243) - Tab Panels: Add background image, size, and gradient support (https://github.com/WordPress/gutenberg/pull/83250) - Term Template: Add background image, size, and gradient support (https://github.com/WordPress/gutenberg/pull/83256) - Term Count: Add background image, size, and gradient support (https://github.com/WordPress/gutenberg/pull/83253) - Math: Add background image, size, and gradient support (https://github.com/WordPress/gutenberg/pull/83231) - Tabs: Add background image, size, and gradient support (https://github.com/WordPress/gutenberg/pull/83252) - Table of Contents: Add background image, size, and gradient support (https://github.com/WordPress/gutenberg/pull/83251) - Tab Panel: Add background image, size, and gradient support (https://github.com/WordPress/gutenberg/pull/83248) - Term Name: Add background image, size, and gradient support (https://github.com/WordPress/gutenberg/pull/83255) - Page List: Add background image, size, and gradient support (https://github.com/WordPress/gutenberg/pull/83234) - Login/out: Add background image, size, and gradient support (https://github.com/WordPress/gutenberg/pull/83229) - No Results: Add background image, size, and gradient support (https://github.com/WordPress/gutenberg/pull/83233) - Post Template: Add background image, size, and gradient support (https://github.com/WordPress/gutenberg/pull/83237) - UI: Add RadioGroupControl (https://github.com/WordPress/gutenberg/pull/83143) - Post Terms: Add background image, size, and gradient support (https://github.com/WordPress/gutenberg/pull/83238) - Components: Deprecate Scrollable (https://github.com/WordPress/gutenberg/pull/83273) - Storybook: Place RadioGroup, Switch, and SwitchControl under @wordpress-ui (https://github.com/WordPress/gutenberg/pull/83314) - Block Editor: Show the in-between inserter on wrapped lines (https://github.com/WordPress/gutenberg/pull/83276) - Docs: Add missing `@since` tags to two functions (https://github.com/WordPress/gutenberg/pull/83116) - Upgrade eslint-plugin-jsdoc to latest version 64. (https://github.com/WordPress/gutenberg/pull/82727) - i18n: add context to breadcrumbs area label (https://github.com/WordPress/gutenberg/pull/78134) - Storybook: Omit the recommended checkmark from the sidebar (https://github.com/WordPress/gutenberg/pull/83309) - Fix: Social Icons: In-between inserter does not work (https://github.com/WordPress/gutenberg/pull/83327) - Storybook: Convert story-only stylesheets to CSS modules (https://github.com/WordPress/gutenberg/pull/83272) - Block Editor: replace experimental ZStack in overlapping color indicators (https://github.com/WordPress/gutenberg/pull/83062) - FocalPointPicker: Fix Sidebar Overflow Issue (https://github.com/WordPress/gutenberg/pull/68915) - Storybook: Reject non-module stylesheet imports (https://github.com/WordPress/gutenberg/pull/83313) - Components: Align CheckboxControl border, hover, and disabled colors with UI (https://github.com/WordPress/gutenberg/pull/83271) - Icons: Move the public property from icons to collections (https://github.com/WordPress/gutenberg/pull/83277) - ESLint Plugin: Check type-only imports for undeclared dependencies (https://github.com/WordPress/gutenberg/pull/83336) - TypeScript: Give each widget its own typecheck project (https://github.com/WordPress/gutenberg/pull/83328) - Components: Deprecate ResponsiveWrapper (https://github.com/WordPress/gutenberg/pull/83347) - Remove npm from package engines (https://github.com/WordPress/gutenberg/pull/83326) - Data: keep a pending listener when store not yet registered (https://github.com/WordPress/gutenberg/pull/83346) - Add Template: Show template descriptions in the template list (https://github.com/WordPress/gutenberg/pull/83064) - Block Editor: Consolidate search ranking into one shared module (https://github.com/WordPress/gutenberg/pull/83312) - DataViews: Let a picker compose its footer from the page select and its actions (https://github.com/WordPress/gutenberg/pull/83281) - Bump the github-actions group across 1 directory with 2 updates (https://github.com/WordPress/gutenberg/pull/83080) - Rich text: Show the format boundary when the canvas root has focus (https://github.com/WordPress/gutenberg/pull/83385) - Rich text: Select an inline image by clicking it, and show the edit UI of the object clicked (https://github.com/WordPress/gutenberg/pull/83370) - Global Styles: Switch the revisions screen to the DataViews pickerActivity layout (https://github.com/WordPress/gutenberg/pull/80856) - Try: Add left border to Notes panel. (https://github.com/WordPress/gutenberg/pull/83330) - Media: Detect HEIC uploads from the file header rather than the file name (https://github.com/WordPress/gutenberg/pull/81737) - Revise block direct dragging to fix adjacent issues (https://github.com/WordPress/gutenberg/pull/72983) - Submenu: Add shadow support (https://github.com/WordPress/gutenberg/pull/83185) - Disable caching when publishing built assets (https://github.com/WordPress/gutenberg/pull/79835) - Tabs: Add border support (https://github.com/WordPress/gutenberg/pull/83361) - Image: Restore alt text and caption when undoing a media editor save (https://github.com/WordPress/gutenberg/pull/82829) - Accordion: Add link, heading, and button colour support (https://github.com/WordPress/gutenberg/pull/83373) - Navigation Overlay Close: Add border support (https://github.com/WordPress/gutenberg/pull/83362) - Tab Panel: Hide the shadow on closed panels (https://github.com/WordPress/gutenberg/pull/83369) - Preformatted: Add link colour support (https://github.com/WordPress/gutenberg/pull/83386) - Audio: Add link colour support (https://github.com/WordPress/gutenberg/pull/83375) - No Results: Add heading and button colour support (https://github.com/WordPress/gutenberg/pull/83382) - Comment Content: Add heading and button colour support (https://github.com/WordPress/gutenberg/pull/83376) - Tab Panel: Add border support (https://github.com/WordPress/gutenberg/pull/83363) - Comments: Add button colour support (https://github.com/WordPress/gutenberg/pull/83378) - Accordion Item: Add link, heading, and button colour support (https://github.com/WordPress/gutenberg/pull/83371) - Details: Add heading and button colour support (https://github.com/WordPress/gutenberg/pull/83381) - Media & Text: Add button colour support (https://github.com/WordPress/gutenberg/pull/83380) - Post Comments Form: Add button colour support (https://github.com/WordPress/gutenberg/pull/83377) - Tab Panels: Add button colour support (https://github.com/WordPress/gutenberg/pull/83388) - Post Content: Add button colour support (https://github.com/WordPress/gutenberg/pull/83379) - Components: Stop rendering a hidden drag preview and a media query per draggable (https://github.com/WordPress/gutenberg/pull/83423) - Post Template: Add heading and button colour support (https://github.com/WordPress/gutenberg/pull/83384) - Table of Contents: Add text align support (https://github.com/WordPress/gutenberg/pull/83430) - Group: Add text columns support (https://github.com/WordPress/gutenberg/pull/83425) - Tabs: Add typography support (https://github.com/WordPress/gutenberg/pull/83431) - Fields: Resolve the MediaEdit picker through the editor.MediaUpload filter (https://github.com/WordPress/gutenberg/pull/82678) - Tab Panel: Add link, heading, and button colour support (https://github.com/WordPress/gutenberg/pull/83389) - Global Styles: Rank block search results by title match (https://github.com/WordPress/gutenberg/pull/83435) - Post Author Biography: Add text columns support (https://github.com/WordPress/gutenberg/pull/83424) - Block Editor: Avoid a store subscription per inserter item (https://github.com/WordPress/gutenberg/pull/83434) - Home Link: Add border support (https://github.com/WordPress/gutenberg/pull/83360) - Tab Panels: Add typography support (https://github.com/WordPress/gutenberg/pull/83428) - Tab Panel: Add typography support (https://github.com/WordPress/gutenberg/pull/83426) - Storybook: Drop CustomSelectControlV2 stories and the unused WIP tag (https://github.com/WordPress/gutenberg/pull/83349) - Docs: clarify DEWP asset file naming rule (https://github.com/WordPress/gutenberg/pull/80620) - Components: Deprecate ZStack (https://github.com/WordPress/gutenberg/pull/83344) - Media Utils: Stabilize `unstableFeaturedImageFlow` as `featuredImageFlow` (https://github.com/WordPress/gutenberg/pull/83439) - Accordion Panel: Add link, heading, and button colour support (https://github.com/WordPress/gutenberg/pull/83374) - Terms List: Add text columns support (https://github.com/WordPress/gutenberg/pull/83432) - Enable setting position within viewport states (https://github.com/WordPress/gutenberg/pull/83094) - Term Count: Add text align support (https://github.com/WordPress/gutenberg/pull/83429) - Dependency Extraction Webpack Plugin: Always pretty-print PHP asset files (https://github.com/WordPress/gutenberg/pull/79650) - Block Editor: Drop the O(n) tie-break in orderBy (https://github.com/WordPress/gutenberg/pull/83443) - Cover Block: Add a Media section to the block inspector panel (https://github.com/WordPress/gutenberg/pull/82751) - Admin bar: backport removal of site icon background from 7.1.1 (https://github.com/WordPress/gutenberg/pull/83433) - Tests: Update Testing Library DOM to 10.4.2 (https://github.com/WordPress/gutenberg/pull/83279) - Tabs: Add link, heading, and button colour support (https://github.com/WordPress/gutenberg/pull/83390) - Icons: Add a core-admin collection for the admin interface (https://github.com/WordPress/gutenberg/pull/83261) - Post Content: Add text align support (https://github.com/WordPress/gutenberg/pull/83427) - Components: Give control labels an explicit foreground color (https://github.com/WordPress/gutenberg/pull/83318) - Radio: Expand hit target without changing visual size (https://github.com/WordPress/gutenberg/pull/83275) - Tests: Isolate deprecation warnings between cases (https://github.com/WordPress/gutenberg/pull/83097) - Block Toolbar: Fix parent selector inserter for locked blocks (https://github.com/WordPress/gutenberg/pull/83444) - Icon block: Don't render icons from non-public collections on the frontend (https://github.com/WordPress/gutenberg/pull/82774) - Hide alignment control when nothing available. (https://github.com/WordPress/gutenberg/pull/83265) - Fields: Use the post type labels in the featured image field and drop `mediaUploadProps` (https://github.com/WordPress/gutenberg/pull/83445) - Icons: Rebalance a few, add other new icons. (https://github.com/WordPress/gutenberg/pull/83338) - Docs: Replace retired reduce-motion mixin in animation guidelines (https://github.com/WordPress/gutenberg/pull/83335) - Block Editor: Update block visibility badges to use from @wordpress/ui package (https://github.com/WordPress/gutenberg/pull/82670) - PHP-only blocks: Detect enums in array attributes (https://github.com/WordPress/gutenberg/pull/83394) - Data: Defer async-mode useSelect notification to idle time (https://github.com/WordPress/gutenberg/pull/82821) Developed in https://github.com/WordPress/wordpress-develop/pull/14045. Props wildworks. Fixes #66254. git-svn-id: https://develop.svn.wordpress.org/trunk@64223 602fd350-edb4-49c9-b593-d223f7449a82
This updates the pinned commit hash of the Gutenberg repository from `5715a61334c4d29f21b67cf34b46061dc1b62502` to `954fe7f9e04631c41aec4552acd627a7203a2aad` (version 24.1.0). A full list of changes included in this commit can be found on GitHub: https://github.com/WordPress/gutenberg/compare/50ad79ef7ebc5f1d2a75def068887e33a15f2634...954fe7f9e04631c41aec4552acd627a7203a2aad. - Tabs: remove core's duplicate render_block_context filter (https://github.com/WordPress/gutenberg/pull/82610) - Automated Testing: Fix unit test compatibility with Node.js v26 (https://github.com/WordPress/gutenberg/pull/82618) - Test: Drop the jest-dom Vitest entry point from test files (https://github.com/WordPress/gutenberg/pull/82606) - Packages: Replace stale jest types with the Vitest test environment (https://github.com/WordPress/gutenberg/pull/82605) - Editor: Store the finalize response as the attachment record (https://github.com/WordPress/gutenberg/pull/81947) - Update Style Engine block supports documentation (https://github.com/WordPress/gutenberg/pull/82585) - Fix the high-severity sharp audit failure in AI development tests (https://github.com/WordPress/gutenberg/pull/82627) - Bump vitest from 4.1.10 to 4.1.11 (https://github.com/WordPress/gutenberg/pull/82629) - Editor: Render change diffs in the post title in revisions (https://github.com/WordPress/gutenberg/pull/82586) - Editor: Derive post-only block list layout from the assigned template (https://github.com/WordPress/gutenberg/pull/82599) - Gallery: Shorten "Use images attached to the post" button, add description (https://github.com/WordPress/gutenberg/pull/82617) - Theme: Enforce active fill contrast (https://github.com/WordPress/gutenberg/pull/82542) - UI: Reset completed calendar ranges by default (https://github.com/WordPress/gutenberg/pull/82612) - Video block: switch to UI Badge (https://github.com/WordPress/gutenberg/pull/82441) - DataViews: Remove obsolete Node 20 timezone test gate (https://github.com/WordPress/gutenberg/pull/82644) - Disabled: keep the consumer className when isDisabled is false (https://github.com/WordPress/gutenberg/pull/82648) - Autocompleters: Consider email address context in user mention (https://github.com/WordPress/gutenberg/pull/47249) - Searchable selects: Hide creatable footer when it is filtered out (https://github.com/WordPress/gutenberg/pull/82566) - Popover storybook: add infotip with link example (https://github.com/WordPress/gutenberg/pull/82653) - Block editor, Components: Stop relying on Disabled class name (https://github.com/WordPress/gutenberg/pull/82651) - FormTokenField: wrap to the last suggestion on ArrowUp with nothing selected (https://github.com/WordPress/gutenberg/pull/82646) - Components: Match the @wordpress/ui disabled styles in form controls (https://github.com/WordPress/gutenberg/pull/82454) - Framework: Update @types/node to v24 (https://github.com/WordPress/gutenberg/pull/82616) - Bump vite from 8.2.1 to 8.2.2 (https://github.com/WordPress/gutenberg/pull/82668) - Site editor v2: Use the canonical fields in the templates list (https://github.com/WordPress/gutenberg/pull/82666) - api-fetch: Resolve to null for a 200 response with an empty body (https://github.com/WordPress/gutenberg/pull/79325) - Site editor v2: Use the canonical wp_block fields in the patterns list (https://github.com/WordPress/gutenberg/pull/82672) - Theme: Remove chroma capacity cache (https://github.com/WordPress/gutenberg/pull/82591) - Remove the content-only inspector fields (block fields) experiment (https://github.com/WordPress/gutenberg/pull/82531) - Site editor v2: templates take view config from endpoint (https://github.com/WordPress/gutenberg/pull/82456) - Post URL: translate the copy permalink button label (https://github.com/WordPress/gutenberg/pull/82642) - UI: Test Calendar raw-offset timezones (https://github.com/WordPress/gutenberg/pull/82658) - DOM: Exclude visibility-hidden elements from focusable results (https://github.com/WordPress/gutenberg/pull/82574) - Test: Update SWC dependencies (https://github.com/WordPress/gutenberg/pull/82660) - Theme, Widget dashboard: Declare the @storybook/addon-docs dependency (https://github.com/WordPress/gutenberg/pull/82676) - Update Playwright to 1.63.0 (https://github.com/WordPress/gutenberg/pull/82654) - Site editor v2: patterns take view config from endpoint (https://github.com/WordPress/gutenberg/pull/82458) - BlockPreview: Assert preview contents are inert (https://github.com/WordPress/gutenberg/pull/82682) - Theme: Add bin-specific tsconfig with nodenext module resolution (https://github.com/WordPress/gutenberg/pull/82622) - Block Editor: Remove the dead Write/Design editor tool plumbing (https://github.com/WordPress/gutenberg/pull/82677) - Create Block: Test package at supported Node.js versions (https://github.com/WordPress/gutenberg/pull/82657) - Update Actions and Octokit dependencies (https://github.com/WordPress/gutenberg/pull/82663) - Theme: Use Node.js native type-stripping for scripts (https://github.com/WordPress/gutenberg/pull/82680) - Build Scripts: Suggest --verbose when a type check fails (https://github.com/WordPress/gutenberg/pull/82604) - e2e-test-utils-playwright: Update Lighthouse and web-vitals (https://github.com/WordPress/gutenberg/pull/81916) - Test: Update Vitest to version 5 (https://github.com/WordPress/gutenberg/pull/82687) - Site editor v2: template parts take view config from endpoint (https://github.com/WordPress/gutenberg/pull/82457) - Theme: Reduce repeated color ramp search work (https://github.com/WordPress/gutenberg/pull/82545) - Media: Only blame the browser's codecs when HEIC really cannot be decoded (https://github.com/WordPress/gutenberg/pull/82265) - Site editor v2: Identity takes its form from the view config endpoint (https://github.com/WordPress/gutenberg/pull/82692) - Storybook: Include stories in docgen TypeScript project (https://github.com/WordPress/gutenberg/pull/82694) - Test: Root the Vitest browser project where its dependencies are declared (https://github.com/WordPress/gutenberg/pull/82699) - Build: Fix regular CSS injection in Vitest Browser Mode (https://github.com/WordPress/gutenberg/pull/82154) - Workflow: Replace cmdk with the @wordpress/ui Autocomplete primitive (https://github.com/WordPress/gutenberg/pull/82504) - Add textShadow typography support and UI (https://github.com/WordPress/gutenberg/pull/79584) - Block editor: migrate block-card Badge to UI Badge (https://github.com/WordPress/gutenberg/pull/82503) - Bump github/codeql-action/upload-sarif (https://github.com/WordPress/gutenberg/pull/82339) - Rich text: separate applying the selection from focusing the field (https://github.com/WordPress/gutenberg/pull/82581) - Bump svgo from 3.3.4 to 3.3.5 (https://github.com/WordPress/gutenberg/pull/82631) - Inner Blocks: Support legacy inherit-based layouts (https://github.com/WordPress/gutenberg/pull/82637) - Bump js-yaml from 3.15.1 to 3.15.2 (https://github.com/WordPress/gutenberg/pull/82628) - Bump colord from 2.9.3 to 2.9.4 (https://github.com/WordPress/gutenberg/pull/82625) - Bump @humanfs/node from 0.16.7 to 0.16.8 (https://github.com/WordPress/gutenberg/pull/82352) - Site Editor: Restore Global Styles access on the front page (https://github.com/WordPress/gutenberg/pull/82624) - Bump browserslist from 4.28.4 to 4.28.7 (https://github.com/WordPress/gutenberg/pull/82315) - Bump fast-uri from 3.1.5 to 3.1.7 (https://github.com/WordPress/gutenberg/pull/82351) - DataViews: Label clickable grid media by the item title when the title is hidden (https://github.com/WordPress/gutenberg/pull/82639) - Layout hooks: roll out usage of normalizeLegacyLayout to the block-editor layout hooks (https://github.com/WordPress/gutenberg/pull/82710) - Checkbox: Expand hit target without changing visual size (https://github.com/WordPress/gutenberg/pull/82597) - Components: Align CheckboxControl checkmark and disabled styles with UI (https://github.com/WordPress/gutenberg/pull/82555) - Improve Math Inline and Block UI (https://github.com/WordPress/gutenberg/pull/77743) - Widgets: carry declarative `attributes` through the widget pipeline (https://github.com/WordPress/gutenberg/pull/82485) - Editor: Coerce `multiple` to a boolean in the media modal wrapper (https://github.com/WordPress/gutenberg/pull/82715) - Packages: Backport the September 10 npm release metadata to trunk (https://github.com/WordPress/gutenberg/pull/82709) - Update lerna to 10 and markdownlint-cli to 0.49.1 (https://github.com/WordPress/gutenberg/pull/81917) - Navigation: don't force submenus open inside a custom overlay (https://github.com/WordPress/gutenberg/pull/82596) - TextareaAutosize: Replace with native textareas and `field-sizing` (https://github.com/WordPress/gutenberg/pull/64208) - Fields: Show a message in MediaEdit when the user can't upload media (https://github.com/WordPress/gutenberg/pull/82720) - Fix playlist track selector stability (https://github.com/WordPress/gutenberg/pull/81760) - Workflow: Remove deprecated word-wrapping (https://github.com/WordPress/gutenberg/pull/82562) - Post publish panel: replace deprecated word-break with overflow-wrap (https://github.com/WordPress/gutenberg/pull/82495) - CI: Run the required trunk changes check through the pr-baseline action (https://github.com/WordPress/gutenberg/pull/82725) - Stroke icons: 3rd batch, 142 icon updates (https://github.com/WordPress/gutenberg/pull/82540) - AI development tests: Use repository Node version (https://github.com/WordPress/gutenberg/pull/82662) - Components: Clean up legacy focus/button overrides in Snackbar and Notice (https://github.com/WordPress/gutenberg/pull/82640) - Command Palette: Only add the admin bar button when Core does not provide it (https://github.com/WordPress/gutenberg/pull/82733) - Release: Verify SVN deployment after publication (https://github.com/WordPress/gutenberg/pull/82513) - Test: Run rendered browser behavior in Vitest Browser Mode (https://github.com/WordPress/gutenberg/pull/80995) - DOM: Find focusable image map areas (https://github.com/WordPress/gutenberg/pull/82736) - Add backwards-compatible Y option to provider creator, do not use wp.sync directly in tests (https://github.com/WordPress/gutenberg/pull/82621) - Fields: replace word-break with `overflow-wrap: anywhere` on slug permalink (https://github.com/WordPress/gutenberg/pull/82693) - Env: Preserve complete lifecycle script error output (https://github.com/WordPress/gutenberg/pull/82735) - Remove deprecated word-wrapping Stylelint suppressions (https://github.com/WordPress/gutenberg/pull/82426) - Test: Stabilize Menu iframe listener lifecycle assertions (https://github.com/WordPress/gutenberg/pull/82575) - Media: Stop injecting crossorigin attributes under Document-Isolation-Policy (https://github.com/WordPress/gutenberg/pull/82614) - Global Styles: Retain responsive styles in block style variation partials (https://github.com/WordPress/gutenberg/pull/82403) - Editor: Add a fixedRenderingMode prop for contexts with one mode (https://github.com/WordPress/gutenberg/pull/82711) - Site Editor v2: Show the template on the routes that show the site (https://github.com/WordPress/gutenberg/pull/82712) - Fix: Navigation: block appender button is 26×24 instead of square (https://github.com/WordPress/gutenberg/pull/82718) - Add missing listitem role to ConnectorItem. (https://github.com/WordPress/gutenberg/pull/82664) - Block alignment: List unavailable wide and full alignments instead of hiding them (https://github.com/WordPress/gutenberg/pull/82600) - Test: Make browser tests independent of execution order (https://github.com/WordPress/gutenberg/pull/82743) - Project Management: Exclude private APIs config from CODEOWNERS (https://github.com/WordPress/gutenberg/pull/82750) - Unit Tests: Resolve @ariakit/utils through its dependents (https://github.com/WordPress/gutenberg/pull/82756) - Interface: Convert the package to TypeScript (https://github.com/WordPress/gutenberg/pull/82753) - Grid: Migrate Emotion styles to SCSS Modules (https://github.com/WordPress/gutenberg/pull/82571) - Test: Finish repository Vitest migration and expand Browser Mode coverage (https://github.com/WordPress/gutenberg/pull/82742) - Plugin: Bump minimum required WordPress version to 7.0 (https://github.com/WordPress/gutenberg/pull/82404) - Circular Option Picker: Show focus with button's outline ring (https://github.com/WordPress/gutenberg/pull/82521) - Interface: Fix the ActionItem click handler and selector types (https://github.com/WordPress/gutenberg/pull/82758) - Editor: Remove pass-through more menu Slot wrappers (https://github.com/WordPress/gutenberg/pull/82759) - Upgrade React 19 to 19.3.0 (https://github.com/WordPress/gutenberg/pull/82760) - Edit Post: Fix meta boxes unreachable in Code Editor split view (https://github.com/WordPress/gutenberg/pull/78644) - Docs: Add blank line between `@since` and `@param`/`@return` in block parser (https://github.com/WordPress/gutenberg/pull/82690) - UI: Add statusContent to searchable selects (https://github.com/WordPress/gutenberg/pull/82592) - UI: Add CheckboxGroup form primitive (https://github.com/WordPress/gutenberg/pull/82556) - Notice: add custom icon Storybook example (https://github.com/WordPress/gutenberg/pull/82762) - Test: Remove obsolete internal test setup and transforms (https://github.com/WordPress/gutenberg/pull/82761) - Code Modernization: Use null coalescing operator in `WP_Block_Parser` methods (https://github.com/WordPress/gutenberg/pull/82763) - Global Styles UI: Use UI Menu (https://github.com/WordPress/gutenberg/pull/81921) - Icons: Allow icons to ship to WordPress Core without exposing them in the Icon block (https://github.com/WordPress/gutenberg/pull/82634) - Fix doubly-zipped plugin artifacts in GitHub Actions (https://github.com/WordPress/gutenberg/pull/76857) - Icons: Ship the admin bar and admin menu icons to WordPress Core (https://github.com/WordPress/gutenberg/pull/79451) - Autocomplete: Show focus with design system's focus ring (https://github.com/WordPress/gutenberg/pull/82766) - Keycodes: Add a shared keyboard shortcut representation helper (https://github.com/WordPress/gutenberg/pull/82632) - CI: Scope the required trunk changes refresh to what a move can invalidate (https://github.com/WordPress/gutenberg/pull/82767) - Editor: Honor post types in `post-thumbnails` theme support when registering the featured image field (https://github.com/WordPress/gutenberg/pull/82773) - Docs: Clarify parent behavior during block registration (https://github.com/WordPress/gutenberg/pull/78967) - Cover: Prevent content cutoff when aspect ratio is set in Safari (https://github.com/WordPress/gutenberg/pull/70152) - Docs: Clarify dependency extraction asset filename (https://github.com/WordPress/gutenberg/pull/78968) - Re-enable editableRoot for multi-selection on mobile web (https://github.com/WordPress/gutenberg/pull/81542) - Post Taxonomies: Replace FormTokenField in the flat term selector (https://github.com/WordPress/gutenberg/pull/80967) - E2E: Reset preferences in the post editor preload spec (https://github.com/WordPress/gutenberg/pull/82818) - Fonts: Remove the deprecated Fonts API BC layer and leftovers (https://github.com/WordPress/gutenberg/pull/82813) - Commands: Avoid re-registering command loaders on every render (https://github.com/WordPress/gutenberg/pull/82819) - Data: Remove the unused AsyncModeConsumer export (https://github.com/WordPress/gutenberg/pull/82822) - Tooling: Extract shared TypeScript configs into a `@wordpress/config-tools` workspace (https://github.com/WordPress/gutenberg/pull/82334) - Style states: Improve block inspector UI (https://github.com/WordPress/gutenberg/pull/82649) - Tooling: Add @wordpress/monorepo-tools to root devDependencies (https://github.com/WordPress/gutenberg/pull/82824) - DataViews: replace `word-break` with `overflow-wrap: anywhere` on `DataForm` panel field control (https://github.com/WordPress/gutenberg/pull/82776) - CI: Stop actions/setup-node from invoking the bundled npm (https://github.com/WordPress/gutenberg/pull/82775) - CI: Keep the bundled npm when devEngines is absent (https://github.com/WordPress/gutenberg/pull/82823) - Icons: Move plugin icon registration out of the 7.1 compat directory (https://github.com/WordPress/gutenberg/pull/82832) - Image block: stop interpreting `$`/`\` in img attributes as regex backreferences (https://github.com/WordPress/gutenberg/pull/79369) - CI: Disable setup-node npm caching in the Create Block packed package job (https://github.com/WordPress/gutenberg/pull/82833) - Build: Deduplicate npm dependencies (https://github.com/WordPress/gutenberg/pull/82698) - PaletteEdit: Use @wordpress/ui Menu for palette options (https://github.com/WordPress/gutenberg/pull/82768) - Editor: Use UI Menu for post actions (https://github.com/WordPress/gutenberg/pull/81922) - Block Editor: Use UI Menu for bindings and variation transforms (https://github.com/WordPress/gutenberg/pull/81925) - Select.Positioner: Revert to Base UI alignItemWithTrigger default (https://github.com/WordPress/gutenberg/pull/82043) - API Fetch: Document that requests are meant for the current site's REST API. (https://github.com/WordPress/gutenberg/pull/82373) - UI: Add Select.ItemLabel and ItemDescription (https://github.com/WordPress/gutenberg/pull/82369) - Widgets: Fix the Welcome Guide menu item triggering a preference speak message (https://github.com/WordPress/gutenberg/pull/82395) - UI: Move interaction tests to Browser Mode (https://github.com/WordPress/gutenberg/pull/82838) - Packages: Update Ariakit to 0.4.39 (https://github.com/WordPress/gutenberg/pull/82831) - Block Editor: replace deprecated word-wrap with overflow-wrap in responsive block control (https://github.com/WordPress/gutenberg/pull/82855) - Button: replace deprecated `word-break` with `overflow-wrap: anywhere` (https://github.com/WordPress/gutenberg/pull/82854) - UI: Update Base UI to 1.8.0 (https://github.com/WordPress/gutenberg/pull/82835) - Docs: Document published dependency constraints (https://github.com/WordPress/gutenberg/pull/80631) - Docs: Document page stability convention (https://github.com/WordPress/gutenberg/pull/80632) - Cover Block: Fix resizable handle visibility on mobile when sidebar is opened (https://github.com/WordPress/gutenberg/pull/80355) - Block Inspector: Stabilize display of inherited global styles and keep UI changes behind experiment (https://github.com/WordPress/gutenberg/pull/82840) - Data: optimize store listeners and their execution (https://github.com/WordPress/gutenberg/pull/82842) - Core Data: Fix return types on generated save/delete entity actions (https://github.com/WordPress/gutenberg/pull/77162) - Notes: Use UI Menu for note actions (https://github.com/WordPress/gutenberg/pull/81930) - Widget Dashboard: Use UI Menu for dashboard controls (https://github.com/WordPress/gutenberg/pull/81929) - Media & Text Block: Add a Media section to the block inspector panel (https://github.com/WordPress/gutenberg/pull/82593) - Fields: Hide the date, author and password fields when the user can't publish or reassign (https://github.com/WordPress/gutenberg/pull/82844) - Docs: Guard against ESLint bulk suppression abuse (https://github.com/WordPress/gutenberg/pull/82944) - BorderBoxControl: Restore the split borders layout (https://github.com/WordPress/gutenberg/pull/82939) - Icons: Restore the dimmed box on the side and corner icons (https://github.com/WordPress/gutenberg/pull/82940) - Fields: Show the template field to users who can't create templates (https://github.com/WordPress/gutenberg/pull/82857) - Calendar Block: Use the args array signature of get_calendar() (https://github.com/WordPress/gutenberg/pull/82943) - DataViews README: clarify readOnly vs isDisabled (https://github.com/WordPress/gutenberg/pull/82956) - Template panel: Hide edit and create actions from users who can't create templates (https://github.com/WordPress/gutenberg/pull/82858) - Fix stray fill rule in SelectControl. (https://github.com/WordPress/gutenberg/pull/82949) - Stroke icons: final batch, 96 icons (https://github.com/WordPress/gutenberg/pull/82754) - Fix Stylelint config and coding standards for font weight numeric values and disallow relative weights (https://github.com/WordPress/gutenberg/pull/82778) - Widget Dashboard: Use UI Spinner and remove Components dependency (https://github.com/WordPress/gutenberg/pull/82837) - Fix: Inherit link color for image block anchor elements (https://github.com/WordPress/gutenberg/pull/79401) - Data: Fix the latest changelog entry and structure (https://github.com/WordPress/gutenberg/pull/82959) - Menu: Fix vertical alignment across item combinations (https://github.com/WordPress/gutenberg/pull/82847) - Docs: Fix the dead anchor in the block development environment list (https://github.com/WordPress/gutenberg/pull/82878) - Collaborators Presence: Update to use design system's focus ring in header avatar stack (https://github.com/WordPress/gutenberg/pull/82941) - UI: Fix highlighted item indicator in forced-colors mode (https://github.com/WordPress/gutenberg/pull/82772) - Docs: Fix the broken Query block link in the Interactivity API guide (https://github.com/WordPress/gutenberg/pull/82862) - Fix: Widgets customizer Undo and Redo buttons are disabled and the document tools focus style is not visible (https://github.com/WordPress/gutenberg/pull/82412) - DataForm: Hide the edit button of disabled fields in the panel layout (https://github.com/WordPress/gutenberg/pull/82957) - BoxControl: Migrate the side indicator to an SCSS module (https://github.com/WordPress/gutenberg/pull/82570) - Distraction Free: raise top bar above notices when revealed by hover or keyboard focus (https://github.com/WordPress/gutenberg/pull/80349) - Extensible Site Editor: Use the view config form for Quick Edit (https://github.com/WordPress/gutenberg/pull/82962) - Fix: Query Pagination block ignores the parent block gap in the editor (https://github.com/WordPress/gutenberg/pull/82399) - Customize Widgets: Await asynchronous toolbar updates in history test (https://github.com/WordPress/gutenberg/pull/82963) - Elevation: Migrate from Emotion to SCSS modules (https://github.com/WordPress/gutenberg/pull/82572) - Enable viewport state values for Gallery aspect ratio (https://github.com/WordPress/gutenberg/pull/82233) - Scripts: Switch unit tests to Vitest and deprecate Jest tooling (https://github.com/WordPress/gutenberg/pull/82843) - Speed up collaboration e2e by shortening poll interval (https://github.com/WordPress/gutenberg/pull/78746) - UI: replace deprecated word-wrap with overflow-wrap in `VisuallyHidden` (https://github.com/WordPress/gutenberg/pull/82970) - Block Library: replace deprecated word-wrap with overflow-wrap in screen-reader-text (https://github.com/WordPress/gutenberg/pull/82972) - CustomGradientPicker: Show the control point's focus ring with the design system's outline (https://github.com/WordPress/gutenberg/pull/82834) - Fix: Default block gap is ignored in the editor for themes without block gap support (https://github.com/WordPress/gutenberg/pull/82401) - Remove the zero width space hack from getRectangleFromRange (https://github.com/WordPress/gutenberg/pull/82977) - Block Toolbar: Show the parent selector for blocks inside patterns (https://github.com/WordPress/gutenberg/pull/82912) - Keep the iOS keyboard capitalized after Return inside the editing host (https://github.com/WordPress/gutenberg/pull/82911) - Docs: Say how long a notice can be, in the copy guide (https://github.com/WordPress/gutenberg/pull/81195) - Widget Primitives: add `HostLink` over the `links` capability (https://github.com/WordPress/gutenberg/pull/82952) - Pattern block: Run autoembed() before do_blocks() (https://github.com/WordPress/gutenberg/pull/82860) - Widget Dashboard: default tile padding to `padding-lg` (https://github.com/WordPress/gutenberg/pull/82961) - Upgrade wp-prettier to 3.9.6 (https://github.com/WordPress/gutenberg/pull/82731) - Fix prettier lint issues after prettier upgrade (https://github.com/WordPress/gutenberg/pull/83015) - Widget Dashboard: show a clipped widget title in the header infotip (https://github.com/WordPress/gutenberg/pull/82226) - Post Title: remove the inline-block from the title link (https://github.com/WordPress/gutenberg/pull/80231) - Collaborators Presence & Document Bar: Clean up styles by removing overrides (https://github.com/WordPress/gutenberg/pull/83013) - Docs: document the no-hard-wrap rule for Markdown (https://github.com/WordPress/gutenberg/pull/83017) - Icons: Allow `rect` and `circle` in the registry sanitizer (https://github.com/WordPress/gutenberg/pull/82846) - Upgrade wp-prettier to 3.9.6 final (https://github.com/WordPress/gutenberg/pull/83026) - Fix: Navigation submenu detection leaks between Navigation blocks. (https://github.com/WordPress/gutenberg/pull/82366) - Use `WCSelectControl` alias for legacy SelectControl imports (https://github.com/WordPress/gutenberg/pull/83027) - Upload media: guard processItem against re-entrant dispatch (https://github.com/WordPress/gutenberg/pull/83031) - Math: Source the LaTeX from the MathML annotation (https://github.com/WordPress/gutenberg/pull/82987) - Remove the interactivity-router script module data shim (https://github.com/WordPress/gutenberg/pull/83011) - Data: Add `getResolutionArgs` to share a resolution across selector calls (https://github.com/WordPress/gutenberg/pull/82638) - Code: Add shadow support (https://github.com/WordPress/gutenberg/pull/83014) - Footnotes: Add shadow support (https://github.com/WordPress/gutenberg/pull/83044) - Excerpt: Add shadow support (https://github.com/WordPress/gutenberg/pull/83018) - Content: Add shadow support (https://github.com/WordPress/gutenberg/pull/83016) - Icons: Test the registry sanitizer with a data provider (https://github.com/WordPress/gutenberg/pull/83024) - Heading: Add shadow support (https://github.com/WordPress/gutenberg/pull/83045) - Details: Add shadow support (https://github.com/WordPress/gutenberg/pull/83021) - Post template panel: Remove the dead template read capability check (https://github.com/WordPress/gutenberg/pull/82861) - Dependency Extraction Webpack Plugin: Add global-styles-engine and global-styles-ui as bundled packages (https://github.com/WordPress/gutenberg/pull/82589) - Verse: Add shadow support (https://github.com/WordPress/gutenberg/pull/83057) - Docs: Data: Fix typo in code example for __unstableNormalizeArgs (https://github.com/WordPress/gutenberg/pull/83070) - Icons: Test that the registry sanitizer preserves every library icon (https://github.com/WordPress/gutenberg/pull/83008) - Stylelint: add `custom-property-pattern` to disallow `--_gcd-*` custom properties (https://github.com/WordPress/gutenberg/pull/83025) - Tooling: Add .mts and .cts support (https://github.com/WordPress/gutenberg/pull/83071) - Block Mover: Cleanup focus ring override (https://github.com/WordPress/gutenberg/pull/83068) - Tests: Remove obsolete internal Jest infrastructure (https://github.com/WordPress/gutenberg/pull/82975) - Move the unit-test-date.sh script to workspace, rewrite to JS (https://github.com/WordPress/gutenberg/pull/83066) - Gallery: Skip gap style generation for themes opting out of layout styles (https://github.com/WordPress/gutenberg/pull/81633) - Monorepo tools: Move the experimental API audit out of bin/ (https://github.com/WordPress/gutenberg/pull/83081) - Add category filtering to the start page options patterns modal (https://github.com/WordPress/gutenberg/pull/81396) - UI: Mark Select and SelectControl as recommended (https://github.com/WordPress/gutenberg/pull/83030) - Updated Changelog Entry (https://github.com/WordPress/gutenberg/pull/83037) - Rich text: fix mobile selection hair pin grab at edge of block (https://github.com/WordPress/gutenberg/pull/83041) - Link Control: Only tag pages as the front page or blog home (https://github.com/WordPress/gutenberg/pull/83082) - Tooling: Name the shared tsconfig presets `tsconfig.*.json` (https://github.com/WordPress/gutenberg/pull/83077) - Multi-line text of menu items is not aligned (https://github.com/WordPress/gutenberg/pull/70917) - Fix Connectors and Fonts pages background color and contrast. (https://github.com/WordPress/gutenberg/pull/82827) - Post Template: Add shadow support (https://github.com/WordPress/gutenberg/pull/83059) - Page List: Add shadow support (https://github.com/WordPress/gutenberg/pull/83056) - Playlist: Add shadow support (https://github.com/WordPress/gutenberg/pull/83055) - Math: Add shadow support (https://github.com/WordPress/gutenberg/pull/83052) - Latest Posts: Add shadow support (https://github.com/WordPress/gutenberg/pull/83051) - Latest Comments: Add shadow support (https://github.com/WordPress/gutenberg/pull/83047) - Home Link: Add shadow support (https://github.com/WordPress/gutenberg/pull/83046) - Login/out: Add shadow support (https://github.com/WordPress/gutenberg/pull/83050) - Excerpt field: Render nothing when the excerpt is empty (https://github.com/WordPress/gutenberg/pull/82423) - No Results: Add shadow support (https://github.com/WordPress/gutenberg/pull/83054) - ESLint: Allow string literal IDs in tests and Storybook (https://github.com/WordPress/gutenberg/pull/83090) - UI: Add RadioGroup form primitive (https://github.com/WordPress/gutenberg/pull/83038) - Components: Deprecate Divider (https://github.com/WordPress/gutenberg/pull/83040) - Data: Stabilize `__unstableNormalizeArgs` as `normalizeArgs` (https://github.com/WordPress/gutenberg/pull/83067) - Stylelint: add `--_wp-*` to `custom-property-pattern` rule (https://github.com/WordPress/gutenberg/pull/83075) - Build: Declare `@wordpress/theme` as a dev dependency of `@wordpress/build` (https://github.com/WordPress/gutenberg/pull/83129) - UI: Tighten Fieldset legend and description gap (https://github.com/WordPress/gutenberg/pull/82729) - Core Data: Fix overwriting scored matches for duplicate ids (https://github.com/WordPress/gutenberg/pull/83113) - Block Editor: Update LinkControl and LinkPicker to use `Badge` from `@wordpress/ui` (https://github.com/WordPress/gutenberg/pull/82684) - Storybook: Remove obsolete manifest extractor render workaround (https://github.com/WordPress/gutenberg/pull/83124) - UI: Add Switch form primitive (https://github.com/WordPress/gutenberg/pull/83039) - Automated Testing: Document and validate expected changelog structure (https://github.com/WordPress/gutenberg/pull/83043) - ESLint: Disallow Storybook build-style side-effect imports (https://github.com/WordPress/gutenberg/pull/82960) - Global Styles: replace experimental ZStack in the palette preview (https://github.com/WordPress/gutenberg/pull/83060) - UI: Place Fieldset description after the legend in stories (https://github.com/WordPress/gutenberg/pull/83144) - Use WCCheckboxControl alias for legacy CheckboxControl imports. (https://github.com/WordPress/gutenberg/pull/83145) - The image dimensions have been removed from the name. (https://github.com/WordPress/gutenberg/pull/82828) - Fix the high-severity adm-zip audit failure in AI development tests (https://github.com/WordPress/gutenberg/pull/83170) - Bump adm-zip from 0.6.0 to 0.6.1 (https://github.com/WordPress/gutenberg/pull/83167) - Post Navigation Link: Add shadow support (https://github.com/WordPress/gutenberg/pull/83058) - Bump csv-parse from 7.0.1 to 7.0.2 in /test/ai-development (https://github.com/WordPress/gutenberg/pull/82619) - Video block: Remove GIF variation handling (https://github.com/WordPress/gutenberg/pull/82696) - PostLastRevisionPanel: Fix doubled focus ring on the revisions button (https://github.com/WordPress/gutenberg/pull/82955) - Navigation Overlay Close: Add shadow support (https://github.com/WordPress/gutenberg/pull/83053) - Fix typos in comments and test descriptions (https://github.com/WordPress/gutenberg/pull/83172) - Block Editor: Remove the deprecated `__experimentalGroup` prop (https://github.com/WordPress/gutenberg/pull/83171) - Site Tagline: Add fit text support (https://github.com/WordPress/gutenberg/pull/83034) - Block Editor: Highlight the block when its content list item is hovered (https://github.com/WordPress/gutenberg/pull/83049) - Navigation: Fix always-open submenus jumping in width on hover (https://github.com/WordPress/gutenberg/pull/83142) - Post Navigation Link: Add border and spacing support (https://github.com/WordPress/gutenberg/pull/83122) - Preformatted: Add shadow support (https://github.com/WordPress/gutenberg/pull/83174) - Pullquote: Add shadow support (https://github.com/WordPress/gutenberg/pull/83177) - Quote: Add shadow support (https://github.com/WordPress/gutenberg/pull/83178) - Site Title: Add shadow support (https://github.com/WordPress/gutenberg/pull/83182) - Post Title: Add shadow support (https://github.com/WordPress/gutenberg/pull/83195) - Video: Add shadow support (https://github.com/WordPress/gutenberg/pull/83196) - Read More: Add shadow support (https://github.com/WordPress/gutenberg/pull/83180) - Post Terms: Add shadow support (https://github.com/WordPress/gutenberg/pull/83175) - Query Total: Add shadow support (https://github.com/WordPress/gutenberg/pull/83176) - RSS: Add shadow support (https://github.com/WordPress/gutenberg/pull/83179) - Tab Panel: Add shadow support (https://github.com/WordPress/gutenberg/pull/83183) - Post Time to Read: Add shadow support (https://github.com/WordPress/gutenberg/pull/83194) - Tab Panels: Add shadow support (https://github.com/WordPress/gutenberg/pull/83184) - UI: Document that public --wp-ui-* CSS custom properties are frozen. (https://github.com/WordPress/gutenberg/pull/83147) - Tag Cloud: Add shadow support (https://github.com/WordPress/gutenberg/pull/83188) - Table of Contents: Add shadow support (https://github.com/WordPress/gutenberg/pull/83187) - Tabs: Add shadow support (https://github.com/WordPress/gutenberg/pull/83186) - Term Description: Add shadow support (https://github.com/WordPress/gutenberg/pull/83190) - Term Count: Add shadow support (https://github.com/WordPress/gutenberg/pull/83189) - Site Tagline: Add shadow support (https://github.com/WordPress/gutenberg/pull/83181) - Terms List: Add shadow support (https://github.com/WordPress/gutenberg/pull/83193) - Details: Add background image, size, and gradient support (https://github.com/WordPress/gutenberg/pull/83222) - Social Icons: Add background gradient support (https://github.com/WordPress/gutenberg/pull/83249) - Accordion Item: Add background gradient support (https://github.com/WordPress/gutenberg/pull/83197) - Post Author Name: Add background image, size, and gradient support (https://github.com/WordPress/gutenberg/pull/83200) - Code: Add background image, size, and gradient support (https://github.com/WordPress/gutenberg/pull/83204) - Comment Author Name: Add background gradient support (https://github.com/WordPress/gutenberg/pull/83207) - Comment Content: Add background gradient support (https://github.com/WordPress/gutenberg/pull/83208) - Comment Date: Add background gradient support (https://github.com/WordPress/gutenberg/pull/83209) - Term Template: Add shadow support (https://github.com/WordPress/gutenberg/pull/83192) - Footnotes: Add background image, size, and gradient support (https://github.com/WordPress/gutenberg/pull/83224) - Post Date: Add background gradient support (https://github.com/WordPress/gutenberg/pull/83218) - Comments Title: Add background gradient support (https://github.com/WordPress/gutenberg/pull/83217) - Gallery: Add background image, size, and gradient support (https://github.com/WordPress/gutenberg/pull/83225) - Heading: Add background image, size, and gradient support (https://github.com/WordPress/gutenberg/pull/83226) - Term Name: Add shadow support (https://github.com/WordPress/gutenberg/pull/83191) - Breadcrumbs: Add background gradient support (https://github.com/WordPress/gutenberg/pull/83202) - Comment Reply Link: Add background gradient support (https://github.com/WordPress/gutenberg/pull/83211) - File: Add background image, size, and gradient support (https://github.com/WordPress/gutenberg/pull/83223) - Post Author Biography: Add background gradient support (https://github.com/WordPress/gutenberg/pull/83199) - Next Page: Add background gradient support (https://github.com/WordPress/gutenberg/pull/83232) - Post Excerpt: Add background image, size, and gradient support (https://github.com/WordPress/gutenberg/pull/83221) - Previous Page: Add background gradient support (https://github.com/WordPress/gutenberg/pull/83240) - Accordion Panel: Add background image, size, and gradient support (https://github.com/WordPress/gutenberg/pull/83201) - Post Comments Count: Add background gradient support (https://github.com/WordPress/gutenberg/pull/83213) - RSS: Add background image, size, and gradient support (https://github.com/WordPress/gutenberg/pull/83244) - Columns: Add background image, size, and gradient support (https://github.com/WordPress/gutenberg/pull/83206) - Archives: Add background image, size, and gradient support (https://github.com/WordPress/gutenberg/pull/83198) - Latest Posts: Add background image, size, and gradient support (https://github.com/WordPress/gutenberg/pull/83228) - Preformatted: Add background image, size, and gradient support (https://github.com/WordPress/gutenberg/pull/83239) - Comments Previous Page: Add background gradient support (https://github.com/WordPress/gutenberg/pull/83220) - Read More: Add background image, size, and gradient support (https://github.com/WordPress/gutenberg/pull/83245) - Comments Pagination: Add background gradient support (https://github.com/WordPress/gutenberg/pull/83219) - Query Title: Add background gradient support (https://github.com/WordPress/gutenberg/pull/83242) - Post Title: Add background image, size, and gradient support (https://github.com/WordPress/gutenberg/pull/83260) - Tag Cloud: Add background and link colour support (https://github.com/WordPress/gutenberg/pull/83264) - Storybook: List every top-level folder in the sidebar order, design system first (https://github.com/WordPress/gutenberg/pull/82429) - Featured image field: support the `editor.PostFeaturedImage` filter in the post summary (https://github.com/WordPress/gutenberg/pull/83133) - Storybook: Fold Foundations, DataViews, Fields, Admin UI and Icons under Design System (https://github.com/WordPress/gutenberg/pull/82430) - Block Editor: replace denylisted layout components in the Duotone filter label (https://github.com/WordPress/gutenberg/pull/83061) - Storybook: Group Widget Primitives, Widget Dashboard and Grid under Widgets (https://github.com/WordPress/gutenberg/pull/82431) - Storybook: Group the editor UI under Editor (https://github.com/WordPress/gutenberg/pull/82432) - Components: Deprecate Elevation (https://github.com/WordPress/gutenberg/pull/83269) - Post Time to Read: Add background image, size, and gradient support (https://github.com/WordPress/gutenberg/pull/83258) - Buttons: Add background image, size, and gradient support (https://github.com/WordPress/gutenberg/pull/83203) - Storybook: Group component packages under Components (https://github.com/WordPress/gutenberg/pull/82433) - Terms List: Add background image, size, and gradient support (https://github.com/WordPress/gutenberg/pull/83257) - UI: Add SwitchControl component (https://github.com/WordPress/gutenberg/pull/83146) - Release tools: Move the plugin ZIP build out of bin/ (https://github.com/WordPress/gutenberg/pull/83087) - Storybook: Remove the legacy Tokens pages (https://github.com/WordPress/gutenberg/pull/82434) - Storybook: Show the component status in the sidebar as status-* tags (https://github.com/WordPress/gutenberg/pull/82435) - Storybook: Guard the set of top-level sidebar folders with a test (https://github.com/WordPress/gutenberg/pull/82436) - Storybook: Rewrite the introduction page as the front door of the design system (https://github.com/WordPress/gutenberg/pull/82437) - Workflows: Refine and complete the push and pull_request branch filters (https://github.com/WordPress/gutenberg/pull/82744) - Public API for supporting viewport states in custom controls (https://github.com/WordPress/gutenberg/pull/82741) - Fix: Term Name block skips the term name display filters. (https://github.com/WordPress/gutenberg/pull/82365) - Tag Cloud: Add background image, size, and gradient support (https://github.com/WordPress/gutenberg/pull/83259) - Comments Next Page: Add background gradient support (https://github.com/WordPress/gutenberg/pull/83215) - Comments Page Numbers: Add background gradient support (https://github.com/WordPress/gutenberg/pull/83216) - Pagination: Add background gradient support (https://github.com/WordPress/gutenberg/pull/83236) - Comment Edit Link: Add background gradient support (https://github.com/WordPress/gutenberg/pull/83210) - Page Numbers: Add background gradient support (https://github.com/WordPress/gutenberg/pull/83235) - Column: Add background image, size, and gradient support (https://github.com/WordPress/gutenberg/pull/83205) - Comments: Add background image, size, and gradient support (https://github.com/WordPress/gutenberg/pull/83212) - Post Comments Form: Add background image, size, and gradient support (https://github.com/WordPress/gutenberg/pull/83214) - Latest Comments: Add background image, size, and gradient support (https://github.com/WordPress/gutenberg/pull/83227) - Home Link: Add background image, size, and gradient support (https://github.com/WordPress/gutenberg/pull/83230) - Term Description: Add background image, size, and gradient support (https://github.com/WordPress/gutenberg/pull/83254) - Storybook: Load the media editor package styles in its stories (https://github.com/WordPress/gutenberg/pull/83303) - Site Tagline: Add background image, size, and gradient support (https://github.com/WordPress/gutenberg/pull/83246) - Media Editor: fix crop canvas handlers and rotation ruler in RTL (https://github.com/WordPress/gutenberg/pull/83304) - Site Title: Add background image, size, and gradient support (https://github.com/WordPress/gutenberg/pull/83247) - Query Total: Add background image, size, and gradient support (https://github.com/WordPress/gutenberg/pull/83243) - Tab Panels: Add background image, size, and gradient support (https://github.com/WordPress/gutenberg/pull/83250) - Term Template: Add background image, size, and gradient support (https://github.com/WordPress/gutenberg/pull/83256) - Term Count: Add background image, size, and gradient support (https://github.com/WordPress/gutenberg/pull/83253) - Math: Add background image, size, and gradient support (https://github.com/WordPress/gutenberg/pull/83231) - Tabs: Add background image, size, and gradient support (https://github.com/WordPress/gutenberg/pull/83252) - Table of Contents: Add background image, size, and gradient support (https://github.com/WordPress/gutenberg/pull/83251) - Tab Panel: Add background image, size, and gradient support (https://github.com/WordPress/gutenberg/pull/83248) - Term Name: Add background image, size, and gradient support (https://github.com/WordPress/gutenberg/pull/83255) - Page List: Add background image, size, and gradient support (https://github.com/WordPress/gutenberg/pull/83234) - Login/out: Add background image, size, and gradient support (https://github.com/WordPress/gutenberg/pull/83229) - No Results: Add background image, size, and gradient support (https://github.com/WordPress/gutenberg/pull/83233) - Post Template: Add background image, size, and gradient support (https://github.com/WordPress/gutenberg/pull/83237) - UI: Add RadioGroupControl (https://github.com/WordPress/gutenberg/pull/83143) - Post Terms: Add background image, size, and gradient support (https://github.com/WordPress/gutenberg/pull/83238) - Components: Deprecate Scrollable (https://github.com/WordPress/gutenberg/pull/83273) - Storybook: Place RadioGroup, Switch, and SwitchControl under @wordpress-ui (https://github.com/WordPress/gutenberg/pull/83314) - Block Editor: Show the in-between inserter on wrapped lines (https://github.com/WordPress/gutenberg/pull/83276) - Docs: Add missing `@since` tags to two functions (https://github.com/WordPress/gutenberg/pull/83116) - Upgrade eslint-plugin-jsdoc to latest version 64. (https://github.com/WordPress/gutenberg/pull/82727) - i18n: add context to breadcrumbs area label (https://github.com/WordPress/gutenberg/pull/78134) - Storybook: Omit the recommended checkmark from the sidebar (https://github.com/WordPress/gutenberg/pull/83309) - Fix: Social Icons: In-between inserter does not work (https://github.com/WordPress/gutenberg/pull/83327) - Storybook: Convert story-only stylesheets to CSS modules (https://github.com/WordPress/gutenberg/pull/83272) - Block Editor: replace experimental ZStack in overlapping color indicators (https://github.com/WordPress/gutenberg/pull/83062) - FocalPointPicker: Fix Sidebar Overflow Issue (https://github.com/WordPress/gutenberg/pull/68915) - Storybook: Reject non-module stylesheet imports (https://github.com/WordPress/gutenberg/pull/83313) - Components: Align CheckboxControl border, hover, and disabled colors with UI (https://github.com/WordPress/gutenberg/pull/83271) - Icons: Move the public property from icons to collections (https://github.com/WordPress/gutenberg/pull/83277) - ESLint Plugin: Check type-only imports for undeclared dependencies (https://github.com/WordPress/gutenberg/pull/83336) - TypeScript: Give each widget its own typecheck project (https://github.com/WordPress/gutenberg/pull/83328) - Components: Deprecate ResponsiveWrapper (https://github.com/WordPress/gutenberg/pull/83347) - Remove npm from package engines (https://github.com/WordPress/gutenberg/pull/83326) - Data: keep a pending listener when store not yet registered (https://github.com/WordPress/gutenberg/pull/83346) - Add Template: Show template descriptions in the template list (https://github.com/WordPress/gutenberg/pull/83064) - Block Editor: Consolidate search ranking into one shared module (https://github.com/WordPress/gutenberg/pull/83312) - DataViews: Let a picker compose its footer from the page select and its actions (https://github.com/WordPress/gutenberg/pull/83281) - Bump the github-actions group across 1 directory with 2 updates (https://github.com/WordPress/gutenberg/pull/83080) - Rich text: Show the format boundary when the canvas root has focus (https://github.com/WordPress/gutenberg/pull/83385) - Rich text: Select an inline image by clicking it, and show the edit UI of the object clicked (https://github.com/WordPress/gutenberg/pull/83370) - Global Styles: Switch the revisions screen to the DataViews pickerActivity layout (https://github.com/WordPress/gutenberg/pull/80856) - Try: Add left border to Notes panel. (https://github.com/WordPress/gutenberg/pull/83330) - Media: Detect HEIC uploads from the file header rather than the file name (https://github.com/WordPress/gutenberg/pull/81737) - Revise block direct dragging to fix adjacent issues (https://github.com/WordPress/gutenberg/pull/72983) - Submenu: Add shadow support (https://github.com/WordPress/gutenberg/pull/83185) - Disable caching when publishing built assets (https://github.com/WordPress/gutenberg/pull/79835) - Tabs: Add border support (https://github.com/WordPress/gutenberg/pull/83361) - Image: Restore alt text and caption when undoing a media editor save (https://github.com/WordPress/gutenberg/pull/82829) - Accordion: Add link, heading, and button colour support (https://github.com/WordPress/gutenberg/pull/83373) - Navigation Overlay Close: Add border support (https://github.com/WordPress/gutenberg/pull/83362) - Tab Panel: Hide the shadow on closed panels (https://github.com/WordPress/gutenberg/pull/83369) - Preformatted: Add link colour support (https://github.com/WordPress/gutenberg/pull/83386) - Audio: Add link colour support (https://github.com/WordPress/gutenberg/pull/83375) - No Results: Add heading and button colour support (https://github.com/WordPress/gutenberg/pull/83382) - Comment Content: Add heading and button colour support (https://github.com/WordPress/gutenberg/pull/83376) - Tab Panel: Add border support (https://github.com/WordPress/gutenberg/pull/83363) - Comments: Add button colour support (https://github.com/WordPress/gutenberg/pull/83378) - Accordion Item: Add link, heading, and button colour support (https://github.com/WordPress/gutenberg/pull/83371) - Details: Add heading and button colour support (https://github.com/WordPress/gutenberg/pull/83381) - Media & Text: Add button colour support (https://github.com/WordPress/gutenberg/pull/83380) - Post Comments Form: Add button colour support (https://github.com/WordPress/gutenberg/pull/83377) - Tab Panels: Add button colour support (https://github.com/WordPress/gutenberg/pull/83388) - Post Content: Add button colour support (https://github.com/WordPress/gutenberg/pull/83379) - Components: Stop rendering a hidden drag preview and a media query per draggable (https://github.com/WordPress/gutenberg/pull/83423) - Post Template: Add heading and button colour support (https://github.com/WordPress/gutenberg/pull/83384) - Table of Contents: Add text align support (https://github.com/WordPress/gutenberg/pull/83430) - Group: Add text columns support (https://github.com/WordPress/gutenberg/pull/83425) - Tabs: Add typography support (https://github.com/WordPress/gutenberg/pull/83431) - Fields: Resolve the MediaEdit picker through the editor.MediaUpload filter (https://github.com/WordPress/gutenberg/pull/82678) - Tab Panel: Add link, heading, and button colour support (https://github.com/WordPress/gutenberg/pull/83389) - Global Styles: Rank block search results by title match (https://github.com/WordPress/gutenberg/pull/83435) - Post Author Biography: Add text columns support (https://github.com/WordPress/gutenberg/pull/83424) - Block Editor: Avoid a store subscription per inserter item (https://github.com/WordPress/gutenberg/pull/83434) - Home Link: Add border support (https://github.com/WordPress/gutenberg/pull/83360) - Tab Panels: Add typography support (https://github.com/WordPress/gutenberg/pull/83428) - Tab Panel: Add typography support (https://github.com/WordPress/gutenberg/pull/83426) - Storybook: Drop CustomSelectControlV2 stories and the unused WIP tag (https://github.com/WordPress/gutenberg/pull/83349) - Docs: clarify DEWP asset file naming rule (https://github.com/WordPress/gutenberg/pull/80620) - Components: Deprecate ZStack (https://github.com/WordPress/gutenberg/pull/83344) - Media Utils: Stabilize `unstableFeaturedImageFlow` as `featuredImageFlow` (https://github.com/WordPress/gutenberg/pull/83439) - Accordion Panel: Add link, heading, and button colour support (https://github.com/WordPress/gutenberg/pull/83374) - Terms List: Add text columns support (https://github.com/WordPress/gutenberg/pull/83432) - Enable setting position within viewport states (https://github.com/WordPress/gutenberg/pull/83094) - Term Count: Add text align support (https://github.com/WordPress/gutenberg/pull/83429) - Dependency Extraction Webpack Plugin: Always pretty-print PHP asset files (https://github.com/WordPress/gutenberg/pull/79650) - Block Editor: Drop the O(n) tie-break in orderBy (https://github.com/WordPress/gutenberg/pull/83443) - Cover Block: Add a Media section to the block inspector panel (https://github.com/WordPress/gutenberg/pull/82751) - Admin bar: backport removal of site icon background from 7.1.1 (https://github.com/WordPress/gutenberg/pull/83433) - Tests: Update Testing Library DOM to 10.4.2 (https://github.com/WordPress/gutenberg/pull/83279) - Tabs: Add link, heading, and button colour support (https://github.com/WordPress/gutenberg/pull/83390) - Icons: Add a core-admin collection for the admin interface (https://github.com/WordPress/gutenberg/pull/83261) - Post Content: Add text align support (https://github.com/WordPress/gutenberg/pull/83427) - Components: Give control labels an explicit foreground color (https://github.com/WordPress/gutenberg/pull/83318) - Radio: Expand hit target without changing visual size (https://github.com/WordPress/gutenberg/pull/83275) - Tests: Isolate deprecation warnings between cases (https://github.com/WordPress/gutenberg/pull/83097) - Block Toolbar: Fix parent selector inserter for locked blocks (https://github.com/WordPress/gutenberg/pull/83444) - Icon block: Don't render icons from non-public collections on the frontend (https://github.com/WordPress/gutenberg/pull/82774) - Hide alignment control when nothing available. (https://github.com/WordPress/gutenberg/pull/83265) - Fields: Use the post type labels in the featured image field and drop `mediaUploadProps` (https://github.com/WordPress/gutenberg/pull/83445) - Icons: Rebalance a few, add other new icons. (https://github.com/WordPress/gutenberg/pull/83338) - Docs: Replace retired reduce-motion mixin in animation guidelines (https://github.com/WordPress/gutenberg/pull/83335) - Block Editor: Update block visibility badges to use from @wordpress/ui package (https://github.com/WordPress/gutenberg/pull/82670) - PHP-only blocks: Detect enums in array attributes (https://github.com/WordPress/gutenberg/pull/83394) - Data: Defer async-mode useSelect notification to idle time (https://github.com/WordPress/gutenberg/pull/82821) Developed in https://github.com/WordPress/wordpress-develop/pull/14045. Props wildworks. Fixes #66254. Built from https://develop.svn.wordpress.org/trunk@64223 git-svn-id: http://core.svn.wordpress.org/trunk@63374 1a063a9b-81f0-0310-95a4-ce76da25c4cd

What?
Detect HEIC uploads from the file's own header instead of from its name or the MIME type the browser reports, so a HEIC photo saved with a
.jpgor.pngextension, or one the operating system cannot type at all, converts like any other HEIC file. Also bound theImageDecoderdecode with a timeout so a decoder that never settles cannot hang the upload.Fixes #81707
Fixes #81043
Supersedes #81211 by @singhakanshu00, whose timeout commit is carried here under their authorship. The header check in that PR came out of @t-hamano's review there and is generalized in this one.
Why?
A browser derives
File.typefrom the file extension alone, and both places that route an upload went by that type:prepareItem()inpackages/upload-media/src/store/private-actions.tstreated a misnamed file as a JPEG/PNG, so it took the vips path. vips cannot decode HEIC, and the upload wound up stuck: the progress snackbar sat at "Uploading" and never completed or reported a failure. An attachment was still created, and WordPress renamed and re-encoded the file server side behind the editor's back.File.type, which is what Windows without the HEVC extension reports for a.heicfile (confirmed by @369work and @t-hamano in HEIC upload hangs indefinitely instead of falling back to server-side processing #81043), as "not an image" and uploaded the raw bytes as-is to a server that could not convert them either.heicMediaUpload()inpackages/block-editor/src/components/provider/index.jsx(the HEIC-only canvas mode used in Safari) sorted the batch by the same type, so a misnamed or untyped file was handed to the server-side path.Both paths now ask the file what it is. WordPress core already does this server side in
wp_get_image_mime(), which reads the ISOBMFF File Type Box for exactly this reason.Separately,
ImageDecoder.isTypeSupported()can report HEIC support from the container format alone. When the platform codec behind it is missing,decode()never settles rather than rejecting, and nothing downstream ever runs. Nobody has caught this in the wild yet, but relabelling an untyped file asimage/heicis what lets that strategy run at all for the Windows case, so the guard belongs in the same change.How?
isHeicFile()export in@wordpress/upload-media. It trusts a HEIC MIME type when there is one, otherwise reads the first 64 bytes and checks the File Type Box brands. AVIF shares the HEIF container and declaresmif1too, so the AVIF brands are ruled out first. Only files that could plausibly be images are read, so an ISOBMFF video is never mistaken for a still.prepareItem()uses it forisHeic, and keepsisVipsSupportedfalse for anything HEIC by content.image/heicbefore conversion. The WebCodecs decoder is configured fromFile.type, and the untouched original is sideloaded as the attachment'ssource_originalcompanion under its own name.heicMediaUpload()partitions the batch with the same helper.canvasConvertToJpeg(), theImageDecoderdecode is raced against a 15 second timeout that closes the decoder, which rejects the pending call. Only a timed-out decode falls through to the next strategy; a decode that rejects on its own has read the file and found it damaged, and Client side media: improve HEIC error message and consider placing inside image block #81123 reports that as a processing error rather than blaming the codec. The ceiling is generous because it applies to every decode, not only a stalled one.Testing Instructions
Client-side media processing has to be active - check
window.__clientSideMediaProcessingin the console.Wrong extension (#81707):
.heicphoto and rename it to.jpg. The test asset in this PR is one:test/e2e/assets/450x600_e2e_test_image_heic_wrong_extension.jpg.Either way the result now matches what the same photo does with its real
.heicextension, which is the point. On trunk, Safari quietly falls back to a server-side upload, and a browser that cannot decode HEIC leaves the "Uploading" snackbar spinning forever.Untyped file (#81043):
.heicfile onto an Image block. With the codecs installed it should convert; without them it should report "couldn't decode HEIC" after a moment rather than spinning forever. This is the environment the fix has not been run in yet, so a real Windows test would be very welcome.new File( [ original ], original.name, { type: '' } )and dispatch it withwp.data.dispatch( 'core/upload-media' ).addItems( ... ), as @singhakanshu00 did on fix: Fixes HEIC uploads hanging indefinitely when ImageDecoder stalls #81211.Stalled decoder: paste the
StuckImageDecodershim from the #81211 description into the console before uploading a.heic. On trunk the spinner never stops; here it moves on after 15 seconds.Automated coverage:
Two e2e tests, one per routing site: the first in the default full client-side mode, the second with cross-origin isolation disabled so the editor falls into the HEIC-only canvas mode Safari uses. Both were confirmed failing before the corresponding fix and passing after - the second one still passes on trunk's
prepareItem()fix alone, which is what makes the provider half worth covering separately.Both run in Chromium deliberately. Chromium ships no HEVC codec, so the HEIC path always ends at the same decode error, and reaching that path is the thing under test. An earlier version of this spec asserted a successful conversion in WebKit; that passes on macOS, where the OS supplies the codec, and crashes the page on Linux CI.
Unit tests cover the header check for both the wrong-extension and empty-type cases,
prepareItem()routing for both, a decode that never settles (fake timers), and a canvas failure after a successful decode staying a processing error rather than falling through.Types of changes
Bug fix.
isHeicFile()to@wordpress/upload-media.prepareItem()andheicMediaUpload()by file content rather than byFile.type.ImageDecoderdecode with a timeout, falling through only on timeout.AI Use
Code and description both written with 🤖 Claude Code, apart from the timeout commit by @singhakanshu00. I will review and test.