primereact 10.2.1 → 10.3.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 (558) hide show
  1. package/accordion/accordion.cjs.js +83 -11
  2. package/accordion/accordion.cjs.min.js +1 -1
  3. package/accordion/accordion.d.ts +1 -1
  4. package/accordion/accordion.esm.js +83 -11
  5. package/accordion/accordion.esm.min.js +1 -1
  6. package/accordion/accordion.js +81 -9
  7. package/accordion/accordion.min.js +1 -1
  8. package/api/api.cjs.js +24 -0
  9. package/api/api.cjs.min.js +1 -1
  10. package/api/api.d.ts +13 -246
  11. package/api/api.esm.js +24 -0
  12. package/api/api.esm.min.js +1 -1
  13. package/api/api.js +24 -0
  14. package/api/api.min.js +1 -1
  15. package/breadcrumb/breadcrumb.cjs.js +12 -6
  16. package/breadcrumb/breadcrumb.cjs.min.js +1 -1
  17. package/breadcrumb/breadcrumb.esm.js +12 -6
  18. package/breadcrumb/breadcrumb.esm.min.js +1 -1
  19. package/breadcrumb/breadcrumb.js +12 -6
  20. package/breadcrumb/breadcrumb.min.js +1 -1
  21. package/calendar/calendar.cjs.js +6 -9
  22. package/calendar/calendar.cjs.min.js +1 -1
  23. package/calendar/calendar.esm.js +6 -9
  24. package/calendar/calendar.esm.min.js +1 -1
  25. package/calendar/calendar.js +6 -9
  26. package/calendar/calendar.min.js +1 -1
  27. package/carousel/carousel.cjs.js +102 -8
  28. package/carousel/carousel.cjs.min.js +1 -1
  29. package/carousel/carousel.esm.js +103 -9
  30. package/carousel/carousel.esm.min.js +1 -1
  31. package/carousel/carousel.js +102 -8
  32. package/carousel/carousel.min.js +1 -1
  33. package/cascadeselect/cascadeselect.cjs.js +24 -5
  34. package/cascadeselect/cascadeselect.cjs.min.js +1 -1
  35. package/cascadeselect/cascadeselect.esm.js +25 -6
  36. package/cascadeselect/cascadeselect.esm.min.js +1 -1
  37. package/cascadeselect/cascadeselect.js +25 -7
  38. package/cascadeselect/cascadeselect.min.js +1 -1
  39. package/chip/chip.cjs.js +0 -1
  40. package/chip/chip.cjs.min.js +1 -1
  41. package/chip/chip.esm.js +0 -1
  42. package/chip/chip.esm.min.js +1 -1
  43. package/chip/chip.js +0 -1
  44. package/chip/chip.min.js +1 -1
  45. package/chips/chips.cjs.js +1 -2
  46. package/chips/chips.cjs.min.js +1 -1
  47. package/chips/chips.esm.js +1 -2
  48. package/chips/chips.esm.min.js +1 -1
  49. package/chips/chips.js +1 -2
  50. package/chips/chips.min.js +1 -1
  51. package/confirmdialog/confirmdialog.cjs.js +13 -8
  52. package/confirmdialog/confirmdialog.cjs.min.js +1 -1
  53. package/confirmdialog/confirmdialog.esm.js +13 -8
  54. package/confirmdialog/confirmdialog.esm.min.js +1 -1
  55. package/confirmdialog/confirmdialog.js +13 -8
  56. package/confirmdialog/confirmdialog.min.js +1 -1
  57. package/confirmpopup/confirmpopup.cjs.js +57 -36
  58. package/confirmpopup/confirmpopup.cjs.min.js +1 -1
  59. package/confirmpopup/confirmpopup.d.ts +29 -0
  60. package/confirmpopup/confirmpopup.esm.js +57 -36
  61. package/confirmpopup/confirmpopup.esm.min.js +1 -1
  62. package/confirmpopup/confirmpopup.js +57 -36
  63. package/confirmpopup/confirmpopup.min.js +1 -1
  64. package/contextmenu/contextmenu.cjs.js +640 -98
  65. package/contextmenu/contextmenu.cjs.min.js +1 -1
  66. package/contextmenu/contextmenu.d.ts +22 -0
  67. package/contextmenu/contextmenu.esm.js +640 -98
  68. package/contextmenu/contextmenu.esm.min.js +1 -1
  69. package/contextmenu/contextmenu.js +640 -98
  70. package/contextmenu/contextmenu.min.js +1 -1
  71. package/core/core.js +596 -130
  72. package/core/core.min.js +35 -35
  73. package/datatable/datatable.cjs.js +4 -7
  74. package/datatable/datatable.cjs.min.js +1 -1
  75. package/datatable/datatable.d.ts +1 -1
  76. package/datatable/datatable.esm.js +4 -7
  77. package/datatable/datatable.esm.min.js +1 -1
  78. package/datatable/datatable.js +4 -7
  79. package/datatable/datatable.min.js +1 -1
  80. package/dialog/dialog.cjs.js +86 -38
  81. package/dialog/dialog.cjs.min.js +1 -1
  82. package/dialog/dialog.d.ts +59 -0
  83. package/dialog/dialog.esm.js +86 -38
  84. package/dialog/dialog.esm.min.js +1 -1
  85. package/dialog/dialog.js +86 -38
  86. package/dialog/dialog.min.js +1 -1
  87. package/divider/divider.cjs.js +1 -0
  88. package/divider/divider.cjs.min.js +1 -1
  89. package/divider/divider.esm.js +1 -0
  90. package/divider/divider.esm.min.js +1 -1
  91. package/divider/divider.js +1 -0
  92. package/divider/divider.min.js +1 -1
  93. package/dock/dock.cjs.js +169 -33
  94. package/dock/dock.cjs.min.js +1 -1
  95. package/dock/dock.d.ts +15 -0
  96. package/dock/dock.esm.js +170 -34
  97. package/dock/dock.esm.min.js +1 -1
  98. package/dock/dock.js +169 -33
  99. package/dock/dock.min.js +1 -1
  100. package/dropdown/dropdown.cjs.js +25 -2
  101. package/dropdown/dropdown.cjs.min.js +1 -1
  102. package/dropdown/dropdown.esm.js +25 -2
  103. package/dropdown/dropdown.esm.min.js +1 -1
  104. package/dropdown/dropdown.js +26 -4
  105. package/dropdown/dropdown.min.js +1 -1
  106. package/fieldset/fieldset.cjs.js +12 -5
  107. package/fieldset/fieldset.cjs.min.js +1 -1
  108. package/fieldset/fieldset.esm.js +12 -5
  109. package/fieldset/fieldset.esm.min.js +1 -1
  110. package/fieldset/fieldset.js +12 -5
  111. package/fieldset/fieldset.min.js +1 -1
  112. package/fileupload/fileupload.cjs.js +14 -6
  113. package/fileupload/fileupload.cjs.min.js +1 -1
  114. package/fileupload/fileupload.d.ts +17 -1
  115. package/fileupload/fileupload.esm.js +14 -6
  116. package/fileupload/fileupload.esm.min.js +1 -1
  117. package/fileupload/fileupload.js +14 -6
  118. package/fileupload/fileupload.min.js +1 -1
  119. package/galleria/galleria.cjs.js +222 -42
  120. package/galleria/galleria.cjs.min.js +1 -1
  121. package/galleria/galleria.esm.js +224 -44
  122. package/galleria/galleria.esm.min.js +1 -1
  123. package/galleria/galleria.js +222 -42
  124. package/galleria/galleria.min.js +1 -1
  125. package/hooks/hooks.cjs.js +4 -2
  126. package/hooks/hooks.cjs.min.js +1 -1
  127. package/hooks/hooks.esm.js +4 -2
  128. package/hooks/hooks.esm.min.js +1 -1
  129. package/hooks/hooks.js +4 -2
  130. package/hooks/hooks.min.js +1 -1
  131. package/icons/arrowdown/index.cjs.js +12 -1
  132. package/icons/arrowdown/index.cjs.min.js +1 -1
  133. package/icons/arrowdown/index.esm.js +12 -1
  134. package/icons/arrowdown/index.esm.min.js +1 -1
  135. package/icons/arrowdown/index.js +12 -1
  136. package/icons/arrowdown/index.min.js +1 -1
  137. package/icons/arrowup/index.cjs.js +12 -1
  138. package/icons/arrowup/index.cjs.min.js +1 -1
  139. package/icons/arrowup/index.esm.js +12 -1
  140. package/icons/arrowup/index.esm.min.js +1 -1
  141. package/icons/arrowup/index.js +12 -1
  142. package/icons/arrowup/index.min.js +1 -1
  143. package/icons/ban/index.cjs.js +12 -1
  144. package/icons/ban/index.cjs.min.js +1 -1
  145. package/icons/ban/index.esm.js +12 -1
  146. package/icons/ban/index.esm.min.js +1 -1
  147. package/icons/ban/index.js +12 -1
  148. package/icons/ban/index.min.js +1 -1
  149. package/icons/download/index.cjs.js +12 -1
  150. package/icons/download/index.cjs.min.js +1 -1
  151. package/icons/download/index.esm.js +12 -1
  152. package/icons/download/index.esm.min.js +1 -1
  153. package/icons/download/index.js +12 -1
  154. package/icons/download/index.min.js +1 -1
  155. package/icons/exclamationtriangle/index.cjs.js +12 -1
  156. package/icons/exclamationtriangle/index.cjs.min.js +1 -1
  157. package/icons/exclamationtriangle/index.esm.js +12 -1
  158. package/icons/exclamationtriangle/index.esm.min.js +1 -1
  159. package/icons/exclamationtriangle/index.js +12 -1
  160. package/icons/exclamationtriangle/index.min.js +1 -1
  161. package/icons/eyeslash/index.cjs.js +12 -1
  162. package/icons/eyeslash/index.cjs.min.js +1 -1
  163. package/icons/eyeslash/index.esm.js +12 -1
  164. package/icons/eyeslash/index.esm.min.js +1 -1
  165. package/icons/eyeslash/index.js +12 -1
  166. package/icons/eyeslash/index.min.js +1 -1
  167. package/icons/filter/index.cjs.js +12 -1
  168. package/icons/filter/index.cjs.min.js +1 -1
  169. package/icons/filter/index.esm.js +12 -1
  170. package/icons/filter/index.esm.min.js +1 -1
  171. package/icons/filter/index.js +12 -1
  172. package/icons/filter/index.min.js +1 -1
  173. package/icons/filterslash/index.cjs.js +12 -1
  174. package/icons/filterslash/index.cjs.min.js +1 -1
  175. package/icons/filterslash/index.esm.js +12 -1
  176. package/icons/filterslash/index.esm.min.js +1 -1
  177. package/icons/filterslash/index.js +12 -1
  178. package/icons/filterslash/index.min.js +1 -1
  179. package/icons/infocircle/index.cjs.js +12 -1
  180. package/icons/infocircle/index.cjs.min.js +1 -1
  181. package/icons/infocircle/index.esm.js +12 -1
  182. package/icons/infocircle/index.esm.min.js +1 -1
  183. package/icons/infocircle/index.js +12 -1
  184. package/icons/infocircle/index.min.js +1 -1
  185. package/icons/pencil/index.cjs.js +12 -1
  186. package/icons/pencil/index.cjs.min.js +1 -1
  187. package/icons/pencil/index.esm.js +12 -1
  188. package/icons/pencil/index.esm.min.js +1 -1
  189. package/icons/pencil/index.js +12 -1
  190. package/icons/pencil/index.min.js +1 -1
  191. package/icons/plus/index.cjs.js +12 -1
  192. package/icons/plus/index.cjs.min.js +1 -1
  193. package/icons/plus/index.esm.js +12 -1
  194. package/icons/plus/index.esm.min.js +1 -1
  195. package/icons/plus/index.js +12 -1
  196. package/icons/plus/index.min.js +1 -1
  197. package/icons/refresh/index.cjs.js +12 -1
  198. package/icons/refresh/index.cjs.min.js +1 -1
  199. package/icons/refresh/index.esm.js +12 -1
  200. package/icons/refresh/index.esm.min.js +1 -1
  201. package/icons/refresh/index.js +12 -1
  202. package/icons/refresh/index.min.js +1 -1
  203. package/icons/search/index.cjs.js +12 -1
  204. package/icons/search/index.cjs.min.js +1 -1
  205. package/icons/search/index.esm.js +12 -1
  206. package/icons/search/index.esm.min.js +1 -1
  207. package/icons/search/index.js +12 -1
  208. package/icons/search/index.min.js +1 -1
  209. package/icons/searchminus/index.cjs.js +12 -1
  210. package/icons/searchminus/index.cjs.min.js +1 -1
  211. package/icons/searchminus/index.esm.js +12 -1
  212. package/icons/searchminus/index.esm.min.js +1 -1
  213. package/icons/searchminus/index.js +12 -1
  214. package/icons/searchminus/index.min.js +1 -1
  215. package/icons/searchplus/index.cjs.js +12 -1
  216. package/icons/searchplus/index.cjs.min.js +1 -1
  217. package/icons/searchplus/index.esm.js +12 -1
  218. package/icons/searchplus/index.esm.min.js +1 -1
  219. package/icons/searchplus/index.js +12 -1
  220. package/icons/searchplus/index.min.js +1 -1
  221. package/icons/sortalt/index.cjs.js +12 -1
  222. package/icons/sortalt/index.cjs.min.js +1 -1
  223. package/icons/sortalt/index.esm.js +12 -1
  224. package/icons/sortalt/index.esm.min.js +1 -1
  225. package/icons/sortalt/index.js +12 -1
  226. package/icons/sortalt/index.min.js +1 -1
  227. package/icons/sortamountdown/index.cjs.js +12 -1
  228. package/icons/sortamountdown/index.cjs.min.js +1 -1
  229. package/icons/sortamountdown/index.esm.js +12 -1
  230. package/icons/sortamountdown/index.esm.min.js +1 -1
  231. package/icons/sortamountdown/index.js +12 -1
  232. package/icons/sortamountdown/index.min.js +1 -1
  233. package/icons/sortamountupalt/index.cjs.js +12 -1
  234. package/icons/sortamountupalt/index.cjs.min.js +1 -1
  235. package/icons/sortamountupalt/index.esm.js +12 -1
  236. package/icons/sortamountupalt/index.esm.min.js +1 -1
  237. package/icons/sortamountupalt/index.js +12 -1
  238. package/icons/sortamountupalt/index.min.js +1 -1
  239. package/icons/spinner/index.cjs.js +12 -1
  240. package/icons/spinner/index.cjs.min.js +1 -1
  241. package/icons/spinner/index.esm.js +12 -1
  242. package/icons/spinner/index.esm.min.js +1 -1
  243. package/icons/spinner/index.js +12 -1
  244. package/icons/spinner/index.min.js +1 -1
  245. package/icons/star/index.cjs.js +12 -1
  246. package/icons/star/index.cjs.min.js +1 -1
  247. package/icons/star/index.esm.js +12 -1
  248. package/icons/star/index.esm.min.js +1 -1
  249. package/icons/star/index.js +12 -1
  250. package/icons/star/index.min.js +1 -1
  251. package/icons/starfill/index.cjs.js +12 -1
  252. package/icons/starfill/index.cjs.min.js +1 -1
  253. package/icons/starfill/index.esm.js +12 -1
  254. package/icons/starfill/index.esm.min.js +1 -1
  255. package/icons/starfill/index.js +12 -1
  256. package/icons/starfill/index.min.js +1 -1
  257. package/icons/thlarge/index.cjs.js +12 -1
  258. package/icons/thlarge/index.cjs.min.js +1 -1
  259. package/icons/thlarge/index.esm.js +12 -1
  260. package/icons/thlarge/index.esm.min.js +1 -1
  261. package/icons/thlarge/index.js +12 -1
  262. package/icons/thlarge/index.min.js +1 -1
  263. package/icons/timescircle/index.cjs.js +12 -1
  264. package/icons/timescircle/index.cjs.min.js +1 -1
  265. package/icons/timescircle/index.esm.js +12 -1
  266. package/icons/timescircle/index.esm.min.js +1 -1
  267. package/icons/timescircle/index.js +12 -1
  268. package/icons/timescircle/index.min.js +1 -1
  269. package/icons/trash/index.cjs.js +12 -1
  270. package/icons/trash/index.cjs.min.js +1 -1
  271. package/icons/trash/index.esm.js +12 -1
  272. package/icons/trash/index.esm.min.js +1 -1
  273. package/icons/trash/index.js +12 -1
  274. package/icons/trash/index.min.js +1 -1
  275. package/icons/undo/index.cjs.js +12 -1
  276. package/icons/undo/index.cjs.min.js +1 -1
  277. package/icons/undo/index.esm.js +12 -1
  278. package/icons/undo/index.esm.min.js +1 -1
  279. package/icons/undo/index.js +12 -1
  280. package/icons/undo/index.min.js +1 -1
  281. package/icons/upload/index.cjs.js +12 -1
  282. package/icons/upload/index.cjs.min.js +1 -1
  283. package/icons/upload/index.esm.js +12 -1
  284. package/icons/upload/index.esm.min.js +1 -1
  285. package/icons/upload/index.js +12 -1
  286. package/icons/upload/index.min.js +1 -1
  287. package/icons/windowmaximize/index.cjs.js +12 -1
  288. package/icons/windowmaximize/index.cjs.min.js +1 -1
  289. package/icons/windowmaximize/index.esm.js +12 -1
  290. package/icons/windowmaximize/index.esm.min.js +1 -1
  291. package/icons/windowmaximize/index.js +12 -1
  292. package/icons/windowmaximize/index.min.js +1 -1
  293. package/icons/windowminimize/index.cjs.js +12 -1
  294. package/icons/windowminimize/index.cjs.min.js +1 -1
  295. package/icons/windowminimize/index.esm.js +12 -1
  296. package/icons/windowminimize/index.esm.min.js +1 -1
  297. package/icons/windowminimize/index.js +12 -1
  298. package/icons/windowminimize/index.min.js +1 -1
  299. package/image/image.cjs.js +71 -16
  300. package/image/image.cjs.min.js +1 -1
  301. package/image/image.esm.js +71 -16
  302. package/image/image.esm.min.js +1 -1
  303. package/image/image.js +71 -16
  304. package/image/image.min.js +1 -1
  305. package/megamenu/megamenu.cjs.js +787 -168
  306. package/megamenu/megamenu.cjs.min.js +1 -1
  307. package/megamenu/megamenu.d.ts +14 -0
  308. package/megamenu/megamenu.esm.js +790 -171
  309. package/megamenu/megamenu.esm.min.js +1 -1
  310. package/megamenu/megamenu.js +787 -168
  311. package/megamenu/megamenu.min.js +1 -1
  312. package/mention/mention.cjs.js +10 -9
  313. package/mention/mention.cjs.min.js +1 -1
  314. package/mention/mention.esm.js +11 -10
  315. package/mention/mention.esm.min.js +1 -1
  316. package/mention/mention.js +10 -9
  317. package/mention/mention.min.js +1 -1
  318. package/menu/menu.cjs.js +214 -68
  319. package/menu/menu.cjs.min.js +1 -1
  320. package/menu/menu.d.ts +14 -0
  321. package/menu/menu.esm.js +214 -68
  322. package/menu/menu.esm.min.js +1 -1
  323. package/menu/menu.js +214 -68
  324. package/menu/menu.min.js +1 -1
  325. package/menubar/menubar.cjs.js +714 -179
  326. package/menubar/menubar.cjs.min.js +1 -1
  327. package/menubar/menubar.d.ts +18 -0
  328. package/menubar/menubar.esm.js +717 -182
  329. package/menubar/menubar.esm.min.js +1 -1
  330. package/menubar/menubar.js +714 -179
  331. package/menubar/menubar.min.js +1 -1
  332. package/message/message.cjs.js +2 -1
  333. package/message/message.cjs.min.js +1 -1
  334. package/message/message.esm.js +2 -1
  335. package/message/message.esm.min.js +1 -1
  336. package/message/message.js +2 -1
  337. package/message/message.min.js +1 -1
  338. package/messages/messages.cjs.js +4 -2
  339. package/messages/messages.cjs.min.js +1 -1
  340. package/messages/messages.esm.js +4 -2
  341. package/messages/messages.esm.min.js +1 -1
  342. package/messages/messages.js +4 -2
  343. package/messages/messages.min.js +1 -1
  344. package/multiselect/multiselect.cjs.js +11 -5
  345. package/multiselect/multiselect.cjs.min.js +1 -1
  346. package/multiselect/multiselect.esm.js +11 -5
  347. package/multiselect/multiselect.esm.min.js +1 -1
  348. package/multiselect/multiselect.js +12 -7
  349. package/multiselect/multiselect.min.js +1 -1
  350. package/orderlist/orderlist.cjs.js +259 -104
  351. package/orderlist/orderlist.cjs.min.js +1 -1
  352. package/orderlist/orderlist.d.ts +8 -0
  353. package/orderlist/orderlist.esm.js +260 -105
  354. package/orderlist/orderlist.esm.min.js +1 -1
  355. package/orderlist/orderlist.js +259 -104
  356. package/orderlist/orderlist.min.js +1 -1
  357. package/overlaypanel/overlaypanel.cjs.js +4 -2
  358. package/overlaypanel/overlaypanel.cjs.min.js +1 -1
  359. package/overlaypanel/overlaypanel.esm.js +4 -2
  360. package/overlaypanel/overlaypanel.esm.min.js +1 -1
  361. package/overlaypanel/overlaypanel.js +4 -2
  362. package/overlaypanel/overlaypanel.min.js +1 -1
  363. package/package.json +1 -1
  364. package/panel/panel.cjs.js +22 -19
  365. package/panel/panel.cjs.min.js +1 -1
  366. package/panel/panel.esm.js +22 -19
  367. package/panel/panel.esm.min.js +1 -1
  368. package/panel/panel.js +22 -19
  369. package/panel/panel.min.js +1 -1
  370. package/panelmenu/panelmenu.cjs.js +775 -196
  371. package/panelmenu/panelmenu.cjs.min.js +1 -1
  372. package/panelmenu/panelmenu.d.ts +15 -0
  373. package/panelmenu/panelmenu.esm.js +776 -197
  374. package/panelmenu/panelmenu.esm.min.js +1 -1
  375. package/panelmenu/panelmenu.js +775 -196
  376. package/panelmenu/panelmenu.min.js +1 -1
  377. package/passthrough/tailwind/index.cjs.js +5 -4
  378. package/passthrough/tailwind/index.cjs.min.js +1 -1
  379. package/passthrough/tailwind/index.esm.js +5 -4
  380. package/passthrough/tailwind/index.esm.min.js +1 -1
  381. package/passthrough/tailwind/index.js +5 -4
  382. package/passthrough/tailwind/index.min.js +1 -1
  383. package/password/password.cjs.js +1 -1
  384. package/password/password.cjs.min.js +1 -1
  385. package/password/password.esm.js +1 -1
  386. package/password/password.esm.min.js +1 -1
  387. package/password/password.js +1 -1
  388. package/password/password.min.js +1 -1
  389. package/primereact.all.cjs.js +9489 -5244
  390. package/primereact.all.cjs.min.js +1 -1
  391. package/primereact.all.esm.js +9489 -5244
  392. package/primereact.all.esm.min.js +1 -1
  393. package/primereact.all.js +9489 -5244
  394. package/primereact.all.min.js +1 -1
  395. package/radiobutton/radiobutton.cjs.js +3 -2
  396. package/radiobutton/radiobutton.cjs.min.js +1 -1
  397. package/radiobutton/radiobutton.esm.js +3 -2
  398. package/radiobutton/radiobutton.esm.min.js +1 -1
  399. package/radiobutton/radiobutton.js +3 -2
  400. package/radiobutton/radiobutton.min.js +1 -1
  401. package/resources/themes/arya-blue/theme.css +844 -789
  402. package/resources/themes/arya-green/theme.css +844 -789
  403. package/resources/themes/arya-orange/theme.css +844 -789
  404. package/resources/themes/arya-purple/theme.css +844 -789
  405. package/resources/themes/bootstrap4-dark-blue/theme.css +654 -600
  406. package/resources/themes/bootstrap4-dark-purple/theme.css +654 -600
  407. package/resources/themes/bootstrap4-light-blue/theme.css +658 -604
  408. package/resources/themes/bootstrap4-light-purple/theme.css +658 -604
  409. package/resources/themes/fluent-light/theme.css +661 -622
  410. package/resources/themes/lara-dark-amber/theme.css +665 -625
  411. package/resources/themes/lara-dark-blue/theme.css +665 -625
  412. package/resources/themes/lara-dark-cyan/theme.css +665 -625
  413. package/resources/themes/lara-dark-green/theme.css +665 -625
  414. package/resources/themes/lara-dark-indigo/theme.css +665 -625
  415. package/resources/themes/lara-dark-pink/theme.css +665 -625
  416. package/resources/themes/lara-dark-purple/theme.css +665 -625
  417. package/resources/themes/lara-dark-teal/theme.css +665 -625
  418. package/resources/themes/lara-light-amber/theme.css +758 -716
  419. package/resources/themes/lara-light-blue/theme.css +992 -950
  420. package/resources/themes/lara-light-cyan/theme.css +758 -716
  421. package/resources/themes/lara-light-green/theme.css +797 -755
  422. package/resources/themes/lara-light-indigo/theme.css +1008 -966
  423. package/resources/themes/lara-light-pink/theme.css +758 -716
  424. package/resources/themes/lara-light-purple/theme.css +1008 -966
  425. package/resources/themes/lara-light-teal/theme.css +758 -716
  426. package/resources/themes/luna-amber/theme.css +931 -877
  427. package/resources/themes/luna-blue/theme.css +931 -877
  428. package/resources/themes/luna-green/theme.css +931 -877
  429. package/resources/themes/luna-pink/theme.css +931 -877
  430. package/resources/themes/md-dark-deeppurple/theme.css +900 -941
  431. package/resources/themes/md-dark-indigo/theme.css +905 -946
  432. package/resources/themes/md-light-deeppurple/theme.css +862 -903
  433. package/resources/themes/md-light-indigo/theme.css +862 -903
  434. package/resources/themes/mdc-dark-deeppurple/theme.css +900 -941
  435. package/resources/themes/mdc-dark-indigo/theme.css +905 -946
  436. package/resources/themes/mdc-light-deeppurple/theme.css +862 -903
  437. package/resources/themes/mdc-light-indigo/theme.css +862 -903
  438. package/resources/themes/mira/theme.css +1546 -1525
  439. package/resources/themes/nano/theme.css +696 -639
  440. package/resources/themes/nova/theme.css +690 -637
  441. package/resources/themes/nova-accent/theme.css +692 -636
  442. package/resources/themes/nova-alt/theme.css +690 -637
  443. package/resources/themes/rhea/theme.css +865 -809
  444. package/resources/themes/saga-blue/theme.css +883 -828
  445. package/resources/themes/saga-green/theme.css +883 -828
  446. package/resources/themes/saga-orange/theme.css +883 -828
  447. package/resources/themes/saga-purple/theme.css +883 -828
  448. package/resources/themes/soho-dark/theme.css +684 -635
  449. package/resources/themes/soho-light/theme.css +672 -625
  450. package/resources/themes/tailwind-light/theme.css +1354 -1299
  451. package/resources/themes/vela-blue/theme.css +852 -797
  452. package/resources/themes/vela-green/theme.css +852 -797
  453. package/resources/themes/vela-orange/theme.css +852 -797
  454. package/resources/themes/vela-purple/theme.css +852 -797
  455. package/resources/themes/viva-dark/theme.css +647 -613
  456. package/resources/themes/viva-light/theme.css +728 -694
  457. package/ripple/ripple.cjs.js +65 -2
  458. package/ripple/ripple.cjs.min.js +1 -1
  459. package/ripple/ripple.esm.js +65 -2
  460. package/ripple/ripple.esm.min.js +1 -1
  461. package/ripple/ripple.js +65 -2
  462. package/ripple/ripple.min.js +1 -1
  463. package/scrollpanel/scrollpanel.cjs.js +183 -3
  464. package/scrollpanel/scrollpanel.cjs.min.js +1 -1
  465. package/scrollpanel/scrollpanel.esm.js +184 -4
  466. package/scrollpanel/scrollpanel.esm.min.js +1 -1
  467. package/scrollpanel/scrollpanel.js +183 -3
  468. package/scrollpanel/scrollpanel.min.js +1 -1
  469. package/sidebar/sidebar.cjs.js +58 -45
  470. package/sidebar/sidebar.cjs.min.js +1 -1
  471. package/sidebar/sidebar.d.ts +23 -1
  472. package/sidebar/sidebar.esm.js +58 -45
  473. package/sidebar/sidebar.esm.min.js +1 -1
  474. package/sidebar/sidebar.js +58 -45
  475. package/sidebar/sidebar.min.js +1 -1
  476. package/slidemenu/slidemenu.cjs.js +4 -2
  477. package/slidemenu/slidemenu.cjs.min.js +1 -1
  478. package/slidemenu/slidemenu.esm.js +4 -2
  479. package/slidemenu/slidemenu.esm.min.js +1 -1
  480. package/slidemenu/slidemenu.js +4 -2
  481. package/slidemenu/slidemenu.min.js +1 -1
  482. package/slider/slider.cjs.js +1 -1
  483. package/slider/slider.cjs.min.js +1 -1
  484. package/slider/slider.esm.js +1 -1
  485. package/slider/slider.esm.min.js +1 -1
  486. package/slider/slider.js +1 -1
  487. package/slider/slider.min.js +1 -1
  488. package/speeddial/speeddial.cjs.js +264 -29
  489. package/speeddial/speeddial.cjs.min.js +1 -1
  490. package/speeddial/speeddial.esm.js +266 -31
  491. package/speeddial/speeddial.esm.min.js +1 -1
  492. package/speeddial/speeddial.js +264 -29
  493. package/speeddial/speeddial.min.js +1 -1
  494. package/splitbutton/splitbutton.cjs.js +1048 -267
  495. package/splitbutton/splitbutton.cjs.min.js +1 -1
  496. package/splitbutton/splitbutton.d.ts +4 -4
  497. package/splitbutton/splitbutton.esm.js +1049 -268
  498. package/splitbutton/splitbutton.esm.min.js +1 -1
  499. package/splitbutton/splitbutton.js +1048 -269
  500. package/splitbutton/splitbutton.min.js +1 -1
  501. package/splitter/splitter.cjs.js +103 -15
  502. package/splitter/splitter.cjs.min.js +1 -1
  503. package/splitter/splitter.d.ts +5 -0
  504. package/splitter/splitter.esm.js +103 -15
  505. package/splitter/splitter.esm.min.js +1 -1
  506. package/splitter/splitter.js +103 -15
  507. package/splitter/splitter.min.js +1 -1
  508. package/steps/steps.cjs.js +99 -13
  509. package/steps/steps.cjs.min.js +1 -1
  510. package/steps/steps.esm.js +100 -14
  511. package/steps/steps.esm.min.js +1 -1
  512. package/steps/steps.js +99 -13
  513. package/steps/steps.min.js +1 -1
  514. package/tabmenu/tabmenu.cjs.js +104 -10
  515. package/tabmenu/tabmenu.cjs.min.js +1 -1
  516. package/tabmenu/tabmenu.esm.js +104 -10
  517. package/tabmenu/tabmenu.esm.min.js +1 -1
  518. package/tabmenu/tabmenu.js +104 -10
  519. package/tabmenu/tabmenu.min.js +1 -1
  520. package/tabview/tabview.cjs.js +106 -12
  521. package/tabview/tabview.cjs.min.js +1 -1
  522. package/tabview/tabview.esm.js +106 -12
  523. package/tabview/tabview.esm.min.js +1 -1
  524. package/tabview/tabview.js +106 -12
  525. package/tabview/tabview.min.js +1 -1
  526. package/tieredmenu/tieredmenu.cjs.js +752 -274
  527. package/tieredmenu/tieredmenu.cjs.min.js +1 -1
  528. package/tieredmenu/tieredmenu.d.ts +10 -0
  529. package/tieredmenu/tieredmenu.esm.js +754 -276
  530. package/tieredmenu/tieredmenu.esm.min.js +1 -1
  531. package/tieredmenu/tieredmenu.js +752 -274
  532. package/tieredmenu/tieredmenu.min.js +1 -1
  533. package/toast/toast.cjs.js +6 -1
  534. package/toast/toast.cjs.min.js +1 -1
  535. package/toast/toast.d.ts +35 -1
  536. package/toast/toast.esm.js +6 -1
  537. package/toast/toast.esm.min.js +1 -1
  538. package/toast/toast.js +6 -1
  539. package/toast/toast.min.js +1 -1
  540. package/tree/tree.cjs.js +51 -54
  541. package/tree/tree.cjs.min.js +1 -1
  542. package/tree/tree.esm.js +51 -54
  543. package/tree/tree.esm.min.js +1 -1
  544. package/tree/tree.js +51 -54
  545. package/tree/tree.min.js +1 -1
  546. package/treetable/treetable.cjs.js +11 -28
  547. package/treetable/treetable.cjs.min.js +1 -1
  548. package/treetable/treetable.esm.js +11 -28
  549. package/treetable/treetable.esm.min.js +1 -1
  550. package/treetable/treetable.js +11 -28
  551. package/treetable/treetable.min.js +1 -1
  552. package/utils/utils.cjs.js +12 -1
  553. package/utils/utils.cjs.min.js +1 -1
  554. package/utils/utils.esm.js +12 -1
  555. package/utils/utils.esm.min.js +1 -1
  556. package/utils/utils.js +12 -1
  557. package/utils/utils.min.js +1 -1
  558. package/web-types.json +267 -5
