primevue 3.15.0 → 3.16.2

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 (387) hide show
  1. package/autocomplete/AutoComplete.d.ts +182 -38
  2. package/autocomplete/AutoComplete.vue +636 -342
  3. package/autocomplete/autocomplete.cjs.js +745 -416
  4. package/autocomplete/autocomplete.cjs.min.js +1 -1
  5. package/autocomplete/autocomplete.esm.js +747 -418
  6. package/autocomplete/autocomplete.esm.min.js +1 -1
  7. package/autocomplete/autocomplete.js +745 -416
  8. package/autocomplete/autocomplete.min.js +1 -1
  9. package/button/Button.vue +4 -1
  10. package/button/button.cjs.js +5 -1
  11. package/button/button.cjs.min.js +1 -1
  12. package/button/button.esm.js +5 -1
  13. package/button/button.esm.min.js +1 -1
  14. package/button/button.js +5 -1
  15. package/button/button.min.js +1 -1
  16. package/calendar/Calendar.d.ts +51 -12
  17. package/calendar/Calendar.vue +259 -114
  18. package/calendar/calendar.cjs.js +414 -220
  19. package/calendar/calendar.cjs.min.js +1 -1
  20. package/calendar/calendar.esm.js +415 -221
  21. package/calendar/calendar.esm.min.js +1 -1
  22. package/calendar/calendar.js +414 -220
  23. package/calendar/calendar.min.js +1 -1
  24. package/carousel/Carousel.vue +25 -0
  25. package/carousel/carousel.cjs.js +25 -0
  26. package/carousel/carousel.cjs.min.js +1 -1
  27. package/carousel/carousel.esm.js +25 -0
  28. package/carousel/carousel.esm.min.js +1 -1
  29. package/carousel/carousel.js +25 -0
  30. package/carousel/carousel.min.js +1 -1
  31. package/cascadeselect/CascadeSelect.d.ts +97 -17
  32. package/cascadeselect/CascadeSelect.vue +560 -135
  33. package/cascadeselect/CascadeSelectSub.vue +48 -129
  34. package/cascadeselect/cascadeselect.cjs.js +670 -306
  35. package/cascadeselect/cascadeselect.cjs.min.js +1 -1
  36. package/cascadeselect/cascadeselect.esm.js +672 -308
  37. package/cascadeselect/cascadeselect.esm.min.js +1 -1
  38. package/cascadeselect/cascadeselect.js +670 -306
  39. package/cascadeselect/cascadeselect.min.js +1 -1
  40. package/checkbox/Checkbox.d.ts +40 -4
  41. package/checkbox/Checkbox.vue +50 -13
  42. package/checkbox/checkbox.cjs.js +64 -23
  43. package/checkbox/checkbox.cjs.min.js +1 -1
  44. package/checkbox/checkbox.esm.js +65 -24
  45. package/checkbox/checkbox.esm.min.js +1 -1
  46. package/checkbox/checkbox.js +64 -23
  47. package/checkbox/checkbox.min.js +1 -1
  48. package/chips/Chips.d.ts +36 -12
  49. package/chips/Chips.vue +116 -22
  50. package/chips/chips.cjs.js +149 -37
  51. package/chips/chips.cjs.min.js +1 -1
  52. package/chips/chips.esm.js +150 -38
  53. package/chips/chips.esm.min.js +1 -1
  54. package/chips/chips.js +150 -39
  55. package/chips/chips.min.js +1 -1
  56. package/colorpicker/ColorPicker.d.ts +3 -6
  57. package/colorpicker/ColorPicker.vue +1 -5
  58. package/colorpicker/colorpicker.cjs.js +2 -7
  59. package/colorpicker/colorpicker.cjs.min.js +1 -1
  60. package/colorpicker/colorpicker.esm.js +2 -7
  61. package/colorpicker/colorpicker.esm.min.js +1 -1
  62. package/colorpicker/colorpicker.js +2 -7
  63. package/colorpicker/colorpicker.min.js +1 -1
  64. package/column/Column.d.ts +4 -0
  65. package/column/Column.vue +4 -0
  66. package/column/column.cjs.js +4 -0
  67. package/column/column.cjs.min.js +1 -1
  68. package/column/column.esm.js +4 -0
  69. package/column/column.esm.min.js +1 -1
  70. package/column/column.js +4 -0
  71. package/column/column.min.js +1 -1
  72. package/config/PrimeVue.d.ts +42 -0
  73. package/config/config.cjs.js +35 -4
  74. package/config/config.cjs.min.js +1 -1
  75. package/config/config.esm.js +35 -4
  76. package/config/config.esm.min.js +1 -1
  77. package/config/config.js +35 -4
  78. package/config/config.min.js +1 -1
  79. package/confirmdialog/ConfirmDialog.vue +4 -1
  80. package/confirmdialog/confirmdialog.cjs.js +6 -2
  81. package/confirmdialog/confirmdialog.cjs.min.js +1 -1
  82. package/confirmdialog/confirmdialog.esm.js +6 -2
  83. package/confirmdialog/confirmdialog.esm.min.js +1 -1
  84. package/confirmdialog/confirmdialog.js +6 -2
  85. package/confirmdialog/confirmdialog.min.js +1 -1
  86. package/contextmenu/ContextMenu.d.ts +1 -1
  87. package/contextmenu/ContextMenuSub.vue +3 -3
  88. package/contextmenu/contextmenu.cjs.js +14 -8
  89. package/contextmenu/contextmenu.cjs.min.js +1 -1
  90. package/contextmenu/contextmenu.esm.js +15 -9
  91. package/contextmenu/contextmenu.esm.min.js +1 -1
  92. package/contextmenu/contextmenu.js +14 -8
  93. package/contextmenu/contextmenu.min.js +1 -1
  94. package/core/core.js +1128 -772
  95. package/core/core.min.js +12 -12
  96. package/datatable/BodyCell.vue +11 -2
  97. package/datatable/DataTable.vue +23 -2
  98. package/datatable/datatable.cjs.js +34 -4
  99. package/datatable/datatable.cjs.min.js +1 -1
  100. package/datatable/datatable.esm.js +34 -4
  101. package/datatable/datatable.esm.min.js +1 -1
  102. package/datatable/datatable.js +34 -4
  103. package/datatable/datatable.min.js +1 -1
  104. package/dialog/Dialog.d.ts +5 -1
  105. package/dropdown/Dropdown.d.ts +92 -38
  106. package/dropdown/Dropdown.vue +538 -399
  107. package/dropdown/dropdown.cjs.js +657 -486
  108. package/dropdown/dropdown.cjs.min.js +1 -1
  109. package/dropdown/dropdown.esm.js +659 -488
  110. package/dropdown/dropdown.esm.min.js +1 -1
  111. package/dropdown/dropdown.js +657 -486
  112. package/dropdown/dropdown.min.js +1 -1
  113. package/editor/Editor.d.ts +32 -0
  114. package/editor/Editor.vue +15 -1
  115. package/editor/editor.cjs.js +15 -1
  116. package/editor/editor.cjs.min.js +1 -1
  117. package/editor/editor.esm.js +15 -1
  118. package/editor/editor.esm.min.js +1 -1
  119. package/editor/editor.js +15 -1
  120. package/editor/editor.min.js +1 -1
  121. package/inputmask/InputMask.vue +9 -6
  122. package/inputmask/inputmask.cjs.js +14 -6
  123. package/inputmask/inputmask.cjs.min.js +1 -1
  124. package/inputmask/inputmask.esm.js +15 -7
  125. package/inputmask/inputmask.esm.min.js +1 -1
  126. package/inputmask/inputmask.js +14 -6
  127. package/inputmask/inputmask.min.js +1 -1
  128. package/inputnumber/InputNumber.d.ts +31 -7
  129. package/inputnumber/InputNumber.vue +53 -20
  130. package/inputnumber/inputnumber.cjs.js +75 -29
  131. package/inputnumber/inputnumber.cjs.min.js +1 -1
  132. package/inputnumber/inputnumber.esm.js +76 -30
  133. package/inputnumber/inputnumber.esm.min.js +1 -1
  134. package/inputnumber/inputnumber.js +75 -29
  135. package/inputnumber/inputnumber.min.js +1 -1
  136. package/inputswitch/InputSwitch.d.ts +24 -8
  137. package/inputswitch/InputSwitch.vue +27 -12
  138. package/inputswitch/inputswitch.cjs.js +38 -20
  139. package/inputswitch/inputswitch.cjs.min.js +1 -1
  140. package/inputswitch/inputswitch.esm.js +39 -21
  141. package/inputswitch/inputswitch.esm.min.js +1 -1
  142. package/inputswitch/inputswitch.js +38 -20
  143. package/inputswitch/inputswitch.min.js +1 -1
  144. package/inputtext/InputText.vue +1 -2
  145. package/inputtext/inputtext.cjs.js +3 -4
  146. package/inputtext/inputtext.cjs.min.js +1 -1
  147. package/inputtext/inputtext.esm.js +4 -5
  148. package/inputtext/inputtext.esm.min.js +1 -1
  149. package/inputtext/inputtext.js +3 -4
  150. package/inputtext/inputtext.min.js +1 -1
  151. package/knob/Knob.d.ts +12 -0
  152. package/knob/Knob.vue +62 -2
  153. package/knob/knob.cjs.js +73 -5
  154. package/knob/knob.cjs.min.js +1 -1
  155. package/knob/knob.esm.js +73 -5
  156. package/knob/knob.esm.min.js +1 -1
  157. package/knob/knob.js +73 -5
  158. package/knob/knob.min.js +1 -1
  159. package/listbox/Listbox.d.ts +53 -7
  160. package/listbox/Listbox.vue +500 -135
  161. package/listbox/listbox.cjs.js +597 -193
  162. package/listbox/listbox.cjs.min.js +1 -1
  163. package/listbox/listbox.esm.js +599 -195
  164. package/listbox/listbox.esm.min.js +1 -1
  165. package/listbox/listbox.js +597 -193
  166. package/listbox/listbox.min.js +1 -1
  167. package/menu/Menu.d.ts +1 -1
  168. package/menu/Menuitem.vue +2 -2
  169. package/menu/menu.cjs.js +12 -6
  170. package/menu/menu.cjs.min.js +1 -1
  171. package/menu/menu.esm.js +13 -7
  172. package/menu/menu.esm.min.js +1 -1
  173. package/menu/menu.js +12 -6
  174. package/menu/menu.min.js +1 -1
  175. package/menubar/MenubarSub.vue +3 -3
  176. package/menubar/menubar.cjs.js +14 -8
  177. package/menubar/menubar.cjs.min.js +1 -1
  178. package/menubar/menubar.esm.js +15 -9
  179. package/menubar/menubar.esm.min.js +1 -1
  180. package/menubar/menubar.js +14 -8
  181. package/menubar/menubar.min.js +1 -1
  182. package/menuitem/MenuItem.d.ts +1 -1
  183. package/multiselect/MultiSelect.d.ts +111 -51
  184. package/multiselect/MultiSelect.vue +629 -338
  185. package/multiselect/multiselect.cjs.js +748 -428
  186. package/multiselect/multiselect.cjs.min.js +1 -1
  187. package/multiselect/multiselect.esm.js +750 -430
  188. package/multiselect/multiselect.esm.min.js +1 -1
  189. package/multiselect/multiselect.js +748 -428
  190. package/multiselect/multiselect.min.js +1 -1
  191. package/overlaypanel/OverlayPanel.d.ts +1 -1
  192. package/overlaypanel/OverlayPanel.vue +14 -2
  193. package/overlaypanel/overlaypanel.cjs.js +14 -2
  194. package/overlaypanel/overlaypanel.cjs.min.js +1 -1
  195. package/overlaypanel/overlaypanel.esm.js +14 -2
  196. package/overlaypanel/overlaypanel.esm.min.js +1 -1
  197. package/overlaypanel/overlaypanel.js +14 -2
  198. package/overlaypanel/overlaypanel.min.js +1 -1
  199. package/package.json +2 -2
  200. package/paginator/Paginator.d.ts +2 -2
  201. package/password/Password.d.ts +36 -8
  202. package/password/Password.vue +50 -14
  203. package/password/password.cjs.js +69 -24
  204. package/password/password.cjs.min.js +1 -1
  205. package/password/password.esm.js +71 -26
  206. package/password/password.esm.min.js +1 -1
  207. package/password/password.js +69 -24
  208. package/password/password.min.js +1 -1
  209. package/picklist/PickList.d.ts +8 -0
  210. package/picklist/PickList.vue +10 -2
  211. package/picklist/picklist.cjs.js +68 -50
  212. package/picklist/picklist.cjs.min.js +1 -1
  213. package/picklist/picklist.esm.js +69 -51
  214. package/picklist/picklist.esm.min.js +1 -1
  215. package/picklist/picklist.js +68 -50
  216. package/picklist/picklist.min.js +1 -1
  217. package/portal/Portal.d.ts +1 -1
  218. package/radiobutton/RadioButton.d.ts +28 -4
  219. package/radiobutton/RadioButton.vue +36 -11
  220. package/radiobutton/radiobutton.cjs.js +49 -23
  221. package/radiobutton/radiobutton.cjs.min.js +1 -1
  222. package/radiobutton/radiobutton.esm.js +50 -24
  223. package/radiobutton/radiobutton.esm.min.js +1 -1
  224. package/radiobutton/radiobutton.js +49 -23
  225. package/radiobutton/radiobutton.min.js +1 -1
  226. package/rating/Rating.d.ts +4 -0
  227. package/rating/Rating.vue +61 -7
  228. package/rating/rating.cjs.js +90 -16
  229. package/rating/rating.cjs.min.js +1 -1
  230. package/rating/rating.esm.js +91 -17
  231. package/rating/rating.esm.min.js +1 -1
  232. package/rating/rating.js +90 -16
  233. package/rating/rating.min.js +1 -1
  234. package/resources/primevue.css +8 -0
  235. package/resources/primevue.min.css +1 -1
  236. package/resources/themes/arya-blue/theme.css +82 -40
  237. package/resources/themes/arya-green/theme.css +82 -40
  238. package/resources/themes/arya-orange/theme.css +82 -40
  239. package/resources/themes/arya-purple/theme.css +82 -40
  240. package/resources/themes/bootstrap4-dark-blue/theme.css +82 -40
  241. package/resources/themes/bootstrap4-dark-purple/theme.css +82 -40
  242. package/resources/themes/bootstrap4-light-blue/theme.css +82 -40
  243. package/resources/themes/bootstrap4-light-purple/theme.css +82 -40
  244. package/resources/themes/fluent-light/theme.css +82 -40
  245. package/resources/themes/lara-dark-blue/theme.css +82 -40
  246. package/resources/themes/lara-dark-indigo/theme.css +82 -40
  247. package/resources/themes/lara-dark-purple/theme.css +82 -40
  248. package/resources/themes/lara-dark-teal/theme.css +82 -40
  249. package/resources/themes/lara-light-blue/theme.css +82 -40
  250. package/resources/themes/lara-light-indigo/theme.css +82 -40
  251. package/resources/themes/lara-light-purple/theme.css +82 -40
  252. package/resources/themes/lara-light-teal/theme.css +82 -40
  253. package/resources/themes/luna-amber/theme.css +82 -40
  254. package/resources/themes/luna-blue/theme.css +82 -40
  255. package/resources/themes/luna-green/theme.css +82 -40
  256. package/resources/themes/luna-pink/theme.css +82 -40
  257. package/resources/themes/md-dark-deeppurple/theme.css +82 -40
  258. package/resources/themes/md-dark-indigo/theme.css +82 -40
  259. package/resources/themes/md-light-deeppurple/theme.css +82 -40
  260. package/resources/themes/md-light-indigo/theme.css +82 -40
  261. package/resources/themes/mdc-dark-deeppurple/theme.css +82 -40
  262. package/resources/themes/mdc-dark-indigo/theme.css +82 -40
  263. package/resources/themes/mdc-light-deeppurple/theme.css +82 -40
  264. package/resources/themes/mdc-light-indigo/theme.css +82 -40
  265. package/resources/themes/nova/theme.css +82 -40
  266. package/resources/themes/nova-accent/theme.css +82 -40
  267. package/resources/themes/nova-alt/theme.css +82 -40
  268. package/resources/themes/nova-vue/theme.css +82 -40
  269. package/resources/themes/rhea/theme.css +82 -40
  270. package/resources/themes/saga-blue/theme.css +82 -40
  271. package/resources/themes/saga-green/theme.css +82 -40
  272. package/resources/themes/saga-orange/theme.css +82 -40
  273. package/resources/themes/saga-purple/theme.css +82 -40
  274. package/resources/themes/tailwind-light/theme.css +82 -40
  275. package/resources/themes/vela-blue/theme.css +82 -40
  276. package/resources/themes/vela-green/theme.css +82 -40
  277. package/resources/themes/vela-orange/theme.css +82 -40
  278. package/resources/themes/vela-purple/theme.css +82 -40
  279. package/ripple/ripple.cjs.js +1 -0
  280. package/ripple/ripple.cjs.min.js +1 -1
  281. package/ripple/ripple.esm.js +1 -0
  282. package/ripple/ripple.esm.min.js +1 -1
  283. package/ripple/ripple.js +1 -0
  284. package/ripple/ripple.min.js +1 -1
  285. package/selectbutton/SelectButton.d.ts +6 -2
  286. package/selectbutton/SelectButton.vue +89 -12
  287. package/selectbutton/selectbutton.cjs.js +97 -22
  288. package/selectbutton/selectbutton.cjs.min.js +1 -1
  289. package/selectbutton/selectbutton.esm.js +99 -24
  290. package/selectbutton/selectbutton.esm.min.js +1 -1
  291. package/selectbutton/selectbutton.js +97 -22
  292. package/selectbutton/selectbutton.min.js +1 -1
  293. package/slider/Slider.d.ts +9 -1
  294. package/slider/Slider.vue +50 -34
  295. package/slider/slider.cjs.js +59 -38
  296. package/slider/slider.cjs.min.js +1 -1
  297. package/slider/slider.esm.js +59 -38
  298. package/slider/slider.esm.min.js +1 -1
  299. package/slider/slider.js +59 -38
  300. package/slider/slider.min.js +1 -1
  301. package/splitbutton/SplitButton.d.ts +1 -1
  302. package/splitter/Splitter.vue +30 -1
  303. package/splitter/splitter.cjs.js +30 -1
  304. package/splitter/splitter.cjs.min.js +1 -1
  305. package/splitter/splitter.esm.js +30 -1
  306. package/splitter/splitter.esm.min.js +1 -1
  307. package/splitter/splitter.js +30 -1
  308. package/splitter/splitter.min.js +1 -1
  309. package/textarea/Textarea.vue +1 -2
  310. package/textarea/textarea.cjs.js +3 -5
  311. package/textarea/textarea.cjs.min.js +1 -1
  312. package/textarea/textarea.esm.js +4 -6
  313. package/textarea/textarea.esm.min.js +1 -1
  314. package/textarea/textarea.js +3 -5
  315. package/textarea/textarea.min.js +1 -1
  316. package/tieredmenu/TieredMenu.d.ts +1 -1
  317. package/tieredmenu/TieredMenuSub.vue +3 -3
  318. package/tieredmenu/tieredmenu.cjs.js +14 -8
  319. package/tieredmenu/tieredmenu.cjs.min.js +1 -1
  320. package/tieredmenu/tieredmenu.esm.js +15 -9
  321. package/tieredmenu/tieredmenu.esm.min.js +1 -1
  322. package/tieredmenu/tieredmenu.js +14 -8
  323. package/tieredmenu/tieredmenu.min.js +1 -1
  324. package/timeline/Timeline.d.ts +10 -1
  325. package/timeline/Timeline.vue +1 -1
  326. package/timeline/timeline.cjs.js +5 -1
  327. package/timeline/timeline.cjs.min.js +1 -1
  328. package/timeline/timeline.esm.js +5 -1
  329. package/timeline/timeline.esm.min.js +1 -1
  330. package/timeline/timeline.js +5 -1
  331. package/timeline/timeline.min.js +1 -1
  332. package/togglebutton/ToggleButton.d.ts +42 -0
  333. package/togglebutton/ToggleButton.vue +44 -7
  334. package/togglebutton/togglebutton.cjs.js +59 -13
  335. package/togglebutton/togglebutton.cjs.min.js +1 -1
  336. package/togglebutton/togglebutton.esm.js +60 -14
  337. package/togglebutton/togglebutton.esm.min.js +1 -1
  338. package/togglebutton/togglebutton.js +59 -13
  339. package/togglebutton/togglebutton.min.js +1 -1
  340. package/tooltip/tooltip.cjs.js +20 -11
  341. package/tooltip/tooltip.cjs.min.js +1 -1
  342. package/tooltip/tooltip.esm.js +21 -12
  343. package/tooltip/tooltip.esm.min.js +1 -1
  344. package/tooltip/tooltip.js +20 -11
  345. package/tooltip/tooltip.min.js +1 -1
  346. package/tree/Tree.vue +5 -1
  347. package/tree/TreeNode.vue +20 -19
  348. package/tree/tree.cjs.js +47 -32
  349. package/tree/tree.cjs.min.js +1 -1
  350. package/tree/tree.esm.js +47 -32
  351. package/tree/tree.esm.min.js +1 -1
  352. package/tree/tree.js +47 -32
  353. package/tree/tree.min.js +1 -1
  354. package/treeselect/TreeSelect.d.ts +26 -10
  355. package/treeselect/TreeSelect.vue +52 -29
  356. package/treeselect/treeselect.cjs.js +74 -41
  357. package/treeselect/treeselect.cjs.min.js +1 -1
  358. package/treeselect/treeselect.esm.js +76 -43
  359. package/treeselect/treeselect.esm.min.js +1 -1
  360. package/treeselect/treeselect.js +74 -41
  361. package/treeselect/treeselect.min.js +1 -1
  362. package/tristatecheckbox/TriStateCheckbox.d.ts +20 -4
  363. package/tristatecheckbox/TriStateCheckbox.vue +52 -15
  364. package/tristatecheckbox/tristatecheckbox.cjs.js +67 -26
  365. package/tristatecheckbox/tristatecheckbox.cjs.min.js +1 -1
  366. package/tristatecheckbox/tristatecheckbox.esm.js +68 -27
  367. package/tristatecheckbox/tristatecheckbox.esm.min.js +1 -1
  368. package/tristatecheckbox/tristatecheckbox.js +67 -26
  369. package/tristatecheckbox/tristatecheckbox.min.js +1 -1
  370. package/utils/Utils.d.ts +3 -2
  371. package/utils/utils.cjs.js +239 -173
  372. package/utils/utils.cjs.min.js +1 -1
  373. package/utils/utils.esm.js +239 -173
  374. package/utils/utils.esm.min.js +1 -1
  375. package/utils/utils.js +239 -173
  376. package/utils/utils.min.js +1 -1
  377. package/vetur-attributes.json +612 -136
  378. package/vetur-tags.json +180 -59
  379. package/virtualscroller/VirtualScroller.d.ts +10 -0
  380. package/virtualscroller/VirtualScroller.vue +18 -17
  381. package/virtualscroller/virtualscroller.cjs.js +22 -20
  382. package/virtualscroller/virtualscroller.cjs.min.js +1 -1
  383. package/virtualscroller/virtualscroller.esm.js +22 -20
  384. package/virtualscroller/virtualscroller.esm.min.js +1 -1
  385. package/virtualscroller/virtualscroller.js +22 -20
  386. package/virtualscroller/virtualscroller.min.js +1 -1
  387. package/web-types.json +1745 -338
