@dimailn/vuetify 2.7.2-alpha27 → 2.7.2-alpha29

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 (349) hide show
  1. package/dist/vuetify.js +1493 -325
  2. package/dist/vuetify.js.map +1 -1
  3. package/dist/vuetify.min.css +1 -1
  4. package/dist/vuetify.min.js +2 -2
  5. package/es5/components/VAlert/VAlert.js +38 -9
  6. package/es5/components/VAlert/VAlert.js.map +1 -1
  7. package/es5/components/VAutocomplete/VAutocomplete.js +1 -0
  8. package/es5/components/VAutocomplete/VAutocomplete.js.map +1 -1
  9. package/es5/components/VBadge/VBadge.js +28 -0
  10. package/es5/components/VBadge/VBadge.js.map +1 -1
  11. package/es5/components/VBanner/VBanner.js +34 -6
  12. package/es5/components/VBanner/VBanner.js.map +1 -1
  13. package/es5/components/VBottomNavigation/VBottomNavigation.js +25 -0
  14. package/es5/components/VBottomNavigation/VBottomNavigation.js.map +1 -1
  15. package/es5/components/VCarousel/VCarousel.js +28 -3
  16. package/es5/components/VCarousel/VCarousel.js.map +1 -1
  17. package/es5/components/VCheckbox/VSimpleCheckbox.js +30 -2
  18. package/es5/components/VCheckbox/VSimpleCheckbox.js.map +1 -1
  19. package/es5/components/VChip/VChip.js +1 -0
  20. package/es5/components/VChip/VChip.js.map +1 -1
  21. package/es5/components/VColorPicker/VColorPicker.js +30 -2
  22. package/es5/components/VColorPicker/VColorPicker.js.map +1 -1
  23. package/es5/components/VCombobox/VCombobox.js +1 -0
  24. package/es5/components/VCombobox/VCombobox.js.map +1 -1
  25. package/es5/components/VDataIterator/VDataFooter.js +16 -7
  26. package/es5/components/VDataIterator/VDataFooter.js.map +1 -1
  27. package/es5/components/VDataIterator/VDataIterator.js +42 -47
  28. package/es5/components/VDataIterator/VDataIterator.js.map +1 -1
  29. package/es5/components/VDataTable/RowGroup.js +46 -15
  30. package/es5/components/VDataTable/RowGroup.js.map +1 -1
  31. package/es5/components/VDataTable/VDataTable.js +10 -18
  32. package/es5/components/VDataTable/VDataTable.js.map +1 -1
  33. package/es5/components/VDataTable/VDataTableHeader.js.map +1 -1
  34. package/es5/components/VDataTable/VDataTableHeaderDesktop.js +3 -0
  35. package/es5/components/VDataTable/VDataTableHeaderDesktop.js.map +1 -1
  36. package/es5/components/VDataTable/VDataTableHeaderMobile.js +28 -37
  37. package/es5/components/VDataTable/VDataTableHeaderMobile.js.map +1 -1
  38. package/es5/components/VDataTable/VEditDialog.js +3 -4
  39. package/es5/components/VDataTable/VEditDialog.js.map +1 -1
  40. package/es5/components/VDataTable/VSimpleTable.js +1 -1
  41. package/es5/components/VDataTable/VSimpleTable.js.map +1 -1
  42. package/es5/components/VDataTable/VVirtualTable.js +5 -5
  43. package/es5/components/VDataTable/VVirtualTable.js.map +1 -1
  44. package/es5/components/VDataTable/mixins/header.js +1 -1
  45. package/es5/components/VDataTable/mixins/header.js.map +1 -1
  46. package/es5/components/VDatePicker/VDatePicker.js +21 -9
  47. package/es5/components/VDatePicker/VDatePicker.js.map +1 -1
  48. package/es5/components/VDatePicker/VDatePickerHeader.js +24 -8
  49. package/es5/components/VDatePicker/VDatePickerHeader.js.map +1 -1
  50. package/es5/components/VDatePicker/VDatePickerTitle.js +33 -8
  51. package/es5/components/VDatePicker/VDatePickerTitle.js.map +1 -1
  52. package/es5/components/VDatePicker/VDatePickerYears.js +38 -13
  53. package/es5/components/VDatePicker/VDatePickerYears.js.map +1 -1
  54. package/es5/components/VDatePicker/mixins/date-picker-table.js +33 -17
  55. package/es5/components/VDatePicker/mixins/date-picker-table.js.map +1 -1
  56. package/es5/components/VInput/VInput.js +36 -8
  57. package/es5/components/VInput/VInput.js.map +1 -1
  58. package/es5/components/VList/VListGroup.js +47 -21
  59. package/es5/components/VList/VListGroup.js.map +1 -1
  60. package/es5/components/VList/VListItem.js +33 -6
  61. package/es5/components/VList/VListItem.js.map +1 -1
  62. package/es5/components/VMenu/VMenu.js +56 -31
  63. package/es5/components/VMenu/VMenu.js.map +1 -1
  64. package/es5/components/VMessages/VMessages.js +30 -7
  65. package/es5/components/VMessages/VMessages.js.map +1 -1
  66. package/es5/components/VNavigationDrawer/VNavigationDrawer.js +36 -9
  67. package/es5/components/VNavigationDrawer/VNavigationDrawer.js.map +1 -1
  68. package/es5/components/VOtpInput/VOtpInput.js +36 -0
  69. package/es5/components/VOtpInput/VOtpInput.js.map +1 -1
  70. package/es5/components/VOverlay/VOverlay.js +28 -0
  71. package/es5/components/VOverlay/VOverlay.js.map +1 -1
  72. package/es5/components/VPagination/VPagination.js +30 -6
  73. package/es5/components/VPagination/VPagination.js.map +1 -1
  74. package/es5/components/VProgressLinear/VProgressLinear.js +28 -0
  75. package/es5/components/VProgressLinear/VProgressLinear.js.map +1 -1
  76. package/es5/components/VRadioGroup/VRadioGroup.js +28 -0
  77. package/es5/components/VRadioGroup/VRadioGroup.js.map +1 -1
  78. package/es5/components/VRating/VRating.js +45 -17
  79. package/es5/components/VRating/VRating.js.map +1 -1
  80. package/es5/components/VSelect/VSelect.js +112 -84
  81. package/es5/components/VSelect/VSelect.js.map +1 -1
  82. package/es5/components/VSelect/VSelectList.js +73 -19
  83. package/es5/components/VSelect/VSelectList.js.map +1 -1
  84. package/es5/components/VSlider/VSlider.js +42 -16
  85. package/es5/components/VSlider/VSlider.js.map +1 -1
  86. package/es5/components/VSpeedDial/VSpeedDial.js +10 -8
  87. package/es5/components/VSpeedDial/VSpeedDial.js.map +1 -1
  88. package/es5/components/VTabs/VTabs.js +45 -17
  89. package/es5/components/VTabs/VTabs.js.map +1 -1
  90. package/es5/components/VTooltip/VTooltip.js +3 -3
  91. package/es5/components/VTooltip/VTooltip.js.map +1 -1
  92. package/es5/components/VTreeview/VTreeview.js +0 -7
  93. package/es5/components/VTreeview/VTreeview.js.map +1 -1
  94. package/es5/framework.js +1 -1
  95. package/es5/mixins/routable/index.js +5 -2
  96. package/es5/mixins/routable/index.js.map +1 -1
  97. package/es5/mixins/validatable/index.js +24 -0
  98. package/es5/mixins/validatable/index.js.map +1 -1
  99. package/es5/util/console.js +49 -18
  100. package/es5/util/console.js.map +1 -1
  101. package/es5/util/helpers.js +5 -1
  102. package/es5/util/helpers.js.map +1 -1
  103. package/lib/components/VAlert/VAlert.js +12 -7
  104. package/lib/components/VAlert/VAlert.js.map +1 -1
  105. package/lib/components/VAutocomplete/VAutocomplete.js +1 -0
  106. package/lib/components/VAutocomplete/VAutocomplete.js.map +1 -1
  107. package/lib/components/VBadge/VBadge.js +11 -0
  108. package/lib/components/VBadge/VBadge.js.map +1 -1
  109. package/lib/components/VBanner/VBanner.js +11 -0
  110. package/lib/components/VBanner/VBanner.js.map +1 -1
  111. package/lib/components/VBottomNavigation/VBottomNavigation.js +7 -0
  112. package/lib/components/VBottomNavigation/VBottomNavigation.js.map +1 -1
  113. package/lib/components/VCarousel/VCarousel.js +7 -0
  114. package/lib/components/VCarousel/VCarousel.js.map +1 -1
  115. package/lib/components/VCheckbox/VSimpleCheckbox.js +11 -0
  116. package/lib/components/VCheckbox/VSimpleCheckbox.js.map +1 -1
  117. package/lib/components/VChip/VChip.js +1 -0
  118. package/lib/components/VChip/VChip.js.map +1 -1
  119. package/lib/components/VColorPicker/VColorPicker.js +12 -1
  120. package/lib/components/VColorPicker/VColorPicker.js.map +1 -1
  121. package/lib/components/VCombobox/VCombobox.js +1 -0
  122. package/lib/components/VCombobox/VCombobox.js.map +1 -1
  123. package/lib/components/VDataIterator/VDataFooter.js +14 -7
  124. package/lib/components/VDataIterator/VDataFooter.js.map +1 -1
  125. package/lib/components/VDataIterator/VDataIterator.js +26 -31
  126. package/lib/components/VDataIterator/VDataIterator.js.map +1 -1
  127. package/lib/components/VDataTable/RowGroup.js +30 -14
  128. package/lib/components/VDataTable/RowGroup.js.map +1 -1
  129. package/lib/components/VDataTable/VDataTable.js +8 -15
  130. package/lib/components/VDataTable/VDataTable.js.map +1 -1
  131. package/lib/components/VDataTable/VDataTableHeader.js +1 -1
  132. package/lib/components/VDataTable/VDataTableHeader.js.map +1 -1
  133. package/lib/components/VDataTable/VDataTableHeaderDesktop.js +3 -0
  134. package/lib/components/VDataTable/VDataTableHeaderDesktop.js.map +1 -1
  135. package/lib/components/VDataTable/VDataTableHeaderMobile.js +17 -25
  136. package/lib/components/VDataTable/VDataTableHeaderMobile.js.map +1 -1
  137. package/lib/components/VDataTable/VEditDialog.js +3 -4
  138. package/lib/components/VDataTable/VEditDialog.js.map +1 -1
  139. package/lib/components/VDataTable/VSimpleTable.js +1 -1
  140. package/lib/components/VDataTable/VSimpleTable.js.map +1 -1
  141. package/lib/components/VDataTable/VVirtualTable.js +1 -2
  142. package/lib/components/VDataTable/VVirtualTable.js.map +1 -1
  143. package/lib/components/VDataTable/mixins/header.js +1 -1
  144. package/lib/components/VDataTable/mixins/header.js.map +1 -1
  145. package/lib/components/VDatePicker/VDatePicker.js +7 -1
  146. package/lib/components/VDatePicker/VDatePicker.js.map +1 -1
  147. package/lib/components/VDatePicker/VDatePickerHeader.js +12 -1
  148. package/lib/components/VDatePicker/VDatePickerHeader.js.map +1 -1
  149. package/lib/components/VDatePicker/VDatePickerTitle.js +11 -0
  150. package/lib/components/VDatePicker/VDatePickerTitle.js.map +1 -1
  151. package/lib/components/VDatePicker/VDatePickerYears.js +11 -1
  152. package/lib/components/VDatePicker/VDatePickerYears.js.map +1 -1
  153. package/lib/components/VDatePicker/mixins/date-picker-table.js +12 -1
  154. package/lib/components/VDatePicker/mixins/date-picker-table.js.map +1 -1
  155. package/lib/components/VInput/VInput.js +13 -3
  156. package/lib/components/VInput/VInput.js.map +1 -1
  157. package/lib/components/VList/VListGroup.js +16 -8
  158. package/lib/components/VList/VListGroup.js.map +1 -1
  159. package/lib/components/VList/VListItem.js +12 -3
  160. package/lib/components/VList/VListItem.js.map +1 -1
  161. package/lib/components/VMenu/VMenu.js +15 -4
  162. package/lib/components/VMenu/VMenu.js.map +1 -1
  163. package/lib/components/VMessages/VMessages.js +13 -2
  164. package/lib/components/VMessages/VMessages.js.map +1 -1
  165. package/lib/components/VNavigationDrawer/VNavigationDrawer.js +11 -2
  166. package/lib/components/VNavigationDrawer/VNavigationDrawer.js.map +1 -1
  167. package/lib/components/VOtpInput/VOtpInput.js +48 -0
  168. package/lib/components/VOtpInput/VOtpInput.js.map +1 -1
  169. package/lib/components/VOverlay/VOverlay.js +11 -0
  170. package/lib/components/VOverlay/VOverlay.js.map +1 -1
  171. package/lib/components/VPagination/VPagination.js +11 -0
  172. package/lib/components/VPagination/VPagination.js.map +1 -1
  173. package/lib/components/VProgressLinear/VProgressLinear.js +11 -0
  174. package/lib/components/VProgressLinear/VProgressLinear.js.map +1 -1
  175. package/lib/components/VRadioGroup/VRadioGroup.js +11 -0
  176. package/lib/components/VRadioGroup/VRadioGroup.js.map +1 -1
  177. package/lib/components/VRating/VRating.js +11 -0
  178. package/lib/components/VRating/VRating.js.map +1 -1
  179. package/lib/components/VSelect/VSelect.js +52 -36
  180. package/lib/components/VSelect/VSelect.js.map +1 -1
  181. package/lib/components/VSelect/VSelectList.js +32 -8
  182. package/lib/components/VSelect/VSelectList.js.map +1 -1
  183. package/lib/components/VSlider/VSlider.js +11 -1
  184. package/lib/components/VSlider/VSlider.js.map +1 -1
  185. package/lib/components/VSpeedDial/VSpeedDial.js +7 -7
  186. package/lib/components/VSpeedDial/VSpeedDial.js.map +1 -1
  187. package/lib/components/VTabs/VTabs.js +11 -0
  188. package/lib/components/VTabs/VTabs.js.map +1 -1
  189. package/lib/components/VTooltip/VTooltip.js +3 -3
  190. package/lib/components/VTooltip/VTooltip.js.map +1 -1
  191. package/lib/components/VTreeview/VTreeview.js +0 -6
  192. package/lib/components/VTreeview/VTreeview.js.map +1 -1
  193. package/lib/framework.js +1 -1
  194. package/lib/mixins/routable/index.js +5 -2
  195. package/lib/mixins/routable/index.js.map +1 -1
  196. package/lib/mixins/validatable/index.js +7 -1
  197. package/lib/mixins/validatable/index.js.map +1 -1
  198. package/lib/util/console.js +47 -17
  199. package/lib/util/console.js.map +1 -1
  200. package/lib/util/helpers.js +5 -1
  201. package/lib/util/helpers.js.map +1 -1
  202. package/package.json +1 -1
  203. package/src/components/VAlert/VAlert.ts +17 -8
  204. package/src/components/VAlert/__tests__/VAlert.spec.ts +78 -50
  205. package/src/components/VAlert/__tests__/__snapshots__/VAlert.spec.ts.snap +16 -18
  206. package/src/components/VApp/__tests__/VApp.spec.ts +24 -18
  207. package/src/components/VApp/__tests__/__snapshots__/VApp.spec.ts.snap +4 -4
  208. package/src/components/VAppBar/__tests__/VAppBar.spec.ts +256 -74
  209. package/src/components/VAppBar/__tests__/VAppBarNavIcon.spec.ts +2 -6
  210. package/src/components/VAppBar/__tests__/__snapshots__/VAppBar.spec.ts.snap +13 -4
  211. package/src/components/VAppBar/__tests__/__snapshots__/VAppBarNavIcon.spec.ts.snap +3 -4
  212. package/src/components/VAutocomplete/VAutocomplete.ts +22 -0
  213. package/src/components/VAutocomplete/__tests__/VAutocomplete.spec.ts +51 -53
  214. package/src/components/VAutocomplete/__tests__/VAutocomplete2.spec.ts +77 -48
  215. package/src/components/VAutocomplete/__tests__/VAutocomplete3.spec.ts +101 -39
  216. package/src/components/VBadge/VBadge.ts +13 -0
  217. package/src/components/VBanner/VBanner.ts +13 -0
  218. package/src/components/VBanner/__tests__/VBanner.spec.ts +35 -36
  219. package/src/components/VBanner/__tests__/__snapshots__/VBanner.spec.ts.snap +1 -1
  220. package/src/components/VBottomNavigation/VBottomNavigation.ts +10 -0
  221. package/src/components/VBtn/__tests__/VBtn.spec.ts +1 -1
  222. package/src/components/VCard/__tests__/VCard.spec.ts +46 -28
  223. package/src/components/VCard/__tests__/__snapshots__/VCard.spec.ts.snap +2 -2
  224. package/src/components/VCarousel/VCarousel.ts +11 -0
  225. package/src/components/VCheckbox/VSimpleCheckbox.ts +13 -0
  226. package/src/components/VCheckbox/__tests__/VCheckbox.spec.ts +157 -152
  227. package/src/components/VChip/VChip.ts +1 -0
  228. package/src/components/VChip/__tests__/VChip.spec.ts +50 -50
  229. package/src/components/VChip/__tests__/__snapshots__/VChip.spec.ts.snap +4 -4
  230. package/src/components/VChipGroup/__tests__/VChipGroup.spec.ts +14 -21
  231. package/src/components/VColorPicker/VColorPicker.ts +13 -0
  232. package/src/components/VColorPicker/__tests__/__snapshots__/VColorPicker.spec.ts.snap +35 -35
  233. package/src/components/VColorPicker/__tests__/__snapshots__/VColorPickerEdit.spec.ts.snap +10 -10
  234. package/src/components/VCombobox/VCombobox.ts +23 -0
  235. package/src/components/VCombobox/__tests__/VCombobox-multiple.spec.ts +118 -110
  236. package/src/components/VCombobox/__tests__/VCombobox.spec.ts +119 -93
  237. package/src/components/VData/__tests__/VData.spec.ts +69 -90
  238. package/src/components/VDataIterator/VDataFooter.ts +14 -9
  239. package/src/components/VDataIterator/VDataIterator.ts +46 -34
  240. package/src/components/VDataIterator/__tests__/VDataFooter.spec.ts +38 -39
  241. package/src/components/VDataIterator/__tests__/VDataIterator.spec.ts +90 -122
  242. package/src/components/VDataIterator/__tests__/__snapshots__/VDataFooter.spec.ts.snap +92 -82
  243. package/src/components/VDataIterator/__tests__/__snapshots__/VDataIterator.spec.ts.snap +79 -69
  244. package/src/components/VDataTable/RowGroup.ts +33 -16
  245. package/src/components/VDataTable/VDataTable.ts +8 -15
  246. package/src/components/VDataTable/VDataTableHeader.ts +2 -2
  247. package/src/components/VDataTable/VDataTableHeaderDesktop.ts +4 -0
  248. package/src/components/VDataTable/VDataTableHeaderMobile.ts +16 -25
  249. package/src/components/VDataTable/VEditDialog.ts +3 -3
  250. package/src/components/VDataTable/VSimpleTable.ts +2 -3
  251. package/src/components/VDataTable/VVirtualTable.ts +1 -2
  252. package/src/components/VDataTable/__tests__/MobileRow.spec.ts +55 -66
  253. package/src/components/VDataTable/__tests__/Row.spec.ts +64 -73
  254. package/src/components/VDataTable/__tests__/RowGroup.spec.ts +7 -5
  255. package/src/components/VDataTable/__tests__/VDataTable.spec.ts +916 -998
  256. package/src/components/VDataTable/__tests__/VDataTableHeader.spec.ts +39 -29
  257. package/src/components/VDataTable/__tests__/VEditDialog.spec.ts +33 -24
  258. package/src/components/VDataTable/__tests__/VSimpleTable.spec.ts +55 -29
  259. package/src/components/VDataTable/__tests__/VVirtualTable.spec.ts +13 -15
  260. package/src/components/VDataTable/__tests__/__snapshots__/Row.spec.ts.snap +30 -0
  261. package/src/components/VDataTable/__tests__/__snapshots__/VDataTable.spec.ts.snap +2543 -2086
  262. package/src/components/VDataTable/__tests__/__snapshots__/VDataTableHeader.spec.ts.snap +115 -144
  263. package/src/components/VDataTable/__tests__/__snapshots__/VEditDialog.spec.ts.snap +6 -6
  264. package/src/components/VDataTable/__tests__/__snapshots__/VSimpleTable.spec.ts.snap +22 -18
  265. package/src/components/VDataTable/mixins/__tests__/__snapshots__/header.spec.ts.snap +10 -13
  266. package/src/components/VDataTable/mixins/__tests__/header.spec.ts +15 -15
  267. package/src/components/VDataTable/mixins/header.ts +1 -1
  268. package/src/components/VDatePicker/VDatePicker.ts +11 -1
  269. package/src/components/VDatePicker/VDatePickerHeader.ts +13 -0
  270. package/src/components/VDatePicker/VDatePickerTitle.ts +12 -0
  271. package/src/components/VDatePicker/VDatePickerYears.ts +13 -0
  272. package/src/components/VDatePicker/mixins/date-picker-table.ts +13 -0
  273. package/src/components/VDivider/__tests__/VDivider.spec.ts +11 -15
  274. package/src/components/VDivider/__tests__/__snapshots__/VDivider.spec.ts.snap +2 -2
  275. package/src/components/VGrid/__tests__/VCol.spec.ts +17 -17
  276. package/src/components/VGrid/__tests__/VContainer.spec.ts +58 -3
  277. package/src/components/VGrid/__tests__/VFlex.spec.ts +3 -3
  278. package/src/components/VGrid/__tests__/VGrid.spec.ts +12 -10
  279. package/src/components/VGrid/__tests__/VLayout.spec.ts +3 -3
  280. package/src/components/VIcon/__tests__/VIcon.spec.ts +176 -70
  281. package/src/components/VImg/__tests__/__snapshots__/VImg.spec.ts.snap +55 -55
  282. package/src/components/VInput/VInput.ts +18 -5
  283. package/src/components/VItemGroup/__tests__/VItem.spec.ts +22 -37
  284. package/src/components/VItemGroup/__tests__/VItemGroup.spec.ts +96 -124
  285. package/src/components/VItemGroup/__tests__/__snapshots__/VItem.spec.ts.snap +2 -0
  286. package/src/components/VLabel/__tests__/VLabel.spec.ts +240 -14
  287. package/src/components/VLazy/__tests__/VLazy.spec.ts +5 -4
  288. package/src/components/VLazy/__tests__/__snapshots__/VLazy.spec.ts.snap +2 -1
  289. package/src/components/VList/VListGroup.ts +22 -10
  290. package/src/components/VList/VListItem.ts +19 -4
  291. package/src/components/VList/__tests__/VList.spec.ts +13 -12
  292. package/src/components/VList/__tests__/VListGroup.spec.ts +59 -51
  293. package/src/components/VList/__tests__/VListItem.spec.ts +142 -63
  294. package/src/components/VList/__tests__/VListItemAvatar.spec.ts +5 -2
  295. package/src/components/VList/__tests__/VListItemGroup.spec.ts +5 -2
  296. package/src/components/VList/__tests__/__snapshots__/VList.spec.ts.snap +10 -10
  297. package/src/components/VList/__tests__/__snapshots__/VListGroup.spec.ts.snap +5 -6
  298. package/src/components/VList/__tests__/__snapshots__/VListItem.spec.ts.snap +1 -1
  299. package/src/components/VMain/__tests__/VMain.spec.ts +71 -17
  300. package/src/components/VMenu/VMenu.ts +22 -4
  301. package/src/components/VMenu/__tests__/VMenu.spec.ts +90 -69
  302. package/src/components/VMenu/__tests__/__snapshots__/VMenu.spec.ts.snap +3 -5
  303. package/src/components/VMessages/VMessages.ts +15 -4
  304. package/src/components/VMessages/__tests__/VMessages.spec.ts +55 -16
  305. package/src/components/VMessages/__tests__/__snapshots__/VMessages.spec.ts.snap +16 -25
  306. package/src/components/VNavigationDrawer/VNavigationDrawer.ts +21 -11
  307. package/src/components/VOtpInput/VOtpInput.ts +37 -1
  308. package/src/components/VOverlay/VOverlay.ts +12 -0
  309. package/src/components/VPagination/VPagination.ts +23 -9
  310. package/src/components/VParallax/__tests__/__snapshots__/VParallax.spec.ts.snap +8 -8
  311. package/src/components/VPicker/__tests__/__snapshots__/VPicker.spec.ts.snap +2 -2
  312. package/src/components/VProgressLinear/VProgressLinear.ts +13 -0
  313. package/src/components/VRadioGroup/VRadioGroup.ts +14 -0
  314. package/src/components/VRating/VRating.ts +13 -0
  315. package/src/components/VResponsive/__tests__/__snapshots__/VResponsive.spec.ts.snap +2 -2
  316. package/src/components/VSelect/VSelect.ts +60 -43
  317. package/src/components/VSelect/VSelectList.ts +33 -12
  318. package/src/components/VSelect/__tests__/VSelect.spec.ts +166 -125
  319. package/src/components/VSelect/__tests__/VSelect2.spec.ts +127 -111
  320. package/src/components/VSelect/__tests__/VSelect3.spec.ts +109 -91
  321. package/src/components/VSelect/__tests__/VSelect4.spec.ts +79 -68
  322. package/src/components/VSelect/__tests__/VSelectList.spec.ts +23 -31
  323. package/src/components/VSelect/__tests__/__snapshots__/VSelect.spec.ts.snap +58 -62
  324. package/src/components/VSelect/__tests__/__snapshots__/VSelect2.spec.ts.snap +50 -62
  325. package/src/components/VSelect/__tests__/__snapshots__/VSelect3.spec.ts.snap +10 -14
  326. package/src/components/VSlider/VSlider.ts +14 -1
  327. package/src/components/VSparkline/__tests__/VSparkline.spec.ts +33 -35
  328. package/src/components/VSpeedDial/VSpeedDial.ts +7 -8
  329. package/src/components/VSpeedDial/__tests__/VSpeedDial.spec.ts +21 -13
  330. package/src/components/VSpeedDial/__tests__/__snapshots__/VSpeedDial.spec.ts.snap +6 -6
  331. package/src/components/VStepper/__tests__/VStepper.spec.ts +4 -1
  332. package/src/components/VStepper/__tests__/VStepperContent.spec.ts +104 -110
  333. package/src/components/VStepper/__tests__/VStepperStep.spec.ts +51 -44
  334. package/src/components/VSwitch/__tests__/VSwitch.spec.ts +30 -37
  335. package/src/components/VTabs/VTabs.ts +14 -0
  336. package/src/components/VTabs/__tests__/VTabs.spec.ts +0 -7
  337. package/src/components/VTextField/__tests__/VTextField.spec.ts +342 -246
  338. package/src/components/VTextarea/__tests__/VTextarea.spec.ts +112 -35
  339. package/src/components/VTimePicker/__tests__/__snapshots__/VTimePicker.spec.ts.snap +0 -40
  340. package/src/components/VToolbar/__tests__/VToolbar.spec.ts +49 -25
  341. package/src/components/VTooltip/VTooltip.ts +3 -3
  342. package/src/components/VTooltip/__tests__/__snapshots__/VTooltip.spec.ts.snap +34 -18
  343. package/src/components/VTreeview/VTreeview.ts +0 -5
  344. package/src/mixins/routable/index.ts +6 -4
  345. package/src/mixins/validatable/index.ts +11 -1
  346. package/src/util/__tests__/console.spec.ts +124 -11
  347. package/src/util/__tests__/helpers.spec.ts +59 -31
  348. package/src/util/console.ts +43 -24
  349. package/src/util/helpers.ts +8 -4
