vuetify 3.0.0-beta.9 → 3.0.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (959) hide show
  1. package/_settings.scss +2 -0
  2. package/_styles.scss +1 -0
  3. package/_tools.scss +1 -0
  4. package/dist/json/attributes.json +3767 -2527
  5. package/dist/json/importMap.json +14 -18
  6. package/dist/json/tags.json +475 -56
  7. package/dist/json/web-types.json +14481 -10795
  8. package/dist/vuetify.css +1565 -2316
  9. package/dist/vuetify.d.ts +17610 -6982
  10. package/dist/vuetify.esm.js +5675 -6283
  11. package/dist/vuetify.esm.js.map +1 -1
  12. package/dist/vuetify.js +5664 -6273
  13. package/dist/vuetify.js.map +1 -1
  14. package/dist/vuetify.min.css +3 -3
  15. package/dist/vuetify.min.js +1266 -1272
  16. package/dist/vuetify.min.js.map +1 -1
  17. package/lib/blueprints/index.d.ts +163 -0
  18. package/lib/blueprints/index.mjs.map +1 -1
  19. package/lib/blueprints/md1.d.ts +159 -0
  20. package/lib/blueprints/md1.mjs +3 -1
  21. package/lib/blueprints/md1.mjs.map +1 -1
  22. package/lib/blueprints/md2.d.ts +159 -0
  23. package/lib/blueprints/md2.mjs +3 -1
  24. package/lib/blueprints/md2.mjs.map +1 -1
  25. package/lib/blueprints/md3.d.ts +159 -0
  26. package/lib/blueprints/md3.mjs +2 -2
  27. package/lib/blueprints/md3.mjs.map +1 -1
  28. package/lib/components/VAlert/VAlert.css +2 -3
  29. package/lib/components/VAlert/VAlert.mjs +10 -23
  30. package/lib/components/VAlert/VAlert.mjs.map +1 -1
  31. package/lib/components/VAlert/VAlertTitle.mjs.map +1 -1
  32. package/lib/components/VAlert/index.d.ts +187 -0
  33. package/lib/components/VAlert/index.mjs.map +1 -1
  34. package/lib/components/VApp/VApp.css +0 -11
  35. package/lib/components/VApp/VApp.mjs +5 -7
  36. package/lib/components/VApp/VApp.mjs.map +1 -1
  37. package/lib/components/VApp/VApp.sass +0 -9
  38. package/lib/components/VApp/index.d.ts +85 -0
  39. package/lib/components/VApp/index.mjs.map +1 -1
  40. package/lib/components/VAppBar/VAppBar.css +4 -1
  41. package/lib/components/VAppBar/VAppBar.mjs +7 -11
  42. package/lib/components/VAppBar/VAppBar.mjs.map +1 -1
  43. package/lib/components/VAppBar/VAppBar.sass +3 -0
  44. package/lib/components/VAppBar/VAppBarNavIcon.mjs +0 -4
  45. package/lib/components/VAppBar/VAppBarNavIcon.mjs.map +1 -1
  46. package/lib/components/VAppBar/VAppBarTitle.mjs +2 -4
  47. package/lib/components/VAppBar/VAppBarTitle.mjs.map +1 -1
  48. package/lib/components/VAppBar/index.d.ts +160 -0
  49. package/lib/components/VAppBar/index.mjs.map +1 -1
  50. package/lib/components/VAutocomplete/VAutocomplete.css +19 -2
  51. package/lib/components/VAutocomplete/VAutocomplete.mjs +61 -50
  52. package/lib/components/VAutocomplete/VAutocomplete.mjs.map +1 -1
  53. package/lib/components/VAutocomplete/VAutocomplete.sass +11 -1
  54. package/lib/components/VAutocomplete/_variables.scss +1 -0
  55. package/lib/components/VAutocomplete/index.d.ts +1754 -0
  56. package/lib/components/VAutocomplete/index.mjs.map +1 -1
  57. package/lib/components/VAvatar/VAvatar.css +45 -2
  58. package/lib/components/VAvatar/VAvatar.mjs +19 -19
  59. package/lib/components/VAvatar/VAvatar.mjs.map +1 -1
  60. package/lib/components/VAvatar/VAvatar.sass +6 -1
  61. package/lib/components/VAvatar/_variables.scss +9 -4
  62. package/lib/components/VAvatar/index.d.ts +82 -0
  63. package/lib/components/VAvatar/index.mjs.map +1 -1
  64. package/lib/components/VBadge/VBadge.mjs +3 -9
  65. package/lib/components/VBadge/VBadge.mjs.map +1 -1
  66. package/lib/components/VBadge/index.d.ts +123 -0
  67. package/lib/components/VBadge/index.mjs.map +1 -1
  68. package/lib/components/VBanner/VBanner.css +1 -1
  69. package/lib/components/VBanner/VBanner.mjs +5 -7
  70. package/lib/components/VBanner/VBanner.mjs.map +1 -1
  71. package/lib/components/VBanner/VBannerActions.mjs +0 -4
  72. package/lib/components/VBanner/VBannerActions.mjs.map +1 -1
  73. package/lib/components/VBanner/VBannerText.mjs.map +1 -1
  74. package/lib/components/VBanner/index.d.ts +126 -0
  75. package/lib/components/VBanner/index.mjs.map +1 -1
  76. package/lib/components/VBottomNavigation/VBottomNavigation.css +1 -1
  77. package/lib/components/VBottomNavigation/VBottomNavigation.mjs +3 -6
  78. package/lib/components/VBottomNavigation/VBottomNavigation.mjs.map +1 -1
  79. package/lib/components/VBottomNavigation/index.d.ts +145 -0
  80. package/lib/components/VBottomNavigation/index.mjs.map +1 -1
  81. package/lib/components/VBottomSheet/VBottomSheet.mjs +5 -5
  82. package/lib/components/VBottomSheet/VBottomSheet.mjs.map +1 -1
  83. package/lib/components/VBottomSheet/index.mjs.map +1 -1
  84. package/lib/components/VBreadcrumbs/VBreadcrumbs.mjs +8 -12
  85. package/lib/components/VBreadcrumbs/VBreadcrumbs.mjs.map +1 -1
  86. package/lib/components/VBreadcrumbs/VBreadcrumbsDivider.mjs.map +1 -1
  87. package/lib/components/VBreadcrumbs/VBreadcrumbsItem.mjs +4 -9
  88. package/lib/components/VBreadcrumbs/VBreadcrumbsItem.mjs.map +1 -1
  89. package/lib/components/VBreadcrumbs/index.d.ts +313 -0
  90. package/lib/components/VBreadcrumbs/index.mjs.map +1 -1
  91. package/lib/components/VBtn/VBtn.css +14 -10
  92. package/lib/components/VBtn/VBtn.mjs +22 -20
  93. package/lib/components/VBtn/VBtn.mjs.map +1 -1
  94. package/lib/components/VBtn/index.d.ts +213 -0
  95. package/lib/components/VBtn/index.mjs.map +1 -1
  96. package/lib/components/VBtnGroup/VBtnGroup.css +1 -1
  97. package/lib/components/VBtnGroup/VBtnGroup.mjs +2 -4
  98. package/lib/components/VBtnGroup/VBtnGroup.mjs.map +1 -1
  99. package/lib/components/VBtnGroup/index.d.ts +68 -0
  100. package/lib/components/VBtnGroup/index.mjs.map +1 -1
  101. package/lib/components/VBtnToggle/VBtnToggle.mjs +3 -10
  102. package/lib/components/VBtnToggle/VBtnToggle.mjs.map +1 -1
  103. package/lib/components/VBtnToggle/index.d.ts +170 -0
  104. package/lib/components/VBtnToggle/index.mjs.map +1 -1
  105. package/lib/components/VCalendar/VCalendar.mjs +6 -67
  106. package/lib/components/VCalendar/VCalendar.mjs.map +1 -1
  107. package/lib/components/VCalendar/VCalendarCategory.mjs +7 -18
  108. package/lib/components/VCalendar/VCalendarCategory.mjs.map +1 -1
  109. package/lib/components/VCalendar/VCalendarDaily.mjs +3 -34
  110. package/lib/components/VCalendar/VCalendarDaily.mjs.map +1 -1
  111. package/lib/components/VCalendar/VCalendarMonthly.mjs +3 -7
  112. package/lib/components/VCalendar/VCalendarMonthly.mjs.map +1 -1
  113. package/lib/components/VCalendar/VCalendarWeekly.mjs +3 -32
  114. package/lib/components/VCalendar/VCalendarWeekly.mjs.map +1 -1
  115. package/lib/components/VCalendar/index.mjs.map +1 -1
  116. package/lib/components/VCalendar/mixins/calendar-base.mjs +1 -19
  117. package/lib/components/VCalendar/mixins/calendar-base.mjs.map +1 -1
  118. package/lib/components/VCalendar/mixins/calendar-with-events.mjs +16 -84
  119. package/lib/components/VCalendar/mixins/calendar-with-events.mjs.map +1 -1
  120. package/lib/components/VCalendar/mixins/calendar-with-intervals.mjs +0 -30
  121. package/lib/components/VCalendar/mixins/calendar-with-intervals.mjs.map +1 -1
  122. package/lib/components/VCalendar/mixins/mouse.mjs +7 -17
  123. package/lib/components/VCalendar/mixins/mouse.mjs.map +1 -1
  124. package/lib/components/VCalendar/mixins/times.mjs +1 -9
  125. package/lib/components/VCalendar/mixins/times.mjs.map +1 -1
  126. package/lib/components/VCalendar/modes/column.mjs +0 -3
  127. package/lib/components/VCalendar/modes/column.mjs.map +1 -1
  128. package/lib/components/VCalendar/modes/common.mjs +0 -14
  129. package/lib/components/VCalendar/modes/common.mjs.map +1 -1
  130. package/lib/components/VCalendar/modes/index.mjs +0 -1
  131. package/lib/components/VCalendar/modes/index.mjs.map +1 -1
  132. package/lib/components/VCalendar/modes/stack.mjs +3 -45
  133. package/lib/components/VCalendar/modes/stack.mjs.map +1 -1
  134. package/lib/components/VCalendar/util/events.mjs +0 -1
  135. package/lib/components/VCalendar/util/events.mjs.map +1 -1
  136. package/lib/components/VCalendar/util/parser.mjs +3 -4
  137. package/lib/components/VCalendar/util/parser.mjs.map +1 -1
  138. package/lib/components/VCalendar/util/props.mjs +0 -13
  139. package/lib/components/VCalendar/util/props.mjs.map +1 -1
  140. package/lib/components/VCalendar/util/timestamp.mjs +2 -64
  141. package/lib/components/VCalendar/util/timestamp.mjs.map +1 -1
  142. package/lib/components/VCard/VCard.css +13 -9
  143. package/lib/components/VCard/VCard.mjs +6 -11
  144. package/lib/components/VCard/VCard.mjs.map +1 -1
  145. package/lib/components/VCard/VCardActions.mjs +0 -4
  146. package/lib/components/VCard/VCardActions.mjs.map +1 -1
  147. package/lib/components/VCard/VCardItem.mjs +5 -10
  148. package/lib/components/VCard/VCardItem.mjs.map +1 -1
  149. package/lib/components/VCard/VCardSubtitle.mjs.map +1 -1
  150. package/lib/components/VCard/VCardText.mjs.map +1 -1
  151. package/lib/components/VCard/VCardTitle.mjs.map +1 -1
  152. package/lib/components/VCard/index.d.ts +238 -0
  153. package/lib/components/VCard/index.mjs.map +1 -1
  154. package/lib/components/VCarousel/VCarousel.mjs +8 -12
  155. package/lib/components/VCarousel/VCarousel.mjs.map +1 -1
  156. package/lib/components/VCarousel/VCarouselItem.mjs +0 -3
  157. package/lib/components/VCarousel/VCarouselItem.mjs.map +1 -1
  158. package/lib/components/VCarousel/index.d.ts +81 -0
  159. package/lib/components/VCarousel/index.mjs.map +1 -1
  160. package/lib/components/VCheckbox/VCheckbox.mjs +22 -9
  161. package/lib/components/VCheckbox/VCheckbox.mjs.map +1 -1
  162. package/lib/components/VCheckbox/VCheckboxBtn.mjs +7 -15
  163. package/lib/components/VCheckbox/VCheckboxBtn.mjs.map +1 -1
  164. package/lib/components/VCheckbox/index.d.ts +302 -0
  165. package/lib/components/VCheckbox/index.mjs.map +1 -1
  166. package/lib/components/VChip/VChip.css +27 -3
  167. package/lib/components/VChip/VChip.mjs +5 -14
  168. package/lib/components/VChip/VChip.mjs.map +1 -1
  169. package/lib/components/VChip/VChip.sass +1 -0
  170. package/lib/components/VChip/index.d.ts +196 -0
  171. package/lib/components/VChip/index.mjs.map +1 -1
  172. package/lib/components/VChipGroup/VChipGroup.mjs +5 -6
  173. package/lib/components/VChipGroup/VChipGroup.mjs.map +1 -1
  174. package/lib/components/VChipGroup/index.d.ts +89 -0
  175. package/lib/components/VChipGroup/index.mjs.map +1 -1
  176. package/lib/components/VCode/VCode.css +5 -3
  177. package/lib/components/VCode/VCode.sass +3 -1
  178. package/lib/components/VCode/_variables.scss +5 -3
  179. package/lib/components/VCode/index.d.ts +20 -0
  180. package/lib/components/VCode/index.mjs.map +1 -1
  181. package/lib/components/VColorPicker/VColorPicker.css +3 -3
  182. package/lib/components/VColorPicker/VColorPicker.mjs +54 -61
  183. package/lib/components/VColorPicker/VColorPicker.mjs.map +1 -1
  184. package/lib/components/VColorPicker/VColorPickerCanvas.mjs +10 -25
  185. package/lib/components/VColorPicker/VColorPickerCanvas.mjs.map +1 -1
  186. package/lib/components/VColorPicker/VColorPickerEdit.mjs +6 -10
  187. package/lib/components/VColorPicker/VColorPickerEdit.mjs.map +1 -1
  188. package/lib/components/VColorPicker/VColorPickerPreview.mjs +14 -24
  189. package/lib/components/VColorPicker/VColorPickerPreview.mjs.map +1 -1
  190. package/lib/components/VColorPicker/VColorPickerSwatches.mjs +2 -6
  191. package/lib/components/VColorPicker/VColorPickerSwatches.mjs.map +1 -1
  192. package/lib/components/VColorPicker/index.d.ts +116 -0
  193. package/lib/components/VColorPicker/index.mjs.map +1 -1
  194. package/lib/components/VColorPicker/util/index.mjs +25 -29
  195. package/lib/components/VColorPicker/util/index.mjs.map +1 -1
  196. package/lib/components/VCombobox/VCombobox.css +14 -1
  197. package/lib/components/VCombobox/VCombobox.mjs +67 -65
  198. package/lib/components/VCombobox/VCombobox.mjs.map +1 -1
  199. package/lib/components/VCombobox/VCombobox.sass +5 -0
  200. package/lib/components/VCombobox/_variables.scss +1 -0
  201. package/lib/components/VCombobox/index.d.ts +1775 -0
  202. package/lib/components/VCombobox/index.mjs.map +1 -1
  203. package/lib/components/VCounter/VCounter.mjs +2 -5
  204. package/lib/components/VCounter/VCounter.mjs.map +1 -1
  205. package/lib/components/VCounter/index.d.ts +224 -0
  206. package/lib/components/VCounter/index.mjs.map +1 -1
  207. package/lib/components/VData/VData.mjs +9 -67
  208. package/lib/components/VData/VData.mjs.map +1 -1
  209. package/lib/components/VData/index.mjs.map +1 -1
  210. package/lib/components/VDataIterator/VDataFooter.mjs +6 -25
  211. package/lib/components/VDataIterator/VDataFooter.mjs.map +1 -1
  212. package/lib/components/VDataIterator/VDataIterator.mjs +12 -51
  213. package/lib/components/VDataIterator/VDataIterator.mjs.map +1 -1
  214. package/lib/components/VDataIterator/index.mjs.map +1 -1
  215. package/lib/components/VDataTable/MobileRow.mjs +3 -8
  216. package/lib/components/VDataTable/MobileRow.mjs.map +1 -1
  217. package/lib/components/VDataTable/Row.mjs +1 -8
  218. package/lib/components/VDataTable/Row.mjs.map +1 -1
  219. package/lib/components/VDataTable/RowGroup.mjs +1 -7
  220. package/lib/components/VDataTable/RowGroup.mjs.map +1 -1
  221. package/lib/components/VDataTable/VDataTable.mjs +53 -105
  222. package/lib/components/VDataTable/VDataTable.mjs.map +1 -1
  223. package/lib/components/VDataTable/VDataTableHeader.mjs +6 -10
  224. package/lib/components/VDataTable/VDataTableHeader.mjs.map +1 -1
  225. package/lib/components/VDataTable/VDataTableHeaderDesktop.mjs +0 -18
  226. package/lib/components/VDataTable/VDataTableHeaderDesktop.mjs.map +1 -1
  227. package/lib/components/VDataTable/VDataTableHeaderMobile.mjs +0 -9
  228. package/lib/components/VDataTable/VDataTableHeaderMobile.mjs.map +1 -1
  229. package/lib/components/VDataTable/VEditDialog.mjs +3 -17
  230. package/lib/components/VDataTable/VEditDialog.mjs.map +1 -1
  231. package/lib/components/VDataTable/VVirtualTable.mjs +3 -28
  232. package/lib/components/VDataTable/VVirtualTable.mjs.map +1 -1
  233. package/lib/components/VDataTable/index.mjs +0 -1
  234. package/lib/components/VDataTable/index.mjs.map +1 -1
  235. package/lib/components/VDataTable/mixins/header.mjs +1 -8
  236. package/lib/components/VDataTable/mixins/header.mjs.map +1 -1
  237. package/lib/components/VDatePicker/VDatePicker.mjs +2 -69
  238. package/lib/components/VDatePicker/VDatePicker.mjs.map +1 -1
  239. package/lib/components/VDatePicker/VDatePickerDateTable.mjs +1 -29
  240. package/lib/components/VDatePicker/VDatePickerDateTable.mjs.map +1 -1
  241. package/lib/components/VDatePicker/VDatePickerHeader.mjs +4 -17
  242. package/lib/components/VDatePicker/VDatePickerHeader.mjs.map +1 -1
  243. package/lib/components/VDatePicker/VDatePickerMonthTable.mjs +1 -12
  244. package/lib/components/VDatePicker/VDatePickerMonthTable.mjs.map +1 -1
  245. package/lib/components/VDatePicker/VDatePickerTitle.mjs +4 -15
  246. package/lib/components/VDatePicker/VDatePickerTitle.mjs.map +1 -1
  247. package/lib/components/VDatePicker/VDatePickerYears.mjs +4 -18
  248. package/lib/components/VDatePicker/VDatePickerYears.mjs.map +1 -1
  249. package/lib/components/VDatePicker/index.mjs.map +1 -1
  250. package/lib/components/VDatePicker/mixins/date-picker-table.mjs +6 -33
  251. package/lib/components/VDatePicker/mixins/date-picker-table.mjs.map +1 -1
  252. package/lib/components/VDatePicker/util/createNativeLocaleFormatter.mjs +0 -5
  253. package/lib/components/VDatePicker/util/createNativeLocaleFormatter.mjs.map +1 -1
  254. package/lib/components/VDatePicker/util/eventHelpers.mjs +2 -3
  255. package/lib/components/VDatePicker/util/eventHelpers.mjs.map +1 -1
  256. package/lib/components/VDatePicker/util/index.mjs +0 -1
  257. package/lib/components/VDatePicker/util/index.mjs.map +1 -1
  258. package/lib/components/VDatePicker/util/isDateAllowed.mjs +1 -1
  259. package/lib/components/VDatePicker/util/isDateAllowed.mjs.map +1 -1
  260. package/lib/components/VDatePicker/util/monthChange.mjs +0 -3
  261. package/lib/components/VDatePicker/util/monthChange.mjs.map +1 -1
  262. package/lib/components/VDatePicker/util/pad.mjs +1 -6
  263. package/lib/components/VDatePicker/util/pad.mjs.map +1 -1
  264. package/lib/components/VDatePicker/util/sanitizeDateString.mjs.map +1 -1
  265. package/lib/components/VDefaultsProvider/VDefaultsProvider.mjs +2 -4
  266. package/lib/components/VDefaultsProvider/VDefaultsProvider.mjs.map +1 -1
  267. package/lib/components/VDefaultsProvider/index.d.ts +27 -0
  268. package/lib/components/VDefaultsProvider/index.mjs.map +1 -1
  269. package/lib/components/VDialog/VDialog.css +4 -1
  270. package/lib/components/VDialog/VDialog.mjs +49 -59
  271. package/lib/components/VDialog/VDialog.mjs.map +1 -1
  272. package/lib/components/VDialog/VDialog.sass +3 -0
  273. package/lib/components/VDialog/index.d.ts +1795 -0
  274. package/lib/components/VDialog/index.mjs.map +1 -1
  275. package/lib/components/VDivider/VDivider.mjs +2 -8
  276. package/lib/components/VDivider/VDivider.mjs.map +1 -1
  277. package/lib/components/VDivider/index.d.ts +23 -0
  278. package/lib/components/VDivider/index.mjs.map +1 -1
  279. package/lib/components/VExpansionPanel/VExpansionPanel.css +11 -6
  280. package/lib/components/VExpansionPanel/VExpansionPanel.mjs +0 -5
  281. package/lib/components/VExpansionPanel/VExpansionPanel.mjs.map +1 -1
  282. package/lib/components/VExpansionPanel/VExpansionPanel.sass +2 -2
  283. package/lib/components/VExpansionPanel/VExpansionPanelText.mjs +2 -6
  284. package/lib/components/VExpansionPanel/VExpansionPanelText.mjs.map +1 -1
  285. package/lib/components/VExpansionPanel/VExpansionPanelTitle.mjs +3 -8
  286. package/lib/components/VExpansionPanel/VExpansionPanelTitle.mjs.map +1 -1
  287. package/lib/components/VExpansionPanel/VExpansionPanels.mjs +2 -5
  288. package/lib/components/VExpansionPanel/VExpansionPanels.mjs.map +1 -1
  289. package/lib/components/VExpansionPanel/index.d.ts +206 -0
  290. package/lib/components/VExpansionPanel/index.mjs.map +1 -1
  291. package/lib/components/VField/VField.css +29 -26
  292. package/lib/components/VField/VField.mjs +36 -35
  293. package/lib/components/VField/VField.mjs.map +1 -1
  294. package/lib/components/VField/VField.sass +23 -22
  295. package/lib/components/VField/VFieldLabel.mjs +0 -3
  296. package/lib/components/VField/VFieldLabel.mjs.map +1 -1
  297. package/lib/components/VField/index.d.ts +306 -0
  298. package/lib/components/VField/index.mjs.map +1 -1
  299. package/lib/components/VFileInput/VFileInput.css +16 -0
  300. package/lib/components/VFileInput/VFileInput.mjs +41 -60
  301. package/lib/components/VFileInput/VFileInput.mjs.map +1 -1
  302. package/lib/components/VFileInput/VFileInput.sass +10 -0
  303. package/lib/components/VFileInput/_variables.scss +2 -0
  304. package/lib/components/VFileInput/index.d.ts +477 -0
  305. package/lib/components/VFileInput/index.mjs.map +1 -1
  306. package/lib/components/VFooter/VFooter.css +8 -1
  307. package/lib/components/VFooter/VFooter.mjs +2 -4
  308. package/lib/components/VFooter/VFooter.mjs.map +1 -1
  309. package/lib/components/VFooter/VFooter.sass +1 -1
  310. package/lib/components/VFooter/_variables.scss +11 -0
  311. package/lib/components/VFooter/index.d.ts +77 -0
  312. package/lib/components/VFooter/index.mjs.map +1 -1
  313. package/lib/components/VForm/VForm.mjs +2 -13
  314. package/lib/components/VForm/VForm.mjs.map +1 -1
  315. package/lib/components/VForm/index.d.ts +81 -0
  316. package/lib/components/VForm/index.mjs.map +1 -1
  317. package/lib/components/VGrid/VCol.mjs +8 -23
  318. package/lib/components/VGrid/VCol.mjs.map +1 -1
  319. package/lib/components/VGrid/VContainer.mjs +2 -4
  320. package/lib/components/VGrid/VContainer.mjs.map +1 -1
  321. package/lib/components/VGrid/VRow.mjs +6 -24
  322. package/lib/components/VGrid/VRow.mjs.map +1 -1
  323. package/lib/components/VGrid/VSpacer.mjs.map +1 -1
  324. package/lib/components/VGrid/index.d.ts +156 -0
  325. package/lib/components/VGrid/index.mjs.map +1 -1
  326. package/lib/components/VHover/VHover.mjs +0 -4
  327. package/lib/components/VHover/VHover.mjs.map +1 -1
  328. package/lib/components/VHover/index.d.ts +31 -0
  329. package/lib/components/VHover/index.mjs.map +1 -1
  330. package/lib/components/VIcon/VIcon.mjs +4 -9
  331. package/lib/components/VIcon/VIcon.mjs.map +1 -1
  332. package/lib/components/VIcon/index.d.ts +125 -0
  333. package/lib/components/VIcon/index.mjs.map +1 -1
  334. package/lib/components/VImg/VImg.mjs +36 -60
  335. package/lib/components/VImg/VImg.mjs.map +1 -1
  336. package/lib/components/VImg/index.d.ts +93 -0
  337. package/lib/components/VImg/index.mjs.map +1 -1
  338. package/lib/components/VInput/InputIcon.mjs +31 -0
  339. package/lib/components/VInput/InputIcon.mjs.map +1 -0
  340. package/lib/components/VInput/VInput.mjs +20 -20
  341. package/lib/components/VInput/VInput.mjs.map +1 -1
  342. package/lib/components/VInput/index.d.ts +320 -0
  343. package/lib/components/VInput/index.mjs.map +1 -1
  344. package/lib/components/VItemGroup/VItem.mjs +0 -5
  345. package/lib/components/VItemGroup/VItem.mjs.map +1 -1
  346. package/lib/components/VItemGroup/VItemGroup.mjs +4 -6
  347. package/lib/components/VItemGroup/VItemGroup.mjs.map +1 -1
  348. package/lib/components/VItemGroup/index.d.ts +204 -0
  349. package/lib/components/VItemGroup/index.mjs.map +1 -1
  350. package/lib/components/VKbd/VKbd.css +3 -3
  351. package/lib/components/VKbd/VKbd.sass +2 -2
  352. package/lib/components/VKbd/index.d.ts +20 -0
  353. package/lib/components/VKbd/index.mjs.map +1 -1
  354. package/lib/components/VLabel/VLabel.css +4 -1
  355. package/lib/components/VLabel/VLabel.mjs +6 -6
  356. package/lib/components/VLabel/VLabel.mjs.map +1 -1
  357. package/lib/components/VLabel/VLabel.sass +3 -1
  358. package/lib/components/VLabel/index.d.ts +16 -0
  359. package/lib/components/VLabel/index.mjs.map +1 -1
  360. package/lib/components/VLayout/VLayout.mjs +2 -5
  361. package/lib/components/VLayout/VLayout.mjs.map +1 -1
  362. package/lib/components/VLayout/VLayoutItem.mjs +2 -6
  363. package/lib/components/VLayout/VLayoutItem.mjs.map +1 -1
  364. package/lib/components/VLayout/index.d.ts +78 -0
  365. package/lib/components/VLayout/index.mjs.map +1 -1
  366. package/lib/components/VLazy/VLazy.mjs +0 -8
  367. package/lib/components/VLazy/VLazy.mjs.map +1 -1
  368. package/lib/components/VLazy/index.d.ts +86 -0
  369. package/lib/components/VLazy/index.mjs.map +1 -1
  370. package/lib/components/VList/VList.css +1 -1
  371. package/lib/components/VList/VList.mjs +76 -24
  372. package/lib/components/VList/VList.mjs.map +1 -1
  373. package/lib/components/VList/VListChildren.mjs +22 -31
  374. package/lib/components/VList/VListChildren.mjs.map +1 -1
  375. package/lib/components/VList/VListGroup.mjs +11 -17
  376. package/lib/components/VList/VListGroup.mjs.map +1 -1
  377. package/lib/components/VList/VListImg.mjs.map +1 -1
  378. package/lib/components/VList/VListItem.css +12 -8
  379. package/lib/components/VList/VListItem.mjs +45 -43
  380. package/lib/components/VList/VListItem.mjs.map +1 -1
  381. package/lib/components/VList/VListItem.sass +2 -2
  382. package/lib/components/VList/VListItemAction.mjs +0 -3
  383. package/lib/components/VList/VListItemAction.mjs.map +1 -1
  384. package/lib/components/VList/VListItemMedia.mjs +0 -3
  385. package/lib/components/VList/VListItemMedia.mjs.map +1 -1
  386. package/lib/components/VList/VListItemSubtitle.mjs.map +1 -1
  387. package/lib/components/VList/VListItemTitle.mjs.map +1 -1
  388. package/lib/components/VList/VListSubheader.mjs +2 -6
  389. package/lib/components/VList/VListSubheader.mjs.map +1 -1
  390. package/lib/components/VList/index.d.ts +1253 -0
  391. package/lib/components/VList/index.mjs.map +1 -1
  392. package/lib/components/VList/list.mjs +5 -2
  393. package/lib/components/VList/list.mjs.map +1 -1
  394. package/lib/components/VLocaleProvider/VLocaleProvider.mjs +4 -9
  395. package/lib/components/VLocaleProvider/VLocaleProvider.mjs.map +1 -1
  396. package/lib/components/VLocaleProvider/index.d.ts +24 -0
  397. package/lib/components/VLocaleProvider/index.mjs.map +1 -1
  398. package/lib/components/VMain/VMain.css +0 -7
  399. package/lib/components/VMain/VMain.mjs +2 -5
  400. package/lib/components/VMain/VMain.mjs.map +1 -1
  401. package/lib/components/VMain/VMain.sass +0 -8
  402. package/lib/components/VMain/index.d.ts +27 -0
  403. package/lib/components/VMain/index.mjs.map +1 -1
  404. package/lib/components/VMenu/VMenu.css +1 -1
  405. package/lib/components/VMenu/VMenu.mjs +45 -43
  406. package/lib/components/VMenu/VMenu.mjs.map +1 -1
  407. package/lib/components/VMenu/index.d.ts +1823 -0
  408. package/lib/components/VMenu/index.mjs.map +1 -1
  409. package/lib/components/VMenu/shared.mjs.map +1 -1
  410. package/lib/components/VMessages/VMessages.mjs +2 -6
  411. package/lib/components/VMessages/VMessages.mjs.map +1 -1
  412. package/lib/components/VMessages/index.d.ts +235 -0
  413. package/lib/components/VMessages/index.mjs.map +1 -1
  414. package/lib/components/VNavigationDrawer/VNavigationDrawer.css +2 -2
  415. package/lib/components/VNavigationDrawer/VNavigationDrawer.mjs +6 -11
  416. package/lib/components/VNavigationDrawer/VNavigationDrawer.mjs.map +1 -1
  417. package/lib/components/VNavigationDrawer/VNavigationDrawer.sass +1 -1
  418. package/lib/components/VNavigationDrawer/_variables.scss +1 -0
  419. package/lib/components/VNavigationDrawer/index.d.ts +148 -0
  420. package/lib/components/VNavigationDrawer/index.mjs.map +1 -1
  421. package/lib/components/VNavigationDrawer/sticky.mjs +1 -7
  422. package/lib/components/VNavigationDrawer/sticky.mjs.map +1 -1
  423. package/lib/components/VNavigationDrawer/touch.mjs +2 -15
  424. package/lib/components/VNavigationDrawer/touch.mjs.map +1 -1
  425. package/lib/components/VNoSsr/VNoSsr.mjs +1 -7
  426. package/lib/components/VNoSsr/VNoSsr.mjs.map +1 -1
  427. package/lib/components/VNoSsr/index.d.ts +8 -0
  428. package/lib/components/VNoSsr/index.mjs.map +1 -1
  429. package/lib/components/VOtpInput/VOtpInput.mjs +7 -58
  430. package/lib/components/VOtpInput/VOtpInput.mjs.map +1 -1
  431. package/lib/components/VOtpInput/index.mjs.map +1 -1
  432. package/lib/components/VOverflowBtn/VOverflowBtn.mjs +7 -19
  433. package/lib/components/VOverflowBtn/VOverflowBtn.mjs.map +1 -1
  434. package/lib/components/VOverflowBtn/index.mjs.map +1 -1
  435. package/lib/components/VOverlay/VOverlay.mjs +50 -54
  436. package/lib/components/VOverlay/VOverlay.mjs.map +1 -1
  437. package/lib/components/VOverlay/index.d.ts +551 -0
  438. package/lib/components/VOverlay/index.mjs.map +1 -1
  439. package/lib/components/VOverlay/locationStrategies.mjs +39 -65
  440. package/lib/components/VOverlay/locationStrategies.mjs.map +1 -1
  441. package/lib/components/VOverlay/requestNewFrame.mjs +1 -2
  442. package/lib/components/VOverlay/requestNewFrame.mjs.map +1 -1
  443. package/lib/components/VOverlay/scrollStrategies.mjs +10 -29
  444. package/lib/components/VOverlay/scrollStrategies.mjs.map +1 -1
  445. package/lib/components/VOverlay/useActivator.mjs +29 -29
  446. package/lib/components/VOverlay/useActivator.mjs.map +1 -1
  447. package/lib/components/VOverlay/util/point.mjs +3 -4
  448. package/lib/components/VOverlay/util/point.mjs.map +1 -1
  449. package/lib/components/VPagination/VPagination.mjs +20 -30
  450. package/lib/components/VPagination/VPagination.mjs.map +1 -1
  451. package/lib/components/VPagination/index.d.ts +249 -0
  452. package/lib/components/VPagination/index.mjs.map +1 -1
  453. package/lib/components/VParallax/VParallax.mjs +32 -24
  454. package/lib/components/VParallax/VParallax.mjs.map +1 -1
  455. package/lib/components/VParallax/index.d.ts +18 -0
  456. package/lib/components/VParallax/index.mjs.map +1 -1
  457. package/lib/components/VPicker/VPicker.mjs +3 -12
  458. package/lib/components/VPicker/VPicker.mjs.map +1 -1
  459. package/lib/components/VPicker/index.mjs.map +1 -1
  460. package/lib/components/VProgressCircular/VProgressCircular.mjs +2 -5
  461. package/lib/components/VProgressCircular/VProgressCircular.mjs.map +1 -1
  462. package/lib/components/VProgressCircular/index.d.ts +69 -0
  463. package/lib/components/VProgressCircular/index.mjs.map +1 -1
  464. package/lib/components/VProgressLinear/VProgressLinear.mjs +5 -8
  465. package/lib/components/VProgressLinear/VProgressLinear.mjs.map +1 -1
  466. package/lib/components/VProgressLinear/index.d.ts +102 -0
  467. package/lib/components/VProgressLinear/index.mjs.map +1 -1
  468. package/lib/components/VRadio/VRadio.mjs +2 -4
  469. package/lib/components/VRadio/VRadio.mjs.map +1 -1
  470. package/lib/components/VRadio/index.d.ts +105 -0
  471. package/lib/components/VRadio/index.mjs.map +1 -1
  472. package/lib/components/VRadioGroup/VRadioGroup.css +2 -3
  473. package/lib/components/VRadioGroup/VRadioGroup.mjs +17 -21
  474. package/lib/components/VRadioGroup/VRadioGroup.mjs.map +1 -1
  475. package/lib/components/VRadioGroup/VRadioGroup.sass +2 -2
  476. package/lib/components/VRadioGroup/_variables.scss +0 -1
  477. package/lib/components/VRadioGroup/index.d.ts +179 -0
  478. package/lib/components/VRadioGroup/index.mjs.map +1 -1
  479. package/lib/components/VRangeSlider/VRangeSlider.mjs +24 -27
  480. package/lib/components/VRangeSlider/VRangeSlider.mjs.map +1 -1
  481. package/lib/components/VRangeSlider/index.d.ts +246 -0
  482. package/lib/components/VRangeSlider/index.mjs.map +1 -1
  483. package/lib/components/VRating/VRating.mjs +6 -30
  484. package/lib/components/VRating/VRating.mjs.map +1 -1
  485. package/lib/components/VRating/index.d.ts +348 -0
  486. package/lib/components/VRating/index.mjs.map +1 -1
  487. package/lib/components/VResponsive/VResponsive.mjs +2 -5
  488. package/lib/components/VResponsive/VResponsive.mjs.map +1 -1
  489. package/lib/components/VResponsive/index.d.ts +24 -0
  490. package/lib/components/VResponsive/index.mjs.map +1 -1
  491. package/lib/components/VSelect/VSelect.css +21 -2
  492. package/lib/components/VSelect/VSelect.mjs +66 -43
  493. package/lib/components/VSelect/VSelect.mjs.map +1 -1
  494. package/lib/components/VSelect/VSelect.sass +16 -1
  495. package/lib/components/VSelect/_variables.scss +1 -0
  496. package/lib/components/VSelect/index.d.ts +1718 -0
  497. package/lib/components/VSelect/index.mjs.map +1 -1
  498. package/lib/components/VSelectionControl/VSelectionControl.mjs +17 -62
  499. package/lib/components/VSelectionControl/VSelectionControl.mjs.map +1 -1
  500. package/lib/components/VSelectionControl/index.d.ts +259 -0
  501. package/lib/components/VSelectionControl/index.mjs.map +1 -1
  502. package/lib/components/VSelectionControlGroup/VSelectionControlGroup.css +6 -0
  503. package/lib/components/VSelectionControlGroup/VSelectionControlGroup.mjs +59 -29
  504. package/lib/components/VSelectionControlGroup/VSelectionControlGroup.mjs.map +1 -1
  505. package/lib/components/VSelectionControlGroup/VSelectionControlGroup.sass +6 -0
  506. package/lib/components/VSelectionControlGroup/index.d.ts +96 -0
  507. package/lib/components/VSelectionControlGroup/index.mjs.map +1 -1
  508. package/lib/components/VSheet/VSheet.css +1 -1
  509. package/lib/components/VSheet/VSheet.mjs +2 -4
  510. package/lib/components/VSheet/VSheet.mjs.map +1 -1
  511. package/lib/components/VSheet/index.d.ts +69 -0
  512. package/lib/components/VSheet/index.mjs.map +1 -1
  513. package/lib/components/VSkeletonLoader/VSkeletonLoader.mjs +19 -32
  514. package/lib/components/VSkeletonLoader/VSkeletonLoader.mjs.map +1 -1
  515. package/lib/components/VSkeletonLoader/index.mjs.map +1 -1
  516. package/lib/components/VSlideGroup/VSlideGroup.mjs +56 -78
  517. package/lib/components/VSlideGroup/VSlideGroup.mjs.map +1 -1
  518. package/lib/components/VSlideGroup/VSlideGroupItem.mjs +5 -9
  519. package/lib/components/VSlideGroup/VSlideGroupItem.mjs.map +1 -1
  520. package/lib/components/VSlideGroup/helpers.mjs +4 -17
  521. package/lib/components/VSlideGroup/helpers.mjs.map +1 -1
  522. package/lib/components/VSlideGroup/index.d.ts +434 -0
  523. package/lib/components/VSlideGroup/index.mjs.map +1 -1
  524. package/lib/components/VSlider/VSlider.css +7 -2
  525. package/lib/components/VSlider/VSlider.mjs +19 -12
  526. package/lib/components/VSlider/VSlider.mjs.map +1 -1
  527. package/lib/components/VSlider/VSlider.sass +6 -2
  528. package/lib/components/VSlider/VSliderThumb.css +10 -6
  529. package/lib/components/VSlider/VSliderThumb.mjs +7 -18
  530. package/lib/components/VSlider/VSliderThumb.mjs.map +1 -1
  531. package/lib/components/VSlider/VSliderThumb.sass +11 -8
  532. package/lib/components/VSlider/VSliderTrack.css +20 -20
  533. package/lib/components/VSlider/VSliderTrack.mjs +16 -14
  534. package/lib/components/VSlider/VSliderTrack.mjs.map +1 -1
  535. package/lib/components/VSlider/VSliderTrack.sass +14 -14
  536. package/lib/components/VSlider/_variables.scss +2 -2
  537. package/lib/components/VSlider/index.d.ts +243 -0
  538. package/lib/components/VSlider/index.mjs.map +1 -1
  539. package/lib/components/VSlider/slider.mjs +15 -46
  540. package/lib/components/VSlider/slider.mjs.map +1 -1
  541. package/lib/components/VSnackbar/VSnackbar.css +2 -3
  542. package/lib/components/VSnackbar/VSnackbar.mjs +51 -60
  543. package/lib/components/VSnackbar/VSnackbar.mjs.map +1 -1
  544. package/lib/components/VSnackbar/index.d.ts +1696 -0
  545. package/lib/components/VSnackbar/index.mjs.map +1 -1
  546. package/lib/components/VSparkline/VSparkline.mjs +5 -40
  547. package/lib/components/VSparkline/VSparkline.mjs.map +1 -1
  548. package/lib/components/VSparkline/helpers/core.mjs +1 -1
  549. package/lib/components/VSparkline/helpers/core.mjs.map +1 -1
  550. package/lib/components/VSparkline/helpers/math.mjs +2 -3
  551. package/lib/components/VSparkline/helpers/math.mjs.map +1 -1
  552. package/lib/components/VSparkline/helpers/path.mjs +0 -4
  553. package/lib/components/VSparkline/helpers/path.mjs.map +1 -1
  554. package/lib/components/VSparkline/index.mjs.map +1 -1
  555. package/lib/components/VSpeedDial/VSpeedDial.mjs +3 -12
  556. package/lib/components/VSpeedDial/VSpeedDial.mjs.map +1 -1
  557. package/lib/components/VSpeedDial/index.mjs.map +1 -1
  558. package/lib/components/VStepper/VStepper.mjs +5 -24
  559. package/lib/components/VStepper/VStepper.mjs.map +1 -1
  560. package/lib/components/VStepper/VStepperContent.mjs +4 -25
  561. package/lib/components/VStepper/VStepperContent.mjs.map +1 -1
  562. package/lib/components/VStepper/VStepperStep.mjs +0 -24
  563. package/lib/components/VStepper/VStepperStep.mjs.map +1 -1
  564. package/lib/components/VStepper/index.mjs.map +1 -1
  565. package/lib/components/VSwitch/VSwitch.css +2 -2
  566. package/lib/components/VSwitch/VSwitch.mjs +26 -17
  567. package/lib/components/VSwitch/VSwitch.mjs.map +1 -1
  568. package/lib/components/VSwitch/index.d.ts +186 -0
  569. package/lib/components/VSwitch/index.mjs.map +1 -1
  570. package/lib/components/VSystemBar/VSystemBar.css +1 -1
  571. package/lib/components/VSystemBar/VSystemBar.mjs +3 -9
  572. package/lib/components/VSystemBar/VSystemBar.mjs.map +1 -1
  573. package/lib/components/VSystemBar/index.d.ts +62 -0
  574. package/lib/components/VSystemBar/index.mjs.map +1 -1
  575. package/lib/components/VTable/VTable.css +12 -12
  576. package/lib/components/VTable/VTable.mjs +5 -6
  577. package/lib/components/VTable/VTable.mjs.map +1 -1
  578. package/lib/components/VTable/VTable.sass +29 -18
  579. package/lib/components/VTable/index.d.ts +44 -0
  580. package/lib/components/VTable/index.mjs.map +1 -1
  581. package/lib/components/VTabs/VTab.css +3 -1
  582. package/lib/components/VTabs/VTab.mjs +5 -12
  583. package/lib/components/VTabs/VTab.mjs.map +1 -1
  584. package/lib/components/VTabs/VTab.sass +3 -1
  585. package/lib/components/VTabs/VTabs.css +7 -7
  586. package/lib/components/VTabs/VTabs.mjs +18 -21
  587. package/lib/components/VTabs/VTabs.mjs.map +1 -1
  588. package/lib/components/VTabs/VTabs.sass +5 -5
  589. package/lib/components/VTabs/_variables.scss +1 -1
  590. package/lib/components/VTabs/index.d.ts +187 -0
  591. package/lib/components/VTabs/index.mjs.map +1 -1
  592. package/lib/components/VTabs/shared.mjs.map +1 -1
  593. package/lib/components/VTextField/VTextField.css +2 -3
  594. package/lib/components/VTextField/VTextField.mjs +54 -56
  595. package/lib/components/VTextField/VTextField.mjs.map +1 -1
  596. package/lib/components/VTextField/VTextField.sass +2 -4
  597. package/lib/components/VTextField/index.d.ts +1807 -0
  598. package/lib/components/VTextField/index.mjs.map +1 -1
  599. package/lib/components/VTextarea/VTextarea.css +5 -3
  600. package/lib/components/VTextarea/VTextarea.mjs +26 -33
  601. package/lib/components/VTextarea/VTextarea.mjs.map +1 -1
  602. package/lib/components/VTextarea/VTextarea.sass +5 -4
  603. package/lib/components/VTextarea/index.d.ts +461 -0
  604. package/lib/components/VTextarea/index.mjs.map +1 -1
  605. package/lib/components/VThemeProvider/VThemeProvider.mjs +2 -5
  606. package/lib/components/VThemeProvider/VThemeProvider.mjs.map +1 -1
  607. package/lib/components/VThemeProvider/index.d.ts +25 -0
  608. package/lib/components/VThemeProvider/index.mjs.map +1 -1
  609. package/lib/components/VTimePicker/SelectingTimes.mjs +0 -3
  610. package/lib/components/VTimePicker/SelectingTimes.mjs.map +1 -1
  611. package/lib/components/VTimePicker/VTimePicker.mjs +3 -53
  612. package/lib/components/VTimePicker/VTimePicker.mjs.map +1 -1
  613. package/lib/components/VTimePicker/VTimePickerClock.mjs +6 -42
  614. package/lib/components/VTimePicker/VTimePickerClock.mjs.map +1 -1
  615. package/lib/components/VTimePicker/VTimePickerTitle.mjs +4 -13
  616. package/lib/components/VTimePicker/VTimePickerTitle.mjs.map +1 -1
  617. package/lib/components/VTimePicker/index.mjs.map +1 -1
  618. package/lib/components/VTimeline/VTimeline.css +77 -41
  619. package/lib/components/VTimeline/VTimeline.mjs +8 -10
  620. package/lib/components/VTimeline/VTimeline.mjs.map +1 -1
  621. package/lib/components/VTimeline/VTimeline.sass +95 -64
  622. package/lib/components/VTimeline/VTimelineDivider.mjs +2 -7
  623. package/lib/components/VTimeline/VTimelineDivider.mjs.map +1 -1
  624. package/lib/components/VTimeline/VTimelineItem.mjs +2 -8
  625. package/lib/components/VTimeline/VTimelineItem.mjs.map +1 -1
  626. package/lib/components/VTimeline/_mixins.sass +10 -0
  627. package/lib/components/VTimeline/_variables.scss +4 -3
  628. package/lib/components/VTimeline/index.d.ts +158 -0
  629. package/lib/components/VTimeline/index.mjs.map +1 -1
  630. package/lib/components/VToolbar/VToolbar.css +3 -4
  631. package/lib/components/VToolbar/VToolbar.mjs +3 -11
  632. package/lib/components/VToolbar/VToolbar.mjs.map +1 -1
  633. package/lib/components/VToolbar/VToolbar.sass +0 -1
  634. package/lib/components/VToolbar/VToolbarItems.mjs +0 -4
  635. package/lib/components/VToolbar/VToolbarItems.mjs.map +1 -1
  636. package/lib/components/VToolbar/VToolbarTitle.mjs +0 -5
  637. package/lib/components/VToolbar/VToolbarTitle.mjs.map +1 -1
  638. package/lib/components/VToolbar/_variables.scss +1 -1
  639. package/lib/components/VToolbar/index.d.ts +377 -0
  640. package/lib/components/VToolbar/index.mjs.map +1 -1
  641. package/lib/components/VTooltip/VTooltip.mjs +46 -57
  642. package/lib/components/VTooltip/VTooltip.mjs.map +1 -1
  643. package/lib/components/VTooltip/index.d.ts +1789 -0
  644. package/lib/components/VTooltip/index.mjs.map +1 -1
  645. package/lib/components/VTreeview/VTreeview.mjs +18 -75
  646. package/lib/components/VTreeview/VTreeview.mjs.map +1 -1
  647. package/lib/components/VTreeview/VTreeviewNode.mjs +2 -32
  648. package/lib/components/VTreeview/VTreeviewNode.mjs.map +1 -1
  649. package/lib/components/VTreeview/index.mjs.map +1 -1
  650. package/lib/components/VTreeview/util/filterTreeItems.mjs +0 -6
  651. package/lib/components/VTreeview/util/filterTreeItems.mjs.map +1 -1
  652. package/lib/components/VValidation/VValidation.mjs +2 -5
  653. package/lib/components/VValidation/VValidation.mjs.map +1 -1
  654. package/lib/components/VValidation/index.d.ts +67 -0
  655. package/lib/components/VValidation/index.mjs.map +1 -1
  656. package/lib/components/VVirtualScroll/VVirtualScroll.mjs +3 -18
  657. package/lib/components/VVirtualScroll/VVirtualScroll.mjs.map +1 -1
  658. package/lib/components/VVirtualScroll/index.mjs.map +1 -1
  659. package/lib/components/VWindow/VWindow.mjs +6 -22
  660. package/lib/components/VWindow/VWindow.mjs.map +1 -1
  661. package/lib/components/VWindow/VWindowItem.mjs +8 -21
  662. package/lib/components/VWindow/VWindowItem.mjs.map +1 -1
  663. package/lib/components/VWindow/index.d.ts +378 -0
  664. package/lib/components/VWindow/index.mjs.map +1 -1
  665. package/lib/components/index.d.ts +15918 -5527
  666. package/lib/components/index.mjs +0 -11
  667. package/lib/components/index.mjs.map +1 -1
  668. package/lib/components/transitions/createTransition.mjs +0 -10
  669. package/lib/components/transitions/createTransition.mjs.map +1 -1
  670. package/lib/components/transitions/dialog-transition.mjs +8 -23
  671. package/lib/components/transitions/dialog-transition.mjs.map +1 -1
  672. package/lib/components/transitions/expand-transition.mjs +2 -11
  673. package/lib/components/transitions/expand-transition.mjs.map +1 -1
  674. package/lib/components/transitions/index.d.ts +470 -0
  675. package/lib/components/transitions/index.mjs +5 -4
  676. package/lib/components/transitions/index.mjs.map +1 -1
  677. package/lib/composables/border.mjs +0 -3
  678. package/lib/composables/border.mjs.map +1 -1
  679. package/lib/composables/color.mjs +0 -4
  680. package/lib/composables/color.mjs.map +1 -1
  681. package/lib/composables/defaults.mjs +1 -6
  682. package/lib/composables/defaults.mjs.map +1 -1
  683. package/lib/composables/delay.mjs +1 -6
  684. package/lib/composables/delay.mjs.map +1 -1
  685. package/lib/composables/density.mjs +4 -1
  686. package/lib/composables/density.mjs.map +1 -1
  687. package/lib/composables/dimensions.mjs +0 -1
  688. package/lib/composables/dimensions.mjs.map +1 -1
  689. package/lib/composables/display.mjs +8 -21
  690. package/lib/composables/display.mjs.map +1 -1
  691. package/lib/composables/elevation.mjs +2 -4
  692. package/lib/composables/elevation.mjs.map +1 -1
  693. package/lib/composables/filter.mjs +11 -20
  694. package/lib/composables/filter.mjs.map +1 -1
  695. package/lib/composables/focus.mjs +0 -5
  696. package/lib/composables/focus.mjs.map +1 -1
  697. package/lib/composables/form.mjs +8 -16
  698. package/lib/composables/form.mjs.map +1 -1
  699. package/lib/composables/forwardRefs.mjs +9 -16
  700. package/lib/composables/forwardRefs.mjs.map +1 -1
  701. package/lib/composables/group.mjs +11 -38
  702. package/lib/composables/group.mjs.map +1 -1
  703. package/lib/composables/hydration.mjs +8 -5
  704. package/lib/composables/hydration.mjs.map +1 -1
  705. package/lib/composables/icons.mjs +11 -21
  706. package/lib/composables/icons.mjs.map +1 -1
  707. package/lib/composables/index.mjs +1 -2
  708. package/lib/composables/index.mjs.map +1 -1
  709. package/lib/composables/intersectionObserver.mjs +0 -3
  710. package/lib/composables/intersectionObserver.mjs.map +1 -1
  711. package/lib/composables/items.mjs +5 -17
  712. package/lib/composables/items.mjs.map +1 -1
  713. package/lib/composables/layout.mjs +31 -37
  714. package/lib/composables/layout.mjs.map +1 -1
  715. package/lib/composables/lazy.mjs +2 -3
  716. package/lib/composables/lazy.mjs.map +1 -1
  717. package/lib/composables/loader.mjs +0 -3
  718. package/lib/composables/loader.mjs.map +1 -1
  719. package/lib/composables/locale.mjs +48 -127
  720. package/lib/composables/locale.mjs.map +1 -1
  721. package/lib/composables/location.mjs +1 -8
  722. package/lib/composables/location.mjs.map +1 -1
  723. package/lib/composables/mutationObserver.mjs +7 -7
  724. package/lib/composables/mutationObserver.mjs.map +1 -1
  725. package/lib/composables/nested/nested.mjs +21 -38
  726. package/lib/composables/nested/nested.mjs.map +1 -1
  727. package/lib/composables/nested/openStrategies.mjs +0 -9
  728. package/lib/composables/nested/openStrategies.mjs.map +1 -1
  729. package/lib/composables/nested/selectStrategies.mjs +6 -21
  730. package/lib/composables/nested/selectStrategies.mjs.map +1 -1
  731. package/lib/composables/position.mjs +1 -4
  732. package/lib/composables/position.mjs.map +1 -1
  733. package/lib/composables/proxiedModel.mjs +28 -16
  734. package/lib/composables/proxiedModel.mjs.map +1 -1
  735. package/lib/composables/refs.mjs +0 -2
  736. package/lib/composables/refs.mjs.map +1 -1
  737. package/lib/composables/resizeObserver.mjs +0 -3
  738. package/lib/composables/resizeObserver.mjs.map +1 -1
  739. package/lib/composables/rounded.mjs +0 -3
  740. package/lib/composables/rounded.mjs.map +1 -1
  741. package/lib/composables/router.mjs +14 -14
  742. package/lib/composables/router.mjs.map +1 -1
  743. package/lib/composables/scopeId.mjs.map +1 -1
  744. package/lib/composables/scroll.mjs +4 -12
  745. package/lib/composables/scroll.mjs.map +1 -1
  746. package/lib/composables/selectLink.mjs +7 -6
  747. package/lib/composables/selectLink.mjs.map +1 -1
  748. package/lib/composables/size.mjs +0 -3
  749. package/lib/composables/size.mjs.map +1 -1
  750. package/lib/composables/ssrBoot.mjs +2 -1
  751. package/lib/composables/ssrBoot.mjs.map +1 -1
  752. package/lib/composables/stack.mjs +0 -6
  753. package/lib/composables/stack.mjs.map +1 -1
  754. package/lib/composables/tag.mjs +0 -1
  755. package/lib/composables/tag.mjs.map +1 -1
  756. package/lib/composables/teleport.mjs +0 -4
  757. package/lib/composables/teleport.mjs.map +1 -1
  758. package/lib/composables/theme.mjs +65 -81
  759. package/lib/composables/theme.mjs.map +1 -1
  760. package/lib/composables/toggleScope.mjs +0 -1
  761. package/lib/composables/toggleScope.mjs.map +1 -1
  762. package/lib/composables/touch.mjs +6 -31
  763. package/lib/composables/touch.mjs.map +1 -1
  764. package/lib/composables/transition.mjs +0 -4
  765. package/lib/composables/transition.mjs.map +1 -1
  766. package/lib/composables/validation.mjs +29 -27
  767. package/lib/composables/validation.mjs.map +1 -1
  768. package/lib/composables/variant.mjs +0 -2
  769. package/lib/composables/variant.mjs.map +1 -1
  770. package/lib/directives/click-outside/index.mjs +10 -22
  771. package/lib/directives/click-outside/index.mjs.map +1 -1
  772. package/lib/directives/color/index.mjs +0 -11
  773. package/lib/directives/color/index.mjs.map +1 -1
  774. package/lib/directives/index.d.ts +104 -13
  775. package/lib/directives/index.mjs +0 -1
  776. package/lib/directives/index.mjs.map +1 -1
  777. package/lib/directives/intersect/index.mjs +3 -10
  778. package/lib/directives/intersect/index.mjs.map +1 -1
  779. package/lib/directives/mutate/index.mjs +5 -11
  780. package/lib/directives/mutate/index.mjs.map +1 -1
  781. package/lib/directives/resize/index.mjs +0 -5
  782. package/lib/directives/resize/index.mjs.map +1 -1
  783. package/lib/directives/ripple/index.mjs +12 -66
  784. package/lib/directives/ripple/index.mjs.map +1 -1
  785. package/lib/directives/scroll/index.mjs +1 -7
  786. package/lib/directives/scroll/index.mjs.map +1 -1
  787. package/lib/directives/touch/index.mjs +3 -18
  788. package/lib/directives/touch/index.mjs.map +1 -1
  789. package/lib/entry-bundler.mjs +2 -1
  790. package/lib/entry-bundler.mjs.map +1 -1
  791. package/lib/framework.mjs +66 -61
  792. package/lib/framework.mjs.map +1 -1
  793. package/lib/iconsets/fa-svg.mjs +0 -1
  794. package/lib/iconsets/fa-svg.mjs.map +1 -1
  795. package/lib/iconsets/fa.mjs +0 -1
  796. package/lib/iconsets/fa.mjs.map +1 -1
  797. package/lib/iconsets/fa4.mjs +4 -3
  798. package/lib/iconsets/fa4.mjs.map +1 -1
  799. package/lib/iconsets/md.mjs +4 -3
  800. package/lib/iconsets/md.mjs.map +1 -1
  801. package/lib/iconsets/mdi-svg.mjs +1 -1
  802. package/lib/iconsets/mdi-svg.mjs.map +1 -1
  803. package/lib/iconsets/mdi.mjs +4 -3
  804. package/lib/iconsets/mdi.mjs.map +1 -1
  805. package/lib/index.d.ts +106 -107
  806. package/lib/locale/adapters/vue-i18n.d.ts +29 -0
  807. package/lib/locale/adapters/vue-i18n.mjs +59 -54
  808. package/lib/locale/adapters/vue-i18n.mjs.map +1 -1
  809. package/lib/locale/adapters/vuetify.d.ts +24 -0
  810. package/lib/locale/adapters/vuetify.mjs +97 -0
  811. package/lib/locale/adapters/vuetify.mjs.map +1 -0
  812. package/lib/locale/af.mjs +5 -0
  813. package/lib/locale/af.mjs.map +1 -1
  814. package/lib/locale/ar.mjs +5 -0
  815. package/lib/locale/ar.mjs.map +1 -1
  816. package/lib/locale/az.mjs +5 -0
  817. package/lib/locale/az.mjs.map +1 -1
  818. package/lib/locale/bg.mjs +5 -0
  819. package/lib/locale/bg.mjs.map +1 -1
  820. package/lib/locale/ca.mjs +5 -0
  821. package/lib/locale/ca.mjs.map +1 -1
  822. package/lib/locale/ckb.mjs +5 -0
  823. package/lib/locale/ckb.mjs.map +1 -1
  824. package/lib/locale/cs.mjs +5 -0
  825. package/lib/locale/cs.mjs.map +1 -1
  826. package/lib/locale/da.mjs +5 -0
  827. package/lib/locale/da.mjs.map +1 -1
  828. package/lib/locale/de.mjs +5 -0
  829. package/lib/locale/de.mjs.map +1 -1
  830. package/lib/locale/el.mjs +5 -0
  831. package/lib/locale/el.mjs.map +1 -1
  832. package/lib/locale/en.mjs +5 -0
  833. package/lib/locale/en.mjs.map +1 -1
  834. package/lib/locale/es.mjs +5 -0
  835. package/lib/locale/es.mjs.map +1 -1
  836. package/lib/locale/et.mjs +5 -0
  837. package/lib/locale/et.mjs.map +1 -1
  838. package/lib/locale/fa.mjs +5 -0
  839. package/lib/locale/fa.mjs.map +1 -1
  840. package/lib/locale/fi.mjs +5 -0
  841. package/lib/locale/fi.mjs.map +1 -1
  842. package/lib/locale/fr.mjs +5 -0
  843. package/lib/locale/fr.mjs.map +1 -1
  844. package/lib/locale/he.mjs +5 -0
  845. package/lib/locale/he.mjs.map +1 -1
  846. package/lib/locale/hr.mjs +5 -0
  847. package/lib/locale/hr.mjs.map +1 -1
  848. package/lib/locale/hu.mjs +5 -0
  849. package/lib/locale/hu.mjs.map +1 -1
  850. package/lib/locale/id.mjs +5 -0
  851. package/lib/locale/id.mjs.map +1 -1
  852. package/lib/locale/index.d.ts +212 -2
  853. package/lib/locale/index.mjs +1 -1
  854. package/lib/locale/index.mjs.map +1 -1
  855. package/lib/locale/it.mjs +5 -0
  856. package/lib/locale/it.mjs.map +1 -1
  857. package/lib/locale/ja.mjs +5 -0
  858. package/lib/locale/ja.mjs.map +1 -1
  859. package/lib/locale/ko.mjs +5 -0
  860. package/lib/locale/ko.mjs.map +1 -1
  861. package/lib/locale/lt.mjs +5 -0
  862. package/lib/locale/lt.mjs.map +1 -1
  863. package/lib/locale/lv.mjs +5 -0
  864. package/lib/locale/lv.mjs.map +1 -1
  865. package/lib/locale/nl.mjs +5 -0
  866. package/lib/locale/nl.mjs.map +1 -1
  867. package/lib/locale/no.mjs +5 -0
  868. package/lib/locale/no.mjs.map +1 -1
  869. package/lib/locale/pl.mjs +9 -4
  870. package/lib/locale/pl.mjs.map +1 -1
  871. package/lib/locale/pt.mjs +5 -0
  872. package/lib/locale/pt.mjs.map +1 -1
  873. package/lib/locale/ro.mjs +5 -0
  874. package/lib/locale/ro.mjs.map +1 -1
  875. package/lib/locale/ru.mjs +5 -0
  876. package/lib/locale/ru.mjs.map +1 -1
  877. package/lib/locale/sk.mjs +5 -0
  878. package/lib/locale/sk.mjs.map +1 -1
  879. package/lib/locale/sl.mjs +5 -0
  880. package/lib/locale/sl.mjs.map +1 -1
  881. package/lib/locale/sr-Cyrl.mjs +5 -0
  882. package/lib/locale/sr-Cyrl.mjs.map +1 -1
  883. package/lib/locale/sr-Latn.mjs +5 -0
  884. package/lib/locale/sr-Latn.mjs.map +1 -1
  885. package/lib/locale/sv.mjs +5 -0
  886. package/lib/locale/sv.mjs.map +1 -1
  887. package/lib/locale/th.mjs +5 -0
  888. package/lib/locale/th.mjs.map +1 -1
  889. package/lib/locale/tr.mjs +5 -0
  890. package/lib/locale/tr.mjs.map +1 -1
  891. package/lib/locale/uk.mjs +5 -0
  892. package/lib/locale/uk.mjs.map +1 -1
  893. package/lib/locale/vi.mjs +5 -0
  894. package/lib/locale/vi.mjs.map +1 -1
  895. package/lib/locale/zh-Hans.mjs +5 -0
  896. package/lib/locale/zh-Hans.mjs.map +1 -1
  897. package/lib/locale/zh-Hant.mjs +5 -0
  898. package/lib/locale/zh-Hant.mjs.map +1 -1
  899. package/lib/services/goto/easing-patterns.mjs +24 -24
  900. package/lib/services/goto/easing-patterns.mjs.map +1 -1
  901. package/lib/services/goto/index.mjs +11 -15
  902. package/lib/services/goto/index.mjs.map +1 -1
  903. package/lib/services/goto/util.mjs +1 -8
  904. package/lib/services/goto/util.mjs.map +1 -1
  905. package/lib/styles/main.css +105 -101
  906. package/lib/styles/settings/_colors.scss +84 -84
  907. package/lib/styles/settings/_elevations.scss +3 -3
  908. package/lib/styles/settings/_utilities.scss +11 -4
  909. package/lib/styles/tools/_states.sass +8 -3
  910. package/lib/styles/tools/_variant.sass +0 -1
  911. package/lib/util/anchor.mjs +0 -3
  912. package/lib/util/anchor.mjs.map +1 -1
  913. package/lib/util/animation.mjs +14 -4
  914. package/lib/util/animation.mjs.map +1 -1
  915. package/lib/util/box.mjs +0 -5
  916. package/lib/util/box.mjs.map +1 -1
  917. package/lib/util/color/APCA.mjs +23 -21
  918. package/lib/util/color/APCA.mjs.map +1 -1
  919. package/lib/util/color/transformCIELAB.mjs +0 -2
  920. package/lib/util/color/transformCIELAB.mjs.map +1 -1
  921. package/lib/util/color/transformSRGB.mjs +14 -12
  922. package/lib/util/color/transformSRGB.mjs.map +1 -1
  923. package/lib/util/colorUtils.mjs +8 -25
  924. package/lib/util/colorUtils.mjs.map +1 -1
  925. package/lib/util/colors.mjs.map +1 -1
  926. package/lib/util/console.mjs +5 -14
  927. package/lib/util/console.mjs.map +1 -1
  928. package/lib/util/createSimpleFunctional.mjs +1 -4
  929. package/lib/util/createSimpleFunctional.mjs.map +1 -1
  930. package/lib/util/dateTimeUtils.mjs +0 -10
  931. package/lib/util/dateTimeUtils.mjs.map +1 -1
  932. package/lib/util/defineComponent.mjs +13 -37
  933. package/lib/util/defineComponent.mjs.map +1 -1
  934. package/lib/util/dom.mjs +4 -4
  935. package/lib/util/dom.mjs.map +1 -1
  936. package/lib/util/easing.mjs +0 -1
  937. package/lib/util/easing.mjs.map +1 -1
  938. package/lib/util/getCurrentInstance.mjs +3 -10
  939. package/lib/util/getCurrentInstance.mjs.map +1 -1
  940. package/lib/util/getScrollParent.mjs +3 -4
  941. package/lib/util/getScrollParent.mjs.map +1 -1
  942. package/lib/util/globals.mjs +1 -1
  943. package/lib/util/globals.mjs.map +1 -1
  944. package/lib/util/helpers.mjs +55 -86
  945. package/lib/util/helpers.mjs.map +1 -1
  946. package/lib/util/injectSelf.mjs +0 -1
  947. package/lib/util/injectSelf.mjs.map +1 -1
  948. package/lib/util/isFixedPosition.mjs +0 -2
  949. package/lib/util/isFixedPosition.mjs.map +1 -1
  950. package/lib/util/propsFactory.mjs +4 -5
  951. package/lib/util/propsFactory.mjs.map +1 -1
  952. package/lib/util/useRender.mjs +0 -1
  953. package/lib/util/useRender.mjs.map +1 -1
  954. package/package.json +17 -19
  955. package/lib/composables/rtl.mjs +0 -44
  956. package/lib/composables/rtl.mjs.map +0 -1
  957. package/lib/locale/adapters/vue-intl.mjs +0 -67
  958. package/lib/locale/adapters/vue-intl.mjs.map +0 -1
  959. package/lib/styles.scss +0 -4
