87252e1c33
This PR fixes an issue with the `aria-invalid` attributes on some form
elements.
In theory this shouldn't matter and behaves the same as other
attributes. MDN also mentions that any other value than the known set of
values will be treated as `true`.
However, some tools, including the Accessibility tab in Google Chrome
will complain because we set it to `aria-invalid=""`.
We already used `'true'` for `aria-checked` as well, so this change
makes it more consistent.
It will also make sure that `aria-invalid:flex` in Tailwind CSS works as
expected because this compiles to:
```css
.aria-invalid\:flex {
&[aria-invalid="true"] {
display: flex;
}
}
```
Which means that the current implementation didn't work in this case
either.
Fixes: #3623
61 KiB
61 KiB
Changelog
All notable changes to this project will be documented in this file.
The format is based on Keep a Changelog, and this project adheres to Semantic Versioning.
Unreleased
Fixed
- Use correct
ownerDocumentwhen using internal<Portal/>element (#3594) - Bump
@tanstack/react-virtualto be fix warnings in React 19 projects (#3588) - Fix
aria-invalidattributes to have a valid'true'value (#3639)
2.2.0 - 2024-10-25
Added
- Add React 19 support (#3543)
2.1.10 - 2024-10-10
Fixed
- Use
React.JSXinstead of deprecated globalJSX(#3511) - Fix crash in
ListboxOptionswhen usingas={Fragment}(#3513)
2.1.9 - 2024-10-03
Fixed
- Ensure
Elementis available before polyfilling to prevent crashes in non-browser environments (#3493) - Fix crash when using
instanceof HTMLElementin some environments (#3494) - Cleanup
processin Combobox component when using virtualization (#3495)
2.1.8 - 2024-09-12
Fixed
- Fix crash when using
as={Fragment}onMenuButton,ListboxButton,DisclosureButtonorButtoncomponents (#3478)
2.1.7 - 2024-09-11
Fixed
- Prevent crash in environments where
Element.prototype.getAnimationsis not available (#3473)
2.1.6 - 2024-09-09
Fixed
- Fix
ListboxOptionsbeing incorrectly marked asinert(#3466) - Fix crash when using
DisclosureButtoninside of aDisclosurePanelwhen theDisclosureis open by default (#3465)
2.1.5 - 2024-09-04
Fixed
- Fix transition bug on Firefox, triggered by clicking the
PopoverButtonin rapid succession (#3452)
2.1.4 - 2024-09-03
Fixed
- Fix components not closing properly when using the
transitionprop (#3448)
2.1.3 - 2024-08-23
Fixed
- Ensure
Transitioncomponent state doesn't change when it becomes hidden (#3372) - Fix closing components using the
transitionprop, and after scrolling the page (#3407) - Ensure all client components are marked correctly to avoid a crash with React 19 and Turbopack (#3429)
2.1.2 - 2024-07-05
Fixed
- Fix prematurely added anchoring styles on
ListboxOptions(#3337) - Ensure
unmountonDialogworks in combination with thetransitionprop onDialogBackdropandDialogPanelcomponents (#3352) - Fix crash in
Comboboxcomponent when invirtualmode when options are empty (#3356) - Fix hanging tests when using
anchorprop (#3357) - Fix
transitionandfocusprop combination forPopoverPanelcomponent (#3361) - Fix outside click in nested portalled
Popovercomponents (#3362) - Fix restoring focus to correct element when closing
Dialogcomponent (#3365) - Fix
flushSyncwarning forComboboxcomponent withimmediateprop enabled (#3366)
2.1.1 - 2024-06-26
Fixed
- Fix issues spreading omitted props onto components (#3313)
- Fix initial
anchor="selection"positioning (#3324) - Fix render prop in
ComboboxOptionsto useanyinstead ofunknown(#3327) - Fix incorrect
Transitionboundary forDialogcomponent (#3331)
2.1.0 - 2024-06-21
Added
- Add ability to render multiple
Dialogcomponents at once (without nesting them) (#3242) - Add new data-attribute-based transition API (#3273, #3285, #3307, #3309, #3312)
- Add
DialogBackdropcomponent (#3307, #3310) - Add
PopoverBackdropcomponent to replacePopoverOverlay(#3308)
Fixed
- Keep
Comboboxopen when clicking scrollbar inComboboxOptions(#3249) - Ensure
ComboboxInputdoes not sync with current value while typing (#3259) - Fix visual jitter in
Comboboxcomponent when using native scrollbar (#3190) - Improve UX by freezing
ComboboxOptionswhile closing (#3304) - Merge incoming
styleprop onComboboxOptions,ListboxOptions,MenuItems, andPopoverPanelcomponents (#3250) - Prevent focus on
Checkboxwhen it isdisabled(#3251) - Use
useIdinstead of React internals (for React 19 compatibility) (#3254) - Cancel outside click behavior on touch devices when scrolling (#3266)
- Correctly apply conditional classes when using
TransitionandTransitionChildcomponents (#3303)
Changed
- Allow using the
TabandShift+Tabkeys when theListboxcomponent is open (#3284)
2.0.4 - 2024-05-25
Fixed
- [internal] Don’t set a focus fallback for Dialog’s in demo mode (#3194)
- Ensure page doesn't scroll down when pressing
Escapeto close theDialogcomponent (#3218) - Fix crash when toggling between
virtualand non-virtual mode inComboboxcomponent (#3236) - Ensure tabbing to a portalled
PopoverPanelcomponent moves focus inside (without usingPortalGroup) (#3239) - Only handle form reset when
defaultValueis used (#3240)
Deprecated
- Mark
SwitchGroupas deprecated, preferFieldinstead (#3232)
Changed
- Use native
fieldsetinstead ofdivby default forFieldsetcomponent (#3237)
2.0.3 - 2024-05-07
Fixed
- Make sure disabling demo mode on
Comboboxworks (#3182)
2.0.2 - 2024-05-07
Fixed
- Improve performance of internal
useInertOthershook (#3181)
2.0.1 - 2024-05-06
Fixed
- Remove accidental deprecation comments on
DialogPanelandDialogTitle(#3176)
2.0.0 - 2024-05-06
Added
- Add new
Checkboxcomponent (#2887, #2962) - Add new
Buttoncomponent (#2887) - Add new
Inputcomponent (#2887, #2902, #2940) - Add new
Textareacomponent (#2887, #2902, #2940) - Add new
Selectcomponent (#2887, #2902) - Add new
FieldsetandLegendcomponents (#2887) - Add new
Field,Label, andDescriptioncomponents (#2887, #2941) - Add new
MenuSection,MenuHeading, andMenuSeparatorcomponents (#2887) - Add new
ListboxSelectedOptioncomponent (#2887) - Add new
DataInteractivecomponent (#2887) - Add new
CloseButtoncomponent anduseClosehook (#3096) - Add new
anchor,modal, andportalprops toCombobox,Listbox,MenuandPopovercomponents (#2887, #3075, #3097, #3111, #3115, #3121, #3124, #3133, #3138, #3148, #3152, #3154, #3157) - Add new
autoFocusprop to focusable components (#2887) - Add new
virtualprop toComboboxcomponent (#2779, #3128, #3160, #3161, #3163) - Add new
onCloseprop toComboboxcomponent (#3122) - Add new
immediateprop toComboboxfor immediately opening the Combobox when theinputreceives focus (#2686) - Add new
--button-widthCSS variable on theListboxOptions,MenuItems, andPopoverPanelcomponents (#2887, #3058) - Add new
--input-widthand--button-widthCSS variables on theComboboxOptionscomponent (#3057) - Add new
data-*attributes as an alternative to the existingdata-headlessui-stateattribute (#2887, #3035, #3061)
Fixed
- Fix scroll-locking on iOS (#2891)
- Fix cancellation of events when using
disabledoraria-disabledattributes (#2890) - Fix unnecessary execution of the
displayValuecallback inComboboxInputcomponent (#3048) - Fix types for
multipleprop inComboboxcomponent (#3099) - Fix focus handling in
ComboboxInputcomponent (#3065, #3073) - Fix enter transitions in
Transitioncomponent (#3074) - Fix focus handling in
ListboxOptionsandMenuItemscomponents (#3112) - Fix horizontal scrolling inside the
Dialogcomponent (#2889) - Don’t cancel
touchmoveoninputelements inside a dialog (#3166)
Changed
- Require React 18 (#2887, #3092, #3131)
- Always render hidden form input fields for
Checkbox,Switch, andRadioGroupcomponents (#3095) - Deprecate the
RadioGroup.Optioncomponent in favor of newRadiocomponent (#2887) - Deprecate the
activeprop in favor of newfocusprop (#2887) - Dialog is now focused by default instead of the first focusable element (#2887)
- Change default tags for
ListboxOptions,ListboxOption,ComboboxOptions,ComboboxOption, andTabGroupcomponents (#3109) - Change default tag from
divtoFragmentonTransitioncomponents (#3110, #3147) - Allow
Comboboxcomponent to have anullvalue (#3064, #3100) - Attempt form submission when pressing enter on the
ListboxButtoncomponent (#2972) - Deprecate the
enteredprop on theTransitioncomponent (#3089) - Deprecate dot notation for components (#2887, #3170)
- Add frozen value to
ComboboxOptionscomponent (#3126) - Remove deprecated
DialogBackdropandDialogOverlaycomponents (#3171)
1.7.19 - 2024-04-15
Fixed
- Make sure panels re-register when IDs are calculated in React < 18 (#2883)
- Expose
disabledstate onTabcomponent (#2918) - Prevent default behavior when clicking outside of a
Dialog.Panel(#2919) - Add
hiddenattribute to internalHiddencomponent when theFeatures.Hiddenfeature is used (#2955) - Allow setting custom
tabIndexon theSwitchcomponent (#2966) - Forward
disabledstate to hidden inputs in form-like components (#3004) - Respect
selectedIndexfor controlledTabcomponents (#3037)
2.0.0-alpha.4 - 2024-01-03
Fixed
- Ensure
Input,SelectandTextareaexposeRefrelated types (#2902)
2.0.0-alpha.3 - 2023-12-20
Fixed
- Further fine tune scroll locking on iOS (#2891)
2.0.0-alpha.2 - 2023-12-20
Fixed
- Allow horizontal scrolling inside the
Dialogcomponent (#2889) - Improve cancellation of events when using
disabledoraria-disabledattributes (#2890)
2.0.0-alpha.1 - 2023-12-20
Added
- Add
immediateprop toComboboxfor immediately opening the Combobox when theinputreceives focus (#2686) - Add
virtualprop toComboboxcomponent (#2779) - Add new
Checkboxcomponent - Add new
Radiocomponent as an alternative to the existingRadioGroup.Optioncomponent - Add new
Buttoncomponent - Add new
Inputcomponent - Add new
Textareacomponent - Add new
Selectcomponent - Add new
Field,Label,Description,FieldsetandLegendcomponents - Add new
DataInteractivecomponent - Add new
anchorandmodalprop toComboboxOptions,ListboxOptions,MenuItemsandPopoverPanelcomponents - Add new
ListboxSelectedOptioncomponent - Add new
MenuSection,MenuHeading, andMenuSeparatorcomponents - Add new simplified
data-*attributes as an alternative to the existingdata-headlessui-state="..."attribute - Add
autoFocusprop on focusable components (which maps todata-autofocus)
Changed
- Bumped to React and React DOM 18
- Dialog is focused by default instead of the first focusable element (unless an element exists with a
data-autofocusin the dialog)
1.7.18 - 2024-01-08
Fixed
- Don't call
Dialog'sonClosetwice on mobile devices (#2690) - Lazily resolve default containers in
Dialog(#2697) - Ensure hidden
Tab.Panelcomponents are hidden from the accessibility tree (#2708) - Add support for
role="alertdialog"toDialogcomponent (#2709) - Ensure blurring the
Combobox.Inputcomponent closes theCombobox(#2712) - Allow changes to the
classNameprop when theTransitioncomponent is currently not transitioning (#2722) - Export (internal-only) component interfaces for TypeScript compiler (#2313)
- Fix infinite render-loop for
Disclosure.PanelandPopover.Panelwhenas={Fragment}(#2760) - Fix VoiceOver bug for
Listboxcomponent in Chrome (#2824) - Fix outside click detection when component is mounted in the Shadow DOM (#2866)
- Fix CJS types (#2880)
- Fix error when transition classes contain new lines (#2871)
- Improve iOS locking (7721aca)
1.7.17 - 2023-08-17
Fixed
- Use correct value when resetting
<Listbox multiple>and<Combobox multiple>(#2626) - Render
MainTreeNodeinPopover.Groupcomponent only (#2634) - Disable smooth scrolling when opening/closing
Dialogcomponents on iOS (#2635) - Don't assume
Tabcomponents are available when setting the next index (#2642) - Fix incorrectly focused
Combobox.Inputcomponent on page load (#2654) - Ensure
appearworks using theTransitioncomponent (even when used with SSR) (#2646) - Improve resetting values when using the
nullableprop on theComboboxcomponent (#2660) - Fix hydration of components inside
Suspense(#2663) - Prevent scrolling when focusing a tab (#2674)
1.7.16 - 2023-07-27
Fixed
- Ensure the caret is in a consistent position when syncing the
Combobox.Inputvalue (#2568) - Improve "outside click" behavior in combination with 3rd party libraries (#2572)
- Ensure IME works on Android devices (#2580)
- Calculate
aria-expandedpurely based on the open/closed state (#2610) - Submit form on
Entereven if no submit-like button was found (#2613)
1.7.15 - 2023-06-01
Added
- [internal] add demo mode to
MenuandPopovercomponents (#2448)
Fixed
- Ensure
FocusTrapis only active when the givenenabledvalue istrue(#2456) - Stop
<Transition appear>from overwriting classes on re-render (#2457) - Improve control over
MenuandListboxoptions while searching (#2471) - Consider clicks inside iframes to be "outside" (#2485)
- Ensure moving focus within a
Portalcomponent, does not close thePopovercomponent (#2492)
Changed
- Move
typescondition to the front (#2469)
1.7.14 - 2023-04-12
Fixed
- Fix focus styles showing up when using the mouse (#2347)
- Fix "Can't perform a React state update on an unmounted component." when using the
Transitioncomponent (#2374) - Add
FocusTrapevent listeners once document has loaded (#2389) - Fix
classNamehydration for<Transition appear>(#2390) - Improve
Comboboxtypes to improve false positives (#2411) - Merge
classNamecorrectly when it’s a function (#2412) - Correctly handle IME composition in
Combobox.Input(#2426)
Added
- Add
formprop to form-like components such asRadioGroup,Switch,Listbox, andCombobox(#2356)
1.7.13 - 2023-03-03
Fixed
- Ensure
Transitioncomponent completes if nothing is transitioning (#2318) - Enable native label behavior for
Switchwhere possible (#2265) - Allow root containers from the
Dialogcomponent in theFocusTrapcomponent (#2322) - Fix
XYZPropsWeControland cleanup internal TypeScript types (#2329) - Fix invalid warning when using multiple
Popover.Buttoncomponents inside aPopover.Panel(#2333) - Fix restore focus to buttons in Safari, when
Dialogcomponent closes (#2326)
1.7.12 - 2023-02-24
Added
- Add explicit props types for every component (#2282)
Fixed
- Ensure the main tree and parent
Dialogcomponents are marked asinert(#2290) - Fix nested
Popovercomponents not opening (#2293) - Make React types more compatible with other libraries (#2282)
- Fix
Dialogcleanup when theDialogbecomes hidden (#2303)
1.7.11 - 2023-02-15
Fixed
- Ensure we handle
nullvalues for thedataRefcorrectly (#2258) - Move
aria-multiselectableto[role=listbox]in theComboboxcomponent (#2271) - Re-focus
Combobox.Inputwhen aCombobox.Optionis selected (#2272) - Ensure we reset the
activeOptionIndexif the active option is unmounted (#2274) - Improve
Reftype for forwardedSwitch's ref (#2277) - Start cleanup phase of the
Dialogcomponent when going into theClosingstate (#2264)
1.7.10 - 2023-02-06
Fixed
- Revert "Use the
import * as React from 'react'pattern (#2242)
1.7.9 - 2023-02-03
Fixed
- Fix SSR tab hydration when using Strict Mode in development (#2231)
- Don't break overflow when multiple dialogs are open at the same time (#2215)
- Fix "This
Suspenseboundary received an update before it finished hydrating" error in theDisclosurecomponent (#2238) - Use the
import * as React from 'react'pattern (#2242)
1.7.8 - 2023-01-27
Fixed
- Fix SSR tab rendering on React 17 (#2102)
- Fix arrow key handling in
Tab(after DOM order changes) (#2145) - Fix false positive warning about using multiple
Popover.Buttoncomponents (#2146) - Fix
Tabkey with non focusable elements inPopover.Panel(#2147) - Fix false positive warning when using
Popover.Buttonin React 17 (#2163) - Fix
failed to removeChild on Nodebug (#2164) - Don’t overwrite classes during SSR when rendering fragments (#2173)
- Improve
Comboboxaccessibility (#2153) - Fix crash when reading
headlessuiFocusGuardofrelatedTargetin theFocusTrapcomponent (#2203) - Fix
FocusTrapinDialogwhen there is only 1 focusable element (#2172) - Improve
Tabswrapping around when controlling the component and overflowing theselectedIndex(#2213) - Fix
shadow-rootbug closingDialogcontainers (#2217)
Added
- Allow setting
tabIndexon theTab.Panel(#2214)
1.7.7 - 2022-12-16
Fixed
- Improve scroll restoration after
Dialogcloses (b20e48dd)
1.7.6 - 2022-12-15
Fixed
- Fix regression where
displayValuecrashes (#2087) - Fix
displayValuesyncing whenCombobox.Inputis unmounted and re-mounted in different trees (#2090) - Fix FocusTrap escape due to strange tabindex values (#2093)
- Improve scroll locking on iOS (#2100, 28234b0e)
1.7.5 - 2022-12-08
Fixed
- Reset form-like components when the parent
formresets (#2004) - Add warning when using
Popover.Buttonmultiple times (#2007) - Ensure Popover doesn't crash when
focusis going towindow(#2019) - Ensure
shift+homeandshift+endworks as expected in theCombobox.Inputcomponent (#2024) - Improve syncing of the
Combobox.Inputvalue (#2042) - Fix crash when using
multiplemode withoutvalueprop (uncontrolled) forListboxandComboboxcomponents (#2058) - Apply
enterandenterFromclasses in SSR forTransitioncomponent (#2059) - Allow passing in your own
idprop (#2060) - Fix
Dialogunmounting problem due to incorrecttransitioncancelevent in theTransitioncomponent on Android (#2071) - Ignore pointer events in Listbox, Menu, and Combobox when cursor hasn't moved (#2069)
- Allow clicks inside dialog panel when target is inside shadow root (#2079)
1.7.4 - 2022-11-03
Fixed
- Fix
<Popover.Button as={Fragment} />crash (#1889) - Expose
closefunction forMenuandMenu.Itemcomponents (#1897) - Fix
useOutsideClick, add improvements for ShadowDOM (#1914) - Fire
Combobox.Input'sonChangehandler when changing the value internally (#1916) - Add
client-onlyto mark everything as client components (#1981)
Added
- Warn when changing components between controlled and uncontrolled (#1878)
1.7.3 - 2022-09-30
Fixed
- Improve
Portaldetection forPopovercomponents (#1842) - Fix
useOutsideClickswallowing events inside ShadowDOM (#1876) - Fix
Tabincorrectly activating onfocusevent (#1887)
1.7.2 - 2022-09-15
Fixed
- Prevent option selection in
Combobox.Inputwhile composing (#1850) - Ensure we handle the
staticprop inTab.Panelcomponents correctly (#1856)
1.7.1 - 2022-09-12
Fixed
- Improve iOS scroll locking (#1830)
- Add
<fieldset disabled>check to radio group options in React (#1835) - Ensure
Taborder stays consistent, and the currently activeTabstays active (#1837) - Ensure
Combobox.Labelis properly linked when rendered afterCombobox.ButtonandCombobox.Inputcomponents (#1838) - Remove
forceRerenderfromTabcomponent (#1846)
1.7.0 - 2022-09-06
Added
- Add
byprop forListbox,ComboboxandRadioGroup(#1482, #1717, #1814, #1815) - Make form components uncontrollable (#1683)
- Add
@headlessui/tailwindcssplugin (#1487)
Fixed
- Fixed SSR support on Deno (#1671)
- Don’t close dialog when opened during mouse up event (#1667)
- Don’t close dialog when drag ends outside dialog (#1667)
- Fix outside clicks to close dialog when nested, unopened dialogs are present (#1667)
- Close
Menucomponent when usingtabkey (#1673) - Resync input when display value changes (#1679, #1755)
- Ensure controlled
Tabsdon't change automagically (#1680) - Don't scroll lock when a Transition + Dialog is mounted but hidden (#1681)
- Allow
Popovercloseto be passed directly toonClickhandlers (#1696) - Improve outside click on Safari iOS (#1712)
- Improve event handler merging (#1715)
- Fix incorrect scrolling to the bottom when opening a
Dialog(#1716) - Improve
Comboboxre-opening keyboard issue on mobile (#1732) - Ensure
Disclosure.Panelis properly linked (#1747) - Only select the active option when using "singular" mode when pressing
tabin theComboboxcomponent (#1750) - Improve the types of the
Comboboxcomponent (#1761) - Only restore focus to the
Menu.Buttonif necessary when activating aMenu.Option(#1782) - Don't scroll when wrapping around in focus trap (#1789)
- Fix
Transitioncomponent's incorrect cleanup and order of events (#1803) - Ensure enter transitions work when using
unmount={false}(#1811) - Improve accessibility when announcing
Listbox.OptionandCombobox.Optioncomponents (#1812) - Fix
refstealing from children (#1820) - Expose the
valuefrom theComboboxandListboxcomponents render prop (#1822) - Improve
scroll lockon iOS (#1824) - Fix maximum call stack size exceeded error on
Tabcomponent when usingas={Fragment}(#1826) - Fix "blank" screen on initial load of
Transitioncomponent (#1823)
1.6.6 - 2022-07-07
Fixed
- Ensure
CMD+Backspaceworks in nullable mode forComboboxcomponent (#1617)
1.6.5 - 2022-06-20
Fixed
- Fix incorrect transitionend/transitioncancel events for the Transition component (#1537)
- Improve outside click of
Dialogcomponent (#1546) - Detect outside clicks from within
iframeelements (#1552) - Improve Combobox input cursor position (#1574)
- Fix scrolling issue in
Tabcomponent when using arrow keys (#1584)
1.6.4 - 2022-05-29
Fixed
- Ensure
Escapepropagates correctly inComboboxcomponent (#1511) - Remove leftover code in Combobox component (#1514)
- Fix event handlers with arity > 1 (#1515)
- Fix transition
enterbug (#1519) - Fix render prop data in
RadioGroupcomponent (#1522)
1.6.3 - 2022-05-25
Fixed
- Allow to override the
typeon theCombobox.Input(#1476) - Ensure the the
<Popover.Panel focus>closes correctly (#1477) - Only render the
FocusSentinelif required in theTabscomponent (#1493) - Ensure the Transition stops once DOM Nodes are hidden (#1500)
1.6.2 - 2022-05-19
Fixed
- Fix closing of
Popover.Panelin React 18 (#1409) - Ignore
Escapewhen event got prevented inDialogcomponent (#1424) - Improve
FocusTrapbehavior (#1432) - Simplify
PopoverTab logic by using sentinel nodes instead of keydown event interception (#1440) - Ensure the
Popover.Panelis clickable without closing thePopover(#1443) - Improve "Scroll lock" scrollbar width for
Dialogcomponent (#1457) - Make the
refoptional in thePopovercomponent (#1465) - Ensure the
refis forwarded on theTransition.Childcomponent (#1473)
1.6.1 - 2022-05-03
Fixed
- Fix hydration issue with
Tabcomponent (#1393)
1.6.0 - 2022-04-25
Fixed
- Ensure that you can add the
refprop to all components (#1116) - Ensure links are triggered inside
Popover.Panelcomponents (#1153) - Improve SSR for
Tabcomponent (#1155) - Fix
hoverscroll issue inListbox,ComboboxandMenucomponents (#1161) - Guarantee DOM sort order when performing
Listbox,ComboboxandMenuactions (#1168) - Fix
Transitionflickering issue (#1118) - Improve outside click support (#1175)
- Ensure that
appearprop on theTransitioncomponent works regardless of multiple rerenders (#1179) - Reset
Combobox.Inputwhen the value gets reset (#1181) - Fix double
beforeEntercallback on theTransitioncomponent caused by SSR (#1183) - Adjust active
item/optionindex onListbox,ComboboxandMenucomponents (#1184) - Only activate the
Tabon mouseup (#1192) - Ignore "outside click" on removed elements (#1193)
- Remove
focus()fromListbox.Option(#1218) - Improve some internal code (#1221)
- Use
ownerDocumentinstead ofdocument(#1158) - Ensure focus trapping plays well with the
TabandDialogcomponents (#1231) - Improve syncing of
Combobox.Inputvalue (#1248) - Fix tree-shaking support (#1247)
- Stop propagation on the
Popover.Button(#1263) - Fix incorrect
activeoption in theListboxandComboboxcomponents (#1264) - Properly merge incoming props (#1265)
- Fix incorrect closing while interacting with third party libraries in
Dialogcomponent (#1268) - Mimic browser select on focus when navigating the
Tabcomponent (#1272) - Ensure that there is always an active option in the
Combobox(#1279, #1281) - Support classic form submissions in
RadioGroup,SwitchandComboboxcomponents (#1285) - Add React 18 compatibility (#1326)
- Fix open/closed state issue in
Dialog(#1360)
Added
- Add classic form submission compatibility via new hidden inputs (#1214)
- Add multiple value support to
ListboxandComboboxcomponents (#1243, #1355) - Add support for clearing the value of a
Combobox(#1295) - Add
Dialog.BackdropandDialog.Panelcomponents (#1333)
1.5.0 - 2022-02-17
Fixed
- Ensure correct order when conditionally rendering
Menu.Item,Listbox.OptionandRadioGroup.Option(#1045) - Improve controlled Tabs behavior (#1050)
- Improve typeahead search logic (#1051)
- Improve overal codebase, use modern tech like
esbuildand TypeScript 4! (#1055) - Improve build files (#1078)
- Ensure typeahead stays on same item if it still matches (#1098)
- Fix off-by-one frame issue causing flicker (#1111)
- Trigger scrollIntoView effect when position changes (#1113)
Added
1.4.3 - 2022-01-14
Fixes
- Ensure portal root exists in the DOM (#950)
- Ensure correct DOM node order when performing focus actions (#1038)
Added
1.4.2 - 2021-11-08
Fixes
- Stop the event from propagating in the
Popovercomponent (#798) - Allow clicking on elements inside a
Dialog.Overlay(#816) - Ensure interactability with
Popover.Panelcontents when using thestaticprop (#857) - Fix initial transition in
Transitioncomponent (#882)
1.4.1 - 2021-08-30
Fixes
- Only add
type=buttonto real buttons (#709) - Fix
escapebug not closing Dialog after clicking in Dialog (#754) - Use
console.warninstead of throwing an error when there are no focusable elements (#775)
1.4.0 - 2021-07-29
Added
- Add new
Tabscomponent (#674, #698) - Make
Disclosure.Buttonclose the disclosure inside aDisclosure.Panel(#682) - Add
aria-orientationtoListbox, which swaps Up/Down with Left/Right keys (#683) - Expose
closefunction from the render prop forDisclosure,Disclosure.Panel,PopoverandPopover.Panel(#697)
1.3.0 - 2021-06-21
Added
- Ensure that you can use
Transition.Childwhen using implicit Transitions (#503) - Add new
enteredprop forTransitionandTransition.Childcomponents (#504)
Fixes
- Add
aria-disabledon disabledRadioGroup.Optioncomponents (#543) - Improve
disabledandtabindexprop handling (#512) - Improve React peer dependency version range (#544)
- Improve types for the
openprop in theDialogcomponent (#550) - Improve
aria-expandedlogic (#592) - Remove undocumented
:classNameprop (#607) - Improve types for
Listboxcomponent (#576) - Remove explicit
:classprop (#608) - Improve tree shaking (#602)
- Improve peer dependencies for
react-dom, and for the future version18(#622)
1.2.0 - 2021-05-10
Added
- Introduce Open/Closed state, to simplify component communication (#466)
Fixes
- Improve SSR for
Dialog(#477) - Delay focus trap initialization (#477)
- Improve incorrect behavior for nesting
Dialogcomponents (#560)
1.1.1 - 2021-04-28
Fixes
- Fix form submission within Dialog (#460)
1.1.0 - 2021-04-26
Fixes
- Improve search, make searching case insensitive (#385)
- Fix unreachable
RadioGroup(#401) - Fix closing nested
Dialogcomponents when pressingEscape(#430)
Added
- Add
disabledprop toRadioGroupandRadioGroup.Option(#401) - Add
defaultOpenprop to theDisclosurecomponent (#447)
1.0.0 - 2021-04-14
Fixes
- Fixed
outside clicknot re-focusing theMenu.Button(#220, #256) - Fixed
outside clicknot re-focusing theListbox.Button(#220, #256) - Force focus in
Menu.ItemsandListbox.Optionsfrom within the component itself (#261) - Stop propagating keyboard/mouse events (#261)
Added
- Add
Disclosure,Disclosure.ButtonandDisclosure.Panelcomponents (#220) - Add
Dialog,Dialog.Overlay,Dialog.TileandDialog.Descriptioncomponents (#220) - Add
PortalandPortal.Groupcomponent (#220) - Add
Switch.Descriptioncomponent, which adds thearia-describedbyto the actual Switch (#220) - Add
FocusTrapcomponent (#220) - Add
Popover,Popover.Button,Popover.Overlay,Popover.PanelandPopover.Groupcomponents (#220) - All components that accept a
className, can now also receive a function with the renderProp argument (#257) - Add
RadioGroup,RadioGroup.Option,RadioGroup.LabelandRadioGroup.Descriptioncomponents (#274)
0.3.2 - 2021-04-02
Fixes
0.3.1 - 2021-02-11
Fixes
0.3.0 - 2021-02-06
Fixes
- Ensure that you can't use Enter to invoke the Switch
- Fix outside click refocus bug (#114)
- Prevent scrolling when refocusing items
- Ensure
Switchhastype="button"(#192) - Fix
useId()hook returningundefinedon the client - Fix
disablednot working when inside a disabled fieldset (#202) - Trigger "outside click" behavior on mousedown (#212)
- Ensure the
activeMenuItem is scrolled into view - Ensure valid Menu accessibility tree (#228)
Added
- Add Transition events (
beforeEnter,afterEnter,beforeLeaveandafterLeave) (#57) - Add render features + render strategy (
staticandunmount={true | false}) (#106) - Add displayName to all contexts (#175)
- Add
disabledprop toListboxitself, instead of theListbox.Button(#229)
Changes
- Changes the API of the Transition component.
- We will now always render a
divby default (unless you change this using theas={...}prop). - The render function prop doesn't expose a
refanymore. - Adds
unmountprop to theTransitionandTransition.Childcomponents.
- We will now always render a
0.2.0 - 2020-10-06
Added
- Add
Listboxcomponent - Add
Switchcomponent
0.1.3 - 2020-09-29
Fixes
- Fix outside click behavior. If you had multiple menu's, when menu 1 is open, menu 2 is closed and you click on menu button 2 it will open both menu's. This is now fixed.
- Ensure when using keyboard navigation we prevent the default behavior.
0.1.2 - 2020-09-25
Added
- Add tests for
onClickhandling that wasn't working properly in @headlessui/vue to ensure behavior stays the same in this library
Fixes
- Don't pass
disabledprop through to children, only addaria-disabled
0.1.1 - 2020-09-24
Added
- Everything!