Keep item registration in sync when items change under Strict Mode (#5862) by @atomiks
Avoid re-rendering inactive triggers on open and close (#5865) by @atomiks
Accordion
Fix <Accordion.Trigger>'s data-value and data-index attributes (#5705) by @cpruijsen
Apply the native disabled attribute to <Accordion.Trigger> when using native buttons (#5607) by @atomiks
Expand hiddenUntilFound panels synchronously on beforematch (#5514) by @aarongarciah
Alert Dialog
Don't associate a programmatically opened popup with a trigger that did not open it (#5641) by @michaldudak
Autocomplete
Fix autoHighlight for asynchronous results (#5818) by @atomiks
Pass the originating event to onItemHighlighted. Pointer events may be MouseEvent or PointerEvent; typing reports the reason none (#5838) by @atomiks
Decouple automatic unmounting from actionsRef. Call eventDetails.preventUnmountOnClose() in onOpenChange to opt out of automatic unmounting (#5734) by @michaldudak
Checkbox
Prefer aria-label over associated labels (#5787) by @atomiks
Collapsible
Apply the native disabled attribute to <Collapsible.Trigger> when using native buttons (#5607) by @atomiks
Finish closing when the render function removes the panel (#5890) by @michaldudak
Expand hiddenUntilFound panels synchronously on beforematch (#5514) by @aarongarciah
Combobox
Fix stale chip focus after returning to the input (#5879) by @mdm317
Fix autoHighlight for asynchronous results (#5818) by @atomiks
Decouple automatic unmounting from actionsRef. Call eventDetails.preventUnmountOnClose() in onOpenChange to opt out of automatic unmounting (#5734) by @michaldudak
Pass the originating event to onItemHighlighted. Pointer events may be MouseEvent or PointerEvent; typing reports the reason none (#5838) by @atomiks
Reset typeahead state when closing without moving focus (#5816) by @mdm317
Accept readonly arrays for multiple values (#5710) by @MonstraG
Add menu filtering behavior with <Menu.FilterProvider>, <Menu.Input>, and the onItemHighlighted callback (preview) (#5527, #5838, #5840, #5868) by @atomiks and @jjenzz
Fix nested menus without a root trigger (#5645) by @LukasTy
Fix event listener cleanup in <Menu.Trigger> (#5764) by @sai6855
Decouple automatic unmounting from actionsRef. Call eventDetails.preventUnmountOnClose() in onOpenChange to opt out of automatic unmounting (#5734) by @michaldudak
⚠️ This can degrade performance if you have a custom maxWorkers setting. Previously, it was applied incorrectly and could lead to Vitest using too many resources. For example, a lower number would still open too many browsers. Fixing it means Vitest opens less instances by default now.
Don't warn when components are exported as an object gathering them. Every member of the object must be a component, and a member holding an anonymous function requires a component name as key.
This should be enabled if the fast refresh implementation correctly handles this case. Vite supports it since @vitejs/plugin-react 4.7.0, @vitejs/plugin-react-swc 3.11.0.
The package now ships as ESM and requires ESLint 9 + node 20. Because legacy config doesn't support ESM, this requires to use flat config
A new reactRefresh export is available and prefered over the default export. It's an object with two properties:
plugin: The plugin object with the rules
configs: An object containing configuration presets, each exposed as a function. These functions accept your custom options, merge them with sensible defaults for that config, and return the final config object.
customHOCs option was renamed to extraHOCs
Validation of HOCs calls is now more strict, you may need to add some HOCs to the extraHOCs option
Config example:
import{defineConfig}from"eslint/config";import{reactRefresh}from"eslint-plugin-react-refresh";exportdefaultdefineConfig(/* Main config */reactRefresh.configs.vite({extraHOCs:["someLibHOC"]}),);
Config example without config:
import{defineConfig}from"eslint/config";import{reactRefresh}from"eslint-plugin-react-refresh";exportdefaultdefineConfig({files:["**/*.ts","**/*.tsx"],plugins:{// other plugins
"react-refresh":reactRefresh.plugin,},rules:{// other rules
"react-refresh/only-export-components":["warn",{extraHOCs:["someLibHOC"]},],},});
Why
This version follows a revamp of the internal logic to better make the difference between random call expressions like export const Enum = Object.keys(Record) and actual React HOC calls like export const MemoComponent = memo(Component). (fixes #93)
The rule now handles ternaries and patterns like export default customHOC(props)(Component) which makes it able to correctly support files like this one given this config:
[!NOTE]
Actually createRoute functions from TanStack Router are not React HOCs, they return route objects that fake to be a memoized component but are not. When only doing createRootRoute({ component: Foo }), HMR will work fine, but as soon as you add a prop to the options that is not a React component, HMR will not work. I would recommend to avoid adding any TanStack function to extraHOCs it you want to preserve good HMR in the long term. Bluesky thread.
Because I'm not 100% sure this new logic doesn't introduce any false positive, this is done in a major-like version. This also give me the occasion to remove the hardcoded connect from the rule. If you are using connect from react-redux, you should now add it to extraHOCs like this:
Improved performance of getComputedStyle() and computed CSS property reads, including with stylesheets containing attribute selectors. (@scttcper, @asamuzaK)
Fixed slowdowns when focusing elements and running interaction tests, which regressed in v30.1.2. (@scttcper)
Fixed XMLHttpRequest reusing credentials supplied to xhr.open() after cross-origin redirects, including in response to authentication challenges from the destination.
Fixed XMLHttpRequest incorrectly sending and accepting cookies after cross-origin redirects back to the document's origin when xhr.withCredentials is false.
Fixed exceptions from malformed CSS math functions, such as calc(0px - @submenu_space), while parsing documents, stylesheets, and style declarations. (@rnavarro)
Fixed CSS shorthands overwriting longhands with higher priority or specificity during style computation, including declarations containing CSS variables.
Fixed getComputedStyle() returning unresolved or inconsistent shorthand values, including for 'background', 'border', 'flex', 'font', 'margin', and 'padding', and incorrect shorthand defaults and inheritance.
Fixed computed background positions to resolve font-relative lengths using the final font size and handle multiple image layers correctly.
Fixed computed 'color' values depending on property read order, including unresolved color-mix() results, which regressed in v29.0.2.
Fixed currentcolor border colors incorrectly becoming transparent when 'color' uses light-dark() or relative color syntax.
Fixed CSS calculations that reduce to a percentage incorrectly producing pixel values, which regressed in v30.0.0.
Fixed numeric font weights in the 'font' shorthand incorrectly setting 'line-height'.
Fixed selector matching involving XML namespaces, and selectors such as [data-a|=""] failing to match empty values and values beginning with -. (@asamuzaK)
Updated URLs to support Unicode v18.0.0 in internationalized domain names.
Reduced package size and memory use for CSS property definitions. (@scttcper)
Fixed severe slowdowns when building large DOM trees, including SVG charts with D3, which regressed in v30.1.0. (@cmdcolin)
Fixed exponentially slow reads of empty inherited CSS custom properties in deeply nested documents, and custom properties incorrectly inheriting past an initial reset. (@scttcper)
Fixed getComputedStyle() returning stale results after editing stylesheet declarations, selectors, or media queries, including in imported stylesheets.
Fixed selector matching and computed styles after changes to form control checkedness, indeterminacy, selection, values, and validity, including during form resets and canceled clicks.
Fixed computed styles for :focus, :focus-visible, :focus-within, and selectors containing them after focus changes, including inside focus and blur listeners. (@asamuzaK)
Fixed element.focus() incorrectly focusing elements hidden by 'display', including through shadow hosts and slots, and elements excluded by shadow DOM slot assignment. (@asamuzaK)
Fixed getComputedStyle() throwing for elements without inline-style support, including XML and MathML elements.
Fixed a memory leak where stylesheet parsing retained the last parsed stylesheet's window after window.close().
Fixed memory growth from long-lived MutationObserver instances retaining bookkeeping for garbage-collected nodes. (@scttcper)
Fixed retained select.selectedOptions collections becoming stale after selection changes and form resets.
Fixed rejection of negative CSS sizing values, including for 'min-width', 'min-height', 'max-width', and 'max-height', which regressed in v30.1.0.
Fixed handling of deeply nested color-mix() expressions, including exceptions during color resolution. (@asamuzaK)
Fixed spurious window blur and focusout events and incorrect event.relatedTarget values when focusing an element after removing the previously focused element, which regressed in v30.1.0. (@asamuzaK)
Fixed focus and blur behavior across frames, and focusing the document's viewport through document.documentElement.focus(). (@asamuzaK)
Fixed focus targets removed or disabled by blur listeners becoming active, and text selections made by focus and blur listeners being overwritten. (@asamuzaK)
Fixed element.focus() incorrectly focusing disabled form controls and <input type="hidden"> elements with tabindex="". (@scttcper)
Fixed invalid style.setProperty() calls changing existing !important priorities, serialized styles, or mutation records. (@FedgeNo)
Fixed !important handling when updating CSS longhands after shorthands, using variables or CSS-wide keywords, and assigning style properties directly. (@FedgeNo)
Fixed <noscript> parsing with includeNodeLocations: true or inside frames to honor the runScripts option.
Fixed the storageQuota option being ignored by frames.
Fixed encoding detection of HTML and XML byte input to honor XML encoding declarations and detect UTF-16 without a byte order mark.
Fixed exceptions caused by truncated charset parameters in <meta> elements, and encoding detection incorrectly using incomplete <meta> tags. (@FedgeNo)
Fixed XML serialization errors for namespaces named constructor, toString, __proto__, or "null", and incorrect reuse of namespace prefixes declared on sibling elements.
Fixed element.innerHTML and element.outerHTML in XML documents to reject invalid characters in attribute values and avoid stack overflows on large strings.
Fixed selector matching for :lang(), :nth-child(... of ...) after mutations, and :has() with duplicate IDs or nested logical pseudo-classes. (@asamuzaK)
This release is dedicated to @scttcper, who unleashed @codex upon jsdom and found tons of performance improvements. Along the way, he found and fixed many correctness issues as well.
We really appreciate his thoughtful PRs, which did a great job following the project's contribution guidelines, and were clearly human-curated, with their PR descriptions edited to be brief and respectful of the maintainers' time.
Thanks to @scttcper, as well as all the other contributors of this release (most of whom were AI-assisted).
Added named access to elements on document, such as document.myForm for <form name="myForm">. (@vojtisprime11)
Added QuotaExceededError, including its use for storage quota errors and oversized crypto.getRandomValues() requests.
Added support for the relaxed DOM naming rules when creating elements, attributes, and document types.
Improved performance of DOM construction, tree mutations, range operations, and live collection access, especially on large documents. (@scttcper, @erezrokah)
Improved performance of getComputedStyle(), style changes, and CSS serialization. (@scttcper, @jhult)
Improved performance of event dispatch, form control and label lookups, and updates to <select> elements and radio button groups. (@scttcper)
Reduced memory use when creating and working with DOM nodes, attributes, event listeners, and mutation observers. (@scttcper)
Changed window.close() to preserve access to the document and its DOM through retained references.
Fixed element.querySelectorAll() returning no matches when the first part of the selector matches the element itself, which regressed in v30.0.0. (@asamuzaK)
Fixed case sensitivity in CSS attribute selectors, including selectors matching data-state="", title="", and other case-sensitive values. (@asamuzaK)
Fixed document.querySelector() failing to find a matching element when an earlier element has the same ID but does not match the rest of the selector. (@vojtisprime11)
Fixed :focus matching in shadow trees. (@asamuzaK)
Fixed DOM insertion and replacement, including valid document.replaceChildren() calls, invalid document element and doctype placements, and mutations during element.replaceWith().
Fixed the ordering of script execution, custom element callbacks, iframe loading, and mutation observer notifications during DOM insertion, including in shadow trees.
Fixed queued events and navigation continuing after window.close() or iframe removal, and prevented new scripts, resource loads, timers, and animation frames from starting in destroyed documents. (@scttcper)
Fixed parent documents waiting indefinitely for loading to finish when a child iframe removes itself during loading.
Fixed request cancellation across redirects, during pending requestInterceptor() callbacks, and when reusing an XMLHttpRequest after aborting it.
Fixed resource loading and JSDOM.fromURL() potentially hanging when response handling throws and response stream cleanup does not finish.
Fixed successful cached resource loads being treated as aborted.
Fixed getComputedStyle() and document.styleSheets using the wrong stylesheet order after inserting or updating <style> elements.
Fixed getComputedStyle() ignoring nested @import and @media rules in imported stylesheets, and returning stale results after imports finish loading.
Fixed style invalidation, stylesheet removal, and frame source updates in shadow trees.
Fixed repeated getComputedStyle() calls changing case-sensitive background URLs, and inconsistent resolution of border shorthands containing system colors. (@scttcper)
Fixed computed border widths, including borderless elements incorrectly reporting 16px, which regressed in v30.0.0. (@Alberto-BaseNet)
Fixed getComputedStyle() to resolve 'font-weight' keywords to numeric values. (@tianrking)
Fixed getComputedStyle() to convert lengths to pixels inside CSS math functions containing percentages, and to resolve percentages in 'font-size' math functions. (@soroushm)
Fixed serialization of min() and max() containing nested calc(), which regressed in v30.0.0. (@asamuzaK)
Fixed CSS values mixing lengths or percentages with math functions, such as 'grid-template-columns' values containing both 100px and calc(). (@rome-xi)
Fixed parsing of 'background' and 'border' shorthands with adjacent components, such as url(a.png)no-repeat, including a crash when parsing inline styles. Also fixed handling of invalid shorthand assignments and escaped or unusual characters in CSS declarations. (@asamuzaK)
Fixed parsing of unitless zero values in 'flex' shorthands, such as 35 1 0, and rejection of negative 'flex-basis' lengths and percentages. (@asamuzaK)
Fixed shorthand style assignments producing extra mutation records and custom element callbacks for intermediate values. (@scttcper)
Fixed Range and Selection handling of CDATA sections, including boundary offsets and range cloning, extraction, deletion, insertion, and stringification. (@scttcper)
Fixed text.normalize() incorrectly removing the text node or merging its siblings. (@scttcper)
Fixed cloning and importing CDATA sections and processing instructions whose contents have been modified, and serialization of CDATA sections adopted into HTML documents.
Fixed stale named-property collections on window, and incorrect named access from empty or namespaced id="" and name="" values. (@scttcper)
Fixed elements in documents created with DOMParser or document.implementation.createHTMLDocument() appearing as named properties on window and being retained in memory. (@Iaotle)
Fixed storage events being sent to windows created after the storage change, and ensured surviving recipients still receive events when the source document is destroyed.
Fixed attribute lookups after namespace prefix changes, and namespaced attributes incorrectly affecting ID lookups and element behavior. (@scttcper)
Fixed input.list in detached element trees. (@scttcper)
Fixed attr.ownerDocument after setting an attribute node on an element in another document or adopting its element. (@Kjubikstronk)
Fixed fresh element.getElementsByTagName() calls using the previous document's case-sensitivity rules after adoption between HTML and XML documents. (@Kjubikstronk)
Fixed element.tagName returning stale casing after adoption between HTML and XML documents.
Fixed radio button grouping and checkedness updates for controls with different form owners, controls outside their form, unnamed controls, and canceled clicks.
Fixed <select> selection updates when moving options, and unintended selection resets when moving a whole <select> or changing unrelated descendants.
Fixed cloning <input> elements to preserve input.indeterminate.
Fixed focus state after removing a focused element or its ancestor, including inside shadow trees.
Fixed script execution when inserting children into a connected, empty <script>. (@Kjubikstronk)
Fixed incorrect script execution after changes to src="", and handling of type="", for="", and event="".
Fixed document.currentScript during nested script execution and scripts in shadow trees.
Fixed event dispatch, window.event, and default passive listener handling for non-node event targets, and event dispatch when user code modifies window.constructor.
Fixed volumechange and ratechange events to fire asynchronously. (@christianaurichzm)
Fixed DOM APIs accepting user-created proxies around DOM objects where genuine DOM objects are required.
Fixed XPath iterator invalidation after DOM mutations and errors for invalid result types.
Fixed NodeIterator traversal when its filter removes nodes.
Fixed fileReader.readAsText() to honor the blob's MIME type charset when no supported explicit encoding is supplied.
Fixed fractional seconds in time input parsing and serialization. (@Jaybhade)
Fixed large input.valueAsNumber assignments for time and local date/time inputs.
Fixed hard wrapping of <textarea> values to use the numeric textarea.cols value.
Fixed document.readyState to be "complete" for documents created with document.implementation.createDocument() and document.implementation.createHTMLDocument().
Fixed element.translate for empty translate="" values and elements without a parent.
Fixed XML parsing of lone surrogates to replace them with the Unicode replacement character.
Fixed node.lookupNamespaceURI() for the xml and xmlns prefixes. (@vojtisprime11)
Fixed <base> elements to ignore data: and javascript: URLs. (@vojtisprime11)
#12298954ce95 Thanks @shadcn! - Upgrade to Zod 4. shadcn/schema and @shadcn/registry/schema now export Zod 4 schemas, so passing them to Zod 3's z no longer typechecks. On Zod 3, use the exported types (RegistryItem, RegistryItemFile, Config) and the schema's own methods (registryItemSchema.array()) instead of z.infer and z.array. Zod errors expose issues, not errors. Validation messages now use Zod 4's wording.
#12087bf6646b449684e687f28531305eca4e4768c2782 Thanks @shadcn! - Add @shadcn/registry, the registry engine behind the CLI. shadcn now depends on it, and shadcn/registry and shadcn/schema re-export it, so there are no changes for existing users.
Theme getters returned by fromTheme now expose the theme key they read as a themeKey property, so tooling can identify the referenced theme scale without calling the getter.
Release tags now include the package name, starting with tailwind-merge@3.7.0.
Bug Fixes
Fix arbitrary values using color() or light-dark() being classified as lengths instead of colors by @ddussi in #712
Fix bare bg-conic not merging with other background image classes by @dcastil in #708
Fix columns-auto not conflicting with other columns classes by @dcastil in #707
Fix container sizes like inline-2xl not merging by @dcastil in #706
Fix max-h-none missing in max-h class group by @mutewinter in #704
Fix axis shorthands like px not overriding logical sides like ps by @dcastil in #705
Fix leading-none being removed when the leading theme scale is overridden by @chatman-media in #689
Fix deprecated shadow-inner being classified as shadow color instead of shadow by @dcastil in #703
This PR contains the following updates:
| Package | Change | [Age](https://docs.renovatebot.com/merge-confidence/) | [Confidence](https://docs.renovatebot.com/merge-confidence/) |
|---|---|---|---|
| [@base-ui/react](https://base-ui.com) ([source](https://github.com/mui/base-ui/tree/HEAD/packages/react)) | [`1.8.0` → `1.9.0`](https://renovatebot.com/diffs/npm/@base-ui%2freact/1.8.0/1.9.0) |  |  |
| [@testing-library/dom](https://github.com/testing-library/dom-testing-library) | [`10.4.1` → `10.4.2`](https://renovatebot.com/diffs/npm/@testing-library%2fdom/10.4.1/10.4.2) |  |  |
| [@testing-library/user-event](https://github.com/testing-library/user-event) | [`14.6.7` → `14.6.8`](https://renovatebot.com/diffs/npm/@testing-library%2fuser-event/14.6.7/14.6.8) |  |  |
| [@types/node](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/master/types/node) ([source](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/node)) | [`24.13.4` → `24.19.2`](https://renovatebot.com/diffs/npm/@types%2fnode/24.13.4/24.19.2) |  |  |
| [@vitest/coverage-v8](https://vitest.dev/guide/coverage) ([source](https://github.com/vitest-dev/vitest/tree/HEAD/packages/coverage-v8)) | [`5.0.0` → `5.0.5`](https://renovatebot.com/diffs/npm/@vitest%2fcoverage-v8/5.0.0/5.0.5) |  |  |
| [eslint-plugin-react-refresh](https://github.com/ArnaudBarre/eslint-plugin-react-refresh) | [`^0.4.24` → `^0.5.0`](https://renovatebot.com/diffs/npm/eslint-plugin-react-refresh/0.4.26/0.5.7) |  |  |
| [jsdom](https://github.com/jsdom/jsdom) | [`30.0.1` → `30.1.3`](https://renovatebot.com/diffs/npm/jsdom/30.0.1/30.1.3) |  |  |
| [react](https://react.dev/) ([source](https://github.com/react/react/tree/HEAD/packages/react)) | [`19.3.0` → `19.3.1`](https://renovatebot.com/diffs/npm/react/19.3.0/19.3.1) |  |  |
| [react-dom](https://react.dev/) ([source](https://github.com/react/react/tree/HEAD/packages/react-dom)) | [`19.3.0` → `19.3.1`](https://renovatebot.com/diffs/npm/react-dom/19.3.0/19.3.1) |  |  |
| [react-router](https://github.com/remix-run/react-router) ([source](https://github.com/remix-run/react-router/tree/HEAD/packages/react-router)) | [`7.18.3` → `7.18.4`](https://renovatebot.com/diffs/npm/react-router/7.18.3/7.18.4) |  |  |
| [shadcn](https://ui.shadcn.com) ([source](https://github.com/shadcn-ui/ui/tree/HEAD/packages/shadcn)) | [`4.21.0` → `4.22.1`](https://renovatebot.com/diffs/npm/shadcn/4.21.0/4.22.1) |  |  |
| [socket.io-client](https://github.com/socketio/socket.io/tree/main/packages/socket.io-client#readme) ([source](https://github.com/socketio/socket.io)) | [`4.8.3` → `4.8.4`](https://renovatebot.com/diffs/npm/socket.io-client/4.8.3/4.8.4) |  |  |
| [tailwind-merge](https://github.com/dcastil/tailwind-merge) ([source](https://github.com/dcastil/tailwind-merge/tree/HEAD/packages/tailwind-merge)) | [`3.6.0` → `3.7.0`](https://renovatebot.com/diffs/npm/tailwind-merge/3.6.0/3.7.0) |  |  |
| [typescript-eslint](https://typescript-eslint.io/packages/typescript-eslint) ([source](https://github.com/typescript-eslint/typescript-eslint/tree/HEAD/packages/typescript-eslint)) | [`8.70.0` → `8.72.0`](https://renovatebot.com/diffs/npm/typescript-eslint/8.70.0/8.72.0) |  |  |
| [vitest](https://vitest.dev) ([source](https://github.com/vitest-dev/vitest/tree/HEAD/packages/vitest)) | [`5.0.0` → `5.0.5`](https://renovatebot.com/diffs/npm/vitest/5.0.0/5.0.5) |  |  |
| [zustand](https://github.com/pmndrs/zustand) | [`5.0.15` → `5.0.16`](https://renovatebot.com/diffs/npm/zustand/5.0.15/5.0.16) |  |  |
---
### Release Notes
<details>
<summary>mui/base-ui (@​base-ui/react)</summary>
### [`v1.9.0`](https://github.com/mui/base-ui/blob/HEAD/CHANGELOG.md#v190)
[Compare Source](https://github.com/mui/base-ui/compare/v1.8.0...v1.9.0)
<!-- generated comparing v1.8.0...master -->
*Oct 9, 2026*
##### General changes
- Export `CssVariables` and `DataAttributes` types ([#​5243](https://github.com/mui/base-ui/issues/5243)) by [@​superhooman](https://github.com/superhooman)
- Fix stale focused field state ([#​5345](https://github.com/mui/base-ui/issues/5345)) by [@​atomiks](https://github.com/atomiks)
- Fix animation waits retaining detached elements ([#​5719](https://github.com/mui/base-ui/issues/5719)) by [@​flaviendelangle](https://github.com/flaviendelangle)
- Keep item registration in sync when items change under Strict Mode ([#​5862](https://github.com/mui/base-ui/issues/5862)) by [@​atomiks](https://github.com/atomiks)
- Avoid re-rendering inactive triggers on open and close ([#​5865](https://github.com/mui/base-ui/issues/5865)) by [@​atomiks](https://github.com/atomiks)
##### Accordion
- Fix `<Accordion.Trigger>`'s `data-value` and `data-index` attributes ([#​5705](https://github.com/mui/base-ui/issues/5705)) by [@​cpruijsen](https://github.com/cpruijsen)
- Apply the native `disabled` attribute to `<Accordion.Trigger>` when using native buttons ([#​5607](https://github.com/mui/base-ui/issues/5607)) by [@​atomiks](https://github.com/atomiks)
- Expand `hiddenUntilFound` panels synchronously on `beforematch` ([#​5514](https://github.com/mui/base-ui/issues/5514)) by [@​aarongarciah](https://github.com/aarongarciah)
##### Alert Dialog
- Don't associate a programmatically opened popup with a trigger that did not open it ([#​5641](https://github.com/mui/base-ui/issues/5641)) by [@​michaldudak](https://github.com/michaldudak)
##### Autocomplete
- Fix `autoHighlight` for asynchronous results ([#​5818](https://github.com/mui/base-ui/issues/5818)) by [@​atomiks](https://github.com/atomiks)
- Pass the originating event to `onItemHighlighted`. Pointer events may be `MouseEvent` or `PointerEvent`; typing reports the reason `none` ([#​5838](https://github.com/mui/base-ui/issues/5838)) by [@​atomiks](https://github.com/atomiks)
- Decouple automatic unmounting from `actionsRef`. Call `eventDetails.preventUnmountOnClose()` in `onOpenChange` to opt out of automatic unmounting ([#​5734](https://github.com/mui/base-ui/issues/5734)) by [@​michaldudak](https://github.com/michaldudak)
##### Checkbox
- Prefer `aria-label` over associated labels ([#​5787](https://github.com/mui/base-ui/issues/5787)) by [@​atomiks](https://github.com/atomiks)
##### Collapsible
- Apply the native `disabled` attribute to `<Collapsible.Trigger>` when using native buttons ([#​5607](https://github.com/mui/base-ui/issues/5607)) by [@​atomiks](https://github.com/atomiks)
- Finish closing when the render function removes the panel ([#​5890](https://github.com/mui/base-ui/issues/5890)) by [@​michaldudak](https://github.com/michaldudak)
- Restore animations when a removed panel reopens ([#​5891](https://github.com/mui/base-ui/issues/5891)) by [@​michaldudak](https://github.com/michaldudak)
- Expand `hiddenUntilFound` panels synchronously on `beforematch` ([#​5514](https://github.com/mui/base-ui/issues/5514)) by [@​aarongarciah](https://github.com/aarongarciah)
##### Combobox
- Fix stale chip focus after returning to the input ([#​5879](https://github.com/mui/base-ui/issues/5879)) by [@​mdm317](https://github.com/mdm317)
- Fix `autoHighlight` for asynchronous results ([#​5818](https://github.com/mui/base-ui/issues/5818)) by [@​atomiks](https://github.com/atomiks)
- Decouple automatic unmounting from `actionsRef`. Call `eventDetails.preventUnmountOnClose()` in `onOpenChange` to opt out of automatic unmounting ([#​5734](https://github.com/mui/base-ui/issues/5734)) by [@​michaldudak](https://github.com/michaldudak)
- Fix label focus in Shadow DOM ([#​5871](https://github.com/mui/base-ui/issues/5871)) by [@​lyzno1](https://github.com/lyzno1)
- Pass the originating event to `onItemHighlighted`. Pointer events may be `MouseEvent` or `PointerEvent`; typing reports the reason `none` ([#​5838](https://github.com/mui/base-ui/issues/5838)) by [@​atomiks](https://github.com/atomiks)
- Reset typeahead state when closing without moving focus ([#​5816](https://github.com/mui/base-ui/issues/5816)) by [@​mdm317](https://github.com/mdm317)
- Accept readonly arrays for multiple values ([#​5710](https://github.com/mui/base-ui/issues/5710)) by [@​MonstraG](https://github.com/MonstraG)
- Share item indicator implementation ([#​5728](https://github.com/mui/base-ui/issues/5728)) by [@​flaviendelangle](https://github.com/flaviendelangle)
- Improve mount performance of large lists ([#​5819](https://github.com/mui/base-ui/issues/5819)) by [@​atomiks](https://github.com/atomiks)
- Combine item store subscriptions ([#​5863](https://github.com/mui/base-ui/issues/5863)) by [@​atomiks](https://github.com/atomiks)
##### Dialog
- Keep parent open when closing a nested dialog in a closed shadow root ([#​5780](https://github.com/mui/base-ui/issues/5780)) by [@​atomiks](https://github.com/atomiks)
- Don't associate a programmatically opened popup with a trigger that did not open it ([#​5641](https://github.com/mui/base-ui/issues/5641)) by [@​michaldudak](https://github.com/michaldudak)
##### Drawer
- Preserve swipe release velocity after a trailing stationary pointer event ([#​5658](https://github.com/mui/base-ui/issues/5658)) by [@​padd60](https://github.com/padd60)
- Fix swipe release velocity on 120 Hz input ([#​5845](https://github.com/mui/base-ui/issues/5845)) by [@​atomiks](https://github.com/atomiks)
- Remove excess virtual keyboard scroll space ([#​5768](https://github.com/mui/base-ui/issues/5768)) by [@​atomiks](https://github.com/atomiks)
- Avoid excess keyboard spacing in Chrome on iOS ([#​5774](https://github.com/mui/base-ui/issues/5774)) by [@​atomiks](https://github.com/atomiks)
- Fix native focus scrolling on iOS 27 ([#​5769](https://github.com/mui/base-ui/issues/5769)) by [@​atomiks](https://github.com/atomiks)
- Handle CloseWatcher close requests from the cancel event ([#​5770](https://github.com/mui/base-ui/issues/5770)) by [@​atomiks](https://github.com/atomiks)
- Add `x` and `y` options to `data-base-ui-swipe-ignore` ([#​5808](https://github.com/mui/base-ui/issues/5808)) by [@​citrus](https://github.com/citrus)
- Scroll instead of swiping when a drag starts on an SVG ([#​5844](https://github.com/mui/base-ui/issues/5844)) by [@​atomiks](https://github.com/atomiks)
- Avoid touch event overhead while the drawer is closed ([#​5864](https://github.com/mui/base-ui/issues/5864)) by [@​atomiks](https://github.com/atomiks)
- Preserve item taps when dismissing the virtual keyboard ([#​5882](https://github.com/mui/base-ui/issues/5882)) by [@​atomiks](https://github.com/atomiks)
- Avoid retaining unmounted drawers in `<Drawer.Provider>` ([#​5921](https://github.com/mui/base-ui/issues/5921)) by [@​atomiks](https://github.com/atomiks)
- Don't associate a programmatically opened popup with a trigger that did not open it ([#​5641](https://github.com/mui/base-ui/issues/5641)) by [@​michaldudak](https://github.com/michaldudak)
##### Field
- Avoid warnings when an uncontrolled `<Field.Control>`'s `defaultValue` changes ([#​5881](https://github.com/mui/base-ui/issues/5881)) by [@​atomiks](https://github.com/atomiks)
- Fix label focus in Shadow DOM ([#​5871](https://github.com/mui/base-ui/issues/5871)) by [@​lyzno1](https://github.com/lyzno1)
##### Menu
- Add menu filtering behavior with `<Menu.FilterProvider>`, `<Menu.Input>`, and the `onItemHighlighted` callback (preview) ([#​5527](https://github.com/mui/base-ui/issues/5527), [#​5838](https://github.com/mui/base-ui/issues/5838), [#​5840](https://github.com/mui/base-ui/issues/5840), [#​5868](https://github.com/mui/base-ui/issues/5868)) by [@​atomiks](https://github.com/atomiks) and [@​jjenzz](https://github.com/jjenzz)
- Fix nested menus without a root trigger ([#​5645](https://github.com/mui/base-ui/issues/5645)) by [@​LukasTy](https://github.com/LukasTy)
- Fix event listener cleanup in `<Menu.Trigger>` ([#​5764](https://github.com/mui/base-ui/issues/5764)) by [@​sai6855](https://github.com/sai6855)
- Release parent menu subscriptions when a submenu unmounts ([#​5833](https://github.com/mui/base-ui/issues/5833)) by [@​santiago-ramos-02](https://github.com/santiago-ramos-02)
- Pass the native event to `onOpenChange` when an item press closes the menu ([#​5789](https://github.com/mui/base-ui/issues/5789)) by [@​michaldudak](https://github.com/michaldudak)
- Close submenu when focus returns through its guard ([#​5793](https://github.com/mui/base-ui/issues/5793)) by [@​jjenzz](https://github.com/jjenzz)
- Toggle submenus on repeated trigger activation ([#​5824](https://github.com/mui/base-ui/issues/5824)) by [@​jjenzz](https://github.com/jjenzz)
- Reset typeahead state when closing without moving focus ([#​5816](https://github.com/mui/base-ui/issues/5816)) by [@​mdm317](https://github.com/mdm317)
- Fix focus guard loop when the trigger is the only tabbable element ([#​5733](https://github.com/mui/base-ui/issues/5733)) by [@​atomiks](https://github.com/atomiks)
- Fix hover-out animations when switching between detached triggers ([#​4261](https://github.com/mui/base-ui/issues/4261)) by [@​michaldudak](https://github.com/michaldudak)
- Don't start a viewport transition when the trigger remounts while closed ([#​5887](https://github.com/mui/base-ui/issues/5887)) by [@​michaldudak](https://github.com/michaldudak)
- Keep transition state consistent when reopening a retained popup ([#​5738](https://github.com/mui/base-ui/issues/5738)) by [@​LukasTy](https://github.com/LukasTy)
- Improve mount performance of large lists ([#​5819](https://github.com/mui/base-ui/issues/5819)) by [@​atomiks](https://github.com/atomiks)
##### Number Field
- Fire `<NumberField.ScrubArea>`'s `onClick` once per click ([#​5889](https://github.com/mui/base-ui/issues/5889)) by [@​michaldudak](https://github.com/michaldudak)
##### OTP Field
- Fix Safari IME composition over-filling slots ([#​5098](https://github.com/mui/base-ui/issues/5098)) by [@​atomiks](https://github.com/atomiks)
##### Popover
- Fix focus guard loop when the trigger is the only tabbable element ([#​5733](https://github.com/mui/base-ui/issues/5733)) by [@​atomiks](https://github.com/atomiks)
- Fix hover-out animations when switching between detached triggers ([#​4261](https://github.com/mui/base-ui/issues/4261)) by [@​michaldudak](https://github.com/michaldudak)
- Don't start a viewport transition when the trigger remounts while closed ([#​5887](https://github.com/mui/base-ui/issues/5887)) by [@​michaldudak](https://github.com/michaldudak)
- Keep transition state consistent when reopening a retained popup ([#​5738](https://github.com/mui/base-ui/issues/5738)) by [@​LukasTy](https://github.com/LukasTy)
##### Preview Card
- Don't start a viewport transition when the trigger remounts while closed ([#​5887](https://github.com/mui/base-ui/issues/5887)) by [@​michaldudak](https://github.com/michaldudak)
##### Radio Group
- Prefer `aria-label` over associated labels ([#​5787](https://github.com/mui/base-ui/issues/5787)) by [@​atomiks](https://github.com/atomiks)
- Prevent ignored arrow keys from selecting on refocus ([#​5643](https://github.com/mui/base-ui/issues/5643)) by [@​tjdsksro90](https://github.com/tjdsksro90)
- Correct `inputRef` forwarding and cleanup ([#​5775](https://github.com/mui/base-ui/issues/5775)) by [@​lyzno1](https://github.com/lyzno1)
##### Scroll Area
- Remove presentational viewport role ([#​5813](https://github.com/mui/base-ui/issues/5813)) by [@​sarthakmalik0810](https://github.com/sarthakmalik0810)
##### Select
- Decouple automatic unmounting from `actionsRef`. Call `eventDetails.preventUnmountOnClose()` in `onOpenChange` to opt out of automatic unmounting ([#​5734](https://github.com/mui/base-ui/issues/5734)) by [@​michaldudak](https://github.com/michaldudak)
- Fix label focus in Shadow DOM ([#​5871](https://github.com/mui/base-ui/issues/5871)) by [@​lyzno1](https://github.com/lyzno1)
- Reset typeahead state when closing without moving focus ([#​5816](https://github.com/mui/base-ui/issues/5816)) by [@​mdm317](https://github.com/mdm317)
- Synchronize root props through the store ([#​5589](https://github.com/mui/base-ui/issues/5589)) by [@​flaviendelangle](https://github.com/flaviendelangle)
- Share item indicator implementation ([#​5728](https://github.com/mui/base-ui/issues/5728)) by [@​flaviendelangle](https://github.com/flaviendelangle)
- Improve mount performance of large lists ([#​5819](https://github.com/mui/base-ui/issues/5819)) by [@​atomiks](https://github.com/atomiks)
- Combine item store subscriptions ([#​5863](https://github.com/mui/base-ui/issues/5863)) by [@​atomiks](https://github.com/atomiks)
- Accept readonly arrays for multiple values ([#​5710](https://github.com/mui/base-ui/issues/5710)) by [@​MonstraG](https://github.com/MonstraG)
##### Slider
- Fix label focus in Shadow DOM ([#​5871](https://github.com/mui/base-ui/issues/5871)) by [@​lyzno1](https://github.com/lyzno1)
- End drags on `touchcancel` and `pointercancel` ([#​5639](https://github.com/mui/base-ui/issues/5639)) by [@​brijeshb42](https://github.com/brijeshb42)
- Fix touch track taps not firing `onValueCommitted` ([#​5779](https://github.com/mui/base-ui/issues/5779)) by [@​atomiks](https://github.com/atomiks)
- Preserve single-element array values on pointer interaction ([#​5781](https://github.com/mui/base-ui/issues/5781)) by [@​atomiks](https://github.com/atomiks)
##### Switch
- Prefer `aria-label` over associated labels ([#​5787](https://github.com/mui/base-ui/issues/5787)) by [@​atomiks](https://github.com/atomiks)
##### Tabs
- Fix selecting tabs with function values ([#​5886](https://github.com/mui/base-ui/issues/5886)) by [@​michaldudak](https://github.com/michaldudak)
##### Toast
- Keep timers paused during overlapping interactions ([#​5809](https://github.com/mui/base-ui/issues/5809)) by [@​lyzno1](https://github.com/lyzno1)
##### Tooltip
- Don't start a viewport transition when the trigger remounts while closed ([#​5887](https://github.com/mui/base-ui/issues/5887)) by [@​michaldudak](https://github.com/michaldudak)
All contributors of this release in alphabetical order: [@​aarongarciah](https://github.com/aarongarciah), [@​atomiks](https://github.com/atomiks), [@​brijeshb42](https://github.com/brijeshb42), [@​citrus](https://github.com/citrus), [@​cpruijsen](https://github.com/cpruijsen), [@​flaviendelangle](https://github.com/flaviendelangle), [@​jjenzz](https://github.com/jjenzz), [@​LukasTy](https://github.com/LukasTy), [@​lyzno1](https://github.com/lyzno1), [@​mdm317](https://github.com/mdm317), [@​michaldudak](https://github.com/michaldudak), [@​MonstraG](https://github.com/MonstraG), [@​padd60](https://github.com/padd60), [@​sai6855](https://github.com/sai6855), [@​santiago-ramos-02](https://github.com/santiago-ramos-02), [@​sarthakmalik0810](https://github.com/sarthakmalik0810), [@​superhooman](https://github.com/superhooman), [@​tjdsksro90](https://github.com/tjdsksro90)
</details>
<details>
<summary>testing-library/dom-testing-library (@​testing-library/dom)</summary>
### [`v10.4.2`](https://github.com/testing-library/dom-testing-library/releases/tag/v10.4.2)
[Compare Source](https://github.com/testing-library/dom-testing-library/compare/v10.4.1...v10.4.2)
##### Bug Fixes
- **deps:** pin [@​types/node](https://github.com/types/node) to a TypeScript 4-compatible version ([#​1386](https://github.com/testing-library/dom-testing-library/issues/1386)) ([6049cc0](https://github.com/testing-library/dom-testing-library/commit/6049cc0bc7cf2201625c476c95fa6299d0e2fa8b))
</details>
<details>
<summary>testing-library/user-event (@​testing-library/user-event)</summary>
### [`v14.6.8`](https://github.com/testing-library/user-event/releases/tag/v14.6.8)
[Compare Source](https://github.com/testing-library/user-event/compare/v14.6.7...v14.6.8)
##### Bug Fixes
- treat programmatic null input values as empty string ([#​1329](https://github.com/testing-library/user-event/issues/1329)) ([1951eb7](https://github.com/testing-library/user-event/commit/1951eb77cc190a68eb6dac6bd40b53648b18805f))
</details>
<details>
<summary>vitest-dev/vitest (@​vitest/coverage-v8)</summary>
### [`v5.0.5`](https://github.com/vitest-dev/vitest/releases/tag/v5.0.5)
[Compare Source](https://github.com/vitest-dev/vitest/compare/v5.0.4...v5.0.5)
##### 🐞 Bug Fixes
- Keep vite default `fs.deny` with api token file - by [@​hi-ogawa](https://github.com/hi-ogawa), **Hiroshi Ogawa** and **Claude Opus 5.5** in [#​11578](https://github.com/vitest-dev/vitest/issues/11578) [<samp>(28dc1)</samp>](https://github.com/vitest-dev/vitest/commit/28dc1edfb)
- Handle quoted file names in `--changed` - by [@​sheremet-va](https://github.com/sheremet-va) in [#​11583](https://github.com/vitest-dev/vitest/issues/11583) [<samp>(14921)</samp>](https://github.com/vitest-dev/vitest/commit/14921e962)
- Add `data` to the `import.meta.hot` stub - by [@​sheremet-va](https://github.com/sheremet-va) in [#​11590](https://github.com/vitest-dev/vitest/issues/11590) [<samp>(3a828)</samp>](https://github.com/vitest-dev/vitest/commit/3a8289ac3)
- Set `skip` in `skipIf`, ignore `undefined` options - by [@​sheremet-va](https://github.com/sheremet-va) in [#​11591](https://github.com/vitest-dev/vitest/issues/11591) [<samp>(d523a)</samp>](https://github.com/vitest-dev/vitest/commit/d523a15f2)
- Skip builtin loading in async leak detector - by [@​sheremet-va](https://github.com/sheremet-va) in [#​11598](https://github.com/vitest-dev/vitest/issues/11598) [<samp>(fe86a)</samp>](https://github.com/vitest-dev/vitest/commit/fe86a64c6)
- Keep the import frame in native loader errors - by [@​sheremet-va](https://github.com/sheremet-va) in [#​11599](https://github.com/vitest-dev/vitest/issues/11599) [<samp>(9697b)</samp>](https://github.com/vitest-dev/vitest/commit/9697b3894)
- Run hook cleanups when a later hook fails - by [@​sheremet-va](https://github.com/sheremet-va) in [#​11605](https://github.com/vitest-dev/vitest/issues/11605) [<samp>(6c5a4)</samp>](https://github.com/vitest-dev/vitest/commit/6c5a44720)
- Release mocks of finished test files - by [@​sheremet-va](https://github.com/sheremet-va) in [#​11607](https://github.com/vitest-dev/vitest/issues/11607) [<samp>(e9c3d)</samp>](https://github.com/vitest-dev/vitest/commit/e9c3d72f0)
- Abort all running tests on cancel - by [@​sheremet-va](https://github.com/sheremet-va) in [#​11606](https://github.com/vitest-dev/vitest/issues/11606) [<samp>(6621a)</samp>](https://github.com/vitest-dev/vitest/commit/6621a72d6)
- **browser**:
- Ignore synthetic pagehide events - by [@​sheremet-va](https://github.com/sheremet-va) in [#​11582](https://github.com/vitest-dev/vitest/issues/11582) [<samp>(ca081)</samp>](https://github.com/vitest-dev/vitest/commit/ca0813584)
- Run plugin buildStart on server creation - by [@​sheremet-va](https://github.com/sheremet-va) in [#​11593](https://github.com/vitest-dev/vitest/issues/11593) [<samp>(ea611)</samp>](https://github.com/vitest-dev/vitest/commit/ea611e44c)
- Drop late connections of closed sessions - by [@​sheremet-va](https://github.com/sheremet-va) in [#​11600](https://github.com/vitest-dev/vitest/issues/11600) [<samp>(f161e)</samp>](https://github.com/vitest-dev/vitest/commit/f161e6df2)
- Wait 30s for the browser to close - by [@​sheremet-va](https://github.com/sheremet-va) in [#​11601](https://github.com/vitest-dev/vitest/issues/11601) [<samp>(6498b)</samp>](https://github.com/vitest-dev/vitest/commit/6498b666a)
- Run global setup once with instances - by [@​sheremet-va](https://github.com/sheremet-va) in [#​11596](https://github.com/vitest-dev/vitest/issues/11596) [<samp>(8dd67)</samp>](https://github.com/vitest-dev/vitest/commit/8dd67c262)
- **reporter**:
- End reason `&#​39;failed&#​39;` on worker crash - by [@​AriPerkkio](https://github.com/AriPerkkio) in [#​11568](https://github.com/vitest-dev/vitest/issues/11568) [<samp>(6ae8e)</samp>](https://github.com/vitest-dev/vitest/commit/6ae8e89ff)
##### [View changes on GitHub](https://github.com/vitest-dev/vitest/compare/v5.0.4...v5.0.5)
### [`v5.0.4`](https://github.com/vitest-dev/vitest/releases/tag/v5.0.4)
[Compare Source](https://github.com/vitest-dev/vitest/compare/v5.0.3...v5.0.4)
##### 🚀 Features
- **experimental**:
- Tag cache directories with CACHEDIR.TAG - by [@​lifeiscontent](https://github.com/lifeiscontent) in [#​11461](https://github.com/vitest-dev/vitest/issues/11461) [<samp>(a8ea3)</samp>](https://github.com/vitest-dev/vitest/commit/a8ea3c8fd)
- Support `test.ui.theme` option - by [@​sheremet-va](https://github.com/sheremet-va) in [#​11499](https://github.com/vitest-dev/vitest/issues/11499) [<samp>(1da66)</samp>](https://github.com/vitest-dev/vitest/commit/1da66405d)
- Highlight selector multiple matches in trace view - by [@​hi-ogawa](https://github.com/hi-ogawa), **Hiroshi Ogawa** and **Claude Opus 5.5** in [#​11489](https://github.com/vitest-dev/vitest/issues/11489) [<samp>(5abba)</samp>](https://github.com/vitest-dev/vitest/commit/5abba1e1b)
- Print how many tests were affected and a total when running `--changed` - by [@​sheremet-va](https://github.com/sheremet-va) in [#​11424](https://github.com/vitest-dev/vitest/issues/11424) [<samp>(a2336)</samp>](https://github.com/vitest-dev/vitest/commit/a23368585)
- Add an option to cache dependencies instead of statically parsing them - by [@​sheremet-va](https://github.com/sheremet-va) in [#​11515](https://github.com/vitest-dev/vitest/issues/11515) [<samp>(c0601)</samp>](https://github.com/vitest-dev/vitest/commit/c06012ac8)
- Add fit and zoom controls to trace viewer - by [@​hi-ogawa](https://github.com/hi-ogawa), **Hiroshi Ogawa** and **Claude Opus 5.5** in [#​11490](https://github.com/vitest-dev/vitest/issues/11490) [<samp>(f5dd9)</samp>](https://github.com/vitest-dev/vitest/commit/f5dd99ed0)
##### 🐞 Bug Fixes
- Fail the run on git and location filter errors - by [@​sheremet-va](https://github.com/sheremet-va) in [#​11430](https://github.com/vitest-dev/vitest/issues/11430) [<samp>(30d03)</samp>](https://github.com/vitest-dev/vitest/commit/30d0304d2)
- Enable fsModuleCache by default - by [@​sheremet-va](https://github.com/sheremet-va) in [#​11435](https://github.com/vitest-dev/vitest/issues/11435) [<samp>(ad208)</samp>](https://github.com/vitest-dev/vitest/commit/ad208cc29)
- Track project files and mocks with --changed - by [@​sheremet-va](https://github.com/sheremet-va) in [#​11432](https://github.com/vitest-dev/vitest/issues/11432) [<samp>(b0f2b)</samp>](https://github.com/vitest-dev/vitest/commit/b0f2b3bb9)
- Refactor caching, fix `:` in project and change the shape of `results` cache - by [@​sheremet-va](https://github.com/sheremet-va) in [#​11453](https://github.com/vitest-dev/vitest/issues/11453) [<samp>(9673c)</samp>](https://github.com/vitest-dev/vitest/commit/9673c49a4)
- Keep full `$` string values when `taskTitleValueFormatTruncate` is 0 - by [@​hi-ogawa](https://github.com/hi-ogawa), **Hiroshi Ogawa** and **Claude Opus 5.5** in [#​11485](https://github.com/vitest-dev/vitest/issues/11485) [<samp>(4f7e1)</samp>](https://github.com/vitest-dev/vitest/commit/4f7e1799b)
- Resolve node builtins in client environments - by [@​sheremet-va](https://github.com/sheremet-va) in [#​11417](https://github.com/vitest-dev/vitest/issues/11417) [<samp>(56b31)</samp>](https://github.com/vitest-dev/vitest/commit/56b319ac6)
- Fix module graph builtin externals after [#​11421](https://github.com/vitest-dev/vitest/issues/11421) - by [@​hi-ogawa](https://github.com/hi-ogawa), **Hiroshi Ogawa** and **Claude Opus 5.5** in [#​11491](https://github.com/vitest-dev/vitest/issues/11491) and [#​11421](https://github.com/vitest-dev/vitest/issues/11421) [<samp>(008e1)</samp>](https://github.com/vitest-dev/vitest/commit/008e184cb)
- Wrap module mocks during in-source testing - by [@​sheremet-va](https://github.com/sheremet-va) in [#​11505](https://github.com/vitest-dev/vitest/issues/11505) [<samp>(36d19)</samp>](https://github.com/vitest-dev/vitest/commit/36d19cb00)
- Handle line endings in snapshot - by [@​sheremet-va](https://github.com/sheremet-va) in [#​11522](https://github.com/vitest-dev/vitest/issues/11522) [<samp>(4c468)</samp>](https://github.com/vitest-dev/vitest/commit/4c468aa40)
- Respect root in projects - by [@​sheremet-va](https://github.com/sheremet-va) in [#​11521](https://github.com/vitest-dev/vitest/issues/11521) [<samp>(26642)</samp>](https://github.com/vitest-dev/vitest/commit/26642f793)
- Resolve mocks in directories with spaces - by [@​sheremet-va](https://github.com/sheremet-va) in [#​11539](https://github.com/vitest-dev/vitest/issues/11539) [<samp>(caaef)</samp>](https://github.com/vitest-dev/vitest/commit/caaef9416)
- **api**:
- Publish the api token atomically - by [@​umairnawaz333](https://github.com/umairnawaz333) in [#​11323](https://github.com/vitest-dev/vitest/issues/11323) [<samp>(6f990)</samp>](https://github.com/vitest-dev/vitest/commit/6f990fef1)
- **browser**:
- Close the mock route interception race - by [@​cplieger](https://github.com/cplieger) and [@​sheremet-va](https://github.com/sheremet-va) in [#​8339](https://github.com/vitest-dev/vitest/issues/8339) and [#​11083](https://github.com/vitest-dev/vitest/issues/11083) [<samp>(d6620)</samp>](https://github.com/vitest-dev/vitest/commit/d6620fae6)
- Allow toHaveTextContent without arguments - by [@​nomadical](https://github.com/nomadical) in [#​11425](https://github.com/vitest-dev/vitest/issues/11425) [<samp>(8ebcf)</samp>](https://github.com/vitest-dev/vitest/commit/8ebcf5f8a)
- Apply API options without browser config - by [@​sheremet-va](https://github.com/sheremet-va) in [#​10852](https://github.com/vitest-dev/vitest/issues/10852) [<samp>(ad055)</samp>](https://github.com/vitest-dev/vitest/commit/ad055837b)
- Preserve undefined command arguments - by [@​sheremet-va](https://github.com/sheremet-va) and [@​AriPerkkio](https://github.com/AriPerkkio) in [#​11497](https://github.com/vitest-dev/vitest/issues/11497) [<samp>(1576d)</samp>](https://github.com/vitest-dev/vitest/commit/1576d3d89)
- Wait for setup mocks before importing a test file - by [@​kasperpeulen](https://github.com/kasperpeulen) in [#​11520](https://github.com/vitest-dev/vitest/issues/11520) [<samp>(b61d1)</samp>](https://github.com/vitest-dev/vitest/commit/b61d1ced3)
- Avoid extra scroll outside the iframe - by [@​sheremet-va](https://github.com/sheremet-va) in [#​11523](https://github.com/vitest-dev/vitest/issues/11523) [<samp>(662e8)</samp>](https://github.com/vitest-dev/vitest/commit/662e8a363)
- Run browser instances as workers - by [@​sheremet-va](https://github.com/sheremet-va) in [#​11525](https://github.com/vitest-dev/vitest/issues/11525) [<samp>(bf04b)</samp>](https://github.com/vitest-dev/vitest/commit/bf04b9ccc)
- ⚠️ This can degrade performance if you have a custom `maxWorkers` setting. Previously, it was applied incorrectly and could lead to Vitest using too many resources. For example, a lower number would still open too many browsers. Fixing it means Vitest opens less instances by default now.
- Open one cdp session per tester - by [@​sheremet-va](https://github.com/sheremet-va) in [#​11542](https://github.com/vitest-dev/vitest/issues/11542) [<samp>(69e63)</samp>](https://github.com/vitest-dev/vitest/commit/69e6369f6)
- Clean up unmocked and pending mocks - by [@​sheremet-va](https://github.com/sheremet-va) in [#​11537](https://github.com/vitest-dev/vitest/issues/11537) [<samp>(5c955)</samp>](https://github.com/vitest-dev/vitest/commit/5c9552173)
- **coverage**:
- V8 browser memory leak between test files - by [@​AriPerkkio](https://github.com/AriPerkkio) in [#​11466](https://github.com/vitest-dev/vitest/issues/11466) [<samp>(2297d)</samp>](https://github.com/vitest-dev/vitest/commit/2297d93a8)
- `allowExternal` fails to include uncovered files - by [@​AriPerkkio](https://github.com/AriPerkkio) in [#​11513](https://github.com/vitest-dev/vitest/issues/11513) [<samp>(4ef00)</samp>](https://github.com/vitest-dev/vitest/commit/4ef000a93)
- Filenames containing brackets incorrectly showing as uncovered - by [@​AriPerkkio](https://github.com/AriPerkkio) in [#​11531](https://github.com/vitest-dev/vitest/issues/11531) [<samp>(0fa80)</samp>](https://github.com/vitest-dev/vitest/commit/0fa80f53c)
- Istanbul coverage wrong when module transform warmups - by [@​AriPerkkio](https://github.com/AriPerkkio) in [#​11529](https://github.com/vitest-dev/vitest/issues/11529) [<samp>(9f61d)</samp>](https://github.com/vitest-dev/vitest/commit/9f61dcca2)
- **deps**:
- Update all non-major dependencies - by [@​sheremet-va](https://github.com/sheremet-va) in [#​11167](https://github.com/vitest-dev/vitest/issues/11167) [<samp>(c74e0)</samp>](https://github.com/vitest-dev/vitest/commit/c74e099a9)
- **expect**:
- Fix `Map` and `Set` deep equality in some assertions - by [@​hi-ogawa](https://github.com/hi-ogawa), **Hiroshi Ogawa** and **Claude Opus 5.5** in [#​11402](https://github.com/vitest-dev/vitest/issues/11402) [<samp>(b4e79)</samp>](https://github.com/vitest-dev/vitest/commit/b4e79fd7a)
- Check value in chai-style returned - by [@​sheremet-va](https://github.com/sheremet-va) in [#​11500](https://github.com/vitest-dev/vitest/issues/11500) [<samp>(1aca0)</samp>](https://github.com/vitest-dev/vitest/commit/1aca02a21)
- **mocker**:
- Fix native loader mocking edge cases - by [@​sheremet-va](https://github.com/sheremet-va) in [#​11540](https://github.com/vitest-dev/vitest/issues/11540) [<samp>(cd423)</samp>](https://github.com/vitest-dev/vitest/commit/cd423ba04)
- **pretty-format**:
- Support boxed symbols - by [@​lehni](https://github.com/lehni) in [#​11445](https://github.com/vitest-dev/vitest/issues/11445) and [#​11446](https://github.com/vitest-dev/vitest/issues/11446) [<samp>(eba44)</samp>](https://github.com/vitest-dev/vitest/commit/eba44926e)
- **reporters**:
- Junit to strip ANSI sequences from all XML attributes - by [@​meganemura](https://github.com/meganemura) and **Claude Opus 5.5** in [#​11407](https://github.com/vitest-dev/vitest/issues/11407) [<samp>(e1a73)</samp>](https://github.com/vitest-dev/vitest/commit/e1a731470)
- **runner**:
- Don't cache failed fixture setups - by [@​hamed-bavar](https://github.com/hamed-bavar) in [#​11237](https://github.com/vitest-dev/vitest/issues/11237) and [#​11238](https://github.com/vitest-dev/vitest/issues/11238) [<samp>(4ee66)</samp>](https://github.com/vitest-dev/vitest/commit/4ee66c021)
- **typecheck**:
- Use typescript pool in toTestSpecification - by [@​sheremet-va](https://github.com/sheremet-va) in [#​11451](https://github.com/vitest-dev/vitest/issues/11451) [<samp>(5f273)</samp>](https://github.com/vitest-dev/vitest/commit/5f2739e74)
- **ui**:
- Remove duplicate browser-open call opening two tabs - by [@​feastyr69](https://github.com/feastyr69) in [#​11356](https://github.com/vitest-dev/vitest/issues/11356) and [#​11358](https://github.com/vitest-dev/vitest/issues/11358) [<samp>(d7e13)</samp>](https://github.com/vitest-dev/vitest/commit/d7e1315c1)
- Simplify explorer filtering + fix nested tests when search matches a suite - by [@​hi-ogawa](https://github.com/hi-ogawa), **Hiroshi Ogawa**, **Codex** and **Claude Opus 5.5** in [#​11262](https://github.com/vitest-dev/vitest/issues/11262) [<samp>(a627b)</samp>](https://github.com/vitest-dev/vitest/commit/a627be498)
- Store module graph once per environment - by [@​hi-ogawa](https://github.com/hi-ogawa), **Hiroshi Ogawa** and **Claude Opus 5.5** in [#​11421](https://github.com/vitest-dev/vitest/issues/11421) [<samp>(af903)</samp>](https://github.com/vitest-dev/vitest/commit/af903c65e)
- Mount index.html handler on the ui base path - by [@​hi-ogawa](https://github.com/hi-ogawa), **Hiroshi Ogawa** and **Claude Opus 5.5** in [#​11517](https://github.com/vitest-dev/vitest/issues/11517) [<samp>(1bc24)</samp>](https://github.com/vitest-dev/vitest/commit/1bc2495c7)
- Center split pane resize handle - by [@​hi-ogawa](https://github.com/hi-ogawa), **Hiroshi Ogawa** and **Claude Opus 5.5** in [#​11506](https://github.com/vitest-dev/vitest/issues/11506) [<samp>(e658b)</samp>](https://github.com/vitest-dev/vitest/commit/e658b9b6a)
- **vm**:
- Bind `this` to `module.exports` - by [@​sheremet-va](https://github.com/sheremet-va) in [#​11504](https://github.com/vitest-dev/vitest/issues/11504) [<samp>(b618a)</samp>](https://github.com/vitest-dev/vitest/commit/b618afd5c)
##### 🏎 Performance
- Reuse fsModuleCache when filtering by source - by [@​sheremet-va](https://github.com/sheremet-va) in [#​11428](https://github.com/vitest-dev/vitest/issues/11428) [<samp>(7ebd9)</samp>](https://github.com/vitest-dev/vitest/commit/7ebd95fdd)
- **spy**: Reset only mocks that were called or reconfigured - by [@​johan-gorter](https://github.com/johan-gorter) and **Claude Opus 5.5** in [#​11197](https://github.com/vitest-dev/vitest/issues/11197) [<samp>(28ef9)</samp>](https://github.com/vitest-dev/vitest/commit/28ef93df2)
##### [View changes on GitHub](https://github.com/vitest-dev/vitest/compare/v5.0.3...v5.0.4)
### [`v5.0.3`](https://github.com/vitest-dev/vitest/releases/tag/v5.0.3)
[Compare Source](https://github.com/vitest-dev/vitest/compare/v5.0.2...v5.0.3)
##### 🐞 Bug Fixes
- Isolate `result.status` between `repeats` runs - by [@​hi-ogawa](https://github.com/hi-ogawa), **Hiroshi Ogawa** and **Codex (GPT-6)** in [#​11218](https://github.com/vitest-dev/vitest/issues/11218) [<samp>(5dbeb)</samp>](https://github.com/vitest-dev/vitest/commit/5dbebe9e3)
- Don't print an interceptor warning in browser mode - by [@​sheremet-va](https://github.com/sheremet-va) in [#​11377](https://github.com/vitest-dev/vitest/issues/11377) [<samp>(15cc0)</samp>](https://github.com/vitest-dev/vitest/commit/15cc006aa)
- Don't retry when `test.fails` expectedly failed - by [@​hi-ogawa](https://github.com/hi-ogawa), **Hiroshi Ogawa** and **Codex (GPT-6)** in [#​11219](https://github.com/vitest-dev/vitest/issues/11219) [<samp>(b2458)</samp>](https://github.com/vitest-dev/vitest/commit/b24585f08)
- Scope cache key generators to projects - by [@​ecoyoung](https://github.com/ecoyoung) in [#​11281](https://github.com/vitest-dev/vitest/issues/11281) and [#​11301](https://github.com/vitest-dev/vitest/issues/11301) [<samp>(92ba7)</samp>](https://github.com/vitest-dev/vitest/commit/92ba7fc1d)
- **browser**:
- Delay server `listen` until tests start running - by [@​sheremet-va](https://github.com/sheremet-va) in [#​11366](https://github.com/vitest-dev/vitest/issues/11366) [<samp>(7d8ed)</samp>](https://github.com/vitest-dev/vitest/commit/7d8ed3e9b)
- Check mock path boundaries - by [@​saryn17](https://github.com/saryn17), **Ryosei Sato** and [@​sheremet-va](https://github.com/sheremet-va) in [#​11361](https://github.com/vitest-dev/vitest/issues/11361) and [#​11362](https://github.com/vitest-dev/vitest/issues/11362) [<samp>(1c388)</samp>](https://github.com/vitest-dev/vitest/commit/1c3888bce)
- Keep config of browser-consumed environments - by [@​kasperpeulen](https://github.com/kasperpeulen) and **Claude** in [#​11378](https://github.com/vitest-dev/vitest/issues/11378) [<samp>(aafc0)</samp>](https://github.com/vitest-dev/vitest/commit/aafc0996f)
- Ignore page crash while cancelling - by [@​sheremet-va](https://github.com/sheremet-va) in [#​11386](https://github.com/vitest-dev/vitest/issues/11386) [<samp>(7c367)</samp>](https://github.com/vitest-dev/vitest/commit/7c36748fa)
- `toMatchScreenshot` uses wrong reference on retried tests - by [@​macarie](https://github.com/macarie) in [#​11393](https://github.com/vitest-dev/vitest/issues/11393) [<samp>(c22ab)</samp>](https://github.com/vitest-dev/vitest/commit/c22aba992)
- **cache**:
- Revalidate imports of cached modules - by [@​sheremet-va](https://github.com/sheremet-va) in [#​11381](https://github.com/vitest-dev/vitest/issues/11381) [<samp>(38f98)</samp>](https://github.com/vitest-dev/vitest/commit/38f98855f)
- **deps**:
- Pin `why-is-node-running` to `3.2.1` to avoid users running into `ERR_PNPM_TRUST_DOWNGRADE` - by [@​AriPerkkio](https://github.com/AriPerkkio) in [#​11403](https://github.com/vitest-dev/vitest/issues/11403) [<samp>(f6c9a)</samp>](https://github.com/vitest-dev/vitest/commit/f6c9a4977)
- **expect**:
- Pass current equality testers to `expect.extend` asymmetric matchers - by [@​hi-ogawa](https://github.com/hi-ogawa), **Hiroshi Ogawa** and **Claude** in [#​11401](https://github.com/vitest-dev/vitest/issues/11401) [<samp>(3e794)</samp>](https://github.com/vitest-dev/vitest/commit/3e794a96b)
- **jsdom**:
- Support Blob on jsdom 30.1 - by [@​sheremet-va](https://github.com/sheremet-va) in [#​11379](https://github.com/vitest-dev/vitest/issues/11379) [<samp>(6c49b)</samp>](https://github.com/vitest-dev/vitest/commit/6c49b7197)
- **pool**:
- Preserve unique pool ids when `groupOrder` is set - by [@​mtorp](https://github.com/mtorp) in [#​11392](https://github.com/vitest-dev/vitest/issues/11392) [<samp>(50312)</samp>](https://github.com/vitest-dev/vitest/commit/50312ebb4)
- **ui**:
- Split-pane handle overlapping iframe - by [@​macarie](https://github.com/macarie) in [#​11221](https://github.com/vitest-dev/vitest/issues/11221) [<samp>(f91db)</samp>](https://github.com/vitest-dev/vitest/commit/f91db0dfd)
- **vitest**:
- Remove root temp dir on close - by [@​abhinav-phi](https://github.com/abhinav-phi) in [#​11248](https://github.com/vitest-dev/vitest/issues/11248) [<samp>(7c711)</samp>](https://github.com/vitest-dev/vitest/commit/7c7119cf7)
- **vm**:
- Do not optimize deps from index.html - by [@​ezefernandezyf](https://github.com/ezefernandezyf), **Hiroshi Ogawa** and **Codex (GPT-6)** in [#​11329](https://github.com/vitest-dev/vitest/issues/11329) and [#​11360](https://github.com/vitest-dev/vitest/issues/11360) [<samp>(caf28)</samp>](https://github.com/vitest-dev/vitest/commit/caf2887de)
- Don't reuse scripts across vite environments - by [@​MO2k4](https://github.com/MO2k4), **Martin Oehlert** and **Claude** in [#​11395](https://github.com/vitest-dev/vitest/issues/11395) [<samp>(346d3)</samp>](https://github.com/vitest-dev/vitest/commit/346d3896b)
##### [View changes on GitHub](https://github.com/vitest-dev/vitest/compare/v5.0.2...v5.0.3)
### [`v5.0.2`](https://github.com/vitest-dev/vitest/releases/tag/v5.0.2)
[Compare Source](https://github.com/vitest-dev/vitest/compare/v5.0.1...v5.0.2)
##### 🐞 Bug Fixes
- Bind `process` in case global is overwritten - by [@​AriPerkkio](https://github.com/AriPerkkio) in [#​11343](https://github.com/vitest-dev/vitest/issues/11343) [<samp>(0b792)</samp>](https://github.com/vitest-dev/vitest/commit/0b79231ad)
- **detect-async-leaks**:
- Ignore `process.stdio` handles - by [@​AriPerkkio](https://github.com/AriPerkkio) in [#​11333](https://github.com/vitest-dev/vitest/issues/11333) [<samp>(0fd6b)</samp>](https://github.com/vitest-dev/vitest/commit/0fd6b9790)
- **expect**:
- Fix `toMatchObject` with asymmetric matchers - by [@​ShreeBohara](https://github.com/ShreeBohara), **Claude Opus 5**, [@​hi-ogawa](https://github.com/hi-ogawa), **Hiroshi Ogawa** and **Codex (GPT-5)** in [#​11100](https://github.com/vitest-dev/vitest/issues/11100) [<samp>(42523)</samp>](https://github.com/vitest-dev/vitest/commit/42523289e)
- **jsdom**:
- Fix `Request` with `Blob` body on jsdom 28+ - by [@​harshit-d3v](https://github.com/harshit-d3v) in [#​11295](https://github.com/vitest-dev/vitest/issues/11295) [<samp>(d1c3e)</samp>](https://github.com/vitest-dev/vitest/commit/d1c3ecc93)
- **reporter**:
- `agent` to respect `--silent` - by [@​Raj4478](https://github.com/Raj4478) and [@​AriPerkkio](https://github.com/AriPerkkio) in [#​11271](https://github.com/vitest-dev/vitest/issues/11271) [<samp>(5b95e)</samp>](https://github.com/vitest-dev/vitest/commit/5b95efb6d)
- **reporters**:
- Handle concurrent `createReport` calls - by [@​7rulnik](https://github.com/7rulnik) in [#​11278](https://github.com/vitest-dev/vitest/issues/11278) [<samp>(e8e55)</samp>](https://github.com/vitest-dev/vitest/commit/e8e556ff7)
- `hanging-process` to use ESM entrypoint - by [@​AriPerkkio](https://github.com/AriPerkkio) in [#​11316](https://github.com/vitest-dev/vitest/issues/11316) [<samp>(4e91e)</samp>](https://github.com/vitest-dev/vitest/commit/4e91e5668)
- **spy**:
- Fix stack overflow when spying `Set.prototype.add` - by [@​fengmk2](https://github.com/fengmk2) in [#​11299](https://github.com/vitest-dev/vitest/issues/11299) [<samp>(a0a93)</samp>](https://github.com/vitest-dev/vitest/commit/a0a939653)
- **ui**:
- Persist authentication cookie beyond current browser session - by [@​hi-ogawa](https://github.com/hi-ogawa), **Hiroshi Ogawa** and **OpenCode (gpt-5.6-sol)** in [#​11066](https://github.com/vitest-dev/vitest/issues/11066) [<samp>(f8819)</samp>](https://github.com/vitest-dev/vitest/commit/f88195e16)
##### [View changes on GitHub](https://github.com/vitest-dev/vitest/compare/v5.0.1...v5.0.2)
### [`v5.0.1`](https://github.com/vitest-dev/vitest/releases/tag/v5.0.1)
[Compare Source](https://github.com/vitest-dev/vitest/compare/v5.0.0...v5.0.1)
##### 🚀 Features
- **ui**:
- Move trace attempts selector to viewer header - by [@​hi-ogawa](https://github.com/hi-ogawa), **Hiroshi Ogawa** and **Codex** in [#​11189](https://github.com/vitest-dev/vitest/issues/11189) [<samp>(5dc4b)</samp>](https://github.com/vitest-dev/vitest/commit/5dc4b5c92)
- Add focused trace view layout mode - by [@​hi-ogawa](https://github.com/hi-ogawa), **Hiroshi Ogawa**, **OpenCode (gpt-5.6-sol)** and **Codex** in [#​11190](https://github.com/vitest-dev/vitest/issues/11190) [<samp>(376dc)</samp>](https://github.com/vitest-dev/vitest/commit/376dc3bc1)
##### 🐞 Bug Fixes
- Exit 1 when vitest list fails collection - by [@​hamed-bavar](https://github.com/hamed-bavar) in [#​11145](https://github.com/vitest-dev/vitest/issues/11145) and [#​11146](https://github.com/vitest-dev/vitest/issues/11146) [<samp>(6108b)</samp>](https://github.com/vitest-dev/vitest/commit/6108b8197)
- Keep parse error details in static collection - by [@​hamed-bavar](https://github.com/hamed-bavar) in [#​11150](https://github.com/vitest-dev/vitest/issues/11150) and [#​11151](https://github.com/vitest-dev/vitest/issues/11151) [<samp>(7c818)</samp>](https://github.com/vitest-dev/vitest/commit/7c818153a)
- Avoid recursive prototype in automocking - by [@​sheremet-va](https://github.com/sheremet-va) in [#​11195](https://github.com/vitest-dev/vitest/issues/11195) [<samp>(99fc5)</samp>](https://github.com/vitest-dev/vitest/commit/99fc52591)
- Prevent false Vitest import resolution - by [@​sheremet-va](https://github.com/sheremet-va) in [#​11196](https://github.com/vitest-dev/vitest/issues/11196) [<samp>(b426c)</samp>](https://github.com/vitest-dev/vitest/commit/b426c1976)
- Keep metadata file when clearing the cache - by [@​sheremet-va](https://github.com/sheremet-va) in [#​11199](https://github.com/vitest-dev/vitest/issues/11199) [<samp>(73614)</samp>](https://github.com/vitest-dev/vitest/commit/73614654a)
- Correct typos in error message and comments - by [@​shinji00222](https://github.com/shinji00222) and **Shinji** in [#​11187](https://github.com/vitest-dev/vitest/issues/11187) [<samp>(115c3)</samp>](https://github.com/vitest-dev/vitest/commit/115c3f6d2)
- Resolve ResolvedConfig exactOptionalPropertyTypes errors - by [@​LukeAbby](https://github.com/LukeAbby) in [#​11175](https://github.com/vitest-dev/vitest/issues/11175) [<samp>(498fb)</samp>](https://github.com/vitest-dev/vitest/commit/498fbe922)
- Share the server on self-referencing `extends` - by [@​sheremet-va](https://github.com/sheremet-va) in [#​11034](https://github.com/vitest-dev/vitest/issues/11034) [<samp>(23dda)</samp>](https://github.com/vitest-dev/vitest/commit/23dda738c)
- Warn when deprecated `deps.optimizer.web` is used - by [@​im10furry](https://github.com/im10furry) in [#​11214](https://github.com/vitest-dev/vitest/issues/11214) [<samp>(2ce29)</samp>](https://github.com/vitest-dev/vitest/commit/2ce29d5fa)
- **browser**:
- Avoid double quotes in `config.define` - by [@​sheremet-va](https://github.com/sheremet-va) in [#​11198](https://github.com/vitest-dev/vitest/issues/11198) [<samp>(972e2)</samp>](https://github.com/vitest-dev/vitest/commit/972e24bab)
- **doctor**:
- Measure vm pools for custom environments - by [@​sheremet-va](https://github.com/sheremet-va) in [#​11212](https://github.com/vitest-dev/vitest/issues/11212) [<samp>(91ab1)</samp>](https://github.com/vitest-dev/vitest/commit/91ab1588c)
- **expect**:
- Correct return value in `toMatchAriaSnapshot` - by [@​sheremet-va](https://github.com/sheremet-va) in [#​11208](https://github.com/vitest-dev/vitest/issues/11208) [<samp>(c119b)</samp>](https://github.com/vitest-dev/vitest/commit/c119be016)
- **fakeTimers**:
- Force `queueMicrotask` and `nextTick` in `toNotFake` - by [@​kingmakeruix](https://github.com/kingmakeruix), **kingmakeruix**, **Hiroshi Ogawa**, **Codex** and [@​hi-ogawa](https://github.com/hi-ogawa) in [#​11261](https://github.com/vitest-dev/vitest/issues/11261) [<samp>(a47d7)</samp>](https://github.com/vitest-dev/vitest/commit/a47d7908f)
- **snapshot**:
- Report obsolete keys next to skipped tests - by [@​hamed-bavar](https://github.com/hamed-bavar), **Hiroshi Ogawa** and **OpenCode (gpt-5.6-sol)** in [#​11157](https://github.com/vitest-dev/vitest/issues/11157) and [#​11158](https://github.com/vitest-dev/vitest/issues/11158) [<samp>(17e2b)</samp>](https://github.com/vitest-dev/vitest/commit/17e2b22dd)
- **types**:
- Make public declarations self-contained - by [@​ZoeySigel](https://github.com/ZoeySigel) in [#​11141](https://github.com/vitest-dev/vitest/issues/11141) [<samp>(45546)</samp>](https://github.com/vitest-dev/vitest/commit/455466c16)
- **ui**:
- Fix collapse/expand suite with file name search - by [@​hi-ogawa](https://github.com/hi-ogawa), **Hiroshi Ogawa** and **Codex** in [#​11260](https://github.com/vitest-dev/vitest/issues/11260) [<samp>(0a712)</samp>](https://github.com/vitest-dev/vitest/commit/0a7122daa)
- Fix explorer file summary count - by [@​hi-ogawa](https://github.com/hi-ogawa), **Hiroshi Ogawa**, **OpenCode (gpt-5.6-sol)** and **Codex** in [#​11125](https://github.com/vitest-dev/vitest/issues/11125) [<samp>(05982)</samp>](https://github.com/vitest-dev/vitest/commit/05982297d)
- **utils**:
- Fix `deepMerge` to handle prototype - by [@​hi-ogawa](https://github.com/hi-ogawa), **Hiroshi Ogawa** and **Codex** in [#​11215](https://github.com/vitest-dev/vitest/issues/11215) [<samp>(4944c)</samp>](https://github.com/vitest-dev/vitest/commit/4944cf498)
##### [View changes on GitHub](https://github.com/vitest-dev/vitest/compare/v5.0.0...v5.0.1)
</details>
<details>
<summary>ArnaudBarre/eslint-plugin-react-refresh (eslint-plugin-react-refresh)</summary>
### [`v0.5.7`](https://github.com/ArnaudBarre/eslint-plugin-react-refresh/blob/HEAD/CHANGELOG.md#057)
[Compare Source](https://github.com/ArnaudBarre/eslint-plugin-react-refresh/compare/v0.5.6...v0.5.7)
##### Add `allowCompoundComponents` option ([#​117](https://github.com/ArnaudBarre/eslint-plugin-react-refresh/pull/117))
> Default: `false` (`true` in `vite` config)
Don't warn when components are exported as an object gathering them. Every member of the object must be a component, and a member holding an anonymous function requires a component name as key.
This should be enabled if the fast refresh implementation correctly handles this case. Vite supports it since `@vitejs/plugin-react` 4.7.0, `@vitejs/plugin-react-swc` 3.11.0.
```json
{
"react-refresh/only-export-components": [
"error",
{ "allowCompoundComponents": true }
]
}
```
Enabling this option allows code such as the following:
```jsx
const Root = () => <></>;
const Label = () => <></>;
export const Tag = { Root, Label };
```
### [`v0.5.6`](https://github.com/ArnaudBarre/eslint-plugin-react-refresh/blob/HEAD/CHANGELOG.md#056)
[Compare Source](https://github.com/ArnaudBarre/eslint-plugin-react-refresh/compare/v0.5.5...v0.5.6)
- Support re-exporting namespace components (fixes [#​116](https://github.com/ArnaudBarre/eslint-plugin-react-refresh/issues/116))
### [`v0.5.5`](https://github.com/ArnaudBarre/eslint-plugin-react-refresh/blob/HEAD/CHANGELOG.md#055)
[Compare Source](https://github.com/ArnaudBarre/eslint-plugin-react-refresh/compare/v0.5.4...v0.5.5)
- Fix SCREAMING_SNAKE_CASE constant exported via `export { Name }` incorrectly treated as React component [#​114](https://github.com/ArnaudBarre/eslint-plugin-react-refresh/pull/114) (fixes [#​113](https://github.com/ArnaudBarre/eslint-plugin-react-refresh/issues/113))
- Add `contentType` and `size` to `allowExportNames` in Next config [#​115](https://github.com/ArnaudBarre/eslint-plugin-react-refresh/pull/115)
### [`v0.5.4`](https://github.com/ArnaudBarre/eslint-plugin-react-refresh/blob/HEAD/CHANGELOG.md#054)
[Compare Source](https://github.com/ArnaudBarre/eslint-plugin-react-refresh/compare/v0.5.3...v0.5.4)
- Add `instant` to `allowExportNames` in Next config [#​112](https://github.com/ArnaudBarre/eslint-plugin-react-refresh/pull/112)
### [`v0.5.3`](https://github.com/ArnaudBarre/eslint-plugin-react-refresh/blob/HEAD/CHANGELOG.md#053)
[Compare Source](https://github.com/ArnaudBarre/eslint-plugin-react-refresh/compare/v0.5.2...v0.5.3)
- Fix check for non component class exported via `export { }` [#​110](https://github.com/ArnaudBarre/eslint-plugin-react-refresh/pull/110) (fixes [#​109](https://github.com/ArnaudBarre/eslint-plugin-react-refresh/issues/109))
### [`v0.5.2`](https://github.com/ArnaudBarre/eslint-plugin-react-refresh/blob/HEAD/CHANGELOG.md#052)
[Compare Source](https://github.com/ArnaudBarre/eslint-plugin-react-refresh/compare/v0.5.1...v0.5.2)
- Support nested function calls for extraHOCs (actually fixes [#​104](https://github.com/ArnaudBarre/eslint-plugin-react-refresh/issues/104))
### [`v0.5.1`](https://github.com/ArnaudBarre/eslint-plugin-react-refresh/blob/HEAD/CHANGELOG.md#051)
[Compare Source](https://github.com/ArnaudBarre/eslint-plugin-react-refresh/compare/v0.5.0...v0.5.1)
- Mark ESLint v10 as supported
- Support false positives with TypeScript function overloading (fixes [#​105](https://github.com/ArnaudBarre/eslint-plugin-react-refresh/issues/105))
- Support nested function calls for extraHOCs (fixes [#​104](https://github.com/ArnaudBarre/eslint-plugin-react-refresh/issues/104))
### [`v0.5.0`](https://github.com/ArnaudBarre/eslint-plugin-react-refresh/blob/HEAD/CHANGELOG.md#050)
[Compare Source](https://github.com/ArnaudBarre/eslint-plugin-react-refresh/compare/v0.4.26...v0.5.0)
##### Breaking changes
- The package now ships as ESM and requires ESLint 9 + node 20. Because legacy config doesn't support ESM, this requires to use [flat config](https://eslint.org/docs/latest/use/configure/migration-guide)
- A new `reactRefresh` export is available and prefered over the default export. It's an object with two properties:
- `plugin`: The plugin object with the rules
- `configs`: An object containing configuration presets, each exposed as a function. These functions accept your custom options, merge them with sensible defaults for that config, and return the final config object.
- `customHOCs` option was renamed to `extraHOCs`
- Validation of HOCs calls is now more strict, you may need to add some HOCs to the `extraHOCs` option
Config example:
```js
import { defineConfig } from "eslint/config";
import { reactRefresh } from "eslint-plugin-react-refresh";
export default defineConfig(
/* Main config */
reactRefresh.configs.vite({ extraHOCs: ["someLibHOC"] }),
);
```
Config example without config:
```js
import { defineConfig } from "eslint/config";
import { reactRefresh } from "eslint-plugin-react-refresh";
export default defineConfig({
files: ["**/*.ts", "**/*.tsx"],
plugins: {
// other plugins
"react-refresh": reactRefresh.plugin,
},
rules: {
// other rules
"react-refresh/only-export-components": [
"warn",
{ extraHOCs: ["someLibHOC"] },
],
},
});
```
##### Why
This version follows a revamp of the internal logic to better make the difference between random call expressions like `export const Enum = Object.keys(Record)` and actual React HOC calls like `export const MemoComponent = memo(Component)`. (fixes [#​93](https://github.com/ArnaudBarre/eslint-plugin-react-refresh/issues/93))
The rule now handles ternaries and patterns like `export default customHOC(props)(Component)` which makes it able to correctly support files like [this one](https://github.com/eclipse-apoapsis/ort-server/blob/ddfc624ce71b9f2ca6bad9b8c82d4c3249dd9c8b/ui/src/routes/__root.tsx) given this config:
```json
{
"react-refresh/only-export-components": [
"warn",
{ "extraHOCs": ["createRootRouteWithContext"] }
]
}
```
> \[!NOTE]
> Actually createRoute functions from TanStack Router are not React HOCs, they return route objects that [fake to be a memoized component](https://github.com/TanStack/router/blob/8628d0189412ccb8d3a01840aa18bac8295e18c8/packages/react-router/src/route.tsx#L263) but are not. When only doing `createRootRoute({ component: Foo })`, HMR will work fine, but as soon as you add a prop to the options that is not a React component, HMR will not work. I would recommend to avoid adding any TanStack function to `extraHOCs` it you want to preserve good HMR in the long term. [Bluesky thread](https://bsky.app/profile/arnaud-barre.bsky.social/post/3ma5h5tf2sk2e).
Because I'm not 100% sure this new logic doesn't introduce any false positive, this is done in a major-like version. This also give me the occasion to remove the hardcoded `connect` from the rule. If you are using `connect` from `react-redux`, you should now add it to `extraHOCs` like this:
```json
{
"react-refresh/only-export-components": ["warn", { "extraHOCs": ["connect"] }]
}
```
</details>
<details>
<summary>jsdom/jsdom (jsdom)</summary>
### [`v30.1.3`](https://github.com/jsdom/jsdom/releases/tag/v30.1.3)
[Compare Source](https://github.com/jsdom/jsdom/compare/v30.1.2...v30.1.3)
- Improved performance of `getComputedStyle()` and computed CSS property reads, including with stylesheets containing attribute selectors. ([@​scttcper](https://github.com/scttcper), [@​asamuzaK](https://github.com/asamuzaK))
- Fixed slowdowns when focusing elements and running interaction tests, which regressed in v30.1.2. ([@​scttcper](https://github.com/scttcper))
- Fixed `XMLHttpRequest` reusing credentials supplied to `xhr.open()` after cross-origin redirects, including in response to authentication challenges from the destination.
- Fixed `XMLHttpRequest` incorrectly sending and accepting cookies after cross-origin redirects back to the document's origin when `xhr.withCredentials` is false.
- Fixed exceptions from malformed CSS math functions, such as `calc(0px - @submenu_space)`, while parsing documents, stylesheets, and style declarations. ([@​rnavarro](https://github.com/rnavarro))
- Fixed `getComputedStyle()` ignoring style rules nested inside multiple `@media` rules.
- Fixed CSS shorthands overwriting longhands with higher priority or specificity during style computation, including declarations containing CSS variables.
- Fixed `getComputedStyle()` returning unresolved or inconsistent shorthand values, including for 'background', 'border', 'flex', 'font', 'margin', and 'padding', and incorrect shorthand defaults and inheritance.
- Fixed computed background positions to resolve font-relative lengths using the final font size and handle multiple image layers correctly.
- Fixed computed 'color' values depending on property read order, including unresolved `color-mix()` results, which regressed in v29.0.2.
- Fixed `currentcolor` border colors incorrectly becoming transparent when 'color' uses `light-dark()` or relative color syntax.
- Fixed CSS calculations that reduce to a percentage incorrectly producing pixel values, which regressed in v30.0.0.
- Fixed numeric font weights in the 'font' shorthand incorrectly setting 'line-height'.
- Fixed selector matching involving XML namespaces, and selectors such as `[data-a|=""]` failing to match empty values and values beginning with `-`. ([@​asamuzaK](https://github.com/asamuzaK))
### [`v30.1.2`](https://github.com/jsdom/jsdom/releases/tag/v30.1.2)
[Compare Source](https://github.com/jsdom/jsdom/compare/v30.1.1...v30.1.2)
- Updated URLs to support Unicode v18.0.0 in internationalized domain names.
- Reduced package size and memory use for CSS property definitions. ([@​scttcper](https://github.com/scttcper))
- Fixed severe slowdowns when building large DOM trees, including SVG charts with D3, which regressed in v30.1.0. ([@​cmdcolin](https://github.com/cmdcolin))
- Fixed exponentially slow reads of empty inherited CSS custom properties in deeply nested documents, and custom properties incorrectly inheriting past an `initial` reset. ([@​scttcper](https://github.com/scttcper))
- Fixed `getComputedStyle()` returning stale results after editing stylesheet declarations, selectors, or media queries, including in imported stylesheets.
- Fixed selector matching and computed styles after changes to form control checkedness, indeterminacy, selection, values, and validity, including during form resets and canceled clicks.
- Fixed computed styles for `:focus`, `:focus-visible`, `:focus-within`, and selectors containing them after focus changes, including inside focus and blur listeners. ([@​asamuzaK](https://github.com/asamuzaK))
- Fixed `element.focus()` incorrectly focusing elements hidden by 'display', including through shadow hosts and slots, and elements excluded by shadow DOM slot assignment. ([@​asamuzaK](https://github.com/asamuzaK))
- Fixed `getComputedStyle()` throwing for elements without inline-style support, including XML and MathML elements.
- Fixed a memory leak where stylesheet parsing retained the last parsed stylesheet's window after `window.close()`.
- Fixed memory growth from long-lived `MutationObserver` instances retaining bookkeeping for garbage-collected nodes. ([@​scttcper](https://github.com/scttcper))
- Fixed retained `select.selectedOptions` collections becoming stale after selection changes and form resets.
- Fixed rejection of negative CSS sizing values, including for 'min-width', 'min-height', 'max-width', and 'max-height', which regressed in v30.1.0.
- Fixed handling of deeply nested `color-mix()` expressions, including exceptions during color resolution. ([@​asamuzaK](https://github.com/asamuzaK))
### [`v30.1.1`](https://github.com/jsdom/jsdom/releases/tag/v30.1.1)
[Compare Source](https://github.com/jsdom/jsdom/compare/v30.1.0...v30.1.1)
- Fixed spurious window `blur` and `focusout` events and incorrect `event.relatedTarget` values when focusing an element after removing the previously focused element, which regressed in v30.1.0. ([@​asamuzaK](https://github.com/asamuzaK))
- Fixed focus and blur behavior across frames, and focusing the document's viewport through `document.documentElement.focus()`. ([@​asamuzaK](https://github.com/asamuzaK))
- Fixed focus targets removed or disabled by `blur` listeners becoming active, and text selections made by focus and blur listeners being overwritten. ([@​asamuzaK](https://github.com/asamuzaK))
- Fixed `element.focus()` incorrectly focusing disabled form controls and `<input type="hidden">` elements with `tabindex=""`. ([@​scttcper](https://github.com/scttcper))
- Fixed invalid `style.setProperty()` calls changing existing `!important` priorities, serialized styles, or mutation records. ([@​FedgeNo](https://github.com/FedgeNo))
- Fixed `!important` handling when updating CSS longhands after shorthands, using variables or CSS-wide keywords, and assigning style properties directly. ([@​FedgeNo](https://github.com/FedgeNo))
- Fixed `<noscript>` parsing with `includeNodeLocations: true` or inside frames to honor the `runScripts` option.
- Fixed the `storageQuota` option being ignored by frames.
- Fixed encoding detection of HTML and XML byte input to honor XML encoding declarations and detect UTF-16 without a byte order mark.
- Fixed exceptions caused by truncated `charset` parameters in `<meta>` elements, and encoding detection incorrectly using incomplete `<meta>` tags. ([@​FedgeNo](https://github.com/FedgeNo))
- Fixed XML serialization errors for namespaces named `constructor`, `toString`, `__proto__`, or `"null"`, and incorrect reuse of namespace prefixes declared on sibling elements.
- Fixed `element.innerHTML` and `element.outerHTML` in XML documents to reject invalid characters in attribute values and avoid stack overflows on large strings.
- Fixed selector matching for `:lang()`, `:nth-child(... of ...)` after mutations, and `:has()` with duplicate IDs or nested logical pseudo-classes. ([@​asamuzaK](https://github.com/asamuzaK))
### [`v30.1.0`](https://github.com/jsdom/jsdom/releases/tag/v30.1.0)
[Compare Source](https://github.com/jsdom/jsdom/compare/v30.0.1...v30.1.0)
jsdom is feeling the AGI!
This release is dedicated to [@​scttcper](https://github.com/scttcper), who unleashed [@​codex](https://github.com/codex) upon jsdom and found tons of performance improvements. Along the way, he found and fixed many correctness issues as well.
We really appreciate his thoughtful PRs, which did a great job following the project's contribution guidelines, and were clearly human-curated, with their PR descriptions edited to be brief and respectful of the maintainers' time.
Thanks to [@​scttcper](https://github.com/scttcper), as well as all the other contributors of this release (most of whom were AI-assisted).
- Added named access to elements on `document`, such as `document.myForm` for `<form name="myForm">`. ([@​vojtisprime11](https://github.com/vojtisprime11))
- Added `QuotaExceededError`, including its use for storage quota errors and oversized `crypto.getRandomValues()` requests.
- Added support for the relaxed DOM naming rules when creating elements, attributes, and document types.
- Improved performance of DOM construction, tree mutations, range operations, and live collection access, especially on large documents. ([@​scttcper](https://github.com/scttcper), [@​erezrokah](https://github.com/erezrokah))
- Improved performance of `getComputedStyle()`, style changes, and CSS serialization. ([@​scttcper](https://github.com/scttcper), [@​jhult](https://github.com/jhult))
- Improved performance of event dispatch, form control and label lookups, and updates to `<select>` elements and radio button groups. ([@​scttcper](https://github.com/scttcper))
- Reduced memory use when creating and working with DOM nodes, attributes, event listeners, and mutation observers. ([@​scttcper](https://github.com/scttcper))
- Changed `window.close()` to preserve access to the document and its DOM through retained references.
- Fixed `element.querySelectorAll()` returning no matches when the first part of the selector matches the element itself, which regressed in v30.0.0. ([@​asamuzaK](https://github.com/asamuzaK))
- Fixed case sensitivity in CSS attribute selectors, including selectors matching `data-state=""`, `title=""`, and other case-sensitive values. ([@​asamuzaK](https://github.com/asamuzaK))
- Fixed `document.querySelector()` failing to find a matching element when an earlier element has the same ID but does not match the rest of the selector. ([@​vojtisprime11](https://github.com/vojtisprime11))
- Fixed `:focus` matching in shadow trees. ([@​asamuzaK](https://github.com/asamuzaK))
- Fixed DOM insertion and replacement, including valid `document.replaceChildren()` calls, invalid document element and doctype placements, and mutations during `element.replaceWith()`.
- Fixed the ordering of script execution, custom element callbacks, iframe loading, and mutation observer notifications during DOM insertion, including in shadow trees.
- Fixed queued events and navigation continuing after `window.close()` or iframe removal, and prevented new scripts, resource loads, timers, and animation frames from starting in destroyed documents. ([@​scttcper](https://github.com/scttcper))
- Fixed parent documents waiting indefinitely for loading to finish when a child iframe removes itself during loading.
- Fixed request cancellation across redirects, during pending `requestInterceptor()` callbacks, and when reusing an `XMLHttpRequest` after aborting it.
- Fixed resource loading and `JSDOM.fromURL()` potentially hanging when response handling throws and response stream cleanup does not finish.
- Fixed successful cached resource loads being treated as aborted.
- Fixed `getComputedStyle()` and `document.styleSheets` using the wrong stylesheet order after inserting or updating `<style>` elements.
- Fixed `getComputedStyle()` ignoring nested `@import` and `@media` rules in imported stylesheets, and returning stale results after imports finish loading.
- Fixed style invalidation, stylesheet removal, and frame source updates in shadow trees.
- Fixed repeated `getComputedStyle()` calls changing case-sensitive background URLs, and inconsistent resolution of border shorthands containing system colors. ([@​scttcper](https://github.com/scttcper))
- Fixed computed border widths, including borderless elements incorrectly reporting `16px`, which regressed in v30.0.0. ([@​Alberto-BaseNet](https://github.com/Alberto-BaseNet))
- Fixed `getComputedStyle()` to resolve `'font-weight'` keywords to numeric values. ([@​tianrking](https://github.com/tianrking))
- Fixed `getComputedStyle()` to convert lengths to pixels inside CSS math functions containing percentages, and to resolve percentages in `'font-size'` math functions. ([@​soroushm](https://github.com/soroushm))
- Fixed serialization of `min()` and `max()` containing nested `calc()`, which regressed in v30.0.0. ([@​asamuzaK](https://github.com/asamuzaK))
- Fixed CSS values mixing lengths or percentages with math functions, such as `'grid-template-columns'` values containing both `100px` and `calc()`. ([@​rome-xi](https://github.com/rome-xi))
- Fixed parsing of `'background'` and `'border'` shorthands with adjacent components, such as `url(a.png)no-repeat`, including a crash when parsing inline styles. Also fixed handling of invalid shorthand assignments and escaped or unusual characters in CSS declarations. ([@​asamuzaK](https://github.com/asamuzaK))
- Fixed parsing of unitless zero values in `'flex'` shorthands, such as `35 1 0`, and rejection of negative `'flex-basis'` lengths and percentages. ([@​asamuzaK](https://github.com/asamuzaK))
- Fixed shorthand style assignments producing extra mutation records and custom element callbacks for intermediate values. ([@​scttcper](https://github.com/scttcper))
- Fixed `Range` and `Selection` handling of CDATA sections, including boundary offsets and range cloning, extraction, deletion, insertion, and stringification. ([@​scttcper](https://github.com/scttcper))
- Fixed `text.normalize()` incorrectly removing the text node or merging its siblings. ([@​scttcper](https://github.com/scttcper))
- Fixed cloning and importing CDATA sections and processing instructions whose contents have been modified, and serialization of CDATA sections adopted into HTML documents.
- Fixed stale named-property collections on `window`, and incorrect named access from empty or namespaced `id=""` and `name=""` values. ([@​scttcper](https://github.com/scttcper))
- Fixed elements in documents created with `DOMParser` or `document.implementation.createHTMLDocument()` appearing as named properties on `window` and being retained in memory. ([@​Iaotle](https://github.com/Iaotle))
- Fixed memory leaks from mutation observers retaining observed nodes, abort signals retaining removed event listeners, and storage event tracking retaining closed windows. ([@​scttcper](https://github.com/scttcper))
- Fixed `storage` events being sent to windows created after the storage change, and ensured surviving recipients still receive events when the source document is destroyed.
- Fixed attribute lookups after namespace prefix changes, and namespaced attributes incorrectly affecting ID lookups and element behavior. ([@​scttcper](https://github.com/scttcper))
- Fixed `input.list` in detached element trees. ([@​scttcper](https://github.com/scttcper))
- Fixed `attr.ownerDocument` after setting an attribute node on an element in another document or adopting its element. ([@​Kjubikstronk](https://github.com/Kjubikstronk))
- Fixed fresh `element.getElementsByTagName()` calls using the previous document's case-sensitivity rules after adoption between HTML and XML documents. ([@​Kjubikstronk](https://github.com/Kjubikstronk))
- Fixed `element.tagName` returning stale casing after adoption between HTML and XML documents.
- Fixed radio button grouping and checkedness updates for controls with different form owners, controls outside their form, unnamed controls, and canceled clicks.
- Fixed `<select>` selection updates when moving options, and unintended selection resets when moving a whole `<select>` or changing unrelated descendants.
- Fixed cloning `<input>` elements to preserve `input.indeterminate`.
- Fixed focus state after removing a focused element or its ancestor, including inside shadow trees.
- Fixed script execution when inserting children into a connected, empty `<script>`. ([@​Kjubikstronk](https://github.com/Kjubikstronk))
- Fixed incorrect script execution after changes to `src=""`, and handling of `type=""`, `for=""`, and `event=""`.
- Fixed `document.currentScript` during nested script execution and scripts in shadow trees.
- Fixed event dispatch, `window.event`, and default passive listener handling for non-node event targets, and event dispatch when user code modifies `window.constructor`.
- Fixed `volumechange` and `ratechange` events to fire asynchronously. ([@​christianaurichzm](https://github.com/christianaurichzm))
- Fixed DOM APIs accepting user-created proxies around DOM objects where genuine DOM objects are required.
- Fixed XPath iterator invalidation after DOM mutations and errors for invalid result types.
- Fixed `NodeIterator` traversal when its filter removes nodes.
- Fixed `fileReader.readAsText()` to honor the blob's MIME type charset when no supported explicit encoding is supplied.
- Fixed fractional seconds in time input parsing and serialization. ([@​Jaybhade](https://github.com/Jaybhade))
- Fixed large `input.valueAsNumber` assignments for time and local date/time inputs.
- Fixed hard wrapping of `<textarea>` values to use the numeric `textarea.cols` value.
- Fixed `document.readyState` to be `"complete"` for documents created with `document.implementation.createDocument()` and `document.implementation.createHTMLDocument()`.
- Fixed `element.translate` for empty `translate=""` values and elements without a parent.
- Fixed XML parsing of lone surrogates to replace them with the Unicode replacement character.
- Fixed `node.lookupNamespaceURI()` for the `xml` and `xmlns` prefixes. ([@​vojtisprime11](https://github.com/vojtisprime11))
- Fixed `<base>` elements to ignore `data:` and `javascript:` URLs. ([@​vojtisprime11](https://github.com/vojtisprime11))
- Fixed `svgElement.viewportElement` inside `<symbol>` elements.
- Fixed the default `blobEvent.timecode` to be `NaN`.
- Fixed the object shape and property descriptors of `CSS`.
</details>
<details>
<summary>react/react (react)</summary>
### [`v19.3.1`](https://github.com/react/react/releases/tag/v19.3.1): 19.3.1 (October 14th, 2026)
[Compare Source](https://github.com/react/react/compare/v19.3.0...v19.3.1)
##### React Server Components
- Improve transport protocol ([#​37845](https://github.com/facebook/react/pull/37845) by [@​unstubbable](https://github.com/unstubbable) and [@​eps1lon](https://github.com/eps1lon))
</details>
<details>
<summary>remix-run/react-router (react-router)</summary>
### [`v7.18.4`](https://github.com/remix-run/react-router/releases/tag/react-router%407.18.4): v7.18.4
[Compare Source](https://github.com/remix-run/react-router/compare/react-router@7.18.3...react-router@7.18.4)
See the changelog for release notes: <https://github.com/remix-run/react-router/blob/v7/CHANGELOG.md#v7184>
</details>
<details>
<summary>shadcn-ui/ui (shadcn)</summary>
### [`v4.22.1`](https://github.com/shadcn-ui/ui/blob/HEAD/packages/shadcn/CHANGELOG.md#4221)
[Compare Source](https://github.com/shadcn-ui/ui/compare/shadcn@4.22.0...shadcn@4.22.1)
##### Patch Changes
- [#​12360](https://github.com/shadcn-ui/ui/pull/12360) [`4381eeb`](https://github.com/shadcn-ui/ui/commit/4381eeb3fe421af7d25b780f85ff9cbc8d50c51a) Thanks [@​shadcn](https://github.com/shadcn)! - Fix `shadcn add --all` and the component picker to only include components available for the project's style.
### [`v4.22.0`](https://github.com/shadcn-ui/ui/blob/HEAD/packages/shadcn/CHANGELOG.md#4220)
[Compare Source](https://github.com/shadcn-ui/ui/compare/shadcn@4.21.5...shadcn@4.22.0)
##### Minor Changes
- [#​12298](https://github.com/shadcn-ui/ui/pull/12298) [`954ce95`](https://github.com/shadcn-ui/ui/commit/954ce953412867a57b7e067c076fa7fd395ea115) Thanks [@​shadcn](https://github.com/shadcn)! - Upgrade to Zod 4. `shadcn/schema` and `@shadcn/registry/schema` now export Zod 4 schemas, so passing them to Zod 3's `z` no longer typechecks. On Zod 3, use the exported types (`RegistryItem`, `RegistryItemFile`, `Config`) and the schema's own methods (`registryItemSchema.array()`) instead of `z.infer` and `z.array`. Zod errors expose `issues`, not `errors`. Validation messages now use Zod 4's wording.
##### Patch Changes
- Updated dependencies \[[`954ce95`](https://github.com/shadcn-ui/ui/commit/954ce953412867a57b7e067c076fa7fd395ea115)]:
- [@​shadcn/registry](https://github.com/shadcn/registry)@0.2.0
### [`v4.21.5`](https://github.com/shadcn-ui/ui/blob/HEAD/packages/shadcn/CHANGELOG.md#4215)
[Compare Source](https://github.com/shadcn-ui/ui/compare/shadcn@4.21.4...shadcn@4.21.5)
##### Patch Changes
- [#​12214](https://github.com/shadcn-ui/ui/pull/12214) [`4407349`](https://github.com/shadcn-ui/ui/commit/440734966e04a1e429bb8df8a29d7095a5e4a60f) Thanks [@​dependabot](https://github.com/apps/dependabot)! - Update `@modelcontextprotocol/sdk`, `browserslist`, `open` and `postcss-selector-parser`.
- [#​12192](https://github.com/shadcn-ui/ui/pull/12192) [`dd34945`](https://github.com/shadcn-ui/ui/commit/dd34945272729ecd198fabb0e32082f6321c210e) Thanks [@​shadcn](https://github.com/shadcn)! - Move [@​shadcn/registry](https://github.com/shadcn/registry) modules out of utils.
- [#​12297](https://github.com/shadcn-ui/ui/pull/12297) [`7aa2110`](https://github.com/shadcn-ui/ui/commit/7aa2110d4ae0910429093c2240948c916d18dd7f) Thanks [@​mattzcarey](https://github.com/mattzcarey)! - Fix MCP search and list results showing `[object Promise]` instead of the add command.
- [#​12174](https://github.com/shadcn-ui/ui/pull/12174) [`2af71ac`](https://github.com/shadcn-ui/ui/commit/2af71ac3188a89e42027bca3817daf128cbce7c2) Thanks [@​dependabot](https://github.com/apps/dependabot)! - Update `@modelcontextprotocol/sdk` to 1.31.0.
- [#​12048](https://github.com/shadcn-ui/ui/pull/12048) [`cfb4cb6`](https://github.com/shadcn-ui/ui/commit/cfb4cb6fce835cda9342fae1592b21ece48ce23d) Thanks [@​dependabot](https://github.com/apps/dependabot)! - Update `undici` to 7.29.1.
- Updated dependencies \[[`97ddbf4`](https://github.com/shadcn-ui/ui/commit/97ddbf4274ed09d02aa7fd34375f2cf1e48cbbf0), [`dd34945`](https://github.com/shadcn-ui/ui/commit/dd34945272729ecd198fabb0e32082f6321c210e), [`cfb4cb6`](https://github.com/shadcn-ui/ui/commit/cfb4cb6fce835cda9342fae1592b21ece48ce23d)]:
- [@​shadcn/registry](https://github.com/shadcn/registry)@0.1.4
### [`v4.21.4`](https://github.com/shadcn-ui/ui/blob/HEAD/packages/shadcn/CHANGELOG.md#4214)
[Compare Source](https://github.com/shadcn-ui/ui/compare/shadcn@4.21.3...shadcn@4.21.4)
##### Patch Changes
- [#​12189](https://github.com/shadcn-ui/ui/pull/12189) [`76fd499595ba7cc01f49d159bd7ac82d7aca8e63`](https://github.com/shadcn-ui/ui/commit/76fd499595ba7cc01f49d159bd7ac82d7aca8e63) Thanks [@​shadcn](https://github.com/shadcn)! - Drop the ts-morph dependency from [@​shadcn/registry](https://github.com/shadcn/registry).
- [#​12184](https://github.com/shadcn-ui/ui/pull/12184) [`995c2cfff44c373bd210d451089726ec097ab917`](https://github.com/shadcn-ui/ui/commit/995c2cfff44c373bd210d451089726ec097ab917) Thanks [@​shadcn](https://github.com/shadcn)! - Run the icons and asChild transformers without ts-morph.
- [#​12160](https://github.com/shadcn-ui/ui/pull/12160) [`6efecd8fe9aa167886fe2cc0c05c5623a5bb5670`](https://github.com/shadcn-ui/ui/commit/6efecd8fe9aa167886fe2cc0c05c5623a5bb5670) Thanks [@​shadcn](https://github.com/shadcn)! - Edit the Next.js layout for font items without ts-morph, and skip it with a warning instead of writing a broken layout.
- [#​12188](https://github.com/shadcn-ui/ui/pull/12188) [`efa11781f756c86debb0392fbea4fe468250b41b`](https://github.com/shadcn-ui/ui/commit/efa11781f756c86debb0392fbea4fe468250b41b) Thanks [@​shadcn](https://github.com/shadcn)! - Rewrite imports and crawl file imports without ts-morph.
- [#​12177](https://github.com/shadcn-ui/ui/pull/12177) [`e8c3143b1cd191280befcd6c9538284bb43399a8`](https://github.com/shadcn-ui/ui/commit/e8c3143b1cd191280befcd6c9538284bb43399a8) Thanks [@​shadcn](https://github.com/shadcn)! - Edit tailwind.config without ts-morph, and skip it with a warning instead of writing a broken config.
- [#​12183](https://github.com/shadcn-ui/ui/pull/12183) [`f56bbd7282f0116a925a601cb6d7e0c3fede448b`](https://github.com/shadcn-ui/ui/commit/f56bbd7282f0116a925a601cb6d7e0c3fede448b) Thanks [@​shadcn](https://github.com/shadcn)! - Run the rsc, import, CSS variable, cleanup, font and menu transformers without ts-morph.
- [#​12185](https://github.com/shadcn-ui/ui/pull/12185) [`4a90344c42dc9ae47494179065219377ff5f2a8f`](https://github.com/shadcn-ui/ui/commit/4a90344c42dc9ae47494179065219377ff5f2a8f) Thanks [@​shadcn](https://github.com/shadcn)! - Run the Tailwind prefix and RTL transformers without ts-morph.
- Updated dependencies \[[`76fd499595ba7cc01f49d159bd7ac82d7aca8e63`](https://github.com/shadcn-ui/ui/commit/76fd499595ba7cc01f49d159bd7ac82d7aca8e63), [`995c2cfff44c373bd210d451089726ec097ab917`](https://github.com/shadcn-ui/ui/commit/995c2cfff44c373bd210d451089726ec097ab917), [`6efecd8fe9aa167886fe2cc0c05c5623a5bb5670`](https://github.com/shadcn-ui/ui/commit/6efecd8fe9aa167886fe2cc0c05c5623a5bb5670), [`232d7e2c128d94d37a6dae74e3b0e1a8f08ff6e4`](https://github.com/shadcn-ui/ui/commit/232d7e2c128d94d37a6dae74e3b0e1a8f08ff6e4), [`efa11781f756c86debb0392fbea4fe468250b41b`](https://github.com/shadcn-ui/ui/commit/efa11781f756c86debb0392fbea4fe468250b41b), [`e8c3143b1cd191280befcd6c9538284bb43399a8`](https://github.com/shadcn-ui/ui/commit/e8c3143b1cd191280befcd6c9538284bb43399a8), [`f56bbd7282f0116a925a601cb6d7e0c3fede448b`](https://github.com/shadcn-ui/ui/commit/f56bbd7282f0116a925a601cb6d7e0c3fede448b), [`4a90344c42dc9ae47494179065219377ff5f2a8f`](https://github.com/shadcn-ui/ui/commit/4a90344c42dc9ae47494179065219377ff5f2a8f)]:
- [@​shadcn/registry](https://github.com/shadcn/registry)@0.1.3
### [`v4.21.3`](https://github.com/shadcn-ui/ui/blob/HEAD/packages/shadcn/CHANGELOG.md#4213)
[Compare Source](https://github.com/shadcn-ui/ui/compare/shadcn@4.21.2...shadcn@4.21.3)
##### Patch Changes
- [#​12148](https://github.com/shadcn-ui/ui/pull/12148) [`596be8dda8f94927281184b8c4575150531f85ea`](https://github.com/shadcn-ui/ui/commit/596be8dda8f94927281184b8c4575150531f85ea) Thanks [@​shadcn](https://github.com/shadcn)! - Fix `ERR_REQUIRE_CYCLE_MODULE` when running the CLI with `pnpm dlx` on Windows.
- Updated dependencies \[[`596be8dda8f94927281184b8c4575150531f85ea`](https://github.com/shadcn-ui/ui/commit/596be8dda8f94927281184b8c4575150531f85ea)]:
- [@​shadcn/registry](https://github.com/shadcn/registry)@0.1.2
### [`v4.21.2`](https://github.com/shadcn-ui/ui/blob/HEAD/packages/shadcn/CHANGELOG.md#4212)
[Compare Source](https://github.com/shadcn-ui/ui/compare/shadcn@4.21.1...shadcn@4.21.2)
##### Patch Changes
- [#​12143](https://github.com/shadcn-ui/ui/pull/12143) [`8c2bf3882cb856ac10abbb162bdc0b8383ebd432`](https://github.com/shadcn-ui/ui/commit/8c2bf3882cb856ac10abbb162bdc0b8383ebd432) Thanks [@​shadcn](https://github.com/shadcn)! - Accept `components.json` and `package.json` files that start with a UTF-8 byte order mark.
- [#​12142](https://github.com/shadcn-ui/ui/pull/12142) [`95efb5cd8d7f13adba70b58b1119211e8980683f`](https://github.com/shadcn-ui/ui/commit/95efb5cd8d7f13adba70b58b1119211e8980683f) Thanks [@​shadcn](https://github.com/shadcn)! - replace cosmiconfig with a smaller custom reader.
- [#​12140](https://github.com/shadcn-ui/ui/pull/12140) [`3b1ae6e43f082dd82d0e5710b813cfad929abdb4`](https://github.com/shadcn-ui/ui/commit/3b1ae6e43f082dd82d0e5710b813cfad929abdb4) Thanks [@​shadcn](https://github.com/shadcn)! - Skip `npm audit` and the funding check when installing or removing dependencies, or creating a project, with npm.
- Updated dependencies \[[`8c2bf3882cb856ac10abbb162bdc0b8383ebd432`](https://github.com/shadcn-ui/ui/commit/8c2bf3882cb856ac10abbb162bdc0b8383ebd432), [`95efb5cd8d7f13adba70b58b1119211e8980683f`](https://github.com/shadcn-ui/ui/commit/95efb5cd8d7f13adba70b58b1119211e8980683f), [`3b1ae6e43f082dd82d0e5710b813cfad929abdb4`](https://github.com/shadcn-ui/ui/commit/3b1ae6e43f082dd82d0e5710b813cfad929abdb4)]:
- [@​shadcn/registry](https://github.com/shadcn/registry)@0.1.1
### [`v4.21.1`](https://github.com/shadcn-ui/ui/blob/HEAD/packages/shadcn/CHANGELOG.md#4211)
[Compare Source](https://github.com/shadcn-ui/ui/compare/shadcn@4.21.0...shadcn@4.21.1)
##### Patch Changes
- [#​12087](https://github.com/shadcn-ui/ui/pull/12087) [`bf6646b449684e687f28531305eca4e4768c2782`](https://github.com/shadcn-ui/ui/commit/bf6646b449684e687f28531305eca4e4768c2782) Thanks [@​shadcn](https://github.com/shadcn)! - Add `@shadcn/registry`, the registry engine behind the CLI. `shadcn` now depends on it, and `shadcn/registry` and `shadcn/schema` re-export it, so there are no changes for existing users.
- [#​12061](https://github.com/shadcn-ui/ui/pull/12061) [`a9c1da49ec4eab488dc99c69ae20a7ffaa4897d4`](https://github.com/shadcn-ui/ui/commit/a9c1da49ec4eab488dc99c69ae20a7ffaa4897d4) Thanks [@​shadcn](https://github.com/shadcn)! - fix shimmer reduced motion handling when used with a variant
- [#​12087](https://github.com/shadcn-ui/ui/pull/12087) [`bf6646b449684e687f28531305eca4e4768c2782`](https://github.com/shadcn-ui/ui/commit/bf6646b449684e687f28531305eca4e4768c2782) Thanks [@​shadcn](https://github.com/shadcn)! - `shadcn docs` only rewrites links on the ui.shadcn.com host.
- Updated dependencies \[[`bf6646b449684e687f28531305eca4e4768c2782`](https://github.com/shadcn-ui/ui/commit/bf6646b449684e687f28531305eca4e4768c2782)]:
- [@​shadcn/registry](https://github.com/shadcn/registry)@0.1.0
</details>
<details>
<summary>socketio/socket.io (socket.io-client)</summary>
### [`v4.8.4`](https://github.com/socketio/socket.io/releases/tag/socket.io-client%404.8.4)
[Compare Source](https://github.com/socketio/socket.io/compare/socket.io-client@4.8.3...socket.io-client@4.8.4)
##### Bug Fixes
- **types:** export ExtendedError for connect_error event ([#​5548](https://github.com/socketio/socket.io/issues/5548)) ([c0d5450](https://github.com/socketio/socket.io/commit/c0d54509fbe7dafd3ed8b5a2f3f74a12810da4a3))
- **types:** export reserved event interfaces ([#​5533](https://github.com/socketio/socket.io/issues/5533)) ([03945df](https://github.com/socketio/socket.io/commit/03945df6b750dfa6379305ef29ea4235a424ca47))
##### Dependencies
- [`engine.io-client@~6.6.1`](https://github.com/socketio/socket.io/releases/tag/engine.io-client%406.6.7) (no change)
- [`ws@~8.21.0`](https://github.com/websockets/ws/releases/tag/8.21.0) ([diff](https://github.com/websockets/ws/compare/8.18.3...8.21.0))
</details>
<details>
<summary>dcastil/tailwind-merge (tailwind-merge)</summary>
### [`v3.7.0`](https://github.com/dcastil/tailwind-merge/releases/tag/tailwind-merge%403.7.0)
[Compare Source](https://github.com/dcastil/tailwind-merge/compare/v3.6.0...tailwind-merge@3.7.0)
##### New Features
- Prepare some upcoming changes by [@​dcastil](https://github.com/dcastil) in [#​713](https://github.com/dcastil/tailwind-merge/pull/713)
- Theme getters returned by `fromTheme` now expose the theme key they read as a `themeKey` property, so tooling can identify the referenced theme scale without calling the getter.
- Release tags now include the package name, starting with `tailwind-merge@3.7.0`.
##### Bug Fixes
- Fix arbitrary values using `color()` or `light-dark()` being classified as lengths instead of colors by [@​ddussi](https://github.com/ddussi) in [#​712](https://github.com/dcastil/tailwind-merge/pull/712)
- Fix bare `bg-conic` not merging with other background image classes by [@​dcastil](https://github.com/dcastil) in [#​708](https://github.com/dcastil/tailwind-merge/pull/708)
- Fix `columns-auto` not conflicting with other `columns` classes by [@​dcastil](https://github.com/dcastil) in [#​707](https://github.com/dcastil/tailwind-merge/pull/707)
- Fix container sizes like `inline-2xl` not merging by [@​dcastil](https://github.com/dcastil) in [#​706](https://github.com/dcastil/tailwind-merge/pull/706)
- Fix `max-h-none` missing in max-h class group by [@​mutewinter](https://github.com/mutewinter) in [#​704](https://github.com/dcastil/tailwind-merge/pull/704)
- Fix axis shorthands like `px` not overriding logical sides like `ps` by [@​dcastil](https://github.com/dcastil) in [#​705](https://github.com/dcastil/tailwind-merge/pull/705)
- Fix `leading-none` being removed when the leading theme scale is overridden by [@​chatman-media](https://github.com/chatman-media) in [#​689](https://github.com/dcastil/tailwind-merge/pull/689)
- Fix deprecated `shadow-inner` being classified as shadow color instead of shadow by [@​dcastil](https://github.com/dcastil) in [#​703](https://github.com/dcastil/tailwind-merge/pull/703)
##### Documentation
- Add Deno to install instructions by [@​bartlomieju](https://github.com/bartlomieju) in [#​687](https://github.com/dcastil/tailwind-merge/pull/687)
- Add missing `text-shadow` theme key to configuration docs by [@​dcastil](https://github.com/dcastil) in [`3e6d208`](https://github.com/dcastil/tailwind-merge/commit/3e6d2080a9905b5cc55f4b1515450544e761ded7)
##### Other
- Switch package manager from yarn to pnpm by [@​dcastil](https://github.com/dcastil) in [#​680](https://github.com/dcastil/tailwind-merge/pull/680)
- Harden CI security by [@​dcastil](https://github.com/dcastil) in [#​679](https://github.com/dcastil/tailwind-merge/pull/679)
**Full Changelog**: [`v3.6.0...v3.7.0`](https://github.com/dcastil/tailwind-merge/compare/v3.6.0...tailwind-merge@3.7.0)
Thanks to [@​brandonmcconnell](https://github.com/brandonmcconnell), [@​manavm1990](https://github.com/manavm1990), [@​langy](https://github.com/langy), [@​roboflow](https://github.com/roboflow), [@​syntaxfm](https://github.com/syntaxfm), [@​getsentry](https://github.com/getsentry), [@​codecov](https://github.com/codecov), a private sponsor, [@​openclaw](https://github.com/openclaw), [@​sourcegraph](https://github.com/sourcegraph), [@​cesarvcanal](https://github.com/cesarvcanal), [@​CasperKristiansson](https://github.com/CasperKristiansson), [@​jbisasky](https://github.com/jbisasky), [@​frontendmasters](https://github.com/frontendmasters) and more via [@​thnxdev](https://github.com/thnxdev) for sponsoring tailwind-merge! ❤️
</details>
<details>
<summary>typescript-eslint/typescript-eslint (typescript-eslint)</summary>
### [`v8.72.0`](https://github.com/typescript-eslint/typescript-eslint/blob/HEAD/packages/typescript-eslint/CHANGELOG.md#8720-2026-10-19)
[Compare Source](https://github.com/typescript-eslint/typescript-eslint/compare/v8.71.2...v8.72.0)
This was a version bump only for typescript-eslint to align it with other projects, there were no code changes.
See [GitHub Releases](https://github.com/typescript-eslint/typescript-eslint/releases/tag/v8.72.0) for more information.
You can read about our [versioning strategy](https://typescript-eslint.io/users/versioning) and [releases](https://typescript-eslint.io/users/releases) on our website.
### [`v8.71.2`](https://github.com/typescript-eslint/typescript-eslint/blob/HEAD/packages/typescript-eslint/CHANGELOG.md#8712-2026-10-12)
[Compare Source](https://github.com/typescript-eslint/typescript-eslint/compare/v8.71.1...v8.71.2)
This was a version bump only for typescript-eslint to align it with other projects, there were no code changes.
See [GitHub Releases](https://github.com/typescript-eslint/typescript-eslint/releases/tag/v8.71.2) for more information.
You can read about our [versioning strategy](https://typescript-eslint.io/users/versioning) and [releases](https://typescript-eslint.io/users/releases) on our website.
### [`v8.71.1`](https://github.com/typescript-eslint/typescript-eslint/blob/HEAD/packages/typescript-eslint/CHANGELOG.md#8711-2026-10-05)
[Compare Source](https://github.com/typescript-eslint/typescript-eslint/compare/v8.71.0...v8.71.1)
This was a version bump only for typescript-eslint to align it with other projects, there were no code changes.
See [GitHub Releases](https://github.com/typescript-eslint/typescript-eslint/releases/tag/v8.71.1) for more information.
You can read about our [versioning strategy](https://typescript-eslint.io/users/versioning) and [releases](https://typescript-eslint.io/users/releases) on our website.
### [`v8.71.0`](https://github.com/typescript-eslint/typescript-eslint/blob/HEAD/packages/typescript-eslint/CHANGELOG.md#8710-2026-09-28)
[Compare Source](https://github.com/typescript-eslint/typescript-eslint/compare/v8.70.1...v8.71.0)
This was a version bump only for typescript-eslint to align it with other projects, there were no code changes.
See [GitHub Releases](https://github.com/typescript-eslint/typescript-eslint/releases/tag/v8.71.0) for more information.
You can read about our [versioning strategy](https://typescript-eslint.io/users/versioning) and [releases](https://typescript-eslint.io/users/releases) on our website.
### [`v8.70.1`](https://github.com/typescript-eslint/typescript-eslint/blob/HEAD/packages/typescript-eslint/CHANGELOG.md#8701-2026-09-21)
[Compare Source](https://github.com/typescript-eslint/typescript-eslint/compare/v8.70.0...v8.70.1)
This was a version bump only for typescript-eslint to align it with other projects, there were no code changes.
See [GitHub Releases](https://github.com/typescript-eslint/typescript-eslint/releases/tag/v8.70.1) for more information.
You can read about our [versioning strategy](https://typescript-eslint.io/users/versioning) and [releases](https://typescript-eslint.io/users/releases) on our website.
</details>
<details>
<summary>pmndrs/zustand (zustand)</summary>
### [`v5.0.16`](https://github.com/pmndrs/zustand/releases/tag/v5.0.16)
[Compare Source](https://github.com/pmndrs/zustand/compare/v5.0.15...v5.0.16)
This version has some improvements thanks to contributors: [@​MarshallOfSound](https://github.com/MarshallOfSound) [@​koreahghg](https://github.com/koreahghg) [@​chungyo](https://github.com/chungyo) [@​Godsdar](https://github.com/Godsdar)
#### What's Changed
- perf(react): don't memoize getServerSnapshot in useStore by [@​dai-shi](https://github.com/dai-shi) in [#​3563](https://github.com/pmndrs/zustand/pull/3563)
- fix(devtools): apply serialize.reviver when parsing devtools messages by [@​dai-shi](https://github.com/dai-shi) in [#​3568](https://github.com/pmndrs/zustand/pull/3568)
- fix(devtools): preserve shared connections during store cleanup by [@​dai-shi](https://github.com/dai-shi) in [#​3580](https://github.com/pmndrs/zustand/pull/3580)
- fix(persist): preserve external devtools action arguments by [@​dai-shi](https://github.com/dai-shi) in [#​3592](https://github.com/pmndrs/zustand/pull/3592)
**Full Changelog**: <https://github.com/pmndrs/zustand/compare/v5.0.15...v5.0.16>
</details>
---
### Configuration
📅 **Schedule**: (in timezone America/Los_Angeles)
- Branch creation
- At any time (no schedule defined)
- Automerge
- At any time (no schedule defined)
🚦 **Automerge**: Enabled.
♻ **Rebasing**: Whenever PR is behind base branch, or you tick the rebase/retry checkbox.
👻 **Immortal**: This PR will be recreated if closed unmerged. Get [config help](https://github.com/renovatebot/renovate/discussions) if that's undesired.
---
- [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box
---
This PR has been generated by [Mend Renovate CLI](https://github.com/renovatebot/renovate).
<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0NC4xODYuMiIsInVwZGF0ZWRJblZlciI6IjQ0LjE4Ni4yIiwidGFyZ2V0QnJhbmNoIjoibWFpbiIsImxhYmVscyI6W119-->
Blocking a user prevents them from interacting with repositories, such as opening or commenting on pull requests or issues. Learn more about blocking a user.
This PR contains the following updates:
1.8.0→1.9.010.4.1→10.4.214.6.7→14.6.824.13.4→24.19.25.0.0→5.0.5^0.4.24→^0.5.030.0.1→30.1.319.3.0→19.3.119.3.0→19.3.17.18.3→7.18.44.21.0→4.22.14.8.3→4.8.43.6.0→3.7.08.70.0→8.72.05.0.0→5.0.55.0.15→5.0.16Release Notes
mui/base-ui (@base-ui/react)
v1.9.0Compare Source
Oct 9, 2026
General changes
CssVariablesandDataAttributestypes (#5243) by @superhoomanAccordion
<Accordion.Trigger>'sdata-valueanddata-indexattributes (#5705) by @cpruijsendisabledattribute to<Accordion.Trigger>when using native buttons (#5607) by @atomikshiddenUntilFoundpanels synchronously onbeforematch(#5514) by @aarongarciahAlert Dialog
Autocomplete
autoHighlightfor asynchronous results (#5818) by @atomiksonItemHighlighted. Pointer events may beMouseEventorPointerEvent; typing reports the reasonnone(#5838) by @atomiksactionsRef. CalleventDetails.preventUnmountOnClose()inonOpenChangeto opt out of automatic unmounting (#5734) by @michaldudakCheckbox
aria-labelover associated labels (#5787) by @atomiksCollapsible
disabledattribute to<Collapsible.Trigger>when using native buttons (#5607) by @atomikshiddenUntilFoundpanels synchronously onbeforematch(#5514) by @aarongarciahCombobox
autoHighlightfor asynchronous results (#5818) by @atomiksactionsRef. CalleventDetails.preventUnmountOnClose()inonOpenChangeto opt out of automatic unmounting (#5734) by @michaldudakonItemHighlighted. Pointer events may beMouseEventorPointerEvent; typing reports the reasonnone(#5838) by @atomiksDialog
Drawer
xandyoptions todata-base-ui-swipe-ignore(#5808) by @citrus<Drawer.Provider>(#5921) by @atomiksField
<Field.Control>'sdefaultValuechanges (#5881) by @atomiksMenu
<Menu.FilterProvider>,<Menu.Input>, and theonItemHighlightedcallback (preview) (#5527, #5838, #5840, #5868) by @atomiks and @jjenzz<Menu.Trigger>(#5764) by @sai6855onOpenChangewhen an item press closes the menu (#5789) by @michaldudakNumber Field
<NumberField.ScrubArea>'sonClickonce per click (#5889) by @michaldudakOTP Field
Popover
Preview Card
Radio Group
aria-labelover associated labels (#5787) by @atomiksinputRefforwarding and cleanup (#5775) by @lyzno1Scroll Area
Select
actionsRef. CalleventDetails.preventUnmountOnClose()inonOpenChangeto opt out of automatic unmounting (#5734) by @michaldudakSlider
touchcancelandpointercancel(#5639) by @brijeshb42onValueCommitted(#5779) by @atomiksSwitch
aria-labelover associated labels (#5787) by @atomiksTabs
Toast
Tooltip
All contributors of this release in alphabetical order: @aarongarciah, @atomiks, @brijeshb42, @citrus, @cpruijsen, @flaviendelangle, @jjenzz, @LukasTy, @lyzno1, @mdm317, @michaldudak, @MonstraG, @padd60, @sai6855, @santiago-ramos-02, @sarthakmalik0810, @superhooman, @tjdsksro90
testing-library/dom-testing-library (@testing-library/dom)
v10.4.2Compare Source
Bug Fixes
testing-library/user-event (@testing-library/user-event)
v14.6.8Compare Source
Bug Fixes
vitest-dev/vitest (@vitest/coverage-v8)
v5.0.5Compare Source
🐞 Bug Fixes
fs.denywith api token file - by @hi-ogawa, Hiroshi Ogawa and Claude Opus 5.5 in #11578 (28dc1)--changed- by @sheremet-va in #11583 (14921)datato theimport.meta.hotstub - by @sheremet-va in #11590 (3a828)skipinskipIf, ignoreundefinedoptions - by @sheremet-va in #11591 (d523a)&#​39;failed&#​39;on worker crash - by @AriPerkkio in #11568 (6ae8e)View changes on GitHub
v5.0.4Compare Source
🚀 Features
test.ui.themeoption - by @sheremet-va in #11499 (1da66)--changed- by @sheremet-va in #11424 (a2336)🐞 Bug Fixes
:in project and change the shape ofresultscache - by @sheremet-va in #11453 (9673c)$string values whentaskTitleValueFormatTruncateis 0 - by @hi-ogawa, Hiroshi Ogawa and Claude Opus 5.5 in #11485 (4f7e1)maxWorkerssetting. Previously, it was applied incorrectly and could lead to Vitest using too many resources. For example, a lower number would still open too many browsers. Fixing it means Vitest opens less instances by default now.allowExternalfails to include uncovered files - by @AriPerkkio in #11513 (4ef00)MapandSetdeep equality in some assertions - by @hi-ogawa, Hiroshi Ogawa and Claude Opus 5.5 in #11402 (b4e79)thistomodule.exports- by @sheremet-va in #11504 (b618a)🏎 Performance
View changes on GitHub
v5.0.3Compare Source
🐞 Bug Fixes
result.statusbetweenrepeatsruns - by @hi-ogawa, Hiroshi Ogawa and Codex (GPT-6) in #11218 (5dbeb)test.failsexpectedly failed - by @hi-ogawa, Hiroshi Ogawa and Codex (GPT-6) in #11219 (b2458)listenuntil tests start running - by @sheremet-va in #11366 (7d8ed)toMatchScreenshotuses wrong reference on retried tests - by @macarie in #11393 (c22ab)why-is-node-runningto3.2.1to avoid users running intoERR_PNPM_TRUST_DOWNGRADE- by @AriPerkkio in #11403 (f6c9a)expect.extendasymmetric matchers - by @hi-ogawa, Hiroshi Ogawa and Claude in #11401 (3e794)groupOrderis set - by @mtorp in #11392 (50312)View changes on GitHub
v5.0.2Compare Source
🐞 Bug Fixes
processin case global is overwritten - by @AriPerkkio in #11343 (0b792)process.stdiohandles - by @AriPerkkio in #11333 (0fd6b)toMatchObjectwith asymmetric matchers - by @ShreeBohara, Claude Opus 5, @hi-ogawa, Hiroshi Ogawa and Codex (GPT-5) in #11100 (42523)RequestwithBlobbody on jsdom 28+ - by @harshit-d3v in #11295 (d1c3e)agentto respect--silent- by @Raj4478 and @AriPerkkio in #11271 (5b95e)createReportcalls - by @7rulnik in #11278 (e8e55)hanging-processto use ESM entrypoint - by @AriPerkkio in #11316 (4e91e)Set.prototype.add- by @fengmk2 in #11299 (a0a93)View changes on GitHub
v5.0.1Compare Source
🚀 Features
🐞 Bug Fixes
extends- by @sheremet-va in #11034 (23dda)deps.optimizer.webis used - by @im10furry in #11214 (2ce29)config.define- by @sheremet-va in #11198 (972e2)toMatchAriaSnapshot- by @sheremet-va in #11208 (c119b)queueMicrotaskandnextTickintoNotFake- by @kingmakeruix, kingmakeruix, Hiroshi Ogawa, Codex and @hi-ogawa in #11261 (a47d7)deepMergeto handle prototype - by @hi-ogawa, Hiroshi Ogawa and Codex in #11215 (4944c)View changes on GitHub
ArnaudBarre/eslint-plugin-react-refresh (eslint-plugin-react-refresh)
v0.5.7Compare Source
Add
allowCompoundComponentsoption (#117)Don't warn when components are exported as an object gathering them. Every member of the object must be a component, and a member holding an anonymous function requires a component name as key.
This should be enabled if the fast refresh implementation correctly handles this case. Vite supports it since
@vitejs/plugin-react4.7.0,@vitejs/plugin-react-swc3.11.0.Enabling this option allows code such as the following:
v0.5.6Compare Source
v0.5.5Compare Source
export { Name }incorrectly treated as React component #114 (fixes #113)contentTypeandsizetoallowExportNamesin Next config #115v0.5.4Compare Source
instanttoallowExportNamesin Next config #112v0.5.3Compare Source
export { }#110 (fixes #109)v0.5.2Compare Source
v0.5.1Compare Source
v0.5.0Compare Source
Breaking changes
reactRefreshexport is available and prefered over the default export. It's an object with two properties:plugin: The plugin object with the rulesconfigs: An object containing configuration presets, each exposed as a function. These functions accept your custom options, merge them with sensible defaults for that config, and return the final config object.customHOCsoption was renamed toextraHOCsextraHOCsoptionConfig example:
Config example without config:
Why
This version follows a revamp of the internal logic to better make the difference between random call expressions like
export const Enum = Object.keys(Record)and actual React HOC calls likeexport const MemoComponent = memo(Component). (fixes #93)The rule now handles ternaries and patterns like
export default customHOC(props)(Component)which makes it able to correctly support files like this one given this config:Because I'm not 100% sure this new logic doesn't introduce any false positive, this is done in a major-like version. This also give me the occasion to remove the hardcoded
connectfrom the rule. If you are usingconnectfromreact-redux, you should now add it toextraHOCslike this:jsdom/jsdom (jsdom)
v30.1.3Compare Source
getComputedStyle()and computed CSS property reads, including with stylesheets containing attribute selectors. (@scttcper, @asamuzaK)XMLHttpRequestreusing credentials supplied toxhr.open()after cross-origin redirects, including in response to authentication challenges from the destination.XMLHttpRequestincorrectly sending and accepting cookies after cross-origin redirects back to the document's origin whenxhr.withCredentialsis false.calc(0px - @submenu_space), while parsing documents, stylesheets, and style declarations. (@rnavarro)getComputedStyle()ignoring style rules nested inside multiple@mediarules.getComputedStyle()returning unresolved or inconsistent shorthand values, including for 'background', 'border', 'flex', 'font', 'margin', and 'padding', and incorrect shorthand defaults and inheritance.color-mix()results, which regressed in v29.0.2.currentcolorborder colors incorrectly becoming transparent when 'color' useslight-dark()or relative color syntax.[data-a|=""]failing to match empty values and values beginning with-. (@asamuzaK)v30.1.2Compare Source
initialreset. (@scttcper)getComputedStyle()returning stale results after editing stylesheet declarations, selectors, or media queries, including in imported stylesheets.:focus,:focus-visible,:focus-within, and selectors containing them after focus changes, including inside focus and blur listeners. (@asamuzaK)element.focus()incorrectly focusing elements hidden by 'display', including through shadow hosts and slots, and elements excluded by shadow DOM slot assignment. (@asamuzaK)getComputedStyle()throwing for elements without inline-style support, including XML and MathML elements.window.close().MutationObserverinstances retaining bookkeeping for garbage-collected nodes. (@scttcper)select.selectedOptionscollections becoming stale after selection changes and form resets.color-mix()expressions, including exceptions during color resolution. (@asamuzaK)v30.1.1Compare Source
blurandfocusoutevents and incorrectevent.relatedTargetvalues when focusing an element after removing the previously focused element, which regressed in v30.1.0. (@asamuzaK)document.documentElement.focus(). (@asamuzaK)blurlisteners becoming active, and text selections made by focus and blur listeners being overwritten. (@asamuzaK)element.focus()incorrectly focusing disabled form controls and<input type="hidden">elements withtabindex="". (@scttcper)style.setProperty()calls changing existing!importantpriorities, serialized styles, or mutation records. (@FedgeNo)!importanthandling when updating CSS longhands after shorthands, using variables or CSS-wide keywords, and assigning style properties directly. (@FedgeNo)<noscript>parsing withincludeNodeLocations: trueor inside frames to honor therunScriptsoption.storageQuotaoption being ignored by frames.charsetparameters in<meta>elements, and encoding detection incorrectly using incomplete<meta>tags. (@FedgeNo)constructor,toString,__proto__, or"null", and incorrect reuse of namespace prefixes declared on sibling elements.element.innerHTMLandelement.outerHTMLin XML documents to reject invalid characters in attribute values and avoid stack overflows on large strings.:lang(),:nth-child(... of ...)after mutations, and:has()with duplicate IDs or nested logical pseudo-classes. (@asamuzaK)v30.1.0Compare Source
jsdom is feeling the AGI!
This release is dedicated to @scttcper, who unleashed @codex upon jsdom and found tons of performance improvements. Along the way, he found and fixed many correctness issues as well.
We really appreciate his thoughtful PRs, which did a great job following the project's contribution guidelines, and were clearly human-curated, with their PR descriptions edited to be brief and respectful of the maintainers' time.
Thanks to @scttcper, as well as all the other contributors of this release (most of whom were AI-assisted).
document, such asdocument.myFormfor<form name="myForm">. (@vojtisprime11)QuotaExceededError, including its use for storage quota errors and oversizedcrypto.getRandomValues()requests.getComputedStyle(), style changes, and CSS serialization. (@scttcper, @jhult)<select>elements and radio button groups. (@scttcper)window.close()to preserve access to the document and its DOM through retained references.element.querySelectorAll()returning no matches when the first part of the selector matches the element itself, which regressed in v30.0.0. (@asamuzaK)data-state="",title="", and other case-sensitive values. (@asamuzaK)document.querySelector()failing to find a matching element when an earlier element has the same ID but does not match the rest of the selector. (@vojtisprime11):focusmatching in shadow trees. (@asamuzaK)document.replaceChildren()calls, invalid document element and doctype placements, and mutations duringelement.replaceWith().window.close()or iframe removal, and prevented new scripts, resource loads, timers, and animation frames from starting in destroyed documents. (@scttcper)requestInterceptor()callbacks, and when reusing anXMLHttpRequestafter aborting it.JSDOM.fromURL()potentially hanging when response handling throws and response stream cleanup does not finish.getComputedStyle()anddocument.styleSheetsusing the wrong stylesheet order after inserting or updating<style>elements.getComputedStyle()ignoring nested@importand@mediarules in imported stylesheets, and returning stale results after imports finish loading.getComputedStyle()calls changing case-sensitive background URLs, and inconsistent resolution of border shorthands containing system colors. (@scttcper)16px, which regressed in v30.0.0. (@Alberto-BaseNet)getComputedStyle()to resolve'font-weight'keywords to numeric values. (@tianrking)getComputedStyle()to convert lengths to pixels inside CSS math functions containing percentages, and to resolve percentages in'font-size'math functions. (@soroushm)min()andmax()containing nestedcalc(), which regressed in v30.0.0. (@asamuzaK)'grid-template-columns'values containing both100pxandcalc(). (@rome-xi)'background'and'border'shorthands with adjacent components, such asurl(a.png)no-repeat, including a crash when parsing inline styles. Also fixed handling of invalid shorthand assignments and escaped or unusual characters in CSS declarations. (@asamuzaK)'flex'shorthands, such as35 1 0, and rejection of negative'flex-basis'lengths and percentages. (@asamuzaK)RangeandSelectionhandling of CDATA sections, including boundary offsets and range cloning, extraction, deletion, insertion, and stringification. (@scttcper)text.normalize()incorrectly removing the text node or merging its siblings. (@scttcper)window, and incorrect named access from empty or namespacedid=""andname=""values. (@scttcper)DOMParserordocument.implementation.createHTMLDocument()appearing as named properties onwindowand being retained in memory. (@Iaotle)storageevents being sent to windows created after the storage change, and ensured surviving recipients still receive events when the source document is destroyed.input.listin detached element trees. (@scttcper)attr.ownerDocumentafter setting an attribute node on an element in another document or adopting its element. (@Kjubikstronk)element.getElementsByTagName()calls using the previous document's case-sensitivity rules after adoption between HTML and XML documents. (@Kjubikstronk)element.tagNamereturning stale casing after adoption between HTML and XML documents.<select>selection updates when moving options, and unintended selection resets when moving a whole<select>or changing unrelated descendants.<input>elements to preserveinput.indeterminate.<script>. (@Kjubikstronk)src="", and handling oftype="",for="", andevent="".document.currentScriptduring nested script execution and scripts in shadow trees.window.event, and default passive listener handling for non-node event targets, and event dispatch when user code modifieswindow.constructor.volumechangeandratechangeevents to fire asynchronously. (@christianaurichzm)NodeIteratortraversal when its filter removes nodes.fileReader.readAsText()to honor the blob's MIME type charset when no supported explicit encoding is supplied.input.valueAsNumberassignments for time and local date/time inputs.<textarea>values to use the numerictextarea.colsvalue.document.readyStateto be"complete"for documents created withdocument.implementation.createDocument()anddocument.implementation.createHTMLDocument().element.translatefor emptytranslate=""values and elements without a parent.node.lookupNamespaceURI()for thexmlandxmlnsprefixes. (@vojtisprime11)<base>elements to ignoredata:andjavascript:URLs. (@vojtisprime11)svgElement.viewportElementinside<symbol>elements.blobEvent.timecodeto beNaN.CSS.react/react (react)
v19.3.1: 19.3.1 (October 14th, 2026)Compare Source
React Server Components
remix-run/react-router (react-router)
v7.18.4: v7.18.4Compare Source
See the changelog for release notes: https://github.com/remix-run/react-router/blob/v7/CHANGELOG.md#v7184
shadcn-ui/ui (shadcn)
v4.22.1Compare Source
Patch Changes
4381eebThanks @shadcn! - Fixshadcn add --alland the component picker to only include components available for the project's style.v4.22.0Compare Source
Minor Changes
954ce95Thanks @shadcn! - Upgrade to Zod 4.shadcn/schemaand@shadcn/registry/schemanow export Zod 4 schemas, so passing them to Zod 3'szno longer typechecks. On Zod 3, use the exported types (RegistryItem,RegistryItemFile,Config) and the schema's own methods (registryItemSchema.array()) instead ofz.inferandz.array. Zod errors exposeissues, noterrors. Validation messages now use Zod 4's wording.Patch Changes
954ce95]:v4.21.5Compare Source
Patch Changes
#12214
4407349Thanks @dependabot! - Update@modelcontextprotocol/sdk,browserslist,openandpostcss-selector-parser.#12192
dd34945Thanks @shadcn! - Move @shadcn/registry modules out of utils.#12297
7aa2110Thanks @mattzcarey! - Fix MCP search and list results showing[object Promise]instead of the add command.#12174
2af71acThanks @dependabot! - Update@modelcontextprotocol/sdkto 1.31.0.#12048
cfb4cb6Thanks @dependabot! - Updateundicito 7.29.1.Updated dependencies [
97ddbf4,dd34945,cfb4cb6]:v4.21.4Compare Source
Patch Changes
#12189
76fd499595ba7cc01f49d159bd7ac82d7aca8e63Thanks @shadcn! - Drop the ts-morph dependency from @shadcn/registry.#12184
995c2cfff44c373bd210d451089726ec097ab917Thanks @shadcn! - Run the icons and asChild transformers without ts-morph.#12160
6efecd8fe9aa167886fe2cc0c05c5623a5bb5670Thanks @shadcn! - Edit the Next.js layout for font items without ts-morph, and skip it with a warning instead of writing a broken layout.#12188
efa11781f756c86debb0392fbea4fe468250b41bThanks @shadcn! - Rewrite imports and crawl file imports without ts-morph.#12177
e8c3143b1cd191280befcd6c9538284bb43399a8Thanks @shadcn! - Edit tailwind.config without ts-morph, and skip it with a warning instead of writing a broken config.#12183
f56bbd7282f0116a925a601cb6d7e0c3fede448bThanks @shadcn! - Run the rsc, import, CSS variable, cleanup, font and menu transformers without ts-morph.#12185
4a90344c42dc9ae47494179065219377ff5f2a8fThanks @shadcn! - Run the Tailwind prefix and RTL transformers without ts-morph.Updated dependencies [
76fd499595ba7cc01f49d159bd7ac82d7aca8e63,995c2cfff44c373bd210d451089726ec097ab917,6efecd8fe9aa167886fe2cc0c05c5623a5bb5670,232d7e2c128d94d37a6dae74e3b0e1a8f08ff6e4,efa11781f756c86debb0392fbea4fe468250b41b,e8c3143b1cd191280befcd6c9538284bb43399a8,f56bbd7282f0116a925a601cb6d7e0c3fede448b,4a90344c42dc9ae47494179065219377ff5f2a8f]:v4.21.3Compare Source
Patch Changes
#12148
596be8dda8f94927281184b8c4575150531f85eaThanks @shadcn! - FixERR_REQUIRE_CYCLE_MODULEwhen running the CLI withpnpm dlxon Windows.Updated dependencies [
596be8dda8f94927281184b8c4575150531f85ea]:v4.21.2Compare Source
Patch Changes
#12143
8c2bf3882cb856ac10abbb162bdc0b8383ebd432Thanks @shadcn! - Acceptcomponents.jsonandpackage.jsonfiles that start with a UTF-8 byte order mark.#12142
95efb5cd8d7f13adba70b58b1119211e8980683fThanks @shadcn! - replace cosmiconfig with a smaller custom reader.#12140
3b1ae6e43f082dd82d0e5710b813cfad929abdb4Thanks @shadcn! - Skipnpm auditand the funding check when installing or removing dependencies, or creating a project, with npm.Updated dependencies [
8c2bf3882cb856ac10abbb162bdc0b8383ebd432,95efb5cd8d7f13adba70b58b1119211e8980683f,3b1ae6e43f082dd82d0e5710b813cfad929abdb4]:v4.21.1Compare Source
Patch Changes
#12087
bf6646b449684e687f28531305eca4e4768c2782Thanks @shadcn! - Add@shadcn/registry, the registry engine behind the CLI.shadcnnow depends on it, andshadcn/registryandshadcn/schemare-export it, so there are no changes for existing users.#12061
a9c1da49ec4eab488dc99c69ae20a7ffaa4897d4Thanks @shadcn! - fix shimmer reduced motion handling when used with a variant#12087
bf6646b449684e687f28531305eca4e4768c2782Thanks @shadcn! -shadcn docsonly rewrites links on the ui.shadcn.com host.Updated dependencies [
bf6646b449684e687f28531305eca4e4768c2782]:socketio/socket.io (socket.io-client)
v4.8.4Compare Source
Bug Fixes
Dependencies
engine.io-client@~6.6.1(no change)ws@~8.21.0(diff)dcastil/tailwind-merge (tailwind-merge)
v3.7.0Compare Source
New Features
fromThemenow expose the theme key they read as athemeKeyproperty, so tooling can identify the referenced theme scale without calling the getter.tailwind-merge@3.7.0.Bug Fixes
color()orlight-dark()being classified as lengths instead of colors by @ddussi in #712bg-conicnot merging with other background image classes by @dcastil in #708columns-autonot conflicting with othercolumnsclasses by @dcastil in #707inline-2xlnot merging by @dcastil in #706max-h-nonemissing in max-h class group by @mutewinter in #704pxnot overriding logical sides likepsby @dcastil in #705leading-nonebeing removed when the leading theme scale is overridden by @chatman-media in #689shadow-innerbeing classified as shadow color instead of shadow by @dcastil in #703Documentation
text-shadowtheme key to configuration docs by @dcastil in3e6d208Other
Full Changelog:
v3.6.0...v3.7.0Thanks to @brandonmcconnell, @manavm1990, @langy, @roboflow, @syntaxfm, @getsentry, @codecov, a private sponsor, @openclaw, @sourcegraph, @cesarvcanal, @CasperKristiansson, @jbisasky, @frontendmasters and more via @thnxdev for sponsoring tailwind-merge! ❤️
typescript-eslint/typescript-eslint (typescript-eslint)
v8.72.0Compare Source
This was a version bump only for typescript-eslint to align it with other projects, there were no code changes.
See GitHub Releases for more information.
You can read about our versioning strategy and releases on our website.
v8.71.2Compare Source
This was a version bump only for typescript-eslint to align it with other projects, there were no code changes.
See GitHub Releases for more information.
You can read about our versioning strategy and releases on our website.
v8.71.1Compare Source
This was a version bump only for typescript-eslint to align it with other projects, there were no code changes.
See GitHub Releases for more information.
You can read about our versioning strategy and releases on our website.
v8.71.0Compare Source
This was a version bump only for typescript-eslint to align it with other projects, there were no code changes.
See GitHub Releases for more information.
You can read about our versioning strategy and releases on our website.
v8.70.1Compare Source
This was a version bump only for typescript-eslint to align it with other projects, there were no code changes.
See GitHub Releases for more information.
You can read about our versioning strategy and releases on our website.
pmndrs/zustand (zustand)
v5.0.16Compare Source
This version has some improvements thanks to contributors: @MarshallOfSound @koreahghg @chungyo @Godsdar
What's Changed
Full Changelog: https://github.com/pmndrs/zustand/compare/v5.0.15...v5.0.16
Configuration
📅 Schedule: (in timezone America/Los_Angeles)
🚦 Automerge: Enabled.
♻ Rebasing: Whenever PR is behind base branch, or you tick the rebase/retry checkbox.
👻 Immortal: This PR will be recreated if closed unmerged. Get config help if that's undesired.
This PR has been generated by Mend Renovate CLI.
2e5eef2c41to3c45df0d2b3c45df0d2bto53012d7a8053012d7a80to2926ab466bView command line instructions
Checkout
From your project repository, check out a new branch and test the changes.