@dimailn/vuetify 2.7.2-alpha31 → 2.7.2-alpha33

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 (302) hide show
  1. package/dist/vuetify.js +551 -368
  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/VCalendar/VCalendarWeekly.js +10 -5
  6. package/es5/components/VCalendar/VCalendarWeekly.js.map +1 -1
  7. package/es5/components/VCheckbox/VCheckbox.js +7 -9
  8. package/es5/components/VCheckbox/VCheckbox.js.map +1 -1
  9. package/es5/components/VContent/VContent.js +24 -5
  10. package/es5/components/VContent/VContent.js.map +1 -1
  11. package/es5/components/VCounter/VCounter.js.map +1 -1
  12. package/es5/components/VDatePicker/VDatePicker.js +15 -7
  13. package/es5/components/VDatePicker/VDatePicker.js.map +1 -1
  14. package/es5/components/VDatePicker/VDatePickerTitle.js +30 -19
  15. package/es5/components/VDatePicker/VDatePickerTitle.js.map +1 -1
  16. package/es5/components/VDatePicker/mixins/date-picker-table.js +1 -1
  17. package/es5/components/VDatePicker/mixins/date-picker-table.js.map +1 -1
  18. package/es5/components/VDatePicker/util/eventHelpers.js +27 -17
  19. package/es5/components/VDatePicker/util/eventHelpers.js.map +1 -1
  20. package/es5/components/VExpansionPanel/VExpansionPanelContent.js.map +1 -1
  21. package/es5/components/VExpansionPanel/VExpansionPanelHeader.js.map +1 -1
  22. package/es5/components/VGrid/VCol.js +3 -1
  23. package/es5/components/VGrid/VCol.js.map +1 -1
  24. package/es5/components/VGrid/VContainer.js +23 -10
  25. package/es5/components/VGrid/VContainer.js.map +1 -1
  26. package/es5/components/VGrid/grid.js +33 -15
  27. package/es5/components/VGrid/grid.js.map +1 -1
  28. package/es5/components/VHover/VHover.js +23 -17
  29. package/es5/components/VHover/VHover.js.map +1 -1
  30. package/es5/components/VIcon/VIcon.js +77 -53
  31. package/es5/components/VIcon/VIcon.js.map +1 -1
  32. package/es5/components/VItemGroup/VItem.js +7 -3
  33. package/es5/components/VItemGroup/VItem.js.map +1 -1
  34. package/es5/components/VLabel/VLabel.js +3 -1
  35. package/es5/components/VLabel/VLabel.js.map +1 -1
  36. package/es5/components/VOtpInput/VOtpInput.js +54 -33
  37. package/es5/components/VOtpInput/VOtpInput.js.map +1 -1
  38. package/es5/components/VOverflowBtn/VOverflowBtn.js +14 -13
  39. package/es5/components/VOverflowBtn/VOverflowBtn.js.map +1 -1
  40. package/es5/components/VProgressLinear/VProgressLinear.js +12 -33
  41. package/es5/components/VProgressLinear/VProgressLinear.js.map +1 -1
  42. package/es5/components/VSelect/VSelect.js +4 -1
  43. package/es5/components/VSelect/VSelect.js.map +1 -1
  44. package/es5/components/VStepper/VStepper.js +1 -1
  45. package/es5/components/VStepper/VStepper.js.map +1 -1
  46. package/es5/components/VStepper/VStepperContent.js +2 -5
  47. package/es5/components/VStepper/VStepperContent.js.map +1 -1
  48. package/es5/components/VSwitch/VSwitch.js +1 -1
  49. package/es5/components/VSwitch/VSwitch.js.map +1 -1
  50. package/es5/components/VTextField/VTextField.js +2 -1
  51. package/es5/components/VTextField/VTextField.js.map +1 -1
  52. package/es5/components/VTooltip/VTooltip.js +0 -7
  53. package/es5/components/VTooltip/VTooltip.js.map +1 -1
  54. package/es5/directives/color/index.js +6 -3
  55. package/es5/directives/color/index.js.map +1 -1
  56. package/es5/directives/ripple/index.js +5 -2
  57. package/es5/directives/ripple/index.js.map +1 -1
  58. package/es5/directives/scroll/index.js +1 -2
  59. package/es5/directives/scroll/index.js.map +1 -1
  60. package/es5/directives/touch/index.js +7 -4
  61. package/es5/directives/touch/index.js.map +1 -1
  62. package/es5/framework.js +1 -1
  63. package/es5/mixins/activatable/index.js +0 -8
  64. package/es5/mixins/activatable/index.js.map +1 -1
  65. package/es5/mixins/groupable/index.js.map +1 -1
  66. package/es5/mixins/positionable/index.js.map +1 -1
  67. package/es5/mixins/proxyable/index.js.map +1 -1
  68. package/es5/mixins/registrable/index.js.map +1 -1
  69. package/es5/mixins/selectable/index.js +4 -2
  70. package/es5/mixins/selectable/index.js.map +1 -1
  71. package/es5/mixins/toggleable/index.js.map +1 -1
  72. package/es5/services/goto/util.js +42 -3
  73. package/es5/services/goto/util.js.map +1 -1
  74. package/es5/services/theme/index.js +20 -71
  75. package/es5/services/theme/index.js.map +1 -1
  76. package/es5/util/mergeData.js +6 -5
  77. package/es5/util/mergeData.js.map +1 -1
  78. package/es5/util/mixins.js +4 -3
  79. package/es5/util/mixins.js.map +1 -1
  80. package/lib/components/VCalendar/VCalendarWeekly.js +11 -6
  81. package/lib/components/VCalendar/VCalendarWeekly.js.map +1 -1
  82. package/lib/components/VCheckbox/VCheckbox.js +5 -8
  83. package/lib/components/VCheckbox/VCheckbox.js.map +1 -1
  84. package/lib/components/VContent/VContent.js +18 -3
  85. package/lib/components/VContent/VContent.js.map +1 -1
  86. package/lib/components/VCounter/VCounter.js.map +1 -1
  87. package/lib/components/VDatePicker/VDatePicker.js +17 -7
  88. package/lib/components/VDatePicker/VDatePicker.js.map +1 -1
  89. package/lib/components/VDatePicker/VDatePickerTitle.js +25 -14
  90. package/lib/components/VDatePicker/VDatePickerTitle.js.map +1 -1
  91. package/lib/components/VDatePicker/mixins/date-picker-table.js +1 -1
  92. package/lib/components/VDatePicker/mixins/date-picker-table.js.map +1 -1
  93. package/lib/components/VDatePicker/util/eventHelpers.js +26 -14
  94. package/lib/components/VDatePicker/util/eventHelpers.js.map +1 -1
  95. package/lib/components/VExpansionPanel/VExpansionPanelContent.js.map +1 -1
  96. package/lib/components/VExpansionPanel/VExpansionPanelHeader.js.map +1 -1
  97. package/lib/components/VGrid/VCol.js +3 -1
  98. package/lib/components/VGrid/VCol.js.map +1 -1
  99. package/lib/components/VGrid/VContainer.js +11 -10
  100. package/lib/components/VGrid/VContainer.js.map +1 -1
  101. package/lib/components/VGrid/grid.js +15 -14
  102. package/lib/components/VGrid/grid.js.map +1 -1
  103. package/lib/components/VHover/VHover.js +23 -18
  104. package/lib/components/VHover/VHover.js.map +1 -1
  105. package/lib/components/VIcon/VIcon.js +79 -57
  106. package/lib/components/VIcon/VIcon.js.map +1 -1
  107. package/lib/components/VItemGroup/VItem.js +3 -2
  108. package/lib/components/VItemGroup/VItem.js.map +1 -1
  109. package/lib/components/VLabel/VLabel.js +3 -1
  110. package/lib/components/VLabel/VLabel.js.map +1 -1
  111. package/lib/components/VOtpInput/VOtpInput.js +58 -34
  112. package/lib/components/VOtpInput/VOtpInput.js.map +1 -1
  113. package/lib/components/VOverflowBtn/VOverflowBtn.js +14 -14
  114. package/lib/components/VOverflowBtn/VOverflowBtn.js.map +1 -1
  115. package/lib/components/VProgressLinear/VProgressLinear.js +12 -16
  116. package/lib/components/VProgressLinear/VProgressLinear.js.map +1 -1
  117. package/lib/components/VSelect/VSelect.js +4 -1
  118. package/lib/components/VSelect/VSelect.js.map +1 -1
  119. package/lib/components/VStepper/VStepper.js +1 -1
  120. package/lib/components/VStepper/VStepper.js.map +1 -1
  121. package/lib/components/VStepper/VStepperContent.js +3 -6
  122. package/lib/components/VStepper/VStepperContent.js.map +1 -1
  123. package/lib/components/VSwitch/VSwitch.js +1 -1
  124. package/lib/components/VSwitch/VSwitch.js.map +1 -1
  125. package/lib/components/VTextField/VTextField.js +2 -1
  126. package/lib/components/VTextField/VTextField.js.map +1 -1
  127. package/lib/components/VTooltip/VTooltip.js +1 -8
  128. package/lib/components/VTooltip/VTooltip.js.map +1 -1
  129. package/lib/directives/color/index.js +6 -3
  130. package/lib/directives/color/index.js.map +1 -1
  131. package/lib/directives/ripple/index.js +5 -3
  132. package/lib/directives/ripple/index.js.map +1 -1
  133. package/lib/directives/scroll/index.js +1 -2
  134. package/lib/directives/scroll/index.js.map +1 -1
  135. package/lib/directives/touch/index.js +7 -4
  136. package/lib/directives/touch/index.js.map +1 -1
  137. package/lib/framework.js +1 -1
  138. package/lib/mixins/activatable/index.js +1 -8
  139. package/lib/mixins/activatable/index.js.map +1 -1
  140. package/lib/mixins/groupable/index.js.map +1 -1
  141. package/lib/mixins/positionable/index.js.map +1 -1
  142. package/lib/mixins/proxyable/index.js.map +1 -1
  143. package/lib/mixins/registrable/index.js.map +1 -1
  144. package/lib/mixins/selectable/index.js +9 -7
  145. package/lib/mixins/selectable/index.js.map +1 -1
  146. package/lib/mixins/toggleable/index.js.map +1 -1
  147. package/lib/services/goto/util.js +42 -3
  148. package/lib/services/goto/util.js.map +1 -1
  149. package/lib/services/theme/index.js +18 -64
  150. package/lib/services/theme/index.js.map +1 -1
  151. package/lib/util/mergeData.js +6 -5
  152. package/lib/util/mergeData.js.map +1 -1
  153. package/lib/util/mixins.js +3 -2
  154. package/lib/util/mixins.js.map +1 -1
  155. package/package.json +2 -2
  156. package/src/components/VAlert/__tests__/__snapshots__/VAlert.spec.ts.snap +4 -4
  157. package/src/components/VAppBar/__tests__/__snapshots__/VAppBarNavIcon.spec.ts.snap +2 -2
  158. package/src/components/VAutocomplete/__tests__/VAutocomplete.spec.ts +75 -20
  159. package/src/components/VAutocomplete/__tests__/VAutocomplete2.spec.ts +38 -40
  160. package/src/components/VAutocomplete/__tests__/VAutocomplete3.spec.ts +26 -26
  161. package/src/components/VBanner/__tests__/__snapshots__/VBanner.spec.ts.snap +2 -2
  162. package/src/components/VBtn/__tests__/VBtn.spec.ts +8 -4
  163. package/src/components/VCalendar/VCalendarWeekly.ts +12 -5
  164. package/src/components/VCalendar/__tests__/VCalendar.spec.ts +1 -1
  165. package/src/components/VCalendar/__tests__/VCalendarCategory.spec.ts +5 -5
  166. package/src/components/VCalendar/__tests__/__snapshots__/VCalendar.spec.ts.snap +167 -168
  167. package/src/components/VCheckbox/VCheckbox.ts +4 -9
  168. package/src/components/VCheckbox/__tests__/VCheckbox.spec.ts +7 -1
  169. package/src/components/VCheckbox/__tests__/__snapshots__/VCheckbox.spec.ts.snap +54 -50
  170. package/src/components/VColorPicker/__tests__/__snapshots__/VColorPicker.spec.ts.snap +18 -18
  171. package/src/components/VColorPicker/__tests__/__snapshots__/VColorPickerEdit.spec.ts.snap +10 -10
  172. package/src/components/VCombobox/__tests__/VCombobox-multiple.spec.ts +89 -69
  173. package/src/components/VCombobox/__tests__/VCombobox.spec.ts +17 -12
  174. package/src/components/VContent/VContent.ts +10 -2
  175. package/src/components/VCounter/VCounter.ts +1 -1
  176. package/src/components/VCounter/__tests__/VCounter.spec.ts +10 -25
  177. package/src/components/VDataIterator/__tests__/__snapshots__/VDataFooter.spec.ts.snap +42 -42
  178. package/src/components/VDataIterator/__tests__/__snapshots__/VDataIterator.spec.ts.snap +30 -30
  179. package/src/components/VDataTable/__tests__/VDataTable.spec.ts +1 -1
  180. package/src/components/VDataTable/__tests__/VDataTableHeader.spec.ts +6 -10
  181. package/src/components/VDataTable/__tests__/VEditDialog.spec.ts +24 -21
  182. package/src/components/VDataTable/__tests__/__snapshots__/VDataTable.spec.ts.snap +409 -409
  183. package/src/components/VDataTable/__tests__/__snapshots__/VDataTableHeader.spec.ts.snap +70 -70
  184. package/src/components/VDataTable/mixins/__tests__/__snapshots__/header.spec.ts.snap +8 -8
  185. package/src/components/VDataTable/mixins/__tests__/header.spec.ts +3 -3
  186. package/src/components/VDatePicker/VDatePicker.ts +23 -7
  187. package/src/components/VDatePicker/VDatePickerTitle.ts +28 -16
  188. package/src/components/VDatePicker/__tests__/VDatePicker.date.spec.ts +86 -124
  189. package/src/components/VDatePicker/__tests__/VDatePicker.month.spec.ts +85 -63
  190. package/src/components/VDatePicker/__tests__/VDatePickerHeader.spec.ts +12 -27
  191. package/src/components/VDatePicker/__tests__/VDatePickerTitle.spec.ts +9 -5
  192. package/src/components/VDatePicker/__tests__/VDatePickerYears.spec.ts +4 -4
  193. package/src/components/VDatePicker/__tests__/__snapshots__/VDatePicker.date.spec.ts.snap +27 -9
  194. package/src/components/VDatePicker/__tests__/__snapshots__/VDatePicker.month.spec.ts.snap +45 -35
  195. package/src/components/VDatePicker/__tests__/__snapshots__/VDatePickerTitle.spec.ts.snap +15 -5
  196. package/src/components/VDatePicker/mixins/date-picker-table.ts +1 -1
  197. package/src/components/VDatePicker/util/eventHelpers.ts +33 -13
  198. package/src/components/VExpansionPanel/VExpansionPanelContent.ts +5 -8
  199. package/src/components/VExpansionPanel/VExpansionPanelHeader.ts +10 -14
  200. package/src/components/VExpansionPanel/__tests__/VExpansionPanelHeader.spec.ts +6 -4
  201. package/src/components/VExpansionPanel/__tests__/VExpansionPanels.spec.ts +9 -5
  202. package/src/components/VExpansionPanel/__tests__/__snapshots__/VExpansionPanel.spec.ts.snap +4 -4
  203. package/src/components/VFileInput/__tests__/__snapshots__/VFileInput.spec.ts.snap +38 -38
  204. package/src/components/VFooter/__tests__/VFooter.spec.ts +28 -21
  205. package/src/components/VGrid/VCol.ts +1 -1
  206. package/src/components/VGrid/VContainer.ts +12 -10
  207. package/src/components/VGrid/__tests__/VCol.spec.ts +4 -2
  208. package/src/components/VGrid/__tests__/VGrid.spec.ts +2 -3
  209. package/src/components/VGrid/grid.ts +14 -17
  210. package/src/components/VHover/VHover.ts +21 -17
  211. package/src/components/VHover/__tests__/VHover.spec.ts +44 -28
  212. package/src/components/VIcon/VIcon.ts +72 -53
  213. package/src/components/VIcon/__tests__/VIcon.spec.ts +86 -176
  214. package/src/components/VIcon/__tests__/__snapshots__/VIcon.spec.ts.snap +19 -74
  215. package/src/components/VItemGroup/VItem.ts +1 -1
  216. package/src/components/VItemGroup/__tests__/VItem.spec.ts +20 -12
  217. package/src/components/VLabel/VLabel.ts +1 -1
  218. package/src/components/VList/__tests__/VListGroup.spec.ts +1 -1
  219. package/src/components/VList/__tests__/VListItemAction.spec.ts +32 -31
  220. package/src/components/VList/__tests__/__snapshots__/VListGroup.spec.ts.snap +2 -2
  221. package/src/components/VList/__tests__/__snapshots__/VListItemAction.spec.ts.snap +20 -6
  222. package/src/components/VOtpInput/VOtpInput.ts +57 -32
  223. package/src/components/VOtpInput/__tests__/VOtpInput.spec.ts +75 -78
  224. package/src/components/VOverflowBtn/VOverflowBtn.ts +13 -10
  225. package/src/components/VOverflowBtn/__tests__/VOverflowBtn.spec.ts +6 -6
  226. package/src/components/VOverflowBtn/__tests__/__snapshots__/VOverflowBtn.spec.ts.snap +38 -46
  227. package/src/components/VPagination/__tests__/__snapshots__/VPagination.spec.ts.snap +32 -32
  228. package/src/components/VProgressLinear/VProgressLinear.ts +13 -18
  229. package/src/components/VProgressLinear/__tests__/VProgressLinear.spec.ts +20 -12
  230. package/src/components/VRadioGroup/__tests__/VRadio.spec.ts +57 -44
  231. package/src/components/VRadioGroup/__tests__/VRadioGroup.spec.ts +4 -4
  232. package/src/components/VRadioGroup/__tests__/__snapshots__/VRadio.spec.ts.snap +29 -33
  233. package/src/components/VRadioGroup/__tests__/__snapshots__/VRadioGroup.spec.ts.snap +10 -18
  234. package/src/components/VRating/__tests__/VRating.spec.ts +24 -29
  235. package/src/components/VResponsive/__tests__/VResponsive.spec.ts +10 -5
  236. package/src/components/VSelect/VSelect.ts +5 -1
  237. package/src/components/VSelect/__tests__/VSelect2.spec.ts +5 -5
  238. package/src/components/VSelect/__tests__/VSelect3.spec.ts +7 -7
  239. package/src/components/VSelect/__tests__/VSelect4.spec.ts +2 -2
  240. package/src/components/VSelect/__tests__/__snapshots__/VSelect2.spec.ts.snap +4 -4
  241. package/src/components/VSelect/__tests__/__snapshots__/VSelect3.spec.ts.snap +0 -284
  242. package/src/components/VSelect/__tests__/__snapshots__/VSelectList.spec.ts.snap +30 -27
  243. package/src/components/VSlideGroup/__tests__/VSlideGroup.spec.ts +70 -62
  244. package/src/components/VSlideGroup/__tests__/__snapshots__/VSlideGroup.spec.ts.snap +13 -34
  245. package/src/components/VSnackbar/__tests__/VSnackbar.spec.ts +46 -37
  246. package/src/components/VStepper/VStepper.ts +2 -2
  247. package/src/components/VStepper/VStepperContent.ts +7 -12
  248. package/src/components/VStepper/__tests__/VStepper.spec.ts +3 -3
  249. package/src/components/VStepper/__tests__/VStepperContent.spec.ts +25 -6
  250. package/src/components/VStepper/__tests__/__snapshots__/VStepperStep.spec.ts.snap +10 -12
  251. package/src/components/VSwitch/VSwitch.ts +1 -1
  252. package/src/components/VSwitch/__tests__/VSwitch.spec.ts +4 -7
  253. package/src/components/VSwitch/__tests__/__snapshots__/VSwitch.spec.ts.snap +11 -15
  254. package/src/components/VTextField/VTextField.ts +2 -1
  255. package/src/components/VTextField/__tests__/VTextField.spec.ts +24 -27
  256. package/src/components/VTextField/__tests__/__snapshots__/VTextField.spec.ts.snap +49 -73
  257. package/src/components/VTextarea/__tests__/__snapshots__/VTextarea.spec.ts.snap +16 -6
  258. package/src/components/VThemeProvider/__tests__/VThemeProvider.spec.ts +49 -10
  259. package/src/components/VTimePicker/__tests__/VTimePicker.spec.ts +3 -3
  260. package/src/components/VTimePicker/__tests__/VTimePickerTitle.spec.ts +3 -3
  261. package/src/components/VTimeline/__tests__/__snapshots__/VTimelineItem.spec.ts.snap +2 -2
  262. package/src/components/VTooltip/VTooltip.ts +0 -6
  263. package/src/components/VTooltip/__tests__/VTooltip.spec.ts +12 -11
  264. package/src/components/VTreeview/__tests__/__snapshots__/VTreeview.spec.ts.snap +42 -42
  265. package/src/components/VTreeview/__tests__/__snapshots__/VTreeviewNode.spec.ts.snap +2 -2
  266. package/src/directives/click-outside/__tests__/click-outside-shadow-dom.spec.ts +4 -4
  267. package/src/directives/click-outside/__tests__/click-outside.spec.ts +3 -3
  268. package/src/directives/color/__tests__/color.spec.ts +54 -34
  269. package/src/directives/color/index.ts +7 -3
  270. package/src/directives/intersect/__tests__/intersect.spec.ts +7 -7
  271. package/src/directives/mutate/__tests__/mutate.spec.ts +32 -26
  272. package/src/directives/resize/__tests__/resize.spec.ts +5 -5
  273. package/src/directives/ripple/__tests__/ripple.spec.ts +34 -36
  274. package/src/directives/ripple/index.ts +3 -6
  275. package/src/directives/scroll/__tests__/scroll.spec.ts +13 -13
  276. package/src/directives/scroll/index.ts +0 -1
  277. package/src/directives/touch/__tests__/touch.spec.ts +23 -16
  278. package/src/directives/touch/index.ts +6 -4
  279. package/src/globals.d.ts +6 -6
  280. package/src/mixins/activatable/__tests__/activatable.spec.ts +55 -55
  281. package/src/mixins/activatable/index.ts +0 -6
  282. package/src/mixins/dependent/__tests__/dependent.spec.ts +72 -33
  283. package/src/mixins/detachable/__tests__/detachable.spec.ts +45 -31
  284. package/src/mixins/groupable/index.ts +6 -6
  285. package/src/mixins/positionable/index.ts +2 -2
  286. package/src/mixins/proxyable/index.ts +2 -2
  287. package/src/mixins/registrable/index.ts +4 -4
  288. package/src/mixins/selectable/index.ts +10 -7
  289. package/src/mixins/toggleable/index.ts +2 -2
  290. package/src/services/goto/__tests__/goto.spec.ts +146 -1
  291. package/src/services/goto/util.ts +44 -5
  292. package/src/services/theme/__tests__/__snapshots__/theme.spec.ts.snap +0 -1128
  293. package/src/services/theme/__tests__/theme.spec.ts +81 -83
  294. package/src/services/theme/index.ts +22 -60
  295. package/src/util/__tests__/dom.spec.ts +8 -5
  296. package/src/util/__tests__/helpers.spec.ts +1 -1
  297. package/src/util/__tests__/mergeData.spec.ts +8 -8
  298. package/src/util/mergeData.ts +10 -5
  299. package/src/util/mixins.ts +24 -7
  300. package/types/alacarte.d.ts +14 -14
  301. package/types/index.d.ts +8 -8
  302. package/types/lib.d.ts +173 -173
