Skip to content

Latest commit

 

History

History
598 lines (424 loc) · 39.4 KB

CHANGELOG.md

File metadata and controls

598 lines (424 loc) · 39.4 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.

Added

  • Add immediate prop to Combobox for immediately opening the Combobox when the input receives focus (#2686)
  • Add virtual prop to Combobox component (#2779)

Fixed

  • Cancel outside click behavior on touch devices when scrolling (#3266)
  • Fix restoring focus to correct element when closing Dialog component (#3365)
  • Cleanup process in Combobox component when using virtualization (#3495)

1.7.22 - 2024-05-08

Fixed

  • Don’t cancel touchmove on input elements inside a dialog (#3166)
  • Ensure clicking a ComboboxOption after filtering the options, correctly triggers a change (#3180)

1.7.21 - 2024-04-26

Fixed

  • Prevent closing the Combobox component when clicking inside the scrollbar area (#3104)
  • Don’t unmount portal targets used by other portals (#3144)

1.7.20 - 2024-04-15

Fixed

  • Expose disabled state on Tab component (#2918)
  • Prevent default behaviour when clicking outside of a DialogPanel (#2919)
  • Don’t override explicit disabled prop for components inside MenuItem (#2929)
  • 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)

1.7.19 - 2024-02-07

  • Fix Combobox activeOption render prop (#2973)

1.7.18 - 2024-02-02

Added

  • Allow users customize ID generation (#2959)

1.7.17 - 2024-01-08

Fixed

  • Don't call Dialog's onClose twice on mobile devices (#2690)
  • Fix Portal SSR hydration mismatches (#2700)
  • Ensure hidden TabPanel components are hidden from the accessibility tree (#2708)
  • Add support for role="alertdialog" to Dialog component (#2709)
  • Ensure blurring the ComboboxInput component closes the Combobox (#2712)
  • Allow button to be in nested components in PopoverButton (#2715)
  • Don't overwrite user-defined template refs when rendering (#2720)
  • Fix missing data-headlessui-state attribute when as="template" (#2787)
  • Fix VoiceOver bug for Listbox component in Chrome (#2824)
  • Fix outside click detection when component is mounted in the Shadow DOM (6846231)
  • Fix CJS types (#2880)
  • Fix error when transition classes contain new lines (#2871)

1.7.16 - 2023-08-17

Fixed

  • Fix form elements for uncontrolled <Listbox multiple> and <Combobox multiple> (#2626)
  • Use correct value when resetting <Listbox multiple> and <Combobox multiple> (#2626)
  • Render MainTreeNode in PopoverGroup 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)
  • Improve SSR of the Disclosure component (#2645)
  • Fix incorrectly focused ComboboxInput component on page load (#2654)
  • Improve resetting values when using the nullable prop on the Combobox component (#2660)
  • Prevent scrolling when focusing a tab (#2674)

1.7.15 - 2023-07-27

Fixed

  • Ensure the caret is in a consistent position when syncing the Combobox.Input value (#2568)
  • Improve "outside click" behaviour in combination with 3rd party libraries (#2572)
  • Improve performance of Combobox component (#2574)
  • 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.14 - 2023-06-01

Fixed

  • Fix memory leak in Popover component (#2430)
  • Ensure FocusTrap is only active when the given enabled value is true (#2456)
  • Ensure the exposed activeIndex is up to date for the Combobox component (#2463)
  • 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.13 - 2023-04-12

Fixed

  • Fix focus styles showing up when using the mouse (#2347)
  • Disable ComboboxInput when its Combobox is disabled (#2375)
  • Add FocusTrap event listeners once document has loaded (#2389)
  • Don't scroll-lock Dialog when wrapping transition isn't showing (#2422)
  • Ensure DOM ref is properly handled in the RadioGroup component (#2424)
  • 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.12 - 2023-03-03

Fixed

  • Enable native label behavior for Switch where possible (#2265)
  • Allow root containers from the Dialog component in the FocusTrap component (#2322)
  • Cleanup internal TypeScript types (#2329)
  • Fix restore focus to buttons in Safari, when Dialog component closes (#2326)
  • Ensure hooks in the FocusTrap component only apply when mounted (#2331)

1.7.11 - 2023-02-24

Fixed

  • Ensure the main tree and parent Dialog components are marked as inert (#2290)
  • Fix nested Popover components not opening (#2293)
  • Fix change event incorrectly getting called on blur (#2296)
  • Fix Dialog cleanup when the Dialog becomes hidden (#2303)

1.7.10 - 2023-02-15

Fixed

  • Don’t fire afterLeave event more than once for a given transition (#2267)
  • 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)
  • Start cleanup phase of the Dialog component when going into the Closing state (#2264)

1.7.9 - 2023-02-03

Fixed

  • Don't break overflow when multiple dialogs are open at the same time (#2215)

1.7.8 - 2023-01-27

Changed

  • Adjust SSR detection mechanism (#2102)

Fixed

  • Ensure disabled="false" is not incorrectly passed to the underlying DOM Node (#2138)
  • Fix arrow key handling in Tab (after DOM order changes) (#2145)
  • Fix Tab key with non focusable elements in Popover.Panel (#2147)
  • 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)
  • Ensure Popover doesn't crash when focus is going to window (#2019)
  • Ensure shift+home and shift+end works as expected in the ComboboxInput component (#2024)
  • Improve syncing of the ComboboxInput value (#2042)
  • Fix crash when using multiple mode without value prop (uncontrolled) for Listbox and Combobox components (#2058)
  • Allow passing in your own id prop (#2060)
  • Add null as a valid type for Listbox and Combobox in Vue (#2064, #2067)
  • Improve SSR for Tabs in Vue (#2068)
  • 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

  • Expose close function for Menu and MenuItem components (#1897)
  • Fix useOutsideClick, add improvements for ShadowDOM (#1914)
  • Prevent default slot warning when using a component for as prop (#1915)
  • Fire ComboboxInput's @change handler when changing the value internally (#1916)

1.7.3 - 2022-09-30

Fixed

  • Call displayValue with a v-model of ref(undefined) on ComboboxInput (#1865)
  • Improve Portal detection for Popover components (#1842)
  • Fix crash when children are undefined (#1885)
  • 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 ComboboxInput while composing (#1850)
  • Ensure we handle the static prop in TabPanel components correctly (#1856)

1.7.1 - 2022-09-12

Fixed

  • Improve iOS scroll locking (#1830)
  • Ensure Tab order stays consistent, and the currently active Tab stays active (#1837)

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)
  • Improve outside click on Safari iOS (#1712)
  • Improve event handler merging (#1715)
  • Fix incorrect scrolling to the bottom when opening a Dialog (#1716)
  • Don't overwrite element.focus() on PopoverPanel (#1719)
  • Improve Combobox re-opening keyboard issue on mobile (#1732)
  • Only select the active option when using "singular" mode when pressing tab in the Combobox component (#1750)
  • Only restore focus to the MenuButton if necessary when activating a MenuOption (#1782)
  • Don't scroll when wrapping around in focus trap (#1789)
  • Improve accessibility when announcing ListboxOption and ComboboxOption components (#1812)
  • Expose the value from the Combobox and Listbox components slot (#1822)
  • Improve scroll lock on iOS (#1824)

1.6.7 - 2022-07-12

Fixed

  • Prevent cancelling transitions due to focus trap (#1664)

1.6.6 - 2022-07-07

Fixed

  • Fix getting Vue dom elements (#1610)
  • Ensure CMD+Backspace works in nullable mode for Combobox component (#1617)
  • Properly merge incoming props with own props (#1651)
  • Ensure PopoverPanel can be used inside transition (#1653)

1.6.5 - 2022-06-20

Fixed

  • Support slot children when using as="template" (#1548)
  • Improve outside click of Dialog component (#1546)
  • Detect outside clicks from within iframe elements (#1552)
  • Only render the Dialog on the client (#1566)
  • Improve Combobox input cursor position (#1574)
  • Fix scrolling issue in Tab component when using arrow keys (#1584)
  • Fix missing aria-expanded for ComboboxInput component (#1605)

1.6.4 - 2022-05-29

Fixed

  • Ensure Escape propagates correctly in Combobox component (#1511)
  • Remove leftover code in Combobox component (#1514)

1.6.3 - 2022-05-25

Fixed

  • Allow to override the type on the ComboboxInput (#1476)
  • Ensure the the <PopoverPanel focus> closes correctly (#1477)
  • Only render the FocusSentinel if required in the Tabs component (#1493)

1.6.2 - 2022-05-19

Fixed

  • Ensure DialogPanel exposes its ref (#1404)
  • Ignore Escape when event got prevented in Dialog component (#1424)
  • Improve FocusTrap behaviour (#1432)
  • Simplify Popover Tab logic by using sentinel nodes instead of keydown event interception (#1440)
  • Ensure the PopoverPanel is clickable without closing the Popover (#1443)
  • Improve "Scroll lock" scrollbar width for Dialog component (#1457)
  • Don't throw when SSR rendering internal portals in Vue (#1459)

1.6.1 - 2022-05-03

Fixed

  • Manually passthrough attrs for Combobox, Listbox and TabsGroup component (#1372)
  • Fix enter transitions in Vue (#1395)

1.6.0 - 2022-04-25

Fixed

  • Make sure that the input syncs when the combobox closes (#1137)
  • Ensure that you can close the Combobox initially (#1148)
  • Fix Dialog usage in Tab component (#1149)
  • Ensure links are triggered inside PopoverPanel components (#1153)
  • Fix hover scroll issue in Listbox, Combobox and Menu components (#1161)
  • Guarantee DOM sort order when performing Listbox, Combobox and Menu actions (#1168)
  • Improve outside click support (#1175)
  • Reset ComboboxInput when the value gets reset (#1181)
  • Adjust active item/option index on Listbox, Combobox and Menu components (#1184)
  • Fix re-focusing element after close (#1186)
  • Fix Dialog cycling (#553)
  • 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)
  • Don't drop initial character when searching in Combobox (#1223)
  • Use ownerDocument instead of document (#1158)
  • Fix, re-expose el from each component (#1230)
  • Ensure focus trapping plays well with the Tab and Dialog components (#1231)
  • Improve syncing of ComboboxInput value (#1248)
  • Fix tree-shaking support (#1247)
  • Stop propagation on the PopoverButton (#1263)
  • Fix incorrect closing while interacting with third party libraries in Dialog component (#1268)
  • Mimic browser select on focus when navigating via Tab (#1272)
  • Resolve initialFocusRef correctly (#1276)
  • Ensure that there is always an active option in the Combobox (#1279, #1281)
  • Support classic form submissions in RadioGroup, Switch and Combobox components (#1285)
  • Fix nullable prop for Vue (2b109548b1a94a30858cf58c8f525554a1c12cbb)
  • Prefer incoming open prop over OpenClosed state (#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 DialogBackdrop and DialogPanel components (#1333)

1.5.0 - 2022-02-17

Fixed

  • Ensure correct order when conditionally rendering MenuItem, ListboxOption and RadioGroupOption (#1045)
  • 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)

Added

1.4.3 - 2022-01-14

Fixes

  • Fix missing key binding in examples (#1036, #1006)
  • Fix slice => splice typo in Tabs component (#1037, #986)
  • Ensure correct DOM node order when performing focus actions (#1038)

Added

  • Allow for TabGroup 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 DialogOverlay (#816)
  • Fix SSR crash because of useWindowEvent (#817)
  • Improve tree shaking (#859)
  • Add type="button" to Tabs component (#912)

1.4.1 - 2021-08-30

Fixes

  • Only add type=button to real buttons (#709)
  • Add Vue emit types (#679, #712)
  • 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 DisclosureButton close the disclosure inside a DisclosurePanel (#682)
  • Add aria-orientation to Listbox, which swaps Up/Down with Left/Right keys (#683)
  • Expose close function from the scoped slot for Disclosure, DisclosurePanel, Popover and PopoverPanel (#697)

1.3.0 - 2021-06-21

Added

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

Fixes

  • Add aria-disabled on disabled RadioGroup.Option components (#543)
  • Improve disabled and tabindex prop handling (#512)
  • Improve reactivity when destructuring from props (#512)
  • Improve aria-expanded logic (#592)

1.2.0 - 2021-05-10

Added

  • Introduce Open/Closed state, to simplify component communication (#466)

1.1.1 - 2021-04-28

Fixes

  • Fix form submission within Dialog (#460)
  • Fix TypeScript types for Listbox and Switch (#459, #461)

Added

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

1.1.0 - 2021-04-26

Fixes

  • Improve search, make searching case insensitive (#385)
  • Fix unreachable RadioGroup (#401)
  • Fix RadioGroupOption value type (#400)
  • Fix closing nested Dialog components when pressing Escape (#430)

Added

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

1.0.0 - 2021-04-14

Fixes

  • Fix incorrect DOM node from ref (#249)
  • Stop propagating keyboard/mouse events (#282)

Added

  • Add SwitchDescription component, which adds the aria-describedby to the actual Switch (#220)
  • Add Disclosure, DisclosureButton, DisclosurePanel components (#282)
  • Add Dialog, DialogOverlay, DialogTitle and DialogDescription components (#282)
  • Add Portal and PortalGroup components (#282)
  • Add FocusTrap component (#282)
  • Add Popover, PopoverButton, PopoverOverlay, PopoverPanel and PopoverGroup components (#282)
  • Add RadioGroup, RadioGroupOption, RadioGroupLabel and RadioGroupDescription components (#282)
  • Add TransitionRoot and TransitionChild components (#326)

0.3.1 - 2021-04-02

Fixes

  • Fix broken behaviour since Vue 3.0.5 (#279)

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)
  • Added emits property to Vue components (#199)
  • Fix disabled not working when inside a disabled fieldset (#202)
  • Trigger "outside click" behaviour on mousedown (#212)
  • Ensure the active MenuItem is scrolled into view
  • Ensure valid Menu accessibility tree (#228)

Added

  • Add render features + render strategy (static and unmount={true | false}) (#106)
  • Add disabled prop to Listbox itself, instead of the ListboxButton (#229)

0.2.0 - 2020-10-06

Added

  • Add Listbox component
  • Add Switch component

0.1.3 - 2020-09-29

Fixes

  • Fix an issue where you couldn't click on menu items that were links.
  • Fix outside click behaviour. 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 behaviour.

0.1.2 - 2020-09-25

Fixes

  • Fix issue where button MenuItem instances didn't properly fire click events
  • Don't pass disabled prop through to children, only add aria-disabled

0.1.1 - 2020-09-24

Added

  • Everything!