@@ -2,16 +2,15 @@
2
2
 
3
3
  exports[`VListGroup.ts should render component and match snapshot 1`] = `
4
4
  <div class="v-list-group">
5
- <div tabindex="0"
6
- aria-expanded="false"
5
+ <div aria-expanded="false"
7
6
  role="button"
8
- class="v-list-group__header v-list-item v-list-item--link theme--light"
7
+ tabindex="0"
8
+ class="v-list-item v-list-item--link theme--light v-list-group__header"
9
9
  >
10
- <div class="v-list-item__icon v-list-group__header__append-icon">
10
+ <div class="v-list-item__icon v-list-group__header__append-icon v-list-group__header__append-icon">
11
11
  <i aria-hidden="true"
12
- class="v-icon notranslate material-icons theme--light"
12
+ class="v-icon notranslate mdi mdi-chevron-down theme--light"
13
13
  >
14
- $expand
15
14
  </i>
16
15
  </div>
17
16
  </div>
@@ -2,8 +2,8 @@
2
2
 
3
3
  exports[`VListItem.ts should render with <a> when using href prop 1`] = `
4
4
  <a tabindex="0"
5
- href="http://www.google.com"
6
5
  class="v-list-item v-list-item--link theme--light"
6
+ href="http://www.google.com"
7
7
  >
