chore(deps): update dependency @ariakit/react to v0.4.36 - #296
Open
renovate[bot] wants to merge 1 commit into
Open
chore(deps): update dependency @ariakit/react to v0.4.36#296renovate[bot] wants to merge 1 commit into
renovate[bot] wants to merge 1 commit into
Conversation
doistbot
reviewed
Jun 10, 2026
doistbot
left a comment
Member
There was a problem hiding this comment.
This PR updates the @ariakit/react dependency to version 0.4.29.
Few things worth tightening:
- Bump the
@ariakit/react-coreoverride to0.4.29as well to prevent a version mismatch that could cause unexpected component behavior.
| ], | ||
| "overrides": { | ||
| "@ariakit/react": "0.4.26", | ||
| "@ariakit/react": "0.4.29", |
Member
There was a problem hiding this comment.
🟠 P1 This update raises @ariakit/react to 0.4.29 but leaves the @ariakit/react-core override pinned to 0.4.26. The @ariakit/react package requires an exact version match for its core package, and forcing an older core version via overrides can cause unexpected component behavior or crashes. Prevent mismatches by bumping the @ariakit/react-core override to 0.4.29 as well.
renovate
Bot
force-pushed
the
renovate/ariakit-react-0.x
branch
2 times, most recently
from
June 16, 2026 06:41
8c87586 to
6201b71
Compare
renovate
Bot
force-pushed
the
renovate/ariakit-react-0.x
branch
from
June 28, 2026 06:56
6201b71 to
2392b04
Compare
renovate
Bot
force-pushed
the
renovate/ariakit-react-0.x
branch
from
July 4, 2026 23:10
2392b04 to
cc5c159
Compare
renovate
Bot
force-pushed
the
renovate/ariakit-react-0.x
branch
from
July 9, 2026 00:15
cc5c159 to
6c7bb00
Compare
renovate
Bot
force-pushed
the
renovate/ariakit-react-0.x
branch
15 times, most recently
from
July 20, 2026 06:43
d4393d7 to
ba4d4f8
Compare
renovate
Bot
force-pushed
the
renovate/ariakit-react-0.x
branch
from
July 20, 2026 23:59
ba4d4f8 to
ec6a793
Compare
renovate
Bot
force-pushed
the
renovate/ariakit-react-0.x
branch
2 times, most recently
from
July 28, 2026 18:16
393cd77 to
1f5248e
Compare
renovate
Bot
force-pushed
the
renovate/ariakit-react-0.x
branch
2 times, most recently
from
August 1, 2026 08:32
d2de428 to
9ee0ed7
Compare
renovate
Bot
force-pushed
the
renovate/ariakit-react-0.x
branch
from
August 7, 2026 15:52
9ee0ed7 to
1242e01
Compare
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
This PR contains the following updates:
0.4.26→0.4.36Release Notes
ariakit/ariakit (@ariakit/react)
v0.4.36Compare Source
New Combobox Select components
Added
ComboboxSelect,ComboboxSelectLabel,ComboboxSelectArrow,ComboboxInput,ComboboxSelectedValue,ComboboxItemSelected,ComboboxDismiss, andComboboxHeading. Together, these APIs let standard and filterable selects use one Combobox store:For filterable selects, the Combobox store now distinguishes the text in the input from its
selectedValuestate. UseinputValue,defaultInputValue, andsetInputValueto control this text,resetInputValueto restore its initial value, andComboboxInputValueto read it from the component tree.The Combobox store also gained the
selectOnMoveoption, which selects the active item while moving through the list with the popover open. It now exposes theinputElement,labelElement,selectElement, andselectLabelElementstate, along with their respective setters.To make keyboard selection previews easy to cancel,
ComboboxPopovernow supports aresetOnEscapeprop. It defaults toselectOnMoveand restores the selected value captured before the first item movement when the popover accepts Escape and its cancelable close event isn't prevented. Selection changes made before any item movement become part of the value Escape restores.Filterable selects built with these APIs are also more efficient. In a 243-option benchmark, restoring the full list after clearing the filter with one Combobox store reduced scripting time by 50% and total time by 43% compared with separate Select and Combobox stores.
Thanks to @lessp for reporting the performance issue, @patrikholcak for investigating it, and @georgekaran for providing the workaround and investigating the shared Combobox and Select behavior.
Added
MenuAnchor,SelectAnchor, andComboboxAnchorAdded
MenuAnchor,SelectAnchor, andComboboxAnchorcomponents. These components take precedence over their respective disclosure or combobox elements:Close popups across existing same-origin iframe boundaries
The
Dialog,Popover,ComboboxPopover,Hovercard,Menu,SelectPopover, andTooltipcomponents now close when focus moves from an embedded same-origin popup to an ancestor document or a pointer interaction occurs in an existing sibling frame. Focus stays on the outside target, interactions in contained frames stay inside, and true browser or application window blur remains ignored.Thanks to @emillaine for reporting the issue, @ciampo for proposing the pointer behavior, and @donaldpipowitch for providing the iframe click reproduction.
Other updates
Comboboxinline autocomplete to preserve a user-adjusted caret when asynchronously rendered results update.ComboboxListandComboboxPopoverso they use the closestComboboxHeading,ComboboxSelectLabel, orComboboxLabelas their accessible name unless they are explicitly named. Thanks to @georgekaran.ComboboxListto render withtabIndex={-1}and move focus back to the combobox control when the list receives focus, preventing unintended Tab stops and focus loops.ComboboxPopovermoving focus into the popover and leaving arrow keys unable to move through the items.ComboboxPopoverwithmodalenabled not closing when pressing Escape while it renders aComboboxInputorComboboxelement inside it.ComboboxPopoverto honor consumer-providedgetPersistentElementscallbacks, so interacting with the returned elements no longer dismisses a non-modal popover. Thanks to @georgekaran.CompositeItem, and components based on it such asComboboxItemandSelectItem, briefly rendering as tabbable while a composite widget withvirtualFocusenabled mounts.SelectandComboboxSelectcontrols so their values are omitted from form submission whenaccessibleWhenDisabledis used or the visible control is rendered with an element that doesn't support the nativedisabledattribute. Thanks to @georgekaran.PopoverDisclosureso it no longer overrides a separatePopoverAnchoras the popover positioning anchor. Thanks to @bengry.@ariakit/react-components@0.4.0v0.4.35Compare Source
This version adds custom typeahead labels for composite items and selected-state rendering for select items. It also improves disabled radio groups, hidden popover performance, nested Esc handling, dialogs across portals and shadow roots, multi-select combobox form values, typeahead with unmounted options, and composite virtual focus.
Custom typeahead text for composite items
The new
typeaheadTextprop letsCompositeItemuse an explicit label for typeahead matching when its rendered content starts with an emoji or other decoration.Set
typeaheadTextto an empty string to exclude an item from typeahead matching. The prop is also available on these components exported by@ariakit/reactand built onCompositeItem:ComboboxItem,FormRadio,MenuItem,MenuItemCheckbox,MenuItemRadio,Radio,SelectItem,Tab,ToolbarContainer,ToolbarInput, andToolbarItem.Thanks to @Dremora for reporting the issue and providing the reproduction, and @georgekaran for the investigation and implementation work that informed this solution.
Skip position updates on hidden popovers
Popovers that stay mounted while closed, such as
Popover,Tooltip,Hovercard,Menu,SelectPopover, andComboboxPopover, no longer set up position auto-updates while hidden, unless a customupdatePositioncallback is provided. Closed popovers no longer keep standing scroll and resize listeners and observers around, and hiding a popover skips a full positioning setup and teardown cycle. This reduces aggregate CPU and rendering work when rapidly showing and hiding popovers, such as when quickly moving across toolbar items with tooltips.Thanks to @aledecicco for reporting the issue.
RadioGroupdisables descendant radiosThe
RadioGroupdisabledprop now marks the group as disabled and disables descendantRadiocomponents, including radios rendered as custom elements.Thanks to @kripod for reporting the issue.
New
SelectItemSelectedcomponentThe new
SelectItemSelectedvalue component exposes whether the closestSelectItemis selected through a required function child.Thanks to @jonrimmer for proposing the feature, and @georgekaran for the investigation and implementation work that informed this solution.
Handling Esc in nested widgets
The
Dialogcomponent and components that inherit its default Esc handling, includingPopover,ComboboxPopover, andSelectPopover, now let descendants callevent.stopPropagation()on Esc without hiding the enclosing component. This allows a nested widget to dismiss itself first.When the component handles an Esc event from its React subtree, it also stops the event at its boundary. This keeps an enclosing third-party React dialog with a bubble handler open while the Ariakit component closes.
When it handles Esc through the document fallback, such as when focus is on its disclosure, it stops the event at
documentbefore it reacheswindowbubble listeners.An ancestor capture handler that stops Esc before it reaches the component owns the event. If
hideOnEscaperuns before such a handler, it can callevent.stopPropagation()to keep the event from reaching it.Thanks to @boaz-wiz for reporting the issue.
Other updates
Comboboxcomponents to submit selected values to forms when anameis provided. Thanks to @cloud-walker and @georgekaran.Compositeand derived widgets such asSelectListto clear stale focus-visible state and warn in development when virtual focus is used with a non-focusable composite element. Thanks to @ItaiYosephi.Dialogand components built on it, such asPopoverandComboboxPopover, so interacting with elements returned bygetPersistentElementsacross open shadow roots no longer closes the component before it receives focus.Dialogcomponents and modal components built on them, such asPopoverandComboboxPopover, rendered in their default portals so opening them in the same render no longer made each other inert. Thanks to @yishayhaz and @gonzoblasco.itemlookups to resolve controlled items added after store creation when no live item is registered. This allowsSelecttypeahead to update its value while options are unmounted. Thanks to @georgekaran.@ariakit/react-components@0.3.4v0.4.34Compare Source
@ariakit/react-components@0.3.3v0.4.33Compare Source
This version adds React Compiler-compatible form hooks and side-specific popover overflow padding, improves store and component performance, and refines modal scroll locking and native button markup. It also includes fixes for Korean IME focus, controlled
NaNvalues, and focus-visible styling.Modal scroll locks use
scrollbar-gutterThe
Dialogcomponent now locks page scroll in supporting browsers by settingscrollbar-gutter: stableand hiding overflow on thehtmlelement whenpreventBodyScrollis enabled. This applies tomodaldialogs by default and to components built onDialog, includingPopover,Hovercard,Tooltip,Menu,SelectPopover, andComboboxPopover.Pages that already set
scrollbar-gutter: stableoroverflow-y: scrollonhtmlno longer shift when a modal opens, and Ariakit restores inlinehtmloverflow styles when it closes.Fixed headers no longer need
--scrollbar-widthin browsers that supportscrollbar-gutter:The
--scrollbar-widthCSS variable is now only defined in the fallback path for browsers withoutscrollbar-guttersupport. If you still target those browsers, keep a length fallback when using the variable insidecalc():Thanks to @mirka for reporting the issue, and @benrodrs for documenting a workaround that informed this solution.
Added
useFormValue,useFormValidate, anduseFormSubmitThe new
useFormValue,useFormValidate, anduseFormSubmithooks replace the matchinguseFormStoremethods with top-level hook calls that are compatible with the React Compiler:Keyed store subscriptions
The
useStoreStatehook now accepts selector dependency keys, so selectors skip unrelated store updates while receiving the complete store state at runtime. The key list must include every store key a selector reads, or its result may stay stale.React components now use keyed selector subscriptions internally.
Added support for side-specific
overflowPaddingThe
overflowPaddingprop now accepts a number or an object with independenttop,right,bottom, andleftvalues. This applies toPopoverand components built on it, includingComboboxPopover,SelectPopover,CompositeOverflow,Hovercard,Menu, andTooltip:When
overflowPaddingis an object, the--popover-overflow-paddingCSS variable uses the larger of the horizontalleftandrightvalues, treating omitted sides as0.Thanks to @mririgoyen for reporting the issue, and @georgekaran for providing the approach that informed this solution.
Native button markup includes the final type
Default native
ButtonandCommandcomponents now includetype="button"in their initial markup. Refs and server-rendered markup observe the final type without waiting for post-mount reconciliation, keeping hydration consistent.This also applies to
ComboboxCancel,ComboboxDisclosure,CompositeItem,DialogDisclosure,DialogDismiss,Disclosure,FormPush,FormRemove,HovercardDisclosure,HovercardDismiss,MenuButton,MenuDismiss,PopoverDisclosure,PopoverDismiss,Select,SelectDismiss,Tab, andToolbarItemwhen they render their default native button.Other updates
DisclosureContentstate values through one subscription, including inTabPanelandDialogcomponents.useValue,useValidate, anduseSubmitmethods ofuseFormStorein favor of the new top-level form hooks.ComboboxwithautoSelectmoving focus between Korean IME composition steps. Thanks to @flex-kwoncheol.NaNvalues from unnecessarily firing setter callbacks in React stores, includinguseCheckboxStoreanduseRadioStore.Focusableand components built on it, such asButton, to clear focus-visible styling whenfocusablebecomesfalse.NaNkeys.@ariakit/react-components@0.3.2v0.4.32Compare Source
Faster keyboard navigation on composite widgets
Moving through items with arrow keys no longer re-renders the
Compositecomponent itself when using roving tabindex.This reduces the scripting cost of each keystroke on large collections and benefits everything built on composite widgets, such as
Menu,Combobox,Toolbar, andTab.Fixed
Commandstuck pressed state when losing focus mid-pressWhen rendering a non-native element (such as
render={<div />}), theCommandcomponent — and components built on it, such asButton,Checkbox,CompositeItem, and their derivatives — now clears its pressed state (data-active) when the element loses focus while Space is held, mirroring how native buttons cancel the Space activation when they lose focus before the keyup.Additionally, a Space keyup bubbling up from a focused child no longer dispatches a synthetic click on the element, and calling
event.preventDefault()in a customonKeyUphandler no longer leaves the element stuck looking pressed.PopoverArrowbox-shadow ring detectionFixed
PopoverArrow, including components built on it such asTooltipArrow,MenuArrow, andHovercardArrow, to draw the popover's box-shadow ring for any positive ring width. Previously, widths whose text contained the digit 0, such as10pxor0.5pxfrom the Tailwindring-[10px]andring-[0.5px]utilities, were not detected, and the arrow rendered with no stroke at all.The arrow stroke now also matches the ring color instead of the popover's inherited text color, so the arrow blends into the outline. This includes
insetrings and rings without an explicit color, which default tocurrentColorfollowing CSS.Radio
onChangeevent on arrow-key selectionSelecting a native
RadioorFormRadiowith arrow keys now delivers a realchangeevent withevent.target.checkedalready set totrue, matching pointer and Space selection. Previously, the handler received the focus event whilecheckedwas stillfalse, which silently broke handlers gated onevent.target.checked.Since arrow-key selection now replays the browser's native activation,
onClickhandlers also fire when a native radio is selected with arrow keys, matching native radio group behavior.Other updates
next,previous,up, anddownfunctions, which now scan the rendered items without copying arrays in the most common cases.ComboboxItemValuehighlighting the wrong characters for item values whose Unicode normalization changes the string length, such as Hangul, kana with dakuten, and decomposed (NFD) strings. Matching remains diacritic-insensitive, and thedata-user-valuespans now cover exactly the matched characters without detaching combining marks from their base letters.CompositeItemand components built on it, such asTabandSelectItem, crashing the app with a "Maximum update depth exceeded" error when aNaNvalue was passed to thearia-posinsetoraria-setsizeprops. TheuseStoreStateObjecthook now compares snapshot values withObject.is, so the fix also covers any direct consumer of that hook.CompositeItemcrashing withCannot access 'rowId' before initializationwhen rendered inside aCompositeRow— or a derived row component such asSelectRoworComboboxRow— that receives thearia-posinsetprop.CompositeItemand components based on it, such asSelectItemandComboboxItem, leaving DOM focus stuck on the item with virtual focus enabled when the item received focus before the composite element was available, instead of redirecting focus to the composite element.Dialogand components built on it such asPopoverandMenuhiding on close before thebackdropelement's exit transition ends: the backdrop's fade-out was skipped entirely when only the backdrop was animated, and cut short when its transition was longer than the panel's.Dialog, including components built on it such asPopoverandMenu, so focusing, clicking, or right-clicking elements returned bygetPersistentElementsno longer closes the dialog before it has received focus, such as when it's rendered withautoFocusOnShowset tofalse.PopoverArrow— including arrows built on it such asMenuArrowandTooltipArrow— detaching from the anchor in RTL contexts when the popover flips or otherwise changes placement while open.Portal, including components built on it such asTooltipandPopover, to avoid leaking duplicate portal containers in React development StrictMode.Portal, including components built on it such asDialogandPopover, destroying and recreating the portal node when theportalRefprop changes identity, such as when passing an inline callback. The ref now re-fires against the same portal node, so the portal content is no longer remounted on parent re-renders.focusOnMoveprop being ignored onSelectListand components built on it such asSelectPopover.Selectfreezing the page when multipleSelectItemcomponents without avalueprop follow the active item, and moving to an item without avaluewhen exactly one follows it. Items without avalueare now skipped correctly, including whenfocusLoopwraps around the list.TabPanelnot updating its owntabindexwhen a single panel is reused with a dynamictabIdpointing to the selected tab. The tabbable-children check now re-runs when thetabIdchanges, so the panel joins the tab sequence when the newly selected tab's content has no tabbable elements and leaves it when the content has one.Tabnot becoming the active item on the firstsetSelectedIdcall after aSelectPopoverorComboboxPopovercontaining the tabs opens or toggles.ToolbarContainerso composing Enter keydowns in nested text fields don't cancel IME commits or move focus back to the container.@ariakit/react-components@0.3.1v0.4.31Compare Source
This version improves React form behavior and composite separators, including safer generated field name paths, form submission and validation that continue in background tabs, and explicit separator orientation handling.
Composite separators honor explicit orientation
Fixed
CompositeSeparatorto honor an explicitorientationprop instead of always using the composite store-derived default. This also fixes components built on it, includingToolbarSeparator,MenuSeparator,SelectSeparator, andComboboxSeparator.form.names.*paths no longer crash on symbol accessFixed
useFormStorenamesvalues throwingCannot convert a Symbol value to a stringwhen an absent symbol key was read from them. This happened whenever something probed a symbol on a raw name — most notably when React readsSymbol.iteratorto reconcile a name rendered as a React child, but alsoObject.prototype.toString.call(name)andArray.from(name).Absent symbol keys now resolve to
undefined, matching plain-object semantics, so those probes degrade gracefully. The documented string coercion keeps working, so coerce a name before rendering or inspecting it outside Ariakit props:Form submission no longer stalls while the tab is hidden
useFormStore'ssubmitandvalidateno longer stall while the document is hidden — for example, when auto-saving a draft onvisibilitychange.They previously awaited a
requestAnimationFrame, which browsers pause in background tabs, so the submission only completed once the tab was brought back to the foreground.Other updates
ComboboxDisclosureto honorevent.preventDefault()inonMouseDownbefore moving focus to theComboboxinput.ComboboxItemso non-paste Ctrl/Cmd character shortcuts preserve focus and the combobox value when virtual focus is disabled, while paste shortcuts still route to the input.ComboboxItemValueso overlapping user input matches are rendered without duplicated text.Comboboxinline autocomplete so decomposed Unicode input no longer produces misspelled completion values.Compositekeyboard paging andComboboxscroll behavior for elements rendered inside a same-origin iframe.Compositebase-element arrow key navigation in RTL composites, including components built on it such asToolbarandTabList.FormControland components built on it, such asFormInput,FormCheckbox, andFormRadio, to avoid redundant form store subscriptions and item lookups while fields update.Formstealing focus into an invalid field when its items changed after a successful submission withresetOnSubmitset tofalse, soautoFocusOnSubmitagain focuses the first invalid field only as a result of a failed submission.FormPushto focus the newly added field when pushing into arrays with existing values or arrays that start empty.useFormStoreto ignore__proto__andconstructorpath segments in field names, preventing form state objects from being corrupted through prototype replacement.Formto focus the first invalid field in document order when invalid fields mount out of registration order.Hovercardcomponents so pressing Escape closes the topmost card even when focus is on another element. This also applies to components built onDialog.Hovercardso it stays open when hovering content rendered inside an open shadow root. This also applies to components built on it, such asTooltipandMenu.Compositekeyboard navigation for iframe text fields, including components built on it such asToolbar, and preventsCommandandComboboxfrom treating iframe text fields as non-text fields.Menurenders when menu items re-register without changing the initial focus target.MenuItemCheckboxto initialize boolean fields fromdefaultCheckedand controlledcheckedprops when the menu store has no default value.PopoverorDialognot receiving focus when reopened while a non-focusable element (such as adisplay: nonefile input) comes before the first focusable element in its content. This also fixesFormLabelfocusing such a hidden element instead of the visible control.RadioGroupso tabbing back into a group focuses the checkedRadioafter another uncheckedRadiohas received focus.SelectPopovertypeahead to skip disabled offscreenSelectItemplaceholders.ToolbarContainerso pressing Backspace or Delete on a focused container with an empty text field no longer steals focus from the field on the next typed character.@ariakit/react-components@0.3.0v0.4.30Compare Source
Improved
DialogperformanceOpening a modal
Dialognow marks and disables the elements outside the dialog in a single tree walk instead of two, tracks the dialog state with fewer store subscriptions, and finds the initial focus target without checking every tabbable element inside the dialog.The scroll lock, the backdrop z-index synchronization, and the root-dialog bookkeeping also moved from passive effects to the layout phase, removing several forced style recalculations and layouts from the open path and applying the scroll lock before the dialog is first painted.
This also benefits components built on top of
Dialog, such asPopover,Menu, andSelectPopover.Fixed
DisclosureContentover-waiting to unmount with mixed transitions and animationsDisclosureContent(and components built on top of it, such asDialogandPopover) could keepunmountOnHidecontent mounted longer than necessary when a transition and an animation were both applied and the longest delay and longest duration belonged to different properties.The unmount timeout is now the longest per-property end time (
delay + duration) across the transitions and animations, instead of the longest delay added to the longest duration, which could overestimate the real end time and keepunmountOnHidecontent mounted longer than necessary. A leftoverdurationordelaywith no matching transition or animation (such as ananimation-durationwhileanimation-nameisnone) is also ignored now.Other updates
useTabStore, improvingTabperformance when resolving controlled panels.TooltipAnchorto avoid re-rendering default description tooltip anchors when the tooltip content id changes.VisuallyHiddento hide content with the modernclip-path: inset(50%)technique instead of the deprecatedclipproperty. The same technique now applies to the other elements Ariakit hides visually, such as theSelectvalue mirror and theDialogdismiss button.CheckboxCheckto avoid passing invalid function children to React while unchecked.ComboboxGroupdevelopment error message to name the correct component.ComboboxItemValuerendering performance.Commandand the components that build on it, such asButton, staying stuck in the active (data-active) state when the Space key is released while the Meta key is held, or after the element becomes disabled between keydown and keyup.CompositeTypeaheadso typeahead text from one composite no longer affects another composite rendered on the same page.Dialogcleanup so stale nested dialog effects no longer restore page accessibility state while a newer effect is active.Dialogto reset outside-interaction focus tracking when reused dialogs reopen.FormPushandFormRemoveincorrectly matching sibling array fields whose names share a prefix (for exampletagsandtags2) and throwing when a field name contained regular expression special characters.useFormStorenested value updates so path segments like-1,Infinity, andNaNare treated as object keys instead of array indexes.Hovercardso nested hovercards no longer reinstall document mousemove listeners when they mount or unmount.MenuItemRadioto avoid forwarding thedefaultCheckedprop to rendered elements.Popoverto ignore stale async positioning updates after a newer positioning effect has started.Portalto preserve React 19 callback ref cleanup functions while still detaching refs that don't return a cleanup.@ariakit/react-components@0.2.0v0.4.29Compare Source
Fixed
Comboboxdropping characters when the popover resizes while typingThe
Comboboxcomponent withautoSelectenabled no longer loses typed characters when the popover is resized as the user types.This could happen with a virtualized list on mobile devices, where the keyboard's autocomplete bar repeatedly changes the available viewport height. Each resize re-rendered the list and re-applied the auto-selection, briefly moving focus away from the input and dropping keystrokes.
Composite items keep their enclosing store
Fixed
CompositeItemto register on the enclosingCompositestore when rendered as the same element as a component that sets its own composite context, such as aMenuButtoninside aMenuProvider. This keeps the item reachable with the arrow keys in one- and two-dimensional composite widgets.The
CompositeItemcan now omit the explicitstoreprop and still register on the enclosing composite:Components no longer throw on events with a non-element target
Several components attach global event listeners that read
event.target/event.relatedTargetand call methods likecontains()andhasAttribute()on them. When third-party code dispatched an event whose target was a non-elementEventTarget(such aswindowor anXMLHttpRequest), those calls threw aTypeError.This affected
Dialog(its interact-outside and Escape-to-close listeners),HovercardDisclosure(its focusout listener), and the sharedisFocusEventOutsideandisPortalEventhelpers used byFocusable,Combobox,Composite, andPortal.Other updates
@ariakit/storepackage.Buttonto preserve React form pending state when submitted with the keyboard.Dialogto preserve closing animations when usingunmountOnHidewith the controlledopenandonCloseprops and no explicit store.removeValuepreserves array length by replacing removed items withnull.process.env.NODE_ENVchecks in published package output, including test-only behavior and development warnings.Menucomponents on the same page potentially causing a "Maximum update depth exceeded" error.MenuItemelements now register only while the menu is visible, instead of registering on mount even while it's hidden.Tabto move focus to the selected tab after a controlledselectedIdupdate while a tab has DOM focus.TooltipProviderto avoid a re-entrant loop when multiple tooltips are forced open at the same time.@ariakit/react-components@0.1.2v0.4.28Compare Source
@ariakit/react-components@0.1.1v0.4.27Compare Source
Menuto respect theautoFocusOnShowprop when set tofalseor when a callback returnsfalse, while still allowing arrow keys to move focus into an already-open menu.@ariakit/react-components@0.1.0Configuration
📅 Schedule: (UTC)
* * * * 1-5)🚦 Automerge: Enabled.
♻ Rebasing: Whenever PR is behind base branch, or you tick the rebase/retry checkbox.
🔕 Ignore: Close this PR and you won't be reminded about this update again.
This PR was generated by Mend Renovate. View the repository job log.