@@ -1 +1 @@
1
- {"version":3,"file":"scrollStrategies.mjs","names":["convertToUnit","getScrollParents","hasScrollbar","IN_BROWSER","propsFactory","effectScope","nextTick","onScopeDispose","watchEffect","requestNewFrame","scrollStrategies","none","close","closeScrollStrategy","block","blockScrollStrategy","reposition","repositionScrollStrategy","makeScrollStrategyProps","scrollStrategy","type","String","Function","default","validator","val","useScrollStrategies","props","data","scope","stop","isActive","value","run","onScroll","e","bindScroll","activatorEl","contentEl","scrollElements","Set","filter","el","classList","contains","scrollbarWidth","window","innerWidth","document","documentElement","offsetWidth","scrollableParent","root","offsetParent","add","forEach","i","style","setProperty","scrollLeft","scrollTop","x","parseFloat","getPropertyValue","y","removeProperty","remove","slow","raf","update","start","performance","now","updateLocation","time","cancelAnimationFrame","requestAnimationFrame","addEventListener","passive","removeEventListener"],"sources":["../../../src/components/VOverlay/scrollStrategies.ts"],"sourcesContent":["// Utilities\nimport { convertToUnit, getScrollParents, hasScrollbar, IN_BROWSER, propsFactory } from '@/util'\nimport { effectScope, nextTick, onScopeDispose, watchEffect } from 'vue'\nimport { requestNewFrame } from './requestNewFrame'\n\n// Types\nimport type { EffectScope, PropType, Ref } from 'vue'\n\nexport interface ScrollStrategyData {\n root: Ref<HTMLElement | undefined>\n contentEl: Ref<HTMLElement | undefined>\n activatorEl: Ref<HTMLElement | undefined>\n isActive: Ref<boolean>\n updateLocation: Ref<((e: Event) => void) | undefined>\n}\n\nconst scrollStrategies = {\n none: null,\n close: closeScrollStrategy,\n block: blockScrollStrategy,\n reposition: repositionScrollStrategy,\n}\n\ninterface StrategyProps {\n scrollStrategy: keyof typeof scrollStrategies | ((data: ScrollStrategyData) => void)\n}\n\nexport const makeScrollStrategyProps = propsFactory({\n scrollStrategy: {\n type: [String, Function] as PropType<StrategyProps['scrollStrategy']>,\n default: 'block',\n validator: (val: any) => typeof val === 'function' || val in scrollStrategies,\n },\n})\n\nexport function useScrollStrategies (\n props: StrategyProps,\n data: ScrollStrategyData\n) {\n if (!IN_BROWSER) return\n\n let scope: EffectScope | undefined\n watchEffect(async () => {\n scope?.stop()\n\n if (!(data.isActive.value && props.scrollStrategy)) return\n\n scope = effectScope()\n await nextTick()\n scope.run(() => {\n if (typeof props.scrollStrategy === 'function') {\n props.scrollStrategy(data)\n } else {\n scrollStrategies[props.scrollStrategy]?.(data)\n }\n })\n })\n}\n\nfunction closeScrollStrategy (data: ScrollStrategyData) {\n function onScroll (e: Event) {\n data.isActive.value = false\n }\n\n bindScroll(data.activatorEl.value ?? data.contentEl.value, onScroll)\n}\n\nfunction blockScrollStrategy (data: ScrollStrategyData) {\n const scrollElements = [...new Set([\n ...getScrollParents(data.activatorEl.value),\n ...getScrollParents(data.contentEl.value),\n ])].filter(el => !el.classList.contains('v-overlay-scroll-blocked'))\n const scrollbarWidth = window.innerWidth - document.documentElement.offsetWidth\n\n const scrollableParent = (el => hasScrollbar(el) && el)(data.root.value?.offsetParent || document.documentElement)\n if (scrollableParent) {\n data.root.value!.classList.add('v-overlay--scroll-blocked')\n }\n\n scrollElements.forEach((el, i) => {\n el.style.setProperty('--v-body-scroll-x', convertToUnit(-el.scrollLeft))\n el.style.setProperty('--v-body-scroll-y', convertToUnit(-el.scrollTop))\n el.style.setProperty('--v-scrollbar-offset', convertToUnit(scrollbarWidth))\n el.classList.add('v-overlay-scroll-blocked')\n })\n\n onScopeDispose(() => {\n scrollElements.forEach((el, i) => {\n const x = parseFloat(el.style.getPropertyValue('--v-body-scroll-x'))\n const y = parseFloat(el.style.getPropertyValue('--v-body-scroll-y'))\n\n el.style.removeProperty('--v-body-scroll-x')\n el.style.removeProperty('--v-body-scroll-y')\n el.style.removeProperty('--v-scrollbar-offset')\n el.classList.remove('v-overlay-scroll-blocked')\n\n el.scrollLeft = -x\n el.scrollTop = -y\n })\n if (scrollableParent) {\n data.root.value!.classList.remove('v-overlay--scroll-blocked')\n }\n })\n}\n\nfunction repositionScrollStrategy (data: ScrollStrategyData) {\n let slow = false\n let raf = -1\n\n function update (e: Event) {\n requestNewFrame(() => {\n const start = performance.now()\n data.updateLocation.value?.(e)\n const time = performance.now() - start\n slow = time / (1000 / 60) > 2\n })\n }\n\n bindScroll(data.activatorEl.value ?? data.contentEl.value, e => {\n if (slow) {\n // If the position calculation is slow,\n // defer updates until scrolling is finished.\n // Browsers usually fire one scroll event per frame so\n // we just wait until we've got two frames without an event\n cancelAnimationFrame(raf)\n raf = requestAnimationFrame(() => {\n raf = requestAnimationFrame(() => {\n update(e)\n })\n })\n } else {\n update(e)\n }\n })\n}\n\n/** @private */\nfunction bindScroll (el: HTMLElement | undefined, onScroll: (e: Event) => void) {\n const scrollElements = [document, ...getScrollParents(el)]\n scrollElements.forEach(el => {\n el.addEventListener('scroll', onScroll, { passive: true })\n })\n\n onScopeDispose(() => {\n scrollElements.forEach(el => {\n el.removeEventListener('scroll', onScroll)\n })\n })\n}\n"],"mappings":"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"}
1
+ {"version":3,"file":"scrollStrategies.mjs","names":["convertToUnit","getScrollParents","hasScrollbar","IN_BROWSER","propsFactory","effectScope","nextTick","onScopeDispose","watchEffect","requestNewFrame","scrollStrategies","none","close","closeScrollStrategy","block","blockScrollStrategy","reposition","repositionScrollStrategy","makeScrollStrategyProps","scrollStrategy","type","String","Function","default","validator","val","useScrollStrategies","props","data","scope","stop","isActive","value","run","onScroll","e","bindScroll","activatorEl","contentEl","offsetParent","root","scrollElements","Set","contained","undefined","filter","el","classList","contains","scrollbarWidth","window","innerWidth","document","documentElement","offsetWidth","scrollableParent","add","forEach","i","style","setProperty","scrollLeft","scrollTop","x","parseFloat","getPropertyValue","y","removeProperty","remove","slow","raf","update","start","performance","now","updateLocation","time","cancelAnimationFrame","requestAnimationFrame","addEventListener","passive","removeEventListener"],"sources":["../../../src/components/VOverlay/scrollStrategies.ts"],"sourcesContent":["// Utilities\nimport { convertToUnit, getScrollParents, hasScrollbar, IN_BROWSER, propsFactory } from '@/util'\nimport { effectScope, nextTick, onScopeDispose, watchEffect } from 'vue'\nimport { requestNewFrame } from './requestNewFrame'\n\n// Types\nimport type { EffectScope, PropType, Ref } from 'vue'\n\nexport interface ScrollStrategyData {\n root: Ref<HTMLElement | undefined>\n contentEl: Ref<HTMLElement | undefined>\n activatorEl: Ref<HTMLElement | undefined>\n isActive: Ref<boolean>\n updateLocation: Ref<((e: Event) => void) | undefined>\n}\n\ntype ScrollStrategyFn = (data: ScrollStrategyData, props: StrategyProps) => void\n\nconst scrollStrategies = {\n none: null,\n close: closeScrollStrategy,\n block: blockScrollStrategy,\n reposition: repositionScrollStrategy,\n}\n\nexport interface StrategyProps {\n scrollStrategy: keyof typeof scrollStrategies | ScrollStrategyFn\n contained: boolean | undefined\n}\n\nexport const makeScrollStrategyProps = propsFactory({\n scrollStrategy: {\n type: [String, Function] as PropType<StrategyProps['scrollStrategy']>,\n default: 'block',\n validator: (val: any) => typeof val === 'function' || val in scrollStrategies,\n },\n}, 'v-overlay-scroll-strategies')\n\nexport function useScrollStrategies (\n props: StrategyProps,\n data: ScrollStrategyData\n) {\n if (!IN_BROWSER) return\n\n let scope: EffectScope | undefined\n watchEffect(async () => {\n scope?.stop()\n\n if (!(data.isActive.value && props.scrollStrategy)) return\n\n scope = effectScope()\n await nextTick()\n scope.run(() => {\n if (typeof props.scrollStrategy === 'function') {\n props.scrollStrategy(data, props)\n } else {\n scrollStrategies[props.scrollStrategy]?.(data, props)\n }\n })\n })\n}\n\nfunction closeScrollStrategy (data: ScrollStrategyData) {\n function onScroll (e: Event) {\n data.isActive.value = false\n }\n\n bindScroll(data.activatorEl.value ?? data.contentEl.value, onScroll)\n}\n\nfunction blockScrollStrategy (data: ScrollStrategyData, props: StrategyProps) {\n const offsetParent = data.root.value?.offsetParent\n const scrollElements = [...new Set([\n ...getScrollParents(data.activatorEl.value, props.contained ? offsetParent : undefined),\n ...getScrollParents(data.contentEl.value, props.contained ? offsetParent : undefined),\n ])].filter(el => !el.classList.contains('v-overlay-scroll-blocked'))\n const scrollbarWidth = window.innerWidth - document.documentElement.offsetWidth\n\n const scrollableParent = (el => hasScrollbar(el) && el)(offsetParent || document.documentElement)\n if (scrollableParent) {\n data.root.value!.classList.add('v-overlay--scroll-blocked')\n }\n\n scrollElements.forEach((el, i) => {\n el.style.setProperty('--v-body-scroll-x', convertToUnit(-el.scrollLeft))\n el.style.setProperty('--v-body-scroll-y', convertToUnit(-el.scrollTop))\n el.style.setProperty('--v-scrollbar-offset', convertToUnit(scrollbarWidth))\n el.classList.add('v-overlay-scroll-blocked')\n })\n\n onScopeDispose(() => {\n scrollElements.forEach((el, i) => {\n const x = parseFloat(el.style.getPropertyValue('--v-body-scroll-x'))\n const y = parseFloat(el.style.getPropertyValue('--v-body-scroll-y'))\n\n el.style.removeProperty('--v-body-scroll-x')\n el.style.removeProperty('--v-body-scroll-y')\n el.style.removeProperty('--v-scrollbar-offset')\n el.classList.remove('v-overlay-scroll-blocked')\n\n el.scrollLeft = -x\n el.scrollTop = -y\n })\n if (scrollableParent) {\n data.root.value!.classList.remove('v-overlay--scroll-blocked')\n }\n })\n}\n\nfunction repositionScrollStrategy (data: ScrollStrategyData) {\n let slow = false\n let raf = -1\n\n function update (e: Event) {\n requestNewFrame(() => {\n const start = performance.now()\n data.updateLocation.value?.(e)\n const time = performance.now() - start\n slow = time / (1000 / 60) > 2\n })\n }\n\n bindScroll(data.activatorEl.value ?? data.contentEl.value, e => {\n if (slow) {\n // If the position calculation is slow,\n // defer updates until scrolling is finished.\n // Browsers usually fire one scroll event per frame so\n // we just wait until we've got two frames without an event\n cancelAnimationFrame(raf)\n raf = requestAnimationFrame(() => {\n raf = requestAnimationFrame(() => {\n update(e)\n })\n })\n } else {\n update(e)\n }\n })\n}\n\n/** @private */\nfunction bindScroll (el: HTMLElement | undefined, onScroll: (e: Event) => void) {\n const scrollElements = [document, ...getScrollParents(el)]\n scrollElements.forEach(el => {\n el.addEventListener('scroll', onScroll, { passive: true })\n })\n\n onScopeDispose(() => {\n scrollElements.forEach(el => {\n el.removeEventListener('scroll', onScroll)\n })\n })\n}\n"],"mappings":"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"}
@@ -1,9 +1,10 @@
1
1
  // Composables