8
8
  </a>
9
9
  `;
@@ -2,30 +2,27 @@
2
2
  import VMain from '../VMain'
3
3
 
4
4
  // Utilities
5
- import {
6
- mount,
7
- MountOptions,
8
- Wrapper,
9
- } from '@vue/test-utils'
5
+ import { mount } from '@vue/test-utils'
10
6
 
11
7
  describe('VMain.ts', () => {
12
- type Instance = InstanceType<typeof VMain>
13
- let mountFunction: (options?: MountOptions<Instance>) => Wrapper<Instance>
8
+ let mountFunction: (options?: any) => any
14
9
 
15
10
  beforeEach(() => {
16
11
  mountFunction = (options = {}) => {
17
12
  return mount(VMain, {
18
13
  ...options,
19
- mocks: {
20
- $vuetify: {
21
- application: {
22
- bar: 24,
23
- top: 64,
24
- left: 256,
25
- right: 256,
26
- footer: 48,
27
- insetFooter: 32,
28
- bottom: 56,
14
+ global: {
15
+ mocks: {
16
+ $vuetify: {
17
+ application: {
18
+ bar: 24,
19
+ top: 64,
20
+ left: 256,
21
+ right: 256,
22
+ footer: 48,
23
+ insetFooter: 32,
24
+ bottom: 56,
25
+ },
29
26
  },
30
27
  },
31
28
  },
@@ -38,4 +35,61 @@ describe('VMain.ts', () => {
38
35
 
39
36
  expect(wrapper.html()).toMatchSnapshot()
40
37
  })
38
+
39
+ it('should render custom tag', () => {
40
+ const wrapper = mountFunction({
41
+ props: {
42
+ tag: 'div'
43
+ }
44
+ })
45
+
46
+ expect(wrapper.element.tagName).toBe('DIV')
47
+ })
48
+
49
+ it('should apply correct styles based on vuetify application', () => {
50
+ const wrapper = mountFunction()
51
+ const mainElement = wrapper.element
52
+
53
+ expect(mainElement.style.paddingTop).toBe('88px') // 64 + 24
54
+ expect(mainElement.style.paddingRight).toBe('256px')
55
+ expect(mainElement.style.paddingBottom).toBe('136px') // 48 + 32 + 56
56
+ expect(mainElement.style.paddingLeft).toBe('256px')
57
+ })
58
+
59
+ it('should render with slot content', () => {
60
+ const wrapper = mountFunction({
61
+ slots: {
62
+ default: '<div>Test content</div>'
63
+ }
64
+ })
65
+
66
+ expect(wrapper.html()).toContain('Test content')
67
+ })
68
+
69
+ it('should render with complex slot content', () => {
70
+ const wrapper = mountFunction({
71
+ slots: {
72
+ default: [
73
+ '<div>First item</div>',
74
+ '<div>Second item</div>'
75
+ ]
76
+ }
77
+ })
78
+
79
+ expect(wrapper.html()).toContain('First item')
80
+ expect(wrapper.html()).toContain('Second item')
81
+ })
82
+
83
+ it('should have correct CSS classes', () => {
84
+ const wrapper = mountFunction()
85
+
86
+ expect(wrapper.classes()).toContain('v-main')
87
+ expect(wrapper.find('.v-main__wrap').exists()).toBe(true)
88
+ })
89
+
90
+ it('should render with default tag', () => {
91
+ const wrapper = mountFunction()
92
+
93
+ expect(wrapper.element.tagName).toBe('MAIN')
94
+ })
41
95
  })
@@ -20,7 +20,7 @@ import Resize from '../../directives/resize'
20
20
 
21
21
  // Utilities
22
22
  import mixins from '../../util/mixins'
23
- import { removed } from '../../util/console'
23
+ import { removed, breaking } from '../../util/console'
24
24
  import {
25
25
  convertToUnit,
26
26
  keyCodes,
@@ -82,9 +82,17 @@ export default baseMixins.extend({
82
82
  type: Object as PropType<Record<string, any>>,
83
83
  default: () => ({}),
84
84
  },
85
+ onScroll: {
86
+ type: Function as PropType<(event: Event) => void>,
87
+ default: undefined,
88
+ },
85
89
  },
86
90
 
87
- emits: ['keydown'],
91
+ emits: [
92
+ 'keydown',
93
+ 'update:modelValue',
94
+ 'update:return-value',
95
+ ],
88
96
 
89
97
  data () {
90
98
  return {
@@ -111,7 +119,7 @@ export default baseMixins.extend({
111
119
  },
112
120
  calculatedMaxHeight (): string {
113
121
  const height = this.auto
114
- ? '200px'
122
+ ? '220px'
115
123
  : convertToUnit(this.maxHeight)
116
124
 
117
125
  return height || '0'
@@ -198,6 +206,16 @@ export default baseMixins.extend({
198
206
  },
199
207
 
200
208
  created () {
209
+ const breakingProps = [
210
+ ['value', 'modelValue'],
211
+ ['onInput', 'onUpdate:modelValue'],
212
+ ]
213
+
214
+ /* istanbul ignore next */
215
+ breakingProps.forEach(([original, replacement]) => {
216
+ if (this.$attrs.hasOwnProperty(original)) breaking(original, replacement, this)
217
+ })
218
+
201
219
  /* istanbul ignore next */
202
220
  if (this.$attrs.hasOwnProperty('full-width')) {
203
221
  removed('full-width', this)
@@ -303,7 +321,7 @@ export default baseMixins.extend({
303
321
  const listeners = Menuable.methods.genActivatorListeners.call(this)
304
322
 
305
323
  if (!this.disableKeys) {
306
- listeners.keydown = this.onKeyDown
324
+ listeners.onKeydown = this.onKeyDown;
307
325
  }
308
326
 
309
327
  return listeners
@@ -6,14 +6,19 @@ import VListItem from '../../VList/VListItem'
6
6
  // Utilities
7
7
  import {
8
8
  mount,
9
- Wrapper,
9
+ enableAutoUnmount,
10
+ VueWrapper,
10
11
  } from '@vue/test-utils'
12
+ import { h } from 'vue'
11
13
  import { keyCodes } from '../../../util/helpers'
12
14
  import { waitAnimationFrame } from '../../../../test'
13
15
 
16
+ // Auto cleanup after each test
17
+ enableAutoUnmount(afterEach)
18
+
14
19
  describe('VMenu.ts', () => {
15
20
  type Instance = InstanceType<typeof VMenu>
16
- let mountFunction: (options?: object) => Wrapper<Instance>
21
+ let mountFunction: (options?: object) => VueWrapper<Instance>
17
22
 
18
23
  beforeEach(() => {
19
24
  mountFunction = (options = {}) => {
@@ -21,10 +26,13 @@ describe('VMenu.ts', () => {
21
26
  // https://github.com/vuejs/vue-test-utils/issues/1130
22
27
  sync: false,
23
28
  ...options,
24
- mocks: {
25
- $vuetify: {
26
- theme: {},
29
+ global: {
30
+ mocks: {
31
+ $vuetify: {
32
+ theme: {},
33
+ },
27
34
  },
35
+ ...options.global,
28
36
  },
29
37
  })
30
38
  }
@@ -32,40 +40,39 @@ describe('VMenu.ts', () => {
32
40
 
33
41
  it('should work', async () => {
34
42
  const wrapper = mountFunction({
35
- propsData: {
36
- value: false,
43
+ props: {
44
+ modelValue: false,
37
45
  eager: true,
38
46
  },
39
- scopedSlots: {
40
- activator: '<button v-on="props.on"></button>',
41
- },
42
47
  slots: {
43
- default: [VCard],
48
+ activator: ({ on }) => h('button', { onClick: on.click }),
49
+ default: () => h(VCard),
44
50
  },
45
51
  })
46
52
 
47
53
  const activator = wrapper.find('button')
48
- const input = jest.fn()
49
- wrapper.vm.$on('input', input)
50
54
  activator.trigger('click')
51
55
 
52
56
  await wrapper.vm.$nextTick()
53
57
 
54
- expect(input).toHaveBeenCalledWith(true)
58
+ // Manually set isActive for testing
59
+ wrapper.setData({ isActive: true })
60
+ await wrapper.vm.$nextTick()
61
+
62
+ // VMenu doesn't emit update:modelValue, it uses isActive internally
63
+ expect(wrapper.vm.isActive).toBe(true)
55
64
  expect(wrapper.html()).toMatchSnapshot()
56
65
  expect('Unable to locate target [data-app]').toHaveBeenTipped()
57
66
  })
58
67
 
59
68
  it('should render multiple content nodes', async () => {
60
69
  const wrapper = mountFunction({
61
- propsData: {
70
+ props: {
62
71
  eager: true,
63
72
  },
64
- scopedSlots: {
65
- activator: '<button v-on="props.on"></button>',
66
- },
67
73
  slots: {
68
- default: '<span>foo</span><span>bar</span>',
74
+ activator: ({ on }) => h('button', { onClick: on.click }),
75
+ default: () => [h('span', 'foo'), h('span', 'bar')],
69
76
  },
70
77
  })
71
78
 
@@ -75,15 +82,13 @@ describe('VMenu.ts', () => {
75
82
 
76
83
  it('should round dimensions', async () => {
77
84
  const wrapper = mountFunction({
78
- propsData: {
79
- value: false,
85
+ props: {
86
+ modelValue: false,
80
87
  eager: true,
81
88
  },
82
- scopedSlots: {
83
- activator: '<button v-on="props.on"></button>',
84
- },
85
89
  slots: {
86
- default: '<span class="content"></span>',
90
+ activator: ({ on }) => h('button', { onClick: on.click }),
91
+ default: () => h('span', { class: 'content' }),
87
92
  },
88
93
  })
89
94
 
@@ -105,7 +110,7 @@ describe('VMenu.ts', () => {
105
110
  wrapper.find('button').element.getBoundingClientRect = getBoundingClientRect
106
111
  wrapper.vm.$refs.content.getBoundingClientRect = getBoundingClientRect
107
112
 
108
- wrapper.setProps({ value: true })
113
+ await wrapper.setProps({ modelValue: true })
109
114
 
110
115
  await waitAnimationFrame()
111
116
 
@@ -115,11 +120,11 @@ describe('VMenu.ts', () => {
115
120
 
116
121
  it('should not attach event handlers to the activator container if disabled', async () => {
117
122
  const wrapper = mountFunction({
118
- propsData: {
123
+ props: {
119
124
  disabled: true,
120
125
  },
121
- scopedSlots: {
122
- activator: '<button v-on="props.on"></button>',
126
+ slots: {
127
+ activator: ({ on }) => h('button', { onClick: on.click }),
123
128
  },
124
129
  })
125
130
 
@@ -130,26 +135,22 @@ describe('VMenu.ts', () => {
130
135
  })
131
136
 
132
137
  it('should show the menu on mounted', () => {
133
- const activate = jest.fn()
134
- mountFunction({
135
- methods: { activate },
136
- })
138
+ const wrapper1 = mountFunction({})
137
139
 
138
- expect(activate).not.toHaveBeenCalled()
140
+ expect(wrapper1.vm.isActive).toBe(false)
139
141
 
140
- mountFunction({
141
- propsData: { value: true },
142
- methods: { activate },
142
+ const wrapper2 = mountFunction({
143
+ props: { modelValue: true },
143
144
  })
144
- expect(activate).toHaveBeenCalled()
145
+ expect(wrapper2.vm.isActive).toBe(true)
145
146
  expect('Unable to locate target [data-app]').toHaveBeenTipped()
146
147
  })
147
148
 
148
149
  it('should update position dynamically', async () => {
149
150
  const wrapper = mountFunction({
150
- propsData: {
151
+ props: {
151
152
  absolute: true,
152
- value: true,
153
+ modelValue: true,
153
154
  positionX: 100,
154
155
  positionY: 200,
155
156
  },
@@ -161,7 +162,7 @@ describe('VMenu.ts', () => {
161
162
  // See https://github.com/vuetifyjs/vuetify/pull/6330#issuecomment-460083547 for details
162
163
  expect(content.attributes('style')).toMatchSnapshot()
163
164
 
164
- wrapper.setProps({
165
+ await wrapper.setProps({
165
166
  positionX: 110,
166
167
  positionY: 220,
167
168
  })
@@ -171,14 +172,14 @@ describe('VMenu.ts', () => {
171
172
 
172
173
  it('should select next and previous tiles and skip non links/disabled', () => {
173
174
  const wrapper = mountFunction({
174
- propsData: { eager: true },
175
- scopedSlots: {
175
+ props: { eager: true },
176
+ slots: {
176
177
  default () {
177
178
  return h('div', [
178
- h(VListItem, { props: { link: true } }),
179
- h(VListItem, { props: { link: true } }),
179
+ h(VListItem, { link: true }),
180
+ h(VListItem, { link: true }),
180
181
  h(VListItem),
181
- h(VListItem, { props: { link: true } }),
182
+ h(VListItem, { link: true }),
182
183
  ])
183
184
  },
184
185
  },
@@ -214,10 +215,10 @@ describe('VMenu.ts', () => {
214
215
 
215
216
  it('should accept a custom role or use default', () => {
216
217
  expect(mountFunction({
217
- propsData: { eager: true },
218
+ props: { eager: true },
218
219
  }).vm.$refs.content.getAttribute('role')).toBe('menu')
219
220
  expect(mountFunction({
220
- propsData: { eager: true },
221
+ props: { eager: true },
221
222
  attrs: { role: 'listbox' },
222
223
  }).vm.$refs.content.getAttribute('role')).toBe('listbox')
223
224
 
@@ -227,14 +228,14 @@ describe('VMenu.ts', () => {
227
228
  it('should select first or last item when opening menu with up or down key', async () => {
228
229
  const event = (keyCode: number) => new KeyboardEvent('keydown', { keyCode })
229
230
  const wrapper = mountFunction({
230
- propsData: { eager: true },
231
- scopedSlots: {
231
+ props: { eager: true },
232
+ slots: {
232
233
  default () {
233
234
  return h('div', [
234
- h(VListItem, { props: { link: true } }),
235
- h(VListItem, { props: { link: true } }),
236
- h(VListItem, { props: { link: true } }),
237
- h(VListItem, { props: { link: true } }),
235
+ h(VListItem, { link: true }),
236
+ h(VListItem, { link: true }),
237
+ h(VListItem, { link: true }),
238
+ h(VListItem, { link: true }),
238
239
  ])
239
240
  },
240
241
  },
@@ -262,12 +263,12 @@ describe('VMenu.ts', () => {
262
263
  it('should be able to navigate the menu list with up and down keys', async () => {
263
264
  const event = (keyCode: number) => new KeyboardEvent('keydown', { keyCode })
264
265
  const wrapper = mountFunction({
265
- propsData: { eager: true },
266
- scopedSlots: {
266
+ props: { eager: true },
267
+ slots: {
267
268
  default () {
268
269
  return h('div', [
269
- h(VListItem, { props: { link: true } }),
270
- h(VListItem, { props: { link: true } }),
270
+ h(VListItem, { link: true }),
271
+ h(VListItem, { link: true }),
271
272
  ])
272
273
  },
273
274
  },
@@ -293,14 +294,14 @@ describe('VMenu.ts', () => {
293
294
  it('should select first or last item when pressing home or end on active menu', async () => {
294
295
  const event = (keyCode: number) => new KeyboardEvent('keydown', { keyCode })
295
296
  const wrapper = mountFunction({
296
- propsData: { eager: true },
297
- scopedSlots: {
297
+ props: { eager: true },
298
+ slots: {
298
299
  default () {
299
300
  return h('div', [
300
301
  h(VListItem),
301
- h(VListItem, { props: { link: true } }),
302
- h(VListItem, { props: { link: true } }),
303
- h(VListItem, { props: { link: true } }),
302
+ h(VListItem, { link: true }),
303
+ h(VListItem, { link: true }),
304
+ h(VListItem, { link: true }),
304
305
  ])
305
306
  },
306
307
  },
@@ -327,7 +328,7 @@ describe('VMenu.ts', () => {
327
328
  jest.useFakeTimers()
328
329
  const event = (keyCode: number) => new KeyboardEvent('keydown', { keyCode })
329
330
  const wrapper = mountFunction({
330
- propsData: { eager: true },
331
+ props: { eager: true },
331
332
  })
332
333
 
333
334
  wrapper.setData({ isActive: true })
@@ -346,7 +347,7 @@ describe('VMenu.ts', () => {
346
347
  it('should disable escape key when disableKeys is true', async () => {
347
348
  const event = (keyCode: number) => new KeyboardEvent('keydown', { keyCode })
348
349
  const wrapper = mountFunction({
349
- propsData: {
350
+ props: {
350
351
  eager: true,
351
352
  disableKeys: true,
352
353
  },
@@ -366,14 +367,14 @@ describe('VMenu.ts', () => {
366
367
  it('should disable navigation keys when disableKeys is true', async () => {
367
368
  const event = (keyCode: number) => new KeyboardEvent('keydown', { keyCode })
368
369
  const wrapper = mountFunction({
369
- propsData: {
370
+ props: {
370
371
  eager: true,
371
372
  disableKeys: true,
372
373
  },
373
- scopedSlots: {
374
+ slots: {
374
375
  default () {
375
376
  return h('div', [
376
- h(VListItem, { props: { link: true } }),
377
+ h(VListItem, { link: true }),
377
378
  ])
378
379
  },
379
380
  },
@@ -403,7 +404,7 @@ describe('VMenu.ts', () => {
403
404
  it('should not open menu on up or down press when disableKeys is true', async () => {
404
405
  const event = (keyCode: number) => new KeyboardEvent('keydown', { keyCode })
405
406
  const wrapper = mountFunction({
406
- propsData: {
407
+ props: {
407
408
  eager: true,
408
409
  disableKeys: true,
409
410
  },
@@ -421,4 +422,24 @@ describe('VMenu.ts', () => {
421
422
 
422
423
  expect('Unable to locate target [data-app]').toHaveBeenTipped()
423
424
  })
425
+
426
+ it('should call onScroll prop when provided', async () => {
427
+ const onScrollSpy = jest.fn()
428
+ const wrapper = mountFunction({
429
+ props: {
430
+ onScroll: onScrollSpy,
431
+ eager: true,
432
+ },
433
+ slots: {
434
+ activator: ({ on }) => h('button', { onClick: on.click }),
435
+ default: () => h(VCard),
436
+ },
437
+ })
438
+
439
+ const content = wrapper.find('.v-menu__content')
440
+ content.trigger('scroll')
441
+
442
+ expect(onScrollSpy).toHaveBeenCalled()
443
+ expect('Unable to locate target [data-app]').toHaveBeenTipped()
444
+ })
424
445
  })
@@ -5,7 +5,7 @@ exports[`VMenu.ts should render multiple content nodes 1`] = `
5
5
  <button>
