@y14e/menu 1.5.6 → 1.5.8

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.md CHANGED
@@ -10,16 +10,16 @@ npm i @y14e/menu
10
10
 
11
11
  ```ts
12
12
  // npm
13
- import Menu from '@y14e/menu@1.5.6';
13
+ import Menu from '@y14e/menu@1.5.8';
14
14
  // with middleware
15
- import Menu, { flip, offset, shift } from '@y14e/menu@1.5.6';
15
+ import Menu, { flip, offset, shift } from '@y14e/menu@1.5.8';
16
16
 
17
17
  // CDNs
18
- import Menu from 'https://esm.sh/@y14e/menu@1.5.6';
18
+ import Menu from 'https://esm.sh/@y14e/menu@1.5.8';
19
19
  // or
20
- import Menu from 'https://cdn.jsdelivr.net/npm/@y14e/menu@1.5.6/+esm';
20
+ import Menu from 'https://cdn.jsdelivr.net/npm/@y14e/menu@1.5.8/+esm';
21
21
  // or
22
- import Menu from 'https://esm.unpkg.com/@y14e/menu@1.5.6';
22
+ import Menu from 'https://esm.unpkg.com/@y14e/menu@1.5.8';
23
23
  ```
24
24
 
25
25
  ## Usage
package/dist/index.cjs CHANGED
@@ -2947,7 +2947,7 @@ var Menu = class _Menu {
2947
2947
  break;
2948
2948
  case "ArrowLeft":
2949
2949
  case "ArrowRight":
2950
- this.#dispatchTriggerKeyDown(key);
2950
+ this.#isMenubar && this.#dispatchTriggerKeyDown(key);
2951
2951
  break;
2952
2952
  }
2953
2953
  };
@@ -3082,10 +3082,12 @@ var Menu = class _Menu {
3082
3082
  return this.#rootElement.contains(element) || !!this.#listElement?.contains(element);
3083
3083
  }
3084
3084
  #dispatchTriggerKeyDown(key) {
3085
- this.#isMenubar && this.close();
3086
- requestAnimationFrame(
3087
- () => this.#getTrigger()?.dispatchEvent(new KeyboardEvent("keydown", { key }))
3088
- );
3085
+ const trigger = this.#getTrigger();
3086
+ if (!trigger) {
3087
+ return;
3088
+ }
3089
+ trigger.focus();
3090
+ trigger.dispatchEvent(new KeyboardEvent("keydown", { key }));
3089
3091
  }
3090
3092
  #focusTrigger() {
3091
3093
  const active = getActiveElement4();
@@ -3250,7 +3252,7 @@ function isFocusable3(element) {
3250
3252
  * WAI-ARIA compliant menu (menu button) pattern implementation in TypeScript.
3251
3253
  * Supports checkbox item, radio item, and infinitely nested menus.
3252
3254
  *
3253
- * @version 1.5.6
3255
+ * @version 1.5.8
3254
3256
  * @author Yusuke Kamiyamane
3255
3257
  * @license MIT
3256
3258
  * @copyright Copyright (c) Yusuke Kamiyamane
package/dist/index.d.cts CHANGED
@@ -6,7 +6,7 @@ export { flip, offset, shift } from '@floating-ui/dom';
6
6
  * WAI-ARIA compliant menu (menu button) pattern implementation in TypeScript.
7
7
  * Supports checkbox item, radio item, and infinitely nested menus.
8
8
  *
9
- * @version 1.5.6
9
+ * @version 1.5.8
10
10
  * @author Yusuke Kamiyamane
11
11
  * @license MIT
12
12
  * @copyright Copyright (c) Yusuke Kamiyamane
package/dist/index.d.ts CHANGED
@@ -6,7 +6,7 @@ export { flip, offset, shift } from '@floating-ui/dom';
6
6
  * WAI-ARIA compliant menu (menu button) pattern implementation in TypeScript.
7
7
  * Supports checkbox item, radio item, and infinitely nested menus.
8
8
  *
9
- * @version 1.5.6
9
+ * @version 1.5.8
10
10
  * @author Yusuke Kamiyamane
11
11
  * @license MIT
12
12
  * @copyright Copyright (c) Yusuke Kamiyamane
package/dist/index.js CHANGED
@@ -2943,7 +2943,7 @@ var Menu = class _Menu {
2943
2943
  break;
2944
2944
  case "ArrowLeft":
2945
2945
  case "ArrowRight":
2946
- this.#dispatchTriggerKeyDown(key);
2946
+ this.#isMenubar && this.#dispatchTriggerKeyDown(key);
2947
2947
  break;
2948
2948
  }
2949
2949
  };
@@ -3078,10 +3078,12 @@ var Menu = class _Menu {
3078
3078
  return this.#rootElement.contains(element) || !!this.#listElement?.contains(element);
3079
3079
  }
3080
3080
  #dispatchTriggerKeyDown(key) {
3081
- this.#isMenubar && this.close();
3082
- requestAnimationFrame(
3083
- () => this.#getTrigger()?.dispatchEvent(new KeyboardEvent("keydown", { key }))
3084
- );
3081
+ const trigger = this.#getTrigger();
3082
+ if (!trigger) {
3083
+ return;
3084
+ }
3085
+ trigger.focus();
3086
+ trigger.dispatchEvent(new KeyboardEvent("keydown", { key }));
3085
3087
  }
3086
3088
  #focusTrigger() {
3087
3089
  const active = getActiveElement4();
@@ -3246,7 +3248,7 @@ function isFocusable3(element) {
3246
3248
  * WAI-ARIA compliant menu (menu button) pattern implementation in TypeScript.
3247
3249
  * Supports checkbox item, radio item, and infinitely nested menus.
3248
3250
  *
3249
- * @version 1.5.6
3251
+ * @version 1.5.8
3250
3252
  * @author Yusuke Kamiyamane
3251
3253
  * @license MIT
3252
3254
  * @copyright Copyright (c) Yusuke Kamiyamane
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@y14e/menu",
3
- "version": "1.5.6",
3
+ "version": "1.5.8",
4
4
  "description": "WAI-ARIA compliant menu (menu button) pattern implementation in TypeScript",
5
5
  "type": "module",
6
6
  "main": "./dist/index.cjs",