Skip to content

Latest commit

 

History

History
872 lines (624 loc) · 60.9 KB

CHANGELOG.md

File metadata and controls

872 lines (624 loc) · 60.9 KB

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.

  • Nothing yet!

2.2.0 - 2024-10-25

Added

  • Add React 19 support (#3543)

2.1.10 - 2024-10-10

Fixed

  • Use React.JSX instead of deprecated global JSX (#3511)
  • Fix crash in ListboxOptions when using as={Fragment} (#3513)

2.1.9 - 2024-10-03

Fixed

  • Ensure Element is available before polyfilling to prevent crashes in non-browser environments (#3493)
  • Fix crash when using instanceof HTMLElement in some environments (#3494)
  • Cleanup process in Combobox component when using virtualization (#3495)

2.1.8 - 2024-09-12

Fixed

  • Fix crash when using as={Fragment} on MenuButton, ListboxButton, DisclosureButton or Button components (#3478)

2.1.7 - 2024-09-11

Fixed

  • Prevent crash in environments where Element.prototype.getAnimations is not available (#3473)

2.1.6 - 2024-09-09

Fixed

  • Fix ListboxOptions being incorrectly marked as inert (#3466)
  • Fix crash when using DisclosureButton inside of a DisclosurePanel when the Disclosure is open by default (#3465)

2.1.5 - 2024-09-04

Fixed

  • Fix transition bug on Firefox, triggered by clicking the PopoverButton in rapid succession (#3452)

2.1.4 - 2024-09-03

Fixed

  • Fix components not closing properly when using the transition prop (#3448)

2.1.3 - 2024-08-23

Fixed

  • Ensure Transition component state doesn't change when it becomes hidden (#3372)
  • Fix closing components using the transition prop, 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 unmount on Dialog works in combination with the transition prop on DialogBackdrop and DialogPanel components (#3352)
  • Fix crash in Combobox component when in virtual mode when options are empty (#3356)
  • Fix hanging tests when using anchor prop (#3357)
  • Fix transition and focus prop combination for PopoverPanel component (#3361)
  • Fix outside click in nested portalled Popover components (#3362)
  • Fix restoring focus to correct element when closing Dialog component (#3365)
  • Fix flushSync warning for Combobox component with immediate prop 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 ComboboxOptions to use any instead of unknown (#3327)
  • Fix incorrect Transition boundary for Dialog component (#3331)

2.1.0 - 2024-06-21

Added

  • Add ability to render multiple Dialog components at once (without nesting them) (#3242)
  • Add new data-attribute-based transition API (#3273, #3285, #3307, #3309, #3312)
  • Add DialogBackdrop component (#3307, #3310)
  • Add PopoverBackdrop component to replace PopoverOverlay (#3308)

Fixed

  • Keep Combobox open when clicking scrollbar in ComboboxOptions (#3249)
  • Ensure ComboboxInput does not sync with current value while typing (#3259)
  • Fix visual jitter in Combobox component when using native scrollbar (#3190)
  • Improve UX by freezing ComboboxOptions while closing (#3304)
  • Merge incoming style prop on ComboboxOptions, ListboxOptions, MenuItems, and PopoverPanel components (#3250)
  • Prevent focus on Checkbox when it is disabled (#3251)
  • Use useId instead of React internals (for React 19 compatibility) (#3254)
  • Cancel outside click behavior on touch devices when scrolling (#3266)
  • Correctly apply conditional classes when using Transition and TransitionChild components (#3303)

Changed

  • Allow using the Tab and Shift+Tab keys when the Listbox component 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 Escape to close the Dialog component (#3218)
  • Fix crash when toggling between virtual and non-virtual mode in Combobox component (#3236)
  • Ensure tabbing to a portalled PopoverPanel component moves focus inside (without using PortalGroup) (#3239)
  • Only handle form reset when defaultValue is used (#3240)

Deprecated

  • Mark SwitchGroup as deprecated, prefer Field instead (#3232)

Changed

  • Use native fieldset instead of div by default for Fieldset component (#3237)

2.0.3 - 2024-05-07

Fixed

  • Make sure disabling demo mode on Combobox works (#3182)

2.0.2 - 2024-05-07

Fixed

  • Improve performance of internal useInertOthers hook (#3181)

2.0.1 - 2024-05-06

Fixed

  • Remove accidental deprecation comments on DialogPanel and DialogTitle (#3176)

2.0.0 - 2024-05-06

Added

  • Add new Checkbox component (#2887, #2962)
  • Add new Button component (#2887)
  • Add new Input component (#2887, #2902, #2940)
  • Add new Textarea component (#2887, #2902, #2940)
  • Add new Select component (#2887, #2902)
  • Add new Fieldset and Legend components (#2887)
  • Add new Field, Label, and Description components (#2887, #2941)
  • Add new MenuSection, MenuHeading, and MenuSeparator components (#2887)
  • Add new ListboxSelectedOption component (#2887)
  • Add new DataInteractive component (#2887)
  • Add new CloseButton component and useClose hook (#3096)
  • Add new anchor, modal, and portal props to Combobox, Listbox, Menu and Popover components (#2887, #3075, #3097, #3111, #3115, #3121, #3124, #3133, #3138, #3148, #3152, #3154, #3157)
  • Add new autoFocus prop to focusable components (#2887)
  • Add new virtual prop to Combobox component (#2779, #3128, #3160, #3161, #3163)
  • Add new onClose prop to Combobox component (#3122)
  • Add new immediate prop to Combobox for immediately opening the Combobox when the input receives focus (#2686)
  • Add new --button-width CSS variable on the ListboxOptions, MenuItems, and PopoverPanel components (#2887, #3058)
  • Add new --input-width and --button-width CSS variables on the ComboboxOptions component (#3057)
  • Add new data-* attributes as an alternative to the existing data-headlessui-state attribute (#2887, #3035, #3061)

Fixed

  • Fix scroll-locking on iOS (#2891)
  • Fix cancellation of events when using disabled or aria-disabled attributes (#2890)
  • Fix unnecessary execution of the displayValue callback in ComboboxInput component (#3048)
  • Fix types for multiple prop in Combobox component (#3099)
  • Fix focus handling in ComboboxInput component (#3065, #3073)
  • Fix enter transitions in Transition component (#3074)
  • Fix focus handling in ListboxOptions and MenuItems components (#3112)
  • Fix horizontal scrolling inside the Dialog component (#2889)
  • Don’t cancel touchmove on input elements inside a dialog (#3166)

Changed

  • Require React 18 (#2887, #3092, #3131)
  • Always render hidden form input fields for Checkbox, Switch, and RadioGroup components (#3095)
  • Deprecate the RadioGroup.Option component in favor of new Radio component (#2887)
  • Deprecate the active prop in favor of new focus prop (#2887)
  • Dialog is now focused by default instead of the first focusable element (#2887)
  • Change default tags for ListboxOptions, ListboxOption, ComboboxOptions, ComboboxOption, and TabGroup components (#3109)
  • Change default tag from div to Fragment on Transition components (#3110, #3147)
  • Allow Combobox component to have a null value (#3064, #3100)
  • Attempt form submission when pressing enter on the ListboxButton component (#2972)
  • Deprecate the entered prop on the Transition component (#3089)
  • Deprecate dot notation for components (#2887, #3170)
  • Add frozen value to ComboboxOptions component (#3126)
  • Remove deprecated DialogBackdrop and DialogOverlay components (#3171)

1.7.19 - 2024-04-15

Fixed

  • Make sure panels re-register when IDs are calculated in React < 18 (#2883)
  • Expose disabled state on Tab component (#2918)
  • Prevent default behavior when clicking outside of a Dialog.Panel (#2919)
  • Add hidden attribute to internal Hidden component when the Features.Hidden feature is used (#2955)
  • Allow setting custom tabIndex on the Switch component (#2966)
  • Forward disabled state to hidden inputs in form-like components (#3004)
  • Respect selectedIndex for controlled Tab components (#3037)

2.0.0-alpha.4 - 2024-01-03

Fixed

  • Ensure Input, Select and Textarea expose Ref related 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 Dialog component (#2889)
  • Improve cancellation of events when using disabled or aria-disabled attributes (#2890)

2.0.0-alpha.1 - 2023-12-20

Added

  • Add immediate prop to Combobox for immediately opening the Combobox when the input receives focus (#2686)
  • Add virtual prop to Combobox component (#2779)
  • Add new Checkbox component
  • Add new Radio component as an alternative to the existing RadioGroup.Option component
  • Add new Button component
  • Add new Input component
  • Add new Textarea component
  • Add new Select component
  • Add new Field, Label, Description, Fieldset and Legend components
  • Add new DataInteractive component
  • Add new anchor and modal prop to ComboboxOptions, ListboxOptions, MenuItems and PopoverPanel components
  • Add new ListboxSelectedOption component
  • Add new MenuSection, MenuHeading, and MenuSeparator components
  • Add new simplified data-* attributes as an alternative to the existing data-headlessui-state="..." attribute
  • Add autoFocus prop on focusable components (which maps to data-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-autofocus in the dialog)

1.7.18 - 2024-01-08

Fixed

  • Don't call Dialog's onClose twice on mobile devices (#2690)
  • Lazily resolve default containers in Dialog (#2697)
  • Ensure hidden Tab.Panel components are hidden from the accessibility tree (#2708)
  • Add support for role="alertdialog" to Dialog component (#2709)
  • Ensure blurring the Combobox.Input component closes the Combobox (#2712)
  • Allow changes to the className prop when the Transition component is currently not transitioning (#2722)
  • Export (internal-only) component interfaces for TypeScript compiler (#2313)
  • Fix infinite render-loop for Disclosure.Panel and Popover.Panel when as={Fragment} (#2760)
  • Fix VoiceOver bug for Listbox component 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 MainTreeNode in Popover.Group component only (#2634)
  • Disable smooth scrolling when opening/closing Dialog components on iOS (#2635)
  • Don't assume Tab components are available when setting the next index (#2642)
  • Fix incorrectly focused Combobox.Input component on page load (#2654)
  • Ensure appear works using the Transition component (even when used with SSR) (#2646)
  • Improve resetting values when using the nullable prop on the Combobox component (#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.Input value (#2568)
  • Improve "outside click" behavior in combination with 3rd party libraries (#2572)
  • Ensure IME works on Android devices (#2580)
  • Calculate aria-expanded purely based on the open/closed state (#2610)
  • Submit form on Enter even if no submit-like button was found (#2613)

1.7.15 - 2023-06-01

Added

  • [internal] add demo mode to Menu and Popover components (#2448)

Fixed

  • Ensure FocusTrap is only active when the given enabled value is true (#2456)
  • Stop <Transition appear> from overwriting classes on re-render (#2457)
  • Improve control over Menu and Listbox options while searching (#2471)
  • Consider clicks inside iframes to be "outside" (#2485)
  • Ensure moving focus within a Portal component, does not close the Popover component (#2492)

Changed

  • Move types condition 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 Transition component (#2374)
  • Add FocusTrap event listeners once document has loaded (#2389)
  • Fix className hydration for <Transition appear> (#2390)
  • Improve Combobox types to improve false positives (#2411)
  • Merge className correctly when it’s a function (#2412)
  • Correctly handle IME composition in Combobox.Input (#2426)

Added

  • Add form prop to form-like components such as RadioGroup, Switch, Listbox, and Combobox (#2356)

1.7.13 - 2023-03-03

Fixed

  • Ensure Transition component completes if nothing is transitioning (#2318)
  • Enable native label behavior for Switch where possible (#2265)
  • Allow root containers from the Dialog component in the FocusTrap component (#2322)
  • Fix XYZPropsWeControl and cleanup internal TypeScript types (#2329)
  • Fix invalid warning when using multiple Popover.Button components inside a Popover.Panel (#2333)
  • Fix restore focus to buttons in Safari, when Dialog component closes (#2326)

1.7.12 - 2023-02-24

Added

  • Add explicit props types for every component (#2282)

Fixed

  • Ensure the main tree and parent Dialog components are marked as inert (#2290)
  • Fix nested Popover components not opening (#2293)
  • Make React types more compatible with other libraries (#2282)
  • Fix Dialog cleanup when the Dialog becomes hidden (#2303)

1.7.11 - 2023-02-15

Fixed

  • Ensure we handle null values for the dataRef correctly (#2258)
  • Move aria-multiselectable to [role=listbox] in the Combobox component (#2271)
  • Re-focus Combobox.Input when a Combobox.Option is selected (#2272)
  • Ensure we reset the activeOptionIndex if the active option is unmounted (#2274)
  • Improve Ref type for forwarded Switch's ref (#2277)
  • Start cleanup phase of the Dialog component when going into the Closing state (#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 Suspense boundary received an update before it finished hydrating" error in the Disclosure component (#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.Button components (#2146)
  • Fix Tab key with non focusable elements in Popover.Panel (#2147)
  • Fix false positive warning when using Popover.Button in React 17 (#2163)
  • Fix failed to removeChild on Node bug (#2164)
  • Don’t overwrite classes during SSR when rendering fragments (#2173)
  • Improve Combobox accessibility (#2153)
  • Fix crash when reading headlessuiFocusGuard of relatedTarget in the FocusTrap component (#2203)
  • Fix FocusTrap in Dialog when there is only 1 focusable element (#2172)
  • Improve Tabs wrapping around when controlling the component and overflowing the selectedIndex (#2213)
  • Fix shadow-root bug closing Dialog containers (#2217)

Added

  • Allow setting tabIndex on the Tab.Panel (#2214)

1.7.7 - 2022-12-16

Fixed

  • Improve scroll restoration after Dialog closes (b20e48dd)

1.7.6 - 2022-12-15

Fixed

  • Fix regression where displayValue crashes (#2087)
  • Fix displayValue syncing when Combobox.Input is 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 form resets (#2004)
  • Add warning when using Popover.Button multiple times (#2007)
  • Ensure Popover doesn't crash when focus is going to window (#2019)
  • Ensure shift+home and shift+end works as expected in the Combobox.Input component (#2024)
  • Improve syncing of the Combobox.Input value (#2042)
  • Fix crash when using multiple mode without value prop (uncontrolled) for Listbox and Combobox components (#2058)
  • Apply enter and enterFrom classes in SSR for Transition component (#2059)
  • Allow passing in your own id prop (#2060)
  • Fix Dialog unmounting problem due to incorrect transitioncancel event in the Transition component 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 close function for Menu and Menu.Item components (#1897)
  • Fix useOutsideClick, add improvements for ShadowDOM (#1914)
  • Fire Combobox.Input's onChange handler when changing the value internally (#1916)
  • Add client-only to mark everything as client components (#1981)

Added

  • Warn when changing components between controlled and uncontrolled (#1878)

1.7.3 - 2022-09-30

Fixed

  • Improve Portal detection for Popover components (#1842)
  • Fix useOutsideClick swallowing events inside ShadowDOM (#1876)
  • Fix Tab incorrectly activating on focus event (#1887)

1.7.2 - 2022-09-15

Fixed

  • Prevent option selection in Combobox.Input while composing (#1850)
  • Ensure we handle the static prop in Tab.Panel components 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 Tab order stays consistent, and the currently active Tab stays active (#1837)
  • Ensure Combobox.Label is properly linked when rendered after Combobox.Button and Combobox.Input components (#1838)
  • Remove forceRerender from Tab component (#1846)

1.7.0 - 2022-09-06

Added

  • Add by prop for Listbox, Combobox and RadioGroup (#1482, #1717, #1814, #1815)
  • Make form components uncontrollable (#1683)
  • Add @headlessui/tailwindcss plugin (#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 Menu component when using tab key (#1673)
  • Resync input when display value changes (#1679, #1755)
  • Ensure controlled Tabs don't change automagically (#1680)
  • Don't scroll lock when a Transition + Dialog is mounted but hidden (#1681)
  • Allow Popover close to be passed directly to onClick handlers (#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 Combobox re-opening keyboard issue on mobile (#1732)
  • Ensure Disclosure.Panel is properly linked (#1747)
  • Only select the active option when using "singular" mode when pressing tab in the Combobox component (#1750)
  • Improve the types of the Combobox component (#1761)
  • Only restore focus to the Menu.Button if necessary when activating a Menu.Option (#1782)
  • Don't scroll when wrapping around in focus trap (#1789)
  • Fix Transition component's incorrect cleanup and order of events (#1803)
  • Ensure enter transitions work when using unmount={false} (#1811)
  • Improve accessibility when announcing Listbox.Option and Combobox.Option components (#1812)
  • Fix ref stealing from children (#1820)
  • Expose the value from the Combobox and Listbox components render prop (#1822)
  • Improve scroll lock on iOS (#1824)
  • Fix maximum call stack size exceeded error on Tab component when using as={Fragment} (#1826)
  • Fix "blank" screen on initial load of Transition component (#1823)

1.6.6 - 2022-07-07

Fixed

  • Ensure CMD+Backspace works in nullable mode for Combobox component (#1617)

1.6.5 - 2022-06-20

Fixed

  • Fix incorrect transitionend/transitioncancel events for the Transition component (#1537)
  • Improve outside click of Dialog component (#1546)
  • Detect outside clicks from within iframe elements (#1552)
  • Improve Combobox input cursor position (#1574)
  • Fix scrolling issue in Tab component when using arrow keys (#1584)

1.6.4 - 2022-05-29

Fixed

  • Ensure Escape propagates correctly in Combobox component (#1511)
  • Remove leftover code in Combobox component (#1514)
  • Fix event handlers with arity > 1 (#1515)
  • Fix transition enter bug (#1519)
  • Fix render prop data in RadioGroup component (#1522)

1.6.3 - 2022-05-25

Fixed

  • Allow to override the type on the Combobox.Input (#1476)
  • Ensure the the <Popover.Panel focus> closes correctly (#1477)
  • Only render the FocusSentinel if required in the Tabs component (#1493)
  • Ensure the Transition stops once DOM Nodes are hidden (#1500)

1.6.2 - 2022-05-19

Fixed

  • Fix closing of Popover.Panel in React 18 (#1409)
  • Ignore Escape when event got prevented in Dialog component (#1424)
  • Improve FocusTrap behavior (#1432)
  • Simplify Popover Tab logic by using sentinel nodes instead of keydown event interception (#1440)
  • Ensure the Popover.Panel is clickable without closing the Popover (#1443)
  • Improve "Scroll lock" scrollbar width for Dialog component (#1457)
  • Make the ref optional in the Popover component (#1465)
  • Ensure the ref is forwarded on the Transition.Child component (#1473)

1.6.1 - 2022-05-03

Fixed

  • Fix hydration issue with Tab component (#1393)

1.6.0 - 2022-04-25

Fixed

  • Ensure that you can add the ref prop to all components (#1116)
  • Ensure links are triggered inside Popover.Panel components (#1153)
  • Improve SSR for Tab component (#1155)
  • Fix hover scroll issue in Listbox, Combobox and Menu components (#1161)
  • Guarantee DOM sort order when performing Listbox, Combobox and Menu actions (#1168)
  • Fix Transition flickering issue (#1118)
  • Improve outside click support (#1175)
  • Ensure that appear prop on the Transition component works regardless of multiple rerenders (#1179)
  • Reset Combobox.Input when the value gets reset (#1181)
  • Fix double beforeEnter callback on the Transition component caused by SSR (#1183)
  • Adjust active item/option index on Listbox, Combobox and Menu components (#1184)
  • Only activate the Tab on mouseup (#1192)
  • Ignore "outside click" on removed elements (#1193)
  • Remove focus() from Listbox.Option (#1218)
  • Improve some internal code (#1221)
  • Use ownerDocument instead of document (#1158)
  • Ensure focus trapping plays well with the Tab and Dialog components (#1231)
  • Improve syncing of Combobox.Input value (#1248)
  • Fix tree-shaking support (#1247)
  • Stop propagation on the Popover.Button (#1263)
  • Fix incorrect active option in the Listbox and Combobox components (#1264)
  • Properly merge incoming props (#1265)
  • Fix incorrect closing while interacting with third party libraries in Dialog component (#1268)
  • Mimic browser select on focus when navigating the Tab component (#1272)
  • Ensure that there is always an active option in the Combobox (#1279, #1281)
  • Support classic form submissions in RadioGroup, Switch and Combobox components (#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 Listbox and Combobox components (#1243, #1355)
  • Add support for clearing the value of a Combobox (#1295)
  • Add Dialog.Backdrop and Dialog.Panel components (#1333)

1.5.0 - 2022-02-17

Fixed

  • Ensure correct order when conditionally rendering Menu.Item, Listbox.Option and RadioGroup.Option (#1045)
  • Improve controlled Tabs behavior (#1050)
  • Improve typeahead search logic (#1051)
  • Improve overal codebase, use modern tech like esbuild and 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

  • Allow for Tab.Group to be controllable (#909, #970)

1.4.2 - 2021-11-08

Fixes

  • Stop the event from propagating in the Popover component (#798)
  • Allow clicking on elements inside a Dialog.Overlay (#816)
  • Ensure interactability with Popover.Panel contents when using the static prop (#857)
  • Fix initial transition in Transition component (#882)

1.4.1 - 2021-08-30

Fixes

  • Only add type=button to real buttons (#709)
  • Fix escape bug not closing Dialog after clicking in Dialog (#754)
  • Use console.warn instead of throwing an error when there are no focusable elements (#775)

1.4.0 - 2021-07-29

Added

  • Add new Tabs component (#674, #698)
  • Make Disclosure.Button close the disclosure inside a Disclosure.Panel (#682)
  • Add aria-orientation to Listbox, which swaps Up/Down with Left/Right keys (#683)
  • Expose close function from the render prop for Disclosure, Disclosure.Panel, Popover and Popover.Panel (#697)

1.3.0 - 2021-06-21

Added

  • Ensure that you can use Transition.Child when using implicit Transitions (#503)
  • Add new entered prop for Transition and Transition.Child components (#504)

Fixes

  • Add aria-disabled on disabled RadioGroup.Option components (#543)
  • Improve disabled and tabindex prop handling (#512)
  • Improve React peer dependency version range (#544)
  • Improve types for the open prop in the Dialog component (#550)
  • Improve aria-expanded logic (#592)
  • Remove undocumented :className prop (#607)
  • Improve types for Listbox component (#576)
  • Remove explicit :class prop (#608)
  • Improve tree shaking (#602)
  • Improve peer dependencies for react-dom, and for the future version 18 (#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 Dialog components (#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 Dialog components when pressing Escape (#430)

Added

  • Add disabled prop to RadioGroup and RadioGroup.Option (#401)
  • Add defaultOpen prop to the Disclosure component (#447)

1.0.0 - 2021-04-14

Fixes

  • Fixed outside click not re-focusing the Menu.Button (#220, #256)
  • Fixed outside click not re-focusing the Listbox.Button (#220, #256)
  • Force focus in Menu.Items and Listbox.Options from within the component itself (#261)
  • Stop propagating keyboard/mouse events (#261)

Added

  • Add Disclosure, Disclosure.Button and Disclosure.Panel components (#220)
  • Add Dialog, Dialog.Overlay, Dialog.Tile and Dialog.Description components (#220)
  • Add Portal and Portal.Group component (#220)
  • Add Switch.Description component, which adds the aria-describedby to the actual Switch (#220)
  • Add FocusTrap component (#220)
  • Add Popover, Popover.Button, Popover.Overlay, Popover.Panel and Popover.Group components (#220)
  • All components that accept a className, can now also receive a function with the renderProp argument (#257)
  • Add RadioGroup, RadioGroup.Option, RadioGroup.Label and RadioGroup.Description components (#274)

0.3.2 - 2021-04-02

Fixes

  • Fix incorrect type error unique symbol (#248, #240)

0.3.1 - 2021-02-11

Fixes

  • Fix incorrect types path (d557d50)
  • Fix TypeScript render related types (bb68793)

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 Switch has type="button" (#192)
  • Fix useId() hook returning undefined on the client
  • Fix disabled not working when inside a disabled fieldset (#202)
  • Trigger "outside click" behavior on mousedown (#212)
  • Ensure the active MenuItem is scrolled into view
  • Ensure valid Menu accessibility tree (#228)

Added

  • Add Transition events (beforeEnter, afterEnter, beforeLeave and afterLeave) (#57)
  • Add render features + render strategy (static and unmount={true | false}) (#106)
  • Add displayName to all contexts (#175)
  • Add disabled prop to Listbox itself, instead of the Listbox.Button (#229)

Changes

  • Changes the API of the Transition component.
    • We will now always render a div by default (unless you change this using the as={...} prop).
    • The render function prop doesn't expose a ref anymore.
    • Adds unmount prop to the Transition and Transition.Child components.

0.2.0 - 2020-10-06

Added

  • Add Listbox component
  • Add Switch component

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 onClick handling that wasn't working properly in @headlessui/vue to ensure behavior stays the same in this library

Fixes

  • Don't pass disabled prop through to children, only add aria-disabled

0.1.1 - 2020-09-24

Added

  • Everything!