All notable changes to this project will be documented in this file. See standard-version for commit guidelines.
4.2.0 (2024-11-08)
- add initialized menus to window.AccessibleMenu.menus object (c90e5aa)
- options: add transitionDuration option to allow for closing animations (8729d85), closes #319
- accessibility: close menu when it loses focus (54a3a57), closes #354
- prevent menu toggle on right-click (#355) (8882158)
- bump eslint-plugin-jsdoc from 48.11.0 to 50.0.0 (c7da84a)
- bump jsdom from 24.1.3 to 25.0.1 (e299b85)
- npm: upgrade eslint to latest (3c8a595)
- npm: upgrade vitest to latest (48da54c)
- correct spelling throughout entire project (f4726c2)
4.1.2 (2024-08-01)
- add requestAnimationFrame to focus and blur to make transitioning more consistent (#338) (6add377), closes #337
4.1.1 (2024-08-01)
- npm: remove browser-sync plugin (aa1f65a)
- npm: update husky to latest and remove deprecations (7c3e78d)
4.1.0 (2024-06-25)
- menus: add default submenuItemSelector (7eea6cf), closes #310
- treeview: handle aria-expanded true on load (a01b53c), closes #268
- demo: actually show active buttons (a478d12)
- hover: correct dynamic hover functionality to work like in apg (818cd3b), closes #303
- hover: handle cancelling hover events when re-entering menu items (a999f22), closes #299
- remove deprecated code (80a7697)
- treeview: move pointerleave event to proper spot (53c9442)
- treeview: only close submenus when menu recieves pointerleave event (dfeddbd), closes #315
- bump @eslint/js from 8.57.0 to 9.1.1 (e7bbef6)
- bump globals from 14.0.0 to 15.0.0 (0bb5677)
- npm: remove @babel/eslint-parser from dev dependencies (210eba6)
- release: remove unused updater (e720086)
- api: correct information about how ids are generated (cbc4b68)
- update copyright on license (eab322f)
4.0.1 (2024-03-05)
- allow external projects to properly import src (426e53a)
- lint: remove mjs from linted files (e5ec4b3)
4.0.0 (2024-03-01)
- toggles: any subclasses with custom initialize methods will need to add new setup methods
- validate: renamed isCSSSelector to isQuerySelector
- using new es module config will render any old versions incompatible
- eslint: update ignores (565e876)
- github: build docs for 4.x (7804d48)
- npm: update commitlint to latest (c9ecd6d)
- npm: update dependencies to latest (5525245)
- npm: update lint-staged to latest (6ea9967)
- upgrade dependencies and config to support es modules (74da841)
- demo: update styles and swap to plain css (887cf4c)
- validate: rename and rephrase css selectors to query selectors (de11dcd)
- add api index (7951802)
- add current release to menu (4d3dd94)
- add links to codepens (52f36e1), closes #289
- add upgrade guide for both v3 to v4 and v2 to v3 (059e36c)
- correct capitalization (9ca87e7)
- replace auto generated docs with vitepress docs (08b01c4), closes #130
4.0.0-beta.5 (2023-09-26)
- add cjs support and define exports (2d9d33f)
- actions: update checkout to v4 (a481c5f)
- readme: correct test badge name (f5cb292)
- update push and pr rules (15cbe9f)
4.0.0-beta.4 (2023-06-29)
- accessibility: set submenu menubar roles to menu (c25652c)
4.0.0-beta.3 (2023-06-22)
- controller: use toggle for space and enter (e5d7969), closes #222
- focus: do not reset child menus to correct focusing issues (b92fa0f), closes #209
- hover: correct treeview focus and general hover delay bugs (f613c84)
- menubar: properly focus parent menu current child when closing (0e42d2b)
- npm: update all dependencies to latest (92506d1)
4.0.0-beta.2 (2023-06-21)
4.0.0-beta.1 (2023-06-20)
- update test docs to account for top-link disclosures (de0a72b)
- bump eslint-plugin-jsdoc from 39.9.1 to 40.0.0 (056c0cd)
- bump eslint-plugin-jsdoc from 40.3.0 to 43.0.0 (95e2b48)
- eslint: upgrade options for jsdoc plugin (f3d96c5)
- npm: ensure latest version of vitest to fix issues with githun action tests (a4488e8)
4.0.0-beta.0 (2023-02-09)
- dist file names have changed to *.iife.js and *.es.js
- validation: changes the return type of validation functions from boolean to object
- isEventSupported will no longer be declared in validate
- dist file names have changed to *.iife.js and *.es.js
- validation: changes the return type of validation functions from boolean to object
- isEventSupported will no longer be declared in validate
- validation: changes the return type of validation functions from boolean to object
- isEventSupported will no longer be declared in validate
- isEventSupported will no longer be declared in validate
- validation: changes the return type of validation functions from boolean to object
- add demo environment using vite (07fb0ba), closes #201
- add demo environment using vite (b9329bf), closes #201
- menu: add new TopLinkDisclosureMenu sub-class (93dbca1), closes #168
- menu: add new TopLinkDisclosureMenu sub-class (2481e91), closes #168
- remove deprecated validation function (d710180)
- remove deprecated validation function (418d95b)
- remove deprecated validation function (e746d54)
- remove deprecated validation function (01739ca)
- validation: return a status and message when validation fails (ec16bc5)
- validation: return a status and message when validation fails (4a490b3)
- validation: return a status and message when validation fails (8933f44)
- validation: return a status and message when validation fails (4e2acb4)
- validation: update validation functions to take advantage of new error system (aba9997)
- validation: update validation functions to take advantage of new error system (81d048a)
- validation: update validation functions to take advantage of new error system (d97d7ae)
- validation: update validation functions to take advantage of new error system (b1782b9)
- update references and security policy to reflext 4.x change (f1c639d)
- update references and security policy to reflext 4.x change (c849693)
- update references and security policy to reflext 4.x change (78c2d68)
- update references and security policy to reflext 4.x change (9792aeb)
- github: enable all workflows for 4.x (a08dda1)
- github: enable all workflows for 4.x (e8220fa)
- github: enable all workflows for 4.x (10b6a96)
- github: enable all workflows for 4.x (f06a060)
- replace rollup with vite and update dist to match (d7b6785)
- replace rollup with vite and update dist to match (304f0ac)
- use test run script for prerelease (9b33d1a)
- use test run script for prerelease (6cc60a3)
3.0.5 (2023-02-09)
- enter/space should toggle submenu visibility (6472c69)
- tests: add jest-jsdom-environment to project (3a2a13a)
- bump @commitlint/cli from 15.0.0 to 16.0.1 (692a10b)
- bump @commitlint/cli from 16.3.0 to 17.0.0 (f6aa717)
- bump @commitlint/config-conventional from 15.0.0 to 16.0.0 (9aeca1f)
- bump @commitlint/config-conventional from 16.2.4 to 17.0.0 (b8c93e2)
- bump @rollup/plugin-babel from 5.3.1 to 6.0.0 (447f1af)
- bump docdash from 1.2.0 to 2.0.0 (7346b0f)
- bump eslint-plugin-jsdoc from 37.9.7 to 38.0.3 (3d7666c)
- bump eslint-plugin-jsdoc from 38.1.6 to 39.1.0 (f5ef611)
- bump husky from 7.0.4 to 8.0.1 (40ac409)
- bump jest from 27.5.1 to 28.0.2 (de25db8)
- bump jest from 28.1.3 to 29.0.0 (9fae69c)
- bump jest-environment-jsdom from 28.1.3 to 29.0.0 (ad06a1f)
- bump jest-extended from 1.2.1 to 2.0.0 (66491a2)
- bump jest-extended from 2.1.0 to 3.0.0 (90eff49)
- bump jsdoc from 3.6.11 to 4.0.0 (83f807e)
- bump lint-staged from 12.5.0 to 13.0.1 (58058da)
- add Coldfront Labs Inc. as a sponsor (a867085), closes #188
- badges: update path to workflow badges (fdf72ea), closes #190
- correct incorrect default value for isTopLevel documentation (a47662f)
- correct type in link to DisclosureMenu (a20bed1)
- fix broken WAI ARIA example links (853934e)
- update examples links to working codepens (6837573), closes #191
- update links to aria apg (8f35759)
- update readme to mention accessible-menu-bootstrap-5 (8516528)
3.0.4 (2021-11-30)
- menu: do not trigger hover events for pointer types pen or touch (680abc5)
- bump @commitlint/cli from 14.1.0 to 15.0.0 (97c0335)
- bump @commitlint/config-conventional from 14.1.0 to 15.0.0 (e2db0da)
- bump lint-staged from 11.2.6 to 12.0.2 (bf4f993)
- versioning: automatically update CDN version links in README on release (556961b), closes #145
3.0.3 (2021-11-11)
- accessibility: use pointer events for _handleHover() to ensure device support (a137cb0)
- bump @commitlint/cli from 13.2.1 to 14.1.0 (4d423c0)
- bump @commitlint/config-conventional from 13.2.0 to 14.1.0 (ccf5e8e)
3.0.2 (2021-10-26)
- bump eslint-plugin-jsdoc from 36.1.1 to 37.0.0 (84f57d7)
- contributing: update fork info and consistency (2cc2c0d)
- workflow: add build and lint workflows (efbe3ca)
3.0.1 (2021-10-18)
- accessibilty: replace click/touch events with pointer events (e88ae5f)
- badges: add CodeQL badge (fdcbfb7)
- correct typo (7adac86)
- examples: use proper links to api in basic examples (9c1f075)
- github: add documentation issue template (f43cf42)
- github: add security policy (30915b5)
- github: update issue and pr templates (8f7b322)
- menu: correct documentation on handle click (c0c9894)
- release: update documentation to be accurate as to what happens on release (a95f86c)
- update contributing guidelines to reflect the current state of the project (8fde6b8)
- validate: add deprecation notice to isEventSupported() (04c7cbd)
- bump jest-extended from 0.11.5 to 1.0.0 (85074a7)
- npm: remove deprecated eslint-plugin-standard (c50a001)
3.0.0 (2021-08-03)
- menus: changed the name of all menu event handler methods and toggle expand/collapse methods to begin with _
- menu: merging and changing the names of the DOM element generation methods will require any code referencing the old methods to be updated
- menu: clean up DOM element generating methods (b242c9c), closes #127
- menus: change methods to be protected where needed (780c76b)
- examples: link to new jsfiddles using 3.x (4df02fe), closes #124
- fix path to treeview (92b0501)
- properly mark fields as protected (7d43b50)
- treeview: correct reference to treeview in toggle (aaa4249)
- use docdash templates for api documentation (9433ddf), closes #123
3.0.0-alpha.3 (2021-07-23)
- fields: renamed all class fields to start with _ to mark them as protected
- correct typo in error message during initialization (7190697)
- validation: add custom validation for DisclosureMenus to handle _optionalSupport field (be4f370)
- rollup: add cleanup plugin to remove comments from bundled code (8f15e77)
3.0.0-alpha.2 (2021-07-21)
- menubar: only change the root menubar's tabIndex on init (d993c13)
- menu: only change focusState on click of non-root menus (110e241)
- menu: only setTimout on mouseleave if hoverDelay is > 0 (1158090)
- menus: add textContent fallback to character functions (d6224cb)
- treeview: fix up and down arrow navigation when going through multiple menu levels (2caf071)
- treeview: handle escape key if the root menu can collapse (43d09bf)
- treeview: only trigger character event if no modifier is pressed (51b43a8)
- click should still alter the focusState of menus (c56de2f)
- focus: set parent/child menu focus when setting menu's own focus (ae3b663)
- github: add action for running tests (9cc2de3)
- remove unused test directory and dependencies (a5e2e4b)
- add upgrade guide from v2 to v3 (c3ae67a), closes #107
- menubar: update docs to reflect tabIndex fix (480406f)
- README: add build status badge (00fabf3)
- use jsdoc to generate api documentation (a524ef8)
3.0.0-alpha.1 (2021-06-23)
- toggle: remove immediate initialization from _baseMenuToggle (d3fae61)
3.0.0-alpha.0 (2021-06-18)
-
disclosuremenu: Users expecting the default handling of the option keys will now need to set optionalKeySupport to true
-
validation: merge isHTMLELement, isEvent, isKeyboardEvent, isMenu, and isMenuToggle into isValidInstance and merge isBoolean, isString, and isNumber into isValidType
-
focus: custom menus extending BaseMenu and relying on the menubar's focus functionality will need to extend Menubar.
-
dist: Removing all polyfills and reference to IE in the compiler will break all menus when displayed in IE
-
menus: if any existing implementation relies on sub-menus and toggles to not inherit the root's properties, this will cause major functionality issues.
-
Changing both the file and class names for MenuItem and MenuToggle will break anything relying on those classes.
-
refactor(generation): set menu and children element classes during contruction
-
feat(menus): add specific menu item and toggle classes for each menu type
-
refactor(imports): add .js extention to ensure browser module support
-
test(functional): add browser module testing for available menu types
-
chore: add compiled code
-
test: update tests for hovering and events
- disclosure: add getter/setter for optionalKeySupport (f6ef2d4)
- disclosuremenu: add the ability to toggle optional keyboard support (18c0fa7), closes #104
- dist: add full esm support and kill IE support (8610728)
- hover: change isHoverable to hoverType to handle dynamic hovers (2cf40aa), closes #100
- initialization: add a flag to allow/disallow auto initialization for subclass menus (0fc701f)
- menu: add new method to focus a child of a given index (cea3352)
- menu: add shoudlFocus getter to control moving focus in the DOM (68ca8a6)
- menu: have focus follow hover when hover is set to dynamic (a2e7e1a), closes #100
- subclass: add Treeview subclass (e25c93f), closes #105
- toggle: allow expand and collapse methods to be silent (8282e93)
- implement browser module support (0bab26c)
- event: make sure key is not a number before using .match() (d8b0f02)
- menu: add basic error prevention when setting the currentChild (ce1b431)
- menu: add blurSiblings method to menu items to fix click issues (5b1f7f2)
- menu: ensure proper event type is set for menus (a4f7505)
- menu: manually trigger click action on space/enter (559afc8)
- module: resolve circular dependencies (5278b1e), closes #95
- treeview: correct toggle class name (e96ffaa)
- validation: ensure error message only use constructor's name (80ccdcc)
- validation: fail isCSSSelector is null is passed (15c34a3)
- validation: make isEventSupported return false if either checks fail (ecd9f88)
- validation: make isValidClassList fail if array is passed instead of object (c401b70)
- menu: clean up handeClick for all menus (6bdfdd0)
- validation: reduce validation functions into instance or type validation (42bf94e)
- lint: pass ignore file to prettier during lint-staged (1cdfbd8)
- npm: package entire src directory (02bca65)
- use specific rollup file to allow multiple exports on index (82a3f48)
- editor: add specific editor config (fd44608)
- lint: use prettier as a stand-alone formatter (aedffb1)
- npm: add lint-staged for faster commits (1874fb3)
- npm: add new files to packaged files (135d7b2)
- npm: cleanup package and add files (9ec6ca6)
- npm: rename test build command (8bd9706)
- npm: upgrade husky to 6.0 (ab7579a)
- prettier: specifically set the prettier options that are cared about (4f7c5af)
- classes: correct error in focus state for closing toggles (93cc9ca)
- add information about dist directory and what is provided (0865987)
- minor corrections to comments (9964af8)
- remove reference to open/close classes for menu toggles (247dff2)
- basics: update basic exmaples to reflect changes (3a01856)
- classes: update all class documentation to reflect changes made (b5f06d4)
- readme: update general information (ef079f1)
- focus: move focus methods for menubar into the menubar subclass (38230a8)
- menu: make sure all parameters are valid before initialization (ae694c7)
- menus: use root props for sub-menus and toggles (4aea368), closes #86
- toggle: rearrange actions in open, preview, and close to make more sense (f26e120)
- validation: make classlist validation more useful (f8edd77)
- validation: rework validation to be more descriptive and helpful (7456490)
- validation: use proper name for open/close class validation (6d5073c)
2.2.0 (2021-03-24)
- event: check if menu isHoverable before running event code (638778d), closes #84
- event: properly pass event object to keydown and keyup events (fc281bf)
- menubar: wait for menu to render before focussing child (21f50ee), closes #99
- polyfill: add CustomEvent constructor polyfill for IE (d08cb2d), closes #97
- mention new expand/collapse events in the toggle documentation (f65ce32)
- npm: update dev dependencies to latest (accc5ba)
2.1.1 (2020-11-05)
- npm: update dependencies and security violations (d05e1c6)
- polyfills: add polyfill for String.prototype.endsWith() (82b345a)
2.1.0 (2020-07-25)
- menu: allow for empty open and close classes (a58b1e3), closes #72
- menu: allow for multiple open and close classes (b4bc19f), closes #73
- events: make click handling a lot more strict (7f91256)
- toggle: allow for multiple open/close classes in IE with loop (608450d), closes #72
- deps-dev: bump standard-version from 7.1.0 to 8.0.1 (7b6a2c2), closes #82
- deps-dev: bump standard-version from 7.1.0 to 8.0.1 (0fc954f)
2.0.0 (2020-05-21)
- menutoggle: Bootstrap users will need to adjust their custom styles to handle not having the parent's class altered when menus are toggled
- menu: AccessibleMenu is no longer a constructor, so uses will have to use AccessibleMenu.Menubar
- menu: Anything relying on the menu.js file will need to be updated to _baseMenu.js
- menu: Using old getters/setter will result in an error
- events: use keyup events instead of keydown events (4b8a5ad)
- menu: add ability to make submenu's open/close on hover (6b30546)
- menu: add DisclosureMenu class (9ade527), closes #61
- menu: add menuLinkSelector property to Menu class (6b4e1f2), closes #61
- menu: add new methods for setting dom elements in the menu (f55951c)
- menu: add support for a closed class (0668b56)
- menu: remove focus changing when user is using a mouse (0b02fb0)
- menu: split out menubar functionality into it's own class (3466db1), closes #61
- events: use touchup and mouseup events instead of click (24f8eaf)
- ie: add string.prototype.startsWith polyfill (181194b)
- importing: update index to match new structure (5e7a09b)
- menu: pass hoverDelay to all submenus (4eca2aa)
- package: adjust files (4bd259a)
- correct paths (ee62bc3)
- menubar: ensure escape will always close open menus (c42d2e5)
- events: add menu-level event tracking (338a2b0), closes #61
- menu: set default menuItemSelector to li (98e7ec5)
- toggle: clean up close function and create collapse (131d22d)
- toggle: only add button role if toggle isn't a button (95f2cfb)
- validation: condense more of the validation (d9064ac)
- validation: move validation to its own file for code reuse (9df795d)
- update dependencies and config (aa10023)
- update documentation for 2.0.0 (794b553)
- update jsdocs to have proper default values declared (e7335a1)
- events: move toggle events into main menu (04fcc98), closes #61
- menu: change constructors, getters, and setters for menus (3800046), closes #61
- menu: rename Menu to BaseMenu (6ad7ec6), closes #61
- menutoggle: only alter controlled menu classes on open/close (8099df8)
1.1.0 (2020-03-09)
- npm: fix commitizen (244e5b1)
1.0.6 (2020-02-26)
1.0.5 (2020-02-14)
1.0.4 (2019-12-15)
- menu: keep focus on root item after left/right arrows (f0d1499), closes #50
- menu: prevent default event on arrow up/down on top level menus (d9410f3), closes #47
- npm: disallow .files from being packaged (73e0579)
- npm: ensure build is run and committed with release (a9f03ff)
- main: change main.js to index.js to keep to internal standard (c4091ab)
1.0.3 (2019-11-25)
- menu: fix typo in build (8a9a72d)
1.0.2 (2019-11-25)
- menu: correct type in tab event (d0d9420)
1.0.1 (2019-11-24)
- setup: remove notes on initialization (7aa1f4d)
1.0.0 (2019-11-24)
- menu: add proper event handling for older browsers (ef62b61), closes #16
- menu: close top-level dropdowns on click away (5c9ae7c), closes #42
- menu: fix focus on exit (576b540)
- menu: focus menu controller on exit (a89539c)
- toggle: handle non-existant parent menu properly (82e0156)
- npm: update dependencies (2b18bbb)
- contribution: keep all contributing docs in contributing.md (9c252c0)
- general: add class and usage documentation (b007134), closes #38
- readme: add basic instructions for IE/Edge support (fa0e3ee), closes #37
- readme: add browser support icons (081ce1b)
- menu: allow submenu selectors to be null (db1c4d8)
- menu: overhaul keydown handling (ccf3ddc), closes #43 #44
- toggle: move click event into handleClick (337a275)
1.0.0-beta.4 (2019-11-22)
- menu: Constructor params converted to object
1.0.0-beta.3 (2019-11-21)
1.0.0-beta.2 (2019-11-20)
- menu: add aria-controls to menu toggles (ed3cfd2), closes #9
- menu: add aria-label/labelledby to submenus (6f6f2ac), closes #10
- menu: add basic type error handling (b705d47), closes #26
- menu: compile menu through babel (46d4efd)
- npm: add babel (4910dcc)
- contributing: update contributing guidelines with more information (8b7563b)
- development: add specific release documentation (84f908c)
- menu: add usage documentation (5552e68), closes #25
1.0.0-beta.1 (2019-11-18)
1.0.0-beta.0 (2019-11-17)
1.0.0-alpha.1 (2019-11-17)
- menu: The submenuItem class no longer exists, and the menuToggle class has been added.
- readme: add release and license badges (cea2814)
- menu: replace submenuItem with menuToggle (e43ad22)