UI: Update Base UI to 1.8.0 - #82835
Conversation
🤖 PR meta 🤖📦 Bundle sizeSize Change: +13 kB (+0.16%) Total Size: 8.2 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. should only mutate text data on input in
|
|
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. |
There was a problem hiding this comment.
Combobox.Root now inherits Base UI 1.8's tighter filter/filteredItems types, with Item defaulting to the selected value type. Consumers that mix object items with primitive values can start failing typecheck. Might be worth noting in the changelog?
There was a problem hiding this comment.
That's true. I added a breaking-change note for filteredItems. I kept it specific to filteredItems, since filter already used the selected value type in 1.7.
d06457a to
0190b14
Compare
0190b14 to
52ad8dc
Compare
Existing-test migration extracted to #82838; the PRs can merge independently.
What?
Update Base UI 1.7.0 → 1.8.0 in UI and DataViews.
Why?
Fix grid semantics, labeling and popup/focus behavior. Read-only Select, Combobox and Autocomplete now allow browsing without changing the value.
How?
Remove the obsolete Autocomplete ARIA workaround and Grid story exception. Add read-only browser regressions for Select, Combobox and Autocomplete. Retain local fixes that upstream has not replaced.
Testing Instructions
readOnly, browsing must not change the value.Testing Instructions for Keyboard
Open a control, navigate with arrows, and press Escape; focus should return to its trigger. Check Tab/Shift+Tab containment in modal dialogs, Tabs navigation after insertion/removal, and blocked selection in read-only controls.
Release impact analysis and adoption decisions
Release scope
1.7.0 → 1.8.0, released August 4 → September 4, 2026, with no intervening stable release. Confirmed the latest stable version and reviewed the complete release notes, implementation changes, installed types and repository consumers.
Changes that affect our components
Upstream issue/PR numbers below refer to
mui/base-uiand are listed in the linked release notes.ValidatedInputControl/ValidatedTextareaControl; Field omits upstream validation configuration.validateAPI. These do not replace our validation code.rowgroup, #5564; orientation moves to role owners, #5551; group labels are hidden as separate accessibility-tree nodes, #5598aria-orientation={ undefined }and Grid story exception; assert rowgroup semantics. Menu, Select and Combobox inherit the group-label change while retaining referenced accessible names.data-readonly, #5418readOnly; no local CSS disables these triggers. Added browser tests. DataForm's separatefield.readOnlypath still renders a value instead of an edit control.Combobox.createItems, #5326filteredItems/filternow use the source item type instead ofany. Our wrapper defaults it to the selected value type. Repository typecheck passes; external consumers mixing object items and primitive selected values may need type changes.Object.prototype, #5518multiple, so its multiple-selection path is not exposed.Retained workarounds and unused features
alignItemWithTrigger={ false }default and popup sizing. The registration fix in Fixed handling of html captions on gallery and image. #5469 does not change the competing height constraints behind the local positioning decision.keepMounted, Consider to improve the Inserter "Shared" tab when there's no content #5536, and functional Toast updates, Remove max-width for the meta boxes area inputs. #5464/Renamed blocks-... classes to components-... classes in input controls #5611/2.4.0: _wp$blocks.source is undefined #5629, have no Base UI consumer here. No speculative wrappers are introduced.clearErrors, Top inserter unexpectedly puts new blocks at the top of the document when you just deleted a block #5446; Menubar hierarchy, State: Access state paths directly in selector dependants #5058; NavigationMenu pointer lock/focus/disabled attributes, Backtick -> code replacement fires inconsistently. #5454/Image block caption link input field disappears when clicked into #5479/Template Bugs (specifically when locking blocks) #5521; NumberField hold/wheel/selection fixes, Edit Post: Refactor state handling for the sidebar #5435/Meta boxes area: remove max-width for input elements #5463/Can't delete a list block #5578/Refactored meta box data collection. Fixed a bug where meta boxes may not be shown. #5619; ScrollArea focus and accessibility fixes, Extensibility: Plugin sidebar api #5430/ColorPalette: white palette color merging with white background #5598; and Slider/Switch-specific fixes have no imported Base UI counterpart in this repository. Similarly named WordPress components use other implementations.Dependencies and runtime compatibility
/wpbuild inlines UI but leaves Base UI imports external; UI's CJS/ESM builds also import it. The built-package audit confirms this. Base UI resolves through npm, notwindow.wp, so there is no new independently supplied WordPress/Base UI version pairing. Retain WordPress compatibility code.@base-ui/utils: 0.3.2 → 0.4.0. No direct Gutenberg imports; shared store, focus and animation changes are exercised through UI.@babel/runtime: 7.29.2 → 7.29.7. Reviewed intervening releases: earlier changes affect other packages; 7.29.7 republishes with provenance. No compiler upgrade.createSelectorCreatorwithlruMemoize, not the removed API; current type and interaction checks pass.Browser Mode and accessibility exceptions
New read-only Select, Combobox and Autocomplete browser tests cover browsing, blocked selection, Escape, focus return and reopening; Autocomplete also checks blocked typing.
The 205 existing-test migrations and tooltip/backdrop/iframe assertion improvements are in #82838. That PR runs independently on Base UI 1.7.0. This dependency PR retains the existing jsdom suites. Structure/API contracts, deliberate errors, listener lifecycle and mocked scroll algorithms remain appropriate jsdom coverage; the refactor moves browser-dependent interaction checks.
The Grid story exception is removed. A Chromium axe audit with suppressions bypassed confirms that Autocomplete Inline/Combobox DetachedInline still trigger
scrollable-region-focusable. DataViews' suppressed labeling, contrast, unnamed-button, nested-interactive, scrolling and required-parent violations also reproduce. Retain those exceptions.Verification
Use of AI Tools
Codex audited releases, implemented and verified changes, and drafted this PR. A separate Codex agent performed the adversarial review.