# Changelog
## 8.11.3
### Patch Changes
- 9947461: Bump focus-trap dependency to v6.9.4 to get typings fix.
- 519e5a5: Fix setReturnFocus option as function not being passed node focused prior to activation.
## 8.11.2
### Patch Changes
- 7547d93: Bumps focus-trap to v6.9.3 to pick-up some small bug fixes from underlying tabbable.
## 8.11.1
### Patch Changes
- 040813a: Bumps focus-trap to v6.9.1 to pick-up a fix to tabbable in v5.3.2 regarding the `displayCheck=full` (default) option behavior that caused issues with detached nodes.
## 8.11.0
### Minor Changes
- 7495680: Bump focus-trap to v6.9.0 to get bug fixes and new features to help fix some bugs.
### Patch Changes
- 7495680: Fix onDeactivate, onPostDeactivate, and checkCanReturnFocus options not being called consistently on deactivation.
- 7495680: Fix focus not being allowed to remain on outside node post-deactivation when `clickOutsideDeactivates` is true or returns true.
## 8.10.0
### Minor Changes
- 659d44e: Bumps focus-trap to v6.8.1. The big new feature is opt-in Shadow DOM support in focus-trap (in tabbable), and new tabbable options exposed in a new `focusTrapOptions.tabbableOptions` configuration option.
- ⚠️ This will likely break your tests **if you're using JSDom** (e.g. with Jest). See [testing in JSDom](./README.md#testing-in-jsdom) for more info.
## 8.9.2
### Patch Changes
- 83e283c: Update focus-trap to v6.7.3 for bug fix related to elements with a negative `tabindex`.
## 8.9.1
### Patch Changes
- 3eb9421: Bump focus-trap to v6.7.2 for bug fix.
## 8.9.0
### Minor Changes
- 83097a5: Delay trap creation until it should be active. This is a change in behavior, however it should not break existing behavior. The delay now allows you to set `active=false` until you have the `focusTrapOptions` set correctly. [#539](https://github.com/focus-trap/focus-trap-react/issues/539)
### Patch Changes
- 16d1ae1: Fix bug where global document was being accessed instead of first checking for `focusTrapOptions.document` option. [#539](https://github.com/focus-trap/focus-trap-react/issues/539)
## 8.8.2
### Patch Changes
- 08a9449: Use `preventScroll` option on deactivation if returning focus.
## 8.8.1
### Patch Changes
- a2806a0: Fix SSR issues when accessing `document` object (#482)
## 8.8.0
### Minor Changes
- c8e46c2: Support new `document` option introduced in focus-trap v6.7.0 (#460)
- 5ee587c: Bump focus-trap dependency to v6.7.1
## 8.7.1
### Patch Changes
- 111a27f: Update focus-trap to v6.6.1, to get tabbable at v5.2.1, to get bug fix for disabled fieldsets.
## 8.7.0
### Minor Changes
- 7fbe8ca: Update to support new features in `focus-trap@6.6.0` including `initialFocus` which can now be false to prevent initial focus, and `escapeDeactivates` which can now alternately be a function that returns a boolean instead of a straight boolean.
## 8.6.0
### Minor Changes
- 5292ae8:
- Adding support for new focus-trap options from focus-trap v6.5.0: `checkCanFocusTrap()`, `onPostActivate()`, `checkCanReturnFocus()`, and `onPostDeactivate()`.
- Adding support (bug fix) for existing focus-trap `setReturnFocus` option that had thus far been ignored, with focus-trap-react always returning focus to the previously-focused element prior to activation regardless of the use of the `setReturnFocus` option. The option is now respected the same as it is when using focus-trap directly.
### Patch Changes
- 24704c7: Bump focus-trap dependency to 6.5.1 for bug fix to onPostDeactivate.
## 8.5.1
### Patch Changes
- b8d7071: Bump focus-trap dependency to 6.5.0 to get new features
## 8.5.0
### Minor Changes
- 6ee37fb: Bump focus-trap from 6.3.0 to 6.4.0. There should be no changes in behavior as a result of this upgrade.
## 8.4.2
### Patch Changes
- f9a6d1a: Throw an error if a Fragment is given as the child container (currently, it appears to work, but the trap is actually not activated because focus-trap can't find the DOM element for the Fragment "container"). (Fixes #268)
## 8.4.1
### Patch Changes
- a4c3105: Update PropTypes for clickOutsideDeactivates to match latest focus-trap.
## 8.4.0
### Minor Changes
- 8d58bc8: Bump focus-trap to v6.3.0
## 8.3.2
### Patch Changes
- 53fa056: Update `focus-trap` dependency to new patch release v6.2.2 for bug fix to multi-container traps.
## 8.3.1
### Patch Changes
- 5d70831: Bump focus-trap to [6.2.1](https://github.com/focus-trap/focus-trap/blob/master/CHANGELOG.md#621) for bug fixes.
## 8.3.0
### Minor Changes
- c4e4837: Remove the need for a child, update typings, update docs:
- Remove the need for a child in `` when `containerElements` is used. The child was already being ignored anyway (when `containerElements` is used; if the prop is not used, then a single child is still required).
- Update the typings related to the `children` prop to make it optional. Prop-types already had `children` as optional, however the use of `React.Children.only()` in all cases was still forcing the presence of a single child. That's no longer the case.
- Add additional notes about the use of the `containerElements` prop in the documentation.
### Patch Changes
- 0836c6d: Fixing a bug where the focus trap may not have been set before it is unmounted #184
## 8.2.0
### Minor Changes
- 76ed007: Add ability to pass containerElements to focus-trap #179. This PR is made possible because of https://github.com/focus-trap/focus-trap/pull/217 and the released version 6.2.0 of focus-trap.
## 8.1.1
### Patch Changes
- 925dfd2: Update the react and react-dom peer dependencies from `^16.0.0` to `>=16.0.0` since this library works with React 17 as well as React 16.
- 01653da: Fix focus not always returning to correct node after setting `active` prop to `false`. #139
- 95f8ab6: Update focus-trap dependency from 6.1.2 to [6.1.4](https://github.com/focus-trap/focus-trap/blob/master/CHANGELOG.md#614). Bug fixes only.
## 8.1.0
### Minor Changes
- 5994a8c: Bump focus-trap from 6.0.1 to 6.1.0. This new version of focus-trap provides a new `delayInitialFocus` flag that can be used to further customize trap behavior.
### Patch Changes
- 0562ef0: Change `prepublishOnly` script to `prepare` script so that it also runs if someone installs the package directly from the git repo (e.g. from your work in which you fixed a bug or added a feature you're waiting to get merged to master and published to NPM).
## 8.0.0
### Major Changes
- 513a2d3: **BREAKING**: Updated [focus-trap](https://github.com/focus-trap/focus-trap/blob/master/CHANGELOG.md#600) dependency to new 6.0.1 release, which contains breaking changes. This update means it's also now using the latest version of [tabbable](https://github.com/focus-trap/tabbable/blob/master/CHANGELOG.md#500), which also has breaking changes. See respective CHANGELOGs for details.
### Patch Changes
- 35040fa: Remove call for maintainers. @stefcameron and @maraisr hope to take up the charge. Additional help and contributors are most welcome for anyone interested!
- 513a2d3: Changed code formatting to use dangling commas where ES5 supports them.
## 7.0.1
- Fix: PropTypes definition now supports server-side rendering. [#83](https://github.com/davidtheclark/focus-trap-react/issues/83)
## 7.0.0
- Add: Prop types for ``.
- Update: `focus-trap` dependency from 4.0.2 to [5.1.0](https://github.com/davidtheclark/focus-trap/blob/master/CHANGELOG.md#510) for the latest features/fixes it provides. [#71](https://github.com/davidtheclark/focus-trap-react/issues/71)
- **BREAKING** Update: Only React 16.0+ is supported going forward. [#55](https://github.com/davidtheclark/focus-trap-react/issues/55)
- **BREAKING** Update: All dependencies updated to their latest versions.
- Fix: `children`'s type is `React.ReactNode`, not `React.ReactElement`. [#66](https://github.com/davidtheclark/focus-trap-react/issues/66)
- Fix: Allow mutable object refs to be used for FocusTrap child. [#72](https://github.com/davidtheclark/focus-trap-react/issues/72)
- Fix: `specifiedFocusTrapOptions.includes(optionName)` statement in `componentDidMount()` was causing an exception because `includes()` is not a function defined on `Object`.
## 6.0.0
- Update focus-trap to 4.0.2, which includes [a queue of traps](https://github.com/davidtheclark/focus-trap/blob/master/CHANGELOG.md#400), so when a trap is paused because another trap activates, it will be unpaused when that other trap deactivates. If Trap A was automatically paused because Trap B activated (existing behavior), when Trap B is deactivated Trap A will be automatically unpaused (new behavior).
## 5.0.1
- Fix TypeScript declarations.
## 5.0.0
- **BREAKING:** `` now expects exactly one child element which can be any HTML element or other React component that contains focusable elements. The `tag` prop has been removed, as has support for additional props that are passed through to the `tag`, because it is no longer necessary: you should provide your own element, with whatever props you want, as a child of ``.
## 4.0.1
- Fix bug that caused `returnFocusOnDeactivate: true` to be ignored when using the `active` prop to activate & deactivate the focus trap.
## 4.0.0
- Update focus-trap to 3.0.0, which includes [a couple of behavior changes](https://github.com/davidtheclark/focus-trap/blob/master/CHANGELOG.md#300). The key change is that focus management has been changed so that you can include tricky focusable elements like radio groups, iframes, and shadow DOM components in your trap — as long as the first and last focusable elements in the trap can still be detected by [Tabbable](https://github.com/davidtheclark/tabbable).
- An effect of this change is that _positive tabindexes are no longer guaranteed to work as expected_. You should avoid these.
## 3.1.4
- Re-add TypeScript declarations.
## 3.1.3
- Remove `componentWillMount` usage.
## 3.1.2
- Fix TypeScript declarations so props are available on the imported namespace.
## 3.1.1
- Fix React import in TypeScript declarations.
## 3.1.0
- Add TypeScript declarations.
## 3.0.5
- Prevent error in IE edge cases when the previously focused element does not have a `focus()` function.
## 3.0.4
- Allow React v16 peer dependency.
## 3.0.3
- Introduce `dist/focus-trap-react.js`, where `src/` now compiles to, since React 15.5+ demands `class`es, so Babel-compilation. Which is actually a huge overhaul, though in semver it's just a patch.
## 3.0.2
- Fix handling of `focusTrapOptions.returnFocusOnDeactivate` for React-specific kinks like `autoFocus` on inputs.
## 3.0.1
- Upgrade `focus-trap` for important bug fix.
## 3.0.0
- Introduce `focusTrapOptions` prop (and remove redundancies).
- Upgrade to `focus-trap` v2.
## 2.1.1
- Allow React 15 as peer dependency.
## 2.1.0
- Upgrade `focus-trap` to add `escapeDeactivates` and `clickOutsideDeactivates` props.
- Allow arbitrary props passed through to the element itself.
## 2.0.1
- Move `react` to `peerDependencies` and remove `react-dom` dependency.
## 2.0.0
- Upgrade to React 0.14 and its companion ReactDOM.
## 1.0.0
- Initial release.