Changelog
Features
Collaboration
- Notes: Email users mentioned in a note. (79606)
Enhancements
- Element: Make the package importable in React 19. (80053)
- Interface: Let CSS own the ComplementaryArea width and use AnimatePresence custom for exit. (81363)
- Widget Dashboard: Preserve widget chrome flex layout. (80570)
- Normalize block gap values in layout. (81460)
- Visual revisions: Add shareable urls. (79934)
Block Library
- Block editor: Render a real default block in place of the default appender. (81231)
- Block editor: Unify what a new sibling block inherits. (81250)
- Blocks: Support static block templates in block type settings. (80027)
- Feature: Tabs block: Consider using the tab title in the Document Overview instead of a generic "Tab" label. (81427)
- Page List: Rename the Edit action to Detach and confirm it in a dialog. (80847)
- Pass Playlist controls to track blocks. (80368)
- Quote: Ensure paragraph placeholder appears after deleting nested blocks. (77151)
- Table of Contents: Replace "Convert to static list" with confirmed "Detach" action. (80844)
- Post Navigation Link: Use the 'next' icon. (81384)
- Writing flow: Stop the caret on containers that do not merge with the text flow. (81456)
- Playlist: Add track icon. (80959)
Components
- Add allowForms prop to SandBox component. (76471)
- DataViews: Add
timefield type and control. (80830) - DataViews: Make grid and table item preview aspect ratio configurable. (79329)
- IconButton: Improve keyboard shortcut accessibility. (80402)
- Icons: Move the inline image icon into the library. (81271)
- SearchableChipSelect: Add form primitive to @wordpress/ui. (80779)
- UI: Add Combobox.InputGroup primitive. (80869)
- UI: Add
CalendarandRangeCalendar, moved fromcomponentsprivate APIs. (81337) - UI: Derive Base UI direction from WordPress i18n. (80399)
- UI: Use focus styles from base-styles. (80635)
Post Editor
- Add opt-out for block style state controls. (80956)
- Editor: Clarify autosave failure notice. (76470)
- Editor: Migrate settings sidebar to Tabs from @wordpress/ui. (81054)
- Notes: Display shortcut for form action buttons. (81064)
- Visual revisions: Add a code diff view inside the editor. (80314)
Dashboard
- Dashboard Widgets: Add icon and relevance to the widget action envelope. (81275)
- Dashboard Widgets: Split action icons into wire and resolved forms. (81381)
- Widget Dashboard: Host-tunable tile spacing via public custom properties. (81352)
- Widgets: Carry a declarative
iconthrough the widget pipeline. (80969)
Widgets Editor
- Add ThemeProvider for admin color schemes. (81173)
- Customizer widgets: Add ThemeProvider for admin color schemes. (81174)
Global Styles
- Migrate font size presets to the shared preset layer. (79811)
- Migrate shadows presets to use the preset management layer. (79812)
Bug Fixes
- Backport core fixes for finalize route. (81465)
- Boot: Adjust specificity of the image reset styles so components can size their own images. (80845)
- Fix end-to-end tests that break when shard rebalancing changes their neighbors. (81117)
- Fix: Add missing
targetto the webpack dev server proxy configuration. (81141) - Fix: Flaky autosave shareable URL revisions end-to-end test. (81455)
- Fix: Flaky list view paste block styles end-to-end test. (81229)
- Fix: Flaky revisions pagination end-to-end cross-page diff assertion. (81119)
- Interface: Increase footer breadcrumb height to prevent focus ring clipping. (81145)
- Views: Honor all developer-defined view configuration overrides. (80832)
- Interface: Stop the secondary sidebar animating into place on page load. (81362)
- Site editor: Fix sidebar item hover color. (81317)
- theme.json schema: Allow responsive states on block style variations. (81309)
- Dashboard Widgets: Remove the Hello Dolly download action. (81272)
- Decode HTML entities in Identity fields. (81269)
- Make downloadable block item labels translatable. (81237)
- Edit Widgets: Fix header toolbar button focus ring. (81176)
- Fix template
modifiedanddatereturn value for file templates. (80733)
Block Editor
- Background: Fix the legacy gradient UI where a gradient cannot be selected. (81056)
- Block Inspector: Disable the 'Edit original' button when the entity ID is missing. (81288)
- Copy: Preserve the block when its entire text is selected. (80994)
- Disclose the nested block count of a multi selection. (80745)
- Fix Escape from the block toolbar and stop redundant last focus dispatches. (81319)
- Fix empty list block with anchor persisting after backspace deletion. (77000)
- Fix overflowing block UI being covered after a block is moved. (80824)
- Link Control: Restore the preview title underline. (81083)
- Make the Group action wrap blocks with a group transform. (80891)
- PanelColorSettings: Restore the missing space below the panel header. (81155)
- Quote & List v2: Deleting empty list item should delete list block. (42503)
- Return false from isBlockSelected when there is no client ID. (81212)
- Style states: Fix state deselection when selecting the already selected block. (81277)
- URLInput: Skip search requests while an IME composition is in progress. (80602)
- Writing flow: Forward delete an empty paragraph without breaking apart the next block. (80813)
Block Library
- Clarify the GIF Video variation description. (81181)
- Fix: Tabs block: Start with empty tab labels with placeholders. (81009, 81429)
- Media: Reword the HEIC upload error and keep it up until dismissed. (81130)
- Navigation Overlay Close: Inherit typography and color from the overlay. (80751)
- Playlist: Improve audio conversion and track selection. (80926)
- Playlist: Normalize Waveform Player configuration handling. (81342)
- Post Author Biography: Fix horizontal overflow with long unbroken text. (81018)
- Remove the editableRoot opt-in from the paragraph block. (81184)
- Video: Hide settings for the GIF variation. (81142)
- Fix: Add optional chaining for empty reusable block (#81165). (81177)
Components
- Button: Suppress UA focus ring when focused and pressed. (81113)
- DataForm: Fix hidden fields validation. (81377)
- DataViews: Fix
arrayfield type validation for empty values. (81378) - DataViews: Fix the between
datefilter losing a manually typed date on blur. (81150) - DataViews: Pass only eligible items to a bulk action callback. (81198)
- Scope breakpoint media queries to screen so printing does not look like a resize. (81367)
- Theme: Omit color properties when neither provided nor inherited. (80600)
- Admin UI: Reset the wp-admin
limargin that misaligns Breadcrumbs. (81134)
Post Editor
- Add ThemeProvider for admin color schemes. (81112)
- DataViews: Move the rich text control into the editor package. (81430)
- Editor: Fix document tools button focus ring. (81115)
- Editor: Keep the canvas height stable while resizing the canvas. (81163)
- Ensure device preview is always accurate when window is zoomed in. (81193)
- Notes: Fix text wrapping for long usernames in collaboration sidebar. (81406)
Global Styles
- Button: Turn on the width setting by default in theme.json. (81196)
- Kebab-case preset slugs when converting references to custom properties. (80583)
- Render element styles set only inside a breakpoint. (81265)
- Report border, shadow, outline, filter and dimension changes. (81407)
- theme.json schema: Fix block pseudo-classes and custom states. (81209)
- theme.json schema: Responsive states belong to blocks. (81253)
Data Layer
- Core Data: saveDirtyEntities: Improve messaging of server errors. (81151)
- RTC: Fix mixed block selection awareness. (79836)
- Footnotes: Guard against invalid post meta values. (81201)
- RTC: Remove excess autosave notices (when not useful). (80539)
- Order site identity changes predictably. (81283)
Media
- Cover client-side big image scaling and orphaned files. (81061)
- Media Attached to: Fix issue with the popover unexpectedly flipping, tweak wording. (81206)
- Upload Media: Fail the item when the /finalize request fails. (80725)
Style States
- Fix phantom pseudo element style output. (81291)
- Render viewport state element styles in the editor. (81307)
Collaboration
- Notes: Fix the mention notification email composition. (81187)
- RTC: Disable custom autosave controller when RTC is disabled. (80769)
Accessibility
- Fix: New route-based admin pages are empty when no JS. (80628)
- Interface: Remove incorrect aria-expanded from pin-to-toolbar button. (79874)
- wp-build: Render the no-JS fallback in the generated page templates. (81365)
Block Editor
- Block Mover: Add the keyboard shortcut to the buttons' spoken description. (81380)
Components
- Menu: Restore Modal focus return when menu items close. (81164)
Block Library
- Tabs: Support Home and End keys for keyboard navigation. (80912)
Performance
List View
- Fix Select all freezing on large posts. (81210)
- List View: Collapse off-window placeholder rows into a single spacer row. (80953)
- List View: Narrow the dependants of the memoized List View tree. (81129)
- List View: Only subscribe to the block subtree for rows that can show images. (81076)
- List View: Reduce per-row store subscriptions. (81136)
- List View: Speed up opening by removing a forced style recalculation. (80929)
- List View: Speed up opening by removing a second render pass. (80935)
- List View: Pass only minimal required data to sub-tree branches. (81111)
- List View: Split the context and drop dead props to cut re-renders on expand and collapse. (81159)
Documentation
- Agents: Add a defensive data design skill and route to the copy guide. (81131)
- Block JSON schema & PHP-only blocks: Add
autoRegistersupport. (80173) - Block Library: Document security patch releases. (81295)
- Changed Build Process Link and remove unused tags. (81360)
- CheckboxControl: Add "With Visual" Storybook story. (80849)
- Components: Opt-in ConfirmDialog for auto-documentation. (80866)
- Components: Use p elements for callout alerts in README documentation. (81234)
- Docs: Add Block Actions Readme. (69408)
- Docs: Add Block List Readme. (69432)
- Docs: Add Block Lock Readme. (69434)
- Docs: Add error message guidance. (81143)
- Docs: Explain how the theme.json schema fixtures work. (81263)
- Docs: Fix broken Figma links on the design resources page. (81166)
- Docs: Fix broken link to the Node.js debugging guide. (81398)
- Docs: Fix broken links to the removed JavaScript build setup guide. (81232)
- Docs: Fix typo in block file structure guide. (81348)
- Docs: Remove breakpoint-only element style example from global styles guide. (81308)
- Docs: Remove dependency group import guidance. (81245)
- Docs: Use
gutenberginstead ofGutenbergin package name. (81051) - Document editEntityRecord's options.isCached param. (81318)
- Fix typos in code
commentsandJSDoc. (81045) - Navigation: Complete the DocBlocks for the responsive container and overlay style helpers. (80622)
- Storybook: Enable design system theme tool globally. (81116)
- ToggleControl: Add "With Visual" Storybook story. (80803)
- View Config: Add reference documentation. (81149)
- Widget Primitives: Document actions as verbs, not links. (80974)
Code Quality
- Block Supports: Guard against non-string attribute values to avoid fatal errors. (80501)
- Blocks: Declare the
@types/react-isdevDependency. (81203) - Blocks: Update hpq to 1.4.0 and drop the ts-expect-error suppressions. (81199)
- CI: Resolve Playwright through the workspace that declares it. (81137)
- Declare missing prettier and stylelint workspace dependencies. (81065)
- ESLint: Define dependency import rules. (81246)
- ESLint: Drop @eslint/compat fixup for jest-dom and testing-library. (80842)
- Ignore node_modules in schema integration test globs. (81013)
- Jest Preset Default: Support self-referencing via exports. (80837)
- Report Flaky Tests: Declare @types/node dependency. (80838)
- Storybook: Move smoke-test deps into the storybook workspace. (81017)
- Storybook: Use SelectControl in Motion tokens story. (80790)
- Tools: Make agent setup a workspace. (81418)
- Tools: Use native agent skill discovery. (80811)
- Unit Tests: Reorganise the jest configuration file. (80940)
- View config: Lowercase dynamic filter names. (81068)
- Views: Add React to the package's dev dependencies. (81139)
- DataViews: Use the public
@wordpress/uiBadge instead of the private one. (81236) - Remove unused duplicate font family preview utilities. (81194)
- Media Editor: Render sidebar tabs via ComplementaryArea's render prop. (81133)
- Fix ESLint errors for 'navigateRegionsProps' spread. (81052)
- Replace deprecated useResizeObserver for useScaleCanvas. (67508)
Components
- DataViews: Remove
kebabCaseprivate import by inlining it. (81284) - DataViews: Vendor validated form controls:
- Deprecate Animate. (80931)
- Deprecate Surface. (80943)
- ESLint: Remove legacy import suppressions. (81338)
- Keycodes: Make
withIgnoreIMEEventsa public API. (81343) - Migrate ItemGroup to SCSS module. (80797)
- Migrate Spinner styles from Emotion to SCSS module. (80511)
- New
kebab-casepackage: Extract utility and migrate private API calls. (81294) - Theme: Colocate plugin tests with implementations. (81247)
- Types: Replace remaining
@ts-expect-errorsuppressions with proper typing. (81200) - UI: Upgrade React DayPicker to version 10. (81439)
- Update Ariakit packages. (80765)
- Update Floating UI to 2.1.9. (80761)
- Update react-day-picker to 9.14.0. (80792)
- Remove ValidatedTextControl private API. (80680)
Block Editor
- Bail out of hasSelectedInnerBlock when there is no clientId. (81315)
- Convert useBlockVisibility hook to TypeScript. (80390)
- Format Library: Remove unused CSS rule. (77831)
- List View: Migrate label wrapper to UI Stack and drop Badge from the anchor. (81266)
- Simplify InspectorControlsFill rendering logic. (81286)
- Spacing Sizes Control: Make the control label translatable independently of the input aria label. (81240)
- URLInput: Simplify keyboard handling and fix arrow keys with a text selection. (80780)
Block Library
- Cover: Avoid passing null as the featured image size. (81444)
- List View: Replace expand/collapse callbacks with reducer dispatch. (81138)
- Query: Guard non-scalar queryId to avoid fatal in enhanced pagination. (80724)
Data Layer
- Core Data: Add missing @wordpress/base-styles dependency. (81012)
- ESLint: Replace strict configuration with bulk suppressions. (81248)
Post Editor
- Editor: Remove sidebar tabs focus sync effect. (81020)
- Rename blockStatesEnabled setting to blockStatesEditingEnabled. (81058)
Tools
- AGENTS: Update development tips section. (81224)
- Revise CODEOWNERS for package ownership (removing nerrad). (81175)
- ESLint: Ban
@ts-ignorein favour of@ts-expect-error. (81148)
Testing
- Automated Testing: Add Storybook component documentation regression testing. (80655)
- CI: Add job timeouts to E2E, static checks, bundle size, and create block. (80801)
- CI: Build once and reuse the build across end-to-end tests shards. (81031)
- CI: Cache the system packages Playwright downloads for WebKit. (80846)
- Fix: Trunk end-to-end failures caused by the navigation spec leaving plain permalinks. (81238)
- Flaky tests: Fix router navigate latest HTML. (80178)
- Perf Tests: Merge selection event windows instead of summing durations. (81002)
- Performance Tests: Ignore the locally generated artifacts directory. (81024)
- Perf Tests: Avoid inflating interaction metrics with startTracing. (81264)
- Remove content types experiment. (81340)
- Remove the jest-puppeteer-axe package. (80775)
- Storybook e2e: Add small, compact and icon examples to button matrix. (80793)
- Test: Add Vitest migration routing guardrails. (81036)
- Test: Add private Vitest configuration and migrate a pilot test. (81037)
- Tests: Replace page-level selectors with locators in end-to-end specs. (81053)
- Upgrade Playwright to v1.62. (81001)
- Balance Playwright shards by duration. (79479)
Build Tooling
- Allow organization or repository variable to dictate the Actions runner. (81087)
- Build: Wrap script bundles in an IIFE to contain 'use strict'. (79792)
- Components: Update polymorphism types to allow all attributes when specifying
as. (80705) - Docs: Add VS Code setup guidance. (77913)
- ESLint: Rename root eslint.config.cjs to eslint.config.mjs. (81468)
- Ensure static checks can run for private mirrors. (80817)
- Flaky tests: Report as a PR comment only, stop creating issues. (81218)
- Markdownlint: Disable the MD033 (no-inline-html) rule project-wide. (81213)
- Monitor all setup-related composite Actions. (81192)
- Packages: Recover July 29 npm release metadata. (81303)
- Scripts: Prevent a UTF-8 BOM in the middle of extracted CSS. (81383)
First-time contributors
The following PRs were merged by first-time contributors:
- @adimoldovan: CI: Cache the system packages Playwright downloads for WebKit. (80846)
- @dognose24: Widget Dashboard: Preserve widget chrome flex layout. (80570)
- @dpmehta: Quote: Ensure paragraph placeholder appears after deleting nested blocks. (77151)
- @drewmt: Site Editor: Decode HTML entities in Identity fields. (81269)
- @giteshsarvaiya: RTC: Fix mixed block selection awareness. (79836)
- @makdia: Fix empty list block with anchor persisting after backspace deletion. (77000)
- @vianasw: DataViews: Make grid and table item preview aspect ratio configurable. (79329)
- @YvetteNikolov: Scripts: Prevent a UTF-8 BOM in the middle of extracted CSS. (81383)
Contributors
The following contributors merged PRs in this release:
@adamsilverstein @adimoldovan @adithya-naik @aduth @ajlende @alecgeatches @amitraj2203 @andrewserong @aslushnikov @chihsuan @ciampo @desrosj @dhasilva @dhruvikpatel18 @dognose24 @dpmehta @drewmt @ellatrix @getdave @giteshsarvaiya @hbhalodia @im3dabasia @ingeniumed @itzmekhokan @jasmussen @jorgefilipecosta @juanfra @makdia @Mamaduka @manzoorwanijk @mcsf @mirka @nerrad @ntsekouras @oandregal @Pranjal1423 @priethor @R1shabh-Gupta @ramonjd @retrofox @scruffian @shail-mehta @simison @SirLouen @SteveJonesDev @t-hamano @talldan @tellthemachines @vianasw @westonruter @yogeshbhutkar @youknowriad @YvetteNikolov