primereact 10.4.0 → 10.5.1

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 (517) hide show
  1. package/api/api.d.ts +2 -2
  2. package/autocomplete/autocomplete.cjs.js +2 -3
  3. package/autocomplete/autocomplete.cjs.min.js +1 -1
  4. package/autocomplete/autocomplete.esm.js +2 -3
  5. package/autocomplete/autocomplete.esm.min.js +1 -1
  6. package/autocomplete/autocomplete.js +2 -3
  7. package/autocomplete/autocomplete.min.js +1 -1
  8. package/breadcrumb/breadcrumb.cjs.js +4 -3
  9. package/breadcrumb/breadcrumb.cjs.min.js +1 -1
  10. package/breadcrumb/breadcrumb.esm.js +4 -3
  11. package/breadcrumb/breadcrumb.esm.min.js +1 -1
  12. package/breadcrumb/breadcrumb.js +4 -3
  13. package/breadcrumb/breadcrumb.min.js +1 -1
  14. package/button/button.cjs.js +2 -3
  15. package/button/button.cjs.min.js +1 -1
  16. package/button/button.esm.js +2 -3
  17. package/button/button.esm.min.js +1 -1
  18. package/button/button.js +2 -3
  19. package/button/button.min.js +1 -1
  20. package/calendar/calendar.cjs.js +12 -4
  21. package/calendar/calendar.cjs.min.js +1 -1
  22. package/calendar/calendar.esm.js +12 -4
  23. package/calendar/calendar.esm.min.js +1 -1
  24. package/calendar/calendar.js +12 -4
  25. package/calendar/calendar.min.js +1 -1
  26. package/checkbox/checkbox.cjs.js +4 -3
  27. package/checkbox/checkbox.cjs.min.js +1 -1
  28. package/checkbox/checkbox.esm.js +4 -3
  29. package/checkbox/checkbox.esm.min.js +1 -1
  30. package/checkbox/checkbox.js +4 -3
  31. package/checkbox/checkbox.min.js +1 -1
  32. package/chips/chips.cjs.js +111 -23
  33. package/chips/chips.cjs.min.js +1 -1
  34. package/chips/chips.esm.js +111 -23
  35. package/chips/chips.esm.min.js +1 -1
  36. package/chips/chips.js +111 -23
  37. package/chips/chips.min.js +1 -1
  38. package/colorpicker/colorpicker.cjs.js +2 -3
  39. package/colorpicker/colorpicker.cjs.min.js +1 -1
  40. package/colorpicker/colorpicker.esm.js +2 -3
  41. package/colorpicker/colorpicker.esm.min.js +1 -1
  42. package/colorpicker/colorpicker.js +2 -3
  43. package/colorpicker/colorpicker.min.js +1 -1
  44. package/confirmdialog/confirmdialog.cjs.js +6 -2
  45. package/confirmdialog/confirmdialog.cjs.min.js +1 -1
  46. package/confirmdialog/confirmdialog.esm.js +6 -2
  47. package/confirmdialog/confirmdialog.esm.min.js +1 -1
  48. package/confirmdialog/confirmdialog.js +7 -3
  49. package/confirmdialog/confirmdialog.min.js +1 -1
  50. package/contextmenu/contextmenu.cjs.js +4 -3
  51. package/contextmenu/contextmenu.cjs.min.js +1 -1
  52. package/contextmenu/contextmenu.esm.js +4 -3
  53. package/contextmenu/contextmenu.esm.min.js +1 -1
  54. package/contextmenu/contextmenu.js +4 -3
  55. package/contextmenu/contextmenu.min.js +1 -1
  56. package/core/core.js +2459 -19563
  57. package/core/core.min.js +34 -34
  58. package/datatable/datatable.cjs.js +6 -5
  59. package/datatable/datatable.cjs.min.js +1 -1
  60. package/datatable/datatable.d.ts +10 -2
  61. package/datatable/datatable.esm.js +6 -5
  62. package/datatable/datatable.esm.min.js +1 -1
  63. package/datatable/datatable.js +6 -5
  64. package/datatable/datatable.min.js +1 -1
  65. package/dropdown/dropdown.cjs.js +329 -156
  66. package/dropdown/dropdown.cjs.min.js +1 -1
  67. package/dropdown/dropdown.esm.js +329 -156
  68. package/dropdown/dropdown.esm.min.js +1 -1
  69. package/dropdown/dropdown.js +329 -156
  70. package/dropdown/dropdown.min.js +1 -1
  71. package/icons/arrowdown/index.cjs.js +2 -642
  72. package/icons/arrowdown/index.cjs.min.js +1 -1
  73. package/icons/arrowdown/index.esm.js +2 -642
  74. package/icons/arrowdown/index.esm.min.js +1 -1
  75. package/icons/arrowdown/index.js +2 -642
  76. package/icons/arrowdown/index.min.js +1 -1
  77. package/icons/arrowup/index.cjs.js +2 -642
  78. package/icons/arrowup/index.cjs.min.js +1 -1
  79. package/icons/arrowup/index.esm.js +2 -642
  80. package/icons/arrowup/index.esm.min.js +1 -1
  81. package/icons/arrowup/index.js +2 -642
  82. package/icons/arrowup/index.min.js +1 -1
  83. package/icons/ban/index.cjs.js +2 -642
  84. package/icons/ban/index.cjs.min.js +1 -1
  85. package/icons/ban/index.esm.js +2 -642
  86. package/icons/ban/index.esm.min.js +1 -1
  87. package/icons/ban/index.js +2 -642
  88. package/icons/ban/index.min.js +1 -1
  89. package/icons/blank/index.cjs.js +62 -0
  90. package/icons/blank/index.cjs.min.js +1 -0
  91. package/icons/blank/index.d.ts +19 -0
  92. package/icons/blank/index.esm.js +38 -0
  93. package/icons/blank/index.esm.min.js +1 -0
  94. package/icons/blank/index.js +65 -0
  95. package/icons/blank/index.min.js +1 -0
  96. package/icons/blank/package.json +7 -0
  97. package/icons/download/index.cjs.js +2 -642
  98. package/icons/download/index.cjs.min.js +1 -1
  99. package/icons/download/index.esm.js +2 -642
  100. package/icons/download/index.esm.min.js +1 -1
  101. package/icons/download/index.js +2 -642
  102. package/icons/download/index.min.js +1 -1
  103. package/icons/exclamationtriangle/index.cjs.js +2 -642
  104. package/icons/exclamationtriangle/index.cjs.min.js +1 -1
  105. package/icons/exclamationtriangle/index.esm.js +2 -642
  106. package/icons/exclamationtriangle/index.esm.min.js +1 -1
  107. package/icons/exclamationtriangle/index.js +2 -642
  108. package/icons/exclamationtriangle/index.min.js +1 -1
  109. package/icons/eyeslash/index.cjs.js +2 -642
  110. package/icons/eyeslash/index.cjs.min.js +1 -1
  111. package/icons/eyeslash/index.esm.js +2 -642
  112. package/icons/eyeslash/index.esm.min.js +1 -1
  113. package/icons/eyeslash/index.js +2 -642
  114. package/icons/eyeslash/index.min.js +1 -1
  115. package/icons/filter/index.cjs.js +2 -642
  116. package/icons/filter/index.cjs.min.js +1 -1
  117. package/icons/filter/index.esm.js +2 -642
  118. package/icons/filter/index.esm.min.js +1 -1
  119. package/icons/filter/index.js +2 -642
  120. package/icons/filter/index.min.js +1 -1
  121. package/icons/filterslash/index.cjs.js +2 -642
  122. package/icons/filterslash/index.cjs.min.js +1 -1
  123. package/icons/filterslash/index.esm.js +2 -642
  124. package/icons/filterslash/index.esm.min.js +1 -1
  125. package/icons/filterslash/index.js +2 -642
  126. package/icons/filterslash/index.min.js +1 -1
  127. package/icons/infocircle/index.cjs.js +2 -642
  128. package/icons/infocircle/index.cjs.min.js +1 -1
  129. package/icons/infocircle/index.esm.js +2 -642
  130. package/icons/infocircle/index.esm.min.js +1 -1
  131. package/icons/infocircle/index.js +2 -642
  132. package/icons/infocircle/index.min.js +1 -1
  133. package/icons/pencil/index.cjs.js +2 -642
  134. package/icons/pencil/index.cjs.min.js +1 -1
  135. package/icons/pencil/index.esm.js +2 -642
  136. package/icons/pencil/index.esm.min.js +1 -1
  137. package/icons/pencil/index.js +2 -642
  138. package/icons/pencil/index.min.js +1 -1
  139. package/icons/plus/index.cjs.js +2 -642
  140. package/icons/plus/index.cjs.min.js +1 -1
  141. package/icons/plus/index.esm.js +2 -642
  142. package/icons/plus/index.esm.min.js +1 -1
  143. package/icons/plus/index.js +2 -642
  144. package/icons/plus/index.min.js +1 -1
  145. package/icons/refresh/index.cjs.js +2 -642
  146. package/icons/refresh/index.cjs.min.js +1 -1
  147. package/icons/refresh/index.esm.js +2 -642
  148. package/icons/refresh/index.esm.min.js +1 -1
  149. package/icons/refresh/index.js +2 -642
  150. package/icons/refresh/index.min.js +1 -1
  151. package/icons/search/index.cjs.js +2 -642
  152. package/icons/search/index.cjs.min.js +1 -1
  153. package/icons/search/index.esm.js +2 -642
  154. package/icons/search/index.esm.min.js +1 -1
  155. package/icons/search/index.js +2 -642
  156. package/icons/search/index.min.js +1 -1
  157. package/icons/searchminus/index.cjs.js +2 -642
  158. package/icons/searchminus/index.cjs.min.js +1 -1
  159. package/icons/searchminus/index.esm.js +2 -642
  160. package/icons/searchminus/index.esm.min.js +1 -1
  161. package/icons/searchminus/index.js +2 -642
  162. package/icons/searchminus/index.min.js +1 -1
  163. package/icons/searchplus/index.cjs.js +2 -642
  164. package/icons/searchplus/index.cjs.min.js +1 -1
  165. package/icons/searchplus/index.esm.js +2 -642
  166. package/icons/searchplus/index.esm.min.js +1 -1
  167. package/icons/searchplus/index.js +2 -642
  168. package/icons/searchplus/index.min.js +1 -1
  169. package/icons/sortalt/index.cjs.js +2 -642
  170. package/icons/sortalt/index.cjs.min.js +1 -1
  171. package/icons/sortalt/index.esm.js +2 -642
  172. package/icons/sortalt/index.esm.min.js +1 -1
  173. package/icons/sortalt/index.js +2 -642
  174. package/icons/sortalt/index.min.js +1 -1
  175. package/icons/sortamountdown/index.cjs.js +2 -642
  176. package/icons/sortamountdown/index.cjs.min.js +1 -1
  177. package/icons/sortamountdown/index.esm.js +2 -642
  178. package/icons/sortamountdown/index.esm.min.js +1 -1
  179. package/icons/sortamountdown/index.js +2 -642
  180. package/icons/sortamountdown/index.min.js +1 -1
  181. package/icons/sortamountupalt/index.cjs.js +2 -642
  182. package/icons/sortamountupalt/index.cjs.min.js +1 -1
  183. package/icons/sortamountupalt/index.esm.js +2 -642
  184. package/icons/sortamountupalt/index.esm.min.js +1 -1
  185. package/icons/sortamountupalt/index.js +2 -642
  186. package/icons/sortamountupalt/index.min.js +1 -1
  187. package/icons/spinner/index.cjs.js +2 -642
  188. package/icons/spinner/index.cjs.min.js +1 -1
  189. package/icons/spinner/index.esm.js +2 -642
  190. package/icons/spinner/index.esm.min.js +1 -1
  191. package/icons/spinner/index.js +2 -642
  192. package/icons/spinner/index.min.js +1 -1
  193. package/icons/star/index.cjs.js +2 -642
  194. package/icons/star/index.cjs.min.js +1 -1
  195. package/icons/star/index.esm.js +2 -642
  196. package/icons/star/index.esm.min.js +1 -1
  197. package/icons/star/index.js +2 -642
  198. package/icons/star/index.min.js +1 -1
  199. package/icons/starfill/index.cjs.js +2 -642
  200. package/icons/starfill/index.cjs.min.js +1 -1
  201. package/icons/starfill/index.esm.js +2 -642
  202. package/icons/starfill/index.esm.min.js +1 -1
  203. package/icons/starfill/index.js +2 -642
  204. package/icons/starfill/index.min.js +1 -1
  205. package/icons/thlarge/index.cjs.js +2 -642
  206. package/icons/thlarge/index.cjs.min.js +1 -1
  207. package/icons/thlarge/index.esm.js +2 -642
  208. package/icons/thlarge/index.esm.min.js +1 -1
  209. package/icons/thlarge/index.js +2 -642
  210. package/icons/thlarge/index.min.js +1 -1
  211. package/icons/timescircle/index.cjs.js +2 -642
  212. package/icons/timescircle/index.cjs.min.js +1 -1
  213. package/icons/timescircle/index.esm.js +2 -642
  214. package/icons/timescircle/index.esm.min.js +1 -1
  215. package/icons/timescircle/index.js +2 -642
  216. package/icons/timescircle/index.min.js +1 -1
  217. package/icons/trash/index.cjs.js +2 -642
  218. package/icons/trash/index.cjs.min.js +1 -1
  219. package/icons/trash/index.esm.js +2 -642
  220. package/icons/trash/index.esm.min.js +1 -1
  221. package/icons/trash/index.js +2 -642
  222. package/icons/trash/index.min.js +1 -1
  223. package/icons/undo/index.cjs.js +2 -642
  224. package/icons/undo/index.cjs.min.js +1 -1
  225. package/icons/undo/index.esm.js +2 -642
  226. package/icons/undo/index.esm.min.js +1 -1
  227. package/icons/undo/index.js +2 -642
  228. package/icons/undo/index.min.js +1 -1
  229. package/icons/upload/index.cjs.js +2 -642
  230. package/icons/upload/index.cjs.min.js +1 -1
  231. package/icons/upload/index.esm.js +2 -642
  232. package/icons/upload/index.esm.min.js +1 -1
  233. package/icons/upload/index.js +2 -642
  234. package/icons/upload/index.min.js +1 -1
  235. package/icons/windowmaximize/index.cjs.js +2 -642
  236. package/icons/windowmaximize/index.cjs.min.js +1 -1
  237. package/icons/windowmaximize/index.esm.js +2 -642
  238. package/icons/windowmaximize/index.esm.min.js +1 -1
  239. package/icons/windowmaximize/index.js +2 -642
  240. package/icons/windowmaximize/index.min.js +1 -1
  241. package/icons/windowminimize/index.cjs.js +2 -642
  242. package/icons/windowminimize/index.cjs.min.js +1 -1
  243. package/icons/windowminimize/index.esm.js +2 -642
  244. package/icons/windowminimize/index.esm.min.js +1 -1
  245. package/icons/windowminimize/index.js +2 -642
  246. package/icons/windowminimize/index.min.js +1 -1
  247. package/image/image.cjs.js +7 -566
  248. package/image/image.cjs.min.js +1 -1
  249. package/image/image.esm.js +9 -568
  250. package/image/image.esm.min.js +1 -1
  251. package/image/image.js +7 -566
  252. package/image/image.min.js +1 -1
  253. package/inputnumber/inputnumber.cjs.js +23 -20
  254. package/inputnumber/inputnumber.cjs.min.js +1 -1
  255. package/inputnumber/inputnumber.esm.js +23 -20
  256. package/inputnumber/inputnumber.esm.min.js +1 -1
  257. package/inputnumber/inputnumber.js +23 -20
  258. package/inputnumber/inputnumber.min.js +1 -1
  259. package/inputswitch/inputswitch.cjs.js +5 -4
  260. package/inputswitch/inputswitch.cjs.min.js +1 -1
  261. package/inputswitch/inputswitch.esm.js +5 -4
  262. package/inputswitch/inputswitch.esm.min.js +1 -1
  263. package/inputswitch/inputswitch.js +5 -4
  264. package/inputswitch/inputswitch.min.js +1 -1
  265. package/inputtext/inputtext.cjs.js +2 -3
  266. package/inputtext/inputtext.cjs.min.js +1 -1
  267. package/inputtext/inputtext.esm.js +2 -3
  268. package/inputtext/inputtext.esm.min.js +1 -1
  269. package/inputtext/inputtext.js +2 -3
  270. package/inputtext/inputtext.min.js +1 -1
  271. package/inputtextarea/inputtextarea.cjs.js +2 -3
  272. package/inputtextarea/inputtextarea.cjs.min.js +1 -1
  273. package/inputtextarea/inputtextarea.esm.js +2 -3
  274. package/inputtextarea/inputtextarea.esm.min.js +1 -1
  275. package/inputtextarea/inputtextarea.js +2 -3
  276. package/inputtextarea/inputtextarea.min.js +1 -1
  277. package/knob/knob.cjs.js +62 -0
  278. package/knob/knob.cjs.min.js +1 -1
  279. package/knob/knob.esm.js +62 -0
  280. package/knob/knob.esm.min.js +1 -1
  281. package/knob/knob.js +62 -0
  282. package/knob/knob.min.js +1 -1
  283. package/listbox/listbox.cjs.js +364 -95
  284. package/listbox/listbox.cjs.min.js +1 -1
  285. package/listbox/listbox.esm.js +365 -96
  286. package/listbox/listbox.esm.min.js +1 -1
  287. package/listbox/listbox.js +364 -95
  288. package/listbox/listbox.min.js +1 -1
  289. package/megamenu/megamenu.cjs.js +3 -3
  290. package/megamenu/megamenu.cjs.min.js +1 -1
  291. package/megamenu/megamenu.esm.js +3 -3
  292. package/megamenu/megamenu.esm.min.js +1 -1
  293. package/megamenu/megamenu.js +3 -3
  294. package/megamenu/megamenu.min.js +1 -1
  295. package/mention/mention.cjs.js +2 -3
  296. package/mention/mention.cjs.min.js +1 -1
  297. package/mention/mention.esm.js +2 -3
  298. package/mention/mention.esm.min.js +1 -1
  299. package/mention/mention.js +2 -3
  300. package/mention/mention.min.js +1 -1
  301. package/menu/menu.cjs.js +4 -2
  302. package/menu/menu.cjs.min.js +1 -1
  303. package/menu/menu.esm.js +4 -2
  304. package/menu/menu.esm.min.js +1 -1
  305. package/menu/menu.js +5 -4
  306. package/menu/menu.min.js +1 -1
  307. package/menubar/menubar.cjs.js +18 -14
  308. package/menubar/menubar.cjs.min.js +1 -1
  309. package/menubar/menubar.esm.js +18 -14
  310. package/menubar/menubar.esm.min.js +1 -1
  311. package/menubar/menubar.js +18 -14
  312. package/menubar/menubar.min.js +1 -1
  313. package/multiselect/multiselect.cjs.js +412 -116
  314. package/multiselect/multiselect.cjs.min.js +1 -1
  315. package/multiselect/multiselect.esm.js +412 -116
  316. package/multiselect/multiselect.esm.min.js +1 -1
  317. package/multiselect/multiselect.js +412 -116
  318. package/multiselect/multiselect.min.js +1 -1
  319. package/multistatecheckbox/multistatecheckbox.cjs.js +2 -3
  320. package/multistatecheckbox/multistatecheckbox.cjs.min.js +1 -1
  321. package/multistatecheckbox/multistatecheckbox.esm.js +2 -3
  322. package/multistatecheckbox/multistatecheckbox.esm.min.js +1 -1
  323. package/multistatecheckbox/multistatecheckbox.js +2 -3
  324. package/multistatecheckbox/multistatecheckbox.min.js +1 -1
  325. package/package.json +1 -1
  326. package/paginator/paginator.cjs.js +251 -251
  327. package/paginator/paginator.cjs.min.js +1 -1
  328. package/paginator/paginator.esm.js +258 -258
  329. package/paginator/paginator.esm.min.js +1 -1
  330. package/paginator/paginator.js +251 -251
  331. package/paginator/paginator.min.js +1 -1
  332. package/panelmenu/panelmenu.cjs.js +8 -10
  333. package/panelmenu/panelmenu.cjs.min.js +1 -1
  334. package/panelmenu/panelmenu.d.ts +18 -0
  335. package/panelmenu/panelmenu.esm.js +8 -10
  336. package/panelmenu/panelmenu.esm.min.js +1 -1
  337. package/panelmenu/panelmenu.js +9 -12
  338. package/panelmenu/panelmenu.min.js +1 -1
  339. package/passthrough/tailwind/index.cjs.js +14 -3
  340. package/passthrough/tailwind/index.cjs.min.js +1 -1
  341. package/passthrough/tailwind/index.esm.js +14 -3
  342. package/passthrough/tailwind/index.esm.min.js +1 -1
  343. package/passthrough/tailwind/index.js +14 -3
  344. package/passthrough/tailwind/index.min.js +1 -1
  345. package/password/password.cjs.js +18 -6
  346. package/password/password.cjs.min.js +1 -1
  347. package/password/password.esm.js +18 -6
  348. package/password/password.esm.min.js +1 -1
  349. package/password/password.js +18 -6
  350. package/password/password.min.js +1 -1
  351. package/picklist/picklist.cjs.js +1 -1
  352. package/picklist/picklist.cjs.min.js +1 -1
  353. package/picklist/picklist.esm.js +1 -1
  354. package/picklist/picklist.esm.min.js +1 -1
  355. package/picklist/picklist.js +1 -1
  356. package/picklist/picklist.min.js +1 -1
  357. package/primereact.all.cjs.js +1734 -1194
  358. package/primereact.all.cjs.min.js +1 -1
  359. package/primereact.all.esm.js +1734 -1194
  360. package/primereact.all.esm.min.js +1 -1
  361. package/primereact.all.js +1734 -1194
  362. package/primereact.all.min.js +1 -1
  363. package/radiobutton/radiobutton.cjs.js +2 -3
  364. package/radiobutton/radiobutton.cjs.min.js +1 -1
  365. package/radiobutton/radiobutton.esm.js +2 -3
  366. package/radiobutton/radiobutton.esm.min.js +1 -1
  367. package/radiobutton/radiobutton.js +2 -3
  368. package/radiobutton/radiobutton.min.js +1 -1
  369. package/rating/rating.cjs.js +105 -7
  370. package/rating/rating.cjs.min.js +1 -1
  371. package/rating/rating.esm.js +105 -7
  372. package/rating/rating.esm.min.js +1 -1
  373. package/rating/rating.js +105 -7
  374. package/rating/rating.min.js +1 -1
  375. package/resources/themes/arya-blue/theme.css +328 -67
  376. package/resources/themes/arya-green/theme.css +328 -67
  377. package/resources/themes/arya-orange/theme.css +328 -67
  378. package/resources/themes/arya-purple/theme.css +26 -6
  379. package/resources/themes/bootstrap4-dark-blue/theme.css +328 -67
  380. package/resources/themes/bootstrap4-dark-purple/theme.css +26 -6
  381. package/resources/themes/bootstrap4-light-blue/theme.css +328 -67
  382. package/resources/themes/bootstrap4-light-purple/theme.css +26 -6
  383. package/resources/themes/fluent-light/theme.css +327 -66
  384. package/resources/themes/lara-dark-amber/theme.css +328 -67
  385. package/resources/themes/lara-dark-blue/theme.css +328 -67
  386. package/resources/themes/lara-dark-cyan/theme.css +328 -67
  387. package/resources/themes/lara-dark-green/theme.css +328 -67
  388. package/resources/themes/lara-dark-indigo/theme.css +328 -67
  389. package/resources/themes/lara-dark-pink/theme.css +328 -67
  390. package/resources/themes/lara-dark-purple/theme.css +26 -6
  391. package/resources/themes/lara-dark-teal/theme.css +328 -67
  392. package/resources/themes/lara-light-amber/theme.css +328 -67
  393. package/resources/themes/lara-light-blue/theme.css +328 -67
  394. package/resources/themes/lara-light-cyan/theme.css +328 -67
  395. package/resources/themes/lara-light-green/theme.css +328 -67
  396. package/resources/themes/lara-light-indigo/theme.css +328 -67
  397. package/resources/themes/lara-light-pink/theme.css +328 -67
  398. package/resources/themes/lara-light-purple/theme.css +26 -6
  399. package/resources/themes/lara-light-teal/theme.css +328 -67
  400. package/resources/themes/luna-amber/theme.css +328 -67
  401. package/resources/themes/luna-blue/theme.css +328 -67
  402. package/resources/themes/luna-green/theme.css +328 -67
  403. package/resources/themes/luna-pink/theme.css +328 -67
  404. package/resources/themes/md-dark-deeppurple/theme.css +158 -138
  405. package/resources/themes/md-dark-indigo/theme.css +454 -193
  406. package/resources/themes/md-light-deeppurple/theme.css +26 -6
  407. package/resources/themes/md-light-indigo/theme.css +328 -67
  408. package/resources/themes/mdc-dark-deeppurple/theme.css +158 -138
  409. package/resources/themes/mdc-dark-indigo/theme.css +454 -193
  410. package/resources/themes/mdc-light-deeppurple/theme.css +26 -6
  411. package/resources/themes/mdc-light-indigo/theme.css +328 -67
  412. package/resources/themes/mira/theme.css +328 -67
  413. package/resources/themes/nano/theme.css +328 -67
  414. package/resources/themes/nova/theme.css +328 -67
  415. package/resources/themes/nova-accent/theme.css +328 -67
  416. package/resources/themes/nova-alt/theme.css +328 -67
  417. package/resources/themes/rhea/theme.css +328 -67
  418. package/resources/themes/saga-blue/theme.css +328 -67
  419. package/resources/themes/saga-green/theme.css +328 -67
  420. package/resources/themes/saga-orange/theme.css +328 -67
  421. package/resources/themes/saga-purple/theme.css +26 -6
  422. package/resources/themes/soho-dark/theme.css +353 -92
  423. package/resources/themes/soho-light/theme.css +328 -67
  424. package/resources/themes/tailwind-light/theme.css +329 -71
  425. package/resources/themes/vela-blue/theme.css +328 -67
  426. package/resources/themes/vela-green/theme.css +328 -67
  427. package/resources/themes/vela-orange/theme.css +328 -67
  428. package/resources/themes/vela-purple/theme.css +26 -6
  429. package/resources/themes/viva-dark/theme.css +328 -67
  430. package/resources/themes/viva-light/theme.css +328 -67
  431. package/selectbutton/selectbutton.cjs.js +98 -53
  432. package/selectbutton/selectbutton.cjs.min.js +1 -1
  433. package/selectbutton/selectbutton.esm.js +98 -53
  434. package/selectbutton/selectbutton.esm.min.js +1 -1
  435. package/selectbutton/selectbutton.js +98 -53
  436. package/selectbutton/selectbutton.min.js +1 -1
  437. package/slidemenu/slidemenu.cjs.js +4 -3
  438. package/slidemenu/slidemenu.cjs.min.js +1 -1
  439. package/slidemenu/slidemenu.esm.js +4 -3
  440. package/slidemenu/slidemenu.esm.min.js +1 -1
  441. package/slidemenu/slidemenu.js +4 -3
  442. package/slidemenu/slidemenu.min.js +1 -1
  443. package/slider/slider.cjs.js +25 -4
  444. package/slider/slider.cjs.min.js +1 -1
  445. package/slider/slider.esm.js +25 -4
  446. package/slider/slider.esm.min.js +1 -1
  447. package/slider/slider.js +25 -4
  448. package/slider/slider.min.js +1 -1
  449. package/splitbutton/splitbutton.cjs.js +9 -12
  450. package/splitbutton/splitbutton.cjs.min.js +1 -1
  451. package/splitbutton/splitbutton.esm.js +9 -12
  452. package/splitbutton/splitbutton.esm.min.js +1 -1
  453. package/splitbutton/splitbutton.js +9 -12
  454. package/splitbutton/splitbutton.min.js +1 -1
  455. package/splitter/splitter.cjs.js +25 -29
  456. package/splitter/splitter.cjs.min.js +1 -1
  457. package/splitter/splitter.esm.js +25 -29
  458. package/splitter/splitter.esm.min.js +1 -1
  459. package/splitter/splitter.js +25 -29
  460. package/splitter/splitter.min.js +1 -1
  461. package/steps/steps.cjs.js +4 -3
  462. package/steps/steps.cjs.min.js +1 -1
  463. package/steps/steps.esm.js +4 -3
  464. package/steps/steps.esm.min.js +1 -1
  465. package/steps/steps.js +4 -3
  466. package/steps/steps.min.js +1 -1
  467. package/tabmenu/tabmenu.cjs.js +4 -3
  468. package/tabmenu/tabmenu.cjs.min.js +1 -1
  469. package/tabmenu/tabmenu.esm.js +4 -3
  470. package/tabmenu/tabmenu.esm.min.js +1 -1
  471. package/tabmenu/tabmenu.js +4 -3
  472. package/tabmenu/tabmenu.min.js +1 -1
  473. package/tabview/tabview.cjs.js +6 -5
  474. package/tabview/tabview.cjs.min.js +1 -1
  475. package/tabview/tabview.d.ts +39 -34
  476. package/tabview/tabview.esm.js +6 -5
  477. package/tabview/tabview.esm.min.js +1 -1
  478. package/tabview/tabview.js +6 -5
  479. package/tabview/tabview.min.js +1 -1
  480. package/tieredmenu/tieredmenu.cjs.js +6 -8
  481. package/tieredmenu/tieredmenu.cjs.min.js +1 -1
  482. package/tieredmenu/tieredmenu.esm.js +6 -8
  483. package/tieredmenu/tieredmenu.esm.min.js +1 -1
  484. package/tieredmenu/tieredmenu.js +6 -8
  485. package/tieredmenu/tieredmenu.min.js +1 -1
  486. package/togglebutton/togglebutton.cjs.js +17 -17
  487. package/togglebutton/togglebutton.cjs.min.js +1 -1
  488. package/togglebutton/togglebutton.esm.js +16 -16
  489. package/togglebutton/togglebutton.esm.min.js +1 -1
  490. package/togglebutton/togglebutton.js +17 -17
  491. package/togglebutton/togglebutton.min.js +1 -1
  492. package/tree/tree.cjs.js +32 -31
  493. package/tree/tree.cjs.min.js +1 -1
  494. package/tree/tree.d.ts +5 -0
  495. package/tree/tree.esm.js +32 -31
  496. package/tree/tree.esm.min.js +1 -1
  497. package/tree/tree.js +32 -31
  498. package/tree/tree.min.js +1 -1
  499. package/treeselect/treeselect.cjs.js +3 -4
  500. package/treeselect/treeselect.cjs.min.js +1 -1
  501. package/treeselect/treeselect.esm.js +3 -4
  502. package/treeselect/treeselect.esm.min.js +1 -1
  503. package/treeselect/treeselect.js +3 -4
  504. package/treeselect/treeselect.min.js +1 -1
  505. package/treetable/treetable.cjs.js +1 -1
  506. package/treetable/treetable.cjs.min.js +1 -1
  507. package/treetable/treetable.esm.js +1 -1
  508. package/treetable/treetable.esm.min.js +1 -1
  509. package/treetable/treetable.js +1 -1
  510. package/treetable/treetable.min.js +1 -1
  511. package/tristatecheckbox/tristatecheckbox.cjs.js +6 -6
  512. package/tristatecheckbox/tristatecheckbox.cjs.min.js +1 -1
  513. package/tristatecheckbox/tristatecheckbox.esm.js +6 -6
  514. package/tristatecheckbox/tristatecheckbox.esm.min.js +1 -1
  515. package/tristatecheckbox/tristatecheckbox.js +6 -6
  516. package/tristatecheckbox/tristatecheckbox.min.js +1 -1
  517. package/web-types.json +65 -1