package/menu/menu.esm.js CHANGED
@@ -64,6 +64,37 @@ function _defineProperty(obj, key, value) {
64
64
  return obj;
65
65
  }
66
66
 
67
+ function _arrayLikeToArray(arr, len) {
68
+ if (len == null || len > arr.length) len = arr.length;
69
+ for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i];
70
+ return arr2;
71
+ }
72
+
73
+ function _arrayWithoutHoles(arr) {
74
+ if (Array.isArray(arr)) return _arrayLikeToArray(arr);
75
+ }
76
+
77
+ function _iterableToArray(iter) {
78
+ if (typeof Symbol !== "undefined" && iter[Symbol.iterator] != null || iter["@@iterator"] != null) return Array.from(iter);
79
+ }
80
+
81
+ function _unsupportedIterableToArray(o, minLen) {
82
+ if (!o) return;
83
+ if (typeof o === "string") return _arrayLikeToArray(o, minLen);
84
+ var n = Object.prototype.toString.call(o).slice(8, -1);
85
+ if (n === "Object" && o.constructor) n = o.constructor.name;
86
+ if (n === "Map" || n === "Set") return Array.from(o);
87
+ if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen);
88
+ }
89
+
90
+ function _nonIterableSpread() {
91
+ throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.");
92
+ }
93
+
94
+ function _toConsumableArray(arr) {
95
+ return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray(arr) || _nonIterableSpread();
96
+ }
97
+
67
98
  function _arrayWithHoles(arr) {
68
99
  if (Array.isArray(arr)) return arr;
69
100
  }
