primereact 10.2.0 → 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.cjs.js CHANGED
@@ -91,6 +91,37 @@ function _defineProperty(obj, key, value) {
91
91
  return obj;
92
92
  }
93
93
 
94
+ function _arrayLikeToArray(arr, len) {
95
+ if (len == null || len > arr.length) len = arr.length;
96
+ for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i];
97
+ return arr2;
98
+ }
99
+
100
+ function _arrayWithoutHoles(arr) {
101
+ if (Array.isArray(arr)) return _arrayLikeToArray(arr);
102
+ }
103
+
104
+ function _iterableToArray(iter) {
105
+ if (typeof Symbol !== "undefined" && iter[Symbol.iterator] != null || iter["@@iterator"] != null) return Array.from(iter);
106
+ }
107
+
108
+ function _unsupportedIterableToArray(o, minLen) {
109
+ if (!o) return;
110
+ if (typeof o === "string") return _arrayLikeToArray(o, minLen);
111
+ var n = Object.prototype.toString.call(o).slice(8, -1);
112
+ if (n === "Object" && o.constructor) n = o.constructor.name;
113
+ if (n === "Map" || n === "Set") return Array.from(o);
114
+ if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen);
115
+ }
116
+
117
+ function _nonIterableSpread() {
118
+ throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.");
119
+ }
120
+
121
+ function _toConsumableArray(arr) {
122
+ return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray(arr) || _nonIterableSpread();
123
+ }
124
+
94
125
  function _arrayWithHoles(arr) {
95
126
  if (Array.isArray(arr)) return arr;
96
127
  }
@@ -123,21 +154,6 @@ function _iterableToArrayLimit(r, l) {
123
154
  }
124
155
  }
125
156
 
126
- function _arrayLikeToArray(arr, len) {
127
- if (len == null || len > arr.length) len = arr.length;
128
- for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i];
129
- return arr2;
130
- }
131
-
132
- function _unsupportedIterableToArray(o, minLen) {
133
- if (!o) return;
134
- if (typeof o === "string") return _arrayLikeToArray(o, minLen);
135
- var n = Object.prototype.toString.call(o).slice(8, -1);
136
- if (n === "Object" && o.constructor) n = o.constructor.name;
137
- if (n === "Map" || n === "Set") return Array.from(o);
138
- if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen);
139
- }
140
-
141
157
  function _nonIterableRest() {
142
158
  throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.");
143
159
  }
@@ -146,7 +162,7 @@ function _slicedToArray(arr, i) {
146
162
  return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest();
147
163
  }
148
164
 
149
- 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";
165
+ 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";
150
166
  var classes = {
151
167
  root: function root(_ref) {
152
168
  var props = _ref.props,
@@ -158,15 +174,21 @@ var classes = {
158
174
  });
159
175
  },
160
176
  menu: 'p-menu-list p-reset',
177
+ content: 'p-menuitem-content',
161
178
  action: function action(_ref2) {
162
179
  var item = _ref2.item;
163
180
  return utils.classNames('p-menuitem-link', {
164
181
  'p-disabled': item.disabled
165
182
  });
166
183
  },