@@ -42,6 +42,7 @@
42
42
  --surface-hover:rgba(255,255,255,.03);
43
43
  --focus-ring: 0 0 0 1px #cf95d9;
44
44
  --maskbg: rgba(0, 0, 0, 0.4);
45
+ color-scheme: light dark;
45
46
  }
46
47
 
47
48
  * {
@@ -240,18 +241,19 @@
240
241
  .p-autocomplete.p-autocomplete-dd .p-autocomplete-loader {
241
242
  right: 2.857rem;
242
243
  }
243
- .p-autocomplete .p-autocomplete-multiple-container {
244
- padding: 0.25rem 0.5rem;
245
- }
246
- .p-autocomplete .p-autocomplete-multiple-container:not(.p-disabled):hover {
244
+ .p-autocomplete:not(.p-disabled):hover .p-autocomplete-multiple-container {
247
245
  border-color: #BA68C8;
248
246
  }
249
- .p-autocomplete .p-autocomplete-multiple-container:not(.p-disabled).p-focus {
247
+ .p-autocomplete:not(.p-disabled).p-focus .p-autocomplete-multiple-container {
250
248
  outline: 0 none;
251
249
  outline-offset: 0;
252
250
  box-shadow: 0 0 0 1px #cf95d9;
253
251
  border-color: #BA68C8;
254
252
  }
253
+ .p-autocomplete .p-autocomplete-multiple-container {
254
+ padding: 0.25rem 0.5rem;
255
+ gap: 0.5rem;
256
+ }
255
257
  .p-autocomplete .p-autocomplete-multiple-container .p-autocomplete-input-token {
256
258
  padding: 0.25rem 0;
257
259
  }
@@ -264,7 +266,6 @@
264
266
  }
265
267
  .p-autocomplete .p-autocomplete-multiple-container .p-autocomplete-token {
266
268
  padding: 0.25rem 0.5rem;
267
- margin-right: 0.5rem;
268
269
  background: #304562;
269
270
  color: rgba(255, 255, 255, 0.87);
270
271
  border-radius: 16px;
@@ -272,6 +273,10 @@
272
273
  .p-autocomplete .p-autocomplete-multiple-container .p-autocomplete-token .p-autocomplete-token-icon {
273
274
  margin-left: 0.5rem;
274
275
  }
276
+ .p-autocomplete .p-autocomplete-multiple-container .p-autocomplete-token.p-focus {
277
+ background: #3e526d;
278
+ color: rgba(255, 255, 255, 0.87);
279
+ }
275
280
  .p-autocomplete.p-invalid.p-component > .p-inputtext {
276
281
  border-color: #ef9a9a;
277
282
  }
@@ -295,14 +300,21 @@
295
300
  transition: box-shadow 0.2s;
296
301
  border-radius: 0;
297
302
  }
298
- .p-autocomplete-panel .p-autocomplete-items .p-autocomplete-item:hover {
299
- color: rgba(255, 255, 255, 0.87);
300
- background: rgba(255, 255, 255, 0.03);
301
- }
302
303
  .p-autocomplete-panel .p-autocomplete-items .p-autocomplete-item.p-highlight {
303
304
  color: rgba(255, 255, 255, 0.87);
304
305
  background: rgba(186, 104, 200, 0.16);
305
306
  }
307
+ .p-autocomplete-panel .p-autocomplete-items .p-autocomplete-item.p-highlight.p-focus {
308
+ background: rgba(186, 104, 200, 0.24);
309
+ }
310
+ .p-autocomplete-panel .p-autocomplete-items .p-autocomplete-item:not(.p-highlight):not(.p-disabled).p-focus {
311
+ color: rgba(255, 255, 255, 0.87);
312
+ background: rgba(255, 255, 255, 0.09);
313
+ }
314
+ .p-autocomplete-panel .p-autocomplete-items .p-autocomplete-item:not(.p-highlight):not(.p-disabled):hover {
315
+ color: rgba(255, 255, 255, 0.87);
316
+ background: rgba(255, 255, 255, 0.03);
317
+ }
306
318
  .p-autocomplete-panel .p-autocomplete-items .p-autocomplete-item-group {
307
319
  margin: 0;
308
320
  padding: 0.75rem 1rem;
@@ -584,22 +596,24 @@
584
596
  transition: box-shadow 0.2s;
585
597
  border-radius: 0;
586
598
  }
587
- .p-cascadeselect-panel .p-cascadeselect-items .p-cascadeselect-item .p-cascadeselect-item-content {
588
- padding: 0.5rem 1rem;
589
- }
590
- .p-cascadeselect-panel .p-cascadeselect-items .p-cascadeselect-item .p-cascadeselect-item-content:focus {
591
- outline: 0 none;
592
- outline-offset: 0;
593
- box-shadow: inset 0 0 0 0.15rem #cf95d9;
594
- }
595
599
  .p-cascadeselect-panel .p-cascadeselect-items .p-cascadeselect-item.p-highlight {
596
600
  color: rgba(255, 255, 255, 0.87);
597
601
  background: rgba(186, 104, 200, 0.16);
598
602
  }
603
+ .p-cascadeselect-panel .p-cascadeselect-items .p-cascadeselect-item.p-highlight.p-focus {
604
+ background: rgba(186, 104, 200, 0.24);
605
+ }
606
+ .p-cascadeselect-panel .p-cascadeselect-items .p-cascadeselect-item:not(.p-highlight):not(.p-disabled).p-focus {
607
+ color: rgba(255, 255, 255, 0.87);
608
+ background: rgba(255, 255, 255, 0.09);
609
+ }
599
610
  .p-cascadeselect-panel .p-cascadeselect-items .p-cascadeselect-item:not(.p-highlight):not(.p-disabled):hover {
600
611
  color: rgba(255, 255, 255, 0.87);
601
612
  background: rgba(255, 255, 255, 0.03);
602
613
  }
614
+ .p-cascadeselect-panel .p-cascadeselect-items .p-cascadeselect-item .p-cascadeselect-item-content {
615
+ padding: 0.5rem 1rem;
616
+ }
603
617
  .p-cascadeselect-panel .p-cascadeselect-items .p-cascadeselect-item .p-cascadeselect-group-icon {
604
618
  font-size: 0.875rem;
605
619
  }
@@ -667,18 +681,18 @@
667
681
  background: #a241b2;
668
682
  }
669
683
 
670
- .p-chips .p-chips-multiple-container {
671
- padding: 0.25rem 0.5rem;
672
- }
673
- .p-chips .p-chips-multiple-container:not(.p-disabled):hover {
684
+ .p-chips:not(.p-disabled):hover .p-chips-multiple-container {
674
685
  border-color: #BA68C8;
675
686
  }
676
- .p-chips .p-chips-multiple-container:not(.p-disabled).p-focus {
687
+ .p-chips:not(.p-disabled).p-focus .p-chips-multiple-container {
677
688
  outline: 0 none;
678
689
  outline-offset: 0;
679
690
  box-shadow: 0 0 0 1px #cf95d9;
680
691
  border-color: #BA68C8;
681
692
  }
693
+ .p-chips .p-chips-multiple-container {
694
+ padding: 0.25rem 0.5rem;
695
+ }
682
696
  .p-chips .p-chips-multiple-container .p-chips-token {
683
697
  padding: 0.25rem 0.5rem;
684
698
  margin-right: 0.5rem;
@@ -686,6 +700,10 @@
686
700
  color: rgba(255, 255, 255, 0.87);
687
701
  border-radius: 16px;
688
702
  }
703
+ .p-chips .p-chips-multiple-container .p-chips-token.p-focus {
704
+ background: #3e526d;
705
+ color: rgba(255, 255, 255, 0.87);
706
+ }
689
707
  .p-chips .p-chips-multiple-container .p-chips-token .p-chips-token-icon {
690
708
  margin-left: 0.5rem;
691
709
  }
@@ -746,7 +764,7 @@
746
764
  .p-dropdown .p-dropdown-label.p-placeholder {
747
765
  color: rgba(255, 255, 255, 0.6);
748
766
  }
749
- .p-dropdown .p-dropdown-label:enabled:focus {
767
+ .p-dropdown .p-dropdown-label:focus, .p-dropdown .p-dropdown-label:enabled:focus {
750
768
  outline: 0 none;
751
769
  box-shadow: none;
752
770
  }
@@ -805,6 +823,13 @@
805
823
  color: rgba(255, 255, 255, 0.87);
806
824
  background: rgba(186, 104, 200, 0.16);
807
825
  }
826
+ .p-dropdown-panel .p-dropdown-items .p-dropdown-item.p-highlight.p-focus {
827
+ background: rgba(186, 104, 200, 0.24);
828
+ }
829
+ .p-dropdown-panel .p-dropdown-items .p-dropdown-item:not(.p-highlight):not(.p-disabled).p-focus {
830
+ color: rgba(255, 255, 255, 0.87);
831
+ background: rgba(255, 255, 255, 0.09);
832
+ }
808
833
  .p-dropdown-panel .p-dropdown-items .p-dropdown-item:not(.p-highlight):not(.p-disabled):hover {
809
834
  color: rgba(255, 255, 255, 0.87);
810
835
  background: rgba(255, 255, 255, 0.03);
@@ -1155,6 +1180,7 @@
1155
1180
  color: rgba(255, 255, 255, 0.87);
1156
1181
  border: 1px solid #304562;
1157
1182
  border-radius: 3px;
1183
+ transition: background-color 0.2s, color 0.2s, border-color 0.2s, box-shadow 0.2s;
1158
1184
  }
1159
1185
  .p-listbox .p-listbox-header {
1160
1186
  padding: 0.5rem 1rem;
@@ -1174,6 +1200,7 @@
1174
1200
  }
1175
1201
  .p-listbox .p-listbox-list {
1176
1202
  padding: 0.5rem 0;
1203
+ outline: 0 none;
1177
1204
  }
1178
1205
  .p-listbox .p-listbox-list .p-listbox-item {
1179
1206
  margin: 0;
@@ -1187,11 +1214,6 @@
1187
1214
  color: rgba(255, 255, 255, 0.87);
1188
1215
  background: rgba(186, 104, 200, 0.16);
1189
1216
  }
1190
- .p-listbox .p-listbox-list .p-listbox-item:focus {
1191
- outline: 0 none;
1192
- outline-offset: 0;
1193
- box-shadow: inset 0 0 0 0.15rem #cf95d9;
1194
- }
1195
1217
  .p-listbox .p-listbox-list .p-listbox-item-group {
1196
1218
  margin: 0;
1197
1219
  padding: 0.75rem 1rem;
@@ -1204,10 +1226,23 @@
1204
1226
  color: rgba(255, 255, 255, 0.87);
1205
1227
  background: transparent;
1206
1228
  }
1229
+ .p-listbox:not(.p-disabled) .p-listbox-item.p-highlight.p-focus {
1230
+ background: rgba(186, 104, 200, 0.24);
1231
+ }
1232
+ .p-listbox:not(.p-disabled) .p-listbox-item:not(.p-highlight):not(.p-disabled).p-focus {
1233
+ color: rgba(255, 255, 255, 0.87);
1234
+ background: rgba(255, 255, 255, 0.09);
1235
+ }
1207
1236
  .p-listbox:not(.p-disabled) .p-listbox-item:not(.p-highlight):not(.p-disabled):hover {
1208
1237
  color: rgba(255, 255, 255, 0.87);
1209
1238
  background: rgba(255, 255, 255, 0.03);
1210
1239
  }
1240
+ .p-listbox.p-focus {
1241
+ outline: 0 none;
1242
+ outline-offset: 0;
1243
+ box-shadow: 0 0 0 1px #cf95d9;
1244
+ border-color: #BA68C8;
1245
+ }
1211
1246
  .p-listbox.p-invalid {
1212
1247
  border-color: #ef9a9a;
1213
1248
  }
@@ -1321,15 +1356,17 @@
1321
1356
  color: rgba(255, 255, 255, 0.87);
1322
1357
  background: rgba(186, 104, 200, 0.16);
1323
1358
  }
1359
+ .p-multiselect-panel .p-multiselect-items .p-multiselect-item.p-highlight.p-focus {
1360
+ background: rgba(186, 104, 200, 0.24);
1361
+ }
1362
+ .p-multiselect-panel .p-multiselect-items .p-multiselect-item:not(.p-highlight):not(.p-disabled).p-focus {
1363
+ color: rgba(255, 255, 255, 0.87);
1364
+ background: rgba(255, 255, 255, 0.09);
1365
+ }
1324
1366
  .p-multiselect-panel .p-multiselect-items .p-multiselect-item:not(.p-highlight):not(.p-disabled):hover {
1325
1367
  color: rgba(255, 255, 255, 0.87);
1326
1368
  background: rgba(255, 255, 255, 0.03);
1327
1369
  }
1328
- .p-multiselect-panel .p-multiselect-items .p-multiselect-item:focus {
1329
- outline: 0 none;
1330
- outline-offset: 0;
1331
- box-shadow: inset 0 0 0 0.15rem #cf95d9;
1332
- }
1333
1370
  .p-multiselect-panel .p-multiselect-items .p-multiselect-item .p-checkbox {
1334
1371
  margin-right: 0.5rem;
1335
1372
  }
@@ -1448,17 +1485,18 @@
1448
1485
  .p-rating .p-rating-icon.p-rating-cancel {
1449
1486
  color: #F48FB1;
1450
1487
  }
1451
- .p-rating .p-rating-icon:focus {
1452
- outline: 0 none;
1453
- outline-offset: 0;
1454
- box-shadow: 0 0 0 1px #cf95d9;
1455
- }
1456
1488
  .p-rating .p-rating-icon:first-child {
1457
1489
  margin-left: 0;
1458
1490
  }
1459
1491
  .p-rating .p-rating-icon.pi-star-fill {
1460
1492
  color: #BA68C8;
1461
1493
  }
1494
+ .p-rating:not(.p-disabled):not(.p-readonly) .p-rating-icon.p-focus {
1495
+ outline: 0 none;
1496
+ outline-offset: 0;
1497
+ box-shadow: 0 0 0 1px #cf95d9;
1498
+ border-color: #BA68C8;
1499
+ }
1462
1500
  .p-rating:not(.p-disabled):not(.p-readonly) .p-rating-icon:hover {
1463
1501
  color: #BA68C8;
1464
1502
  }
@@ -1735,6 +1773,9 @@
1735
1773
  outline-offset: 0;
1736
1774
  box-shadow: 0 0 0 1px #cf95d9;
1737
1775
  }
1776
+ .p-button .p-button-label {
1777
+ transition-duration: 0.2s;
1778
+ }
1738
1779
  .p-button .p-button-icon-left {
1739
1780
  margin-right: 0.5rem;
1740
1781
  }
@@ -2638,7 +2679,8 @@
2638
2679
  background: #1f2d40;
2639
2680
  }
