@react-aria/menu 3.11.3-nightly.4321 → 3.12.0

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.
Files changed (184) hide show
  1. package/dist/ar-AE.main.js +6 -0
  2. package/dist/ar-AE.main.js.map +1 -0
  3. package/dist/ar-AE.mjs +8 -0
  4. package/dist/ar-AE.module.js +8 -0
  5. package/dist/ar-AE.module.js.map +1 -0
  6. package/dist/bg-BG.main.js +6 -0
  7. package/dist/bg-BG.main.js.map +1 -0
  8. package/dist/bg-BG.mjs +8 -0
  9. package/dist/bg-BG.module.js +8 -0
  10. package/dist/bg-BG.module.js.map +1 -0
  11. package/dist/cs-CZ.main.js +6 -0
  12. package/dist/cs-CZ.main.js.map +1 -0
  13. package/dist/cs-CZ.mjs +8 -0
  14. package/dist/cs-CZ.module.js +8 -0
  15. package/dist/cs-CZ.module.js.map +1 -0
  16. package/dist/da-DK.main.js +6 -0
  17. package/dist/da-DK.main.js.map +1 -0
  18. package/dist/da-DK.mjs +8 -0
  19. package/dist/da-DK.module.js +8 -0
  20. package/dist/da-DK.module.js.map +1 -0
  21. package/dist/de-DE.main.js +6 -0
  22. package/dist/de-DE.main.js.map +1 -0
  23. package/dist/de-DE.mjs +8 -0
  24. package/dist/de-DE.module.js +8 -0
  25. package/dist/de-DE.module.js.map +1 -0
  26. package/dist/el-GR.main.js +6 -0
  27. package/dist/el-GR.main.js.map +1 -0
  28. package/dist/el-GR.mjs +8 -0
  29. package/dist/el-GR.module.js +8 -0
  30. package/dist/el-GR.module.js.map +1 -0
  31. package/dist/en-US.main.js +6 -0
  32. package/dist/en-US.main.js.map +1 -0
  33. package/dist/en-US.mjs +8 -0
  34. package/dist/en-US.module.js +8 -0
  35. package/dist/en-US.module.js.map +1 -0
  36. package/dist/es-ES.main.js +6 -0
  37. package/dist/es-ES.main.js.map +1 -0
  38. package/dist/es-ES.mjs +8 -0
  39. package/dist/es-ES.module.js +8 -0
  40. package/dist/es-ES.module.js.map +1 -0
  41. package/dist/et-EE.main.js +6 -0
  42. package/dist/et-EE.main.js.map +1 -0
  43. package/dist/et-EE.mjs +8 -0
  44. package/dist/et-EE.module.js +8 -0
  45. package/dist/et-EE.module.js.map +1 -0
  46. package/dist/fi-FI.main.js +6 -0
  47. package/dist/fi-FI.main.js.map +1 -0
  48. package/dist/fi-FI.mjs +8 -0
  49. package/dist/fi-FI.module.js +8 -0
  50. package/dist/fi-FI.module.js.map +1 -0
  51. package/dist/fr-FR.main.js +6 -0
  52. package/dist/fr-FR.main.js.map +1 -0
  53. package/dist/fr-FR.mjs +8 -0
  54. package/dist/fr-FR.module.js +8 -0
  55. package/dist/fr-FR.module.js.map +1 -0
  56. package/dist/he-IL.main.js +6 -0
  57. package/dist/he-IL.main.js.map +1 -0
  58. package/dist/he-IL.mjs +8 -0
  59. package/dist/he-IL.module.js +8 -0
  60. package/dist/he-IL.module.js.map +1 -0
  61. package/dist/hr-HR.main.js +6 -0
  62. package/dist/hr-HR.main.js.map +1 -0
  63. package/dist/hr-HR.mjs +8 -0
  64. package/dist/hr-HR.module.js +8 -0
  65. package/dist/hr-HR.module.js.map +1 -0
  66. package/dist/hu-HU.main.js +6 -0
  67. package/dist/hu-HU.main.js.map +1 -0
  68. package/dist/hu-HU.mjs +8 -0
  69. package/dist/hu-HU.module.js +8 -0
  70. package/dist/hu-HU.module.js.map +1 -0
  71. package/dist/import.mjs +356 -243
  72. package/dist/it-IT.main.js +6 -0
  73. package/dist/it-IT.main.js.map +1 -0
  74. package/dist/it-IT.mjs +8 -0
  75. package/dist/it-IT.module.js +8 -0
  76. package/dist/it-IT.module.js.map +1 -0
  77. package/dist/ja-JP.main.js +6 -0
  78. package/dist/ja-JP.main.js.map +1 -0
  79. package/dist/ja-JP.mjs +8 -0
  80. package/dist/ja-JP.module.js +8 -0
  81. package/dist/ja-JP.module.js.map +1 -0
  82. package/dist/ko-KR.main.js +6 -0
  83. package/dist/ko-KR.main.js.map +1 -0
  84. package/dist/ko-KR.mjs +8 -0
  85. package/dist/ko-KR.module.js +8 -0
  86. package/dist/ko-KR.module.js.map +1 -0
  87. package/dist/lt-LT.main.js +6 -0
  88. package/dist/lt-LT.main.js.map +1 -0
  89. package/dist/lt-LT.mjs +8 -0
  90. package/dist/lt-LT.module.js +8 -0
  91. package/dist/lt-LT.module.js.map +1 -0
  92. package/dist/lv-LV.main.js +6 -0
  93. package/dist/lv-LV.main.js.map +1 -0
  94. package/dist/lv-LV.mjs +8 -0
  95. package/dist/lv-LV.module.js +8 -0
  96. package/dist/lv-LV.module.js.map +1 -0
  97. package/dist/main.js +353 -239
  98. package/dist/main.js.map +1 -1
  99. package/dist/module.js +356 -243
  100. package/dist/module.js.map +1 -1
  101. package/dist/nb-NO.main.js +6 -0
  102. package/dist/nb-NO.main.js.map +1 -0
  103. package/dist/nb-NO.mjs +8 -0
  104. package/dist/nb-NO.module.js +8 -0
  105. package/dist/nb-NO.module.js.map +1 -0
  106. package/dist/nl-NL.main.js +6 -0
  107. package/dist/nl-NL.main.js.map +1 -0
  108. package/dist/nl-NL.mjs +8 -0
  109. package/dist/nl-NL.module.js +8 -0
  110. package/dist/nl-NL.module.js.map +1 -0
  111. package/dist/pl-PL.main.js +6 -0
  112. package/dist/pl-PL.main.js.map +1 -0
  113. package/dist/pl-PL.mjs +8 -0
  114. package/dist/pl-PL.module.js +8 -0
  115. package/dist/pl-PL.module.js.map +1 -0
  116. package/dist/pt-BR.main.js +6 -0
  117. package/dist/pt-BR.main.js.map +1 -0
  118. package/dist/pt-BR.mjs +8 -0
  119. package/dist/pt-BR.module.js +8 -0
  120. package/dist/pt-BR.module.js.map +1 -0
  121. package/dist/pt-PT.main.js +6 -0
  122. package/dist/pt-PT.main.js.map +1 -0
  123. package/dist/pt-PT.mjs +8 -0
  124. package/dist/pt-PT.module.js +8 -0
  125. package/dist/pt-PT.module.js.map +1 -0
  126. package/dist/ro-RO.main.js +6 -0
  127. package/dist/ro-RO.main.js.map +1 -0
  128. package/dist/ro-RO.mjs +8 -0
  129. package/dist/ro-RO.module.js +8 -0
  130. package/dist/ro-RO.module.js.map +1 -0
  131. package/dist/ru-RU.main.js +6 -0
  132. package/dist/ru-RU.main.js.map +1 -0
  133. package/dist/ru-RU.mjs +8 -0
  134. package/dist/ru-RU.module.js +8 -0
  135. package/dist/ru-RU.module.js.map +1 -0
  136. package/dist/sk-SK.main.js +6 -0
  137. package/dist/sk-SK.main.js.map +1 -0
  138. package/dist/sk-SK.mjs +8 -0
  139. package/dist/sk-SK.module.js +8 -0
  140. package/dist/sk-SK.module.js.map +1 -0
  141. package/dist/sl-SI.main.js +6 -0
  142. package/dist/sl-SI.main.js.map +1 -0
  143. package/dist/sl-SI.mjs +8 -0
  144. package/dist/sl-SI.module.js +8 -0
  145. package/dist/sl-SI.module.js.map +1 -0
  146. package/dist/sr-SP.main.js +6 -0
  147. package/dist/sr-SP.main.js.map +1 -0
  148. package/dist/sr-SP.mjs +8 -0
  149. package/dist/sr-SP.module.js +8 -0
  150. package/dist/sr-SP.module.js.map +1 -0
  151. package/dist/sv-SE.main.js +6 -0
  152. package/dist/sv-SE.main.js.map +1 -0
  153. package/dist/sv-SE.mjs +8 -0
  154. package/dist/sv-SE.module.js +8 -0
  155. package/dist/sv-SE.module.js.map +1 -0
  156. package/dist/tr-TR.main.js +6 -0
  157. package/dist/tr-TR.main.js.map +1 -0
  158. package/dist/tr-TR.mjs +8 -0
  159. package/dist/tr-TR.module.js +8 -0
  160. package/dist/tr-TR.module.js.map +1 -0
  161. package/dist/types.d.ts +45 -4
  162. package/dist/types.d.ts.map +1 -1
  163. package/dist/uk-UA.main.js +6 -0
  164. package/dist/uk-UA.main.js.map +1 -0
  165. package/dist/uk-UA.mjs +8 -0
  166. package/dist/uk-UA.module.js +8 -0
  167. package/dist/uk-UA.module.js.map +1 -0
  168. package/dist/zh-CN.main.js +6 -0
  169. package/dist/zh-CN.main.js.map +1 -0
  170. package/dist/zh-CN.mjs +8 -0
  171. package/dist/zh-CN.module.js +8 -0
  172. package/dist/zh-CN.module.js.map +1 -0
  173. package/dist/zh-TW.main.js +6 -0
  174. package/dist/zh-TW.main.js.map +1 -0
  175. package/dist/zh-TW.mjs +8 -0
  176. package/dist/zh-TW.module.js +8 -0
  177. package/dist/zh-TW.module.js.map +1 -0
  178. package/package.json +14 -14
  179. package/src/index.ts +2 -0
  180. package/src/useMenu.ts +5 -5
  181. package/src/useMenuItem.ts +61 -82
  182. package/src/useMenuTrigger.ts +2 -1
  183. package/src/useSafelyMouseToSubmenu.ts +158 -0
  184. package/src/useSubmenuTrigger.ts +235 -0
