v1.7.0
- Restore visible focus after keyboard close in Safari and Firefox (#5093) by @lyzno1
- Type
rendercallback props based on the rendered element (#5104) by @atomiks - Reduce popup bundle size (#5233) by @atomiks
- Reduce store bundle size (#5250) by @atomiks
- Keep unpositioned popups at the viewport origin (#5299) by @flaviendelangle
- Correct layout and passive effect timing (#5337) by @atomiks
- Remove redundant lifecycle synchronization (#5341) by @atomiks
- Prevent stale cleanup from clearing registered part IDs (#5340) by @atomiks
- Complete popup unmounting after a canceled exit transition (#5401) by @atomiks
- Fix rendered trigger ID ownership (#5110) by @atomiks
- Prevent unwanted flip with capped scrollable content (#5120) by @atomiks
- Fix
collisionPaddingoff-by-one on the biased side (#5143) by @atomiks - Reduce shared popup bundle size (#5192) by @atomiks
- Mount popup subtrees synchronously when opening in React 17 (#5309) by @atomiks
- Fix auto-resize origin for left-anchored popups (#5370) by @sai6855
- Avoid redundant re-renders during lazy flipping (#5372) by @mdm317
- Strip implementation-only types from published
.d.tsfiles (#5165) by @michaldudak - Fix
usePreviousValueequality comparison (#5264) by @lyzno1
- Remove the implicit
dirattribute from<Accordion.Root>(#5117) by @chuganzy
- Prevent
<AlertDialog.Root>from reopening after remounting with a reused handle (#5109) by @michaldudak
- Respect locale when filtering (#5195) by @atomiks
- Add
input-pressto change event details (#5356) by @chuganzy - Add
cancel-opento change event details (#5376) by @chuganzy - Reset list scroll position on filter (#5231) by @atomiks
- Remove dead code and deduplicate handlers (#5194) by @atomiks
- Fix listbox separator semantics (#5399) by @sarthakmalik0810
- Show
<Avatar.Fallback>immediately whendelay={0}(#5147) by @chuganzy
- Fix keyboard click handling for custom elements (#4838) by @atomiks
- Remove redundant validation input ref (#5188) by @nami8824
- Stop internal input clicks from reaching ancestors (#5176) by @atomiks
- Reduce bundle size (#5223) by @atomiks
- Focus invalid checkbox (#5216) by @atomiks
- Align form values with native submission (#5218) by @atomiks
- Reduce bundle size (#5223) by @atomiks
- Add
input-pressto change event details (#5356) by @chuganzy - Add
cancel-opento change event details (#5376) by @chuganzy - Stop filtering grouped items after limit (#5086) by @lyzno1
- Remove leaky value registry (#5198) by @atomiks
- Set initial highlight in inline combobox (#5230) by @atomiks
- Return highlight to selected item on query clear (#5232) by @atomiks
- Expose
expandedstate for inline comboboxes (#5332) by @sarthakmalik0810 - Keep portalled popup content open (#5334) by @obeattie
- Reset list scroll position on filter (#5231) by @atomiks
- Fix hovered item stealing highlight when the list scrolls in Safari (#5265) by @arikchakma
- Inherit the disabled state from
<Combobox.Root>in<Combobox.Item>(#5365) by @chuganzy - Widen trigger slip-out release tolerance (#5159) by @atomiks
- Remove dead code and deduplicate handlers (#5194) by @atomiks
- Fix listbox separator semantics (#5399) by @sarthakmalik0810
- Fix nested list reorder detection (#5156) by @jjenzz
- Always skip natively disabled items during list navigation (#5185) by @atomiks
- Fix scroll alignment for RTL direction in
scrollIntoViewIfNeeded(#5234) by @sai6855 - Simplify keyboard bookkeeping (#5249) by @atomiks
- Fix touch outside-press dismissal without a backdrop (#5096) by @atomiks
- Prevent
<Dialog.Root>from reopening after remounting with a reused handle (#5109) by @michaldudak - Fix scroll lock handoff with external overlays (#4665) by @atomiks
- Reduce bundle size (#5193) by @atomiks
- Prevent
<Drawer.Root>from reopening after remounting with a reused handle (#5109) by @michaldudak - Fix unreliable swipe-to-open gestures (#5105) by @atomiks
- Fix popup flashing fully open for a frame on swipe area re-grab (#5112) by @atomiks
- Deduplicate swipe math to reduce bundle size (#5181) by @atomiks
- Fix scroll handling when focus moves while the virtual keyboard is open (#5179) by @atomiks
- Fix cross-axis scroll blocked on iOS below the touchmove slop (#5257) by @atomiks
- Fix snap point jump when pinned pointer moves leave the drag offset unchanged (#5308) by @atomiks
- Fix Shadow DOM swipe gestures (#5360) by @atomiks
- Keep invalid state on disabled fields (#5116) by @atomiks
- Reduce bundle size (#5225) by @atomiks
- Fix
data-dirtytracking for null-valued controls (#5290) by @sai6855
- Reduce bundle size (#5225) by @atomiks
- Reduce bundle size (#5225) by @atomiks
- Focus the first invalid field in document order (#5287) by @atomiks
- Ignore pinch-zoom shifting (#4485) by @atomiks
- Cancel stale submenu hover-open when Chrome drops mouseleave (#5153) by @atomiks
- Fix exit animation not running on uncheck of item (#5252) by @sai6855
- Fix duplicate
onOpenChangecalls when closing a submenu (#5178) by @atomiks - Fix VoiceOver announcement when opening a submenu (#5342) by @atomiks
- Propagate disabled state to items (#5363) by @chuganzy
- Open submenus on Android TalkBack press (#5384) by @atomiks
- Prevent
<Menu.Root>from reopening after remounting with a reused handle (#5149) by @michaldudak - Widen trigger slip-out release tolerance (#5159) by @atomiks
- Format clamped values (#5409) by @atomiks
- Reduce bundle size (#5224) by @atomiks
- Fix frozen menu when the open trigger unmounts (#5240) by @DreierF
- Ignore pinch-zoom shifting (#4485) by @atomiks
- Fix keyboard editing with multi-character format symbols (#5111) by @atomiks
- Reduce bundle size (#5220) by @atomiks
- Keep focus on the invalid field when
autoSubmitis blocked (#5089) by @lyzno1
- Prevent
<Popover.Root>from reopening after remounting with a reused handle (#5149) by @michaldudak - Reduce bundle size (#5193) by @atomiks
- Prevent
<PreviewCard.Root>from reopening after remounting with a reused handle (#5149) by @michaldudak
- Fix custom
min/maxsemantics to match the indicator (#5095) by @atomiks - Reduce bundle size (#5224) by @atomiks
- Remove unnecessary ARIA attributes from
<Radio.Root>(#5213) by @sai6855 - Stop internal input clicks from reaching ancestors (#5176) by @atomiks
- Align form values with native submission (#5238) by @atomiks
- Reduce bundle size (#5223) by @atomiks
- Fix thumb-drag divide-by-zero and per-scroll re-render (#5099) by @atomiks
- Fix scrollbar visibility during touch scrolling on iOS (#5157) by @atomiks
- Add WebKit overscroll feedback to
<ScrollArea.Thumb>(#5145) by @atomiks - Reduce bundle size (#5217) by @atomiks
- Prevent scroll snapping while dragging the thumb (#5259) by @atomiks
- End thumb drag when the primary button is no longer held (#5374) by @atomiks
- Fix hovered item stealing highlight when the list scrolls in Safari (#5265) by @arikchakma
- Inherit the disabled state from
<Select.Root>in<Select.Item>(#5365) by @chuganzy - Widen trigger slip-out release tolerance (#5159) by @atomiks
- Do not force-mount the popup on programmatic value changes (#5119) by @atomiks
- Remove dead code and deduplicate handlers (#5194) by @atomiks
- Fix listbox separator semantics (#5399) by @sarthakmalik0810
- Fix assorted issues (#5097) by @atomiks
- Reduce bundle size (#5222) by @atomiks
- Exclude the prehydration script from client bundles (#5003) by @michaldudak
- Stop internal input clicks from reaching ancestors (#5176) by @atomiks
- Reduce bundle size (#5223) by @atomiks
- Position pre-hydration indicator inside streamed Suspense (#5171) by @brijeshb42
- Exclude the prehydration script from client bundles (#5003) by @michaldudak
- Reduce bundle size (#5221) by @atomiks
- Fix remaining toast timer calculation (#5261) by @sai6855
- Reduce bundle size (#5219) by @atomiks
- Render content passed through the
renderprop in<Toast.Title>,<Toast.Description>, and<Toast.Action>(#5210) by @m2na7 - Fix re-adding a closing toast (#5258) by @atomiks
- Fix swipe direction locking for two-axis swipes (#5295) by @sai6855
- Fix
<Toast.Provider>prop effect ordering (#5338) by @atomiks
- Reduce bundle size (#5224) by @atomiks
- Reduce bundle size (#5221) by @atomiks
- Prevent
<Tooltip.Root>from reopening after remounting with a reused handle (#5149) by @michaldudak
All contributors of this release in alphabetical order: @arikchakma, @atomiks, @bernardobelchior, @brijeshb42, @chuganzy, @DiegoAndai, @DreierF, @flaviendelangle, @jjenzz, @lyzno1, @m2na7, @mdm317, @michaldudak, @nami8824, @obeattie, @sai6855, @sarthakmalik0810
v1.6.0
- Correct inaccurate prop JSDoc (#5036) by @atomiks
- Update the hook value when store/arguments change (#4866) by @chuganzy
- Restore viewport morphing after reopen for kept-mounted popups (#5010) by @atomiks
- Fix pseudo-element bounds in dev mode (#5000) by @atomiks
- Fix trigger behavior bugs (#4833) by @atomiks
- Remove region role from
Accordion.Root(#4961) by @chuganzy - Align keyboard navigation with APG (#4965) by @chuganzy
- Fix programmatic focus return (#4849) by @atomiks
- Keep ArrowLeft/ArrowRight on the input caret in grid mode (#4948) by @spokodev
- Document
openrequirement for theinlineprop (#5069) by @atomiks
- Fix image status edge cases (#4835) by @atomiks
- Fix parent group cancellation and indeterminate state (#4941) by @atomiks
- Ignore
data-focusedField attribute when disabled (#4998) by @atomiks - Fix extra
validatefn calls (#4911) by @mj12albert
- Fix parent group cancellation and indeterminate state (#4941) by @atomiks
- Fix parent checkbox with custom
validatefn (#4912) by @mj12albert - Fix validation with multiple required checkboxes (#4958) by @atomiks
- Forward group ids (#4997) by @atomiks
- Fix trigger and panel state bugs (#4848) by @atomiks
- Fix chip context error (#4877) by @lyzno1
- Keep ArrowLeft/ArrowRight on the input caret in grid mode (#4948) by @spokodev
- Avoid re-rendering every item on each keystroke (#4964) by @flaviendelangle
- Fix autofill and selected state edge cases (#4972) by @atomiks
- Document
openrequirement for theinlineprop (#5069) by @atomiks
- Fix confirmation return focus (#5024) by @atomiks
- Fix programmatic focus return (#4849) by @atomiks
- Fix positioning and viewport edge cases (#4925) by @atomiks
- Fix non-modal focus-out close and tabindex management (#5030) by @atomiks
- Fix confirmation return focus (#5024) by @atomiks
- Improve swipe dismiss drag performance (#4867) by @atomiks
- Drive swipe gestures natively to stop per-frame re-rasterization (#4980) by @atomiks
- Add virtual keyboard provider (#4353) by @atomiks
- Commit swipe on primary-button release (#5057) by @atomiks
- Fix form validation bugs (#4873) by @atomiks
- Reflect disabled
Field.Itemstate inField.Label(#4916) by @chuganzy - Reflect disabled
Field.Itemstate inField.Description(#4960) by @chuganzy - Fix valueMissing revalidation (#4995) by @atomiks
- Fix validation bugs (#4894) by @atomiks
- Fix disabled fieldset form bugs (#4890) by @atomiks
- Fix form validation bugs (#4873) by @atomiks
- Fix submenu trigger interactions (#4892) by @atomiks
- Open submenus on hover after a plain delay (#4990) by @atomiks
- Fix controlled hover leave close (#4893) by @atomiks
- Fix positioning and viewport edge cases (#4925) by @atomiks
- Fix vertical menu focus behavior (#4922) by @atomiks
- Sync value text with indicator (#4904) by @atomiks
- Preserve exit transition when controlled (#4855) by @mattrothenberg
- Fix interaction, value, and styling-hook bugs (#4942) by @atomiks
- Handle unreadable clipboard paste (#4876) by @lyzno1
- Fix committed values and keyboard stepping (#4905) by @atomiks
- Respect Intl rounding options on blur (#4804) by @atomiks
- Fix formatter locale cache (#4999) by @atomiks
- Preserve numeric precision while keeping default display formatting (#5040) by @atomiks
- Fix input and scrub edge cases (#5046) by @atomiks
- 🚨 Breaking change: Unmark preview the namespace export is renamed
OTPFieldPreview→OTPFieldand should be imported as:{ OTPField } from '@base-ui/react/otp-field'(#5029) by @atomiks - Avoid password manager bubbles after first input (#4868) by @atomiks
- Fix controlled hover leave close (#4893) by @atomiks
- Fix programmatic focus return (#4849) by @atomiks
- Fix positioning and viewport edge cases (#4925) by @atomiks
- Fix non-modal focus-out close and tabindex management (#5030) by @atomiks
- Fix controlled hover leave close (#4893) by @atomiks
- Fix positioning and viewport edge cases (#4925) by @atomiks
- Keep inline preview anchored while open (#4836) by @atomiks
- Close when active trigger unmounts (#4886) by @michaldudak
- Forward group ids (#4997) by @atomiks
- Fix selection on space key press (#4930) by @chuganzy
- Fix disabled selected form submission (#4926) by @atomiks
- Honor canceled value changes (#4996) by @atomiks
- Fix overflow and scrolling state (#4936) by @atomiks
- Add scrolling state to Thumb (#4982) by @aarongarciah
- Fix autofill and selected state edge cases (#4934) by @atomiks
- Fix dirty state not clearing in multiple mode (#4971) by @atomiks
- Skip disabled items in typeahead and fix multiple-mode serialization (#5025) by @atomiks
- Fix extra
validatefn calls (#4911) by @mj12albert - Fix interaction edge cases (#4937) by @atomiks
- Fix touchend listener accumulation leak (#5070) by @atomiks
- Fix extra
validatefn calls (#4911) by @mj12albert
- Fix state edge cases (#4935) by @atomiks
- Fix suspended panel activation (#4903) by @atomiks
- Fix timer and limit edge cases (#4933) by @atomiks
- Fix grouped cancelation and JSDoc (#4940) by @atomiks
- Fix grouped cancelation and JSDoc (#4940) by @atomiks
- Remove invalid
aria-orientationfromrole="group"element (#4628) by @sernstberger - Fix disabled state and roving focus bugs (#4968) by @atomiks
- Do not forward
disabledto default toolbar button (#4967) by @mj12albert - Fix disabled state and roving focus bugs (#4968) by @atomiks
- Fix positioning and viewport edge cases (#4925) by @atomiks
- Fix provider delay group lifecycle (#4887) by @michaldudak
- Reset preventUnmountOnClose on reopen (#4885) by @michaldudak
- Close when active trigger unmounts (#4886) by @michaldudak
All contributors of this release in alphabetical order: @aarongarciah, @atomiks, @chuganzy, @flaviendelangle, @lyzno1, @mattrothenberg, @michaldudak, @mj12albert, @sernstberger, @spokodev
v1.5.0
- Improve mount performance with interaction splitting, including closed popup mount performance by up to 50% and unmounting performance by up to 85% (#4661) by @atomiks
- Use local document for virtual arrow (#4662) by @lyzno1
- Fix macOS Safari and Firefox minimizing fullscreen when closing popups with Esc (#4695) by @arturbien
- Drop unnecessary memoization (#4693) by @flaviendelangle
- Do not use
Math.random()inuseStableCallback()(#4732) by @michaldudak - Fix return focus when reference disconnects (#4655) by @atomiks
- Don't steal initial focus if focus already moved inside a popup (#4775) by @stefee
- Fix handle defaults (#4834) by @atomiks
- Fix native
FormDatafor popup inputs (#4725) by @lunaxislu
- Submit the associated form when pressing Enter (#4713) by @michaldudak
- Expose clear visibility state (#4664) by @atomiks
- Fix popup input form submit (#4687) by @atomiks
- Preserve
closeQuerywhen closing multiple input-inside-popup combobox (#4715) by @mj12albert - Fix RTL component behavior (#4840) by @atomiks
- Ignore hidden-input changes while readonly or disabled (#4810) by @lunaxislu
- Consider the controlled
openprop for open state detection (#4712) by @michaldudak
- Forward
styleprop in<Drawer.Viewport>(#4841) by @atomiks
- Avoid
flushSyncduring validation (#4685) by @atomiks
- Avoid
flushSyncduring validation (#4685) by @atomiks
- Fix submenu pointer-events scope for
keepMountedportals (#4723) by @twillhorn - Support
<Menu.GroupLabel>in<Menu.RadioGroup>(#4826) by @nami8824 - Consider the controlled
openprop for open state detection (#4712) by @michaldudak
- Fix RTL component behavior (#4840) by @atomiks
- Fix
keepMountedcontent sizing (#4817) by @atomiks
- Allow Persian digits in keyboard input (#4719) by @lunaxislu
- Sync pasted input during step interactions (#4824) by @lunaxislu
- Breaking change: Rename
sanitizeValue()tonormalizeValue()and allow composing with validation (#4717) by @atomiks - Avoid
flushSyncduring validation (#4685) by @atomiks - Support Ctrl and Cmd shortcuts (#4606) by @atomiks
- Fire
onValueComplete()for full paste (#4690) by @atomiks - Fix vertical arrow slot navigation (#4844) by @atomiks
- Ignore hidden input changes while readonly or disabled (#4806) by @lunaxislu
- Prevent locked hidden autofill validation (#4827) by @lunaxislu
- Fix RTL arrow navigation (#4847) by @atomiks
- Fix RTL component behavior (#4840) by @atomiks
- Preserve active trigger on close press (#4741) by @mj12albert
- Consider the controlled
openprop for open state detection (#4712) by @michaldudak
- Consider the controlled
openprop for open state detection (#4712) by @michaldudak - Integrate inline positioning (#2074) by @atomiks
- Fix RTL component behavior (#4840) by @atomiks
- Clear stale item text ref (#4683) by @atomiks
- Add
data-popup-sideto trigger (#4671) by @mj12albert - Allow mouse selection without highlight (#4699) by @atomiks
- Ignore hidden-input changes while readonly or disabled (#4810) by @lunaxislu
- Fix nested Select requiring extra outside clicks to dismiss parent (#4820) by @mattrothenberg
- Fire
onValueChange()for automatic tab selection (#4704) by @michaldudak
- Re-use
getElementTransform()and remove local implementation (#4749) by @sai6855 - Fix stuck drag state on release (#4742) by @aeterno-caspian
- Remove memoized selector (#4751) by @atomiks
- Consider the controlled
openprop for open state detection (#4712) by @michaldudak - Fix flickering when nesting tooltip inside another tooltip's trigger (#4501) by @michaldudak
All contributors of this release in alphabetical order: @aeterno-caspian, @arturbien, @atomiks, @flaviendelangle, @Janpot, @lunaxislu, @lyzno1, @mattrothenberg, @michaldudak, @mj12albert, @nami8824, @sai6855, @stefee, @twillhorn
v1.4.1
- Clear highlight on pointer leave when item is clipped by scroll container (#4604) by @atomiks
- Fix
display: contentstabbability (#4642) by @atomiks - Fix multi-argument event handler forwarding in
mergeProps(#4598) by @atomiks - Mark
date-fnspeer dependencies as optional (#4639) by @LukasTy
- Fix stale popup size on rapid trigger hover (#4646) by @atomiks
All contributors of this release in alphabetical order: @atomiks, @LukasTy
v1.4.0
- Improve
renderprop warning accuracy (#4324, #4363) by @atomiks - Fix
preventBaseUIHandlerruntime wrapping (#4330) by @atomiks - Fix Uncaught TypeError: Converting circular structure to JSON (#4452) by @Profesor08
- Expose
formprop on hidden inputs (#4352) by @atomiks - Add
suppressHydrationWarningto hidden inputs (#4482) by @devxoul - Fix outside-press dismissal in a shared shadow root (#4333) by @atomiks
- Fix
Positionernot repositioning to a different trigger when reopened withkeepMounted(#4407) by @mdm317 - Lock scroll of full-width anchored
modalpopups with touch input (#3100) by @atomiks
- Fix detached trigger HMR with recreated handles (#4472) by @atomiks
- Fix initial live region announcements (#4286) by @atomiks
- Fix flash when image is cached (#4469) by @mj12albert
- Fix uncontrolled default initialization (#4535) by @atomiks
- Prevent input state changes in
readOnlymode (#4551) by @tsbehlman
- Fix open state when
keepMountedhas no transitions (#4555) by @mj12albert
- Fix clicks in
Chips/InputGroupareas not focusing the input or opening the popup (#4296) by @CiscoFran10 - Fix iOS viewport settling (#4351) by @atomiks
- Fix initial live region announcements (#4286) by @atomiks
- Prevent scroll lock when a controlled value triggers a re-render (#4507) by @ryanrhee
- Fix browser autofill with object values when autofill uses the label (#4560) by @mattrothenberg
- Prevent item taps from blurring the input (#4578) by @atomiks
- Respect rendered chips for keyboard navigation (#4572) by @atomiks
- Fix detached trigger HMR with recreated handles (#4472) by @atomiks
- Fix touch scroll in portaled popups (#4382) by @atomiks
- Fix nested swipe cancel state (#4410) by @atomiks
- Fix interrupted swipe dismiss cleanup (#4467) by @lunaxislu
- Warn when a popup is missing
Viewport(#4495) by @atomiks - Prevent dialogs from affecting nested drawer stack (#4493) by @atomiks
- Fix form error matching in
<Field.Error>(#4494) by @atomiks
- Fix
SubmenuTriggernot respecting disabled state fromrender(#3858) by @CiscoFran10 - Preserve dialog focus on pointer leave (#4581) by @atomiks
- Remove invalid
aria-orientationattribute (#4355) by @atomiks - Add generic
Valuetyping (#4328) by @atomiks - Fix initial trigger switch size snap (#4327) by @atomiks
- Fix top-level trigger pointer events blocking (#4362) by @atomiks
- Fix reverse Shift+Tab submenu re-entry (#4464) by @atomiks
- Fix nested inline submenu hover handoff (#4413) by @atomiks
- Fix transition width when reopening (#4587) by @mdm317
- Fix format rounding error on blur (#4557) by @atomiks
- Add preview
OTPFieldcomponent for one-time password and verification code entry (#4365) by @atomiks
- Remove stray focus guards around trigger when
modal(#4350) by @atomiks - Sync hover open event state (#4526) by @atomiks
- Fix hover reopen race conditions across close transitions (#4446) by @arturbien
- Fix browser autofill with object values when autofill uses the label (#4560) by @mattrothenberg
- Preserve touch exit animations (#4325) by @atomiks
- Fix touch reopen highlight (#4356) by @atomiks
- Fix scroll arrows stopping short of the edges (#4447) by @atomiks
- Fix RTL-aligned popup positioning with
alignItemWithTrigger(#4531) by @atomiks
- Fix edge thumb alignment after reveal (#4354) by @atomiks
- Remove extra TalkBack focus targets (#4242) by @atomiks
- Fix keyboard floating-point rounding (#4548) by @atomiks
- Skip client-only prehydration scripts (#4530) by @atomiks
- Prevent input state changes in
readOnlymode (#4551) by @tsbehlman
- Fix
activationDirectionnot updating on programmatic value changes (#4347) by @LukasTy - Fix activation direction on first render (#4532) by @atomiks
- Skip client-only prehydration scripts (#4530) by @atomiks
- Keep viewport expanded while touch swiping (#4411) by @atomiks
- Add upsert support to
addmethod (#4440) by @atomiks - Fix timers not resuming after window regains focus (#4438) by @kyrregjerstad
- Fix incorrect keyboard nav on cross axis (#4488) by @mj12albert
All contributors of this release in alphabetical order: @arturbien, @atomiks, @CiscoFran10, @devxoul, @flaviendelangle, @kyrregjerstad, @LukasTy, @lunaxislu, @mattrothenberg, @mdm317, @michaldudak, @mj12albert, @Profesor08, @ryanrhee, @sai6855, @tsbehlman
v1.3.0
- Warn when a component function is rendered directly (#4077) by @atomiks
- Reset
openMethodafter close transition (#4128) by @atomiks - Fire Space activation on
keydownin composite widgets (#4053) by @atomiks - Skip CSS-hidden items during keyboard navigation in composite widgets (#4195) by @atomiks
- Optimize hot paths in
useHoverhooks andsafePolygon(#4199) by @atomiks - Snap
--anchor-widthand--anchor-heightto device pixel grid (#4082) by @flaviendelangle - Fix outside press dismissal when a component is portaled into a shadow DOM (#4230) by @dmitri-gb
- Fix nested hoverable popups (#4206) by @dmitri-gb
- Apply
data-base-ui-inertto highest-level node (#3955) by @atomiks - Fix portable types (#4058) by @cgatian
- Add generic
Valuetyping (#4138) by @atomiks
- Respect a
nullfilterprop (#4117) by @atomiks - Add
InputGrouppart (#3745) by @atomiks
- Remove fallback transition logic and prevent premature image display (#4110) by @atomiks
- Avoid checking
disabledtwice inonKeyDownandonKeyUp(#4132) by @flaviendelangle
- Add automatic
aria-labelledbysupport (#4142) by @atomiks
- Avoid applying field attributes to input when it is inside popup (#4154) by @atomiks
- Preserve inline input on
Enterwhen nothing is highlighted (#4235) by @atomiks - Fix ARIA attributes during SSR (#4179) by @atomiks
- Fix wrapping in virtualized grid arrow-key navigation (#4164) by @atomiks
- Add
InputGrouppart (#3745) by @atomiks - Add support for a visually hidden close button and improve modal focus trapping (#4084) by @atomiks
- Add
Labelpart (#4167) by @atomiks
- Ignore
mouseupon non-Mac platforms (#3944) by @atomiks
- Breaking change:
Draweris no longer marked as preview
Draweris now stable and should be imported as{ Drawer } from '@base-ui/react/drawer'(#4293) by @atomiks - Fix React 17 support (#4178) by @atomiks
- Include border in frontmost height variable (#4202) by @atomiks
- Improve touch selection (#4104) by @atomiks
- Preserve cross-axis scrolling during touch gestures (#4187) by @atomiks
- Prevent swipe dismissal when component is controlled (#4133) by @flaviendelangle
- Add
SwipeAreapart (#4102) by @atomiks - Make
data-base-ui-swipe-ignoreexplicit for touch interactions (#4295) by @atomiks - Disable inheritance for swipe CSS variables (#4099) by @atomiks
- Fix field validation when
Formerrors orinvalidprop are present at same time (#4112) by @mj12albert
- Prevent
pointerleavefrom stealing focus from dialogs (#4125) by @atomiks - Optimize
pointer-eventsfor submenu hover interactions (#4231) by @atomiks - Fix
closeDelaynot being applied toMenu.SubmenuTrigger(#4134) by @flaviendelangle - Implement content transitions with
Viewport(#4060) by @michaldudak
- Fix label announcements in NVDA (#4200) by @mj12albert
- Fix support for nested inline menus (#4198) by @atomiks
- Fix close propagation in nested hover menus (#4285) by @atomiks
- Close parent menus when nested link with
closeOnClickis clicked (#4276) by @CiscoFran10 - Fix duplicate
aria-orientation(#4309) by @atomiks - Fix delayed trigger switches in Safari (#4310) by @atomiks
- Fix increment/decrement press
reasonvalues inonValueCommitted(#4259) by @jijiseong
- Trap focus when
<Popover.Close>is rendered inside andmodalistrue, and add support for a visually hidden close button (#4084) by @atomiks - Fix nested hoverable popups (#3798) by @flaviendelangle
- Fix nested hoverable popups (#3798) by @flaviendelangle
- Fix label announcements in NVDA (#4200) by @mj12albert
- Add automatic
aria-labelledbysupport (#4142) by @atomiks
- Fix focus trapping with a non-scrollable viewport (#4220) by @atomiks
- Fix thumb size after remounting (#4107) by @atomiks
- Fix hidden input
idfallback (#4135) by @atomiks - Fix
Valueplaceholder not rendering withRecorditems (#4137) by @vcode-sh - Fire
onClickduring drag-to-select (#3969) by @obeattie - Fix
itemstype definition for groups (#3884) by @aarongarciah - Fix
alignItemWithTriggerfallback with browser zoom (#4292) by @atomiks - Add
Labelpart (#4167) by @atomiks
- Add
Labelpart (#4167) by @atomiks - Stop committing validation on
touchend(#4091) by @jijiseong
- Add automatic
aria-labelledbysupport (#4142) by @atomiks
- Re-render indicator position on tab resize (#4165) by @atomiks
- Enable closing all toasts (#3979) by @chuganzy
- Prevent duplicate
onClosecalls for ending toasts (#4280) by @chuganzy
- Add
closeOnClickprop (#4140) by @atomiks
All contributors of this release in alphabetical order: @aarongarciah, @atomiks, @cgatian, @chuganzy, @CiscoFran10, @dmitri-gb, @flaviendelangle, @jijiseong, @michaldudak, @mj12albert, @obeattie, @vcode-sh
v1.2.0
- Do not memoize
statewhen not needed (#3812) by @flaviendelangle - Support lazy element in
renderprop (#3856) by @oliviertassinari - Replace Firefox deprecated mozInputSource check for virtual click detection (#3942) by @CiscoFran10
- Use
WeakReffor previously focused elements (#3916) by @atomiks - Fix page scroll jump when input has focus on unmount in Safari (#3925) by @atomiks
- Fix flash at origin before positioning completes in Preact (#3975) by @OliverSpeir
- Reduce style recalculation with classic scrollbars (#3854) by @mdm317
- Fix event handling in useEnhancedClickHandler (#3981) by @sai6855
- Fix filter method's
useMemodependency (#3862) by @ZeeshanTamboli - Fix Autocomplete not using its internal filter method when
modeislist(#3936) by @ZeeshanTamboli - Remove unnecessary double stringification of item in filtering logic (#3945) by @ZeeshanTamboli
- Add
useFilteredItemshook (#3732) by @guisehn - Fix popup closing on iOS VoiceOver (#3859) by @atomiks
- Remove
aria-readonlyprop fromClearandPopupcomponents whenreadOnly(#3907) by @markocupic024
- Add transition attributes (#3939) by @atomiks
- Capture component stack for
nativeButtonerror message (#3861) by @atomiks
- Cleanup disabled state tracking (#3913) by @atomiks
- Preserve modifier key properties in the change event (#3935) by @mj12albert
- Allow exit animations on
<Checkbox.Indicator>whenkeepMounted={false}(#3939) by @atomiks
- Fix the type of the ref of the
Iconpart (#3796) by @flaviendelangle - Avoid clearing selected value if item is not present in items array (#3824) by @atomiks
- Fix highlight change reason in
ChipRemove(#3980) by @sai6855 - Keep highlight on last deselect (#3923) by @atomiks
- Fix inline filtering after selection in single mode (#3978) by @atomiks
- Clear highlight on inline blur when inline (#3973) by @atomiks
- Prevent opening popup on autofill change (#3924) by @atomiks
- Distinguish
input-pressfromtrigger-pressinonOpenChangereason (#4015) by @jijiseong - Fix async items while popup is open (#4034) by @atomiks
- Prevent
Chipfrom receiving focus whendisabled(#4044) by @jijiseong - Add
useFilteredItemshook (#3732) by @guisehn - Fix popup closing on iOS VoiceOver (#3859) by @atomiks
- Remove
aria-readonlyprop fromClearandPopupcomponents whenreadOnly(#3907) by @markocupic024 - Fix
onClickItemtype (#3964) by @atomiks - Use reactive
domReferenceElementsubscriptions (#4017) by @atomiks - Add
autoCompleteprop for explicit browser autofill support (#4005) by @mattrothenberg - Fix inconsistent isItemEqualToValue argument order (#4056) by @atomiks
- Fix
disabledprop not working (#3806) by @arturbien - Fix explicit
collisionAvoidancewithside: 'flip'not working (#3877) by @obeattie
- Create new Drawer / Sheet component (#3680) by @atomiks
- Prevent re-renders when
Field.Controlis uncontrolled (#3820) by @atomiks - Fix autofocus in SSR environments (#3871) by @mj12albert
- Fix max update depth loop when using
<React.Activity>(#3931) by @atomiks - Add transition attributes (#3939) by @atomiks
- Fix autofocus in SSR environments (#3871) by @mj12albert
- Update ref type to
HTMLElement(#3866) by @mj12albert
- Fix
onClickItemtype (#3964) by @atomiks - Fix submenu stuck glitch (#3783) by @atomiks
- Fix race conditions (#3821) by @atomiks
- Add
<Menu.LinkItem>part (#3400) by @mj12albert
- Fix forwarded ref types (#3775) by @CrawlerCode
- Add
keepMountedprop toContentpart (#3794) by @atomiks
- Fix click handlers on ScrubArea (#3827) by @mj12albert
- Remove
event.isTrusted(#3920) by @atomiks - Stop repeat change at bounds (#3915) by @atomiks
- Add
allowOutOfRangeprop (#3919) by @atomiks - Fix pen pointer handling (#3917) by @atomiks
- Fix missing field state data attributes (#3909) by @mj12albert
- Fix missing
aria-ownselement (#3959) by @atomiks - Use reactive
domReferenceElementsubscriptions (#4017) by @atomiks - Fix broken scale transition with detached triggers (#3810) by @michaldudak
- Fix broken scale transition with detached triggers (#3810) by @michaldudak
- De-duplicate
formatValuefunction (#3805) by @sai6855
- Preserve modifier key properties in the change event (#3935) by @mj12albert
- Allow exit animations on
<Radio.Indicator>whenkeepMounted={false}(#3939) by @atomiks - Rely on individual radio hidden inputs (#3826) by @atomiks
- Add generic
Valuetyping toRadio(#4033) by @atomiks
- Add
data-scrollingstate attribute toRootandViewportparts (#3823) by @arturbien - Fix overflow edge rounding (#3888) by @atomiks
- Add
finalFocusprop (#3785) by @markocupic024 - Fix
alignItemWithTriggertransform with CSS animations (#3831) by @atomiks - Fix
highlightItemOnHovernot being respected (#3868) by @sarthakmalik0810 - Reset typeahead on external blur (#2618) by @antonfrolovsky
- Fix scroll height loop (#3795) by @atomiks
- Add
autoCompleteprop for explicit browser autofill support (#4005) by @mattrothenberg - Fix inconsistent isItemEqualToValue argument order (#4056) by @atomiks
- Fix missing field state data attributes (#3909) by @mj12albert
- Fix change event cloning (#3960) by @atomiks
- Preserve modifier key properties in the change event (#3935) by @mj12albert
- Add transition attributes to
<Tabs.Panel>part (#3880) by @atomiks
- Make
useToastManagerandcreateToastManagergeneric functions (#3882) by @solastley - Prevent dismissed promise toast from reopening on updates (#4040) by @atomiks
- Introduce a store (#3464) by @flaviendelangle
- Improve type safety and inference (#3173) by @michaelhazan
- Type value as string to match Toggle (#3770) by @markocupic024
- Enable
Home/Endkey navigation (#3971) by @jijiseong - Improve type safety and inference (#3173) by @michaelhazan
- Prevent opening when focusing a disabled Trigger (#3902) by @michaldudak
- Fix broken scale transition with detached triggers (#3810) by @michaldudak
- Fix disabled prop on Triggers (#4049) by @michaldudak
All contributors of this release in alphabetical order: @antonfrolovsky, @arturbien, @atomiks, @CiscoFran10, @CrawlerCode, @flaviendelangle, @guisehn, @jijiseong, @LukasTy, @markocupic024, @mattrothenberg, @mdm317, @michaelhazan, @michaldudak, @mj12albert, @obeattie, @OliverSpeir, @oliviertassinari, @sai6855, @sarthakmalik0810, @solastley, @ZeeshanTamboli
v1.1.0
- Fix
onOpenChangeComplete(true)timing (#3558) by @atomiks - Fix touch
openMethodwhen tapping outside element bounds on Safari (#3541) by @atomiks - Fix visually hidden input styles across form components (#3606) by @atomiks
- Fix click and drags outside a nested popup component from closing its parents (#3571) by @atomiks
- Fix forwarded ref types (#3638) by @atomiks
- Fix detached trigger remounting (#3724) by @atomiks
- Include
refinBaseUIComponentProps(#2813) by @atomiks - Remove duplicated
disabledprop (#3650) by @seongminn - Allow
actionsRefto benull(#3682) by @mj12albert
- Fix keyboard navigation with non-interactive trigger elements (#3684) by @ZeeshanTamboli
- Add
data-popup-sideanddata-list-emptystate attributes to<Autocomplete.Trigger>(#3491) by @atomiks - Add
loopFocusprop (#3592) by @atomiks - Fix hidden input
idandrequiredprops (#3640) by @atomiks
- Remove discriminated props union (#3643) by @atomiks
- Fix hidden input
idandrequiredprops (#3640) by @atomiks
- Add
data-popup-sideanddata-list-emptystate attributes to<Combobox.Trigger>(#3491) by @atomiks - Add
loopFocusprop (#3592) by @atomiks - Add
toolbarrole to<Combobox.Chips>to prevent NVDA from entering browse mode (#3647) by @atomiks - Add
placeholderprop to<Combobox.Value>(#3604) by @atomiks - Fix controlled
valueprop whenitemschange (#3607) by @atomiks - Fix
multiplevalues label resolution in<Combobox.Value>(#3314) by @atomiks - Forward root
idto visible form element (#3722) by @atomiks - Do not trigger Field
onBlurhandlers when opening popup (#3609) by @atomiks
- Avoid creating sibling elements next to trigger (#3645) by @atomiks
- Add
CSPProvider(#3553) by @atomiks
- Fix
Maximum update depth exceedederror with Suspense (#3700) by @michaldudak - Fix
<Dialog.Title>forwardedRef type (#3736) by @ZeeshanTamboli
- Add
actionsRefprop (#3395) by @mj12albert - Add
nativeLabelprop to<Field.Label>(#3723) by @atomiks - Add missing type export (#3702) by @DiegoAndai
- Add
actionsRefprop (#3395) by @mj12albert
- Fix focus guard handling (#3654) by @atomiks
- Avoid disabling modality on click after hover-open (#3455) by @atomiks
- Fix submenu outside-press dismiss on touch (#3556) by @atomiks
- Fix Field
data-focusedstate (#3563) by @atomiks - Fix hidden input focus on submit (#3581) by @atomiks
- Fix popup auto resize glitches (#3591) by @atomiks
- Fix focus guard handling (#3654) by @atomiks
- Prevent disabling focus management when clicking trigger before hover delay completes (#3572) by @atomiks
- Refactor popup auto resize logic. It is no longer necessary to specify
--positioner-width/--positioner-heightCSS variables on<Popover.Positioner>when using detached triggers unless theViewportpart has been added to the JSX. (#3652) by @atomiks
- Support detached triggers (#3566) by @michaldudak and @atomiks
- Fix
valuetype (#3582) by @atomiks - Fix hidden input
idandrequiredprops (#3640) by @atomiks
- Perf improvements (#3536) by @atomiks
- Add
placeholderprop to<Select.Value>(#3604) by @atomiks - Fix support for transform animations when
alignItemWithTriggeris active (#3532) by @atomiks - Fix support for
max-heightpopup style whenalignItemWithTriggeris active (#3573) by @atomiks - Fix
data-filledstate inmultiplemode (#3608) by @atomiks - Fix highlight being removed on popup mouseout when
highlightItemOnHoveris disabled (#3492) by @atomiks - Fix support for individual transform animations when
alignItemWithTriggeris active (#3637) by @atomiks - Fix
multiplevalues label resolution in<Select.Value>(#3314) by @atomiks - Forward root
idto visible form element (#3722) by @atomiks - Do not trigger Field
onBlurhandlers when opening popup (#3609) by @atomiks
- Fix
onValueCommittednot called for range sliders (#3600) by @mj12albert
- Add
valueprop (#3676) by @Grafikart - Fix hidden input
idandrequiredprops (#3640) by @atomiks
- Fix timers not being rescheduled when updated (#3564) by @atomiks
- Fix popup auto resize glitches (#3591) by @atomiks
- Fix
trackCursorAxishandling (#3679) by @atomiks - Refactor popup auto resize logic. It is no longer necessary to specify
--positioner-width/--positioner-heightCSS variables on<Tooltip.Positioner>when using detached triggers unless theViewportpart has been added to the JSX. (#3652) by @atomiks
- Make
mergePropspublic (#3642) by @michaldudak and @LukasTy
- Export missing types (#3565) by @michaldudak
All contributors of this release in alphabetical order: @albertdugba, @atomiks, @brijeshb42, @chuganzy, @colmtuite, @dav-is, @DiegoAndai, @Grafikart, @Janpot, @LukasTy, @michaldudak, @mj12albert, @oliviertassinari, @seongminn, @updbqn, @ZeeshanTamboli
v1.0.0
- Breaking change: Rename packages to use the
@base-uiorg. The package name has changed from@base-ui-components/reactto@base-ui/react. (#3462) by @mnajdova
- Respect
itemToStringValueforonFormSubmit(#3441) by @atomiks - Add
nullas an option for the value prop (#3488) by @mnajdova
- Fix submenu opens with 0 delay (#3459) by @atomiks
- Fix focus not returning to trigger on Esc while pointer rests on popup (#3482) by @atomiks
- Fix always
nullopen method (#3486) by @atomiks - Allow side axis fallback for submenus by default (#3470) by @atomiks
- Fix mount transitions on
Positionerin Firefox (#3424) by @atomiks
- Fix multiple scrub area support (#3471) by @atomiks
- Fix mount transitions on
Positionerin Firefox (#3424) by @atomiks - Fix skipped viewport transitions (#3453) by @atomiks
- Respect
itemToStringValueforonFormSubmit(#3441) by @atomiks - Add
nullas an option for the value prop (#3488) by @mnajdova
- Fix indicator positioning in transformed containers (#3439) by @atomiks
- Do not initially select a disabled tab (#3475) by @michaldudak
- Fix
flushSyncdev error when toast is added (#3443) by @atomiks - Fix
<Toast.Close>emittingaria-hiddenwarning on click (#3469) by @atomiks
- More permissive towards falsy toggle values (#3477) by @mj12albert
- Fix mount transitions on
Positionerin Firefox (#3424) by @atomiks - Fix ignored "modal" setting in Popovers experiment (#3474) by @michaldudak
- Fix shared tooltip closing with trigger gaps (#3452) by @atomiks
- Fix skipped viewport transitions (#3453) by @atomiks
All contributors of this release in alphabetical order: @atomiks, @LukasTy, @michaldudak, @mj12albert, @mnajdova, @oliviertassinari, @pondorasti, @romgrk, @ZeeshanTamboli
v1.0.0-rc.0
- Fix missing
'use client'directives (#3408) by @atomiks
- Fix
keepHighlightfocus sync (#3399) by @atomiks
- Breaking change: Match native unchecked state in form submission. The Checkbox will not submit the
"off"value with a form when unchecked anymore, unless the newuncheckedValueprop is set. (#3406) by @atomiks
- Remove
render={null}(#3407) by @mj12albert
- Breaking change: Removed the
keepHighlightprop (#3377) by @atomiks
- Close when pressing focusable element outside (#3380) by @atomiks
- Fix closing after pointer lock exit in Firefox (#3379) by @atomiks
- Add
highlightItemOnHoverprop (#3377) by @atomiks - Do not import client components from MenuStore (#3409) by @michaldudak
- Ensure hidden input participates in form validation (#3374) by @atomiks
- Improve symbol replacement logic (#3376) by @atomiks
- Fix fractional step snapping (#3375) by @atomiks
- Fix parsing numbers with Swiss locale (#3361) by @michaldudak
- Fix pointer lock release when soft clicking in Firefox (#3378) by @atomiks
- Close when pressing focusable element outside (#3380) by @atomiks
- Fix modal backdrop on touch (#3383) by @atomiks
- Fix popover glitching when flipped (#3364) by @michaldudak
- Add
highlightItemOnHoverprop (#3377) by @atomiks
- Breaking change: Match native off state in form submission. The Switch will not submit the
"off"value with a form when unchecked anymore, unless the newuncheckedValueprop is set. (#3406) by @atomiks
- Breaking change: Fix Panel
keepMountedbehavior. Thevalueprop is now required on<Tabs.Tab>and<Tabs.Panel>parts. (#3372) by @atomiks
- Recalculate content height when layout size is fixed (#3359) by @atomiks
- Fix multiple swipe directions on same axis (#3392) by @mj12albert
- Improve contained triggers performance (#3385) by @michaldudak
All contributors of this release in alphabetical order: @atomiks, @michaldudak, @mj12albert, @oliviertassinari, @pondorasti, @romgrk