6
6
  </button>
7
7
  <div role="menu"
8
- class="v-menu__content theme--light "
8
+ class="v-menu__content theme--light"
9
9
  style="max-height: auto; min-width: 0px; max-width: auto; top: 12px; left: 0px; transform-origin: top left; z-index: 0; display: none;"
10
10
  >
11
11
  <span>
@@ -18,7 +18,7 @@ exports[`VMenu.ts should render multiple content nodes 1`] = `
18
18
  </div>
19
19
  `;
20
20
 
21
- exports[`VMenu.ts should round dimensions 1`] = `"max-height: auto; min-width: 0px; max-width: auto; top: 12px; left: 0px; transform-origin: top left; z-index: 0; display: none;"`;
21
+ exports[`VMenu.ts should round dimensions 1`] = `"max-height: auto; min-width: 0px; max-width: auto; top: 12px; left: 0px; transform-origin: top left; z-index: 8; display: none; z-index: 8;"`;
22
22
 
23
23
  exports[`VMenu.ts should update position dynamically 1`] = `"max-height: auto; min-width: 0px; max-width: auto; top: 12px; left: 0px; transform-origin: top left; z-index: 8; display: none;"`;
24
24
 
@@ -26,10 +26,8 @@ exports[`VMenu.ts should update position dynamically 2`] = `"max-height: auto; m
26
26
 
27
27
  exports[`VMenu.ts should work 1`] = `