package/dist/main.js CHANGED
@@ -1,9 +1,42 @@
1
+ var $429891642bf97c51$exports = require("./ar-AE.main.js");
2
+ var $40d90b799072e111$exports = require("./bg-BG.main.js");
3
+ var $587b89d60e4f3e24$exports = require("./cs-CZ.main.js");
4
+ var $79eb8045886465e9$exports = require("./da-DK.main.js");
5
+ var $9c6faa2088d34bf1$exports = require("./de-DE.main.js");
6
+ var $ee6e1292c61a8135$exports = require("./el-GR.main.js");
7
+ var $f479187898d153cc$exports = require("./en-US.main.js");
8
+ var $1e6a91f77efbb11f$exports = require("./es-ES.main.js");
9
+ var $f2fb75e964082636$exports = require("./et-EE.main.js");
10
+ var $75cc65c4b616fac1$exports = require("./fi-FI.main.js");
11
+ var $82a179939aabd1ee$exports = require("./fr-FR.main.js");
12
+ var $40aa37345f1f8748$exports = require("./he-IL.main.js");
13
+ var $c00088e5c377e2c5$exports = require("./hr-HR.main.js");
14
+ var $51f736a409b7d295$exports = require("./hu-HU.main.js");
15
+ var $65bb74747bd8f2fb$exports = require("./it-IT.main.js");
16
+ var $1bc11da108727c27$exports = require("./ja-JP.main.js");
17
+ var $118d77e4be898c17$exports = require("./ko-KR.main.js");
18
+ var $4db9ebadbf792309$exports = require("./lt-LT.main.js");
19
+ var $51288b53bc93ac3d$exports = require("./lv-LV.main.js");
20
+ var $1a4b31206cd66e98$exports = require("./nb-NO.main.js");
21
+ var $21e944c6af0b8453$exports = require("./nl-NL.main.js");
22
+ var $20509ccafe6fe6aa$exports = require("./pl-PL.main.js");
23
+ var $8006eac1d5d4665b$exports = require("./pt-BR.main.js");
24
+ var $4875d1b529941a0a$exports = require("./pt-PT.main.js");
25
+ var $37939d04a40a865b$exports = require("./ro-RO.main.js");
26
+ var $fd1c8a4521d30c69$exports = require("./ru-RU.main.js");
27
+ var $2940d0a4ba6cbd64$exports = require("./sk-SK.main.js");
28
+ var $cb481a56d5c8fa56$exports = require("./sl-SI.main.js");
29
+ var $ecbdeaa2c85d1b32$exports = require("./sr-SP.main.js");
30
+ var $aeca4735c8d1bab6$exports = require("./sv-SE.main.js");
31
+ var $68243426be5c9f01$exports = require("./tr-TR.main.js");
32
+ var $bde63de8df74e87d$exports = require("./uk-UA.main.js");
33
+ var $2d16ab23cbf254d4$exports = require("./zh-CN.main.js");
34
+ var $bd9ff3a1da9d944a$exports = require("./zh-TW.main.js");
1
35
  var $fHYTQ$reactariautils = require("@react-aria/utils");
2
36
  var $fHYTQ$reactariai18n = require("@react-aria/i18n");
3
37
  var $fHYTQ$reactariainteractions = require("@react-aria/interactions");
4
38
  var $fHYTQ$reactariaoverlays = require("@react-aria/overlays");
5
39
  var $fHYTQ$reactariaselection = require("@react-aria/selection");
6
- var $fHYTQ$reactariafocus = require("@react-aria/focus");
7
40
  var $fHYTQ$reactstatelycollections = require("@react-stately/collections");
8
41
  var $fHYTQ$react = require("react");
9
42
 