@@ -181,10 +181,13 @@ var classes = {
181
181
  item: function item(_ref7) {
182
182
  var selected = _ref7.selected,
183
183
  disabled = _ref7.disabled,
184
- label = _ref7.label;
184
+ label = _ref7.label,
185
+ index = _ref7.index,
186
+ focusedOptionIndex = _ref7.focusedOptionIndex;
185
187
  return classNames('p-dropdown-item', {
186
188
  'p-highlight': selected,
187
189
  'p-disabled': disabled,
190
+ 'p-focus': index === focusedOptionIndex,
188
191
  'p-dropdown-item-empty': !label || label.length === 0
189
192
  });
190
193
  },
@@ -251,6 +254,8 @@ var DropdownBase = ComponentBase.extend({
251
254
  onShow: null,
252
255
  optionDisabled: null,
253
256
  optionGroupChildren: 'items',
257
+ selectOnFocus: false,
258
+ autoOptionFocus: false,
254
259
  optionGroupLabel: null,
255
260
  optionGroupTemplate: null,
256
261
  optionLabel: null,
@@ -289,7 +294,9 @@ var DropdownItem = /*#__PURE__*/React.memo(function (props) {
289
294
  selected = props.selected,
290
295
  disabled = props.disabled,
291
296
  option = props.option,
292
- label = props.label;
297
+ label = props.label,
298
+ index = props.index,
299
+ focusedOptionIndex = props.focusedOptionIndex;
293
300
  var getPTOptions = function getPTOptions(key) {
294
301
  return ptm(key, {
295
302
  context: {
@@ -298,7 +305,7 @@ var DropdownItem = /*#__PURE__*/React.memo(function (props) {
298
305
  }
299
306
  });
300
307
  };
301
- var _onClick = function onClick(event) {
308
+ var _onClick = function onClick(event, i) {
302
309
  if (props.onClick) {
303
310
  props.onClick({
304
311
  originalEvent: event,
@@ -313,7 +320,9 @@ var DropdownItem = /*#__PURE__*/React.memo(function (props) {
313
320
  className: classNames(option.className, cx('item', {
314
321
  selected: selected,
315
322
  disabled: disabled,
316
- label: label
323
+ label: label,
324
+ index: index,
325
+ focusedOptionIndex: focusedOptionIndex
317
326
  })),
318
327
  style: props.style,
319
328
  onClick: function onClick(e) {
@@ -322,6 +331,7 @@ var DropdownItem = /*#__PURE__*/React.memo(function (props) {
322
331
  'aria-label': label,
323
332
  'aria-selected': selected,
324
333
  'data-p-highlight': selected,
334
+ 'data-p-focused': focusedOptionIndex === index,
325
335
  'data-p-disabled': disabled
326
336
  }, getPTOptions('item'));
327
337
  return /*#__PURE__*/React.createElement("li", itemProps, content, /*#__PURE__*/React.createElement(Ripple, null));
@@ -393,6 +403,8 @@ var DropdownPanel = /*#__PURE__*/React.memo( /*#__PURE__*/React.forwardRef(funct
393
403
  var disabled = props.isOptionDisabled(option);
394
404
  return /*#__PURE__*/React.createElement(DropdownItem, {
395
405
  key: optionKey,
406
+ index: j,
407
+ focusedOptionIndex: props.focusedOptionIndex,
396
408
  label: optionLabel,
397
409
  option: option,
398
410
  style: style,
@@ -440,6 +452,8 @@ var DropdownPanel = /*#__PURE__*/React.memo( /*#__PURE__*/React.forwardRef(funct
440
452
  return /*#__PURE__*/React.createElement(DropdownItem, {
441
453
  key: optionKey,
442
454
  label: optionLabel,
455
+ index: index,
456
+ focusedOptionIndex: props.focusedOptionIndex,
443
457
  option: option,
444
458
  style: style,
445
459
  template: props.itemTemplate,
@@ -607,7 +621,7 @@ var DropdownPanel = /*#__PURE__*/React.memo( /*#__PURE__*/React.forwardRef(funct
607
621
  nodeRef: ref
608
622
  }, transitionProps), /*#__PURE__*/React.createElement("div", _extends({
609
623
  ref: ref
610
- }, panelProps), filter, content, footer));
624
+ }, panelProps), props.firstFocusableElement, filter, content, footer, props.lastFocusableElement));
611
625
  };
612
626
  var element = createElement();
613
627
  return /*#__PURE__*/React.createElement(Portal, {
@@ -632,20 +646,30 @@ var Dropdown = /*#__PURE__*/React.memo( /*#__PURE__*/React.forwardRef(function (
632
646
  setFilterState = _React$useState2[1];
633
647
  var _React$useState3 = React.useState(false),
634
648
  _React$useState4 = _slicedToArray(_React$useState3, 2),
635
- focusedState = _React$useState4[0],
636
- setFocusedState = _React$useState4[1];
649
+ clicked = _React$useState4[0],
650
+ setClicked = _React$useState4[1];
637
651
  var _React$useState5 = React.useState(false),
638
652
  _React$useState6 = _slicedToArray(_React$useState5, 2),
639
- overlayVisibleState = _React$useState6[0],
640
- setOverlayVisibleState = _React$useState6[1];
653
+ focusedState = _React$useState6[0],
654
+ setFocusedState = _React$useState6[1];
655
+ var _React$useState7 = React.useState(-1),
656
+ _React$useState8 = _slicedToArray(_React$useState7, 2),
657
+ focusedOptionIndex = _React$useState8[0],
658
+ setFocusedOptionIndex = _React$useState8[1];
659
+ var _React$useState9 = React.useState(false),
660
+ _React$useState10 = _slicedToArray(_React$useState9, 2),
661
+ overlayVisibleState = _React$useState10[0],
662
+ setOverlayVisibleState = _React$useState10[1];
641
663
  var elementRef = React.useRef(null);
642
664
  var overlayRef = React.useRef(null);
665
+ var firstHiddenFocusableElementOnOverlay = React.useRef(null);
666
+ var lastHiddenFocusableElementOnOverlay = React.useRef(null);
643
667
  var inputRef = React.useRef(props.inputRef);
644
668
  var focusInputRef = React.useRef(props.focusInputRef);
645
669
  var virtualScrollerRef = React.useRef(null);
646
670
  var searchTimeout = React.useRef(null);
647
671
  var searchValue = React.useRef(null);
648
- var currentSearchChar = React.useRef(null);
672
+ React.useRef(null);
649
673
  var isLazy = props.virtualScrollerOptions && props.virtualScrollerOptions.lazy;
650
674
  var hasFilter = ObjectUtils.isNotEmpty(filterState);
651
675
  var appendTo = props.appendTo || context && context.appendTo || PrimeReact.appendTo;
@@ -709,6 +733,14 @@ var Dropdown = /*#__PURE__*/React.memo( /*#__PURE__*/React.forwardRef(function (
709
733
  return props.options;
710
734
  }
711
735
  };
736
+ var onFirstHiddenFocus = function onFirstHiddenFocus(event) {
737
+ var focusableEl = event.relatedTarget === focusInputRef.current ? DomHandler.getFirstFocusableElement(overlayRef.current, ':not([data-p-hidden-focusable="true"])') : focusInputRef.current;
738
+ DomHandler.focus(focusableEl);
739
+ };
740
+ var onLastHiddenFocus = function onLastHiddenFocus(event) {
741
+ var focusableEl = event.relatedTarget === focusInputRef.current ? DomHandler.getLastFocusableElement(overlayRef.current, ':not([data-p-hidden-focusable="true"])') : focusInputRef.current;
742
+ DomHandler.focus(focusableEl);
743
+ };
712
744
  var isClearClicked = function isClearClicked(event) {
713
745
  return DomHandler.isAttributeEquals(event.target, 'data-pc-section', 'clearicon') || DomHandler.isAttributeEquals(event.target.parentElement || event.target, 'data-pc-section', 'filterclearicon');
714
746
  };
@@ -728,6 +760,7 @@ var Dropdown = /*#__PURE__*/React.memo( /*#__PURE__*/React.forwardRef(function (
728
760
  DomHandler.focus(focusInputRef.current);
729
761
  overlayVisibleState ? hide() : show();
730
762
  }
763
+ setClicked(true);
731
764
  };
732
765
  var onInputFocus = function onInputFocus(event) {
733
766
  if (props.showOnFocus && !overlayVisibleState) {
@@ -759,6 +792,15 @@ var Dropdown = /*#__PURE__*/React.memo( /*#__PURE__*/React.forwardRef(function (
759
792
  }, 200);
760
793
  }
761
794
  };
795
+ var onOptionSelect = function onOptionSelect(event, option) {
796
+ var isHide = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : true;
797
+ var value = getOptionValue(option);
798
+ selectItem({
799
+ originalEvent: event,
800
+ option: value
801
+ });
802
+ isHide && hide();
803
+ };
762
804
  var onPanelClick = function onPanelClick(event) {
763
805
  OverlayService.emit('overlay-click', {
764
806
  originalEvent: event,
@@ -766,189 +808,285 @@ var Dropdown = /*#__PURE__*/React.memo( /*#__PURE__*/React.forwardRef(function (
766
808
  });
767
809
  };
768
810
  var onInputKeyDown = function onInputKeyDown(event) {
811
+ if (props.disabled || DomHandler.isAndroid()) {
812
+ event.preventDefault();
813
+ return;
814
+ }
815
+ var metaKey = event.metaKey || event.ctrlKey;
769
816
  switch (event.code) {
770
817
  case 'ArrowDown':
771
- onDownKey(event);
818
+ onArrowDownKey(event);
772
819
  break;
773
820
  case 'ArrowUp':
774
- onUpKey(event);
821
+ onArrowUpKey(event);
822
+ break;
823
+ case 'ArrowLeft':
824
+ case 'ArrowRight':
825
+ onArrowLeftKey(event, props.editable);
826
+ break;
827
+ case 'Home':
828
+ onHomeKey(event);
829
+ break;
830
+ case 'End':
831
+ onEndKey(event);
832
+ break;
833
+ case 'PageDown':
834
+ onPageDownKey(event);
835
+ break;
836
+ case 'PageUp':
837
+ onPageUpKey(event);
775
838
  break;
776
839
  case 'Space':
840
+ onSpaceKey(event, props.editable);
841
+ break;
842
+ case 'NumpadEnter':
777
843
  case 'Enter':
778
- overlayVisibleState ? hide() : show();
779
- event.preventDefault();
844
+ onEnterKey(event);
780
845
  break;
781
846
  case 'Escape':
847
+ onEscapeKey(event);
848
+ break;
782
849
  case 'Tab':
783
- hide();
850
+ onTabKey(event);
851
+ break;
852
+ case 'Backspace':
853
+ onBackspaceKey(event, props.editable);
854
+ break;
855
+ case 'ShiftLeft':
856
+ case 'ShiftRight':
857
+ //NOOP
784
858
  break;
785
859
  default:
786
- search(event);
860
+ if (!metaKey && ObjectUtils.isPrintableCharacter(event.key)) {
861
+ !overlayVisibleState && show();
862
+ !props.editable && searchOptions(event, event.key);
863
+ }
787
864
  break;
788
865
  }
866
+ setClicked(false);
789
867
  };
790
868
  var onFilterInputKeyDown = function onFilterInputKeyDown(event) {
791
869
  switch (event.code) {
792
870
  case 'ArrowDown':
793
- onDownKey(event);
871
+ onArrowDownKey(event);
794
872
  break;
795
873
  case 'ArrowUp':
796
- onUpKey(event);
874
+ onArrowUpKey(event);
875
+ break;
876
+ case 'ArrowLeft':
877
+ case 'ArrowRight':
878
+ onArrowLeftKey(event, true);
797
879
  break;
798
880
  case 'Escape':
799
881
  case 'Enter':
800
- hide();
882
+ onEnterKey(event);
801
883
  event.preventDefault();
802
884
  break;
803
885
  }
804
886
  };
805
- var onUpKey = function onUpKey(event) {
806
- if (visibleOptions) {
807
- var prevOption = findPrevOption(getSelectedOptionIndex());
808
- if (prevOption) {
809
- selectItem({
810
- originalEvent: event,
811
- option: prevOption
812
- });
813
- }
814
- }
815
- event.preventDefault();
887
+ var hasFocusableElements = function hasFocusableElements() {
888
+ return DomHandler.getFocusableElements(overlayRef.current, ':not([data-p-hidden-focusable="true"])').length > 0;
816
889
  };
817
- var onDownKey = function onDownKey(event) {
818
- if (visibleOptions) {
819
- if (!overlayVisibleState && event.altKey) {
820
- show();
821
- } else {
822
- var nextOption = findNextOption(getSelectedOptionIndex());
823
- if (nextOption) {
824
- selectItem({
825
- originalEvent: event,
826
- option: nextOption
827
- });
828
- }
829
- }
830
- }
831
- event.preventDefault();
890
+ var isOptionMatched = function isOptionMatched(option) {
891
+ var _getOptionLabel;
892
+ return isValidOption(option) && ((_getOptionLabel = getOptionLabel(option)) === null || _getOptionLabel === void 0 ? void 0 : _getOptionLabel.toLocaleLowerCase(props.filterLocale).startsWith(searchValue.current.toLocaleLowerCase(props.filterLocale)));
832
893
  };
833
- var findNextOption = function findNextOption(index) {
834
- if (props.optionGroupLabel) {
835
- var groupIndex = index === -1 ? 0 : index.group;
836
- var optionIndex = index === -1 ? -1 : index.option;
837
- var option = findNextOptionInList(getOptionGroupChildren(visibleOptions[groupIndex]), optionIndex);
838
- if (option) return option;else if (groupIndex + 1 !== visibleOptions.length) return findNextOption({
839
- group: groupIndex + 1,
840
- option: -1
841
- });else return null;
842
- }
843
- return findNextOptionInList(visibleOptions, index);
894
+ var isValidOption = function isValidOption(option) {
895
+ return ObjectUtils.isNotEmpty(option) && !(isOptionDisabled(option) || isOptionGroup(option));
844
896
  };
845
- var findNextOptionInList = function findNextOptionInList(list, index) {
846
- var i = index + 1;
847
- if (i === list.length) {
848
- return null;
849
- }
850
- var option = list[i];
851
- return isOptionDisabled(option) ? findNextOptionInList(i) : option;
897
+ var hasSelectedOption = function hasSelectedOption() {
898
+ return ObjectUtils.isNotEmpty(props.value);
852
899
  };
853
- var findPrevOption = function findPrevOption(index) {
854
- if (index === -1) {
855
- return null;
856
- }
857
- if (props.optionGroupLabel) {
858
- var groupIndex = index.group;
859
- var optionIndex = index.option;
860
- var option = findPrevOptionInList(getOptionGroupChildren(visibleOptions[groupIndex]), optionIndex);
861
- if (option) return option;else if (groupIndex > 0) return findPrevOption({
862
- group: groupIndex - 1,
863
- option: getOptionGroupChildren(visibleOptions[groupIndex - 1]).length
864
- });else return null;
865
- }
866
- return findPrevOptionInList(visibleOptions, index);
900
+ var isValidSelectedOption = function isValidSelectedOption(option) {
901
+ return isValidOption(option) && isSelected(option);
867
902
  };
868
- var findPrevOptionInList = function findPrevOptionInList(list, index) {
869
- var i = index - 1;
870
- if (i < 0) {
871
- return null;
872
- }
873
- var option = list[i];
874
- return isOptionDisabled(option) ? findPrevOption(i) : option;
903
+ var findSelectedOptionIndex = function findSelectedOptionIndex() {
904
+ return hasSelectedOption ? visibleOptions.findIndex(function (option) {
905
+ return isValidSelectedOption(option);
906
+ }) : -1;
907
+ };
908
+ var findFirstFocusedOptionIndex = function findFirstFocusedOptionIndex() {
909
+ var selectedIndex = findSelectedOptionIndex();
910
+ return selectedIndex < 0 ? findFirstOptionIndex() : selectedIndex;
875
911
  };
876
- var search = function search(event) {
912
+ var searchOptions = function searchOptions(event, _char) {
913
+ searchValue.current = (searchValue.current || '') + _char;
914
+ var optionIndex = -1;
915
+ var matched = false;
916
+ if (ObjectUtils.isNotEmpty(searchValue.current)) {
917
+ if (focusedOptionIndex !== -1) {
918
+ optionIndex = visibleOptions.slice(focusedOptionIndex).findIndex(function (option) {
919
+ return isOptionMatched(option);
920
+ });
921
+ optionIndex = optionIndex === -1 ? visibleOptions.slice(0, focusedOptionIndex).findIndex(function (option) {
922
+ return isOptionMatched(option);
923
+ }) : optionIndex + focusedOptionIndex;
924
+ } else {
925
+ optionIndex = visibleOptions.findIndex(function (option) {
926
+ return isOptionMatched(option);
927
+ });
928
+ }
929
+ if (optionIndex !== -1) {
930
+ matched = true;
931
+ }
932
+ if (optionIndex === -1 && focusedOptionIndex === -1) {
933
+ optionIndex = findFirstFocusedOptionIndex();
934
+ }
935
+ if (optionIndex !== -1) {
936
+ changeFocusedOptionIndex(event, optionIndex);
937
+ }
938
+ }
877
939
  if (searchTimeout.current) {
878
940
  clearTimeout(searchTimeout.current);
879
941
  }
880
- if (event.ctrlKey || event.metaKey || event.altKey) {
881
- // ignore meta combinations like CTRL+F for browser search
882
- return;
942
+ searchTimeout.current = setTimeout(function () {
943
+ searchValue.current = '';
944
+ searchTimeout.current = null;
945
+ }, 500);
946
+ return matched;
947
+ };
948
+ var findLastFocusedOptionIndex = function findLastFocusedOptionIndex() {
949
+ var selectedIndex = findSelectedOptionIndex();
950
+ return selectedIndex < 0 ? findLastOptionIndex() : selectedIndex;
951
+ };
952
+ var findFirstOptionIndex = function findFirstOptionIndex() {
953
+ return visibleOptions.findIndex(function (option) {
954
+ return isValidOption(option);
955
+ });
956
+ };
957
+ var findLastOptionIndex = function findLastOptionIndex() {
958
+ return ObjectUtils.findLastIndex(visibleOptions, function (option) {
959
+ return isValidOption(option);
960
+ });
961
+ };
962
+ var findNextOptionIndex = function findNextOptionIndex(index) {
963
+ var matchedOptionIndex = index < visibleOptions.length - 1 ? visibleOptions.slice(index + 1).findIndex(function (option) {
964
+ return isValidOption(option);
965
+ }) : -1;
966
+ return matchedOptionIndex > -1 ? matchedOptionIndex + index + 1 : index;
967
+ };
968
+ var findPrevOptionIndex = function findPrevOptionIndex(index) {
969
+ var matchedOptionIndex = index > 0 ? ObjectUtils.findLastIndex(visibleOptions.slice(0, index), function (option) {
970
+ return isValidOption(option);
971
+ }) : -1;
972
+ return matchedOptionIndex > -1 ? matchedOptionIndex : index;
973
+ };
974
+ var changeFocusedOptionIndex = function changeFocusedOptionIndex(event, index) {
975
+ if (focusedOptionIndex !== index) {
976
+ setFocusedOptionIndex(index);
977
+ if (props.selectOnFocus) {
978
+ onOptionSelect(event, visibleOptions[index], false);
979
+ }
883
980
  }
884
- var _char = event.key;
885
- if (_char.length !== 1) {
886
- // only single character keys matter for searching
887
- return;
981
+ };
982
+ var onArrowDownKey = function onArrowDownKey(event) {
983
+ if (!overlayVisibleState) {
984
+ show();
985
+ props.editable && changeFocusedOptionIndex(event, findSelectedOptionIndex());
986
+ } else {
987
+ var optionIndex = focusedOptionIndex !== -1 ? findNextOptionIndex(focusedOptionIndex) : clicked ? findFirstOptionIndex() : findFirstFocusedOptionIndex();
988
+ changeFocusedOptionIndex(event, optionIndex);
888
989
  }
889
- if (currentSearchChar.current === _char) searchValue.current = _char;else searchValue.current = searchValue.current ? searchValue.current + _char : _char;
890
- currentSearchChar.current = _char;
891
- if (searchValue.current) {
892
- var searchIndex = getSelectedOptionIndex();
893
- var newOption = props.optionGroupLabel ? searchOptionInGroup(searchIndex) : searchOption(searchIndex + 1);
894
- if (newOption) {
895
- selectItem({
896
- originalEvent: event,
897
- option: newOption
898
- });
990
+ event.preventDefault();
991
+ };
992
+ var onArrowUpKey = function onArrowUpKey(event) {
993
+ var pressedInInputText = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;
994
+ if (event.altKey && !pressedInInputText) {
995
+ if (focusedOptionIndex !== -1) {
996
+ onOptionSelect(event, visibleOptions[focusedOptionIndex]);
899
997
  }
998
+ state.overlayVisible && hide();
999
+ event.preventDefault();
1000
+ } else {
1001
+ var optionIndex = focusedOptionIndex !== -1 ? findPrevOptionIndex(focusedOptionIndex) : clicked ? findLastOptionIndex() : findLastFocusedOptionIndex();
1002
+ changeFocusedOptionIndex(event, optionIndex);
1003
+ !overlayVisibleState && show();
1004
+ event.preventDefault();
900
1005
  }
901
- searchTimeout.current = setTimeout(function () {
902
- searchValue.current = null;
903
- }, 250);
904
1006
  };
905
- var searchOption = function searchOption(index) {
906
- if (searchValue.current) {
907
- return searchOptionInRange(index, visibleOptions.length) || searchOptionInRange(0, index);
1007
+ var onArrowLeftKey = function onArrowLeftKey(event) {
1008
+ var pressedInInputText = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;
1009
+ pressedInInputText && setFocusedOptionIndex(-1);
1010
+ };
1011
+ var onHomeKey = function onHomeKey(event) {
1012
+ var pressedInInputText = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;
1013
+ if (pressedInInputText) {
1014
+ event.currentTarget.setSelectionRange(0, 0);
1015
+ setFocusedOptionIndex(-1);
1016
+ } else {
1017
+ changeFocusedOptionIndex(event, findFirstOptionIndex());
1018
+ !overlayVisibleState && show();
908
1019
  }
909
- return null;
1020
+ event.preventDefault();
910
1021
  };
911
- var searchOptionInRange = function searchOptionInRange(start, end) {
912
- for (var i = start; i < end; i++) {
913
- var opt = visibleOptions[i];
914
- if (matchesSearchValue(opt)) {
915
- return opt;
916
- }
1022
+ var onEndKey = function onEndKey(event) {
1023
+ var pressedInInputText = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;
1024
+ if (pressedInInputText) {
1025
+ var target = event.currentTarget;
1026
+ var len = target.value.length;
1027
+ target.setSelectionRange(len, len);
1028
+ setFocusedOptionIndex(-1);
1029
+ } else {
1030
+ changeFocusedOptionIndex(event, findLastOptionIndex());
1031
+ !overlayVisibleState && show();
917
1032
  }
918
- return null;
1033
+ event.preventDefault();
919
1034
  };
920
- var searchOptionInGroup = function searchOptionInGroup(index) {
921
- var searchIndex = index === -1 ? {
922
- group: 0,
923
- option: -1
924
- } : index;
925
- for (var i = searchIndex.group; i < visibleOptions.length; i++) {
926
- var groupOptions = getOptionGroupChildren(visibleOptions[i]);
927
- for (var j = searchIndex.group === i ? searchIndex.option + 1 : 0; j < groupOptions.length; j++) {
928
- if (matchesSearchValue(groupOptions[j])) {
929
- return groupOptions[j];
930
- }
1035
+ var onPageUpKey = function onPageUpKey(event) {
1036
+ event.preventDefault();
1037
+ };
1038
+ var onPageDownKey = function onPageDownKey(event) {
1039
+ event.preventDefault();
1040
+ };
1041
+ var onSpaceKey = function onSpaceKey(event) {
1042
+ var pressedInInputText = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;
1043
+ !pressedInInputText && onEnterKey(event);
1044
+ };
1045
+ var onEnterKey = function onEnterKey(event) {
1046
+ if (!overlayVisibleState) {
1047
+ setFocusedOptionIndex(-1);
1048
+ onArrowDownKey(event);
1049
+ } else {
1050
+ if (focusedOptionIndex !== -1) {
1051
+ onOptionSelect(event, visibleOptions[focusedOptionIndex]);
931
1052
  }
1053
+ hide();
932
1054
  }
933
- for (var _i = 0; _i <= searchIndex.group; _i++) {
934
- var _groupOptions = getOptionGroupChildren(visibleOptions[_i]);
935
- for (var _j = 0; _j < (searchIndex.group === _i ? searchIndex.option : _groupOptions.length); _j++) {
936
- if (matchesSearchValue(_groupOptions[_j])) {
937
- return _groupOptions[_j];
1055
+ event.preventDefault();
1056
+ };
1057
+ var onEscapeKey = function onEscapeKey(event) {
1058
+ overlayVisibleState && hide();
1059
+ event.preventDefault();
1060
+ };
1061
+ var onTabKey = function onTabKey(event) {
1062
+ var pressedInInputText = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;
1063
+ if (!pressedInInputText) {
1064
+ if (overlayVisibleState && !hasFocusableElements()) {
1065
+ DomHandler.focus(firstHiddenFocusableElementOnOverlay.current);
1066
+ event.preventDefault();
1067
+ } else {
1068
+ if (focusedOptionIndex !== -1) {
1069
+ onOptionSelect(event, visibleOptions[focusedOptionIndex]);
938
1070
  }
1071
+ overlayVisibleState && hide();
939
1072
  }
940
1073
  }
941
- return null;
942
1074
  };
943
- var matchesSearchValue = function matchesSearchValue(option) {
944
- var label = getOptionLabel(option);
945
- if (!label) {
946
- return false;
1075
+ var onBackspaceKey = function onBackspaceKey(event) {
1076
+ var pressedInInputText = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;
1077
+ if (pressedInInputText) {
1078
+ !overlayVisibleState && show();
947
1079
  }
948
- label = label.toLocaleLowerCase(props.filterLocale);
949
- return label.startsWith(searchValue.current.toLocaleLowerCase(props.filterLocale));
950
1080
  };
951
1081
  var onEditableInputChange = function onEditableInputChange(event) {
1082
+ !overlayVisibleState && show();
1083
+ var searchIndex = null;
1084
+ if (event.target.value) {
1085
+ searchIndex = visibleOptions.findIndex(function (item) {
1086
+ return item.name.toLocaleLowerCase().startsWith(event.target.value.toLocaleLowerCase());
1087
+ });
1088
+ }
1089
+ setFocusedOptionIndex(searchIndex);
952
1090
  if (props.onChange) {
953
1091
  props.onChange({
954
1092
  originalEvent: event.originalEvent,
@@ -1078,10 +1216,17 @@ var Dropdown = /*#__PURE__*/React.memo( /*#__PURE__*/React.forwardRef(function (
1078
1216
  return ObjectUtils.equals(props.value, getOptionValue(option), equalityKey());
1079
1217
  };
1080
1218
  var show = function show() {
1219
+ setFocusedOptionIndex(focusedOptionIndex !== -1 ? focusedOptionIndex : props.autoOptionFocus ? findFirstFocusedOptionIndex() : props.editable ? -1 : findSelectedOptionIndex());
1081
1220
  setOverlayVisibleState(true);
1082
1221
  };
1083
1222
  var hide = function hide() {
1084
1223
  setOverlayVisibleState(false);
1224
+ setClicked(false);
1225
+ };
1226
+ var onFocus = function onFocus() {
1227
+ if (props.editable) {
1228
+ DomHandler.focus(inputRef.current);
1229
+ }
1085
1230
  };
1086
1231
  var onOverlayEnter = function onOverlayEnter(callback) {
1087
1232
  ZIndexUtils.set('overlay', overlayRef.current, context && context.autoZIndex || PrimeReact.autoZIndex, context && context.zIndex['overlay'] || PrimeReact.zIndex['overlay']);
@@ -1134,6 +1279,9 @@ var Dropdown = /*#__PURE__*/React.memo( /*#__PURE__*/React.forwardRef(function (
1134
1279
  var getOptionRenderKey = function getOptionRenderKey(option) {
1135
1280
  return props.dataKey ? ObjectUtils.resolveFieldData(option, props.dataKey) : getOptionLabel(option);
1136
1281
  };
1282
+ var isOptionGroup = function isOptionGroup(option) {
1283
+ return props.optionGroupLabel && option.optionGroup && option.group;
1284
+ };
1137
1285
  var isOptionDisabled = function isOptionDisabled(option) {
1138
1286
  if (props.optionDisabled) {
1139
1287
  return ObjectUtils.isFunction(props.optionDisabled) ? props.optionDisabled(option) : ObjectUtils.resolveFieldData(option, props.optionDisabled);
@@ -1262,7 +1410,7 @@ var Dropdown = /*#__PURE__*/React.memo( /*#__PURE__*/React.forwardRef(function (
1262
1410
  onBlur: onInputBlur,
1263
1411
  onKeyDown: onInputKeyDown,
1264
1412
  disabled: props.disabled,
1265
- tabIndex: props.tabIndex || 0
1413
+ tabIndex: !props.disabled ? props.tabIndex || 0 : -1
1266
1414
  }, ariaProps), ptm('input'));
1267
1415
  return /*#__PURE__*/React.createElement("div", hiddenSelectedMessageProps, /*#__PURE__*/React.createElement("input", inputProps));
1268
1416
  };
@@ -1282,8 +1430,9 @@ var Dropdown = /*#__PURE__*/React.memo( /*#__PURE__*/React.forwardRef(function (
1282
1430
  maxLength: props.maxLength,
1283
1431
  onInput: onEditableInputChange,
1284
1432
  onFocus: onEditableInputFocus,
1433
+ onKeyDown: onInputKeyDown,
1285
1434
  onBlur: onInputBlur,
1286
- tabIndex: props.tabIndex || 0,
1435
+ tabIndex: !props.disabled ? props.tabIndex || 0 : -1,
1287
1436
  'aria-haspopup': 'listbox'
1288
1437
  }, ariaProps), ptm('input'));
1289
1438
  return /*#__PURE__*/React.createElement("input", inputProps);
@@ -1375,9 +1524,30 @@ var Dropdown = /*#__PURE__*/React.memo( /*#__PURE__*/React.forwardRef(function (
1375
1524
  },
1376
1525
  onMouseDown: props.onMouseDown,
1377
1526
  onContextMenu: props.onContextMenu,
1527
+ onFocus: onFocus,
1378
1528
  'data-p-disabled': props.disabled,
1379
1529
  'data-p-focus': focusedState
1380
1530
  }, otherProps, ptm('root'));
1531
+ var firstHiddenFocusableElementProps = mergeProps({
1532
+ ref: firstHiddenFocusableElementOnOverlay,
1533
+ role: 'presentation',
1534
+ 'aria-hidden': 'true',
1535
+ className: 'p-hidden-accessible p-hidden-focusable',
1536
+ tabIndex: '0',
1537
+ onFocus: onFirstHiddenFocus,
1538
+ 'data-p-hidden-accessible': true,
1539
+ 'data-p-hidden-focusable': true
1540
+ }, ptm('hiddenFirstFocusableEl'));
1541
+ var lastHiddenFocusableElementProps = mergeProps({
1542
+ ref: lastHiddenFocusableElementOnOverlay,
1543
+ role: 'presentation',
1544
+ 'aria-hidden': 'true',
1545
+ className: 'p-hidden-accessible p-hidden-focusable',
1546
+ tabIndex: '0',
1547
+ onFocus: onLastHiddenFocus,
1548
+ 'data-p-hidden-accessible': true,
1549
+ 'data-p-hidden-focusable': true
1550
+ }, ptm('hiddenLastFocusableEl'));
1381
1551
  return /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement("div", rootProps, keyboardHelper, hiddenSelect, labelElement, clearIcon, dropdownIcon, /*#__PURE__*/React.createElement(DropdownPanel, _extends({
1382
1552
  hostName: "Dropdown",
1383
1553
  ref: overlayRef,
@@ -1385,36 +1555,39 @@ var Dropdown = /*#__PURE__*/React.memo( /*#__PURE__*/React.forwardRef(function (
1385
1555
  virtualScrollerRef: virtualScrollerRef
1386
1556
  }, props, {
1387
1557
  appendTo: appendTo,
1388
- onClick: onPanelClick,
1389
- onOptionClick: onOptionClick,
1558
+ cx: cx,
1390
1559
  filterValue: filterState,
1391
- hasFilter: hasFilter,
1392
- onFilterClearIconClick: onFilterClearIconClick,
1393
- resetFilter: resetFilter,
1394
- onFilterInputKeyDown: onFilterInputKeyDown,
1395
- onFilterInputChange: onFilterInputChange,
1396
- getOptionLabel: getOptionLabel,
1397
- getOptionRenderKey: getOptionRenderKey,
1398
- isOptionDisabled: isOptionDisabled,
1560
+ focusedOptionIndex: focusedOptionIndex,
1399
1561
  getOptionGroupChildren: getOptionGroupChildren,
1400
1562
  getOptionGroupLabel: getOptionGroupLabel,
1401
1563
  getOptionGroupRenderKey: getOptionGroupRenderKey,
1402
- isSelected: isSelected,
1564
+ getOptionLabel: getOptionLabel,
1565
+ getOptionRenderKey: getOptionRenderKey,
1403
1566
  getSelectedOptionIndex: getSelectedOptionIndex,
1567
+ hasFilter: hasFilter,
1404
1568
  "in": overlayVisibleState,
1569
+ isOptionDisabled: isOptionDisabled,
1570
+ isSelected: isSelected,
1571
+ onClick: onPanelClick,
1405
1572
  onEnter: onOverlayEnter,
1406
1573
  onEntered: onOverlayEntered,
1407
1574
  onExit: onOverlayExit,
1408
1575
  onExited: onOverlayExited,
1576
+ onFilterClearIconClick: onFilterClearIconClick,
1577
+ onFilterInputChange: onFilterInputChange,
1578
+ onFilterInputKeyDown: onFilterInputKeyDown,
1579
+ onOptionClick: onOptionClick,
1409
1580
  ptm: ptm,
1410
- cx: cx,
1581
+ resetFilter: resetFilter,
1582
+ setFocusedOptionIndex: setFocusedOptionIndex,
1583
+ firstFocusableElement: /*#__PURE__*/React.createElement("span", firstHiddenFocusableElementProps),
1584
+ lastFocusableElement: /*#__PURE__*/React.createElement("span", lastHiddenFocusableElementProps),
1411
1585
  sx: sx
1412
1586
  }))), hasTooltip && /*#__PURE__*/React.createElement(Tooltip, _extends({
1413
1587
  target: elementRef,
1414
- content: props.tooltip
1415
- }, props.tooltipOptions, {
1588
+ content: props.tooltip,
1416
1589
  pt: ptm('tooltip')
1417
- })));
1590
+ }, props.tooltipOptions)));
1418
1591
  }));
1419
1592
  Dropdown.displayName = 'Dropdown';
1420
1593