# What changed in bits-ui

> 40 changes in bits-ui 2 from its official release notes, upgrade guides and advisories: 4 breaking, 1 new APIs and options. Each one cited. Sources checked 2026-10-28. HTML: https://unstale.sh/npm/bits-ui/

To see which of these apply to a repository, run `npx @unstale/cli init` in it.

## bits-ui 2

### Breaking changes

- Home and End move the text cursor instead of highlighting the first or last item. (2.20.2) — [release notes](https://github.com/huntabyte/bits-ui/releases/tag/bits-ui%402.20.2)
- Select, Combobox, and DropdownMenu triggers no longer open when disabled by an ancestor fieldset. (2.20.0) — [release notes](https://github.com/huntabyte/bits-ui/releases/tag/bits-ui%402.20.0)
- Content mounted open in Collapsible and Accordion no longer plays its open animation. (2.20.0) — [release notes](https://github.com/huntabyte/bits-ui/releases/tag/bits-ui%402.20.0)
- Tooltip closes when any scrolling ancestor of its trigger scrolls. (2.20.0) — [release notes](https://github.com/huntabyte/bits-ui/releases/tag/bits-ui%402.20.0)

### New APIs and options

- The hidden input now defaults to autocomplete="off"; the new autocomplete prop lets developers override it. (2.20.0) — [release notes](https://github.com/huntabyte/bits-ui/releases/tag/bits-ui%402.20.0)

### Performance

- Avoid remounting all items on the first search character when shouldFilter is false. (2.20.1) — [release notes](https://github.com/huntabyte/bits-ui/releases/tag/bits-ui%402.20.1)

### Fixes and other changes

- A trigger opens on clicks with detail 0, including element.click() and VoiceOver activation in Safari. (2.20.2) — [release notes](https://github.com/huntabyte/bits-ui/releases/tag/bits-ui%402.20.2)
- The date field no longer rejects or renders day 31 before a month is selected. (2.20.2) — [release notes](https://github.com/huntabyte/bits-ui/releases/tag/bits-ui%402.20.2)
- When force-mounted content opens, its z-index is applied to the floating wrapper. (2.20.2) — [release notes](https://github.com/huntabyte/bits-ui/releases/tag/bits-ui%402.20.2)
- Pressing Space toggles items. (2.20.2) — [release notes](https://github.com/huntabyte/bits-ui/releases/tag/bits-ui%402.20.2)
- The pressed item is selected when the list scrolls under a stationary pointer before release. (2.20.2) — [release notes](https://github.com/huntabyte/bits-ui/releases/tag/bits-ui%402.20.2)
- Consumer builds no longer emit state_referenced_locally compiler warnings for intentional initialization-time prop reads. (2.20.2) — [release notes](https://github.com/huntabyte/bits-ui/releases/tag/bits-ui%402.20.2)
- Keep a day tabbable when the placeholder is disabled after mount or after Prev/Next; also applies to RangeCalendar, DatePicker, and DateRangePicker. (2.20.1) — [release notes](https://github.com/huntabyte/bits-ui/releases/tag/bits-ui%402.20.1)
- Select the pressed item when the content scrolls under a still pointer before release; also applies to ContextMenu and Menubar. (2.20.1) — [release notes](https://github.com/huntabyte/bits-ui/releases/tag/bits-ui%402.20.1)
- Avoid an invalid z-index: undefined wrapper style that logs warnings in Firefox. (2.20.1) — [release notes](https://github.com/huntabyte/bits-ui/releases/tag/bits-ui%402.20.1)
- Preserve the weekday when moving focus with Arrow Up/Down past disabled dates. (2.20.1) — [release notes](https://github.com/huntabyte/bits-ui/releases/tag/bits-ui%402.20.1)
- Delayed open autofocus no longer focuses replaced content. (2.20.0) — [release notes](https://github.com/huntabyte/bits-ui/releases/tag/bits-ui%402.20.0)
- Body pointer-events are restored as soon as the last body-scroll lock is released, so clicks immediately after a layer closes are not lost. (2.20.0) — [release notes](https://github.com/huntabyte/bits-ui/releases/tag/bits-ui%402.20.0)
- Checkbox passes the form prop to the button again and submits the linked form when Enter is pressed with type="submit". (2.20.0) — [release notes](https://github.com/huntabyte/bits-ui/releases/tag/bits-ui%402.20.0)
- Deferred root work is skipped after Command.Root is destroyed. (2.20.0) — [release notes](https://github.com/huntabyte/bits-ui/releases/tag/bits-ui%402.20.0)
- The first item is scrolled into view when items are not grouped. (2.20.0) — [release notes](https://github.com/huntabyte/bits-ui/releases/tag/bits-ui%402.20.0)
- Command item selection logic is fixed. (2.20.0) — [release notes](https://github.com/huntabyte/bits-ui/releases/tag/bits-ui%402.20.0)
- Content no longer flashes visible for a frame after its exit animation when Svelte async mode is enabled. (2.20.0) — [release notes](https://github.com/huntabyte/bits-ui/releases/tag/bits-ui%402.20.0)
- Segments reset when value is cleared externally after a date has been typed. (2.20.0) — [release notes](https://github.com/huntabyte/bits-ui/releases/tag/bits-ui%402.20.0)
- The day period is preserved when typing or deleting the hour in 12-hour mode. (2.20.0) — [release notes](https://github.com/huntabyte/bits-ui/releases/tag/bits-ui%402.20.0)
- Focus remains on elements inside an open shadow root nested in the scope instead of treating them as escaping the trap. (2.20.0) — [release notes](https://github.com/huntabyte/bits-ui/releases/tag/bits-ui%402.20.0)
- Auto-focusing on open, trapping focus, and restoring focus on close no longer scroll the page. (2.20.0) — [release notes](https://github.com/huntabyte/bits-ui/releases/tag/bits-ui%402.20.0)
- Hidden form inputs stay in sync with component state after a native form reset, preserving the current value and subsequent updates. (2.20.0) — [release notes](https://github.com/huntabyte/bits-ui/releases/tag/bits-ui%402.20.0)
- The document pointerup listener registered while open is always removed, preventing it from firing after the preview closes or unmounts. (2.20.0) — [release notes](https://github.com/huntabyte/bits-ui/releases/tag/bits-ui%402.20.0)
- Dismiss and escape layers are registered only while content is open, so closed force-mounted content no longer closes the open item on inside clicks or steals escape focus. (2.20.0) — [release notes](https://github.com/huntabyte/bits-ui/releases/tag/bits-ui%402.20.0)
- DatePicker and DateRangePicker respect preventDefault() so the calendar day is not automatically focused. (2.20.0) — [release notes](https://github.com/huntabyte/bits-ui/releases/tag/bits-ui%402.20.0)
- The callback is now called with true after content opens and its animations finish, as well as on close. (2.20.0) — [release notes](https://github.com/huntabyte/bits-ui/releases/tag/bits-ui%402.20.0)
- Calendar-related components fall back to the default placeholder when spread props are reassigned and placeholder is not bound, preventing an undefined-property error. (2.20.0) — [release notes](https://github.com/huntabyte/bits-ui/releases/tag/bits-ui%402.20.0)
- Select and Combobox stop scroll-button auto scrolling when content closes while the button is hovered. (2.20.0) — [release notes](https://github.com/huntabyte/bits-ui/releases/tag/bits-ui%402.20.0)
- Unselected Select.Item and Combobox.Item options now expose aria-selected="false" to report their selection state per the APG listbox pattern. (2.20.0) — [release notes](https://github.com/huntabyte/bits-ui/releases/tag/bits-ui%402.20.0)
- A click with no preceding pointer press, such as element.click() or VoiceOver activation in Safari, now opens the trigger. (2.20.0) — [release notes](https://github.com/huntabyte/bits-ui/releases/tag/bits-ui%402.20.0)
- Select.Trigger now has the combobox role and points aria-controls at the mounted listbox. (2.20.0) — [release notes](https://github.com/huntabyte/bits-ui/releases/tag/bits-ui%402.20.0)
- Select and Combobox keep the highlighted item aligned while content settles after positioning, realigning on viewport resize until the user scrolls. (2.20.0) — [release notes](https://github.com/huntabyte/bits-ui/releases/tag/bits-ui%402.20.0)
- Slider throws a descriptive error for non-finite min, max, or step values, or a step of 0, instead of hanging the browser. (2.20.0) — [release notes](https://github.com/huntabyte/bits-ui/releases/tag/bits-ui%402.20.0)
- Calendar weekday headers, headings, and cell labels no longer shift by a day when a ZonedDateTime uses a time zone ahead of the local one. (2.20.0) — [release notes](https://github.com/huntabyte/bits-ui/releases/tag/bits-ui%402.20.0)
