- Fixes
onSelection
doesn't update on prop change issue #142
- Fix blur handler breaking due to unavailability of button
- Added React v17+ in peer dependency
- Breaking: Removed usage of
ReactDOM.findDOMNode
andcreate-react-context
. This will no longer support older versions of React, it now requires^16.3.0
- Removed usage of legacy React context API, the package now use
create-react-context
which uses new context API if available else fallsback to the legacy API.
- Bind
Home
key to jump to first item in the current menu. - Bind
End
key to jump to the last item in the current menu. - Removed use of deprecated React lifecycle methods.
- Add
closeOnBlur
prop.
- Chore: Use loose mode for Babel compilation.
- Breaking: Pass
disabled
attribute toButton
component's inner element if it is a regular HTML element that supportsdisabled
. Considered a potentially breaking (though positive) change because it may affect behavior and styling of your UI.
- Fix keydown behavior of link menu items, so Enter and Space open the link the same way a click does.
- Make prop
onSelection
optional, because it's not necessary if your menu items are link.
- React 16 support.
- Satisfy React deprecation warnings.
- Clicks inside the menu that are not on a
MenuItem
move focus to the firstMenuItem
. - When the menu opens, focus only moves to the first menu item if you opened with keyboard interactions. With a mouse click on the trigger, for example, focus remains on the trigger.
- When the menu opens, move focus to the first item (by default). This represents a change to the WAI-ARIA Menu Button Design Pattern.
- Introduce
dist/
, wheresrc/
now compiles to, since React 15.5+ demandsclass
es, so Babel-compilation. Which is actually a huge overhaul, though in semver it's just a patch.
- Add
onMenuToggle
prop toWrapper
.
- Use
ownerDocument
instead ofdocument.documentElement
in case this is used in an iframe. - Rewrite test suite using Jest.
- Fix UMD build.
- Allow React 15 as a
peerDependency
.
- Update UMD build.
- Add
openMenu()
andcloseMenu()
to API. - Improve (fix) UMD build.
- Allow arbitrary props to pass through to Button, Menu, MenuItem, and Wrapper elements.
- Move
react
andreact-dom
to peer dependencies.
- Update
focus-group
due to important fix there.
- Use
focus-group
for focus management, which includes improving letter navigation. - Switch from
tap.js
toteeny-tap
. - Move UMD build to
umd/
directory that is only distributed with the npm package (available on unpkg).
- Add
disabled
prop toButton
.
- Upgrade to React 0.14.
- Use React's
context
to simplify API. - Add
<Wrapper>
component (replacing the need for the factory functionariaMenuButton()
). - Add
style
prop to all components.
- Better cleanup of Tap.js listeners.
- Key code 91 is not a letter so I should stop treating it like one.
- Avoid presuming that
document
exists, to avoid breakingReact.renderToString()
.
- Allow for the case that selecting a menu item unmounts the menu (mostly by manager timers more intelligently).
- Ignore letter key presses if the letter is paired with
alt
,ctrl
, ormeta
keys. - Use tap.js to improve click-outside-closes behavior: no overlay required anymore, meaning that a click outside can both close the menu and do something else — with both mouse and touch events.
- Allow objects as MenuItem
value
s.
- Nothing really: it was just time to start the real versioning.
- Overlay to enable close-when-clicking-outside for mobile.
- New, more flexible API: provided components are just wrappers around whatever elements they're given.
- Pass
event
tohandleSelection
.
- Add keywords to
package.json
.
- Update build.
- Make class names a little more explicit (change
menuWrapper--trans
tomenuWrapper--transition
andli
tomenuItemWrapper
). - Add
transition
option to factory and removetransition
prop from component.
- Options to customize css classes' component name and namespace.
- Remove the need to pass in React by distinguishing
dist-modules/
with (transpiled) CommonJS modules anddist/
with a UMD library that expects React to be global. - Switch from browserify to webpack for JS module compilation.
- Remove
classnames
dependency.
- Add
dist-modules
for modular consumption. - Upgrade dependencies.
- Initial release.