@@ -96,21 +127,6 @@ function _iterableToArrayLimit(r, l) {
96
127
  }
97
128
  }
98
129
 
99
- function _arrayLikeToArray(arr, len) {
100
- if (len == null || len > arr.length) len = arr.length;
101
- for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i];
102
- return arr2;
103
- }
104
-
105
- function _unsupportedIterableToArray(o, minLen) {
106
- if (!o) return;
107
- if (typeof o === "string") return _arrayLikeToArray(o, minLen);
108
- var n = Object.prototype.toString.call(o).slice(8, -1);
109
- if (n === "Object" && o.constructor) n = o.constructor.name;
110
- if (n === "Map" || n === "Set") return Array.from(o);
111
- if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen);
112
- }
113
-
114
130
  function _nonIterableRest() {
115
131
  throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.");
116
132
  }
@@ -119,7 +135,7 @@ function _slicedToArray(arr, i) {
119
135
  return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest();
120
136
  }
121
137
 
122
- var styles = "\n@layer primereact {\n .p-menu-overlay {\n position: absolute;\n /* Github #3122: Prevent animation flickering */\n top: -9999px;\n left: -9999px;\n }\n \n .p-menu ul {\n margin: 0;\n padding: 0;\n list-style: none;\n }\n \n .p-menu .p-menuitem-link {\n cursor: pointer;\n display: flex;\n align-items: center;\n text-decoration: none;\n overflow: hidden;\n position: relative;\n }\n \n .p-menu .p-menuitem-text {\n line-height: 1;\n }\n}\n";
138
+ var styles = "\n@layer primereact {\n .p-menu-overlay {\n position: absolute;\n /* Github #3122: Prevent animation flickering */\n top: -9999px;\n left: -9999px;\n }\n\n .p-menu ul {\n margin: 0;\n padding: 0;\n list-style: none;\n }\n\n .p-menu .p-menuitem-link {\n cursor: pointer;\n display: flex;\n align-items: center;\n text-decoration: none;\n overflow: hidden;\n position: relative;\n }\n\n .p-menu .p-menuitem-text {\n line-height: 1;\n }\n}\n";
123
139
  var classes = {
124
140
  root: function root(_ref) {
125
141
  var props = _ref.props,
@@ -131,15 +147,21 @@ var classes = {
131
147
  });
132
148
  },