@@ -20,6 +53,7 @@ $parcel$export(module.exports, "useMenuTrigger", () => $7211ab9328763fb9$export$
20
53
  $parcel$export(module.exports, "useMenu", () => $a3815f0132802737$export$38eaa17faae8f579);
21
54
  $parcel$export(module.exports, "useMenuItem", () => $38191ed02615ec07$export$9d32628fc2aea7da);
22
55
  $parcel$export(module.exports, "useMenuSection", () => $63008655e23408c5$export$73f7a44322579622);
56
+ $parcel$export(module.exports, "UNSTABLE_useSubmenuTrigger", () => $5f4753043c9f6cdf$export$3819f8ee9f4ce664);
23
57
  /*
24
58
  * Copyright 2020 Adobe. All rights reserved.
25
59
  * This file is licensed to you under the Apache License, Version 2.0 (the "License");
@@ -41,208 +75,38 @@ $parcel$export(module.exports, "useMenuSection", () => $63008655e23408c5$export$
41
75
  * OF ANY KIND, either express or implied. See the License for the specific language
42
76
  * governing permissions and limitations under the License.
43
77
  */ var $d1742ec2644a0949$exports = {};
44
- var $429891642bf97c51$exports = {};
45
- $429891642bf97c51$exports = {
46
- "longPressMessage": `\u{627}\u{636}\u{63A}\u{637} \u{645}\u{637}\u{648}\u{644}\u{627}\u{64B} \u{623}\u{648} \u{627}\u{636}\u{63A}\u{637} \u{639}\u{644}\u{649} Alt + \u{627}\u{644}\u{633}\u{647}\u{645} \u{644}\u{623}\u{633}\u{641}\u{644} \u{644}\u{641}\u{62A}\u{62D} \u{627}\u{644}\u{642}\u{627}\u{626}\u{645}\u{629}`
47
- };
48
-
49
-
50
- var $40d90b799072e111$exports = {};
51
- $40d90b799072e111$exports = {
52
- "longPressMessage": `\u{41D}\u{430}\u{442}\u{438}\u{441}\u{43D}\u{435}\u{442}\u{435} \u{43F}\u{440}\u{43E}\u{434}\u{44A}\u{43B}\u{436}\u{438}\u{442}\u{435}\u{43B}\u{43D}\u{43E} \u{438}\u{43B}\u{438} \u{43D}\u{430}\u{442}\u{438}\u{441}\u{43D}\u{435}\u{442}\u{435} Alt+ \u{441}\u{442}\u{440}\u{435}\u{43B}\u{43A}\u{430} \u{43D}\u{430}\u{434}\u{43E}\u{43B}\u{443}, \u{437}\u{430} \u{434}\u{430} \u{43E}\u{442}\u{432}\u{43E}\u{440}\u{438}\u{442}\u{435} \u{43C}\u{435}\u{43D}\u{44E}\u{442}\u{43E}`
53
- };
54
-
55
-
56
- var $587b89d60e4f3e24$exports = {};
57
- $587b89d60e4f3e24$exports = {
58
- "longPressMessage": `Dlouh\xfdm stiskem nebo stisknut\xedm kl\xe1ves Alt + \u{161}ipka dol\u{16F} otev\u{159}ete nab\xeddku`
59
- };
60
-
61
-
62
- var $79eb8045886465e9$exports = {};
63
- $79eb8045886465e9$exports = {
64
- "longPressMessage": `Langt tryk eller tryk p\xe5 Alt + pil ned for at \xe5bne menuen`
65
- };
66
-
67
-
68
- var $9c6faa2088d34bf1$exports = {};
69
- $9c6faa2088d34bf1$exports = {
70
- "longPressMessage": `Dr\xfccken Sie lange oder dr\xfccken Sie Alt + Nach-unten, um das Men\xfc zu \xf6ffnen`
71
- };
72
-
73
-
74
- var $ee6e1292c61a8135$exports = {};
75
- $ee6e1292c61a8135$exports = {
76
- "longPressMessage": `\u{3A0}\u{3B9}\u{3AD}\u{3C3}\u{3C4}\u{3B5} \u{3C0}\u{3B1}\u{3C1}\u{3B1}\u{3C4}\u{3B5}\u{3C4}\u{3B1}\u{3BC}\u{3AD}\u{3BD}\u{3B1} \u{3AE} \u{3C0}\u{3B1}\u{3C4}\u{3AE}\u{3C3}\u{3C4}\u{3B5} Alt + \u{3BA}\u{3AC}\u{3C4}\u{3C9} \u{3B2}\u{3AD}\u{3BB}\u{3BF}\u{3C2} \u{3B3}\u{3B9}\u{3B1} \u{3BD}\u{3B1} \u{3B1}\u{3BD}\u{3BF}\u{3AF}\u{3BE}\u{3B5}\u{3C4}\u{3B5} \u{3C4}\u{3BF} \u{3BC}\u{3B5}\u{3BD}\u{3BF}\u{3CD}`
77
- };
78
-
79
-
80
- var $f479187898d153cc$exports = {};
81
- $f479187898d153cc$exports = {
82
- "longPressMessage": `Long press or press Alt + ArrowDown to open menu`
83
- };
84
-
85
-
86
- var $1e6a91f77efbb11f$exports = {};
87
- $1e6a91f77efbb11f$exports = {
88
- "longPressMessage": `Mantenga pulsado o pulse Alt + flecha abajo para abrir el men\xfa`
89
- };
90
-
91
-
92
- var $f2fb75e964082636$exports = {};
93
- $f2fb75e964082636$exports = {
94
- "longPressMessage": `Men\xfc\xfc avamiseks vajutage pikalt v\xf5i vajutage klahve Alt + allanool`
95
- };
96
-
97
-
98
- var $75cc65c4b616fac1$exports = {};
99
- $75cc65c4b616fac1$exports = {
100
- "longPressMessage": `Avaa valikko painamalla pohjassa tai n\xe4pp\xe4inyhdistelm\xe4ll\xe4 Alt + Alanuoli`
101
- };
102
-
103
-
104
- var $82a179939aabd1ee$exports = {};
105
- $82a179939aabd1ee$exports = {
106
- "longPressMessage": `Appuyez de mani\xe8re prolong\xe9e ou appuyez sur Alt\xa0+\xa0Fl\xe8che vers le bas pour ouvrir le menu.`
107
- };
108
78
 
109
79
 
110
- var $40aa37345f1f8748$exports = {};
111
- $40aa37345f1f8748$exports = {
112
- "longPressMessage": `\u{5DC}\u{5D7}\u{5E5} \u{5DC}\u{5D7}\u{5D9}\u{5E6}\u{5D4} \u{5D0}\u{5E8}\u{5D5}\u{5DB}\u{5D4} \u{5D0}\u{5D5} \u{5D4}\u{5E7}\u{5E9} Alt + ArrowDown \u{5DB}\u{5D3}\u{5D9} \u{5DC}\u{5E4}\u{5EA}\u{5D5}\u{5D7} \u{5D0}\u{5EA} \u{5D4}\u{5EA}\u{5E4}\u{5E8}\u{5D9}\u{5D8}`
113
- };
114
80
 
115
81
 
116
- var $c00088e5c377e2c5$exports = {};
117
- $c00088e5c377e2c5$exports = {
118
- "longPressMessage": `Dugo pritisnite ili pritisnite Alt + strelicu prema dolje za otvaranje izbornika`
119
- };
120
82
 
121
83
 
122
- var $51f736a409b7d295$exports = {};
123
- $51f736a409b7d295$exports = {
124
- "longPressMessage": `Nyomja meg hosszan, vagy nyomja meg az Alt + lefele ny\xedl gombot a men\xfc megnyit\xe1s\xe1hoz`
125
- };
126
84
 
127
85
 
128
- var $65bb74747bd8f2fb$exports = {};
129
- $65bb74747bd8f2fb$exports = {
130
- "longPressMessage": `Premere a lungo o premere Alt + Freccia gi\xf9 per aprire il menu`
131
- };
132
86
 
133
87
 
134
- var $1bc11da108727c27$exports = {};
135
- $1bc11da108727c27$exports = {
136
- "longPressMessage": `\u{9577}\u{62BC}\u{3057}\u{307E}\u{305F}\u{306F} Alt+\u{4E0B}\u{77E2}\u{5370}\u{30AD}\u{30FC}\u{3067}\u{30E1}\u{30CB}\u{30E5}\u{30FC}\u{3092}\u{958B}\u{304F}`
137
- };
138
88
 
139
89
 
140
- var $118d77e4be898c17$exports = {};
141
- $118d77e4be898c17$exports = {
142
- "longPressMessage": `\u{AE38}\u{AC8C} \u{B204}\u{B974}\u{AC70}\u{B098} Alt + \u{C544}\u{B798}\u{CABD} \u{D654}\u{C0B4}\u{D45C}\u{B97C} \u{B20C}\u{B7EC} \u{BA54}\u{B274} \u{C5F4}\u{AE30}`
143
- };
144
90
 
145
91
 
146
- var $4db9ebadbf792309$exports = {};
147
- $4db9ebadbf792309$exports = {
148
- "longPressMessage": `Nor\u{117}dami atidaryti meniu, nuspaud\u{119} palaikykite arba paspauskite \u{201E}Alt + ArrowDown\u{201C}.`
149
- };
150
92
 
151
93
 
152
- var $51288b53bc93ac3d$exports = {};
153
- $51288b53bc93ac3d$exports = {
154
- "longPressMessage": `Lai atv\u{113}rtu izv\u{113}lni, turiet nospiestu vai nospiediet tausti\u{146}u kombin\u{101}ciju Alt + lejupv\u{113}rst\u{101} bulti\u{146}a`
155
- };
156
94
 
157
95
 
158
- var $1a4b31206cd66e98$exports = {};
159
- $1a4b31206cd66e98$exports = {
160
- "longPressMessage": `Langt trykk eller trykk Alt + PilNed for \xe5 \xe5pne menyen`
161
- };
162
96
 
163
97
 
164
- var $21e944c6af0b8453$exports = {};
165
- $21e944c6af0b8453$exports = {
166
- "longPressMessage": `Druk lang op Alt + pijl-omlaag of druk op Alt om het menu te openen`
167
- };
168
98
 
169
99
 
170
- var $20509ccafe6fe6aa$exports = {};
171
- $20509ccafe6fe6aa$exports = {
172
- "longPressMessage": `Naci\u{15B}nij i przytrzymaj lub naci\u{15B}nij klawisze Alt + Strza\u{142}ka w d\xf3\u{142}, aby otworzy\u{107} menu`
173
- };
174
100
 
175
101
 
176
- var $8006eac1d5d4665b$exports = {};
177
- $8006eac1d5d4665b$exports = {
178
- "longPressMessage": `Pressione e segure ou pressione Alt + Seta para baixo para abrir o menu`
179
- };
180
102
 
181
103
 
182
- var $4875d1b529941a0a$exports = {};
183
- $4875d1b529941a0a$exports = {
184
- "longPressMessage": `Prima continuamente ou prima Alt + Seta Para Baixo para abrir o menu`
185
- };
186
104
 
187
105
 
188
- var $37939d04a40a865b$exports = {};
189
- $37939d04a40a865b$exports = {
190
- "longPressMessage": `Ap\u{103}sa\u{21B}i lung sau ap\u{103}sa\u{21B}i pe Alt + s\u{103}geat\u{103} \xeen jos pentru a deschide meniul`
191
- };
192
106
 
193
107
 
194
- var $fd1c8a4521d30c69$exports = {};
195
- $fd1c8a4521d30c69$exports = {
196
- "longPressMessage": `\u{41D}\u{430}\u{436}\u{43C}\u{438}\u{442}\u{435} \u{438} \u{443}\u{434}\u{435}\u{440}\u{436}\u{438}\u{432}\u{430}\u{439}\u{442}\u{435} \u{438}\u{43B}\u{438} \u{43D}\u{430}\u{436}\u{43C}\u{438}\u{442}\u{435} Alt + \u{421}\u{442}\u{440}\u{435}\u{43B}\u{43A}\u{430} \u{432}\u{43D}\u{438}\u{437}, \u{447}\u{442}\u{43E}\u{431}\u{44B} \u{43E}\u{442}\u{43A}\u{440}\u{44B}\u{442}\u{44C} \u{43C}\u{435}\u{43D}\u{44E}`
197
- };
198
108
 
199
109
 
200
- var $2940d0a4ba6cbd64$exports = {};
201
- $2940d0a4ba6cbd64$exports = {
202
- "longPressMessage": `Ponuku otvor\xedte dlh\xfdm stla\u{10D}en\xedm alebo stla\u{10D}en\xedm kl\xe1vesu Alt + kl\xe1vesu so \u{161}\xedpkou nadol`
203
- };
204
-
205
-
206
- var $cb481a56d5c8fa56$exports = {};
207
- $cb481a56d5c8fa56$exports = {
208
- "longPressMessage": `Za odprtje menija pritisnite in dr\u{17E}ite gumb ali pritisnite Alt+pu\u{161}\u{10D}ica navzdol`
209
- };
210
-
211
-
212
- var $ecbdeaa2c85d1b32$exports = {};
213
- $ecbdeaa2c85d1b32$exports = {
214
- "longPressMessage": `Dugo pritisnite ili pritisnite Alt + strelicu prema dole da otvorite meni`
215
- };
216
-
217
-
218
- var $aeca4735c8d1bab6$exports = {};
219
- $aeca4735c8d1bab6$exports = {
220
- "longPressMessage": `H\xe5ll nedtryckt eller tryck p\xe5 Alt + pil ned\xe5t f\xf6r att \xf6ppna menyn`
221
- };
222
-
223
-
224
- var $68243426be5c9f01$exports = {};
225
- $68243426be5c9f01$exports = {
226
- "longPressMessage": `Men\xfcy\xfc a\xe7mak i\xe7in uzun bas\u{131}n veya Alt + A\u{15F}a\u{11F}\u{131} Ok tu\u{15F}una bas\u{131}n`
227
- };
228
-
229
-
230
- var $bde63de8df74e87d$exports = {};
231
- $bde63de8df74e87d$exports = {
232
- "longPressMessage": `\u{414}\u{43E}\u{432}\u{433}\u{43E} \u{430}\u{431}\u{43E} \u{437}\u{432}\u{438}\u{447}\u{430}\u{439}\u{43D}\u{43E} \u{43D}\u{430}\u{442}\u{438}\u{441}\u{43D}\u{456}\u{442}\u{44C} \u{43A}\u{43E}\u{43C}\u{431}\u{456}\u{43D}\u{430}\u{446}\u{456}\u{44E} \u{43A}\u{43B}\u{430}\u{432}\u{456}\u{448} Alt \u{456} \u{441}\u{442}\u{440}\u{456}\u{43B}\u{43A}\u{430} \u{432}\u{43D}\u{438}\u{437}, \u{449}\u{43E}\u{431} \u{432}\u{456}\u{434}\u{43A}\u{440}\u{438}\u{442}\u{438} \u{43C}\u{435}\u{43D}\u{44E}`
233
- };
234
-
235
-
236
- var $2d16ab23cbf254d4$exports = {};
237
- $2d16ab23cbf254d4$exports = {
238
- "longPressMessage": `\u{957F}\u{6309}\u{6216}\u{6309} Alt + \u{5411}\u{4E0B}\u{65B9}\u{5411}\u{952E}\u{4EE5}\u{6253}\u{5F00}\u{83DC}\u{5355}`
239
- };
240
-
241
-
242
- var $bd9ff3a1da9d944a$exports = {};
243
- $bd9ff3a1da9d944a$exports = {
244
- "longPressMessage": `\u{9577}\u{6309}\u{6216}\u{6309} Alt+\u{5411}\u{4E0B}\u{9375}\u{4EE5}\u{958B}\u{555F}\u{529F}\u{80FD}\u{8868}`
245
- };
246
110
 
247
111
 
248
112
  $d1742ec2644a0949$exports = {
@@ -317,7 +181,7 @@ function $7211ab9328763fb9$export$dc9c12ed27dd1b49(props, state, ref) {
317
181
  if ("continuePropagation" in e) e.continuePropagation();
318
182
  }
319
183
  };
320
- let stringFormatter = (0, $fHYTQ$reactariai18n.useLocalizedStringFormatter)((0, (/*@__PURE__*/$parcel$interopDefault($d1742ec2644a0949$exports))));
184
+ let stringFormatter = (0, $fHYTQ$reactariai18n.useLocalizedStringFormatter)((0, (/*@__PURE__*/$parcel$interopDefault($d1742ec2644a0949$exports))), "@react-aria/menu");
321
185
  let { longPressProps: longPressProps } = (0, $fHYTQ$reactariainteractions.useLongPress)({
322
186
  isDisabled: isDisabled || trigger !== "longPress",
323
187
  accessibilityDescription: stringFormatter.format("longPressMessage"),
@@ -372,7 +236,7 @@ function $7211ab9328763fb9$export$dc9c12ed27dd1b49(props, state, ref) {
372
236
 
373
237
  const $a3815f0132802737$export$6f49b4016bfc8d56 = new WeakMap();
374
238
  function $a3815f0132802737$export$38eaa17faae8f579(props, state, ref) {
375
- let { shouldFocusWrap: shouldFocusWrap = true, ...otherProps } = props;
239
+ let { shouldFocusWrap: shouldFocusWrap = true, onKeyDown: onKeyDown, onKeyUp: onKeyUp, ...otherProps } = props;
376
240
  if (!props["aria-label"] && !props["aria-labelledby"]) console.warn("An aria-label or aria-labelledby prop is required for accessibility.");
377
241
  let domProps = (0, $fHYTQ$reactariautils.filterDOMProps)(props, {
378
242
  labelable: true
@@ -392,9 +256,10 @@ function $a3815f0132802737$export$38eaa17faae8f579(props, state, ref) {
392
256
  });
393
257
  return {
394
258
  menuProps: (0, $fHYTQ$reactariautils.mergeProps)(domProps, {
259
+ onKeyDown: onKeyDown,
260
+ onKeyUp: onKeyUp
261
+ }, {
395
262
  role: "menu",
396
- // this forces AT to move their cursors into any open sub dialogs, the sub dialogs contain hidden close buttons in order to come back to this level of the menu
397
- "aria-hidden": state.expandedKeys.size > 0 ? true : undefined,
398
263
  ...listProps,
399
264
  onKeyDown: (e)=>{
400
265
  // don't clear the menu selected keys if the user is presses escape since escape closes the menu
@@ -420,55 +285,27 @@ function $a3815f0132802737$export$38eaa17faae8f579(props, state, ref) {
420
285
 
421
286
 
422
287
 
423
-
424
-
425
-
426
288
  function $38191ed02615ec07$export$9d32628fc2aea7da(props, state, ref) {
427
289
  var _item_props;
428
- let { key: key, closeOnSelect: closeOnSelect, isVirtualized: isVirtualized, "aria-haspopup": hasPopup } = props;
429
- let { direction: direction } = (0, $fHYTQ$reactariai18n.useLocale)();
290
+ let { key: key, closeOnSelect: closeOnSelect, isVirtualized: isVirtualized, "aria-haspopup": hasPopup, onPressStart: pressStartProp, onPressUp: pressUpProp, onPress: onPress, onPressChange: onPressChange, onPressEnd: onPressEnd, onHoverStart: hoverStartProp, onHoverChange: onHoverChange, onHoverEnd: onHoverEnd, onKeyDown: onKeyDown, onKeyUp: onKeyUp, onFocus: onFocus, onFocusChange: onFocusChange, onBlur: onBlur } = props;
430
291
  let isTrigger = !!hasPopup;
431
- let isOpen = state.expandedKeys.has(key);
432
292
  var _props_isDisabled;
433
293
  let isDisabled = (_props_isDisabled = props.isDisabled) !== null && _props_isDisabled !== void 0 ? _props_isDisabled : state.disabledKeys.has(key);
434
294
  var _props_isSelected;
435
295
  let isSelected = (_props_isSelected = props.isSelected) !== null && _props_isSelected !== void 0 ? _props_isSelected : state.selectionManager.isSelected(key);
436
- let openTimeout = (0, $fHYTQ$react.useRef)();
437
- let cancelOpenTimeout = (0, $fHYTQ$react.useCallback)(()=>{
438
- if (openTimeout.current) {
439
- clearTimeout(openTimeout.current);
440
- openTimeout.current = undefined;
441
- }
442
- }, [
443
- openTimeout
444
- ]);
445
- let onSubmenuOpen = (0, $fHYTQ$reactariautils.useEffectEvent)(()=>{
446
- cancelOpenTimeout();
447
- state.setExpandedKeys(new Set([
448
- key
449
- ]));
450
- });
451
- (0, $fHYTQ$reactariautils.useLayoutEffect)(()=>{
452
- return ()=>cancelOpenTimeout();
453
- }, [
454
- cancelOpenTimeout
455
- ]);
456
296
  let data = (0, $a3815f0132802737$export$6f49b4016bfc8d56).get(state);
457
297
  let onClose = props.onClose || data.onClose;
458
- let onActionMenuDialogTrigger = (0, $fHYTQ$react.useCallback)(()=>{
459
- onSubmenuOpen();
460
- // will need to disable this lint rule when using useEffectEvent https://react.dev/learn/separating-events-from-effects#logic-inside-effects-is-reactive
461
- // eslint-disable-next-line react-hooks/exhaustive-deps
462
- }, []);
463
- let onAction = isTrigger ? onActionMenuDialogTrigger : props.onAction || data.onAction;
298
+ let onAction = isTrigger ? ()=>{} : props.onAction || data.onAction;
464
299
  let router = (0, $fHYTQ$reactariautils.useRouter)();
465
300
  let performAction = (e)=>{
466
301
  if (onAction) onAction(key);
467
302
  if (e.target instanceof HTMLAnchorElement) router.open(e.target, e);
468
303
  };
469
304
  let role = "menuitem";
470
- if (state.selectionManager.selectionMode === "single") role = "menuitemradio";
471
- else if (state.selectionManager.selectionMode === "multiple") role = "menuitemcheckbox";
305
+ if (!isTrigger) {
306
+ if (state.selectionManager.selectionMode === "single") role = "menuitemradio";
307
+ else if (state.selectionManager.selectionMode === "multiple") role = "menuitemcheckbox";
308
+ }
472
309
  let labelId = (0, $fHYTQ$reactariautils.useSlotId)();
473
310
  let descriptionId = (0, $fHYTQ$reactariautils.useSlotId)();
474
311
  let keyboardId = (0, $fHYTQ$reactariautils.useSlotId)();
@@ -480,20 +317,20 @@ function $38191ed02615ec07$export$9d32628fc2aea7da(props, state, ref) {
480
317
  "aria-describedby": [
481
318
  descriptionId,
482
319
  keyboardId
483
- ].filter(Boolean).join(" ") || undefined
320
+ ].filter(Boolean).join(" ") || undefined,
321
+ "aria-controls": props["aria-controls"],
322
+ "aria-haspopup": hasPopup,
323
+ "aria-expanded": props["aria-expanded"]
484
324
  };
485
- if (state.selectionManager.selectionMode !== "none") ariaProps["aria-checked"] = isSelected;
325
+ if (state.selectionManager.selectionMode !== "none" && !isTrigger) ariaProps["aria-checked"] = isSelected;
486
326
  let item = state.collection.getItem(key);
487
327
  if (isVirtualized) {
488
328
  ariaProps["aria-posinset"] = item === null || item === void 0 ? void 0 : item.index;
489
329
  ariaProps["aria-setsize"] = (0, $fHYTQ$reactstatelycollections.getItemCount)(state.collection);
490
330
  }
491
- if (hasPopup != null) {
492
- ariaProps["aria-haspopup"] = hasPopup;
493
- ariaProps["aria-expanded"] = isOpen ? "true" : "false";
494
- }
495
331
  let onPressStart = (e)=>{
496
332
  if (e.pointerType === "keyboard") performAction(e);
333
+ pressStartProp === null || pressStartProp === void 0 ? void 0 : pressStartProp(e);
497
334
  };
498
335
  let onPressUp = (e)=>{
499
336
  if (e.pointerType !== "keyboard") {
@@ -502,6 +339,7 @@ function $38191ed02615ec07$export$9d32628fc2aea7da(props, state, ref) {
502
339
  // selection mode, except if overridden by the closeOnSelect prop.
503
340
  if (!isTrigger && onClose && (closeOnSelect !== null && closeOnSelect !== void 0 ? closeOnSelect : state.selectionManager.selectionMode !== "multiple" || state.selectionManager.isLink(key))) onClose();
504
341
  }
342
+ pressUpProp === null || pressUpProp === void 0 ? void 0 : pressUpProp(e);
505
343
  };
506
344
  let { itemProps: itemProps, isFocused: isFocused } = (0, $fHYTQ$reactariaselection.useSelectableItem)({
507
345
  selectionManager: state.selectionManager,
@@ -517,27 +355,23 @@ function $38191ed02615ec07$export$9d32628fc2aea7da(props, state, ref) {
517
355
  });
518
356
  let { pressProps: pressProps, isPressed: isPressed } = (0, $fHYTQ$reactariainteractions.usePress)({
519
357
  onPressStart: onPressStart,
358
+ onPress: onPress,
520
359
  onPressUp: onPressUp,
521
- isDisabled: isDisabled || isTrigger && state.expandedKeys.has(key)
360
+ onPressChange: onPressChange,
361
+ onPressEnd: onPressEnd,
362
+ isDisabled: isDisabled
522
363
  });
523
364
  let { hoverProps: hoverProps } = (0, $fHYTQ$reactariainteractions.useHover)({
524
365
  isDisabled: isDisabled,
525
- onHoverStart () {
526
- if (!(0, $fHYTQ$reactariainteractions.isFocusVisible)() && !(isTrigger && state.expandedKeys.has(key))) {
366
+ onHoverStart (e) {
367
+ if (!(0, $fHYTQ$reactariainteractions.isFocusVisible)()) {
527
368
  state.selectionManager.setFocused(true);
528
369
  state.selectionManager.setFocusedKey(key);
529
- // focus immediately so that a focus scope opened on hover has the correct restore node
530
- let isFocused = key === state.selectionManager.focusedKey;
531
- if (isFocused && state.selectionManager.isFocused && document.activeElement !== ref.current) (0, $fHYTQ$reactariafocus.focusSafely)(ref.current);
532
370
  }
371
+ hoverStartProp === null || hoverStartProp === void 0 ? void 0 : hoverStartProp(e);
533
372
  },
534
- onHoverChange: (isHovered)=>{
535
- if (isHovered && isTrigger && !state.expandedKeys.has(key)) {
536
- if (!openTimeout.current) openTimeout.current = setTimeout(()=>{
537
- onSubmenuOpen();
538
- }, 200);
539
- } else if (!isHovered) cancelOpenTimeout();
540
- }
373
+ onHoverChange: onHoverChange,
374
+ onHoverEnd: onHoverEnd
541
375
  });
542
376
  let { keyboardProps: keyboardProps } = (0, $fHYTQ$reactariainteractions.useKeyboard)({
543
377
  onKeyDown: (e)=>{
@@ -555,19 +389,18 @@ function $38191ed02615ec07$export$9d32628fc2aea7da(props, state, ref) {
555
389
  // The Enter key should always close on select, except if overridden.
556
390
  if (!isDisabled && closeOnSelect !== false && !isTrigger && onClose) onClose();
557
391
  break;
558
- case "ArrowRight":
559
- if (isTrigger && direction === "ltr") onSubmenuOpen();
560
- else e.continuePropagation();
561
- break;
562
- case "ArrowLeft":
563
- if (isTrigger && direction === "rtl") onSubmenuOpen();
564
- else e.continuePropagation();
565
- break;
566
392
  default:
567
- e.continuePropagation();
393
+ if (!isTrigger) e.continuePropagation();
394
+ onKeyDown === null || onKeyDown === void 0 ? void 0 : onKeyDown(e);
568
395
  break;
569
396
  }
570
- }
397
+ },
398
+ onKeyUp: onKeyUp
399
+ });
400
+ let { focusProps: focusProps } = (0, $fHYTQ$reactariainteractions.useFocus)({
401
+ onBlur: onBlur,
402
+ onFocus: onFocus,
403
+ onFocusChange: onFocusChange
571
404
  });
572
405
  let domProps = (0, $fHYTQ$reactariautils.filterDOMProps)(item.props, {
573
406
  isLink: !!(item === null || item === void 0 ? void 0 : (_item_props = item.props) === null || _item_props === void 0 ? void 0 : _item_props.href)
@@ -576,7 +409,10 @@ function $38191ed02615ec07$export$9d32628fc2aea7da(props, state, ref) {
576
409
  return {
577
410
  menuItemProps: {
578
411
  ...ariaProps,
579
- ...(0, $fHYTQ$reactariautils.mergeProps)(domProps, itemProps, pressProps, hoverProps, keyboardProps)
412
+ ...(0, $fHYTQ$reactariautils.mergeProps)(domProps, isTrigger ? {
413
+ onFocus: itemProps.onFocus
414
+ } : itemProps, pressProps, hoverProps, keyboardProps, focusProps),
415
+ tabIndex: itemProps.tabIndex != null ? -1 : undefined
580
416
  },
581
417
  labelProps: {
582
418
  id: labelId
@@ -629,6 +465,284 @@ function $63008655e23408c5$export$73f7a44322579622(props) {
629
465
  }
630
466
 
631
467
 
468
+ /*
469
+ * Copyright 2023 Adobe. All rights reserved.
470
+ * This file is licensed to you under the Apache License, Version 2.0 (the "License");
471
+ * you may not use this file except in compliance with the License. You may obtain a copy
472
+ * of the License at http://www.apache.org/licenses/LICENSE-2.0
473
+ *
474
+ * Unless required by applicable law or agreed to in writing, software distributed under
475
+ * the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS
476
+ * OF ANY KIND, either express or implied. See the License for the specific language
477
+ * governing permissions and limitations under the License.
478
+ */
479
+
480
+
481
+
482
+
483
+
484
+ const $62347d8c4183e713$var$ALLOWED_INVALID_MOVEMENTS = 2;
485
+ const $62347d8c4183e713$var$THROTTLE_TIME = 50;
486
+ const $62347d8c4183e713$var$TIMEOUT_TIME = 1000;
487
+ const $62347d8c4183e713$var$ANGLE_PADDING = Math.PI / 12; // 15°
488
+ function $62347d8c4183e713$export$85ec83e04c95f50a(options) {
489
+ let { menuRef: menuRef, submenuRef: submenuRef, isOpen: isOpen, isDisabled: isDisabled } = options;
490
+ let prevPointerPos = (0, $fHYTQ$react.useRef)();
491
+ let submenuRect = (0, $fHYTQ$react.useRef)();
492
+ let lastProcessedTime = (0, $fHYTQ$react.useRef)(0);
493
+ let timeout = (0, $fHYTQ$react.useRef)();
494
+ let autoCloseTimeout = (0, $fHYTQ$react.useRef)();
495
+ let submenuSide = (0, $fHYTQ$react.useRef)();
496
+ let movementsTowardsSubmenuCount = (0, $fHYTQ$react.useRef)(2);
497
+ let [preventPointerEvents, setPreventPointerEvents] = (0, $fHYTQ$react.useState)(false);
498
+ let updateSubmenuRect = ()=>{
499
+ if (submenuRef.current) {
500
+ submenuRect.current = submenuRef.current.getBoundingClientRect();
501
+ submenuSide.current = undefined;
502
+ }
503
+ };
504
+ (0, $fHYTQ$reactariautils.useResizeObserver)({
505
+ ref: submenuRef,
506
+ onResize: updateSubmenuRect
507
+ });
508
+ let reset = ()=>{
509
+ setPreventPointerEvents(false);
510
+ movementsTowardsSubmenuCount.current = $62347d8c4183e713$var$ALLOWED_INVALID_MOVEMENTS;
511
+ };
512
+ let modality = (0, $fHYTQ$reactariainteractions.useInteractionModality)();
513
+ (0, $fHYTQ$react.useEffect)(()=>{
514
+ if (preventPointerEvents && menuRef.current) menuRef.current.style.pointerEvents = "none";
515
+ else menuRef.current.style.pointerEvents = "";
516
+ }, [
517
+ menuRef,
518
+ preventPointerEvents
519
+ ]);
520
+ (0, $fHYTQ$react.useEffect)(()=>{
521
+ let submenu = submenuRef.current;
522
+ let menu = menuRef.current;
523
+ if (isDisabled || !submenu || !isOpen || modality !== "pointer") {
524
+ reset();
525
+ return;
526
+ }
527
+ submenuRect.current = submenu.getBoundingClientRect();
528
+ let onPointerMove = (e)=>{
529
+ if (e.pointerType === "touch" || e.pointerType === "pen") return;
530
+ let currentTime = Date.now();
531
+ // Throttle
532
+ if (currentTime - lastProcessedTime.current < $62347d8c4183e713$var$THROTTLE_TIME) return;
533
+ clearTimeout(timeout.current);
534
+ clearTimeout(autoCloseTimeout.current);
535
+ let { clientX: mouseX, clientY: mouseY } = e;
536
+ if (!prevPointerPos.current) {
537
+ prevPointerPos.current = {
538
+ x: mouseX,
539
+ y: mouseY
540
+ };
541
+ return;
542
+ }
543
+ if (!submenuRect.current) return;
544
+ if (!submenuSide.current) submenuSide.current = mouseX > submenuRect.current.right ? "left" : "right";
545
+ // Pointer is outside of parent menu
546
+ if (mouseX < menu.getBoundingClientRect().left || mouseX > menu.getBoundingClientRect().right || mouseY < menu.getBoundingClientRect().top || mouseY > menu.getBoundingClientRect().bottom) {
547
+ reset();
548
+ return;
549
+ }
550
+ /* Check if pointer is moving towards submenu.
551
+ Uses the 2-argument arctangent (https://en.wikipedia.org/wiki/Atan2) to calculate:
552
+ - angle between previous pointer and top of submenu
553
+ - angle between previous pointer and bottom of submenu
554
+ - angle between previous pointer and current pointer (delta)
555
+ If the pointer delta angle value is between the top and bottom angle values, we know the pointer is moving towards the submenu.
556
+ */ let prevMouseX = prevPointerPos.current.x;
557
+ let prevMouseY = prevPointerPos.current.y;
558
+ let toSubmenuX = submenuSide.current === "right" ? submenuRect.current.left - prevMouseX : prevMouseX - submenuRect.current.right;
559
+ let angleTop = Math.atan2(prevMouseY - submenuRect.current.top, toSubmenuX) + $62347d8c4183e713$var$ANGLE_PADDING;
560
+ let angleBottom = Math.atan2(prevMouseY - submenuRect.current.bottom, toSubmenuX) - $62347d8c4183e713$var$ANGLE_PADDING;
561
+ let anglePointer = Math.atan2(prevMouseY - mouseY, submenuSide.current === "left" ? -(mouseX - prevMouseX) : mouseX - prevMouseX);
562
+ let isMovingTowardsSubmenu = anglePointer < angleTop && anglePointer > angleBottom;
563
+ movementsTowardsSubmenuCount.current = isMovingTowardsSubmenu ? Math.min(movementsTowardsSubmenuCount.current + 1, $62347d8c4183e713$var$ALLOWED_INVALID_MOVEMENTS) : Math.max(movementsTowardsSubmenuCount.current - 1, 0);
564
+ if (movementsTowardsSubmenuCount.current >= $62347d8c4183e713$var$ALLOWED_INVALID_MOVEMENTS) setPreventPointerEvents(true);
565
+ else setPreventPointerEvents(false);
566
+ lastProcessedTime.current = currentTime;
567
+ prevPointerPos.current = {
568
+ x: mouseX,
569
+ y: mouseY
570
+ };
571
+ // If the pointer is moving towards the submenu, start a timeout to close if no other movements are made after 500ms.
572
+ if (isMovingTowardsSubmenu) timeout.current = setTimeout(()=>{
573
+ reset();
574
+ autoCloseTimeout.current = setTimeout(()=>{
575
+ // Fire a pointerover event to trigger the menu to close.
576
+ // Wait until pointer-events:none is no longer applied
577
+ let target = document.elementFromPoint(mouseX, mouseY);
578
+ if (target && menu.contains(target)) target.dispatchEvent(new PointerEvent("pointerover", {
579
+ bubbles: true,
580
+ cancelable: true
581
+ }));
582
+ }, 100);
583
+ }, $62347d8c4183e713$var$TIMEOUT_TIME);
584
+ };
585
+ window.addEventListener("pointermove", onPointerMove);
586
+ return ()=>{
587
+ window.removeEventListener("pointermove", onPointerMove);
588
+ clearTimeout(timeout.current);
589
+ clearTimeout(autoCloseTimeout.current);
590
+ movementsTowardsSubmenuCount.current = $62347d8c4183e713$var$ALLOWED_INVALID_MOVEMENTS;
591
+ };
592
+ }, [
593
+ isDisabled,
594
+ isOpen,
595
+ menuRef,
596
+ modality,
597
+ setPreventPointerEvents,
598
+ submenuRef
599
+ ]);
600
+ }
601
+
602
+
603
+ function $5f4753043c9f6cdf$export$3819f8ee9f4ce664(props, state, ref) {
604
+ let { parentMenuRef: parentMenuRef, submenuRef: submenuRef, type: type = "menu", isDisabled: isDisabled, node: node } = props;
605
+ let submenuTriggerId = (0, $fHYTQ$reactariautils.useId)();
606
+ let overlayId = (0, $fHYTQ$reactariautils.useId)();
607
+ let { direction: direction } = (0, $fHYTQ$reactariai18n.useLocale)();
608
+ let openTimeout = (0, $fHYTQ$react.useRef)();
609
+ let cancelOpenTimeout = (0, $fHYTQ$react.useCallback)(()=>{
610
+ if (openTimeout.current) {
611
+ clearTimeout(openTimeout.current);
612
+ openTimeout.current = undefined;
613
+ }
614
+ }, [
615
+ openTimeout
616
+ ]);
617
+ let onSubmenuOpen = (0, $fHYTQ$reactariautils.useEffectEvent)((focusStrategy)=>{
618
+ cancelOpenTimeout();
619
+ state.open(focusStrategy);
620
+ });
621
+ let onSubmenuClose = (0, $fHYTQ$reactariautils.useEffectEvent)(()=>{
622
+ cancelOpenTimeout();
623
+ state.close();
624
+ });
625
+ (0, $fHYTQ$reactariautils.useLayoutEffect)(()=>{
626
+ return ()=>{
627
+ cancelOpenTimeout();
628
+ };
629
+ }, [
630
+ cancelOpenTimeout
631
+ ]);
632
+ let submenuKeyDown = (e)=>{
633
+ switch(e.key){
634
+ case "ArrowLeft":
635
+ if (direction === "ltr" && e.currentTarget.contains(e.target)) {
636
+ e.stopPropagation();
637
+ onSubmenuClose();
638
+ ref.current.focus();
639
+ }
640
+ break;
641
+ case "ArrowRight":
642
+ if (direction === "rtl" && e.currentTarget.contains(e.target)) {
643
+ e.stopPropagation();
644
+ onSubmenuClose();
645
+ ref.current.focus();
646
+ }
647
+ break;
648
+ case "Escape":
649
+ e.stopPropagation();
650
+ state.closeAll();
651
+ break;
652
+ }
653
+ };
654
+ let submenuProps = {
655
+ id: overlayId,
656
+ "aria-label": node.textValue,
657
+ submenuLevel: state.submenuLevel,
658
+ ...type === "menu" && {
659
+ onClose: state.closeAll,
660
+ autoFocus: state.focusStrategy,
661
+ onKeyDown: submenuKeyDown
662
+ }
663
+ };
664
+ let submenuTriggerKeyDown = (e)=>{
665
+ switch(e.key){
666
+ case "ArrowRight":
667
+ if (!isDisabled) {
668
+ if (direction === "ltr") {
669
+ if (!state.isOpen) onSubmenuOpen("first");
670
+ if (type === "menu" && !!(submenuRef === null || submenuRef === void 0 ? void 0 : submenuRef.current) && document.activeElement === (ref === null || ref === void 0 ? void 0 : ref.current)) submenuRef.current.focus();
671
+ } else if (state.isOpen) onSubmenuClose();
672
+ else e.continuePropagation();
673
+ }
674
+ break;
675
+ case "ArrowLeft":
676
+ if (!isDisabled) {
677
+ if (direction === "rtl") {
678
+ if (!state.isOpen) onSubmenuOpen("first");
679
+ if (type === "menu" && !!(submenuRef === null || submenuRef === void 0 ? void 0 : submenuRef.current) && document.activeElement === (ref === null || ref === void 0 ? void 0 : ref.current)) submenuRef.current.focus();
680
+ } else if (state.isOpen) onSubmenuClose();
681
+ else e.continuePropagation();
682
+ }
683
+ break;
684
+ case "Escape":
685
+ state.closeAll();
686
+ break;
687
+ default:
688
+ e.continuePropagation();
689
+ break;
690
+ }
691
+ };
692
+ let onPressStart = (e)=>{
693
+ if (!isDisabled && (e.pointerType === "virtual" || e.pointerType === "keyboard")) // If opened with a screen reader or keyboard, auto focus the first submenu item.
694
+ onSubmenuOpen("first");
695
+ };
696
+ let onPress = (e)=>{
697
+ if (!isDisabled && (e.pointerType === "touch" || e.pointerType === "mouse")) // For touch or on a desktop device with a small screen open on press up to possible problems with
698
+ // press up happening on the newly opened tray items
699
+ onSubmenuOpen();
700
+ };
701
+ let onHoverChange = (isHovered)=>{
702
+ if (!isDisabled) {
703
+ if (isHovered && !state.isOpen) {
704
+ if (!openTimeout.current) openTimeout.current = setTimeout(()=>{
705
+ onSubmenuOpen();
706
+ }, 200);
707
+ } else if (!isHovered) cancelOpenTimeout();
708
+ }
709
+ };
710
+ let onBlur = (e)=>{
711
+ if (state.isOpen && parentMenuRef.current.contains(e.relatedTarget)) onSubmenuClose();
712
+ };
713
+ let shouldCloseOnInteractOutside = (target)=>{
714
+ if (target !== ref.current) return true;
715
+ return false;
716
+ };
717
+ (0, $62347d8c4183e713$export$85ec83e04c95f50a)({
718
+ menuRef: parentMenuRef,
719
+ submenuRef: submenuRef,
720
+ isOpen: state.isOpen,
721
+ isDisabled: isDisabled
722
+ });
723
+ return {
724
+ submenuTriggerProps: {
725
+ id: submenuTriggerId,
726
+ "aria-controls": state.isOpen ? overlayId : undefined,
727
+ "aria-haspopup": !isDisabled ? type : undefined,
728
+ "aria-expanded": state.isOpen ? "true" : "false",
729
+ onPressStart: onPressStart,
730
+ onPress: onPress,
731
+ onHoverChange: onHoverChange,
732
+ onKeyDown: submenuTriggerKeyDown,
733
+ onBlur: onBlur,
734
+ isOpen: state.isOpen
735
+ },
736
+ submenuProps: submenuProps,
737
+ popoverProps: {
738
+ isNonModal: true,
739
+ disableFocusManagement: true,
740
+ shouldCloseOnInteractOutside: shouldCloseOnInteractOutside
741
+ }
742
+ };
743
+ }
744
+
745
+
632
746
 
633
747
 
634
748
  //# sourceMappingURL=main.js.map