@@ -1,5 +1,6 @@
1
1
  // Lib
2
- import { mount } from '@vue/test-utils'
2
+ import { mount, enableAutoUnmount } from '@vue/test-utils'
3
+ import { defineComponent, h } from 'vue'
3
4
 
4
5
  // Components
5
6
  import VBtn from '../../../components/VBtn'
@@ -8,6 +9,9 @@ import VBtn from '../../../components/VBtn'
8
9
  import goTo, { Goto } from '../index'
9
10
  import { Application } from '../../application/index'
10
11
 
12
+ // Utils
13
+ import { getOffset, getContainer } from '../util'
14
+
11
15
  // Types
12
16
  import { VuetifyServiceContract } from 'vuetify/types/services'
13
17
 
@@ -15,6 +19,8 @@ describe('$vuetify.goTo', () => {
15
19
  (global as any).performance = require('perf_hooks').performance
16
20
  let framework: Record<string, VuetifyServiceContract> = {}
17
21
 
22
+ enableAutoUnmount(afterEach)
23
+
18
24
  beforeEach(() => {
19
25
  framework = {
20
26
  application: new Application(),
@@ -63,7 +69,146 @@ describe('$vuetify.goTo', () => {
63
69
  await expect(goTo(btn.vm, { duration: 0 })).resolves.not.toBeUndefined()
64
70
  })
65
71
 
72
+ it('should work with Vue 3 component wrapper from Vue Test Utils', async () => {
73
+ const TestComponent = defineComponent({
74
+ template: '<div>Test Component</div>',
75
+ })
76
+ const wrapper = mount(TestComponent)
77
+
78
+ await expect(goTo(wrapper.vm, { duration: 0 })).resolves.not.toBeUndefined()
79
+ })
80
+
81
+ it('should work with raw HTMLElement', async () => {
82
+ const element = document.createElement('div')
83
+ document.body.appendChild(element)
84
+
85
+ await expect(goTo(element, { duration: 0 })).resolves.not.toBeUndefined()
86
+
87
+ document.body.removeChild(element)
88
+ })
89
+
90
+ it('should work with CSS selector string', async () => {
91
+ const element = document.createElement('div')
92
+ element.id = 'test-goto-element'
93
+ document.body.appendChild(element)
94
+
95
+ await expect(goTo('#test-goto-element', { duration: 0 })).resolves.not.toBeUndefined()
96
+
97
+ document.body.removeChild(element)
98
+ })
99
+
100
+ it('should work with number offset', async () => {
101
+ await expect(goTo(100, { duration: 0 })).resolves.not.toBeUndefined()
102
+ })
103
+
104
+ it('should use VueComponent as container', async () => {
105
+ const TestComponent = defineComponent({
106
+ template: '<div style="height: 1000px; overflow: auto"><div style="height: 2000px;">Content</div></div>',
107
+ })
108
+ const wrapper = mount(TestComponent)
109
+
110
+ await expect(goTo(100, { container: wrapper.vm, duration: 0 })).resolves.not.toBeUndefined()
111
+ })
112
+
66
113
  it('should instantiate and return goto', () => {
67
114
  expect(new Goto()).toEqual(goTo)
68
115
  })
69
116
  })
117
+
118
+ describe('goto utilities', () => {
119
+ let utilsFramework: Record<string, VuetifyServiceContract> = {}
120
+
121
+ beforeEach(() => {
122
+ utilsFramework = {
123
+ application: new Application(),
124
+ }
125
+ goTo.framework = utilsFramework
126
+ })
127
+
128
+ describe('getOffset', () => {
129
+ it('should return number when target is number', () => {
130
+ expect(getOffset(100)).toBe(100)
131
+ })
132
+
133
+ it('should return offset for HTMLElement', () => {
134
+ const element = document.createElement('div')
135
+ element.style.position = 'absolute'
136
+ element.style.top = '50px'
137
+ document.body.appendChild(element)
138
+
139
+ expect(getOffset(element)).toBeGreaterThanOrEqual(0)
140
+
141
+ document.body.removeChild(element)
142
+ })
143
+
144
+ it('should return offset for Vue 3 component', () => {
145
+ const TestComponent = defineComponent({
146
+ template: '<div>Test</div>',
147
+ })
148
+ const wrapper = mount(TestComponent)
149
+
150
+ expect(getOffset(wrapper.vm)).toBeGreaterThanOrEqual(0)
151
+ })
152
+
153
+ it('should return offset for CSS selector', () => {
154
+ const element = document.createElement('div')
155
+ element.id = 'test-offset-element'
156
+ document.body.appendChild(element)
157
+
158
+ expect(getOffset('#test-offset-element')).toBeGreaterThanOrEqual(0)
159
+
160
+ document.body.removeChild(element)
161
+ })
162
+
163
+ it('should throw error for invalid selector', () => {
164
+ expect(() => getOffset('#nonexistent-element'))
165
+ .toThrow('Target element "#nonexistent-element" not found.')
166
+ })
167
+
168
+ it('should throw error for invalid target type', () => {
169
+ expect(() => getOffset({ invalid: 'target' }))
170
+ .toThrow('Target must be a Number/Selector/HTMLElement/VueComponent')
171
+ })
172
+ })
173
+
174
+ describe('getContainer', () => {
175
+ it('should return HTMLElement for valid container', () => {
176
+ const element = document.createElement('div')
177
+ document.body.appendChild(element)
178
+
179
+ expect(getContainer(element)).toBe(element)
180
+
181
+ document.body.removeChild(element)
182
+ })
183
+
184
+ it('should return HTMLElement for Vue 3 component container', () => {
185
+ const TestComponent = defineComponent({
186
+ template: '<div>Test Container</div>',
187
+ })
188
+ const wrapper = mount(TestComponent)
189
+
190
+ const result = getContainer(wrapper.vm)
191
+ expect(result).toBeInstanceOf(HTMLElement)
192
+ })
193
+
194
+ it('should return HTMLElement for CSS selector container', () => {
195
+ const element = document.createElement('div')
196
+ element.id = 'test-container-element'
197
+ document.body.appendChild(element)
198
+
199
+ expect(getContainer('#test-container-element')).toBe(element)
200
+
201
+ document.body.removeChild(element)
202
+ })
203
+
204
+ it('should throw error for invalid container selector', () => {
205
+ expect(() => getContainer('#nonexistent-container'))
206
+ .toThrow('Container element "#nonexistent-container" not found.')
207
+ })
208
+
209
+ it('should throw error for invalid container type', () => {
210
+ expect(() => getContainer(42))
211
+ .toThrow('Container must be a Selector/HTMLElement/VueComponent')
212
+ })
213
+ })
214
+ })
@@ -1,5 +1,3 @@
1
- import Vue from 'vue'
2
-
3
1
  // Return target's cumulative offset from the top
4
2
  export function getOffset (target: any): number {
5
3
  if (typeof target === 'number') {
@@ -34,17 +32,58 @@ export function getContainer (container: any): HTMLElement {
34
32
  }
35
33
 
36
34
  function type (el: any) {
37
- return el == null ? el : el.constructor.name
35
+ if (el == null) return el
36
+ // Vue 3 component detection
37
+ if (isVue3Component(el)) return 'VueComponent'
38
+ return el.constructor?.name || 'Unknown'
39
+ }
40
+
41
+ // Helper function to detect Vue 3 component instances
42
+ function isVue3Component (el: any): boolean {
43
+ // Check for Vue 3 component instance properties
44
+ return !!(el && (
45
+ // Direct component instance with $el
46
+ el.$el ||
47
+ // Component instance with appContext (Vue 3 runtime)
48
+ el.appContext ||
49
+ // Component proxy with type property (from Vue Test Utils)
50
+ (el.type && (el.type.name || el.type.__name)) ||
51
+ // Component with setupState (Composition API)
52
+ el.setupState ||
53
+ // Component with ctx property (internal Vue 3)
54
+ (el.ctx && el.ctx.type)
55
+ ))
38
56
  }
39
57
 
40
58
  function $ (el: any): HTMLElement | null {
41
59
  if (typeof el === 'string') {
42
60
  return document.querySelector<HTMLElement>(el)
43
- } else if (el && el._isVue) {
44
- return (el as Vue).$el as HTMLElement
45
61
  } else if (el instanceof HTMLElement) {
46
62
  return el
63
+ } else if (isVue3Component(el)) {
64
+ return extractElementFromVue3Component(el)
47
65
  } else {
48
66
  return null
49
67
  }
50
68
  }
69
+
70
+ // Helper function to extract HTMLElement from Vue 3 component
71
+ function extractElementFromVue3Component (component: any): HTMLElement | null {
72
+ if (component.$el instanceof HTMLElement) {
73
+ return component.$el
74
+ }
75
+
76
+ if (component.element instanceof HTMLElement) {
77
+ return component.element
78
+ }
79
+
80
+ if (component.ctx?.vnode?.el instanceof HTMLElement) {
81
+ return component.ctx.vnode.el
82
+ }
83
+
84
+ if (component.vnode?.el instanceof HTMLElement) {
85
+ return component.vnode.el
86
+ }
87
+
88
+ return null
89
+ }