Add a menu component.

Review Request #13641 — Created March 17, 2024 and submitted — Latest diff uploaded

Information

Ink
master

Reviewers

The menu component provides a drop-down/pop-up or embedded menu,
complete with standard menu items, checkbox menu items, radio menu
items, and separators.

Menu items may contain icons and keyboard shortcuts bound to those
items.

All parts of the menu are built with accessibility in mind, making it
usable by people interacting with assistive technologies like screen
readers.

Much of the implementation was built based on the experiences building
the original menu implementation in Review Board and in the
reviewboard.org website, with enhancements to enable crafting, keyboard
shortcuts, checkbox/radio items, embedded mode, and to fix interaction
issues.

Tested the menu in embedded and drop-down modes.

Tested that keyboard shortcuts are registered and work.

Tested light and dark modes.

Unit tests pass.

Diff Revision 1

This is not the most recent revision of the diff. The latest diff is revision 2. See what's changed.

orig
1
2

Commits

First Last Summary ID Author
Add a menu component.
The menu component provides a drop-down/pop-up or embedded menu, complete with standard menu items, checkbox menu items, radio menu items, and separators. Menu items may contain icons and keyboard shortcuts bound to those items. All parts of the menu are built with accessibility in mind, making it usable by people interacting with assistive technologies like screen readers. Much of the implementation was built based on the experiences building the original menu implementation in Review Board and in the reviewboard.org website, with enhancements to enable crafting, keyboard shortcuts, checkbox/radio items, embedded mode, and to fix interaction issues.
d9e35c22daf8e56abc131dea8230b096b86cad07 Christian Hammond
spec/helpers/dom.ts
src/ink/js/components/views/index.ts
src/ink/js/components/views/menuView.ts
src/ink/js/components/views/tests/menuViewTests.ts
src/ink/js/testing/events.ts
src/ink/js/testing/index.ts
src/ink/less/components/index.less
src/ink/less/components/menu.component.less
src/ink/less/components/schemas/index.less
src/ink/less/components/schemas/menu.schema.less
src/ink/less/themes/default/resources.less
src/ink/less/themes/default/components/index.less
src/ink/less/themes/default/components/menu.theme.less
src/stories/components/menu.stories.ts
Loading...