133
149
  menu: 'p-menu-list p-reset',
150
+ content: 'p-menuitem-content',
134
151
  action: function action(_ref2) {
135
152
  var item = _ref2.item;
136
153
  return classNames('p-menuitem-link', {
137
154
  'p-disabled': item.disabled
138
155
  });
139
156
  },
140
- menuitem: 'p-menuitem',
141
- submenuHeader: function submenuHeader(_ref3) {
142
- var submenu = _ref3.submenu;
157
+ menuitem: function menuitem(_ref3) {
158
+ var focused = _ref3.focused;
159
+ return classNames('p-menuitem', {
160
+ 'p-focus': focused
161
+ });
162
+ },
163
+ submenuHeader: function submenuHeader(_ref4) {
164
+ var submenu = _ref4.submenu;
143
165
  return classNames('p-submenu-header', {
144
166
  'p-disabled': submenu.disabled
145
167
  });
@@ -150,12 +172,12 @@ var classes = {
150
172
  transition: 'p-connected-overlay'
151
173
  };
152
174
  var inlineStyles = {
153
- submenuHeader: function submenuHeader(_ref4) {
154
- var submenu = _ref4.submenu;
175
+ submenuHeader: function submenuHeader(_ref5) {
176
+ var submenu = _ref5.submenu;
155
177
  return submenu.style;
156
178
  },
157
- menuitem: function menuitem(_ref5) {
158
- var item = _ref5.item;
179
+ menuitem: function menuitem(_ref6) {
180
+ var item = _ref6.item;
159
181
  return item.style;
160
182
  }
161
183
  };
@@ -163,6 +185,9 @@ var MenuBase = ComponentBase.extend({
163
185
  defaultProps: {
164
186
  __TYPE: 'Menu',
165
187
  id: null,
188
+ ariaLabel: null,
189
+ ariaLabelledBy: null,
190
+ tabIndex: 0,
166
191
  model: null,
167
192
  popup: false,
168
193
  popupAlignment: 'left',
@@ -171,6 +196,8 @@ var MenuBase = ComponentBase.extend({
171
196
  autoZIndex: true,
172
197
  baseZIndex: 0,
173
198
  appendTo: null,
199
+ onFocus: null,
200
+ onBlur: null,
174
201
  transitionOptions: null,
175
202
  onShow: null,
176
203
  onHide: null,
@@ -211,6 +238,7 @@ var useEventListener = function useEventListener(_ref) {
211
238
  when = _ref$when === void 0 ? true : _ref$when;
212
239
  var targetRef = React.useRef(null);
213
240
  var listenerRef = React.useRef(null);
241
+ var prevListener = usePrevious(listener);
214
242
  var prevOptions = usePrevious(options);
215
243
  var bind = function bind() {
216
244
  var bindOptions = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
@@ -240,11 +268,12 @@ var useEventListener = function useEventListener(_ref) {
240
268
  }
241
269
  }, [target, when]);
242
270
  React.useEffect(function () {
243
- if (listenerRef.current && (listenerRef.current !== listener || prevOptions !== options)) {
271
+ // to properly compare functions we can implicitly converting the function to it's body's text as a String
272
+ if (listenerRef.current && ('' + prevListener !== '' + listener || prevOptions !== options)) {
244
273
  unbind();
245
274
  when && bind();
246
275
  }
247
- }, [listener, options]);
276
+ }, [listener, options, when]);
248
277
  useUnmountEffect(function () {
249
278
  unbind();
250
279
  });
@@ -295,6 +324,18 @@ var Menu = /*#__PURE__*/React.memo( /*#__PURE__*/React.forwardRef(function (inPr
295
324
  _React$useState4 = _slicedToArray(_React$useState3, 2),
296
325
  visibleState = _React$useState4[0],
297
326
  setVisibleState = _React$useState4[1];
327
+ var _React$useState5 = React.useState(-1),
328
+ _React$useState6 = _slicedToArray(_React$useState5, 2),
329
+ focusedOptionIndex = _React$useState6[0],
330
+ setFocusedOptionIndex = _React$useState6[1];
331
+ var _React$useState7 = React.useState(-1),
332
+ _React$useState8 = _slicedToArray(_React$useState7, 2),
333
+ selectedOptionIndex = _React$useState8[0],
334
+ setSelectedOptionIndex = _React$useState8[1];
335
+ var _React$useState9 = React.useState(false),
336
+ _React$useState10 = _slicedToArray(_React$useState9, 2),
337
+ focused = _React$useState10[0],
338
+ setFocused = _React$useState10[1];
298
339
  var _MenuBase$setMetaData = MenuBase.setMetaData({
299
340
  props: props,
300
341
  state: {
@@ -310,6 +351,7 @@ var Menu = /*#__PURE__*/React.memo( /*#__PURE__*/React.forwardRef(function (inPr
310
351
  name: 'menu'
311
352
  });
312
353
  var menuRef = React.useRef(null);
354
+ var listRef = React.useRef(null);
313
355
  var targetRef = React.useRef(null);
314
356
  useOnEscapeKey(targetRef, props.popup && props.closeOnEscape, function (event) {
315
357
  hide(event);
@@ -319,7 +361,10 @@ var Menu = /*#__PURE__*/React.memo( /*#__PURE__*/React.forwardRef(function (inPr
319
361
  overlay: menuRef,
320
362
  listener: function listener(event, _ref) {
321
363
  var valid = _ref.valid;
322
- valid && hide(event);
364
+ if (valid) {
365
+ hide(event);
366
+ setFocusedOptionIndex(-1);
367
+ }
323
368
  },
324
369
  when: visibleState
325
370
  }),
@@ -334,7 +379,7 @@ var Menu = /*#__PURE__*/React.memo( /*#__PURE__*/React.forwardRef(function (inPr
334
379
  });
335
380
  }
336
381
  };
337
- var onItemClick = function onItemClick(event, item) {
382
+ var onItemClick = function onItemClick(event, item, key) {
338
383
  if (item.disabled) {
339
384
  event.preventDefault();
340
385
  return;
@@ -351,32 +396,112 @@ var Menu = /*#__PURE__*/React.memo( /*#__PURE__*/React.forwardRef(function (inPr
351
396
  if (props.popup) {
352
397
  hide(event);
353
398
  }
399
+ if (!props.popup && focusedOptionIndex !== key) {
400
+ setFocusedOptionIndex(key);
401
+ }
402
+ event.preventDefault();
403
+ event.stopPropagation();
404
+ };
405
+ var onListFocus = function onListFocus(event) {
406
+ setFocused(true);
407
+ if (!props.popup) {
408
+ if (selectedOptionIndex !== -1) {
409
+ changeFocusedOptionIndex(selectedOptionIndex);
410
+ setSelectedOptionIndex(-1);
411
+ } else changeFocusedOptionIndex(0);
412
+ }
413
+ props.onFocus && props.onFocus(event);
414
+ };
415
+ var onListBlur = function onListBlur(event) {
416
+ setFocused(false);
417
+ setFocusedOptionIndex(-1);
418
+ props.onBlur && props.onBlur(event);
354
419
  };
355
- var onItemKeyDown = function onItemKeyDown(event, item) {
356
- var listItem = event.currentTarget.parentElement;
357
- switch (event.which) {
358
- //down
359
- case 40:
360
- var nextItem = findNextItem(listItem);
361
- nextItem && nextItem.children[0].focus();
362
- event.preventDefault();
420
+ var onListKeyDown = function onListKeyDown(event) {
421
+ switch (event.code) {
422
+ case 'ArrowDown':
423
+ onArrowDownKey(event);
363
424
  break;
364
-
365
- //up
366
- case 38:
367
- var prevItem = findPrevItem(listItem);
368
- prevItem && prevItem.children[0].focus();
369
- event.preventDefault();
425
+ case 'ArrowUp':
426
+ onArrowUpKey(event);
427
+ break;
428
+ case 'Home':
429
+ onHomeKey(event);
430
+ break;
431
+ case 'End':
432
+ onEndKey(event);
433
+ break;
434
+ case 'Enter':
435
+ onEnterKey(event);
436
+ break;
437
+ case 'Space':
438
+ onSpaceKey(event);
439
+ break;
440
+ case 'Escape':
441
+ if (props.popup) {
442
+ DomHandler.focus(targetRef.current);
443
+ hide(event);
444
+ }
445
+ case 'Tab':
446
+ props.popup && visibleState && hide(event);
370
447
  break;
371
448
  }
372
449
  };
373
- var findNextItem = function findNextItem(item) {
374
- var nextItem = item.nextElementSibling;
375
- return nextItem ? DomHandler.getAttribute(nextItem, '[data-p-disabled="true"]') || !DomHandler.getAttribute(nextItem, '[data-pc-section="menuitem"]') ? findNextItem(nextItem) : nextItem : null;
450
+ var onArrowDownKey = function onArrowDownKey(event) {
451
+ var optionIndex = findNextOptionIndex(focusedOptionIndex);
452
+ changeFocusedOptionIndex(optionIndex);
453
+ event.preventDefault();
376
454
  };
377
- var findPrevItem = function findPrevItem(item) {
378
- var prevItem = item.previousElementSibling;
379
- return prevItem ? DomHandler.getAttribute(prevItem, '[data-p-disabled="true"]') || !DomHandler.getAttribute(prevItem, '[data-pc-section="menuitem"]') ? findPrevItem(prevItem) : prevItem : null;
455
+ var onArrowUpKey = function onArrowUpKey(event) {
456
+ if (event.altKey && props.popup) {
457
+ DomHandler.focus(targetRef.current);
458
+ hide(event);
459
+ event.preventDefault();
460
+ } else {
461
+ var optionIndex = findPrevOptionIndex(focusedOptionIndex);
462
+ changeFocusedOptionIndex(optionIndex);
463
+ event.preventDefault();
464
+ }
465
+ };
466
+ var onHomeKey = function onHomeKey(event) {
467
+ changeFocusedOptionIndex(0);
468
+ event.preventDefault();
469
+ };
470
+ var onEndKey = function onEndKey(event) {
471
+ changeFocusedOptionIndex(DomHandler.find(menuRef.current, 'li[data-pc-section="menuitem"][data-p-disabled="false"]').length - 1);
472
+ event.preventDefault();
473
+ };
474
+ var onEnterKey = function onEnterKey(event) {
475
+ var element = DomHandler.findSingle(menuRef.current, "li[id=\"".concat("".concat(focusedOptionIndex), "\"]"));
476
+ var anchorElement = element && DomHandler.findSingle(element, 'a[data-pc-section="action"]');
477
+ props.popup && DomHandler.focus(targetRef.current);
478
+ anchorElement ? anchorElement.click() : element && element.click();
479
+ event.preventDefault();
480
+ };
481
+ var onSpaceKey = function onSpaceKey(event) {
482
+ onEnterKey(event);
483
+ };
484
+ var findNextOptionIndex = function findNextOptionIndex(index) {
485
+ var links = DomHandler.find(menuRef.current, 'li[data-pc-section="menuitem"][data-p-disabled="false"]');
486
+ var matchedOptionIndex = _toConsumableArray(links).findIndex(function (link) {
487
+ return link.id === index;
488
+ });
489
+ return matchedOptionIndex > -1 ? matchedOptionIndex + 1 : 0;
490
+ };
491
+ var findPrevOptionIndex = function findPrevOptionIndex(index) {
492
+ var links = DomHandler.find(menuRef.current, 'li[data-pc-section="menuitem"][data-p-disabled="false"]');
493
+ var matchedOptionIndex = _toConsumableArray(links).findIndex(function (link) {
494
+ return link.id === index;
495
+ });
496
+ return matchedOptionIndex > -1 ? matchedOptionIndex - 1 : 0;
497
+ };
498
+ var changeFocusedOptionIndex = function changeFocusedOptionIndex(index) {
499
+ var links = DomHandler.find(menuRef.current, 'li[data-pc-section="menuitem"][data-p-disabled="false"]');
500
+ var order = index >= links.length ? links.length - 1 : index < 0 ? 0 : index;
501
+ order > -1 && setFocusedOptionIndex(links[order].getAttribute('id'));
502
+ };
503
+ var focusedOptionId = function focusedOptionId() {
504
+ return focusedOptionIndex !== -1 ? focusedOptionIndex : null;
380
505
  };
381
506
  var toggle = function toggle(event) {
382
507
  if (props.popup) {
@@ -401,6 +526,10 @@ var Menu = /*#__PURE__*/React.memo( /*#__PURE__*/React.forwardRef(function (inPr
401
526
  });
402
527
  ZIndexUtils.set('menu', menuRef.current, context && context.autoZIndex || PrimeReact.autoZIndex, props.baseZIndex || context && context.zIndex['menu'] || PrimeReact.zIndex['menu']);
403
528
  DomHandler.absolutePosition(menuRef.current, targetRef.current, props.popupAlignment);
529
+ if (props.popup) {
530
+ DomHandler.focus(listRef.current);
531
+ changeFocusedOptionIndex(0);
532
+ }
404
533
  };
405
534
  var onEntered = function onEntered() {
406
535
  bindOverlayListener();
@@ -436,11 +565,13 @@ var Menu = /*#__PURE__*/React.memo( /*#__PURE__*/React.forwardRef(function (inPr
436
565
  });
437
566
  var createSubmenu = function createSubmenu(submenu, index) {
438
567
  var key = idState + '_sub_' + index;
439
- var items = submenu.items.map(createMenuItem);
568
+ var items = submenu.items.map(function (item, index) {
569
+ return createMenuItem(item, index, key);
570
+ });
440
571
  var submenuHeaderProps = mergeProps({
441
572
  id: key,
442
573
  key: key,
443
- role: 'presentation',
574
+ role: 'none',
444
575
  className: classNames(submenu.className, cx('submenuHeader', {
445
576
  submenu: submenu
446
577
  })),
@@ -464,6 +595,7 @@ var Menu = /*#__PURE__*/React.memo( /*#__PURE__*/React.forwardRef(function (inPr
464
595
  return /*#__PURE__*/React.createElement("li", separatorProps);
465
596
  };
466
597
  var createMenuItem = function createMenuItem(item, index) {
598
+ var parentId = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : null;
467
599
  if (item.visible === false) {
468
600
  return null;
469
601
  }
@@ -481,36 +613,36 @@ var Menu = /*#__PURE__*/React.memo( /*#__PURE__*/React.forwardRef(function (inPr
481
613
  className: cx('label')
482
614
  }, ptm('label'));
483
615
  var label = item.label && /*#__PURE__*/React.createElement("span", labelProps, item.label);
484
- var tabIndex = item.disabled ? null : 0;
485
- var key = item.id || idState + '_' + index;
616
+ var key = item.id || (parentId || idState) + '_' + index;
617
+ var contentProps = mergeProps({
618
+ onClick: function onClick(event) {
619
+ return onItemClick(event, item, key);
620
+ },
621
+ className: cx('content')
622
+ }, ptm('content'));
486
623
  var actionProps = mergeProps({
487
624
  href: item.url || '#',
488
625
  className: cx('action', {
489
626
  item: item
490
627
  }),
491
- role: 'menuitem',
492
- target: item.target,
493
- onClick: function onClick(event) {
494
- return onItemClick(event, item);
628
+ onFocus: function onFocus(event) {
629
+ return event.stopPropagation();
495
630
  },
496
- onKeyDown: function onKeyDown(event) {
497
- return onItemKeyDown(event);
498
- },
499
- tabIndex: tabIndex,
631
+ target: item.target,
632
+ tabIndex: '-1',
633
+ 'aria-label': item.label,
634
+ 'aria-hidden': true,
500
635
  'aria-disabled': item.disabled,
501
636
  'data-p-disabled': item.disabled
502
637
  }, ptm('action'));
503
- var content = /*#__PURE__*/React.createElement("a", actionProps, icon, label);
638
+ var content = /*#__PURE__*/React.createElement("div", contentProps, /*#__PURE__*/React.createElement("a", actionProps, icon, label));
504
639
  if (item.template) {
505
640
  var defaultContentOptions = {
506
641
  onClick: function onClick(event) {
507
- return onItemClick(event, item);
508
- },
509
- onKeyDown: function onKeyDown(event) {
510
- return onItemKeyDown(event);
642
+ return onItemClick(event, item, key);
511
643
  },
512
644
  className: linkClassName,
513
- tabIndex: tabIndex,
645
+ tabIndex: '-1',
514
646
  labelClassName: 'p-menuitem-text',
515
647
  iconClassName: iconClassName,
516
648
  element: content,
@@ -521,11 +653,16 @@ var Menu = /*#__PURE__*/React.memo( /*#__PURE__*/React.forwardRef(function (inPr
521
653
  var menuitemProps = mergeProps({
522
654
  id: key,
523
655
  key: key,
524
- className: classNames(item.className, cx('menuitem')),
656
+ className: classNames(item.className, cx('menuitem', {
657
+ focused: focusedOptionIndex === key
658
+ })),
525
659
  style: sx('menuitem', {
526
660
  item: item
527
661
  }),
528
- role: 'none',
662
+ role: 'menuitem',
663
+ 'aria-label': item.label,
664
+ 'aria-disabled': item.disabled,
665
+ 'data-p-focused': focusedOptionId() === key,
529
666
  'data-p-disabled': item.disabled || false
530
667
  }, ptm('menuitem'));
531
668
  return /*#__PURE__*/React.createElement("li", menuitemProps, content);
@@ -549,8 +686,17 @@ var Menu = /*#__PURE__*/React.memo( /*#__PURE__*/React.forwardRef(function (inPr
549
686
  }
550
687
  }, MenuBase.getOtherProps(props), ptm('root'));
551
688
  var menuProps = mergeProps({
689
+ ref: listRef,
552
690
  className: cx('menu'),
553
- role: 'menu'
691
+ id: idState + '_list',
692
+ tabIndex: props.tabIndex || '0',
693
+ role: 'menu',
694
+ 'aria-label': props.ariaLabel,
695
+ 'aria-labelledby': props.ariaLabelledBy,
696
+ 'aria-activedescendant': focused ? focusedOptionId() : undefined,
697
+ onFocus: onListFocus,
698
+ onKeyDown: onListKeyDown,
699
+ onBlur: onListBlur
554
700
  }, ptm('menu'));
555
701
  var transitionProps = mergeProps({
556
702
  classNames: cx('transition'),
@@ -1 +1 @@
1
- import*as e from"react";import t,{PrimeReactContext as n}from"primereact/api";import{ComponentBase as r,useHandleStyle as i}from"primereact/componentbase";import{CSSTransition as o}from"primereact/csstransition";import{useOverlayListener as u,useMountEffect as a,useUnmountEffect as l}from"primereact/hooks";import{OverlayService as c}from"primereact/overlayservice";import{Portal as s}from"primereact/portal";import{classNames as p,DomHandler as m,ObjectUtils as f,UniqueComponentId as d,ZIndexUtils as b,mergeProps as y,IconUtils as v}from"primereact/utils";function g(){return g=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},g.apply(this,arguments)}function E(e){return E="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},E(e)}function h(e,t){if("object"!==E(e)||null===e)return e;var n=e[Symbol.toPrimitive];if(void 0!==n){var r=n.call(e,t||"default");if("object"!==E(r))return r;throw new TypeError("@@toPrimitive must return a primitive value.")}return("string"===t?String:Number)(e)}function O(e){var t=h(e,"string");return"symbol"===E(t)?t:String(t)}function x(e){if(Array.isArray(e))return e}function w(e,t){var n=null==e?null:"undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null!=n){var r,i,o,u,a=[],l=!0,c=!1;try{if(o=(n=n.call(e)).next,0===t){if(Object(n)!==n)return;l=!1}else for(;!(l=(r=o.call(n)).done)&&(a.push(r.value),a.length!==t);l=!0);}catch(e){c=!0,i=e}finally{try{if(!l&&null!=n.return&&(u=n.return(),Object(u)!==u))return}finally{if(c)throw i}}return a}}function S(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=new Array(t);n<t;n++)r[n]=e[n];return r}function j(e,t){if(e){if("string"==typeof e)return S(e,t);var n=Object.prototype.toString.call(e).slice(8,-1);return"Object"===n&&e.constructor&&(n=e.constructor.name),"Map"===n||"Set"===n?Array.from(e):"Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)?S(e,t):void 0}}function N(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}function P(e,t){return x(e)||w(e,t)||j(e,t)||N()}var k=r.extend({defaultProps:{__TYPE:"Menu",id:null,model:null,popup:!1,popupAlignment:"left",style:null,className:null,autoZIndex:!0,baseZIndex:0,appendTo:null,transitionOptions:null,onShow:null,onHide:null,children:void 0,closeOnEscape:!0},css:{classes:{root:function(e){var n=e.context;return p("p-menu p-component",{"p-menu-overlay":e.props.popup,"p-input-filled":n&&"filled"===n.inputStyle||"filled"===t.inputStyle,"p-ripple-disabled":n&&!1===n.ripple||!1===t.ripple})},menu:"p-menu-list p-reset",action:function(e){return p("p-menuitem-link",{"p-disabled":e.item.disabled})},menuitem:"p-menuitem",submenuHeader:function(e){return p("p-submenu-header",{"p-disabled":e.submenu.disabled})},separator:"p-menu-separator",label:"p-menuitem-text",icon:"p-menuitem-icon",transition:"p-connected-overlay"},styles:"\n@layer primereact {\n .p-menu-overlay {\n position: absolute;\n /* Github #3122: Prevent animation flickering */\n top: -9999px;\n left: -9999px;\n }\n \n .p-menu ul {\n margin: 0;\n padding: 0;\n list-style: none;\n }\n \n .p-menu .p-menuitem-link {\n cursor: pointer;\n display: flex;\n align-items: center;\n text-decoration: none;\n overflow: hidden;\n position: relative;\n }\n \n .p-menu .p-menuitem-text {\n line-height: 1;\n }\n}\n",inlineStyles:{submenuHeader:function(e){return e.submenu.style},menuitem:function(e){return e.item.style}}}}),I=function(t){var n,r,i,o=t.target,u=void 0===o?"document":o,a=t.type,l=t.listener,c=t.options,s=t.when,p=void 0===s||s,d=e.useRef(null),b=e.useRef(null),y=(n=c,r=e.useRef(void 0),e.useEffect((function(){r.current=n})),r.current),v=function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};f.isNotEmpty(e.target)&&(g(),(e.when||p)&&(d.current=m.getTargetElement(e.target))),!b.current&&d.current&&(b.current=function(e){return l&&l(e)},d.current.addEventListener(a,b.current,c))},g=function(){b.current&&(d.current.removeEventListener(a,b.current,c),b.current=null)};return e.useEffect((function(){p?d.current=m.getTargetElement(u):(g(),d.current=null)}),[u,p]),e.useEffect((function(){!b.current||b.current===l&&y===c||(g(),p&&v())}),[l,c]),i=function(){g()},e.useEffect((function(){return i}),[]),[v,g]},A=function(t,n,r){var i=P(I({type:"keydown",listener:function(e){"Esc"!==e.key&&"Escape"!==e.key||(e.stopImmediatePropagation(),r(e))}}),2),o=i[0],u=i[1];return e.useEffect((function(){if(n&&t.current)return o(),function(){u()}})),[t,r]};function T(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function D(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?T(Object(n),!0).forEach((function(t){var r,i,o;r=e,o=n[t],(i=O(i=t))in r?Object.defineProperty(r,i,{value:o,enumerable:!0,configurable:!0,writable:!0}):r[i]=o})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):T(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}var H=e.memo(e.forwardRef((function(r,E){var h=e.useContext(n),O=k.getProps(r,h),x=P(e.useState(O.id),2),w=x[0],S=x[1],j=P(e.useState(!O.popup),2),N=j[0],I=j[1],T=k.setMetaData({props:O,state:{id:w,visible:N}}),H=T.ptm,C=T.cx,R=T.sx;i(k.css.styles,T.isUnstyled,{name:"menu"});var _=e.useRef(null),Z=e.useRef(null);A(Z,O.popup&&O.closeOnEscape,(function(e){Y(e)}));var M=P(u({target:Z,overlay:_,listener:function(e,t){t.valid&&Y(e)},when:N}),2),U=M[0],z=M[1],J=function(e,t){t.disabled?e.preventDefault():(t.url||e.preventDefault(),t.command&&t.command({originalEvent:e,item:t}),O.popup&&Y(e))},K=function(e,t){var n=e.currentTarget.parentElement;switch(e.which){case 40:var r=L(n);r&&r.children[0].focus(),e.preventDefault();break;case 38:var i=X(n);i&&i.children[0].focus(),e.preventDefault()}},L=function e(t){var n=t.nextElementSibling;return n?m.getAttribute(n,'[data-p-disabled="true"]')||!m.getAttribute(n,'[data-pc-section="menuitem"]')?e(n):n:null},X=function e(t){var n=t.previousElementSibling;return n?m.getAttribute(n,'[data-p-disabled="true"]')||!m.getAttribute(n,'[data-pc-section="menuitem"]')?e(n):n:null},F=function(e){O.popup&&(N?Y(e):G(e))},G=function(e){Z.current=e.currentTarget,I(!0),O.onShow&&O.onShow(e)},Y=function(e){Z.current=e.currentTarget,I(!1),O.onHide&&O.onHide(e)},$=function(){m.addStyles(_.current,{position:"absolute",top:"0",left:"0"}),b.set("menu",_.current,h&&h.autoZIndex||t.autoZIndex,O.baseZIndex||h&&h.zIndex.menu||t.zIndex.menu),m.absolutePosition(_.current,Z.current,O.popupAlignment)},q=function(){U()},B=function(){Z.current=null,z()},Q=function(){b.clear(_.current)};a((function(){w||S(d())})),l((function(){b.clear(_.current)})),e.useImperativeHandle(E,(function(){return{props:O,toggle:F,show:G,hide:Y,getElement:function(){return _.current},getTarget:function(){return Z.current}}}));var V=function(t,n){var r=w+"_sub_"+n,i=t.items.map(ee),o=y({id:r,key:r,role:"presentation",className:p(t.className,C("submenuHeader",{submenu:t})),style:R("submenuHeader",{submenu:t}),"data-p-disabled":t.disabled},H("submenuHeader"));return e.createElement(e.Fragment,{key:r},e.createElement("li",o,t.label),i)},W=function(t){var n=w+"_separator_"+t,r=y({id:n,key:n,className:C("separator"),role:"separator"},H("separator"));return e.createElement("li",r)},ee=function(t,n){if(!1===t.visible)return null;var r=p("p-menuitem-link",{"p-disabled":t.disabled}),i=p("p-menuitem-icon",t.icon),o=y({className:C("icon")},H("icon")),u=v.getJSXIcon(t.icon,D({},o),{props:O}),a=y({className:C("label")},H("label")),l=t.label&&e.createElement("span",a,t.label),c=t.disabled?null:0,s=t.id||w+"_"+n,m=y({href:t.url||"#",className:C("action",{item:t}),role:"menuitem",target:t.target,onClick:function(e){return J(e,t)},onKeyDown:function(e){return K(e)},tabIndex:c,"aria-disabled":t.disabled,"data-p-disabled":t.disabled},H("action")),d=e.createElement("a",m,u,l);t.template&&(d=f.getJSXElement(t.template,t,{onClick:function(e){return J(e,t)},onKeyDown:function(e){return K(e)},className:r,tabIndex:c,labelClassName:"p-menuitem-text",iconClassName:i,element:d,props:O}));var b=y({id:s,key:s,className:p(t.className,C("menuitem")),style:R("menuitem",{item:t}),role:"none","data-p-disabled":t.disabled||!1},H("menuitem"));return e.createElement("li",b,d)},te=function(e,t){return e.separator?W(t):e.items?V(e,t):ee(e,t)},ne=function(){if(O.model){var t=O.model.map(te),n=y({className:p(O.className,C("root",{context:h})),style:O.style,onClick:function(e){return t=e,void(O.popup&&c.emit("overlay-click",{originalEvent:t,target:Z.current}));var t}},k.getOtherProps(O),H("root")),r=y({className:C("menu"),role:"menu"},H("menu")),i=y({classNames:C("transition"),in:N,timeout:{enter:120,exit:100},options:O.transitionOptions,unmountOnExit:!0,onEnter:$,onEntered:q,onExit:B,onExited:Q},H("transition"));return e.createElement(o,g({nodeRef:_},i),e.createElement("div",g({id:O.id,ref:_},n),e.createElement("ul",r,t)))}return null}();return O.popup?e.createElement(s,{element:ne,appendTo:O.appendTo}):ne})));H.displayName="Menu";export{H as Menu};
1
+ import*as e from"react";import n,{PrimeReactContext as t}from"primereact/api";import{ComponentBase as r,useHandleStyle as o}from"primereact/componentbase";import{CSSTransition as i}from"primereact/csstransition";import{useOverlayListener as a,useMountEffect as u,useUnmountEffect as l}from"primereact/hooks";import{OverlayService as c}from"primereact/overlayservice";import{Portal as s}from"primereact/portal";import{classNames as p,DomHandler as m,ObjectUtils as f,UniqueComponentId as d,ZIndexUtils as b,mergeProps as y,IconUtils as v}from"primereact/utils";function g(){return g=Object.assign?Object.assign.bind():function(e){for(var n=1;n<arguments.length;n++){var t=arguments[n];for(var r in t)Object.prototype.hasOwnProperty.call(t,r)&&(e[r]=t[r])}return e},g.apply(this,arguments)}function h(e){return h="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},h(e)}function E(e,n){if("object"!==h(e)||null===e)return e;var t=e[Symbol.toPrimitive];if(void 0!==t){var r=t.call(e,n||"default");if("object"!==h(r))return r;throw new TypeError("@@toPrimitive must return a primitive value.")}return("string"===n?String:Number)(e)}function S(e){var n=E(e,"string");return"symbol"===h(n)?n:String(n)}function x(e,n){(null==n||n>e.length)&&(n=e.length);for(var t=0,r=new Array(n);t<n;t++)r[t]=e[t];return r}function O(e){if(Array.isArray(e))return x(e)}function w(e){if("undefined"!=typeof Symbol&&null!=e[Symbol.iterator]||null!=e["@@iterator"])return Array.from(e)}function k(e,n){if(e){if("string"==typeof e)return x(e,n);var t=Object.prototype.toString.call(e).slice(8,-1);return"Object"===t&&e.constructor&&(t=e.constructor.name),"Map"===t||"Set"===t?Array.from(e):"Arguments"===t||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t)?x(e,n):void 0}}function j(){throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}function I(e){return O(e)||w(e)||k(e)||j()}function P(e){if(Array.isArray(e))return e}function N(e,n){var t=null==e?null:"undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null!=t){var r,o,i,a,u=[],l=!0,c=!1;try{if(i=(t=t.call(e)).next,0===n){if(Object(t)!==t)return;l=!1}else for(;!(l=(r=i.call(t)).done)&&(u.push(r.value),u.length!==n);l=!0);}catch(e){c=!0,o=e}finally{try{if(!l&&null!=t.return&&(a=t.return(),Object(a)!==a))return}finally{if(c)throw o}}return u}}function D(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}function A(e,n){return P(e)||N(e,n)||k(e,n)||D()}var T=r.extend({defaultProps:{__TYPE:"Menu",id:null,ariaLabel:null,ariaLabelledBy:null,tabIndex:0,model:null,popup:!1,popupAlignment:"left",style:null,className:null,autoZIndex:!0,baseZIndex:0,appendTo:null,onFocus:null,onBlur:null,transitionOptions:null,onShow:null,onHide:null,children:void 0,closeOnEscape:!0},css:{classes:{root:function(e){var t=e.context;return p("p-menu p-component",{"p-menu-overlay":e.props.popup,"p-input-filled":t&&"filled"===t.inputStyle||"filled"===n.inputStyle,"p-ripple-disabled":t&&!1===t.ripple||!1===n.ripple})},menu:"p-menu-list p-reset",content:"p-menuitem-content",action:function(e){return p("p-menuitem-link",{"p-disabled":e.item.disabled})},menuitem:function(e){return p("p-menuitem",{"p-focus":e.focused})},submenuHeader:function(e){return p("p-submenu-header",{"p-disabled":e.submenu.disabled})},separator:"p-menu-separator",label:"p-menuitem-text",icon:"p-menuitem-icon",transition:"p-connected-overlay"},styles:"\n@layer primereact {\n .p-menu-overlay {\n position: absolute;\n /* Github #3122: Prevent animation flickering */\n top: -9999px;\n left: -9999px;\n }\n\n .p-menu ul {\n margin: 0;\n padding: 0;\n list-style: none;\n }\n\n .p-menu .p-menuitem-link {\n cursor: pointer;\n display: flex;\n align-items: center;\n text-decoration: none;\n overflow: hidden;\n position: relative;\n }\n\n .p-menu .p-menuitem-text {\n line-height: 1;\n }\n}\n",inlineStyles:{submenuHeader:function(e){return e.submenu.style},menuitem:function(e){return e.item.style}}}}),H=function(n){var t=e.useRef(void 0);return e.useEffect((function(){t.current=n})),t.current},R=function(n,t,r){var o,i,a,u,l,c,s,p,d,b,y,v,g,h,E,S=(u=void 0===(a=(o={type:"keydown",listener:function(e){"Esc"!==e.key&&"Escape"!==e.key||(e.stopImmediatePropagation(),r(e))}}).target)?"document":a,l=o.type,c=o.listener,s=o.options,d=void 0===(p=o.when)||p,b=e.useRef(null),y=e.useRef(null),v=H(c),g=H(s),h=function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};f.isNotEmpty(e.target)&&(E(),(e.when||d)&&(b.current=m.getTargetElement(e.target))),!y.current&&b.current&&(y.current=function(e){return c&&c(e)},b.current.addEventListener(l,y.current,s))},E=function(){y.current&&(b.current.removeEventListener(l,y.current,s),y.current=null)},e.useEffect((function(){d?b.current=m.getTargetElement(u):(E(),b.current=null)}),[u,d]),e.useEffect((function(){!y.current||""+v==""+c&&g===s||(E(),d&&h())}),[c,s,d]),i=function(){E()},e.useEffect((function(){return i}),[]),[h,E]),x=A(S,2),O=x[0],w=x[1];return e.useEffect((function(){if(t&&n.current)return O(),function(){w()}})),[n,r]};function _(e,n){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);n&&(r=r.filter((function(n){return Object.getOwnPropertyDescriptor(e,n).enumerable}))),t.push.apply(t,r)}return t}function C(e){for(var n=1;n<arguments.length;n++){var t=null!=arguments[n]?arguments[n]:{};n%2?_(Object(t),!0).forEach((function(n){var r,o,i;r=e,i=t[n],(o=S(o=n))in r?Object.defineProperty(r,o,{value:i,enumerable:!0,configurable:!0,writable:!0}):r[o]=i})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(t)):_(Object(t)).forEach((function(n){Object.defineProperty(e,n,Object.getOwnPropertyDescriptor(t,n))}))}return e}var B=e.memo(e.forwardRef((function(r,h){var E=e.useContext(t),S=T.getProps(r,E),x=A(e.useState(S.id),2),O=x[0],w=x[1],k=A(e.useState(!S.popup),2),j=k[0],P=k[1],N=A(e.useState(-1),2),D=N[0],H=N[1],_=A(e.useState(-1),2),B=_[0],F=_[1],L=A(e.useState(!1),2),Z=L[0],M=L[1],U=T.setMetaData({props:S,state:{id:O,visible:j}}),z=U.ptm,J=U.cx,K=U.sx;o(T.css.styles,U.isUnstyled,{name:"menu"});var X=e.useRef(null),G=e.useRef(null),Y=e.useRef(null);R(Y,S.popup&&S.closeOnEscape,(function(e){de(e)}));var $=A(a({target:Y,overlay:X,listener:function(e,n){n.valid&&(de(e),H(-1))},when:j}),2),q=$[0],Q=$[1],V=function(e,n,t){n.disabled?e.preventDefault():(n.url||e.preventDefault(),n.command&&n.command({originalEvent:e,item:n}),S.popup&&de(e),S.popup||D===t||H(t),e.preventDefault(),e.stopPropagation())},W=function(e){M(!0),S.popup||(-1!==B?(se(B),F(-1)):se(0)),S.onFocus&&S.onFocus(e)},ee=function(e){M(!1),H(-1),S.onBlur&&S.onBlur(e)},ne=function(e){switch(e.code){case"ArrowDown":te(e);break;case"ArrowUp":re(e);break;case"Home":oe(e);break;case"End":ie(e);break;case"Enter":ae(e);break;case"Space":ue(e);break;case"Escape":S.popup&&(m.focus(Y.current),de(e));case"Tab":S.popup&&j&&de(e)}},te=function(e){var n=le(D);se(n),e.preventDefault()},re=function(e){if(e.altKey&&S.popup)m.focus(Y.current),de(e),e.preventDefault();else{var n=ce(D);se(n),e.preventDefault()}},oe=function(e){se(0),e.preventDefault()},ie=function(e){se(m.find(X.current,'li[data-pc-section="menuitem"][data-p-disabled="false"]').length-1),e.preventDefault()},ae=function(e){var n=m.findSingle(X.current,'li[id="'.concat("".concat(D),'"]')),t=n&&m.findSingle(n,'a[data-pc-section="action"]');S.popup&&m.focus(Y.current),t?t.click():n&&n.click(),e.preventDefault()},ue=function(e){ae(e)},le=function(e){var n=I(m.find(X.current,'li[data-pc-section="menuitem"][data-p-disabled="false"]')).findIndex((function(n){return n.id===e}));return n>-1?n+1:0},ce=function(e){var n=I(m.find(X.current,'li[data-pc-section="menuitem"][data-p-disabled="false"]')).findIndex((function(n){return n.id===e}));return n>-1?n-1:0},se=function(e){var n=m.find(X.current,'li[data-pc-section="menuitem"][data-p-disabled="false"]'),t=e>=n.length?n.length-1:e<0?0:e;t>-1&&H(n[t].getAttribute("id"))},pe=function(){return-1!==D?D:null},me=function(e){S.popup&&(j?de(e):fe(e))},fe=function(e){Y.current=e.currentTarget,P(!0),S.onShow&&S.onShow(e)},de=function(e){Y.current=e.currentTarget,P(!1),S.onHide&&S.onHide(e)},be=function(){m.addStyles(X.current,{position:"absolute",top:"0",left:"0"}),b.set("menu",X.current,E&&E.autoZIndex||n.autoZIndex,S.baseZIndex||E&&E.zIndex.menu||n.zIndex.menu),m.absolutePosition(X.current,Y.current,S.popupAlignment),S.popup&&(m.focus(G.current),se(0))},ye=function(){q()},ve=function(){Y.current=null,Q()},ge=function(){b.clear(X.current)};u((function(){O||w(d())})),l((function(){b.clear(X.current)})),e.useImperativeHandle(h,(function(){return{props:S,toggle:me,show:fe,hide:de,getElement:function(){return X.current},getTarget:function(){return Y.current}}}));var he=function(n,t){var r=O+"_sub_"+t,o=n.items.map((function(e,n){return Se(e,n,r)})),i=y({id:r,key:r,role:"none",className:p(n.className,J("submenuHeader",{submenu:n})),style:K("submenuHeader",{submenu:n}),"data-p-disabled":n.disabled},z("submenuHeader"));return e.createElement(e.Fragment,{key:r},e.createElement("li",i,n.label),o)},Ee=function(n){var t=O+"_separator_"+n,r=y({id:t,key:t,className:J("separator"),role:"separator"},z("separator"));return e.createElement("li",r)},Se=function(n,t){var r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:null;if(!1===n.visible)return null;var o=p("p-menuitem-link",{"p-disabled":n.disabled}),i=p("p-menuitem-icon",n.icon),a=y({className:J("icon")},z("icon")),u=v.getJSXIcon(n.icon,C({},a),{props:S}),l=y({className:J("label")},z("label")),c=n.label&&e.createElement("span",l,n.label),s=n.id||(r||O)+"_"+t,m=y({onClick:function(e){return V(e,n,s)},className:J("content")},z("content")),d=y({href:n.url||"#",className:J("action",{item:n}),onFocus:function(e){return e.stopPropagation()},target:n.target,tabIndex:"-1","aria-label":n.label,"aria-hidden":!0,"aria-disabled":n.disabled,"data-p-disabled":n.disabled},z("action")),b=e.createElement("div",m,e.createElement("a",d,u,c));n.template&&(b=f.getJSXElement(n.template,n,{onClick:function(e){return V(e,n,s)},className:o,tabIndex:"-1",labelClassName:"p-menuitem-text",iconClassName:i,element:b,props:S}));var g=y({id:s,key:s,className:p(n.className,J("menuitem",{focused:D===s})),style:K("menuitem",{item:n}),role:"menuitem","aria-label":n.label,"aria-disabled":n.disabled,"data-p-focused":pe()===s,"data-p-disabled":n.disabled||!1},z("menuitem"));return e.createElement("li",g,b)},xe=function(e,n){return e.separator?Ee(n):e.items?he(e,n):Se(e,n)},Oe=function(){if(S.model){var n=S.model.map(xe),t=y({className:p(S.className,J("root",{context:E})),style:S.style,onClick:function(e){return n=e,void(S.popup&&c.emit("overlay-click",{originalEvent:n,target:Y.current}));var n}},T.getOtherProps(S),z("root")),r=y({ref:G,className:J("menu"),id:O+"_list",tabIndex:S.tabIndex||"0",role:"menu","aria-label":S.ariaLabel,"aria-labelledby":S.ariaLabelledBy,"aria-activedescendant":Z?pe():void 0,onFocus:W,onKeyDown:ne,onBlur:ee},z("menu")),o=y({classNames:J("transition"),in:j,timeout:{enter:120,exit:100},options:S.transitionOptions,unmountOnExit:!0,onEnter:be,onEntered:ye,onExit:ve,onExited:ge},z("transition"));return e.createElement(i,g({nodeRef:X},o),e.createElement("div",g({id:S.id,ref:X},t),e.createElement("ul",r,n)))}return null}();return S.popup?e.createElement(s,{element:Oe,appendTo:S.appendTo}):Oe})));B.displayName="Menu";export{B as Menu};