2640
2681
  .p-datatable.p-datatable-scrollable > .p-datatable-wrapper > .p-datatable-table > .p-datatable-thead,
2641
- .p-datatable.p-datatable-scrollable > .p-datatable-wrapper > .p-datatable-table > .p-datatable-tfoot {
2682
+ .p-datatable.p-datatable-scrollable > .p-datatable-wrapper > .p-datatable-table > .p-datatable-tfoot, .p-datatable.p-datatable-scrollable > .p-datatable-wrapper > .p-virtualscroller > .p-datatable-table > .p-datatable-thead,
2683
+ .p-datatable.p-datatable-scrollable > .p-datatable-wrapper > .p-virtualscroller > .p-datatable-table > .p-datatable-tfoot {
2642
2684
  background-color: #1f2d40;
2643
2685
  }
2644
2686
  .p-datatable .p-datatable-loading-icon {
@@ -13,6 +13,7 @@ function unbindEvents(el) {
13
13
  function create(el) {
14
14
  let ink = document.createElement('span');
15
15
  ink.className = 'p-ink';
16
+ ink.setAttribute("role", "presentation");
16
17
  el.appendChild(ink);
17
18
 
18
19
  ink.addEventListener('animationend', onAnimationEnd);
@@ -1 +1 @@
1
- "use strict";var e=require("primevue/utils");function t(e){let t=r(e);t&&(!function(e){e.removeEventListener("mousedown",n)}(e),t.removeEventListener("animationend",i),t.remove())}function n(t){let n=t.currentTarget,i=r(n);if(!i||"none"===getComputedStyle(i,null).display)return;if(e.DomHandler.removeClass(i,"p-ink-active"),!e.DomHandler.getHeight(i)&&!e.DomHandler.getWidth(i)){let t=Math.max(e.DomHandler.getOuterWidth(n),e.DomHandler.getOuterHeight(n));i.style.height=t+"px",i.style.width=t+"px"}let o=e.DomHandler.getOffset(n),l=t.pageX-o.left+document.body.scrollTop-e.DomHandler.getWidth(i)/2,a=t.pageY-o.top+document.body.scrollLeft-e.DomHandler.getHeight(i)/2;i.style.top=a+"px",i.style.left=l+"px",e.DomHandler.addClass(i,"p-ink-active")}function i(t){e.DomHandler.removeClass(t.currentTarget,"p-ink-active")}function r(e){for(let t=0;t<e.children.length;t++)if("string"==typeof e.children[t].className&&-1!==e.children[t].className.indexOf("p-ink"))return e.children[t];return null}const o={mounted(e,t){t.instance.$primevue&&t.instance.$primevue.config&&t.instance.$primevue.config.ripple&&(function(e){let t=document.createElement("span");t.className="p-ink",e.appendChild(t),t.addEventListener("animationend",i)}(e),function(e){e.addEventListener("mousedown",n)}(e))},unmounted(e){t(e)}};module.exports=o;
1
+ "use strict";var e=require("primevue/utils");function t(e){let t=r(e);t&&(!function(e){e.removeEventListener("mousedown",n)}(e),t.removeEventListener("animationend",i),t.remove())}function n(t){let n=t.currentTarget,i=r(n);if(!i||"none"===getComputedStyle(i,null).display)return;if(e.DomHandler.removeClass(i,"p-ink-active"),!e.DomHandler.getHeight(i)&&!e.DomHandler.getWidth(i)){let t=Math.max(e.DomHandler.getOuterWidth(n),e.DomHandler.getOuterHeight(n));i.style.height=t+"px",i.style.width=t+"px"}let o=e.DomHandler.getOffset(n),l=t.pageX-o.left+document.body.scrollTop-e.DomHandler.getWidth(i)/2,a=t.pageY-o.top+document.body.scrollLeft-e.DomHandler.getHeight(i)/2;i.style.top=a+"px",i.style.left=l+"px",e.DomHandler.addClass(i,"p-ink-active")}function i(t){e.DomHandler.removeClass(t.currentTarget,"p-ink-active")}function r(e){for(let t=0;t<e.children.length;t++)if("string"==typeof e.children[t].className&&-1!==e.children[t].className.indexOf("p-ink"))return e.children[t];return null}const o={mounted(e,t){t.instance.$primevue&&t.instance.$primevue.config&&t.instance.$primevue.config.ripple&&(function(e){let t=document.createElement("span");t.className="p-ink",t.setAttribute("role","presentation"),e.appendChild(t),t.addEventListener("animationend",i)}(e),function(e){e.addEventListener("mousedown",n)}(e))},unmounted(e){t(e)}};module.exports=o;
@@ -11,6 +11,7 @@ function unbindEvents(el) {
11
11
  function create(el) {
12
12
  let ink = document.createElement('span');
13
13
  ink.className = 'p-ink';
14
+ ink.setAttribute("role", "presentation");
14
15
  el.appendChild(ink);
15
16
 
16
17
  ink.addEventListener('animationend', onAnimationEnd);
@@ -1 +1 @@
1
- import{DomHandler as e}from"primevue/utils";function t(e){let t=o(e);t&&(!function(e){e.removeEventListener("mousedown",n)}(e),t.removeEventListener("animationend",i),t.remove())}function n(t){let n=t.currentTarget,i=o(n);if(!i||"none"===getComputedStyle(i,null).display)return;if(e.removeClass(i,"p-ink-active"),!e.getHeight(i)&&!e.getWidth(i)){let t=Math.max(e.getOuterWidth(n),e.getOuterHeight(n));i.style.height=t+"px",i.style.width=t+"px"}let r=e.getOffset(n),l=t.pageX-r.left+document.body.scrollTop-e.getWidth(i)/2,a=t.pageY-r.top+document.body.scrollLeft-e.getHeight(i)/2;i.style.top=a+"px",i.style.left=l+"px",e.addClass(i,"p-ink-active")}function i(t){e.removeClass(t.currentTarget,"p-ink-active")}function o(e){for(let t=0;t<e.children.length;t++)if("string"==typeof e.children[t].className&&-1!==e.children[t].className.indexOf("p-ink"))return e.children[t];return null}const r={mounted(e,t){t.instance.$primevue&&t.instance.$primevue.config&&t.instance.$primevue.config.ripple&&(function(e){let t=document.createElement("span");t.className="p-ink",e.appendChild(t),t.addEventListener("animationend",i)}(e),function(e){e.addEventListener("mousedown",n)}(e))},unmounted(e){t(e)}};export{r as default};
1
+ import{DomHandler as e}from"primevue/utils";function t(e){let t=r(e);t&&(!function(e){e.removeEventListener("mousedown",n)}(e),t.removeEventListener("animationend",i),t.remove())}function n(t){let n=t.currentTarget,i=r(n);if(!i||"none"===getComputedStyle(i,null).display)return;if(e.removeClass(i,"p-ink-active"),!e.getHeight(i)&&!e.getWidth(i)){let t=Math.max(e.getOuterWidth(n),e.getOuterHeight(n));i.style.height=t+"px",i.style.width=t+"px"}let o=e.getOffset(n),l=t.pageX-o.left+document.body.scrollTop-e.getWidth(i)/2,s=t.pageY-o.top+document.body.scrollLeft-e.getHeight(i)/2;i.style.top=s+"px",i.style.left=l+"px",e.addClass(i,"p-ink-active")}function i(t){e.removeClass(t.currentTarget,"p-ink-active")}function r(e){for(let t=0;t<e.children.length;t++)if("string"==typeof e.children[t].className&&-1!==e.children[t].className.indexOf("p-ink"))return e.children[t];return null}const o={mounted(e,t){t.instance.$primevue&&t.instance.$primevue.config&&t.instance.$primevue.config.ripple&&(function(e){let t=document.createElement("span");t.className="p-ink",t.setAttribute("role","presentation"),e.appendChild(t),t.addEventListener("animationend",i)}(e),function(e){e.addEventListener("mousedown",n)}(e))},unmounted(e){t(e)}};export{o as default};
package/ripple/ripple.js CHANGED
@@ -13,6 +13,7 @@ this.primevue.ripple = (function (utils) {
13
13
  function create(el) {
14
14
  let ink = document.createElement('span');
15
15
  ink.className = 'p-ink';
16
+ ink.setAttribute("role", "presentation");
16
17
  el.appendChild(ink);
17
18
 
18
19
  ink.addEventListener('animationend', onAnimationEnd);
@@ -1 +1 @@
1
- this.primevue=this.primevue||{},this.primevue.ripple=function(e){"use strict";function t(e){let t=r(e);t&&(!function(e){e.removeEventListener("mousedown",n)}(e),t.removeEventListener("animationend",i),t.remove())}function n(t){let n=t.currentTarget,i=r(n);if(!i||"none"===getComputedStyle(i,null).display)return;if(e.DomHandler.removeClass(i,"p-ink-active"),!e.DomHandler.getHeight(i)&&!e.DomHandler.getWidth(i)){let t=Math.max(e.DomHandler.getOuterWidth(n),e.DomHandler.getOuterHeight(n));i.style.height=t+"px",i.style.width=t+"px"}let l=e.DomHandler.getOffset(n),o=t.pageX-l.left+document.body.scrollTop-e.DomHandler.getWidth(i)/2,a=t.pageY-l.top+document.body.scrollLeft-e.DomHandler.getHeight(i)/2;i.style.top=a+"px",i.style.left=o+"px",e.DomHandler.addClass(i,"p-ink-active")}function i(t){e.DomHandler.removeClass(t.currentTarget,"p-ink-active")}function r(e){for(let t=0;t<e.children.length;t++)if("string"==typeof e.children[t].className&&-1!==e.children[t].className.indexOf("p-ink"))return e.children[t];return null}return{mounted(e,t){t.instance.$primevue&&t.instance.$primevue.config&&t.instance.$primevue.config.ripple&&(function(e){let t=document.createElement("span");t.className="p-ink",e.appendChild(t),t.addEventListener("animationend",i)}(e),function(e){e.addEventListener("mousedown",n)}(e))},unmounted(e){t(e)}}}(primevue.utils);
1
+ this.primevue=this.primevue||{},this.primevue.ripple=function(e){"use strict";function t(e){let t=r(e);t&&(!function(e){e.removeEventListener("mousedown",n)}(e),t.removeEventListener("animationend",i),t.remove())}function n(t){let n=t.currentTarget,i=r(n);if(!i||"none"===getComputedStyle(i,null).display)return;if(e.DomHandler.removeClass(i,"p-ink-active"),!e.DomHandler.getHeight(i)&&!e.DomHandler.getWidth(i)){let t=Math.max(e.DomHandler.getOuterWidth(n),e.DomHandler.getOuterHeight(n));i.style.height=t+"px",i.style.width=t+"px"}let l=e.DomHandler.getOffset(n),o=t.pageX-l.left+document.body.scrollTop-e.DomHandler.getWidth(i)/2,a=t.pageY-l.top+document.body.scrollLeft-e.DomHandler.getHeight(i)/2;i.style.top=a+"px",i.style.left=o+"px",e.DomHandler.addClass(i,"p-ink-active")}function i(t){e.DomHandler.removeClass(t.currentTarget,"p-ink-active")}function r(e){for(let t=0;t<e.children.length;t++)if("string"==typeof e.children[t].className&&-1!==e.children[t].className.indexOf("p-ink"))return e.children[t];return null}return{mounted(e,t){t.instance.$primevue&&t.instance.$primevue.config&&t.instance.$primevue.config.ripple&&(function(e){let t=document.createElement("span");t.className="p-ink",t.setAttribute("role","presentation"),e.appendChild(t),t.addEventListener("animationend",i)}(e),function(e){e.addEventListener("mousedown",n)}(e))},unmounted(e){t(e)}}}(primevue.utils);
@@ -52,9 +52,13 @@ export interface SelectButtonProps {
52
52
  */
53
53
  dataKey?: string | undefined;
54
54
  /**
55
- * Establishes relationships between the component and label(s) where its value should be one or more element IDs.
55
+ * Whether selection can be cleared.
56
56
  */
57
- ariaLabelledBy?: string | undefined;
57
+ unselectable?: boolean | undefined;
58
+ /**
59
+ * Identifier of the underlying element.
60
+ */
61
+ "aria-labelledby"?: string | undefined;
58
62
  }
59
63
 
60
64
  export interface SelectButtonSlots {
@@ -1,9 +1,7 @@
1
1
  <template>
2
- <div :class="containerClass" role="group">
3
- <div v-for="(option, i) of options" :key="getOptionRenderKey(option)" :aria-label="getOptionLabel(option)" role="button" :aria-pressed="isSelected(option)"
4
- @click="onOptionSelect($event, option, i)" @keydown.enter.prevent="onOptionSelect($event, option, i)" @keydown.space.prevent="onOptionSelect($event, option)"
5
- :tabindex="isOptionDisabled(option) ? null : '0'" @focus="onFocus($event)" @blur="onBlur($event)" :aria-labelledby="ariaLabelledBy" v-ripple
6
- :class="getButtonClass(option)">
2
+ <div ref="container" :class="containerClass" role="group" :aria-labelledby="ariaLabelledby">
3
+ <div v-for="(option, i) of options" :key="getOptionRenderKey(option)" :tabindex="i === focusedIndex ? '0' : '-1'" :aria-label="getOptionLabel(option)" :role="multiple ? 'checkbox' : 'radio'" :aria-checked="isSelected(option)" :aria-disabled="optionDisabled"
4
+ :class="getButtonClass(option, i)" @click="onOptionSelect($event, option, i)" @keydown="onKeydown($event, option, i)" @focus="onFocus($event)" @blur="onBlur($event, option)" v-ripple>
7
5
  <slot name="option" :option="option" :index="i">
8
6
  <span class="p-button-label">{{getOptionLabel(option)}}</span>
9
7
  </slot>
@@ -12,7 +10,7 @@
12
10
  </template>
13
11
 
14
12
  <script>
15
- import {ObjectUtils} from 'primevue/utils';
13
+ import {ObjectUtils,DomHandler} from 'primevue/utils';
16
14
  import Ripple from 'primevue/ripple';
17
15
 
18
16
  export default {
@@ -25,11 +23,36 @@ export default {
25
23
  optionValue: null,
26
24
  optionDisabled: null,
27
25
  multiple: Boolean,
26
+ unselectable: {
27
+ type: Boolean,
28
+ default: true
29
+ },
28
30
  disabled: Boolean,
29
31
  dataKey: null,
30
- ariaLabelledBy: null
32
+ 'aria-labelledby': {
33
+ type: String,
34
+ default: null
35
+ }
36
+ },
37
+ data() {
38
+ return {
39
+ focusedIndex: 0
40
+ }
41
+ },
42
+ mounted() {
43
+ this.defaultTabIndexes();
31
44
  },
32
45
  methods: {
46
+ defaultTabIndexes() {
47
+ let opts = DomHandler.find(this.$refs.container, '.p-button');
48
+ let firstHighlight = DomHandler.findSingle(this.$refs.container, '.p-highlight');
49
+
50
+ for (let i = 0; i < opts.length; i++) {
51
+ if ((DomHandler.hasClass(opts[i], 'p-highlight') && ObjectUtils.equals(opts[i], firstHighlight)) || (firstHighlight === null && i == 0)) {
52
+ this.focusedIndex = i;
53
+ }
54
+ }
55
+ },
33
56
  getOptionLabel(option) {
34
57
  return this.optionLabel ? ObjectUtils.resolveFieldData(option, this.optionLabel) : option;
35
58
  },
@@ -42,25 +65,30 @@ export default {
42
65
  isOptionDisabled(option) {
43
66
  return this.optionDisabled ? ObjectUtils.resolveFieldData(option, this.optionDisabled) : false;
44
67
  },
45
- onOptionSelect(event, option) {
68
+ onOptionSelect(event, option, index) {
46
69
  if (this.disabled || this.isOptionDisabled(option)) {
47
70
  return;
48
71
  }
49
72
 
50
73
  let selected = this.isSelected(option);
74
+ if (selected && !this.unselectable) {
75
+ return;
76
+ }
77
+
51
78
  let optionValue = this.getOptionValue(option);
52
79
  let newValue;
53
80
 
54
- if(this.multiple) {
81
+ if (this.multiple) {
55
82
  if (selected)
56
83
  newValue = this.modelValue.filter(val => !ObjectUtils.equals(val, optionValue, this.equalityKey));
57
84
  else
58
85
  newValue = this.modelValue ? [...this.modelValue, optionValue]: [optionValue];
59
86
  }
60
87
  else {
61
- newValue = optionValue;
88
+ newValue = selected ? null : optionValue;
62
89
  }
63
90
 
91
+ this.focusedIndex = index;
64
92
  this.$emit('update:modelValue', newValue);
65
93
  this.$emit('change', {event: event, value: newValue});
66
94
  },
@@ -84,11 +112,60 @@ export default {
84
112
 
85
113
  return selected;
86
114
  },
115
+ onKeydown(event, option, index) {
116
+ switch (event.code) {
117
+ case 'Space': {
118
+ this.onOptionSelect(event, option, index);
119
+ event.preventDefault();
120
+ break;
121
+ }
122
+
123
+ case 'ArrowDown':
124
+ case 'ArrowRight': {
125
+ this.changeTabIndexes(event, 'next');
126
+ event.preventDefault();
127
+ break;
128
+ }
129
+
130
+ case 'ArrowUp':
131
+ case 'ArrowLeft': {
132
+ this.changeTabIndexes(event, 'prev');
133
+ event.preventDefault();
134
+ break;
135
+ }
136
+
137
+ default:
138
+ //no op
139
+ break;
140
+ }
141
+ },
142
+ changeTabIndexes(event, direction) {
143
+ let firstTabableChild, index;
144
+ for (let i = 0; i <= this.$refs.container.children.length - 1; i++) {
145
+ if (this.$refs.container.children[i].getAttribute('tabindex') === '0')
146
+ firstTabableChild = {elem: this.$refs.container.children[i], index: i};
147
+ }
148
+
149
+ if (direction === 'prev') {
150
+ if (firstTabableChild.index === 0) index = this.$refs.container.children.length - 1;
151
+ else index = firstTabableChild.index - 1;
152
+ }
153
+ else {
154
+ if (firstTabableChild.index === this.$refs.container.children.length - 1) index = 0;
155
+ else index = firstTabableChild.index + 1;
156
+ }
157
+
158
+ this.focusedIndex = index;
159
+ this.$refs.container.children[index].focus();
160
+ },
87
161
  onFocus(event) {
88
162
  this.$emit('focus', event);
89
163
  },
90
- onBlur(event) {
91
- this.$emit('blur', event);
164
+ onBlur(event, option) {
165
+ if (event.target && event.relatedTarget && event.target.parentElement !== event.relatedTarget.parentElement) {
166
+ this.defaultTabIndexes();
167
+ }
168
+ this.$emit('blur', event, option);
92
169
  },
93
170
  getButtonClass(option) {
94
171
  return ['p-button p-component', {