167
- menuitem: 'p-menuitem',
168
- submenuHeader: function submenuHeader(_ref3) {
169
- var submenu = _ref3.submenu;
184
+ menuitem: function menuitem(_ref3) {
185
+ var focused = _ref3.focused;
186
+ return utils.classNames('p-menuitem', {
187
+ 'p-focus': focused
188
+ });
189
+ },
190
+ submenuHeader: function submenuHeader(_ref4) {
191
+ var submenu = _ref4.submenu;
170
192
  return utils.classNames('p-submenu-header', {
171
193
  'p-disabled': submenu.disabled
172
194
  });
@@ -177,12 +199,12 @@ var classes = {
177
199
  transition: 'p-connected-overlay'
178
200
  };
179
201
  var inlineStyles = {
180
- submenuHeader: function submenuHeader(_ref4) {
181
- var submenu = _ref4.submenu;
202
+ submenuHeader: function submenuHeader(_ref5) {
203
+ var submenu = _ref5.submenu;
182
204
  return submenu.style;
183
205
  },
184
- menuitem: function menuitem(_ref5) {
185
- var item = _ref5.item;
206
+ menuitem: function menuitem(_ref6) {
207
+ var item = _ref6.item;
186
208
  return item.style;
187
209
  }
188
210
  };
@@ -190,6 +212,9 @@ var MenuBase = componentbase.ComponentBase.extend({
190
212
  defaultProps: {
191
213
  __TYPE: 'Menu',
192
214
  id: null,
215
+ ariaLabel: null,
216
+ ariaLabelledBy: null,
217
+ tabIndex: 0,
193
218
  model: null,
194
219
  popup: false,
195
220
  popupAlignment: 'left',
@@ -198,6 +223,8 @@ var MenuBase = componentbase.ComponentBase.extend({
198
223
  autoZIndex: true,
199
224
  baseZIndex: 0,
200
225
  appendTo: null,
226
+ onFocus: null,
227
+ onBlur: null,
201
228
  transitionOptions: null,
202
229
  onShow: null,
203
230
  onHide: null,
@@ -238,6 +265,7 @@ var useEventListener = function useEventListener(_ref) {
238
265
  when = _ref$when === void 0 ? true : _ref$when;
239
266
  var targetRef = React__namespace.useRef(null);
240
267
  var listenerRef = React__namespace.useRef(null);
268
+ var prevListener = usePrevious(listener);
241
269
  var prevOptions = usePrevious(options);
242
270
  var bind = function bind() {
243
271
  var bindOptions = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
@@ -267,11 +295,12 @@ var useEventListener = function useEventListener(_ref) {
267
295
  }
268
296
  }, [target, when]);
269
297
  React__namespace.useEffect(function () {
270
- if (listenerRef.current && (listenerRef.current !== listener || prevOptions !== options)) {
298
+ // to properly compare functions we can implicitly converting the function to it's body's text as a String
299
+ if (listenerRef.current && ('' + prevListener !== '' + listener || prevOptions !== options)) {
271
300
  unbind();
272
301
  when && bind();
273
302
  }
274
- }, [listener, options]);
303
+ }, [listener, options, when]);
275
304
  useUnmountEffect(function () {
276
305
  unbind();
277
306
  });
@@ -322,6 +351,18 @@ var Menu = /*#__PURE__*/React__namespace.memo( /*#__PURE__*/React__namespace.for
322
351
  _React$useState4 = _slicedToArray(_React$useState3, 2),
323
352
  visibleState = _React$useState4[0],
324
353
  setVisibleState = _React$useState4[1];
354
+ var _React$useState5 = React__namespace.useState(-1),
355
+ _React$useState6 = _slicedToArray(_React$useState5, 2),
356
+ focusedOptionIndex = _React$useState6[0],
357
+ setFocusedOptionIndex = _React$useState6[1];
358
+ var _React$useState7 = React__namespace.useState(-1),
359
+ _React$useState8 = _slicedToArray(_React$useState7, 2),
360
+ selectedOptionIndex = _React$useState8[0],
361
+ setSelectedOptionIndex = _React$useState8[1];
362
+ var _React$useState9 = React__namespace.useState(false),
363
+ _React$useState10 = _slicedToArray(_React$useState9, 2),
364
+ focused = _React$useState10[0],
365
+ setFocused = _React$useState10[1];
325
366
  var _MenuBase$setMetaData = MenuBase.setMetaData({
326
367
  props: props,
327
368
  state: {
@@ -337,6 +378,7 @@ var Menu = /*#__PURE__*/React__namespace.memo( /*#__PURE__*/React__namespace.for
337
378
  name: 'menu'
338
379
  });
339
380
  var menuRef = React__namespace.useRef(null);
381
+ var listRef = React__namespace.useRef(null);
340
382
  var targetRef = React__namespace.useRef(null);
341
383
  useOnEscapeKey(targetRef, props.popup && props.closeOnEscape, function (event) {
342
384
  hide(event);
@@ -346,7 +388,10 @@ var Menu = /*#__PURE__*/React__namespace.memo( /*#__PURE__*/React__namespace.for
346
388
  overlay: menuRef,
347
389
  listener: function listener(event, _ref) {
348
390
  var valid = _ref.valid;
349
- valid && hide(event);
391
+ if (valid) {
392
+ hide(event);
393
+ setFocusedOptionIndex(-1);
394
+ }
350
395
  },
351
396
  when: visibleState
352
397
  }),
@@ -361,7 +406,7 @@ var Menu = /*#__PURE__*/React__namespace.memo( /*#__PURE__*/React__namespace.for
361
406
  });
362
407
  }
363
408
  };
364
- var onItemClick = function onItemClick(event, item) {
409
+ var onItemClick = function onItemClick(event, item, key) {
365
410
  if (item.disabled) {
366
411
  event.preventDefault();
367
412
  return;
@@ -378,32 +423,112 @@ var Menu = /*#__PURE__*/React__namespace.memo( /*#__PURE__*/React__namespace.for
378
423
  if (props.popup) {
379
424
  hide(event);
380
425
  }
426
+ if (!props.popup && focusedOptionIndex !== key) {
427
+ setFocusedOptionIndex(key);
428
+ }
429
+ event.preventDefault();
430
+ event.stopPropagation();
431
+ };
432
+ var onListFocus = function onListFocus(event) {
433
+ setFocused(true);
434
+ if (!props.popup) {
435
+ if (selectedOptionIndex !== -1) {
436
+ changeFocusedOptionIndex(selectedOptionIndex);
437
+ setSelectedOptionIndex(-1);
438
+ } else changeFocusedOptionIndex(0);
439
+ }
440
+ props.onFocus && props.onFocus(event);
441
+ };
442
+ var onListBlur = function onListBlur(event) {
443
+ setFocused(false);
444
+ setFocusedOptionIndex(-1);
445
+ props.onBlur && props.onBlur(event);
381
446
  };
382
- var onItemKeyDown = function onItemKeyDown(event, item) {
383
- var listItem = event.currentTarget.parentElement;
384
- switch (event.which) {
385
- //down
386
- case 40:
387
- var nextItem = findNextItem(listItem);
388
- nextItem && nextItem.children[0].focus();
389
- event.preventDefault();
447
+ var onListKeyDown = function onListKeyDown(event) {
448
+ switch (event.code) {
449
+ case 'ArrowDown':
450
+ onArrowDownKey(event);
390
451
  break;
391
-
392
- //up
393
- case 38:
394
- var prevItem = findPrevItem(listItem);
395
- prevItem && prevItem.children[0].focus();
396
- event.preventDefault();
452
+ case 'ArrowUp':
453
+ onArrowUpKey(event);
454
+ break;
455
+ case 'Home':
456
+ onHomeKey(event);
457
+ break;
458
+ case 'End':
459
+ onEndKey(event);
460
+ break;
461
+ case 'Enter':
462
+ onEnterKey(event);
463
+ break;
464
+ case 'Space':
465
+ onSpaceKey(event);
466
+ break;
467
+ case 'Escape':
468
+ if (props.popup) {
469
+ utils.DomHandler.focus(targetRef.current);
470
+ hide(event);
471
+ }
472
+ case 'Tab':
473
+ props.popup && visibleState && hide(event);
397
474
  break;
398
475
  }
399
476
  };
400
- var findNextItem = function findNextItem(item) {
401
- var nextItem = item.nextElementSibling;
402
- return nextItem ? utils.DomHandler.getAttribute(nextItem, '[data-p-disabled="true"]') || !utils.DomHandler.getAttribute(nextItem, '[data-pc-section="menuitem"]') ? findNextItem(nextItem) : nextItem : null;
477
+ var onArrowDownKey = function onArrowDownKey(event) {
478
+ var optionIndex = findNextOptionIndex(focusedOptionIndex);
479
+ changeFocusedOptionIndex(optionIndex);
480
+ event.preventDefault();
403
481
  };
404
- var findPrevItem = function findPrevItem(item) {
405
- var prevItem = item.previousElementSibling;
406
- return prevItem ? utils.DomHandler.getAttribute(prevItem, '[data-p-disabled="true"]') || !utils.DomHandler.getAttribute(prevItem, '[data-pc-section="menuitem"]') ? findPrevItem(prevItem) : prevItem : null;
482
+ var onArrowUpKey = function onArrowUpKey(event) {
483
+ if (event.altKey && props.popup) {
484
+ utils.DomHandler.focus(targetRef.current);
485
+ hide(event);
486
+ event.preventDefault();
487
+ } else {
488
+ var optionIndex = findPrevOptionIndex(focusedOptionIndex);
489
+ changeFocusedOptionIndex(optionIndex);
490
+ event.preventDefault();
491
+ }
492
+ };
493
+ var onHomeKey = function onHomeKey(event) {
494
+ changeFocusedOptionIndex(0);
495
+ event.preventDefault();
496
+ };
497
+ var onEndKey = function onEndKey(event) {
498
+ changeFocusedOptionIndex(utils.DomHandler.find(menuRef.current, 'li[data-pc-section="menuitem"][data-p-disabled="false"]').length - 1);
499
+ event.preventDefault();
500
+ };
501
+ var onEnterKey = function onEnterKey(event) {
502
+ var element = utils.DomHandler.findSingle(menuRef.current, "li[id=\"".concat("".concat(focusedOptionIndex), "\"]"));
503
+ var anchorElement = element && utils.DomHandler.findSingle(element, 'a[data-pc-section="action"]');
504
+ props.popup && utils.DomHandler.focus(targetRef.current);
505
+ anchorElement ? anchorElement.click() : element && element.click();
506
+ event.preventDefault();
507
+ };
508
+ var onSpaceKey = function onSpaceKey(event) {
509
+ onEnterKey(event);
510
+ };
511
+ var findNextOptionIndex = function findNextOptionIndex(index) {
512
+ var links = utils.DomHandler.find(menuRef.current, 'li[data-pc-section="menuitem"][data-p-disabled="false"]');
513
+ var matchedOptionIndex = _toConsumableArray(links).findIndex(function (link) {
514
+ return link.id === index;
515
+ });
516
+ return matchedOptionIndex > -1 ? matchedOptionIndex + 1 : 0;
517
+ };
518
+ var findPrevOptionIndex = function findPrevOptionIndex(index) {
519
+ var links = utils.DomHandler.find(menuRef.current, 'li[data-pc-section="menuitem"][data-p-disabled="false"]');
520
+ var matchedOptionIndex = _toConsumableArray(links).findIndex(function (link) {
521
+ return link.id === index;
522
+ });
523
+ return matchedOptionIndex > -1 ? matchedOptionIndex - 1 : 0;
524
+ };
525
+ var changeFocusedOptionIndex = function changeFocusedOptionIndex(index) {
526
+ var links = utils.DomHandler.find(menuRef.current, 'li[data-pc-section="menuitem"][data-p-disabled="false"]');
527
+ var order = index >= links.length ? links.length - 1 : index < 0 ? 0 : index;
528
+ order > -1 && setFocusedOptionIndex(links[order].getAttribute('id'));
529
+ };
530
+ var focusedOptionId = function focusedOptionId() {
531
+ return focusedOptionIndex !== -1 ? focusedOptionIndex : null;
407
532
  };
408
533
  var toggle = function toggle(event) {
409
534
  if (props.popup) {
@@ -428,6 +553,10 @@ var Menu = /*#__PURE__*/React__namespace.memo( /*#__PURE__*/React__namespace.for
428
553
  });
429
554
  utils.ZIndexUtils.set('menu', menuRef.current, context && context.autoZIndex || PrimeReact__default["default"].autoZIndex, props.baseZIndex || context && context.zIndex['menu'] || PrimeReact__default["default"].zIndex['menu']);
430
555
  utils.DomHandler.absolutePosition(menuRef.current, targetRef.current, props.popupAlignment);
556
+ if (props.popup) {
557
+ utils.DomHandler.focus(listRef.current);
558
+ changeFocusedOptionIndex(0);
559
+ }
431
560
  };
432
561
  var onEntered = function onEntered() {
433
562
  bindOverlayListener();
@@ -463,11 +592,13 @@ var Menu = /*#__PURE__*/React__namespace.memo( /*#__PURE__*/React__namespace.for
463
592
  });
464
593
  var createSubmenu = function createSubmenu(submenu, index) {
465
594
  var key = idState + '_sub_' + index;
466
- var items = submenu.items.map(createMenuItem);
595
+ var items = submenu.items.map(function (item, index) {
596
+ return createMenuItem(item, index, key);
597
+ });
467
598
  var submenuHeaderProps = utils.mergeProps({
468
599
  id: key,
469
600
  key: key,
470
- role: 'presentation',
601
+ role: 'none',
471
602
  className: utils.classNames(submenu.className, cx('submenuHeader', {
472
603
  submenu: submenu
473
604
  })),
@@ -491,6 +622,7 @@ var Menu = /*#__PURE__*/React__namespace.memo( /*#__PURE__*/React__namespace.for
491
622
  return /*#__PURE__*/React__namespace.createElement("li", separatorProps);
492
623
  };
493
624
  var createMenuItem = function createMenuItem(item, index) {
625
+ var parentId = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : null;
494
626
  if (item.visible === false) {
495
627
  return null;
496
628
  }
@@ -508,36 +640,36 @@ var Menu = /*#__PURE__*/React__namespace.memo( /*#__PURE__*/React__namespace.for
508
640
  className: cx('label')
509
641
  }, ptm('label'));
510
642
  var label = item.label && /*#__PURE__*/React__namespace.createElement("span", labelProps, item.label);
511
- var tabIndex = item.disabled ? null : 0;
512
- var key = item.id || idState + '_' + index;
643
+ var key = item.id || (parentId || idState) + '_' + index;
644
+ var contentProps = utils.mergeProps({
645
+ onClick: function onClick(event) {
646
+ return onItemClick(event, item, key);
647
+ },
648
+ className: cx('content')
649
+ }, ptm('content'));
513
650
  var actionProps = utils.mergeProps({
514
651
  href: item.url || '#',
515
652
  className: cx('action', {
516
653
  item: item
517
654
  }),
518
- role: 'menuitem',
519
- target: item.target,
520
- onClick: function onClick(event) {
521
- return onItemClick(event, item);
655
+ onFocus: function onFocus(event) {
656
+ return event.stopPropagation();
522
657
  },
523
- onKeyDown: function onKeyDown(event) {
524
- return onItemKeyDown(event);
525
- },
526
- tabIndex: tabIndex,
658
+ target: item.target,
659
+ tabIndex: '-1',
660
+ 'aria-label': item.label,
661
+ 'aria-hidden': true,
527
662
  'aria-disabled': item.disabled,
528
663
  'data-p-disabled': item.disabled
529
664
  }, ptm('action'));
530
- var content = /*#__PURE__*/React__namespace.createElement("a", actionProps, icon, label);
665
+ var content = /*#__PURE__*/React__namespace.createElement("div", contentProps, /*#__PURE__*/React__namespace.createElement("a", actionProps, icon, label));
531
666
  if (item.template) {
532
667
  var defaultContentOptions = {
533
668
  onClick: function onClick(event) {
534
- return onItemClick(event, item);
535
- },
536
- onKeyDown: function onKeyDown(event) {
537
- return onItemKeyDown(event);
669
+ return onItemClick(event, item, key);
538
670
  },
539
671
  className: linkClassName,
540
- tabIndex: tabIndex,
672
+ tabIndex: '-1',
541
673
  labelClassName: 'p-menuitem-text',
542
674
  iconClassName: iconClassName,
543
675
  element: content,
@@ -548,11 +680,16 @@ var Menu = /*#__PURE__*/React__namespace.memo( /*#__PURE__*/React__namespace.for
548
680
  var menuitemProps = utils.mergeProps({
549
681
  id: key,
550
682
  key: key,
551
- className: utils.classNames(item.className, cx('menuitem')),
683
+ className: utils.classNames(item.className, cx('menuitem', {
684
+ focused: focusedOptionIndex === key
685
+ })),
552
686
  style: sx('menuitem', {
553
687
  item: item
554
688
  }),
555
- role: 'none',
689
+ role: 'menuitem',
690
+ 'aria-label': item.label,
691
+ 'aria-disabled': item.disabled,
692
+ 'data-p-focused': focusedOptionId() === key,
556
693
  'data-p-disabled': item.disabled || false
557
694
  }, ptm('menuitem'));
558
695
  return /*#__PURE__*/React__namespace.createElement("li", menuitemProps, content);
@@ -576,8 +713,17 @@ var Menu = /*#__PURE__*/React__namespace.memo( /*#__PURE__*/React__namespace.for
576
713
  }
577
714
  }, MenuBase.getOtherProps(props), ptm('root'));
578
715
  var menuProps = utils.mergeProps({
716
+ ref: listRef,
579
717
  className: cx('menu'),
580
- role: 'menu'
718
+ id: idState + '_list',
719
+ tabIndex: props.tabIndex || '0',
720
+ role: 'menu',
721
+ 'aria-label': props.ariaLabel,
722
+ 'aria-labelledby': props.ariaLabelledBy,
723
+ 'aria-activedescendant': focused ? focusedOptionId() : undefined,
724
+ onFocus: onListFocus,
725
+ onKeyDown: onListKeyDown,
726
+ onBlur: onListBlur
581
727
  }, ptm('menu'));
582
728
  var transitionProps = utils.mergeProps({
583
729
  classNames: cx('transition'),
@@ -1 +1 @@
1
- "use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("react"),t=require("primereact/api"),n=require("primereact/componentbase"),r=require("primereact/csstransition"),i=require("primereact/hooks"),o=require("primereact/overlayservice"),u=require("primereact/portal"),a=require("primereact/utils");function l(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}function s(e){if(e&&e.__esModule)return e;var t=Object.create(null);return e&&Object.keys(e).forEach((function(n){if("default"!==n){var r=Object.getOwnPropertyDescriptor(e,n);Object.defineProperty(t,n,r.get?r:{enumerable:!0,get:function(){return e[n]}})}})),t.default=e,Object.freeze(t)}var c=s(e),p=l(t);function m(){return m=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},m.apply(this,arguments)}function f(e){return f="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},f(e)}function d(e,t){if("object"!==f(e)||null===e)return e;var n=e[Symbol.toPrimitive];if(void 0!==n){var r=n.call(e,t||"default");if("object"!==f(r))return r;throw new TypeError("@@toPrimitive must return a primitive value.")}return("string"===t?String:Number)(e)}function b(e){var t=d(e,"string");return"symbol"===f(t)?t:String(t)}function y(e){if(Array.isArray(e))return e}function v(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,s=!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){s=!0,i=e}finally{try{if(!l&&null!=n.return&&(u=n.return(),Object(u)!==u))return}finally{if(s)throw i}}return a}}function g(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 E(e,t){if(e){if("string"==typeof e)return g(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)?g(e,t):void 0}}function O(){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 h(e,t){return y(e)||v(e,t)||E(e,t)||O()}var x=n.ComponentBase.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 t=e.context;return a.classNames("p-menu p-component",{"p-menu-overlay":e.props.popup,"p-input-filled":t&&"filled"===t.inputStyle||"filled"===p.default.inputStyle,"p-ripple-disabled":t&&!1===t.ripple||!1===p.default.ripple})},menu:"p-menu-list p-reset",action:function(e){return a.classNames("p-menuitem-link",{"p-disabled":e.item.disabled})},menuitem:"p-menuitem",submenuHeader:function(e){return a.classNames("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}}}}),P=function(e){var t,n,r,i=e.target,o=void 0===i?"document":i,u=e.type,l=e.listener,s=e.options,p=e.when,m=void 0===p||p,f=c.useRef(null),d=c.useRef(null),b=(t=s,n=c.useRef(void 0),c.useEffect((function(){n.current=t})),n.current),y=function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};a.ObjectUtils.isNotEmpty(e.target)&&(v(),(e.when||m)&&(f.current=a.DomHandler.getTargetElement(e.target))),!d.current&&f.current&&(d.current=function(e){return l&&l(e)},f.current.addEventListener(u,d.current,s))},v=function(){d.current&&(f.current.removeEventListener(u,d.current,s),d.current=null)};return c.useEffect((function(){m?f.current=a.DomHandler.getTargetElement(o):(v(),f.current=null)}),[o,m]),c.useEffect((function(){!d.current||d.current===l&&b===s||(v(),m&&y())}),[l,s]),r=function(){v()},c.useEffect((function(){return r}),[]),[y,v]},S=function(e,t,n){var r=h(P({type:"keydown",listener:function(e){"Esc"!==e.key&&"Escape"!==e.key||(e.stopImmediatePropagation(),n(e))}}),2),i=r[0],o=r[1];return c.useEffect((function(){if(t&&e.current)return i(),function(){o()}})),[e,n]};function j(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 w(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?j(Object(n),!0).forEach((function(t){var r,i,o;r=e,o=n[t],(i=b(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)):j(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}var N=c.memo(c.forwardRef((function(e,l){var s=c.useContext(t.PrimeReactContext),f=x.getProps(e,s),d=h(c.useState(f.id),2),b=d[0],y=d[1],v=h(c.useState(!f.popup),2),g=v[0],E=v[1],O=x.setMetaData({props:f,state:{id:b,visible:g}}),P=O.ptm,j=O.cx,N=O.sx;n.useHandleStyle(x.css.styles,O.isUnstyled,{name:"menu"});var D=c.useRef(null),I=c.useRef(null);S(I,f.popup&&f.closeOnEscape,(function(e){R(e)}));var k=h(i.useOverlayListener({target:I,overlay:D,listener:function(e,t){t.valid&&R(e)},when:g}),2),H=k[0],T=k[1],A=function(e,t){t.disabled?e.preventDefault():(t.url||e.preventDefault(),t.command&&t.command({originalEvent:e,item:t}),f.popup&&R(e))},C=function(e,t){var n=e.currentTarget.parentElement;switch(e.which){case 40:var r=_(n);r&&r.children[0].focus(),e.preventDefault();break;case 38:var i=U(n);i&&i.children[0].focus(),e.preventDefault()}},_=function e(t){var n=t.nextElementSibling;return n?a.DomHandler.getAttribute(n,'[data-p-disabled="true"]')||!a.DomHandler.getAttribute(n,'[data-pc-section="menuitem"]')?e(n):n:null},U=function e(t){var n=t.previousElementSibling;return n?a.DomHandler.getAttribute(n,'[data-p-disabled="true"]')||!a.DomHandler.getAttribute(n,'[data-pc-section="menuitem"]')?e(n):n:null},q=function(e){f.popup&&(g?R(e):M(e))},M=function(e){I.current=e.currentTarget,E(!0),f.onShow&&f.onShow(e)},R=function(e){I.current=e.currentTarget,E(!1),f.onHide&&f.onHide(e)},Z=function(){a.DomHandler.addStyles(D.current,{position:"absolute",top:"0",left:"0"}),a.ZIndexUtils.set("menu",D.current,s&&s.autoZIndex||p.default.autoZIndex,f.baseZIndex||s&&s.zIndex.menu||p.default.zIndex.menu),a.DomHandler.absolutePosition(D.current,I.current,f.popupAlignment)},z=function(){H()},L=function(){I.current=null,T()},J=function(){a.ZIndexUtils.clear(D.current)};i.useMountEffect((function(){b||y(a.UniqueComponentId())})),i.useUnmountEffect((function(){a.ZIndexUtils.clear(D.current)})),c.useImperativeHandle(l,(function(){return{props:f,toggle:q,show:M,hide:R,getElement:function(){return D.current},getTarget:function(){return I.current}}}));var K=function(e,t){var n=b+"_sub_"+t,r=e.items.map(B),i=a.mergeProps({id:n,key:n,role:"presentation",className:a.classNames(e.className,j("submenuHeader",{submenu:e})),style:N("submenuHeader",{submenu:e}),"data-p-disabled":e.disabled},P("submenuHeader"));return c.createElement(c.Fragment,{key:n},c.createElement("li",i,e.label),r)},X=function(e){var t=b+"_separator_"+e,n=a.mergeProps({id:t,key:t,className:j("separator"),role:"separator"},P("separator"));return c.createElement("li",n)},B=function(e,t){if(!1===e.visible)return null;var n=a.classNames("p-menuitem-link",{"p-disabled":e.disabled}),r=a.classNames("p-menuitem-icon",e.icon),i=a.mergeProps({className:j("icon")},P("icon")),o=a.IconUtils.getJSXIcon(e.icon,w({},i),{props:f}),u=a.mergeProps({className:j("label")},P("label")),l=e.label&&c.createElement("span",u,e.label),s=e.disabled?null:0,p=e.id||b+"_"+t,m=a.mergeProps({href:e.url||"#",className:j("action",{item:e}),role:"menuitem",target:e.target,onClick:function(t){return A(t,e)},onKeyDown:function(e){return C(e)},tabIndex:s,"aria-disabled":e.disabled,"data-p-disabled":e.disabled},P("action")),d=c.createElement("a",m,o,l);e.template&&(d=a.ObjectUtils.getJSXElement(e.template,e,{onClick:function(t){return A(t,e)},onKeyDown:function(e){return C(e)},className:n,tabIndex:s,labelClassName:"p-menuitem-text",iconClassName:r,element:d,props:f}));var y=a.mergeProps({id:p,key:p,className:a.classNames(e.className,j("menuitem")),style:N("menuitem",{item:e}),role:"none","data-p-disabled":e.disabled||!1},P("menuitem"));return c.createElement("li",y,d)},F=function(e,t){return e.separator?X(t):e.items?K(e,t):B(e,t)},G=function(){if(f.model){var e=f.model.map(F),t=a.mergeProps({className:a.classNames(f.className,j("root",{context:s})),style:f.style,onClick:function(e){return t=e,void(f.popup&&o.OverlayService.emit("overlay-click",{originalEvent:t,target:I.current}));var t}},x.getOtherProps(f),P("root")),n=a.mergeProps({className:j("menu"),role:"menu"},P("menu")),i=a.mergeProps({classNames:j("transition"),in:g,timeout:{enter:120,exit:100},options:f.transitionOptions,unmountOnExit:!0,onEnter:Z,onEntered:z,onExit:L,onExited:J},P("transition"));return c.createElement(r.CSSTransition,m({nodeRef:D},i),c.createElement("div",m({id:f.id,ref:D},t),c.createElement("ul",n,e)))}return null}();return f.popup?c.createElement(u.Portal,{element:G,appendTo:f.appendTo}):G})));N.displayName="Menu",exports.Menu=N;
1
+ "use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("react"),n=require("primereact/api"),t=require("primereact/componentbase"),r=require("primereact/csstransition"),a=require("primereact/hooks"),o=require("primereact/overlayservice"),i=require("primereact/portal"),u=require("primereact/utils");function l(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}function c(e){if(e&&e.__esModule)return e;var n=Object.create(null);return e&&Object.keys(e).forEach((function(t){if("default"!==t){var r=Object.getOwnPropertyDescriptor(e,t);Object.defineProperty(n,t,r.get?r:{enumerable:!0,get:function(){return e[t]}})}})),n.default=e,Object.freeze(n)}var s=c(e),p=l(n);function m(){return m=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},m.apply(this,arguments)}function d(e){return d="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},d(e)}function f(e,n){if("object"!==d(e)||null===e)return e;var t=e[Symbol.toPrimitive];if(void 0!==t){var r=t.call(e,n||"default");if("object"!==d(r))return r;throw new TypeError("@@toPrimitive must return a primitive value.")}return("string"===n?String:Number)(e)}function b(e){var n=f(e,"string");return"symbol"===d(n)?n:String(n)}function y(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 v(e){if(Array.isArray(e))return y(e)}function g(e){if("undefined"!=typeof Symbol&&null!=e[Symbol.iterator]||null!=e["@@iterator"])return Array.from(e)}function E(e,n){if(e){if("string"==typeof e)return y(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)?y(e,n):void 0}}function h(){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 O(e){return v(e)||g(e)||E(e)||h()}function S(e){if(Array.isArray(e))return e}function x(e,n){var t=null==e?null:"undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null!=t){var r,a,o,i,u=[],l=!0,c=!1;try{if(o=(t=t.call(e)).next,0===n){if(Object(t)!==t)return;l=!1}else for(;!(l=(r=o.call(t)).done)&&(u.push(r.value),u.length!==n);l=!0);}catch(e){c=!0,a=e}finally{try{if(!l&&null!=t.return&&(i=t.return(),Object(i)!==i))return}finally{if(c)throw a}}return u}}function P(){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 j(e,n){return S(e)||x(e,n)||E(e,n)||P()}var w=t.ComponentBase.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 n=e.context;return u.classNames("p-menu p-component",{"p-menu-overlay":e.props.popup,"p-input-filled":n&&"filled"===n.inputStyle||"filled"===p.default.inputStyle,"p-ripple-disabled":n&&!1===n.ripple||!1===p.default.ripple})},menu:"p-menu-list p-reset",content:"p-menuitem-content",action:function(e){return u.classNames("p-menuitem-link",{"p-disabled":e.item.disabled})},menuitem:function(e){return u.classNames("p-menuitem",{"p-focus":e.focused})},submenuHeader:function(e){return u.classNames("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}}}}),D=function(e){var n=s.useRef(void 0);return s.useEffect((function(){n.current=e})),n.current},N=function(e,n,t){var r,a,o,i,l,c,p,m,d,f,b,y,v,g,E,h=(i=void 0===(o=(r={type:"keydown",listener:function(e){"Esc"!==e.key&&"Escape"!==e.key||(e.stopImmediatePropagation(),t(e))}}).target)?"document":o,l=r.type,c=r.listener,p=r.options,d=void 0===(m=r.when)||m,f=s.useRef(null),b=s.useRef(null),y=D(c),v=D(p),g=function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};u.ObjectUtils.isNotEmpty(e.target)&&(E(),(e.when||d)&&(f.current=u.DomHandler.getTargetElement(e.target))),!b.current&&f.current&&(b.current=function(e){return c&&c(e)},f.current.addEventListener(l,b.current,p))},E=function(){b.current&&(f.current.removeEventListener(l,b.current,p),b.current=null)},s.useEffect((function(){d?f.current=u.DomHandler.getTargetElement(i):(E(),f.current=null)}),[i,d]),s.useEffect((function(){!b.current||""+y==""+c&&v===p||(E(),d&&g())}),[c,p,d]),a=function(){E()},s.useEffect((function(){return a}),[]),[g,E]),O=j(h,2),S=O[0],x=O[1];return s.useEffect((function(){if(n&&e.current)return S(),function(){x()}})),[e,t]};function I(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 k(e){for(var n=1;n<arguments.length;n++){var t=null!=arguments[n]?arguments[n]:{};n%2?I(Object(t),!0).forEach((function(n){var r,a,o;r=e,o=t[n],(a=b(a=n))in r?Object.defineProperty(r,a,{value:o,enumerable:!0,configurable:!0,writable:!0}):r[a]=o})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(t)):I(Object(t)).forEach((function(n){Object.defineProperty(e,n,Object.getOwnPropertyDescriptor(t,n))}))}return e}var H=s.memo(s.forwardRef((function(e,l){var c=s.useContext(n.PrimeReactContext),d=w.getProps(e,c),f=j(s.useState(d.id),2),b=f[0],y=f[1],v=j(s.useState(!d.popup),2),g=v[0],E=v[1],h=j(s.useState(-1),2),S=h[0],x=h[1],P=j(s.useState(-1),2),D=P[0],I=P[1],H=j(s.useState(!1),2),A=H[0],T=H[1],_=w.setMetaData({props:d,state:{id:b,visible:g}}),C=_.ptm,U=_.cx,q=_.sx;t.useHandleStyle(w.css.styles,_.isUnstyled,{name:"menu"});var R=s.useRef(null),M=s.useRef(null),Z=s.useRef(null);N(Z,d.popup&&d.closeOnEscape,(function(e){ie(e)}));var B=j(a.useOverlayListener({target:Z,overlay:R,listener:function(e,n){n.valid&&(ie(e),x(-1))},when:g}),2),L=B[0],F=B[1],z=function(e,n,t){n.disabled?e.preventDefault():(n.url||e.preventDefault(),n.command&&n.command({originalEvent:e,item:n}),d.popup&&ie(e),d.popup||S===t||x(t),e.preventDefault(),e.stopPropagation())},J=function(e){T(!0),d.popup||(-1!==D?(te(D),I(-1)):te(0)),d.onFocus&&d.onFocus(e)},K=function(e){T(!1),x(-1),d.onBlur&&d.onBlur(e)},X=function(e){switch(e.code){case"ArrowDown":G(e);break;case"ArrowUp":Y(e);break;case"Home":$(e);break;case"End":Q(e);break;case"Enter":V(e);break;case"Space":W(e);break;case"Escape":d.popup&&(u.DomHandler.focus(Z.current),ie(e));case"Tab":d.popup&&g&&ie(e)}},G=function(e){var n=ee(S);te(n),e.preventDefault()},Y=function(e){if(e.altKey&&d.popup)u.DomHandler.focus(Z.current),ie(e),e.preventDefault();else{var n=ne(S);te(n),e.preventDefault()}},$=function(e){te(0),e.preventDefault()},Q=function(e){te(u.DomHandler.find(R.current,'li[data-pc-section="menuitem"][data-p-disabled="false"]').length-1),e.preventDefault()},V=function(e){var n=u.DomHandler.findSingle(R.current,'li[id="'.concat("".concat(S),'"]')),t=n&&u.DomHandler.findSingle(n,'a[data-pc-section="action"]');d.popup&&u.DomHandler.focus(Z.current),t?t.click():n&&n.click(),e.preventDefault()},W=function(e){V(e)},ee=function(e){var n=O(u.DomHandler.find(R.current,'li[data-pc-section="menuitem"][data-p-disabled="false"]')).findIndex((function(n){return n.id===e}));return n>-1?n+1:0},ne=function(e){var n=O(u.DomHandler.find(R.current,'li[data-pc-section="menuitem"][data-p-disabled="false"]')).findIndex((function(n){return n.id===e}));return n>-1?n-1:0},te=function(e){var n=u.DomHandler.find(R.current,'li[data-pc-section="menuitem"][data-p-disabled="false"]'),t=e>=n.length?n.length-1:e<0?0:e;t>-1&&x(n[t].getAttribute("id"))},re=function(){return-1!==S?S:null},ae=function(e){d.popup&&(g?ie(e):oe(e))},oe=function(e){Z.current=e.currentTarget,E(!0),d.onShow&&d.onShow(e)},ie=function(e){Z.current=e.currentTarget,E(!1),d.onHide&&d.onHide(e)},ue=function(){u.DomHandler.addStyles(R.current,{position:"absolute",top:"0",left:"0"}),u.ZIndexUtils.set("menu",R.current,c&&c.autoZIndex||p.default.autoZIndex,d.baseZIndex||c&&c.zIndex.menu||p.default.zIndex.menu),u.DomHandler.absolutePosition(R.current,Z.current,d.popupAlignment),d.popup&&(u.DomHandler.focus(M.current),te(0))},le=function(){L()},ce=function(){Z.current=null,F()},se=function(){u.ZIndexUtils.clear(R.current)};a.useMountEffect((function(){b||y(u.UniqueComponentId())})),a.useUnmountEffect((function(){u.ZIndexUtils.clear(R.current)})),s.useImperativeHandle(l,(function(){return{props:d,toggle:ae,show:oe,hide:ie,getElement:function(){return R.current},getTarget:function(){return Z.current}}}));var pe=function(e,n){var t=b+"_sub_"+n,r=e.items.map((function(e,n){return de(e,n,t)})),a=u.mergeProps({id:t,key:t,role:"none",className:u.classNames(e.className,U("submenuHeader",{submenu:e})),style:q("submenuHeader",{submenu:e}),"data-p-disabled":e.disabled},C("submenuHeader"));return s.createElement(s.Fragment,{key:t},s.createElement("li",a,e.label),r)},me=function(e){var n=b+"_separator_"+e,t=u.mergeProps({id:n,key:n,className:U("separator"),role:"separator"},C("separator"));return s.createElement("li",t)},de=function(e,n){var t=arguments.length>2&&void 0!==arguments[2]?arguments[2]:null;if(!1===e.visible)return null;var r=u.classNames("p-menuitem-link",{"p-disabled":e.disabled}),a=u.classNames("p-menuitem-icon",e.icon),o=u.mergeProps({className:U("icon")},C("icon")),i=u.IconUtils.getJSXIcon(e.icon,k({},o),{props:d}),l=u.mergeProps({className:U("label")},C("label")),c=e.label&&s.createElement("span",l,e.label),p=e.id||(t||b)+"_"+n,m=u.mergeProps({onClick:function(n){return z(n,e,p)},className:U("content")},C("content")),f=u.mergeProps({href:e.url||"#",className:U("action",{item:e}),onFocus:function(e){return e.stopPropagation()},target:e.target,tabIndex:"-1","aria-label":e.label,"aria-hidden":!0,"aria-disabled":e.disabled,"data-p-disabled":e.disabled},C("action")),y=s.createElement("div",m,s.createElement("a",f,i,c));e.template&&(y=u.ObjectUtils.getJSXElement(e.template,e,{onClick:function(n){return z(n,e,p)},className:r,tabIndex:"-1",labelClassName:"p-menuitem-text",iconClassName:a,element:y,props:d}));var v=u.mergeProps({id:p,key:p,className:u.classNames(e.className,U("menuitem",{focused:S===p})),style:q("menuitem",{item:e}),role:"menuitem","aria-label":e.label,"aria-disabled":e.disabled,"data-p-focused":re()===p,"data-p-disabled":e.disabled||!1},C("menuitem"));return s.createElement("li",v,y)},fe=function(e,n){return e.separator?me(n):e.items?pe(e,n):de(e,n)},be=function(){if(d.model){var e=d.model.map(fe),n=u.mergeProps({className:u.classNames(d.className,U("root",{context:c})),style:d.style,onClick:function(e){return n=e,void(d.popup&&o.OverlayService.emit("overlay-click",{originalEvent:n,target:Z.current}));var n}},w.getOtherProps(d),C("root")),t=u.mergeProps({ref:M,className:U("menu"),id:b+"_list",tabIndex:d.tabIndex||"0",role:"menu","aria-label":d.ariaLabel,"aria-labelledby":d.ariaLabelledBy,"aria-activedescendant":A?re():void 0,onFocus:J,onKeyDown:X,onBlur:K},C("menu")),a=u.mergeProps({classNames:U("transition"),in:g,timeout:{enter:120,exit:100},options:d.transitionOptions,unmountOnExit:!0,onEnter:ue,onEntered:le,onExit:ce,onExited:se},C("transition"));return s.createElement(r.CSSTransition,m({nodeRef:R},a),s.createElement("div",m({id:d.id,ref:R},n),s.createElement("ul",t,e)))}return null}();return d.popup?s.createElement(i.Portal,{element:be,appendTo:d.appendTo}):be})));H.displayName="Menu",exports.Menu=H;
package/menu/menu.d.ts CHANGED
@@ -124,6 +124,10 @@ export interface MenuProps extends Omit<React.DetailedHTMLProps<React.HTMLAttrib
124
124
  * @type {CSSTransitionProps}
125
125
  */
126
126
  transitionOptions?: CSSTransitionProps | undefined;
127
+ /**
128
+ * Index of the element in tabbing order.
129
+ */
130
+ tabIndex?: number | undefined;
127
131
  /**
128
132
  * Callback to invoke when a popup menu is shown.
129
133
  * @param {React.SyntheticEvent} event - Browser event.
@@ -134,6 +138,16 @@ export interface MenuProps extends Omit<React.DetailedHTMLProps<React.HTMLAttrib
134
138
  * @param {React.SyntheticEvent} event - Browser event.
135
139
  */
136
140
  onHide?(event: React.SyntheticEvent): void;
141
+ /**
142
+ * Callback to invoke when menu receives focus.
143
+ * @param {React.SyntheticEvent} event - Browser event.
144
+ */
145
+ onFocus?(event: React.SyntheticEvent): void;
146
+ /**
147
+ * Callback to invoke when menu loses focus.
148
+ * @param {React.SyntheticEvent} event - Browser event.
149
+ */
150
+ onBlur?(event: React.SyntheticEvent): void;
137
151
  /**
138
152
  * Used to get the child elements of the component.
139
153
  * @readonly