Add RB.MenuButtonView, for creating single or split buttons with menus.
Review Request #1874 — Created March 3, 2020 and updated — Latest diff uploaded
This introduces a new `RB.MenuButtonView` component, which uses the new `.rb-c-menu-button` CSS component. This offers the ability to create a single button that works as a drop-down menu, or a split button that has a primary action and a separate drop-down button. This is the successor to `RB.SplitButtonView`, which is now deprecated. There are still differences, in that `RB.SplitButtonView` allows for specifying IDs on menu items, but as that's not entirely useful in practice, the functionality has not been carried over. This improves upon `RB.SplitButtonView` in plenty of other ways. It can now function in a split mode or in a single-button mode. It has ARIA attributes and keyboard navigation (though `RB.SplitButtonView` now inherits this). It also now smartly pops the menus either above or below the button depending on space, rather than having to provide that detail during construction. Unit tests cover the majority of the rendering, accessibility, and events. Testing Done: Tested `RB.MenuButtonView` in single-button and split-button modes. Tested all mouse and keyboard navigation. Tested legacy usage of `RB.SplitButtonView`. Checked the elements in the ARIA tree to make sure they appeared sane. Unit tests pass. Reviewed at https://reviews.reviewboard.org/r/10907/