2
2
  import { makeDelayProps, useDelay } from "../../composables/delay.mjs";
3
3
  import { VMenuSymbol } from "../VMenu/shared.mjs"; // Utilities
4
-
5
4
  import { getCurrentInstance, IN_BROWSER, isComponentInstance, propsFactory, SUPPORTS_FOCUS_VISIBLE } from "../../util/index.mjs";
6
- import { computed, effectScope, inject, nextTick, onScopeDispose, ref, watch, watchEffect } from 'vue'; // Types
5
+ import { computed, effectScope, inject, nextTick, onScopeDispose, ref, watch, watchEffect } from 'vue';
6
+
7
+ // Types
7
8
 
8
9
  export const makeActivatorProps = propsFactory({
9
10
  activator: [String, Object],
@@ -22,7 +23,7 @@ export const makeActivatorProps = propsFactory({
22
23
  },
23
24
  closeOnContentClick: Boolean,
24
25
  ...makeDelayProps()
25
- });
26
+ }, 'v-overlay-activator');
26
27
  export function useActivator(props, _ref) {
27
28
  let {
28
29
  isActive,
@@ -31,6 +32,7 @@ export function useActivator(props, _ref) {
31
32
  const activatorEl = ref();
32
33
  let isHovered = false;
33
34
  let isFocused = false;
35
+ let firstEnter = true;
34
36
  const openOnFocus = computed(() => props.openOnFocus || props.openOnFocus == null && props.openOnHover);
35
37
  const openOnClick = computed(() => props.openOnClick || props.openOnClick == null && !props.openOnHover && !openOnFocus.value);
36
38
  const {
@@ -38,6 +40,9 @@ export function useActivator(props, _ref) {
38
40
  runCloseDelay
39
41
  } = useDelay(props, value => {
40
42
  if (value === (props.openOnHover && isHovered || openOnFocus.value && isFocused) && !(props.openOnHover && isActive.value && !isTop.value)) {
43
+ if (isActive.value !== value) {
44
+ firstEnter = true;
45
+ }
41
46
  isActive.value = value;
42
47
  }
43
48
  });
@@ -71,47 +76,55 @@ export function useActivator(props, _ref) {
71
76
  };
72
77
  const activatorEvents = computed(() => {
73
78
  const events = {};
74
-
75
79
  if (openOnClick.value) {
76
80
  events.click = availableEvents.click;
77
81
  }
78
-
79
82
  if (props.openOnHover) {
80
83
  events.mouseenter = availableEvents.mouseenter;
81
84
  events.mouseleave = availableEvents.mouseleave;
82
85
  }
83
-
84
86
  if (openOnFocus.value) {
85
87
  events.focus = availableEvents.focus;
86
88
  events.blur = availableEvents.blur;
87
89
  }
88
-
89
90
  return events;
90
91
  });
91
92
  const contentEvents = computed(() => {
92
93
  const events = {};
93
-
94
94
  if (props.openOnHover) {
95
95
  events.mouseenter = () => {
96
96
  isHovered = true;
97
97
  runOpenDelay();
98
98
  };
99
-
100
99
  events.mouseleave = () => {
101
100
  isHovered = false;
102
101
  runCloseDelay();
103
102
  };
104
103
  }
105
-
106
104
  if (props.closeOnContentClick) {
107
105
  const menu = inject(VMenuSymbol, null);
108
-
109
106
  events.click = () => {
110
107
  isActive.value = false;
111
108
  menu == null ? void 0 : menu.closeParents();
112
109
  };
113
110
  }
114
-
111
+ return events;
112
+ });
113
+ const scrimEvents = computed(() => {
114
+ const events = {};
115
+ if (props.openOnHover) {
116
+ events.mouseenter = () => {
117
+ if (firstEnter) {
118
+ isHovered = true;
119
+ firstEnter = false;
120
+ runOpenDelay();
121
+ }
122
+ };
123
+ events.mouseleave = () => {
124
+ isHovered = false;
125
+ runCloseDelay();
126
+ };
127
+ }
115
128
  return events;
116
129
  });
117
130
  watch(isTop, val => {
@@ -149,10 +162,10 @@ export function useActivator(props, _ref) {
149
162
  activatorEl,
150
163
  activatorRef,
151
164
  activatorEvents,
152
- contentEvents
165
+ contentEvents,
166
+ scrimEvents
153
167
  };
154
168
  }
155
-
156
169
  function _useActivator(props, vm, _ref2) {
157
170
  let {
158
171
  activatorEl,
@@ -163,7 +176,6 @@ function _useActivator(props, vm, _ref2) {
163
176
  const activator = getActivator(oldVal);
164
177
  activator && unbindActivatorProps(activator);
165
178
  }
166
-
167
179
  if (val) {
168
180
  nextTick(() => bindActivatorProps());
169
181
  }
@@ -176,12 +188,9 @@ function _useActivator(props, vm, _ref2) {
176
188
  onScopeDispose(() => {
177
189
  unbindActivatorProps();
178
190
  });
179
-
180
191
  function bindActivatorProps() {
181
192
  let el = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : getActivator();
182
-
183
193
  let _props = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : props.activatorProps;
184
-
185
194
  if (!el) return;
186
195
  Object.entries(activatorEvents.value).forEach(_ref3 => {
187
196
  let [name, cb] = _ref3;
@@ -195,12 +204,9 @@ function _useActivator(props, vm, _ref2) {
195
204
  }
196
205
  });
197
206
  }
198
-
199
207
  function unbindActivatorProps() {
200
208
  let el = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : getActivator();
201
-
202
209
  let _props = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : props.activatorProps;
203
-
204
210
  if (!el) return;
205
211
  Object.entries(activatorEvents.value).forEach(_ref4 => {
206
212
  let [name, cb] = _ref4;
@@ -210,23 +216,17 @@ function _useActivator(props, vm, _ref2) {
210
216
  el.removeAttribute(k);
211
217
  });
212
218
  }
213
-
214
219
  function getActivator() {
215
220
  var _activator;
216
-
217
221
  let selector = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : props.activator;
218
222
  let activator;
219
-
220
223
  if (selector) {
221
224
  if (selector === 'parent') {
222
225
  var _vm$proxy, _vm$proxy$$el;
223
-
224
226
  let el = vm == null ? void 0 : (_vm$proxy = vm.proxy) == null ? void 0 : (_vm$proxy$$el = _vm$proxy.$el) == null ? void 0 : _vm$proxy$$el.parentNode;
225
-
226
227
  while (el.hasAttribute('data-no-activator')) {
227
228
  el = el.parentNode;
228
229
  }
229
-
230
230
  activator = el;
231
231
  } else if (typeof selector === 'string') {
232
232
  // Selector
@@ -238,9 +238,9 @@ function _useActivator(props, vm, _ref2) {
238
238
  // HTMLElement | Element
239
239
  activator = selector;
240
240
  }
241
- } // The activator should only be a valid element (Ignore comments and text nodes)
242
-
241
+ }
243
242
 
243
+ // The activator should only be a valid element (Ignore comments and text nodes)
244
244
  activatorEl.value = ((_activator = activator) == null ? void 0 : _activator.nodeType) === Node.ELEMENT_NODE ? activator : null;
245
245
  return activatorEl.value;
246
246
  }
@@ -1 +1 @@
1
- {"version":3,"file":"useActivator.mjs","names":["makeDelayProps","useDelay","VMenuSymbol","getCurrentInstance","IN_BROWSER","isComponentInstance","propsFactory","SUPPORTS_FOCUS_VISIBLE","computed","effectScope","inject","nextTick","onScopeDispose","ref","watch","watchEffect","makeActivatorProps","activator","String","Object","activatorProps","type","default","openOnClick","Boolean","undefined","openOnHover","openOnFocus","closeOnContentClick","useActivator","props","isActive","isTop","activatorEl","isHovered","isFocused","value","runOpenDelay","runCloseDelay","availableEvents","click","e","stopPropagation","currentTarget","target","mouseenter","mouseleave","focus","matches","blur","activatorEvents","events","contentEvents","menu","closeParents","val","activatorRef","$el","vm","scope","run","_useActivator","stop","flush","immediate","oldVal","getActivator","unbindActivatorProps","bindActivatorProps","el","_props","entries","forEach","name","cb","addEventListener","keys","k","removeAttribute","setAttribute","removeEventListener","selector","proxy","parentNode","hasAttribute","document","querySelector","nodeType","Node","ELEMENT_NODE"],"sources":["../../../src/components/VOverlay/useActivator.tsx"],"sourcesContent":["// Composables\nimport { makeDelayProps, useDelay } from '@/composables/delay'\nimport { VMenuSymbol } from '@/components/VMenu/shared'\n\n// Utilities\nimport { getCurrentInstance, IN_BROWSER, isComponentInstance, propsFactory, SUPPORTS_FOCUS_VISIBLE } from '@/util'\nimport {\n computed,\n effectScope,\n inject,\n nextTick,\n onScopeDispose,\n ref,\n watch,\n watchEffect,\n} from 'vue'\n\n// Types\nimport type { DelayProps } from '@/composables/delay'\nimport type {\n ComponentInternalInstance,\n ComponentPublicInstance,\n EffectScope,\n PropType,\n Ref,\n} from 'vue'\n\ninterface ActivatorProps extends DelayProps {\n activator?: 'parent' | string | Element | ComponentPublicInstance\n activatorProps: Record<string, any>\n\n openOnClick: boolean | undefined\n openOnHover: boolean\n openOnFocus: boolean | undefined\n\n closeOnContentClick: boolean\n}\n\nexport const makeActivatorProps = propsFactory({\n activator: [String, Object] as PropType<ActivatorProps['activator']>,\n activatorProps: {\n type: Object as PropType<ActivatorProps['activatorProps']>,\n default: () => ({}),\n },\n\n openOnClick: {\n type: Boolean,\n default: undefined,\n },\n openOnHover: Boolean,\n openOnFocus: {\n type: Boolean,\n default: undefined,\n },\n\n closeOnContentClick: Boolean,\n\n ...makeDelayProps(),\n})\n\nexport function useActivator (\n props: ActivatorProps,\n { isActive, isTop }: { isActive: Ref<boolean>, isTop: Ref<boolean> }\n) {\n const activatorEl = ref<HTMLElement>()\n\n let isHovered = false\n let isFocused = false\n\n const openOnFocus = computed(() => props.openOnFocus || (props.openOnFocus == null && props.openOnHover))\n const openOnClick = computed(() => props.openOnClick || (props.openOnClick == null && !props.openOnHover && !openOnFocus.value))\n\n const { runOpenDelay, runCloseDelay } = useDelay(props, value => {\n if (\n value === (\n (props.openOnHover && isHovered) ||\n (openOnFocus.value && isFocused)\n ) && !(props.openOnHover && isActive.value && !isTop.value)\n ) {\n isActive.value = value\n }\n })\n\n const availableEvents = {\n click: (e: MouseEvent) => {\n e.stopPropagation()\n activatorEl.value = (e.currentTarget || e.target) as HTMLElement\n isActive.value = !isActive.value\n },\n mouseenter: (e: MouseEvent) => {\n isHovered = true\n activatorEl.value = (e.currentTarget || e.target) as HTMLElement\n runOpenDelay()\n },\n mouseleave: (e: MouseEvent) => {\n isHovered = false\n runCloseDelay()\n },\n focus: (e: FocusEvent) => {\n if (\n SUPPORTS_FOCUS_VISIBLE &&\n !(e.target as HTMLElement).matches(':focus-visible')\n ) return\n\n isFocused = true\n e.stopPropagation()\n activatorEl.value = (e.currentTarget || e.target) as HTMLElement\n\n runOpenDelay()\n },\n blur: (e: FocusEvent) => {\n isFocused = false\n e.stopPropagation()\n\n runCloseDelay()\n },\n }\n\n const activatorEvents = computed(() => {\n const events: Partial<typeof availableEvents> = {}\n\n if (openOnClick.value) {\n events.click = availableEvents.click\n }\n if (props.openOnHover) {\n events.mouseenter = availableEvents.mouseenter\n events.mouseleave = availableEvents.mouseleave\n }\n if (openOnFocus.value) {\n events.focus = availableEvents.focus\n events.blur = availableEvents.blur\n }\n\n return events\n })\n\n const contentEvents = computed(() => {\n const events: Partial<typeof availableEvents> = {}\n\n if (props.openOnHover) {\n events.mouseenter = () => {\n isHovered = true\n runOpenDelay()\n }\n events.mouseleave = () => {\n isHovered = false\n runCloseDelay()\n }\n }\n\n if (props.closeOnContentClick) {\n const menu = inject(VMenuSymbol, null)\n events.click = () => {\n isActive.value = false\n menu?.closeParents()\n }\n }\n\n return events\n })\n\n watch(isTop, val => {\n if (val && (\n (props.openOnHover && !isHovered && (!openOnFocus.value || !isFocused)) ||\n (openOnFocus.value && !isFocused && (!props.openOnHover || !isHovered))\n )) {\n isActive.value = false\n }\n })\n\n const activatorRef = ref()\n watchEffect(() => {\n if (!activatorRef.value) return\n\n nextTick(() => {\n const activator = activatorRef.value\n activatorEl.value = isComponentInstance(activator) ? activator.$el : activator\n })\n })\n\n const vm = getCurrentInstance('useActivator')\n let scope: EffectScope\n watch(() => !!props.activator, val => {\n if (val && IN_BROWSER) {\n scope = effectScope()\n scope.run(() => {\n _useActivator(props, vm, { activatorEl, activatorEvents })\n })\n } else if (scope) {\n scope.stop()\n }\n }, { flush: 'post', immediate: true })\n\n return { activatorEl, activatorRef, activatorEvents, contentEvents }\n}\n\nfunction _useActivator (\n props: ActivatorProps,\n vm: ComponentInternalInstance,\n { activatorEl, activatorEvents }: Pick<ReturnType<typeof useActivator>, 'activatorEl' | 'activatorEvents'>\n) {\n watch(() => props.activator, (val, oldVal) => {\n if (oldVal && val !== oldVal) {\n const activator = getActivator(oldVal)\n activator && unbindActivatorProps(activator)\n }\n if (val) {\n nextTick(() => bindActivatorProps())\n }\n }, { immediate: true })\n\n watch(() => props.activatorProps, () => {\n bindActivatorProps()\n })\n\n onScopeDispose(() => {\n unbindActivatorProps()\n })\n\n function bindActivatorProps (el = getActivator(), _props = props.activatorProps) {\n if (!el) return\n\n Object.entries(activatorEvents.value).forEach(([name, cb]) => {\n el.addEventListener(name, cb as (e: Event) => void)\n })\n\n Object.keys(_props).forEach(k => {\n if (_props[k] == null) {\n el.removeAttribute(k)\n } else {\n el.setAttribute(k, _props[k])\n }\n })\n }\n\n function unbindActivatorProps (el = getActivator(), _props = props.activatorProps) {\n if (!el) return\n\n Object.entries(activatorEvents.value).forEach(([name, cb]) => {\n el.removeEventListener(name, cb as (e: Event) => void)\n })\n\n Object.keys(_props).forEach(k => {\n el.removeAttribute(k)\n })\n }\n\n function getActivator (selector = props.activator): HTMLElement | undefined {\n let activator\n if (selector) {\n if (selector === 'parent') {\n let el = vm?.proxy?.$el?.parentNode\n while (el.hasAttribute('data-no-activator')) {\n el = el.parentNode\n }\n activator = el\n } else if (typeof selector === 'string') {\n // Selector\n activator = document.querySelector(selector)\n } else if ('$el' in selector) {\n // Component (ref)\n activator = selector.$el\n } else {\n // HTMLElement | Element\n activator = selector\n }\n }\n\n // The activator should only be a valid element (Ignore comments and text nodes)\n activatorEl.value = activator?.nodeType === Node.ELEMENT_NODE ? activator : null\n\n return activatorEl.value\n }\n}\n"],"mappings":"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"}
1
+ {"version":3,"file":"useActivator.mjs","names":["makeDelayProps","useDelay","VMenuSymbol","getCurrentInstance","IN_BROWSER","isComponentInstance","propsFactory","SUPPORTS_FOCUS_VISIBLE","computed","effectScope","inject","nextTick","onScopeDispose","ref","watch","watchEffect","makeActivatorProps","activator","String","Object","activatorProps","type","default","openOnClick","Boolean","undefined","openOnHover","openOnFocus","closeOnContentClick","useActivator","props","isActive","isTop","activatorEl","isHovered","isFocused","firstEnter","value","runOpenDelay","runCloseDelay","availableEvents","click","e","stopPropagation","currentTarget","target","mouseenter","mouseleave","focus","matches","blur","activatorEvents","events","contentEvents","menu","closeParents","scrimEvents","val","activatorRef","$el","vm","scope","run","_useActivator","stop","flush","immediate","oldVal","getActivator","unbindActivatorProps","bindActivatorProps","el","_props","entries","forEach","name","cb","addEventListener","keys","k","removeAttribute","setAttribute","removeEventListener","selector","proxy","parentNode","hasAttribute","document","querySelector","nodeType","Node","ELEMENT_NODE"],"sources":["../../../src/components/VOverlay/useActivator.tsx"],"sourcesContent":["// Composables\nimport { makeDelayProps, useDelay } from '@/composables/delay'\nimport { VMenuSymbol } from '@/components/VMenu/shared'\n\n// Utilities\nimport { getCurrentInstance, IN_BROWSER, isComponentInstance, propsFactory, SUPPORTS_FOCUS_VISIBLE } from '@/util'\nimport {\n computed,\n effectScope,\n inject,\n nextTick,\n onScopeDispose,\n ref,\n watch,\n watchEffect,\n} from 'vue'\n\n// Types\nimport type { DelayProps } from '@/composables/delay'\nimport type {\n ComponentInternalInstance,\n ComponentPublicInstance,\n EffectScope,\n PropType,\n Ref,\n} from 'vue'\n\ninterface ActivatorProps extends DelayProps {\n activator?: 'parent' | string | Element | ComponentPublicInstance\n activatorProps: Record<string, any>\n\n openOnClick: boolean | undefined\n openOnHover: boolean\n openOnFocus: boolean | undefined\n\n closeOnContentClick: boolean\n}\n\nexport const makeActivatorProps = propsFactory({\n activator: [String, Object] as PropType<ActivatorProps['activator']>,\n activatorProps: {\n type: Object as PropType<ActivatorProps['activatorProps']>,\n default: () => ({}),\n },\n\n openOnClick: {\n type: Boolean,\n default: undefined,\n },\n openOnHover: Boolean,\n openOnFocus: {\n type: Boolean,\n default: undefined,\n },\n\n closeOnContentClick: Boolean,\n\n ...makeDelayProps(),\n}, 'v-overlay-activator')\n\nexport function useActivator (\n props: ActivatorProps,\n { isActive, isTop }: { isActive: Ref<boolean>, isTop: Ref<boolean> }\n) {\n const activatorEl = ref<HTMLElement>()\n\n let isHovered = false\n let isFocused = false\n let firstEnter = true\n\n const openOnFocus = computed(() => props.openOnFocus || (props.openOnFocus == null && props.openOnHover))\n const openOnClick = computed(() => props.openOnClick || (props.openOnClick == null && !props.openOnHover && !openOnFocus.value))\n\n const { runOpenDelay, runCloseDelay } = useDelay(props, value => {\n if (\n value === (\n (props.openOnHover && isHovered) ||\n (openOnFocus.value && isFocused)\n ) && !(props.openOnHover && isActive.value && !isTop.value)\n ) {\n if (isActive.value !== value) {\n firstEnter = true\n }\n isActive.value = value\n }\n })\n\n const availableEvents = {\n click: (e: MouseEvent) => {\n e.stopPropagation()\n activatorEl.value = (e.currentTarget || e.target) as HTMLElement\n isActive.value = !isActive.value\n },\n mouseenter: (e: MouseEvent) => {\n isHovered = true\n activatorEl.value = (e.currentTarget || e.target) as HTMLElement\n runOpenDelay()\n },\n mouseleave: (e: MouseEvent) => {\n isHovered = false\n runCloseDelay()\n },\n focus: (e: FocusEvent) => {\n if (\n SUPPORTS_FOCUS_VISIBLE &&\n !(e.target as HTMLElement).matches(':focus-visible')\n ) return\n\n isFocused = true\n e.stopPropagation()\n activatorEl.value = (e.currentTarget || e.target) as HTMLElement\n\n runOpenDelay()\n },\n blur: (e: FocusEvent) => {\n isFocused = false\n e.stopPropagation()\n\n runCloseDelay()\n },\n }\n\n const activatorEvents = computed(() => {\n const events: Partial<typeof availableEvents> = {}\n\n if (openOnClick.value) {\n events.click = availableEvents.click\n }\n if (props.openOnHover) {\n events.mouseenter = availableEvents.mouseenter\n events.mouseleave = availableEvents.mouseleave\n }\n if (openOnFocus.value) {\n events.focus = availableEvents.focus\n events.blur = availableEvents.blur\n }\n\n return events\n })\n\n const contentEvents = computed(() => {\n const events: Partial<typeof availableEvents> = {}\n\n if (props.openOnHover) {\n events.mouseenter = () => {\n isHovered = true\n runOpenDelay()\n }\n events.mouseleave = () => {\n isHovered = false\n runCloseDelay()\n }\n }\n\n if (props.closeOnContentClick) {\n const menu = inject(VMenuSymbol, null)\n events.click = () => {\n isActive.value = false\n menu?.closeParents()\n }\n }\n\n return events\n })\n\n const scrimEvents = computed(() => {\n const events: Partial<typeof availableEvents> = {}\n if (props.openOnHover) {\n events.mouseenter = () => {\n if (firstEnter) {\n isHovered = true\n firstEnter = false\n runOpenDelay()\n }\n }\n events.mouseleave = () => {\n isHovered = false\n runCloseDelay()\n }\n }\n\n return events\n })\n\n watch(isTop, val => {\n if (val && (\n (props.openOnHover && !isHovered && (!openOnFocus.value || !isFocused)) ||\n (openOnFocus.value && !isFocused && (!props.openOnHover || !isHovered))\n )) {\n isActive.value = false\n }\n })\n\n const activatorRef = ref()\n watchEffect(() => {\n if (!activatorRef.value) return\n\n nextTick(() => {\n const activator = activatorRef.value\n activatorEl.value = isComponentInstance(activator) ? activator.$el : activator\n })\n })\n\n const vm = getCurrentInstance('useActivator')\n let scope: EffectScope\n watch(() => !!props.activator, val => {\n if (val && IN_BROWSER) {\n scope = effectScope()\n scope.run(() => {\n _useActivator(props, vm, { activatorEl, activatorEvents })\n })\n } else if (scope) {\n scope.stop()\n }\n }, { flush: 'post', immediate: true })\n\n return { activatorEl, activatorRef, activatorEvents, contentEvents, scrimEvents }\n}\n\nfunction _useActivator (\n props: ActivatorProps,\n vm: ComponentInternalInstance,\n { activatorEl, activatorEvents }: Pick<ReturnType<typeof useActivator>, 'activatorEl' | 'activatorEvents'>\n) {\n watch(() => props.activator, (val, oldVal) => {\n if (oldVal && val !== oldVal) {\n const activator = getActivator(oldVal)\n activator && unbindActivatorProps(activator)\n }\n if (val) {\n nextTick(() => bindActivatorProps())\n }\n }, { immediate: true })\n\n watch(() => props.activatorProps, () => {\n bindActivatorProps()\n })\n\n onScopeDispose(() => {\n unbindActivatorProps()\n })\n\n function bindActivatorProps (el = getActivator(), _props = props.activatorProps) {\n if (!el) return\n\n Object.entries(activatorEvents.value).forEach(([name, cb]) => {\n el.addEventListener(name, cb as (e: Event) => void)\n })\n\n Object.keys(_props).forEach(k => {\n if (_props[k] == null) {\n el.removeAttribute(k)\n } else {\n el.setAttribute(k, _props[k])\n }\n })\n }\n\n function unbindActivatorProps (el = getActivator(), _props = props.activatorProps) {\n if (!el) return\n\n Object.entries(activatorEvents.value).forEach(([name, cb]) => {\n el.removeEventListener(name, cb as (e: Event) => void)\n })\n\n Object.keys(_props).forEach(k => {\n el.removeAttribute(k)\n })\n }\n\n function getActivator (selector = props.activator): HTMLElement | undefined {\n let activator\n if (selector) {\n if (selector === 'parent') {\n let el = vm?.proxy?.$el?.parentNode\n while (el.hasAttribute('data-no-activator')) {\n el = el.parentNode\n }\n activator = el\n } else if (typeof selector === 'string') {\n // Selector\n activator = document.querySelector(selector)\n } else if ('$el' in selector) {\n // Component (ref)\n activator = selector.$el\n } else {\n // HTMLElement | Element\n activator = selector\n }\n }\n\n // The activator should only be a valid element (Ignore comments and text nodes)\n activatorEl.value = activator?.nodeType === Node.ELEMENT_NODE ? activator : null\n\n return activatorEl.value\n }\n}\n"],"mappings":"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"}
@@ -5,24 +5,24 @@ export function elementToViewport(point, offset) {
5
5
  y: point.y + offset.y
6
6
  };
7
7
  }
8
- /** Convert a point in viewport space to local space */
9
8
 
9
+ /** Convert a point in viewport space to local space */
10
10
  export function viewportToElement(point, offset) {
11
11
  return {
12
12
  x: point.x - offset.x,
13
13
  y: point.y - offset.y
14
14
  };
15
15
  }
16
- /** Get the difference between two points */
17
16
 
17
+ /** Get the difference between two points */
18
18
  export function getOffset(a, b) {
19
19
  return {
20
20
  x: a.x - b.x,
21
21
  y: a.y - b.y
22
22
  };
23
23
  }
24
- /** Convert an anchor object to a point in local space */
25
24
 
25
+ /** Convert an anchor object to a point in local space */
26
26
  export function anchorToPoint(anchor, box) {
27
27
  if (anchor.side === 'top' || anchor.side === 'bottom') {
28
28
  const {
@@ -47,7 +47,6 @@ export function anchorToPoint(anchor, box) {
47
47
  y
48
48
  }, box);
49
49
  }
50
-
51
50
  return elementToViewport({
52
51
  x: box.width / 2,
53
52
  y: box.height / 2
@@ -1 +1 @@
1
- {"version":3,"file":"point.mjs","names":["elementToViewport","point","offset","x","y","viewportToElement","getOffset","a","b","anchorToPoint","anchor","box","side","align","width","height"],"sources":["../../../../src/components/VOverlay/util/point.ts"],"sourcesContent":["import type { ParsedAnchor } from '@/util'\nimport type { Box } from '@/util/box'\n\ntype Point = { x: number, y: number }\ndeclare class As<T extends string> {\n private as: T\n}\ntype ElementPoint = Point & As<'element'>\ntype ViewportPoint = Point & As<'viewport'>\ntype Offset = Point & As<'offset'>\n\n/** Convert a point in local space to viewport space */\nexport function elementToViewport (point: ElementPoint, offset: Offset | Box) {\n return {\n x: point.x + offset.x,\n y: point.y + offset.y,\n } as ViewportPoint\n}\n\n/** Convert a point in viewport space to local space */\nexport function viewportToElement (point: ViewportPoint, offset: Offset | Box) {\n return {\n x: point.x - offset.x,\n y: point.y - offset.y,\n } as ElementPoint\n}\n\n/** Get the difference between two points */\nexport function getOffset<T extends Point> (a: T, b: T) {\n return {\n x: a.x - b.x,\n y: a.y - b.y,\n } as Offset\n}\n\n/** Convert an anchor object to a point in local space */\nexport function anchorToPoint (anchor: ParsedAnchor, box: Box): ViewportPoint {\n if (anchor.side === 'top' || anchor.side === 'bottom') {\n const { side, align } = anchor\n\n const x: number =\n align === 'left' ? 0\n : align === 'center' ? box.width / 2\n : align === 'right' ? box.width\n : align\n const y: number =\n side === 'top' ? 0\n : side === 'bottom' ? box.height\n : side\n\n return elementToViewport({ x, y } as ElementPoint, box)\n } else if (anchor.side === 'left' || anchor.side === 'right') {\n const { side, align } = anchor\n\n const x: number =\n side === 'left' ? 0\n : side === 'right' ? box.width\n : side\n const y: number =\n align === 'top' ? 0\n : align === 'center' ? box.height / 2\n : align === 'bottom' ? box.height\n : align\n\n return elementToViewport({ x, y } as ElementPoint, box)\n }\n\n return elementToViewport({\n x: box.width / 2,\n y: box.height / 2,\n } as ElementPoint, box)\n}\n"],"mappings":"AAWA;AACA,OAAO,SAASA,iBAAT,CAA4BC,KAA5B,EAAiDC,MAAjD,EAAuE;EAC5E,OAAO;IACLC,CAAC,EAAEF,KAAK,CAACE,CAAN,GAAUD,MAAM,CAACC,CADf;IAELC,CAAC,EAAEH,KAAK,CAACG,CAAN,GAAUF,MAAM,CAACE;EAFf,CAAP;AAID;AAED;;AACA,OAAO,SAASC,iBAAT,CAA4BJ,KAA5B,EAAkDC,MAAlD,EAAwE;EAC7E,OAAO;IACLC,CAAC,EAAEF,KAAK,CAACE,CAAN,GAAUD,MAAM,CAACC,CADf;IAELC,CAAC,EAAEH,KAAK,CAACG,CAAN,GAAUF,MAAM,CAACE;EAFf,CAAP;AAID;AAED;;AACA,OAAO,SAASE,SAAT,CAAqCC,CAArC,EAA2CC,CAA3C,EAAiD;EACtD,OAAO;IACLL,CAAC,EAAEI,CAAC,CAACJ,CAAF,GAAMK,CAAC,CAACL,CADN;IAELC,CAAC,EAAEG,CAAC,CAACH,CAAF,GAAMI,CAAC,CAACJ;EAFN,CAAP;AAID;AAED;;AACA,OAAO,SAASK,aAAT,CAAwBC,MAAxB,EAA8CC,GAA9C,EAAuE;EAC5E,IAAID,MAAM,CAACE,IAAP,KAAgB,KAAhB,IAAyBF,MAAM,CAACE,IAAP,KAAgB,QAA7C,EAAuD;IACrD,MAAM;MAAEA,IAAF;MAAQC;IAAR,IAAkBH,MAAxB;IAEA,MAAMP,CAAS,GACbU,KAAK,KAAK,MAAV,GAAmB,CAAnB,GACEA,KAAK,KAAK,QAAV,GAAqBF,GAAG,CAACG,KAAJ,GAAY,CAAjC,GACAD,KAAK,KAAK,OAAV,GAAoBF,GAAG,CAACG,KAAxB,GACAD,KAJJ;IAKA,MAAMT,CAAS,GACbQ,IAAI,KAAK,KAAT,GAAiB,CAAjB,GACEA,IAAI,KAAK,QAAT,GAAoBD,GAAG,CAACI,MAAxB,GACAH,IAHJ;IAKA,OAAOZ,iBAAiB,CAAC;MAAEG,CAAF;MAAKC;IAAL,CAAD,EAA2BO,GAA3B,CAAxB;EACD,CAdD,MAcO,IAAID,MAAM,CAACE,IAAP,KAAgB,MAAhB,IAA0BF,MAAM,CAACE,IAAP,KAAgB,OAA9C,EAAuD;IAC5D,MAAM;MAAEA,IAAF;MAAQC;IAAR,IAAkBH,MAAxB;IAEA,MAAMP,CAAS,GACbS,IAAI,KAAK,MAAT,GAAkB,CAAlB,GACEA,IAAI,KAAK,OAAT,GAAmBD,GAAG,CAACG,KAAvB,GACAF,IAHJ;IAIA,MAAMR,CAAS,GACbS,KAAK,KAAK,KAAV,GAAkB,CAAlB,GACEA,KAAK,KAAK,QAAV,GAAqBF,GAAG,CAACI,MAAJ,GAAa,CAAlC,GACAF,KAAK,KAAK,QAAV,GAAqBF,GAAG,CAACI,MAAzB,GACAF,KAJJ;IAMA,OAAOb,iBAAiB,CAAC;MAAEG,CAAF;MAAKC;IAAL,CAAD,EAA2BO,GAA3B,CAAxB;EACD;;EAED,OAAOX,iBAAiB,CAAC;IACvBG,CAAC,EAAEQ,GAAG,CAACG,KAAJ,GAAY,CADQ;IAEvBV,CAAC,EAAEO,GAAG,CAACI,MAAJ,GAAa;EAFO,CAAD,EAGLJ,GAHK,CAAxB;AAID"}
1
+ {"version":3,"file":"point.mjs","names":["elementToViewport","point","offset","x","y","viewportToElement","getOffset","a","b","anchorToPoint","anchor","box","side","align","width","height"],"sources":["../../../../src/components/VOverlay/util/point.ts"],"sourcesContent":["import type { ParsedAnchor } from '@/util'\nimport type { Box } from '@/util/box'\n\ntype Point = { x: number, y: number }\ndeclare class As<T extends string> {\n private as: T\n}\ntype ElementPoint = Point & As<'element'>\ntype ViewportPoint = Point & As<'viewport'>\ntype Offset = Point & As<'offset'>\n\n/** Convert a point in local space to viewport space */\nexport function elementToViewport (point: ElementPoint, offset: Offset | Box) {\n return {\n x: point.x + offset.x,\n y: point.y + offset.y,\n } as ViewportPoint\n}\n\n/** Convert a point in viewport space to local space */\nexport function viewportToElement (point: ViewportPoint, offset: Offset | Box) {\n return {\n x: point.x - offset.x,\n y: point.y - offset.y,\n } as ElementPoint\n}\n\n/** Get the difference between two points */\nexport function getOffset<T extends Point> (a: T, b: T) {\n return {\n x: a.x - b.x,\n y: a.y - b.y,\n } as Offset\n}\n\n/** Convert an anchor object to a point in local space */\nexport function anchorToPoint (anchor: ParsedAnchor, box: Box): ViewportPoint {\n if (anchor.side === 'top' || anchor.side === 'bottom') {\n const { side, align } = anchor\n\n const x: number =\n align === 'left' ? 0\n : align === 'center' ? box.width / 2\n : align === 'right' ? box.width\n : align\n const y: number =\n side === 'top' ? 0\n : side === 'bottom' ? box.height\n : side\n\n return elementToViewport({ x, y } as ElementPoint, box)\n } else if (anchor.side === 'left' || anchor.side === 'right') {\n const { side, align } = anchor\n\n const x: number =\n side === 'left' ? 0\n : side === 'right' ? box.width\n : side\n const y: number =\n align === 'top' ? 0\n : align === 'center' ? box.height / 2\n : align === 'bottom' ? box.height\n : align\n\n return elementToViewport({ x, y } as ElementPoint, box)\n }\n\n return elementToViewport({\n x: box.width / 2,\n y: box.height / 2,\n } as ElementPoint, box)\n}\n"],"mappings":"AAWA;AACA,OAAO,SAASA,iBAAiB,CAAEC,KAAmB,EAAEC,MAAoB,EAAE;EAC5E,OAAO;IACLC,CAAC,EAAEF,KAAK,CAACE,CAAC,GAAGD,MAAM,CAACC,CAAC;IACrBC,CAAC,EAAEH,KAAK,CAACG,CAAC,GAAGF,MAAM,CAACE;EACtB,CAAC;AACH;;AAEA;AACA,OAAO,SAASC,iBAAiB,CAAEJ,KAAoB,EAAEC,MAAoB,EAAE;EAC7E,OAAO;IACLC,CAAC,EAAEF,KAAK,CAACE,CAAC,GAAGD,MAAM,CAACC,CAAC;IACrBC,CAAC,EAAEH,KAAK,CAACG,CAAC,GAAGF,MAAM,CAACE;EACtB,CAAC;AACH;;AAEA;AACA,OAAO,SAASE,SAAS,CAAmBC,CAAI,EAAEC,CAAI,EAAE;EACtD,OAAO;IACLL,CAAC,EAAEI,CAAC,CAACJ,CAAC,GAAGK,CAAC,CAACL,CAAC;IACZC,CAAC,EAAEG,CAAC,CAACH,CAAC,GAAGI,CAAC,CAACJ;EACb,CAAC;AACH;;AAEA;AACA,OAAO,SAASK,aAAa,CAAEC,MAAoB,EAAEC,GAAQ,EAAiB;EAC5E,IAAID,MAAM,CAACE,IAAI,KAAK,KAAK,IAAIF,MAAM,CAACE,IAAI,KAAK,QAAQ,EAAE;IACrD,MAAM;MAAEA,IAAI;MAAEC;IAAM,CAAC,GAAGH,MAAM;IAE9B,MAAMP,CAAS,GACbU,KAAK,KAAK,MAAM,GAAG,CAAC,GAClBA,KAAK,KAAK,QAAQ,GAAGF,GAAG,CAACG,KAAK,GAAG,CAAC,GAClCD,KAAK,KAAK,OAAO,GAAGF,GAAG,CAACG,KAAK,GAC7BD,KAAK;IACT,MAAMT,CAAS,GACbQ,IAAI,KAAK,KAAK,GAAG,CAAC,GAChBA,IAAI,KAAK,QAAQ,GAAGD,GAAG,CAACI,MAAM,GAC9BH,IAAI;IAER,OAAOZ,iBAAiB,CAAC;MAAEG,CAAC;MAAEC;IAAE,CAAC,EAAkBO,GAAG,CAAC;EACzD,CAAC,MAAM,IAAID,MAAM,CAACE,IAAI,KAAK,MAAM,IAAIF,MAAM,CAACE,IAAI,KAAK,OAAO,EAAE;IAC5D,MAAM;MAAEA,IAAI;MAAEC;IAAM,CAAC,GAAGH,MAAM;IAE9B,MAAMP,CAAS,GACbS,IAAI,KAAK,MAAM,GAAG,CAAC,GACjBA,IAAI,KAAK,OAAO,GAAGD,GAAG,CAACG,KAAK,GAC5BF,IAAI;IACR,MAAMR,CAAS,GACbS,KAAK,KAAK,KAAK,GAAG,CAAC,GACjBA,KAAK,KAAK,QAAQ,GAAGF,GAAG,CAACI,MAAM,GAAG,CAAC,GACnCF,KAAK,KAAK,QAAQ,GAAGF,GAAG,CAACI,MAAM,GAC/BF,KAAK;IAET,OAAOb,iBAAiB,CAAC;MAAEG,CAAC;MAAEC;IAAE,CAAC,EAAkBO,GAAG,CAAC;EACzD;EAEA,OAAOX,iBAAiB,CAAC;IACvBG,CAAC,EAAEQ,GAAG,CAACG,KAAK,GAAG,CAAC;IAChBV,CAAC,EAAEO,GAAG,CAACI,MAAM,GAAG;EAClB,CAAC,EAAkBJ,GAAG,CAAC;AACzB"}
@@ -1,9 +1,9 @@
1
1
  import { createVNode as _createVNode, mergeProps as _mergeProps } from "vue";
2
2
  // Styles
3
- import "./VPagination.css"; // Components
3
+ import "./VPagination.css";
4
4
 
5
+ // Components
5
6
  import { VBtn } from "../VBtn/index.mjs"; // Composables
6
-
7
7
  import { IconValue } from "../../composables/icons.mjs";
8
8
  import { makeBorderProps } from "../../composables/border.mjs";
9
9
  import { makeDensityProps } from "../../composables/density.mjs";
@@ -14,15 +14,12 @@ import { makeTagProps } from "../../composables/tag.mjs";
14
14
  import { makeThemeProps, provideTheme } from "../../composables/theme.mjs";
15
15
  import { makeVariantProps } from "../../composables/variant.mjs";
16
16
  import { provideDefaults } from "../../composables/defaults.mjs";
17
- import { useLocale } from "../../composables/locale.mjs";
17
+ import { useLocale, useRtl } from "../../composables/locale.mjs";
18
18
  import { useProxiedModel } from "../../composables/proxiedModel.mjs";
19
19
  import { useRefs } from "../../composables/refs.mjs";
20
- import { useResizeObserver } from "../../composables/resizeObserver.mjs";
21
- import { useRtl } from "../../composables/rtl.mjs"; // Utilities
22
-
20
+ import { useResizeObserver } from "../../composables/resizeObserver.mjs"; // Utilities
23
21
  import { computed, nextTick, ref, toRef } from 'vue';
24
22
  import { createRange, defineComponent, keyValues, useRender } from "../../util/index.mjs"; // Types
25
-
26
23
  export const VPagination = defineComponent({
27
24
  name: 'VPagination',
28
25
  props: {
@@ -111,7 +108,6 @@ export const VPagination = defineComponent({
111
108
  next: value => true,
112
109
  last: value => true
113
110
  },
114
-
115
111
  setup(props, _ref) {
116
112
  let {
117
113
  slots,
@@ -143,33 +139,31 @@ export const VPagination = defineComponent({
143
139
  const firstItem = target.querySelector('.v-pagination__list > *');
144
140
  if (!firstItem) return;
145
141
  const totalWidth = contentRect.width;
146
- const itemWidth = firstItem.getBoundingClientRect().width + 10;
147
- maxButtons.value = Math.max(0, Math.floor((totalWidth - 96) / itemWidth));
142
+ const itemWidth = firstItem.offsetWidth + parseFloat(getComputedStyle(firstItem).marginRight) * 2;
143
+ const minButtons = props.showFirstLastPage ? 5 : 3;
144
+ maxButtons.value = Math.max(0, Math.floor(
145
+ // Round to two decimal places to avoid floating point errors
146
+ +((totalWidth - itemWidth * minButtons) / itemWidth).toFixed(2)));
148
147
  });
149
148
  const length = computed(() => parseInt(props.length, 10));
150
149
  const start = computed(() => parseInt(props.start, 10));
151
150
  const totalVisible = computed(() => {
152
- var _props$totalVisible;
153
-
154
- if (props.totalVisible) return Math.min(parseInt((_props$totalVisible = props.totalVisible) != null ? _props$totalVisible : '', 10), length.value);else if (maxButtons.value >= 0) return maxButtons.value;
151
+ if (props.totalVisible) return parseInt(props.totalVisible, 10);else if (maxButtons.value >= 0) return maxButtons.value;
155
152
  return length.value;
156
153
  });
157
154
  const range = computed(() => {
158
155
  if (length.value <= 0 || isNaN(length.value) || length.value > Number.MAX_SAFE_INTEGER) return [];
159
- if (totalVisible.value <= 2) return [page.value];
160
-
156
+ if (totalVisible.value <= 1) return [page.value];
161
157
  if (length.value <= totalVisible.value) {
162
158
  return createRange(length.value, start.value);
163
159
  }
164
-
165
160
  const even = totalVisible.value % 2 === 0;
166
161
  const middle = even ? totalVisible.value / 2 : Math.floor(totalVisible.value / 2);
167
162
  const left = even ? middle : middle + 1;
168
163
  const right = length.value - middle;
169
-
170
164
  if (left - page.value >= 0) {
171
165
  return [...createRange(Math.max(1, totalVisible.value - 1), start.value), props.ellipsis, length.value];
172
- } else if (page.value - right >= 0) {
166
+ } else if (page.value - right >= (even ? 1 : 0)) {
173
167
  const rangeLength = totalVisible.value - 1;
174
168
  const rangeStart = length.value - rangeLength + start.value;
175
169
  return [start.value, props.ellipsis, ...createRange(rangeLength, rangeStart)];
@@ -178,14 +172,14 @@ export const VPagination = defineComponent({
178
172
  const rangeStart = rangeLength === 1 ? page.value : page.value - Math.ceil(rangeLength / 2) + start.value;
179
173
  return [start.value, props.ellipsis, ...createRange(rangeLength, rangeStart), props.ellipsis, length.value];
180
174
  }
181
- }); // TODO: 'first' | 'prev' | 'next' | 'last' does not work here?
175
+ });
182
176
 
177
+ // TODO: 'first' | 'prev' | 'next' | 'last' does not work here?
183
178
  function setValue(e, value, event) {
184
179
  e.preventDefault();
185
180
  page.value = value;
186
181
  event && emit(event, value);
187
182
  }
188
-
189
183
  const {
190
184
  refs,
191
185
  updateRef
@@ -196,16 +190,18 @@ export const VPagination = defineComponent({
196
190
  border: toRef(props, 'border'),
197
191
  density: toRef(props, 'density'),
198
192
  size: toRef(props, 'size'),
199
- variant: toRef(props, 'variant')
193
+ variant: toRef(props, 'variant'),
194
+ rounded: toRef(props, 'rounded'),
195
+ elevation: toRef(props, 'elevation')
200
196
  }
201
197
  });
202
198
  const items = computed(() => {
203
199
  return range.value.map((item, index) => {
204
200
  const ref = e => updateRef(e, index);
205
-
206
201
  if (typeof item === 'string') {
207
202
  return {
208
203
  isActive: false,
204
+ key: `ellipsis-${index}`,
209
205
  page: item,
210
206
  props: {
211
207
  ref,
@@ -218,14 +214,13 @@ export const VPagination = defineComponent({
218
214
  const isActive = item === page.value;
219
215
  return {
220
216
  isActive,
217
+ key: item,
221
218
  page: n(item),
222
219
  props: {
223
220
  ref,
224
221
  ellipsis: false,
225
222
  icon: true,
226
223
  disabled: !!props.disabled || props.length < 2,
227
- elevation: props.elevation,
228
- rounded: props.rounded,
229
224
  color: isActive ? props.activeColor : props.color,
230
225
  ariaCurrent: isActive,
231
226
  ariaLabel: t(isActive ? props.currentPageAriaLabel : props.pageAriaLabel, index + 1),
@@ -269,14 +264,11 @@ export const VPagination = defineComponent({
269
264
  } : undefined
270
265
  };
271
266
  });
272
-
273
267
  function updateFocus() {
274
268
  var _refs$value$currentIn;
275
-
276
269
  const currentIndex = page.value - start.value;
277
270
  (_refs$value$currentIn = refs.value[currentIndex]) == null ? void 0 : _refs$value$currentIn.$el.focus();
278
271
  }
279
-
280
272
  function onKeydown(e) {
281
273
  if (e.key === keyValues.left && !props.disabled && page.value > props.start) {
282
274
  page.value = page.value - 1;
@@ -286,7 +278,6 @@ export const VPagination = defineComponent({
286
278
  nextTick(updateFocus);
287
279
  }
288
280
  }
289
-
290
281
  useRender(() => _createVNode(props.tag, {
291
282
  "ref": resizeRef,
292
283
  "class": ['v-pagination', themeClasses.value],
@@ -310,7 +301,7 @@ export const VPagination = defineComponent({
310
301
  }, [slots.prev ? slots.prev(controls.value.prev) : _createVNode(VBtn, _mergeProps({
311
302
  "_as": "VPaginationBtn"
312
303
  }, controls.value.prev), null)]), items.value.map((item, index) => _createVNode("li", {
313
- "key": item.page,
304
+ "key": item.key,
314
305
  "class": ['v-pagination__item', {
315
306
  'v-pagination__item--is-active': item.isActive
316
307
  }],
@@ -335,6 +326,5 @@ export const VPagination = defineComponent({
335
326
  }));
336
327
  return {};
337
328
  }
338
-
339
329
  });
340
330
  //# sourceMappingURL=VPagination.mjs.map