v0.17.0
Pre-release
Pre-release
💔 Breaking Changes
disclosure
- In uncontrolled disclosures, previously we would render the disclosure as open on the first render, regardless of the
defaultOpen
prop's value. This was done as a progressive enhancement to ensure content was visible to users without JavaScript, but in most cases it just meant that the user might see a flash before the state would change, causing unwanted layout shift. - We simplified this by simply respecting the
defaultOpen
prop's value on the initial render. If you want the old behavior, control the state of your disclosures and ensure that the initial open state is always set totrue
, then set the desired state for the following render inuseEffect
.
- In uncontrolled disclosures, previously we would render the disclosure as open on the first render, regardless of the
tabs
- Removed the
isSelected
from from theTab
component. This prop was useful before we had hooks, but we can now get the selected tab from context without using render props. (2dd0aec)
- Removed the
🐛 Bugfixes
auto-id
- Use the user-provided ID beyond the first render for deterministic behavior (b2f3bc0)
tabs
- Stop managing focus on mouse clicks to fix
:focus-visible
- Stop managing focus on mouse clicks to fix
listbox
- Update submit button
querySelector
specificity to fix incorrect button clicks (#903)
- Update submit button
menu-button
,combobox
,listbox
- Skip rendering of portaled popovers before hydration. This prevents unwanted layout shift when the server-rendered popover mounts to a temporary DOM node (a8f38a4).
🤜🤛 8 Committers
- Ashlee M Boyer (@ashleemboyer)
- Jeff Grannes (@jeffgrannes)
- Jonathan (@jhogervorst)
- Kendall Strautman (@kendallstrautman)
- Kent C. Dodds (@kentcdodds)
- Vlad Yanchevsky (@chevsky)
- Zach Gotsch (@zgotsch)
- @rainmodred