28
28
  <div class="v-menu">
29
- <button>
30
- </button>
31
29
  <div role="menu"
32
- class="v-menu__content theme--light menuable__content__active "
30
+ class="v-menu__content theme--light menuable__content__active"
33
31
  style="max-height: auto; min-width: 0px; max-width: auto; top: 12px; left: 0px; transform-origin: top left; z-index: 8; display: none; z-index: 8;"
34
32
  >
35
33
  <div class="v-card v-sheet theme--light">
@@ -7,21 +7,32 @@ import Themeable from '../../mixins/themeable'
7
7
 
8
8
  // Types
9
9
  import { TransitionGroup, VNode, h } from 'vue'
10
- import { PropValidator } from 'vue/types/options'
11
10
  import mixins from '../../util/mixins'
12
11
 
13
12
  // Utilities
14
13
  import { getSlot } from '../../util/helpers'
14
+ import { breaking } from '../../util/console'
15
15
 
16
16
  /* @vue/component */
17
17
  export default mixins(Colorable, Themeable).extend({
18
18
  name: 'v-messages',
19
19
 
20
20
  props: {
21
- value: {
21
+ modelValue: {
22
22
  type: Array,
23
23
  default: () => ([]),
24
- } as PropValidator<string[]>,
24
+ },
25
+ },
26
+
27
+ created () {
28
+ const breakingProps = [
29
+ ['value', 'modelValue'],
30
+ ]
31
+
32
+ /* istanbul ignore next */
33
+ breakingProps.forEach(([original, replacement]) => {
34
+ if (this.$attrs.hasOwnProperty(original)) breaking(original, replacement, this)
35
+ })
25
36
  },
26
37
 
27
38
  methods: {
@@ -30,7 +41,7 @@ export default mixins(Colorable, Themeable).extend({
30
41
  class: 'v-messages__wrapper',
31
42
  name: 'message-transition',
32
43
  tag: 'div',
33
- }, () => this.value.map(this.genMessage))
44
+ }, () => this.modelValue.map(this.genMessage))
34
45
  },
35
46
  genMessage (message: string, key: number) {
36
47
  return h('div', {